浅谈H.264/AVC编码标准——视频编码入门

1 数字视频

视频是图像在时间轴上的顺序排列,每幅图像为一帧。利用人眼的视觉暂留,当每秒播放的视频帧数大于15帧时,就会形成连续运动的视频效果。

1.1 采样与量化

由于所有信息在计算机内部都是以数字形式描述的,所以采集到的视频信号必须转换为数字量,即视频的数字化。

视频信号的x,y坐标值及幅度值都是连续的,为把他们转换为数字形式,需要进行采样和量化。数字化坐标值称为采样,其包括时间采样和空间采样;数字化幅度值称为量化

经过采样和量化的数字图像有$M$行、$N$列。假设离散的灰度级$L$是等间隔的,在区间 $[0,L-1]$ 上的整数,离散灰度级 $L=2^k$ 。所以储存数字图像所需的比特数$B=M×N×k$。

当一幅图像有$2^k$灰度级时,通常称该图像是$k\ bit$图像。例如一副灰度图像一般有256个灰度级,也可以称为$8\ bit$图像。

1.2 颜色空间

灰度图像仅有采样点的亮度信息,而对于彩色图像表示就更为复杂。根据人眼的生理结构,人们构造了不同的颜色空间来表示客观图像的亮度和颜色。将任何一种颜色分解为颜色空间中的一个或多个变量,视频信号处理中常用的颜色空间有$RGB$、$YUV$和 $YC_bC_r$。

  • RGB颜色空间

包含三个分量:基本颜色红(R)、绿(G)、蓝(B)不同强度的组合。

红、绿、蓝(光的三原色)是叠加色,任何颜色都可以由三者不同强度的叠加得到。RGB三个分量中有一个发生变化,则总的图像颜色就会发生变化,而这种变化很容易被人眼察觉。

原色是指不能通过其他颜色的混合得到的“基本色”。

图1.2.1 RGB Sample
图1.2.1展示了彩色图像RGB三个分量的强度,皮肤在红色(R)分量显得更亮,天空则在蓝色(B)分量显得更亮。颜色分量的强度越高,越亮;强度越低,越暗。

RGB颜色空间非常适合拍摄和显示彩色图像。拍摄RGB图像包括过滤并使用单独的传感器捕获每个RGB分量。液晶显示器(LCD)和旗舰手机屏幕(OLED)都是根据每个像素RGB的强度分别照明,从而显示RGB图像。在正常距离观看,单独的颜色分量叠加在一起,呈现出“真实”色彩的原貌。
图1.2.2 OLED屏幕

  • YUV颜色空间

$YUV$和 $YC_bC_r$彼此重叠,都可以称为$YUV$。
亮度(Luma)Luminance
色度(Chroma)Chrominance

包含三个分量:亮度分量(Y)描述灰度值,两个色度分量(U、V)描述色彩和饱和度。

Y、U、V三个分量是相互独立的,可以避免相互干扰。人眼对这三个分量的变化敏感程度不同,对亮度Y的变化比较敏感,而对色度U、V的变化不是很敏感。

图1.2.3 YUV Sample

U(Chroma blue)蓝色色度,V(Chroma red)红色色度,此时你可能问绿色色度在哪?

实际上YUV和RGB颜色空间是可以相互转换的,也就是可以算出绿色。

$$\left[\begin{array}{l}
Y \\
U \\
V
\end{array}\right] = \left[\begin{array}{ccc}
0.299 & 0.587 & 0.114 \\
-0.147 & -0.289 & 0.436 \\
0.615 & -0.515 & -0.100
\end{array}\right]\left[\begin{array}{l}
R \\
G \\
B
\end{array}\right]$$
$$\left[\begin{array}{l}
R \\
G \\
B
\end{array}\right] = \left[\begin{array}{ccc}
1 & 1.14 & 0 \\
1 & -0.58 & -0.394 \\
1 & 0 & 2.03
\end{array}\right]\left[\begin{array}{l}
Y \\
U \\
V
\end{array}\right]$$

1.3 采样格式

上文提到,人眼对色度信号分辨能力较低。即使对色度信号使用更低的采样率,也可以降低视频数据量,仍然保持较好的主观视频质量。

数字视频通常用Y:U:V的形式表示YUV三个分量的采样比例,常用的采样格式有4:2:0,4:2:2,4:4:4,4:1:1等。

2 编码技术基础

数字视频具有庞大的数据量。比如,一路未经压缩的高清晰度电视(High Definition Television,HDTV)信号约需1Gbit/s。实际应用中,因为传输带宽和储存容量有限,所以必须对视频数据压缩编码。要求在保证重建视频质量的基础上,最大限度减少传输和储存的数据量。

