用于视频质量评估的方法和系统的制作方法

文档序号:7606668阅读:264来源:国知局
专利名称:用于视频质量评估的方法和系统的制作方法
技术领域
本发明涉及用于视频质量评估的方法和系统,尤其涉及其中根据子场/帧单元来生成视频质量评估值的方法和系统。
背景技术
视频质量测试已进行了多年。在出现用于视频的数字压缩技术之前,已使用标准方法的相对稳定的集合进行了正式主观测试。简言之,选择多位非专家观察者,通过在受控环境下显示一系列测试场景大约10至30分钟来测试他们的视觉能力,并要求他们以多种方式中的一种对场景的质量进行评分。通常,对于完全基准测试,首先显示基准序列,随后显示测试序列,并要求观察者根据基准序列对测试序列进行评价。在相关标准ITU-R BT.500“Methodology for the Subjective Assessment of theQuality of Television Picture”中给出了主观测量的进一步细节。该标准在1974年首次发布并被正式称为CCIR Rec.500,该文献的版本7涵盖了过去提出的用于主观测试的方法。
使用人类观察者的主观测试的一些优点在于,对于传统和压缩电视系统都可以产生有效结果,并且其可以在宽范围的静止和运动图像应用中工作良好。然而,明显的缺点在于测试的准确准备(set up)会影响所获得的结果;需要仔细的准备和控制;并且为了获得统计上有意义的结果,必须选择并筛选大量的人类观察者。这些缺点使得主观测试复杂且费时,从而使得尽管主观测试可以适用于研究目的,但是它们本身并不能应用于操作监视、生产线测试等。
因此,为了避免上述人工主观测试的缺点,在现有技术中还已知的是,提供使用自动(通常基于计算机)的视频比较技术的自动视频质量评估。进行自动图像质量分析的现有技术的系统为来自14200 SW KarlBraun,P.O.Box 500,Beaverton,Oregon 97077 USA的Tektronix Inc.的PQA 300系统。该PQA 300通过测量五秒钟的视频测试序列中的两秒钟的部分来进行工作。视频测试序列可以从CD ROM下载,或者从视频进行记录,并播放给处于测试状态的系统。然后存储该处于测试状态的系统的输出,并通过DSP加速硬件对该两秒钟的视频进行分析。将图像质量的单数值测量结果称为“图像质量等级”。该PQA 300采用被称为JNDMetrix的人工视觉系统模型,并对视频信息进行三种不同类型的分析,即空间分析、时间分析和全色分析,以生成图像质量等级。另外,该PQA300提供以动画映像形式显示的PSNR值,该动画映像的强度与在基准图像和测试图像之间的PSNR差相关。因此,总的来说,该PQA 300能够对测试视频序列和基准视频序列进行分析,以生成视频质量值以及进行PSNR测量。
然而,通过直接比较测试视频序列和基准视频序列以生成上述质量量度可能会产生问题。例如,在基准序列和测试序列的全部或部分之间的空间或时间的不对准会大大地影响这些测量,但是对于人类观察者可能不易察觉。如果差异测量有助于可靠且实际的完全基准评估,则必须处理这些不对准。
在完全基准测试的情况下,经常会遇到恒定的空间和时间不对准,并且可以通过向整个基准或退化序列进行“一次性”对准来克服问题。涉及这种一次性对准的现有技术文献的示例为US6483538、US6259477、US5894324、US6295083和US6271879。另外,可以通过逐个场应用的相似技术来处理基于场的空间或时间抖动(其中,不对准在场之间可能不同)。然而,在场或帧内还可能出现更复杂(但同样察觉不到)的不对准,其中视频场或帧的不同区域可能会产生不同的位移、缩放或延迟。例如,通过视频处理可以产生空间扭曲、丢失线或冻结块(frozen block),并且如果要自动产生图像质量评估量度(其可以用于代替人工主观测试结果),则必须对它们进行考虑。

发明内容
本发明通过提供用于自动视频质量评估的方法和系统而解决了上述问题,该方法和系统减少了基准序列和测试序列之间的子场/帧不对准的不利影响。更具体地,本发明通过将测试视频场/帧的子场/帧单元分别与基准视频场/帧的子场/帧单元进行匹配,来将不对准降为要进行处理的子场/帧级别。使用明显小于视频场/帧尺寸的匹配单元尺寸,使得能够有效地跟踪瞬态子场/帧不对准。
鉴于上述内容,根据第一方面,本发明提供了一种视频质量评估方法,包括以下步骤将测试视频场/帧的子场/帧单元与至少一个基准视频场/帧的对应子场/帧单元进行匹配;以及根据所述测试和基准视频场/帧的匹配子场/帧单元来生成视频质量值。
本发明的第一方面提供了考虑子场/帧不对准和其它缺陷的上述优点,以使得总体视频质量值不受这种不对准的影响。在这方面,优选地,将子场/帧单元的大小调整为能够匹配对于人类观察者基本上不可察觉的不对准和其它缺陷。
在优选实施例中,所述匹配步骤优选地还包括对于测试视频场/帧的子场/帧单元,在与测试视频场/帧在时间上相对应的基准视频场/帧的前M1个和/或后M2个基准视频场/帧内,搜索匹配的子场/帧单元,其中M1和M2为整数。这使得不但可以在时间上对应的场/帧内而且另选地可以在时间上不同的场/帧内,在子单元之间进行匹配,因此使得可以考虑诸如块冻结的时间缺陷。优选地,时间搜索界限M1和M2是预定的,虽然在本发明的变型例中可以对它们进行适应性的限定。
在该优选实施例中,所述搜索步骤优选地还包括在基准视频场/帧的在空间上限定的区域内搜索该基准场/帧内的与该测试视频场/帧内的测试子场/帧单元相对应的位置。通过限定各个场/帧内的空间搜索范围,减少了处理需求,并且还可以匹配仅包含对于人类观察者基本上不易察觉的缺陷的子单元。优选地,所述搜索区域的空间范围是预定的,虽然在本发明的变型例中可以对它们进行适应性的限定。
在本发明的实施例中,所述匹配步骤优选地还包括计算一个或更多个匹配统计值和/或匹配向量;并且其中,所述生成步骤进一步根据所计算的匹配统计值和/或匹配向量来生成视频质量参数。已经发现,使用来自匹配步骤的匹配统计信息基本上改善了所获得的总体视频质量值,使其与通过人工主观测试获得的视频质量值更相似。同样已经发现,使用匹配向量改善了总体视频质量值。
在本发明的实施例中,所述生成步骤优选地还包括根据所述测试和基准视频场/帧的匹配子场/帧单元,计算分别与测试和/或基准视频场/帧的特性相关的多个视频特性值;以及至少将所计算的视频特性值集成在一起以给出视频质量值。
通过根据所匹配的子单元来计算视频特性值并将这些值集成在一起,可以获得考虑了不易察觉的视频缺陷的视频质量值。优选地,所述集成步骤还包括将所述匹配统计值和所计算的视频特性值进行集成,以给出视频质量值。另外,优选地,所述视频特性值分别是下述值中的任意两个或更多个一个或更多个空间频率值;一个或更多个纹理值;至少一个边缘值;至少一个亮度信噪比值;和/或一个或更多个色度信噪比值。
在本发明的优选实施例中,对于测试场/帧,所述边缘值的计算优选地包括对所述测试场/帧的各个子场/帧单元中的边缘数量进行计数;对与所述测试场/帧的子场/帧单元相匹配的所述至少一个基准场/帧的各个子场/帧单元中的边缘数量进行计数;以及根据所述各个计数确定测试场/帧的边缘值。
通过对场/帧的子单元内的边缘数量进行计数,可以考虑边缘位置的不可察觉的差异,从而可以生成下述的边缘评估值,该边缘评估值可以用于获得与通过人工主观测试得到的值更相似的经改善的视频质量值。
优选地,在该优选实施例中,所述集成步骤还包括通过预定的加权因子对各个值进行加权;以及对所加权的值进行求和,以给出视频质量值。所述加权因子是通过预先校准而得到的,并且可以用于调整各种视频特性值的整体集成,从而使得最终的视频质量值与通过人工主观测试获得的值更相似。优选地,所述加权因子和偏移值取决于测试和基准视频场/帧的类型,从而对于各种类型的视频场/帧,可以使用对于该类型特定的加权值。这使得可以使用多种不同类型的视频来获得与本发明提供的相同的优点。
根据第二方面,本发明还提供了一种视频质量评估系统,其包括匹配装置,用于将测试视频场/帧的子场/帧单元与至少一个基准视频场/帧的对应子场/帧单元进行匹配;以及视频处理装置,用于根据所述测试和基准视频场/帧的匹配子场/帧单元来生成视频质量值。
本发明第二方面的系统提供了与前面根据本发明的第一方面描述的基本相同的优点。另外,如前面根据第一方面所述,也可以根据第二方面提供基本相似的其它特征和优点。
根据第三方面,本发明还提供了一种计算机程序或一组程序,其被设置为使得当由计算机系统执行该计算机程序或该组程序时,它/它们使得该系统执行前述权利要求中的任何一项的处理。该一个或多个计算机程序可以通过下述的调制载波信号(例如在诸如互联网的网络上传送的信号)来实施,该载波信号包含有与所述计算机程序或该组程序中的至少一个相对应的数据。
另外,根据另一方面,本发明还提供了一种计算机可读存储介质,用于存储根据第三方面的计算机程序,或一组计算机程序中的至少一个。该计算机可读存储介质可以是能够由计算机读取的任何磁、光、磁光、固态或其它存储介质。


