日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

運(yùn)動(dòng)圖像的預(yù)測編碼方法和譯碼方法

文檔序號(hào):7579966閱讀:265來源:國知局
專利名稱:運(yùn)動(dòng)圖像的預(yù)測編碼方法和譯碼方法
技術(shù)領(lǐng)域
本發(fā)明涉及運(yùn)動(dòng)圖像信號(hào)的編碼方法和譯碼方法。
背景技術(shù)
在ITU-T推薦H.261、H.263及ISO/IEC 11172-2(MPEG-1)、ISO/IEC 13818-2(MPEG-2)等現(xiàn)有的圖像編碼標(biāo)準(zhǔn)中,作為抑制運(yùn)動(dòng)圖像的實(shí)際冗長性的手段,是使用運(yùn)動(dòng)補(bǔ)償幀間預(yù)測。另外,對(duì)于推進(jìn)現(xiàn)在產(chǎn)業(yè)的ISO/IEC 14496-2(MPEG-4)的檢驗(yàn)?zāi)P?,也采用同樣的運(yùn)動(dòng)補(bǔ)償方法。
在運(yùn)動(dòng)補(bǔ)償預(yù)測編碼中,通常是將編碼對(duì)象圖像(當(dāng)前幀)劃分為16像素×16行的塊(以后,稱為宏塊),檢測各宏塊相對(duì)于參照?qǐng)D像(參照幀)的運(yùn)動(dòng)量(運(yùn)動(dòng)矢量設(shè)水平分量(運(yùn)動(dòng)量)為tx、垂直分量(運(yùn)動(dòng)量)為ty),對(duì)使與參照?qǐng)D像中當(dāng)前幀的宏塊對(duì)應(yīng)的塊偏移1個(gè)運(yùn)動(dòng)矢量的量而生成的預(yù)測圖像與當(dāng)前幀之間的幀間差分進(jìn)行編碼。
具體而言,就是與當(dāng)前幀的坐標(biāo)(x,y)的圖像數(shù)據(jù)最匹配的圖像,使用上述運(yùn)動(dòng)矢量(tx,ty)按下式那樣對(duì)應(yīng)而作為參照幀中的預(yù)測圖像數(shù)據(jù)的坐標(biāo)(x’,y’)。
X’=X+txY’=Y(jié)+ty即,不是參照幀中的相同位置(x,y)的像素值,通過將使其偏移1個(gè)運(yùn)動(dòng)矢量(tx,ty)的量的位置的像素值作為預(yù)測值,可以大幅度地提高幀間預(yù)測效率。
另一方面,已提案了預(yù)測由于攝像機(jī)的搖動(dòng)、傾斜及變焦引起的整個(gè)畫面的運(yùn)動(dòng)的全局運(yùn)動(dòng)補(bǔ)償(H.Jozawa(如澤),“Coreexperimenton global motion compensation(P1)Version 5.0”,Descriptionof Core Experiments on Efficient Coding in MPEG-4 Video,December,1996)。下面,根據(jù)圖3和圖4簡單地說明使用全局運(yùn)動(dòng)補(bǔ)償?shù)木幋a器、譯碼器的結(jié)構(gòu)和處理流程。
開始,編碼對(duì)象圖像(數(shù)據(jù))1(輸入圖像1)和參照?qǐng)D像(數(shù)據(jù))3輸入到全局運(yùn)動(dòng)檢測部4,在此求對(duì)整個(gè)畫面的全局運(yùn)動(dòng)參量5。作為這里所使用的運(yùn)動(dòng)模型的例子,有影射變換、雙一次變換和仿射變換等。如澤等人的方式,不論對(duì)哪種運(yùn)動(dòng)模型都可以實(shí)施,不管運(yùn)動(dòng)模型的種類如何,下面,簡單地說明這些典型的運(yùn)動(dòng)模型。
設(shè)當(dāng)前幀的任意點(diǎn)的坐標(biāo)為(x,y)、參照幀中所預(yù)測的對(duì)應(yīng)點(diǎn)的坐標(biāo)為(x’,y’)時(shí),影射變換可以表示為下式x’=(ax+by+tx)/(px+qy+s)y’=(cx+dy+tx)/(px+qy+s) ……(1)其中,a~d、p、q、s是常數(shù)。影射變換是2維變換的一般表現(xiàn)形式,通常,在式(1)中,多數(shù)稱取s=1的為影射變換。另外,取p=q=0、s=1的是仿射變換。
其次,將雙一次變換的公式表示如下x’=gxy+ax+by+txy’=hxy+cx+dy+ty……(2)其中,a~d、g、h是常數(shù),即使取g=h=0,也可以如以下式(3)所示的那樣成為仿射變換。
x’=ax+by+txy’=cx+dy+ty……(3)在以上的式中,tx、ty分別表示水平、垂直方向的平行運(yùn)動(dòng)量。參量a表示水平方向的放大/縮小或反相,參量d表示垂直方向的放大/縮小或反相。另外,參量b表示水平方向的剪斷,參量c表示垂直方向的剪斷。此外,a=cosθ、b=sinθ、c=-sinθ、d=cosθ時(shí),表示角度θ的旋轉(zhuǎn)。a=d=1并且b=c=0時(shí),牷與先有的平行運(yùn)動(dòng)模型等價(jià)。
如上所述,通過對(duì)運(yùn)動(dòng)模型使用仿射變換,可以表現(xiàn)平行運(yùn)動(dòng)、放大/縮小、反相、剪斷、旋轉(zhuǎn)等各種運(yùn)動(dòng)以及它們的自由的組合。在參量數(shù)更多的影射變換和雙一次變換中,可以表現(xiàn)更復(fù)雜的運(yùn)動(dòng)。
由全局運(yùn)動(dòng)檢測部4求出的全局運(yùn)動(dòng)參量5與幀存儲(chǔ)器2存儲(chǔ)的參照?qǐng)D像3一起輸入到全局運(yùn)動(dòng)補(bǔ)償部6。在全局運(yùn)動(dòng)補(bǔ)償部6中,使根據(jù)全局運(yùn)動(dòng)參量5求出的各像素的運(yùn)動(dòng)矢量作用于參照?qǐng)D像3,生成全局運(yùn)動(dòng)補(bǔ)償預(yù)測圖像(數(shù)據(jù))7。
另一方面,幀存儲(chǔ)器2存儲(chǔ)的參照?qǐng)D像3與輸入圖像1一起輸入到局部運(yùn)動(dòng)檢測部8。在局部運(yùn)動(dòng)檢測部8中,對(duì)各16像素×16行的宏塊檢測輸入圖像1與參照?qǐng)D像3之間的運(yùn)動(dòng)矢量9。在局部運(yùn)動(dòng)補(bǔ)償部10中,根據(jù)各宏塊的運(yùn)動(dòng)矢量9和參照?qǐng)D像3生成局部運(yùn)動(dòng)補(bǔ)償預(yù)測圖像(數(shù)據(jù))11。這就是在先有的MPEG等中使用的運(yùn)動(dòng)補(bǔ)償方法。
其次,在預(yù)測模式選擇部12中,在全局運(yùn)動(dòng)補(bǔ)償預(yù)測圖像7和局部運(yùn)動(dòng)補(bǔ)償預(yù)測圖像11中對(duì)各宏塊選擇關(guān)于輸入圖像1的誤差小的一方。由預(yù)測模式選擇部12所選擇的預(yù)測圖像13輸入到減法器14,輸入圖像1與預(yù)測圖像13間的差分圖像15由DCT(離散余弦變換)部16變換為DCT系數(shù)17。從DCT部16得到的DCT系數(shù)17,由量化部18變換為量化指數(shù)19。量化指數(shù)19、全局運(yùn)動(dòng)參量5、運(yùn)動(dòng)矢量9、以及從預(yù)測模式選擇部12輸出的預(yù)測模式選擇信息26由編碼部101~104分別進(jìn)行編碼后,由復(fù)用部27’進(jìn)行復(fù)用處理而成為編碼器輸出(編碼位串)28’。
另外,在編碼器和譯碼器中為了使參照?qǐng)D像一致,量化指數(shù)19由逆量化部20恢復(fù)為量化代表值21,再由逆DCT部22逆變換為差分圖像23。差分圖像23和預(yù)測圖像13在加法器24中進(jìn)行加法運(yùn)算,成為局部譯碼圖像25。該局部譯碼圖像25存儲(chǔ)到幀存儲(chǔ)器2中,在下一個(gè)幀的編碼時(shí)作為參照?qǐng)D像使用。
在譯碼器(圖4)中,先由分離器29’將所接受的編碼位串28’分離為已編碼的量化指數(shù)19、預(yù)測模式選擇信息26和運(yùn)動(dòng)矢量9和全局運(yùn)動(dòng)參量5這4個(gè)量,然后由譯碼部201~204分別進(jìn)行譯碼。其次,幀存儲(chǔ)器33存儲(chǔ)的參照?qǐng)D像3(與圖3所示的參照?qǐng)D像3相同)與譯碼后的全局運(yùn)動(dòng)參量5一起輸入全局運(yùn)動(dòng)補(bǔ)償部34。在全局運(yùn)動(dòng)補(bǔ)償部34中,使全局運(yùn)動(dòng)參量5作用于參照?qǐng)D像3,生成和圖3相同的全局運(yùn)動(dòng)補(bǔ)償預(yù)測圖像7。另一方面,參照?qǐng)D像3也輸入局部運(yùn)動(dòng)補(bǔ)償部35。在局部運(yùn)動(dòng)補(bǔ)償部35中,使運(yùn)動(dòng)矢量9作用于參照?qǐng)D像3,生成和圖3相同的局部運(yùn)動(dòng)補(bǔ)償預(yù)測圖像11。
然后,全局運(yùn)動(dòng)補(bǔ)償預(yù)測圖像7和局部運(yùn)動(dòng)補(bǔ)償預(yù)測圖像11輸入預(yù)測模式選擇部36。在預(yù)測模式選擇部36中,根據(jù)譯碼后的預(yù)測模式選擇信息26選擇全局運(yùn)動(dòng)補(bǔ)償預(yù)測圖像7或局部運(yùn)動(dòng)補(bǔ)償預(yù)測圖像11,并將其作為預(yù)測圖像13。
另一方面,譯碼后的量化指數(shù)19由逆量化部30恢復(fù)為量化代表值21,進(jìn)而由逆DCT部31逆變換為差分圖像23。差分圖像23和預(yù)測圖像13在加法器32中進(jìn)行加法運(yùn)算,成為局部譯碼圖像25。該局部譯碼圖像25存儲(chǔ)到幀存儲(chǔ)器33中,在下一個(gè)幀的譯碼時(shí)作為參照?qǐng)D像使用。
上述先有技術(shù)的全局運(yùn)動(dòng)補(bǔ)償預(yù)測方法,在全局運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測圖像和局部運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測圖像中對(duì)各宏塊選擇預(yù)測誤差小的一方,可以提高幀全體的預(yù)測效率。為了實(shí)現(xiàn)這一點(diǎn),使用全局運(yùn)動(dòng)補(bǔ)償或局部運(yùn)動(dòng)補(bǔ)償向譯碼器指示各塊是否已進(jìn)行了預(yù)測,所以,必須將表示使用哪個(gè)預(yù)測方法的代碼字插入到編碼數(shù)據(jù)串中。因此,在發(fā)明者對(duì)現(xiàn)在標(biāo)準(zhǔn)化作業(yè)中的MPEG-4的提案中,宏塊的編碼數(shù)據(jù)結(jié)構(gòu)(語法)如以下表1所示。表1使用模擬C代碼描述編碼數(shù)據(jù)串的并列,也表示出了編碼器及譯碼器的運(yùn)動(dòng)作。另外,圖5是示意性地表示表1的數(shù)據(jù)結(jié)構(gòu)(位流結(jié)構(gòu))的圖,按D1~D8所示的代碼字、運(yùn)動(dòng)矢量、DCT系數(shù)信息(量化指數(shù))的順序構(gòu)成數(shù)據(jù)。
表1


