Download - Jpeg realize analysis
HI, JPEG
JPEG 文件解析
图像的宽、高、 Huffman 表、量化表等等。标记码有很多,但绝大多数的 JPEG 文件只包含几种。标记码的结构为:SOI ,DQT (量化表) ,DRI,SOF0,DHT (哈夫曼编码表) ,SOS
压缩数据 , 以 EOI标志结束。
HI, JPEG
1.1 、 空间变换
通常把 RGB 空间表示的彩色图像变换到其他色彩空间 (YUV) 。
每个点保存一个 8bit 的亮度值 , 每 2x2 个点保存一个 Cr Cb 值 , 而图象在肉眼中的感觉不会起太大的变化 . 所以 , 原来用 RGB 模型 , 4 个点需要 4x3=12 字节 . 而现在仅需要 4+2=6 字节 ; 平均每个点占 12bit.
HI, JPEG 1.4 、 “ Z” 字形编排
对于前面量化的系数所作的 “ Z” 字形编排结果就是:
底部 − 26 ,− 3 , 0 ,− 3 ,− 3 ,− 6 , 2 ,− 4 , 1 −4 , 1 , 1 , 5 , 1 , 2 ,− 1 , 1 ,− 1 , 2 , 0 , 0 , 0 , 0 ,0 ,− 1 ,− 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 顶部
HI, JPEG
1.5 、编 码
一、直流 DC 系数使用 DPCM (差分脉冲
调制编码 )编码;
二、交流 AC 系数使用 RLE (行程)编
码;
三、最后用 范式 Huffman 编码来处理。
HI, JPEG 2.2 DCT 与 zigzag 部分
离散余弦变化内部包含 8 组 dct_block ,每组dct_block 包含 8 个 dct_unit, 如下图所示:
……
Dct_unit1
Dct_unit2
Dct_unit3
Dct_unit4
Dct_unit5
Dct_unit6
Dct_unit7
Dct_unit0
Dct_unit1
Dct_unit2
Dct_unit3
Dct_unit4
Dct_unit5
Dct_unit6
Dct_unit7
Dct_unit0
Dout
zigzag
din
HI, JPEG
AC经过 RLE 编码后的数据格式为:
Amp (非零 AC 值)Size (非零 AC 有效长度)
Rlen ( 0 的个数)
DC经过 RLE 编码后的数据格式为:
Amp ( DC 差值)Size ( DC 差值有效长度)