用于執行空域和頻域之間的變換的數據處理裝置和方法
【專利摘要】提供了用于執行空域和頻域之間的變換的數據處理裝置和方法。該數據處理裝置包括被配置為接收N個輸入值并執行一系列操作來生成表示所述N個輸入值在空域和頻域之間的變換的N個輸出值的變換電路。這樣,該變換電路采用被配置為接收由變換電路生成的M個內部輸入值并執行基礎操作的基礎電路,其中M大于或等于4,該基礎操作等同于M個內部輸入值與漢克爾矩陣的矩陣乘法,漢克爾矩陣是具有恒定的斜對角線的方形矩陣。變換電路在一系列操作的執行期間被布置為:根據N個輸入值生成多組M個內部輸入值、向基礎電路提供每組M個內部輸入值以使得多組M個內部輸出值能夠被產生、以及根據多組M個內部輸出值導出N個輸出值。
【專利說明】用于執行空域和頻域之間的變換的數據處理裝置和方法
【技術領域】
[0001] 本發明涉及用于在處理視頻數據時執行空域和頻域之間的變換的技術。這樣的變 換通常是由視頻編碼器和視頻解碼器二者來執行的。其中,視頻編碼器執行前向變換以將 視頻信號從空域轉換到頻域,視頻解碼器執行相應的反向變換以將經編碼的信號從頻域轉 換回空域。
【背景技術】
[0002] 存在各種已知的用于在空域和頻域之間進行信號轉換的變換。一種通用的變換是 離散余弦變換。當前的視頻編碼器和解碼器可能需要根據多種視頻標準來執行視頻編碼 和解碼操作,這些視頻標準例如是:MPEG2、MPEG4、H. 263、Η· 264高端(H. 264high profile)、 VP8、VC-1等等。眾所周知,視頻編碼和解碼過程中的計算特別密集的部分是變換操作的執 行部分。
[0003] 視頻編碼和解碼通常是以8X8的像素數據塊(block)為基礎被執行的,其中 四個8X8的亮度⑴數據塊和兩個8X8的色度(Cb和Cr)數據塊代表了給定宏塊 (macroblock)的視頻數據。針對每個宏塊,對所有的六個8X8塊執行變換操作來產生六個 變換輸出的8X8塊。
[0004] 直到最近,只需要相對較小的變換操作,如上文提到的示例中的8X8變換。然而, 隨著高清視頻的引入,開始出現更新的視頻標準,例如HEVC標準,該HEVC標準需要對更大 的陣列(例如,16X 16和32X32)執行變換操作。已經研發出的高效執行較小尺寸的變換 的許多技術已經被發現不可擴展以用于這些更大尺寸的變換。
[0005] 具體考慮離散余弦變換(DCT)的示例,各種論文已經研究了更大的DCT,并且已經 研發出用于以下功能的技術:該技術在復乘(repeated multiplication)被準許時(即,一 個乘法的結果被作為另一乘法的輸入饋入),使得如此大的DCT能夠通過快速傅里葉變換 (FFT)型的方法被高效地實現。例如,分別由Feig和Winograd所作的、題為"關于離散余弦 變換的乘法復雜度,'(On the Multiplicative Complexity of Discrete Cosine Transforms, IEEE Trans Information Theory,Volume38,No. 4,Julyl992)以及題為"用于離散余弦變 換的快速算法''(Fast Algorithms for the Discrete Cosine Transform,IEEE Trans Signal Processing, Volume40,No. 9,Septemberl992)的兩篇論文討論了用于優化DCT的可能算 法,該可能的算法減少了所需的乘法運算的數目。然而,一般而言(特別是對于較大的變換 尺寸),這些技術需要先前提到的復乘。
[0006] 然而,在視頻標準中,通常存在至少解碼操作的輸出要精確到比特的要求,因為在 視頻處理中某些圖片的內容是從先前的圖片中預測的。以HEVC標準為具體示例,在解碼期 間執行的反向變換操作必須被實現為:與使用整數乘法(integer multiplies)的變換的參 考定點(fixed-point)版本的輸出精確匹配。結果,已知的使用復乘(通常結合移位操作) 的優化技術由于引入了舍入誤差而不能被使用。
[0007] 避免這樣的復乘需求并且因而能夠在需要比特級精確結果時被使用的一種已知 技術使用重復的(A+B,A-B)蝶形(butterfly)來減少所需的乘法運算的數目。當考慮 32X32變換的示例時,在沒有任何優化的情形下針對每一維度的變換將需要32X32次的 乘法,即1024次乘法。通過使用這些已知的蝶形技術,針對該具體場景的乘法的數目能夠 被減少為342。
[0008] 然而,這仍然有相當數目的乘法要執行,并且需要針對每一維度的變換重復該數 目的乘法。例如,視頻編碼和解碼通常使用二維的DCT,因而通過使用HEVC標準的示例的方 式,要處理的每個視頻數據塊可以包括32X32個數值的陣列。通常,二維離散余弦變換是 通過執行一系列被應用到陣列的每行和每列的一維變換來實現的,因而在上面的示例中將 涉及覆蓋陣列中的每一行的32次一維變換、以及隨后的覆蓋每一列的32次一維變換的執 行。因此,針對每個視頻數據塊,將需要64次一維變換,并且根據早前所述的特定的蝶形技 術,每次一維變換將需要342次的乘法運算。
[0009] 存在對于提供更高性能和更低面積成本的視頻編碼器和解碼器的持續期望,因此 期望減少在對視頻數據執行前向和反向變換操作期間所需的乘法的數目。隨著根據諸如 HEVC標準之類的更新的視頻標準所支持的變換的尺寸的增加,該期望將變得越來越迫切。
【發明內容】
[0010] 從第一方面看,本發明提供了一種用于在處理視頻數據時執行空域和頻域之間的 變換的數據處理裝置,該數據處理裝置包括:變換電路,該變換電路被配置為接收N個輸入 值并執行一系列操作來生成表示所述N個輸入值在空域和頻域之間的變換的N個輸出值; 基礎電路,該基礎電路被配置為接收由變換電路生成的Μ個內部輸入值并執行基礎操作以 生成用于返回至變換電路的Μ個內部輸出值,其中Μ大于或等于4,該基礎操作等同于所述 Μ個內部輸入值與包括系數c的陣列的矩陣的矩陣乘法,該矩陣具有以下形式:
[0011] CoCA···。.!
[0012] …cM
[0013] c2c3c4…cM+1 ;并且
[0014] ...
[0015] c2M_2
[0016] 變換電路在所述一系列操作的執行期間被布置為:根據N個輸入值生成多組所述 Μ個內部輸入值、向基礎電路提供每組Μ個內部輸入值從而使得多組所述Μ個內部輸出值能 夠被產生、以及根據所述多組Μ個內部輸出值導出Ν個輸出值。
[0017] 根據本發明,該數據處理裝置被配置為重復使用基礎電路,該基礎電路被配置為 執行等同于Μ個內部輸入值與包括系數c的陣列的矩陣的矩陣乘法的基礎操作,該矩陣具 有以下形式:
[0018]
[0019] …cM
[0020] c2c3c4…cM+i
[0021] ...
[0022] Ch cMcM+1 …c2M_2
[0023] M大于或等于4,并且在一個示例中M等于4。變換電路操縱原始提供的N個輸入 值從而生成多組Μ個內部輸入值,每組Μ個內部輸入值被傳送通過基礎電路。因此,基礎電 路被迭代地用于由變換電路產生的每組Μ個內部輸入值。然后變換電路根據由基礎電路產 生的多組Μ個內部輸出值來導出Ν個輸出值。
[0024] 通常,本發明的上述技術將被重復地用于一系列的一維變換從而實現二維變換。 對于每次一維變換,一組Ν個輸入值將被輸入至數據處理裝置的變換電路。根據本發明,對 于具體提供的一組Ν個輸入值,每組Μ個內部輸入值只被傳送通過基礎電路一次,并且由基 礎電路生成的內部輸出值都不被用作隨后由基礎電路執行的乘法迭代的輸入。因而,當使 用本發明的裝置時不會執行復乘,從而使得該裝置能夠生成比特級精確的結果,該結果是 諸如HEVC視頻標準之類的現代標準所需要的。
[0025] 基礎電路內采用的矩陣的具體形式是帶有恒定的斜對角線(即,正斜率的對角 線)的方形矩陣,也被稱作漢克爾矩陣。本發明的
【發明者】已經意識到:對于現代視頻處理標 準所要求的更大的變換,所需的空域和頻域之間的變換能夠以使用漢克爾矩陣來實現重復 的更小尺寸的矩陣乘法的方式進行因式分解。
[0026] 由基礎電路執行的基礎操作能夠處理上述提供的形式的漢克爾矩陣的任何具體 實例,因而能夠執行等同于Μ個內部輸入值與漢克爾矩陣的矩陣乘法的操作而不顧被分配 至IJ系數 C(l到c2SM的值。因此,通過示例的方式,即使所有的系數C(l到c2SM具有不同的值, 和/或系數的值針對被提供至基礎電路的每組Μ個內部輸入值而變化,基礎電路也能夠執 行所要求的操作。
[0027] 另外,本發明的技術可被用于編碼和解碼二者,并且可輕易地擴展至可變尺寸的 Ν〇
[0028] 已經發現,上述布置實現了為執行Ν個輸入值在空域和頻域之間的變換所需的乘 法數目的顯著減少。例如,考慮前文提到的新HEVC視頻標準所需的32點變換,已經發現: 當與HEVC參考軟件所用的局部蝶形方法相比時,根據本發明的技術需要約三分之一數目 的乘法。HEVC參考軟件(也被稱作ΗΜ-8.0,見http://r2d2n3po.tistory.com/61)是標準 的C代碼實現,其被用作論文標準的參考實現。
[0029] 空域和頻域之間執行的變換能夠采取多種形式,但在一個實施例中為離散余弦變 換。
[0030] 存在各種方式來對變換電路進行布置以生成被提供至基礎電路的每組Μ個內部 輸入值。然而,在一個實施例中,變換電路包括排列電路,該排列電路被配置為對接收到的 Ν個輸入值進行排列從而產生輸入值的Κ個群組,其中K = Ν/Μ,因此每個群組具有Μ個成 員,每個成員是所述接收到的Ν個輸入值中的一個。然后加法器電路被配置為對來自所選 群組中的相應成員執行加法運算和減法運算中的至少一種,從而生成每組所述Μ個內部輸 入值。
[0031] 由排列電路執行的實際的排列將取決于該裝置是被用于執行從空域到頻域的前 向變換還是從頻域到空域的反向變換。類似地,由加法器電路執行的加法和減法運算將依 據正在執行的是前向變換還是反向變換而不同。
[0032] 變換電路被配置來根據多組Μ個內部輸出值導出Ν個輸出值的方式可依據實施例 而變換。然而,在一個實施例中,變換電路還包括另外的加法器電路,該另外的加法器電路 被配置為對由基礎電路產生的多組所述Μ個內部輸出值執行加法運算和減法運算中的至 少一種,從而產生N個中間輸出值。由加法器電路和另外的加法器電路執行的加法/減法 將取決于該裝置被用來執行前向變換還是反向變換。
[0033] 在一個實施例中,變換電路還包括移位電路,該移位電路被配置為對N個中間輸 出值執行移位操作從而生成經移位的中間輸出值。應當注意,在基礎電路對各組Μ個內部 輸入值的迭代操作之后的Ν個中間輸出值被生成之后,移位操作只執行一次。這用于確保 結果的精確性。一次移位后的值被輸出而未被再循環(除了可能形成用于另一個相關的一 維變換的輸入值之外)。
[0034] 在一個實施例中,移位操作包括飽和操作。另外,如同移位操作,飽和操作只被執 行一次。
[0035] 在一個實施例中,變換電路還包括另外的排列電路,該另外的排列電路被配置為 對Ν個經移位的中間輸出值進行排列從而生成所述Ν個輸出值。由該另外的排列電路執行 的排列將取決于由排列電路對Ν個輸入值執行的排列。
[0036] 在一個實施例中,該裝置還包括系數生成電路,該系數生成電路被配置為:針對每 組Μ個內部輸入值生成相應的一組系數值,該組系數值將在基礎電路執行基礎操作時被使 用。因而,能夠針對基礎電路的每次迭代設置系數值組。
[0037] 如上面提到的,該裝置能夠被用于執行從空域到頻域的前向變換或者從頻域到空 域的反向變換。在一個實施例中,該裝置是可配置的從而使得它能夠在執行前向變換和反 向變換之間進行切換。
[0038] 在一個具體實施例中,不論數據處理裝置是被配置為執行前向變換還是執行反向 變換,由系數生成電路針對每組Μ個內部輸入值生成的相應的一組系數值是相同的。因而, 盡管排列電路、加法器電路、另外的加法器電路和另外的排列電路的操作將依據該裝置是 執行前向變換還是執行反向變換而被修改,基礎電路的基本操作是不變的,并且如果假設 該裝置仍然根據同一視頻標準來運行,那么完全相同的系數將由系數生成電路生成。
[0039] 盡管實施例的裝置執行了先前描述的基礎操作的多次迭代,但是通常仍需要執行 較小的變換(具體是ΜΧΜ變換)。因而,在一個實施例中,變換電路還被配置為生成另一 組Μ個內部輸入值用于提供給基礎電路,并且基礎電路被配置為通過執行等同于所述另一 組Μ個內部輸入值與離散余弦變換矩陣的矩陣乘法的離散余弦變換操作來對所述另一組Μ 個內部輸入值執行離散余弦變換。
[0040] 在一個具體實施例中,該數據處理裝置被配置為在視頻數據的編碼期間執行前向 離散余弦變換,并且基礎電路被配置為在對所述多組Μ個內部輸入值執行基礎操作之后, 執行作為離散余弦變換操作的前向離散變換操作。
[0041] 相反,如果數據處理裝置被配置為在視頻數據的解碼期間執行反向離散余弦變 換,那么基礎電路被配置為:在對所述多組Μ個內部輸入值執行基礎操作之前,執行作為離 散余弦變換操作的反向離散變換操作。
[0042] Ν的值可以依據實施例而變換。在一個實施例中,Ν是Μ的倍數。在一個具體實施 例中,Ν被約束為2的冪。
[0043] 如上面提到的,Μ可以大于或等于4,并且在一個實施例中,Μ被設為4。因而,在此 實施例中,所執行的所有乘法是相對4X4矩陣進行的而不管Ν的大小。
[0044] 加法器電路能夠以各種方式進行配置,但在一個實施例中加法器電路被配置為 SMD電路,該SMD電路提供用于并行地執行加法運算和減法運算中的至少一種的Μ個并行 處理通道以生成每組所述Μ個內部輸出值。
[0045] 類似地,在一個實施例中,該另外的加法器電路可以被配置為SMD電路,該SMD 提供用于對由基礎電路產生的每組所述Μ個內部輸出值并行地執行加法運算和減法運算 中的至少一種的Μ個并行處理通道。
[0046] 如上面提到的,當使用上述實施例的技術時,在空域和頻域之間變換Ν個輸入值 所需的乘法的數目被顯著地減少。在一個具體實施例中,數據處理裝置被配置為:通過對每 行和每列的Ν個數據值分別執行空域和頻域之間的變換,來對包括ΝX Ν陣列的數據值的視 頻數據塊進行操作,并且由基礎電路針對每行和每列執行的乘法的總數目為:3η4+3 η-2+··· +9+Ζ,其中Ζ彡9,并且其中Ν = 2η。Ζ的值取決于執行單次ΜΧΜ離散余弦變換所需的乘法 的數目,并且在一個具體實現中被配置為對32 X 32的陣列(即,Ν = 32)進行操作并且其 中Μ = 4,已經發現對于單個4X4的離散余弦變換需要六次乘法(即,Ζ = 6)。根據以上 等式,導致需要123次乘法,這約為上文提到的局部蝶形方法所需的乘法數目的三分之一。 [0047] 已經發現,上述實施例的裝置提供了顯著的靈活性。相同的裝置不僅能夠被配置 為執行前向變換和反向變換二者,而且另外該裝置可以被配置為支持不同的視頻標準。具 體地,在一個實施例中,該裝置可被配置為通過使得系數生成電路依據當前選擇的視頻標 準來設定針對每組Μ個內部輸入值被應用到基礎電路的相應的各組系數,來支持不同的視 頻標準。
[0048] 從第二方面看,本發明提供了一種用于在處理視頻數據時執行空域和頻域之間的 變換的方法,該方法包括:采用變換電路來接收Ν個輸入值并執行一系列操作來生成表示Ν 個輸入值在空域和頻域之間的變換的Ν個輸出值;采用基礎電路來接收由變換電路生成的 Μ個內部輸入值并執行基礎操作來生成用于返回至變換電路的Μ個內部輸出值,其中Μ大于 或等于4,該基礎操作等同于所述Μ個內部輸入值與包括系數。的陣列的矩陣的矩陣乘法, 該矩陣具有以下形式:
[0049]
[0050] …cM
[0051] c2c3c4...cM+1;
[0052] …
[0053] Ch cMcM+1 …c2M_2
[0054] 并且由變換電路執行的一系列操作包括:根據N個輸入值生成多組所述Μ個內部 輸入值;向基礎電路提供每組Μ個內部輸入值從而使得多組所述Μ個內部輸出值能夠被產 生;以及根據所述多組Μ個內部輸出值導出Ν個輸出值。
[0055] 從第三方面看,本發明提供了一種用于在處理視頻數據時執行空域和頻域之間的 變換的數據處理裝置,該數據處理裝置包括:變換模塊,該變換模塊用于接收Ν個輸入值并 且用于執行一系列操作來生成表示Ν個輸入值在空域和頻域之間的變換的Ν個輸出值;基 礎電路模塊,該基礎電路模塊用于接收由變換模塊生成的Μ個內部輸入值并且用于執行基 礎操作來生成用于返回至變換模塊的Μ個內部輸出值,其中Μ大于或等于4,該基礎操作等 同于所述Μ個內部輸入值與包括系數c的陣列的矩陣的矩陣乘法,該矩陣具有以下形式:
[0056]
[0057]
[0058] c2c3c4...cM+1;
[0059] …
[0060] Ch cMcM+1 …c2M_2
[0061] 并且在所述一系列操作的執行期間,變換模塊用于:根據N個輸入值生成多組所 述Μ個內部輸入值、向基礎電路模塊提供每組Μ個內部輸入值從而使得多組所述Μ個內部 輸出值能夠被產生、以及根據所述多組Μ個內部輸出值導出Ν個輸出值。
【專利附圖】
【附圖說明】
[0062] 本發明將僅僅通過示例的方式,結合在附圖中所示的實施例來進一步描述,在附 圖中:
[0063] 圖1是概要地示出了根據已知技術如何以逐塊的方式處理視頻數據幀的示圖;
[0064] 圖2示出了根據已知方法的一維DCT變換操作;
[0065] 圖3Α示出了根據一個實施例如何將ΝΧΝ的反向DCT變換矩陣進行因式分解,從 而通過一系列的更小的線性關聯矩陣和單個更小的反向DCT矩陣來實現ΝΧΝ矩陣,其中這 些更小的線性關聯矩陣的輸入和輸出將經受各種加法和減法運算;
[0066] 圖3Β示出了根據一個實施例如何將ΝΧΝ的前向DCT變換矩陣進行因式分解,從 而通過一系列的更小的線性關聯矩陣和單個前向DCT矩陣來實現ΝΧΝ矩陣,其中這些更小 的線性關聯矩陣的輸入和輸出將經受各種加法和減法運算;
[0067] 圖4是概要地示出了根據一個實施例在數據處理裝置內提供的組件從而針對Ν個 接收到的輸入值執行空域和頻域之間的變換的框圖;
[0068] 圖5概要地示出了根據一個實施例在圖4中的加法器電路和另外的加法器電路內 提供的組件;以及
[0069] 圖6Α和6Β提供了示出如下步驟的流程圖,其中該步驟是根據一個實施例由圖4 的電路執行從而對一組Ν個輸入值進行處理的步驟。
【具體實施方式】
[0070] 圖1示出了視頻數據幀10,該幀被視為是塊15的陣列,每個塊包括數據值的ΝΧΝ 陣列20。每個數據值通常將包括多個比特,例如16比特的數據。當對輸入視頻數據執行編 碼操作時,每個這樣的塊15將經受二維的變換操作以將數據從空域轉換到頻域。通常,為 了執行這樣的編碼,前向離散余弦變換(FDCT)操作將被執行。類似地,當對視頻數據的經 編碼的幀進行解碼時,每個塊將經受二維的反向離散余弦變換(IDCT)操作,從而將接收到 的經編碼的信號從頻域轉換到空域。
[0071] 在實踐中,二維DCT操作是通過一系列的一維DCT操作來執行的。例如,通常是這 樣的情形:對每行執行一維DCT操作以產生一些中間結果,并且隨后對這些中間結果的每 列執行相應系列的一維DCT操作。從而,對于NXΝ塊,為了實現所需的二維DCT操作,將需 要執行2N個一維DCT操作。
[0072] 圖2概要地示出了對輸入值X(l到&的行或列50執行的標準的一維DCT操作。這 些N個輸入值50與NXN的矩陣60相乘,該矩陣60包括系數值的NXN矩陣。如圖2中概 要所述,每行的系數與相應的輸入值相乘,然后將結果相加以產生相關聯的輸出值。從而, N個輸出值\到XN_JO將被生成。
[0073] 從圖2中將認識到:針對每個一維變換操作,需要執行大量的乘法。例如,考慮N 為32的情形,每個一維變換操作將需要32X32次乘法,即1024次乘法。如前所述,已知的 蝶形技術能夠被用于減少乘法的數目。具體地,再次考慮N為32的情形,該技術將使得乘 法的數目能夠被減少至342。然而,期望能夠進一步減少執行每個一維變換操作所需的乘法 的數目而同時仍能夠實現比特級的精確結果。
[0074] 圖3A概要地示出了為了使NXN的IDCT矩陣能夠被簡并為一系列更小的矩陣,根 據針對反向變換操作所述的實施例采用的因式分解方法。具體地,根據所述實施例,NXN 的IDCT矩陣100被有效地替換為矩陣110,矩陣110比矩陣100大(S卩,矩陣110相比矩陣 100具有更長的對角線),但是包含更少的非零元素,并且實際上通常矩陣110中大量數目 的系數值為零。沿著通過矩陣110的對角線路徑,定義了許多較小的MXM矩陣。在此具體 示例中,假設Μ等于4,并且如圖所示,提供了一系列的L4矩陣120,每個L4矩陣是先前所 述形式的漢克爾矩陣(Hankel matrix),即帶有恒定的斜對角線(skew diagonal)的線性關 聯矩陣。L4矩陣120的一個實例中的系數的實際值通常將不同于L4矩陣的另一實例中的 值。
[0075] 還如圖所示,提供了起始的IDCT(T4)矩陣130,該矩陣是大小為4X4的IDCT矩 陣。所述實施例的裝置內所設的基礎電路能夠用于通過使用這些已定義的4X4矩陣實例 130, 120中的每一個實例(始于矩陣110的左上方的矩陣)來迭代地執行矩陣乘法。然而, 向基礎電路提供的Μ個內部輸入值需要基于所供應的N個輸入值,針對每次迭代分別被推 導出來。如下文參考圖4所述,這是通過使用排列電路(permute circuitry)對所接收的Ν 個輸入值進行排列從而產生輸入值的K個群組來實現的,其中K = N/M,因而每個群組具有 Μ個成員,每個成員是接收到的N個輸入值中的一個值。另外,加法器電路接著被用于對來 自所選群組的相應成員執行一系列的加法和減法運算,從而生成每組Μ個內部輸入值。所 要求的需要被執行的加法和減法運算在圖3Α中所示的矩陣105內被定義,該矩陣105包含 〇以及+/-1的值。類似地,由基礎電路生成的內部輸出值在它們能夠被用于生成與Ν個輸 入值的IDCT相對應的Ν個輸出值之前需要進行操縱。具體地,如將在后文參考圖4所述, 另外的加法器電路被用于對由基礎電路產生的多組Μ個內部輸出值執行一系列的加法和 減法運算,其中具有0以及+/ _1值的矩陣115標識了所需的加法和減法運算。
[0076] 圖3Β示出了相同的基本因式分解方法如何能夠被用于執行前向的DCT操作。具 體地,ΝΧΝ的FDCT矩陣140被有效地簡并為矩陣150,該矩陣150包括更小的ΜΧΜ(在此 情形中為4X4)矩陣的相似布置。具體地,再次提供了一系列的L4矩陣120,但是在此實例 中提供了 FDCT4X4(F4)矩陣160代替圖3Α的IDCT4X4(T4)矩陣130。此外,基礎電路執 行F4矩陣乘法160作為最終的迭代,而在圖3A的示例中,T4矩陣乘法被作為起始的迭代 由基礎電路執行。再次,具有0以及+/-1值的矩陣145被用于限定當生成內部輸入值以提 供給基礎電路用于每次迭代時由加法器電路執行的加法和減法運算,并且類似地具有〇以 及+/-1值的矩陣155被用于標識另外的加法器電路所需的加法和減法運算,該另外的加法 器電路用于處理由基礎電路生成的內部輸出值。
[0077] 考慮圖3A和3B中示出的各種矩陣的相對大小,假設原始矩陣100和140為N*N,并 且如果N = 2n = 4X2n_2,那么矩陣110或者150的寬度將為4X (3η_3+3η_4+···+3+1+1)??紤] 具體的示例,在該示例中N = 32,η = 5,因而矩陣110或者150的寬度將為4Χ (9+3+1+1), 即56。因而,矩陣110和150中的每一個將為56X56的矩陣。在此實例中,矩陣105和145 將為32(橫向)Χ56(縱向),并且矩陣115和155將為56(橫向)Χ32(縱向)。
[0078] 圖4是示出了根據一個實施例在數據處理裝置內提供的組件的框圖。排列電路 200被布置為接收每組Ν個輸入值,并且被配置為對這Ν個輸入值執行排列從而產生存儲在 內部存儲設備205內的輸入值的Κ個群組。Κ等于Ν/Μ,因而每個群組具有Μ個成員,其中 每個成員是所接收到的Ν個輸入值中的一個值。因此,通過示例的方式,如果Ν為32并且 Μ為4,則將有8個群組被設置在存儲設備205內。
[0079] 然后加法器電路210被用于生成每組Μ個內部輸入值以提供給基礎電路215 (下 文也被稱作LM電路)。加法器電路被配置為對來自所選群組中的相應成員進行操作,因而 在一次迭代中可以對來自多個群組中的成員〇進行操作,而在另一次迭代中可以對來自多 個群組中的成員1進行操作。如先前參考圖3A和3B所述,為了確定任何特定的迭代所需 的加法和減法運算,矩陣105和125被加法器電路引用。
[0080] 考慮其中執行了反向變換的圖3A的示例,將認識到:在第一次迭代期間,加法器 電路生成將經受矩陣乘法的Μ個內部輸入值,該矩陣乘法使用形成MXM的IDCT矩陣的TM 矩陣。針對圖3Α的特定示例,假設Μ為4,從而在第一次迭代期間由加法器電路210生成 的Μ個內部輸入值將通過使用基礎電路215來經受與Τ4矩陣130的矩陣乘法。系數生成 電路220生成Τ4矩陣130內包含的系數的值。然后基礎電路215將執行所需的矩陣乘法 運算從而生成Μ個內部輸出值,該Μ個內部輸出值將被路由至另外的加法器電路225。然 后該另外的加法器電路執行由矩陣115定義的加法和減法運算,從而生成存儲于存儲設備 230內的中間輸出值。這些中間輸出值能夠被視為形成了 Κ個群組的中間輸出值,其中每個 群組具有Μ個成員,每個成員是這些中間輸出值中的一個。存儲設備230被以這樣的方式 填充:在執行完所有的迭代時,存儲設備230被填充有所有的Ν個中間輸出值。
[0081] 返回圖3Α的示例,在執行了小型4X4IDCT變換的第一迭代之后,將通過多次迭代 執行一系列的矩陣乘法來將生成的多組Μ個內部輸入值與各種線性關聯矩陣120相乘,在 圖3Α中這些線性關聯矩陣中的每一個可以采用4X4的漢克爾矩陣的形式。對于每次迭代, 加法器電路210將引用矩陣105來確定在生成每組內部輸入值時要執行的適當的加法和減 法運算,并且系數生成電路220將針對每次迭代生成適當的系數值。類似地,另外的加法器 電路225將引用矩陣115來確定在每次迭代期間對于由基礎電路生成的內部輸出值所執行 的適當的加法和減法運算。
[0082] 一旦所有所需的迭代被執行完,并且存儲設備230已經填充有Ν個中間輸出值,這 些中間輸出值將被傳送通過移位和飽和電路(shift and saturate circuit) 235,在該移位 和飽和電路235中執行移位和飽和操作以便生成經移位和飽和的中間輸出值。應當注意, 移位和飽和操作僅在所有的N個中間輸出值已經被生成之后被執行一次,這是為了確保結 果的比特級精確特性,特別是避免在處理中通過在多個步驟迭代地執行移位和飽和操作而 引入的舍入誤差。
[0083] 經移位和飽和的中間輸出值然后被傳遞到另外的排列電路240,該另外的排列電 路240被配置為對N個經移位和飽和的中間輸出值進行排列以生成所需的N個輸出值。由 另外的排列電路240執行的排列取決于由排列電路220對輸入值執行的排列。
[0084] 圖4的電路能夠被配置為在視頻數據的編碼期間執行前向變換以將該數據從空 域變換到頻域,或者被配置為在對數據進行解碼期間執行反向變換以將該數據從頻域變換 到空域。由排列電路200和另外的排列電路240執行的排列操作將取決于裝置是被用于執 行前向變換還是反向變換。類似地,由加法器電路210和另外的加法器電路225執行的加 法和減法運算將依賴于正在執行的是前向變換還是反向變換而不同。
[0085] 系數生成電路220將需要在執行反向變換操作時生成用于T4矩陣130的系數,或 者在執行前向變換時生成用于F4矩陣140的系數。然而,當在前向變換和反向變化的執行 之間對裝置進行重新配置時,針對L4矩陣120的每個實例生成的系數在一些情形中(例 如,對于較大的HEVC矩陣,前向矩陣是反向矩陣的轉置)是不變的。因此,當執行L4矩陣 乘法的多個迭代時,基礎電路的操作在這些情形中是不變的,并且完全相同的系數被系數 生成電路220生成。
[0086] 該裝置還能夠用于實現各種視頻標準。然而,由系數生成電路220生成的系數將 在不同的視頻標準之間變化。相反,排列電路200、加法器電路210、另外的加法器電路225 和另外的排列電路240的基本操作通常不受視頻標準的改變的影響。
[0087] 圖5示出了根據一個實施例在加法器電路210和另外的加法器電路225內提供的 組件。在此示例中,假設Μ等于4,則一旦K個群組的Μ個輸入值已經被存儲在圖4的存儲 設備205內,將認識到每個群組具有4個成員。在此示例中,存儲設備205被視為形成了加 法器電路210的一部分并且包括四個寄存器庫(bank)VB0300、VB1305、VB2310和VB3315, 每個寄存器庫具有足夠的寄存器來存儲來自每個群組的相應成員。因此,考慮其中N為32 的示例,將存在8個群組,每個群組具有4個成員,并且每個寄存器庫300、305、310和315 將提供八個寄存器以便使得來自這八個群組中的每個群組的相應成員能夠被存儲于此。
[0088] 由排列電路200生成的經排列的輸入值通常被緩存在RAM內并且隨后經由inO和 ini輸入端(每周期兩個數據值)以經排列的次序串行地裝載到相關的寄存器庫300、305、 310 和 315 內。
[0089] 相應的二輸入加法器320、325、330和335被與寄存器庫300、305、310和315中的 每一個相關聯地提供,并且在所示的實施例中,在每個時鐘周期期間,這些加法器中的兩個 可被用于生成內部輸入值以提供給L4電路340,而另外兩個加法器可選地被用于生成反饋 回來并存儲在相關聯的寄存器庫內的中間值。對于由L4電路340執行的每次矩陣乘法,需 要四個內部輸入值,從而要用兩個時鐘周期來生成由L4電路340執行的每次矩陣乘法所需 的輸入。
[0090] 在一個實施例中,各種加法器電路320、325、330、335執行蝶形操作和Karatsuba 遞歸,從而將32點變換分解為由L4電路340處理的4點變換。
[0091] 由加法器電路210執行的操作在此實施例中是在第一流水線(pipeline)階段P0 內執行的,然后L4電路340的操作占據了四個流水線階段P1到P4。另外的加法器電路225 然后占據了第六流水線階段P5。如圖所示,L4電路340的最后階段每周期產生兩個內部輸 出值,這兩個內部輸出值被臨時存儲在寄存器345、350內。在寄存器345中存儲的每個值 然后將根據需要被提供給加法器電路375或者加法器電路380,并且類似地在寄存器350中 存儲的每個值將根據需要被提供給加法器電路385或者加法器電路390。首先,加法器電 路375、380、385、390將這些值路由回相關聯的寄存器庫WB0355、WB1360、WB2365和WB3370 內。加法器電路375、380、385、390然后將使用蝶形操作和Karatsuba遞歸來根據4點變換 輸出重新構建32點變換輸出,并且在后續處理階段中這將使得兩個寄存器庫392和394填 充有N個中間輸出值。
[0092] -旦所有的乘法已經被L4電路執行,寄存器392、394中的內容將表示N個中間輸 出值,并且它們將隨后被路由經過移位和飽和電路396、398以生成經移位和飽和的中間輸 出值,該經移位和飽和的中間輸出值然后能夠被路由至另外的排列電路240以將這些值排 列回N個輸出值所需的最終次序。
[0093] 圖5的電路能夠被用于支持輸入值的數目是4的倍數的情況,在一個具體實施例 中,輸入值的數目被限制為2的冪,從而使得N個輸入值可以是4個輸入值、8個輸入值、16 個輸入值、32個輸入值等等。如果N確實被設為等于4,那么如圖5中所示,可以在加法器 電路320、325、330、335和另外的加法器電路375、380、385、390周圍提供旁路通路。因而, 此優化在N被設為等于Μ時允許通過電路的較低的延遲路徑。然而,移位和飽和階段的流 水線路徑Ρ6將仍然被用于所有的變換尺寸。
[0094] 多個加法器電路320、325、330、335能夠以SMD的方式進行布置,從而使得它們 并行地進行操作來執行四組加法/減法。然而,在一個實施例中,加法器電路D0和D2320、 330的操作相對于加法器電路325、335的操作被錯開,從而使得在第一周期,只有加法器電 路320和330被使用,并且生成兩個內部輸入值以提供給L4電路,而在下一周期中,加法器 325和335被用于生成另外兩個內部輸入值以提供給L4電路。在第二周期期間,加法器320 和330能夠被再次使用,但這次它們將生成用于路由回它們各自的寄存器庫300、310的中 間值。在下一周期中,所有的四個加法器能夠被再次使用,加法器320、330向L4電路提供 內部輸入值,并且加法器325、335生成用于路由回它們各自的寄存器庫305、315的中間值。 這提供了向L4電路340每周期提供兩個內部輸入值的高效機制,同時還使得中間加法和減 法將被并行地執行。輸出加法器電路375、380、385、390能夠以相似的方式進行布置來執行 SIMD加法和減法運算。
[0095] 在一個實施例中,每個提供的輸入值是16比特大小,并且寄存器庫300、305、310、 315具有18比特的輸入和輸出來容納大小增加的操作數,該大小增加的操作數可以通過由 加法器電路320、325、330、335執行的加法生成。因而,加法器電路320、325、330、335也具 有18比特的輸入和輸出。在另外的加法器電路225內,在一個實施例中寄存器庫355、360、 365、370和加法器電路375、380、385、390中的每一個具有32比特的輸入和輸出寬度來容納 內部輸出值的大小,該內部輸出值是作為在L4電路340內執行的乘法的結果生成的。移位 和飽和電路396、398的操作采用從寄存器庫392、394接收的相關的32比特輸入,并且產生 16比特輸出,即輸出值具有與輸入值相同的大小。
[0096] 圖6A和6B提供了示出根據一個實施例的圖4的電路的操作的流程圖。在步驟 400處,N個輸入值被提供至排列電路200,隨后在步驟405處執行排列從而創建K個群組 的Μ個值(排列取決于裝置是被配置為執行FDCT還是IDCT)。在步驟410處,確定裝置是 否被配置為執行IDCT,并且如果是,則處理前進到步驟415,在該步驟415中加法器電路210 被用于生成要經受IDCT操作的Μ個內部輸入值。在步驟420處,將該Μ個內部輸入值被傳 送通過基礎電路215以使用ΜΧΜ的IDCT矩陣執行矩陣乘法,其中適當的系數值是由系數 生成電路220提供的。
[0097] 處理然后前進到步驟425,其中在步驟425加法器電路210被用于對來自存儲設備 205內的所選群組中的相應成員執行加法和減法運算,以便生成多組Μ個內部輸入值,該多 組Μ個內部輸入值要經受與漢克爾矩陣的乘法。在步驟430處,將每組內部輸入值順序地 傳送通過基礎電路215,從而使得矩陣乘法的多此迭代通過使用漢克爾矩陣(也被稱作LM 線性關聯矩陣)被執行。如上所述,系數生成電路220通常將針對每次迭代生成不同組的 系數值。
[0098] 處理然后前進到步驟435,其中在步驟435中確定是否正在執行FDCT。如果不是, 則處理直接前進到步驟450。相反,如果FDCT正在被執行,那么如圖6Α中所示,步驟415和 420將被繞開,并且在步驟425和430的執行后接著執行代替這兩個步驟的步驟440和445。 具體地,在步驟440處,加法器電路210被用于生成Μ個內部輸入值,該Μ個內部輸入值要 經受使用ΜΧΜ的FDCT矩陣的FDCT矩陣乘法。此后,在步驟445處,該Μ個內部輸入值將 被傳送通過基礎電路215,該基礎電路215然后使用FDCT矩陣執行所需的矩陣乘法。再次, 系數生成電路220針對MX Μ的FDCT矩陣生成適當的系數值。
[0099] 在步驟445后,或者如果正在執行IDCT的情況下直接在步驟435之后,處理前進 到步驟450,其中在步驟450另外的加法器電路被用于對由基礎電路215生成的多組Μ個內 部輸出值執行加法和/或減法運算,以生成Ν個中間輸出值。盡管在圖6Β中,步驟450被 示出為在由基礎電路執行的基礎操作的所有迭代已經執行完之后被執行,但應認識到:在 可替換的實施例中,另外的加法器電路可以在每組Μ個內部輸出值被基礎電路生成后就對 它們進行操作。
[0100] -旦步驟450已經被執行,存儲設備230將包括Ν個中間輸出值。在步驟455處, 移位和飽和電路235對中間輸出值應用移位和飽和操作,以生成經移位和飽和的中間輸出 值。另外的排列電路240接著執行另外的排列操作以對由移位和飽和電路235提供的輸出 值進行排列以便生成Ν個輸出值。此時,Ν個輸出值將表示Ν個輸入值的比特級精確變換。 另外的排列電路240所執行的實際的排列將取決于正在執行的是FDCT還是IDCT。
[0101] 通過使用以上描述的實施例的機制,已經發現對于每個一維變換所需的乘法的數 目能夠被顯著地減少,同時維持了諸如HEVC標準之類的現代視頻標準所需的比特級精確 結果。該技術可以被用于編碼和解碼,并且可輕易地擴展到任何大小的N。在一個實施例 中,對于每個一維變換,由基礎電路215執行的乘法的總數目為3^+3^+-+9+2,其中Z彡9 并且其中N = 2n。Z的值取決于執行單個MXM離散余弦變換所需的乘法的數目,并且在一 個被配置為對32X32陣列(S卩,N = 32)進行操作并且其中Μ = 4的具體實現方式中,發 現對于單個4X4離散余弦變換需要六次乘法(即,Ζ = 6)。根據上式,結果為需要123次 乘法,這約為已知的局部蝶形方法所需的乘法數目的三分之一。
[0102] LM矩陣所需的迭代的數目能夠從上式直接導出。具體地,對于其中Μ等于4的示 例,相應地由基礎電路執行L4矩陣乘法的多次迭代,那么需要9次乘法來實現每個L4矩陣 乘法。如果Ν為32,在上文所述時需要123次乘法,這包括執行單個4X4離散余弦變換所 需的六次乘法。因此,需要117次乘法來實現L4矩陣乘法的乘法,并且具體地將有L4矩陣 的13次迭代,每次迭代需要9次乘法。
[0103] 提供了與具體實施例有關的以下附加信息。
[0104] 反向奪換算法描沭
[0105] 本節描述了如何計算N點反向離散余弦變換所需的操作,其中點數N為2的冪。首 先定義了投影(projection):
[0106]
【權利要求】
1. 一種用于在處理視頻數據時執行空域和頻域之間的變換的數據處理裝置,所述數據 處理裝置包括: 變換電路,該變換電路被配置為接收N個輸入值并執行一系列操作來生成表示所述N 個輸入值在所述空域和頻域之間的變換的N個輸出值; 基礎電路,該基礎電路被配置為接收由所述變換電路生成的Μ個內部輸入值并執行基 礎操作來生成用于返回至所述變換電路的Μ個內部輸出值,其中Μ大于或等于4,所述基礎 操作等同于所述Μ個內部輸入值與包括系數c的陣列的矩陣的矩陣乘法,該矩陣具有以下 形式: C0C1C2··· CM-1 C1C2C3··· CM C2C3C4*"CM+1 ;并且 CM-1CMCM+1··· C2M-2 所述變換電路在所述一系列操作的執行期間被布置為:根據所述N個輸入值生成多組 所述Μ個內部輸入值、向所述基礎電路提供每組Μ個內部輸入值從而使得多組所述Μ個內 部輸出值被產生、以及根據所述多組Μ個內部輸出值導出所述Ν個輸出值。
2. 如權利要求1所述的數據處理裝置,其中: 所述包括系數c的陣列的矩陣是漢克爾矩陣;并且 所述基礎電路被配置為執行等同于所述Μ個內部輸入值與所述漢克爾矩陣的矩陣乘 法的所述基礎操作,而不考慮分配到系數C(l到c2M_2的值。
3. 如權利要求1所述的數據處理裝置,其中在空域和頻域之間執行的變換是離散余弦 變換。
4. 如權利要求1所述的數據處理裝置,其中所述變換電路包括: 排列電路,該排列電路被配置為對接收到的N個輸入值進行排列從而產生輸入值的K 個群組,其中K = N/M,每個群組具有Μ個成員,每個成員是所述接收到的N個輸入值中的一 個;以及 加法器電路,該加法器電路被配置為對來自所選群組中的相應成員執行加法運算和減 法運算中的至少一種,從而生成每組所述Μ個內部輸入值。
5. 如權利要求4所述的數據處理裝置,其中所述變換電路還包括: 另外的加法器電路,該另外的加法器電路被配置為對由所述基礎電路產生的多組所述 Μ個內部輸出值執行加法運算和減法運算中的至少一種,從而產生Ν個中間輸出值。
6. 如權利要求5所述的數據處理裝置,其中所述變換電路還包括: 移位電路,該移位電路被配置為對所述Ν個中間輸出值執行移位操作從而生成經移位 的中間輸出值。
7. 如權利要求6所述的數據處理裝置,其中所述移位操作包括飽和操作。
8. 如權利要求6所述的數據處理裝置,其中所述變換電路還包括: 另外的排列電路,該另外的排列電路被配置為對Ν個經移位的中間輸出值進行排列從 而生成所述Ν個輸出值。
9. 如權利要求1所述的數據處理裝置,還包括系數生成電路,該系數生成電路被配置 為針對每組Μ個內部輸入值生成相應的一組系數值,該組系數值在所述基礎電路執行所述 基礎操作時被使用。
10. 如權利要求1所述的數據處理裝置,其中所述數據處理裝置能夠被配置為執行從 空域到頻域的前向變換和從頻域到空域的反向變換中的一種變換。
11. 如權利要求10所述的數據處理裝置,還包括系數生成電路,該系數生成電路被配 置為針對每組Μ個內部輸入值生成相應的一組系數值,該組系數值在所述基礎電路執行所 述基礎操作時被使用,其中不論所述數據處理裝置是被配置為執行所述前向變換還是被配 置為執行所述反向變換,由所述系數生成電路針對每組Μ個內部輸入值生成的所述相應的 一組系數值是相同的。
12. 如權利要求1所述的數據處理裝置,其中在空域和頻域之間執行的變換是離散余 弦變換,其中所述變換電路還被配置為生成另一組Μ個內部輸入值用于提供給所述基礎電 路,并且所述基礎電路被配置為通過執行等同于所述另一組Μ個內部輸入值與離散余弦變 換矩陣的矩陣乘法的離散余弦變換來對所述另一組Μ個內部輸入值執行離散余弦變換。
13. 如權利要求12所述的數據處理裝置,其中所述數據處理裝置被配置為在所述視頻 數據的編碼期間執行前向離散余弦變換,并且所述基礎電路被配置為在對所述多組Μ個內 部輸入值執行基礎操作之后,執行作為所述離散余弦變換操作的前向離散變換操作。
14. 如權利要求12所述的數據處理裝置,其中所述數據處理裝置被配置為在所述視頻 數據的解碼期間執行反向離散余弦變換,并且所述基礎電路被配置為在對所述多組Μ個內 部輸入值執行基礎操作之前執行作為所述離散余弦變換操作的反向離散變換操作。
15. 如權利要求1所述的數據處理裝置,其中Ν是Μ的倍數。
16. 如權利要求15所述的數據處理裝置,其中Ν是2的冪。
17. 如權利要求1所述的數據處理裝置,其中Μ為4。
18. 如權利要求1所述的數據處理裝置,其中所述變換電路包括: 排列電路,該排列電路被配置為對接收到的Ν個輸入值進行排列從而產生輸入值的Κ 個群組,其中K = Ν/Μ,每個群組具有Μ個成員,每個成員是所述接收到的Ν個輸入值中的一 個;以及 加法器電路,該加法器電路被配置為對來自所選群組中的相應成員執行加法運算和減 法運算中的至少一種,從而生成每組所述Μ個內部輸入值,其中所述加法器電路被配置為 SMD電路,該SMD電路提供用于并行地執行加法運算和減法運算中的至少一種的Μ個并行 處理通道,從而生成每組所述Μ個內部輸入值。
19. 如權利要求1所述的數據處理裝置,其中所述變換電路包括: 排列電路,該排列電路被配置為對接收到的Ν個輸入值進行排列從而產生輸入值的Κ 個群組,其中K = Ν/Μ,每個群組具有Μ個成員,每個成員是所述接收到的Ν個輸入值中的一 個;以及 加法器電路,該加法器電路被配置為對來自所選群組中的相應成員執行加法運算和減 法運算中的至少一種,從而生成每組所述Μ個內部輸入值;以及 另外的加法器電路,該另外的加法器電路被配置為對由所述基礎電路產生的多組所述 Μ個內部輸出值執行加法運算和減法運算中的至少一種,從而產生Ν個中間輸出值; 其中所述另外的加法器電路被配置為SMD電路,該SMD電路提供Μ個并行處理通道 以用于對由所述基礎電路產生的每組所述Μ個內部輸出值并行地執行加法運算和減法運 算中的至少一種。
20. 如權利要求1所述的數據處理裝置,其中: 所述數據處理裝置被配置為通過分別對每行的Ν個數據值和每列的Ν個數據值執行所 述空域和頻域之間的變換,來對包括ΝΧΝ陣列的數據值的視頻數據塊進行操作;并且 由所述基礎電路針對每行和每列執行的乘法的總數目為: 3η-ι+3η-2+...+9+ζ,其中 ζ 彡 9,并且其中 Ν = 2η。
21. 如權利要求1所述的數據處理裝置,還包括系數生成電路,該系數生成電路被配置 為針對每組Μ個內部輸入值生成相應的一組系數值,該組系數值在所述基礎電路執行所述 基礎操作時被使用,其中所述數據處理裝置能夠被配置為通過促使所述系數生成電路依據 當前選擇的視頻標準來設定針對每組Μ個內部輸入值被應用到所述基礎電路的相應的一 組系數來支持不同的視頻標準。
22. -種用于在處理視頻數據時執行空域和頻域之間的變換的方法,所述方法包括: 采用變換電路接收Ν個輸入值并執行一系列操作,來生成表示所述Ν個輸入值在所述 空域和頻域之間的變換的Ν個輸出值; 采用基礎電路接收由所述變換電路生成的Μ個內部輸入值并執行基礎操作,來生成用 于返回至所述變換電路的Μ個內部輸出值,其中Μ大于或等于4,該基礎操作等同于所述Μ 個內部輸入值與包括系數c的陣列的矩陣的矩陣乘法,該矩陣具有以下形式: C0C1C2··· CM-1 C1C2C3··· CM C2C3C4*"CM+1 ;并且 CM-1CMCM+1··· C2M-2 由所述變換電路執行的所述一系列操作包括: 根據所述N個輸入值生成多組所述Μ個內部輸入值; 向所述基礎電路提供每組Μ個內部輸入值從而使得多組所述Μ個內部輸出值被產生; 以及 根據所述多組Μ個內部輸出值導出所述Ν個輸出值。
23. -種用于在處理視頻數據時執行空域和頻域之間的變換的數據處理裝置,所述數 據處理裝置包括: 變換模塊,該變換模塊用于接收Ν個輸入值并且用于執行一系列操作來生成表示所述 Ν個輸入值在所述空域和頻域之間的變換的Ν個輸出值; 基礎電路模塊,該基礎電路模塊用于接收由所述變換模塊生成的Μ個內部輸入值并且 用于執行基礎操作來生成用于返回至所述變換模塊的Μ個內部輸出值,其中Μ大于或等于 4,所述基礎操作等同于所述Μ個內部輸入值與包括系數c的陣列的矩陣的矩陣乘法,該矩 陣具有以下形式: C0C1C2··· CM-1 C1C2C3··· CM C2C3C4*"CM+1 ;并且 CM-1CMCM+1··· C2M-2 在所述一系列操作的執行期間,所述變換模塊用于:根據所述N個輸入值生成多組所 述Μ個內部輸入值、向所述基礎電路模塊提供每組Μ個內部輸入值從而使得多組所述Μ個 內部輸出值被產生、以及根據所述多組Μ個內部輸出值導出所述Ν個輸出值。
【文檔編號】H04N19/122GK104144346SQ201410190960
【公開日】2014年11月12日 申請日期:2014年5月7日 優先權日:2013年5月7日
【發明者】多米尼克·胡戈·塞姆斯, 托馬斯·艾德索 申請人:Arm 有限公司