一种多处理器并行实现高分辨率图像滤波的方法

文档序号:7687834阅读:242来源:国知局
专利名称:一种多处理器并行实现高分辨率图像滤波的方法
技术领域
本发明属于图像信息压縮领域,具体涉及一种高分辨率图像编(或解)码滤波 在多片处理器上并行实现的方法。
背景技术
MPEG-4 PART-10 AVC建议,即H. 264标准,以其高出一筹的视频图像压縮 效率和重建图像的质量,获得了业界的青睐。但11.264的高清晰度是以空间和时 间复杂度为代价的,在同等视频编码条件下,H.264编码实现的所需要的耗时 是H. 263的3倍以上,并且H. 264需要更大的内存空间来存储庞大的中间数据。 因此,当用H264对高分辨率图像(如Dl,720p, 1080i)进行编码(或解码,不失 一般性,下面统一用编码)的时候,现如今的单颗处理器如DSP,ARM,或FPGA都 很难以支撑实时的编码,特别是在编解高清或全高清图像的时候,甚至需要2 片以上的处理器来完成一路图像的编码。当用两片或者两片以上(以下称为多片)的处理器对一路视频序列进行编码, 就产生了一个问题,即怎样使多片处理器的能力发挥到最大。如果其中一颗处理 器在运行的时候,其他的处理器在闲置,那么跟一片没有什么分别。但是多片处 理器如果要同时运行,则必须得保证多片数据访问没有冲突。H.264引入的环路滤波是一种能够自适应去块效应的一种新方法。H.264的 环路滤波能有效地去除编码重建图像的块效应,是H,264的亮点之一。H,264环 路滤波分为水平和垂直边界的滤波。在对当前宏块进行滤波的时候,需要用到上 面宏块和左边宏块的数据,如图1所示。因此,在对当前宏块滤波的时候,必须 对上面和左边的宏块的数据已经做了滤波,以使得其数据可用,由此造成了多片 处理器并行计算的困难。一种的简单的可行办法是单片处理器完成整帧图像的处 理,这样实现的效率无疑浪费了其他处理器的资源,因为在滤波处理完成之前, 其他处理器不能进行其他任何的动作。另外一种方案是将亮度和色度分开由两片 数字信号处理器(Digital Signal Processing, DSP)处理,但考虑到亮度的 数据量是色度的一倍(图像格式是4:2:0),并且计算复杂度也几乎是色度的一 倍,总的资源开销将近4:1,因此这种方案也没有充分利用多片处理器的资源。在如今的H.264解决方案中,基于DSP的方式是一种常用的选择,因DSP 芯片的速率越来越高,集成的功能越来越强大,性能也日益增强大。发明内容本发明所要解决的问题是,提供一种多处理器并行实现高分辨率图像滤波的 方法,该方法能够充分利用多片处理器的资源,使得多片处理器能并行地完成滤 波过程,从而以较小的资源占用、较快的速度完成滤波。本发明所述的一种多处理器并行实现高分辨率图像滤波的方法,包括以下步骤步骤一将图像宏块行的宏块按顺序分成与处理器个数相同的份数; 步骤二前一颗处理器完成宏块行对应部分的滤波后,下一颗处理器接着进行该宏块行下一部分的滤波操作,而前一颗处理器进行下一个宏块行的对应部分的滤波,依次类推,直至完成一帧滤波。 所述步骤二进一步包括以下步骤步骤A:第一颗处理器处理第一个宏块行的第一份滤波,此时,其他处理器 闲置;步骤B:第一颗处理器处理第二个宏块行的第一份滤波,与此同时,第二颗 滤波器处理第一个宏块行的第二份滤波,其他滤波器闲置;步骤C:以此类推,直到第一颗处理器处理与处理器个数同数个宏块行的第 一份滤波,至此,处理器开始并行运行;步骤D:第一颗处理器继续处理下一个宏块行的第一份滤波;其他处理器相 应的处理对应宏块行的对应部分的滤波;依次类推,直至第一颗处理器处理最后 一个宏块行的第一份滤波;步骤E:第一颗处理器闲置,第二颗处理器处理最后一个宏块行的第二份滤 波,依次类推,直至完成一帧滤波。所述处理器处理完的重建写在片外存储器上。所述步骤一中,若宏块行的宏块数不能被处理器数目整除,则余数部分的宏 块分在最后一份中。本发明利用了高清晰度格式的视频数据量大的特点,将一个宏块行的数据分 成与处理器个数相同的份,每一颗处理器负责计算不同行的像素滤波,而在此之 前,前一次滤波已经使得上方、左侧数据可用,使得并行计算能得以顺利进行。这样的处理过程几乎是所有的处理器同时滤波计算,非常有效地利用了多片处理 器的资源,提高了处理效率。


