基于块的内容自适应视频编码 (CB-CAE),用于高质量和高速转码应用

高速转码是指在不牺牲视频质量的情况下快速高效地处理视频内容。

视频处理工作流程,包括转码、打包和CDN传输,是许多应用中最耗时的工作流程之一。高速转码解决了这个问题,使视频处理工作流程更快。

一些需要高速转码的应用示例包括:

  • 为直播活动准备录制的 VOD 内容,录制的内容将在直播结束后立即提供。
  • 新闻应用,其中编辑过的视频内容需要尽早发布。
  • 许多应用的短视频转码,如电子商务和广告,用户上传的内容希望尽快准备好分发。

整个视频处理链中最耗时的模块是视频转码。本文讨论了减少视频转码时间的挑战、限制和方法。 它还介绍了一种基于分块的内容自适应编码技术,以减少视频转码时间。

为什么速度对视频传输很重要 

在许多视频流应用中,让在不同设备和不同带宽条件下观看的观众获得录制的现场视频是至关重要的。 新闻、电子商务、采访和录制的现场活动应尽早提供给观众。

新闻

对于新闻广播公司来说,快速转码对于将突发新闻报道以近乎实时的方式传播给观众至关重要。新闻事件发生得很快,广播公司需要能够快速编辑并将他们的镜头转码成各种格式,以分发到不同的平台。快速转码使他们能够迅速做到这一点,确保他们的内容尽可能快地到达观众手中。

采访

采访是广告中一种流行的视频内容形式,因为它们允许品牌通过行业专家或满意的客户的声音来展示其产品、服务和专业知识。然而,为了使这些采访有效,广告商需要能够快速转码和编辑片段,以便他们能够尽快在各种广告渠道上发布。

OTT平台

同样,对于OTT视频流媒体平台来说,快速转码对于内容公司快速向用户提供新内容是可取的。这些平台需要能够将视频内容转码为不同的比特率和分辨率,以适应不同的互联网连接速度和播放设备。有了快速转码技术,他们可以快速转码大量的视频内容,并以最佳质量提供给观众。

对高速转码和视频处理的限制

视频编码涉及一个复杂的压缩视频数据的过程,以减少其大小,并尽量减少对视觉质量的影响。并行处理是加快这一过程的一种方法,但必须考虑某些限制。

视频编码并行处理的主要限制之一是编码过程的某些部分不能被并行化

运动估计

例如,运动估计过程是视频编码中的一个关键步骤,需要访问以前的编码帧,不能在多个帧之间进行并行处理。

视频内处理

在帧内,在视频内处理中,对宏块并行编码的限制是数据依赖性的需要。由于每个帧都是单独压缩的,因此需要参考来自同一帧的先前编码块的数据。这意味着压缩过程的某些部分无法并行化。 

熵编码

熵编码是视频编码中的另一个关键步骤,涉及对从变换阶段获得的量化系数进行编码。一个限制是熵编码依赖于基于上下文的编码,这意味着特定符号的编码取决于先前编码的符号。

这就产生了一种数据依赖性,限制了熵编码可以并行化的程度。特别是,如果不同的处理单元试图在不交流的情况下对符号进行并行编码,由于缺乏共享的上下文信息,编码的效率可能会降低。

高速转码的方法

以下是一些有助于提高视频编码速度的方法,尽管由于视频编码器/转码器算法的性质而受到限制。

高速处理器

具有较高时钟频率的系统可以帮助加快编码过程。编码指令可以更快地执行并提供更快的输出。然而,在这种方法中,可扩展性是有限的,因为一个内核的时钟频率是有限的。因此,用这种方法可以实现的转码速度有限。

多核处理方法

有些处理器具有多个高级内核,可提供更高的处理能力。假设 N 核处理器的计算能力理论上可以扩展 0 倍N,但同时需要 N 个独立的进程/线程/任务来实现这种扩展。由于视频转码的本质仍然是顺序的,实现这种更高程度的并行性是困难的,并且转码过程只能在有限的范围内利用多核优势。

下表显示了随着内核数量的增加对处理时间的影响结果。

1080P 视频转码为 4 种分辨率

内核数处理60分钟长视频的时间
4270
8156
12120
表 1:随着内核的增加,1080P 转码为 4 种分辨率的处理时间。

理论上,与 4 核相比,12 核的 270 分钟应该减少到 90 分钟,但观察到的处理时间为 120 分钟。

多切片处理

