話速変換や音域拡張,バーチャル・サラウンド,自動音場補正など(前編) ―― DSPによる音声信号処理の動向と実現法

米本 明弘,桜井 淳宏,岩田 佳英,伊藤 裕二

3. 圧縮オーディオの高音質化を実現する高音域拡張

 現在,音声信号の記録方式としてサンプリング周波数の高いHD(High Definition)オーディオが広まりつつあり,それらに対応したAVレシーバが各社から発表されています.HDオーディオでは,人間の可聴域といわれている20kHzを大きく上回る48kHzあるいは96kHzまでの音声信号を記録できます.

 一方,既に広く普及している携帯音楽プレーヤでは,不可逆圧縮フォーマットが一般的に用いられており,高圧縮率を達成するために信号帯域が少なからず犠牲になっています.例としてMP3では,16kHz以上の信号成分は聴覚的に影響が少ないとして削除される傾向にあります(図4).実際に試聴してみると,16kHz以上の単一正弦波信号は確かに聴こえ難い場合が多いです.しかし,楽曲においてその周波数帯域が削除されると,高域の雰囲気が損なわれることがあります.そこで,圧縮時に失われた高音域を復元することで,圧縮オーディオを高音質化することが可能になります(5).最近のAVレシーバにおいては,携帯音楽プレーヤとの接続が一般的になり,このような需要はますます高まっています.



図4 MP3のビット・レートと信号帯域
44.1kHz/2チャネルの曲をTI社MP3エンコーダでエンコードし,それをデコードしたときの周波数スペクトル.ビット・レートは128kbps,96kbps,64kbpsの3種類に設定した.デコード結果の帯域幅はそれぞれ16kHz,12kHz,8kHz程度であった.

 

● 倍音構造に基づいた高域補間の原理

 一度失われてしまった信号成分を復元することは原理的には不可能です.そこで何らかの先見情報を利用して高域成分を合成することになります.

 ここで紹介するアルゴリズムでは楽器音の倍音構造に注目しています.楽器音は弦や管の振動によって発生するため,基準となる周波数の基音と,その倍音成分を含んでいます(図5).基音の高さというのは,ピアノの最高音でも5kHz程度です.一方で図4を見ると,MP3の比較的低ビット・レートである96kbpsストリームでも,12kHzまでは信号成分が残っています.つまり,5kHzから12kHzまでの中域は倍音成分からなるとともに,多くの場合,圧縮の過程でも保存されることが分かります.そこで,こうした中域成分を失われた高域部分にコピーすることで,倍音構造を保存したまま高域成分を再現できます.



図5 楽器音の倍音構造
弦楽器による音楽の周波数スペクトル.楽器音は弦や管の振動により発生するため中高域は基本的に倍音成分から構成されている.

 

 ここで紹介する高域補間アルゴリズムでは,振幅変調を用いて中域成分を高域成分へコピーします(図6).振幅変調は入力信号に関して線形な処理であり,より自然に高域を補間できます.このときの搬送波周波数は中域から高域への周波数軸上の移動量を与えますが,聴感上大きな影響を持っており,音質を左右する重要なパラメータになっています.また,入力信号の周波数スペクトルの包絡線に基づいて高域のレベルを調節し,コピー時に中域成分と高域成分を滑らかにつなげる工夫も必要です.



図6 高域補間の原理
MP3の128kbpsストリームによる周波数スペクトルと高域補間結果を表す.今回のアルゴリズムでは振幅変調を用いて中域成分を高域成分へコピーする.このときの搬送周波数は中域から高域へのシフト量を与える.また,入力信号のスペクトルの包絡線に基づいて高域のレベルを調整し,コピー時にスペクトルが滑らかになるようにする.

 

● カットオフ周波数をリアルタイムに検出する技術が鍵

 ここでは入力信号の帯域の上限をカットオフ周波数と呼びます.一般に圧縮オーディオのビット・レートが低くなる(圧縮率が高くなる)と,このカットオフ周波数は下がる傾向にあります.これは高域成分を無理して保存するよりも,同じビット量をボーカル帯域などに割り当てた方が聴感上は音質が良いためです.また,カットオフ周波数はビット・レートだけでなく,圧縮方式やエンコーダの実装にも依存します.ストリームによっては,一つの曲の中で時々刻々と変化するものもあります.従って高域を過不足なく補間するには,このように変動するカットオフ周波数をリアルタイムに検出し,それに合わせて,どの周波数から高域補間するかを決める必要があります.

 図7に今回の高域補間アルゴリズムのブロック図を示します.まず入力信号のカットオフ周波数をリアルタイムに検出し,この結果に基づいてHPF(High-pass Filter)のカットオフ周波数を設定します.このHPFによって,振幅変調によって生成された高域信号から補間に必要な帯域が過不足なく抽出されます.入力信号のカットオフ周波数はストリーム内の情報から知ることもできますが,今回はアナログ経由での入力にも対応するため,入力PCM信号からのみ検出しています.一方,これと同時に入力信号の周波数スペクトルの包絡線を検出し,導出された倍率を補間信号に適用してレベルを調整します.最後に位相を合わせて入力信号と足し合わせ,過去のフレームとオーバラップをかけて出力します.



