• 沒有找到結果。

在 本 論 文 中 , 實 驗 所 用 的 視 訊 編 碼 演 算 法 , 是 以 邱 正 男 所 提 出 的 Tightly-Coupled H.264 Video Encoder[8],來驗證系統的效能。不過在[8]的論文 中,DSP 的部份並沒有排程器,換句話說,DSP 端只能一次執行一項工作,完 成後才能接受GPP 所指定的下一份工作。在這種 single task 的應用環境下,並不 能看出動態分工架構的好處。而本論文因為實作了DSP 的排程器,配合了[8]所 提出的架構,所以可以在複雜的多工環境下,展現出動態分工排程的好處。本章 會先介紹所謂 tightly-coupled 和 loosely-coupled 的系統差異所在,接下來會介 紹本論文開發的系統的主要應用-H.264 Intra Encoder 的設計。

4.1. Loosely-coupled VS Tightly-coupled System

在[8]所定義的 loosely-coupled system,如 Figure 44,在兩個核心間,只有在 視訊編碼的開頭傳輸要被處理的資料,和結尾的資料整合的傳輸,才會需要溝 通,這樣的優點是工作切割的非常乾淨,設計上很有模組化的特性,易於快速的 開發,以搶攻市場佔有率。但會這樣切割工作,因為是根據 Offline 進行單一應 用的Profiling 來決定該項應用程式的工作分配方式。但隨著多媒體應用的演進和 使用者操作的多樣化,造成了 DSP 可能會同時需要進行多個多媒體或通訊相關 的運算,這時 DSP 已經有很大的負載了,而傳統的靜態工作分配法,只會一味 丟給DSP 更多的工作,而讓系統效能更加惡化。

RISC core start

Video encode job Job to DSP

DSP core start

Signal ? RISC core start

Video encode job Job to DSP

DSP core start

Signal ?

Figure 44. Loosely-Coupled Video Encoder

這時[8]所定義的 Tightly-coupled 的方式,如 Figure 45,可以在不改變硬體 架構下,運用 RISC 的計算資源輔助 DSP,將可減輕 DSP 的負擔。兩個核心各 自運行部份的工作,最後再整合,而工作的分配,則是根據動態兩個核心間的負 載所決定的。

RISC core start

Video encode job Job to DSP

DSP core start

Signal ?

O utput the bitstream

Yes No

Processing Part of task

“A”

RISC core start

Video encode job Job to DSP

DSP core start

Signal ?

O utput the bitstream

Yes No

Processing Part of task

“A”

Figure 45. Tightly-Coupled Video Encoder

4.2. H.264 Intra frame 編碼器

4.2.1. 數位視訊編碼概論

一般我們可以取得的多媒體資料,都是經過編碼處理過,直到需要觀看,才 即時解碼回原本的資料格式。如果不經過編碼,多媒體的資料量是非常的大,需 要龐大的儲存空間、或是傳輸頻寬,以常見的DVD 規格來當例子,目前主要都 是以720x480、每秒 30 張的視訊影片為主流,再乘上每一個點以 RGB 表示需要 3byte,每秒總共會有將近 30Mbyte 的資料量,以 4.7Gbyte 的 DVD 的容量,也 只能儲存大約150 秒的畫面。因此對於視訊資料進行編碼是其必要。

一般的視訊系統大概如 Figure 46 所示,先將 RGB 顏色空間資料轉換到 YCbCr 顏色空間資料,做視訊編碼的來源,經由編碼產生資料量比較小的 Bitstream(實線箭頭),方便儲存或經由網路傳輸;之後需要觀看再以反向的順序 解碼回YCbCr 的格式(虛線箭頭)。

Figure 46. Simplified Video Coding Model

首先會進行預測(Prediction)處理,將對要編碼的 YCbCr 進行某種預測,以 消去重覆的資料。常見的有空間上的預測,如畫面的顏色大都會有連續性,所以 可以從周圍的顏色來預測目前的顏色,或是用時間上的預測,這也是視訊資料和 純影像資料最大的不同,因為視訊畫面上的物件會隨著時間有著方向性的移動,

所以如預測出其移動方向,將可以不需要在每張視訊資料記錄物件的資料,只要 從上一張的物件經由移動方向修正,就可以還原出原本的視訊畫面。

將預測處理得到的預測結果,和原先畫面相減去之後,將產生的資料量比較 小 的 差 值(Residual) , 再 從 時 間 域 (Time domain) 轉 換 (Transform) 到 頻 率 域 (Frequency domain),因為人眼對高頻的改變比較不易察覺,所以我們可以藉由 轉成頻率域,將資料分成高低頻,提供消除不容易看出的高頻資料的可能。

再來會以量化(Quantization)處理,是再進一步的去除細微的數值差異,如 0,1,2,3,4,5,6,7,…,在量化單位 3 的處理下,可以產出 0,0,01,1,1,2,2,…,主要會以 不影響人眼視覺品質的前提下,將數值限制在某些易於編碼的數值集合中,並且 還能將高頻資料消去。

之後的熵編碼(Entropy coding),會將量化的結果,以各個數值出現的機率決 定編碼後所佔的資料量,以達到以較少的位元數表示較常出現的數值,反過來,

不常出現的數值則會以較多的位元數表示,例如有名的Huffman 演算法就是在進 來這樣的編碼。

最後再把熵編碼的資料包裝起來,就成易於儲存或網路傳輸的 Bitstream,

如有需要還原為 YCbCr 格式,就依照編碼的反向步驟,一步一步解碼回接近當 初的YCbCr 資料。

4.2.2. H.264 Intra prediction

H.264[9]是目前當紅的視訊編碼,有著在相同資料量下,能達到更好的人眼 視覺品質的優點,但是需要相當複雜的編碼運算。

其中為了減少空間上的重覆性,會以 Intra Prediction 來減少,每個編碼處理 單位MB(MacroBlock)的資料量。MB 可以用 16x16 或是 4x4 的方式來做空間上 的預測,16x16 支援四個模式:Vertical、Horizontal、DC 和 Plane;而 4x4 支援 9 種模式,如Figure 47,有八個方向的預測再加上 DC mode。

Figure 47. 4x4 Intra Prediction Mode

4.3. Tightly-Coupled Video Encoder

[8]所提出的 Tightly-Coupled Video Encoder,在兩個核心間工作的分配主是 因為H.264 Intra Prediction 的限制,如 Figure 47,要進行目前 MB 的編碼,需要 左邊、上面和右上的MB 編碼後所重建回的 YCbCr 格式的各個點,才能去運行 Intra Prediction。

所以[8]設計的視訊編碼方式,可以參考 Figure 48,各核心要編碼的 MB 要 考慮到左邊和上面MB,這樣的相依性。首先由 DSP 對第一列的 MB 進行編碼,

因為 DSP 專為多媒體處理而最設計,而 ARM 接著準備第二列的 MB 編碼,但 要其上方的MB 編碼完並重建回 YCbCr 格式各個點。ARM 要處理的 MB 之 Intra Prediction 才能正確運作,所以上方 MB 的由 DSP 處理完畢,ARM 才會開始進

行編碼。

enable A1 end of row

D1 D2 D3 D11

end of frame

ARM

DSP D1 D2 D3

A1

D11 A4

enable A1 end of row

D1 D2 D3 D11

end of frame

Figure 48. Tightly-coupled Video Encoding Process

相關文件