Case Study I

将一个35Mbps码率的H.264视频转码为相同格式、7Mbps码率的视频。原视频片长约5分钟,分辨率为1920×1080p,30fps。视频中包含几个不同复杂性的场景,从密集空间细节到大量平面区域,从不规则运动到静态镜头。转码中涉及将原文件全解码并用新编码参数对其进行重新编码。

转码的采用的计算机平台配置如表8-3所示。

表8-3 案例I转码采用的计算机平台配置

System Parameter Configuration
处理器 4th-gen. Core i5
核数 4
CPU主频 2.9 GHz
CPU睿频 3.6 GHz
热设计功耗 65 W
缓存大小 6 MB
显卡 Intel (R) HD Graphics (TM) 4600
GPU最大频率 1.15 GHz
嵌入式DRAM Yes
内存 4 GB双通道
内存频率 1333 MHz

转码采用了两种方式:仅运行在CPU上的软件转码器,和经过GPU加速的转码器(大多数计算密集型任务在专用硬件单元中完成)。这两种实现方式不同地优化了参数,但两者都提供了三种性能质量权衡的输出模式:最佳质量模式,平衡模式和最佳速度模式。

GPU加速的实现只提供了少量外部可设置的参数,而仅CPU上的转码有更多的可调参数,我们尽力使这些参数在各自的实现方式下尽可能接近。当然,两种实现方式的模式调整的确切参数存在差异,但也存在一些共性。表8-4总结了常用参数。

表8-4 两种转码方案的常用的配置

参数 最佳质量模式 均衡模式 最佳速度模式
运动估计和模型决策算法 算法1 算法2 算法3(早期版本中?)
局部运动补偿 八分之一像素 四分之一像素
参考帧 1
自适应搜索
运动搜索范围
加权预测
多B帧?
子宏块分区 全部 部分
场景变化检测
比特率控制的前向分析 多数帧 少数帧

请注意,这两种实现方式中使用的参数略有不同,因此也不会产生完全相同的视频质量。另外,GPU加速实现的重点是在不损失太多视觉质量的情况下获得更高的性能,因此在此实现中只有少数参数的调整是从最佳质量到最佳速度。 另一方面,仅CPU转码器中难以获得更高的性能,因此在该实现方式的最佳速度模式下更激进的关闭了几个功能(相比GPU加速转码器而言)。

以FPS来衡量两种转码器实现的三种操作模式的下的性能。注意,为获得性能质量的平衡,三种模式都调整了编码参数。 图8-5显示了仅CPU转码和GPU加速转码两种实现之间的性能比较,同时图中还显示了不同模式下的比率。

图8-5. 不同转码模式的性能对比

从图8-5可以看出,这两种实现都在速度方面进行了缩放,速度范围从最佳质量到平衡模式再到最佳速度模式。例如,GPU加速将编码从一种模式加速到另一种模式,速度提高了大约2倍。但是,由于对编码参数进行了更积极的调整,仅CPU的方式从最佳质量缩放到了平衡模式,并且利用表8-5中的优化措施实现了7.45倍的加速。类似的,从平衡模式到最佳速度模式,可获得额外的4.2倍加速。

表8-5. 不同模式下,仅利用CPU的优化方法

参数 最佳质量 平衡 最快速度
Motion estimation method Uneven multihexagon search Hexagonal search with radius 2 Diamond search with radius 1
Maximum motion vector range 24 16 16
Sub-pixel motion estimation Yes Yes No
Partitions All (p8x8, p4x4, b8x8, i8x8, i4x4) p8x8, b8x8, i8x8, i4x4 No sub-macroblock partitions
Use trellis for mode decisions Yes No No
Adaptive quantization Yes, with auto-variance Yes No
R-D mode decision All picture types I-picture and P-picture only None
Max number of reference pictures 16 2 1
Number of references for weighted prediction for P-pictures 2 1 None
Number of frames to look-ahead 60 30 None
Max number of adaptive B-pictures 8 2 None
CABAC Yes Yes No
In-loop deblocking Yes Yes No
8×8 DCT Yes Yes No
Scene change detection Yes Yes No

显然,如上的优化影响了视觉质量。图8-6显示了两种实现方式的视频质量的比较。从最佳质量到最佳速度,未利用GPU加速的方式的PSNR平均损失约5 dB,而文件大小的减少则不到0.1%。另一方面,在保持视觉质量的同时提高性能的焦点上,GPU加速的方式从最佳质量到最佳速度模式下仅平均损失了~0.6 dB的PSNR。但是,与最佳质量模式相比,采用最佳速度模式时,GPU加速的模式会导致文件大小增加〜1.25%,从而折衷了所获得的压缩量。

图8-6. 是否采用GPU加速模式的质量对比

从图8-5和图8-6还可以发现:就三种性能模式的速度而言,采用GPU加速比仅采用CPU时分别快约33倍、9倍、4倍。这也显示了两种实现之间在参数调整方面的对比。尽管GPU加速的实现在最佳质量模式下的性能要好得多,但与仅用CPU的最佳质量模式相比,它的PSNR平均降低了1.76 dB,文件大小增加了约1.5%。因此,GPU加速的方式已经在通过牺牲视觉质量而支持性能。此外,由于某些算法是在固定功能硬件单元实现的,因此,GPU加速的实现在更改算法的能力方面缺乏灵活性。尽管如此,在最佳速度模式下,GPU加速方式的PSNR平均高出约2.8 dB,但与纯CPU实现相比,文件大小却增大了约2.9%。这些结果证明了这两种实现中所固有的性能-质量折衷。

图8-7显示了本节的案例研究的编码视频质量与编码速度之间的关系。 对于CPU-only和GPU加速的不同模式下的质量/速度存在明显的缩放,但是两种实现方式的缩放率却是不同的。

图8-7. Case Study I 的质量和速度的比较

Copyrights © wangwei all right reserved

results matching ""

    No results matching ""