主页 英特尔® 软件网络

视频粗差检测

发布日期: 2007年9月29日 | 最后修改日期: 2008年6月24日
1. 粗差检测方法

1.1 概述

视频粗差检测 (GED) 方法旨在为测量内容交付和量化视频回放体验提供一种独立于平台的自动化方式。

可直接在视频文件上操作的GED 能够为每一帧配备可见的标识符。这些标识符由一列彩色块组成,这些彩色块会对一个表示目标展示顺序的序数进行编码。要执行 GED 测量,需通过被测系统和所捕捉的结果播放视频。通过检查捕捉文件,GED 能够将观察结果与预期的序数序列进行比较,以确定是否有掉帧、重复帧或序列之外的帧存在。

1.2 GED 编码

1.2.1 GED 配置

为了给粗差检测配备合适的视频媒介,GED 替换了每一帧的部分视频数据。帧标识符区域是一个由左上角和右下角来定义的矩形区域,可置于帧的任意位置。该区域包含源自 GED 编解码器、表示每帧序数的任何一列彩色块(或单色块)。帧序数从零开始,每帧的序数增量为 1。在解码阶段,GED 将在定义区域内对彩色块进行抽样来确定编码序数。

为了构建帧标识符,GED 算法通常会将所需色域内每个通道的最大值和最小值进行组合。

上述各值可参见这幅全色域图的顶角区域:

 

从最次要的通道到最重要的通道,数值不断变换。RGB 的通道顺序为 BGR,代表存储这一格式最常用的字节顺序。对于 YUV 格式,GED 采用 VUY 作为其通道顺序。

例如,对于 RGB24,会用到如下顺序的 8 个数值:

 

每种颜色代表帧标识符值空间的一个序数。如上所述,每帧序数的增量为 1。例如,序列中的第一帧由黑色表示,而第三帧由绿色表示。由于 GED 仅在完全饱和的通道中对帧标识符进行编码,因此它能够容许因压缩、数字-模拟转换及色域变化而引发的各种图像质量下降问题。

如果帧号比帧标识符的可用范围大,则选择的标识符是帧号与标识符序列长度的模数,具体表述公式为:

 

其中,o 指代 GED 序数,f 指代源文件的当前帧,而 s 代表 GED 标识符序列的大小。

通过在GED 彩色序列标记多个区域,我们就可以构建复合帧标识符阵列。标识符阵列将按照指定的子标记数量,对总的帧标识符大小进行划分。对于复合标识符来说,左上区域表示序数最次要的部分。按照自左往右,从上到下的顺序,序数的重要性将逐渐增加,右下区域代表着序数最重要的部分。每个帧标识符区域表示一个基于一个数字、与 GED 序列大小相等的数位。例如,RGB24 会基于 8。下图描述的是一个复合 GED 帧标识符:

 

由一个复合标识符表示的序数可根据以下公式得出:

 

其中,o 指代 GED 序数,r 是组成复合标识符的区域总数,vn 是单个区域的数值(从左到右、从上到下),而 s 是单个标识符序列的总大小。

使用复合标识符可定义更多的独特帧序数。这便为更大的视频剪辑提供了更准确的结果。例如,一个配备有 8 个独特帧标识符的序列最多只能检测 7 个连续掉帧,因为第 8 帧将重复第一个数值。

1.2.2 帧标识符的大小和位置

帧标识符可以放置在帧内的任意位置。合理的默认位置在左上角。但是,某些配置不适合在角落位置标记。例如,视频捕捉设备可以获取或压缩捕捉图像的边缘。当捕捉过程改变了帧标识符的位置或大小时,在分析阶段可能需要使用新坐标。

GED 帧标识符应为视频剪辑宽度的 5%。如果数字-模拟转换是被测系统的一部分,它应该更大。例如,DVD 分辨率视频 (720 X 480) 应采用 36 X 36 或更大的像素块。一些捕捉设备(如低端电视调谐卡)会带来巨大的噪音和边缘压缩,这些应用可能需要更大的像素块。

请确保彩色块的大小比视频分辨率小得多,以便尽可能地降低它对所用压缩编解码器的影响。但是,在 GED 阵列可能覆盖整个帧的情况下,我们并不推荐这样做,因为这样得出的测试结果不真实,而且也很难检查出给定错误可能会对具体内容的最终用户造成怎样的影响(例如,单个掉帧在快速运动或摄像头高速移动的情形下可能会更加明显)。不过,这可能适合某些需要自动生成内容的情况。

下图描述了 GED 的配置流程:

 

1.2.3 控制帧

对于复合帧标识符序列来说,处于高序位区域的最后一个序数是专为特殊控制帧而保留的(即白色用于 RGB24 色域)。一旦检测到控制帧,余下的标识符便会被GED 视作指定帧种类和任意可用选项的自变量。

