数字视频信号源的编码器和解码器的研究1.docx
《数字视频信号源的编码器和解码器的研究1.docx》由会员分享,可在线阅读,更多相关《数字视频信号源的编码器和解码器的研究1.docx(17页珍藏版)》请在冰豆网上搜索。
数字视频信号源的编码器和解码器的研究1
摘要
数字视频/音频压缩编码是数字电视广播系统中非常重要的环节,主要解决电视信号数字化后所带来的海量数据量如何能够有效地存储和传输的问题。
近20年来,视频/音频压缩编码技术一直处于快速发展之中,新技术和新标准不断涌现,现代视频/音频压缩编码技术已经比较成熟,可以在保持较好图像质量前提下,达到较高的压缩比。
数字化技术的发展和成熟已使数字高清晰度电视(HDTV)成为现实。
高清晰度电视是新一代电视,其扫描线在1000行以上,每行1920个像素,宽高比为16:
9,较常规电视更符合人们的视觉特性,使图像质量与35mm首映电影相当。
但是由于像素数大幅度增加,使本来数码位就较高的二进制编码形成极大的编码数据,使HDTV的信息量可达常规电视的5倍以上,传输时占用频带宽,存储时占用媒体容量大,特别是对计算量最为庞大的运动估算的运动算法来说,编码器无疑要有非常高的处理速度,这样给实际应用开发带来了极大困难。
因此,必须对HDTV图像进行压缩编码。
本文主要针对数字视频信号源的编码器和解码器的研究。
关键词:
视频/音频压缩编码技术,编码器,译码器
目录
1数字电视的简介以及视频编码的原理1
1.1数字电视简介1
1.2视频编码的原理2
2视频压缩编码的方法3
2.1莫尔斯码与信源编码3
2.2差值脉冲编码3
2.3预测编码基本原理4
2.4游程长度编码6
2.5霍夫曼编码6
2.6运动估计的运动补偿编码8
3MPEG-2编码器原理9
3.1MPEG-2的编码方式9
3.2PAL解码器13
3.3MPEG-2视频编码器14
4MPEG-2解码器原理15
4.1视频基本码流结构15
4.2MPEG-2解码16
总结17
致谢18
参考文献19
1数字电视的简介以及视频编码的原理
1.1数字电视简介
数字生活方式是现代文明的一个重要标志。
在与人们工作生活密切相关的电脑、手机和电视三大信息平台中,电脑和手机已实现了数字化和网络化,为人们带来了多姿多彩的资讯和娱乐服务,也为相关企业带来了巨额利润。
数字电视将带来数字生活方式的又一场惊天动地的革命。
数字电视就是指从演播室到发射、传输、接收的所有环节都是使用数字电视信号或对该系统所有的信号传播都是通过由0、1数字串所构成的数字流来传播的电视类型。
其信号损失小,接收效果好。
工作原理
将电视的视音频信号数字化后,其数据量是很大的,非常不利于传输,因此数据压缩技术成为关键。
实现数据压缩技术方法有两种:
一、是在信源编码过程中进行压缩
IEEE的MPEG专家组已发展制订了ISO/IEC13818(MPEG-2)国际标准,MPEG-2采用不同的层和级组合即可满足从家庭质量到广播级质量以及将要播出的高清晰度电视质量不同的要求,其应用面很广,它支持标准分辨率16:
9宽屏及高清晰度电视等多种格式,从进入家庭的DVD到卫星电视、广播电视微波传输都采用了这一标准。
二、是改进信道编码
发展新的数字调制技术,提高单位频宽数据传送速率。
如,在欧洲DVB数字电视系统中,数字卫星电视系统(DVB-S)采用正交相移键控调制(QPSK);数字有线电视系统(DVB-C)采用正交调幅调制(QAM);数字地面开路电视系统就(DVB-T)采用更为复杂的编码正交频分复用调制(COFDM)。
数字电视可以按以下几种方式分类:
按信号传输方式分类
可以分为地面无线传输(地面数字电视DVB-T)、卫星传输(卫星数字电视DVB-S)、有线传输(有线数字电视DVB-C)三类。
按产品类型分类
可以分为数字电视显示器、数字电视机顶盒、一体化数字电视接收机。
按清晰度分类
可以分为低清晰度数字电视(图像水平清晰度大于250线)、标准清晰度数字电视(图像水平清晰度大于500线)、高清晰度数字电视(图像水平清晰度大于800线,即HDTV)。
VCD的图像格式属于低清晰度数字电视(LDTV)水平,DVD的图像格式属于标准清晰度数字电视(SDTV)水平。
按显示屏幕幅型分类
可以分为4:
3幅型比和16:
9幅型比两种类型。
按扫描线数(显示格式)分类
可以分为HDTV扫描线数(大于1000线)和SDTV扫描线数(600~800线)等。
1.2视频编码的原理
视频图像数据有极强的相关性,也就是说有大量的冗余信息。
其中冗余信息可分为空域冗余信息和时域冗余信息。
压缩技术就是将数据中的冗余信息去掉(去除数据之间的相关性),压缩技术包含帧内图像数据压缩技术、帧间图像数据压缩技术和熵编码压缩技术。
去时域冗余信息
使用帧间编码技术可去除时域冗余信息,它包括以下三部分:
-运动补偿
运动补偿是通过先前的局部图像来预测、补偿当前的局部图像,它是减少帧序列冗余信息的有效方法。
-运动表示
不同区域的图像需要使用不同的运动矢量来描述运动信息。
运动矢量通过熵编码进行压缩。
-运动估计
运动估计是从视频序列中抽取运动信息的一整套技术。
注:
通用的压缩标准都使用基于块的运动估计和运动补偿。
去空域冗余信息
主要使用帧内编码技术和熵编码技术:
-变换编码
帧内图像和预测差分信号都有很高的空域冗余信息。
变换编码将空域信号变换到另一正交矢量空间,使其相关性下降,数据冗余度减小。
-量化编码
经过变换编码后,产生一批变换系数,对这些系数进行量化,使编码器的输出达到一定的位率。
这一过程导致精度的降低。
-熵编码
熵编码是无损编码。
它对变换、量化后得到的系数和运动信息,进行进一步的压缩
2视频压缩编码的方法
压缩编码的方法有几十种之多,并在编码过程中涉及较深的的数学里理论基础问题,在此仅介绍几种常用的压缩编码方法。
2.1莫尔斯码与信源编码
莫尔斯码即电报码,其精华之处在于用短码来表示常出现的英文字母,用长码来表示不常出现的字母,以减小码率。
2.2差值脉冲编码
其原理框图见图2.1(a)。
发端将当前样值和前一样值相减所得差值经量化后进行传输,收端将收到的差值与前一个样值相加得到当前样值。
在这个原理图中,输出的当前样值是输出的前一样值加上收到的差值,由于在当前差值中包括当前的量化误差,而输出的前一样值又包括前一样值的量化误差,这就造成了量化误差的积累。
因此实用电路为图2.1(b)。
这时输入当前样值不是与输入的前一样值相减,而是与输出的前一样值相减,因此在差值中已经包含了前一样值的量化误差的负值,在与输出的前一个样值相加时,这部分量化误差被抵消,只剩下当前的量化误差,这就避免了量化误差的积累。
图2.1差值脉冲编码
2.3预测编码基本原理
由于语音信号的相邻抽样点之间有一定的幅度关联性,所以,可根据以前时刻的样值来预测现时刻的样值,只要传预测值和实际值之差,而不需要每个样值都传输。
这种方法就是预测编码。
语音信号的样值可分为可预测和不可预测两部分。
可预测部分(相关部分)是由过去的一些权值加权后得到的;不可预测的部分(非相关部分)可看成是预测误差。
这样,在数字通信中,就不用直接传送原始话音信号序列,而只传送差值序列。
因为差值序列的信息可以代替原始序列中的有效信息,而差值信号的能量远小于原样值,就可以使量化电平数减少,从而大大地压缩数码率。
在接收端,只要把差值序列叠加到预测序列上,就可以恢复原始序列。
图2.2给出了差值脉码调制(DPCM)系统原理框图。
图中输入样值信号
,接收端重建信号为
,
是输入信号与预测信号
的差值,
为量化后的差值,
是
经编码后输出的数字码。
图2.2DPCM原理方框图
编码器中的预测器与解码器中的预测器完全相同。
因此,在无传输误码的情况下,解码器输出的重建信号
和编码器的
完全相同。
DPCM的总量化误差
定义为输入信号
与解码器输出的重建信号
的差值。
即有
由上式可知,在这种DPCM系统中,总量化误差只和差值信号的量化误差有关。
图2.3说明了预测的原理。
图2.3DPCM预测原理
由图2.3可见,预测值跟踪输入信号抽样值变化。
DPCM的方框图如图2.3中,它是典型的线性预测方式。
设原始信号序列为
,其中
是序列
中现在的样值,而
是
的前
个样值。
若选用
的前N个样值来预测
,并用
表示预测值,则
其中,j为任意整数。
为预测系数或加权系数,
为预测阶数。
由上式可见,线性预测中,第n个预测值
是过去N个样值的线性组合。
2.4游程长度编码
读出数据和表示数据的方式也是减少码率的一个重要因素。
读出的方式可以有多种选择,如水平逐行读出、垂直逐列读出、之字型读出和交替读出等,其中之字型读出(Zig-Zag)是最常用的一种。
由于经DCT变换以后,系数大多数集中在左上角,即低频分量区,因此之字型读出实际上是按二维频率的高低顺序读出系数的,这样一来就为游程长度编码(RunlengthEncoding)创造了条件。
所谓游程长度编码是指一个码可同时表示码的值和前面几个零,这样就可以把之字型读出的优点显示出来了。
因为之字型读出在大多数情况下出现连零的机会比较多,尤其在最后,如果都是零,在读到最后一个数后只要给出“块结束”(EOB)码,就可以结束输出,因此节省了很多码率。
游程长度指的是由字构成的数据流中各个字符连续重复出现而形成字符串的长度。
基本的游程编码就是在数据流中直接用三个字符来给出上述三种信息,其数据结构如图2.4所示。
图2.4基本游程长度编码数据结构
CS表示有一个字符串在此位置,X代表构成串的字符,SC代表串的长度。
游程编码和哈夫曼编码等属于统计编码。
2.5霍夫曼编码
霍夫曼编码是可变字长编码(VLC)的一种。
Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫作Huffman编码。
下面引证一个定理,该定理保证了按字符出现概率分配码长,可使平均码长最短。
定理:
在变字长编码中,如果码字长度严格按照对应符号出现的概率大小逆序排列,则其平均码字长度为最小。
现在通过一个实例来说明上述定理的实现过程。
设将信源符号按出现的概率大小顺序排列为:
给概率最小的两个符号a6与a7分别指定为“1”与“0”,然后将它们的概率相加再与原来的a1~a5组合并重新排序成新的原为:
对a5与a6′分别指定“1”与“0”后,再作概率相加并重新按概率排序得U″:
(0.260.200.190.180.17)…直到最后得U″″:
(0.610.39)分别给以“0”,“1”为止,如图2.5所示。
霍夫曼编码的具体方法:
先按出现的概率大小排队,把两个最小的概率相加,作为新的概率和剩余的概率重新排队,再把最小的两个概率相加,再重新排队,直到最后变成1。
每次相加时都将“0”和“1”赋与相加的两个概率,读出时由该符号开始一直走到最后的“1”,将路线上所遇到的“0”和“1”按最低位到最高位的顺序排好,就是该符号的霍夫曼编码。
图2.5霍夫曼编码过程
例如2.5所示a7从左至右,由U至U″″,其码字为0000;a6按践线将所遇到的“0”和“1”按最低位到最高位的顺序排好,其码字为0001…用霍夫曼编码所得的平均比特率为:
Σ码长×出现概率;上例为:
0.2×2+0.19×2+0.18×3+0.17×3+0.15×3+0.1×4+0.01×4=2.72bit;可以算出本例的信源熵为2.61bit,二者已经是很接近了。
2.6运动估计的运动补偿编码
这是一种帧间编码的方法,其原理是利用帧间的空间相关性,减小空间冗余度。
帧间编码为什么可以减小冗余度,这是因为两帧之间有很大的相似性。
如果将前后两帧相减(移动物体作相应位移)得到的误差作编码所需比特要比帧内编码所需的比特少,帧间差集中在零附近,可以用短的码字传送。
实现帧间编码的方法是运动估计和运动补偿。
用图2.6来说明这个过程。
图2.6运动处理过程
当前帧在过去帧的窗口中寻找匹配部分,从中找到运动矢量;根据运动矢量,将过去帧位移,求得对当前帧的估计;将这个估计和当前帧相减,求得估计的误差值;将运动矢量和估计的误差值送到接收端去。
接收端根据收到的运动矢量将过去帧作位移(也就是对当前帧的估计),再加上接收到的误差值,就是当前帧了。
图2.7宏块在上一帧搜索范围内寻找匹配
图2.8运动估计的全局搜索块匹配
图2.8运动估计的全局搜索块匹配实际上,在做运动估计和运动补偿时,是以16×16的块(称宏块)逐个进行的,如图2.7所示,这是将当前帧划分为N×N(16×16)的块。
对每一块在过去帧中范围为的范围内进行搜索,以求得最优匹配,从而得到运动矢量的估值(dx,dy)。
衡量匹配好坏的准则可以是均方误差最小准则。
搜索方法可以是全局搜索法,即对搜索范围内的每一点都计算均方误差,选最小值即对应最优匹配,如图2.8所示。
3MPEG-2编码器原理
3.1MPEG-2的编码方式
MPEG-2有三种编码方式:
帧内压缩编码方式,见图3.1;帧间压缩编码方式,见图3.2;帧内及帧间压缩编码方式,见图3.3。
图3.1帧内压缩编码方式
压缩就是将视频信号中冗余减少的过程,首先必须识别每个视频场和帧中的冗余,这主要包括空间与时间上的冗余。
去除视频信号空间冗余可通过DCT变换来完成,DCT变换是一个无信号损失的双向数学过程。
它将空间分布的变化程度转变成重现空间分布所需的频率带宽。
变换所得到的系数值既可以代表不断增加的更高的垂直和水平空间频率,也可以代表不同的水平和垂直空间频率组合。
视频信号经过DCT变换后,较高的空间频率系数会变得非常细小,而据人眼的视觉特性,较高的空间频率系数可以少量的比特来表示,或者完全去掉而不影响图像质量。
在实际应用时为保持信号的可逆性和无损性,常常采用更多的比特来表示DCT系数。
去除视频信号时间冗余,可使用有运动补偿的帧间预测来完成。
对于活动图像多数情况下只是其中的很少一部分图像在运动,即使有大范围的活动部分,前后帧尽管有很大区别,但移动物体本身大多数情况下是相同的。
因此只需要找到图像中某一部分运动了多少就可以在前一帧找到相应图像的内容,这个查找过程称为运动估值,其表达方式是运动矢量;而把前一帧相应的运动部分补过来,得到其剩余的不同部分的过程称为运动补偿。
就这样,采用运动补偿可以有效地去除视频信号在时间方向的重复信息,达到压缩的目的。
为了达到减少数据的目的,MPEG-2将4:
2:
2转换成4:
2:
0,并且通过量化,将代表每一个系数的比特数目减少。
一般使用11比特来代表DCT系数,对于其他系数则采用较小的比特数目。
每一个或每组宏块都有不同的量化刻度,对每个宏块采用不同的量化因数,使只含帧内压缩的MPEG能提供比同样图像质量的M-JPEG多出10%—20%的压缩效果。
而相对于原来的DCT系数的数据,量化表及被量化的系数数据量要小得多。
图3.2帧间压缩编码方式
在量化过程后,无损数据压缩是通过可变长度编码VLC和游程长度编码RLC实现的。
VLC是在数据内寻找共同的图案或字符,采用较小数量的比特为经常出现的数值进行编码,而用较多数量的比特为较少出现的数值进行编码。
RLC是用一个字符代表一串一定数目的零。
总的目的只有一个,减少数据量。
量化表控制是一个决定如何量化DCT系数的过程;输出缓存可维持数据流,并提供量化器的控制,从而限制或维持数据流在一个一定的水平。
在实实际应用中,当压缩数据被录像机记录时,需要提供一个持续不变的比特率,以使机械部分以稳定的速率旋转扫描机构。
而对于硬盘记录来说,又需要一个可变速的比特率。
通常,一个可变速比特率是提供一个持续不变质量水平的较好选择。
图3.3帧内及帧间压缩编码方式
帧间压缩一般是在未压缩的图像上进行,是一个无损过程。
在图3.4中,在参考帧帧存中有一副完全解析度,完整数据的前一副图像。
在预测帧帧存中拥有一个根据前一帧和运动矢量所建立的预测的当前帧。
输出是预测的当前帧与实际当前帧相减后的差值。
若没有运动或其他变化,当前帧便可得到完美的预测,差分帧输出为0(极易压缩)。
当前一帧和后一帧有点不同时,差分帧仍有少量数据需要压缩。
采用帧内压缩编码形成的图像称为I帧,形成过程见图3.3;采用帧内及帧间压缩编码形成的图像称为B帧和P帧。
P帧为前向预测帧,是以前一个I帧为预测帧进行编码的。
在I帧和P帧中间可以插入若干个B帧,B帧是从相邻的最近的I帧或P帧作双向预测进行编码的。
形成P帧时参考帧帧存只要求存储一帧图象,而形成B帧时,参考帧帧存则需存储前后两帧图象。
由三种相互间有预测与生成关系的不同的帧数据,I帧P帧B帧数据按照不同的组合组成图像组(GOP),再加上序列起始码和序列头等数据组成图像序列或ES,ES再打包成PES;PES再按188byte的固定长度加上各种参数组成传送码流TS。
3.2PAL解码器
主要功能是对输入的PAL复合信号进行解码,输出YCbCr分量信号(4:
2:
2)。
PAL解码器质量对整个处理系统的性能指标有非常重要的作用,并将影响最终的图像质量,在设计时常采用8倍色度负载波对输入的模拟信号进行采样,用数字梳状滤波器完成亮色分离。
同时为了避免视频信源的抖动影响后面的压缩处理部分,在PAL解码器与前处理模块之间有一帧的帧存进行信号隔离。
前处理模块该模块原理如图3.4所示。
主要功能:
<1>给PAL解码器和I帧编码器提供像素接口控制信号,其参数受CPU控制。
<2>对PAL解码器输出的视频信号进行必要的限幅,使其满足CCIR601的要求(Y:
16-235,C:
16-240),并对Cb和Cr信号做扣心(Coring)处理。
<3>提供D1接口,可和数字视频设备直接相连。
<4>在ES码流的目标码率较低时(如低于3Mbps),启动1个16阶的滤波器,对信号进行低通滤波,使其频带限制在3.5MHz左右,以降低解码恢复的图像中的块效应。
<5>产生一个锯齿波视频测试信号,在CPU的控制下和输入信号进行切换。
另外,为了适应不同的码组长度可使用截短的RS码,例如DVB和GA。
GA采用RS(207,187,10),即分组码符号长度为207个,187个信号符号,可检出207-187=20个错,可纠正(207-187)÷2=10个错。
该码就是从RS(255,235,10)码截短而得到的,实际上可以看成255个符号中除207个有具体的值外,剩余的48个符号全部添零,可以用同样的电路进行编解码。
在DVCPRO、DVCAM、Digital-S格式中视、音频数据的内码组为RS(85.77)码,检错能力为85-77=8byte,纠错能力为(85-77)÷2=4byte。
视频数据的外码组为RS(149.138),在内码组指出错误位置时能纠错149-138=11byte。
音频的外码组为RS(14.9)码,在内码组指出错误位置时14byte中有不多于14-9=5byte的错误都能得到纠正。
而BetacamSX的视频内码组为RS(124.112)外码组为RS(64.50),声音的内码组为RS(124.112)外码组为RS(14.6),其外码组的纠错能力明显高于其它格式,加上磁迹宽度又比其它格式宽了许多,即使一个GOP中有两根磁迹丢失,误码校正仍可正常进行,其误码校正数据块的组成如图3.2所示。
图3.4前处理模块该模块
3.3MPEG-2视频编码器
上文我们已从理论上对MPEG-2标准进行了系统的概述,下面就以一个实例剖析一下MPEG-2视频编码器的物理实现.该编码器可完成MPEG-2MP@ML的压缩,对CCIR601PAL制(720*576像素/帧,25帧/s)图像进行实时恒定比特率传输模式(CBR)处理.整个编码系统如图3.5所示。
图3.5视频编码硬件原理图
4MPEG-2解码器原理
4.1视频基本码流结构
如图4.1视频基本码流结构所示:
图4.1视频基本码流结构
a、在视频序列层中,序列头给了我们图像的尺寸、宽高比、帧频和比特率等数据,后面的序列扩展码给出了型级、逐行隔行和色度格式(4:
2:
0、4:
2:
2)等信息。
b.在图像组层中,GOP头中给出了时间码和紧跟在帧后的B图像的预测特性等信息。
c.在图层中,图像头中给出了时间参考信息、图像编码类型和VBV延时等信息。
图像头后面的图像扩展码给出了运动图像、图像结构、量化因子类型和可变长编码VLC等信息。
d.在像条层中,像条头给出了像条垂直位置、量化因子码等信息。
e.在宏块层中,宏块类型编码给出了宏块属性、运动矢量等信息。
f.最后一层是像块层,给出了像块的DCT系数。
可见,视频基本码流中包含了供接收端正确解码的信息。
4.2MPEG-2解码
MPEG-2解码是从编码的比特流中重建图像帧。
MPEG-2解码方框图如图4.2所示
由图4.2可见,接收到的码流经过TS流解复用和视/音频PES包解复用后输出视频基本流(ES)和运动矢量(MV)。
ES经反量化(IQ)和反DCT(IDCT)后输出重建的宏块差值△MB。
解码框图中没有复杂的运动估计电路,它直接用码流中传输来的运动矢量(MV)进行运动补偿,从帧存储器中读出匹配宏块MB0,在加法器中与宏块差值△MB相加,还原出相应的P、B图像块。
在帧重排内得到一组GOP解码图像后,重排成编码时输入显示图像的原始序列。
由于解码器中都有帧重排,结果使显示图像比原始图像产生一定的延时,
图4.2解码器框图
相对于声音编解码会导致画面滞后于声音,故需要相应的延时补偿。
MPEG-2解码与编码电路不是一一对应的,编码复杂,解码简单。
因为,解码所需要的许多参数和运动预测值和量化矩阵等都在传输码流中以规定的句法元素格式提供给接收端,由解码器直接使用就行了。
总结
通过这次数字视频信号源的编码器和解码器的研究的课程设计让我学到了许多知识,不仅给我开阔了思路,而且还让我认识到了自己对以前所学过知识的不足。
在这次课程设计当中我碰到了许多问题,我曾经接触过这方面的书籍和实物,也对其有一些简单的了解。
但是却不知道具体的工作原理,当我拿到课程设计的题名后完全不知道该怎么办好,在指导老师董雪峰的悉心指导下,我明白了其中的道理,于此同时我通过大量地阅读和查阅相关的资料,最终此次课程设计才得以完成。
通过这次课程设计让我懂得了在以后的学习和工作当中要不断地完善自我、努力上进、刻苦钻研力争在电子信息行业有一个好的发展和结果。
致谢
课程设计是自己在大学中的一段经历,从设计之初的无从下手到设计工作的圆满完成,期间遇到了诸多的问题和困难。
但在董老师的细心指导和帮助下,通过自己的努力,最终这些问题与困难都得到了圆满解决。
使我可以按时课程设计并使自己的专业知识与综合能力都得到了相应的提高。
在课程设计过程中,董老师在百忙中对我的设计进行了指导。
他首先细致地为我解题;当我迷茫于众多的资料时,又为我提纲挈领、梳理脉络,使我确立了本文的框架。
感谢董老师对我的课程设计不厌其烦的悉心指导。
在课程设计写作当中中,每次都能恰逢其时地得到董老师的亲切指点。
从框架的完善,到内容的扩充;从行文的用语到格式的规范;董老师都严格要求,力求完美。
而且我还从董老师那里学到了严谨、务实、认真的工作态度和极强的敬业精神。
我再次为董老师的耐心付出表示感谢。
参考文献
1.蒋秀华.现代电视机原理[M].北京高等教育出版社,2008.
2.李海霞.电视机原理实验指导书[M].郑州黄河科技学院,2008.
3.裴昌辛.电视原理与现代电视系统[M].西安.西安电子科技大学出版,1997.
4.赵坚勇.电视原理与接收技术