新四季網

一種基於amr音頻幀的rtp快速聚包方法

2023-06-05 18:01:21 1

專利名稱:一種基於amr音頻幀的rtp快速聚包方法
一種基於AMR音頻幀的RTP快速聚包方法
技術領域:
本發明涉及無線流媒體領域,特別涉及一種基於AMR音頻幀的RTP快速聚包方法。背景技術:
AMR,全稱Adaptive Multi-Rate (自適應多碼率),主要用於行動裝置的音頻編 碼,壓縮比比較大。它分為 AMR-WB(Adaptive Multi-Rate wide band)禾Π AMR-NB(Adaptive Multi-Rate narrow band)兩種類型,AMR音頻幀數據格式包括幀頭和語音數據兩部分。流媒體是指以流方式在網絡中傳送音頻、視頻和多媒體文件的媒體形式。而為了 支持網絡的實時傳輸服務,流媒體音視頻流都是以RTP的封裝的形式傳輸發送。目前對各 數據RTP的封裝傳輸方案都有對應的專門的RFC文檔。對AMR音頻幀來說,由於每幀數據 所佔字節數比較少,如果對每幀數據進行RTP打包發送,相當於每幀數據加上了 12位元組的 RTP頭進行傳輸,這樣將大大增加網絡的額外負擔,不利於節省帶寬。因此有必要將多個音 頻幀的訪問單元串聯起來聚合封裝到一個RTP包中,在不影響MTU(Maximum Transmission Unit最大傳輸單元,是指一種通信協議的某一層上面所能通過的最大數據報大小,以字節 為單位。MTU參數通常與通信接口有關,如網絡接口卡、串口等有關)的IP分片的情況下。

