專利名稱:視頻解碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字圖像解碼技術(shù)。
背景技術(shù):
視頻解碼特別是高清高碼率視頻解碼,由于其復(fù)雜度高、計(jì)算量大等特點(diǎn),視頻解 碼時(shí)間會(huì)比較長(zhǎng)。如果視頻解碼器在規(guī)定時(shí)間內(nèi)沒(méi)有完成視頻幀的解碼,往往會(huì)導(dǎo)致視頻 畫面的頓挫感,甚至還會(huì)影響音頻的播放,導(dǎo)致音頻播放不連續(xù),嚴(yán)重影響觀看者的感官體 驗(yàn)。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是,提供一種動(dòng)態(tài)丟幀的視頻解碼方法。 本發(fā)明為解決上述技術(shù)問(wèn)題所采用的技術(shù)方案是,視頻解碼方法,包括以下步
驟 a、統(tǒng)計(jì)設(shè)定時(shí)間內(nèi)每幀的時(shí)間戳與當(dāng)前播放時(shí)間的差的平均值; b、根據(jù)所述平均值的大小確定是否丟幀,如是,確定丟幀比例后按比例丟棄非參
考幀再進(jìn)入步驟C,所述平均值越小,丟幀比例越高;如否,直接進(jìn)入步驟C ; C、對(duì)保留的幀進(jìn)行解碼。
具體的,步驟b中根據(jù)所述平均值與多級(jí)閾值的大小比較確定當(dāng)前丟幀等級(jí),根
據(jù)當(dāng)前丟幀等級(jí)確定丟幀比例后,按比例丟棄非參考幀。 進(jìn)一步的,所述當(dāng)前丟幀等級(jí)包括1至5級(jí); 步驟b中,當(dāng)前幀的當(dāng)前丟幀等級(jí)為1且當(dāng)前幀為非參考幀,則丟棄當(dāng)前幀;否則, 保留當(dāng)前幀; 當(dāng)前幀的當(dāng)前丟幀等級(jí)為2且當(dāng)前幀的序號(hào)為2的倍數(shù),且當(dāng)前幀為非參考幀,則 丟棄當(dāng)前幀;否則,保留當(dāng)前幀; 當(dāng)前幀的當(dāng)前丟幀等級(jí)為3且當(dāng)前幀的序號(hào)為3的倍數(shù),且當(dāng)前幀為非參考幀,則 丟棄當(dāng)前幀;否則,保留當(dāng)前幀; 當(dāng)前幀的當(dāng)前丟幀等級(jí)為4且當(dāng)前幀的序號(hào)為4的倍數(shù),且當(dāng)前幀為非參考幀,則 丟棄當(dāng)前幀;否則,保留當(dāng)前幀; 當(dāng)前幀的當(dāng)前丟幀等級(jí)為5,則保留當(dāng)前幀。 進(jìn)一步的,如當(dāng)前幀的時(shí)間戳小于當(dāng)前播放時(shí)間且當(dāng)前幀為非參考幀,則丟棄當(dāng) 前幀。 本發(fā)明在視頻解碼器性能不能滿足當(dāng)前視頻解碼需要,即視頻解碼器在規(guī)定的時(shí) 間內(nèi)不能完成視頻幀的解碼的情況下,在解碼前根據(jù)解碼能力,適時(shí)適量地將不能處理的 視頻幀丟棄。 本發(fā)明的有益效果是,在視頻解碼器解碼性能不足的情況下,消除解碼后視頻畫 面的頓挫感和音頻播放的不連續(xù)。
具體實(shí)施例方式
本實(shí)施例引入目標(biāo)丟幀等級(jí)destLeve 1來(lái)實(shí)現(xiàn)根據(jù)設(shè)定時(shí)間內(nèi)每幀的時(shí)間 戳與當(dāng)前播放時(shí)間的差的平均值aheadAvgTime動(dòng)態(tài)調(diào)整當(dāng)前幀所處的當(dāng)前丟幀等級(jí) dropLevel,具體包括以下步驟 1)設(shè)置5個(gè)時(shí)間閾值,分別為400ms、300ms、250ms、200ms、150ms ;將當(dāng)前丟幀等級(jí) dropLevel設(shè)置為5個(gè)級(jí)別(1_5),值越大所丟幀數(shù)越少,dropLevel為5表示不丟幀,設(shè)定 默認(rèn)的丟幀等級(jí)dropLevel為5 ;
2)確定目標(biāo)丟幀等級(jí)destLevel : 統(tǒng)計(jì)每半秒鐘內(nèi)每幀的時(shí)間戳與當(dāng)前播放時(shí)間的差的平均值aheadAvgTime ;
aheadAvgTime大于400ms,將目標(biāo)丟幀等級(jí)destLevel設(shè)置為當(dāng)前丟幀等級(jí) dropLevel力口 ; aheadAvgTime小于150ms,將目標(biāo)丟幀等級(jí)destLevel設(shè)置為1 ;
aheadAvgTime小于200ms且大于等于150ms,將目標(biāo)丟幀等級(jí)destLevel設(shè)置為
2 ;
3 ;
aheadAvgTime小于250ms且大于等于200ms,將目標(biāo)丟幀等級(jí)destLevel設(shè)置為
aheadAvgTime小于300ms且大于等于250ms,將目標(biāo)丟幀等級(jí)destLevel設(shè)為4 ; aheadAvgTime小于400ms且大于等于300ms,將目標(biāo)丟幀等級(jí)destLevel設(shè)置為 當(dāng)前丟幀等級(jí)dropLevel ; 3)根據(jù)目標(biāo)丟幀等級(jí)destLevel確定當(dāng)前丟幀等級(jí)dropLevel,并按當(dāng)前丟幀等 級(jí)dropLevel確定丟幀數(shù)量 目標(biāo)丟幀等級(jí)destLevel與當(dāng)前丟幀等級(jí)dropLevel相等,則保持當(dāng)前丟幀等級(jí) 不變; 目標(biāo)丟幀等級(jí)destLevel小于當(dāng)前丟幀等級(jí)dropLevel ,則將當(dāng)前丟幀等級(jí) dropLevel設(shè)置為目標(biāo)丟幀等級(jí)destLevel ; 目標(biāo)丟幀等級(jí)destLevel大于當(dāng)前丟幀等級(jí)dropLevel,則分別處理 如當(dāng)前丟幀等級(jí)dropLevel為1,且上一次目標(biāo)丟幀等級(jí)destLevel大于當(dāng)前丟幀
等級(jí)dropLevel,則將當(dāng)前丟幀等級(jí)dropLevel加1,否則保持當(dāng)前丟幀等級(jí)不變; 如當(dāng)前丟幀等級(jí)dropLevel為2,且上三次目標(biāo)丟幀等級(jí)destLevel均大于當(dāng)前丟
幀等級(jí)dropLevel,則將當(dāng)前丟幀等級(jí)dropLevel加1,否則保持當(dāng)前丟幀等級(jí)不變; 如當(dāng)前丟幀等級(jí)dropLevel為3,且上五次目標(biāo)丟幀等級(jí)destLevel均大于當(dāng)前丟
幀等級(jí)dropLevel,則將當(dāng)前丟幀等級(jí)dropLevel加1,否則保持當(dāng)前丟幀等級(jí)不變; 如當(dāng)前丟幀等級(jí)dropLevel為4,且上七次目標(biāo)丟幀等級(jí)destLevel均大于當(dāng)前丟
幀等級(jí)dropLevel,則將當(dāng)前丟幀等級(jí)dropLevel加1,否則保持當(dāng)前丟幀等級(jí)不變; 如當(dāng)前丟幀等級(jí)dropLevel為5,則保持當(dāng)前丟幀等級(jí)不變; 4)根據(jù)當(dāng)前丟幀等級(jí)dropLevel確定是否丟幀以及丟幀比例 當(dāng)前丟幀等級(jí)dropLevel等于1或當(dāng)前幀的時(shí)間戳小于當(dāng)前播放時(shí)間,且當(dāng)前幀
為非參考幀(I幀或P幀),則丟棄當(dāng)前幀;
當(dāng)前丟幀等級(jí)dropLevel等于2且當(dāng)前幀的序號(hào)為2的倍數(shù),且當(dāng)前幀為非參考 幀,則丟棄當(dāng)前幀; 當(dāng)前丟幀等級(jí)dropLevel等于3且當(dāng)前幀的序號(hào)為3的倍數(shù),且當(dāng)前幀為非參考 幀,則丟棄當(dāng)前幀; 當(dāng)前丟幀等級(jí)dropLevel等于4且當(dāng)前幀的序號(hào)為4的倍數(shù),且當(dāng)前幀為非參考
幀,則丟棄當(dāng)前幀; 其他情況均不丟棄當(dāng)前幀。 5)對(duì)保留下來(lái)的幀進(jìn)行解碼。
權(quán)利要求
視頻解碼方法,其特征在于,包括以下步驟a、統(tǒng)計(jì)設(shè)定時(shí)間內(nèi)每幀的時(shí)間戳與當(dāng)前播放時(shí)間的差的平均值;b、根據(jù)所述平均值的大小確定是否丟幀,如是,確定丟幀比例后按比例丟棄非參考幀再進(jìn)入步驟c,所述平均值越小,丟幀比例越高;如否,直接進(jìn)入步驟c;c、對(duì)剩下的幀進(jìn)行解碼。
2. 如權(quán)利要求1所述視頻解碼方法,其特征在于,所述設(shè)定時(shí)間為每半秒。
3. 如權(quán)利要求1所述視頻解碼方法,其特征在于,步驟b中根據(jù)所述平均值與多級(jí)閾值 的大小比較確定當(dāng)前丟幀等級(jí),再根據(jù)當(dāng)前丟幀等級(jí)確定丟幀比例后,按比例丟棄非參考 幀。
4. 如權(quán)利要求3所述視頻解碼方法,其特征在于,所述當(dāng)前丟幀等級(jí)包括1至5級(jí);步驟b中,當(dāng)前幀的當(dāng)前丟幀等級(jí)為l且當(dāng)前幀為非參考幀,則丟棄當(dāng)前幀;否則,保留當(dāng)前幀;當(dāng)前幀的當(dāng)前丟幀等級(jí)為2且當(dāng)前幀的序號(hào)為2的倍數(shù),且當(dāng)前幀為非參考幀,則丟棄 當(dāng)前幀;否則,保留當(dāng)前幀;當(dāng)前幀的當(dāng)前丟幀等級(jí)為3且當(dāng)前幀的序號(hào)為3的倍數(shù),且當(dāng)前幀為非參考幀,則丟棄 當(dāng)前幀;否則,保留當(dāng)前幀;當(dāng)前幀的當(dāng)前丟幀等級(jí)為4且當(dāng)前幀的序號(hào)為4的倍數(shù),且當(dāng)前幀為非參考幀,則丟棄 當(dāng)前幀;否則,保留當(dāng)前幀;當(dāng)前幀的當(dāng)前丟幀等級(jí)為5,則保留當(dāng)前幀。
5. 如權(quán)利要求4所述視頻解碼方法,其特征在于,當(dāng)前幀的時(shí)間戳小于當(dāng)前播放時(shí)間 且當(dāng)前幀為非參考幀,則丟棄當(dāng)前幀。
6. 如權(quán)利要求4所述視頻解碼方法,其特征在于,步驟b中先通過(guò)所述平均值與多級(jí)閾 值的大小比較確定目標(biāo)丟幀等級(jí),再通過(guò)目標(biāo)丟幀等級(jí)與當(dāng)前丟幀等級(jí)的比較重新確定當(dāng) 前丟幀等級(jí);當(dāng)前丟幀等級(jí)的越低,丟幀比例越高,當(dāng)前丟幀等級(jí)為最高時(shí),不丟幀;所述當(dāng)前丟幀等級(jí)的初始值默認(rèn)為最高值;如目標(biāo)丟幀等級(jí)與當(dāng)前丟幀等級(jí)相等,則保持當(dāng)前丟幀等級(jí)不變; 如目標(biāo)丟幀等級(jí)小于當(dāng)前丟幀等級(jí),則將當(dāng)前丟幀等級(jí)設(shè)置為目標(biāo)丟幀等級(jí); 如目標(biāo)丟幀等級(jí)大于當(dāng)前丟幀等級(jí),則需判斷當(dāng)前丟幀等級(jí)是否為最高,如是保持當(dāng)前丟幀等級(jí)不變;如否,再判斷上次目標(biāo)丟幀等級(jí)是否大于當(dāng)前丟幀等級(jí),如是則將當(dāng)前丟幀等級(jí)加l,否則保持當(dāng)前丟幀等級(jí)不變。
7. 如權(quán)利要求6所述視頻解碼方法,其特征在于,步驟b中設(shè)置有5級(jí)閾值,分別為第 一閾值、第二閾值、第三閾值、第四閾值、第五閾值;默認(rèn)初始當(dāng)前丟幀等級(jí)為5。
8. 如權(quán)利要求7所述視頻解碼方法,其特征在于,步驟b中通過(guò)所述平均值與5級(jí)閾值 的大小比較確定目標(biāo)丟幀等級(jí),具體為所述平均值小于第一閾值,將目標(biāo)丟幀等級(jí)設(shè)置為1 ;所述平均值小于第二閾值且大于等于第一閾值,將目標(biāo)丟幀等級(jí)設(shè)置為2 ; 所述平均值小于第三閾值且大于等于第二閾值,將目標(biāo)丟幀等級(jí)設(shè)置為3 ;所述平均值小于第四閾值且大于等于第三閾值,將目標(biāo)丟幀等級(jí)設(shè)置為4 ;所述平均值小于第五閾值且大于等于第四閾值,將目標(biāo)丟幀等級(jí)設(shè)置為當(dāng)前丟幀等級(jí);所述平均值大于第五閾值,將目標(biāo)丟幀等級(jí)設(shè)置為當(dāng)前丟幀等級(jí)加1。
9. 如權(quán)利要求7所述視頻解碼方法,其特征在于,步驟b中通過(guò)目標(biāo)丟幀等級(jí)與當(dāng)前丟幀等級(jí)的比較重新確定當(dāng)前丟幀等級(jí),具體為目標(biāo)丟幀等級(jí)與當(dāng)前丟幀等級(jí)相等,則保持當(dāng)前丟幀等級(jí)不變;目標(biāo)丟幀等級(jí)小于當(dāng)前丟幀等級(jí),則將當(dāng)前丟幀等級(jí)設(shè)置為目標(biāo)丟幀等級(jí);目標(biāo)丟幀等級(jí)大于當(dāng)前丟幀等級(jí),則分別處理如當(dāng)前丟幀等級(jí)為l,且上一次目標(biāo)丟幀等級(jí)大于當(dāng)前丟幀等級(jí),則將當(dāng)前丟幀等級(jí)加l,否則保持當(dāng)前丟幀等級(jí)不變;如當(dāng)前丟幀等級(jí)為2,且上三次目標(biāo)丟幀等級(jí)均大于當(dāng)前丟幀等級(jí),則將當(dāng)前丟幀等級(jí)加l,否則保持當(dāng)前丟幀等級(jí)不變;如當(dāng)前丟幀等級(jí)為3,且上五次目標(biāo)丟幀等級(jí)均大于當(dāng)前丟幀等級(jí),則將當(dāng)前丟幀等級(jí)加l,否則保持當(dāng)前丟幀等級(jí)不變;如當(dāng)前丟幀等級(jí)為4,且上七次目標(biāo)丟幀等級(jí)均大于當(dāng)前丟幀等級(jí),則將當(dāng)前丟幀等級(jí)加l,否則保持當(dāng)前丟幀等級(jí)不變;如當(dāng)前丟幀等級(jí)為5,則保持當(dāng)前丟幀等級(jí)不變。
10. 如權(quán)利要求7所述視頻解碼方法,其特征在于,所述第一閾值、第二閾值、第三閾值、第四閾值、第五閾值分別為150ms 、 200ms 、 250ms 、 300ms 、 400ms 。
全文摘要
本發(fā)明涉及數(shù)字圖像解碼技術(shù),提供一種動(dòng)態(tài)丟幀的視頻解碼方法。視頻解碼方法,包括步驟a、統(tǒng)計(jì)設(shè)定時(shí)間內(nèi)每幀的時(shí)間戳與當(dāng)前播放時(shí)間的差的平均值;b、根據(jù)所述平均值的大小確定是否丟幀,如是,確定丟幀比例后按比例丟棄非參考幀再進(jìn)入步驟c,所述平均值越小,丟幀比例越高;如否,直接進(jìn)入步驟c;c、對(duì)保留的幀進(jìn)行解碼。本發(fā)明在視頻解碼器性能不能滿足當(dāng)前視頻解碼需要,即視頻解碼器在規(guī)定的時(shí)間內(nèi)不能完成視頻幀的解碼的情況下,在解碼前根據(jù)解碼能力,適時(shí)適量地將不能處理的視頻幀丟棄,消除解碼后視頻畫面的頓挫感和音頻播放的不連續(xù)。
文檔編號(hào)H04N7/26GK101715129SQ20091031218
公開(kāi)日2010年5月26日 申請(qǐng)日期2009年12月24日 優(yōu)先權(quán)日2009年12月24日
發(fā)明者劉明華 申請(qǐng)人:四川長(zhǎng)虹電器股份有限公司