解码问题

[复制链接]
 楼主| 四叶草 发表于 2007-11-12 23:54 | 显示全部楼层 |阅读模式
JPEG解码问题,我的资料上说从文件头读出文件的相关信息。但是从何读起呢?我用ultraedit打开的jpeg文件时内容如下:<br />00000000h:&nbsp;FF&nbsp;D8&nbsp;FF&nbsp;E0&nbsp;00&nbsp;10&nbsp;4A&nbsp;46&nbsp;49&nbsp;46&nbsp;00&nbsp;01&nbsp;02&nbsp;01&nbsp;00&nbsp;48&nbsp;;&nbsp;
chunyang 发表于 2007-11-13 01:41 | 显示全部楼层

Jpeg文件结构

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

好东东哦

自已编程解压是很累的拉<br />其实转成bmp档再取数据就简单多了,现在内存也不贵
平常人 发表于 2007-11-13 08:27 | 显示全部楼层

收藏先,什么时候把算法搞来研究研究

谢谢chunyang啦。
mybao 发表于 2007-11-16 13:04 | 显示全部楼层

chunyang 厉害啊

jwins 发表于 2007-11-19 12:37 | 显示全部楼层

我有JPEG的解码库C语言的

需要的朋友,可以发邮件给我!共同交流!<br />可支持杂MCU、DSP、ARM上的应用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

109

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

71

主题

109

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部