第二章 通道匹配的索引指定設計
2.3 AMR-WB 編碼系統的相關應用
2.3.2 系統傳輸規格
圖 2.6 ISF 係數的分次多階向量量化處理
2.3.2 系統傳輸規格
每一個音框經過 AMR-WB 編碼處理之後,會產生出 16 個線性預 測係數,再據以轉換為成量化失真靈敏度較低的導納頻譜頻率(ISF) 係數。配合事先大量訓練好的碼書,每個音框可以量化輸出 7 個索引 值:ID1、ID2、ID3、ID4、ID5、ID6、ID7,分別用 8 bits、8 bits、
6 bits、7 bits、7 bits、5 bits、5 bits 量化,如圖 2.6 所示。
其中第一階段所量化輸出的兩個索引值 ID1、ID2,以及第二階段以 6 位元作量化的索引值 ID3,在本論文中皆做多重描述向量量化的處理,
分別在兩個通道傳輸其在指定矩陣中所對應的座標值。ID1 以及 ID2 分別在兩個通道傳輸以 6 位元作量化的列索引值以及行索引值,而 ID3 則是傳輸以 5 位元作量化的列索引值以及行索引值。其餘的 4 個
16
第三章
基於位元錯誤通道的索引指定
在此之前所探討的索引指定都是針對特定通道環境而設計,隨 機產生一千種指定矩陣,藉由前一章所提供的數學公式,我們可以計 算出每個指定矩陣相對應的失真度,從中選擇一個擁有最小失真度當 作二元置換演算法的起始矩陣,經過多次的疊代置換找到一個通道匹 配的指定矩陣。這章在某些環境與操作之下,我們提供了一種新的設 計方法,不但擁有前一章所有的設計特性與優點,在索引指定的同時 引入了線性區段碼的概念。利用線性區段碼所對應的查核矩陣,能更 正一定程度的位元錯誤,達到提升系統效能的目的。索引指定的工作 流程包括位置指定(location assignment)與位元對應(bit mapping) 兩個步驟,前者是先在指定矩陣之中找尋適當的位置集合,決定個別 位置的列索引以及行索引,使其合併可以成為一個合法的碼字。至於 後續的位元對應,則是決定不同位置所應置放最合適的量化索引。
3.1 位置指定機制
3.1.1 線性區段碼
就我們對線性區段碼(linear block code)的一般認識而言,一
18
個(n,k)碼代表的是輸入訊號 u 為一個 k 位元的向量,經過產生矩陣 (generator matrix)G 的編碼處理,而得到一個 n 位元的合法碼字 x 輸出,其對應關係為
x = uG
。在接收端的解碼部分,可以透過產生 矩 陣G
得 到 查 核 矩 陣 (parity-check matrix)H
, 利 用 關 係 式s = xH
T 計算出接收資訊的徵狀(syndrome)。藉由各種不同型式的 徵狀,我們可以做一定程度的錯誤位元更正。至於不同的線性區段碼 所能更正的錯誤位元數,我們可以從它的最小距離值看出端倪。最小 距離值是定義在所有碼字裡最小的漢明距離值,而實際上最小距離值 和產生矩陣有基本的關係存在,可以透過一些計算得到。任何一種線 性區段碼都有對應的最小距離值,我們根據這最小距離值可以計算出 每種線性區段碼可以更正的位元數,其兩者之間的對應關係為下列公 式:min
1( 1)
t
= 2d
−其中
t
為可更正的錯誤位元數,而dmin為最小距離值。線性區段碼更 詳細的介紹可以參考[8]。3.1.2 特殊群組選擇
首先,我們探討一個擁有特殊屬性的群組,並且驗證此特性與 線性區段碼有關,此特性也會運用在後續的系統設計之上。一個 n 位
元數的集合總共有2n個不同組合,我們從中挑選出的特殊群組需滿足 一條件:此群組所屬的任意兩個位元組合之間的漢明距離必須不小於 設定的門檻定值,而此定值可由使用者自行定義或設計。其群組選擇 演算法流程如圖(3.1)所示。
圖 3.1 特殊群組選擇流程圖
很明顯的,當定值越高則符合條件的位元組合相對越少,我們也發現 不管定值設為多少,所成群組的組合個數永遠都是二的倍數次,因此
2 ?n t >
20
一定有其特殊的結構隱含其中。基於系統設計的考量,我們初步鎖定 定值為 3 的例子做深入分析,同時擇定 0 的位元組合[000…000]一定 存在此群組之中。若令 a 和 b 為兩個從此群組挑出的位元組合,由於 此群組中任意兩組合的漢明距離一定不小於 3,因此 a 和 b 作二進位 加法所得的 c,其結構中位元 1 的數目 k 必須不小於 3,而位元 0 的 數目則為(n-k)。意即 a 和 b 有 k 個位置是置放不一樣的位元,而其 餘的(n-k)個位置則代表同樣的位元。為了符合群組的特性,a 和 b 再分別和 0 的位元組合估算其漢明距離。茲針對此 k 個位置做分析,
我們分別對四種不同情況做討論。
圖 3.2 證明線性區段碼示意圖
1、 對於 a 其中 k 個位置皆為 0 位元,則 b 在相同的 k 個位置皆為 1 位元,兩者為了達到和 0 位元組合之間也同樣具有漢明距離
不小於 3 的條件,兩者剩餘的(n-k)個位元一定得包含 3 個以上 的 1 位元。再分別將 a、b 和 c 做漢明距離,針對 a 而言其漢 明距離必定大於(k+3),而對 b 而言其漢明距離必定大於 3。
2、 對於 a 其中(k-1)個位置為 0 位元,只有一個位置為 1 位元,
因此對於 b 而言剛好與 a 顛倒,只有一個位置為 0 位元,(k-1) 個位置為 1 位元。兩者為了達到和 0 位元組合也同樣具有漢明 距離不小於 3 的條件,兩者剩餘的(n-k)個位元一定得包含 2 個以上的 1 位元。再分別將 a、b 和 c 做漢明距離,針對 a 而 言其漢明距離必定大於(k-1+2)=k+1,而對 b 而言其漢明距離必 定大於 1+2=3。
3、 對於 a 其中(k-2)個位置為 0 位元,只有兩個位置為 1 位元,
因此對於 b 而言剛好與 a 顛倒,只有兩個位置為 0 位元,(k-2) 個位置為 1 位元。兩者為了達到和 0 位元組合也同樣具有漢明 距離不小於 3 的條件,兩者剩餘的(n-k)個位元中必定包含 2 個以上的 1 位元。再分別將 a、b 和 c 做漢明距離,針對 a 而 言其漢明距離必定大於(k-2+2)=k,而對 b 而言其漢明距離必定 大於 2+2=4。
4、 對於 a 其中(k-3)個位置為 0 位元,有三個位置為 1 位元,因 此對於 b 而言剛好與 a 顛倒,有三個位置為 0 位元,(k-3)個
22
位置為 1 位元。兩者為了達到和 0 位元組合也同樣具有漢明距 離不小於於 3 的條件,因此兩者剩餘的(n-k)個位元中必定包含 3 個以上的 1 位元。再分別將 a、b 和 c 做漢明距離,針對 a 而言其漢明距離必定大於(k-3+3)=k,而對 b 而言其漢明距離必 定大於 3+3=6。
綜合以上 4 種情況的討論,可以發現 a 和 b 做二進位加法所得的 c 和 a、b 的漢明距離皆不小於 3。這代表此群組任意取兩個位元組合具有 加法的封閉性,意即 c 仍然屬於在這群組之中,也說明了這種群組是 一個子空間。再加上 0 位元組合必存在此群組之中,因此我們可以證 明在定值為 3 的情況下,此群組就是某個合法的產生矩陣所製造出的 所有合法碼字。如此也可解釋為什麼經過此演算法找出的群組,其所 屬的位元組合數一直是 2 的倍數次方。我們甚至可以從這所有的合法 碼字,找出其對應的產生矩陣以及查核矩陣。換句話說,經過此演算 法所找出的群組本身就是一群具有位元更正能力的合法碼字。
以上的說明驗證了定值為 3 的情況,此群組為一合法的線性區段 碼,只要定出我們希望合法碼字的位元數,就可以找出對應的產生矩 陣以及查核矩陣。從線性區段碼的角度來看,所謂的定值其實就是在 編碼理論中的最小距離值。依此列出經過證實的(n,k)線性區段碼,
其最小距離皆為 3,即可更正 1 個發生錯誤的位元:(6,3)、(8,4)、
(10,6)、(12,8)、(14,10),其中(10,6)以及(12,8)兩種線性區段碼 將會運用在我們的實驗系統之中。另外,我們可以推廣到 3 以上的定 值,利用同樣的方法也可證明出亦為線性區段碼的特性。
3.1.3 位置指定演算法
多重描述的索引指定是將一個訊號經過純量量化或向量量 化處理之後所得的量化索引,經過一個指定函數產生不同的描述 再分別傳輸。本實驗的環境都設定於兩個傳輸通道之下,因此任 意一個量化索引經過索引指定之後,會針對此索引在指定矩陣的 座標,分別在兩個通道傳輸此座標的列索引以及行索引。我們的 構想是,如果此兩個索引值的位元表示式合併起來可以成為一個 合法的碼字,接收端在還未進入多重描述解碼器之前,可以事先 對此碼字做個別偵測或是更正。實際的做法就是利用查核矩陣盡 可能找出可更正的錯誤位元並更正之,無法更正錯誤的位元就維 持原來的接收碼字,再進入最後階段的多重描述解碼器執行錯誤 隱匿(error concealment)的動作。按照 3.1.2 所介紹的演算法,
可以找尋出符合條件的特殊群組,此群組包含一個產生矩陣所編 碼輸出的合法碼字,將此所有合法碼字分別做對等的分割,該位 元組合的前半部與後半部分別對應到指定矩陣的列索引與行索
24
引,依順序在指定矩陣中慢慢將對應位置出來。
我們可以想像一個多重描述量化器,輸入訊號經過向量量化或 是純量量化,而得到一個 k 位元的量化索引,再經由指定矩陣的查 詢,分別在兩通道傳輸 n/2 位元。總體來看就像個黑盒子,輸入一 個 k 位元的資訊,然後輸出為一個 n 位元的碼字,再做切割分別 在兩個通道傳輸 n/2 位元。藉由 3.1.2 所提出的演算法,為了有更 正 1 個錯誤位元的能力,定值至少要 3 以上,再給定所需要的 n 位 元值,就可以很容易地找出對應的產生矩陣以及所屬的合法碼字。
將這所有的合法碼字做等分切割,前 n/2 位元當作第一個通道傳輸 的位元,而後 n/2 位元則為第二個通道所傳輸的位元。若分別將這 些位元組合以其十進位表示,即可在指定矩陣中找到一個相對應的 位置代表該合法碼字。舉例來說,經過 3.1.2 的演算法,我們找出 (n,k) = (12,8) 的線性區段碼,其最小距離值為 3,代表其可以更 正 1 位元發生錯誤的情況。此種線性區段碼運用在我們設計的多重 描述量化之中,即代表輸入為 8 位元長度的訊號,在一個(6 位元
*6 位元)的矩陣之中需要找出置放 256 索引的位置。透過以上的描 述,分別對這 256 個合法碼字做分割,前 6 位元代表在此 64*64 矩 陣的列數,後 6 位元則代表在此 64*64 矩陣的行數,就可以在一個
*6 位元)的矩陣之中需要找出置放 256 索引的位置。透過以上的描 述,分別對這 256 個合法碼字做分割,前 6 位元代表在此 64*64 矩 陣的列數,後 6 位元則代表在此 64*64 矩陣的行數,就可以在一個