去块滤波方法

文档序号:7548178阅读:460来源:国知局
专利名称:去块滤波方法
去块滤波方法本发明涉及一种依照在宏块中保存图像信息的编码标准来对以彼此水平相邻的方式排列在宏块行中以及以彼此垂直相邻的方式排列在宏块列中的宏块执行去块滤波的方法,其中每ー个宏块是由以彼此水平相邻的方式排列在块行m中以及以彼此垂直相邻的方式排列在块列η中的块形成的,并且所述块形成了矩阵M的块元素Mmn,其中m=f 4以及η=Γ4,以及其中所述块具有垂直边缘和水平边缘,并且以块元素Mll为开始来对宏块中的块的垂直边缘和水平边缘进行滤波。本发明还涉及ー种可以执行此类方法的去块滤波器,以及ー种具有用于执行此类方法的滤波算法的计算机程序。在很多应用中使用了标准化的方法来编码图像信息。例如,依照H. 264标准的视频压缩方法被用于
-高分辨率电视,例如将视频数据保存在高清数字多用途碟片(HD DVD)和蓝光碟上的高清电视(HDTV), -移动终端,例如可以回放视频的移动电话、个人数字助理(PDA)、便携游戏机和MP3播放器,
-多媒体
-视频会议技木,以及 -摄像机和数码相机。在视频压缩中,视频数据在发射机中被编码,以编码形式传送至接收机,并且在接收机中被解码。由此,所用标准也被称为编解码器,它是英文单词“编码”和“解码”的组合体。在H. 264标准及其前任标准H. 263中,名为帧的单个视频图像被拆分成块并被逐块编码,由此,在所有这两个标准中,在每ー种情况下都会在编码回路中使用去块滤波器。其他视频压缩标准具有在后期处理阶段对编码帧执行滤波的去块滤波器。去块滤波器被用于提高感知图像质量,由此可以通过对块中保存的每个帧的图像点执行滤波来平滑可能在相邻的块之间形成且被称为块赝像的相邻块之间的光学可感知变换。在下文中,“滤波”指的是“去块滤波”。“对块进行滤波”指的是“对保存在块中的名为像素的图像点进行滤波”。对存在于多个行与列中且水平和垂直相邻的块来说,这些块可被想象成是笛卡儿坐标系统中的棋盘排列区域。根据H. 264标准,对处于笛卡儿坐标系统中的位置(x/y)的块的滤波依赖于那些处于笛卡儿坐标系统中的位置(χ-1/y)和(χ/y-l)的块的已滤波像素。如果依照H. 264标准来编码图像信息,那么这些块将被合并以形成宏块,其中每ー个宏块是由以彼此水平相邻的方式排列在块行中以及以彼此垂直相邻的方式排列在块列中的块形成的,并且在每ー个情况中都具有四个块。“对宏块进行滤波”指的是“对保存在宏块中的块的像素进行滤波”。滤波是借助名为算法的一系列计算步骤执行的,其中这些计算步骤通常是在计算机上的滤波程序的上下文中进行的。为了执行这些计算步骤,通常可以使用具有计算核心的处理器,或者可以仅仅使用核心。当前,处理器趋向于具有多个核心,此类处理器也被称为“多核处理器”或“多核系統”。此外,目前甚至还在开发同样被称为“多核处理器”或“多核系统”的具有多个核心的处理器架构,并且Intel公司的“Terascale”项目或“Larrabee”项目可以证明这一点。图形处理器被称为“图形处理器单元(GPU)”,以来自NVidia公司的图形处理器为例,此类图形处理器现今甚至也具有多核处理器,由于其计算能力很高且编程简单,因此,这种处理器正被越来越多地用于高性能的计算应用。为了充分使用可用的计算能力,具有若干或众多核心的处理器需要可并行化的算法。在并行化算法中,一个计算步骤不依赖于于前一个计算步骤的结果。如果计算步骤依赖于先前计算步骤的结果,那么必须以串联方式、也就是以连续的方式来执行这些计算步骤,并且这些步骤不能以彼此并行的方式进行。在多核处理器中实施H. 264标准的问题领域在于由于位置(x/y)的块的滤波与处于位置(x-1/y)和(χ/y-l)的块的已滤波 像素的依赖关系而没有提供与别的宏块无关的宏块滤波的去块滤波器。一种顾及了之前部分描述的数据依赖性的用于局部并行化滤波计算步骤的已知方法包括将处于笛卡尔坐标系统图像中的多个块合并到对角线中。这些由块形成的对角线会被以串联的方式连续滤波,从而以彼此并行的方式来对处于对角线内部的块进行滤波。然而,在使用NVidia公司的GPU来对块的对角线进行滤波的过程中,以下缺陷将会出现
I.建立滤波程序实现模型的算法也被称为“内核”。由于必须将广泛满足对角线内部的块的并行滤波需求的内核算法传送至包含GPU的图形卡,并且必须在计算步骤开始之前依照内核算法来配置GPU的计算核心,因此,对GPU进行初始化以便运行用于对对角线内部的块进行并行滤波的滤波程序的时间成本将会很高,该时间成本也被称为启动开销。2.并行执行的“内核”算法不能相互同步,或者只能在延迟很大的情况下被同步,该延迟也被称为等待时间。3.块对角线的长度往往不足以充分使用GPU的所有计算核心,在这种情况下,一些GPU的计算能力并未得到使用。用于并行化滤波计算步骤的另一个选项包括在不考虑依照H. 264标准的滤波过程中出现的数据依赖性的情况下对宏块进行滤波,由此,发明人将这种滤波描述成是一种朴素滤波方法。已被滤波的视频帧将会用于预测跟随在已滤波的帧之后的视频帧。如果没有对宏块滤波所需要的与所述宏块邻接的宏块进行滤波,那么在这个滤波结果与依照标准的滤波结果之间将会出现差异。这些差异将会导致朴素滤波方法的滤波结果与依照标准的滤波结果之间出现像素差异,据此,这些像素差异也被描述成是漂移效应,与依照标准的滤波的图像质量相比,此类效应对解码视频帧的图像质量明显产生了不利影响。本发明的目的是提供一种避免现有技术中的缺陷的去块滤波方法。特别地,所提供的是一种可以使用具有若干计算核心的处理器的计算能力并产生很高图像质量的去块滤波方法。根据本发明,提供了一种依照在宏块中保存图像信息的编码标准来对以彼此水平相邻的方式排列在宏块行中以及以彼此垂直相邻的方式排列在宏块列中的宏块执行去块滤波的方法,其中每一个宏块是由以彼此水平相邻的方式排列在块行m中以及以彼此垂直相邻的方式排列在块列η中的块形成的,所述块形成了第一矩阵M的块元素Μ_ ι =Γ4且n=f 4,其中所述块具有形成块的外部边界的垂直边缘和水平边缘,并且宏块中的块的垂直边缘和水平边缘是以块元素M11为开始而被滤波的,包含待滤波的第一宏块中的块的上下文区域将被规定,其中所述区域包含了那些以彼此水平相邻的方式排列在块行O中以及以彼此垂直相邻的方式排列在块列P中的块,所述块形成了第二矩阵K的块元素Ktjp, ο=Γ7且P=I 7,其中块元素Kre,r=3 6 且s=3 6对应于第一矩阵M的块元素M_ m=l 4且η=Γ40就去块滤波而言,形成上下文区域的块是未被滤波的。然后,以第二矩阵K的块元素Kll为开始并且依照用于图像信息的编码标准来对上下文区域中的块的垂直边缘和水平边缘进行滤波。在待滤波宏块的旁边,所述上下文区域包含了围绕待滤波宏块的仅仅ー个边界,由此包含了两个单行和两个双行的块行。除了上下文区域中的总共49个块之外,在这里不会为了对具有16个块的待滤波宏块进行滤波而对其他的块执行滤波。在用于宏块滤波的上下文区域中的宏块数量很少的情况下,可以采用相互独立的方式来对不同宏块执行滤波,从而将不同宏块的滤波计算步骤并行化。由此,具有多个计算核心的处理器的计算能力可以得到广泛和完全的使用。在上下文区域内部,所述块是依照标准规定的数据依赖性来滤波的。由于围绕待滤波宏块的数量足够多的33个块以及围绕待滤波宏块的块的排列,可以确保源自上下文区域滤波的滤波结果具有很高的宏块图像质量。在本发明的优选实施例中,用于图像信息的编码标准是H. 264标准。如果将该标准用于滤波,那么关于测试序列的量度产生+/-1的像素差异的概率小于2Χ10_6,这与用于 朴素滤波方法的大约3X 10_3的值形成了对比。与朴素滤波方法相比,在使用H. 264标准的情况下,在大小方面,发生大于I的像素差异的概率要小于IX 10Λ对很多应用来说,这些像素差异所导致的漂移效应是小到可以忽略的。除了 H. 264标准之外,其他标准同样是可行的。优选地,每ー个块均由待滤波像素形成,并且在每ー种情况中,所述像素均以相互水平的方式排列在像素行中,以及以相互垂直的方式排列在像素列中。包含4X4像素的块对应的是H. 264标准。理论上,在ー个块中可以保存不同数量的像素。在本发明的另ー个实施例中,上下文区域中不与第一宏块中的块的像素相对应的块的像素是在所述第一宏块的块的像素之前按时间顺序滤波的。这样ー来,滤波可以以预先滤波上下文区域中不与待滤波宏块中的块相对应的块为开始。非常有利的是,第一宏块中的块的像素现在是用上下文区域中那些不与第一宏块中的块的像素相对应的已滤波块的像素滤波的。这些已被预先滤波的块的像素可以作为输入像素使用,以便对待滤波宏块进行滤波。由于上下文区域之外的块的其他像素未被用于对那些已被预先滤波的像素进行滤波,因此,所述已被预先滤波的像素本身是依照标准化的方法并且结合部分未滤波的输入像素而被滤波的。如果使用这些仅仅依照标准而被近似或大概滤波的像素,那么有可能会产生漂移效应,对于已滤波宏块的像素来说,与依照朴素滤波方法滤波的宏块以外的未滤波像素所实现的漂移效应相比,这种漂移效应要低出若干个数量级。依照去块滤波強度,可以使用比上下文区域中不与第一宏块中的块的像素相对应的块的像素更少的像素来对第一宏块的块的像素进行滤波。这样则可以在不对图像质量产生任何不利影响的情况下减少计算量。非常优选的是,联合滤波的相邻宏块将会形成一个宏块区域,其中宏块或宏块区域的滤波是在与别的宏块或别的宏块区域无关的情况下进行的。举个例子,四个或更多的相邻宏块可被联合滤波。由于宏块彼此相邻,因此,包含了每ー个待滤波宏块的上下文块将会重叠。由于只对上下文块的重叠区域执行一次滤波,因此,与在每一次具有待滤波宏块的情况中都对上下文块进行完全滤波的情形相比,计算能力方面的工作将会减少。例如,除了待滤波宏块的64个块之外,将四个一起滤波的宏块排列在两行和两列中的上下文区域还包含了采用围绕宏块的边界的形式的另外89个待滤波的块。如果以相互独立的方式来对这四个宏块进行滤波,那么除了待滤波宏块的64个块之外,所述上下文区域还包括33个块,其中每一个块都被当作围绕特定宏块的边界,由此所述区域总共包括132个块。相应地,如果对四个宏块执行联合滤波,那么上下文区域将会包含43个块,其数量要少于对四个宏块执行独立滤波的情形。相对较少的这43个块不但不需要被滤波,而且还不需要从主存储器转移至静态随机存取存储器(SRAM)中进行滤波。为了以最佳方式使用所用处理器的可用计算能力而需要联合滤波的宏块的数量取决于可用计算核心的数量以及可用于滤波的SRAM存储器的大小。在本发明的另一个实施例中,不同宏块和/或宏块区域的滤波是以相互并行的方式同时进行的。这样一来,具有若干个计算核心的现代处理器的计算潜能将会得到充分使用。如果在具有不同计算核心的处理器上执行若干个宏块或宏块区域的并行滤波,那么可 以以高达I万亿次计算/秒的高计算速率来执行所述滤波。如果使用适当的处理器,那么大小为2、3或η万亿次计算/秒的高计算速率也是可能的,其中η是整数。以万亿次计算/秒为单位的可能计算速率并不是滤波算法的直接属性,而是所用处理器的直接属性。然而,与朴素滤波方法相比,依照本发明的滤波方法可以实现所用处理器的更高使用等级,其中所述更高使用等级将会导致产生以万亿次计算/秒为单位的计算速率。根据本发明,还提供了一种依照在宏块中保存图像信息的编码标准来对以彼此水平相邻的方式排列在宏块行中以及以彼此垂直相邻的方式排列在宏块列中的宏块执行滤波的去块滤波器,其中每一个宏块是由以彼此水平相邻的方式排列在块行m中以及以彼此垂直相邻的方式排列在块列η中的块形成的,并且所述块形成了矩阵M的块元素11_ ι =Γ4且n=f 4,其中所述块具有形成块的外部边界的垂直边缘和水平边缘,并且在所有情况下,宏块中的块的垂直边缘和水平边缘会以块元素M11为滤波起点而被滤波。所述去块滤波器包括一个用于确定包含了待滤波的第一宏块中的块的上下文区域的分析单元,其中所述上下文区域由那些以彼此水平相邻的方式排列在块行ο中以及以彼此垂直的方式排列在块列P中的块形成,并且所述块形成了第二矩阵K的块元素Ktjp,其中0=广7且p=f7,其中块元素Κ , r=3 6且s=3 6对应的是第一矩阵M的块元素Mmn, m=l 4且n=l 4。此外,所述去块滤波器还包括一个依照图像信息的编码标准并以第二矩阵K的块元素K11为滤波起点来对上下文区域中的块的水平边缘和垂直边缘进行滤波的滤波单元。在一个有利的实施例中,所述滤波器包括具有不同计算核心的处理器。在具有若干个计算核心的情况下,依照上述实施例的滤波步骤可以采用彼此并行的方式进行。非常有利的是,该滤波器包括主存储器和静态随机存取存储器。主存储器和静态随机存取存储器可被部署在计算机中部署的图形卡上。作为替换或补充,别的随机存取存储器、别的主存储器或是别的电子元件也是可以存在的。例如,主存储器和随机存取存储器中的每一个可被指定给不同的计算核心。在其他实施例中,在滤波器中可以采用相互并行的方式来同时对包含了可以联合滤波的宏块的不同宏块和/或不同宏块区域进行滤波。这样一来,与串行滤波的滤波器相比,宏块滤波所需要的计算时间可被減少。此外,在这里还提供了ー种具有用于执行根据本发明的方法的滤波算法的计算机程序。滤波算法是ー种用于滤波的算法。所述滤波算法是借助包含了滤波算法的计算机程序执行的。以下将会借助附图来说明本发明的其他实施例和益处。为了更加清楚,图中的表示并不是依照规定比例或者成比例的。除非另作说明,否则相同的參考符号在图中表示的是具有相同意义的相同组件。如下所示
图I是相邻宏块的排列,其中每ー个宏块是由块形成的,所述块以彼此水平相邻的方式排列在块行中,并且以彼此垂直相邻的方式排列在块列中,且在每一种情况中都具有四个块;
图2是用像素形成的块,其中所述像素以彼此水平相邻的方式排列在像素行中,并且以彼此垂直相邻的方式排列在像素列中,且在每一种情况中都具有四个像素;以及
图3是根据本发明实施例的一个示例的用于对宏块执行滤波的上下文区域,其中除了 待滤波的宏块之外,所述上下文区域还包括围绕宏块的块边界。现在将以视频压缩标准H. 264为例来对本发明进行说明。就此而论,图I显示了ー个具有九个宏块M1-M9的排列,其中作为编码帧的摘录,所述宏块在三个宏块行上彼此水平相邻,并且在三个宏块列上彼此垂直相邻。宏块Ml被宏块M2、M3、M4、M5、M6、M7、M8以及M9围绕(以下用缩写形式M2-M9表不),与姆ー个宏块ー样,所述宏块是由以彼此水平相邻的方式排列在块行m中以及以彼此垂直相邻的方式排列在块列η中的块B形成的,其中所述块B形成了第一矩阵M的块元素M_ m=f4且n=f4。在这里显示了用于宏块Ml的块元素Mmn,并且在图I的第一块行m=l以及第ー块列n=l的范围中部分显示了用于宏块M2的块元素。不同的块被指定给了具有相同标示但却处于不同宏块M1、M2的块元素。在每个范例中,宏块M1-M9都具有由粗体显示的水平和垂直边缘形成的外部边界。例如,宏块Ml具有对宏块M3与宏块Ml进行划界的水平边缘41。此外,宏块Ml具有对宏块Ml与宏块M8进行划界的水平边缘42。宏块Ml具有对宏块Ml与宏块M5进行划界的垂直边缘43,以及对宏块Ml与宏块M6进行划界的垂直边缘44。与宏块M1-M9 —祥,形成宏块M1-M9的矩阵M中的块元素Μ_ πι=Γ4且η=1 4的块B彼此同样是通过边缘划界的。例如,具有块元素M11的块是通过水平边缘18来与宏块M2的邻接块划界的,其中所述水平边缘形成了宏块Ml的水平边缘41的一部分。此外,具有块元素M11的块是通过水平边缘19来与具有块元素M21的块划界的。具有块元素M11的块还具有作为垂直边缘43的一部分且将其与宏块M5中的邻接块划界的垂直边缘14,以及将其与具有块元素M12的块划界的垂直边缘15。由此,块B的块边缘形成了ー个模糊打印的线状网格,所述网格被粗体打印的宏块M1-M9的边缘部分覆盖,由此形成了重叠网格。如图2所示并且以具有块元素mn的块为例,依照H. 264标准,每ー个块B均由像素P形成,其中所述像素以彼此水平相邻的方式排列在行u中,并且以彼此垂直的方式排列在像素列V中,且其在每ー种情况中都具有四个像素。每ー个块包括4X4个像素,其中每ー个由4X4的块组成的宏块都包含16X16个像素。垂直边缘14、15以及水平边缘18、19对P以及诸如具有块元素M12、M21的块之类的相邻块的像素进行划界。由此,每ー个块和每一个宏块的边缘会将单个像素P相互划界,其中一个边缘区域包含了排列在一个边缘上的所有像素P。由此,边缘18的边缘区域中都是像素行u的像素P以及与像素行u的像素P邻接的块B的像素P,所述像素行则紧挨着具有块元素M11的块B的边缘18。与像素行u相t匕,来自与边缘18方向垂直的像素行且远离像素行u的像素同样可以处于边缘18的边缘区域中。通过用去块滤波器来对边缘区域——也就是排列在边缘上的多个像素P——执行平滑处理,可以提高感知图像质量,理论上,所述边缘区域是用邻接的块B之间的变换的光学感知度引导的。可以感知的邻接块B之间的光学变换越是清晰,则应该在待滤波边缘区域中包含越多的像素。包含在边缘区域中的像素的数量会随着去块滤波的强度而增长。块中的所有像素可被用于平滑边缘区域。然而,对排列在由去块滤波器执行平滑处理以提高感知图像质量的边缘区域上的像素P来说,对其数量所做的选择是由所用视频压缩方法引导的,例如H. 264标准。图3显示的是用于对宏块Ml执行滤波的上下文区域K1,其中除了待滤波宏块Ml之外,所述区域还包括围绕该宏块的边界,并且所述边界包括33个块。所述上下文区域Kl由那些以彼此水平相邻的方式排列在块行ο中以及以彼此垂直的方式排列在块列P中的块 形成,并且所述块形成了第二矩阵K的块元素Ktjp,其中0=广7且p=f 7,并且其中块元素K ,r=3飞且s=3飞对应的是第一矩阵M的块元素M_ m=l 4且η=1 4。上下文区域Kl具有水平边缘51、52以及垂直边缘53、54,其中每一个边缘均由七个块形成。如图2中针对具有块元素K77的块显示的那样,每个块都包含了 4X4个像素。例如,具有块元素k33的块对应的是具有块元素M11的块,具有块元素K66的块对应的是具有块元素M44的块。换句话说,上下文区域Kl是通过围绕宏块Ml延伸来自具有块元素K11、K12、K13、Κ14、Κ15、Κ16、Κ17、Κ21、Κ22、Κ23、Κ24、Κ25、Κ26、Κ27、Κ31、Κ32、Κ37、Κ41、Κ42、Κ47、Κ51、Κ52、Κ57、Κ61、Κ62、Κ67、Κ71、Κ72、Κ73、Κ74、Κ75、Κ76 以及 Κ77 的块的边界形成的。未被滤波的重建图像的图像数据将被用作这些块的图像数据。所述未被滤波的重建图像的图像数据可以从用于未被滤波的图像材料的图像存储器中获取。由此,在每一个范例中,除了宏块Ml的块B的像素P之外,在上下文区域中还会包含沿着宏块Ml的水平边缘41以及沿着宏块Ml的垂直边缘43的像素P的邻接行。此外,在每一种情况中,沿着宏块Ml的水平边缘42以及宏块Ml的垂直边缘44的四行像素P将被包含。围绕宏块延伸的边界仅仅包含了宏块Μ2-Μ9的一部分(参见

图1),其中所述边界是由上下文区域Kl的块B形成的。宏块Μ2-Μ9的块B以及图2中未被显示并且未被包含在上下文区域Kl中的其他宏块形成了与上下文区域Kl邻接的块B的外部区域60。通过将用于对逐个宏块Μ1-Μ9滤波的块B限制成总共49个块,可以在与别的宏块无关的情况下对每一个宏块Μ1-Μ9执行滤波。这样则可以采用相互并行的方式来同时对多个宏块进行滤波。具有多个计算核心的处理器的计算能力可以与多个上下文块Kl的同时滤波一起使用,其中所述上下文块可以在相互独立的情况下滤波。滤波结果可以保存在用于已滤波图像材料的图像存储器中。对于上下文区域Kl的块B的垂直边缘1、3和水平边缘2、10来说,依照为图像信息指定的编码标准,其滤波始于第二矩阵K的块元素KU。在图3所示的实施例的示例中,为图像信息指定的编码标准是H. 264标准。其他标准同样是可行的。用于对图3中的水平和垂直边缘1-29执行滤波的滤波步骤序列对应的是用于水平和垂直边缘1-29的参考符号的数字序列1-29。边缘1-29中的每一个都会延伸到宏块Ml中与所述边缘垂直的下一个边缘。举个例子,在滤波步骤9中,被滤波的是从宏块Ml的水平边缘41延伸到宏块Ml的水平边缘42的垂直边缘9。举例来说,从块元素Kll开始,形成宏块M3的块元素1(13、1(14、1(15、1(16、1(23、1(24、1(25以及K26的块的垂直边缘3、4、5和6会与其他块一起被滤波。在对水平边缘7和垂直边缘8执行了滤波之后,形成宏块M5的块元素1(31、1(41、1(51、1(61、1(32、1(42、1(52 以及 K62 的块的水平边缘 10、11、12 和 13 (以及其他的块)将被滤波。至于滤波步骤14、15、16和17,所滤波的是待滤波宏块Ml的块的垂直边缘。对具有宏块Ml的上下文区域Kl来说,其滤波是以针对宏块I的水平边缘29的滤波为结束的。滤波步骤1-13滤波的是上下文区域Kl中具有不与第一宏块Ml的块B的像素P相对应的块元素1(11、1(12、1(13、1(14、1(15、1(16、1(17、1(21、1(22、1(23、1(24、1(25、1(26、1(27、1(31、K32、K37、K41、K42、K47、K51、K52、K57、K61、K62、K67、K71、K72、K73、K74、K75、K76 以及 Κ77
的块B的像素P,并且所述滤波步骤是在用于滤波第一宏块Ml的块B的像素P的滤波步骤14-22之前按时间顺序执行的。这样ー来,第一宏块Ml的块B的像素P是用上下文区域中不与第一宏块Ml的块B的像素P相对应的块B的已滤波像素P滤波的。所述上下文区域Kl中不与第一宏块Ml的块B的像素P相对应的块B的已滤波像素P可以作为已被预先滤 波的输入像素来提供,以便对待滤波的宏块Ml执行滤波。已被预先滤波的像素P本身是依照H. 264标准并且结合部分未滤波的输入像素来滤波的,其中处于上下文区域Kl的外部区域60的块B的其他像素P未被用于对这些已被预先滤波的像素P进行滤波。尽管所使用的只是那些近似或大概滤波的像素,但在对上下文区域Kl执行滤波的时候,与使用未滤波像素P作为输入像素并依照朴素滤波方法来对宏块Ml执行滤波的处理所实现的漂移效应相比,为待滤波宏块Ml的像素P实现的漂移效应将会低出几个数量级。如果使用H. 264标准来对上下文区域Kl执行滤波,那么量度产生+/-I的像素差异的概率要小于2χ10_6,这与使用了未滤波像素P作为输入来对宏块Ml进行滤波的朴素滤波方法所具有的大约3X 10_3的值形成了对比。与朴素滤波方法相比,在使用H. 264标准的情况下,在大小方面出现大于I的像素差异的概率要小于IX 10Λ对很多应用来说,这些像素差异所导致的漂移效应是小到可以忽略的。依照随边缘区域中包含的像素P的数量而增大的去块滤波強度,可以使用比上下文区域Kl中不与第一宏块Ml中的块B的像素P相对应的块B的像素P更少的像素P来对第一宏块Ml的块B的像素P执行滤波。这样可以在不对依照H. 264标准编码在宏块Μ1-Μ9和块B中的帧的图像质量产生任何不利影响的情况下减少计算量。联合滤波的相邻宏块M2、M3可以形成一个宏块区域,在该区域中,宏块Ml或宏块区域的滤波可以是在与别的宏块Μ4或别的宏块区域无关的情况下进行的。举个例子,四个或更多相邻的宏块Μ1-Μ9可被联合滤波。由于宏块Μ1-Μ9彼此相邻,因此,包含这些宏块Μ1-Μ9的上下文块Kl将会重叠。由于只对上下文块Kl的重叠区域执行一次滤波,因此,与在每一次具有待滤波宏块Ml的情况中都对所有上下文块Kl执行完全滤波的情形相比,计算能力方面的工作将会減少。举个例子,在图I所示的四个宏块Μ1、Μ6、Μ8和Μ9有待进行联合滤波的排列中,其中除了待滤波宏块Ml、M6、M8、M9的64个块之外具有来自宏块Ml、M8 ;M6、M9的两个列,以及来自宏块M1、M6 ;M8、M9的两个列,上下文区域还可以包含89个待滤波块,以此作为围绕宏块M1,M6,M8和M9的边界。这89个待滤波块中的第一个块还包括宏块M2的矩阵M的块元素M33、M34、M43和M44。沿着水平边缘41成一条直线的是宏块M3的矩阵M中的块元素M31、M32、M33、M34、M41、M42、M43和M44,以及宏块M4的矩阵M中的块元素M31、M32、M33、M34、M41、M42、M43和M44。来自宏块Ml、M6 ;M8, M9的宏块区域的上下文区域具有水平和垂直边缘,这些区域各自是由11个块形成的。如果在相互独立的有待滤波的四个宏块Ml、M6、M8和M9的情况下,那么除了待滤波宏块M1、M6、M8和M9的64个块之外,在每ー种情况下,上下文区域Kl还包括作为围绕特定宏块M1、M6、M8和M9的边界的33个块(每ー个上下文区域的49个块要少于每一个宏块皿1、厘6、厘8和皿9的16个块),由此总共是132个块。相应地,如果对四个宏块Ml、M6、M8和M9执行联合滤波,那么上下文区域将会包含43个块,其数量要少于独立滤波四个宏块Ml、M6、M8和M9的情形。相对较少的这43个块不但不需要被滤波,而且还不需要从主存储器转移至静态随机存取存储器(SRAM)中进行滤波。为了以最佳方式使用所用处理器的可用计算能力而需要联合滤波的宏块的数量取决于可用计算核心的数量以及可用于滤波的SRAM存储器的大小。非常有利的是,不同宏块Ml、M2或宏块区域的滤波是以相互并行的方式同时进行的。这样ー来,具有若干个计算核心的现代处理器的计算潜能将会得到充分使用。如果在 具有不同计算核心的处理器上执行若干个宏块Ml、M2或宏块区域的并行滤波,那么可以以I万亿次计算/秒的高计算速率或是更高的计算速率来执行所述滤波。为了执行上下文区域Kl的滤波,在这里可以提供ー个包含了用于执行滤波的滤波算法的计算机程序。通过使用去块滤波器,可以执行根据本发明的方法。这里提供的是根据在宏块M1-M9中执行存储的H. 264标准来对宏块M1-M9执行滤波的去块滤波器,其中所述宏块以彼此水平相邻的方式排列在宏块行中,并且以彼此垂直的方式排列在宏块列中,姆ー个宏块M1-M9是由以彼此水平相邻的方式排列在块行m中以及以彼此垂直的方式排列在块列η中的块B形成的,并且所述块B形成了第一矩阵M的块元素Μ_ πι=Γ4且n=f 4,其中块B具有形成块B的外部边界的垂直边缘14、15以及水平边缘18、19,由此,通过以块元素Mll为滤波起点,可以对宏块M1-M9的块B的垂直边缘14、15以及水平边缘18、19执行滤波。去块滤波器包括一个用于确定包含了待滤波的第一宏块Ml的块B的上下文区域Kl的分析単元,其中所述上下文区域是由以彼此水平相邻的方式排列在块行ο中以及以彼此垂直的方式排列在块列P中的块B形成的,这些块形成了第二矩阵K的块元素Ktjp,其中0=广7且ρ=1 7,其中块元素Krs, r=3飞且s=3飞对应的是第一矩阵M的块元素M_ m=l 4且n=l 4。此外,所述去块滤波器还包括一个滤波単元,用于以第二矩阵K的块元素K11为滤波起点且依照H. 264标准来对上下文区域Kl的块B的水平边缘13以及垂直边缘2,10执行滤波。非常有利的是,去块滤波器包括ー个具有不同计算核心的处理器。根据图3所示的实施例的示例,所述滤波步骤1-29可以采用彼此并行的方式进行。去块滤波器可以包括主存储器和静态随机存取存储器。主存储器和静态随机存取存储器可被部署在部署于计算机中的图形卡上。借助去块滤波器,可以采用彼此并行的方式来同时对不同宏块M1-M9以及包含了可以联合滤波的宏块M1-M9的不同宏块区域进行滤波。这样ー来,与以串行方式执行滤波的滤波器相比,对宏块M1-M9执行滤波所需要的时间可以缩短。
权利要求
1.一种依照保存在宏块(Ml,M2)中的图像信息的编码标准来对宏块(Ml)执行去块滤波的方法,其中所述宏块以彼此水平相邻的方式排列在宏块行中,以及以彼此垂直相邻的方式排列在宏块列中,其中姆ー个宏块(Ml, M2)是由以彼此水平相邻的方式排列在块行m中并且以彼此垂直相邻的方式排列在块列η中的块(B)形成的,并且所述块形成了第一矩阵M的块元素Αη,πι=Γ4且n=f 4,其中这些块(B)分别具有形成所述块(B)的外部边界的垂直边缘(14,15)和水平边缘(18,19),并且宏块(Ml,M2)中的块(B)的垂直边缘(14,15)和水平边缘(18,19)是以块元素M11为开始结合以下步骤而被滤波的 确定包含了待滤波的第一宏块(Ml)中的块(B)的上下文区域(K1),所述上下文区域是由以彼此水平相邻的方式排列在块行ο中以及以彼此垂直相邻的方式排列在块列P中的块(B)形成的,并且所述块形成了第二矩阵K的块元素Κ_ ο=Γ7且p=f 7,其中块元素Κ , r=3 6且s=3 6对应于第一矩阵M的块元素Mmn, m=l 4且n=l 4,以及 以第二矩阵K的块元素K11为开始,依照用于图像信息的编码标准,对上下文区域(Kl)中的块(B )的垂直边缘(I,3 )和水平边缘(2,19 )执行滤波。
2.根据权利要求I的方法,其中用于图像信息的编码标准是H.264标准。
3.根据权利要求I或权利要求2的方法,其中每ー个块(B)是由待滤波的像素(P)形成的,其中所述像素以相互水平的方式排列在像素行(U)中,以及以相互垂直的方式排列在像素列(V)中,并且在每ー种情况中都具有四个像素(P)。
4.根据权利要求3的方法,其中上下文区域(Kl)中不与第一宏块(Ml)中的块(B)的像素(P)相对应的块(B)的像素(P)是在所述第一宏块(Ml)的块(B)的像素(P)之前按时间顺序滤波的。
5.根据权利要求4的方法,其中第一宏块(Ml)中的块(B)的像素(P)是用上下文区域(Kl)中那些不与第一宏块(Ml)中的块(B)的像素(P)相对应的块(B)的已滤波像素(P)滤波的。
6.根据权利要求5的方法,其中依照去块滤波強度来使用比上下文区域(Kl)中不与第一宏块(Ml)中的块(B)的像素(P)相对应的块(B)的像素(P)更少的像素对第一宏块(Ml)的块(B)的像素(P)执行滤波。
7.根据前述任ー权利要求的方法,其中联合滤波的相邻宏块(Ml,M2)形成一个宏块区域,以及宏块(Ml)或宏块区域的滤波是以与别的宏块(M2)或别的宏块区域无关的方式进行的。
8.根据前述任ー权利要求的方法,其中不同宏块(Ml,M2)和/或宏块区域的滤波是以相互并行的方式同时进行的。
9.根据权利要求8的方法,其中若干宏块(Ml,M2)或宏块区域的并行滤波是在具有不同计算核心的处理器上执行的。
10.根据前述任ー权利要求的方法,其中通过提供计算机程序来执行去块滤波,所述计算机程序包含了用于执行滤波的滤波算法。
11.一种特别用于执行根据权利要求1-9中任ー权利要求的方法的去块滤波器,所述滤波器依照保存在宏块(Ml,M2)中的图像信息的编码标准来对以彼此水平相邻的方式排列在宏块行中以及以彼此垂直相邻的方式排列在宏块列中的宏块(Ml)执行滤波,其中每ー个宏块(Ml,M2)是由以彼此水平相邻的方式排列在块行m中并且以彼此垂直相邻的方式排列在块列η中的块(B)形成的,并且所述块形成了第一矩阵M的块元素M_ m=f4且n=f4,其中这些块(B)分别具有形成所述块(B)的外部边界的垂直边缘(14,15)和水平边缘(18,19),并且宏块(M1,M2)中的块(B)的垂直边缘(14,15)和水平边缘(18,19)是以块元素M11作为滤波起点开始滤波的,包括 分析単元,用于确定包含了待滤波的第一宏块(Ml)中的块(B)的上下文区域(K1),所述上下文区域由那些以彼此水平相邻的方式排列在块行ο中以及以彼此垂直的方式排列在块列P中的块(B)形成,并且所述块(B)形成了第二矩阵K的块元素Ktjp, 0=广7且p=f7,其中块元素K ,r=3 6且s=3 6对应的是第一矩阵M的块元素M_ m=l 4且n=l 4,以及滤波单元,用于依照图像信息的编码标准并以第二矩阵K的块元素K11为滤波起点来对上下文区域(Kl)中的块(B)的水平边缘(I,3 )和垂直边缘(2,10 )执行滤波。
12.根据权利要求11的去块滤波器,其中该滤波器包含了具有不同计算核心的处理器。
13.根据权利要求11或权利要求12的去块滤波器,其中滤波器包括主存储器和静态随机存取存储器(Static Random Access Memory)0
14.根据权利要求11-13中任ー权利要求的去块滤波器,其中包含了可以联合滤波的宏块(M1,M2)的不同宏块(M1,M2)和/或不同宏块区域可以采用相互并行的方式同时滤波。
15.—种具有用于执行权利要求1-10中任ー权利要求的方法的滤波算法的计算机程序。
全文摘要
本发明涉及一种依照保存在宏块(M1,M2)中的图像信息的编码标准来对宏块(M1)执行去块滤波的方法,所述宏块以彼此水平相邻的方式排列在宏块行中,以及以彼此垂直相邻的方式排列在宏块列中,其中每一个宏块(M1,M2)是由以彼此水平相邻的方式排列在块行m中并且以彼此垂直相邻的方式排列在块列n中的块(B)形成的,并且所述块形成了第一矩阵M的块元素Mmn,m=1~4且n=1~4,其中这些块(B)分别具有垂直边缘(14,15)和水平边缘(18,19),并且每一个边缘都提供了块(B)的外部边缘,宏块(M1,M2)中的块(B)的垂直边缘(14,15)和水平边缘(18,19)是以块元素M11为开始滤波的,其中包含了待滤波的第一宏块(M1)中块(B)的上下文区域(K1)将被规定,并且所述区域是由以彼此水平相邻的方式排列在块行o中以及以彼此垂直的方式排列在块列p中的块(B)形成的,并且所述块(B)形成了第二矩阵K的块元素Kop,o=1~7且p=1~7,其中块元素Krs,r=3~6且s=3~6对应的是第一矩阵M的块元素Mmn,m=1~4且n=1~4。接下来,以第二矩阵K的块元素K11为开始,依照图像信息的编码标准来对上下文区域(K1)的块(B)的垂直边缘(1,3)以及水平边缘(2,10)执行滤波。
文档编号H04N7/50GK102835104SQ201080066150
公开日2012年12月19日 申请日期2010年4月14日 优先权日2010年4月14日
发明者N.奥尔特尔 申请人:西门子企业通讯有限责任两合公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1