莫斯科国立大学的 HEVC 编解码器比较。 如何改善结果
By Olga Krovyakova - modified October 6, 2023, created April 3, 2019.
2015年10月莫斯科国立大学计算机科学系图形 & 媒体实验室视频组(CS MSU图形 & 媒体实验室)发布了另一篇 编解码器对比评论,这次包括几种HEVC格式编解码器.
这项研究的出发点是我们注意到 AVC 和 HEVC 测试预设的差异。 对于 AVC,使用具有单个 GOP 的未修改的快速配置文件,而用于 HEVC 测试则采用具有多个 GOP 的修改配置文件。 此外 – ,无论 “Apple Tree”(公开报告中描述的唯一文件)的编码速度如何,x264 编码器在 SSIM/比特率相关图的快速转码方面都显示出比 x265 更好的结果。 立即出现了一个问题:如果这些或其他一些明显的选择可以改变情况怎么办?
该报告比较了预设,但’不建议任何相关改进。 在本文中,我们进行了类似的审查并提出了修改 x265 编码器预设的建议。 对于与报告免费版本中分析的视频序列相同的视频序列,我们建议的编码参数更改有助于提高压缩效率,并恢复 x265 编码器的报告图构建.
修改后的预设不具有任何通用性,因为对多个视频序列的测试超出了本研究的范围。 但是,可以建议将它们作为寻找提高 x265 编码效率的机会的出发点.
关于该项目
多媒体处理过程中的视频编码任务,无论是传输、剪切、编辑还是存储,在运行过程中的应用/服务开发和配置中无所不在。 由于有大量可用的流行视频编解码器(通常是同一类型),’选择最好的一个然后应用正确的设置并不容易。’这些考虑很可能鼓励了 CMC MSU 计算机图形和多媒体实验室于 2000 年启动和运营的视频比较项目。2015 年 10 月,他们发布了一份编解码器比较报告,其中收录了几种 HEVC 格式 编解码器和其他正在积极开发的编解码器。 在他们的报告中选择 x264 作为模型压缩器。 其中提到的其他有趣的压缩器之一是 x265。 正是这种格式将构成我们研究的主要主题.
分析工具是 SolveigMM Zond 265,这是一款 HEVC/H.265 和 AVC/H.264 分析仪.
编解码器比较和参数选择的方法
让’描述该方法。 比较是根据以下标准进行的:比特率 – 质量(SSIM、PSNR) – 性能。 比较比特率/度量质量相关性的方法(参见 C4 点)如下.
我们选择几个比特率值(例如,7 个值:1、2、4、6、8、10 和 12 Mbps),并计算每个编解码器的所有必要的质量指标.
我们将输出值放在图表上:质量指标(横轴) – 比特率(纵轴).
- 我们进行线性插值.
- 我们选择定义所有图表的最大范围,并检测其中所有图表下的区域.
- 作为特定编解码器(或预设)的 和质量度量 ,我们采用其面积与模型编解码器面积的关系。 收到的值越小,编解码器越有效.
作为模型,我们选择 x265 以及报告中选择的预设(表 1)。 该报告使用了以前版本的压缩器,可以在此处找到: x265 1.5+460-ac85c775620f。 然而,最新版本’并没有带来任何根本性的变化.
使用的压缩器预设如表 1 所示(针对桌面平台).
翻录 | x265 -p veryslow --比特率%BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
通用编码 | x265 -p 中 --比特率 %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
快速转码 | x265 -p 超快 --ref 3 --比特率 %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
为了提出预设修改建议,我们对所有预设形成设置进行测试,以评估它们对质量和性能的影响。 这是行动计划:
- 我们对文件进行编码,改变每个预设参数:从快速转码到通用,从通用到翻录,同时节省编码时间.
- 我们计算质量度量(与上述区域相同)和 参考编码时间 (文件“预设修改参数”的FPS编码相对于所有选定比特率值的最小值).
- 从包含可变参数、质量测量和最小 FPS 的表中,我们选择可用于改进预设的参数.
我们将自己限制为通用编码和翻录的预设(表 2),解锁参数“-p 中”和“-p 超快”。 我们还添加了报告中省略的两个内容:“--keyint -1 --tune ssim”。 我们分别用上述参数补充预设,以实现快速和通用转码.
表 2. 用于修改 MSU HEVC 视频编解码器比较报告预设的候选参数 &ndash.
通用编码 | --rc-lookahead 20 --scenecut 40 --ctu 64 --min-cu-size 8 --bframes 4 --b-adapt 2 --subme 1 --me 十六进制 --early-skip --sao -- Signhide --weightp --rd 3 --aq-strength 1.0 --aq-mode 1 --cutre --no-fast-intra |
"“撕裂”" | --weightb --amp --rect --rc-lookahead 40 --bframes 8 --tu-inter-深度 3 --tu-intra-深度 3 --rd 6 --rdoq 2 --psy-rdoq 1.0 - -subme 4 --max-merge 4 --me star --ref 5 --b-intra --lookahead-slices 0 |
测试
报告免费版本中使用的测试序列“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 样本.yuv
图。 1. 序列“苹果树”的特征"
为了实现上述计划的三个步骤,并节省从 Zond 265 界面复制所需数字的时间’,可以方便地使用命令行操作功能(表 3):
zond265_x64 %COMPRESSED_FILE% -iref %REFERENCE_420P_FILE% -nowait -report t=质量,statstream qm=SSIM o=%TARGET_CSV_FILE%
您可以在 Zond 265 页面查看所有参数的列表及其完整说明.
表 3. 脚本编译所需的 Zond 265 命令行参数.
范围 | 描述 |
---|---|
-iref | 设置参考YUV文件 |
-报告 | 在命令行中指示 Zond 265 操作模式 |
t=质量,统计流 | 生成选定的两个报告:质量和视频流统计数据. |
qm=SSIM | 计算质量指标 |
哦 | CSV 格式的报告文件的路径 |
-不等等 | 无暂停。 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”参数(但是,它会减慢速度) 编码最多).
表 4. 修改 MSU HEVC 视频编解码器比较报告的预设,以在相同编码速度下提高编码效率.
快速转码 | x265 -p 超快 --ref 3 --rc-lookahead 20 --min-cu-size 8 --bframes 4 --early-skip --cuttree --tune ssim --bitrate %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
通用编码 | x265 -p 中 --weightb --bframes 8 --tu-intra-深度 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% |
表6. 修改通用编码预设的报告.
配置 | 质量衡量 | 相对编码时间 |
---|---|---|
快速转码(模型) | 1 | 1 |
快速转码(修改) | 0.69 | 0.97 |
通用转码(模型) | 1 | 1 |
通用转码(修改) | 0.85 | 0.94 |
让’评估Zond 265中选项修改 – 的影响 我们以快速转码模式 打开使用修改后的预设编码的文件,比特率为8 Mbps,并将其与 进行比较 使用未修改的预设编码的文件。 最大编码单元的大小保持不变,等于 32x32(字段“--ctu 32”)。 然而,最小单元的大小从 16 降低到 8(字段“--min-cu-size 8”)。 正是这个参数带来了最大的质量改进。 B 帧的数量从 3 个增加到 4 个(字段“—bframes”),但是参考帧的最大数量(字段“--ref 4”)也增加了。 “SSIM”字段标记了图表 SSIM/PSNR 三个分量的两个最大值:亮度(Luma)和两个颜色分量(Cb、Cr)。 它们的值从 0.9623-0.9966 增加到 0.9771-0.9991。 其余附加参数(--rc-lookahead 20 --early-skip --cuttree)影响编码算法,但不影响输出视频的类型,这主要体现在编码速度上(见表5)。’值得一提的是,解码帧的图片在视觉上发生了变化 – 编码伪影不再显示.
图。 2. 使用修改后的快速编码配置编码的 Zond 265 文件的屏幕截图
您同样可以使用 修改的 和 未修改的 通用编码预设检查编码文件的参数(图3)。 最小 TU 分区的大小’t 没有改变,仍然等于 4x4(字段“--tu-intra-深度 3”),B 帧的数量也保持不变,等于 3(字段“--bframes”) 3”)。 SSIM从0.9789-0.9994增加到0.9811-0.9992。 与快速转码配置相比,最大单元的大小已增加,现在等于 64x64(字段“--ctu 64”),已添加 SAO 滤波器(字段“--sao”).
图。 3. 使用修改后的通用编码配置编码的 Zond 265 文件的屏幕截图
根据执行的测试结果,我们建议了一系列用于提高编码效率(在相同比特率和编码速度下提高 SSIM 度量值)的选项,以实现快速且通用的编码配置。 使用对包含大量小细节的文件的建议更改,MSU HEVC 视频编解码器比较报告的整体“质量度量”值在快速转码方面提高了 31%,在通用转码方面提高了 15%,但影响不大。 编码速度的变化。 由于测试是针对每个选项单独进行的,因此实际上只选择几个方便的选项而不是整个建议列表才有意义.
参考
Olga Krovyakova is the Technical Support Manager in Solveig Multimedia since 2010.
She is the author of many text and video guidelines of company's products: Video Splitter, HyperCam, WMP Trimmer Plugin, AVI Trimmer+ and TriMP4.
She works with programs every day and therefore knows very well how they work. Сontact Olga via support@solveigmm.com if you have any questions. She will gladly assist you!