JPEG - Idea and Practice/Appendix 1: Summary of the header segments
DQT (quantization)
- Marker = (255, 219)
- Length = (0, 67)
- 0 (½ byte)
- destination identifier (½ byte)(for instance 0 for the Y component and 1 for the colour components)
- the table (64 bytes)
SOF (frame)
- Marker = (255, 192)
- Length = (0, 8 + 3 * number of components)
- 8
- width = b1*256 + b2, pair (b1, b2)
- height = b1*256 + b2, pair (b1, b2)
- number of components (1-3)
- for each component:
- component identifier (for instance 0, 1, 2 for the YCbCr components)
- Hi (½ byte)(1 for the colour components, 1 or 2 for the Y component)
- Vi (½ byte)(1 for the colour components, 1 or 2 for the Y component)
- quantization table destination selector (for instance 0 for the Y component and 1 for the colour components)
DHT (Huffman)
- Marker = (255, 196)
- Length = (0, 19 + number of Huffman values (nhv))
- 0 for DC, 1 for AC (½ byte)
- destination identifier (½ byte)(for instance 0 for the Y component and 1 for the colour components)
- the list BITS (16 byte)
- the list HUFFVAL (nhv bytes)
SOS (scan)
- Marker = (255, 218)
- Length = (0, 6 + 2 * number of components)
- number of components (1-3)
- for each component:
- component identifier (for instance 0, 1, 2 for the YCbCr components)
- destination selector of DC Huffman table (½ byte)(for instance 0 for the Y component and 1 for the colour components)
- destination selector of AC Huffman table (½ byte)(for instance 0 for the Y component and 1 for the colour components)
- 0
- 63
- 0