專利名稱:參考運動矢量獲取方法、模塊及編、解碼裝置的制作方法
技術領域:
本發明涉及信息技術領域,特別涉及一種參考運動矢量獲取方法、模塊及編、解碼
>J-U裝直。
背景技術:
在現有的視頻編解碼標準中,一幅圖像通常被劃分為若干個圖像塊進行編碼和解碼,一個圖像塊又可以進一步劃分為多個子圖像塊。編碼端通常搜索與當前圖像塊或子圖像塊最相似(即匹配)的鄰近的已編碼子圖像塊,將當前圖像塊或子圖像塊與匹配的子圖像塊對應的像素值相減得殘差,然后將殘差經過變換與量化后進行熵編碼,最后將熵編碼得到的比特流寫入編碼碼流中。其中,鄰近的已編碼子圖像塊被稱為子參考圖像塊。當前圖像塊或子圖像塊與匹配的子圖像塊之間的偏移量稱為運動矢量,編碼端在進行編碼時還要對運動矢量編碼并寫入編碼碼流中,以使解碼端能夠根據該運動矢量獲知匹配的子圖像塊的位置。為了減少運動矢量信息在碼流中占用的字節長度,通常采用一個參考運動矢量 (Motion Vector Candidate),將運動矢量與參考運動矢量的差值進行編碼并寫入編碼碼流中。現有技術中獲取參考運動矢量的方法,編碼端和解碼端遵循同一候選參考運動矢量表,該候選參考運動矢量表中包括與當前圖像塊或子圖像塊相鄰的若干個子圖像塊的運動矢量(作為候選參考運動矢量)及其對應的編號。編碼端從該候選參考運動矢量表中選擇一個作為候選參考運動矢量,采用變長編碼方式對偏移量與參考運動矢量的差值進行編碼,并采用變長編碼方式對該參考運動矢量的編號進行編碼,以使解碼端獲知編碼端所選擇的是哪一候選參考運動矢量。然而,現有的獲取參考運動矢量的方法,沒有考慮當前圖像塊或子圖像塊與相鄰子圖像塊的相關度,因此,會影響運動矢量的編碼效率。
發明內容
本發明實施例提供了一種參考運動矢量獲取方法、模塊及編、解碼裝置,以解決現有技術沒有考慮當前圖像塊或子圖像塊與相鄰子圖像塊的相關度,會影響運動矢量的編碼效率的問題。本發明實施例提供一種參考運動矢量獲取方法,包括獲得當前圖像塊中子圖像塊的劃分方式;根據所述劃分方式在所述子圖像塊的各候選參考運動矢量中確定第一候選參考運動矢量,所述候選參考運動矢量為與所述當前圖像塊相鄰的圖像塊或子圖像塊的運動矢量,或所述相鄰的圖像塊或子圖像塊的運動矢量經過運算后獲得的運動矢量;根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號;從編號后的各候選參考運動矢量中選擇參考運動矢量。本發明實施例還提供一種參考運動矢量獲取模塊,包括
識別單元,用于獲得當前圖像塊中子圖像塊的劃分方式;分析單元,用于根據所述劃分方式在所述子圖像塊的各候選參考運動矢量中確定第一候選參考運動矢量,所述候選參考運動矢量為與所述當前圖像塊相鄰的圖像塊或子圖像塊的運動矢量,或所述相鄰的圖像塊或子圖像塊的運動矢量經過運算后獲得的運動矢編號單元,用于根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號;選擇單元,用于根據從編號后的各候選參考運動矢量中選擇參考運動矢量。本發明實施例還提供一種編碼裝置,包括預測模塊、變換模塊、量化模塊、熵編碼模塊和參考運動矢量獲取模塊;所述參考運動矢量獲取模塊,用于獲得當前圖像塊中子圖像塊的劃分方式;根據所述劃分方式在所述子圖像塊的各候選參考運動矢量中確定第一候選參考運動矢量,所述候選參考運動矢量為與所述當前圖像塊相鄰的圖像塊或子圖像塊的運動矢量,或所述相鄰的圖像塊或子圖像塊的運動矢量經過運算后獲得的運動矢量;根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號;從編號后的各候選參考運動矢量中選擇參考運動矢所述預測模塊,用于獲取所述子圖像塊與預測圖像塊之間的像素殘差,以及獲取預測圖像塊的運動矢量與所述參考運動矢量之差;所述變換模塊,用于對所述預測模塊獲取的所述殘差進行變換;所述量化模塊,用于將經過所述變換模塊變換的所述預測模塊獲取的所述殘差進行量化;所述熵編碼模塊,用于對經過所述量化模塊量化的所述殘差進行熵編碼,并用于對所述預測圖像塊的運動矢量與所述參考運動矢量之差進行變長熵編碼,對所述參考運動矢量對應的編號進行變長熵編碼。本發明實施例還提供一種解碼裝置,包括熵解碼模塊、反量化模塊、反變換模塊、 預測補償模塊和參考運動矢量獲取模塊;所述熵解碼模塊,用于對接收到的編碼碼流進行熵解碼,獲得當前圖像塊中各子圖像塊與預測圖像塊之間的像素殘差,獲取預測圖像塊的運動矢量與所述參考運動矢量之差以及參考運動矢量對應的編號;所述反量化模塊,用于對所述殘差進行反量化;所述反變換模塊,用于對經過所述反量化模塊反量化的殘差進行反變換;所述參考運動矢量獲取模塊,用于獲得當前圖像塊中子圖像塊的劃分方式;根據所述劃分方式在所述子圖像塊的各候選參考運動矢量中確定第一候選參考運動矢量,所述候選參考運動矢量為與所述當前圖像塊相鄰的圖像塊或子圖像塊的運動矢量,或所述相鄰的圖像塊或子圖像塊的運動矢量經過運算后獲得的運動矢量;根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號;從編號后的各候選參考運動矢量中選擇參考運動矢量。所述預測補償模塊,用于根據所述編號獲取對應的參考運動矢量,根據所述運動矢量與所述參考運動矢量之差獲取所述運動矢量;根據所述運動矢量確定所述預測圖像塊,再根據所述預測圖像塊和所述殘差獲取所述當前圖像塊。本發明實施例提供的參考運動矢量獲取方法、模塊及編、解碼裝置,根據當前圖像塊中子圖像塊的劃分方式,確定子圖像塊的第一候選參考運動矢量,并根據第一參考運動矢量對各候選參考運動矢量進行編號,以使第一候選參考運動矢量盡量對應的較小的編號,由于編碼端對編號采用變長編碼,因此,能夠提高編號的編碼效率,進而提高視頻編解碼效率。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖I為本發明提供的參考運動矢量獲取方法第一實施例的流程圖;圖2a為將當前圖像塊非對稱劃分成左右兩個子圖像塊的示意圖;圖2b為將當前圖像塊對稱劃分成左右兩個子圖像塊的示意圖;圖3a為將當前圖像塊非對稱劃分成上下兩個子圖像塊的示意圖;圖3b為將當前圖像塊對稱劃分成上下兩個子圖像塊的示意圖;圖4為與當前圖像塊相鄰的子圖像塊的示意圖;圖5為通過當前圖像塊中的劃分線與當前圖像塊的兩條邊界線或邊界線延長線的焦點到圖像塊端點的距離的比值識別當前圖像塊中子圖像塊的示意圖;圖6為通過當前圖像塊中劃分線的角度和距離識別當前圖像塊中子圖像塊的劃分方式的示意圖;圖7為本發明提供的參考運動矢量獲取模塊第一實施例的結構示意圖;圖8為本發明提供的參考運動矢量獲取模塊第二實施例的結構示意圖;圖9為本發明實施例提供的編碼裝置第一實施例的結構示意圖;圖10為本發明實施例提供的解碼裝置第一實施例的結構示意圖。
具體實施例方式為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。圖I為本發明提供的參考運動矢量獲取方法第一實施例的流程圖,如圖I所示,該方法包括S101、獲得當前圖像塊中子圖像塊的劃分方式;S102、根據所述劃分方式在所述子圖像塊的各候選參考運動矢量中確定第一候選參考運動矢量,所述候選參考運動矢量為與所述當前圖像塊相鄰的圖像塊或子圖像塊的運動矢量,或者所述相鄰的圖像塊或子圖像塊的運動矢量經過運算后獲得的運動矢量;S103、根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號;
S104、從編號后的各候選參考運動矢量中選擇參考運動矢量。一幅圖像通常包含了各種方向的紋理信息,這些紋理對應的往往不是一個矩形區域,一幅圖像中一般包含多個物體,物體與物體間,或者物體與圖像背景間會出現明顯的邊界。在進行視頻編碼時,通常需要將一幅圖像劃分成若干個圖像塊,這些圖像塊為M * N 的矩形塊,其中,M和N均為大于O的整數,并且M和N之間具有倍數關系。由于圖像塊為進行視頻編解碼的基本單位,其面積很小,因此,通常情況下,一個圖像塊包含一至兩個以上物體,或者包括一個物體與圖像背景的信息,據此,編碼端可以根據物體和物體之間的邊界,或者是物體與圖像背景的邊界,將當前圖像塊劃分為兩個子圖像塊,便能夠實現對該圖像塊之間的物體邊界進行劃分,而這種劃分是基于物體與物體之間,或者物體與圖像背景之間的實際邊界進行劃分的,因此,劃分之后得到的兩個子圖像塊的大小和形狀可能相同, 也可能不同。兩個子圖像塊在的位置可能對稱的,也可能不對稱的。由于一個圖像塊的面積很小,因此,一個圖像塊劃分為兩個子圖像塊的劃分方式通常有左右劃分,如圖2a和圖2b所示,或者上下劃分,如圖3a和圖3b所示。基于視頻圖像的連續性,可以獲知,與當前圖像塊相關聯的圖像塊或子圖像塊與當前圖像塊是相鄰的,這些相鄰的圖像塊或子圖像塊如圖4所示,包括當前模塊左側的圖像塊或子圖像塊Atl至Af1,當前圖像塊上方的圖像塊或子圖像塊Btl至Biib+當前圖像塊左上方的圖像塊或子圖像塊D,當前圖像塊右上方的圖像塊或子圖像塊C和當前圖像塊左下方的圖像塊或子圖像塊E。當前圖像塊采用不同的方式劃分出的子圖像塊,其與當前圖像塊相鄰的各圖像塊或子圖像塊的相關度是不同的,相關度表明了當前圖像塊中的子圖像塊與相鄰的圖像塊或子圖像塊中包含的圖像信息的相關程度。例如如果當前圖像塊被劃分成如圖2a和圖2b所示的左右兩個子圖像塊,則可以理解的是,在這種劃分方式下,由于左邊的子圖像塊與右邊的子圖像塊分屬不同的物體,因此,左右兩個子圖像塊的相關度較弱。而通常情況下,左邊的子圖像塊與其左側的圖像塊或子圖像塊Atl至Aniw的相關度較高,而右邊的子圖像塊與其右上方的圖像塊或子圖像塊C的相關度較高。如果當前圖像塊被劃分成如圖3a和圖3b所示的上下兩個子圖像塊,則可以理解的是,在這種劃分方式下,由于上邊的子圖像塊與下邊的子圖像塊分屬不同的物體,因此, 上下兩個子圖像塊的相關度較弱。而通常情況下,上邊的子圖像塊與其上方的圖像塊或子圖像塊Btl至B1^1的相關度較高,而右邊的子圖像塊與其左側的圖像塊或子圖像塊Atl至An^1 的相關度較高。由此可見,根據當前圖像塊中子圖像塊的劃分方式,可以分析出各子圖像塊與當前圖像塊相鄰的圖像塊或子圖像塊的相關度。編碼端和解碼端在進行編碼和解碼時,需要遵循同一組候選參考運動矢量,這些候選參考運動矢量可以為與當前圖像塊相鄰的若干個圖像塊或子圖像塊的運動矢量,還可以包括相鄰的若干個圖像塊或子圖像塊的運動矢量經過運算后獲得的運算矢量,每個候選運動矢量都有其對應的編號。編碼端在進行編碼時,通過一定的預設規則從這些候選參考運動矢量中選擇一個作為最終的參考運動矢量,采用變長編碼方式對運動矢量與參考運動矢量的差值進行編碼,并采用變長編碼方式對該參考運動矢量對應的編號進行編碼,以使解碼端獲知編碼端所選擇的是哪一個候選參考運動矢量。其中,采用變長編碼方式對該參考運動矢量的編號進行編碼,是對不同的編號采用不同的編碼符號串進行編碼。通常可以為對于編號0,則可采用編碼符號“I”進行編碼; 對于編號1,則可采用編碼符號“01”進行編碼;對于編號2,則可采用編碼符號“10”進行編碼......依次類推,可以獲知,編號越大,采用的編碼符號串中包含的符號個數越多。本實施例以以下一組候選參考運動矢量為例進行說明,但實際上還可以有其他各種類型的運動矢量作為參考運動矢量,并不以此作為對本發明實施例的限制。該組候選參考運動矢量可以包括中值預測法得到的運動矢量;當前圖像塊/子圖像塊左側圖像塊或子圖像塊的運動矢量,即圖4所示Atl至Ani^1 中第一個可獲得的運動矢量;其中,可獲得的含義為已編碼。當前圖像塊/子圖像塊上邊圖像塊或子圖像塊的運動矢量,即圖4所示Btl至Bn^1 中第一個可獲得運動矢量;當前圖像塊/子圖像塊左上邊圖像塊或子圖像塊的運動矢量,即圖4所示C的運
動矢量;當前圖像塊/子圖像塊右上邊圖像塊或子圖像塊的運動矢量,即圖4所示D的運
動矢量;當前圖像塊/子圖像塊右下邊圖像塊或子圖像塊的運動矢量,即圖4所示E的運
動矢量;當前圖像塊/子圖像塊位置相同的前一編碼圖像或后一編碼圖像的運動矢量。需要說明的是,候選參考運動矢量對應的圖像塊或子圖像塊,必須是已經編碼的圖像塊或子圖像塊,即候選參考運動矢量必須是可獲得的。其中,中值預測法得到的運動矢量具體通過獲取與當前子圖像塊相鄰的圖像塊或子圖像塊運動矢量,根據這些運動矢量通過特定規則,如求取這些運動矢量中值、平均值,或根據當前圖像塊劃分方式獲取最鄰近的圖像塊或子圖像塊運動矢量,獲得參考運動矢量。這種方法通常稱之為中值預測法 (Median Prediction)。其中,當前圖像塊/子圖像塊左側子圖像塊的運動矢量需要根據Atl至Ani^1右下角編號數值從小至大依次判斷Atl至Af1是否已編碼,將第一個已編碼的運動矢量作為對應的候選運動矢量;同樣,當前圖像塊/子圖像塊上邊子圖像塊的運動矢量需要根據Btl至Bn^1 右下角編號數值從小至大依次判斷Btl至Bf1是否已編碼,將第一個已編碼的運動矢量作為對應的候選運動矢量。由于編碼端采用變長編碼的方式對運動矢量和參考運動矢量的差值進行編碼,因此,為了提高編碼效率,編碼端通常選擇與運動矢量值最接近的參考運動矢量,即參考運動矢量與運動矢量之間的差值越小,所采用的編碼串越短,相應的編碼效率越高。因此,參考運動矢量對應的相鄰圖像塊或子圖像塊與當前圖像塊中的子圖像塊越接近,編碼效率越聞。而在對運動矢量與參考運動矢量差值進行編碼的同時,還要對選定的參考運動矢量的對應編號進行編碼,以使解碼端獲知編碼端所選擇的是哪一候選參考運動矢量。由于對編號進行編碼采用的也是變長編碼方法,因此,首選需要從各候選參考運動矢量中確定第一候選參考運動矢量,該第一候選參考運動矢量對應的相鄰的圖像塊或子圖像塊與當前圖像塊具有較高或最高的相關度。再根據第一候選參考運動矢量,對各候選參考運動矢量進行編號,使第一候選參考運動矢量對應的編號盡量小,例如編號1,或者是使第一候選參考運動矢量對應最小的編號,例如編號O。由于相關度越高的相鄰圖像塊或子圖像塊最終被選為參考運動矢量的概率最大, 因此,而第一候選參考運動矢量對應的相鄰的圖像塊或子圖像塊與當前圖像塊具有較高或最高的相關度,因此使第一候選參考運動矢量對應的編號盡量小,例如為編號O或編號1, 這樣,對編號O或編號I進行編碼僅需要編碼符號“I”或“01”,因此,能夠提高編號的編碼效率,從而提高視頻編碼效率。在根據第一候選參考運動矢量對各候選參考運動矢量進行編號后,從編號后的各候選參考運動矢量中選擇一個參考運動矢量作為最終的參考運動矢量,采用變長編碼方式對運動矢量與參考運動矢量的差值進行編碼,并采用變長編碼方式對該參考運動矢量對應的編號進行編碼本發明實施例提供的參考運動矢量獲取方法,根據當前圖像塊中子圖像塊的劃分方式,確定子圖像塊的第一候選參考運動矢量,并根據第一參考運動矢量對各候選參考運動矢量進行編號,以使第一候選參考運動矢量盡量對應的較小的編號,由于編碼端對編號采用變長編碼,因此,能夠提高編號的編碼效率,進而提高視頻編解碼效率。在參考運動矢量獲取方法第一實施例的基礎上,本發明提供幾種識別當前圖像塊中子圖像塊的劃分方式的較佳實施方式,包括可以根據編碼模式標識識別當前圖像塊中子圖像塊的劃分方式。例如如果編碼模式標識為SIZE_2NxN或SIZE_Nx2N等,通常表示劃分方式為上下對稱劃分或左右對稱劃分;如果編碼模式標識為SIZE_2NxnU或SIZE_2NxnD等,通常表示劃分方式為上下非對稱劃分;如果編碼模式標識為SIZE_nLx2N或SIZE_nRx2N等,通常表示劃分方式為左右非對稱劃分。或者,還可以根據當前圖像塊中的劃分線與當前圖像塊的兩條邊界線或邊界線延長線的焦點到圖像塊端點的距離的比值識別當前圖像塊中子圖像塊的劃分方式,例如如圖5所示,可以通過BO與AO的比例關系來標識劃分方式。或者,還可以根據當前圖像塊中劃分線的角度和距離識別當前圖像塊中子圖像塊的劃分方式。如圖6所示,通過幾何劃分標識方法(GeometricPartition),通過識別劃分線的角度Θ來標識劃分方式。進一步的,本實施例還提供了根據所述劃分方式在各候選參考運動矢量中確定所述子圖像塊的第一候選參考運動矢量的方法,包括若當前圖像塊被劃分為左右兩個子圖像塊,則當前圖像塊左側相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中左邊子圖像塊的第一候選參考運動矢量,所述當前圖像塊的右上方相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中右邊子圖像塊的第一候選參考運動矢量;若當前圖像塊被劃分為上下兩個子圖像塊,則所述當前圖像塊的上方相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中上邊子圖像塊的第一候選參考運動矢量,所述當前圖像塊的左側相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中下邊子圖像塊第一候選參考運動矢量。由于現有技術中已存多種對各候選參考運動矢量進行編號的規則,因此,作為一種可行的實施方式,根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號,可以為首先根據設定規則對各候選參考運動矢量進行編號;再根據第一候選參考運動矢量對編號后的各候選參考運動矢量進行重排序。其中,根據第一候選參考運動矢量對編號后的各候選參考運動矢量進行重排序可以為可以將第一候選參考運動矢量與編號最小的候選參考運動矢量的編號互換。以參考運動矢量獲取方法第一實施例中提供的一組候選參考運動矢量為例,根據現有的一種規則對該組候選參考運動矢量進行編號,得到編號O :中值預測法得到的運動矢量;編號I :當前圖像塊/子圖像塊左側圖像塊或子圖像塊的運動矢量,即圖4所示Atl 至八#^中第一個可獲得的運動矢量;編號2 :當前圖像塊/子圖像塊上邊圖像塊或子圖像塊的運動矢量,即圖4所示B。 至Bn^1中第一個可獲得的運動矢量;編號3 :當前圖像塊/子圖像塊左上邊圖像塊或子圖像塊的運動矢量,即圖4所示 C的運動矢量;編號4 :當前圖像塊/子圖像塊右上邊圖像塊或子圖像塊的運動矢量,即圖4所示 D的運動矢量;編號5 :當前圖像塊/子圖像塊右下邊圖像塊或子圖像塊的運動矢量,即圖4所示 E的運動矢量;編號6 :當前圖像塊/子圖像塊位置相同的前一編碼圖像或后一編碼圖像的運動矢量。由于該組候選參考運動矢量中的最小編號為編號O,而該編號O對應的為中值預測法得到的運動矢量,因此,可以將第一候選參考運動矢量與中值預測法得到的運動矢量的編號對調。對于左右劃分的劃分方式,對于劃分后得到的右邊的子圖像塊,由于與其相關度最高的為右上邊的圖像塊或子圖像塊,即右上邊的圖像塊或子圖像塊對應的運動矢量為第一候選參考運動矢量,因此,重排序后得到編號O :當前圖像塊/子圖像塊右上邊圖像塊或子圖像塊的運動矢量,即圖4所示 D的運動矢量;編號I :當前圖像塊/子圖像塊左側圖像塊或子圖像塊的運動矢量,即圖4所示Atl 至八#^中第一個可獲得的運動矢量;編號2 :當前圖像塊/子圖像塊上邊圖像塊或子圖像塊的運動矢量,即圖4所示B。 至Bn^1中第一個可獲得的運動矢量;編號3 :當前圖像塊/子圖像塊左上邊圖像塊或子圖像塊的運動矢量,即圖4所示 C的運動矢量;編號4 :中值預測法得到的運動矢量;編號5 :當前圖像塊/子圖像塊右下邊圖像塊或子圖像塊的運動矢量,即圖4所示E的運動矢量;編號6 :當前圖像塊/子圖像塊位置相同的前一編碼圖像或后一編碼圖像的運動矢量。對于上下劃分的劃分方式,對于劃分后得到的上邊的子圖像塊,由于與其相關度最高的為上方圖像塊或子圖像塊,即上方的圖像塊或子圖像塊對應的運動矢量為第一候選參考運動矢量,因此,重排序后的候選參考運動矢量表可以為編號O :當前圖像塊/子圖像塊上邊的圖像塊或子圖像塊的運動矢量,即圖4所示 B0至Bn^1中第一個可獲得的運動矢量;編號I :當前圖像塊/子圖像塊左側的圖像塊或子圖像塊的運動矢量,即圖4所示 A0至An^1中第一個可獲得的運動矢量;編號2 :中值預測法得到的運動矢量;編號3 :當前圖像塊/子圖像塊左上邊的圖像塊或子圖像塊的運動矢量,即圖4所示C的運動矢量;編號4 :當前圖像塊/子圖像塊右上邊的圖像塊或子圖像塊的運動矢量,即圖4所示D的運動矢量;編號5 :當前圖像塊/子圖像塊右下邊的圖像塊或子圖像塊的運動矢量,即圖4所示E的運動矢量;編號6 :當前圖像塊/子圖像塊位置相同的前一編碼圖像或后一編碼圖像的運動矢量。而對于左右劃分方式后得到的左邊的子圖像塊,以及上下劃分的劃分方式后得到的下邊的子圖像塊,由于與其相關度最高的為左邊子圖像塊,因此,重排序后的候選參考運動矢量表可以為編號O :當前圖像塊/子圖像塊左側的圖像塊或子圖像塊的運動矢量,即圖4所示 A0至An^1中第一個可獲得的運動矢量;編號I :中值預測法得到的運動矢量;編號2 :當前圖像塊/子圖像塊上邊的圖像塊或子圖像塊的運動矢量,即圖4所示 B0至Bn^1中第一個可獲得的運動矢量;編號3 :當前圖像塊/子圖像塊左上邊的圖像塊或子圖像塊的運動矢量,即圖4所示C的運動矢量;編號4 :當前圖像塊/子圖像塊右上邊的圖像塊或子圖像塊的運動矢量,即圖4所示D的運動矢量;編號5 :當前圖像塊/子圖像塊右下邊的圖像塊或子圖像塊的運動矢量,即圖4所示E的運動矢量;編號6 :當前圖像塊/子圖像塊位置相同的前一編碼圖像或后一編碼圖像的運動矢量。本實施例中還提供了另一種重排序方式第一候選參考運動矢量對應的編號調整為最小的編號,其余的候選參考運動矢量對應的編號依次加I。即將需要給予較小編號值的第一候選參考運動矢量的編號賦予一個較小值,如0,該數值之后的編號依次后移。對于左右劃分的劃分方式,對于劃分后得到的右邊的子圖像塊,由于與其相關度最高的為右上邊的圖像塊或子圖像塊,因此,重排序后的候選參考運動矢量表可以為編號O :當前圖像塊/子圖像塊右上邊的圖像塊或子圖像塊的運動矢量,即圖4所示D的運動矢量;編號I :中值預測法得到的運動矢量;編號2:當前圖像塊/子圖像塊左側的圖像塊或子圖像塊的運動矢量,即圖4所示 A0至An^1中第一個可獲得的運動矢量;編號3 :當前圖像塊/子圖像塊上邊的圖像塊或子圖像塊的運動矢量,即圖4所示 B0至Bn^1中第一個可獲得的運動矢量;編號4 :當前圖像塊/子圖像塊左上邊的圖像塊或子圖像塊的運動矢量,即圖4所示C的運動矢量;編號5 :當前圖像塊/子圖像塊右下邊的圖像塊或子圖像塊的運動矢量,即圖4所示E的運動矢量;編號6 :當前圖像塊/子圖像塊位置相同的前一編碼圖像或后一編碼圖像的運動矢量。對于上下劃分的劃分方式,對于劃分后得到的上邊的子圖像塊,由于與其相關度最高的為上邊的圖像塊或子圖像塊,因此,重排序后的候選參考運動矢量表可以為編號O :當前圖像塊/子圖像塊上邊的圖像塊或子圖像塊的運動矢量,即圖4所示 B0至Bn^1中第一個可獲得的運動矢量;編號I :中值預測法得到的運動矢量;編號2 :當前圖像塊/子圖像塊左側的圖像塊或子圖像塊的運動矢量,即圖4所示 A0至An^1中第一個可獲得的運動矢量;編號3 :當前圖像塊/子圖像塊左上邊的圖像塊或子圖像塊的運動矢量,即圖4所示C的運動矢量;編號4 :當前圖像塊/子圖像塊右上邊的圖像塊或子圖像塊的運動矢量,即圖4所示D的運動矢量;編號5 :當前圖像塊/子圖像塊右下邊的圖像塊或子圖像塊的運動矢量,即圖4所示E的運動矢量;編號6 :當前圖像塊/子圖像塊位置相同的前一編碼圖像或后一編碼圖像的運動矢量。而對于左右劃分方式后得到的左邊的子圖像塊,以及上下劃分的劃分方式后得到的下邊的子圖像塊,由于與其相關度最高的為左邊的圖像塊或子圖像塊,因此,重排序后的候選參考運動矢量表可以為編號O :當前圖像塊/子圖像塊左側的圖像塊或子圖像塊的運動矢量,即圖4所示A。至 An7V1中第一個可獲得的運動矢量;
編號I :中值預測法得到的運動矢量;
編號2 :當前圖像塊/子圖像塊上邊的圖像塊或子圖像塊的運動矢量,即圖4所示B。至 BnlV1中第一個可獲得的運動矢量;
編號3 :當前圖像塊/子圖像塊左上邊的圖像塊或子圖像塊的運動矢量,即圖4所示C的運動矢量;
編號4 :當前圖像塊/子圖像塊右上邊的圖像塊或子圖像塊的運動矢量,即圖4所示D的運動矢量;編號5 :當前圖像塊/子圖像塊右下邊的圖像塊或子圖像塊的運動矢量,即圖4所示E的運動矢量;編號6 :當前圖像塊/子圖像塊位置相同的前一編碼圖像或后一編碼圖像的運動矢量。本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,的程序可存儲于一計算機可讀取存儲介質中, 該程序在執行時,可包括如上述各方法的實施例的流程。其中,的存儲介質可為磁碟、光盤、 只讀存儲記憶體(Read-OnlyMemory, ROM)或隨機存儲記憶體(Random Access Memory, RAM)
坐寸ο圖7為本發明提供的參考運動矢量獲取模塊第一實施例的結構示意圖,如圖7所示,該模塊包括識別單元U、分析單元12、編號單元13和選擇單元14 ;其中,識別單元11,用于獲得當前圖像塊中子圖像塊的劃分方式;分析單元12,用于根據所述劃分方式在所述子圖像塊的各候選參考運動矢量中確定第一候選參考運動矢量,所述候選參考運動矢量為與所述當前圖像塊相鄰的圖像塊或子圖像塊的運動矢量,或所述相鄰的圖像塊或子圖像塊的運動矢量經過運算后獲得的運動矢量;編號單元13,用于根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號;選擇單元14,用于根據從編號后的各候選參考運動矢量中選擇參考運動矢量。本發明實施例提供的參考運動矢量獲取模塊,根據當前圖像塊中子圖像塊的劃分方式,確定子圖像塊的第一候選參考運動矢量,并根據第一參考運動矢量對各候選參考運動矢量進行編號,以使第一候選參考運動矢量盡量對應的較小的編號,由于編碼端對編號采用變長編碼,因此,能夠提高編號的編碼效率,進而提高視頻編碼效率。在參考運動矢量獲取模塊第一實施例的基礎上,參見圖8,進一步的,編號單元13 包括編號子單元131,用于根據設定規則對所述各候選參考運動矢量進行編號;重排序子單元132,用于根據所述第一候選參考運動矢量對編號后的各候選參考運動矢量進行重排序。其中,重排序子單元132可以具體用于將第一候選參考運動矢量與編號最小的候選參考運動矢量的編號互換;或者,第一候選參考運動矢量對應的編號調整為最小的編號,其余的候選參考運動矢量對應的編號依次加I。進一步的,識別單元11可以具體用于根據編碼模式標識識別當前圖像塊中子圖像塊的劃分方式;或者,根據當前圖像塊中的劃分線與當前圖像塊的兩條邊界線或邊界線延長線的焦點到圖像塊端點的距離的比值識別當前圖像塊中子圖像塊的劃分方式;或者,根據當前圖像塊中劃分線的角度和距離識別當前圖像塊中子圖像塊的劃分方式。進一步的,分析單元12可以具體用于若當前圖像塊被劃分為左右兩個子圖像塊,則當前圖像塊左側相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中左邊子圖像塊的第一候選參考運動矢量,所述當前圖像塊的右上方相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中右邊子圖像塊的第一候選參考運動矢量;若當前圖像塊被劃分為上下兩個子圖像塊,則所述當前圖像塊的上方相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中上邊子圖像塊的第一候選參考運動矢量,所述當前圖像塊的左側相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中下邊子圖
像塊第一候選參考運動矢量。本發明實施例提供的參考運動矢量獲取模塊,為執行本發明實施例提供的參考運動矢量獲取方法的功能設備,其具體執行過程可參見參考運動矢量獲取方法的實施例,在此不再贅述。圖9為本發明實施例提供的編碼裝置第一實施例的結構示意圖,如圖9所示,該裝置包括預測模塊I、變換模塊2、量化模塊3、熵編碼模塊4和參考運動矢量獲取模塊5 ;其中,參考運動矢量獲取模塊5,用于獲得當前圖像塊中子圖像塊的劃分方式;根據所述劃分方式在所述子圖像塊的各候選參考運動矢量中確定第一候選參考運動矢量,所述候選參考運動矢量為與所述當前圖像塊相鄰的圖像塊或子圖像塊的運動矢量,或所述相鄰的圖像塊或子圖像塊的運動矢量經過運算后獲得的運動矢量;根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號;從編號后的各候選參考運動矢量中選擇參考運動矢量;預測模塊1,用于獲取子圖像塊與預測圖像塊之間的像素殘差,以及獲取預測圖像塊的運動矢量與參考運動矢量之差;變換模塊2,用于分別將預測模塊I獲取的殘差進行變換;量化模塊3,用于分別將經過變換模塊2變換的預測模塊獲取的殘差進行量化;熵編碼模塊4,用于分別將經過量化模塊3量化的殘差進行熵編碼,并對預測圖像塊的運動矢量與參考運動矢量之差進行熵編碼。本發明實施例提供的編碼裝置,首先通過預測模塊I將當前圖像塊或子圖像塊與匹配的子圖像塊對應的像素值相減得殘差,然后依次通過變換模塊2和量化模塊3對殘差進行變換與量化,最后通過熵編碼模塊4對經過變換和量化的殘差進行熵編碼,并將熵編碼得到的比特流寫入編碼碼流中。同時,預測模塊I編碼端在進行編碼時還根據參考運動矢量獲取模塊5獲取的參考運動矢量,獲取預測圖像塊的運動矢量與參考運動矢量之差,然后送入熵編碼模塊4,熵編碼模塊4對運動矢量與參考運動矢量之差進行編碼,并且對參考運動矢量在候選參考運動矢量表中對應的編號進行變長熵編碼,然后將熵編碼得到的比特流寫入編碼碼流中。其中,參考運動矢量的獲取過程參見參考運動矢量獲取方法實施例,在此不再贅述。本實施例提供的編碼裝置,根據當前圖像塊中子圖像塊的劃分方式,確定子圖像塊的第一候選參考運動矢量,并根據第一參考運動矢量對各候選參考運動矢量進行編號,以使第一候選參考運動矢量盡量對應的較小的編號,由于編碼端對編號采用變長編碼,因此,能夠提高編號的編碼效率,進而提高視頻編碼效率。圖10為本發明實施例提供的解碼裝置第一實施例的結構示意圖,如圖10所示,該裝置包括熵解碼模塊I’、反量化模塊2’、反變換模塊3’、預測補償模塊4’和參考運動矢量獲取模塊5’ ;熵解碼模塊I’,用于對接收到的編碼碼流進行熵解碼,獲得當前圖像塊中各子圖像塊與預測圖像塊之間的像素殘差,獲取預測圖像塊的運動矢量與所述參考運動矢量之差以及參考運動矢量對應的編號;反量化模塊2’,用于對所述殘差進行反量化;反變換模塊3’,用于對經過所述反量化模塊反量化的殘差進行反變換;參考運動矢量獲取模塊5’,用于獲得當前圖像塊中子圖像塊的劃分方式;根據所述劃分方式在所述子圖像塊的各候選參考運動矢量中確定第一候選參考運動矢量,所述候選參考運動矢量為與所述當前圖像塊相鄰的圖像塊或子圖像塊的運動矢量,或所述相鄰的圖像塊或子圖像塊的運動矢量經過運算后獲得的運動矢量;根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號;從編號后的各候選參考運動矢量中選擇參考運動矢量。預測補償模塊4’,用于根據所述編號獲取對應的參考運動矢量,根據所述運動矢量與所述參考運動矢量之差獲取所述運動矢量;根據所述運動矢量確定所述預測圖像塊, 再根據所述預測圖像塊和所述殘差獲取所述當前圖像塊。本發明實施例提供的解碼裝置,根據當前圖像塊中子圖像塊的劃分方式,確定子圖像塊的第一候選參考運動矢量,并根據第一參考運動矢量對各候選參考運動矢量進行編號,以使第一候選參考運動矢量盡量對應的較小的編號,由于編碼端對編號采用變長編碼, 因此,能夠提高編號的解碼效率,進而提高視頻解碼效率。本發明實施例提供的編碼和解碼裝置,其功能可以集成到數字信號處理(Digital Signal Processing ;簡稱DSP)芯片或現場可編程門陣列(Field-Programmable Gate Array ;簡稱FPGA)芯片上進行軟件開發來實現,也可以通過專用集成電路(Application Specific Integrated Circuit ;簡稱ASIC)的方式固化實現。最后應說明的是以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
權利要求
1.一種參考運動矢量獲取方法,其特征在于,包括獲得當前圖像塊中子圖像塊的劃分方式;根據所述劃分方式在所述子圖像塊的各候選參考運動矢量中確定第一候選參考運動矢量,所述候選參考運動矢量為與所述當前圖像塊相鄰的圖像塊或子圖像塊的運動矢量, 或者所述相鄰的圖像塊或子圖像塊的運動矢量經過運算后獲得的運動矢量;根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號;從編號后的各候選參考運動矢量中選擇參考運動矢量。
2.根據權利要求I所述的方法,其特征在于,所述根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號,包括根據設定規則對所述各候選參考運動矢量進行編號;根據所述第一候選參考運動矢量對編號后的各候選參考運動矢量進行重排序。
3.根據權利要求2所述的方法,其特征在于,所述根據所述第一候選參考運動矢量對編號后的各候選參考運動矢量進行重排序,包括將第一候選參考運動矢量與編號最小的候選參考運動矢量的編號互換;或者,第一候選參考運動矢量對應的編號調整為最小的編號,其余的候選參考運動矢量對應的編號依次加I。
4.根據權利要求1-3任一項所述的方法,其特征在于,所述獲得當前圖像塊中子圖像塊的劃分方式,包括根據編碼模式標識識別當前圖像塊中子圖像塊的劃分方式;或者,根據當前圖像塊中的劃分線與當前圖像塊的兩條邊界線或邊界線延長線的焦點到圖像塊端點的距離的比值識別當前圖像塊中子圖像塊的劃分方式;或者,根據當前圖像塊中劃分線的角度和距離識別當前圖像塊中子圖像塊的劃分方式。
5.根據權利要求1-3任一項所述的方法,其特征在于,所述根據所述劃分方式在各候選參考運動矢量中確定所述子圖像塊的第一候選參考運動矢量,包括若當前圖像塊被劃分為左右兩個子圖像塊,則當前圖像塊左側相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中左邊子圖像塊的第一候選參考運動矢量,所述當前圖像塊的右上方相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中右邊子圖像塊的第一候選參考運動矢量;若當前圖像塊被劃分為上下兩個子圖像塊,則所述當前圖像塊的上方相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中上邊子圖像塊的第一候選參考運動矢量,所述當前圖像塊的左側相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中下邊子圖像塊第一候選參考運動矢量。
6.一種參考運動矢量獲取模塊,其特征在于,包括識別單元,用于獲得當前圖像塊中子圖像塊的劃分方式;分析單元,用于根據所述劃分方式在所述子圖像塊的各候選參考運動矢量中確定第一候選參考運動矢量,所述候選參考運動矢量為與所述當前圖像塊相鄰的圖像塊或子圖像塊的運動矢量,或所述相鄰的圖像塊或子圖像塊的運動矢量經過運算后獲得的運動矢量; 編號單元,用于根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號;選擇單元,用于根據從編號后的各候選參考運動矢量中選擇參考運動矢量。
7.根據權利要求6所述的參考運動矢量獲取模塊,其特征在于,所述編號單元包括 編號子單元,用于根據設定規則對所述各候選參考運動矢量進行編號;重排序子單元,用于根據所述第一候選參考運動矢量對編號后的各候選參考運動矢量進行重排序。
8.根據權利要求7所述的參考運動矢量獲取模塊,其特征在于,所述重排序子單元具體用于將第一候選參考運動矢量與編號最小的候選參考運動矢量的編號互換;或者,第一候選參考運動矢量對應的編號調整為最小的編號,其余的候選參考運動矢量對應的編號依次加I。
9.根據權利要求6中所述的參考運動矢量獲取模塊,其特征在于,所述識別單元用于 根據編碼模式標識識別當前圖像塊中子圖像塊的劃分方式;或者,根據當前圖像塊中的劃分線與當前圖像塊的兩條邊界線或邊界線延長線的焦點到圖像塊端點的距離的比值識別當前圖像塊中子圖像塊的劃分方式;或者,根據當前圖像塊中劃分線的角度和距離識別當前圖像塊中子圖像塊的劃分方式。
10.根據權利要求6中所述的參考運動矢量獲取模塊,其特征在于,所述分析單元用于若當前圖像塊被劃分為左右兩個子圖像塊,則當前圖像塊左側相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中左邊子圖像塊的第一候選參考運動矢量,所述當前圖像塊的右上方相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中右邊子圖像塊的第一候選參考運動矢量;若當前圖像塊被劃分為上下兩個子圖像塊,則所述當前圖像塊的上方相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中上邊子圖像塊的第一候選參考運動矢量,所述當前圖像塊的左側相鄰的圖像塊或子圖像塊的運動矢量為所述當前圖像塊中下邊子圖像塊第一候選參考運動矢量。
11.一種編碼裝置,其特征在于,包括預測模塊、變換模塊、量化模塊、熵編碼模塊和如權利要求6-10任一項所述的參考運動矢量獲取模塊,其中,所述參考運動矢量獲取模塊,用于獲得當前圖像塊中子圖像塊的劃分方式;根據所述劃分方式在所述子圖像塊的各候選參考運動矢量中確定第一候選參考運動矢量,所述候選參考運動矢量為與所述當前圖像塊相鄰的圖像塊或子圖像塊的運動矢量,或所述相鄰的圖像塊或子圖像塊的運動矢量經過運算后獲得的運動矢量;根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號;從編號后的各候選參考運動矢量中選擇參考運動矢量; 所述預測模塊,用于獲取所述子圖像塊與預測圖像塊之間的像素殘差,以及獲取預測圖像塊的運動矢量與所述參考運動矢量之差;所述變換模塊,用于對所述預測模塊獲取的所述殘差進行變換;所述量化模塊,用于將經過所述變換模塊變換的所述預測模塊獲取的所述殘差進行量化;所述熵編碼模塊,用于對經過所述量化模塊量化的所述殘差進行熵編碼,并用于對所述預測圖像塊的運動矢量與所述參考運動矢量之差進行變長熵編碼,對所述參考運動矢量對應的編號進行變長熵編碼。
12.—種解碼裝置,其特征在于,包括熵解碼模塊、反量化模塊、反變換模塊、預測補償模塊和如權利要求6-10任一項所述的參考運動矢量獲取模塊;所述熵解碼模塊,用于對接收到的編碼碼流進行熵解碼,獲得當前圖像塊中各子圖像塊與預測圖像塊之間的像素殘差,獲取預測圖像塊的運動矢量與所述參考運動矢量之差以及參考運動矢量對應的編號;所述反量化模塊,用于對所述殘差進行反量化;所述反變換模塊,用于對經過所述反量化模塊反量化的殘差進行反變換;所述參考運動矢量獲取模塊,用于獲得當前圖像塊中子圖像塊的劃分方式;根據所述劃分方式在所述子圖像塊的各候選參考運動矢量中確定第一候選參考運動矢量,所述候選參考運動矢量為與所述當前圖像塊相鄰的圖像塊或子圖像塊的運動矢量,或所述相鄰的圖像塊或子圖像塊的運動矢量經過運算后獲得的運動矢量;根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號;從編號后的各候選參考運動矢量中選擇參考運動矢量; 所述預測補償模塊,用于根據所述編號獲取對應的參考運動矢量,根據所述運動矢量與所述參考運動矢量之差獲取所述運動矢量;根據所述運動矢量確定所述預測圖像塊,再根據所述預測圖像塊和所述殘差獲取所述當前圖像塊。
全文摘要
本發明實施例提供一種參考運動矢量獲取方法、模塊及編、解碼裝置。方法包括獲得當前圖像塊中子圖像塊的劃分方式;根據所述劃分方式在所述子圖像塊的各候選參考運動矢量中確定第一候選參考運動矢量,所述候選參考運動矢量為與所述當前圖像塊相鄰的圖像塊或子圖像塊的運動矢量,或所述相鄰的圖像塊或子圖像塊的運動矢量經過運算后獲得的運動矢量;根據所述第一候選參考運動矢量對各候選參考運動矢量進行編號;從編號后的各候選參考運動矢量中選擇參考運動矢量。本發明實施例提供的參考運動矢量獲取方法、模塊及編、碼裝置,由于編碼端對編號采用變長編碼,因此能夠提高編號的編碼效率,進而提高視頻編解碼效率。
文檔編號H04N7/50GK102611881SQ20111002175
公開日2012年7月25日 申請日期2011年1月19日 優先權日2011年1月19日
發明者鄭蕭楨 申請人:華為技術有限公司