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