Tôi đang cố gắng viết bộ giải mã và bộ giải mã JPEG/JFIF từ đầu bằng C. Tôi đã thử viết một tệp JPEG mẫu, nhưng có vẻ như tôi không thể mở nó bằng cách sử dụng MS paint, Firefox. Nhưng tôi có thể giải mã nó bằng cách sử dụng JPEGsnoop (http://www.impulseadventure.com/photo/jpeg-snoop.html?ver=1.5.2) và http://nothings.org/stb_image.c. Tôi nghĩ rằng tệp JPEG mẫu tuân theo chuẩn JPEG/JFIF, tôi không biết tại sao các ứng dụng như MS sơn và Firefox không thể mở nó.Câu hỏi định dạng tập tin jpeg
Sau đây là cách mẫu JPEG trông giống như:
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
Các tập tin JPEG mẫu có ba thành phần Y Cb Cr. Không có subsampling cho thành phần Cb Cr. Hai bảng lượng tử hóa đều được lấp đầy. The Four bảng Huffman trong phân khúc DHT đều giống hệt nhau, nó trông như thế này
[0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0] [0,1,2, ... , 254]
Điều đó có nghĩa là tất cả các mã 8bits, vì vậy mã hóa Huffman không thực sự nén dữ liệu.
Các dữ liệu được mã hóa Huffman trông như thế này:
[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)
bất cứ ai có thể cho tôi biết những gì là sai với tập tin JPEG mẫu này? cảm ơn.
Dưới đây là một liên kết đến tệp mẫu JPEG (ha.jpg) http://www.guoxiaoyong.net/ha.jpg
Bạn có thể cung cấp liên kết đến tệp ví dụ không? –
tại sao phải đóng? Các poster đã làm rất nhiều công việc, rõ ràng hỏi các câu hỏi và giải thích những gì họ đang làm. –