欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

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

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


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

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