CN101371264A - 用于在并行处理系统中处理多媒体数据的子块的方法和装置 - Google Patents

用于在并行处理系统中处理多媒体数据的子块的方法和装置 Download PDF

Info

Publication number
CN101371264A
CN101371264A CNA2007800022530A CN200780002253A CN101371264A CN 101371264 A CN101371264 A CN 101371264A CN A2007800022530 A CNA2007800022530 A CN A2007800022530A CN 200780002253 A CN200780002253 A CN 200780002253A CN 101371264 A CN101371264 A CN 101371264A
Authority
CN
China
Prior art keywords
data
piece
row
view data
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2007800022530A
Other languages
English (en)
Inventor
L·比沃拉斯基
B·米图
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brightscale Inc
Original Assignee
Brightscale Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brightscale Inc filed Critical Brightscale Inc
Publication of CN101371264A publication Critical patent/CN101371264A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Input (AREA)
  • Multi Processors (AREA)

Abstract

一种用于数据子块的并行处理的有效的方法和设备。并行处理阵列具有计算单元,所述计算单元被配置为以并行方式处理图像的数据的块,产生图像数据的块,其中,图像数据的所述块的每一个被分为多个子块,并且每一子块的第一数据点标志所述子块的起始位置。对于图像数据的所述块的每一个,产生类型数据的块,类型数据的所述块的每一个包括图像数据的多个块中的所有子块的第一数据点,使得在不需要首先处理图像数据的块的前提下可以确定图像数据的每一块中的所有子块的数量和位置。

Description

