第三章 RAPTORQ 規格及其編解碼器架構
3.2 編碼器架構
RaptorQ 編碼器的功能是利用一個含有𝐾個來源訊號的來源區塊,產生任意 數的修補訊號(repair symbol);圖 3.1 為 RaptorQ 編碼器的整體架構圖,整個編 碼的流程大致分為三個步驟。
圖 3.1 RaptorQ 編碼架構圖
3.2.1 加入填補訊號
第一個步驟是將𝐾個來源訊號補上零或多個填補訊號(padding symbol),使 得訊號總數𝐾′為介於 10 到 56403 共 477 個值中的一個[8],如(式 3.1);其中𝐾′
必須為規格中大於𝐾的最小值。
0
KK
x = x
(3.1)𝐾是決定一個來源區塊中含有多少來源訊號的值,因此傳送端及接收端都必須 知道𝐾的大小,如此傳送端及接收端都可以計算出𝐾′− 𝐾值並加上填補訊號,
而不需多餘的溝通。
填補訊號可以視為延伸後的來源訊號,但它們不會是編碼訊號,也就是不 會被當作編碼訊號一起傳出,接收端則是藉由計算𝐾′− 𝐾值來得知填補訊號 數,進而還原出原本的來源訊號。加上填補訊號的目的主要是讓編碼及解碼都 能更快速的進行,此外也能減少傳送端及接收端所需存放的資料量。
3.2.2 產生中間訊號
第二步驟則是利用𝐾′個來源訊號,經過前置編碼產生
M
個中間訊號。3.2.2.1 前置編碼矩陣
圖 3.2 為前置編碼矩陣。前置編碼矩陣
A
的大小為M M
,其中圖 3.2 前置編碼矩陣
前置編碼矩陣組成大致分述如下,
G
LDPC1及G
LDPC2為兩個低密度奇偶檢查 碼(low-density parity-check code, LDPC code)的子矩陣,定義在二元的 Galois Field (GF(2)),主要用來產生大部分的 LDPC 訊號。G
HDPC為高密度奇偶檢察碼 (high-density parity-check code, HDPC code)的子矩陣,定義在八位組的 Galois Field(GF (256)),主要用來產生少量的 HDPC 前置編碼多餘訊號;此一子矩陣也 是 RaptorQ code 不同於以往 Raptor code 的主要部分。最後一個子矩陣為(1,..., LT K)
G
,此一矩陣的組成與 Luby Transform 矩陣的前𝐾′個列向量視相同的,如此便可滿足 RaptorQ code 為一個有系統(systematic)的編碼。
中間訊號c的產生方式如(式 3.2)所示。其中,
M
個中間訊號必須滿足前置 編碼關係,見 3.2.2.2 所述。1 0M K '
c = A
x
(3.2)填補一個零行向量0M K '是為了滿足前置編碼矩陣的大小。
3.2.2.2 前置編碼關係
前置編碼關係為
M
個中間訊號必須滿足𝑆 + 𝐻個線性組合後的值為零。此 外共有𝑆個 LDPC 訊號以及𝐻個 HDPC 訊號,因此𝑀 = 𝐾′+ 𝑆 + 𝐻。另一種分類 方式是將M
個中間訊號分為兩類,一部分為𝑊個 LT 訊號,另一部分為𝑃個 PI 訊號,因此𝑀 = 𝑊 + 𝑃。𝑃個 PI 訊號是由𝐻個 HDPC 訊號以及其他𝑈 = 𝑃 − 𝐻個 中間訊號所組成,𝑊個 LT 訊號是由𝑆個 LDPC 訊號以及其他𝐵 = 𝑊 − 𝑆個中間 訊號所組成。承上段所述,
c [0] ~ c [ M 1]
為M
個中間訊號,其中:1.
c [0] ~ c [ B 1]
是 LT 訊號,但不是 LDPC 訊號的中間訊號。2.
c [ ] B ~ c [ B S 1]
是既為 LT 訊號,亦為 LDPC 訊號的中間訊號。3.
c [ B S ] ~ c [ W U 1]
是 PI 訊號,但不是 HPDC 訊號的中間訊號。4.
c [ M H ] ~ c [ M 1]
是既為 PI 訊號,亦為 HPDC 訊號的中間訊號。3.2.3 產生編碼訊號
最後一個步驟為產生編碼訊號,利用在第二步驟所得到的中間訊號與 LT
編碼矩陣
G
LT(1,...,N)相乘求得,如式(3.3)所示。G
LT(1,...,N)矩陣的大小為N M
,M
為中間訊號數,N
則是由編碼率以及預計通道遺失率所決定。(1,...,N)
e = G
LTc
(3.3)為了滿足有系統(systematic)的編碼特性,
G
LT(1,...,N)矩陣中的前K
個列向量 與前置編碼矩陣的G
LT(1,...,K')相同;其中,為了避免傳送編碼前所加入的填補訊號(padding symbol),
G
LT(1,...,N)的第K
到K
個列向量不會加入編碼。最後可以得 到N
個編碼訊號,其中包括K
個來源訊號以及N K
個修補訊號(repairsymbol)。