Structure of a JPG file by Naphier20th Nov 2011 14:02
|
---|
Summary JPG file structure illustrating data start positions http://en.wikipedia.org/wiki/JPEG Description Code ` This code was downloaded from The Game Creators ` It is reproduced here with full permission ` http://www.thegamecreators.com Common JPEG markers[14] Short name Bytes Payload Name Comments SOI 0xFF, 0xD8 none Start Of Image SOF0 0xFF, 0xC0 variable size Start Of Frame (Baseline DCT) Indicates that this is a baseline DCT-based JPEG, and specifies the width, height, number of components, and component subsampling (e.g., 4:2:0). SOF2 0xFF, 0xC2 variable size Start Of Frame (Progressive DCT) Indicates that this is a progressive DCT-based JPEG, and specifies the width, height, number of components, and component subsampling (e.g., 4:2:0). DHT 0xFF, 0xC4 variable size Define Huffman Table(s) Specifies one or more Huffman tables. DQT 0xFF, 0xDB variable size Define Quantization Table(s) Specifies one or more quantization tables. DRI 0xFF, 0xDD 2 bytes Define Restart Interval Specifies the interval between RSTn markers, in macroblocks. This marker is followed by two bytes indicating the fixed size so it can be treated like any other variable size segment. SOS 0xFF, 0xDA variable size Start Of Scan Begins a top-to-bottom scan of the image. In baseline DCT JPEG images, there is generally a single scan. Progressive DCT JPEG images usually contain multiple scans. This marker specifies which slice of data it will contain, and is immediately followed by entropy-coded data. RSTn 0xFF, 0xD0 … 0xD7 none Restart Inserted every r macroblocks, where r is the restart interval set by a DRI marker. Not used if there was no DRI marker. The low 3 bits of the marker code cycle in value from 0 to 7. APPn 0xFF, 0xEn variable size Application-specific For example, an Exif JPEG file uses an APP1 marker to store metadata, laid out in a structure based closely on TIFF. COM 0xFF, 0xFE variable size Comment Contains a text comment. EOI 0xFF, 0xD9 none End Of Image |