• 沒有找到結果。

1.1 研究動機與目的

在[1]中提到,視訊標準經過多年來的發展,一個基本的視訊壓縮系統會包含動態估 測、動態補償、訊號轉換、和熵編碼四個主要的部份。而這四個部分是由最原始的 differential pulse code modulation (DPCM) 編碼加上離散餘弦轉換(DCT)發展而來。

DPCM [2]、[3]是利用預測資料和原始資料的相關性去減少壓縮資料量,而相減完的殘 餘資料在經過 DCT [4]轉換到頻域以減少資料量,最後的熵編碼則是透過移除統計的相 關性來壓縮資料。而這種由預測和訊號轉換所組成的系統也被稱為混合視訊壓縮(hybrid video coding)[5]、[6].

在 2003 年最新制定新一代的視訊標準 H.264/MPEG-4 AVC [7]、[8],和之前的 MPEG-4、H.263、MPEG-2 比較,H.264 可以達到 39%、49%、64%的碼率降低 [9],所 以 H.264 可以提供更高的編碼效能。

低位元率輕量化視訊壓縮為系統具有的傳輸頻寬很低,位元率可能只有 1~2M (bit/s),而系統本身為了滿足可攜性的功能,所以採用電池供電。為了讓電池可以儘可 能的長時間使用,所以整個壓縮系統不採用耗電的動態估測技術或模式選擇(mode decision)等技術。低位元率輕量化視訊壓縮最典型的例子為無線膠囊內視鏡系統[10]、

[11]、[12]、[13]、[14]、[15],後兩者為之前我們所開發的系統。系統壓縮影像尺寸為 512×512,而 frame rate 為 2 (frames/sec),當位元率為 2M (bits/s)時。因此視訊壓縮演算 法必須儘可能的減少功率消耗,但又必須儘可能提高影像畫質。

在 H.264 中定義了兩種的熵編碼模式,分別為內容適應性變動長度編碼(CAVLC)和

內容適應性二元算術編碼(CABAC)。根據 [16]、[17]的研究結果,在相同的畫質之下,

CABAC 平均可以比 CAVLC 節省 9%~14%的壓縮資料量,但是因為兩種熵編碼性質上 的不同,即 CAVLC 為直接對整個符號編碼,而 CABAC 卻是以符號位元為單位進行編 碼,所以對於同樣的內容,CABAC 需要比較多的時間去編碼,根據我們的模擬,在壓 縮單張 d1 的畫面時,CABAC 平均要花 1.5 倍 CAVLC 的時間。

圖 1.1 delta-PSNR 圖

圖 1.1 為使用 football.yuv (D1,4:2:0)以 JM11.0[18] 實際壓縮的結果,橫軸為每秒的 位元率(bits/s),縱軸為熵編碼的 PSNR 差,為 CABAC 減去 CAVLC 的 PSNR 值差距。

從圖 1.1 來看,在固定 x 軸的值之下,對應到 y 軸的兩點,即為兩種模式在固定位元率 時的 PSNR 差距。但是在不同的位元率之下,兩者間的 PSNR 差會有所改變。在固定位 元率且兩者壓縮的 PSNR 差距小於 0.5dB 時,表示兩種方法此時並無差異,那當這種情 況發生時,我們應該要使用 CAVLC 來壓縮以節省壓縮時間。這代表我們可以設計出一 種機制去估計出當前壓縮畫面兩者的 PSNR 差,而根據這個 PSNR 差來切換熵編碼模式。

Part (%) Entropy coding 90.56

Q/IQ 3.44 DCT/IDCT 1.29 Intra prediction 4.57

Others 0.14 total 100 表 1.1 內視鏡系統模擬時間比例表

在我們之前設計的內視鏡系統中[15],熵編碼只使用 CAVLC 模式。從表 1.1 模擬時 間表可以看出熵編碼階段在整個系統中要消耗最多的執行時間,而 CABAC 消耗的時間 又比 CAVLC 更為增加。所以為了要在輕量化視訊壓縮系統中有效地利用 CABAC 來增 加畫質,所以要發展熵編碼模式切換演算法,為當前畫面選擇最有利的熵編碼模式。當 畫質可以明顯改善時,選擇 CABAC 模式,反之則使用 CAVLC 以減少熵編碼階段的時 間消耗。我們將先計算出固定頻寬下每張畫面的編碼預算,再利用熵編碼模式切換演算 法去選擇最有利的熵編碼模式。

在本文中,我們針對低位元率輕量化視訊壓縮設計了一種熵編碼模式切換演算法。

在系統前端的畫面內估測,我們保留之前改良的設計,只使用一種模式來估測。接下來,

利用演算法從系統位元率計算出每張畫面的編碼預算,從編碼預算利用 R-QP 模型和 PSNR-QP 模型去計算兩種熵編碼要符合編碼預算的量化值。從量化值導致的畫質差是 否有明顯改善在兩種熵編碼間選擇當下最有利的模式和對應的量畫值。為了避免硬體實 現時除法器的使用,所以在兩個模型的使用上,改用以查表的方法實現。為了讓在每張 畫面的壓縮時間在演算法執行時不會超過使用 CABAC 壓縮的時間,我們發展了

CABAC 碼率估測演算法去估計 CABAC 的壓縮量。CABAC 碼率估測演算法主要是利 用減少原始 CABAC 的執行步驟以加快速的猜測出壓縮量。在碼率估測演算法的發展 中,我們根據模擬結果發現碼率估測演算法的準確度會對模式造成影響,所以我們以誤 差值去選擇最後使用的方法。而最後我們的 CABAC 碼率估測演算法平均可以比 CABAC 減少約三分之二的執行時間又能準確提供切換訊息且以硬體實現時只需要些微 消耗。從模擬結果顯示,能比只用 CAVLC 模式壓縮平均每張畫面能達到 0.7dB 的畫質 提昇,而跟 CABAC 相比,使用切換演算法平均能節省 40%的多餘時間,且能同時達成 位元率的控制。

1.2 論文架構

第一章 緒論

包括整個論文的介紹和說明研究動機和方法

相關文件