H_264视频编码的关键技术分析及复杂度研究测试
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图 2 宏块分割 16 × 16、16 × 8、8 × 16、8 × 8
图 3 子宏块分割 8 × 8、8 × 4、4 × 8、4 × 4
( 2) 高精度的亚像素运动补偿。在 H. 264 中通 过 6 阶 FIR 滤波器的内插获得 1 /2 像素位置的预测 值。当 1 /2 像素值获得后,通过取整数像素位置和 1 /2 像素位置像素值均值的方式获得 1 /4 像素位置 的值。在高码率情况下,提供 1 /8 像素精度的运动估 计。采用高精度运动估计会进一步减小帧间预测误 差,减少了经变换和量化后的非 0 比特数,提高了编 码效率。利用 1 /4 像素空间精度可以比原有的一个 像素精度( 整数精度) 预测提高 20% 的编码效率。
RD 优化是将待选模式的码率( R) 和失真率( D) 通过拉格朗日乘式得出一个代价值( cost) ,对多种模 式的 cost 进行选择,最小 cost 可以认为是图像质量和 码流大小的最佳权衡。图像质量一般通过 SNR 进行 计算; 而码率计算较为复杂,为了选取最准确的码率 值[11],一般将预测结果进行实际编码,得出一个宏块 对应的码流比特数,由于编码过程包含比较、判断、查 表等运算,计算复杂度较高。随着带选模式的增多, 此过程重复的次数也相应增多,复杂度成线性比例增 加。RD 优化是造成编码复杂性的一个重要因素,但 也是提高图像质量的一个有效途径。
同以往的视频标准一样[12],运动搜索在 H. 264 压缩过程中占有重要的比重,由于加大了分数像素精 度的尺度,每一次匹配算法的计算点对应增加,更加 剧了计算负担。JM86 采 [13] 用全搜索算法,即将搜索 范围内的每一个点都作为搜索块的顶点,计算残差并 得出运动向量。此过程已经有丰富的优化方案,应用 最广泛的为 MVFAST 算法,融合了初值估计、自适应 调整搜索范围的菱形搜索算法,可以在图像质量损失
( 4) 去块效应滤波器。基于块的编码特征之一 在于它的块结构。重建块时,往往由于块边界像素值 的量化误差形成影响图像质量的“块效应”[8]。为了 消除这种效应,提高解码图像的主观和客观质量,同 时为了提供更好的参考图像,引入了基于内容的抗块 效应滤波器。当块边界上两边图像质量差较小时则 使用滤波器 使 之 差 别“平 滑 ”掉,若 边 界 上 图 像 特 征 明显则不使用滤波。这样即减弱“块效应”的影响又 避免滤掉图像的内容,同时在相同主观质量下使比特 率减小 5% ~ 10% 。H. 264 标准中去块效应滤波是 基于 4 × 4 边界的,也就是说对于每一个宏块的 16 × 16 亮度分量,需要对其 4 条水平边界和 4 条垂直边 界进行滤波,而 8 × 8 的色度分量只需要对其 2 条水 平分界和 2 条垂直边界进行滤波。在块边界上,滤波 的强度是和块的编码模式、运动矢量和残差数值相关 的,而对于单个像素,基于量化系数的门限值可以取 消对任意单个像素的滤波[9]。
就必须对这个模块进行优化。
关键词: 视频编码; H. 264 编码; 编码复杂度
中图分类号: TP317. 4
文献标识码: A
doi: 10. 3969 / j. issn. 1006-2475. 2010. 06. 015
Key Technical Analysis and Complexity Research Testing for H. 264
( 3) 多参考帧预测。H. 264 允许从当前帧的前 几帧中选择一帧作为参考帧图像,对宏块进行运动预 测,当选用多参考帧模式时,编码器从几个参考帧中 选择一个效果最好的参考帧,达到最佳的预测效果, 参考帧图像甚至可以是采用双向预测编码方式的图 像,大幅度降低了预测误差。另外帧间编码部分还引 入了 SP 帧,用于有效地实现编码率环境下切换,可用 于随机、快速播放过程。比单参考帧的方法节省 5% ~ 10% 的传码率,并且有利于比特流的错误恢复,解 码恢复更高图像质量。因此,多参考帧预测对周期性 运动和背景切换能够提供更好的预测效果。
1. 2 变换编码与精确匹配的反变换
进行完运动补偿和帧内预测后,将残差结果从时
2010 年第 6 期
云静: H. 264 视频编码的关键技术分析及复杂度研究测试
53
域变换到频域,使用了类似于 4 × 4 离 散 余 弦 变 换 DCT( Discrete Cosine Transform) 的整数变换,由于 H . 264使用的是以整数变换为基础的空间变换,具有效 果好,计算快( 只需要加法和移位运算) ,反变换过程 中不会出现失配问题等优点,并且结合量化过程,保 证了在 16 位计算系统中,计算结果有最大精度且不 会溢出。同时,由于变换块大小从 8 × 8 到 4 × 4,能 够减小块效应和震铃效应。
0引言
H. 264[1-2]是两大视频标准组织共同推出的最新 标准,支持从低带宽、高误码率的无线移动视频通信 到高码率、低延迟的视频广播及在线流媒体等多种应 用。H. 264 具有优秀的压缩性能、良好的鲁棒性,日 益受到业界的关注。在无线多媒体和流媒体应用的 蓬勃发展时期,具有广泛的前景。
为了实现更高的编码效率,H. 264 标准采用了很 多新的编码技术,如多参考帧预测、多尺寸编码块模 式、1 /4 像素精度运动矢量、整数变换量化、基于内容 的熵编码、新型帧内预测、去除方块效应的滤波器等。
H. 264 利用了相邻像素可能有的相同性质,即相 邻像素的相关性,采用新的帧内预测模式: 通过当前 像素块左边和上边的像素( 已编码重建的像素) 进行 预测,只对实际值和预测值的差值进行编码,这样就 能用比较少的比特数来表达帧内编码像素块的信息。 其亮度块有 9 种 4 × 4 块、16 种 16 × 16 块的帧内预测 模式和 4 种 8 × 8 的色度块模式。 1. 1. 2 帧间预测编码
1. 3 增强的熵编码
以往标准的熵编码采用变长的哈夫曼编码,码表 统一,不能适应变换多端的视频内容,影响编码效率。 H. 264根据视频内容的不同,利用较短的码字来代表 出现高频率的符号,可进一步去除码流中的冗余,提 供两种 熵 编 码,即 上 下 文 自 适 应 二 进 制 算 术 编 码 ( CABAC) 和 基 于 内 容 的 自 适 应 可 变 长 编 码 ( CAVLC) 。CABAC 的编码效率更高,也更复杂,在相同图 像质量下,使用 CABAC 编码电视信号可降低 10% 左 右( 10% ~ 15% ) 的码率,后者具有较强抗误码能力。
YUN Jing
( Department of Computer,College of Information Engineering,Inner Mongol University of Technology,Hohhot 010051,China)
Abstract: H. 264 video coding standard is more efficiency and stability than the original coding substantially,but its computational complexity is also increased significantly. Reducing the complexity of encoding operations,improving real-time encoding,but no affecting the coding efficiency,it is necessary to make a study of the complexity of H. 264. Intraprediction,inter-frame prediction,transform coding and entropy coding algorithm are improved to increase the compression ratio in H. 264. This paper analyzes the above key technology in H. 264,gives the complexity of modules in H. 264 based on JM86. Testing results show that the complexity of H. 264 encoding is mainly reflected in the inter prediction module. To speed up H. 264 encoding speed,it is necessary to optimize this module. Key words: video coding; H. 264 video coding; coding complexity
收稿日期: 2010-02-08 作者简介: 云静( 1980-) ,女( 蒙古族) ,内蒙古呼和浩特人,内蒙古工业大学信息工程学院计算机系助教,硕士,研究方向: 多 媒体通信,无线视频传输。
52
计算机与现代化
2010 年第 6 期
图 1 H. 264 基本编码框图
图像都划分成块: 16 × 16 像素的亮度宏块和两 个 8 × 8 像素的色度宏块[6],多个宏块组成一帧。宏 块有帧内和帧间两种模式。帧内模式使用当前帧内 已编码的宏块进行预测; 帧间模式使用以往一个或多 个帧作为参考进行运动预测。 1. 1. 1 帧内预测编码
但都是以提高运算复杂度为代价的。运算过程的复 杂性导致无法实时编解码,从一定程度上影响着它的 应用[3]。
1 H. 264 关键技术研究
为了提高压缩率、增强稳定性,H. 264 在多方面 做了改进,引进了新的算法和运算[4]。 1. 1 预测编码
H. 264 的视频编码采用基于块的混杂编码方法, 通过对帧内预测残差进行 DCT 变换,减少运动图像空 间上的相关信息,通过复杂的帧间预测来减少运动图 像时域上的相关信息[5]。其编码器结构如图 1 所示。
2010 年第 6 期 文章编号: 1006-2475( 2010) 06-0051-04
178 期
H. 264 视频编码的关键技术分析及复杂度研究测试
云静
( 内蒙古工业大学信息工程学院计算机系,内蒙古 呼和浩特 010051)
摘要: H. 264 比原有的视频编码标准大幅度提高了编码效率和稳定性,但其运算复杂度也大大增加。为了在不影响编码
( 1) 不同大小和形状的宏块分割[7]。对于帧间 编码,H. 264 采用多参考帧和更小运动预测区域的方 法,对下一帧进行精确预测,从而减少传输的数据量。 其划分方法有 16 × 16、16 × 8、8 × 16、8 × 8 四种。当 选用 8 × 8 方式时,可以进一步划分成 8 × 8、8 × 4、4 × 8、4 × 4 共四个子区域。如图 2、图 3 所示: 每个区 域包含自己的运动矢量,每个运动矢量和区域选取信 息必须通过编码传输。因此,当选用较大区域时,用 于表示运动矢量和区域选取的数据量减小,它适合于 反应帧间同质部分; 当选用小区域时,残差减小,预测 更精确,它适合表现帧间的细节部分。对于与宏块亮 度块相关联的色度块,有相对应的分割,若亮度块分 割成 8 × 16,对应色度块则分割成 4 × 8。色度运动矢 量从相关联的亮度运动矢量推导出来,色度运动矢量 的数值等于亮度运动矢量的数值。( 以 1 /4 亮度采样 间隔为一个单位) 。
2 复杂度研究及测试结果
2. 1 复杂度研究
H. 264 编码的运算量大约是 MPEG-2 的 5 到 10 倍,解码运 算 量 也 在 两 倍 以 上 [6]。 对 复 杂 度 影 响 最 明显的依次是 RD 优化 ( [10] 率失真优化) 、可变块模 式运动搜索、帧内预测、DCT、去块效应滤波器。
效率的前提下,降低编码运算的复杂度,提高编码的实时性,有必要对 H. 264 的复杂性做出详细研究。H. 264 通过对传
统的帧内预测、帧间预测、变换编码和熵编码等算法的改进来提高压缩率。本文分析 H. 264 上述关键技术,给出基于
JM86 的模块复杂度测试。测试结果表明 H. 264 编码的复杂性主要体现在帧间预测模块中,要加快 H. 264 的编码速度,
图 3 子宏块分割 8 × 8、8 × 4、4 × 8、4 × 4
( 2) 高精度的亚像素运动补偿。在 H. 264 中通 过 6 阶 FIR 滤波器的内插获得 1 /2 像素位置的预测 值。当 1 /2 像素值获得后,通过取整数像素位置和 1 /2 像素位置像素值均值的方式获得 1 /4 像素位置 的值。在高码率情况下,提供 1 /8 像素精度的运动估 计。采用高精度运动估计会进一步减小帧间预测误 差,减少了经变换和量化后的非 0 比特数,提高了编 码效率。利用 1 /4 像素空间精度可以比原有的一个 像素精度( 整数精度) 预测提高 20% 的编码效率。
RD 优化是将待选模式的码率( R) 和失真率( D) 通过拉格朗日乘式得出一个代价值( cost) ,对多种模 式的 cost 进行选择,最小 cost 可以认为是图像质量和 码流大小的最佳权衡。图像质量一般通过 SNR 进行 计算; 而码率计算较为复杂,为了选取最准确的码率 值[11],一般将预测结果进行实际编码,得出一个宏块 对应的码流比特数,由于编码过程包含比较、判断、查 表等运算,计算复杂度较高。随着带选模式的增多, 此过程重复的次数也相应增多,复杂度成线性比例增 加。RD 优化是造成编码复杂性的一个重要因素,但 也是提高图像质量的一个有效途径。
同以往的视频标准一样[12],运动搜索在 H. 264 压缩过程中占有重要的比重,由于加大了分数像素精 度的尺度,每一次匹配算法的计算点对应增加,更加 剧了计算负担。JM86 采 [13] 用全搜索算法,即将搜索 范围内的每一个点都作为搜索块的顶点,计算残差并 得出运动向量。此过程已经有丰富的优化方案,应用 最广泛的为 MVFAST 算法,融合了初值估计、自适应 调整搜索范围的菱形搜索算法,可以在图像质量损失
( 4) 去块效应滤波器。基于块的编码特征之一 在于它的块结构。重建块时,往往由于块边界像素值 的量化误差形成影响图像质量的“块效应”[8]。为了 消除这种效应,提高解码图像的主观和客观质量,同 时为了提供更好的参考图像,引入了基于内容的抗块 效应滤波器。当块边界上两边图像质量差较小时则 使用滤波器 使 之 差 别“平 滑 ”掉,若 边 界 上 图 像 特 征 明显则不使用滤波。这样即减弱“块效应”的影响又 避免滤掉图像的内容,同时在相同主观质量下使比特 率减小 5% ~ 10% 。H. 264 标准中去块效应滤波是 基于 4 × 4 边界的,也就是说对于每一个宏块的 16 × 16 亮度分量,需要对其 4 条水平边界和 4 条垂直边 界进行滤波,而 8 × 8 的色度分量只需要对其 2 条水 平分界和 2 条垂直边界进行滤波。在块边界上,滤波 的强度是和块的编码模式、运动矢量和残差数值相关 的,而对于单个像素,基于量化系数的门限值可以取 消对任意单个像素的滤波[9]。
就必须对这个模块进行优化。
关键词: 视频编码; H. 264 编码; 编码复杂度
中图分类号: TP317. 4
文献标识码: A
doi: 10. 3969 / j. issn. 1006-2475. 2010. 06. 015
Key Technical Analysis and Complexity Research Testing for H. 264
( 3) 多参考帧预测。H. 264 允许从当前帧的前 几帧中选择一帧作为参考帧图像,对宏块进行运动预 测,当选用多参考帧模式时,编码器从几个参考帧中 选择一个效果最好的参考帧,达到最佳的预测效果, 参考帧图像甚至可以是采用双向预测编码方式的图 像,大幅度降低了预测误差。另外帧间编码部分还引 入了 SP 帧,用于有效地实现编码率环境下切换,可用 于随机、快速播放过程。比单参考帧的方法节省 5% ~ 10% 的传码率,并且有利于比特流的错误恢复,解 码恢复更高图像质量。因此,多参考帧预测对周期性 运动和背景切换能够提供更好的预测效果。
1. 2 变换编码与精确匹配的反变换
进行完运动补偿和帧内预测后,将残差结果从时
2010 年第 6 期
云静: H. 264 视频编码的关键技术分析及复杂度研究测试
53
域变换到频域,使用了类似于 4 × 4 离 散 余 弦 变 换 DCT( Discrete Cosine Transform) 的整数变换,由于 H . 264使用的是以整数变换为基础的空间变换,具有效 果好,计算快( 只需要加法和移位运算) ,反变换过程 中不会出现失配问题等优点,并且结合量化过程,保 证了在 16 位计算系统中,计算结果有最大精度且不 会溢出。同时,由于变换块大小从 8 × 8 到 4 × 4,能 够减小块效应和震铃效应。
0引言
H. 264[1-2]是两大视频标准组织共同推出的最新 标准,支持从低带宽、高误码率的无线移动视频通信 到高码率、低延迟的视频广播及在线流媒体等多种应 用。H. 264 具有优秀的压缩性能、良好的鲁棒性,日 益受到业界的关注。在无线多媒体和流媒体应用的 蓬勃发展时期,具有广泛的前景。
为了实现更高的编码效率,H. 264 标准采用了很 多新的编码技术,如多参考帧预测、多尺寸编码块模 式、1 /4 像素精度运动矢量、整数变换量化、基于内容 的熵编码、新型帧内预测、去除方块效应的滤波器等。
H. 264 利用了相邻像素可能有的相同性质,即相 邻像素的相关性,采用新的帧内预测模式: 通过当前 像素块左边和上边的像素( 已编码重建的像素) 进行 预测,只对实际值和预测值的差值进行编码,这样就 能用比较少的比特数来表达帧内编码像素块的信息。 其亮度块有 9 种 4 × 4 块、16 种 16 × 16 块的帧内预测 模式和 4 种 8 × 8 的色度块模式。 1. 1. 2 帧间预测编码
1. 3 增强的熵编码
以往标准的熵编码采用变长的哈夫曼编码,码表 统一,不能适应变换多端的视频内容,影响编码效率。 H. 264根据视频内容的不同,利用较短的码字来代表 出现高频率的符号,可进一步去除码流中的冗余,提 供两种 熵 编 码,即 上 下 文 自 适 应 二 进 制 算 术 编 码 ( CABAC) 和 基 于 内 容 的 自 适 应 可 变 长 编 码 ( CAVLC) 。CABAC 的编码效率更高,也更复杂,在相同图 像质量下,使用 CABAC 编码电视信号可降低 10% 左 右( 10% ~ 15% ) 的码率,后者具有较强抗误码能力。
YUN Jing
( Department of Computer,College of Information Engineering,Inner Mongol University of Technology,Hohhot 010051,China)
Abstract: H. 264 video coding standard is more efficiency and stability than the original coding substantially,but its computational complexity is also increased significantly. Reducing the complexity of encoding operations,improving real-time encoding,but no affecting the coding efficiency,it is necessary to make a study of the complexity of H. 264. Intraprediction,inter-frame prediction,transform coding and entropy coding algorithm are improved to increase the compression ratio in H. 264. This paper analyzes the above key technology in H. 264,gives the complexity of modules in H. 264 based on JM86. Testing results show that the complexity of H. 264 encoding is mainly reflected in the inter prediction module. To speed up H. 264 encoding speed,it is necessary to optimize this module. Key words: video coding; H. 264 video coding; coding complexity
收稿日期: 2010-02-08 作者简介: 云静( 1980-) ,女( 蒙古族) ,内蒙古呼和浩特人,内蒙古工业大学信息工程学院计算机系助教,硕士,研究方向: 多 媒体通信,无线视频传输。
52
计算机与现代化
2010 年第 6 期
图 1 H. 264 基本编码框图
图像都划分成块: 16 × 16 像素的亮度宏块和两 个 8 × 8 像素的色度宏块[6],多个宏块组成一帧。宏 块有帧内和帧间两种模式。帧内模式使用当前帧内 已编码的宏块进行预测; 帧间模式使用以往一个或多 个帧作为参考进行运动预测。 1. 1. 1 帧内预测编码
但都是以提高运算复杂度为代价的。运算过程的复 杂性导致无法实时编解码,从一定程度上影响着它的 应用[3]。
1 H. 264 关键技术研究
为了提高压缩率、增强稳定性,H. 264 在多方面 做了改进,引进了新的算法和运算[4]。 1. 1 预测编码
H. 264 的视频编码采用基于块的混杂编码方法, 通过对帧内预测残差进行 DCT 变换,减少运动图像空 间上的相关信息,通过复杂的帧间预测来减少运动图 像时域上的相关信息[5]。其编码器结构如图 1 所示。
2010 年第 6 期 文章编号: 1006-2475( 2010) 06-0051-04
178 期
H. 264 视频编码的关键技术分析及复杂度研究测试
云静
( 内蒙古工业大学信息工程学院计算机系,内蒙古 呼和浩特 010051)
摘要: H. 264 比原有的视频编码标准大幅度提高了编码效率和稳定性,但其运算复杂度也大大增加。为了在不影响编码
( 1) 不同大小和形状的宏块分割[7]。对于帧间 编码,H. 264 采用多参考帧和更小运动预测区域的方 法,对下一帧进行精确预测,从而减少传输的数据量。 其划分方法有 16 × 16、16 × 8、8 × 16、8 × 8 四种。当 选用 8 × 8 方式时,可以进一步划分成 8 × 8、8 × 4、4 × 8、4 × 4 共四个子区域。如图 2、图 3 所示: 每个区 域包含自己的运动矢量,每个运动矢量和区域选取信 息必须通过编码传输。因此,当选用较大区域时,用 于表示运动矢量和区域选取的数据量减小,它适合于 反应帧间同质部分; 当选用小区域时,残差减小,预测 更精确,它适合表现帧间的细节部分。对于与宏块亮 度块相关联的色度块,有相对应的分割,若亮度块分 割成 8 × 16,对应色度块则分割成 4 × 8。色度运动矢 量从相关联的亮度运动矢量推导出来,色度运动矢量 的数值等于亮度运动矢量的数值。( 以 1 /4 亮度采样 间隔为一个单位) 。
2 复杂度研究及测试结果
2. 1 复杂度研究
H. 264 编码的运算量大约是 MPEG-2 的 5 到 10 倍,解码运 算 量 也 在 两 倍 以 上 [6]。 对 复 杂 度 影 响 最 明显的依次是 RD 优化 ( [10] 率失真优化) 、可变块模 式运动搜索、帧内预测、DCT、去块效应滤波器。
效率的前提下,降低编码运算的复杂度,提高编码的实时性,有必要对 H. 264 的复杂性做出详细研究。H. 264 通过对传
统的帧内预测、帧间预测、变换编码和熵编码等算法的改进来提高压缩率。本文分析 H. 264 上述关键技术,给出基于
JM86 的模块复杂度测试。测试结果表明 H. 264 编码的复杂性主要体现在帧间预测模块中,要加快 H. 264 的编码速度,