技術(shù)領(lǐng)域
本發(fā)明涉及動(dòng)態(tài)圖像預(yù)測編碼方法、裝置和程序、以及動(dòng)態(tài)圖像預(yù)測解碼方法、裝置和程序,尤其涉及在進(jìn)行畫面間的預(yù)測編碼時(shí)使用的參照?qǐng)D像在緩沖器內(nèi)的記述。
背景技術(shù):
為了高效地進(jìn)行動(dòng)態(tài)圖像數(shù)據(jù)的傳送和蓄積,采用了壓縮編碼技術(shù)。在動(dòng)態(tài)圖像的情況下,廣泛采用MPEG1~4或H.261~H.264方式。
在這些編碼方式中,將成為編碼對(duì)象的圖像分割成多個(gè)塊后,進(jìn)行編碼及解碼的處理。為了提高編碼效率,使用如下所述的預(yù)測編碼方法。在畫面內(nèi)的預(yù)測編碼中,使用與對(duì)象塊位于相同畫面內(nèi)且相鄰的已再現(xiàn)的圖像信號(hào)(對(duì)過去已壓縮的圖像數(shù)據(jù)復(fù)原后的信號(hào))來生成預(yù)測信號(hào)后,對(duì)從對(duì)象塊的信號(hào)中減去該預(yù)測信號(hào)而得到的差分信號(hào)進(jìn)行編碼。在畫面間的預(yù)測編碼中,參照位于與對(duì)象塊不同的畫面內(nèi)的已再現(xiàn)的圖像信號(hào),檢索信號(hào)的位移,對(duì)其運(yùn)動(dòng)量進(jìn)行補(bǔ)償而生成預(yù)測信號(hào),對(duì)從對(duì)象塊的信號(hào)中減去該預(yù)測信號(hào)而得到的差分信號(hào)進(jìn)行編碼。將為了進(jìn)行運(yùn)動(dòng)的檢索及補(bǔ)償而參照的已再現(xiàn)的圖像稱為參照?qǐng)D像。
在H.264的畫面間預(yù)測編碼中,關(guān)于針對(duì)對(duì)象塊的預(yù)測信號(hào),是通過參照過去編碼而再現(xiàn)的多個(gè)參照?qǐng)D像來進(jìn)行運(yùn)動(dòng)檢索,從而將誤差最少的圖像信號(hào)選擇為對(duì)象塊的最佳的預(yù)測信號(hào)。求出對(duì)象塊的像素信號(hào)與該最佳的預(yù)測信號(hào)的差分,執(zhí)行離散余弦變換并在量化后進(jìn)行熵編碼。同時(shí),也對(duì)與從哪個(gè)參照?qǐng)D像獲取針對(duì)對(duì)象塊的最佳預(yù)測信號(hào)相關(guān)的信息(稱為“參照索引”)、以及與從參照?qǐng)D像的哪個(gè)區(qū)域獲取該最佳預(yù)測信號(hào)相關(guān)的信息(稱為“運(yùn)動(dòng)矢量”)一并進(jìn)行編碼。在H.264中,將被再現(xiàn)的圖像作為4至5張的參照?qǐng)D像存儲(chǔ)在幀存儲(chǔ)器或再現(xiàn)圖像緩沖器(decoded picture buffer,下面稱為“DPB”)中。
關(guān)于多張參照?qǐng)D像的管理方法通常有如下的方法,從緩沖器中釋放已被再現(xiàn)的多張圖像中最早的參照?qǐng)D像(即位于在時(shí)間上期間最長的緩沖器內(nèi)的參照?qǐng)D像)占據(jù)的區(qū)域,將最近被解碼的再現(xiàn)圖像存儲(chǔ)為參照?qǐng)D像。另一方面,基于提高畫面間預(yù)測的效率的目的,在后述的非專利文獻(xiàn)1中公開了靈活地準(zhǔn)備最適合于對(duì)象圖像的參照?qǐng)D像的參照?qǐng)D像的管理方法。
根據(jù)非專利文獻(xiàn)1,對(duì)各對(duì)象圖像的編碼數(shù)據(jù)附加用于記述在緩沖器中存儲(chǔ)的多張參照?qǐng)D像的緩沖器記述信息(buffer description information)進(jìn)行編碼。在該緩沖器記述信息中記載了對(duì)象圖像以及該對(duì)象圖像以后的圖像的處理(編碼或者解碼)所需要的多張參照?qǐng)D像的識(shí)別符。在編碼裝置或者解碼裝置中,按照緩沖器記述信息來管理緩沖器,以便將指定的再現(xiàn)圖像存儲(chǔ)在緩沖器(幀存儲(chǔ)器)中。另一方面,將未被指定的再現(xiàn)圖像從緩沖器中刪除。
有關(guān)各對(duì)象圖像的緩沖器記述信息也可以附加在各對(duì)象圖像的壓縮數(shù)據(jù)的報(bào)頭中進(jìn)行發(fā)送,還可以將有關(guān)多張對(duì)象圖像的緩沖器記述信息匯總作為用于傳輸共同適用的解碼處理的參數(shù)的PPS(picture parameter set,圖像參數(shù)集)信息的一部分進(jìn)行發(fā)送。圖15是示出在PPS中記載的緩沖器記述信息的示意圖。在PPS中也包括緩沖器記述信息以外的信息,但在此省略。在PPS信息1510中記載了緩沖器記述(buffer description,下面也稱為“BD”)的個(gè)數(shù)1511、和與該個(gè)數(shù)量的BD相關(guān)的信息(1520、1522、1524)。在有關(guān)各BD的信息(以后將第k個(gè)BD稱為BD[k])中記載了被存儲(chǔ)在緩沖器中的參照?qǐng)D像的張數(shù)1530、和用于識(shí)別存儲(chǔ)哪個(gè)參照?qǐng)D像的信息(1531、1532)。為了識(shí)別參照?qǐng)D像,采用了表示將該圖像輸出到外部的順序的信息POC(picture output count)。在此,不是直接使用POC號(hào)碼,而是記述參照?qǐng)D像的POC號(hào)碼與處理對(duì)象圖像的POC號(hào)碼的差分即ΔPOCk,j(位于第k個(gè)BD中的第j個(gè)成分)。同時(shí),也一并發(fā)送表示該參照?qǐng)D像對(duì)其它圖像的依存度的D_IDk,j。D_IDk,j的值越小,在越多的圖像的再現(xiàn)時(shí)需要該參照?qǐng)D像,相反其值越大,對(duì)其它圖像的影響比較小。在具有最大的值的情況下,在其它圖像的再現(xiàn)時(shí)將不需要該參照?qǐng)D像,因而意味著不需要存儲(chǔ)為參照?qǐng)D像??傊诂F(xiàn)有技術(shù)中,為了發(fā)送緩沖器記述BD[k],從發(fā)送側(cè)向接收側(cè)發(fā)送表示參照?qǐng)D像的張數(shù)的值(#POCk)及其張數(shù)的量的{ΔPOCk,j,D_IDk,j}的信息。
圖16示出對(duì)象圖像和在對(duì)各對(duì)象圖像進(jìn)行處理時(shí)位于緩沖器DPB內(nèi)的多張參照?qǐng)D像的狀態(tài)。在各框格中寫入了用于識(shí)別圖像的POC號(hào)碼。例如,在行1610中意味著在對(duì)POC=32的對(duì)象圖像進(jìn)行處理時(shí)(編碼或者解碼),在DPB中存儲(chǔ)了POC=18、20、22、24的參照?qǐng)D像。另外,將現(xiàn)有技術(shù)適用于圖16而求出的緩沖器記述信息如圖17所示。位于1704下方的各框格表示ΔPOCk,j的值。
現(xiàn)有技術(shù)文獻(xiàn)
非專利文獻(xiàn)
非專利文獻(xiàn)1:Rickard Sjoberg,Jonatan Samuelsson,“Absolute signaling of reference pictures”,Joint Collaborative Team on Video Coding,JCTVC-F493,Torino,2011.
技術(shù)實(shí)現(xiàn)要素:
發(fā)明要解決的問題
另一方面,在動(dòng)態(tài)圖像編碼及解碼中,通常是同一圖像被多張參照?qǐng)D像參照。換言之,同一參照?qǐng)D像被(反復(fù))使用多次。在圖16中,可知用虛線1603包圍的POC=32的參照?qǐng)D像被POC=28、26、30、25、27、29、31的對(duì)象圖像參照。此外,根據(jù)位于圖16中的框格1602下方的各框格的值可知,POC=22、24、28、26、30的對(duì)象圖像也被多次利用。
可是,在基于現(xiàn)有技術(shù)的緩沖器記述信息中,由于是在各BD[k]中獨(dú)立地求出ΔPOCk,j,因而即使是對(duì)于相同的參照?qǐng)D像,也要對(duì)每個(gè)BD[k]記述該ΔPOCk,j,因此盡管是相同的信息卻必須反復(fù)地發(fā)送及接收相同的信息。以圖16和圖17為例進(jìn)行說明。用虛線1705包圍的各框格的值對(duì)應(yīng)于圖16中用虛線1603包圍的各框格的POC號(hào)碼。虛線1603內(nèi)全部成為POC=32的參照?qǐng)D像,但位于虛線1705內(nèi)的ΔPOCk,j的值全部不同。并且,由于這些ΔPOCk,j的值大不相同,因而需要使用許多比特進(jìn)行編碼。因此,存在這樣的問題,即為了傳輸基于現(xiàn)有技術(shù)的緩沖器記述信息,必須使用許多比特反復(fù)發(fā)送及接收相同的信息。
用于解決問題的手段
為了解決上述問題,本發(fā)明的一個(gè)方面的動(dòng)態(tài)圖像預(yù)測編碼裝置具有:輸入單元,其輸入構(gòu)成動(dòng)態(tài)圖像的多張圖像;編碼單元,其將過去已編碼后又被解碼及再現(xiàn)的多張圖像作為參照?qǐng)D像,對(duì)對(duì)象圖像進(jìn)行預(yù)測編碼而生成壓縮圖像數(shù)據(jù);復(fù)原單元,其對(duì)該壓縮圖像數(shù)據(jù)進(jìn)行解碼而復(fù)原為再現(xiàn)圖像;圖像存儲(chǔ)單元,其存儲(chǔ)一張以上該再現(xiàn)圖像,作為在對(duì)后續(xù)的圖像進(jìn)行編碼時(shí)使用的參照?qǐng)D像;以及緩沖器管理單元,其控制圖像存儲(chǔ)單元,緩沖器管理單元(在對(duì)對(duì)象圖像進(jìn)行處理之前)根據(jù)與在對(duì)對(duì)象圖像進(jìn)行預(yù)測編碼時(shí)使用的多張參照?qǐng)D像相關(guān)的緩沖器記述信息BD[k],控制圖像存儲(chǔ)單元,同時(shí)參照與對(duì)象圖像不同的其它圖像的緩沖器記述信息BD[m]對(duì)該緩沖器記述信息BD[k]進(jìn)行編碼,然后將該編碼數(shù)據(jù)附加在壓縮圖像數(shù)據(jù)中。
另外,本發(fā)明的一個(gè)方面的動(dòng)態(tài)圖像預(yù)測解碼裝置具有:輸入單元,其輸入壓縮圖像數(shù)據(jù),該壓縮圖像數(shù)據(jù)包括:將過去被解碼及再現(xiàn)的多張圖像作為參照?qǐng)D像對(duì)構(gòu)成動(dòng)態(tài)圖像的多張圖像分別進(jìn)行預(yù)測編碼而得到的數(shù)據(jù),以及與多張參照?qǐng)D像相關(guān)的緩沖器記述信息BD[k]的編碼數(shù)據(jù);復(fù)原單元,其對(duì)壓縮圖像數(shù)據(jù)進(jìn)行解碼而復(fù)原為再現(xiàn)圖像;圖像存儲(chǔ)單元,其存儲(chǔ)一張以上該再現(xiàn)圖像,作為在對(duì)后續(xù)的圖像進(jìn)行解碼時(shí)使用的參照?qǐng)D像;以及緩沖器管理單元,其控制圖像存儲(chǔ)單元,緩沖器管理單元(在將再現(xiàn)圖像復(fù)原之前)參照與該再現(xiàn)圖像不同的其它圖像的緩沖器記述信息BD[m],對(duì)再現(xiàn)圖像的緩沖器記述信息BD[k]的編碼數(shù)據(jù)進(jìn)行解碼,然后根據(jù)該解碼后的緩沖器記述信息BD[k]控制圖像存儲(chǔ)單元。
發(fā)明效果
根據(jù)本發(fā)明的緩沖器記述信息的編碼及解碼方法,利用同一參照?qǐng)D像被在多張圖像的預(yù)測編碼及解碼處理中反復(fù)利用的性質(zhì),并利用了在不同的圖像中使用的緩沖器記述信息BD[k]之間的相關(guān)性來削減成為冗余的信息,由此具有能夠高效地對(duì)緩沖器記述信息進(jìn)行編碼的效果。此外,各參照?qǐng)D像固有的信息(依存度信息)與參照方的圖像相同,因而具有能夠直接沿用該信息,并且不需要重新進(jìn)行編碼及解碼的優(yōu)點(diǎn)。
附圖說明
圖1是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測編碼裝置的框圖。
圖2是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測解碼裝置的框圖。
圖3是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測編碼裝置的緩沖器管理方法的流程圖。
圖4是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測解碼裝置的緩沖器管理方法的流程圖。
圖5是示出利用在本發(fā)明的實(shí)施方式中采用的緩沖器管理方法生成的緩沖器記述信息的表。
圖6是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測編碼裝置中的緩沖器記述信息的編碼處理的流程圖。
圖7是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測解碼裝置的緩沖器記述信息的解碼處理的流程圖。
圖8是示出在根據(jù)本發(fā)明的實(shí)施方式而生成的PPS中記載的緩沖器記述信息的示意圖。
圖9是示出對(duì)象圖像和在對(duì)各對(duì)象圖像進(jìn)行處理時(shí)位于緩沖器DPB內(nèi)的多張參照?qǐng)D像的狀態(tài)的另一例。
圖10是示出有關(guān)圖9的示例的、本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測編碼裝置的緩沖器記述信息的編碼處理的流程圖。
圖11是示出有關(guān)圖9的示例的、本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測解碼裝置的緩沖器記述信息的解碼處理的流程圖。
圖12是示出有關(guān)圖9的示例的、在根據(jù)本發(fā)明的實(shí)施方式而生成的PPS中記載的緩沖器記述信息的示意圖。
圖13是示出用于執(zhí)行記錄在記錄介質(zhì)中的程序的計(jì)算機(jī)的硬件結(jié)構(gòu)的圖。
圖14是用于執(zhí)行記錄在記錄介質(zhì)中的程序的計(jì)算機(jī)的立體圖。
圖15是示出基于現(xiàn)有技術(shù)的在PPS中記載的緩沖器記述信息的示意圖。
圖16是示出對(duì)象圖像和在對(duì)各對(duì)象圖像進(jìn)行處理時(shí)位于緩沖器DPB內(nèi)的多張參照?qǐng)D像的狀態(tài)的一例。
圖17是示出根據(jù)現(xiàn)有技術(shù)從圖16的示例求出的緩沖器記述信息的表。
圖18是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測編碼裝置直接對(duì)緩沖器記述信息的POC號(hào)碼進(jìn)行編碼的處理的流程圖。
圖19是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測解碼裝置直接對(duì)緩沖器記述信息的POC號(hào)碼進(jìn)行解碼的處理的流程圖。
圖20是示出根據(jù)現(xiàn)有技術(shù)從圖9的示例求出的緩沖器記述信息的表。
圖21是示出根據(jù)在本發(fā)明的實(shí)施方式中采用的緩沖器管理方法,從圖20的示例求出的緩沖器記述信息的表。
圖22是示出與本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測編碼裝置的緩沖器記述信息的編碼處理相關(guān)、且與圖6的處理不同的實(shí)施方法的流程圖。
圖23是示出與本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測解碼裝置的緩沖器記述信息的解碼處理相關(guān)、且與圖7的處理不同的另一個(gè)實(shí)施方法的流程圖。
圖24是示出在PPS中記載的緩沖器記述信息的示意圖,該P(yáng)PS是通過基于圖22的本發(fā)明的實(shí)施方式的緩沖器記述信息的編碼處理而生成的。
具體實(shí)施方式
下面,使用圖1~圖24說明本發(fā)明的實(shí)施方式。
圖1是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測編碼裝置100的框圖。如圖1所示,動(dòng)態(tài)圖像預(yù)測編碼裝置100具有輸入單元101、塊分割器102、預(yù)測信號(hào)生成器103、幀存儲(chǔ)器(或者緩沖器,也稱為DPB)104、減法器105、變換器106、量化器107、逆量化器108、逆變換器109、加法器110、熵編碼器111、輸出端子112以及緩沖器管理器114。減法器105、變換器106以及量化器107對(duì)應(yīng)于在權(quán)利要求書中記載的“編碼單元”。并且,逆量化器108、逆變換器109以及加法器110對(duì)應(yīng)于在權(quán)利要求書中記載的“復(fù)原單元”。
下面,說明如上所述構(gòu)成的圖像預(yù)測編碼裝置100的動(dòng)作。由多張圖像構(gòu)成的動(dòng)態(tài)圖像的信號(hào)被輸入到輸入端子101。由塊分割器102將作為編碼對(duì)象的圖像分割為多個(gè)區(qū)域。在本發(fā)明的實(shí)施方式中是分割為由8×8像素構(gòu)成的塊,但也可以分割為除此之外的塊的大小或者形狀。然后,對(duì)于作為編碼處理的對(duì)象的區(qū)域(下面,稱為“對(duì)象塊”),生成預(yù)測信號(hào)。在本發(fā)明的實(shí)施方式中采用畫面間預(yù)測和畫面內(nèi)預(yù)測這兩種預(yù)測方法。
在畫面間預(yù)測中,將過去被編碼后又被復(fù)原的再現(xiàn)圖像作為參照?qǐng)D像,從該參照?qǐng)D像求出用于提供相對(duì)于對(duì)象塊的誤差為最小的預(yù)測信號(hào)的運(yùn)動(dòng)信息。并且,也可以根據(jù)情況對(duì)對(duì)象塊進(jìn)行再分割,對(duì)被再分割后的小區(qū)域確定畫面間預(yù)測方法。在這種情況下,從各種分割方法中確定相對(duì)于對(duì)象塊整體效率最好的分割方法及各自的運(yùn)動(dòng)信息。在本發(fā)明的實(shí)施方式中,該處理由預(yù)測信號(hào)生成器103進(jìn)行,對(duì)象塊經(jīng)由線路L102被輸入,參照?qǐng)D像經(jīng)由線路L104被輸入。關(guān)于參照?qǐng)D像,將過去被編碼后又被復(fù)原的多張圖像用作參照?qǐng)D像。詳細(xì)情況與現(xiàn)有技術(shù)即H.264的方法相同。這樣確定的運(yùn)動(dòng)信息和小區(qū)域的分割方法經(jīng)由線路L112被發(fā)送給熵編碼器111進(jìn)行編碼,然后從輸出端子112發(fā)送出去。并且,在多張參照?qǐng)D像中,與從哪個(gè)參照?qǐng)D像獲取預(yù)測信號(hào)相關(guān)的信息(基準(zhǔn)索引)也經(jīng)由線路L112被發(fā)送給熵編碼器111。另外,在本發(fā)明的實(shí)施方式中,將3張~6張的再現(xiàn)圖像存儲(chǔ)在幀存儲(chǔ)器104中用作參照?qǐng)D像。在預(yù)測信號(hào)生成器103中,根據(jù)小區(qū)域的分割方法和與各個(gè)小區(qū)域?qū)?yīng)的參照?qǐng)D像及運(yùn)動(dòng)信息,從幀存儲(chǔ)器104獲取參照?qǐng)D像信號(hào)并生成預(yù)測信號(hào)。這樣生成的畫面間預(yù)測信號(hào)經(jīng)由線路L103被發(fā)送給減法器105。
在畫面內(nèi)預(yù)測中,使用在空間上與對(duì)象塊相鄰的已再現(xiàn)的像素值,生成畫面內(nèi)預(yù)測信號(hào)。具體地講,由預(yù)測信號(hào)生成器103從幀存儲(chǔ)器104獲取位于相同畫面內(nèi)的已再現(xiàn)的像素信號(hào),并對(duì)這些信號(hào)進(jìn)行外插,由此生成畫面內(nèi)預(yù)測信號(hào)。與外插的方法相關(guān)的信息經(jīng)由線路L112被發(fā)送給熵編碼器111進(jìn)行編碼,然后從輸出端子112發(fā)送出去。這樣生成的畫面內(nèi)預(yù)測信號(hào)被發(fā)送給減法器105。預(yù)測信號(hào)生成器103的畫面內(nèi)預(yù)測信號(hào)生成方法與現(xiàn)有技術(shù)的H.264的方法相同。對(duì)于如上所述求出的畫面間預(yù)測信號(hào)和畫面內(nèi)預(yù)測信號(hào),選擇誤差為最小的預(yù)測信號(hào)發(fā)送給減法器105。
由減法器105從對(duì)象塊的信號(hào)(經(jīng)由線路L102)減去預(yù)測信號(hào)(經(jīng)由線路L103),并生成殘差信號(hào)。由變換器106對(duì)該殘差信號(hào)進(jìn)行離散余弦變換,由量化器107對(duì)各個(gè)變換系數(shù)進(jìn)行量化。最后,由熵編碼器111對(duì)被量化后的變換系數(shù)進(jìn)行編碼,并與有關(guān)預(yù)測方法的信息一起從輸出端子112發(fā)送出去。
為了對(duì)后續(xù)的對(duì)象塊進(jìn)行畫面內(nèi)預(yù)測或者畫面間預(yù)測,需要對(duì)被壓縮后的對(duì)象塊的信號(hào)進(jìn)行逆向處理將其復(fù)原。即,由逆量化器108對(duì)被量化后的變換系數(shù)進(jìn)行逆量化,然后由逆變換器109進(jìn)行逆離散余弦變換,將殘差信號(hào)復(fù)原。由加法器110將被復(fù)原后的殘差信號(hào)和從線路L103發(fā)送的預(yù)測信號(hào)相加,將對(duì)象塊的信號(hào)再現(xiàn)并存儲(chǔ)在幀存儲(chǔ)器104中。在本實(shí)施方式中,雖然使用變換器106及逆變換器109,但是也可以使用代替這些變換器的其他的變換處理。另外,也可以沒有變換器106及逆變換器109。
幀存儲(chǔ)器104是有限度的存儲(chǔ)器,不能存儲(chǔ)所有的再現(xiàn)圖像。只有在后續(xù)的圖像的編碼處理中使用的再現(xiàn)圖像被存儲(chǔ)在幀存儲(chǔ)器104中??刂圃搸鎯?chǔ)器104的是緩沖器管理器114。從輸入端子113輸入表示各圖像的輸出順序的信息(POC,picture output count)和在對(duì)其它圖像進(jìn)行預(yù)測編碼時(shí)與表示對(duì)該圖像的依存度的D_IDk,j相關(guān)的依存度信息(dependency ID)、對(duì)該圖像進(jìn)行編碼的類型(畫面內(nèi)預(yù)測編碼、畫面間預(yù)測編碼),緩沖器管理器114根據(jù)該信息進(jìn)行動(dòng)作。由緩沖器管理器114生成的緩沖器記述信息和各圖像的POC信息經(jīng)由線路L114被發(fā)送給熵編碼器111進(jìn)行編碼,然后與被壓縮后的圖像數(shù)據(jù)一起進(jìn)行輸出。關(guān)于本發(fā)明的緩沖器管理器114的處理方法將在后面進(jìn)行說明。
下面,說明本發(fā)明的動(dòng)態(tài)圖像預(yù)測解碼方法。圖2是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測解碼裝置200的框圖。如圖2所示,動(dòng)態(tài)圖像預(yù)測解碼裝置200具有輸入端子201、數(shù)據(jù)分析器202、逆量化器203、逆變換器204、加法器205、預(yù)測信號(hào)生成器208、幀存儲(chǔ)器207、輸出端子206、以及緩沖器管理器209。逆量化器203和逆變換器204對(duì)應(yīng)于在權(quán)利要求書中記載的“復(fù)原單元”。另外,也可以使用上述以外部件作為復(fù)原單元。并且,也可以沒有逆變換器204。
下面說明如上所述構(gòu)成的圖像預(yù)測解碼裝置200的動(dòng)作。從輸入端子201輸入按照上述的方法進(jìn)行了壓縮編碼后的壓縮數(shù)據(jù)。在該壓縮數(shù)據(jù)中包含對(duì)將圖像分割為多個(gè)塊后的對(duì)象塊進(jìn)行預(yù)測及編碼得到的殘差信號(hào)、和與預(yù)測信號(hào)的生成相關(guān)聯(lián)的信息。關(guān)于與預(yù)測信號(hào)的生成相關(guān)聯(lián)的信息,在畫面間預(yù)測的情況下包括有關(guān)塊分割的信息(塊的尺寸)、運(yùn)動(dòng)信息和上述的POC信息,在畫面內(nèi)預(yù)測的情況下包括與從周邊的已再現(xiàn)的像素進(jìn)行外插的方法相關(guān)的信息。并且,在壓縮數(shù)據(jù)中也包括用于控制幀存儲(chǔ)器207的緩沖器記述信息。
數(shù)據(jù)分析器202從壓縮數(shù)據(jù)中提取出對(duì)象塊的殘差信號(hào)、與預(yù)測信號(hào)的生成相關(guān)的信息、量化參數(shù)和圖像的POC信息。由逆變換器203根據(jù)量化參數(shù)(經(jīng)由線路L202)對(duì)對(duì)象塊的殘差信號(hào)進(jìn)行逆量化。由逆變換器204對(duì)其結(jié)果進(jìn)行逆離散余弦變換。
然后,與預(yù)測信號(hào)的生成相關(guān)的信息經(jīng)由線路L206b被發(fā)送給預(yù)測信號(hào)生成器208。在預(yù)測信號(hào)生成器208中,根據(jù)與預(yù)測信號(hào)的生成相關(guān)的信息訪問幀存儲(chǔ)器207,從多個(gè)參照?qǐng)D像中獲取參照?qǐng)D像而生成預(yù)測信號(hào)。該預(yù)測信號(hào)經(jīng)由線路L208被發(fā)送給加法器205,與被復(fù)原后的殘差信號(hào)進(jìn)行相加而再現(xiàn)對(duì)象塊信號(hào),并經(jīng)由線路L205進(jìn)行輸出,同時(shí)被存儲(chǔ)在幀存儲(chǔ)器207中。
在幀存儲(chǔ)器207中存儲(chǔ)有在進(jìn)行后續(xù)的圖像的解碼及再現(xiàn)時(shí)使用的再現(xiàn)圖像。緩沖器管理器209控制幀存儲(chǔ)器207。緩沖器管理器209根據(jù)經(jīng)由線路L206a發(fā)送的緩沖器記述信息和與圖像的編碼類型相關(guān)的信息進(jìn)行動(dòng)作。關(guān)于本發(fā)明的緩沖器管理器209的控制方法將在后面進(jìn)行說明。
下面,使用圖3和圖4說明緩沖器管理器(圖1中的114和圖2中的209)的動(dòng)作。本發(fā)明的實(shí)施方式的緩沖器管理器按照下面所述來管理被存儲(chǔ)在幀存儲(chǔ)器(104、207)中的參照?qǐng)D像。即,在編碼側(cè)匯總生成針對(duì)多張對(duì)象圖像的各自的緩沖器記述信息,并作為用于傳輸共同使用的解碼處理的參數(shù)的PPS(picture parameter set)信息的一部分進(jìn)行發(fā)送。在解碼側(cè),從PPS信息中提取匯總發(fā)送過來的緩沖器記述信息,根據(jù)對(duì)各圖像的壓縮數(shù)據(jù)指定的一個(gè)緩沖器記述信息來準(zhǔn)備位于幀存儲(chǔ)器中的參照?qǐng)D像,然后進(jìn)行解碼及再現(xiàn)處理。沒有被記載在緩沖器記述信息中的參照?qǐng)D像被從幀存儲(chǔ)器中刪除,從此以后不能用作參照?qǐng)D像。
圖3示出了本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測編碼裝置100的緩沖器管理器114的緩沖器記述信息的編碼方法,示出了將針對(duì)多張對(duì)象圖像的各自的緩沖器記述信息匯總進(jìn)行編碼的方法。在此,用BD(buffer description)表示緩沖器記述,BD[k]表示有關(guān)第k個(gè)BD的信息。在根據(jù)本發(fā)明的實(shí)施方式而生成的PPS中記載的緩沖器記述信息的示意圖如圖8所示。
在圖3的步驟S310,將計(jì)數(shù)器k設(shè)定為零。在步驟S320,對(duì)在PPS信息中記載的全部BD的總數(shù)進(jìn)行編碼。該處理對(duì)應(yīng)于圖8的811。在步驟S330,對(duì)與第一個(gè)BD即BD[0]相關(guān)的信息進(jìn)行編碼。圖8的820表示BD[0]的信息。#Δ_POC0(830)表示BD[0]的成分的個(gè)數(shù)即所需要的參照?qǐng)D像的張數(shù)。在此,指不僅是進(jìn)行對(duì)象圖像的編碼及解碼所需要的參照?qǐng)D像,而且不被對(duì)象圖像參照,但是在其前面的圖像的編碼及解碼處理中被參照的參照?qǐng)D像也被記入BD[0]的信息中,因而這種參照?qǐng)D像的張數(shù)也被計(jì)數(shù)為#Δ_POC0。
然后,記載有與使用的參照?qǐng)D像相關(guān)的信息(831、832、…)。在本實(shí)施方式中關(guān)于有關(guān)參照?qǐng)D像的信息是記載了{(lán)Δ_POC0,i,D_ID0,i}。i表示BD[0]的第i個(gè)成分。Δ_POC0,i表示第i個(gè)參照?qǐng)D像的POC號(hào)碼與使用BD[0]的對(duì)象圖像的POC號(hào)碼的差分值,D_ID0,i表示第i個(gè)參照?qǐng)D像的依存度信息。
關(guān)于與BD[0]以外的BD[k]相關(guān)的信息,參照在其以前出現(xiàn)的緩沖器信息BD[m]進(jìn)行預(yù)測編碼(步驟360)。在本實(shí)施方式中,采用m=k-1,但只要m<k,則可以參照任何BD[m]。k>0的BD[k]中包含的信息如圖8的822、824所示。關(guān)于其內(nèi)容是記載了BD[k]的成分的個(gè)數(shù)(即相當(dāng)于對(duì)象圖像及其以后的圖像所需要的參照?qǐng)D像的張數(shù))#ΔPOCk(833、839)、ΔBDk(834、840)、Δidxk,i(835、836、837、840、841、842、843、844)、或者{Δidxk,i,D_IDk,i}(838)。關(guān)于這些發(fā)送數(shù)據(jù)(句法)的詳細(xì)情況在后面進(jìn)行說明。在全部BD[k]被實(shí)施編碼后,將其作為PPS信息的一部分與其它的壓縮數(shù)據(jù)一并發(fā)送出去。在對(duì)各圖像進(jìn)行編碼時(shí),緩沖器管理器114根據(jù)由圖1的輸入端子113指定的一個(gè)緩沖器記述信息BD[k],準(zhǔn)備位于幀存儲(chǔ)器104內(nèi)的參照?qǐng)D像,然后進(jìn)行編碼處理。在接收側(cè),緩沖器管理器209根據(jù)在各圖像的壓縮數(shù)據(jù)的報(bào)頭中附加的緩沖器記述的識(shí)別符k,準(zhǔn)備位于幀存儲(chǔ)器207內(nèi)的參照?qǐng)D像,然后進(jìn)行解碼處理。
圖4是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測解碼裝置200的緩沖器管理器209的緩沖器記述信息的解碼方法的流程圖。數(shù)據(jù)分析器202從PPS信息中提取有關(guān)緩沖器記述信息的數(shù)據(jù),并輸入緩沖器管理器209。在步驟420,首先對(duì)BD的個(gè)數(shù)進(jìn)行解碼。在步驟430,對(duì)與第一個(gè)BD即BD[0]相關(guān)的信息進(jìn)行解碼。關(guān)于與k>0的BD[k]相關(guān)的信息,以在其以前出現(xiàn)的緩沖器記述BD[m]為參照進(jìn)行預(yù)測解碼(步驟460)。如上所述,在此采用m=k-1。全部BD[k]被解碼后的緩沖器記述信息被存儲(chǔ)在緩沖器管理器209中。在對(duì)各圖像進(jìn)行解碼時(shí),緩沖器管理器209根據(jù)對(duì)該壓縮數(shù)據(jù)指定的一個(gè)緩沖器記述信息BD[k],準(zhǔn)備位于幀存儲(chǔ)器207內(nèi)的參照?qǐng)D像,然后進(jìn)行解碼及再現(xiàn)處理。
圖8所示的緩沖器記述(BD[k],k>0)的發(fā)送方式是最高效的。根據(jù)本實(shí)施方式,作為對(duì)象的BD[k]與在其預(yù)測中使用的BD[m]具有如下所述的關(guān)系。
(a)在BD[k]中記載的參照?qǐng)D像的至少一部分已經(jīng)被記載于BD[m]中。
(b)在所述(a)的基礎(chǔ)上,重新被實(shí)施編碼及解碼后的N張圖像作為“追加參照?qǐng)D像”被記載于BD[k]中。在此,N為0以上的整數(shù)。
另外,作為更優(yōu)選的方式,
(c)將m=(k-1)即緩沖器記述信息中前一個(gè)BD應(yīng)用于預(yù)測。
(d)在所述(b)記載的追加參照?qǐng)D像只有1張(N=1)。并且,優(yōu)選這1張追加參照?qǐng)D像是在使用了BD[m]的情況下生成的圖像。
使用圖16說明上述的關(guān)系。圖16中的欄1601表示作為編碼及解碼處理的對(duì)象的對(duì)象圖像的POC號(hào)碼。從上面開始依次按照編碼及解碼處理的順序進(jìn)行排列。即,在對(duì)POC=32的圖像進(jìn)行編碼及解碼后,對(duì)POC=28的圖像進(jìn)行編碼及解碼。并且,在進(jìn)行各對(duì)象圖像的編碼及解碼處理時(shí)使用的參照?qǐng)D像(多張)的POC號(hào)碼被寫入位于欄1602下方的各框格中。
關(guān)于與在將POC=32的對(duì)象圖像(1610)進(jìn)行編碼及解碼/再現(xiàn)時(shí)使用的參照?qǐng)D像相關(guān)的信息,設(shè)為BD[0]并使用圖8的820的句法進(jìn)行編碼。在這種情況下,#ΔPOC0=4,POC號(hào)碼18、20、22、24的參照?qǐng)D像被作為ΔPOC0,i進(jìn)行編碼。ΔPOC0,i的值是位于圖17的行1710的i=0~3的值,根據(jù)參照?qǐng)D像的POC號(hào)碼與對(duì)象圖像的POC號(hào)碼之差而求出。
關(guān)于與在圖16的行1611~1617中記載的參照?qǐng)D像相關(guān)的信息,設(shè)為BD[k]、k>0并使用圖8的822、824的句法進(jìn)行編碼。行1611對(duì)應(yīng)于k=1,表示與在POC=28的對(duì)象圖像中使用的參照?qǐng)D像的POC號(hào)碼相關(guān)的信息。以后的POC號(hào)碼(22、24、32)暫且被換算為ΔPOC1,i。其值被賦值為位于圖17的行1711的i=0~2的值。在本發(fā)明的實(shí)施方式中,參照ΔPOC0,i(位于行1710的i=0~3的值)對(duì)這些ΔPOC1,i的值進(jìn)行預(yù)測編碼。
說明本發(fā)明的緩沖器記述信息的預(yù)測編碼方法。將作為對(duì)象的緩沖器記述信息設(shè)為BD[k],將用于預(yù)測BD[k]的緩沖器記述信息設(shè)為BD[m]。將利用BD[k]的信息的對(duì)象圖像的POC號(hào)碼設(shè)為POCcurrent,將利用BD[m]的信息的對(duì)象圖像的POC號(hào)碼設(shè)為POCprevious。并且,將BD[k]的第i個(gè)參照?qǐng)D像的POC號(hào)碼設(shè)為POCk,i,將BD[m]的第j個(gè)參照?qǐng)D像的POC號(hào)碼設(shè)為POCm,j。在這種情況下,按照下面所述對(duì)ΔPOCk,i、ΔPOCm,j賦值。
ΔPOCk,i=POCk,i-POCcurrent (1)
ΔPOCm,j=POCm,j-POCprevious (2)
將ΔPOCm,j作為預(yù)測值對(duì)ΔPOCk,i進(jìn)行編碼。即,
ΔPOCk,i-ΔPOCm,j=(POCk,i-POCcurrent)-(POCm,j-POCprevious)
=(POCk,i-POCm,j)+(POCprevious-POCcurrent)
=(POCk,i-POCm,j)+ΔBDk (3)
其中,在滿足前述(a)的條件的情況下,POCm,j位于BD[m]中,對(duì)針對(duì)(POCk,i-POCm,j)為零的ΔPOCm,j的識(shí)別符(或者索引)進(jìn)行編碼。在本實(shí)施方式中,使用如下定義的識(shí)別符Δidxk,i。
Δidxk,i=offsetk,i-offsetk,i-1 (4)
其中,offsetk,i=j(luò)-1、offsetk,-1=0。并且,在上述式(3)中定義的ΔBDk是固定的,與(i、j)的值無關(guān),因而對(duì)于BD[k]僅記載一次下式(5)即可。
ΔBDk=POCprevious-POCcurrent (5)
另一方面,存在(POCk,i-POCm,j)為零的ΔPOCm,j不在BD[m]中的情況。作為示例,圖16的成分POC1,2=32(框格1620)沒有作為行1610的參照?qǐng)D像出現(xiàn)。在這種情況下,雖然可以直接對(duì)ΔPOCk,i的值進(jìn)行編碼,但是如果利用前述(d)的條件,則ΔPOCk,i=ΔBDk,由于該值已經(jīng)記載于BD[k]中,因而不需要重新進(jìn)行編碼。設(shè)定BD[m]的成分的個(gè)數(shù)的值(即#ΔPOCm)或者其以上的值作為j的值,以便表示在BD[m]中不存在相同的POC號(hào)碼。然后在進(jìn)行解碼時(shí)使用j的值,關(guān)于ΔPOCk,i的解碼方法在后面進(jìn)行說明。
關(guān)于各參照?qǐng)D像具有的依存度信息D_IDk,i,在該參照?qǐng)D像存在于預(yù)測中使用的BD[m]中的情況下,依存度信息D_IDk,i與D_IDm,j相等,因而不需要進(jìn)行編碼。另一方面,在該參照?qǐng)D像不存在于預(yù)測中使用的BD[m]中的情況下,對(duì)依存度信息D_IDk,i進(jìn)行編碼。
根據(jù)以上的思路來構(gòu)成圖8的822、824的內(nèi)容(句法)。下面,根據(jù)該思路說明圖3的方框360和圖4的方框460的處理。
圖6是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測編碼裝置100的緩沖器記述信息的編碼處理(圖3的方框360的處理)的流程圖。該處理對(duì)應(yīng)于圖8中k>0時(shí)的BD[k]的編碼處理。在步驟610,對(duì)BD[k]的成分的個(gè)數(shù)即記述的參照?qǐng)D像的張數(shù)#ΔPOCk進(jìn)行編碼。然后,在計(jì)算出ΔBDk(步驟620)后,對(duì)其進(jìn)行編碼(步驟630)。然后,對(duì)BD[k]的各成分進(jìn)行下述的處理。在步驟640,從BD[m](m=k-1)中檢索是否存在與ΔPOCk,i共用相同的參照?qǐng)D像的ΔPOCm,j(即POCm,j=POCk,i)。當(dāng)在步驟645判定為存在的情況下,進(jìn)入步驟650,在按照上述式(4)求出Δidxk,i的值后對(duì)其進(jìn)行編碼。當(dāng)在步驟645判定為不存在的情況下,進(jìn)入步驟655。在步驟655,對(duì)值j設(shè)定BD[m]的成分的個(gè)數(shù)(#ΔPOCm)的值。也可以是比該個(gè)數(shù)大的值。在步驟660,在按照上述式(4)求出Δidxk,i的值后對(duì)其進(jìn)行編碼。在步驟670,對(duì)該參照?qǐng)D像的依存度信息D-IDk,i進(jìn)行編碼。關(guān)于上述的各值是在變換為2值碼后實(shí)施算術(shù)編碼來進(jìn)行編碼,但也可以采用除此以外的熵編碼方法。反復(fù)上述的處理一直到BD[k]的最后一個(gè)成分。
利用上述的本發(fā)明的方法對(duì)圖17所示的基于現(xiàn)有技術(shù)的緩沖器記述信息進(jìn)行處理的結(jié)果如圖5所示。欄501表示各BD[k]的識(shí)別符,在本實(shí)施方式中不明確地進(jìn)行編碼。欄502表示各BD[k]的成分的個(gè)數(shù),504表示用于記述BD[k]的參照?qǐng)D像的數(shù)據(jù)。行510相當(dāng)于BD[0],用ΔPOCk,i的值進(jìn)行編碼。從行511起表示Δidxk,i的值。欄505表示在預(yù)測中使用的BD[m]的識(shí)別符,但在本實(shí)施方式中由于設(shè)為m=k-1,因而不需要進(jìn)行編碼。欄506表示ΔBDk。并且,關(guān)于框格520~523的各成分,屬于在預(yù)測中使用的BD[m]中沒有相同的參照?qǐng)D像的情況,需要對(duì)Δidxk,i以及D-IDk,i進(jìn)行編碼,但在圖5中省略了。圖5中位于504下方的各框格示出的值幾乎都是“0”,與圖17的現(xiàn)有技術(shù)的信息相比,值比較小,動(dòng)態(tài)范圍較小,因而具有能夠高效地進(jìn)行編碼的效果。并且,在現(xiàn)有技術(shù)中對(duì)所有成分的D-IDk,i進(jìn)行編碼,但在本發(fā)明的方法中,僅針對(duì)有限的成分對(duì)D-IDk,i進(jìn)行編碼,因而能夠進(jìn)一步削減編碼量。
圖7是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測解碼裝置200的緩沖器記述信息的解碼處理(圖4的方框460的處理)的流程圖。該處理對(duì)應(yīng)于圖8中k>0時(shí)的BD[k]的解碼處理。在步驟710,對(duì)BD[k]的成分的個(gè)數(shù)即記述的參照?qǐng)D像的張數(shù)#ΔPOCk進(jìn)行解碼。在步驟730,對(duì)ΔBDk進(jìn)行解碼。然后,對(duì)BD[k]的各成分進(jìn)行下述的解碼處理。在步驟740,在對(duì)Δidxk,i進(jìn)行解碼后,使用下面的算式求出索引j的值(步驟745)。
j=I+Δidxk,I+offsetk,i-1其中offsetk,-1=0 (6)
使用該索引j,在步驟750判定BD[m]中是否存在成為解碼對(duì)象的ΔPOCk,i的參照值的ΔPOCm,j。在此,如果是j<BD[m]的成分的個(gè)數(shù)(#ΔPOCm),則ΔPOCm,j存在,如果是j≧(#ΔPOCm),則ΔPOCm,j不存在。當(dāng)在步驟750判定為存在的情況下,進(jìn)入步驟760,求出ΔPOCk,i的值。依存度信息D-IDk,i僅僅是復(fù)制了ΔPOCm,j具有的信息。應(yīng)該注意到不需要對(duì)依存度信息D-IDk,i進(jìn)行編碼。當(dāng)在步驟750判定為不存在的情況下,進(jìn)入步驟765。在此,對(duì)依存度信息D-IDk,i進(jìn)行解碼,在步驟770代入ΔBDk作為ΔPOCk,i的值。反復(fù)上述的處理一直到BD[k]的最后一個(gè)成分。
這樣,在本發(fā)明的緩沖器記述信息的編碼及解碼方法中,利用參照?qǐng)D像被反復(fù)利用的性質(zhì),利用在不同的圖像中使用的緩沖器記述信息BD[k]之間的相關(guān)來削減作為冗余的信息,由此能夠高效地對(duì)緩沖器記述信息進(jìn)行編碼。
如圖16所示,按照對(duì)象圖像的編碼及解碼的順序來整理有關(guān)緩沖器的信息。因此,前述的(a)~(d)的關(guān)系成立,能夠根據(jù)上述的實(shí)施方式利用最有效的方法對(duì)緩沖器記述信息進(jìn)行編碼。另一方面,緩沖器記述的順序可以任意排列,也可以按照與圖16所示的順序不同的順序記載各BD[k]。說明應(yīng)對(duì)這種情況的本發(fā)明的更具通用性的實(shí)施方式。
圖9示出了按照與圖16略微不同的順序記載緩沖器的信息。與圖16的不同之處在于,有關(guān)POC=25(913)的緩沖器信息先于POC=30(914)進(jìn)行記述。但是,利用的參照?qǐng)D像與圖16的情況相同。在此,POC=25(913)的對(duì)象圖像利用POC=22、24、32、28、26、30的參照?qǐng)D像,但比其靠上一個(gè)的POC=26(912)的對(duì)象圖像利用POC=22、24、32、28。如果為了預(yù)測行913的緩沖器記述信息BD[k]而使用行912的緩沖器記述信息BD[m],則屬于BD[k]的POC=30的成分(963)不會(huì)出現(xiàn)在BD[m]中,不是通過利用BD[m]而能夠生成的。即,如果使用前述(c)的條件(m=k-1),則無法滿足前述(d)。
為了解決該問題,將前述(c)的條件放寬,使能夠任意選擇BD[m],并對(duì)用于識(shí)別在預(yù)測中使用的BD[m]的索引m進(jìn)行編碼。這樣,如果為了預(yù)測行913的緩沖器記述信息BD[k]而使用行914的緩沖器記述信息作為BD[m],(以追加索引m的編碼和解碼為前提)能夠直接適用圖6和圖7。
另外,作為其它的方法,對(duì)于預(yù)測中使用的BD[m]中不存在的追加參照?qǐng)D像,可以直接對(duì)前述式(1)中的POC號(hào)碼ΔPOCk,i進(jìn)行編碼,或者可以將從ΔPOCk,i減去ΔBDk得到的值作為IBDRk,i進(jìn)行編碼。
IBDRk,I=ΔPOCk,i-ΔBDk (7)
如果將上述式(7)展開,則等于(POCk,i–POCprevious)。在根據(jù)上述的本發(fā)明的更具通用性的實(shí)施方式而生成的PPS中記載的緩沖器記述信息的示意圖如圖12所示。圖12的1211與圖8的811相同,1220與圖8的820相同。k>0的BD[k]是按照1222或1224所示的句法進(jìn)行傳輸?shù)?。這種情況下的句法由BD[k]的成分的個(gè)數(shù)(即相當(dāng)于對(duì)象圖像及其以后的圖像所需要的參照?qǐng)D像的張數(shù))#ΔPOCk(1233、1240)、在預(yù)測處理中使用的緩沖器記述信息的識(shí)別符mk(1234、1241)、ΔBDk(1235、1242)、Δidxk,i(1236、1237、1243、1244)、或者{Δidxk,i,D_IDk,i,IBDRk,i}(1238、1239、1245、1246)構(gòu)成。
按照下面所述對(duì)圖12所示的緩沖器記述信息進(jìn)行編碼及解碼。圖10是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測編碼裝置100的、更具通用性的緩沖器記述信息的編碼處理(圖3的方框360的處理)的流程圖。該處理對(duì)應(yīng)于圖12中k>0時(shí)的BD[k]的編碼處理。在步驟1010,對(duì)BD[k]的成分的個(gè)數(shù)即記述的參照?qǐng)D像的張數(shù)#ΔPOCk進(jìn)行編碼。然后,確定在預(yù)測處理中使用的參照用的緩沖器記述信息BD[m],在確定出其識(shí)別符mk的同時(shí)計(jì)算ΔBDk(步驟1020)。在步驟1030,對(duì)mk和ΔBDk進(jìn)行編碼。然后對(duì)BD[k]的各成分進(jìn)行下述的處理。在步驟1040,從BD[mk]中檢測是否存在與ΔPOCk,i共用相同的參照?qǐng)D像的ΔPOCm,j(即POCm,j=POCk,i)。當(dāng)在步驟1045判定為存在的情況下,進(jìn)入步驟1050,在按照前述式(4)求出Δidxk,i的值后對(duì)其進(jìn)行編碼。當(dāng)在步驟1045判定為不存在的情況下,進(jìn)入步驟1055。在步驟1055,對(duì)索引j設(shè)定BD[m]的成分的個(gè)數(shù)(#ΔPOCm)的值以上的值。該情況對(duì)應(yīng)于(BD[m]中不存在的)追加參照?qǐng)D像有1張以上的可能性,因而將在設(shè)定中尚未使用的值設(shè)定為索引j的值。在步驟1060,在按照前述式(4)求出Δidxk,i的值后對(duì)其進(jìn)行編碼。在步驟1070,在按照上述式(7)求出IBDRk,i的值后對(duì)其和該參照?qǐng)D像的依存度信息D-IDk,i一起進(jìn)行編碼。關(guān)于上述的各值是在變換為2值碼后實(shí)施算術(shù)編碼來進(jìn)行編碼,但也可以采用除此以外的熵編碼方法。反復(fù)上述的處理一直到BD[k]的最后一個(gè)成分。
在將圖9的緩沖器記述信息臨時(shí)換算為圖20所示的ΔPOCk,i后利用上述的具有通用性的方法進(jìn)行處理的結(jié)果如圖21所示。欄941表示各BD[k]的識(shí)別符。欄942表示各BD[k]的成分的個(gè)數(shù),欄944表示用于記述BD[k]的參照?qǐng)D像的數(shù)據(jù)。行950相當(dāng)于BD[0],用ΔPOCk,i的值進(jìn)行編碼。從行951起,用Δidxk,i或者{Δidxk,i,D-IDk,i,IBDRk,i}進(jìn)行編碼(在圖21中省略了D-IDk,i)。欄945表示預(yù)測中使用的BD[m]的識(shí)別符mk。欄946表示ΔBDk。另外,關(guān)于框格980~983的各成分,屬于預(yù)測中使用的BD[m]中沒有相同的參照?qǐng)D像的情況,屬于對(duì){Δidxk,i,D-IDk,i,IBDRk,i}進(jìn)行編碼的情況。圖21中位于944下方的各框格示出的值幾乎都是“0”,與圖20的現(xiàn)有技術(shù)的信息相比,值比較小,動(dòng)態(tài)范圍較小,因而具有能夠高效地進(jìn)行編碼的效果。
圖11是示出本發(fā)明的實(shí)施方式的動(dòng)態(tài)圖像預(yù)測解碼裝置200的、更具通用性的緩沖器記述信息的解碼處理(圖4的方框460的處理)的流程圖。該處理對(duì)應(yīng)于圖12中k>0時(shí)的BD[k]的解碼處理。在步驟1110,對(duì)BD[k]的成分的個(gè)數(shù)即記述的參照?qǐng)D像的張數(shù)ΔPOCk進(jìn)行解碼。在步驟1130,對(duì)mk和ΔBDk進(jìn)行解碼。然后對(duì)BD[k]的各成分進(jìn)行下述的解碼處理。在步驟1140,在對(duì)Δidxk,i進(jìn)行解碼后,使用上述式(6)求出索引j的值(步驟1145)。
使用該索引j,在步驟1150中判定BD[m]中是否存在成為解碼對(duì)象的ΔPOCk,i的參照值的POCm,j。在此,如果是j<BD[m]的成分的個(gè)數(shù)(#ΔPOCm),則ΔPOCm,j存在,如果是j≧(ΔPOCm),則ΔPOCm,j不存在。當(dāng)在步驟1150判定為存在的情況下,進(jìn)入步驟1160,求出ΔPOCk,i的值。依存度信息D-IDk,i僅僅是復(fù)制了ΔPOCm,j具有的信息。當(dāng)在步驟1150判定為不存在的情況下,進(jìn)入步驟1165。在此,對(duì)IBDRk,i和依存度信息D-IDk,i進(jìn)行解碼,在步驟1170計(jì)算ΔPOCk,i的值。反復(fù)上述的處理一直到BD[k]的最后一個(gè)成分。
這樣,在本發(fā)明的緩沖器記述信息的編碼及解碼方法中,利用參照?qǐng)D像被反復(fù)利用的性質(zhì),并利用了在不同的圖像中使用的緩沖器記述信息BD[k]之間的相關(guān)來使成為冗余的信息緊湊化,由此能夠高效地對(duì)緩沖器記述信息進(jìn)行編碼。此外,在任意進(jìn)行緩沖器記述信息的相互參照的情況下,也具有能夠高效地進(jìn)行編碼的效果。
關(guān)于圖6和圖10的編碼處理以及圖7和圖11的解碼處理分別進(jìn)行了說明,但也可以將這兩個(gè)實(shí)施方式結(jié)合起來應(yīng)用。在解碼處理中,圖7的步驟765、770和圖11的步驟1165、1170不同,但在結(jié)合起來應(yīng)用時(shí),只要追加用于識(shí)別這些處理的信息(1比特)并進(jìn)行編碼即可。
并且,如圖5的行512、513、514、517所示,Δidxk,i的值全部是零值,因而能夠替代獨(dú)立地對(duì)這些值進(jìn)行編碼,而利用一個(gè)信號(hào)(標(biāo)志)進(jìn)行表示。
并且,在上述的實(shí)施方式中,將在緩沖器記述信息中記載的參照?qǐng)D像的POC號(hào)碼臨時(shí)換算為ΔPOCk,i后,對(duì)本發(fā)明的緩沖器記述信息進(jìn)行編碼/解碼,但也可以對(duì)POC號(hào)碼單體實(shí)施本發(fā)明的方法。即,在位于作為對(duì)象的緩沖器記述信息BD[k]中的POC號(hào)碼處于在預(yù)測處理中使用的BD[m]中的情況下,對(duì)指示該P(yáng)OC號(hào)碼的Δidxk,i進(jìn)行編碼。在期望的POC號(hào)碼不在BD[m]中的情況下,將根據(jù)前述的式(1)求出的ΔPOCk,i作為IBDRk,i進(jìn)行編碼。也可以使用式(7)替代前述的式(1)。在這種情況下,圖3的方框360的處理如圖18所示,圖4的方框460的處理如圖19所示。圖18表示進(jìn)行與圖10相同的處理,圖19表示進(jìn)行與圖11相同的處理,在圖18、圖19中采用對(duì)對(duì)應(yīng)的圖10、圖11的處理步驟的步驟號(hào)碼附加“S”的步驟號(hào)碼。但是,替代ΔPOC而對(duì)POC進(jìn)行處理。并且,該情況時(shí)的ΔBDk為零,因而不需要對(duì)其進(jìn)行編碼/解碼。并且,在固定為m=(k-1)的情況下(即從緊前面的BD[m]進(jìn)行預(yù)測的情況下),也不需要對(duì)mk進(jìn)行編碼/解碼。
另外,在上述的實(shí)施方式中,將作為對(duì)象的緩沖器記述BD[k]的i成分設(shè)為bdk,i,將在預(yù)測處理中使用的BD[m]的成分設(shè)為bdm,j,Δidxk,i被認(rèn)為是從bdk,i觀察的bdm,j的相對(duì)位置(索引、地址)。即,如果將bdk,i和bdm,j理解為信息存儲(chǔ)庫,則可以在該信息存儲(chǔ)庫中記入POC號(hào)碼的值,也可以記入ΔPOC的值。在這種情況下,Δidxk,i相當(dāng)于信息存儲(chǔ)庫之間(以在這些信息存儲(chǔ)庫內(nèi)存在共同使用的POC號(hào)碼為條件)的相對(duì)位置。換言之,本發(fā)明的緩沖器記述是用于記述存儲(chǔ)對(duì)象圖像的緩沖器信息的信息存儲(chǔ)庫、與存儲(chǔ)成為對(duì)象圖像的參照的緩沖器信息的信息存儲(chǔ)庫的位置關(guān)系,提供通過將所指定的信息存儲(chǔ)庫的位置(j)和具有內(nèi)容的信息存儲(chǔ)庫的個(gè)數(shù)(#ΔPOCm或者#POCm)進(jìn)行比較來切換bdk,i的內(nèi)容的再現(xiàn)方法的方法。
關(guān)于本發(fā)明的緩沖器記述信息的編碼及解碼方法還有如下的實(shí)施方式。本實(shí)施方式與圖6和圖7所示的實(shí)施方式相同地,將前述的條件(c)和(d)作為前提條件。即,將為了預(yù)測作為對(duì)象的緩沖器記述信息BD[k]而使用的緩沖器記述信息設(shè)為BD[m],并使用其前一個(gè)的BD。即m=(k-1)。并且,位于BD[k]中的追加參照?qǐng)D像只有1張,這1張追加參照?qǐng)D像是在使用了BD[m]的情況下生成的圖像。
在這些條件的基礎(chǔ)上,本實(shí)施方式在對(duì)作為對(duì)象的緩沖器記述BD[k]的信息進(jìn)行編碼時(shí),識(shí)別在預(yù)測用的BD[m]中“是否存在”與BD[k]的成分即ΔPOCk,i共用相同的參照?qǐng)D像的ΔPOCm,j(即POCm,j=POCk,i)。但是,在前述的實(shí)施方式中是使用了“相對(duì)位置Δidxk,i”,而在本實(shí)施方式中單純地使用表示“是否存在”的標(biāo)志。在此,將該標(biāo)志記述為ibd_flagk,j。在標(biāo)志ibd_flagk,j表示“存在”的情況下,已經(jīng)被存儲(chǔ)在緩沖器中的第j個(gè)圖像繼續(xù)被用作參照?qǐng)D像。另一方面,在標(biāo)志ibd_flagk,j表示“不存在”的情況下,所指定的其它圖像作為新的參照?qǐng)D像(追加參照?qǐng)D像)被存儲(chǔ)在緩沖器中。
并且,根據(jù)條件(c)和(d),BD[k]的個(gè)數(shù)頂多也就是比BD[m]的個(gè)數(shù)多1個(gè),即始終是#ΔPOCk=#ΔPOCm+1,因而不需要發(fā)送#ΔPOCk。因此,在本實(shí)施方式中,能夠進(jìn)一步削減編碼量。
基于上述思路的本實(shí)施方式的緩沖器記述信息的編碼處理如圖22所示。該處理對(duì)應(yīng)于圖3的步驟360的處理。在步驟2210,獲取與ΔPOCk的個(gè)數(shù)和ΔPOCm的個(gè)數(shù)相關(guān)的信息,以便在后續(xù)的判定中使用。在步驟2220,求出根據(jù)式(5)而賦值的ΔBDk,并對(duì)ΔBDk進(jìn)行編碼。即,求出利用BD[k]的信息的對(duì)象圖像的POC號(hào)碼POCcurrent、與利用在進(jìn)行BD[k]的預(yù)測時(shí)使用的BD[m]的信息的圖像的POC號(hào)碼POCprevious之差作為ΔBDk。在步驟2230,將BD[k]的計(jì)數(shù)器i和BD[m]的計(jì)數(shù)器j初始化為零。
然后,從步驟2240到步驟2265確認(rèn)與ΔPOCm的個(gè)數(shù)對(duì)應(yīng)的BD[m]的成分。具體地講,在滿足步驟2245的條件的情況下進(jìn)入步驟2250,在不滿足的情況下進(jìn)入步驟2260。并且,步驟2245的條件是根據(jù)式(3)而賦值的,相當(dāng)于(POCk,i=POCm,j)的情況。在步驟2250中,由于示出了滿足該條件,因而將ibd_flagk,j編碼為1。同時(shí),將BD[k]的計(jì)數(shù)器i增量。另一方面,在步驟2260中,由于示出了不滿足該條件,因而將ibd_flagk,j編碼為0。在步驟2265中,將計(jì)數(shù)器j增量,以便確認(rèn)下一個(gè)BD[m]。
在不滿足步驟2240的條件的情況下,即已確認(rèn)完BD[m]的所有成分的情況下,進(jìn)入步驟2270。在此,將作為對(duì)象的緩沖器記述信息BD[k]的計(jì)數(shù)器i與ΔPOCk的個(gè)數(shù)進(jìn)行比較。BD[k]的計(jì)數(shù)器i從0開始計(jì)數(shù),因而其最大值為(ΔPOCk的個(gè)數(shù)-1)。如果在步驟2270中滿足條件(i=ΔPOCk的個(gè)數(shù)),則計(jì)數(shù)i超過BD[k]的成分的個(gè)數(shù),將ibd_flagk,j編碼為0,并結(jié)束處理。另一方面,當(dāng)在步驟2270不滿足條件(i=ΔPOCk的個(gè)數(shù))的情況下,意味著將BD[m]中不存在的追加參照?qǐng)D像存儲(chǔ)在緩沖器中。為了對(duì)與其相關(guān)的信息進(jìn)行編碼,在步驟2290將ibd_flagk,j設(shè)為1進(jìn)行編碼,在步驟2295對(duì)該追加參照?qǐng)D像的依存度信息D_IDk,i進(jìn)行編碼。另外,如在圖6中說明的那樣,該追加參照?qǐng)D像的ΔPOCk,i的值為ΔBDk,因而不需要進(jìn)行編碼。
在這樣生成的PPS中記載的緩沖器記述信息的數(shù)據(jù)排列如圖24所示。圖24基本上與圖8相同。用2411表示的“BD的個(gè)數(shù)”與圖8的811相同,與第一個(gè)BD即BD[0]相關(guān)的信息2420與圖8的820相同,分別是在圖3的步驟320和330生成的。
k>0的BD[k]中包含的信息如圖24的2422、2424所示。作為其內(nèi)容是記載了ΔBDk(2434、2440)、ibd_flagk,j(2435、2436、2437、2441、2442、2443、2444)、或者{ibd_flagk,j,D_IDk,i}(2438)。該數(shù)據(jù)構(gòu)造(句法)與圖8相似,應(yīng)該注意到不需要k>0的BD[k]的個(gè)數(shù)即#ΔPOCk(833、839)。ibd_flagk,j取值1或者0。由于不需要對(duì)與BD[k]的個(gè)數(shù)相關(guān)的信息進(jìn)行編碼,因而具有能夠以更少的比特?cái)?shù)表示緩沖器記述信息的效果。
圖23表示基于本實(shí)施方式的緩沖器記述信息的解碼處理的另一個(gè)實(shí)施方法。在步驟2310,獲取在預(yù)測中使用的BD[m]的成分即ΔPOCm的個(gè)數(shù)(#ΔPOCm)。在將BD[m]復(fù)原的同時(shí)計(jì)數(shù)其成分的個(gè)數(shù),由此能夠得到ΔPOCm的個(gè)數(shù)(#ΔPOCm)。在步驟2320,將BD[k]的計(jì)數(shù)器i和BD[m]的計(jì)數(shù)器j初始化為零。在步驟2330,對(duì)在緩沖器信息中記載的ΔBDk的值進(jìn)行解碼。然后,對(duì)(#ΔPOCm+1)個(gè)數(shù)量的ibd_flagk,j進(jìn)行解碼(通過步驟2345進(jìn)行控制)。根據(jù)被解碼后的ibd_flagk,j的值進(jìn)行從步驟2345起的處理。
在步驟2345,判定BD[m]的計(jì)數(shù)器j。根據(jù)ibd_flagk,j的值(1或者0),判定是否使用ΔPOCm,j將ΔPOCk,i復(fù)原,直到計(jì)數(shù)j達(dá)到ΔPOCm的個(gè)數(shù)(步驟2350)。在ibd_flagk,j的值為1的情況下,在步驟2355將ΔBDk和ΔPOCm,j相加而生成ΔPOCk,i。在這種情況下,ΔPOCk,i和ΔPOCm,j共用相同的參照?qǐng)D像(即POCm,j=POCk,i),因而依存度信息D_IDk,i可以直接復(fù)制與ΔPOCm,j相關(guān)聯(lián)的依存度信息D_IDm,j。然后,在將BD[k]的計(jì)數(shù)i增量后,進(jìn)行針對(duì)BD[m]的下一個(gè)成分的判定。
在對(duì)BD[m]的成分確認(rèn)到最后一個(gè)成分后(相當(dāng)于在步驟2345為否的情況),判定最后一個(gè)ibd_flagk,j的值(步驟2370)。ibd_flagk,j=0的情況意味著沒有追加參照?qǐng)D像,不進(jìn)行任何處理,進(jìn)入后述的步驟2390。另一方面,ibd_flagk,j=1的情況意味著有(BD[m]中不存在的)追加參照?qǐng)D像,在步驟2375將依存度信息D_IDk,i復(fù)原。在步驟2380,使用ΔBDk作為該追加參照?qǐng)D像的POC號(hào)碼(因?yàn)槔脳l件(d))。并且,將BD[k]的計(jì)數(shù)i增量。最后,將由計(jì)數(shù)器i計(jì)數(shù)的值存儲(chǔ)為BD[k]的個(gè)數(shù)(步驟2390)。在生成BD[k+1]的各成分時(shí)使用該BD[k]的個(gè)數(shù)(在步驟2310)。
圖22和圖23的處理方法是位于BD[k]中的追加參照?qǐng)D像只有1張時(shí)的實(shí)施方法,在追加參照?qǐng)D像有N張的情況下,將該N的值作為BD[k]的信息的一部分進(jìn)行發(fā)送及接收即可。在這種情況下,使用IBDRk,i對(duì)有關(guān)追加參照?qǐng)D像的POC號(hào)碼進(jìn)行編碼及解碼。具體地講,在圖22的步驟2295執(zhí)行與圖10的步驟1070相同的處理,在圖23的步驟2375執(zhí)行與圖11的步驟1165相同的處理,在圖23的步驟2380執(zhí)行與圖11的步驟1170相同的處理即可。
另外,在上述說明中,用1比特(1或者0)表示ibd_flagk,j的值,但也可以用1比特以上的比特進(jìn)行表示。在這種情況下,也可以使用追加的比特來識(shí)別其它信息(D_IDk,i、ibd_flagk,j或者除此以外的信息)是否已被明確地編碼。
另外,也可以使用該追加的比特表示有關(guān)ΔPOCk,i的參照?qǐng)D像(即,POC號(hào)碼具有根據(jù)式(1)而賦值的POCk,i的參照?qǐng)D像)的適用范圍。具體地講,在ibd_flagk,j為“1”的情況下,在使用ΔPOCm,j將ΔPOCk,i復(fù)原的同時(shí),有關(guān)ΔPOCk,i的參照?qǐng)D像適用于成為當(dāng)前的處理對(duì)象的圖像(當(dāng)前圖像)及其后續(xù)的未來的圖像(未來圖像,也可以是多張)。并且,在ibd_flagk,j為“01”的情況下,在使用ΔPOCm,j將ΔPOCk,i復(fù)原的同時(shí),有關(guān)ΔPOCk,i的參照?qǐng)D像不適用于成為當(dāng)前的處理對(duì)象的圖像(當(dāng)前圖像),僅適用于其后續(xù)的未來的圖像(未來圖像,也可以是多張)。另外,在ibd_flagk,j為“00”的情況下,在進(jìn)行ΔPOCk,i的復(fù)原時(shí)不使用ΔPOCm,j。
在上述的實(shí)施方式中,對(duì)在緩沖器記述信息中記載的ΔPOCk,i進(jìn)行處理,但也可以是對(duì)各參照?qǐng)D像具有的POC號(hào)碼自身進(jìn)行處理。
另外,在上述的所有實(shí)施方式中,對(duì)緩沖器記述信息進(jìn)行了說明。緩沖器記述信息也是與為了對(duì)對(duì)象圖像進(jìn)行編碼及解碼而使用的多張參照?qǐng)D像相關(guān)的記述,因而上述的實(shí)施方式也被用作參照?qǐng)D像列表的管理方法。
另外,在上述的實(shí)施方式中說明了將緩沖器記述信息匯總作為PPS信息的一部分進(jìn)行編碼的情況,但也能夠適用于在各個(gè)對(duì)象圖像的報(bào)頭中記載緩沖器記述信息的情況。即,也能夠適用于將圖5的行510的信息記載在POC=32的圖像的壓縮數(shù)據(jù)的開頭(報(bào)頭)的情況,以及將圖5的行511的信息記載在POC=28的圖像的壓縮數(shù)據(jù)的開頭(報(bào)頭)的情況。在這種情況下,能夠把屬于已被先行處理的圖像m的緩沖器記述信息BD[m]作為參照,通過圖6、7、10、11、18、19的處理,對(duì)屬于對(duì)象圖像k的緩沖器記述信息BD[k]進(jìn)行編碼及解碼。但是,根據(jù)預(yù)測的構(gòu)造,存在對(duì)象圖像m不能全部被用作參照?qǐng)D像的情況(依存度信息D_IDk,i的值比較大),在這種情況下,在預(yù)測中不使用屬于圖像m的BD[m]。因?yàn)椴荒苋勘挥米鲄⒄請(qǐng)D像的圖像m有時(shí)將被舍去,以便控制數(shù)據(jù)量及減輕解碼處理。
用于使計(jì)算機(jī)作為上述的動(dòng)態(tài)圖像預(yù)測編碼裝置100發(fā)揮作用的動(dòng)態(tài)圖像預(yù)測編碼程序,能夠被存儲(chǔ)在記錄介質(zhì)中進(jìn)行提供。同樣,用于使計(jì)算機(jī)作為上述的動(dòng)態(tài)圖像預(yù)測解碼裝置200發(fā)揮作用的動(dòng)態(tài)圖像預(yù)測解碼程序,能夠被存儲(chǔ)在記錄介質(zhì)中進(jìn)行提供。關(guān)于記錄介質(zhì)可以示例出軟盤、CD-ROM、DVD或者ROM等記錄介質(zhì)或者半導(dǎo)體存儲(chǔ)器等。
圖13是示出用于執(zhí)行被記錄在記錄介質(zhì)中的程序的計(jì)算機(jī)30的硬件結(jié)構(gòu)的圖,圖14是用于執(zhí)行被存儲(chǔ)在記錄介質(zhì)中的程序的計(jì)算機(jī)30的立體圖。在此,計(jì)算機(jī)30包括具備CPU的進(jìn)行基于軟件的信息處理和控制的DVD播放器、機(jī)頂盒、便攜電話等。
如圖13所示,計(jì)算機(jī)30具有軟盤驅(qū)動(dòng)裝置、CD-ROM驅(qū)動(dòng)裝置、DVD驅(qū)動(dòng)裝置等的讀取裝置12,使操作系統(tǒng)常駐的作業(yè)用存儲(chǔ)器(RAM)14,存儲(chǔ)被保存在記錄介質(zhì)10中的程序的存儲(chǔ)器16,被稱為顯示器的顯示裝置18,作為輸入裝置的鼠標(biāo)20和鍵盤22,用于進(jìn)行數(shù)據(jù)等的收發(fā)的通信裝置24,以及控制程序的執(zhí)行的CPU26。在記錄介質(zhì)10被插入到讀取裝置12中后,計(jì)算機(jī)30能夠從讀取裝置12訪問被存儲(chǔ)在記錄介質(zhì)10中的動(dòng)態(tài)圖像預(yù)測編碼程序,能夠根據(jù)該動(dòng)態(tài)圖像預(yù)測編碼程序作為上述的動(dòng)態(tài)圖像預(yù)測編碼裝置100進(jìn)行工作。同樣,在記錄介質(zhì)10被插入到讀取裝置12中后,計(jì)算機(jī)30能夠從讀取裝置12訪問被存儲(chǔ)在記錄介質(zhì)10中的動(dòng)態(tài)圖像預(yù)測解碼程序,能夠根據(jù)該動(dòng)態(tài)圖像預(yù)測解碼程序作為上述的圖像預(yù)測解碼裝置200進(jìn)行工作。
標(biāo)號(hào)說明
100…動(dòng)態(tài)圖像預(yù)測編碼裝置,101…輸入端子,102…塊分割器,103…預(yù)測信號(hào)生成器,104…幀存儲(chǔ)器(或者緩沖器DPB),105…減法器,106…變換器,107…量化器,108…逆量化器,109…逆變換器,110…加法器,111…熵編碼器,112…輸出端子,114…緩沖器管理器,200…動(dòng)態(tài)圖像預(yù)測解碼裝置,201…輸入端子,202…數(shù)據(jù)分析器,203…逆量化器,204…逆變換器,205…加法器,206…輸出端子,207…幀存儲(chǔ)器,208…預(yù)測信號(hào)生成器,209…緩沖器管理器。