笔记——H.265/HEVC视频压缩与编码概述

图像是视频信号的基本单位。为了静止与静止图像相区别,视频中完整图像通常被称为帧,由许多帧按照时间顺序组成的视频被称为视频序列。

视频序列中的每幅图像,都是由N * M个像素组成的,每个像素都有具体的数值。因此视频序列可以表示为三维矩阵,其中N * M这两个维度表示每幅图像的像素值,行成视频的空间域;另一个维度则代表时间域。

码率:
视频码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。
为什么进行编码:
每秒播放的帧的数目称为帧率,单位fps(使人眼有平滑连续的感受,帧率需要达到25~30fps以上)
原始视频的数据量是非常巨大的。以常见的视频格式(720P)为例,假设3个色彩分量的每个像素均以8比特表示,帧率为30fps,这样一秒的视频数据量就达到1280 * 720 * 3 * 8 * 30 = 6.64*10^8比特。再大的硬盘也存储不了几部电影,更无法在网络上传输。因此视频应用的一项重要技术就是视频编码,也称视频压缩,其目的就是去除视频数据中的冗余成分,减少压缩或编码后的数据量。

视频压缩与编码:

数据是信息载体,对于定量的信息,设法减少表达这些信息所用的数据量称为数据压缩。
无损压缩和有损压缩:
无损压缩是指数据经过压缩后,所携带的信息并没有损失、通过重建可完全恢复原来的数据。无损压缩适用于数据需要严格完全重建的情形,常用于对文本文件、程序文件等进行压缩。
有损压缩:
有损压缩以引入一定失真为代价,换取跟高的压缩比。能够应用有损压缩的条件是人们对于引入的失真“无法察觉”或者“可以接受”。有损压缩常应用于人类认知的音频、图像、视频。
为了获取较高的压缩率,视频通常采用有损压缩,即以损失一定质量的的代价获取更高的压缩比。此时衡量压缩算法性能优劣与两个参数有关:码率和失真。有损压缩追求的是,在质量损失一定下获得更高的压缩比(最低的码率);或者在一定码率下视频质量最好。
无论是视频压缩还是视频编码,通常都采用预测、变换、量化和熵编码等方式,尽可能减少数据中的冗余,使用尽可能少的数据来表征视频。(视频压缩是目的,视频编码则强调的是方法和手段)。

编码框架
H.265仍采用的是混合编码框架,包括变换、量化、熵编码、帧内预测、帧间预测以及环路滤波等模块,但每个模块都引用了新的编码技术。

帧内预测:
该模块主要用于去除图像的空间相关性。通过编码后的重构块信息来预测当前像素以去除空间冗余信息,提高图像的压缩速率。H.265/HEVC支持更多的帧内预测模式。
帧间预测:
该模块主要用于去除图像的时间相关性。帧间预测通过将已编码的图像作为当前帧的参考图像,来获取各个块的运动信息,从未去除时间冗余,提高压缩率。H.265/HEVC中,帧间预测可采用单向和双向的参考图像来进行预测,包括类似H.264/AVC中分层B帧的预测结构。
变换量化:
该模块通过对残差数据进行变换量化去除频域相关性,对数据进行有损压缩。变换编码将图像从时域信号变换至频域,将能量集中至低频区域。量化模块可以减少图像编码的动态范围。变换编码和量化模块从原理上属于两个相互独立的过程,在H.265/HEVC中减少了计算的复杂度。
去方块滤波:
在基于块的视频编码中,形成的重构图像会出现方块效应,采用去方块滤波可达到削弱甚至消除方块效应的目的。提高图像的主观质量和压缩效率。H.265/HEVC仍是基于块的视频编码,因此延续了环内去方块滤波的思路。
样点自适应补偿:
样点自适应补偿滤波处于去方块滤波之后,通过解析去方块滤波后的像素的统计特性,为像素添加相应的偏移值,可以在一定程度上削弱振铃效应,提高图像的主观质量和压缩速率。H.265/HEVC新增的一项编码技术。
熵编码:
将编码控制数据、量化变换系数、帧内预测数据以及运动数据等编码为二进制流进行存储或传输。熵编码模块的输出数据即原始数据压缩后的码流。H.265/HEVC中采用先进的基于上下文的自适应二进制算数编码(CABAC)进行编码,引入了并行处理框架,在速度、压缩率和内存占用等方面均得到了大幅改善。

