專利名稱:圖像編碼方法和設備以及圖像解碼方法和設備的制作方法
技術領域:
本發明涉及一種圖像編碼方法、一種圖像解碼方法、一種圖像編碼設備、以及 一種圖像解碼設備。
背景技術:
在HJ64/AVC中,從左上位置的一個開始宏塊開始,按照光柵掃描順序對一個 幀中的宏塊(MB)進行編碼。逐一連續地對每個MB進行編碼,而不管已編碼的MB的 速率-失真(R-D)成本如何。圖1示出了 HJ64/AVC用于實現幀內預測的光柵掃描順 序。粗體的宏塊是HJ64/AVC中的開始宏塊。每幅圖像僅存在一個開始MB。
由于可使用多核處理架構,期望提高HJ64/AVC中所使用的幀內預測算法的并 行性,以及找到視頻幀的最優預測路徑,以提高幀內編碼和壓縮性能。發明內容
本發明提供了一種適合于HJ64/AVC的基于MB自適應的幀內預測。
根據本發明的一個方面,可以從至少一個幀內編碼的開始宏塊(種子宏塊)開 始,接著是幀內預測的宏塊,來對幀進行編碼,其中,使用預定預測延伸模式(spread pattern)(這里也被稱作生長模式(growth pattern)),包括每當前MB —個或多個相鄰MB 的同時預測。
術語“相鄰”這里僅指與當前MB具有公共邊緣的MB,不管這些MB在當前 MB的之上、之下、左側或者右側。
此外,根據一個方面,具有高R-D成本(編碼成本)的宏塊自處理起被保持, 直到至少一個相鄰邊緣準備好并可用于預測為止。因此,針對這些MB的預測較簡單并 可以以較低編碼成本實現。這種類型的MB這里被稱作“保持-MB”。
由于編碼器和解碼器需要使用相同的種子MB和預測順序,因此這二者是預定 的。例如,通過標準種子MB和預測順序對于編碼和解碼器是隱含已知的。在一個實施 例中,生長模式是,對于每個當前MB,選擇三個相鄰MB用于下次預測周期(圖像的邊 緣上除外)。
根據本發明的一個方面,編碼包括步驟根據選擇的預定方向確定編碼成本為 高(例如,高于閾值)的至少一個MB,以及基于確定,標記所述至少一個MB用于延期 預測(deferred prediction)。因此,跳過所述至少一個MB的編碼,而對其他MB進行編 碼,直到對所述至少一個標記的MB的至少一個另一相鄰MB進行編碼為止。然后,基 于(目前至少兩個)已編碼的相鄰MB,對所述至少一個標記的MB進行預測。
保持-MB是一種對其使用預定生長模式并不是最優的例外MB,而通常預定生 長模式提供良好編碼效率。通過將這些MB標記為保持-MB用于延期預測,引入了靈活 的元素,以使得預定生長模式的構思更靈活。
根據本發明的一個方面,同時根據多個種子宏塊對幀進行編碼,其中,種子宏塊可以是可幀內預測的。由于所提出的幀內預測方法可以移除編碼幀內宏塊的預測依賴 性,因此,該方法可以高效地在多核平臺上實現,例如,多核CPU平臺、GPGPU、單元處理器等。
所提出的方法的優點是,其在編碼性能方面更高效,并且更適合于在并行處理 架構上實現。
根據本發明的一個方面,一種用于編碼圖像數據的方法,包括以下步驟
根據相應相鄰MB預測MB,其中,預測從至少一個開始點MB (或種子MB)開 始,并且根據預定生長模式,將任何一個MB的預測方向選擇為左、右、上或下;
根據選擇的預測方向確定編碼成本高于閾值的至少一個MB ;
基于所述確定,標記所述至少一個MB用于延期預測,并且跳過所述至少一個 MB的編碼;
除了所述標記用于延期預測的至少一個MB以外,對圖像的其他MB進行編碼, 包括根據所述預測確定殘差數據的步驟和編碼殘差數據的步驟;
在所述至少一個標記的MB的至少一個其他相鄰MB被編碼之后,預測所述至少 一個標記的MB;以及
對圖像的標記MB進行編碼,其中,所獲得的編碼數據包括所述標記。
根據另一方面,一種用于對編碼圖像數據進行解碼的方法包括以下步驟
提取針對至少一個開始點MB的數據;
提取針對一個或多個其他MB的殘差數據;
提取針對其他MB中的至少一個的指示,所述指示是用于延期預測的標記;
對所述其他MB進行解碼,其中,從所述開始點MB開始,并且按照預定生長 模式的順序繼續,所述預定生長模式包括左、右、上和下的預測方向,解碼包括步驟 根據生長模式從一個或多個已解碼的相鄰MB中預測所述其他MB,以及加入所述殘差數 據,其中,跳過標記用于延期預測的所述至少一個MB的預測;
針對標記用于延期預測的所述至少一個MB,確定另一相鄰MB被解碼;以及
基于所述確定,根據至少一個標記的MB的殘差數據以及至少兩個可用解碼的 相鄰MB,對所述至少一個標記的MB進行解碼。
根據另一方面,一種用于編碼圖像數據的設備包括
第一預測裝置,用于根據相應相鄰MB預測MB,其中,預測從至少一個開始點 MB開始,并且根據預定生長模式,選擇任何一個MB的預測方向,該預定生長模式包括 沿著左、右、上和下方向的預測;
第一確定裝置,用于根據選擇的預測方向確定編碼成本高于閾值的至少一個 MB ;
標記裝置,用于基于所述確定,標記所述至少一個MB用于延期預測;
第一編碼器,用于除了所述標記用于延期預測的至少一個MB以外,對圖像的 其他MB進行編碼,包括根據所述預測確定殘差數據的殘差確定裝置,和用于編碼殘 差數據的第一編碼裝置,其中,第一編碼器跳過標記用于延期預測的至少一個MB;
第二確定裝置,用于確定所述至少一個標記的MB的至少一個其他相鄰MB被編 碼;6
第二預測裝置,用于在編碼所述至少一個標記的MB的至少一個其他相鄰MB之 后,預測所述至少一個標記的MB;以及
第二編碼裝置,用于對圖像的標記MB進行編碼,其中,所獲得的編碼數據包 括所述標記。
根據又一方面,一種用于對編碼圖像數據進行解碼的設備包括
提取裝置,用于提取針對至少一個開始點MB的數據、提取針對一個或多個其 他MB的殘差數據、提取針對其他MB中的至少一個的指示,所述指示是用于延期預測的 標記;
第一解碼器,用于對所述其他MB進行解碼,其中,從所述開始點MB開始,并 且按照預定生長模式的順序繼續,所述預定生長模式包括左、右、上和下的預測方向, 其中,解碼器包括
第一確定裝置,用于根據所述指示確定標記用于延期預測的所述至少一個MB 的預測和重構要延期,第一解碼器包括預測裝置,用于根據生長模式從一個或多個已 解碼的相鄰MB中預測所述其他MB,以及重構裝置,用于加入所述殘差數據,其中, 基于來自所述確定裝置的信號,跳過標記用于延期預測的所述至少一個MB的預測和重 構;
第二確定裝置,用于針對標記用于延期預測的所述至少一個MB,確定所述第一 解碼器已對另一相鄰MB進行解碼;以及
第二解碼器,用于基于所述確定,根據至少一個標記的MB的殘差數據以及至 少兩個可用解碼的相鄰MB,對所述至少一個標記的MB進行解碼。
根據一個方面,編碼圖像或視頻信號包括針對MB的延期幀內預測的至少一個 指示。
在所附權利要求、以下說明書以及附圖中公開了本發明的有利實施例。
參照附圖描述本發明的示例實施例,在附圖中
圖1是幀內預測中使用在HJ64/AVC中的光柵掃描順序;
圖2是幀中示例性的多個種子MB (開始宏塊)的位置;
圖3是針對從種子MB開始的幀內預測的示例生長模式;
圖4是通過從多個種子MB開始的生長模式的圖像位置的覆蓋;
圖5是延期保持-MB的原理;
圖6是編碼方法的流程圖7是解碼方法的流程圖8是編碼設備的示例框圖;以及
圖9是解碼設備的示例框圖。
具體實施方式
本發明的一個原理是,同時預測圖像(例如,視頻幀)的多個宏塊,而不是一次 僅對一個MB進行編碼,來執行幀內預測。每個已編碼的MB的(達到4個)鄰域MB可以使用它們公共邊緣進行預測。引入保持-MB機制以使得能夠自動延期應必須以高 R-D成本編碼的MB的預測,直到更多鄰域邊緣是可用的。因此,可以獲得更好的壓縮 效率。
在一個實施例中,不使用一個種子宏塊來執行幀內預測,而選擇多個宏塊作為 圖像的種子宏塊。每個編碼種子MB的4個鄰域MB可以使用它們公共邊緣進行預測。 注意,這里等同地使用術語“種子MB”、“開始MB”、“種子開始MB”、以及“種 子開始點”。
在HJ64/AVC中,僅每個幀的一個MB (在左上位置處)用作種子MB。在本發 明的一個實施例中,選擇多個種子MB來同時執行幀內預測。種子MB可以在幀中隨機 分布、或通過規則來選擇、或是預定的。選擇的種子MB越多,引入越多的并行性。在 圖2中,在具有W*H個MB的圖像中示出了簡單種子MB設置作為示例。陰影MB是 樣本種子MB。每幅圖像的種子MB數目取決于圖像大小以及用于并行處理的可用處理 能力。對于當今的普通圖像大小和并行處理器而言,種子MB的示例數目在15與25之 間。
由于編碼器和解碼器需要使用相同的預測順序,因此,生長模式是預定的。生 長模式對于編碼器和解碼器可以是隱含已知的,例如,該生長模式可以是標準化的。在 一個實施例中,生長模式是,對于每個當前MB,選擇三個相鄰MB用于下個預測周期。
在一個實施例中,各種不同的生長模式是預定的,以及編碼器選擇一個具體生 長模式,并向解碼器發送指示,以指示哪個生長模式被用于編碼。同樣應用于種子MB 及其位置。
圖3示出了示例生長模式。生長模式定義了預測延伸的空間方向。在圖3所示 的生長模式中,預測沿著種子宏塊R的所有方向(上、下、左、右)均勻延伸。在圖3a) 中示出了生長模式的第一步驟。從種子MB R開始,沿著左、右、上和下方向預測全部 4個相鄰MB (或鄰域MB) A、B、C、D。由于采用并行處理,根據種子MB R同時預 測所有這些相鄰MB。使用方向預測,包括上預測和左預測(不同于HJ64/AVC中的預 測)。通常,將每個預測的MB與其原始(“父”或參考)MB進行比較,確定差值(殘 差),并且對殘差進行編碼。為了用作用于預測其他MB的參考,然后重構MB。
在圖3b)所示的第二步驟中,第一代MB A-D (原始的或重構的)中的每一個用 作用于預測第二代MB的參考。每個第二代MB根據與其具有公共邊緣的第一代MB進 行預測。如果存在與第二代MB具有公共邊緣的兩個第一代MB,則不同的編碼模式是 可能的。將三種不同模式的編碼成本進行比較,使用具有最低編碼成本的解決方案。
在該示例生長模式中,優選地預測方向是徑向的。即,在C右側的MB C1根據 C來預測。在C下方并在D右側的MB C2根據C、根據D或根據C和D來預測。例 如,不同的幀內編碼模式的比較揭示了根據C的預測比根據D的預測更經濟(S卩,獲得較 少數據)。這取決于局部圖像內容。因此,C2是根據C預測的,產生殘差并編碼殘差, 以及在編碼中包括幀內編碼模式指示。這確保了 MB的正確解碼。按照相同方式,其他 第二代MBA^ Bp D1^ A2、B2、C2> D2根據其相應的父MB來預測。作為示例,具 有兩個相鄰的第一代MB A、B的第二代MBA2可以使用這兩個相鄰的第一代MB A、B 來預測,這獲得空間對角(左上)幀內預測。因此,在圖3b)所示的第二步驟中,先一代的每個重構MB用于預測當前一代的兩個或多個MB。
在圖3c)所示的第三步驟中,第二代MBA1, A2、B1, B2、D2用于預測第三代 MB An、A12> A13、Bn、B12、B130 注意,在圖3c)中,僅示出了單個種子開始點R的 生長模式的一部分,而省略了一些第二代MB Cp C2、D10同樣,每個下一代MB可獲 得當前一代的一個或兩個相鄰MB,每個下一代MB可以根據所述一個或兩個相鄰MB預 測。因此,同樣在圖3b)所示的第三步驟中,以及同樣在圖3d)中的后續步驟中,前一 代的每個重構MB可以用于預測當前一代的兩個或多個MB。根據圖像內容,先前重構 的MB僅能夠用于預測一個MB,或者根本不用于預測MB。
上述方法的一般優點在于,可以同時執行下一代預測,這是由于這些預測彼此 獨立。同時預測的數目根據以下方程而增加
權利要求
1.一種用于編碼圖像數據的方法,包括以下步驟-根據相應相鄰宏塊來預測(P)宏塊,其中,同時預測多個宏塊,預測從至少一個開 始點宏塊開始,并根據預定生長模式,將任意一個宏塊的預測方向選擇為左、右、上或 下,生長模式定義了預測沿哪個空間方向延伸;-根據選擇的預測方向確定(Cit1)編碼成本高于閾值的至少一個宏塊; -基于所述確定,標記(m)所述至少一個宏塊用于延期預測,并且跳過所述至少一個 宏塊的編碼;-對圖像中除標記用于延期預測的所述至少一個宏塊以外的其他宏塊進行編碼(e), 包括根據所述預測確定(d)殘差數據的步驟和編碼(。殘差數據的步驟; -確定所標記的所述至少一個宏塊的至少一個其他相鄰宏塊已被編碼; -在所標記的所述至少一個宏塊的至少一個其他相鄰宏塊已被編碼之后,預測(ρ)所 標記的所述至少一個宏塊;以及-對圖像的所標記的宏塊進行編碼(e),其中,所獲得的編碼數據包括所述標記。
2.根據權利要求1所述的方法,在針對當前宏塊確定相鄰宏塊已被編碼的步驟之前, 還包括步驟確定相鄰宏塊被標記用于延期預測,并且當前宏塊使用與相鄰宏塊相同的 預測方向,以及基于所述確定,還標記當前宏塊用于延期預測。
3.根據權利要求1所述的方法,還包括步驟根據當前圖像計算(Ce)所述編碼成本 閾值,其中,如果在宏塊級別上導出編碼成本閾值,則根據先前的編碼成本閾值以及先 前宏塊的速率_失真成本來計算所述編碼成本閾值。
4.一種用于對編碼圖像數據進行解碼的方法,包括以下步驟 -提取(es)針對至少一個開始點宏塊的數據;-提取(ef)針對一個或多個其他宏塊的殘差數據;-提取(e)針對其他宏塊中的至少一個的指示,所述指示是用于延期預測的標記; -對所述開始點宏塊以及其他宏塊進行解碼(dec),其中,從所述開始點宏塊開始解 碼,并且按照預定生長模式的順序進行解碼,所述預定生長模式包括左、右、上和下的 預測方向,生長模式定義了預測沿哪個空間方向延伸,所述解碼包括步驟根據生長模 式從一個或多個已解碼的相鄰宏塊中同時預測(pf)多個所述其他宏塊,以及添加(rf)所述 殘差數據,其中,跳過標記用于延期預測的所述至少一個宏塊的預測;-針對標記用于延期預測的所述至少一個宏塊,確定另一相鄰宏塊被解碼;以及 -基于所述確定,根據所標記的所述至少一個宏塊的殘差數據以及至少兩個可用的已 解碼的相鄰宏塊,對所標記的所述至少一個宏塊進行解碼(pd、rd)。
5.根據權利要求1或4所述的方法,其中,所述至少一個開始點宏塊不在圖像的邊緣上。
6.根據權利要求1或4所述的方法,還包括步驟對所述編碼圖像數據進行熵編碼, 以及在所述圖像解碼之前對熵編碼的圖像數據進行熵解碼。
7.根據權利要求1或4所述的方法,其中,編碼或解碼從兩個或多個開始點宏塊同時 開始。
8.根據權利要求1或4所述的方法,其中,同時執行至少兩個宏塊的預測,所述至少 兩個宏塊與先前編碼或解碼的宏塊的上、下、左或右相鄰。
9.根據權利要求1或4所述的方法,其中,預定生長模式用于選擇下個要預測的 宏塊,以及預定生長模式包括針對當前宏塊選擇沿著上、下、左和右方向的三個相鄰宏 塊。
10.—種用于編碼圖像數據的設備(ENC),包括_第一預測裝置(P1),用于根據相應相鄰宏塊同時預測多個宏塊,其中,預測從至少 一個開始點宏塊開始,并且根據預定生長模式,選擇任意一個宏塊的預測方向,該預定 生長模式包括沿著左、右、上和下方向的預測,其中,生長模式定義了預測沿哪個空間 方向延伸;_第一確定裝置(DT1),用于根據選擇的預測方向確定編碼成本高于閾值的至少一個 宏塊;-標記裝置(M),用于基于所述確定,標記所述至少一個宏塊用于延期預測;-第一編碼器(E1),用于對圖像中除了標記用于延期預測的所述至少一個宏塊以外的 其他宏塊進行編碼,包括根據所述預測確定殘差數據的殘差確定裝置(DTn J,和用于 編碼殘差數據的殘差編碼裝置(E1),其中,第一編碼器(E1)跳過標記用于延期預測的所 述至少一個宏塊;_第二確定裝置(DT2),用于確定所標記的所述至少一個宏塊的至少一個其他相鄰宏 塊已被編碼;_第二預測裝置(P2),用于在所標記的所述至少一個宏塊的至少一個其他相鄰宏塊已 被編碼之后,預測所標記的所述至少一個宏塊;以及_第二編碼裝置(E2),用于對圖像的所標記的宏塊進行編碼,其中,所獲得的編碼數 據包括所述標記。
11.根據權利要求10所述的設備,還包括第三確定裝置(DT3),針對當前宏塊確定 使用相同預測方向的相鄰宏塊已被標記用于延期預測;以及第二標記裝置(M2),基于所 述確定,標記當前宏塊用于延期預測。
12.根據權利要求10所述的設備,還包括熵編碼器,用于對所述編碼圖像數據進 行熵編碼。
13.—種用于對編碼圖像數據進行解碼的設備,包括-提取裝置(Es、En E1),用于提取至少一個開始點宏塊的數據、提取一個或多個其 他宏塊的殘差數據,并提取所述其他宏塊中的至少一個的指示,所述指示是用于延期預 測的標記;-第一解碼器(DEC1),用于對所述宏塊進行解碼,其中,從所述開始點宏塊開始 解碼,并且按照預定生長模式的順序同時對多個所述其他宏塊進行解碼,所述預定生長 模式包括沿著左、右、上和下方向的預測,其中,生長模式定義了預測沿著哪個方向延 伸,并且解碼器包括_第一確定裝置(DTd),用于根據所述指示來確定標記用于延期預測的所述至少一個 宏塊的預測和重構要延期;預測裝置(Pf),用于根據生長模式從一個或多個已解碼的相 鄰宏塊中預測所述其他宏塊;以及重構裝置(Rf),用于添加所述殘差數據,其中,基于 來自所述第一確定裝置(DTd)的信號(SK),跳過標記用于延期預測的所述至少一個宏塊 的預測和重構;-第二確定裝置(DT),用于針對標記用于延期預測的所述至少一個宏塊,確定所述 第一解碼器已對另一相鄰宏塊進行了解碼;以及-第二解碼器(DEC2、Pd、Rd),用于基于所述確定,根據至少一個標記的宏塊的殘 差數據以及至少兩個可用的已解碼的相鄰宏塊,對所述至少一個標記的宏塊進行解碼。
14.根據權利要求13所述的設備,還包括熵解碼器,用于在所述圖像解碼之前對 熵編碼的圖像數據進行熵解碼。
15.根據權利要求10或13所述的設備,其中,編碼或解碼從兩個或多個開始點宏塊 同時開始。
16.根據權利要求10或13所述的設備,其中,同時執行至少兩個宏塊的預測,所述 至少兩個宏塊與先前編碼或解碼的宏塊的上、下、左或右相鄰。
17.根據權利要求10或13所述的設備,其中,預定生長模式用于選擇下個要預測的 宏塊,以及預定生長模式包括針對當前宏塊選擇沿著上、下、左和右方向的三個相鄰宏 塊。
全文摘要
公開了一種用于編碼圖像數據的方法。在視頻/圖像編碼中,通常按照光柵掃描順序、從一個種子MB開始進行幀內編碼宏塊(MB)。本發明改善了幀內預測,以優化多核處理器的使用。編碼從每幀多個幀內編碼的種子MB開始,并繼續對相鄰MB進行編碼。使用預定預測延伸模式(生長模式),預定預測延伸模式包括每MB兩個或多個相鄰MB的同時預測。具有高編碼成本的相鄰MB被稱作“保持-MB”,并保持不被處理,直到其他相鄰邊緣可用于預測為止。編碼包括標記具有高編碼成本的MB用于延期預測。跳過該MB,而對其他MB進行編碼。當編碼其他相鄰MB時,基于相鄰MB預測標記的MB。由于解碼器接收延期標記并使用相同生長模式,該解碼器遵循編碼器,并進行正確的預測和解碼。
文檔編號H04N7/32GK102025986SQ20101027717
公開日2011年4月20日 申請日期2010年9月7日 優先權日2009年9月10日
發明者張輝, 李玉猛, 楊繼珩 申請人:湯姆森許可貿易公司