JPEG分析及解码
1.JPEG文件简介:
JPEG(Joint Photo-Graphic Experts Group)-静止图像编码。是一种常用的图像文件格式,通过有损压缩去除冗余,能够在获得极高压缩率的同时得到较好的图像质量2.JPEG编解码的主要步骤:
通过DCT变换具有的去相关性和能量集中性,将图像从空间域变换到频域,去除空间冗余;用与人眼视觉特性相关的量化表量化DCT系数,减少视觉冗余;对量化后的DC系数和AC系数分别进行预测编码和游程编码,减少编码冗余。
3.JPEG文件的组织形式
以segment的形式组织,具有以下特点:
1. 均以0XFF开始,后跟1字节的标记代码,2字节表示数据长度
2. 保存时高位在前,低位在后
共包含7个基本的segment
a. SOI:start of image
标记代码:2字节,固定为0XFFD8,表示图像开始
所有JPEG文件必须以SOI开始,但无数据长度字节
b. EOI:end of image
标记代码:2字节0XFFD9
所有JPEG文件必须以EOI结束,也无数据长度字节
c. APP0:应用程序保留字节0
标记代码:2字节,固定为0XFFE0
共9个数据字段
数据长度:2字节
标识符:5字节,固定值0X4A46494600,即字符串:“JFIF0”
版本号:2字节,表示JFIF的版本号
X和Y的密度单位:1字节,且只有三个值可选:0:无单位;1:点数/英寸;2:点数/厘米
X方向像素单位:2字节
Y方向像素单位:2字节
缩略图水平像素数目:1字节
缩略图垂直像素数目:1字节
缩略图RGB位图:长度可能是3的数目
缩略图RGB位图数据
d. 量化表
标记代码:2字节,固定值0XFFDB
数据长度:2字节,表示数据字段及多个量化表的总数据长度
量化表:
精度及量化表ID:1字节
高四位:精度,0:8位;1:16位
低四位:量化表ID,取值范围0~3
表项:8位:表项长度为64字节,16位表项长度为128字节
00:表示精度为8位,ID:0表示亮度量化表
01:精度为8位,ID:1表示色度量化表
e. SOF0:start of frame 帧图像开始
标记代码:2字节,固定值0XFFC0
精度:1字节,每个颜色分量每个像素的位数
图像高度:2字节,单位:像素(pixel)
图像宽度:2字节,单位:像素(pixel)
颜色分量数:1字节
颜色分量信息:
颜色索引ID:1字节,备选值:01、02、03
采样因子(sample factor):1字节
高四位:水平采样因子
低四位:垂直采样因子
量化表号:1字节
f. DHT:定义Huffman码表
标记代码:2字节,固定值0XFFC4
数据长度:2字节
Huffman表:
表ID和表类型:1字节
高四位:类型;0:DC直流;1:AC交流
低四位:Huffman表ID(DC,AC分开编码)