在高清晰度、高帧率数字视频日趋普及的今天,如何节省储存空间、降低网络传输成本,是极具应用价值的工作。

由于视频数据本身存在着大量冗余信息,为视频压缩编码提供了技术上的可行性。现有视频编码技术利用的冗余特性主要包括:

空间冗余:视频序列中的一帧图像内往往存在着大量内容近似的区域,相邻像素之间有着较大的相关性,甚至某一区域可以有相邻的区域预测得到。这样可以采用预测的方法和对预测后真实值与预测值的差值(即残差)进行编码即可。

空间冗余

解决:帧内预测、变换编码

时间冗余:视频序列中多帧连续图像的内容可能变化不大,甚至有很多相同的场景。可以只对相邻图像之间的有变化的像素进行编码。

时间冗余

解决:帧间预测

视觉冗余:人眼对于各种图像特征的分辨能力不同。例如上文提到,人眼对亮度变化敏感,对色度变化不敏感,就可以使用YUV420、422等采样格式,减少色度分量的采样比例。再如,人眼对物体边缘敏感,对内部区域相对不敏感;对整体结构敏感,对内部细节相对不敏感,可以用较少码率编码不敏感的部分。

解决:采样和量化

信息熵冗余(统计冗余):对于视频图像上的每个像素,会分配相同的比特数表示灰度级。实际上每个像素值出现的概率不同,而且像素值所携带的信息量与其出现的概率有关。只要每个像素值比特数所具有的信息熵没有达到理论极限,都存在被压缩的可能性。

解决:熵编码

根据香农信息论,出现概率高的符号含有的信息量少,可以用较少的比特数表示;出现概率低的符号含有的信息量大,可以用较多的比特数表示,就能减少总体花费的比特数。

3 视频编码标准发展历程

1990年以来,一揽子视频编解码的建议被提出、标准被制定。很多企业和组织针对不同的应用传输环境制定了相应标准,其中被普遍认同的主要有三大系列:

  • ISO/IEC为视频存储、广播视频和网络视频等制定的MPEG系列标准;
  • ITU-T针对多媒体通信制定的H.26x系列标准;
  • 我国研发和制定的具有自主知识产权的AVS系列标准。

现今使用最广泛的视频编码标准是H.264/AVC(AVC是MPEG-4的第10部分,即H.264)。H.264是由ITU-T的视频编码专家组(VCEG)和ISO/IEC的动态视频专家组(MPEG)于2001年成立的联合视频专家组(JVT)开发,并且在2003年3月正式发布的一种基于块的混合编解码标准。

H.264被广泛应用于诸多领域,其优越性主要体现在以下三个方面:

高压缩率:在相同视频质量下,其码率为MPEG-2或H.263的一半,极大地缓解了网络传输带宽压力。

容错能力强:H.264采用了多种容错机制,可以很好地解决误码和丢包,容错能力是MPEG-4的2倍。

网络适应性强:通过对编码过程进行视频编码层(VCL)、网络提取层(NAL)的分层,H.264可以获得很好的网络适应性,非常适合各种有线、无线传输场合。

随着数字视频产业的日益发展,即使是H.264标准也在压缩和网络应用等方面显现出了局限性。于是,2010年初ITU-T的VCEG工作组和ISO/IEC的MPEG工作组再次通力合作,成立了视频编码联合工作组(JCT-VC)审议评估新一代的编解码标准方案。

2013年1月,高效视频编码标准H.265/HEVC(JCT-VC将其命名为HEVC,ITU-T将其命名为H.265)第一版修订完成并正式公布。HEVC仍然沿用了基于块的混合编码框架,进行了很多技术革新。使其在功能和性能上都全面突破了H.264的瓶颈,在保证了视频质量的同时,大幅度提高了压缩率,降低了网络通信和数据存储成本。

3节 英文缩写词
国际电信联盟—电信标准化部门(International Telecommunication Union-Telecommunication Standardization Sector,ITU-T)
国际标准化组织及国际电工委员会(International Organization for Standardization and International Electrotechnical Commission,ISO/IEC)
视频编码专家组(Video Coding Experts Group,VCEG)
活动图像专家组(Moving Picture Expert Group,MPEG)
联合视频专家组(Joint Video Team,JVT)
高级视频编码(Advanced Video Coding,H.264/AVC)
数字音视频编解码技术标准(Audio Video Standard,AVS)
视频编码层(Video Coding Layer,VCL)
网络提取层(Network Abstraction Layer,NAL)
视频编码联合工作组(Joint Collaborative Team on Video Coding,JCT-VC)
高效视频编码(High Efficiency Video Coding,H.265/HEVC)

最后修改:2021 年 10 月 01 日 12 : 42 AM