專利名稱:視頻編碼的制作方法
技術領域:
本發(fā)明涉及在選擇用于對視頻信號的部分進行編碼的編碼模式時在比特率和失真之間平衡折衷。本發(fā)明可能特別(但不排除)可應用于實時地編碼視頻流時,即現(xiàn)場視頻流諸如視頻呼叫的現(xiàn)場視頻流,其中在并且隨著從相機或比如此類接收該流時編碼器必須動態(tài)地編碼該流以進行發(fā)送。
背景技術:
在圖Ia中示意性地圖示了要編碼的視頻數(shù)據(jù)流。該流包括多個幀(F),每個表示在不同的相應時刻的視頻圖像。如本領域技術人員將熟悉的,為了編碼的目的,每個幀(F)被劃分成部分并且每個部分也可以被細分成較小子部分,每個部分或子部分包括多個像素。例如,根據(jù)一種術語,要編碼的視頻流的每個幀被劃分成宏塊(MB)并且每個宏塊被細分 成塊或子快(b),每個塊或子塊包括多個像素。每個幀也可以被劃分成可獨立解碼的切片,每個切片包括一個或多個宏塊。注意圖Ia中所示的劃分僅僅示意用于說明性目的并且將明白這些不必意味著對應于任何實際的編碼方案一例如每個幀可能包含更大數(shù)目的宏塊。在圖2的框圖中示意性地圖示了其中可以采用視頻編碼的示例通信系統(tǒng)。通信系統(tǒng)包括第一發(fā)送終端12和第二接收終端22。例如,每個終端12、22可以包括移動電話或智能電話、平板電腦、膝上型計算機、臺式計算機或者其它家用電器諸如電視機、機頂盒、立體聲系統(tǒng)等等。第一和第二終端12、22每個被操作性地耦合到通信網(wǎng)絡32并且第一發(fā)送終端12由此布置成發(fā)送將由第二接收終端22接收的信號。當然發(fā)送終端12也可以能夠從接收終端22接收信號并且反之亦然,但是為了討論的目的,在本文中從第一終端12的角度描述發(fā)送而從第二終端22的角度描述接收。通信網(wǎng)絡32可以包括例如基于分組的網(wǎng)絡諸如廣域互聯(lián)網(wǎng)和/或局域網(wǎng)、和/或移動蜂窩網(wǎng)絡。第一終端12包括存儲介質(zhì)14諸如閃速存儲器或其它電子存儲器、磁存儲設備和/或光存儲設備。第一終端12也包括具有一個或多個核的CPU形式的處理裝置16 ;收發(fā)器諸如有線或無線調(diào)制解調(diào)器,至少具有發(fā)送器18 ;以及攝像機15,該攝像機15可以或可以不容納在與終端12的其余部分相同的外殼內(nèi)。存儲介質(zhì)14、攝像機15和發(fā)送器18每個被操作性地耦合到處理裝置16,并且發(fā)送器18經(jīng)由有線或無線鏈路被操作性地耦合到網(wǎng)絡32。類似地,第二終端22包括存儲介質(zhì)24諸如電子、磁和/或光存儲設備;以及具有一個或多個核的CPU形式的處理裝置26。第二終端包括收發(fā)器諸如有線或無線調(diào)制解調(diào)器,至少具有接收器28 ;以及屏幕25,該屏幕25可以或可以不容納在與終端22的其余部分相同的外殼內(nèi)。第二終端的存儲介質(zhì)24、屏幕25和接收器28每個被操作性地耦合到相應的處理裝置26,并且接收器28經(jīng)由有線或無線鏈路被操作性地耦合到網(wǎng)絡32。第一終端12上的存儲介質(zhì)14至少存儲被布置成在處理裝置16上運行的視頻編碼器。編碼器在被運行時從攝像機15接收“原始的”(未經(jīng)編碼的)輸入視頻流,對視頻流編碼以便將其壓縮成較低比特率流,并且輸出編碼的視頻流以經(jīng)由發(fā)送器18和通信網(wǎng)絡32發(fā)送到第二終端22的接收器28。第二終端22上的存儲介質(zhì)至少存儲被布置成在其自己的處理裝置26上運行的視頻解碼器。解碼器在被運行時從接收器28接收編碼的視頻流并且對其解碼以輸出到屏幕25??梢杂脕碇复幋a器和/或解碼器的通用術語是編解碼器。視頻編解碼器的目標是降低為發(fā)送視頻信號所需的比特率同時維持最高可能的質(zhì)量。這個目標是通過利用統(tǒng)計冗余度(視頻信號中的類似性)和感知不相關性(與人類視覺系統(tǒng)的敏感度有關)而實現(xiàn)的。大多數(shù)當今的視頻編解碼器是基于包括如下功能的架構從其它像素塊預測像素塊,預測殘差的變換,變換系數(shù)的量化,以及量化索引的熵編碼。這些步驟有助于降低冗余度和不相關性。
對以下文檔進行參考
[1]ITU-Ts Recommendation H,264, eAdvanced video coding for generic audiovisual services", 2007;
{2] Zhang et al,, "'Error resilience video coding in H.264 encoder with potential distortion tracking", In Froc. IEEE International Conference on Image Processing, pp. 163-166, 2004;
可以典型地從當前幀之外的視頻幀中的像素執(zhí)行該預測(幀間預測)以及從相同幀中的像素執(zhí)行該預測(幀內(nèi)預測)。就是說,如果使用幀內(nèi)編碼進行編碼,則幀的塊、子塊或其它部分(目標塊或部分)相對于相同幀中的另一塊、子塊或圖像部分(參考塊或部分)進行編碼;而如果使用幀間編碼進行編碼,則目標塊或部分相對于另一幀中的參考塊或部分進行編碼。這個過程通常稱為預測或預測編碼。幀間或幀內(nèi)預測模塊因此將生成例如形式為如下的指示的預測在幀內(nèi)編碼的情況下為鄰近塊或子塊,和/或在幀間編碼的情況下為運動矢量。典型地,編碼器也生成表示所預測的塊和實際塊(或者預測的子塊和實際子塊,等等)之間的“剩余”差的殘差信號。殘差、運動矢量和任何所需的與幀內(nèi)預測關聯(lián)的數(shù)據(jù)然后典型地經(jīng)由進一步的編碼級諸如量化器和熵編碼器而輸出到編碼的視頻流中。因此,視頻中的大多數(shù)塊可以按照塊之間的差進行編碼,這與對絕對像素值進行編碼相比要求更少的比特來編碼并且因此節(jié)省比特率。幀內(nèi)預測編碼典型地要求比幀間預測更多的比特,但是與對絕對值編碼相比仍然表示節(jié)省。對視頻適合的幀間和幀內(nèi)編碼技術的細節(jié)對本領域技術人員將是熟悉的?,F(xiàn)代編解碼器允許針對幀內(nèi)的不同部分使用不同的預測編碼模式。具有不同編碼選項的可能性增加了視頻編碼器的速率失真效率。必須針對每個幀區(qū)域找到最優(yōu)的編碼表示。典型地,這樣的區(qū)域是例如16X16像素的宏塊。即,因此有可能針對每個宏塊單獨地選擇幀內(nèi)預測或幀間預測模式,使得可以用不同模式來編碼相同幀內(nèi)的不同宏塊。在某些編解碼器中也有可能基于不同的宏塊分區(qū)水平而使用不同的模式,例如在較高復雜性模式或較低復雜性模式之間選擇,在所述較高復雜性模式中針對宏塊內(nèi)的每個4X4子塊執(zhí)行單獨的預測而在所述較低復雜性模式中基于僅8 X 8或8 X 16塊或甚至整個宏塊執(zhí)行預測??捎媚J揭部梢园ㄓ糜趫?zhí)行預測的不同選項。例如如圖Ib中示意性圖示的,在一種幀內(nèi)模式中4X4子塊(b)的像素可以通過從來自緊接上方的子塊的鄰近像素向下外插或者通過從緊接左邊的子塊向旁邊外插而確定。另一稱作“跳躍模式”的特殊預測模式也可以提供在某些編解碼器中,這可以視為幀間模式的替選類型。在跳躍模式(PSkip)中,目標的運動矢量基于向頂部和向左邊的運動矢量來推斷并且不存在殘差系數(shù)的編碼。其中推斷運動矢量的方式與運動矢量預測一致,因此運動矢量差為零,所以僅要求用信號通知宏塊是跳躍塊。圖3是示意性圖示諸如可能在發(fā)送終端12上實施的編碼器的高級框圖。該編碼器包括離散余弦變換(DCT)模塊51,量化器53,逆變換模塊61,逆量化器63,幀內(nèi)預測模塊41,幀間預測模塊43以及減法級(_)。該編碼器也包括開關47和模式選擇模塊49。每個模塊優(yōu)選地實施為存儲在發(fā)送終端的存儲介質(zhì)14上且布置用于在其處理裝置16上執(zhí)行的代碼的一部分,盡管不排除這些中的一些或全部整體或部分實施在專用硬件電路中的可能性。 開關47和模式選擇模塊49中的每一個布置成接收包括多個宏塊MB的輸入視頻流的實例。模式選擇模塊49布置成針對每個宏塊選擇編碼模式“ο”并且操作性地耦合到復用器47以便對它控制從而視選擇的模式而定把逆量化器63的輸出傳送到幀內(nèi)預測模塊41或幀間預測模塊43的輸入。模式選擇模塊49也可以布置成向相關的預測模塊41、43指示選擇的模式“ο”(例如指示4X4分區(qū)模式、8X8模式、跳躍模式等等)并且接收從預測模塊41、43反饋的信息以用于選擇下一幀的模式。幀內(nèi)預測模塊41或幀間預測模塊43的輸出然后耦合到減法級(_)的輸入,該減法級(_)布置成在其另一輸入處接收未經(jīng)編碼的輸入視頻流并且從其未經(jīng)編碼的副本減去預測的塊,因此生成殘差信號。殘差塊然后傳送經(jīng)過變換(DCT)模塊51 (在模塊51中其殘差值被轉(zhuǎn)換到頻域中),然后到量化器53 (在量化器53中變換的值被轉(zhuǎn)換成離散量化索引)。量化的變換信號被反饋經(jīng)過逆量化器63和逆變換模塊61以生成(如在解碼器處將看到的)塊或子塊的預測版本以供所選擇的預測模塊41,43使用。在預測模塊41、43中使用的預測的指示、由幀間預測模塊43生成的運動矢量以及由變換和量化模塊51、53生成的殘差的量化的變換索引都被輸出以包含在編碼的視頻流中;典型地經(jīng)由其中預測值和變換的量化索引可以使用本領域中已知的無損編碼技術進行進一步壓縮的進一步無損編碼級諸如熵編碼器(未示出)。根據(jù)上文,編碼表示可以因此包括塊分區(qū)信息、預測模式、運動矢量、量化精確度等等。最優(yōu)的編碼選項取決于視頻內(nèi)容、比特率、較早編碼決策等等。變換系數(shù)的量化準確度典型地選擇為滿足比特率約束。此外,應當使失真最小化。例如,H. 264視頻編碼器提供在選擇預測模式方面的巨大靈活性[I]。對于亮度分量的幀間預測,16X16像素的宏塊可以表示為16X16像素的一個塊、或者16X8像素的兩個塊、或者8X 16像素的兩個塊、或者8X8像素的四個塊。進一步,8X8塊可以表示為8X8像素的一個塊、或者8X4像素的兩個子塊、或者4X8像素的兩個子塊、或者4X4像素的四個子塊。針對每個允許的宏塊分區(qū),嘗試幀間預測。塊的幀間預測通過索引化典型地用子像素精度所估計的(一個或多個)參考幀和(一個或多個)運動矢量(與相應參考幀中的參考塊的空間移位)而表示。對于亮度分量的幀內(nèi)預測,存在16X16塊的四種可能模式以及4X4子塊的九種可能模式。進一步,對于色度分量存在四種可能模式。通過比較幀間和幀內(nèi)預測模式的性能而選擇最佳預測模式。視頻編解碼器諸如H. 264 AVC [I]的速率失真性能在很大程度上取決于宏塊模式選擇O的性能。這是依據(jù)使用例如幀內(nèi)模式或是幀間模式的速率失真折衷確定宏塊是否被最佳編碼的過程。從魯棒性角度,幀內(nèi)編碼宏塊是有益的,因為它們阻止時間誤差傳播(假設使用受約束的幀內(nèi)預測,即禁止來自幀間預測宏塊的幀內(nèi)預測)。然而,幀內(nèi)編碼宏塊與幀間編碼宏塊相比在速率方面一般更加昂貴,因此重要的是系統(tǒng)地引入幀內(nèi)編碼宏塊以使得給定某一比特預算和信道條件而使解碼器處的失真(例如平均失真)最小化。Zhang等人提出這樣的系統(tǒng)框架以基于解碼器處的預期平均平方差和(SSD)的最小化來引入幀內(nèi)編碼宏塊。通過跟蹤潛在失真,Zhang等人能夠計算與(在解碼器處)預期的誤差傳播失真有關的偏項(bias term),在計算編碼器速率失真環(huán)路內(nèi)的幀間宏塊的成本時將所述預期的誤差傳播失真添加到源編碼失真。速率失真性能最優(yōu)化問題可以按照在比特率約束R下最小化失真來公式化。拉格朗日最優(yōu)化框架往往用來求解該問題,根據(jù)此所述最優(yōu)化準則可以公式化為
權利要求
1.一種對視頻流進行編碼的方法,所述方法包括 執(zhí)行速率失真最優(yōu)化過程,該速率失真最優(yōu)化過程包括對于在視頻流的幀中要編碼的多個目標圖像部分中的每一個,通過優(yōu)化包括目標圖像部分的失真估計和為對目標圖像部分編碼所需的比特率度量的函數(shù)而選擇編碼模式集合中的優(yōu)選編碼模式,其中該失真估計是基于源編碼失真和由于丟失所致的誤差傳播失真的估計;以及 使用選擇的編碼模式把目標圖像部分編碼成視頻流的編碼版本; 其中所述方法進一步包括在相應的有損信道上把視頻流的相同編碼版本從發(fā)送終端發(fā)送到多個接收終端中的每一個,關于所述多個接收終端中的每一個使用相同的速率失真最優(yōu)化過程,其中相同的速率失真最優(yōu)化過程的使用包括基于所述函數(shù)的相同最優(yōu)化對于每目標圖像部分進行相同的編碼模式選擇;并且 其中誤差傳播失真的估計包括由于多個信道上的可能丟失而將經(jīng)受的誤差傳播失真的聚合估計。
2.權利要求I的方法,其中所述信道中的兩個或更多是經(jīng)由共同多播中繼節(jié)點,由此所述發(fā)送終端在第一支路上把視頻流的編碼版本發(fā)送到多播中繼節(jié)點,并且多播中繼節(jié)點經(jīng)由信道的相應第二支路把視頻流的編碼版本的相應實例轉(zhuǎn)發(fā)到相應兩個或更多接收終端中的每一個。
3.權利要求I或2的方法,包括確定每個所述信道上的丟失的個別概率并且基于所述個別概率來確定聚合概率,其中失真的聚合估計是基于所述聚合概率。
4.權利要求2和3的方法,其中所述兩個或更多信道中的每一個的個別概率通過組合其支路中的每一個上的丟失的概率來確定。
5.任一前述權利要求的方法,包括確定由于每個所述信道上的可能丟失而將經(jīng)受的誤差傳播失真的個別估計,其中誤差傳播失真的聚合估計通過聚合誤差傳播失真的個別估計來確定。
6.權利要求5的方法,包括通過在每個編碼模式選擇后更新誤差傳播圖而維持每個所述信道的個別誤差傳播失真圖,其中個別失真估計是從相應失真圖確定的。
7.權利要求5或6的方法,其中所述信道中的一個或多個中的每一個的誤差傳播失真的個別估計是基于來自相應接收終端的反饋。
8.權利要求7的方法,其中所述反饋包括以下中的一個接收到所述較早幀的至少部分的確認,以及未接收到所述較早幀的至少部分的報告。
9.一種對視頻流進行編碼的發(fā)送終端,所述發(fā)送終端包括 編碼器,被配置執(zhí)行速率失真最優(yōu)化過程,該速率失真最優(yōu)化過程包括對于在視頻流的幀中要編碼的多個目標圖像部分中的每一個,通過優(yōu)化包括目標圖像部分的失真估計和為對目標圖像部分編碼所需的比特率度量的函數(shù)而選擇編碼模式集合中的優(yōu)選編碼模式,其中該失真估計是基于源編碼失真和由于丟失所致的誤差傳播失真的估計,所述編碼器被布置成使用選擇的編碼模式把目標圖像部分編碼成視頻流的編碼版本;以及 發(fā)射器,被布置成在相應的有損信道上把視頻流的相同編碼版本從發(fā)送終端發(fā)送到多個接收終端中的每一個,所述編碼器被配置成關于所述多個接收終端中的每一個使用相同的速率失真最優(yōu)化過程,其中相同的速率失真最優(yōu)化過程的使用包括基于所述函數(shù)的相同最優(yōu)化對每目標圖像部分進行相同的編碼模式選擇;并且其中所述編碼器進一步被配置成使得誤差傳播失真的所述估計包括由于多個信道上的可能丟失而將經(jīng)受的誤差傳播失真的聚合估計。
10.一種對視頻流進行編碼的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品被體現(xiàn)在計算機可讀介質(zhì)上并且包括代碼,所述代碼被配置成當被執(zhí)行時執(zhí)行根據(jù)權利要求I到8中任一項的操作。
全文摘要
本發(fā)明涉及視頻編碼。一種執(zhí)行速率失真最優(yōu)化過程的方法包括對于在多個幀的每一個中要編碼的多個目標圖像部分的每一個,通過優(yōu)化包括目標圖像部分的失真估計和為對目標圖像部分編碼所需的比特率度量的函數(shù)而選擇編碼模式集合中的優(yōu)選編碼模式,其中該失真估計是基于源編碼失真和由于信道上的可能丟失而將經(jīng)受的失真的估計;使用選擇的編碼模式把目標圖像部分編碼成編碼的視頻流;以及在信道上發(fā)送編碼的視頻流。基于所述幀的較早幀根據(jù)從接收終端接收的反饋來執(zhí)行用于所述幀的當前幀的速率失真最優(yōu)化過程。
文檔編號H04N7/50GK102946532SQ20121032032
公開日2013年2月27日 申請日期2012年9月3日 優(yōu)先權日2011年9月2日
發(fā)明者D.趙, M.尼爾森, R.瓦芬, A.杰弗里莫夫, S.V.安德森 申請人:斯凱普公司