專利名稱:編解碼處理器在無線視頻傳輸過程中碼率控制的方法
技術領域:
本發(fā)明涉及無線視頻傳輸領域,特別是涉及改進編解碼處理器在無線視頻傳輸過程中碼率控制的方法。
背景技術:
隨著3G (3rd_Generation,第三代移動通信技術)技術的日漸成熟和網絡的普及,隨時隨地的查看視頻圖像成為一種趨勢,視頻監(jiān)控業(yè)務也由傳統(tǒng)的服務于安防行業(yè),逐漸的發(fā)展為面向大眾的信息化服務,并隨著圖像處理技術的提高,其應用領域也越來越廣泛,逐漸滲透到教育、政府、娛樂、醫(yī)療、運動等領域。而3G技術的逐 漸成熟,3G網絡建設的不斷完善,其能提供高達3. IMbit/s的速率,完全能夠滿足高質量視頻的需求。由于原始視頻信號數據量巨大,必須經過壓縮才能在無線網絡中傳輸。而無線信道具有時變及網絡帶寬資源有限等特點,使得在3G網絡中傳輸的壓縮視頻流具有不同的特點。ITU-T (國際電信聯(lián)盟電信標準化部門)和ISO (國際標準化組織)聯(lián)合開發(fā)的最新視頻編碼標準H. 264/AVC由于具有壓縮效率高、網絡適應能力強等特點,使其成為3GPP(第三代合作伙伴計劃)/3GPP2 (第三代合作伙伴計劃2)支持的常用視頻編碼標準。在現(xiàn)有技術中,以深圳市海思半導體有限公司的Hi3511/Hi3512芯片為例,Hi3511/Hi3512所提供的編碼函數庫不能對編碼后的碼流的碼率控制進行有效的控制。通過該編碼函數庫能降低編碼后碼流的幀率,但是每一個視頻幀的長度增加,實際視頻碼流的碼率沒有改變。如果利用傳統(tǒng)的方式直接從原始視頻數據(VI)來控制幀率會同時影響到錄像視頻碼流的質量。
發(fā)明內容
本發(fā)明所要解決的技術問題是提供一種編解碼處理器在無線視頻傳輸過程中碼率控制的方法,該處理方法與已有的技術方法相比,能夠在完成錄像碼流碼率不改變的同時,有效的動態(tài)變換網絡傳輸碼流的碼率,使無線網絡的帶寬得到最有效的利用,可有效地提高無線視頻傳輸的流暢度。本發(fā)明所采用的技術方案是編解碼處理器在無線視頻傳輸過程中碼率控制的方法,包括以下步驟
51)通過視頻捕獲得到原始的視頻輸入數據,將視頻輸入數據綁定到相對應的視頻輸出數據;
52)取出對應通道的視頻數據進行視頻編碼后視頻錄像;
53)取出對應通道的視頻數據進行視頻編碼后輸出到視頻網絡傳輸端;
54)在視頻網絡傳輸端,動態(tài)調節(jié)網絡傳輸原始視頻數據的幀率,來適應傳輸網絡的帶寬。所述的方法,步驟S2所述的視頻數據是視頻輸入數據。所述的方法,步驟S3所述的視頻數據是視頻輸出數據。
所述的方法,步驟S4動態(tài)調節(jié)網絡傳輸原始視頻數據的幀率的方法包括
A)在視頻網絡傳輸端傳輸端建立循環(huán)緩沖區(qū);
B)將編碼好的視頻數據通過循環(huán)緩沖區(qū)進行發(fā)送;
C)根據循環(huán)緩沖區(qū)的數據得到當前網絡延時的時間值;
D)當網絡延時的時間值大于設定的最大延時值時,減少視頻輸出數據的幀率;當網絡延時的時間值小于設定的最大延時值時,當前視頻碼率又沒有達到最大幀率值時,增加視頻輸出數據的幀率。 所述的方法,步驟C得到網絡延時的時間值的方法包括
獲取當前緩沖區(qū)中的視頻巾貞的巾貞數FrameCountInBuf,獲取當前視頻輸出數據的巾貞率FrameRate,當前的網絡延時的時間值T按下式計算
T = FrameCountInBuf / FrameRate0所述的方法,步驟D的最大延時值大于等于I秒,最大幀率值為25。所述的方法,步驟D改變幀率的方法包括在原始幀率的基礎上,平均的增加或者減少所有正在網絡傳輸的視頻通道的原始視頻數據的幀數。所述的方法,增加或減少幀數的方法包括在一秒鐘內丟掉或保留一些視幀,其幀序號為
當FrameRate>=13時丟掉的巾貞序號為i*[25/ (25-FrameRate) ], i的取值為1、2......
(25-FramRate)的順序值;
當 FrameRate〈13 時保留的巾貞序號為 i* [25/FrameRate) ], i 的取值為 1、2......FramRate
的順序值;
其中FrameRate為需要設定的巾貞率,如果所得巾貞序號值大于25,則取序號為25的巾貞,方括號表不取整。所述的方法,步驟S2和S3中視頻編碼的方法為H. 264。相對已有技術方法,本發(fā)明具有以下優(yōu)點能改善Hi3511/Hi3512編碼后改變視頻數據的幀率,但是無法有效控制視頻碼率的情況,可以在不影響錄像碼流的視頻質量的情況下,使視頻傳輸的碼率得到有效控制,以保持無線視頻傳輸的流暢度。
圖I是視頻碼流傳輸示意圖。圖2是無線網絡傳輸情況判斷工作流程示意圖。圖3是幀率改變工作流程示意圖。
具體實施例方式本發(fā)明的實施例根據3G網絡的特點闡述了 Hi3511/Hi3512 H. 264編解碼處理器在無線視頻傳輸過程中,實現(xiàn)了一種基于幀率來動態(tài)改變碼率的控制方法。本發(fā)明采用的這種分片方法,在保證編碼效率的同時,相對于簡單的固定分片方法來說,能有效地提高信道資源的利用率,提高了視頻編碼的質量。Hi3511/Hi3512上實現(xiàn)Dl、CIF格式的編碼并且將編碼碼流進行傳輸和錄像的基本流程是,程序將攝入原始的視頻數據(VI)首先進行編碼,產生主碼流和子碼流,再由主碼流輸出到錄像文件,子碼流輸出到網絡傳輸,另外將原始視頻數據(VI)綁定到視頻輸出數據(VO)輸出到電視墻或者顯示設備用于本地預覽。作為無線視頻設備其中一個重要的部分就是,獲取網絡傳輸編碼碼流并且能有效的控制其傳輸碼率來控制實時視頻的流暢度。而Hi3511/Hi3512所提供的編碼函數庫不能對編碼后的碼流的碼率控制進行有效的控制,通過該編碼函數庫能降低編碼后碼流的幀率,但是每一個視頻幀的長度會增加,實際視頻碼流的碼率沒有改變,如果利用傳統(tǒng)的方式直接從原始視頻數據(VI)來控制幀率會同時影響到錄像視頻碼流的質量。針對以上情況,本發(fā)明采用以下具體實施方式
來解決以上問題
本發(fā)明的步驟如下
I)首先經過Hi3511/Hi3512的視頻捕獲驅動得到原始的視頻輸入(VI)數據。2)原始視頻輸入數據(VI)綁定到相對應的視頻輸出通道(VO)。3)取出對應通道的視頻輸出數據(VO)作為網傳視頻的原始數據,輸出到對應的編碼通道進行H. 264格式的視頻編碼,得到的編碼碼流用作網絡視頻傳輸。4)將視頻輸入數據(VI)作為錄像視頻的原始數據,輸出到對應的編碼通道進行
H.264的視頻編碼,得到的編碼碼流用作視頻錄像的碼流。5)在視頻網絡傳輸端,根據情況動態(tài)調節(jié)網絡傳輸原始視頻數據的幀率,來改變網絡傳輸端視頻數據的碼率,以適應無線網絡的帶寬,提高無線視頻傳輸的流暢度。此外,在所述步驟5)中,動態(tài)調節(jié)網絡傳輸的原始視頻數據的幀率包含以下子步驟
Cl首先在視頻數據發(fā)送端建立循環(huán)緩沖區(qū)
C2編碼好的視頻數據從緩沖區(qū)尾加入,發(fā)送的視頻數據從緩沖區(qū)頭取出 C3用緩沖區(qū)中剩余的幀數除以當前幀率的值得到當前延時的時間值(T)
C4當延時時間(T)大于設定的最大延時值(Tmax)時,減少視頻輸出數據(VO)的幀率,當延時時間(T)小于設定的最大延時值(Tmax),當前視頻碼率又沒有達到最大幀率值時,增加視頻輸出數據(VO)的幀率。C5視頻輸出數據(VO)的幀率改變的方法為,原始幀率為每秒25幀視頻數據,每次根據網絡傳輸緩沖區(qū)中的視頻幀數,增加減少原始視頻數據的幀數。下面結合附圖和實施例進一步詳述本發(fā)明。如圖I所示視頻流的具體工作流程為
001)經過Hi3511/Hi3512的視頻捕獲驅動得到原始的視頻輸入數據(VI),將原始視頻輸入數據(VI)綁定到對應的視頻輸出數據(VO)。002)將原始的視頻輸入數據(VI),輸出到對應的編碼通道進行H. 264的編碼,得到的編碼碼流用作視頻錄像的碼流。003)將原始的視頻輸出數據(VO),輸出到對應的編碼通道進行H. 264的編碼,得到的編碼碼流用作網絡視頻傳輸。如圖2所示無線網絡傳輸情況判斷具體工作流程為
004)首先在視頻碼流數據發(fā)送端建立循環(huán)緩沖區(qū)Buffer,緩沖區(qū)的頭指針為Buffer [head],緩沖區(qū)的尾指針為 Buffer [tail]。005)編碼好的視頻數據幀從緩沖區(qū)尾Buffer [tail]加入到緩沖區(qū)中,發(fā)送的視頻數據巾貞從緩沖區(qū)頭Buffer [head]取出。006)獲取當前緩沖區(qū)中的視頻巾貞的巾貞數FrameCountInBuf,獲取當前視頻輸出數據(VO)的幀率,即每秒鐘獲取的視頻數據的幀數FrameRate,當前的網絡延時T情況就可以得到T = FrameCountlnBuf/FrameRate。其中巾貞率不等于O,但是可以小于I比如等于1/2等,是指兩秒中獲取一幀視頻數據,幀率的最大值是25,指一秒鐘獲取25幀視頻數據。007)當延時時間T大于設定的最大延時值Tmax (大于等于I秒,可設置)時,減少從視頻輸出數據VO中獲取視頻數據的幀率,當延時時間T小于設定的最大延時值Tmax,當前視頻幀率又沒有達到最大幀率值25時,增加視頻輸出數據VO的幀率來有效利用帶寬。如圖3所示網絡傳輸視頻碼流原始幀率改變具體工作流程為
008)首先滿幀率為25幀,即每秒鐘獲得25幀視頻數據,平均40毫秒獲取一幀視頻數據,將獲取的視頻數據存放在VoFrameBuffer (即循環(huán)緩沖區(qū))中?!?br>
009 )當前要設置的幀率為FrameRate,其中FrameRate〈=25,因此每秒鐘需要取得的巾貞數為FrameRate,當FrameRate>=13時需要丟掉的巾貞數為25-FrameRate巾貞,當FrameRate<13時要保留的巾貞數為FrameRate中貞。010)當FrameRate>=13時要均勻的丟掉25-FrameRate巾貞,因此一秒鐘內丟掉的視頻數據的巾貞序號等于i*[25/(25-FrameRate) ], i的取值為1、2、···> (25-FramRate);當FrameRate〈13時保留的巾貞數為FrameRate巾貞,保留視頻數據的巾貞序號等于i* [25/FrameRate], i的取值為I、2、…、FramRate。當公式算出的序號值大于25時取序號25,其中FrameRate不等于25,當FrameRate等于25時為滿巾貞率不需要丟掉數據。上述式子中的方括號表不取整。減少幀的具體過程如下例如當幀率為25,要設置的幀率為13,因為13>12,因此
要將 I* [25/ (25-13) ]=2,2* [25/ (25-13) ] =4、3* [25/ (25-13) ] =6......12* [25/ (25-13) ] =24
序號的巾貞丟棄,只傳輸剩下的序號為1、3、5、7、…、25的中貞。增加幀的具體過程如下例如當幀率為6,要設置的幀率為8,當前6幀按照FrameRate<13時為i* [25/FrameRate]的規(guī)貝丨J,傳輸的保留巾貞序號為4、8、12、16、20、24。設置的幀率為8幀,則按傳輸規(guī)則保留的幀序號為1*[25/8]=3,2*[25/8]=6,……8*[25/8]=24。011)最后把剩下的視頻數據幀輸入到編碼器中編碼,就可以有效的改變視頻數據的幀率和碼率。
權利要求
1.編解碼處理器在無線視頻傳輸過程中碼率控制的方法,其特征在于包括以下步驟 51)通過視頻捕獲得到原始的視頻輸入數據,將視頻輸入數據綁定到相對應的視頻輸出數據; 52)取出對應通道的視頻數據進行視頻編碼后視頻錄像; 53)取出對應通道的視頻數據進行視頻編碼后輸出到視頻網絡傳輸端; 54)在視頻網絡傳輸端,動態(tài)調節(jié)網絡傳輸原始視頻數據的幀率,來適應傳輸網絡的帶寬。
2.根據權利要求I所述的方法,其特征在于步驟S2所述的視頻數據是視頻輸入數據。
3.根據權利要求I所述的方法,其特征在于步驟S3所述的視頻數據是視頻輸出數據。
4.根據權利要求I所述的方法,其特征在于,步驟S4動態(tài)調節(jié)網絡傳輸原始視頻數據的幀率的方法包括 A)在視頻網絡傳輸端傳輸端建立循環(huán)緩沖區(qū); B)將編碼好的視頻數據通過循環(huán)緩沖區(qū)進行發(fā)送; C)根據循環(huán)緩沖區(qū)的數據得到當前網絡延時的時間值; D)當網絡延時的時間值大于設定的最大延時值時,減少視頻輸出數據的幀率;當網絡延時的時間值小于設定的最大延時值時,當前視頻碼率又沒有達到最大幀率值時,增加視頻輸出數據的幀率。
5.根據權利要求4所述的方法,其特征在于,步驟C得到網絡延時的時間值的方法包括 獲取當前緩沖區(qū)中的視頻巾貞的巾貞數FrameCountInBuf,獲取當前視頻輸出數據的巾貞率FrameRate,當前的網絡延時的時間值T按下式計算T = FrameCountInBuf / FrameRate0
6.根據權利要求4所述的方法,其特征在于步驟D的最大延時值大于等于I秒,最大幀率值為25。
7.根據權利要求4所述的方法,其特征在于,步驟D改變幀率的方法包括在原始幀率的基礎上,平均的增加或者減少所有正在網絡傳輸的視頻通道的原始視頻數據的幀數。
8.根據權利要求7所述的方法,其特征在于,增加或減少幀數的方法包括在一秒鐘內丟掉或保留一些視幀,其幀序號為 當FrameRate>=13時丟掉的巾貞序號為i* [25/(25-FrameRate) ], i的取值為1、2......(25-FramRate)的順序值; 當 FrameRate〈13 時保留的巾貞序號為 i* [25/FrameRate) ], i 的取值為 1、2......FramRate的順序值; 其中FrameRate為需要設定的巾貞率,如果所得巾貞序號值大于25,則取序號為25的巾貞,方括號表不取整。
9.根據權利要求I 8中任一項所述的方法,其特征在于步驟S2和S3中視頻編碼的方法為H. 264。
全文摘要
本發(fā)明提供了一種編解碼處理器在無線視頻傳輸過程中碼率控制的方法,其包括以下步驟S1)通過視頻捕獲得到原始的視頻輸入數據,將視頻輸入數據綁定到相對應的視頻輸出數據;S2)取出對應通道的視頻數據進行視頻編碼后視頻錄像;S3)取出對應通道的視頻數據進行視頻編碼后輸出到視頻網絡傳輸端;S4)在視頻網絡傳輸端,動態(tài)調節(jié)網絡傳輸原始視頻數據的幀率,來適應傳輸網絡的帶寬。該處理方法與已有的技術方法相比,能夠在完成錄像碼流碼率不改變的同時,有效的動態(tài)變換網絡傳輸碼流的碼率,使無線網絡的帶寬得到最有效的利用,可有效地提高無線視頻傳輸的流暢度。
文檔編號H04N7/26GK102905128SQ20121032887
公開日2013年1月30日 申請日期2012年9月7日 優(yōu)先權日2012年9月7日
發(fā)明者黃瑩 申請人:武漢長江通信產業(yè)集團股份有限公司