在MPEG-4中,先有的幀稱為圖像·目標(biāo)·平面(VOP)。VOP的類型有以下表2所示的4種。
表2<

I-、P-、B-VOP與MPEG-1及MPEG-2中的I-、P-、B-圖像相同。SPRITE-VOP是在MPEG-4中新加的概念,是根據(jù)運(yùn)動(dòng)圖像序列中的1個(gè)圖像限幅全體的背景圖像(靜的子畫面)及通過全局運(yùn)動(dòng)補(bǔ)償而得到的運(yùn)動(dòng)的子畫面所預(yù)測的VOP。在表1的語法中,為了簡單起見,省略了I-VOP和B-VOP部分。另外,在MPEG-4中,為了將任意形狀的圖像目標(biāo)進(jìn)行編碼,還記載了形狀信息,但是,此處為了簡單起見,也省略了。
在與表1對(duì)應(yīng)的全局運(yùn)動(dòng)補(bǔ)償預(yù)測編碼器中,首先在VOP類型為SPRITE時(shí),作為預(yù)測模式選擇信息26牷輸出MCSEL這樣的1位的代碼字(D1)。MCSEL是表示現(xiàn)在的宏塊是利用全局運(yùn)動(dòng)補(bǔ)償進(jìn)行預(yù)測的還是利用局部運(yùn)動(dòng)補(bǔ)償進(jìn)行預(yù)測的標(biāo)志。在是全局運(yùn)動(dòng)補(bǔ)償時(shí),就輸出MCSEL=1;在是局部運(yùn)動(dòng)補(bǔ)償時(shí),就輸出MCSEL=0。
其次,在VOP類型為P或SPRITE時(shí),就輸出COD這樣的1位的代碼字(D2)。COD是表示是否跳躍過現(xiàn)在的宏塊的標(biāo)志,在不跳躍而進(jìn)行編碼時(shí),就輸出COD=0;在進(jìn)行跳躍時(shí)就輸出COD=1。宏塊跳躍適用于宏塊類型為INTER、并且運(yùn)動(dòng)矢量為(0,0)而DCT系數(shù)全部為0的情況。由于不必將宏塊類型、運(yùn)動(dòng)矢量信息和DCT系數(shù)全部進(jìn)行編碼,所以,可以大幅度地壓縮。在COD=0時(shí),進(jìn)入以下的處理,在COD=1時(shí),跳躍過以下全部的處理,而進(jìn)入下一個(gè)宏塊的處理。
然后,編碼器輸出稱為MCBPC的可變長代碼字(D3)。MCBPC是表示有無宏塊類型和2個(gè)色差信號(hào)塊的DCT系數(shù)的代碼字。宏塊類型(模式)有以下表3所示的5種類型。
表3<

