【摘要】電腦顯示器分享服務由于互動操作應用的需求,因而應整個顯示器畫面獲取、編碼、串流、解碼等技術,串流服務已成為該項服務成功與否的關鍵技術。在這種背景下,本文針對串流抹除碼原理加以詳細介紹,并提出一個可以達到極低延遲的動態串流抹碼技術。
【關鍵詞】串流技術;互動式;電腦顯示器;應用
一、引言
近端顯示器分享平臺,或是利用移動裝置連接到云端執行實時運算的交互式顯示器分享平臺,這些應用都有一個實時互動的特性。因為是實時交互式的服務平臺,所以對于畫面呈現所可以忍受的延遲要求與一般串流服務,例如:隨選信息服務、網絡相對嚴格,其可以忍受的延遲時間是150ms,而對于高動態電腦畫面可以忍受的延遲時間更降到必須低于100ms,因此我們必要發展出極低延遲傳輸保護技術進而達到顯示器分享與交互式顯示器分享平臺運作順暢。專門為實時信息串流所設計的錯誤更正碼其特性應該是:
(1)經錯誤更正碼編碼器編碼后的串流信息應該與原始串流信息一樣有順序地排列;
(2)錯誤更正碼譯碼器可以有順序地譯碼出原始串流信息。然而傳統錯誤更正碼(如里德-所羅門碼)并無上述特性,尤其在解碼端必須要等到所有經編碼后的串流信息完全接受到后,才可以將錯誤的原始串流信息全部回復,所以并未對回復的時間做最佳化設計。
雖然串流抹除碼有回復時間最佳化設計但是在一般建構上串流抹除碼(Streaming Erasure Code)其碼率(code rate)是固定,也就是其錯誤更正的能力是固定。但在真實應用情境里,應對數據重要性及網絡狀況的變化其碼率應該動態變化才可以讓系統效能達到最佳化的效果,因此我們提出可動態調整保護強度及延遲保證的串流抹除碼,其特性是先針對重要數據進行低碼率編碼來增加冗余保護封包,當偵測到網絡狀況良好時就可以減少大部分的冗余保護封包以提升頻寬使用效率,反之則增加冗余保護封包應對網絡狀況不佳所產生封包大量遺失的狀況。
二、串流抹除碼的原理及網絡狀況調整
(一)串流抹除碼(Streaming Erasure Code)的基本原理
傳統錯誤更正碼(如里德-所羅門碼)也稱為最大距離分離區塊碼(Maximum distance separate block code),雖然它是現今許多傳輸系統都是利用它來保護信息,但是最大距離分離區塊碼(Maximum distance separate block code)并未將信息回復時間做最佳化的設計,也就是說假定其碼率 R=m/n,其中m為信息封包個數,n-m為冗余保護封包,可以解決連續遺失封包個數為k時,所有遺失的封包必須等到n個封包全接收完全才有辦法回復遺失的封包,因此串流抹除碼就是用來改善此缺點,而串流抹除碼的建構程序應該是先建立一個具有保證回復時間的低延遲區塊碼,之后再經過處理后就可以轉化成可以保護信息串流的串流抹除碼。
(二)根據數據重要性及網絡狀況調整
串流抹除碼強化保護機制的方法雖然串流抹除碼有延遲保證的特性,但還是固定碼率,并無法針對網絡狀況惡化或是資料重要性作動態調整,因此本文先探討如何利用串流抹除碼的特性建構出適用于解決網絡惡化及數據重要性的強化保護機制,之后再根據所建構出的強化保護機制發展出可動態調整保護強度及延遲保證的串流抹除碼。傳統信息串流服務解決封包遺失的方法不外乎結合錯誤更正碼或是自動重傳機制,錯誤更正碼應用時頂多對所有的信息做均等保護,并未針對重要信息做強化的保護機制,雖然錯誤更正碼的研究領域里有探討不均等的錯誤保護機制,其觀點是在固定碼率下根據資料重要性設計及建構錯誤更正碼的編碼代數結構以達到保護重要資料的目的,但并無法實時動態調整其結構,另一方面自動重傳機制雖然可以根據網絡狀況來決定是否應該重新傳送被遺失的封包,但是在網絡延遲時間太長時并無法達到實時性的需求,先前提到串流抹除碼中冗余保護封包只需要重新進行線性組合即可改變其保護能力,因此可利用改變冗余保護信息內線性組合內容以達到強化保護機制的目的。
三、可動態調整保護強度及延遲保證的動態串流抹除碼技術
下文我們根據原本串流抹除碼(B,T)、根據資料重要性及網絡狀況所產生強化保護信息、網絡回報狀況建構出可動態調整保護強度及延遲保證的串流抹除碼。根據這一流程,可先就普通信息及重要數據進行串流抹除碼編碼產生相對應的冗余保護信息,之后再針對網絡回報的狀況記錄接收或沒接受到封包的序號,然后根據紀錄序號的結果來決定是否啟動強化及節省傳輸兩機制。以啟動節省傳輸機制來說,當網絡回報已經接受的封包信息,如接收封包的信息Si已經收到并將其序號i記錄下來,然后我們可以檢查即將要傳送的封包S1其冗余保護封包的內容是否包含Si的信息,如果有就將其信息刪除,可以借助這一機制達到節省傳輸量的目的。當封包信息一直沒有收到或是遺失,接收端會知道遺失封包的序號并且記錄下來,當封包遺失的數量小于串流抹除碼可回復B個連續遺失封包量與數據重要性的強化保護機制可對抗BI連續錯誤封包時,強化保護機制是不會啟動,但當遺失封包的量大于BN時就會回到網絡狀況差的強化保護機制。
根據可動態調整保護強度與延遲保證的串流抹除碼的特性,我們將H.264/AVC信息串流信息傳送在抹除通道中,觀察其對抗的能力及冗余保護封包是否有無增加或減少。我們使用CITY 4CIF sequence,辨率704x576 經H.264編碼器編碼,其編碼的frame rate 等于10ps,GOP結構IPPPP,GOP大小為10,信息串流數據會經過串流抹除碼編碼后整理成一傳輸封包傳送出去,傳送的封包包含信息串流信息與冗余保護信息,其中冗余保護信息隨數據重要性與網絡狀況動態調整,我們根據串流抹除碼(2,4)為基底來執行可動態調整保護強度與延遲保證之串流抹除碼的模擬實驗,其模擬實驗中我們設定抹除時間長度分別為0~70ms,由此觀察串流抹除碼(2,4)與可動態調整保護強度與延遲保證之串流抹除碼的差別。
具有延遲最佳化的抹除碼其特性應有:
(1)在固定延遲時間下,隨著冗余信息增加其可對抗之抹除時間應該增加;
(2)當固定可對抗抹除時間長度時其增加的冗余信息比例應該最少。我們在固定延遲時間50ms下根據各種不同抹除碼的編譯碼原理,仿真與計算在不同冗余信息比例下可對抗的最長抹除時間,在此我們比較三種不同的抹除碼,分別是里德-所羅門碼、串流抹除碼、重要信息占全部信息量15%的動態串流抹除碼,其中表現最好的是串流抹除碼,其原因是串流抹除碼是針對恢復時間做最佳化設計,次之是動態串流抹除碼,雖然動態串流抹除碼有對延遲時間做最佳化設計,但是因為為了保護15%的重要信息量而增加了15%的冗余信息,也因此其性能與串流抹除碼比差15%,而最差的是里德-所羅門碼,其原因是里德-所羅門碼并未對復原時間做最佳化設計,所以效能會是最差,由此可知串流抹除抹碼及動態串流抹除碼與傳統的里德所羅門碼比具備恢復時間最短的特性。
四、結論
本文介紹延遲保證的串流抹除碼的基本學理,由基本學理可知我們可以根據抹除時間長短設計出延遲最佳化的串流抹除碼,但是一般抹除碼的碼率是固定,實際應用上網絡狀況及數據重要大小是會動態變化,因此我們利用串流抹除碼的特性發展出可以針對數據重要性及網絡狀況的強化保護機制,在不受固定碼率的限制下產生出強化保護信息,之后我們根據其產生的強化保護信息與網絡回報狀況動態增減保護信息,發展出可動態調整保護強度及延遲保證的串流抹除碼,仿真結果顯示的確會隨網路狀況變化動態調整其冗余信息并有效降低封包遺失率。
參考文獻
[1]李志峰.為所有應用程序“伴音”[J].微電腦世界, 1998 (25).
[2]水下蟲蟲.應用程序只有我能用[J].電腦應用文萃, 2005 (11).