来自MSU的HEVC编解码器的比较。如何改善结果

2015年10月,另一份编解码器比较报告在莫斯科国立大学的VMiK发布,其中包括了多个HEVC编解码器。

这项研究的起点是,我们注意到AVC和HEVC在测试中的预设存在差异-对于AVC,使用具有一个GOP的未经修改的快速配置文件,对于HEVC,使用具有多个GOP的经过修改的预置。同时,对于公开报告中描述的唯一“ Apple Tree”文件,当在不考虑编码速度的情况下,根据SSIM对比特率的依赖关系图对x264编码器进行快速转码时,事实证明它比x265更好。问题立即浮出水面:也许这些选项或一些其他明显的选项可以改变这种状况。

该报告会比较预设,但不提供纠正建议。在本文中,我们进行了类似的比较,并提出了修改x265编码器预设的建议。对于类似于报告免费版本中所研究视频序列的视频,建议对编码参数进行的更改可以提高压缩效率,同时在绘制报告时可以恢复x265编码器。

修改后的预设并不要求通用,对大量视频序列的测试不在本研究范围之内。但是,在寻找增加x265编码效率的机会时,可以将它们作为起点。

关于项目



在开发应用程序和服务时以及在使用时对其进行配置时,多媒体处理中的视频编码(无论是传输,编辑还是编辑,存储)的任务不断出现。由于存在大量流行的视频编解码器,即使通常是相同类型的编解码器,也不容易从它们中选择最佳的编解码器,然后进行正确的设置。自2000年代以来,在这种考虑的指导下,很可能是在莫斯科国立大学计算数学和控制论系(VMiK)的计算机图形学和多媒体实验室中,正在进行一个比较视频编解码器的项目。

2015年10月,发布了编解码器比较报告,其中包括一些HEVC格式的编解码器,以及其他一些正在积极开发中的编解码器。作为“参考”,采用了压缩器x264。报告中有趣的内容之一是x265压缩机,我们将对其进行研究。
作为分析工具,我们将使用SolveigMM Zond 265,HEVC / H.265和AVC / H.264文件分析器。

图片


比较编解码器和选择参数的方法





我们描述该技术。报告中的比较是根据比特率质量(SSIM,PSNR)速率标准进行的,该报告中描述的比较比特率/质量指标之比的程序如下(C.4节)。
我们选择几个比特率值(例如7个值:1、2、4、6、8、10和12 Mbps),因为它们我们考虑了每个编解码器的必要质量指标。

我们在图表上标记获得的值:质量指标(横坐标轴)-比特率(纵坐标轴)。

  1. 线性插值。
  2. 我们选择定义所有图形的最大范围,并在其上找到所有图形下方的区域。
  3. 为了衡量特定编解码器(或预设)的质量,我们采用其面积与参考编解码器的面积之比。数字越小,编解码器的效率越高。

作为参考,选择x265,并在报告中选择预设(表1)。该报告未使用最新版本的压缩机,可以在以下位置找到:x265 1.5 + 460-ac85c775620f但是,使用最新版本时,根本没有任何变化。
表1中显示了所使用的压缩机预设(对于台式机平台)。

翻录
x265 -p veryslow --bitrate%BITRATE_KBPS %% SOURCE_FILE%-o%TARGET_FILE%--input-res%WIDTH%x%HEIGHT%--fps%FPS%
通用编码
x265 -p中--bitrate%BITRATE_KBPS %% SOURCE_FILE%-o%TARGET_FILE%--input-res%WIDTH%x%HEIGHT%--fps%FPS%
快速重新编码
x265 -p ultrafast --ref 3 --bitrate%BITRATE_KBPS %% SOURCE_FILE%-o%TARGET_FILE%--input-res%WIDTH%x%HEIGHT%--fps%FPS%
表1.“ MSU HEVC视频编解码器比较”报告中的x265压缩器设置

要获得修改预设的建议,我们将测试它们所包含的所有设置-每个组件对质量和速度的贡献。这里的计划如下。
  1. 我们对文件进行编码,更改预设的每个参数:从快速转码到通用,从通用到“翻录”。同时,我们节省了编码时间。
  2. 我们计算质量度量(如上所示区域)和相对编码时间(“预设修改参数”文件相对于所有选定比特率值的最小FPS编码值)。
  3. 从由可变参数,质量度量,最小FPS组成的表中,我们选择可用于改善预设的参数。

我们将自己限制在用于通用编码和“翻录”的预设参数上(表2),揭示了参数“ -p medium”和“ -p ultrafast”。向他们添加报告中另外两个缺失的内容:“-keyint -1 --tune ssim”。我们将使用快速和通用转码的预设分别补充列出的参数。
通用编码
--rc-lookahead 20 --scenecut 40 --ctu 64 --min-cu-size 8 --bframes 4 --b-adapt 2 --subme 1 --me hex --early-skip --sao- signhide --weightp --rd 3 --aq-strength 1.0 --aq-mode 1 --cutree --no-fast-intra
翻录
--weightb --amp --rect --rc-lookahead 40 -bframes 8 -tu-inter-depth 3 -tu-intra-depth 3 -rd 6 -rdoq 2 -psy-rdoq 1.0- -subme 4 -max-merge 4 -me star -ref 5 -b-intra -lookahead-slices 0
表2.用于修改MSU HEVC视频编解码器比较报告的预设的候选参数


测试中



未指定报告的免费版本中使用的Apple Tree测试序列的下载链接(图1)。我们将使用其关键功能选择一个类似的对象-特写镜头,大量小细节。例如,“ big_buck_bunny_1080p_h264.mov ”,间隔24秒为338帧:

