一種視頻倒放的方法
【技術領域】
[0001]本發(fā)明涉及計算機領域,尤其是一種視頻倒放的方法。
【背景技術】
[0002]目前,廣泛使用的視頻文件主要有I幀、P幀幾種幀類型。其中I幀稱為幀內編碼幀,是一種自帶全部信息的獨立幀,視頻序列中的第一個幀始終都是I幀,其無需參考其它圖像便可獨立進行解碼。如果所傳輸?shù)谋忍亓髟獾狡茐?,則需要將I幀用作新的起始點或重新同步點;p幀也稱為幀間預測編碼幀,P幀不能夠獨立解碼,必須參考前面的I幀或P幀才能進行編碼。與I幀相比,P幀通常占用更少的數(shù)據位,但由于P幀對前面的P幀和I幀有著復雜的依賴性,因此對傳輸錯誤非常敏感。
[0003]視頻播放時必須先解碼I幀,再解碼依賴該I幀的P幀,方可正確解碼,清晰播放,否則會出現(xiàn)花屏或者無法播放。
[0004]在視頻倒放時,由于P幀無法單獨解碼播放,必須依賴I幀解碼,而在原始視頻文件的倒播過程中,I幀始終處于依賴I幀的P幀之后,因此需要為P幀尋找I幀,在找到P幀所依賴的I幀之后,才可以進行視頻的解碼播放。目前視頻倒放方法一般為單幀播放方式,播放時,設置數(shù)據存放緩沖區(qū)和數(shù)據解碼緩沖區(qū),倒著讀文件,遇到P幀先放入數(shù)據存放緩沖區(qū),直至遇到I幀并將I幀存入數(shù)據存放緩沖區(qū),然后,解碼數(shù)據存放緩沖區(qū)中依賴此I幀的所有P幀保存至數(shù)據解碼緩沖區(qū),完成后,從數(shù)據解碼緩沖區(qū)中取出解碼好的數(shù)據來播放。這種方法在尋找I幀和緩沖區(qū)數(shù)據讀寫過程中耗費了大量時間,導致解碼速度慢,因此在實時倒放時會產生卡頓或花屏現(xiàn)象,無法保證流暢的倒放,而為解決視頻倒放時卡頓和花屏問題,重點是提升倒放視頻的解碼速度。
【發(fā)明內容】
[0005]為此,本發(fā)明提供了一種視頻倒放的方法,本方法通過對原始視頻文件進行預處理,節(jié)省了視頻倒放時的尋找I幀和緩沖區(qū)讀寫的時間,顯著提升了解碼速度,保證了視頻倒放過程的流暢性。
[0006]本發(fā)明解決上述技術問題的技術方案如下:
[0007]—種視頻倒放的方法,包括以下步驟:
[0008]S1、對原視頻文件進行預處理,生成適用于視頻倒放的新視頻文件;
[0009]所述預處理包括將原視頻文件中的所有I幀逆序存儲,并將I幀存儲于依賴所述I幀的P幀之前;
[0010]S2、對所述新視頻文件正向播放。
[0011]優(yōu)選的,SI中預處理方法包括以下步驟:
[0012]S11、逆向讀取原視頻文件,若讀取結果為P幀,則將所述P幀加入緩沖區(qū),若讀取結果為I幀,則將所述I幀寫入新視頻文件,進行步驟S12 ;
[0013]S12、判斷所述緩沖區(qū)是否為空,若非空,則進行S13,若為空,則進行S14;
[0014]S13、將緩沖區(qū)內容按寫入所述緩沖區(qū)的先后順序,依次寫入所述新視頻文件,清空隊列緩沖區(qū);
[0015]S14、判斷是否已經讀取到原視頻文件尾部,若是,則保存新視頻文件,預處理結束;若否,繼續(xù)進行S11。
[0016]優(yōu)選的,所述緩沖區(qū)為隊列緩沖區(qū)。
[0017]優(yōu)選的,在S13中從隊列緩沖區(qū)頭部取出緩沖區(qū)中數(shù)據,并將所述數(shù)據寫入新視頻文件。
[0018]優(yōu)選的,S2中所述正向播放方法為:
[0019]正向讀取新視頻文件,根據P幀所依賴的I幀依次對所述P幀解碼并播放。
[0020]優(yōu)選的,所述正向播放方法中,遇到I幀只解碼不播放。
[0021]優(yōu)選的,所述I幀是一種自帶全部信息的獨立幀,無需參考其它數(shù)據便可獨立進行編解碼;所述P幀需要依賴與所述P幀相關的I幀進行編解碼。
[0022]本發(fā)明的有益效果是:
[0023]本發(fā)明通過對原始視頻文件預處理生成了新的視頻文件,而使用新的視頻文件在視頻倒放的過程中,節(jié)省了視頻倒放時的尋找I幀和緩沖區(qū)讀寫的時間,顯著提升了解碼速度,保證了視頻倒放過程的流暢性,從而解決視頻倒放時卡頓和花屏問題。
【附圖說明】
[0024]圖1為傳統(tǒng)的視頻文件存儲方式;
[0025]圖2為本發(fā)明預處理后的視頻文件的存儲方式;
[0026]圖3為本發(fā)明預處理的流程圖。
【具體實施方式】
[0027]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明作進一步地詳細描述。
[0028]在一個實施例中,一種視頻倒放的方法,包括以下步驟:
[0029]S1、對原視頻文件進行預處理,生成適用于視頻倒放的新視頻文件;所述預處理包括將原視頻文件中的所有I幀逆序存儲,并將I幀存儲于依賴所述I幀的P幀之前;
[0030]S2、對所述新視頻文件正向播放。
[0031]原視頻文件如圖1,其中,I代表關鍵幀I幀,P代表P幀,原視頻文件按如下結構存儲:
[0032]I1-P101-P102-P103......P124-12-P201-P202-P203......P224......,
[0033]以I1-P101-P102-P103……P124這段數(shù)據為例,原視頻文件先保存Il幀,然后是依賴Il幀解碼的P101-P124等P幀,但是,在倒放時,應該先播放P124,再播放P123...最后播放Il幀,而P124、P123...PlOl等P幀必須在Il幀解碼后才能正確解碼。因此,普通倒放方法為:在倒放時需要設置數(shù)據存放緩沖區(qū)和數(shù)據解碼緩沖區(qū),倒著讀文件,遇到P124、P123...PlOl先放入數(shù)據存放緩沖區(qū),直至遇到Il幀并將Il幀存入數(shù)據存放緩沖區(qū),然后,依次解碼數(shù)據存放緩沖區(qū)中的P124、P123...PlOl并將解碼結果保存至數(shù)據解碼緩沖區(qū),完成后,從數(shù)據解碼緩沖區(qū)中取出解碼好的數(shù)據來播放,而這種尋找Il幀和緩沖區(qū)讀寫的過程都需要耗費大量時間。
[0034]為實現(xiàn)流暢倒放,本方法SI對視頻文件進行預處理生成了新視頻文件,對應于圖1的原視頻文件的所述新視頻文件結構如圖2所示為:
[0035]......12-P224-P223-P222......P201-11-P124-P123-P122......PlOl,新視頻文件的數(shù)據存儲順序與視頻倒放時對數(shù)據的解碼順序相一致。在所述新視頻文件中的所有I幀的存儲順序與原視頻文件中的I幀存儲順序相反,依賴于所述I幀的P幀存儲于所述I幀與所述I幀存儲位置的下一個I幀之間,依賴于所述I幀的所有P幀的存儲順序與原視頻中相應的P幀存儲順序相反。
[0036]預處理過程如圖3所示,包括:
[0037]S11、逆向讀取原視頻文件,若讀取結果為P幀,則將所述P幀加入隊列緩沖區(qū)尾部,若讀取結果為I幀,則將所述I幀寫入新視頻文件,進行步驟S12 ;
[0038]S12、判斷所述隊列緩沖區(qū)是否為空,若非空,則進行S13,若為空,則進行S14;
[0039]S13、將隊列緩沖區(qū)頭部內容依次取出并寫入所述新視頻文件,清空隊列緩沖區(qū);
[0040]S14、判斷是否已經讀取到原視頻文件尾部,若是,則保存新視頻文件,預處理結束;若否,繼續(xù)進行S11。
[0041]S2中所述正向播放方法為:
[0042]正向讀取新視頻文件,根據P幀所依賴的I幀依次對所述P幀解碼并播放。
[0043]優(yōu)選的,所述正向播放方法中,遇到I幀只解碼不播放。
[0044]優(yōu)選的,所述I幀是一種自帶全部信息的獨立幀,無需參考其它數(shù)據便可獨立進行編解碼;所述P幀需要依賴與所述P幀相關的I幀進行編解碼。
[0045]以上所揭露的僅為本發(fā)明較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,因此依本發(fā)明權利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【主權項】
1.一種視頻倒放的方法,其特征在于,包括以下步驟: 51、對原視頻文件進行預處理,生成適用于視頻倒放的新視頻文件; 所述預處理包括將原視頻文件中的所有I幀逆序存儲,并將I幀存儲于依賴所述I幀的P幀之前; 52、對所述新視頻文件正向播放。2.根據權利要求1所述的一種視頻倒放的方法,其特征在于,SI中預處理方法包括以下步驟: 511、逆向讀取原視頻文件,若讀取結果為P幀,則將所述P幀加入緩沖區(qū),若讀取結果為I幀,則將所述I幀寫入新視頻文件,進行步驟S12 ; 512、判斷所述緩沖區(qū)是否為空,若非空,則進行S13,若為空,則進行S14; 513、將緩沖區(qū)內容按寫入所述緩沖區(qū)的先后順序,依次寫入所述新視頻文件,清空隊列緩沖區(qū); 514、判斷是否已經讀取到原視頻文件尾部,若是,則保存新視頻文件,預處理結束;若否,繼續(xù)進行S11。3.根據權利要求2所述的一種視頻倒放的方法,其特征在于,所述緩沖區(qū)為隊列緩沖區(qū)。4.根據權利要求3所述的一種視頻倒放的方法,其特征在于,在S13中從隊列緩沖區(qū)頭部取出緩沖區(qū)中數(shù)據,并將所述數(shù)據寫入新視頻文件。5.根據權利要求1-4中任意一項所述的一種視頻倒放的方法,其特征在于,S2中所述正向播放方法為: 正向讀取新視頻文件,根據P幀所依賴的I幀依次對所述P幀解碼并播放。6.根據權利要求5所述的一種視頻倒放的方法,其特征在于,所述正向播放方法中,遇到I幀只解碼不播放。7.根據權利要求6所述的一種視頻倒放的方法,其特征在于,所述I幀是一種自帶全部信息的獨立幀,無需參考其它數(shù)據便可獨立進行編解碼;所述P幀需要依賴與所述P幀相關的I幀進行編解碼。
【專利摘要】本發(fā)明涉及一種視頻倒放的方法,本方法為通過對原視頻文件進行預處理,生成新視頻文件,對新視頻文件正向解碼,順序播放即可實現(xiàn)視頻倒放,在倒放過程中,對I幀只解碼不播放。本發(fā)明通過對原始視頻文件預處理生成了新的視頻文件,而使用新的視頻文件在視頻倒放的過程中,節(jié)省了視頻倒放時尋找I幀和緩沖區(qū)讀寫的時間,顯著提升了解碼速度,保證了視頻倒放過程的流暢性,從而解決視頻倒放時卡頓和花屏問題。
【IPC分類】H04N21/44, H04N21/4402
【公開號】CN105025357
【申請?zhí)枴緾N201510303283
【發(fā)明人】周超, 韓珍
【申請人】北京中電興發(fā)科技有限公司
【公開日】2015年11月4日
【申請日】2015年6月5日