图l是比264滤波边界示意图;图2是本发明所述方法的流程图;图3是本发明为四片DSP时的滤波示意图。
具体实施方式
下面结合图2和图3对本发明作进一步的详细描述。本发明中,假设处理器的数目为N,并设图像的宏块行数为M,每行的宏块 数为L。 L能被N整除,也可以不能被N整除。L能被N整除的情况下,每份宏 块数为[L/N]个;L不能被N整除的情况下,前N-1份每份中的宏块数为[L/N]个, 而第N份的宏块数为L一(N-1卢[L/N]个。本实施例以DSP为例,取附4,分别为DSPJ)、 DSP—1、 DSP—2和DSP—3;且 L能被N整除,即分为4份第一步DSP_0对第一宏块行的第一个1/4行滤波。滤波之后的重建数据写在片外存 储器中(以下步骤完成后都存储在片外存储器)。此时,DSPJ, DSP—2, DSP—3 闲置挂起。第二步DSP一1开始对第一宏块行的第二个1/4行像素滤波。与此同时,DSP—0对第 二宏块行的前1/4行滤波,DSP—2、 DSP3继续闲置。 第三步DSP_2开始对第一宏块行的第三个1/4行滤波。与此同时,DSP」则对第二 宏块行的第二个1/4行滤波;而DSP—0则对第三宏块行的第一个1/4行滤波; DSP—3继续闲置。第四步DSP_3开始对第一宏块行的最后一个1/4行滤波。与此同时,DSP—2对第二 宏块行的第三个1/4行滤波;DSP—1对第三宏块行的第二个1/4行滤波;DSP—0 则对第四宏块行的第一个l/4行滤波。至此,4颗DSP开始并行计算。第五步类似步骤四的过程,所有的DSP对下一个宏块行的对应l/4行滤波,直到最 后一个宏块行第k=M宏块行的第一个1/4行。 第六步DSPJ)闲置,其他处理器完成下一个宏块行的对应的1/4宏块行的滤波。 第七步DSP—0, DSP—l闲置,DSP—2,DSP—3完成相应l/4宏块行的滤波。 第八步DSP一0, DSP—1, DSP_2闲置,DSP—3完成最后一个宏块行即第M宏块行最后一 个l/4行的滤波。至此,完成了整帧图像的滤波。本发明以DSP实现为例进行说明,但不失一般性,本发明也适用于FPGA、 ARM、 ASIC等其他芯片。
权利要求
1、一种多处理器并行实现高分辨率图像滤波的方法,其特征在于,包括以下步骤步骤一将图像宏块行的宏块按顺序分成与处理器个数相同的份数;步骤二前一颗处理器完成宏块行对应份的滤波后,下一颗处理器接着进行该宏块行下一份的滤波操作,而前一颗处理器进行下一个宏块行的对应份的滤波,依次类推,直至一帧滤波完成。
2、 如权利要求1所述的多处理器并行实现高分辨率图像滤波的方法,其特 征在于,步骤二进一步包括以下步骤步骤A:第一颗处理器完成第一个宏块行的第一份滤波,此时,其他处理器 闲置;步骤B:第一颗处理器完成第二个宏块行的第一份滤波,与此同时,第二颗 滤波器完成第一个宏块行的第二份滤波,其他滤波器闲置;步骤C:以此类推,直到第一颗处理器完成与处理器个数同数个宏块行的第 一份滤波,处理器开始并行运行;步骤D:第一颗处理器继续完成下一个宏块行的第一份滤波;其他处理器相 应的完成对应宏块行的对应部分的滤波;依次类推,直至第一颗处理器完成最后 一个宏块行的第一份滤波;步骤E:第一颗处理器闲置,第二颗处理器完成最后一个宏块行的第二份滤 波,依次类推,直至完成一帧滤波。
3、 如权利要求1或2所述的多处理器并行实现高分辨率图像滤波的方法, 其特征在于,所述处理器处理完的重建写在片外存储器上。
4、 如权利要求1所述的多处理器并行实现高分辨率图像滤波的方法,其特 征在于,步骤一中,若宏块行的宏块数不能被处理器数目整除,则余数部分的宏 块分在最后一份中。
全文摘要
本发明涉及一种多处理器并行实现高分辨率图像滤波的方法,该方法首先将图像宏块行的宏块按顺序分成与处理器个数相同的份数;然后进行滤波,前一颗处理器完成宏块行对应份的滤波后,下一颗处理器接着进行该宏块行下一份的滤波操作,而前一颗处理器进行下一个宏块行的对应份的滤波,依次类推,直至一帧滤波完成。本发明利用了高清晰度格式的视频数据量大的特点,将一个宏块行的数据分成与处理器个数相同的份,每一颗处理器负责计算不同行的像素滤波,而在此之前,前一次滤波已经使得上方、左侧数据可用,使得并行计算能得以顺利进行。该方法几乎使所有的处理器同时滤波计算,非常有效地利用了多片处理器的资源,提高了处理效率。
文档编号H04N7/26GK101252691SQ20081006555
公开日2008年8月27日 申请日期2008年3月12日 优先权日2008年3月12日
发明者梁立伟, 宁 王, 陈晨航 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1