專(zhuān)利名稱(chēng):塊組編碼結(jié)構(gòu)及基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信號(hào)處理中的視頻編解碼技術(shù)領(lǐng)域。
背景技術(shù):
傳統(tǒng)的視頻編碼標(biāo)準(zhǔn)如ITU制定的H.261,H.263,H.263+,H.264標(biāo)準(zhǔn)以及ISO的MPEG組織制定的MPEG-1,MPEG-2,MPEG-4等都是建立在混合編碼,即HybridCoding框架之上的。所謂混合編碼框架是一種混合時(shí)間空間視頻圖像編碼方法,這種方法包括先進(jìn)行幀內(nèi)、幀間的預(yù)測(cè),以消除時(shí)間域的相關(guān)性;然后對(duì)原始圖像與預(yù)測(cè)結(jié)果的殘差進(jìn)行二維變換(采用離散余弦變換或其它線(xiàn)性變換),消除空間相關(guān)性;然后進(jìn)行熵編碼,去除統(tǒng)計(jì)上的冗余度。
為了提高視頻信號(hào)的壓縮效率,預(yù)測(cè)是視頻編碼標(biāo)準(zhǔn)中最重要的核心技術(shù),預(yù)測(cè)方法一般分為幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)。
在上述視頻編碼標(biāo)準(zhǔn)中,宏塊(16×16的圖像像素塊)是預(yù)測(cè)及編解碼的基本單位。宏塊可以分解為16×16,或兩個(gè)8×16,或兩個(gè)16×8,或四個(gè)8×8,或多個(gè)8×4,4×8,4×4等一些小的矩形塊。幀間預(yù)測(cè)方法是用這些矩形塊大小的原始圖像(原始輸入的圖像),即原始圖像塊,在參考圖像(在以前編碼的重建幀中用作為參考的圖像)中進(jìn)行運(yùn)動(dòng)估計(jì),就得到原始圖像塊的最佳匹配圖像塊作為預(yù)測(cè)結(jié)果。幀內(nèi)預(yù)測(cè)方法是在當(dāng)前編碼幀中利用需要編碼的矩形塊周?chē)呀?jīng)編碼的矩形塊,對(duì)需要編碼的矩形塊進(jìn)行預(yù)測(cè)得到的預(yù)測(cè)矩形塊作為預(yù)測(cè)結(jié)果。
目前在視頻編碼標(biāo)準(zhǔn)中,主要存在四種預(yù)測(cè)編碼方法。因?yàn)橐曨l信號(hào)的輸入可以分為逐行掃描的和隔行掃描的。逐行掃描的視頻信號(hào)叫作幀圖像,隔行掃描的視頻信號(hào)叫作場(chǎng)圖像。幀圖像中的宏塊叫幀宏塊,場(chǎng)圖像中的宏塊叫場(chǎng)宏塊。以幀宏塊為單位的預(yù)測(cè)編碼方法叫幀預(yù)測(cè)編碼方法(簡(jiǎn)稱(chēng)幀編碼),以場(chǎng)宏塊為單位的預(yù)測(cè)編碼方法叫場(chǎng)預(yù)測(cè)編碼方法(簡(jiǎn)稱(chēng)場(chǎng)編碼)。在H.261,H.263,H.263+,H.264標(biāo)準(zhǔn)以及ISO的MPEG組織制定的MPEG-1,MPEG-2,MPEG-4標(biāo)準(zhǔn)等都包含的幀編碼,MPEG-2,MPEG-4,H.264還包括場(chǎng)編碼。在H.264又提出了根據(jù)編碼代價(jià)值進(jìn)行自適應(yīng)選擇幀編碼或場(chǎng)編碼的自適應(yīng)幀場(chǎng)預(yù)測(cè)編碼方法,以及基于宏塊對(duì)的自適應(yīng)幀場(chǎng)預(yù)測(cè)編碼方法。
幀編碼對(duì)于幀圖像來(lái)說(shuō)效果較好,但不適應(yīng)于場(chǎng)圖像。
場(chǎng)編碼對(duì)于場(chǎng)圖像來(lái)說(shuō)效果較好,但不適應(yīng)于幀圖像。
幀場(chǎng)自適應(yīng)預(yù)測(cè)編碼方法為對(duì)視頻信號(hào)首先分別進(jìn)行幀編碼和場(chǎng)編碼,然后根據(jù)兩者的編碼代價(jià)值,決定采用幀編碼的編碼碼流還是場(chǎng)編碼的編碼碼流。這種預(yù)測(cè)編碼方法能夠適應(yīng)幀圖像和場(chǎng)圖像,但是這種方法是以整幀的編碼代價(jià)值為單位進(jìn)行比較選擇,因此編碼效率不高。
基于宏塊對(duì)的幀場(chǎng)自適應(yīng)預(yù)測(cè)編碼方法為先進(jìn)行基于宏塊對(duì)的幀編碼和場(chǎng)編碼,然后根據(jù)兩者的編碼代價(jià)值,決定采用基于宏塊對(duì)的幀編碼的編碼碼流還是場(chǎng)編碼的編碼碼流。這種預(yù)測(cè)編碼方法也能夠適應(yīng)幀圖像和場(chǎng)圖像,但復(fù)雜度很大。
發(fā)明內(nèi)容
本發(fā)明的目的是為克服已有技術(shù)的不足之處,提出一種基于塊組(BlockGroup)結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法。本發(fā)明利用塊組數(shù)據(jù)結(jié)構(gòu)的特點(diǎn),采用兩階段進(jìn)行預(yù)測(cè)編碼。本發(fā)明重點(diǎn)定義預(yù)測(cè)編碼結(jié)構(gòu),這種預(yù)測(cè)編碼結(jié)構(gòu)能夠結(jié)合其他各種編碼技術(shù),有效的提高視頻信號(hào)的壓縮效率。
本發(fā)明提出的一種視頻信號(hào)編碼中塊組編碼結(jié)構(gòu),其特征在于,定義M像素×N像素的塊為塊組,包括原始?jí)K組和派生塊組;其中,原始?jí)K組為連續(xù)的M像素×N像素的塊;派生塊組為對(duì)原始?jí)K組進(jìn)行水平或垂直1/2抽樣并重新排列得到的M像素×N像素的塊;所說(shuō)的派生塊組按第一組塊組、第二組塊組的順序組成塊組編碼結(jié)構(gòu)。
本發(fā)明基于上述塊組編碼結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法,其特征在于,定義M像素×N像素的塊為塊組,包括原始?jí)K組和派生塊組;其中,原始?jí)K組為連續(xù)的M像素×N像素的塊;派生塊組為對(duì)原始?jí)K組進(jìn)行水平或垂直1/2抽樣并重新排列得到的M像素×N像素的塊;所說(shuō)的派生塊組按第一組塊組、第二組塊組的順序組成塊組編碼結(jié)構(gòu);根據(jù)派生塊組的特征確定塊組中塊的編碼階段屬性;包括編碼過(guò)程和解碼過(guò)程所說(shuō)的編碼過(guò)程,具體包括以下步驟1)進(jìn)行第一階段編碼,包括下列步驟(1)從原始圖像中獲得一個(gè)原始?jí)K組,作為當(dāng)前編碼塊組,根據(jù)原始?jí)K組進(jìn)行抽樣處理得到四種派生塊組;(2)如果被選定的塊組編碼結(jié)構(gòu)的第一組塊組中沒(méi)有派生塊組,則該編碼結(jié)構(gòu)的第一組塊組不編碼;如果被選定的塊組編碼結(jié)構(gòu)的第一組塊組中存在派生塊組,則對(duì)該編碼結(jié)構(gòu)的第一組塊組進(jìn)行下面編碼如果被選定的塊組編碼結(jié)構(gòu)的第一組塊組中只存在一種派生塊組,首先考慮第一組塊組中派生塊組的上層/下層兩個(gè)塊,根據(jù)這兩個(gè)塊的編碼階段屬性,如果是在第一階段編碼,則對(duì)該塊進(jìn)行編碼并計(jì)算其編碼代價(jià)值,如果是在第二階段編碼,則估計(jì)該塊的編碼代價(jià)值;將該派生塊組的上層/下層兩個(gè)塊的編碼碼流作為第一組塊組上層/下層塊的編碼碼流,其編碼代價(jià)值作為第一組塊組上層/下層塊的編碼代價(jià)值;然后按同樣的方式進(jìn)行第一組塊組下層/上層兩個(gè)塊的編碼,并獲得第一組塊組下層/上層塊的編碼碼流和下層/上層塊的編碼代價(jià)值;最后將上、下層塊的編碼代價(jià)值之和作為第一組塊組的編碼代價(jià)值;如果被選定的塊組編碼結(jié)構(gòu)的第一組塊組中存在兩種派生塊組,首先考慮第一組塊組中第一種派生塊組的上層/下層兩個(gè)塊,根據(jù)這兩個(gè)塊的編碼階段屬性,如果是在第一階段編碼,則對(duì)該塊進(jìn)行編碼并計(jì)算其編碼代價(jià)值,如果是在第二階段編碼,則估計(jì)該塊的編碼代價(jià)值;然后再考慮第一組塊組中第二種派生塊組的上層/下層兩個(gè)塊,根據(jù)這兩個(gè)塊的編碼階段屬性,如果是在第一階段編碼,則對(duì)該塊編碼并計(jì)算其編碼代價(jià)值,如果是在第二階段編碼,則估計(jì)該塊的編碼代價(jià)值;最后根據(jù)這兩種派生塊組上層/下層兩個(gè)塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的派生塊組的上層/下層兩個(gè)塊的編碼碼流作為第一組塊組上層/下層塊的編碼碼流,其編碼代價(jià)值作為第一組塊組上層/下層塊的編碼代價(jià)值;按同樣的方式進(jìn)行第一組塊組下層/上層兩個(gè)塊的編碼,并獲得第一組塊組下層/上層塊的編碼碼流和下層/上層塊的編碼代價(jià)值;將上、下層塊的編碼代價(jià)值之和作為第一組塊組的編碼代價(jià)值;
(3)如果被選定的塊組編碼結(jié)構(gòu)的第二組塊組中沒(méi)有派生塊組,該編碼結(jié)構(gòu)的第二組塊組不編碼;如果被選定的塊組編碼結(jié)構(gòu)的第二組塊組中存在派生塊組,則按照第(2)步相同的編碼過(guò)程對(duì)該編碼結(jié)構(gòu)的第二組塊組進(jìn)行編碼,得到第二組塊組的編碼碼流和編碼代價(jià)值;(4)當(dāng)前編碼塊組的編碼碼流輸出如果被選定的塊組編碼結(jié)構(gòu)中只有一組塊組進(jìn)行了編碼,則根據(jù)第(2)步或第(3)步的結(jié)果,決定當(dāng)前編碼塊組的上、下層采用哪種派生塊組類(lèi)型,再根據(jù)派生塊組中塊的編碼階段屬性,輸出已經(jīng)編碼塊的碼流;如果被選定的塊組編碼結(jié)構(gòu)的兩組塊組都進(jìn)行了編碼,則比較第(2)步中得到的第一組塊組的編碼代價(jià)值與第(3)步中得到的第二組塊組的編碼代價(jià)值,決定當(dāng)前編碼塊組采用哪組塊組的編碼碼流當(dāng)?shù)谝唤M塊組的編碼代價(jià)值小,當(dāng)前編碼塊組就采用第一組塊組的編碼碼流,根據(jù)第(2)步的結(jié)果,決定當(dāng)前編碼塊組的上、下層采用哪種派生塊組類(lèi)型,再根據(jù)派生塊組中塊的編碼階段屬性,輸出已經(jīng)編碼塊的碼流;當(dāng)?shù)诙M塊組的編碼代價(jià)值小,當(dāng)前編碼塊組就采用第二組塊組的編碼碼流,根據(jù)第(3)步的結(jié)果,決定當(dāng)前編碼塊組的上、下層采用哪種派生塊組類(lèi)型,再根據(jù)派生塊組中塊的編碼階段屬性,輸出已經(jīng)編碼塊的碼流;(5)對(duì)當(dāng)前編碼塊組中沒(méi)有編碼的塊進(jìn)行插值獲得重建塊,并與由編碼獲得的重建塊構(gòu)成當(dāng)前編碼塊組的重建塊組;(6)重復(fù)(1)到(5)步驟,直到原始圖像中所有的原始?jí)K組完成編碼,則第一階段編碼完成;在第一階段編碼中所有的重建塊組構(gòu)成了重建幀圖像,作為第二階段編碼時(shí)的參考幀;2)進(jìn)行第二階段編碼,包括下列步驟(1)從原始圖像中獲得一個(gè)與第一階段(1)步相同的原始?jí)K組,即當(dāng)前編碼塊組,根據(jù)原始?jí)K組進(jìn)行抽樣處理得到四種派生塊組;(2)以第一階段編碼中所得到的重建幀圖像作為第二階段編碼時(shí)的參考幀,對(duì)當(dāng)前編碼塊組中第一階段沒(méi)有編碼的塊進(jìn)行編碼,并得到其重建塊;(3)用編碼得到的重建塊替代第一階段編碼時(shí)通過(guò)插值得到的重建塊,并且輸出編碼碼流;(4)重復(fù)(1)到(3)步驟,直到原始圖像中所有的原始?jí)K組完成第二階段編碼,則第二階段編碼完成;所說(shuō)的解碼過(guò)程,具體包括以下步驟1)第一階段解碼(1)首先根據(jù)編碼碼流判斷碼流的編碼結(jié)構(gòu)和要解碼的塊組類(lèi)型,如果要解碼的塊組屬于碼流的編碼結(jié)構(gòu)的第一組塊組,則到第(2)步解碼;如果要解碼的塊組屬于碼流的編碼結(jié)構(gòu)的第二組塊組,則到第(3)步解碼;(2)碼流的編碼結(jié)構(gòu)的第一組塊組解碼根據(jù)編碼碼流判斷上層和下層兩個(gè)塊的派生塊組類(lèi)型,再根據(jù)該塊的編碼階段屬性,決定是否解碼如果該塊在第一階段編碼,則該塊直接解碼并得到解碼重建塊;如果該塊在第二階段編碼,則該塊留在第二階段解碼;
(3)碼流的編碼結(jié)構(gòu)的第二組塊組解碼根據(jù)編碼碼流判斷上層和下層兩個(gè)塊的派生塊組類(lèi)型,再根據(jù)該塊的編碼階段屬性,決定是否解碼如果該塊在第一階段編碼,則該塊直接解碼并得到解碼重建塊;如果該塊在第二階段編碼,則該塊留在第二階段解碼;(4)根據(jù)已經(jīng)解碼的塊對(duì)第(2)步或第(3)步塊組解碼中沒(méi)有解碼的塊進(jìn)行插值獲得重建塊,并與第(2)步或第(3)步中解碼得到的重建塊構(gòu)成一個(gè)完整的重建塊組;(5)重復(fù)第(1)到第(4)的步驟,直到所有塊組都被解碼,則第一階段解碼完成。在第一階段解碼中所有的重建塊組構(gòu)成了重建幀圖像,作為第二階段解碼的參考幀圖像;2)第二階段解碼(1)對(duì)解碼的塊組中第一階段沒(méi)有解碼的塊進(jìn)行解碼,以第一階段得到的解碼重建幀圖像作為解碼參考幀,對(duì)這些未解碼的塊進(jìn)行解碼,并得到解碼塊的重建塊;(2)用第(1)步的解碼重建塊替代第一階段通過(guò)插值得到的重建塊,這樣得到最終的解碼重建幀,并以此作為解碼下一幀的解碼參考幀。
本發(fā)明的原理在視頻編碼時(shí),預(yù)測(cè)的好壞決定編碼效率的高低,因此對(duì)于一幅圖像,如果考慮先編碼其中一部分,但這部分能夠比較滿(mǎn)意的重建整幅圖像,然后將這個(gè)重建圖像作為這幅圖像中剩余部分編碼時(shí)預(yù)測(cè)的參考圖像,這樣能有效的提高那些剩余部分圖像的編碼效率,這就是本發(fā)明的分階段預(yù)測(cè)編碼思想。在本發(fā)明采用的塊組結(jié)構(gòu)中,有些部分在第一階段編碼,有些部分留在第二階段編碼,這樣就很好的實(shí)現(xiàn)了分階段預(yù)測(cè)編碼思想。
本發(fā)明的效果本發(fā)明主要特點(diǎn)是定義了預(yù)測(cè)編碼結(jié)構(gòu),這種預(yù)測(cè)編碼結(jié)構(gòu)能夠結(jié)合其他各種編碼技術(shù),有效的提高視頻信號(hào)的壓縮效率。針對(duì)最新的JVT參考軟件JM61e,在相同的試驗(yàn)條件下,所做試驗(yàn)表明本發(fā)明的編碼效率明顯高于JVT結(jié)果。
圖1為本發(fā)明采用的塊組結(jié)構(gòu)示意圖。
圖2為本發(fā)明的四種類(lèi)型的派生塊組結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明提出的一種基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法,結(jié)合附圖及實(shí)施例詳細(xì)說(shuō)明如下本發(fā)明定義M像素×N像素為塊組(Block Group),定義連續(xù)的M像素×N像素為原始?jí)K組。
本發(fā)明的原始?jí)K組產(chǎn)生方法為對(duì)于逐行掃描的原始圖像,一個(gè)連續(xù)的M像素×N像素就構(gòu)成一個(gè)原始?jí)K組;對(duì)于隔行掃描的原始圖像,先將時(shí)間上相鄰的奇場(chǎng)和偶場(chǎng),或偶場(chǎng)和奇場(chǎng)圖像按自然空間位置拼成幀圖像,然后在拼成的幀圖像中一個(gè)連續(xù)的M像素×N像素就構(gòu)成一個(gè)原始?jí)K組,如圖1所示。
對(duì)原始?jí)K組進(jìn)行水平或垂直1/2抽樣,就得到四種類(lèi)型的派生塊組A、B、C和D,如圖2所示。
圖2中A為連續(xù)塊組(Non-sampling Block Group-NS)對(duì)原始?jí)K組不進(jìn)行任何抽樣就得到這種類(lèi)型塊組,該派生塊組由NS1、NS2、NS3和NS4四個(gè)塊組成,其中NS1和NS2是上層兩個(gè)塊,NS3和NS4是下層兩個(gè)塊。具體定義為NS1(x,y)=BG(x,y),
NS2(x,y)=BG(x+M/2,y),NS3(x,y)=BG(x,y+N/2),NS4(x,y)=BG(x+M/2,y+N/2),x=1,…,M/2,y=1,…,N/2,其中,BG(x,y)是原始?jí)K組中在(x,y)點(diǎn)的像素值,這里x=1,…,M,y=1,…,N。
圖2中B為水平抽樣塊組(Horiztonal-sampling Block Group-HS)對(duì)原始?jí)K組進(jìn)行水平1/2抽樣就得到這種類(lèi)型塊組,該派生塊組由HS1、HS2、HS3和HS4四個(gè)塊組成,其中HS1和HS2是上層兩個(gè)塊,HS3和HS4是下層兩個(gè)塊。具體定義為HS1(x,y)=BG(2x,y),HS2(x,y)=BG(2x+1,y),HS3(x,y)=BG(2x,y+N/2),HS4(x,y)=BG(2x+1,y+N/2),x1,…,M/2,y=1,…,N/2,其中,BG(x,y)是原始?jí)K組中在(x,y)點(diǎn)的像素值,這里x=1,…,M,y=1,…,N。
圖2中C為垂直抽樣塊組(Vertical-sampling Block Group-VS)對(duì)原始?jí)K組進(jìn)行垂直1/2抽樣就得到這種類(lèi)型塊組,該派生塊組由VS1、VS2、VS3和VS4四個(gè)塊組成,其中VS1和VS2是上層兩個(gè)塊,VS3和VS4是下層兩個(gè)塊。具體定義為VS1(x,y)=BG(x,2y),VS2(x,y)=BG(x+M/2,2y),VS3(x,y)=BG(x,2y+1),VS4(x,y)=BG(x+M/2,2y+1),x=1,…,M/2,y=1,…,N/2,其中,BG(x,y)是原始?jí)K組中在(x,y)點(diǎn)的像素值,這里x=1,…,M,y=1,…,N。
圖2中D為垂直水平抽樣塊組(Vertical-Horiztonal-sampling Block Group-VHS)對(duì)原始?jí)K組進(jìn)行垂直1/2抽樣再水平1/2抽樣就得到這種類(lèi)型塊組,該派生塊組由VHS1、VHS2、VHS3和VHS4四個(gè)塊組成,其中VHS1和VHS2是上層兩個(gè)塊,VHS3和VHS4是下層兩個(gè)塊。具體定義為VHS1(x,y)=BG(2x,2y),VHS2(x,y)=BG(2x+1,2y),VHS3(x,y)=BG(2x,2y+1),VHS4(x,y)=BG(2x+1,2y+1),x=1,…,M/2,y=1,…,N/2,其中,BG(x,y)是原始?jí)K組中在(x,y)點(diǎn)的像素值,這里x=1,…,M,y=1,…,N。
本發(fā)明將四種派生塊組進(jìn)行組合編碼,按第一組塊組、第二組塊組的順序組合構(gòu)成塊組編碼結(jié)構(gòu),其中第一組塊組和第二組塊組均由四種派生塊組中任意一種或任意兩種派生塊組構(gòu)成,第一組塊組和第二組塊組中可以有一組組塊沒(méi)有派生組塊,各種塊組編碼結(jié)構(gòu)列舉如下1.NS-HS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組和HS塊組,第二組塊組沒(méi)有任何塊組;2.VS-VHS塊組編碼結(jié)構(gòu)第一組塊組沒(méi)有任何塊組,第二組塊組包括VS塊組和VHS塊組;3.NS-VS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組,第二組塊組包括VS塊組;4.HS-VHS塊組編碼結(jié)構(gòu)第一組塊組包括HS塊組,第二組塊組包括VHS塊組;
5.NS-VHS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組,第二組塊組包括VHS塊組;6.HS-VS塊組編碼結(jié)構(gòu)第一組塊組包括HS塊組,第二組塊組包括VS塊組;7.NS-HS-VS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組和HS塊組,第二組塊組包括VS塊組;8.NS-HS-VHS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組和HS塊組,第二組塊組包括VHS塊組;9.NS-VS-VHS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組,第二組塊組包括VS塊組和VHS塊組;10.HS-VS-VHS塊組編碼結(jié)構(gòu)第一組塊組包括HS塊組,第二組塊組包括VS塊組和VHS塊組;11.NS-HS-VS-VHS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組和HS塊組,第二組塊組包括VS塊組和VHS塊組;上述定義的編碼結(jié)構(gòu)只是本發(fā)明可以采用的編碼結(jié)構(gòu)中的一部分例子,可以定義與上述編碼結(jié)構(gòu)相類(lèi)似的其他結(jié)構(gòu)。
本發(fā)明將根據(jù)派生塊組特征確定其中塊的編碼階段屬性在不同類(lèi)型的派生塊組中有些塊在第一階段編碼,有些在第二階段編碼。區(qū)分塊編碼階段屬性的原則是在派生塊組中,如果這個(gè)塊被其他的已編碼塊通過(guò)插值能夠獲得比較滿(mǎn)意的重建塊或者這個(gè)塊在第二階段的編碼代價(jià)值將比在第一階段的編碼代價(jià)值小,則這個(gè)塊留在第二階段編碼,否則在第一階段編碼。根據(jù)這些原則,本發(fā)明定義了不同派生塊組中塊的編碼階段屬性對(duì)于NS塊組,每個(gè)塊都必須在第一階段編碼。
對(duì)于HS塊組,可以將上層塊HS1、HS2中任意一個(gè)塊和下層塊HS3、HS4中任意一個(gè)塊放在第一階段編碼,剩下的塊放在第二階段編碼;還可以將HS1、HS2、HS3和HS4四個(gè)塊中任意三個(gè)塊放在第一階段編碼,剩下的塊放在第二階段編碼。例如可以將HS1和HS3放在第一階段編碼,HS2和HS4在第二階段編碼;可以將HS2和HS4放在第一階段編碼,HS1和HS3在第二階段編碼;也可以將HS2和HS3放在第一階段編碼,HS1和HS4放在第二階段編碼;還可以將HS1和HS4放在第一階段編碼,HS2和HS3放在第二階段編碼;例如將HS1、HS2、HS3放在第一階段編碼,剩下的塊HS4放在第二階段編碼;其它依次類(lèi)推。
對(duì)于VS塊組,可以將上層兩個(gè)塊VS1和VS2放在第一階段編碼,將下層兩個(gè)塊VS3和VS4放在第二階段編碼;也可以將下層兩個(gè)塊VS3和VS4放在第一階段編碼,將上層兩個(gè)塊VS1和VS2放在第二階段編碼;還可以將VS1、VS2、VS3和VS4四個(gè)塊中任意三個(gè)塊放在第一階段編碼,剩下的塊放在第二階段編碼,例如,將VS1、VS2、VS3三個(gè)塊放在第一階段編碼,剩下的塊VS4放在第二階段編碼,其它依次類(lèi)推。
對(duì)于VHS塊組,可以將VHS1、VHS2、VHS3和VHS4四個(gè)塊中任意一個(gè)塊或任意兩個(gè)或任意三個(gè)塊放在第一階段編碼,剩下的塊放在第二階段編碼;例如,可以將VHS1放在第一階段編碼,VHS2,VHS3和VHS4放在第二階段編碼;也可以將VHS1和VHS2放在第一階段編碼,VHS3和VHS4放在第二階段編碼;還可以將VHS1、VHS2、VHS3三個(gè)塊放在第一階段編碼,剩下的VHS4塊放在第二階段編碼;其它依次類(lèi)推。
本發(fā)明提出的一種基于塊組結(jié)構(gòu)的分階段自適應(yīng)預(yù)測(cè)編碼方法,在上述塊組編碼結(jié)構(gòu)中任意選取一種編碼結(jié)構(gòu),并根據(jù)該編碼結(jié)構(gòu)中塊組的編碼階段屬性進(jìn)行編碼,包括編碼過(guò)程和解碼過(guò)程;編碼過(guò)程的具體包括以下步驟1)進(jìn)行第一階段編碼,包括下列步驟(1)從原始圖像中獲得一個(gè)原始?jí)K組,作為當(dāng)前編碼塊組,根據(jù)原始?jí)K組進(jìn)行抽樣處理得到四種派生塊組;(2)如果被選定的塊組編碼結(jié)構(gòu)的第一組塊組中沒(méi)有派生塊組,則該編碼結(jié)構(gòu)的第一組塊組不編碼;如果被選定的塊組編碼結(jié)構(gòu)的第一組塊組中存在派生塊組,則對(duì)該編碼結(jié)構(gòu)的第一組塊組進(jìn)行下面編碼如果被選定的塊組編碼結(jié)構(gòu)的第一組塊組中只存在一種派生塊組,首先考慮第一組塊組中派生塊組的上層/下層兩個(gè)塊,根據(jù)每個(gè)塊的編碼階段屬性,如果是在第一階段編碼,則對(duì)該塊進(jìn)行編碼并計(jì)算其編碼代價(jià)值,如果是在第二階段編碼,則估計(jì)該塊的編碼代價(jià)值;這樣得到第一組塊組上層/下層塊的編碼碼流和第一組塊組上層/下層塊的編碼代價(jià)值;然后按同樣的方式進(jìn)行第一組塊組下層/上層兩個(gè)塊的編碼,這樣得到第一組塊組下層/上層塊的編碼碼流和下層/上層塊的編碼代價(jià)值;最后將上、下層塊的編碼代價(jià)值之和作為第一組塊組的編碼代價(jià)值;如果被選定的塊組編碼結(jié)構(gòu)的第一組塊組中存在兩種派生塊組,首先考慮第一組塊組中第一種派生塊組的上層/下層兩個(gè)塊,根據(jù)這兩個(gè)塊的編碼階段屬性,如果是在第一階段編碼,則對(duì)該塊進(jìn)行編碼并計(jì)算其編碼代價(jià)值,如果是在第二階段編碼,則估計(jì)該塊的編碼代價(jià)值;然后再考慮第一組塊組中第二種派生塊組的上層/下層兩個(gè)塊,根據(jù)這兩個(gè)塊的編碼階段屬性,如果是在第一階段編碼,則對(duì)該塊編碼并計(jì)算其編碼代價(jià)值,如果是在第二階段編碼,則估計(jì)該塊的編碼代價(jià)值;最后根據(jù)這兩種派生塊組上層/下層兩個(gè)塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的派生塊組的上層/下層兩個(gè)塊的編碼碼流作為第一組塊組上層/下層塊的編碼碼流,其編碼代價(jià)值作為第一組塊組上層/下層塊的編碼代價(jià)值;按同樣的方式進(jìn)行第一組塊組下層/上層兩個(gè)塊的編碼,這樣得到第一組塊組下層/上層塊的編碼碼流和下層/上層塊的編碼代價(jià)值;將上、下層塊的編碼代價(jià)值之和作為第一組塊組的編碼代價(jià)值;(3)如果被選定的塊組編碼結(jié)構(gòu)的第二組塊組中沒(méi)有派生塊組,該編碼結(jié)構(gòu)的第二組塊組不編碼;如果被選定的塊組編碼結(jié)構(gòu)的第二組塊組中存在派生塊組,則按照第(2)步相同的編碼過(guò)程對(duì)該編碼結(jié)構(gòu)的第二組塊組進(jìn)行編碼,得到第二組塊組的編碼碼流和編碼代價(jià)值;(4)當(dāng)前編碼塊組的編碼碼流輸出如果被選定的塊組編碼結(jié)構(gòu)中只有一組塊組進(jìn)行了編碼,則根據(jù)第(2)步或第(3)步的結(jié)果,決定當(dāng)前編碼塊組的上、下層采用哪種派生塊組類(lèi)型,再根據(jù)派生塊組中塊的編碼階段屬性,輸出已經(jīng)編碼塊的碼流;如果被選定的塊組編碼結(jié)構(gòu)的兩組塊組都進(jìn)行了編碼,則比較第(2)步中得到的第一組塊組的編碼代價(jià)值與第(3)步中得到的第二組塊組的編碼代價(jià)值,決定當(dāng)前編碼塊組采用哪組塊組的編碼碼流當(dāng)?shù)谝唤M塊組的編碼代價(jià)值小,當(dāng)前編碼塊組就采用第一組塊組的編碼碼流,根據(jù)第(2)步的結(jié)果,決定當(dāng)前編碼塊組的上、下層采用哪種派生塊組類(lèi)型,再根據(jù)派生塊組中塊的編碼階段屬性,輸出已經(jīng)編碼塊的碼流;當(dāng)?shù)诙M塊組的編碼代價(jià)值小,當(dāng)前編碼塊組就采用第二組塊組的編碼碼流,根據(jù)第(3)步的結(jié)果,決定當(dāng)前編碼塊組的上、下層采用哪種派生塊組類(lèi)型,再根據(jù)派生塊組中塊的編碼階段屬性,輸出已經(jīng)編碼塊的碼流;(5)對(duì)當(dāng)前編碼塊組中沒(méi)有編碼的塊進(jìn)行插值獲得重建塊,并與由編碼獲得的重建塊構(gòu)成當(dāng)前編碼塊組的重建塊組;(6)重復(fù)(1)到(5)步驟,直到原始圖像中所有的原始?jí)K組完成編碼,則第一階段編碼完成;在第一階段編碼中所有的重建塊組構(gòu)成了重建幀圖像,作為第二階段編碼時(shí)的參考幀;2)進(jìn)行第二階段編碼,包括下列步驟(1)從原始圖像中獲得一個(gè)與第一階段(1)步相同的原始?jí)K組,即當(dāng)前編碼塊組,根據(jù)原始?jí)K組進(jìn)行抽樣處理得到四種派生塊組;(2)以第一階段編碼中所得到的重建幀圖像作為第二階段編碼時(shí)的參考幀,對(duì)當(dāng)前編碼塊組中第一階段沒(méi)有編碼的塊進(jìn)行編碼,并得到其重建塊;(3)用編碼得到的重建塊替代第一階段編碼時(shí)通過(guò)插值得到的重建塊,并且輸出編碼碼流;(4)重復(fù)(1)到(3)步驟,直到原始圖像中所有的原始?jí)K組完成第二階段編碼,則第二階段編碼完成;解碼過(guò)程的具體包括以下步驟1)第一階段解碼(1)首先根據(jù)編碼碼流判斷碼流的編碼結(jié)構(gòu)和要解碼的塊組類(lèi)型,如果要解碼的塊組屬于碼流的編碼結(jié)構(gòu)的第一組塊組,則到第(2)步解碼;如果要解碼的塊組屬于碼流的編碼結(jié)構(gòu)的第二組塊組,則到第(3)步解碼;(2)碼流的編碼結(jié)構(gòu)的第一組塊組解碼根據(jù)編碼碼流判斷上層和下層兩個(gè)塊的派生塊組類(lèi)型,再根據(jù)該塊的編碼階段屬性,決定是否解碼如果該塊在第一階段編碼,則該塊直接解碼并得到解碼重建塊;如果該塊在第二階段編碼,則該塊留在第二階段解碼;(3)碼流的編碼結(jié)構(gòu)的第二組塊組解碼根據(jù)編碼碼流判斷上層和下層兩個(gè)塊的派生塊組類(lèi)型,再根據(jù)該塊的編碼階段屬性,決定是否解碼如果該塊在第一階段編碼,則該塊直接解碼并得到解碼重建塊;如果該塊在第二階段編碼,則該塊留在第二階段解碼;(4)根據(jù)已經(jīng)解碼的塊對(duì)第(2)步或第(3)步塊組解碼中沒(méi)有解碼的塊進(jìn)行插值獲得重建塊,并與第(2)步或第(3)步中解碼得到的重建塊構(gòu)成一個(gè)完整的重建塊組;(5)重復(fù)第(1)到第(4)的步驟,直到所有塊組都被解碼,則第一階段解碼完成。在第一階段解碼中所有的重建塊組構(gòu)成了重建幀圖像,作為第二階段解碼的參考幀圖像;2)第二階段解碼(1)對(duì)解碼的塊組中第一階段沒(méi)有解碼的塊進(jìn)行解碼,以第一階段得到的解碼重建幀圖像作為解碼參考幀,對(duì)這些未解碼的塊進(jìn)行解碼,并得到解碼塊的重建塊;(2)用第(1)步的解碼重建塊替代第一階段通過(guò)插值得到的重建塊,這樣得到最終的解碼重建幀,并以此作為解碼下一幀的解碼參考幀。
本發(fā)明根據(jù)M像素×N像素的組塊中M和N不同取值和不同的塊組編碼結(jié)構(gòu),列舉8種基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法的實(shí)施例,分別說(shuō)明如下實(shí)施例一本實(shí)施例中M像素×N像素的塊組定義為宏塊組,即M等于32,N等于32,原始?jí)K組定義原始宏塊組,派生塊組定義為派生宏塊組。
本實(shí)施例采用NS-HS-VS-VHS編碼結(jié)構(gòu),其中派生宏塊組中宏塊的編碼階段屬性如下對(duì)于NS宏塊組,每個(gè)宏塊都必須在第一階段編碼。
對(duì)于HS宏塊組,HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼。
對(duì)于VS宏塊組,VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼。
對(duì)于VHS宏塊組,VHS1和VHS2放在第一階段編碼,VHS3和VHS4放在第二階段編碼。
本實(shí)施例包括編碼過(guò)程和解碼過(guò)程如下其中編碼過(guò)程,具體包括以下步驟第一階段編碼1)從原始圖像中獲得一個(gè)原始宏塊組,即為當(dāng)前編碼宏塊組,根據(jù)原始宏塊組進(jìn)行抽樣處理得到四種類(lèi)型的派生宏塊組,即NS、HS、VS、VHS宏塊組。
2)對(duì)NS宏塊組和HS宏塊組進(jìn)行編碼(NS-HS宏塊組編碼)首先對(duì)NS宏塊組的上層兩個(gè)宏塊NS1和NS2進(jìn)行編碼并計(jì)算其編碼代價(jià)值,然后對(duì)HS的上層左邊宏塊HS1進(jìn)行編碼并計(jì)算其編碼代價(jià)值,再估計(jì)上層右邊宏塊HS2的編碼代價(jià)值,最后根據(jù)NS和HS宏塊組上層兩個(gè)宏塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的宏塊組類(lèi)型的上層兩個(gè)宏塊(NS1和NS2或HS1和HS2)的編碼碼流作為NS-HS宏塊組上層宏塊的編碼碼流,其編碼代價(jià)值作為NS-HS宏塊組上層宏塊的編碼代價(jià)值。
同樣,對(duì)NS宏塊組的下層兩個(gè)宏塊NS3和NS4進(jìn)行編碼并計(jì)算其編碼代價(jià)值,然后對(duì)HS的下層左邊宏塊HS3進(jìn)行編碼并計(jì)算其編碼代價(jià)值,再估計(jì)下層右邊宏塊HS4的編碼代價(jià)值,最后根據(jù)NS和HS宏塊組下層兩個(gè)宏塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的宏塊組類(lèi)型的下層兩個(gè)宏塊(NS3和NS4或HS3和HS4)的編碼碼流作為NS-HS宏塊組下層宏塊的編碼碼流,其編碼代價(jià)值作為NS-HS宏塊組下層宏塊的編碼代價(jià)值。
將上、下層宏塊的編碼代價(jià)值之和作為NS-HS宏塊組的編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒,上層和下層兩個(gè)宏塊的左右編碼順序可以顛倒。
3)對(duì)VS宏塊組和VHS宏塊組進(jìn)行編碼(VS-VHS宏塊組編碼)首先對(duì)VS宏塊組的上層兩個(gè)宏塊VS1和VS2編碼并計(jì)算其編碼代價(jià)值,然后對(duì)VHS的上層左邊宏塊VHS1和VHS2進(jìn)行編碼并計(jì)算其編碼代價(jià)值,最后根據(jù)VS和VHS宏塊組上層兩個(gè)宏塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的宏塊組類(lèi)型的上層兩個(gè)宏塊(VS1和VS2或VHS1和VHS2)的編碼碼流作為VS-VHS宏塊組上層宏塊的編碼碼流,其編碼代價(jià)值作為VS-VHS宏塊組上層宏塊的編碼代價(jià)值。
估計(jì)VS和VHS宏塊組的下層兩個(gè)宏塊的編碼代價(jià)值,比較這兩種類(lèi)型宏塊組下層宏塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的宏塊組類(lèi)型的下層兩個(gè)宏塊(VS3和VS4或VHS3和VHS4)的編碼代價(jià)值作為VS-VHS宏塊組下層宏塊的編碼代價(jià)值。
將上、下層宏塊的編碼代價(jià)值之和作為VS-VHS宏塊組的編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒,上層和下層兩個(gè)宏塊的左右編碼順序可以顛倒。
4)當(dāng)前編碼宏塊組的編碼碼流輸出比較步驟2)中NS-HS宏塊組與步驟3)中VS-VHS宏塊組的編碼代價(jià)值,決定當(dāng)前編碼宏塊組采用哪種宏塊組類(lèi)型如果NS-HS宏塊組的編碼代價(jià)值小,當(dāng)前編碼宏塊組的宏塊組類(lèi)型就為NS-HS宏塊組類(lèi)型;再根據(jù)第2)步的結(jié)果,決定當(dāng)前編碼宏塊組的上、下層宏塊的派生宏塊組類(lèi)型如果NS-HS宏塊組的上層兩個(gè)宏塊是NS宏塊組,則輸出NS1和NS2宏塊的編碼碼流;如果NS-HS宏塊組的上層兩個(gè)宏塊是HS宏塊組,則只輸出HS1宏塊的編碼碼流;如果NS-HS宏塊組的下層兩個(gè)宏塊是NS宏塊組,則輸出NS3和NS4宏塊的編碼碼流;如果NS-HS宏塊組的下層兩個(gè)宏塊是HS宏塊組,則只輸出HS3宏塊的編碼碼流;相反,如果VS-VHS宏塊組的編碼代價(jià)值小,當(dāng)前編碼宏塊組的宏塊組類(lèi)型就為VS-VHS宏塊組類(lèi)型。同時(shí)根據(jù)第3)步的結(jié)果,也決定了當(dāng)前編碼宏塊組的上、下層宏塊的派生宏塊組類(lèi)型如果VS-VHS宏塊組的上層兩個(gè)宏塊是VS宏塊組,則輸出VS1和VS2宏塊的編碼碼流;如果VS-VHS宏塊組的上層兩個(gè)宏塊是VHS宏塊組,則輸出VHS1和VHS2宏塊的編碼碼流;VS-VHS宏塊組的下層兩個(gè)宏塊不輸出碼流。
5)對(duì)當(dāng)前編碼宏塊組中沒(méi)有編碼的宏塊進(jìn)行插值獲得重建宏塊經(jīng)過(guò)第4)步,在當(dāng)前編碼宏塊組中可能有些宏塊已經(jīng)編碼輸出,有些宏塊沒(méi)有編碼;因?yàn)橐呀?jīng)編碼的宏塊能夠得到重建的宏塊,而沒(méi)有編碼的宏塊不能得到重建的宏塊,只能通過(guò)插值得到這些沒(méi)有編碼宏塊的重建宏塊;這樣就得到了當(dāng)前編碼宏塊組的整個(gè)重建宏塊組;根據(jù)第4)步,需要插值的宏塊為如果當(dāng)前編碼宏塊組的編碼類(lèi)型為NS-HS宏塊組類(lèi)型,當(dāng)其上層兩個(gè)宏塊是HS宏塊組時(shí),則HS2宏塊需要插值;當(dāng)其下層兩個(gè)宏塊是HS宏塊組時(shí),則HS4宏塊需要插值;如果當(dāng)前編碼宏塊組的編碼類(lèi)型為VS-VHS宏塊組類(lèi)型,其下層兩個(gè)宏塊需要插值;宏塊的插值可以采用各種已有的插值技術(shù)實(shí)現(xiàn),例如多抽頭加權(quán)插值等。
6)重復(fù)1)到5)步驟,直到原始圖像中所有的原始宏塊組完成編碼,則第一階段編碼完成。在第一階段編碼中所有的重建宏塊組構(gòu)成了重建幀圖像,作為第二階段編碼時(shí)的參考幀。
第二階段編碼1)從原始圖像中獲得一個(gè)與第一階段1)步相同的原始宏塊組,即當(dāng)前編碼宏塊組,根據(jù)原始宏塊組進(jìn)行抽樣處理得到四種類(lèi)型的宏塊組,即NS、HS、VS、VHS宏塊組。
2)對(duì)當(dāng)前編碼宏塊組中第一階段沒(méi)有編碼的宏塊進(jìn)行編碼第一階段編碼已經(jīng)決定了當(dāng)前編碼宏塊組的編碼類(lèi)型以及已經(jīng)編碼的宏塊和沒(méi)有編碼的宏塊,因此這一步需要編碼的宏塊就是第一階段沒(méi)有編碼的宏塊。具體判斷過(guò)程如下如果當(dāng)前編碼宏塊組的宏塊類(lèi)型是NS-HS宏塊組類(lèi)型,而且NS-HS宏塊組的上層兩個(gè)宏塊是HS宏塊組,則HS2宏塊需要編碼;如果NS-HS宏塊組的下層兩個(gè)宏塊是HS宏塊組,則HS4宏塊需要編碼;如果當(dāng)前編碼宏塊組的編碼類(lèi)型是VS-VHS宏塊組類(lèi)型時(shí),下層兩個(gè)宏塊需要編碼。以第一階段編碼中所得到的重建幀圖像和第一階段宏塊編碼時(shí)使用的參考幀一起作為第二階段編碼時(shí)的參考幀,也可以只使用第一階段編碼中所得到的重建幀圖像作為第二階段編碼時(shí)的參考幀,還可以包括由第一階段塊編碼時(shí)使用的參考幀和經(jīng)第一階段編碼后得到的重建參考幀相結(jié)合構(gòu)成的參考幀,對(duì)上述需要編碼的宏塊進(jìn)行編碼,并得到重建宏塊。
3)編碼宏塊的碼流輸出和更新重建宏塊輸出編碼宏塊的碼流,用第2)步得到的編碼重建宏塊替代第一階段編碼時(shí)通過(guò)插值得到的重建宏塊。
4)重復(fù)1)到3)步驟,直到原始圖像中所有的原始宏塊組完成第二階段編碼,則第二階段編碼完成。
在上述的編碼過(guò)程中,宏塊編碼可以采用已有的各種編碼技術(shù)實(shí)現(xiàn)。宏塊編碼后,計(jì)算宏塊的編碼代價(jià)值也是采用已有的編碼代價(jià)值計(jì)算技術(shù)。估計(jì)宏塊的編碼代價(jià)值是指不進(jìn)行該宏塊編碼,而只是根據(jù)其周?chē)呀?jīng)編碼的宏塊,估計(jì)出該宏塊的編碼代價(jià)值,例如一個(gè)宏塊的編碼代價(jià)值可以估計(jì)為其周?chē)呀?jīng)編碼的宏塊中與其最相似宏塊的編碼代價(jià)值。
其中解碼過(guò)程,具體包括以下步驟第一階段解碼1)判斷解碼的宏塊組類(lèi)型首先根據(jù)編碼碼流判斷要解碼的宏塊組類(lèi)型。如果是NS-HS宏塊組類(lèi)型,則執(zhí)行第2步,如果是VS-VHS宏塊組類(lèi)型,則執(zhí)行第3步。
2)NS-HS宏塊組解碼根據(jù)編碼碼流判斷上層兩個(gè)宏塊的類(lèi)型,如果上層兩個(gè)宏塊是NS類(lèi)型,直接解碼這兩個(gè)宏塊NS1和NS2;如果上層兩個(gè)宏塊是HS類(lèi)型,直接解碼這兩個(gè)宏塊中左邊的宏塊HS1,右邊的宏塊HS2留在第二階段解碼。
然后,根據(jù)碼流判斷下層兩個(gè)宏塊的類(lèi)型,如果下層兩個(gè)宏塊是NS類(lèi)型,直接解碼這兩個(gè)宏塊NS3和NS4;如果下層兩個(gè)宏塊是HS類(lèi)型,直接解碼這兩個(gè)宏塊中左邊的宏塊HS3,右邊的宏塊HS4留在第二階段解碼。
3)VS-VHS宏塊組解碼根據(jù)碼流判斷上層兩個(gè)宏塊類(lèi)型,如果上層兩個(gè)宏塊是VS類(lèi)型,直接解碼這兩個(gè)宏塊VS1和VS2;如果上層兩個(gè)宏塊是VHS類(lèi)型,直接解碼這兩個(gè)宏塊VHS1和VHS2。
然后,下層兩個(gè)宏塊留在第二階段解碼。
4)對(duì)第2)步或第3)步的宏塊組中沒(méi)有解碼的宏塊進(jìn)行插值獲得重建宏塊根據(jù)已經(jīng)解碼的宏塊對(duì)沒(méi)有解碼的宏塊進(jìn)行插值,這樣就得到了一個(gè)完整的重建宏塊組。這里宏塊的插值采用與編碼過(guò)程中宏塊插值時(shí)相同的插值技術(shù)。
5)重復(fù)第1)到第4)的步驟,直到所有宏塊組都被解碼,則第一階段解碼完成。在第一階段解碼中所有的重建宏塊組構(gòu)成了重建幀圖像,作為第二階段解碼的參考圖像。
第二階段解碼1)對(duì)解碼的宏塊組中第一階段沒(méi)有解碼的宏塊進(jìn)行解碼經(jīng)過(guò)第一階段解碼,在宏塊組中可能還有一些宏塊沒(méi)有解碼。以第一階段得到的解碼重建幀圖像和第一階段使用的解碼參考幀作為第二階段解碼時(shí)的參考幀,也可以只使用第一階段解碼中所得到的重建幀圖像作為第二階段解碼時(shí)的參考幀,還可以使用由第一階段塊解碼時(shí)使用的參考幀和經(jīng)第一階段解碼后得到的重建參考幀相結(jié)合構(gòu)成的參考幀,再對(duì)這些未解碼的宏塊進(jìn)行解碼,得到其重建宏塊。
2)更新解碼重建幀用第1)步的解碼重建宏塊替代第一階段通過(guò)插值得到重建宏塊,這樣得到最終的解碼重建幀,并以此作為解碼下一幀的解碼參考幀。
在上述的解碼過(guò)程中,宏塊解碼可以采用與編碼相對(duì)應(yīng)的已有各種解碼技術(shù)實(shí)現(xiàn)。
實(shí)施例二本實(shí)施例中M像素×N像素的塊組定義為宏塊組,即M等于32,N等于32,原始?jí)K組定義原始宏塊組,派生塊組定義為派生宏塊組。
本實(shí)施例采用NS-HS-VS編碼結(jié)構(gòu),其中派生宏塊組中宏塊的編碼階段屬性如下對(duì)于NS宏塊組,每個(gè)宏塊都必須在第一階段編碼。
對(duì)于HS宏塊組,HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼。
對(duì)于VS宏塊組,VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼。
對(duì)于VHS宏塊組,VHS1和VHS2放在第一階段編碼,VHS3和VHS4放在第二階段編碼。
本實(shí)施例實(shí)施例包括編碼過(guò)程和解碼過(guò)程如下其中編碼過(guò)程,具體包括以下步驟第一階段編碼1)從原始圖像中獲得一個(gè)原始宏塊組,即為當(dāng)前編碼宏塊組,根據(jù)原始宏塊組進(jìn)行抽樣處理得到四種類(lèi)型的派生宏塊組,即NS、HS、VS、VHS宏塊組。
2)對(duì)NS宏塊組和HS宏塊組進(jìn)行編碼(NS-HS宏塊組編碼)首先對(duì)NS宏塊組的上層兩個(gè)宏塊NS1和NS2進(jìn)行編碼并計(jì)算其編碼代價(jià)值,然后對(duì)HS的上層左邊宏塊HS1進(jìn)行編碼并計(jì)算其編碼代價(jià)值,再估計(jì)上層右邊宏塊HS2的編碼代價(jià)值,最后根據(jù)NS和HS宏塊組上層兩個(gè)宏塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的宏塊組類(lèi)型的上層兩個(gè)宏塊(NS1和NS2或HS1和HS2)的編碼碼流作為NS-HS宏塊組上層宏塊的編碼碼流,其編碼代價(jià)值作為NS-HS宏塊組上層宏塊的編碼代價(jià)值。
同樣,對(duì)NS宏塊組的下層兩個(gè)宏塊NS3和NS4進(jìn)行編碼并計(jì)算其編碼代價(jià)值,然后對(duì)HS的下層左邊宏塊HS3進(jìn)行編碼并計(jì)算其編碼代價(jià)值,再估計(jì)下層右邊宏塊HS4的編碼代價(jià)值,最后根據(jù)NS和HS宏塊組下層兩個(gè)宏塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的宏塊組類(lèi)型的下層兩個(gè)宏塊(NS3和NS4或HS3和HS4)的編碼碼流作為NS-HS宏塊組下層宏塊的編碼碼流,其編碼代價(jià)值作為NS-HS宏塊組下層宏塊的編碼代價(jià)值。
將上、下層宏塊的編碼代價(jià)值之和作為NS-HS宏塊組的編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒,上層和下層兩個(gè)宏塊的左右編碼順序可以顛倒。
3)對(duì)VS宏塊組進(jìn)行編碼(VS宏塊組編碼)首先對(duì)VS宏塊組的上層兩個(gè)宏塊VS1和VS2編碼并計(jì)算其編碼代價(jià)值,這樣得到VS宏塊組上層宏塊的編碼碼流和編碼代價(jià)值。
估計(jì)VS宏塊組下層兩個(gè)宏塊的編碼代價(jià)值,這樣得到VS宏塊組下層宏塊的編碼代價(jià)值。
將上、下層宏塊的編碼代價(jià)值之和作為VS宏塊組的編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒,上層和下層兩個(gè)宏塊的左右編碼順序可以顛倒。
4)當(dāng)前編碼宏塊組的編碼碼流輸出比較步驟2)中NS-HS宏塊組與步驟3)中VS-VHS宏塊組的編碼代價(jià)值,決定當(dāng)前編碼宏塊組采用哪種編碼類(lèi)型如果NS-HS宏塊組的編碼代價(jià)值小,當(dāng)前編碼宏塊組的編碼類(lèi)型就為NS-HS宏塊組類(lèi)型;再根據(jù)第2)步的結(jié)果,決定當(dāng)前編碼宏塊組的上、下層的派生宏塊組類(lèi)型如果NS-HS宏塊組的上層兩個(gè)宏塊是NS宏塊組,則輸出NS1和NS2宏塊的編碼碼流;如果NS-HS宏塊組的上層兩個(gè)宏塊是HS宏塊組,則只輸出HS1宏塊的編碼碼流;如果NS-HS宏塊組的下層兩個(gè)宏塊是NS宏塊組,則輸出NS3和NS4宏塊的編碼碼流;如果NS-HS宏塊組的下層兩個(gè)宏塊是HS宏塊組,則只輸出HS3宏塊的編碼碼流;相反,如果VS宏塊組的編碼代價(jià)值小,當(dāng)前編碼宏塊組的編碼類(lèi)型就為VS宏塊組類(lèi)型。同時(shí)根據(jù)第3)步的結(jié)果,也決定了當(dāng)前編碼宏塊組的上、下層的派生宏塊組類(lèi)型,并且輸出VS1和VS2宏塊的編碼碼流。
5)對(duì)當(dāng)前編碼宏塊組中沒(méi)有編碼的宏塊進(jìn)行插值獲得重建宏塊經(jīng)過(guò)第4)步,在當(dāng)前編碼宏塊組中可能有些宏塊已經(jīng)編碼輸出,有些宏塊沒(méi)有編碼;因?yàn)橐呀?jīng)編碼的宏塊能夠得到重建的宏塊,而沒(méi)有編碼的宏塊不能得到重建的宏塊,只能通過(guò)插值得到這些沒(méi)有編碼宏塊的重建宏塊;這樣就得到了當(dāng)前編碼宏塊組的整個(gè)重建宏塊組;根據(jù)第4)步,需要插值的宏塊為如果當(dāng)前編碼宏塊組的編碼類(lèi)型為NS-HS宏塊組類(lèi)型,當(dāng)其上層兩個(gè)宏塊是HS宏塊組時(shí),則HS2宏塊需要插值;當(dāng)其下層兩個(gè)宏塊是HS宏塊組時(shí),則HS4宏塊需要插值;如果當(dāng)前編碼宏塊組的編碼類(lèi)型為VS宏塊組類(lèi)型,下層兩個(gè)宏塊需要插值;宏塊的插值可以采用各種已有的插值技術(shù)實(shí)現(xiàn)。
6)重復(fù)1)到5)步驟,直到原始圖像中所有的原始宏塊組完成編碼,則第一階段編碼完成。在第一階段編碼中所有的重建宏塊組構(gòu)成了重建幀圖像,作為第二階段編碼時(shí)的參考幀。
第二階段編碼1)從原始圖像中獲得一個(gè)與第一階段1)步相同的原始宏塊組,即當(dāng)前編碼宏塊組,根據(jù)原始宏塊組進(jìn)行抽樣處理得到四種類(lèi)型的宏塊組,即NS、HS、VS、VHS宏塊組。
2)對(duì)當(dāng)前編碼宏塊組中第一階段沒(méi)有編碼的宏塊進(jìn)行編碼第一階段編碼已經(jīng)決定了當(dāng)前編碼宏塊組的編碼類(lèi)型以及已經(jīng)編碼的宏塊和沒(méi)有編碼的宏塊,因此這一步需要編碼的宏塊就是第一階段沒(méi)有編碼的宏塊。具體判斷過(guò)程如下如果當(dāng)前編碼宏塊組的編碼類(lèi)型是NS-HS宏塊組類(lèi)型,而且NS-HS宏塊組的上層兩個(gè)宏塊是HS宏塊組,則HS2宏塊需要編碼;如果NS-HS宏塊組的下層兩個(gè)宏塊是HS宏塊組,則HS4宏塊需要編碼;如果當(dāng)前編碼宏塊組的編碼類(lèi)型是VS宏塊組類(lèi)型,下層兩個(gè)宏塊VS3和VS4需要編碼。以第一階段編碼中所得到的重建幀圖像和第一階段宏塊編碼時(shí)使用的參考幀一起作為第二階段編碼時(shí)的參考幀,也可以只使用第一階段編碼中所得到的重建幀圖像作為第二階段編碼時(shí)的參考幀,對(duì)需要編碼的宏塊進(jìn)行編碼,并得到重建宏塊。
3)編碼宏塊的碼流輸出和更新重建宏塊輸出編碼宏塊的碼流,用第2)步得到的編碼重建宏塊替代第一階段編碼時(shí)通過(guò)插值得到的重建宏塊。
4)重復(fù)1)到3)步驟,直到原始圖像中所有的原始宏塊組完成第二階段編碼,則第二階段編碼完成。
在上述的編碼過(guò)程中,宏塊編碼可以采用已有的各種編碼技術(shù)實(shí)現(xiàn)。宏塊編碼后,計(jì)算宏塊的編碼代價(jià)值也是采用已有的編碼代價(jià)值計(jì)算技術(shù)。估計(jì)宏塊的編碼代價(jià)值是指不進(jìn)行該宏塊編碼,而只是根據(jù)其周?chē)呀?jīng)編碼的宏塊,估計(jì)出該宏塊的編碼代價(jià)值,例如一個(gè)宏塊的編碼代價(jià)值可以估計(jì)為其周?chē)呀?jīng)編碼的宏塊中與其最相似宏塊的編碼代價(jià)值。
其中解碼過(guò)程,具體包括以下步驟第一階段解碼1)判斷解碼的宏塊組類(lèi)型首先根據(jù)編碼碼流判斷要解碼的宏塊組類(lèi)型。如果是NS-HS宏塊組類(lèi)型,則執(zhí)行第2步,如果是VS-VHS宏塊組類(lèi)型,則執(zhí)行第3步。
2)NS-HS宏塊組解碼根據(jù)編碼碼流判斷上層兩個(gè)宏塊的類(lèi)型,如果上層兩個(gè)宏塊是NS類(lèi)型,直接解碼這兩個(gè)宏塊NS1和NS2;如果上層兩個(gè)宏塊是HS類(lèi)型,直接解碼這兩個(gè)宏塊中左邊的宏塊HS1,右邊的宏塊HS2留在第二階段解碼。
然后,根據(jù)碼流判斷下層兩個(gè)宏塊的類(lèi)型,如果下層兩個(gè)宏塊是NS類(lèi)型,直接解碼這兩個(gè)宏塊NS3和NS4;如果下層兩個(gè)宏塊是HS類(lèi)型,直接解碼這兩個(gè)宏塊中左邊的宏塊HS3,右邊的宏塊HS4留在第二階段解碼。
3)VS宏塊組解碼直接解碼上層兩個(gè)宏塊VS1和VS2,下層兩個(gè)宏塊留在第二階段解碼。
4)對(duì)第2)步或第3)步的宏塊組中沒(méi)有解碼的宏塊進(jìn)行插值獲得重建宏塊根據(jù)已經(jīng)解碼的宏塊對(duì)沒(méi)有解碼的宏塊進(jìn)行插值,這樣就得到了一個(gè)完整的重建宏塊組。這里宏塊的插值采用與編碼過(guò)程中宏塊插值時(shí)相同的插值技術(shù)。
5)重復(fù)第1)到第4)的步驟,直到所有宏塊組都被解碼,則第一階段解碼完成。在第一階段解碼中所有的重建宏塊組構(gòu)成了重建幀圖像,作為第二階段解碼的參考圖像。
第二階段解碼1)對(duì)解碼的宏塊組中第一階段沒(méi)有解碼的宏塊進(jìn)行解碼經(jīng)過(guò)第一階段解碼,在宏塊組中可能還有一些宏塊沒(méi)有解碼。以第一階段得到的解碼重建幀圖像和第一階段使用的解碼參考幀作為第二階段解碼時(shí)的參考幀,也可以只使用第一階段解碼中所得到的重建幀圖像作為第二階段解碼時(shí)的參考幀,再對(duì)這些未解碼的宏塊進(jìn)行解碼,得到其重建宏塊。
2)更新解碼重建幀用第1)步的解碼重建宏塊替代第一階段通過(guò)插值得到重建宏塊,這樣得到最終的解碼重建幀,并以此作為解碼下一幀的解碼參考幀。
在上述的解碼過(guò)程中,宏塊解碼可以采用與編碼相對(duì)應(yīng)的已有各種解碼技術(shù)實(shí)現(xiàn)。
實(shí)施例三本實(shí)施例中M像素×N像素的塊組定義為宏塊組,即M等于32,N等于32,原始?jí)K組定義原始宏塊組,派生塊組定義為派生宏塊組。
本實(shí)施例采用NS-VS編碼類(lèi)型,其中派生宏塊組中宏塊的編碼階段屬性如下對(duì)于NS宏塊組,每個(gè)宏塊都必須在第一階段編碼。
對(duì)于HS宏塊組,HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼。
對(duì)于VS宏塊組,VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼。
對(duì)于VHS宏塊組,VHS1和VHS2放在第一階段編碼,VHS3和VHS4放在第二階段編碼。
本實(shí)施例包括編碼過(guò)程和解碼過(guò)程如下其中編碼過(guò)程,具體包括以下步驟第一階段編碼1)從原始圖像中獲得一個(gè)原始宏塊組,即為當(dāng)前編碼宏塊組,根據(jù)原始宏塊組進(jìn)行抽樣處理選擇兩種類(lèi)型的派生宏塊組,即NS和VS宏塊組。
2)對(duì)NS宏塊組進(jìn)行編碼首先對(duì)NS宏塊組的上層兩個(gè)宏塊NS1和NS2進(jìn)行編碼并計(jì)算其編碼代價(jià)值,得到NS宏塊組上層宏塊的編碼碼流和編碼代價(jià)值。
同樣,對(duì)NS宏塊組的下層兩個(gè)宏塊NS3和NS4進(jìn)行編碼并計(jì)算其編碼代價(jià)值,得到NS宏塊組下層宏塊的編碼碼流和編碼代價(jià)值。
將上、下層宏塊的編碼代價(jià)值之和作為NS宏塊組的編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒,上層和下層兩個(gè)宏塊的左右編碼順序可以顛倒。
3)對(duì)VS宏塊組進(jìn)行編碼首先對(duì)VS宏塊組的上層兩個(gè)宏塊VS1和VS2進(jìn)行編碼并計(jì)算其編碼代價(jià)值,得到VS宏塊組上層宏塊的編碼碼流和編碼代價(jià)值。
估計(jì)VS宏塊組的下層兩個(gè)宏塊的編碼代價(jià)值,得到VS宏塊組下層宏塊的編碼代價(jià)值。
將上、下層宏塊的編碼代價(jià)值之和作為VS宏塊組的編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒,上層和下層兩個(gè)宏塊的左右編碼順序可以顛倒。
4)當(dāng)前編碼宏塊組的編碼碼流輸出比較第2)步中NS宏塊組與第3)步中VS宏塊組的編碼代價(jià)值,決定當(dāng)前編碼宏塊組采用哪種宏塊組如果NS宏塊組的編碼代價(jià)值小,則輸出NS宏塊組的四個(gè)宏塊的編碼碼流;相反,如果VS宏塊組的編碼代價(jià)值小,則輸出VS宏塊組上層宏塊VS1和VS2的編碼碼流。
5)對(duì)當(dāng)前編碼宏塊組中沒(méi)有編碼的宏塊進(jìn)行插值獲得重建宏塊經(jīng)過(guò)第4)步,在當(dāng)前編碼宏塊組中可能有些宏塊已經(jīng)編碼輸出,有些宏塊沒(méi)有編碼;因?yàn)橐呀?jīng)編碼的宏塊能夠得到重建的宏塊,而沒(méi)有編碼的宏塊不能得到重建的宏塊,只能通過(guò)插值得到這些沒(méi)有編碼宏塊的重建宏塊,這樣就得到了當(dāng)前編碼宏塊組的整個(gè)重建宏塊組。根據(jù)第4)步,需要插值的宏塊為如果當(dāng)前編碼宏塊組為NS宏塊組,則沒(méi)有宏塊需要插值;如果當(dāng)前編碼宏塊組為VS宏塊組,則其下層兩個(gè)宏塊VS3和VS4需要插值;宏塊的插值可以采用各種已有的插值技術(shù)實(shí)現(xiàn)。
6)重復(fù)1)到5)步驟,直到原始圖像中所有的原始宏塊組完成編碼,則第一階段編碼完成。在第一階段編碼中所有的重建宏塊組構(gòu)成了重建幀圖像,作為第二階段編碼時(shí)的參考幀。
第二階段編碼1)從原始圖像中獲得一個(gè)與第一階段1)步相同的原始宏塊組,即當(dāng)前編碼宏塊組,根據(jù)原始宏塊組進(jìn)行抽樣處理選擇兩種類(lèi)型的宏塊組,即NS和VS宏塊組。
2)對(duì)當(dāng)前編碼宏塊組中第一階段沒(méi)有編碼的宏塊進(jìn)行編碼第一階段編碼已經(jīng)決定了當(dāng)前編碼宏塊組的類(lèi)型以及已經(jīng)編碼的宏塊和沒(méi)有編碼的宏塊,因此這一步需要編碼的宏塊就是第一階段沒(méi)有編碼的宏塊。具體判斷過(guò)程如下如果當(dāng)前編碼宏塊組是NS宏塊組,則沒(méi)有宏塊需要編碼;如果當(dāng)前編碼宏塊組是VS宏塊組,則VS宏塊組的下層兩個(gè)宏塊VS3和VS4宏塊需要編碼。以第一階段編碼中所得到的重建幀圖像和第一階段宏塊編碼時(shí)使用的參考幀一起作為第二階段編碼時(shí)的參考幀,也可以只使用第一階段編碼中所得到的重建幀圖像作為第二階段編碼時(shí)的參考幀, 對(duì)需要編碼的宏塊進(jìn)行編碼,并得到重建宏塊。
3)編碼宏塊的碼流輸出和更新重建宏塊輸出編碼宏塊的碼流,用第2)步得到的編碼重建宏塊替代第一階段編碼時(shí)通過(guò)插值得到的重建宏塊。
4)重復(fù)1)到3)步驟,直到原始圖像中所有的原始宏塊組完成第二階段編碼,則第二階段編碼完成。
在上述的編碼過(guò)程中,宏塊編碼可以采用已有的各種編碼技術(shù)實(shí)現(xiàn)。宏塊編碼后,計(jì)算宏塊的編碼代價(jià)值也是采用已有的編碼代價(jià)值計(jì)算技術(shù)。估計(jì)宏塊的編碼代價(jià)值是指不進(jìn)行該宏塊編碼,而只是根據(jù)其周?chē)呀?jīng)編碼的宏塊,估計(jì)出該宏塊的編碼代價(jià)值,例如一個(gè)宏塊的編碼代價(jià)值可以估計(jì)為其周?chē)呀?jīng)編碼的宏塊中與其最相似宏塊的編碼代價(jià)值。
所說(shuō)的解碼過(guò)程,具體包括以下步驟第一階段解碼1)判斷解碼的宏塊組類(lèi)型首先根據(jù)編碼碼流判斷要解碼的宏塊組類(lèi)型。如果是NS宏塊組類(lèi)型,則執(zhí)行第2步,如果是VS宏塊組類(lèi)型,則執(zhí)行第3步。
2)NS宏塊組解碼直接解碼NS上層兩個(gè)宏塊NS1和NS2和下層兩個(gè)宏塊NS3和NS4。
3)VS宏塊組解碼直接解碼VS上層兩個(gè)宏塊VS1和VS2;下層兩個(gè)宏塊VS3和VS4在第一階段不解碼,留在第二階段解碼。
4)對(duì)第2)步或第3)步的宏塊組中沒(méi)有解碼的宏塊進(jìn)行插值獲得重建宏塊根據(jù)已經(jīng)解碼的宏塊對(duì)沒(méi)有解碼的宏塊進(jìn)行插值,這樣就得到了一個(gè)完整的重建宏塊組。這里宏塊的插值采用與編碼過(guò)程中宏塊插值時(shí)相同的插值技術(shù)。
5)重復(fù)第1)到第4)的步驟,直到所有宏塊組都被解碼,則第一階段解碼完成。在第一階段解碼中所有的重建宏塊組構(gòu)成了重建幀圖像,作為第二階段解碼的參考圖像。
第二階段解碼1)對(duì)解碼的宏塊組中第一階段沒(méi)有解碼的宏塊進(jìn)行解碼經(jīng)過(guò)第一階段解碼,在宏塊組中可能還有一些宏塊沒(méi)有解碼。以第一階段得到的解碼重建幀圖像和第一階段使用的解碼參考幀作為第二階段解碼時(shí)的參考幀,也可以只使用第一階段解碼中所得到的重建幀圖像作為第二階段解碼時(shí)的參考幀,再對(duì)這些未解碼的宏塊進(jìn)行解碼,得到其重建宏塊。
2)更新解碼重建幀用第1)步的解碼重建宏塊替代第一階段通過(guò)插值得到重建宏塊,這樣得到最終的解碼重建幀,并以此作為解碼下一幀的解碼參考幀。
在上述的解碼過(guò)程中,宏塊解碼可以采用與編碼相對(duì)應(yīng)的已有各種解碼技術(shù)實(shí)現(xiàn)。
實(shí)施例四本實(shí)施例中定義M像素×N像素的塊組定義為宏塊,即M等于16,N等于16,原始?jí)K組定義原始宏塊,派生塊組定義為派生宏塊。
本實(shí)施例采用NS-HS-VS-VHS編碼結(jié)構(gòu),其中派生宏塊中塊的編碼階段屬性如下對(duì)于NS宏塊,每個(gè)塊都必須在第一階段編碼。
對(duì)于HS宏塊,HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼。
對(duì)于VS宏塊,VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼。
對(duì)于VHS宏塊,VHS1和VHS2放在第一階段編碼,VHS3和VHS4放在第二階段編碼。
本實(shí)施例包括編碼過(guò)程和解碼過(guò)程如下其中編碼過(guò)程,具體包括以下步驟第一階段編碼1)從原始圖像中獲得一個(gè)原始宏塊,即當(dāng)前編碼宏塊,根據(jù)原始宏塊進(jìn)行抽樣處理得到四種類(lèi)型的抽樣宏塊,即NS、HS、VS、VHS宏塊。
2)對(duì)NS宏塊和HS宏塊進(jìn)行編碼(NS-HS宏塊類(lèi)型)首先對(duì)NS宏塊的上層兩個(gè)塊NS1和NS2進(jìn)行編碼并計(jì)算其編碼代價(jià)值,然后對(duì)HS的上層左邊塊HS1進(jìn)行編碼并計(jì)算其編碼代價(jià)值,再估計(jì)上層右邊塊HS2的編碼代價(jià)值,最后根據(jù)NS和HS塊上層兩個(gè)塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的宏塊類(lèi)型的上層兩個(gè)塊(NS1和NS2或HS1和HS2)的編碼碼流作為NS-HS宏塊類(lèi)型上層塊的編碼碼流,其編碼代價(jià)值作為NS-HS宏塊類(lèi)型上層塊的編碼代價(jià)值。
然后對(duì)NS宏塊的下層兩個(gè)塊NS3和NS4進(jìn)行編碼并計(jì)算其編碼代價(jià)值,然后對(duì)HS的下層左邊塊HS3進(jìn)行編碼并計(jì)算其編碼代價(jià)值,再估計(jì)下層右邊塊HS4的編碼代價(jià)值,最后根據(jù)NS和HS塊下層兩個(gè)塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的宏塊類(lèi)型的下層兩個(gè)塊(NS3和NS4或HS3和HS4)的編碼碼流作為NS-HS宏塊類(lèi)型下層塊的編碼碼流,其編碼代價(jià)值作為NS-HS宏塊類(lèi)型下層塊的編碼代價(jià)值。
將上、下層塊的編碼代價(jià)值之和作為NS-HS宏塊類(lèi)型的編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒,上層和下層兩個(gè)塊的左右編碼順序可以顛倒。
3)對(duì)VS宏塊和VHS宏塊進(jìn)行編碼(VS-VHS宏塊類(lèi)型)首先對(duì)VS宏塊的上層兩個(gè)塊VS1和VS2進(jìn)行編碼并計(jì)算其編碼代價(jià)值,然后對(duì)VHS的上層塊VHS1和VHS2進(jìn)行編碼并計(jì)算其編碼代價(jià)值,最后根據(jù)VS和VHS塊上層兩個(gè)塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的宏塊類(lèi)型的上層兩個(gè)塊(VS1和VS2或VHS1和VHS2)的編碼碼流作為VS-VHS宏塊類(lèi)型上層塊的編碼碼流,其編碼代價(jià)值作為VS-VHS宏塊類(lèi)型上層塊的編碼代價(jià)值。
然后估計(jì)VS的下層兩個(gè)塊VS3和VS4的編碼代價(jià)值和VHS的下層兩個(gè)塊VHS3和VHS4編碼代價(jià)值,根據(jù)VS和VHS宏塊下層兩個(gè)塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的宏塊類(lèi)型的下層兩個(gè)塊(VS3和VS4或VHS3和VHS4)的編碼代價(jià)值作為VS-VHS宏塊類(lèi)型下層塊的編碼代價(jià)值。
將上、下層塊的編碼代價(jià)值之和作為VS-VHS宏塊編碼類(lèi)型的編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒,上層和下層兩個(gè)塊的左右編碼順序可以顛倒。
4)當(dāng)前編碼宏塊的編碼碼流輸出比較步驟2)中NS-HS宏塊與步驟3)中VS-VHS宏塊的編碼代價(jià)值,決定當(dāng)前編碼宏塊的采用哪種宏塊類(lèi)型的編碼碼流當(dāng)NS-HS宏塊類(lèi)型的編碼代價(jià)值小時(shí),當(dāng)前編碼宏塊的輸出采用NS-HS宏塊的編碼碼流。同時(shí)根據(jù)第2)步的結(jié)果,也決定了當(dāng)前編碼宏塊的上、下層塊的抽樣宏塊類(lèi)型如果NS-HS宏塊類(lèi)型的上層兩個(gè)塊屬于NS宏塊,則輸出NS1和NS2塊的編碼碼流;如果NS-HS宏塊類(lèi)型的上層兩個(gè)塊屬于HS宏塊,則只輸出HS1塊的編碼碼流;如果NS-HS宏塊類(lèi)型的下層兩個(gè)塊屬于NS宏塊,則輸出NS3和NS4塊的編碼碼流;如果NS-HS宏塊類(lèi)型的下層兩個(gè)塊屬于HS宏塊,則只輸出HS3塊的編碼碼流;相反,當(dāng)VS-VHS宏塊類(lèi)型的編碼代價(jià)值小時(shí),當(dāng)前編碼宏塊的輸出采用VS-VHS宏塊的編碼碼流。同時(shí)根據(jù)第3)步的結(jié)果,也決定了當(dāng)前編碼宏塊的上、下層塊的抽樣宏塊類(lèi)型如果VS-VHS宏塊類(lèi)型的上層兩個(gè)塊屬于VS宏塊,則輸出VS1和VS2塊的編碼碼流;如果VS-VHS宏塊類(lèi)型的上層兩個(gè)塊屬于VHS宏塊,則只輸出VHS1和VHS2塊的編碼碼流;VS-VHS宏塊類(lèi)型的下層兩個(gè)塊不輸出編碼碼流。
5)對(duì)當(dāng)前編碼宏塊中沒(méi)有編碼的塊進(jìn)行插值獲得重建塊經(jīng)過(guò)第4)步,在當(dāng)前編碼宏塊中可能有些塊已經(jīng)編碼輸出,有些塊沒(méi)有編碼。因?yàn)橐呀?jīng)編碼的塊能夠得到重建的塊,而沒(méi)有編碼的塊不能得到重建的塊,只能通過(guò)插值得到這些沒(méi)有編碼塊的重建塊,這樣就得到了當(dāng)前編碼宏塊的整個(gè)重建宏塊。根據(jù)第4)步,需要插值的塊為如果當(dāng)前編碼宏塊的編碼類(lèi)型為NS-HS宏塊類(lèi)型,當(dāng)NS-HS宏塊的上層塊屬于HS宏塊,則HS2塊需要插值;當(dāng)NS-HS宏塊的下層塊屬于HS宏塊,則HS4塊需要插值。如果當(dāng)前編碼宏塊的編碼類(lèi)型為VS-VHS宏塊編碼類(lèi)型,當(dāng)VS-VHS宏塊類(lèi)型為VS宏塊時(shí),VS3和VS4塊需要插值,當(dāng)VS-VHS宏塊類(lèi)型為VHS宏塊時(shí),VHS3和VHS4塊需要插值。塊的插值可以采用各種已有的插值技術(shù)實(shí)現(xiàn)。
6)重復(fù)1)到5)步驟,直到原始圖像中所有的原始宏塊完成編碼,則第一階段編碼完成。在第一階段編碼中所有的重建宏塊構(gòu)成了重建幀圖像,作為第二階段編碼時(shí)的參考幀。
第二階段編碼1)從原始圖像中獲得一個(gè)與第一階段1)步相同的原始宏塊,即當(dāng)前編碼宏塊,根據(jù)原始宏塊進(jìn)行抽樣處理得到四種類(lèi)型的宏塊,即NS、HS、VS、VHS宏塊。
2)對(duì)當(dāng)前編碼宏塊中第一階段沒(méi)有編碼的塊進(jìn)行編碼第一階段編碼已經(jīng)決定了當(dāng)前編碼宏塊的編碼類(lèi)型以及已經(jīng)編碼的塊和沒(méi)有編碼的塊,因此這一步需要編碼的塊就是第一階段沒(méi)有編碼的塊。具體判斷過(guò)程如下如果當(dāng)前編碼宏塊的編碼類(lèi)型是NS-HS宏塊類(lèi)型,當(dāng)NS-HS宏塊的上層塊屬于HS宏塊,則HS2塊需要編碼;當(dāng)NS-HS宏塊的下層塊屬于HS宏塊,則HS4塊需要編碼;如果VS-VHS宏塊類(lèi)型的下層兩個(gè)塊屬于VS宏塊,則VS3和VS4塊需要編碼,如果VS-VHS宏塊類(lèi)型的下層兩個(gè)塊屬于VHS宏塊,則VHS3和VHS4塊需要編碼。以第一階段編碼中所得到的重建幀圖像和第一階段塊編碼時(shí)使用的參考幀一起作為第二階段編碼時(shí)的參考幀,也可以只使用第一階段編碼中所得到的重建幀圖像作為第二階段編碼時(shí)的參考幀,對(duì)需要編碼的塊進(jìn)行編碼,并得到重建塊。
3)編碼塊的碼流輸出和更新重建塊輸出編碼塊的碼流,用第2)步得到的編碼重建塊替代第一階段編碼時(shí)通過(guò)插值得到的重建塊。
4)重復(fù)1)到3)步驟,直到原始圖像中所有的原始宏塊完成第二階段編碼,則第二階段編碼完成。
在上述的編碼過(guò)程中,宏塊編碼和塊編碼可以采用已有的各種編碼技術(shù)實(shí)現(xiàn)。塊編碼后,計(jì)算塊的編碼代價(jià)值也是采用已有的編碼代價(jià)值計(jì)算技術(shù)。估計(jì)塊的編碼代價(jià)值是指不進(jìn)行該塊編碼,而只是根據(jù)其周?chē)呀?jīng)編碼的塊,估計(jì)出該塊的編碼代價(jià)值,例如一個(gè)塊的編碼代價(jià)值可以估計(jì)為其周?chē)呀?jīng)編碼的塊中與其最相似塊的編碼代價(jià)值。
其中解碼過(guò)程,具體包括以下步驟第一階段解碼1)判斷解碼的宏塊類(lèi)型首先根據(jù)編碼碼流判斷要解碼的宏塊編碼類(lèi)型。如果是NS-HS宏塊類(lèi)型,則執(zhí)行第2步,如果是VS-VHS宏塊類(lèi)型,則執(zhí)行第3步。
2)NS-HS宏塊類(lèi)型的解碼根據(jù)碼流判斷上層兩個(gè)塊的抽樣宏塊類(lèi)型如果上層兩個(gè)塊屬于NS類(lèi)型,直接解碼這兩個(gè)塊NS1和NS2;如果上層兩個(gè)塊屬于HS類(lèi)型,直接解碼這兩個(gè)塊中左邊的塊HS1,右邊的塊HS2留在第二階段解碼。
然后,根據(jù)碼流判斷下層兩個(gè)塊的抽樣宏塊類(lèi)型如果下層兩個(gè)塊屬于NS宏塊,則這兩個(gè)塊NS1和NS2留在第二階段解碼;如果下層兩個(gè)塊屬于HS宏塊,直接解碼這兩個(gè)塊中左邊的塊HS3,右邊的塊HS4留在第二階段解碼。
3)VS-VHS宏塊類(lèi)型的解碼根據(jù)碼流判斷上層兩個(gè)塊的抽樣宏塊類(lèi)型如果上層兩個(gè)塊屬于VS類(lèi)型,直接解碼上層兩個(gè)塊VS1和VS2;如果上層兩個(gè)塊屬于VHS類(lèi)型,直接解碼上層兩個(gè)塊塊VHS1和VHS2。
然后,下層兩個(gè)塊在第一階段不解碼;留在第二階段解碼。
4)對(duì)第2)步或第3)步的宏塊中沒(méi)有解碼的塊進(jìn)行插值獲得重建塊根據(jù)已經(jīng)解碼的塊對(duì)沒(méi)有解碼的塊進(jìn)行插值,這樣就得到了一個(gè)完整的重建宏塊。這里塊的插值采用與編碼過(guò)程中塊插值時(shí)相同的插值技術(shù)。
5)重復(fù)第1)到第4)的步驟,直到所有宏塊都被解碼,則第一階段解碼完成。在第一階段解碼中所有的重建宏塊構(gòu)成了重建幀圖像,作為第二階段解碼的參考圖像。
第二階段解碼1)對(duì)解碼的宏塊中第一階段沒(méi)有解碼的塊進(jìn)行解碼經(jīng)過(guò)第一階段解碼,在宏塊中可能還有一些塊沒(méi)有解碼。以第一階段得到的解碼重建幀圖像和第一階段使用的解碼參考幀作為第二階段解碼時(shí)的參考幀,也可以只使用第一階段解碼中所得到的重建幀圖像作為第二階段解碼時(shí)的參考幀,再對(duì)這些未解碼的塊進(jìn)行解碼,得到其重建塊。
2)更新解碼重建幀用第1)步的解碼重建塊替代第一階段通過(guò)插值得到重建塊,這樣得到最終的解碼重建幀,并以此作為解碼下一幀的解碼參考幀。
在上述的解碼過(guò)程中,塊解碼可以采用與編碼相對(duì)應(yīng)的已有各種解碼技術(shù)實(shí)現(xiàn)。
實(shí)施例五本實(shí)施例中定義M像素×N像素的塊組定義為宏塊,即M等于16,N等于16,原始?jí)K組定義原始宏塊,派生塊組定義為派生宏塊。
本實(shí)施例采用NS-HS-VS編碼結(jié)構(gòu),其中派生宏塊中塊的編碼階段屬性如下對(duì)于NS宏塊,每個(gè)塊都必須在第一階段編碼。
對(duì)于HS宏塊,HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼。
對(duì)于VS宏塊,VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼。
對(duì)于VHS宏塊,VHS1和VHS2放在第一階段編碼,VHS3和VHS4放在第二階段編碼。
本實(shí)施例包括編碼過(guò)程和解碼過(guò)程如下其中編碼過(guò)程,具體包括以下步驟第一階段編碼1)從原始圖像中獲得一個(gè)原始宏塊,即當(dāng)前編碼宏塊,根據(jù)原始宏塊進(jìn)行抽樣處理得到四種類(lèi)型的抽樣宏塊,即NS、HS、VS、VHS宏塊。
2)對(duì)NS宏塊和HS宏塊進(jìn)行編碼(NS-HS宏塊類(lèi)型)首先對(duì)NS宏塊的上層兩個(gè)塊NS1和NS2進(jìn)行編碼并計(jì)算其編碼代價(jià)值,然后對(duì)HS的上層左邊塊HS1進(jìn)行編碼并計(jì)算其編碼代價(jià)值,再估計(jì)上層右邊塊HS2的編碼代價(jià)值,最后根據(jù)NS和HS塊上層兩個(gè)塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的宏塊類(lèi)型的上層兩個(gè)塊(NS1和NS2或HS1和HS2)的編碼碼流作為NS-HS宏塊類(lèi)型上層塊的編碼碼流,其編碼代價(jià)值作為NS-HS宏塊類(lèi)型上層塊的編碼代價(jià)值。
然后對(duì)NS宏塊的下層兩個(gè)塊NS3和NS4進(jìn)行編碼并計(jì)算其編碼代價(jià)值,然后對(duì)HS的下層左邊塊HS3進(jìn)行編碼并計(jì)算其編碼代價(jià)值,再估計(jì)下層右邊塊HS4的編碼代價(jià)值,最后根據(jù)NS和HS塊下層兩個(gè)塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的宏塊類(lèi)型的下層兩個(gè)塊(NS3和NS4或HS3和HS4)的編碼碼流作為NS-HS宏塊類(lèi)型下層塊的編碼碼流,其編碼代價(jià)值作為NS-HS宏塊類(lèi)型下層塊的編碼代價(jià)值。
將上、下層塊的編碼代價(jià)值之和作為NS-HS宏塊類(lèi)型的編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒,上層和下層兩個(gè)塊的左右編碼順序可以顛倒。
3)對(duì)VS宏塊進(jìn)行編碼(VS宏塊類(lèi)型)首先對(duì)VS宏塊的上層兩個(gè)塊VS1和VS2進(jìn)行編碼并計(jì)算其編碼代價(jià)值,得到VS宏塊類(lèi)型上層塊的編碼碼流和編碼代價(jià)值。
然后估計(jì)VS的下層兩個(gè)塊VS3和VS4的編碼代價(jià)值,得到VS宏塊類(lèi)型下層塊的編碼代價(jià)值。
將上、下層塊的編碼代價(jià)值之和作為VS宏塊類(lèi)型的編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒,上層和下層兩個(gè)塊的左右編碼順序可以顛倒。
4)當(dāng)前編碼宏塊的編碼碼流輸出比較步驟2)中NS-HS宏塊與步驟3)中VS宏塊的編碼代價(jià)值,決定當(dāng)前編碼宏塊的采用哪種宏塊類(lèi)型的編碼碼流如果NS-HS宏塊類(lèi)型的編碼代價(jià)值小,當(dāng)前編碼宏塊的輸出采用NS-HS宏塊類(lèi)型的編碼碼流。同時(shí)根據(jù)第2)步的結(jié)果,也決定了當(dāng)前編碼宏塊的上、下層塊的抽樣宏塊類(lèi)型如果NS-HS宏塊類(lèi)型的上層兩個(gè)塊屬于NS宏塊,則輸出NS1和NS2塊的編碼碼流;如果NS-HS宏塊類(lèi)型的上層兩個(gè)塊屬于HS宏塊,則只輸出HS1塊的編碼碼流;如果NS-HS宏塊類(lèi)型的下層兩個(gè)塊屬于NS宏塊,則輸出NS3和NS4塊的編碼碼流;如果NS-HS宏塊類(lèi)型的下層兩個(gè)塊屬于HS宏塊,則只輸出HS3塊的編碼碼流;相反,如果VS宏塊類(lèi)型的編碼代價(jià)值小,當(dāng)前編碼宏塊的輸出采用VS宏塊類(lèi)型的編碼碼流。同時(shí)根據(jù)第3)步的結(jié)果,輸出VS1和VS2塊的編碼碼流。
5)對(duì)當(dāng)前編碼宏塊中沒(méi)有編碼的塊進(jìn)行插值獲得重建塊經(jīng)過(guò)第4)步,在當(dāng)前編碼宏塊中可能有些塊已經(jīng)編碼輸出,有些塊沒(méi)有編碼。因?yàn)橐呀?jīng)編碼的塊能夠得到重建的塊,而沒(méi)有編碼的塊不能得到重建的塊,只能通過(guò)插值得到這些沒(méi)有編碼塊的重建塊,這樣就得到了當(dāng)前編碼宏塊的整個(gè)重建宏塊。根據(jù)第4)步,需要插值的塊為如果當(dāng)前編碼宏塊為NS-HS宏塊類(lèi)型,當(dāng)NS-HS宏塊的上層塊屬于為HS宏塊時(shí),則HS2塊需要插值;當(dāng)NS-HS宏塊的下層塊屬于為HS宏塊時(shí),則HS4塊需要插值。如果當(dāng)前編碼宏塊為VS宏塊類(lèi)型,其下層兩個(gè)塊VS3和VH4需要插值。塊的插值可以采用各種已有的插值技術(shù)實(shí)現(xiàn)。
6)重復(fù)1)到5)步驟,直到原始圖像中所有的原始宏塊完成編碼,則第一階段編碼完成。在第一階段編碼中所有的重建宏塊構(gòu)成了重建幀圖像,作為第二階段編碼時(shí)的參考幀。
第二階段編碼1)從原始圖像中獲得一個(gè)與第一階段1)步相同的原始宏塊,即當(dāng)前編碼宏塊,根據(jù)原始宏塊進(jìn)行抽樣處理得到四種類(lèi)型的宏塊,即NS、HS、VS、VHS宏塊。
2)對(duì)當(dāng)前編碼宏塊中第一階段沒(méi)有編碼的塊進(jìn)行編碼第一階段編碼已經(jīng)決定了當(dāng)前編碼宏塊的編碼類(lèi)型以及已經(jīng)編碼的塊和沒(méi)有編碼的塊,因此這一步需要編碼的塊就是第一階段沒(méi)有編碼的塊。具體判斷過(guò)程如下如果當(dāng)前編碼宏塊是NS-HS宏塊類(lèi)型,當(dāng)NS-HS宏塊的上層塊屬于HS宏塊,則HS2塊需要編碼;當(dāng)NS-HS宏塊的下層塊屬于HS宏塊,則HS4塊需要編碼;如果當(dāng)前編碼宏塊的類(lèi)型是VS宏塊類(lèi)型,則VS3和VS4塊需要編碼。以第一階段編碼中所得到的重建幀圖像和第一階段塊編碼時(shí)使用的參考幀一起作為第二階段編碼時(shí)的參考幀,也可以只使用第一階段編碼中所得到的重建幀圖像作為第二階段編碼時(shí)的參考幀,對(duì)需要編碼的塊進(jìn)行編碼,并得到重建塊。
3)編碼塊的碼流輸出和更新重建塊輸出編碼塊的碼流,用第2)步得到的編碼重建塊替代第一階段編碼時(shí)通過(guò)插值得到的重建塊。
4)重復(fù)1)到3)步驟,直到原始圖像中所有的原始宏塊完成第二階段編碼,則第二階段編碼完成。
在上述的編碼過(guò)程中,宏塊編碼和塊編碼可以采用已有的各種編碼技術(shù)實(shí)現(xiàn)。塊編碼后,計(jì)算塊的編碼代價(jià)值也是采用已有的編碼代價(jià)值計(jì)算技術(shù)。估計(jì)塊的編碼代價(jià)值是指不進(jìn)行該塊編碼,而只是根據(jù)其周?chē)呀?jīng)編碼的塊,估計(jì)出該塊的編碼代價(jià)值,例如一個(gè)塊的編碼代價(jià)值可以估計(jì)為其周?chē)呀?jīng)編碼的塊中與其最相似塊的編碼代價(jià)值。
其中解碼過(guò)程,具體包括以下步驟第一階段解碼1)判斷解碼的宏塊類(lèi)型首先根據(jù)編碼碼流判斷要解碼的宏塊編碼類(lèi)型。如果是NS-HS宏塊類(lèi)型,則執(zhí)行第2步,如果是VS宏塊類(lèi)型,則執(zhí)行第3步。
2)NS-HS宏塊類(lèi)型的解碼根據(jù)碼流判斷上層兩個(gè)塊的抽樣宏塊類(lèi)型如果上層兩個(gè)塊屬于NS類(lèi)型,直接解碼這兩個(gè)塊NS1和NS2;如果上層兩個(gè)塊屬于HS類(lèi)型,直接解碼這兩個(gè)塊中左邊的塊HS1,右邊的塊HS2留在第二階段解碼。
然后,根據(jù)碼流判斷下層兩個(gè)塊的抽樣宏塊類(lèi)型如果下層兩個(gè)塊屬于NS宏塊,則這兩個(gè)塊NS1和NS2留在第二階段解碼;如果下層兩個(gè)塊屬于HS宏塊,直接解碼這兩個(gè)塊中左邊的塊HS3,右邊的塊HS4留在第二階段解碼。
3)VS宏塊類(lèi)型的解碼直接解碼上層兩個(gè)塊VS1和VS2;下層兩個(gè)塊VS3和VS4留在第二階段解碼。
4)對(duì)第2)步或第3)步的宏塊中沒(méi)有解碼的塊進(jìn)行插值獲得重建塊根據(jù)已經(jīng)解碼的塊對(duì)沒(méi)有解碼的塊進(jìn)行插值,這樣就得到了一個(gè)完整的重建宏塊。這里塊的插值采用與編碼過(guò)程中塊插值時(shí)相同的插值技術(shù)。
5)重復(fù)第1)到第4)的步驟,直到所有宏塊都被解碼,則第一階段解碼完成。在第一階段解碼中所有的重建宏塊構(gòu)成了重建幀圖像,作為第二階段解碼的參考圖像。
第二階段解碼1)對(duì)解碼的宏塊中第一階段沒(méi)有解碼的塊進(jìn)行解碼經(jīng)過(guò)第一階段解碼,在宏塊中可能還有一些塊沒(méi)有解碼。以第一階段得到的解碼重建幀圖像和第一階段使用的解碼參考幀作為第二階段解碼時(shí)的參考幀,也可以只使用第一階段解碼中所得到的重建幀圖像作為第二階段解碼時(shí)的參考幀,再對(duì)這些未解碼的塊進(jìn)行解碼,得到其重建塊。
2)更新解碼重建幀用第1)步的解碼重建塊替代第一階段通過(guò)插值得到重建塊,這樣得到最終的解碼重建幀,并以此作為解碼下一幀的解碼參考幀。
在上述的解碼過(guò)程中,塊解碼可以采用與編碼相對(duì)應(yīng)的已有各種解碼技術(shù)實(shí)現(xiàn)。
實(shí)施例六本實(shí)施例中定義M像素×N像素的塊組定義為宏塊,即M等于16,N等于16,原始?jí)K組定義原始宏塊,派生塊組定義為派生宏塊。
本實(shí)施例采用NS-VS編碼類(lèi)型,其中派生宏塊中塊的編碼階段屬性如下對(duì)于NS宏塊,每個(gè)塊都必須在第一階段編碼。
對(duì)于HS宏塊,HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼。
對(duì)于VS宏塊,VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼。
對(duì)于VHS宏塊,VHS1和VHS2放在第一階段編碼,VHS3和VHS4放在第二階段編碼。
本實(shí)施例包括編碼過(guò)程和解碼過(guò)程如下其中編碼過(guò)程,具體包括以下步驟第一階段編碼1)從原始圖像中獲得一個(gè)原始宏塊,即當(dāng)前編碼宏塊,根據(jù)原始宏塊進(jìn)行抽樣處理選擇兩種類(lèi)型的抽樣宏塊,即NS和VS宏塊。
2)對(duì)NS宏塊進(jìn)行編碼首先對(duì)NS宏塊的四個(gè)塊NS1、NS2、NS3和NS4進(jìn)行編碼得到NS宏塊編碼的編碼碼流,并計(jì)算其編碼代價(jià)值之和作為NS宏塊的編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒,上層和下層兩個(gè)塊的左右編碼順序可以顛倒。
3)對(duì)VS宏塊進(jìn)行編碼首先對(duì)VS宏塊的上層兩個(gè)塊VS1和VS2進(jìn)行編碼并計(jì)算其編碼代價(jià)值,這樣得到VS上層塊的編碼碼流和編碼代價(jià)值。
然后估計(jì)VS宏塊的下層兩個(gè)塊VS3和VS4的編碼代價(jià)值,這樣得到VS宏塊下層塊的編碼代價(jià)值。
將上、下層塊的編碼代價(jià)值之和作為VS宏塊的編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒,上層和下層兩個(gè)塊的左右編碼順序可以顛倒。
4)當(dāng)前編碼宏塊的編碼碼流輸出比較步驟2)中NS宏塊與步驟3)中VS類(lèi)型的編碼代價(jià)值,決定當(dāng)前編碼宏塊的采用哪種宏塊類(lèi)型如果NS宏塊的編碼代價(jià)值小,當(dāng)前編碼宏塊為NS宏塊類(lèi)型,則輸出NS1、NS2、NS3和NS4塊的編碼碼流;相反,如果VS宏塊的編碼代價(jià)值小,當(dāng)前編碼宏塊為VS宏塊類(lèi)型,則輸出VS1和VS2塊的編碼碼流。
5)對(duì)當(dāng)前編碼宏塊中沒(méi)有編碼的塊進(jìn)行插值獲得重建塊經(jīng)過(guò)第4)步,在當(dāng)前編碼宏塊中可能有些塊已經(jīng)編碼輸出,有些塊沒(méi)有編碼。因?yàn)橐呀?jīng)編碼的塊能夠得到重建的塊,而沒(méi)有編碼的塊不能得到重建的塊,只能通過(guò)插值得到這些沒(méi)有編碼塊的重建塊,這樣就得到了當(dāng)前編碼宏塊的整個(gè)重建宏塊。根據(jù)第4)步,需要插值的塊為如果當(dāng)前編碼宏塊為NS宏塊,則沒(méi)有塊需要插值;如果當(dāng)前編碼宏塊為VS宏塊,則下層兩個(gè)塊VS3和VH4需要插值。塊的插值可以采用各種已有的插值技術(shù)實(shí)現(xiàn)。
6)重復(fù)1)到5)步驟,直到原始圖像中所有的原始宏塊完成編碼,則第一階段編碼完成。在第一階段編碼中所有的重建宏塊構(gòu)成了重建幀圖像,作為第二階段編碼時(shí)的參考幀。
第二階段編碼1)從原始圖像中獲得一個(gè)與第一階段1)步相同的原始宏塊,即當(dāng)前編碼宏塊,根據(jù)原始宏塊進(jìn)行抽樣處理選擇兩種類(lèi)型的宏塊,即NS和VS宏塊。
2)對(duì)當(dāng)前編碼宏塊中第一階段沒(méi)有編碼的塊進(jìn)行編碼第一階段編碼已經(jīng)決定了當(dāng)前編碼宏塊的類(lèi)型以及已經(jīng)編碼的塊和沒(méi)有編碼的塊,因此這一步需要編碼的塊就是第一階段沒(méi)有編碼的塊。具體判斷過(guò)程如下如果當(dāng)前編碼宏塊的類(lèi)型是NS宏塊,則沒(méi)有塊需要編碼;如果當(dāng)前編碼宏塊的類(lèi)型是VS宏塊,則VS3和VS4塊需要編碼。以第一階段編碼中所得到的重建幀圖像和第一階段塊編碼時(shí)使用的參考幀一起作為第二階段編碼時(shí)的參考幀,也可以只使用第一階段編碼中所得到的重建幀圖像作為第二階段編碼時(shí)的參考幀,對(duì)需要編碼的塊進(jìn)行編碼,并得到重建塊。
3)編碼塊的碼流輸出和更新重建塊
輸出編碼塊的碼流,用第2)步得到的編碼重建塊替代第一階段編碼時(shí)通過(guò)插值得到的重建塊。
4)重復(fù)1)到3)步驟,直到原始圖像中所有的原始宏塊完成第二階段編碼,則第二階段編碼完成。
在上述的編碼過(guò)程中,塊編碼可以采用已有的各種編碼技術(shù)實(shí)現(xiàn)。塊編碼后,計(jì)算塊的編碼代價(jià)值也是采用已有的編碼代價(jià)值計(jì)算技術(shù)。估計(jì)塊的編碼代價(jià)值是指不進(jìn)行該塊編碼,而只是根據(jù)其周?chē)呀?jīng)編碼的塊,估計(jì)出該塊的編碼代價(jià)值,例如一個(gè)塊的編碼代價(jià)值可以估計(jì)為其周?chē)呀?jīng)編碼的塊中與其最相似塊的編碼代價(jià)值。
其中解碼過(guò)程,具體包括以下步驟第一階段解碼1)判斷解碼的宏塊類(lèi)型首先根據(jù)編碼碼流判斷要解碼的宏塊類(lèi)型。如果是NS宏塊類(lèi)型,則執(zhí)行第2步,如果是VS宏塊類(lèi)型,則執(zhí)行第3步。
2)NS宏塊的解碼直接解碼NS1、NS2、NS3和NS4四個(gè)塊。
3)VS宏塊的解碼直接解碼VS宏塊的上層兩個(gè)塊VS1和VS2;下層兩個(gè)塊VS1和VS2在第一階段不解碼,留在第二階段解碼。
4)對(duì)第2)步或第3)步的宏塊中沒(méi)有解碼的塊進(jìn)行插值獲得重建塊根據(jù)已經(jīng)解碼的塊對(duì)沒(méi)有解碼的塊進(jìn)行插值,這樣就得到了一個(gè)完整的重建宏塊。這里塊的插值采用與編碼過(guò)程中塊插值時(shí)相同的插值技術(shù)。
5)重復(fù)第1)到第4)的步驟,直到所有宏塊都被解碼,則第一階段解碼完成。在第一階段解碼中所有的重建宏塊構(gòu)成了重建幀圖像,作為第二階段解碼的參考圖像。
第二階段解碼1)對(duì)解碼的宏塊中第一階段沒(méi)有解碼的塊進(jìn)行解碼經(jīng)過(guò)第一階段解碼,在宏塊中可能還有一些塊沒(méi)有解碼。以第一階段得到的解碼重建幀圖像和第一階段使用的解碼參考幀作為第二階段解碼時(shí)的參考幀,也可以只使用第一階段解碼中所得到的重建幀圖像作為第二階段解碼時(shí)的參考幀,再對(duì)這些未解碼的塊進(jìn)行解碼,得到其重建塊。
2)更新解碼重建幀用第1)步的解碼重建塊替代第一階段通過(guò)插值得到重建塊,這樣得到最終的解碼重建幀,并以此作為解碼下一幀的解碼參考幀。
在上述的解碼過(guò)程中,塊解碼可以采用與編碼相對(duì)應(yīng)的已有各種解碼技術(shù)實(shí)現(xiàn)。
實(shí)施例七
本實(shí)施例中定義M像素×N像素的塊組定義為宏塊對(duì),即M等于16,N等于32,原始?jí)K組定義原始宏塊對(duì),派生塊組定義為派生宏塊對(duì)。
本實(shí)施例采用NS-VS編碼結(jié)構(gòu),其中派生宏塊中塊的編碼階段屬性如下對(duì)于NS宏塊對(duì),每個(gè)塊都必須在第一階段編碼。
對(duì)于HS宏塊對(duì),HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼。
對(duì)于VS宏塊對(duì),VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼。
對(duì)于VHS宏塊對(duì),VHS1和VHS3放在第一階段編碼,VHS2和VHS4放在第二階段編碼。
本實(shí)施例包括編碼過(guò)程和解碼過(guò)程如下其中編碼過(guò)程,具體包括以下步驟第一階段編碼1)從原始圖像中獲得一個(gè)原始宏塊對(duì),即當(dāng)前編碼宏塊對(duì),根據(jù)原始宏塊對(duì)進(jìn)行抽樣處理選擇兩種類(lèi)型的抽樣宏塊對(duì),即NS和VS宏塊對(duì)。
2)對(duì)NS宏塊對(duì)進(jìn)行編碼首先對(duì)NS宏塊對(duì)的上層宏塊和下層宏塊進(jìn)行編碼并計(jì)算其編碼代價(jià)值,這樣得到NS宏塊對(duì)的編碼碼流和編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒。
3)對(duì)VS宏塊對(duì)進(jìn)行編碼首先對(duì)VS宏塊對(duì)的上層宏塊進(jìn)行編碼并計(jì)算其編碼代價(jià)值,這樣得到VS宏塊對(duì)上層宏塊的編碼碼流和編碼代價(jià)值。
然后估計(jì)VS宏塊對(duì)下層宏塊的編碼代價(jià)值,這樣得到VS宏塊對(duì)下層宏塊的編碼代價(jià)值。
將VS宏塊對(duì)上、下層宏塊的編碼代價(jià)值之和作為VS宏塊對(duì)的編碼代價(jià)值。
上述步驟中,上層和下層的先后編碼順序可以顛倒。
4)當(dāng)前編碼宏塊的編碼碼流輸出比較步驟2)中NS宏塊對(duì)與步驟3)中VS宏塊對(duì)的編碼代價(jià)值,決定當(dāng)前宏塊對(duì)采用哪種宏塊對(duì)編碼如果NS宏塊對(duì)的編碼代價(jià)值小,當(dāng)前宏塊對(duì)采用NS宏塊對(duì)編碼,則輸出NS宏塊對(duì)上、下層宏塊的編碼碼流;相反,如果VS宏塊對(duì)的編碼代價(jià)值小,當(dāng)前宏塊對(duì)采用VS宏塊對(duì)編碼,并且只輸出VS宏塊對(duì)的上層宏塊的編碼碼流。
5)對(duì)當(dāng)前編碼宏塊對(duì)中沒(méi)有編碼的宏塊進(jìn)行插值獲得重建宏塊經(jīng)過(guò)第4)步,在當(dāng)前編碼宏塊對(duì)中可能有些宏塊已經(jīng)編碼輸出,有些宏塊沒(méi)有編碼。因?yàn)橐呀?jīng)編碼的宏塊能夠得到重建的宏塊,而沒(méi)有編碼的宏塊不能得到重建的宏塊,只能通過(guò)插值得到這些沒(méi)有編碼宏塊的重建宏塊,這樣就得到了當(dāng)前編碼宏塊對(duì)的整個(gè)重建宏塊對(duì)。根據(jù)第4)步,需要插值的宏塊為如果當(dāng)前編碼宏塊對(duì)是NS宏塊對(duì)類(lèi)型,沒(méi)有宏塊需要插值;如果當(dāng)前編碼宏塊對(duì)是VS宏塊對(duì)類(lèi)型,VS宏塊對(duì)的下層宏塊需要插值。宏塊的插值可以采用各種已有的插值技術(shù)實(shí)現(xiàn)。
6)重復(fù)1)到5)步驟,直到原始圖像中所有的原始宏塊對(duì)完成編碼,則第一階段編碼完成。在第一階段編碼中所有的重建宏塊對(duì)構(gòu)成了重建幀圖像,作為第二階段編碼時(shí)的參考幀。
第二階段編碼1)從原始圖像中獲得一個(gè)與第一階段1)步相同的原始宏塊對(duì),即當(dāng)前編碼宏塊對(duì),根據(jù)原始宏塊對(duì)進(jìn)行抽樣處理選擇兩種類(lèi)型的宏塊對(duì),即NS和VS宏塊對(duì)。
2)對(duì)當(dāng)前編碼宏塊對(duì)中第一階段沒(méi)有編碼的宏塊進(jìn)行編碼第一階段編碼已經(jīng)決定了當(dāng)前編碼宏塊對(duì)是哪種宏塊對(duì)編碼以及已經(jīng)編碼的宏塊和沒(méi)有編碼的宏塊,因此這一步需要編碼的宏塊就是第一階段沒(méi)有編碼的宏塊。具體判斷過(guò)程如下如果當(dāng)前編碼宏塊是NS宏塊對(duì)類(lèi)型,則沒(méi)有宏塊需要編碼;如果當(dāng)前編碼宏塊對(duì)是VS宏塊對(duì)類(lèi)型,則VS宏塊的下層宏塊需要編碼。以第一階段編碼中所得到的重建幀圖像和第一階段塊編碼時(shí)使用的參考幀一起作為第二階段編碼時(shí)的參考幀,也可以只使用第一階段編碼中所得到的重建幀圖像作為第二階段編碼時(shí)的參考幀,對(duì)需要編碼的塊進(jìn)行編碼,并得到重建宏塊。
3)編碼宏塊的碼流輸出和更新重建宏塊輸出編碼宏塊的碼流,用第2)步得到的編碼重建宏塊替代第一階段編碼時(shí)通過(guò)插值得到的重建宏塊。
4)重復(fù)1)到3)步驟,直到原始圖像中所有的原始宏塊對(duì)完成第二階段編碼,則第二階段編碼完成。
在上述的編碼過(guò)程中,宏塊編碼可以采用已有的各種編碼技術(shù)實(shí)現(xiàn)。宏塊編碼后,計(jì)算宏塊的編碼代價(jià)值也是采用已有的編碼代價(jià)值計(jì)算技術(shù)。估計(jì)宏塊的編碼代價(jià)值是指不進(jìn)行該宏塊編碼,而只是根據(jù)其周?chē)呀?jīng)編碼宏塊的編碼代價(jià)值,估計(jì)出該宏塊的編碼代價(jià)值,例如一個(gè)宏塊的編碼代價(jià)值可以估計(jì)為其周?chē)呀?jīng)編碼的宏塊中與其最相似宏塊的編碼代價(jià)值。
其中解碼過(guò)程,具體包括以下步驟第一階段解碼1)判斷解碼的宏塊對(duì)類(lèi)型首先根據(jù)編碼碼流判斷要解碼的宏塊對(duì)類(lèi)型。如果是NS宏塊對(duì),則執(zhí)行第2步,如果是VS宏塊對(duì),則執(zhí)行第3步。
2)NS宏塊對(duì)的解碼直接解碼NS宏塊對(duì)的上層宏塊和下層宏塊。
3)VS宏塊對(duì)的解碼直接解碼VS宏塊對(duì)的上層宏塊;下層宏塊在第一階段不解碼,留在第二階段解碼。
4)對(duì)第2)步或第3)步的宏塊對(duì)中沒(méi)有解碼的宏塊進(jìn)行插值獲得重建宏塊
根據(jù)已經(jīng)解碼的宏塊對(duì)沒(méi)有解碼的宏塊進(jìn)行插值,這樣就得到了一個(gè)完整的重建宏塊對(duì)。這里宏塊的插值采用與編碼過(guò)程中宏塊插值時(shí)相同的插值技術(shù)。
5)重復(fù)第1)到第4)的步驟,直到所有宏塊對(duì)都被解碼,則第一階段解碼完成。在第一階段解碼中所有的重建宏塊對(duì)構(gòu)成了重建幀圖像,作為第二階段解碼的參考圖像。
第二階段解碼1)對(duì)解碼的宏塊對(duì)中第一階段沒(méi)有解碼的宏塊進(jìn)行解碼經(jīng)過(guò)第一階段解碼,在宏塊對(duì)中可能還有一些宏塊沒(méi)有解碼。以第一階段得到的解碼重建幀圖像和第一階段使用的解碼參考幀作為第二階段解碼時(shí)的參考幀,也可以只使用第一階段解碼中所得到的重建幀圖像作為第二階段解碼時(shí)的參考幀,再對(duì)這些未解碼的宏塊進(jìn)行解碼,得到其重建宏塊。
2)更新解碼重建幀用第1)步的解碼重建宏塊替代第一階段通過(guò)插值得到重建宏塊,這樣得到最終的解碼重建幀,并以此作為解碼下一幀的解碼參考幀。
在上述的解碼過(guò)程中,宏塊解碼可以采用與編碼相對(duì)應(yīng)的已有各種解碼技術(shù)實(shí)現(xiàn)。
實(shí)施例八本實(shí)施例中定義M像素×N像素的塊組定義為宏塊對(duì),即M等于32,N等于16,原始?jí)K組定義原始宏塊對(duì),派生塊組定義為派生宏塊對(duì)。
本實(shí)施例采用NS-HS編碼結(jié)構(gòu),其中派生宏塊中塊的編碼階段屬性如下對(duì)于NS宏塊對(duì),每個(gè)塊都必須在第一階段編碼。
對(duì)于HS宏塊對(duì),HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼。
對(duì)于VS宏塊對(duì),VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼。
對(duì)于VHS宏塊對(duì),VHS1和VHS4放在第一階段編碼,VHS2和VHS3放在第二階段編碼。
本實(shí)施例包括編碼過(guò)程和解碼過(guò)程如下其中編碼過(guò)程,具體包括以下步驟第一階段編碼1)從原始圖像中獲得一個(gè)原始宏塊對(duì),即當(dāng)前編碼宏塊對(duì),根據(jù)原始宏塊對(duì)進(jìn)行抽樣處理選擇兩種類(lèi)型的抽樣宏塊對(duì),即NS和HS宏塊對(duì)。
2)對(duì)NS宏塊對(duì)進(jìn)行編碼首先對(duì)NS宏塊對(duì)的左邊宏塊和右邊宏塊進(jìn)行編碼并計(jì)算其編碼代價(jià)值,這樣得到NS宏塊對(duì)的編碼碼流和編碼代價(jià)值。
上述步驟中,左邊和右邊的先后編碼順序可以顛倒。
3)對(duì)HS宏塊對(duì)進(jìn)行編碼首先對(duì)HS宏塊對(duì)的左邊宏塊進(jìn)行編碼并計(jì)算其編碼代價(jià)值,這樣得到HS宏塊對(duì)左邊宏塊的編碼碼流和編碼代價(jià)值。
然后估計(jì)HS宏塊對(duì)的右邊宏塊的編碼代價(jià)值,這樣得到HS宏塊對(duì)右邊宏塊的編碼代價(jià)值。
將HS宏塊對(duì)左、右邊宏塊的編碼代價(jià)值之和作為HS宏塊對(duì)的編碼代價(jià)值。
上述步驟中,左邊和右邊的先后編碼順序可以顛倒。
4)當(dāng)前編碼宏塊的編碼碼流輸出比較步驟2)中NS宏塊對(duì)與步驟3)中HS宏塊對(duì)的編碼代價(jià)值,決定當(dāng)前宏塊對(duì)采用哪種宏塊對(duì)類(lèi)型如果NS宏塊對(duì)的編碼代價(jià)值小,當(dāng)前宏塊對(duì)采用NS宏塊對(duì)類(lèi)型,并輸出NS宏塊對(duì)左、右邊宏塊的編碼碼流;相反,如果HS宏塊對(duì)的編碼代價(jià)值小,當(dāng)前宏塊對(duì)采用HS宏塊對(duì)類(lèi)型,則只輸出HS宏塊對(duì)的左邊宏塊的編碼碼流。
5)對(duì)當(dāng)前編碼宏塊對(duì)中沒(méi)有編碼的宏塊進(jìn)行插值獲得重建宏塊經(jīng)過(guò)第4)步,在當(dāng)前編碼宏塊對(duì)中可能有些宏塊已經(jīng)編碼輸出,有些宏塊沒(méi)有編碼。因?yàn)橐呀?jīng)編碼的宏塊能夠得到重建的宏塊,而沒(méi)有編碼的宏塊不能得到重建的宏塊,只能通過(guò)插值得到這些沒(méi)有編碼宏塊的重建宏塊,這樣就得到了當(dāng)前編碼宏塊對(duì)的整個(gè)重建宏塊對(duì)。根據(jù)第4)步,需要插值的宏塊為如果當(dāng)前編碼宏塊對(duì)是NS宏塊對(duì)編碼,沒(méi)有宏塊需要插值;如果當(dāng)前編碼宏塊對(duì)是HS宏塊對(duì)編碼,HS宏塊對(duì)的右邊宏塊需要插值。宏塊的插值可以采用各種已有的插值技術(shù)實(shí)現(xiàn)。
6)重復(fù)1)到5)步驟,直到原始圖像中所有的原始宏塊對(duì)完成編碼,則第一階段編碼完成。在第一階段編碼中所有的重建宏塊對(duì)構(gòu)成了重建幀圖像,作為第二階段編碼時(shí)的參考幀。
第二階段編碼1)從原始圖像中獲得一個(gè)與第一階段1)步相同的原始宏塊對(duì),即當(dāng)前編碼宏塊對(duì),根據(jù)原始宏塊對(duì)進(jìn)行抽樣處理選擇兩種類(lèi)型的宏塊對(duì),即NS和HS宏塊對(duì)。
2)對(duì)當(dāng)前編碼宏塊對(duì)中第一階段沒(méi)有編碼的宏塊進(jìn)行編碼第一階段編碼已經(jīng)決定了當(dāng)前編碼宏塊對(duì)是哪種宏塊對(duì)編碼以及已經(jīng)編碼的宏塊和沒(méi)有編碼的宏塊,因此這一步需要編碼的宏塊就是第一階段沒(méi)有編碼的宏塊。具體判斷過(guò)程如下如果當(dāng)前編碼宏塊是NS宏塊對(duì)類(lèi)型,則沒(méi)有宏塊需要編碼;如果當(dāng)前編碼宏塊對(duì)是HS宏塊對(duì)類(lèi)型,則HS宏塊的右邊宏塊需要編碼。以第一階段編碼中所得到的重建幀圖像和第一階段塊編碼時(shí)使用的參考幀一起作為第二階段編碼時(shí)的參考幀,也可以只使用第一階段編碼中所得到的重建幀圖像作為第二階段編碼時(shí)的參考幀,對(duì)需要編碼的塊進(jìn)行編碼,并得到重建宏塊。
3)編碼宏塊的碼流輸出和更新重建宏塊輸出編碼宏塊的碼流,用第2)步得到的編碼重建宏塊替代第一階段編碼時(shí)通過(guò)插值得到的重建宏塊。
4)重復(fù)1)到3)步驟,直到原始圖像中所有的原始宏塊對(duì)完成第二階段編碼,則第二階段編碼完成。
在上述的編碼過(guò)程中,宏塊編碼可以采用已有的各種編碼技術(shù)實(shí)現(xiàn)。宏塊編碼后,計(jì)算宏塊的編碼代價(jià)值也是采用已有的編碼代價(jià)值計(jì)算技術(shù)。估計(jì)宏塊的編碼代價(jià)值是指不進(jìn)行該宏塊編碼,而只是根據(jù)其周?chē)呀?jīng)編碼宏塊的編碼代價(jià)值,估計(jì)出該宏塊的編碼代價(jià)值,例如一個(gè)宏塊的編碼代價(jià)值可以估計(jì)為其周?chē)呀?jīng)編碼的宏塊中與其最相似宏塊的編碼代價(jià)值。
其中解碼過(guò)程,具體包括以下步驟第一階段解碼1)判斷解碼的宏塊對(duì)類(lèi)型首先根據(jù)編碼碼流判斷要解碼的宏塊對(duì)類(lèi)型。如果是NS宏塊對(duì),則執(zhí)行第2步,如果是HS宏塊對(duì),則執(zhí)行第3步。
2)NS宏塊對(duì)的解碼直接解碼NS宏塊對(duì)的左邊宏塊和右邊宏塊。
3)HS宏塊對(duì)的解碼直接解碼HS宏塊對(duì)的左邊宏塊;右邊宏塊在第一階段不解碼,留在第二階段解碼。
4)對(duì)第2)步或第3)步的宏塊對(duì)中沒(méi)有解碼的宏塊進(jìn)行插值獲得重建宏塊根據(jù)已經(jīng)解碼的宏塊對(duì)沒(méi)有解碼的宏塊進(jìn)行插值,這樣就得到了一個(gè)完整的重建宏塊對(duì)。這里宏塊的插值采用與編碼過(guò)程中宏塊插值時(shí)相同的插值技術(shù)。
5)重復(fù)第1)到第4)的步驟,直到所有宏塊對(duì)都被解碼,則第一階段解碼完成。在第一階段解碼中所有的重建宏塊對(duì)構(gòu)成了重建幀圖像,作為第二階段解碼的參考圖像。
第二階段解碼1)對(duì)解碼的宏塊對(duì)中第一階段沒(méi)有解碼的宏塊進(jìn)行解碼經(jīng)過(guò)第一階段解碼,在宏塊對(duì)中可能還有一些宏塊沒(méi)有解碼。以第一階段得到的解碼重建幀圖像和第一階段使用的解碼參考幀作為第二階段解碼時(shí)的參考幀,也可以只使用第一階段解碼中所得到的重建幀圖像作為第二階段解碼時(shí)的參考幀,再對(duì)這些未解碼的宏塊進(jìn)行解碼,得到其重建宏塊。
2)更新解碼重建幀用第1)步的解碼重建宏塊替代第一階段通過(guò)插值得到重建宏塊,這樣得到最終的解碼重建幀,并以此作為解碼下一幀的解碼參考幀。
在上述的解碼過(guò)程中,宏塊解碼可以采用與編碼相對(duì)應(yīng)的已有各種解碼技術(shù)實(shí)現(xiàn)。
權(quán)利要求
1.一種視頻信號(hào)編碼中塊組編碼結(jié)構(gòu),其特征在于,定義M像素×N像素的塊為塊組,包括原始?jí)K組和派生塊組;其中,原始?jí)K組為連續(xù)的M像素×N像素的塊;派生塊組為對(duì)原始?jí)K組進(jìn)行水平或垂直1/2抽樣并重新排列得到的M像素×N像素的塊;所說(shuō)的派生塊組按第一組塊組、第二組塊組的順序組成塊組編碼結(jié)構(gòu)。
2.如權(quán)利要求1所述的視頻信號(hào)編碼中塊組編碼結(jié)構(gòu),其特征在于,所說(shuō)的原始?jí)K組產(chǎn)生方法為對(duì)于逐行掃描的原始圖像,一個(gè)連續(xù)的M像素×N像素的塊組就構(gòu)成一個(gè)原始?jí)K組;對(duì)于隔行掃描的原始圖像,先將時(shí)間上相鄰的奇場(chǎng)和偶場(chǎng),或偶場(chǎng)和奇場(chǎng)圖像按自然空間位置拼成幀圖像,然后在拼成的幀圖像中一個(gè)連續(xù)的M像素×N像素的塊組就構(gòu)成一個(gè)原始?jí)K組。
3.如權(quán)利要求1所述的視頻信號(hào)編碼中塊組編碼結(jié)構(gòu),其特征在于,所說(shuō)的派生塊組包括對(duì)原始?jí)K組不進(jìn)行任何抽樣得到的連續(xù)塊組NS,該塊組由NS1、NS2、NS3和NS4四個(gè)塊組成;對(duì)原始?jí)K組進(jìn)行水平1/2抽樣就得到的水平抽樣塊組HS,該塊組由HS1、HS2、HS3和HS4四個(gè)塊組成;對(duì)原始?jí)K組進(jìn)行垂直1/2抽樣就得到的垂直抽樣塊組VS,該塊組由VS1、VS2、VS3和VS4四個(gè)塊組成;以及對(duì)原始?jí)K組進(jìn)行垂直1/2抽樣再水平1/2抽樣得到的垂直水平抽樣塊組VHS,該塊組由VHS1、VHS2、VHS3和VHS4四個(gè)塊組成。
4.如權(quán)利要求3所述的視頻信號(hào)編碼中塊組編碼結(jié)構(gòu),其特征在于,所說(shuō)的第一組塊組和第二組塊組均由四種派生塊組NS、HS、VS和VHS中任意一種或任意兩種派生塊組構(gòu)成。
5.如權(quán)利要求3所述的視頻信號(hào)編碼中塊組編碼結(jié)構(gòu),其特征在于,所說(shuō)的第一組塊組和第二組塊組中有一組組塊沒(méi)有派生組塊或兩組塊組都有派生組塊。
6.如權(quán)利要求3所述的視頻信號(hào)編碼中塊組編碼結(jié)構(gòu),其特征在于,所說(shuō)的派生塊組中塊的編碼階段屬性為在派生塊組中,如果這個(gè)塊被其他的已編碼塊通過(guò)插值能夠獲得比較滿(mǎn)意的重建塊或者這個(gè)塊在第二階段的編碼代價(jià)值將比在第一階段的編碼代價(jià)值小,則這個(gè)塊留在第二階段編碼,否則在第一階段編碼。
7.如權(quán)利要求6所述的視頻信號(hào)編碼中塊組編碼結(jié)構(gòu),其特征在于,所說(shuō)的派生塊組中塊的編碼階段屬性為對(duì)于NS塊組,每個(gè)塊都在第一階段編碼;對(duì)于HS塊組,對(duì)于HS塊組,將上層兩個(gè)塊中任意一個(gè)塊和下層兩個(gè)塊中任意一個(gè)塊放在第一階段編碼,剩下的塊放在第二階段編碼;或?qū)⑺膫€(gè)塊中任意三個(gè)塊放在第一階段編碼,剩下的塊放在第二階段編碼;對(duì)于VS塊組,將上層兩個(gè)塊或下層兩個(gè)塊放在在第一階段編碼,剩下的兩個(gè)塊放在第二階段編碼,或?qū)⑺膫€(gè)塊中任意三個(gè)塊放在第一階段編碼,剩下的塊放在第二階段編碼;對(duì)于VHS塊組,將四個(gè)塊中任意一個(gè)塊或任意兩個(gè)或任意三個(gè)塊放在第一階段編碼,剩下的塊放在第二階段編碼。
8.如權(quán)利要求3所述的視頻信號(hào)編碼中塊組編碼結(jié)構(gòu),其特征在于,所說(shuō)的塊組編碼結(jié)構(gòu)具體包括1)NS-HS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組和HS塊組,第二組塊組沒(méi)有任何塊組;2)VS-VHS塊組編碼結(jié)構(gòu)第一組塊組沒(méi)有任何塊組,第二組塊組包括VS塊組和VHS塊組;3)NS-VS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組,第二組塊組包括VS塊組;4)HS-VHS塊組編碼結(jié)構(gòu)第一組塊組包括HS塊組,第二組塊組包括VHS塊組;5)NS-VHS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組,第二組塊組包括VHS塊組;6)HS-VS塊組編碼結(jié)構(gòu)第一組塊組包括HS塊組,第二組塊組包括VS塊組;7)NS-HS-VS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組和HS塊組,第二組塊組包括VS塊組;8)NS-HS-VHS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組和HS塊組,第二組塊組包括VHS塊組;9)NS-VS-VHS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組,第二組塊組包括VS塊組和VHS塊組;10)HS-VS-VHS塊組編碼結(jié)構(gòu)第一組塊組包括HS塊組,第二組塊組包括VS塊組和VHS塊組;11)NS-HS--VS-VHS塊組編碼結(jié)構(gòu)第一組塊組包括NS塊組和HS塊組,第二組塊組包括VS塊組和VHS塊組。
9.一種基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法,其特征在于,定義M像素×N像素的塊為塊組,包括原始?jí)K組和派生塊組;其中,原始?jí)K組為連續(xù)的M像素×N像素的塊;派生塊組為對(duì)原始?jí)K組進(jìn)行水平或垂直1/2抽樣并重新排列得到的M像素×N像素的塊;所說(shuō)的派生塊組按第一組塊組、第二組塊組的順序組成塊組編碼結(jié)構(gòu);根據(jù)派生塊組的特征確定塊組中塊的編碼階段屬性;包括編碼過(guò)程和解碼過(guò)程所說(shuō)的編碼過(guò)程,具體包括以下步驟1)進(jìn)行第一階段編碼,包括下列步驟(1)從原始圖像中獲得一個(gè)原始?jí)K組,作為當(dāng)前編碼塊組,根據(jù)原始?jí)K組進(jìn)行抽樣處理得到四種派生塊組;(2)如果被選定的塊組編碼結(jié)構(gòu)的第一組塊組中沒(méi)有派生塊組,則該編碼結(jié)構(gòu)的第一組塊組不編碼;如果被選定的塊組編碼結(jié)構(gòu)的第一組塊組中存在派生塊組,則對(duì)該編碼結(jié)構(gòu)的第一組塊組進(jìn)行下面編碼如果被選定的塊組編碼結(jié)構(gòu)的第一組塊組中只存在一種派生塊組,首先考慮第一組塊組中派生塊組的上層/下層兩個(gè)塊,根據(jù)這兩個(gè)塊的編碼階段屬性,如果是在第一階段編碼,則對(duì)該塊進(jìn)行編碼并計(jì)算其編碼代價(jià)值,如果是在第二階段編碼,則估計(jì)該塊的編碼代價(jià)值;將該派生塊組的上層/下層兩個(gè)塊的編碼碼流作為第一組塊組上層/下層塊的編碼碼流,其編碼代價(jià)值作為第一組塊組上層/下層塊的編碼代價(jià)值;然后按同樣的方式進(jìn)行第一組塊組下層/上層兩個(gè)塊的編碼,并獲得第一組塊組下層/上層塊的編碼碼流和下層/上層塊的編碼代價(jià)值;最后將上、下層塊的編碼代價(jià)值之和作為第一組塊組的編碼代價(jià)值;如果被選定的塊組編碼結(jié)構(gòu)的第一組塊組中存在兩種派生塊組,首先考慮第一組塊組中第一種派生塊組的上層/下層兩個(gè)塊,根據(jù)這兩個(gè)塊的編碼階段屬性,如果是在第一階段編碼,則對(duì)該塊進(jìn)行編碼并計(jì)算其編碼代價(jià)值,如果是在第二階段編碼,則估計(jì)該塊的編碼代價(jià)值;然后再考慮第一組塊組中第二種派生塊組的上層/下層兩個(gè)塊,根據(jù)這兩個(gè)塊的編碼階段屬性,如果是在第一階段編碼,則對(duì)該塊編碼并計(jì)算其編碼代價(jià)值,如果是在第二階段編碼,則估計(jì)該塊的編碼代價(jià)值;最后根據(jù)這兩種派生塊組上層/下層兩個(gè)塊的編碼代價(jià)值之和,選擇編碼代價(jià)值小的派生塊組的上層/下層兩個(gè)塊的編碼碼流作為第一組塊組上層/下層塊的編碼碼流,其編碼代價(jià)值作為第一組塊組上層/下層塊的編碼代價(jià)值;按同樣的方式進(jìn)行第一組塊組下層/上層兩個(gè)塊的編碼,并獲得第一組塊組下層/上層塊的編碼碼流和下層/上層塊的編碼代價(jià)值;將上、下層塊的編碼代價(jià)值之和作為第一組塊組的編碼代價(jià)值;(3)如果被選定的塊組編碼結(jié)構(gòu)的第二組塊組中沒(méi)有派生塊組,該編碼結(jié)構(gòu)的第二組塊組不編碼;如果被選定的塊組編碼結(jié)構(gòu)的第二組塊組中存在派生塊組,則按照第(2)步相同的編碼過(guò)程對(duì)該編碼結(jié)構(gòu)的第二組塊組進(jìn)行編碼,得到第二組塊組的編碼碼流和編碼代價(jià)值;(4)當(dāng)前編碼塊組的編碼碼流輸出如果被選定的塊組編碼結(jié)構(gòu)中只有一組塊組進(jìn)行了編碼,則根據(jù)第(2)步或第(3)步的結(jié)果,決定當(dāng)前編碼塊組的上、下層采用哪種派生塊組類(lèi)型,再根據(jù)派生塊組中塊的編碼階段屬性,輸出已經(jīng)編碼塊的碼流;如果被選定的塊組編碼結(jié)構(gòu)的兩組塊組都進(jìn)行了編碼,則比較第(2)步中得到的第一組塊組的編碼代價(jià)值與第(3)步中得到的第二組塊組的編碼代價(jià)值,決定當(dāng)前編碼塊組采用哪組塊組的編碼碼流當(dāng)?shù)谝唤M塊組的編碼代價(jià)值小,當(dāng)前編碼塊組就采用第一組塊組的編碼碼流,根據(jù)第(2)步的結(jié)果,決定當(dāng)前編碼塊組的上、下層采用哪種派生塊組類(lèi)型,再根據(jù)派生塊組中塊的編碼階段屬性,輸出已經(jīng)編碼塊的碼流;當(dāng)?shù)诙M塊組的編碼代價(jià)值小,當(dāng)前編碼塊組就采用第二組塊組的編碼碼流,根據(jù)第(3)步的結(jié)果,決定當(dāng)前編碼塊組的上、下層采用哪種派生塊組類(lèi)型,再根據(jù)派生塊組中塊的編碼階段屬性,輸出已經(jīng)編碼塊的碼流;(5)對(duì)當(dāng)前編碼塊組中沒(méi)有編碼的塊進(jìn)行插值獲得重建塊,并與由編碼獲得的重建塊構(gòu)成當(dāng)前編碼塊組的重建塊組;(6)重復(fù)(1)到(5)步驟,直到原始圖像中所有的原始?jí)K組完成編碼,則第一階段編碼完成;在第一階段編碼中所有的重建塊組構(gòu)成了重建幀圖像,作為第二階段編碼時(shí)的參考幀;2)進(jìn)行第二階段編碼,包括下列步驟(1)從原始圖像中獲得一個(gè)與第一階段(1)步相同的原始?jí)K組,即當(dāng)前編碼塊組,根據(jù)原始?jí)K組進(jìn)行抽樣處理得到四種派生塊組;(2)以第一階段編碼中所得到的重建幀圖像作為第二階段編碼時(shí)的參考幀,對(duì)當(dāng)前編碼塊組中第一階段沒(méi)有編碼的塊進(jìn)行編碼,并得到其重建塊;(3)用編碼得到的重建塊替代第一階段編碼時(shí)通過(guò)插值得到的重建塊,并且輸出編碼碼流;(4)重復(fù)(1)到(3)步驟,直到原始圖像中所有的原始?jí)K組完成第二階段編碼,則第二階段編碼完成;所說(shuō)的解碼過(guò)程,具體包括以下步驟1)第一階段解碼(1)首先根據(jù)編碼碼流判斷碼流的編碼結(jié)構(gòu)和要解碼的塊組類(lèi)型,如果要解碼的塊組屬于碼流的編碼結(jié)構(gòu)的第一組塊組,則到第(2)步解碼;如果要解碼的塊組屬于碼流的編碼結(jié)構(gòu)的第二組塊組,則到第(3)步解碼;(2)碼流的編碼結(jié)構(gòu)的第一組塊組解碼根據(jù)編碼碼流判斷上層和下層兩個(gè)塊的派生塊組類(lèi)型,再根據(jù)該塊的編碼階段屬性,決定是否解碼如果該塊在第一階段編碼,則該塊直接解碼并得到解碼重建塊;如果該塊在第二階段編碼,則該塊留在第二階段解碼;(3)碼流的編碼結(jié)構(gòu)的第二組塊組解碼根據(jù)編碼碼流判斷上層和下層兩個(gè)塊的派生塊組類(lèi)型,再根據(jù)該塊的編碼階段屬性,決定是否解碼如果該塊在第一階段編碼,則該塊直接解碼并得到解碼重建塊;如果該塊在第二階段編碼,則該塊留在第二階段解碼;(4)根據(jù)已經(jīng)解碼的塊對(duì)第(2)步或第(3)步塊組解碼中沒(méi)有解碼的塊進(jìn)行插值獲得重建塊,并與第(2)步或第(3)步中解碼得到的重建塊構(gòu)成一個(gè)完整的重建塊組;(5)重復(fù)第(1)到第(4)的步驟,直到所有塊組都被解碼,則第一階段解碼完成。在第一階段解碼中所有的重建塊組構(gòu)成了重建幀圖像,作為第二階段解碼的參考幀圖像;2)第二階段解碼(1)對(duì)解碼的塊組中第一階段沒(méi)有解碼的塊進(jìn)行解碼,以第一階段得到的解碼重建幀圖像作為解碼參考幀,對(duì)這些未解碼的塊進(jìn)行解碼,并得到解碼塊的重建塊;(2)用第(1)步的解碼重建塊替代第一階段通過(guò)插值得到的重建塊,這樣得到最終的解碼重建幀,并以此作為解碼下一幀的解碼參考幀。
10.如權(quán)利要求9所述的基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法,其特征在于,所說(shuō)的M像素×N像素的塊組定義為宏塊組,即M等于32,N等于32,原始?jí)K組定義原始宏塊組,派生塊組定義為派生宏塊組;所說(shuō)的編碼結(jié)構(gòu)采用NS-HS-VS-VHS編碼結(jié)構(gòu),其中派生宏塊組中宏塊的編碼階段屬性如下對(duì)于NS宏塊組,每個(gè)宏塊都必須在第一階段編碼;對(duì)于HS宏塊組,HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼;對(duì)于VS宏塊組,VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼;對(duì)于VHS宏塊組,VHS1和VHS2放在第一階段編碼,VHS3和VHS4放在第二階段編碼。
11.如權(quán)利要求9所述的基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法,其特征在于,所說(shuō)的M像素×N像素的塊組定義為宏塊組,即M等于32,N等于32,原始?jí)K組定義原始宏塊組,派生塊組定義為派生宏塊組;所說(shuō)的編碼結(jié)構(gòu)采用NS-HS-VS編碼結(jié)構(gòu),其中派生宏塊組中宏塊的編碼階段屬性如下對(duì)于NS宏塊組,每個(gè)宏塊都必須在第一階段編碼;對(duì)于HS宏塊組,HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼;對(duì)于VS宏塊組,VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼;對(duì)于VHS宏塊組,VHS1和VHS2放在第一階段編碼,VHS3和VHS4放在第二階段編碼。
12.如權(quán)利要求9所述的基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法,其特征在于,所說(shuō)的M像素×N像素的塊組定義為宏塊組,即M等于32,N等于32,原始?jí)K組定義原始宏塊組,派生塊組定義為派生宏塊組;所說(shuō)的編碼結(jié)構(gòu)采用NS-VS編碼類(lèi)型,其中派生宏塊組中宏塊的編碼階段屬性如下對(duì)于NS宏塊組,每個(gè)宏塊都必須在第一階段編碼;對(duì)于HS宏塊組,HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼;對(duì)于VS宏塊組,VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼;對(duì)于VHS宏塊組,VHS1和VHS2放在第一階段編碼,VHS3和VHS4放在第二階段編碼。
13.如權(quán)利要求9所述的基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法,其特征在于,所說(shuō)的M像素×N像素的塊組定義為宏塊,即M等于16,N等于16,原始?jí)K組定義原始宏塊,派生塊組定義為派生宏塊;所說(shuō)的編碼結(jié)構(gòu)采用NS-HS-VS-VHS編碼結(jié)構(gòu),其中派生宏塊中塊的編碼階段屬性如下對(duì)于NS宏塊,每個(gè)塊都必須在第一階段編碼;對(duì)于HS宏塊,HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼;對(duì)于VS宏塊,VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼;對(duì)于VHS宏塊,VHS1和VHS2放在第一階段編碼,VHS3和VHS4放在第二階段編碼。
14.如權(quán)利要求9所述的基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法,其特征在于,所說(shuō)的M像素×N像素的塊組定義為宏塊,即M等于16,N等于16,原始?jí)K組定義原始宏塊,派生塊組定義為派生宏塊;所說(shuō)的編碼結(jié)構(gòu)采用NS-HS-VS編碼結(jié)構(gòu),其中派生宏塊中塊的編碼階段屬性如下對(duì)于NS宏塊,每個(gè)塊都必須在第一階段編碼;對(duì)于HS宏塊,HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼;對(duì)于VS宏塊,VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼;對(duì)于VHS宏塊,VHS1和VHS2放在第一階段編碼,VHS3和VHS4放在第二階段編碼;
15.如權(quán)利要求9所述的基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法,其特征在于,所說(shuō)的M像素×N像素的塊組定義為宏塊,即M等于16,N等于16,原始?jí)K組定義原始宏塊,派生塊組定義為派生宏塊;所說(shuō)的編碼結(jié)構(gòu)采用NS-VS編碼類(lèi)型,其中派生宏塊中塊的編碼階段屬性如下對(duì)于NS宏塊,每個(gè)塊都必須在第一階段編碼;對(duì)于HS宏塊,HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼;對(duì)于VS宏塊,VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼;對(duì)于VHS宏塊,VHS1和VHS2放在第一階段編碼,VHS3和VHS4放在第二階段編碼。
16.如權(quán)利要求9所述的基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法,其特征在于,所說(shuō)的M像素×N像素的塊組定義為宏塊對(duì),即M等于16,N等于32,原始?jí)K組定義原始宏塊對(duì),派生塊組定義為派生宏塊對(duì);所說(shuō)的編碼結(jié)構(gòu)采用NS-VS編碼結(jié)構(gòu),其中派生宏塊中塊的編碼階段屬性如下對(duì)于NS宏塊對(duì),每個(gè)塊都必須在第一階段編碼;對(duì)于HS宏塊對(duì),HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼;對(duì)于VS宏塊對(duì),VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼;對(duì)于VHS宏塊對(duì),VHS1和VHS3放在第一階段編碼,VHS2和VHS4放在第二階段編碼。
17.如權(quán)利要求9所述的基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法,其特征在于,所說(shuō)的M像素×N像素的塊組定義為宏塊對(duì),即M等于32,N等于16,原始?jí)K組定義原始宏塊對(duì),派生塊組定義為派生宏塊對(duì);所說(shuō)的編碼結(jié)構(gòu)采用NS-HS編碼結(jié)構(gòu),其中派生宏塊中塊的編碼階段屬性如下對(duì)于NS宏塊對(duì),每個(gè)塊都必須在第一階段編碼;對(duì)于HS宏塊對(duì),HS1和HS3在第一階段編碼,HS2和HS4在第二階段編碼;對(duì)于VS宏塊對(duì),VS1和VS2在第一階段編碼,VS3和VS4在第二階段編碼;對(duì)于VHS宏塊對(duì),VHS1和VHS4放在第一階段編碼,VHS2和VHS3放在第二階段編碼。
18.如權(quán)利要求9、10、11、12、13、14、15、16或17所述的基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法,其特征在于,所說(shuō)的第二階段編碼時(shí)的參考幀還包括第一階段塊編碼時(shí)使用的參考幀,所說(shuō)的第二階段解碼時(shí)的參考幀還包括第一階段塊解碼時(shí)使用的參考幀。
19.如權(quán)利要求9、10、11、12、13、14、15、16或17所述的基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法,其特征在于,所說(shuō)的第二階段編碼時(shí)的參考幀包括由第一階段塊編碼時(shí)使用的參考幀和經(jīng)第一階段編碼后得到的重建參考幀相結(jié)合構(gòu)成的參考幀,所說(shuō)的第二階段解碼時(shí)的參考幀包括由第一階段塊解碼時(shí)使用的參考幀和經(jīng)第一階段解碼后得到的重建參考幀相結(jié)合構(gòu)成的參考幀。
全文摘要
本發(fā)明屬于信號(hào)處理中的視頻編解碼技術(shù)領(lǐng)域,涉及塊組編碼結(jié)構(gòu)及基于塊組結(jié)構(gòu)的自適應(yīng)分階段預(yù)測(cè)編碼方法。該塊組編碼結(jié)構(gòu)包括定義M像素×N像素的塊為塊組,包括原始?jí)K組和派生塊組;其中,原始?jí)K組為連續(xù)的M像素×N像素的塊;派生塊組為對(duì)原始?jí)K組進(jìn)行水平或垂直1/2抽樣并重新排列得到的M像素×N像素的塊;所說(shuō)的派生塊組按第一組塊組、第二組塊組的順序組成塊組編碼結(jié)構(gòu)。該編碼方法根據(jù)派生塊組中塊的編碼階段屬性分別在第一階段或第二階段編碼。本發(fā)明有效的提高視頻信號(hào)的壓縮效率。針對(duì)最新的JVT參考軟件JM61e,在相同的試驗(yàn)條件下,所做試驗(yàn)表明本發(fā)明的編碼效率明顯高于JVT結(jié)果。
文檔編號(hào)H04N7/32GK1494325SQ03156540
公開(kāi)日2004年5月5日 申請(qǐng)日期2003年9月8日 優(yōu)先權(quán)日2003年9月8日
發(fā)明者何蕓, 李國(guó)平, 朱剛, 趙海武, 陳勇, 諸維佳, 宋利, 何 蕓 申請(qǐng)人:清華大學(xué), 上海廣電(集團(tuán))有限公司