專利名稱:用以確定對視頻塊是否進(jìn)行幀內(nèi)編碼的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻壓縮領(lǐng)域,具體涉及確定是否對視頻塊編碼或是對當(dāng)前視頻塊與先前存儲的視頻塊之差值進(jìn)行編碼。
眾所周知,視頻系統(tǒng)包括多個通信裝置和通信信道,通信信道為通信裝置提供通信媒體。例如,通信信道可以是有線連接,或是射頻載波。為了提高視頻系統(tǒng)的效率,通常對需要傳送的視頻進(jìn)行數(shù)字壓縮。數(shù)字壓縮可以減少代表視頻所需的比特數(shù)目,同時又保持該視頻的主觀感覺質(zhì)量。減少比特數(shù)目能夠更有效地應(yīng)用信道帶寬和減小存儲量的需求。為了實現(xiàn)數(shù)字視頻壓縮,每個通信裝置可包括一個編碼器和一個解碼器。編碼器允許視頻在經(jīng)由通信信道傳輸之前由通信裝置先將它進(jìn)行壓縮。解碼器能使通信裝置從通信信道上接收已壓縮的視頻并將它回復(fù)成為可視的視頻。能使用數(shù)字視頻壓縮的通信裝置包括高清晰度電視(HDTV)的發(fā)射機(jī)和接收機(jī)、有線電視(CATV)的發(fā)射機(jī)和接收機(jī)、視頻電話機(jī)、計算機(jī)以及便攜無線電設(shè)備。
業(yè)已為數(shù)字視頻壓縮制定了一些標(biāo)準(zhǔn),包括國際電信聯(lián)盟(ITU)-T建議(Rec.)H.261、國際標(biāo)準(zhǔn)化組織/國示電工技術(shù)委員會(ISO/IEC)11172-2國際標(biāo)準(zhǔn)(MPEG-1)和即將出版的ISO/IEC13818-2標(biāo)準(zhǔn)(MPEG-2)。在這些標(biāo)準(zhǔn)中,借助于挖掘視頻內(nèi)的空間冗余度和時間冗余度以及利用人眼的主觀感覺質(zhì)量來求得高效率地表示一個序列的視頻幀。時間冗余度的挖掘是依靠對一個視頻幀序列的運(yùn)動進(jìn)行估值。
一種用以在一個視頻幀序列內(nèi)進(jìn)行運(yùn)動估值的公知的方法是塊匹配算法。將視頻幀序列的每一幀劃分成許多像素塊。塊匹配算法將一幀內(nèi)要編碼的一個當(dāng)前像素塊與該視頻幀序列中一個先前幀或未來幀內(nèi)的一些同樣大小的像素塊相比較。一旦在先前已編碼的一個幀中找到一個匹配的像素塊,便須決定是否獨(dú)立地對當(dāng)前像素塊進(jìn)行編碼,或是對匹配塊的位置以及當(dāng)前塊與匹配塊之間的任何差值進(jìn)行編碼。這通常稱為幀內(nèi)/非幀內(nèi)(intra/non-intra)決定如果當(dāng)前塊獨(dú)立地被編碼,則選擇幀內(nèi)編碼。如果是匹配塊位置和當(dāng)前塊與匹配塊之差都被編碼,則選擇非幀內(nèi)編碼。只有以位置和任何的差信息進(jìn)行編碼時,才提供出更有效的編碼方法。
幀內(nèi)/非幀內(nèi)編碼決定試圖確定對當(dāng)前塊進(jìn)行編碼還是對當(dāng)前塊與匹配塊之差進(jìn)行編碼將是更為有效的。因在幀內(nèi)/非幀內(nèi)編碼決定之外還有若干步驟會實際決定比特數(shù)目亦即決定編碼效率,故這種決定是復(fù)雜的。為了最精確地預(yù)測哪種編碼方法最有效,對幀內(nèi)編碼塊和非幀內(nèi)編碼塊兩者都要作出編碼,并對得到的比特數(shù)目進(jìn)行比較。然而,這種做法需要雙倍的硬件來同時實施兩種編碼方式,這將是不實際的。
用以確定是幀內(nèi)編碼或是非幀內(nèi)編碼的另一種方法是計算當(dāng)前塊中的每個像素,計算當(dāng)前塊內(nèi)平均像素值與每個像素值之差的絕對值,并對這些絕對值求和。該和值稱為當(dāng)前塊的絕對差值之和(SOAD)。類似地,計算匹配塊中每個像素與當(dāng)前塊中每個像素之差的絕對值總和。這個總和稱為差值塊的絕對差值之和(SOAD)。如果差值塊的SOAD小于或等于某個一定的閾值,則選擇非幀內(nèi)編碼。否則,如果差值塊的SOAD大于這個閾值并大于當(dāng)前塊的SOAD,則選擇幀內(nèi)編碼。當(dāng)前塊的SOAD計算要求對于16像素乘以16像素(16×16)的視頻塊約1024次運(yùn)算。對于每幀396個像素塊和每秒30幀的普通視頻幀序列,就當(dāng)前塊單獨(dú)計算SOAD需每秒1200萬次以上的運(yùn)算。這個代價是很高的。然而,如果不對進(jìn)行幀內(nèi)編碼或是非幀內(nèi)編碼作出仔細(xì)的決定,則視頻質(zhì)量會有損失。
據(jù)此,現(xiàn)在需要減少為了確定幀內(nèi)編碼還是非幀內(nèi)編碼所需的運(yùn)算次數(shù)而仍能提供出足夠的視頻質(zhì)量。
圖1示出按照本發(fā)明的視頻壓縮系統(tǒng),它確定視頻塊進(jìn)行幀內(nèi)編碼還是非幀內(nèi)編碼。
圖2示出一個視頻源例子,該視頻源作為按照本發(fā)明的視頻壓縮系統(tǒng)的輸入。
圖3示出按照本發(fā)明的用以確定對一個視頻塊是幀內(nèi)編碼還是非幀內(nèi)編碼的流程圖。
圖4示出按照本發(fā)明的用以確定一個視頻塊是幀內(nèi)編碼還是非幀內(nèi)編碼的決定曲線。
本發(fā)明提供用以通過確定是對一個輸入視頻幀的當(dāng)前視頻塊編碼還是對當(dāng)前視頻塊與先前存儲的視頻幀中最佳匹配視頻塊之間的差值進(jìn)行編碼、而進(jìn)行視頻壓縮的一種有效的方法。這是通過將當(dāng)前視頻塊劃分成一組預(yù)定的子塊來實現(xiàn)的。然后,對每一個子塊計算平均像素值。利用每個子塊的平均像素值和實際像素值來確定一個子塊的偏差。然后,根據(jù)該子塊偏差計算當(dāng)前視頻塊偏差。再將當(dāng)前視頻塊像素與最佳匹配視頻塊像素相比較,以計算一個偏差誤差。對該偏差誤差與當(dāng)前塊偏差相比較,以確定是對當(dāng)前視頻塊編碼還是對當(dāng)前視頻塊與最佳匹配視頻塊之間的差值編碼。
參考圖1至圖4來較全面地說明本發(fā)明。圖1示出一個視頻壓縮系統(tǒng)100,按照本發(fā)明,確定一個視頻塊進(jìn)行幀內(nèi)編碼或是非幀內(nèi)編碼。由視頻壓縮系統(tǒng)100接收一個視頻源111。運(yùn)動估值器110為視頻源111的每一個當(dāng)前視頻塊搜索保持有一個或多個參考圖像的前一幀存儲單元108,以尋找出一個最佳的匹配視頻塊。用以確定最佳匹配視頻塊的一種優(yōu)選方法在案號為CR0005M的共同未決的美國專利申請中公開了,它已轉(zhuǎn)讓給本申請的同一受讓人。運(yùn)動估值器110產(chǎn)生出一個運(yùn)動矢量(MV),以表明相對于當(dāng)前視頻塊而言的最佳匹配視頻塊的位置。運(yùn)動補(bǔ)償器109利用MV從前一幀存儲單元108中抽取出最佳的匹配視頻塊。然后,利用減法器101從當(dāng)前視頻塊中減去最佳匹配視頻塊,產(chǎn)生一個剩余量視頻塊。按照這里即將說明的本發(fā)明的原理,幀內(nèi)/非幀內(nèi)編碼確定器113在幀內(nèi)編碼與非幀內(nèi)編碼之間作出選擇。如果選擇幀內(nèi)編碼,則當(dāng)前視頻塊送到離散余弦變換器(DCT)102進(jìn)行編碼,否則將剩余量視頻塊送到DCT102進(jìn)行編碼。然后,DCT102將它接收到的視頻塊的空間域數(shù)值變換成為頻率域數(shù)值。再后,由量化器103對此頻率域數(shù)值進(jìn)行定標(biāo)和截尾;這在壓縮系統(tǒng)100中引入些量化誤差。容許的量化誤差值由速率控制器114進(jìn)行控制,速率控制器114按照本發(fā)明也參與幀內(nèi)/非幀內(nèi)編碼確定器的計算。從量化器103輸出的已量化數(shù)值由可變長度編碼器(VLC)104高效、無損地進(jìn)行編碼。VLC104的輸出便是已壓縮的視頻112,可以將它存儲起來或者傳輸?shù)揭粋€解壓縮系統(tǒng)去。由逆量化器105、逆DCT106、加法器107、前一幀存儲單元108和運(yùn)動補(bǔ)償器109構(gòu)成的一個反饋環(huán)路重建解壓縮系統(tǒng)將要重建的相同的畫面,并將該畫面存儲在前一幀存儲單元108內(nèi)。逆量化器105和后隨的逆DCT106重建視頻塊的空間域數(shù)值,但其中含有由量化器103引入的誤差。如果幀內(nèi)/非幀內(nèi)編碼確定器113選擇采用非幀內(nèi)編碼,則由加法器107將運(yùn)動補(bǔ)償器109來的最佳匹配視頻塊加到逆DCT106的輸出上。否則,由加法器107將零值加到逆DCT106的輸出上。然后,將加法器107的輸出存儲入前一幀存儲單元108內(nèi)。該視頻壓縮系統(tǒng)100可以利用執(zhí)行一個或多個數(shù)字信號處理器功能或者通用微處理器功能的軟件來實施。
圖2示出一個視頻源111的例子。該視頻源111由一系列視頻幀200構(gòu)成。每個視頻幀200由許多二維陣列的像素元202組成。視頻幀200的普通大小是水平方向352個像素、垂直方向240個像素,這稱為標(biāo)準(zhǔn)圖像格式(SIF),或者是352×288像素,稱為公共交換格式(CIF),或者是176×144像素,稱為四分之一CIF(QCIF)。視頻幀通常間隔地以1/24、1/25或1/29.97秒的時間重復(fù)。每個視頻幀200可以分成一個個區(qū)域,每個區(qū)域稱為一個視頻塊201。在H.261、MPEG-1和MPEG-2標(biāo)準(zhǔn)中,視頻塊201稱為宏塊,由16×16陣列的像素構(gòu)成。
圖3示出由幀內(nèi)/非幀內(nèi)編碼確定器113使用的一個流程圖,用來決定是對當(dāng)前視頻塊編碼還是對當(dāng)前視頻塊與最佳匹配視頻塊之間的差值編碼。首先,在步驟300從一個輸入的視頻源中接收一個當(dāng)前視頻塊。與先有技術(shù)相對照,在步驟301將該當(dāng)前視頻塊劃分成一組預(yù)定的子塊。在應(yīng)用一個宏塊或即一個16×16像素視頻塊的地方,優(yōu)選子塊數(shù)目為四個,每個子塊包含8×8個像素。
在步驟302,計算每個子塊的平均像素值。將子塊內(nèi)所有個別的像素值加起來、再除以該子塊內(nèi)總的像素數(shù)目來確定該平均像素值。然后,在步驟303,根據(jù)子塊的平均像素值和個別像素值計算子塊偏差。計算子塊偏差的優(yōu)選計算法是計算絕對的差值之和(SOAD)。將子塊的個別像素值與子塊的平均像素值之間諸差值的絕對值相加以確定SOAD。計算子塊偏差的另一種計算法是對平均像素值與個別像素值之間的諸差值分別求平方,再得出總和值。這種計算稱為均方差算法。
在步驟310,將子塊偏差最好傳送到速率控制器114,以用于速率控制。速率控制器114使用此子塊偏差在一個子塊內(nèi)作為空間活動性的一個量度(measure)。速率控制器114利用從幀內(nèi)/非幀內(nèi)編碼確定器113來的子塊偏差,不必須再計算空間活動性量度。根據(jù)空間活動性和其它因素,由量化器103所采用的量化等級可以確定出來。
在步驟303,計算每個子塊的子塊偏差后,在步驟304再據(jù)此計算當(dāng)前視頻塊偏差。該當(dāng)前視頻塊偏差是子塊偏差的函數(shù),最好是諸多子塊偏差之和。
在步驟305,應(yīng)用當(dāng)前視頻塊和最佳匹配視頻塊確定偏差誤差。該偏差誤差應(yīng)與子塊偏差具有相同的量級。如果SOAD被應(yīng)用來確定子塊偏差,則偏差誤差的計算應(yīng)是每個當(dāng)前視頻塊像素與最佳匹配視頻塊中相應(yīng)位置像素之間諸差值之絕對值的總和。類似地,如果子塊偏差的的計算是平均像素值與各別像素值之間諸多差值的平方和,則偏差誤差的計算應(yīng)是當(dāng)前視頻塊中每個像素與最佳匹配視頻塊中相應(yīng)的每個像素之間諸多差值的平方和。與當(dāng)前視頻塊的偏差不同,偏差誤差的計算與當(dāng)前視頻塊是否劃分成子塊無關(guān),計算所產(chǎn)生的結(jié)果是一樣的。
在步驟306,對當(dāng)前視頻塊偏差與偏差誤差相比較。在步驟307判定比較結(jié)果是否為有利。如果比較結(jié)果有利,則在步驟309隨后對當(dāng)前視頻塊與最佳匹配視頻塊之間的差值進(jìn)行編碼。如果比較結(jié)果不利,則在步驟308對當(dāng)前視頻塊進(jìn)行編碼。關(guān)于比較結(jié)果是有利(是)或是不利(否)的判定,下面參考圖4進(jìn)行討論。
圖4示出優(yōu)選的判定曲線,用以對步驟306偏差誤差與當(dāng)前視頻塊偏差的比較結(jié)果判定“是”或“否”。水平軸為偏差誤差402,垂直軸為當(dāng)前視頻塊偏差401。如曲線404所示,如果偏差誤差大于當(dāng)前視頻塊偏差并大于偏差誤差閾值403,則運(yùn)動估值器110可得知是差劣的最佳匹配視頻塊,它認(rèn)定比較結(jié)果為“否”。相反,如果偏差誤差等于或小于當(dāng)前視頻塊偏差或者小于偏差誤差閾值403,則運(yùn)動估值器110可得知是良好的最佳匹配視頻塊,并認(rèn)定比較結(jié)果為“是”。如果應(yīng)用SOAD來計算當(dāng)前視頻塊偏差和偏差誤差,則偏差誤差閾值403的優(yōu)選值為2048。
應(yīng)用本發(fā)明可作出一個有效的幀內(nèi)/非幀內(nèi)編碼決定。因速率控制器114和幀內(nèi)/非幀內(nèi)編碼確定器113可以共同進(jìn)行子塊偏差計算,故先有技術(shù)中應(yīng)用的1024次運(yùn)算來計算整個視頻塊的SOAD,現(xiàn)在可降低到四個加法運(yùn)算。這在視頻壓縮系統(tǒng)100的計算中是一個顯著的節(jié)省。
權(quán)利要求
1.一種用以在視頻編碼器中對輸入的視頻幀確定是對輸入視頻幀的當(dāng)前視頻塊進(jìn)行編碼還是對當(dāng)前視頻塊與先前存儲的視頻幀內(nèi)最佳的匹配視頻塊之間的差值進(jìn)行編碼的方法,其特征在于,該方法包括以下步驟(a)對于當(dāng)前視頻塊,將該當(dāng)前視頻塊劃分成一組預(yù)定的子塊;(b)計算該預(yù)定分組的諸多子塊中的每一個子塊的平均像素值;(c)對于該預(yù)定分組的諸多子塊中的每一個子塊,根據(jù)該子塊的平均像素值的和個別像素值計算出一個子塊偏差;(d)對于該當(dāng)前視頻塊,根據(jù)預(yù)定分組的諸多子塊的每一個子塊的子塊偏差,計算一個當(dāng)前視頻塊偏差;(e)確定當(dāng)前視頻塊與最佳匹配視頻塊之間的偏差誤差;(f)當(dāng)將當(dāng)前視頻塊偏差與偏差誤差相比較而結(jié)果為不利時,對當(dāng)前視頻塊進(jìn)行編碼;(g)當(dāng)將當(dāng)前視頻塊偏差與偏差誤差進(jìn)行比較而結(jié)果為有利時,對當(dāng)前視頻塊與最佳匹配視頻塊之間的差值進(jìn)行編碼。
2.權(quán)利要求1的方法,其特征在于,步驟(a)中還包括將預(yù)定分組的子塊規(guī)定為四個子塊。
3.權(quán)利要求1的方法,其特征在于,至少還有下面a和,b中的一個(a)步驟(c)還包括把子塊偏差用于速率控制;(b)步驟(c)還包括把子塊偏差用于控制量化。
4.權(quán)利要求1的方法,其特征在于,步驟(c)中還包括計算子塊偏差,它是該子塊的平均像素值與個別像素值之間諸多差值的絕對值的總和。
5.權(quán)利要求1的方法,其特征在于,步驟(c)還包括計算子塊偏差,它是該子塊的平均像素值與個別像素值之間的均方差值。
6.權(quán)利要求1的方法,其特征在于,步驟(d)還包括計算當(dāng)前視頻塊偏差,它是預(yù)定分組的諸多子塊中每一子塊的子塊偏差的總和。
7.權(quán)利要求1的方法,其特征在于,步驟(f)還包括對于不利的比較結(jié)果定義為一個差劣的最佳匹配視頻塊。
8.權(quán)利要求1的方法,其特征在于,步驟(g)還包括對于有利的比較結(jié)果定義為是一個良好的最佳匹配視頻塊。
9.一種壓縮視頻的方法,其特征在于,該方法包括以下步驟(a)接收一個含有多個視頻塊的視頻幀;對于多個視頻塊的每一個視頻塊(b)從先前存儲的視頻內(nèi)每個視頻塊與多個視頻塊之間的比較中,定義出一個最佳匹配視頻塊;(c)將每個視頻塊劃分成一組預(yù)定的子塊;(d)對于該預(yù)定分組的諸子塊中的每一個子塊,計算出一個平均像素值;(e)對于該預(yù)定分組的諸子塊中的每一個子塊,根據(jù)該子塊的平均像素值和各別像素值計算出子塊偏差;(f)根據(jù)預(yù)定分組的諸子塊中每一個子塊的子塊偏差,計算當(dāng)前視頻塊偏差;(g)確定每個視頻塊與最佳匹配視頻塊之間的偏差誤差;(h)當(dāng)將當(dāng)前視頻塊偏差與偏差誤差相比較而結(jié)果為不利時,對每個視頻塊進(jìn)行編碼;(i)當(dāng)將當(dāng)前視頻塊偏差與偏差誤差相比較而結(jié)果為有利時,對每個視頻塊與最佳匹配視頻塊之間的差值進(jìn)行編碼。
10.一種視頻壓縮系統(tǒng),其特征在于,包括一個運(yùn)動估值器,它接收當(dāng)前視頻塊,并將它與先前存儲的多個視頻塊相比較,以產(chǎn)生出一個最佳匹配視頻塊;一個幀內(nèi)/非幀內(nèi)編碼確定器,在運(yùn)行中與運(yùn)動估值器相連接,它接收當(dāng)前視頻塊和最佳匹配視頻塊,并判定是對當(dāng)前視頻塊進(jìn)行編碼還是對最佳匹配視頻塊與當(dāng)前視頻塊之間的差值進(jìn)行編碼;該幀內(nèi)/非幀內(nèi)編碼確定器的工作是(a)將當(dāng)前視頻塊劃分成一組預(yù)定的子塊;(b)對預(yù)定分組的諸多子塊的每一個子塊計算出平均像素值;(c)根據(jù)預(yù)定分組的諸多子塊的每一個子塊的平均像素值和個別像素值,計算子塊偏差;(d)根據(jù)預(yù)定分組的諸多子塊的每一個子塊的子塊偏差,計算當(dāng)前視頻塊偏差;(e)確定出當(dāng)前視頻塊與最佳匹配視頻塊之間的偏差誤差;(f)將當(dāng)前視頻塊偏差與偏差誤差相比較,以產(chǎn)生一個比較結(jié)果;(g)當(dāng)比較結(jié)果為不利時,決定對當(dāng)前視頻塊進(jìn)行編碼;(h)當(dāng)比較結(jié)果為有利時,決定對當(dāng)前視頻塊與最佳匹配視頻塊之間的差值進(jìn)行編碼。
全文摘要
一個視頻壓縮系統(tǒng)(100)中確定是對輸入視頻幀的當(dāng)前視頻塊進(jìn)行編碼還是對輸入視頻幀的當(dāng)前視頻塊與先前存儲的視頻幀最佳的匹配視頻塊之差進(jìn)行編碼。首先(301)將當(dāng)前視頻塊分成預(yù)定個數(shù)的子塊。再(302)對每一子塊計算平均像素值,并結(jié)合子塊個別像素值來確定子塊偏差(303)。利用子塊偏差計算當(dāng)前視頻塊偏差(303)。再根據(jù)當(dāng)前塊像素值和匹配塊像素值計算出偏差誤差,并用當(dāng)前塊偏差與之比較(305)。比較結(jié)果有利時采用對當(dāng)前與最佳匹配塊之差值編碼,比較結(jié)果不利時采用對當(dāng)前視頻塊編碼。
文檔編號H04N7/26GK1128099SQ95190358
公開日1996年7月31日 申請日期1995年3月27日 優(yōu)先權(quán)日1994年4月29日
發(fā)明者切昂·奧耶昂, 凱文·約瑟芬·奧康奈爾, 史蒂芬·諾曼·萊文 申請人:摩托羅拉公司