Chiphell - 分享与交流用户体验

标题: AMD 再次改进了视频编码,这次使用预分析 [打印本页]

作者: 楼主的马甲    时间: 2022-11-23 01:12
标题: AMD 再次改进了视频编码,这次使用预分析
机翻 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
作者: 心之左边    时间: 2022-11-23 01:44
AMD的视频这块,啥时候能好好的整一整啊,肉眼可见的没有补偿,买了个AU的盒子拿来看视频发现简直是折磨。。。。。。。
作者: sai7    时间: 2022-11-23 03:03
7900xtx赶紧出来呀
作者: LambdaDelta    时间: 2022-11-23 09:12
所以什么时候265才支持b帧?
作者: weston    时间: 2022-11-23 09:24
感谢世界杯,让我有在这个版块回复的权限
作者: henrywhl    时间: 2022-11-23 10:45
ATI的荣光何日能够恢复?
作者: aibo    时间: 2022-11-23 10:59
LambdaDelta 发表于 2022-11-23 09:12
所以什么时候265才支持b帧?

79也没有吗
作者: engeman    时间: 2022-11-23 11:08
A卡画质高 N卡音质好 I卡凑热闹
作者: 楼主的马甲    时间: 2022-11-23 11:37
LambdaDelta 发表于 2022-11-23 09:12
所以什么时候265才支持b帧?

是啊,现在266之类的都出现了。几个GPU开始上AV1了
作者: Jutean    时间: 2022-11-23 12:29
A卡画质高
趁梭哈德国 赶紧留个言
作者: AURA    时间: 2022-11-24 00:35
心之左边 发表于 2022-11-23 01:44
AMD的视频这块,啥时候能好好的整一整啊,肉眼可见的没有补偿,买了个AU的盒子拿来看视频发现简直是折磨。 ...

A卡也很弱啊,解码能力,目前好像是I家的770最强,然后4090,然后好像7900XTX才4090零头,有人实测6950XT解码不如3060
作者: 心之左边    时间: 2022-11-24 01:35
AURA 发表于 2022-11-24 00:35
A卡也很弱啊,解码能力,目前好像是I家的770最强,然后4090,然后好像7900XTX才4090零头,有人实测6950XT ...

视频本身高码高帧的话,A卡也没啥大问题,就怕低码低帧的一般视频,没补偿,嘎嘎毁眼睛,连i的核显都有的补偿,到A卡就得整插件配合播放软件才能有点儿效果,到网页播放那就想都别想了,真不该图便宜买APU的盒子。。。。。。
作者: shine360    时间: 2022-11-24 02:01
不大懂
最近正准备抄底个显卡来看视频
我应该买AMD的啥新显卡合适?
作者: 楼主的马甲    时间: 2022-11-24 07:40
shine360 发表于 2022-11-24 02:01
不大懂
最近正准备抄底个显卡来看视频
我应该买AMD的啥新显卡合适?

这个是编码器……和你说的没关系
楼上说的6950XT解码不如3060倒有可能,但是普通看看片子也够了
作者: coolgg    时间: 2022-11-24 08:59
竞争者                VMAF 分数        比特率(设置为 5000)
AMD                96.0697                4822 千字节
牙膏                        96.37                4890 kbps
天下第一刀        96.13                4892 千字节
-----------------------------------------------------------
也就是说AMD改进了半天,还是没有赶上另外两家
作者: AURA    时间: 2022-11-24 09:27
心之左边 发表于 2022-11-24 01:35
视频本身高码高帧的话,A卡也没啥大问题,就怕低码低帧的一般视频,没补偿,嘎嘎毁眼睛,连i的核显都有的 ...

别。。。那人实测6950XT解4K 120HZ都不行
作者: 心之左边    时间: 2022-11-24 15:17
AURA 发表于 2022-11-24 09:27
别。。。那人实测6950XT解4K 120HZ都不行

那就没试过了毕竟我投影只是60hz的,反正感觉解1080p60hz的视频还凑合,但是低帧率的是真拉胯,掉帧过于明显
作者: yky2008    时间: 2022-11-24 18:23
AURA 发表于 2022-11-24 00:35
A卡也很弱啊,解码能力,目前好像是I家的770最强,然后4090,然后好像7900XTX才4090零头,有人实测6950XT ...

解码和旗舰不旗舰的又没关系,而且当年980TI解码不如950,1080不如1050,也是这几年才全系一样的编解码模块;I家显卡入门几百块就能硬编码AV1呢。
也不要7900好像是4090零头了,一样编解码AV1,目前差别比较大的就是6系AV1解码效率据测试是不如3系的,8K会卡,那我没有6系卡我没试过,3系硬解8K  AV1是没问题的。
作者: bbpoo    时间: 2022-11-24 22:26
AMF还有很长的路要走
作者: 深秋    时间: 2022-11-28 12:51
AURA 发表于 2022-11-24 00:35
A卡也很弱啊,解码能力,目前好像是I家的770最强,然后4090,然后好像7900XTX才4090零头,有人实测6950XT ...

牙膏的A770看片神器咯




欢迎光临 Chiphell - 分享与交流用户体验 (https://www.chiphell.com/) Powered by Discuz! X3.5