JPEG文件由八个部分组成,每个部分的标记字节为两个,首字节固定为:0xFF,当然,准许在其前面再填充多个0xFF,以最后一个为准。下面为各部分的名称和第二个标记字节的数值,用ultraedit的16进制搜索功能可找到各部分的起始位置,在嵌入式系统中可用类似的数值匹配法定位。<br />一、图像开始SOI(Start of Image)标记,数值0xD8<br />二、APP0标记(Marker),数值0xE0<br />1、APP0长度(length)<br />2、标识符(identifier)<br />3、版本号(version)<br />4、X和Y的密度单位(units=0:无单位;units=1:点数/英寸;units=2:点数/厘米)<br />5、X方向像素密度(X density)<br />6、Y方向像素密度(Y density)<br />7、缩略图水平像素数目(thumbnail horizontal pixels)<br />8、缩略图垂直像素数目(thumbnail vertical pixels)<br />9、缩略图RGB位图(thumbnail RGB bitmap),由前面的数值决定,取值3n,n为缩略图总像素<br />三、APPn标记(Markers),其中n=1~15,数值对应0xE1~0xEF <br />1、APPn长度(length)<br />2、应用细节信息(application specific information)<br />四、一个或者多个量化表DQT(difine quantization table),数值0xDB<br />1、量化表长度(quantization table length)<br />2、量化表数目(quantization table number)<br />3、量化表(quantization table)<br />五、帧图像开始SOF0(Start of Frame),数值0xC0<br />1、帧开始长度(start of frame length)<br />2、精度(precision),每个颜色分量每个像素的位数(bits per pixel per color component)<br />3、图像高度(image height)<br />4、图像宽度(image width)<br />5、颜色分量数(number of color components)<br />6、对每个颜色分量(for each component)<br />包括:ID、垂直方向的样本因子(vertical sample factor)、水平方向的样本因子(horizontal sample factor) 、量化表号(quantization table#)<br />六、一个或者多个霍夫曼表DHT(Difine Huffman Table),数值0xC4<br />1、霍夫曼表的长度(Huffman table length)<br />2、类型、AC或者DC(Type, AC or DC)<br />3、索引(Index)<br />4、位表(bits table)<br />5、值表(value table)<br />七、扫描开始SOS(Start of Scan),数值0xDA<br />1、扫描开始长度(start of scan length)<br />2、颜色分量数(number of color components)<br />3、每个颜色分量<br />包括:ID、交流系数表号(AC table #)、直流系数表号(DC table #)<br />4、压缩图像数据(compressed image data)<br />八、图像结束EOI(End of Image),数值0xD9<br /><br /> 以上为基本可供检索的信息,细节内容不是小篇幅可以说清的,那可是一本书中至少一章的内容,几十页纸啊,最好到书店去买一本相关工具书,搞图像可少不了书的。
|