999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

H.264 JM模型中丟包算法的研究及改進

2011-08-09 05:04:00唐貴進朱秀昌
電視技術 2011年13期
關鍵詞:實驗模型

唐貴進,朱秀昌

(南京郵電大學 江蘇省圖像處理與圖像通信重點實驗室,江蘇 南京 210003)

責任編輯:哈宏疆

0 引言

隨著通信技術的不斷發展,現有網絡的帶寬和傳輸質量都得到了很大的提高,然而丟包問題依然是通信網絡研究領域中不可避免的問題[1-2]。一般來說,當數據包在網絡上傳輸時,發生丟包的原因大致有兩個:擁塞丟包與無線鏈路差錯丟包。前者發生的主要原因是網絡上數據傳輸量過大,導致網絡設備傳送處理不及時,使得設備隊列緩沖區溢出而丟包。這往往造成突發丟包(即連續丟包)。后者的發生又大致分為兩種情況,一種是受隨機差錯(如高斯白噪聲)的影響從而造成隨機丟包,另一種則是由于移動信號的多徑和快衰落等從而造成連續丟包。

H.264是國際電信聯盟ITU-T和國際標準化組織ISO聯合開發的新一代視頻壓縮編碼標準,JM(jointmod?el)[3]是其官方測試源代碼,它實現了H.264的所有特性。H.264碼流文件有兩種格式,分別為附錄B格式和RTP打包格式,分別用于模擬數據存儲在介質(如DVD光盤)上和網絡傳輸環境中。對于前者,一般不必考慮數據丟失,而對于后者,由于網絡的不確定性,往往有數據包丟失[4-6]。為了研究丟包對重建視頻質量的影響,從JM13.0模型開始,增加了名稱為rtp_loss的丟包工具,可以對RTP打包格式的H.264碼流進行丟包。然而,本文在模擬丟包時發現,此丟包工具存在如下3個問題:1)實際的丟包率與所設定的預期值經常會有偏差,且偏差在百分之十以上,當RTP數據包較少時,偏差將更為明顯;2)只能模擬隨機丟包,不能模擬突發丟包;3)在丟包率不變的情況下,對同一個碼流進行多次丟包實驗,則每次實驗丟棄包的序號總是一樣的,達不到隨機的效果。本文將對以上3個問題進行分析并提出改進方法。

1 JM模型中的丟包算法

1.1 RTP封裝及寫入文件的格式

JM模型中對網絡抽象層單元(Net Abstract Layer Unit,NALU)的RTP封裝方案稱為“簡單包”方案(即直接將一個NALU放進一個RTP包),而沒有采用復雜的RFC3984[7]的方案(依據RFC3984,可以將多個NALU放進一個RTP包或者將一個NALU拆開放進多個RTP包中)。對于RTP包,采用RFC3550【8】格式封裝,具體如圖1所示。

圖1 把一個NALU封裝進一個RTP包

對于已經封裝好的RTP包,JM中對其又進行了再次封裝(這里將此封裝樣式稱為寫文件包),然后寫入文件中。此處再次封裝的格式為(見圖2):先寫4 byte的包長,之后是4 byte的時間戳,但這個時間戳是固定值,恒為-1(即0XFF FF FF FF),最后是數據體(即RTP包)。每個RTP包寫入文件的封裝依此類推。

圖2 把RTP包再次封裝

1.2 丟包算法流程及問題分析

1.2.1 丟包算法流程

在JM的丟包算法中,包含3個必需參數和1個可選參數,其中3個必需參數為:參數1表示H.264的碼流文件,參數2表示生成的有丟包的H.264文件,參數3表示設定的丟包率,1個可選參數表示從碼流文件的第多少個包后可以開始丟包,即一開始保留多少包不允許丟棄。具體流程如圖3所示。

1.2.2 問題分析

對于實際的丟包率與所設定的預期值經常會有偏差問題,從圖3中可以看出,JM模型的丟包算法是基于大數定律的,其內容就是在試驗不變的條件下,重復試驗多次,隨機事件的頻率近似于它的概率。結合此算法,就是丟包的數目應該等于設定的丟包率。而大數定理的基本條件就是實驗要重復多次,也就是說數據包的數目要盡可能的多,一旦H.264碼流文件中RTP包數目較少,則實際的丟包數往往與設定的不能一致。RTP包的數目越少,這種不一致的現象表現得越明顯。

對于不能模擬突發丟包問題則比較簡單,從圖3的流程中可以看出,此算法中沒有此功能。