其次,在宏塊類型為幀內(nèi)編碼模式即INTRA或INTRA+Q時(shí),就輸出Acpred_flag這樣的代碼字(D4)。Acpred_flag是表示在現(xiàn)在的宏塊中是否進(jìn)行了DCT的交流(AC)系數(shù)預(yù)測的標(biāo)志,在進(jìn)行了AC系數(shù)預(yù)測時(shí),就輸出Acpred_flag=1,在尚未進(jìn)行時(shí),就輸出Acpred_flag=0。
然后,編碼器輸出稱為CBPY這樣的可變長代碼字(D5)。CBPY表示是否存在4個(gè)亮度信號(hào)塊的DCT系數(shù)。另外,在宏塊類型為INTER+Q或INTRA+Q時(shí),就輸出量化步長信息DQUANT(可變長代碼字D6)。
其次,在宏塊類型不是幀內(nèi)編碼模式時(shí),即既不是INTRA也不是INTRA+Q時(shí),就輸出運(yùn)動(dòng)矢量信息(D7)。但是,在VOP類型為SPRITE時(shí),則僅在MCSEL=0即使用局部運(yùn)動(dòng)補(bǔ)償時(shí)輸出運(yùn)動(dòng)矢量信息(D7),而在MCSEL=1即使用全局運(yùn)動(dòng)補(bǔ)償時(shí)則不輸出運(yùn)動(dòng)矢量信息。
最后,將包含在16×16的宏塊中的各8×8塊的DCT系數(shù)信息作為量化指數(shù)19(D8)而輸出。
但是,在以上說明的語法中,在宏塊類型為幀內(nèi)編碼模式(INTRA或INTRA+Q)時(shí),也輸出MCSEL。在幀內(nèi)編碼模式時(shí),由于既不使用全局運(yùn)動(dòng)補(bǔ)償也不使用局部運(yùn)動(dòng)補(bǔ)償,所以,MCSEL的指定沒有意義。因此,這時(shí),就存在對(duì)1宏塊附加了1位不需要的信息的問題。
此外,在全局運(yùn)動(dòng)補(bǔ)償有效的圖像中,在全局運(yùn)動(dòng)補(bǔ)償時(shí)幾乎都有宏塊跳躍,而在局部運(yùn)動(dòng)補(bǔ)償時(shí)則幾乎不發(fā)生宏塊跳躍。因此,在宏塊跳躍時(shí)實(shí)際上MCSEL是不需要的,這時(shí),也存在對(duì)1宏塊附加了1位的信息的問題。
然而,在高傳輸速率的情況時(shí),在全部數(shù)據(jù)中輔助操作信息所占的比例很少,不是什么問題。但是,近年來隨著因特網(wǎng)的普及,對(duì)低速率的圖像傳輸?shù)男枰岣吡?。在低傳輸速率的圖像信息的編碼中,輔助操作信息所占的比例必然增大,從而削減輔助操作信息的必要性就提高了。
具體而言,就是MCSEL對(duì)1宏塊雖然是1位,但是,在352像素×288行的CIF(Common Intermediate Format)圖像中,每1幀就需要396位的位數(shù),在176像素×144行的QCIF(Quarter CIF)圖像中就需要99位的位數(shù)。MCSEL的代碼量是固定的,與編碼速率無關(guān),在低速率編碼時(shí),在全體代碼量中所占的比例增大,從而成為大的負(fù)擔(dān)。例如,在QCIF中,將10幀/秒的圖像以20kbit/秒進(jìn)行編碼時(shí),MCSEL成為99×10≈1kbit/秒的信息量,占全部數(shù)據(jù)速率的5%的比例。
發(fā)明的公開本發(fā)明者著眼于上述需要,試圖解決存在的問題。即,本發(fā)明的目的旨在在具有全局運(yùn)動(dòng)補(bǔ)償模式和局部運(yùn)動(dòng)補(bǔ)償模式的2種預(yù)測模式的運(yùn)動(dòng)圖像的預(yù)測編碼方法中,提供將不需要的MCSEL即使是1位也大多削減從而提高壓縮效率的運(yùn)動(dòng)圖像的預(yù)測編碼方法和與其對(duì)應(yīng)的運(yùn)動(dòng)圖像的譯碼方法。
為了達(dá)到上述目的,本發(fā)明在有選擇地執(zhí)行全局運(yùn)動(dòng)補(bǔ)償階段和局部運(yùn)動(dòng)補(bǔ)償階段的運(yùn)動(dòng)圖像的預(yù)測編碼方法中,將在處理塊為幀間編碼塊時(shí)把表示是否使用上述全局運(yùn)動(dòng)補(bǔ)償階段或上述局部運(yùn)動(dòng)補(bǔ)償階段預(yù)測了上述處理塊的預(yù)測模式選擇代碼字插入到將該處理塊編碼后的數(shù)據(jù)串中表示該塊的編碼模式的代碼字以后而在其他情況時(shí)就不將上述預(yù)測模式選擇代碼字插入到上述數(shù)據(jù)串中的方法作為第1方法而提供。
另外,在上述方法中,將在上述處理塊為塊跳躍時(shí)就一定選擇上述全局運(yùn)動(dòng)補(bǔ)償階段同時(shí)在跳躍后的塊中省略上述預(yù)測模式選擇代碼字的方法作為第2方法而提供。
其次,本發(fā)明是將用上述第1方法編碼后的數(shù)據(jù)串進(jìn)行譯碼的譯碼方法,提供在上述處理塊為進(jìn)行幀間編碼時(shí)從編碼數(shù)據(jù)串中讀入上述預(yù)測模式選擇代碼字并使用所選擇的預(yù)測方法進(jìn)行譯碼而在其他情況時(shí)則不讀入該預(yù)測模式選擇代碼字的方法。
另外,本發(fā)明是將用上述第2方法編碼后的數(shù)據(jù)串進(jìn)行譯碼的譯碼方法,提供在上述處理塊進(jìn)行塊跳躍時(shí)就不讀入上述預(yù)測模式選擇代碼字而進(jìn)行與上述全局運(yùn)動(dòng)補(bǔ)償階段對(duì)應(yīng)的譯碼處理的方法。
如上所述,在宏塊類型為幀內(nèi)編碼模式即INTRA或INTRA+Q時(shí),由于既不使用全局運(yùn)動(dòng)補(bǔ)償也不使用局部運(yùn)動(dòng)補(bǔ)償,所以,本來就不需要表示各宏塊使用哪個(gè)預(yù)測方法的標(biāo)志(MCSEL)。但是,在先有的預(yù)測編碼方法中,由于MCSEL位于表示宏塊類型的代碼字(MCBPC)之前,所以,在譯碼器中在得出MCBPC之前不能判斷是否需要MCSEL,即使宏塊類型是幀內(nèi)編碼模式,對(duì)所有的宏塊都必須附加MCSEL。
與此相反,按照本發(fā)明的上述第1方法,MCSEL是位于MCBPC之后。這樣,在譯碼器中在讀入宏塊類型后就可以判斷是否有MCSEL。因此,在幀內(nèi)編碼模式的情況時(shí),可以不附加MCSEL,從而可以削減不需要的輔助操作信息。
另外,如上所述,在全局運(yùn)動(dòng)補(bǔ)償有效的圖像中,進(jìn)行宏塊跳躍的幾乎都時(shí)全局運(yùn)動(dòng)補(bǔ)償?shù)那闆r,在局部運(yùn)動(dòng)補(bǔ)償?shù)那闆r時(shí)幾乎不發(fā)生宏塊跳躍。因此,在宏塊跳躍的情況時(shí)實(shí)際上也不需要MCSEL。
按照本發(fā)明的上述第2方法,由于將宏塊跳躍限定為全局運(yùn)動(dòng)補(bǔ)償?shù)那闆r,可以消除宏塊跳躍時(shí)的MCSEL,所以,可以進(jìn)一步削減多余的輔助操作信息。
即,按照本發(fā)明的運(yùn)動(dòng)圖像的預(yù)測編碼方法和譯碼方法,即使是1位也可以大量削減不需要的MCSEL,從而可以削減多余的輔助操作信息而提高壓縮效率。編碼速率越低,本發(fā)明的效果越大。
另外,本發(fā)明提供記錄用于使計(jì)算機(jī)執(zhí)行上述某一方法的程序的記錄媒體和記錄利用上述某一編碼方法編碼后的數(shù)據(jù)的計(jì)算機(jī)可以讀取的記錄媒體。
附圖的簡單說明圖1是表示本發(fā)明的一個(gè)實(shí)施例的編碼器的結(jié)構(gòu)的圖。
圖2是表示與圖1的編碼器對(duì)應(yīng)的譯碼器的結(jié)構(gòu)例的圖。
圖3是表示編碼器的先有例的結(jié)構(gòu)的圖。
圖4是表示與圖3的編碼器對(duì)應(yīng)的譯碼器的結(jié)構(gòu)例的圖。
圖5是示意性地表示表1的數(shù)據(jù)結(jié)構(gòu)(位流結(jié)構(gòu))的圖。
圖6是示意性地表示表4的數(shù)據(jù)結(jié)構(gòu)(位流結(jié)構(gòu))的圖。
圖7是示意性地表示表5的數(shù)據(jù)結(jié)構(gòu)(位流結(jié)構(gòu))的圖。
圖8是運(yùn)動(dòng)圖像的預(yù)測編碼程序全體的流程圖(之一)。
圖9是運(yùn)動(dòng)圖像的預(yù)測編碼程序全體的流程圖(之二)。
圖10是表示先有的宏塊層復(fù)用處理例的流程圖(之一)。
圖11是表示先有的宏塊層復(fù)用處理例的流程圖(之二)。
圖12是表示利用本發(fā)明的(第1)方法的宏塊層復(fù)用處理例的流程圖(之一)。
圖13是表示利用本發(fā)明的(第1)方法的宏塊層復(fù)用處理例的流程圖(之二)。
圖14是表示利用本發(fā)明的(第2)方法的宏塊層復(fù)用處理例的流程圖(之一)。
圖15是表示利用本發(fā)明的(第2)方法的宏塊層復(fù)用處理例的流程圖(之二)。
圖16是運(yùn)動(dòng)圖像的預(yù)測譯碼程序全體的流程圖。
圖17是表示先有的宏塊層分離和譯碼處理例的流程圖(之一)。
圖18是表示先有的宏塊層分離和譯碼處理例的流程圖(之二)。
圖19是表示利用上述第1方法進(jìn)行復(fù)用處理的宏塊層的分離和譯碼處理例的流程圖(之一)。
圖20是表示利用上述第1方法進(jìn)行復(fù)用處理的宏塊層的分離和譯碼處理例的流程圖(之二)。
圖21是表示利用上述第2方法進(jìn)行復(fù)用處理的宏塊層的分離和譯碼處理例的流程圖(之一)。
圖22是表示利用上述第2方法進(jìn)行復(fù)用處理的宏塊層的分離和譯碼處理例的流程圖(之二)。
實(shí)施發(fā)明的最佳形式下面,參照


