jueves, 18 de abril de 2013

Replacement via encoding scheme

Problema obtenido de la página 123 del libro "Introduction to Information Theory and Data Compression", D.R. Hankerson, Greg A. Harris, Peter D. Johnson.

Exercise 5.1.4. Find the compression ratio if the original file in the example in this section
is parsed using S = {0, 1}and encoded using the scheme.
  • s1=000→1111111
  • s2=001→1111110
  • s3=010→111110
  • s4=011→11110
  • s5=100→1110
  • s6=101→110
  • s7=110→10
  • s8=111→0

En el ejemplo en el libro viene el siguiente archivo orginal:

111110111111101110111101110110

Para el cual nosotros tenemos el siguiente esquema de codificación:
  • s1=0
  • s2=10
  • s3=110
  • s4=1110
  • s5=1111
Por lo cual podemos deducir que el archivo se puede pasar a la cadena s5s2s5s4s4s5s1s4s3, entonces tenemos que el archivo original tiene 30 bits de largo.

Teniendo los bits de entrada podemos comenzar a sustituir a mano con el esquema propuesto por el ejercicio lo que quedaría algo así primero se toman los primeros tres bits que son "111" esto es equivalente a "0" y a el s8, después los siguientes 3 bits que son "110" que son corresponde a "10" y a s7 y así sucesivamente dando como resultado los bits:

010001101001101010, o también se puede respresentar como s8s7s8s8s6s7s8s6s7s7
Lo que nos da un archivo de salida de 18 bits, comparado con 30 del archivo original, lo que nos da un compression ratio de 5/3.

Para simular esto podemos hacer un pequeño programa en python, con un archivo de entrada que contenga los bits ya mostrados.
archivo.txt


1 comentario: