專利名稱:用于手持設備的編碼的方法
技術領域:
本發(fā)明涉及對圖像序列編碼的方法,其中圖像被劃分成數(shù)據(jù)塊,所述方法以基于預測塊的編碼技術為基礎。
本發(fā)明特別涉及嵌入數(shù)字視頻編碼器的產品,諸如,本地服務器、數(shù)字錄像機、攝像放像機,并且更特別地涉及移動電話或個人數(shù)字助理,所述設備包括嵌入的攝像機,其能夠獲取視頻數(shù)據(jù),并且在發(fā)送視頻數(shù)據(jù)之前對視頻數(shù)據(jù)編碼。
背景技術:
在常規(guī)的視頻編碼器中,存儲器傳送的大部分并因此功耗的大部分來自運動估算。運動估算在于根據(jù)速率-失真準則搜索當前塊和一組若干候選參考塊之間的最佳匹配,當前塊和候選參考塊之間的差形成殘差(residual error)塊。
G.Sullivan,T.Wiegand,IEEE Signal Processing Magazine(IEEE信號處理雜志),第74-90頁,1998年11月的題為“RateDistortion Optimization for Video Compression(用于視頻壓縮的速率失真最優(yōu)化)”的論文描述了計算速率-失真值的一種方法。根據(jù)殘差塊的熵h并且根據(jù)從所述殘差塊中導出的重構誤差mse,計算這個值c,如公式(1)所給出的c=h+λ1*mse(1)其中λ1是加權系數(shù)。
這有助于根據(jù)期望的比特率選擇最佳模式來對當前塊編碼。所選擇的最佳參考塊是將速率-失真值最小化的塊。隨后,殘差塊被熵編碼并與其相關的運動矢量和/或編碼模式一起進行發(fā)送。
但是,這樣的速率-失真值并不是最佳的,特別是在視頻編碼器被嵌入具有有限功率的便攜式設備中的情況下。
發(fā)明內容
本發(fā)明的目的是提出一種編碼方法,其允許減少視頻處理設備即視頻解碼器或視頻編碼器的功耗。
為此,根據(jù)本發(fā)明的視頻編碼方法的特征在于,它包括下列步驟使用預測函數(shù),根據(jù)包含在當前圖像中的當前塊和候選區(qū)域之間的差,計算殘差塊,計算殘差塊的熵,計算所述當前塊和所述候選區(qū)域之間的總誤差,估算用于實施所述預測函數(shù)的視頻處理設備的功耗,基于熵、總誤差和估算的視頻處理設備的功耗,計算速率-失真值,使用一組預測函數(shù),將前面的步驟應用于一組候選區(qū)域,以便根據(jù)速率-失真值來選擇預測函數(shù)。
結果,本發(fā)明能夠在編碼階段從所有的由于考慮預測處理功耗的新的速率-失真值而可用的函數(shù)之中選擇該預測函數(shù),即,最佳編碼模式。換句話說,經典的速率-失真值接收功耗的估算作為第三尺寸,以變成功率-速率-失真值,允許功耗、比特率或帶寬和可視質量之間更好的權衡。
根據(jù)本發(fā)明的第一實施例,速率-失真值通過有利于功率友好的預測函數(shù),考慮用于對相應編碼的圖像序列進行解碼的視頻解碼器的估算的預測函數(shù)的功耗。
根據(jù)本發(fā)明的另一實施例,速率-失真值考慮視頻編碼器為了執(zhí)行預測而需要的功耗。
本發(fā)明也涉及實施所述視頻編碼方法的視頻編碼器。
本發(fā)明涉及手持設備,其包括所述視頻編碼器和用于給所述視頻編碼器供電的電源。
本發(fā)明最后涉及包括程序指令的計算機程序產品,用于在由處理器執(zhí)行所述程序時實施根據(jù)本發(fā)明的視頻編碼方法。
本發(fā)明的這些和其它方面從下面所描述的實施例中將是顯而易見的,并將參考這些實施例進行闡述。
現(xiàn)在,將參考附圖以舉例方式更加詳細地描述本發(fā)明,其中圖1是常規(guī)的視頻編碼器的方框圖,圖2是常規(guī)的視頻解碼器的方框圖,圖3是表示根據(jù)本發(fā)明的編碼方法的方框圖,圖4表示當前塊及其鄰域,從中計算空間預測函數(shù),圖5表示兩個連續(xù)幀中的兩個塊,據(jù)此計算時間預測函數(shù),圖6表示過去一幀中塊的直方圖,從中計算當前配置塊(collocated block)的時間預測函數(shù)。
具體實施例方式
本發(fā)明涉及用于適配編碼處理并且特別地適配預測步驟為視頻編碼器和/或解碼器的功耗的函數(shù)的方法。編碼處理適配為考慮例如所述編碼器和/解碼器的電池電平。
所述方法更特別地專用于手持設備,諸如移動電話或嵌入的照相機,其具有有限的功率,并且必須處理視頻序列的編碼和解碼。
它可以用于MPEG-4或H.264視頻編碼器或任何等效的基于速率-失真的視頻編碼器中。該方法能夠擴展至音頻和靜止圖像編碼/解碼。
本發(fā)明基于以下考慮。讓我們考慮常規(guī)的視頻結構,其包括與專用協(xié)處理器耦合的中央處理器CPU以及外存儲器模塊。多年來,中央處理單元CPU在功耗方面被認為是這三個元件之中需求最大的,這意味著算法的計算復雜度也決定其能耗?,F(xiàn)在,計算負荷和存儲器存取之間的重新劃分被更加平衡。而且,根據(jù)當前的發(fā)展,后者的優(yōu)勢不久就能夠被預見。因此,考慮到這樣的結構,低功率應用要求與當前算法相比顯著減少存儲器存取。而且,這些存取的位置也是重要的,因為存儲器模塊越靠近CPU意味著在存取數(shù)據(jù)時越低的能量損耗。
在圖1所示的常規(guī)視頻編碼器的情況中,使上述元件適配為執(zhí)行離散余弦變換DCT(11)、標量量化Q(12)、可變長度編碼VLC(13)、反量化IQ(14)、反向離散余弦變換IDCT(15)、運動補償MC(16)和運動估算ME(18)。運動補償和運動估算模塊被耦合到外部幀存儲器模塊MEM(17)。
在圖2所示的常規(guī)視頻編碼器的情況中,使上述元件適配為執(zhí)行可變長度編碼VLD(21)、反量化IQ(22)、反向離散余弦變換IDCT(22)、運動補償MC(24)和塊重構REC(25)。運動補償模塊耦合到外部幀存儲器模塊MEM(26)。
功耗方面的瓶頸是在這些視頻結構的不同單元之間的傳送量。本發(fā)明基于大多數(shù)的存儲器傳送來自運動估算和運動補償?shù)挠^察。這些運動操作表示對像素的許多存取,以及對外存儲器模塊的許多存取。搜索范圍越大,則存儲器的大小越大,并因此功率損耗越大。
根據(jù)本發(fā)明,目的是通過也考慮預測處理的功耗在編碼階段從可用的預測函數(shù)中選擇最佳的預測函數(shù)。本發(fā)明提出三種不同的情況,其中使用新的速率-失真準則能夠或在編碼器級上或在解碼器級上或對于這二者增加總的功耗/比特率/可視質量權衡。
圖3是表示根據(jù)本發(fā)明的編碼方法的方框圖。所述方法能夠對圖像序列進行編碼,其中圖像被劃分為數(shù)據(jù)塊。
它包括第一步驟ReseC(33),即,由于使用預測函數(shù)根據(jù)包含在當前圖像中的當前塊和一個候選區(qū)域之間的差來計算殘差塊。
在一組預測函數(shù)之中,選擇該預測函數(shù)。預測函數(shù)被定義為一種方式,以便根據(jù)位于同一幀中或者位于前一幀或未來幀中的其它區(qū)域的像素,預測當前幀中的當前塊,即,被預定為將編碼的塊。
例如,該組的預測函數(shù)例如基于常規(guī)的運動估算。所述常規(guī)的運動估算在于在參考圖像即過去或未來的圖像中搜索候選參考塊,所述塊對應于包含在當前圖像中的當前塊。在被稱為搜索區(qū)域的參考圖像的預定區(qū)域內,搜索所述候選參考塊,即,候選區(qū)域。在MPEG 2標準的示例中,搜索區(qū)域被限于256行用于解碼。對于本領域的技術人員來說,可以根據(jù)計算資源減小搜索區(qū)域的范圍,這將是顯而易見的。
另一預測函數(shù)pf1基于H.264內部預測(Intra Prediction)。對于將編碼的當前塊X中的給定像素x(i,j),從塊X的左側相鄰列A和頂端相鄰行B中計算殘值r(i,j),如圖4所示,在本示例中,A和B形成候選區(qū)域。如下計算殘值r(i,j)r(i,j)=x(i,j)-avg(A,B),其中avg(A,B)是能夠計算分段A和B的平均值的函數(shù)。這個第一預測函數(shù)特別適于均勻(homogeneous)區(qū)域。
另一預測函數(shù)pf2基于H.264內部垂直預測。根據(jù)圖4中給出的記法,如下計算殘值r(i,j)=x(i,j)-b(i)這個空間預測函數(shù)特別適于垂直均勻區(qū)域。
另一預測函數(shù)pf3基于H.264內部水平預測。根據(jù)圖4中給出的記法,如下計算殘值r(i,j)=x(i,j)-a(j)這個空間預測函數(shù)特別適于水平均勻區(qū)域。
若干其他的空間預測也是有可能的。它們都共同只使用A和B分段,或者在X上應用可逆函數(shù),以便是可解碼的。
另一預測函數(shù)pf4基于圖5,其表示在當前幀F(xiàn)(t)中像素x(i,j)的塊X和在緊接前一幀F(xiàn)(t-1)中具有相同位置的像素y(i,j)的相應塊Y,塊Y在這種情況中形成候選區(qū)域。該函數(shù)被稱為“配置時間預測(Collocated Temporal Prediction)”。根據(jù)圖5中給出的記法,如下計算殘值r(i,j)=x(i,j)-y(i,j)這個時間預測函數(shù)特別適于靜態(tài)區(qū)域。
也能使用稱為“配置限制運動估算(Collocated RestrictedMotion Estimation)”的這個預測函數(shù)的擴展,并且對其只在配置塊內執(zhí)行運動估算。
被稱為“時間直方圖預測(Temporal Histogram Prediction)”的另一預測函數(shù)pf5使用在前一幀中配置塊的直方圖。例如,如果h1和h2是直方圖的兩個最大值,如圖6所給出的,則根據(jù)值x(i,j)與值h1和h2的近似程度,如下計算殘值r(i,j)=x(i,j)-h1或者r(i,j)=x(i,j)-h2,
為此,發(fā)送1個比特來將這個選擇通知解碼器。這個時間預測函數(shù)也適于靜態(tài)區(qū)域。
本發(fā)明基于這些不同的預測函數(shù)具有不同的功耗的事實。例如,時間預測函數(shù)比空間預測函數(shù)更加消耗功率,這是因為它們需要大量的對包含參考幀的外存儲器模塊的存取。
應當注意,這些預測函數(shù)作為示例進行闡述,并且能夠使用其它的預測函數(shù)而不脫離本發(fā)明的范圍。還應注意,能夠將并行預測函數(shù)應用于具有不同大小的數(shù)據(jù)塊中,例如,諸如16×16、16×8、8×16、8×8、8×4、4×8或4×4像素。
該編碼方法包括第二步驟HC(34),即計算殘差塊的熵h。所述步驟能夠確定殘差塊的熵編碼所需的比特的最低數(shù)量。根據(jù)本領域技術人員已知的原理,使用下面的公式計算熵hh=-Σi=0Ipilog(pi)]]>其中Pi是像素塊中出現(xiàn)的數(shù)據(jù)值的概率,并且如果像素值是8比特,則I一般等于255。
該編碼方法包括第三步驟MetC(32),即計算當前塊和候選區(qū)域之間的總誤差。
計算總誤差的步驟基于例如均方誤差MSE的計算,MSE的表達式為MSE=1k1Σi=0k-1Σj=0l-1|r(i,j)|2]]>其中k×1是當前塊的大小。
作為另一示例,該計算步驟基于平均絕對誤差MAE的計算,MAE的表達式為MAE=1k1Σi=0k-1Σj=0l-1|r(i,j)|]]>
對于本領域的技術人員來說,可以基于當前塊的值和候選區(qū)域的值,利用其它不同的函數(shù)計算總誤差,這將是顯而易見的。
該編碼方法包括第四步驟PowC(37),即估算適用于實施預測函數(shù)的視頻處理設備即視頻編碼器或解碼器的功耗。作為以下參數(shù)的函數(shù)來執(zhí)行估算。
該估算步驟能夠根據(jù)一組參數(shù)SoP(36)來估算視頻處理設備的功耗。這些功耗參數(shù)當然是預測函數(shù)的特征,也就是說,預測函數(shù)的計算參數(shù)和轉移參數(shù)。計算參數(shù)例如為-運算量(加法,乘法,等等);-條件轉移和基本函數(shù)的量,諸如絕對值、最小值、最大值等的計算。
轉移參數(shù)例如為-存儲器要求(類型,大小,等等);-存儲器傳送的量。
這些功耗參數(shù)可選擇地是平臺信息,即,視頻處理設備的技術特征。這些技術特征例如為-處理器的特征,尤其是其工作頻率,-高速緩沖存儲器的大小,-嵌入的存儲器的大小,-外存儲器的大小,-基本運算(門)的功耗,-用于不同存儲器和處理器之間交換的功耗。
這些功耗參數(shù)可選擇地是電源信息,例如,諸如視頻處理設備的當前電池電平。
功耗估算是一個錯綜復雜的問題。只在芯片存在時,才獲得準確的測量。然而,基于軟件的測量是可能的,但是以較低精確度為代價。
利用下面給出的相對加權,本發(fā)明能夠計算算法的關鍵部分的功耗,作為存儲器存取數(shù)量、存儲器的位置以及計算成本的函數(shù)
確定這些加權,假定標準結構(CPU+存儲器+協(xié)處理器),如將在隨后幾年內繼續(xù)有效的,也就是說,與用于計算的有效負載相比,對于存儲器存取,具有高的有效負載。
該編碼方法包括第五步驟PRDC(35),即,根據(jù)殘差塊的熵、總誤差以及估算的視頻處理設備的功耗,計算速率-失真值。
根據(jù)本發(fā)明的第一實施例,估算步驟能夠為該組預測函數(shù)估算視頻解碼器的功耗。
然后,在編碼器電平上使用功率-速率-失真值,以便通過有助于功率友好的預測函數(shù)來減少解碼器的功耗。
失真值通常取決于殘留數(shù)據(jù)的熵h以及當前塊和候選區(qū)域之間的重構誤差“ove”。也考慮對當前預測函數(shù)進行解碼的功耗,以便在解碼器側上增加總的功率失真/比特率權衡。因而,顯著的功率增益能夠補償輕微的編碼效率損失。如下計算根據(jù)本發(fā)明的失真值cc=h+λ1*ove+λ2*powerdecoder(parameters)(2)其中λ1和λ2是權數(shù)因數(shù),powerdecoder()表示解碼器上執(zhí)行預測所需的功耗,并且參數(shù)(parameters)是允許功耗估算的元素。這些參數(shù)上面已進行了描述。
根據(jù)通信的類型和協(xié)議,對于編碼器,可利用有關解碼器的或多或少的信息。在公式(2)中,功率估算的結果能夠來自于利用平臺信息的預測函數(shù)特征的加權。這些參數(shù)的可用性使得解碼功率估算或多或少地精確。
根據(jù)這個第一實施例的變型,接收設備能夠在通信的初始化期間在發(fā)射設備和所述接收設備之間發(fā)送其主要功耗特征,即,上面稱為平臺信息,發(fā)射設備的編碼器可以直接使用該平臺信息來在公式(2)中更加精確地估算接收設備的解碼器的功耗。
可選擇地,如果這個信息不可用,則編碼器可以進行標準解碼平臺的假設,例如利用標準ARM9處理器,利用預定量的嵌入式RAM和外存儲器以及通常的傳送成本。
此外,如果接收設備能夠在規(guī)則時刻將其電池電平發(fā)送給發(fā)射/編碼設備,則后者可直接對λ2起作用,以增加或者降低解碼器所用的功率的重要性。例如,如果電池電平降低,則增加λ2,以加強選擇預測函數(shù)的功耗的重要性。因此,高消耗預測函數(shù)受到懲罰。
根據(jù)本發(fā)明的第二實施例,估算步驟能夠為該組預測函數(shù)估算視頻編碼器的功耗。
在編碼器上,如果計算所有的并行預測函數(shù),則不可能節(jié)省編碼功耗。然而,對評估的預測函數(shù)的數(shù)量進行選擇允許降低解碼器電平的功耗。
根據(jù)本發(fā)明,該選擇取決于通過學習階段計算的功率-速率-失真值。該學習階段在于利用所有的預測函數(shù)測試一些圖像。所測試的圖像可以是圖像序列中的第一圖像或者恰好在場景剪輯(scene cut)之后的一些圖像。確實,在兩個場景剪輯之間,假設已知序列具有穩(wěn)定的時間和空間特征。因此,學習階段可選擇最適當?shù)念A測函數(shù),以避免系統(tǒng)地測試所有的編碼器上可用的預測函數(shù)。這個選擇基于如下給出的所建議的功率-速率-失真值c=h+λ1*mse+λ3*powerencoder(parameters)(3)其中λ3是與λ2具有相同作用的權重因數(shù),而powerencoder( )表示編碼器上執(zhí)行預測所要求的功耗。這些參數(shù)(parameters)是上面已描述過的。平臺信息當然是可用的,并且只在需要應用功率可量測性時才需要電池電平。
如公式4中所建議的,有可能合并這兩種方案。在這種情況中,編碼器和解碼器設備聯(lián)合工作,以最優(yōu)化銜接的功率-質量權衡。
c=h+λ1*mse+λ2*powerdecoder(parameters)+λ3*powerencoder(parameters) (4)例如,如果具有高電池電平的移動電話正在對圖像序列進行編碼,并且在將編碼的序列發(fā)送到具有低電池電平的第二移動電話。結果,第二移動電話的解碼器需要低功耗預測函數(shù)。在此情況下,加權因數(shù)λ2為高,而加權因數(shù)λ3為低。所做的一切是懲罰高功耗預測函數(shù),并且然后考慮第二移動電話的低電池電平。
該編碼方法包括第六步驟,即使用一組預測函數(shù)將先前的步驟運用到一組候選區(qū)域SoC(31),以便從功率-速率-失真值中選擇最佳預測函數(shù)和相應的最佳候選區(qū)域。為此,將所評估的預測函數(shù)的失真值存儲在存儲器RES(38),并選擇最佳預測即使功率-速率-失真值最小化的預測(函數(shù))用于對當前塊編碼。
下面權利要求中的任何參考符號都不應認為是限制該權利要求。顯然,對動詞“包括”及其變化形式的使用并不排除除了任何權利要求中所限定之外的任何其它步驟或元素的存在。在元素或步驟之前的單詞“一(個)”并不排除多個這樣的元素或步驟的存在。
權利要求
1.一種對圖像序列編碼的方法,圖像被劃分成數(shù)據(jù)塊,所述編碼方法包括以下步驟使用預測函數(shù),根據(jù)包含在當前圖像中的當前塊和候選區(qū)域之間的差,計算殘差塊,計算殘差塊的熵,計算所述當前塊和所述候選區(qū)域之間的總誤差,估算適用于實施所述預測函數(shù)的視頻處理設備的功耗,基于熵、總誤差和估算的視頻處理設備的功耗,計算速率-失真值,使用一組預測函數(shù),將前面的步驟應用于一組候選區(qū)域,以便根據(jù)速率-失真值來選擇預測函數(shù)。
2.權利要求1所述的視頻編碼方法,其中對于該組預測函數(shù),估算步驟能夠使用視頻解碼器的功耗。
3.權利要求1所述的視頻編碼方法,其中對于給定數(shù)量的圖像,估算步驟能夠計算該組中不同預測函數(shù)的功率-速率-失真值,并且對于隨后圖像的編碼,選擇使功率-速率-失真值最小化的預測函數(shù)。
4.權利要求1所述的視頻編碼方法,其中估算步驟能夠根據(jù)預測函數(shù)的計算參數(shù)和轉移參數(shù)來估算視頻處理設備的功耗。
5.權利要求4所述的視頻編碼方法,其中估算步驟能夠根據(jù)視頻處理設備的技術特征來估算視頻處理設備的功耗。
6.權利要求1所述的視頻編碼方法,其中速率-失真值取決于所估算的功耗和權重因數(shù)的乘積,所述權重因數(shù)取決于視頻處理設備的電源電平。
7.一種視頻編碼器,用于對圖像序列進行編碼,圖像被劃分成數(shù)據(jù)塊,所述視頻編碼器包括用于實施權利要求1所述的視頻編碼方法的步驟的裝置。
8.一種手持設備,包括權利要求7所述的視頻編碼器以及用于為所述視頻編碼器供電的電源。
9.一種計算機程序產品,包括程序指令,用于在由處理器執(zhí)行所述程序時實施權利要求1所述的視頻編碼方法。
全文摘要
本發(fā)明涉及對圖像序列進行編碼的方法,其中圖像被劃分成數(shù)據(jù)塊,所述編碼方法包括以下步驟使用預測函數(shù),根據(jù)包含在當前圖像中的當前塊和候選區(qū)域之間的差,計算殘差塊;計算殘差塊的熵;計算所述當前塊和所述候選區(qū)域之間的總誤差;估算適用于實施所述預測函數(shù)的視頻處理設備的功耗;基于熵、總誤差和估算的視頻處理設備的功耗,計算速率-失真值;使用一組預測函數(shù),將前面的步驟應用于一組候選區(qū)域,以便根據(jù)速率-失真值來選擇預測函數(shù)。
文檔編號H04N7/50GK1813478SQ200480017965
公開日2006年8月2日 申請日期2004年6月22日 優(yōu)先權日2003年6月27日
發(fā)明者J·榮格, A·布格 申請人:皇家飛利浦電子股份有限公司