專利名稱:一種視頻編碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域的會(huì)議電視領(lǐng)域,具體地說(shuō),是一種視頻編碼方法。
背景技術(shù):
隨著多媒體技術(shù)的發(fā)展,特別是基于遠(yuǎn)程視音頻通信的會(huì)議電視的應(yīng)用不斷擴(kuò)大,在通信過(guò)程中對(duì)視頻信號(hào)如何實(shí)現(xiàn)有效地編碼以保證通信的實(shí)時(shí)性、完整性便顯得越來(lái)越重要。
現(xiàn)有視頻壓縮國(guó)際標(biāo)準(zhǔn)H.261、H.263和MPEG1、MPEG2、MPEG4都采用基于塊運(yùn)動(dòng)補(bǔ)償(Motion compensation,簡(jiǎn)稱MC)和離散數(shù)字余弦變換(Digitalcosine transform,簡(jiǎn)稱DCT)技術(shù)的混合壓縮方法,都是通過(guò)去除時(shí)間和空間冗余性來(lái)完成對(duì)視頻信號(hào)的壓縮。
但由于DCT頻譜沒有局部特性等原因,所以塊變換和編碼技術(shù)所固有的方塊效應(yīng)、蚊子噪聲等缺點(diǎn)往往不令人滿意;另外,在抗誤碼方面也存在不便處理的問(wèn)題。為此,業(yè)界便開始采用具有變換頻譜局部特性、多分辨率特性等優(yōu)點(diǎn)的小波變換技術(shù)來(lái)壓縮視頻信號(hào)。在現(xiàn)有技術(shù)中,主要有如下三類技術(shù)方案一、運(yùn)動(dòng)估計(jì)—預(yù)測(cè)差值圖像—小波變換—編碼;二、小波變換—運(yùn)動(dòng)估計(jì)—預(yù)測(cè)差值圖像—編碼;三、3D小波變換,即空間域2D小波變換+時(shí)間方向1D小波變換。
因?yàn)榉桨溉哂休^大的時(shí)延,所以在實(shí)時(shí)圖像通信領(lǐng)域可行的方案為前兩種。方案一的技術(shù)與H.261、H.263及MPEG標(biāo)準(zhǔn)中的技術(shù)類似,主要區(qū)別在于以離散數(shù)字小波變換(Digital wavelet transform,簡(jiǎn)稱DWT)取代DCT。例如,專利號(hào)為US5764805,名稱為“Low bit rate video encoder using overlappingblock motion compensation and zerotree wavelet coding”的美國(guó)專利就公開了該技術(shù),該專利采用重疊塊運(yùn)動(dòng)補(bǔ)償(Overlapping block motioncompensation,簡(jiǎn)稱OBMC)技術(shù)進(jìn)行運(yùn)動(dòng)估計(jì)和預(yù)測(cè)求差,然后進(jìn)行小波變換,并采用零樹小波系數(shù)編碼方法(Embedded image coding using zerotrees ofwavelet coefficients,簡(jiǎn)稱EZW)進(jìn)行編碼。方案二是在小波系數(shù)域內(nèi)進(jìn)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償,通常采用多分辨率運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償方法,并且一般要對(duì)預(yù)測(cè)差值圖像再進(jìn)行DCT,然后再進(jìn)行量化和熵編碼。例如,專利號(hào)為US5495292,名稱為“Inter-frame wavelet transform coder for color videocompression”的美國(guó)專利。該專利采用的編碼方法為游程編碼RLC(Run lengthcode)和熵編碼方法。
雖然上述兩項(xiàng)專利公開的技術(shù)在一定程度上解決了基于塊運(yùn)動(dòng)補(bǔ)償和離散數(shù)字余弦變換技術(shù)中的問(wèn)題,但是上述二專利仍然存在各自的缺點(diǎn)。具體說(shuō)如下專利號(hào)為US5764805的專利所述方法,由于是對(duì)整幀圖像進(jìn)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償,因而不便于直接進(jìn)行空間分層編碼;專利號(hào)為US5495292的專利所述方法,在對(duì)高頻子帶進(jìn)行運(yùn)動(dòng)估計(jì)計(jì)算時(shí),由于高頻系數(shù)分布的特點(diǎn),其準(zhǔn)確性很難得到保證,并且對(duì)預(yù)測(cè)塊再進(jìn)行DCT變換和RLC編碼,計(jì)算復(fù)雜度較大,編碼方法也沒有充分利用子帶間的相關(guān)性,得不到較好的壓縮效率。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種實(shí)時(shí)的且具有抗誤碼性能的視頻編碼方法。
為實(shí)現(xiàn)上述目的,本發(fā)明的視頻編碼方法包括下述步驟(1)對(duì)整幀圖像進(jìn)行小波分解;(2)對(duì)小波分解后的低頻子帶作運(yùn)動(dòng)估計(jì)計(jì)算;(3)對(duì)各子帶預(yù)測(cè)求差值,其中高頻子帶運(yùn)動(dòng)向量采用同層低頻子帶整像素運(yùn)動(dòng)估計(jì)結(jié)果;(4)對(duì)步驟(3)中所得的高頻子帶預(yù)測(cè)差值圖像進(jìn)行量化;(5)分別對(duì)量化結(jié)果進(jìn)行編碼。
其中
在步驟(4)之前還包括對(duì)最粗層低頻子帶預(yù)測(cè)差值圖像進(jìn)行小波變換,并在步驟(4)中對(duì)該小波變換所得到的各子帶進(jìn)行量化。
對(duì)最粗層低頻子帶預(yù)測(cè)差值圖像進(jìn)行小波變換,直到不便于再分解為止步驟(2)采用多分辨率運(yùn)動(dòng)估計(jì)方法(MRME)。
對(duì)低頻子帶的運(yùn)動(dòng)估計(jì)采用由粗層子帶到細(xì)層子帶,逐漸向上細(xì)化的方式;或采用由細(xì)層子帶到粗層子帶,逐漸向下推算的方式。
如果子帶某塊在運(yùn)動(dòng)估計(jì)時(shí)所得的差的絕對(duì)值的和(SAD)超過(guò)某域值,則對(duì)該塊運(yùn)用塊內(nèi)預(yù)測(cè)方法計(jì)算差值數(shù)據(jù);編碼方式為信噪比分層編碼、空間分層編碼或時(shí)間分層編碼。
編碼方法為嵌入式零樹小波算法(EZW)、層樹分集算法(SPIHT)或重要性連接組件分析算法(SLCCA)。
本發(fā)明所述方法的突出優(yōu)點(diǎn)是A、沒有基于塊編碼方法中常出現(xiàn)的方塊效應(yīng)現(xiàn)象,在低帶寬下可以較大提高圖像視覺質(zhì)量;B、由于只對(duì)低頻子帶進(jìn)行運(yùn)動(dòng)估計(jì)計(jì)算,將其計(jì)算結(jié)果應(yīng)用到同層的高頻子帶,并且不同層低頻子帶間可以采用由粗到細(xì)或由細(xì)到粗的多分辨率運(yùn)動(dòng)估計(jì)方法,可以大大減少計(jì)算量,提高計(jì)算效率;C、可以很自然地實(shí)現(xiàn)信噪比分層、空間分層和時(shí)間分層編碼;D、由于不同層低頻子帶的運(yùn)動(dòng)矢量間可以互相近似推得,并且對(duì)他們分別編碼打包傳輸,在其中一層子帶運(yùn)動(dòng)矢量信息丟失的情況下,可以從另一層子帶運(yùn)動(dòng)矢量信息近似得到,從而具有較好的抗誤碼性能;E、具有較高的壓縮效率;F、可以實(shí)現(xiàn)有損和無(wú)損兩種壓縮方式。
圖1為本發(fā)明的流程圖;圖2為本發(fā)明的編碼框圖;
圖3為圖像3級(jí)小波變換的數(shù)據(jù)結(jié)構(gòu);圖4為本實(shí)施例中最粗低頻子帶預(yù)測(cè)差值圖像2級(jí)小波變換的子帶間編碼關(guān)系示意圖。
具體實(shí)施例方式
本實(shí)施例以CIF格式和3級(jí)離散數(shù)字小波變換(DWT)為例對(duì)編碼算法和過(guò)程進(jìn)行詳細(xì)描述。
為方便敘述,本實(shí)施例將圖像經(jīng)過(guò)一次小波變換后得到的一個(gè)低頻和三個(gè)高頻子帶分別用LL、HL、LH和HH表示(在字母后加上數(shù)字則表示不同層的子帶)。
參閱圖1和圖2首先將輸入的當(dāng)前幀、預(yù)測(cè)幀進(jìn)行DWT分解,即圖1中的步驟10。本實(shí)施例中對(duì)圖像進(jìn)行3級(jí)DWT分解(即圖1中的DWT1),設(shè)分解后的圖像分別為f(t)和f(t-1)、其數(shù)據(jù)結(jié)構(gòu)如圖3所示。
對(duì)DWT分解后的低頻子帶作運(yùn)動(dòng)估計(jì)計(jì)算,即圖1中的步驟11。首先考慮f(t)和f(t-1)間的運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償問(wèn)題,本發(fā)明基于以下假設(shè)隨著圖像中某目標(biāo)的移動(dòng),f(t)中同層的LL、HL、LH和HH對(duì)應(yīng)于該目標(biāo)的塊具有相同的位移矢量。該假設(shè)顯然是合理的,因?yàn)樗麄儺吘狗謩e是同一目標(biāo)的低頻系數(shù)和高頻系數(shù),因此,本發(fā)明僅對(duì)各層的低頻分量LL1、LL2、LL3進(jìn)行運(yùn)動(dòng)估計(jì)計(jì)算,將其計(jì)算結(jié)果應(yīng)用到高頻子帶對(duì)應(yīng)塊,從而可以大大減少計(jì)算量。進(jìn)一步地,由于相鄰層LL子帶的分辨率具有倍數(shù)關(guān)系,因此,本發(fā)明采用多分辨率運(yùn)動(dòng)估計(jì)方法MRME對(duì)各層LL子帶進(jìn)行運(yùn)動(dòng)估計(jì),包括由粗到細(xì)和由細(xì)到粗兩類方法(1)由粗到細(xì)先對(duì)LL3中的4×4塊進(jìn)行運(yùn)動(dòng)估計(jì),然后,考慮LL2中的相應(yīng)8×8塊,以LL3中相應(yīng)4×4塊的運(yùn)動(dòng)矢量的2倍作為初始位移矢量,再在其周圍8點(diǎn)進(jìn)行運(yùn)動(dòng)估計(jì)計(jì)算,找到匹配塊。類似地,可以得到LL1中相應(yīng)16×16塊的運(yùn)動(dòng)矢量結(jié)果。
(2)由細(xì)到粗先對(duì)LL1中的16×16塊進(jìn)行運(yùn)動(dòng)估計(jì),將其運(yùn)動(dòng)矢量值除以2可得到LL2中相應(yīng)8×8塊的運(yùn)動(dòng)矢量值、除以4可得到LL3中相應(yīng)4×4塊的運(yùn)動(dòng)矢量值。
兩類方法中,對(duì)于LL3子帶可進(jìn)行1/2、1/4像素精度運(yùn)動(dòng)估計(jì),而對(duì)于其它子帶只需考慮整像素精度即可。
對(duì)于在搜索范圍內(nèi)找不到準(zhǔn)確匹配位置的塊,即差的絕對(duì)值的和(Sum ofabsolute difference,簡(jiǎn)稱SAD)值超過(guò)設(shè)定的域值(對(duì)應(yīng)于H.263中的INTRA塊),則該塊運(yùn)用塊內(nèi)預(yù)測(cè)方式,各像素點(diǎn)預(yù)測(cè)值一律取為0。
然后,進(jìn)行圖1中的步驟12,對(duì)各子帶預(yù)測(cè)差值計(jì)算。在該步驟計(jì)算中,高頻子帶運(yùn)動(dòng)向量采用同層低頻子帶整像素運(yùn)動(dòng)估計(jì)結(jié)果,以大幅度減少計(jì)算量。
為了得到更有效的壓縮效果,對(duì)最粗低頻子帶LL3預(yù)測(cè)差值再進(jìn)行2級(jí)DWT分解(即圖1中的DWT2)LL5、HL5、LH5、HH5、HL4、LH4和HH4,如圖4所示。對(duì)最粗低頻子帶LL3預(yù)測(cè)差值,一般是進(jìn)行到不便于再分解為止。
接著,進(jìn)行圖1中的步驟13,分別對(duì)DWT1所得高頻子帶預(yù)測(cè)差值圖像和DWT2所得的各子帶進(jìn)行量化,對(duì)兩次小波分解的子帶一般采用不同的量化器進(jìn)行量化。
最后,進(jìn)行圖1中的步驟14,分別對(duì)量化后的各子帶進(jìn)行編碼。首先對(duì)LL5、HL5、LH5、HH5、HL4、LH4、HH4進(jìn)行編碼,再對(duì)HL3、LH3、HH3、HL2、LH2、HH2、HL1、LH1、HH1進(jìn)行編碼,編碼方法可采用嵌入式零樹小波算法(EZW)、層樹分集算法(SPIHT)或重要性連接組件分析算法(SLCCA)等,充分利用子帶間存在的相關(guān)性,提高編碼效率。
本發(fā)明所述視頻編碼方法,可以很容易地實(shí)現(xiàn)信噪比分層、空間分層和時(shí)間分層編碼功能。
(1)信噪比分層編碼。進(jìn)行位平面編碼,每一位平面的掃描順序?yàn)長(zhǎng)L5、HL5、HL4、LH5、LH4、HH5、HH4和HL3、HL2、HL1、LH3、LH2、LH1、HH3、HH2、HH1,每一位平面賦以一個(gè)標(biāo)識(shí),可實(shí)現(xiàn)信噪比分層編碼功能。
(2)空間分層編碼。LL3分解子帶單獨(dú)編碼,其它子帶的掃描順序?yàn)镠L3、LH3、HH3、HL2、LH2、HH2、HL1、LH1、HH1,每一分解層賦以一個(gè)標(biāo)識(shí),可實(shí)現(xiàn)空間分層編碼功能。
(3)時(shí)間分層編碼。進(jìn)行雙向運(yùn)動(dòng)估計(jì)和補(bǔ)償,引入B幀編碼,可實(shí)現(xiàn)時(shí)間分層編碼功能。
本發(fā)明所述視頻編碼方法,具有較好的抗誤碼性能。采用分層編碼方法,當(dāng)丟失一定量的信息后,在解碼端仍然可以得到可以接受的圖像質(zhì)量。由于需要編碼傳輸?shù)倪\(yùn)動(dòng)矢量信息并不多,本發(fā)明將LL3和LL1的塊運(yùn)動(dòng)矢量信息分別打包傳輸,當(dāng)其中一個(gè)子帶的運(yùn)動(dòng)矢量信息丟失時(shí),仍可以通過(guò)另一子帶的運(yùn)動(dòng)矢量信息得到近似結(jié)果,所得圖像質(zhì)量一般還可以接受。
本發(fā)明所述視頻編碼方法,可以選擇浮點(diǎn)小波,如9-7雙向正交小波,也可選擇整數(shù)小波,如5-3整數(shù)小波。當(dāng)采用整數(shù)小波時(shí),可以進(jìn)行無(wú)損壓縮,從而可應(yīng)用于無(wú)損視頻通信的情形。
對(duì)于其它格式和多級(jí)離散數(shù)字小波變換(DWT)的圖像編碼方法與本實(shí)施相同。
權(quán)利要求
1.一種視頻編碼方法,其特征在于,該方法包括下述步驟(1)對(duì)整幀圖像進(jìn)行小波分解;(2)對(duì)小波分解后的低頻子帶作運(yùn)動(dòng)估計(jì)計(jì)算;(3)對(duì)各子帶預(yù)測(cè)求差值,其中高頻子帶運(yùn)動(dòng)向量采用同層低頻子帶整像素運(yùn)動(dòng)估計(jì)結(jié)果;(4)對(duì)步驟(3)中所得的高頻子帶預(yù)測(cè)差值圖像進(jìn)行量化;(5)分別對(duì)量化結(jié)果進(jìn)行編碼。
2.如權(quán)利要求1所述的方法,其特征在于在步驟(4)之前還包括對(duì)最粗層低頻子帶預(yù)測(cè)差值圖像進(jìn)行小波變換,并在步驟(4)中對(duì)該小波變換所得到的各子帶進(jìn)行量化。
3.如權(quán)利要求1所述的方法,其特征在于步驟(2)采用多分辨率運(yùn)動(dòng)估計(jì)方法(MRME)。
4.如權(quán)利要求1所述的方法,其特征在于對(duì)低頻子帶的運(yùn)動(dòng)估計(jì)采用由粗層子帶到細(xì)層子帶,逐漸向上細(xì)化的方式;或采用由細(xì)層子帶到粗層子帶,逐漸向下推算的方式。
5.如權(quán)利要求1所述的方法,其特征在于如果子帶某塊在運(yùn)動(dòng)估計(jì)時(shí)所得的差的絕對(duì)值的和(SAD)超過(guò)某域值,則對(duì)該塊運(yùn)用塊內(nèi)預(yù)測(cè)方法計(jì)算差值數(shù)據(jù);
6.如權(quán)利要求2所述的方法,其特征在于對(duì)最粗層低頻子帶預(yù)測(cè)差值圖像進(jìn)行小波變換,直到不便于再分解為止。
7.如權(quán)利要求1至6之一所述的方法,其特征在于編碼方式為信噪比分層編碼、空間分層編碼或時(shí)間分層編碼。
8.如權(quán)利要求1至6之一所述的方法,其特征在于編碼方法為嵌入式零樹小波算法(EZW)、層樹分集算法(SPIHT)或重要性連接組件分析算法(SLCCA)。
全文摘要
一種視頻編碼方法,該方法先對(duì)圖像進(jìn)行小波分解,然后在各個(gè)低頻子帶LL間進(jìn)行運(yùn)動(dòng)估計(jì),將其運(yùn)動(dòng)估計(jì)結(jié)果直接用于相同層的高頻子帶HL、LH和HH中,得到各個(gè)子帶的預(yù)測(cè)差值圖像,然后對(duì)高頻差值子帶進(jìn)行量化、編碼。對(duì)于低頻差值子帶,可以直接進(jìn)行量化、編碼,也可以再進(jìn)行一次小波變換,然后再對(duì)各子帶進(jìn)行量化、編碼。其中各子帶間的量化、編碼方法可以采用EZW、SPIHT、SLCCA等方法。該編碼方法可以有效減少序列圖像中的空間冗余性和時(shí)間冗余性,獲得較高的壓縮效率,還具有較好的抗誤碼性能,并且可以較容易實(shí)現(xiàn)信噪比分層、空間分層和時(shí)間分層編碼方式,也可以進(jìn)行無(wú)損壓縮,以便滿足不同應(yīng)用的需求。
文檔編號(hào)H04N7/26GK1486086SQ0213105
公開日2004年3月31日 申請(qǐng)日期2002年9月26日 優(yōu)先權(quán)日2002年9月26日
發(fā)明者熊聯(lián)歡 申請(qǐng)人:華為技術(shù)有限公司