H.265/HEVC技术的主要特性
1、加大编码单元提高编码效率:
在H.265/HEVC中,将一个亮度样本编码树块(CTB)和两个响应色度样本编码树块(CTB)的组合定义为编码树单元(CTU);将一个亮度样本编码块(CB)、两个相应色度样本编码块(CB)和关联语句元素的组合定义为编码单元(CU)。
编码图像时,将一幅图像分成许多编码树单元(CTU),其大小通常是64 * 64。编码单元(CU)的大小以亮度编码单元(CU)为准,可以是64 * 64,、32 * 32、16 * 16、8 * 8的编码单元,最小的编码单元(CU)是8 * 8亮度编码块(CB)和相应的两个4 * 4色度编码块(CB)组成。使用大的样本编码单元(CU)可以获得比较高的压缩率。
笔记——H.265/HEVC视频压缩与编码概述

2、改进的帧间预测技术:
在H.264/AVC中,基于4 * 4大小的编码块采用9中预测模式,基于16 * 16大小的编码块采用四种预测模式。考虑高清视频纹理的多样性,为了更准确地反映纹理特性,降低预测误差,H.265/HEVC提出了更为精确的帧内预测技术。对于亮度信号,H.265/HEVC共提供了35中帧内预测模式,包括33种角度预测以及DC预测模式和Planar预测模式。增加的预测模式可以更好地匹配视频中的复杂纹理,更好的预测效果,更加有效的去除空间冗余。
3、先进的帧内预测技术:
为了提升帧间预测性能,在H.265/HEVC中引入了 新的帧间预测技术,包括运动信息融合技术(Merge),先进的运动矢量预测技术(Advanced Motion Vector Predictor, AMVP)以及基于Merge的Skip模式。Merge技术利用空域相关性和时域相关性来减少相邻块之间的运动参数冗余,具体来说,就是取其相邻PU的运动参数作为当前PU的运动参数。AMVP技术的作用与Merge技术类似,也是利用空域相关性和时域相关性来减少运动参数的冗余。AMVP技术得到的运动矢量一方面为运动估计提供搜索起点,另-方面作为预测运动矢量使用。
4. RQT技术:
RQT (Residual Quad-tree Transform)技术是一种基于四叉树结构的自适应变换技术,它为最优TU模式选择提供了很高的灵活性。大块的TU模式能够将能量更好地集中,小块的TU模式能够保存更多的图像细节。根据当前CU内残差特性,自适应选择变换块大小,可以在能量集中和细节保留两者做最优的折中。与传统的固定块大小变换相比,RQT对编码效率贡献更大。
5. ACS技术:
ACS (Adaptive Cofficient Scanning)包括三类:对角扫描、水平扫描和垂直扫描。ACS技术是基于4x4块单元进行的,将一个TU划分为多个4x4块单元,每个4x4块单元内部以及各个4x4块单元之间都按照相同的扫描顺序进行扫描。对于帧内预测区域的4x4和8x8尺寸的TU,其根据所采用的帧内预测方向来选择扫描方法:当预测方向接近水平方向时就选用垂直扫描,当预测方向接近垂直方向时就选用水平扫描,对于其他预测方向使用对角扫描。对于帧间预测区域,无论TU尺寸多大都使用对角扫描方式。
6. SAO技术:
图像经过编码后,重构图像的失真不仅存在方块效应,还存在振铃效应。H.265/HEVC引入了 一种新的滤波方法:像素自适应补偿技术(SAO) . SAO位于去块效率滤波器之后,用于补偿重构像素值,达到减少振铃效应失真目的。SAO分为边缘补偿(EO) 和带状补偿(BO) 两种方式。
7. IBDI技术
IBDI (Intemal Bit Depth Increase)技术是指在编码器的输入端将未压缩图像像素深度由P比特增加到Q比特(Q>P),在解码器的输出端又将解压缩图像像素深度从Q比特恢复到P比特。IBDI技术提高了编码器的编码精度,降低了帧内/帧间预测误差。但由于要建立参考队列,像素深度为Q比特的重构图像须占较大的内存空间。此外,在进行帧间运动估计和补偿时,需要较多的内存访问带宽,这样会给内存受限的系统带来不便。解决的办法是引入参考帧压缩算法,来减小重构图像的数据量。

参考:
《新一代高效视频编码H.265/HEVC:原理、标准与实现》
《多媒体技术基础》