• 沒有找到結果。

B. 研究步驟

1. AAC General Coding 編碼法之研究:

多媒體壓縮標準如聲訊壓縮,只界定解碼端。編碼端許多參數選擇,是設計工程師的職 責。好的參數選擇產生較好的效果。圖 1 是 MPEG-4 AAC 聲訊編碼標準的整體架構。在 MPEG-4 AAC 聲訊編碼中,參數選擇中最重要的一類是控制位元率,以達到較佳聲訊品質 與較高壓縮比,也就是圖.1 中 Rate/Distortion (R/D) Control 的部分。經由前置處理所得到的 頻線係數(Spectral Coefficients)先經過量化器(Quantizer)量化,量化過的頻譜係數再利用霍夫 曼(Huffman)編碼。參數 “比例因子(Scale Factor, SF)”控制著量化器的步階(Step Size),因此 也決定著量化誤差(noise-to-masking ratio, NMR) 。

另外 MPEG-4 AAC 提供了 12 組“霍夫曼編碼書(Huffman Code Book, HCB)”以供編碼。

Rate/Distortion Control 就是藉由選擇不同的 SF 和 HCB 數值來控制編碼位元率以及聲訊品 質。SF 和 HCB 這兩項參數最後也需要被編碼並傳送到解碼端。在 Rate/Distortion Control 演算法上,我們嘗試兩種想法,分別發表兩篇論文,這兩種想法有部分亦可結合在一起。

Filter Bank

TNS

Intensity/Coupling LTP

Prediction

M /S Stereo Perceptual

M odel

PNS

B i t s t r e a m

M u l t i p l e x Rate/

Distortion Control

Scale Factors

Quantizer

Noiseless Coding (Huffman)

Interleving

Perceptual W eights

Vector Quantization Twin VQ

Input Time Signal

圖 1. MPEG-4 AAC 聲訊編碼整體架構

1.1 有效位元分配方式:

在聲訊壓縮中傳統位元分配方法是,觀察各頻帶(Band) 的 NMR 值(誤差值),將位元 優先配給 NMR 值最大者。但如從整體效率角度,這並不是成效最好的方法,例如下例:

Band NMR (dB) NMR-Gain/bit A 3.5 0.5 B 3 1.5

如上表,Band A 的 NMR 值較大,但給 Band A 1 bit 只降低 0.5 dB。若給 Band B 1 bit 則可降低 1.5 dB。如果聽覺上,不論哪一個 Band,降低 1.5 dB 都會比降低 0.5 dB 好,則選 Band B 較有效。

不同於傳統的位元分配方法,我們將“位元使用效率”這個概念引入,並根據此概念提 出下方之新的位元分配之原則。新的位元分配原則可以比傳統方法更有效的控制位元使用效 率。

“Give bits to the band with the maximum NMR-Gain/bit”

根據我們所提出之新的位元分配原則,我們針對 MPEG-4 AAC 聲訊編碼設計一套新的 位元分配方法,Max Bits/NMR-Loss (BNL)位元分配方法。

Max Bits/NMR-Loss 位元分配方法大至可分為以下四個步驟:

1. 前置處理(Pre-Processing):主要是用來初始化一些在接下來步驟中所需要用的參數,如:

參考位元(bitsref ),參考 NMR(NMRref)等…。

2. Bits/NMR-Loss 分析:對於各 band,藉著調整 SF 的數值,我們可以得到一組新位元(bitsnew) 及新 NMR(NMRnew)。經過 Bits/NMR-Loss 的分析後,對於各 band,我們就可以找出最大 Bits/NMR-Loss 數值和相對應的最佳 SF 數值。

Bits/NMR-Loss=(bitsrefbitsnew)/(NMRnewNMRref)

3. 分析所有 band 的 Bits/NMR-Loss,並選出擁有最大 Bits/NMR-Loss 數值的 band,然後將 此 band 的 SF 數值調整到最佳數值。

4. 計算新的總編碼位元,如果大於限定之編碼位元則更新所有參數(如: bitsrefNMRref 等) 並回到步驟(2)。

P re -P ro c e s s in g

B its /N M R -L o s s A n a ly s is

A d ju s t S F o f th e S F B w ith m a x B its /N M R -L o s s

T o ta l c o d in g b its

< p re s c rib e d b its N o

Y e s

圖 2. Max Bits/NMR-Loss 位元分配方法

步驟(2)是 Max Bits/NMR-Loss 位元分配方法中計算量最大的部分,如下例:MPEG-4 AAC 聲訊編碼有 49 個 band,如果各 band 的候選 SF 數目為 10,那總共要執行 Bits/NMR-Loss 計 算 490 次。為了減少新位元分配方法的計算量,我們同時提出了一個步驟(2)的快速演算法。

