視頻數據傳輸的調節方法及裝置製造方法
2023-12-11 18:28:17 4
視頻數據傳輸的調節方法及裝置製造方法
【專利摘要】本發明公開了一種視頻數據傳輸的調節方法及裝置,在上述方法中,確定是否進入周期,該周期為預設的插入關鍵幀的時間段;根據獲取到的網絡運行狀態信息確定是否在當前周期內插入關鍵幀,其中,在當前周期內插入關鍵幀用於調節視頻數據的碼率。根據本發明提供的技術方案,進而通過周期性地插入關鍵幀及時、有效地控制正在傳輸的視頻數據所佔用的帶寬與無線網絡帶寬動態相適應。
【專利說明】視頻數據傳輸的調節方法及裝置
【技術領域】
[0001] 本發明涉及通信領域,具體而言,涉及一種視頻數據傳輸的調節方法及裝置。
【背景技術】
[0002] 目前,在移動視頻監控領域,由於無法通過有線方式傳輸實時數據,因而只能通過 行動網路無線方式進行數據傳送。但是由於無線網絡,即移動通信數據網絡,例如:通用 分組無線業務(General Packet Radio Service,簡稱為GPRS)、寬帶碼分多址(Wideband Code Division Multiple Access,簡稱為WCDMA)不穩定,特別是在車載移動環境下,由於 基站覆蓋範圍、固定區域用戶數量等多變環境造成無線網絡帶寬波動很大,由此對於實時 性和流暢性要求頗高的遠程視頻預覽是極為嚴峻的考驗。為了與多變的網絡環境相對應, 視頻數據在傳輸的過程中必須做出相應地控制,從而使得視頻數據所佔用的帶寬與無線網 絡帶寬儘可能地做到動態相適應。
[0003] 圖1是根據相關技術的視頻無線遠程預覽系統的結構框圖。如圖1所示,視頻無 線遠程預覽系統可以由三個部分構成,具體可以包括:車載監控設備、流媒體伺服器以及客 戶端。車載監控設備,用於通過無線網絡實時發送視頻數據;流媒體伺服器,用於為多個客 戶端轉發碼流;客戶端可以是個人計算機(PC)客戶端或者手機客戶端,用於對視頻數據進 行解碼並播放。由此可見,整個系統的網絡帶寬瓶頸主要存在於車載監控設備至流媒體服 務器的上行傳輸階段。
[0004] 相關技術中為了解決網絡帶寬瓶頸的問題通常採用的控制方法有以下兩種:其一 是在網絡環境逐漸惡化的情況下,只發關鍵幀(I幀)數據。I幀是不依賴於其它圖像,能夠 獨立解碼的幀內編碼幀,在通常情況下作為參考幀。I幀在碼流中一般是以預設間隔(例 如:1秒或者4秒)出現的,其解碼必須從I幀數據開始。然而此種控制方法的缺陷在於由 於解碼必須從I幀數據開始,因此會造成預覽圖像動態連續性較差。其二是直接降低編碼 參數,例如:幀率、碼率等,其缺陷在於若修改上述參數值通常會產生新的I幀,從而導致碼 率量瞬間發生異常,不降反增,無法較好地控制正在傳輸的視頻數據所佔用的帶寬與無線 網絡帶寬動態相適應。
【發明內容】
[0005] 本發明提供了一種視頻數據傳輸的調節方法及裝置,以至少解決相關技術中無法 較好地控制正在傳輸的視頻數據所佔用的帶寬與無線網絡帶寬動態相適應的問題。
[0006] 根據本發明的一個方面,提供了一種視頻數據傳輸的調節方法。
[0007] 根據本發明的視頻數據傳輸的調節方法包括:確定是否進入周期,該周期為預設 的插入關鍵幀的時間段;根據獲取到的網絡運行狀態信息確定是否在當前周期內插入關鍵 幀,其中,在當前周期內插入關鍵幀用於調節視頻數據的碼率。
[0008] 優選地,根據獲取到的網絡運行狀態信息確定是否在當前周期內插入關鍵幀包 括:獲取當前周期內的網絡性能指標,其中,網絡性能指標至少包括以下之一:帶寬利用 率、網絡丟包率、傳輸延時;根據網絡性能指標是否大於第一預設閾值確定是否在當前周期 內插入關鍵幀。
[0009] 優選地,獲取網絡性能指標包括:在當前周期內分別檢測當前網絡帶寬與傳輸視 頻數據所佔用的帶寬;計算當前網絡帶寬與傳輸視頻數據所佔用的帶寬的差值或者計算傳 輸視頻數據所佔用的帶寬與當前網絡帶寬的比值,獲取帶寬利用率。
[0010] 優選地,獲取網絡性能指標包括:在當前周期內分別檢測發送端發送的數據包的 總量與接收端接收到的數據包的數量;根據發送的數據包的總量與接收到的數據包的數量 計算網絡丟包率。
[0011] 優選地,獲取網絡性能指標包括:在當前周期內檢測發送端發送每幀視頻數據包 的第一時間以及檢測發送端接收到接收端在接收每幀視頻數據包後所反饋的確認包的第 二時間;根據第一時間和第二時間計算傳輸延時。
[0012] 優選地,在根據網絡性能指標是否大於第一預設閾值確定是否在當前周期內插入 關鍵幀之後還包括:如果網絡性能指標大於或者等於第一預設閾值,則在當前周期內插入 關鍵幀;從第一個插入關鍵幀的周期開始,記錄連續插入關鍵幀的周期的個數為第一個數; 當第一個數大於或等於第二預設閾值時,則提升當前使用的編碼參數的等級。
[0013] 優選地,在根據網絡性能指標是否大於第一預設閾值確定是否在當前周期內插入 關鍵幀之後還包括:如果網絡性能指標小於第一預設閾值,則繼續保持當前的視頻數據的 碼率;從第一個未插入關鍵幀的周期開始,記錄連續未插入關鍵幀的周期的個數為第二個 數;當第二個數大於或等於第三預設閾值時,則降低當前使用的編碼參數的等級。
[0014] 根據本發明的另一方面,提供了一種視頻數據傳輸的調節裝置。
[0015] 根據本發明的視頻數據傳輸的調節裝置包括:第一確定模塊,用於確定是否進入 周期,該周期為預設的插入關鍵幀的時間段;第二確定模塊,用於根據獲取到的網絡運行狀 態信息確定是否在當前周期內插入關鍵幀,其中,在當前周期內插入關鍵幀用於調節視頻 數據的碼率。
[0016] 優選地,第二確定模塊包括:獲取單元,用於獲取當前周期內的網絡性能指標,其 中,網絡性能指標至少包括以下之一:帶寬利用率、網絡丟包率、傳輸延時;確定單元,用於 根據網絡性能指標是否大於第一預設閾值確定是否在當前周期內插入關鍵幀。
[0017] 優選地,獲取單元包括:第一檢測子單元,用於在當前周期內分別檢測當前網絡帶 寬與傳輸視頻數據所佔用的帶寬;第一計算子單元,用於計算當前網絡帶寬與傳輸視頻數 據所佔用的帶寬的差值或者計算傳輸視頻數據所佔用的帶寬與當前網絡帶寬的比值,獲取 帶寬利用率。
[0018] 優選地,獲取單元包括:第二檢測子單元,用於在當前周期內分別檢測發送端發送 的數據包的總量與接收端接收到的數據包的數量;第二計算子單元,用於根據發送的數據 包的總量與接收到的數據包的數量計算網絡丟包率。
[0019] 優選地,獲取單元包括:第三檢測子單元,用於在當前周期內檢測發送端發送每幀 視頻數據包的第一時間以及檢測發送端接收到接收端在接收每幀視頻數據包後所反饋的 確認包的第二時間;第三計算子單元,用於根據第一時間和第二時間計算傳輸延時。
[0020] 優選地,上述裝置還包括:第一處理模塊,用於在網絡性能指標大於或者等於第一 預設閾值時,在當前周期內插入關鍵幀;第一記錄模塊,用於從第一個插入關鍵幀的周期開 始,記錄連續插入關鍵幀的周期的個數為第一個數;第一調整模塊,用於在第一個數大於或 等於第二預設閾值時,則提升當前使用的編碼參數的等級。
[0021] 優選地,上述裝置還包括:第二處理模塊,用於如果網絡性能指標小於第一預設閾 值,則繼續保持當前的視頻數據的碼率;第二記錄模塊,用於從第一個未插入關鍵幀的周期 開始,記錄連續未插入關鍵幀的周期的個數為第二個數;第二調整模塊,用於在第二個數大 於或等於第三預設閾值時,則降低當前使用的編碼參數的等級。
[0022] 通過本發明,採用周期性地檢測網絡運行狀態信息,並在預設的插入關鍵幀的周 期到達時根據獲取到的當前的網絡運行狀態信息確定是否在當前周期內插入關鍵幀,在當 前周期內插入關鍵幀可以對視頻數據的碼率進行調節,以根據無線網絡帶寬的狀態信息動 態調整正在傳輸的視頻數據所佔用的帶寬,解決了相關技術中無法較好地控制正在傳輸的 視頻數據所佔用的帶寬與無線網絡帶寬動態相適應的問題,進而通過周期性地插入關鍵幀 及時、有效地控制正在傳輸的視頻數據所佔用的帶寬與無線網絡帶寬動態相適應。
【專利附圖】
【附圖說明】
[0023] 此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發 明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在附圖中:
[0024] 圖1是根據相關技術的視頻無線遠程預覽系統的結構框圖;
[0025] 圖2是根據本發明實施例的視頻數據傳輸的調節方法的流程圖;
[0026] 圖3是根據本發明優選實施例的動態帶寬自適應控制方法的流程圖;
[0027] 圖4是根據本發明實施例的視頻數據傳輸的調節裝置的結構框圖;
[0028] 圖5是根據本發明優選實施例的視頻數據傳輸的調節裝置的結構框圖;
[0029] 圖6是根據本發明優選實施例的遠程預覽系統中的車載監控設備的結構框圖。
【具體實施方式】
[0030] 下文中將參考附圖並結合實施例來詳細說明本發明。需要說明的是,在不衝突的 情況下,本申請中的實施例及實施例中的特徵可以相互組合。
[0031] 在以下描述中,除非另外指明,否則將參考由一個或多個計算機執行的動作和操 作的符號表示來描述本申請的各實施例。其中,計算機包括個人計算機、伺服器、移動終端 等各種產品,使用了 CPU、單片機、DSP等具有處理晶片的設備均可以稱為計算機。由此,可 以理解,有時被稱為計算機執行的這類動作和操作包括計算機的處理單元對以結構化形式 表示數據的電信號的操縱。這一操縱轉換了數據或在計算機的存儲器系統中的位置上維護 它,這以本領域的技術人員都理解的方式重配置或改變了計算機的操作。維護數據的數據 結構是具有數據的格式所定義的特定屬性的存儲器的物理位置。然而,儘管在上述上下文 中描述本發明,但它並不意味著限制性的,如本領域的技術人員所理解的,後文所描述的動 作和操作的各方面也可用硬體來實現。
[0032] 轉向附圖,其中相同的參考標號指代相同的元素,本申請的原理被示為在一個合 適的計算環境中實現。以下描述基於所述的本申請的實施例,並且不應認為是關於此處未 明確描述的替換實施例而限制本申請。
[0033] 以下實施例可以應用到計算機中,例如:應用到PC中。也可以應用到目前採用了 智能作業系統中的移動終端中,並且並不限於此。對於計算機或移動終端的作業系統並沒 有特殊要求,只要能夠檢測接觸、確定該接觸是否與預定規則相符合,以及根據該接觸的屬 性實現相應功能即可。
[0034] 圖2是根據本發明實施例的視頻數據傳輸的調節方法的流程圖。如圖2所示,該 方法可以包括以下處理步驟:
[0035] 步驟S202 :確定是否進入周期,該周期為預設的插入關鍵幀的時間段;
[0036] 步驟S204 :根據獲取到的網絡運行狀態信息確定是否在當前周期內插入關鍵幀, 其中,在當前周期內插入關鍵幀用於調節視頻數據的碼率。
[0037] 相關技術中,無法較好地控制正在傳輸的視頻數據所佔用的帶寬與無線網絡帶寬 動態相適應。採用如圖2所示的方法,可以周期性地檢測網絡運行狀態信息(例如:網絡帶 寬的利用率、視頻數據傳輸過程中的丟包率),並在預設的插入關鍵幀的周期到達時根據獲 取到的當前的網絡運行狀態信息確定是否在當前周期內插入關鍵幀,在當前周期內插入關 鍵幀可以對視頻數據的碼率進行調節,以根據無線網絡帶寬的狀態信息動態調整正在傳輸 的視頻數據所佔用的帶寬,解決了相關技術中無法較好地控制正在傳輸的視頻數據所佔用 的帶寬與無線網絡帶寬動態相適應的問題,進而通過周期性地插入關鍵幀及時、有效地控 制正在傳輸的視頻數據所佔用的帶寬與無線網絡帶寬動態相適應。
[0038] 在優選實施過程中,可以根據預設幀率計算在初始狀態下相鄰關鍵幀的間隔,其 中,該間隔內可以包括多個周期。
[0039] 由於關鍵幀包含了顯示幀需要的所有信息,因此,所有的視頻數據都至少包含一 個關鍵幀,作為視頻文件的第一個幀。通常情況下,每一秒視頻數據至少需要使用一個關鍵 幀。而其它的關鍵幀可以用來改善視頻的質量,但是增加關鍵幀的數量會增加視頻文件的 大小,同時還會增加傳輸視頻數據所佔用的網絡帶寬和網絡負載。
[0040] 幀率是一秒播放的視頻中有多少個幀,幀是組成視頻的基本單位。視頻文件本身 是由很多連續的圖片組成的,簡單的可以理解為幀率就是一秒內錄下的圖片數量(實際上 這些圖片通過壓縮,一幀數據不一定保存的是一個完整圖片關鍵幀,它是幀間壓縮編碼裡 的重要巾貞。I巾貞的間隔調節會影響到畫面組(Group of Pictures,簡稱為G0P)的長度,進 而影響到讀取G0P的速度,如果I幀間隔設置過大,在必須要用到I幀的場合就可能被迫用 前後參考幀(B幀)/向前參考幀(P幀)來代替,如此便會降低整體畫面的質量。I幀是幀間 壓縮的基礎,例如:一個典型的G0P結構為IBBPBBPBBPBBPBBPBB,B幀需要參考前面和後面 兩幀的數據加上本幀的變化而得出本幀的數據,而P幀的解釋需要參考B幀。假設I幀損 壞,那麼整個G0P結構都將無法使用,即IBBPBBPBBPBBPBBPBB這麼多幀將被一起浪費掉。
[0041] 根據視頻編碼算法,在對I幀數據進行壓縮處理後的數據量明顯大於B幀和P幀 的視頻畫面,通過增加 I幀在視頻編碼時的頻率,可以實現增加視頻畫面顯示響應速度的 目標。編碼由前端設備實現,通過此方式可以改變I幀的頻率,同時增加了視頻數據流中I 幀的數量,進而增加了編碼後的視頻碼流,由此會導致增加視頻數據對網絡帶寬的需求。由 此可見,在不改變視頻數據對網絡帶寬需求的前提下,可以顯著減少視頻數據的視頻畫面 顯示的時間間隔,實現視頻數據即時顯示是亟待解決的問題。
[0042] 碼流(Data Rate),也叫碼率,是指視頻文件在單位時間內使用的數據流量,其是 視頻編碼中畫面質量控制中最重要的部分。在解析度相同的情況下,視頻文件的碼流越大, 壓縮比就越小,畫面質量就越高。
[0043] 相關技術中,首先會對視頻數據流進行採樣編碼,然後以固定間隔時間發送I幀。 通常米用H. 264格式進行編碼以生產若干I巾貞和若干P巾貞,其中,一個I巾貞和若干個P巾貞共 同組成一個畫面組(G0P),由於為了能夠使客戶終端儘快的接收I幀,本領域技術人員可以 理解,在通過編碼器生成編碼幀(該編碼幀可以包括若干I幀以及每個I幀各自對應的若干 P幀)之後,優先生成I幀並發送。在具體執行過程中,先發送第一個I幀,在第一個I幀數 據開始發送後,間隔固定時間T,再開始發送下個I幀數據,不斷重複直至視頻數據流所有 的I幀數據傳輸完畢,其中,I幀的間隔由G0P決定,就是一個畫面組所佔用的時間,例如: 當G0P為100時,則兩個I幀之間的間隔為100幀。如果H. 264每秒編碼25幀,則從上一 個I幀生成到下一個I幀生成需要100幀/25幀每秒=4秒,因此,上述時間T就是4秒,前 後兩個I幀的發送時間為4秒。在這4秒中,網絡帶寬用於傳輸每個I幀對應的若干P幀, 由於在一個畫面組中,I幀為關鍵幀,因此,對於I幀的傳輸優先級別較高,為了保證每4秒 有一個I幀發送,與I幀對應的若干P幀的發送可以延後。如果I幀的發送得以保證,在第 一時間發送並能夠確保在持續的間隔固定時間發送I幀,接收端就能夠儘快地接收I幀,從 而進行解碼工作以播放視頻。
[0044] 在該優選實施例中,在視頻數據開始傳輸之前,可以對默認的編碼參數進行調整, 即可以根據預先設定的幀率將I幀間隔設置成相對較大的數值(大於相關技術中通常採用 的1秒或者4秒,可以在數字視頻錄像機上預先設置視頻數據流的傳輸幀率與I幀間隔的 固定比例為K),此時碼率會相對降低,在視頻複雜度較高時畫面的動態效果會變得相對較 差。儘管在初始情況下I幀間隔被設置成相對較大的數值,畫面的動態效果會因此而受到 影響,但伴隨著不斷獲取到的網絡運行狀態信息可以周期性地動態插入I幀,進而改變I幀 間隔,調節視頻數據的碼率。
[0045] 需要說明的是,由於I幀間隔被設置成相對較大的數值,因此,I幀間隔內可以包 含多個預設的插入I幀的周期,例如:根據預先設定的幀率可以將I幀間隔設置成10秒,而 預設的插入I幀的周期為5秒,那麼上述I幀間隔內可以包含2個預設的插入I幀的周期。 而具體包含的周期的個數需要根據實際情況具體設定。
[0046] 優選地,在步驟S204中,根據獲取到的網絡運行狀態信息確定是否在當前周期內 插入關鍵幀可以包括以下操作:
[0047] 步驟S1 :獲取當前周期內的網絡性能指標,其中,網絡性能指標可以至少包括但 不限於以下之一:帶寬利用率、網絡丟包率、傳輸延時;
[0048] 步驟S2 :根據網絡性能指標是否大於第一預設閾值確定是否在當前周期內插入 關鍵中貞。
[0049] 優選地,在步驟S1中,獲取網絡性能指標可以包括以下步驟:
[0050] 步驟S11 :在當前周期內分別檢測當前網絡帶寬與傳輸視頻數據所佔用的帶寬;
[0051] 步驟S12:計算當前網絡帶寬與傳輸視頻數據所佔用的帶寬的差值或者計算傳輸 視頻數據所佔用的帶寬與當前網絡帶寬的比值,獲取帶寬利用率。
[0052] 優選地,在步驟S1中,獲取網絡性能指標可以包括以下步驟:
[0053] 步驟S13 :在當前周期內分別檢測發送端發送的數據包的總量與接收端接收到的 數據包的數量;
[0054] 步驟S14 :根據發送的數據包的總量與接收到的數據包的數量計算網絡丟包率。
[0055] 優選地,在步驟S1中,獲取網絡性能指標可以包括以下步驟:
[0056] 步驟S15 :在當前周期內檢測發送端發送每幀視頻數據包的第一時間以及檢測發 送端接收到接收端在接收每幀視頻數據包後所反饋的確認包的第二時間;
[0057] 步驟S16 :根據第一時間和第二時間計算傳輸延時。
[0058] 在優選實施例中,在進行視頻數據傳輸之前,首先需要判斷待發送的視頻數據所 佔用的帶寬是否大於網絡傳輸帶寬容量。因此,可以分別對當前網絡帶寬(不同類型的網絡 會擁有不同的網絡帶寬)以及傳輸視頻數據所佔用的帶寬進行檢測,並根據檢測結果求取 當前網絡帶寬與傳輸視頻數據所佔用的帶寬的差值,如果該差值大於或者等於上述第一預 設閾值,則說明當前網絡運行狀態良好,帶寬資源較為豐富,可以通過在當前周期內插入關 鍵幀以提升視頻數據的碼率;如果該差值小於上述第一預設閾值,則說明當前網絡運行狀 態較差,帶寬資源較為緊張,在當前周期內不適宜再插入關鍵幀,僅能保持當前的視頻數據 的碼率。
[0059] 當然,還可以直接將視頻數據傳輸量大小與網絡傳輸帶寬容量進行比較。若該視 頻數據傳輸量小於或者等於網絡傳輸帶寬容量,即可直接發送上述視頻數據,而且如果可 以確定視頻數據傳輸量遠小於網絡傳輸帶寬容量,則可以在當前周期內插入關鍵幀;若視 頻數據傳輸量大於網絡傳輸帶寬容量,即可將上述視頻數據劃分為多個數據包,以使多個 數據包中的每個數據包的大小均小於或者等於網絡傳輸帶寬容量。例如:對於網絡帶寬 僅為10Kbyte的網絡環境而言,100Kbyte大小的視頻數據編碼幀在發送過程中就極有可 能發生丟包,進而影響網絡傳輸的穩定性。因此,若要發送的視頻數據編碼幀較大,則對於 10Kbyte的網絡帶寬而言,可以將視頻數據編碼幀劃分為多個數據包,每個數據包的大小為 10Kbyte〇
[0060] 優選地,在步驟S204,當前周期內插入關鍵幀之後,還可以包括以下步驟:
[0061] 步驟S3 :如果網絡性能指標大於或者等於第一預設閾值,則在當前周期內插入關 鍵幀;
[0062] 步驟S4 :從第一個插入關鍵幀的周期開始,記錄連續插入關鍵幀的周期的個數為 第一個數;
[0063] 步驟S5 :當第一個數大於或等於第二預設閾值時,則提升當前使用的編碼參數的 等級。
[0064] 在優選實施例中,如果在當前周期內插入關鍵幀,那麼在接下來的連續多個周期 內就要保持記錄插入關鍵幀的周期的個數,直至可以確定在其中的某個周期內不再插入關 鍵幀,並判斷連續插入關鍵幀的周期的個數是否大於或等於上述第二預設閾值,如果是,則 需要提升當前使用的編碼參數的等級,以實現對視頻數據碼率的調節。
[0065] 例如:如果確定在當前(第1個)周期內插入關鍵幀,然後在接下來的連續4個周 期內(不包括第1個周期)保持記錄插入關鍵幀的周期的個數,直至可以確定在第6個周期 內不再插入關鍵幀,由此可以得出連續插入關鍵幀的周期的個數為5個。此時,需要判斷連 續插入關鍵幀的周期的個數(5個)是否大於或等於上述第二預設閾值(假設為5個)。由於 連續插入關鍵幀的周期的個數等於上述第二預設閾值,因此,可以提升當前使用的編碼參 數的等級,以實現對視頻數據碼率的調節。
[0066] 需要說明的是,當前使用的編碼參數的等級可以為兩個或者多個;如果是兩個,則 分別為最低配置的編碼參數等級和默認(最高)配置的編碼參數等級;如果是多個,則可以 在最低配置的編碼參數等級與默認配置的編碼參數等級之間再增設多個等級,以實現更加 精確地調節視頻數據的碼率。
[0067] 優選地,在步驟S204,當前周期內插入關鍵幀之後,還可以包括以下操作:
[0068] 步驟S6 :如果網絡性能指標小於第一預設閾值,則繼續保持當前的視頻數據的碼 率;
[0069] 步驟S7 :從第一個未插入關鍵幀的周期開始,記錄連續未插入關鍵幀的周期的個 數為第二個數;
[0070] 步驟S8 :當第二個數大於或等於第三預設閾值時,則降低當前使用的編碼參數的 等級。
[0071] 在優選實施例中,如果在當前周期內沒有插入關鍵幀,那麼在接下來的連續多個 周期內就要保持記錄未插入關鍵幀的周期的個數,直至可以確定在其中的某個周期內需要 插入關鍵幀,並判斷連續未插入關鍵幀的周期的個數是否大於或等於上述第三預設閾值, 如果是,則需要降低當前使用的編碼參數的等級,以實現對視頻數據碼率的調節。
[0072] 例如:如果可以確定在當前(第1個)周期內未插入關鍵幀,然後在接下來的連續4 個周期內(不包括第1個周期)均未插入關鍵幀,因此保持記錄未插入關鍵幀的周期的個數, 直至可以確定在第6個周期內重新插入關鍵幀,由此可以得出連續未插入關鍵幀的周期的 個數為5個。此時,需要判斷連續未插入關鍵幀的周期的個數(5個)是否大於或等於上述 第三預設閾值(假設為5個)。由於連續未插入關鍵幀的周期的個數等於上述第三預設閾值, 因此,可以降低當前使用的編碼參數的等級,以實現對視頻數據碼率的調節。
[0073] 需要說明的是,上述第一個數與上述第二個數可以相同,也可以不同;上述第二預 設閾值與上述第三預設閾值可以相同,也可以不同,需要根據實際情況具體設定。
[0074] 下面結合圖3所示的優選實施方式對上述優選實施過程做進一步的描述。
[0075] 圖3是根據本發明優選實施例的動態帶寬自適應控制方法的流程圖。如圖3所示, 該方法可以包括以下處理步驟:
[0076] 步驟S302 :車載監控設備在與遠程流媒體伺服器建立連接後,初始化相關資源, 準備開始發送視頻數據;車載監控設備持續獲取當前的網絡運行狀態信息;
[0077] 在該優選實施例中,在視頻數據開始發送之前,可以對默認的編碼參數進行調整, 主要在於可以根據預先設定的幀率將I幀間隔設置成一個很大的值,此時碼率會相對降 低,在視頻複雜度較高時畫面的動態效果會變得相對較差。
[0078] 需要說明的是,上述設置的I幀間隔不適宜過長,否則,將會導致畫面的動態效果 較差,用戶的視覺感觀難以接受。
[0079] 步驟S304 :車載監控設備會周期性地檢測是否已經到達插入I幀的時間點;如果 是,則繼續執行步驟S306 ;如果否,則返回步驟S302 ;
[0080] 在該優選實施例中,車載監控設備會預先設置一個周期用來對視頻數據動態插入 I幀,以此提高視頻數據的清晰度和動態效果。
[0081] 步驟S306 :車載監控設備在視頻數據開始發送之後,將持續對當前的行動網路進 行檢測並對當前的網絡運行狀態信息進行評估,但是,由於無法對網絡的帶寬進行定量評 估,因此,最終反饋的結果為相對於當前發送視頻數據所處於的網絡運行狀態的二值化網 絡運行狀態,即在對當前的網絡運行狀態信息進行評估後可以確定當前網絡狀況良好或者 糟糕;如果當前網絡運行狀態良好,則繼續執行步驟S308 ;如果否,則轉到步驟S314 ;
[0082] 步驟S308 :如果通過對當前的網絡運行狀態信息進行評估可以確定當前網絡狀 況良好,則說明當前網絡帶寬能夠滿足視頻數據所佔用的帶寬,由此可以在本周期插入I 中貞;在插入I巾貞的同時還需要統計連續插入I巾貞的次數,此時記為insertCount,用於評估 在過去的一段時間內網絡的持續狀態;
[0083] 在該優選實施例中,假設在第一個周期內可以確定插入I巾貞,貝U insertCount的計 數由〇變為1,在第二個周期內同樣可以確定插入I巾貞,貝1J insertCount的計數加1,由1變 為2,在第三個周期內還可以確定插入I巾貞,貝U insertCount的計數繼續加1,由2變為3,以 此類推。但是如果其中有一個周期內可以確定不能再插入I巾貞,則insertCount的計數終 止。
[0084] 步驟S310 :根據insertCount的計數是否達到預設閾值可以判斷是否需要提高編 碼參數的等級;如果insertCount的計數已經達到預設閾值(例如:10),貝U可以繼續執行步 驟S312 ;如果insertCount的計數還未達到預設閾值,則可以轉到步驟S320 ;
[0085] 步驟S312 :提高編碼參數的等級,例如:當前處在最低等級的編碼參數可以將該 參數恢復至初始預設的等級;轉到步驟S302 ;
[0086] 步驟S314 :如果通過對當前的網絡運行狀態信息進行評估可以確定當前網絡狀 況較差時,則說明當前網絡帶寬難以滿足視頻數據所佔用的帶寬,由此可以確定在當前周 期不插入I幀,以此來降低視頻數據的碼率;在未插入I幀的同時還需要統計連續未插入 I幀的次數,此時記為notlnsertCount,同樣用於評估在過去的一段時間內網絡的持續狀 態;
[0087] 步驟S316 :根據notlnsertCount的計數是否達到預設閾值可以判斷是否需要提 高編碼參數的等級;如果notlnsertCount的計數已經達到預設閾值(例如:10),貝U可以繼 續執行步驟S318 ;如果notlnsertCount的計數還未達到預設閾值,則在當前周期內不插入 I幀,轉到步驟S302 ;
[0088] 步驟S318 :當notlnsertCount達到預設閾值(例如:10)時,說明當前的網絡狀況 很差,最初設置的最大插入I幀的間隔已無法進行流暢的傳輸,此時需要通知編碼器改變 編碼參數,降低編碼參數當前的使用等級,例如:降低碼率上限、降低幀率;直至將編碼參 數降至最低使用等級;轉到步驟S302 ;
[0089] 需要說明的是,即便是處在上述降低使用等級(包括最低等級)的情況下,也還需 要周期性地根據實時檢測到的網絡運行狀態信息判斷是否執行插入I幀的操作。
[0090] 步驟S320 :繼續執行插入I幀的操作;轉到步驟S302。
[0091] 圖4是根據本發明實施例的視頻數據傳輸的調節裝置的結構框圖。如圖4所示,該 視頻數據傳輸的調節裝置可以包括:第一確定模塊10,用於確定是否進入周期,該周期為 預設的插入關鍵幀的時間段;第二確定模塊20,用於根據獲取到的網絡運行狀態信息確定 是否在當前周期內插入關鍵幀,其中,在當前周期內插入關鍵幀用於調節視頻數據的碼率。
[0092] 採用如圖4所示的裝置,通過獲取模塊可以周期性地檢測網絡運行狀態信息(例 如:網絡帶寬的利用率、視頻數據傳輸過程中的丟包率),而通過確定模塊在預設的插入關 鍵幀的周期到達時可以根據獲取模塊獲取到的當前的網絡運行狀態信息確定是否在當前 周期內插入關鍵幀,在當前周期內插入關鍵幀可以對視頻數據的碼率進行調節,以根據無 線網絡帶寬的狀態信息動態調整正在傳輸的視頻數據所佔用的帶寬,由此解決了相關技術 中無法較好地控制正在傳輸的視頻數據所佔用的帶寬與無線網絡帶寬動態相適應的問題, 進而通過周期性地插入關鍵幀及時、有效地控制正在傳輸的視頻數據所佔用的帶寬與無線 網絡帶寬動態相適應。
[0093] 優選地,如圖5所示,第二確定模塊20可以包括:獲取單元200,用於獲取當前周 期內的網絡性能指標,其中,網絡性能指標至少包括以下之一:帶寬利用率、網絡丟包率、傳 輸延時;確定單元202,用於根據網絡性能指標是否大於第一預設閾值確定是否在當前周 期內插入關鍵幀。
[0094] 優選地,如圖5所示,獲取單元200可以包括:第一檢測子單元(圖中未示出),用於 在當前周期內分別檢測當前網絡帶寬與傳輸視頻數據所佔用的帶寬;第一計算子單元(圖 中未示出),用於計算當前網絡帶寬與傳輸視頻數據所佔用的帶寬的差值或者計算傳輸視 頻數據所佔用的帶寬與當前網絡帶寬的比值,獲取帶寬利用率。
[0095] 優選地,如圖5所示,獲取單元200可以包括:第二檢測子單元(圖中未示出),用於 在當前周期內分別檢測發送端發送的數據包的總量與接收端接收到的數據包的數量;第二 計算子單元(圖中未示出),用於根據發送的數據包的總量與接收到的數據包的數量計算網 絡丟包率。
[0096] 優選地,如圖5所示,獲取單元200可以包括:第三檢測子單元(圖中未示出),用於 在當前周期內檢測發送端發送每幀視頻數據包的第一時間以及檢測發送端接收到接收端 在接收每幀視頻數據包後所反饋的確認包的第二時間;第三計算子單元(圖中未示出),用 於根據第一時間和第二時間計算傳輸延時。
[0097] 優選地,如圖5所示,上述裝置還可以包括:第一處理模塊30,用於在網絡性能指 標大於或者等於第一預設閾值時,在當前周期內插入關鍵幀;第一記錄模塊40,用於從第 一個插入關鍵幀的周期開始,記錄連續插入關鍵幀的周期的個數為第一個數;第一調整模 塊50,用於在第一個數大於或等於第二預設閾值時,則提升當前使用的編碼參數的等級。
[0098] 優選地,如圖5所示,上述裝置還可以包括:第二處理模塊60,用於如果網絡性能 指標小於第一預設閾值,則繼續保持當前的視頻數據的碼率;第二記錄模塊70,用於從第 一個未插入關鍵幀的周期開始,記錄連續未插入關鍵幀的周期的個數為第二個數;第二調 整模塊80,用於在第二個數大於或等於第三預設閾值時,則降低當前使用的編碼參數的等 級。
[0099] 圖6是根據本發明優選實施例的遠程預覽系統中的車載監控設備的結構框圖。 如圖6所示,該車載監控設備可以包括以下四個部分:圖像編碼模塊、視頻數據發送模塊、 網絡狀態檢測模塊(相當於上述獲取模塊)以及視頻數據控制模塊(相當於上述視頻數據 傳輸的調節裝置中除獲取模塊之外的其餘部分)。圖像編碼處理通常是由數位訊號處理器 (Digital Signal Processor,簡稱為DSP)負責;視頻數據的發送則可以使用傳輸控制協議 (Transfer Control Protocol,簡稱為 TCP)或者用戶數據協議(User Date Protocol,簡稱 為UDP)通過無線網絡向流媒體伺服器發送視頻數據;網絡狀態檢測可以通過檢測網絡緩 衝區、發送時延等技術來判斷網絡運行狀態;視頻數據傳輸控制為本發明所提供的技術方 案的核心,是車載監控設備中用於實現動態網絡自適應的主要模塊。關於遠程預覽系統中 的車載監控設備的具體執行過程如下:
[0100] 在視頻數據開始發送之前,視頻數據控制模塊可以對默認的編碼參數進行調整, 即可以根據預先設定的幀率將I幀間隔設置成一個很大的值,此時碼率會相對降低,在視 頻複雜度較高時畫面的動態效果會變得相對較差。車載監控設備在與遠程流媒體伺服器建 立連接後,初始化相關資源。圖像編碼模塊會對視頻數據流進行採樣編碼,然後將視頻數據 編碼幀發送至視頻數據發送模塊,視頻數據發送模塊準備開始發送視頻數據。車載監控設 備中的網絡狀態檢測模塊持續獲取當前的網絡運行狀態,視頻數據控制模塊會周期性地檢 測是否已經到達插入I幀的時間點;如果是,網絡狀態檢測模塊在視頻數據開始發送之後, 將持續對當前的行動網路進行檢測並對當前的網絡運行狀態進行評估,但是,由於無法對 網絡的帶寬進行定量評估,因此,最終反饋的結果為相對於當前發送視頻數據所處於的網 絡運行狀態的二值化網絡運行狀態,即在對當前的網絡運行狀態進行評估後可以確定當前 網絡狀況良好或者糟糕;如果通過對當前的網絡運行狀態進行評估可以確定當前網絡狀況 良好,則說明當前網絡帶寬能夠滿足視頻數據所佔用的帶寬,由此可以在本周期插入I幀; 在插入I幀的同時還需要統計連續插入I幀的次數,用於評估在過去的一段時間內網絡的 持續狀態;如果通過對當前的網絡運行狀態進行評估可以確定當前網絡狀況較差時,則說 明當前網絡帶寬難以滿足視頻數據所佔用的帶寬,由此可以確定在當前周期不插入I幀, 以此來降低視頻數據的碼率;在未插入I幀的同時還需要統計連續未插入I幀的次數,同樣 用於評估在過去的一段時間內網絡的持續狀態。視頻數據控制模塊可以根據統計連續插入 I幀的次數是否達到預設閾值進而判斷是否需要提高編碼參數的等級;如果該計數已經達 到預設閾值(例如:1〇),則可以提高編碼參數的等級,例如:當前處在最低等級的編碼參數 可以將該參數恢復至初始預設的等級;如果該計數還未達到預設閾值,則可以繼續執行插 入I幀的操作。視頻數據控制模塊還可以根據統計連續未插入I幀的次數是否達到預設閾 值從而判斷是否需要提高編碼參數的等級;如果該計數已經達到預設閾值(例如:1〇),則 說明當前的網絡狀況很差,最初設置的最大插入I幀的間隔已無法進行流暢的傳輸,此時 需要通知編碼器改變編碼參數,降低編碼參數當前的使用等級,例如:降低碼率上限、降低 幀率;直至將編碼參數降至最低使用等級;如果該計數還未達到預設閾值,則在當前周期 內不插入I幀,然後由網絡狀態檢測模塊繼續實時獲取網絡運行狀態信息。
[0101] 需要說明的是,即便是處在上述降低使用等級(包括最低等級)的情況下,也還需 要周期性地根據實時檢測到的網絡運行狀態信息判斷是否執行插入I幀的操作。
[0102] 採用如圖6所示的遠程預覽系統中的車載監控設備,在無線視頻數據網絡傳輸的 性能優化上,首次提出了動態插入I幀的控制方法並使用降低或者增加圖像編碼參數等級 與之相結合的方法實現了多變的無線網絡環境的帶寬自適應,與相關技術進行對比,可以 獲得更好的圖像流暢性,更低的碼率,更高的降低碼率響應速度並且方法簡單、有效、便於 移植。
[0103] 從以上的描述中,可以看出,上述實施例實現了如下技術效果(需要說明的是這些 效果是某些優選實施例可以達到的效果):採用本發明所提供的技術方案可以在網絡帶寬 降低時進行自動調整控制正在傳輸的視頻數據所佔用的帶寬與無線網絡帶寬動態相適應, 以確保在視頻圖像實時性的同時,可以避免視頻數據的動態連續性受到較大影響,其調整 過程中不會產生新的I幀,視頻數據可以有效降低以適應網絡帶寬的變化。經過實際測試 證明,採用該技術方案的控制系統結構簡單、控制有效,可以明顯改善遠程無線視頻預覽的 性能。
[0104] 顯然,本領域的技術人員應該明白,上述的本發明的各模塊或各步驟可以用通用 的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成 的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲 在存儲裝置中由計算裝置來執行,並且在某些情況下,可以以不同於此處的順序執行所示 出或描述的步驟,或者將它們分別製作成各個集成電路模塊,或者將它們中的多個模塊或 步驟製作成單個集成電路模塊來實現。這樣,本發明不限制於任何特定的硬體和軟體結合。
[0105] 以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技 術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修 改、等同替換、改進等,均應包含在本發明的保護範圍之內。
【權利要求】
1. 一種視頻數據傳輸的調節方法,其特徵在於,包括: 確定是否進入周期,所述周期為預設的插入關鍵幀的時間段; 根據獲取到的網絡運行狀態信息確定是否在當前周期內插入所述關鍵幀,其中,在所 述當前周期內插入所述關鍵幀用於調節所述視頻數據的碼率。
2. 根據權利要求1所述的方法,其特徵在於,根據獲取到的所述網絡運行狀態信息確 定是否在所述當前周期內插入所述關鍵幀,包括: 獲取所述當前周期內的網絡性能指標,其中,所述網絡性能指標至少包括以下之一:帶 寬利用率、網絡丟包率、傳輸延時; 根據所述網絡性能指標是否大於第一預設閾值確定是否在所述當前周期內插入所述 關鍵中貞。
3. 根據權利要求2所述的方法,其特徵在於,獲取所述網絡性能指標包括: 在所述當前周期內分別檢測當前網絡帶寬與傳輸視頻數據所佔用的帶寬; 計算所述當前網絡帶寬與傳輸所述視頻數據所佔用的帶寬的差值或者計算傳輸所述 視頻數據所佔用的帶寬與所述當前網絡帶寬的比值,獲取所述帶寬利用率。
4. 根據權利要求2所述的方法,其特徵在於,獲取所述網絡性能指標包括: 在所述當前周期內分別檢測發送端發送的數據包的總量與接收端接收到的數據包的 數量; 根據所述發送的數據包的總量與所述接收到的數據包的數量計算所述網絡丟包率。
5. 根據權利要求2所述的方法,其特徵在於,獲取所述網絡性能指標包括: 在所述當前周期內檢測發送端發送每幀視頻數據包的第一時間以及檢測所述發送端 接收到接收端在接收所述每幀視頻數據包後所反饋的確認包的第二時間; 根據所述第一時間和所述第二時間計算所述傳輸延時。
6. 根據權利要求2至5中任一項所述的方法,其特徵在於,在根據所述網絡性能指標是 否大於所述第一預設閾值確定是否在所述當前周期內插入所述關鍵幀之後,還包括: 如果所述網絡性能指標大於或者等於所述第一預設閾值,則在所述當前周期內插入所 述關鍵幀; 從第一個插入所述關鍵幀的周期開始,記錄連續插入所述關鍵幀的周期的個數為第一 個數; 當所述第一個數大於或等於第二預設閾值時,則提升當前使用的編碼參數的等級。
7. 根據權利要求2至5中任一項所述的方法,其特徵在於,在根據所述網絡性能指標是 否大於所述第一預設閾值確定是否在所述當前周期內插入所述關鍵幀之後,還包括: 如果所述網絡性能指標小於所述第一預設閾值,則繼續保持當前的視頻數據的碼率; 從第一個未插入所述關鍵幀的周期開始,記錄連續未插入所述關鍵幀的周期的個數為 第二個數; 當所述第二個數大於或等於第三預設閾值時,則降低當前使用的編碼參數的等級。
8. -種視頻數據傳輸的調節裝置,其特徵在於,包括: 第一確定模塊,用於確定是否進入周期,所述周期為預設的插入關鍵幀的時間段; 第二確定模塊,用於根據獲取到的網絡運行狀態信息確定是否在當前周期內插入所述 關鍵幀,其中,在所述當前周期內插入所述關鍵幀用於調節所述視頻數據的碼率。
9. 根據權利要求8所述的裝置,其特徵在於,所述第二確定模塊包括: 獲取單元,用於獲取所述當前周期內的網絡性能指標,其中,所述網絡性能指標至少包 括以下之一:帶寬利用率、網絡丟包率、傳輸延時; 確定單元,用於根據所述網絡性能指標是否大於第一預設閾值確定是否在所述當前周 期內插入所述關鍵幀。
10. 根據權利要求9所述的裝置,其特徵在於,所述獲取單元包括: 第一檢測子單元,用於在所述當前周期內分別檢測當前網絡帶寬與傳輸視頻數據所佔 用的帶寬; 第一計算子單元,用於計算所述當前網絡帶寬與傳輸所述視頻數據所佔用的帶寬的差 值或者計算傳輸所述視頻數據所佔用的帶寬與所述當前網絡帶寬的比值,獲取所述帶寬利 用率。
11. 根據權利要求9所述的裝置,其特徵在於,所述獲取單元包括: 第二檢測子單元,用於在所述當前周期內分別檢測發送端發送的數據包的總量與接收 端接收到的數據包的數量; 第二計算子單元,用於根據所述發送的數據包的總量與所述接收到的數據包的數量計 算所述網絡丟包率。
12. 根據權利要求9所述的裝置,其特徵在於,所述獲取單元包括: 第三檢測子單元,用於在所述當前周期內檢測發送端發送每幀視頻數據包的第一時間 以及檢測所述發送端接收到接收端在接收所述每幀視頻數據包後所反饋的確認包的第二 時間; 第三計算子單元,用於根據所述第一時間和所述第二時間計算所述傳輸延時。
13. 根據權利要求9至12中任一項所述的裝置,其特徵在於,所述裝置還包括: 第一處理模塊,用於在所述網絡性能指標大於或者等於所述第一預設閾值時,在所述 當前周期內插入所述關鍵幀; 第一記錄模塊,用於從第一個插入所述關鍵幀的周期開始,記錄連續插入所述關鍵幀 的周期的個數為第一個數; 第一調整模塊,用於在所述第一個數大於或等於第二預設閾值時,則提升當前使用的 編碼參數的等級。
14. 根據權利要求9至12中任一項所述的裝置,其特徵在於,所述裝置還包括: 第二處理模塊,用於如果所述網絡性能指標小於所述第一預設閾值,則繼續保持當前 的視頻數據的碼率; 第二記錄模塊,用於從第一個未插入所述關鍵幀的周期開始,記錄連續未插入所述關 鍵幀的周期的個數為第二個數; 第二調整模塊,用於在所述第二個數大於或等於第三預設閾值時,則降低當前使用的 編碼參數的等級。
【文檔編號】H04N21/643GK104125429SQ201310156097
【公開日】2014年10月29日 申請日期:2013年4月27日 優先權日:2013年4月27日
【發明者】程海波, 吳興旺, 顧昕宇, 張國柱 申請人:杭州海康威視數位技術股份有限公司