百科问答小站 logo
百科问答小站 font logo



为什么只用中央处理器(CPU)压制的视频会比图形处理器(GPU)加速过的更清晰? 第1页

  

user avatar   mu-tou-long 网友的相关建议: 
      

这个问题成立是有前提的——低码率视频。如果码率足够高,GPU加速的画质也不差,肉眼几乎无法看出,用软件比对结果差异也很小。


此外,还有具体的压缩算法、视频编码影响。其它的视频编码我没怎么研究过就不说了,这里单说一下最流行的H264。


H264视频的全部画面分为三类:I帧、P帧和B帧:

  1. I帧是对整个画面进行类似JPEG的有损压缩,与其它帧无关,画面数据量最大,在视频中数量最少。
  2. P帧是只参考之前I帧的画面,只记录差异部分。画面数据量居中,视频中数量稍少。
  3. B帧是参考之前和之后I帧和B/P帧的画面,只记录差异部分。画面数据量最少,视频中数量最多。说句题外话,因为因为解码的时候需要参考后面的P帧,低性能的播放设备不一定能满足,因此Baseline Profile不支持B帧。


使用一张网上的图片[1]

对于视频压缩算法来说,想要获得最高的压缩率,最关键在于选择合适的I帧和P帧,使得双向对比的B帧需要记录的数据量最小。而想要选择最合适的I帧和P帧,则需要基于对原始视频中大量的帧画面进行比对分析。分析的画面数量越多,比对的运算量越大。这就是H264编码器中,不同的预设(preset)的区别:preset设置的越慢,比对的帧数越多,越能选出最合适的I帧和P帧,P帧/B帧需要记录的画面差异的数据就越少,结果就是要压缩到相同的目标码率,画质损失也就越少。反之,使用快速预设,比对的帧数量少,P帧/B帧记录的画面差异的数据就越多,压缩画面时的画质损失就越严重。


至于GPU加速,这个因为是大部分使用了GPU加速的商业编码器,以及不同GPU厂家的实现电路目前都是不公开的,和CPU压缩的差异区别在哪,我本人作为非相关人员自然也不清楚。但可以推测的两个可能:

  • 使用了简化的比对算法。对于比对下来有差异的图块,没有进一步分割细化后再次比对,或者细化分割后没有对发生位置变动的图像做进一步比对。
  • 和CPU编码相同的Preset下,比对的帧数更少,或者并非对所有的帧一一进行比对,未能选择出最合适的I帧和P帧。


如果目标视频码率足够高的话,即使B帧需要记录更多的数据,压缩下来对画质的影响是很轻微的,肉眼看不出来,用软件比对算出来的PSNR/SSNI区别也很小。


最后补充一下,某些转码工具的GPU加速,只是使用GPU对原始视频解码,压制还是使用CPU编码,这种情况下是否使用GPU加速的画质区别非常小。例如ffmpeg就可以使用这种加速方式。

参考

  1. ^ http://www.iosxxx.com/blog/2017-08-09-%E4%BB%8E%E9%9B%B6%E4%BA%86%E8%A7%A3H264%E7%BB%93%E6%9E%84.html

user avatar   pansz 网友的相关建议: 
      

这个问题透着一股邪乎味儿,怎么看怎么危险啊……

建议专业机构给予支援。




  

相关话题

  怎么看手机cpu处理器好坏,不要评测跑分的,请问如何通过处理器名称看架构的好坏? 
  为什么手机核心数目提升的比计算机快? 
  如何看待 Zen 4 会使用 N5 工艺, 支持 AVX512 和 bfloat16? 
  大学生笔记本最好关注哪些性能? 
  如何评价4500U六核仅追平1035G1四核性能? 
  芯片制造流片一张多少钱? 
  为什么现在的芯片公司都在急需做编译器的人?这个职位是要去解决什么样的问题? 
  为什么 CPU 主频很难超过 4GHz? 
  家用PC可以安装两块CPU吗? 
  为什么 Intel 的 CPU 很保值? 

前一个讨论
万维钢厉害吗?
下一个讨论
为什么中国小学英语和拼音要学两套不同的手写体,且「拼音字母」反而更接近外国人写的英文?





© 2024-11-22 - tinynew.org. All Rights Reserved.
© 2024-11-22 - tinynew.org. 保留所有权利