發明內容本發明目的在於提出一種將儘可能的多個AMR音頻幀封裝成一個RTP包的聚包方法。為了實現以上目的,本發明提出一種基於AMR音頻幀的RTP快速聚包方法,具體如 下步驟1 接收一個AMR音頻幀,取音頻幀頭,分離FT位,得出FT值,判斷音頻編碼 類型,根據音頻編碼類型及對應的FT值查表確認編碼模式,並獲取對應編碼模式的AMR音 頻幀長度值L ;步驟2 根據音頻幀長度L確認一個RTP封裝包可聚包的總的音頻幀數量N,步驟3 創建RTP包,填充RTP頭信息和PayloadHeader信息,其中RTP頭信息中M 位置1,PT值由SDP獲取;步驟4 :AMR音頻幀頭信息處理,將該音頻幀中的幀頭和語音數據分離,幀頭中幀 編碼模式位FT位保持不變,最低兩位補0位清0,對於沒遭到破壞的幀,幀質量指示位Q位 設置為1,遭破壞的置為0;步驟5 將AMR音頻幀幀頭和語音數據信息填充至RTP包,步驟6:循環接收AMR音頻幀,每接收到音頻數據即重複執行上述步驟4、5,直到接 收到N個音頻幀為止,將所述N個音頻幀封裝至所述RTP包。相對現有技術,本方法可以大大節省對網絡帶寬的佔用,減少網絡開銷,提高網絡 處理能力,減少頻繁數據發送造成的高丟包率。
圖1所示為打包前的AMR音頻幀幀頭的格式;圖2所示為包含三幀音頻的RTP包音頻幀頭的示意圖;
圖3所示為包含三幀音頻RTP包示意圖。
具體實施方式AMR,全稱Adaptive Multi-Rate,主要用於行動裝置的音頻編碼,壓縮比比較大。 它分為AMR-WB (Adaptive Multi-Rate wide band)禾口AMR-NB (AdaptiveMulti-Rate narrow band)兩種類型。其AMR音頻幀數據格式包括幀頭+語音數據,其中幀頭為一個字節,音頻 幀幀頭實際為六個bits,但基於實際應用的需要,一般將其定義為1個字節,後面兩位為補 0位。其具體定義如圖1所示其中,P 填充位lbit,一般設置為0。Q:lbit,為幀質量指示器。如果為0表明幀被損壞。FT (編碼模式)4bits,可查表求得該模式下的幀率和幀長度。以下是Amr-nb主要的一些編碼模式以及對應的數據速率及每幀數據的長度TypeRateframe IenMode O-AMR 4. 75-Encodes at 4. 75kbit/s, 13Mode I-AMR 5. 15-Encodes at 5. 15kbit/s, 14Mode 2-AMR 5. 9-Encodes at 5. 9kbit/s,16Mode 3-AMR 6. 7-Encodes at 6. 7kbit/s,18Mode 4-AMR 7. 4-Encodes at 7.4kbit/s,20Mode 5-AMR 7.95-Encodes at 7. 95kbit/s, 21Mode 6-AMR 10. 2-Encodes at 10. 2kbit/s, 27Mode 7-AMR 12. 2-Encodes at 12. 2kbit/s, 32以下是Amrib主要的一些編碼模式TypeRateframe IenMode 0-AMR-ffB 6. 60-Encodes at 6. 60kbit/s,18Mode 1-AMR-ffB 8. 85-Encodes at 8.85kbit/s,24Mode 2-AMR-ffB 12. 65-Encodes at 12. 65kbit/s, 33Mode 3-AMR-ffB 14. 25-Encodes at 14. 25kbit/s, 37Mode 4-AMR-ffB 15. 85-Encodes at 15. 85kbit/s, 41Mode 5-AMR-ffB 18. 25-Encodes at 18.25kbit/s, 47Mode 6-AMR-ffB 19. 85-Encodes at 19. 85kbit/s, 51Mode 7-AMR-ffB 23. 05-Encodes at 23. 05kbit/s, 59本發明核心思想在於設計一種基於AMR音頻的RTP快速聚包方法。因為AMR數據 不同編碼類型和模式對應的語音數據幀長度不同,對於採用UDP的數據承載方式,該方法 可以直接針對不同編碼類型和模式的AMR數據進行聚包,並針對各AMR數據類型和編碼模 式大小,在不超過一個MTU單元包長的情況下,通過計算,可儘可能多的將AMR音頻數據封 裝在一個RTP包中進行傳輸。
聚包原則少於一個MTU單元長度的數據,需對其進行聚包傳輸,以節省網絡帶 寬,提高網絡處理能力。AMR音頻幀的封裝完全遵循RFC3267文檔標準,一般是將幾個音頻 幀封裝成一個RTP包,該RTP包總體長度不能超過一個MTU單元大小,對於多個音頻幀的封 裝,其封裝格式為formula see original document page 6當需打包的AMR音頻幀數目為η時,又可以表示為RTP頭+Payload header (1位元組)+幀頭1+幀頭2+· · · +幀頭η+語音數據1+語音 數據2+... +語音數據η。其中Payload Header 的前 4bits 是 CMR(Codec Mode Request),根據 RFC3267 文 檔規範,如果終端沒有定義對何種模式的優先選擇性接收,CMR值必須設置為15,其他位為 0,因此PayloadHeader的值為OXFO。Payload Data指的是所有音頻幀數據,包括各音頻的 幀頭和幀數據。本發明RTP包封裝過程如下1、接收AMR音頻幀,取音頻幀頭,分離FT位,得出FT值,然後按照音頻編碼類型 (編碼類型在SDP中判斷,AMR表示NB類型,AMR-WB表示WB編碼)的不同,根據音頻編碼 類型及對應的FT值查表確認編碼模式,並獲取對應的AMR音頻幀長度值L。2、根據音頻幀長度L確認一個RTP封裝包可聚包的總的音頻幀數量N,計算公式 為N = (MTU 長度-RTP 包頭長度-PayloadHeader 長度)/L0例如MTU長度取1400位元組,L選擇為AMR-NB編碼模式ModeO所對應的13位元組, RTP包頭長度為12位元組,AMR負載幀頭PayloadHeader長度為1位元組,則計算出N為106。3、創建RTP包,長度為一個MTU單元,填充RTP頭信息和PayloadHeader信息,其 中RTP頭信息中M位置1,PT值由SDP獲取,序列號SeqNo、時間戳TimeStamp和SSRC必須 與RTSP信令中描述一致。PayloadHeader信息的值為0XF0。4、幀頭信息處理,將該音頻幀中的幀頭和語音數據分離,幀頭中幀編碼模式位FT 位保持不變,最低兩位補ο位清0,對於沒遭到破壞的幀,幀質量指示位Q位設置為1,遭破 壞的置為O ;5、將AMR音頻幀的幀頭和語音數據信息的RTP包填充。將下述數據按順序直接存 入RTP包的相應位置。AMR音頻幀的幀頭填充位置RTP 包頭長度 +PayloadHeader 長度 + (i_l)幀頭長度1個字節AMR音頻幀的語音數據填充位置RTP 包頭長度 +PayloadHeader 長度 +N+ (i_l) X L幀數據長度(L-I)個字節其中i表示需聚包的音頻幀序號,底標從1開始,直到N(由步驟2計算出的一個 RTP封裝包可聚包的總的音頻幀數量),L表示AMR音頻幀語音數據長度值。如果幀數據序號小於N,則表示該幀不是RTP包裡面的最後一幀數據,幀頭中的填 充位P位置1,表示後面有接連續的音頻幀,幀數據序號為N的幀是最後一個音頻,其幀頭最高位P位則清0,表示音頻幀頭的結束。如圖2所示為包含三幀音頻的RTP包音頻幀頭示意圖,分為幀頭1、幀頭2與幀頭3,其中幀頭格式與圖1所示的打包前的AMR音頻幀幀頭的格 式完全一樣,僅在P位的具體取值有差別。6、循環接收AMR音頻幀,每接收到音頻數據即重複執行步驟4,5,直到接收到N個 音頻幀為止。這樣,一個完整的RTP包就打好了。如圖3所示為包含三幀音頻RTP包示意 圖圖中RTP(12)表示RTP包頭佔用12位元組,PH(I)表示PayloadHeader佔用1位元組,幀頭 1 (1)、幀頭2 (1)、幀頭3 (1)分別表示各幀頭佔用1位元組,語音數據1 (L)、語音數據2 (L)、語 音數據3 (L)表示各語音數據佔用L字節,例如L取AMR-NB編碼模式ModeO所對應的13字 節。本發明可以直接針對不同編碼類型和模式的AMR數據進行聚包,並針對各AMR數 據類型和編碼模式大小,在不超過一個MTU單元包長的情況下,計算出一個RTP包所能負載 的最大音頻幀數,儘可能多的將AMR音頻數據封裝在一個RTP包中進行傳輸,且通過對AMR 數據進行直接的RTP包填充,無需耗費任何其他額外的內存資源,可以在減少網絡開銷的 同時達到高效的目的。在上述實施例中,僅對本發明進行了示範性描述,但是本領域技術人員在不脫離 本發明所保護的範圍和精神的情況下,可根據不同的實際需要設計出各種實施方式。
權利要求
一種基於AMR音頻幀的RTP快速聚包方法,具體步驟如下步驟1接收AMR音頻幀,取音頻幀頭,分離FT位,得出FT值,判斷音頻編碼類型,根據音頻編碼類型及對應的FT值查表確認編碼模式,並獲取對應編碼模式的AMR音頻幀長度值L;步驟2根據音頻幀長度L確認一個RTP封裝包可聚包的總的AMR音頻幀數量N,步驟3創建RTP包,填充RTP頭信息和PayloadHeader信息,其中RTP頭信息中M位置1,PT值由SDP獲取;步驟4對AMR音頻幀頭信息處理,將該音頻幀中的幀頭和語音數據分離,幀頭中幀編碼模式位FT位保持不變,最低兩位補0位清0,對於沒遭到破壞的幀,幀質量指示位Q位設置為1,遭破壞的置為0;步驟5將AMR音頻幀幀頭和語音數據信息填充至RTP包,步驟6循環接收AMR音頻幀,每接收到音頻數據即重複執行上述步驟4、5,直到接收到N個音頻幀為止,完成所述N個音頻幀封裝至所述RTP包。
2.如權利要求1所述的基於AMR音頻幀的RTP快速聚包方法,其特徵在於步驟1中所 述編碼類型在會話描述信息中SDP判斷,AMR或AMR-NB表示NB編碼類型,AMR-WB表示WB 編碼類型。
3.如權利要求2所述的基於AMR音頻幀的RTP快速聚包方法,其特徵在於步驟2中 確定N的計算公式如下N = (MTU 長度-RTP 包頭長度-PayloadHeader 長度)/L其中MTU長度為網絡最大傳輸單元,單位為字節,RTP包頭長度為12位元組,AMR負載頭 PayloadHeader長度為1位元組。
4.如權利要求1所述的基於AMR音頻幀的RTP快速聚包方法,其特徵在於步驟3中, PT值由SDP獲取,SeqNo, TimeStamp和SSRC與RTSP信令中描述一致。
5.如權利要求3所述的基於AMR音頻幀的RTP快速聚包方法,其特徵在於步驟5進 一步包括51.確定AMR音頻幀頭在RTP包中的填充位置,將幀頭按順序直接存入RTP包的相應 填充位置;52.確定AMR音頻幀語音數據在RTP包中的填充位置,將語音數據按順序直接存入 RTP包的相應填充位置。
6.如權利要求5所述的基於AMR音頻幀的RTP快速聚包方法,其特徵在於步驟51, AMR音頻幀頭在RTP包中的填充位置確定方法如下RTP 包頭長度 +PayloadHeader 長度 +(i_l)步驟52AMR音頻幀語音數據在RTP包中的填充位置確定方法如下RTP 包頭長度 +PayloadHeader 長度 +N+(i_l) XL其中RTP包頭長度為12位元組,PayloadHeader長度為1位元組,(i_l)單位為字節,i表 示需聚包的音頻幀序號,底標從1開始,直到N。
7.如權利要求6所述的基於AMR音頻幀的RTP快速聚包方法,其特徵在於如果幀數 據序號i小於N,則表示該幀不是RTP包裡面的最後一幀數據,RTP包中幀頭中的填充位P 位置1,表示後面有接連續的音頻幀,幀數據序號為N的幀是最後一個音頻,其幀頭最高位P位則清0,表示音頻幀頭的結束。
8.如權利要求3所述的基於AMR音頻幀的RTP快速聚包方法,其特徵在於 PayloadHeader 信息的值為 OXFO。
9.如權利要求3所述的基於AMR音頻幀的RTP快速聚包方法,其特徵在於MTU長度取 1400位元組,L選擇為AMR-NB編碼模式ModeO所對應的13位元組。
全文摘要
本發明涉及一種基於AMR音頻幀的RTP快速聚包方法,步驟如下1接收AMR音頻幀,取音頻幀頭,確認編碼模式,並獲取對應編碼模式的AMR音頻幀長度值L;2根據音頻幀長度L確認一個RTP封裝包可聚包的總的AMR音頻幀數量N;3創建RTP包,填充RTP頭信息和PayloadHeader信息;4對AMR音頻幀頭信息處理,將該音頻幀中的幀頭和語音數據分離;5將AMR音頻幀幀頭和語音數據信息填充至RTP包,6循環接收AMR音頻幀,每接收到音頻數據即重複執行上述步驟4、5,直到接收到N個音頻幀為止,其中音頻幀頭和幀數據統稱為PayloadData信息。本發明方法可有效減少網絡開銷,減少頻繁數據發送造成的高丟包率,可大大提高流媒體業務的服務質量。
文檔編號H04L1/00GK101814973SQ20101010539
公開日2010年8月25日 申請日期2010年1月29日 優先權日2010年1月29日
發明者歐志 申請人:深圳市融創天下科技發展有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