在傳統的音響系統里,聲音信號是模擬信號,它的振幅具有隨時間連續變化的特性。對模擬音頻信號進行處理、存儲和傳送都會引入噪聲和信號失真,并且隨著復制次數的增加,每次都會加入新的噪聲和失真,信號質量會越來越差。而數字音頻技術的出現,解決了上述模擬信號中的諸多問題。
數字音頻技術是把模擬音頻信號變換為振幅不變的脈沖信號,音頻信號的信息量全部包含在脈沖編碼調制(Pulse Code Modulation,PCM)中。各種處理設備引入的噪聲和產生的失真與數字信息完全分離。因此,數字音頻信號具有:復制不走樣、抗干擾能力強、動態范圍大、可遠距離傳輸、可以遠程監控等優點。
現如今,數字音頻信號還可以融入到網絡傳輸系統中,在一條傳輸線路上同時實行多路音頻信號的傳輸,大大節省了傳輸運行成本,簡化了傳輸線路。
音頻信號的數字化
將模擬信號轉換成數字信號,需要對模擬信號進行一系列的處理,如圖1所示,先對模擬信號進行采樣,再經過低通濾波器去除掉采樣中產生的高頻失真,通過量化將采樣后的數值調整為整數,再經過二進制編碼后生成數字信號。
圖1 音頻信號的數字化
采樣,是每隔一定的時間間隔,抽取信號的瞬時幅度值。每一秒鐘所采樣的次數叫做采樣頻率。以CD為例,采樣頻率為44.1kHz,即1秒鐘對模擬信號進行了44100次取值,如圖2b所示,采樣后的信號變成了多個密布的點。采樣頻率越高,抽取的點密度越高,信號也就越精準。
圖2a原模擬信號頻譜
圖2b采樣后的頻譜
在圖2b中采樣過后的信號除了原始頻譜之外,還會額外產生一些高頻的失真,形成新的頻譜。這些失真的頻譜以nfu(n為正整數)為中心、左右對稱,它的頻譜分布與原信號的頻譜形狀相同。采用低通濾波器(LPF)把新增加的多余的頻譜濾掉就可以恢復原信號的頻譜。
根據奈奎斯特(Nyquist)采樣定理:采樣頻率fs大于或等于采樣信號最高頻率fu的2倍,就可以通過低通濾波器恢復無失真的原始信號。如果fs<2fu,采樣過程中產生的一部分高頻失真會與原始頻譜相互疊加,如圖3中會產生頻譜混疊失真的現象,這種疊加是無法用低通濾波器分開的。
圖3 頻譜混疊失真
因此采樣頻率fs必須大于原信號中最高頻率的2倍以上,新增加的頻譜與原信號的頻譜才不會相互疊加。例如,人耳的聽音頻率上限是20kHz,采樣頻率最低應為40kHz。但低通濾波器有一定的截止邊沿寬度,是按一定規律逐步對信號衰減濾除的,為了較好的防止產生高頻失真,通常fs=(2.1~2.5) fu。CD的采樣頻率是44.1kHz,它等于20kHz的2.205倍。
采樣后的振幅值并不是整數,且是隨機變化的。還需要將這些隨機變化的振幅值通過四舍五入的方法將其變換為能用二進制數列來表達的數值,這個過程就是量化,單位是bit(比特),如圖4中采樣和量化所示。采樣值是6.4的幅值量化后取整數6,采樣值是3.6的幅值量化后取整數4。
圖4 A/D轉換的三個步驟
將量化后的二進制數組按照時間順序排列成可以順序傳送的脈沖序列,這個過程就是編碼。由于數字電路以開關的通和斷(1和0)兩種狀態為基礎,可以大大簡化數字電路的運算,因此二進制編碼在數字技術中獲得了廣泛的應用。
圖5 量化誤差與量化位數的關系
量化級數越多,量化誤差就越小,聲音質量就越好,如圖5所示,3bit是23個二進制數,6bit是26個二進制數。對于音頻信號,由于動態范圍較大,而且要求的信噪比又高,所以量化的取值大一些,通常為16bit,甚至20-24bit。
以太網的傳輸方式
以太網創建于1980年,它是一種可以在互連設備之間相互傳送數據的技術。發展至今日,因它具有成本低、速率快、可靠性高等特點被廣泛的應用。我們可以通過以太網傳送Email、圖片、聲音、視頻等等。以太網絡使用CSMA/CD(載波監聽多路訪問及沖突檢測)技術,是一種爭用型的介質訪問控制協議。它的工作原理是: 發送數據前先偵聽信道是否空閑 ,若空閑,則立即發送數據。若信道忙碌,則等待一段時間至信道中的信息傳輸結束后再發送數據;若在上一段信息發送結束后,同時有兩個或兩個以上的節點都提出發送請求,則判定為沖突。若偵聽到沖突,則立即停止發送數據,等待一段隨機時間,再重新嘗試。我們稱這種傳輸機制為“Best Effort”(盡力而為),也就是說當數據抵達端口后,本著FlFO(先入先出)的原則轉發。不對數據進行分類,當數據進入端口的速度大于端口能發送的速度時,FIFO按數據到達端口的先后順序讓數據進入隊列,同時,在出口讓數據按進隊的順序出隊,先進的數據將先出隊,后進的數據將后出隊。采用CSMA/CD控制方式的特點是:原理比較簡單,技術上容易實現,網絡中各工作站處于平等地位 ,不需集中控制,不提供優先級控制。
在以太網中,我們經常會遇到“帶寬”一詞,它是指在單位時間(一般指的是1秒鐘)內能傳輸的數據量。也就是在規定時間內從一端流到另一端的信息量,即數據傳輸率。數字信息流的基本單位是bit(比特),時間的基本單位是s(秒),因此bit/s(比特/秒,也用bps表示)是描述帶寬的單位,1bit/s是帶寬的基本單位。不難想象,以1bit/s的速率進行通信是非常緩慢的。幸好我們可以使用通信速率很快的設備,比如56k的調制解調器利用電話線撥號上網,其帶寬是56000bit/s(1k=1000bit/s), 電信ADSL寬帶上網在512kbit/s至100Mbit/s之間,而現如今的以太網則可以輕松達到100Mbit/s以上(1Mbit/s=1000*1000bit/s=1,000,000bit/s)。
以千兆網(1Gbit/s)為例:假如說交換機的端口帶寬是1Gbit/s,也就是1000,000,000bit/s,則說明每秒可傳輸1000,000,000個二進制的“位”,那么1bit所占用的時間是1÷1000,000,000=1ns。也就是每個二進制位(1bit)之間的時間間隔大于1ns時,就不會發成沖突,如圖6所示。
圖6
但在以太網傳輸中,并不是以二進制位(bit)來傳輸的,而是以“幀”為單位的。如圖7所示,在一幀中至少包含了46Byte(字節)的數據,那么一個最小的以太網幀是72Byte;如果一幀中包含的最大數據是1500Byte,那么一個最大的以太網幀是1526Byte。
圖7 以太網幀結構
網絡設備和組件在接收一個幀之后,需要一段短暫的時間來恢復并為接收下一幀做準備,也就是相鄰兩幀之間是有一個間隙的,IFG(Interframe Gap)幀間距。IFG的最小值是12Byte,如圖8所示。
圖8
我們假設這兩幀數據在千兆網(1Gbit/s)內傳輸,那么兩幀之間的時間間隔大于96ns就不會發生沖突。
隨著網絡帶寬的提升,千兆網在傳統以太網的基礎上對幀的數據量做出了一定的修改。采用了載波延伸(Gamier Extension)的方法,將最小字節擴展到512Byte,即凡是發送幀長不足512Byte時,就填充特殊字符(0F)補足。當許多短幀需要發送時,如果每一幀都擴展為512Byte,會造成資源的巨大浪費。因此又設定了幀突發(Frame Bursting)的方法,可以解決此問題,第一個短幀使用載波延伸,一旦發送成功,則隨后的短幀連續發送直到1500Byte為止。此期間由于線路始終處于“忙”的狀態,不會有其它站點搶占信道。
傳統以太網如何傳輸實時數據流(音、視頻流)
以太網通過RTP(Real-time Transport Protocol)實時傳輸協議為數據提供了具有實時特征的端對端傳送服務。RTP 本身并不能保證傳送,也不能保證防止無序傳送。因此,想要對所有的數據流進行排序,就離不開對數據的緩沖(Buffer)。但是,一旦采用緩沖的機制就又會帶來新的問題——延時。所以我們在網絡上聽歌、看電影的時候,都會緩沖后才開始播放。但這個緩沖時間,在專業音、視頻傳輸領域里是不能被接受的。
數字音頻信號對以太網的要求
我們以CD為例,它的采樣頻率是44.1kHz,量化位數是16bit。每次采樣的時間是1÷44.1×1000≈22.7μs。我們對聲音的要求是連續不間斷的,也就是要求每個采樣下的數據傳輸間隔不能大于22.7μs。而在千兆網(1Gbit/s)里,兩幀之間的最小時間間隔只有96ns,遠小于我們所要求的22.7μs,那么在這個帶寬下,我們是完全可以傳輸連續不間斷的音頻信號的。
如果我們在1Mbit/s的帶寬下傳輸數據,那么1bit所占用的時間是1÷1,000,000=1μs,兩幀之間的間隔是96μs,這時候如果傳輸CD數字音頻信號就會存在斷斷續續的問題了。
從上面兩個例子不難看出,只要網速足夠快,也就是網絡有足夠的帶寬,我們就可以很順利的在網絡上傳輸數字音頻信號。但大多數情況下,由于帶寬通常是由多個設備共享的,我們不單單只用它去傳輸一路數字音頻信號,我們會同時傳送多路數字音頻信號,還會傳輸郵件、網頁、圖片等等其它的數據。而所有的發送端沒有基于時間的流量控制,那么這些發送端永遠是盡最大可能發送數據。這樣來自不同設備的數據流就會在時間上產生重疊,即我們前文所說的沖突。這一定會影響數字音頻信號的傳輸,為了改善這種傳輸機制,提高部分數據傳輸效率,以太網通過QoS優先機制進行轉發,可以保證一部分數據的傳輸。
什么是QoS
QoS(Quality of Service)是服務質量的簡稱,它包括保證傳輸的帶寬,降低傳輸的延時,降低數據的丟失率以及延時抖動等。按照其工作的能力可分為以下幾種模型:
1、DiffServ(Differentiated Service,區分服務)模型,根據服務要求對不同業務的數據進行分類,對數據按類進行優先級標記,然后有差別地提供服務。先行轉發優先級高的數據,并將優先級低的數據做端口緩存,待網絡中無高級別數據時再轉發低級別數據,如圖9所示。
圖9
AVB 標準定義了兩個流量類型,A類和B類。A類流優先級是5,B類流優先級是4,這兩種數據相比較,A類數據流會被先行轉發。
圖10
2、IntServ(Integrated Service,綜合服務)模型,在節點發送數據前,需要向網絡申請資源預留,確保網絡能夠滿足數據流的特定服務要求。它可以提供保證服務和負載控制服務兩種服務。保證服務,提供保證的延遲和帶寬來滿足應用程序的要求;負載控制服務,保證即使在網絡過載的情況下,也能對數據提供與網絡未過載時類似的服務。
在網絡中大量的數據極有可能在一瞬間抵達端口,保證服務如果要為每一個數據流提供QoS服務就變得不可想象了。因此,IntServ模型很難獨立應用于大規模的網絡,需要與流量整形(Traffic Shaping)結合使用。
流量整形(Traffic Shaping)
流量整形是為了避免在以太網中發生丟棄數據的情況,通常采用漏桶算法(Leaky Bucket)來完成流量整形或速率限制(Rate Limiting)。它的主要目的是控制數據注入到網絡的速率,平滑網絡上的突發流量。
圖11流量整形示意圖
漏桶算法提供了一種機制,通過它突發流量可以被整形,以便為網絡提供一個穩定的流量。在概念上,漏桶算法可以作如下理解:到達的數據被放置在底部具有漏孔的桶中(數據緩存);數據從漏桶中漏出,以常量速率注入網絡,因此平滑了突發流量,如圖12所示。
圖12漏桶算法
主機在每經過一個時間間隔向網絡輸出一個數據包,因此產生了一致的數據流,平滑了突發的流量。AVB 標準定義了兩個流量類型,A類和B類。A類的時間間隔為125μs,B類的時間間隔為250μs。A類要求流具有更緊密的等待時間,并且具有較短的觀察間隔,這意味著其數據包更小并且更頻繁地傳輸。
圖13
當數據流具有相同尺寸的時候,每個時間間隔傳輸一個數據的工作機制沒有任何問題。但對于可變長度的數據來說,這種工作機制可能存在一點問題,此時,最好每個時間間隔傳輸固定數目的字節。
AVB有兩種流格式:AM824和AAF。AM824支持24bit音頻,iec60958音頻編碼(SPDIF和AES3),SMPTE時間碼和MIDI。對于發送端AM824有三個選項“non-blocking(sync)”、“non-blocking(aync)”和“blocking”。
AM824(non-blocking,synchronous),典型的AVB音頻設備使用此模式進行傳輸。每個觀察周期發送一幀,每個以太網幀總發送相同數量的采樣,在48kHz采樣時,每幀包含6個采樣;在96kHz時,每幀包含12個采樣。
AM824 (non-blocking, async packetization),此模式由于打包器和發送器的觀測間隔不同步,有可能發送一個臨時的以太網幀,其中包含一個或多個采樣。一個打包器處理多個時鐘域的設備通常采用此格式。因為它可以發送臨時的以太網幀,在48kHz采樣時,每幀包含7個采樣;在96kHz時,每幀包含13個采樣,它需要預留足夠的帶寬。蘋果Mac采用此模式。
AM824 (blocking)是一些火線設備使用的模式,因為它更容易打包和拆包。在48kHz采樣時,每幀包含8個采樣;在96kHz時,每幀包含16個采樣。
AAF是IEEE p1722a中定義的新的打包格式。它比AM824開銷低,要求數據流中每個幀具有相同的大小和格式,并允許16bit、24bit和32bit的量化,以及每個幀的采樣數量選擇。每個幀的大小和格式總是相同的。
圖14
從圖14中我們可以看出幾個典型的AVB流在萬兆網(10Gbps)中的傳輸規律。比如:48kHz采樣32bit的立體聲音頻流,實際需要的帶寬大約是3Mbps,采用Class A的傳輸間隔,1秒鐘發送8000組數據(1÷8000=0.000125s=125μs),其中每組數據最多由80個幀組成。如果每幀都按照最大數據來傳輸,在前文中提到過最大幀是1526Byte(如圖7中所示),再加上每幀的幀間隔12Byte,共1538Byte,相當于12,304bit(1Byte=8bit),每組80個幀相當于12,304×80=984,320bit,每秒傳輸8000組相當于984,320×8000=7,874,560,000bit/s≈7.87Mbps。那么在10Gbps的帶寬下,如果保留75%的帶寬用于傳輸AVB流,可以傳輸952個這樣的數據流。
AVB可以實現全雙工的工作模式,每幀的數據量和傳輸的數據類型有關,也和時間間隔有關,從圖14中不難看出,不同類型的數據所占用的字節并不是一個絕對的固定值。流量整形固定了實時數據流(音、視頻流)的發送時間間隔和幀大小,當傳統的異步以太網數據流(郵件、網頁等)進入網絡時,會不會對實時數據流有所影響呢
802.1Qav:排隊及轉發協議(Queuing and Forwarding Protocol,簡稱Qav)
Qav協議的作用是確保傳統的異步以太網數據流不會干擾到AVB的實時數據流。AVB交換機把收到的各種數據分類,分別進入不同的轉發隊列,并重新賦予優先級,其中實時音視頻流數據擁有最高優先級。為了避免沖突需要兩種調度算法,一種是基于可信因子的整形算法CBS(credit based shaper transmission selection algorithm),一種是嚴格的優先級選擇算法。各種不同的普通數據按照嚴格的優先級算法進行調度,當與流數據發生沖突時,則調用CBS算法。
對時間敏感的實時數據流轉發采用偽同步模式(Pseudo-synchronous),這個機制依賴于精準時間同步協議(PTP)提供的8kHz時鐘。在每隔125μs的時間間隙(1÷8000=0.000125s=125μs),包含AVB數據的以太網等時幀就會被進行轉發。在優先保證等時幀數據傳輸的條件下,繼續提供普通異步傳輸的服務,這就是Qav的優先級管理(Prioritize)及流量整形(Traffic Shaping)。
當數據經過多個交換機進行傳輸時,即使在相同的帶寬下,也會因為路徑不同導致傳輸時間的偏差,如何保證在整個網絡里都具備相同的時間間隔呢?還需要一個時鐘同步機制,將網絡中的所有設備同步到相同的時鐘上,來提高AVB流量整形的精準度。
802.1AS:精準時間同步協議(Precision Time Protocol,簡稱PTP)
時鐘同步的目的是維護一個全局一致的物理或邏輯時鐘,或者說把分布在各地的時鐘對準(同步起來),使得系統中的信息、事件有一個全局一致的解釋。IEEE802.1AS采用點對點的工作模式,時間同步過程只在相鄰設備之間進行,設備自己通過外帶方式實現接口之間的時間同步,不經過內部交換板。它定義了主時鐘選擇與協商算法、路徑延時測算與補償算法、以及時鐘頻率匹配與調節的機制,可用于生成時鐘以及對網絡音視頻系統的修復。PTP定義了一個自動協商網絡主時鐘的方法,即最優主時鐘算法(Best Master Clock Algorithm,簡稱BMCA)。BMCA定義了底層的協商和信令機制,用于標識出AVB局域網內的主時鐘(Grandmaster)。
IEEE802.1AS的核心在于時間戳機制(Timestamping)。PTP消息在進出具備IEEE802.1AS功能的端口時,會根據協議觸發對本地實時時鐘(RTC)的采樣,將自己的RTC值與來自該端口相對應的主時鐘(Master)的信息進行比較,利用路徑延遲測算和補償技術,將其RTC時鐘值匹配到PTP域的時間。當PTP同步機制覆蓋了整個AVB局域網,各網絡節點設備間就可以通過周期性的PTP消息交換精確的實時時鐘調整和頻率匹配算法。最終,所有的PTP節點都將同步到相同的“掛鐘”(Wall Clock)時間,即Grandmaster時間。消息交換過程如下:
1. Master發送Sync消息,記下該消息的本地發送時間t1。
2. Slave接收到Sync消息,并記下其接收到該消息的本地時間t2。
3. Master有兩種方式告訴Slave該Sync消息的發送時間t1。
1) 將t1時間嵌入到Sync消息中,這需要某種硬件處理以獲得高精度。
2)在后續的Follow_Up消息中發送
4. Slave發送Delay_Req消息往Master,并記下發送時間t3。
5. Master接收到Delay_Req,并記下該消息到達時間t4。
6. Master發送Delay_Resp消息告知Slave t4。
利用這四個時間可以算出Master和Slave之間的時鐘差值,前提是鏈路是對稱的,即發送和接收延時一樣。計算公式為:
offset = ((t2 - t1) - (t4 - t3))/2
one_way_delay = ((t2 - t1) + (t4 - t3))/2
圖15
在最大7跳的網絡環境中,理論上PTP能夠保證時鐘同步誤差在1μs以內。由于串行連接交換機會影響延時的對稱性,使同步精度降低,因此在構架AVB網絡時建議采用對稱的鏈路設計。
一旦主時鐘被選定,所有局域網節點的PTP設備將以此主時鐘為參考值,如果Grandmaster發生變化,整個AVB網絡也能通過BMCA在最短時間內確定新的主時鐘,確保整個網絡保持時間同步。
該標準所規范的協議嚴格保證了實時數據流在基于以太網延時固定或對稱的傳輸媒質中的同步傳送。其內容包括在網絡正常運行或添加、移除或重新配置網絡組件和網絡故障時,對時間同步機制的維護,為以太網提供完美的低延遲、低抖動的時鐘,保證高質量的帶寬,使服務快速抵達。
在確保了時間精準之后,如果帶寬不充足會導致漏桶很快存滿并且有數據溢出,如果是音、視頻數據溢出被丟棄,就會出現斷斷續續的問題,還有可能丟失掉一部分聲音或畫面,因此我們還需要保證有足夠的帶寬可以傳輸實時音視頻數據流。
802.1Qat:流預留協議(Stream Reservation Protocol,簡稱SRP)
為了提供有保障的QoS,流預留協議確保了實時數據流設備間端到端的帶寬可用性。如果所需的路徑帶寬可用,整個路徑上的所有設備(包括交換機和終端設備)將會對此資源進行鎖定。符合SRP標準的交換機能夠將整個網絡可用帶寬資源的75%用于AVB鏈路,剩下25%的帶寬留給傳統的以太網流量。
在SRP中,流服務的提供者叫做Talker,流服務的接收者叫做Listener。同一個Talker提供的流服務可同時被多個Listener接收,SRP允許只保障從Talker到Listener的單向數據流流動。
只要從Talker到多個Listener中的任意一條路徑上的帶寬資源能夠協商并鎖定,Talker就可以開始提供實時數據流傳輸服務。SRP內部周期性的狀態機制維護著Talker及Listener的注冊信息,能夠動態的對網絡節點狀態進行監測并更新其內部注冊信息數據庫,以適應網絡拓撲的動態改變。無論Talker還是Listener,都可以隨時加入或者離開AVB的網絡,而不會對AVB網絡的整體功能和狀態造成不可恢復的影響。
1722:音視頻橋接傳輸協議(Audio/Video Bridging TransportProtocol,簡稱AVBTP)
AVBTP定義了局域網內提供實時數據流服務所需的二層數據格式,實時數據流的建立、控制及關閉協議。AVBTP為物理上分隔的音、視頻編解碼器之間建立了一條帶有低延遲的虛擬鏈路。
各種壓縮的與非壓縮的原始音頻、視頻數據流經由AVBTP協議進行打包(填充由SRP保留的流ID,打上PTP產生的時間戳以及媒體類型等相關信息),通過AVBTP專用的以太網幀類型進行組播,從流服務的提供者(Talker)發出,由AVB交換機進行轉發,再被注冊過此實時數據流服務的接收者(Listener)接收并解包、解碼然后輸出。
AVBTP每125μs發送一次這個幀,它總是相同大小的數據流。每個流中可以由1-60個通道組成,最多可支持64個流。
AVB——以太網音視頻橋接技術(Ethernet Audio Video Bridging)是IEEE的802.1任務組于2005開始制定的一套基于新的以太網架構的協議,用于實時音視頻的傳輸協議集。除了以上描述的相關協議之外,還包括:
802.1BA:音視頻橋接系統(Audio Video Bridging Systems)
AVB系統標準定義了一系列在生產制造AVB兼容設備過程中使用的預設值和設定,使得不具備網絡經驗的用戶也能夠去建立、使用AVB網絡,而不必對其進行繁瑣的配置。
1733:實時傳輸協議(Real-Time Transport Protocol,簡稱RTP)
RTP是一種基于三層UDP/IP網絡的協議,為了在基于IP的三層應用上利用二層AVB的性能,IEEE 1733對RTP進行了擴展,在通過橋接及路由的局域網內提供時間同步、延遲保障和帶寬預留的服務,以提供實時數據頻流的傳輸。其中涉及到封包格式,流的建立、控制、同步及關閉等協議。
1722.1:負責設備搜尋、列舉、連接管理、以及基于1722的設備之間的相互控制。用于AVB設備的發現,枚舉,連接管理,固件升級等。
TSN (Time Sensitive Network)時間敏感網絡IEEE 802.1任務組在2012年11月的時候正式將AVB更名為TSN——Time Sensitive Network時間敏感網絡。也就是說,AVB只是TSN中的一個應用。
此外,TSN還應用在汽車控制領域、商用電子領域、實時監控或實時反饋的工業領域。