固定小数点プログラム開発の手間を省ける組み込み機器向けDSPコアを開発 ──15人日でMP3デコーダを開発可能に
●15人日でMP3デコーダを開発
MP3デコーダは,ビット・ストリームを浮動小数点フォーマットのスペクトラム・データにデコードする部分と,スペクトラム・データを音声データにデコードする部分から構成されます.今回の開発では,ビット・ストリームのデコード部をマイクロプロセッサで実現し,その後段に,浮動小数点データを階層的ブロック浮動小数点データに変換する専用ハードウェアを接続しました.本DSPコアを使って実装したのはステレオ・チャネル再生成,エイリアス削減,iMDCT(逆拡張離散コサイン変換),ポリフェーズ・フィルタの各機能です.
ISO/IECが提供している参照モデル(C言語記述,32ビット浮動小数点)からDSPアセンブリ・プログラムを開発しました.参照モデルは理解しているがDSPアセンブリ・プログラムになじみのない技術者1名が,実働15日間で完成させました.参照モデルおよびDSPでデコードした音声を原音と比較する方法で実装の品質評価を行い,参照モデルとそん色のない音質を実現していることを確認しました.
さらに,本DSPコアを用いて,ハンズフリー・システムに用いる定常ノイズ・キャンセラを開発しました.図10に示すのは,ノイズ・キャンセラに含まれる発話検出処理に関する実装の品質評価のもようです.浮動小数点機能モデルの計算結果をあらかじめファイルに出力し,DSP実装の結果と比較しています(二つの波形が重なれば品質が良い).同じアプリケーションを32ビット固定小数点RISCプロセッサに実装した結果も合わせて示しています.ダイナミック・レンジの必要な部分の一部を32ビットで,残りを16ビットで実装しています.DSP実装の結果ほどにはうまく浮動小数点の結果と一致していません.
DSPプログラムの開発は,1名の研修生(修士課程在籍中)が担当しました.こちらは浮動小数点機能モデルを参照しながら,約10日間で完成させました.
〔図10〕信号処理精度の評価例
デバッガ出力の計算結果とあらかじめ計算した浮動小数点機能モデルの結果を視覚化することで,プログラムを簡単にデバッグできる.