AIoTel下视频编码(二)快速视频编码技术

2023年 11月 10日 30.9k 0

Labs 导读

我们在《AIoTel下视频编码技术(上)》 中提到,AIoTel中应用场景中,视频编码面临着低延时和高效率的挑战。从H.264、H.265到H.266,虽然每一代编码标准比前一代在编码效率有显著提高,但编码复杂度也都大幅提升,严重限制了它们的应用场景。为了解决这个问题,快速编码成为了视频编码中的一个重要研究方向。

一、视频编码标准和快速编码算法的发展

随着数字视频技术的发展,视频编码技术也在不断进步。早在上世纪九十年代,MPEG-2作为第一代广泛应用的视频编码标准,就开始被广泛用于数字电视、DVD等应用中。然而,由于它的编码效率相对较低,无法满足网络视频传播的需求。H.264作为一种高效的视频编码标准,大大提高了编码效率,但随之而来的是编码复杂度的大幅度提升。H.265标准进一步推动了编码效率的提升,相比于H.264,可以在相同的视频质量下将码率降低50%,但与此同时,编码复杂度也进一步提高。H.266标准下编码器的复杂度比H.265相比又提升了一个数量级。

伴随着视频编码标准的迭代演进和压缩效率的显著提升,降低编码计算复杂度问题也日益凸显。研究人员在不断探索更高效的编码方法,期望在保持一定的压缩率和质量的前提下,通过优化编码算法,减少冗余计算有效地提高编码速度。

图片

图1 视频编码标准及复杂度变化[1]

二、快速视频编码的重要性

快速视频编码具有如下重要意义:

  • 节约计算成本

快速视频编码能够在保持一定的压缩率和质量的前提下,有效地降低编码复杂度,减少编码时间。这意味着,对于同样的视频内容,使用快速视频编码技术可以更快地完成编码处理,从而提高了视频的处理速度和传播效率。

  • 缩短编码延时

快速视频编码的实现,使得视频内容可以在更多的应用场景中得到应用。例如,在实时或近实时的视频通信、直播流媒体、视频监控等领域,快速视频编码技术的应用,能够确保视频内容可以在短时间内被处理和传输,从而满足了这些应用对于实时性的要求。

  • 支撑和推动更多的视频应用

快速视频编码的出现,推动了视频技术的发展,为未来的视频应用提供了更多的可能性。随着技术的进步,更多的创新应用,如虚拟现实、增强现实等,都需要依赖快速视频编码技术的支持。

三、H.265快速编码的技术原理与方法

为了实现视频编码的高效率和高质量,从H.264到H.266,新一代的编码标准引入了一系列复杂而高效的技术,如更精细的运动估计、更多样的模式决策、更复杂的编码块划分等。然而,这些高效的技术同时也带来了大量的计算量,导致编码过程变得复杂和耗时。研究人员提出了一系列的快速编码技术,包括快速编码块(Coding
Unit, CU)划分算法、快速模式决策算法和快速运动估计算法等。

3.1 快速编码块划分算法

H.264编码中,宏块的划分相对简单,可以被划分为16x16、16x8、8x16或8x8的子块。H.265引入了一种更灵活的编码树(Coding
Tree Unit,
CTU)结构,允许每个编码块被递归地划分成更小的子块,同时也支持更大的CTU尺寸。这显著提高了编码效率,但同时也增加了编码复杂度。H.266再次推动了编码块划分的复杂性,引入了更多的划分模式和更大的CTU尺寸,但同样也带来了更大的计算负担。

图2 H.265 CTU划分结构[2]

为了解决这个问题,研究人员提出了一系列的快速块划分方法。这些方法的主要思想是通过分析编码过程中的统计信息,预测出最优的划分方式,提前结束逐层级的CU划分和RD

cost计算。快速划分策略通常利用先验知识,如历史编码信息、空间和时间上下文信息等,分析并预测出最优的划分方式,然后只对预测出的划分方式进行测试和RD
cost计算,在其中挑选出最终划分方式。这样,就可以大大减少划分测试的数量,从而降低划分决策的复杂度和时间。

通过一个具体的例子进一步说明。对一个CTU进行块划分时,可以按照图3的方式,仅仅根据四个角的CU信息进行快速判定,看是否可以跳过子CU的划分。若满足跳过条件,整个计算流程将会极大简化,从而降低计算复杂度。图4所示的纹理可以更直观地看出,如果四个角的CU非常接近,那么大概率不用进一步划分成子CU。

图3 基于四角信息的快速 CU划分方法

图4 纹理变化与CU划分结果

3.2 快速模式决策算法

