多程視頻解碼方法與裝置的製作方法
2023-07-31 06:49:26 3
專利名稱::多程視頻解碼方法與裝置的製作方法
技術領域:
:本發明涉及對與視頻信號的畫面相對應的位流進行解碼的視頻解碼器,編碼畫面有可能包括以逐行方式和以隔行方式編碼的宏塊。更加具體地講,本發明涉及一種包括對以逐行方式編碼的宏塊進行解碼的解碼單元的解碼器。
背景技術:
:如《InformationTechnology-Codingofaudio-visualobjects—Part2:Visual,Amendment1:Visualextensions》(ISO/IEC14496-2:1999/Amd.1:2000,IS0/IECJTV1/SC29/WG11N3056)中所指出的,MPEG-4標準定義了視頻位流的語法規則,這一語法規則能夠在各種不同編碼器和解碼器之間實現互通互用。這些標準描述了很多視頻工具,但是實現所有這些工具對於大多數應用來說會導致複雜度過高。為了在可用工具和編碼器/解碼器複雜度的選擇方面提供更大的靈活度,該標準此外還定義了類(profile),類是局限於特定工具的語法規則的子集。例如,簡單類(SP)是整個位流語法規則的子集,用MPEG術語體系來說,它包括I和PV0P、AC/DC預測、每宏塊1或4個運動向量、無限制運動向量和針對逐行畫面的半像素運動補償。高級簡單類(ASP)是SP語法規則的超集它包括SP編碼工具,並且增加了BV0P、全局運動補償、隔行掃描畫面、四分之一像素運動補償(在這種情況下,內插濾波器不同於半像素運動補償中使用的內插濾波器)以及專用於隔行掃描圖像處理的其它工具。文獻US2001/0016010公開了一種接收數字運動畫面用於數位電視中的隔行掃描序列的下變換的設備。所述設備設計為用來對基於場和基於幀的編碼塊進行解碼。實際上,這篇文獻公開了這樣一種解碼器該解碼器配備有能夠實現ASP中定義的場編碼宏塊的直接解碼的功能。然而,隔行掃描改變了MPEG-4標準中的兩個低級處理運動補償和反方向餘弦變換(下文中稱為DCT)。在某些具有有限CPU資源或電源的裝置中,使用硬體加速函數來開展一部分解碼操作可能是比較有益的,即使硬體加速裝置不能以合宜的方式進行解碼操作。這會導致解碼錯誤,在隔行畫面中的隔行宏塊的情況下,這些解碼錯誤造成的損害尤為嚴重。
發明內容由此,本發明的目的是提供一種視頻解碼器,尤其是SP類型的視頻解碼器,該視頻解碼器使用解碼單元來解碼逐行畫面和逐行宏塊,並且該視頻解碼器使得與隔行畫面的解碼相關的造成惡化的錯誤最小。為此,給出了一種視頻解碼器,該視頻解碼器包括解碼配置單元,該解碼配置單元用於為了解碼單獨一個畫面而啟動所述解碼單元數次,並且用於在所述解碼單元中配置所述畫面的各個程(pass)的讀取和/或寫入跨距。因此給出了一種偽ASP解碼器,該解碼器依靠能夠處理逐行畫面的解碼單元,並且在MPEG-4的情況下,依靠MPEG-4SP加速功能。有益地,將解碼畫面存儲在存儲器中。在一種實施方式中,所述解碼配置單元包括缺失宏塊檢測模塊,該模塊用於檢測解碼畫面中缺失的宏塊並且將這一檢測結果用於所述解碼單元的配置。在一種實現方式中,跨距配置是在每一個程通過加倍所述跨距來改變的。在一種實施方式中,在每個程都對完整的畫面進行解碼。有益地,在前一程期間解碼的宏塊在後一程中保持不變。在一種實現方式中,用空塊填充不能解碼的或者還沒有解碼的宏塊。在一種實施方式中,在從位流中解碼或推定出來的標誌被設置為代表所述畫面為隔行的值時所述解碼配置單元基於所述畫面而得以啟動。本發明還涉及一種對視頻信號的畫面中的位流進行解碼的方法,編碼畫面有可能包括以逐行方式和以隔行方式編碼的宏塊,所述方法包括對以逐行方式編碼的宏塊進行解碼的解碼步驟。所述方法的特徵在於,它包括解碼配置步驟,該解碼配置步驟為了解碼單獨一個畫面而啟動所述解碼步驟數次,並且由所述解碼步驟配置所述畫面的各個程的讀取和/或寫入跨距。在一種實施方式中,將解碼畫面存儲在存儲器中。在一種實施方式中,所述解碼配置步驟包括缺失宏塊檢測,該檢測用於檢測解碼畫面中缺失的宏塊並且將這一檢測結果用於所述解碼步驟的配置。跨距配置是在每一個程通過加倍所述跨距在一種實現方式中,來改變的。在一種實施方式中,在一種實施方式中,不變。在一種實施方式中,宏塊。在一種實施方式中,在每個程都對完整的畫面進行解碼。在前一程期間解碼的宏塊在後一程中保持用空塊填充不能解碼的或者還沒有解碼的在從位流中解碼或推定出來的標誌被設置為代表所述畫面為隔行的值時所述解碼配置步驟基於所述畫面而得以啟動。本發明還涉及一種電腦程式產品,包括用來在所述程序由處理器執行時實現前面公開的解碼方法的程序指令。本發明還涉及一種包括按照本發明的視頻解碼器的移動裝置。本發明在遵循諸如MPEG-4和DivX之類的視頻標準的流在行動電話上的播放這一領域中具有應用,其中採用前面介紹的視頻解碼器是非常有益的。在閱讀了下面的詳細說明和參照附圖的情況下,本發明的其它目的、特徵和優點將會變得顯而易見,其中-圖1圖解說明幀DCT編碼中的宏塊結構,-圖2圖解說明幀DCT編碼中的宏塊結構,-圖3代表按照本發明的視頻解碼器,-圖4圖解說明針對給出與各個場相關的運動補償向量的場預測宏塊的基於場的運動補償,其中上部分與亮度相關,下部分與色度相關,-圖5圖解說明按照本發明沿著多程進行的場預測宏塊的重構,-圖6給出本發明的優選實現方式的例子。具體實施例方式在下面的介紹中,不對本領域技術人員熟知的功能或構造進行詳細介紹,因為它們可能會使得本發明埋沒在不必要的細節當中。當在編碼中使用了隔行掃描圖像時,反DCT可能是由包含在位流中的稱為dct—type的語法規則元素為具有紋理信息的各個宏塊規定的幀DCT或者場DCT。當為特定的宏塊將dct一type標誌設定為0曰寸,該宏塊是幀編碼的並且亮度數據的DCT係數對由來自兩個場的行交替組成的8*8塊進行編碼。在圖1中描畫了這種模式。陰影部分和空白部分分別代表兩個場TF和BF。圖1圖解說明幀DCT編碼之後的隔行宏塊MB的8*8塊Bl、B2、B3、B4的幀結構。當為特定的宏塊將dct一type標誌設定為1時,該宏塊是場編碼的並且這樣形成亮度數據的DCT係數8*8塊僅由來自一個場的數據組成。在圖2中描畫出了這種模式。圖2圖解說明場DCT編碼之後的隔行宏塊MB的8*8塊Bl'、B2'、B3'、B4'的幀結構。在傳統的反DCT中,然後必須將亮度塊B1'、B2'、B3'和B4'反置換回幀宏塊。這裡需要提醒的是,通常,即使為特定宏塊選擇的是場DCT,但是色度紋理仍然是由幀DCT編碼的。對於各個宏塊,運動補償也可以是基於幀或基於場的。這一特徵是針對非全局運動補償(GMC)宏塊由P和SVOP(或Sprite-VOP)中宏塊等級上的稱為field—prediction的語法規則元素規定的。事實上,必須要指出的是,在隔行畫面中,全局運動補償總是基於幀的。如果將field—prediction標誌設置為0,則就象在非隔行的情況下一樣,進行非GMC運動補償。這可以藉助在1-MV模式下應用於16*16塊的單獨一個運動向量或者藉助在4-MV模式下應用於8*8塊的4個運動向量來完成。色度運動向量總是由亮度運動向量推定出來的。如果將field—prediction標誌設置為1,則可以藉助應用於各個場的16*8塊的兩個運動向量(每個場一個)來預測非GMC塊。和場DCT的情況一樣,在運動補償之後必須要將預測塊置換回幀宏塊。而且,基於場的預測可能會由於替換為從兩個色度行中選出一個色度行而導致對色度塊進行8*4預測,這在4:2:0隔行顏色格式中僅僅相當於一個場。在編碼期間,在非GMC宏塊中,可以彼此獨立地應用幀和場DCT以及幀和場運動預測。表1總結了除了GMC宏塊以外ASP流的工、P和SV0P可能出現的不同組合。表1tableseeoriginaldocumentpage9圖3示意性地代表用於解碼視頻信號的畫面P中的位流BS的視頻解碼器DEC。該位流有可能包括以逐行方式編碼的和以隔行方式編碼的宏塊。該解碼器DEC包括用於對以逐行方式編碼的宏塊進行解碼的解碼單元DEU。對於MPEG-4簡單類解碼功能來說,有這樣的情況僅能重建基於幀的8*8反DCT並且對於亮度通道僅能運動補償16*16或8*8基於幀的塊且對於色度通道僅能運動補償8*8塊。類型7和8(見表1)的宏塊的運動補償對於按照本發明的視頻解碼器中實現的解碼單元DEU尤其成問題,因為它是基於場的,需要為亮度通道替換為兩個16x8場像素LTF和LBF,並且為各個色度信道替換為兩個8x4場像素CTF和CCF,如圖4中所示。類似地,類型2、4和6的宏塊得不到直接支持,因為需要基於場的反DCT操作。按照本發明的視頻解碼器包括解碼配置單元DCU,該單元能夠操縱解碼單元DEU的讀和寫跨距R/WSTR。按照本發明的配置單元DCU使得讀取或寫入在單個場中構成的像素成為可能。通過簡單地將針對亮度像素的讀取操作的跨距加倍,能夠使得解碼單元進行隔行讀取,相當於來自參考紋理的僅僅一個場,同時以基於幀的表達形式重構(寫入)數據。使用它的8x8運動補償能力,於是直接重構如圖l右側所示的8x8塊幀數據以及如圖2右側所示的8x8塊場數據會成為可能。這樣,解碼單元DEU的各種配置能夠覆蓋類型3、4、5、6的亮度和色度以及類型7和8中僅僅亮度的運動預測要求。通過改變寫入跨距,可以通過以基於幀的方式每行寫入數據或者以基於場的方式每隔一行寫入數據來重構畫面。這使得解碼單元DEU能夠將場重新交織起來。這種解碼單元在配置上的改變僅僅能夠在矩形的宏塊組的開端完成。不可能針對各個宏塊對應的讀取和/或寫入操作改變跨距值R/WSTR。這樣,對於單獨一個畫面,解碼配置單元DCU要啟動解碼單元數次,以便在各個程改變一次跨距配置的同時以多程方式解碼該畫面。這樣能夠專門解碼按照前一程中使用的跨距配置不能得到解碼的一種或數種宏塊類型。在每個程,對單獨一個存儲器MEM區域中的完整畫面P[1]或P[2]進行解碼,以符合硬體期望的規整數據流。使在前程期間解碼的宏塊保持不變,並且用空塊填充不能解碼並且還沒有得到解碼的宏塊。表1中的所有類型都涉及到某些讀取/寫入跨距組合,並且可以這樣來組織所有的宏塊使得共有同一個組合的宏塊在同一程期間得到重構。使用專用的處理單元PRU來支持某些處理,例如,處理對於各個場具有截然不同的運動補償向量的類型7和8的宏塊。使用或不使用這些專用處理單元取決於所要解碼的宏塊的類型。如圖5中所示,第一程FP對整個畫面大小進行解碼,但是對於不能按照當前的讀取/寫入跨距加以解碼的宏塊,會留下空塊(由陰影塊代表)。第二SP和第三TP程按照不同的跨距處理其它的宏塊,但是使之前重構的宏塊在主畫面P中保持不變。這樣,各個程都是對同一個存儲區域中的整個畫面P進行解碼。在各個程,都要改變跨距以使在將正確信息傳遞給解碼單元DEU以使之前解碼的宏塊在畫面存儲區域內保持不變的同時能夠解碼新的類型的宏塊。例如,這可以通過傳遞將會簡單地重新複製之前解碼的數據而不改變它的運動向量來完成。在一種優選的實施方式中,在單獨一個存儲區域中逐行地重構畫面P,而不需要在處理結束時重新排列來自各個不同存儲位置的宏塊,因為已經使得到解碼的宏塊留在了它們在解碼畫面內各自的位置上,並且當前宏塊是在它們在畫面P內的最終位置上解碼的。在重構場編碼的信息時,對各個場使用單獨的程並且由解碼單元DEU解碼的各個宏塊的像素填充在跨越垂直排列的一對宏塊的單獨一個場內。下面給出雙程解碼的例子第一程針對基於幀的預測和幀DCT。因此針對基於幀的表達形式設定讀取和寫入跨距。採用下列數據使用簡單類解碼單元加速來重構完整的畫面類型1:幀內宏塊。類型3和5:按照幀紋理進行幀預測的宏塊。類型4和6:宏塊的僅僅基於幀的運動補償部分,不加入場紋理,即使位流中存在著場紋理。類型7:在專用處理單元PRU中使用兩種情形的解碼來重構按照場紋理進行場預測的宏塊,在這兩種情形中,對兩個宏塊進行解碼而不是對一個宏塊解碼,第一個宏塊利用頂部場運動向量以1-MV模式進行解碼,第二個宏塊利用底部運動向量進行解碼。在完成時,第一個宏塊擁有正確的頂部場像素,同時帶有不相關的底部場,第二個宏塊擁有正確的底部場像素,同時帶有不相關的頂部場。第二個程將會重新組合多種情態,以稍後形成正確的類型7宏塊。類型8:僅僅進行基於場的運動補償,也是使用兩種宏塊情形。第二個程也將稍後重新組合它們。其它類型使用低成本操作來填充宏塊仍然不能得到解碼的空白空間。此時,已經進行了所有的運動預測,包括數種宏塊情形中的基於場的運動預測。第二個程使用基於場的讀取/寫入跨距並且可以使用兩個子程,一個子程針對頂部場,另一個子程針對底部場。將第一個程中重構的畫面設定為參考畫面,從而解碼單元能夠不變動地重新複製已經得到解碼的塊。不再參考定位畫面,因為已經進行了所有的運動預測。類型1、3和5:利用適當的運動向量並且不加入DCT紋理,解碼單元使用4-MV模式簡單地重新複製之前的宏塊。類型2:由解碼單元DEU重構場INTRA宏塊。類型4和6:將場DCT紋理加入到第一個程期間形成的預測結果中。類型7:使用基於場的運動補償,將宏塊從它們各自的情形進行重新交織。類型8:象類型7的宏塊那樣對宏塊進行重新組合,並且將基於場的DCT加入到運動預測中。在這一第二個程結束時,獲得了最終的正確隔行畫面。在以通過在基於場的模式下對寫入跨距加倍來寫入宏塊而每次處理一個宏塊(就是說每個宏塊四個8*8塊)的方式設計解碼單元的情況下,有可能硬體會填充大小為16x32的區域。如圖6中所示,這相當於幀結構(其佔據跨越交織的宏塊對MBP的16x32像素)中作為場寫入的四個8x8塊TFMB和BTMB。因此需要將交織信息的重構分為兩個子程,每個場TF和BF—個子程,對數據進行重新組合,從而由解碼單元解碼的各個宏塊TFMB和BFMB實際上填充垂直排列的兩個宏塊MBP中的頂部或底部場TF和BF。前面介紹的第二個步驟實際上可以由兩個子步驟組成,各個子步驟執行解碼整個畫面的單獨一個場的操作。在重新交織期間,由解碼單元解碼的各個宏塊在按照基於場的跨距寫入時,會填充跨越宏塊對的單獨一個場。本發明尤其關注如行動電話這樣的移動裝置上的視頻信號處理。這樣可以通過反覆使用SP解碼單元解碼ASP流來處理MPEG-4或DivX流。應該理解,本發明並不局限於前面介紹的實施方式並且可以進行改變和修改,而不會超出所附權利要求中定義的本發明的思想和範圍。鑑於此,做出下面的結束語。存在多種多樣的藉助硬體或軟體製品或者二者來實現按照本發明的方法的功能的方式,只要單獨一個硬體或軟體製品能夠實施數個功能。並不排除硬體或軟體製品或者二者的組合實施一項功能的情況,這樣不用修改按照本發明的處理方法就可以形成單獨一個功能。所述硬體或軟體製品可以以多種方式實現,比如藉助線接電子電路或者藉助得到適當程控的集成電路。所附權利要求中的任何附圖標記都不應視為對權利要求有限定作用。顯然,動詞"包含"或"包括"以及它們的同義詞的使用並不排除除了任意權利要求中定義的步驟或要素之外還存在其它的步驟或要素。置於權利要求中的要素或步驟前面的詞"一"或"一個"並不排除存在多個這種要素或步驟的可能。權利要求1.一種視頻解碼器(DEC),用於對與視頻信號的畫面(P)相對應的位流(BS)進行解碼,編碼畫面有可能包括以逐行方式和以隔行方式編碼的宏塊,所述解碼器包括用於對以逐行方式編碼的宏塊進行解碼的解碼單元(DEU),其特徵在於,所述視頻解碼器包括解碼配置單元(DCU),該解碼配置單元(DCU)用於為了解碼單獨一個畫面而啟動所述解碼單元數次,並且用於在所述解碼單元中配置所述畫面的各個程的讀取和/或寫入跨距。2.按照權利要求1所述的視頻解碼器,其中所述視頻解碼器包括用於存儲解碼畫面的存儲器(MEM)。3.按照權利要求1和2之一所述的視頻解碼器,其中所述解碼配置單元(DCU)包括缺失宏塊檢測模塊,該模塊用於檢測解碼畫面中缺失的宏塊並且將這一檢測結果用於所述解碼單元的配置。4.按照前述任何一項權利要求所述的視頻解碼器,其中跨距配置是在每一個程通過加倍所述跨距來改變的。5.按照前述任何一項權利要求所述的視頻解碼器,其中在每個程都對完整的畫面進行解碼。6.按照前述任何一項權利要求所述的視頻解碼器,其中前一程期間解碼的宏塊在後一程保持不變。7.按照前述任何一項權利要求所述的視頻解碼器,其中用空塊填充不能解碼的或者還沒有解碼的宏塊。8.按照前述任何一項權利要求所述的視頻解碼器,其中在從位流中解碼或推定出來的標誌被設置為代表所述畫面為隔行的值時所述解碼配置單元(DCU)基於所述畫面而得以啟動。9.一種對視頻信號的畫面中的位流進行解碼的方法,編碼畫面有可能包括以逐行方式和以隔行方式編碼的宏塊,所述方法包括對以逐行方式編碼的宏塊進行解碼的解碼步驟,其特徵在於,所述方法包括解碼配置步驟,該解碼配置步驟為了解碼單獨一個畫面而啟動所述解碼步驟數次,並且由所述解碼步驟配置所述畫面的各個程的讀取和/或寫入跨距。10.按照權利要求9所述的方法,其中解碼畫面存儲在存儲器中。11.按照權利要求9和10之一所述的方法,其中所述解碼配置步驟包括缺失宏塊檢測,該檢測用於檢測解碼畫面中缺失的宏塊並且將這一檢測結果用於所述解碼步驟的配置。12.按照權利要求9一11中任何一項所述的方法,其中跨距配置是在每一個程通過加倍所述跨距來改變的。13.按照權利要求9一12中任何一項所述的方法,其中在每個程都對完整的畫面進行解碼。14.按照權利要求9一13中任何一項所述的方法,其中前一程期間解碼的宏塊在後一程中保持不變。15.按照權利要求9一14中任何一項所述的方法,其中用空塊填充不能解碼的或者還沒有解碼的宏塊。16.按照權利要求9一15中任何一項所述的方法,其中在從位流中解碼或推定出來的標誌被設置為代表所述畫面為隔行的值時所述解碼配置步驟基於所述畫面而得以啟動。17.—種電腦程式產品,包括用來在所述程序由處理器執行時實現權利要求9一16中任何一項所述的解碼方法的程序指令。18.—種移動裝置,包括權利要求1到8中任何一項所述的視頻解碼器。全文摘要本發明涉及一種用於對與視頻信號的畫面(P)相對應的位流(BS)進行解碼的視頻解碼器(DEC),編碼畫面有可能包括以逐行方式和以隔行方式編碼的宏塊,所述解碼器包括用於對以逐行方式編碼的宏塊進行解碼的解碼單元(DEU)。按照本發明的視頻解碼器包括解碼配置單元(DCU),該解碼配置單元(DCU)用於為了解碼單獨一個畫面而啟動所述解碼單元數次,並且用於在所述解碼單元中配置所述畫面的各個程的讀取和/或寫入跨距。文檔編號H04N7/26GK101189879SQ200680019349公開日2008年5月28日申請日期2006年5月30日優先權日2005年6月1日發明者斯特凡娜·瓦朗特申請人:Nxp股份有限公司