解碼圖像緩存器(decoded picture buffer,DPB)用於存放解碼圖像。DPB中既存在參考圖像也存在非參考圖像,那些不用於參考的圖像輸出後會被移除出DPB。
DPB的容量由SPS中的sps_max_dec_pic_buffering_minus1字段決定,HEVC中規定DPB容量最大爲16。當DPB容量爲1時,則其只能存儲一幀當前解碼圖像,無法再存參考圖像所以所有幀都必須使用幀內編碼。
DPB中有三類圖像:非參考(non-reference)圖像、短期參考( short-term)圖像、長期參考( long-term)圖像。
DPB中圖像狀態變化如下:
一幅圖像解碼後首先被初始化爲短期參考圖像。短期參考圖像可以保持爲短期參考圖像或變爲長期參考圖像、非參考圖像。長期參考圖像可以保持爲長期參考圖像或變爲非參考圖像,但是不能變成短期參考圖像。非參考圖像不能變爲參考圖像。
SPS中還有兩個字段和DPB相關sps_max_num_reorder_pics和sps_max_latency_increase_plus1
sps_max_num_reorder_pics表示解碼順序在某圖像之前,而顯示順序在該圖像之後的圖像的最大數量。
sps_max_latency_increase_plus1用於計算SpsMaxLatencyPictures表示顯示順序在某圖像之前,而解碼順序在該圖像之後的圖像的最大數量。
感興趣的請關注微信公衆號Video Coding