百科问答小站 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 网友的相关建议: 
      

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

建议专业机构给予支援。




  

相关话题

  AMD CPU 高负荷卡顿是否确有其事? 
  为什么学校电脑课室的e5cpu那么水,我怀疑有阴谋? 
  x86/x64 的处理器和 32/64 位的系统有什么关系? 
  如何看待AMD INTEL现在的趋势以及未来的走向? 
  如何看待 AMD 超微半导体弑龙勇士终成恶龙? 
  cpu超频真的有必要吗?是降低使用寿命,还是带来更大的性能提升? 
  有什么服务器主板是带集成显卡的? 
  为什么ASIC的频率可以达到GHz,而FPGA只能达到几百MHz? 
  什么是指令集?CPU的指令集是怎么运作的?X86、ARM、MIPS、Alpha、RISC等有什么区别? 
  听说CPU性能=IPC×频率,IPC怎么查询呢? 

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





© 2025-04-21 - tinynew.org. All Rights Reserved.
© 2025-04-21 - tinynew.org. 保留所有权利