Comments
Description
Transcript
MP3デコーダのIMDCT処理のハードウェア化
デザインコンテスト 規定課題 「 デコーダの 処理のハード ウェア化」 パルテノン研究会 平成 年 月 日 目次 はじめに 課題の概要 課題の詳細 処理 設計仕様 設計環境 評価項目 提出物について 協調シミュレーションについて 付録 参照ソフト、 サイト、書籍など デコーダの 処理のハード ウェア化 MP3 bitstream Bit allocation decoding Scalefactors Huffman decoding Requantization Stereo processing Alias reduction Software C++ Hardware SECONDS SFL IMDCT Synthesis subband filterbank PCM bitstream WAVE composing WAVE bitstream 図 デコーダ 協調シミュレーション はじめに 本稿はパルテノン研究会が主催する「 デザインコンテスト 」の規定課題である デコー ダの !"#$ 処理部分のハード ウェア設計仕様を定 めるものです。 とは国際音声伸張規格である %&' ( )!*$ の略称です。本稿 では デコーダの詳細に関しては述べません。 規格の詳細は「付録」ページにある %+ サ イトや書籍リストを参照してください。 課題の概要 デコーダのブロック構成を図 に表します。本課題では、 デコーダの 処理回 路の設計を行ないます。設計した 処理回路に対して、 協調シミュレーションによ り実際の フォーマットのビットストリームをデコードし 、音質などの検証を行ないます。 ソフトウェアによる処理の解析では 処理は デコード 全体の約 ,を占めています -.。その処理を専用ハード ウェアで実行することで / の負荷を軽減することができます。 は積和演算中心の処理であり、演算器、演算順序、データパス、係数テーブルの取り扱い、メモリア クセス、などについての工夫が必要です。また、データのビット幅や演算精度の音質への影響を考慮 する必要があります。 本課題の設計では、標本化周波数 012 、 34 量子化、ステレオ音声のリアルタイム処理を目 標とします。これは、5 !6 ( !7 や 5 !6 の音質に相当するものです。ライブラリ デコーダの 処理のハード ウェア化 は 8% 9: 、 層、9 &! !*$ を用い、;%898 システムでの論理 合成により、動作周波数( 処理レート )、回路規模、消費電力を評価します。また、使用するメモリ ( 係数のテーブル、入出力ならびに中間バッファ )の規模も評価します。 設計した 処理回路に対して、課題用に提供される デコーダ 協調シミュレー ション環境を用いて検証を行ないます。この環境では、 デコーダソフトウェアの一部を による回路シミュレーションに置き換えて実行することができます。 の規格では 、音質( 精度)に関して規格に準拠しているか否かのテスト #76! $ が規定されています。上述のシミュレーション環境を用いて、実際の のビットストリームをデ コードし 出力される音声を確認するとともに 、#76! を行ないます。#76! で は、評価用のサンプル音声データならびに評価式が規定され 、結果は <"(66* #76!=> <6# !(!*=> < #76!= の3段階で与えられます。本課題の設計では 、<6# !(!*= を 満たすことを目標とします。 課題の詳細 処理 デコード 処理の各ブロックでは、?3 サンプルデータ分からなるグラニュール 5!(6$ を単 位として処理を行います。?3 サンプルデータは周波数領域に変換されており、 個の等幅サブバン ド サブバンド 当り 0 サンプル $ に分割されています。図 に入力データの構成を表し ます。各サ ブバンド は 、エンコード の際にロングブロックあるいはショートブロックに分類され 、それぞれに 対応する変換処理が行われています。ロングブロックは、さらにスタートブロック、ノーマルブロッ ク、ストップブロックに分類されます。ショートブロックの場合、サブバンドはさらに つの窓関数 によって処理されます。各グラニュールにおけるブロックの種類は ビットストリームのヘッダ に格納され 、デコード の際に、各グラニュールはそれに従って処理されます。 処理は 処理部と逆窓関数処理部からなります。 一つのサブバンド に対する の処理は次の計算式で与えられます。ロングブロックの場合、 入力を 、出力を 、 @ 3 として @ ¾ A A となります。ショートブロックの場合、入力を @ ¾ A A A $ @ 、出力を A $ $ 、 @ として @ @ $ となります。 一つのサブバンド 4 に対する逆窓関数の処理は、次の計算式で与えられます。ロングブロックの 場合、入力を 、出力を とし 、ノーマルブロックの場合 @ 3 A @ $ デコーダの 処理のハード ウェア化 1 32 0 ( 1 sb 1 30 X sb 0 ) 31 18 ( 0 sb 1 k k X sb 1 X sb k ) 11 16 17 sb X 11 sb X 16 sb X 17 ( 0 X sb,0 0 1 2 sb,1 X 0 X sb,2 0 3 X sb,0 1 4 X sb,1 1 5 X sb,2 1 図 への グラニュール分の入力データの構成 16 17 X sb,1 5 X sb,2 5 デコーダの 処理のハード ウェア化 ロングブロックのスタートブロックの場合 @ A 0 A @ ?$ @ 0 $ @ :$ @ $ ロングブロックのストップブロックの場合 @ 3A A となります。ショートブロックの場合、入力を @ として、 @ A A A @ $ @ 3 $ @ ?$ @ 0 $ 、出力を とし 、 @ @ $ @ $ @ 3 $ @ ?$ @ 0 $ @ :$ @ $ となります。 最後に 、各サブバンド 前半のデータと 、直前のグラニュールの対応するサブバンド 後半のデータ ¼ の和をとり、 の出力が計算されます。 を直前のグラニュールの 番目のサブバンド の 番目のデータとし 、 を 処理の最後出力として、 @ ¼ A @ ? A $ @ ? ¼ または が偶数の場合$ 、 が共に奇数の場合$ ∼ を保存しておく必要があります。な となります。また、次のグラニュールの処理のために お、この値は最初のグラニュールでは に初期化されています。 ¯ ¯ ¯ 設計仕様 6! ( 処理からの出力 AAの倍精度実数に相当$ を入力とし 、 処理を行 ない、(44! * B 6 4!1 処理への入力を出力します。 入出力はグラニュール ?3 サンプル分$ 単位でメモリバッファに格納されます。 入出力バッファの構成 ダブルバッファ化してもよい$ 、データ構造( 固定小数点浮動小数点、 ビット割当て )、バス幅などは自由に設計してください。 ¯ 処理実行中の状態を表す 信号を出力 $ します。アイドル状態 $ のとき、外部からの 信号 $ により処理を開始 $ し 、処 理が終了したらアイド ル状態 $ に戻ります。 デコーダの 処理のハード ウェア化 ¯ ブロックタイプは 信号 4 $ で次のとおりに与えられます。 ¯ ¯ ¯ ロングブロックのノーマルブロック ロングブロックのスタートブロック ショートブロック ロングブロックのストップブロック 回路記述には C) を用います。 合成ライブラリは 8% 9: μm、 層、9 &! !*$ を用います。 標本化周波数 012 、34 量子化、ステレオ音声のリアルタイムデコードが可能であること。 処理レートは、1グラニュール分の処理に要するクロックサイクル数と最大動作周波数から計 算します。その際、入出力バッファへのアクセスに要するサイクル数も考慮する必要がありま す。例えば 、6! ( からの入力バッファのデータ書き込みの間 処理が停止 してしまうような設計では、そのサイクル数も見積もって加えます。$ ¯ 音質 精度$ は #76! の 6# !(!* を満たすこと。 設計環境 本コンテスト課題では以下の設計環境で行うことにします。 ¯ ¯ ¯ ¯ 9 4! &8/)(D> ? 以降、 ; ! )(D> 3 以降。 論理合成システム ;%898> 以降。 AA #76 &8/ AA> : )(D 版$ 以降。 / 6 系 /。 評価項目 ¯ 処理レート( 動作周波数、処理に要するクロックサイクル数)、回路規模、消費電力、使用す るメモリ( 係数のテーブル、入出力ならびに中間バッファ )の量。 ¯ 音質( 精度) ¯ アーキテクチャの独創性 ¯ ド キュメンテーション デコーダの 処理のハード ウェア化 3 提出物について ¯ ド キュメント 設計した回路のアーキテクチャの解説。 処理レート( 動作周波数、処理に要するクロックサイクル数)、回路規模、消費電力、使 用するメモリ( 係数のテーブル、入出力ならびに中間バッファ )の量。 #76! の結果。 ソースコード 類の解説、シミュレーション手順、合成手順、シミュレーション環境コンパ イル手順など 。 ( 入出力バッファの仕様と 協調シミュレーション用、データ受 け渡し関数の解説を含む) 応募者の使用した 9> ;%898> AA コンパイラなどの処理系の名称とバージョン。 ¯ ¯ 設計した回路の全ての C) 記述及びシミュレーションならびに合成スクリプトなど 。 応募者が作成した全ての AAソースコード 、スクリプトなど 。 協調シミュレーションについて 本課題に応募する方のための 協調シミュレーション環境パッケージは追って 4 上に公開されます。 付録 参照ソフト、 サイト、書籍など 参考文献 -. パルテノン研究会 デザインコンテスト %+ サイト B 7EEE16 F77! BB #6 B # -. 福島徹也、李星日、境和久、泉知論、尾上孝雄、中村行宏 ;%898 を用いた デコー ダの 設計> 第 0 回パルテノン研究会資料集> ?'>$ -. 9 の デコーダサンプルソースコード 言語$ の配布サイト " 7" 7 (' B!7(4%&!(#75" E! B!6 7 !52 - . 「 詳細マニュアル」 B 77(4#!(2F741 #!5!2#7DB #6 -. B 7EEE6 #75 !!#75'#75'B # 9% ?' :: "#! B65* G 5 " #5 7 ( ! !! !( " 5 !6 !5 #! ! (7 !4( > 4 G ! ( -3. 5 ( %D7 &(7 %& # 7!5 B 7EEE6 #75 デコーダの 処理のハード ウェア化 -?. ! !6 !! 95!2! 9 4 !5 B 7EEEB -0. 1 (B!5 %& ( 4 !5 B 7EEE ('B!7F #75!( -:. ;4 )6 %& ( #76!> B 7EEE#!5B#47F#75#76! ?