2011-12-14 31 views
5

Tôi gặp sự cố khi phân tích tệp jpeg. Khi tôi nhấn điểm đánh dấu SOS (bắt đầu quét), có vài byte có nghĩa là tôi không hiểu. Trong hình dưới đây, sau khi SOS đánh dấu, có 2 byte cho chiều dài tiêu đề (Ls một phần trên hình ảnh). Nhưng phần còn lại của dữ liệu trên hình ảnh có nghĩa là gì (ví dụ Ns, Cs1 vv ....) và dữ liệu thuần túy bắt đầu từ đâu? SOS jpeg file headerPhân tích tệp jpeg, SOS đánh dấu

Trả lời

4

CS1 là một chỉ số thành phần lựa chọn, này đề cập trở lại phần SOF (nơi các yếu tố lấy mẫu theo chiều ngang và thẳng đứng được quy định)

TD1 là bảng chọn DC cho thành phần hiện tại (CS1)

Ta1 là bộ chọn bảng AC cho thành phần hiện tại (Cs1)

Ss, Se và Ah, Al xác định lựa chọn phổ cho dữ liệu quét hiện tại (được sử dụng trong các bitmap tiến bộ). tần số thấp hơn được hiển thị, trong vòng cuối cùng, mo tái tần số chi tiết được hiển thị)

Dữ liệu quét bắt đầu sau khi Al

Nói tóm lại,

SOS (2 bytes) 
Ls (2 Bytes) 
Ns (1 byte) 
Component Specific Parameters (Ns * 2 bytes) 
Ss (1 byte) 
Se (1 byte) 
Ah,AL (1 byte) 
... scan data ... 
+0

Thx cho câu trả lời của bạn, nhưng ngoại trừ các thông số phần-Thông số kỹ thuật tôi cần bất kỳ byte khác để làm gốc Hình ảnh (Tôi đã tạo bảng và mã Huffman, và đọc bảng Quantization) – MrD

+0

Đối với jpeg đơn giản, bạn sẽ cần các yếu tố lấy mẫu chiều cao, chiều rộng, horizonatal và dọc, bảng huffman, bảng lượng tử, đánh dấu khởi động lại (tùy chọn), Cs1, Cs2, Cs3 và dĩ nhiên là dữ liệu quét. Đối với một jpg tiến bộ bạn sẽ có nhiều hơn một khung – Jimmy

+0

làm thế nào để tôi biết là nó tiến bộ và sự khác biệt giữa jpeg đơn giản và jpeg tiến bộ là gì? – MrD

Các vấn đề liên quan