帧内预测模式是视频编码中一个重要的环节,它可以预测当前帧中的像素值,以实现更高的压缩效率。在H.264编码中,帧内预测主要包括9种预测模式:垂直模式、水平模式、DC模式和6种角度模式。H.265进一步扩展了帧内预测模式,引入了33种角度模式;H.266继续增加了帧内预测模式的复杂性,将角度模式扩展到了65种,并且引入了更多的预测工具,如色度预测、联合预测等。这些新的模式和预测工具进一步提高了编码效率,但同时也增加了编码的复杂度和计算负担。

图5 H.264 4x4块 9种预测模式[4]

快速模式决策算法的核心思想是利用视频数据的特性和模式的先验知识,以尽可能减少需要计算的编码模式数量。例如,视频序列中相邻的帧和块在视觉上通常是相似的,它们的最优编码模式也可能相似。因此,可以通过分析前一帧或邻近块的编码模式预测当前块的最可能的编码模式。此外,可以进一步优化模式决策过程。例如,可以使用更复杂的预测模型,如机器学习模型,来预测最可能的编码模式。这种模型可以更好地利用历史编码信息和上下文信息,提供更准确的预测结果。通过以上方法,可以大大减少需要计算的编码模式,从而降低计算复杂度。

例如,对H.265的35种模式进行预测时,不必逐一进行计算,而是按照标号为5、10、15、20、25、30的5个方向做初步筛选,从其中最可能的角度模式中做进一步的精细筛选,从而降低模式决策复杂度。进一步地,甚至可以先从水平和垂直两个方向中筛选中粗筛,然后从相邻模式中细筛,进一步减少决策步骤。

图7 水平和垂直快速预测法

3.3 快速运动估计算法

运动估计在视频编码中起着至关重要的作用。它的主要任务是为每个视频块找到一个运动矢量,该矢量指示该块在参考帧中的位置。传统的运动估计方法,如全搜索方法,需要对整个搜索窗口进行遍历,计算量巨大,效率低下。对于每一个可能的运动矢量,都需要计算块之间的匹配程度,例如通过块间差异的绝对和(SAD)或块间差异的平方和(SSE)等。这种方法虽然可以找到最优的运动矢量,但是计算复杂度太高,不适合于实时编码。

图8 运动估计原理

在H.264中,引入了一些基本的快速运动估计算法,如钻石搜索(DS)、三步搜索(TSS)和新的三步搜索(NTSS)等。这些算法通过设计特定的搜索模式和搜索步长,减少了搜索点的数量,从而降低了运动估计的复杂度和时间。然而,这些算法的搜索精度和灵活性还有待提高。

在H.265和H.266中,引入了更精细的运动估计算法,例如精度更高的亚像素和1/4像素位置插值、基于深度信息的运动估计优化等。同时,也引入了更多的快速运动估计算法,如Test
Zone
Search(TZSearch)等。这些算法利用运动矢量的时间和空间相关性,通过精细地设计搜索模式和搜索步长,大大减少了搜索点的数量,从而降低了运动估计的复杂度和时间。

图9 TZSearch算法的搜索模板[5]

值得注意的是,上述的快速CU划分、快速模式决策、快速运动估计等算法虽然可以大大降低运动估计的复杂度和时间,但也可能导致一定程度的性能损失。因此,在设计和实施快速算法时,需要在降低计算复杂度和保持编码性能之间找到一个平衡。

四、快速视频编码的应用与前景

快速视频编码技术的出现,为许多实时或近实时的应用提供了可能。

4.1 会议和直播场景

在网络直播、视频会议、在线教育、远程医疗等场景,都需要快速编码技术来保证视频内容在短时间内被处理和传输,满足用户对于实时性的要求。

4.2 实时监控场景

在安防监控领域,由于监控视频数据量巨大,快速视频编码技术也起着关键作用。它不仅可以有效地压缩视频数据,节省存储空间,而且由于其快速的编码能力,也可以支持实时监控,对于犯罪预防和公共安全具有重要意义。

4.3 VR、AR等新型应用场景

此外,随着虚拟现实(VR)、增强现实(AR)等新型应用的出现,对于视频编码技术的要求也在不断提高。这些应用需要传输大量的高质量视频数据,因此,快速视频编码技术的应用,将是未来发展的一个重要方向。

5、结论

总的来说,快速视频编码技术,对于推动视频技术的发展,具有重要的意义。它在保持一定的压缩率和质量的前提下,可以有效地降低编码复杂度,节约计算成本,减少编码时间,提升视频的处理速度和传播效率。在未来,随着视频应用的不断扩大和深入,我们有理由相信,快速视频编码技术将在更多的领域得到应用,推动视频技术向更高的水平发展。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论