目前 GED 仅定义了一个控制帧,即序列标识符的起点。其他可选控制帧将留待实施特定 GED 时使用。上述定义的序列标识符起点仅针对宽度和高度至少是区域的 2 倍的标识符。最右栏应为白色,其余各栏的每行将从最重要的色彩通道逐渐过渡到最次要的色彩通道。下图展示了一个面向 RGB24 色域内 3x3 阵列的序列标识符起点:

 

当检测到序列标识符起点时,GED 将把序数序列重置为零,并增加一个指示现有序列的计数器。序列标记起点有两个主要功能。第一个功能是定义捕捉操作的关注区域。例如,当我们在视频流测试中开始进行源剪辑时,可以加入一些其他的内容,来为启动捕捉流程争取更多的时间。起点标记可用于标志测试内容的开始,这样 GED 就只会对该视频剪辑区域进行评分。下图展示了这一流程:

 

 

序列标识符起点的第二个功能是支持将多个不同类型的视频剪辑连接成一个更大的单个测试剪辑,并进行单独评分,如下所示:

采用多种内容类型的剪辑将避免您对某个被测系统产生偏见,使您获得全面、平衡的视频测试结果。

1.2.4 交错视频处理

GED 操作按照每帧来定义,且每次颜色变化都会出现在连续帧上,而非交错区域中。当处理交错格式时,可通过检查扫描线(此处的错误出现在累进格式的捕捉文件中)来实现字段级精度。此方法支持含有两个以上垂直区域的视频格式。它还允许 GED 对累进内容和交错内容进行完全相同的操作、展示技术以及在无需担心对 GED 序列产生影响的情况下,促进两者间的转换。

1.3 GED 解码

1.3.1 GED 分析

GED 将读取配置的媒介,并在确定的帧标识符区域内抽取数值样本。该媒介通常是一个捕捉文件,用以记录被测系统中的视频。GED 也会检查抽样像素,以确定特定的区域中会哪个帧标识符(如果存在)。

在分析过程中,GED 将在指定的测试剪辑区域内,抽取帧标识符序列样本。当一些捕捉操作(如从显示内存直接写入磁盘)保存了帧标识符的准确地址后,通常坐标也需要在编码和解码阶段之间做出相应的调整。

GED 将抽样区域划分为所需数量的子区域(对于一个 3x3 阵列,数量为 9),并计算出各子区域内颜色值的平均数,其公式表述为:

 

其中,v 表示抽取的颜色值,xmin 表示水平最小值,xmax 表示水平最大值,ymin 表示垂直最小值,ymax 则表示垂直最大值。而 c 则是一个函数,用来返回帧缓冲器中由函数的水平和垂直位置确定的像素的颜色值。

另外,也可以指定每个子区域周围的边缘补白;通常情况下,应放弃一个或两个像素边界,以便最大限度地削弱模糊或亮度衰减对颜色平均值的影响。每个区域的实际最小尺寸由下面两个公式确定:

 

在上述公式中,xmin 表示水平最小值,xmax 表示水平最大值,h 表示水平区域的数量,且 ph 表示水平补白量;

在上述公式中,ymin 表示水平最小值,ymax 表示水平最大值,v 表示垂直区域的数量,pv 则表示垂直补白量。

下列公式采用边缘补白指定像素取样:

 

其中,v 表示抽取的颜色值,xmin 表示水平最小值,xmax 表示水平最大值,ymin 表示垂直最小值,ymax 表示垂直最大值,ph 表示水平补白量,pv 表示垂直补白量,而 c 是一个函数,它可返回帧缓冲器中由函数的水平和垂直位置指定的像素的颜色值。

一旦每个区域都获得了一个颜色平均值,那么下一步就应根据颜色-序数映射为指定色域选择最相近的匹配序数。对于复合序列,每个区域会执行一次最相近匹配操作。

 

 

下图描述了 GED 的分析流程:

 

1.3.2 误差定义

GED 能检测出三种帧级误差:掉出的、重复的和序列外的视频帧。这些误差被称为“粗差”。如果帧不属于上述任何一个类别,那么它们可能会被定义为“未知”。误差是依据当前帧的解码序数和前一帧的序数之间的关系来定义的。

由于每帧的序数增量为 1,所以如果连续两帧的序数之差大于 1 则表明有“掉帧”,计算公式表述为:

 

其中,d 表示掉帧,f 表示当前帧的序数,而 p 表示前一帧的序数。

如果当前帧的序数与前一帧相等,则表明该帧被重复,其计算公式表述为:

 

其中,r 表示重复帧,f 表示当前帧的序数,而 p 表示前一帧的序数。

序列外帧是指小于前一帧,但尚未超过视频序列总长的帧,计算公式表述为:

 

其中,o 表示序列外帧,f 表示当前帧的序数,p 表示前一帧的序数,而 s 表示视频序列长度。

