視頻編解碼方法、裝置及生成的視頻碼流的制作方法
【專利摘要】本發(fā)明公開了一種視頻編解碼方法及裝置、傳輸視頻碼流的方法,其中,視頻編碼方法包括:確定編碼的第i個(gè)序列輸出延時(shí)的幀數(shù),并為編碼的第i個(gè)序列分配一個(gè)大小不小于此幀的圖像存儲(chǔ)空間;根據(jù)編碼的第i個(gè)序列已編碼幀的個(gè)數(shù)和輸出延時(shí)的幀數(shù)管理編碼的第i個(gè)序列的圖像存儲(chǔ)空間圖像的輸出;將編碼的第i個(gè)序列輸出延時(shí)的幀數(shù)寫入發(fā)送給視頻解碼端的碼流。本發(fā)明提出采用輸出延時(shí)的幀數(shù)這一參數(shù)來管理圖像的輸出,一方面,解決了AVS2WD5.0中圖像輸出過慢而導(dǎo)致大量的未輸出幀堆積在解碼圖像緩沖區(qū)中的問題,同時(shí)解決了提案M3226在跳幀時(shí)無法正常輸出圖像的問題。
【專利說明】視頻編解碼方法、裝置及生成的視頻碼流
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于視頻編解碼【技術(shù)領(lǐng)域】,特別涉及一種視頻編解碼方法、裝置及生成的視頻碼流。
【背景技術(shù)】
[0002]在視頻解碼的過程中,如何管理解碼圖像的輸出,一直是一個(gè)重要的問題,合理的圖像輸出方法應(yīng)使得圖像按照顯示順序的大小從小到大依次輸出,同時(shí)還應(yīng)該在合理的時(shí)間輸出,避免因?yàn)閳D像輸出過慢而導(dǎo)致大量的未輸出幀堆積在解碼圖像緩沖區(qū)中,造成解碼圖像緩沖區(qū)管理效率過低,進(jìn)而影響幀間參考的效率。
[0003]在HEVC 標(biāo)準(zhǔn)中,圖像的輸出是由 SEI picture timing O 中的 pic_dpb_output_de I ay, p i c_dpb_output_du_de I ay 以及 decoding_unit_info ()中的 p i c_sp t_dpb_output_du_delay管理的。三個(gè)語法元素都用于表示一個(gè)解碼圖像進(jìn)入解碼圖像緩沖區(qū)之后輸出的延時(shí)。通過該管理機(jī)制,能使解碼圖像按照顯示順序,以最快的速度輸出圖像,但是缺點(diǎn)在于每幀都需要傳輸一個(gè)輸出延時(shí),這將會(huì)是一個(gè)不小的開銷。
[0004]在正在制定的AVS2標(biāo)準(zhǔn)WD5.0中,圖像的輸出是由解碼圖像緩沖區(qū)大小MAX_BUFFER_SIZE和圖像顯示順序索引POI —同管理的,管理的方法為,當(dāng)解碼圖像緩沖區(qū)中的圖像個(gè)數(shù)達(dá)到MAX_BUFFER_SIZE,則輸出解碼圖像緩沖區(qū)中未輸出圖像中POI最小的一幀圖像。這種輸出方法存在著一個(gè)較為嚴(yán)重的問題,即由于必須等到解碼圖像緩沖區(qū)中滿才能輸出一幀,這會(huì)導(dǎo)致圖像輸出過慢而導(dǎo)致大量的未輸出幀堆積在解碼圖像緩沖區(qū)中,例如解碼GOP=S的層次B結(jié)構(gòu)。前9幀的顯示順序、解碼順序以及被之后參考情況分別為:
[0005]
【權(quán)利要求】
1.一種視頻的編碼方法,其特征在于,包括以下步驟: (1)確定編碼的第i(i>=0)個(gè)序列輸出延時(shí)的幀數(shù)SeqDelayNum[i](SeqDelayNum[i]>=l),并為編碼的第i個(gè)序列分配一個(gè)大小不小于SeqDelayNum[i]幀的圖像存儲(chǔ)空間; (2)根據(jù)編碼的第i個(gè)序列已編碼幀的個(gè)數(shù)SeqCodedNum[i](SeqCodedNum[i]>=0)和輸出延時(shí)的幀數(shù)SeqDelayNum[i]管理編碼的第i個(gè)序列的圖像存儲(chǔ)空間圖像的輸出;具體管理方法為:在圖像輸出檢測(cè)時(shí)刻,如果編碼的第i個(gè)序列已編碼幀的個(gè)數(shù)SeqCodedNum[i]大于等于輸出延時(shí)的幀數(shù)SeqDelayNum[i],則從編碼的第i個(gè)序列的圖像存儲(chǔ)空間中輸出顯示順序最小的一幀圖像;否則,不輸出任何圖像; (3)將編碼的第i個(gè)序列輸出延時(shí)的幀數(shù)SeqDelayNum[i]寫入發(fā)送給視頻解碼端的碼流。
2.根據(jù)權(quán)利要求1所述視頻的編碼方法,其特征在于,所述步驟3中所述第i個(gè)序列輸出延時(shí)的幀數(shù)SeqDelayNum[i]在序列頭的碼流中寫入或在序列頭擴(kuò)展的碼流中寫入或在序列頭之后第一個(gè)幀的圖像頭的碼流中寫入。
3.一種視頻的解碼方法,其特征在于,包括以下步驟: (1)從接收自視頻編碼端的碼流中獲取解碼的第i(i>=0)個(gè)序列的輸出延時(shí)的幀數(shù)SeqDelayNum[i] (SeqDelayNum[i]>=1),并為解碼的第i個(gè)序列分配一個(gè)大小不小于SeqDelayNum[i]幀的圖像存儲(chǔ)空間; (2)根據(jù)解碼的第i個(gè)序列已解碼幀的個(gè)數(shù)SeqDecodeNum[i](SeqDecodeNum[i]>=0)和輸出延時(shí)的幀數(shù)SeqDelayNum[i]管理解碼的第i個(gè)序列圖像存儲(chǔ)空間圖像的輸出;具體管理方法為:在圖像輸出檢測(cè)時(shí)刻,如果解碼的第i個(gè)序列序列已解碼幀的個(gè)數(shù)SeqDecodeNum[i]大于等于輸出延時(shí)的幀數(shù)SeqDelayNum[i],則從解碼的第i個(gè)序列的圖像存儲(chǔ)空間中輸出顯示順序最小的一幀圖像;否則,不輸出任何圖像。
4.根據(jù)權(quán)利要求3所述視頻的解碼方法,其特征在于,所述步驟I中,所述獲取解碼的第i (i>=0)個(gè)序列的輸出延時(shí)的幀數(shù)SeqDelayNum[i],獲取的方法包括:在序列頭的碼流中獲取或在序列頭擴(kuò)展的碼流中獲取或在序列頭之后第一個(gè)幀的圖像頭的碼流中獲取。
5.一種視頻編碼裝置,其特征在于,包括編碼處理單元和碼流寫入單元,所述編碼處理單元用于確定編碼的第i (i>=0)個(gè)序列輸出延時(shí)的幀數(shù)SeqDelayNum[i](SeqDelayNum[i] >=1),并為編碼的第i個(gè)序列分配一個(gè)大小不小于SeqDelayNum[i]幀的圖像存儲(chǔ)空間;并且根據(jù)編碼的第i個(gè)序列已編碼幀的個(gè)數(shù)SeqCodedNum[i](SeqCodedNum[i]>=0)和輸出延時(shí)的幀數(shù)SeqDelayNum[i]管理編碼的第i個(gè)序列的圖像存儲(chǔ)空間圖像的輸出;具體管理方法為:在圖像輸出檢測(cè)時(shí)刻,如果編碼的第i個(gè)序列已編碼中貞的個(gè)數(shù)SeqCodedNum[i]大于等于輸出延時(shí)的幀數(shù)SeqDelayNum[i],則從編碼的第i個(gè)序列的圖像存儲(chǔ)空間中輸出顯示順序最小的一幀圖像;否則,不輸出任何圖像。 所述碼流寫入單元用于將編碼的第i個(gè)序列輸出延時(shí)的幀數(shù)SeqDelayNum[i]寫入發(fā)送給視頻解碼端的碼流。
6.根據(jù)權(quán)利要求5所述視頻編碼裝置,其特征在于,所述將編碼的第i個(gè)序列輸出延時(shí)的幀數(shù)SeqDelayNumti]寫入發(fā)送給視頻解碼端的碼流,寫入的方法包括:在序列頭的碼流中寫入或在序列頭擴(kuò)展的碼流中寫入或在序列頭之后第一個(gè)幀的圖像頭的碼流中寫入。
7.一種視頻解碼裝置,其特征在于,包括解碼處理單元和設(shè)置于碼流讀取單元中的序列輸出延時(shí)的幀數(shù)獲取單元,所述序列輸出延時(shí)的幀數(shù)獲取單元用于從接收自視頻編碼端的碼流中獲取解碼的第i (i>=0)個(gè)序列的輸出延時(shí)的幀數(shù)SeqDelayNum[i](SeqDelayNum[i]>=1); 所述解碼處理單元為解碼的第i個(gè)序列分配一個(gè)大小不小于SeqDelayNumti]中貞的圖像存儲(chǔ)空間;根據(jù)解碼的第i個(gè)序列已解碼幀的個(gè)數(shù)SeqDecodeNum[i](SeqDecodeNum[i]>=0)和輸出延時(shí)的幀數(shù)SeqDelayNum[i]管理解碼的第i個(gè)序列圖像存儲(chǔ)空間圖像的輸出。具體管理方法為:在圖像輸出檢測(cè)時(shí)刻,如果解碼的第i個(gè)序列序列已解碼幀的個(gè)數(shù)SeqDecodeNum[i]大于等于輸出延時(shí)的幀數(shù)SeqDelayNum[i],則從解碼的第i個(gè)序列的圖像存儲(chǔ)空間中輸出顯示順序最小的一幀圖像;否則,不輸出任何圖像。
8.根據(jù)權(quán)利要求7所述視頻解碼裝置,其特征在于,從接收自視頻編碼端的碼流中獲取解碼的第i個(gè)序列的輸出延時(shí)的幀數(shù)SeqDelayNum[i],獲取的方法包括:在序列頭的碼流中獲取或在序列頭擴(kuò)展的碼流中獲取或在序列頭之后第一個(gè)幀的圖像頭的碼流中獲取。
9.一種視頻碼流,其特征在于,該碼流中傳輸了第i個(gè)序列輸出延時(shí)的幀數(shù)SeqDelayNum[i],其中SeqDelayNum[i]在序列頭的碼流中寫入或在序列頭擴(kuò)展的碼流中寫入或在序列頭之后第一個(gè)幀的圖像頭的碼流中寫入。
10.根據(jù)權(quán)利要求9所述視頻碼流,其特征在于,還包括:從該碼流中可以獲取解碼的第i (i>=0)個(gè)序列的輸出延時(shí)的幀數(shù)SeqDelayNum[i],其中SeqDelayNum[i]獲取的方法包括:在序列頭 的碼流 中獲取或在序列頭擴(kuò)展的碼流中獲取或在序列頭之后第一個(gè)幀的圖像頭的碼流中獲取。
【文檔編號(hào)】H04N19/44GK103945221SQ201410141736
【公開日】2014年7月23日 申請(qǐng)日期:2014年4月9日 優(yōu)先權(quán)日:2014年4月9日
【發(fā)明者】何至初, 虞露 申請(qǐng)人:浙江大學(xué)