• 沒有找到結果。

第三章 RAPTORQ 規格及其編解碼器架構

3.3 解碼器架構

3.3.3 遞迴解碼演算法[12]

為了以下介紹表示的方便,我們將式(3.2)中的前置編碼矩陣以及式(3.3)中的 LT 編碼矩陣重新整理,稱其為傳送矩陣如式(3.6)所示。

2 LT

 

 

 

D = A

G

(3.6)

其中

A

矩陣與原先的前置編碼矩陣相同,

G

LT2則為

G

LT(1,...,N)的第K 1 ~N列向

量,修補訊號所對應的列向量,此外令一個

G

LT1表示

G

LT(1,...,K'),即來源訊號所對 應的列向量。

整個 RaptorQ code 編解碼架構重新整理如圖 3.9 所示。

圖 3.9 RaptorQ code 編解碼架構[12]

由於 RaptorQ code 為一個有系統的(systematic)編碼,因此來源訊號也會納入編碼

訊號(如圖 3.9 中的多工器),傳遞出的編碼訊號可表示為

 

    x

y

。接著,編碼訊號在

通道傳遞的過程中可能會遺失,在接收端所接收到的訊號我們表示為

 

收端則根據遺失訊號所對應的列向量,結合 Sherman-Morrison Formula[10]遞迴 地求得接收矩陣 D 的反矩陣。

RaptorQ code 通常都應用在網絡中較高層的部分,因此會有來自較低層的訊

號遺失率

p 。為了能成功地接收到

e

K

個編碼訊號,此一演算法令預期接收到的編

碼訊號數為

其中

u

r

   u

r,1

,..., u

r,N

 

,而第

i

項元素定義如式(3.11):

經過 R 次的遞迴式可以得到

D

( )

R

,在將

m

1,...,

m 的行向量移除即可得到

R 接收矩陣的反矩陣

D 。

當通道狀況真的十分糟糕時,接收矩陣 D 可能沒有足夠的列向量來求得其 反矩陣;儘管如此,遞迴解碼演算法仍可以用與式(3.10)以及式(3.11)相似的辦 法加入新的列向量,僅需將

u

r

   u

r,1

,..., u

r,N

 

中的元素改為

 1

即可。

4. 第四章 新式解碼器演 算法

此一章節要介紹本論文所提出的 RaptorQ code 新式解碼演算法,主要概念 是基於實驗室之前的成果加入新的想法,修改過後與之前的成果相比,有效地化 簡運算量。主要的新想法以及運算量的化簡分別於以下小節分述。

4.1 Systematic code

在第二章節的介紹中曾提到 RaptorQ code 為一個有系統的編碼,即傳送的 編碼訊號中含有來源訊號。在平常的通道下,接收端可以成功地接收到大部分的 來源訊號;然而之前的演算法主要是利用來源訊號為中間訊號的線性組合,因此 都會先求得中間訊號後,再還原得到來源訊號。

不同於先前的演算法,新式解碼演算法主要針對遺失的訊號做運算,而成功 收到的來源訊號則直接利用,提出的解碼器架構如圖 4.1。

圖 4.1 新式 RaptorQ code 解碼架構圖

4.2 Matrix Inverse Lemma

新式演算法的另一個概念是 Matrix Inverse Lemma。在前面章節曾經介紹過 遞迴解碼演算法,其利用事先運算好的傳送矩陣反矩陣,根據遺失訊號一個一 個遞迴地修改接收矩陣的反矩陣,如式(4.8);然而在每一次的遞迴運算中,都 會消耗一定的運算量,因此提出的演算法希望藉由一次處理所有的遺失訊號來 節省遞迴解碼演算法中每次遞迴所消耗的運算量。

如同圖 3.10 的整理,我們將提出演算法中的傳送矩陣

D

、 D 及接收矩陣D 三者的關係以圖 4.2 表示。如圖所示,不同於遞迴演算法的遞迴運算,整個

D

D 的運算是一次性。

圖 4.2 新式解碼器的傳送矩陣與接收矩陣關係圖

接著重新定義三個矩陣之間的關係,由於希望一次處理所有的遺失訊號,因此

D 與 D

的關係如式(4.1)所示。

D = D + UV

(4.1)

UV的定義如下所示:

從式(4.5)及(4.6)可以觀察出,Sherman-Morrison Formula 其實就是 Matrix Inverse Lemma 在

L  1

的情況。求得

D 後,在將遺失訊號所對應的行向量移除,即可

得到接收矩陣的反矩陣

D 。

4.3 結合 LT 編碼矩陣以及接收矩陣反矩陣

圖 4.3 (a)以及圖 4.3 (b)分別為先前演算法的架構圖以及此篇論文提出的新 式解碼架構圖。首先,圖 4.3 (b)中的 Received Symbol Queue 是一個接收訊號的 暫存器,如前ㄧ小節所討論過的,新式演算法會ㄧ次處理所有的遺失訊號,因 此此一暫存器會將所有收到的編碼訊號先存起來,直到所有在傳送矩陣中的編 碼訊號都確定成功接收與否,才會將接收訊號移至後端處理。

(a) 先前解碼演算法的架構圖

(b) 新式解碼演算法的架構圖

另一個不同於之前演算法架構的地方是

G

LT1

D 兩部分,在新式解碼演算

法中,由於

D 為事先求得的,因此

G

LT1

D 在解碼開始前皆為已知,因此新

式演算法將兩個矩陣結合,不僅避免求得中間訊號的必要,而且其結果亦可事 先運算得到。兩者相乘的式子結合 Matrix Inverse Lemma 可以表示如式(4.7):

1

依照上述的推導,我們可以將新式演算法整理如式(4.10):

本論文所提出的新式解碼演算法雖是ㄧ次處理所有的遺失訊號,但其亦能

(a) (b)

圖 4.4 加入新行向量示意圖

因此,整個新式解碼演算法的流程圖整理如圖 4.5;新式演算法針對通道狀況作 判斷,當通道狀況尚可,即遺失訊號數小於等於傳送矩陣所準備的修補訊號 數,則在完成所有編碼訊號的接收確認後,就開始進行解碼;但若通道狀況時 分糟糕,即遺失訊號數大於傳送矩陣所準備的修補訊號數,則接收端會繼續接 收額外的修補訊號,直到成功接收到的編碼訊號數達到

K

才開始進行解碼。

4.5 演算法效能比較

此小節將新式演算法與遞迴解碼演算法以及 IDGE 的解碼運算量以及運算 時間作ㄧ個較詳細的比較。

本研究利用 matlab 程式實際計算在不同規格下各個演算法所需要的運算 量,模擬平台規格為 AMD FX(tm)-8350 Eight-Core Processor @4.02 GHz 以及 32G DDRIII-SDRAM。解碼所需的運算處理已在章節 3.3.2 作過詳細的介紹,此 處我們將不同的運算透過ㄧ個權重關係的加權,本研究在上述的模擬平台下針

multiplication division

17

addition

ComplexityComplexityComplexity   Complexity

接著,我們針對不同的 RaptorQ code 規格,來源訊號大小分別為 101、

301、600 以及 1002,依照不同的通道遺失率去估計每一演算法所須的運算量,

其運算量的估計式如表 4.1,依照上述的權重式統計後之曲線圖如圖 4.6(a)~(d) 所示;表 4.1 中的變數在前面各演算法的介紹章節中都已介紹過,唯一不同的 是

s

變數,

s

指的是在傳送矩陣中每個行向量(列向量)中的非零項數,此一部分 是針對每一規格產生出的傳送矩陣,分別統計非零項數後作平均,因此此一變 數也可能會是導致估計運算量與實際運算量有些許落差的因素。

GF(256) Multiplication GF(256) Division GF(256) Addition

Algorithm [12]

LMNK MLM

圖 4.6 (b) 運算量

K  301

圖 4.6 (c) 運算量

K  600

圖 4.6(d) 運算量

K  1002

上面四張圖的橫坐標為通道遺失率,範圍從

1% ~ 20%

,縱座標則是各演算 法的矩陣乘除法以及加法的運算量總和。從上四圖的模擬結果可以看出,在這 四個規格下,新式解碼演算法的運算量皆較遞迴解碼演算法[12]為節省;然 而,與 IDGE 解碼演算法[8]的比較會發現兩者運算量會出現ㄧ個交界處,而且 會隨著來源訊號數的增加,交界處所對應到的通道遺失率亦越來越小,主要原 因是 IDGE 所處理的矩陣為一個較稀疏的矩陣,只有 RaptorQ 規格中用到少部 分的八位組,其餘皆為二位元的運算,而新式演算法中高斯消去法所處理的𝐑 矩陣為一個較為密集的矩陣,因此所需要的運算量會隨著遺失訊號數的增加而 有較大幅度的上升,即

O

(L )3

儘管如此,IDGE 在作上述整理的運算前,必須先經過整體矩陣的搜尋動 作,即在章節 3.3.1 中所介紹過的部分,而遞迴解碼演算法以及新式解碼演算法 則沒有此一需求。若以矩陣單元讀取(matrix entry access)來計算,IDGE 在搜尋 過程中的矩陣單元讀取為

O M

( 3),其中 M 為矩陣的大小,因此在實際運算的過

程中,此一搜尋步驟所消耗的時間不容小覷;本研究亦針對上述四種規格,去 計算各演算法的運算時間,其結果如圖 4.7(a)~(d)所示。

圖 4.7(a) 運算時間

K  101

圖 4.7(b) 運算時間

K  301

圖 4.7(c) 運算時間 K 600

圖 4.7(d) 運算時間 K 1002

上述四張圖的橫坐標為通道遺失率,縱坐標則是運算時間(秒),從圖中可 以看出 IDGE 在搜尋上所消耗的時間十分大,隨著來源訊號數的增加,新式解 碼演算法的運算量在較大通道遺失率的運算量雖然比 IDGE 為多,但因為新式 解碼演算法無須作搜尋的動作,而直接針對遺失訊號的編碼標示符直接作處理 即可,所以在整體的運算時間上,新式解碼演算法的效能仍較優。

5. 第五章 新式解碼器硬體設

此一章節將介紹新式演算法以硬體電路的實現方式,包括電路中各個區塊的 電路架構設計以及最後以 FPGA 板驗證的方式。

5.1 演算法硬體架構設計

圖 5.1 為新式演算法的硬體設計架構圖。

圖 5.1 新式演算法硬體架構圖

首先定義電路的輸入波形如下圖所示:

4 A 5 1 8 F B A

ESI 0

C A B 2 1 4 D 6

ESI 2

0 F E 1 3 5 7 6 6

ESI 3 Data_valid

ESI Symbol

clk

共有三個輸入訊號,分別為編碼訊號、編碼訊號標識符(Encoded Symbol Identifier)以及成功收到訊號。ESI 訊號如章節 3.1 描述過的,主要用來標示編碼 訊號在一個編碼區塊中的編號;所以當成功收到訊號為 low 時,電路會將遺失訊 號的 ESI 值做記錄。其中,從圖中可以看出ㄧ個 ESI 會對應到多個編碼訊號,原 因是我們將接收訊號的規格設計如圖 5.3,將n個來源區塊一起作封包,如此便 可以減少編碼訊號上的額外消耗,即ㄧ個 ESI 編碼由n個來源區塊中其對應的編 碼訊號共用。

圖 5.3 接收訊號的規格設計

圖 5.1 所實現的 RaptorQ code 規格如下表:

KS H W r

101 17 10 113 30

表 5.1 RaptorQ code 實現規格

其中,

r

為修補訊號數。下面小節將分別敘述電路中每個區塊的功能:

5.1.1 Read Only Memory

如圖 5.1 所示,圖中有塊大小為131 131 8  bits 大小的唯讀記憶體(ROM),

所存內容為事先求得的

d D

mr ,即式(5.9)中

VD 的所有列向量。整個傳送矩陣

D

的 大 小 由 於 我 們 所 選 用 的 規 格 , 應 為 158 個 列 向 量 (K  S H r 101 17 10  30),但如同式(5.10)所示,其實前面共有

MK

皆為零,毋需做運算,因此我們僅存後面 131 項元素即可。

將遺失訊號所對應的列向量從唯讀記憶體讀出後,會暫存在一個大小為 131 8 bits 的暫存器中,並對其做後面的相關運算,包括 Matrix Multiplication 以 及從中取出對應的行元素等等,此一做法主要是避免暫存器的消耗。圖中的多工 器用途在於處理式(5.6)的挑選,選擇後再存入暫存器等待之後的高絲消去法運算。

此篇論文所提出的演算法一開始計畫的應用目標是影像串流,而影像串流的 服務對於訊號延遲是十分敏感的,因此如同湧泉碼的設計概念,我們希望接收端 不需要像傳送端傳遞任何確認訊號(acknowledgement)。圖 5.4 是來源訊號數 K 101在不同通道遺失率

p 的情況下,修補訊號數所對應的解碼失敗率。圖中

e 分別針對

p

e

0.1、0.05、0.02以及0.01作圖,在修補訊號數為 30 個的情況下,

縱使通道遺失率為 0.1,解碼器亦能提供相當低的解碼失敗率,因此在此處設計

縱使通道遺失率為 0.1,解碼器亦能提供相當低的解碼失敗率,因此在此處設計

相關文件