机翻 https://codecalamity.com/amd-imp ... e-with-pre-analysis
发表于 八月 11, 2022 by 克里斯·格里菲斯
几个月前,AMD在H.264 / AVC硬件编码器中重新引入B帧时,取得了一些令人印象深刻的质量飞跃。现在,他们通过添加时态预分析在 AMF 1.4.26 中再次执行此操作,该分析可检测场景变化并可以更好地在需要时插入索引帧。
虽然这对实时流媒体没有帮助*,但对于任何进行视频转换的人来说,这是另一个很大的推动力。以前,我们在场景变化期间看到大幅下降(蓝线)。现在启用预分析后,这些几乎消失了(橙色线)!
VAMF 分数将分析前打开(橙色)与关闭(蓝色)与 FFMetric
进行比较 VAMF 分数为 Y 轴,帧数为 X 轴
使用与上次相同的Big Buck Bunny视频,我们看到了很大的改进。但是,让我们尝试使用没有真正具有传统场景更改的剪辑。我将使用克拉拉格里菲斯画她一幅荒谬画作的视频。来自视频的静止图像:
在这里,我们可以看到新的预分析(红色)总体上仍然做得更好。
VAMF 分数将预分析打开(红色)与关闭(绿色)与 FFMetrics 进行比较
预分析有什么作用?
AMD对他们的预分析编码过程有一个很好的概述,所以我不会尝试自己改写它:在[预分析]编码期间,将根据[预分析]生成的结果应用内容自适应量化(CAQ)。编码器还根据 [预分析] 结果做出各种编码决策。例如,根据是否触发 PA 场景更改检测标志,编码器可能会强制内部编码帧,并在新场景中应用新帧 QP。编码器还可以根据是否触发PA静态场景检测标志插入跳帧。
AMD AMF 文档 – https://github.com/GPUOpen-Libra ... tree/master/amf/doc
如果编码器知道会发生什么,它就可以对未来的帧做出更明智的决策。
比赛
首先,让我们看看它是如何改进的。我们使用VCEEnc 7.0.3运行这些测试。
反对自己
这是使用 1080p 24fps 大巴克兔子视频。我们有很大的分数增长,但代价是速度。
设置 VMAF 分数 速度 比特率(设置为 5000) I 型帧
AMD 无 B帧,无预分析 94.1215 139.21帧 4808.76 千字节 13
AMD B 帧,无预先分析 95.3877 83.75帧/秒 4807.49 千字节 13
AMD B 帧,预分析 96.0697 26.03帧/秒 4822.74 千字节 22
请注意,启用预分析后,我们有更多的 I 帧。这意味着它能够检测到如果使用P或B帧会有很大的质量损失的地方,而是插入更高质量的I-Frame。
接下来,我们将使用克拉拉·格里菲斯(Clara Griffith)的绘画视频,1080p 30fps,没有传统的场景变化。
设置 VMAF 分数 速度 比特率(设置为 3000) I 型帧
AMD B帧,无需预先分析 85.7606 76.08帧 3018.80 千字节 1
AMD B帧,预分析 86.1705 25.16帧 3018.04 千字节 1
在这种情况下,我们只看到 0.4 VMAF 的改进,而不是 Big Buck Bunny 视频中更高的 0.7 VMAF,这仍然令人印象深刻,并表明不仅仅是场景变化造成了差异。
对抗英特尔QSV和英伟达NVEnc
但是它现在与其他的相比是堆叠的吗?我正在从我上一篇关于英特尔和英伟达的博客文章中获取分数,您还可以在其中看到用于它们的命令。
竞争者 VMAF 分数 比特率(设置为 5000)
AMD 96.0697 4822 千字节
牙膏 96.37 4890 kbps
天下第一刀 96.13 4892 千字节
在这种情况下,AMD终于与大男孩们保持了距离!
考虑
我想在这里添加一些明确的“坚持”信息,然后再将其作为福音传播开来。
这是单个比特率的单个测试。没有足够的信息来得出关于真正的比较质量与其他编码器的任何明确结论。这可能是其中一个最糟糕或最好的位置。这里的目标是展示它是如何改进自己的。
这是VCEEnc编码器的示例PA设置,没有尝试调整。这可能是这部电影的最佳预选设置,也可能是最糟糕的设置。我不知道。
*这对实时流媒体或游戏捕获没有帮助。它太慢了,仅适用于 VBR 模式,您需要将来了解帧才能适当命名为“预分析”。某些软件可能会选择添加带有大型帧缓冲区的功能,但我怀疑它是否会很快成为这些情况下的标准功能。
用于预分析的命令
VCEEncC.exe -i big_buck_bunny_1080p24.y4m --trim 0:2880 --video-metadata clear --metadata clear --chapter-copy -c avc --vbr 5000 --bframes 3 --ref 3 --b-pyramid --preset slow --level auto --motion-est q-pel --pe --colorrange tv --avsync cfr -o big_buck_bunny_1080p-vce-5000-bp.mp4
--------------------------------------------------------------------------------
big_buck_bunny_1080p-vce-5000-bp.mp4
--------------------------------------------------------------------------------
storage->SetProperty(BPicturesDeltaQP)=6 failed: invalid param..
storage->SetProperty(ReferenceBPicturesDeltaQP)=4 failed: invalid param..
VCEEnc (x86) 7.03 (r1144) by rigaya, Aug 10 2022 10:08:40 (VC 1932/Win)
OS: Windows 11 x64 (22000) [UTF-8]
CPU: AMD Ryzen 9 5950X 16-Core Processor [4.58GHz] (16C/32T)
GPU: AMD Radeon RX 6900 XT, AMF Runtime 1.4.26 / SDK 1.4.26
Input Info: y4m(yv12)->nv12 [AVX2], 1920x1080, 24/1 fps
Vpp Filters copyHtoD
Output: H.264/AVC High @ Level 4
1920x1080p 1:1 24.000fps (24/1fps)
avwriter: h264 => mp4
Quality: slow
VBR: 5000 kbps
Max bitrate: 25000 kbps
QP: Min: 0, Max: 0
VBV Bufsize: 31250 kbps
Bframes: 3 frames, b-pyramid: (null)
Delta QP: Bframe: 0, RefBframe: 0
Pre Analysis: off
Ref frames: 3 frames
LTR frames: 0 frames
Motion Est: Q-pel
Slices: 1
GOP Len: 240 frames
VUI: range:limited
Others: deblock pe
encoded 2881 frames, 83.75 fps, 4807.49 kbps, 68.80 MB
encode time 0:00:34, CPU: 1.4%, GPU: 4.0%, VE: 99.4%
frame type IDR 13
frame type I 13, avgQP 18.31, total size 3.12 MB
frame type P 720, avgQP 19.84, total size 41.48 MB
frame type B 2148, avgQP 23.03, total size 24.20 MB
VCEEncC.exe -i big_buck_bunny_1080p24.y4m --trim 0:2880 --video-metadata clear --metadata clear --chapter-copy -c avc --vbr 5000 --b-pyramid --preset slow --level auto --motion-est q-pel --pe --colorrange tv --avsync cfr -o big_buck_bunny_1080p-vce-5000-no-b.mp4
--------------------------------------------------------------------------------
big_buck_bunny_1080p-vce-5000-no-b.mp4
--------------------------------------------------------------------------------
VCEEnc (x86) 7.03 (r1144) by rigaya, Aug 10 2022 10:08:40 (VC 1932/Win)
OS: Windows 11 x64 (22000) [UTF-8]
CPU: AMD Ryzen 9 5950X 16-Core Processor [4.55GHz] (16C/32T)
GPU: AMD Radeon RX 6900 XT, AMF Runtime 1.4.26 / SDK 1.4.26
Input Info: y4m(yv12)->nv12 [AVX2], 1920x1080, 24/1 fps
Vpp Filters copyHtoD
Output: H.264/AVC High @ Level 4
1920x1080p 1:1 24.000fps (24/1fps)
avwriter: h264 => mp4
Quality: slow
VBR: 5000 kbps
Max bitrate: 25000 kbps
QP: Min: 0, Max: 0
VBV Bufsize: 31250 kbps
Bframes: 0 frames
Pre Analysis: off
Ref frames: 2 frames
LTR frames: 0 frames
Motion Est: Q-pel
Slices: 1
GOP Len: 240 frames
VUI: range:limited
Others: deblock pe
encoded 2881 frames, 139.21 fps, 4808.76 kbps, 68.81 MB
encode time 0:00:20, CPU: 2.1%, GPU: 6.9%, VE: 98.8%
frame type IDR 13
frame type I 13, avgQP 19.15, total size 2.88 MB
frame type P 2868, avgQP 23.16, total size 65.93 MB
VCEEncC.exe -i big_buck_bunny_1080p24.y4m --trim 0:2880 --video-metadata clear --metadata clear --chapter-copy -c avc --vbr 5000 --bframes 3 --ref 3 --b-pyramid --preset slow --level auto --motion-est q-pel --pe --pa sc=high,ss=high,activity-type=yuv,paq=caq,taq=on,lookahead=32 --colorrange tv --avsync cfr -o big_buck_bunny_1080p-vce-5000-pa.mp4
--------------------------------------------------------------------------------
big_buck_bunny_1080p-vce-5000-pa.mp4
--------------------------------------------------------------------------------
storage->SetProperty(BPicturesDeltaQP)=6 failed: invalid param..
storage->SetProperty(ReferenceBPicturesDeltaQP)=4 failed: invalid param..
VCEEnc (x86) 7.03 (r1144) by rigaya, Aug 10 2022 10:08:40 (VC 1932/Win)
OS: Windows 11 x64 (22000) [UTF-8]
CPU: AMD Ryzen 9 5950X 16-Core Processor [4.56GHz] (16C/32T)
GPU: AMD Radeon RX 6900 XT, AMF Runtime 1.4.26 / SDK 1.4.26
Input Info: y4m(yv12)->nv12 [AVX2], 1920x1080, 24/1 fps
Vpp Filters copyHtoD
Output: H.264/AVC High @ Level 4
1920x1080p 1:1 24.000fps (24/1fps)
avwriter: h264 => mp4
Quality: slow
VBR: 5000 kbps
Max bitrate: 25000 kbps
QP: Min: 0, Max: 0
VBV Bufsize: 31250 kbps
Bframes: 3 frames, b-pyramid: (null)
Delta QP: Bframe: 0, RefBframe: 0
Pre Analysis: sc high, ss high, activity yuv
lookahead 32, caq medium, paq caq, taq on, motion-qual none, ltr off
Ref frames: 3 frames
LTR frames: 0 frames
Motion Est: Q-pel
Slices: 1
GOP Len: 240 frames
VUI: range:limited
Others: deblock pe
encoded 2881 frames, 26.03 fps, 4822.74 kbps, 69.01 MB
encode time 0:01:50, CPU: 2.4%, GPU: 4.0%, VE: 85.1%
frame type IDR 22
frame type I 22, avgQP 15.91, total size 6.76 MB
frame type P 723, avgQP 18.41, total size 44.68 MB
frame type B 2136, avgQP 24.33, total size 17.58 MB
Terminating internal PA thread |