亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于在并行處理系統(tǒng)中處理多媒體數(shù)據(jù)的算法步驟的方法和裝置的制作方法

文檔序號:6618663閱讀:221來源:國知局
專利名稱:用于在并行處理系統(tǒng)中處理多媒體數(shù)據(jù)的算法步驟的方法和裝置的制作方法
技術(shù)領(lǐng)域
0002本發(fā)明總的涉及并行處理,更具體地,本發(fā)明涉及用于在并行 處理系統(tǒng)中調(diào)度多媒體數(shù)據(jù)處理的方法和裝置。
背景技術(shù)
0003多媒體數(shù)據(jù)日益增加的使用已經(jīng)導致不斷要求以更快速和更 有效的方式來實時處理和遞送這些數(shù)據(jù)。特別地,對于以更快速和更有效 的方式并行處理諸如圖像和音頻相關(guān)的多々某體數(shù)據(jù)的需求正日益增加。并 行處理的需要一直上升,例如,在諸如多媒體數(shù)據(jù)的壓縮和/或解壓縮的計 算密集的處理期間,需要進行相對數(shù)量較大的計算,并要求足夠快速實現(xiàn), 以使得可以實時遞送音頻和^L頻。
0004相應地,期望可以在多媒體數(shù)據(jù)的并4亍處理中繼續(xù)提高處理
些方法需要針對塊并行處理、子塊并行處理和雙線性濾波器并行處理。

發(fā)明內(nèi)容
0005本發(fā)明可以以多種方式實現(xiàn),包括作為一種方法和一種計算 機可讀介質(zhì)。本發(fā)明的多個實施例將在下文討論。
0006在具有計算單元的并行處理陣列中,所述計算單元被配置為 并行處理數(shù)據(jù)變量, 一種包括載入用于并行處理器的多個計算單元的算法 的方法,其中,所述算法包括多個處理步驟,并且其中,多個計算單元的 每一個被配置為處理和計算單元相關(guān)的數(shù)據(jù)變量,載入用于并行處理器的 多個計算單元的選擇代碼,其中,所述選擇代碼指示哪一算法步驟被計算
單元應用到數(shù)據(jù)變量,并且通過計算單元應用該算法處理步驟到所述數(shù)據(jù) 變量,其中,對于每一計算單元,僅有被選擇代碼指示的那些處理步驟被
用于數(shù)據(jù)變量。
0007在另一方面,其上具有計算機可執(zhí)行指令的計算機可讀介質(zhì), 所迷計算機可執(zhí)行指令用于一種具有計算單元的并行處理陣列中的處理 方法,所述計算單元被配置為并行處理數(shù)據(jù)變量,所述方法包括載入用于 并行處理器的多個計算單元的算法,其中,所述算法包括多個處理步驟, 并且其中,多個計算單元的每一個被配置為處理和計算單元相關(guān)的數(shù)據(jù)變 量,載入用于并行處理器的多個計算單元的選擇代碼,其中,所述選擇代 碼指示哪一算法步驟被計算單元應用到數(shù)據(jù)變量,并且通過計算單元應用
該算法處理步驟到所述數(shù)據(jù)變量,其中,對于每一計算單元,僅有被選擇 代碼指示的那些處理步驟被用于數(shù)據(jù)變量。
0008通過閱讀說明書、權(quán)利要求書和附圖,本發(fā)明的其它目的和 特征將變得明顯。


