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 的质量和速度的比较
Last updated