视频压缩原理.docx
《视频压缩原理.docx》由会员分享,可在线阅读,更多相关《视频压缩原理.docx(67页珍藏版)》请在冰豆网上搜索。
视频压缩原理
第1章介绍
1.为什么要进行视频压缩
未经压缩的数字视频的数据量巨大
存储困难
一张DVD只能存储几秒钟的未压缩数字视频。
传输困难
1兆的带宽传输一秒的数字电视视频需要大约4分钟。
2. 为什么可以压缩
∙
去除冗余信息
∙
空间冗余:
图像相邻像素之间有较强的相关性
时间冗余:
视频序列的相邻图像之间内容相似
编码冗余:
不同像素值出现的概率不同
视觉冗余:
人的视觉系统对某些细节不敏感
知识冗余:
规律性的结构可由先验知识和背景知识得到
3. 数据压缩分类
∙
无损压缩(Lossless)
∙
压缩前解压缩后图像完全一致X=X'
压缩比低(2:
1~3:
1)
例如:
Winzip,JPEG-LS
∙
有损压缩(Lossy)
∙
压缩前解压缩后图像不一致X≠X'
压缩比高(10:
1~20:
1)
利用人的视觉系统的特性
例如:
MPEG-2,AVC,AVS
4. 编解码器
∙
编码器(Encoder)
∙
压缩信号的设备或程序
∙
解码器(Decoder)
∙
解压缩信号的设备或程序
∙
编解码器(Codec)
∙
编解码器对
5.压缩系统的组成
(1)编码器中的关键技术
(2)编解码中的关键技术
6. 编解码器实现
∙
编解码器的实现平台:
∙
∙
超大规模集成电路VLSI
∙
ASIC,FPGA
数字信号处理器DSP
软件
∙
编解码器产品:
∙
机顶盒
数字电视
摄像机
监控器
7.视频编码标准
编码标准作用:
∙
兼容:
∙
不同厂家生产的编码器压缩的码流能够被不同厂家的解码器解码
∙
高效:
∙
标准编解码器可以进行批量生产,节约成本。
主流的视频编码标准:
MPEG-2
MPEG-4SimpleProfile
AVC
AVS
VC-1
标准化组织:
∙
ITU:
InternationalTelecommunicationsUnion
∙
VECG:
VideoCodingExpertsGroup
∙
ISO:
InternationalStandardsOrganization
∙
MPEG:
MotionPictureExpertsGroup
8.视频传输
视频传输:
通过传输系统将压缩的视频码流从编码端传输到解码端
传输系统:
互联网,地面无线广播,卫星
9.视频传输面临的问题
∙
传输系统不可靠
∙
带宽限制
信号衰减
噪声干扰
传输延迟
∙
视频传输出现的问题
∙
不能解码出正确的视频
视频播放延迟
10.视频传输差错控制
差错控制(ErrorControl)解决视频传输过程中由于数据丢失或延迟导致的问题
差错控制技术:
信道编码差错控制技术
编码器差错恢复
解码器差错隐藏
11. 视频传输的QoS参数
数据包的端到端的延迟
带宽:
比特/秒
数据包的流失率
数据包的延迟时间的波动
第2章数字视频
1.图像与视频
图像:
是人对视觉感知的物质再现。
三维自然场景的对象包括:
深度,纹理和亮度信息
二维图像:
纹理和亮度信息
视频:
连续的图像。
视频由多幅图像构成,包含对象的运动信息,又称为运动图像。
2.数字视频
∙
数字视频:
自然场景空间和时间的数字采样表示。
∙
∙
空间采样
∙
解析度(Resolution)
∙
时间采样
∙
帧率:
帧/秒
3.空间采样
二维数字视频图像空间采样
4.数字视频系统
∙
采集
∙
照相机,摄像机
∙
处理
∙
编解码器,传输设备
∙
显示
∙
显示器
5.人类视觉系统HVS
∙
HVS
∙
眼睛
神经
大脑
∙
HVS特点:
∙
对高频信息不敏感
对高对比度更敏感
对亮度信息比色度信息更敏感
对运动的信息更敏感
6.数字视频系统的设计应该考虑HVS的特点:
丢弃高频信息,只编码低频信息
提高边缘信息的主观质量
降低色度的解析度
对感兴趣区域(RegionofInteresting,ROI)进行特殊处理
7.RGB色彩空间
三原色:
红(R),绿(G),蓝(B)。
任何颜色都可以通过按一定比例混合三原色产生。
RGB色度空间
由RGB三原色组成
广泛用于BMP,TIFF,PPM等
每个色度成分通常用8bit表示[0,255]
8.YUV色彩空间
∙
YUV色彩空间:
∙
Y:
亮度分量
UV:
两个色度分量
YUV更好的反映HVS特点
9.RGB转化到YUV空间
亮度分量Y与三原色有如下关系:
经过大量实验后ITU-R给出了,
,
,
主流的编解码标准的压缩对象都是YUV图像
10. YUV图像分量采样
YUV图像可以根据HVS的特点,对色度分量下采样,可以降低视频数据量。
根据亮度和色度分量的采样比率,YUV图像通常有以下几种格式:
11.通用的YUV图像格式
根据YUV图像的亮度分辨率定义图像格式
12.帧和场图像
一帧图像包括两场——顶场,底场
13.逐行与隔行图像
逐行图像:
一帧图像的两场在同一时间得到,ttop=tbot。
隔行图像:
一帧图像的两场在不同时间得到, ttop≠tbot。
14.视频质量评价
有损视频压缩使编解码图像不同,需要一种手段来评价解码图像的质量。
质量评价:
客观质量评价
主观质量评价
基于视觉的视频质量客观评价
客观质量评价:
通过数学方法测量图像质量评价的方式。
优点:
可量化
测量结果可重复
测量简单
缺点:
不完全符合人的主观感知
15.客观评价的方法
常用的客观评价方法:
16.主观评价方法
主观质量评价:
用人的主观感知直接测量的方式。
优点:
符合人的主观感知
∙
缺点:
∙
不容易量化
受不确定因素影响,测量结果一般不可重复
测量代价高
常用主观评价方法
17. 基于视觉的视频质量客观评价方法
基于视觉的视频质量客观评价:
将人的视觉特性用数学方法描述并用于视频质量评价的方式。
结合了主观质量评价和客观质量评价两方面优点。
常用方法:
结构相似度(StructuralSIMilarity,SSIM)方法。
将HVS的特征用数学模型表达出来。
未来重要的研究方向
第3章信息论基础
1.通信系统的组成
信源:
产生消息
信道:
传输消息
信宿:
接收消息
2.基本概念
∙
通信中对信息的表达分为三个层次:
信号,消息,信息。
∙
信号:
是信息的物理层表达,可测量,可描述,可显示。
如电信号,光信号。
消息:
是信息的载体,以文字,语言,图像等人类可以认知的形式表示。
信息:
不确定的内容。
3.信息熵
信息的特点
信息的测量
自信息量
条件信息量
4.信息熵
5.条件熵和联合熵
6.熵的性质
非负性:
信源熵是非负值,即H(X)>=0;
扩展性:
信源熵X有M个符号,如果其中一个符号出现的概率趋于零,信源熵就等于剩余M-1个符号的信源熵;
极值性(最大信息熵):
对于具有M个符号的信源,只有在所有符号等概率出现的情况下,信源熵达到最大值,即
可加性:
熵不增:
条件熵不大于信息熵 H(X|Y)<=H(X);
联合熵不大于各信息熵的和,即H(XY)<=H(X)+H(Y)。
7.互信息量
8.互信息
物理意义:
H(X)是X所含的信息,H(X|Y)是已知Y的条件下X还能带来的信息量。
那么两者之差就是由于知道Y使得X减少的信息量,也即由Y可以得到的关于X的信息量。
9.各种熵的关系
11.信源编码
信源编码:
将消息符号转变成信道可传输的信息。
两个基本问题:
用尽可能少的信道传输符号来传递信源消息,提高传输效率;
减少由于信道传输符号的减少导致的失真。
12.离散信源统计特性
13.离散信源类型:
简单无记忆信源和马尔可夫信源
14.编码分类
等长码:
在一组码字集合C中的所有码字cm (m =1,2,…,M),其码长都相同,则称这组码C为等长码。
变长码:
若码字集合C中的所有码字cm (m =1,2,…,M),其码长不都相同,称码C为变长码。
15.平均码长
16.等长码与变长码比较
等长编码将信源输出符号序列的任意一种取值(概率可能不同)都编码成相同长度的输出码字,没有利用信源的统计特性;
变长编码可以根据信源输出符号序列各种取值的概率大小不同,将他们编码成不同长度的输出码字,利用了信源的统计特性。
因此又称其为熵编码。
17.Huffman编码
Huffman编码:
典型的变长编码。
步骤:
将信源符号按概率从大到小的顺序排列,假定p(x1)≥ p(x2)…≥ p(xn)
给两个概率最小的信源符号p(xn-1), p(xn)各分配一个码位"0"和"1",将这两个信源符号合并成一个新符号,并用这两个最小的概率之和作为新符号的概率,结果得到一个只包含(n-1)个信源符号的新信源。
称为信源的第一次缩减信源,用S1表表示。
将缩减信源S1的符号仍按概率从大到小的顺序排列,重复步骤2,得到只含(n-2)个符号的缩减信源S2。
重复上述步骤,直至缩减信源只剩下两个符号为止,此时所剩两个符号的概率之和必为1。
然后从最后一级缩减信源开始,依编码路径向前返回,就得到各信源符号所对应的码字。
18.信道编码
信道编码主要考虑如何增加信号的抗干扰能力,提高传输的可靠性,并且提高传输效率。
一般是采用冗余编码法,赋予信码自身一定的纠错和检错能力,使信道传输的差错概率降到允许的范围之内。
19.信道类型
∙
根据信道连续与否分类
∙
离散信道
连续信道
半连续信道
∙
根据信道是否有干扰分类
∙
无干扰信道
有干扰信道
∙
根据信道的统计特性分类
∙
无记忆信道
有记忆信道
恒参信道
变参信道
对称信道
非对称信道
20.信道容量
在信息论中,称信道无差错传输的最大信息速率为信道容量。
仙农信道容量公式:
假设连续信道的加性高斯白噪声功率为N,信道带宽为B,信号功率为S,则该信道的容量为
由于噪声功率N与信道带宽B有关,则噪声功率N=n0B 。
因此,仙农公式还可以表示为
21.香农信道容量公式的意义
在给定B和S/N的情况下,信道的极限传输能力为C,而且此时能够做到无差错传输。
如果信道的实际传输速率大于C 值,则无差错传输在理论上就已不可能。
因此,实际传输速率一般不能大于信道容量C ,除非允许存在一定的差错率。
提高信噪比S/N(通过减小n0或增大S),可提高信道容量C。
特别是,若n0->0,则C->∞,这意味着无干扰信道容量为无穷大;
增加信道带宽B,也可增加信道容量C,但做不到无限制地增加。
这是因为,如果 S、n0一定,有
维持同样大小的信道容量,可以通过调整信道的B及S/N来达到,即信道容量可以通过系统带宽与信噪比的互换而保持不变。
22.失真
失真:
信源的消息经过编解码后不能完全复原
在实际的信源和信道编码中,消息的传输并不总是无失真的。
由于存储和传输资源的限制
噪声等因素的干扰
23.率失真理论
∙
仙农定义了信息率失真函数R(D)
∙
D是消息失真
R是码率
率失真定理:
在允许一定失真度D的情况下,信源输出的信息率可压缩到R(D)。
24.失真函数
失真函数:
信源符号X={x1, x2,…..xn},经信道传输接收端符号Y={y1, y2….yn},对于每一对(xi, yj)指定一个非负函数 d(xi, yj),称d(xi, yj)为单个符号的失真度或失真函数。
对于连续信源连续信道的情况,常用d(x, y)表示。
常用失真函数:
平均失真度:
第四章视频编码基础
1.压缩码流
∙
语法:
码流中各个元素的位置关系
∙
01001001…
图像编码类型(01),宏块类型(00),编码系数1001等
∙
语义:
每个语法元素所表达的意义。
∙
例如:
图像编码类型
2.编码层次
序列(Sequence)
图像组(GroupofPictures,GOP)
图像(Picture)
条带(Slice)
宏块(Macroblock,MB)
块(Block)
3.码流结构
3.PB帧编码
4.序列编码对象
(1)IBBP序列
序列:
一段连续编码的并具有相同参数的视频图像。
序列起始码:
专有的一段比特串,标识一个序列的压缩数据的开始
MPEG-2的序列起始码为十六进制数000001(B3)。
∙
序列头:
记录序列信息
∙
档次(Profile),级别(Level),宽度,高度,是否是逐行序列,帧率等。
∙
序列结束码:
专有的一段比特串,标识该序列的压缩数据的结束
∙
MPEG-2的序列结束码为十六进制数000001(B7)。
5.图像组编码对象
6.图像编码结构
图像:
图像起始码:
专有的一段比特串,标识一个图像的压缩数据的开始
MPEG-2的图像起始码为十六进制数000001(00)。
∙
图像头:
记录图像信息
∙
图像编码类型,图像距离,图像编码结构,图像是否为逐行扫描。
7.图像分块编码
8.条带编码结构
条带:
多个宏块的组合。
条带起始码:
专有的一段比特串,标识一个条带的压缩数据的开始
MPEG-2的条带起始码为十六进制数000001(0~AF)。
∙
条带头:
记录当前图像的相关信息
∙
条带位置,条带量化参数,宏块编码技术标识等。
9.条带编码对象
10.宏块编码结构
宏块:
16x16的像素块(对亮度而言)。
宏块内容:
宏块编码类型,编码模式,参考帧索引,运动矢量信息,宏块编码系数等。
11.宏块编码对象
12.块编码结构
8x8或4x4块的变换量化系数的熵编码数据。
CBP(CodedBlockPatten):
用来指示块的变换量化系数是否全为零。
对于YUV(4:
2:
0)编码,CBP通常6比特长,每个比特对应一个块,当某一块的变换量化系数全为零时,其对应比特位值为0,否则为1。
每个块的变换量化系数的最后用一个EOB(EndofBlock)符号来标识。
13.视频编解码关键技术
预测:
通过帧内预测和帧间预测降低视频图像的空间冗余和时间冗余。
变换:
通过从时域到频域的变换,去除相邻数据之间的相关性,即去除空间冗余。
量化:
通过用更粗糙的数据表示精细的数据来降低编码的数据量,或者通过去除人眼不敏感的信息来降低编码数据量。
扫描:
将二维变换量化数据重新组织成一维的数据序列。
熵编码:
根据待编码数据的概率特性减少编码冗余。
14.预测
∙
空间预测:
利用图像空间相邻像素的相关性来预测的方法。
∙
帧内预测技术:
利用当前编码块周围已经重构出来的像素预测当前块
Intra图像编码(I帧)
∙
时间预测:
利用时间上相邻图像的相关性来预测的方法。
∙
帧间预测:
运动估计(MotionEstimation,ME),运动补偿(MotionCompensation,MC)
Inter图像编码:
前向预测编码图像(P帧),双向预测编码图像(B帧)
15.帧内预测
I帧图像的每个宏块都采用帧内(Intra)预测编码模式。
宏块分成8x8或者4x4块,对每个块采用帧内预测编码,称作Intra8x8或者Intra4x4。
帧内预测有多个预测方向:
水平,垂直,左下,右上。
帧内预测还有直流(DC)预测。
色度块预测还有平面预测。
16.帧间预测
块基运动估计:
为待预测块在参考帧上找到最佳的预测块,并记录预测块在参考帧上的相对位置。
运动矢量(MV):
参考帧上的预测块与当前帧上的的待预测块的相对位置。
MV有两个分量:
(x,y)
∙
分像素运动估计
∙
最佳的预测块不在整像素位置,而在分像素位置;
1/2,1/4,1/8像素插值得到分像素值。
帧间预测流程:
运动补偿:
给定MV和参考帧,为待解码块从参考帧上获取预测块。
运动矢量编码
MV预测:
用当前块的周围可得到邻块的运动矢量来预测当前块的运动矢量
运动矢量差(MVdifference,MVD):
实际运动矢量与预测运动矢量的差,即:
运动矢量差采用变长编码。
17.预测残差
18.变换编码
变换编码:
通过变换将空域信号转换为频域信号来去除空间信号的冗余信息,减少编码数据。
二维离散余弦变换
4x4变换,8x8变换
二维离散余弦变换
例:
变换系数:
直流(DC)系数,交流(AC)系数
19.量化
量化原理:
将含有大量的数据集合映射到含有少量的数据集合中。
一般情况下量化后高频部分包含大量的零系数
量化对主观质量的影响
20.扫描
扫描:
将二维数据转换为一维的数据序列。
21.熵编码
熵编码:
根据符号出现的概率,对经常出现的符号分配较短的码字,对不常出现的符号分配较长的码字。
Level-Run编码:
用数据中非零值和其前面非零值之间出现零值的个数重新描述量化系数序列为(Level,Run)二元组序列
∙
变长编码
∙
将Level-Run编码后的(level,run)变长编码成最终的比特串。
22.码率控制
受到缓冲区,带宽的限制,编码码率不能无限制的增长,因此需要通过码率控制来将编码码流控制在目标码率范围内。
一般通过调整量化参数的手段控制码率
帧级控制
条带级控制
宏块级控制
∙
码率控制考虑的问题
∙
防止码流有较大的波动,导致缓冲区发生溢出,
同时保持缓冲区尽可能的充满,让图像质量尽可能的好而且稳定
∙
CBR(ConstantBitRate)
∙
比特率稳定,但图像质量变化大
∙
VBR(VariableBitRate)
∙
比特率波动大,但图像质量稳定
∙
码率控制算法
∙
码率分配
码率控制
∙
码率控制属于非标准技术
∙
编码端有,解码端没有
第5章预测
1.预测技术
目的:
去除空间冗余和时间冗余。
视频存在大量的空间冗余和时间冗余
∙
空间冗余:
用帧内预测编码去除
∙
基于块的帧内预测
∙
时间冗余:
用帧间预测编码去除
∙
基于块匹配(BlockMatching)的帧间预测
预测后得到去除大部分空间或时间冗余的残差
2.空间冗余
图像空间相邻像素具有很强的相关性。
帧内预测技术去除空间冗余
3.亮度预测模式
4.色度预测模式
5.时间冗余
视频图像在时间上有较强的相关性,即存在时间冗余
去除时间冗余的编码技术
∙
运动估计(MotionEstimation,ME)
∙
为待编码块搜索最相似的预测块
记录运动矢量(MotionVector,MV)
记录预测残差:
∙
运动补偿(MotionCompensation,MC)
∙
根据运动矢量获取预测块
根据预测残差计算重构块:
6.运动模型
(1)平移
7.匹配准则
8.匹配准则简化
∙
简化技术方法
∙
分别计算当前块和预测块的象素值和
根据简化形式,比较当前块和预测块
如果用简化准则对预测块和当前块比较的结果比以前最好的结果差,可以确定预测效果不好,不必对预测块再进行比较。
9.运动估计
去除视频图像的时间冗余
运动估计在搜索范围内为当前块寻找匹配最好的预测块
全搜索方式的运动估计计算复杂度高
10.全搜索复杂度分析
图像大小:
MxM
预测块大小:
NxN
搜索范围:
(-R,R)
每个搜索点象素比较个数:
N2
搜索点个数(2R+1)2
在搜索范围内的象素比较个数总和N2(2R+1)2
一帧图像所有块的全搜索象素比较个数总和N2(2R+1)2(M/N)2=(2R+1)2M2
例:
M=512,N=4,R=8,帧率:
30帧/秒
(2R+1)2M2
=172X5122
=次/帧
=x30次/秒
=80次/秒
采用SSD匹配准则:
每次象素比较需1个减法,1个乘法,1个加法,则上述全搜索计算每秒需要80x2次加减法和80次乘法操作。
11.快速运动估计
∙
在保持预测精度的同时减少运动估计的搜索次数。
∙
三步搜索(ThreeStepSearch,TSS)
二维Log搜索(2DLogarithmicSearch,2DLOG)
正交搜索(OrthogonalSearchAlgorithm,OSA)
十字搜索(CrossSearchAlgorithm,CSA)
新三步搜索(NewThreeStepSearch,NTSS)
四步搜索(FourStepSearch,FSS)
共轭方向搜索(ConjugateDirectionSearch,CDS)
梯度下降搜索(GradientDescentSearch,GDS)
层次块搜索(HierarchicalBlockMatchi