用于视频解块的方法和设备 【技术领域】
本发明总的涉及数字视频技术,并且更具体地涉及用于平滑相邻图像块之间由低比特率视频编码而产生的人工不连续性(artificialdiscontinuity)而不会引入不期望的模糊的算法。
背景技术
当今的低比特率视频编码标准(诸如MPEG-4、ITU-T H.263等)包含的算法使诸如视频会议和视频电话的多种应用成为可能。这些标准和使用了它们的系统利用时间冗余以及空间冗余来压缩视频数据。尽管在许多方式中这些标准都十分有效,但是它们生成的已解压缩图像有时会出现图像块之间的人工不连续性,也被称为块人工产物(blockingartifact)。这些块人工产物基本是由压缩处理的量化步骤期间的量化引起的。
图1是一个简化的原理图,它用插图表示了与图像数据相关的块人工产物。此处数据帧fn包括边界102,它位于图像数据帧的块1和块2之间。块1包括象素a和象素b,而块2包括象素c和象素d。线100表示象素c和d相对于象素a和b地象素值。例如,线100可以表示象素c和d对应于数值1,而象素a和b对应于数值0。因此,已解码的视频在块1和2之间的边界102处将会有块效应(Blocky effect)。图2是原始亮度和由于块效应而引起的原始亮度与失真相比较的图解表示。原始亮度显示出在穿过边界102时渐进并平滑的增加,而不是陡峭的变化。然而由于量化导致的高频系数的截断,会在已解压缩图像中观察到块效应。
在基于块的编码中,原始图像的单色调区中象素亮度逐渐变化,在穿过块边界时最显著地受到陡峭变化的影响,引起了块人工产物。按照离散余弦转换(DCT),当DCT系数的量化步长大于可见度门限时,由于量化消除了AC系数而引起灰度值的不连续性。这些不连续性在视频图像帧的块之间的边界处变得清晰可见。
在静止图像编码以及视频编码领域中已经提出了各种解块方案,其中大多数的解块方案在空间域使用了低通滤波器。一个著名的减少块人工产物的方法就是基于替换的凸集投影技术(projection onto convexset)(POCS)的理论,假设块人工产物总是位于块边界。然而,由于迭代结构和长的收敛时间,故这种方法仅适用于静态图象。
在视频编码中,为了维持特定的比特率,需要对已转换的系数进行适当的量化。作为量化结果,在重建的图像中会产生块效应。这种人工产物可以是清楚可见的,因此严重降低了图像质量。一种改善该图象质量的尝试是对已解码的视频数据实施后处理步骤,诸如在空间域采用的低通滤波。然而,当前的后处理步骤的缺点在于它们的计算复杂性,它需要接收器中所需的总计算功率的大约30%-40%。应当清楚:对于移动终端,即电池驱动的消费电子产品,诸如包括薄膜晶体管(TFT)技术、超扭曲向列(STN)以及移动数字薄膜二极管(mobile digital-thin filmdiode:MD-TFD)的终端来说,它们的功率消耗过高因而不能接受。当前使用的低通滤波器的另一缺点是,滤波操作的时间累积将会在图像显示中引起显著的延时。由于控制这些设备的嵌入式系统的资源有限,故这种时延对于便携式电子计算系统特别显著。
因此,需要解决现有技术的这些问题,并且提供一种方法和设备,使得实时应用的后处理算法能够从功率和时间的角度更加有效地减少块人工产物。
【发明内容】
总的来说,本发明通过根据本地特性进行自适应非线性滤波来提供用于减少块人工产物的方法和系统,满足了这些需要。应当清楚本发明可以用多种方式实现,包括如方法、系统或者装置。下面描述了本发明的几种创造性实施例。
在一个实施例中,提供了一种用于平滑与数字数据相关的图像块之间的人工不连续性的方法。该方法从重建与数字数据相关的图像块的基于块的象素重现开始。然后,它确定该基于块的象素表示的相邻图像块之间的差值是否小于或者等于量化参数。如果基于块的象素表示的相邻图像块之间的差值小于或者等于量化参数,那么该方法包括修正边界象素值以定义至少一个附加帧,并且然后以交替的方式显示该至少一个附加帧以及原始帧,这样获得平滑的块边界,它在视觉上具有和空间平均相同的效果。
在另一个实施例中,提供了一种用于减少已解压缩图像的图像块之间的块人工产物的方法。该方法从选择与最接近图像块之间的边界的象素相对应于的象素位置集合开始。然后,确定在显示已解压缩图像时,要插入的附加帧的数量。接下来,对每个附加帧修正与最接近该边界的象素集的每个象素相关的象素值。然后,以交替的模式显示原始帧和附加帧,这样减少图像块之间的块人工产物。
在又一个实施例中,提供了一种用于滤除视频图像帧的相邻块之间的边界上的不连续性的帧速率调制方法,该方法从识别位于视频图像的第一帧的相邻块之间边界的每侧上的相邻象素开始。每个相邻象素与象素值相联系。然后,确定相邻块之间的差值。如果第一帧的相邻图像块之间的差值小于或者等于量化参数,那么该方法包括定义具有对于每个相邻象素互换了象素值的第二帧,然后,通过交替显示与每个相邻象素相关的象素值来平均与每个相邻象素相关的象素值,以便显示具有平滑的块边界的图像。
在再一个实施例中,提供了一个计算机可读媒体,它具有用于减少已解压缩图像的图像块之间的块人工产物的程序指令。该计算机可读媒体包括用于选择与最接近图像块之间边界的象素相对应于的象素位置的集合的程序指令。提供了用于确定在显示该已解压缩图像时,要插入的附加帧数量的程序指令。包括用于对每个附加帧修正与最接近该边界的象素集的每个象素相关的象素值的程序指令。用于以交替的模式显示原始帧和附加帧以便减少图像块之间的块人工产物的程序指令。
在又一个实施例中,提供了一种具有用于减少已解压缩图像的图像块之间的块人工产物的逻辑的集成电路芯片。该集成电路芯片包括用于选择与最接近该图像块之间的边界的象素相对应于的象素位置的集合的逻辑,以及用于确定在显示该已解压缩图像时要插入的附加帧数目的逻辑。还包括用于对每个附加帧修正与最接近边界的每个象素相关的象素值的逻辑。还包括用于以交替的模式显示原始帧和附加帧以使得图像块之间的块人工产物减少的逻辑。
在又一个实施例中,提供了一种用于显示数字视频图像的装置。该装置包括中央处理器(CPU)和用于存储图像数据帧的存储器。该装置还包括图像解块电路。该图像解块电路包括用于修正与最接近图像数据帧的块边界的每个象素相关的象素值从而定义图像数据的附加帧的电路。还包括用于以交替的模式显示图像数据帧和图像数据的附加帧的电路以使得在图像块之间的块人工产物减少的逻辑。
结合用于示例本发明原理的附图,从以下的详细描述中将更加清楚本发明的其它方面和优点。
【附图说明】
结合附图,根据以下详细描述将更容易理解本发明,在图中相同的结构元件使用相同的参考数字标记。
图1是用插图表示与图像数据有关的块人工产物的一维例图。
图2是和已解压缩图像的表示相比较的原始亮度的图形表示。
图3是表示依照本发明的一个实施例,能够平滑视频图像的相邻块之间的块不连续性的交替模式的简化原理图。
图4是在块边界处对于块人工产物的平滑效应的图形表示。
图5是图3的实施例的另一个一维图形表示。
图6是依照本发明中的一个实施例,用于通过使用帧速率调制来最小化块人工产物的方案的一维图形表示,该调制方式具有5抽头低通滤波器的效果。
图7是依照本发明的一个实施例,使用帧速率调制来解块的一般化的一维图形表示。
图8是依照本发明的一个实施例,用于减少已解压缩图像的图像块之间的块人工产物的方法操作的流程图。
图9是依照本发明的一个实施例,具有图像解块电路的装置的简化原理图。
【具体实施方式】
本发明描述的是用于平滑图像数据帧的块边界处的不连续性的设备和方法。然而,很明显对于一个精通本领域的人来说,不需要这些具体细节的部分或者全部也能够实践本发明。在其它的实例中,为了不会混淆本发明,没有详细描述那些众所周知的处理操作。图1和图2已在“背景技术”部分中做了介绍。
本发明的实施例提供了一种用于平滑图像块之间的人工不连续性(块人工产物)的算法,而不会引入不期望的模糊。如下面将进一步解释的,本发明可以在设备、方法或者程序指令中实施。本发明是参照低比特率视频编码应用来说明的,然而,应该清楚该实施例可以被应用于任何合适的视频编码应用中。
在一个实施例中,帧速率调制被用于平滑图像块之间的块人工产物。如通常所知的,帧速率是指屏幕(诸如平板显示器)的刷新频率。典型地,便携式装置最常用的平板显示器是超扭曲向列(STN)液晶显示(LCD)板,它的响应时间的数量级是数百毫秒。由于此类慢速平板的响应时间大于帧速率周期,即这些平板的刷新速率周期典型值是大约16毫秒(ms)。因此,此处所说明的帧速率调制利用了STN LCD板的这种差别来增加本发明实施例中被显示的灰度梯度(gray shade)数目。在另一个实施例中,为了显示灰度梯度等于0.5的象素,每隔一帧对象素进行激励,即以交替方式把各个像素接通一次就需要2帧。换而言之,象素每隔一帧被显示一次,使得灰度梯度的外观等于当象素在恒通状态时象素亮度的50%。
图3是表示依照本发明的一个实施例,能够平滑视频图像的相邻块之间的块不连续性的交替模式的简化原理图。一维表示110表示在边界112处对相邻象素值平均的结果。因而,一维表示118是原始帧fn,其中块边界112对应于如直线116a所示的象素值的变化。根据原始帧118,如原理图120中所示定义了附加帧fn2。除了帧fn118在象素位置B和象素位置C处的象素值已经在帧fn2120中进行了交换以外,帧fn2120与原始帧fn118相似。这样,帧fn和帧fn2以交替的方式显示时,观察者的视觉感知和在原理图110中的帧fn’的感知相同。即观察者将认为在象素位置B和象素位置C处的象素值比象素位置D处的象素值小大约50%,如原理图110的直线114在帧fn’中所示。因而,在边界112处的块不连续性被平滑,以使由于象素值变化而引起块边界处的陡峭跳变时的块效应最小化。
在另一个实施例中,边界112处的象素值可以通过交替显示原理图122和124中所示的帧进行平滑处理。在原理图122中,原始帧使用象素位置B的象素值代替象素位置C的值。在原理图124定义的第二帧,其中象素位置C处的象素值已经取代了象素位置B。应当明白,通过以交替模式显示原理图122和124所示的帧,观察者将会类似地看到原理图110中所示的帧fn’,其中在象素B和象素C的边界112处的象素值将是象素D象素值的大约50%。对于熟悉本领域的人员来说显然可以通过改变帧的数目以便在此获得任意灰度梯度。在一个实施例中,只要抖动矩阵(dither matrix)足够大,则灰度梯度的数目等于抖动矩阵的阶数。
图4是在块边界处对于块人工产物的平滑效应的图形表示。原理图130表示具有象素134-1到134-3的第一块的象素值,与之比较的是具有象素134-4到134-6的第二块的象素。在一个实施例中,已译码的象素134-1到134-6可以进行平均,即进行平滑处理以使得块人工产物被最小化,如将参考图6和7进一步详细解释的。因而,在块边界112处的陡峭变化被转换成渐进的变化以减少块人工产物。在一个实施例中如果差值(D)小于量化参数(QP),则已译码的象素只按照此处的实施例中所介绍的方式进行滤波。如果差值(D)大于或者等于QP,则块边界112处的陡峭变化被认为是实际的边缘,因而不执行使用帧速率调制的滤波。熟悉本领域的人员会明白量化参数在编码阶段中设定。
图5是图3中的一个实施例的另一种一维图形表示。此处,上述的帧速率调制被用于平滑在原始帧fn140的象素D和E的位置之间发生的不连续性,即块人工产物。通过交替显示帧fn1144和fn2146获得帧fn’142中所示的平滑块边界。应当明白fn1具有互换了象素D和E的边界象素值,而fn2146就是原始的块信号fn140。由于通过交替显示fn1144和fn2146所获得的时间平均,结果图象fn’142在视觉上和对象素位置D和E处的象素值进行平均的低通滤波图像相同。因而,此处所述的帧速率调制取消了及时而又繁重的空间域低通滤波,而同时又在视觉上获得了相同的结果。
图6是依照本发明中的一个实施例,用于通过使用具有5抽头低通滤波器效果的帧速率调制来最小化块人工产物的方案的一维图形表示。此处,如帧fn’152所示对于在边界112处具有块人工产物的块信号fn150进行平滑处理。在本实施例中,原始帧fn1154与4个附加帧交替显示。四个附加帧fn2156、fn3158、fn4160和fn5162修正了块边界112周围的象素值,以便在这些帧以交替模式显示时提供被观察者认为是平滑的边界。熟悉本领域的人将会明白可以对该帧进行任意数目的适当修正,以便获得期望的平滑块边界的视觉效果。即,尽管图6表示了发生在象素位置B和象素位置G之间的变化是按照20%增加的,任何适当百分比的增加都可以通过改变所示的附加帧的数目和配置而获得。此外,尽管在图6中选择了4个象素位置(C-F)来进行平滑处理,但是可以选择任意适当数目的象素位置来进行平滑。当然,应该通过测量块边界处的象素值的差值并把该差值和量化参数相比较来防止对真正的边缘进行平滑。如果差值大于量化参数,那么如参考图4所讨论的将不执行此处所述的滤波。
图7是依照本发明的一个实施例,使用帧速率调制来解块的一般化的一维图形表示。帧(Fr)170表示原始的块信号。块1包括象素位置a、b、c以及d。块2包括象素位置e、f、g和h。应当明白使用象素位置处的大写字母来表示象素值。例如,象素位置a具有象素值A,象素位置b具有象素值B,依此类推。等式184表示了在本发明的一个实施例中n抽头滤波器的一般化公式。参数N表示等式184的大括号内值的数目。在一个实施例中用户可以选择要进行模糊(即平滑)处理的象素位置。为了示例,参考图7选择了象素位置c、d、e和f来进行平滑处理,然而也可以选择比这更多或者更少的象素位置。另外,为了示例,根据5抽头滤波器讨论使用帧速率调制来解块的一般情况。因此,每个被选的象素使用n=5个象素来平均,而要插入的帧的数目被计算为N-1,在这里等于4。即除了原始帧以外还要插入4个附加帧。这4个附加帧是帧1172、帧2 174、帧4 178以及帧5 180。原始帧被表示为帧3 176。
仍然参考图7,帧1-5(172-180)的每个都具有与表示象素位置相关的象素值。与被选择进行平滑处理的象素位置相关的象素值被修正。因而,与象素位置c相关的象素值现在是A、B、C、D和E。因此,象素位置c与由5个不同象素值的平均组成的值相关。相似地,与象素位置d相关的象素值是B、C、D、E以及F。可见,象素位置E和F也具有已经修正了的象素值。当然,可以使用任何类型的平均,例如加权平均可以在特殊的象素值上放置更多的权重。应当清楚的是,通过以交替的方式显示帧1-5(172-180),边界112处的陡峭变化在视觉上被观察者感知为渐进的变化。在图7的图形182一维地显示了这种视觉上的平滑边界。因此,当N等于5时,对于象素位置c已低通滤波的值等于(A+B+C+D+E)/5。熟悉本领域的人将会明白这等价于在时域交替显示A、B、C、D以及E。同理也可以适用于象素位置d、e、f的已滤波的值。换而言之,如果和块1相关的象素值被视为0而与块2相关的象素值被视为1,那么与图形182的象素位置a和b的每一个相关的象素值是0。而与象素位置c相关的象素值是1除以5,等于0.2,即与块2的象素相关的象素值的20%,而与象素d相关的象素值是2除以5,等于40%。相似地,与象素位置e相关的象素值是60%,与象素位置f相关的象素值是80%。因而,在块边界112处觉察到的是一个比较平滑的变化,而不是从0到100%的陡峭变化。大体上以20%的变化步长从0增加到1。
图8是依照本发明的一个实施例,用于减少已解压缩图像的图像块之间的块人工产物的方法操作的流程图。该方法从选择象素位置集合的操作190开始。这些象素位置对应于最接近相邻图像块之间的边界的象素。这里,象素位置可以是在块边界任一侧的两个相邻象素位置,如参考图5所示。可替换地,象素位置可以是在块边界两侧的多个象素,如参考图6和7所讨论的例子。然后,该方法前进到操作192,确定要插入到显示图形中的附加帧的数目。在一个实施例中,当所有的滤波器系数都被相同的加权时,在显示面板中要插入的附加帧的数量等于滤波器系数的数目减1,即比滤波器的抽头数小1。
图8的方法然后前进到操作194,在该步骤对每个附加帧修正那些与最接近边界的每个象素相关的象素值。在一个实施例中,通过上述的帧速率调制对象素值进行操作。例如可以修正象素值,以便在最接近块边界的区域中提供渐变阶梯图形,如参考图6和7所描述的。在另一个实施例中,两个象素(其中每个象素处在块边界的相对侧)位置的象素值可以被互换,如参考图5所述。在又一实施例中,在已经确定来自第一块的译码象素的值和来自第二块的译码象素的值之间的差小于量化参数后,象素值被修正。该方法然后前进到操作196,以交替的模式显示原始帧和附加帧。因而,如参考图5所讨论的在附加帧被插入的地方,以交替的方式显示每个帧,通过为块边界处的象素值中的差提供更渐进的变化来减少块人工产物。即,在本实施例中,每隔一帧就激励边界象素,以便提供象素值50%的感知效果。应当明白此处所述的实施例可以适用于整个块边界。例如,当一个块与各侧的四个其它块接连时,此处所述的象素平均或象素互换可以适用于每一侧(即每个块边界)被选择的象素。
图9是依照本发明的一个实施例,具有图像解块电路的装置的简化原理图。装置200包括CPU202,它通过总线208和存储器204以及图像解块电路206通信。装置200在监视器210上显示图像。当然,监视器210可以是装置200中集成的部分也可以是独立的单元。当装置200是诸如蜂窝电话、网络手写板(web tablet)、个人数字助理等等的移动终端时,配置图像解块电路206,以便在最小化消耗功率的同时减少在监视器210上显示的图像的块效应。在一个实施例中,如以上参考图3-8所讨论的,解块电路206平滑了图像数据帧的图像块之间的边界。例如,解块电路206可以被配置通过交替显示图像数据的原始帧和图像数据的附加帧来平均最接近图像块之间边界的象素值,其中图像数据的附加帧已经改变了最接近图像块之间边界的象素值。即,以上讨论得帧速率调制通过解块电路206被执行,以便最小化被显示图像的块人工产物。熟悉本领域的人员将会明白,可以配置装置200以便使它连接在一个诸如硬盘、与网络连接的存储器等的存储装置上。可替换地,可配置装置200以便从诸如因特网的分布网络中下载图像数据。在另一个实施例中,该图像解块电路被放置在诸如主机总线适配卡的印刷电路板上。
上述本发明提供了一种用于最小化由于越过块边界的象素值变化而引起的块效应的方法和系统。在一个实施例中,位于块边界对立侧的象素的象素值被互换以便定义附加帧。该附加帧和原始帧一起交替显示以便平滑块人工产物。原始帧和附加帧的交替显示在此也被称为帧速率调制。帧速率调制提供一种减少了块人工产物的显示方式。在另一个实施例中,在块边界的每侧的一些象素位置被互换,以便定义一个或多个附加帧。在此,一个或多个附加帧和原始帧仍然被交替显示以便最小化任何块效应。然而,在块边界处被定义为真正的边缘的地方,不执行平滑算法。
在一个实施例中,真正的边缘根据来自第一块的已解码象素的值和来自第二块的解码象素的值之间的差值来确定,其中该差值和在编码阶段设定的量化参数比较。更具体地,在象素值的差值大于量化参数的地方,在块边界处出现真正的边缘,因此,在这种情形下不执行平滑算法。可以明白此处所述的实施例减少了图像块之间的块人工产物,而不会模糊真正的边缘也不会使用在空间域十分繁琐的低通滤波。因而对于使用嵌入式系统的移动媒体终端和装置来说,在此计算功率比译码信号的质量有更高的优先级,以上讨论的实施例为之提供了一个可接收的图像质量,它在节约功率的同时减少了块人工产物。
在考虑以上实施例的同时,应当明白本发明可以采用各种计算机实施的操作,也包括存储在计算机系统中的数据在内。这些操作包括需要物理数量的物理处理的操作。通常,尽管并非必要地,这些数量采取电或者磁信号的形式,能够被存储、转移、组合、比较以及其它的处理。而且,所执行的这些处理通常使用诸如生成、识别、确定或者比较等的术语来称呼。
本发明也可以在计算机可读媒体上作为计算机可读代码实现。该计算机可读的媒体是任何能够存储数据的数据存储装置,这些数据此后可以被计算机系统读出。一些计算机可读媒体的例子包括硬盘驱动器、与网络连接的存储器(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R、CD-RW、磁带以及其它的光学和非光学数据存储装置。该计算机可读媒体能够通过连接到计算机系统上的网络被分发,这样以分布的形式存储和执行该计算机可读代码。
尽管为了便于理解得清楚,已经详细描述了以上的发明,但是很明显可以在附加的权利要求范围内进行某些改动和修正。因此本实施例仅应当被认为是示例性的而非限制性的,并且本发明不受此处给出的细节的限制,而是可以在附属的权利要求的范围和等同要求中进行修正。