根据下面参照附图仅以示例的方式对本发明实施例的描述,本发明的进一步特征和优点将变得明了,其中相同的附图标记表示相同的部分,并且在附图中图1是本发明的系统的总体框图;
图2是表示本发明实施例的各个部分的系统框图;图3是表示在本发明实施例中对输入视频信号进行修剪(crop)和偏移而执行的步骤的流程图;图4是表示在本发明实施例中的子单元匹配的效果的视图;图5是表示在本发明实施例中为了匹配子场/帧单元而执行的步骤的流程图;图6是在本发明实施例中使用的空间频率分析器的框图;图7是表示本发明实施例中的金字塔阵列(pyramid array)的结构的视图;图8是表示在该实施例中在图7的金字塔阵列的结构中执行的步骤的流程图;图9是表示在本发明实施例中对金字塔阵列进行空间分析而执行的步骤的流程图;图10是在该实施例中使用的边缘分析器的框图;图11是表示在本发明实施例中由边缘分析器执行的步骤的流程图;图12是表示由本发明实施例的纹理分析器执行的步骤的流程图;图13是表示由本发明实施例的集成器执行的步骤的流程图;图14是表示本发明的基于软件的第二实施例的视图;图15是表示对于没有空间偏移而计算的PSNR的曲线图(3Mb/sMPEG2编码);图16是表示对于2像素水平偏移而计算的PSNR的曲线图(3Mb/sMPEG2编码);图17是表示对于水平抖动而计算的PSNR的曲线图(3Mb/s MPEG2编码);图18是表示对于时间场不对准而计算的PSNR的曲线图(768kb/sH263 CIF编码);图19是表示对于场重复而计算的PSNR的曲线图(3Mb/s MPEG2编码);以及图20是表示对于时间块不对准而计算的PSNR的曲线图(3Mb/sMPEG2编码)。
具体实施例方式
下面将描述本发明的实施例。
图1表示本发明实施例的概要结构的总体系统框图。在图1中,将包括基准序列场/帧的基准序列输入给检测器模块2。同样,还将视频场/帧的测试序列8(在这里可以互换地称为测试序列或者退化序列)输入到检测器模块2中。通过将基准序列输入到待测试的系统(例如,视频记录装置、广播系统或视频编码解码器),并随后将处于测试状态下的系统的输出作为测试序列来获得该测试序列。检测器模块2用于检测所输入的基准和测试视频场/帧的各种视频特性,并生成视频特性值,这些视频特性值随后被输出给集成模块4。集成模块4将这些视频特性值集成在一起,以给出预测的视频质量值10,从集成模块4输出该预测的视频质量值10。
图2更详细地表示了本发明实施例的结构。这里可以看到,本发明的系统提供了修剪和偏移模块32,用于接收退化视频序列6和基准视频序列8作为输入。另外,该修剪和偏移模块32接收两个预定的偏移值offsetX和offsetY作为输入。如果需要,该修剪和偏移模块32用于将所输入的序列转换为去交织(de-interlaced)格式,并且还根据需要以后面描述的方式对具有偏移或没有偏移的输入序列进行修剪。然后将经过转换和修剪的各个测试和基准视频序列从修剪和偏移模块32输出给序列匹配器模块30。另外,如图2所示,还从修剪和偏移模块32直接输出经修剪的退化视频序列6,以作为空间频率分析器22、亮度和色度峰值信噪比分析器24、边缘检测器分析器26和纹理分析器28的退化序列输入。将在后面描述分析器22至28的目的和操作。
返回到序列匹配器模块30,该序列匹配器模块30接收经修剪的退化视频序列6和基准视频序列8,并用于通过匹配基准场/帧的子单元来匹配退化视频场/帧的子单元,从而对于各个测试视频场/帧生成匹配基准场/帧,其包括与处于测试状态的测试视频场/帧的子单元相匹配的基准视频场/帧的子单元。然后将所匹配的基准视频场/帧34从序列匹配器模块30输出到各个空间频率分析器22、亮度和色度峰值信噪比分析器24和边缘检测器分析器26的基准输入。另外,在生成所匹配的基准场/帧34时,序列匹配器模块30生成可以用于生成匹配统计值(XPerCent,YPerCent和TPerCent)的匹配统计信息(statistics),这些匹配统计值也从序列匹配器模块30输出。匹配器模块30还生成匹配峰值信噪比值(MPSNR),该匹配峰值信噪比值也从匹配器模块30输出。
现在返回以简要地说明四个分析器模块22至28中的每一个,空间频率分析器22用于对所输入的测试视频场/帧和所匹配的基准视频场/帧进行分析,并通过对所输入的匹配基准视频场/帧和测试场/帧进行金字塔分析来生成金字塔SNR值PySNR(a,b)。另外,亮度和色度PSNR分析器24对所输入的匹配基准场/帧和所输入的测试场/帧进行比较,以生成随后要输出的亮度和色度PSNR值。类似地,边缘检测器分析器26对所输入的匹配基准场/帧和所输入的测试场/帧进行分析,并输出单个边缘检测器值EDif。最后,纹理分析器28对测试场/帧进行分析,以计算表示在该帧中的纹理的参数TextureDeg。应该注意,尽管在图2中未示出,但是纹理分析器28也可以接收任何一个原始基准场/帧8或者匹配基准场/帧34,并生成分别与它们相关的参数TextureRef或TextureMref。在任何情况下,稍后将更详细地描述这些空间频率分析器22、亮度和色度峰值信噪比分析器24、边缘检测器分析器26和纹理分析器28中的每一个的操作。
再次参照图1,可以看到,将来自各个分析器22至28的输出以及从序列匹配器模块30输出的percent和MPSNR值分别输入到集成模块4,该集成模块4用于将这些值集成在一起,以生成预测的视频质量值10。稍后还将更详细地描述集成器4的操作。
再次参照图2,下面将参照图3至图13来描述其中所示的各个模块和分析器的操作。
首先说明修剪和偏移模块32,图3是表示由修剪和偏移模块32对所输入的测试视频场/帧和基准视频场/帧执行的步骤的流程图。
由修剪和偏移模块32执行的总体过程为首先将输入序列从交织格式转换为块去交织格式,然后对退化输入序列有偏移地进行修剪并对基准输入序列没有偏移地进行修剪。图3示出了实现这些任务的示例程序。
将图3的程序分别应用于各个输入序列(测试和基准),以生成相应的经修剪的测试序列和基准序列。该程序的操作如下。
首先,在步骤3.2,开始FOR处理循环,以使该修剪和偏移模块对输入序列(测试或基准序列之一)中的每一个场/帧进行处理。然后在步骤3.4,开始进一步的嵌套FOR处理循环,以使该修剪和偏移模块对各个场/帧的各个分量部分(例如,Y、U和V)进行处理。
在该嵌套FOR循环中,要执行的第一个动作是步骤3.6的动作,在该步骤中,如果需要,首先将输入场/帧的当前分量部分转换为非交织格式。例如,可以执行从YUV422交织格式到块YUV444去交织格式的转换,从而根据下式通过阵列RefY、RefU和RefV来表示各个连续场RefY(x,y) x=0...X-1, y=0...Y-1(3-1)RefU(x,y) x=0...X-1, y=0...Y-1(3-2)RefV(x,y) x=0...X-1, y=0...Y-1(3-3)其中,X是场内的水平像素的数量,而Y是垂直像素的数量。对于YUV422输入,必须重复各个U和V值以给出全分辨率阵列InUField和InVField。
接下来,在步骤3.8,对用于保存当前分量部分(Y、U或V)的修剪和偏移像素值的阵列进行初始化。根据当前正在对基准序列和测试序列中的哪一个进行处理、以及正在对该序列的当前帧的分量部分中的哪一个进行处理,该阵列可以是RefYfield、RefUfield、RefVfield、DegYfield、DegUfield或DegVfield中的一个。对于各个输入场生成YField、UField和Vfield阵列的完整集合。
在步骤3.8之后,在步骤3.10,考虑待应用的任何偏移(如果存在),计算待复制的各个场/帧分量的区域。该程序对退化输入序列有偏移地进行修剪,并对基准输入序列没有偏移地进行修剪。外部地确定偏移参数OffsetX和OffsetY,并且它们限定了退化序列从基准序列偏移的水平和垂直像素数量。将图像原点限定在图像的左上角,且以+ve水平增量向右移动以及以+ve垂直增量沿图像向下移动。值XOffset=2表示退化场向右偏移2个像素,而值YOffset=2表示向下偏移2个像素。可以通过图像对准技术等找到待应用的偏移值。图像对准技术在现有技术中是已知的,并且在介绍部分中引用的某些现有技术文献中对其进行了描述。
对于将YUV值以YUV444格式存储在阵列InYField、InUField和InVField中的输入场,根据(3-4)至(3-20)来计算修剪和偏移输出。
XStart=-OffsetX (3-4)if(XStart<Cx)then XStart=Cx(3-5)XEnd=X-1-OffetX (3-6)if(XEnd>X-Cx-1)then XEnd=X-Cx-1 (3-7)YStart=-OffsetY (3-8)if(YStart<Cy)then YStart=Cy(3-9)YEnd=Y-1-OffsetY(3-10)if(YEnd>Y-Cy-1)then YEnd=Y-Cy-1 (3-11)X和Y分别给出了水平和垂直场尺寸,并且Cx和Cy给出了要从左到右以及从上到下进行修剪的像素数量。
对于625线视频序列,可以使用以下值X=720,Y=288,Cx=30 Cy=10 (3-12)而对于525线序列,可以使用下面的值X=720,Y=243,Cx=30 Cy=10 (3-13)Xstart、Xend、Ystart和Yend现在限定了待复制的各个场的区域。在步骤3.12,根据(3-14)至(3-17)对该区域外部的像素进行初始化,其中YField、UField和VField分别是包括Y、U和V值的X×Y输出像素阵列。
在步骤3.12,根据下式对场的左右侧的垂直条(vertical bar)进行初始化YField(x,y)=0x=0...XStart-1,XEnd+1...X-1 y=0...Y-1 (3-14)
UField(x,y)=VField(x,y)=128x=0...XStart-1,XEnd+1...X-1 y=0...Y-1 (3-15)根据下式对场的顶部和底部的水平条进行初始化YField(x,y)=0x=XStart...XEnd y=0...YStart-1,YEnd+1...Y-1 (3-16)UField(x,y)=VField(x,y)=128x=XStart...XEnd y=0...YStart-1,YEnd+1...Y-1 (3-17)最后,在步骤3.14,根据下式复制像素值YField(x,y)=In YField(x+OffsetX,y+OffsefY)x=XStart...XEnd y=YStart...YEnd (3-18)UField(x,y)=In UField(x+OffsetX,y+OffsetY)x=XStart...XEnd y=YStart...YEnd (3-19)VField(x,y)=InVField(x+XOffset,y+YOffsetY)x=XStart...XEnd y=YStart...YEnd (3-20)对于退化输入,修剪和位移生成输出场阵列DegYField、DegUField和DegVField,而对基准序列进行的没有偏移的修剪生成RefYField、RefUField和RefVField。然后如下所述,将这些X×Y二维阵列用作匹配模块30和分析器22至28的输入。
将经修剪的测试视频场/帧和基准视频场/帧从修剪和偏移模块32输出给序列匹配模块30。为了进行匹配处理,序列匹配器模块30必须接收各个基准和测试序列30的多个场/帧,并对这些场/帧进行缓冲。优选地,对与匹配模块30所具有的缓冲空间一样多的基准和测试场/帧序列进行缓冲。在图5中详细地显示了序列匹配模块30的操作。
首先,在步骤5.2,如上所述,匹配模块30接收经修剪的基准和测试场/帧序列,并对各个场/帧进行缓冲。然后,在步骤5.4,对于各个测试视频场/帧N开始处理循环,从而随时间而处理各个输入测试场/帧。在该处理循环中,在步骤5.6执行当前场/帧N的下一步骤,在该步骤中将当前场/帧分为bx×by个像素块,其中bx和by优选地为9。各个像素块由其所属的场/帧N以及该块的左上角坐标(x,y)来标识。然后,下一步骤(在步骤5.8)是开始第二处理循环,以处理各个像素块Bdeg(N,Px,Py),其中N是在其中找到该块的帧,并且(Px,Py)是该块中的左上角像素的坐标。
在已开始处理当前场/帧中的各个像素块之后,在步骤5.10,开始进一步的处理循环,在该处理循环中,对基准序列中的从N-M1至N+M2的各个场/帧n进行处理。这使得可以搜索处于测试状态的当前帧N之前的M1个场/帧以及后续的M2个场/帧。接下来,在步骤5.12,开始进一步的处理循环,以搜索在搜索边界Px-Lx至Px+Lx之间的各个水平像素位置x,并且随后在步骤5.14,开始另一处理循环,以对边界Py-Ly至Py+Ly之间的各个垂直位置y进行处理。在步骤5.10、步骤5.12和步骤5.14开始的各个处理循环使得从在时间上与处于测试状态的当前场/帧相对应的基准场/帧的前M1个帧到后M2个帧的各个帧中,搜索由水平极限Lx和垂直极限Ly限定的搜索区域所限定的区域。这在图4中有所显示,其中在基准序列内所示的各个区域中,搜索在退化序列的场N中的左下角像素坐标为(x,y)的像素块B。
为了搜索在基准序列的所示区域内的像素块B而执行的测试为,根据下式在步骤5.16对所搜索区域内的各个位置确定匹配误差E(n,x,y)E(n,x,y)=Σj=0bx-1Σk=0by-1(deg(N,Px+j,Py+k)-ref(n,x+j,y+k))2n=N-M1,···,N+M2]]>x=Px-Lx,···,Px,···,Px+Lx]]>y=Py-Ly,···,Py,···,Py+Ly---(5-1)]]>对于n,x和y的当前值,存储在步骤5.16确定的匹配误差,以在后面使用。接下来,在步骤5.18,除非值y已达到其最大值,否则将其加一,并且处理返回到步骤5.14,在该步骤中,对下一个y值确定匹配误差。如果y已达到其最大值,则处理进行到步骤5.20,在该步骤中,除非x已达到其最大值,否则将其加一,并且处理返回到步骤5.12。如果x已达到其最大值,则处理进行到步骤5.22,在该步骤中,除非计数器n已达到在步骤5.10中限定的其最大值,否则将其加一,并且如果合适,则处理返回到步骤5.10。如果n已达到其最大值,则处理进行到步骤5.24。步骤5.10、5.12和5.14的嵌套FOR循环的效果为,对于图4所示的搜索区域内的各个可能位置确定了匹配误差E(n,x,y)。
在已获得各个可能位置的匹配误差值E(n,x,y)之后,下一步骤(在步骤5.24)是找到误差值最小的n,x和y值。这是通过下述操作来执行的对所存储的匹配误差值进行排序,以确定最小误差值,然后确定导致该最小值的n,x和y值,即E(nm,xm,ym)=MIN(E(n,x,y))n=N-M1,...,N+M2x=Px-Lx,..,Px,..,Px+Lxy=Py-Ly,..,Py,..,Py+Ly (5-2)当已经以这种方式确定了最小匹配误差时,正在处理的当前块Bdeg(N,Px,Py)的匹配块是Bref(nm,xm,ym),于是,该匹配块是基准序列中的、在测试序列中正在处理的当前块的匹配块。
在找到当前匹配块之后,在步骤5.26,将该匹配块Bref(nm,xm,ym)复制到与当前测试场/帧相对应的匹配基准阵列中,具体地,将其复制到所匹配的基准阵列内的具有与块Bdeg(N,Px,Py)相同位置的块中。即,根据下式将来自基准阵列的匹配块(不管来自其搜索区域中的何处)复制到被构造为在当前测试场/帧内处于测试状态的当前块的匹配基准场/帧内的对应块位置中Mref(N,Px+j,Py+k)=ref(nm,xm+j,ym+k)j=0...bx-1,k=0...by-1 (5-3)其中b是块的尺寸(bx和by)。
接下来,在步骤5.28,如果合适,则进行处理,以移动到当前测试场/帧中的下一像素块,其中如上所述对该下一像素块进行处理。如上所述对当前测试场/帧内的每一个像素块进行处理,找到各个测试块的匹配基准块,并且将匹配基准块复制到匹配基准阵列中,生成当前测试场/帧的匹配基准场/帧。因此,当相应地处理了每一个像素块(如由步骤5.28确定的)时,可以在步骤5.30适当地将新构造的匹配基准场/帧输出给各个分析器22至28以供使用。另外,通过对测试序列中的每一个场/帧重复该处理,可以构造匹配场/帧序列以由这些分析器使用。
对整个所需分析区域重复该匹配处理(首先搜索退化块的最佳匹配,然后将所得到的块复制到匹配基准阵列中)。根据下式由块中心点Px()和Py()来限定该分析区域Px(h)=KX1+KX2*hh=0...Qx-1 (5-4)和Py(v)=KY1+KY2*vv=0...Qy-1 (5-5)其中,Qx和Qy限定了水平和垂直分析块的数量,KX1和KY1分别限定了这些分析块从顶部和左侧的初始偏移,并且KX2和KY12限定了分析块位移。
因此,第N场的匹配分析生成由下式表示的匹配基准序列BlockM Ref(N,Px(h),Py(v))h=0...Qx-1,v=0...Qy-1(5-6)以及最佳匹配误差值集合E(N,Px(h),Py(v)) h=0...Qx-1 v=0...Qy-1 (5-7)可以将偏移阵列集合MatT、MatX和MatY限定为使得BlockM Ref(N,Px(h),Py(v))=Block Ref(MatT(h,v),MatX(h,v),MatY(h,v))h=0...Qx-1,v=0...Qy-1 (5-8)在表1中给出了625和525广播序列的匹配参数。
表1用于匹配过程的搜索参数


