亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

動(dòng)態(tài)圖像編碼方法及解碼方法

文檔序號(hào):7651271閱讀:110來源:國知局
專利名稱:動(dòng)態(tài)圖像編碼方法及解碼方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種壓縮動(dòng)態(tài)圖像數(shù)據(jù)的編碼和解碼技術(shù),特別是涉及一種塊單位的編碼·解碼技術(shù)。
背景技術(shù)
下面說明以塊單位進(jìn)行編碼·解碼處理的動(dòng)態(tài)圖像的編碼·解碼方法的概要。動(dòng)態(tài)圖像的1幀如圖3所示那樣由1個(gè)輝度信號(hào)(Y信號(hào)61)和2個(gè)色差信號(hào)(Cr信號(hào)62,Cb信號(hào)63)構(gòu)成,色差信號(hào)的圖像尺寸縱橫都為輝度信號(hào)的1/2。在一般的視頻規(guī)格中,將動(dòng)態(tài)圖像的各幀分割成圖3所示那樣的小塊,按被稱為宏塊的塊單位進(jìn)行再生處理。圖5示出宏塊的構(gòu)造。宏塊由16×16像素的1個(gè)Y信號(hào)塊30、與其在空間上一致的8×8像素的Cr信號(hào)塊31、及Cb信號(hào)塊31構(gòu)成。
視頻的編碼按上述示出的宏塊單位處理。編碼方法中大體分成2種,分別稱為內(nèi)部編碼(內(nèi)部模式)、預(yù)測編碼(相互模式)。內(nèi)部編碼為空間方向的數(shù)據(jù)壓縮方法,在該方法中,相對編碼對象的輸入宏塊圖像或相對誤差宏塊圖像實(shí)施DCT,對各變換系數(shù)實(shí)施量化·編碼,該誤差宏塊圖像通過對輸入宏塊圖像實(shí)施空間預(yù)測生成的預(yù)測宏塊圖像與輸入宏塊圖像之間獲取差分而獲得。該內(nèi)部編碼配置到?jīng)]有與前幀相似的部分的宏塊(也包含第1編碼幀)和希望消除DCT帶來的累積運(yùn)算誤差的部分等。
預(yù)測編碼的算法被稱為MC-DCT(移動(dòng)補(bǔ)償-離散余弦變換)。移動(dòng)補(bǔ)償為時(shí)間方向的壓縮技術(shù),該方法從參考幀檢索與對象宏塊的內(nèi)容相似的部分,對其移動(dòng)量(移動(dòng)向量)進(jìn)行編碼。通常,將宏塊分割成更小的塊,對各小塊計(jì)算出移動(dòng)向量。例如,在MPEG-4 Part10(Advanced Video Coding)中,如圖7那樣考慮進(jìn)行移動(dòng)補(bǔ)償時(shí)的宏塊分割類型(輝度成分)?;旧蠟轭愋?1~類型54這樣4種。在類型54的場合,成為分別對4個(gè)8×8塊54-0~54-3分別從類型54a、54b、54c、54d和內(nèi)部編碼這樣5種選擇的構(gòu)造。作為各小塊中的移動(dòng)向量的檢測方法,選擇塊內(nèi)的預(yù)測誤差信號(hào)的絕對值和或平方誤差和小的部分。在運(yùn)算速度重要的場合,使用絕對值和,在追求編碼效率的場合,使用平方誤差和。另外,在追求編碼效率的場合,有時(shí)也適用將代碼量換算成平方誤差和的評(píng)價(jià)值、使用預(yù)測誤差和代碼量兩者計(jì)算最佳的編碼模式和移動(dòng)量的方法。圖4示出1塊的移動(dòng)補(bǔ)償?shù)奶幚順?gòu)造。圖4為對用粗線框圍住的現(xiàn)幀71的輝度信號(hào)塊72示出前幀73(參考幀)上的預(yù)測塊75和移動(dòng)向量76的圖。移動(dòng)向量76表示從相對現(xiàn)幀的粗線框塊與空間上相同位置相當(dāng)?shù)那皫膲K74(虛線)到前幀上的預(yù)測塊75區(qū)域的移動(dòng)量(色差信號(hào)用的移動(dòng)向量長為輝度信號(hào)的一半,不編碼)。該移動(dòng)補(bǔ)償后,相對在由多個(gè)預(yù)測塊構(gòu)成的預(yù)測宏塊圖像與輸入宏塊圖像之間獲取差分的誤差宏塊圖像實(shí)施DCT,對各變換系數(shù)進(jìn)行量化·編碼。進(jìn)一步檢測出的宏塊內(nèi)的移動(dòng)向量也被編碼。鄰接的塊間的移動(dòng)向量具有接近的值,所以,通常對鄰接塊的移動(dòng)向量的差分值進(jìn)行編碼。
作為預(yù)測編碼的移動(dòng)補(bǔ)償方法,除將時(shí)間上過去的幀作為參考幀進(jìn)行MC的前向預(yù)測編碼外,還具有將時(shí)間上過去和未來的幀作為參考幀進(jìn)行MC的雙向預(yù)測編碼。在上述所示前向預(yù)測編碼的移動(dòng)補(bǔ)償中,僅進(jìn)行前方預(yù)測,但在雙向編碼的移動(dòng)補(bǔ)償中,除前方預(yù)測(forward prediction)外,還實(shí)施后方預(yù)測(backward prediction)、雙向預(yù)測(bi-directional prediction)、及直接預(yù)測(direct),該雙向預(yù)測在前方預(yù)測塊和后方預(yù)測塊內(nèi)的各像素實(shí)施內(nèi)插處理,生成內(nèi)插預(yù)測塊,該直接預(yù)測利用從時(shí)間上未來的幀向過去的幀的移動(dòng)向量進(jìn)行雙向預(yù)測。在前方預(yù)測、后方預(yù)測、及雙向預(yù)測模式中,分別對與前向的移動(dòng)向量對應(yīng)的移動(dòng)向量、與后向的移動(dòng)向量對應(yīng)的移動(dòng)向量、與前向移動(dòng)向量和后向的移動(dòng)向量對應(yīng)的移動(dòng)向量進(jìn)行編碼,但在該direct模式中不需要移動(dòng)向量的編碼。圖9示出direct模式的預(yù)測概念。如圖所示那樣,先按時(shí)間上的幀位置的比例將與現(xiàn)幀120上的預(yù)測對象塊121處于空間上相同位置的后向的參考幀130上的塊(131,collocated-block)的前向移動(dòng)向量132換算成前向移動(dòng)向量122和后向移動(dòng)向量123。然后,使用這些換算移動(dòng)向量實(shí)施與雙向預(yù)測同樣的內(nèi)插處理。
將相對所有的宏塊適用內(nèi)部編碼的幀稱為I-picture,將由前向預(yù)測編碼或內(nèi)部編碼構(gòu)成的幀稱為P-picture,將雙向編碼或內(nèi)部編碼構(gòu)成的幀稱為B-picture。
在此前,說明了一般的編碼·解碼方法,但近年的編碼·解碼方法適用了擴(kuò)大選擇自由度的功能。以下說明新的功能。這些功能在MPEG-4 Part 10(Advanced Video Coding)中也進(jìn)行了討論。
1.多參考幀在上述說明中,用于移動(dòng)補(bǔ)償?shù)膮⒖紟臄?shù)量為1張P-picture和2張屬于B-picture的過去幀(forward reference picture)和未來幀(backward reference picture)。然而,存在這樣的方法,即,作為過去方向和未來方向的參考幀,分別準(zhǔn)備多張,在按宏塊單位和分割宏塊獲得的小塊單位選擇不同的參考幀。另外,過去參考幀為I-picture或P-picture,但也可作為reference picture選擇B-picture。
2.雙向參考幀預(yù)測在多張參考幀的backward reference picture的候補(bǔ),可包含時(shí)間上的過去方向的幀。在該方法中,也允許backward reference picture全部為時(shí)間上過去方向的幀。為此,作為總稱,可使用Bi-predictive這樣的措詞代替Bi-directional。在2個(gè)參考幀140、150都為時(shí)間上過去的幀或都為未來的幀的場合,改變與現(xiàn)幀相距較遠(yuǎn)的參考幀150的移動(dòng)向量127的編碼方法。如圖10所示那樣,按時(shí)間上的幀位置的比例換算相對接近現(xiàn)幀121的參考幀140的移動(dòng)向量124獲得的移動(dòng)向量125與移動(dòng)向量127的差分向量126分別按水平·垂直成分進(jìn)行編碼。
3.編碼/解碼順序的變更過去,各幀的處理順序按照圖11的格式,即,I-picture和P-picture按顯示順序,在時(shí)間上位于2個(gè)I/P-picture間的連續(xù)的B-picture緊接在后者的I/P-picture之后。然而,在新的功能下,如為允許的顯示延遲的范圍,則不限定該處理順序。另外,在使用Bi-predictive的概念的場合,B-picture即使在沒有用于后方預(yù)測的參考幀時(shí)也可能發(fā)生。上述顯示順序作為視頻數(shù)據(jù)的數(shù)據(jù)標(biāo)題信息編碼,或?qū)τ谝曨l數(shù)據(jù)的上位概念,由實(shí)施視頻數(shù)據(jù)與音頻·聲音數(shù)據(jù)的同步處理和數(shù)據(jù)的分段投送的通信層和文件格式管理,所以,不發(fā)生編碼·解碼處理順序的變更帶來的顯示偏差的問題。
4.幀識(shí)別過去,對各幀的表示顯示位置的信息進(jìn)行編碼。然而,該顯示位置信息有時(shí)與包含于實(shí)際顯示時(shí)適用的通信分組和文件格式的時(shí)刻信息不一致。為了避免該問題,在視頻數(shù)據(jù)中,還討論了僅由處理編號(hào)管理各幀的方法。
然而,在導(dǎo)入新的功能的動(dòng)態(tài)圖像編碼·解碼方式中,可考慮不存在用于direct模式的后向的參考幀的場合和從多個(gè)后向的參考幀按默認(rèn)設(shè)定的后向的參考幀不為未來幀的場合。在這樣的幀中,direct模式不能適應(yīng)。另外,在按解碼順序的編號(hào)進(jìn)行各幀的管理的場合,不能判斷是否可利用后向的參考幀。另外,在作為用于direct模式的后向的參考幀選擇B-picture的那樣的場合,可考慮collocated block沒有前向的移動(dòng)向量的場合。在這樣的塊中,direct模式不能適應(yīng)。

