H.266视频编解码标准22
发表时间:2023-02-17 09:43 H.266多功能视频编码编解码器标准,新的H.266 /VCC编解码器在保持清晰度不变的情况下,数据压缩效率获得极大提高,数据量减少了50%。 新标准的公告中指出,由于改进了压缩技术,H.266将减少约50%的数据需求。使用之前的HEVC编解码器,传输一段90分钟的超高清(UHD)视频需要大约10GB的数据,而H.266只需5GB就可以做到这一点。 据了解,该编解码器为全新设计,主要用于4K和8K流媒体视频,它将允许用户存储更多的高清视频,并减少移动网络的数据量。 H.265/EVC编解码器是高效率视频编解码,而H.266/VVC编解码器为多功能视频编解码。 弗劳恩霍夫研究所视频编码系统负责人本杰明·布鲁斯(Benjamin Bross)表示,由于H.266/VVC提供了编码效率的飞跃,视频的使用量将在全球范围内进一步增加。此外,H.266/VVC的通用性增强,使其在与视频传输和存储相关的更广泛的应用中更具吸引力。 不过根据此前普及的速度来看,H.266的应用恐怕还需要些时间,2013年H.265标准制定,2017年才被苹果所支持。时至今日,有着将近20年历史的H.264仍被广泛应用。 有业内专家分析称,新H.266预计在2027年才会被广泛接受和使用。 对新标准的主要要求如下:
与HEVC相比,预计编码复杂度将增加10倍,解码复杂度将增加2倍。 VVC压缩标准也被称为H.266、ISO/IEC 23090-3、MPEG-I part3和未来视频编码(FVC),于2020年7月6日定稿。本文讨论了已成为VVC标准一部分的最有趣的视频编码技术。 编码结构 slices、tiles、subpictures CTU(编码树单元)的大小已经从64х64增加到128х128像素。tiles、slices和subpictures现在在比特流中被逻辑地分开。每个视频帧被分割成一个有规律的网格块。几个块可以组合成逻辑区域,定义为tiles、slices和subpictures。这些方法在早期的编解码器中已经是众所周知的,但VVC采用了一种新的方式来组合它们。这些区域的关键特征是它们在比特流中被逻辑地分开,并提供多样化的选择:
块划分 在HEVC中只有单一的树状结构,允许将每个方形块递归地分割成4个方形子块。现在,VVC在一个多树结构中提供了几种可能的分割操作。第一个分割是进入一个四叉树,就像HEVC中一样。此外,每个块还可以被水平和垂直地分割成2(BT分割)或3(TT分割)个部分。 这一步又是递归进行的,所以每个矩形块可以进一步被分成水平或垂直的2或3部分。这种方法能使编码器更好地适应输入,但也大大增加了视频编码的复杂性。 此外,亮度编码块和色度编码块可以是不同的,形成一个双树结构。换句话说,在同一CTU内,色度样本可以有一个独立于亮度样本的编码树结构。这使得对色度样本使用比对亮度样本更大的编码块成为可能。 块预测 由于VVC中的预测块可能不是方形的,一些传统的模式被广角方向(广角帧内预测 Wide Angle Intra Prediction)所适应性地取代。因此,更多的参考像素可以被用于预测。从本质上讲,这将预测方向的角度拓宽到超过一般的45°和-135°。 VVC增加了一个新的依赖位置的预测组合(Position-dependent prediction combination)模式,在这种模式下可以进行方向性插值。它将空域(帧内)预测与一些主要样本和参考样本的位置依赖性加权相结合。 此外,在许多情况下,亮度和色度分量携带非常相似的信息,因此为这些情况增加了一种新的预测模式,称为跨分量预测(Cross-component Prediction)。在这种模式下,可以从重建的亮度块中直接预测色度分量,使用重建像素的线性组合。这种模式有两个参数,系数和偏移量,其中系数是由帧内参考像素计算出来的。如果有必要,该块也会被缩放。 在VVC中,现在可以使用与当前块不直接相邻的两条线进行预测;这被称为多参考线预测(Multi Reference Line Prediction)。 帧间预测 从一张或两张参考图片进行单向和双向运动补偿的基本概念大多没有变化。然而,有一些新的工具,没有在之前的视频编码标准中使用过 传统的运动补偿表示二维平面运动。然而,这种运动在实际视频中很少遇到,因为物体的移动更加自由并且可能同时改变形状。对于这些情况,在VVC中实现了仿射运动(Affine motion)模型,它使用两个或三个矢量来实现四或六个自由度的运动。 最大的亮度运动矢量精度从1/4增加到1/16像素,而相应的色度运动矢量精度从1/16增加到1/32像素。 现在可以使用自适应运动矢量分辨率(Adaptive motion vector resolution)进行编码。这有助于降低运动矢量中较大值的编码消耗,对高分辨率(4K及以上)来说尤其重要。 现在有了一种补偿重叠块运动的方法。这种方法被称为重叠块运动补偿(Overlapped Block Motion Compensation),对相邻块的边缘进行重叠,然后对其进行平滑处理,以避免通常在帧间预测中出现的尖锐过渡。 如果块使用双向预测,新的BDOF(双向光流 Bi-directional optical flow)方法可用于细化预测块的运动。这种算法不需要解码器信号,可以节省2%到6%的比特率。 解码器侧的运动矢量细化(Decoder side motion vector refinement)使得在解码器中细化运动矢量成为可能,而无需传输额外的运动数据。这个过程包括三个阶段:首先,进行双向预测,并将数据加权到一个初步预测块。然后,围绕原始块的位置进行固定数量的搜索。如果找到一个更好的位置,则对原始运动矢量进行相应的更新。最后,用更新后的运动矢量进行新的双向预测,得到最终的预测结果。 矩形块通常不能很好地预测真实视频。为了更有效地进行预测,VVC中加入了几何划分(Geometric Partitioning)。这个选项允许将一个块被非水平地划分成两部分,并对每一部分进行单独的运动补偿。目前的实现包括82种不同的几何划分模式。 变换和量化 在VVC中,最大的变换块大小已经增加到64×64。这些变换在涉及到高清和超清内容时特别有用。 与HEVC只有一个DCT(DCT-II)变换不同,VVC有4个可分离的变换。
编码器可以根据预测模式选择不同的变换。 VVC标准中的自适应环路滤波有以下特点:
HEVC VS VVC 下图展示了使用HEVC HM 16.15和VVC VTM-12.0参考编码器编码两个测试序列的结果。在这两种情况下,都是使用标准配置文件(randomaccess.cfg)和同样优化的编码器进行编码。 从图中可以看出,VVC的编码效率在所有比特率下都超过了以前的标准。考虑BQMall序列和其中间部分达到的码率,HEVC的比特率为1002 kbps,APSNR为38.58 dB。使用VVC编码达到类似的质量只需要696 kbps的比特率(APSNR为38.50 dB),获得了30%的比特率节省。HEVC的编码时间约为17分钟,而VVC的编码时间为2.5小时,是其9.3倍。 |