Foro de debate

Ayuda con el compresor y descompresor RLE

Ayuda con el compresor y descompresor RLE

de Miguel Vázquez -
Número de respuestas: 0

Buenas!!

Tengo un problema gordo pues mañana por la mañana debo de entregar hecho el R el compresor y descompresor RLE y no tengo ni idea. Escribía para saber si alguien que controle esto me lo puede implementar.

Aquí las pautas del profesor:

RLE se basa en en reemplazar secuencias repetidas (hachas) de un dato d que aparece n veces mediantes el par n,d. En la práctica debe sustituirse secuencias de longitud al menos 3. Puede emplearse un carácter especial , @, para séñalar que el número que viene a continuación es una longitud de racha. Por ejemplo, tenemos la secuencia aaaaggggggggfffxxxxx, entonces RLE haría 4a@8g@3f@5x.

Compresor RLE:

1. Inicializar a 0 el contador de caracteres C y el de repetición R.

2. Leer el siguiente carácter L. Si no hay, fin.

3. Hacer C=C+1.

4. Si C=1 guardar L en GL e ir a 2.

5. Si GL=L hacer R=R+1, e ir a 2.

6. Si R<4 escribir GL R veces. Ir a 8.

7. Escribir el formato comprimido @RGL.

8. Hacer R=0, GL=L, e ir a 2.

Descompresor RLE:

1. Hacer estado de compresión OFF.

2. Leer siguiente carácter L.

3. Si L=<EOF> (es decir, si no hay más), fin.

4. Si estado de compresión = OFF ir a 5, en caso contrario ir a 7.

5. Si L="@" hacer estado de compresión = ON e ir a 2.

6. Si L es distinto de @, escribir L en la salida e ir a 2.

7. (Estado de compresión = ON)  Leer n y carácter repetido.

8. Escribir n veces el carácter repetido, ir a 2.

 

Bueno, a ver si me aparece un ángel por aquí para solucionarme este problemilla que, según el profesor, la implementación es bastante sencilla, cosa que yo no veo.

MUCHAS GRACIAS!!!!!

 

 

(Editado por Manuel Muñoz Márquez - envío original miércoles, 20 de enero de 2010, 21:11)