本計畫之多媒體通訊與串流整合平台為MPEG-21 標準 Part 12 (以下簡稱 Test Bed)。其主要目的是將多種先進的多媒體技術實作並整合於此架構中,例如可調層次式 視頻編碼技術,串流多媒體伺服器與資料庫,智財管理與保護等等。平台的發展歷程自 2002 年 12 月開始,先將此測試平台提案到 MPEG 標準委員會,成為 MPEG-21 Part 12:
Multimedia Test Bed for Resource Delivery 的工作草案(Working Draft)。經過持續努力,
這個工作草案於2003 年 12 月晉升至大會草案(Committee Draft/Proposed Draft of Tech-nical Report)。目前本案已正式成為 MPEG 技術報告類標準文件: ISO/IEC JTC 1/SC 29, Inofrmation Technology– Multimedia Framework (MPEG-21) – Part 12。其後,本研究群在 此定案的Test Bed 參考軟體上繼續進行研發,例如針對當時 MPEG-21 尚不明確的智慧 財產權保護機制,持續追蹤標準的進展,進而加強Test Bed 原有功能,結合另一參考軟 體,目前已可展現部份MPEG-21 Rights Expression Language (REL) 功能,並從中窺見 未來多媒體內容保護技術的輪廓。
以下,將大略描述本計畫Test Bed 的設計與實作。整個 Test Bed 的執行環境可區分 為三大部份,如圖 15 所示。Server 端負責多媒體串流傳輸,將 Client 端要求的內容自 資料庫中取出,加以適當切割後傳至網路上;Client 端接收到串流資訊後加以組合、解 碼、以及播放;為了在區域網路中模擬可能發生的傳輸錯誤,Test Bed 包含了一個 Network Emulator,用以模擬諸如 Packet Loss、Packet Delay、Bandwidth 變化等等傳輸狀況。此 種執行環境雖然較為複雜,卻提供相當大的彈性,在研究時可以單獨使用任何一個部份
FGS Server
Player 2 (single layer) Ethernet Interface
Player 2 (single layer) Ethernet Interface
Digital Item Adaptation (DIA): 這是 MPEG-21 中相當重要的一個概念。同樣的
數位內容,因為網路傳輸條件或接收端的能力的限制,必須視情況加以調整,
搭配,在session 建立時即可根據多媒體類型決定 DIA 元件,接著在依據不同 的條件 (Test Bed 中目前實作 network profile) 調整輸出串流的資訊量。
Streamer: 主要功能為切割多媒體 bitstream,使其符合網路傳輸,處理後的資 料形成Packet。此元件也會根據輸入的 QoS 資訊決定該如何向 DIA 元件取得 資料。
Packet Buffer: 為一 ring buffer,用以暫存尚未送出的 Packet。
IPMPFilter (PostDIAFilter): 在 Test Bed 的設計中,Server 端只有一個 IPMP Control Point 可供處理資料,其位置在 DIA 與 Streamer 之間。其意義為處理即 將送出的bitstream,例如對串流加密等等。
Server Controller: 這是 Server 端最複雜的元件,主要功能是控制 Server 端其他 元件的啟動、運作、關閉,而session 的建立與結束也是由此元件負責。
QoS Decision: 收集不同的傳輸限制條件,並將控制訊號送至相關的元件,以 便控制傳輸品質。目前的條件來源為Network Profile 與 Packet Buffer 的狀態。
z Client 端
Packet Buffer: 與 Server 端的 Packet Buffer 為相同的 ring buffer 結構,但則是作 為已接收尚未處理的Packet 暫存區。不同的 bitstream 會對應一個專屬的 Packet Buffer。
Stream Buffer: 簡單的說,Stream Buffer 是將 Packet 組合成 bitstream 的暫存區。
但因為Client 端可能碰到 Packet Loss 的情形,所以 Stream Buffer 在組合 bitstream 時仍以 ring buffer 的管理方式,且依據時間順序排列,未收到的時序 則以place holder 暫時取代。一個 Stream Buffer 對應一個 Packet Buffer,以方 便處理packet re-transmission。
Decoder: 將組合後的 bitstream 解壓縮為可播放的格式。如果要對抗傳輸錯誤,
error concealment 功能可在此元件內實作。
Output Buffer: 解壓縮後的資料置放於此暫存區中,供播放元件讀取。
IPMPFilter (PreDecoderFilter): 在 Client 端,IPMP Control Point 有兩個位置。這 是第一個Control Point,位於 Stream Buffer 與 Decoder 之間,目的是處理接收 到的bitstream。其功能對應於 Server 端的 PostDIAFilter。因此,如果 PostDIAFilter 中放入加密Tool,則此處放入的就是解密 Tool。
IPMPFilter (PostDecoderFilter): 在 Client 端,IPMP Control Point 有兩個位置。
這是第二個Control Point,位於 Decoder 與 Output Buffer 之間,目的是處理解 decode 後的資料,例如加入 digital watermark,防止隨意散佈數位內容。
Client Controller: 這是 Client 端相當複雜的元件,負責管理 Client 端其他元件 的運作。當session 建立或結束時,Client Controller 與 Server Controller 互相通 訊並交換相關資訊。當傳輸有錯誤時,Client Controller 也負責發出重傳命令,
要求Server 端重送特定的 Packet。
QoS Decision: Client 端的 QoS 設計目的是根據網路狀況分析,再將調整參數送 至Client Controller 進行處理。不過目前因為 Network Profile 為已知,所以此部 份的實作為無動作。
Packet Loss Monitor: 負責監控 Packet Loss 狀態,如果還在時間容許範圍內,
則透過Client Controller 發出 re-transmission 的要求。
z Network Emulator
NISTnet: 由 NIST 開發的 Linux kernel module 以及相關的 user mode utilities,
用來在兩張網路卡之間模擬各種網路傳輸狀況,可設定多種參數,例如packet loss rate 與 transmission delay 等等。
Network Profile: 為一 Test Bed 定義的文字檔案,其格式可描述某一時間區間之 packet loss rate、delay、bandwidth 等等。
利用上述的各項元件,整個Test Bed 的運作流程簡述如下:Client 確定欲播放的媒 體URL 後,Client Controller 與 Server Controller 透過 RTSP 建立 session;Server 端確認 媒體存在後,根據要求將相關的元件設定好,並開始把媒體的設定資訊透過Server Controller 送至 Client 端;Client 根據接到的設定資訊將各元件啟動,並傳送播放指令到 Server;Server 從 Media Database 中取出 bitstream,根據 QoS 資訊進行 DIA,切割 bitstream 成適合傳輸的大小,並轉換為Packet;Packet 經過 RTP channel 傳送到 Client 端;Client 將收到的Packet 組合成 bitstream,送入 Decoder 解碼,解碼結果放入 Output Buffer 供 player 播放。在運作過程中,Client 端可根據 Packet Loss 情況,透過 Client Controller 發 出re-transmission 需求,而 Server 端則據此透過 RTP 重送 Packet。如果有 IPMP 的需求,
則必須在session 建立時,在 Server 端啟動必須的 Tool,並透過 RTSP 將 IPMP 相關資訊 傳至Client 端,待 Client 將相關的 Tool 啟動並連接至 IPMPFilter 後,才能發出播放命令。
本計畫完成的MPEG-21 Test Bed 標準 reference software 功能如下:
z 支援的媒體格式:MPEG-4 ASP (Advanced Simple Profile)、FGS (Fine Granularity Scalability)、BSAC (Bit Sliced Arithmetic Coding)
z 支援的 IPMP Tool:DES Tool (Data Encryption Standard) z 可展示的多媒體傳輸:
單一 Video (ASP or FGS)、單一 Audio (BSAC)、影音 (ASP+BSAC or FGS+BSAC)
在無 IPMP 狀況下,可搭配各式 Network Profile 測試
可使用 GUI 或 Command-line 版本的 Client 端。GUI 版本直接播放媒體於視窗 中;Command-line 版本則將 Output Buffer 的資料依序寫入指定的檔案中。
本計畫於MPEG-21 Test Bed 標準制定程序定案後,仍持續注意 MPEG-21 標準的進展,
並適時修正或增加功能。例如:
z 修正 Initial Object Descriptor (IOD) 處理程序 buffer 過小的問題。
z 結合 MPEG-21 Rights Expression Language (REL) 的 ContentGuard reference soft-ware,實作 IPMP REL Tool,為 Test Bed 加上 REL 處理功能。
z 目前可展現的 IPMP 功能為:
以 DES 加密傳送的 bitstream。
每隔一段時間改變 DES key 以提高安全度。
修改 Client 端使其直接讀取 local file 播放。
利用 REL 達到 preview 類型的應用。此種應用允許一小段時間內無限制播放 bitstream,當時間超過時,則必須有 license 才能取得播放權限。
利用 REL 達到類似 OMA Super Distribution 類型的應用。在此種應用環境中,
加密的bitstream 可以任意散佈,播放端必須擁有相對應的 license 才能取得播 放權限。