本發(fā)明的實(shí)施例。
圖1是表示本發(fā)明的一個(gè)實(shí)施例的編碼器的結(jié)構(gòu)的圖。該編碼器與圖3所示的先有的編碼器只是復(fù)用部27的處理不同。這就是本發(fā)明的編碼器和譯碼器的結(jié)構(gòu)要素及處理流程與先有的實(shí)施例相同的緣故。但是,由于編碼數(shù)據(jù)串的結(jié)構(gòu)不同,所以,下面將本發(fā)明的編碼數(shù)據(jù)結(jié)構(gòu)(語法)示于表4進(jìn)行說明。另外,圖6是示意性地表示表4的數(shù)據(jù)結(jié)構(gòu)(位流結(jié)構(gòu))的圖,按D11~D19所示的代碼字、運(yùn)動(dòng)矢量、DCT系數(shù)信息(量化步長)的順序構(gòu)成數(shù)據(jù)。
表4


<p>如表4所示,在本實(shí)施例中,首先在VOP類型為P或SPRITE時(shí)輸出上述1位的代碼字COD(B11)。宏塊跳躍與先有例一樣,適用于宏塊類型為INTER并且運(yùn)動(dòng)矢量為(0,0)而DCT系數(shù)全部為0的情況。但是,由于需要表示使用的是全局運(yùn)動(dòng)補(bǔ)償和局部運(yùn)動(dòng)補(bǔ)償中的哪一個(gè)的信息,所以,在COD=1時(shí)也限于VOP類型為SPRITE的情況,并輸出MCSEL(預(yù)測模式選擇信息)26(D12)。在使用全局運(yùn)動(dòng)補(bǔ)償時(shí),輸出MCSEL=1,在使用局部運(yùn)動(dòng)補(bǔ)償時(shí)輸出MCSEL=0。
在COD=1時(shí),全跳躍過以后的處理,進(jìn)入下一個(gè)宏塊的處理。這時(shí),可以不必將宏塊類型、移動(dòng)矢量信息9、DCT系數(shù)的量化指數(shù)19全進(jìn)行編碼,所以,可以大幅度地進(jìn)行壓縮。
其次,編碼器輸出上述可變長代碼字MCBPC(D13)。
然后,在VOP類型為SPRITE并且宏塊類型為INTER或INTER+Q時(shí),在MCBPC之后輸出上述MCSEL26(D14)。
全局運(yùn)動(dòng)補(bǔ)償或局部運(yùn)動(dòng)補(bǔ)償?shù)哪J竭x擇,和先有情況一樣由預(yù)測模式選擇部12進(jìn)行。選擇的方法是自由的??梢赃x擇預(yù)測誤差小的一方,也可以考慮預(yù)測誤差和發(fā)生代碼量的兩方面的情況進(jìn)行決定。
其次,在宏塊類型為幀內(nèi)編碼模式(INTRA或INTRA+Q)時(shí),就輸出上述代碼字Acpred_flag(D15)。
然后,編碼器輸出上述可變長代碼字CBPY(D16)。其次,在宏塊類型為INTER+Q或INTRA+Q時(shí),就輸出上述量化步長信息DQUANT(可變長代碼字D17)。
然后,在宏塊類型不是幀內(nèi)編碼模式即既不是INTRA也不是INTRA+Q時(shí),就輸出運(yùn)動(dòng)矢量9(D18)。但是,VOP類型為SPRITE時(shí),在MCSEL=1即在使用全局運(yùn)動(dòng)補(bǔ)償時(shí)不輸出運(yùn)動(dòng)矢量9。僅在MCSEL=0即使用局部運(yùn)動(dòng)補(bǔ)償時(shí)輸出運(yùn)動(dòng)矢量9。
最后,將包含在16×16的宏塊中的各8×8塊的DCT系數(shù)信息作為量化步長19(D19)而輸出。
DCT系數(shù)的量化指數(shù)19、預(yù)測模式選擇信息(MCSEL)26、運(yùn)動(dòng)矢量9和全局運(yùn)動(dòng)參量5分別由編碼部101~104進(jìn)行編碼,復(fù)用部27按照上述規(guī)則將這些編碼數(shù)據(jù)進(jìn)行復(fù)用處理,并輸出編碼器輸出28。這里,全局運(yùn)動(dòng)參量5可以各VOP有1組,所以,不包含在宏塊層的語法(表4)中。另外,在表4的語法中,為了簡單起見,省略了I-VOP和B-VOP的部分。另外,在MPEG-4中,如上所述,為了將任意形狀的圖像目標(biāo)進(jìn)行編碼,還記載了形狀信息,但是為了簡單起見,也省略了。
圖2是與圖1的編碼器對(duì)應(yīng)的譯碼器的結(jié)構(gòu)圖。與圖4的先有的譯碼器只是分離部29的處理不同。
下面,根據(jù)圖2、圖4和圖6說明該譯碼器的處理。
如表4所示,在本實(shí)施例的譯碼器中,首先,在VOP類型為P或SPRITE時(shí),就讀出代碼字COD(D11)。在COD=1并且VOP類型為SPRITE時(shí),接著就讀出MCSEL(D12)。
MCSEL使切換器36運(yùn)動(dòng)作,在MCSEL=1時(shí),就將根據(jù)參照?qǐng)D像3和全局運(yùn)動(dòng)參量5得到的全局運(yùn)動(dòng)補(bǔ)償預(yù)測圖像7作為預(yù)測圖像13。在MCSEL=0時(shí),由于運(yùn)動(dòng)矢量為(0,0),所以,就直接將參照?qǐng)D像3作為預(yù)測圖像13。在COD=1時(shí),由于DCT系數(shù)全部為0,所以,直接將所得到的預(yù)測圖像13作為現(xiàn)在的宏塊的譯碼圖像25而輸出。
在COD=0時(shí),接著就讀出可變長代碼字MCBPC(D13)。并且,根據(jù)MCBPC可以得到關(guān)于有無宏塊類型和2個(gè)色差信號(hào)的DCT系數(shù)的譯碼信息。
其次,在VOP類型為SPRITE并且宏塊類型為INTER或INTER+Q時(shí),就在MCBPC之后讀出MCSEL(D14)。
然后,在宏塊類型為INTRA或INTRA+Q時(shí),就讀出代碼字Acpred_flag(D15)。
接著,就讀出CBPY(D16),得到有無亮度信號(hào)的DCT系數(shù)的譯碼信息。然后,在宏塊類型為INTER+Q或INTRA+Q時(shí),就讀出可變長代碼字的量化步長信息DQUANT(D17)。
其次,在宏塊類型既不是INTRA也不是INTRA+Q時(shí),就讀出運(yùn)動(dòng)矢量9(D18)。但是,在VOP類型為SPRITE時(shí),在MCSEL=1即使用全局運(yùn)動(dòng)補(bǔ)償時(shí),由于不存在運(yùn)動(dòng)矢量信息,所以,不進(jìn)行讀出。僅在MCSEL=0即使用局部運(yùn)動(dòng)補(bǔ)償時(shí)才讀出運(yùn)動(dòng)矢量9。MCSEL使切換器36運(yùn)動(dòng)作,在MCSEL=1時(shí),將根據(jù)參照?qǐng)D像3和全局運(yùn)動(dòng)參量5得到的全局運(yùn)動(dòng)補(bǔ)償預(yù)測圖像7作為預(yù)測圖像13。在MCSEL=0時(shí),將根據(jù)參照?qǐng)D像3和運(yùn)動(dòng)矢量9得到的局部運(yùn)動(dòng)補(bǔ)償預(yù)測圖像11作為預(yù)測圖像13。
然后,讀出包含在宏塊中的各8×8塊的DCT系數(shù)信息(D19)即量化指數(shù)19。量化指數(shù)19由逆量化部30恢復(fù)為量化代表值21,并進(jìn)而由逆DCT部31逆變換為差分圖像23。差分圖像23和預(yù)測圖像13在加法器32中進(jìn)行加法運(yùn)算,成為譯碼圖像25。該譯碼圖像25存儲(chǔ)到幀存儲(chǔ)器33中,在下一幀的譯碼時(shí)作為參照?qǐng)D像使用。
下面,使用圖1和下表5說明在宏塊跳躍時(shí)削減多余的輔助操作信息的預(yù)測編碼方法。另外,圖7是示意性地表示表5的數(shù)據(jù)結(jié)構(gòu)(位流結(jié)構(gòu))的圖,按D21~D28所示的代碼字、運(yùn)動(dòng)矢量和DCT系數(shù)信息的順序構(gòu)成數(shù)據(jù)。
表5


