avs视频与mpeg标准都采用混合编码框架(见图1),包括变换、量化、熵编码、帧内预测、帧间预测、环路滤波等技术模块,这是当前主流的技术路线。avs的主要创新在于提出了一批具体的优化技术,在较低的复杂度下实现了与国际标准相当的技术性能,但并未使用国际标准背后的大量复杂的专利。avs-视频当中具有特征性的核心技术包括:8x8整数变换、量化、帧内预测、1/4精度像素插值、特殊的帧间预测运动补偿、二维熵编码、去块效应环内滤波等。
avs视频编码器框图如下图所示

avs视频标准定义了i帧、p帧和b帧三种不同类型的图像,i帧中的宏块只进行帧内预测,p帧和b帧的宏块则需要进行帧内预测或帧间预测,图中s0是预测模式选择开关。预测残差进行8×8整数变换(ict)和量化,然后对量化系数进行zig-zag扫描(隔行编码块使用另一种扫描方式),得到一维排列的量化系数,最后对量化系数进行熵编码。avs视频标准的变换和量化只需要加减法和移位操作,用16位精度即可完成。
avs视频标准使用环路滤波器对重建图像滤波,一方面可以消除方块效应,改善重建图像的主观质量;另一方面能够提高编码效率。滤波强度可以自适应调整。
avs标准支持多种视频业务,考虑到不同业务之间的互操作性,avs标准定义了档次(profile)和级别(level)。档次是avs定义的语法、语义及算法的子集;级别是在某一档次下对语法元素和语法元素参数值的限定集合。为了满足高清晰度/标准清晰度数字电视广播、数字存储媒体等业务的需要,avs视频标准定义了基准档次(jizhun profile)和4个级别(4.0、4.2、6.0和6.2),支持的最大图像分辨率从720×576到1920×1080,最大比特率从10 mbit/s到30 mbit/s。
表1 avs与mpeg-2、mpeg-4 avc/h.264使用的技术对比和性能差异估计
视频编码标准 |
mpeg-2视频 |
mpeg-4 avc/h.264视频 |
avs视频 |
avs视频与avc/h.264性能差异估计
(采用信噪比db估算,括号内的百分比为码率差异) |
帧内预测 |
只在频域内进行dc系数差分预测 |
基于4×4块,9种亮度预测模式,4种色度预测模式 |
基于8×8块,5种亮度预测模式,4种色度预测模式 |
基本相当 |
多参考帧预测 |
只有1帧 |
最多16帧 |
最多2帧 |
都采用两帧时相当,帧数增加性能提高不明显 |
变块大小运动补偿 |
16×16
16×8(场编码) |
16×16、16×8、8×16、8×8、8×4、4×8、4×4 |
16×16、16×8、8×16、8×8 |
降低约0.1db
(2-4%) |
b帧宏块直接编码模式 |
无 |
独立的空域或时域预测模式,若后向参考帧中用于导出运动矢量的块为帧内编码时只是视其运动矢量为0,依然用于预测 |
时域空域相结合,当时域内后向参考帧中用于导出运动矢量的块为帧内编码时,使用空域相邻块的运动矢量进行预测 |
提高0.2-0.3db
(5%) |
b帧宏块双向预测模式 |
编码前后两个运动矢量 |
编码前后两个运动矢量 |
称为对称预测模式,只编码一个前向运动矢量,后向运动矢量由前向导出 |
基本相当 |
4分之1像素运动补偿 |
仅在半像素位置进行双线性插值 |
二分之一像素位置采用6拍滤波,4分之1像素位置线性插值 |
二分之一像素位置采用4拍滤波,4分之1像素位置采用4拍滤波、线性插值 |
基本相当 |
变换与量化 |
8×8浮点dct变换,除法量化 |
4×4整数变换,编解码端都需要归一化,量化与变换归一化相结合,通过乘法、移位实现 |
8×8整数变换,编码端进行变换归一化,量化与变换归一化相结合,通过乘法、移位实现 |
提高约0.1db(2%) |
熵编码 |
单一vlc表,适应性差 |
cavlc:与周围块相关性高,实现较复杂
cabac:计算较复杂 |
上下文自适应2d-vlc,编码块系数过程中进行多码表切换 |
降低约0.5db(10-15%) |
环路滤波 |
无 |
基于4×4块边缘进行,滤波强度分类繁多,计算复杂 |
基于8×8块边缘进行,简单的滤波强度分类,滤波较少的像素,计算复杂度低 |
—— |
容错编码 |
简单的条带划分 |
数据分割、复杂的fmo/aso等宏块、条带组织机制、强制intra块刷新编码、约束性帧内预测等 |
简单的条带划分机制足以满足广播应用中的错误隐藏、恢复需求 |
—— |
dct(discrete cosine transform):离散余弦变换
vlc(variable length coding):变长编码
cavlc(context-based adaptive variable length coding):基于上下文的自适应变长码
cabac(context-based adaptive binary arithmetic coding):基于上下文的自适应二进制算术编码
fmo(flexible macroblock ordering):灵活的宏块排序
aso(arbitrary slice ordering):任意条带排列 src=http://c. |