固定小数点プログラム開発の手間を省ける組み込み機器向けDSPコアを開発 ──15人日でMP3デコーダを開発可能に
●ディジタル信号処理の入り口は浮動小数点
プロセッサに実装するディジタル信号処理のアプリケーション・プログラムは,一般に,図3のフローに従って開発されます.図3は,ターゲット・プロセッサの算術方式ごとに,上から順に,浮動小数点の場合,ブロック浮動小数点の場合,固定小数点の場合を示しています.ここで,ターゲット・プロセッサとは,組み込み機器の中でアプリケーション・プログラムを実行するプロセッサを指しています.
ディジタル信号処理のアプリケーション・プログラム開発は,アプリケーションを実現する信号処理機能の流れ(アルゴリズム)を決定する作業から始まります.この段階で,アルゴリズムを記述した機能検証用モデルを開発します.このモデルは,C言語や米国The MathWorks社のMATLABなどを用いて,汎用コンピュータ(パソコンやワークステーション)上で開発します.機能検証用モデルを,汎用コンピュータ上で動作するプログラムととらえることもできます.アルゴリズムの検証が目的のこの段階では,すべてのデータを浮動小数点データ・フォーマットで表現します.例えば,C言語であればfloat型やときにはdouble型を用います.
この機能検証用モデルに音声データや画像データを与えて,実際に信号処理を行ってみます.例えば,携帯型オーディオ機器のMP3,WMA(Windows Media Audio),ATRAC(adaptive transform acoustic coding)のようなオーディオ信号の圧縮/伸張アプリケーションの場合,実際にオーディオ信号を入力し,圧縮/伸張したうえで,元の信号との差を定量的に評価したり,実際に音を聞いて聴覚上おかしな現象が起きないかどうかを確認したりします.数多くのテスト・データを用いて主観評価を含む評価作業を行うため,機能検証モデルの開発には膨大な時間がかかります.
〔図3〕ディジタル信号処理アプリケーション・プログラムの開発フロー
固定小数点,浮動小数点,ブロック浮動小数点のそれぞれについて,アプリケーション・プログラムの開発フローを示す.固定小数点では,固定小数点機能モデルの開発に工数の大半をかける必要がある.このようなモデル開発の必要がない浮動小数点およびブロック浮動小数点は,浮動小数点機能モデルから直接ターゲット・プロセッサ用プログラムを開発できる.