System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及視頻編碼與通信,具體涉及一種面向實時視頻的偽雙流視頻編碼與傳輸方法和系統。
技術介紹
1、近年來,實時視頻迅速成為一種流行且前景廣闊的媒體形式,激發了人們對全新觀看體驗的前所未有的期待。從電話、會議、直播到云游戲,全球實時視頻市場在2020年達到了49.1億美元的價值,并預計在2022-2028年期間以10.0%的年均增長率持續增長。為了提供獨特的互動體驗,優化從視頻捕獲到播放的端到端(end-to-end,e2e)延時至關重要,因為它直接影響用戶的參與度和沉浸感。
2、盡管市場前景廣闊,實時視頻的端到端延時仍未達到令人滿意的效果,并在高延時區域表現出明顯的長尾分布。這主要歸因于視頻幀大小的巨大差異。實驗數據顯示,在基于webrtc的通用實時視頻傳輸系統中,視頻關鍵幀的大小顯著大于非關鍵幀,導致關鍵幀的傳輸延時顯著高于非關鍵幀,最終可能遠遠超出實時視頻應用的延時要求(例如視頻通話的延時要求為200毫秒)。與視頻點播(video?on?demand,vod)受到的影響較小不同,這個問題對具有嚴苛延時要求的實時視頻流構成了嚴重挑戰。
3、為優化延時并減輕長尾效應,現有算法涵蓋了從抖動緩沖、碼率自適應到編碼優化的多種方法,但各自存在固有的局限性:(1)抖動緩沖算法通過在接收端引入等待時間來平滑視頻幀的傳輸延時抖動,使視頻的播放更加平滑同時緩解長尾效應,但這會增加視頻幀的整體端到端延時;(2)視頻碼率自適應算法或是采用對延遲和丟包更加敏感的人工預定義規則,或是利用強化學習(reinforcement
技術實現思路
1、鑒于上述問題,提出了本專利技術以便提供一種克服上述問題或者至少部分地解決上述問題的一種面向實時視頻的偽雙流視頻編碼與傳輸方法和系統。
2、為了解決上述技術問題,本申請實施例公開了如下技術方案:
3、第一方面,本專利技術實施例公開了一種面向實時視頻的偽雙流視頻編碼與傳輸方法,包括:
4、s100.對實時視頻進行分析,當實時視頻中產生關鍵幀時,獲取實時視頻目標碼率,基于碼率-量化模型對所述實時視頻目標碼率進行分配,得到第一碼率路流和第二碼率路流;
5、s200.按預設規則對所述第一碼率路流和第二碼率路流進行編碼,產生兩路數據報文;
6、s300.將所述兩路數據報文暫存在pacer發送隊列中,按照預設優先級將所述數據報文發送到網絡中。
7、進一步地,s100中,所述碼率-量化模型構建的方法包括:
8、s101.獲取幀級別碼率-量化模型,將所述幀級別碼率-量化模型轉換為流級別碼率-量化模型;
9、s102.根據流級別碼率-量化模型,分別對第一碼率路流和第二碼率路流進行建模;
10、s103.根據構建后的第一碼率路流和第二碼率路流模型和基于目標碼率的模型的參數變量約束關系,對所述模型進行優化,得到最終第一碼率路流和第二碼率路流。
11、進一步地,s101中,所述幀級別碼率-量化模型如下所示:
12、
13、其中,q表示一幀圖像的量化步長,c表示該幀的復雜度,使用殘差變換系數的絕對值之和進行表征,r表示當量化步長為q時編碼該幀數據量所需要的數據量大小,a表示該r-q模型的擬合參數;在視頻編碼過程中,所述模型根據所選的參數和最新編碼幀的實際編碼數據量大小不斷更新參數a,使得所述模型能夠適應最新動態變化的視頻內容,并作為未來基于時間一致性進行雙流配置決策的基礎。
14、進一步地,s101中,將所述幀級別碼率-量化模型轉換為流級別碼率-量化模型,具體方法包括:以關鍵幀對應的視頻幀為第一幀,以雙流的開始到結束作為基本單元進行建模,持續時間為t;預先根據所述幀級別碼率-量化模型對該t時段內原本的單流進行建模,模型如下所示:
15、
16、其中,b表示原始視頻流碼率,f表示原始視頻流幀率,為原始視頻流清晰度,表示原始視頻復雜度,在此基本單元中,第一個幀是編碼后的關鍵幀,其大小為r1,為已知量,而所有后續幀都是未編碼的非關鍵幀,其量化步長qi和復雜度ci都是未知的,i∈{2,3,…,tf},tf表示單元中的幀數量。
17、進一步地,s102中,根據流級別碼率-量化模型,對第一碼率路流進行建模,具體方法包括:所述第一碼率路流的碼率如下所示:
18、
19、其中,b′表示第一碼率路流碼率,f′表示第一碼率路流幀率,為第一碼率路流清晰度,表示第一碼率路流復雜度,第一碼率路流直接由原始單流轉化而來,保留關鍵幀r1,但與原始單流的差別在于第一碼率路流幀率f′的顯著降低與非關鍵幀預期清晰度和復雜度的變化。
20、進一步,s103中,根據流級別碼率-量化模型,對第二碼率路流進行建模,所述第二碼率路流的碼率如下所示:
21、
22、其中,b”表示第二碼率路流碼率,f表示第一碼率路流幀率,為第一碼率路流清晰度,表示第一碼率路流復雜度,替換的第一張非關鍵幀需要保持和第一路流中關鍵幀相同的清晰度q1,由于幀率f未改變,其復雜度c”1同樣可以基于過去幀,利用線性模型來預測得到。此外,從2到tf的后續幀需要保持與一致的清晰度及平均清晰度
23、進一步地,s200中,按預設規則對所述第一碼率路流和第二碼率路流進行編碼,產生兩路數據報文;具體方法包括:只有當原始視頻流根據其默認的關鍵幀決策將最新的幀編碼為關鍵幀時,才需要激活雙流編碼;在生成關鍵幀時,視頻發送方立即創建一個二級編碼器以編碼并行流,所述編碼器本質上是原始編碼器的克隆,它使用原始流作為基礎繼續進行編碼過程,相應的,接收端也激活一個二級解碼器,并在同一幀上實行先解碼先播放的策略。
24、進一步地,所述第一碼率路流保留了原關鍵幀,用于傳輸由幀內編碼的關鍵幀產生的突發流量,通過所述關鍵幀的傳輸來保障解碼或傳輸錯誤不會在幀間傳播過程中加速累積;在第一碼率路流關鍵幀的傳輸期間,新捕獲的視頻幀不再進行編碼,而是大量跳過,直到通過rtcp反饋報文確認關鍵幀傳輸完成;當關鍵幀傳輸完成后,將最新的幀編碼為p幀以繼續提供參考功能,如果所述p幀由于遠離參考幀而導致體積在預設范圍外,則重復上述過程獲取最新的p幀,直到最新的p幀體積與目標碼率在預設范圍內;所述第二碼率路流用于實時播放,而不考慮為后續幀提供最佳編解碼參考以及限制錯誤傳播等功能,第二碼率路流本文檔來自技高網...
【技術保護點】
1.一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,包括:
2.如權利要求1所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,S100中,所述碼率-量化模型構建的方法包括:
3.如權利要求2所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,S101中,所述幀級別碼率-量化模型如下所示:
4.如權利要求2所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,S101中,將所述幀級別碼率-量化模型轉換為流級別碼率-量化模型,具體方法包括:以關鍵幀對應的視頻幀為第一幀,以雙流的開始到結束作為基本單元進行建模,持續時間為T;預先根據所述幀級別碼率-量化模型對該T時段內原本的單流進行建模,模型如下所示:
5.如權利要求2所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,S102中,根據流級別碼率-量化模型,對第一碼率路流進行建模,具體方法包括:所述第一碼率路流的碼率如下所示:
6.如權利要求2所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,S103中,根據流級別碼率
7.如權利要求1所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,S200中,按預設規則對所述第一碼率路流和第二碼率路流進行編碼,產生兩路數據報文;具體方法包括:只有當原始視頻流根據其默認的關鍵幀決策將最新的幀編碼為關鍵幀時,才需要激活雙流編碼;在生成關鍵幀時,視頻發送方立即創建一個二級編碼器以編碼并行流,所述編碼器本質上是原始編碼器的克隆,它使用原始流作為基礎繼續進行編碼過程,相應的,接收端也激活一個二級解碼器,并在同一幀上實行先解碼先播放的策略。
8.如權利要求1所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,所述第一碼率路流保留了原關鍵幀,用于傳輸由幀內編碼的關鍵幀產生的突發流量,通過所述關鍵幀的傳輸來保障解碼或傳輸錯誤不會在幀間傳播過程中加速累積;在第一碼率路流關鍵幀的傳輸期間,新捕獲的視頻幀不再進行編碼,而是大量跳過,直到通過RTCP反饋報文確認關鍵幀傳輸完成;當關鍵幀傳輸完成后,將最新的幀編碼為P幀以繼續提供參考功能,如果所述P幀由于遠離參考幀而導致體積在預設范圍外,則重復上述過程獲取最新的P幀,直到最新的P幀體積與目標碼率在預設范圍內;所述第二碼率路流用于實時播放,而不考慮為后續幀提供最佳編解碼參考以及限制錯誤傳播等功能,第二碼率路流在原始流出現關鍵幀時啟動,同步將該關鍵幀編碼為一個數據量較小的非關鍵幀;第二碼率路流一旦開啟,將對后續連續捕獲的視頻幀進行編碼,且視頻幀完全由非關鍵幀構成,以保證播放的連續性。
9.如權利要求1所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,S300中,將所述兩路數據報文暫存在Pacer發送隊列中,按照預設優先級將所述數據報文發送到網絡中,具體方法包括:按照報文類型進行優先級排序,優先級從高到低分別是音頻報文,重傳報文,視頻報文,FEC冗余報文和Padding填充報文;并且第二碼率路流編碼產生的數據報文的設置比第一碼率路流編碼產生的數據報文更高的優先級,優選傳輸第二碼率路流,當同時滿足Pacer隊列中無待發送第二碼率路流數據報文且仍有可用碼率預算這兩個條件時進行第一碼率路流的發送。
10.一種面向實時視頻的偽雙流視頻編碼與傳輸系統,其特征在于,包括:偽雙流編碼碼率分配模塊、偽雙流編碼模塊和傳輸優先級控制模塊;其中:
...【技術特征摘要】
1.一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,包括:
2.如權利要求1所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,s100中,所述碼率-量化模型構建的方法包括:
3.如權利要求2所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,s101中,所述幀級別碼率-量化模型如下所示:
4.如權利要求2所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,s101中,將所述幀級別碼率-量化模型轉換為流級別碼率-量化模型,具體方法包括:以關鍵幀對應的視頻幀為第一幀,以雙流的開始到結束作為基本單元進行建模,持續時間為t;預先根據所述幀級別碼率-量化模型對該t時段內原本的單流進行建模,模型如下所示:
5.如權利要求2所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,s102中,根據流級別碼率-量化模型,對第一碼率路流進行建模,具體方法包括:所述第一碼率路流的碼率如下所示:
6.如權利要求2所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,s103中,根據流級別碼率-量化模型,對第二碼率路流進行建模,所述第二碼率路流的碼率如下所示:
7.如權利要求1所述的一種面向實時視頻的偽雙流視頻編碼與傳輸方法,其特征在于,s200中,按預設規則對所述第一碼率路流和第二碼率路流進行編碼,產生兩路數據報文;具體方法包括:只有當原始視頻流根據其默認的關鍵幀決策將最新的幀編碼為關鍵幀時,才需要激活雙流編碼;在生成關鍵幀時,視頻發送方立即創建一個二級編碼器以編碼并行流,所述編碼器本質上是原始編碼器的克隆,它使用原始流作為基礎繼續進行編碼過程,相應的,接收端也激活一個二級解碼器,并在同一幀上實行...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。