發(fā)明內(nèi)容
鑒于以上問題,本發(fā)明的目的在于提供一種可以良好效率適用direct模式的編碼·解碼方法。
向編碼器提供表示按默認(rèn)設(shè)定的后向的參考幀是否可用于direct模式的信息。提供在沒有collocated block可利用的前向移動(dòng)向量的場合可適用的向代用模式的切換順序和代用模式。
另外,說明動(dòng)態(tài)圖像的編碼和解碼方法,該動(dòng)態(tài)圖像的編碼和解碼方法接收與移動(dòng)向量相關(guān)的信息,使用記錄的參考圖像和與該移動(dòng)向量相關(guān)的信息進(jìn)行移動(dòng)補(bǔ)償,合成預(yù)測圖像。移動(dòng)補(bǔ)償具有包含不伴隨移動(dòng)向量的解碼的模式的多個(gè)塊模式,選擇表示預(yù)測方向的預(yù)測模式,從多個(gè)參考幀的候補(bǔ)選擇在該預(yù)測模式的各預(yù)測方向的預(yù)測中參考的幀,選擇在該預(yù)測模式中使用的移動(dòng)向量的信息。特別是根據(jù)是否與當(dāng)前的塊鄰接的塊具有移動(dòng)向量進(jìn)行上述預(yù)測模式。另外,參考幀為從按index編號(hào)識(shí)別的多個(gè)參考幀選擇1個(gè)參考幀而獲得,在多個(gè)上述鄰接塊適用上述預(yù)測方向的預(yù)測的場合,選擇任一個(gè)上述鄰接塊使用的參考幀,在僅1個(gè)上述鄰接塊適用上述預(yù)測方向的預(yù)測的場合,選擇該1個(gè)鄰接塊適用的index編號(hào)的參考幀,在上述鄰接塊不采用上述選擇的預(yù)測模式的場合,選擇index編號(hào)為第0號(hào)的參考幀。另外,在附于多個(gè)上述塊單位的標(biāo)題包含用于確定作為塊模式選擇不伴隨上述移動(dòng)向量的解碼的模式的場合的預(yù)測順序的信息。
另外,還公開了適用上述方法的裝置等。
按照本申請的上述構(gòu)成,是否可適用direct模式的判斷變得明確。另外,可有效地利用direct模式和其代用模式,預(yù)測效率提高,還可減少數(shù)據(jù)量。


圖1為示出本發(fā)明的圖像標(biāo)題數(shù)據(jù)語法例的圖。
圖2為示出本發(fā)明的圖案標(biāo)題數(shù)據(jù)語法的第2例的圖。
圖3為說明宏塊分割的圖。
圖4為說明移動(dòng)補(bǔ)償?shù)脑淼膱D。
圖5為示出對包含于宏塊的有效DCT系數(shù)的有無進(jìn)行編碼時(shí)利用的塊構(gòu)成的圖。
圖6為示出進(jìn)行DCT處理和編碼處理的塊單位的宏塊構(gòu)成的圖。
圖7為示出進(jìn)行移動(dòng)補(bǔ)償?shù)膲K單位的輝度塊的構(gòu)成的圖。
圖8為說明預(yù)測移動(dòng)向量的生成手段的圖。
圖9為示出用于direct模式的雙向預(yù)測的移動(dòng)向量生成方法的圖。
圖10為示出使用2張的前向參考幀的移動(dòng)向量計(jì)算方法的圖。
圖11為示出解碼順序和顯示順序的比較例的圖。
圖12為示出本發(fā)明的預(yù)測方法的切換順序的例子的圖。
圖13為示出本發(fā)明的預(yù)測方法的切換順序的第2例的圖。
圖14為示出本發(fā)明的代用模式的整體構(gòu)成的圖。
圖15為示出本發(fā)明的代用模式的預(yù)測模式選擇處理的圖。
圖16為示出本發(fā)明的代用模式的參考幀選擇處理的圖。
圖17為示出本發(fā)明的代用模式的移動(dòng)向量的選擇處理的圖。
圖18為示出預(yù)測幀的數(shù)據(jù)語法的例子的圖。
圖19為表示通用編碼表的構(gòu)成例的圖。
圖20為示出P-picture的宏塊類型的代碼表和8×8塊分割類型的代碼表的例子的圖。
圖21為示出B-picture的宏塊類型的代碼表和8×8塊分割類型的代碼表的例子的圖。
圖22為示出本發(fā)明編碼處理的框圖的例子的圖。
圖23為示出本發(fā)明解碼處理的框圖的例子的圖。
圖24為示出本發(fā)明的圖像標(biāo)題數(shù)據(jù)語法的第3例的圖。
圖25為示出本發(fā)明的預(yù)測方法的切換順序的第3例的圖。
圖26為示出實(shí)施本發(fā)明的編碼方法的編碼裝置的預(yù)測參數(shù)計(jì)算器的例子的圖。
圖27為示出實(shí)施本發(fā)明的解碼方法的解碼裝置的預(yù)測參數(shù)計(jì)算器的例子的圖。
圖28為示出實(shí)施本發(fā)明編碼方法的軟件編碼器的例子的圖。
圖29為示出實(shí)施本發(fā)明解碼方法的軟件解碼器的例子的圖。
圖30為示出記錄由本發(fā)明的編碼方法生成的編碼位流的光盤的例子的圖。
圖31為示出使用本發(fā)明的編碼·解碼方法的裝置的具體例的圖。
具體實(shí)施例方式
(實(shí)施例1)下面參照