図7 高域補間アルゴリズムのブロック図
入力信号に振幅変調を施すことで中域成分から高域成分を合成する.また,入力信号の周波数スペクトルから,リアルタイムでカットオフ周波数と包絡線検出を行い,所望の高域補間信号を抽出するHPFのカットオフ周波数を設定するとともに,合成された高域に対するレベルを決定する.

 

● 高音域拡張をDSPに実装するためのヒント

 高域補間のアルゴリズムはその性格上,すべての処理が周波数領域で実現されており,FFT(Fast Fourier Transform)演算が全体の処理量のおよそ半分を占めます.実装にはこうしたFFTなどの演算に最適な音声信号処理用プロセッサ「Aureus DSP(6)」を用いています.Aureus DSPはVLIWアーキテクチャを持つ32ビット浮動小数点「C67DSPコア」(図8)を搭載しています.



図8 C67x浮動小数点DSPコアのブロック図
C67x浮動小数点DSPコアはデータ・ユニット(D),算術論理演算器(L),シフタ(S),乗算器(M)をそれぞれ2個ずつ計8個搭載したVLIWアーキテクチャを持つ.各データ・パス間はクロス・パス(X)を通じてデータをやりとりする.8個のユニットが同時並行動作することによって各種信号処理演算を非常に効率よく実行できる.

 

 リスト1はこのC67DSPライブラリに含まれるFFTコードの一部です.これはFFTのバタフライ演算(図9)を1段分実行するソフトウェア・パイプラインのカーネルですが,すべての処理が並列化された結果,1入力データ当たり1クロックで一つのバタフライ計算を完了します.このDSPは最大300MHz動作で,今回のアルゴリズムは44.1kHz/2チャネル入力時に15MHzの演算量で動作し,そのうちFFTでは8MHzを消費しています.なお,ここではCPU使用率を正確に表現するためにMHzを用いています.

リスト1 FFTのソフトウェア・パイプライン・カーネル
図9のバタフライ演算をループ処理するソフトウェア・パイプラインのカーネル.行頭の||は,その行が上の行と並列に実行をされることを表している.つまり,このパイプライン・カーネルは4クロックで動作する.次の大かっこは該当行の条件付き実行を意味しており,その後ろにOPコード・ユニット,ユニット,オペラントが続く.1回のループでは四つの実数データ(二つの複素数データを処理するため,スループットは1入力(実数)当たり1クロックである. 

 



図9 FETのバタフライ演算の基本ブロック

時間間引き基数2のFFTにおけるバタフライ演算の基本シグナル・フロー図.入出力x,yおよび回転因子Wは複素数であるため4回の実数乗算と6回の実数加減算が必要.

 

>>> 後編はこちら

 

参考・引用*文献
(1)E. Moulines and F. Charpentier;Pitch-Synchronous Waveform
Processing Techniques for Text-To-Speech Synthesis Using Diphones,Speech Communication,Vol.9,Nos.5/6,453-467,1990.
(2)S. Roucos and A. M. Wilgus;High Quality Time Scale Modi
fication for Speech,Proc. ICASSP'85,pp.493-496,1985.
(3)A. Sakurai;Generalized Envelope Matching Technique for Time-Scale Modification of Speech (GEM-TSM), Interspeech'2005,pp.3309-3312,Sept. 2005.
(4)J. S. Laroche and M. Dolson;Improved phase vocoder Time-
Scale Modification of audio,IEEE Trans. Speech and Audio Proc. ,323-331,1999.
(5)E. Larsen and R. M. Aarts;Audio Bandwidth Extension, Wiley,
2004.
(6)TMS320C67x/C67x+ DSP CPU and Instruction Set Reference
Guide,2006,Texas Instruments.
 

 

よねもと・あきひろ,さくらい・あつひろ,いわた・よしひで,いとう・ゆうじ
日本テキサス・インスツルメンツ(株) ソフトウェア研究室
 

«  1  2
組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日