• 沒有找到結果。

第 5 章 實做功能 (Function Implementation)

5.1 應用層 (Application Layer)

5.1.1 影像編碼程序 (Video Coding Process)

為了要防止無線通道中高錯誤率而造成畫面品質低落,在本次實做中採用了 內容感知調變技術來做改善,為了實現此功能,我們選擇了目前新興的影像編碼 技術 H.264 來相互搭配,透過此編碼技術中分層編碼(layer coding)的特性,來做 整合。

所謂的影像編碼(video coding),亦可以稱作訊源編碼(source coding),這種編 碼方式除了可以加入適合網路可調參數外,另一個主要目的,就是將龐大的多媒 體資料,作適當的壓縮處理,以避免網路因服務大量的多媒體資料流而造成壅塞 (congestion),使整體網路的使用率下降,減低服務他人的機會。而在實做串連整 個系統的同時,由於透過了多個介面的串接,而介面的速度又是整個處理的瓶頸 (bottleneck),因此透過訊源編碼降低多媒體資料流量即是不可或缺的程序!

關於 H.264 影像編碼可區分成數種層級,而我們是使用最簡單的 Baseline 層 級,而這層級有區分為網路傳輸模式與串流播放模式,早先我們原本打算使用具 有 RTP header 的網路傳輸模式,但是由於在實做上的影像解碼程式並非適用於 即時播放,且在播放期間會跳出多重的錯誤訊息進而停止整體播放,所以後來為 了配合 VLC 而採用串流播放模式。

其中,在傳輸影片封包之前,會預先傳出兩個參數封包給接收端做影像畫面 的解析與調整,分別是 sequence parameter set 與 picture parameter set 這兩個 NAL (network abstraction layer) unit,這兩個參數封包內嵌很多重要的影像訊息,一般 而言,欲傳輸此兩封包時都會使用較 robust 的通道來傳送,以保證不會出錯,倘 若此兩個封包中任一個出錯時,從實做可發現,無論後面的資料在怎麼正確的接 收,也會造成後面所解出的影片完全錯誤,所以在實做中,此兩類別的封包是不 會經過通道效應,百分百正確的傳至接收端,以呈現後續影像會產生的差異。而 後面資料則依照每張畫面壓縮後產生的 slice 所組裝成的 NAL unit,直接對應到 MAC 層的 SDU (source data unit),再做後續處理。

圖 5-1 JM encoder 執行畫面

關於影像壓縮,我們使用了在網路上公開原始碼的 JM encoder[1] (如圖 5-1) 來做視訊壓縮的軟體,為了考慮播放時的流暢度,除了克服各個實體裝置介面不 足的傳輸速率外,若再加入沒有硬體加速的訊源編碼所造成的延遲,勢必會拖累 整體播放的流暢度。為了避免這種情況發生,我們事先將影像源[2] (如圖 5-2) 做訊源編碼後儲存於硬碟之中,以免增加即時播放的困難度。

圖 5-2 視訊標準測試影像 Akiyo

大體來說,多數人在欣賞影片時,對於整段畫面完全看不到遠比看到低解析 (low resolution)還無法忍受,而分層編碼便是架構在此前提假設上而設計出來的 編碼方式,同一張畫面,我們可以經過編碼先取出低解析度的影像輪廓資訊成為 基礎層(base layer),這部份是較重要的基本影像內容,一般我們希望這部份都能 夠成功送達;而另一部份提昇解析度的資訊,則編碼成所謂的加強層(enhancement layer),這部份的資料若成功收到即可提昇畫面的解析度,但是若無法成功接收 也不影響我們對影片的理解,只是讓畫面品質(如:解析度、畫面色彩資訊…等) 差了點,是一種為了增加畫面品質而提供的額外補償資訊。透過這樣的特性,我

14

們可以配合內容感知調變技術的應用,保證其在無線衰變通道(wireless fading channel)會有最基本的畫面品質,當通道有額外的能力可以傳輸高解析度的資料 時,提昇畫面的細緻度,有效提昇用戶觀看的滿意程度。

可是經過實做測試後,影像播放器 VLC 並無法解出此種複雜編碼形式的影 像資料,所以用簡單的 I frame 與 P frame 概念來對應基礎層與加強層。一般而言,

所謂的 I frame 是使用 intra prediction 做編碼,整張編碼畫面只要參考自己本張的 視訊資料即可,於前後畫面皆為獨立,一旦此種編碼的畫面損毀時,除了影響自 己的編碼外,亦會影響到之後參照的 P frame 畫面,所以我們依照此特性將此類 型的畫面設定成重要的資料,所以賦予基礎層的性質;而 P frame 是採用 inter prediction 的方式編碼,畫面會參考到前面的畫面做動量的評估,優點是壓縮效 果較好,而即使遺失也不會造成整個畫面錯誤,所以其特性就如同加強層,因此 實做中即採用此兩 frame 格式來對應到原本分層傳輸的概念上。

5.1.2 影像播放程序 (Video Display Process)

在本次實做的整合系統中,為了要藉由影像播放品質的好壞,來突顯我們所 採用跨層的技術成果,所以我們需要一套能夠配合我們在來源端經過 H.264 訊源 編碼傳輸後,可以於接收端順利解回且播放的軟體。早先,原本規劃使用與原始 編碼器一組的 JM decoder 做訊源編碼的解碼工具,然後在將資料傳到可以播放 QCIF 的播放器上播放,可是因為 JM 本身主要是用於影像研究的應用,若要做 即時播放必然需要對其原始碼(source code)做大幅的修改,所以最後決定採用能 夠即時接收影像封包並同時做播放的 VLC 媒體播放器(VLC media player) [3],軟 體介面如圖 5-3 所示。

圖 5-3 VLC 媒體播放器

相關文件