專利名稱:高性能去塊化濾波器的制作方法
技術領域:
本發明涉及塊樣(block wise)編碼的視頻畫面的解碼的實現。
背景技術:
在例如視頻會議、網絡會議、TV廣播和視頻電話的若干應用中采用運動畫面的實 時傳輸。然而,因為通常通過使用8個比特(1字節)表示畫面中的每個像素來描述數字視 頻,所以表示運動畫面需要大量的信息。這樣的未壓縮的視頻數據導致大的比特量,并且由 于有限的帶寬而導致無法通過常規的通信網絡和傳輸線來實時傳送這樣的未壓縮的視頻 數據。因此,支持實時視頻傳輸需要很大程度的數據壓縮。然而,數據壓縮可能損害畫面 質量。因此,已經進行了很大的努力來開發允許通過帶寬受限的數據連接來實時傳送高質 量視頻的壓縮技術。在諸如MPEG-*、H. 26*和SMPTE-VC-1的多種視頻解碼/編碼標準之間,若干算法 能力是常見的。去塊化濾波和運動估計/補償是視頻編碼所需要的一般算法的兩個典型示 例。在視頻畫面的塊樣部分上執行編碼。宏塊包括用于亮度(Iuma)以及用于色度 (chroma)的若干子塊。已經證明基于塊的編碼/解碼很有效。然而,缺點之一是重建的圖像可能包括與 用于預測和殘差信號編碼的塊相對應的可視偽像。該現象通常被稱為塊化(blocking)或 塊化偽像。減少塊化偽像的一種方法是在編碼循環中集成去塊化濾波器,這是在規范ITU-T Rec. H. 264|IS0/IEC 14496-10 AVC中的優選解決方案。這種編碼集成解決方案是非常占用 處理器時間的,因為它對于與塊邊緣相交的每個像素線需要測試過程,以使得平滑。雖然去塊化濾波器本身并不復雜,但是在濾波過程期間,濾波算法需要存取被重 建畫面幀的幾乎每個像素。因此,去塊化運算非常占用處理器時間。對于HD格式的視頻編碼提高了對于存儲器和數據處理的要求,并且需要與計算 密集能力相結合的有效和高帶寬的存儲器組織。由于這些多個要求,必須找到靈活的并行 處理方式來以成本有效的方式滿足這些要求。為了有效地支持去塊化濾波算法和其他復雜可編程功能(在多種標準中,在要求 上可能有所變化),處理器本身可能要求高的并行度和很高的時鐘速率以滿足要求。可能難 以為商業產品以成本效率的方式開發該能力的處理器。在許多情況下,去塊化濾波是在編碼過程和解碼過程(特別是對于如在HD的情況 下的高分辨率圖像)中的主要瓶頸之一。當在每個宏塊上發生濾波時,其中首先執行垂直邊緣的水平濾波,并且接下來執 行(水平邊緣的)垂直濾波,在移到下一個宏塊之前,必須對每個宏塊進行兩個方向的濾波。通常在帶有基于DSP的處理器的視頻端點中的定制硬件上安裝視頻編解碼器。然 而,近來,在具有SIMD處理器環境的通用處理器中安裝視頻編解碼器變得更加普遍。當在 典型的通用處理器中實現時,每個宏塊通常必須從RAM向在CPA中的寄存器加載兩次,一次 用于垂直去塊化濾波,一次用于水平去塊化濾波,并且可能以若干效率低和小的步驟來轉 置(transpose)每一個宏塊。因為涉及加載遠距離存儲器參照,所以這在計算上特別有要 求。
發明內容
本發明涉及在所附權利要求中闡述的方法、系統和計算機程序。本發明公開了一種用于在16字節SIMD寄存器處理器環境中執行視頻編碼或解碼 過程中對在宏塊之間的邊界相鄰像素執行去塊化濾波運算的方法,包括下述步驟通過將 每一行的塊插入相應的寄存器變量中來將包括一個亮度宏塊或兩個色度宏塊的第一數據 集從RAM加載到一組16個16字節的水平SIMD寄存器變量;對于在所述一組16個16字節 的水平SIMD寄存器變量中的所述第一數據集執行轉置指令,創建存儲在所述一組16個16 字節的水平SIMD寄存器變量中的第二數據集合;對于在所述一組16個16字節的水平SIMD 寄存器變量中的所述第二數據集合和第一相鄰宏塊的相應的邊界像素數據集執行垂直去 塊化濾波運算;對于在所述一組16個16字節的水平SIMD寄存器變量中的所述第二數據集 執行轉置指令,創建存儲在所述16個16字節的水平SIMD寄存器變量中的第三數據集;以 及對于在所述一組16個16字節的水平SIMD寄存器變量中的所述第三數據集和第二相鄰 宏塊的對應的邊界像素數據集執行垂直去塊化濾波運算。
為了使得更容易理解本發明;下面的討論將參考附圖和表。圖1圖示了在表示在邊界上的去塊化濾波過程中涉及的像素的宏塊之間的邊界,圖2示出了閾值的H. 264/AVC規范中的查找表,圖3示出了限幅值的H. 264/AVC規范中的查找表,圖4是圖示其中對亮度宏塊進行濾波的本發明的實施例的流程圖,圖5是圖示其中對兩個色度宏塊進行濾波的本發明的實施例的流程圖,圖6是圖示對于兩個向量寄存器變量的并行運算的框圖,圖7是圖示在轉置之前在16個16字節寄存器變量中插入的宏塊的框圖,圖8是圖示在轉置之后在16個16字節寄存器變量中插入的宏塊的框圖。
具體實施例方式本發明提供了一種實現去塊化濾波器以減少在通用處理器中的視頻圖像中的偽 像的方式,該方式特別適合于在規范ITU-T Rec. H. 264|lS0/IEC 14496-10 AVC中描述的現 有技術方法,下面描述其基礎。在H. 264/AVC中,在編碼循環中應用自適應去塊化濾波器。這表示對于濾波的圖 像執行進一步的預測。濾波器被設計為移除盡可能多的塊化和量化噪聲,并且仍然保留盡可能多的圖像內容。分離量化噪聲和畫面內容通常是個挑戰。這就是為什么濾波器是高度 內容適應的,并且因此在計算運算上是復雜的。在圖1中,示出了在兩個畫面塊之間的邊緣。字母c和d表示在邊緣每側的兩個 相鄰像素位置,并且其他字母表示最接近這兩個首先提及的像素的4個水平像素位置。根 據H. ^4/AVC,可以基于像素中的每一個的值并且基于邊緣本身的特性來修改像素b、c、d、 e。該修改用于均衡上述偽像。因此,僅當偽像有可能發生時才執行這種修改。對于所有的線a、b、C、d、e、f執行類似的濾波運算。在下面的描述中,將在沒有編 號0-7的情況下使用這些字母。根據H. 264,對邊緣定義強度值(Mr)。這種強度值反映偽像是否有可能在兩個塊 之間發生,并且取決于檢測到下面的情況中的一個或多個在邊界每側上的兩個塊中的任何一個是否是幀內編碼的,S卩,基于在當前畫面中 已經編碼的塊來編碼的。在邊界每側上的兩個塊中的任何一個是否包括非零轉換系數。用于預測在邊界每側上的塊的運動向量的大小是否超過特定閾值。而且,向每一個4x4塊指配量化參數(QP)。表示邊緣的QP是表示2個塊的QP的
最大值。使用若干QP相關的閾值參數α (QP)β (QP)y (QP,Str)α、β和Υ在圖2和圖3中所示的查找表中找到。圖1示出了用于確定α、β 的查找表,并且圖3是用于確定γ的查找表,Y是限幅值。這里,索引A和索引B表示QP, 并且bS = 1、2、3分別與上面列出的判據c、b、a相對應。因此,確定判據a、b、c也陳述了 邊界特性。基于這些值,執行主測試以確定是否要執行去塊化濾波。
僅在下述情況下執行濾波I c-d I < α (QP)并且 | b_c | < β (QP)并且 | d_e | < β (QP)如果上面的陳述成立,則計算德耳塔Δ Δ = (b-4c+4d-e) /8然后,在范圍(-Y,Y)內對該德耳塔值進行限幅。作為限幅的示例,如果量化值 是32,并且邊界的特性符合與bS = 2相對應的判據b,則該表指示γ是2。這暗示應當在 區間{-2,2}內對德耳塔進行限幅。即,當德耳塔大于2時,對德耳塔指配值2,當德耳塔小 于-2時,對德耳塔指配值-2,并且當德耳塔位于{2,2}內時,德耳塔保持不變。然后,使用德耳塔來計算修改值c' = c+Δd' = d-Δ執行另一個測試以判定是否也要校正b |a-cI < β (QP)如果這成立,則計算值δ
δ = (2a-4b+c+d) /2然后將該值進一步限幅到范圍(-Y ‘ ,Y')內,其中,Y ‘是Y的略微修改。然 后通過δ來計算b的修改b ‘ = b+ δ對于e而言,測試和計算是類似的I c-f I < β (QP)如果這成立,則計算另一個值δ δ = (2f-4e+c+d)/2然后,將該值進一步限幅到范圍(-Y ‘ , Y')。然后,通過δ來計算e的修改e‘ = e+ δ本發明涉及在SIMD環境中(特別是對于具有1 位向量寄存器的處理器)實現 去塊化濾波算法等。SIMD概念是一種改善其中需要執行高度重復運算的應用的性能的方 法。嚴格地說,SIMD是一種對于多條數據同時執行相同運算的技術。傳統地,當編程應用并且需要在大的數據集上執行單個運算時,使用循環來對數 據集中的每個元素做重復,并且執行所需要的過程。在每個重復期間,在單條數據上執行單 個運算。這是所謂的單指令單數據(SISD)編程。SISD通常實現起來簡單,并且在以后的時 間可迅速地查閱編程者的意圖和方法。然而,諸如這樣的循環通常效率很低,因為它們可能必須重復幾千次或甚至幾 百萬次。理想地,為了提高性能,需要減少循環重復的次數。一種減少重復的方法被稱為循環展開,這采用在循環中執行的單個運算,并且在 每次重復中將其執行多次。例如,如果循環先前執行單個運算并且進行10,000次重復,則 可以通過在每個循環中執行4次該運算并且僅具有2500次重復來改善其效率。SIMD概念 通過下述方式來更進一步展開循環將多個動作并入每一個循環重復中,并且同時執行它 們。通過SIMD,不僅可以減少循環迭代的次數,而且還可以將所需要的多個運算減少為單個 優化的動作。SIMD通過使用所謂的“封裝向量”來實現。類同傳統的編程向量或陣列,封裝向量 是包含多條基本數據的數據結構。然而,與傳統的向量不同,SIMD封裝向量然后可以被用 作特定指令的參數(例如,算數運算),然后對向量中的所有元素同時執行該特定指令。因 此,可以被加載到向量的值的數目直接影響性能;一次處理的值越多,完成完整數據集就越 快。當把值存儲在封裝向量中并且通過SIMD運算在其上發生作用時,它們實際上被 移到其中發生并行處理的特殊CPU寄存器或寄存器變量的集合。這些寄存器變量的大小和 數目由所使用的SIMD具體實現來確定。決定SIMD具體實現的實用性的其他方面是指令集。指令集是SIMD具體實現提供 的通過封裝向量使用的一系列可用運算。這些通常包括用于有效地向向量存儲值并且從 向量加載值的運算;算數運算(加、減、除、平方根等);邏輯運算(與、或等);以及比較運 算(大于、等于等)。SIMD具體實現提供的運算越多,開發者執行所需要的功能就越簡單。 當以匯編撰寫代碼時,可以直接獲得SIMD運算,然而在諸如C語言的高級編程語言中不是 這樣。
根據例如H. 264/MPEG-4AVC的去塊化濾波在每一個宏塊上發生,其中,首先執行 垂直邊緣的水平濾波,隨后執行水平邊緣的垂直濾波。在移到下一個宏塊之前,必須進行對 于每個宏塊的兩個方向的濾波。在現有技術的軟件實現的去塊化中,通常將每個宏塊從RAM 加載到CPU寄存器變量兩次,一次用于垂直濾波,一次用于水平濾波,因為這涉及加載遠距 離存儲器參照,所以在計算上要求高。本發明提供了一種僅要求每一個宏塊一次加載的方法。所包含的步驟基本上如 下加載宏塊——轉置宏塊——執行水平濾波——轉置宏塊——執行垂直濾波——存儲宏 塊。以這種方式,通過對于轉置的宏塊實際執行垂直濾波以執行水平濾波,針對每個 宏塊僅有一次加載和一次存儲,并且垂直和水平濾波的實現變得相同。本發明的另一個 益處是通過利用向量和指令級并行的優點,利用比在去塊化濾波計算中通常使用的更高 級的處理器能力。本方法與所有其他公知的方法不同之處在于轉置了整個宏塊。通過使 用在現代處理器中可獲得的增強的計算資源,完整的宏塊轉置(如在例如F. Franchetti and Μ. Piischel “Generating SIMD Vectorized Permutations,,In Proceedings of International Conference on Compiler Construction (CC) 2008 中描述的)是才百對{氏成 本的,并且所提出的方法變得特別有效。Franchetti和PUschel描述了一種高度有效的方法,該方法采用通過向量洗牌 (vector shuffle)指令實現的最小數目塊移動運算來轉置8x8矩陣。根據本發明的算法過 程被泛化為用于亮度宏塊的單個16x16轉置和用于兩個色度宏塊的2x8x8轉置。在現代處 理器中,單個寄存器通常可以保存16個像素,因此,根據本發明的優選選擇是計算使用16 字節的指令同時對于U和V色度宏塊的轉置。現代處理器包含通常包含越來越多數目的執行單元,這些執行單元常常保持空 閑。在根據本發明的去塊化濾波器的實施方式中,因為按照采用單指令多數據(SIMD)指令 和指令級并行(ILP)的最大優點的方式來構造算法,所以所有的執行單元在大多數時間保 持繁忙。本發明的一個獨特之處在于它的目標是在最佳地采用ILP的優點的環境中的執 行,其中,相信其他公知的實施方式試圖并行化更通用的算法。在圖4和圖5中所示的流程圖描述了一個亮度宏塊(圖4)和兩個色度(圖5)宏 塊(MB)的去塊化濾波(DF)。現在參考這些流程圖,在高層描述本發明的一個實施例。首先,使用有效的16字 節對齊加載來將宏塊加載到16字節對齊的寄存器變量矩陣。然后,使用最小數目的塊移動 運算通過SIMD指令來有效地轉置該矩陣。然后對于轉置的宏塊執行水平濾波。而且,矩陣 被轉置回其原始定向。使用如上所述的用于水平濾波的相同算法來執行垂直濾波。最后, 將宏塊存儲回RAM中。另外,表示用于計算下方的下一個宏塊的水平重疊(片1)的區域以及表示用于計 算右方的下一個宏塊的垂直重疊(片2)的區域分別被轉置和存儲到存儲器以供以后使用。如上所述,在當前一代的x86微處理器中存在的單指令多數據(SIMD)指令允許在 多達16個數據集上同時執行單個共同的運算。例如,當在處理器的SIMD寄存器內正確地 格式化數據時,可以在16個獨立的數據集上計算加法運算,同時獲得16個結果,如圖6中所示。執行該運算的時間成本與使用在通用寄存器上的通常的處理器指令對于單個數據集 執行單個加法運算相同。實際的處理成本發生在要對其運算的數據集的準備中。在執行水平邊緣的垂直濾 波的情況下,因為SIMD提供了用于使用單個指令來線性地加載16個字節的指令,能夠使用 單個低執行成本加載指令來加載輸入數據的單一線上的所有值。根據本發明的算法采用下述事實處理器提供足夠的寄存器空間來存儲作為亮度 宏塊或兩個色度宏塊的精確大小的整個16x16的數據集。通過執行將16個線性對齊的值 16次連續讀入16個SIMD寄存器變量(每一個能夠存儲16個值)中,為運算設置的整個數 據集可以被存儲在處理器SIMD寄存器變量內,并且可以在沒有任何存儲器相關的延遲的 情況下進行運算。在此,可以應用轉置算法來對齊在寄存器變量內的垂直邊緣,因此可作為 SIMD處理的期望的內部方向的水平邊緣而對其處理。在再一次存儲值之前,應用第二轉置 運算,以將邊緣重新定向到其原始位置。替代方式可以是以更高的指令計數為代價選擇性地單獨加載和定位每一個像素 值,以產生相同的結果。另外,因為必須還將同一數據集用于在另外定向上的處理,所以該 過程在理論上是整體冗余的,因為轉置運算以宏塊的去塊化濾波的完全匹配來渲染數據。如已經指出的,為了把用于水平行的高性能的向量化的算法同樣地應用于采樣 的垂直列,必須轉置采樣矩陣,使得把各垂直列重新對齊為各水平行。這種過程就是轉置 (transposition)步驟。圖7和圖8表示數據集,其中,采樣數據的每個行被存儲在單個向 量寄存器變量中。圖7示出當對垂直列運算時,因為采樣的單個列在整個16個向量寄存器 變量上布置,沒有理想地定向數據集。在作為轉置表示的圖8中所示的示圖表明了在轉置 該數據集之后定向對于SIMD指令如何理想,因為每列現在被存儲在單個向量寄存器變量 中。結果是,可以發生同時的跨列運算,現在已經為這個目的準備了數據。雖然其他實施方式選擇部分地“在運行中”轉置宏塊以準備SIMD友好濾波,但是 本發明在一個有效步驟中轉置宏塊,這還便于在寄存器變量中內部存儲宏塊并因此使得不 必加載宏塊兩次。顯然,這還導致了水平和垂直濾波的相同實施方式,這是本發明的主要益 處,因為僅垂直濾波已經被看作是SIMD友好的。隨著在視頻會議中使用的源幀的分辨率提高,變得越來越難以在沒有大性能損失 的情況下有效地加載和存儲宏塊。例如,對于1080p,在16x16像素中的第一和最后字節之 間的距離是 30K字節。一次一個地加載這256個字節顯然不是有效的,即使所使用的存 儲器占用少于在現代處理器中可獲得的64K字節的Ll數據高速緩存。相反,根據本發明的 過程使用有效的16字節對齊的加載來在16字節的大塊中加載數據。現代處理器通常可以每一個時鐘周期執行2或3個16字節指令,特別是如果在同 一區域中把多個獨立指令組合成組。因此,處理器的異常執行核心可以以任何順序執行獨 立的16次連續的16字節加載。因為獨立的指令可以隱藏彼此的延遲,所以整體延遲降低。雖然獨立地加載256個字節的采樣因為不需要轉置運算而可能看起來有益,但是 SIMD友好和高速緩存友好的執行的優點足夠大,整個16x16矩陣轉置的代價相比之下變得 可忽略。注意,術語寄存器變量不必然指在處理器硬件中的一個物理寄存器。可以例如以 匯編代碼和所謂的固有函數二者來實現本發明。例如,htel C/C++編譯器固有等價物是特殊的C/C++擴展,其允許使用C函數調用和C變量的句法而不是硬件寄存器。不保證希 望在寄存器中插入的固有函數中的變量被插入實際硬件寄存器中,但是地被相應地處理并 且等同地有效,如同被真的插入。術語寄存器變量因此可以被解釋為物理硬件寄存器以及 如同被真的插入硬件寄存器中來處理的寄存器變量。存在與本發明相關的多個優點。除了更有效和對齊的加載之外,它還要求更少的 加載——16次而不是256次。SIMD環境還提供同時加載——16次連續的16字節加載,而 不是多個單次“塊化”加載。因為重新使用高度有效的垂直濾波器,所以這都導致減少了對 于存儲器訪問的需要,提高了宏塊轉置性能,并且提高了水平濾波性能。在一個方面,本發明被實現為一種用于在16字節SIMD寄存器處理器環境中執行 的視頻編碼或解碼過程中對于在宏塊之間的邊界相鄰像素執行去塊化濾波運算的系統。這 樣的系統可以包括用于執行在上面的說明書中描述的方法的步驟的裝置。這樣的裝置可以 由包括在計算機中的處理裝置來提供,該計算機例如在視頻會議系統中使用的計算機。該 處理設備可以被配置為執行計算機程序。該計算機程序可以包括指令,該指令使得當該處 理設備執行該指令時該處理設備執行所公開的方法。該計算機程序可以確實地被包含在計 算機中的存儲器中或諸如磁光或固態數字存儲介質的存儲介質上或在可以例如在局域網、 廣域網或全球通信網絡中的網絡元素之間傳送的傳播信號上。
權利要求
1.一種用于在16字節SIMD寄存器處理器環境中執行的視頻編碼或解碼過程中對于在 宏塊之間的邊界相鄰像素執行去塊化濾波運算的方法,其特征在于把第一數據集從RAM加載到一組16個16字節的水平SIMD寄存器變量,所述第一數據 集構成一個亮度宏塊或兩個色度宏塊,其中所述塊的每一行被插入相應的寄存器變量中;對在所述一組16個16字節的水平SIMD寄存器變量中的所述第一數據集執行轉置指 令,創建在所述一組16個16字節的水平SIMD寄存器變量中存儲的第二數據集;對在所述一組16個16字節的水平SIMD寄存器變量中的所述第二數據集和第一相鄰 宏塊的對應的邊界像素數據集執行垂直去塊化濾波運算;對在所述一組16個16字節的水平SIMD寄存器變量中的所述第二數據集執行轉置指 令,創建在所述一組16個16字節的水平SIMD寄存器變量中存儲的第三數據集;對在所述一組16個16字節的水平SIMD寄存器變量中的所述第三數據集和第二相鄰 宏塊的對應的邊界像素數據集執行垂直去塊化濾波運算。
2.根據權利要求1所述的方法,其特征在于,所述去塊化濾波運算是根據H.264標準或 MPEG-4標準的去塊化濾波運算。
3.根據權利要求1或2所述的方法,其特征在于,所述方法進一步包括下面的步驟 轉換和存儲所述第三數據集的第一子集,所述第一子集與相關于在所述一個亮度宏塊或所述兩個色度宏塊右側的第一相鄰宏塊的邊界像素數據相對應。
4.根據前述權利要求的任何一項所述的方法,其特征在于,所述方法進一步包括下面 的步驟轉換和存儲所述第三數據集的第二子集,所述第二子集與相關于在所述一個亮度宏塊 或所述兩個色度宏塊下方的第二相鄰宏塊的邊界像素數據相對應。
5.根據前述權利要求的任何一項所述的方法,其特征在于,所述方法進一步包括下面 的步驟在所述RAM中存儲所述第三數據集,替代構成所述一個亮度宏塊或所述兩個色度宏塊 的所述第一數據集。
6.一種用于在16字節SIMD寄存器處理器環境中執行的視頻編碼或解碼過程中對于在 宏塊之間的邊界相鄰像素執行去塊化濾波運算的系統,其特征在于,所述系統包括用于把第一數據集從RAM加載到一組16個16字節的水平SIMD寄存器變量的裝置,所 述第一數據集構成一個亮度宏塊或兩個色度宏塊,其中所述塊的每一行被插入相應的寄存 器變量中;用于對在所述一組16個16字節的水平SIMD寄存器變量中的所述第一數據集執行轉 置指令以創建存儲在所述一組16個16字節的水平SIMD寄存器變量中的第二數據集的裝 置;用于對在所述一組16個16字節的水平SIMD寄存器變量中的所述第二組數據和第一 相鄰宏塊的對應的邊界像素數據集執行垂直去塊化濾波運算的裝置;用于對于在所述一組16個16字節的水平SIMD寄存器變量中的所述第二數據集執行 轉置指令以創建存儲在所述一組16個16字節的水平SIMD寄存器變量中的第三數據集的裝置;用于對在所述一組16個16字節的水平SIMD寄存器變量中的所述第三數據集和第二相鄰宏塊的對應的一組邊界像素數據執行垂直去塊化濾波運算的裝置。
7.根據權利要求6所述的系統,其特征在于,所述系統進一步包括用于轉換和存儲所述第三數據集的第一子集的裝置,所述第一子集與相關于在所述一 個亮度宏塊或所述兩個色度宏塊右側的第一相鄰宏塊的邊界像素數據相對應。
8.根據前述權利要求6或7所述的系統,其特征在于,所述系統進一步包括用于轉換和存儲所述第三數據集的第二子集的裝置,所述第二子集與相關于在所述一 個亮度宏塊或所述兩個色度宏塊下方的第二相鄰宏塊的邊界像素數據相對應。
9.根據前述權利要求6、7或8所述的系統,其特征在于,所述系統進一步包括用于在所述RAM中存儲所述第三數據集以替代構成所述一個亮度宏塊或所述兩個色 度宏塊的所述第一數據集的裝置。
10.計算機軟件程序,所述計算機軟件程序被存儲在存儲介質上用于在計算機上執行, 其特征在于,所述計算機軟件程序包括用于執行根據權利要求1至5的方法的指令。
全文摘要
本發明涉及在通用處理器中的塊樣編碼的視頻畫面的解碼。涉及在SIMD環境中,特別是對于具有128比特向量寄存器的處理器,實現去塊化濾波算法等。SIMD概念是一種改善其中需要執行高度重復的運算的應用中的性能的方法。嚴格地說,SIMD是一種對于多條數據同時執行相同運算的技術。本發明采用SIMD的并行化和下述事實寄存器大小完全適合在H.264或MPEG-4標準中公開的宏塊大小。
文檔編號H04N7/26GK102090064SQ200980126897
公開日2011年6月8日 申請日期2009年7月9日 優先權日2008年7月9日
發明者拉斯·皮特·恩勒森 申請人:坦德伯格電信公司