图像数据的基于测量且可扩展的去块滤波的制作方法

文档序号:7721951阅读:129来源:国知局
专利名称:图像数据的基于测量且可扩展的去块滤波的制作方法
技术领域
根据本发明的实施例通常涉及数据处理,特别是涉及视频解码和去块。
背景技术
视频包括一系列图片(或帧),且每帧由二维像素阵列组成。这些像素被分成块 (例如8X8像素阵列)。可以将视频进行编码(压縮)以减少总体比特率,以便可以将该 视频更有效地传输到另一个设备,在该另一个设备中可以对该视频进行解码(解压縮)、重 构和显示。 现今的视频和图像压縮技术包括有损处理,如数据块变换系数的感知量化。视频 帧中独立块的有损编码可以导致在解码和重构图像中在块边缘处存在称为块状假象的突 变,使渲染图像呈现相对块状的外观。 为了消除或者减少块状假象的外观,解码设备执行去块操作。在穿过块边界时应 用去块滤波器(例如,低通数字滤波器)以便使相邻块之间的过度平滑,因此改善了所显示 视频的感知质量。 然而,选择合适强度的去块滤波器可能是有问题的。如果所选的滤波器太弱,则可 能无法有效地减少块状假象的外观。另一方面,如果所选的滤波器太强,则会导致过多细节 的删除。 选择应用到去块滤波器的像素的数量也可能是有问题的。 一种极端情况是,如果 仅将滤波器应用到紧邻于块边界的像素,则可能无法有效地减少或者消除块状假象。另一 种极端情况是,如果将滤波器应用于块中的全部像素,则会不必要地修改某些像素值并且 可能丢失块中的细节。

发明内容
因此,选择一种在减少或消除块状假象的需要和保持细节满意水平的需要之间可 以达到可接受平衡的去块滤波器是重要的。能够确定应用到所选去块滤波器的像素的数量 以避免图像数据过滤波和图像细节等待损失也是重要的。 根据本发明的实施例,对于去块来说,对第一像素块中的像素值进行比较,且还将 该第一像素块中的像素值和与该第一像素块相邻的第二像素块中的像素值进行比较。基于 比较结果,可以选择数字去块滤波器和"所关注区域",其中所关注区域标识将所选的滤波 器应用到的第一像素块中像素的数量和第二像素块中的像素数量。 更具体地,在一个实施例中,计算针对第一像素块的第一值,并且计算针对第二像 素块的第二值,其中第二像素块与第一像素块相邻。在一个实施例中,第一值基于针对第一 像素块的"假象数"且还基于第一像素块内的"活动性"。假象数提供与第一像素块相关联 的块状假象数量的测量。活动性提供第一像素块内变化量的测量;更具体地,活动性提供从 诸如所选像素值的平均值或者加权平均值的中间值的所选像素值的偏差量的测量。在类似 的方式中,第二值基于针对第二像素块的假象数且还基于第二像素块内的活动性。在这样的实施例中,第一值和第二值均与第一像素块和第二像素块中的假象数成比例、且与活动 性成反比。 在一个实施例中,通过计算穿过第一和第二像素块之间边界的像素值中的差异且 将这些差异与两个阈值进行比较来确定假象数。两个阈值的使用提供了对假象视觉灵敏度 的更精确计算,这使得选择合适强度的去块滤波器变得容易。在一个这样的实施例中,用户 (例如电视观众)基于他们个人偏好选择至少其中一个阈值。 在一个实施例中,将前述的第一和第二值之一用作索引以从一组滤波器中选择数 字去块滤波器,其中随着索引值的增加,滤波器在强度上逐渐增加。在一个这样的实施例 中,将第一和第二值中的较小值用于选择去块滤波器。具有不同强度滤波器的滤波器组的 使用消除了与固定滤波和滤波判定之间硬切换相关联的缺陷。而且,依据使用于实施本发 明的图形处理器(GPU)的类型可以指定滤波器组中的滤波器数量。例如可以选择具有较少 分接头的较少滤波器以用于与低端或者基线GPU —起使用。通常,可以将滤波的总体复杂 性进行扩展以支持具有不同水平计算处理能力的不同实施例。 然后通过穿过第一和第二像素块之间的边界,可以将所选的去块滤波器应用到边 界一侧上的一定数量的像素和边界另一侧上的一定数量的像素,以便产生针对第一和第二 像素块的新像素值以使数据块边界的过度平滑。更具体地,将所选的去块滤波器应用于第 一像素块中第一数量的像素值和第二像素块中第二数量的像素值。在一个实施例中,像素 值的第一数量对应于前述第一值,且像素值的第二数量对应于前述第二值。因此,可以将第 一和第二值都用于选择去块滤波器和限定所关注区域。 总的来说,根据本发明的实施例,去块滤波器是自适应的(例如,对于由每数据块 的假象数和活动性测量的像素值的质量)、可扩展的(例如,对于图形卡的性能)和用户可 控的。根据本发明的实施例不仅很好地适合更广范围的处理能力,而且适合诸如低比特率 视频(例如,因特网视频)的增强视频质量和广泛的应用。 在阅读各种附图中示出的实施例的以下详细描述之后,本领域的普通技术人员应 该理解本发明的各种实施例的这些和其它的目标和优点。