而那些比前一帧大出的幅度超过序列总长或比当前帧大出的幅度超出序列总长的帧,则被定义为“未知帧”,计算公式表述为:

 

其中,u 表示未知帧,f 表示当前帧的序数,p 表示前一帧的序数,而 s 表示视频序列长度。

一些其他的原因也可能造成帧被标记为“未知帧”,例如在检测序列标记前就已经被处理过的帧(见 1.2.3)。

1.3.3 粗差检测工作流

粗差检测方法的常用工作流程如下图:

 

GED 首先为未经压缩的源文件剪辑配置帧标识符。随后,对剪辑进行组合、扩展,并按照测试所采用的格式进行编码。通过被测系统播放经压缩的剪辑,并捕捉其结果。(捕捉流程中通常会输出另一个未压缩的文件。有时该文件保持压缩状态或被重新压缩,PVR 应用中的情况便是如此。)之后,GED 会对生成的捕捉文件进行处理,以进行测试评分。

1.3.4 时间校准

时间校准是指在捕捉文件中添加或除去帧,使它们与源剪辑的长度保持一致的过程。这一过程可作为具有逐帧对比功能的视频质量工具的预处理步骤,以确保来自捕捉文件的目标帧与来自源文件的对应帧相匹配。

为了完成时间校准,GED 使用分析阶段的输出结果会生成一个新的视频文件。如果检测到掉帧,则前一帧的若干份副本将被插入上述新文件,并用掉帧的序数进行标记。重复的帧将被删除。剪辑开头的未知帧也将被删除(见 1.2.3)。

 

由于掉帧代表从未交付的内容,因此我们无法确保已经过 GED 时间校准的捕捉文件能得到理想的视频质量分数。但通常,删除重复的帧不会影响最终的质量得分。

此外,时间校准无法在包含序列外视频帧的捕捉文件上精确执行。

2. 视频 GED 应用

现在,英特尔开发出视频粗差检测器应用,为上述 GED 方法提供了一种参考实施。

视频 GED 支持采用简单的帧标识符或 3x3 颜色块阵列(高分辨率模式)来进行配置和检测误差。高分辨率模式支持序列标记起点和时间校准。

视频 GED 根据英特尔的研究结果生成平均意见评分(MOS 得分反映的是最终用户对于交付内容质量的预期意见。)下表是对视频 GED 生成的 MOS 得分的定义:

 

 

视频 GED 会因特定数量的粗差而损害源剪辑。此特性对于生成面向主观评估(专为与客观 GED 评分相关的最终用户回放顺畅度感知而设计的实验)的测试媒体相当有用。

凡获得免费二进制分发许可的用户均可使用视频 GED 。英特尔保留 GED 的所有权,可免费进行再分发。

3. GED 优势

3.1 自动化

自动化工具的效率要远远高于视频专家的人工核查,后者不但费时费力,而且成本高昂。因为要根据最终用户意见调整实际标准,就可以使用某些工具(诸如 GED)估算预期的用户体验。此举极大地推动了开发过程中的迭代测试,有助于用户迅速评估出被测系统中细微的增长变化。最后,我们可以把专家核查作为对重大产品修改的终审步骤。

除了使帧级误差检测实现自动化外,GED 帧标识符还提供了一种让参考工具望尘莫及的区分相同帧的方法。在实际操作中,一个黑屏序列可能包含甚至连专家评审都很难检测到的掉帧。而要在移动率非常低的场景或某些动画中识别掉帧或重复帧,同样非常困难。

3.2 平台独立性

由于 GED 可以直接在捕捉文件上操作,因此它具有高水准的平台独立性。例如,它可以比较用户体验对各种显示技术、网络传输、操作系统、流应用、媒体播放器和压缩格式的影响。GED 直接配置视频数据的能力使其摆脱了对特定文件类别、视频格式或容器的依赖。此外,它还可处理经过代码转换、扩展或从模拟源捕捉到的内容。

3.3 内容独立性

GED 方法是内容独立的。无论面对何种被测视频,GED 总是寻找相同的帧标识符。因此,它可以轻松地对各种视频剪辑进行自动化测试。有一点请注意,我们在比较包含不同种类内容的剪辑的回放流畅度时,无需进行校准处理。

3.4 性能与实施的简易性

GED 的效率明显高于参考视频质量工具。帧标识符是一个针对未压缩视频的 I/O 捆绑过程。例如,借助一个包含 4 个驱动器的小阵列,GED 便能以 20 倍或更快的实时速度处理标准定义视频。据此旋风速度,您仅需六分钟就能处理完一部时长两小时的电影。在对高分辨率视频剪辑进行更详细的分析之前,GED 能够迅速判定预期内容是否已被完全交付。

4. 下载应用
我们邀请您在本页 发表评论 (不受客服控制),或直接向我们的支持中心 提问.