本章主要给出了视频编码基本原理的概述,从视频序列的采集、编码、传输到显示,完整的工具链。主要关注点在编解码处理方面。 这包括视频序列的呈现格式,比如颜色的呈现格式。还有基本概念和混合编码的主要构成部分。本章的主要目的是给出各组件的概念以及不同组件之间是如何交互的。 接下来的章节里,会更加详细的呈现 HEVC 方案中构建模块的具体实现。
完整的视频编码系统设置可以根据图2.1中的组织。视频编码系统的构建模块包含如下几个:
- 视频采集 - 视频序列的源通常是数字格式的输出。视频采集过程可能与后面的处理步骤,在时间上和空间上分离开来。
- 前处理 - 对未压缩的原始数据进行操作,比如视频裁剪、颜色格式转换、颜色校正和去噪等。
- 编码 - 输入视频序列转换为编码比特流。编码的目的是对输入视频序列生成一个压缩比特流,它适用于特定条件下的传输方式。
- 传输 - 将比特流打包成合适的格式,并在信道中传输。传输包括视频数据的发送和传输到接收端,以及潜在的损失保护和俗世恢复。在某些场景中,比如会议应用中的实时要求,接收端到发送端的反馈是可得的,并且可以用于控制编码器的配置。这类反馈甚至可以用于重新传输,防止信息丢失的情况。
- 解码 - 将接收到的比特流转换为重建视频序列。因为视频编码通常需要有损压缩来达到特定的传输比特率,解码后的视频构成原始视频的近似值。如果传输损失已经不可逆的发生,解码端会采用隐藏策略尽可能的恢复损失的视频。
- 后处理 - 对重建视频序列进行操作以提升或适用与显示。这些操作包括颜色校正、裁剪或者重采样等,或者根据应用执行特定的操作。
- 显示 - 视频序列的呈现用于显示。视频序列需要转换为特定的颜色格式以用于显示。视频序列中图像的输出时间非常重要,已获得预期的视觉印象。
上面描述的处理步骤代表了简单的工具链。在真实的应用中,多前处理/后处理与编解码和传输迭代连接使用。很多应用中,转码技术被应用,输入比特流被转换为带有不同特性的比特流,或者转换为不同视频编码格式的比特流。
视频序列可以从多种源内获取。这包括自然风景的捕捉、照相胶片材料的扫描、模拟视频的录制、合成生成的视频素材比如计算机生成的动画等。而且,上述视频源的混合和组合也是可能的。根据原始视频材料的源,the signal reveals different characteristic properties concerning the represented scene content as well as the presence of other signal componentswhich interferewith the content, such as camera noise, film grain, motion blur, or artifacts from digitized analogue or physical source material. 在一个简单的单一模型中,获得的视频序列可以描述成未失真的视频信号,被噪声信号增量失真。进一步,视频序列中的非累加伪像可能与相机镜头的特性而导致的扭曲或色彩对准问题。当自然风景被捕捉时,相机属性,例如镜头的结构和分辨率传感器芯片或快门速度对于最红的视频序列特性和图像质量起着重要的作用。
如上节所述,输入视频原素材可能有多种退化以及显示非预期的伪像,这些都应该去除掉。更进一步的预处理操作包括裁剪、几何格式转换、颜色空间格式转换。此外,视频序列被捕捉的速率可能被修改。因为不同的分发方式对应不同的图像速率,图像速率转换时一个非常重要的工作。
在预处理阶段,传入的原始视频素材可能经过多次信号处理和信号增强操作,以便于为后面的视频工具链做准备。对于视频编码,为满足特定应用的需求,可能需要特定的前处理来适应。这包括图像帧率,图像分辨率和图像颜色格式。另外专用的预处理会用到原素材上,以支持编码器实现更高效的压缩效率或者适应视觉印象。适应的操作包括本地低通滤波和去噪滤波。
编码阶段将输入的视频序列转换为比特流的编码表示。当代视频编码标准的比特流有个面向分组的结构,编码信息按照采用的规范按照层级结构组织在一起。
编码器必须生成一个为应用需求的比特流。这包括在编码中用到的工具(对应到视频编码标准中特定的层级),或者解码器侧缓冲的约束要求和编码视频的最终比特率。
编码器控制选择的优化是编码器设计中一个非常重要的方面。帧级别上,编码工具的选择和图像的不同区域分配到的不同比特数,都应该考虑到。针对同一个视频编码标准的两个不同编码器实现,可能会生成非常不同的视频质量。
根据用于编码视频的时间不同,用于优化的经历和花费也大不相同。在实时应用中,编码器只能使用正在编码视频的过去信息来适应内容。更进一步,传输需求和其他的不可预测事件影响编码进度。
在制作视频以进行存储和媒体分发的制作系统中,视频处理后主要用于大规模分发到海量客户。此时,视频的离线处理可以使用,对编码器的大量优化工作和参数调优可以进行。
在准备传送到解码端的准备过程中,根据不同应用,编码比特被转换成运输格式。
位于图2.1 框图中的传输组件代表将编码的视频序列传输到接收端。该传输可能是实时的甚至是双向的,比如会议应用中。此时,位于发送端和接收端的端到端的延时是关键。在现场直播应用(如体育赛事)中,一定程度的延时通常是可以被忍受的,因为在接收端和发送端没有反馈。在存储和视频分发应用中,传输和分发过程甚至可能是短暂分开的。类似的应用包括视频点播系统,或者存储应用比如DVD和蓝光。
传输系统的设计方面包括所需的可访问性信号。这在多通道应用中非常重要,比如电视中的进入各个频道以及各频道之间的切换非常重要。在对话应用中,多个参与者加入视频会议,组织和分发到指定的与会人端是重要的。在流媒体或者存储应用中,快进、快退、搜索功能通常是需要的。
传输过程中另一个重要的功能是传输信号的鲁棒性,不能丢失、损坏、或者扭曲。在面向数据包的传输方案中,数据包的无错误传送通常是必须的。传输信号的失真包括数据包的丢失。因此防止数据包的丢失和丢失后的可恢复机制的设置是必须的。
解码器存储接受到的比特流到一个缓存中,并按照编码器指定的格式,重建编码数据。在标准的视频编码系统中,解码过程遵循规范性程序,正如在基础视频编码规范中。如果没有损失发生,位于解码器输出端的参考帧与编码端的参考帧完全匹配。比特流可能包含部分信息,这是显示的解码视频部分。甚至可能表明完整的解码图像被暂缓显示。
解码器控制中很重要的一点是内存管理,包括解码帧的内存管理和输入码流的内存管理。位于DPB中的解码图像可能用于解码过程中的参考帧。更进一步,在以特定速率显示的系统中,解码流程必须使得解码视频对显示部分是可用的。
以防传输中的数据丢失,解码器需要能够对丢失数据进行处理,并对潜在的意外情况有所措施。这种情况下,错误恢复能力是要有的,解码器必须能够应用错误恢复机制。
从解码器输出的图像可能被送到后处理阶段,该阶段可能进行图像增强处理和显示适配处理。同样的,解码器后处理的错误隐藏方法也会被应用到。
如果解码视频的格式与显示需要的格式不对应,与前处理相似的转换操作就会执行。这包括颜色格式和分辨率或者图像率。
显示设备是最终将视频信号呈现到人眼视觉的接口设备。
正如前面提到的那样,并不是所有的编码视频序列的所有样本都在显示端使用或者可获取。例如图像的部分左边界或右边界(或左右边界)在显示区域的外面。如果图像的剩余部分显示在整个屏幕上,这种操作方式称为过扫描。如果编码的帧数比屏幕上显示的样本数少,视频可能会拉长来达到显示分辨率;或者视频的显示不改变,但显示区域不能够覆盖整个区域。这种操作模式称为欠扫描。
视频格式,原材料的颜色空间,和其他有用的信息,may be utile for adequate preparation of the video for display can be signaled with the video data。这类信息称为VUI信息,VUI会在后面 5.7 章节描述。尽管这类信息对于规范的解码流程影响不大,关联这类信息与视频数据本身,能够保证显示的参数传递到解码端。在某些应用场景中,VUI信息可能是固定的,因此在系统中是写死的。
视频序列包含一系列的图像,连续图像之间呈现固定或动态时间间隔。为得到运动效果,帧率必须达到24帧每秒。最小帧率取决于照明条件和显示内容。帧率的单位是Hz,1Hz = 1s¯1.图像率通常也称为帧率,使用首写字母fps(frames per second)。HD 视频使用50-60Hz的帧率。对于UHD格式,帧率高达120Hz。关于更高帧率的讨论,见【3】。
视频编码的内容是,输入视频序列被编码成比特流,它包含了所有的信息和数据,使得能够在接收端解码比特流并重建输出序列,用于显示。绝大多数视频编码应用,编码视频序列到对应的有损压缩,即解码端的重建视频序列近似于输入视频序列。位于发送端(原始视频序列的被编码)和接收端(包含解码器)的传输,可能是实时的或近似实时的(在视频会话或现场直播场景)。它也可能是非实时的,比如将视频存贮到Blu-ray盘、DVD 中,或在流媒体应用中。
图像是有强度值的样本的数组。数组中的每个采样,也称之为像素。如果图像是单色图像,它只有一个颜色分量,图像由一组单个采样组成。
眼镜对颜色的感知受到电磁波的刺激。电磁波的可见范围包括380至780nm的近似范围。颜色的印象对应于在可见光谱范围内对强度-密度分布的感知。与单一波长对应的颜色称为光谱色或原色。这些覆盖范围从紫色到蓝色、绿色、黄色再到红色。通过多种光谱颜色(例如品红或棕色)的组合,可以创建大量观察到的颜色印象。
人类视觉系统有三种颜色感受器(锥形细胞),在红色、绿色和蓝色的波长区域具有最大的灵敏度。它还包括灰度受体(杆状细胞),在弱光条件下(如夜间)特别敏感。不同颜色的印象是由三种颜色感受器的联合刺激产生的。人类视觉系统的特点是,通过多种不同的光谱颜色组合可以获得相同的颜色印象。导致相同颜色印象的刺激具有同色异谱的特征。这种同色异谱用于显示颜色,通常使用三种光源(红色、绿色和蓝色)的混合来产生颜色的印象。
自 H.261 以来,混合视频编码方案一直是 ITU-T 和 ISO/IECMPEG 的所有视频编码标准和建议的基本结构。尽管编码结构没有改变,但在过去 25 年中,构建块所代表的算法已经得到了改进,算法的适用配置变得越来越灵活。因为它将视频序列图片之间的时间预测与预测误差的变换编码技术相结合,这种编码方案称为混合编码。
混合视频编码方案已经被证明是一种非常适合将视频信号有效压缩为最小可能大小的比特流的工具。通过对预测误差信号的预测和变换,消除了数据中的冗余信息,并在变换后进行量化,去除了信息中不相关的部分。
混合视频编码方案的基本结构如图 2.8 所示。该图在很大程度上被简化,以使结构和相互依赖性可见。它对应于一个经典的 DPCM 循环:输入视频序列的图片被送入编码器。从输入信号中减去编码器和解码器可用信息生成的预测信号。残差信号(用于表示结果预测误差的)被变换、量化并编码到比特流中。在解码器侧,再现预测信号所需的预测参数也被编码到比特流中。在无差错传输的假设下,编码器和解码器侧是同步的,因为编码器包括解码器的完整预测结构。在图2.8中,编码器和解码器中包含的构建块用灰色框标记。
先前编码的图片可用于要编码的当前图片中的帧间预测。编码器还可以选择使用当前图片内已编码的相邻样本进行帧内预测。视频序列的第一个编码图片只能应用帧内预测,因为没有先前的图片可用。对于之后的图片,编码器基于决策(例如,率失真优化)在两个预测选项之间进行决策。
该过程以基于块的方式操作,其中完整的输入图片被分割成非重叠块,这些块被一个接一个地处理。对于预测信号的构造,首先重构经变换和量化的预测误差,并将其与可用预测相加。然后,该信号由环路滤波器(例如去块滤波器)处理。如果已处理完整图片,则重构图片可用,因为它也在解码器侧。重建图像存储在解码图像缓冲器中,以使其可用于预测。
对于帧间预测,运动估计阶段(ME)在解码图片缓冲器中搜索可用于当前图片块的最佳预测。对于帧内预测,来自当前图片的已重构相邻块的样本值可用于预测。根据编码器决定选择了哪种预测模式,帧内或帧间预测信号用于当前块的预测。
图 2.8 所示的框图不包括编码器控制所需的构建块。编码器实现需要一个控制引擎,该引擎决定合适的预测模式、预测和滤波参数以及合适的量化参数。比特流中还包括用于通知解码器所选预测工具和配置的控制信息。
接下来,简要描述混合视频编码方案的构造块。对图 2.8 中使用的首字母缩略词进行了解释。为简化起见,本说明侧重于 luma 组件。对于色度分量,类似地执行预测和变换编码。
每个图片被分割成一组完整的非重叠块。图 2.9 显示了图片基本分区。在之前的视频编码规范中,基本块结构是称为宏块的 16x16 luma 样本和相应色度样本。作为宏块概念的推广,编码树块(CTB)被引入 HEVC。它可以分为多个编码块(CBs)。对于预测,每个编码块被划分成一组一个或多个预测块(PB)。并行地,编码块可以被划分为变换块(TB)。
图片可以被分割成一个或多个slices,这些 slice 由整数个 CTB 组成,并且可以独立解码。
帧内预测用于去除图片局部区域内的相关性。帧内预测的基本假设是,图片区域的纹理与局部邻域中的纹理相似,因此可以从那里进行预测。
帧内预测的执行是在预测宏块的基础上进行的。在图 2.8 的框图中,它由用于帧内预测的构建块"intra"表示,使用来自所考虑的预测块的重构领域的样本来形成预测信号。当没有用于帧间预测的图片可用时,或者如果帧间预测比合适的帧内预测效率更低或更昂贵时(在合适的成本标准的意义上),则应用帧内预测。
直接相邻样本(即来自当前块上方采样线的样本和来自当前块左侧重构块的最后一列的样本)通常用于预测。将相邻样本组合,以形成方向或平面预测信号。方向帧内预测的图示如图 2.10 所示。帧内预测的质量和使用频率取决于各个方面。标准包括可用的帧内预测方向、应用前预测样本的潜在预滤波方法,以及其他非方向性预测方法(如DC或平面预测)的可用性。对于帧内预测,适用帧内预测模式的有效信令是必不可少的。可供使用的变体越多,就需要更有效的信令,以便不以预测收益换取信令成本。
帧间预测的一个基本假设是,视频序列中图片内容的重要部分由场景中移动的对象组成。从一张图片到另一张图片,场景内容之间只有微小的差异,这些差异主要是由运动引起的。如果将该运动用于预测,则可以通过运动向量和预测误差信号有效地表示场景。运动向量指示应如何将图片区域从参考图片移动到当前图片以形成预测。预测误差信号包含使用的运动模型无法描述的场景内容部分。
帧间预测的执行是在预测宏块的基础上进行的。在图 2.8 的框图中,用 inter 表示。通常,通过从解码图片缓冲器中选择可用参考图片来执行帧间预测,并指示相对于所选图片中当前预测块的位置的位移。
该位移由观测场景中刚性物体的平面运动假设驱动,如图2.11a所示。更复杂的运动,如相机方向的运动或旋转,或非刚性物体的运动,不能用这个非常简单的模型来表示。刚性物体的纯旋转运动和仿射变换(物体形状受到影响)的示例如图2.11b/c所示。更复杂的对象,包括烟雾、水波纹以及阴影、反射或透明度等效果,会进一步降低通过简单置换从一张图片到另一张图片进行预测的可能性。然而,通过调整合适的预测块大小,使用这些位移的预测质量被认为是足够的,并且适合于视频编码应用。
就预测精度而言,例如描述旋转或仿射运动的运动参数可能是某些示例场景的适当解决方案。然而,到目前为止,所需参数的信令成本,找到正确的模型参数所需的估计工作以及在解码器中实现高阶运动模型时的复杂性影响组织了视频编码规范中高阶运动模型的规范化。由于只有使用位移向量的平移运动模型可用,因此必须(某种程度上)通过调整预测块的使用大小和形状来近似更复杂的运动。
对于帧间预测,当前图片被划分为不重叠的矩形块。对于每个块,应用位移向量从参考图片的位于区域获得块的预测,见图2.12。对于当前图片中固定块光栅中的每个预测块,确定参考图片中的相关区域。当当前图片中的块遵循给定的块网格时,参考图片中的参考块根据运动估计的优化准则被任意定位。
就运动精度而言,最简单的实现方式是允许采样网格上的整数位移。由于捕获场景中的运动不一定对应于序列中连续图片之间的全采样增量,因此需要子采样运动矢量精度以获得高压缩性能。使用插值滤波器对子样本位置处的预测信号进行插值。在 H.264 | AVC 和 HEVC 中,luma 分量中的运动示例采用四分之一采样精度。在HEVC的开发过程中,已对更高精度的luma运动矢量的使用以及自适应插值滤波器的使用进行了研究,但由于观察到亚索增益改进和实现复杂性成本之间的折中,因此尚未被采用到视频编码规范中。
运动估计在预测块级别上操作,并且只是编码器的一部分。估计器使用当前预测块,并尝试在可用参考图片中找到最佳匹配区域。最佳匹配的确定取决于采用的成本标准。
帧内和帧间预测消除视频序列的图片内和图片之间的相关性。从当前块中减去预测信号将生成剩余信号,其中包含无法通过所选预测方法预测的原始信号部分。尽管预测已经降低了残差信号的相关性,但它仍然包含可以进一步压缩的信息。解相关通过变换来执行,该变换被应用以通过可能少量的变换系数来表示残余块中残余信号的相关部分。然后将这些系数量化并编码到比特流中。
变换以变换块为基础。在图 2.8 所示的框图中,前向变换和量化由"TR+Q"表示。逆量化和逆变换块用“iTR+iQ”表示。通常,变换块大小小于或等于预测块大小。因此,防止了跨越人工边界的转换。如果两个相邻预测块的预测源发散(例如,当从不同参考图片进行预测时),则可能出现这种边界。
环路滤波是一种提高显示图像重建质量的方法。由于滤波器位于环路内,因此增强不仅影响输出图片的质量,还影响参考图片的质量,在编码后续图片时,参考图片可用于预测。因此,环路滤波器对视频编码方案的整体性能有很大影响。优化标准可以是视觉质量,也可以是客观保真度度量,例如原始图片和重建图片之间的均方误差最小化。
从概念上讲,可以区分两类循环滤波器操作:第一类包括应用于图片区域甚至完整图片的线性滤波器。对于所选区域,滤波器操作可以作为与空域中的滤波器冲激响应的卷积或与频域中的滤波器传递函数的乘法来执行。滤波器配置在视频序列上可以是灵活的或静态的,并且可根据所选择的优化标准(例如,使用维纳滤波器方法)在编码器侧确定合适的滤波器参数。
第二类环路滤波器的滤波器在图片的局部空间域上执行。基于局部特征,只对小样本集进行适当的滤波操作。H.264|AVC 和 HEVC 的去块滤波器就是这类滤波器的代表。去块滤波器处理由块运动补偿预测和残差信号的块处理引起的块效应。由于残差信号的量化,这些块的边缘在重建的图片中变得可见,从而无法实现原始图片的完美重建。为了减轻这种影响,去块滤波器在预测和变换块边界的局部区域中工作。去块滤波器的强度由处理边界处检测到的“块状”量局部控制。第9.1节讨论了HEVC去块滤波器的实现和相应的去块滤波器控制。
局部环路滤波器的另一个代表是采样自适应偏移(SAO)滤波,它是 HEVC 中新添加的,以前没有包含在 ITU-T 或 ISO/IEC 视频编码标准中。SAO 以样本为基本单位进行操作,独立于重建图像的块结构。HEVC 中定义了两种类型的 SAO 滤波:基于局部邻域的样本级校正的推导、基于样本本身的强度级的样本级校正的推导。从概念上讲,采样自适应偏移滤波可被视为图像恢复操作。虽然此类滤波器通常可在后处理阶段应用于重构视频,但在这种情况下,其被集成到编码环路中。SAO 可用于有效减少振铃伪影或校正由于量化而移位的电平值。HEVC 采样自适应偏移滤波器的操作在第 9.2 节中进一步详细说明。
如图2.8所示,环路滤波器在框图中由"环路滤波器"表示的。过滤器在slice的基础上运行,因为滤波应用于 slice 内的块边界。在 H.264|AVC 和 HEVC 中,去块滤波器也可以配置为适用于 slice 边界。
H.261 spce 中已经存在变量环路内的滤波过程。在这里,可在 8x8 块的基础上应用可分离的三抽头平均滤波器。以宏块为单元激活滤波。与 H.264|AVC 和 HEVC 不同(它是在重建后应用环路滤波器,如图 2.8所示),H.261 环路滤波器位于运动补偿阶段之后。因此,对添加重构残差之前的帧间预测信号进行滤波,而不是对重构图像进行滤波。由于 H.261 仅规定了全样本的运动补偿预测,因此可以将环路滤波器的应用解释为缺失子样本运动矢量精度的替换。如果块不适合全采样运动补偿,则通过对运动补偿块进行低通滤波来改进预测。
解码缓冲区保存解码后的重建图片,直到他们被安排显示。如果图片的解码顺序偏离图片的输出顺序,则这是特别必要的。除了用于显示的存储之外,还可以存储图片以用作帧间预测中的参考图片。在图2.8的框图中,解码换中去以“decode buffer”来表示。
缓冲器的大小定义了应用于视频序列的适用时间编码结构的限制。从概念上讲,缓冲区中区分了两种类型的参考图片:短期参考图片和长期参考图片。短期参考图片表示来自要预测的当前图片的时间接近度的参考图片。长期参考图片被明确标记为长期参考图片。这些图片可用于存储具有特定场景内容的图片,以便在更大的时间尺度上参考使用,例如,如果某些场景内容在被其他内容中断后重复出现。HEVC中参考图片和解码图片缓冲区的处理详见第4.3节和第5.6.2节。
图 2.8 中的方框图不包括编码器控制的概念,以简化该图。事实上,方框图中几乎所有的模块都受到它的影响。编码器控制根据应用要求做出与将视频序列的图片编码到比特流中有关的所有决策。
作为基本属性,编码器控制必须确保生成的比特流,符合给定视频编码规范要求。在大多数应用中,最重要的任务是在这些约束条件下优化比特流(或比特流大小)和重构视频质量。这意味着在重建质量不低于预定义水平的情况下最小化比特率,或者在给定比特率约束的情况下最大化重建视频质量。编码器控制的两一个非常重要的方面是确保发送到解码器侧的比特量被调节,使得用于输入比特流的解码器缓冲器既不会过度填充也不会空转。该任务是通过应用第5.6节中进一步讨论的假设参考解码器模型(HDR)来实现。在低延迟和实时应用中,必须实现满足实时约束的快速编码器操作。在这种应用场景中,视频通常在编码器可用时直接处理。如果视频素材脱机处理以供以后使用,则编码速度就不那么重要了。在这种应用场景中,可以应用详细的编码器优化策略,并且可以使用多通道编码。多通道编码允许编码器控制在编码视频序列图片时使用“前瞻”知识。因此,可以有效地投资比特率,以便在准备即将到来的内容时进行更好的预测。
编码器控制需要做出的决策包括图片的合适分区以及编码块分分区。此外,还涉及合适的帧间和帧内预测模式、运动向量、循环滤波模式、合适变换和参考图片管理。选择合适的运动矢量和相应的参考图片是一项主要任务。运动估计阶段的运动矢量确定通常覆盖编码器处理时间的很大一部分。为了在保持尽可能搞得预测质量的同时降低该任务的计算复杂度复旦,已经开发了多种快速搜索策略。
编码器端的基本判定标准是平衡要花费的比特率与所达到的相应重建质量。该标准在块级别上用于决策预测模式,以及在更大级别上使用,例如在决定合适的图片结构时。比特率成本可以通过计算在给定模式下编码块所需的比特数直接测量。该分析越完整,结果就越精确和可靠(例如,包括量化变换系数的编码成本)。在基于VLC的解决方案中,这可以通过相应的表查找来实现。对于算术编码,确定要花费的精确位数需要更多的努力,因为需要进行尝试编码和适当的编码器状态管理以实现精确测量。
为了确定重建质量,通常测量重建图像相对于原始图像的客观失真。这种测量通常是在逐个采样的基础上进行的。后面的小节总结了 HEVC 参考软件中使用的相应失真度量。从概念上讲,也可以采用更详细的措施,例如,考虑观察者的模拟主观印象。这些措施可能能够更好地描述编码器决策的视觉影响。为了在编码器实现中有效应用,此类措施必须在块基础上以及图片基础上可操作。由于其有效性,下文所述的简单差异度量别广泛使用。
下面总结了最常用的基于样本的失真度量。将当前块表示为 Bc和 NxM 个样本(N, M),并将预测块表示为P 和 NxM 个预测样本P(n,m)。
让每个编码树块(或每个宏块)使用特定的编码模式进行编码。编码模式包括合适的预测模式、相应的预测参数和用于变换编码的合适的块划分。在所有可用的编码模式都可用时,编码器必须决定哪种编码模式以及对视频序列的每个图片中的每个块(例如,每个编码树块或每个宏块)应用哪些预测参数,为了根据所使用的比特率 R 和所选编码模式引起的观察到的失真 D 来优化输出。这个问题可以通过使用经典的率失真优化来解决,并在图片的基础上应用。
信号通过预测、去相关和熵编码,可用于生成紧凑的编码,其允许信号的完美重建。量化操作从信号中移除一些信息,这类信息是无法恢复的。这就会产生典型的压缩损失,本节将简要介绍这些损失。
就单个图片红可能出现的损伤而言,存在三种类型的损失,他们发生在预测编码的上下文中。这三种类型是振铃、模糊和快效应。这些伪影可以被认为是图片中的局部伪影,因为它们是由正在考虑的图片的量化预测误差的预测和重建引起的,并且确实出现在静止图像编码方案以及视频编码方案中。对于视频序列,可能会引入额外的伪影,其可严重损害重构视频的视觉感知。当编码的运动矢量与场景中观察到的运动不匹配时,可能会引入运动抖动。例如,如果量化器控制周期性地在精细量化和粗略量化之间切换,则重构质量可能随时间发生泵送。
这里简要描述了每个振铃、模糊和块效应的原因和影响。图2.18中显示了一个示例,其中包含重构视频的快照和每个伪影的一维图示。
振铃发生在变换和量化的时。如果对信号中的陡峭边缘进行变换并且对系数进行量化,则特定与高频的一些变换系数被量化为零。因此,缺失的频率分量在重构信号中诱发损失,其特征为过冲和欠冲。当使用低通滤波器对阶跃函数进行滤波时,这种效应也会发生,这种效应被称为吉布斯现象。图2.18a展示了重构视频序列的样本区域的振铃伪影,并展示了低通滤波一维阶跃相应的吉布斯现象。
如果对信号应用强低通滤波,则会观察到模糊。低通滤波去除细节并平滑信号轮廓。这种伪影是由信号的强量化引起的。他可以通过去块效应滤波器的操作来增强,该滤波器在其他可见的块边界处添加平滑操作。小的变换块尺寸和强去块滤波器的组合助长了重建视频的模糊印象,因为这两种操作保留的细节信息很少。例如,对于使用 H.264|AVC 基线简档以低比特率编码的视频,可以观察到这种效果。在图 2.18b 中可以找到一个示例,提供了重建图片的模糊采样区域和一维信号的图示。
块效应是由两个不同的源引起的伪影。这些是块预测和块变换编码。来自视频序列的图片块或从空间邻域进行帧内预测,或者使用参考图片的运动补偿进行帧间预测。这两种类型的预测都以块为基础进行操作,其中相邻块边界处的样本值不一定彼此相关。这样的结果是,预测操作的块结构变得可见。块效应的第二个来源是视频编码方案中变换编码阶段的块变换性质。随着量化量的增加,相邻变换块之间的块边界变得越来越明显,因为相邻块的重构是独立的。如果残差信号被量化为零,则预测操作的块效应伪影将完全小时。这些块效应可以通过去块滤波器来缓解。其他方法(如重叠块运动补偿和重叠变换)也会减缓这种影响,但会增加整体设计中的计算复杂性和集成问题。图2.18c显示了在重建图片中块效应伪影的示例。如果附加信号的移位部分进行近似,则一维图示举例说明了国度不连续性。