SlideShare una empresa de Scribd logo
1 de 14
Podríamos diferenciar tres tipos de técnicas de compresión :
Reducción de la precisión de los valores individuales
Codificación de los valores individuales reduciendo el número de
bits
Transformación de los datos en otra representación que sea
más hábil de ser reducida
Muchos formatos combinan dos o las tres formas de
comprimir.
REDUCCIÓN DE BITS
 Comentamos algunos esquemas de codificación en esta línea:
Códigos de desplazamiento (shift codes)
 Si sólo un pequeño subconjunto consecutivo de valores aparece la
mayor parte de las veces, entonces se puede elegir un código con
longitud (bits) suficiente sólo para representar este subconjunto,
de modo que los pocos valores que no estén en él se indican con
un código especial de overflow que señala los valores
representados con más longitud. Al indicar la mayoría de los
valores con un número reducido de bits, se pueden conseguir
reducciones significativas de tamaño, entre 2:1 y 3:1 usualmente,
aunque siempre dependiendo del gráfico.
 Para ello se desprecian algunos de los bits, dependiendo del rango
de valores.
 La NASA, por ejemplo, usa códigos de desplazamiento para
transmitir la imagen de satélites.
Códigos de Huffman
 Los códigos de Huffman (su inventor) asignan un código de
longitud variable a cada posible dato, de modo que los valores
que ocurren más a menudo tienen códigos de menor longitud y
viceversa. Dada la probabilidad de que un valor dado ocurra, el
algoritmo de Huffman puede crear automáticamente un
asignación de códigos.
Códigos de Huffman
 El concepto es sencillo de expresar gráficamente: ordenados los valores de