經過統計上的分析,我們發現,除了少數特定的 band 之外,其餘 band 的 “最佳 SF” 和 “最 大 Bits/NMR-Loss”數值在前後 iteration 的相似性極高。因此對於這類 band,我們可以省去 它的大部分 Bits/NMR-Loss 計算。以下圖說明,如果我們在這個 iteration 調整了 Band A 的 SF 數值,那麼在下個 iteration 我們只需要從新分析 Band A 及與其相鄰的 2 個 band (Band A-1、A+1)的 Bits/NMR-Loss。其餘 band 的“最佳 SF”等參數可以延續到下個 iteration 使用,

如此一來便可以大幅的減少步驟(2)的計算量。

Band A Band A+1

Band A-1 Band A+2

Band A-2

1.2 快速位元分配參數搜尋法:

SF 和 HCB 這兩項參數的組合控制著編碼位元率以及聲訊品質。想要得到最佳的效果,

最直接的方法就是比較 SF 和 HCB 這兩項參數所有可能的組合並選出最佳的組合,就也就 是所謂的窮舉搜尋法。但由於窮舉搜尋法的計算量非常大,不適合於實際應用。前人觀察到 編碼參數前後間之重複關係,提出利用 trellis-based search 的方法來降低計算量。由於在前 人所提出之方法中,SF 和 HCB 這兩項參數是利用 trellis-based search 的方法同時決定,所 以其演算法又稱為 joint trellis-based (JTB),而其效果可以逼近窮舉搜尋法[9][10]。

雖然 JTB 演算法的計算量已遠較窮舉搜尋法為低,但是仍然過高,因此我們提出一個 計算量更低之快速演算法 cascaded trellis-based(CTB)。CTB 演算法同樣是利用 trellis-based search 的方法來決定參數,但是它和 JTB 演算法最大的不同點在於 SF 和 HCB 兩項參數是 分在兩個不同步驟決定的。下圖 4 為 CTB 演算法的架構,大致可分為四個步驟。

Virtual-HCB mode TB SF optimization

TB HCB optimization

Fixed-HCB mode TB SF optimization initializeλ

sfopt

hcbopt

fopt

s ′ hcbopt

Count total bits, comparison &

Adjustλ sfopt

( )

圖 4. CTB 演算法架構

1. 在沒有可參考之 HCB 的條件下,利用 trellis-based search 的方法決定一組最佳的 SF,

sfopt

2. 在給定一組 SF,sfopt,的條件下(來自步驟(1)),利用 trellis-based search 的方法決定一組 最佳的 HCB,hcbopt

3. 在給定一組最佳的 HCB,hcbopt的條件下(來自步驟(2)),利用 trellis-based search 的方法 再次決定一組新的最佳 SF,sf'opt。此步驟是為了修正一些在步驟 1 中因為沒有可參考之 HCB 時對於 SF 做的徧差決定。

4. 計算在使用sf'hcb 這組參數來編碼頻線係數時所需要的總位元率,並與一限定位

上述流程是 CTB 演算法的完整模式,如果要再進一步減化計算量,我可以省去上述流 程中的步驟(3),這樣便是 CTB 演算法的簡化模式。分開決定 SF 和 HCB 兩項參數可以大量 減少計算量,但也可能大幅降低品質,其關鍵點在於找出適當的虛擬霍夫曼編碼書模型 (virtual HCB model),而此模型主要是用於 CTB 演算法中的步驟(1)。在 JTB 演算法中,因 為 SF 和 HCB 兩參數是一起決定,所以對於任一候選 SF,有 12 組 HCB 與之搭配形成 12 組延申候選組合。然而在 CTB 演算法中,對於任一候選 SF,只有一組 HCB 與之搭配。步 驟(3)中用來搭配之 HCB 是由步驟(2)求得之真實 HCB。然而在步驟(1)中,我們則需要利用 virtual HCB model 來決定一組用來搭配的 virtual HCB,而這個 virtual HCB 適當與否將影響 整個 CTB 演算法的效能。為了建立適當的 virtual HCB model,我們從統計資料中找出篩減 候選 HCB 數目的規則性,並利用它來找出 virtual HCB model 中兩個重要的變數,編碼位元 偏移(δ)和虛擬霍夫曼編碼書比重(α)。下圖 5 顯示 CTB 演算法和 JTB 演算法之間的誤差隨 著不同的δ和α 數值而改變,而越小的誤差值表示越好。

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9

=1 δ

=0 δ

=2 δ

=3 δ

α (a)

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

1.1 1.2 1.3 1.4 1.5

α

=1 δ

=0 δ

=2 δ

=3 δ

(b)

圖 5. CTB 演算法和 JTB 演算法之誤差值 v.s (δ,α)

相關文件