结合附图和其中表示相似元件的相似附图标记,通过示例但不通过限制方式而说 明本发明。 图1是根据可以实施的根据本发明实施例解码器的系统示例的框图。 图2是示出了根据本发明一个实施例的解码和后处理流水线示例的元件的框图。 图3是根据本发明实施例的用于对图像数据进行去块的计算机实施方法的流程图。 图4示出了根据本发明实施例的图像帧中块阵列的示例。 图5示出了根据本发明实施例的用于计数块状假象的阈值。 图6A示出了根据本发明实施例的块中的一行像素的示例。 图6B示出了根据本发明实施例的像素值分布的示例。 图7示出了根据本发明实施例的所关注区域的示例。 图8是根据本发明实施例的用于处理图像数据的计算机实施方法示例的流程图。
具体实施例方式
现在将对根据本发明的实施例进行详细地描述,并结合附图示出其示例。虽然结 合这些实施例对本发明进行描述,但是应该理解的是它们不旨在将本发明限制在这些实施 例中。相反,本发明旨在覆盖由后附的权利要求限定的包括在本发明的精神和范围内的替 换、修改和等同内容。此外,在本发明实施例的以下详细的描述中,为了提供本发明的完全 的理解,提出更多具体的细节。然而,本领域中的任一普通技术人员应该理解的是,可以在 没有这些具体细节的情况下实施本发明。在其他实例中,为了不混淆本发明实施例的各个 方面,不对公知的方法、程序、部件和电路进行详细描述。 根据在计算机存储器中数字比特上的程序、步骤、逻辑模块、处理和操作的其它标 志性表示,介绍以下详细描述的某些部分。这些描述和表示是由数据处理领域的普通技术 人员使用的手段,以最有效地将它们工作的实质传达给本领域的其它技术人员。这里的程 序、计算机可执行的步骤、逻辑模块、处理等通常被认为是一系列前后一致的导致预期结果 的步骤或者指令。这些步骤是物理量的需求物理操控的步骤。通常,尽管不是必须地,但 这些量采用可以在计算机系统中存储、传送、组合、对比和其它可操控的电或者磁信号的形 式。主要出于常用的原因,已经多次证明了参考那些诸如位、值、元件、符号、字符、术语、数 字等的信号是方便的。 然而,应该记住的是,所有这些及相似的术语是与合适的物理量相关联的,并仅仅 是适用于这些量的方便的标记。除非下面的讨论中明显特别地做其他说明,可以理解的是 在贯穿本发明中,利用诸如"编码"、"解码"、"去块"、"接收"、"发送"、"使用"、"应用"、"计 算"、"增加"、"对比"、"选择"、"求和"、"加权"、"计算"、"存取"等的术语的讨论,指的是计算 机系统或类似的电子计算设备的动作和处理,其对在计算机系统的寄存器和存储器中以物 理(电子)量代表的数据进行操作并转换为在计算机系统的存储器或寄存器或其他这类信 息存储、传送或显示设备中以物理量相似地代表的其他数据。设备设备设备
图3和图8是根据本发明实施例的用于处理数据的计算机实施方法的示例的流程 图。虽然在流程图中公开了具体步骤,但这些步骤是示例性的。即,本发明的实施例非常适 合执行各种其它步骤或者流程图中阐述的步骤的变形。 可以将图3和图8的流程图实施为驻留在一些诸如由一个或者多个计算机或其它 设备执行的程序模块的计算机可用媒介形式上的计算机可执行指令。通常,程序模块包括 例序、程序、目标、组件、数据结构等,其执行特定的任务或者实施特定的抽象的数据类型。 可以根据各种实施例的需要,对程序模块的功能进行组合或者分配。 作为示例而非限制,计算机可用介质可以包括计算机存储介质和通信介质。计 算机存储介质包括在用于诸如计算机可读指令、数据结构、程序模块或者其它数据的信息 存储的任意方法或者技术中实施的易失的和非易失的、可移动的和非可移动的介质。计算 机存储介质包括,但不仅限于随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程 ROM(EEPROM)、闪存或者其它存储技术、压縮磁盘ROM (CD-ROM)、数字多功能磁盘(DVDs)或 者其它光存储器、卡式磁带、盒式磁带、磁盘存储器或者其它磁存储设备或者任意可以用于 存储需要信息的其它介质。 通信介质可以包括诸如载波或者其它传输机制的调制数据信号中的计算机可读指令、数据结构、程序模块或者其它数据,并且包括任意信息传送介质。术语"调制数据信号"意味着信号具有一个或者多个以这种方式设置或者改变的特征,以便将信息编码到该信号中。作为示例而非限制,通信介质包括诸如有线网络或者直线连接的有线介质,和诸如声波、射频(RF)、红外和其它无线介质的无线介质。以上的任意组合也应该包括在计算机可读介质的范围内。 在以下的讨论中,除非另有说明,"解码器"指的是执行解码和去块的元件(例如,单机或者外围设备,或者集成系统)。除非另有说明,"解码"指的是基本的解码操作(例如可变长度解码、逆量化、逆变换和运动补偿),而"去块"指的是对于解码结果应用去块滤波器。"块"指的是像素阵列(例如NxN阵列)。术语"像素"指的是二维屏幕空间中的位置,而术语"像素值"指的是与像素相关联的数据(例如亮度值、色度值等)的。
图1是可以在其上实施根据本发明的解码器的系统10的示例的框图。在图1的示例中,系统包括通过总线15耦合到图形处理器(GPU)12的主中央处理单元(CPU) 11。还可以将GPU表示为多媒体处理单元(MPU)。 CPU和GPU都耦合到存储器14。在图1的示例中,存储器是共享存储器,因此存储器存储用于CPU和GPU的指令和数据。可替换地,也可以有分别专门用于CPU和GPU的单独的存储器。存储器还可以包括用于存储驱动耦合的显示器(屏幕)13的像素数据的视频帧缓冲器。 系统10还包括用户接口 16,在一个实施例中,其包括屏幕上的光标控制设备。用户接口可以包括键盘、鼠标和/或触摸屏幕设备(触摸板)。 总的来说,系统10包括实施根据本发明实施例的功能的计算机系统平台的基本部件。可以将系统10实施为,例如,多种不同类型的计算机系统的任意一种(例如服务器、便携式电脑、台式电脑和笔记本电脑),以及诸如机顶盒或者数字电视,或者便携式或掌上电子设备(例如便携式电话、个人数字助手或者掌上游戏设备)的家庭娱乐系统(例如DVD播放器)。 图2示出了根据本发明一个实施例的解码器20的元件的框图。通常,该解码器接收已编码比特流21、对该比特流中的数据进行解码并产生可显示的图像数据24。
在一个实施例中,使用诸如也称为运动图像专家组-4(MPEG-4)部分10或者MPEG-4高级视频编码(AVC)的H. 264的压縮方案,将原始图像数据(例如视频数据)进行压縮(编码)。因此,产生一组编码参数,诸如但不仅限于帧类型(例如帧内编码的I帧、预测P帧或者双向预测B帧)、宏块预测模式(例如块间对块内)、变换(例如离散余弦变换)系数、纹理系数和运动向量信息。然后通过使用例如Huffman编码,将编码参数翻译成可变长度编码(VLC)。已编码比特流是包含VLC的串行化比特流。 解码器本质上是将编码过程逆向以重建图像数据。在图2的示例中,解码器包括解码流水线26,该解码流水线26包括解码级22和去块级23。 解码级执行诸如可变长度解码、逆量化、逆变换和运动补偿的基本的解码(解压縮)操作。通常,解码级分析已编码比特流以提取VLC,且随后翻译VLC以再现以上涉及的编码参数。将该编码参数反过来用于重建原始视频数据(更具体地,构建原始视频数据的版本)。 在去块级,当渲染(显示)重建的图像时,将数字去块滤波器应用于已解码数据块
8以使相邻数据块之间的边界平滑。在图2的示例中,去块级与解码级中执行的解码类型无关,且本身可以归类为循环外去块器。 图3是根据本发明的实施例提供了计算机可实施去块方法概括的流程图30。在步骤31中,还参考图4,访问针对第一块B0和针对第二块B1的已解码数据(像素值)。在一个实施例中,只将亮度平面用于将要描述的去块方法,以便减少计算的数量和复杂性。主观测试表明对于块状假象的感知,色度值不如亮度值重要,因此可将亮度值单独用于建立去块滤波的强度。然而,本发明不限于仅亮度值的使用。 在图3的步骤32中,确定针对每个块BO和Bl的"假象数"。总的来说,假象数是对与每个块相关联的块状假象数量的测量。结合图4的讨论提供附加信息。
在图3的步骤33中,确定针对每个块B0和B1的"活动性"。总的来说,活动性是对块内像素值中偏差的测量。结合图6A和6B的讨论提供附加信息。 在图3的步骤34中,将针对两个块的假象数和活动性一起用于从滤波器组中选择去块滤波器。更具体地,在一个实施例中,基于针对第一块的假象数和活动性,计算针对第一块的第一值N0,且类似地计算针对第二块的第二值N1。将N0和N1的值用于设置索引值N,该索引值N接着用于从滤波器组中选择去块滤波器。结合图7的讨论提供附加信息。
在图3的步骤35中,还将假象数和活动性用作对应用所选的去块滤波器的块BO和Bl中的像素值数量进行选择的基础。更具体地,在一个实施例中,将NO和Nl的值用于指定"所关注区域",所述"所关注区域"扩展穿过块B0和Bl的边界且定义了要应用所选的去块滤波器的像素的数量。结合图7的讨论提供附加信息。 在图3的步骤36中,穿过块BO和Bl之间的边界将所选的去块滤波器应用于所关注区域。即,将所选的去块滤波器应用于块BO中指定数量的像素值和块B1中指定数量的像素值,以在每个块中产生对应数量的新(修改的)像素值。结合图7的讨论提供附加信息。 在一个实施例中,将刚刚描述的方法应用于两个通道——水平通道和垂直通道——的图像帧中全部块的水平和垂直边界,其中在水平通道中处理垂直边界,在垂直通道中处理水平边界。连续地执行两个通道,在这种情况下存储第一通道的结果(已修改的像素值)并用作针对第二通道的输入。
假象数 现在参考图4,图像帧40包括块阵列,该块阵列包括块B0和Bl 。该帧40可以是一系列这种帧中的一个帧,如在视频中。 图4中仅示出了八(8)个块;在实际实践中,图像帧可以包括许多这种块。块BO和Bl互相相邻;S卩,块B0和Bl共享一个边缘或者边界41。除了块Bl之外,还有许多与块BO相邻的其它块;类似地,除了块BO之外,还有许多与块Bl相邻的其它块。
在图4的示例中,每个块包括8X8的像素阵列。然而,本发明不是如此限制的,且可以利用其它块尺寸。应该注意的是,出于此处讨论的目的,将块边界限定为落在像素之间。图4中没有示出全部像素;仅示出邻近块BO和Bl边界的像素。 如以上描述的,根据本发明的实施例,确定针对图像帧中每个块的假象数。总的来说,通过为穿过该块和相邻块(与所关注的块共享边缘的四个块)之间的边界的所选像素值(例如亮度值)之间差异设定阈值,确定针对块的假象数。穿过全部四个块的边界执行针对每个块的测量。存储每个块的假象数,且随后连同活动性测量一起用于选择去块滤波器和将应用滤波器的像素的数量。 更具体地,在一个实施例中,将相邻像素对的像素值相减,其中每对像素由块边界一侧的一个像素和块边界另一侧的紧邻的像素组成。使用块B0和B1作为示例,将针对像素P0的像素值和针对像素qO的像素值相减。类似地,将针对像素pi的像素值和针对像素ql的像素值相减,以此类推在围绕块BO的四条边缘中的每条边缘上实施相同的操作。艮P,块BO的假象数基于穿过块BO和块Bl之间的边界、块BO和块B2之间的边界、块BO和块B3之间的边界以及块BO和块B4之间的边界的像素值中的差异。 针对沿着块Bl四条边缘中每条边缘上的每个像素重复该处理,且最后针对帧中的每个数据块重复该处理。使用两个像素值之间差异的绝对值,以便差异总是正数。
因此,对于任意块BN : diff(BN, i) = I [p(i)的像素值]-[q(i)的像素值]| ; (1) 其中像素p(i)位于块BN的边缘且q(i)是穿过该块边缘但与像素p (i)紧邻的像素。角上的像素的像素值使用了两次,其中一次在水平通道中且一次在垂直通道中。因此在图4的示例中,i = 1,2, . . . ,32。 在一个实施例中,参考图5,然后将每个差异diff (BN,i)与第一阈值thrl和第二阈值thr2进行对比,其中第二阈值大于第一阈值。在一个这样的实施例中,第二阈值是第一阈值的恒定倍数thr2 = n衬hrl,其中n > 1。这样,如果增大第一阈值,则也增大第二阈值。由于第一阈值和第二阈值之间的关系,如果增大第一阈值,则第一和第二阈值之间的范围增大。 计数器与每个块相关联;例如,第一计数器与块BO相关联,且第二计数器与块Bl相关联。在图5的示例中,对于每个'i'值,如果diff(BN,i)的值大于或者等于第一阈值thrl,则将与块BN相关联的计数器递增(例如加l)。如果diff(BN,i)的值小于第一阈值thrl,则将与块BN相关联的计数器增加diff (BN, i)与thrl的比例。如果diff (BN, i)的值大于或者等于第二阈值thr2,则将与块BN相关联的计数器再次递增(例如加l)。如果diff(BN,i)的值小于第二阈值thr2,但是大于第一阈值thrl,则将与块BN相关联的计数器增加diff (BN, i)与thr2的比例。应该注意的是,在本实施例中,即使超过第二阈值thr2,计数器的值也不会增加超过两个增量。
因此,对于数据块BO,例如 假象数(B0,i) =min(l, [diff (B0, i)/thrl])+min(l, [diff (B0, i)/thr2]) ;(2)
假象数_B0 = E (假象数(B0, i)) ; (3) 其中假象数(B0,i)是针对每个diff (B0,i)的值增加的块BO的计数器值的数量,且假象数—B0是针对块B0的计数器的最终值。以该方式,针对块BO积累假象数,且以类似的方式,针对块B1和帧中的每个块积累假象数。 使用两个不同的阈值来更好地说明对块状假象的视觉灵敏度。例如,如果穿过块边界的像素值中的差异非常大,且如果围绕该块边界的区域具有相对低频的内容(低活动性),则假象将在视觉上更分散。在这种情况中,为了将假象减少到可接受的程度,使用具有增加长度(例如更多分接头)的强低通滤波器,来更好地处理边界处的块边缘。为了助于实现该目标,足够大以至于超过两个阈值的每个差异使添加到计数器值的增量加倍。如果
10活动性很低,这可以翻译成选择具有增大的低通滤波性能的强滤波器。 在一个实施例中,阈值在用户控制之下。即,用户可以指定例如第一阈值thrl ;因为第二阈值thr2是第一阈值的倍数,因此在某种意义上,第二阈值也是用户可控制的值。通过减小阈值thrl可以增大滤波器强度,反之亦然。因此,用户可以基于例如他的/她的个人偏好或者用户设备显示能力来帮助建立去块滤波的强度。因为循环外去块与解码无关,因此可以一方面针对更大屏幕尺寸或者更高分辨率显示器,另一方面针对更小屏幕尺寸或者更低分辨率显示器,对解码内容的相同示例进行滤波。 在一个实施例中,为用户呈现诸如滚动条的图形用户界面(GUI),其中用户可以在任意值(例如从0到100)范围内定位。这样,用户不必选择特定的去块滤波器,取而代之的是选择对应于满足用户的图像质量的设置,该设置接着被映射到将产生预期图像质量的去块滤波器。因此,GUI与滤波器组中的滤波器数量无关,有助于本发明扩展至不同类型的GPU。 淑力'隨i愤 图6A示出两个相邻的块B0和B1,以及块B0中的一行像素p0, pl, . . . , p7,图6B
示出那些像素的相对值的示例。虽然这些示例对每行8个像素进行描述,但本发明并不仅限于此。 如上所述,根据本发明的实施例,针对每个块确定活动性的测量。更具体地,在一个实施例中,针对每个块的每行和每个块的每列确定活动性的测量。 通常,根据所选像素值与来源于所选像素值的中间值之间的偏差的函数来确定活
动性。具体地,在一个实施例中,中间值是所选像素值的加权平均值。在一个这样的实施例
中,每个所选像素值和加权平均值之间的差异也是加权的。因此,在一个实施例中,根据所
选像素值与所选像素值的加权平均值之间的偏差的加权函数来确定活动性。 如上所述,通过使用两个通道,即水平通道和垂直通道,完成去块滤波。在水平通
道期间,处理像素的每行;即,以上涉及的所选像素值对应于一行像素。在垂直通道期间,处
理像素的每列;即以上涉及的所选像素值对应于一列像素。 在一个实施例中,按如下方式确定像素p0, pl, . . . , p7的加权平均值(丽)
丽=(wO*pO+wl*pl+. . . +w7*p7) >> 5 ; (4) 其中wO, wl, . . . , w7是选择为使得wO > wl > . . . w7且wO+wl+. . . +w7 = 32的权重值,且此处为了表达的简化,pO,pl,... ,p7表示像素值。通常,像素距离所关注的边界越近,加权因子就越大。因此,在图6A的示例中,因为像素p0更接近块BO和块B1之间的边界,因此就比其它像素的权重更大,以此类推。 在一个实施例中,按如下方式确定与像素p0, pl, . . . , p7相关联的活动性
活动性=a* (pO-丽)+b* (pl-丽)+c* (p2-丽)+d* (p3-丽)+e* (p4-丽)+f* (p5-丽)+g* (p6-丽)+h* (p7-丽);(5) 其中a, b, . . . , h是a > b > . . . > h的固定的权重值。类似于上述的,像素距离所关注的边界越近,加权因子就越大。在本实施例中,这些权重用来建议出随着像素距离块边界的Manhattan距离的增加,减小与加权平均值的偏差的相关性。
滤波器和所关注区域的选择 为了概括这一点,根据以上描述的实施例,针对每个块确定假象数,且针对每个数据块的每行和每列确定活动性。可以将该信息用于从存储在存储器中的滤波器组中选择去
块滤波器,并用于标识将所选滤波器应用于像素的数量(所关注区域)。 在一个实施例中,将每个数据块的假象数和每行或者每列的活动性用于确定针对
第一块(例如块B0)的每行和每列的第一值NO,以及针对第二块(例如块B1)的每行和每
列的第二值Nl。为了简化讨论,以下的描述是针对块B0的单一行和块Bl的对应行。 图7示出了块B0的行R0和块Bl的对应行Rl ;S卩,行R0和行Rl沿着相同的水平
线延伸。 按如下方式确定行R0的第一值N0 : N0 = exp (-[活动性_R0] / [假象数_B0]) ; (6) 其中活动性_R0表示与行R0有关的活动性,且假象数_B0表示针对块BO的假象
数。类似地,按如下方式确定第二值N1 : Nl = exp(-[活动性—Rl]/[假象数—B1]). (7) 应该注意的是NO和Nl值是与假象数成比例的。另一方面,NO和Nl值与通过块 边界的活动性成反比。 根据本发明的实施例,将NO和Nl值之一用于从一组预选滤波器组中选择去块滤 波器。在一个实施例中,将N0和N1值的较小值用于从滤波器组中选择去块滤波器。使用 NO和Nl的较小值有助于确保图像细节的连续呈现。S卩,通过使用NO和Nl的较小值,所选 滤波器比使用较大值会选择的滤波器更弱。因此,在本实施例中,图像细节的优先度要高于 消除块状假象。然而,如果认为假象消除更重要,则可以反之使用NO和Nl的较大值。
在一个实施例中,滤波器组包含七(7)个不同强度的滤波器。使用具有不同强度 滤波器的滤波器组消除了与固定滤波和滤波判定之间硬切换相关联的缺陷。
在一个实施例中,滤波器组包含以下的滤波器(H),其中索引N = O,l, . . . ,6。
表l-示例滤波器组 H[N]={00001280000}{000267626000}{00-5425442_500}{017334633710}{-2215303830152 --2}{88161632161688}{8161616161616168} 在以上的示例中,滤波器组中的滤波器这样排序,即随着索引N值的增大(将针对 更高的假象数时),滤波器的强度增大。表l中的滤波器系数是示例的。可以设计和使用具 有不同规格的不同滤波器。 如以上所记录的,NO和Nl值是与假象数成比例的。利用如以上描述的两个阈值 thrl和thr2,当通过块边界的像素值之间的差异相对较大时,假象数成倍增加。因此,如果 仅考虑假象数(即,忽略活动性),则较高的假象数将导致较高的NO和Nl值,这接着会导致 更有效地消除或者减少块状假象的较强低通滤波。另一方面,NO和Nl值与通过块边界的 活动性成反比。因此,如果仅考虑活动性(即,忽略假象数),则较高的活动性将导致较低的 NO和Nl值,这接着会导致有助于保存相邻于块边界的区域中细节的较弱低通滤波。
在一个实施例中,将所选的NO和Nl值(例如较小值)取整为最接近的整数且用作索引N以选择一个滤波器:N = min(N0,Nl)。例如,如果发现N0和N1分别是三(3)和四 (4),则N将是3且将以下的滤波器应用到所关注区域
H[3] = {0 1 7 33 46 33 7 1 0}。 NO和Nl值还用作限定所关注区域(将所选的滤波器应用到像素的数量)。通常, 将所选的滤波器应用到数据块BO中的NO个像素和数据块Bl中的Nl个像素。因此,在以 上的示例中,如图7中示出的,将滤波器H[3]应用于块BO中的3个像素和块B1中的4个 像素。注意所关注区域可以包括块边界任一侧上的不同数量的像素,因此为所关注区域带 来了相当大的灵活度。 根据本发明的实施例不仅限于滤波器组中的7个滤波器。可以将较少的滤波器包 括在滤波器组中以减小计算复杂性。还可以使用比以上列出的示例滤波器具有较少分接头 的滤波器。例如,或许可以选择具有较少分接头的较少滤波器以与低端或者基线GPU —起 使用。在这种方式中,可以扩展滤波的整体复杂性以支持根据GPU处理能力的不同GPU实 施例。 滤波器组还可以包括多于7个滤波器。在不使用同样数量N来选择滤波器和所关 注区域的实施例中,可以增加滤波器组中的滤波器数。例如,如本文前述的,可以将N0和Nl 值四舍五入到最接近的整数以限定所关注区域,但是可以将它们的实际值用于给包含多于 7个输入的滤波器组标索引。 应该注意的是,N0和Nl的计算值可以大于一行或一列中的像素数量,且滤波器组 中的滤波器数和N值也可以大于一行或者一列中的像素数量。在这个实施例中,为了确定 所关注区域的尺寸,可以将N0和N1值限制(例如扩展)为对应于一行或者一列中的像素 数量的值;且从滤波器组中选择滤波器可以使用非扩展值,或者如果需要,可以通过使用与 用于确定所关注区域尺寸的因子相同的或者不同的扩展因子,对这些值进行扩展。
图8是用于处理根据本发明实施例数据的计算机可实施方法示例的流程图80。在 步骤81中,计算针对第一像素块(块B0)的第一值(NO)和针对第二像素块(块B1)的第 二值(Nl)。第一值NO基于针对块B0的所选像素值和针对相邻于块BO且包括块Bl的块 的所选像素值之差异的测量。在一个实施例中,通过将相邻像素对的像素值相减来获得这 些差异,其中每个所述像素对与块BO中像素和相邻块中的相邻像素相关联(如以上的等式 (l))。在一个这样的实施例中,针对超过第一阈值(例如,阈值thrl)的这些差异中的每个 来递增与块BO相关联的计数器值,且针对超过第二阈值(例如,阈值thr2)的这些差异中 的每个再次递增与块BO相关联的计数器值。如果这些差异小于第一阈值或者落在第一和 第二阈值之间(如以上的等式(2)),则将计数器值增大相匹配的量。总的来说,第一值NO 基于针对块BO的假象数。 第一值NO还基于在针对块BO的像素值子集(例如行RO)中偏差的测量。在一个
实施例中,计算针对像素值子集(行RO)的加权平均值,然后确定该子集中每个像素值和该
加权平均值之间的差异。在一个这样的实施例中,还将像素值和加权平均值之间的差异进
行加权(如以上的等式(5))。总的来说,第一值NO还基于块BO中的活动性。 同样地,第二值N1基于针对块B1的假象数和块B1中的活动性。 在步骤82中,将第一和第二值(NO或者Nl)之一用作索引(N)以从滤波器组(例
如,表1)中选择数字去块滤波器(H)。
13
在步骤83中,将第一和第二值NO和Nl用于指定将所选的去块滤波器应用到多少 像素值(例如,在块BO的行RO中和块Bl的对应行中有多少像素)。即,将第一和第二值 NO和Nl用于限定所关注区域(如以上图7的示例中)。 在图8的步骤84中,将所选的去块滤波器应用于块BO中的像素值和块B1中的像 素值,以产生新像素值。即,将所选的去块滤波器应用于所关注区域以消除或者减少块状假象。 总之,根据本发明的实施例,选择在处理块状假象和保持细节满意程度之间达到 可接受平衡的去块滤波器。此外,可以合适地确定将所选的去块滤波器应用到像素的数量, 以避免图像细节的过度滤波。此外,根据本发明的去块滤波是自适应性的(例如,对于由每 个块的假象数和活动性测量的像素值的质量)、可扩展的(例如,对于图像卡的性能)、用户 可控制的且很好地适于很大范围内的视频质量和应用,诸如低比特率视频(例如,因特网 视频)的提高。 出于说明和描述的目的,已经介绍了本发明具体实施例的前述描述。它们不旨在 穷举或者将该发明限制于之前公开的形式、和根据以上指导的多种可能的修改和变形。选 择和描述实施例以便最好地解释本发明的原理及其实际应用,因此使本领域的其它技术人 员能够最好地使用该发明和适于预期特定使用的具有各种修改的各种实施例。应该理解的 是,通过后附的权利要求和它们的等同内容来限定本发明的范围。
1权利要求
一种具有用于执行对图像数据去块的方法的计算机执行指令的计算机可读媒介,所述方法包括对第一像素块中的像素值进行比较,且还对所述第一像素块中的像素值与和该第一像素块相邻的第二像素块中的像素值进行比较;基于所述的比较结果,从多个滤波器中选择数字去块滤波器,且还选择将要应用所述去块滤波器的所关注区域,所述所关注区域包括所述第一像素块中第一数量的像素和所述第二像素块中第二数量的像素;以及将所述去块滤波器应用到所述所关注区域以产生针对所述第一和第二像素块的新像素值。
2. 根据权利要求1所述的计算机可读媒介,其中所述方法进一步包括 计算针对所述第一像素块的第一值和针对所述第二像素块的第二值,其中所述第一值基于针对所述第一像素块的所选像素值和针对相邻于所述第一像素块且包括所述第二像 素块的第一多个像素块的所选像素值之间差异的测量,所述第一值还基于针对所述第一像 素块的第一多个像素值中偏差的测量,其中所述第二值还基于针对所述第二像素块的所选 像素值和针对相邻于所述第二像素块且包括所述第一像素块的第二多个像素块的所选像 素值之间差异的测量,所述第二值还基于针对所述第二像素块的第二多个像素值中偏差的 测量;以及将所述第一和第二值之一用作索引以从多个滤波器中选择所述去块滤波器。
3. 根据权利要求2所述的计算机可读媒介,其中所述方法进一步包括 通过将第一对相邻像素的像素值相减,计算所述第一像素块中的所述所选的像素值和所述第一多个像素块中的所述所选的像素值之间的所述差异,所述第一对相邻像素的每一 个与所述第一像素块中的像素及所述第一多个像素块中的像素相关联;以及通过将第二对相邻像素的像素值相减,计算所述第二像素块中的所述所选的像素值和 所述第二多个像素块中的所述所选的像素值之间的所述差异,所述第二对相邻像素的每一 个与所述第二像素块中的像素及所述第二多个像素块中的像素相关联。
4. 根据权利要求2所述的计算机可读媒介,其中所述方法还包括针对超过第一阈值的所述第一像素块的所述所选的像素值和针对所述第一多个像素 块的所述所选的像素值之间的所述每个差异,递增第一计数器值,且针对超过第一阈值和 第二阈值的所述第一像素块的所述所选的像素值和针对所述第一多个像素块的所述所选 的像素值之间的所述每个差异,再次递增所述第一计数器值,其中所述第一值基于所述第 一计数器值;以及针对超过所述第一阈值的所述第二像素块的所述所选的像素值和针对所述第二多个 像素块的所述所选的像素值之间的所述每个差异,递增第二计数器值,且针对超过所述第 一阈值和所述第二阈值的所述第二像素块的所述所选的像素值和针对所述第二多个像素 块的所述所选的像素值之间的所述每个差异,递增所述第二计数器值,其中所述第二值基 于所述第二计数器值。
5. 根据权利要求2所述的计算机可读媒介,其中所述方法进一步包括 计算针对所述第一多个像素值的第一加权平均值; 计算针对所述第二多个像素值的第二加权平均值;对所述第一多个像素值和所述第一加权平均值之间的差异进行求和,以确定所述第一 多个像素值中的所述偏差;以及对所述第二多个像素值和所述第二加权平均值之间的差异进行求和,以确定所述第二 多个像素值中的所述偏差。
6. 根据权利要求2所述的计算机可读媒介,其中所述第一值与针对所述第一像素块的 所述所选的像素值和针对所述第一多个像素块的所述所选的像素值之间的所述差异成比 例,且与所述第一多个像素值中的所述偏差成反比,其中进一步地所述第二值与针对所述 第二像素块的所述所选的像素值和针对所述第二多个像素块的所述所选的像素值之间的 所述差异成比例,且与所述第二多个像素值中的所述偏差成反比。
7. 根据权利要求2所述的计算机可读媒介,其中将所述第一和第二值中的较小值用作 所述索引以选择所述去块滤波器。
8. —种将图像像素去块的计算机可实施方法,所述方法包括基于针对图像数据的第一块中的第一多个像素的像素值和针对图像数据的第一组其 它块中的第二多个像素的像素值之间的差异来计算第一度量,其中所述第一块和所述第一 组其它块具有公共的边缘,其中进一步地所述第一多个像素和所述第二多个像素邻近所述 边缘;基于针对所述第一块中的第三多个像素的像素值和由所述第三多个像素的所述像素 值导出的中间值之间的差异来计算第二度量;计算针对所述第一块的第一值,其中所述第一值是所述第一度量和所述第二度量的函 数;以及将去块滤波器应用于针对所述第三多个像素的第一数量的像素值,以产生新像素值, 其中所述第一数量基于所述第一值。
9. 根据权利要求8所述的方法,进一步包括基于针对第二块中第四多个像素的像素值和针对第二组其它块的第五多个像素的像 素值之间的差异来计算第三度量,其中所述第二块和所述第二组其它块具有公共的边缘, 其中进一步地所述第四多个像素和所述第五多个像素邻近所述边缘;基于针对所述第二块中的第六多个像素的像素值和从针对所述第六多个像素的所述 像素值导出的中间值之间的差异来计算第四度量;计算针对所述第二块的第二值,其中所述第二值是所述第三度量和所述第四度量的函数;通过利用所述第一和第二值之一将所述多个滤波器标索引,从多个滤波器选择所述去 块滤波器;以及将所述去块滤波器应用于所述第六多个像素中的第二数量的像素值,以产生新像素 值,其中所述第二数量基于所述第二值。
10. 根据权利要求8所述的方法,进一步包括将针对所述第一多个像素的所述像素值和针对所述第二多个像素的所述像素值之间 的所述每个差异与两个阈值进行比较;以及如果超过一个阈值则递增计数器值一次,且如果超过全部两个阈值则递增计数器值两 次,其中所述第一度量对应于所述计数器值。
11. 根据权利要求8所述的方法,其中计算所述第二度量包括 计算针对所述第三多个像素的所述像素值的加权平均值; 计算针对所述第三多个像素的所述像素值和所述加权平均值之间的偏差; 对基于所述第三多个像素和所述第一块边缘之间的距离的所述偏差进行加权,以产生加权偏差;以及对所述加权偏差进行求和,其中所述第二度量对应于所述加权偏差的和。
12. 根据权利要求8所述的方法,其中所述第一值与所述第一度量成比例,且与所述第 二度量成反比。
13. —种用于将图像像素进行解码和去块的系统,所述系统包括 可操作用于存储已解码图像像素的计算机可读存储器,其包括包括具有第一像素值的像素的第一块,和与所述第一块相邻且包括具有第二像素值的 像素的第二块;以及耦合到所述存储器的去块器,所述去快器可操作用于从多个去块滤波器中选择数字去块滤波器,且用于将所述去块滤波器应用到第一数量的所述第一像素值和第二数量的所述第二像素值,其中所述第一数量基于针对所述第一块的所选的像素值和针对包括所述第二块的第一多个像素块的所选的像素值之间的差异,所述第一数量还基于所述第一像素值中 的偏差,其中进一步地所述第二数量基于针对所述第二块的所选的像素值和针对包括所述第一块的第二多个像素块的所选的像素值之间的差异,所述第二数量还基于所述第二像素 值中的偏差;且其中通过利用所述第一和第二数量之一对所述多个滤波器标索引而选择所 述去块滤波器。
14. 根据权利要求13所述的系统,其中所述去块器进一步可操作用于将针对所述第一 块的所述所选的像素值和针对所述第一多个块的所述所选的像素值之间的每个所述差异 与第一阈值和第二阈值进行比较,且用于据此递增第一计数器值,其中所述第一数量是所 述第一计数器值的函数,其中进一步地所述去块器还可操作用于将针对所述第二块的所述 所选的像素值和针对所述第二多个块的所述所选的像素值之间的每个所述差异与所述第 一阈值和所述第二阈值进行比较,且用于据此递增第二计数器值,其中所述第二数量是所 述第二计数器值的函数。
15. 根据权利要求13所述的系统,其中所述去块器还可操作用于计算针对所述第一像 素值的第一加权平均值,且然后将所述第一像素值和所述第一加权平均值之间的差异进行 求和,以确定所述第一像素值中的所述偏差,其中所述去块器还可操作用于计算针对所述 第二像素值的第二加权平均值,然后将所述第二像素值和所述第二加权平均值之间的差异 进行求和,以确定所述第二像素值中的所述偏差。
全文摘要
在去块操作中,对第一像素块中的像素值进行比较,并且还将第一像素块中的像素值与相邻于该第一像素块的第二像素块中的像素值进行比较。基于比较结果,可以选择数字去块滤波器和所关注区域,其中所关注区域标识要被应用的所选的滤波器的第一像素块中的多个像素和第二像素块中的多个像素。
文档编号H04N7/26GK101754015SQ20091025024
公开日2010年6月23日 申请日期2009年12月10日 优先权日2008年12月10日
发明者罗谢尔·佩雷拉, 萨塔路·杜塔 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1