專利名稱:一種參考圖像緩沖區(qū)管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種緩沖區(qū)管理方法,尤其是一種視頻編解碼過程中,參考圖像緩沖區(qū)管理方法。
背景技術(shù):
隨著科技的飛速發(fā)展,高清數(shù)字電視廣播、多媒體網(wǎng)絡(luò)通信、視頻監(jiān)控、遠(yuǎn)程監(jiān)控等對(duì)高效的視頻編解碼技術(shù)的需求越來越突出。高效的視頻編解碼技術(shù)是實(shí)現(xiàn)高質(zhì)量、低成本多媒體數(shù)據(jù)存儲(chǔ)與傳輸?shù)年P(guān)鍵?,F(xiàn)在比較流行的視頻編碼國際標(biāo)準(zhǔn)一般采用預(yù)測/變換的混合編碼方法。通過預(yù)測/變換去除視頻圖像的時(shí)間、空間及主觀視覺上的冗余,使得在保持一定視覺效果的條件下,將數(shù)據(jù)量降到最低。這種預(yù)測可以是在當(dāng)前圖像內(nèi)進(jìn)行,也可以是在圖像間進(jìn)行。對(duì)于幀間預(yù)測,現(xiàn)在一般采用基于塊匹配的運(yùn)動(dòng)搜索策略,既對(duì)當(dāng)前圖像中的每個(gè)塊,根據(jù)某種策略在其參考圖像中尋找最佳匹配位置。為了提高預(yù)測的準(zhǔn)確度,通??赡茉趲讉€(gè)參考圖像中進(jìn)行匹配,如B幀使用前向、后向兩個(gè)參考幀,因此在編解碼器中需要對(duì)參考圖像進(jìn)行有效的管理以提高編解碼器中參考圖像的存取效率。當(dāng)然多幀參考預(yù)測在實(shí)現(xiàn)上具有一定的復(fù)雜度,如需要分配更多的緩存以保存參考圖像、需要進(jìn)行更多的計(jì)算以進(jìn)行參考圖像選擇等。
在以前的編碼標(biāo)準(zhǔn)中如MPEG-1,MPEG-2,MPEG-4等,幀間預(yù)測分為兩種,一種是只來自于前向預(yù)測的P幀,另一種是進(jìn)行雙向預(yù)測的B幀。這里的P幀預(yù)測都是基于一個(gè)參考圖像進(jìn)行的,而B幀則使用前、后向兩個(gè)參考圖像進(jìn)行預(yù)測,這里的幀間預(yù)測較為簡單,相應(yīng)的參考圖像緩沖區(qū)管理也比較簡單,只需保留最近的兩個(gè)參考幀即可對(duì)P,B幀進(jìn)行幀間預(yù)測。
隨著計(jì)算技術(shù)的快速發(fā)展,多幀參考預(yù)測的實(shí)現(xiàn)已經(jīng)不是十分困難的問題,并且能帶來顯著的增益,因?yàn)椴捎枚鄥⒖紟A(yù)測技術(shù)是提高壓縮效率的一個(gè)很有效的途徑。但是,由于過多的參考幀預(yù)測在實(shí)現(xiàn)上所帶來的復(fù)雜度遠(yuǎn)超過其所帶來的增益,而且由于通常B幀至少需要使用前、后兩個(gè)參考幀,為了充分利用參考圖像緩沖區(qū),一般限制P幀至多使用兩個(gè)參考幀,這樣可以在對(duì)P幀進(jìn)行多幀預(yù)測的條件下不必增大圖像緩沖區(qū)的大小。
多參考幀預(yù)測技術(shù)的一個(gè)重要環(huán)節(jié)是如何對(duì)參考圖像緩沖區(qū)進(jìn)行有效的管理。在最新的編碼標(biāo)準(zhǔn)H.264中也采用了多幀參考技術(shù),但其中的參考圖像緩沖區(qū)管理十分復(fù)雜,首先它對(duì)每幅解碼圖像都進(jìn)行保存,不管該圖像是否用作參考圖像,并以索引標(biāo)記其順序,并另外有一個(gè)標(biāo)記表示該圖像是否用作參考圖像;此外,對(duì)于參考圖像進(jìn)出緩沖區(qū)也有十分復(fù)雜的規(guī)定,比如,一幀圖像只有當(dāng)其不被用作參考圖像且用于顯示時(shí)才從緩沖區(qū)中移出。這樣管理復(fù)雜,并且占用了大量的存儲(chǔ)空間,緩沖區(qū)使用效率低下。
發(fā)明內(nèi)容
本發(fā)明提出了一種有效的參考圖像緩沖區(qū)管理方法,只保存所有用作參考的參考圖像,以及一個(gè)當(dāng)前正在重構(gòu)圖像的緩沖區(qū),實(shí)現(xiàn)參考圖像的存取、更新等操作。
本發(fā)明的技術(shù)方案,包括如下步驟步驟一、根據(jù)編碼的方式,在緩沖區(qū)中保留用于編/解碼的參考圖像;步驟二、每一個(gè)參考圖像都通過一個(gè)參考索引來標(biāo)記;步驟三、當(dāng)前圖像根據(jù)參考索引來確定參考圖像,完成編解碼;步驟四、如果當(dāng)前編/解碼圖像為I幀/場或P幀/場,則將解碼后的I/P幀/場替換緩沖區(qū)中離當(dāng)前圖像最遠(yuǎn)的參考幀/場,編/解碼下一個(gè)圖像,重新執(zhí)行步驟二;步驟五、如果當(dāng)前編/解碼圖像為B幀/場,不改變參考圖像的參考索引,編/解碼下一個(gè)圖像,重新執(zhí)行步驟三;步驟六、如果所有的圖像都完成了編/解碼,則刪除緩沖區(qū)中的所有圖像。
本發(fā)明通過對(duì)參考圖像進(jìn)行有效地管理,提高編解碼器對(duì)參考圖像的存取效率,只保留用作參考的圖像,降低了對(duì)緩存的需求,同時(shí)這些參考圖像在內(nèi)存中的統(tǒng)一管理可以提高訪存速度。
圖1是當(dāng)前圖像為I幀并且作為兩場編碼時(shí),當(dāng)前解碼場在顯示順序上是第二場的標(biāo)記方法示意圖;圖2是當(dāng)前圖像為P幀并且作為幀編碼的標(biāo)記方法示意圖;圖3是當(dāng)前圖像為P幀并且該幀作為兩場編碼時(shí),當(dāng)前解碼場在顯示順序上是第一場的標(biāo)記方法示意圖;圖4是當(dāng)前圖像為P幀并且該幀作為兩場編碼,同時(shí)當(dāng)前解碼場在顯示順序上是第二場的標(biāo)記方法示意圖;圖5是當(dāng)前圖像為B幀并且作為幀編碼的標(biāo)記方法示意圖;圖6是當(dāng)前圖像為B幀并且該幀作為兩場編碼時(shí),當(dāng)前解碼場在顯示順序上是第一場的標(biāo)記方法示意圖;圖7是當(dāng)前圖像是B幀并且該幀作為兩場編碼時(shí),當(dāng)前解碼場在顯示順序上是第二場的標(biāo)記方法示意圖;圖8是本發(fā)明更新圖像緩沖區(qū)中參考圖像的流程圖。
具體實(shí)施例方式
本發(fā)明的參考圖像緩沖區(qū)管理機(jī)制,使得P/B幀或場能夠?qū)⒖紙D像進(jìn)行高效的存取,同時(shí)對(duì)于P/B幀/場中的特殊編碼模式的宏塊,如跳過宏塊模式(Skip mode)、直接模式(Direct mode)、對(duì)稱模式(Symmetric mode)在存取參考圖像時(shí)能夠很直接地找到其前向、后向參考圖像。
本發(fā)明的技術(shù)方案,包括如下步驟
步驟一、根據(jù)編碼的方式,在緩沖區(qū)中保留用于編/解碼的參考圖像;步驟二、每一個(gè)參考圖像都通過一個(gè)參考索引來標(biāo)記;步驟三、當(dāng)前圖像根據(jù)參考索引來確定參考圖像,完成編解碼;步驟四、如果當(dāng)前編/解碼圖像為I幀/場或P幀/場,則將解碼后的I/P幀/場替換緩沖區(qū)中離當(dāng)前圖像最遠(yuǎn)的參考幀/場,編/解碼下一個(gè)圖像,重新執(zhí)行步驟二;步驟五、如果當(dāng)前編/解碼圖像為B幀/場,不改變參考圖像的參考索引,編/解碼下一個(gè)圖像,重新執(zhí)行步驟三;步驟六、如果所有的圖像都完成了編/解碼,則刪除緩沖區(qū)中的所有圖像。
無論是圖像的編碼還是解碼過程中,都涉及到圖像在緩沖區(qū)中進(jìn)行編/解碼,都涉及到本發(fā)明所述的緩沖區(qū)的管理。
本發(fā)明的步驟一,在圖像緩沖區(qū)中,只保留用于所有用作參考的圖像,參考圖像只能是I圖像或P圖像。根據(jù)不同的編碼方式,保留的參考圖像的數(shù)量也不相同,對(duì)于基于幀的編碼,在參考圖像緩沖區(qū)中,保留最近2個(gè)用于參考的參考圖像;對(duì)于基于場的編碼,在參考圖像緩沖區(qū)中,保留最近4個(gè)用于參考的參考場圖像。
參考圖像的標(biāo)記是本發(fā)明的關(guān)鍵步驟,緩沖區(qū)中圖像的存取以及編/解碼完成后,參考圖像的更新,都是根據(jù)圖像的標(biāo)記進(jìn)行的。本發(fā)明通過簡單的標(biāo)記方式,實(shí)現(xiàn)了方便的圖像緩沖區(qū)管理。
每一個(gè)參考圖像都用一個(gè)參考索引來標(biāo)記,標(biāo)記的原則為前向參考圖像依照顯示順序,參考索引按降序排列,顯示順序上離當(dāng)前圖像最近的參考圖像的參考索引為0;后向參考圖像依照顯示順序,參考索引按升序排列,顯示順序上離當(dāng)前圖像最近的參考圖像的參考索引為0。
對(duì)于基于幀的編碼方式,若當(dāng)前圖像為P幀,則它的兩個(gè)前向參考幀即為緩沖區(qū)中這兩個(gè)參考圖像,其中在顯示順序上離當(dāng)前圖像最近的圖像標(biāo)記為0,較遠(yuǎn)的另一個(gè)標(biāo)記為1;為若當(dāng)前幀為B幀,它的后向參考幀為在顯示順序上位于當(dāng)前圖像之后的參考幀,在后向參考順序中標(biāo)記為0,前向參考幀為在顯示順序位于當(dāng)前圖像之前的參考幀,在前向參考順序中標(biāo)記為0。
對(duì)于基于場的編碼方式,若當(dāng)前場為P場,它的4個(gè)前向參考即為緩沖區(qū)中這四個(gè)參考圖像,其中在顯示順序上離當(dāng)前圖像最近的圖像標(biāo)記為0;為若當(dāng)前場為B場,它的后向參考場為在顯示順序上位于當(dāng)前圖像之后的兩個(gè)參考場,其中在顯示順序上離當(dāng)前圖像最近的圖像標(biāo)記為0,另一個(gè)標(biāo)記為1,前向參考場為在顯示順序位于當(dāng)前圖像之前的參考圖像,離當(dāng)前圖像最近的場標(biāo)記為0,另一個(gè)標(biāo)記為1。
下面通過具體的一系列實(shí)例,以解碼中不同情況下的標(biāo)記方式,說明本發(fā)明的標(biāo)記過程圖中的數(shù)字表示參考索引值,箭頭所指的圖像是參考圖像,如圖1所示,如果當(dāng)前圖像是I圖像,并且該圖像作為兩場編碼,同時(shí)當(dāng)前解碼場在顯示順序上是第二場,標(biāo)記當(dāng)前解碼場上方的第一場為0;如圖2所示,如果當(dāng)前圖像是P圖像,并且進(jìn)行幀編碼,標(biāo)記離當(dāng)前圖像最近的前向參考圖像為0;最前方前向參考圖像為1;如圖3所示,如果當(dāng)前圖像是P圖像,并且該圖像作為兩場編碼,同時(shí)當(dāng)前解碼場在顯示順序上是第一場,標(biāo)記當(dāng)前場最近的前向參考圖像的第二場為0,向遠(yuǎn)離當(dāng)前圖像的方向,順次標(biāo)記4個(gè)場。
如圖4所示,如果當(dāng)前圖像是P圖像,并且該幀作為兩場編碼,同時(shí)當(dāng)前解碼場在顯示順序上是第二場,標(biāo)記當(dāng)前場上方的第一場為0,向遠(yuǎn)離當(dāng)前圖像的方向,順次標(biāo)記4個(gè)場。
如圖5所示,如果當(dāng)前圖像是B圖像,并且作為幀編碼,標(biāo)記前向參考圖像為0,標(biāo)記后向參考圖像也為0,這兩個(gè)圖像根據(jù)與當(dāng)前圖像在時(shí)序上的不同進(jìn)行區(qū)分。
如圖6所示,如果當(dāng)前圖像是B圖像,并且作為兩場編碼,同時(shí)當(dāng)前解碼場在顯示順序上是第一場,標(biāo)記前向參考圖像的第二場為0,第一場為1;標(biāo)記后向參考圖像第一場為0,第二場為1;B圖像只能索引前后向參考圖像,這樣在不標(biāo)記當(dāng)前場下方的第二場限制下,同樣是根據(jù)距離當(dāng)前場的遠(yuǎn)近標(biāo)記出4個(gè)參考場。
如圖7所示,如果當(dāng)前圖像是B圖像,并且作為兩場編碼,同時(shí)當(dāng)前解碼場在顯示順序上是第二場,標(biāo)記前向參考圖像的第二場為0,第一場為1;標(biāo)記后向參考圖像第一場為0,第二場為1,原因如上。
一些P/B幀/場中的特殊編碼模式,本發(fā)明也對(duì)其進(jìn)行了考慮對(duì)于I幀圖像的底場進(jìn)行編碼時(shí),底場總是編為P場,其參考圖像只有一個(gè),即頂場,也是參考圖像緩沖區(qū)中標(biāo)記為0的場。
對(duì)于B幀或B場中的Direct mode,其缺省的前后向參考圖像為最近的參考圖像,即標(biāo)記為0的參考圖像。
對(duì)于B幀中的Symmetric mode,其缺省的后向參考圖像由前向參考圖像導(dǎo)出,若前向參考圖像為標(biāo)記0的參考圖像,則后向參考圖像為標(biāo)記為1的參考圖像;反之若前向參考圖像為標(biāo)記1的參考圖像,則后向參考圖像為標(biāo)記為0的參考圖像。
完成緩沖區(qū)中圖像的標(biāo)記后,就可以根據(jù)標(biāo)記,進(jìn)行圖像的編/解碼了。在當(dāng)前圖像的編/解碼過程中,保持圖像緩沖區(qū)中的數(shù)據(jù)不變,直到當(dāng)前圖像編/解碼完成,需要對(duì)參考圖像緩沖區(qū)中參考圖像進(jìn)行更新。
本發(fā)明的步驟三中,根據(jù)參考圖像對(duì)當(dāng)前圖像進(jìn)行編碼的方法可以是任意一種利用參考圖像進(jìn)行預(yù)測編碼的方法。
如圖8所示是本發(fā)明更新圖像緩沖區(qū)中參考圖像的流程圖,解碼一幅圖像,若當(dāng)前圖像為I或P幀/場,則用該圖像替換參考圖像緩沖區(qū)中距離當(dāng)前圖像最遠(yuǎn)的幀/場,重新進(jìn)行索引標(biāo)記。
對(duì)于基于幀的編碼,若當(dāng)前解碼幀為I或P幀,則將解碼后的I/P幀替換緩沖區(qū)中離當(dāng)前圖像最遠(yuǎn)的參考幀,然后進(jìn)行步驟二中的標(biāo)記。
例如,若當(dāng)前解碼幀為I或P幀,則將解碼后的該幀替換原來緩沖區(qū)中標(biāo)記為1的參考幀,這樣一來這個(gè)新插入的參考幀為下一要解碼圖像的最近參考幀,標(biāo)記為0,另一圖像原先標(biāo)記為0,現(xiàn)在要更新標(biāo)記為1。
對(duì)于基于場的編碼,若當(dāng)前解碼幀為I或P場,則將解碼后的I/P場替換緩沖區(qū)中離當(dāng)前圖像最遠(yuǎn)的參考場,然后進(jìn)行步驟二中的標(biāo)記。
例如,若當(dāng)前解碼圖像為I或P場,則將解碼后的該圖像替換原來緩沖區(qū)中標(biāo)記為3的參考場,這樣一來這個(gè)新插入的參考場為下一要解碼圖像的最近參考場,標(biāo)記為0,另一圖像原先標(biāo)記為2,現(xiàn)在要更新標(biāo)記為3,原標(biāo)記為1的先更新為2,原標(biāo)記為0的更新為1。
解碼B幀或B場,緩沖區(qū)狀態(tài)保持不變。
如果所有的圖像都完成了編/解碼,則整個(gè)編/解碼過程已經(jīng)完成,刪除緩沖區(qū)中的所有圖像,釋放資源。
最后所應(yīng)說明的是以上實(shí)施例僅用以說明而非限制本發(fā)明的技術(shù)方案,盡管參照上述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然可以對(duì)本發(fā)明進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍的任何修改或局部替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種參考圖像緩沖區(qū)管理方法,其特征在于包括如下步驟步驟一、根據(jù)編碼的方式,在緩沖區(qū)中保留用于編/解碼的參考圖像;步驟二、每一個(gè)參考圖像都通過一個(gè)參考索引來標(biāo)記;步驟三、當(dāng)前圖像根據(jù)參考索引來確定參考圖像,完成編解碼;步驟四、如果當(dāng)前編/解碼圖像為I幀/場或P幀/場,則將解碼后的I或P幀/場替換緩沖區(qū)中離當(dāng)前圖像最遠(yuǎn)的參考幀/場,編/解碼下一個(gè)圖像,重新執(zhí)行步驟二;步驟五、如果當(dāng)前編/解碼圖像為B幀/場,不改變參考圖像的參考索引,編/解碼下一個(gè)圖像,重新執(zhí)行步驟三;步驟六、如果所有的圖像都完成了編/解碼,則刪除緩沖區(qū)中的所有圖像。
2.根據(jù)權(quán)利要求1所述的參考圖像緩沖區(qū)管理方法,其特征在于所述的步驟二中采用如下的方式,標(biāo)記參考圖像,前向參考圖像依照顯示順序,參考索引按降序排列,顯示順序上離當(dāng)前圖像最近的參考圖像的參考索引為0;后向參考圖像依照顯示順序,參考索引按升序排列,顯示順序上離當(dāng)前圖像最近的參考圖像的參考索引為0。
3.根據(jù)權(quán)利要求1所述的參考圖像緩沖區(qū)管理方法,其特征在于所述的步驟二中采用如下的方式,標(biāo)記參考圖像,對(duì)于基于幀的編碼方式,若當(dāng)前圖像為P幀,則它的兩個(gè)前向參考幀即為緩沖區(qū)中這兩個(gè)參考圖像,其中在顯示順序上離當(dāng)前圖像最近的圖像標(biāo)記為0,較遠(yuǎn)的另一個(gè)標(biāo)記為1;為若當(dāng)前幀為B幀,它的后向參考幀為在顯示順序上位于當(dāng)前圖像之后的參考幀,在后向參考順序中標(biāo)記為0,前向參考幀為在顯示順序位于當(dāng)前圖像之前的參考幀,在前向參考順序中標(biāo)記為0。
4.根據(jù)權(quán)利要求1或3所述的參考圖像緩沖區(qū)管理方法,其特征在于所述的步驟二中采用如下的方式,標(biāo)記參考圖像,對(duì)于基于場的編碼方式,若當(dāng)前場為P場,它的4個(gè)前向參考圖像即為緩沖區(qū)中這四個(gè)參考圖像,其中在顯示順序上離當(dāng)前圖像最近的圖像標(biāo)記為0;為若當(dāng)前場為B場,它的后向參考場為在顯示順序上位于當(dāng)前圖像之后的兩個(gè)參考場,其中在顯示順序上離當(dāng)前圖像最近的圖像標(biāo)記為0,另一個(gè)標(biāo)記為1,前向參考場為在顯示順序位于當(dāng)前圖像之前的參考圖像,離當(dāng)前圖像最近的場標(biāo)記為0,另一個(gè)標(biāo)記為1。
5.根據(jù)權(quán)利要求1所述的參考圖像緩沖區(qū)管理方法,其特征在于所述的步驟三中,對(duì)于I幀圖像的底場進(jìn)行編碼時(shí),底場總是編為P場,其參考圖像為參考圖像緩沖區(qū)中標(biāo)記為0的場。
6.根據(jù)權(quán)利要求1所述的參考圖像緩沖區(qū)管理方法,其特征在于所述的步驟三中,對(duì)于B幀或B場中的直接模式下,其缺省的前后向參考為標(biāo)記為0的參考圖像。
7.根據(jù)權(quán)利要求1所述的參考圖像緩沖區(qū)管理方法,其特征在于所述的步驟三中,對(duì)于B幀中的對(duì)稱模式,若前向參考圖像為標(biāo)記0的參考圖像,則后向參考圖像為標(biāo)記為1的參考圖像;若前向參考圖像為標(biāo)記1的參考圖像,則后向參考圖像為標(biāo)記為0的參考圖像。
8.根據(jù)權(quán)利要求1所述的參考圖像緩沖區(qū)管理方法,其特征在于所述的步驟四中,解碼一幅圖像,若當(dāng)前圖像為I或P幀/場,則用該圖像替換參考圖像緩沖區(qū)中距離當(dāng)前圖像最遠(yuǎn)的幀/場,重新進(jìn)行索引標(biāo)記。
9.根據(jù)權(quán)利要求1所述的參考圖像緩沖區(qū)管理方法,其特征在于所述的步驟四中,對(duì)于基于幀的編碼,若當(dāng)前解碼幀為I或P幀,則將解碼后的I/P幀替換緩沖區(qū)中離當(dāng)前圖像最遠(yuǎn)的參考幀,再進(jìn)行步驟二中的標(biāo)記。
10.根據(jù)權(quán)利要求1所述的參考圖像緩沖區(qū)管理方法,其特征在于所述的步驟四中,對(duì)于基于場的編碼,若當(dāng)前解碼幀為I或P場,則將解碼后的I/P場替換緩沖區(qū)中離當(dāng)前圖像最遠(yuǎn)的參考場,再進(jìn)行步驟二中的標(biāo)記。
全文摘要
一種參考圖像緩沖區(qū)管理方法,包括根據(jù)編碼的方式,在緩沖區(qū)中保留用于編/解碼的參考圖像;每一個(gè)參考圖像都通過一個(gè)參考索引來標(biāo)記;當(dāng)前圖像根據(jù)參考索引來確定參考圖像,完成編解碼;如果當(dāng)前編/解碼圖像為I幀/場或P幀/場,則將解碼后的I/P幀/場替換緩沖區(qū)中離當(dāng)前圖像最遠(yuǎn)的參考幀/場,編/解碼下一個(gè)圖像;如果當(dāng)前編/解碼圖像為B幀/場,不改變參考圖像的參考索引,編/解碼下一個(gè)圖像;如果所有的圖像都完成了編/解碼,則刪除緩沖區(qū)中的所有圖像。本發(fā)明通過對(duì)參考圖像進(jìn)行有效地管理,提高編解碼器對(duì)參考圖像的存取效率,只保留用作參考的圖像,降低了對(duì)緩存的需求,同時(shí)這些參考圖像在內(nèi)存中的統(tǒng)一管理可以提高訪存速度。
文檔編號(hào)H04N7/24GK1535029SQ20031011608
公開日2004年10月6日 申請(qǐng)日期2003年12月31日 優(yōu)先權(quán)日2003年12月31日
發(fā)明者文 高, 高文, 呂巖, 馬思偉, 季向陽 申請(qǐng)人:中國科學(xué)院計(jì)算技術(shù)研究所