文档介绍:上海交通大学硕士学位论文
并行编码算法的研究和优化
摘要
2001 年,ISO 的运动图像专家组(MPEG)和 ITU/VCEG 成立了联
合视频组(JVT)共同发展和研究 标准,并将研究草案纳入 ITU-T
视频技术建议 和 ISO/MPEG 组织制定的 MPEG-4 标准的 Part
10(即 AV C) 中。 作为新一代视频编码算法吸收了以往编码
方案的优点,在视频压缩性能和网络接口友好性上得到了很大的提
高,但是这些优点都是以引入复杂度为前提的。分析 编码器的
结构可知,其高复杂度的计算量主要来源于两个方面,一是帧间编码
的 1/4 像素精度运动搜索,多种可变大小的块模式及多参考帧的运动
估计;二是帧内编码的多种预测模式。如何快速的实现编、解码成了
目前急需解决的问题。
目前几乎所有的 CPU 架构都在向多核化方向发展,例如 Intel、
AMD 的 X86、IBM 的 PowerPC 等。跟传统的单核 CPU 相比,多核
CPU 带来了更强的并行处理能力和更高的计算密度。可以预见,多
核 CPU 必将成为未来处理器市场上的主流产品。
针对 编码的复杂性,人们提出了很多并行优化的方法。一
种是基于指令级的并行(ILP),例如很多 DSP 平台提供的单指令多数
据流(SIMD)指令;另一种是基于线程级的并行(TLP),这种方法需要
ii
上海交通大学硕士学位论文
和多核技术相互配合来实现。试验证明,单纯使用任何一种方法都不
能实现编码的最大并行化。考虑到 X264 本身已经实现了 X86 平台下
的指令级并行,因此本文使用 X264 编码器作为研究对象,并在其
SIMD 指令级并行优化的基础上进行线程级并行优化,配合 Intel 的双
核处理器平台,在 Linux Fedora Core 5 操作系统下获得了较高的编码
加速比提升。
X264当前采用基于Fork-Join模型的Slice级并行算法。测试结果表
明:该模型开销较大,在低分辨率的编码应用中严重限制了Slice级并
行算法所获得的编码加速比。为了避免Fork-Join模型带来的开销,本
文在传统线程池的基础上提出了自适应线程池模型,并使用该模型对
X264进行优化。
对码流质量要求严格的非实时编码的应用场景,本文选取GOP级
并行对X264编码器进行并行优化并获得接近线性的加速比。
对码流质量要求严格的实时编码的应用场景,本文使用Frame级并
行和Slice级并行相结合的方法,该算法避免了单纯使用Frame级并行
获得的加速比低以及Slice并行会降低目标码流质量的缺点,在几乎不
影响目标码流质量的前提下,获得了较高的加速比。
关键词:,指令级并行,线程级并行,多核,自适应线程
池模型
iii
知识水坝***@pologoogle为您整理
上海交通大学硕士学位论文
PARALLEL ALGORITHM DESIGN AND
OPTIMIZATION FOR VIDEO ENCODING
ABSTRACT
In 2001, the Moving Picture Experts Group (MPEG) of ISO and the
Video Coding Experts Group (VCEG) of JVT developed the
standard together. The latest video coding standard significantly improves
in both the coding efficiency work adaption. In order to achieve
the best coding efficiency, the encoder introduces a lot of
complexity. Analyzing the structure of encoder, it is clear that the
complexity is derived from two aspects, one is the inter prediction
technology, including the multiple reference frames, the other one is the
intra prediction technology. How to