导读:静态图像编码标准jpeg压缩算法分为几步分别用了什么算法描述基于dct变换的jpeg过程...
MJPEG 是指 Motion JPEG,即动态JPEG,按照25帧/秒速度使用JPEG 算法压缩视频信号,完成动态视频的压缩。是由JPEG专家组制订的,其图像格式是对每一帧进行压缩,通常可达到6:1的压缩率,但这个比率相对来说仍然不足。就像每一帧都是独立的图像一样。MJPEG图像流的单元就是一帧一帧的JPEG画片。因为每帧都可任意存取,所以MJPEG常被用于视频编辑系统。动态JPEG能产生高质量、全屏、全运动的视频,但是,它需要依赖附加的硬件。而且,由于MJPEG不是一个标准化的格式,各厂家都有自己版本的MJPEG,双方的文件无法互相识别。
MJPEG的优点是画质还比较清晰,缺点是压缩率低,占用带宽很大。一般单路占用带宽2M左右。
2)H.264压缩技术
H.264视频编码标准是专为中高质量运动图像压缩所设计的低码率图像压缩标准。H.264 采用运动视频编码中常见的编码方法,将编码过程分为帧内编码和帧间编码两个部分。埃帧内用改进的DCT 变换并量化,在帧间采用1/2 象素运动矢量预测补偿技术,使运动补偿更加精确,量化后适用改进的变长编码表(VLC)地量化数据进行熵编码,得到最终的编码系数。
H.264标准压缩率较高,CIF格式全实时模式下单路占用带宽一般在几百左右,具体占用带宽视画面运动量多少而不同。缺点是画质相对差一些,占用带宽随画面运动的复杂度而大幅变化。
3)MPEG-1(VCD标准) 压缩技术
制定于1992年,为工业级标准而设计,可适用于不同带宽的设备,如CD-ROM,Video-CD、CD-i。它用于传输1.5Mbps数据传输率的数字存储媒体运动图像及其伴音的编码,经过MPEG-1标准压缩后,视频数据压缩率为1/100~1/200,影视图像的分辩率为360×240×30(NTSC制)或360×288×25(PAL制),它的质量要比家用录像系统(VHS-Video Home System)的质量略高。音频压缩率为1/6.5,声音接近于CD-DA的质量。MPEG-1允许超过70分钟的高质量的视频和音频存储在一张CD-ROM盘上。VCD采用的就是MPEG-1的标准,该标准是一个面向家庭电视质量级的视频、音频压缩标准。MPEG-1的编码速率最高可达4-5Mbits/sec,但随着速率的提高,其解码后的图象质量有所降低。MPEG-1也被用于数字电话网络上的视频传输,如非对称数字用户线路(ADSL),视频点播(VOD),以及教育网络等。同时,MPEG-1也可被用做记录媒体或是在INTERNET上传输音频。MPEG1标准占用的网络带宽在1.5M左右。
4)MPEG-2 (DVD标准)压缩技术
制定于1994年,设计目标是高级工业标准的图象质量以及更高的传输率,主要针对高清晰度电视(HDTV)的需要,传输速率在3-10Mbits/sec间,与MPEG-1兼容,适用于1.5~60Mbps甚至更高的编码范围。分辩率为720×480×30(NTSC制)或720×576×25(PAL制)。影视图像的质量是广播级的质量,声音也是接近于CD-DA的质量。MPEG-2是家用视频制式(VHS)录像带分辩率的两倍。MPEG-2的音频编码可提供左右中及两个环绕声道,以及一个加重低音声道,和多达7个伴音声道(DVD可有8种语言配音的原因)。由于MPEG-2在设计时的巧妙处理,使得大多数MPEG-2解码器也可播放MPEG-1格式的数据,如VCD。除了做为DVD的指定标准外,MPEG-2还可用于为广播,有线电视网,电缆网络以及多级多点的直播 (Direct Broadcast Satellite) 提供广播级的数字视频。MPEG-2的另一特点是,其可提供一个较广的范围改变压缩比,以适应不同画面质量,存储容量,以及带宽的要求。对于最终用户来说,由于现存电视机分辨率限制,MPEG-2所带来的高清晰度画面质量(如DVD画面)在电视上效果并不明显,到是其音频特性(如加重低音,多伴音声道等)更引人注目。MPEG-2的画质质量最好,但同时占用带宽也非常大,在4M-15M之间,不太适于远程传输。
5)MPEG-4压缩技术
如果说,MPEG-1“文件小,但质量差”;而MPEG-2则“质量好,但更占空间”的话,那么MPEG-4则很好的结合了前两者的优点。它于1998年10月定案,在1999年1月成为一个国际性标准,随后为扩展用途又进行了第二版的开发,于1999年底结束。MPEG-4是超低码率运动图像和语言的压缩标准,它不仅是针对一定比特率下的视频、音频编码,更加注重多媒体系统的交互性和灵活性。MPEG-4标准主要应用于视像电话(Video Phone),视像电子邮件(Video Email)和电子新闻(Electronic News)等,其传输速率要求较低,在4800-64Kbits/sec之间,分辨率为176X144。MPEG-4利用很窄的带宽,通过帧重建技术,压缩和传输数据,以求以最少的数据获得最佳的图象质量。与MPEG-1和MPEG-2相比,MPEG-4为多媒体数据压缩提供了一个更为广阔的平台。它更多定义的是一种格式、一种架构,而不是具体的算法。它可以将各种各样的多媒体技术充分用进来,包括压缩本身的一些工具、算法,也包括图像合成、语音合成等技术。 MPEG-4的特点是其更适于交互AV服务以及远程监控。MPEG-4是第一个使你由被动变为主动(不再只是观看,允许你加入其中,即有交互性)的动态图象标准;它的另一个特点是其综合性;从根源上说,MPEG-4试图将自然物体与人造物体相溶合(视觉效果意义上的)。MPEG-4的设计目标还有更广的适应性和可扩展性。
MPEG4标准的占用带宽可调,占用带宽与图像的清晰度成正比。以目前的技术,一般占用带宽大致在几百K左右。
总之,本闭路电视监控是一个使本工厂高度自动化、高效率的幽雅舒适、便利快捷、高度安全的环境空间。
表示图像以节约存储费用,或者传输时间和费用。
JPEG压缩算法可以用失真的压缩方式来处理图像,但失真的程度却是肉眼所
无法辩认的。这也就是为什么JPEG会有如此满意的压缩比例的原因。
下面主要讨论,JPEG基本压缩法。
一.JPEG压缩过程 JPEG压缩分四个步骤实现:
1.颜色模式转换及采样;
2.DCT变换;
3.量化;
4.编码。 二.1.颜色模式转换及采样 RGB色彩系统是我们最常用的表示颜色的方式。JPEG采用的是YCbCr色彩系统。
想要用JPEG基本压缩法处理全彩色图像,得先把RGB颜色模式图像数据,转换为
YCbCr颜色模式的数据。Y代表亮度,Cb和Cr则代表色度、饱和度。通过下列计算
公式可完成数据转换。
Y=0.2990R+0.5870G+0.1140B
Cb=-0.1687R-0.3313G+0.5000B+128
Cr=0.5000R-0.4187G-0.0813B+128
人类的眼晴对低频的数据比对高频的数据具有更高的敏感度,事实上,人类
的眼睛对亮度的改变也比对色彩的改变要敏感得多,也就是说Y成份的数据是比较
重要的。既然Cb成份和Cr成份的数据比较相对不重要,就可以只取部分数据来处
理。以增加压缩的比例。JPEG通常有两种采样方式:YUV411和YUV422,它们所代
表的意义是Y、Cb和Cr三个成份的数据取样比例。 2.DCT变换 DCT变换的全称是离散余弦变换(Discrete Cosine Transform),是指将一组
光强数据转换成频率数据,以便得知强度变化的情形。若对高频的数据做些修饰,
再转回原来形式的数据时,显然与原始数据有些差异,但是人类的眼睛却是不容
易辨认出来。
压缩时,将原始图像数据分成8*8数据单元矩阵,例如亮度值的第一个矩阵内
容如下: JPEG将整个亮度矩阵与色度Cb矩阵,饱和度Cr矩阵,视为一个基本单元称作
MCU。每个MCU所包含的矩阵数量不得超过10个。例如,行和列采样的比例皆为4:
2:2,则每个MCU将包含四个亮度矩阵,一个色度矩阵及一个饱和度矩阵。
当图像数据分成一个8*8矩阵后,还必须将每个数值减去128,然后一一代入
DCT变换公式中,即可达到DCT变换的目的。图像数据值必须减去128,是因为DCT
转换公式所接受的数字范围是在-128到+127之间。
DCT变换公式:
x,y代表图像数据矩阵内某个数值的坐标位置
f(x,y)代表图像数据矩阵内的数个数值
u,v代表DCT变换后矩阵内某个数值的坐标位置
F(u,v)代表DCT变换后矩阵内的某个数值
u=0 且 v=0 c(u)c(v)=1/1.414
u>0 或 v>0 c(u)c(v)=1
经过DCT变换后的矩阵数据自然数为频率系数,这些系数以F(0,0)的值最
大,称为DC,其余的63个频率系数则多半是一些接近于0的正负浮点数,一概称
之为AC。
3、量化
图像数据转换为频率系数后,还得接受一项量化程序,才能进入编码阶段。
量化阶段需要两个8*8矩阵数据,一个是专门处理亮度的频率系数,另一个则是
针对色度的频率系数,将频率系数除以量化矩阵的值,取得与商数最近的整数,
即完成量化。
当频率系数经过量化后,将频率系数由浮点数转变为整数,这才便于执行最
后的编码。不过,经过量化阶段后,所有数据只保留整数近似值,也就再度损失
了一些数据内容,JPEG提供的量化表如下: 4、编码
Huffman编码无专利权问题,成为JPEG最常用的编码方式,Huffman编码通常
是以完整的MCU来进行的。
编码时,每个矩阵数据的DC值与63个AC值,将分别使用不同的Huffman编码
表,而亮度与色度也需要不同的Huffman编码表,所以一共需要四个编码表,才
能顺利地完成JPEG编码工作。
DC编码
DC是彩采用差值脉冲编码调制的差值编码法,也就是在同一个图像分量中取
得每个DC值与前一个DC值的差值来编码。DC采用差值脉冲编码的主要原因是由于
在连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比
对原值进行编码所需的位数少许多。例如差值为5,它的二进制表示值为101,如
果差值为-5,则先改为正整数5,再将其二进制转换成1的补数即可。所谓1的补
数,就是将每个Bit若值为0,便改成1;Bit为1,则变成0。差值5应保留的位数
为3,下表即列出差值所应保留的Bit数与差值内容的对照。
在差值前端另外加入一些差值的霍夫曼码值,例如亮度差值为5(101)的位
数为3,则霍夫曼码值应该是100,两者连接在一起即为100101。下列两份表格分
别是亮度和色度DC差值的编码表。根据这两份表格内容,即可为DC差值加上霍夫
曼码值,完成DC的编码工作。
AC编码
AC编码方式与DC略有不同,在AC编码之前,首先得将63个AC值按Zig-zag排
序,即按照下图箭头所指示的顺序串联起来。
63个AC值排列好的,将AC系数转换成中间符号,中间符号表示为RRRR/SSSS,
RRRR是指第非零的AC之前,其值为0的AC个数,SSSS是指AC值所需的位数,AC系
数的范围与SSSS的对应关系与DC差值Bits数与差值内容对照表相似。
如果连续为0的AC个数大于15,则用15/0来表示连续的16个0,15/0称为ZRL
(Zero Rum Length),而(0/0)称为EOB(Enel of Block)用来表示其后所
剩余的AC系数皆等于0,以中间符号值作为索引值,从相应的AC编码表中找出适
当的霍夫曼码值,再与AC值相连即可。
例如某一组亮度的中间符为5/3,AC值为4,首先以5/3为索引值,从亮度AC
的Huffman编码表中找到1111111110011110霍夫曼码值,于是加上原来100(4)
即是用来取[5,4]的Huffman编码1111111110011110100,[5,4]表示AC值为4的
前面有5个零。
由于亮度AC,色度AC霍夫曼编码表比较长,在此省略去,有兴趣者可参阅相
关书籍。
实现上述四个步骤,即完成一幅图像的JPEG压缩。 参考资料
[1] 林福宗 《图像文件格式(上)——Windows 编程》,清华大学出版社,
1996年
[2] 李振辉、李仁各编著,《探索图像文件的奥秘》,清华大学出版社,1996年
[3] 黎洪松、成实译《JPEG静止数据压缩标准》,学苑出版社,1996年