百科问答小站 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 推出的 FidelityFX Super Resolution(FSR)技术? 
  为什么我们早就计划开发北斗却没有计划芯片? 
  国产消费级显卡和消费级 CPU,哪个更难? 
  一个CPU内核包含几个加法器? 
  将 CPU 主频性能降到极低还能正常运行各种操作系统么?如果不能,会有哪些问题? 
  用了几年的华为p10稍微有点卡顿,cpu是麒麟960,我希望开启强制GPU渲染解决卡顿,请问可行吗? 
  如何看待开源指令集RISC-V ? 
  如何评价苹果计划在 Mac 上使用自产芯片取代英特尔处理器? 
  苹果 A12X 处理器相当于什么样的桌面级 CPU(和GPU)呢? 
  为什么现代电脑游戏无法对cpu的多核充分利用? 

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





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