视频由像素组成,一个像素块在编码时被用作一个处理单元。它们被称为块,而这些块的组被称为宏块。一组宏块(MB)被称为切片,通常是几行MB或视频的矩形区域。这些片断可以独立编码,这有助于产生多个并行处理实体,以利用并行处理的优势。

这种方法的局限性之一是片区边界的MB可能无法使用邻近的片区MB进行预测,从而实现更好的压缩。这影响了压缩效率。 另外,这种方法需要在编码器内部进行大量的代码修改,将其作为不同核心处理器的通用解决方案是相当具有挑战性的。

多分辨率 – 并行处理

在自适应流媒体的情况下,输出由多个分辨率组成,通过将分辨率分配给不同的核心,可以很好地利用多核处理器。由于不同的分辨率有不同的复杂性,因此重要的是负载和如何与可用的核心平衡。例如,我们的内容自适应 H.264/AVC 编码器在 32 核机器上可以在 15 分钟内为 1080P 输入生成六个分辨率。这几乎是实时处理速度的4倍。

基于块的编码

另一种加快视频处理速度的方法是将完整的视频分成更小的持续时间段,并且每个段都可以并行处理。对于单个文件的情况,编码器/转码器可能会使用从一个场景到另一个场景的比特率节省。当我们将视频分成块并独立转码时,这可能会对整体质量产生影响。但是,如果片段大小足够大,则可以将观察到的对质量的影响降至最低。

基于块处理的 H.264/AVC 内容自适应编码器的质量影响研究

在我们使用内容自适应编码(CAE)分块处理的实验中,在相同的配置下,全长视频的比特率有10%左右的变化。

由于无法利用过去片段的节省,基于块的处理变得更加受限。根据这一观察,当基于块的 H.264/AVC CAE 以比早期目标比特率高出约 10% 的配置运行时,它实现了与全长视频处理相似的比特率和质量。

在多个内容中观察到,在对目标比特率进行一些改变的情况下,可以利用基于分块的处理,对质量影响最小。

下面是一个以 3000 Kbps 作为目标比特率在 CAE 经济模式下运行的视频剪辑的数据示例。

CAE 为该视频提供了将近 29% 的比特率降低。当使用较小的块并行处理输入视频时,当片段大小为 5 分钟时,输出视频比特率降低了近 5%,当编码为 1 分钟的片段大小时,输出视频比特率降低了大约 12%。

输出与 1 分钟段处理模式相当,将目标比特率设置为 3400 Kbps。基于分段的 1 分钟并行处理的输出为 2169 Kbps(比特率增加 2%),VMAF 提高了约 0.7。

时间(分钟)实际比特率 (Kbps)VMAF
单段(无分块)210792.59
5分钟片段200192.22
1分钟片段183791.27
1 分钟片段:目标比特率设置增加 10%216993.29

因此,通过适当的设置,可以使用基于分块的处理,对质量的影响最小。

基于块处理的速度提升

多核和多分辨率并行处理的优势可以通过基于分块的处理得到加强。

我们的一个用例涉及使用 32 个内核的多分辨率并行处理;转码一小时的内容大约需要 15 分钟。

理论上,如果段大小设置为 15 分钟,并且片段分布在多台机器上,则每个片段的处理预计需要 3.75 分钟。

在实际情况下,这个过程涉及分块输入文件和转码,所有的片段都需要拼接成一个输出文件。

有了这些开销,我们预计大约需要 5 分钟来将 60 分钟的 1080p30 输入文件处理成 1080P、720P、576P、480P、360P 和 234P 的 6 种输出分辨率。

这个时间可以通过更强大的多核处理器和小于5分钟的块大小来进一步减少。

总结与结论

拥有高速转码设置可以大大减少处理和输出成品视频的时间,这有助于提高工作流程的效率,并确保为客户或顾客提供更快的周转时间。

有各种方法和途径可用于加快转码过程。这些方法有一些优势和某些局限性。

基于块的 CAE 转码不仅加快了转码过程,而且有助于实现高质量以及内容自适应转码,可节省高达 70% 的视频带宽 

使用基于块的 CAE,1080P 视频的 H.264/AVC 编码处理速度是实时的 10 倍,这可以在不影响质量的情况下实现。通过较小的片段,处理时间可以进一步减少。

作者:Ashok Magadum
原文:https://ottverse.com/highs-peed-transcoding-chunk-content-adaptive-encoding/

本文为原创稿件,版权归作者所有,如需转载,请注明出处:https://www.nxrte.com/jishu/23567.html

(0)

相关推荐

发表回复

登录后才能评论