用于在并行处理系统中处理多媒体数据的子块的方法和装置
【0001】本申请要求2006年1月10日提交的美国临时申请60/758065的权益,其公开内容通过引用全部包括在本申请中并用于所有目的。
技术领域
【0002】本发明总的涉及并行处理,更具体地,本发明涉及用于在并行处理系统中处理多媒体数据的方法和装置。
背景技术
【0003】多媒体数据日益增加的使用已经导致不断要求以更快速和更有效的方式来实时处理和递送这些数据。特别地,对于以更快速和更有效的方式并行处理诸如图像和音频相关的多媒体数据的需求正日益增加。并行处理的需要一直上升,例如,在诸如多媒体数据的压缩和/或解压缩的计算密集的处理期间,需要进行相对数量较大的计算,并要求足够快速实现,以使得可以实时递送音频和视频。
【0004】相应地,期望可以在多媒体数据的并行处理中继续提高处理能力。特别期望产生更快速和更有效的方法用于这些数据的并行处理。这些方法需要针对块并行处理、子块并行处理和双线性滤波器并行处理。
发明内容
【0005】本发明可以以多种方式实现,包括作为一种方法和一种计算机可读介质。本发明的多个实施例将在下文讨论。
【0006】在具有计算单元的并行处理阵列中,所述计算单元被配置为处理图像的数据的块,一种方法包括:产生图像数据的块,其中,图像数据的所述块的每一个被分为多个子块,并且每一子块的第一数据点标志所述子块的起始位置,并且对于图像数据的所述块的每一个,产生类型数据的块,其中,类型数据的所述块的每一个包括图像数据的多个块中的所有子块的第一数据点。
【0007】在另一方面,其上具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于一种在具有计算单元的并行处理阵列中的处理方法,所述计算单元被配置为处理图像的数据的块,所述方法包括:产生图像数据的块,其中,图像数据的所述块的每一个被分为多个子块,并且每一子块的第一数据点标志所述子块的起始位置,并且对于图像数据的所述块的每一个,产生类型数据的块,其中,类型数据的所述块的每一个包括图像数据的多个块中的所有子块的第一数据点。
【0008】通过阅读说明书、权利要求书和附图,本发明的其它目的和特征将变得明显。
附图说明
图1概念性示出1080i高清晰度(HD)帧的宏块;
图2A和2B进一步示出在诸如图像帧中的宏块的块的布置;
图3A-3C示出从图像中的宏块的布置到各个并行处理器的映射;
图4A-4E示出对于各种图像格式的图像到各个并行处理器的映射;
图5A-5B示出16×8映射,用于映射图像的子块到各个并行处理器中;
图6A-6B示出16×4映射,用于映射图像的子块到各个并行处理器中;
图7A-7C示出根据本发明的实施例的映射图像块到并行处理器的替代方法;
图8A-8C示出图像格式的数据结构的详细细节,包括灰阶(luma)和色度信息;
图9A-9C示出根据本发明的实施例的映射多个图像块到并行处理器的各种替代方法;
图10A-10C示出根据本发明的实施例的数据块数据位置、子块位置、子块标志数据位置和类型数据块;
图11A-11B示出算法处理步骤和选择代码,用于指示哪些处理步骤用于哪些数据变量;
图12示出并行处理器。
【0010】相同的附图标记在整个附图中指的是相应的部分。
具体实施方式
【0011】此处描述的本发明涉及并行处理改进的三个主要区域:地址块并行处理、子块并行处理和类似算法并行处理。
块并行处理
【0012】就某种意义而言,本发明涉及一种更有效的方法用于多媒体数据的并行处理。众所周知,在不同的图像格式中,图像被细分为块,其中,由于图像典型的是矩阵形式,“较后”块通常位于图像中其它块的下面和右边,并且取决于“较前”块的信息,所述“较前”块是位于较后块的上面和左边的图像。较前块一定会在较后块之前处理,因为较后块需要来自于较前块的通常称之为相关数据的信息。相应地,块(或者其中部分)依据其相关数据的顺序被传输到各个并行处理器。较前块被首先发送到并行处理器,较后块稍后发送。块被存储在并行处理器中的特定位置,并且如果必要就被移位,使得每一块在处理时具有其位于较前数据块的特定组的、特定位置的相关数据。以此方式,相关数据可以使用相同命令获取。也就是,较前块被移位,使得较后块可以使用单个命令集处理,所述命令集指示每一处理器从特定位置获取其相关数据。通过允许每一并行处理器使用同一命令集处理块,本发明的方法不需要发送单独的命令到每一处理器,而是允许发送单一全局命令集。这将产生更快速和更有效的处理。
【0013】图1概念性示出图像的示例性帧,其一般被视作矩阵形式和/或在存储器中存储。在此例中,1080i HD图像矩阵10被细分为68行,每一行120个宏块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示出必须被处理的对角线,该对角线被处理的顺序是要保持用于较后块的相关数据。每一行示出一条单独的对角线,每一对角线仅需要来自其上面的行的相关数据。例如,块00被首先处理,因为其位于图像的最左上角,并且因此不具有任何相关数据。紧接着处理块00,因此出现在下一行,因为其仅需要来自块00的相关数据。接着处理块11和10,并且因此显示在接下一行,因此块11需要来自块00和00的相关数据,并且块10需要来自块00的相关数据。因此可以看出图3A中的块的每一对角线(用虚线突出显示)可以被映射到图3B中示出的并行处理阵列的行中。
【0016】虽然映射块到图3B所示的计算单元的多行来保存所有必须的上面每一行的相关数据,但仍然存在困难。更具体地,用于每一块的相关数据仍然经常位于相对于所述块的不同位置中。例如,从图3A可以看出块41具有位于下述块的相关数据,以顺时针方形分别是:31、10、20和30。当被映射到图3B所示的处理器中,这些处理器如箭头所示布置,31、10、20和30在块41上面布置成L形。相反,用于块93的相关数据位于块83、82、72和62中,其以箭头所示方式布置。这说明为了在处理阵列中所示的位置处理每一块,每一计算单元将需要其自己的命令以引导其来获取相关数据。换句话说,因为对于每一块(如块41和93所示),其各自的相关数据布置不同,必须将单独的数据获取命令推送到每一处理器,降低了图像被处理的速度。
【0017】在本发明的实施例中,通过在处理每一块之前移位每一块的相关数据,克服了此问题。本领域的普通技术人员可以认识到可以以任一方式移位相关数据。但是,图3C示出一种用于移位相关数据的方便的方法,其中,包含相关数据的块被移位为上述的“L”形。也就是,当处理块X时,需要来自块A-D的相关数据。图像中,这些块分别位于块X的正上方、左上紧邻、左边紧邻和右上紧邻的位置。在并行处理阵列中,这些块可以随后分别被移位到X上方的两个处理器的位置、上方的三个处理器的位置、上方的一个处理器的位置和紧邻右上方的处理器的位置。例如,图3B中,对于块93的处理,将包含块8x和6x的每一行向右移一个位置,将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中,当映射到并行处理阵列时,625SD帧将使用117行,每行最多36个处理器。类似,在图4D中,当映射到同一阵列中,SIF帧将使用51行,每行最多16个处理器。在图4E中,525SD帧将使用107行,并且每行最多30个处理器。从这些例子可以看出,本发明可以用于映射任一图像到并行处理阵列,其中,数据可以被移位到上述的行中,允许使用单个命令或者命令集处理块。
【0021】也应该认识到本发明不限于在块和并行处理阵列的计算单元之间严格的1-1对应。也就是说,本发明包括这样的实施例,其中,块的部分被映射为计算单元的部分,通过处理这些块,增加效率和速度。图5A-5B说明这样一个实施例,其中,图像的块被分为两部分。随后这些子部的每一个如上所述被处理,除了每一子部被映射到处理器的一半并且由这一半处理器处理。参见图5A,块被分为所示的上半部分和下半部分。也就是,左上角块被分为两个子块0和2。类似的,与其相邻的块被分为子块1和3,以此类推。注意,对于相关目的而言,每一子块相当于一个完整块,即子块1仅需要来自块0的相关数据,最左边的子块2需要来自块0和1的相关数据,等等。参见图5B,这些子块随后被映射到所示处理器的等分部分中,子块0和1被映射到第一行,子块2和子块3被映射到第二行,以此类推。随后可以以上述同样的方式使用本发明的过程,如果必要,子块沿着处理器的行移位。
【0022】以此方式,可以看出不同于前述实施例,在同一时刻使用多个处理器,允许使用多个处理器阵列,并且因此带来更快的图像处理。特别地,参见图3B,注意所使用的处理器数量每隔一行增加一个:前两行每行使用一个处理器,紧接着的两行每行使用两个处理器,以此类推。相反,图5B示出的实施例中所使用的处理器数量每行增加一个:第一行使用一个处理器,第二行使用两个,以此类推。图5A-5B的实施例因此同时使用更多的处理器,产生更快的处理。
【0023】图6A-6B示出另一个这样的实施例,其中图像的块被分为四个子块,例如,图像的左上块被分为子块0、2、4和6。这些子块随后按照其相关数据所需的顺序被映射到处理器的部分。也就是,每一处理器可以被分为四个“子行”,每一个子行可以处理一行子块。各个子块随后可以被映射到所示处理器的子行。例如,子块0、1、2和3可以全部被映射到第一行中的两个处理器(第一处理器处理子块0和1以及一个子块2和一个子块3,并且第二处理器处理其余子块2和3),并且相应处理。注意,此实施例使用第一行中的两个处理器,而不是一个,并且处理器的数量每行增加两个,因此允许每行使用更多的处理器。
【0024】本发明也包括将块和处理器分为16个部分。此外,本发明包括“并排”处理多个块,即每行处理多个块。图7A-7C示出这些概念。图7A说明块被分为所示的16个子块00-80,本领域内技术人员可以认识到单独的块可以被独单独处理,只要它们被布置成可以正确确定它们的相关数据。图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×4处理,应该明白同样的技术可以使用8×8来实现。
【0027】除了在不同的处理器中处理不同的块,也应该注意到同一块中的不同类型的数据可以在不同的处理器中处理。更具体地,本发明包括来自同一块的亮度(intensity)信息、灰阶(luma)信息和色度(chroma)信息的独立处理。也就是,来自一个块的亮度信息可以独立于来自此块的灰阶信息被处理,灰阶信息可以独立于来自此块的色度信息被处理。本领域内的普通技术人可以注意到灰阶信息和色度信息可以被映射到处理器并且如上处理(即,如有必要移位等等),并且也可以被分割,其子块被映射到不同的处理器,来提高处理效率。图8A-8C示出这一点。在图8A中,灰阶数据的一个块可以被映射到一个处理器,而其相应的色度数据的“半个块”被映射到同一处理器或者不同处理器。更具体地,注意到,量度、灰阶和色度数据可以被映射到处理器的相邻集,或者类似于图7B的行的至少部分交迭的集中。灰阶和色度信息也可以被分为子块,用于在各个计算单元的子块中处理,如结合图5A-5B和图6A-6B所描述的。更具体地,图8B-8C说明一个帧的灰阶和色度数据分别分为两个和四个子块。图8B的两个子块可以随后在处理器的不同等分部分中处理,如结合图5A-5B所描述。类似地,图8C的四个子块可以在处理器的不同的四个之一中处理,如图6A-6B中描述。
【0028】尽管一些上述实施例包括通过同一行或者多行处理器并排处理不同块,但也应该注意到本发明包括沿着同一列处理器处理不同块,也可以提高处理的效率和速度。图9A-9C概念性示出不同块使用的处理器,其描述了后一概念的实施例。此处,多行处理器沿着垂直轴延伸,而列沿着水平轴延伸。因此可以看出当典型的块映射到多行处理器阵列时,其将使用由区域100-104描述的大体上呈梯形的处理器。更具体地,注意,区域104并不使用多个处理器,因此减少处理阵列的总的用量。这可以通过处理占用区域100-104的块的正下方的另一块的数据来至少部分补救。这个块可以占用区域106-112,允许使用更多的处理器,特别在随后块之间的“过渡”区域104-106中。相比于如果用户仅在完成区域100-104中的块的处理之后才处理区域106-112的块,以此方式,可以更快完成处理并且使用更多的阵列。
【0029】图9B-9C示出这个概念的其余延伸。更具体地,注意,所映射的块的垂直“链”可以在两个或者多个块上持续,使得使用足够多的阵列。更具体地,块可以被映射到互相相邻的列中,一个块占用区域116-120,另一块占用区域122-126,以此类推。
【0030】应该注意到,可以使用菱形替代梯形或者与梯形结合使用。此外,不同格式的映射的任意组合可以通过不同尺寸的菱形和/或梯形或者其组合来实现,从而便于同时处理多个数据流。
【0031】本领域内的普通技术人员也可以注意到以上所述的本发明的过程和方法可以通过多个不同并行处理器执行。本发明构想由具有多个计算单元(每一计算单元可以处理图像数据块)的任一并行处理器使用,并且并行处理器可以移位此数据用于保持相关。尽管构思了使用多个这样的并行处理器,但一个适合的例子在2006年10月19日提交的美国专利申请第11/584480、名称为“集成处理器阵列、指令定序器和I/O控制器”中描述,其公开内容通过应用全部包括在本申请中并用于所有目的。
子块并行处理
【0032】图10A-10C示出与子块并行处理相关的改进。根据上述的视频标准,每一宏块12为数据位(即像素)的16行乘16列(16×16)的矩阵,划分为四个或者多个子块20。更具体地,每一矩阵分为至少四个相等的四分体子块20,每一子块20的尺寸为8×8。每一四分体子块20可以进一步分为具有尺寸8×4、4×8和4×4的子块20。因此,任一给定块12可以被分为具有尺寸8×8、8×4、4×8和4×4的子块20。
【0033】图10A示出块12,其具有一个8×8子块20a、两个4×8子块20b、两个8×4子块20c和四个4×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】图10C示出根据本发明的类型数据块,其中,类型数据块24,具有16×4的尺寸,和每一块12相关。块24的四行对应于包括该标志数据位置22的块12中的四行。因此,通过仅分析类型数据块24的每一行中的第一、第五、第九和第十三数据位置,可以确定子块20的位置和尺寸。对于实现此目的,无需进一步地分析块20。此外,保持块20中的数据位置可以被用于存储其它数据,诸如子块类型(I局部预测、使用具有运动矢量的P预测和B双向预测)、块向量等等。因此,如图10C所示,仅标志构成新子块的起始的那些数据位置22,并且块24的每一行中的第一、第五、第九和第十三数据位置匹配此标志。
相似性算法并行处理
【0037】并行处理优化的另一个来源涉及具有某些相似性(例如,相似计算)的同时处理算法。计算机处理涉及两个基本计算:数值计算和数据移动。通过执行计算数值运算或者移动(或者复制)期望数据到新的位置的算法实现这些计算过程。这些算法通常使用一系列“IF”语句执行,其中如果符合某些标准,则执行一个计算,然而如果不符合,则不做此计算或者做一个不同的计算过程。通过利用多个IF语句,可以在每一数据中执行所期望的全部计算过程。但是,此方法存在多个缺陷,首先其耗时,并且不利于并行处理。第二,因为对于每一IF语句,存在一个计算过程行,以及或者转移到下一个计算过程或者进行下一个计算,带来资源浪费。因此,对于算法通过IF语句所经过的处理的每一路径来说,多达一半的处理器功能(和宝贵的晶片空间)没有被使用。第三,需要开发独特代码,以实现算法到每一独特的数据集的每一置换。
【0038】此解决方案包括用于多个单独的计算或者数据移动的所有计算过程的算法的实现,其中,所有数据可能经历算法中的每一步,因为所有的多个数据被并行处理。随后使用选择代码来确定算法的哪一部分用于哪一数据。因此,同一代码(算法)通常被应用于所有数据,并且仅有选择代码需要为每一数据被设计,以确定每一计算如何进行。此处的优点在于如果处理多个数据,其中多个处理步骤相同,则应用一个算法代码到共同的计算和非共用的计算简化了该系统。为了应用此技术到类似算法,可以通过观察指令本身,或者通过以更细的粒度表示指令并且随后寻找相似性,来发现相似性
【0039】图11A和11B示出上述概念的一个例子。这个例子涉及用于产生像素之间中间值的双线性滤波器,其中执行某些数字计算(尽管此技术可以用于任一数据算法)。这些算法需要使用数值加和数据移位步骤的同一基本集合计算各个值,但是根据所做计算,这些步骤的顺序和编号不同。所以,图11A中,用于1/2和3/4双三次方公式的第一次计算为编号53,其要求7个计算步骤完成。第二次计算过程为编号18,需要6个计算步骤,其中,四个步骤与前一计算过程中发生的四个步骤相同并且以同样的顺序。第一公式的最后两个计算过程再次具有与前两个计算重叠的计算步骤。对于1/2双三次方公式的其它计算,以及图11B的三个双线性公式都涉及同一计算步骤的不同组合,并且所有都具有四个计算过程来完成。
【0040】对于每一公式,所有四个计算过程可以使用具有四个处理单元32的并行处理器30结合和算法每一步骤相关的选择代码来执行,每一个处理单元具有图12所示的自己的存储器34。存在和每一步骤相关的选择代码指示四个变量中的哪一个由此步骤处理。例如,存在图11A和11B的计算中示意的九个算法步骤。对于图11A的第一公式,第一步骤仅应用到第三和第四变量,其通过和此步骤相关的“0011”选择代码指示(其中如果用于此步骤的所述代码和变量为“1”,则此步骤应用到此变量,若为“0”,则不应用)。因此,“0011”的选择代码指示该步骤仅用于第三和第四变量,不用于第一和第二变量。第二步骤由“0100”的选择代码指示,其仅应用于第二变量。同样的方法用于使用所示选择代码的所有公式的所有步骤和变量。
【0041】使用选择代码的优点在于不用产生二十个算法代码来进行二十个图11A和11B中说明的各个计算(或者起码不用产生至少八个不同的算法代码来进行八个独特的数值计算),并且不用把这些算法代码的每一个载入四个处理单元的每一个中,仅需要产生和加载单个算法代码(或者被加载在进分布式存储器配置的各个处理单元中,或者加载进所有处理单元共享的单个存储器位置)。仅需要产生和加载选择代码到各个处理单元,以实现期望的计算,这变得极其简单。由于算法代码仅选择性地和并行地应用所有变量一次,因此增加了并行处理速度和效率。
【0042】尽管图11A和11B示出对于数据计算应用的选择代码的使用,用于选择性指示哪一算法步骤应用到数据的选择代码同样可用于移动数据的算法。
【0043】为了说明的目的,前述描述使用具体术语来提供对本发明的一个全面的理解。但是,对于本领域内普通技术人员来说,这些具体细节并不是用于实现本发明所需要的。因此,本发明的具体实施例的前述描述用于说明和描述的目的。其意图并不是穷尽本发明或者将本发明限制到所公开的精确形式。根据上述教导可以有多种修改和变化。例如,本发明可以用于处理任一图像格式的任一部分。也就是,本发明可以并行处理任一格式的图像,无论其是1080i HD图像、CIF图像、SIF图像,还是任一其它图像。这些图像也可以被分为任一细分形式,无论是图像的宏块还是任一其它形式。任一图像数据也可以被同样处理,无论其是亮度信息、灰阶信息、色度信息,还是任一其它信息。所选和说明的实施例是为了最好的解释本发明的原理与其实际应用,因此使得本领域内技术人员可以最好的使用本发明和具有不同修改的各个实施例以适用于所构思的具体应用。
【0044】本发明可以以方法的形式和用于实现此方法的装置的形式被实施。本发明也可以以实施于有利介质中的程序代码的形式被实施,诸如软盘、CD-ROM、硬盘驱动器、固件或者任一机器可读存储介质,其中,当程序代码被载入诸如计算机的机器并由其执行时,机器成为实施本发明的装置。本发明也可以以程序代码的形式被实施,例如,无论是存储在存储介质中、载入和/或由机器执行、或者在一些传输介质(诸如通过电线或者电缆、通过光纤或者经电磁辐射)上传输,其中,当编程代码被载入并且由诸如计算机的机器执行时,机器成为实现本发明的装置。当在通用处理器上实现时,编程代码片段与处理器相结合来提供独特的设备,其操作类似于专用逻辑电路。

