根据不同粒度的CAE,可以实现从粗犷和精确的内容感知编码,从而提升带宽利用率,为用户提供更好的观看体验。
文 / Dane Kottke
译 / 王月美
审校 / Ant
原文:
http://euclidiq.com/2017/10/03/modeling-levels-content-adaptive-encoding/
在之前的博文中,我们描述了自适应比特率(ABR)流的挑战,其中OTT视频内容提供商必须以多帧分辨率和比特率来编码和存储每个源视频,其中帧分辨率和比特率的集合称为编码阶梯。我们注意到标准ABR编码阶梯的一个常见问题是它们过于呆板,要么编码比特率太高的简单视频而导致带宽浪费,要么编码比特率太低的较复杂视频而导致重播时视觉效果不佳。
接下来,我们解释了内容自适应编码(CAE)如何通过将ABR编码阶梯调整为每个视频的内容来提高ABR流媒体的体验质量,从而允许观众在相同的带宽条件下用更高的帧分辨率播放视频,或在带宽消耗较低的情况下以相同的帧分辨率播放视频。我们还区分了应用CAE的两种不同的方法:在编码器内部,通过基于感知考虑调整编码器内的编码决策;以及在编码器外部,通过基于视频数据的特性来调整编码参数(例如编码比特率)。
在这篇后续博客文章中,我们将观察到CAE可以应用于多个级别,其具体取决于视频内容的建模精确程度。下面,我们将阐述几个不同级别的CAE。
内容自适应编码(CAE)算法的类型
图1描绘了基于如何精确地对视频内容进行建模(以及因此编码的精确程度)的CAE的多种可能实现。在图1中,CAE的外部应用(涉及不太精确的自适应)是朝向底部的,而CAE的内部应用(涉及更精确的自适应)是朝向顶部的。图1显示了四种一般自适应水平,但实际上可能会有更多。 图1中的四个级别可以描述如下。
按类别自适应编码。在此版本的CAE中,为各种类别的视频导出了不同的比特率梯形图。类别可以是语义类别,例如视频质量专家组定义的八个语义类别 - 包括视频会议,电影,体育,音乐视频等。或者,类别可以是电影类型:戏剧,动作片,动画等。在任何情况下,以这种方式对视频进行广泛分类不需要太费力,并且可以想象使用更具激进的比特率阶梯(较低比特率)来用于通常“要求不高”的类别(例如动画)和使用更保守的比特率阶梯(更高比特率)来用于可能“要求更高”的类别(如动作片,音乐视频)。
这种方法的问题在于,在复杂性方面类别的不同质(例如,考虑两部动作片之间复杂动作场景频率的相对差异,如“星球大战:新希望与复仇者”)。因此,单个编码阶梯不太可能适用于某个类别中的所有视频。
图1:内容自适应编码(CAE)变体
Per-title自适应编码。在这个版本的CAE中,Netflix提出了早期版本,通过测量不同比特率和帧分辨率的视频的平均质量,为每个特定视频导出不同的编码梯。在最初的实施中,Netflix使用PSNR测量质量,并在多帧分辨率下计算出速率-质量曲线。从这组速率-质量曲线中,他们确定了每个视频的最佳工作点(比特率和分辨率)—最佳比特率阶梯。
这种方法的问题在于,诸如电影之类的长格式视频包含混合内容(有简单的和复杂的),因此来自每个条编码阶梯的编码比特率可能仍然过于死板,导致视频某些部分(较复杂的场景)的质量较差,以及某些部分(更简单的场景)比特浪费。
Per-segment自适应编码。此版本的CAE涉及使用类似于上述按条CAE的方法。将视频分成段并确定每段的最佳比特率。可以以视频的规则来间隔定义片段,或者可以通过场景剪切检测算法确定的场景边界来定义片段。在任何情况下,按段CAE方法的目标是测量每个段的复杂性,然后确定实现该段的可接受质量的最佳编码比特率。
按段CAE解决方案在衡量复杂性的指标、视频质量的指标以及将编码比特率与质量相关联的方法上有所不同。与按条CAE一样,按场景CAE仍然遇到了混合内容的问题,因为视频的任一给定片段可能包含简单和复杂的帧。
按帧和按块CAE。通过在逐帧的基础上调整编码器的编码决策,CAE的最终级别使编码器内部的调整非常严格。例如,速率控制算法基于正被编码的当前帧的内容来调整帧量化。在更精细的粒度级别,按块CAE在编码发生时调整每个编码块的编码决策,可能基于该帧中当前块、周围块或所有块中的内容,调整每个块的编码模式选择或量化操作。由于按块CAE技术以非常精细的粒度运行,因此它们没有足够的时间信息来为ABR编码阶梯选择最佳比特率。但是,它们可以显着提高编码效率,既可以提高给定比特率的质量,也可以在保持质量的同时降低比特率。