至于在相同丟包率條件下對同一個碼流進行多次丟包時丟棄包的序號相同的問題可以這樣解釋:在圖3中有一個“產生一個0~100之間隨機數”的功能模塊,其在具體代碼實現過程中直接調用的rand()函數。而rand()函數在生成隨機數序列時,需要一個稱為“隨機數種子”的參數,如果每次實驗時這個參數值一樣,則每次實驗產生的隨機數序列也將一樣,反之,則不一樣。如果未設定隨機數種子,rand()函數在調用時會自動設隨機數種子為1,而JM丟包算法的代碼中恰恰沒有設定隨機數種子,因此,每次實驗時種子參數值都相同,從而導致在丟包率不變的情況下,對同一個碼流做多次丟包實驗,其每次產生的丟包序列的序號將完全一樣。

鑒于以上分析,提出了本文對解決這3個問題的改進算法。

2 改進的算法

針對前面所述3個問題,筆者提出了解決辦法,現分別敘述之:

1)對于丟包數不準確,采用了先計算出丟包數,再嚴格按照丟包數隨機丟包的方法。具體步驟如下:

步驟(1):首先讀取H.264碼流文件,統計其寫文件包的總數N總。

步驟(2):根據設定的丟包率RLS和N總,確定丟包數N L。

步驟(3):產生一個Nstart-N總之間的隨機數ilost,并置序號為ilost的寫文件包的標志位為“lost”標志,其中

步驟(4):重復步驟3)的過程(如果新產生的隨機數與先前產生的隨機數相同或者相近,則重新產生隨機數,以避免同一個數據包要被丟棄兩次以及使丟包的序號看起來更加的隨機),直至共設置了NL個“lost”標志位。

步驟(5):依次讀取H.264碼流文件的寫文件包,如果此包的標志位為“lost”,則丟棄該包,否則將該包寫入到丟包的H.264碼流文件中,直至文件讀取結束。

2)對于突發丟包,采用Gilbert-Elliott模型[9](簡稱GE模型,見圖4)生成。

在GE模型中,PG表示當傳輸通道處于“好”(G)狀態時發生數據包遺失的概率;PB表示當傳輸通道處于“壞”(B)狀態時發生數據包遺失的概率;PGB代表傳輸通道的狀態從好變成壞的概率;PBG代表傳輸通道的狀態從壞變成好的概率。在穩態的情形下,傳輸通道處于“好”的狀態和“壞”的狀態的概率分別為

因此,對于GE模型而言,整體的平均丟包率為

3)對于每次實驗結果都一致的問題,采取給rand函數每次實驗時賦不同隨機數種子的方法。這個賦值工作在程序中借助srand函數完成,調用srand函數將會把其參數值傳遞給rand函數的種子。而為了讓每次運行程序的種子值是不同的,可以用time函數的返回值作為srand函數的參數,time函數返回從1970年1月1日零時零分零秒到目前為止(即程序執行時)所經過的時間,單位為秒。因為每次運行程序的時間是不同的,從而保證了每次實驗時種子值是不同的,也就保證了每次實驗生成的丟包序號的不一樣。

3 實驗結果及分析

下面采用JM15.0對視頻foreman.cif進行編碼,編碼結構為IPPP…,GoP大小為15,QPISlice和QPPSlice均為28,RTP打包方式,每個包長設為100 byte。具體測得的實際丟包率如表1所示。

表1 不同幀數、不同丟包率下本文算法與原算法的實際丟包率

根據表1的數據,計算出兩個算法的實際丟包率RLA與設定丟包率RLS的差值RΔ,計算公式為

將差值RΔ圖形化表示,結果如圖5所示。

由圖4可見,JM中算法的實際丟包率與設定丟包率之間的差值較大,而且當幀數較少(即相應的編碼生成的數據包較少)時,差值往往更大。而本文算法的差值則遠小于原來的算法,差值絕大多數都圍繞在0的附近。

接下來測試突發丟包模塊以及每次實驗所得序列是否不同。以100幀foreman.cif碼流為測試對象,設定丟包率為1%。丟包結果如表2所示。

表2 不同實驗下本文算法與原算法的丟包序列

從表2中可以看出,本文的突發丟包模塊能夠正確地模擬連續的丟包。同時,原算法每次實驗時丟包序列都一樣,而本文算法,不管是隨機丟包還是突發丟包,每次實驗結果都不一樣,從而達到了“隨機”的目的。

4 小結

盡管網絡通信技術發展迅猛,但是數據丟包始終是其無法回避的問題。本文對H.264建議的參考軟件JM模型中丟包算法進行了研究,分析了其存在的問題,并提出了相應的解決辦法。實驗結果表明,本文的算法能夠比較精確地進行隨機丟包和突發丟包,并具有隨機的效果。