mayor a menor probabilidad, se le asignarán códigos binarios: a los
símbolos más frecuentes (ej. 35 %, 27, ...) se le asignan pocos bits (11, 10)
y a los menos frecuentes (ej. Del 11% o 10%) mas bits (0001, 0000)
Codificación aritmética
 Tiene el mismo fundamento que el de Huffman (asociar un código
en función de la probabilidad de cada valor), pero en este caso se
funciona asociando códigos a grupos de valores (por ejemplo, si el
valor 7 y el valor 23 tienen mucha probabilidad, este esquema
asociará probablemente un código a la subserie 7 23, otro a la 7
7, otro a la 23 23... o incluso a subseries más largas,
dependiendo de la probabilidad.
 Es algo más complejo de implementar que el código de Huffman,
pero produce entre un 5 y un 10% más compresión.
TRANSFORMACIÓN
 Es una técnica que permite evitar o minimizar la pérdida.
Básicamente, hay que buscar patrones que se repitan en los
datos. Si no existen (datos totalmente aleatorios), no puede
existir compresión sin pérdida. De hecho, aplicar un esquema de
compresión a datos totalmente aleatorios puede con facilidad
incrementar el tamaño de los ficheros.
Run-Length Encoding
 La codificación RLE (Run-Length Encoding) busca la repetición de
valores idénticos en una lista, y la reemplaza por un único valor
precedido por el número de veces que se repite. Por ejemplo, la
secuencia:
5 5 14 14 14 14 14 8 8 8 8 7 5 5 5 3 2 2 (18 bytes)
se podría codificar usando la siguiente:
 2 5 5 14 4 8 1 7 3 5 1 3 2 2 (14 bytes)
 Algunos formatos que usan este esquema son:
Postscript, Tiff, PCX, Targa ....
Codificación LZW
 El algoritmo LZW considera la posibilidad de que una secuencia de
valores (no necesariamente iguales) se repita, aún no
consecutivamente, en la secuencia de datos. Por ejemplo, la
secuencia
4 12 10 2 8 4 12 10 9 8 4 12 10 9 8 4
se podría representar como
a 2 8 a b a b 4 (siendo a = 4 12 10, b = 9 8)
Diferenciación (differencing)
 Este esquema de compresión se basa en el hecho de que en
ficheros gráficos realistas es común que muchos datos sucesivos
tengan diferencias pequeñas (por ejemplo, verdes de gamas muy
similares con pequeñas variaciones de brillo). En ese caso, en vez
de representar cada dato por completo, partiendo de uno inicial
los demás se pueden expresar como diferencias con respecto a
él, o al inmediato anterior, utilizando muchos menos bits para
ello. Por ejemplo, la serie:
 35 37 38 33 36 35 35
 se puede representar con la otra:
 35 -2 -1 5 -3 1 0
Diferenciación (differencing)
 La compresión de este tipo de algoritmos depende mucho de los
datos aunque todos los gráficos habituales, tanto fotorealistas
como no, suelen tener bastantes series reconocibles de valores
cercanos. Reducciones de 1,5:1 a 3:1 pueden alcanzarse con
facilidad.
 Existen algoritmos de diferenciación de 2 dimensiones que se
basan en comparaciones de cada línea horizontal del gráfico con
la siguiente, buscando similitudes que es habitual que existan. Es
el caso de los formatos JPEG o MPEG sin pérdida.
Fractales
 La compresión fractal se basa en encontrar grupos de datos
determinados que con transformaciones fractales sucesivas se
conviertan en una serie de datos similar a la original; con esto,
simplemente almacenando el grupo y las transformaciones se
representa de forma codificada a una serie completa (que puede
ser larga).
 Esta compresión suele requerir bastante tiempo de CPU, pero
alcanza relaciones de compresión altas (entre 50:1 y 100:1,
aunque se han encontrado ejemplos de hasta 1000:1).
 Los algoritmos han sido desarrollados y registrados por Michal
Barnsley, de Iterated Systems.
Esquemas de transformaciones matemáticas
 Existen muchas operaciones matemáticas que transforman un
conjunto de valores a otro y después pueden ser aplicadas a la
inversa para reconstruir el conjunto original. Algunas de ellas son
especialmente útiles para su aplicación a algoritmos de
compresión, por ejemplo:
◦ · Discrete Fourier Transform (DFT)
◦ · Discrete Cosine Transform (DCT)
◦ · Hadamard-Haar Transforms (HHT)
◦ · Karhunen-Loeve Transforms (KLT)
◦ · Slant-Haar Transforms (SHT)
◦ · Walsh-Hadamard Transforms (WHT)
 Con mucho, la función más utilizada es la DCT, que por ejemplo
se usa en versiones de JPEG y MPEG. Para ello se reemplazan
bloques de intensidad de color de 8x8 píxels por una serie de
valores parametrizando una función cosenoidal.

Más contenido relacionado

La actualidad más candente (19)

1+1=2
1+1=21+1=2
1+1=2
 
1+1=2
1+1=21+1=2
1+1=2
 
1+1=2
1+1=21+1=2
1+1=2
 
1+1=2
1+1=21+1=2
1+1=2
 
1+1=2
1+1=21+1=2
1+1=2
 
1+1=2
1+1=21+1=2
1+1=2
 
Strcat
StrcatStrcat
Strcat
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
1+1=2
1+1=21+1=2
1+1=2
 
Practica 3
Practica 3Practica 3
Practica 3
 
Presentación OR Problemas de Caminos Más Cortos
Presentación OR Problemas de Caminos Más CortosPresentación OR Problemas de Caminos Más Cortos
Presentación OR Problemas de Caminos Más Cortos
 
Notas
NotasNotas
Notas
 
Unidad 2 diana karina pech may
Unidad 2 diana karina pech mayUnidad 2 diana karina pech may
Unidad 2 diana karina pech may
 
P proyecto 3
P proyecto 3P proyecto 3
P proyecto 3
 
Problema de la ruta mas corta
Problema de la ruta mas cortaProblema de la ruta mas corta
Problema de la ruta mas corta
 
SALTO CONDICIONAL
SALTO CONDICIONALSALTO CONDICIONAL
SALTO CONDICIONAL
 
Redes ruta más corta
Redes ruta más corta Redes ruta más corta
Redes ruta más corta
 
2 poo u1 9 tipos de datos no numericos
2 poo u1 9 tipos de datos no numericos2 poo u1 9 tipos de datos no numericos
2 poo u1 9 tipos de datos no numericos
 
Ultimo trabajo de computacion
Ultimo trabajo de computacionUltimo trabajo de computacion
Ultimo trabajo de computacion
 

Similar a Técnicas de compresión de datos: reducción de bits, codificación y transformación

Similar a Técnicas de compresión de datos: reducción de bits, codificación y transformación (20)

COMPRESION DE DATOS.pptx
COMPRESION DE DATOS.pptxCOMPRESION DE DATOS.pptx
COMPRESION DE DATOS.pptx
 
UNIDAD I
UNIDAD IUNIDAD I
UNIDAD I
 
cap10.pdf
cap10.pdfcap10.pdf
cap10.pdf
 
Compresion de Datos - Telecomunicaciones III
Compresion de Datos - Telecomunicaciones IIICompresion de Datos - Telecomunicaciones III
Compresion de Datos - Telecomunicaciones III
 
Tipos algoritmos
Tipos algoritmosTipos algoritmos
Tipos algoritmos
 
Lenguajes De Bajo Nivel
Lenguajes De Bajo NivelLenguajes De Bajo Nivel
Lenguajes De Bajo Nivel
 
Parte 3
Parte 3Parte 3
Parte 3
 
Lenguaje de simulacion
Lenguaje de simulacionLenguaje de simulacion
Lenguaje de simulacion
 
Codigos binarios
Codigos binariosCodigos binarios
Codigos binarios
 
Ingeneria De Software
Ingeneria De SoftwareIngeneria De Software
Ingeneria De Software
 
Algebra discreta
Algebra discretaAlgebra discreta
Algebra discreta
 
Codigo(s) Binario (Numericos)
Codigo(s) Binario (Numericos)Codigo(s) Binario (Numericos)
Codigo(s) Binario (Numericos)
 
Taller2 lab stats_matlab
Taller2 lab stats_matlabTaller2 lab stats_matlab
Taller2 lab stats_matlab
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Matlab
MatlabMatlab
Matlab
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
20 algoritmos
20 algoritmos20 algoritmos
20 algoritmos
 
Capa de enlace.
Capa de enlace.Capa de enlace.
Capa de enlace.
 

Más de 1121887074

Conferencia libro 3
Conferencia libro 3Conferencia libro 3
Conferencia libro 31121887074
 
Material de estudio 2
Material de estudio 2Material de estudio 2
Material de estudio 21121887074
 
Material de estudio
Material de estudioMaterial de estudio
Material de estudio1121887074
 
Códecs y formatos
Códecs y formatosCódecs y formatos
Códecs y formatos1121887074
 
Presentacion color imagen digital 2008
Presentacion color imagen digital 2008Presentacion color imagen digital 2008
Presentacion color imagen digital 20081121887074
 
Formatos graficos
Formatos graficosFormatos graficos
Formatos graficos1121887074
 
Hardware grafico
Hardware graficoHardware grafico
Hardware grafico1121887074
 

Más de 1121887074 (10)

Conferencia libro 3
Conferencia libro 3Conferencia libro 3
Conferencia libro 3
 
Material de estudio 2
Material de estudio 2Material de estudio 2
Material de estudio 2
 
Material de estudio
Material de estudioMaterial de estudio
Material de estudio
 
Vrml97
Vrml97Vrml97
Vrml97
 
Códecs y formatos
Códecs y formatosCódecs y formatos
Códecs y formatos
 
Iluminacion
IluminacionIluminacion
Iluminacion
 
Iluminacion
IluminacionIluminacion
Iluminacion
 
Presentacion color imagen digital 2008
Presentacion color imagen digital 2008Presentacion color imagen digital 2008
Presentacion color imagen digital 2008
 
Formatos graficos
Formatos graficosFormatos graficos
Formatos graficos
 
Hardware grafico
Hardware graficoHardware grafico
Hardware grafico
 

Técnicas de compresión de datos: reducción de bits, codificación y transformación

  • 1.
  • 2.
  • 3. Podríamos diferenciar tres tipos de técnicas de compresión : Reducción de la precisión de los valores individuales Codificación de los valores individuales reduciendo el número de bits Transformación de los datos en otra representación que sea más hábil de ser reducida Muchos formatos combinan dos o las tres formas de comprimir.
  • 4. REDUCCIÓN DE BITS  Comentamos algunos esquemas de codificación en esta línea: Códigos de desplazamiento (shift codes)  Si sólo un pequeño subconjunto consecutivo de valores aparece la mayor parte de las veces, entonces se puede elegir un código con longitud (bits) suficiente sólo para representar este subconjunto, de modo que los pocos valores que no estén en él se indican con un código especial de overflow que señala los valores representados con más longitud. Al indicar la mayoría de los valores con un número reducido de bits, se pueden conseguir reducciones significativas de tamaño, entre 2:1 y 3:1 usualmente, aunque siempre dependiendo del gráfico.  Para ello se desprecian algunos de los bits, dependiendo del rango de valores.  La NASA, por ejemplo, usa códigos de desplazamiento para transmitir la imagen de satélites.
  • 5. Códigos de Huffman  Los códigos de Huffman (su inventor) asignan un código de longitud variable a cada posible dato, de modo que los valores que ocurren más a menudo tienen códigos de menor longitud y viceversa. Dada la probabilidad de que un valor dado ocurra, el algoritmo de Huffman puede crear automáticamente un asignación de códigos.
  • 6. Códigos de Huffman  El concepto es sencillo de expresar gráficamente: ordenados los valores de mayor a menor probabilidad, se le asignarán códigos binarios: a los símbolos más frecuentes (ej. 35 %, 27, ...) se le asignan pocos bits (11, 10) y a los menos frecuentes (ej. Del 11% o 10%) mas bits (0001, 0000)
  • 7. Codificación aritmética  Tiene el mismo fundamento que el de Huffman (asociar un código en función de la probabilidad de cada valor), pero en este caso se funciona asociando códigos a grupos de valores (por ejemplo, si el valor 7 y el valor 23 tienen mucha probabilidad, este esquema asociará probablemente un código a la subserie 7 23, otro a la 7 7, otro a la 23 23... o incluso a subseries más largas, dependiendo de la probabilidad.  Es algo más complejo de implementar que el código de Huffman, pero produce entre un 5 y un 10% más compresión.
  • 8. TRANSFORMACIÓN  Es una técnica que permite evitar o minimizar la pérdida. Básicamente, hay que buscar patrones que se repitan en los datos. Si no existen (datos totalmente aleatorios), no puede existir compresión sin pérdida. De hecho, aplicar un esquema de compresión a datos totalmente aleatorios puede con facilidad incrementar el tamaño de los ficheros.
  • 9. Run-Length Encoding  La codificación RLE (Run-Length Encoding) busca la repetición de valores idénticos en una lista, y la reemplaza por un único valor precedido por el número de veces que se repite. Por ejemplo, la secuencia: 5 5 14 14 14 14 14 8 8 8 8 7 5 5 5 3 2 2 (18 bytes) se podría codificar usando la siguiente:  2 5 5 14 4 8 1 7 3 5 1 3 2 2 (14 bytes)  Algunos formatos que usan este esquema son: Postscript, Tiff, PCX, Targa ....
  • 10. Codificación LZW  El algoritmo LZW considera la posibilidad de que una secuencia de valores (no necesariamente iguales) se repita, aún no consecutivamente, en la secuencia de datos. Por ejemplo, la secuencia 4 12 10 2 8 4 12 10 9 8 4 12 10 9 8 4 se podría representar como a 2 8 a b a b 4 (siendo a = 4 12 10, b = 9 8)
  • 11. Diferenciación (differencing)  Este esquema de compresión se basa en el hecho de que en ficheros gráficos realistas es común que muchos datos sucesivos tengan diferencias pequeñas (por ejemplo, verdes de gamas muy similares con pequeñas variaciones de brillo). En ese caso, en vez de representar cada dato por completo, partiendo de uno inicial los demás se pueden expresar como diferencias con respecto a él, o al inmediato anterior, utilizando muchos menos bits para ello. Por ejemplo, la serie:  35 37 38 33 36 35 35  se puede representar con la otra:  35 -2 -1 5 -3 1 0
  • 12. Diferenciación (differencing)  La compresión de este tipo de algoritmos depende mucho de los datos aunque todos los gráficos habituales, tanto fotorealistas como no, suelen tener bastantes series reconocibles de valores cercanos. Reducciones de 1,5:1 a 3:1 pueden alcanzarse con facilidad.  Existen algoritmos de diferenciación de 2 dimensiones que se basan en comparaciones de cada línea horizontal del gráfico con la siguiente, buscando similitudes que es habitual que existan. Es el caso de los formatos JPEG o MPEG sin pérdida.
  • 13. Fractales  La compresión fractal se basa en encontrar grupos de datos determinados que con transformaciones fractales sucesivas se conviertan en una serie de datos similar a la original; con esto, simplemente almacenando el grupo y las transformaciones se representa de forma codificada a una serie completa (que puede ser larga).  Esta compresión suele requerir bastante tiempo de CPU, pero alcanza relaciones de compresión altas (entre 50:1 y 100:1, aunque se han encontrado ejemplos de hasta 1000:1).  Los algoritmos han sido desarrollados y registrados por Michal Barnsley, de Iterated Systems.
  • 14. Esquemas de transformaciones matemáticas  Existen muchas operaciones matemáticas que transforman un conjunto de valores a otro y después pueden ser aplicadas a la inversa para reconstruir el conjunto original. Algunas de ellas son especialmente útiles para su aplicación a algoritmos de compresión, por ejemplo: ◦ · Discrete Fourier Transform (DFT) ◦ · Discrete Cosine Transform (DCT) ◦ · Hadamard-Haar Transforms (HHT) ◦ · Karhunen-Loeve Transforms (KLT) ◦ · Slant-Haar Transforms (SHT) ◦ · Walsh-Hadamard Transforms (WHT)  Con mucho, la función más utilizada es la DCT, que por ejemplo se usa en versiones de JPEG y MPEG. Para ello se reemplazan bloques de intensidad de color de 8x8 píxels por una serie de valores parametrizando una función cosenoidal.