專利名稱:視頻編碼的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在差錯(cuò)信道上的編碼視頻的發(fā)送。本發(fā)明可能特別(但不排他地)應(yīng)用于實(shí)時(shí)地編碼視頻流時(shí),即現(xiàn)場(chǎng)視頻流諸如視頻呼叫的現(xiàn)場(chǎng)視頻流,其中在并且隨著從相機(jī)或比如此類接收該流時(shí)編碼器必須動(dòng)態(tài)地編碼該流以進(jìn)行發(fā)送。
背景技術(shù):
在圖Ia中示意性地圖示了要編碼的視頻數(shù)據(jù)流。該流包括多個(gè)幀(F),每個(gè)表示在不同的相應(yīng)時(shí)刻的視頻圖像。如本領(lǐng)域技術(shù)人員將熟悉的,為了編碼的目的,每個(gè)幀(F)被劃分成部分并且每個(gè)部分也可以被細(xì)分成較小子部分,每個(gè)部分或子部分包括多個(gè)像素。例如,根據(jù)一種術(shù)語,要編碼的視頻流的每個(gè)幀被劃分成宏塊(MB)并且每個(gè)宏塊被細(xì)分成塊或子快(b),每個(gè)塊或子塊包括多個(gè)像素。每個(gè)幀也可以被劃分成可獨(dú)立解碼的切片,每個(gè)切片包括一個(gè)或多個(gè)宏塊。注意圖Ia中所示的劃分僅僅示意用于說明性目的并且將 明白這些不必意味著對(duì)應(yīng)于任何實(shí)際的編碼方案一例如每個(gè)幀可能包含更大數(shù)目的宏塊。在圖2的框圖中示意性地圖示了其中可以采用視頻編碼的示例通信系統(tǒng)。通信系統(tǒng)包括第一發(fā)送終端12和第二接收終端22。例如,每個(gè)終端12、22可以包括移動(dòng)電話或智能電話、平板電腦、膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)或者其它家用電器諸如電視機(jī)、機(jī)頂盒、立體聲系統(tǒng)等等。第一和第二終端12、22每個(gè)被操作性地耦合到通信網(wǎng)絡(luò)32并且第一發(fā)送終端12由此布置成發(fā)送將由第二接收終端22接收的信號(hào)。當(dāng)然發(fā)送終端12也可以能夠從接收終端22接收信號(hào)并且反之亦然,但是為了討論的目的,在本文中從第一終端12的角度描述發(fā)送而從第二終端22的角度描述接收。通信網(wǎng)絡(luò)32可以包括例如基于分組的網(wǎng)絡(luò)諸如廣域互聯(lián)網(wǎng)和/或局域網(wǎng)、和/或移動(dòng)蜂窩網(wǎng)絡(luò)。第一終端12包括存儲(chǔ)介質(zhì)14諸如閃速存儲(chǔ)器或其它電子存儲(chǔ)器、磁存儲(chǔ)設(shè)備和/或光存儲(chǔ)設(shè)備。第一終端12也包括具有一個(gè)或多個(gè)核的CPU形式的處理裝置16 ;收發(fā)器諸如有線或無線調(diào)制解調(diào)器,至少具有發(fā)送器18 ;以及攝像機(jī)15,該攝像機(jī)15可以或可以不容納在與終端12的其余部分相同的外殼內(nèi)。存儲(chǔ)介質(zhì)14、攝像機(jī)15和發(fā)送器18每個(gè)被操作性地耦合到處理裝置16,并且發(fā)送器18經(jīng)由有線或無線鏈路被操作性地耦合到網(wǎng)絡(luò)32。類似地,第二終端22包括存儲(chǔ)介質(zhì)24諸如電子、磁和/或光存儲(chǔ)設(shè)備;以及具有一個(gè)或多個(gè)核的CPU形式的處理裝置26。第二終端包括收發(fā)器諸如有線或無線調(diào)制解調(diào)器,至少具有接收器28 ;以及屏幕25,該屏幕25可以或可以不容納在與終端22的其余部分相同的外殼內(nèi)。第二終端的存儲(chǔ)介質(zhì)24、屏幕25和接收器28每個(gè)被操作性地耦合到相應(yīng)的處理裝置26,并且接收器28經(jīng)由有線或無線鏈路被操作性地耦合到網(wǎng)絡(luò)32。第一終端12上的存儲(chǔ)介質(zhì)14至少存儲(chǔ)被布置成在處理裝置16上執(zhí)行的視頻編碼器。編碼器在被執(zhí)行時(shí)從攝像機(jī)15接收“原始的”(未經(jīng)編碼的)輸入視頻流,對(duì)視頻流編碼以便將其壓縮成較低比特率流,并且輸出編碼的視頻流以經(jīng)由發(fā)送器18和通信網(wǎng)絡(luò)32發(fā)送到第二終端22的接收器28。第二終端22上的存儲(chǔ)介質(zhì)至少存儲(chǔ)被布置成在其自己的處理裝置26上執(zhí)行的視頻解碼器。解碼器在被執(zhí)行時(shí)從接收器28接收編碼的視頻流并且對(duì)其解碼以輸出到屏幕25??梢杂脕碇复幋a器和/或解碼器的通用術(shù)語是編解碼器。在一些系統(tǒng)中,接收終端22處的 解碼器可以被布置成經(jīng)由反饋信道,優(yōu)選地經(jīng)由相同的基于分組的網(wǎng)絡(luò)32而向發(fā)送終端12的編碼器發(fā)送反饋。視頻編解碼器的目標(biāo)是降低為發(fā)送視頻信號(hào)所需的比特率同時(shí)維持最高可能的質(zhì)量。這個(gè)目標(biāo)是通過利用統(tǒng)計(jì)冗余度(視頻信號(hào)中的類似性)和感知不相關(guān)性(與人類視覺系統(tǒng)的敏感度有關(guān))而實(shí)現(xiàn)的。大多數(shù)當(dāng)今的視頻編解碼器是基于包括如下功能的架構(gòu)從其它像素塊預(yù)測(cè)像素塊,預(yù)測(cè)殘差的變換,變換系數(shù)的量化,以及量化索引的熵編碼。這些步驟有助于降低冗余度和不相關(guān)性。
可以典型地從當(dāng)前幀之外的視頻幀中的像素執(zhí)行該預(yù)測(cè)(幀間預(yù)測(cè))以及從相同幀中的像素執(zhí)行該預(yù)測(cè)(幀內(nèi)預(yù)測(cè))。就是說,如果使用幀內(nèi)編碼進(jìn)行編碼,則幀的塊、子塊或其它部分(目標(biāo)塊或部分)相對(duì)于相同幀中的另一塊、子塊或圖像部分(參考?jí)K或部分)進(jìn)行編碼;而如果使用幀間編碼進(jìn)行編碼,則目標(biāo)塊或部分相對(duì)于另一幀中的參考?jí)K或部分進(jìn)行編碼。這個(gè)過程通常稱為預(yù)測(cè)或預(yù)測(cè)編碼。幀間或幀內(nèi)預(yù)測(cè)模塊因此將生成例如形式為如下的指示的預(yù)測(cè)在幀內(nèi)編碼的情況下為鄰近塊或子塊,和/或在幀間編碼的情況下為運(yùn)動(dòng)矢量。典型地,編碼器也生成表示所預(yù)測(cè)的塊和實(shí)際塊(或者預(yù)測(cè)的子塊和實(shí)際子塊,等等)之間的“剩余”差的殘差信號(hào)。殘差、運(yùn)動(dòng)矢量和任何所需的與幀內(nèi)預(yù)測(cè)關(guān)聯(lián)的數(shù)據(jù)然后典型地經(jīng)由進(jìn)一步的編碼級(jí)諸如量化器和熵編碼器而輸出到編碼的視頻流中。因此,視頻中的大多數(shù)塊可以按照塊之間的差進(jìn)行編碼,這與對(duì)絕對(duì)像素值進(jìn)行編碼相比要求更少的比特來編碼并且因此節(jié)省比特率。幀內(nèi)預(yù)測(cè)編碼典型地要求比幀間預(yù)測(cè)更多的比特,但是與對(duì)絕對(duì)值編碼相比仍然表示節(jié)省。對(duì)視頻適合的幀間和幀內(nèi)編碼技術(shù)的細(xì)節(jié)對(duì)本領(lǐng)域技術(shù)人員將是熟悉的。在圖Ib中示意性地圖示幀內(nèi)編碼的示例,并且在圖Ic中示意性地圖示幀間編碼的示例。在幀內(nèi)編碼中,來自在目標(biāo)塊或子塊b上方和/或左邊的像素(所有都在相同幀內(nèi))用來預(yù)測(cè)目標(biāo)塊或子塊的像素。這個(gè)過程被稱作幀內(nèi)預(yù)測(cè)。另外,來自幀內(nèi)預(yù)測(cè)的殘差也可以被變換、量化和熵編碼。在幀間編碼示例中,目標(biāo)塊或子塊bl的像素基于先前幀中的對(duì)應(yīng)區(qū)域進(jìn)行預(yù)測(cè),與目標(biāo)塊或子塊bl偏移了運(yùn)動(dòng)矢量(有可能偏移了分?jǐn)?shù)塊或甚至分?jǐn)?shù)像素)。這個(gè)過程被稱作幀間預(yù)測(cè)。與幀內(nèi)預(yù)測(cè)殘差類似,來自幀間預(yù)測(cè)的殘差也可以被變換、量化和熵編碼。對(duì)以下文檔進(jìn)行參考
[1]ITU-T, Recommendation H.264, aAdvanced video coding for generic audiovisual services , 2007;
2
Zhang et at,, "Error resilience video coding In H.264 encoder with potential distortion tracking", In Proc. tEEE International Conference on Image Processing, pp. 163-166, 2004;[3]VadapaIH et al·, nLow-CompIexity frame-level Joint source-chanitel distortion
optimal, adaptive intra refreshH In Proc. IEEE Workshop on Multimedia Signal
Processing, pp. 474-480, 2008.
在常規(guī)系統(tǒng)中,反饋信道可以用來向發(fā)送終端12上的編碼器用信號(hào)返回通知幀在接收終端22處經(jīng)受丟失(丟失報(bào)告)。反饋信道也可以用來向編碼器用信號(hào)返回通知在接收終端22處成功地接收幀(確認(rèn))。典型地,丟失的幀引起解碼視頻的嚴(yán)重失真,這可能持續(xù)很長(zhǎng)時(shí)間,除非采取動(dòng)作。一種這樣的動(dòng)作是從解碼器向編碼器報(bào)告回某一幀被丟失并且然后迫使編碼器生成“恢復(fù)幀”,其將在被接收和解碼時(shí)停止誤差傳播?;謴?fù)幀可以例如是關(guān)鍵幀(即全都被幀內(nèi)編碼)或者關(guān)于已知在解碼器中可用(已知為無誤差,因?yàn)樗旧肀淮_認(rèn)為接收并且其歷史中相關(guān)的任何其它東西已被確認(rèn))的無誤差幀進(jìn)行幀間編碼的幀。后者與前者相比一般導(dǎo)致在給定質(zhì)量下的較低比特率。與發(fā)送恢復(fù)幀相關(guān)聯(lián)的缺點(diǎn)是比特率過沖(速率尖峰)或者替選地是源編碼失真的增加。比特率過沖進(jìn)而可以引起新的丟失或者迫使編碼器丟掉幀并且急劇增加的源編碼失真可能在感知上是干擾的。 Zhang等人[2]采取不同的方法。Zhang沒有使用恢復(fù)巾貞,而是執(zhí)行模式選擇過程,該模式選擇過程以試圖基于信道的先驗(yàn)概率模型來優(yōu)化速率失真折衷的方式在不同編碼模式(包括幀內(nèi)和幀間編碼模式)之間進(jìn)行選擇?,F(xiàn)代編解碼器允許針對(duì)幀內(nèi)的不同部分使用不同的預(yù)測(cè)編碼模式。具有不同編碼選項(xiàng)的可能性增加了視頻編碼器的速率失真效率。必須針對(duì)每個(gè)幀區(qū)域找到最優(yōu)的編碼表示。典型地,這樣的區(qū)域是例如16X16像素的宏塊。即,因此有可能針對(duì)每個(gè)宏塊單獨(dú)地選擇幀內(nèi)預(yù)測(cè)或幀間預(yù)測(cè)模式,使得可以用不同模式來編碼相同幀內(nèi)的不同宏塊。在某些編解碼器中也有可能基于不同的宏塊分區(qū)水平而使用不同的模式,例如在較高復(fù)雜性模式或較低復(fù)雜性模式之間選擇,在所述較高復(fù)雜性模式中針對(duì)宏塊內(nèi)的每個(gè)4X4子塊執(zhí)行單獨(dú)的預(yù)測(cè)而在所述較低復(fù)雜性模式中基于僅8 X 8或8 X 16塊或甚至整個(gè)宏塊執(zhí)行預(yù)測(cè)??捎媚J揭部梢园ㄓ糜趫?zhí)行預(yù)測(cè)的不同選項(xiàng)。例如如圖Ib中示意性圖示的,在一種幀內(nèi)模式中4X4子塊(b)的像素可以通過從來自緊接上方的子塊的鄰近像素向下外插或者通過從緊接左邊的子塊向旁邊外插而確定。另一稱作“跳躍模式”的特殊預(yù)測(cè)模式也可以提供在某些編解碼器中,這可以視為幀間模式的替選類型。在跳躍模式(PSkip)中,目標(biāo)的運(yùn)動(dòng)矢量基于向頂部和向左邊的運(yùn)動(dòng)矢量來推斷并且不存在殘差系數(shù)的編碼。其中推斷運(yùn)動(dòng)矢量的方式與運(yùn)動(dòng)矢量預(yù)測(cè)一致,因此運(yùn)動(dòng)矢量差為零,所以僅要求用信號(hào)通知宏塊是跳躍塊。編碼表示可以因此包括塊分區(qū)信息、預(yù)測(cè)模式、運(yùn)動(dòng)矢量、量化精確度等等。最優(yōu)的編碼選項(xiàng)取決于視頻內(nèi)容、比特率、較早編碼決策等等。變換系數(shù)的量化精確度典型地選擇為滿足比特率約束。此外,應(yīng)當(dāng)使失真最小化。例如,H. 264視頻編碼器提供在選擇預(yù)測(cè)模式方面的巨大靈活性[I]。對(duì)于亮度分量的幀間預(yù)測(cè),16X16像素的宏塊可以表示為16X16像素的一個(gè)塊、或者16X8像素的兩個(gè)塊、或者8X 16像素的兩個(gè)塊、或者8X8像素的四個(gè)塊。進(jìn)一步,8X8塊可以表示為8X8像素的一個(gè)塊、或者8X4像素的兩個(gè)子塊、或者4X8像素的兩個(gè)子塊、或者4X4像素的四個(gè)子塊。針對(duì)每個(gè)允許的宏塊分區(qū),嘗試幀間預(yù)測(cè)。塊的幀間預(yù)測(cè)通過索引化典型地用子像素精度所估計(jì)的(一個(gè)或多個(gè))參考幀和(一個(gè)或多個(gè))運(yùn)動(dòng)矢量(與相應(yīng)參考幀中的參考?jí)K的空間移位)而表示。對(duì)于亮度分量的幀內(nèi)預(yù)測(cè),存在16X16塊的四種可能模式以及4X4子塊的九種可能模式。進(jìn)一步,對(duì)于色度分量存在四種可能模式。通過比較幀間和幀內(nèi)預(yù)測(cè)模式的性能而選擇最佳預(yù)測(cè)模式。視頻編解碼器諸如H. 264 AVC [I]的速率失真性能在很大程度上取決于宏塊模式選擇ο的性能。這是依據(jù)使用例如幀內(nèi)模式或是幀間模式的速率失真折衷確定宏塊是否被最佳編碼的過程。從魯棒性角度,幀內(nèi)編碼宏塊是有益的,因?yàn)樗鼈冏柚箷r(shí)間誤差傳播(假設(shè)使用受約束的幀內(nèi)預(yù)測(cè),即禁止來自幀間預(yù)測(cè)宏塊的幀內(nèi)預(yù)測(cè))。然而,幀內(nèi)編碼宏塊與幀間編碼宏塊相比在速率方面一般更加昂貴,因此重要的是系統(tǒng)地引入幀內(nèi)編碼宏塊以使得給定某一比特預(yù)算和信道條件而使解碼器處的失真(例如平均失真)最小化。Zhang等人提出這樣的系統(tǒng)框架以基于解碼器處的預(yù)期平均平方差和(SSD)的最小化來引入幀內(nèi)編碼宏塊。通過跟蹤潛在失真,Zhang等人能夠計(jì)算與(在解碼器處)預(yù)期的誤差傳播失真有關(guān)的偏項(xiàng)(bias term),在計(jì)算編碼器速率失真環(huán)路內(nèi)的幀間宏塊的成本時(shí)將所述預(yù)期
的誤差傳播失真添加到源編碼失真。速率失真性能最優(yōu)化問題可以按照在比特率約束R下最小化失真來公式化。拉格朗日最優(yōu)化框架往往用來求解該問題,根據(jù)此所述最優(yōu)化準(zhǔn)則可以公式化為
J = Dfmf ) + IRfmi ),{1)
其中J表不拉格朗日函數(shù),D表不失真的量度(模式ο和宏塊m或宏塊子分區(qū)的函數(shù)),R是比特率,以及λ是定義失真和速率之間的折衷的參數(shù)。通常使用的失真量度(measure)是原始和重構(gòu)像素之間的平方差和(SSD)或者原始和預(yù)測(cè)像素之間的絕對(duì)差和(SAD)。在本申請(qǐng)中,求解拉格朗日最優(yōu)化問題意味著找到使拉格朗日函數(shù)J最小化的編碼模式O,其中拉格朗日函數(shù)J至少包括表示失真的項(xiàng)、表示比特率的項(xiàng)以及表示兩者之間的折衷的因子(“拉格朗日函數(shù)乘子(multiplier)”)。隨著編碼模式ο朝著更徹底或更好質(zhì)量的編碼模式進(jìn)行改變,則失真項(xiàng)D將減小。然而,同時(shí)速率項(xiàng)R將增加,并且在與λ相關(guān)的某一點(diǎn)處,R的增加將超過D的減小。因此,表達(dá)式J將具有某一最小值,并且這發(fā)生所在的編碼模式ο被視為最優(yōu)編碼模式。在這個(gè)意義上,比特率R,或者確切地說項(xiàng)λ R,對(duì)該最優(yōu)化設(shè)置約束,因?yàn)樵擁?xiàng)使最優(yōu)編碼模式中止不斷增加的質(zhì)量。找到這一最優(yōu)平衡所處的模式將取決于λ,因此λ可以被視為表示比特率和失真之間的折衷。拉格朗日最優(yōu)化通常用在選擇編碼決策的過程中,并且應(yīng)用于每個(gè)幀區(qū)域(例如16X16像素的每個(gè)宏塊)。通常,可以評(píng)價(jià)該失真以顧及所有處理級(jí)。這些包括預(yù)測(cè)、變換和量化。此外,為了計(jì)算重構(gòu)像素,必須執(zhí)行逆量化、逆變換和逆預(yù)測(cè)的步驟。SSD往往優(yōu)選作為失真準(zhǔn)則,因?yàn)樗cSAD相比導(dǎo)致更高的質(zhì)量。通常,速率也顧及對(duì)所有需要的參數(shù)進(jìn)行編碼,包括描述預(yù)測(cè)的參數(shù)和量化的變換系數(shù)[4]。在[2]中,Zhang等人作者估計(jì)不僅由于源編碼而且由于信道誤差引起的解碼器中的潛在失真,亦即由于在信道上發(fā)送信號(hào)時(shí)數(shù)據(jù)的丟失而將經(jīng)受的可能失真。估計(jì)的潛在失真然后間接地用來朝向幀內(nèi)編碼偏置模式選擇(如果存在信道誤差的概率)。這種方法在本文中可以被稱為丟失自適應(yīng)的速率失真最優(yōu)化(LARDO: loss-adaptiverate-distortion optimization)。Zhang的“端對(duì)端”失真表達(dá)式是基于平方差和(SSD)失真量度并且假設(shè)用于丟失宏塊的伯努利分布。最優(yōu)宏塊模式由下式給出
Oopi - ErgminCOi(WjO) + Dcp^nf (m,o) +· AMimfO)),(2)
其中Ds (m, ο)表示針對(duì)宏塊m和宏塊模式ο的、原始和重構(gòu)像素之間的SSD失真,R為總速率,并且λ為使失真和速率項(xiàng)聯(lián)系起來的拉格朗日乘子。Dep ref(m,o)表示由于誤差傳播引起的解碼器中的參考宏塊內(nèi)的預(yù)期失真。Depref(m,o)因此提供偏項(xiàng),如果誤差傳播失真變得太大則該偏項(xiàng)使該最優(yōu)化偏置朝向幀內(nèi)編碼。Dep ref(m, ο)對(duì)于幀內(nèi)編碼宏塊模式而言為零。表達(dá)式Ds (m, ο)+Dep—(m, ο) + λ R(m, ο)可以被視為拉格朗日函數(shù)J的實(shí)例。Argmin。輸出表達(dá)式J為最小值時(shí)的變?cè)系闹怠T赱2]中,項(xiàng)Dep ref(m, ο)遵循對(duì)象的運(yùn)動(dòng)并且使用當(dāng)前運(yùn)動(dòng)矢量從總失真圖進(jìn)行 計(jì)算??傤A(yù)期誤差傳播失真圖Dep通過執(zhí)行誤差隱藏來驅(qū)動(dòng)并且在每個(gè)宏塊模式選擇后更新為
η^- ) =nt ο·) + pUm(k), η, ο(>^ + Du-^1(Wk), η)), β)
其中η是幀號(hào),m(k)表示宏塊m的第k個(gè)子分區(qū)(即塊或子塊),P為分組丟失的概率,De。#。表示編碼器中的重構(gòu)和誤差隱藏像素之間的SSD,并且Dec; ep為編碼器和解碼器中的誤差隱藏像素之間的預(yù)期SSD。在[2]中,Dep存儲(chǔ)在幀的每個(gè)宏塊上的4X4網(wǎng)格上,即每宏塊有16個(gè)Dep值,因此每個(gè)宏塊的每4X4像素子塊有一個(gè)Dep值。如圖Ic中所示,Dep Mf(m(k),o)(即在時(shí)間η在宏塊m內(nèi)的子塊k的預(yù)期誤差傳播參考失真)的計(jì)算然后執(zhí)行為來自時(shí)間η-l的先前幀的四個(gè)子塊的Dep值的加權(quán)和。這些權(quán)重是根據(jù)所討論的塊m的運(yùn)動(dòng)矢量確定的。就是說
)=Σ1IW
I=I
其中權(quán)重Wi與重疊的區(qū)域成比例并且其中I(Iii)表示先前幀n-ι中的宏塊91的子塊
ki0圖Id提供參考示例性子塊13Ρ·44(在本示例中k對(duì)應(yīng)于bl并且i計(jì)數(shù)經(jīng)過bL···b4)從運(yùn)動(dòng)矢量和預(yù)期誤差傳播失真圖來計(jì)算預(yù)期誤差傳播參考失真的圖示。Zhang [2]的基于RDO的模式選擇過程可能碰巧決定使用巾貞內(nèi)編碼來編碼任何給定的宏塊,因此在時(shí)間上這將趨向于在需要時(shí)刷新該幀。然而,利用LARDO的恢復(fù)在許多情況下不夠快,因此發(fā)送由丟失報(bào)告觸發(fā)的恢復(fù)幀仍將是(在感知上)有益的。另一方面,生成恢復(fù)幀的常規(guī)技術(shù)導(dǎo)致高的比特率尖峰。Vadapalli [3]公開了一種利用附加的巾貞內(nèi)刷新操作來補(bǔ)充Zhang [2]的模式選擇過程以用某一確定的規(guī)律性來強(qiáng)制地刷新該幀的技術(shù)。幀內(nèi)刷新操作在某些確定的時(shí)間生成恢復(fù)幀,但是為了消除恢復(fù)幀的比特率成本并且避免速率尖峰,然后根據(jù)Vadapalli,每個(gè)個(gè)別幀內(nèi)刷新操作散布在一定數(shù)目的幀上。就是說,對(duì)于給定的恢復(fù)操作,該幀的不同部分區(qū)域是在該數(shù)目的幀的不同相應(yīng)幀中刷新的。進(jìn)一步,刷新幀區(qū)域的順序是基于Zhang的誤差傳播失真圖而確定的,使得首先刷新基于Zhang的有損信道的先驗(yàn)概率模型而被估計(jì)具有較高誤差傳播失真的區(qū)域,而稍后刷新被估計(jì)具有較低誤差傳播失真的區(qū)域。在Vadapalli [3]中,執(zhí)行恢復(fù)操作所在的時(shí)間由編碼器單方地設(shè)定,具有同樣基于信道的先驗(yàn)概率模型而確定的規(guī)律性。在時(shí)間上使速率平滑的又一替選方法是使用所謂的定步(pacing)緩沖器。定步緩沖器充當(dāng)在視頻編碼器的突發(fā)輸出速率上的低通濾波器,由此在發(fā)送信道上產(chǎn)生更平坦的速率。定步緩沖器的代價(jià)是延遲。
發(fā)明內(nèi)容
本發(fā)明的發(fā)明人認(rèn)為存在用于降低誤差傳播的失真效應(yīng)同時(shí)維持足夠平滑的比特率的進(jìn)一步范圍。
如所提及的,反饋信道可以例如用來用信號(hào)通知在接收器處丟失了幀。典型地,丟失的幀引起解碼視頻中的嚴(yán)重失真,這可能持續(xù)很長(zhǎng)時(shí)間,除非采取動(dòng)作一諸如從解碼器向編碼器報(bào)告回某一幀被丟失并且然后迫使編碼器生成將在被接收和解碼時(shí)停止誤差傳播的恢復(fù)幀,例如關(guān)鍵幀(即全都被幀內(nèi)編碼)或者關(guān)于已知在解碼器中可用(由于從接收器反饋的一個(gè)或多個(gè)確認(rèn)而已知)的無誤差幀進(jìn)行幀間編碼的幀。后者與前者相比一般導(dǎo)致在給定質(zhì)量下的較低比特率。與發(fā)送恢復(fù)幀相關(guān)聯(lián)的缺點(diǎn)是比特率過沖或者替選地是源編碼失真的增加。比特率過沖進(jìn)而可以引起新的丟失或者迫使編碼器丟掉幀并且急劇增加的源編碼失真可能在感知上是干擾的。為了緩解前述問題,本發(fā)明在報(bào)告了丟失之后在一段時(shí)間上產(chǎn)生部分恢復(fù)幀而不是生成一個(gè)完整的恢復(fù)幀。所謂的部分恢復(fù)幀是指諸如幀內(nèi)刷新的技術(shù)的使用,其應(yīng)用于一個(gè)幀的不同部分區(qū)域,散布在多個(gè)幀上。幀內(nèi)刷新旨在迫使在一個(gè)時(shí)間段上的每個(gè)幀中的許多宏塊進(jìn)行幀內(nèi)編碼,即不是像在標(biāo)準(zhǔn)的恢復(fù)幀情形中那樣所有宏塊同時(shí)進(jìn)行幀內(nèi)編碼。刷新模式優(yōu)選地布置成使得所有宏塊位置在某一時(shí)間段內(nèi)通過幀內(nèi)編碼(或者關(guān)于已知在解碼器中的解碼圖片緩沖器內(nèi)可用的幀進(jìn)行幀間)進(jìn)行刷新。這種技術(shù)可以被認(rèn)為“軟恢復(fù)(soft recovery)” 操作。根據(jù)本發(fā)明,幀內(nèi)刷新或者其它這種軟恢復(fù)操作由來自解碼器的報(bào)告在信道上經(jīng)受的丟失的反饋來觸發(fā)。除了使用幀內(nèi)刷新或其它軟恢復(fù)技術(shù)來生成(一個(gè)或多個(gè))恢復(fù)幀,本發(fā)明的特別優(yōu)選實(shí)施例使用在編碼器中估計(jì)的解碼器處的潛在失真(包括分組丟失效應(yīng))驅(qū)動(dòng)幀內(nèi)刷新。跟蹤在編碼器內(nèi)部的解碼器處的潛在失真可以例如如Zhang等人[2]所公開的那樣實(shí)施。Zhang [2]中的潛在失真被構(gòu)造為由于解碼器內(nèi)部的損毀參考所致的潛在失真和在丟失了幀并且調(diào)用了誤差隱藏的情況下引入的失真的加權(quán)和。在Zhang中,失真圖僅用在正在進(jìn)行的模式選擇過程中,但是根據(jù)本發(fā)明的優(yōu)選實(shí)施例,失真圖的目的是優(yōu)先化在軟恢復(fù)操作中刷新塊的順序或者什么塊應(yīng)當(dāng)被一起刷新?;謴?fù)的目的是同時(shí)中斷所有誤差傳播。軟恢復(fù)的目的是使這松弛一點(diǎn)并且允許恢復(fù)在幾個(gè)幀內(nèi)發(fā)生。不過,軟恢復(fù)仍然比簡(jiǎn)單應(yīng)用Zhang [2]的LARDO過程一般將進(jìn)行的更快地終止誤差傳播失真——就是說,軟恢復(fù)確保它刷新在某一數(shù)目的幀上的幀區(qū)域,該幀區(qū)域相對(duì)于LARDO過程碰巧覆蓋該幀區(qū)域?qū)⑺ǖ臅r(shí)間是小的。軟恢復(fù)旨在刷新整個(gè)圖像區(qū)域或者圖像的至少整個(gè)區(qū)域(多個(gè)宏塊一起),而RDO孤立地針對(duì)每個(gè)個(gè)別塊或宏塊做出模式選擇決策并且沒有對(duì)所討論的區(qū)域進(jìn)行系統(tǒng)性刷新。有點(diǎn)類似的方法由Vadapalli等人在[3]中提出。然而,Vadapalli未能利用反饋信道可用的可能性。Zhang [2]和Vadapelli [3]的過程均是僅僅基于在編碼器處關(guān)于在信道上的丟失似然性所做出的先驗(yàn)概率假設(shè)。就是說,它們每個(gè)依賴于使用信道的概率模型的純粹基于模型的方法。失真的估計(jì)依賴于丟失概率P的預(yù)定估計(jì)而沒有信道的后驗(yàn)經(jīng)驗(yàn)知識(shí)。進(jìn)一步,不像Zhang [2],軟恢復(fù)操作僅發(fā)生在由報(bào)告丟失幀觸發(fā)時(shí)的某些時(shí)間,而諸如Zhang的RDO方法是一直發(fā)生的正在進(jìn)行的過程。因此,本發(fā)明提供部分恢復(fù)幀(與單個(gè)同時(shí)恢復(fù)幀相比)的生成以便使發(fā)送速率平滑,其響應(yīng)于來自接收終端的報(bào)告關(guān)于在信道上發(fā)生的丟失的后驗(yàn)信息的反饋而觸發(fā)。在特別優(yōu)選實(shí)施例中,本發(fā)明使用基于解碼幀中的潛在失真的優(yōu)先級(jí)圖來確定要刷新什么宏 塊以及用什么順序刷新。根據(jù)本發(fā)明的一個(gè)方面,提供一種方法,該方法包括對(duì)在多個(gè)幀的每個(gè)幀處的視頻圖像進(jìn)行編碼,包括通過使用幀間編碼來編碼一些幀的至少部分,由此生成編碼的視頻流;在有損信道上發(fā)送編碼的視頻流以在接收器處解碼從而產(chǎn)生解碼的視頻;以及執(zhí)行恢復(fù)操作以刷新視頻圖像的編碼,切斷在所述信道上存在丟失時(shí)由于幀間預(yù)測(cè)效應(yīng)而在解碼的視頻中發(fā)生的誤差傳播;其中所述恢復(fù)操作由從接收器反饋的指示丟失的報(bào)告觸發(fā);并且其中所述恢復(fù)操作在復(fù)數(shù)個(gè)幀上執(zhí)行,在不同相應(yīng)幀處刷新不同部分幀區(qū)域的編碼。在實(shí)施例中,所述刷新操作在所述數(shù)目的幀上刷新所述視頻圖像的全部的編碼。所述恢復(fù)操作可以包括使用幀內(nèi)編碼而不是所述幀間編碼來編碼所述部分幀區(qū)域中的一個(gè)或多個(gè)。所述恢復(fù)操作可以包括相對(duì)于所述幀中的由于從接收器反饋的接收確認(rèn)而已知為無誤差的一個(gè)幀的部分而使用幀間預(yù)測(cè)來編碼所述部分幀區(qū)域中的一個(gè)或多個(gè)。該方法可以包括維持誤差傳播失真圖,所述誤差傳播失真圖映射由于在視頻圖像的不同相應(yīng)部分上的所述誤差傳播所致的失真的估計(jì);其中每個(gè)所述部分幀區(qū)域可以涵蓋一個(gè)或多個(gè)所述部分,并且可以根據(jù)依據(jù)不同部分的誤差傳播失真圖中的失真的估計(jì)所確定的優(yōu)先級(jí)來刷新所述部分幀區(qū)域。在每個(gè)相應(yīng)幀處,可以基于誤差傳播失真圖中的所述部分的估計(jì)來刷新與誤差傳播失真的最大估計(jì)對(duì)應(yīng)的部分幀區(qū)域中的僅一個(gè)或子集。所述部分幀區(qū)域可以在所述數(shù)目的幀上以優(yōu)先級(jí)的順序進(jìn)行刷新,所述優(yōu)先級(jí)的順序基于誤差傳播失真圖中的估計(jì)而確定,使得與較大估計(jì)的誤差傳播對(duì)應(yīng)的部分幀區(qū)域在所述數(shù)目的幀中的較早幀中進(jìn)行刷新而與較小估計(jì)的誤差傳播對(duì)應(yīng)的部分幀區(qū)域在所述數(shù)目的幀中的較晚幀中進(jìn)行刷新。所述視頻圖像的所有部分可以以優(yōu)選級(jí)順序進(jìn)行刷新。幀的所述數(shù)目可以等于或大于所述視頻圖像在區(qū)域中可劃分成的所述部分幀區(qū)域的數(shù)目。該方法可以包括更新誤差傳播圖以反映所述恢復(fù)操作所實(shí)現(xiàn)的刷新。每個(gè)所述部分幀區(qū)域可以涵蓋多個(gè)所述部分,并且可以根據(jù)依據(jù)誤差傳播圖中的相應(yīng)多個(gè)部分的估計(jì)來確定每個(gè)部分幀區(qū)域的對(duì)應(yīng)估計(jì)的誤差傳播失真。
誤差傳播圖中的估計(jì)可以基于第一貢獻(xiàn),表示(如果目標(biāo)部分確實(shí)通過信道到達(dá))由于目標(biāo)部分預(yù)測(cè)所依賴的目標(biāo)部分歷史中的參考部分的未到達(dá)而將經(jīng)受的失真估計(jì);以及第二貢獻(xiàn),表示由于隱藏而將經(jīng)受的失真估計(jì)。第二貢獻(xiàn)可以包括表示目標(biāo)部分相對(duì)于圖像部分的隱藏失真量度的貢獻(xiàn),如果在信道上丟失目標(biāo)部分則其將用來隱藏目標(biāo)部分的丟失;以及表示由于目標(biāo)部分隱藏所依賴的目標(biāo)部分歷史中的圖像部分的丟失而將經(jīng)受的失真估計(jì)的貢獻(xiàn)。除了恢復(fù)操作,誤差傳播失真圖可以另外用在分開的編碼模式選擇過程中,該單獨(dú)的編碼模式選擇過程單獨(dú)地應(yīng)用于每個(gè)圖像部分并且是正在進(jìn)行的過程而不是由來自解碼器的反饋觸發(fā)。編碼模式選擇過程可以在用于個(gè)別圖像部分的幀內(nèi)和幀間編碼之間選擇。恢復(fù)操作可以比模式選擇過程更快地刷新視頻圖像的編碼。
恢復(fù)操作可以在由所述數(shù)目的幀定義的預(yù)定時(shí)間段內(nèi)刷新整個(gè)視頻圖像的編碼,而模式選擇過程不能保證在所述預(yù)定時(shí)間段內(nèi)刷新整個(gè)視頻圖像的編碼。模式選擇過程不能保證在任何預(yù)定時(shí)間段內(nèi)刷新整個(gè)視頻圖像的編碼。根據(jù)本發(fā)明的另一方面,提供一種發(fā)送終端,該發(fā)送終端包括編碼器,被布置成在多個(gè)幀的每個(gè)幀處對(duì)視頻圖像進(jìn)行編碼,包括通過使用幀間編碼來編碼一些所述幀的至少部分,由此生成編碼的視頻流;以及發(fā)送器,被布置成在有損信道上發(fā)送編碼的視頻流以在接收終端處解碼從而產(chǎn)生解碼的視頻;其中所述編碼器被配置成執(zhí)行恢復(fù)操作以刷新所述視頻圖像的編碼,切斷在所述信道上存在丟失時(shí)由于幀間預(yù)測(cè)效應(yīng)而在解碼的視頻中發(fā)生的誤差傳播;其中所述編碼器被配置成使得所述恢復(fù)操作由從所述接收終端反饋的指示丟失的報(bào)告觸發(fā);并且其中所述編碼器被配置成在復(fù)數(shù)個(gè)幀上執(zhí)行所述恢復(fù)操作,在不同相應(yīng)幀處刷新不同部分幀區(qū)域的編碼。在實(shí)施例中,編碼器可以進(jìn)一步配置成執(zhí)行根據(jù)任何上面的方法特征的操作。根據(jù)本發(fā)明的另一方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品被體現(xiàn)在計(jì)算機(jī)可讀介質(zhì)上并且包括代碼,所述代碼被配置成當(dāng)在發(fā)送終端上執(zhí)行時(shí)執(zhí)行以下操作在多個(gè)幀的每個(gè)幀處對(duì)視頻圖像進(jìn)行編碼,包括通過使用幀間編碼來編碼一些幀的至少部分,由此生成編碼的視頻流;在有損信道上發(fā)送編碼的視頻流以在接收器處解碼從而產(chǎn)生解碼的視頻;以及執(zhí)行恢復(fù)操作以刷新視頻圖像的編碼,切斷在所述信道上存在丟失時(shí)由于幀間預(yù)測(cè)效應(yīng)而在解碼的視頻中發(fā)生的誤差傳播;其中所述恢復(fù)操作由從接收器反饋的指示丟失的報(bào)告觸發(fā);并且其中所述恢復(fù)操作在復(fù)數(shù)個(gè)幀上執(zhí)行,從而在不同相應(yīng)幀處刷新不同部分幀的編碼。在實(shí)施例中,代碼可以進(jìn)一步被配置成在被執(zhí)行時(shí)執(zhí)行根據(jù)任何上面的方法特征的操作。
為了更好地理解本發(fā)明并且為了示出如何可以對(duì)其實(shí)施,通過示例方式對(duì)附圖進(jìn)行參考,在附圖中
圖Ia是視頻流的示意性表示,
圖Ib是一些幀內(nèi)預(yù)測(cè)編碼模式的示意性表示,圖Ic是關(guān)于幀間預(yù)測(cè)編碼的示意性表示,
圖Id是誤差傳播失真的計(jì)算的示意性表示,
圖2是通信系統(tǒng)的示意性框圖,
圖3是編碼器的示意性框圖,
圖4是誤差傳播失真圖的示意性表示,以及 圖5是軟恢復(fù)操作的觸發(fā)的示意性表示。
具體實(shí)施例方式
以下涉及利用從接收器到發(fā)送器可用的反饋信道在差錯(cuò)信道上的實(shí)時(shí)視頻發(fā)送的領(lǐng)域。再次參考圖2,在接收終端22上運(yùn)行的解碼器被配置成當(dāng)它確定幀或部分幀在接收終端22處未被接收并且因此在信道上被丟失時(shí)向在發(fā)送終端12上運(yùn)行的編碼器返回報(bào)告。該丟失可能是因?yàn)榉纸M在基于分組的網(wǎng)絡(luò)上發(fā)送期間被丟掉或者因?yàn)閿?shù)據(jù)被損毀。當(dāng)分組、幀或者部分幀被成功接收時(shí),接收終端22上的解碼器也可以反饋確認(rèn)。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,描述了一種使用基于幀內(nèi)刷新的恢復(fù)或其它這種軟恢復(fù)操作而不是單個(gè)恢復(fù)幀的方法,其中在發(fā)送終端12的編碼器處執(zhí)行的基于幀內(nèi)刷新的恢復(fù)操作由從接收終端22接收回的丟失報(bào)告觸發(fā)。就基于幀內(nèi)刷新的恢復(fù)方案而言存在許多挑戰(zhàn)。首先,將期望的是,首先刷新與最大失真相關(guān)聯(lián)的區(qū)域使得(嚴(yán)重)失真的持續(xù)時(shí)間被最小化。其次,將期望的是,確保在某一時(shí)間段后誤差傳播失真的概率(除非發(fā)生新的丟失)是小的。為了解決這兩個(gè)問題,在編碼器內(nèi)部跟蹤潛在解碼器失真將是有用的。一種用于跟蹤失真的此類方法是由Zhang等人描述的方法,但是其它方法可以是可能的。該跟蹤包括在發(fā)送終端12上運(yùn)行的編碼器處維持誤差傳播圖。這將由于信道上的可能丟失所致的失真估計(jì)映射到所討論的視頻圖像的幀區(qū)域的不同相應(yīng)部分,例如將相應(yīng)估計(jì)的誤差傳播失真值映射到幀區(qū)域的每個(gè)宏塊。本發(fā)明使用誤差傳播圖中的估計(jì)失真值來優(yōu)先化幀的哪些區(qū)域應(yīng)當(dāng)在軟恢復(fù)操作中被刷新,優(yōu)選地優(yōu)先化在軟恢復(fù)中涉及的所述數(shù)目的幀上刷新區(qū)域的順序。在序列中,具有較大誤差傳播失真估計(jì)的那些區(qū)域?qū)⑹紫缺凰⑿拢哂休^低誤差傳播估計(jì)的那些區(qū)域?qū)⑸院蟊凰⑿?。然而,不像Vadapalli [3],軟恢復(fù)操作由從接收終端22反饋的指示信道(例如,經(jīng)由基于分組的網(wǎng)絡(luò)32建立的信道)上的丟失的報(bào)告觸發(fā)。優(yōu)選地,該觸發(fā)是與具體丟失事件即特定分組、幀或部分幀的丟失對(duì)應(yīng)的報(bào)告。幀的給定區(qū)域的刷新可以使用幀內(nèi)編碼或相對(duì)于已知在解碼器中可用(已知為無誤差,因?yàn)樗旧硪驯淮_認(rèn)為接收并且其歷史中相關(guān)的一切已被確認(rèn))的無誤差幀的幀間編碼而實(shí)現(xiàn)。優(yōu)選地,軟恢復(fù)操作繼續(xù)直至刷新了整個(gè)幀區(qū)域的所有區(qū)域(即整個(gè)視頻圖像區(qū)域)。圖4示意性地表示由在發(fā)送終端22處的編碼器維持的誤差傳播圖在刷新由來自接收終端22的反饋報(bào)告觸發(fā)時(shí)的“快照”。在圖4中圖示了誤差傳播失真圖中的多個(gè)條目,每個(gè)對(duì)應(yīng)于總幀區(qū)域在幀區(qū)域內(nèi)的不同相應(yīng)位置處相應(yīng)部分。例如,該圖可以就宏塊m的每塊或子塊m(k)維持一個(gè)條目。每個(gè)條目存儲(chǔ)代表其相應(yīng)幀部分的相應(yīng)誤差傳播失真估計(jì)的相應(yīng)值Dep(m(k))。這代表由于以下原因而在幀區(qū)域的該部分中可能當(dāng)前在解碼器處經(jīng)受所估計(jì)的失真在信道上的相關(guān)編碼圖像數(shù)據(jù)的可能丟失;以及該丟失因?yàn)榛谡`差隱藏的數(shù)據(jù)的幀間編碼幀的繼續(xù)解碼而傳播經(jīng)過正在進(jìn)行的幀的效應(yīng)。該圖是根據(jù)在編碼器處實(shí)施的信道的估計(jì)或模型而確定的。每當(dāng)執(zhí)行幀區(qū)域的新的編碼模式選擇或刷新,就更新相關(guān)條目。根據(jù)本發(fā)明的示例性實(shí)施例,當(dāng)由從接收終端22反饋的丟失報(bào)告觸發(fā)時(shí),在發(fā)送終端12處的編碼器基于哪些在誤差傳播圖中具有最高估計(jì)的誤差傳播失真而確定用于刷新幀區(qū)域的不同部分(例如不同塊或宏塊)的相對(duì)優(yōu)先化。圖5示意性地圖示了被編碼的幀序列。如圖5所示,在響應(yīng)于從解碼器反饋的報(bào)告特定分組、幀或部分幀的丟失的丟失報(bào)告而觸發(fā)之后,在少量的部分恢復(fù)幀上執(zhí)行軟恢復(fù)操作。優(yōu)選地,給定恢復(fù)操作的部分恢復(fù)幀形成時(shí)間上的連續(xù)序列。在其上執(zhí)行軟恢復(fù)的幀數(shù)相對(duì)于LARDO模式選擇過程碰巧刷新整個(gè)幀將所花的時(shí)間是小的。通過圖示的方式,軟恢復(fù)在圖5中被示為在四個(gè)幀上執(zhí)行,但是將明白其它數(shù)目是可能的。在實(shí)施例中,該數(shù)目是固定的或以其它方式預(yù)定的數(shù)目,但是不排除以特設(shè)方式(ad hoc)改變數(shù)目的可 能性?;谒_定的優(yōu)先化,編碼器然后確定該幀的哪些部分區(qū)域(例如哪些組的塊或宏塊)將在為恢復(fù)所分配的哪些幀中被更新。該刷新可以包括對(duì)幀區(qū)域的塊進(jìn)行幀內(nèi)編碼;或者可以包括相對(duì)于已知在解碼器處被接收而沒有誤差傳播失真的參考幀或部分幀對(duì)這些塊進(jìn)行幀間編碼,因?yàn)樵搮⒖紟淮_認(rèn)為已被解碼器接收并且參考幀歷史中相關(guān)的一切被確認(rèn)為已被接收(即如果參考幀本身從先前參考幀被幀間預(yù)測(cè),以此類推,則該鏈中的所有參考幀將需要被確認(rèn)為由解碼器接收以保證無誤差傳播失真)。該刷新也可以包括針對(duì)不同區(qū)域的這兩種技術(shù)的組合。通過圖示方式,在圖4中以粗體示出了具有最高估計(jì)的誤差傳播失真值的塊集
八
口 ο在一個(gè)實(shí)施例中,具有最高估計(jì)的誤差傳播失真的該塊或宏塊集合形成要被首先刷新的區(qū)域,例如通過每個(gè)相對(duì)于確認(rèn)的無誤差幀或幀部分進(jìn)行幀間編碼。然而,在圖中具有最高估計(jì)值的塊可能不必彼此相鄰,而可以四處散布使得被刷新的區(qū)域分散在圖上。如果期望的刷新技術(shù)是對(duì)那些塊相對(duì)于彼此進(jìn)行幀內(nèi)編碼,這可能是不方便的。在替選實(shí)施例中,編碼器確定空間上成組的接連塊或宏塊的較大區(qū)域(但仍然是幀的部分區(qū)域),其根據(jù)某一聚合量度而具有最高總體估計(jì)誤差傳播失真,例如包含最高失真塊集合的最大分?jǐn)?shù)或者在該區(qū)域內(nèi)具有塊的誤差傳播失真值的最高平均值。這種區(qū)域的示例在圖4中被示出加輪廓。編碼器然后將首先刷新該區(qū)域的塊,而非必要刷新所有各個(gè)最聞失真塊。優(yōu)選地,存在與幀區(qū)域可劃分成的區(qū)域一樣多的恢復(fù)幀,使得整個(gè)幀區(qū)域可以在該數(shù)目的部分恢復(fù)幀中被更新。實(shí)際上注意,在實(shí)施例中這僅是最小幀數(shù),因?yàn)樗⑿虏糠挚梢栽瓌t上再次由于來自非刷新區(qū)域的誤差傳播而損毀,因此可能要求附加的刷新以(以某一概率)保證沒有誤差傳播失真的解碼。根據(jù)一種用于刷新優(yōu)先化的策略,在軟恢復(fù)中涉及的所述數(shù)目的幀中的每一個(gè)處,編碼器可以僅編碼在該時(shí)間點(diǎn)上具有最高估計(jì)失真的任何區(qū)域,而不必采取有效步驟來強(qiáng)制在所述數(shù)目的幀上的整個(gè)幀區(qū)域的窮盡刷新。優(yōu)選地,在刷新每個(gè)部分幀區(qū)域后更新誤差傳播失真圖,即因此一旦該區(qū)域被刷新,可以已知該區(qū)域具有小誤差傳播失真或者沒有誤差傳播失真(低但非零預(yù)期的誤差傳播失真仍然可能由于低但存在的如下概率而延續(xù)部分恢復(fù)幀在信道上丟失并因此在解碼器處沒有刷新效應(yīng))。在這種情況下,在任何給定幀處僅刷新具有最大估計(jì)誤差傳播失真值的區(qū)域的策略可能具有刷新整個(gè)幀區(qū)域而不明確分配或強(qiáng)制順序的效果,因?yàn)樵诿看尾糠炙⑿潞?,該區(qū)域的塊將具有小失真或者沒有失真并且因此不可能接下來被刷新,并且先前第二失真塊組現(xiàn)在將是最大的,等等。因此,這種策略將根據(jù)某一隱含優(yōu)先級(jí)來刷新。替選地,編碼器可以被配置成編碼在每個(gè)恢復(fù)幀時(shí)具有最高估計(jì)失真的任何區(qū)域,但是在每個(gè)后續(xù)恢復(fù)幀時(shí)從比較中排除已被刷新的任何區(qū)域。這將具有確保以優(yōu)先級(jí)順序刷新整個(gè)幀區(qū)域的效果(仍然假設(shè)存在至少與幀區(qū)域可劃分成的區(qū)域一樣多的恢復(fù)幀),使得較早刷新具有較高估計(jì)誤差傳播失真的區(qū)域而較晚刷新具有較低估計(jì)誤差傳播失真的區(qū)域。
在另一替選策略中,在操作的開始時(shí)當(dāng)初始觸發(fā)軟恢復(fù)時(shí),編碼器可以基于誤差傳播失真圖中的對(duì)應(yīng)估計(jì)來為多個(gè)區(qū)域中的所有區(qū)域策劃優(yōu)先級(jí)順序,使得具有最高估計(jì)誤差傳播失真的區(qū)域被分配較高優(yōu)先級(jí)而具有最低估計(jì)誤差傳播失真的區(qū)域被分配較低優(yōu)先級(jí)。編碼器然后將以所分配的優(yōu)先級(jí)順序刷新每個(gè)區(qū)域。在一些實(shí)施例中,任何上面的策略可以被進(jìn)一步適配成使得一個(gè)或多個(gè)區(qū)域可以被全部或部分刷新不止一次以嘗試適應(yīng)如下事實(shí)所刷新部分可以原則上再次由于來自非刷新區(qū)域的誤差傳播而損毀,因此可能要求附加的刷新以(以某一概率)保證沒有誤差傳播失真的解碼。在這種情況下,軟刷新操作將適于針對(duì)比幀區(qū)域可劃分成的所述部分幀區(qū)域的數(shù)目更多的幀來運(yùn)行。在上面討論的第二或第三策略的情況下,這些可以被布置成針對(duì)具有最高估計(jì)誤差傳播失真或最高指派優(yōu)選級(jí)的一個(gè)或多個(gè)區(qū)域重復(fù)該刷新。如所討論的,在[2]中,作者在編碼器中估計(jì)在解碼后(由于源編碼和信道誤差所致的)的潛在失真。在他們的工作中,估計(jì)的潛在失真然后間接地用來使模式選擇偏向幀內(nèi)編碼(如果存在信道誤差的非零概率)。他們所謂的“端對(duì)端”失真表達(dá)式是基于平方差和(SSD)失真量度并且假設(shè)用于丟失宏塊的伯努利分布。最優(yōu)宏塊模式ο由下式給出
=arg mioCo, (m,o) + Dep^f (m,o) + XR(Mo)I
β (2)
其中Ds(m,o)表示針對(duì)宏塊m和宏塊模式ο的、原始和重構(gòu)像素塊之間的SSD源編碼失真,R為總速率,并且λ為使失真和速率項(xiàng)聯(lián)系起來的拉格朗日乘子。Dep_Mf(m,o)表示由于誤差傳播引起的解碼器中的參考?jí)K內(nèi)的預(yù)期失真。Dep_ref(m, ο)對(duì)于幀內(nèi)編碼宏塊模式而言為零(假設(shè)受約束的幀內(nèi)預(yù)測(cè))。在[2]中,項(xiàng)Dep_f(m,o)遵循運(yùn)動(dòng)并且使用當(dāng)前運(yùn)動(dòng)矢量從總失真圖進(jìn)行計(jì)算??傤A(yù)期誤差傳播失真圖Dep通過執(zhí)行誤差隱藏來驅(qū)動(dòng)并且在每個(gè)宏塊模式選擇后更新為
% Kl —Oopt) +
其中m(k)表示宏塊m的第k個(gè)子塊,P表示分組丟失的概率,表示編碼器中的重構(gòu)和誤差隱藏像素之間的SSD,并且Dec;_ep為編碼器和解碼器中的誤差隱藏像素之間的預(yù)期SSD。在本發(fā)明的實(shí)施例中,公式(2)的使用不是關(guān)鍵的。相關(guān)公式是描述潛在失真的跟蹤的(3)或(3a)。給定公式(3)或(3a)用于整個(gè)幀,編碼器可以選擇刷新具有最大潛在失真的最大Kniax塊當(dāng)中的K塊,因此解決最小化嚴(yán)重失真的持續(xù)時(shí)間的第一顧慮。這類似于在幀內(nèi)刷新的背景下由Vadapalli等人[3]提出的內(nèi)容,但是由從接收器12反饋的丟失報(bào)告觸發(fā)。此外,由于本發(fā)明的優(yōu)選實(shí)施例逐幀地跟蹤失真,編碼器可以被配置成估計(jì)宏塊的刷新如何傳播到下一幀(或者再次變?yōu)閾p毀)并且由此獲得保持在解碼圖片中的誤差傳播失真的概率的良好估計(jì)。軟恢復(fù)機(jī)制是可以與LARDO模式選擇一起或者不與LARDO模式選擇一起使用的獨(dú)立恢復(fù)方法。本發(fā)明的軟恢復(fù)操作與模式選擇過程不同在于軟刷新操作僅發(fā)生在由報(bào)告的丟失幀觸發(fā)時(shí)的某些時(shí)間,而LARDO是一直發(fā)生的正在進(jìn)行的過程。再次參見圖5。而且,軟刷新旨在刷新整個(gè)圖像或者圖像的至少整個(gè)大塊(多個(gè)宏塊一起),而LARDO孤立地針對(duì) 每個(gè)個(gè)別塊或宏塊做出模式選擇決策。LARDO過程可能碰巧決定使用幀內(nèi)編碼來編碼任何給定的宏塊,因此在時(shí)間上這將趨向于在需要時(shí)刷新該幀(盡管常規(guī)上不用反饋來完成)。然而,發(fā)明人已經(jīng)歷利用LARDO的恢復(fù)在許多情況下不夠快因此發(fā)送由丟失報(bào)告觸發(fā)的恢復(fù)幀仍是(在感知上)有益的?;謴?fù)操作的目的是同時(shí)中斷所有誤差傳播。軟恢復(fù)的目的是使這松弛一點(diǎn)并且允許恢復(fù)在幾個(gè)幀內(nèi)發(fā)生。然而,軟恢復(fù)仍然比簡(jiǎn)單應(yīng)用LARDO更快地終止誤差傳播失真。優(yōu)選地,軟恢復(fù)操作確保在(由該軟刷新所散布的所述數(shù)目的幀所定義的)某一預(yù)定時(shí)間段內(nèi)刷新整個(gè)幀區(qū)域;而這是LARDO過程因其性質(zhì)而不能保證的東西。關(guān)于圖3描述了用于實(shí)施本發(fā)明的適當(dāng)?shù)木幋a器。圖3是示意性圖示諸如可能在發(fā)送終端12上實(shí)施的編碼器的高級(jí)框圖。該編碼器包括離散余弦變換(DCT)模塊51,量化器53,逆變換模塊61,逆量化器63,幀內(nèi)預(yù)測(cè)模塊41,幀間預(yù)測(cè)模塊43以及減法級(jí)(_)。該編碼器也包括開關(guān)47和控制器49。每個(gè)模塊優(yōu)選地實(shí)施為存儲(chǔ)在發(fā)送終端的存儲(chǔ)介質(zhì)14上且布置用于在其處理裝置16上執(zhí)行的代碼的一部分,盡管不排除這些中的一些或全部整體或部分實(shí)施在專用硬件電路中的可能性。開關(guān)47和模式控制器49中的每一個(gè)布置成接收包括多個(gè)宏塊MB的輸入視頻流的實(shí)例。控制器49布置成選擇宏塊是使用幀內(nèi)編碼還是幀間編碼來編碼的(并且在實(shí)施例中可以在不同的幀間模式和/或不同的幀內(nèi)模式當(dāng)中進(jìn)行選擇)??刂破?9操作性地耦合到復(fù)用器47以便對(duì)它控制從而視選擇的編碼模式而定把逆量化器63的輸出傳送到幀內(nèi)預(yù)測(cè)模塊41或幀間預(yù)測(cè)模塊43的輸入??刂破?9使用這一能力來控制根據(jù)軟恢復(fù)操作的所刷新幀區(qū)域的生成,例如在軟刷新的周期內(nèi)在不同要求的位置中生成幀內(nèi)編碼的區(qū)域。為此,控制器49被連接以便接收經(jīng)由反饋信道從接收終端22反饋的丟失報(bào)告(可選地也接收確認(rèn))。如果與軟恢復(fù)機(jī)制并行地也要求諸如Zhang [2]的LARDO模式選擇過程,則用于個(gè)另IJ宏塊(或者比如此類)的模式選擇“ο”也可以由控制器49控制。在實(shí)施例中,控制器49可以布置成向相關(guān)的預(yù)測(cè)模塊41、43指示關(guān)于選擇的模式“ο”的信息(例如指示4X4分區(qū)模式、8X8模式、跳躍模式等等)并且接收從預(yù)測(cè)模塊41、43反饋的信息以用于選擇下一幀的模式。
幀內(nèi)預(yù)測(cè)模塊41或幀間預(yù)測(cè)模塊43的輸出然后耦合到減法級(jí)(-)的輸入,該減法級(jí)(_)布置成在其另一輸入處接收未經(jīng)編碼的輸入視頻流并且從其未經(jīng)編碼的副本減去預(yù)測(cè)的塊,因此生成殘差信號(hào)。殘差塊然后傳送經(jīng)過變換(DCT)模塊51 (在模塊51中其殘差值被轉(zhuǎn)換到頻域中),然后到量化器53 (在量化器53中變換的值被轉(zhuǎn)換成離散量化索引)。量化的變換信號(hào)被反饋經(jīng)過逆量化器63和逆變換模塊61以生成(如在解碼器處將看到的)塊或子塊的預(yù)測(cè)版本以供選擇的預(yù)測(cè)模塊41、43使用。在預(yù)測(cè)模塊41、43中使用的預(yù)測(cè)的指示、由幀間預(yù)測(cè)模塊43生成的運(yùn)動(dòng)矢量以及由變換和量化模塊51、53生成的殘差的量化的變換索引都被輸出以包含在編碼視頻流中;典型地經(jīng)由進(jìn)一步無損編碼級(jí)諸如熵編碼器(未示出),在其中預(yù)測(cè)值和變換的量化索引可以使用本領(lǐng)域中已知的無損編碼技術(shù)進(jìn)行進(jìn)一步壓縮。通過示例方式,現(xiàn)在更詳細(xì)地描述Zhang的維持誤差傳播失真圖的方法。然而,將明白,可以存在其它對(duì)由于信道上的丟失所致的可能失真進(jìn)行建模的方式,并且本發(fā)明不限于這種具體的方法。如所提及的,模式選擇可以涉及優(yōu)化(例如最小化)拉格朗日類型函數(shù)
J = Dfml a) + XRfmt ο),(1)
其中J表不拉格朗日函數(shù),D表不失真的量度(模式ο和宏塊m或宏塊子分區(qū)的函數(shù)),R是比特率,以及λ是定義失真和速率之間的折衷的參數(shù)。在常規(guī)情況下失真項(xiàng)D僅考慮到源編碼失真,即由于編碼器中的缺陷諸如由量化所引入的失真。它沒有考慮到可能由于信道上的數(shù)據(jù)丟失例如由于基于分組的網(wǎng)絡(luò)32上的發(fā)送中的分組丟失而引入的失真。另一方面,丟失自適應(yīng)的技術(shù)諸如本發(fā)明和Zhang [2]的那些技術(shù)試圖定義考慮到源編碼和由于信道上的數(shù)據(jù)丟失所引起的失真兩者的“端對(duì)端”失真的量度。給定(目標(biāo))塊、宏塊或子塊的端對(duì)端失真可以描述為
D ^ (l-p)D樹μ + PDhss(5)
其中Dmival是如果目標(biāo)塊確實(shí)到達(dá)解碼器則將經(jīng)受的失真的估計(jì),而Dltjss是如果由于信道上的分組丟失例如由于基于分組的網(wǎng)絡(luò)32上的包括目標(biāo)塊的分組的丟失而該塊未到達(dá)解碼器則將經(jīng)受的失真的估計(jì)。參數(shù)P是在信道上發(fā)生的導(dǎo)致所討論的塊或圖像部分被丟失的丟失事件的概率估計(jì),例如分組丟失的概率估計(jì)。為了方便起見,術(shù)語“塊”可以在這里的某些地方用來一般地指代相關(guān)的幀分區(qū)水平(例如諸如H. 264的某些標(biāo)準(zhǔn)的塊或子塊)。Darrival不僅表示源編碼失真而且表示由于塊過往的失真即要據(jù)以預(yù)測(cè)目標(biāo)塊的一個(gè)或多個(gè)參考?jí)K中的失真而將引入的失真。因此,Darrival包括源編碼失真項(xiàng)Ds和誤差傳播失真項(xiàng)Drf 兩者,該誤差傳播失真項(xiàng)Drf μ表示預(yù)測(cè)的目標(biāo)塊歷史中的失真(即,將向前攜帶到目標(biāo)塊中的目標(biāo)塊參考?jí)K中的失真)
Datrhvi :A + Dvjef_
Dloss包括由于隱藏所致的丟失。如果未接收到目標(biāo)塊,則解碼器將應(yīng)用隱藏算法,該隱藏算法可以涉及凍結(jié)先前解碼的塊或者從一個(gè)或多個(gè)成功解碼的塊(從當(dāng)前幀和/或先前幀)內(nèi)插或外插。因此,Dltjss可以標(biāo)識(shí)為由于這個(gè)隱藏過程所致的失真
Dfms 一 Dee{7)
因此檢查公式(5),項(xiàng)Ds表示如果根本不存在丟失則將經(jīng)受的失真的估計(jì),項(xiàng)De。表示如果丟失了目標(biāo)塊則將經(jīng)受的失真的估計(jì),而項(xiàng)Dep ref表示如果成功接收到目標(biāo)塊但是其歷史中的一些東西被丟失(如果目標(biāo)塊的參考?jí)K被丟失,或者參考?jí)K的參考?jí)K被丟失,等等)則將經(jīng)受的失真的估計(jì)。Ds和Dep Mf是編碼模式選擇ο的函數(shù)。De。不是模式選擇ο的函數(shù),因此從拉格朗日表達(dá)式略去(如何對(duì)丟失的塊編碼無所謂一它仍被丟失)。因此,最優(yōu)化可以寫為
On0 = argmin(i)T( so) + i)cp. r4{m,o) +(2)
σ
Ds是確定的,因?yàn)樗腔谠诰幋a器處可以已知的信息,例如基于原始輸入樣本值s和重構(gòu)的樣本值5之間的差。編碼器在編碼器側(cè)運(yùn)行解碼器的并行實(shí)例(或其近似)一參見詳述圖3中的幀間預(yù)測(cè)模塊43的插圖。幀間預(yù)測(cè)模塊43包括運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)(MCP)塊44
和加法級(jí)( + ),所述加法級(jí)(+ )布置成通過組合預(yù)測(cè)的樣本和重構(gòu)的殘差f來確定重構(gòu)的樣本& ,即對(duì)于每個(gè)樣本索引i,^ =η + Sprej。在幀間編碼的情況下,在編碼器處
預(yù)測(cè)的樣本可以與參考?jí)K的樣本(參考幀中的參考?jí)K相對(duì)于目標(biāo)幀僅偏移了運(yùn)動(dòng)矢量——參見圖lc,不久將再次討論)相同。因此,編碼器可以確定實(shí)際樣本s和重構(gòu)的樣本3之間的差,如在編碼器和解碼器端看到的(迄今為止,這忽略了將引入在解碼器處經(jīng)受的進(jìn)一步失真的丟失的可能性)。樣本中的差可以例如計(jì)算為在所討論的目標(biāo)塊的所有樣本索引i上的平方差和(SSD)誤差
I
然而,Dep M仍待估計(jì),這將基于做出關(guān)于(例如在基于分組的網(wǎng)絡(luò)32上)編碼的數(shù)據(jù)要在其上發(fā)送的信道的某一估計(jì)。為實(shí)現(xiàn)此,編碼器中的控制器49可以被配置成維持誤差傳播失真圖Dep,所述誤差傳播失真圖Dep描述最近編碼的幀內(nèi)的每個(gè)宏塊或宏塊分區(qū)的失真??刂破?9也被布置成確定包含要從其預(yù)測(cè)目標(biāo)塊的參考?jí)K的分組將在信道上丟失的概率P (因此也布置成隱含地或明確地確定分組確實(shí)到達(dá)的概率1-P)。概率P可以基于統(tǒng)計(jì)建模在設(shè)計(jì)階段進(jìn)行預(yù)先確定,在這種情況下控制器49通過從存儲(chǔ)器14取回值來確定p。然而,另一可能性將是控制器49基于來自接收器22的反饋來確定P。誤差傳播圖可以表達(dá)為
Df.p — (I-p)Dfpjiffiwi. pDioss(9)
誤差傳播圖Dep包括最近編碼的幀內(nèi)的宏塊m或更優(yōu)選地是每個(gè)子分區(qū)(塊或子塊)m(k)的失真估計(jì)。因此,它可以更明確地寫為
權(quán)利要求
1.一種方法,包括 在多個(gè)幀的每個(gè)幀處對(duì)視頻圖像進(jìn)行編碼,包括通過使用幀間編碼來編碼一些所述幀的至少部分,由此生成編碼的視頻流; 在有損信道上發(fā)送編碼的視頻流以在接收器處解碼從而產(chǎn)生解碼的視頻;以及 執(zhí)行恢復(fù)操作以刷新所述視頻圖像的編碼,切斷在所述信道上存在丟失時(shí)由于幀間預(yù)測(cè)效應(yīng)而在解碼的視頻中發(fā)生的誤差傳播; 其中所述恢復(fù)操作由從接收器反饋的指示丟失的報(bào)告觸發(fā);并且 其中所述恢復(fù)操作在復(fù)數(shù)個(gè)幀上執(zhí)行,在不同相應(yīng)幀處刷新不同部分幀區(qū)域的編碼。
2.權(quán)利要求I的方法,其中所述刷新操作在所述數(shù)目的幀上刷新所述視頻圖像的全部的編碼。
3.權(quán)利要求I或2的方法,其中所述恢復(fù)操作包括使用幀內(nèi)編碼而不是所述幀間編碼來編碼所述部分幀區(qū)域中的一個(gè)或多個(gè)。
4.權(quán)利要求1、2或3的方法,其中所述恢復(fù)操作包括使用相對(duì)于所述幀中由于從接收器反饋的接收確認(rèn)而已知為無誤差的一個(gè)幀的部分的幀間預(yù)測(cè)來編碼所述部分幀區(qū)域中的一個(gè)或多個(gè)。
5.任一前述權(quán)利要求的方法,包括維持誤差傳播失真圖,所述誤差傳播失真圖將由于所述誤差傳播所致的失真的估計(jì)映射在視頻圖像的不同相應(yīng)部分上; 其中每個(gè)所述部分幀區(qū)域涵蓋一個(gè)或多個(gè)所述部分,并且根據(jù)依據(jù)不同部分的誤差傳播失真圖中的失真的估計(jì)所確定的優(yōu)先級(jí)來刷新所述部分幀區(qū)域。
6.權(quán)利要求5的方法,其中在每個(gè)相應(yīng)幀處,與誤差傳播失真的最大估計(jì)對(duì)應(yīng)的部分幀區(qū)域中的僅一個(gè)或子集基于誤差傳播失真圖中的所述部分的估計(jì)進(jìn)行刷新。
7.權(quán)利要求5或6的方法,其中所述部分幀區(qū)域在所述數(shù)目的幀上以優(yōu)先級(jí)的順序進(jìn)行刷新,所述優(yōu)先級(jí)的順序基于誤差傳播失真圖中的估計(jì)而確定,使得與較大估計(jì)的誤差傳播對(duì)應(yīng)的部分幀區(qū)域在所述數(shù)目的幀中的較早幀中進(jìn)行刷新而與較小估計(jì)的誤差傳播對(duì)應(yīng)的部分幀區(qū)域在所述數(shù)目的幀中的較晚幀中進(jìn)行刷新。
8.權(quán)利要求2和7的方法,其中所述視頻圖像的所有部分以優(yōu)選級(jí)順序進(jìn)行刷新。
9.一種發(fā)送終端,包括 編碼器,被布置成在多個(gè)幀的每個(gè)幀處對(duì)視頻圖像進(jìn)行編碼,包括通過使用幀間編碼來編碼一些所述幀的至少部分,由此生成編碼的視頻流;以及 發(fā)送器,被布置成在有損信道上發(fā)送編碼的視頻流以在接收終端處解碼從而產(chǎn)生解碼的視頻; 其中所述編碼器被配置成執(zhí)行恢復(fù)操作以刷新所述視頻圖像的編碼,切斷在所述信道上存在丟失時(shí)由于幀間預(yù)測(cè)效應(yīng)而在解碼的視頻中發(fā)生的誤差傳播; 其中所述編碼器被配置成使得所述恢復(fù)操作由從所述接收終端反饋的指示丟失的報(bào)告觸發(fā);并且 其中所述編碼器被配置成在復(fù)數(shù)個(gè)幀上執(zhí)行所述恢復(fù)操作,在不同相應(yīng)幀處刷新不同部分幀區(qū)域的編碼。
10.一種計(jì)算機(jī)程序產(chǎn)品,被體現(xiàn)在計(jì)算機(jī)可讀介質(zhì)上并且包括代碼,所述代碼被配置成當(dāng)在發(fā)送終端上被執(zhí)行時(shí)執(zhí)行根據(jù)權(quán)利要求I到8中任一項(xiàng)的操作。
全文摘要
本發(fā)明涉及視頻編碼。一種方法包括在多個(gè)幀的每個(gè)幀處對(duì)視頻圖像進(jìn)行編碼,包括通過使用幀間編碼來編碼一些所述幀的至少部分,由此生成編碼的視頻流;在有損信道上發(fā)送編碼的視頻流以在接收器處解碼從而產(chǎn)生解碼的視頻;以及執(zhí)行恢復(fù)操作以刷新所述視頻圖像的編碼,切斷在所述信道上存在丟失時(shí)由于幀間預(yù)測(cè)效應(yīng)而在解碼的視頻中發(fā)生的誤差傳播;其中所述恢復(fù)操作由從接收器反饋的指示丟失的報(bào)告觸發(fā);并且其中所述恢復(fù)操作在復(fù)數(shù)個(gè)幀上執(zhí)行,從而在不同相應(yīng)幀處刷新不同部分幀區(qū)域的編碼。
文檔編號(hào)H04N7/26GK102946533SQ20121032055
公開日2013年2月27日 申請(qǐng)日期2012年9月3日 優(yōu)先權(quán)日2011年9月2日
發(fā)明者M.尼爾森, R.瓦芬, S.V.安德森 申請(qǐng)人:斯凱普公司