Claims (18)

1.在具有计算单元的并行处理阵列中,所述计算单元被配置为处理图像的数据的块,一种方法包括:
产生图像数据的块,其中,图像数据的所述块的每一个被分为多个子块,并且每一子块的第一数据点标志所述子块的起始位置;并且
对于图像数据的所述块的每一个,产生类型数据的块,其中,类型数据的所述块的每一个包括图像数据的多个块中的所有子块的第一数据点。
2.权利要求1的方法,还包括:
使用并行处理计算单元的阵列处理图像数据的所述块,所述计算单元被配置为使用类型数据的块识别图像数据的块中的所述子块的位置和尺寸。
3.权利要求1的方法,其中,图像数据的所述块包括图像数据的行,并且其中类型数据的所述块包括类型数据的行,并且类型数据的每一行对应于图像数据的多个块的图像数据行中的一行,其包括所述子块的第一数据点的任一个。
4.权利要求1的方法,其中,图像数据的所述块包括所述图像数据的行;
仅有图像数据的所述块中的所述图像数据的行的预设子集可以包括所述子块的所述第一数据点对的任一个;并且
类型数据的所述块包括类型数据的行,每一数据类型行对应于图像数据的块中的所述图像数据的行的预设子集中的一个。
5.权利要求4的方法,其中,所述图像数据的块中的所述图像数据的预设行和类型数据的所述块中的数据的行具有相同的长度。
6.权利要求4的方法,其中,图像数据的所述块每一个包括所述图像数据的16行和16列;
所述子块的每一个包括所述图像数据的2、4或8行以及2、4或8列;并且
类型数据的所述块每一个包括所述类型数据的4行和16列。
7.权利要求6的方法,其中,除了所述子块的所述第一数据点外,所述类型数据还包括补充数据。
8.权利要求7的方法,其中所述补充数据包括指示所述图像数据是否局部可预测、使用先前运动矢量预测或双向可预测的数据。
9.权利要求3的方法,其中,对于图像数据的块的每一个,还包括:
使用类型数据的块识别图像数据的所述块中的所述子块的位置和尺寸;并且随后
使用并行处理计算单元的阵列,每次一行地处理所述图像数据的所述行。
10.一种其上具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于一种在具有计算单元的并行处理阵列中的处理方法,所述计算单元被配置为处理图像的数据的块,所述方法包括:
产生图像数据的块,其中,图像数据的所述块的每一个被分为多个子块,并且每一子块的第一数据点标志所述子块的起始位置;并且
对于图像数据的所述块的每一个,产生类型数据的块,其中,类型数据的所述块的每一个包括图像数据的多个块中的所有子块的第一数据点。
11.权利要求10的计算机可读介质,其中所述方法还包括:
使用并行处理计算单元的阵列处理图像数据的所述块,所述计算单元被配置为使用类型数据的块识别图像数据的块中的所述子块的位置和尺寸。
12.权利要求10的计算机可读介质,其中,图像数据的所述块包括图像数据的行,并且其中类型数据的所述块包括类型数据的行,并且类型数据的每一行对应于图像数据的多个块的图像数据中的一行,其包括所述子块的第一数据点的任一个。
13.权利要求10的计算机可读介质,其中,图像数据的所述块包括所述图像数据的行;
仅有图像数据的所述块中的所述图像数据的行的预设子集可以包括所述子块的所述第一数据点的任一个;并且
类型数据的所述块包括类型数据的行,每一数据类型行对应于图像数据的块中的所述图像数据的行的预设子集中的一个。
14.权利要求13的计算机可读介质,其中,所述图像数据的块中的所述图像数据的预设行和类型数据的所述块中的数据的行具有相同的长度。
15.权利要求13的计算机可读介质,其中,图像数据的所述块每一个包括所述图像数据的16行和16列;
所述子块的每一个包括所述图像数据的2、4或8行以及2、4或8列;并且
类型数据的所述块每一个包括所述类型数据的4行和16列。
16.权利要求15的计算机可读介质,其中,除了所述子块的所述第一数据点外,所述类型数据还包括补充数据。
17.权利要求16的计算机可读介质,其中所述补充数据包括指示所述图像数据是否局部可预测、使用先前运动矢量预测或双向可预测的数据。
18.权利要求12的计算机可读介质,其中,对于图像数据的块的每一个,所述方法还包括:
使用类型数据的块识别图像数据的所述块中的所述子块的位置和尺寸;并且随后
使用并行处理计算单元的阵列,每次一行地处理所述图像数据的所述行。
CNA2007800022530A 2006-01-10 2007-01-10 用于在并行处理系统中处理多媒体数据的子块的方法和装置 Pending CN101371264A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US75806506P 2006-01-10 2006-01-10
US60/758,065 2006-01-10