由(5-4)和(5-5)限定的分析区域没有覆盖整个场大小。因此,必须根据(5-9)对MRef进行初始化,以使其可以不受限制地在别处使用。
M Ref(x,y)=0 x=0...X-1,y=0...Y-1 (5-9)然而,现在返回到该流程图,已在步骤5.30将新构造的各个场/帧输出给分析器,匹配模块接下来计算多个匹配统计值和来自刚执行的匹配处理的其它值,接下来将描述对这些匹配统计值和其它值的计算。
匹配模块30的主要功能是生成在视频质量评估系统的检测模块中使用的匹配基准序列,并且上面描述了该匹配基准序列的生成。然而,还发现在该匹配处理中得到的一些量度也可以用于生成最终视频质量值。下面描述与水平匹配统计信息相关的一个这种量度。
在步骤5.32,计算来自匹配处理的水平匹配统计信息,以在集成处理中使用。在根据下式构造各个场的直方图histX时使用如上所述确定的各个分析块的最佳匹配histX(MatX(h,v)-Px(h)+Lx)=histX(MatX(h,v)-Px(h)+Lx)+1h=0...Qx-1,v=0...Qy-1 (5-10)其中,将对于各个场将阵列histX初始化为0。然后根据下式使用该直方图来确定量度fXPerCentfXPerCent=100*Max(histX(i))/Σj=02LxhistX(j)i=0···2Lx---(5-11)]]>对于各个场,该fXPerCent量度给出了产生该匹配直方图的峰值的匹配块的比例(%)。将fXPerCent量度从匹配模块30输出给集成模块4,以在将要描述的后续步骤中使用。
接下来,在步骤5.34,也在匹配模块30中计算匹配PSNR(MPSNR)值。这里,根据下式使用各个匹配块的最小误差E()来计算匹配信噪比
if(Σh=0Qx-1Σv=0Qy-1E(N,Px(h),Py(v)))>0then]]>MPSNR=10log10(Qx*Qy*2552/Σh=0Qx-1Σv=0Qy-1E(N,Px(h),Py(v)))---(5-12)]]>if(Σh=0Qx-1Σv=0Qy-1E(N,Px(h),Py(v)))=0then]]>MPSNR=10log10(2552)---(5-13)]]>然后将由此确定的用于当前场/帧的匹配PSNR输出给集成模块4,以在将要描述的后续步骤中使用。
最后,在步骤5.36,通过亮度和色度峰值信噪比分析器24根据下式生成水平、垂直和延迟向量,并进行存储以在后面使用。
SyncT(h,v)=MatT(h,v)-Nh=0...Qx-1,v=0...Qy-1(5-14)SyncX(h,v)=MatX(h,v)-Px(h)h=0...Qx-1,v=0...Qy-1(5-15)SyncY(h,v)=MatY(h,v)-Py(h)h=0...Qx-1,v=0...Qy-1(5-16)因此,总的来说,根据上述内容可以明白,对于在测试视频序列中的各个场/帧,可以通过将该场/帧的子单元与基准视频序列的场/帧的子单元进行匹配,来找到匹配基准场/帧,另外,也可以输出通过匹配处理得到的匹配统计值和其它量度,如后面所述,可以在集成模块4中使用这些值。
另外,上面仅描述了亮度值(Y)和色度(U或V)值之一的一维匹配。然而,应该注意,可以将相同的处理分别应用于各个Y、U和V像素值,以生成彩色空间的这些分量的独立的一维匹配序列。因此,实际上,对于Y像素值、U像素值和V像素值中的每一个分别重复图5的处理。
在另选实施例中,当然可以使用单个三维匹配处理,但是目前对于所有的匹配处理,颜色参数的独立的一维匹配是当前优选的并经过测试的技术。当然也可以仅通过对于本领域的技术人员显而易见的小修改,将上述匹配技术应用于其它颜色空间,例如YCbCr或RGB。
还应该注意,在图5的上述匹配处理中,需要特定的参数以限定基准视频序列内的搜索区域,在该搜索区域内执行对当前测试视频场/帧的特定子单元的搜索。更具体地,必须限定时间参数M1和M2,其指定了必须在基准序列中搜索与当前测试视频场/帧在时间上相对应的基准视频场/帧的多少个之前帧和后续帧,另外,还限定空间参数Lx和Ly,以在各个基准视频场/帧内空间地限定待搜索的搜索区域。必须根据待处理的视频序列的特性来设定匹配参数Lx、Ly、M1和M2的准确值。例如,本发明人发现,对于625(720×576交织的50个场每秒)和525(720×486交织的60个场每秒)广播序列,空间参数Lx和Ly应该为4个像素,而时间参数M1和M2应该分别设定为4和5个场。另外,9×9像素的匹配块大小也是优选的。
返回到图2,可以看到将从序列匹配器模块30输出的匹配基准序列34输入到各个空间频率分析器22、亮度和色度峰值信噪比分析器24和边缘检测器分析器26。因此,下面将描述这些分析器中的每一个的操作。
首先说明空间频率分析器22,图6中示出了空间频率分析器22的内部结构。这里可以看到,空间频率分析器22内部包括第一金字塔变换生成器222,其用于接收测试视频场/帧作为输入。另外,设置有第二金字塔变换生成器224,其用于接收所匹配的基准视频场/帧作为输入。这两个金字塔变换生成器222和224分别相同地进行操作,以生成各个输入场/帧的金字塔阵列,然后将该金字塔阵列输入到金字塔SNR计算器226,以生成在各个对应的测试视频场/帧和所匹配的基准视频场/帧之间的金字塔SNR量度。下面将参照图7至图9来描述在生成金字塔SNR量度时空间频率分析器22的操作。
首先参照图8,图8是表示在生成相应的金字塔阵列时由金字塔变换生成器222或224执行的步骤的流程图。因此,首先在步骤8.2,金字塔转换生成器从相应的序列(即,从匹配模块30输出的测试序列或所匹配的基准序列)接收输入场/帧。然后,在步骤8.4,将计数器stage初始化为0,并开始处理循环,以生成金字塔阵列。随后生成金字塔阵列的总体过程为三个阶段、两个步骤的过程,其中对于各个阶段0至2,在进行水平分析之后进行垂直分析。下面将根据步骤8.6至8.20来描述在水平和垂直分析的一个特定阶段中涉及的步骤。
当在步骤8.4开始处理循环时,对于金字塔处理的特定阶段,在步骤8.6执行的第一步骤为,将正在处理的当前场/帧如下复制到temp阵列中PTemp(x,y)=P(x,y) x=0...X-1,y=0...Y-1 (8-1)然后,在步骤8.8,作为阶段参数的当前值的函数,如下计算水平分析极限Tx=X/2(stage+1)(8-2)Ty=Y/2stage(8-3)接下来,在所计算的极限内进行水平分析,从而根据下式使用临时阵列的水平元素对的平均值和差值来更新金字塔阵列P(x,y)=0.5*(PTemp(2x,y)+PTemp(2x+1,y))x=0...Tx-1,y=0...Ty-1 (8-4)P(x+Tx,y)=PTemp(2x,y)-PTemp(2x+1,y)x=0...Tx-1,y=0...Ty-1 (8-5)并且在步骤8.12,使用水平分析的结果来重写所输入的场/帧值。
然后在步骤8.14开始执行当前处理阶段的垂直分析,其中将所输入的场/帧再次复制到temp阵列中。然而,在此应该注意,在步骤8.12,使用水平分析的结果来重写所输入的场/帧内的值,因此可以看出,对当前阶段的垂直分析的输入是紧接着当前阶段的前一水平分析的输出。
接下来,在步骤8.16,作为stage值的函数,如下计算垂直分析极限Tx=X/2stage(8-6)Ty=Y/2(stage+1)(8-7)此后,在步骤8.18,根据下式在所计算的极限内进行垂直分析,以根据下式使用临时阵列的垂直元素对的平均值和差值来更新金字塔阵列P(x,y)=0.5*(PTemp(x,2y)+PTemp(x,2y+1))x=0...Tx-1,y=0...Ty-1 (8-8)P(x,y+Ty)=PTemp(x,2y)-PTemp(x,2y+1)x=0...Tx-1,y=0...Ty-1 (8-9)在步骤8.20,使用在步骤8.18进行的垂直分析的结果来重写所输入的场/帧,以使所输入的场/帧阵列内的值与空间分析的第一阶段的结果相对应。在步骤8.22,进行评估以确定是否已经执行了用于生成金字塔阵列的空间分析的各个阶段,并且如果没有执行,则处理返回到步骤8.4,在步骤8.4将stage值加一,并再次重复步骤8.6至8.20。应该注意,对于各个阶段的水平分析和垂直分析的各个步骤,使用所计算的垂直和水平极限来重写所输入的场/帧阵列内的值,从而在通过各个阶段逐步地进行处理时,将保存在输入场/帧阵列内的值转换为金字塔结构,其中在每一级分别具有四个象限。因此,在已经完成stage 0至2中的每一个,从而在步骤8.22的评估导致处理循环结束时,构造了可以在步骤8.24输出的金字塔阵列。
图7中示出了在各个处理阶段结束时所构造的金字塔阵列的格式。更具体地,图7(a)表示在阶段0处理结束之后输入场/帧阵列的内容,其中可以看出,其后为垂直分析步骤的水平分析步骤使阵列分为四个象限Q(stage,0至3),其中Q(0,0)包含与所输入的场/帧的4像素块的平均值相对应的值,Q(0,1)包含与所输入的场/帧的4像素块的水平差值相对应的值,Q(0,2)包含与4像素块的垂直差值相对应的值,而Q(0,3)包含与4像素块的对角差值相对应的值。
随后将如图7(a)中所示的从阶段0分析输出的象限Q(0,0)用作对FOR循环的第二次迭代的输入,以进行阶段1处理,其结果如图7(b)所示。这里可以看出,已经使用与4×4像素块的分析相关的结果Q(1,0至3)重写了象限Q(0,0),但是其中各个象限Q(1,0至3)包含与前面根据阶段0输出描述的平均值、水平差值、垂直差值和对角差值相关的值。
将如图7(b)所示的阶段1分析的输出用作对图8的FOR循环的第三次迭代中的阶段2分析的输入,以给出图7(c)中所示的结果,其中可以看出,已使用象限Q(2,0至3)重写了象限Q(1,0),其中象限Q(2,0至3)中的每一个分别与块的平均值、块的水平差值等相关,如前所述。在三个阶段的分析之后,如图7(c)中所示的所得到的金字塔阵列总共具有十个结果块,其中有来自阶段0(2×2像素)分析的三个块Q(0,1至3)、来自阶段1(4×4像素)分析的三个象限Q(1,1至3),以及来自阶段2(8×8像素)分析的四个象限Q(2,0至3)。应该注意,图8的用于生成图7中所示的金字塔阵列的过程由各个金字塔变换生成器222和224来执行,以生成相应的金字塔阵列pref和pdeg,然后将该金字塔阵列pref和pdeg输入到SNR计算器226。在图9中示出了金字塔SNR计算器226的操作。
参照图9,首先在步骤9.2,金字塔SNR计算器226分别从金字塔变换生成器224和222接收基准和退化金字塔阵列。接下来,在步骤9.4,开始处理循环,该处理循环对从0至2的计数器值stage的每一个值进行处理。此后,在步骤9.6开始嵌套的第二处理循环,该第二处理循环值1至3之间的计数器值quadrant进行处理。在这些嵌套的处理循环中,在步骤9.8,根据下式计算基准和金字塔阵列之间的均方误差量度值E(stage,quadrant)E(s,q)=(1/XY2)Σx=x1(s,q)x2(s,q)-1Σy=y1(s,q)y2(s,q)-1(Pref(x,y)-Pdeg(x,y))2s=0···2q=1···3]]>(9-1)其中,x1、x2、y1和y2限定了金字塔阵列内的象限的水平和垂直极限,并根据下式来计算x1(s,1)=X/2(s+1)x2(s,1)=2*x1(s,1) y1(s,1)=0 y2(s,1)=Y/2(s+1)(9-2)x1(s,2)=0 x2(s,2)=X/2(s+1)y1(s,2)=Y/2(s+1)y2(s,2)=2*y1(s,2)(9-3)x1(s,3)=X/2(s+1)x2(s,3)=2*x1(s,3) y1(s,3)=Y/2(s+1)y2(s,3)=2*y1(s,3)(9-4)然后在步骤9.10存储每一个所计算的误差量度E(stage,quadrant),此后,在步骤9.12和9.14,更新quadrant和stage计数器的值以适于该处理循环。步骤9.4至9.14和步骤9.6至9.12的处理循环的操作用于计算计数器stage和计数器quadrant的各个值的误差量度值。
在计算均方误差量度值之后,在步骤9.16,开始进一步的处理循环,以对从0至2的计数器stage的所有可能值进行处理,此后,在步骤9.18,开始嵌套的处理循环,以对quadrant计数器的值1至3进行处理。在这些嵌套的处理循环中,在步骤9.20,根据下式计算PSNR量度PySNR(stage,quadrant)if(E>0.0) PySNR(s,q)=10.0*log10(2552/E(s,q))else SNR=10.0*log10(2552*XY2) (9-5)然后在步骤9.22对其进行存储。在步骤9.24和后续步骤9.26,将计数器stage和quadrant的值加一,以适于这些处理循环,从而使该嵌套的处理循环用于计算并存储stage的各个值和quadrant的各个值的PSNR量度。假定参数stage可以取0至2的值,并且参数quadrant可以取1至3的值,则可以看出,通过金字塔SNR计算器226总共生成9个PSNR量度,所有这些PSNR量度都可以输出到集成阶段4。
下面将参照图10和图11来描述边缘分析器26的操作。
图10表示边缘分析器26的内部结构。更具体地,边缘分析器26包括第一边缘检测器262,用于接收和测试该视频场/帧,并检测其中的边缘;以及第二边缘检测器264,用于接收从匹配模块30输出的匹配基准视频场/帧,并检测其中的边缘。边缘检测器262和264都优选地根据已知的边缘检测算法进行操作,并以本领域中已知的方式生成边缘映像。例如,已知的边缘检测算法的示例有Laplacian边缘检测器、Canny边缘检测器以及Rothwell边缘检测器。Canny边缘检测器的C编程语言的源代码可以通过优先权日之前的ftp从ftp//figment.csee.usf.edu/pub/Edge Comparison/source code/canny.src免费下载获得,而Rothwell边缘检测器的C源代码可以从ftp∥figment.csee.usf.edu/pub/EdgeComparison/source code/rothwell.src获得。
将由各个边缘检测器262和264生成的各个边缘映像输入到块匹配装置266,该块匹配装置266用于以将要说明的方式对各个边缘映像进行比较,并生成表示该比较的输出参数EDif。在图11中更详细地示出了边缘分析器26的操作。
参照图11,首先,在步骤11.2,各个边缘检测器262和264计算相应的基准和退化边缘映像。如上所述,由边缘检测器262和264使用的边缘检测算法优选地为现有技术中已知的算法,例如Canny边缘检测器。边缘检测器262和264将基准和退化边缘映像输出给块匹配装置266,其中在步骤11.4,将基准和退化边缘映像中的每一个分为N×M块。接下来,块匹配装置266用于对构成基准和退化边缘映像中的各个块内的部分边缘的各个像素进行计数。因此,在步骤11.6之后,块匹配装置266获得了基准和退化边缘映像中的每一个的各个块的边缘像素的计数。
在计数步骤之后,在步骤11.8,块匹配装置266计算在基准和退化边缘映像中的对应块之间的相应像素计数值的差异。因此,在步骤11.8之后,可以获得与在基准或退化边缘映像之一中的块一样多的差值。
在步骤11.8之后,在步骤11.10,块匹配装置266将各个差值赋给幂(power)Q,并且在步骤11.12,对所获得的值进行求和。因此,在步骤11.10之后,仍然存在与基准或退化边缘映像之一中的块一样多的值,但是在步骤11.12之后,获得了与在步骤11.10计算的值的总和相对应的单个结果。在步骤11.14,将所获得的总和值赋给幂1/Q,并且在步骤11.16,从块匹配装置266输出该计算的结果作为EDif参数。如从图2可以看出,将EDif参数从边缘分析器26输出到集成阶段4。稍后将描述在集成阶段中对EDif参数的使用。
在某些情况下考虑在边缘求差步骤11.6至11.16中根据场/帧边缘进行的分析偏移量是有用的,在这种情况下,该处理如下。
在生成相应的边缘映像之后,块匹配装置随后计算各个分析块中的边缘标记像素的数量的量度,其中nX和nY限定了将要沿水平和垂直方向进行分析的非重叠块的数量,而X1和Y1限定了相对于场边缘的分析偏移量。
Bref(x,y)=Σi=i1i2Σj=j1j2EMapRef(Nx+x1+i,My+Y1+j)]]>x=0···nX-1,y=0···nY-1---(11-1)]]>BDeg(x,y)=Σi=i1i2Σj=j1j2EMapDeg(Nx+X1+i,My+Y1+j)]]>x=0···nX-1,y=0···nY-1---(11-2)]]>
根据下式来确定求和极限i1=-(N div 2) i2=(N-1)div 2 (11-3)j1=-(M div 2) j2=(M-1)div 2 (11-4)其中,操作符“div”表示整除。
然后,根据下式计算对于整个场的差值的量度EDif=(1/N*M*nX*nY)*(ΣX=0nX-1ΣY=0nY-1(BRef(x,y)-BDeg(x,y))Q)1/Q--(11-5)]]>对于用于625广播视频的720×288像素场N=4,X1=6,nX=178,M=4,Y1=10,nY=69,Q=3 (11-6)而对于用于525广播视频的720×243像素场N=4,X1=6,nX=178,M=4,Y1=10,nY=58,Q=3 (11-7)应该注意,由方程11-1至11-7表示的上述处理基本上与已参照图11进行了描述的处理的相同,其区别在于考虑了相对于场/帧边缘的分析偏移量。将通过方程11-5获得的参数EDif以与上述相同的方式输出给集成阶段4。
下面将参照图12来描述纹理分析器28的操作。
数字视频压缩旨在通过在编码处理中使用的DCT系数的量化,来减少图像内的纹理或细节。因此,纹理分析可以获得与这种压缩相关的重要信息,并且在本实施例中用于提供视频特性值TextureDeg和/或TextureRef。更具体地,通过记录强度信号中沿水平图像线的转向点的数量,来测量纹理参数值TextureDeg和/或TextureRef。如图12所示执行该处理。
参照图12,首先在步骤12.2,纹理分析器28接收待处理的当前测试场/帧。从图2可以看出,纹理分析器28从修剪和偏移模块32接收测试视频场/帧,但是并不接收匹配基准场/帧或原始的基准场/帧。然而,在其它实施例中,纹理分析器28可以接收匹配基准场/帧或原始的基准场/帧,在这种情况下,可以通过与下面根据TextureDeg参数描述的相同方式来计算TextureRef参数。
在步骤12.2之后,在步骤12.4,将转向点计数器sum初始化为零。然后,在步骤12.6,在有限循环0至Y-1内对所输入的视频场/帧循环中的每一条线开始处理循环,其中Y是视频场/帧内的线的数量。在该处理循环中,在步骤12.18,将值last_pos和last_neg均初始化为0。接下来,在步骤12.10,开始嵌套的第二处理循环,以处理每一条线y中的各个像素x,其中x取值为0至X-2,其中X是所输入的视频场/帧的线中的像素数量。
在该嵌套的处理循环中,在步骤12.12,计算位置x处的像素值与位置x+1处的像素值之间的差值。然后,在步骤12.14,进行评估以确定所计算的差值是否大于0,并还确定值last_neg是否大于值last_pos。如果满足该逻辑条件,则计数器值sum加一。在步骤12.14之后,在步骤12.16,进行二次评估,以确定在步骤12.12计算的差值是否小于0,并且还确定值last_neg是否小于值last_pos。如果满足该逻辑条件,则计数器值sum加一。应该注意,步骤12.14和步骤12.16的评估是互斥的,所以对于任意单个的特定像素不可能使计数器值sum增加两次。在步骤12.16之后,在步骤12.18,进行进一步的评估以确定所计算的差值是否大于零,在这种情况下,将值last_pos设定为当前像素数量x。另选地,在步骤12.20,进行二次评估,以确定所计算的差值是否小于零,在这种情况下,将计数器值last_neg设定为当前像素数量x。
在步骤12.20之后,在步骤12.22,进行评估以确定是否已经处理了当前线中的所有像素x,如果没有,则处理返回到步骤12.10,在步骤12.10中对下一像素进行处理。然而,如果已经处理了所有像素,则处理进行到步骤12.24,在步骤12.24中进行评估,以确定是否已经处理了当前输入帧中的所有线y,如果没有,则处理返回到步骤12.6,此时开始处理下一条线。这些嵌套的处理循环的结果为对每一条线上的各个像素进行了处理,并且每当步骤12.14和步骤12.16的评估返回“真”时,计数器sum加一。因此,在处理循环完成之后,计数器sum将包含表示所输入的场/帧中的纹理转向点的特定值。
使用保存在计数器sum中的该值,在步骤12.26,作为保存在计数器sum中的该值的函数,如下计算纹理参数Texture=sum*100/XY(12-1)
在步骤12.28,可以将由此计算的纹理参数从纹理分析器28输出给集成阶段4。
如上所述,尽管图2表示纹理分析器28只接收退化视频场/帧,并因此仅生成TextureDeg参数值,但是在其它实施例中,纹理分析器28还可以接收基准视频场/帧或者匹配基准视频场/帧,其中上述处理步骤还可以应用于这些场/帧以生成TextureRef或TextureMref参数。
下面将描述亮度和色度峰值信噪比分析器24的操作。
如图2所示,亮度和色度峰值信噪比分析器24接收匹配基准视频场/帧和退化视频场/帧作为输入。然后可以根据下式在强度和颜色信噪比量度中使用这些输入,其中RefY和DegY是匹配基准强度和退化强度的场,而RefU、DegU、RefV和DegV是根据YUV标准颜色格式的色度场YPSNR=10.0*log10(2552*XY/(Σx=0X-1Σy=0Y-1(RefY(x,y)-DegY(x,y))2))---(2-1)]]>UPSNR=10.0*log10(2552*XY/(Σx=0X-1Σy=0Y-1(RefU(x,y)-DegU(x,y))2))---(2-2)]]>VPSNR=10.0*log10(2552*XY/(Σx=0X-1Σy=0Y-1(RefV(x,y)-DegV(x,y))2))---(2-3)]]>当然,在不使用YUV颜色模型(例如使用RGB和YCbCr)的本发明的其它实施例中,当然对于本领域技术人员,显然可以计算相似的对应量度。
另外,亮度和色度峰值信噪比分析器24还使用在匹配模块30中生成的匹配向量的集合,以生成与使用YUV颜色模型时的像素的V值相关的部分PSNR量度SegVPSNR。更具体地,通过使用在上述(5-14)至(5-16)中限定的匹配向量来计算对于像素V值的匹配信噪比。对于匹配向量的各个集合,通过亮度和色度峰值信噪比分析器24根据下式来计算误差量度VEVE(h,v)=(1/bx*by)Σi=0bx-1Σj=0by-1(DegV(N,Px(h)+i,Py(h)+j)-]]>RefV(N+SyncT(h,v),Px(h)+SyncX(h,v)+i,Py(v)+SyncY(h,v)+j))2---(2-4)]]>然后根据下式计算对于所述场的部分PSNR量度SegVPSSNR=(1/Qx*Qy)Σh=0Qx-1Σv=0Qv-110.0*log10(2552/(VE(h,v)+1))---(2-5)]]>
然后将该部分PSNR量度SegVPSNR输出给集成模块4,以如下所述在后面使用。
返回到图1,将来自检测器模块2中的匹配模块和分析器的各种输出输入到集成阶段4,其中将各种值集成在一起,以给出视频质量值10。下面将参照图13来描述集成阶段4的操作。
通常,集成阶段的操作是通过对由分析器22至28生成的视频特性参数值选择性地适当加权,来产生测试视频序列的感知视频质量的估计值。所使用的参数值的特定集合以及对应的加权因子的值取决于所测试的视频的具体类型,并且通过在先的校准来预先确定。对具有已知主观分值并优选地具有与待测试的退化序列相类似的特性的大的视频序列集合进行校准。
集成过程的总体形式为首先通过场/帧检测参数对场/帧进行时间加权,然后组合该时间加权值和平均值,以给出预测的质量分值(其为总体视频质量值)。在图13中示出了实现该操作的处理。
首先,集成阶段4在步骤13.2接收从各种检测器和分析器输出的参数值并对其进行存储。如上所述,匹配模块30可以输出各种PerCent和MPSNR值,空间频率分析器22输出该PySNR值,而亮度和色度峰值信噪比分析器24输出所使用的颜色模型中的各个亮度和色度特性的PSNR值、以及根据匹配向量计算的SegVPSNR值。另外,边缘分析器26如上所述输出EDif参数,而纹理分析器28至少给出值TextureDeg,但是如果合适,还可以输出值TextureRef和TextureMref。对于特定的测试视频场/帧,不管由各个较早阶段输出什么参数和值,集成阶段都接收该输出信息并对其进行存储。
接下来,在步骤13.4,集成阶段选择视频类型,并根据该视频类型来选择集成参数集合。例如,下面给出了720×288像素每场的625广播视频的集成参数集合,该625广播视频已经以1Mbit每秒和5Mbit每秒之间的比特率进行了MPEG编码
表2 625广播视频的集成参数

