• 沒有找到結果。

Chapter 3 Design

3.4 Modified DPB

3.4.2 Fragmented Reference Frame Storage

當每一張 frame 的 PRT 到達時,我們僅保留住仍然需使用的 pixels 並轉存於 FRFS 中。針對此 FRFS 的設計考量,我們主要以不影響 decoding time 以及降低 整體所需的儲存空間為原則來選擇用何種資料結構較為合適。

為何在意是否影響 decoding time,主要是因為對於 real time decoder 而言,維 持穩定的 output rate 是首要達到的目標,若所選擇的資料結構會影響到 decoding time,則會進而拖慢 output rate。由於傳統 DPB 的設計,皆儲存完整的解碼圖片,

因此在搜尋資料(以 Pixel 為單位搜尋)、儲存資料(以 pixel 為單位依序儲存) 張 frame 的哪個位置,此部分屬於我們額外增加的 storage overhead。因此,降低 所需的 storage overhead 亦是要考量的重點之一。

基於上述兩點需求,我們在選擇以何種資料結構作為考量時,優先以不影響 decoding time 為主要考量,其次才為所需的 storage overhead。因為就 real time decoder 而言,較著重的仍是維持穩定的 output rate,其次才以降低所需儲存空 間作考量。

在思考選擇以何種資料結構儲存的過程中,我們從常見的資料結構下手進行

39

分析,因為我們認為常見的資料結構簡單並且已有大量研究針對所需的時間以 及空間進行改善。Table 3-3 列出一些常見的資料結構包含 Linked-list、Binary search tree、Indexed table 以及 Original DPB design 其所需的搜尋時間(以 pixel 為 單位搜尋)、儲存資料的時間(以 pixel 為單位儲存)、移除時間(以 frame 為單位移 除)以及所需的 storage overhead。

由 此 表 可 看 出 ,在 搜 尋 時 間以 及 儲存 時 間 的 部 分 , Indexed table 會 比 Linked-list 以及 Binary Search Tree 來的好,並且所需的時間複雜度與 Original DPB Design 相同,皆為 O(1)。而在移除一張 frame 所需的時間而言,Indexed table 表現不如其他的資料結構,但此部分實際上在 Chapter 4 的時間分析部分,可以 利用 pipeline 的概念,將此工作隱藏在一個 stage(解碼一張 frame)內完成,因此 不影響 Decoding time。因此在 timing performance 部分,發現實際上 Indexed table 的表現較佳。

針對空間需求的部分,在 storage overhead 的部分,由於 FRFS 的資料皆為 fragmented frames,因此除了 Original DPB design,其他三個資料結構皆需要記 錄每一個 pixel 所需的 frame id 以及 Location(X,Y),因此在 storage overhead 部分,

三個資料結構的表現約略相同。但 Indexed table(類似 cache),可能會發生 conflict misses 的情況,也就是雖然仍有空間可以儲存,但由於位置索引到相同的 set 中,

而造成某些資料被取代之情況。因此對於空間的利用度而言,Indexed table 的表 現比不上 Linked-list 以及 Binary Search Tree。而 Original DPB Design 由於是以 完整 frames 作儲存,若只儲存 fragmented frames 的話,會造成多數儲存空間的 浪費。

根據上述分析,可發現對於時間部分的效能,選擇 indexed table 儲存效果較 好,我們在 Chapter 4 的分析中,證明使用 Indexed table 來管理 fragmented frames 不會影響 decoding time。而在空間利用性上,Indexed table 的表現比不上

40

Linked-list 以及 Binary Search Tree,因為會發生 conflict misses 的情況。基於以 不影響 decoding time 為前提,降低所需儲存空間為次要考量下,我們最終選擇 以 Indexed table 的資料結構來儲存 fragmented frames,雖然可能會發生 conflict misses 的情況,但由於 Indexed table 其結構類似 cache,而 cache design 已經是 很成熟的技術,因此在降低 conflict misses 的技術上都有機會應用於此 Indexed table,來增加其 hit rate。另外,因為此 Indexed table 提供多種參數(indexing、

associativity、line size 以及 replacement policy..等)作為選擇,可模擬出多種資料 結構,因此,我們有機會可以根據需求而調整出適合的參數配對,來降低發生 conflict misses 的情況,以得到更好的效。

Table 3-3 Comparison of the data structure in FRFS

Figure 3-10 為我們所提出 FRFS 的方塊圖。其 Address 為 Frame id、pixel 的(X,Y) 座標所組成。另外,對於每一個 entry 而言,由 valid bit(用來表示該 entry 的空 間是否可被使用)、Tag 以及 Data(某一個 block 內所有的 pixels value)所組成,而 此架構亦可調整成為 multiple-way。

41

Figure 3-10 Block diagram of Fragmented Reference Frame Storage.

為了減少 FRFS 中發生 conflicts 的情況,我們希望將每一個 blocks 平均散佈 於每一個 set 中。根據觀察每一張 frame 在 PRT 之後所留下 blocks 的分佈情形,

我們發現在 frame 內部,這些在 PRT 之後仍須使用的 blocks 具有群聚性。另外,

在相鄰的 frame 間,所留下的資料位置具有重疊性。根據上述所觀察到的特性,

我們選擇以 frame id 以及 pixel 位置較為 lower bits 的部分作為 Index,如此可以 盡可能將資料平均打散於各個 set 中。

對於儲存於 FRFS 的 blocks 而言,有兩個情況會將此 block 移除,其中包含: 1.

此 block 已經無效(已經超過傳統 DPB 對於此 block 移除的時間)、2. 當發生 address conflict 時(當該 set 內所有空間已滿,並有新的 block 將要存入時)。以下 我們分別對上述兩點做說明。

1. Block 已經無效:

當 FRFS 內的 block 已經超過傳統 DPB 對此 block 移除的時間後,此 block 就不可能再被使用。而對於每一張 frame 而言,解碼完後續 16 張 frame 之後,

此張 frame 的所有 blocks 將不再被使用。Figure 3-11 說明我們何時移除已經無效

42

的 frames,以 frame F0為例,當 F16解碼完之後,F0就不再會被使用到,故我們 從 t17 開始將 F0移除,其他 frame 以此類推。

Figure 3-11 Time to remove the invalid blocks of frames in the FRFS.

2. 當發生 Address conflict 時:

當某一個 set 中已經沒有儲存空間且又有新的 block 即將存入時,FRFS 必須 選擇該 set 其中一筆資料作為移除的對象。而考量 video 中鄰近 frame 間高度像 似 之 特 性 , 反 觀 越 老 的 block 其 被 參 考 的 機 會 越 低 , 因 此 我 們 選 擇 以 FIFO(First-In-First-Out)的 replacement policy 作為準則。

43

3.5 Compensated method while the conflicts misses of FRFS

相關文件