Publications (1)

Publication Number Publication Date
CN101371264A true CN101371264A (zh) 2009-02-18

Family

ID=38257031

Family Applications (3)

Application Number Title Priority Date Filing Date
CNA2007800022530A Pending CN101371264A (zh) 2006-01-10 2007-01-10 用于在并行处理系统中处理多媒体数据的子块的方法和装置
CNA200780002223XA Pending CN101371262A (zh) 2006-01-10 2007-01-10 用于在并行处理系统中调度多媒体数据处理的方法和装置
CNA2007800022437A Pending CN101371263A (zh) 2006-01-10 2007-01-10 用于在并行处理系统中处理多媒体数据的算法步骤的方法和装置

Family Applications After (2)

Application Number Title Priority Date Filing Date
CNA200780002223XA Pending CN101371262A (zh) 2006-01-10 2007-01-10 用于在并行处理系统中调度多媒体数据处理的方法和装置
CNA2007800022437A Pending CN101371263A (zh) 2006-01-10 2007-01-10 用于在并行处理系统中处理多媒体数据的算法步骤的方法和装置

Country Status (7)

Country Link
US (4) US20070189618A1 (zh)
EP (3) EP1971958A2 (zh)
JP (3) JP2009523291A (zh)
KR (3) KR20080094006A (zh)
CN (3) CN101371264A (zh)
TW (3) TW200737983A (zh)
WO (3) WO2007082042A2 (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383421B2 (en) 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
US7451293B2 (en) * 2005-10-21 2008-11-11 Brightscale Inc. Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing
WO2007082042A2 (en) * 2006-01-10 2007-07-19 Brightscale, Inc. Method and apparatus for processing sub-blocks of multimedia data in parallel processing systems
US8976870B1 (en) * 2006-08-30 2015-03-10 Geo Semiconductor Inc. Block and mode reordering to facilitate parallel intra prediction and motion vector prediction
US20080244238A1 (en) * 2006-09-01 2008-10-02 Bogdan Mitu Stream processing accelerator
US20080059764A1 (en) * 2006-09-01 2008-03-06 Gheorghe Stefan Integral parallel machine
US20080059763A1 (en) * 2006-09-01 2008-03-06 Lazar Bivolarski System and method for fine-grain instruction parallelism for increased efficiency of processing compressed multimedia data
US20080059467A1 (en) * 2006-09-05 2008-03-06 Lazar Bivolarski Near full motion search algorithm
US8165224B2 (en) 2007-03-22 2012-04-24 Research In Motion Limited Device and method for improved lost frame concealment
US8996846B2 (en) 2007-09-27 2015-03-31 Nvidia Corporation System, method and computer program product for performing a scan operation
US8264484B1 (en) 2007-10-29 2012-09-11 Nvidia Corporation System, method, and computer program product for organizing a plurality of rays utilizing a bounding volume
US8284188B1 (en) 2007-10-29 2012-10-09 Nvidia Corporation Ray tracing system, method, and computer program product for simultaneously traversing a hierarchy of rays and a hierarchy of objects
US8065288B1 (en) 2007-11-09 2011-11-22 Nvidia Corporation System, method, and computer program product for testing a query against multiple sets of objects utilizing a single instruction multiple data (SIMD) processing architecture
US8661226B2 (en) 2007-11-15 2014-02-25 Nvidia Corporation System, method, and computer program product for performing a scan operation on a sequence of single-bit values using a parallel processor architecture
US8773422B1 (en) 2007-12-04 2014-07-08 Nvidia Corporation System, method, and computer program product for grouping linearly ordered primitives
US8243083B1 (en) 2007-12-04 2012-08-14 Nvidia Corporation System, method, and computer program product for converting a scan algorithm to a segmented scan algorithm in an operator-independent manner
US8897583B2 (en) * 2008-05-23 2014-11-25 Panasonic Corporation Image decoding apparatus for decoding a target block by referencing information of an already decoded block in a neighborhood of the target block
US8340194B2 (en) * 2008-06-06 2012-12-25 Apple Inc. High-yield multi-threading method and apparatus for video encoders/transcoders/decoders with dynamic video reordering and multi-level video coding dependency management
JP5340289B2 (ja) * 2008-11-10 2013-11-13 パナソニック株式会社 画像復号装置、画像復号方法、集積回路及びプログラム
KR101010954B1 (ko) * 2008-11-12 2011-01-26 울산대학교 산학협력단 오디오 데이터 처리방법 및 이를 적용한 오디오 데이터 처리장치
US8321492B1 (en) 2008-12-11 2012-11-27 Nvidia Corporation System, method, and computer program product for converting a reduction algorithm to a segmented reduction algorithm
KR101673186B1 (ko) * 2010-06-09 2016-11-07 삼성전자주식회사 매크로블록의 연관관계를 고려하여 영상 데이터의 부호화 및 복호화를 병렬 처리하는 장치 및 방법
KR101698797B1 (ko) * 2010-07-27 2017-01-23 삼성전자주식회사 영상 데이터를 분할하여 부호화 및 복호화를 병렬 처리하는 장치 및 상기 장치의 동작 방법
WO2012024435A2 (en) * 2010-08-17 2012-02-23 Massively Parallel Technologies, Inc. System and method for execution of high performance computing applications
US9262166B2 (en) * 2011-11-30 2016-02-16 Intel Corporation Efficient implementation of RSA using GPU/CPU architecture
US9172923B1 (en) * 2012-12-20 2015-10-27 Elemental Technologies, Inc. Sweep dependency based graphics processing unit block scheduling
US9747563B2 (en) 2013-11-27 2017-08-29 University-Industry Cooperation Group Of Kyung Hee University Apparatus and method for matching large-scale biomedical ontologies
KR101585980B1 (ko) * 2014-04-11 2016-01-19 전자부품연구원 멀티-프로세서의 공유 메모리를 적극 활용한 cr 알고리즘 처리 방법 및 이를 적용한 프로세서
US20160119649A1 (en) * 2014-10-22 2016-04-28 PathPartner Technology Consulting Pvt. Ltd. Device and Method for Processing Ultra High Definition (UHD) Video Data Using High Efficiency Video Coding (HEVC) Universal Decoder
CN109041246B (zh) 2015-02-10 2020-01-17 华为技术有限公司 一种基站、用户终端及载波调度指示方法
CN108182579B (zh) * 2017-12-18 2020-12-18 东软集团股份有限公司 用于规则判断的数据处理方法、装置、存储介质和设备
CN115756841B (zh) * 2022-11-15 2023-07-11 重庆数字城市科技有限公司 一种基于并行处理高效数据生成系统及方法

Family Cites Families (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3308436A (en) * 1963-08-05 1967-03-07 Westinghouse Electric Corp Parallel computer system control
US4212076A (en) * 1976-09-24 1980-07-08 Giddings & Lewis, Inc. Digital computer structure providing arithmetic and boolean logic operations, the latter controlling the former
US4575818A (en) * 1983-06-07 1986-03-11 Tektronix, Inc. Apparatus for in effect extending the width of an associative memory by serial matching of portions of the search pattern
JPS6224366A (ja) * 1985-07-03 1987-02-02 Hitachi Ltd ベクトル処理装置
US4907148A (en) * 1985-11-13 1990-03-06 Alcatel U.S.A. Corp. Cellular array processor with individual cell-level data-dependent cell control and multiport input memory
US4783738A (en) * 1986-03-13 1988-11-08 International Business Machines Corporation Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
US4873626A (en) * 1986-12-17 1989-10-10 Massachusetts Institute Of Technology Parallel processing system with processor array having memory system included in system memory
US5122984A (en) * 1987-01-07 1992-06-16 Bernard Strehler Parallel associative memory system
US4943909A (en) * 1987-07-08 1990-07-24 At&T Bell Laboratories Computational origami
EP0309669B1 (de) * 1987-09-30 1992-12-30 Siemens Aktiengesellschaft Verfahren zur szenenmodellgestützten Bilddatenreduktion für digitale Fernsehsignale
US4876644A (en) * 1987-10-30 1989-10-24 International Business Machines Corp. Parallel pipelined processor
US4983958A (en) * 1988-01-29 1991-01-08 Intel Corporation Vector selectable coordinate-addressable DRAM array
US5241635A (en) * 1988-11-18 1993-08-31 Massachusetts Institute Of Technology Tagged token data processing system with operand matching in activation frames
AU624205B2 (en) * 1989-01-23 1992-06-04 General Electric Capital Corporation Variable length string matcher
US5497488A (en) * 1990-06-12 1996-03-05 Hitachi, Ltd. System for parallel string search with a function-directed parallel collation of a first partition of each string followed by matching of second partitions
US5319762A (en) * 1990-09-07 1994-06-07 The Mitre Corporation Associative memory capable of matching a variable indicator in one string of characters with a portion of another string
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5963746A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
EP0485690B1 (en) * 1990-11-13 1999-05-26 International Business Machines Corporation Parallel associative processor system
US5150430A (en) * 1991-03-15 1992-09-22 The Board Of Trustees Of The Leland Stanford Junior University Lossless data compression circuit and method
US5228098A (en) * 1991-06-14 1993-07-13 Tektronix, Inc. Adaptive spatio-temporal compression/decompression of video image signals
US5706290A (en) * 1994-12-15 1998-01-06 Shaw; Venson Method and apparatus including system architecture for multimedia communication
US5373290A (en) * 1991-09-25 1994-12-13 Hewlett-Packard Corporation Apparatus and method for managing multiple dictionaries in content addressable memory based data compression
US5640582A (en) * 1992-05-21 1997-06-17 Intel Corporation Register stacking in a computer system
US5450599A (en) * 1992-06-04 1995-09-12 International Business Machines Corporation Sequential pipelined processing for the compression and decompression of image data
US5288593A (en) * 1992-06-24 1994-02-22 Eastman Kodak Company Photographic material and process comprising a coupler capable of forming a wash-out dye (Q/Q)
US5818873A (en) * 1992-08-03 1998-10-06 Advanced Hardware Architectures, Inc. Single clock cycle data compressor/decompressor with a string reversal mechanism
US5440753A (en) * 1992-11-13 1995-08-08 Motorola, Inc. Variable length string matcher
US5446915A (en) * 1993-05-25 1995-08-29 Intel Corporation Parallel processing system virtual connection method and apparatus with protection and flow control
JPH07114577A (ja) * 1993-07-16 1995-05-02 Internatl Business Mach Corp <Ibm> データ検索装置、データ圧縮装置及び方法
US6073185A (en) * 1993-08-27 2000-06-06 Teranex, Inc. Parallel data processor
US5490264A (en) * 1993-09-30 1996-02-06 Intel Corporation Generally-diagonal mapping of address space for row/column organizer memories
US6085283A (en) * 1993-11-19 2000-07-04 Kabushiki Kaisha Toshiba Data selecting memory device and selected data transfer device
US5602764A (en) * 1993-12-22 1997-02-11 Storage Technology Corporation Comparing prioritizing memory for string searching in a data compression system
US5758176A (en) * 1994-09-28 1998-05-26 International Business Machines Corporation Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system
US5631849A (en) * 1994-11-14 1997-05-20 The 3Do Company Decompressor and compressor for simultaneously decompressing and compressng a plurality of pixels in a pixel array in a digital image differential pulse code modulation (DPCM) system
US5682491A (en) * 1994-12-29 1997-10-28 International Business Machines Corporation Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
US5867726A (en) * 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
US5926642A (en) * 1995-10-06 1999-07-20 Advanced Micro Devices, Inc. RISC86 instruction set
US6317819B1 (en) * 1996-01-11 2001-11-13 Steven G. Morton Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction
US5963210A (en) * 1996-03-29 1999-10-05 Stellar Semiconductor, Inc. Graphics processor, system and method for generating screen pixels in raster order utilizing a single interpolator
US5828593A (en) * 1996-07-11 1998-10-27 Northern Telecom Limited Large-capacity content addressable memory
US5867598A (en) * 1996-09-26 1999-02-02 Xerox Corporation Method and apparatus for processing of a JPEG compressed image
US6212237B1 (en) * 1997-06-17 2001-04-03 Nippon Telegraph And Telephone Corporation Motion vector search methods, motion vector search apparatus, and storage media storing a motion vector search program
US5909686A (en) * 1997-06-30 1999-06-01 Sun Microsystems, Inc. Hardware-assisted central processing unit access to a forwarding database
US5951672A (en) * 1997-07-02 1999-09-14 International Business Machines Corporation Synchronization method for work distribution in a multiprocessor system
EP0905651A3 (en) * 1997-09-29 2000-02-23 Canon Kabushiki Kaisha Image processing apparatus and method
US6089453A (en) * 1997-10-10 2000-07-18 Display Edge Technology, Ltd. Article-information display system using electronically controlled tags
US6167502A (en) * 1997-10-10 2000-12-26 Billions Of Operations Per Second, Inc. Method and apparatus for manifold array processing
US6226710B1 (en) * 1997-11-14 2001-05-01 Utmc Microelectronic Systems Inc. Content addressable memory (CAM) engine
US6101592A (en) * 1998-12-18 2000-08-08 Billions Of Operations Per Second, Inc. Methods and apparatus for scalable instruction set architecture with dynamic compact instructions
US6145075A (en) * 1998-02-06 2000-11-07 Ip-First, L.L.C. Apparatus and method for executing a single-cycle exchange instruction to exchange contents of two locations in a register file
US6295534B1 (en) * 1998-05-28 2001-09-25 3Com Corporation Apparatus for maintaining an ordered list
US6088044A (en) * 1998-05-29 2000-07-11 International Business Machines Corporation Method for parallelizing software graphics geometry pipeline rendering
US6119215A (en) * 1998-06-29 2000-09-12 Cisco Technology, Inc. Synchronization and control system for an arrayed processing engine
EP0992916A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. Digital signal processor
US6269354B1 (en) * 1998-11-30 2001-07-31 David W. Arathorn General purpose recognition e-circuits capable of translation-tolerant recognition, scene segmentation and attention shift, and their application to machine vision
US6173386B1 (en) * 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
FR2788873B1 (fr) * 1999-01-22 2001-03-09 Intermec Scanner Technology Ct Procede et dispositif de detection de segments de droites dans un flot de donnees numeriques representatives d'une image, dans lequel sont identifies les points contours de ladite image
EP1181648A1 (en) * 1999-04-09 2002-02-27 Clearspeed Technology Limited Parallel data processing apparatus
US6542989B2 (en) * 1999-06-15 2003-04-01 Koninklijke Philips Electronics N.V. Single instruction having op code and stack control field
US6611524B2 (en) * 1999-06-30 2003-08-26 Cisco Technology, Inc. Programmable data packet parser
EP1201088B1 (en) * 1999-07-30 2005-11-16 Indinell Sociedad Anonima Method and apparatus for processing digital images and audio data
US6745317B1 (en) * 1999-07-30 2004-06-01 Broadcom Corporation Three level direct communication connections between neighboring multiple context processing elements
US7072398B2 (en) * 2000-12-06 2006-07-04 Kai-Kuang Ma System and method for motion vector generation and analysis of digital video clips
US20020107990A1 (en) * 2000-03-03 2002-08-08 Surgient Networks, Inc. Network connected computing system including network switch
GB0019341D0 (en) * 2000-08-08 2000-09-27 Easics Nv System-on-chip solutions
US6898304B2 (en) * 2000-12-01 2005-05-24 Applied Materials, Inc. Hardware configuration for parallel data processing without cross communication
US7013302B2 (en) * 2000-12-22 2006-03-14 Nortel Networks Limited Bit field manipulation
US6772268B1 (en) * 2000-12-22 2004-08-03 Nortel Networks Ltd Centralized look up engine architecture and interface
US20020133688A1 (en) * 2001-01-29 2002-09-19 Ming-Hau Lee SIMD/MIMD processing on a reconfigurable array
US7856543B2 (en) * 2001-02-14 2010-12-21 Rambus Inc. Data processing architectures for packet handling wherein batches of data packets of unpredictable size are distributed across processing elements arranged in a SIMD array operable to process different respective packet protocols at once while executing a single common instruction stream
US6985633B2 (en) * 2001-03-26 2006-01-10 Ramot At Tel Aviv University Ltd. Device and method for decoding class-based codewords
US6782054B2 (en) * 2001-04-20 2004-08-24 Koninklijke Philips Electronics, N.V. Method and apparatus for motion vector estimation
JP2003069535A (ja) * 2001-06-15 2003-03-07 Mitsubishi Electric Corp 誤り訂正多重化装置、誤り訂正多重分離装置、これらを用いた光伝送システムおよび誤り訂正多重化伝送方法
US7383421B2 (en) * 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
US6760821B2 (en) * 2001-08-10 2004-07-06 Gemicer, Inc. Memory engine for the inspection and manipulation of data
US6938183B2 (en) * 2001-09-21 2005-08-30 The Boeing Company Fault tolerant processing architecture
JP2003100086A (ja) * 2001-09-25 2003-04-04 Fujitsu Ltd 連想メモリ回路
US7116712B2 (en) * 2001-11-02 2006-10-03 Koninklijke Philips Electronics, N.V. Apparatus and method for parallel multimedia processing
US6968445B2 (en) * 2001-12-20 2005-11-22 Sandbridge Technologies, Inc. Multithreaded processor with efficient processing for convergence device applications
US6901476B2 (en) * 2002-05-06 2005-05-31 Hywire Ltd. Variable key type search engine and method therefor
US7000091B2 (en) * 2002-08-08 2006-02-14 Hewlett-Packard Development Company, L.P. System and method for independent branching in systems with plural processing elements
US20040081238A1 (en) * 2002-10-25 2004-04-29 Manindra Parhy Asymmetric block shape modes for motion estimation
US7120195B2 (en) * 2002-10-28 2006-10-10 Hewlett-Packard Development Company, L.P. System and method for estimating motion between images
EP1602240A2 (en) * 2003-03-03 2005-12-07 Mobilygen Corporation Array arrangement for memory words and combination of video prediction data for an effective memory access
US7581080B2 (en) * 2003-04-23 2009-08-25 Micron Technology, Inc. Method for manipulating data in a group of processing elements according to locally maintained counts
US9292904B2 (en) * 2004-01-16 2016-03-22 Nvidia Corporation Video image processing with parallel processing
JP4511842B2 (ja) * 2004-01-26 2010-07-28 パナソニック株式会社 動きベクトル検出装置及び動画撮影装置
GB2411745B (en) * 2004-03-02 2006-08-02 Imagination Tech Ltd Method and apparatus for management of control flow in a simd device
US20060002474A1 (en) * 2004-06-26 2006-01-05 Oscar Chi-Lim Au Efficient multi-block motion estimation for video compression
EP1624704B1 (en) * 2004-07-29 2010-03-31 STMicroelectronics Pvt. Ltd Video decoder with parallel processors for decoding macro-blocks
JP2006140601A (ja) * 2004-11-10 2006-06-01 Canon Inc 画像処理装置及び画像処理装置の制御方法
US7644255B2 (en) * 2005-01-13 2010-01-05 Sony Computer Entertainment Inc. Method and apparatus for enable/disable control of SIMD processor slices
US7725691B2 (en) * 2005-01-28 2010-05-25 Analog Devices, Inc. Method and apparatus for accelerating processing of a non-sequential instruction stream on a processor with multiple compute units
MX2007011084A (es) * 2005-03-10 2007-11-15 Qualcomm Inc Clasificacion de contenido para procesamiento multimedia.
US8149926B2 (en) * 2005-04-11 2012-04-03 Intel Corporation Generating edge masks for a deblocking filter
US8619860B2 (en) * 2005-05-03 2013-12-31 Qualcomm Incorporated System and method for scalable encoding and decoding of multimedia data using multiple layers
US20070071404A1 (en) * 2005-09-29 2007-03-29 Honeywell International Inc. Controlled video event presentation
US7451293B2 (en) * 2005-10-21 2008-11-11 Brightscale Inc. Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing
WO2007082042A2 (en) * 2006-01-10 2007-07-19 Brightscale, Inc. Method and apparatus for processing sub-blocks of multimedia data in parallel processing systems
US20080059762A1 (en) * 2006-09-01 2008-03-06 Bogdan Mitu Multi-sequence control for a data parallel system
US20080059764A1 (en) * 2006-09-01 2008-03-06 Gheorghe Stefan Integral parallel machine
US20080059763A1 (en) * 2006-09-01 2008-03-06 Lazar Bivolarski System and method for fine-grain instruction parallelism for increased efficiency of processing compressed multimedia data
US20080059467A1 (en) * 2006-09-05 2008-03-06 Lazar Bivolarski Near full motion search algorithm
US20080126278A1 (en) * 2006-11-29 2008-05-29 Alexander Bronstein Parallel processing motion estimation for H.264 video codec

Also Published As

Publication number Publication date
TW200806039A (en) 2008-01-16
EP1971956A2 (en) 2008-09-24
TW200803464A (en) 2008-01-01
TW200737983A (en) 2007-10-01
JP2009523293A (ja) 2009-06-18
WO2007082042A2 (en) 2007-07-19
WO2007082044A2 (en) 2007-07-19
EP1971959A2 (en) 2008-09-24
KR20080085189A (ko) 2008-09-23
WO2007082043A3 (en) 2008-04-17
WO2007082043A2 (en) 2007-07-19
KR20080094006A (ko) 2008-10-22
US20070188505A1 (en) 2007-08-16
US20100066748A1 (en) 2010-03-18
US20070189618A1 (en) 2007-08-16
EP1971958A2 (en) 2008-09-24
US20070162722A1 (en) 2007-07-12
JP2009523291A (ja) 2009-06-18
JP2009523292A (ja) 2009-06-18
CN101371262A (zh) 2009-02-18
WO2007082042A3 (en) 2008-04-17
CN101371263A (zh) 2009-02-18
WO2007082044A3 (en) 2008-04-17
KR20080094005A (ko) 2008-10-22

Similar Documents

Publication Publication Date Title
CN101371264A (zh) 用于在并行处理系统中处理多媒体数据的子块的方法和装置
US7016418B2 (en) Tiled memory configuration for mapping video data and method thereof
US20080285652A1 (en) Apparatus and methods for optimization of image and motion picture memory access
US20090110077A1 (en) Image coding device, image coding method, and image coding integrated circuit
JP5115498B2 (ja) 画像符号化装置、画像符号化制御方法およびプログラム
JP2010527194A (ja) 動的運動ベクトル分析方法
CN101156450A (zh) 利用区域的动态高宽比的基于区域的3drs运动估计
US20080059467A1 (en) Near full motion search algorithm
JP2010119084A (ja) 高速動き探索装置及びその方法
JP4377693B2 (ja) 画像データ検索
CN105100669A (zh) 数字图像转换方法和装置
US8428137B2 (en) Motion search apparatus in video coding
US10430339B2 (en) Memory management method and apparatus
Huang et al. Three-level pipelined multi-resolution integer motion estimation engine with optimized reference data sharing search for AVS
JP2005244844A (ja) 動画像符号化装置
US8090024B2 (en) Methods for processing two data frames with scalable data utilization
US7606996B2 (en) Array type operation device
KR101652694B1 (ko) 적응적 연산 장치 및 적응적 연산 장치 작동 방법
TWI407797B (zh) 幀內預測方法及其裝置
JP2009252127A (ja) 情報処理装置、および情報処理方法、並びにプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090218