行政院國家科學委員會補助專題研究計畫成果報告
※※※※※※※※※※※※※※※※※※※※※※※※※
※ ※
※
無線傳輸之訊源及通道編碼 (3/3)
※
※
Source and Channel Coding for
※
※ Wireless Transmission (3/3)
※
※ ※
※※※※※※※※※※※※※※※※※※※※※※※※※
計畫類別:□個別型計畫 X 整合型計畫
計畫編號:
NSC 90-2219-E009-003
執行期間:90 年 8 月 1 日至 91 年 7 月 31 日
計畫主持人:杭學鳴
計畫參與人員:林敬雄,蔡家揚,蔡尚軒,陳繼大,李岳凌
本成果報告包括以下應繳交之附件:
□赴國外出差或研習心得報告一份
□赴大陸地區出差或研習心得報告一份
□出席國際學術會議心得報告及發表之論文各一份
□國際合作研究計畫國外研究報告書一份
執行單位:國立交通大學電子工程學系
中 華 民 國 91 年 7 月 31 日
行政院國家科學委員會專題研究計畫成果報告
無線傳輸之訊源及通道編碼(3/3)
Source and Channel Coding for Wireless Transmission (3/3)
計畫編號: NSC 90-2219-E009-003
執行期限:
90 年 8 月 1 日至 91 年 7 月 31 日
主持人: 杭學鳴 國立交通大學電子工程學系教授
計畫參與人員:林敬雄,蔡家揚,蔡尚軒,陳繼大,李岳凌
國立交通大學電子研究所
中文摘要
我們的目標是發展與實作適合於無線通 訊所使用的訊源及通道編碼。第三年達成 的三項課題為:(1)「適應性多重位元率」 語音編碼之深入研究,(2) H.263+視訊編 解碼器之改進,與(3)通道編碼之研究、模 擬,並以數位訊號處理器實現。並且將此 三項與其他子計畫連結整合,建立一個在 DSP 上實現的完整系統。 關鍵詞:AMR,H.263+,通道編碼Abstract
The goal of this project is to develop and implement video and speech coding schemes that are suitable for wireless tele-communication systems. We achieve the following goals during the third year. (1) Simulate the “Adaptive Multi Rate” (AMR) speech coding standard. (2) Improve the DSP-based implementation of H.263+ video coder. (3) Simulate and implement the 3GPP convolutional codes on DSP. Fur-thermore, we integrate these three items together with other sub-projects to complete a real-time wireless simulation system on TI DSP chips.
Keywords: AMR, H.263, Channel Coding
第一部份 語音編碼
在第一年及第二年中,已將 G.723.1 之編 解碼器於 DSP 上之實現完成,因此在第三 年主要是針對適應性多重位元率再做深 入之研究。 A.背景 歐洲通信標準委員會在 1997 年開始發展 此一新一代的語音壓縮技術,稱為「適應 性 多 重 位 元 率 」( Adaptive Multi Rate, AMR),由「第三代無線通訊合作計畫」 (3rdGeneration Partnership Project)所接 受。其特色之一就是把傳輸通道的狀況考 慮在內。可以用在視訊電話、視訊會議、 無線多媒體傳輸等應用當中。 B.研究步驟 「適應性多重位元率」(AMR)的目的在保 持有效率的頻譜使用的情況下,能夠達到 更高的語音品質。整個系統可以針對不同 的 傳 輸 通 道 流 量 狀 況 , 對 通 道 模 式 ( channel mode ) 和 編 碼 模 式 ( codec mode)做各種調整。當網路狀況不佳時, 語音編碼器產生較低的位元數和較差的 聲音品質,同時允許提供較多的保護碼來 對抗通道失真。反之,在網路狀況較佳的 時候,語音編碼器提高其所產生的位元 數,而保護編碼也較不需要,這也是這個 語音壓縮技術命名的由來。 從壓縮技術來看,AMR 這個語音壓縮標 準 是 以 「 電 碼 激 發 線 性 估 計 編 碼 」 (ACELP)的技術為設計基礎,並有八種 編碼率,分別介於 4.75 到 12.2 kbit/s 之 間,並針對各種不同的編碼率提供不同比 率的「迴旋編碼」(Convolutional Code), 因此在不同的無線網路狀況下,可以從中 選擇最合適的編碼率得到最佳的品質。 實驗中我們引進兩種通道雜訊模型,分別
是 「 雷 利 衰 減 通 道 」 (Rayleigh fading channel, Gilbert model)和「加成性白色高 斯雜訊」(additive white Guassian noise, AWGN)。我們引用以上兩種模型在不同 噪音情況下測試上述各種模式,以比較其 優劣。 C.實驗與結果 (a) (b)
圖 1. (a)與(b)分別為各種模式在 AWGN 及 Rayleigh fading channel 之表現,圖中標示 475、515、59、 67、74、795、102、122 分別表示 4.75kbps、5.15kbps、 5.9kbps、6.7kbps、7.4kbps、7.95kbps、10.2kbps、 12.2kbps。 我 們 用 原 信 號 與 還 原 信 號 之 頻 譜 誤 差 (Spectrum distance) 量測其傳輸之最終品 質,此誤差為壓縮誤差與傳輸錯誤共同合 成之結果。圖 1 為各種模式在加成性白色 高斯雜訊通道與雷利衰減通道下之頻譜 誤差。我們可觀察發現,在相同的 Eb/No 之下,不同模式之最後結果相當接近。例 外是,12.2kbps 與 7.95kbps 兩者對於通道 圖 2
.
12.2kbps 編碼模式各位元之錯誤敏感度分析。 圖 2 是 12.2kbps 編碼模式各位元之錯誤時 所造成之頻譜誤差,證實其具有特別敏感 之位元。第二部份 視訊編碼
視訊編碼之研究,在第二年已經將視訊編 碼器與解碼器在 DSP 上實現,第三年主要 將其在 DSP 之執行效率加以提升,並且加 上碼率控制(Rate control)。 A.背景 在視訊編碼部分,我們將 ITU 所制訂的視 訊 標 準 H.263+ , 利 用 德 州 儀 器 的 TMS320C6201SP,實現一個即時編解碼系 統。在之前的成果中,我們引進了 Fast Motion Vector Search 和 DIF DCT 來提升 編碼速率。在第三年,我們則是利用 Code Composer Studio 的 Compiler 特性以及 DSP 架構,並且調整調整記憶體使用之分 配,使整體效能提升。另外,我們將 H.263 TMN5 所定義的碼率控制(Rate control)機 制加入我們原來的編碼器中並且在 DSP 上實現。 B.研究步驟 一. 利用DSP特性加速編碼效率: 在第二年我們已完成 H.263+編解碼器的 實現,在今年由於進行所有子計畫的系統 整合,會經過許多不同的界面,經過越多 層的介面所造成的延遲(delay)會越嚴重, 而編碼速度的考量就變得相對重要。因此 我們將編碼器中的 DCT 部份再度置換為 定點 DIF DCT,並且針對以下三點,對編(1)利用 TI Code Composer Studio 編譯器 (compiler)所提供的內部運算子(intrinsic operator)替換程式中的運算部份,可以縮 減 程 式 記 憶 體 (program memory) 使 用 量,並且可以對該運算加速。 (2)為增加 DSP 對資料處理(throughput)能 力,我們利用 32 bits 的一次載入(load) 兩筆 16 bits 的資料,這樣可以降低 DSP 對記憶體載入與儲存(store)的次數,並且 搭配內部運算子的使用,加速編碼速度。 (3)內部程式記憶體的速度較快,但是僅有 64kbyts。我們調整程式中資料宣告,將 常用的程式區快使用內部記憶體,而將 其 他 資 料 使 用 外 部 記 憶 體 (external SDRAM),因此可加快整體讀取資料速 度。 二. 輸出碼率控制(Rate Control): 為了維持一定的編碼輸出速率,並且考量 加入碼率控制機制後,會對 DSP 造成額外 的運算負擔與記憶體使用量,我們選用了 一個運算量較低的方法,此方法為 H.263 TMN5 文件中定義。此方法主要利用兩種 方式調整輸出碼率: (1)利用輸出緩衝區(output buffer)判斷是 否對下一張 frame 編碼,若是緩衝區內 容量大於最大臨界點,則選擇不做編 碼,避免輸出碼率過高。 (2) 在 Macroblock 層 級 調 整 量 化 參 數 (quantization parameter) 。 在 對 某 一 個 Macroblock 進行編碼之前,可以算出此 Macroblock 可用的預算(budge),若是利 用目前的量化參數得到此 Macroblock 編 碼碼率大於此預算,則調大接下來下一 個 Macroblock 的量化參數,使下一個 Macroblock 的編碼碼率接進預算,反之 亦然。 在經過實驗模擬之後,我們並且將此機制 加入 H.263+的 DSP 實現中。 C.實驗與結果 圖 3 為 TMN5 之實驗結果,在此圖中所用 的目標碼率(target bitrate)為 53kbps,輸出 緩衝區的臨界點設為 8kbps,I 畫面每十張 更新一次。由於 I 畫面所需的碼率較高, 因此在有碼率控制的情形下,會造成大概 每十張 PSNR 會略為下降的情況。由圖中 可以觀察到此現象。 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 (a) 0 2000 4000 6000 8000 10000 12000 14000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 (b) 29 30 31 32 33 34 35 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 (c)
圖 3
.
QCIF foreman sequence with TMN5 rate con-trol (a) 每張 frame 之 bits 使用量, (b) 編碼輸出緩衝 區情況, 及 (c) 每張 frame 之 PSNR . 另外,在經過最佳化處理之後的編碼器, I 畫 面 由 原 先 的 67.48MIPS 加 速 至 2.89MIPS,P 畫面則由原先的 229.52MIPS 加速至 6.44MIPS;平均來說編碼速率約為 每秒 20 張 QCIF,解碼為 26 張 QCIF。而 編碼器記憶體使用量為 58kbytes,解碼器 (decoder)記憶體使用量為 27kbytes。 D.結論在經過 DIF DCT 與 Diamond search 的快 速演算法,及針對 DSP 特性對程式碼做最 佳化後,最後加上碼率控制,已可在 DSP 上達成平均為 20 張 QCIF 的編碼器實現。
第三部份 通道編碼
此部份主要為通道編碼在 DSP 上的實現。 A.背景 在 3GPP 所制訂的第三代無線通訊標準 中,採用了渦輪編碼(Turbo Coding) 及迴旋編碼(Convolutional Coding) 等兩種通 道編碼來保護傳送的資料。3GPP 的技術 報告並指出,迴旋編碼較適合運用在即時 系統上,因此我們選擇迴旋編碼來進行 DSP 即時實現。一般迴旋編碼的解碼都是 利用 Viterbi 解碼方式,它的基本觀念是建 立樹狀圖結構,並從其中找到最佳路徑而 把原始的資料重建回來。 B.研究步驟 一般而言,Viterbi 解碼方式必須等到全部 的資料都接收之後才能開始做解碼的動 作 , 但 是 如 此 一 來 就 無 法 達 成 即 時 (Real-time)處理,因此我們採用一種稱為 「削去式 Viterbi」解碼方式。當解碼器收 集滿 128 筆資料之後,即決定前 64 筆資 料輸出,因此最多只有 64 筆資料的時間 延遲,並且可以節省記憶體的使用。 此外,我們發展了一套 ANSI C 的程式來 確認整個通道編碼系統的正確性,然後將 這 個 程 式 移 植 到 德 州 儀 器 生 產 的 TMS320C6201 DSP 上面, 而直接將 此 ANSI C 之程式在 DSP 上實現無法達到即 時系統的要求,因此我們針對以下幾點對 此 Viterbi 解碼器做最佳化: (1)改變資料型態之宣告: 在 DSP 中處理 long 宣告格式為 40 bits, 必須分為 32 bits 與 8bits 做處理,會降低 處理速度,因此我們將程式中所有使用 long 宣告之資料改為 int 宣告,可改善運 算速度。另外,常用的資料區塊則宣告 為 Register 格式,可加快 DSP 接觸(access) 此資料的速度。 (2)去除程式碼前後相關性(dependency): 在相鄰的程式碼易出現資料的相關性, 當編譯器編譯(compile)時,必須解決因 程式前後相關性所造成的 data hazard, 造成許多不必要的運算。因此我們將相 鄰程式碼間的相關性儘量排除,可得到 相當大幅度的運算速度改善。 (3)軟體管線(software pipeline)及迴圈展開 (loop unrolled): 軟體管線的概念來自對迴圈的處理。在 迴圈中,下一個反覆(iteration)的指令 必須等到這個反覆的指令全部做完之後 後,每一個反覆中沒有相關的指令可以 放在一起做,如此一來便可以加快迴圈 的執行速度。 (4)增加每次資料輸入量(thoughput): 方法同此報告之前提過第二部份 B.中第 (2)點描述。 C.實驗與結果 表 1 列出了程式原始版本和改良後的不同 版本的效能比較,可以看出在處理速度上 有極大的改善,最後一個版本的速度比原 始版本快了 20 多倍,在本子計畫中,最 低傳送語音及視訊資料所需之 bit-rate 約 為 60Kbps,因此足以達成 real-time 之編 解碼效能。 表 1
.
經過程式各個最佳化步骤後,運算速度逐步 改進之比較,最佳化步驟由上而下順序分別為在 B.研究步驟所題之 4 種最佳化方法。 D.結論 透過一些 DSP 最佳化之技巧,可使解碼執 行速度由 6.5kbps 加速至 153.8kbps,總共 加快 2550%,使其達到 Real-time 系統的 要求。Publications:
(1) C.-H. Yang and H.-M. Hang, “An investiga-tion on low bit-rate speech coding over noisy channels,” 2002 National Symp. on Telecomm., Puli, Nantou, Taiwan, Dec. 2002. (accepted) (2) K.-T. Shih, C.-Y. Tsai, and H.-M. Hang, “Real-time implementation of H.263+ using TI TMS320C6201 Digital Signal Processor,” ibid. (3) J.-S. Lin and H.-M. Hang, “AMR coding performance analysis," ibid.
最佳化步驟 Total cycle Code
size Proc. rate (kbit/s) Original 43,664,891 0x1720 6.5 long type int type 20,124,171 0x1540 14.2 DMEM Register 16,454,127 0x1500 17.4 I, i/2 I, j (i/2) 3,000,674 0x1720 95.5 Copy Unrolled 2,054,134 0x19c0 139.5 Char (pp) Int (pp) 1,863,381 0x1900 153.8