用于在并行处理系统中调度多媒体数据处理的方法和装置的制作方法

文档序号:6618661阅读:200来源:国知局
专利名称:用于在并行处理系统中调度多媒体数据处理的方法和装置的制作方法
技术领域
0002本发明总的涉及并行处理,更具体地,本发明涉及用于在并行 处理系统中调度多媒体数据处理的方法和装置。
背景技术
0003多媒体数据日益增加的使用已经导致不断要求以更快速和更 有效的方式来实时处理和递送这些数据。特别地,对于以更快速和更有效 的方式并行处理诸如图像和音频相关的多媒体数据的需求正日益增加。并 行处理的需要一直上升,例如,在诸如多媒体数据的压缩和/或解压缩的计 算密集的处理期间,需要进行相对数量较大的计算,并要求足够快速实现, 以使得可以实时递送音频和视频。
0004相应地,期望可以在多媒体数据的并行处理中继续提高处理 能力。特别期望产生更快速和更有效的方法用于这些数据的并行处理。这 些方法需要针对块并行处理、子块并行处理和双线性滤波器并行处理。

发明内容
0005本发明可以以多种方式实现,包括作为一种方法和一种计算 机可读介质。本发明的多个实施例将如下讨论。
0006
一种用于并行处理阵列的方法,所述阵列具有计算单元的行
和列,所述计算单元^:配置为处理图^f象的块。所述块以具有对角线的矩阵
的形式布置在图像中。每一对角线包括处理一个或者多个随后的对角线所
需要的相关数据(dependency data )。处理图像块的方法包括顺序映射对角 线到所述计算单元的相应行,使得用于每一行的相关数据位于计算单元的 之前的行中。
0007在另一方面, 一种在其上具有计算机可执行指令的计算机可 读介质,用于在并行处理阵列中预处理的方法,所述阵列具有计算单元的 行和列,所述计算单元一皮配置为处理图像的块。所述块以具有对角线的矩 阵的形式布置在图像中。每一对角线包括处理一个或者多个随后的对角线 所需要的相关数据。所述方法包括顺序映射对角线到所述计算单元的相应 行,使得用于每一行的相关数据位于计算单元的之前的行中。
0008在又一方面, 一种在具有计算单元的阵列的并行处理阵列中 处理图像的块的方法,包括映射所述块到相应的计算单元,并且根据在相 应的计算单元的每一个上执行的单个命令集处理每一所映射块。
0009通过阅读说明书、权利要求书和附图,本发明的目的和特征 将变得明显。