本發(fā)明的實(shí)施形式。
下面,依次說明從幀標(biāo)題到宏塊數(shù)據(jù)的處理的流程。
圖1示出幀標(biāo)題信息的例子。另外,以下示出利用C語言進(jìn)行的圖像標(biāo)題數(shù)據(jù)的解碼處理例。
<pre listing-type="program-listing"> picture_layer() {picture_structureframe_numberreference_picture_selection_layer()if(coding_type()==B-picture){direct_mv_scale_bwd_dir[index]if(direct_mv_scale_bwd_dir[index]){//未來方向 direct_mv_scale_bwd[index] for(index=0;index<number of forward reference;index++){ direct_mv_scale_fwd_dir[index] if(direct_mv_scale_fwd_dir[index])//過去方向 direct_mv_scale_fwd[index]} } } }</pre>在picture_structure20中,示出各picture的掃描構(gòu)造(幀/半幀)。在frame_number 21中,示出該幀的識(shí)別編號(hào)。該frame_number的標(biāo)記方法有2種。1種是包含時(shí)刻信息的場合。在該場合,對于I,P-picture,與緊接前面的I或P-picture的幀間隔成為frame_number,對于B-picture,與時(shí)間上過去的緊接前面的I或P-picture的幀間隔成frame_number(一般為Temporal_reference;被稱為TR)。第2種為簡單地示出解碼的順序的場合。
在reference_picture_selection_layer(),示出可在現(xiàn)幀的移動(dòng)補(bǔ)償處理中使用的多個(gè)參考幀的frame_number(reference picture set)和其識(shí)別編號(hào)。例如,在參考幀為5張的場合,對frame number 10的現(xiàn)picture如以下那樣向index 0~index 4分配frame_number。
Index 09Index 18Index 27Index 36Index 45而且,在圖像類型為P-picture的場合,前向的參考幀(forwardreference picture set)、B-picture的場合,前向和后向的參考幀(forward reference picture set和backward reference picture set)的frame_number被解碼。此時(shí),前向和后向的參考幀數(shù)可分別設(shè)定,所以,也存在不同的場合。在圖像類型為I-picture或P-picture的場合,由接在這些reference picture set信息之后的字節(jié)排列信息(用于將數(shù)據(jù)的定界合并于字節(jié)單位的信息)結(jié)束圖像層。以后的圖像標(biāo)題數(shù)據(jù)在圖像類型為B-picture的場合發(fā)生。在本實(shí)施例中,可考慮記載到包含于上位的網(wǎng)絡(luò)·通信相關(guān)信息的層的內(nèi)容。direct_mv_scale_bwd_dir28為表示指定為direct模式用的后方參考幀相對現(xiàn)幀處于未來還是處于過去的信息。指定為direct模式用的后方參考幀通常為分配給index 0的backward reference picture。在數(shù)據(jù)28示出后方參考幀(在這里為分配給index 0的backward referencepicture)相對現(xiàn)幀處于過去的場合,不能使用direct mode,在數(shù)據(jù)28示出現(xiàn)幀相對后方參考幀處于未來的場合,可使用direct mode。因此,由該數(shù)據(jù)28可明確判斷index 0的backward reference picture是否可用于direct模式。另外,在不能實(shí)施direct模式的場合,需要適用后述的代用模式,在用于這一目的存儲(chǔ)器配置等的基準(zhǔn)面,可促進(jìn)解碼作業(yè)的效率化。另外,在frame_number沒有時(shí)刻信息的場合,可以良好效率傳送關(guān)于reference picture和current picture間的關(guān)系的信息。與direct模式相關(guān)的圖像位置信息具有在direct mode以外也可使用的信息和不能使用的信息。關(guān)于后者,可由direct_mv_scale_bwd_dir避免編碼。
具體地說,如圖1所示那樣,當(dāng)direct_mv_scale_bwd_dir示出可使用direct模式即相對現(xiàn)幀處于未來方向時(shí),對數(shù)據(jù)26、27、29進(jìn)行編碼,但當(dāng)示出不能使用direct模式時(shí),這些數(shù)據(jù)不被編碼。direct_mv_scale_bwd29為表示current picture與index 0的backwardreference picture間的幀間隔的信息(參照圖9)。direct_mv_scale_bwd_dir26為表示前方參考幀相對現(xiàn)幀處于未來還是處于過去的信息,direct_mv_scale_fwd 27為表示current picture與forward reference picture間的圖像間隔的信息(參照圖9)。對于direct_mv_scale_fwd,需要按由reference_picture_selection_layer(22)指定的forward reference picture的數(shù)量進(jìn)行編碼。但為了使用direct模式,需要前向的參考幀相對現(xiàn)幀處于過去,所以,關(guān)于direct_mv_scale_fwd_dir26示出未來方向的index,省略direct_mv_scale_fwd 27。direct_mv_scale_divider為表示index 0的backward reference picture與forward reference picture間的圖像間隔的信息(參照力9)。因此,該信息也需要按forward reference picture的數(shù)量編碼,但由于可從direct_mv_scale_fwd和direct_mv_scale_bwd計(jì)算出,所以,也可省略。該信息對于direct_mv_scale_fwd_dir26示出未來方向的index,可省略direct_mv_scale_fwd_27。
在B-picture的場合,由字節(jié)排列信息(用于將數(shù)據(jù)的定界合并于字節(jié)單位的信息)結(jié)束圖像層。
direct_mv_scale_fwd和direct_mv_scale_bwd也可作為圖10所示picture_distance使用,所以,圖2示出還將圖1擴(kuò)展到圖10的移動(dòng)向量編碼的數(shù)據(jù)語法。
<pre listing-type="program-listing">picture_layer(){ picture_structure frame_number reference_picture_selection_layer() if(coding_type()==B-picture){for(index=0;index<number of forward reference;index++){ direct_mv_scale_fwd_dir[index] direct_mv_scale_fwd[index]} for(index=0;index<number of backward reference;index++){ direct_mv_scale_bwd_dir[index] direct_mv_scale_bwd[index]}} }</pre>下面說明B-picture的場合。在該場合,關(guān)于可在現(xiàn)幀使用的所有的參考幀,對數(shù)據(jù)26~29進(jìn)行編碼/解碼,但這些數(shù)據(jù)也可作為在圖10所示移動(dòng)向量的編碼處理中利用的picture_distance的信息使用。在該圖2中,也與圖1同樣地起到表示direct_mv_scale_bwd_dir
(圖2)檢查是否可在current picture中使用direct模式(301)。在由處理301判定不能使用的場合,由不需要collocated block的forward MV的代用模式(詳細(xì)內(nèi)容在后面說明)生成預(yù)測宏塊(304)。在由處理301判定可使用的場合,對每8×8塊進(jìn)行預(yù)測方法的選定。在這里,形成8×8塊是因?yàn)?,在圖7的塊分割方法中,將參考幀和預(yù)測方向選擇的最小單位形成為8×8塊。具體地說,檢查在與8×8塊對應(yīng)的collocated block適用具有forward MV的預(yù)測模式(302)。然后,在判定適用的場合,用direct模式生成預(yù)測塊(303),在判定不適用的場合,由代用模式生成預(yù)測塊(304)。在處理302中,關(guān)于collocated 8×8block,在預(yù)模式為intra模式的場合,預(yù)測方向?yàn)閎ackward prediction的場合,相對于forwardreference picture的direct_mv_scale_fwd_dir[index]的值表示相對current picture處于后向(未來方向)的場合,或forward referencepicture未包含于current picture的forward reference picture set的場合,判定不可使用direct模式。在圖12的處理302中,按8×8塊單位實(shí)施direct模式的使用是否可使用,但也可按宏塊單位對其進(jìn)行實(shí)施。但是,在該場合,僅當(dāng)宏塊內(nèi)的所有的預(yù)測塊、圖7的塊分割方法的4個(gè)8×8塊全部為direct模式可使用的狀態(tài)的場合,判定可使用direct模式。圖13示出在圖像標(biāo)題的構(gòu)造追加數(shù)據(jù)24的場合切換預(yù)測方法的順序。與圖12不同的點(diǎn)為處理301改變?yōu)樘幚?05這一點(diǎn),具體地說,為檢查的direct_mv_scale_bwd_dir的index編號(hào)成為由圖13的數(shù)據(jù)24設(shè)定的值這一點(diǎn)。
現(xiàn)在返回圖18的說明。在由mb_type12選擇8×8(split)的場合,對示于圖7的模式4的4個(gè)8×8小塊54-0~54-3分別發(fā)生8×8partition 13。具體地說,在8×8partition 18中,從表92(P-picture)或表94(B-picture)所示8×8partition模式對各8×8塊選擇1個(gè)模式進(jìn)行編碼。在表92中,示于code number4的Intral表示空間預(yù)測,M×N表示進(jìn)行移動(dòng)補(bǔ)償時(shí)的小塊尺寸(圖7的8×8partition 1~8×8partition 4)。在表94中,示于code number 13的Intra表示空間預(yù)測的適用,M×N表示進(jìn)行移動(dòng)補(bǔ)償時(shí)的小塊尺寸(圖7的8×8partition1~8×8partition 4),direct表示direct模式。表94的prediction表示屬于圖7的模式4的各小塊的預(yù)測方向?yàn)閒orward(前方預(yù)測)、backward(后方預(yù)測)、Bi-predictive(2參考幀預(yù)測)中的哪一個(gè)。
即使在按8×8partition選擇direct模式的場合,也可適應(yīng)與圖12或圖13同樣的預(yù)測方法切換順序。然而,8×8partition內(nèi)的direct模式的預(yù)測性能沒有direct模式MB那樣重要。因此也可適用更簡單的方法。例如,在由處理302判定collocated block沒有forward MV的場合,可考慮這樣的方法,即,將forward MV設(shè)為0向量,將forwardreference picture和backward reference picture的index設(shè)為0,并按direct生成預(yù)測塊,由此代替處理304。此時(shí),在不存在backwardreference picture的場合,僅按forward prediction生成預(yù)測塊即可。更簡單地情況下,在由處理302判定collocated block具有forward MV的場合,在編碼側(cè)不選擇direct模式。
關(guān)于mb_type12和8×8partition 13的編碼方法,在利用UVLC的場合,從表82選擇與表91~94的code number對應(yīng)的代碼進(jìn)行編碼。在利用CABAC的場合,使用各位的概率模式對示于表91~表94的Binarization的欄所示的位列進(jìn)行算術(shù)編碼。
ref_index_fwd 14表示用于移動(dòng)補(bǔ)償?shù)那跋虻膮⒖紟膇ndex的編號(hào),對該宏塊內(nèi)的各分割塊(圖7的51~54)必要。index編號(hào)從forward reference picture set選擇。但是,包含于forward referencepicture set的參考幀僅為1張的場合,塊類型或宏塊類型為Skip,在direct或intra的塊的場合和block prediction為backward的場合,該代碼不發(fā)生。另外,在由P-picture作為mb_type選擇表91的codenumber 5的場合,作為參考幀自動(dòng)地選擇index 0的forward referencepicture,所以,該代碼不發(fā)生。以forward reference picture set具有index 0~index 4的值的場合為例,可考慮編碼方法。在該例中,index0~index 4分別分配給code number 0~4。在利用UVLC的場合,從表82選擇與code number 0-4對應(yīng)的代碼進(jìn)行編碼/解碼。在利用CABAC的場合,相對code number 0-4分別分配1’,01’,001’,0001’,0001’的二進(jìn)制數(shù)據(jù),使用位列和各位的概率模式進(jìn)行算術(shù)編碼。
ref_index_fwd 15表示用于移動(dòng)補(bǔ)償?shù)暮笙虻膮⒖紟膇ndex的編號(hào),為該宏塊內(nèi)的各分割塊(圖7的51~54)所需要。index編號(hào)從forward reference picture set選擇。但是,對于圖像的種類為p-picture的場合,包含于backward reference picture set的參考幀僅為1張的場合,塊類型或宏塊類型為skip、direct或intra的塊的場合,及block prediction為forward的場合,該代碼不發(fā)生。關(guān)于編碼方法,與ref_index_fwd 14相同,省略說明。
mvd_fwd 16在示出mb_type12和8×8partition 13為伴隨著由forward(也包含bi-predictive)帶來的移動(dòng)向量的宏塊的場合發(fā)生,按宏塊內(nèi)的forward MV的數(shù)量反復(fù)進(jìn)行。因此,在mb_type12為IntraM×N、SKIP(P-picture)或direct(B-picture)的場合、8×8partition13為intra或direct(B-picture)的場合,該數(shù)據(jù)不發(fā)生。另外,在block prediction為backward的分割塊的場合,在(B-picture)也不發(fā)生該數(shù)據(jù)。同樣,mvd_bwd17在示出mb_type12和8×8partition 13為伴隨著由backward(也包含bi-predictive)帶來的移動(dòng)向量的宏塊的場合發(fā)生,按宏塊內(nèi)的backward MV的數(shù)量反復(fù)進(jìn)行。因此,在圖像類型為P-picture的場合、mb_type12為Intra M×N、direct的場合、8×8partition 13為intra或direct(B-picture)的場合,該數(shù)據(jù)不發(fā)生。另外,在block prediction為forward的分割塊的場合,該數(shù)據(jù)也不發(fā)生。CBP18為表示關(guān)于圖6所示24個(gè)DCT塊是否‘0’以外的量化的DCT系數(shù)(有效系數(shù))包含于16個(gè)系數(shù)的編碼數(shù)據(jù)。Residual()19表示有效量化DCT系數(shù)的編碼數(shù)據(jù)。關(guān)于在CBP示出沒有有效系數(shù)的塊,省略編碼處理。因此,在CBP為0的場合,不發(fā)生Residual()。另外,CBP18和Residual()19在mb_type12為direct(CBP=0)時(shí)不發(fā)生。
在這里,以圖7的分割類型為例,在圖8中說明上述預(yù)測移動(dòng)向量mvd_fwd 16和mvd_bwd17的生成方法。關(guān)于圖7的模式1(51)的塊51-0、模式4(54)的小塊54a-0、54b-0、54b-1、54c-0、54c-1及54d-0~54d-3,使用相同的預(yù)測方法。將對移動(dòng)向量進(jìn)行編碼的對象的小塊為50。在這些小塊中,關(guān)于移動(dòng)向量的水平·垂直成分分別以位于鄰接位置A、B、C的3塊的移動(dòng)向量作為候補(bǔ)計(jì)算其中間值,將中間值的移動(dòng)向量設(shè)為預(yù)測移動(dòng)向量。但是,可考慮位置C的塊按編碼順序和宏塊位置的關(guān)系位于編碼前的場合和位于圖像外的場合。在該場合,將不是位于位置C而是位于位置D的塊的移動(dòng)向量用作候補(bǔ)移動(dòng)向量的1個(gè)。在位置A與D的塊位于圖像外的場合,將該移動(dòng)向量作為‘0’向量進(jìn)行預(yù)測處理,在位置、D和B和C位于圖像外的場合,作為位置A的塊的移動(dòng)向量進(jìn)行預(yù)測處理。此時(shí),在3個(gè)候補(bǔ)塊中的2個(gè)不具有移動(dòng)向量的場合,將余下的1個(gè)候補(bǔ)移動(dòng)向量設(shè)為預(yù)測移動(dòng)向量。關(guān)于模式(2)(52)的2個(gè)小塊(52-0,52-1)、模式3(53)的2個(gè)小塊(53-0,53-1),設(shè)位于圖8所示箭頭的根部的塊的移動(dòng)向量為預(yù)測值。在該方法的移動(dòng)向量編碼中,僅將相同參考幀的移動(dòng)向量用于預(yù)測。因此,在鄰接塊的移動(dòng)信息L與由編碼塊選擇的參考幀不同的場合,作為位于圖像外的情形處理。關(guān)于色差成分用的移動(dòng)向量,不進(jìn)行編碼,按2分割輝度成分的移動(dòng)向量使用。
下面,使用圖14~17說明不需要collocated block的forward MV的代用模式(4×4bi-predictive)。direct模式和使用direct模式的B-picture的Skip模式為選擇率高、對提高編碼性能重要的預(yù)測方式。然而,如MPEG-4 Part10那樣,在參考幀的選擇和各幀的編碼順序具有自由度的方式中,如圖1、2和圖12、13的說明所示那樣,發(fā)生過去的direct模式不能有效地起作用的幀和塊。該代用模式在過去的direct模式不能有效地起作用的場合切換使用,從而具有抑制預(yù)測性能的下降或提高預(yù)測效率的效果。另外,相對過去的direct模式使用參考幀的移動(dòng)向量的場合,該代用模式利用現(xiàn)幀的移動(dòng)向量,所以,不需要為了以后的幀的編碼/解碼處理而將移動(dòng)向量存儲(chǔ)于存儲(chǔ)器的處理,具有削減存儲(chǔ)容量的效果。另外,在代用模式中,由于不需要圖9所示移動(dòng)向量的縮放處理,所以,解碼處理容易。該代用模式的預(yù)測順序由圖14所示4個(gè)部分構(gòu)成。首先,按8×8塊單位從bi-predictive、forward、backward選擇預(yù)測方向(610)。在選擇中,使用對象8×8塊C81正上塊B83和正左塊A82實(shí)施。然后,實(shí)施由處理610選擇的預(yù)測模式的實(shí)施所需要的參考幀的選擇(620)。選擇時(shí)使用對象8×8塊C81正上塊B83和正左塊A82實(shí)施。然后,按4×4塊單位實(shí)施與選擇的預(yù)測模式和參考幀對應(yīng)的移動(dòng)向量的計(jì)算處理(630)。最后,按由處理610和620選擇的預(yù)測模式和參考幀及由處理630計(jì)算出的移動(dòng)向量合成4×4預(yù)測塊。然后,保存計(jì)算出的移動(dòng)向量和參考幀的index以用于預(yù)測移動(dòng)向量預(yù)測(640)。這樣,通過從同一幀內(nèi)的周圍塊的信息預(yù)測在預(yù)測處理中所需要的各要素?cái)?shù)據(jù),從而可預(yù)測與局部特征對應(yīng)的移動(dòng),提高預(yù)測效率。另外,由于僅使用幀內(nèi)的鄰接塊的數(shù)據(jù),所以,可削減為了實(shí)施該代用模式而保存的數(shù)據(jù)量。以后示出處理的詳細(xì)內(nèi)容。
圖15示出處理610的預(yù)測方向選擇處理順序。首先,檢查對象8×8塊的正上和正左的8×8塊的任一個(gè)是否具有forward MV(611)。然后,同樣檢查對象8×8塊的正上和正左的8×8塊的任一個(gè)是否具有backward MV(612)。然后,在正上和正左的8×8塊中任一個(gè)具有forward MV和backward MV的場合及正上和正左的8×8塊的任一個(gè)forward MV都沒有backward MV的場合,選擇bi-prediction(615)。在正上和正左的8×8塊僅具有forward MV的場合選擇forward MV(616),在僅具有backward MV的場合選擇backward(617)。按照該順序,優(yōu)先地選擇預(yù)測效率最高的bi-predictive預(yù)測。另外,在從周圍塊不能獲得為了有效地實(shí)施bi-predictive所需要的信息的場合,可根據(jù)從周圍獲得的信息選擇推測為最佳的預(yù)測方向。另外,在不能從周圍獲得充分的信息的場合,通過相對其它預(yù)測模式成為選擇direct模式的效果高的狀態(tài)地控制,從而提高預(yù)測效率。具體地說,通過與以后說明的圖16和圖17的處理組合,從而成為選擇將index 0(與現(xiàn)幀最為相似的幀)的forward reference、backward reference作為參考幀的零向量的bi-predictive預(yù)測那樣的順序。
圖16示出處理620的參考幀選擇處理順序。該處理對forward和backward分別進(jìn)行實(shí)施。圖16示出forward reference picture選擇的場合,但對backward reference picture順序也相同。首先,檢查對象8×8塊的正上和正左的8×8塊是否都利用forward referencepicture(621)。在判斷所有8×8塊都利用forward reference picture的場合,選擇在2個(gè)8×8塊使用的forward reference picture中的index編號(hào)較小一方(623)。在由處理621判定至少任一方的8×8塊不利用forward reference picture的場合,檢查對象8×8塊的正上或正左的8×8塊的任一個(gè)是否利用forward reference picture(622)。在由處理622判斷任一個(gè)8×8塊利用forward reference picture的場合,選擇利用的forward reference picture(625)。在由處理622判斷所有8×8塊都不利用forward reference picture的場合,選擇index0(624)。這樣,選擇適用于鄰接塊的編碼的index編號(hào)中的較小值地控制。這是為了在參考幀候補(bǔ)的設(shè)定中向與現(xiàn)幀相關(guān)性高的幀提供較小的index編號(hào)。在index編號(hào)的設(shè)定方法中存在自動(dòng)設(shè)定的方法和編碼時(shí)設(shè)定的方法。在前者,可考慮從接近現(xiàn)幀的幀依次提供較小的index編號(hào)。后者例如適用于景物搜索時(shí)等,將較小的index編號(hào)分配給以前編碼的過去的相同攝像機(jī)角度的幀。通過這樣選擇較小index編號(hào),從而使選擇接近處理對象的幀的圖像的可能性增大。
圖17說明處理630的移動(dòng)向量計(jì)算處理順序。該處理按4×4塊單位分別對forward、backward實(shí)施。首先,檢查正上或正左的4×4塊的任一個(gè)是否位于圖像外(631)。在由處理判定任一個(gè)4×4塊處于圖像外的場合,設(shè)4×4塊的移動(dòng)向量為零向量(625)。在由處理631判定所有4×4塊都位于圖像內(nèi)的場合,接著,檢查正上或正左的4×4塊的任一個(gè)是否具有可利用到由處理620選擇的參照幀的移動(dòng)向量(632)。在由處理632判定所有4×4塊都不具有可利用到選擇的參考幀的移動(dòng)向量的場合,設(shè)4×4塊的移動(dòng)向量為零向量(625)。在由處理632判定任一個(gè)4×4塊具有可利用到選擇的參考幀的移動(dòng)向量的場合,檢查正上或正左的4×4塊具有的任一移動(dòng)向量是否為朝向選擇的參考幀的零向量(633)。在由處理633判定任一4×4塊的移動(dòng)向量為朝參考幀的零向量的場合,設(shè)4×4塊的移動(dòng)向量為零向量(625)。在由處理633判定所有4×4塊的移動(dòng)向量都不為朝參考幀的零向量的場合,根據(jù)相對4×4塊的中間值預(yù)測計(jì)算出移動(dòng)向量。這樣優(yōu)先選擇零向量是因?yàn)閐irect模式與在背景部分效果特別高這一狀態(tài)對應(yīng)。
本發(fā)明還包含以下那樣的變形。
(1)在本實(shí)施例中,如圖12所示那樣根據(jù)collocated block的狀況確定代用模式的使用,但也可考慮將direct模式完全切換成代用模式。在該方法中,由處理301按幀單位或片單位(詳細(xì)內(nèi)容記載于變形例(4))控制direct模式和代用模式的切換。這樣,選擇候補(bǔ)增加,對實(shí)施特殊效果的景物的適用性提高,所以,預(yù)測效率也提高。但是,由于產(chǎn)生用外插處理進(jìn)行參考幀和現(xiàn)幀圖9的移動(dòng)向量的計(jì)算的可能性,所以,在運(yùn)算處理量存在較強(qiáng)的制約的條件下,如圖12、13所示那樣實(shí)施2方式的切換控制的方法有效。
(2)關(guān)于圖14~17,如從周圍的塊生成預(yù)測方向、參考幀、移動(dòng)向量這樣的整體處理一致,則細(xì)小條件不受限定。例如,由處理631將“正上或正左的4×4塊的任一個(gè)”這樣的記述改變成“正上和正左的4×4塊的兩者”的方法也包含于本申請中。另外,將在模式選擇時(shí)利用的塊從2個(gè)變換為3個(gè)(用于預(yù)測向量的生成)的方法也包含于本申請中。在將在該模式選擇時(shí)利用的塊從2個(gè)改變成3個(gè)的方法中,與移動(dòng)向量推定的相容性良好,有利提高預(yù)測效率,所以,在對運(yùn)算處理量沒有強(qiáng)的制約的條件下有效。
(3)在圖1、2及圖12、13中,如collocated block相對現(xiàn)幀具有前向的forward MV,則示出與相對該forward MV的forwardreference picture的index編號(hào)無關(guān)地適用direct模式的方法。然而,direct模式在相對forward MV的forward reference picture從現(xiàn)幀離開時(shí)存在效果降低的傾向。因此,僅在相對forward MV的forwardreference picture的index編號(hào)為0的場合適應(yīng)direct模式的方法也可考慮有效。在圖24和圖25中說明該方法。圖24示出圖像層的數(shù)據(jù)語法。
<pre listing-type="program-listing">picture_layer() { picture_structureframe_numberreference_picture_selection_layer()if(coding_type()==B-picture){direct_reference_usable if(direct_reference_usable){direct_mv_scale_bwddirect_mv_scale_fwd } for(index=0;index<number of forward reference;index++){  picture_distance_fwd_dir[index]  picture_distance_fwd[index]   }  for(index=0;index<number of backward reference;index++){  picture_distance_bwd_dir[index]  picture_distance_bwd[index]   }   }  }</pre>下面說明圖像類型為B-picture的場合。diret_reference_usable23為表示位于指定為direct模式用的后方參考幀位于現(xiàn)幀的未來而且指定為direct模式用的前方參考幀位于現(xiàn)幀的過去的信息。指定為direct模式用的后方參考幀通常為分配給index 0的backward referencepicture,但由該信息可明確地判斷index 0的backward referencepicture是否可用于direct模式。另外,指定為direct模式用的前方參考幀通常為分配給index 0的forward reference picture,但由該信息可明確判斷index0的forward reference picture是否可用于direct模式。由于該數(shù)據(jù)23為0,即關(guān)于index 0的backward reference picture相對current picture位于前向(過去方向)或index 0的forwardreference picture相對current picture位于后向(未來方向)的圖像不能實(shí)施direct模式,所以,direct模式的適用所需要的圖像間隔信息不需要編碼/解碼。因此,在該場合,示出current picture和index 0的forward reference picture的時(shí)間間隔的direct_mv_scale_fwd 2427和示出current picture與index 0的backward reference picture的時(shí)間間隔的direct_mv_scale_bwd 2429的編碼/解碼被省略。數(shù)據(jù)26~29為用于圖1所示bi-predictive的移動(dòng)向量編碼的數(shù)據(jù)。關(guān)于利用方法,為了在圖2的部分進(jìn)行說明,在這里省略。diret_reference_usable 23為僅示出指定為direct模式用的后方參考幀是否位于現(xiàn)幀的未來的信息,也可考慮在數(shù)據(jù)2427之前對示出direct_mv_scale_fwd的位置的信息(direct_mv_scale_fwd_dir)進(jìn)行編碼/解碼的方法。在圖9中,當(dāng)forward reference picture處于current picture的后方的狀態(tài)時(shí),2個(gè)移動(dòng)向量122和121用外插計(jì)算進(jìn)行計(jì)算。
在圖25的場合下,說明direct模式的處理。如圖12、13的說明所示那樣,即使在圖18的mb_skip_run11和mb_type12的選擇候補(bǔ)中選擇direct模式的場合,在適用多個(gè)參考幀功能和2參考幀的功能的方式下,可能存在不能適用direct模式的場合。因此,在本發(fā)明中使用相應(yīng)于條件切換預(yù)測方法的順序。圖25示出該順序。最初,由圖像內(nèi)的diret_reference_usable23檢查是否可在使用current picture使用direct模式(306)。在由處理306判斷不能使用即index 0的forwardreference picture相對current picture在時(shí)間上是否處于未來或index0的backward reference picture相對current picture在時(shí)間上處于過去的場合,由不需要collocated block的forward MV的代用模式生成預(yù)測宏塊(304)。在由處理306判定可使用的場合,對各8×8塊進(jìn)行預(yù)測方法的判定。這里設(shè)為8×8塊是由于在圖7的塊分割方法中參考幀和預(yù)測方法選擇的最小單位形成為8×8塊。具體地說,檢查是否適用在與8×8塊對應(yīng)的collocated block具有forward MV的預(yù)測模式(307)。然后,在判定適用的場合,由direct模式生成預(yù)測塊(303),在判定不適用的場合,由代用模式生成預(yù)測塊(304)。在處理307中,關(guān)于collocated 8×8block,在預(yù)測模式為intra模式的場合,預(yù)測方向?yàn)閎ackward prediction的場合,或forward reference picture不為包含于current picture的forward reference picture set的index 0的reference picture的場合,判定不能使用direct模式。與圖12的場合同樣,也可按宏塊單位實(shí)施處理307的direct模式的可否使用判定。但是,在該場合,僅在宏塊內(nèi)的所有的預(yù)測塊、圖7的塊分割方法時(shí)4個(gè)8×8塊全部為direct模式可使用狀態(tài)的場合判定為可使用direct模式。如圖24的說明所示那樣,也可考慮diret_reference_usable23僅示出index 0的forward reference相對current picture在時(shí)間上處于未來的條件的場合。在該場合,存在由圖9的direct模式預(yù)測實(shí)施圖24的說明所示的由外插計(jì)算進(jìn)行的移動(dòng)向量的計(jì)算的可能性。另外,也可如上述變形例(1)所示那樣,考慮由diret_reference_usable23僅示出direct模式的使用判定條件的場合。在該場合,也指定direct模式的使用,而且在forward reference在時(shí)間上處于未來或backwardreference在時(shí)間上處于未來的場合,用于圖9的direct模式預(yù)測的移動(dòng)向量由外插計(jì)算算出。
(4)在圖1、2及圖24中,限定于圖像標(biāo)題的數(shù)據(jù)構(gòu)造進(jìn)行了說明,但在作為集中多個(gè)宏塊的組的片層(slice layer)的標(biāo)題部分記載這些信息的場合,也可適用本發(fā)明的數(shù)據(jù)構(gòu)造。
在按片單位對壓縮數(shù)據(jù)進(jìn)行分組化地輸送的方式中,由片層的標(biāo)題部分的信息確定數(shù)據(jù)的解碼順序。為此,片標(biāo)題部分需要與解碼順序相關(guān)的本發(fā)明的信息。表示哪一個(gè)宏塊屬于1個(gè)片的信息具有由控制上位的通信·網(wǎng)絡(luò)相關(guān)信息的通信分組標(biāo)題和文件格式的標(biāo)題部分所示的場合和示于確定數(shù)據(jù)整體的構(gòu)成的順序標(biāo)題的場合等。按該片單位切換direct模式和代用模式的方法與用幀單位切換的方法相比,選擇的自由度提高,預(yù)測效率提高。但是,為了提高預(yù)測效率,需要按片單位的選擇控制,所以,運(yùn)算量增大。因此,在需要實(shí)時(shí)處理的應(yīng)用中,可以說按照幀構(gòu)造的幀單位下的切換控制有效。
此前說明的本發(fā)明的方式可適用于專用回路·專用芯片的圖像編碼裝置·圖像解碼裝置、使用通用處理器的軟件圖像編碼裝置·軟件圖像解碼裝置。
在圖28中示出作為內(nèi)部型的軟件編碼器·解碼器的例子使用應(yīng)用處理器的攜帶終端的例子。主要由進(jìn)行無線通信處理的主機(jī)部分2820、處理來自攝像機(jī)的輸入信號(hào)的攝像機(jī)輸入處理部分2830、實(shí)施影像編碼/解碼等的應(yīng)用處理的應(yīng)用處理部分2800、處理顯示數(shù)據(jù)的輸出器件2840構(gòu)成。編碼時(shí),由攝像機(jī)攝影的圖像先由攝像機(jī)輸入處理部分2830變換成圖3所示那樣的YUV信號(hào),輸入到應(yīng)用處理部分2800。應(yīng)用處理部分2800將輸入圖像編碼成圖1(或圖2或圖24)和圖18所示那樣的流式數(shù)據(jù)。在內(nèi)部型的場合,由通用處理器2810內(nèi)的處理部分2811實(shí)施編碼處理(包含圖14~17的流程圖所示動(dòng)作)的軟件(匯編代碼)預(yù)先存儲(chǔ)于內(nèi)部RAM2812或外部RAM2830。另外,示于圖14~17的流程圖的那樣的預(yù)測處理的數(shù)據(jù)(多個(gè)參考圖像和各宏塊的參考圖像編號(hào)、預(yù)測方向、移動(dòng)向量)也在內(nèi)部RAM2812或外部RAM2830預(yù)先確保存儲(chǔ)的區(qū)域。匯編代碼和各數(shù)據(jù)的存儲(chǔ)區(qū)域配置按處理器能力、總線速度、匯編代碼和對各數(shù)據(jù)的推斷訪問頻度和其容量的平衡進(jìn)行設(shè)計(jì)。通常內(nèi)部RAM比外部RAM的訪問速度快,外部RAM比內(nèi)部RAM的搭載容量大。因此,將訪問頻度高、容量少的數(shù)據(jù)存儲(chǔ)區(qū)域和匯編代碼配置到內(nèi)部RAM。此時(shí),也存在將匯編代碼分割配置到內(nèi)部RAM和外部RAM進(jìn)行配置的場合。編碼的位流數(shù)據(jù)保存在外部RAM2830或主機(jī)部分2820內(nèi)的存儲(chǔ)器。保存于哪一個(gè),根據(jù)編碼位流數(shù)據(jù)的用途等、面向攜帶終端的服務(wù)而不同。解碼時(shí),從主機(jī)部分2820或外部RAM2830將編碼位流數(shù)據(jù)供給到應(yīng)用處理部分2800。應(yīng)用處理部分2800對輸入的編碼位流數(shù)據(jù)進(jìn)行解碼,將YUV再生圖像變換成RGB圖像后輸出到輸出器件2840。此時(shí),YUV再生圖像也存在一時(shí)存儲(chǔ)于外部RAM或內(nèi)部RAM內(nèi)的幀存儲(chǔ)器的場合。與編碼處理的場合同樣,在解碼處理中,由通用處理器2810內(nèi)的處理部分2811實(shí)施解碼處理(包含圖14~17的流程圖的動(dòng)作)的軟件(匯編代碼)存儲(chǔ)于內(nèi)部RAM2812或外部RAM2830。另外,用于圖14~17的流程圖所示那樣的預(yù)測處理的數(shù)據(jù)(多個(gè)參考圖像和各宏塊的參考圖像編號(hào)、預(yù)測方向、移動(dòng)向量)也在內(nèi)部RAM2812或外部RAM2830確保預(yù)先存儲(chǔ)的區(qū)域。
圖29示出在更通用的用途下使用的軟件編碼器·解碼器的例子。在編碼時(shí),輸入圖像存儲(chǔ)到幀存儲(chǔ)器2950,通用處理器2900從這里讀入信息進(jìn)行編碼處理。用于驅(qū)動(dòng)該通用處理器的程序(包含圖14~17的流程圖所示動(dòng)作)從由硬盤和軟盤等的存儲(chǔ)裝置2930讀出,存儲(chǔ)到程序用存儲(chǔ)器2920。在通用處理器輸出的編碼信息一時(shí)存儲(chǔ)到輸入輸出緩沖器2940后,作為編碼流輸出。在處理存儲(chǔ)器2910存儲(chǔ)圖14~17的流程圖所示那樣的預(yù)測處理中利用的數(shù)據(jù)(多個(gè)參考圖像和各宏塊的參考圖像編號(hào)、預(yù)測方向、移動(dòng)向量),按照程序的處理由通用處理器讀入。另外,通用處理器根據(jù)程序的處理將數(shù)據(jù)存儲(chǔ)到處理存儲(chǔ)器。解碼時(shí),輸入的編碼位流一時(shí)存儲(chǔ)到輸入輸出緩沖器2940,通用處理器2900從這里讀入進(jìn)行解碼。用于驅(qū)動(dòng)該通用處理器的程序(包含圖14~17的流程圖所示動(dòng)作)從利用硬盤和軟盤等的存儲(chǔ)裝置2930讀出,存儲(chǔ)到程序用存儲(chǔ)器2920。在解碼后的再生圖像一時(shí)存儲(chǔ)到幀存儲(chǔ)器2950后,輸出到實(shí)施輸出處理的裝置。在處理存儲(chǔ)器2910存儲(chǔ)圖14~17的流程圖所示那樣的預(yù)測處理中利用的數(shù)據(jù)(多個(gè)參考圖像和各宏塊的參考圖像編號(hào)、預(yù)測方向、移動(dòng)向量),按照程序的處理由通用處理器讀入。另外,通用處理器根據(jù)程序的處理將按照程序的處理生成的數(shù)據(jù)存儲(chǔ)到處理存儲(chǔ)器。
圖22示出使用專用回路·專用芯片的圖像編碼裝置的構(gòu)成。關(guān)于1個(gè)宏塊處理的編碼處理,說明處理的流程。首先,存儲(chǔ)到輸入宏塊圖像201和幀存儲(chǔ)器210的編碼結(jié)束的幀的解碼圖像(參考幀)間的移動(dòng)補(bǔ)償處理對所有宏塊類型(8×8partition類型)與候補(bǔ)參考幀的組合由移動(dòng)補(bǔ)償部分211進(jìn)行,選擇最佳的宏塊類型和8×8partition類型。此時(shí),在進(jìn)行direct模式的移動(dòng)補(bǔ)償?shù)膱龊?,需要從MV預(yù)測部分215獲得預(yù)測方向、參考幀編號(hào)、移動(dòng)向量信息。圖26示出MV預(yù)測器的內(nèi)部構(gòu)造。示出direct模式的宏塊類型(8×8partition類型)、宏塊位置信息(塊位置信息)及direct模式的類型(direct/alternative、由移動(dòng)補(bǔ)償器控制、alternative預(yù)測為圖14~圖17所示代用模式)時(shí),通過轉(zhuǎn)換開關(guān)2620起動(dòng)轉(zhuǎn)換開關(guān)2630。轉(zhuǎn)換開關(guān)2630根據(jù)direct模式的類型對開關(guān)進(jìn)行切換。在direct模式的類型為direct預(yù)測的場合,起動(dòng)移動(dòng)向量計(jì)算部分2660。移動(dòng)向量計(jì)算部分2660使用保存于內(nèi)部存儲(chǔ)器2610的信息計(jì)算圖9所示預(yù)測參數(shù)。計(jì)算出的參數(shù)保存于內(nèi)部存儲(chǔ)器,同時(shí)通知到移動(dòng)補(bǔ)償器。在direct模式的類型為alternative預(yù)測的場合,起動(dòng)alternative預(yù)測部分2640。alternative預(yù)測部分實(shí)施圖14所示處理。具體地說,預(yù)測模式選擇部分2641、參考幀選擇部分2642、移動(dòng)向量選擇部分2643使用保存于內(nèi)部存儲(chǔ)器2610的信息分別實(shí)施圖15、圖16、圖17的流程圖所示處理,計(jì)算出預(yù)測方向、參考幀編號(hào)、及移動(dòng)向量。這些預(yù)測參數(shù)保存于內(nèi)部存儲(chǔ)器,并通知到移動(dòng)補(bǔ)償器。
下面,返回到移動(dòng)補(bǔ)償器的說明。選擇最佳的宏塊類型后,檢測出的移動(dòng)向量與宏塊類型、預(yù)測方向信息(forward/backward/bi-predictive)、參考幀編號(hào)一起通知到MV預(yù)測部分215,更新內(nèi)部存儲(chǔ)器2610的內(nèi)容(選擇direct模式的場合,僅為宏塊類型或8×8partition類型)。關(guān)于宏塊類型和8×8partition類型不為direct的塊,由移動(dòng)向量預(yù)測部分2650(由轉(zhuǎn)換開關(guān)2620起動(dòng))實(shí)施圖8所示預(yù)測處理,計(jì)算出差分移動(dòng)向量。計(jì)算出的差分移動(dòng)向量與宏塊類型、8×8partition類型、及參考幀編號(hào)一起輸出到復(fù)用器206(在選擇direct模式的場合,差分移動(dòng)向量和參考幀編號(hào)不復(fù)用)。在這里,僅關(guān)于最佳的宏塊類型(8×8partition類型)進(jìn)行差分移動(dòng)向量的計(jì)算,但也可考慮將差分移動(dòng)向量的值和其代碼量用作最佳宏塊類型(8×8partition類型)選擇時(shí)的評(píng)價(jià)值的場合。在該場合,關(guān)于各宏塊類型(8×8partition類型)和參考幀的組合由MV預(yù)測器計(jì)算出差分移動(dòng)向量。
從根據(jù)移動(dòng)補(bǔ)償生成的參考幀抽出的差分預(yù)測宏塊圖像213輸入到Intra/Inter判定處理部分214。在Intra/Inter判定部分,確定將內(nèi)部模式和相互模式中的哪一個(gè)確定為最終的宏塊類型,將判定信息218通知到復(fù)用器206和MV預(yù)測部分215。MV預(yù)測部分215在判定信息218為內(nèi)部模式的場合更新內(nèi)部存儲(chǔ)器內(nèi)的保存數(shù)據(jù)。復(fù)用器根據(jù)內(nèi)部/相互模式判定結(jié)果和從MV預(yù)測器獲得的相互模式的宏塊類型、8×8partition類型、參照幀編號(hào)及差分移動(dòng)向量(在選擇了direct模式的場合沒有差分移動(dòng)向量和參考編號(hào))生成圖18所示編號(hào),復(fù)用為編碼位流。在由Intra/Inter判定部分選擇的宏塊為相互模式的場合,預(yù)測宏塊圖像在現(xiàn)幀的輸入宏塊圖像201之間由差分器202進(jìn)行差分處理,生成差分宏塊圖像。此時(shí),同時(shí)將預(yù)測宏塊圖像輸出到加法器209。在由Intra/Inter判定部分選擇的宏塊類型為內(nèi)部模式的場合,預(yù)測宏塊不輸出到差分器202和加法器209。
從差分器202輸出的差分宏塊圖像或輸入宏塊圖像首先進(jìn)行DCT變換。DCT的塊尺寸在過去的編碼方式中8×8像素為一般,但在最近,在MPEG-4 Part 10(Advanced Video Coding)等中討論了按照4×4像素圖像的DCT變換,所以,在這里,以4×4DCT為例進(jìn)行說明。差分宏塊圖像如圖6所示那樣分割成24個(gè)4×4像素塊,由DC變換器203分別變換成16個(gè)DCT系數(shù)。各DCT系數(shù)由量化器204量化,由復(fù)用器206編碼。在復(fù)用器206中,與圖1、圖2或圖24所示那樣的標(biāo)題信息一起對圖18所示那樣的宏塊信息進(jìn)行復(fù)用,生成編碼位流。量化DCT系數(shù)由局部解碼器220的反量化器207和反DCT器208解碼成差分宏塊圖像或宏塊圖像。在該宏塊的預(yù)測模式為相互模式的場合,差分宏塊圖像在加法器209與預(yù)測宏塊圖像相加,然后,合成為幀存儲(chǔ)器201。在該宏塊為內(nèi)部模式的場合,還原的宏塊圖像合成到幀存儲(chǔ)器201。
在圖22的內(nèi)部模式中,不實(shí)施內(nèi)部預(yù)測,但在實(shí)施內(nèi)部預(yù)測的編碼方式,本發(fā)明也可適用。在該場合,雖然也可在Intra/Inter判定部分實(shí)施內(nèi)部預(yù)測,但也可考慮將該處理并入到移動(dòng)補(bǔ)償部分的場合。特別是在如MPEG-4 Part 10(Advanced Video Coding)那樣準(zhǔn)備多個(gè)內(nèi)部預(yù)測類型的編碼方式中,可與相互預(yù)測類型同列地處理內(nèi)部預(yù)測類型,所以,裝置構(gòu)成簡易。在該場合,從移動(dòng)補(bǔ)償部分211將差分預(yù)測宏塊圖像213供給到差分器202和加法器209。另外,由于在宏塊類型信息中包含判定信息218,所以,可刪除判定信息218,在由判定信息218的輸入帶來的MV預(yù)測部分215中的內(nèi)部存儲(chǔ)器更新處理也被省略。另外,也可考慮在DCT系數(shù)級(jí)別實(shí)施內(nèi)部預(yù)測的場合。該場合通過在DC變換器203和反DCT器208中包含預(yù)測處理而應(yīng)對。
圖23示出使用專用回路·專用芯片的圖像解碼裝置。對1個(gè)宏塊處理的解碼處理說明處理流程。首先,由編碼解析器501解析輸入的編碼數(shù)據(jù),將移動(dòng)向量相關(guān)信息和宏塊類型信息分配到MV預(yù)測器508,將量化DCT系數(shù)信息分配到反量化器502。
在宏塊的預(yù)測模式為相互模式的場合,將塊位置信息、宏塊類型、8×8partition類型、預(yù)測方向信息、參考幀編號(hào)、及差分移動(dòng)向量輸入到MV預(yù)測器508(在宏塊類型為direct模式的場合,僅輸入宏塊類型和宏塊位置信息。另外,在8×8partition類型為direct時(shí),關(guān)于該8×8塊不輸入?yún)⒖紟幪?hào)和差分移動(dòng)向量)。圖27示出MV預(yù)測器的內(nèi)部構(gòu)造。當(dāng)宏塊類型或8×8partition類型為direct時(shí),與宏塊位置信息或塊位置信息一起輸入由編碼解析器501解碼的片標(biāo)題信息內(nèi)的direct模式的類型(direct/alternative、由移動(dòng)補(bǔ)償器控制)。當(dāng)輸入宏塊位置信息(塊位置信息)和direct模式的類型(direct/alternative、由移動(dòng)補(bǔ)償器控制)時(shí),通過轉(zhuǎn)換開關(guān)2620起動(dòng)轉(zhuǎn)換開關(guān)2630。轉(zhuǎn)換開關(guān)2630按照direct模式的類型切換開關(guān)。在direct模式的類型為direct預(yù)測的場合,起動(dòng)移動(dòng)向量計(jì)算部分2660。移動(dòng)向量計(jì)算部分2660使用保存于內(nèi)部存儲(chǔ)器2710的信息計(jì)算出圖9所示預(yù)測參數(shù)。計(jì)算出的參數(shù)保存于內(nèi)部存儲(chǔ)器,并通知到移動(dòng)補(bǔ)償器504。在direct模式的類型為alternative預(yù)測的場合,起動(dòng)alternative預(yù)測部分2640。alternative預(yù)測部分實(shí)施圖14所示處理。具體地說,預(yù)測模式選擇部分2641、參考幀選擇部分2642、移動(dòng)向量選擇部分2643使用保存于內(nèi)部存儲(chǔ)器2710的信息分別實(shí)施圖15、圖16、圖17的流程圖所示處理,計(jì)算出預(yù)測方向、參考幀編號(hào)、及移動(dòng)向量。這些預(yù)測參數(shù)保存于內(nèi)部存儲(chǔ)器2710,并輸出到移動(dòng)補(bǔ)償器504。宏塊類型(8×8partition類型)在不為direct時(shí),與宏塊類型(8×8partition類型)一起輸入宏塊位置信息(塊位置信息)、參考編號(hào)、及差分移動(dòng)向量,由轉(zhuǎn)換開關(guān)2620起動(dòng)移動(dòng)向量預(yù)測部分2750。在移動(dòng)向量預(yù)測部分2750中,使用內(nèi)部存儲(chǔ)器2710的內(nèi)容和輸入數(shù)據(jù)實(shí)施圖8所示預(yù)測處理,恢復(fù)移動(dòng)向量。還原的移動(dòng)向量與預(yù)測方向信息、參考編號(hào)一起輸出到內(nèi)部存儲(chǔ)器2710和移動(dòng)補(bǔ)償器504。在移動(dòng)補(bǔ)償器504中,使用輸入的數(shù)據(jù)和幀存儲(chǔ)器507內(nèi)的參考圖像生成預(yù)測宏塊圖像。然后,在反量化器502和反DCT器503對各4×4像素塊實(shí)施與預(yù)測誤差信號(hào)相關(guān)的編碼數(shù)據(jù)的反量化·反DCT處理,再生差分宏塊圖像。然后,由加法器505對預(yù)測宏塊圖像和差分宏塊圖像進(jìn)行加法處理,再生宏塊圖像。再生的宏塊圖像由合成器506合成為解碼幀圖像。另外,解碼幀圖像存儲(chǔ)到幀存儲(chǔ)器507用于下一幀的預(yù)測。
在宏塊類型為內(nèi)部模式的場合,在反量化器502和反DCT器503中,對各4×4像素塊進(jìn)行反量化·反DCT處理,再生宏塊圖像。此時(shí),圖27的內(nèi)部存儲(chǔ)器2710的內(nèi)容作為相互模式更新。在該圖中,不實(shí)施內(nèi)部預(yù)測,但即使在如MPEG-4 Part 10(Advanced Video Coding)那樣準(zhǔn)備多個(gè)內(nèi)部預(yù)測類型的編碼方式中,本發(fā)明也可適用。在該場合,移動(dòng)補(bǔ)償器504包含內(nèi)部預(yù)測的功能,從移動(dòng)補(bǔ)償部分時(shí)常輸出預(yù)測宏塊圖像。
圖30示出記錄圖28和圖29所示軟件編碼器(圖14~圖17)及圖22和圖26的編碼裝置生成的編碼位流的存儲(chǔ)媒體(記錄媒體)的例子。在可記錄數(shù)字信息的記錄磁盤(磁盤或光盤)3000將數(shù)字信息記錄到同心圓上。當(dāng)取出記錄于該盤的數(shù)字信息的一部分3001時(shí),記錄包含direct模式和代用模式的選擇信息(diret_reference_usable)3011的片標(biāo)題信息3010,SKIP模式信息(mb_skip_run)3021、3031、3041、3051,宏塊類型信息(mb_type,8×8partition)3022、3032、3052,參考幀的編號(hào)和移動(dòng)向量的信息(ref_index_few,ref_index_bwd,mvd_fwd,mvd_bwd)3023、3053,DCT系數(shù)及編碼塊圖案信息(CBP,Residual())3024、3054。以下,由片標(biāo)題關(guān)于幀類型為B-picture、direct模式為代用模式的場合說明數(shù)據(jù)的構(gòu)成。3021~3024及3051~3054示出宏塊類型不為direct的宏塊的編碼數(shù)據(jù)。在8×8partition中包含direct的場合,也成為該數(shù)據(jù)構(gòu)成。在該場合,關(guān)于8×8partitiontype成為direct的8×8塊的參考幀的編號(hào)和移動(dòng)向量的信息不編碼,所以,這些信息不包含于3023和3053,解碼時(shí),在軟件解碼器使用圖14~圖17,在專用解碼裝置用圖27的處理2640計(jì)算出預(yù)測方向、參考幀編號(hào)、及移動(dòng)向量。3031、3032、3035的組合示出宏塊類型為direct的宏塊的編碼數(shù)據(jù)。在該場合,參考幀的編號(hào)和移動(dòng)向量的信息不編碼。解碼時(shí),在軟件解碼器使用圖14~圖17,在專用解碼裝置用圖27的處理2640計(jì)算出預(yù)測方向、參考幀編號(hào)、及移動(dòng)向量。3041為跳越宏塊的例,宏塊類型為direct,DCT系數(shù)信息不存在。解碼時(shí),在軟件解碼器使用圖14~圖17,在專用解碼裝置用圖27的處理2640計(jì)算出預(yù)測方向、參考幀編號(hào)、及移動(dòng)向量。由這些數(shù)據(jù)合成的預(yù)測宏塊圖像直接成為再生宏塊圖像。這樣,作為宏塊類型以良好效率將示出direct模式的符號(hào)填入到存儲(chǔ)媒體,從而可由較少的信息合成再生宏塊圖像。
圖31示出實(shí)現(xiàn)本發(fā)明編碼方法·解碼方法的裝置的具體例。讀取作為記錄媒體的光盤3101(DVD-ROM、DVD-R、BD-ROMBlu-rayDisc ROM、CD-ROM/CD-R等)的編碼位流,在解碼的再生裝置3102也可安裝本發(fā)明的解碼方法。在該場合,再生的影像信號(hào)顯示于電視監(jiān)視器3103。
對從天線3111接收到的地上數(shù)字播送或衛(wèi)星數(shù)字播送進(jìn)行編碼,在將編碼位流記錄到光盤3113(DVD-RAM、DVD-RW、BD-RAM、CD-RW等)的記錄/再生裝置3112也可安裝本發(fā)明的編碼方法。另外,在記錄于光盤3113的編碼位流進(jìn)行解碼的記錄/再生裝置3112也可安裝本發(fā)明的解碼方法。在該場合,再生的影像信號(hào)顯示于電視監(jiān)視器3114。
通過將本發(fā)明的圖像編碼方法·解碼方法用的軟件并入到個(gè)人計(jì)算機(jī)3121,從而可作為圖像編碼·解碼裝置利用。該軟件記錄于作為計(jì)算機(jī)可讀入的記錄媒體的某種存儲(chǔ)媒體(光盤、軟盤、硬盤等)3122,計(jì)算機(jī)將其讀入使用。另外,通過將該個(gè)人計(jì)算機(jī)進(jìn)一步連接到某一通信線路,從而也可作為影像通信終端利用。
在連接于有線電視用的電纜3131或衛(wèi)星數(shù)字播送或地上數(shù)字播送的天線的頂置盒3132內(nèi)的解碼裝置也可安裝本發(fā)明的解碼方法,由電視監(jiān)視器3133再生數(shù)字播送的構(gòu)成也可考慮。也可不為頂置盒,而是在電視監(jiān)視器內(nèi)并入包含本發(fā)明的解碼方法的解碼裝置。
數(shù)字?jǐn)y帶終端3141也可安裝含本發(fā)明的編碼方法·解碼方法的裝置或軟件編碼器·解碼器。作為安裝形式,除了具有編碼方法·解碼方法雙方的收發(fā)型的終端外,還可考慮僅編碼的發(fā)送終端、僅解碼的接收終端這樣3個(gè)安裝形式。
在動(dòng)態(tài)攝影用的攝像機(jī)3151中也可并入本發(fā)明的編碼裝置·解碼裝置。在該場合,攝影用攝像機(jī)具有編碼裝置和將來自該編碼裝置的輸出記錄到記錄媒體的記錄裝置,將從編碼裝置輸出的編碼位流記錄到記錄裝置,將從編碼裝置輸出的編碼位流記錄到記錄媒體。記錄媒體也存在光盤的場合。在上述攜帶終端具有攝像機(jī)的場合,也可對攝像的結(jié)果進(jìn)行編碼,通過天線送出。
在具有攝像機(jī)輸入的TV會(huì)議系統(tǒng)3161中也可并入本發(fā)明的編碼裝置·解碼裝置。從攝像機(jī)輸入的影像由編碼裝置編碼成編碼位流,投送到網(wǎng)絡(luò)3162。從網(wǎng)絡(luò)接收到的編碼位流由解碼裝置解碼,顯示到監(jiān)視器。在該場合,實(shí)現(xiàn)本發(fā)明的編碼方法和解碼方法的單元也可能不為編碼裝置·解碼裝置,而是為軟件編碼器·解碼器。
通過將本發(fā)明的編碼方法和解碼方法并入到這些裝置,從而可有效地利用direct模式和其代用模式,提高預(yù)測性能。
根據(jù)本發(fā)明的標(biāo)題信息,可明確地判斷是否可用于direct模式。在幀編號(hào)沒有時(shí)刻信息的場合,可以良好的效率發(fā)送表示參考幀與現(xiàn)幀間的關(guān)系的信息。另外,根據(jù)本發(fā)明的代用模式和其切換順序,可提高不能適用direct模式的場合的預(yù)測性能。
本發(fā)明可適用于動(dòng)態(tài)的編碼·解碼。
權(quán)利要求
1.一種動(dòng)態(tài)圖像的解碼方法,使用與移動(dòng)向量相關(guān)的信息和與參考圖像相關(guān)的信息生成預(yù)測圖像,其特征在于,具有包含不伴隨移動(dòng)向量的解碼的模式的多個(gè)預(yù)測模式,具有從多個(gè)參考幀的候補(bǔ)中選擇在該預(yù)測模式中的各預(yù)測方向的預(yù)測中參考的幀的步驟,以及選擇在該預(yù)測模式中使用的移動(dòng)向量的信息的步驟,上述選擇移動(dòng)向量的信息的步驟是根據(jù)包含與當(dāng)前的塊的正左面鄰接的塊或者與當(dāng)前的塊的正上面鄰接的塊的候補(bǔ)塊是否具有移動(dòng)向量而進(jìn)行的,在上述預(yù)測模式中,利用上述選擇的參考幀的信息和上述選擇的移動(dòng)向量的信息而生成上述預(yù)測圖像,進(jìn)行動(dòng)態(tài)圖像的解碼。
全文摘要
過去,對于有些塊,不能有效地適應(yīng)direct模式。因此,向解碼器提供表示按默認(rèn)設(shè)定的后向的參考幀是否可用于direct模式的信息,另外,提供在collocated block不具有可有效地利用的前向移動(dòng)向量的場合可適用的代價(jià)方式的切換順序和代價(jià)方式。這樣,可明確地判斷是否可用于direct模式。另外,在幀編號(hào)沒有時(shí)刻信息的場合,可以高效率傳送表示參照幀和現(xiàn)幀間的關(guān)系的信息。另外,根據(jù)本發(fā)明的代用模式和其切換順序,可提高不能適用direct模式的場合的預(yù)測性能。
文檔編號(hào)H04N7/46GK101039428SQ20071009213
公開日2007年9月19日 申請日期2003年7月11日 優(yōu)先權(quán)日2002年7月15日
發(fā)明者鈴木芳典 申請人:株式會(huì)社日立制作所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1