JPEG图像预处理

来源:互联网 发布:linux find查找文件名 编辑:程序博客网 时间:2024/05/04 01:16
 

JPEG编码可分为基本系统、扩展系统和无损系统Baseline SystemExtended System和Lossless System

 

JPEG编码参数:

l         输入数据为YCbCr型。数据的范围应是有符号数(满足DCT要求),数据可以是交织的也可以是未交织的。

l         可以进行812bit精度的编码,无损模式可以进行2~16bit精度的编码。

l         具有JFIF格式(两个版本0×0101,0×0102)。

l         XY密度可选择不指定、英寸和厘米。

l         可以拥有1~255个分量。每个分量的精度必须相同。

l         可以采用8bit16bit量化。同时JPEG也支持设定量化质量等级,但是压缩比例会因图像而异。

 

JPEG编码提供了四种模式

l         DCT-based顺序模式(Sequential encoding:图像中的每个分量均采用从左至右,从上至下的方式进行扫描。仅能实现8或者12bit精度的编码,对于其他精度表示的图像由用户负责对应转换工作。

l         DCT-based渐进模式(Progressive encoding:当图像传输所需时间较长或接收者希望观看到的图像由粗糙至清晰时,图像将以多重扫描进行编码。

l         无损模式(Lossless encoding:编码后能保证精确的恢复每一个像素值,但是压缩比将降低(通常为2:1)。无损模式主要以预测取代DCT和量化,能够实现2~16bit精度的编码。

l         分级模式(Hierarchical encoding:此模式下,图像将以不同分辨率大小进行压缩,这样接收端可以获取低分辨率图像,而不需对所有数据码流进行解压。

 

所有模式中最常用的是JPEGBaseline)。此模式规定:

l         图像统一分割为8*8的数据块;

l         每个分量必须具有同样的表示精度;

l         图像可包含1或者3个色彩分量,即颜色模式可设置为grayscaleYCbCr

l         可以拥有两套量化表,规定每个分量的量化精度为8bit

l         基本模式规定熵编码采用huffman表。可以拥有两套熵编码表。每套表包括一张DC编码表和一张AC编码表。

因此图像在进行分片前需要进行预处理,具体包括三步:

(1)       颜色空间的转换

JPEG输入的数据为YCbCr格式,因此RGB或YUV格式都必须转换为YCbCr。转换公式可查阅有关色度空间资料。

 

(2)       空间滤波

对于4:4:44:2:2采样的图像可以统一处理为4:2:0压缩图像带宽。由于JPEG压缩对每个分量分别进行,所以通过预处理能够大大减少计算量。

 

(3)       表示范围的调整

8位DCT处理的数据范围是-128~127,因此进行DCT变换前,需要将YCbCr像素值做相应的调整,例如Y减去128.

原创粉丝点击