用于視頻編碼的率失真優(yōu)化的制作方法
【專利摘要】一種對包括多幀的視頻流編碼的方法,每幀包括多個圖像部分,該方法包括:對于流出視頻流中要編碼的多個第一圖像部分中的每一個,使用第一過程選擇潛在編碼模式組中的優(yōu)選模式,所述第一過程包括第一圖像部分的失真的估計以及對于第一圖像部分的潛在編碼模式中的每一個對第一圖像部分編碼所需的比特率的度量;使用對應的選擇的編碼模式對流出流的第一圖像部分中的每一個編碼;對于視頻流的多個第二圖像部分中的每一個,應用至少包括第二圖像部分的失真的估計的第二過程;以及在用于第一部分的所述編碼模式的選擇中使用由第二圖像部分得到的第二過程的輸出偏置第一過程。
【專利說明】用于視頻編碼的率失真優(yōu)化【技術領域】[0001]本發(fā)明涉及在使用幀內(nèi)和幀間編碼對視頻信號編碼時平衡比特率與失真之間的 折衷?!颈尘凹夹g】[0002]圖1a中示意性地圖示出要編碼的視頻數(shù)據(jù)流。該流包括多幀(F),每幀代表不同 的對應時刻的視頻圖像。如本領域技術人員所熟悉的,為了編碼的目的,每幀(F)被劃分成 若干部分并且每個部分也可以被細分成更小的子部分,每個部分或子部分包括多個像素。 例如,依照一種術語,要編碼的視頻流的每幀被劃分成宏塊(MB)并且每個宏塊被細分成塊 (b),每個塊包括多個像素。每幀也可以被劃分成可獨立解碼的切片(S),每個切片包括一個 或多個宏塊。應當注意,圖1中示出的劃分僅僅是示意性的,用于說明的目的,并且應當理 解的是,這些劃分不一定預期與任何實際的編碼方案相應一例如,每幀很可能包含更大 數(shù)量的宏塊。[0003]圖2的框圖中示意性地圖示出其中可以采用視頻編碼的一個實例通信系統(tǒng)。該通 信系統(tǒng)包括第一發(fā)送終端12和第二接收終端22。例如,每個終端12、22可以包括移動電 話或智能電話、平板計算機、膝上型計算機、臺式計算機或者諸如電視機、機頂盒、立體聲系 統(tǒng)等等之類的其他家用電器。第一和第二終端12、22中的每一個可操作地耦合到通信網(wǎng)絡 32,并且第一發(fā)送終端12因此被布置成發(fā)送將由第二接收終端22接收的信號。當然,發(fā)送 終端12也可能能夠接收來自接收終端22的信號并且反之亦然,但是出于討論的目的,所述 發(fā)送在這里從第一終端12的視角進行描述,并且所述接收從第二終端22的視角進行描述。 通信網(wǎng)絡32可以包括例如基于分組的網(wǎng)絡,例如廣域網(wǎng)和/或局域網(wǎng),和/或移動蜂窩網(wǎng) 絡。[0004]第一終端12包括諸如閃存或其他電子存儲器、磁性存儲設備和/或光學存儲設備 之類的存儲介質(zhì)14。第一終端12也包括:具有一個或多個核的CPU形式的處理裝置16 ;至 少具有發(fā)送器18的諸如有線或無線調(diào)制解調(diào)器之類的收發(fā)器;以及視頻照相機15,其可以 與或者可以不與終端12的其余部分容納在相同的外殼內(nèi)。存儲介質(zhì)14、視頻照相機15和 發(fā)送器18中的每一個可操作地耦合到處理裝置16,并且發(fā)送器18經(jīng)由有線或無線鏈接可 操作地耦合到網(wǎng)絡32。類似地,第二終端22包括:諸如電子、磁性和/或光學存儲設備之 類的存儲介質(zhì)24 ;以及具有一個或多個核的CPU形式的處理裝置26。第二終端包括:至少 具有接收器28的諸如有線或無線調(diào)制解調(diào)器之類的收發(fā)器;以及屏幕25,其可以與或者可 以不與終端22的其余部分容納在相同的外殼內(nèi)。第二終端的存儲介質(zhì)24、屏幕25和接收 器28中的每一個可操作地耦合到對應的處理裝置26,并且接收器28經(jīng)由有線或無線鏈接 可操作地耦合到網(wǎng)絡32。[0005]第一終端12上的存儲介質(zhì)14至少存儲被布置成在處理裝置16上執(zhí)行的視頻編 碼器。當被執(zhí)行時,編碼器接收來自視頻照相機15的“原始”(未編碼)輸入視頻流,對該視 頻流編碼以便將它壓縮成較低比特率流,并且輸出編碼的視頻流以便經(jīng)由發(fā)送器18和通信網(wǎng)絡32傳輸至第二終端22的接收器28。第二終端22上的存儲介質(zhì)至少存儲被布置成在其自身的處理裝置26上執(zhí)行的視頻解碼器。當被執(zhí)行時,該解碼器接收來自接收器28 的編碼的視頻流,并且對它解碼以便輸出到屏幕25??梢杂脕碇阜Q編碼器和/或解碼器的通用術語為編解碼器。[0006]視頻編解碼器的目標是降低傳輸視頻信號所需的比特率,同時維持最高的可能的質(zhì)量。這個目標通過利用統(tǒng)計冗余(視頻信號中的相似性)和知覺不相關性(與人類視覺系統(tǒng)的靈敏度有關)來實現(xiàn)。[0007]當今的大多數(shù)視頻編解碼器基于這樣的架構,該架構包括從其他像素塊預測像素塊,變換預測殘差,量化變換系數(shù)以及對量化指標進行熵編碼。這些步驟有助于降低冗余和不相關性。[0008]參閱以下文獻:[1]ITU-T,Recommendation H.264, "Advanced video coding for generic audiovisual services' 2007;[2]Zhanget al., "Error resilience video coding in H.264 encoder with potential distortion tracking' In Proc.1EEE International Conference on Image Processing, pp.163-166,2004;[3]M.Barkowskyj B.Eskofierj R.Bittoj J.Bialkowskij and A.Kaupj "Perceptually motivated spatial and temporal integration of pixel based video quality measures," in MobConQoE,07: Workshop on Mobile Content Quality of Experience, pp.1-7,2007;[4]JointVideo Team (JVT) of IS0/IEC MPEG and ITU-T VCEGj document number JVT-N046;[5]JointVideo Team (JVT) of IS0/IEC MPEG and ITU-T VCEGj document number JVT-V079;[6]G.J.Sullivan and T.Wiegandj ^Rate-Distortion Optimization for Video Compression' IEEE Signal Processing Mag.volume 15, number 6, pages 74-90, November, 1998.[7]"ImplementingRate-Distortion Optimisation on a Resource-Limited H.264 encoder' Eric Syuj Submitted to the Department of Electrical Engineering and Computer Science, in partial fulfilment of the requirements for the degree of Master of Engineering in Electrical Engineering and Computer Science, at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY, February 2005。[0009]預測典型地可以根據(jù)與當前幀不同的視頻幀中的像素(幀間預測)以及根據(jù)相同幀中的像素(幀內(nèi)預測)進行。換言之,如果使用幀內(nèi)編碼進行編碼,那么該幀的一定塊或部分(目標塊或部分)相對于該幀中的另一塊或圖像部分(參考塊或部分)進行編碼;并且如果使用幀間編碼進行編碼,那么目標塊或部分相對于另一幀中的參考塊或部分進行編碼。這個過程常稱為預測或者預測編碼。幀間或幀內(nèi)預測模塊因此將在幀內(nèi)編碼的情況下生成例如相鄰塊指示形式的預測和/或在幀間編碼的情況下生成運動矢量。典型地,編碼器也生成表示預測塊與`實際塊之間的“剩余”差值的殘差信號。然后,幀內(nèi)預測、運動矢量和殘差典型地經(jīng)由諸如量化器和熵編碼器之類的另外的編碼級輸出到編碼的視頻流中。因此,視 頻中的大多數(shù)塊可以按照塊之間的差值進行編碼,這與對絕對像素值進行編碼相比需要編 碼更少的比特,并且因而節(jié)省了比特率。幀內(nèi)預測編碼典型地需要比幀間預測更多的比特, 但是相對于對絕對值進行編碼仍然代表一種節(jié)省。用于視頻的適當?shù)膸g和幀內(nèi)編碼技術 的細節(jié)應當是本領域技術人員所熟悉的。[0010]現(xiàn)代編解碼器允許將不同的預測編碼模式用于幀內(nèi)的不同部分。具有不同編碼選 項的可能性提高了視頻編解碼器的率失真效率。對于每一個幀區(qū)域,必須找到最優(yōu)編碼表 示。典型地,這樣的區(qū)域為例如16x16像素的宏塊。即,因此有可能對于每個宏塊單獨地選 擇幀內(nèi)預測或幀間預測模式,使得相同幀內(nèi)的不同宏塊可以利用不同的模式進行編碼。也 可能的是,在一些編解碼器中基于宏塊的不同分割水平使用不同的模式,例如在其中對于 宏塊內(nèi)的每個4x4塊執(zhí)行單獨的預測的較高復雜度模式或其中基于僅僅8x8或8x16塊或 者甚至整個宏塊執(zhí)行預測的較低復雜度模式之間進行選擇。可用的模式也可以包括不同的 用于執(zhí)行預測的選項。例如,如圖1b中示意性地圖示出的,在一種幀內(nèi)模式中,4x4塊(b) 的像素可以通過根據(jù)來自正上方的塊的相鄰像素向下外推或者通過根據(jù)來自正左方的塊 相鄰像素向側(cè)面外推而確定。稱為“跳躍模式”的另一種特殊的預測模式也可以在一些編 解碼器中提供,其可以被認為是可替換類型的幀間模式。在跳躍模式(PSkip)中,基于向頂 部和向左邊的運動矢量推斷目標的運動矢量,并且不存在對于殘差系數(shù)的編碼。該推斷運 動矢量的方式與運動矢量預測一致,并且因而運動矢量差值為零,因此只需用信號表示MB 為跳躍塊。[0011]圖3為示意性地圖示出例如可能在發(fā)送終端12上實現(xiàn)的編碼器的高層次框圖。該 編碼器包括:離散余弦變換(DCT)模塊51,量化器53,逆變換模塊61,逆量化器63,幀內(nèi)預 測模塊41,幀間預測模塊43以及減法級(_)。該編碼器也包括開關47和模式選擇模塊49。 這些模塊或功能塊中的每一個優(yōu)選地實現(xiàn)為存儲在發(fā)送終端的存儲介質(zhì)14上并且被布置 用于在其處理裝置16上執(zhí)行的代碼的部分,但是不排除這些模塊或功能塊中的一些或全 部完全或者部分地在專用硬件電路中實現(xiàn)的可能性。[0012]開關47和模式選擇模塊49中的每一個被布置成接收包括多個宏塊MB的輸入視 頻流的實例。模式選擇模塊49被布置成為每個宏塊選擇編碼模式“O”,并且可操作地耦合 到復用器47以便控制它將逆量化器63的輸出傳送至適合于選擇的模式的幀內(nèi)預測模塊41 或者幀間預測模塊43的輸入。模式選擇模塊49也可以被布置成向有關預測模塊41、43指 示選擇的模式“ο”(例如指示4x4分割模式、8x8模式、跳躍模式等等)。然后,幀內(nèi)預測模 塊41或者幀間預測模塊43的輸出繼續(xù)耦合到減法級(_)的輸入,該減法級被布置成在其 另一輸入處接收未編碼的輸入視頻流并且從其未編碼的對等物中減去預測的塊,從而生成 殘差信號。然后,殘差塊被傳送通過其中將其殘差值轉(zhuǎn)換到頻域中的變換(DCT)模塊51,然 后被傳送到其中將變換的值轉(zhuǎn)換成離散量化指標的量化器53。將量化的變換的信號通過逆 量化器63和逆變換模塊61反饋以生成所述塊的預測版本(如解碼器處將看到的)以供選擇 的預測模塊41、43使用。預測模塊41、43中使用的預測的指示、幀間預測模塊43生成的運 動矢量以及如變換和量化模塊51、53所生成的殘差的量化的變換的指標都是用于典型地 經(jīng)由另外的諸如熵編碼器(未示出)之類的無損編碼級包含在編碼的視頻流中的輸出,在所 述無損編碼級中,預測值和變換的量化的指標可以使用本領域中已知的無損編碼技術進一步壓縮。[0013]依照以上所述,編碼表示因此可以包括塊分割信息、預測模式、運動矢量、量化精度等等。最優(yōu)編碼選項取決于視頻內(nèi)容、比特率、早期編碼決策等等。變換系數(shù)的量化精度典型地被選擇成滿足比特率約束。此外,失真應當最小化。[0014]例如,H.264視頻編碼器在選擇預測模式中提供了很大的靈活性[I]。對于亮度分量的幀間預測而言,可以將16x16像素的宏塊表示為一個16x16像素塊或者兩個16x8像素塊或者兩個8x16像素塊或者四個8x8像素塊。此外,可以將8x8塊表示為一個8x8像素塊或者兩個8x4像素塊或者兩個4x8像素塊或者四個4x4像素塊。對于宏塊的每一個允許的分割,嘗試幀間預測。塊的幀間預測通過索引參考幀和運動矢量(從對應參考幀中的參考塊的空間移動)來表示,所述運動矢量典型地以子像素精度估計。對于亮度分量的幀內(nèi)預測而言,存在用于16x16塊的四種可能的模式以及用于4x4塊的九種可能的模式。此外,存在用于色度分量的四種可能的模式。最佳預測模式通過比較幀內(nèi)和幀間預測模式的性能進行選擇。[0015]諸如H.264 AVC [I]的視頻編解碼器的率失真性能在較大的程度上取決于宏塊模式選擇ο的性能。換言之,確定是否使用例如幀內(nèi)模式或幀間模式(根據(jù)先前編碼的幀預測) 按照率失真折衷對宏塊最佳地編碼的過程。從魯棒性的視角來看,幀內(nèi)編碼的宏塊是有益的,因為它們停止了時間誤差傳播(假設使用有約束幀內(nèi)預測,即禁止根據(jù)幀間預測的宏塊進行幀內(nèi)預測)。然而,幀內(nèi)編碼的宏塊與幀間編碼的宏塊相比通常在代價方面更昂貴,并且因此重要的是系統(tǒng)地引入幀內(nèi)編碼的宏塊,使得給定特定比特預算,解碼器處的失真(例如平均失真)最小化。[0016]率失真性能優(yōu)化問題可以根據(jù)在比特率約束R下最小化失真而公式化。拉格朗日優(yōu)化框架經(jīng)常用來解決這個問題。在這里,優(yōu)化準則用公式表示為J = Dfm, ο) — XRim, /)),(I)其中/表不拉格朗日函數(shù),^表不失真度量(模式ο和宏塊》或者宏塊子分割的函數(shù)), 為比特率并且』為限定失真與比特率之間的折衷的參數(shù)。[0017]在本申請中,求解拉格朗日優(yōu)化問題意味著找到最小化拉格朗日函數(shù)/的編碼模式O,其中拉格朗日函數(shù)/至少包括表示失真的項、表示比特率的項以及表示這兩者之間的折衷的因子(“拉格朗日乘子”)。當編碼模式ο朝著更完全或者更佳質(zhì)量的編碼模式變化時,那么失真項D將減小。然而,同時比特率項W將增大,并且在特定點處,取決于』,R的增加將超過D的減小。因此,表達式/將具有某個最小值,并且該最小值發(fā)生的編碼模式O 被認為是最優(yōu)編碼模式。[0018]在這個意義上,比特率或者更確切地說』項將約束置于所述優(yōu)化上,因為該項將最優(yōu)編碼模式從不斷增加的質(zhì)量拉回。找到這種最優(yōu)平衡所在的模式將取決于』,并且因此』可以被認為表示比特率與失真之間的折衷。[0019]拉格朗日優(yōu)化常用在選擇編碼決策的過程中,并且應用于每個幀區(qū)域(例如每個 16x16像素的宏塊)。[0020]失真D可以被量化為原始像素與重構像素之間的差平方和(SSD);并且可以被評估以考慮到所有的處理級,這些處理級包括:預測、變換(從每個塊或宏塊的像素的空域表示到諸如光學頻域表示之類的變換域表示)和量化(將連續(xù)信號的數(shù)字近似轉(zhuǎn)換成更離散的較低粒度的量化水平的過程)。此外,為了計算重構的像素,必須執(zhí)行逆量化、逆變換和逆預測的步驟。通常,比特率項也考慮到對所有需要的參數(shù)編碼,這些參數(shù)包括描述預測和量化變換系數(shù)的參數(shù)[4,5,6]。參數(shù)典型地利用熵編碼器進行編碼,并且在這種情況下, 比特率可以是將由熵編碼器獲得的比特率的估計,或者可以通過實際地運行熵編碼器并且測量每種候選模式的得到的比特率而獲得。熵編碼/解碼是一種無損過程,并且因此不影響失真。[0021]這種過程在這里可以稱為完全復雜度率失真優(yōu)化(或者全RD0) [4,5,6]。[0022]在由Zhang等人[2]公開的一個特定實例中,失真項可以不僅考慮到編解碼器內(nèi)在的源編碼失真,而且考慮到端至端失真,即由于通過信道的分組損失而將經(jīng)歷的失真的概率估計。然而,這對于“完全”復雜度RDO而言不是一個要求。[0023]從上面討論的一切將看出,編碼選項的數(shù)量可能相當高,并且因此評估它們所需的計算負荷可能變成一個限制性因素。給定大量的可能編碼選項,評估考慮到所有處理級 (并且也要求執(zhí)行所有逆處理級)的拉格朗日優(yōu)化準則可能變成一項計算上要求很高的任務。因此,一種可替換的較低復雜度優(yōu)化準則也常用:Jt= U(m,(i)+ λ'(2)其中#為預測失真,并且f為用于描述預測的參數(shù)(例如預測模式、運動矢量)的比特率。R,沒有考慮到殘差系數(shù)的比特率。[0024]預測失真#僅僅考慮到幀內(nèi)或幀間預測之后的失真(或者更精確地說預測之后的殘差),并且沒有考慮到諸如來自空域的變換和量化之類的其他編碼器級(也沒有考慮到其逆)的影響。此外,該簡化的失真度量被量化為原始樣本與預測的樣本之間的絕對差和 (SAD),其與SSD相比需要更少的計算。即:
【權利要求】
1.一種對包括多幀的視頻流編碼的方法,每幀包括多個圖像部分,該方法包括: 對于流出視頻流中要編碼的多個第一圖像部分中的每一個,使用第一過程選擇潛在編碼模式組中的優(yōu)選模式,所述第一過程包括第一圖像部分的失真的估計以及對于第一圖像部分的潛在編碼模式中的每一個對第一圖像部分編碼所需的比特率的度量; 使用對應的選擇的編碼模式對流出流的第一圖像部分中的每一個編碼; 對于視頻流的多個第二圖像部分中的每一個,應用至少包括第二圖像部分的失真的估計的第二過程;以及 在用于第一部分的所述編碼模式的選擇中使用由第二圖像部分得到的第二過程的輸出偏置第一過程。
2.權利要求1的方法,其中第一過程為較低復雜度過程,并且第二過程為較高復雜度過程。
3.權利要求1或2的方法,其中第二圖像部分也是所述流出視頻流的圖像部分,并且該方法包括: 對于流出視頻流中要編碼的所述多個第二圖像部分中的每一個,使用第二過程選擇潛在編碼模式組中的優(yōu)選模式,所述第二過程包括第二圖像部分的失真的估計以及對于第二圖像部分的潛在編碼模式中的每一個對第二圖像部分編碼所需的比特率的度量;以及使用對應的選擇的編碼模式對流出流的第二圖像部分中的每一個編碼。
4.權利要求3的方法,其中所述偏置包括對于第一圖像部分中的每一個將所述潛在編碼模式組限制為針對多個 第二圖像部分選擇的那些模式。
5.權利要求3或4的方法,其中流出視頻流中的第一部分與第二部分之比根據(jù)可用處理資源來選擇。
6.權利要求1的方法,其中第二圖像部分為訓練視頻流的圖像部分,并且在對流出視頻流編碼之前將第二過程應用于訓練階段中。
7.權利要求6的方法,其中所述偏置包括: 在訓練階段中將第二過程和第一過程二者應用到第二圖像部分; 基于該訓練階段,確定表示第一和第二過程的比特率度量和失真估計中的一個或二者的差值的偏置項;以及 當?shù)谝贿^程用來選擇第一圖像部分的編碼模式時將該偏置項引入到第一過程中。
8.權利要求2或者從屬于它的任何權利要求的方法,其中以下至少一個成立: 所述較低復雜度過程在其失真的估計中考慮到預測編碼的影響,但是不考慮量化的影響;而所述較高復雜度過程在其失真的估計中考慮到預測編碼和量化的影響; 所述較低復雜度過程在其失真的估計中考慮到預測編碼的影響,但是不考慮量化之前從空域表示到變換域表示的變換的影響,而所述較高復雜度過程在其失真的估計中考慮到預測編碼、變換和量化的影響; 所述較低復雜度過程不在其比特率的度量中考慮到對殘差信號編碼的成本,而所述較高復雜度過程確實包括考慮到對殘差信號編碼的成本的比特率的度量;以及 所述較低復雜度過程不在其比特率的度量中考慮到熵編碼的影響,而所述較高復雜度過程確實包括考慮到熵編碼的影響的比特率的度量。
9.權利要求2或者從屬于它的任何權利要求的方法,其中所述較高復雜度過程考慮到通過信道的損失的可能影響,而所述較低復雜度過程不考慮。
10.一種包括編碼器的裝置,該編碼器用于對包括多幀的視頻流編碼,每幀包括多個圖像部分,該編碼器被配置成:對于流出視頻流中要編碼的多個第一圖像部分中的每一個,使用第一過程選擇潛在編碼模式組中的優(yōu)選模式,所述第一過程包括第一圖像部分的失真的估計以及對于第一圖像部分的潛在編碼模式中的每一個對第一圖像部分編碼所需的比特率的度量;使用對應的選擇的編碼模式對流出流的第一圖像部分中的每一個編碼;對于視頻流的多個第二圖像部分中的每一個,應用至少包括第二圖像部分的失真的估計的第二過程;以及在用于第一部分的所述編碼模式的選擇中使用由第二圖像部分得到的第二過程的輸出偏置第一過程。
【文檔編號】H04N19/567GK103609122SQ201280031143
【公開日】2014年2月26日 申請日期:2012年6月22日 優(yōu)先權日:2011年6月24日
【發(fā)明者】R.瓦芬, M.尼爾松, S.V.安德森 申請人:斯凱普公司