(57)【要約】【課題】  高価なＣＰＵを用いることなく、安価に提供することが可能な、フルハードウェアロジックのVorbis形式デコーダを提供する。【解決手段】  本発明のVorbisデコーダは、入力インターフェイス１０１、パケットデコーダ１０２、第１メモリ１０３、第２メモリ１０４、初期化・モード管理回路１０５、第１フロア処理回路１０６、残余データ処理回路１０７、チャネル分離処理回路１０８、第２フロア処理回路１０９、離散コサイン逆変換回路１１０、ウィンドウ・オーバラップ処理回路１１１、ＶＱルックアップテーブル１１２、ｄＢテーブル１１３、ウィンドウルックアップテーブル１１４、積算回路１１５、ＳＩＮＣＯＳテーブル１１６、セグメントテーブルＲＡＭ１１７および第１メモリ・コントローラ・セレクタ１１８を有し、パケットデコーダ１０２をフルハードウェアのハフマンツリーで構成する。また、ＶＱルックアップテーブル１１２をＲＯＭ化する。【選択図】    図１
2006154115.tif 000002
【特許請求の範囲】
【請求項１】
Ｏｇｇ  Ｖｏｒｂｉｓ形式のオーディオデータをデコードしてＰＣＭ形式のオーディオデータを出力する論理回路を含む半導体集積回路装置であって、前記論理回路には、
前記Ｏｇｇ  Ｖｏｒｂｉｓ形式のオーディオデータを受け取り、パケットデータを出力する入力インターフェイスと、
デコード要求信号の受信を契機として、ハフマンコードブックを参照してハフマン符号化された前記パケットデータをハフマン復号データであるエントリデータにデコードするパケットデコーダと、
１ブロック分のＰＣＭデータを計算するためのワークエリアとして機能する第１メモリと、
１／２ブロック分のＰＣＭデータを記録する第２メモリと、
前記第１メモリおよび第２メモリを初期化し、前記パケットデータのモード情報を管理し、フロア処理開始信号を生成する初期化・モード管理回路と、
前記フロア処理開始信号を受けてフロアブック番号を伴うデコード要求を生成し、前記デコード要求に応答するエントリデータをフィットデータとしてこれを前記第１メモリに記録し、フロア処理終了信号を生成する第１フロア処理回路と、
前記フロア処理終了信号を受けて残余ブック番号を伴うデコード要求を生成し、前記デコード要求に応答するエントリデータからＶＱルックアップテーブルを参照して残余データを生成しこれを前記第１メモリに記録し、残余処理終了信号を生成する残余処理回路と、
前記残余処理終了信号を受けて前記第１メモリから前記残余データを読み出し、予め設定したパラメータに従って所定の演算を施すことにより前記残余データをチャネルごとの残余データに分離しこれを前記第１メモリに書き戻し、チャネル分離処理終了信号を生成するチャネル分離処理回路と、
前記チャネル分離処理終了信号を受けて前記第１メモリから前記フィットデータを読み出し、周波数次元において隣接する２つのフィットデータから両データ間を補間する補間データを生成してフロアカーブを生成し、前記フロアカーブに前記第１メモリから読み出した前記残余データを加算し、ｄＢテーブルを参照して前記残余データが加算された前記フロアカーブをｄＢスケールに変換した上でこれを前記第１メモリに書き戻し、第２フロア処理終了信号を生成する第２フロア処理回路と、
前記第２フロア処理終了信号を受けて前記第１メモリから前記残余データが加算されたフロアカーブのデータを読み出し、周波数次元の前記データを、離散コサイン逆変換を利用して時間次元のデータに変換しこれを前記第１メモリに書き戻し、離散コサイン逆変換処理終了信号を生成する離散コサイン逆変換回路と、
前記離散コサイン逆変換処理終了信号を受けて前記第１メモリから前記時間次元のデータを順次読み出し、前ブロック、現ブロックおよび次ブロックのブロックサイズに応じて、ウィンドウルックアップテーブルから昇順または降順に読み出した値または所定の最大値もしくは最小値をウィンドウ係数にセットし、前記時間次元のデータに前記ウィンドウ係数を積算し、前記ウィンドウ係数が積算された前記時間次元のデータの前半１／２ブロック分のデータに前記第２メモリに記録された前ブロックの後半１／２ブロック分のデータを、各データの時間軸方向における中心位置が一致するよう加算して前記ＰＣＭ形式のオーディオデータを生成し、前記ＰＣＭ形式のオーディオデータを出力インターフェイスに出力し、前記ウィンドウ係数が積算された前記時間次元のデータの後半１／２ブロック分のデータを次ブロックの計算のために前記第２メモリに記録し、ウィンドウ・オーバラップ処理終了信号を生成するウィンドウ・オーバラップ処理回路と、を含む、
半導体集積回路装置。
【請求項２】
前記ハフマンコードブックは、論理回路構成されたハフマンツリーを要素とするものである請求項１記載の半導体集積回路装置。
【請求項３】
前記ＶＱルックアップテーブルは、インデックスをアドレスに対応付け、前記インデックスごとの量子化代表ベクトルが前記アドレスに格納されるよう構成して不揮発性のメモリに記録されたものである請求項１または２記載の半導体集積回路装置。
【請求項４】
前記ｄＢテーブルは、入力値をアドレスに対応付け、前記入力値に対するｄＢスケール値が前記アドレスに格納されるよう構成して不揮発性のメモリに記録されたものである請求項１〜３の何れか一項に記載の半導体集積回路装置。
【請求項５】
前記ウィンドウルックアップテーブルは、各アドレスにウィンドウ係数が格納されるよう構成して不揮発性のメモリに記録されたものである請求項１〜４の何れか一項に記載の半導体集積回路装置。
【請求項６】
前記第１フロア処理回路、前記第２フロア処理回路、前記離散コサイン逆変換回路、および、前記ウィンドウ・オーバラップ処理回路で要求される積算演算を実行する共通の積算回路を有する請求項１〜５の何れか一項に記載の半導体集積回路装置。
【請求項７】
Ｏｇｇ  Ｖｏｒｂｉｓ形式のオーディオデータをデコードしてＰＣＭ形式のオーディオデータを出力する論理回路を含む半導体集積回路装置の設計をコンピュータで実行するための半導体設計情報を記録した情報記録媒体であって、前記半導体設計情報には、
前記Ｏｇｇ  Ｖｏｒｂｉｓ形式のオーディオデータを受け取り、パケットデータを出力する入力インターフェイス、
デコード要求信号の受信を契機として、ハフマンコードブックを参照してハフマン符号化された前記パケットデータをハフマン復号データであるエントリデータにデコードするパケットデコーダ、
１ブロック分のＰＣＭデータを計算するためのワークエリアとして機能する第１メモリ、
１／２ブロック分のＰＣＭデータを記録する第２メモリ、
前記第１メモリおよび第２メモリを初期化し、前記パケットデータのモード情報を管理し、フロア処理開始信号を生成する初期化・モード管理回路、
前記フロア処理開始信号を受けてフロアブック番号を伴うデコード要求を生成し、前記デコード要求に応答するエントリデータをフィットデータとしてこれを前記第１メモリに記録し、フロア処理終了信号を生成する第１フロア処理回路、
前記フロア処理終了信号を受けて残余ブック番号を伴うデコード要求を生成し、前記デコード要求に応答するエントリデータからＶＱルックアップテーブルを参照して残余データを生成しこれを前記第１メモリに記録し、残余処理終了信号を生成する残余処理回路、
前記残余処理終了信号を受けて前記第１メモリから前記残余データを読み出し、予め設定したパラメータに従って所定の演算を施すことにより前記残余データをチャネルごとの残余データに分離しこれを前記第１メモリに書き戻し、チャネル分離処理終了信号を生成するチャネル分離処理回路、
前記チャネル分離処理終了信号を受けて前記第１メモリから前記フィットデータを読み出し、周波数次元において隣接する２つのフィットデータから両データ間を補間する補間データを生成してフロアカーブを生成し、前記フロアカーブに前記第１メモリから読み出した前記残余データを加算し、ｄＢテーブルを参照して前記残余データが加算された前記フロアカーブをｄＢスケールに変換した上でこれを前記第１メモリに書き戻し、第２フロア処理終了信号を生成する第２フロア処理回路、
前記第２フロア処理終了信号を受けて前記第１メモリから前記残余データが加算されたフロアカーブのデータを読み出し、周波数次元の前記データを、離散コサイン逆変換を利用して時間次元のデータに変換しこれを前記第１メモリに書き戻し、離散コサイン逆変換処理終了信号を生成する離散コサイン逆変換回路、および、
前記離散コサイン逆変換処理終了信号を受けて前記第１メモリから前記時間次元のデータを順次読み出し、前ブロック、現ブロックおよび次ブロックのブロックサイズに応じて、ウィンドウルックアップテーブルから昇順または降順に読み出した値または所定の最大値もしくは最小値をウィンドウ係数にセットし、前記時間次元のデータに前記ウィンドウ係数を積算し、前記ウィンドウ係数が積算された前記時間次元のデータの前半１／２ブロック分のデータに前記第２メモリに記録された前ブロックの後半１／２ブロック分のデータを、各データの時間軸方向における中心位置が一致するよう加算して前記ＰＣＭ形式のオーディオデータを生成し、前記ＰＣＭ形式のオーディオデータを出力インターフェイスに出力し、前記ウィンドウ係数が積算された前記時間次元のデータの後半１／２ブロック分のデータを次ブロックの計算のために前記第２メモリに記録し、ウィンドウ・オーバラップ処理終了信号を生成するウィンドウ・オーバラップ処理回路、
の各設計情報を含む、情報記録媒体。
【請求項８】
前記半導体設計情報には、さらに、前記ハフマンコードブックを、論理回路構成されたハフマンツリーとして構成する設計情報が含まれる請求項７記載の情報記録媒体。
【請求項９】
前記半導体設計情報には、さらに、前記ＶＱルックアップテーブルを、アドレスに対応付けられたインデックスごとの量子化代表ベクトルが前記アドレスに格納されるよう構成した不揮発性メモリとして構成する設計情報が含まれる請求項７または８記載の情報記録媒体。
【請求項１０】
前記半導体設計情報には、さらに、前記ｄＢテーブルを、アドレスに対応付けられた入力値に対するｄＢスケール値が前記アドレスに格納されるよう構成した不揮発性メモリとして構成する設計情報が含まれる請求項７〜９の何れか一項に記載の情報記録媒体。
【請求項１１】
前記半導体設計情報には、さらに、前記ウィンドウルックアップテーブルを、各アドレスにウィンドウ係数を格納した不揮発性メモリとして構成する設計情報が含まれる請求項７〜１０の何れか一項に記載の情報記録媒体。
【請求項１２】
前記半導体設計情報には、さらに、前記第１フロア処理回路、前記第２フロア処理回路、前記離散コサイン逆変換回路、および、前記ウィンドウ・オーバラップ処理回路で要求される積算演算を実行する共通の積算回路の設計情報が含まれる請求項７〜１１の何れか一項に記載の情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置および情報記録媒体に関し、特に、Ｏｇｇ  Ｖｏｒｂｉｓ（以下単に「Vorbis」とする）形式のオーディオデータをＰＣＭ形式のオーディオデータにデコードするデコーダの全論理をハードウェアロジックで構成した半導体集積回路装置およびこれら半導体集積回路装置を設計するための半導体設計情報を記録した情報記録媒体に関する。
【背景技術】
【０００２】
パルス符号変調（ＰＣＭ）したオーディオデータの圧縮伸張方式（コーデック）として、近年Vorbis方式が注目されている。Vorbis方式のコーデックでは、同様なオーディオコーデックとして広く利用されているＭＰ３方式に比較して、同等なエンコードサイズでより良好な音質を得ることができるというメリットがある。Vorbis方式の圧縮（エンコード）および伸張（デコード）の仕様は、非特許文献１に開示がある。
【非特許文献１】http://www.xiph.org/ogg/vorbis/doc/Vorbis_I_spec.pdf、「VorbisI specification」、Xiph.org Foundation
【０００３】
Vorbis方式のエンコードの概要は以下のようなものである。すなわち、チャンネル毎のＰＣＭデータ（ＷＡＶファイル）をブロック化し、ブロック毎に修正離散コサイン変換（ＭＤＣＴ）を行う。変換後のデータからフロア抽出および残余データの生成を行い、残余データについてはチャネルカップリングを行った後にベクトル量子化を行う。ベクトル量子化した後の残余データ（ＶＱベクタのインデックス）には所定のマッピング処理を施し、フロアデータとともにハフマン符号化を行ってブロック毎のオーディオデータを生成する。全てのオーディオデータはパケット分割され、所定のヘッダパケットが付加され、Vorbis形式のオーディオストリームデータが生成される。
【０００４】
Vorbis形式のオーディオストリームデータのデコードは、前記エンコードの逆操作を行うことにより実現できる。すなわちその概略は次のような処理を行うことになる。（１）オーディオストリームデータを受け取り、（２）ヘッダ解析を行う。（３）オーディオパケットからオーディオデータを抽出し、（４）オーディオデータからフロアデータおよびＶＱベクタのインデックスをハフマンデコードする。（５）フロアデータからフロアカーブを生成し、（６）ＶＱベクタのインデックスからＶＱルックアップテーブルでＶＱベクタ（残余データ）を生成し、（７）残余データをデカップリングしてチャネル毎の残余データを生成する。（８）チャネル毎の残余データをフロアカーブに加算し、（９）修正離散コサイン逆変換を実行する。（１０）現ブロックのデータにウィンドウ関数を適用し、（１１）前ブロックのデータとのオーバラップ処理を施してブロックを結合する。
【０００５】
Vorbis形式の特徴として、ヘッダ（セットアップヘッダ）にＶＱコードブックおよびハフマンコードブックのコーデック情報を含めることが挙げられる。このため、ベクトル量子化およびハフマン符号化の品質をダイナミックに変更可能であり、重要な部分のビットレートを高め、逆にあまり重要でない部分のビットレートを下げて、所定の音質を維持しつつデータ容量を少なくできるメリットがある。
【０００６】
なお、Vorbis形式のエンコーダおよびデコーダをソフトウェア的に構成するには、「http://www.vorbis.com/」で提供されている各種のライブラリを入手して構成することが可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前記背景技術で説明の通り、Vorbis形式のデコーダをソフトウェアで実現することは既に行われている。Vorbisデコーダをソフトウェアで構成する場合には、その前提として高性能なＣＰＵ（中央演算処理装置）による演算が必要であり、また、ＯＳ（オペレーティングシステム）を含むプログラムをメインメモリに常駐させる必要がある。さらに、ＣＰＵが使用するワークエリアをメインメモリ上に確保する必要もある。Vorbis形式では、前記の通りＶＱコードブックおよびハフマンコードブックをヘッダに含めるため、これらコードブックを展開するワークエリアをもメモリエリア上に確保する必要があり、Vorbis形式のデコーダを機能させるためだけでも、最低限３４ＭＢ程度の大規模なメインメモリが必要とされる。ＯＳその他のプログラムのワークエリアを含めれば、必要なメインメモリのサイズはさらに大きくなる。
【０００８】
また、デコーダをソフトウェアで構成する場合には、ストリーム再生に十分追随する演算速度のＣＰＵが必要になる。これは現在市販されている標準のＣＰＵではクロック周波数がＧＨｚオーダーのものがあり、このような性能のＣＰＵであれば十分な演算速度を得ることも可能であるが相当に高価なものになる問題がある。たとえば、小型の音楽再生装置を構成しようとした場合、価格的な観点から高価なＣＰＵを使用する選択は現実的にはありえない。
【０００９】
本発明の目的は、高価なＣＰＵを用いることなく、安価に提供することが可能な、フルハードウェアロジックのVorbis形式デコーダを提供することにある。また、本発明の他の目的は、少ないメモリワークエリアで動作可能なVorbis形式デコーダを提供することにある。本発明のさらに他の目的は、動作効率が高いあるいは低い動作周波数で動作が可能なVorbis形式デコーダを提供することにある。
【課題を解決するための手段】
【００１０】
本明細書で開示する発明は、以下の通りである。すなわち、本発明の半導体集積回路装置は、Ｏｇｇ  Ｖｏｒｂｉｓ形式のオーディオデータをデコードしてＰＣＭ形式のオーディオデータを出力する論理回路（Vorbisデコーダ）を含む半導体集積回路装置であって、前記論理回路には、前記Ｏｇｇ  Ｖｏｒｂｉｓ形式のオーディオデータを受け取り、パケットデータを出力する入力インターフェイスと、デコード要求信号の受信を契機として、ハフマンコードブックを参照してハフマン符号化された前記パケットデータをハフマン復号データであるエントリデータにデコードするパケットデコーダと、１ブロック分のＰＣＭデータを計算するためのワークエリアとして機能する第１メモリと、１／２ブロック分のＰＣＭデータを記録する第２メモリと、前記第１メモリおよび第２メモリを初期化し、前記パケットデータのモード情報を管理し、フロア処理開始信号を生成する初期化・モード管理回路と、前記フロア処理開始信号を受けてフロアブック番号を伴うデコード要求を生成し、前記デコード要求に応答するエントリデータをフィットデータとしてこれを前記第１メモリに記録し、フロア処理終了信号を生成する第１フロア処理回路と、前記フロア処理終了信号を受けて残余ブック番号を伴うデコード要求を生成し、前記デコード要求に応答するエントリデータからＶＱルックアップテーブルを参照して残余データを生成しこれを前記第１メモリに記録し、残余処理終了信号を生成する残余処理回路と、前記残余処理終了信号を受けて前記第１メモリから前記残余データを読み出し、予め設定したパラメータに従って所定の演算を施すことにより前記残余データをチャネルごとの残余データに分離しこれを前記第１メモリに書き戻し、チャネル分離処理終了信号を生成するチャネル分離処理回路と、前記チャネル分離処理終了信号を受けて前記第１メモリから前記フィットデータを読み出し、周波数次元において隣接する２つのフィットデータから両データ間を補間する補間データを生成してフロアカーブを生成し、前記フロアカーブに前記第１メモリから読み出した前記残余データを加算し、ｄＢテーブルを参照して前記残余データが加算された前記フロアカーブをｄＢスケールに変換した上でこれを前記第１メモリに書き戻し、第２フロア処理終了信号を生成する第２フロア処理回路と、前記第２フロア処理終了信号を受けて前記第１メモリから前記残余データが加算されたフロアカーブのデータを読み出し、周波数次元の前記データを、離散コサイン逆変換を利用して時間次元のデータに変換しこれを前記第１メモリに書き戻し、離散コサイン逆変換処理終了信号を生成する離散コサイン逆変換回路と、前記離散コサイン逆変換処理終了信号を受けて前記第１メモリから前記時間次元のデータを順次読み出し、前ブロック、現ブロックおよび次ブロックのブロックサイズに応じて、ウィンドウルックアップテーブルから昇順または降順に読み出した値または所定の最大値もしくは最小値をウィンドウ係数にセットし、前記時間次元のデータに前記ウィンドウ係数を積算し、前記ウィンドウ係数が積算された前記時間次元のデータの前半１／２ブロック分のデータに前記第２メモリに記録された前ブロックの後半１／２ブロッ��分のデータを、各データの時間軸方向における中心位置が一致するよう加算して前記ＰＣＭ形式のオーディオデータを生成し、前記ＰＣＭ形式のオーディオデータを出力インターフェイスに出力し、前記ウィンドウ係数が積算された前記時間次元のデータの後半１／２ブロック分のデータを次ブロックの計算のために前記第２メモリに記録し、ウィンドウ・オーバラップ処理終了信号を生成するウィンドウ・オーバラップ処理回路と、を含む。
【００１１】
上記各論理回路をフルハードウェアロジックで構成することにより、処理速度の高いデコーダを構成できる。本発明のVorbisデコーダでは、ストリーム形式のオーディオデータをブロック毎に順次処理するが、この処理において、Vorbis仕様に則ってエンコードされたオーディオパケットを入力インターフェイスで受け取り、生成されたパケットデータからフロアデータおよび残余データを必要に応じて（デコード要求があれば）パケットデコーダにより順次デコードする。そして、初期化・モード管理回路、第１フロア処理回路、残余処理回路、チャネル分離処理回路、第２フロア処理回路、離散コサイン逆変換回路およびウィンドウ・オーバラップ処理回路の各処理回路を順次起動させて、処理を実行する。この各処理回路の演算結果は順次第１メモリに記録され、次の処理回路で使用される。各処理回路で使用する第１メモリのサイズはブロックサイズを超えることがなく、ワークエリアを極めて小さくすることが可能になる。なお、ブロック間に跨るデータは１／２ブロック分の必要なデータのみ第２メモリに記録するのでこの点からもワークエリアの削減に寄与している。
【００１２】
また、前記したVorbisデコーダにおいて、前記ハフマンコードブックは、論理回路構成されたハフマンツリーとすることができる。すなわち、ハードウェアにより論理ツリーを実現し、これをハフマンコードブックとする。このようなハフマンコードブックのハードウェアツリー化により、１クロックでのデコードが可能となり、前記デコーダの処理速度を高めることができる。また、ハフマンコードブックをハードウェアツリー化するので、ヘッダパケットに納められたハフマンコードブックをデコードしてメモリ領域のワークエリアに展開する必要がなく、メモリワークエリアを削減することが可能になる。なお、このようなハフマンコードブックのハードウェアツリー化はVorbis仕様で定められた品質レベルをたとえばＱ４に固定することにより可能となる。品質レベルを固定することはVorbisデコーダの機能を制限することになるが、逆に言えば、機能制限を行うことにより処理速度を高め、かつ、演算のワークエリアを小さくできるメリットを得ることができるようになる。
【００１３】
また、前記したVorbisデコーダにおいて、前記ＶＱルックアップテーブルは、インデックスをアドレスに対応付け、前記インデックスごとの量子化代表ベクトルが前記アドレスに格納されるよう構成して不揮発性のメモリに記録されたものとすることができる。すなわち、ＶＱコードブックをルックアップテーブル化し、これを不揮発性メモリに記録することができる。ここで不揮発性メモリにはマスクＲＯＭ（リードオンリーメモリ）や電気的に書き換え可能なＥＥＰＲＯＭを例示できる。ＶＱコードブックを不揮発性メモリにルックアップテーブル化することにより、簡単なメモリアクセスで量子化ベクタを検索（デコード）することが可能になり、かつ、ＶＱコードブックを展開するためのワークエリアが必要でなくなる。このため、演算速度を高め、かつ、必要メモリの最小化を図ることが可能になる。
【００１４】
また、前記したVorbisデコーダにおいて、前記ｄＢテーブルは、入力値をアドレスに対応付け、前記入力値に対するｄＢスケール値が前記アドレスに格納されるよう構成して不揮発性のメモリに記録されたものとすることができ、前記ウィンドウルックアップテーブルは、各アドレスにウィンドウ係数が格納されるよう構成して不揮発性のメモリに記録されたものとすることができる。さらに、前記第１フロア処理回路、前記第２フロア処理回路、前記離散コサイン逆変換回路、および、前記ウィンドウ・オーバラップ処理回路で要求される積算演算を実行する共通の積算回路を備えることができる。これら、ｄＢテーブル、ウィンドウルックアップテーブル、共通の積算回路によって、各処理回路での演算処理を積算処理に置き換えることが可能となり、共通の積算回路によって処理の高速化とVorbisデコーダ全体の設計の簡素化を図ることができる。
【００１５】
なお、上記したVorbisデコーダは、半導体集積回路装置の設計情報（知的資産：IP）としても把握することが可能であり、これら半導体の設計情報は一般にコンピュータを利用する設計ツールのライブラリとして磁気記録装置等の情報記録媒体に記録されている。
【発明の効果】
【００１６】
本願発明によれば、高価なＣＰＵを用いることなく、安価なフルハードウェアロジックのVorbis形式デコーダを提供できる。また、少ないメモリワークエリアで動作可能なVorbis形式デコーダを提供できる。さらに、動作効率が高いあるいは低い動作周波数で動作が可能なVorbis形式デコーダを提供できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。図１は、本発明の半導体集積回路装置の一実施の形態であるVorbisデコーダの一例を示したブロック図である。図１に示す各回路は半導体集積回路装置として構成されたものであり、各回路がトランジスタ、抵抗、容量等の基本素子から構成されることは言うまでもない。なお、図１に示す各回路はその機能によりブロック化して示したものであるが、半導体集積回路装置のレイアウト領域として判然と区別できる占有領域を有するとは限らない。たとえば各回路の一部が他の回路の一部を共有する場合も有り得る。
【００１８】
本実施の形態のVorbisデコーダは、入力インターフェイス１０１、パケットデコーダ１０２、第１メモリ１０３、第２メモリ１０４、初期化・モード管理回路１０５、第１フロア処理回路１０６、残余データ処理回路１０７、チャネル分離処理回路１０８、第２フロア処理回路１０９、離散コサイン逆変換回路１１０、ウィンドウ・オーバラップ処理回路１１１、ＶＱルックアップテーブル１１２、ｄＢテーブル１１３、ウィンドウルックアップテーブル１１４、積算回路１１５、ＳＩＮＣＯＳテーブル１１６、セグメントテーブルＲＡＭ１１７および第１メモリ・コントローラ・セレクタ１１８を有する。
【００１９】
入力インターフェイス１０１は、Vorbis形式のオーディオデータをＩＮから受け取り、必要に応じてバッファリングを行い、パケットデータ２０１を出力する。パケットデータ２０１には、ヘッダ・パケットデータと、オーディオ・パケットデータが存在し、ヘッダには、識別ヘッダ、コメントヘッダおよびセットアップヘッダの３種類のヘッダがある。なお、Vorbis形式のオーディオデータはＯｇｇストリームデータとして提供されるものであり、Ｏｇｇストリームヘッダにはパケットデータ２０１のバイト数等の情報が格納されている。Ｏｇｇストリームヘッダ内の情報はセグメントテーブルＲＡＭ１１７に記録される。
【００２０】
パケットデコーダ１０２は、パケットデータ２０１をハフマン復号データであるエントリデータ２０２ａ，２０２ｂにデコードする。ここで、パケットデコーダ１０２は、完全ハードウェアの論理回路で構成されたハフマンツリーである。周知のとおり、ハフマンツリーは、入力コードのビットに応じて木探索を行い、ツリーの末端に到達した段階で該当するコードに復号するコード変換方式の一手法である。Vorbis形式においては、８ビットのデータをハフマン符号化したとき、最大で２１ビットの符号化コードになる。このため、最大２１分岐のツリーを構成することとなるが、一旦ハフマンツリーを構成すると１クロックでデコードが完了する。これをメモリ上にコードブックとして展開した場合には、最大符号長の２１ビットを全ワードについて確保しなければならず、大きなワークエリアを消費することになる。本実施の形態によれば、ハフマンコードブックをメモリに展開するのではなく、ハフマンツリーとして構成することとなるため、コードブック展開のためのメモリ領域を必要としない。なお、デコードは、第１フロア処理回路１０６または残余データ処理回路１０７からのデコード要求信号２０３ａ，２０３ｂの受信を契機として実行する。デコード要求信号２０３ａ，２０３ｂにはブック番号を伴い、複数のブックから適切なブックが選択されるようにする。
【００２１】
第１メモリ１０３は、１ブロック分のＰＣＭデータを計算するためのワークエリアとして機能するランダムアクセスメモリである。Vorbis形式においては、ＰＣＭデータを１ブロックに区分しこれを単位としてエンコードおよびデコードが実施される。本実施の形態のVorbisデコーダでは、１ブロック分のＰＣＭデータを計算するに必要なワークエリアを備えるメモリで十分であり、それ以上のワークエリアを必要としない。具体的には、チャネル数が２（ステレオ）、ブロックサイズが２ｋ（モード１）、１データのＰＣＭ量子化レベルを３２ビットとすると、３２×２ｋ×２＝１２８ｋビット＝１６ｋＢ（キロバイト）であり、ソフトウェア処理の場合の３４ＭＢに比較して格段にワークエリアを小さくできる。なお、第１メモリ１０３と他の回路とのデータの入出力は、第１メモリ・コントローラ・セレクタ１１８により管理する。第１メモリ・コントローラ・セレクタ１１８は第１メモリ１０３への一種のゲートして機能する制御回路である。
【００２２】
第２メモリ１０４は、１／２ブロック分のＰＣＭデータを記録するランダムアクセスメモリである。第２メモリ１０４に記録されるデータは次ブロックにおいて使用されるデータであり、ウィンドウ・オーバラップ処理回路１１１で使用される。第２メモリ１０４の容量は第１メモリの半分であり、前記例で言えば８ｋＢという極めて小さなメモリである。
【００２３】
初期化・モード管理回路１０５は、パケットデコーダ１０２でヘッダパケットが検出されたときに、ブロックサイズ等のモード情報が記録され、モード情報の管理、第１および第２メモリのクリア状態の管理が実行される。モード情報は後の処理で必要に応じて参照される。なお、オーディオデータの再生はヘッダパケットの検出によって開始される。具体的には、初期化・モード管理回路１０５がフロア処理開始信号２０４を生成することによって開始される。
【００２４】
第１フロア処理回路１０６は、フロア処理開始信号２０４の入力によって起動される回路であり、フロアブック番号を伴うデコード要求信号２０３ａを生成してパケットデコーダ１０２に入力する。パケットデコーダ１０２では、要求に応じたブック（ツリー）を選択し、入力インターフェイス１０１から入力されたパケットデータ２０１をデコードしてエントリデータ２０２ａを生成する。エントリデータ２０２ａは第１フロア処理回路１０６に返送される。ここで処理されるエントリデータ２０２ａは、Vorbis仕様に則ったフォーマットのフィットデータ２０５になっており、第１フロア処理回路１０６はこのフィットデータ２０５をそのまま第１メモリに記録する。この処理が終了すると、第１フロア処理回路１０６はフロア処理終了信号２０６を生成する。なお、フィットデータ２０５は、オーディオデータの振幅スペクトルにおけるラフな変動（フロア）をコード化したものである。
【００２５】
残余データ処理回路１０７は、フロア処理終了信号２０６の入力によって起動される回路であり、残余ブック番号を伴うデコード要求信号２０３ｂを生成してパケットデコーダ１０２に入力する。パケットデコーダ１０２では、要求に応じたブック（ツリー）を選択し、入力インターフェイス１０１から入力されたパケットデータ２０１をデコードしてエントリデータ２０２ｂを生成する。エントリデータ２０２ｂは残余データ処理回路１０７に返送される。ここで処理されるエントリデータ２０２ｂは、Vorbis仕様に則ったフォーマットでベクトル量子化されたデータであり、ＶＱルックアップテーブル１１２を参照して復号する必要がある。なお、Vorbis仕様では、１回の復号のみで残余データになるわけではなく、マッピングされたデータを復号し、さらに３度のデータ加算を行って残余データが生成される。デコードの詳細は前記した非特許文献１を参照されたい。生成した残余データ２０７は、第１メモリ１０３に記録され、この処理が終了すると残余データ処理回路１０７は残余処理終了信号２０８を生成する。
【００２６】
なお、ＶＱルックアップテーブル１１２は、インデックスをアドレスに対応付け、インデックスごとの量子化代表ベクトルがアドレスに格納されるよう構成した不揮発性メモリとして構成する。このようにＶＱコードブックをルックアップテーブル化することにより、ＶＱコードブックを展開するためのメモリワークエリアが不要であり、検索処理も高速化できるメリットがある。ただし、音質レベルはたとえばＱ４等に固定する必要がある。なお、前記したセットアップヘッダにはハフマンコードブックおよびＶＱコードブックのエンコードデータが格納されているが、本実施の形態のデコーダではこれを利用する必要がないので前記したセットアップヘッダを読み飛ばして処理を高速化できる。
【００２７】
チャネル分離処理回路１０８は、残余処理終了信号２０８を受けて第１メモリ１０３から残余データ２０７を読み出し、予め設定したパラメータに従って所定の演算を実施する。この演算により残余データ２０７をチャネルごとの残余データ２０７ｂに分離することになる。チャネルごとの残余データ２０７ｂは第１メモリ１０３に書き戻し、チャネル分離処理終了信号２０９を生成する。
【００２８】
第２フロア処理回路１０９は、チャネル分離処理終了信号２０９を受けて第１メモリ１０３からフィットデータ２０５を読み出し、残余データが加算されたフロアカーブ２１０を第１メモリ１０３に書き戻す。残余データが加算されたフロアカーブ２１０の計算は以下のような手順で進める。まず、周波数次元において隣接する２つのフィットデータを取り出し、この２データから両データ間を補間する補間データを生成する。そしてこの補間データからフロアカーブを生成し、フロアカーブに第１メモリ１０３から読み出した残余データ２０７を加算する。この加算においてオーディオデータをｄＢスケールに変換するためにｄＢテーブル１１３を参照して、残余データが加算されたフロアカーブ２１０をｄＢスケールに変換した上でこれを第１メモリ１０３に書き戻す。これら処理の終了の後、第２フロア処理回路１０９は第２フロア処理終了信号２１１を生成する。
【００２９】
なお、ｄＢテーブル１１３は、入力値をアドレスに対応付け、入力値に対するｄＢスケール値がアドレスに格納されるよう構成した不揮発性メモリとして構成する。このようにｄＢテーブル１１３をＲＯＭ化することにより、計算を積算のみに単純化することができ、処理を高速化できる。
【００３０】
離散コサイン逆変換回路１１０は、第２フロア処理終了信号２１１を受けて起動される回路であり、第１メモリ１０３から残余データが加算されたフロアカーブ２１０のデータを読み出し、周波数次元の前記データを時間次元のデータ２１２に変換し、これを第１メモリ１０３に書き戻す。これら処理の終了により、離散コサイン逆変換回路１１０は離散コサイン逆変換処理終了信号２１３を生成する。なお、離散コサイン逆変換には周知の手法を適用できるが、本実施の形態では特にＳＩＮＣＯＳテーブル１１６を計算に利用している。
【００３１】
ウィンドウ・オーバラップ処理回路１１１は、離散コサイン逆変換処理終了信号２１３を受けて起動される回路であり、第１メモリ１０３から時間次元のデータ２１２を順次読み出し、前ブロック、現ブロックおよび次ブロックのブロックサイズに応じて、ウィンドウルックアップテーブル１１４から昇順または降順に読み出した値または所定の最大値もしくは最小値をウィンドウ係数にセットし、時間次元のデータ２１２に、セットしたウィンドウ係数を積算してウィンドウ係数が積算された時間次元データを生成する。ここでウィンドウ係数としてウィンドウルックアップテーブル１１４から読み出した値だけでなく所定の最大値や最小値をも用いるのは前後するブロックサイズが現ブロックサイズと相違する場合にオーバラップさせる領域の整合をとるためである。所定の最大値としては「１」を、最小値としては「０」を例示できる。前後するブロックサイズが相違する場合のウィンドウ係数の適用につていの詳細は前記した非特許文献１の記載を参照されたい。
【００３２】
そして、第２メモリ１０４から前ブロックの処理において記録されたデータ（前ブロックにおける後半１／２ブロック分のデータ）２１５を読み出し、ウィンドウ係数が積算された時間次元データの前半１／２ブロック分のデータに第２メモリから読み出したデータ２１５を、各データの時間軸方向における中心位置が一致するよう加算する。これにより最終的なオーディオデータであるＰＣＭデータＯＵＴが生成される。ＰＣＭデータＯＵＴは出力インターフェイスに出力され、適切なＤ／Ａ変換によりアナログ・オーディオ出力に変換される。出力インターフェイスに出力する前に適当なバッファリング手段を設けることが可能なのは言うまでもない。また、ウィンドウ係数が積算された時間次元のデータの後半１／２ブロック分のデータ２１６は次ブロックの計算のために第２メモリ１０４に記録する。これら処理の後にウィンドウ・オーバラップ処理終了信号２１７を生成する。
【００３３】
ここで、ウィンドウルックアップテーブル１１４は、各アドレスにウィンドウ係数が格納されるよう構成した不揮発性メモリとして構成する。このようにウィンドウルックアップテーブル１１４をＲＯＭ化することにより、計算を積算のみに単純化することができ、処理を高速化できる。
【００３４】
なお、本実施の形態においては、第１フロア処理回路１０６、第２フロア処理回路１０９、離散コサイン逆変換回路１１０、および、ウィンドウ・オーバラップ処理回路１１１で要求される積算演算を実行する共通の積算回路１１５を有する。図１において積算回路１１５と各回路との接続関係は図面を見やすくするため省略している。積算回路１１５により、各回路で共通化できる積算演算を共通の回路として実現でき、回路レイアウトを簡略化して半導体集積回路装置の回路占有面積を低減することができる。
【００３５】
以上、本発明を具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。たとえば、上記した半導体集積回路装置を設計情報（知的資産：ＩＰ）として把握し、これら各回路の設計情報の集合としての半導体設計情報を磁気記録装置等に記録し、コンピュータを利用した半導体設計ツールにこれを適用することも可能である。
【産業上の利用可能性】
【００３６】
本願発明は、半導体集積回路装置、半導体集積回路装置の設計に利用できる情報が記録された情報記録媒体に関する発明であり、半導体産業に適用することが可能な発明である。
【図面の簡単な説明】
【００３７】
【図１】本発明の半導体集積回路装置の一実施の形態であるVorbisデコーダの一例を示したブロック図である。
【符号の説明】
【００３８】
１０１…入力インターフェイス、１０２…パケットデコーダ、１０３…第１メモリ、１０４…第２メモリ、１０５…初期化・モード管理回路、１０６…第１フロア処理回路、１０７…残余データ処理回路、１０８…チャネル分離処理回路、１０９…第２フロア処理回路、１１０…離散コサイン逆変換回路、１１１…ウィンドウ・オーバラップ処理回路、
１１２…ＶＱルックアップテーブル、１１３…ｄＢテーブル、１１４…ウィンドウルックアップテーブル、１１５…積算回路、１１６…ＳＩＮＣＯＳテーブル、１１７…セグメントテーブルＲＡＭ、１１８…第１メモリ・コントローラ・セレクタ、２０１…パケットデータ、２０２ａ…エントリデータ、２０２ｂ…エントリデータ、２０３ａ…デコード要求信号、２０３ａ…デコード要求信号、２０４…フロア処理開始信号、２０５…フィットデータ、２０６…フロア処理終了信号、２０７…残余データ、２０７ｂ…チャネルごとの残余データ、２０８…残余処理終了信号、２０９…チャネル分離処理終了信号、２１０…残余データが加算されたフロアカーブ、２１１…第２フロア処理終了信号、２１２…時間次元のデータ、２１３…離散コサイン逆変換処理終了信号、２１５…前ブロックの後半１／２ブロック分のデータ、２１６…現ブロックの後半１／２ブロック分のデータ、２１７…ウィンドウ・オーバラップ処理終了信号。
【図１】
2006154115.tif 000003