而525线视频的加权值为表3 525广播视频的集成参数

如上所述,通过校准预先确定各种加权因子的准确值。另外,在集成阶段4中以查找表等方式存储集成参数的各个集合。
在选择视频类型并根据所存储的查找表设定了集成参数后,在步骤13.6,开始处理循环,以对值0至K-1内的各个集成参数类型k进行处理,其中各个参数(k)是从各种分析器或匹配模块接收的参数中的特定的一个。在该处理循环中,在步骤13.8,首先根据下式来计算这些参数值的时间加权平均值AvD(k)AvD(k)=(1/N)*(Σn=0N-1D(k,n)mnk)1/mnk---(13-1)]]>其中,N是场的数量,D(k,n)是第k检测参数的第n场,而mnk是加权因子。接下来,在步骤13.10,将时间加权平均值AvD(k)与适当的加权因子w(k)相乘,并存储该乘积。从存储在集成阶段4中的视频类型的适当查找表读取适当的加权因子w(k)。
在步骤13.12,进行评估,以确定是否已经处理了所有的集成参数(k),如果没有,则再次执行步骤13.6的处理循环,直到处理了所有的参数为止。当处理了所有的参数时,对于各种类型的参数k可以获得进行了适当加权的时间加权平均值,然后在步骤13.14如下将其与偏移值一起进行求和 其中,K等于在集成时所使用参数的数量,并且对于表2和3中所示的示例为6。这给出了最终视频质量值PDMOS,然后在步骤13.16输出该最终视频质量值PDMOS。
所述输出视频质量值PDMOS等同于通过使用人类观察者进行主观测试而生成的等级,因为考虑了在测试视频信号中的变形和误差(其基本上不能被人类观察者可察觉地检测到)而生成该输出视频质量值。因此,鉴于该特性,可以将该视频质量值用于多种用途。具体地,其可以用于评价现有视频服务的质量以确保质量合适,或者另选地,其可以用于测试不同视频编码解码器的性能。另外,视频质量值可以用于评估新视频服务的性能,例如互联网上的宽带型视频服务。在这方面,可以将由本发明实施例生成的视频质量水平PDMOS用于与由现有技术生成的自动质量评估值相似的任何用途,其差别在于该值考虑了不易察觉的变形,因此与通过现有技术的自动视频质量评估技术的情况相比,更有可能表示在主观测试期间由人类观察者生成的视频质量值。
图14表示以软件形式实施的本发明的第二实施例。这里,通过计算机140执行由本发明提供的各种处理,该计算机用于接收基准视频序列和测试视频序列。计算机140设置有程序存储装置,例如硬盘驱动器、可写CD或DVD、存储器等,其中存储有包含指令的各种计算机程序,当由计算机140执行这些指令时使得计算机执行本发明。更具体地,设置有控制和界面程序148,当运行该程序时使得计算机的用户能够控制计算机,以根据本发明开始对测试和基准视频序列进行处理,并使得计算机能够在屏幕上将测试结果输出给用户。该控制和界面程序优选地是基于图形的,并且该程序的结构对于本领域技术人员是显而易见的。
还设置有集成器程序144、控制和界面程序148、纹理分析器程序150、匹配程序152、修剪程序154、空间频率分析程序156、信噪比计算程序158以及边缘分析器程序160。在下面的示例操作中将简要说明这些程序中的每一个的操作。
假设通用计算机140的用户希望对视频序列进行测试。该用户首先启动控制和界面程序148,该程序向用户提供控制以使得该用户能够指定待处理的测试和基准视频序列。当用户指示计算机140通过控制和界面程序148开始进行处理时,该控制和界面程序148随后通过执行各种其它程序并适当地处理数据来使计算机140开始进行处理。因此,当接收到来自用户的指示以开始进行处理时,控制和界面程序148首先使得修剪程序154被执行,该修剪程序用于以与已经根据修剪和偏移模块32进行了描述的完全相同的方式对所输入的基准和测试视频序列进行修剪。即,修剪程序154用于以与前面根据图3描述的完全相同的方式对所输入的视频序列进行修剪。然后将这样修剪的视频序列存储在数据存储装置142的工作数据区域146中。
在对所输入的视频序列进行修剪之后,接下来,控制和界面程序148使得匹配程序152被运行。匹配程序152访问存储装置142的工作数据部分146中的经修剪的基准和测试视频序列,并用于以与前面根据图4和图5描述的序列匹配器模块30完全相同的方式执行序列匹配。即,匹配程序152根据图5的流程图进行操作,以生成匹配基准序列,然后将该匹配基准序列存储在数据存储装置142的工作数据部分146中。
在生成该匹配基准序列之后,控制和界面程序148则运行空间频率分析程序156,该程序用于以与前述空间频率分析器22完全相同的方式对该匹配基准场/帧和该测试场/帧进行空间频率分析,因此空间频率分析程序156执行图8和图9的流程图,以生成PySNR视频特性值,然后将该视频特性值存储在存储装置142的工作数据部分146中。
接下来,控制和界面程序148运行信噪比计算程序158,该程序随后访问工作数据部分146中的测试视频场/帧和该匹配基准视频场/帧,并以与上述相同的方式计算亮度和色度信噪比。即,信噪比计算程序158以与前述相同的方式对亮度和色度峰值信噪比分析器24进行操作。将由信噪比计算程序158计算得到的亮度和色度信噪比存储在存储装置的工作数据区域146中。
控制和界面程序148然后运行纹理分析器程序150。纹理分析器程序150随后从工作数据区域146访问测试视频场/帧,并用于以与上面根据纹理分析器28所述相同的方式计算TextureDeg参数。因此,纹理分析器程序150根据图12的流程图进行操作。如果需要,该纹理分析器程序还可以通过该相同的方式计算TextureRef和TextureMref参数。
在纹理分析器程序150的操作之后,控制和界面程序148随后运行边缘分析器程序160。该边缘分析器程序用于访问存储装置142的工作数据区域146中的匹配基准场/帧以及测试视频场/帧。然后,该边缘分析器程序160基本上如上面根据边缘分析器26所述进行操作,即边缘分析器程序160基本上执行在图11的流程图中所述的步骤。该边缘分析器程序的输出为EDif参数,该EDif参数被存储在工作区域146中。
在第二实施例的操作中的该阶段,已经执行了各个分析器程序,因此,工作区域146包含了可以用作集成器的输入的所有视频特性参数值。因此,下一操作是控制和界面程序148运行集成器程序144,该集成器程序用于访问工作区域146以适当地从其读取特性参数值,并将这些参数集成在一起以生成最终视频质量值PDMOS。集成器144的操作基本上与上述集成器阶段4的相同。因此,集成器程序144基本上根据如上所述的图13的流程图进行操作。
因此,本发明的第二实施例提供了一种软件实施例,其用于以与前面根据第一实施例所述的基本相同的方式生成视频质量值。然而,在此应该注意,所述的第一实施例也可以通过软件的形式实现,或者另选地可以通过硬件单元或软件和硬件的组合来实现。在这方面,应该认为第一实施例是比第二实施例更通用的实施例。
可以对上述实施例进行各种其它修改以提供其它实施例。例如,在另一实施例中可以使用不同的块尺寸来执行匹配处理。具体地,对于重叠窗口(考虑一些像素以匹配一个以上的退化块),比重建块尺寸大的误差最小块尺寸使得误差最小。在该处理中,匹配模块仍然用于将测试视频场/帧分为与前述相同数量的块,但随后限定完全包含待匹配块的像素的匹配单元,而该匹配单元还包含围绕该待匹配块的其它像素。于是该匹配单元可以用于误差最小化功能,以在基准序列中找到待匹配块的匹配块。这有利于提高匹配精度。
本发明中使用的上述匹配处理可以克服从恒定且规则的场不对准到扭曲且更瞬态的基于块的退化的多种不同类型的变形效果。现给出对于各种变形在PSNR与匹配PSNR量度的灵敏度之间的差异,以显示该匹配处理的益处。所有给出的结果只针对亮度像素值。
首先处理空间不对准缺陷,在基准场和退化场之间的仅一个像素的空间不对准会对SNR量度产生显著的影响,而对于观察者并不可察觉。本发明所提供的匹配处理可以处理达到在该算法内设定的基于感知的搜索极限的一致且随时间变化的空间偏移。
图15表示根据已被MPEG2编码为3Mb/s的625序列以及空间(和时间)对准的基准和退化序列计算的PSNR结果。该PSNR图显示了根据下式在各个基准和退化场之间计算的基本PSNRPSNR(n)=10log10(X*Y*2552/(Σi=0X-1Σj=0Y-1(ref(n,i,j)-deg(n,i,j))2))---(15-1)]]>其中,X和Y是场像素尺寸。
MPSNR图显示了当匹配基准序列代替基准序列作为对SNR模块的输入时的结果。在这种情况下,可以看到在PSNR与MPSNR结果之间的精确对准。图16表示在退化序列上的2像素水平偏移的效果。可以看出,MPSNR没有变化而PSNR减少了多达7dB。
图17表示对于同一测试序列,在+/-4像素之间随机水平场抖动的效果。同样,可以看出,匹配PSNR没有受到空间抖动的影响,而标准PSNR显著变化。
对于时间不对准,基准和退化序列的时间不对准也会对SNR量度产生显著影响。在这种情况下,影响的严重程度取决于视频序列的随时间变化特性。与空间不对准一样,匹配处理可以处理在该算法的基于感知的搜索极限内的恒定和随时间变化的时间偏移量。
图18显示了由本发明提供的匹配处理的益处的有趣示例,其中已经以CIF分辨率对625广播序列进行了H.263编码,使得连续退化场相同。该PSNR图显示了由于减小的分辨率的编码而导致交替场的值大大减小,而MPSNR不受影响。
该匹配处理也可以处理不规则的时间不对准,并且图19表示对于场的随机冻结的匹配处理。在该示例中,各个场具有10%的冻结(及时替换下一场)机会。
最后,对于块级变形,本发明的匹配处理被设计用来处理比以上所考虑的基于场的空间和时间不对准更复杂的变形。相对于场的整体尺寸较小的块的匹配使得能够减少不期望的变形效果,例如图像扭曲、丢失线和块冻结。
图20表示“块冻结”对PSNR和MPSNR量度的影响。“块冻结”模拟在待更新的场内仅随机地选择85%的8×8像素块,并且在该示例中,直到第25场之后才开始该处理。尽管测试显示了不可察觉的变形,但是可以看到,大大地减小了PSNR。然而,由于匹配处理能够跟踪冻结块,所以MPSNR量度几乎不受影响。
除非上下文明确需要,否则在本说明书和权利要求书中,词语“包括(comprise)”、“包括(comprising)”等应当理解为包含(与排他或穷尽的含义相反);也就是说,其含义为“包含,但不限于”。
此外,为了避免歧义,已参考了现有技术文献或公开,其全部或部分内容对于预定的读者(本领域的技术人员)理解本发明的任一实施例的操作或实施是必需的,在此通过引用并入所述内容。
权利要求
1.一种视频质量评估方法,包括以下步骤将测试视频场/帧的子场/帧单元与至少一个基准视频场/帧的对应子场/帧单元进行匹配;以及根据所述测试和基准视频场/帧的匹配子场/帧单元来生成视频质量值。
2.根据权利要求1所述的方法,其中,所述匹配步骤还包括对于所述测试视频场/帧的子场/帧单元,在与所述测试视频场/帧在时间上相对应的基准视频场/帧的前M1个和/或后M2个基准视频场/帧内,搜索匹配子场/帧单元。
3.根据权利要求2所述的方法,其中,M1和M2是预定的。
4.根据权利要求2或3所述的方法,其中,所述搜索步骤还包括在所述基准场/帧内的与所述测试子场/帧单元在所述测试视频场/帧内的位置相对应的位置周围的基准视频场/帧的空间限定区域内进行搜索。
5.根据权利要求4所述的方法,其中,所述搜索区域的空间范围是预定的。
6.根据前述权利要求中的任意一项所述的方法,其中,所述匹配步骤还包括对于所述测试视频场/帧的子场/帧单元,限定包括所述测试视频场/帧的包含所述子场/帧单元的部分的匹配模板;以及使用所限定的匹配模板,在所述至少一个基准视频场/帧中搜索匹配子场/帧单元。
7.根据前述权利要求中的任意一项所述的方法,其中,所述匹配步骤还包括计算一个或更多个匹配统计值和/或匹配向量;并且其中,所述生成步骤进一步根据所计算的匹配统计值和/或匹配向量来生成视频质量参数。
8.根据权利要求7所述的方法,其中,所述计算步骤包括构造与所述基准视频场/帧的搜索区域相关的一个或更多个直方图;以及对于与产生所述直方图的峰值的匹配单元的比例相关的各个直方图,计算匹配统计值。
9.根据前述权利要求中的任意一项所述的方法,其中,所述生成步骤还包括根据所述测试和基准视频场/帧的匹配子场/帧单元,分别计算与所述测试和/或基准视频场/帧的特性相关的多个视频特性值;以及将至少所计算的视频特性值集成在一起,以给出所述视频质量值。
10.根据从属于权利要求7或8的权利要求9所述的方法,其中,所述集成步骤还包括将所述匹配统计值和所计算的视频特性值集成在一起,以给出所述视频质量值。
11.根据权利要求9或10所述的方法,其中,所述视频特性值分别是下述值中的任意两个或更多个一个或更多个空间频率值;一个或更多个纹理值;至少一个边缘值;至少一个亮度信噪比值;和/或一个或更多个色度信噪比值。
12.根据权利要求11所述的方法,其中,对于测试场/帧,所述边缘值的计算包括对所述测试场/帧的各个子场/帧单元中的边缘数量进行计数;对与所述测试场/帧的子场/帧单元相匹配的、所述至少一个基准场/帧的各个子场/帧单元中的边缘数量进行计数;以及根据所述各个计数确定所述测试场/帧的边缘值。
13.根据权利要求12所述的方法,其中,所述确定步骤还包括计算各对相应计数之间的差值;将各个计算的差值赋给幂Q;对所得到的值求和以给出和值;以及将所述和值赋给幂1/Q以给出所述边缘值。
14.根据权利要求9至13中的任意一项所述的方法,其中,所述集成步骤还包括通过预定的加权因子对各个值进行加权;以及对所加权的值进行求和以给出所述视频质量值。
15.根据权利要求14所述的方法,其中,所述求和步骤还用于对所加权的值和预定的偏移值进行求和。
16.根据权利要求14或15所述的方法,其中,所述加权因子和偏移值取决于所述测试和基准视频场/帧的类型。
17.一种计算机程序或一组程序,其被设置为使得当由计算机系统执行该计算机程序或该组程序时,该计算机程序或该组程序使得该系统执行权利要求1至16中的任何一项所述的方法。
18.一种经调制的载波信号,该载波信号包含有与权利要求17的计算机程序或者该组程序中的至少一个相对应的数据。
19.一种计算机可读存储介质,用于存储根据权利要求17的计算机程序或该组计算机程序中的至少一个程序。
20.一种视频质量评估系统,其包括匹配装置,用于将测试视频场/帧的子场/帧单元与至少一个基准视频场/帧的对应子场/帧单元进行匹配;以及视频处理装置,用于根据所述测试和基准视频场/帧的匹配子场/帧单元来生成视频质量值。
21.根据权利要求20所述的系统,其中,所述匹配装置还包括时间搜索装置,用于在时间上与所述测试视频场/帧相对应的基准视频场/帧的前M1个和/或后M2个基准视频场/帧内,搜索匹配子场/帧单元。
22.根据权利要求21所述的系统,其中,M1和M2是预定的。
23.根据权利要求21或22所述的系统,其中,还包括空间搜索装置,用于在所述基准场/帧内的与所述测试子场/帧单元在所述测试视频场/帧内的位置相对应的位置周围的基准视频场/帧的空间限定区域内进行搜索。
24.根据权利要求23所述的系统,其中,所述搜索区域的空间范围是预定的。
25.根据权利要求20至24中的任意一项所述的系统,其中,所述匹配装置还包括用于限定匹配模板的装置,该匹配模板包括所述测试视频场/帧的包含所述子场/帧单元的部分;以及用于使用所限定的匹配模板,在所述至少一个基准视频场/帧中搜索匹配子场/帧单元的装置。
26.根据权利要求20至25中的任意一项所述的系统,其中,所述匹配装置还包括计算装置,用于计算一个或更多个匹配统计值和/或匹配向量;并且其中,所述视频处理装置还用于进一步根据所计算的匹配统计值和/或匹配向量来生成视频质量参数。
27.根据权利要求26所述的系统,其中,所述计算装置还包括直方图构造装置,用于构造与所述基准视频场/帧的搜索区域相关的一个或更多个直方图;以及匹配统计计算装置,用于对与产生所述直方图的峰值的匹配单元的比例相关的各个直方图,计算匹配统计值。
28.根据权利要求20至27中的任意一项所述的系统,其中,所述视频处理装置还包括多个分析装置,分别用于根据所述测试和基准视频场/帧的匹配子场/帧单元,计算与所述测试和/或基准视频场/帧的特性相关的多个视频特性值;以及集成装置,用于将至少所计算的视频特性值集成在一起以给出所述视频质量值。
29.根据从属于权利要求26或27的权利要求28所述的系统,其中,所述集成装置还用于将所述匹配统计值和所计算的视频特性值集成在一起,以给出所述视频质量值。
30.根据权利要求28或29所述的系统,其中,所述视频特性值分别是下述值中的任意两个或更多个一个或更多个空间频率值;一个或更多个纹理值;至少一个边缘值;至少一个亮度信噪比值;和/或一个或更多个色度信噪比值。
31.根据权利要求30所述的系统,其中,还包括边缘计算装置,其包括用于对所述测试场/帧的各个子场/帧单元中的边缘数量进行计数的装置;用于对与所述测试场/帧的子场/帧单元相匹配的、所述至少一个基准场/帧的各个子场/帧单元中的边缘数量进行计数的装置;以及用于根据所述各个计数确定所述测试场/帧的边缘值的装置。
32.根据权利要求31所述的系统,其中,用于进行确定的所述装置还包括算术计算器装置,其用于计算在各对相应计数之间的差值;将各个所计算的差值赋给幂Q;对得到的值进行求和以给出和值;以及将该和值赋给幂1/Q以给出所述边缘值。
33.根据权利要求28至32中的任意一项所述的系统,其中,所述集成装置还包括加权装置,用于通过预定的加权因子对各个值进行加权;以及求和装置,用于对所加权的值进行求和,以给出所述视频质量值。
34.根据权利要求33所述的系统,其中,所述求和装置还用于对所加权的值和预定的偏移值进行求和。
35.根据权利要求33或34所述的系统,其中,所述加权因子和偏移值取决于所述测试和基准视频场/帧的类型。
全文摘要
一种用于自动视频质量评估的方法和系统,其减少了基准和测试序列之间的子场/帧不对准的不利影响。更具体地,本发明通过将测试视频场/帧的子场/帧单元分别与基准视频场/帧的子场/帧单元进行匹配,来将不对准降为要进行处理的子场/帧水平。使用明显小于视频场/帧尺寸的匹配单元尺寸使得能够有效地跟踪瞬态子场/帧不对准。
文档编号H04N17/00GK1809838SQ200480017214
公开日2006年7月26日 申请日期2004年6月4日 优先权日2003年6月18日
发明者亚历山大·琼·布雷, 大卫·斯内登·汉兹, 达米安·巴亚尔, 安德鲁·戈登·戴维斯 申请人:英国电讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1