低復雜度模式選擇的制作方法
【專利摘要】一種編碼包括多個幀的輸出視頻流的方法,其中每個幀包括多個圖像部分,所述方法包括:針對每個要編碼的目標圖像部分,通過優化包括失真估計和碼率測量的函數,從編碼模式集中選擇優選的模式,所述碼率是編碼所述目標圖像部分所需的碼率;使用所述選定的編碼模式將所述目標圖像部分編碼為所述輸出視頻流;以及通過有損通道傳輸所述編碼的輸出視頻流。所述失真估計包括第一項,其表示源編碼失真,以及偏置項,其表示由于在所述通道上的丟失經歷的失真的估計。所述偏置項基于根據視頻流樣本訓練的訓練參數確定。
【專利說明】低復雜度模式選擇
【技術領域】
[0001]本發明涉及當使用幀內編碼和幀間編碼來編碼視頻信號時,平衡碼率與失真之間的均衡。
【背景技術】
[0002]要編碼的視頻數據流在圖1a中示意性地示出。該視頻數據流包括多個幀(F),每個幀表示不同時刻上的視頻圖像。本領域的技術人員將理解,為了進行編碼,每個幀(F)被分為多個部分,并且每個部分還可被再細分為更小的子部分,每個部分或子部分包括多個像素。例如,根據一個術語,要編碼的視頻流的每個幀被分為多個宏塊(MB)并且每個宏塊被細分為塊(b),每個塊包括多個像素。每個幀還可以被分為可獨立解碼的片(slice)(S),每個片包括一個或多個宏塊。注意,圖1a所示的劃分僅作為示例,用于說明的目的,應該理解,這些劃分不一定旨在對應于任何實際的編碼方案-例如,每個幀可能包含更多數量的宏塊。
[0003]其中可采用視頻編碼的通信系統實例在圖2的框圖中示意性地示出。該通信系統包括第一發送端子12和第二接收端子22。例如,每個端子12、22可以包括移動電話或智能電話、平板計算機、膝上型計算機、桌面計算機或其它家用電器,例如電視機、機頂盒、立體音響系統等。第一和第二端子12、22分別在操作上與通信網絡32相連,因此,第一發送端子12被設置為發送將被第二接收端子22接收的信號。當然,發送端子12還能從接收端子22接收信號或者接收端子22從發送端子12接收信號,但是為了進行說明,此處從第一端子12的角度描述發送,從第二端子22的角度描述接收。通信網絡32例如可以包括基于分組的網絡,例如廣域互聯網和/或局域網,和/或移動蜂窩網絡。
[0004]第一端子12包括存儲介質14,例如閃存或其它電子存儲器、磁存儲器件和/或光存儲器件。第一端子12還包括處理裝置16,該裝置采取具有一個或多個核的CPU的形式;收發器,例如具有至少發送器18的有線或無線調制解調器;以及視頻相機15,該相機可能(也可能不)與端子12的支架位于同一外殼內。存儲介質14、視頻相機15和發送器18分別在操作上與處理裝置16相連,并且發送器18通過有線或無線鏈路在操作上與網絡32相連。類似地,第二端子22包括存儲介質24,例如電、磁和/或光存儲器件;以及處理裝置26,該裝置采取具有一個或多個核的CPU的形式。該第二端子包括收發器,例如具有至少接收器28的有線或無線調制解調器;以及屏幕25,該屏幕可能(也可能不)與端子22的支架位于同一外殼內。第二端子的存儲介質24、屏幕25和接收器28分別在操作上與各個處理裝置26相連,并且接收器28通過有線或無線鏈路在操作上與網絡32相連。
[0005]第一端子12上的存儲介質14存儲至少視頻編碼器,該編碼器被設置為在處理裝置16上執行。當被執行時,該編碼器從視頻相機15接收“原始”(未編碼)輸入視頻流,將該視頻流進行編碼,從而將其壓縮為較低碼率的流,然后輸出經過編碼的視頻流以便通過發送器18和通信網絡32發送到第二端子22的接收器28。第二端子22上的存儲介質存儲至少視頻解碼器,該解碼器被設置為在其自己的處理裝置26上執行。當被執行時,該解碼器從接收器28接收經過編碼的視頻流并對其進行解碼,從而將其輸出到屏幕25。可用于指代編碼器和/或解碼器的普通術語為編解碼器。
[0006]視頻編碼解碼器的目標是減小發送視頻信號所需的碼率,同時保持可能的最高質量。該目標利用統計冗余度(視頻信號的相似度)和感知不相干性(與人類視覺系統的敏感性有關)來實現。
[0007]現今的多數視頻編解碼器基于包括根據其它像素塊預測像素塊,變換預測殘差,量化變換系數,以及對量化指數進行熵編碼的體系結構。這些步驟有助于減少冗余度和不相干性。
[0008]現在參考以下文檔:
[1]ITU-T, Recommendation H.264, “Advanced video coding for genericaudiovisual services,,,2007 年;
[2]張等人在2004年發表于IEEE國際圖像處理會議記錄163-166頁的“Errorresilience video coding in H.264 encoder with potential distortion tracking” ;
[3]M.Barkowsky.B.Eskofier、R.Bitto、J.Bialkowski 和 A.Kaup 在 2007 年發表于MobConQoE 07:移動內容質量體驗研討會的第1-7頁的“Perceptually motivatedspatial and temporal integration of pixel based video quality measures, ” ;
[4]IS0/IEC MPEG 和 ITU-T VCEG 的視頻聯合組(JVT),文檔號 JVT-N046 ;
[5]IS0/IEC MPEG 和 ITU-T VCEG 的視頻聯合組(JVT),文檔號 JVT- V079 ;
[6]G.J.Sullivan和T.Wiegand在1998年11月發表于IEEE信號處理雜志第5卷、第 6 號,17-90 頁上的 “Rate-Distortion Optimization for Video Compression,,)。
[0009]預測通常可根據不同于當前幀的視頻幀中的像素執行(幀間預測)并且根據同一幀中的像素執行(幀內預測)。即,如果使用幀內編碼進行編碼,則幀的一個塊或部分(目標塊或部分)相對于幀中的另一塊或圖像部分(基準塊或部分)進行編碼;并且如果使用幀間編碼進行編碼,則目標塊或部分相對于另一幀中的基準塊或部分進行編碼。此過程一般被稱為預測或預測編碼。因此,幀間或幀內預測模塊在幀內編碼的情況下產生例如采取鄰近塊指示形式的預測,和/或在幀間編碼的情況下產生移動矢量。一般而言,編碼器還產生表示預測塊與實際塊之間的“剩余”差的殘差信號。殘差移動矢量以及與幀內預測關聯的任何所需數據然后被輸出到經過編碼的視頻流,一般通過進一步的編碼階段(例如量化器或熵編碼器)執行此操作。因此,視頻中的多數塊可根據塊差進行編碼,這樣,與編碼絕對像素值相比,編碼所需的比特數較少,從而節省碼率。幀內預測編碼一般需要比幀間預測更多的比特數,但是仍然比編碼絕對值省碼率。適合于視頻的幀間編碼和幀內編碼技術的細節對于本領域的技術人員而言是顯而易見的。
[0010]現代編解碼器允許針對幀內的不同部分使用不同的預測編碼模式。具有不同編碼選項的可能性增加了視頻編解碼器的率失真效率。必須找到每個幀區域的最優編碼表示。一般而言,此類區域為宏塊,例如16X16像素。即,對于幀內預測或幀間預測模式而言,因此可以針對每個宏塊單獨選擇,以便同一幀內的不同宏塊可使用不同的模式進行編碼。在某些編解碼器中,還可以根據不同的宏塊劃分水平使用不同的模式,例如,在較高復雜度模式或較低復雜度模式之間選擇,在所述較高復雜度模式中,針對宏塊內的每個4X 4塊執行單獨的預測,在所述較低復雜度模式中,僅基于8 X 8或8 X 16塊,甚至基于整個宏塊執行預測。可用模式也可以包括用于執行預測的不同選項。例如,如圖1b中示意性地示出那樣,在一個幀內模式中,4X4塊(b)的像素可通過從緊上面的塊的鄰近像素的向下外插或通過從緊左邊的塊向側面外插確定。被稱為“跳過模式”的另一特殊預測模式也可以在某些編解碼器中提供,此模式可被視為幀間模式的備選類型。在跳過模式(Pskip)中,目標的移動矢量基于到上面和到左邊的移動矢量推斷,因此沒有殘差系數編碼。推斷移動矢量的方式與移動矢量預測一致,因此,移動矢量差為零,因此只需要信號通知MB是跳過塊。
[0011]圖3是示意性地示出例如可以在發送端子12上實現的編碼器的高級框圖。該編碼器包括:離散余弦變換(DCT)模塊51、量化器53、逆變換模塊61、逆量化器63、幀內預測模塊41、幀間預測模塊43和減法級(_)。編碼器還包括開關47和模式選擇模塊49。每個模塊或塊優選地被實現為在發送端子的存儲介質14上存儲的編碼的一部分,并且被設置為在其處理裝置16上執行,但是也不排除某些或所有這些模塊全部或部分地在專用硬件電路中實現的可能性。
[0012]開關47和模式選擇模塊49中的每一者被設置為接收包括多個宏塊MB的輸入視頻流的實例。模式選擇模塊49被設置為針對每個宏塊選擇編碼模式“O”,并且在操作上與多工器47相連,以便以適合于選定模式的方式控制它將逆量化器63的輸出傳遞到幀內預測模塊41或幀間模塊43的輸入端。模式選擇模塊49也可被設置為將選定模式“ο”指示給相關預測模塊41、43(例如,指示4X4劃分模式、8X8模式、跳過模式等)。幀內預測模塊41或幀間預測模塊43的輸出端然后耦合到減法級(_)的輸入端,該減法級被設置為在另一輸入端上接收未編碼的輸入視頻流并從未編碼的部分減去預測塊,從而產生殘差信號。殘差塊然后通過變換(DCT)模塊51傳遞,其中其殘差值被轉換為頻域,然后轉換為量化器53,其中變換的值被轉換為離散量化指數。量化、變換的信號被反饋回逆量化器63和逆變換模塊61以產生預測塊版本(將在解碼器上看到),以便由選定的預測模塊41、43使用。在預測模塊41、43中使用的預測的指示、幀間預測模塊43產生的移動矢量,以及變換和量化模塊51、53產生的殘差的量化變換指數全部被輸出,并包括在經過編碼的視頻流中,通常通過進一步無損編碼階段(例如熵編碼器(未示出))執行此操作,在所述無損編碼階段中,預測值以及變換、量化的指數可使用本領域公知的無損編碼技術進行進一步壓縮。
[0013]根據上面的描述,編碼表示因此可以包括塊劃分信息、預測模式、移動矢量、量化精確度等。最優編碼選項依賴于視頻內容、碼率、較早期編碼決策等。變換系數的量化精確度通常被選擇為滿足碼率約束。而且可以最小化失真。
[0014]例如,H.264視頻編碼器在選擇預測模式[I]方面提供極大的靈活性。對于亮度分量的幀間預測,16 X 16像素的宏塊可被表示為一個16 X 16像素塊,或兩個16 X 8像素塊,或兩個8X 16像素塊,或四個8X8像素塊。進一步地,8X8塊可被表示為一個8X8像素塊,或兩個8X4像素塊,或兩個4X8像素塊,或四個4X4像素塊。巾貞間預測針對每個允許的宏塊劃分嘗試。塊的幀間預測通過檢索(多個)基準幀和(多個)移動矢量(從相應基準幀中基準塊的空間移動)表示,所述基準幀和移動矢量通常以子像素精確度估計。對于亮度分量的幀內預測,對于16X16塊存在四種可能的模式,對于4X4塊存在九種可能的模式。進一步地,對于色度分量,存在四種可能的模式。最佳預測模式通過比較幀間預測模式與幀內預測模式的性能來選擇。
[0015]諸如H.264 AVC [I]之類的視頻編解碼器的率失真性能很大程度上依賴于宏模塊模式選擇O的性能。即,根據率失真確定宏塊是否被最佳編碼的過程使用例如幀間模式或幀內模式(根據之前編碼的幀預測)進行平衡。從魯棒的角度來看,幀內編碼宏塊是有利的,因為它們停止時間誤差擴散(propagation)(假設使用受約束的幀內預測,即,禁止根據預測的宏塊執行幀內預測)。但是,與幀間編碼的宏塊相比,幀內編碼的宏塊一般在碼率方面支出更大,因此系統性地引入幀內編碼的宏塊非常重要,從而在給定特定碼預算的情況下,最小化解碼器上的失真(例如,平均失真)。
[0016]率失真性能優化問題可根據在碼率約束R下最小化失真以公式表示。經常使用拉格朗日優化框架解決此問題。在此,優化標準用以下公式表示
J=D(m, ο) + λ R(m, ο)(1)
其中/表示拉格朗日函數4表示失真測量(模式ο和宏塊m或者宏塊子劃分的函數),W是碼率,并且』是定義失真與碼率之間均衡的參數。
[0017]在該應用中,解決拉格朗日優化問題意味著查找最小化拉格朗日函數/的編碼模式O,其中拉格朗日函數/包括至少表示失真的項、表示碼率的項和表示二者之間均衡的系數(“拉格朗日乘數”)。當編碼模式O朝著更細致或更佳質量編碼模式變化時,失真項D將減小。但是,同時碼率項將增加,并且在依賴于λ的特定點上,7?的增加比D的減小更重要。因此,表達式/將具有某一最小值,并且發生這一現象的編碼模式O被視為最優編碼模式。
[0018]在此方面,碼率7?而非』7?項對最優化產生約束,因為該項將最優編碼模式從不斷增加的質量上拉回。找到此最優平衡的模式將依賴于』,因此』可被視為表示碼率與失真間的均衡。
[0019]拉格朗日優化通常用于選擇編碼決策的過程,并且適合于每個幀區域(例如,每個16X16像素宏塊)。
[0020]失真D可被量化為原始像素與重構像素之間平方差和(SSD);并且可被計算為解釋所有處理階段,其中包括預測、變換(從每個塊或宏塊的像素空間域表示變換為諸如光頻域表示之類的變換域表示)和量化(將連續信號的數字近似值轉換為更離散的、低粒度量化水平的過程)。而且,為了計算重構像素,必須執行逆量化、逆變換和逆預測等步驟。SSD經常被優選為失真標準,因為它導致更高的質量。一般而言,碼率項R還解釋所有所需參數的編碼,其中包括描述預測的參數和量化的變換系數[4、5、6]。這些參數一般使用熵編碼器進行編碼,并且在這種情況下,該碼率可以是通過熵編碼器獲取,或者可通過實際運行熵編碼器并測量每種候選模式的結果碼率獲取的碼率的估計。熵編碼/解碼是無損過程,因此不影響失真。
[0021]此類過程在此可被稱為完全復雜度率失真優化(或完全RD0) [4、5、6]。
[0022]張等人所發表的文檔[2]提出了一種系統框架以介紹幀內編碼宏塊,其基于解碼器上預期平均平方差和[SSD]的最小值。而且,張考慮了基于誤差傳輸通道假設的端到端失真的估計。通過跟蹤潛在的失真,張等人能夠計算與預期誤差擴散失真(在解碼器上)相關的偏置項,當計算編碼器率失真環路內宏塊間的成本時,該預期誤差擴散失真被添加到源編碼失真上。
[0023]在[2]中,作者張等人估計由于源編碼和通道誤差導致的解碼器中的潛在失真。估計的潛在失真然后被間接地用于使模式選擇偏向幀內編碼(如果存在通道誤差的可能性)。
[0024]張所稱的端到端失真表達式基于平方差和(SSD)失真測量并假設用于丟失宏塊的伯努利分布。最優宏塊模式0_通過以下公式給出:
【權利要求】
1.一種編碼包括多個幀的輸出視頻流的方法,其中每個幀包括多個圖像部分,所述方法包括: 針對每個要編碼的目標圖像部分,通過優化包括失真估計和碼率測量的函數,從編碼模式集中選擇優選的模式,所述碼率是編碼所述目標圖像部分所需的碼率; 使用所述選定的編碼模式將所述目標圖像部分編碼為所述輸出視頻流;以及 通過有損通道傳輸所述編碼的輸出視頻流; 其中所述失真估計包括第一項,其表示源編碼失真,以及偏置項,其表示由于在所述通道上的丟失經歷的失真的估計;并且其中所述偏置項基于根據視頻流樣本訓練的訓練參數確定。
2.根據權利要求1的方法,其中: 所述偏置項基于第二項,其在表示所述目標部分通過所述通道到達的情況下,由于預測所述目標部分所依賴的所述目標部分的歷史中的基準部分未到達而經歷的失真的估計,該偏置項還基于隱蔽項,其表示由于隱蔽而經歷的失真的估計; 所述隱蔽項包括第三項,其表示所述目標部分相對于圖像部分的隱蔽失真的測量,在所述目標部分在所述通道上丟失的情況下,所述圖像部分用于隱蔽所述目標部分的丟失,所述隱蔽項還包括第四項,其表示由于隱蔽所述目標部分所依賴的所述目標部分的歷史中的圖像部分丟失而經歷的失真的估計;并且 所述第三項和所述第二項之 一包括所述訓練參數。
3.根據權利要求1或2的方法,其中包括以下至少一項: 所述第一項基于復雜度比所述偏置項所基于的一個或多個項更低的樣本之間差值測量; 所述第一項基于所述目標圖像部分的原始樣本與預測樣本的絕對差值和; 所述第一項考慮由于預測編碼導致的失真而非由于量化導致的失真;并且所述第一項考慮由于預測編碼導致的失真而非由于從空間域表示到變換域表示的變換導致的失真。
4.根據權利要求2或3的方法,其中包括以下至少一項: 所述第三項包括所述訓練參數; 所述第三項基于所述目標圖像部分的重構樣本與用于隱蔽所述目標部分的丟失的所述圖像部分的重構樣本的絕對差值和; 所述第三項包括絕對差值和的所述訓練參數次冪; 所述第三項包括平方差和乘以所述訓練參數;并且所述第三項考慮由于預測編碼導致的失真而非由于量化導致的失真;并且所述第三項考慮由于預測編碼導致的失真而非由于從空間域表示到變換域表示的變換導致的失真。
5.根據上述任一權利要求的方法,其中所述訓練參數被訓練為最大化信噪比。
6.根據權利要求2至5中任一項的方法,其中包括以下至少一項: 所述第二和第四項中的一個或全部基于所述樣本之間的平方差和; 所述第二和第四項中的一個或全部考慮同時由于預測編碼和量化導致的失真;以及 所述第二和第四項中的一個或全部考慮同時由于預測編碼和從空間域表示到變換域表示的變換導致的失真。
7.根據權利要求2至6中任一項的方法,其中包括確定在所述通道上丟失分組的概率/7,其中所述第二項根據因子2-/7或根據作為/7和碼率7?的函數的訓練因子a (p, R)進行加權,并且所述隱蔽項根據因子/7或根據也作為/7和碼率7?的函數的訓練因子進行加權。
8.根據權利要求2至7中任一項的方法,其中所述偏置項基于包括所述第二項和所述隱蔽項的誤差擴散失真圖中的項,并且所述方法包括: 在每次選擇編碼模式之后更新所述誤差擴散失真圖,并且根據用于每個相應的后續編碼模式選擇的誤差擴散失真圖確定誤差擴散偏置項。
9.根據上述任一權利要求的方法,其中所述偏置項整合過去的丟失隨時間繼續的效應。
10.一種用于編碼包括多個幀的輸出視頻流的裝置,其中每個幀包括多個圖像部分,所述裝置包括: 編碼器,其被配置為針對每個要編碼的目標圖像部分,通過優化包括失真估計和碼率測量的函數,從編碼模式集中選擇優選的模式,所述碼率是編碼所述目標圖像部分所需的碼率; 其中所述編碼器被配置為使用所述選定的編碼模式將所述目標圖像部分編碼為所述輸出視頻流; 所述裝置包括發送器,用于通過有損通道傳輸所述編碼的輸出視頻流; 所述失真估計包括第一項,其表示源編碼失真,以及偏置項,其表示由于在所述通道上的丟失經歷的失真的估計;并且 所述編碼器被配置為使得所述偏置項基于根據視頻流樣本訓練的訓練參數確定。
【文檔編號】H04N19/89GK103650493SQ201280031159
【公開日】2014年3月19日 申請日期:2012年6月22日 優先權日:2011年6月24日
【發明者】M.尼爾松, R.瓦芬, S.V.安德森 申請人:斯凱普公司