一種sd卡保存視頻時避免數(shù)據(jù)丟失的方法
【專利摘要】本發(fā)明涉及一種SD卡數(shù)據(jù)處理【技術領域】,具體涉及一種SD卡保存視頻時避免數(shù)據(jù)丟失的方法。本發(fā)明提供了一種SD卡保存視頻時避免數(shù)據(jù)丟失的方法,該方法通過當緩存區(qū)接近溢出臨界點的時候,減少視頻編碼接口生成的數(shù)據(jù)量,以及配合通過減少單位時間內SD卡的寫入次數(shù)。本發(fā)明的方法通過實時監(jiān)測視頻緩存隊列的剩余容量,當剩余容量達到警戒值時,立即自適應調整錄像線程產(chǎn)生的數(shù)據(jù)量,并控制SD卡的寫入次數(shù),本發(fā)明將視頻自適應編碼技術應用到提高SD卡存儲可靠性上,對車載DVR視頻數(shù)據(jù)保存到SD卡的過程進行監(jiān)視,通過調整寫入數(shù)據(jù)量和寫入次數(shù)來平衡數(shù)據(jù)緩存區(qū)的空間,使視頻數(shù)據(jù)不丟失。
【專利說明】一種SD卡保存視頻時避免數(shù)據(jù)丟失的方法
【技術領域】
[0001]本發(fā)明涉及一種SD卡數(shù)據(jù)處理【技術領域】,具體涉及一種SD卡保存視頻時避免數(shù)據(jù)丟失的方法。
【背景技術】
[0002]在車載DVR (數(shù)字視頻錄像機)領域,SD卡是重要的存儲介質,但在嵌入式環(huán)境中,由于設備性能及資源有限,SD卡的數(shù)據(jù)寫入速度往往受到多種外界因素的影響,比如嵌入式CPU的繁忙程度、SD卡和車載主機的接口類型等。
[0003]同時,車載DVR終端在錄像時,每秒產(chǎn)生的視頻數(shù)據(jù)量也受各種條件影響,比如視頻通道數(shù)量、攝像頭接入數(shù)量、預置的視頻編碼類型、碼率等。實踐表明,當單位時間內產(chǎn)生的視頻數(shù)據(jù)量較大且SD卡的寫入速度處于下降階段時,就可能出現(xiàn)單位時間內SD卡寫入的數(shù)據(jù)量遠小于錄像線程生成的數(shù)據(jù)量,導致緩存隊列溢出,視頻數(shù)據(jù)丟失的問題。
【發(fā)明內容】
[0004]解決上述技術問題,本發(fā)明提供了一種SD卡保存視頻時避免數(shù)據(jù)丟失的方法,該方法通過當緩存區(qū)接近溢出臨界點的時候,減少視頻編碼接口生成的數(shù)據(jù)量,以及配合通過減少單位時間內SD卡的寫入次數(shù)。
[0005]為了達到上述目的,本發(fā)明所采用的技術方案是,一種SD卡保存視頻時避免數(shù)據(jù)丟失的方法,包括以下步驟:
步驟1:通過統(tǒng)計存入和取出視頻編碼數(shù)據(jù)量得到緩存區(qū)剩余容量,并根據(jù)幀間編碼原理,對視頻編碼數(shù)據(jù)分成I幀、P幀和B幀三種類型,其中I幀是一張完整的圖片,而P幀和B幀分別是I幀前后幀差異的部分,當剩余視頻編碼數(shù)據(jù)量的容量<第一閾值時,執(zhí)行步驟2,否則返回執(zhí)行步驟I ;
步驟2:自適應降低編碼速率,采用“加增乘減一AIMD”方法中的“乘減”方法快速減少視頻編碼數(shù)據(jù)量,執(zhí)行步驟3,
步驟3:判斷P幀和B幀是否已經(jīng)合并,若是,則執(zhí)行步驟5,否則,執(zhí)行步驟4 ;
步驟4:合并連續(xù)的多幀P幀或B幀,一次性寫入緩存區(qū);
步驟5:再次判斷剩余視頻編碼數(shù)據(jù)量的容量是否<第一閾值,若是則返回執(zhí)行步驟2,否則執(zhí)行步驟6;
步驟6:判斷剩余視頻編碼數(shù)據(jù)量的容量是否 >第二閾值,若是,則執(zhí)行步驟7,否則返回執(zhí)行步驟5 ;
步驟7:判斷碼率是否 > 第三閾值,若是,則執(zhí)行步驟9,否則執(zhí)行步驟8 ;
步驟8:自適應恢復編碼速率,采用“加增乘減一AIMD"方法中的“加增”方法緩慢恢復視頻編碼數(shù)據(jù)量,執(zhí)行步驟9 ;
步驟9:判斷P幀和B幀是否已經(jīng)解除了合并寫入,若是,則返回執(zhí)行步驟6,否則執(zhí)行步驟10, 步驟10:解除幀合并,恢復單幀寫入,只將一幀的頻編碼數(shù)據(jù)存入這一小塊內存中并寫入到SD卡。
[0006]進一步的,所述第一閾值為視頻編碼數(shù)據(jù)量的總容量的10%_30%。
[0007]進一步的,所述第二閾值為視頻編碼數(shù)據(jù)量的總容量的30%_50%。
[0008]進一步的,所述步驟2中的新碼率計算公式為:新碼率=原始視頻編碼碼率 X0.8。
[0009]進一步的,所述步驟8中的新碼率計算公式為:新碼率=原始視頻編碼碼率+50kbitps0
[0010]本發(fā)明通過采用上述技術方案,與現(xiàn)有技術相比,具有如下優(yōu)點:
本發(fā)明的方法通過實時監(jiān)測視頻緩存隊列的剩余容量,當剩余容量達到警戒值時,立即自適應調整錄像線程產(chǎn)生的數(shù)據(jù)量,并控制SD卡的寫入次數(shù),避免視頻數(shù)據(jù)因為來不及寫入而丟失。
[0011]本發(fā)明將視頻自適應編碼技術應用到提高SD卡存儲可靠性上,對車載DVR視頻數(shù)據(jù)保存到SD卡的過程進行監(jiān)視,通過調整寫入數(shù)據(jù)量和寫入次數(shù)來平衡數(shù)據(jù)緩存區(qū)的空間,使視頻數(shù)據(jù)不丟失。所以本方法達到了相對提高SD卡的數(shù)據(jù)寫入效率,防止視頻數(shù)據(jù)在保存到SD卡的過程中無形丟失的目的。
【專利附圖】
【附圖說明】
[0012]圖1是本發(fā)明的實施例的流程圖。
【具體實施方式】
[0013]現(xiàn)結合附圖和【具體實施方式】對本發(fā)明進一步說明。
[0014]作為一個具體的實施例,在車載DVR設備上,SD卡的存儲性能直接決定著視頻數(shù)據(jù)是否能快速且完整的保存。視頻數(shù)據(jù)由車載DVR視頻編碼接口輸出后,通常會存入一個數(shù)據(jù)緩存區(qū),再由SD卡寫入程序從該緩存區(qū)提取數(shù)據(jù),最終寫入到SD卡中。在這個過程中,需要有一個平衡點,即單位時間內SD卡寫入程序從緩存區(qū)提取的數(shù)據(jù)量,要大于等于視頻編碼接口輸出到緩存區(qū)的數(shù)據(jù)量,否則緩存區(qū)早晚都會溢出,導致數(shù)據(jù)丟失。實踐證明,這個平衡點不能是一個固定值,因為單位時間內視頻編碼接口生成的數(shù)據(jù)量和SD卡寫入的數(shù)據(jù)量都受多種因素(如【背景技術】所述)影響而動態(tài)變化著。如圖1所示,本發(fā)明的一種SD卡保存視頻時避免數(shù)據(jù)丟失的方法,包括:
步驟1:通過統(tǒng)計存入和取出視頻編碼數(shù)據(jù)量得到緩存區(qū)剩余容量,緩存區(qū)是一塊預先分配的內存區(qū),由于車載DVR設備內存容量有限,緩存區(qū)的大小也就不能太大,一般分配可夠緩存I分鐘視頻數(shù)據(jù)的內存,比如10MB。當該緩存區(qū)存滿時,就會溢出,導致視頻數(shù)據(jù)丟失,所以需要時刻監(jiān)測緩存區(qū)剩余空間,當緩存區(qū)剩余容量達到預警值時,就啟動預警機制。并根據(jù)幀間編碼原理,對視頻編碼數(shù)據(jù)分成I巾貞、P幀和B幀三種類型,其中I幀是一張完整的圖片,而P幀和B幀分別是I幀前后幀差異的部分,假設每秒25幀畫面,則開始的第一幀是I幀,后續(xù)的24幀是P幀或者B幀,P幀只是記錄與前一個I幀的差異的那部分數(shù)據(jù),而B幀則記錄與前一個I幀和后一個I幀的差異部分,所以通常I幀數(shù)據(jù)量比較大,而P幀或B幀比較小,當剩余視頻編碼數(shù)據(jù)量的容量<第一閾值時,所述第一閾值為視頻編碼數(shù)據(jù)量的總容量的10%-30%。執(zhí)行步驟2,否則返回執(zhí)行步驟I ;
步驟2:自適應降低編碼速率,采用“加增乘減一AIMD"方法中的“乘減”方法快速減少視頻編碼數(shù)據(jù)量,所述步驟2中的新碼率計算公式為:新碼率=原始視頻編碼碼率X0.8?!俺藴p”可以快速減少視頻編碼程序生成的數(shù)據(jù)量,而“加增”則可以達到緩慢恢復數(shù)據(jù)量的目的。假設車載DVR系統(tǒng)默認的碼率是500kbitps,且對于“乘減”的基礎倍數(shù)是0.8 ;執(zhí)行步驟3,
步驟3:判斷P幀和B幀是否合并,若是,則執(zhí)行步驟5,否則,執(zhí)行步驟4 ;
步驟4:合并連續(xù)的多幀P幀或B幀,一次性寫入緩存區(qū);
步驟5:再次判斷剩余視頻編碼數(shù)據(jù)量的容量是否<第一閾值,若是則返回執(zhí)行步驟2,否則執(zhí)行步驟6 ;具體地,當剩余空間< 10%時候,設開始的碼率為500kbitps,經(jīng)過步驟I至步驟4的時候,此時新碼率=500400X0.8=400kbitps,到步驟5循環(huán)的判斷時間片單位為10秒,也就是說,下一時間片時刻,10秒鐘后,再次執(zhí)行步驟5,如果空間不足的預警還未解除,也就是說剩余空間還是< 10%,繼續(xù)返回執(zhí)行步驟2,新碼率=400X0.8=320kbitps ;以此類推,直至空間不足預警解除。
[0015]步驟6:判斷剩余視頻編碼數(shù)據(jù)量的容量是否>第二閾值,所述第二閾值為視頻編碼數(shù)據(jù)量的總容量的30%-50%,若是,則執(zhí)行步驟7,否則返回執(zhí)行步驟5 ;
步驟7:判斷碼率是否 > 第三閾值,所述第三閾值為500kitps,若是,則執(zhí)行步驟9,否則執(zhí)行步驟8 ;
步驟8:自適應恢復編碼速率,采用“加增乘減一AIMD"方法中的“加增”,而“加增”的基數(shù)是50kbitps,方法緩慢恢復視頻編碼數(shù)據(jù)量,所述步驟8中的新碼率計算公式為:新碼率=原始視頻編碼碼率+50 kbitps。執(zhí)行步驟9;
步驟9:判斷P幀和B幀是否已經(jīng)解除了合并寫入,若是,則返回執(zhí)行步驟6,否則執(zhí)行步驟10,
步驟10:解除幀合并,恢復單幀寫入,只將一幀的頻編碼數(shù)據(jù)存入這一小塊內存中并寫入到SD卡,也就是將P幀B幀合并寫入。視頻數(shù)據(jù)是由一幀幀的圖片組成,根據(jù)幀間編碼原理,視頻數(shù)據(jù)可以分成I幀、P幀和B幀三種類型。其中I幀是一張完整的圖片,而P幀和B幀只是前后幀差異的部分,所以I幀數(shù)據(jù)量較大,而P幀和B幀數(shù)據(jù)量較小。為保證視頻能及時保存到SD卡中,防止系統(tǒng)斷電時丟失,通常都是按幀寫入,但這種方式會頻繁對SD卡執(zhí)行寫操作,耗時較大。而合并多幀數(shù)據(jù)量較小的P幀或B幀,一次性寫入,則可以減少SD卡的寫操作,節(jié)省寫入耗時,相對提高SD卡的寫入效率。因為合并多幀是指將連續(xù)的幾幀畫面的數(shù)據(jù)存入一小塊內存中,并將這一小塊內存的數(shù)據(jù)一次性寫入到SD卡中;而解除就是指一次性只將一幀的數(shù)據(jù)存入這一小塊內存中并寫入到SD卡。
[0016]盡管結合優(yōu)選實施方案具體展示和介紹了本發(fā)明,但所屬領域的技術人員應該明白,在不脫離所附權利要求書所限定的本發(fā)明的精神和范圍內,在形式上和細節(jié)上可以對本發(fā)明做出各種變化,均為本發(fā)明的保護范圍。
【權利要求】
1.一種SD卡保存視頻時避免數(shù)據(jù)丟失的方法,其特征在于:包括以下步驟: 步驟1:通過統(tǒng)計存入和取出視頻編碼數(shù)據(jù)量得到緩存區(qū)剩余容量,并根據(jù)幀間編碼原理,對視頻編碼數(shù)據(jù)分成I幀、P幀和B幀三種類型,其中I幀是一張完整的圖片,而P幀和B幀分別是I幀前后幀差異的部分,當剩余視頻編碼數(shù)據(jù)量的容量<第一閾值時,執(zhí)行步驟2,否則返回執(zhí)行步驟I ; 步驟2:自適應降低編碼速率,采用“加增乘減一AIMD"方法中的“乘減”方法快速減少視頻編碼數(shù)據(jù)量,執(zhí)行步驟3, 步驟3:判斷P幀和B幀是否合并,若是,則執(zhí)行步驟5,否則,執(zhí)行步驟4 ; 步驟4:合并連續(xù)的多幀P幀或B幀,一次性寫入緩存區(qū); 步驟5:再次判斷剩余視頻編碼數(shù)據(jù)量的容量是否<第一閾值,若是則返回執(zhí)行步驟2,否則執(zhí)行步驟6; 步驟6:判斷剩余視頻編碼數(shù)據(jù)量的容量是否>第二閾值,若是,則執(zhí)行步驟7,否則返回執(zhí)行步驟5 ; 步驟7:判斷碼率是否>第三閾值,若是,則執(zhí)行步驟9,否則執(zhí)行步驟8 ; 步驟8:自適應恢復編碼速率,采用“加增乘減一AIMD”方法中的“加增”方法緩慢恢復視頻編碼數(shù)據(jù)量,執(zhí)行步驟9 ; 步驟9:判斷P幀和B幀是否已經(jīng)解除了合并寫入,若是,則返回執(zhí)行步驟6,否則執(zhí)行步驟10, 步驟10:解除幀合并,恢復單幀寫入,只將一幀的頻編碼數(shù)據(jù)存入這一小塊內存中并寫入到SD卡。
2.根據(jù)權利要求1所述的一種SD卡保存視頻時避免數(shù)據(jù)丟失的方法,其特征在于:所述第一閾值為視頻編碼數(shù)據(jù)量的總容量的10%-30%。
3.根據(jù)權利要求1所述的一種SD卡保存視頻時避免數(shù)據(jù)丟失的方法,其特征在于:所述第二閾值為視頻編碼數(shù)據(jù)量的總容量的30%-50%。
4.根據(jù)權利要求1所述的一種SD卡保存視頻時避免數(shù)據(jù)丟失的方法,其特征在于:所述步驟2中的新碼率計算公式為:新碼率=原始視頻編碼碼率X0.8。
5.根據(jù)權利要求1所述的一種SD卡保存視頻時避免數(shù)據(jù)丟失的方法,其特征在于:所述步驟8中的新碼率計算公式為:新碼率=原始視頻編碼碼率+50 kbitps。
【文檔編號】H04N19/15GK104301648SQ201410580237
【公開日】2015年1月21日 申請日期:2014年10月27日 優(yōu)先權日:2014年10月27日
【發(fā)明者】洪濤, 許振坪, 郭亞松, 林德輝, 唐磊 申請人:廈門雅迅網(wǎng)絡股份有限公司