视频编码完全指南( 三 )


 
分辨率
 
视频分辨率是指视频图像的宽度乘以高度,其中衡量分辨率的单位是像素 。视频分辨率通常有以下两种表现形式:
 
1.使用视频图像高度描述分辨率:1080p或720p
2.或者使用图像宽乘高描述分辨率:1920×1080或者1280×720
 
视频分辨率在编码过程中能够发挥重要作用的原因如下:
 

  • 高分辨率的视频(如4K)需要更多内存空间和时间来压缩 。
  • 低分辨率的视频(如360p)需要较少内存空间,并且能够很快被压缩 。
 
所以,当选择编码码率时,视频分辨率是一个重要的决策因素 。
 
编码时间
 
压缩、编码以及转码视频时所需的时间也是一个关键因素 。不同环境下有不同的解决方案,对吧?
 
  • 如果你正在视频直播,那么你肯定不能每分钟只编码1帧,那么做将是大灾难!你需要以接近24fps、50fps或者60fps的刷新率来实时压缩视频 。在这样的情况下,编码器通常会为了提升速度而牺牲视频质量 。
  • 然而,当你在点播视频时,你可以花几个小时的时间来压缩视频 。在这样的情况下,编码器被调整为缓慢压缩,并使用复杂的工具来获得更高的压缩效率及更好的视频质量 。
 
比如,在FFmpeg这种编码器中,你已经预定义了Slow、Slower,、VerySlow、Fast、Faster和Fastest的设置,而这些设置表明了编码器中速度、质量和压缩效率之间的权衡 。
 
所以应该依据视频应用场景(直播还是点播)来选择你的编码设置(和速度) 。
 
GOP(一组图像,Group of Pictures)和GOP长度
 
一组图像(GOP)是指一批按照事先定义好的顺序被编码、解码和播放的视频帧 。GOP长度对视频压缩效率、视频流恢复能力和视频质量影响深远 。
 
简而言之,GOP尺寸越大,视频压缩效率越高,但视频质量和视频流恢复能力也越差,反之亦然 。
 
Closed GOP和Open GOP
 
Closed GOP和Open GOP常见于视频流中,并影响压缩效率、视频容错能力以及ABR流的切换能力 。
 
  • 顾名思义,Closed GOP对GOP外部的帧是封闭的 。一个属于Closed GOP的帧只能参考这个GOP之内的帧 。
  • Open GOP与Closed GOP相反,Open GOP内部的帧可以参考其他GOP中的帧 。

视频编码完全指南

文章插图
 
帧的类型 (I帧、P帧和B帧)
 
I帧、P帧和B帧是视频压缩领域中的基础概念,用于提升视频压缩效率、视频质量和视频恢复能力 。
 
  • I帧(关键帧或帧内帧)仅由帧内预测的宏块组成 。
  • P帧代表预测帧,除了空域预测以外,它还可以通过时域预测来进行压缩 。P帧通过使用已经编码的帧进行运动估计 。
  • B帧可以参考在其前后出现的帧,B帧中的B代表双向(Bi-Directional) 。
 
视频编码完全指南

文章插图
 
升频、降采样的工具和算法
 
本篇文章中,我们不会深入讲解升频和降频算法 。但是需要注意的是这些工具会对视频质量产生很大的影响 。假如输入的视频分辨率为540p,你想输出720p的视频,那你就需要一个可以升频的工具,对吧?通过降低视频采样率,该工具又深深影响了视频质量——如果它出色地完成了任务,那么输出视频也会很清晰 。否则,你就陷入了大麻烦 。
 
通常来说,升采样和降采样工具使用经过充分研究的图像处理过滤器(如 Lanczos 或 Bicubic 过滤器)来创建具有新分辨率的视频 。在选择购买或使用编码器/转码器之前,最好先对这些工具进行详细的测试 。
 
现在,我们对于影响视频编码的重要因素的学习已经将近尾声,虽然没有那么详尽,但也为音视频技术的学习提供了一个指南 。下面我们将通过视频编码一览表来总结我们所学过的知识 。
 
视频编码一览表
 
在编码视频之前,有几点要铭记于心 。这虽然不是一个详尽无遗的表单,但却能帮助你缩小视频压缩中使用到的正确参数范围 。
 
1.理解你的观众:你的观众平时常用的带宽是多少?你是为拥有高速互联网的城市居民提供视频服务,还是为低网速的乡村人口提供服务?他们是使用固定连接的网线,还是使用移动互联网?


推荐阅读