2012-05-28 13 views
7

¿Por qué la compresión JPEG procesa la imagen por bloques de 8x8 en lugar de aplicar la Transformación de Coseno Discreto a toda la imagen?¿Por qué la compresión JPEG procesa la imagen en bloques de 8x8?

+0

consideran que la DCT es bueno en la compresión de las zonas más suaves con el contenido de baja frecuencia, pero bastante malo en la compresión de las áreas de contenido de alta frecuencia. –

+0

pregunta idéntica: http://stackoverflow.com/questions/11147666/why-do-image-compression-algorithms-process-the-image-by-sub-blocks/11147696#11147696 –

+0

Pregunta anterior idéntica: http: // stackoverflow.com/questions/74892/is-there-a-quality-file-size-or-other-benefit-to-jpeg-sizes-being-multiples-of –

Respuesta

1

Porque eso tomaría "para siempre" decodificar. No lo recuerdo completamente ahora, pero creo que necesitas al menos tantos coeficientes como píxeles en el bloque. Si codifica la imagen completa como un solo bloque, creo que necesita, para cada píxel, iterar a través de todos los coeficientes DCT.

No soy muy bueno en los grandes cálculos O pero supongo que la complejidad sería O ("para siempre"). ;-)

Para los codecs de video modernos, creo que han empezado a usar bloques de 16x16.

+2

Si necesita iterar en cada iteración, es O (n^2), no "para siempre", que es O (n!). – Triang3l

2

8 X 8 fue elegido después de numerosos experimentos con otros tamaños.

1. Las matrices de tamaños superiores a 8 X 8 son más difíciles de realizar operaciones matemáticas (como transformadas, etc. 2. Cualquier matriz de tamaños inferiores a 8 X 8 no tiene suficiente información para continuar junto con la tubería. Resulta en una mala calidad de la imagen comprimida.

Lee, mi blog, http://nboddula.blogspot.com/2013/05/image-compression-how-jpeg-works.html

Cuestiones relacionadas