2019亚洲日韩新视频_97精品在线观看_国产成人精品一区二区_91精品网站在线观看

線程池技術提高了智能視頻監控傳輸速率

來源:期刊VIP網所屬分類:應用電子技術時間:瀏覽:

  本篇科技職稱論文發表分析智能視頻監控系統中的網絡擁塞解決方案,隨著數字化智能化技術的發展,智能視頻監控系統被廣泛應用于各行各業,因智能視頻監控系統的數據均由網絡進行數據傳輸,這對網絡寬帶的數據傳輸能力提出了更高的要求,通過線程池技術解決現實中智能視頻監控系統中的網絡擁塞問題,是本篇科技職稱論文發表的重點。

  《應用科技》Applied Science and Technology(雙月刊)創刊于1974年,是工業和信息化部主管、哈爾濱工程大學主辦的學術期刊,國內外公開發行,郵發代號14-160。該刊集科學性、前沿性、實用性于一體,以高等院校、科研院所的研究人員為讀者對象。該刊依托高校辦刊的優勢,針對高校科研項目多、科技成果密集的特點,刊發大量的高水平、實用性強的科技論文。

應用科技

  借鑒TFRC擁塞控制模型原理,提出一種網絡擁塞自適應解決策略,按照該網絡擁塞解決策略的要求,結合網絡視頻流傳輸相關技術為系統后臺服務端設計了一個網絡擁塞處理模塊。該模塊通過接收端反饋回來的網絡狀況報告,制定出平滑的數據傳輸帶寬,系統根據該傳輸帶寬對數據發送模塊和視頻編碼模塊運作進行指導。

  關鍵詞:智能視頻監控;網絡擁塞;網絡自適應;TFRC

  近年來,伴隨技術的不斷進步,視頻監控系統在人們日常生活中的應用越來越廣泛。當前,視頻監控系統正朝著數字化、智能化方向發展,為用戶提供一個全面智能的安全防護解決方案尤為必要。各種報警傳感器和智能網絡攝像機地誕生為視頻監控系統的發展提供了基本保障。然而,這些設備大多是通過網絡進行數據傳輸,現有的網絡體系結構只能提供盡力而為的傳輸服務,缺乏服務質量保障,這對網絡帶寬需求量最大的視頻流傳輸產生了嚴重影響。如何在網絡環境下為大量的視頻流傳輸提供可靠保證,已成為網絡視頻研究的熱點問題。

  1視頻監控系統網絡擁塞控制解決方案

  本文提出的針對視頻監控系統的網絡擁塞解決方案設計如圖1所示。視頻監控系統主要由服務端和客戶端兩部分組成。

  服務端通過視頻信息采集模塊,讀取來自視頻源的信息。讀入視頻信息后,由視頻解碼模塊負責對視頻信息作分析處理,將原始視頻數據轉換成可以重新編碼的視頻信息。隨后根據網絡擁塞控制模塊制定的相關編碼參數,進行視頻編碼工作,生成適合于網絡傳輸的視頻數據,根據RTP協議格式要求把這些視頻數據連續發送給客戶端。傳輸過程中的差錯控制、傳輸速率控制由網絡擁塞處理模塊來實現。

  客戶端在接收到數據包信息后,將它們加入到一個緩沖區中,再調用解碼庫進行解碼。解碼后獲得的視頻信息通過視頻分析處理模塊進行移動偵測、人臉識別等圖像分析工作后,再顯示給用戶觀看或者保存起來。

  客戶端QoS監視模塊采集到的網絡信息,如包的丟失率、包延時時間及環路時間等,經處理計算后,根據RTCP協議格式要求傳送給服務端,由服務端的網絡擁塞處理模塊對這些信息進行處理、分析,進而保障服務端視頻編碼及數據傳輸的正常進行。實現視頻流自適應控制傳輸,為用戶提供一個可靠、穩定、良好的視頻觀看環境。

  2網絡擁塞控制模塊

  發送端的網絡擁塞控制模塊主要依照TFEC模型來設計,其工作原理如圖2所示。TFRC的穩態速率計算公式為:

  其中,s代表TCP報文大小,單位是字節;p代表丟失事件率,t0代表數據報文的超時時間,tRTT為數據報文的環路時間,b為一個應答所接收到的報文數數目(b規定為1)。通過式(1)就可以計算出一個傳輸數據流的穩態發送速率B(p)。

  發送端在準備需要發送的視頻信息后,將這些視頻信息按RTP協議要求打包,添加時間戳、狀態值,發送序號等一些網絡信息,接收端在收到這些視頻信息數據包后,除了解碼恢復出圖像信息外,還要提取出時間戳等信息,采用反饋控制法計算出包丟失率、環路時間、瓶頸帶寬等信息。這些網絡狀況信息交給接收端的網絡狀況反饋模塊,按照RTCP協議的要求打包傳輸給發送端。發送端根據這些反饋信息,依照網絡擁塞自適應控制模型,計算出當前的網絡帶寬,制定平滑的網絡數據傳輸速率調整方案,進行視頻編碼的相關參數調整,力求保證視頻服務質量。

  2.1視頻編碼調整

  視頻編碼調整的目的在于降低編碼碼率或是調整幀速,以適應當前網絡帶寬。本視頻監控系統采用H.263+和MJPEG4兩種編碼標準。它們比較適合于局域網內的視頻傳輸。

  2.2發送速率調整

  發送端自適應控制模塊根據網絡擁塞控制模塊提供的網絡狀況信息,將發送速率逐步地調整到期望速率,力求和實際網絡帶寬相匹配,保障視頻流網絡傳輸的正常進行。該過程是一個漸進過程,數據發送率不能發生大的跳變,否則對接收端的觀看效果影響很大。

  (1)客戶端瓶頸帶寬計算。

  如圖3所示,發送端在時間點為tTimestamp時向接收端發送了一個數據包,隨后在收到N個含有時間戳tTimestamp的數據包后,使用式(3)來計算瓶頸帶寬。

  其中,BnBw為網絡瓶頸帶寬值,Packet[i]為第i個數據包的大小,單位為Byte,tTimestamp為數據包發送時間戳,tRecv_ClientN為接收到第N個數據包的時間,tRecv_Client1為接收到第一個數據包的時間。

  使用式(2)計算出網絡的瓶頸帶寬BnBw可用作數據發送速率的上限值。以BnBw作為一個上限值,和TFRC算法計算出的帶寬值一起幫助制定發送速率,可以有效避免發送速率調整波動過大。

  (2)數據發送速率制定。由TFRC穩態速率公式(式1)可知,穩態發送速率B(p)是伴隨丟失事件率等參數的變化而改變的。但是擁塞控制模型并不是直接將B(p)值用以調整數據的發送速率。事實上,發送速率的調整應當是一個緩慢變化的過程,這樣可以避免引起大波動,影響到接收端視頻觀看的效果。數據發送速率可參照式(3)-(6)制定:

  Sendrate=B(p)(3)

  Sendrate=0.75×Sendrate+0.25×PreSendrate(4)

  Sendrate=min(Sendrate,BnBw)(5)

  PreSendrate=Sendrate(6)

  其中,B(p)為TFRC穩態速率計算公式中計算得出的網絡帶寬,Sendrate為數據的發送速率,PreSendrate為前一次的數據發送速率,BnBw為根據客戶端反饋計算得出的網絡瓶頸帶寬。參照TFRC模型,網絡視頻流的傳輸既能保證與TCP流的友好,又可以使數據傳輸速率較為平滑,為網絡視頻數據流的傳輸提供了良好保證。

  3客戶端緩沖

  數據從發送端到達接收端的過程中會遇到很多突發情況,雖然RTP協議為RTCP協議提供了一定的服務質量保證,但是包丟失和包失序的情況不可能消除,所以接收端必須有相應的一些策略來對丟失和包失序進行處理。本文設計的視頻監控系統解決該問題的做法是在數據被提交給上層處理之前,利用RTP數據包頭信息中的序列號對數據包進行重排,為此,在期望的數據包到達接收端之前,接收端將非期望數據包暫時保存于一個緩沖區中,然后不斷進行檢測,一旦需要的包全部到齊,則按順序提交給上層處理。對于緩沖區的使用,系統要面對的主要有兩個問題:緩沖區容量和緩沖區管理策略。

  3.1緩沖區容量

  將當前送往上層處理的數據包的序列號記為Sp,當前接收到的數據包的序列號記為Se。在出現失序時,Se>Sp+1;只有在Se=Sp+1 時,序列號等于Se的數據包才是上層期望得到的。如果在該序列號等于Se的數據包到達之前,就已經有N個包到達了接收端,那么緩沖區必須能夠容納下這N個包。假定每個數據包的平均長度是L,則要保存下這N個包所需的緩沖區的大小應該是N*L。緩沖區的實際大小記為Bs,很明顯,Bs不能夠僅僅是等于 N*L,因為如果N很大,則N*L將趨近于無窮大(在包丟失的情況下,N實際上等于無窮大)。如何確定下一個適當的Bs值,對于接收端的觀看效果影響是很大的。Bs值如果取得太小,則由于不同網路之間的延遲等情況而造成的遲到包不能被保存下來,這會導致大量的數據包在接收端被丟棄掉。若Bs值太大,則計算機需要分配很大的緩沖區,造成資源浪費。況且Bs越大,聲音和圖像的延遲也會越大,并造成后面的數據包由于得不到及時處理而被丟棄。

  3.2緩沖區容量調整算法

  本文設計的視頻監控系統采用一種反饋方式來動態調整緩沖區容量。該算法經實踐檢驗,能有效地解決視頻流在網絡傳輸過程中的包失序現象。算法具體流程描述如下:

  (1)首先設定兩個參數值,緩沖區最大值Nmax,緩沖區最小值Nmin。

  (2)緩沖區大小的初始值設定為n,且要求n=Nmin。

  (3)如果連續3次因為緩沖區太小,后繼到達的期望數據包被丟失,那么要求緩沖區增加一個單元(這里的單元含義是:根據所有數據分組而計算出來的平均長度),即n=n+l;如果n已經增加達到設定的最大值Nmax,則保持n=Nmax,不再增加。

  (4)如果連續3次,期望數據包Se和當前正在處理的數據包之間的間隔(也稱為Se的失序程度)都小于當前的緩沖區容量n,那么要求緩沖區容量減少掉一個單元,即n=n-1,;如果n減小到最小值Nmin,保持n=Nmin不再減少。

  根據實際測試中的經驗,通常Nmin值設定為2或3。Nmax的值一般不能太大,設置為10左右比較合理,根據服務器的硬件配置可作適當調整。

  接收端緩沖區可以被理解成一個擁有上限值和下限值的滑動窗口,按照當前網絡狀態的變化,該滑動窗口做自適應的放大、縮小。

  4接收端圖像分析處理

  借助于數字視頻處理等技術,視頻監控系統的發展正朝著智能化方向發展,本文設計的視頻監控系統借助于OpenCV庫,實現了對視頻流的目標跟蹤和人臉檢測。

  接收端啟動后,若成功與發送端建立連接,將開啟3個主要線程用于視頻的接收、顯示、圖像分析、視頻保存。

  第一個線程,即數據接收線程。主要負責網絡通信,在接收到發送端傳來的數據后,這些數據將全部加入到緩沖區,隨后按數據包序號有序地傳送給圖像解碼/顯示線程,同時還承擔網絡狀況計算和反饋的功能。

  第二個線程,即圖像解碼/顯示線程。主要功能是對視頻數據進行解碼,得到可以用于編輯、顯示的視頻數據。若用戶只要求觀看發送端傳來的原始視頻數據,圖像解碼/顯示線程就可以直接滿足其需要,另外一個圖像處理線程將處于掛起狀態,以節約計算機資源。

  第三個線程,即圖像處理線程。針對視頻流進行圖像分析,提供諸如人臉識別、目標跟蹤等職能輔助功能,其核心是利用數字圖像分析技術來對圖像進行分析、處理,OpenCV是一個很好的開源視覺庫,支持VC++,經常重新分裝的OpenCV庫頁能支持C#等其它編程語言。OpenCV自身就提供了豐富的圖像處理函數,開發人員也可以根據自己的要求,自行開發新的功能。OpenCV具有通用的視頻/圖像載入、保存、獲取模塊,經OpenCV處理后的視頻、圖像可以按照多種編碼格式保存。

  5結語

  本文關于視頻監控系統的研究從搭建一個最簡單的視頻監控平臺開始,最初的開發目標只要求能滿足同時接收多路攝像機視頻流,并顯示給用戶觀看即可。隨著開發的逐步深入,整個系統功能得到了極大擴展,成為一個穩定、可靠、功能較為齊全的視頻監控平臺。在開發過程也遇到了各種困難,經過大量的嘗試和失敗后,最終找到了問題的解決辦法,如程序中擁有10個線程導致CPU占用率高達90%,而且線程間經常出現不同步現象等。伴隨著線程池等技術的應用,程序 CPU占用率過高的問題得到了解決,線程池技術對多線程的管理也起到了積極作用。

主站蜘蛛池模板: 伊吾县| 盱眙县| 鄂托克旗| 谷城县| 邯郸市| 南投市| 大英县| 云安县| 莒南县| 远安县| 长治市| 尤溪县| 同德县| 固阳县| 峨山| 焦作市| 宁海县| 噶尔县| 阳原县| 潢川县| 宝兴县| 泸西县| 体育| 文化| 舒城县| 河南省| 乌拉特前旗| 上犹县| 汨罗市| 环江| 昆山市| 工布江达县| 察隅县| 同江市| 鄂尔多斯市| 大同市| 德安县| 南开区| 汉沽区| 青冈县| 岱山县|