ffmpeg -i big_buck_bunny_1080p_h264.mov -ss 00:00:24 -frames:v 338 -c:v rawvideo -pix_fmt yuv420p sample.yuv

图片
图1.序列特征Apple Tree”

为了在执行上述计划的三个步骤时不花费大量时间从Zond 265界面写出必要的数字,使用它在命令行上的工作能力就很方便(表3):
zond265_x64%COMPRESSED_FILE%-iref%REFERENCE_420P_FILE%-nowait -report t =质量,statstream qm = SSIM o =%TARGET_CSV_FILE%
可以在Zond 265文档页面上找到所有参数的列表及其详细说明

参量
内容描述
-iref
设置参考YUV文件
-报告
在命令行上指定Zond 265操作模式
t =质量,统计流
在这里,选择生成两个报告:视频流的质量和统计
qm = SSIM
计算质量指标
Ø
CSV报告文件的路径
-nowait
没有暂停,Zond 265本身必须在文件之间无延迟地移动
表3.编译脚本所需的Zond 265命令行参数

这是Python 2.7的两个脚本:一个用于编码 266个文件(第一个设置20个设置,第二个预设18个设置,7个比特率:1、2、4、6 8、10、12 Mbps),第二个以CSV格式报告(文件-FPS编码与参考配置的比率-SSIM指标与参考配置的比率)。
从报告片段中的文件片段“ big_buck_bunny_1080p_h264.mov ”(表5和6)可以看出,您可以修改配置,例如,如表4所示。调用以提高效率质量度量值应小于1,相对编码时间值应大于1。
该测试是在具有以下配置的计算机上执行的:Intel Core i7-2600@3.4 GHz,16 GB RAM。对于快速编码配置,对于通用编码,“-min-cu-size 8”参数提供了质量上的最大改进-“ --rdoq-level 2”参数(但同时也减慢了所有编码的速度)。

快速重新编码
x265 -p ultrafast --ref 3 --rc-lookahead 20 --min-cu-size 8 --bframes 4 --early-skip --cutree --tune ssim --bitrate%BITRATE_KBPS %% SOURCE_FILE%-o% TARGET_FILE%--input-res%WIDTH%x%HEIGHT%-fps%FPS%
通用编码
x265 -p medium --weightb --bframes 8 --tu-intra-depth 3 --psy-rdoq 1.0 --b-intra --lookahead-slices 0 --tune ssim --bitrate%BITRATE_KBPS %% SOURCE_FILE%- o%TARGET_FILE%--input-res%WIDTH%x%HEIGHT%--fps%FPS%
表4.修改MSU HEVC视频编解码器比较报告预设以在相同编码速率下提高编码效率

表5.关于快速记录预设修改的报告
image
5.


表6.关于通用编码预设的修改的报告
image
6.


通过使用已修改的预设来运行编码脚本,很容易验证选项的正确选择(表7)。

构型
质量措施
相对编码时间
快速转码(参考)
1个
1个
快速转码,已修改
0.69
0.97
通用转码(参考)
1个
1个
通用转码,已修改
0.85
0.94
表7.使用相对于“ MSU HEVC视频编解码器比较”报告预设

修改后预设的编码效率让我们尝试看一下选项的变化受到了哪些影响-我们将在Zond 265中打开一个由更改后的预设编码文件,当快速将其转换为8 Mbps比特率并将其与文件进行比较时,编码不变的预设。最大编码单元的大小保持不变,为32x32(区域“ --ctu 32”)。但是最小块的大小从16减小到了8(“-min-cu-size 8”区域),正是这个参数最大程度地提高了质量。 B帧的数量从3增加到4(区域“ --bframe 4”),但是“参考”帧的最大数量增加了(区域“ --ref 4”)。 SSIM区域显示三个分量的最大SSIM / PSNR图:亮度(Luma)和两个颜色分量(Cb,Cr)。它们从0.9623-0.9966增加到0.9771-0.9991。其余的其他参数(--rc-lookahead 20 –early-skip --cutree)会影响编码算法,而不影响最终视频的类型,这主要体现在编码速度上(请参见表5)。应该注意在视觉上,已解码帧的图片已更改-编码伪影现在不可见。

图片
图2.截图265 Zond文件编码使用校正后的快速编码配置

同样可以检查编码有文件中的参数的改变未改变(图3)的通用编码预设。最小TU分区的大小没有变化,并保持等于4x4(区域“ --tu深度3”),B帧的数量保持不变并等于3(区域“ --bframe 3”)。 SSIM从0.9789-0.9994增加到0.9811-0.9992。与快速转码配置相比,最大块大小增加了,变得等于64x64(区域“ --ctu 64”),并添加了SAO过滤器(区域“ --sao”)。

图片
图3.使用校正后的通用编码配置编码的Zond 265文件的屏幕截图

因此,基于测试,提出了一系列选项,以提高快速和通用编码配置的编码效率(以相同的比特率和编码速度提高SSIM度量)。使用针对大量小细节的文件建议的更改,“ MSU HEVC视频编解码器比较”报告的整体“质量度量”的值可以快速转换,提高了31%;对于通用转换,则提高了15%,并且编码速度没有明显变化。因为 由于对每个选项分别进行了测试,因此实际上,您只能选择和使用一些方便的选项,而不能选择和使用整个提议的列表。

参考文献



  1. HEVC Video Codecs Comparison
  2. Blender Foundation | www.blender.org
  3. Zond 265 home page

Source: https://habr.com/ru/post/zh-CN388423/


All Articles