圖l概念性示出1080i高清晰度(HD)幀的宏塊;
圖2A和2B進一步示出在諸如圖像幀中的宏塊的塊的布置;
圖3A-3C示出從圖像中的宏塊的布置到各個并行處理器的映射;
圖4A-4E示出對于各種圖像格式的圖像到各個并行處理器的映射;
圖5A-5B示出16x8映射,用于映射圖像的子塊到各個并行處理器中;
圖6A-6B示出16x4映射,用于映射圖像的子塊到各個并行處理器中;
圖7A-7C示出根據(jù)本發(fā)明的實施例的映射圖像塊到并行處理器的替代方
法;
圖8A-8C示出圖像格式的數(shù)據(jù)結(jié)構(gòu)的詳細細節(jié),包括灰階(luma )和色 度信息;
圖9A-9C示出根據(jù)本發(fā)明的實施例的映射多個圖像塊到并行處理器的各 種替代方法;
圖IOA-IOC示出根據(jù)本發(fā)明的實施例的數(shù)據(jù)塊數(shù)據(jù)位置、子塊位置、子 塊標志數(shù)據(jù)位置和類型數(shù)據(jù)塊;
圖11A-IIB示出算法處理步驟和選擇代碼,用于指示哪些處理步驟用于 哪些數(shù)據(jù)變量;
圖12示出并行處理器。
0010相同的附圖標記在整個附圖中指的是相應的部分。
具體實施例方式
0011此處描述的本發(fā)明涉及并行處理改進的三個主要區(qū)域地址塊
并行處理、子塊并行處理和類似算法并行處理。 塊并行處理
0012就某種意義而言,本發(fā)明涉及一種更有效的方法用于多媒體數(shù) 據(jù)的并行處理。眾所周知,在不同的圖像格式中,圖像被細分為塊,其中, 由于圖像典型的是矩陣形式,"較后"塊通常位于圖像中其它塊的下面和右 邊,并且取決于"較前"塊的信息,所述"較前"塊是位于較后塊的上面和 左邊的圖像。較前塊一定會在較后塊之前處理,因為較后塊需要來自于較前 塊的通常稱之為相關(guān)數(shù)據(jù)的信息。相應地,塊(或者其中部分)依據(jù)其相關(guān) 數(shù)據(jù)的順序被傳輸?shù)礁鱾€并行處理器。較前塊被首先發(fā)送到并行處理器,較 后塊稍后發(fā)送。塊被存儲在并行處理器中的特定位置,并且如果必要就被移 位,使得每一塊在處理時具有其位于較前數(shù)據(jù)塊的特定組的、特定位置的相 關(guān)數(shù)據(jù)。以此方式,相關(guān)數(shù)據(jù)可以使用相同命令獲取。也就是,較前塊被移 位,使得較后塊可以使用單個命令集處理,所述命令集指示每一處理器從特 定位置獲取其相關(guān)數(shù)據(jù)。通過允許每一并行處理器使用同一命令集處理塊, 本發(fā)明的方法不需要發(fā)送單獨的命令到每一處理器,而是允許發(fā)送單一全局 命令集。這將產(chǎn)生更快速和更有效的處理。
0013圖1概念性示出圖像的示例性幀,其一般被視作矩陣形式和/ 或在存儲器中存儲。在此例中,1080i HD圖像矩陣IO被細分為68行,每一 行120個宏塊12。典型地,諸如此1080i幀的圖像通過各自宏塊12處理, 也就是,并行處理陣列的每一計算單元(或者處理器)處理一個或者多個宏 塊12。但是,盡管本發(fā)明經(jīng)常在宏塊12的上下文中討論,但應該認識到本
發(fā)明可以將圖像和其它數(shù)據(jù)細分為任意部分(通常稱為塊),其可以-故并行 處理。
0014如上所述,諸如圖1的1080i HD幀的圖像的宏塊包括相關(guān)數(shù) 據(jù),如在圖2A-2B中進一步示出的。根據(jù)諸如但不限于h. 264改進的視頻編 碼標準和VC-1 MPEG-4標準的標準,圖像的塊R的處理需要來自塊a、 d、 b 和c的相關(guān)數(shù)據(jù)(例如插值所需數(shù)據(jù))。也就是,根據(jù)這些標準,圖像的每 一塊的處理需要來自左側(cè)緊鄰的塊的數(shù)據(jù),以及來自對角方向上左上緊鄰的 塊、上方緊鄰的塊和對角方向上右上緊鄰的塊的數(shù)據(jù)。因此,塊a依賴于來
自塊d和b的信息,塊b依賴于來自塊d的信息等等,但是塊d并不依賴于
任一其它塊的信息。因此可以看出這些塊的并行處理需要沿對角線處理,其
中,首先處理塊d,緊接著處理依賴于塊d信息的塊a和b,然后是依賴于 塊a、 d和b的信息的塊R和c,等等。
0015隨后參見圖3A-3C,因此可以看出,對于最佳的并行處理,塊 可以被映射到處理器,并且以處理較前塊先于較后塊的順序被處理。圖3A 示出示例性圖像的宏塊結(jié)構(gòu),如該圖像對觀察者所呈現(xiàn)的。如上所述,按照 對于較后塊保持其相關(guān)數(shù)據(jù)的順序,圖3A的塊被處理。圖3B示出必須被處 理的對角線,該對角線被處理的順序是要保持用于較后塊的相關(guān)數(shù)據(jù)。每一 行示出 一條單獨的對角線,每一對角線僅需要來自其上面的行的相關(guān)數(shù)據(jù)。 例如,塊()。被首先處理,因為其位于圖像的最左上角,并且因此不具有任何 相關(guān)數(shù)據(jù)。緊接著處理塊0。,因此出現(xiàn)在下一行,因為其僅需要來自塊()。的 相關(guān)數(shù)據(jù)。接著處理塊、和1。,并且因此顯示在接下一行,因此塊l需要來自 塊()。和0。的相關(guān)數(shù)據(jù),并且塊1。需要來自塊0。的相關(guān)數(shù)據(jù)。因此可以看出圖 3A中的塊的每一對角線(用虛線突出顯示)可以被映射到圖3B中示出的并 行處理陣列的行中。
0016雖然映射塊到圖3B所示的計算單元的多行來保存所有必須的 上面每一行的相關(guān)數(shù)據(jù),但仍然存在困難。更具體地,用于每一塊的相關(guān)數(shù) 據(jù)仍然經(jīng)常位于相對于所述塊的不同位置中。例如,從圖3A可以看出塊4,具 有位于下述塊的相關(guān)數(shù)據(jù),以順時針方形分別是3。 1。、 2。和3。。當被映 射到圖3B所示的處理器中,這些處理器如箭頭所示布置,3。 1。、 2。和3。在 塊A上面布置成L形。相反,用于塊93的相關(guān)數(shù)據(jù)位于塊83、 82、 72和62中,
其以箭頭所示方式布置。這說明為了在處理陣列中所示的位置處理每一塊, 每一計算單元將需要其自己的命令以引導其來獲取相關(guān)數(shù)據(jù)。換句話說,因
為對于每一塊(如塊41和93所示),其各自的相關(guān)數(shù)據(jù)布置不同,必須將單獨 的數(shù)據(jù)獲取命令推送到每一處理器,降低了圖像被處理的速度。
0017在本發(fā)明的實施例中,通過在處理每一塊之前移位每一塊的相 關(guān)數(shù)據(jù),克服了此問題。本領(lǐng)域的普通技術(shù)人員可以認識到可以以任一方式 移位相關(guān)數(shù)據(jù)。但是,圖3C示出一種用于移位相關(guān)數(shù)據(jù)的方便的方法,其 中,包含相關(guān)數(shù)據(jù)的塊被移位為上述的"L"形。也就是,當處理塊X時, 需要來自塊A-D的相關(guān)凝:據(jù)。圖像中,這些塊分別位于塊X的正上方、左上 緊鄰、左邊緊鄰和右上緊鄰的位置。在并行處理陣列中,這些塊可以隨后分 別被移位到X上方的兩個處理器的位置、上方的三個處理器的位置、上方的
一個處理器的位置和緊鄰右上方的處理器的位置。例如,圖3B中,對于塊93 的處理,將包含塊8,和6,的每一行向右移一個位置,將83、 82、 72和62置為 特征"L"形。
0018在處理塊X之前通過將所有這樣的相關(guān)數(shù)據(jù)移位為"L"形, 同樣的命令集可以用于處理每一塊X。這意味著命令集只需要在一個加載操 作中被載入到并行處理器,而不需要對于每一處理器載入單獨的命令集。這 可以使得在處理圖像時帶來顯著的時間節(jié)省,特別是對于大的處理陣列而5 。
0019本領(lǐng)域內(nèi)普通技術(shù)人員將會認識到以上描述的方法僅是本發(fā)明 的一個實施例。更具體地,將會認識到盡管數(shù)據(jù)可以被移成上述"L"形, 但本發(fā)明不限于將數(shù)據(jù)塊移位成此結(jié)構(gòu)。而是,本發(fā)明包括將相關(guān)數(shù)據(jù)移位 為任一結(jié)構(gòu),或者特征位置,這可以共同用于被處理的每一塊X。特別地, 不同圖像格式可以具有不同于圖2A中所示的位于塊中的相關(guān)數(shù)據(jù),可以利 用更便利應用的除了 "L"形的其它特征位置或者形狀。
0020本領(lǐng)域的普通技術(shù)人員也將認識到,盡管到目前為止本發(fā)明已 在具有多個宏塊的1080i HD幀的上下文中進行了說明,本發(fā)明也可包括可 以被分為任一子塊的任一圖像格式。也就是說,本發(fā)明的方法可以應用于 任一幀的任一子塊。圖4A-4E說明了這一點,其示出不同類型幀的對角線 如何被映射到不同數(shù)量的處理器行中。圖4A中,HD幀的對角線可以被映射 到圖示處理器的連續(xù)行中,產(chǎn)生梯形(或者替換為菱形,或者甚至為二者 組合)布局,其中使用257行處理器, 一行中最多使用61個處理器。更小 的幀使用更少的^f亍,也就是更少的處理器。例如,在圖4B中,CIF幀使用 59行處理器,任一行中最多19個處理器。類似的,在圖4C中,當映射到 并行處理陣列時,625 SD幀將使用117行,每行最多36個處理器。類似, 在圖4D中,當映射到同一陣列中,SIF幀將使用51行,每行最多16個處 理器。在圖4E中,525 SD幀將使用107行,并且每行最多30個處理器。 從這些例子可以看出,本發(fā)明可以用于映射任一圖像到并行處理陣列,其 中,數(shù)據(jù)可以被移位到上述的行中,允許使用單個命令或者命令集處理塊。0021也應該認識到本發(fā)明不限于在塊和并行處理陣列的計算單元之 間嚴格的l-l對應。也就是說,本發(fā)明包括這樣的實施例,其中,塊的部分 謬皮映射為計算單元的部分,通過處理這些塊,增加效率和速度。圖5A-5B說
明這樣一個實施例,其中,圖像的塊被分為兩部分。隨后這些子部的每一個 如上所述被處理,除了每一子部被映射到處理器的一半并且由這一半處理器 處理。參見圖5A,塊被分為所示的上半部分和下半部分。也就是,左上角塊
被分為兩個子塊0和2。類似的,與其相鄰的塊被分為子塊1和3,以此類 推。注意,對于相關(guān)目的而言,每一子塊相當于一個完整塊,即子塊l僅需 要來自塊0的相關(guān)數(shù)據(jù),最左邊的子塊2需要來自塊0和1的相關(guān)數(shù)據(jù),等 等。參見圖5B,這些子塊隨后被映射到所示處理器的等分部分中,子塊0 和l被映射到第一行,子塊2和子塊3被映射到第二行,以此類推。隨后可 以以上述同樣的方式使用本發(fā)明的過程,如果必要,子塊沿著處理器的行移 位。
0022以此方式,可以看出不同于前述實施例,在同一時刻使用多個 處理器,允許使用多個處理器陣列,并且因此帶來更快的圖^^處理。特別地, 參見圖3B,注意所使用的處理器數(shù)量每隔一行增加一個前兩行每行使用一 個處理器,緊接著的兩行每行使用兩個處理器,以此類推。相反,圖5B示 出的實施例中所使用的處理器數(shù)量每行增加一個第一行使用一個處理器, 第二行使用兩個,以此類推。圖5A-5B的實施例因此同時使用更多的處理器, 產(chǎn)生更快的處理。
0023圖6A-6B示出另一個這樣的實施例,其中圖像的塊被分為四個 子塊,例如,圖像的左上塊被分為子塊0、 2、 4和6。這些子塊隨后按照其 相關(guān)數(shù)據(jù)所需的順序被映射到處理器的部分。也就是,每一處理器可以被分 為四個"子行",每一個子行可以處理一行子塊。各個子塊隨后可以被映射 到所示處理器的子行。例如,子塊O、 1、 2和3可以全部被映射到第一行中 的兩個處理器(第一處理器處理子塊0和1以及一個子塊2和一個子塊3, 并且第二處理器處理其余子塊2和3),并且相應處理。注意,此實施例使用 第一行中的兩個處理器,而不是一個,并且處理器的數(shù)量每行增加兩個,因 此允許每行使用更多的處理器。
0024本發(fā)明也包括將塊和處理器分為16個部分。此外,本發(fā)明包 括"并排"處理多個塊,即每行處理多個塊。圖7A-7C示出這些概念。圖7A 說明塊被分為所示的16個子塊0。-8。,本領(lǐng)域內(nèi)技術(shù)人員可以認識到單獨的 塊可以被獨單獨處理,只要它們被布置成可以正確確定它們的相關(guān)數(shù)據(jù)。圖 7B示出這樣的事實,即不互相要求相關(guān)數(shù)據(jù)的塊(即不相關(guān)塊)可以被并行 處理。每一塊如圖7A所分,所示子塊為了簡化而沒有下標,此處,例如,
第一塊^t分為16子塊,標以0-9,其中如上,具有相同的標號的子塊:f皮同時 處理。只要每一行中的塊不互相要求相關(guān)數(shù)據(jù),其可以在同一行中一起被處
理。因此, 一組處理器可以同時處理多個不相關(guān)塊。例如,圖7B中的頂行 的四個塊(分別標以0-9、 10-19、 20-29和30-39的子塊)可以^使用單個處 理器集來處理。
0025圖7C說明了這點,其中示出處理器(沿左側(cè)用數(shù)字標識)和 相應載入的子塊的表。此處,子塊0-9可以被載入處理器0-9 (其中處理器 沿著左方標識)的子塊中,形成所示的類菱形模式。其余塊隨后被載入處理 器的交迭的集中,其中,子塊10-19被載入處理器4-13中,等等。以此方 式,塊的其余子塊以及進入處理器交迭的集的多個塊的"鏈,,二者,允許更 快速地使用多個處理器,帶來更快處理。
0026圖7A-7C說明4x4處理,應該明白同樣的技術(shù)可以使用8 x 8 來實現(xiàn)。
0027除了在不同的處理器中處理不同的塊,也應該注意到同一塊中 的不同類型的數(shù)據(jù)可以在不同的處理器中處理。更具體地,本發(fā)明包括來自 同一塊的亮度(intensity)信息、灰階(luma )信息和色度(chroma)信 息的獨立處理。也就是,來自一個塊的亮度信息可以獨立于來自此塊的灰階 信息被處理,灰階信息可以獨立于來自此塊的色度信息被處理。本領(lǐng)域內(nèi)的 普通技術(shù)人可以注意到灰階信息和色度信息可以被映射到處理器并且如上 處理(即,如有必要移位等等),并且也可以被分割,其子塊被映射到不同 的處理器,來提高處理效率。圖8A-8C示出這一點。在圖8A中,灰階數(shù)據(jù) 的一個塊可以被映射到一個處理器,而其相應的色度數(shù)據(jù)的"半個塊"被映 射到同一處理器或者不同處理器。更具體地,注意到,量度、灰階和色度數(shù) 據(jù)可以被映射到處理器的相鄰集,或者類似于圖7B的行的至少部分交迭的 集中?;译A和色度信息也可以被分為子塊,用于在各個計算單元的子塊中處 理,如結(jié)合圖5A-5B和圖6A-6B所描述的。更具體地,圖8B-8C說明一個幀 的灰階和色度數(shù)據(jù)分別分為兩個和四個子塊。圖8B的兩個子塊可以隨后在 處理器的不同等分部分中處理,如結(jié)合圖5A-5B所描述。類似地,圖8C的 四個子塊可以在處理器的不同的四個之一中處理,如圖6A-6B中描述。
0028盡管一些上述實施例包括通過同一行或者多行處理器并排處理 不同塊,-f旦也應該注意到本發(fā)明包括沿著同一列處理器處理不同塊,也可以 提高處理的效率和速度。圖9A-9C概念性示出不同塊使用的處理器,其描述
了后一概念的實施例。此處,多行處理器沿著垂直軸延伸,而列沿著水平軸 延伸。因此可以看出當?shù)湫偷膲K映射到多行處理器陣列時,其將使用由區(qū)域
100-104描述的大體上呈梯形的處理器。更具體地,注意,區(qū)域104并不使
用多個處理器,因此減少處理陣列的總的用量。這可以通過處理占用區(qū)域
100-104的塊的正下方的另一塊的凄t據(jù)來至少部分補救。這個塊可以占用區(qū) 域106-112,允許使用更多的處理器,特別在隨后塊之間的"過渡"區(qū)域 104-106中。相比于如果用戶僅在完成區(qū)域100-104中的塊的處理之后才處 理區(qū)域106-112的塊,以此方式,可以更快完成處理并且使用更多的陣列。
0029圖9B-9C示出這個概念的其余延伸。更具體地,注意,所映射 的塊的垂直"鏈,,可以在兩個或者多個塊上持續(xù),使得使用足夠多的陣列。 更具體地,塊可以被映射到互相相鄰的列中, 一個塊占用區(qū)域116-120,另 一塊占用區(qū)域122-126,以此類推。
0030應該注意到,可以使用菱形替代梯形或者與梯形結(jié)合使用。此 外,不同格式的映射的任意組合可以通過不同尺寸的菱形和/或梯形或者其 組合來實現(xiàn),從而便于同時處理多個數(shù)據(jù)流。
0031本領(lǐng)域內(nèi)的普通技術(shù)人員也可以注意到以上所述的本發(fā)明的過 程和方法可以通過多個不同并行處理器執(zhí)行。本發(fā)明構(gòu)想由具有多個計算單 元(每一計算單元可以處理圖像數(shù)據(jù)塊)的任一并行處理器使用,并且并行 處理器可以移位此數(shù)據(jù)用于保持相關(guān)。盡管構(gòu)思了使用多個這樣的并行處理 器,但一個適合的例子在2006年10月19日提交的美國專利申請第 11/584480、名稱為"集成處理器陣列、指令定序器和1/0控制器"中描述, 其公開內(nèi)容通過應用全部包括在本申請中并用于所有目的。 子塊并行處理
0032圖10A-IOC示出與子塊并行處理相關(guān)的改進。根據(jù)上述的視頻 標準,每一宏塊12為數(shù)據(jù)位(即像素)的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的數(shù)目 (如果有的話),以及其在塊12中的位置可以變化。此外,各種尺寸的子塊20的數(shù)量和位置可以隨塊12到塊12改變。
0034因此,為了以并行方式處理具有子塊的塊12,必須首先確定子 塊的位置和尺寸。確定每一塊12的子塊的位置和尺寸是耗時的,其對于上 述塊12的并行處理增加了顯著的處理開銷。需要處理器分析塊12兩次,一 次來確定子塊20的位置和數(shù)量,并且然后再次以正確的順序來處理子塊(注 意,如上所述, 一些子塊20可能需要來自另一子塊處理的相關(guān)數(shù)據(jù),這就 是為什么必須首先確定各個子塊的位置和尺寸的原因)。
0035為了解決這個問題,本發(fā)明要求包括類型數(shù)據(jù)的特定塊,所述 類型數(shù)據(jù)用于標識塊12中所有子塊20的類型(即位置和尺寸),因此避免 要求處理器做出此決定。圖10B示出塊12,并且示出可能形成用于任一給定 子塊20的第一數(shù)據(jù)位置(首先意味著子塊20的最左上方項)的十六個數(shù)據(jù) 位置22。對于每一塊12,這十六個位置22將包括必要的數(shù)據(jù)來標志此數(shù)據(jù) 位置是否構(gòu)成新子塊20的第一項。如果此位置被標志,隨后此位置被作為 數(shù)據(jù)塊2G的起始點,并且其左邊緊鄰的位置(如果存在)被認為是左邊緊 鄰的最后一列子塊20,并且上方緊鄰的位置(如果存在)被作為上方緊鄰的 最后一行子塊20。如果沒有標志,則此項表示同一子塊20的持續(xù)。因此, 可以看出這十六個標志數(shù)據(jù)位置22包括所有確定子塊20的位置和尺寸必須 的數(shù)據(jù)。
0036圖IOC示出根據(jù)本發(fā)明的類型數(shù)據(jù)塊,其中,類型數(shù)據(jù)塊24, 具有16 x 4的尺寸,和每一塊12相關(guān)。塊24的四行對應于包括該標志數(shù)據(jù) 位置22的塊12中的四行。因此,通過僅分析類型數(shù)據(jù)塊24的每一行中的 第一、第五、第九和第十三數(shù)據(jù)位置,可以確定子塊20的位置和尺寸。對 于實現(xiàn)此目的,無需進一步地分析塊20。此外,保持塊20中的數(shù)據(jù)位置可 以被用于存儲其它翁:據(jù),諸如子塊類型(I局部預測、使用具有運動矢量的 P預測和B雙向預測)、塊向量等等。因此,如圖IOC所示,僅標志構(gòu)成新子 塊的起始的那些數(shù)據(jù)位置22,并且塊24的每一行中的第一、第五、第九和 第十三數(shù)據(jù)位置匹配此標志。 相似性算法并行處理0037并行處理優(yōu)化的另一個來源涉及具有某些相似性(例如,相似 計算)的同時處理算法。計算機處理涉及兩個基本計算數(shù)值計算和數(shù)據(jù)移 動。通過執(zhí)行計算凝:值運算或者移動(或者復制)期望數(shù)據(jù)到新的位置的算 法實現(xiàn)這些計算過程。這些算法通常使用一系列"IF"語句執(zhí)行,其中如果
符合某些標準,則執(zhí)行一個計算,然而如果不符合,則不做此計算或者做一 個不同的計算過程。通過利用多個IF語句,可以在每一數(shù)據(jù)中執(zhí)行所期望 的全部計算過程。但是,此方法存在多個缺陷,首先其耗時,并且不利于并 行處理。第二,因為對于每一 IF語句,存在一個計算過程行,以及或者轉(zhuǎn) 移到下一個計算過程或者進行下一個計算,帶來資源浪費。因此,對于算法
通過IF語句所經(jīng)過的處理的每一路徑來說,多達一半的處理器功能(和寶
貴的晶片空間)沒有被使用。第三,需要開發(fā)獨特代碼,以實現(xiàn)算法到每一 獨特的數(shù)據(jù)集的每一置換。
0038此解決方案包括用于多個單獨的計算或者數(shù)據(jù)移動的所有計算 過程的算法的實現(xiàn),其中,所有數(shù)據(jù)可能經(jīng)歷算法中的每一步,因為所有的 多個數(shù)據(jù)被并行處理。隨后使用選擇代碼來確定算法的哪一部分用于哪一數(shù) 據(jù)。因此,同一代碼(算法)通常被應用于所有數(shù)據(jù),并且僅有選擇代碼需 要為每一數(shù)據(jù)被設計,以確定每一計算如何進行。此處的優(yōu)點在于如果處理 多個數(shù)據(jù),其中多個處理步驟相同,則應用一個算法代碼到共同的計算和非 共用的計算簡化了該系統(tǒng)。為了應用此技術(shù)到類似算法,可以通過觀察指令 本身,或者通過以更細的粒度表示指令并且隨后尋找相似性,來發(fā)現(xiàn)相似性
0039圖IIA和IIB示出上述概念的一個例子。這個例子涉及用于產(chǎn) 生像素之間中間值的雙線性濾波器,其中執(zhí)行某些數(shù)字計算(盡管此技術(shù)可 以用于任一數(shù)據(jù)算法)。這些算法需要使用數(shù)值加和數(shù)據(jù)移位步驟的同一基 本集合計算各個值,但是根據(jù)所做計算,這些步驟的順序和編號不同。所以, 圖11A中,用于1/2和3/4雙三次方公式的第一次計算為編號53,其要求7 個計算步驟完成。第二次計算過程為編號18,需要6個計算步驟,其中,四 個步驟與前一計算過程中發(fā)生的四個步驟相同并且以同樣的順序。第一公式 的最后兩個計算過程再次具有與前兩個計算重疊的計算步驟。對于1/2雙三 次方公式的其它計算,以及圖11B的三個雙線性公式都涉及同一計算步驟的 不同組合,并且所有都具有四個計算過程來完成。
0040對于每一7>式,所有四個計算過程可以^^用具有四個處理單元 32的并行處理器30結(jié)合和算法每一步驟相關(guān)的選擇代碼來執(zhí)行,每一個處 理單元具有圖12所示的自己的存儲器34。存在和每一步驟相關(guān)的選擇代碼 指示四個變量中的哪一個由此步驟處理。例如,存在圖11A和11B的計算中 示意的九個算法步驟。對于圖IIA的第一公式,第一步驟僅應用到第三和第 四變量,其通過和此步驟相關(guān)的"0011"選擇代碼指示(其中如果用于此步
驟的所述代碼和變量為"I",,則此步^^應用到此變量,若為"0",則不應用)。 因此,"0011"的選擇代碼指示該步驟僅用于第三和第四變量,不用于第一
和第二變量。第二步驟由"0100"的選擇代碼指示,其僅應用于第二變量。
0041使用選擇代碼的優(yōu)點在于不用產(chǎn)生二十個算法代碼來進行二十 個圖1U和11B中說明的各個計算(或者起碼不用產(chǎn)生至少八個不同的算法 代碼來進行八個獨特的數(shù)值計算),并且不用把這些算法代碼的每一個載入 四個處理單元的每一個中,僅需要產(chǎn)生和加載單個算法代碼(或者被加載在 進分布式存儲器配置的各個處理單元中,或者加載進所有處理單元共享的單 個存儲器位置)。僅需要產(chǎn)生和加載選擇代碼到各個處理單元,以實現(xiàn)期望 的計算,這變得極其簡單。由于算法代碼僅選擇性地和并行地應用所有變量 一次,因此增加了并行處理速度和效率。
0042盡管圖IIA和IIB示出對于數(shù)據(jù)計算應用的選擇代碼的使用, 用于選擇性指示哪一 算法步驟應用到數(shù)據(jù)的選擇代碼同樣可用于移動數(shù)據(jù) 的算法。
0043為了說明的目的,前述描述使用具體術(shù)語來提供對本發(fā)明的一 個全面的理解。但是,對于本領(lǐng)域內(nèi)普通技術(shù)人員來說,這些具體細節(jié)并不 是用于實現(xiàn)本發(fā)明所需要的。因此,本發(fā)明的具體實施例的前述描述用于說 明和描述的目的。其意圖并不是窮盡本發(fā)明或者將本發(fā)明限制到所公開的精 確形式。根據(jù)上述教導可以有多種修改和變化。例如,本發(fā)明可以用于處理 任一圖像格式的任一部分。也就是,本發(fā)明可以并行處理任一格式的圖像, 無論其是1080i HD圖像、CIF圖像、SIF圖像,還是任一其它圖像。這些圖 像也可以被分為任一細分形式,無論是圖像的宏塊還是任一其它形式。任一 圖像數(shù)據(jù)也可以被同樣處理,無論其是亮度信息、灰階信息、色度信息,還 是任一其它信息。所選和說明的實施例是為了最好的解釋本發(fā)明的原理與其 實際應用,因此使得本領(lǐng)域內(nèi)技術(shù)人員可以最好的使用本發(fā)明和具有不同修 改的各個實施例以適用于所構(gòu)思的具體應用。
0044本發(fā)明可以以方法的形式和用于實現(xiàn)此方法的裝置的形式被實 施。本發(fā)明也可以以實施于有利介質(zhì)中的程序代碼的形式被實施,諸如軟盤、 CD-ROM、硬盤驅(qū)動器、固件或者任一機器可讀存儲介質(zhì),其中,當程序代碼 被載入諸如計算機的機器并由其執(zhí)行時,機器成為實施本發(fā)明的裝置。本發(fā) 明也可以以程序代碼的形式被實施,例如,無論是存儲在存儲介質(zhì)中、載入
和/或由機器執(zhí)行、或者在一些傳輸介質(zhì)(諸如通過電線或者電纜、通過光 纖或者經(jīng)電^f茲輻射)上傳輸,其中,當編程代碼被載入并且由諸如計算機的 機器執(zhí)行時,機器成為實現(xiàn)本發(fā)明的裝置。當在通用處理器上實現(xiàn)時,編程 代碼片段與處理器相結(jié)合來提供獨特的設備,其操作類似于專用邏輯電路。
權(quán)利要求
1.在具有計算單元的并行處理陣列中,所述計算單元被配置為并行處理數(shù)據(jù)變量,一種方法包括載入用于并行處理器的多個計算單元的算法,其中,所述算法包括多個處理步驟,并且其中,多個計算單元的每一個被配置為處理和計算單元相關(guān)的數(shù)據(jù)變量;載入用于并行處理器的多個計算單元的選擇代碼,其中,所述選擇代碼指示哪一算法步驟被計算單元應用到數(shù)據(jù)變量;并且通過計算單元應用該算法處理步驟到所述數(shù)據(jù)變量,其中,對于每一計算單元,僅有被選擇代碼指示的那些處理步驟被用于數(shù)據(jù)變量。
2、 權(quán)利要求l的方法,其中,對于所述計算單元的每一個 所述處理步驟的每一個具有與之相關(guān)的選擇代碼,由此來確定所述處理步驟是否應用于所述數(shù)據(jù)變量。
3、 權(quán)利要求1的方法,其中,所述處理步驟的每一個具有與之相關(guān) 的選擇代碼,由此來確定哪些所述計算單元,如果有的話,應用所述處理 步驟到哪些所述數(shù)據(jù)變量。
4、 權(quán)利要求l的方法,其中,所述處理步驟包括數(shù)值加和數(shù)據(jù)移位。
5、 權(quán)利要求1的方法,其中,所述載入所述算法包括載入所述算 法到多個計算單元共享的存儲器中。
6、 權(quán)利要求1的方法,其中,所述載入所述算法包括載入所述算 法到多個存儲器,其中多個存儲器的每一個和所述計算單元的一個相關(guān)。
7、 一種其上具有計算機可執(zhí)行指令的計算機可讀介質(zhì),所述計算機 可執(zhí)行指令用于一種具有計算單元的并行處理陣列中的處理方法,所述計 算單元被配置為并行處理數(shù)據(jù)變量,所述方法包括載入用于并行處理器的多個計算單元的算法,其中,所述算法包括多 個處理步驟,并且其中,多個計算單元的每一個被配置為處理和計算單元 相關(guān)的數(shù)據(jù)變量;載入用于并行處理器的多個計算單元的選擇代碼,其中,所述選擇代 碼指示哪一算法步驟被計算單元應用到數(shù)據(jù)變量;并且通過計算單元應用該算法處理步驟到所述數(shù)據(jù)變量,其中,對于每一 計算單元,僅有被選擇代碼指示的那些處理步驟被用于數(shù)據(jù)變量。
8、 權(quán)利要求1的計算機可讀介質(zhì),其中,對于所述計算單元的每一個所述處理步驟的每一個具有與之相關(guān)的選擇代碼,由此來確定所述處 理步驟是否應用于所述數(shù)據(jù)變量。
9、 權(quán)利要求1的計算機可讀介質(zhì),其中,所述處理步驟的每一個具 有與之相關(guān)的選擇代碼,由此來確定哪些所述計算單元,如果有的話,應 用所述處理步驟到哪些所述數(shù)據(jù)變量。
10、 權(quán)利要求1的計算機可讀介質(zhì),其中,所述處理步驟包括數(shù)值加 和數(shù)據(jù)移位。
11、 權(quán)利要求1的計算機可讀介質(zhì),其中,所述載入所述算法包括 載入所述算法到多個計算單元共享的存儲器中。
12、 權(quán)利要求1的計算機可讀介質(zhì),其中,所述載入所述算法包括 載入所述算法到多個存儲器,其中多個所述存儲器的每一個和所述計算單 元的一個相關(guān)。
全文摘要
一種用于數(shù)據(jù)變量的并行處理的有效的方法和設備。并行處理陣列具有計算單元,所述計算單元被配置為并行處理數(shù)據(jù)變量,載入用于并行處理器的多個計算單元的算法,所述算法包括多個處理步驟,多個計算單元的每一個被配置為處理和計算單元相關(guān)的數(shù)據(jù)變量,載入用于并行處理器的多個計算單元的選擇代碼,其中,所述選擇代碼指示哪一算法步驟被計算單元應用到數(shù)據(jù)變量,通過計算單元應用算法處理步驟到所述數(shù)據(jù)變量,其中,對于每一計算單元,僅有被選擇代碼指示的處理步驟用于數(shù)據(jù)變量。
文檔編號G06K9/36GK101371263SQ200780002243
公開日2009年2月18日 申請日期2007年1月10日 優(yōu)先權(quán)日2006年1月10日
發(fā)明者B·米圖, L·比沃拉斯基 申請人:光明測量公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1