專利名稱:內容自適應視頻編碼器和編碼方法
內容自適應視頻編碼器和編碼方法技術領域
一般來說,本發明涉及視頻編碼,具體來說,涉及預處理視頻數據以用于優化 MPEG2編碼的視頻。
背景技術:
IS0(國際標準化組織)/IEC(國際電工委員會)視頻壓縮標準(例如,IS0/IEC 13818-2,參考文獻1,通常稱為運動圖片專家組(MPEG)2標準)定義了用于根據這些標準制 作的數字化編碼視頻的三種類型的編碼圖片
I圖片它是不使用幀間預測的場內或幀內編碼圖片;
P圖片它是只具有來自之前圖片的單向幀間預測的預測性編碼圖片;以及
B圖片它是具有來自之前和未來圖片的雙向幀間預測的預測性編碼圖片。
因此,I和P圖片可用作其它P和B圖片的幀間時間預測的參考圖片。諸如H. 264 規范的一些實現允許使用B圖片作為其它B圖片的參考圖片。這些B圖片稱為參考B。同 時,對P圖片有區別地編碼,并且因此在編碼時產生比I圖片小的文件大小;類似地,B圖片 產生甚至更小的文件大小。因此,有益的是減小傳送或存儲MPEG2視頻流(S卩,序列)所需 的容量,即,使用較少的I圖片和相對較多的P和B圖片。
從I圖片開始并以下一個I圖片之前的圖片結束的連續圖片序列稱為圖片組或 G0P。在I圖片之間使用P和B圖片,以便減小視頻流大小。I圖片(參考圖片)之間的間 隔稱為GOP長度,并且P圖片之間的間隔稱為Sub-GOP長度。GOP長度中的圖片順序稱為 GOP結構。
I、P和B圖片的排列由MPEG2規范規定,但是未定義任何特定的GOP長度或結構 (即,GOP參數),并且因此讓制造商和用戶針對任何特定應用選擇合適的GOP參數。
MPEG2規范中固有的假設是,一旦做了選擇,GOP參數便固定,即,通常預期GOP的 大小和結構不會動態地改變。但是,規范沒有決定性地禁止這樣做。
過去使用可變G0P,以便減輕在可伸縮MPEG視頻編碼時出現的難度,其中可伸縮 是指以不同的質量級、分辨率和幀速率解碼表示編碼視頻的位流的能力。
文獻W02005086493A1中提供了可變GOP可伸縮編碼的一個實例。在此情況下,GOP 參數設置成允許不同的解碼器系統具有不同的能力以便能夠解碼和呈現視頻資料。不是調 適(adapt)GOP長度,而是如果只是在長度上不同于正常GOP的第二 GOP使編碼成本(如某 個參數所測量的)更低,則選擇第二 GOP這一選項。這種類型的方案是可伸縮編碼所特有 的,并且它不靈活,也不能使它本身緊密地適合圖片序列的行為。它特別不能應對由諸如場 景變換、隱顯(fade)、閃光(flash)、時間或特殊復雜性等實際因素引起的編碼缺點。同時, 利用靜態(即,固定)大小/結構的GOP會導致次優編碼性能。
因此,本發明的目的是解決這些問題并改善MPEG2編碼的實際性能。發明內容
在本發明的第一方面,提供一種預處理視頻圖片數據序列的方法,其中視頻圖片 數據序列包括排列成多個圖片組GOP的I圖片、P圖片和B圖片,并且所述多個圖片組中的 每個圖片組具有第一圖片和多個子圖片組Sub-GOP。在所描述的方法中,分析視頻圖片數 據序列以確定視頻圖片數據序列內相對于新GOP的起點位置的場景變換的位置,從而向視 頻編碼器提供信息以通過延長或減小當前GOP長度來移動新GOP的起點以與場景變換重合 (coincide)。如果場景變換和新GOP的起點在預定數量的圖片內,這便完成了。
以此方式,視頻數據(內容)的源序列的逐幀行為而不是固定選項集合使GOP參 數適合最優編碼。此外,該方法使得能夠對于任何給定的視頻數據序列使用較少的I幀,編 碼的數據大小因此更小,從而允許編碼器/解碼器中的更快速處理和更低的存儲要求。
可選地,如果所提供的信息指示通過延長當前GOP長度來移動新GOP的起點,則 延長步驟包括由P和B圖片創建一個或多個新的Sub-GOP ;以及將新創建的一個或多個 Sub-GOP插入到當前G0P,直到當前GOP具有足夠長度為止。創建這一個或多個新Sub-GOP 的步驟可包括提供第一 P圖片作為這一個或多個Sub-GOP的最后一個圖片;以及在第一 P 圖片之前插入B或P圖片直到達到期望的Sub-GOP長度。
可選地,如果所提供的信息指示通過減小當前GOP長度來移動新GOP的起點,則 減小當前GOP長度的步驟包括在場景變換處插入I圖片作為新GOP的第一圖片以開始新 GOP ;由P和B圖片創建一個或多個新的Sub-GOP ;以及將新創建的一個或多個Sub-GOP插 入到新GOP中,直到新GOP具有足夠長度為止。創建這一個或多個新Sub-GOP的步驟可包 括提供第一 P圖片作為這一個或多個sub-GOP的最后一個圖片;以及在第一 P圖片之前插 入B或P圖片直到達到期望的Sub-GOP長度。
可選地,插入到新創建的Sub-GOP中的圖片的圖片類型取決于視頻圖片數據的度 量(metric),包括空間復雜性度量;時間復雜性度量;隱顯活動度量;閃光活動度量;場 景變換度量;以及位速率度量。
可選地,除非對視頻圖片數據序列的分析發現以下布爾方程為真,否則插入到新 創建的Sub-GOP的圖片的圖片類型內容為B型圖片(視頻圖片數據序列的時間位移> = 第一預定值)或(視頻圖片數據序列的時間失真>=第二預定值)或(時間位移<=第三 預定值并且空間復雜性<=第四預定值并且位速率<=預定速率)并且(未出現閃光或未 出現隱顯),在此情況下,在新創建的sub-GOP中使用P圖片。在上述標準中,時間位移和時 間失真是時間復雜性度量;并且閃光活動度量包括檢測被測Sub-GOP中是否出現閃光,以 提供“未出現閃光”的布爾值;而隱顯活動度量包括檢測被測Sub-GOP中是否出現隱顯,以 提供“未出現隱顯”的布爾值。
可選地,第一預定值是16,第二預定值是056*16),第三預定值是5,第四預定值 是2560,并且預定位速率是2兆位/秒。
可選地,場景變換可包括經過編輯的視頻數據序列中的場景剪切或拼接點。
可選地,如果場景變換是拼接點,則方法還包括向編碼器提供指示在拼接點處插 入I圖片的信息;以及將拼接點之前的Sub-GOP中的所有圖片轉換為P圖片。
可選地,視頻圖片數據序列包括使得每個圖片包括頂場和底場的交錯視頻數據,并 且如果場景變換是場景剪切,則方法還包括向編碼器提供信息,該信息指示,如果場景剪切出現在被測sub-GOP的最后一個圖片的底場上,則在下一個sub-GOP的參考圖片上插入I圖片。
可選地,預定圖片數是6。
該方法通常依次運用于視頻圖片數據序列中的每個Sub-GOP。
所插入的是P圖片還是B圖片可取決于在所處理的視頻數據序列中是否檢測到隱 顯或閃光。
在本發明的第二方面,提供一種預處理視頻圖片數據序列的方法,其中視頻圖片 數據序列包括排列成多個圖片組GOP的I圖片、P圖片和B圖片,并且所述多個圖片組中的 每個圖片組具有第一圖片和多個子圖片組Sub-GOP。該方法包括分析視頻圖片數據序列 以確定有關視頻圖片數據序列的度量;以及取決于滿足預定標準的視頻圖片數據序列的區 段(section)的度量,在視頻圖片數據序列的所述區段中,將B圖片轉換為P圖片。
在自適應GOP結構方法中所用的關于視頻圖片數據序列的度量包括以下度量中 的任何一種或多種空間復雜性度量;時間復雜性度量;隱顯活動度量;閃光活動度量;以 及位速率度量。
可選地,該方法還可包括在視頻圖片數據序列的該區段中檢測閃光或隱顯,其中 如果視頻圖片數據序列的該區段具有高時間復雜性,或者視頻圖片數據序列的該區段在較 低位速率具有低空間和時間復雜性,并且在視頻圖片數據序列的該區段中未檢測到閃光或 隱顯,則進行將B圖片轉換為P圖片的步驟。
只有滿足以下預定標準時才可進行B圖片到P圖片的轉換(視頻圖片數據序列 的時間位移>=第一預定值)或(視頻圖片數據序列的時間失真>=第二預定值)或(時 間位移<=第三預定值并且空間復雜性<=第四預定值并且位速率<=預定速率)并且 (未出現閃光或未出現隱顯),其中時間位移和時間失真是時間復雜性度量。
在本發明的第三方面,提供一種用于預處理視頻圖片數據序列的視頻預處理器設 備,其中視頻圖片數據序列包括排列成多個圖片組GOP的I圖片、P圖片和B圖片,并且每 個圖片組具有第一圖片和多個子圖片組Sub-GOP。該預處理器包括適于分析視頻圖片數 據序列的視頻序列分析器,包括適于確定視頻圖片數據序列內相對于新GOP的起點位置的 場景變換的位置的位置確定處理器;以及GOP自適應電路,適于向視頻編碼器提供信息,以 便如果場景變換和新GOP的起點在預定數量的圖片內,則取決于視頻序列分析器的輸出度 量通過延長或減小當前GOP長度來移動新GOP的起點以與場景變換重合。
在本發明的第四方面,提供一種用于預處理視頻圖片數據序列的視頻預處理器設 備,其中視頻圖片數據序列包括排列成多個圖片組GOP的I圖片、P圖片和B圖片,并且每 個圖片組具有第一圖片和多個子圖片組Sub-GOP。該視頻預處理器設備包括視頻序列分 析器,適于分析視頻圖片數據序列以確定關于視頻圖片數據序列的度量;以及GOP自適應 電路,適于向視頻編碼器提供信息,以使得取決于滿足預定標準的視頻圖片數據序列的區 段的度量,在視頻圖片數據序列的所述區段中,視頻編碼器將B圖片轉換為P圖片。
視頻序列分析器還可包括以下組件中的一種或多種場景變換檢測器,適于檢測 視頻圖片數據序列中的場景變換;隱顯檢測器,適于檢測視頻圖片數據序列中的隱顯;閃 光檢測器,適于檢測視頻圖片數據序列中的閃光;層級運動估計器,適于提供視頻圖片數據 序列的時間度量;空間復雜性估計器,適于提供視頻圖片數據序列的空間復雜性度量;第 一緩沖器,用于緩沖視頻圖片數據序列以在檢測器或估計器的任一個中使用;以及延遲器,用于延遲第二緩沖器的輸出。
需要不同GOP參數的每個應用可通過在所采用的編碼硬件或軟件內具有靈活調 整可用來適應。
在本發明的又一方面,提供一種預處理視頻數據的方法,包括分析包括圖片序列 的視頻數據,該圖片序列包括多個GOP ;確定相對于GOP的起點位置的場景剪切的位置;改 變在時間上位于場景剪切之前的第一 GOP的GOP長度,以使得第一 GOP在場景剪切之前的 一個圖片結束;以及從場景剪切開始新G0P。
現在將參考附圖只是舉例描述預處理視頻數據的方法,附圖中
圖1示出根據諸如MPEG2的視頻編碼標準的GOP長度和GOP結構的圖示;
圖2示出根據本發明一個實施例的自適應GOP長度和GOP結構預處理設備的示范 性高級示意性框圖3a示出現有技術視頻圖片數據序列中的GOP開端和場景剪切的相對位置的圖 示;
圖北示出根據本發明一個實施例對于圖3a的實例如何調適GOP長度的圖示;
圖如示出當場景剪切出現在當前sub-GOP的參考圖片的最后一個場中時的圖 示;
圖4b示出根據本發明一個實施例對于圖如的實例如何調適GOP長度的圖示;
圖5示出在運用本發明一個實施例之前的I、P和B幀的示范性序列的原始顯示順 序;
圖6示出圖5的序列的幀12處的場景剪切的現有技術處理;
圖7示出根據本發明一個實施例的如圖5所示的序列的幀12處的場景剪切的處 理;
圖8示出如圖5所示的序列的幀21處的場景剪切的現有技術處理;
圖9示出根據本發明一個實施例的如圖5所示的序列的幀21處的場景剪切的處 理;
圖10示出根據本發明一個實施例的空間復雜性計算中所用的示范性4X4像素 塊;
圖11示出如圖5所示的序列的幀13至23之間的快速運動影像區段的現有技術 處理;
圖12示出根據本發明一個實施例的如圖5所示的序列的幀13至23之間的快速 運動影像區段的處理;
圖13示出根據本發明一個實施例的自適應GOP長度和GOP結構方法的示范性流 程圖14示出根據本發明一個實施例適于實現該方法的硬件的更詳細示范性高級示 意圖。
具體實施方式
現在將參考附圖描述本發明的實施例,附圖中,賦予相同或類似的部分或步驟相 同或類似的附圖標記。
圖1描繪形成由I圖片10、P圖片20和B圖片30組成的視頻圖片數據序列的連 續圖片序列。在所示實例中,GOP長度45是12,并且Sub-GOP長度25是3。圖1還示出P 和B圖片的時間預測的方向。具體來說,示出用于P圖片的正向預測21、用于B圖片的正向 預測31和用于B圖片的反向預測35。
圖1還示出GOP的一般形式,S卩,第一圖片50 (I圖片)、然后是第一 sub-GOP 60、 再進一步是sub-GOP 61和62等。
如前所述,MPEG2標準沒有定義特定的GOP長度45和Sub-GOP長度25,因此它們 可固定或可變。如本發明所提議基于序列的內容改變GOP長度45和GOP結構可使所實現 的壓縮最大化,并且通過檢測編碼并使編碼適應所編碼的視頻本身的內容、從而避免缺陷 編碼來改善圖片質量。
為了達到最佳編碼效率,很明顯,GOP長度45應當很長,但是這可導致實際問題, 并且因此典型的GOP長度45是有限的。這是因為,所預測的錯誤可通過GOP傳播,因為隨 后預測的圖片利用其中具有錯誤的之前預測的圖片,并且因此傳遞錯誤。
考慮其中場景剪切跟在GOP末端之后的幾個圖片之后的情形。然后,比較好的是通 過在場景剪切處插入I幀來延長之前的GOP并開始新的G0P,從而避免速率控制緩沖器波動。
同時,通過關閉B圖片(即,只使用P圖片)來更好地編碼具有大的全局搖攝 (global pan)的快速運動序列,而用B圖片更好地編碼慢速運動序列或具有隱顯和閃光燈 (camera flashes)的序列。因此,有利的是基于視頻內容調適GOP長度和GOP結構以使所 實現的壓縮最大化并且因此改善所感知的視頻質量。下文更詳細地說明所提議的自適應 GOP長度和GOP結構方法。
本發明建議采用以下方法來自適應地調整GOP長度45和GOP結構,以便改善所感 知的特定圖片序列的編碼質量
1)基于場景變換延長或減小GOP長度-稱為自適應GOP長度;
2)基于視頻內容關閉Sub-GOP中的B圖片-稱為自適應GOP結構。
場景變換可以是電影中的典型場景剪切,不然可以是不同原始視頻源之間的拼接點ο
為了基于內容調適GOP長度45和GOP結構,所提議的方法在視頻編碼的預處理階 段中利用來自不同模塊的信息,預處理階段是在適當編碼之前的處理階段,其任務是分析 輸入視頻圖片并提供關于它們的高級信息以指導視頻編碼器做出最適宜的編碼決策。
它利用諸如下列的信息來自對層級運動估計(ME)的分析的信息;空間復雜性度 量;場景剪切檢測;隱顯檢測和閃光檢測。這些模塊中的每個模塊在圖2中的根據本發明一 個實施例的預處理器設備中示出。但是,取代所示模塊或除了所示模塊之外,可利用檢測其 它度量的其它模塊。
具體來說,圖2示出用于預處理階段110-150的Sub-GOP輸入105,其中預處理階 段110-150的輸出用于創建視頻圖片數據幀的輸出序列的自適應GOP長度和結構160。
更詳細地描述圖2,場景剪切檢測器110通知GOP自適應電路關于新鏡頭的開端以及新鏡頭相對于包含它的幀或場的位置(即,幀中的場景剪切、頂場中的場景剪切或底場 中的場景剪切)。場景剪切檢測器110還給出關于在當前Sub-GOP之前的圖片中的未來場 景剪切的信息。在優選實施例中,場景剪切檢測器向前看到6個圖片。
隱顯檢測器120提供關于當前圖片是漸顯或漸隱的一部分還是兩者都不是的信 息。閃光檢測器130提供標志以通知GOP自適應電路當前圖片中是否具有閃光燈。層級運 動估計器140提供時間復雜性度量,這將在下文更詳細地描述。同時,空間復雜性檢測器 150檢測空間復雜性,這將在下文參考圖10更詳細地論述。
自適應GOP長度
如前所述,GOP長度45規定連續I圖片之間的間隔。因為從之前圖片預測P圖片 并且從之前和未來圖片預測B圖片,所以運動補償錯誤會在不使用I圖片的情況下傳播。在 閉合GOP中,當預測P或B圖片時,不允許引用來自之前GOP的圖片,利用閉合GOP有助于 無縫地改變視頻編碼器內容,并且特別在拼接點的情況中使用。開放GOP允許在預測P或 B圖片時引用之前的G0P,并且開放GOP可允許更大的壓縮。
因此,需要周期性地插入I圖片以防止這樣的錯誤傳播并且因此改善所感知的視 頻質量。周期性地插入I圖片也是為了減少解碼器處的隨機存取時間或信道改變時間。在 場景剪切處,必須插入I圖片,因為否則預測會失敗,這是因為它們引用與當前圖像不再有 關的圖像。因此,在以下情況中需要插入I圖片
1)在GOP的開端處;
2)在場景變換處(即,包括場景剪切和拼接點)。
如果場景變換是場景剪切,并且它在GOP的開端之前發生,則在場景剪切之后的 第一參考圖片上插入I圖片,并且從插入的這個I圖片開始新的G0P。如果場景剪切正巧落 在非參考圖片上,即,落在B圖片上,則更佳的是延遲場景剪切直至下一個參考幀,因為已 知這可改善參考圖片的質量。
在本發明的一個實施例中,如果場景變換和GOP的開端在6個幀內,則延長GOP長度。
典型的情景如圖3a和北所示。
在沒有自適應GOP長度方法的情況下,將密集地插入兩個I圖片。根據系統的所 選設定GOP長度,一個出現在GOP 201的自然起點處,另一個不按正常序列插入在場景剪切 202處以防止錯誤傳播,否則錯誤傳播將因引用與場景剪切之后的視頻無關的圖片而發生。 將兩個I圖片放得如此密集增加了要發送給編碼器的數據量,因此會對速率控制緩沖器存 儲造成不利影響,并且因此潛在地使緩沖器不必要地溢出。
根據本發明,上述情景可通過以下方法來處理將當前GOP 210延長至出現場景 變換的點,然后從來自第一場景變換圖片203的I幀開始下一個GOP 220,從而避免密集地 插入兩個I圖片。在本發明中,當前GOP 210(長度)被視為是位于場景變換之前的GOP (的 長度),而下一個GOP 220(長度)被視為是在場景變換之后的GOP (的長度)。這如圖北 所示。類似的當前/下一個命名協議同樣適用于本描述中的sub-GOP。
在本發明中,場景變換可包括視頻內的“傳統”場景剪切(例如,電影從建筑物內 部變換到外部),或者它可包括拼接點(例如,電影轉到廣告時間)。下文將進一步論述拼 接點以及圍繞它們的應用的具體問題。
圖如和4b示出該方法如何處理特殊情形,在該特殊情形中,視頻數據序列交錯 (即,包括多個場),并且場景剪切正巧落在Sub-GOP的最后一個圖片的底場202b上,S卩,落 在參考圖片(P圖片而不是B圖片)上。在這種情形中,優選的是將I幀插在下一個Sub-GOP 的參考圖片20 上,而不是插在場景剪切點本身、即延遲的場景剪切上。注意,在圖如和 4b中,示出形成以BBPBBP形式、即兩個sub-GOP值的幀的B和P場的樣本。這些幀的場連 續編號,“ t ”表示頂場,“ b ”表示底場。
現在將利用圖5-9描述描繪本發明的自適應GOP長度方法部分的效果的更詳細的 示范視頻幀序列(即,非交錯視頻)集合,其中給出為輸出視頻序列的每個幀號產生的圖片 類型。注意,在交錯視頻的情形中,如圖如和4b中所使用,幀可由兩個場形成。
圖5示出具有Sub-GOP長度3和GOP長度45的起始MPEG2編碼器視頻編碼情景 的顯示順序。在此情況下,每16個幀開始一個新GOP 201。
但是,如果場景剪切202發生在幀號12處,則在不運用本發明的自適應GOP長度 方法的情況下,視頻編碼器產生如圖6所示的圖片序列輸出。在此情況下,場景剪切202出 現在幀12上,其中在開始下一個GOP 204的I幀(根據所用的固定長度GOP的長度45,在 此情況下為1 出現之前只存在兩個B幀。因此,實際上,出現非常短的G0P,從而導致在非 常短的時間量內出現兩個較大尺寸的I幀。此時,這導致高于平均位速率。
然而,如果對圖5運用本發明的自適應GOP長度方法,則產生圖7的圖片序列。在 此情況下,減小當前GOP長度以在幀12處將場景變換202考慮在內。因此,下一個GOP的 I幀和場景剪切在幀12處組合203,其中新GOP從幀12 “不按序列地(out of sequence),, 開始,即,在使用為15的固定GOP長度時不在預期位置開始。這涉及減小當前GOP的大小。
在第二實例中,場景剪切202發生在幀號21處。在沒有自適應GOP長度方法的情 況下,視頻編碼器產生如圖8所示的視頻序列輸出。同樣可見,在相對短時間幀內出現兩個 I幀(分別在幀15和21處),并且因此視頻位速率增大。
但是,在運用所提議的自適應GOP長度方法的情況下,序列輸出如圖9所示。現在, 將第一(當前)GOP延長以使得下一個GOP的起點203與幀21處的場景變換重合。
在下一個GOP的起點與場景剪切組合的每種情況中,除非如下文特別參考圖13所 更詳細地論述,存在需要不同結構的特定情景,否則根據正常Sub-GOP結構BBP填充中間 幀。在GOP縮短的情況下,同樣除非存在需要改用P圖片的特定情景,例如如下文所描述的 情景,否則它運用典型的GOP結束結構BBI。
自適應GOP結構
在Sub-GOP長度中,取決于視頻圖片數據的視頻內容的空間和時間復雜性度量, 基于視頻內容關閉B圖片是個好主意。例如,通過關閉B圖片來更好地編碼具有快速搖攝 的序列。
因此,本發明也可利用某些度量的評估,以便確定優化的Sub-GOP結構。度量可包 括空間復雜性度量;時間復雜性度量;隱顯活動度量(關于視頻序列中的隱顯的信息); 閃光活動度量(關于視頻序列中的閃光的信息);場景剪切度量;以及位速率度量(視頻編 碼器的位速率)。
GOP自適應電路可適于在不改變GOP長度的情況下執行對GOP結構的調適。
空間復雜性的計算
空間復雜性是從序列的水平和垂直活動之和導出的。具有較小空間復雜性的序列 在空間域具有較大的冗余度,反之亦然。垂直活動表示圖片的相鄰行之間的空間一致性,而 水平活動表示水平方向上的相鄰像素之間的空間一致性。水平活動是水平方向上的像素的 加權和,而垂直活動是垂直方向上的像素的加權和。
圖10示出根據本發明一個實施例在空間復雜性計算中所用的示范性4X4像素 塊。在下文中,利用圖10中的像素位置‘al’的實例來說明水平和垂直活動的示范性計算。
(行 N 的)水平活動=abs (a0+al_a2_a3)/16 ;
(第2 列的)垂直活動=abs(al-bl)/16,
其中‘abs,是絕對值函數。
行(Line)用于記號表示,其中行N+1是位于行N下方的那一行,因此它們相隔圖 片寬度數量的像素(即,視頻間的像素數量)。
通過依次對每個像素運用上述方程來為圖片中的所有像素計算和累加水平活動 和垂直活動。
對于交錯圖片,為頂場和底場單獨計算水平和垂直活動。
然后,從水平和垂直活動之和導出空間復雜性。
空間復雜性可計算如下
對于漸進式圖片
空間復雜性=(水平活動+垂直活動)/32
對于交錯圖片
空間復雜性=(頂場水平活動+底場水平活動+頂場垂直活動+底場垂直活 動)/32
以上利用比例因子(在所示實例中為32)來減小所用的數字的大小。
為sub GOP中的每個圖片計算空間復雜性,并對于sub GOP將其求平均值以用于 調適GOP結構。
時間復雜性的計算
為了計算時間復雜性的估計值,在宏塊級在連續圖片之間執行層級運動估計。在 典型實現中,宏塊由該圖片的16X16像素組成(S卩,每個宏塊256個像素)。計算每個宏塊 的運動向量及其對應的絕對差和(SAD)值。在本發明中其使用證明是有利的時間復雜性度 量為
1)時間失真(temporal distortion);
2)時間位移(temporal displacement)。
時間失真是所有宏塊的SAD值的平均值,時間位移是所有宏塊的運動向量的絕對 和的平均值。
時間失真=所有宏塊的SAD之和/圖片中的宏塊數;
時間位移=所有宏塊的水平和垂直運動向量的絕對和之和/圖片中的宏塊數。
為Sub GOP中的每個圖片計算時間失真和時間位移,并對于SubGOP將它們求平均值。
取決于序列的空間和時間復雜性,如果滿足以下條件,則關閉B圖片
1)序列在時間域具有高活性,S卩,高時間復雜性(意為高時間失真和/或高時間位移);
2)序列在較低位速率具有非常低的空間和時間復雜性(因為對于MPEG2,與B圖 片相比,P圖片的略過標準更寬松)。
利用以下偽代碼來說明所提議的自適應GOP結構方法,假設宏塊大小為16X16像 素,g卩,每個宏塊256個像素
If ((Temporal Displacement >= 16) OR
(Temporal Distortion > = 256*16)OR
(Temporal Displacement <= 5AND Spatial complexity <= 2560AND
BitRate < = 2MBPS))
{
Turn off B pictures.
}
每個像素測量時間失真,然后對于宏塊求和。因此,可見,以上代碼要求對于宏塊 中的每個像素時間失真要大于或等于16。
以上測試適用于Sub GOP長度中的每個圖片。試驗發現,當利用16X16宏塊時, 該方法中設置閾值的以上所用的特定參數值在實踐中是有利的。對于不同大小的宏塊和圖 像/視頻大小可使用按比例定大小的值。
當在視頻中檢測到隱顯或閃光時,則不能選擇PPP結構,而是將它們編碼為BBP或 BBI。
現在將利用圖5、11和12描述用于描繪本發明的自適應GOP結構部分的效果的示 范視頻幀序列集合,其中給出為輸出視頻序列的每個幀號產生的圖片類型。
圖5是初始起始視頻序列。
圖11示出在幀13至23之間具有非常快速運動內容并且沒有運用自適應GOP方 法的視頻序列的顯示順序。
圖12示出在幀13至23之間具有非常快速運動但是運用自適應GOP結構方法的 相同視頻序列的顯示順序。
可見,當檢測到非常快速運動時,自適應GOP結構方法將sub-GOP中常用的B圖片 的所有示例轉換為P圖片。在這個實例中,GOP長度沒有改變。
處理拼接點
在數字廣播分配網絡中常見的是,為了各種目的修改編碼資料流。例如,在電纜站 頭,選擇輸入流,并重新多路復用以用于正向傳輸。在這個稱為拼接的過程中,有時需要編 輯視頻資料以增加、移除或替換區段(例如,廣告),并且這通常在壓縮域中完成以避免解 碼、然后再編碼的成本和質量代價。
由于拼接點固有地涉及完整的圖像變化,所以在拼接點之后的幀不應利用在拼接 點之前的任何幀作為視頻壓縮中所用的預測中的參考。否則,將出現錯誤預測,從而導致較 差的壓縮或假象。因此,拼接點必須結束拼接點之前的GOP (如上文所論述,它停止以后幀 中所用的反向預測),即,拼接點必須利用閉合G0P。利用閉合GOP意味著,拼接點之前的圖 片必須是I圖片或P圖片。
當存在簡單的場景剪切時,不會出現這種限制,并且因此在這種情況下可使用開放 G0P。
在這些拼接點處,將拼接點逼迫到已知的GOP邊界并不總是便利的,并且因此可 利用本發明。這是由圖5-9突出的上述GOP邊界問題的特殊情況情景的形式。在這種情況 下,需要在期望的拼接點處插入I圖片或P圖片,并且必須將它之前的圖片編碼為P圖片。 因此,如果在Sub-GOP中需要拼接點,則將該Sub-GOP結構變為包含全為P的圖片,并在拼 接點處插入I圖片。
圖13示出詳細說明對于其中每個圖片是幀、即GOP結構由所指示的I幀、P幀或 B幀形成的情形本發明如何利用上述自適應GOP長度和結構方法以及拼接點處理的組合來 為Sub-GOP指定圖片結構的示范性應用的流程圖。所示的實例利用大小為3的Sub-GOP。 在使用較大的Sub-GOP大小的情況下,重復所提議的Sub-GOP結構的最后一個幀類型。
方法300適用于原始幀序列,從第一圖片50之后的Sub-GOP 60開始,一次一個 Sub-GOP。對于每個新Sub-GOP,方法重新開始。
方法在START 301開始。首先,在步驟302,分析Sub-GOP以查看它是否包含拼接 點。如果它包含拼接點,則在步驟303,將Sub-GOP中的所有幀變為P幀,并在拼接點處插入 I幀(它開始新G0P)。然后,對于下一個Sub-GOP,方法可重新開始。
如果在步驟302在Sub-GOP中不存在拼接點,則在步驟304,分析相同的Sub-GOP 以查看它是否是GOP的最后一個Sub-GOP。
如果被測Sub-GOP是GOP的最后一個Sub_G0P,則在步驟305,檢查視頻序列以查 看接下來的6個幀(即,2個Sub-GOP長度)內是否出現場景剪切。
在優選實施例中,利用6幀超前幀計數,因為超前越長會增加編碼的等待時間并 增加幀緩沖器存儲要求。這也就是說,給定編碼器性能的特定要求集合,發現6幀超前窗口 的選擇在真實世界測試中是有利的。但是,在不同的編碼器要求情景中同樣可使用其它窗 口大小,并且在源數字視頻中可同樣使用其它GOP/sub-GOP長度。
如果出現場景剪切,則方法移到步驟306,在步驟306,它利用時間復雜性、特殊復 雜性、時間失真、視頻位速率、閃光/隱顯存在來進行上述計算,以便確定場景剪切處所用 的Sub-GOP結構。
具體來說,該方法計算以下布爾方程的解(A OR B OR C)ANDD,其中
A=時間復雜性大于或等于16;
B =時間失真大于或等于056*16);
C =時間復雜性小于或等于5,并且空間復雜性小于或等于2560,并且視頻位速率 大于或等于2Mbps (兆位/秒);
D =未出現閃光并且未出現隱顯,
其中“并且(AND) ”和“或(OR) ”是布爾運算符。
該方程的輸出是1(=是)或0(=否),并且決定如圖13所示的輸出結構,即 BBP,其中解為0 (步驟308);以及PPP,其中解為1 (步驟307)。
移回到步驟305,如果接下來的6個幀中沒有場景剪切,則在步驟309,利用上文針 對步驟306描述的相同方程,但是解的結果變為輸出最后一個Sub-GOP結構BBI,其中解 為0(步驟311);以及輸出最后一個Sub-GOP結構PPI,其中解為1(步驟310)。因此,當前 的GOP結束,并且取決于例如視頻的搖攝速度,從隨后使用的B或P幀開始新G0P。
移回到步驟304,如果被測Sub-GOP不是GOP的最后一個Sub_G0P,則在步驟312, 測試該Sub-GOP以查看它是否包含場景剪切。
如果被測Sub-GOP中沒有場景剪切,則如上文已經詳細描述,方法移回到步驟 306。但是,如果被測Sub-GOP中有場景剪切,則方法移到步驟313,在步驟313,它更具體 地測試場景剪切是(或不是)出現在參考圖片的底場中。如果不是,則利用Sub-GOP結構 BBI (步驟314)。如果是,則將場景剪切延遲直至下一個Sub-GOP (步驟315),并且方法再次 移到步驟306。
以上方法基于場景剪切的存在延長當前GOP長度。在處理GOP的最后一個Sub-GOP 時,如果場景剪切檢測器指示在2個sub-GOP長度內存在場景剪切,則不在當前Sub-GOP中 插入I幀,而是將其延遲直至下一個sub-GOP。在處理下一個Sub-GOP (包含場景剪切)時, 則在這里插入I圖片,并且因此延長GOP長度。
如果場景剪切與GOP大小不同步地發生,即,場景剪切發生在長度為3的Sub-GOP 的典型BBP結構的兩個B圖片中的任何一個B圖片上,則在Sub-GOP的最后一個圖片上(P 圖片之前所在的位置)插入I圖片,即,延遲的場景剪切。這也就是說,如果場景剪切正巧 落在非參考圖片、即B圖片上,則將場景剪切的I幀插入延遲直至場景剪切之后的下一個參 考圖片。這是因為,B圖片利用正向和反向預測,而其正向預測將出錯,其反向預測將正確, 因此如果場景剪切落在B圖片上,則無需立即插入I幀。
通過利用本發明的在上文一般描述的實施例,可根據所編碼的視頻序列的實際屬 性選擇要使用的Sub-GOP的正確結構。因此,實現了更有效的視頻輸出流或序列。
本領域技術人員將明白,在任何給定實現中,取決于該實現想要處理的內容,可只 實現流程圖的子部分。例如,在一些實現中,方法可布置成不處理拼接點,因為預期在源視 頻序列中沒有拼接點。
在本發明的一些實施例中,只實現該方法的自適應GOP結構部分。在這種情況下, 根據所檢測的度量,不改變GOP長度,而只改變它們的結構。
上述方法可由任何適當調適的硬件來執行,并且因此,該方法可以用存儲在計算 機可讀介質上的指令集來實施,該指令集在加載到計算機、數字信號處理器(DSP)等中時 使計算機執行上文所述的方法。
同樣地,該方法可作為特殊編程或硬件設計的集成電路來實施,該集成電路進行 操作以對加載到所述集成電路中的圖像數據執行該方法。集成電路可作為諸如PC等的通 用計算裝置的一部分來形成,或者它可作為諸如游戲控制臺、移動電話、便攜式計算機裝置 或硬件視頻編碼器的更專門的裝置的一部分來形成。
一個示范性硬件實施例是編程為執行所述方法的現場可編程門陣列(FPGA),它設 置在安裝在機架上的視頻編碼器的子板上以在例如支持現場新聞組的電視演播室或位置 視頻上行加值網絡(locationvideo uplink van)中使用。
本發明的另一個示范性硬件實施例是如圖14所示由專用集成電路(ASIC)制成的 視頻預處理器。
在圖14中,預處理器ASIC 400包括饋送到緩沖器420和延遲器430的輸入410。 緩沖器420存儲視頻圖片數據的輸入序列,并將該序列提供給每個檢測器110-150。根據本 發明一個實施例,檢測器110-150利用經過緩沖的視頻圖片數據來導出供GOP自適應過程使用的度量。每個檢測器象上文參考圖2所論述地那樣進行操作。
檢測器110-150的輸出將在GOP自適應方法中使用的度量提供給GOP自適應電路 440。GOP自適應電路440利用所提供的度量以及視頻圖片數據的輸入延遲版本來生成關于 隨后的視頻編碼器(未示出)如何調適GOP長度和結構的信息。延遲器430確保在GOP自 適應電路440對視頻數據序列進行操作之前檢測器有足夠的時間來進行它們的檢測過程。 在沒有延遲器430的情況下,將在當前sub-GOP上使用之前Sub-GOP的度量。
如果特定實現需要,則根據本發明的視頻數據的預處理可并入到視頻編碼器中。
GOP自適應電路440在輸出450處輸出供隨后的視頻編碼器使用的關于視頻編碼 器如何調適視頻圖片數據序列的信息。
根據本發明的一個實施例,緩沖器420的大小根據該方法的實現的特定需要、最 具體來說是根據超前窗口的大小來設計。在一個優選實施例中,緩沖器的大小設計成存儲 當前sub-GOP以及在當前圖片之前的6個圖片(即,在Sub-GOP長度3的給定實例中為9 個圖片)。
本領域技術人員將明白,本文描述的方法中進行的步驟的確切順序和內容可根據 特定的執行參數集合的要求而改變,執行參數可以是例如執行速度、所檢測的信息的類型、 檢測準確度等。因此,權利要求的編號不應理解為是對在權利要求之間移動步驟的能力的 嚴格限制,并且因此,可自由利用從屬權利要求的這些部分。
權利要求
1.一種預處理視頻圖片數據序列的方法,所述視頻圖片數據序列包括排列成多個圖片 組GOP的I圖片、P圖片和B圖片,并且所述多個圖片組中的每個圖片組具有第一圖片和多 個子圖片組Sub-GOP,所述方法包括分析所述視頻圖片數據序列;確定所述視頻圖片數據序列內相對于新GOP的起點位置的場景變換的位置;以及 向視頻編碼器提供信息,所述信息指示,如果所述場景變換和新GOP的起點在預定數 量的圖片內,則通過延長或減小當前GOP長度來移動所述新GOP的起點以與所述場景變換重合。
2.如權利要求1所述的方法,其中,如果提供的所述信息指示通過延長所述當前GOP長 度來移動所述新GOP的起點,則所述延長步驟包括由P和B圖片創建一個或多個新Sub-GOP ;以及將新創建的所述一個或多個Sub-GOP插入到所述當前G0P,直到所述當前GOP具有足夠 長度為止;其中創建所述一個或多個新Sub-GOP的所述步驟包括 提供第一 P圖片作為所述一個或多個Sub-GOP的最后一個圖片;以及 在所述第一 P圖片之前插入B或P圖片直到達到期望的Sub-GOP長度。
3.如權利要求1或2所述的方法,其中,如果提供的所述信息指示通過減小所述當前 GOP長度來移動所述新GOP的起點,則減小所述當前GOP長度的所述步驟包括在所述場景變換處插入I圖片作為新GOP的第一圖片以開始新GOP ; 由P和B圖片創建一個或多個新Sub-GOP ;以及將新創建的所述一個或多個Sub-GOP插入到所述新GOP中,直到所述新GOP具有足夠 長度為止;其中創建所述一個或多個新Sub-GOP的所述步驟包括 提供第一 P圖片作為所述一個或多個sub-GOP的最后一個圖片;以及 在所述第一 P圖片之前插入B或P圖片直到達到期望的Sub-GOP長度。
4.如權利要求2或3所述的方法,其中插入到新創建的Sub-GOP中的所述圖片的圖片 類型取決于所述視頻圖片數據的度量,所述度量包括空間復雜性度量; 時間復雜性度量; 隱顯活動度量; 閃光活動度量; 場景變換度量;以及 位速率度量。
5.如權利要求2-4中任一權利要求所述的方法,其中除非對所述視頻圖片數據序列的 分析發現以下布爾方程為真,否則插入到新創建的Sub-GOP中的所述圖片的圖片類型內容 為B型圖片(所述視頻圖片數據序列的時間位移>=第一預定值)或(所述視頻圖片數據序列的 時間失真>=第二預定值)或(時間位移<=第三預定值并且空間復雜性<=第四預定值 并且位速率< =預定速率)并且(未出現閃光或未出現隱顯);其中如果發現為真,則在所述新創建的sub-GOP中使用P圖片;其中時間位移和時間失真是時間復雜性度量;閃光活動度量包括檢測被測Sub-GOP中是否出現閃光,以提供“未出現閃光”的布爾 值;并且隱顯活動度量包括檢測所述被測Sub-GOP中是否出現隱顯,以提供“未出現隱顯”的布 爾值。
6.如權利要求5所述的方法,其中所述第一預定值是16,所述第二預定值是(256*16), 所述第三預定值是5,所述第四預定值是2560,并且所述預定位速率是2兆位/秒。
7.如前述任一權利要求所述的方法,其中場景變換包括經過編輯的視頻數據序列中的 場景剪切或拼接點。
8.如權利要求7所述的方法,其中,如果所述場景變換是拼接點,則所述方法還包括向 所述編碼器提供信息,所述信息指示在所述拼接點處插入I圖片;以及將所述拼接點之前的所述Sub-GOP中的所有圖片轉換為P圖片。
9.如權利要求7所述的方法,其中所述視頻圖片數據序列包括使得每個圖片包括頂場 和底場的交錯視頻數據,并且如果所述場景變換是場景剪切,則所述方法還包括向所述編 碼器提供信息,所述信息指示如果所述場景剪切出現在所述被測sub-GOP的最后一個圖片的底場上,則在下一個 sub-GOP的參考圖片上插入I圖片。
10.如前述任一權利要求所述的方法,其中所述預定圖片數是6。
11.如前述任一權利要求所述的方法,其中所述方法依次運用于視頻圖片數據序列中 的每個Sub-GOP。
12.一種預處理視頻圖片數據序列的方法,所述視頻圖片數據序列包括排列成多個圖 片組GOP的I圖片、P圖片和B圖片,并且所述多個圖片組中的每個圖片組具有第一圖片和 多個子圖片組Sub-GOP,所述方法包括分析所述視頻圖片數據序列以確定關于所述視頻圖片數據序列的度量;取決于滿足預定標準的所述視頻圖片數據序列的區段的度量,在所述視頻圖片數據序 列的所述區段中,將B圖片轉換為P圖片。
13.如權利要求12所述的方法,其中關于所述視頻圖片數據序列的度量包括以下度量 中的任何一種或多種空間復雜性度量;時間復雜性度量;隱顯活動度量;閃光活動度量;以及位速率度量。
14.如權利要求12或13所述的方法,還包括在所述視頻圖片數據序列的所述區段中檢 測閃光或隱顯,并且其中,如果所述視頻圖片數據序列的所述區段具有高時間復雜性,或者 所述視頻圖片數據序列的所述區段在較低位速率具有低空間和時間復雜性,并且在所述視頻圖片數據序列的所述區段中未檢測到閃光或隱顯,則進行將B圖片轉換為P圖片的所述步驟。
15.如權利要求12-14中任一權利要求所述的方法,其中,如果滿足以下條件,則進行 將B圖片轉換為P圖片的所述步驟(所述視頻圖片數據序列的時間位移>=第一預定值)或(所述視頻圖片數據序列的 時間失真>=第二預定值)或(時間位移<=第三預定值并且空間復雜性<=第四預定值 并且位速率< =預定速率)并且(未出現閃光或未出現隱顯); 其中時間位移和時間失真是時間復雜性度量。
16.如權利要求15所述的方法,其中所述第一預定值是16,所述第二預定值是 (256*16),所述第三預定值是5,所述第四預定值是2560,并且所述預定位速率是2兆位/秒。
17.一種基本上如上文參考圖2、北-5、7和9-13描述并且如這些圖所示的方法。
18.一種用于預處理視頻圖片數據序列的視頻預處理器設備,所述視頻圖片數據序列 包括排列成多個圖片組GOP的I圖片、P圖片和B圖片,并且每個所述圖片組具有第一圖片 和多個子圖片組Sub-GOP,所述設備包括適于分析所述視頻圖片數據序列的視頻序列分析器,包括適于確定所述視頻圖片數據 序列內相對于新GOP的起點位置的場景變換的位置的位置確定處理器;以及GOP自適應電路,適于向視頻編碼器提供信息,以使得如果所述場景變換和新GOP的起 點在預定數量的圖片內,則取決于所述視頻序列分析器的輸出度量,所述視頻編碼器通過 延長或減小當前GOP長度來移動所述新GOP的起點以與所述場景變換重合。
19.如權利要求18所述的設備,其中所述視頻序列分析器還包括以下組件中的一種或 多種場景變換檢測器,適于檢測所述視頻圖片數據序列中的場景變換; 隱顯檢測器,適于檢測所述視頻圖片數據序列中的隱顯; 閃光檢測器,適于檢測所述視頻圖片數據序列中的閃光; 層級運動估計器,適于提供所述視頻圖片數據序列的時間度量; 空間復雜性估計器,適于提供所述視頻圖片數據序列的空間復雜性度量; 第一緩沖器,用于緩沖所述視頻圖片數據序列以在所述檢測器或估計器中的任一個中 使用;以及延遲器,用于延遲所述第二緩沖器的輸出。
20.如權利要求18或19所述的設備,還包括適于執行權利要求2-12中任一權利要求 所述的方法的處理器。
21.一種用于預處理視頻圖片數據序列的視頻預處理器設備,所述視頻圖片數據序列 包括排列成多個圖片組GOP的I圖片、P圖片和B圖片,并且每個所述圖片組具有第一圖片 和多個子圖片組Sub-GOP,所述設備包括視頻序列分析器,適于分析所述視頻圖片數據序列以確定關于所述視頻圖片數據序列 的度量;以及GOP自適應電路,適于向視頻編碼器提供信息,以使得取決于滿足預定標準的所述視頻 圖片數據序列的區段的度量,所述視頻編碼器在所述視頻圖片數據序列的所述區段中將圖片轉換為P圖片。
22. —種攜帶指令的計算機可讀介質,所述指令在執行時使計算機邏輯執行權利要求 1-17中任一權利要求所述的方法。
全文摘要
一種預處理包括I圖片、P圖片和B圖片的視頻圖片數據序列的方法,其中這些圖片排列成多個圖片組(GOP),并且每個圖片組具有第一圖片和多個子圖片組(Sub-GOP)。該方法利用對視頻圖片數據序列的分析來確定視頻圖片數據序列內相對于新GOP的起點位置的場景變換的位置,然后根據場景變換和新GOP的起點是否在彼此的預定數量的圖片內而通過延長或減小當前GOP長度來移動新GOP的起點以與場景變換重合。還提供用于實現該方法的設備。
文檔編號H04N7/50GK102037730SQ200880129541
公開日2011年4月27日 申請日期2008年5月22日 優先權日2008年5月22日
發明者A·M·博克, R·斯皮塞爾, S·G·安穆 申請人:愛立信電話股份有限公司