Estoy tratando de escribir un codificador y decodificador JPEG/JFIF desde cero usando C. Experimenté escribiendo un archivo JPEG de muestra, pero parece que no puedo abrirlo usando MS paint, Firefox. Pero puedo decodificarlo usando JPEGsnoop (http://www.impulseadventure.com/photo/jpeg-snoop.html?ver=1.5.2) y http://nothings.org/stb_image.c. Creo que el archivo JPEG de muestra cumple con el estándar JPEG/JFIF, no sé por qué aplicaciones como MS paint y Firefox no pueden abrirlo.formato de archivo jpeg pregunta
Así es como la muestra JPEG se parece a:
SOI APP0 segment DQT segment (contains two quantization tables) COM segment SOF0 segment DHT segment (contains four Huffman tables) SOS segment huffman encoded data EOI
El archivo JPEG muestra tiene tres componentes Y Cb Cr. Sin submuestreo para el componente Cb Cr. Las dos tablas de cuantificación están todas llenas. Las cuatro tablas de Huffman en el segmento de DHT son todos idénticos, parece que este
[0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0] [0,1,2, ... , 254]
Eso significa que todos los códigos son 8 bits, por lo que la codificación Huffman en realidad no comprimir los datos.
Los datos codificados Huffman este aspecto:
[0x0000(DC) 0x0000(AC)](Y) [0x0000(DC) 0x0000(AC)](Cb) [0x0000(DC) 0x0000(AC)](Cr) for all (i, j) MCUs except (10, 10) the data in (10, 10) MCU: [0x0008(DC) 0x0000(DC), 0x0000(AC)](Y) [0x0000(DC) 0x0000(AC)](Cb) [0x0000(DC) 0x0000(AC)](Cr)
Puede alguien decirme lo que está mal con este archivo JPEG muestra? Gracias.
Aquí hay un enlace para el archivo de ejemplo JPEG (ha.jpg) http://www.guoxiaoyong.net/ha.jpg
Podría dar un enlace a un archivo de ejemplo? –
¿por qué el cierre? El póster ha trabajado mucho, hizo la pregunta claramente y explicó lo que están haciendo. –