[1]李秀敏,王立,李桂苓.數字電視傳送流丟包和丟包率研究[J].電視技術,2005,29(6):43-45.

[2]盧劉明,陸肖元.基于網絡丟包的網絡視頻質量評估[J].中國圖象圖形學報,2009,14(1):52-58.

[3]H.264/AVC Reference Software[EB/OL].[2010-06-01].http://iphome.hhi.de/suehring/tml/.

[4]LIN T-L,COSMAN P C,REIBMAN A R.Perceptual Impactof Bursty Versus Isolated Packet Losses in H.264 Compressed Video[C]//Proc.15th IEEE International Conference on Image Processing.[S.l.]:IEEE Press,2008:2780-2783.

[5]KANUMURI S,SUBRAMANIAN S G,COSMAN P C,et al.Predicting H.264 packetloss visibility using a generalized linear model[C]//IEEE International Conference on Image Processing,2006.[S.l.]:IEEE Press,2006:2245-2248.

[6]楊林濤,江昊,郭成城,等.基于Markov鏈Packet-Level的VANET差錯預測模型及性能預估[J].電子學報,2009,37(10):2333-2337.

[7]WENGER S,HANNUKSELA M M,STOCKHAMMER T,et al.RTP payload formatfor H.264 video:RFC3984[S].2005.

[8]SCHULZRINNE H,CASNER S,FREDERICK R,etal.RTP:A transport protocolforreal-time applications:RFC 3550[S].2003.

[9]EBERT J-P,WILLIG A.A gilbert-elliotbiterrormodeland the efficient use in packetlevelsimulation:TKN-99-002[R].Berlin:TKN,1999.

猜你喜歡
實驗模型
一半模型
記一次有趣的實驗
微型實驗里看“燃燒”
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
做個怪怪長實驗
3D打印中的模型分割與打包
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 青青操国产| 日韩国产精品无码一区二区三区| 激情無極限的亚洲一区免费| 久久一级电影| 久久夜夜视频| 国产精品内射视频| 九色视频一区| 伊人福利视频| 国产极品粉嫩小泬免费看| 18禁不卡免费网站| 亚洲午夜福利精品无码不卡| 日韩福利在线观看| 粉嫩国产白浆在线观看| 中文字幕在线视频免费| 午夜成人在线视频| 国产精品99一区不卡| 国产成人超碰无码| 香蕉视频国产精品人| 波多野结衣国产精品| 91精品人妻一区二区| 亚洲精品第一页不卡| 伊人91视频| 手机在线看片不卡中文字幕| 亚洲人成网站色7799在线播放| 亚洲综合香蕉| 亚洲香蕉在线| 91啪在线| 欧美精品色视频| 色婷婷色丁香| 毛片一区二区在线看| 精品久久高清| 久久精品aⅴ无码中文字幕| 亚洲欧美自拍一区| 91成人在线观看| 999国内精品久久免费视频| 亚洲天堂视频在线观看| 亚洲国产天堂久久综合| WWW丫丫国产成人精品| 2021国产v亚洲v天堂无码| 视频国产精品丝袜第一页| 狠狠ⅴ日韩v欧美v天堂| 91偷拍一区| 青青草一区| 成人午夜精品一级毛片| 成人午夜视频网站| 国产在线观看99| 欧美19综合中文字幕| 69视频国产| 国产激情无码一区二区APP| 小说 亚洲 无码 精品| 色综合a怡红院怡红院首页| 免费 国产 无码久久久| 2020久久国产综合精品swag| 精品一区二区三区视频免费观看| 永久免费精品视频| 亚洲狠狠婷婷综合久久久久| 国产在线视频欧美亚综合| 又黄又爽视频好爽视频| 成人永久免费A∨一级在线播放| 日韩欧美一区在线观看| 在线观看免费黄色网址| 亚洲男人天堂2018| a级免费视频| 网友自拍视频精品区| 巨熟乳波霸若妻中文观看免费| 国产电话自拍伊人| 91亚洲精选| 国产视频大全| 日本亚洲欧美在线| 国产丝袜精品| 亚洲无码高清免费视频亚洲| 天天综合天天综合| 中文字幕亚洲乱码熟女1区2区| 69av免费视频| 亚洲精品国偷自产在线91正片| 熟妇丰满人妻| 欧美劲爆第一页| 精品国产中文一级毛片在线看| 久久久久无码精品| 国产精品不卡永久免费| 波多野结衣亚洲一区| 一区二区三区精品视频在线观看|