图l概念性示出1080i高清晰度(HD)帧的宏块;
图2A和2B进一步示出在诸如图像帧中的宏块的块的布置;
图3A-3C示出从图像中的宏块的布置到各个并行处理器的映射;
图4A-4E示出对于各种图像格式的图像到各个并行处理器的映射;
图5A-5B示出16x8映射,用于映射图像的子块到各个并行处理器中;
图6A-6B示出16x4映射,用于映射图像的子块到各个并行处理器中;
图7A-7C示出根据本发明的实施例的映射图像块到并行处理器的替代方
法;
图8A-8C示出图像格式的数据结构的详细细节,包括灰阶(luma)和色 度信息;
图9A-9C示出根据本发明的实施例的映射多个图像块到并行处理器的各 种替代方法;
图IOA-IOC示出根据本发明的实施例的数据块数据位置、子块位置、子 块标志数据位置和类型数据块;
图11A-11B示出算法处理步骤和选择代码,用于指示哪些处理步骤用于 哪些数据变量;
图12示出并行处理器。
0010相同的附图标记在整个附图中指的是相应的部分。
具体实施例方式
0011此处描述的本发明涉及并行处理改进的三个主要区域地址块 并行处理、子块并行处理和类似算法并行处理。 块并行处理
0012就某种意义而言,本发明涉及一种更有效的方法用于多媒体数 据的并行处理。众所周知,在不同的图像格式中,图像被细分为块,其中, 由于图像典型的是矩阵形式,"较后"块通常位于图像中其它块的下面和右 边,并且取决于"较前"块的信息,所述"较前,,块是位于较后块的上面和 左边的图像。较前块一定会在较后块之前处理,因为较后块需要来自于较前 块的通常称之为相关数据的信息。相应地,块(或者其中部分)依据其相关 数据的顺序被传输到各个并行处理器。较前块被首先发送到并行处理器,较 后块稍后发送。块被存储在并行处理器中的特定位置,并且如果必要就被移 位,使得每一块在处理时具有其位于较前数据块的特定组的、特定位置的相 关数据。以此方式,相关数据可以使用相同命令获取。也就是,较前块被移 位,使得较后块可以使用单个命令集处理,所述命令集指示每一处理器从特 定位置获取其相关数据。通过允许每一并行处理器使用同一命令集处理块, 本发明的方法不需要发送单独的命令到每一处理器,而是允许发送单一全局 命令集。这将产生更快速和更有效的处理。
0013图1概念性示出图像的示例性帧,其一般被视作矩阵形式和/ 或在存储器中存储。在此例中,1080i HD图像矩阵IO被细分为68行,每一 行12G个宏块12。典型地,诸如此1080i帧的图像通过各自宏块12处理, 也就是,并行处理阵列的每一计算单元(或者处理器)处理一个或者多个宏 块12。但是,尽管本发明经常在宏块12的上下文中讨论,但应该认识到本 发明可以将图像和其它数据细分为任意部分(通常称为块),其可以被并行 处理。
0014如上所述,诸如图1的1080i HD帧的图像的宏块包括相关数 据,如在图2A-2B中进一步示出的。根据诸如但不限于h. 264改进的视频编 码标准和VC-1 MPEG-4标准的标准,图像的块R的处理需要来自块a、 d、 b 和c的相关数据(例如插值所需数据)。也就是,根据这些标准,图像的每 一块的处理需要来自左侧紧邻的块的数据,以及来自对角方向上左上紧邻的 块、上方紧邻的块和对角方向上右上紧邻的块的数据。因此,块a依赖于来 自块d和b的信息,块b依赖于来自块d的信息等等,但是块d并不依赖于
任一其它块的信息。因此可以看出这些块的并行处理需要沿对角线处理,其
中,首先处理块d,紧接着处理依赖于块d信息的块a和b,然后是依赖于 块a、 d和b的信息的块R和c,等等。
0015随后参见图3A-3C,因此可以看出,对于最佳的并^^处理,块 可以被映射到处理器,并且以处理较前块先于较后块的顺序被处理。图3A 示出示例性图像的宏块结构,如该图像对观察者所呈现的。如上所述,按照 对于较后块保持其相关数据的顺序,图3A的块被处理。图3B示出必须被处 理的对角线,该对角线被处理的顺序是要保持用于较后块的相关数据。每一 行示出 一条单独的对角线,每一对角线仅需要来自其上面的行的相关数据。 例如,块0。被首先处理,因为其位于图像的最左上角,并且因此不具有任何 相关数据。紧接着处理块0。,因此出现在下一行,因为其仅需要来自块0。的 相关数据。接着处理块1,和1。,并且因此显示在接下一行,因此块、需要来自 块()。和0。的相关数据,并且块1。需要来自块0。的相关数据。因此可以看出图 3A中的块的每一对角线(用虚线突出显示)可以被映射到图3B中示出的并 行处理阵列的行中。
0016虽然映射块到图3B所示的计算单元的多行来保存所有必须的 上面每一行的相关数据,但仍然存在困难。更具体地,用于每一块的相关数 据仍然经常位于相对于所述块的不同位置中。例如,从图3A可以看出块4,具 有位于下述块的相关数据,以顺时针方形分别是3。 1。、 2。和3。。当被映 射到图3B所示的处理器中,这些处理器如箭头所示布置,3,、 1。、 2。和3。在 块4,上面布置成L形。相反,用于块93的相关数据位于块83、 82、 72和62中, 其以箭头所示方式布置。这说明为了在处理阵列中所示的位置处理每一块, 每一计算单元将需要其自己的命令以引导其来获取相关数据。换句话说,因
为对于每一块(如块41和93所示),其各自的相关凄t据布置不同,必须将单独 的数据获取命令推送到每一处理器,降低了图像被处理的速度。
0017在本发明的实施例中,通过在处理每一块之前移位每一块的相 关数据,克服了此问题。本领域的普通技术人员可以认识到可以以任一方式 移位相关数据。但是,图3C示出一种用于移位相关数据的方便的方法,其 中,包含相关数据的块被移位为上述的"L"形。也就是,当处理块X时, 需要来自块A-D的相关数据。图像中,这些块分别位于块X的正上方、左上 紧邻、左边紧邻和右上紧邻的位置。在并行处理阵列中,这些块可以随后分 别被移位到X上方的两个处理器的位置、上方的三个处理器的位置、上方的一个处理器的位置和紧邻右上方的处理器的位置。例如,图3B中,对于块93 的处理,将包含块8,和6,的每一行向右移一个位置,将83、 82、 72和62置为 特征"L"形。
0018在处理块X之前通过将所有这样的相关数据移位为"L"形, 同样的命令集可以用于处理每一块X。这意味着命令集只需要在一个加载操 作中被载入到并行处理器,而不需要对于每一处理器载入单独的命令集。这 可以使得在处理图像时带来显著的时间节省,特别是对于大的处理阵列而
0019本领域内普通技术人员将会认识到以上描述的方法仅是本发明 的一个实施例。更具体地,将会认识到尽管数据可以被移成上述"L"形, 但本发明不限于将数据块移位成此结构。而是,本发明包括将相关数据移位 为任一结构,或者特征位置,这可以共同用于被处理的每一块X。特别地, 不同图像格式可以具有不同于图2A中所示的位于块中的相关数据,可以利 用更便利应用的除了 "L"形的其它特征位置或者形状。
0020本领域的普通技术人员也将认识到,尽管到目前为止本发明已 在具有多个宏块的1080i HD帧的上下文中进行了说明,本发明也可包括可 以被分为任一子块的任一图像格式。也就是说,本发明的方法可以应用于 任一帧的任一子块。图4A-4E说明了这一点,其示出不同类型帧的对角线 如何被映射到不同数量的处理器行中。图4A中,HD帧的对角线可以被映射 到图示处理器的连续行中,产生梯形(或者替换为菱形,或者甚至为二者 组合)布局,其中使用257行处理器, 一行中最多使用61个处理器。更小 的帧使用更少的行,也就是更少的处理器。例如,在图4B中,CIF帧使用 59行处理器,任一行中最多19个处理器。类似的,在图4C中,当映射到 并行处理阵列时,625 SD帧将使用117行,每行最多36个处理器。类似, 在图4D中,当映射到同一阵列中,SIF帧将使用51行,每行最多16个处 理器。在图4E中,525 SD帧将使用107行,并且每行最多30个处理器。 从这些例子可以看出,本发明可以用于映射任一图像到并行处理阵列,其 中,数据可以被移位到上述的行中,允许使用单个命令或者命令集处理块。0021也应该认识到本发明不限于在块和并行处理阵列的计算单元之 间严格的1-l对应。也就是说,本发明包括这样的实施例,其中,块的部分 被映射为计算单元的部分,通过处理这些块,增加效率和速度。图5A-5B说 明这样一个实施例,其中,图像的块被分为两部分。随后这些子部的每一个如上所述被处理,除了每一子部被映射到处理器的一半并且由这一半处理器
处理。参见图5A,块被分为所示的上半部分和下半部分。也就是,左上角块 被分为两个子块0和2。类似的,与其相邻的块被分为子块1和3,以此类 推。注意,对于相关目的而言,每一子块相当于一个完整块,即子块l仅需 要来自块0的相关数据,最左边的子块2需要来自块0和1的相关数据,等 等。参见图5B,这些子块随后被映射到所示处理器的等分部分中,子块0 和l被映射到第一行,子块2和子块3被映射到第二行,以此类推。随后可 以以上述同样的方式使用本发明的过程,如果必要,子块沿着处理器的行移 位。
0022以此方式,可以看出不同于前述实施例,在同一时刻使用多个 处理器,允许^:用多个处理器阵列,并且因此带来更快的图像处理。特别地, 参见图3B,注意所使用的处理器数量每隔一行增加一个前两行每行使用一 个处理器,紧接着的两行每行使用两个处理器,以此类推。相反,图5B示 出的实施例中所使用的处理器数量每行增加一个第一行使用 一个处理器, 第二行使用两个,以此类推。图5A-5B的实施例因此同时使用更多的处理器, 产生更快的处理。
0023图6A-6B示出另一个这样的实施例,其中图像的块被分为四个 子块,例如,图像的左上块被分为子块0、 2、 4和6。这些子块随后按照其 相关数据所需的顺序被映射到处理器的部分。也就是,每一处理器可以被分 为四个"子行",每一个子行可以处理一行子块。各个子块随后可以被映射 到所示处理器的子行。例如,子块O、 1、 2和3可以全部被映射到第一行中 的两个处理器(第一处理器处理子块0和1以及一个子块2和一个子块3, 并且第二处理器处理其余子块2和3),并且相应处理。注意,此实施例使用 第一行中的两个处理器,而不是一个,并且处理器的数量每行增加两个,因 此允许每行使用更多的处理器。
0024本发明也包括将块和处理器分为16个部分。此外,本发明包 括"并排"处理多个块,即每行处理多个块。图7A-7C示出这些概念。图7A 说明块被分为所示的16个子块0。-8。,本领域内技术人员可以认识到单独的 块可以被独单独处理,只要它们被布置成可以正确确定它们的相关数据。图 7B示出这样的事实,即不互相要求相关数据的块(即不相关块)可以被并行 处理。每一块如图7A所分,所示子块为了筒化而没有下标,此处,例如, 第一块被分为16子块,标以0-9,其中如上,具有相同的标号的子块被同时
处理。只要每一行中的块不互相要求相关数据,其可以在同一行中一起被处理。因此, 一组处理器可以同时处理多个不相关块。例如,图7B中的顶行 的四个块(分别标以0-9、 10-19、 20-29和30-39的子块)可以使用单个处 理器集来处理。
0025图7C说明了这点,其中示出处理器(沿左侧用数字标识)和 相应载入的子块的表。此处,子块0-9可以被载入处理器0-9 (其中处理器 沿着左方标识)的子块中,形成所示的类菱形模式。其余块随后被载入处理 器的交迭的集中,其中,子块10-19被载入处理器4-13中,等等。以此方 式,块的其余子块以及进入处理器交迭的集的多个块的"链"二者,允许更 快速地使用多个处理器,带来更快处理。
0026图7A-7C说明4 x 4处理,应该明白同样的技术可以使用8 x 8 来实现。
0027除了在不同的处理器中处理不同的块,也应该注意到同一块中 的不同类型的数据可以在不同的处理器中处理。更具体地,本发明包括来自 同一块的亮度(intensity)信息、灰阶(luma )信息和色度(chroma)信 息的独立处理。也就是,来自一个块的亮度信息可以独立于来自此块的灰阶 信息被处理,灰阶信息可以独立于来自此块的色度信息被处理。本领域内的 普通技术人可以注意到灰阶信息和色度信息可以被映射到处理器并且如上 处理(即,如有必要移位等等),并且也可以被分割,其子块被映射到不同 的处理器,来提高处理效率。图8A-8C示出这一点。在图8A中,灰阶凝:据 的一个块可以被映射到一个处理器,而其相应的色度数据的"半个块"被映 射到同一处理器或者不同处理器。更具体地,注意到,量度、灰阶和色度数 据可以被映射到处理器的相邻集,或者类似于图7B的行的至少部分交迭的 集中。灰阶和色度信息也可以被分为子块,用于在各个计算单元的子块中处 理,如结合图5A-5B和图6A-6B所描述的。更具体地,图8B-8C说明一个帧 的灰阶和色度数据分别分为两个和四个子块。图8B的两个子块可以P逸后在 处理器的不同等分部分中处理,如结合图5A-5B所描述。类似地,图8C的 四个子块可以在处理器的不同的四个之一中处理,如图6A-6B中描述。
0028尽管一些上述实施例包括通过同 一行或者多行处理器并排处理 不同块,^f旦也应该注意到本发明包括沿着同一列处理器处理不同块,也可以 提高处理的效率和速度。图9A-9C概念性示出不同块使用的处理器,其描述 了后一概念的实施例。此处,多行处理器沿着垂直轴延伸,而列沿着水平轴
延伸。因此可以看出当典型的块映射到多行处理器阵列时,其将使用由区域
100-104描述的大体上呈梯形的处理器。更具体地,注意,区域104并不使 用多个处理器,因此减少处理阵列的总的用量。这可以通过处理占用区域 100-104的块的正下方的另一块的数据来至少部分补救。这个块可以占用区 域106-112,允许使用更多的处理器,特别在随后块之间的"过渡"区域 104-106中。相比于如果用户仅在完成区域100-104中的块的处理之后才处 理区域106-112的块,以此方式,可以更快完成处理并且^f吏用更多的阵列。
0029图9B-9C示出这个概念的其余延伸。更具体地,注意,所映射 的块的垂直"链,,可以在两个或者多个块上持续,使得使用足够多的阵列。 更具体地,块可以被映射到互相相邻的列中, 一个块占用区域116-120,另 一块占用区域122-126,以此类推。
0030应该注意到,可以使用菱形替代梯形或者与梯形结合使用。此 外,不同格式的映射的任意组合可以通过不同尺寸的菱形和/或梯形或者其 组合来实现,从而便于同时处理多个数据流。
0031本领域内的普通技术人员也可以注意到以上所述的本发明的过 程和方法可以通过多个不同并行处理器执行。本发明构想由具有多个计算单 元(每一计算单元可以处理图像数据块)的任一并行处理器使用,并且并行 处理器可以移位此数据用于保持相关。尽管构思了使用多个这样的并行处理 器,但一个适合的例子在2006年10月19日提交的美国专利申请第 11/584480、名称为"集成处理器阵列、指令定序器和1/0控制器"中描述, 其公开内容通过应用全部包括在本申请中并用于所有目的。 子块并4于处理
0032图10A-IOC示出与子块并行处理相关的改进。根据上述的视频 标准,每一宏块12为数据位(即像素)的16行乘16列(16x16)的矩阵, 划分为四个或者多个子块20。更具体地,每一矩阵分为至少四个相等的四分 体子块20,每一子块20的尺寸为8 x 8。每一四分体子块20可以进一步分 为具有尺寸8x4、 4x8和4x4的子块20。因此,任一给定块12可以被分 为具有尺寸8x8、 8x4、 4 x 8和4 x 4的子块20。
0033图10A示出块12,其具有一个8 x 8子块20a、两个4 x 8子块 20b、两个8 x 4子块20c和四个4 x 4子块20d。每一尺寸的子块20的数目 (如果有的话),以及其在块12中的位置可以变化。此外,各种尺寸的子块 20的数量和位置可以随块12到块12改变。
0034因此,为了以并行方式处理具有子块的块12,必须首先确定子 块的位置和尺寸。确定每一块12的子块的位置和尺寸是耗时的,其对于上 述块12的并行处理增加了显著的处理开销。需要处理器分析块12两次,一 次来确定子块20的位置和数量,并且然后再次以正确的顺序来处理子块(注 意,如上所述, 一些子块20可能需要来自另一子块处理的相关数据,这就 是为什么必须首先确定各个子块的位置和尺寸的原因)。
0035为了解决这个问题,本发明要求包括类型数据的特定块,所述 类型数据用于标识块12中所有子块20的类型(即位置和尺寸),因此避免 要求处理器做出此决定。图10B示出块12,并且示出可能形成用于任一给定 子块20的第一数据位置(首先意味着子块20的最左上方项)的十六个数据 位置22。对于每一块12,这十六个位置22将包括必要的数据来标志此数据 位置是否构成新子块20的第一项。如果此位置被标志,随后此位置被作为 数据块20的起始点,并且其左边紧邻的位置(如果存在)被认为是左边紧 邻的最后一列子块20,并且上方紧邻的位置(如果存在)被作为上方紧邻的 最后一行子块20。如果没有标志,则此项表示同一子块20的持续。因此, 可以看出这十六个标志凄史据位置22包括所有确定子块20的位置和尺寸必须 的数据。
0036图IOC示出根据本发明的类型数据块,其中,类型数据块24, 具有16 x 4的尺寸,和每一块12相关。块24的四行对应于包括该标志数据 位置22的块12中的四行。因此,通过仅分析类型数据块24的每一行中的 第一、第五、第九和第十三数据位置,可以确定子块20的位置和尺寸。对 于实现此目的,无需进一步地分析块20。此外,保持块20中的数据位置可 以被用于存储其它数据,诸如子块类型(I局部预测、使用具有运动矢量的 P预测和B双向预测)、块向量等等。因此,如图IOC所示,仅标志构成新子 块的起始的那些数据位置22,并且块24的每一行中的第一、第五、第九和 第十三凝:据位置匹配此标志。 相似性算法并4t处理
0037并行处理优化的另一个来源涉及具有某些相似性(例如,相似 计算)的同时处理算法。计算机处理涉及两个基本计算数值计算和数据移 动。通过执行计算数值运算或者移动(或者复制)期望数据到新的位置的算 法实现这些计算过程。这些算法通常使用一系列"IF"语句执行,其中如果 符合某些标准,则执行一个计算,然而如果不符合,则不做此计算或者做一
个不同的计算过程。通过利用多个IF语句,可以在每一数据中执行所期望 的全部计算过程。但是,此方法存在多个缺陷,首先其耗时,并且不利于并
行处理。第二,因为对于每一IF语句,存在一个计算过程行,以及或者转
移到下一个计算过程或者进行下一个计算,带来资源浪费。因此,对于算法
通过IF语句所经过的处理的每一路径来说,多达一半的处理器功能(和宝 贵的晶片空间)没有被使用。第三,需要开发独特代码,以实现算法到每一 独特的数据集的每一置换。
0038此解决方案包括用于多个单独的计算或者数据移动的所有计算 过程的算法的实现,其中,所有数据可能经历算法中的每一步,因为所有的 多个数据被并行处理。随后使用选择代码来确定算法的哪一部分用于哪一数 据。因此,同一代码(算法)通常被应用于所有数据,并且仅有选择代码需 要为每一数据被设计,以确定每一计算如何进行。此处的优点在于如果处理 多个数据,其中多个处理步骤相同,则应用一个算法代码到共同的计算和非 共用的计算简化了该系统。为了应用此技术到类似算法,可以通过观察指令 本身,或者通过以更细的粒度表示指令并且随后寻找相似性,来发现相似性
0039图IIA和IIB示出上述概念的一个例子。这个例子涉及用于产 生像素之间中间值的双线性滤波器,其中执行某些数字计算(尽管此技术可 以用于任一数据算法)。这些算法需要使用数值加和数据移位步骤的同一基 本集合计算各个值,但是根据所做计算,这些步骤的顺序和编号不同。所以, 图11A中,用于1/2和3/4双三次方公式的第一次计算为编号53,其要求7 个计算步骤完成。第二次计算过程为编号18,需要6个计算步骤,其中,四 个步骤与前一计算过程中发生的四个步骤相同并且以同样的顺序。第一公式 的最后两个计算过程再次具有与前两个计算重叠的计算步骤。对于1/2双三 次方公式的其它计算,以及图11B的三个双线性/^式都涉及同一计算步骤的 不同组合,并且所有都具有四个计算过程来完成。
0040对于每一公式,所有四个计算过程可以使用具有四个处理单元 32的并行处理器30结合和算法每一步骤相关的选择代码来执行,每一个处 理单元具有图12所示的自己的存储器34。存在和每一步骤相关的选择代码 指示四个变量中的哪一个由此步骤处理。例如,存在图1U和11B的计算中 示意的九个算法步骤。对于图IIA的第一公式,第一步骤仅应用到第三和第 四变量,其通过和此步骤相关的"0011"选择代码指示(其中如果用于此步 骤的所述代码和变量为"1",则此步骤应用到此变量,若为"0",则不应用)。
因此,"0011"的选择代码指示该步骤仅用于第三和第四变量,不用于第一
和第二变量。第二步骤由"0100"的选择代码指示,其仅应用于第二变量。
(HM1使用选择代码的优点在于不用;生二十个算法代码来进行二十 个图IIA和11B中说明的各个计算(或者起码不用产生至少八个不同的算法 代码来进行八个独特的数值计算),并且不用把这些算法代码的每一个载入 四个处理单元的每一个中,仅需要产生和加载单个算法代码(或者被加载在 进分布式存储器配置的各个处理单元中,或者加载进所有处理单元共享的单 个存储器位置)。仅需要产生和加载选择代码到各个处理单元,以实现期望 的计算,这变得极其筒单。由于算法代码仅选择性地和并行地应用所有变量 一次,因此增加了并行处理速度和效率。
0042尽管图IIA和IIB示出对于数据计算应用的选择代码的使用, 用于选择性指示哪 一 算法步骤应用到数据的选择代码同样可用于移动数据 的算法。
0043为了说明的目的,前述描述使用具体术语来提供对本发明的一 个全面的理解。但是,对于本领域内普通技术人员来说,这些具体细节并不 是用于实现本发明所需要的。因此,本发明的具体实施例的前述描述用于说 明和描述的目的。其意图并不是穷尽本发明或者将本发明限制到所公开的精 确形式。根据上述教导可以有多种修改和变化。例如,本发明可以用于处理 任一图像格式的任一部分。也就是,本发明可以并行处理任一格式的图像, 无论其是1080i HD图像、CIF图像、SIF图像,还是任一其它图像。这些图 像也可以被分为任一细分形式,无论是图像的宏块还是任一其它形式。任一 图像数据也可以被同样处理,无论其是亮度信息、灰阶信息、色度信息,还 是任一其它信息。所选和说明的实施例是为了最好的解释本发明的原理与其 实际应用,因此使得本领域内技术人员可以最好的使用本发明和具有不同修 改的各个实施例以适用于所构思的具体应用。
0044本发明可以以方法的形式和用于实现此方法的装置的形式被实 施。本发明也可以以实施于有利介质中的程序代码的形式被实施,诸如软盘、 CD-ROM、硬盘驱动器、固件或者任一机器可读存储介质,其中,当程序代码 被载入诸如计算机的机器并由其执行时,机器成为实施本发明的装置。本发 明也可以以程序代码的形式被实施,例如,无论是存储在存储介质中、载入 和/或由机器执行、或者在一些传输介质(诸如通过电线或者电缆、通过光
纤或者经电磁辐射)上传输,其中,当编程代码被载入并且由诸如计算机的 机器执行时,机器成为实现本发明的装置。当在通用处理器上实现时,编程 代码片段与处理器相结合来提供独特的设备,其操作类似于专用逻辑电路。
权利要求
1.在具有计算单元的行和列的并行处理阵列中,所述计算单元被配置为处理图像的块,所述块被布置在具有对角线的矩阵形式的图像中,所述对角线的每一个包括用于处理一个或者多个所述后续多个对角线所需的相关数据,一种预处理所述图像的所述块的方法,包括顺序映射所述对角线到所述计算单元的相应行,使得每一行的所述相关数据位于所述计算单元的先前的行中。
2、 权利要求1的方法,还包括在所述计算单元的先前行中移位所述块,使得将所述计算单元的先前 的行的所述相关数据置于特征位置;并且基于所述相关数据的所述特征位置,处理所述对角线的所述块。
3、 权利要求2的方法,其中,所述顺序映射还包括顺序映射所述 多个对角线到所述计算单元的相应行中。
4、 权利要求2的方法,其中,所述块的互补等分部分以相邻的对角 线对布置在图像中;并且,其中,所述顺序映射还包括顺序映射所述相邻的对角线对到所述计算 单元的相应行中。
5、 4又利要求2的方法,其中,块的相关四分体以相邻四对角线组布 置于图像中;并且其中,所述顺序映射还包括顺序映射所述相邻四对角线组到所述计算 单元的相应行中。
6、 权利要求2的方法,其中,所述块包括第一块、布置于图像中左 边紧邻所述第一块的第二块、布置于图像中左上方紧邻所述第一块的第三 块、布置于图像中上方紧邻所述第一块的第四块以及布置于图像中右上方 紧邻所述第一块的第五块;所述第二、第三、第四和第五块总起来包括所述第一块的相关数据; 所述顺序映射还包括映射所述第 一块到第 一计算单元,并且映射第二、第三、第四和第五块到位于所述第一计算单元的行之前行中的多个计算单元;并且所述移位还包括移位所述第二、第三、第四和第五块,使得第二块的 相关数据存储在布置于与所述第 一计算单元同 一列并且所述第 一计算单元之前紧邻的第二计算单元中;第四块的相关数据存储在布置于与所述第 一计算单元同 一列并且所述第二计算单元之前紧邻的第三计算单元中;第三块的相关数据存储在布置于与所述第一计算单元同一列并且所述第三计算单元之前紧邻的第四计算单元中;并且第五块的相关数据存储在布置 于紧随与所述第 一计算单元的同 一列的列中的第五计算单元中。
7、 权利要求2的方法,其中,所述特征位置为所述并行处理阵列中 第一块相对于第二块、第三块、第四块和第五块的位置,所述特征位置还 包括所述第二块布置在相应的所述第一块的紧邻上方; 所述第四块布置在相应的所述第二块的紧邻上方; 所述第三块布置在相应的所述第四块的紧邻上方; 所述第五块布置在相应的所述第二块的紧邻右侧。
8、 权利要求l的方法,其中,所述块为宏块。
9、 4又利要求1的方法,其中,所述块为才艮据h.264标准和VC-1标准 中的至少一个限定的图像的块。
10、 权利要求l的方法,其中,所述图像为1080iHD帧。
11、 权利要求l的方法,其中,所述图像为352 x 288 CIF帧。
12、 斥又利要求l的方法,其中,所述图像为352 x 240 SIF帧。
13、 权利要求l的方法,其中,所述图像为720 x 576 SD帧。
14、 权利要求l的方法,其中,所述图像为720 x 480 SD帧。
15、 权利要求l的方法,其中,所述块的每一个包括亮度信息、灰阶 信息和色度信息;并且其中所述对角线还包括包括所述亮度信息的第一组对角线,包括所 述灰阶信息的第二组对角线以及包括所述色度信息的第三组对角线。
16、 权利要求15的方法,其中,所述顺序映射还包括 顺序映射所述第一组对角线到所述计算单元的指定行; 顺序映射所述第二组对角线到所述指定行并且相邻于所述顺序映射的第一组对角线,并且顺序映射所述第三组对角线到所述指定行并且相邻于所述顺序映射 的第二组对角线。
17、 权利要求l的方法,其中,所述顺序映射还包括顺序映射来自第 一图像的第 一组对角线到所述第 一组计算单元的行 中;并且顺序映射来自第二图像的第二组对角线到所述第二组计算单元的行中;其中,所述第二组的行至少和第一组的行部分交迭。
18、 权利要求17的方法,其中所述顺序映射第 一组对角线还包括在沿着所述第 一组的行的第 一方 向顺序映射所述第一组对角线到第一组的行中;并且所述顺序映射第二组对角线还包括在沿着所述第二组的行的第一方 向顺序映射所述第二组对角线到第二组的行中。
19、 权利要求17的方法,其中所述顺序映射第一组对角线还包括在沿着所述第一组的行的第一方 向顺序映射所述第一组对角线到第一组的行中;并且所述顺序映射第二组对角线还包括在相对于第一方向的第二方向上 顺序映射所述第二组对角线到第二组的行中。
20、 一种其上具有计算机可执行指令的计算机可读介质,用于在具有 计算单元的行和列的并行处理阵列中的预处理方法,所述计算单元被配置 为处理图像的块,所述块被布置在具有对角线的矩阵形式的图像中,所述 对角线的每一个包括用于处理一个或者多个所述后续对角线所需的相关 数据,所述方法包括顺序映射所述对角线到所述计算单元的相应行,使得每一行的所述相 关数据位于所述计算单元的先前的行中。
21、 权利要求20的计算机可读介质,其中,所述方法还包括 在所述计算单元的先前行中移位所述块,使得将所述计算单元的先前的行的所述相关数据置于特征位置;并且基于所述相关数据的所述特征位置,处理所述对角线的所述块。
22、 权利要求21的计算机可读介质,其中,所述顺序映射还包括 顺序映射所述多个对角线到所述计算单元的相应行中。
23、 权利要求21的计算机可读介质,其中,所述块的互补等分部分 以相邻的对角线对布置在图像中;并且,其中,所述顺序映射还包括顺序映射所述相邻的对角线对到所述计算 单元的相应行中。
24、 权利要求21的计算机可读介质,其中,块的相关四分体以相邻 四对角线组布置于图像中;并且其中,所述顺序映射还包括顺序映射所述相邻四对角线组到所述计算 单元的相应行中。
25、 权利要求21的计算机可读介质,其中所述块包括第一块、布置于图像中左边紧邻所述第一块的第二块、布 置于图像中左上方紧邻所述第一块的第三块、布置于图像中上方紧邻所述 第一块的第四块以及布置于图像中右上方紧邻所述第一块的第五块;所述第二、第三、第四和第五块总起来包括所述第一块的相关数据; 所述顺序映射还包括映射所述第一块到第一计算单元,并且映射第 二、第三、第四和第五块到位于所述第一计算单元的行之前行中的多个计 算单元;并且所述移位还包括移位所述第二、第三、第四和第五块,使得第二块的 相关数据存储在布置于与所述第一计算单元同一列并且所述第一计算单 元之前紧邻的第二计算单元中;第四块的相关数据存储在布置于与所述第 一计算单元同 一列并且所述第二计算单元之前紧邻的第三计算单元中;第 三块的相关数据存储在布置于与所述第一计算单元同一列并且所述第三 计算单元之前紧邻的第四计算单元中;并且第五块的相关数据存储在布置 于紧随与所述第一计算单元的同一列的列中的第五计算单元中。
26、 权利要求21的计算机可读介质,其中所述特征位置为所述并行处理阵列中第一块相对于第二块、第三块、 第四块和第五块的位置,所述特征位置还包括所述第二块布置在相应的所述第一块的紧邻上方; 所述第四块布置在相应的所述第二块的紧邻上方; 所述第三块布置在相应的所述第四块的紧邻上方; 所述第五块布置在相应的所述第二块的紧邻右侧。
27、 权利要求20的计算机可读介质,其中,所述块为宏块。
28、 权利要求20的计算机可读介质,其中,所述块为根据h.264标准 和V C -1标准中的至少 一 个限定的图像的块。
29、 权利要求20的计算机可读介质,其中,所述图像为1080iHD帧。
30、 权利要求20的计算机可读介质,其中,所述图像为352 x 288 CIF帧。
31、 权利要求20的计算机可读介质,其中,所述图像为352 x 240 SIF 帧。
32、 权利要求20的计算机可读介质,其中,所述图像为720 x 576 SD帧。
33、 权利要求20的计算机可读介质,其中,所述图像为720 x 480 SD帧。
34、 权利要求20的计算机可读介质,其中,所述块的每一个包括亮 度信息、灰阶信息和色度信息;并且其中所述对角线还包括包括所述亮度信息的第一组对角线,包括所 述灰阶信息的第二组对角线以及包括所述色度信息的第三组对角线。
35、 权利要求34的计算机可读介质,其中,所述顺序映射还包括 顺序映射所述第一组对角线到所述计算单元的指定行;顺序映射所述第二组对角线到所述指定行并且相邻于所述顺序映射 的第一组对角线,并且顺序映射所述第三组对角线到所述指定行并且相邻于所述顺序映射 的第二组对角线。
36、 权利要求20的计算机可读介质,其中,所述顺序映射还包括 顺序映射来自第 一 图像的第 一组对角线到所述第 一组计算单元的行中;并且顺序映射来自第二图像的第二组对角线到所述第二组计算单元的行中;其中,所述第二组的行至少和第一组的行部分交迭。
37、 权利要求36的计算机可读介质,其中所述顺序映射第一组对角线还包括在沿着所述第一组行的第一方向 顺序映射所述第一组对角线到第一组行中;并且所述顺序映射第二组对角线还包括在沿着所述第二组行的第 一方向 顺序映射所述第二组对角线到第二组行中。
38、 权利要求36的计算机可读介质,其中所述顺序映射第 一组对角线还包括在沿着所述第 一组行的第 一方向 顺序映射所述第一组对角线到第一组行中;并且所述顺序映射第二组对角线还包括在相对于第一方向的第二方向上 顺序映射所述第二组对角线到第二组行中。
39、 一种在具有计算单元阵列的并行处理阵列中处理图像块的方法, 所述方法包括映射所述块到相应的所述计算单元中;根据在相应的计算单元的每一个上执行的单个命令集,处理每一个所 映射的块。
40、 权利要求39的方法,还包括在处理每一所映射块期间,在所述相应的计算单元间移位所映射块, 使得将所映射块置于并行处理阵列的特征位置中。
41、 又利要求40的方法,其中所述块包括第一块、布置于图像中左边紧邻所述第一块的第二块、布 置于图像中左上方紧邻所述第一块的第三块、布置于图像中上方紧邻所述 第一块的第四块以及布置于图像中右上方紧邻所述第一块的第五块;所述映射还包括映射所述第一块到第一计算单元,并且映射第二、第 三、第四和第五块到位于所述第一计算单元的行之前行中的多个计算单 元;并且所述移位还包括移位所述第二、第三、第四和第五块,使得第二块存 储在布置于与所述第一计算单元同一列并且所述第一计算单元之前紧邻 的第二计算单元中;第四块存储在布置于与所述第一计算单元同一列并且所述第二计算单元之前紧邻的第三计算单元中;第三块存储在布置于与所 述第一计算单元同一列并且所述第三计算单元之前紧邻的第四计算单元中;并且第五块存储在布置于紧随与所述第一计算单元的同一列的列中的 第五计算单元中。
42、 权利要求40的方法,其中所述特征位置为所述并行处理阵列中第一块相对于第二块、第三块、 第四块和第五块的位置,所述特征位置还包括所述第二块布置在相应的所述第一块的紧邻上方; 所述第四块布置在相应的所述第二块的紧邻上方; 所述第三块布置在相应的所述第四块的紧邻上方; 所述第五块布置在相应的所述第二块的紧邻右侧。
全文摘要
本发明涉及一种有效的用于并行处理多媒体数据的方法和设备。块(或者其中部分)依据其相关数据的顺序被传输到各个并行处理器。较前块被首先发送到并行处理器,较后块随后发送。块被存储在并行处理器中的特定位置并且必要时进行移位,使得每一块在处理时,具有其相关数据,所述相关数据位于具有特定相对位置的较前块的特定集合中。以此方式,其相关数据可以使用同一命令获取。也就是,较前块被移位使得较后块可以使用单个命令集处理,所述命令指示每一处理器从不会变化的特定的已知的位置获取其相关数据。
文档编号G06K9/00GK101371262SQ200780002223
公开日2009年2月18日 申请日期2007年1月10日 优先权日2006年1月10日
发明者B·米图, L·比沃拉斯基 申请人:光明测量公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1