一.实验原理
JPEG是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。JPEG图像压缩算法能够在提供良好的压缩性能的同时,具有比较好的重建质量,被广泛应用于图像、视频处理领域。
JPEG编码流程:
JPEG编解码流程:
1.编码过程详解:
(1)零偏置:
对于灰度级是2n的像素,通过减去2n-1,将无符号的整数值变成有符号数。
eg.对于n=8,即将0~255的值域,通过减去128,转换为值域在-128~127之间的值
目的:使像素的绝对值出现3位10进制的概率大大减少。
(2)8x8DCT变换
将图像分为8x8的子块,边缘不满足8x8的部分则用边缘像素填充,然后对每一个子块进行DCT变换。
DCT变换公式:
(3)对DCT系数进行量化
量化采用中平型均匀量化器,量化步距是按照系数所在位置和颜色分量来确定。
因为人眼对亮度信号比对色差信号更敏感,因此使用了两种量化表:亮度量化值和色差量化值
根据人眼的视觉特性(对低频敏感,对高频不太敏感)对低频分量采取较细的量化,对高频分量采取较粗的量化
(4)编码
DC编码:
8×8图像块经过DCT变换之后得到的DC直流系数有两个特点
-系数的数值比较大
-相邻8×8图像块的DC系数值变化不大:冗余
根据这个特点,JPEG算法使用了差分脉冲调制编码(DPCM)技术,对相邻图像块之间量化DC系数的差值DIFF进行编码:
对DIFF用Huffman编码:分成类别
-类别ID:一元码编码
-类内索引:采用定长码