【论文解读】Software and Hardware HEVC Encoding
时间:
2017 年
级别:
IWSSIP
机构:
Brno University of Technology
摘要:
与旧标准相比,高效视频编码(High Efficiency Video Coding, HEVC)显著提高了编码效率。同时,它也增加了编码的计算复杂度,从而增加了编码的时间。本文提出了HEVC的不同实现的使用方法,其中一些可以利用多核中央处理器(CPU)的优势。其他的通过使用图形处理单元(GPU)中的视频引擎(VE)来加速。本文还使用了不同的预定义质量预设值,以实现视频质量和编码速度之间的平衡。另一个方面是根据不同的HEVC实现来比较个人计算机(PC)中组件的功耗和利用率。研究人员对全高清和超高清两种分辨率都进行了研究。实验结果表明,硬件加速编码可以在对视频质量影响很小的情况下,消耗更少的CPU时间。
介绍:
目前的趋势是不断为客户提供更高质量的视频服务。由于传输线的带宽是有限的,为了获得更高的质量,必须使用高性能的编码器。最近的编解码器更加复杂,需要更多的时间来编码视频。花费数小时来压缩一段短的高清视频序列是不可接受的。在超高清分辨率的情况下,编码速度更差。
像DVB (Digital Video Broadcasting)这样的系统需要实时编码。其他服务则不需要,比如YouTube。HEVC参考实现实现了最高的视频质量。另一方面,它非常慢,不适合实际使用。因此,需要努力创建改进的实现,以达到相同的质量,但速度要快得多。另一种可能的解决方案是将工作负载从CPU(中央处理器)移动到GPU(图形处理器)。GPU对于某些操作具有更强的计算能力,例如视频编码。
HEVC编解码器的不同实现已经在[1]上进行了比较。在这个比较中,只使用了纯软件编码实现。HEVC标准的实现仍在开发中。[2]的作者将编码器的一些元素(变换和量化)的负载转移到GPU。实验结果表明,与传统的编码方法相比,编码速度提高了约10倍。在[3]上,作者实现了比参考软件快950倍左右的帧间预测速度。提出改进算法,将部分编码器迁移到GPU上。
编码器类型
软件编码:
CPU执行编码。编解码器可以修改,但编码仍然可以工作。对于给定的实现,视频质量总是相同的,与CPU类型无关。这并不适用于编码速度。它因CPU的体系结构类型和性能而异。
● HM(HEVC 测试模型)
HEVC的参考软件是HM。为HEVC标准的实现提供了参考。该参考软件的主要目的之一是为实验提供依据,以确定哪种编码工具提供最佳的编码性能。这不是一个特别高效的实现。不适合日常使用。参考实现没有利用多核处理器上的并行化。编码速率非常慢。
● x265 免费实现
x265是一个免费的H.265/HEVC视频编码器,用于编码视频流。它是在GNU GPL条款下发布的。它的主要目标是在给定的比特率下提供最高的质量,并成为最快和最有效的HEVC编码器。编码器有十个预定义的编码器预置。在我们的测试中,使用了最快的预设“ultrafast”和质量最好的预设“placebo”。
● Turing 编解码器
Turing是一款HEVC软件视频编码器,用于高效的视频压缩,具有超低的内存消耗。该实现经过优化,可以在保持高质量压缩视频的同时,实现对超高清视频内容的快速编码。本软件在GPLv2许可下是免费的。Turing编解码器目前支持三种预设速度:慢、中、快。预设置控制编码器中几乎所有选项和工具的预定义值。使用的预设“慢”和“快”的描述见表1。
硬件编码:
硬件编码使用专用的媒体处理器,在我们的例子中是GPU。它允许CPU或显卡完成其他任务。这提供了更高的PC性能。硬件是为一组定义好的编解码器设计的。显卡的主要制造商已经在最新的GPU上内置了ASIC IP块,用于执行视频编码。就英特尔而言,它是英特尔快速同步视频(QSV)。Nvidia有自己的Nvidia ENCoder (NVENC)。与CPU或通用GPU上的视频编码不同,Quick Sync或NVENC是芯片上的专用硬件核心。这允许更节能的视频编码。
● Nvidia NVENC
在Kepler架构中,NVIDIA gpu包含一个基于硬件的编码器,它提供了完全加速的视频编码。它与GPU的图形性能无关。在NVENC完成了完整的编码后,图形引擎和CPU就可以自由地执行其他任务了。HEVC NVENC的最大障碍是它不支持B帧(双预测编码图像)。这些适用于第二代Maxwell gpu。
较老的一代gpu,Kepler和第一代Maxwell,只有一个NVENC引擎。第二代Maxwell和Pascal有两个NVENC引擎。这样就可以支持更多的并行编码流。表II概述了Kepler, Maxwell和Pascal gpu对于分辨率为1920x1080,颜色格式为YUV4:2:0和8位颜色深度的视频的NVENC性能。
● Intel QSV
QSV使用专用的媒体处理器,使视频处理和转换速度快,具有足够的质量。“快速同步”指的是将蓝光格式的视频快速重编码为适用于智能手机的格式。例如,如果采用第二代~第四代Intel Core处理器,则有可能采用QSV H.264编码器。在使用英特尔Skylake处理器的情况下,则有机会使用QSV HEVC编码器。在编码器中,有内置的模式来改变编码速度和视频质量之间的平衡。模式有:最佳、更高、高、平衡、快、更快、最快。在我们的测试中,使用最快的preset和最好的preset。
使用的视频与电脑
编码和测试序列:
选择两个质量级别,每个级别由其比特率定义。5 Mbps的低比特率代表带宽非常有限的流媒体。另一方面,20 Mbps的比特率代表高带宽系统,例如超蓝光磁盘。图片组(GOP)被设置为8。在测试中,设定码率与实际码率的偏差小于3%。这是一个可以接受的小误差。使用的实现的参数见表3。我们的研究是在超高清和全高清分辨率的原始格式的未压缩视频片段上进行的。全高清内容是通过FFmpeg下采样生成的。我们使用了三个20秒长的视频序列。视频序列及其图形符号见表4。
使用的电脑:
为了实现测试,使用了一台个人计算机(PC),通过NVENC进行软件编码和编码(在表V中标记为“PC1”)。一台笔记本电脑用于QSV编码(在表V中标记为“PC2”)。使用笔记本电脑的原因是我们没有支持QSV HEVC编码的最新Skylake架构的PC。因此,不能直接将QSV与其他编码器进行比较。这至少让我们大致了解了编码的质量和速度。一台个人电脑配备了通过PCI-Express连接的快速SSD。笔记本电脑配备了通过SATA接口连接的快速SSD。
实验的客观评价及实现
客观质量度量:
在我们的研究中,只使用了完全参考的客观指标来评估视频。采用VQMT软件计算视频质量指标。计算客观评价指标峰值信噪比(PSNR)、结构相似度(SSIM)和视频质量评价(VQM); 确切地说,在PSNR和SSIM指标中,更高的值意味着更好的质量。在VQM度量中,越低的值表示越高的质量。
编码速度评价:
除了参考HM之外,所有的实现都已经有了一个内置的编码时间测量算法。针对该问题以及无法客观评估内置测量算法的准确性,使用MATLAB编写内部程序。这个程序测量了执行整个编码命令所需的时间。它包括加载输入未压缩序列和后续编码。这个时间与编码器测量的时间相差大约200毫秒。在我们的例子中,这意味着加载视频序列对编码速度没有显著影响。这主要是由于数据存储速度过快造成的。
测量功耗:
编码的重要方面不仅是视频质量和编码速度。功耗也是一个非常重要的方面。测量整个PC机从电网消耗的电量。能耗在表6中列出,仅表示相对于空闲状态的功率消耗增加。该方法在一定程度上消除了各种PC机的误差。空闲状态下,PC1消耗61w, PC2只消耗5w。
实验结果
功耗:
结果表明,HM实现不能充分利用CPU的可用性。因此,功耗比其他软件实现要低。图灵编码器和x265编码器的计算机利用率和功耗类似。RAM(随机存取存储器)利用率是图灵编码器中最低的。在现代pc上,内存消耗在所有实现中都是可以接受的。与非参考实现相比,采用NVENC实现的硬件编码器能耗降低约20%。QSV编码器具有最低的功耗。这与其他编码器不能直接比较。QSV编码器使用不同的计算机。
编码速度与视频质量:
实验结果表明,编码速度在很大程度上取决于编码器的类型。如图1-4所示,预先设置“Placebo”的x265编码器和预先设置“Slow”的Turing编码器具有相似的编码速度。带有预设“Fast”的Turing编码器速度快十倍。带有“Placebo”预设的x265实现速度快了200倍。参考软件 HM 应用比x265“Placebo”慢5倍。但任何软件实现都无法实现实时编码。全高清的编码速度大约是超高清编码速度的三倍。这适用于软件和硬件编码。
尽管如此,NVENC的总体质量与软件实现是相当的。NVENC H.265编码器能够实时并行编码4个全高清流。在超高清的情况下,它只是一个流。QSV编码器的编码质量比传统编码器低一级,但编码速度较快。预设为“最好”的QSV比预设为“最快”的QSV慢5倍。与QSV "Fast"编码器相比,HM编码器的PSNR质量提高了约 3 dB。
为了获得4倍以上的码率,需要增加约30%的编码时间。在硬件编码的情况下,时间大约增加10%。编码速度只略微取决于视频序列的类型。非参考软件实现可以充分利用强大的PC的潜力。这大大加快了视频编码的速度,而对图像质量的影响很小。
结论:
在最高的质量预设下,参考软件 HM、Turing和x265编码器的视频质量之间的差异是微不足道的。NVENC编码器比参考HM编码器快大约6000倍,在质量上没有巨大差异。编码器H.265不支持B帧。在实验中,可以在所有编码器中禁用B帧,但对于支持B帧的编码器来说,这将是不必要的劣势。我们可以假设,如果新的显卡支持NVENC中的B帧,那么视频质量将会提高。采用NVENC H.265编码器可以实现高编码速度、高质量和低功耗。该编码器可以被称为“良好的编码工具”。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!