技術(shù)領(lǐng)域
本發(fā)明涉及動圖像的編碼技術(shù),特別涉及將圖片分割成矩形塊,在圖片間按塊單位進(jìn)行運動估計、補償?shù)膱D像編碼裝置、圖像編碼方法、圖像編碼程序、圖像解碼裝置、圖像解碼方法及圖像解碼程序。
背景技術(shù):
在以MPEG(Moving Picture Coding Experts Group:運動圖像專家組)為代表的、將圖片分割成矩形塊,在圖片間按塊單位進(jìn)行運動估計、補償?shù)膭訄D像編碼方式中,為削減按各塊而生成的運動矢量的碼量,對運動矢量進(jìn)行預(yù)測處理。
在MPEG-2中,按宏塊單位檢測的運動矢量與之前剛被編碼了的宏塊的運動矢量取差分,對該差分矢量進(jìn)行編碼,由此來削減碼量。在MPEG-4AVC/H.264中,利用運動矢量與周圍相鄰塊的運動矢量具有較強的相關(guān)這一特點,進(jìn)行基于周圍相鄰塊的預(yù)測,通過對其差分矢量編碼來削減碼量。具體來說,基于處理對象塊的左、上及右上方的相鄰塊的運動矢量導(dǎo)出(derivate)中央值,通過取與該中央值的差分來實現(xiàn)運動矢量的預(yù)測。
在這些預(yù)測方法中,用于預(yù)測的運動矢量只有1個,故存在若預(yù)測不準(zhǔn),則運動矢量的差分會變大、產(chǎn)生碼量會増加的課題。此外,盡管運動矢量的碼量被削減了,但其它運動信息還是按各處理對象塊分別進(jìn)行編碼的。因此,即使具有與周圍相鄰塊相同的運動信息,也會重復(fù)進(jìn)行編碼,故存在未達(dá)到高效的編碼這樣的課題。
為解決這些課題,在ISO/IEC及ITU-T中的動圖像編碼的標(biāo)準(zhǔn)作業(yè)中討論了兩種新的技術(shù)。一種涉及運動矢量的預(yù)測方法,是針對已編碼的周圍相鄰塊的運動矢量和已編碼的時間不同的其它圖片的相同位置的周邊塊的運動矢量,根據(jù)分別適用其作為預(yù)測運動矢量的候選時的產(chǎn)生碼量來進(jìn)行評價的方法。
圖1的(a)、(b)中表示了成為預(yù)測運動矢量的候選的相鄰塊的一例。圖1的(a)是相同圖片內(nèi)的相鄰塊的例子,圖1的(b)是時間不同的其它圖片的相同位置的周邊塊的例子。將這些塊的運動矢量作為預(yù)測運動矢量的候選,選擇使處理對象塊的運動矢量與預(yù)測運動矢量的候選的差分值的產(chǎn)生碼量成為最小的預(yù)測運動矢量。然后,將與該預(yù)測運動矢量的差分值編碼、傳送,根據(jù)需要,還將選擇了預(yù)測運動矢量的相鄰塊的相關(guān)附加信息編碼、傳送。
另一種方法是若處理對象塊的運動信息與周圍的已編碼的相鄰塊的運動信息相同,則處理對象塊不編碼自身的運動信息,而是將相鄰塊的運動信息用于編碼。具體來說,是通過對用于指定具有要參照的運動信息的相鄰塊的附加信息進(jìn)行編碼,來削減運動信息的碼量的方法(例如參照專利文獻(xiàn)1)。這樣的方法被稱作融合(merge),作為削減運動信息的碼量的方法而受到關(guān)注。
〔在先技術(shù)文獻(xiàn)〕
〔專利文獻(xiàn)〕
〔專利文獻(xiàn)1〕日本特開平10-276439號公報
技術(shù)實現(xiàn)要素:
〔發(fā)明所要解決的課題〕
在上述運動矢量的預(yù)測方法和融合方法中,要使用已編碼的周圍相鄰塊、時間不同的其它圖片的相同位置的周邊塊的運動矢量、表示要參照的圖片的參照圖片編號、以及參照列表等編碼信息。但是,由于各個技術(shù)中所參照的周圍相鄰塊的位置不同,故存在對記錄有已編碼的編碼信息的存儲器進(jìn)行訪問的次數(shù)増加這樣的問題。
另外,在一般的編碼過程中,為選擇最佳的參照目標(biāo),利用參照目標(biāo)的相鄰塊的編碼信息進(jìn)行運動補償,以產(chǎn)生碼量和編碼畸變?yōu)橹笜?biāo)進(jìn)行判定。然而,若參照的周圍相鄰塊不同,則塊數(shù)會増加,存在處理負(fù)荷増加這樣的問題。此外,還存在解碼時讀取已解碼的編碼信息的定時被限制、保存已解碼的編碼信息的臨時存儲器増加這樣的問題。
本發(fā)明是鑒于這樣的狀況而研發(fā)的,其目的在于提供一種既抑制處理運動信息時的負(fù)荷,又提高運動信息的編碼效率的技術(shù)。
〔用于解決課題的手段〕
為解決上述課題,本發(fā)明一個方案的圖像編碼裝置是一種將動圖像的各圖片按分割后的塊單位、利用運動矢量進(jìn)行編碼的圖像編碼裝置,包括:取得部(104),取得編碼對象塊的多個參照塊候選的編碼信息;第1模式檢測部(106),在利用通過索引而確定的參照塊的上述編碼信息所具備的運動矢量的信息的第1圖像間預(yù)測模式下,基于第1預(yù)定順位從上述多個參照塊候選生成第1候選列表,并賦予用于確定上述第1候選列表中所登錄的參照塊候選的索引,輸出上述多個參照塊候選的索引;第2模式檢測部(103),在利用預(yù)測運動矢量與上述編碼對象塊的運動矢量的差分運動矢量的第2圖像間預(yù)測模式下,基于第2預(yù)定順位從上述多個參照塊候選生成第2候選列表,并賦予用于確定上述第2候選列表中所登錄的參照塊候選的索引,輸出上述多個參照塊候選的索引及上述差分運動矢量,其中所述預(yù)測運動矢量是基于由索引確定的參照塊的上述編碼信息所具備的運動矢量的信息的預(yù)測運動矢量;預(yù)測方法決定部(107),基于上述第1模式檢測部(106)及上述第2模式檢測部(103)的輸出結(jié)果,決定各上述編碼對象塊的參照塊和圖像間預(yù)測模式;以及碼串生成部(109),將上述預(yù)測方法決定部(107)所決定的參照塊的索引、表示上述預(yù)測方法決定部(107)所決定的圖像間預(yù)測模式的預(yù)測模式信息、以及與被決定第2圖像間預(yù)測模式時的參照塊對應(yīng)的上述差分運動矢量編碼。上述第1模式檢測部(106)及上述第2模式檢測部(103)使用共通的多個塊作為上述多個參照塊候選。
上述第1模式檢測部(106)可以對上述第1預(yù)定順位越高的參照塊候選的索引,越分配少的碼字。
用于在上述第1模式檢測部(106)所生成的上述第1候選列表中排列上述多個參照塊候選的上述第1預(yù)定順位、與用于在上述第2模式檢測部(103)所生成的上述第2候選列表中排列上述多個參照塊候選的上述第2預(yù)定順位可以是不同的。
上述第1模式檢測部(106)可以限制上述多個參照塊候選的數(shù)量地生成上述多個參照塊候選的上述第1候選列表。上述第2模式檢測部(103)限制上述多個參照塊候選的數(shù)量地生成上述多個參照塊候選的上述第2候選列表。
在上述多個參照塊候選中,可以包括與上述編碼對象塊空間上相鄰的已被編碼的塊、和與包含上述編碼對象塊的圖片時間上不同的圖片中所包含的塊。上述第1模式檢測部(106)及上述第2模式檢測部(103)可以在上述多個參照塊候選中、將上述時間上不同的圖片中所包含的塊的上述第1預(yù)定順位及第2預(yù)定順位時的順位、設(shè)定得比上述空間上相鄰的塊的上述第1預(yù)定順位及第2預(yù)定順位時的順位低。
上述第1模式檢測部(106)可以在針對上述空間上相鄰的已被編碼的多個塊、基于上述第1預(yù)定順位生成上述第1候選列表時,對將上述空間上相鄰的多個塊排列到上述第1候選列表中的候選數(shù)設(shè)置預(yù)定的上限值,利用按上述第1預(yù)定順位從最高位起至上述預(yù)定的上限值量的順位為止的參照塊,來生成上述第1候選列表。
上述第2模式檢測部(103)可以將上述空間上相鄰的已被編碼的多個塊中的、被配置于上述編碼對象塊左側(cè)的塊作為左塊群,將被配置于上述編碼對象塊上側(cè)的塊作為上塊群,從上述塊群中導(dǎo)出代表各自上述塊群的候選,并按照上述左塊群的候選、上述上塊群的候選的順序設(shè)定上述第2預(yù)定順位,生成上述第2候選列表。
上述第1模式檢測部(106)可以設(shè)定要排列于上述第1候選列表的參照塊候選的最大個數(shù),并基于上述參照塊候選的最大個數(shù)來生成上述第1候選列表。上述碼串生成部(109)可以將表示上述參照塊候選的最大個數(shù)的信息編碼而包含在碼串中。
本發(fā)明的其它方案是圖像編碼方法。該方法是一種將動圖像的各圖片按分割后的塊單位、利用運動矢量進(jìn)行編碼的圖像編碼方法,包括:第1步驟,取得編碼對象塊的多個參照塊候選的編碼信息;第2步驟,在利用通過索引而確定的參照塊的上述編碼信息所具備的運動矢量的信息的第1圖像間預(yù)測模式下,基于第1預(yù)定順位從上述多個參照塊候選生成第1候選列表,并賦予用于確定上述第1候選列表中所登錄的參照塊候選的索引,輸出上述多個參照塊候選的索引;第3步驟,在利用預(yù)測運動矢量與上述編碼對象塊的運動矢量的差分運動矢量的第2圖像間預(yù)測模式下,基于第2預(yù)定順位從上述多個參照塊候選生成第2候選列表,并賦予用于確定上述第2候選列表中所登錄的參照塊候選的索引,輸出上述多個參照塊候選的索引及上述差分運動矢量,其中所述預(yù)測運動矢量是基于由索引確定的參照塊的上述編碼信息所具備的運動矢量的信息的預(yù)測運動矢量;第4步驟,基于上述第2步驟及上述第3步驟所輸出的輸出結(jié)果,決定各上述編碼對象塊的參照塊和圖像間預(yù)測模式;以及第5步驟,將由上述第4步驟決定的參照塊的索引、表示上述第4步驟所決定的圖像間預(yù)測模式的預(yù)測模式信息、以及與被決定第2圖像間預(yù)測模式時的參照塊對應(yīng)的上述差分運動矢量編碼。上述第2步驟及上述第3步驟使用共通的多個塊作為上述多個參照塊候選。
本發(fā)明一個方案的圖像解碼裝置是一種對將動圖像的各圖片按分割后的塊單位、利用運動矢量而編碼后的碼串進(jìn)行解碼的圖像解碼裝置,其特征在于,包括:碼串解碼部(202),從上述碼串中,針對各解碼對象塊、解碼出表示圖像間預(yù)測模式的預(yù)測模式信息和參照塊的索引,或者表示圖像間預(yù)測模式的預(yù)測模式信息、參照塊的索引、以及與參照塊對應(yīng)的差分運動矢量;編碼信息保存部(210),用于保存各塊的編碼信息;取得部(205),從上述編碼信息保存部(210)取得上述解碼對象塊的多個參照塊候選的編碼信息;第1模式輸出部(206),在由上述碼串解碼部(202)解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式為利用由索引確定的參照塊的上述編碼信息所具備的運動矢量的信息的第1圖像間預(yù)測模式時,基于第1預(yù)定順位從上述多個參照塊候選生成第1候選列表,并基于上述碼串解碼部(202)所解碼出的參照塊的索引,從上述第1候選列表中確定上述解碼對象塊的參照塊,輸出該編碼信息;第2模式輸出部(204),在由上述碼串解碼部(202)解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式為利用與由索引確定的參照塊對應(yīng)的差分運動矢量的第2圖像間預(yù)測模式時,基于第2預(yù)定順位從上述多個參照塊候選生成第2候選列表,并基于上述碼串解碼部(202)解碼出的參照塊的索引,從上述第2候選列表中確定上述解碼對象塊的參照塊,基于預(yù)測運動矢量和上述碼串解碼部解碼出的差分運動矢量導(dǎo)出上述解碼對象塊的運動矢量并輸出,其中所述預(yù)測運動矢量是基于該參照塊的上述編碼信息所具備的運動矢量的信息的預(yù)測運動矢量;運動補償預(yù)測部(207),基于從上述第1模式輸出部(206)或上述第2模式輸出部(204)輸出的信息,利用由上述碼串解碼部(202)解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式來進(jìn)行運動補償,生成預(yù)測圖像。上述第1模式輸出部(206)及上述第2模式輸出部(204)使用共通的多個塊作為上述多個參照塊候選。
可以越是上述第1預(yù)定順位高的參照塊候選的索引,上述第1模式輸出部(206)越分配較少的碼字。
用于在上述第1模式輸出部(206)所生成的上述第1候選列表中排列參照塊候選的上述第1預(yù)定順位、與用于在上述第2模式輸出部(204)所生成的上述第2候選列表中排列參照塊候選的上述第2預(yù)定順位可以是不同的。
上述第1模式輸出部(206)可以限制上述多個參照塊候選的數(shù)量地生成上述多個參照塊候選的上述第1候選列表。上述第2模式輸出部(204)可以限制上述多個參照塊候選的數(shù)量地生成上述多個參照塊候選的上述第2候選列表。
在上述多個參照塊候選中,可以包括與上述解碼對象塊空間上相鄰的已被解碼的塊、和與包含上述解碼對象塊的圖片時間上不同的圖片中所包含的塊。上述第1模式輸出部(206)及上述第2模式輸出部(204)可以在上述多個參照塊候選中將上述時間上不同的圖片所包含的塊的上述第1預(yù)定順位及第2預(yù)定順位時的順位、設(shè)定得比上述空間上相鄰的塊的上述第1預(yù)定順位及第2預(yù)定順位時的順位低。
上述第1模式輸出部(206)在針對上述空間上相鄰的已被解碼的多個塊、基于上述第1預(yù)定順位來生成上述第1候選列表時,可以對將上述空間上相鄰的多個塊排列到上述第1候選列表中的候選數(shù)設(shè)置預(yù)定的上限值,并利用按上述第1預(yù)定順位從最高位起至上述預(yù)定的上限值量的順位的參照塊,生成上述第1候選列表。
上述第2模式輸出部(204)可以將上述空間上相鄰的已被解碼的多個塊中的、被配置在上述解碼對象塊左側(cè)的塊作為左塊群、將被配置在上述解碼對象塊上側(cè)的塊作為上塊群,從上述塊群中導(dǎo)出分別代表各自上述塊群的候選,按上述左塊群的候選、上述上塊群的候選的順序設(shè)定上述第2預(yù)定順位,生成上述第2候選列表。
上述第1模式輸出部(206)可以基于由上述碼串解碼部從上述碼串中解碼出的上述第1候選列表內(nèi)所排列的參照塊候選的最大個數(shù),來生成上述第1候選列表。
本發(fā)明的其它方案是一種圖像解碼方法。該方法是一種對將動圖像的各圖片按分割后的塊單位、利用運動矢量而編碼后的碼串進(jìn)行解碼的圖像解碼方法,包括:第1步驟,從上述碼串中,針對各解碼對象塊、解碼出表示圖像間預(yù)測模式的預(yù)測模式信息和參照塊的索引,或者表示圖像間預(yù)測模式的預(yù)測模式信息、參照塊的索引、以及與參照塊對應(yīng)的差分運動矢量;第2步驟,取得上述解碼對象塊的多個參照塊候選的編碼信息;第3步驟,在由上述第1步驟解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式為利用由索引確定的參照塊的上述編碼信息所具備的運動矢量的信息的第1圖像間預(yù)測模式時,基于第1預(yù)定順位從上述多個參照塊候選生成第1候選列表,并基于上述碼串解碼部所解碼出的參照塊的索引,從上述第1候選列表中確定上述解碼對象塊的參照塊,輸出該編碼信息;第4步驟,在由上述第1步驟解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式為利用與由索引確定的參照塊對應(yīng)的差分運動矢量的第2圖像間預(yù)測模式時,基于第2預(yù)定順位從上述多個參照塊候選生成第2候選列表,并基于上述碼串解碼部解碼出的參照塊的索引,從上述第2候選列表中確定上述解碼對象塊的參照塊,基于預(yù)測運動矢量和上述碼串解碼部解碼出的差分運動矢量導(dǎo)出上述解碼對象塊的運動矢量并輸出,其中所述預(yù)測運動矢量是基于該參照塊的上述編碼信息所具備的運動矢量的信息的預(yù)測運動矢量;第5步驟,基于由上述第3步驟或上述第4步驟輸出的信息,利用由上述第1步驟解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式來進(jìn)行運動補償,生成預(yù)測圖像。上述第3步驟及上述第4步驟使用共通的多個塊作為上述多個參照塊候選。
此外,將以上構(gòu)成要素的任意組合、本發(fā)明的表現(xiàn)形式在方法、裝置、系統(tǒng)、記錄介質(zhì)、計算機程序等之間變換后的實施方式,作為本發(fā)明的方案也是有效的。
〔發(fā)明效果〕
通過本發(fā)明,能既抑制處理運動信息時的負(fù)荷,又提高運動信息的編碼效率。
附圖說明
圖1的(a)、(b)是用于說明處理對象預(yù)測塊、和在相同圖片或時間不同的其它圖片中相鄰的預(yù)測塊的一例的圖。
圖2是表示本發(fā)明實施例中的動圖像編碼裝置的構(gòu)成的功能塊圖。
圖3的(a)、(b)是用于說明本發(fā)明實施例中的預(yù)測模式的分類的定義的圖。
圖4是表示本發(fā)明實施例中的動圖像解碼裝置的構(gòu)成的功能塊圖。
圖5是用于說明本發(fā)明實施例中的編碼塊的定義的圖。
圖6是說明關(guān)于本發(fā)明實施例中的參照相鄰塊的選出方法的、預(yù)測塊級(level)的比特流的句法模式的圖。
圖7的(a)~(d)是用于說明本發(fā)明實施例中的預(yù)測塊的形狀的種類的圖。
圖8是說明本發(fā)明實施例中的編碼信息保存存儲器中所記錄的編碼信息的保存形式的圖。
圖9的(a)、(b)是說明本發(fā)明實施例中的成為針對處理對象預(yù)測塊的參照目標(biāo)的相鄰塊的配置的圖。
圖10是表示本發(fā)明實施例中的幀間預(yù)測信息檢測部的詳細(xì)構(gòu)成的功能塊圖。
圖11是表示實施例1中的融合檢測部的詳細(xì)構(gòu)成的功能塊圖。
圖12是用于說明實施例1的融合檢測部的編碼信息導(dǎo)出部的動作的流程圖。
圖13是用于說明在實施例1的編碼信息導(dǎo)出部中、選出相同圖片上的周圍相鄰塊的動作的流程圖。
圖14的(a)~(c)是說明在實施例1的編碼信息導(dǎo)出部中、選出處理對象預(yù)測塊的參照圖片編號候選的動作的圖。
圖15是在實施例1的編碼信息導(dǎo)出部中、從處理對象預(yù)測塊的參照圖片編號候選列出參照圖片編號的選出模式的圖。
圖16是用于說明在實施例1的編碼信息導(dǎo)出部中、選出時間不同的其它圖片的與相同位置相鄰的塊的編碼信息的動作的流程圖。
圖17是用于說明在實施例1的編碼信息導(dǎo)出部中、導(dǎo)出時間不同的其它圖片的與相同位置相鄰的塊的編碼信息的詳細(xì)動作的流程圖。
圖18是說明將col圖片與其參照圖片的距離換算成處理對象圖片與其參照圖片的距離,將運動矢量加到處理對象圖片中的縮放的圖。
圖19是用于說明在實施例1的參照候選列表生成部中、將由編碼信息導(dǎo)出部選出的參照相鄰塊的編碼信息登錄到參照候選列表中的動作的流程圖。
圖20是表示在實施例1中、由參照候選列表生成部生成的參照候選列表的一例的圖。
圖21是用于說明在實施例1的相同信息檢測部中、檢測并刪除參照候選列表中所登錄的相同的編碼信息,更新參照候選列表的動作的流程圖。
圖22是表示實施例1的融合判定部的詳細(xì)構(gòu)成的功能塊圖。
圖23是表示實施例1的運動矢量預(yù)測部的詳細(xì)構(gòu)成的功能塊圖。
圖24是用于說明實施例1的運動矢量預(yù)測部的編碼信息導(dǎo)出部的動作的流程圖。
圖25是用于說明在實施例1的編碼信息導(dǎo)出部中、選出相同圖片上的周圍相鄰塊的動作的流程圖。
圖26是用于說明在實施例1的編碼信息導(dǎo)出部中、選出相同圖片上的周圍相鄰塊的動作的另一方法的流程圖。
圖27是說明運動矢量的縮放的圖。
圖28是表示在實施例1中、由參照候選列表生成部生成的參照候選列表的一例的圖。
圖29是用于說明在實施例1的相同信息檢測部中、檢測并刪除參照候選列表中所登錄的具有相同運動矢量的編碼信息,更新參照候選列表的動作的流程圖。
圖30是表示實施例1的運動矢量導(dǎo)出部的詳細(xì)構(gòu)成的功能塊圖。
圖31的(a)、(b)是說明實施例2中的成為針對處理對象預(yù)測塊的參照目標(biāo)的相鄰塊的配置的圖。
圖32是用于說明實施例2的融合檢測部的編碼信息導(dǎo)出部的動作的流程圖。
圖33是用于說明在實施例2的編碼信息導(dǎo)出部中、選出相同圖片上的周圍相鄰塊的動作的流程圖。
圖34是說明在實施例2的編碼信息導(dǎo)出部中、選出處理對象預(yù)測塊的參照圖片編號候選的動作的圖。
圖35是在實施例2的編碼信息導(dǎo)出部中、從處理對象預(yù)測塊的參照圖片編號候選列出參照圖片編號的選出模式的圖。
圖36是表示在實施例2中、由融合檢測部的參照候選列表生成部生成的參照候選列表的一例的圖。
圖37是用于說明實施例2的運動矢量預(yù)測部的編碼信息導(dǎo)出部的動作的流程圖。
圖38是用于說明在實施例2的編碼信息導(dǎo)出部中、選出相同圖片上的周圍相鄰塊的動作的流程圖。
圖39是用于說明在實施例2的編碼信息導(dǎo)出部中、選出相同圖片上的周圍相鄰塊的動作的另一方法的流程圖。
圖40是表示在實施例2中、由運動矢量預(yù)測部的參照候選列表生成部生成的參照候選列表的一例的圖。
圖41是表示在實施例3中、在融合模式和運動估計模式下利用不同的選出方法生成的參照候選列表的一例的圖。
圖42是用于說明實施例4的融合檢測部的編碼信息導(dǎo)出部的動作的流程圖。
圖43是用于說明在實施例4的編碼信息導(dǎo)出部中、選出相同圖片上的周圍相鄰塊的動作的流程圖。
圖44是用于說明實施例4的運動矢量預(yù)測部的編碼信息導(dǎo)出部的動作的流程圖。
圖45是用于說明在實施例4的編碼信息導(dǎo)出部中、選出相同圖片上的周圍相鄰塊的動作的方法的流程圖。
圖46是用于說明在實施例5的參照候選列表生成部中、將由編碼信息導(dǎo)出部選出的參照相鄰塊的編碼信息登錄到參照候選列表中的動作的流程圖。
圖47是表示在實施例6中、由參照候選列表生成部生成的參照候選列表的一例的圖。
圖48是表示實施例7的融合檢測部的詳細(xì)構(gòu)成的功能塊圖。
圖49是用于說明在實施例7的相同信息檢測部中、限制參照候選列表中所登錄的編碼信息地更新參照候選列表的動作的流程圖。
圖50是表示實施例7的融合檢測部的詳細(xì)構(gòu)成的功能塊圖。
圖51是用于說明在實施例7的參照候選列表生成部中、限制參照候選列表中所登錄的編碼信息地更新參照候選列表的動作的流程圖。
圖52是表示實施例7的運動矢量預(yù)測部的詳細(xì)構(gòu)成的功能塊圖。
圖53是用于說明在實施例7的編碼信息導(dǎo)出部中、選出周圍的相鄰塊的動作的流程圖。
圖54是用于說明實施例7的編碼信息導(dǎo)出部的運動矢量的導(dǎo)出的詳細(xì)動作的流程圖。
圖55是用于說明在實施例7的參照候選列表生成部中、將由編碼信息導(dǎo)出部選出的參照相鄰塊的編碼信息登錄到參照候選列表中的動作的流程圖。
圖56是用于說明在實施例7的相同信息檢測部中、限制參照候選列表中所登錄的編碼信息來更新參照候選列表的動作的流程圖。
圖57是表示實施例7的運動矢量預(yù)測部的詳細(xì)構(gòu)成的功能塊圖。
圖58是用于說明在實施例8的參照候選列表生成部中、將由編碼信息導(dǎo)出部選出的參照相鄰塊的編碼信息登錄到參照候選列表中的動作的流程圖。
圖59是表示在實施例8中、在融合模式和運動估計(estimate)模式下所生成的參照候選列表的一例的圖。
圖60是用于說明在實施例9的參照候選列表生成部中、將由編碼信息導(dǎo)出部選出的參照相鄰塊的編碼信息登錄到參照候選列表中的動作的流程圖。
圖61是用于說明在實施例9的參照候選列表生成部中、進(jìn)行變換表的生成和更新的動作的流程圖。
圖62是表示在實施例9的參照候選列表生成部中、參照候選列表的索引與變換表的索引的對應(yīng)關(guān)系的一例的圖。
圖63是表示在實施例9中、由參照候選列表生成部生成的參照候選列表的一例的圖。
圖64是表示實施例12的運動矢量預(yù)測部的詳細(xì)構(gòu)成的功能塊圖。
圖65是用于說明在實施例12的參照候選控制部中、對參照候選列表中所登錄的編碼信息實施替換的動作的流程圖。
具體實施方式
說明實施本發(fā)明的優(yōu)選的動圖像編碼裝置及動圖像解碼化裝置。圖2是表示本發(fā)明實施例的動圖像編碼裝置100的構(gòu)成的功能塊圖。動圖像編碼裝置100包括圖像存儲器101、運動矢量估計部102、運動矢量預(yù)測部103、幀間預(yù)測信息檢測部104、運動補償預(yù)測部105、融合檢測部106、預(yù)測方法決定部107、開關(guān)108、第1編碼比特串生成部109、殘差信號生成部110、正交變換·量化部111、逆量化·逆正交變換部112、解碼圖像信號重疊部113、編碼信息保存存儲器114、解碼圖像存儲器115、第2編碼比特串生成部116及編碼比特串多路化部117。此外,連接各塊間的粗實線的箭頭表示圖片的圖像信號的流向,細(xì)實線的箭頭表示控制編碼的參數(shù)信號的流向。
圖像存儲器101臨時保存按拍攝/顯示時間順序供給來的編碼對象的圖像信號。圖像存儲器101將所保存的編碼對象的圖像信號按預(yù)定的像素塊單位提供給運動矢量估計部102、預(yù)測方法決定部107及殘差信號生成部110。此時,按拍攝/顯示時間順序保存的圖像被按編碼順序重排后,按像素塊單位從圖像存儲器101輸出。
運動矢量估計部102在從圖像存儲器101供給的圖像信號與從解碼圖像存儲器115供給的解碼圖像(參照圖片)間通過塊匹配等,按預(yù)測塊單位估計各預(yù)測塊尺寸、各預(yù)測模式的運動矢量,將估計出的運動矢量提供給運動補償預(yù)測部105、運動矢量預(yù)測部103及預(yù)測方法決定部107。在此,預(yù)測模式大體如圖3的(a)所示那樣分類,檢測圖3的(a)、(b)中的單向預(yù)測或雙預(yù)測模式的運動矢量。預(yù)測模式會在后述的句法的定義中說明。
運動矢量預(yù)測部103在預(yù)測模式為運動估計模式時,以幀間預(yù)測信息檢測部104輸出的編碼信息的運動矢量為預(yù)測運動矢量,根據(jù)運動矢量估計部102檢測出的運動矢量和該預(yù)測運動矢量,導(dǎo)出差分運動矢量,將導(dǎo)出的差分運動矢量提供給預(yù)測方法決定部107。進(jìn)而,將用于確定所選擇的預(yù)測運動矢量的索引提供給預(yù)測方法決定部107。運動矢量預(yù)測部103的詳細(xì)構(gòu)成和動作將在后面敘述。
幀間預(yù)測信息檢測部104從編碼信息保存存儲器114取得在處理對象預(yù)測塊要參照的相同圖片上、處理對象預(yù)測塊的周邊相鄰的已編碼的預(yù)測塊,或者在時間不同的其它圖片中、與處理對象預(yù)測塊相同位置的塊的周邊相鄰的預(yù)測塊的編碼信息。從編碼信息保存存儲器114中所保存的已編碼的周邊相鄰塊或時間不同的其它圖片的相鄰塊的編碼信息中的、處理對象預(yù)測塊的位置信息,檢測出多個參照目標(biāo)候選的相鄰塊的編碼信息,將被選為參照目標(biāo)的相鄰塊的編碼信息及用于確定該相鄰塊的索引,按照被輸入到開關(guān)108的由動圖像編碼裝置100控制的預(yù)測模式,切換地供給。幀間預(yù)測信息檢測部104的詳細(xì)構(gòu)成和動作將在后面敘述。
運動補償預(yù)測部105利用由運動矢量估計部102估計出的運動矢量或由幀間預(yù)測信息檢測部104檢測出的被選為參照目標(biāo)的相鄰塊的編碼信息,根據(jù)參照圖片,通過運動補償預(yù)測生成預(yù)測圖像信號,將該預(yù)測圖像信號提供給預(yù)測方法決定部107。此外,在雙預(yù)測的情況下,對主要作為前向預(yù)測來使用的L0預(yù)測和主要作為后向預(yù)測來使用的L1預(yù)測的兩個運動補償預(yù)測圖像信號自適應(yīng)地乘以權(quán)重系數(shù)后進(jìn)行重疊,生成最終的預(yù)測圖像信號。該加權(quán)系數(shù)是按片(slice)單位或預(yù)測塊單位設(shè)定的。
融合檢測部106在預(yù)測模式為融合模式時,為將幀間預(yù)測信息檢測部104所取得的處理對象預(yù)測塊要參照的相鄰塊(以下稱作參照相鄰塊)的編碼信息作為處理對象預(yù)測塊的編碼信息來使用,將相鄰塊重排為優(yōu)先參照的順位地登錄到參照候選列表中。融合檢測部106檢測出該參照候選列表中所登錄的編碼信息作為處理對象預(yù)測塊的編碼信息,將檢測出的編碼信息的運動矢量、參照圖片編號、參照列表等提供給運動補償預(yù)測部105。進(jìn)而,融合檢測部106將用于確定具有所檢測出的編碼信息的參照相鄰塊的索引提供給預(yù)測方法決定部107。融合檢測部106的詳細(xì)構(gòu)成和動作將在后面敘述。
預(yù)測方法決定部107通過評價參照相鄰塊的編碼信息、用于確定相鄰塊的索引的碼量、運動補償預(yù)測信號與圖像信號間的畸變量等,來從多個預(yù)測方法中決定包含最佳預(yù)測塊尺寸、分割模式(PartMode)、預(yù)測模式(PredMode)等的預(yù)測方法。預(yù)測方法決定部107將包含表示所決定的預(yù)測方法的信息及與所決定的預(yù)測方法相應(yīng)的差分運動矢量等的編碼信息提供給第1編碼比特串生成部109。此外,關(guān)于預(yù)測塊尺寸、分割模式及預(yù)測模式的詳細(xì)情況,將在后面敘述。
開關(guān)108根據(jù)由動圖像編碼裝置100控制的預(yù)測模式,將作為幀間預(yù)測信息檢測部104所檢測出的參照目標(biāo)而選擇的相鄰塊的編碼信息在與運動矢量預(yù)測部103或融合檢測部106之間切換地供給。進(jìn)而,開關(guān)108將包含表示所決定的預(yù)測方法的信息和與所決定的預(yù)測方法相應(yīng)的運動矢量等的編碼信息保存在編碼信息保存存儲器114中,并將與所決定的預(yù)測模式相應(yīng)的運動補償預(yù)測圖像信號提供給殘差信號生成部110和解碼圖像信號重疊部113。
殘差信號生成部110進(jìn)行要編碼的圖像信號與預(yù)測信號的減法運算,生成殘差信號,提供給正交變換·量化部111。正交變換·量化部111對殘差信號進(jìn)行正交變換及量化,生成被正交變換和量化后的殘差信號,提供給第2編碼比特串生成部116和逆量化·逆正交變換部112。
第1編碼比特串生成部109將預(yù)測方法決定部107所決定的預(yù)測方法信息和關(guān)于與該預(yù)測方法信息相應(yīng)的差分運動矢量的信息,按照規(guī)定的句法規(guī)則進(jìn)行編碼,生成第1編碼比特串,提供給編碼比特串多路化部117。
此外,根據(jù)需要,從預(yù)測方法決定部107供給的加權(quán)預(yù)測的加權(quán)參數(shù)、交錯編碼時的識別幀/場預(yù)測的標(biāo)志、量化的量化參數(shù)、表示是否已將殘差信號編碼的標(biāo)志、識別正交變換的方法的標(biāo)志、識別殘差信號的編碼順序的標(biāo)志、去塊濾波器等后濾波器(post filter)的信息等、編碼信息的預(yù)測值與實際使用的值的差分被提供給第1編碼比特串生成部109進(jìn)行編碼。進(jìn)而,將識別殘差信號的編碼順序的標(biāo)志等被預(yù)測出的編碼信息保存在編碼信息保存存儲器114中。
第2編碼比特串生成部116對被正交變換和量化后的殘差信號按照規(guī)定的句法規(guī)則進(jìn)行熵編碼,生成第2編碼比特串,提供給編碼比特串多路化部117。編碼比特串多路化部117將第1編碼比特串和第2編碼比特串按規(guī)定的句法規(guī)則多路化,輸出比特流。
逆量化·逆正交變換部112對從正交變換·量化部111供給來的被正交變換和量化后的殘差信號進(jìn)行逆量化和逆正交變換,導(dǎo)出殘差信號,提供給解碼圖像信號重疊部113。解碼圖像信號重疊部113將與預(yù)測方法決定部107的決定相應(yīng)的預(yù)測信號、和在逆量化·逆正交變換部112中逆量化及逆正交變換后的殘差信號進(jìn)行重疊,生成解碼圖像,保存到解碼圖像存儲器115中。另外,有時也對解碼圖像施以使編碼所導(dǎo)致的塊畸變等畸變減少的濾波處理后保存到解碼圖像存儲器115中。在該情況下,根據(jù)需要,將識別去塊濾波器等后濾波器的信息的標(biāo)志等被預(yù)測出的編碼信息保存到編碼信息保存存儲器114中。
圖4是表示與圖2的動圖像編碼裝置100對應(yīng)的實施例中的動圖像解碼裝置200的構(gòu)成的功能塊圖。該動圖像解碼裝置200包括比特串分離部201、第1編碼比特串解碼部202、第2編碼比特串解碼部203、運動矢量導(dǎo)出部204、幀間預(yù)測信息檢測部205、融合判定部206、運動補償預(yù)測部207、逆量化·逆正交變換部208、解碼圖像信號重疊部209、編碼信息保存存儲器210、解碼圖像存儲器211及開關(guān)212。此外,同圖2的動圖像編碼裝置100一樣,連接各塊間的粗實線的箭頭表示圖片的圖像信號是流向,細(xì)實線的箭頭表示控制編碼的參數(shù)信號的流向。
圖4的動圖像解碼裝置200的解碼處理是與圖2的動圖像編碼裝置100的內(nèi)部所設(shè)的解碼處理對應(yīng)的,故圖4的運動補償預(yù)測部207、逆量化·逆正交變換部208、解碼圖像信號重疊部209、編碼信息保存存儲器210及解碼圖像存儲器211的各構(gòu)成分別具有對應(yīng)于圖2的動圖像編碼裝置100的運動補償預(yù)測部105、逆量化·逆正交變換部112、解碼圖像信號重疊部113、編碼信息保存存儲器114及解碼圖像存儲器115的各構(gòu)成的功能。
提供給比特串分離部201的比特流被按規(guī)定的句法規(guī)則分離,分離出的編碼比特串被提供給第1編碼比特串解碼部202及第2編碼比特串解碼部203。
第1編碼比特串解碼部202對供給來的編碼比特串進(jìn)行解碼,輸出與預(yù)測模式、運動矢量等相關(guān)的編碼信息,將編碼信息提供給運動矢量導(dǎo)出部204或幀間預(yù)測信息檢測部205、以及運動補償預(yù)測部207,并保存到編碼信息保存存儲器210中。
第2編碼比特串解碼部203將供給來的編碼比特串解碼,導(dǎo)出被正交變換和量化后的殘差信號,將正交變換和量化后的殘差信號提供給逆量化·逆正交變換部208。
運動矢量導(dǎo)出部204在預(yù)測模式為運動估計模式時,將由幀間預(yù)測信息檢測部205判定并輸出的編碼信息的運動矢量作為預(yù)測運動矢量,基于被第1編碼比特串解碼部202解碼出的差分矢量及該預(yù)測運動矢量導(dǎo)出運動矢量,將該運動矢量提供給運動補償預(yù)測部207,并提供給編碼信息保存存儲器210。
幀間預(yù)測信息檢測部205從編碼信息保存存儲器210取得在處理對象預(yù)測塊所參照的相同圖片上、處理對象預(yù)測塊的周邊相鄰的已解碼的預(yù)測塊,或者在時間不同的其它圖片中、與處理對象預(yù)測塊相同位置的塊的周邊相鄰的預(yù)測塊的編碼信息?;诰幋a信息保存存儲器210中所保存的已解碼的周邊的相鄰塊、或者時間不同的其它圖片的相鄰塊的編碼信息中的、處理對象預(yù)測塊的位置信息,檢測多個參照目標(biāo)候選的相鄰塊的編碼信息,將被選為參照目標(biāo)的相鄰塊的編碼信息和用于確定該相鄰塊的索引按被輸入到開關(guān)212的由動圖像解碼裝置200解碼出的預(yù)測模式切換地供給。幀間預(yù)測信息檢測部205的詳細(xì)構(gòu)成和動作將在后面敘述。
融合判定部206在預(yù)測模式為融合模式時,為將幀間預(yù)測信息檢測部205所取得的處理對象預(yù)測塊要參照的相鄰塊的編碼信息作為處理對象預(yù)測塊的編碼信息來使用,將相鄰塊重排為優(yōu)先參照的順位地登錄到參照候選列表中。融合判定部206從該參照候選列表中檢測按由第1編碼比特串解碼部202解碼出的用于確定參照相鄰塊的索引所指定的相鄰塊,將該編碼信息提供給運動補償預(yù)測部207,并提供給編碼信息保存存儲器210。融合判定部206的詳細(xì)構(gòu)成和動作將在后面敘述。
運動補償預(yù)測部207利用由運動矢量導(dǎo)出部204導(dǎo)出的運動矢量或由融合判定部206檢測出的被選為參照目標(biāo)的相鄰塊的編碼信息,基于參照圖片,通過運動補償預(yù)測生成預(yù)測圖像信號,將預(yù)測圖像信號提供給解碼圖像信號重疊部209。此外,在雙預(yù)測的情況下,對L0預(yù)測、L1預(yù)測的兩個運動補償預(yù)測圖像信號適應(yīng)性地乘以權(quán)重系數(shù)地進(jìn)行重疊,生成最終的預(yù)測圖像信號。
逆量化·逆正交變換部208對由第1編碼比特串解碼部202解碼出的被正交變換·量化了的殘差信號進(jìn)行逆正交變換及逆量化,得到被逆正交變換和逆量化后的殘差信號。
解碼圖像信號重疊部209通過將由運動補償預(yù)測部207運動補償預(yù)測出的預(yù)測圖像信號和由逆量化·逆正交變換部208逆正交變換和逆量化后的殘差信號重疊,來解碼出解碼圖像信號,保存到解碼圖像存儲器211中。在保存到解碼圖像存儲器211中時,有時還對解碼圖像施以減少編碼所引起的塊畸變等的濾波處理后,保存到解碼圖像存儲器211中。
開關(guān)212根據(jù)第1編碼比特串解碼部202所解碼出的預(yù)測模式,將由幀間預(yù)測信息檢測部205檢測出的被選為參照目標(biāo)的相鄰塊的編碼信息,在與運動矢量導(dǎo)出部204或融合判定部206之間切換地供給。
在以下實施例中,說明將在動圖像編碼裝置100的幀間預(yù)測信息檢測部104及動圖像解碼裝置200的幀間預(yù)測信息檢測部205中共通地實施的運動矢量的預(yù)測方法和融合方法中所參照的周邊相鄰塊的配置統(tǒng)合,并從其中選出參照相鄰塊的方法的詳細(xì)情況。
在用本發(fā)明的實施例說明參照相鄰塊的選出方法前,先定義要在本實施例中使用的用語。
(本發(fā)明中使用的用語的定義)
·編碼塊的定義
在本實施例中,如圖5所示,將畫面內(nèi)用相同尺寸的正方形的矩形塊均等分割。將該塊稱作編碼塊,作為進(jìn)行編碼及解碼時的處理的基礎(chǔ)。編碼塊可以根據(jù)畫面內(nèi)的紋理,為使編碼處理最佳而將編碼塊內(nèi)4分割,使之成為塊尺寸較小的編碼塊。將以均等尺寸在圖5所示的畫面內(nèi)分割后的編碼塊稱作最大編碼塊,將根據(jù)編碼條件對其內(nèi)部進(jìn)行4分割后的塊總地作為編碼塊。將無法對編碼塊進(jìn)一步4分割的最小尺寸的編碼塊稱作最小編碼塊。
·預(yù)測塊的定義
在將畫面內(nèi)分割成塊進(jìn)行運動補償時,使運動補償?shù)膲K尺寸越小,就越能進(jìn)行更加細(xì)致的預(yù)測,故采取了從幾個塊尺寸中選擇最佳者來進(jìn)行運動補償?shù)姆绞?。將該進(jìn)行運動補償?shù)膲K稱作預(yù)測塊。預(yù)測塊在分割編碼塊內(nèi)部時被使用,根據(jù)運動補償,以不分割編碼塊內(nèi)部地視為1塊時為最大,有水平或垂直方向2分割的情況、和通過水平和垂直的均等分割而4分割的情況。根據(jù)分割方法,定義了與分割類型對應(yīng)的分割模式(PartMode),示于圖6。圖7的(a)~(d)中的矩形內(nèi)部的編號表示被分割后的預(yù)測塊的編號。在最小編碼塊內(nèi)部,為管理預(yù)測塊,按從上至下、從左至右的順序?qū)︻A(yù)測塊分配從0開始的編號。
在如上這樣對編碼塊進(jìn)行運動估計和補償時,作為運動估計和補償?shù)膯挝唬瑢⒕幋a塊本身的尺寸、使編碼塊2分割或4分割后的各個小塊、進(jìn)一步4分割后的各個小塊作為編碼塊而同樣地進(jìn)行分割,直到預(yù)測塊的最小尺寸,成為遞歸地得到的尺寸的塊。在以下說明中,在無特別說明的情況下,進(jìn)行運動估計和補償?shù)膯挝徊徽撔螤?、尺寸如何都記為“預(yù)測塊”。
(參照列表)
接下來說明參照列表。在編碼及解碼時,基于各參照列表LX的參照索引指定參照圖片編號進(jìn)行參照。準(zhǔn)備有L0和L1兩種,X為0或1。將參照被登錄在參照列表L0中的參照圖片的幀間預(yù)測稱為L0預(yù)測(Pred_L0),將參照被登錄在參照列表L1中的參照圖片的運動補償預(yù)測稱作L1預(yù)測(Pred_L1)。L0預(yù)測主要作為前向預(yù)測使用,L1預(yù)測主要作為后向預(yù)測使用,針對P片僅使用L0預(yù)測,針對B片可以使用L0預(yù)測、L1預(yù)測及將L0預(yù)測和L1預(yù)測平均或加權(quán)相加的雙預(yù)測。在以后的處理中,對于輸出賦有后綴LX的值,以分別按L0預(yù)測、L1預(yù)測進(jìn)行處理為前提。
(編碼信息的記錄)
接下來,說明通過運動估計和補償而檢測出的運動矢量等編碼信息的記錄。在此,編碼信息由運動矢量、參照列表、表示登錄在參照列表中的參照圖片的參照圖片編號、預(yù)測模式等編碼所使用的信息構(gòu)成。雖然是按預(yù)測塊單位進(jìn)行運動估計、補償?shù)?,但檢測出的運動矢量等編碼信息不按預(yù)測塊單位記錄,而是按上述的最小預(yù)測塊單位記錄。即,對構(gòu)成預(yù)測塊內(nèi)部的多個最小預(yù)測塊記錄相同的編碼信息。
預(yù)測塊的尺寸是根據(jù)編碼條件而變的,故為按預(yù)測塊單位記錄到編碼信息保存存儲器114、210中,除檢測出的運動矢量外還需要預(yù)測塊在圖片上的位置、預(yù)測塊的形狀等附加信息,用于取得編碼信息的訪問會復(fù)雜化。因此,雖然會有信息的重復(fù)記錄所導(dǎo)致的冗余度,但分割為均一的最小預(yù)測塊單位并記錄,訪問會更容易。
圖8是將圖片按最小預(yù)測塊分割后的一例,使用該圖來說明記錄到編碼信息保存存儲器114、210中的編碼信息的保存形式。圖8中的w表示圖片的寬度,h表示圖片的高度。若將最小預(yù)測塊的寬度及高度記作p,則圖片由橫向w/p個、縱向h/p個最小預(yù)測塊構(gòu)成,與該一個一個最小預(yù)測塊對應(yīng)的編碼信息被按圖8中粗實線所表示的光柵掃描順序記錄到編碼信息保存存儲器114、210中。
在此,將圖8中粗線包圍的矩形區(qū)域作為預(yù)測塊(圖8中陰影所示的區(qū)域)。針對預(yù)測塊,通過運動估計來檢測運動矢量等編碼信息。檢測出的編碼信息被記錄在與構(gòu)成預(yù)測塊的最小預(yù)測塊對應(yīng)的編碼信息保存存儲器114、210中。以圖8中的左上方為原點表示編碼信息保存存儲器114、210的編碼信息記錄區(qū)域的起始地址,預(yù)測塊的起始位置被以圖6中的黑圓點來表示。預(yù)測塊的起始位置處于按最小預(yù)測塊單位從原點起向右x個、向下y個的位置時,預(yù)測塊的起始地址用w/p×y+x來表示。從該起始位置的最小預(yù)測塊起,在與陰影所示的預(yù)測塊內(nèi)的最小預(yù)測塊對應(yīng)的編碼信息保存存儲器114、210內(nèi)的保存區(qū)域依次記錄預(yù)測塊的編碼信息。這樣,在與預(yù)測塊中的最小預(yù)測塊對應(yīng)的編碼信息保存存儲器114、210的記錄區(qū)域中記錄相同的編碼信息。
接下來,說明本發(fā)明實施例中的、具備參照相鄰塊的選出方法的動圖像編碼裝置所編碼的動圖像的比特流的句法。
(句法的定義)
上述的圖3的(a)是根據(jù)預(yù)測模式而區(qū)分編碼的情況。在圖像間預(yù)測(Inter模式)時,首先按是否使用融合方法而分為融合模式和非融合模式。非融合模式是實際進(jìn)行塊匹配等運動矢量的預(yù)測的模式,也可稱之為運動估計模式。融合模式進(jìn)一步分為skip模式和非skip模式。skip模式將根據(jù)參照相鄰塊的編碼信息而預(yù)測出的預(yù)測圖像信號作為解碼圖像,故圖像殘差信號為0。因此,skip模式是不需要編碼傳送,近將表示編碼信息的參照目標(biāo)的索引進(jìn)行編碼傳送的模式。skip模式的編碼信息同融合模式一樣,在此,將對圖像殘差信號進(jìn)行編碼傳送的情形限定為融合模式。圖3的(b)表示將成為Inter模式的編碼對象的信號分類后的表。在skip模式下,與其它模式不同,不需要圖像殘差信號的編碼傳送,故與按圖3的(a)的預(yù)測模式的分岔順序進(jìn)行判定時相比,先進(jìn)行skip模式的判定更能抑制模式判定所使用的標(biāo)志的碼量。
上述的圖6表示按片中的預(yù)測塊單位記述的句法模式。首先,設(shè)置表示是否為skip模式的標(biāo)志skip_flag。在skip_flag為真(1)、且參照相鄰塊的候選總數(shù)NumMergeCand超過1的情況下,skip模式被適用,針對編碼信息,設(shè)置作為參照相鄰塊的候選列表的融合列表的索引的句法要素merge_idx。在NumMergeCand為1時,該1者成為參照相鄰塊,故不傳送merge_idx也能確定參照相鄰塊的候選。
接下來,在預(yù)測塊的預(yù)測模式為圖像間預(yù)測(Inter模式)時,設(shè)置表示是否為融合模式的標(biāo)志merge_flag。在merge_flag為真(1)、且參照相鄰塊的候選總數(shù)NumMergeCand超過1的情況下,融合模式被適用,針對編碼信息,設(shè)置作為參照相鄰塊的候選列表的融合列表的索引的句法要素merge_idx。在NumMergeCand為1時,該1者成為參照相鄰塊,故不傳送merge_idx也能確定參照相鄰塊的候選。
在merge_flag為假(0)的情況下,不適用融合模式,進(jìn)行通常的運動矢量估計,傳送運動矢量和參照圖片編號等編碼信息(相當(dāng)于運動估計模式)。針對每個預(yù)測塊,根據(jù)預(yù)測塊所屬的片的片類型,選擇編碼及解碼時使用的參照列表。在片類型slice_type為“B”時,設(shè)定表示單向預(yù)測或雙預(yù)測的標(biāo)志inter_pred_flag。
inter_pred_flag設(shè)定為Pred_L0(L0預(yù)測)、Pred_L1(L1預(yù)測)或Pred_BI(雙預(yù)測)?;趇nter_pred_flag,設(shè)定參照列表LX(X=0或1)。針對所設(shè)定的各參照列表,設(shè)置通過運動矢量估計而求得的、表示參照圖片編號的句法要素ref_idx_lX、和運動矢量與預(yù)測塊的周圍相鄰塊的預(yù)測運動矢量的差分運動矢量的句法要素mvd_lX[i]。在此,X用0或1表示參照列表,i表示差分運動矢量的分量,i=0表示x分量,i=1表示y分量。
其次,在預(yù)測運動矢量的候選總數(shù)NumMvpCand(LX)超過1的情況下,設(shè)置作為要參照的預(yù)測運動矢量的候選列表的MVP列表的索引的句法要素mvp_idx_lX。NumMvpCand(LX)表示按參照列表LX(X為0或1)導(dǎo)出預(yù)測塊的預(yù)測運動矢量的候選總數(shù)的函數(shù)。此外,根據(jù)運動矢量的預(yù)測方法,在預(yù)測運動矢量的候選總數(shù)NumMvpCand(LX)為1時,索引mvp_idx_lX不被設(shè)置、不被編碼。因為若預(yù)測運動矢量的候選總數(shù)為1,則該1者成為預(yù)測運動矢量,故不傳送mvp_idx_lX也能確定要參照的預(yù)測運動矢量的候選。基于以上的句法,能進(jìn)行動圖像的比特流的編碼及解碼。
接下來,在圖9的(a)、(b)中表示具有運動估計模式下的要參照的預(yù)測運動矢量的周圍相鄰塊、或成為融合模式下的編碼信息的參照目標(biāo)的周圍相鄰塊的配置的一例。在圖9的(a)、(b)中,針對成為處理對象預(yù)測塊,用最小預(yù)測塊表示了相鄰的塊。
該構(gòu)成在基于處理對象預(yù)測塊的位置和大小(塊的寬度及高度)而訪問編碼信息保存存儲器114、210中所記錄的已編碼的編碼信息時較好。對于圖9的(a)、(b)所示的周圍相鄰塊,用記號“A”表示處理對象預(yù)測塊的左側(cè)相鄰的塊,用“B”表示上側(cè)相鄰的塊。后綴的數(shù)字表示位置。
塊“T”是時間不同的其它圖片的相同位置所相鄰的塊的一例。在本發(fā)明的實施例中,假定相對于處理對象預(yù)測塊,設(shè)定在其它圖片的右下方。此外,根據(jù)處理對象預(yù)測塊的位置,若塊T在圖片外,則相對于處理對象預(yù)測塊、定為其它圖片的中央附近的最小預(yù)測塊的位置。圖9的(a)中,在相同圖片上的空間內(nèi)取5個相鄰塊候選,再加上在時間不同的其它圖片內(nèi)的候選,共由6個候選構(gòu)成。圖9的(b)中,在相同圖片上的空間內(nèi)取4個相鄰塊的候選,再加上時間不同的其它圖片中的候選,共由5個候選構(gòu)成。
如圖1所示,也可以將相鄰的所有塊都作為候選,但例如在處理對象預(yù)測塊的尺寸為64×64像素、編碼信息保存存儲器114、210中保存編碼信息的塊的尺寸為4×4像素時,與處理對象預(yù)測塊相鄰的左側(cè)16個、上側(cè)16個、角部3個塊為成為參照目標(biāo)的相鄰塊。在用硬件來實現(xiàn)時,需要考慮所能想到的最大的存儲器訪問次數(shù)、存儲器量、及處理量(處理時間)。
在本發(fā)明的實施例中,如圖9的(a)所示,將左側(cè)相鄰的塊、上側(cè)相鄰的塊分別限定為1個,由此來縮減參照的候選,并將左斜下側(cè)、右斜上側(cè)及左斜上側(cè)相鄰的塊加為候選。另外,在圖9的(b)中,通過將左側(cè)相鄰的塊、上側(cè)相鄰的塊分別限定為與圖9的(a)不同的1個,來縮減參照的候選,將左斜下側(cè)及右斜上側(cè)相鄰的塊作為候選。
這樣,通過預(yù)先限定候選,本發(fā)明的實施例具有幾乎不使編碼效率下降,削減存儲器訪問次數(shù)、存儲器量、及處理量(處理時間)的效果。此外,在后述的實施例3以后的實施例中,除能削減存儲器訪問次數(shù)、存儲器量、及處理量(處理時間)外,還能削減融合索引、MVP索引的碼量,故還具有削減產(chǎn)生碼量的效果。另外,在本發(fā)明的實施例中,在融合模式和運動估計模式下使候選的位置共通化,由此能謀求存儲器訪問次數(shù)、存儲器量、及處理量(處理時間)的進(jìn)一步削減。
以下,利用圖9的(a)的配置例來進(jìn)行說明。在使用圖9的(b)的配置例的情況下,通過在以下說明中省略C0,能進(jìn)行與圖9的(a)的配置例同樣的處理。此外,關(guān)于參照相鄰塊的配置,只要動圖像編碼裝置100及動圖像解碼裝置200中不發(fā)生矛盾,采用哪種構(gòu)成都可以。另外,關(guān)于參照相鄰塊的編碼信息,在動圖像編碼裝置100中為已編碼的信息,在動圖像解碼裝置200中為已解碼的信息,只要能保存到編碼信息保存存儲器114、210中,哪種信息都可以。
圖10表示在表示動圖像編碼裝置100的構(gòu)成的圖2及表示動圖像解碼裝置200的構(gòu)成的圖4中設(shè)置的實施例1的幀間預(yù)測信息檢測部104、205的詳細(xì)情況。圖10中的粗虛線所包圍的部分表示了幀間預(yù)測信息檢測部104、205,使用該圖進(jìn)行說明。幀間預(yù)測信息檢測部104、205包括處理對象塊位置檢測部301、相鄰塊指定部302及臨時存儲器303。在融合模式和運動估計模式這兩個模式下,將候選的位置共通化為圖9的(a)的配置,說明從編碼信息保存存儲器114、210取得圖9的(a)的配置的相鄰塊的編碼信息的步驟。
開始,處理對象預(yù)測塊在圖片內(nèi)的位置和尺寸的信息被輸入到處理對象塊位置檢測部301。以圖片的左上方的像素為原點,用處理對象預(yù)測塊距左上方像素的水平及垂直方向的像素單位的距離來表示處理對象預(yù)測塊的位置。進(jìn)而,根據(jù)表示處理對象編碼塊的分割模式的PartMode和編碼塊被遞歸地分割的次數(shù),導(dǎo)出處理對象預(yù)測塊的寬度和高度,導(dǎo)出處理對象預(yù)測塊要參照的參照相鄰塊的位置。
基于所導(dǎo)出的相鄰塊的位置,相鄰塊指定部302訪問編碼信息保存存儲器114、210,從其中將相當(dāng)于圖9的(a)所示的相鄰塊的位置的編碼信息讀入到臨時存儲器303中。臨時存儲器303被設(shè)于幀間預(yù)測信息檢測部104、205內(nèi)部,是保存處理對象預(yù)測塊所參照的參照相鄰塊的編碼信息的存儲器。在此,當(dāng)所導(dǎo)出的相鄰塊的位置為畫面外時,該相鄰塊不存在,故假定將“0”記錄到臨時存儲器303中。
通過如上這樣在融合模式和運動估計模式這兩個模式下使候選的位置共通化,在編碼側(cè)能削減向臨時存儲器303保存相鄰塊的編碼信息的保存處理量。此外,由于針對每種預(yù)測模式變更預(yù)測方法,并每次取得所需的相鄰塊的編碼信息,故無需訪問編碼信息保存存儲器114。另一方面,能在解碼側(cè)進(jìn)行融合模式和運動估計模式的判別之前,就開始向臨時存儲器303保存相鄰塊的編碼信息的保存處理,故能提高解碼處理的速度。
在具有本發(fā)明實施例的編碼信息的選出方法的動圖像編碼裝置100及動圖像解碼裝置200中,并非直接將處理對象預(yù)測塊的運動矢量和參照圖片編號等編碼信息編碼,而是參照并使用保存在編碼信息保存存儲器114、210中的已編碼/已解碼的周圍相鄰塊的編碼信息。然后,通過將表示參照相鄰塊的位置的索引和對運動矢量進(jìn)行預(yù)測的預(yù)測運動矢量的索引編碼,能實現(xiàn)編碼信息所涉及的碼量的削減。以下,說明從幀間預(yù)測信息檢測部104、205所取得的相鄰塊的編碼信息導(dǎo)出編碼過程中表示參照相鄰塊的位置的索引和對運動矢量進(jìn)行預(yù)測的預(yù)測運動矢量的索引的方法,以及基于在與編碼過程對應(yīng)的解碼過程中被解碼的表示參照相鄰塊的位置的索引和對運動矢量進(jìn)行預(yù)測的預(yù)測運動矢量的索引來取得編碼信息的方法的具體實施例。
(實施例1)
首先,說明在表示動圖像編碼裝置100的構(gòu)成的圖2中設(shè)置的實施例1的融合檢測部106。圖11表示融合檢測部106的詳細(xì)構(gòu)成。圖11中的粗虛線包圍的部分表示融合檢測部106,用該圖進(jìn)行說明。融合檢測部106包括編碼信息導(dǎo)出部310、參照候選列表生成部311、相同信息檢測部312、輸出部313及參照候選列表保存存儲器314。
開始,根據(jù)被輸入到開關(guān)108的由動圖像編碼裝置100控制的預(yù)測模式,將幀間預(yù)測信息檢測部104的輸出目標(biāo)切換為融合檢測部106。在幀間預(yù)測信息檢測部104內(nèi)部的臨時存儲器303中保存的處理對象預(yù)測塊參照的參照相鄰塊的編碼信息被輸入到編碼信息導(dǎo)出部310。
用圖12的流程圖說明編碼信息導(dǎo)出部310的動作。從開始輸入的相鄰塊中判定與處理對象預(yù)測塊位于相同圖片內(nèi)的相鄰塊的編碼信息是否有效并導(dǎo)出(S100)。
圖13中表示與處理對象預(yù)測塊處于相同圖片內(nèi)的各相鄰塊的判定處理的詳細(xì)流程。首先,將變量N初始化(S200)。變量N被設(shè)定為處于圖9的(a)所示的相同圖片上的相鄰塊A1,B1,B0,A0,C0。在此,假定初始化時設(shè)定為N=A1,變量N的更新按B1,B0,A0,C0順序進(jìn)行。
然后,對用于保存在以后的判定中使用的相鄰塊的編碼信息的變量進(jìn)行初始化。在此,變量是表示相鄰塊是否有效的標(biāo)志availableFlagN、運動矢量mvLXN、參照圖片編號refIdxLXN及表示參照列表的有效性的標(biāo)志predFlagLXN,如下這樣被初始化(S201)。
availableFlagN=0
mvLXN=(0,0)
refIdxLXN=0
predFlagLXN=0
在此,后綴X被設(shè)定表示參照列表的0或1。取得變量N的相鄰塊(以下記作相鄰塊N)的位置及編碼信息(S202)。
基于所取得的相鄰塊N的位置,判定相鄰塊N是否有效(S203)。例如,當(dāng)處理對象預(yù)測塊位于圖片左端時,不存在處理對象預(yù)測塊的左邊的相鄰塊,故編碼信息保存存儲器114中沒有相應(yīng)的編碼信息,被判定為無效。若相鄰塊N無效(S203的N),則將availableFlagN設(shè)定為“0”(S207)。若相鄰塊N有效(S203的Y),則判定相鄰塊N的預(yù)測模式是否為畫面內(nèi)編碼(Intra)模式(S204)。
若相鄰塊N的預(yù)測模式為Intra模式(S204的Y),則將availableFlagN設(shè)定為“0”(S207)。若相鄰塊N的預(yù)測模式非Intra模式(S204的N),則將availableFlagN設(shè)定為“1”(S205)。然后,將相鄰塊N的編碼信息代入refIdxLXN、mvLXN及predFlagLXN進(jìn)行設(shè)定(S206)。
在如上這樣針對相鄰塊N的判定處理結(jié)束后,實施變量N是否為相鄰塊的最后一個的判定(S208)。由于變量N的更新是按A1,B1,B0,A0,C0的順序進(jìn)行的,故在此判定N是否為C0。若N為C0(S208的Y),則表示對所有相鄰塊都進(jìn)行了判定,結(jié)束處理。若N非C0(S208的N),則進(jìn)行N的更新(S209)。按上述的相鄰塊的順序更新N,并針對相鄰塊N反復(fù)進(jìn)行步驟S201之后的處理。如上這樣將存在于與處理對象預(yù)測塊相同圖片上的周圍的相鄰塊作為參照塊,導(dǎo)出其編碼信息。
接下來回到圖12,決定以時間不同的其它圖片為融合候選時的處理對象預(yù)測塊的參照圖片編號(S101)。該處理是為決定接下來要說明的、處理對象預(yù)測塊參照相鄰于時間不同的其它圖片的相同位置的塊的運動矢量進(jìn)行幀間預(yù)測時的參照圖片而進(jìn)行的。此時,根據(jù)已編碼的相鄰塊的編碼信息決定處理對象預(yù)測塊要參照的圖片的參照圖片編號。在此,用圖14說明基于之前的處理(S100)中所導(dǎo)出的相同圖片上的相鄰塊的編碼信息的方法。
首先,將步驟S100所導(dǎo)出的4個相鄰塊分類成3個組。作為組,將處理對象預(yù)測塊的左邊相接的相鄰塊記作組A,將上邊相接的相鄰塊記作組B,將在角部相接的相鄰塊記作組C,按各個組來進(jìn)行判定。
首先,使用圖14的(a)來說明組A。由于屬于組A的相鄰塊是A1,故查詢步驟S100中的表示A1是否有效的標(biāo)志availableFlagA1(S300)。若availableFlagA1為1(S300的Y),則將組A的參照圖片編號refIdxLXA設(shè)定為A1的參照圖片編號。若不為1(S300的N),則將refIdxLXA設(shè)定為表示沒有參照圖片編號的-1。
同樣地,用圖14的(b)來說明組B。由于屬于組B的相鄰塊是B1,故查詢步驟S100中的表示B1是否有效的標(biāo)志availableFlagB1(S301)。若availableFlagB1為1(S301的Y),則將組B的參照圖片編號refIdxLXB設(shè)定為B1的參照圖片編號。若不為1(S301的N),則將refIdxLXB設(shè)定為-1。
屬于組C的相鄰塊是A0、B0和C0,如圖14的(c)所示那樣,按B0、A0、C0的順序進(jìn)行判定。同A1、B1一樣,查詢B0的標(biāo)志availableFlagB0(S302)。若availableFlagB0為1(S302的Y),則將組C的參照圖片編號refIdxLXC設(shè)定為B0的參照圖片編號,若不為1(S302的N),則查詢A0的標(biāo)志availableFlagA0(S303)。若availableFlagA0為1(S303的Y),則將組C的參照圖片編號refIdxLXC設(shè)定為A0的參照圖片編號。若不為1(S303的N),則查詢C0的標(biāo)志availableFlagC0(S304)。若availableFlagC0為1(S304的Y),則將組C的參照圖片編號refIdxLXC設(shè)定為C0的參照圖片編號。若不為1(S304的N),則將refIdxLXC設(shè)定為-1。
此外,如圖9的(b)所示的相同圖片上的相鄰塊那樣,在沒有C0的位置的塊時,對B0和A0這兩個相鄰塊進(jìn)行判定。通過選擇這樣導(dǎo)出的各組的參照圖片編號refIdxLXN(N為A,B或C)的多數(shù)決或最小值,來決定時間不同的其它圖片的相同位置的相鄰的塊的參照圖片編號。
圖15表示了基于參照圖片編號refIdxLXN的判定。從圖15的上方起按順序說明。第1~4行是refIdxLXN存在相同值的情況,通過多數(shù)決來選擇。第1行是refIdxLXN全都相同的情況,若是-1則取0,若非-1則取refIdxLXA的值。第2~4行是3個refIdxLXN中的兩個相同的情況,若兩個相同時的值為-1,則取剩余的1個的refIdxLXN的值,若非如此則取兩個相同時的值。
第5~8行是refIdxLXN不存在相同的值的情況,從中選擇最小值。從3個中除為-1的refIdxLXN外,選擇最小參照圖片編號的值。如上這樣決定處理對象預(yù)測塊的參照圖片編號,但也可以采用該方法以外的方法。
回到圖12,接下來判定時間不同的其它圖片的相同位置的相鄰塊的編碼信息是否有效并導(dǎo)出(S102)。圖16表示了處理對象預(yù)測塊和處于其它圖片的相鄰塊的判定處理的詳細(xì)流程。開始,指定與包含處理對象預(yù)測塊的圖片時間不同的其它圖片(S400)。包含處理對象預(yù)測塊的片為P片時,僅能使用L0預(yù)測,故指定L0的參照列表中的參照圖片編號0所示的圖片。在為B片時,能使用L0預(yù)測、L1預(yù)測的一者、以及L0,L1的雙預(yù)測,但指定L0或L1的某一方的參照列表的參照圖片編號0所示的圖片。在此,提到了B片時的時間不同的其它圖片的指定,但例如也可以考慮在片首部內(nèi)插入預(yù)先決定好在為B片時參照哪一方的參照列表的參數(shù)等方法。
接下來,指定參照的時間不同的其它圖片的相同位置的相鄰的塊的位置(S401)。在實施例1中,由于是將圖9的(a)所示的參照相鄰塊“T”作為時間不同的其它圖片的相同位置的相鄰的塊,故根據(jù)處理對象預(yù)測塊的位置、表示分割模式的PartMode、及分割次數(shù),導(dǎo)出處理對象預(yù)測塊的寬度和高度,導(dǎo)出相鄰塊“T”的位置。當(dāng)導(dǎo)出的相鄰塊的位置為圖片外時,在時間不同的其它圖片中,取與處理對象預(yù)測塊相同位置的中央附近的位置。在以下的說明中,將時間不同的其它圖片記為col圖片、使該圖片的處理對象塊的相同位置的相鄰的塊記為col塊,對其運動矢量和參照圖片編號后綴“Col”來表示。
基于col圖片和與其中的處理對象預(yù)測塊相同位置的相鄰的塊col塊的位置,訪問編碼信息保存存儲器114訪問讀入col塊的編碼信息,判定編碼信息是否有效,導(dǎo)出運動矢量(S402)。
圖17表示其導(dǎo)出的詳細(xì)處理,用該圖進(jìn)行說明。根據(jù)從編碼信息保存存儲器114讀入的col塊的編碼信息和位置判定col塊是否有效(S500)。若不存在col塊或者col塊的預(yù)測模式為Intra(S500的Y),則將col塊的基準(zhǔn)運動矢量mvCol設(shè)定為(0,0),將基準(zhǔn)有效標(biāo)志availableFlagCol設(shè)定為0(S501),進(jìn)入步驟S509。若并非如此(S500的N),則進(jìn)入表示col塊的L0參照列表的有效性的標(biāo)志predFlagL0的判定(S502)。
若predFlagL0為0(S502的Y),則L0預(yù)測無效,故選擇L1預(yù)測的編碼信息,將mvCol設(shè)定為mvL1,將基準(zhǔn)參照圖片編號refIdxCol設(shè)定為refIdxL1(S503),進(jìn)入步驟S507。若并非如此(S502のN),即L0預(yù)測有效,則進(jìn)入表示col塊的L1參照列表的有效性的標(biāo)志predFlagL1的判定(S504)。
若predFlagL1為0(S504的Y),則L1預(yù)測無效,故選擇L0預(yù)測的編碼信息,將mvCol設(shè)定為mvL0,將refIdxCol設(shè)定為refIdxL0(S505),進(jìn)入步驟S507。若并非如此(S504的N)、即L0和L1預(yù)測都有效,則進(jìn)入Pred_BI模式時的導(dǎo)出(S506)。在Pred_BI模式時的導(dǎo)出中,選擇L0預(yù)測或L1預(yù)測的某一方。
關(guān)于選擇方法,例如可以舉出選擇與在步驟S500中選擇的col圖片相同的參照列表的方法、在col塊的L0預(yù)測、L1預(yù)測各自的參照圖片中選擇與col圖片的圖像間距離較近者的方法、或者選擇col塊的L0預(yù)測、L1預(yù)測各自的運動矢量與處理對象的圖片交差者等。
圖18表示第3個判定基準(zhǔn)的一例。在該例中,在處理對象圖片與col塊的運動矢量交差時,即按col圖片的參照圖片、處理對象圖片、col圖片的時間順序顯示,相當(dāng)于col塊的塊必然存在于處理對象圖片內(nèi)部,在微小時間內(nèi)評價周邊區(qū)域的運動的情況下,選擇交差的那側(cè)的預(yù)測,在運動矢量預(yù)測中得到接近的值的可靠性更高。因此,選擇與處理對象圖片交差的運動矢量的參照列表側(cè),設(shè)定mvCol及refIdxCol。
回到圖17,接下來,由于存在運動矢量,故將基準(zhǔn)有效標(biāo)志availableFlagCol設(shè)定為1(S507)。將表示參照列表的變量X設(shè)定為0(S508),導(dǎo)出col塊的L0及L1預(yù)測的運動矢量。根據(jù)在上述過程中求得的基準(zhǔn)運動矢量mvCol和基準(zhǔn)參照圖片編號refIdxCol指定參照圖片的位置,導(dǎo)出與col圖片的圖像間距離colDist。
另一方面,根據(jù)步驟S401所決定的處理對象預(yù)測塊的參照圖片編號refIdxLX指定參照圖片的位置,導(dǎo)出與處理對象圖片的圖像間距離currDist。進(jìn)行currDist與colDist的比較(S509)。若currDist與colDist相同(S509的OK),則直接將基準(zhǔn)運動矢量mvCol作為mvLXCol(S510)。
若currDist與colDist不同(S509的NG),則施以基于縮放的距離換算??s放是使相鄰塊參照的圖片的圖像間距離符合與處理對象預(yù)測塊參照的圖片的圖像間距離,對相鄰塊的運動矢量進(jìn)行距離換算,來作為處理對象預(yù)測塊的運動矢量的處理。圖18表示了縮放的一例。col圖片上的col塊與處理對象預(yù)測塊的各個參照的圖片的圖像間距離是colDist、currDist,故通過下式使col塊的運動矢量mvCol符合處理對象預(yù)測塊的圖像間距離,導(dǎo)出運動矢量(S511)。
【數(shù)1】
判定X是否為1(S512)。若X不為1、即為0(S512的N),則針對L1預(yù)測的方向也以同樣的步驟導(dǎo)出。因此,將X更新為1(S513),反復(fù)執(zhí)行步驟S509以后的處理。若X為1(S512的Y),則結(jié)束處理。
這樣得到的相鄰塊的編碼信息被輸入到參照候選列表生成部311。在實施例1中,在參照候選列表保存存儲器314設(shè)置參照候選列表作為登錄參照相鄰塊的編碼信息的候選的保存區(qū)域。然后,對該參照相鄰塊的編碼信息的候選賦予優(yōu)先順位,按優(yōu)先順位由高到低的順序向參照候選列表登錄該參照相鄰塊的編碼信息的候選。由此,能削減參照候選列表的索引merge_idx的碼量。
通過將參照候選列表中的各要素的位置較高的要素配置在參照候選列表的前面,來削減碼量。從0起升序分配表示優(yōu)先順位的索引merge_idx。例如,在參照候選列表的要素為3個時,使參照候選列表的索引0為“0”(2進(jìn)制數(shù)表示)、使索引1為“10”(2進(jìn)制數(shù)表示)、使索引2為“11”(2進(jìn)制數(shù)表示),由此,表示索引0的碼量成為1比特,通過對索引0登錄被認(rèn)為發(fā)生頻率高的要素,來削減碼量。
參照候選列表保存存儲器314中所設(shè)的參照候選列表呈列表構(gòu)造,設(shè)有將表示參照候選列表內(nèi)部的所在的索引、和與索引對應(yīng)的參照相鄰塊的編碼信息的候選作為要素來保存的排列區(qū)域。該排列區(qū)域用candList來表示。索引的數(shù)字從0開始,在參照候選列表candList的保存區(qū)域保存參照相鄰塊的編碼信息的候選。在以后的處理中,登錄在參照候選列表candList中的索引i的編碼信息用candList[i]來表示,并通過排列標(biāo)記來與參照候選列表candList區(qū)別。此外,關(guān)于保存到參照候選列表的保存區(qū)域的編碼信息,若無特別說明,則用參照相鄰塊的位置名(A0,A1,B0,B1,C0,T)來表示。
利用圖19的流程圖說明參照候選列表生成部311的動作。首先,將變量N和參照候選列表的索引k初始化(S600)。變量N被初始設(shè)定為圖9的(a)所示的相鄰塊A1,k被設(shè)定為0。索引k表示參照候選列表的保存區(qū)域中所設(shè)的編碼信息的候選的保存區(qū)域的優(yōu)先順位。
然后,進(jìn)行參照相鄰塊N的有效標(biāo)志availableFlagN的判定(S601)。若availableFlagN為1(S601的Y),則將相鄰塊N的編碼信息登錄到參照候選列表candList[k]中(S602),并更新k(S603)。若availableFlagN為0(S601的N),則不向參照候選列表進(jìn)行登錄,進(jìn)入下一步驟。
判定相鄰塊N是否為最后的參照塊(S604)。若是最后的塊(S604的Y),則將索引的值設(shè)定給候選列表總數(shù)NumListCand后(S605),結(jié)束處理。若非最后的塊(S604的N),則更新變量N(S606),重復(fù)步驟S601以后的處理。
在此,更新變量N的相鄰塊的順序成為保存到參照候選列表的優(yōu)先順位,在實施例1中,若為融合模式,則設(shè)定順序(A1,B1,B0,A0,C0,T)。越是處于優(yōu)先順位的上位,就越登錄到參照候選列表的前面,對用于確定參照候選列表中的融合候選的融合索引分配較短的碼長的碼。
若是融合模式,則將編碼信息被認(rèn)為與處理對象預(yù)測塊的邊相等的可能性最高的、與處理對象預(yù)測塊的邊相接的相鄰塊A1及B1優(yōu)先登錄到參照候選列表的前面。由此來削減融合索引的碼量,提高編碼效率。
通過以上處理,若參照候選列表中所登錄的參照相鄰塊全都有效,則按圖20所示的順序生成了參照候選列表。以優(yōu)先順位為索引,各碼字在參照候選列表的右列表示,最大碼字長為NumListCand-1。圖20中,NumListCand為6,碼字最大用5比特表示。若參照相鄰塊僅1個有效,則最大碼字長為0,故無需索引,僅1個被判定為有效的相鄰塊的編碼信息的候選被唯一決定為參照目標(biāo)。
所生成的參照候選列表被輸入給相同信息檢測部312。在相同信息檢測部312中,比較參照候選列表中所保存的編碼信息的候選,當(dāng)存在相同的編碼信息的候選時,除具有最小的參照候選列表索引的編碼信息的候選外全部刪除。利用圖21所示的流程圖來說明其動作。
首先,將表示參照候選列表的索引的變量n和m分別設(shè)定為0和1(S700)。將參照候選列表中所保存的索引n和m的編碼信息進(jìn)行比較(S701)。在此,比較的編碼信息是預(yù)測模式、所使用的參照列表、所使用的各參照列表的參照圖片編號、以及所使用的各參照列表的運動矢量。若被判定為不一致(S701的N),則進(jìn)入步驟S704。若判定為一致(S701的Y),則判定n和m中索引較大者、即m是否已被記錄到刪除列表中(S702)。
若m已被記錄到刪除列表中(S702的Y),則進(jìn)入步驟S704。若尚未記錄(S702的N),則將m記錄到刪除列表中(S703)。刪除列表是設(shè)在相同信息檢測部312內(nèi)的臨時保存用的存儲器。
然后,使m加1進(jìn)行更新(S704)。進(jìn)行m與候選列表總數(shù)NumListCand的比較(S705)。若m不為NumListCand(S705的N),則重復(fù)進(jìn)行步驟S701以后的與索引n的編碼信息的比較。若m已成為NumListCand(S705的Y),則使n加1進(jìn)行更新(S706)。
然后,進(jìn)行n與(NumListCand-1)的比較(S707)。若n不為(NumListCand-1)(S707的N),則將m設(shè)定為(n+1)(S709),重復(fù)進(jìn)行步驟S701以后的編碼信息的比較。若n已成為(NumListCand-1)(S707的Y),則刪除與刪除列表中所記錄的索引相應(yīng)的列表的保存區(qū)域的編碼信息,以索引0為基準(zhǔn)按索引由小到大的候選順序填充,并更新碼字和參照候選列表的總數(shù)NumListCand(S708),結(jié)束處理。
最后,輸出部313將所生成的參照候選列表中的索引和編碼信息輸出。參照候選列表以參照候選列表為融合列表,以列表中的索引為融合索引進(jìn)行輸出。在動圖像編碼裝置100中,被輸出給運動補償預(yù)測部105和預(yù)測方法決定部107。
下面說明與上述動圖像編碼裝置100中設(shè)置的實施例1的融合檢測部106對應(yīng)的、動圖像解碼裝置200中所設(shè)置的實施例1的融合判定部206。圖22是表示融合判定部206的詳細(xì)構(gòu)成的圖。圖22中的粗虛線包圍的部分表示了融合判定部206。融合判定部206包括編碼信息導(dǎo)出部310、參照候選列表生成部311、相同信息檢測部312、參照候選列表保存存儲器314及選擇部。
融合判定部206與動圖像編碼裝置100的融合檢測部106相對應(yīng),內(nèi)部構(gòu)成僅在選擇部315和輸出部313這兩點上不同,這以外的編碼信息導(dǎo)出部310、參照候選列表生成部311、相同信息檢測部312及參照候選列表保存存儲器314具備相同的功能。因此,在至相同信息檢測部312的處理中,生成與編碼過程相同的參照候選列表。
以下,說明從所生成的參照候選列表取得融合模式下的參照相鄰塊的編碼信息的選擇部315。選擇部315從所生成的參照候選列表中選擇由第1編碼比特串解碼部202解碼出的用于確定參照相鄰塊的索引所指定的參照候選列表的相鄰塊。將選中的編碼信息提供給運動補償預(yù)測部207,并提供給編碼信息保存存儲器210。
接下來,說明表示動圖像編碼裝置100的構(gòu)成的圖2中所設(shè)置的實施例1的運動矢量預(yù)測部103。圖23是表示運動矢量預(yù)測部103的詳細(xì)構(gòu)成的圖。圖23中的粗虛線包圍的部分表示了運動矢量預(yù)測部103,使用該圖來進(jìn)行說明。運動矢量預(yù)測部103包括編碼信息導(dǎo)出部320、參照候選列表生成部321、相同信息檢測部322、輸出部323、參照候選列表保存存儲器324及差分運動矢量導(dǎo)出部326。
幀間預(yù)測信息檢測部104內(nèi)部的臨時存儲器303中所保存的處理對象預(yù)測塊參照的參照相鄰塊的編碼信息被輸入給編碼信息導(dǎo)出部320。利用圖24的流程圖說明編碼信息導(dǎo)出部320的動作。
從最初輸入的相鄰塊中判定并導(dǎo)出與處理對象預(yù)測塊同一圖片內(nèi)的相鄰塊的編碼信息是否有效(S800)。圖25表示與處理對象預(yù)測塊同一圖片內(nèi)的各相鄰塊的判定處理的詳細(xì)流程。此外,圖25的判定處理是針對L0、L1的各列表分別獨立進(jìn)行的。
根據(jù)處理對象預(yù)測塊的預(yù)測模式,在單向預(yù)測、L0預(yù)測的情況下,僅對參照列表L0中所登錄的編碼信息進(jìn)行判定處理,在單向預(yù)測、L1預(yù)測的情況下,僅對參照列表L1中所登錄的編碼信息進(jìn)行判定處理,在雙預(yù)測的情況下,對參照列表L0,L1中所登錄的各編碼信息進(jìn)行判定處理。在本說明書中,在無特別注釋的情況下,對于運動估計模式時的判定處理,將參照候選列表的一者記作LX來進(jìn)行說明,圖示的參照候選列表也僅舉出1個。
首先,將變量N初始化(S900)。變量N被設(shè)定圖9的(a)所示的相同圖片上的相鄰塊A1,B1,B0,A0,C0。在此,初始化時設(shè)定為N=A1,變量N的更新按B1,B0,A0,C0的順序來進(jìn)行。
接下來,將在以后的判定中使用的保存相鄰塊的編碼信息的變量初始化。在此,變量是表示相鄰塊是否有效的標(biāo)志availableFlagLXN、運動矢量mvLXN、參照圖片編號refIdxLXN及表示參照列表的有效性的標(biāo)志predFlagLXN,被如下這樣初始化(S901)。
availableFlagLXN=0
mvLXN=(0,0)
refIdxLXN=0
predFlagLXN=0
此處,后綴X被設(shè)定表示參照列表的0或1。取得變量N的相鄰塊(以下記作相鄰塊N)的位置及編碼信息(S902)。
基于所取得的相鄰塊N的位置,判定相鄰塊N是否有效(S903)。例如,當(dāng)處理對象預(yù)測塊位于圖片左端時,不存在處理對象預(yù)測塊左邊的相鄰塊,故編碼信息保存存儲器114中沒有相應(yīng)的編碼信息,被判定為無效。
若相鄰塊N無效(S903的N),則將availableFlagLXN設(shè)定為“0”(S908)。若相鄰塊N有效(S903的Y),則判定相鄰塊N的預(yù)測模式是否為畫面內(nèi)編碼(Intra)模式(S904)。
若相鄰塊N的預(yù)測模式為Intra模式(S904的Y),則將availableFlagLXN設(shè)定為“0”(S908)。若相鄰塊N的預(yù)測模式不是Intra模式(S904的N),則判定在相鄰塊N是否也進(jìn)行了按與處理對象預(yù)測塊的導(dǎo)出對象的預(yù)測相同的參照列表、利用了相同的參照圖片編號的預(yù)測(S905)。
若未進(jìn)行(S905的N),則將availableFlagLXN設(shè)定為“0”(S908)。若進(jìn)行了(S905的Y),則將availableFlagLXN設(shè)定為“1”(S906)。接下來,將相鄰塊N的運動矢量的值代入mvLXN來進(jìn)行設(shè)定(S907)。
如上這樣對相鄰塊N的判定處理結(jié)束后,判定變量N是否為最后的相鄰塊(S909)。變量N的更新被按A1,B1,B0,A0,C0順序進(jìn)行,故在此判定N是否為C0。若N是C0(S909的Y),則對所有相鄰塊都進(jìn)行了判定,結(jié)束處理。若N不是C0(S909的N),則進(jìn)行N的更新(S910)。按上述的相鄰塊順序更新N,針對相鄰塊N反復(fù)進(jìn)行步驟S901以后的處理。
此外,在實施例1中,在步驟S905中判定了是否在相鄰塊N也進(jìn)行了按與處理對象預(yù)測塊的導(dǎo)出對象的預(yù)測相同的參照列表、采用了相同的參照圖片編號的預(yù)測。這若是相同的參照圖片編號及參照列表的條件,則相鄰的處理對象預(yù)測塊與相鄰塊N的運動矢量成為相同或接近的值的概率較高,故運動矢量的差分值變小、使編碼效率提高。
然而,相同圖片上未必存在進(jìn)行使用了相同的參照圖片編號及參照列表的預(yù)測的相鄰塊,當(dāng)不存在時,無法導(dǎo)出運動矢量的差分值,會使編碼效率下降。因此,不以步驟S905的相同的參照列表及參照圖片編號的條件來限制判定,在相鄰塊進(jìn)行的預(yù)測滿足如下條件時,也使表示相鄰塊是否有效的標(biāo)志availableFlagLXN為1(有效),作為參照相鄰塊的候選而導(dǎo)出其編碼信息。
條件1:相同的參照列表、相同的參照圖片編號
條件2:不同的參照列表、相同的參照圖片編號
條件3:相同的參照列表、不同的參照圖片編號
條件4:不同的參照列表、不同的參照圖片編號
將此時的處理的流程示于圖26。圖26不同于圖25之處在于,刪除了圖25的步驟S905的僅條件1的條件判定,并進(jìn)行步驟S911的條件1至4的條件判定,在不滿足條件1或2時追加運動矢量的縮放處理(S912)。這之外的步驟S900至步驟S910與圖25的說明是同等的,故以下針對變更和追加之處進(jìn)行說明。
若相鄰塊N的預(yù)測模式不是Intra模式(S904的N),則將availableFlagLXN設(shè)定為“1”(S906)。然后,通過將處理對象預(yù)測塊的導(dǎo)出對象的預(yù)測的編碼信息與相鄰塊N的編碼信息進(jìn)行比較來判定條件1至4(S911)。在滿足條件1或條件2時,將相鄰塊N的相同的參照列表(符合條件1時)或不同的參照列表(符合條件2時)的運動矢量的值代入mvLXN進(jìn)行設(shè)定(S907)。
在滿足條件3或條件4時,實施相同的參照列表(符合條件3時)或不同的參照列表(符合條件4時)的相鄰塊N的運動矢量的縮放處理(S912)。在運動估計模式下,為以更少的碼量傳輸處理對象預(yù)測塊的運動矢量,進(jìn)行運動矢量預(yù)測。運動矢量預(yù)測是取處理對象預(yù)測塊的運動矢量與相鄰塊的運動矢量的差分,對該差分值進(jìn)行編碼的處理。此時,若各自參照的圖片不同,則會對運動矢量的大小產(chǎn)生影響,差分值有時變得比實際的處理對象預(yù)測塊的運動矢量大。
因此,使相鄰塊參照的圖片的圖像間距離與處理對象預(yù)測塊參照的圖片的圖像間距離相一致,實施對相鄰塊的運動矢量進(jìn)行距離換算的縮放。圖27表示縮放的一例。對于處理對象預(yù)測塊,由運動矢量估計部102進(jìn)行運動矢量估計,檢測處理對象預(yù)測塊的運動矢量、參照圖片編號及參照列表。
另一方面,處理對象圖片上的相鄰塊自身的編碼信息是已知的,故根據(jù)各自的參照圖片編號選出參照的圖片。導(dǎo)出處理對象圖片上的相鄰塊和處理對象預(yù)測塊各自參照的圖片的圖像間距離td、tb,通過下式進(jìn)行距離換算,以使得相鄰塊N的相同的參照列表LX的運動矢量mvLX(符合條件3時)、或不同的參照列表LY(X=0時Y=1、X=1時Y=0)的運動矢量mvLY(符合條件4時)與處理對象預(yù)測塊的圖像間距離相一致。
回到圖26,將這樣換算后的運動矢量mvLX或mvLY代入mvLXN進(jìn)行設(shè)定(S907)。通過實施該縮放處理,能針對處理對象預(yù)測塊導(dǎo)出更接近的預(yù)測運動矢量,謀求精度的提高。如上這樣以存在于與處理對象預(yù)測塊相同圖片上的周圍的相鄰塊為參照塊,導(dǎo)出其編碼信息。
回到圖24,接下來判定時間不同的其它圖片的相同位置的相鄰的塊的編碼信息是否有效,并導(dǎo)出(S801)。該處理是與融合檢測部106中的編碼信息導(dǎo)出部310的步驟S103的處理基本同等的。在融合模式時,融合檢測部106中的編碼信息導(dǎo)出部310在進(jìn)行步驟S103的處理前,進(jìn)行了處理對象預(yù)測塊的參照圖片編號的導(dǎo)出(S102)。
與此不同,在運動估計模式的情況下,針對處理對象預(yù)測塊,由運動矢量估計部102進(jìn)行運動矢量估計,檢測出處理對象預(yù)測塊的運動矢量、參照圖片編號及參照列表。根據(jù)這些檢測出的處理對象預(yù)測塊的編碼信息和已知的時間不同的其它圖片的相同位置的相鄰的塊的編碼信息,基于各自的參照圖片編號導(dǎo)出要參照的圖片,將時間不同的其它圖片的相同位置的相鄰的塊的運動矢量換算成處理對象預(yù)測塊與其參照圖片的圖像間距離導(dǎo)出。
這樣得到的相鄰塊的編碼信息被輸入到參照候選列表生成部321。關(guān)于參照候選列表生成部321所生成的參照候選列表,是根據(jù)處理對象預(yù)測塊的Inter模式,針對L0預(yù)測和L1預(yù)測的兩個參照列表分別生成參照候選列表的。在Inter模式下,作為單向預(yù)測定義了L0預(yù)測和L1預(yù)測,作為雙預(yù)測定義了Bi-pred預(yù)測,在Bi-pred預(yù)測中,使用L0預(yù)測及L1預(yù)測的兩個參照列表。因此,根據(jù)編碼時的預(yù)測模式,可以對參照候選列表保存存儲器314設(shè)置1至2個參照候選列表,也可以預(yù)先設(shè)置L0預(yù)測和L1預(yù)測的兩個量的參照候選列表。在本說明書中,只要無特別注釋,就為說明方便而僅舉一者說明運動估計模式時的參照候選列表,圖示的參照候選列表也僅舉出1個。
在實施例1中,在參照候選列表保存存儲器324內(nèi)設(shè)置參照候選列表作為登錄參照相鄰塊的編碼信息的候選的保存區(qū)域。對該參照相鄰塊的編碼信息的候選賦予優(yōu)先順位,從優(yōu)先順位高者起向參照候選列表保存存儲器324登錄該參照相鄰塊的編碼信息的候選。由此,能削減參照候選列表的索引mvp_idx_l0及mvp_idx_l1的碼量。
通過將優(yōu)先順位高的要素配置在參照候選列表的前面,來削減碼量。從0起升序分配表示參照候選列表中的各要素的位置的索引。參照候選列表保存存儲器324內(nèi)所設(shè)的參照候選列表呈列表構(gòu)造,設(shè)有將表示參照候選列表內(nèi)部的所在的索引和與索引對應(yīng)的參照相鄰塊的編碼信息的候選作為要素來保存的排列區(qū)域。
該排列區(qū)域用candListLX來表示。索引的數(shù)字從0開始,在參照候選列表candListLX的保存區(qū)域內(nèi)保存參照相鄰塊的編碼信息的候選。在以后的處理中,登錄在參照候選列表candListLX中的索引i的編碼信息用candListLX[i]來表示,通過進(jìn)行排列標(biāo)記來與參照候選列表candListLX相區(qū)別。此外,保存到參照候選列表的保存區(qū)域的編碼信息在無特別說明的情況下用參照相鄰塊的位置名(A0,A1,B0,B1,C0,T)來表示。
參照候選列表生成部321的動作與融合檢測部106的參照候選列表生成部311是同等的,按運動估計模式下定義的順序A1,B1,A0,B0,C0,T判定表示編碼信息導(dǎo)出部320所得到的相鄰塊是否有效的標(biāo)志availableFlagLXN,若為1(有效),則登錄到參照候選列表保存存儲器324內(nèi)所設(shè)的參照候選列表中。
通過以上處理,被登錄于參照候選列表,若參照相鄰塊全部有效,則按圖20所示的順序生成參照候選列表。以優(yōu)先順位為索引,各碼字在參照候選列表的右列表示,最大碼字長為NumListCand-1。圖20中,NumListCand是6,碼字用最大5比特表示。若參照相鄰塊僅1個有效,則最大碼字長成為0,故無需碼字,該1個被判定為有效的相鄰塊的編碼信息的候選被唯一決定為參照目標(biāo)。
所生成的參照候選列表被輸入到相同信息檢測部322。在相同信息檢測部322中,比較參照候選列表中所保存的運動矢量,若存在具有相同運動矢量的候選,則除具有最小的參照候選列表索引的候選外將其都刪除。利用圖29所示的流程圖說明動作。
首先,將表示參照候選列表的索引的變量n和m分別設(shè)定為0和1(S1000)。比較參照候選列表中所保存的索引n和m的運動矢量(S1001)。若判定為不一致(S1001的N),則進(jìn)入步驟S1004。若判定為一致(S1001的Y),則判定n和m中索引較大者、即m是否已被記錄在刪除列表中(S1002)。
若m已被記錄在刪除列表中(S1002的Y),則進(jìn)入步驟S1004。若尚未記錄(S1002的N),則將m記錄在刪除列表中(S1003)。刪除列表是設(shè)于相同信息檢測部322內(nèi)的臨時保存用的存儲器。
然后使m加1進(jìn)行更新(S1004)。進(jìn)行m與候選列表總數(shù)NumListCand的比較(S1005)。若m非NumListCand(S1005的N),則反復(fù)進(jìn)行步驟S1001以后的與索引n的運動矢量的比較。若m已成為NumListCand(S1005的Y),則使n加1來更新(S1006)。
然后進(jìn)行n與(NumListCand-1)的比較(S1007)。若n非(NumListCand-1)(S1007的N),則將m設(shè)定為(n+1)(S1009),反復(fù)進(jìn)行步驟S1001以后的運動矢量的比較。若n已成為(NumListCand-1)(S1007的Y),則刪除與被記錄在刪除列表中的索引相應(yīng)的列表的保存區(qū)域的編碼信息,以索引0為基準(zhǔn),按索引由小到大的候選順序填充,并更新碼字和參照候選列表的總數(shù)NumListCand(S1008),結(jié)束處理。
差分運動矢量導(dǎo)出部326以這樣生成的參照候選列表中的編碼信息的運動矢量為預(yù)測運動矢量,根據(jù)運動矢量估計部102預(yù)測出的運動矢量和預(yù)測運動矢量導(dǎo)出差分運動矢量,并將導(dǎo)出的差分運動矢量提供給輸出部323。
最后,輸出部323輸出所生成的參照候選列表中的索引和差分運動矢量。參照候選列表將參照候選列表作為MVP列表,將列表中的索引作為MVP索引而輸出。在動圖像編碼裝置100中,被輸出到預(yù)測方法決定部107。
下面說明與上述動圖像編碼裝置100中所設(shè)置的實施例1的運動矢量預(yù)測部103對應(yīng)的、動圖像解碼裝置200中所設(shè)置的實施例1的運動矢量導(dǎo)出部204。圖30是表示運動矢量導(dǎo)出部204的詳細(xì)構(gòu)成的圖。圖30中粗虛線所包圍的部分表示運動矢量導(dǎo)出部204。運動矢量導(dǎo)出部204包括編碼信息導(dǎo)出部320、參照候選列表生成部321、相同信息檢測部322、參照候選列表保存存儲器324、選擇部325及運動矢量相加部327。
運動矢量導(dǎo)出部204對應(yīng)于動圖像編碼裝置100的運動矢量預(yù)測部103,其內(nèi)部構(gòu)成僅選擇部325、輸出部323及運動矢量相加部327不同,這以外的編碼信息導(dǎo)出部320、參照候選列表生成部321、相同信息檢測部322及參照候選列表保存存儲器324具有相同的功能。因此,在至相同信息檢測部322的處理中,生成與編碼過程相同的參照候選列表。
以下說明從所生成的參照候選列表取得運動估計模式下的參照相鄰塊的編碼信息的選擇部325。選擇部325從所生成的參照候選列表中選擇由第1編碼比特串解碼部202所解碼出的用于確定參照相鄰塊的索引所指定的參照候選列表的相鄰塊。從所選擇的列表的相鄰塊的編碼信息中將運動矢量作為預(yù)測運動矢量輸出,并在運動矢量相加部327中將預(yù)測運動矢量與第1編碼比特串解碼部202解碼出的差分運動矢量相加而導(dǎo)出運動矢量。將該運動矢量提供給運動補償預(yù)測部207,并將所選擇的參照候選列表的相鄰塊的編碼信息提供給編碼信息保存存儲器210。
(實施例2)
圖31的(a)、(b)中表示了實施例2中的相對于處理對象預(yù)測塊的參照相鄰塊的配置。各相鄰塊的記號同圖9的(a)、(b)是一樣的,在此使用圖31的(a)的配置例進(jìn)行說明。實施例2將與處理對象預(yù)測塊相同圖片上的相鄰塊分組成左側(cè)相鄰的塊群(在圖31的(a)中是A0和A1)、上側(cè)相鄰的塊群(在圖31的(a)中是B0、B1及C0),從各個塊群中選擇1個參照相鄰塊作為塊群的代表值。
作為選擇的方法,基于相鄰塊的編碼信息的預(yù)測模式及位置判定相鄰塊是否有效,這一點在實施例1、2中是同樣的,但在按塊群單位各選一個代表相鄰塊這一點上不同。將像這樣從由多個相鄰塊構(gòu)成的塊群中選出代表該塊群的相鄰塊的方法稱作掃描。通過該掃描,代表左側(cè)相鄰的塊群的相鄰塊、代表上側(cè)相鄰的塊群的相鄰塊、及時間不同的其它圖片的相同位置所相鄰的塊這3個相鄰塊被登錄在參照候選列表中。
因此,與實施例1相比,能削減登錄到參照候選列表中的相鄰塊的總數(shù),能削減相同信息檢測部312中的編碼信息的比較次數(shù)、及相同信息檢測部322中的運動矢量的比較次數(shù)。進(jìn)而,分配給參照候選列表的索引的碼字長度變短,能削減參照候選列表的索引的碼量。此外,通過根據(jù)預(yù)測模式變更左側(cè)及上側(cè)相鄰的塊群中的相鄰塊的處理順序,能選擇與預(yù)測模式相適的相鄰塊,能期待編碼效率的改善。
關(guān)于處理順序,在預(yù)測模式為融合模式時,融合檢測部106及融合判定部206如圖31的(a)、(b)中的細(xì)虛線箭頭那樣,對于左側(cè)相鄰的塊群按從上到下的順序進(jìn)行處理,對于上側(cè)相鄰的塊群,以左上的相鄰塊C0為最后、按B1,B0,C0的順序進(jìn)行處理。在預(yù)測模式為運動估計模式時,運動矢量預(yù)測部103及運動矢量導(dǎo)出部204如圖31的(a)、(b)中的細(xì)實線箭頭那樣,對于左側(cè)相鄰的塊群按從下到上的順序進(jìn)行處理,對于上側(cè)相鄰的塊群按從右至左的順序進(jìn)行處理。
在融合模式下,優(yōu)先對被認(rèn)為最可能與處理對象預(yù)測塊的編碼信息相同的相鄰塊A1,B1進(jìn)行判定處理和選擇,來提高編碼效率。另一方面,在運動估計模式下,為擴大預(yù)測運動矢量的選擇的寬度,優(yōu)先對左側(cè)和上側(cè)的候選間的距離較遠(yuǎn)的相鄰塊A0,B0進(jìn)行判定處理和選擇,以使得在左側(cè)和上側(cè)的相鄰塊的候選間容易出現(xiàn)編碼信息的差。由此,削減差分運動矢量的碼量,提高編碼效率。
以下,僅對實施例2的不同于實施例1的動作進(jìn)行詳細(xì)說明。首先,說明動圖像編碼裝置100中的融合檢測部106的動作。融合檢測部106具有與實施例1中所說明的圖11相同的構(gòu)成,但編碼信息導(dǎo)出部310的處理與實施例1不同,故說明實施例2中的編碼信息導(dǎo)出部310的動作。圖32是表示實施例2中的編碼信息導(dǎo)出部310的動作的流程圖。
首先,根據(jù)被輸入到開關(guān)108的由動圖像編碼裝置100控制的預(yù)測模式,幀間預(yù)測信息檢測部104的輸出目標(biāo)被切換為融合檢測部106,幀間預(yù)測信息檢測部104的內(nèi)部的臨時存儲器303中所保存的、處理對象預(yù)測塊參照的參照相鄰塊的編碼信息被輸入到編碼信息導(dǎo)出部310。
從所輸入的相鄰塊中判定與處理對象預(yù)測塊相同圖片內(nèi)的相鄰塊的編碼信息是否有效,并導(dǎo)出(S103)。圖33中表示了與處理對象預(yù)測塊相同圖片內(nèi)的各相鄰塊的判定處理的詳細(xì)流程。與實施例1的圖13所示的流程圖不同,步驟S210、步驟S211、步驟S212、步驟S213及步驟S214是新追加的處理,這以外與實施例1是同等的,故在此僅詳細(xì)說明所追加的處理。
首先,將塊群M初始化(S210)。在此,假定設(shè)定為左側(cè)相鄰的塊群,M被設(shè)定為表示左側(cè)的塊群的值A(chǔ)。然后,將塊群中的變量N初始化(S200)。變量N是根據(jù)上述塊群內(nèi)的處理順序而被設(shè)定的,在N更新時,假定在左側(cè)塊群中按A1,A0順序更新,在上側(cè)塊群中按B1,B0,C0的順序更新。
圖33中的步驟S201至步驟S209的處理基本上與實施例1的圖13是一樣的,但判定相鄰塊N的預(yù)測模式是否為畫面內(nèi)編碼(Intra)模式(S204)、相鄰塊N的預(yù)測模式非Intra模式時(S204的N)之后的處理與實施例1不同。
判定相鄰塊N的預(yù)測模式是否為畫面內(nèi)編碼(Intra)模式(S204),若相鄰塊N的預(yù)測模式非Intra模式(S204的N),則進(jìn)入M是否為左側(cè)塊群的判定(S211),若M是左側(cè)塊群(S211的Y),則將availableFlagM設(shè)定為“1”(S205),將相鄰塊N的編碼信息代入refIdxLXM、mvLXM及predFlagLXM來設(shè)定(S206)。僅在M為上側(cè)塊群時(S211的N),判定在左側(cè)塊群中選擇的相鄰塊的編碼信息與相鄰塊N的編碼信息是否相同(S212)。
由于首先選擇了代表左側(cè)塊群的相鄰塊,故保持有其編碼信息,使用于上側(cè)塊群的判定。通過該處理,就不會與代表左側(cè)塊群的相鄰塊的編碼信息相重復(fù),故作為參照目標(biāo),選項的范圍變廣。此外,為削減處理量,也可以省略步驟S211及步驟S212的處理,直接進(jìn)入步驟S205。
若左側(cè)塊群所選擇的相鄰塊的編碼信息與相鄰塊N的編碼信息不同、或不存在左側(cè)塊群所選擇的相鄰塊的編碼信息(S212的N),則將availableFlagM設(shè)定為“1”(S205),將相鄰塊N的編碼信息代入refIdxLXM、mvLXM及predFlagLXM來設(shè)定(S206)。
然后,在塊群M的編碼信息被設(shè)定后,為針對下一塊群、即針對上側(cè)相鄰的塊群進(jìn)行處理,判定變量M是否為表示上側(cè)塊群的值B(S213)。若M不是B(上側(cè))(S213的N),則將M更新為B(上側(cè))(S214),重復(fù)進(jìn)行步驟S200以后的處理。若M為上側(cè)(S213的Y),則結(jié)束處理。
若相鄰塊N非有效(S203的N),則在相鄰塊N的預(yù)測模式不是畫面內(nèi)編碼(Intra)模式時(S204的Y)、且左側(cè)塊群所選擇的相鄰塊的編碼信息與相鄰塊N的編碼信息相同時(S212的Y),將availableFlagM設(shè)定為“0”(S207),實施相鄰塊N是否為塊群M內(nèi)的最后的相鄰塊的判定(S208)。
變量N的更新被按上述塊群內(nèi)的處理順序設(shè)定,在此,判定N是否為A0(左側(cè)塊群時)或C0(上側(cè)塊群時)。若相鄰塊N是最后的塊(S208的Y),則進(jìn)入塊群M的判定(S213),若非如此(S208的N),則根據(jù)塊群內(nèi)的處理順序更新變量N(S209),并重復(fù)步驟S201以后的處理。如上這樣,作為代表存在于與處理對象預(yù)測塊相同圖片的塊群的相鄰塊的參照塊,其編碼信息被導(dǎo)出。
返回圖32,接下來,決定以時間不同的其它圖片為融合候選時的處理對象預(yù)測塊的參照圖片編號(S104)??梢灾苯永脤嵤├?中的步驟S101的處理,但在此,利用圖34的(a)、(b)說明基于之前處理(S103)所導(dǎo)出的相同圖片上的左側(cè)及上側(cè)相鄰的塊群的編碼信息的方法。
首先,被輸入在步驟S103中導(dǎo)出的表示左側(cè)相鄰的塊群A及上側(cè)相鄰的塊群B各自塊群的相鄰塊是否有效的標(biāo)志availableFlagM、參照圖片編號refIdxLXM。在此,M是A和B。
首先利用圖34的(a)說明左側(cè)的相鄰塊群A。查詢表示左側(cè)的相鄰塊群的相鄰塊是否有效的標(biāo)志availableFlagA(S1100)。若availableFlagA為1(S1100的Y),則設(shè)定左側(cè)的相鄰塊群的相鄰塊的參照圖片編號refIdxLXA,若非如此(S1100的N),則將refIdxLXA設(shè)定為-1。
同樣地,利用圖34的(b)說明上側(cè)的相鄰塊群B。查詢表示上側(cè)的相鄰塊群的相鄰塊是否有效的標(biāo)志availableFlagB(S1101)。若availableFlagB為1(S1101的Y),則設(shè)定上側(cè)的相鄰塊群的相鄰塊的參照圖片編號refIdxLXB,若非如此(S1101的N),則將refIdxLXB設(shè)定為-1。
基于這樣導(dǎo)出的各塊群的參照圖片編號refIdxLXM(M為A,B)的條件,決定時間不同的其它圖片的相同位置的相鄰塊的參照圖片編號refIdxLXCol。圖35中表示了基于參照圖片編號refIdxLXM的判定。圖35的第1行是refIdxLXA與refIdxLXB為相同的值,是不為-1的情況,選擇refIdxLXA。第2行是refIdxLXA與refIdxLXB為不同的值,是都不為-1的情況,選擇最小的參照圖片編號的值。第3行和第4行是其中一者為-1的情況,選擇不為-1的那一者。第5行是兩者都為-1的情況,此時設(shè)定“0”。如上這樣,處理對象預(yù)測塊的參照圖片編號被決定,但也可以采用該方法以外的方法。
回到圖32,接下來判定時間不同的其它圖片的相同位置的相鄰的塊的編碼信息是否有效,并導(dǎo)出(S102)。由于與實施例1的步驟S102是同樣的,故省略說明。這樣得到的相鄰塊的編碼信息被輸入?yún)⒄蘸蜻x列表生成部311。
在實施例2中也同實施例1一樣,在參照候選列表保存存儲器314中設(shè)置參照候選列表作為登錄參照相鄰塊的編碼信息的候選的保存區(qū)域,對參照相鄰塊的編碼信息的候選賦予優(yōu)先順位,從優(yōu)先順位高者起向參照候選列表登錄參照相鄰塊的編碼信息的候選。由此,削減參照候選列表的索引merge_idx的碼量。
參照候選列表生成部311進(jìn)行與實施例1同樣的動作,判定要參照的左側(cè)及上側(cè)的相鄰塊群、及時間不同的其它圖片的相同位置的相鄰的塊的有效標(biāo)志availableFlagM(在此,M為A,B,T),將相鄰塊的編碼信息登錄到參照候選列表candList中。在此,更新變量N的相鄰塊的順序成為向參照候選列表保存的優(yōu)先順位,在實施例2中,假定設(shè)定左側(cè)、上側(cè)、不同時間的相同順序(A,B,T)。
通過以上處理,若被登錄在參照候選列表中的參照相鄰塊全都有效,則按圖36所示的順序生成參照候選列表。以優(yōu)先順位為索引,各碼字被表示在參照候選列表的右列,最大碼字長度為2。在此,參照候選列表內(nèi)部的括號表示從左側(cè)或上側(cè)的相鄰塊群中、由編碼信息導(dǎo)出部310按括號內(nèi)的從左至右的順序處理、選擇的1個相鄰塊。
所生成的參照候選列表由相同信息檢測部312刪除掉編碼信息相同的被保存在參照候選列表中的編碼信息,輸出由參照候選列表生成部311生成的參照候選列表中的索引和編碼信息。關(guān)于參照候選列表,以參照候選列表為融合列表,將該列表中的索引作為融合索引而輸出。在動圖像編碼裝置100中,被輸出到運動補償預(yù)測部105和預(yù)測方法決定部107。
下面說明與上述動圖像編碼裝置100中所設(shè)置的實施例2的融合檢測部106對應(yīng)的、動圖像解碼裝置200中所設(shè)置的實施例2的融合判定部206。融合判定部206具有與實施例1中說明過的圖22相同的構(gòu)成,編碼信息導(dǎo)出部310的處理與實施例1不同。這之外的參照候選列表生成部311、相同信息檢測部312、參照候選列表保存存儲器314及選擇部315具有與實施例1相同的功能。
此外,實施例2中的融合判定部206的編碼信息導(dǎo)出部310具有與上述實施例2中的融合檢測部106的編碼信息導(dǎo)出部310相同的功能,故在直到實施例2中的融合判定部206的融合判定部206的相同信息檢測部312的處理中,生成與實施例2的融合檢測部106相同的參照候選列表。說明從所生成的參照候選列表在融合模式下取得參照相鄰塊的編碼信息的選擇部315。選擇部315從所生成的參照候選列表中選擇由第1編碼比特串解碼部202解碼出的、由確定參照相鄰塊的索引所指定的參照候選列表的相鄰塊。將所選擇的編碼信息提供給運動補償預(yù)測部207,并提供給編碼信息保存存儲器210。
接下來,說明在表示動圖像編碼裝置100的構(gòu)成的圖2中設(shè)置的實施例2的運動矢量預(yù)測部103。實施例2的運動矢量預(yù)測部103具有與實施例1中說明過的圖23相同的構(gòu)成,但編碼信息導(dǎo)出部320的處理與實施例1不同,故在實施例2中針對編碼信息導(dǎo)出部320的動作進(jìn)行說明。圖37是表示實施例2中的編碼信息導(dǎo)出部320的動作的流程圖。
首先,根據(jù)被輸入到開關(guān)108的由動圖像編碼裝置100控制的預(yù)測模式,幀間預(yù)測信息檢測部104的輸出目標(biāo)被切換為運動矢量預(yù)測部103。幀間預(yù)測信息檢測部104內(nèi)部的臨時存儲器303中所保存的處理對象預(yù)測塊參照的相鄰塊的編碼信息被輸入到編碼信息導(dǎo)出部320。從輸入的相鄰塊中判定并導(dǎo)出與處理對象預(yù)測塊相同圖片中的相鄰塊的編碼信息是否有效(S802)。圖38中表示了與處理對象預(yù)測塊相同圖片中的各相鄰塊的判定處理的詳細(xì)流程。
相對于實施例1的圖25所示的流程圖,步驟S913、步驟S914、步驟S915、步驟S916及步驟S917是新追加的處理,這以外與實施例1是同等的,故在此僅說明所追加的處理的詳細(xì)情況。
首先,將塊群的變量M初始化(S913)。在此,假定設(shè)定為左側(cè)相鄰的塊群,M被設(shè)定為表示左側(cè)塊群的值A(chǔ)。然后,將塊群中的變量N初始化(S900)。變量N是根據(jù)上述塊群內(nèi)的處理順序而設(shè)定的,在N更新時,假定左側(cè)塊群按A0,A1順序更新,上側(cè)按B0,B1,C0順序更新。之后的步驟S901至步驟S910的處理基本上與實施例1是同樣的,但在判定相鄰塊N的預(yù)測模式是否為畫面內(nèi)編碼(Intra)模式(S904)、相鄰塊N的預(yù)測模式非Intra模式時(S904的N)以后的處理方面,與實施例1不同。
判定相鄰塊N的預(yù)測模式是否為畫面內(nèi)編碼(Intra)模式(S904),若相鄰塊N的預(yù)測模式非Intra模式(S904的N),則進(jìn)入M是否為左側(cè)塊群的判定(S914),若M是左側(cè)塊群(S914的Y),則進(jìn)入步驟S905的處理。僅在M為上側(cè)塊群時(S914的N),判定在左側(cè)塊群中選擇的相鄰塊的運動矢量mvLXA與相鄰塊N的運動矢量是否相同(S915)。
由于最初選擇了代表左側(cè)塊群的相鄰塊,故保持有其運動矢量,用于上側(cè)塊群的判定。通過該處理,就不會有與代表左側(cè)塊群的相鄰塊的運動矢量重復(fù)的情況,故作為參照目標(biāo),選項的范圍擴大。此外,為削減處理量,還可以省略步驟S914及步驟S915的處理,直接進(jìn)入步驟S905。
若在左側(cè)塊群中選擇的相鄰塊的運動矢量mvLXA與相鄰塊N的運動矢量相同(S915的Y),則進(jìn)入步驟S908。若不同(S915的N),則判定在與處理對象預(yù)測塊的導(dǎo)出對象的預(yù)測相同的參照列表中,是否在相鄰塊N中也進(jìn)行了使用相同的參照圖片編號的預(yù)測(S905)。
若在與使用了處理對象預(yù)測塊的導(dǎo)出對象的運動矢量的預(yù)測相同的參照列表中,在相鄰塊N也進(jìn)行了使用相同的參照圖片編號的預(yù)測(S905的Y),則將availableFlagLXN設(shè)定為“1”(S906),將相鄰塊N的運動矢量代入mvLXM來設(shè)定(S907)。在塊群M的運動矢量被設(shè)定后,為針對下一塊群、即上側(cè)相鄰的塊群進(jìn)行處理,判定變量M是否為表示上側(cè)塊群的值B(S916)。若M非B(上側(cè))(S916的N),則將M更新為B(上側(cè))(S917),重復(fù)步驟S900以后的處理。若M為B(上側(cè))(S916的Y),則結(jié)束處理。
若相鄰塊N非有效(S903的N),則在相鄰塊N的預(yù)測模式不是畫面內(nèi)編碼(Intra)模式(S904的Y)、在左側(cè)塊群中選擇的相鄰塊的運動矢量mvLXA與上側(cè)塊群的相鄰塊N的運動矢量相同(S915的Y)、沒有進(jìn)行在相同的參照列表中使用了相同的參照圖片編號的預(yù)測的情況下(S905的N),將availableFlagLXM設(shè)定為“0”(S908),實施相鄰塊N是否為塊群M內(nèi)的最后的相鄰塊的判定(S909)。變量N的更新是根據(jù)上述塊群內(nèi)的處理順序設(shè)定的,在此,進(jìn)行N是否為A1(左側(cè)塊群時)或C0(上側(cè)塊群時)的判定。
若相鄰塊N是最后的塊(S909的Y),則進(jìn)入塊群M的判定(S916)。若非如此(S909的N),則根據(jù)塊群內(nèi)的處理順序更新變量N(S910),重復(fù)步驟S901以后的處理。如上這樣,作為存在于與處理對象預(yù)測塊相同圖片上的代表塊群的相鄰塊的參照塊,其編碼信息被導(dǎo)出。
在實施例2中同實施例1一樣,在相鄰塊所被進(jìn)行的預(yù)測滿足以下條件時,也能使表示相鄰塊是否有效的標(biāo)志availableFlagLXM成為1(有效),并作為參照相鄰塊的候選,導(dǎo)出其編碼信息。
條件1:相同的參照列表、相同的參照圖片編號
條件2:不同的參照列表、相同的參照圖片編號
條件3:相同的參照列表、不同的參照圖片編號
條件4:不同的參照列表、不同的參照圖片編號
圖39表示此時的處理的流程。與上述圖38不同之處在于,刪除了步驟S905的僅條件1的條件判定,進(jìn)行步驟S911的條件1至4的條件判定,并在滿足條件1或2時追加了運動矢量的縮放處理(S912)。
首先,將塊群的變量M初始化(S913)。在此,假定設(shè)定為左側(cè)相鄰的塊群,M被設(shè)定為A。然后,將塊群中的變量N初始化(S900)。變量N是根據(jù)上述塊群內(nèi)的處理順序而設(shè)定的,在N更新時,左側(cè)塊群按A0,A1順序更新,上側(cè)塊群按B0,B1,C0順序更新。以后的步驟S901至步驟S910的處理基本上與實施例1的圖26一樣。判定相鄰塊N的預(yù)測模式是否為畫面內(nèi)編碼(Intra)模式(S904),相鄰塊N的預(yù)測模式非Intra模式時(S904的N)之后的處理與實施例2的圖38不同。
若相鄰塊N的預(yù)測模式不是Intra模式(S904的N)、即為Inter模式,則通過比較處理對象預(yù)測塊的導(dǎo)出對象的預(yù)測的編碼信息和相鄰塊N的編碼信息來進(jìn)行條件1至4的判定處理(S911)。若滿足條件1或條件2,則進(jìn)入M是否為左塊群的判定處理(S914)。另一方面,在滿足條件3或條件4時,同實施例1的圖26的S912一樣,實施相鄰塊N的運動矢量的縮放處理(S912),進(jìn)入M是否為左塊群的判定處理(S914)。
若M是左側(cè)塊群(S914的Y),則將availableFlagLXM設(shè)定為“1”(S906)。若M是上側(cè)塊群(S914的N),則判定左側(cè)塊群中選擇的相鄰塊的運動矢量mvLXA與相鄰塊N的運動矢量是否相同(S915)。此外,為削減處理量,也可以省略步驟S914及步驟S915的處理,直接進(jìn)入步驟S906。
若左側(cè)塊群中選擇的相鄰塊的運動矢量mvLXA與相鄰塊N的編碼信息相同(S915的Y),則將availableFlagLXN設(shè)定為“0”(S908),若不同(S915的N),則將availableFlagLXM設(shè)定為“1”(S906)。
同實施例1的圖26的步驟S907一樣,將相鄰塊N的相同參照列表(符合條件1時)的運動矢量mvLX或不同參照列表(符合條件2時)的運動矢量mvLY、或者相同參照列表(符合條件3時)的通過縮放而換算出的運動矢量mvLX或不同參照列表(符合條件4時)的通過縮放而換算出的運動矢量mvLY代入mvLXM進(jìn)行設(shè)定(S907)。
塊群M的運動矢量被設(shè)定后,為針對下一塊群、即上側(cè)相鄰的塊群進(jìn)行處理,判定變量M是否為上側(cè)(S916)。若M不是上側(cè)(S916的N),則將M更新為B(上側(cè))(S917),重復(fù)步驟S900以后的處理。若M是上側(cè)(S916的Y),則結(jié)束處理。
在將availableFlagLXM設(shè)定為“0”時(S908),實施相鄰塊N是否為塊群M內(nèi)的最后的相鄰塊的判定(S909)。變量N的更新根據(jù)上述塊群內(nèi)的處理順序而設(shè)定,在此判定N是否為A1(左側(cè)塊群時)或C0(上側(cè)塊群時)。若相鄰塊N是最后的塊(S909的Y),則進(jìn)入塊群M的判定(S916),若非如此(S909的Y),則根據(jù)塊群內(nèi)的處理順序更新變量N(S910),重復(fù)步驟S901以后的處理。如上這樣,作為與處理對象預(yù)測塊相同圖片上存在的代表塊群的相鄰塊的參照塊,其運動矢量被導(dǎo)出。
回到圖37,接下來,判定時間不同的其它圖片的相同位置的相鄰的塊的編碼信息是否有效,并導(dǎo)出(S801)。這與實施例1的步驟S801是同樣的,故省略說明。這樣得到的相鄰塊的編碼信息被輸入到參照候選列表生成部321。關(guān)于參照候選列表生成部321所生成的參照候選列表,針對L0預(yù)測及L1預(yù)測這兩個參照列表分別生成參照候選列表。在本說明書中,只要無特別注釋,運動估計模式時的參照候選列表為說明方便都僅舉1個來進(jìn)行說明,圖示的參照候選列表也僅舉1者。
在實施例2中,在參照候選列表保存存儲器324中設(shè)置參照候選列表作為登錄參照相鄰塊的編碼信息的候選的保存區(qū)域。對參照相鄰塊的編碼信息的候選賦予優(yōu)先順位,從優(yōu)先順位高者起向參照候選列表保存存儲器324登錄參照相鄰塊的編碼信息的候選。由此,能削減參照候選列表的索引mvp_idx_l0及mvp_idx_l1的碼量。
通過將優(yōu)先順位高的要素配置在參照候選列表的前面,來削減碼量。表示優(yōu)先順位的索引是從0起升序分配的。參照候選列表保存存儲器324中所設(shè)的參照候選列表呈列表構(gòu)造,設(shè)有將表示參照候選列表內(nèi)部的所在的索引、和與索引對應(yīng)的參照相鄰塊的編碼信息的候選作為要素來保存的排列區(qū)域。該排列區(qū)域用candListLX表示。索引的數(shù)字從0開始,在參照候選列表candListLX的保存區(qū)域中保存參照相鄰塊的編碼信息的候選。在以后的處理中,參照候選列表candListLX中所登錄的索引i的編碼信息用candListLX[i]來表示,通過進(jìn)行排列標(biāo)記,來與參照候選列表candListLX相區(qū)別。此外,被保存到參照候選列表的保存區(qū)域的編碼信息在無特別限制的情況下,用參照相鄰塊的位置名(A0,A1,B0,B1,C0,T)來表示。
參照候選列表生成部321進(jìn)行與實施例1同樣的動作,判定要參照的左側(cè)及上側(cè)的相鄰塊群、時間不同的其它圖片的相同位置的相鄰的塊的有效標(biāo)志availableFlagLXM(在此,M為A,B,T),并將相鄰塊的編碼信息登錄到參照候選列表candListLX中。在此,更新變量N的相鄰塊的順序成為向參照候選列表保存的優(yōu)先順位,在實施例2中,假定設(shè)定左側(cè)、上側(cè)、不同時間的相同順序(A,B,T)。通過以上處理,若參照候選列表中所登錄的參照相鄰塊全都有效,則按圖40所示的順序生成參照候選列表。
以優(yōu)先順位為索引,各碼字被表示在參照候選列表的右列,最大碼字長度為2。在此,參照候選列表內(nèi)部的括號表示從左側(cè)或上側(cè)的相鄰塊群中、由編碼信息導(dǎo)出部320按括號內(nèi)的從左至右的順序處理并選擇的1個相鄰塊。若參照相鄰塊僅1個有效,則最大碼字長度成為0,故不需要碼字,那1個被判定有效的相鄰塊的編碼信息的候選就被唯一決定為參照目標(biāo)。
關(guān)于所生成的參照候選列表,在相同信息檢測部322中將成為相同編碼信息的參照候選列表中所保存的編碼信息刪除,并將在差分運動矢量導(dǎo)出部326中生成的參照候選列表中的編碼信息的運動矢量作為預(yù)測運動矢量,根據(jù)運動矢量估計部102估計出的運動矢量和預(yù)測運動矢量導(dǎo)出差分運動矢量,將所導(dǎo)出的差分運動矢量提供給輸出部323。
最后,輸出部323輸出所生成的參照候選列表中的索引和差分運動矢量。參照候選列表將參照候選列表作為MVP列表,將列表中的索引作為MVP索引而輸出。在動圖像編碼裝置100中,被輸出給預(yù)測方法決定部107。
說明與上述動圖像編碼裝置100中設(shè)置的實施例2的運動矢量預(yù)測部103對應(yīng)的、動圖像解碼裝置200中所設(shè)置的實施例2的運動矢量導(dǎo)出部204。運動矢量導(dǎo)出部204具有與圖30相同的構(gòu)成,編碼信息導(dǎo)出部320的處理與實施例1不同。這之外的參照候選列表生成部321、相同信息檢測部322、參照候選列表保存存儲器324、選擇部325及運動矢量相加部327具有與實施例1相同的功能。
另外,編碼信息導(dǎo)出部320具有與上述實施例2中的運動矢量預(yù)測部103的編碼信息導(dǎo)出部320相同的功能,故在至運動矢量導(dǎo)出部204的相同信息檢測部322的處理中,生成與實施例2的運動矢量預(yù)測部103相同的參照候選列表。針對從所生成的參照候選列表中、在運動估計模式下取得參照相鄰塊的編碼信息的選擇部325進(jìn)行說明。選擇部325從所生成的參照候選列表中選擇由第1編碼比特串解碼部202所解碼出的用于確定參照相鄰塊的索引所指定的參照候選列表的相鄰塊。從所選擇的參照候選列表的相鄰塊的編碼信息中,將運動矢量作為預(yù)測運動矢量輸出,并在運動矢量相加部327中將預(yù)測運動矢量與由第1編碼比特串解碼部202解碼出的差分運動矢量相加,導(dǎo)出運動矢量,提供給運動補償預(yù)測部207,并將所選擇的列表的相鄰塊的編碼信息提供給編碼信息保存存儲器210。
此外,在實施例2中,是從各塊群中選擇1個相鄰塊作為參照相鄰塊的代表的,但也可以選出多個相鄰塊。但要在不超過塊群中的塊數(shù)的范圍內(nèi)設(shè)定。
(實施例3)
在實施例3中,根據(jù)預(yù)測模式而改變參照相鄰塊的選擇方法。利用圖31的(a)的相鄰塊的配置進(jìn)行說明。在融合模式下,從6個相鄰塊A0,A1,B0,B1,C0,T中選擇1個相鄰塊的編碼信息作為參照目標(biāo)。在運動估計模式下將6個相鄰塊A0,A1,B0,B1,C0,T中的A0和A1分類成左側(cè)相鄰的塊群,將B0、B1和C0分類成上側(cè)相鄰的塊群,從各塊群中選擇一個1個作為代表相鄰塊。從左側(cè)及上側(cè)相鄰的塊群的各代表塊和T這三個相鄰塊中選擇1個相鄰塊的編碼信息作為參照目標(biāo)。即,是分別將實施例1的方法適用于融合模式、將實施例2的方法適用于運動估計模式的融合方法。
在融合模式下,直接利用參照相鄰塊的候選的編碼信息進(jìn)行圖像間預(yù)測,故為留有選擇的余地,向列表中登錄比運動估計模式更多的候選。這是由于融合模式與運動估計模式相比,能用很少的碼量傳輸較多的信息(運動矢量、參照索引、參照列表),與其削減融合索引的碼量,保留相鄰塊的候選來擴展選擇的范圍更能提高編碼效率。另一方面,在運動估計模式下,不是直接使用參照相鄰塊的候選的編碼信息,而是對差分運動矢量等編碼信息進(jìn)行編碼,故進(jìn)行掃描,縮小候選范圍登錄于列表。這是因為,通過縮小候選范圍來削減MVP索引的碼量,更能提高編碼效率。
關(guān)于實施例3中生成的候選列表,參照相鄰塊全都有效時,按預(yù)測模式分別如圖41那樣表示。在融合檢測部106及運動矢量預(yù)測部103中分別生成參照候選列表,候選列表總數(shù)也不同,故碼字在第3項之后是不同的,但由于是分別作為最佳的碼字而生成的,故能期待編碼效率的改善。此外,雖然碼字長度會變長,但也可以使運動估計模式的碼字“11”(2進(jìn)制數(shù)表示)成為同行的融合模式的“110”(2進(jìn)制數(shù)表示),來使出現(xiàn)的碼字的種類共通化。
(實施例4)
實施例4是從與處理對象預(yù)測塊相同圖片上的相鄰塊(以下記作空間相鄰塊)中選擇2個塊作為代表相鄰塊的方法。此點與實施例2是同樣的,但在實施例2中,將空間相鄰塊分成2個塊群來定義,按塊群單位各選出1個代表相鄰塊。在實施例4中,將空間相鄰塊整體作為1個塊群,從中選出2個代表相鄰塊,在這一點上不同。
同實施例2一樣,與處理對象預(yù)測塊同一圖片上的代表相鄰塊的2個相鄰塊、和時間不同的其它圖片的相同位置的相鄰塊這三個相鄰塊被登錄到參照候選列表中。由于與實施例1相比能削減登錄到參照候選列表中的相鄰塊的總數(shù),故能削減相同信息檢測部312中的編碼信息的比較次數(shù)、相同信息檢測部322中的運動矢量的比較次數(shù)。并且,分配給參照候選列表的索引的碼字長度變短,能削減參照候選列表的索引的碼量。此外,通過根據(jù)預(yù)測模式來變更相鄰塊的選出處理順序,能選擇適于預(yù)測模式的相鄰塊,能期待編碼效率的改善。
關(guān)于處理順序,在預(yù)測模式為融合模式時,融合檢測部106及融合判定部206按圖9的(a)的A1,B1,B0,A0,C0(或B1,A1,A0,B0,C0)的順序進(jìn)行處理。在運動估計模式時,運動矢量預(yù)測部103及運動矢量導(dǎo)出部204按圖9的(a)的B0,A0,A1,B1,C0(或A0,B0,B1,A1,C0)的順序進(jìn)行處理。
在融合模式下,優(yōu)先選擇相鄰塊A1,B1登錄于候選列表。這是由于相鄰塊A1,B1的邊與處理對象預(yù)測塊相接,故與其它相鄰塊(A0,B0,C)相比,處理對象預(yù)測塊與編碼信息相等的可能性較高,登錄可能性高的候選有助于融合模式下的編碼效率的提高。另一方面,在運動估計模式下,優(yōu)先選擇相鄰塊A0,B0登錄于候選列表。相鄰塊A0,B0是相鄰塊中候選間的距離最遠(yuǎn)的,能登錄不同性質(zhì)的運動矢量的可能性較高,能擴展預(yù)測運動矢量的選擇范圍。由此,在傳輸差分運動矢量時不易產(chǎn)生大碼量,有助于運動估計模式時的編碼效率的提高。
實施例4的動圖像編碼裝置100及動圖像解碼裝置200的構(gòu)成與實施例1、2相同。另外,實施例4的動作除圖11及圖22的編碼信息導(dǎo)出部310、圖23及圖30的編碼信息導(dǎo)出部320的動作外、與實施例2相同。以下僅針對與實施例2不同的實施例4的動作進(jìn)行詳細(xì)說明。
首先,說明動圖像編碼裝置中的融合檢測部106的動作。融合檢測部106具有與實施例2的圖11相同的構(gòu)成,但編碼信息導(dǎo)出部310的處理與實施例2不同,故針對實施例4中的編碼信息導(dǎo)出部310的動作進(jìn)行說明。圖42是表示實施例4中的編碼信息導(dǎo)出部310的動作的流程圖。
首先,根據(jù)被輸入到開關(guān)108的由動圖像編碼裝置100控制的預(yù)測模式,幀間預(yù)測信息檢測部104的輸出目標(biāo)被切換為融合檢測部106,幀間預(yù)測信息檢測部104內(nèi)部的臨時存儲器303中所保存的、處理對象預(yù)測塊參照的相鄰塊的編碼信息被輸入到編碼信息導(dǎo)出部310。
從所輸入的相鄰塊中判定與處理對象預(yù)測塊同一圖片內(nèi)的相鄰塊的編碼信息是否有效,并導(dǎo)出2個相鄰塊(S105)。圖43中表示與處理對象預(yù)測塊同一圖片內(nèi)的各相鄰塊的判定處理的詳細(xì)流程。
首先,將表示所選擇的相鄰塊的變量F設(shè)定為S0,將計數(shù)值k設(shè)定為0(S1600)。表示所選擇的相鄰塊的變量F的S0表示首先選出的第1候選的相鄰塊,S1表示其次選出的第2候選的相鄰塊。
接下來,將表示處理中的相鄰塊的變量N初始化為A1(S1601)。假定表示處理中的相鄰塊的變量N被按A1,B1,B0,A0,C0的處理順序設(shè)定,在N更新時按該順序更新。
然后,將保存要在以后的判定中使用的相鄰塊的編碼信息的變量初始化(S1602)。在此,變量是表示相鄰塊是否有效的標(biāo)志availableFlagF、運動矢量mvLXF、參照圖片編號refIdxLXF及表示預(yù)測方向的有效性的標(biāo)志predFlagLXF,被如下這樣初始化。
availableFlagF=0
mvLXF=(0,0)
refIdxLXF=0
predFlagLXF=0
在此,后綴X被設(shè)定為表示預(yù)測方向的0或1。取得表示處理中的相鄰塊的變量N的相鄰塊(以下稱作相鄰塊N)的位置及編碼信息(S1603)。
基于所取得的相鄰塊N的位置,判定相鄰塊N是否有效(S1604)。例如當(dāng)處理對象預(yù)測塊位于圖片左端時,由于不存在處理對象預(yù)測塊左邊的相鄰塊,故編碼信息保存存儲器114中沒有相應(yīng)的編碼信息,被判定為無效。
當(dāng)相鄰塊N無效時(S1604的N),將availableFlagF設(shè)定為“0”(S1613)。若相鄰塊N有效(S1604的Y),則判定相鄰塊N的預(yù)測模式是否為畫面內(nèi)編碼(Intra)模式(S1605),若相鄰塊N的預(yù)測模式為Intra模式(S1605的Y),則將availableFlagF設(shè)定為“0”(S1613)。
若相鄰塊N的預(yù)測模式不是Intra模式(S1605的N)、即是Inter模式,則進(jìn)入F是否為S0的判定(S1606),若F是S0(S1606的Y),則將availableFlagF(availableFlagS0)設(shè)定為1(S1608)。
若F不是S0(S1606的N),則判定已選擇的相鄰塊的編碼信息與相鄰塊N的編碼信息是否相同(S1607)。若已選擇的相鄰塊的編碼信息與相鄰塊N的編碼信息相同(S1607的Y),則將availableFlagF設(shè)定為“0”(S1613)。
具體來說,將空間相鄰塊的最大數(shù)定為2時,保持好首先作為第1候選而選擇的編碼信息,用于選出第2候選時的比較判定。通過該處理,第2候選的相鄰塊的編碼信息就不會與代表的第1候選的相鄰塊的編碼信息相重復(fù),故能選擇更多的候選作為參照目標(biāo)。此外,為削減處理量,也可以省略步驟S1606及步驟S1607的處理,直接進(jìn)入步驟S1608。
若被選為第1候選的相鄰塊的編碼信息與相鄰塊N的編碼信息不同(S1607的N),則將availableFlagF(availableFlagS1)設(shè)定為“1”(S1608)。然后,將相鄰塊N的編碼信息代入refIdxLXF、mvLXF及predFlagLXF進(jìn)行設(shè)定(S1609)。
然后,使計數(shù)值k加1來更新(S1610),判定計數(shù)值k是否小于空間候選的最大候選數(shù)2(S1611)。若計數(shù)值k為空間候選的最大候選數(shù)2(S1611的Y),則將表示所選擇的空間相鄰塊的候選數(shù)的變量NumListCand設(shè)定為k(S1616),結(jié)束處理。
將availableFlagF設(shè)定為“0”時(S1613),判定相鄰塊N是否為最后的相鄰塊(S1614)。此外,若k比空間候選的最大候選數(shù)2小(S1611的N),則將F更新為S1(S1612),判定相鄰塊N是否為最后的相鄰塊(S1614)。變量N的更新是根據(jù)上述的A1,B1,B0,A0,C0的處理順序而設(shè)定的,在此,判定N是否為C0。
若相鄰塊N是最后的塊(S1614的Y),則將表示所選擇的空間相鄰塊的候選數(shù)的變量NumListCand設(shè)定為k(S1616),結(jié)束處理。若相鄰塊N不是最后的塊(S1614的N),則根據(jù)A1,B1,B0,A0,C0的處理順序更新變量N(S1615),并重復(fù)步驟S1602以后的處理。如上這樣,作為存在于與處理對象預(yù)測塊相同圖片上的塊群的代表相鄰塊的2個參照塊,各自的編碼信息被導(dǎo)出。
回到圖42,在步驟S105后,決定以時間不同的其它圖片的相同位置的相鄰的塊的編碼信息為候選時的、處理對象預(yù)測塊的參照圖片編號(S104)。該步驟S104的處理與實施例1、2的步驟S104是同樣的。然后,判定時間不同的其它圖片的相同位置的相鄰的塊的編碼信息是否有效,并導(dǎo)出(S102)。該實施例4的步驟S102的處理也與實施例1、2的步驟S102是同樣的。
這樣得到的相鄰塊的編碼信息被輸入到參照候選列表生成部311。在實施例4中也與實施例2一樣,在參照候選列表保存存儲器314中設(shè)置參照候選列表作為登錄參照相鄰塊的編碼信息的候選的保存區(qū)域。對參照相鄰塊的編碼信息的候選賦予優(yōu)先順位,從優(yōu)先順位高者起向參照候選列表登錄參照相鄰塊的編碼信息的候選。由此削減參照候選列表的索引merge_idx的碼量。
參照候選列表生成部311進(jìn)行與圖19的流程圖所示的實施例1、2同樣的動作。但將實施例4的變量F的值作為圖19的變量N的值來設(shè)定,使之進(jìn)行動作。判定空間的第1候選的相鄰塊S0、空間的第2候選的相鄰塊S1、及時間不同的其它圖片的相同位置的相鄰的塊T的有效標(biāo)志availableFlagN(在此,N為S0,S1,T),將相鄰塊的編碼信息登錄于參照候選列表candList。這里,更新變量N的相鄰塊的順序成為向參照候選列表保存的優(yōu)先順位,在實施例4中,假定按相同時間的第1候選、相同時間的第2候選、不同時間的同一順序(S0,S1,T)的順序來進(jìn)行設(shè)定。
同實施例1、2一樣,關(guān)于所生成的參照候選列表,在相同信息檢測部312中刪除成為相同編碼信息的參照候選列表中所保存的編碼信息,由輸出部313輸出所生成的參照候選列表中的索引和編碼信息。關(guān)于參照候選列表,將參照候選列表作為融合列表,將列表中的索引作為融合索引而輸出。在動圖像編碼裝置100中,被輸出到運動補償預(yù)測部105和預(yù)測方法決定部107。
針對與上述動圖像編碼裝置100中設(shè)置的實施例4的融合檢測部106對應(yīng)的、動圖像解碼裝置200中設(shè)置的實施例4的融合判定部206進(jìn)行說明。融合判定部206具有與實施例2的圖22相同的構(gòu)成,編碼信息導(dǎo)出部310的處理與實施例2不同。這之外的參照候選列表生成部311、相同信息檢測部312、參照候選列表保存存儲器314及選擇部315具有與實施例2相同的功能。
此外,融合判定部206的編碼信息導(dǎo)出部310具有與上述實施例4中的融合檢測部106的編碼信息導(dǎo)出部310相同的功能,融合判定部206的參照候選列表生成部311具有與上述實施例4中的融合檢測部106的參照候選列表生成部311相同的功能,融合判定部206的相同信息檢測部312具有與上述實施例4中的融合檢測部106的相同信息檢測部312相同的功能,故通過至融合判定部206的相同信息檢測部312的處理,生成與實施例4的融合檢測部106相同的參照候選列表。
同實施例2一樣,在選擇部315中,從生成的參照候選列表中選擇由第1編碼比特串解碼部202解碼出的確定參照相鄰塊的索引所指定的參照候選列表的相鄰塊。將所選擇的編碼信息提供給運動補償預(yù)測部207,并提供給編碼信息保存存儲器210。
接下來,說明表示動圖像編碼裝置100的構(gòu)成的圖2中設(shè)置的實施例4的運動矢量預(yù)測部103。運動矢量預(yù)測部103具有與實施例2的圖23相同的構(gòu)成,但編碼信息導(dǎo)出部320的處理與實施例2不同,故下面說明實施例4中的編碼信息導(dǎo)出部320的動作。圖44是表示實施例4中的編碼信息導(dǎo)出部320的動作的流程圖。
首先,根據(jù)被輸入到開關(guān)108的由動圖像編碼裝置100控制的預(yù)測模式,幀間預(yù)測信息檢測部104的輸出目標(biāo)被切換為運動矢量預(yù)測部103。幀間預(yù)測信息檢測部104內(nèi)部的臨時存儲器303中所保存的、處理對象預(yù)測塊參照的相鄰塊的編碼信息被輸入到編碼信息導(dǎo)出部320。
從所輸入的相鄰塊中判定與處理對象預(yù)測塊同一圖片上的相鄰塊的編碼信息是否有效,并導(dǎo)出2個相鄰塊(S803)。圖45表示與處理對象預(yù)測塊同一圖片上的各相鄰塊的判定處理的詳細(xì)流程。根據(jù)處理對象塊的預(yù)測模式,在L0預(yù)測時進(jìn)行圖45所示的處理,在L1預(yù)測時進(jìn)行圖45所示的處理,在L0預(yù)測和L1預(yù)測的雙預(yù)測時分別進(jìn)行圖45所示的處理。
首先,將空間候選索引F設(shè)定為S0,將計數(shù)值k設(shè)定為0(S1700)。空間候選索引F的S0表示首先選出的第1候選的相鄰塊,S1表示其次選出的第2候選的相鄰塊。
然后,將塊群中的變量N初始化為A1(S1701)。表示處理中的相鄰塊的變量N根據(jù)B0,A0,A1,B1,C0的處理順序而被設(shè)定,在N更新時按該順序被更新。
然后,將保持以后判定中要使用的相鄰塊的編碼信息的變量初始化(S1702)。在此,變量是表示相鄰塊是否有效的標(biāo)志availableFlagF、運動矢量mvLXF、參照圖片編號refIdxLXF及表示預(yù)測方向的有效性的標(biāo)志predFlagLXF,被如下這樣初始化。
availableFlagLXF=0
mvLXF=(0,0)
refIdxLXF=0
predFlagLXF=0
這里,后綴X被設(shè)定為表示預(yù)測方向的0或1。取得表示處理中的相鄰塊的變量N的相鄰塊(以下稱作相鄰塊N)的位置及編碼信息(S1703)。
基于所取得的相鄰塊N的位置,判定相鄰塊N是否有效(S1704)。例如,當(dāng)處理對象預(yù)測塊位于圖片左端時,由于不存在處理對象預(yù)測塊左邊的相鄰塊,故編碼信息保存存儲器114中沒有相應(yīng)的編碼信息,被判定為無效。
若相鄰塊N無效(S1704的N),則將availableFlagLXF設(shè)定為“0”(S1715)。若相鄰塊N有效(S1704的Y),則判定相鄰塊N的預(yù)測模式是否為畫面內(nèi)編碼(Intra)模式(S1705),若相鄰塊N的預(yù)測模式是Intra模式(S1705的Y),則將availableFlagLXF設(shè)定為“0”(S1715)。
若相鄰塊N的預(yù)測模式不是Intra模式(S1705的N)、即是Inter模式,則通過比較處理對象預(yù)測塊的導(dǎo)出對象的預(yù)測和相鄰塊N的編碼信息,來進(jìn)行條件1至4的判定處理(S1709)。當(dāng)滿足條件1或條件2時,進(jìn)入F是否為S0的判定處理(S1706)。另一方面,若滿足條件3或條件4,則同實施例2的圖39的S912一樣,實施相鄰塊N的運動矢量的縮放處理(S1710),進(jìn)入F是否為S0的判定處理(S1706)。
若F為S0(S1706的Y),則將availableFlagLXF(availableFlagLXS0)設(shè)定為1(S1708)。若F不是S0(S1706的N),則判定已選擇的相鄰塊的運動矢量與相鄰塊N的運動矢量或相鄰塊N的運動矢量被縮放后的運動矢量mvLXN是否相同(S1707)。
若已選擇的相鄰塊的運動矢量與相鄰塊N的運動矢量相同(S1707的Y),則將availableFlagLXF設(shè)定為“0”(S1715)。具體來說,在將空間相鄰塊的最大數(shù)定為2時,保持最初被選為第1候選的運動矢量,用于選出第2候選時的比較判定。通過該處理,第2候選的相鄰塊的編碼信息就不會與代表的第1候選的相鄰塊的運動矢量重復(fù),故作為參照目標(biāo),選項的范圍較廣。另外,為削減處理量,也可以省略步驟S1706及步驟S1707的處理,直接進(jìn)入步驟S1708,將availableFlagLXF(availableFlagLXS1)設(shè)定為“1”(S1708)。
若被選為第1候選的相鄰塊的運動矢量mvLXS0與相鄰塊N的運動矢量mvLXN不同(S1707的N),則將availableFlagLXF(availableFlagLXS1)設(shè)定為“1”(S1708)。將相鄰塊N的相同參照列表(符合條件1時)的運動矢量mvLX或不同參照列表(符合條件2時)的運動矢量mvLY、或者相同參照列表(符合條件3時)的通過縮放而換算出的運動矢量mvLX或不同參照列表(符合條件4)的通過縮放而換算出的運動矢量mvLY代入mvLXM來設(shè)定(S1711)。
使計數(shù)值k加1來更新(S1712),判定計數(shù)值k是否小于空間候選的最大候選數(shù)2(S1713)。若計數(shù)值k是空間候選的最大候選數(shù)2(S1713的N),則將表示所選擇的空間相鄰塊的候選數(shù)的變量NumListCand設(shè)定為k(S1718),結(jié)束處理。
在將availableFlagF設(shè)定為“0”時(S1715),判定相鄰塊N是否為最后的相鄰塊(S1716)。此外,若k小于空間候選的最大候選數(shù)2(S1713的Y),則將F更新為S1(S1714),實施相鄰塊N是否為最后的相鄰塊的判定(S1716)。
變量N的更新被根據(jù)上述的B0,A0,A1,B1,C0的處理順序設(shè)定,在此,判定N是否為C0。若相鄰塊N是最后的塊(S1716的Y),則將表示所選擇的空間相鄰塊的候選數(shù)的變量NumListCand設(shè)定為k(S1718),結(jié)束處理。若相鄰塊N不是最后的塊(S1716的N),則根據(jù)B0,A0,A1,B1,C0的處理順序更新變量N(S1717),并重復(fù)步驟S1702以后的處理。如上這樣,作為代表存在于與處理對象預(yù)測塊相同圖片上的塊群的相鄰塊的參照塊,其編碼信息被導(dǎo)出。
回到圖44,接下來,判定時間不同的其它圖片的相同位置的相鄰的塊的編碼信息是否有效,并導(dǎo)出(S801)。該實施例4的S801的處理與實施例1的S801是同樣的,故省略說明。
這樣得到的相鄰塊的編碼信息被輸入到參照候選列表生成部321。作為在參照候選列表生成部321中生成的參照候選列表,根據(jù)預(yù)測模式(L0預(yù)測、L1預(yù)測、雙預(yù)測),針對L0預(yù)測及L1預(yù)測的兩個預(yù)測方向生成某一方向的參照候選列表,或者生成兩方各自的參照候選列表。在本說明書中,只要無特別注釋,對于運動估計模式時的參照候選列表,為說明方便而僅舉一者來說明,對于圖示的參照候選列表也僅舉出一者。
在實施例4中,在參照候選列表保存存儲器324內(nèi)設(shè)置參照候選列表作為登錄參照相鄰塊的編碼信息的候選的保存區(qū)域。對參照相鄰塊的編碼信息的候選賦予優(yōu)先順位,從優(yōu)先順位高者起向參照候選列表保存存儲器324登錄參照相鄰塊的編碼信息的候選。由此,能削減參照候選列表的索引mvp_idx_l0及mvp_idx_l1的碼量。
通過將優(yōu)先順位高的要素配置在參照候選列表的前面,來削減碼量。表示優(yōu)先順位的索引從0起升序分配。參照候選列表保存存儲器324中所設(shè)的參照候選列表具有列表構(gòu)造,設(shè)有將表示參照候選列表內(nèi)部的所在的索引和與索引對應(yīng)的參照相鄰塊的編碼信息的候選作為要素來保存的排列區(qū)域。該排列區(qū)域用candListLX來表示。索引的數(shù)字從0開始,在參照候選列表candListLX的保存區(qū)域內(nèi)保存參照相鄰塊的編碼信息的候選。
在以后的處理中,登錄于參照候選列表candListLX的索引i的編碼信息用candListLX[i]來表示,通過排列標(biāo)記而與參照候選列表candListLX區(qū)別。此外,關(guān)于保存于參照候選列表的保存區(qū)域的編碼信息,只要無特別說明,就用參照相鄰塊的位置名(A0,A1,B0,B1,C0,T)來表示。
參照候選列表生成部321進(jìn)行與圖19的流程圖所示的實施例1、2同樣的動作。但將實施例4的變量F的值設(shè)定為圖19的變量N的值來使之動作。判定空間的第1候選的相鄰塊S0、空間的第2候選的相鄰塊S1、以及時間不同的其它圖片的相同位置的相鄰的塊的有效標(biāo)志availableFlagLXN(在此,N為S0,S1,T),將相鄰塊的編碼信息登錄于參照候選列表candListLX。在此,更新變量N的相鄰塊的順序成為向參照候選列表保存的優(yōu)先順位,在實施例4中,假定設(shè)定為相同時間的第1候選、相同時間的第2候選、不同時間的同一順序(S0,S1,T)。
同實施例1、2一樣,所生成的參照候選列表由相同信息檢測部322刪除成為相同編碼信息的參照候選列表內(nèi)所保存的編碼信息,將差分運動矢量導(dǎo)出部326所生成的參照候選列表中的編碼信息的運動矢量作為預(yù)測運動矢量。根據(jù)運動矢量估計部102估計出的運動矢量和預(yù)測運動矢量導(dǎo)出差分運動矢量,將所導(dǎo)出的差分運動矢量提供給輸出部323。
最后,輸出部323輸出所生成的參照候選列表中的索引和差分運動矢量。關(guān)于參照候選列表,將參照候選列表作為MVP列表、將列表中的索引作為MVP索引而輸出。在動圖像編碼裝置100中,被輸出給預(yù)測方法決定部107。
下面說明與上述動圖像編碼裝置100中設(shè)置的實施例4的運動矢量預(yù)測部103對應(yīng)的、動圖像解碼裝置200中設(shè)置的實施例4的運動矢量導(dǎo)出部204。運動矢量導(dǎo)出部204具有與實施例2的圖30相同的構(gòu)成,編碼信息導(dǎo)出部320的處理與實施例2不同。這以外的參照候選列表生成部321、相同信息檢測部322、參照候選列表保存存儲器324、選擇部325及運動矢量相加部327具有與實施例2相同的功能。
此外,編碼信息導(dǎo)出部320具有與上述實施例2中的運動矢量預(yù)測部103的編碼信息導(dǎo)出部320相同的功能,融合判定部206的參照候選列表生成部311具有與上述實施例4中的融合檢測部106的參照候選列表生成部311相同的功能,融合判定部206的相同信息檢測部312具有與上述實施例4中的融合檢測部106的相同信息檢測部312相同的功能,故在至運動矢量導(dǎo)出部204的相同信息檢測部322的處理中,生成與實施例4的運動矢量預(yù)測部103相同的參照候選列表。
同實施例2一樣,選擇部325從所生成的參照候選列表中選擇由第1編碼比特串解碼部202解碼出的、確定參照相鄰塊的索引所指定的參照候選列表的相鄰塊。從所選擇的參照候選列表的相鄰塊的編碼信息,將運動矢量作為預(yù)測運動矢量而輸出,并由運動矢量相加部327將預(yù)測運動矢量和第1編碼比特串解碼部202解碼出的差分運動矢量相加而導(dǎo)出運動矢量,提供給運動補償預(yù)測部207,并將所選擇的列表的相鄰塊的編碼信息提供給編碼信息保存存儲器210。
此外,在實施例4中,選出了兩個相鄰塊作為參照相鄰塊的代表,但也可以針對融合模式、運動估計模式分別選出1個或3個以上的相鄰塊作為代表。但要在不超出塊群中的塊數(shù)的范圍內(nèi)設(shè)定。此外,在本發(fā)明的說明所用的圖9的配置中,代表的數(shù)量以6個為最大數(shù)。在融合模式時,若將代表數(shù)量設(shè)定為6個,則與實施例1是等價的。在運動估計模式下,取2個空間相鄰塊為代表,在融合模式下,取3個以上的空間相鄰塊為代表等,通過在融合模式下比運動估計模式時取更多的空間相鄰塊為代表,能得到以下那樣的效果。
即、在融合模式下,直接使用參照相鄰塊的候選的編碼信息進(jìn)行圖像間預(yù)測,故為留有選擇的余地,將比運動估計模式多的候選登錄于列表。這是因為,融合模式與運動估計模式相比能以很少的碼量傳輸較多的信息(運動矢量、參照索引、預(yù)測方向),故與其削減融合索引的碼量,保留相鄰塊的候選而擴展選擇的范圍更能提高編碼效率。
另一方面,在運動估計模式下,不是直接使用參照相鄰塊的候選的編碼信息,而是對差分運動矢量等編碼信息進(jìn)行編碼,故比融合模式更縮減候選地登錄于列表。這是因為,通過縮減候選而削減MVP索引的碼量,更能提高編碼效率。
在融合模式下,當(dāng)選出3個以上的空間相鄰塊作為代表時,在圖43的步驟S1607中,判定所有已選擇的各相鄰塊的編碼信息與相鄰塊N的編碼信息是否相同。在運動估計模式下,當(dāng)選出3個以上的空間相鄰塊作為代表時,在圖45的步驟S1707中,判定所有已選擇的各相鄰塊的運動矢量與相鄰塊N的運動矢量或相鄰塊N的運動矢量被縮放后的運動矢量mvLXN是否相同。
融合模式時,也能使用實施例4的方法,運動估計模式時,也能使用其它實施例的方法。同樣地,在運動估計模式時也可以使用實施例4的方法,在融合模式時也可以使用其它實施例的方法。特別的,在融合模式時使用實施例1的方法、運動估計模式時使用實施例4的方法的情況下,能得到與實施例3同樣的效果。
即,在融合模式下,直接使用參照相鄰塊的候選的編碼信息進(jìn)行圖像間預(yù)測,故為留有選擇的余地,將比運動估計模式更多的候選登錄于列表。這是因為,融合模式與運動估計模式相比能以很少的碼量傳輸較多的信息(運動矢量、參照索引、預(yù)測方向),故與其削減融合索引的碼量,盡量保留相鄰塊的候選來增加運動信息的候選更有助于提高編碼效率。
另一方面,在運動估計模式下,不是直接使用參照相鄰塊的候選的編碼信息,而是對差分運動矢量等編碼信息進(jìn)行編碼,故進(jìn)行掃描來縮減候選地登錄于列表。這是因為,運動估計模式下的候選僅被用于預(yù)測矢量,故即使保留較多的相鄰塊候選、登錄候選間較近的運動矢量,也無法減少差分運動矢量的碼量,MVP索引的碼量只會増加。因此,通過縮減登錄于列表的候選而削減MVP索引的碼量,有助于編碼效率的提高。
融合模式、運動估計模式都能僅利用相鄰塊是否能作為參照目標(biāo)候選來使用的信息來決定登錄于列表的候選,故無需進(jìn)行復(fù)雜的判定,能針對融合模式、運動估計模式分別將適當(dāng)?shù)暮蜻x登錄于列表。
此外,實施例4僅將時間不同的其它圖片的相同位置的相鄰的塊作為另行處理而登錄于參照候選列表的最后。同一圖片上的相鄰塊彼此具有相同編碼信息的可能性較高,時間不同的其它圖片的相同位置的相鄰的塊具有與之不同的編碼信息的可能性較高,故可以說另行作為候選來登錄的效果較好。例如,即使位于同一圖片上的相鄰塊全都在幀內(nèi),時間不同的其它圖片的相同位置的相鄰的塊具有幀間預(yù)測的編碼信息的可能性也較高。但是,時間不同的其它圖片的相同位置的相鄰的塊相比于同處理對象預(yù)測塊處于同一圖片上的相鄰塊,編碼信息與處理對象預(yù)測塊相等或接近的可能性較低,故降低了優(yōu)先順位。
(實施例5)
針對表示動圖像編碼裝置100的構(gòu)成的圖2中所設(shè)置的實施例5的融合檢測部106進(jìn)行說明。融合檢測部106具有與實施例1中說明過的圖11相同的構(gòu)成,但參照候選列表生成部311的處理與實施例1不同,故針對實施例5中的融合檢測部106的參照候選列表生成部311的動作進(jìn)行說明。參照候選列表生成部311在參照候選列表保存存儲器314中設(shè)置參照候選列表作為登錄參照相鄰塊的編碼信息的候選的保存區(qū)域,對參照相鄰塊的編碼信息的候選賦予優(yōu)先順位,從優(yōu)先順位較高者起向參照候選列表登錄參照相鄰塊的編碼信息的候選。由此,削減參照候選列表的索引merge_idx的碼量。
通過將優(yōu)先順位高的要素配置在參照候選列表的前面,來削減碼量。表示優(yōu)先順位的索引從0起升序分配。在此,假定在融合模式時設(shè)定順序(A1,B1,B0,A0,C0,T)。在融合模式時,優(yōu)先將編碼信息被認(rèn)為與處理對象預(yù)測塊的邊相等的可能性最高的、與編碼對象預(yù)測塊的邊相接的相鄰塊A1及B1登錄于列表前面,由此來削減融合索引的碼量、提高編碼效率。
參照候選列表保存存儲器314中所設(shè)的參照候選列表具有列表構(gòu)造,設(shè)有將表示參照候選列表內(nèi)部所在的索引和與索引對應(yīng)的參照相鄰塊的編碼信息的候選作為要素來保存的排列區(qū)域。該排列區(qū)域用candList表示。索引的數(shù)字從0開始,在參照候選列表candList的保存區(qū)域中保存參照相鄰塊的編碼信息的候選。在以后的處理中,參照候選列表candList內(nèi)所登錄的索引i的編碼信息用candList[i]來表示,通過排列標(biāo)記而與參照候選列表candList相區(qū)別。另外,關(guān)于保存在參照候選列表的保存區(qū)域中的編碼信息,只要沒有特別說明,就用參照相鄰塊的位置名(A0,A1,B0,B1,C0,T)來表示。
圖46是表示實施例5中的參照候選列表生成部311的動作的流程圖。在實施例5中,在參照候選列表生成前,從圖31的(a)所示的相鄰塊中分類成左側(cè)及上側(cè)的塊群,并設(shè)定各塊群的參照相鄰塊的個數(shù)NA及NB。在此,左側(cè)塊群的相鄰塊是A0,A1,上側(cè)塊群的相鄰塊是B0,B1,C0,將NA及NB都設(shè)定為1。即,意味著從各個塊群中選擇1個相鄰塊。此外,NA及NB不超過各自塊群中的相鄰塊總數(shù)。
首先,將變量N和參照候選列表的索引k初始化(S1200)。變量N初始被設(shè)定為與預(yù)測模式對應(yīng)的優(yōu)先順位最高的相鄰塊。在融合模式下為A1,在運動估計模式下為A0。K被設(shè)定為0。索引k表示參照候選列表的保存區(qū)域中所設(shè)定的編碼信息的候選的保存區(qū)域優(yōu)先順位。
然后,將左側(cè)及上側(cè)的塊群的計數(shù)值na及nb初始化為0(S1201)。首先,判定相鄰塊N是否為屬于左側(cè)或上側(cè)的塊群的相鄰塊(S1202)。若不屬于(S1202的N),則進(jìn)入步驟S1206,若屬于(S1202的Y),則判定屬于左側(cè)或上側(cè)的哪一個塊群(S1203)。
若為左側(cè),則進(jìn)入計數(shù)值na與NA的比較(S1204),若na小于NA(S1204的Y),則進(jìn)入步驟S1206,若非如此(S1204的N),則進(jìn)入步驟S1210。若為上側(cè),則進(jìn)入計數(shù)值nb與NB的比較(S1205),若nb小于NB(S1205的Y),則進(jìn)入步驟S1206,若非如此(S1205的N),則進(jìn)入步驟S1210。
若na及nb在NA及NB以上,則表示超出了各塊群中被選出到參照候選列表中的相鄰塊數(shù),此時,不判定是否登錄于參照候選列表,不被登錄。
進(jìn)行相鄰塊N的有效標(biāo)志availableFlagN的判定(S1206)。若availableFlagN為1(S1206的Y),則將相鄰塊N的編碼信息登錄于參照候選列表candListLX[k](S1207),并更新k(S1208)。進(jìn)而,若相鄰塊N屬于左側(cè)或上側(cè)的塊群,則更新計數(shù)值na或nb(S1209)。若availableFlagN為0(S1206的N),則不登錄于參照候選列表,進(jìn)入步驟S1210。
判定相鄰塊N是否為最后的參照塊(S1210)。若為最后的塊(S1210的Y),則在將索引的值設(shè)定于候選列表總數(shù)NumListCand后(S1211),結(jié)束處理。若非最后的塊(S1210的Y),則更新變量N(S1212),重復(fù)步驟S1202以后的處理。
通過以上處理,被登錄于參照候選列表。在此,登錄于參照候選列表的最大數(shù)用NA+NB+1來表示。對最初設(shè)定的NA和NB加上一個不同時間的候選,在此,NA,NB都為1,故最大為3。在參照相鄰塊僅1個有效時,最大碼字長度成為0,故不需要碼字,那一個被判定有效的相鄰塊的編碼信息的候選被唯一決定為參照目標(biāo)。
在上述處理中,例如相鄰塊A1的有效標(biāo)志availableFlagA1為0時,優(yōu)先順位為A1,B1,B0,A0,C0,T,故參照候選列表中被按優(yōu)先順序登錄B1,A0,T。在實施例2中按相同條件進(jìn)行處理,成為A0,B1,T。實施例5中,既保持原來的優(yōu)先順位,又將認(rèn)為編碼信息與處理對象預(yù)測塊相等可能性最高的相鄰塊優(yōu)先登錄在參照候選列表的前面,由此來削減索引的碼量、提高編碼效率。
此外,此時,代表左側(cè)及上側(cè)相鄰的塊群的相鄰塊和時間不同的其它圖片的相同位置的相鄰的塊這3個相鄰塊被登錄于參照候選列表,與實施例1相比能削減參照相鄰塊的總數(shù),故分配的碼字長度變短,能改善編碼效率。
針對與上述動圖像編碼裝置100中設(shè)置的實施例5的融合檢測部106對應(yīng)的、動圖像解碼裝置200中設(shè)置的實施例5的融合判定部206進(jìn)行說明。融合判定部206具有與實施例1中說明的圖22相同的構(gòu)成,但參照候選列表生成部311的處理與實施例1不同。這以外的編碼信息導(dǎo)出部310、相同信息檢測部312、參照候選列表保存存儲器314及選擇部315具有與實施例1相同的功能。
此外,參照候選列表生成部311具有與上述實施例5中的融合檢測部106的參照候選列表生成部311相同的功能,故在至融合判定部206的相同信息檢測部312的處理中,生成與實施例5的融合檢測部106相同的參照候選列表。
針對從所生成的參照候選列表取得融合模式下的參照相鄰塊的編碼信息的選擇部315進(jìn)行說明。選擇部315從所生成的參照候選列表中選擇由第1編碼比特串解碼部202解碼出的、確定參照相鄰塊的索引所指定的參照候選列表的相鄰塊。將所選擇的編碼信息提供給運動補償預(yù)測部207,并提供給編碼信息保存存儲器210。
接下來,針對表示本發(fā)明的動圖像編碼裝置100的構(gòu)成的圖2中所設(shè)置的實施例5的運動矢量預(yù)測部103進(jìn)行說明。運動矢量預(yù)測部103具有與實施例1中說明的圖23相同的構(gòu)成,但參照候選列表生成部321的處理與實施例1不同。參照候選列表生成部321具有與融合檢測部106的參照候選列表生成部311基本相同的功能,故判定參照相鄰塊的編碼信息的候選是否有效、并登錄于參照候選列表的動作是同樣的,在此省略說明。
參照候選列表生成部321與融合檢測部106的參照候選列表生成部311的不同之處在于向參照候選列表保存存儲器324中所設(shè)的參照候選列表登錄參照相鄰塊的編碼信息的候選時的優(yōu)先順位。運動估計模式時,在參照候選列表生成部321中,按A0,B0,A1,B1,C0,T順序設(shè)定。
運動估計模式是用于傳輸差分運動矢量的模式,為擴展預(yù)測運動矢量的選擇范圍,分離左側(cè)和上側(cè)的候選間的距離地進(jìn)行登錄,以使得左側(cè)和上側(cè)的相鄰塊的候選的運動矢量的差變大,由此來削減差分運動矢量的碼量、提高編碼效率。該運動估計模式下的優(yōu)先順位的決定方法與盡可能地將作為相同編碼信息的概率高的相鄰塊登錄為優(yōu)先候選的融合模式相比,目的不同。如上這樣,賦予優(yōu)先順位,從優(yōu)先順位高者起向參照候選列表登錄參照相鄰塊的編碼信息的候選,由此削減參照候選列表的索引mvp_idx_l0及mvp_idx_l1的碼量。
關(guān)于與上述動圖像編碼裝置100中設(shè)置的實施例5的運動矢量預(yù)測部103對應(yīng)的、動圖像解碼裝置200中設(shè)置的實施例5的運動矢量導(dǎo)出部204,運動矢量導(dǎo)出部204的參照候選列表生成部321具有與對應(yīng)的運動矢量預(yù)測部103的參照候選列表生成部321相同的功能,故生成與運動矢量預(yù)測部103相同的參照候選列表。
下面說明在運動估計模式下從所生成的參照候選列表中取得參照相鄰塊的編碼信息的選擇部325。選擇部325從所生成的參照候選列表中選擇由第1編碼比特串解碼部202解碼出的、用于確定參照相鄰塊的索引所指定的列表的相鄰塊。從所選擇的列表的相鄰塊的編碼信息中將運動矢量作為預(yù)測運動矢量而輸出,在運動矢量相加部327中將預(yù)測運動矢量和第1編碼比特串解碼部202解碼出的差分運動矢量相加,導(dǎo)出運動矢量,提供給運動補償預(yù)測部207,并將所選擇的列表的相鄰塊的編碼信息提供給編碼信息保存存儲器210。
此外,在實施例5中,將NA和NB都設(shè)定為1,但也可以設(shè)定不超出各自塊群的相鄰塊總數(shù)的數(shù)量,還可以在預(yù)測模式下分別改變設(shè)定。
(實施例6)
在實施例6中,定義與實施例2不同的參照相鄰塊的塊群,是改變了從中分別選擇1個作為代表相鄰塊的方法的實施例。利用圖31的(a)的相鄰塊的配置進(jìn)行說明。對于圖31的(a)中配置的6個相鄰塊A0,A1,B0,B1,C0,T,將A1作為左側(cè)相鄰的代表塊,將B1作為上側(cè)相鄰的代表塊,將時間不同的其它圖片的相同位置的相鄰的塊T、和位于處理對象預(yù)測塊的角部的相鄰塊A0,B0及C0,作為角部相鄰的塊群。從該塊群中選擇1個作為代表相鄰塊。從左側(cè)、上側(cè)、不同時間及角部的4個相鄰塊中選擇1個相鄰塊的編碼信息作為參照目標(biāo)。
將被認(rèn)為編碼信息與處理對象預(yù)測塊的邊相等的可能性最高的、與處理對象預(yù)測塊的邊相接的相鄰塊A1及B1優(yōu)先登錄在參照候選列表的前面,將相對可能性較低的角部的3個相鄰塊作為一組,削減索引的碼量、提高編碼效率,故特別在融合模式時是有效的方法。
在動圖像編碼裝置100中設(shè)置的實施例6的融合檢測部106和對應(yīng)的動圖像解碼裝置200中設(shè)置的實施例6的融合判定部206的參照候選列表生成部311、以及動圖像編碼裝置100中設(shè)置的實施例6的運動矢量預(yù)測部103和對應(yīng)的動圖像解碼裝置200中設(shè)置的實施例6的運動矢量導(dǎo)出部204的參照候選列表生成部321中,將位于處理對象預(yù)測塊的角部的相鄰塊A0,B0,C0定義為角部相鄰的塊群。按A1,B1,(B0,A0,C0),T的順序設(shè)定優(yōu)先順位,從優(yōu)先順位高者起向參照候選列表登錄參照相鄰塊的編碼信息的候選,由此削減參照候選列表的索引的碼量。在此,參照候選列表內(nèi)部的括號表示從左側(cè)或上側(cè)的相鄰塊群中,按括號內(nèi)的從左至右的順序被處理、選擇的1個相鄰塊。
在參照候選列表生成部311及321中,作為從角部相鄰的塊群中選擇代表相鄰塊的方法,例如如實施例2中所說明的那樣,按預(yù)先規(guī)定的處理順序掃描塊群中的相鄰塊。也可以判定是否滿足相鄰塊有效且非Intra模式的條件,選擇滿足該條件的最初的相鄰塊。在此,將處理順序定為B0,A0,C0,但未必一定是該順序。此外,也可以比較角部相鄰的塊群中的相鄰塊B0,A0,C0的編碼信息,選擇具有相同編碼信息的相鄰塊。即,在塊群中進(jìn)行多數(shù)決,選擇具有相同編碼信息的相鄰塊中的、按處理順序B0,A0,C0在前的相鄰塊。實施例6中生成的參照候選列表在參照相鄰塊全都有效時被如圖47那樣表示。
(實施例7)
實施例7是對登錄于參照候選列表中的、參照相鄰塊的數(shù)量進(jìn)行限制的方案。實施例1、3(實施例為融合模式的情況)的登錄于參照候選列表的參照相鄰塊數(shù),在圖9的(a)或圖31的(a)的相鄰塊配置的情況下,最大存在6個。若從中選擇相鄰塊,則索引最大需要5比特的碼量,故不能說提高了編碼效率。因此,進(jìn)行限定,使得僅使用同實施例2、4等一樣生成的參照候選列表中的上位的相鄰塊的編碼信息。
首先,說明表示動圖像編碼裝置100的構(gòu)成的圖2中設(shè)置的實施例7的融合檢測部106。圖48表示在圖11所示的實施例1的動圖像編碼裝置100的融合檢測部106中追加了參照候選限制部318后的融合檢測部106的構(gòu)成。圖48所示的各部具有與圖11所示的各部相同的功能,故在此僅說明參照候選限制部318的功能。
參照候選限制部318被輸入由相同信息檢測部312從參照候選列表中刪除具有相同編碼信息的參照相鄰塊后的參照候選列表。參照候選限制部318從參照候選列表中保留所設(shè)定的限制數(shù)量的索引上位的相鄰塊,將這之外的刪除或者判定為選擇范圍外。例如針對實施例1表示不存在相同編碼信息時的參照候選列表的一例的圖20,若在融合模式時限制為3個,則將索引0至2的上位3個相鄰塊作為參照候選,其余的不使用,故從參照候選對象中排除。
如上這樣,作為參照候選,相鄰塊被限制地登錄于參照候選列表,與實施例1相比能削減參照相鄰塊的總數(shù),故分配的碼字長度變短,能改善編碼效率。此外,由于縮減限制為參照候選列表的優(yōu)先順位高的相鄰塊,故能抑制編碼效率的下降。關(guān)于參照候選列表的限制數(shù),例如可以在SPS(SequenceParameterSet)或SliceHeader這樣的首部信息中設(shè)定限制數(shù)。此外,也可以在編碼側(cè)和解碼側(cè)作為默認(rèn)條件來設(shè)定,只要在編碼側(cè)和解碼側(cè)不發(fā)生矛盾地設(shè)定即可,不限方法。此外,也可以按照預(yù)測模式分別設(shè)定限制數(shù)。此外,還可以基于處理對象預(yù)測塊參照的已編碼或已解碼的相鄰塊的編碼信息,適應(yīng)性地變更參照候選列表的限制數(shù)。
說明了如上這樣通過在相同信息檢測部312之后設(shè)置參照候選限制部318來限制參照候選的方法,但不將參照候選限制部318設(shè)置在融合檢測部106中、而是使相同信息檢測部312中具有參照候選限制部318的功能,也能得到同等的效果。此時,在相同信息檢測部312中,比較參照候選列表中所保存的編碼信息的候選,若存在相同編碼信息的候選,則除具有最小的參照候選列表索引的編碼信息的候選外全部刪除,并將具有最小的參照候選列表索引的編碼信息的候選再次登錄于參照候選列表,當(dāng)其登錄數(shù)達(dá)到限制數(shù)時處理結(jié)束。
圖49是表示實施例7中的相同信息檢測部312的動作的流程圖,是對實施例1的進(jìn)行圖21所示動作的相同信息檢測部312追加了實施例7的限制參照候選的功能后的流程圖。相對于圖21的流程圖,新追加了步驟S710至步驟S712的處理步驟,針對這些追加的處理進(jìn)行說明。
在設(shè)定表示參照候選列表的索引的變量n和m后,將表示刪除列表中記錄的參照候選列表的候選數(shù)的計數(shù)值s設(shè)定為0(S710)。然后,在步驟S702中,判定m是否已被記錄在刪除列表中,若m尚未被記錄在刪除列表中(S702的N),則將m記錄到刪除列表中,并使計數(shù)值s加1更新(S711)。
然后,判定s是否與閾值TH相等(S712)。在此,閾值TH表示候選列表總數(shù)NumListCand減去限制數(shù)后的數(shù)。即,表示在參照候選列表中保留限制數(shù)的候選,并向刪除列表記錄后的候選數(shù)的最大數(shù)。若s與TH不相等(S712的Y),則參照候選列表中留有限制數(shù)量的候選,故結(jié)束相同信息判定的處理,進(jìn)入步驟S708,刪除與刪除列表中所記錄的索引相應(yīng)的列表的保存區(qū)域的編碼信息,以索引0為基準(zhǔn)按索引由小到大的候選順序填充,更新碼字后結(jié)束。此外,參照候選列表的總數(shù)NumListCand被更新為限制數(shù)。
此外,也可以將參照候選限制部318設(shè)置在相同信息檢測部312之前。此時,限制參照候選列表生成部311所生成的參照候選列表中的參照候選、縮減候選數(shù),故在相同信息檢測部312中檢測相同信息的最大次數(shù)被削減,因而具有削減處理量的效果。
圖50表示以圖11所示的實施例1的動圖像編碼裝置100的融合檢測部106為基礎(chǔ),追加實施例7的參照候選限制部318后的融合檢測部106的構(gòu)成。圖50所示的各部具有與圖11所示的各部相同的功能。與上述圖48的構(gòu)成相比僅參照候選限制部318的位置不同,參照候選限制部318的動作都是同樣的。參照候選限制部318從參照候選列表生成部311所生成的參照候選列表中保留所設(shè)定的限制數(shù)量的索引上位的相鄰塊,將這之外的刪除或判定為選擇范圍外。
說明了如上這樣在相同信息檢測部312之前設(shè)置參照候選限制部318來限制參照候選的的方法,但不將參照候選限制部318設(shè)置在融合檢測部106中、使參照候選列表生成部311中具有參照候選限制部318的功能,也能得到同等的效果。此時,在參照候選列表生成部311中,將由編碼信息導(dǎo)出部310導(dǎo)出的參照相鄰塊的編碼信息登錄于參照候選列表,并對參照候選列表中所登錄的參照相鄰塊的數(shù)量計數(shù),當(dāng)該數(shù)量達(dá)到限制數(shù)時結(jié)束處理。
圖51是表示實施例7中的參照候選列表生成部311的動作的流程圖,是對實施例1的進(jìn)行圖19所示動作的參照候選列表生成部311追加了實施例7的限制參照候選的功能的圖。相對于圖19的流程圖,新追加了步驟S607的處理步驟,針對該追加的處理進(jìn)行說明。
首先,將變量N和參照候選列表的索引k初始化(S600)。索引k表示參照候選列表的保存區(qū)域內(nèi)所設(shè)定的編碼信息的候選的保存區(qū)域的優(yōu)先順位。
然后,判定參照相鄰塊N的有效標(biāo)志availableFlagN(S601),若availableFlagN是1(S601的Y),則將相鄰塊N的編碼信息登錄于參照候選列表(S602),并更新k(S603)。
接下來,判定k是否已達(dá)限制數(shù)(S607)。若k不足限制數(shù)(S607的N),參照候選列表中尚未登錄有限制數(shù)量的編碼信息,故進(jìn)入步驟S604。若k已達(dá)限制數(shù)(S607的Y),則參照候選列表內(nèi)已被登錄了限制數(shù)量的編碼信息,故在將索引的值設(shè)定給候選列表總數(shù)NumListCand后(S605),結(jié)束處理。
此外,以上說明了對實施例1的融合檢測部106追加參照候選限制部318的例子,但也可以在其它實施例中追加參照候選限制部318。另外,也可以對與融合檢測部106對應(yīng)的動圖像解碼裝置200中設(shè)置的實施例7的融合判定部206追加參照候選限制部318,不在融合判定部206中設(shè)置參照候選限制部318、使融合判定部206的參照候選列表生成部311或相同信息檢測部312中具有參照候選限制部318的功能,也能得到同等的效果。但是,需要在編碼側(cè)和解碼側(cè)使設(shè)置參照候選限制部318的位置或具備參照候選限制部318的功能的處理部相同。
接下來,說明在表示動圖像編碼裝置100的構(gòu)成的圖2中設(shè)置的實施例7的運動矢量預(yù)測部103。圖52表示以圖23所示的實施例1的動圖像編碼裝置的運動矢量預(yù)測部103為基礎(chǔ),追加了實施例7的參照候選限制部328的運動矢量預(yù)測部103的構(gòu)成。圖52所示的各部基本上具有與圖23所示的各部相同的功能,但編碼信息導(dǎo)出部320及參照候選列表生成部321的處理與實施例1不同。針對實施例7中的編碼信息導(dǎo)出部320及參照候選列表生成部321、和新追加的參照候選限制部328的功能進(jìn)行說明。
圖53是表示實施例7中的編碼信息導(dǎo)出部320的動作的流程圖。在實施例1的編碼信息導(dǎo)出部320中,根據(jù)處理對象預(yù)測塊的預(yù)測模式,在單向預(yù)測、L0預(yù)測的情況下,僅進(jìn)行參照列表L0中所登錄的編碼信息的判定,在單向預(yù)測、L1預(yù)測的情況下,僅進(jìn)行參照列表L1中所登錄的編碼信息的判定,在雙預(yù)測的情況下,針對L0和L1各列表分別獨立地進(jìn)行參照列表L0,L1中所登錄的各編碼信息的判定。
在實施例7中,首先,與列表無關(guān)地判定相鄰塊的有效性,之后根據(jù)處理對象預(yù)測塊的預(yù)測模式,檢測并取得編碼信息。通過該處理,無需針對每個列表進(jìn)行相鄰塊的有效性判定,能削減處理工序。
首先,將變量N初始化(S900)。變量N被設(shè)定圖9的(a)所示的位于相同圖片上的相鄰塊B0,A0,A1,B1,C0。在此,假定初始化時設(shè)定為N=B0,變量N的更新按A0,A1,B1,C0順序進(jìn)行。
運動估計模式是用于傳輸差分運動矢量的模式,為擴展預(yù)測運動矢量的選擇范圍,分離左側(cè)和上側(cè)的候選間的距離地進(jìn)行登錄,以使得左側(cè)和上側(cè)的相鄰塊的候選的運動矢量的差變大,削減差分運動矢量的碼量、提高編碼效率。該運動估計模式下的優(yōu)先順位的決定方法與盡可能將具有相同編碼信息的概率高的相鄰塊作為優(yōu)先候選來登錄的融合模式相比,其目的不同。
然后,取得變量N的相鄰塊(以下稱作相鄰塊N)的位置及編碼信息(S902)?;谒〉玫南噜弶KN的位置,判定相鄰塊N是否有效(S903)。例如,當(dāng)處理對象預(yù)測塊位于圖片左端時,不存在處理對象預(yù)測塊左邊的相鄰塊,故編碼信息保存存儲器114中沒有相應(yīng)的編碼信息,被判定為無效。
若相鄰塊N無效(S903的N),則將availableFlagN設(shè)定為“0”(S908)。若相鄰塊N有效(S903的Y),則判定相鄰塊N的預(yù)測模式是否為畫面內(nèi)編碼(Intra)模式(S904)。若相鄰塊N的預(yù)測模式不是Intra模式(S904的Y)、即是Inter模式,則將availableFlagN設(shè)定為“1”(S906)。然后,導(dǎo)出運動矢量(S916)。在導(dǎo)出運動矢量后,將相鄰塊N的編碼信息代入refIdxLXN、mvLXN及predFlagLXN進(jìn)行設(shè)定(S907)。
如上這樣,在結(jié)束針對相鄰塊N的判定處理后,判定變量N是否為最后的相鄰塊(S909)。變量N的更新按B0,A0,A1,B1,C0順序進(jìn)行,故在此判定N是否為C0。若N是C0(S909的Y),則針對所有相鄰塊都進(jìn)行了判定,結(jié)束處理。若N不是C0(S909的N),則進(jìn)行N的更新(S910)。按上述相鄰塊的順序更新N,針對相鄰塊N重復(fù)步驟S902以后的處理。
在此,針對運動矢量的導(dǎo)出過程,利用圖54的流程圖進(jìn)行說明。首先,將保存L0預(yù)測的相鄰塊N的編碼信息的變量初始化。在此,變量是相鄰塊N的運動矢量mvL0N、參照圖片編號refIdxL0N及表示參照列表的有效性的標(biāo)志predFlagL0N,被如下這樣初始化(S920)。
mvL0N=(0,0)
refIdxL0N=0
predFlagL0N=0)
然后,判定處理對象預(yù)測塊的Inter模式是否為單向的L0預(yù)測或Bi-pred預(yù)測(雙預(yù)測)(S921)。在Bi-pred預(yù)測下,要使用L0預(yù)測及L1預(yù)測的兩個參照列表,故在單向的L0預(yù)測或Bi-pred預(yù)測時(S921的Y),進(jìn)入相鄰塊N的運動矢量mvL0N的導(dǎo)出(S922)。
若處理對象預(yù)測塊與相鄰塊N的參照圖片編號及參照列表相同,則將相鄰塊N的L0預(yù)測的運動矢量代入mvL0N進(jìn)行設(shè)定。若處理對象預(yù)測塊與相鄰塊N的參照圖片編號及參照列表不相同,則實施相鄰塊N的運動矢量的縮放處理。關(guān)于縮放處理,已在實施例1中進(jìn)行了說明,故在此省略說明。通過實施縮放處理,能導(dǎo)出更接近處理對象預(yù)測塊的運動矢量,謀求精度的提高。如上這樣將被縮放處理后的運動矢量代入mvL0N,將相鄰塊N的L0預(yù)測的編碼信息代入refIdxL0N及predFlagL0N進(jìn)行設(shè)定。
在既非單向的L0預(yù)測、又非Bi-pred預(yù)測時(S921的N),進(jìn)入L1預(yù)測的運動矢量判定。然后,將保存L1預(yù)測的相鄰塊N的編碼信息的變量初始化。在此,變量是相鄰塊N的運動矢量mvL1N、參照圖片編號refIdxL1N及表示參照列表的有效性的標(biāo)志predFlagL1N,被如下這樣初始化(S923)。
mvL1N=(0,0)
refIdxL1N=0
predFlagL1N=0
接下來,判定處理對象預(yù)測塊的Inter模式是否為單向的L1預(yù)測或Bi-pred預(yù)測(雙預(yù)測)(S924)。在Bi-pred預(yù)測下,要使用L0預(yù)測及L1預(yù)測的兩個參照列表,故在單向的L1預(yù)測或Bi-pred預(yù)測時(S924的Y),進(jìn)入相鄰塊N的運動矢量mvL1N的導(dǎo)出(S925)。
若處理對象預(yù)測塊與相鄰塊N的參照圖片編號及參照列表相同,則將相鄰塊N的L1預(yù)測的運動矢量代入mvL0N進(jìn)行設(shè)定。若處理對象預(yù)測塊與相鄰塊N的參照圖片編號及參照列表不相同,則實施相鄰塊N的運動矢量的縮放處理。關(guān)于縮放處理,已在實施例1中進(jìn)行了說明,故在此省略說明。將如上這樣被縮放處理后的運動矢量代入mvL1N,將相鄰塊N的L1預(yù)測的編碼信息代入refIdxL1N及predFlagL1N進(jìn)行設(shè)定。若既非單向的L1預(yù)測也非Bi-pred預(yù)測(S924的N),則結(jié)束處理。
如上這樣,將存在于與處理對象預(yù)測塊相同圖片上的周圍的相鄰塊作為參照塊,導(dǎo)出其編碼信息。時間不同的其它圖片的相同位置的相鄰的塊的編碼信息的導(dǎo)出與實施例1是同樣的,故在此省略說明。
這樣得到的相鄰塊的編碼信息被輸入到參照候選列表生成部321。作為在參照候選列表生成部321中生成的參照候選列表,根據(jù)處理對象預(yù)測塊的Inter模式,針對L0及L1預(yù)測的兩個參照列表分別生成參照候選列表。在實施例1中,是針對各參照列表分別生成參照候選列表的,但在實施例7中,與參照列表無關(guān)地用1個標(biāo)志availableFlagN來表示要用于以后的判定的表示相鄰塊的有效性的標(biāo)志,故能一次性生成L0,L1兩預(yù)測的參照候選列表,能削減處理工序。
使用圖55的流程圖說明參照候選列表生成部321的動作。首先,將變量N和參照候選列表的索引k初始化(S600)。變量N被初始設(shè)定為圖9的(a)所示的相鄰塊B0,k被設(shè)定為0。變量N表示向參照候選列表保存的優(yōu)先順位,按相鄰塊B0,A0,A1,B1,C0的順序來進(jìn)行。索引k表示參照候選列表的保存區(qū)域中所設(shè)定的編碼信息的候選的保存區(qū)域編號,與優(yōu)先順位相對應(yīng)。
然后,判定參照相鄰塊N的有效標(biāo)志availableFlagN(S601)。若availableFlagN為1(S601的Y),則將相鄰塊N的編碼信息同時登錄到L0及L1預(yù)測的兩個參照候選列表candListLX[k]中(S602),并更新k(S603)。在此,后綴X表示0或1。若availableFlagN為0(S601的N),則不登錄到參照候選列表中,進(jìn)入下一步驟。判定相鄰塊N是否為最后的參照塊(S604)。若是最后的塊(S604的Y),則在將索引的值設(shè)定給候選列表總數(shù)NumListCand后(S605),結(jié)束處理。若非最后的塊(S604的N),則更新變量N(S606),重復(fù)步驟S601以后的處理。
參照候選限制部328被輸入由相同信息檢測部322從參照候選列表中刪除掉具有相同運動矢量的參照相鄰塊后的參照候選列表。參照候選限制部328從參照候選列表中保留所設(shè)定的限制數(shù)量的索引上位的相鄰塊,將這之外的刪除或判定為選擇范圍外。例如,在表示實施例1的不存在相同運動矢量時的參照候選列表的一例的圖28中,若在運動估計模式時限制為3個,則將索引0至2的上位3個相鄰塊作為參照候選,其余的因不使用而從參照候選對象中排除。
如上這樣,作為參照候選,相鄰塊被限制地登錄于參照候選列表,與實施例1相比能削減參照相鄰塊的總數(shù),故分配的碼字長度變短,能改善編碼效率。此外,由于縮減限制為參照候選列表的優(yōu)先順位高的相鄰塊,故能抑制編碼效率的下降。關(guān)于參照候選列表的限制數(shù),例如可以在SPS(SequenceParameterSet)或SliceHeader這樣的首部信息中設(shè)定限制數(shù)。
此外,也可以在編碼側(cè)和解碼側(cè)作為默認(rèn)的條件來設(shè)定,只要設(shè)定得在編碼側(cè)和解碼側(cè)不發(fā)生矛盾即可,不限定方法。此外,也可以按照預(yù)測模式分別設(shè)定限制數(shù)。還可以基于處理對象預(yù)測塊要參照的已編碼或已解碼的相鄰塊的編碼信息,適應(yīng)性地變更參照候選列表的限制數(shù)。
以上說明了通過在相同信息檢測部322之后設(shè)置參照候選限制部328來限制參照候選的方法,但也可以不將參照候選限制部328設(shè)置在運動矢量預(yù)測部103中,而是使相同信息檢測部322中具有參照候選限制部328的功能,這樣也能得到同等的效果。此時,在相同信息檢測部322中,比較參照候選列表中所保存的編碼信息的候選,若存在具有相同運動矢量的候選,則除具有最小的參照候選列表索引的編碼信息的候選外全部刪除,并將具有最小的參照候選列表索引的編碼信息的候選再次登錄于參照候選列表,當(dāng)其登錄數(shù)達(dá)到限制數(shù)時結(jié)束處理。
圖56是表示實施例7中的相同信息檢測部322的動作的流程圖,相對于實施例1的進(jìn)行圖29所示的動作的相同信息檢測部322,追加了實施例7的限制參照候選的功能。相對于圖29的流程圖,新追加了步驟S1010至步驟S1012的處理步驟,針對這些追加的處理進(jìn)行說明。
在設(shè)定表示參照候選列表索引的變量n和m后,將表示記錄于刪除列表的參照候選列表的候選數(shù)的計數(shù)值s設(shè)定成0(S1010)。然后,在步驟S1002中,判定m是否已被記錄在刪除列表中,若m尚未被記錄在刪除列表中(S1002的N),則將m記錄到刪除列表中(S1003),并使計數(shù)值s加1更新(S1011)。
然后判定s是否與閾值TH相等(S1012)。在此,閾值TH表示從候選列表總數(shù)NumListCand減去限制數(shù)后的數(shù)。即,表示在參照候選列表中保留限制數(shù)的候選后,刪除列表中所記錄的候選數(shù)的最大數(shù)。若s與TH相等(S1012的Y),則在參照候選列表中保留了限制數(shù)量的候選,故結(jié)束相同信息判定的處理,進(jìn)入步驟S1008,將與刪除列表中記錄的索引相應(yīng)的列表的保存區(qū)域的編碼信息刪除,并以索引0為基準(zhǔn),按索引由小到大的候選順序填充后,更新碼字并結(jié)束。另外,參照候選列表的總數(shù)NumListCand被變更成限制數(shù)。
另外,也可以將參照候選限制部328設(shè)置在相同信息檢測部322之前。此時,限制參照候選列表生成部321所生成的參照候選列表中的參照候選,縮減候選數(shù),故在相同信息檢測部322中檢測相同信息的最大次數(shù)被削減,因而具有處理量被削減的效果。
圖57表示以圖23所示的實施例1的動圖像編碼裝置的運動矢量預(yù)測部103為基礎(chǔ)、追加了實施例7的參照候選限制部328后的運動矢量預(yù)測部103的構(gòu)成。圖57所示的各部具有與圖23所示的各部相同的功能。與上述圖52的構(gòu)成相比僅參照候選限制部328的位置不同,參照候選限制部328的動作是同樣的。參照候選限制部328從參照候選列表生成部321所生成的參照候選列表中,保留所設(shè)定的限制數(shù)量的索引上位的相鄰塊,將這以外的刪除或判定為選擇范圍外。
以上說明了通過在相同信息檢測部322之前設(shè)置參照候選限制部328來限制參照候選的方法,但不將參照候選限制部328設(shè)置在運動矢量預(yù)測部103中、而是使參照候選列表生成部321中具備參照候選限制部328的功能,也能得到同等的效果。此時,在參照候選列表生成部321中,將編碼信息導(dǎo)出部320所導(dǎo)出的參照相鄰塊的編碼信息登錄到參照候選列表中,并對參照候選列表中所登錄的參照相鄰塊的數(shù)量進(jìn)行計數(shù),當(dāng)其數(shù)量達(dá)到限制數(shù)時結(jié)束處理。參照候選列表生成部321除了能根據(jù)處理對象預(yù)測塊的預(yù)測模式同時生成L0及L1預(yù)測的參照候選列表外,進(jìn)行與實施例7中的表示參照候選列表生成部311的動作的圖51的流程圖相同的動作,故在此省略說明。
(實施例8)
在實施例8中,與實施例2、5不同,定義參照相鄰塊的塊群,并從中選擇K個代表的相鄰塊。利用圖31的(a)的相鄰塊的配置進(jìn)行說明。與實施例4同樣,從圖31的(a)所配置的6個相鄰塊A0,A1,B0,B1,C0,T中,將位于與處理對象預(yù)測塊同一圖片上的相鄰塊A0,A1,B0,B1,C0作為1個塊群,從該塊群中選擇K個代表的相鄰塊。
將所選擇的同一圖片上的代表的K個相鄰塊、和時間不同的其它圖片的相同位置的相鄰的塊T,共K+1個相鄰塊的編碼信息作為參照候選登錄于參照候選列表。在實施例4中,是在編碼信息導(dǎo)出部310、編碼信息導(dǎo)出部320中選擇K個(2個)代表的相鄰塊的,與此不同,在實施例8中,同實施例1一樣,編碼信息導(dǎo)出部310及編碼信息導(dǎo)出部320選擇所有相鄰塊,并在參照候選列表生成時之后的處理中,選擇K個(2個)代表的相鄰塊,在這一點上是不同的。
實施例8等價于將對選為參照候選的相鄰塊的數(shù)量施以限制的實施例7適用于與處理對象預(yù)測塊相同圖片上的塊群的情況,但在僅將時間不同的其它圖片的相同位置的相鄰的塊另行登錄在參照候選列表的最后這一點上不同。相同圖片上的相鄰塊彼此具有相同編碼信息的可能性較高,而時間不同的其它圖片的相同位置的相鄰的塊具有與之不同的編碼信息的可能性較高,故可以說另行作為候選來登錄的效果較好。例如,即使相同圖片上的相鄰塊都為幀內(nèi),時間不同的其它圖片的相同位置的相鄰的塊具有幀間預(yù)測的編碼信息的可能性也較高。但是,時間不同的其它圖片的相同位置的相鄰的塊與處于與處理對象預(yù)測塊同一圖片上的相鄰塊相比,編碼信息與處理對象預(yù)測塊相等或接近的可能性較低,故降低了優(yōu)先順位。
因此,將優(yōu)先順位降低得比從相同圖片上的塊群選擇的相鄰塊還要低,登錄在參照候選列表的下位的位置。以下,說明實施例8具有與實施例7中說明過的動圖像編碼裝置100及動圖像解碼裝置200同樣的構(gòu)成的情況。但未設(shè)置實施例7的參照候選限制部318及328,而是將參照候選限制部的功能設(shè)置在參照候選列表生成部311、321、或相同信息檢測部312、322中,并適用于與處理對象預(yù)測塊同一圖片上的相鄰塊的塊群。
在動圖像編碼裝置100中設(shè)置的融合檢測部106、對應(yīng)的動圖像解碼裝置200中設(shè)置的融合判定部206的參照候選列表生成部311、和動圖像編碼裝置100中設(shè)置的運動矢量預(yù)測部103、對應(yīng)的動圖像解碼裝置200中設(shè)置的運動矢量導(dǎo)出部204的參照候選列表生成部321中,將與處理對象預(yù)測塊同一圖片上的相鄰塊A0,A1,B0,B1,C0定義為相同圖片上的塊群。按代表相同圖片上的塊群的相鄰塊、T的順序設(shè)定優(yōu)先順位,從優(yōu)先順位高者起向參照候選列表登錄參照相鄰塊的編碼信息的候選,由此削減參照候選列表的索引的碼量。
首先,說明表示動圖像編碼裝置100的構(gòu)成的圖2中所設(shè)置的實施例8的融合檢測部106。融合檢測部106具有與實施例1中說明過的圖11相同的構(gòu)成,但參照候選列表生成部311的處理與實施例1不同。針對實施例8中的融合檢測部106的參照候選列表生成部311的動作進(jìn)行說明。
圖58是表示實施例8中的參照候選列表生成部311的動作的流程圖。在實施例8中,在參照候選列表生成前,設(shè)定相同圖片上的塊群的、要登錄于參照相鄰塊的參照候選列表的數(shù)量K。在此,K設(shè)定為2。此外,K不超過相同圖片上的塊群中的相鄰塊總數(shù)。
首先,將變量N和參照候選列表的索引k初始化(S1300)。變量N被初始設(shè)定為與預(yù)測模式對應(yīng)的優(yōu)先順位最高的相鄰塊。融合模式下的優(yōu)先順位定為A1,B1,B0,A0,C0,故被設(shè)定為A1,N的更新按該順序進(jìn)行。k被設(shè)定為0。索引k表示參照候選列表的保存區(qū)域所被設(shè)定的編碼信息的候選的保存區(qū)域的優(yōu)先順位。
首先,判定相鄰塊N的有效標(biāo)志availableFlagN(S1301)。若availableFlagN為0(S1301的N),則不登錄到參照候選列表中,進(jìn)入步驟S1305。若availableFlagN為1(S1301的Y),則將相鄰塊N的編碼信息登錄到參照候選列表中(S1302),并更新k(S1303)。
在k更新后,進(jìn)入k與K的比較(S1304)。若k小于K(S1304的Y),即登錄于參照候選列表的相鄰塊的數(shù)量未達(dá)到設(shè)定數(shù)K,則進(jìn)入步驟S1305。若k在K以上(S1304的N),則登錄于參照候選列表的相鄰塊的數(shù)量已達(dá)設(shè)定數(shù)K,故從是否登錄于參照候選列表的判定中跳出,進(jìn)入步驟S1307。
然后,判定相鄰塊N是否為最后的參照塊(S1305)。若相鄰塊N不是最后的塊(S1305的N),則更新變量N(S1306),重復(fù)步驟S1301以后的處理。若相鄰塊N是最后的塊(S1305的Y),則進(jìn)入步驟S1307。
在相同圖片上的塊群的登錄判定結(jié)束后,判定時間不同的其它圖片的相同位置的相鄰的塊T的有效標(biāo)志availableFlagT(S1307)。若availableFlagT為1(S1307的Y),則將相鄰塊T的編碼信息登錄到參照候選列表中(S1308),并更新k(S1309)。若availableFlagT為0(S1307的N),則不向參照候選列表登錄,進(jìn)入步驟S1310。在將參照候選列表中所登錄的數(shù)量設(shè)定給候選列表總數(shù)NumListCand后(S1310),結(jié)束處理。
通過以上處理,被登錄到參照候選列表中。在此,登錄于參照候選列表的最大數(shù)用K+1表示。若參照相鄰塊僅1個有效,則最大碼字長度成為0,故不需要碼字,該1個被判定為有效的相鄰塊的編碼信息的候選被唯一決定為參照目標(biāo)。
針對與上述動圖像編碼裝置100中設(shè)置的融合檢測部106對應(yīng)的、動圖像解碼裝置200中設(shè)置的實施例8的融合判定部206進(jìn)行說明。融合判定部206具有與實施例1中說明的圖22相同的構(gòu)成,但參照候選列表生成部311的處理與實施例1不同。這以外的編碼信息導(dǎo)出部310、相同信息檢測部312、參照候選列表保存存儲器314及選擇部315具有與實施例1相同的功能。
此外,參照候選列表生成部311具有與上述實施例8中的融合檢測部106的參照候選列表生成部311相同的功能,故在至融合判定部206的相同信息檢測部312的處理中,生成與實施例8的融合檢測部106相同的參照候選列表。針對從所生成的參照候選列表取得融合模式下的參照相鄰塊的編碼信息的選擇部315進(jìn)行說明。選擇部315從所生成的參照候選列表中選擇由第1編碼比特串解碼部202解碼出的用于確定參照相鄰塊的索引所指定的參照候選列表的相鄰塊。將所選擇的編碼信息提供給運動補償預(yù)測部207,并提供給編碼信息保存存儲器210。
接下來,說明表示動圖像編碼裝置100的構(gòu)成的圖2中設(shè)置的實施例8的運動矢量預(yù)測部103。運動矢量預(yù)測部103具有與實施例1中說明過的圖23相同的構(gòu)成,但參照候選列表生成部321的處理與實施例1不同。針對實施例8中的參照候選列表生成部321的動作進(jìn)行說明。
參照候選列表生成部321同上述的融合檢測部106的參照候選列表生成部311一樣,將位于與處理對象預(yù)測塊同一圖片上的相鄰塊A0,A1,B0,B1,C0作為1個塊群,從該塊群中選擇K個代表的相鄰塊。與融合檢測部106的參照候選列表生成部311相比,在同時生成L0及L1預(yù)測各自的參照候選列表這一點上不同,但處理的流程沒有太大差異,故在此省略說明。另外,將運動估計模式下的優(yōu)先順位定為B0,A0,A1,B1,C0。
關(guān)于與上述動圖像編碼裝置100中設(shè)置的運動矢量預(yù)測部103對應(yīng)的、動圖像解碼裝置200中設(shè)置的實施例8的運動矢量導(dǎo)出部204,運動矢量導(dǎo)出部204的參照候選列表生成部321具有與對應(yīng)的運動矢量預(yù)測部103的參照候選列表生成部321相同的功能,生成與運動矢量預(yù)測部103相同的參照候選列表,故省略此處的說明。
通過以上處理,實施例8中生成的候選列表中,參照相鄰塊全都有效時,與預(yù)測模式不同,如圖59所示。這是融合模式、運動估計模式下都使相同圖片上的塊群的參照相鄰塊的個數(shù)為2時的例子,各預(yù)測模式的優(yōu)先順位高的有效相鄰塊被登錄到參照候選列表中。
在實施例8中,在融合模式時將優(yōu)先順位定為A1,B1,B0,A0,C0的順序,在運動估計模式時將優(yōu)先順位定為B0,A0,A1,B1,C0的順序,但未必一定是該順序。但在融合模式時,將被認(rèn)為編碼信息與處理對象預(yù)測塊的邊相等的可能性最高的、與處理對象預(yù)測塊的邊相接的相鄰塊A1及B1優(yōu)先登錄到參照候選列表的前面,由此能削減融合索引的碼量、提高編碼效率。
運動估計模式是用于傳輸差分運動矢量的模式,為擴展預(yù)測運動矢量的選擇范圍,使左側(cè)和上側(cè)的候選間的距離遠(yuǎn)離地進(jìn)行登錄,以使得左側(cè)和上側(cè)的相鄰塊的候選的運動矢量的差變大,由此,能削減差分運動矢量的碼量、提高編碼效率。該運動估計模式下的優(yōu)先順位的決定方法與盡可能將成為相同編碼信息的概率較高的相鄰塊作為優(yōu)先候選而登錄的融合模式相比,目的不同。此外,還能如在實施例3中說明的那樣,在融合模式時使用實施例8、在運動估計模式時使用實施例2或其它實施例等,根據(jù)預(yù)測模式而改變組合。
(實施例9)
在實施例9中,同實施例1一樣,針對與處理對象預(yù)測塊處于同一圖片上的相鄰塊和時間不同的其它圖片的相同位置的相鄰的塊,若相鄰塊有效則登錄到參照候選列表中,并從參照候選列表中選擇最佳的相鄰塊的編碼信息,將表示相鄰塊的參照候選列表的索引編碼、傳送。
利用圖9的(a)的相鄰塊的配置進(jìn)行說明。在實施例1中,在生成參照候選列表時,針對相鄰塊的位置建立預(yù)先決定的優(yōu)先順位的對應(yīng),按優(yōu)先順位的順序判定相鄰塊是否滿足預(yù)定的條件,并在滿足條件時登錄于參照候選列表的前面,生成參照候選列表。即,與相鄰塊的位置建立了對應(yīng)的優(yōu)先順位直接被反映于參照候選列表的索引,優(yōu)先順位越高,越被保存到小索引的參照候選列表的保存區(qū)域。
一般,處理對象預(yù)測塊周圍的相鄰塊與處理對象預(yù)測塊相接的區(qū)域越大,其編碼信息被認(rèn)為與處理對象預(yù)測塊相等的可能性越高,故將這樣的相鄰塊優(yōu)先登錄于參照候選列表的前面,由此削減索引的碼量、提高編碼效率。
基于以上這些點,在實施例9中,在運動估計模式下,彼此獨立地定義生成運動矢量預(yù)測的參照候選列表時判定相鄰塊的有效性的順序、和分配給參照相鄰塊的碼字的順序。為擴展預(yù)測運動矢量的選擇范圍,將在生成參照候選列表時判定相鄰塊的有效性的順序定為使相鄰塊間的距離遠(yuǎn)離的順位,以使得左側(cè)和上側(cè)的相鄰塊的候選的運動矢量的差變大。
在此,將生成運動矢量預(yù)測的參照候選列表時判定相鄰塊的有效性的順序定為B0,A0,A1,B1,C0,T。另一方面,關(guān)于分配給參照相鄰塊的碼字,使與處理對象預(yù)測塊相接的區(qū)域較大的相鄰塊優(yōu)先,按A1,B1,B0,A0,C0,T順序分配少的碼字。
針對表示動圖像編碼裝置100的構(gòu)成的圖2中設(shè)置的實施例9的運動矢量預(yù)測部103進(jìn)行說明。實施例9的運動矢量預(yù)測部103具有與實施例1中說明過的圖23相同的構(gòu)成,但參照候選列表生成部321的動作不同。針對實施例9中的參照候選列表生成部321的動作進(jìn)行說明。圖60是表示實施例9的運動估計模式下的參照候選列表生成部321的動作的流程圖,利用該圖進(jìn)行說明。
參照候選列表生成部321基本上實施與運動矢量預(yù)測部103中的參照候選列表生成部321同樣的動作。在運動估計模式下,需要根據(jù)參照列表生成L0預(yù)測和L1預(yù)測各自的參照候選列表,故運動估計模式下的參照候選列表的生成是針對L0預(yù)測和L1預(yù)測實施2次的。因此,在判定相鄰塊的有效性的步驟S601中,對表示相鄰塊的有效性的標(biāo)志availableFlagLXN(X為0或1,N記述表示相鄰塊的記號)附加表示參照列表的LX后綴,但判定動作與融合模式時是同樣的。
在圖60中,相對于表示運動矢量預(yù)測部103中的參照候選列表生成部321的動作的圖19的流程圖,新追加了變換表的生成、更新(S608),包括該判定部在內(nèi),說明參照候選列表生成部321的動作。在此僅說明一方的參照列表,關(guān)于另一方的參照列表,判定動作是同樣的,故省略說明。
首先,將變量N和參照候選列表的索引k初始化(S600)。變量N被初始設(shè)定圖9的(a)所示的相鄰塊B0,k被設(shè)定為0。索引k表示在參照候選列表保存存儲器324中設(shè)置的參照候選列表的保存區(qū)域所被設(shè)定的編碼信息的候選的保存區(qū)域的優(yōu)先順位。該保存區(qū)域呈排列構(gòu)造,用candList來表示。索引的數(shù)字從0開始,在參照候選列表candList的保存區(qū)域內(nèi)保存參照相鄰塊的編碼信息的候選。在以后的處理中,參照候選列表candList中所登錄的索引i的編碼信息用candList[i]來表示。
然后,判定參照相鄰塊N的有效標(biāo)志availableFlagLXN(S601)。在此,X為0或1。若availableFlagLXN為0(S601的N),則不向參照候選列表登錄,進(jìn)入下一步驟。判定相鄰塊N是否為最后的參照塊(S604)。若為最后的塊(S604的Y),則在將索引k的值設(shè)定給候選列表總數(shù)NumListCand后(S605),結(jié)束處理。若非最后的塊(S604的N),則更新變量N(S606),重復(fù)步驟S601以后的處理。在此,更新變量N的相鄰塊順序成為向參照候選列表保存的優(yōu)先順位,在實施例9中,假定設(shè)定順序(B0,A0,A1,B1,C0,T)。
另一方面,若availableFlagLXN為1(S601的Y),則將相鄰塊N的編碼信息登錄于參照候選列表candList[k](S602),實施變換表的生成和更新(S608),并更新k(S603)。
在此,說明變換表的生成和更新(S608)的詳細(xì)情況。在變換表的生成和更新中,生成使在運動矢量預(yù)測的參照候選列表生成時判定相鄰塊的有效性的順序、與分配給參照相鄰塊的碼字的順序相對應(yīng)的變換表。變換表是設(shè)于參照候選列表保存存儲器324的呈排列構(gòu)造的保存區(qū)域,保存表示與參照候選列表的索引對應(yīng)的碼字的變換表索引。
利用圖61進(jìn)行說明。變量N和參照候選列表的索引k被輸入,變換表的生成和更新開始。首先,將變量M和變換表的索引j初始化(S1400)。變量M被初始設(shè)定為圖9的(a)所示的相鄰塊A1,j被設(shè)定為0。變量M被按A1,B1,B0,A0,C0,T的順序更新。然后,進(jìn)行M與N的相同判定(S1401)。若M與N不同(S1401的N),則不向變換表登錄,更新j(S1403)。
接下來,判定變量M是否為最后的相鄰塊(S1404)。最后的相鄰塊是T,若M為T(S1404的Y),則結(jié)束處理。若非最后的塊(S1404的N),則更新變量M(S1405),重復(fù)步驟S1401以后的處理。
若M為N(S1401的Y),則將參照候選列表的索引k登錄到變換表起始起的第j個保存區(qū)域(S1402)。索引k登錄后結(jié)束處理,返回圖60的k的更新(S603)。通過以上處理,參照候選列表的索引k被登錄到變換表中,若參照相鄰塊全都有效,則與圖62所示的變換表的索引所表示的碼字建立對應(yīng)。
使用該變換表,所登錄的參照候選列表若參照相鄰塊全部有效,則按圖63所示的順序生成參照候選列表、被分配碼字。若參照相鄰塊僅1個有效,則不需要碼字,該1個被判定有效的相鄰塊的編碼信息的候選被唯一決定為參照目標(biāo)。
在此,對參照候選列表生成部321剛生成的參照候選列表的索引進(jìn)行了說明,但本來是優(yōu)選在由相同信息檢測部322從參照候選列表中刪除掉具有相同編碼信息的參照候選的相鄰塊后,使參照候選列表的索引與變換表的索引建立對應(yīng)。與被相同信息檢測部322刪除后的參照候選的相鄰塊的參照候選列表索引相應(yīng)的變換表的保存區(qū)域也被刪除,向變換表的起始方向填充。
例如,在圖62中,在與參照候選列表的索引1相應(yīng)的相鄰塊被刪除的情況下,與參照候選列表的索引1相應(yīng)的變換表的索引3的位置被刪除。變換表的索引4和5分別成為3和4,與之分別對應(yīng)的碼字也被更新為1110和1111。
如上這樣,將所生成的參照候選列表的運動矢量作為預(yù)測運動矢量,在差分運動矢量導(dǎo)出部326中根據(jù)運動矢量估計部102估計出的運動矢量和預(yù)測運動矢量導(dǎo)出差分運動矢量,并將導(dǎo)出的差分運動矢量提供給輸出部323。輸出部323將所生成的參照候選列表中的索引和差分運動矢量輸出。關(guān)于參照候選列表,將參照候選列表作為MVP列表輸出,將列表中的索引作為MVP索引而輸出。
與上述動圖像編碼裝置100中設(shè)置的運動矢量預(yù)測部103對應(yīng)的、動圖像解碼裝置200中設(shè)置的運動矢量導(dǎo)出部204中也具有實現(xiàn)與運動矢量預(yù)測部103同樣功能的實施例9的參照候選列表生成部321或相同信息檢測部322,故生成與運動矢量預(yù)測部103相同的參照候選列表。所生成的參照候選列表輸出給選擇部325。
選擇部325從所生成的參照候選列表中選擇由第1編碼比特串解碼部202解碼出的確定參照相鄰塊的索引所指定的參照候選列表的相鄰塊。從所選擇的列表的相鄰塊的編碼信息中將運動矢量作為預(yù)測運動矢量輸出,由差分運動矢量導(dǎo)出部326將預(yù)測運動矢量和第1編碼比特串解碼部202解碼出的差分運動矢量相加而導(dǎo)出運動矢量,提供給運動補償預(yù)測部207,并將所選擇的參照候選列表的相鄰塊的編碼信息提供給編碼信息保存存儲器210。
(實施例10)
實施例10是在運動估計模式下、針對生成參照候選列表時判定相鄰塊的有效性的順序,按最初的相鄰塊是否有效而變更其后的相鄰塊的判定順序的實施例。利用圖9的(a)的相鄰塊的配置進(jìn)行說明。將實施例9的生成參照候選列表時判定相鄰塊的有效性的順序B0,A0,A1,C0,B1,T作為一例來進(jìn)行說明。
最初判定的相鄰塊是B0,若B0是有效的,則其后的相鄰塊的順序不被變更。若B0無效,則其后的相鄰塊的順序被變更成A0,B1,C0,A1順序。若B0無效,則A0成為最初判定的相鄰塊,其次的相鄰塊為A1。A1處于與A0接近的位置,故成為接近A0的值的運動矢量的可能性較高,A1被選為預(yù)測運動矢量的可能性變低。
運動估計模式是用于傳輸差分運動矢量的模式,若參照相鄰塊具有的塊為接近的值,則預(yù)測運動矢量的選擇范圍變窄,將不能檢測出適當(dāng)?shù)念A(yù)測運動矢量。因此,當(dāng)B0無效時,在A0之后進(jìn)行判定的相鄰塊為擴展預(yù)測運動矢量的選擇范圍而選擇與A0距離較遠(yuǎn)的相鄰塊B1,以使得與A0的運動矢量的差變大。這樣變更判定的順序,以使得成為預(yù)測運動矢量的候選的相鄰塊的距離盡可能遠(yuǎn)離。
(實施例11)
在實施例11中,表示了在運動估計模式時,將與處理對象預(yù)測塊處于同一圖片上的相鄰塊定義為相同圖片上的塊群,從中選擇代表塊群的2個相鄰塊的一種方法。利用圖9的(a)的相鄰塊的配置進(jìn)行說明。將生成參照候選列表時判定相鄰塊的有效性的順序定為B0,B1,C0,A1,A0。
最初,按排列的從左至右的順序B0,B1,C0,A1,A0(順方向)判定相鄰塊的有效性,將最初被判定有效的相鄰塊首先作為第1個代表塊群的相鄰塊而登錄于參照候選列表。然后,按排列順序的逆順序、即從右向左的順序A0,A1,C0,B1,B0(逆方向)判定相鄰塊的有效性,作為另一個代表塊群的相鄰塊登錄于參照候選列表。
判定相鄰塊的有效性的順序在從處理對象預(yù)測塊的右上角部至左下角部時,使有效性的判定順序反轉(zhuǎn),加大候選間距離地進(jìn)行登錄,以使得相鄰塊的候選的運動矢量的差變大,由此擴展預(yù)測運動矢量的選擇的范圍,削減差分運動矢量的碼量、提高編碼效率。
此外,在按順方向、逆方向判定相鄰塊的有效性時,在順方向時可以省略A0的判定、在逆方向時可以省略B0的判定,即省略各相當(dāng)于最后順序的相鄰塊的判定。這是因為,在順方向的判定中選擇最后的A0時,就是逆方向的最初判定中成為有效的相鄰塊,故作為在順方向的判定中選擇的相鄰塊并不恰當(dāng)。
此外,也可以進(jìn)行限制,使得在各方向的判定中僅判定至C0的3個相鄰塊。例如,在順方向的判定中A0被選擇、在逆方向的判定中A1被選擇的情況下,成為具有相同運動矢量的相鄰塊的可能性較高,運動矢量預(yù)測的選擇范圍變窄,將無法導(dǎo)出效果好的預(yù)測運動矢量。為避免選擇這樣的接近的相鄰塊,至處于中間位置的C0為止進(jìn)行有效性判定。通過以上這樣的有效性判定的限制,要判定的相鄰塊數(shù)變少,故可削減處理工序。
(實施例12)
實施例12是在運動估計模式時,針對實施例9,將與處理對象預(yù)測塊同一圖片上的相鄰塊定義為相同圖片上的塊群,從中選擇代表塊群的相鄰塊。在實施例12中,同實施例9一樣,分別定義生成運動矢量預(yù)測的參照候選列表時判定相鄰塊的有效性的順序、和分配給參照相鄰塊的碼字的順序。
在生成參照候選列表時,為擴展預(yù)測運動矢量的選擇范圍,采用使相鄰塊間的距離相遠(yuǎn)離的順位,以使得左側(cè)和上側(cè)的相鄰塊的候選的運動矢量的差變大,在碼字分配中,對被認(rèn)為與處理對象預(yù)測塊的編碼信息相等可能性最高的、與處理對象預(yù)測塊相接的區(qū)域較大的相鄰塊優(yōu)先分配較小的碼字。
在此,將生成運動矢量預(yù)測的參照候選列表時判定相鄰塊的有效性的順序定為B0,A0,A1,C0,B1,T。另一方面,關(guān)于對參照相鄰塊分配的碼字,使與處理對象預(yù)測塊相接的區(qū)域大的相鄰塊優(yōu)先,按A1,B1,B0,A0,C0,T的順序分配少的碼字。
首先,說明表示動圖像編碼裝置100的構(gòu)成的圖2中設(shè)置的成為實施例12的特征的運動矢量預(yù)測部103。運動矢量預(yù)測部103具有圖64所示的構(gòu)成,相對于實施例9中說明的圖23,在參照候選列表生成部321后面追加了參照候選控制部329,在這一點上不同。
此外,在實施例12中,要選擇代表與處理對象預(yù)測塊相同圖片上的塊群的相鄰塊,故參照候選列表生成部321進(jìn)行與實施例8中說明過的從與處理對象預(yù)測塊相同圖片上的塊群進(jìn)行選擇的方法同樣的動作。在此,從相同圖片上的塊群中選擇K個代表的相鄰塊。將所選擇的代表相同圖片上的塊群的K個相鄰塊、和時間不同的其它圖片的相同位置的相鄰的塊T,共K+1個相鄰塊的編碼信息作為參照候選登錄于參照候選列表。
在此,K定為2,在參照候選列表生成部321中,從參照候選列表的起始起,代表相同圖片上的塊群的2個相鄰塊、和時間不同的其它圖片的相同位置的相鄰的塊、共計3個的編碼信息被登錄于參照候選列表,以下基于此進(jìn)行說明。
圖65是表示參照候選控制部329的動作的流程圖。被輸入?yún)⒄蘸蜻x列表生成部321中生成的參照候選列表和被登錄于參照候選列表的參照候選數(shù)NumListCand。首先,進(jìn)行NumListCand的判定(S1500)。若NumListCand不足2(S1500的Y)、即參照候選列表中所登錄的參照候選為1,則該1個候選被唯一決定為參照目標(biāo),故結(jié)束處理。
若NumListCand比2大(S1500的N),則將具有從參照候選列表的起始起第2個登錄的編碼信息CandListLX[1]的相鄰塊定為N。在此,參照候選列表的排列CandListLX是以0為參照候選列表的起始索引開始的,故CandListLX[1]成為保存從參照候選列表的起始起登錄的第2個編碼信息的保存區(qū)域,后綴X為表示參照列表的參照列表的0(L0預(yù)測)或1(L1預(yù)測)。
接下來,判定N是否為相鄰塊A1或B1(S1502)。若N既非A1也非B1(S1502的N),則結(jié)束處理。若N為A1或B1(S1502的Y),則實施參照候選列表中的編碼信息調(diào)換(S1503)。進(jìn)行參照候選列表的起始的編碼信息CandListLX[0]和第2個編碼信息CandListLX[1]的調(diào)換。
參照候選列表的生成的順序是B0,A0,A1,C0,B1,故在A1或B1位于參照候選列表的第2個時,起始的相鄰塊的碼字長度會比A1或B1更長。這是因為,用于確定相鄰塊的索引的碼字分配順序被定義為A1,B1,B0,A0,C0,T,故碼字長度為A1<B1<B0<A0<C0<T。因此,將A1或B1調(diào)換至參照候選列表的起始,提高碼字長度短的索引的相鄰塊在參照候選列表中的優(yōu)先度,削減索引的碼量。
此外,作為調(diào)換前的參照候選列表中的順序,在為A1,B1時也實施調(diào)換,碼字長的B1成為參照候選列表的起始,但與其它相鄰塊成為參照候選列表的起始時相比,能抑制編碼效率的損失。如上這樣實施參照候選列表中的調(diào)換,能向參照候選列表的上位分配以較少碼字確定相鄰塊的相鄰塊,能提高編碼效率。
如上這樣,在相同信息檢測部322后,將所生成的參照候選列表的運動矢量作為預(yù)測運動矢量,差分運動矢量導(dǎo)出部326根據(jù)運動矢量估計部102估計出的運動矢量和預(yù)測運動矢量導(dǎo)出差分運動矢量,將導(dǎo)出的差分運動矢量提供給輸出部323。輸出部323輸出所生成的參照候選列表中的索引和差分運動矢量。關(guān)于參照候選列表,將參照候選列表作為MVP列表輸出,將列表中的索引作為MVP索引輸出。
在與上述動圖像編碼裝置100中設(shè)置的運動矢量預(yù)測部103對應(yīng)的、動圖像解碼裝置200中設(shè)置的運動矢量導(dǎo)出部204中,也設(shè)置具有與運動矢量預(yù)測部103同樣功能的實施例12的參照候選控制部329,故生成與運動矢量預(yù)測部103相同的參照候選列表。所生成的參照候選列表被輸出到選擇部325。選擇部325從所生成的參照候選列表中選擇由第1編碼比特串解碼部202解碼出的確定參照相鄰塊的索引所指定的參照候選列表的相鄰塊。從所選擇的列表的相鄰塊的編碼信息中,將運動矢量作為預(yù)測運動矢量而輸出,由差分運動矢量導(dǎo)出部326將預(yù)測運動矢量和第1編碼比特串解碼部202解碼出的差分運動矢量相加,導(dǎo)出運動矢量,提供給運動補償預(yù)測部207,并將所選擇的參照候選列表的相鄰塊的編碼信息提供給編碼信息保存存儲器210。
如以上說明,在本發(fā)明的實施例中,在運動矢量的預(yù)測方法和融合方法中統(tǒng)合各自要參照的周邊的相鄰塊的配置,由此削減保存相鄰塊的信息的臨時存儲器,從共通化了的參照相鄰塊中針對各預(yù)測方法分別決定候選的優(yōu)先順位,由此能削減圖像間預(yù)測時的運動矢量的預(yù)測方法和融合方法的編碼效率的冗余度,并能提高解碼時的處理效率。此外,在進(jìn)行運動補償前,根據(jù)要參照的周圍相鄰塊的預(yù)測模式和位置信息等,判定參照該塊的有效性,由此能削減運動補償?shù)奶幚泶螖?shù)。
以下更具體地進(jìn)行說明。為削減所能想到的最大存儲器訪問次數(shù)、存儲器量、處理量(處理時間),如圖9的(a)所示那樣,將左側(cè)相鄰的塊、上側(cè)相鄰的塊分別限定為1個,由此來縮減候選。通過像這樣預(yù)先限定候選,具有幾乎不使編碼效率下降地削減存儲器訪問次數(shù)、存儲器量、處理量(處理時間)的效果。
此外,除能削減存儲器訪問次數(shù)、存儲器量、處理量(處理時間)外,還能削減融合索引、MVP索引的碼量,故還具有削減碼量的效果。此外,通過在融合模式和運動估計模式下使候選的位置共通化,來謀求進(jìn)一步的削減存儲器訪問次數(shù)、存儲器量、處理量(處理時間)。進(jìn)而,按與融合模式及運動估計模式各自的特性相應(yīng)的配置向候選列表中保存候選,由此,在融合模式下削減融合索引的碼量,在運動估計模式下削減MVP索引、及差分運動矢量的碼量,從而改善編碼效率。
此外,本發(fā)明并非限定于以上的實施例,例如還包括用于使計算機實現(xiàn)上述動圖像編碼/解碼裝置的功能的動圖像編碼/解碼程序。該動圖像編碼/解碼程序可以被從記錄媒體讀取出來裝到計算機中,也可以介由通信網(wǎng)絡(luò)傳輸而裝到計算機中。
以上所述的實施例的動圖像編碼裝置所輸出的動圖像的編碼比特流具有規(guī)定的數(shù)據(jù)格式,以使得能根據(jù)實施例中所用的編碼方法而解碼,與動圖像編碼裝置對應(yīng)的動圖像解碼裝置能解碼該規(guī)定的數(shù)據(jù)格式的編碼比特流。
為在動圖像編碼裝置與動圖像解碼裝置間傳輸編碼比特流而采用有線或無線的網(wǎng)絡(luò)時,可以將編碼比特流變換成適于通信路徑的傳輸方式的數(shù)據(jù)形式。此時,設(shè)置將動圖像編碼裝置輸出的編碼比特流變換成適于通信路徑的傳輸方式的數(shù)據(jù)形式的編碼數(shù)據(jù)而發(fā)送于網(wǎng)絡(luò)的動圖像發(fā)送裝置、和從網(wǎng)絡(luò)接收編碼數(shù)據(jù)并復(fù)原成編碼比特流提供給動圖像解碼裝置的動圖像接收裝置。
動圖像發(fā)送裝置包括對動圖像編碼裝置輸出的編碼比特流進(jìn)行緩存的存儲器、將編碼比特流打包的包處理部、介由網(wǎng)絡(luò)發(fā)送被打包后的編碼數(shù)據(jù)的發(fā)送部。動圖像接收裝置包括介由網(wǎng)絡(luò)接收被打包的編碼數(shù)據(jù)的接收部、對接收到的編碼數(shù)據(jù)進(jìn)行緩存的存儲器、對編碼數(shù)據(jù)進(jìn)行包處理而生成編碼流并提供給動圖像解碼裝置的包處理部。
以上基于幾個實施例說明了本發(fā)明。本領(lǐng)域技術(shù)人員當(dāng)理解,這些實施例僅為例示,其各構(gòu)成要素和各處理過程的組合可以有各種變形例,且這樣的變形例也包含在本發(fā)明的范圍內(nèi)。
〔項目1〕一種將動圖像的各圖片按分割后的塊單位、利用運動矢量進(jìn)行編碼的圖像編碼裝置,其特征在于,包括:
取得部,取得編碼對象塊的多個參照塊候選的編碼信息,
第1模式檢測部,在利用通過索引而確定的參照塊的上述編碼信息所具備的運動矢量的信息的第1圖像間預(yù)測模式下,基于第1預(yù)定順位從上述多個參照塊候選生成第1候選列表,并賦予用于確定上述第1候選列表中所登錄的參照塊候選的索引,輸出上述多個參照塊候選的索引,
第2模式檢測部,在利用預(yù)測運動矢量與上述編碼對象塊的運動矢量的差分運動矢量的第2圖像間預(yù)測模式下,基于第2預(yù)定順位從上述多個參照塊候選生成第2候選列表,并賦予用于確定上述第2候選列表中所登錄的參照塊候選的索引,輸出上述多個參照塊候選的索引及上述差分運動矢量,其中所述預(yù)測運動矢量是基于由索引確定的參照塊的上述編碼信息所具備的運動矢量的信息的預(yù)測運動矢量,
預(yù)測方法決定部,基于上述第1模式檢測部及上述第2模式檢測部的輸出結(jié)果,決定各上述編碼對象塊的參照塊和圖像間預(yù)測模式,以及
碼串生成部,將上述預(yù)測方法決定部所決定的參照塊的索引、表示上述預(yù)測方法決定部所決定的圖像間預(yù)測模式的預(yù)測模式信息、以及與被決定第2圖像間預(yù)測模式時的參照塊對應(yīng)的上述差分運動矢量編碼;
其中,上述第1模式檢測部及上述第2模式檢測部使用共通的多個塊作為上述多個參照塊候選。
〔項目2〕如權(quán)利要求1所述的圖像編碼裝置,其特征在于,
越是上述第1預(yù)定順位高的參照塊候選的索引,上述第1模式檢測部越分配較少的碼字。
〔項目3〕如權(quán)利要求1或2所述的圖像編碼裝置,其特征在于,
用于在上述第1模式檢測部所生成的上述第1候選列表中排列上述多個參照塊候選的上述第1預(yù)定順位、與用于在上述第2模式檢測部所生成的上述第2候選列表中排列上述多個參照塊候選的上述第2預(yù)定順位是不同的。
〔項目4〕如權(quán)利要求1至3的任一項所述的圖像編碼裝置,其特征在于,
上述第1模式檢測部限制上述多個參照塊候選的數(shù)量地生成上述多個參照塊候選的上述第1候選列表;
上述第2模式檢測部限制上述多個參照塊候選的數(shù)量地生成上述多個參照塊候選的上述第2候選列表。
〔項目5〕如權(quán)利要求1至4的任一項所述的圖像編碼裝置,其特征在于,
在上述多個參照塊候選中,包括與上述編碼對象塊空間上相鄰的已被編碼的塊、和與包含上述編碼對象塊的圖片時間上不同的圖片中所包含的塊;
上述第1模式檢測部及上述第2模式檢測部在上述多個參照塊候選中、將上述時間上不同的圖片中所包含的塊的上述第1預(yù)定順位及第2預(yù)定順位時的順位、設(shè)定得比上述空間上相鄰的塊的上述第1預(yù)定順位及第2預(yù)定順位時的順位低。
〔項目6〕如權(quán)利要求5所述的圖像編碼裝置,其特征在于,
上述第1模式檢測部在針對上述空間上相鄰的已被編碼的多個塊、基于上述第1預(yù)定順位生成上述第1候選列表時,對將上述空間上相鄰的多個塊排列到上述第1候選列表中的候選數(shù)設(shè)置預(yù)定的上限值,利用按上述第1預(yù)定順位從最高位起至上述預(yù)定的上限值量的順位為止的參照塊,來生成上述第1候選列表。
〔項目7〕如權(quán)利要求5或6所述的圖像編碼裝置,其特征在于,
上述第2模式檢測部將上述空間上相鄰的已被編碼的多個塊中的、被配置于上述編碼對象塊左側(cè)的塊作為左塊群,將被配置于上述編碼對象塊上側(cè)的塊作為上塊群,從上述塊群中導(dǎo)出代表各自上述塊群的候選,并按照上述左塊群的候選、上述上塊群的候選的順序設(shè)定上述第2預(yù)定順位,生成上述第2候選列表。
〔項目8〕如權(quán)利要求1至7的任一項所述的圖像編碼裝置,其特征在于,
上述第1模式檢測部設(shè)定要排列于上述第1候選列表的參照塊候選的最大個數(shù),并基于上述參照塊候選的最大個數(shù)來生成上述第1候選列表;
上述碼串生成部將表示上述參照塊候選的最大個數(shù)的信息編碼而包含在碼串中。
〔項目9〕一種將動圖像的各圖片按分割后的塊單位、利用運動矢量進(jìn)行編碼的圖像編碼方法,其特征在于,包括:
第1步驟,取得編碼對象塊的多個參照塊候選的編碼信息,
第2步驟,在利用通過索引而確定的參照塊的上述編碼信息所具備的運動矢量的信息的第1圖像間預(yù)測模式下,基于第1預(yù)定順位從上述多個參照塊候選生成第1候選列表,并賦予用于確定上述第1候選列表中所登錄的參照塊候選的索引,輸出上述多個參照塊候選的索引,
第3步驟,在利用預(yù)測運動矢量與上述編碼對象塊的運動矢量的差分運動矢量的第2圖像間預(yù)測模式下,基于第2預(yù)定順位從上述多個參照塊候選生成第2候選列表,并賦予用于確定上述第2候選列表中所登錄的參照塊候選的索引,輸出上述多個參照塊候選的索引及上述差分運動矢量,其中所述預(yù)測運動矢量是基于由索引確定的參照塊的上述編碼信息所具備的運動矢量的信息的預(yù)測運動矢量,
第4步驟,基于上述第2步驟及上述第3步驟所輸出的輸出結(jié)果,決定各上述編碼對象塊的參照塊和圖像間預(yù)測模式,以及
第5步驟,將由上述第4步驟決定的參照塊的索引、表示上述第4步驟所決定的圖像間預(yù)測模式的預(yù)測模式信息、以及與被決定第2圖像間預(yù)測模式時的參照塊對應(yīng)的上述差分運動矢量編碼;
其中,上述第2步驟及上述第3步驟使用共通的多個塊作為上述多個參照塊候選。
〔項目10〕一種將動圖像的各圖片按分割后的塊單位、利用運動矢量進(jìn)行編碼的圖像編碼程序,其特征在于,使計算機執(zhí)行:
第1處理,取得編碼對象塊的多個參照塊候選的編碼信息,
第2處理,在利用通過索引而確定的參照塊的上述編碼信息所具備的運動矢量的信息的第1圖像間預(yù)測模式下,基于第1預(yù)定順位從上述多個參照塊候選生成第1候選列表,并賦予用于確定上述第1候選列表中所登錄的參照塊候選的索引,輸出上述多個參照塊候選的索引,
第3處理,在利用預(yù)測運動矢量與上述編碼對象塊的運動矢量的差分運動矢量的第2圖像間預(yù)測模式下,基于第2預(yù)定順位從上述多個參照塊候選生成第2候選列表,并賦予用于確定上述第2候選列表中所登錄的參照塊候選的索引,輸出上述多個參照塊候選的索引及上述差分運動矢量,其中所述預(yù)測運動矢量是基于由索引確定的參照塊的上述編碼信息所具備的運動矢量的信息的預(yù)測運動矢量,
第4處理,基于上述第2處理及上述第3處理所輸出的輸出結(jié)果,決定各上述編碼對象塊的參照塊和圖像間預(yù)測模式,以及
第5處理,將由上述第4處理決定的參照塊的索引、表示上述第4處理所決定的圖像間預(yù)測模式的預(yù)測模式信息、以及與被決定第2圖像間預(yù)測模式時的參照塊對應(yīng)的上述差分運動矢量編碼;
其中,上述第2處理及上述第3處理使用共通的多個塊作為上述多個參照塊候選。
〔項目11〕一種對將動圖像的各圖片按分割后的塊單位、利用運動矢量而編碼后的碼串進(jìn)行解碼的圖像解碼裝置,其特征在于,包括:
碼串解碼部,從上述碼串中,針對各解碼對象塊、解碼出表示圖像間預(yù)測模式的預(yù)測模式信息和參照塊的索引,或者表示圖像間預(yù)測模式的預(yù)測模式信息、參照塊的索引、以及與參照塊對應(yīng)的差分運動矢量,
取得部,取得上述解碼對象塊的多個參照塊候選的編碼信息,
第1模式輸出部,在由上述碼串解碼部解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式為利用由索引確定的參照塊的上述編碼信息所具備的運動矢量的信息的第1圖像間預(yù)測模式時,基于第1預(yù)定順位從上述多個參照塊候選生成第1候選列表,并基于上述碼串解碼部所解碼出的參照塊的索引,從上述第1候選列表中確定上述解碼對象塊的參照塊,輸出該編碼信息,
第2模式輸出部,在由上述碼串解碼部解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式為利用與由索引確定的參照塊對應(yīng)的差分運動矢量的第2圖像間預(yù)測模式時,基于第2預(yù)定順位從上述多個參照塊候選生成第2候選列表,并基于上述碼串解碼部解碼出的參照塊的索引,從上述第2候選列表中確定上述解碼對象塊的參照塊,基于預(yù)測運動矢量和上述碼串解碼部解碼出的差分運動矢量導(dǎo)出上述解碼對象塊的運動矢量并輸出,其中所述預(yù)測運動矢量是基于該參照塊的上述編碼信息所具備的運動矢量的信息的預(yù)測運動矢量,
運動補償預(yù)測部,基于從上述第1模式輸出部或上述第2模式輸出部輸出的信息,利用由上述碼串解碼部解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式來進(jìn)行運動補償,生成預(yù)測圖像;
其中,上述第1模式輸出部及上述第2模式輸出部使用共通的多個塊作為上述多個參照塊候選。
〔項目12〕如權(quán)利要求11所述的圖像解碼裝置,其特征在于,
越是上述第1預(yù)定順位高的參照塊候選的索引,上述第1模式輸出部越分配較少的碼字。
〔項目13〕如權(quán)利要求11或12所述的圖像解碼裝置,其特征在于,
用于在上述第1模式輸出部所生成的上述第1候選列表中排列參照塊候選的上述第1預(yù)定順位、與用于在上述第2模式輸出部所生成的上述第2候選列表中排列參照塊候選的上述第2預(yù)定順位是不同的。
〔項目14〕如權(quán)利要求11至13的任一項所述的圖像解碼裝置,其特征在于,
上述第1模式輸出部限制上述多個參照塊候選的數(shù)量地生成上述多個參照塊候選的上述第1候選列表;
上述第2模式輸出部限制上述多個參照塊候選的數(shù)量地生成上述多個參照塊候選的上述第2候選列表。
〔項目15〕如權(quán)利要求11至14的任一項所述的圖像解碼裝置,其特征在于,
在上述多個參照塊候選中,包括與上述解碼對象塊空間上相鄰的已被解碼的塊、和與包含上述解碼對象塊的圖片時間上不同的圖片中所包含的塊;
上述第1模式輸出部及上述第2模式輸出部在上述多個參照塊候選中將上述時間上不同的圖片所包含的塊的上述第1預(yù)定順位及第2預(yù)定順位時的順位、設(shè)定得比上述空間上相鄰的塊的上述第1預(yù)定順位及第2預(yù)定順位時的順位低。
〔項目16〕如權(quán)利要求15所述的圖像解碼裝置,其特征在于,
上述第1模式輸出部在針對上述空間上相鄰的已被解碼的多個塊、基于上述第1預(yù)定順位來生成上述第1候選列表時,對將上述空間上相鄰的多個塊排列到上述第1候選列表中的候選數(shù)設(shè)置預(yù)定的上限值,并利用按上述第1預(yù)定順位從最高位起至上述預(yù)定的上限值量的順位的參照塊,生成上述第1候選列表。
〔項目17〕如權(quán)利要求15或16所述的圖像解碼裝置,其特征在于,
上述第2模式輸出部將上述空間上相鄰的已被解碼的多個塊中的、被配置在上述解碼對象塊左側(cè)的塊作為左塊群、將被配置在上述解碼對象塊上側(cè)的塊作為上塊群,從上述塊群中導(dǎo)出分別代表各自上述塊群的候選,按上述左塊群的候選、上述上塊群的候選的順序設(shè)定上述第2預(yù)定順位,生成上述第2候選列表。
〔項目18〕如權(quán)利要求11至17的任一項所述的圖像解碼裝置,其特征在于,
上述第1模式輸出部基于由上述碼串解碼部從上述碼串中解碼出的上述第1候選列表內(nèi)所排列的參照塊候選的最大個數(shù),來生成上述第1候選列表。
〔項目19〕一種對將動圖像的各圖片按分割后的塊單位、利用運動矢量而編碼后的碼串進(jìn)行解碼的圖像解碼方法,其特征在于,包括:
第1步驟,從上述碼串中,針對各解碼對象塊、解碼出表示圖像間預(yù)測模式的預(yù)測模式信息和參照塊的索引,或者表示圖像間預(yù)測模式的預(yù)測模式信息、參照塊的索引、以及與參照塊對應(yīng)的差分運動矢量,
第2步驟,取得上述解碼對象塊的多個參照塊候選的編碼信息,
第3步驟,在由上述第1步驟解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式為利用由索引確定的參照塊的上述編碼信息所具備的運動矢量的信息的第1圖像間預(yù)測模式時,基于第1預(yù)定順位從上述多個參照塊候選生成第1候選列表,并基于上述碼串解碼部所解碼出的參照塊的索引,從上述第1候選列表中確定上述解碼對象塊的參照塊,輸出該編碼信息,
第4步驟,在由上述第1步驟解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式為利用與由索引確定的參照塊對應(yīng)的差分運動矢量的第2圖像間預(yù)測模式時,基于第2預(yù)定順位從上述多個參照塊候選生成第2候選列表,并基于上述碼串解碼部解碼出的參照塊的索引,從上述第2候選列表中確定上述解碼對象塊的參照塊,基于預(yù)測運動矢量和上述碼串解碼部解碼出的差分運動矢量導(dǎo)出上述解碼對象塊的運動矢量并輸出,其中所述預(yù)測運動矢量是基于該參照塊的上述編碼信息所具備的運動矢量的信息的預(yù)測運動矢量,
第5步驟,基于由上述第3步驟或上述第4步驟輸出的信息,利用由上述第1步驟解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式來進(jìn)行運動補償,生成預(yù)測圖像;
其中,上述第3步驟及上述第4步驟使用共通的多個塊作為上述多個參照塊候選。
〔項目20〕一種對將動圖像的各圖片按分割后的塊單位、利用運動矢量而編碼后的碼串進(jìn)行解碼的圖像解碼程序,其特征在于,使計算機執(zhí)行:
第1處理,從上述碼串中,針對各解碼對象塊、解碼出表示圖像間預(yù)測模式的預(yù)測模式信息和參照塊的索引,或者表示圖像間預(yù)測模式的預(yù)測模式信息、參照塊的索引、以及與參照塊對應(yīng)的差分運動矢量,
第2處理,取得上述解碼對象塊的多個參照塊候選的編碼信息,
第3處理,在由上述第1處理解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式為利用由索引確定的參照塊的上述編碼信息所具備的運動矢量的信息的第1圖像間預(yù)測模式時,基于第1預(yù)定順位從上述多個參照塊候選生成第1候選列表,并基于上述碼串解碼部所解碼出的參照塊的索引,從上述第1候選列表中確定上述解碼對象塊的參照塊,輸出該編碼信息,
第4處理,在由上述第1處理解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式為利用與由索引確定的參照塊對應(yīng)的差分運動矢量的第2圖像間預(yù)測模式時,基于第2預(yù)定順位從上述多個參照塊候選生成第2候選列表,并基于上述碼串解碼部解碼出的參照塊的索引,從上述第2候選列表中確定上述解碼對象塊的參照塊,基于預(yù)測運動矢量和上述碼串解碼部解碼出的差分運動矢量導(dǎo)出上述解碼對象塊的運動矢量并輸出,其中所述預(yù)測運動矢量是基于該參照塊的上述編碼信息所具備的運動矢量的信息的預(yù)測運動矢量,
第5處理,基于由上述第3處理或上述第4處理輸出的信息,利用由上述第1處理解碼出的預(yù)測模式信息所表示的圖像間預(yù)測模式來進(jìn)行運動補償,生成預(yù)測圖像;
其中,上述第3處理及上述第4處理使用共通的多個塊作為上述多個參照塊候選。
〔標(biāo)號說明〕
100動圖像編碼裝置、101圖像存儲器、102運動矢量估計部、103運動矢量預(yù)測部、104幀間預(yù)測信息檢測部、105運動補償預(yù)測部、106融合檢測部、107預(yù)測方法決定部、108開關(guān)、109第1編碼比特串生成部、110殘差信號生成部、111正交變換·量化部、112逆量化·逆正交變換部、113解碼圖像信號重疊部、114編碼信息保存存儲器、115解碼圖像存儲器、116第2編碼比特串生成部、117編碼比特串多路化部、200動圖像解碼裝置、201比特串分離部、202第1編碼比特串解碼部、203第2編碼比特串解碼部、204運動矢量導(dǎo)出部、205幀間預(yù)測信息檢測部、206融合判定部、207運動補償預(yù)測部、208逆量化·逆正交變換部、209解碼圖像信號重疊部、210編碼信息保存存儲器、211解碼圖像存儲器、212開關(guān)、301處理對象塊位置檢測部、302相鄰塊指定部、303臨時存儲器、310編碼信息導(dǎo)出部、311參照候選列表生成部、312相同信息檢測部、313輸出部、314參照候選列表保存存儲器、315選擇部、318參照候選限制部、320編碼信息導(dǎo)出部、321參照候選列表生成部、322相同信息檢測部、323輸出部、324參照候選列表保存存儲器、326差分運動矢量導(dǎo)出部、328參照候選限制部、329參照候選控制部。
〔工業(yè)可利用性〕
本發(fā)明能適用于利用了運動補償預(yù)測的動圖像編碼及解碼技術(shù)。