视频编码完全指南

翻译 | Alex
技术审校 | 袁荣喜
本文来自OTTVerse,作者为Krishna Rao Vijayanagar 。
 
视频编码是一门在减少视频数据体积大小或码率的同时而不对其质量产生不良影响(在人类的视觉感知下)的科学 。对视频进行编码从而减少其数据体积同时保持视频质量是一项综合了艺术和科学的技术 。在本篇文章中,我们将介绍这个复杂且神奇的领域对视频流和视频传输产生的巨大影响 。
 
视频编码Easy Tech
#003#
 
本文我们将会学习:
  • 什么是视频编码
  • 什么是视频转码以及视频转码与视频编码的区别
  • 视频质量VS码率
  • 视频编码中的关键概念:编解码器、码率、分辨率、时间、GOP和帧类型
  • 视频编码是艺术还是科学?
 
什么是视频编码?
 
视频编码是一门在减少视频数据体积或码率的同时而不对其质量产生不良影响(在人类的视觉感知下)的科学 。
 
减小文件体积被称为压缩,视频压缩通过一系列定义明确且记录在案的数学工具和算法(被称为视频编解码器)来完成 。当对某个视频数据进行压缩,一般来说,压缩后的格式(被称为比特流)只能被可以解码这种格式的相应的软件所理解 。比如,一个使用H.264/AVC视频编码器编码的视频是无法被HEVC解码器解码的 。
 
当一个视频被压缩,那么就可以从主观和客观上来判断视频质量:
 
客观方法包括PSNR、SSIM、VMAF 。这些软件使用数学方法来判断视频质量 。
 
主观方法如MOS(Mean Opinion Score, 平均主观意见分),这种方法包含强烈的个人主观色彩,通过一群人为视频打分(0~5分)来确定视频质量 。这种方法也被称为“黄金眼观测(Golden-eye viewing)” 。
 
什么是视频转码以及视频转码与视频编码的区别
 
你可能经常听到人们交替使用视频编码和视频转码这两个术语 。这种做法有失偏颇,因为两者之间还存在细微的差别 。
 
视频编码通常指将原始视频数据压缩成编码数据的整个过程 。而视频转码是指重新编码压缩文件,但它多了一个编码之前对传入视频解码的步骤 。
 
但不要搞混了,这两个过程都需要在最后阶段编码视频 。
 
通常转码器有很多功能,比如:
 
  • 解码不同的容器格式(mp4,ts等) 。
  • 使用不同的视频编解码器解码比特流,如H.264/AVC、HEVC、AV1和VP9等 。
  • 改变视频的分辨率,从而可以输出不同的分辨率(对ABR流制作至关重要) 。
 
除了转码,还有两个术语不常在行业中使用:
 
  • Transrate是指改变视频码率 。
  • Transmux是指改变容器格式,如将mp4更改为avi或者ts 。
 
在介绍了视频编码和转码之后,现在让我们学习下一部分中最重要的率失真折衷(Rate-distortion Trade-off) 。
 
视频质量VS视频编码/转码中的码率
 
想要理解码率和视频质量之间的平衡关系,就要先理解视频压缩是如何操作的 。你不必深入探究质量与码率的折衷,但你需要明白几件事:
 
视频压缩算法要做两件重要的事(如在H.264/AVC、HEVC、VP9和AV1等编解码器中):
 
  • 使用DCT(Discrete Cosine Transform,离散余弦变换)将“像素域”转换为“频域” 。如果你还不了解什么是DCT,可以看下这篇文章(如何给5岁孩子解释DCT?) 。
  • 通过一种被称为量化的技术舍弃一些频域数据(被称为系数),同时确保人眼无法感知这种数据丢失 。
 
本质上,当你压缩视频时,你需要丢掉一些信息,但同时要保证视频质量没有被破坏 。
 
  • 如果你使用过高的压缩率来压缩视频数据,那么将丢掉大量信息,压缩的效果显而易见——糟糕的视频质量 。
  • 如果你使用较低的压缩率来压缩视频,那么压缩后文件就会很大,但会得到很棒的视频质量 。
  • 上面所述被称为视频压缩中的率失真折衷 。码率越小,视频质量越差(假设分辨率、比特位深、色度二次采样、编码时间和硬件等都是固定的 。)
 
下面两张CrowdRun的屏幕截图说明了这一点,它们分别使用 H.264/AVC 以两种不同码率编码,其他参数在编码过程中保持不变 。
视频编码完全指南


推荐阅读