專(zhuān)利名稱(chēng):一種視頻編解碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多媒體通信領(lǐng)域的視頻壓縮編解技術(shù),尤其是涉及一種視頻編碼方法和一種視頻解碼方法。
背景技術(shù):
在傳統(tǒng)的視頻編碼標(biāo)準(zhǔn)中,如MPEG或者ITU-T的H.26x系列,都是在編碼端利用序列幀之間的統(tǒng)計(jì)相關(guān)性來(lái)進(jìn)行幀間預(yù)測(cè)編碼的,為了能夠較準(zhǔn)確的預(yù)測(cè)當(dāng)前幀,現(xiàn)行的這些標(biāo)準(zhǔn)中無(wú)一例外的使用了運(yùn)動(dòng)估計(jì)算法,因?yàn)檫\(yùn)動(dòng)估計(jì)算法復(fù)雜度高,所以導(dǎo)致視頻編碼器復(fù)雜度一般比解碼器的復(fù)雜度高5到10倍。這種不對(duì)稱(chēng)的視頻編碼方案對(duì)于視頻點(diǎn)播和直播等應(yīng)用是非常適合的,因?yàn)樵谶@些應(yīng)用中對(duì)于視頻數(shù)據(jù)是一次壓縮多次播放,終端的任務(wù)只是進(jìn)行復(fù)雜度較低的視頻解碼即可。然而,一些應(yīng)用或許是相反的情況,例如在無(wú)線視頻傳感器網(wǎng)絡(luò)或衛(wèi)星視頻通信等應(yīng)用中,需要低處理能力的終端處理器把視頻數(shù)據(jù)進(jìn)行現(xiàn)場(chǎng)的視頻編碼,然后發(fā)送給中心服務(wù)器,此時(shí)傳統(tǒng)的視頻編碼方案就很難勝任,而是需要一種低編碼復(fù)雜度的視頻編碼方案來(lái)適應(yīng)終端的低處理能力。
隨著視頻通信技術(shù)的發(fā)展,傳統(tǒng)的基于編碼端運(yùn)動(dòng)估計(jì)的混合視頻編碼技術(shù)在一些特殊應(yīng)用領(lǐng)域很難勝任,為此分布式信源編碼(Distributed SourceCoding)理論得到了越來(lái)越多學(xué)者的關(guān)注,分布式編碼是一種全新的視頻壓縮編碼框架,其理論基礎(chǔ)自20世紀(jì)70年代以來(lái)就已建立。它是一種編碼結(jié)構(gòu)上的創(chuàng)新,主要用于解決傳統(tǒng)視頻編碼在視頻通信中遇到的編碼復(fù)雜度高、可伸縮性差和容錯(cuò)能力差等問(wèn)題。UC伯克利大學(xué)的R.Ramchandran領(lǐng)導(dǎo)的小組開(kāi)發(fā)了分布式視頻編碼系統(tǒng)PRISM。在PRISM系統(tǒng)中為了在解碼端能夠準(zhǔn)確地構(gòu)造幀間宏塊的邊信息(Side Information),在編碼過(guò)程中通過(guò)傳輸一些CRC(循環(huán)冗余校驗(yàn))比特來(lái)實(shí)現(xiàn)解碼端的運(yùn)動(dòng)估計(jì)。
雖然PRISM系統(tǒng)在編碼過(guò)程中CRC比特可以指導(dǎo)解碼端進(jìn)行較準(zhǔn)確的運(yùn)動(dòng)估計(jì),但CRC比特本身并不能用來(lái)重建圖像,其中還存在信息冗余,導(dǎo)致視頻編碼的效率降低,嚴(yán)重影響到視頻通信的效果。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種視頻編碼方法,以降低視頻編碼端的信息冗余,從而提高視頻編碼的效率和視頻通信效果。
為解決上述問(wèn)題,本發(fā)明提出了一種視頻編碼方法,對(duì)輸入的視頻編碼數(shù)據(jù)進(jìn)行分類(lèi)編碼,包括幀間編碼模式和幀內(nèi)編碼模式,在進(jìn)行幀間編碼模式時(shí),包括如下步驟對(duì)所述輸入幀間編碼宏塊的系數(shù)進(jìn)行變換和量化,然后對(duì)所述量化后的系數(shù)按頻率進(jìn)行重排,對(duì)所述重排系數(shù)的前N1個(gè)位平面進(jìn)行編碼,對(duì)重排前系數(shù)的N1位平面之后的所有位平面進(jìn)行編碼。
其中,對(duì)所述輸入幀間編碼宏塊的系數(shù)進(jìn)行的變換是離散余弦變換DCT變換。
其中,在進(jìn)行幀間編碼模式時(shí),包括具體步驟如下步驟A,將輸入的宏塊劃分為相應(yīng)的4×4塊,并對(duì)每一個(gè)4×4塊系數(shù)進(jìn)行DCT變換和相應(yīng)的量化;步驟B,對(duì)步驟A中得到的量化后的DCT系數(shù)進(jìn)行重排;步驟C,對(duì)步驟B中重排后的DCT系數(shù)的前N1個(gè)位平面進(jìn)行位平面編碼,得到位平面碼流;步驟D,對(duì)步驟A中得到的量化后的DCT系數(shù)的N1個(gè)位平面之后的所有位平面進(jìn)行編碼,得到校驗(yàn)碼流。
其中,所述步驟A中相應(yīng)的量化,具體指根據(jù)碼流選擇量化尺度進(jìn)行量化。
其中,所述步驟B具體步驟如下步驟B1,對(duì)當(dāng)前宏塊中各組量化后的4×4DCT系數(shù)按照Z(yǔ)IAZIG掃描的方式進(jìn)行掃描,并對(duì)掃描后的系數(shù)按照頻率進(jìn)行相應(yīng)的編號(hào);
步驟B2,把每組4×4DCT系數(shù)中相同編號(hào)的系數(shù)排在一起,組成新的宏塊系數(shù)。
其中,所述步驟C中的編碼方法采用JPEG2000標(biāo)準(zhǔn)中的EBCOT算法、EZBC算法或SPIHT算法中的一種編碼方法。
其中,所述步驟C中N1可以選取固定常數(shù)或根據(jù)該幀圖像的自身特性自適應(yīng)選取N1。
其中,所述根據(jù)該幀圖像的自身特性自適應(yīng)選取N1具體指采用公式N1=log10T+0.5,選取N1其中表示向下取整數(shù)函數(shù)運(yùn)算符,T為當(dāng)前宏塊與前一幀對(duì)應(yīng)位置的宏塊之間像素差的絕對(duì)值之和。
其中,所述步驟D中編碼方法采用Turbo Code編碼、LDPC編碼或IRA編碼中的一種編碼方法。
其中,在所述步驟A之前還包括根據(jù)視頻圖像的運(yùn)動(dòng)程度、及視頻圖像的紋理、細(xì)節(jié)等因素對(duì)輸入的圖像數(shù)據(jù)幀進(jìn)行宏塊劃分,分成16×16宏塊、16×8宏塊、8×16宏塊或8×8宏塊等宏塊類(lèi)型,將劃分后的宏塊作為幀間編碼的輸入。
其中,在所述步驟D之后還包括將宏塊類(lèi)型碼流、步驟C中得到的該宏塊N1位平面碼流和步驟D中得到的校驗(yàn)信息碼流共同組成最終的所述當(dāng)前宏塊的編碼碼流。
其中,對(duì)所述輸入幀間編碼宏塊的系數(shù)進(jìn)行的變換是Hadamard變換或整數(shù)變換。
本發(fā)明還提出了一種視頻解碼方法,解析輸入的視頻解碼碼流,判斷當(dāng)前宏塊的類(lèi)型,進(jìn)行相應(yīng)類(lèi)型的解碼,在進(jìn)行幀間解碼模式時(shí),所述輸入的視頻解碼碼流包括N1位平面碼流和校驗(yàn)碼流,包括如下步驟對(duì)所述輸入的N1位平面碼流進(jìn)行解碼、反量化和反變換,得到N1位平面的重構(gòu)數(shù)據(jù);利用所述N1位平面的重構(gòu)數(shù)據(jù)對(duì)所述輸入的校驗(yàn)碼流進(jìn)行解碼,得到當(dāng)前宏塊N1位平面之后的所有位平面重構(gòu)數(shù)據(jù);將所示的兩個(gè)重構(gòu)數(shù)據(jù)合并,并對(duì)所述合并后的數(shù)據(jù)進(jìn)行反量化和反變換。
其中,在進(jìn)行幀間解碼模式時(shí),具體包括如下步驟步驟E,對(duì)所述輸入的N1位平面碼流進(jìn)行相應(yīng)的解碼,其解碼方法與編碼端的編碼方法相對(duì)應(yīng);步驟F,對(duì)步驟E中解碼后的系數(shù)進(jìn)行重排,其重排的方法與編碼端采用的重排方法相對(duì)應(yīng),得到對(duì)應(yīng)的各個(gè)重排后的4×4塊系數(shù);步驟G,對(duì)步驟F中得到的各個(gè)4×4塊系數(shù)進(jìn)行反量化和反變換,得到當(dāng)前宏塊的前N1位平面的變換系數(shù)的重構(gòu)數(shù)據(jù);步驟H,針對(duì)步驟G中所述的重構(gòu)數(shù)據(jù)在參考幀內(nèi)進(jìn)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償,得到此條件下當(dāng)前宏塊的最優(yōu)參考?jí)K;步驟I,把步驟H中得到的最優(yōu)參考?jí)K和所述輸入的校驗(yàn)碼流一起送入校驗(yàn)碼流解碼器進(jìn)行解碼,得到當(dāng)前宏塊N1位平面之后的所有位平面重構(gòu)數(shù)據(jù);步驟J,把步驟F得到的重排系數(shù)和步驟I中得到的當(dāng)前宏塊N1位平面之后的所有位平面重構(gòu)數(shù)據(jù)進(jìn)行合并,并對(duì)所述合并后的數(shù)據(jù)進(jìn)行反量化和反變換。
其中,所述步驟I中的解碼器和在編碼端中使用的編碼器相對(duì)應(yīng),包括Turbo Code解碼器、LDPC解碼器碼或IRA解碼器。
本發(fā)明還提出了一種幀間編碼方法,包括如下步驟步驟A,將輸入的宏塊劃分為相應(yīng)的4×4塊,并對(duì)每一個(gè)4×4塊系數(shù)進(jìn)行變換和相應(yīng)的量化;步驟B,對(duì)步驟A中得到的量化后的變換系數(shù)進(jìn)行重排;步驟C,對(duì)步驟B中重排后的變換系數(shù)的前N1個(gè)位平面進(jìn)行位平面編碼,得到位平面碼流;步驟D,對(duì)步驟A中得到的量化后的變換系數(shù)的N1個(gè)位平面之后的所有位平面進(jìn)行編碼,得到校驗(yàn)碼流。
本發(fā)明還提出了一種幀間解碼方法,輸入的視頻解碼碼流包括N1位平面碼流和校驗(yàn)碼流,包括如下步驟步驟E,對(duì)所述輸入的N1位平面碼流進(jìn)行相應(yīng)的解碼,其解碼方法與編碼端的編碼方法相對(duì)應(yīng);步驟F,對(duì)步驟E中解碼后的系數(shù)進(jìn)行重排,其重排的方法與編碼端采用的重排方法相對(duì)應(yīng),得到對(duì)應(yīng)的各個(gè)重排后的4×4塊系數(shù);步驟G,對(duì)步驟F中得到的各個(gè)4×4塊系數(shù)進(jìn)行反量化和反變換,得到當(dāng)前宏塊的前N1位平面的變換系數(shù)的重構(gòu)數(shù)據(jù);步驟H,針對(duì)步驟G中所述的重構(gòu)數(shù)據(jù)在參考幀內(nèi)進(jìn)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償,得到此條件下當(dāng)前宏塊的最優(yōu)參考?jí)K;步驟I,把步驟H中得到的最優(yōu)參考?jí)K和所述輸入的校驗(yàn)碼流一起送入校驗(yàn)碼流解碼器進(jìn)行解碼,得到當(dāng)前宏塊N1位平面之后的所有位平面重構(gòu)數(shù)據(jù);步驟J,把步驟F得到的重排系數(shù)和步驟I中得到的當(dāng)前宏塊N1位平面之后的所有位平面重構(gòu)數(shù)據(jù)進(jìn)行合并,并對(duì)所述合并后的數(shù)據(jù)進(jìn)行反量化和反變換。
本發(fā)明有益效果如下本發(fā)明由于在幀間編碼過(guò)程中對(duì)重排的DCT系數(shù)采用了子帶編碼的方法得到部分碼流數(shù)據(jù),此數(shù)據(jù)在解碼端即作為解碼圖像的一部分,又用來(lái)指導(dǎo)解碼端的運(yùn)動(dòng)估計(jì),從而降低了視頻編碼端的計(jì)算復(fù)雜度,提高了視頻編碼的效率和視頻通信效果,同時(shí)在保證本方案在編碼端復(fù)雜度較低的情況下,在解碼端也得到較高的重建圖像質(zhì)量。
圖1為本發(fā)明視頻編碼方法中幀間編碼幀編碼的主要實(shí)現(xiàn)原理流程圖;圖2為本發(fā)明視頻編碼方法中對(duì)量化后的DCT系數(shù)進(jìn)行重排的示意圖;圖3為本發(fā)明視頻編碼方法中DCT系數(shù)的位平面示意圖;圖4為本發(fā)明視頻編碼方法中幀間編碼輸出碼流結(jié)構(gòu)的示意圖;圖5為本發(fā)明視頻編碼方法的主要實(shí)現(xiàn)原理流程圖;
圖6為本發(fā)明視頻解碼方法的主要實(shí)現(xiàn)原理流程圖;圖7為本發(fā)明視頻解碼方法中幀間解碼的主要實(shí)現(xiàn)原理流程圖;圖8為本發(fā)明視頻解碼方法中對(duì)解碼后的系數(shù)進(jìn)行重排的示意圖。
具體實(shí)施例方式
本發(fā)明的視頻編碼方法是通過(guò)在詳細(xì)分析現(xiàn)有技術(shù)分布式信源編碼方案所存在缺陷的基礎(chǔ)上而提出的,現(xiàn)有的分布式信源編碼方案中CRC比特可以指導(dǎo)解碼端進(jìn)行較準(zhǔn)確的運(yùn)動(dòng)估計(jì),但CRC比特本身并不能用來(lái)重建圖像,其中還存在信息冗余,本發(fā)明通過(guò)重排宏塊的離散余弦變換(Discrete CosineTransform,DCT)系數(shù),并通過(guò)子帶編碼的方法產(chǎn)生高位平面的部分編碼信息,這部分信息既是重建圖像的一部分,同時(shí)也可以指導(dǎo)解碼端進(jìn)行運(yùn)動(dòng)估計(jì)。
因此,本發(fā)明的視頻編碼方法的核心思想在于根據(jù)分布式信源編碼的基本原理,首先對(duì)輸入的宏塊進(jìn)行分類(lèi),在進(jìn)行幀間編碼模式時(shí),先對(duì)幀間編碼宏塊的系數(shù)進(jìn)行DCT變換和量化,然后對(duì)量化后的系數(shù)按頻率進(jìn)行重排,利用子帶編碼技術(shù)對(duì)重排系數(shù)的前N1個(gè)位平面進(jìn)行編碼,最后對(duì)N1位平面之后的所有位平面進(jìn)行編碼,得到校驗(yàn)信息碼流。此N1位平面編碼信息在解碼端作為重建圖像的一部分信息的同時(shí),并指導(dǎo)解碼端進(jìn)行運(yùn)動(dòng)估計(jì)來(lái)獲得更高質(zhì)量的邊信息,此邊信息與校驗(yàn)信息一起來(lái)解碼剩余位平面,進(jìn)而得到完整的重建幀間宏塊。
下面結(jié)合各個(gè)附圖,對(duì)能夠?qū)崿F(xiàn)上述特點(diǎn)的本發(fā)明視頻編碼方法的具體實(shí)施過(guò)程進(jìn)行詳細(xì)的闡述。
請(qǐng)參閱圖5,該圖是本發(fā)明視頻編碼方法的主要實(shí)現(xiàn)原理流程圖,即對(duì)輸入的宏塊進(jìn)行分類(lèi)編碼,其主要實(shí)現(xiàn)過(guò)程包括如下步驟首先計(jì)算當(dāng)前宏塊與前一幀對(duì)應(yīng)位置的宏塊之間的各像素對(duì)應(yīng)差的絕對(duì)值之和T,并根據(jù)T判斷編碼類(lèi)型并編碼(在這里Tskip和Tintra分別為兩個(gè)預(yù)先設(shè)定的閾值)1)、如果T小于Tskip,則當(dāng)前宏塊不需要編碼,定義為SKIP類(lèi)型,并傳比特0到解碼端;2)、如果T大于Tintra,則當(dāng)前宏塊類(lèi)型定義為Intra類(lèi)型,按幀內(nèi)宏塊進(jìn)行編碼(與傳統(tǒng)編碼方式相同,即4×4DCT變換、量化和熵編碼),并傳比特10到解碼端;3)、否則,當(dāng)前宏塊類(lèi)型定義為Inter類(lèi)型,按幀間方式進(jìn)行編碼,其編碼過(guò)程如上所述步驟S100——步驟S600,并傳比特11到解碼端。
請(qǐng)參閱圖1,該圖是本發(fā)明視頻編碼方法中幀間編碼幀編碼的主要實(shí)現(xiàn)原理流程圖,其主要實(shí)現(xiàn)過(guò)程包括如下步驟步驟S100,輸入宏塊;對(duì)輸入的圖像數(shù)據(jù)幀進(jìn)行宏塊劃分,可以根據(jù)視頻圖像的運(yùn)動(dòng)程度、及視頻圖像的紋理、細(xì)節(jié)等因素來(lái)劃分圖像數(shù)據(jù)幀,分成16×16宏塊、16×8宏塊、8×16宏塊或8×8宏塊等宏塊類(lèi)型,將劃分后的宏塊作為幀間編碼的輸入。
步驟S200,4×4DCT變換和量化;對(duì)步驟S100中所輸入的宏塊劃分為相應(yīng)的4×4宏塊,并對(duì)每一個(gè)4×4宏塊系數(shù)進(jìn)行DCT變換,在DCT變換后對(duì)其進(jìn)行相應(yīng)的量化,其中可以根據(jù)碼流選擇量化尺度。
步驟S300,對(duì)量化后的DCT系數(shù)進(jìn)行重排;對(duì)步驟S200中得到的所有量化后的DCT系數(shù)進(jìn)行重排,具體重排過(guò)程如下步驟S301,對(duì)各組量化后的4×4DCT變換系數(shù)按照“之字形”(ZIAZIG)掃描的方式進(jìn)行掃描,按照掃描后的頻率進(jìn)行編號(hào)(從1到16),如圖2.(a)所示;步驟S302,為便于后面的系數(shù)編碼,把每組DCT系數(shù)相同頻率的系數(shù)排在一起(相同的頻率具有相同的特征);假設(shè)步驟S100中將圖像數(shù)據(jù)幀劃分為16×16宏塊,則每一個(gè)16×16宏塊總共有16組4×4DCT宏塊,則把每組DCT系數(shù)中相同頻率的系數(shù)排在一起,如圖2.(b)所示的方式。
步驟S400,對(duì)前N1個(gè)位平面(Bit-plane)進(jìn)行位平面編碼,得到位平面碼流(DCT系數(shù)按照二進(jìn)制方式從高到低排列,所有系數(shù)的相同的二進(jìn)制位構(gòu)成一個(gè)位平面)如圖3所示,對(duì)重排后的DCT系數(shù)的前N1個(gè)位平面(Bit-plane)進(jìn)行位平面編碼,通過(guò)子帶編碼得到前N1個(gè)位平面的編碼碼流。其中,子帶編碼方法可以采用JPEG2000標(biāo)準(zhǔn)中的EBCOT算法、EZBC算法或SPIHT算法等編碼方法,N1可以取固定常數(shù),例如N1等于5;也可以根據(jù)該幀圖像的自身特性自適應(yīng)選取,其公式如下N1=log10T+0.5,其中表示向下取整數(shù),T為當(dāng)前宏塊與前一幀對(duì)應(yīng)位置的宏塊之間的絕對(duì)差。
步驟S500,對(duì)重排前的DCT系數(shù)的N1個(gè)位平面之后的所有位平面進(jìn)行編碼,得到校驗(yàn)碼流;對(duì)于得到的所有組DCT系數(shù)的N1位平面之后的所有位平面可以按照Turbo Code編碼、LDPC編碼或IRA編碼中的一種方法進(jìn)行編碼,從而得到校驗(yàn)信息碼流。
步驟S600,輸出位平面碼流和校驗(yàn)碼流;宏塊類(lèi)型碼流、將該宏塊的N1位平面碼流和校驗(yàn)信息碼流共同組成最終的該宏塊的編碼碼流,其碼流結(jié)構(gòu)如圖4所示,即宏塊類(lèi)型碼流最先,然后N1位平面碼流,最后是校驗(yàn)信息碼流。
在解碼端,與上述視頻編碼方法中相對(duì)應(yīng)的視頻解碼方法,如圖6所示,包括下述步驟對(duì)輸入的視頻編碼數(shù)據(jù)流首先進(jìn)行碼流解析,分析其編碼宏塊的編碼類(lèi)型1)、如果編碼宏塊類(lèi)型為SKIP類(lèi)型,則將當(dāng)前宏塊的前一幀對(duì)應(yīng)位置處的數(shù)據(jù)直接拷貝到當(dāng)前宏塊的對(duì)應(yīng)位置處,即不需要進(jìn)行解碼處理;2)、如果編碼宏塊類(lèi)型為Intra類(lèi)型,則按幀內(nèi)宏塊進(jìn)行解碼得到相關(guān)的原始視頻數(shù)據(jù),即熵解碼、反量化和4×4DCT反變換等;3)、如果編碼宏塊類(lèi)型為Inter類(lèi)型,則按幀間宏塊進(jìn)行解碼得到相關(guān)的原始視頻數(shù)據(jù),其解碼過(guò)程如圖7所示步驟S10,視頻輸入;輸入該宏塊的視頻編碼數(shù)據(jù)流,其中包括N1位平面碼流和校驗(yàn)信息碼流。
步驟S20,N1位平面解碼;對(duì)步驟S10中輸入的N1位平面碼流進(jìn)行相應(yīng)的解碼。其解碼方法與編碼端在步驟S400中進(jìn)行的編碼方法相對(duì)應(yīng),即如果子帶編碼方法采用JPEG2000標(biāo)準(zhǔn)中的EBCOT算法,則編碼端也采用對(duì)應(yīng)的JPEG2000標(biāo)準(zhǔn)中的EBCOT解碼算法進(jìn)行解碼。
步驟S30,對(duì)解碼后的系數(shù)進(jìn)行重排;對(duì)步驟S20中得到的系數(shù)進(jìn)行重排的方法與編碼端在步驟S300中采用的重排方法相對(duì)應(yīng),如圖8所示,得到對(duì)應(yīng)的各個(gè)重排后的4×4塊系數(shù)。
步驟S40,對(duì)重排后的系數(shù)進(jìn)行反量化和DCT反變換;對(duì)步驟S30中得到的各個(gè)4×4塊系數(shù)進(jìn)行反量化和DCT反變換,從而得到當(dāng)前宏塊的前N1個(gè)DCT系數(shù)的重構(gòu)數(shù)據(jù)。
步驟S50,在參考幀內(nèi)進(jìn)行運(yùn)動(dòng)估計(jì)得到最優(yōu)參考?jí)K;針對(duì)步驟S40中得到的當(dāng)前宏塊的前N1個(gè)DCT系數(shù)的重構(gòu)數(shù)據(jù)在參考幀內(nèi)進(jìn)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償,運(yùn)動(dòng)估計(jì)和補(bǔ)償方法可以是DS、MVFAST等算法,得到此條件下當(dāng)前宏塊的最優(yōu)參考?jí)K。
步驟S60,利用最優(yōu)參考?jí)K中的邊信息和視頻輸入中的校驗(yàn)碼流進(jìn)行校驗(yàn)解碼;把步驟S50中得到的最優(yōu)參考?jí)K和步驟S10中輸入的校驗(yàn)碼流一起送入校驗(yàn)碼流解碼器(所使用的解碼器和在編碼端步驟S500中使用的編碼方式相對(duì)應(yīng),如Turbo Code解碼器、LDPC解碼器碼或IRA解碼器)進(jìn)行解碼,得到當(dāng)前宏塊N1位平面之后的所有位平面重構(gòu)數(shù)據(jù)。
步驟S70,把位平面解碼后的重排系數(shù)和校驗(yàn)系數(shù)進(jìn)行相加;把位平面解碼后的重排系數(shù)(步驟S30中得到的各個(gè)4×4塊系數(shù))和步驟S60中得到的校驗(yàn)系數(shù)相加,得到當(dāng)前宏塊的所有位平面的值。
步驟S80,反量化和DCT反變換;對(duì)步驟S70中得到當(dāng)前宏塊的所有位平面的值進(jìn)行反量化和DCT反變換,得到當(dāng)前宏塊的重構(gòu)數(shù)據(jù)。
步驟S90,輸出得到的當(dāng)前宏塊的重構(gòu)數(shù)據(jù)。
需要指出,本發(fā)明中針對(duì)編碼宏塊的系數(shù)進(jìn)行的變換是DCT變換,本領(lǐng)域人員可以理解,該變換也可以是其它變換方法,如Hadamard變換、整數(shù)變換等。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種視頻編碼方法,對(duì)輸入的視頻編碼數(shù)據(jù)進(jìn)行分類(lèi)編碼,包括幀間編碼模式和幀內(nèi)編碼模式,其特征在于,在進(jìn)行幀間編碼模式時(shí),包括如下步驟對(duì)所述輸入幀間編碼宏塊的系數(shù)進(jìn)行變換和量化,然后對(duì)所述量化后的系數(shù)按頻率進(jìn)行重排,對(duì)所述重排系數(shù)的前N1個(gè)位平面進(jìn)行編碼,對(duì)重排前系數(shù)的N1位平面之后的所有位平面進(jìn)行編碼。
2.如權(quán)利要求1所述的方法,其特征在于,對(duì)所述輸入幀間編碼宏塊的系數(shù)進(jìn)行的變換是離散余弦變換DCT變換。
3.如權(quán)利要求2所述的方法,其特征在于,在進(jìn)行幀間編碼模式時(shí),包括具體步驟如下步驟A,將輸入的宏塊劃分為相應(yīng)的4×4塊,并對(duì)每一個(gè)4×4塊系數(shù)進(jìn)行DCT變換和相應(yīng)的量化;步驟B,對(duì)步驟A中得到的量化后的DCT系數(shù)進(jìn)行重排;步驟C,對(duì)步驟B中重排后的DCT系數(shù)的前N1個(gè)位平面進(jìn)行位平面編碼,得到位平面碼流;步驟D,對(duì)步驟A中得到的量化后的DCT系數(shù)的N1個(gè)位平面之后的所有位平面進(jìn)行編碼,得到校驗(yàn)碼流。
4.如權(quán)利要求3所述的方法,其特征在于,所述步驟A中相應(yīng)的量化,具體指根據(jù)碼流選擇量化尺度進(jìn)行量化。
5.如權(quán)利要求3所述的方法,其特征在于,所述步驟B具體步驟如下步驟B1,對(duì)當(dāng)前宏塊中各組量化后的4×4 DCT系數(shù)按照Z(yǔ)IAZIG掃描的方式進(jìn)行掃描,并對(duì)掃描后的系數(shù)按照頻率進(jìn)行相應(yīng)的編號(hào);步驟B2,把每組4×4 DCT系數(shù)中相同編號(hào)的系數(shù)排在一起,組成新的宏塊系數(shù)。
6.如權(quán)利要求3所述的方法,其特征在于,所述步驟C中的編碼方法采用JPEG2000標(biāo)準(zhǔn)中的EBCOT算法、EZBC算法或SPIHT算法中的一種編碼方法。
7.如權(quán)利要求3所述的方法,其特征在于,所述步驟C中N1可以選取固定常數(shù)或根據(jù)該幀圖像的自身特性自適應(yīng)選取N1。
8.如權(quán)利要求7所述的方法,其特征在于,所述根據(jù)該幀圖像的自身特性自適應(yīng)選取N1具體指采用公式N1=log10T+0.5」,選取N1其中表示向下取整數(shù)函數(shù)運(yùn)算符,T為當(dāng)前宏塊與前一幀對(duì)應(yīng)位置的宏塊之間像素差的絕對(duì)值之和。
9.如權(quán)利要求3所述的方法,其特征在于,所述步驟D中編碼方法采用TurboCode編碼、LDPC編碼或IRA編碼中的一種編碼方法。
10.如權(quán)利要求3所述的方法,其特征在于,在所述步驟A之前還包括根據(jù)視頻圖像的運(yùn)動(dòng)程度、及視頻圖像的紋理、細(xì)節(jié)等因素對(duì)輸入的圖像數(shù)據(jù)幀進(jìn)行宏塊劃分,分成16×16宏塊、16×8宏塊、8×16宏塊或8×8宏塊等宏塊類(lèi)型,將劃分后的宏塊作為幀間編碼的輸入。
11.如權(quán)利要求3所述的方法,其特征在于,在所述步驟D之后還包括將宏塊類(lèi)型碼流、步驟C中得到的該宏塊N1位平面碼流和步驟D中得到的校驗(yàn)信息碼流共同組成最終的所述當(dāng)前宏塊的編碼碼流。
12.如權(quán)利要求1所述的方法,其特征在于,對(duì)所述輸入幀間編碼宏塊的系數(shù)進(jìn)行的變換是Hadamard變換或整數(shù)變換。
13.一種視頻解碼方法,解析輸入的視頻解碼碼流,判斷當(dāng)前宏塊的類(lèi)型,進(jìn)行相應(yīng)類(lèi)型的解碼,其特征在于,在進(jìn)行幀間解碼模式時(shí),所述輸入的視頻解碼碼流包括N1位平面碼流和校驗(yàn)碼流,包括如下步驟對(duì)所述輸入的N1位平面碼流進(jìn)行解碼、反量化和反變換,得到N1位平面的重構(gòu)數(shù)據(jù);利用所述N1位平面的重構(gòu)數(shù)據(jù)對(duì)所述輸入的校驗(yàn)碼流進(jìn)行解碼,得到當(dāng)前宏塊N1位平面之后的所有位平面重構(gòu)數(shù)據(jù);將所示的兩個(gè)重構(gòu)數(shù)據(jù)合并,并對(duì)所述合并后的數(shù)據(jù)進(jìn)行反量化和反變換。
14.如權(quán)利要求13所述的方法,其特征在于,在進(jìn)行幀間解碼模式時(shí),具體包括如下步驟步驟E,對(duì)所述輸入的N1位平面碼流進(jìn)行相應(yīng)的解碼,其解碼方法與編碼端的編碼方法相對(duì)應(yīng);步驟F,對(duì)步驟E中解碼后的系數(shù)進(jìn)行重排,其重排的方法與編碼端采用的重排方法相對(duì)應(yīng),得到對(duì)應(yīng)的各個(gè)重排后的4×4塊系數(shù);步驟G,對(duì)步驟F中得到的各個(gè)4×4塊系數(shù)進(jìn)行反量化和反變換,得到當(dāng)前宏塊的前N1位平面的變換系數(shù)的重構(gòu)數(shù)據(jù);步驟H,針對(duì)步驟G中所述的重構(gòu)數(shù)據(jù)在參考幀內(nèi)進(jìn)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償,得到此條件下當(dāng)前宏塊的最優(yōu)參考?jí)K;步驟I,把步驟H中得到的最優(yōu)參考?jí)K和所述輸入的校驗(yàn)碼流一起送入校驗(yàn)碼流解碼器進(jìn)行解碼,得到當(dāng)前宏塊N1位平面之后的所有位平面重構(gòu)數(shù)據(jù);步驟J,把步驟F得到的重排系數(shù)和步驟I中得到的當(dāng)前宏塊N1位平面之后的所有位平面重構(gòu)數(shù)據(jù)進(jìn)行合并,并對(duì)所述合并后的數(shù)據(jù)進(jìn)行反量化和反變換。
15.如權(quán)利要求14所述的方法,其特征在于,所述步驟I中的解碼器和在編碼端中使用的編碼器相對(duì)應(yīng),包括Turbo Code解碼器、LDPC解碼器碼或IRA解碼器。
16.一種幀間編碼方法,其特征在于,包括如下步驟步驟A,將輸入的宏塊劃分為相應(yīng)的4×4塊,并對(duì)每一個(gè)4×4塊系數(shù)進(jìn)行變換和相應(yīng)的量化;步驟B,對(duì)步驟A中得到的量化后的變換系數(shù)進(jìn)行重排;步驟C,對(duì)步驟B中重排后的變換系數(shù)的前N1個(gè)位平面進(jìn)行位平面編碼,得到位平面碼流;步驟D,對(duì)步驟A中得到的量化后的變換系數(shù)的N1個(gè)位平面之后的所有位平面進(jìn)行編碼,得到校驗(yàn)碼流。
17.一種幀間解碼方法,其特征在于,輸入的視頻解碼碼流包括N1位平面碼流和校驗(yàn)碼流,包括如下步驟步驟E,對(duì)所述輸入的N1位平面碼流進(jìn)行相應(yīng)的解碼,其解碼方法與編碼端的編碼方法相對(duì)應(yīng);步驟F,對(duì)步驟E中解碼后的系數(shù)進(jìn)行重排,其重排的方法與編碼端采用的重排方法相對(duì)應(yīng),得到對(duì)應(yīng)的各個(gè)重排后的4×4塊系數(shù);步驟G,對(duì)步驟F中得到的各個(gè)4×4塊系數(shù)進(jìn)行反量化和反變換,得到當(dāng)前宏塊的前N1位平面的變換系數(shù)的重構(gòu)數(shù)據(jù);步驟H,針對(duì)步驟G中所述的重構(gòu)數(shù)據(jù)在參考幀內(nèi)進(jìn)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償,得到此條件下當(dāng)前宏塊的最優(yōu)參考?jí)K;步驟I,把步驟H中得到的最優(yōu)參考?jí)K和所述輸入的校驗(yàn)碼流一起送入校驗(yàn)碼流解碼器進(jìn)行解碼,得到當(dāng)前宏塊N1位平面之后的所有位平面重構(gòu)數(shù)據(jù);步驟J,把步驟F得到的重排系數(shù)和步驟I中得到的當(dāng)前宏塊N1位平面之后的所有位平面重構(gòu)數(shù)據(jù)進(jìn)行合并,并對(duì)所述合并后的數(shù)據(jù)進(jìn)行反量化和反變換。
全文摘要
本發(fā)明公開(kāi)了一種視頻編碼方法,涉及多媒體通信領(lǐng)域的視頻壓縮編解技術(shù),用以降低視頻編碼端的信息冗余,從而提高視頻編碼的效率和視頻通信效果。本發(fā)明的視頻編碼方法,在進(jìn)行幀間編碼模式時(shí),包括如下步驟對(duì)所述輸入幀間編碼宏塊的系數(shù)進(jìn)行變換和量化,然后對(duì)所述量化后的系數(shù)按頻率進(jìn)行重排,對(duì)所述重排系數(shù)的前N
文檔編號(hào)H04N7/26GK101083767SQ200610060998
公開(kāi)日2007年12月5日 申請(qǐng)日期2006年5月30日 優(yōu)先權(quán)日2006年5月30日
發(fā)明者丁貴廣, 熊聯(lián)歡 申請(qǐng)人:華為技術(shù)有限公司, 清華大學(xué)