在表5中,首先,在VOP類型為P或SPRITE時(shí),就輸出代碼字COD(D21)。由COD所示的宏塊跳躍適用于使用全局運(yùn)動(dòng)補(bǔ)償?shù)那闆r并且DCT系數(shù)全部為0的情況,不適用于局部運(yùn)動(dòng)補(bǔ)償?shù)那闆r。因此,表4中的MCSEL在表5中就刪除了。在宏塊跳躍的情況時(shí),就全部跳躍過以后的處理,進(jìn)入下一個(gè)宏塊的處理,所以,可以不必將該宏塊的宏塊類型和DCT系數(shù)進(jìn)行編碼。因此,可以大幅度地進(jìn)行壓縮。
其次,編碼器輸出可變長代碼字MCBPC(D22)。
然后,在VOP類型為SPRITE并且宏塊為INTER或INTER+Q時(shí),在MCBPC之后就輸出MCSEL(D23)。由預(yù)測模式選擇部12進(jìn)行的運(yùn)動(dòng)補(bǔ)償模式的選擇方法是自由的,可以選擇預(yù)測誤差小的一方,也可以考慮預(yù)測誤差和發(fā)生代碼量兩方面的因素進(jìn)行決定。
另外,在宏塊類型為幀內(nèi)編碼模式即INTRA或INTRA+Q時(shí),就輸出代碼字Acpred_glag(D24)。
然后,編碼器輸出可變長代碼字CBPY(D25)。接著,在宏塊類型為INTER+Q或INTRA+Q時(shí),就輸出可變長代碼字的量化步長信息DQUANT(D26)。
其次,在宏塊類型不是幀內(nèi)編碼模式即既不是INTRA也不是INTRA+Q時(shí),就輸出運(yùn)動(dòng)矢量9(D27)。但是,在VOP類型為SPRITE時(shí),在MCSEL=1即使用全局運(yùn)動(dòng)補(bǔ)償時(shí),就不輸出運(yùn)動(dòng)矢量信息,僅在MCSEL=0即使用局部運(yùn)動(dòng)補(bǔ)償時(shí)才輸出運(yùn)動(dòng)矢量。
最后,輸出包含在宏塊中的各8×8塊的DCT系數(shù)信息(D28)。
復(fù)用部27按照以上說明的規(guī)則將輸出的量化指數(shù)19、預(yù)測模式選擇信息(MCSEL)26、運(yùn)動(dòng)矢量9和全局運(yùn)動(dòng)參量5進(jìn)行復(fù)用處理,并輸出編碼器輸出28。這里,全局運(yùn)動(dòng)參量5和表4一樣,也不包含在表5的宏塊層的語法中。
在表5的語法中,為了簡單起見,省略了I-VOP和B-VOP的部分。另外,對(duì)關(guān)于上述MPEG-4的形狀信息的描述,這里也省略了。
下面,參照?qǐng)D2、表5和圖7說明與以上所述的預(yù)測編碼方法對(duì)應(yīng)的譯碼器的處理。
在表5所示的譯碼方法中,首先,在VOP類型為P或SPRITE時(shí),就讀出代碼字COD(D21)。在COD=1時(shí),將根據(jù)參照?qǐng)D像3和全局運(yùn)動(dòng)參量5得到的全局運(yùn)動(dòng)補(bǔ)償預(yù)測圖像7作為預(yù)測圖像13。在COD=1時(shí),由于DCT系數(shù)全部為0,所以,就將所得到的預(yù)測圖像13直接作為現(xiàn)在的宏塊譯碼圖像25而輸出。
在COD=0時(shí),接著就讀出可變長代碼字MCBPC(D22),得到關(guān)于有無宏塊類型和2個(gè)色差信號(hào)的DCT系數(shù)的譯碼信息。
其次,在VOP類型為SPRITE并且宏塊類型為INTER或INTER+Q時(shí),就在MCBPC之后讀出MCSEL(D23)。
然后,在宏塊類型為INTRA或INTRA+Q時(shí),就讀出代碼字Acpred_flag(D24)。
接著,讀出CBPY(D25),得到有無亮度信號(hào)的DCT系數(shù)的譯碼信息。其次,在宏塊類型為INTER+Q或INTRA+Q時(shí),就讀出可變長代碼字的量化步長信息DQUANT(D26)。
然后,在宏塊類型既不是INTRA也不是INTRA+Q時(shí),就讀出運(yùn)動(dòng)矢量9(D27)。但是,在VOP類型為SPRITE時(shí),在MCSEL=1即使用全局運(yùn)動(dòng)補(bǔ)償時(shí),由于不存在運(yùn)動(dòng)矢量9,所以,就不進(jìn)行讀出。僅在MCSEL=0即使用局部運(yùn)動(dòng)補(bǔ)償時(shí)才讀出運(yùn)動(dòng)矢量9。MCSEL使切換器36運(yùn)動(dòng)作,在MCSEL=1時(shí),將根據(jù)參照?qǐng)D像3和全局運(yùn)動(dòng)參量5得到的全局運(yùn)動(dòng)補(bǔ)償預(yù)測圖像7作為預(yù)測圖像13。在MCSEL=0時(shí),將根據(jù)參照?qǐng)D像3和運(yùn)動(dòng)矢量9得到的局部運(yùn)動(dòng)補(bǔ)償預(yù)測圖像11作為預(yù)測圖像13。
接著,讀出包含在宏塊中的各8×8塊的DCT系數(shù)信息(D28)即量化指數(shù)19。量化指數(shù)19由逆量化部30恢復(fù)為量化代表值21,進(jìn)而由逆DCT部31逆變換為差分圖像23。差分圖像23和預(yù)測圖像13在加法器32中計(jì)算加法運(yùn)算,成為譯碼圖像25。該譯碼圖像25存儲(chǔ)到幀存儲(chǔ)器33中,在下一幀的譯碼時(shí)作為參照?qǐng)D像使用。
對(duì)于以上說明的本發(fā)明的方法的實(shí)施例,將執(zhí)行程序的流程圖進(jìn)行了歸納并予以圖示。另外,為了進(jìn)行比較也列舉出了先有方法的執(zhí)行程序的流程圖。
在以下的流程圖中,VOP類型的設(shè)定和宏塊類型的設(shè)定或判斷(選擇效率最好的宏塊類型)處理等,省略了在本發(fā)明的說明上認(rèn)為不是特別需要的先有技術(shù)部分。
圖8和圖9是運(yùn)動(dòng)圖像的預(yù)測編碼程序全體的流程圖,圖8中的①接在圖9中的①的流程之后,圖9中的②接在圖8中的②的流程之后。在圖9中用雙重框包圍的宏塊層的復(fù)用處理塊是關(guān)于本發(fā)明的特征的部分。
圖10和圖11是表示先有的宏塊層復(fù)用處理例的流程圖,圖10中的①和②分別接在圖11中的①和②的流程之后。
圖12和圖13是表示利用參照表4和圖6說明的本發(fā)明的(第1)方法進(jìn)行的宏塊層復(fù)用處理例的流程圖,圖12中的①和②分別接在圖13中的①和②的流程之后。
圖14和圖15是表示利用參照表5和圖7說明的本發(fā)明的(第2)方法進(jìn)行的宏塊層復(fù)用處理例的流程圖,圖14中的①和②分別接在圖15中的①和②的流程之后。
圖16是運(yùn)動(dòng)圖像的預(yù)測譯碼程序全體的流程圖,圖中用雙重框包圍的宏塊層的分離和譯碼處理塊是關(guān)于本發(fā)明的特征的部分。
圖17和圖18是表示先有的宏塊層分離和譯碼處理例的流程圖,圖17中的①和②分別接在圖18中的①和②的流程之后。
圖19和圖20是表示利用上述第1方法進(jìn)行復(fù)用處理后的宏塊層的分離和譯碼處理例的流程圖,圖19中的①和②分別接在圖20中的①和②的流程之后。
圖21和圖22是表示利用上述第2方法進(jìn)行復(fù)用處理后的宏塊層的分離和譯碼處理例的流程圖,圖21中的①和②分別接在圖22中的①和②的流程之后。
如圖19、圖20和圖21、圖22所示,根據(jù)編碼時(shí)決定的數(shù)據(jù)的結(jié)構(gòu)可以知道譯碼處理的內(nèi)容。
權(quán)利要求
1.一種運(yùn)動(dòng)圖像的預(yù)測編碼方法,有選擇地執(zhí)行預(yù)測幀全體的大局的運(yùn)動(dòng)的全局運(yùn)動(dòng)補(bǔ)償階段和預(yù)測各塊的局部的運(yùn)動(dòng)的局部運(yùn)動(dòng)補(bǔ)償階段,其特征在于將在處理塊為幀間編碼塊時(shí)把表示是否使用上述全局運(yùn)動(dòng)補(bǔ)償階段或上述局部運(yùn)動(dòng)補(bǔ)償階段預(yù)測了上述處理塊的預(yù)測模式選擇代碼字插入到將該處理塊編碼后的數(shù)據(jù)串中表示該塊的編碼模式的代碼字以后而在其他情況時(shí)就不將上述預(yù)測模式選擇代碼字插入到上述數(shù)據(jù)串中。
2.按權(quán)利要求1所述的運(yùn)動(dòng)圖像的預(yù)測編碼方法,其特征在于在上述處理塊為塊跳躍時(shí)就一定選擇上述全局運(yùn)動(dòng)補(bǔ)償階段,同時(shí)在跳躍后的塊中省略上述預(yù)測模式選擇代碼字。
3.一種將用權(quán)利要求1所述的預(yù)測編碼方法進(jìn)行編碼的數(shù)據(jù)串進(jìn)行譯碼的譯碼方法,其特征在于在上述處理塊為進(jìn)行幀間編碼時(shí)從編碼數(shù)據(jù)串中讀入上述預(yù)測模式選擇代碼字并使用所選擇的預(yù)測方法進(jìn)行譯碼而在其他情況時(shí)則不讀入該預(yù)測模式選擇代碼字。
4.一種將用權(quán)利要求2所述的預(yù)測編碼方法編碼的數(shù)據(jù)串進(jìn)行譯碼的運(yùn)動(dòng)圖像的譯碼方法,其特征在于在上述處理塊進(jìn)行塊跳躍時(shí)就不讀入上述預(yù)測模式選擇代碼字而進(jìn)行與上述全局運(yùn)動(dòng)補(bǔ)償階段對(duì)應(yīng)的譯碼處理。
5.一種記錄用于使計(jì)算機(jī)執(zhí)行權(quán)利要求1~4的任一權(quán)項(xiàng)所述的方法的程序的記錄媒體。
6.一種記錄利用權(quán)利要求1或2所述的方法進(jìn)行編碼的數(shù)據(jù)的計(jì)算機(jī)可讀取的記錄媒體。
全文摘要
一種具有全局運(yùn)動(dòng)補(bǔ)償和局部運(yùn)動(dòng)補(bǔ)償這2種預(yù)測模式的運(yùn)動(dòng)圖像的預(yù)測編碼方法,將不需要的代碼字MCSEL即使是1位也削減,提高壓縮效率。編碼器在輸出表示有無宏塊類型和2個(gè)色差信號(hào)的DCT系數(shù)的代碼字MCBPC后,只要不是幀內(nèi)編碼塊時(shí),就輸出表示現(xiàn)在的宏塊是利用全局運(yùn)動(dòng)補(bǔ)償進(jìn)行預(yù)測的還是利用局部運(yùn)動(dòng)補(bǔ)償進(jìn)行預(yù)測的代碼字MCSEL。
文檔編號(hào)H04N7/36GK1252203SQ98804162
公開日2000年5月3日 申請(qǐng)日期1998年1月27日 優(yōu)先權(quán)日1997年2月14日
發(fā)明者如澤裕尚, 清水淳, 上倉一人, 渡邊裕 申請(qǐng)人:日本電信電話株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1