(57)【要約】【課題】ＭＰＥＧ２，ＭＰＥＧ４の共用のＶＬＣ符号化装置を提供する。【解決手段】本発明のＶＬＣ符号化装置は、シンタックスとＶＬＣ符号列との対応関係が記述された変換テーブルを格納したテーブル格納部３４を備えている。ＶＬＣ符号化装置には、外部のＣＰＵから、テーブル格納部３４内の任意の１つの変換テーブルを選択する選択命令が与えられる。ＶＬＣ符号化／復号部は、ＣＰＵから与えられた選択命令に従って任意の１つの変換テーブルを選択し、選択した変換テーブルに基づきＶＬＣ符号化又は復号化を行う。そのため、テーブル格納部３４にＭＰＥＧ２，ＭＰＥＧ４に対応した全ての変換テーブルを格納しておくことによって、プログラミングによりＭＰＥＧ２とＭＰＥＧ４のストリームに対応したＶＬＣ符号化ができる。【選択図】　図３
2004080634.tif 000002
【特許請求の範囲】
【請求項１】
特定の情報内容を示すシンタックスと符号列との対応関係が記述された変換テーブルを、上記情報内容の種別毎に複数格納している変換テーブル格納手段と、
入力されたシンタックスから対応した符号列への符号変換を上記変換テーブルの記述に従って行い、符号変換して生成した複数の符号列を合成して１つのデータストリームを生成する符号化処理、及び／又は、入力されたデータストリームから符号列を抽出し、抽出した符号列から対応したシンタックスへの符号変換を上記変換テーブルの記述に従って行う復号化処理を行う符号化／復号化手段と、
少なくとも上記変換テーブルの選択情報が示された命令データを格納する命令格納手段とを備え、
上記符号化／復号化手段は、上記命令格納手段に格納されている命令データに示された変換テーブルを上記変換テーブル格納手段から１つ選択し、選択した変換テーブルに基づき上記符号変換を行うこと
を特徴とする符号変換装置。
【請求項２】
上記命令格納手段には、外部から１以上の命令データが格納され、
上記符号化／復号化手段は、上記命令格納手段に格納される各命令データを順次読み出し、命令データを読み出す毎にその命令データに示されている変換テーブルを選択して符号変換を実行すること
を特徴とする請求項１記載の符号変換装置。
【請求項３】
上記命令データには、変換テーブルの選択情報と、符号列のデータ長と、連続して符号変換をする処理数とが示されており、
上記符号化／復号化手段は、上記命令データに示されている内容に従い、符号化処理を行うこと
を特徴とする請求項２記載の符号変換装置。
【請求項４】
上記符号化／復号化手段は、上記符号列のデータ長に基づき、入力されたデータストリームから所定のデータ長の符号列を抽出すること
を特徴とする請求項３記載の符号変換装置。
【請求項５】
上記符号化／復号化手段は、上記連続して符号変換をする処理数分、選択した変換テーブルを用いて上記符号変換を行うこと
を特徴とする請求項３記載の符号変換装置。
【請求項６】
上記命令データを生成するデータ制御手段をさらに備え、
上記データ制御手段は、入出力されるデータストリームのフォーマットに応じて、複数の命令データから構成される命令セットを生成し、生成した命令セットを上記命令格納手段に格納すること
を特徴とする請求項２記載の符号変換装置。
【請求項７】
上記変換テーブル格納手段には、シンタックスに対して符号列が示された符号化用の変換テーブルと、符号列に対してシンタックスが示された復号化用の変換テーブルとが格納されていること
を特徴とする請求項１記載の符号変換装置。
【請求項８】
上記変換テーブルに記述されている情報は、所定の情報群毎に分割されており、
符号変換前のシンタックス又は符号列が入力され、当該符号変換前のシンタックス又は符号列を、上記変換テーブル内の各情報群を指定する上位アドレスと、上記情報群内における各情報の順位を示す下位アドレスとに変換するアドレス生成手段と、
上位アドレスに対応させてその上位アドレスにより指定される情報群内の先頭情報のアドレスを記述したオフセットテーブルとを備え、
上記符号化／復号化手段は、
上記命令格納手段に格納されている命令データに示された変換テーブル及びオフセットテーブルを上記変換テーブル格納手段及びオフセットテーブルから１つずつ選択し、
上記アドレス生成手段から出力された上位アドレスから上記情報群内の先頭情報のアドレスへの変換を選択したオフセットテーブルの記述に従って行い、
当該オフセットテーブルから出力された上記情報群内の先頭情報のアドレスと上記アドレス生成手段から出力された下位アドレスとに基づき、選択された上記変換テーブルから情報を抽出して符号変換を行うこと
を特徴とする請求項１記載の符号変換装置。
【請求項９】
離散コサイン変換処理及び動き予測処理を用いて符号化した動画像データが少なくとも含まれているデータストリームに対する、可変長符号化及び固定長符号化処理、及び／又は、可変長符号の復号化及び固定長符号の復号化処理を行う符号変換装置において、
特定の情報内容を示すシンタックスと符号列との対応関係が記述された変換テーブルを、上記情報内容の種別毎に複数格納している変換テーブル格納手段と、
動画像データに対して上記離散コサイン変換処理を行って生成されたシンタックスであるＤＣＴ係数を格納するＤＣＴ係数バッファと、
動画像データに対して動き予測処理を行って生成されたシンタックスである動きベクトルを格納する動きベクトルバッファと、
上記ＤＣＴ係数及び動きベクトル以外のシンタックスであるパラメータを格納するパラメータバッファと、
上記ＤＣＴバッファ、上記動きベクトルバッファ及び上記パラメータバッファに格納されているシンタックスを読み出して、読み出したシンタックスから対応した符号列への符号変換を上記変換テーブルの記述に従って行い、符号変換して生成した複数の符号列を合成して１つのデータストリームを生成する符号化処理、及び／又は、入力されたデータストリームから符号列を抽出し、抽出した符号列から対応したシンタックスへの符号変換を上記変換テーブルの記述に従って行い、シンタックスをそれぞれ上記ＤＣＴバッファ、上記動きベクトルバッファ及び上記パラメータバッファに格納する復号化処理を、行う符号化／復号化手段と、
少なくとも上記情報内容の種別が示された命令データを格納する命令格納手段とを備え、
上記符号化／復号化手段は、上記命令格納手段に格納されている命令データに示された情報内容の種別に基づき上記変換テーブル格納手段に格納された複数の変換テーブルから１つの変換テーブルを選択し、選択した変換テーブルに基づき上記符号変換を行うこと
を特徴とする符号変換装置。
【請求項１０】
上記変換テーブル格納手段には、シンタックスに対して符号列が示された符号化用の変換テーブルと、符号列に対してシンタックスが示された復号化用の変換テーブルとが格納されていること
を特徴とする請求項９記載の符号変換装置。
【請求項１１】
上記命令格納手段には、外部から１以上の命令データが格納され、
上記符号化／復号化手段は、上記命令格納手段に格納される各命令データを順次読み出し、命令データを読み出す毎にその命令データに示されている変換テーブルを選択して符号変換を実行すること
を特徴とする請求項１０記載の符号変換装置。
【請求項１２】
符号化時に与えられる上記命令データには、情報内容の種別情報と、符号列のデータ長と、パラメータバッファ，ＤＣＴ係数バッファ又は動きベクトルバッファの選択情報と、固定長符号化する値を示す情報と、連続して符号変換をする処理回数とが示されており、
上記符号化／復号化手段は、上記命令データに示されている内容に従い、符号化処理を行うこと
を特徴とする請求項１１記載の符号変換装置。
【請求項１３】
復号化時に与えられる上記命令データには、情報内容の種別情報と、符号列のデータ長と、連続して符号変換をする処理回数とが示されており、
上記符号化／復号化手段は、上記命令データに示されている内容に従い、符号化処理を行うこと
を特徴とする請求項１２記載の符号変換装置。
【請求項１４】
上記命令データ格納手段に格納される命令データに示される情報内容の種別情報毎に対応する制御データが、外部から格納される制御データ格納手段を備え、
上記制御データには、その命令データに基づく処理がストリームの終端に対する処理であることを示す終端処理情報と、その命令データに基づく処理が固定長符号に対する処理を行うのか可変長符号に対する処理を行うのかを示す固定長／可変長符号処理識別情報と、その命令データに基づく処理がイントラマクロブロックに対する処理を行うのかインターマクロブロックに対する処理を行うのかを示すイントラ／インター処理識別情報と、その命令データに基づき復号化されたシンタックスの格納先のバッファを指定するバッファ選択情報とを含み、
上記符号化／復号化手段は、上記命令データに示されている内容に従い、符号化処理を行うこと
を特徴とする請求項１１記載の符号変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばＭＰＥＧ（Ｍｏｔｉｏｎ　Ｐｉｃｔｕｒｅ　Ｅｘｐｅｒｔｓ　Ｇｒｏｕｐ）１，ＭＰＥＧ２，ＭＰＥＧ４及びＨ２６３等に適用されている可変長符号化処理、可変長符号の復号処理、固定長符号化処理並びに固定長符号の復号処理を行う符号変換装置に関する。
【０００２】
【従来の技術】
現在、ＭＰＥＧ（Ｍｏｔｉｏｎ　Ｐｉｃｔｕｒｅ　Ｅｘｐｅｒｔｓ　Ｇｒｏｕｐ）１，ＭＰＥＧ２，ＭＰＥＧ４やＨ２６３といった様々な種類の画像符号化規格が提案されている。このような画像符号化規格では、画像データを復元するためのいろいろな情報（シンタックス）を符号化することが定められている。例えば、空間領域の画像信号に対して離散コサイン変換を施すことにより生成されたＤＣＴ係数、フレーム間の動き予測を行うことにより生成された動きベクトル、マクロブロックのタイプ、動きベクトルの予測方向等々を符号化することが定められている。符号化データにどのような種類のシンタックスを含めるかはその符号化データのフォーマットによってそれぞれ定められており、また、その符号化順序もそのフォーマットで定められている。
【０００３】
また、ＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４やＨ２６３といった画像符号化規格では、各種のシンタックスを階層構造で符号化している。例えば、上記の各画像符号化規格では、一連の同じ属性を有する画面グループに関するシンタックスが記述されるシーケンス層、ランダムアクセス単位となる画面グループに関するシンタックスが記述されるＧＯＰ層、１枚の画面に関するシンタックスが記述されるピクチャ層、１枚の画面を横方向にスライスした小画面に関するシンタックスが記述されるスライス層、スライス層をさらに細分化した２次元の画素ブロックに関するシンタックスが記述されるマクロブロック層といったように階層構造化することが規定されている。
【０００４】
さらに、上記の各階層構造のうちのマクロブロック層には、ＤＣＴ係数及び動きベクトルといった最も符号量の多くなるシンタックスが含まれている。そのため、上記の各符号化規格では、マクロブロック層に含められるシンタックスに対して可変長符号化処理が行われ、効率的な符号化処理がされている。特に、ＤＣＴ係数に関しては、０ランとレベルとの組み合わせに対して可変長の符号列を割り当てるランレングス符号化が行われている。
【０００５】
可変長符号列の符号化及び復号化を行う場合、通常、シンタックスと符号列との対応関係が記述された変換テーブルを参照して、シンタックスから符号列への変換、又は、その逆変換が行われる。変換テーブルは、シンタックスの種類毎に用意される。つまり、ＤＣＴ係数用の変換テーブル、動きベクトル用の変換テーブル、その他各種パラメータ毎の変換テーブルが用意される。
【０００６】
【発明が解決しようとする課題】
ところで、ＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４及びＨ２６３等の各画像符号化規格は、それぞれ独自のシンタックスを規定しており、各規格毎にシンタックスの内容が異なっている。そのため、当然その変換テーブルも異なる。また、規格間で同様のシンタックスを用いていたとしても、シンタックスの値と対応する可変長符号の符号列との関係が異なっていたり、また、符号化順序も異なっている。
【０００７】
そのため、例えば、複数の画像符号化規格に対応した共用のエンコーダ又はデコーダを製造する場合、可変長符号化及び復号化回路を各規格毎に別々に開発し、それぞれの規格に対応した回路を全てエンコーダ及びデコーダに搭載しなければならなかった。すなわち、１つのエンコーダ及びデコーダに、画像符号化規格の数だけ、可変長符号化及び復号化回路を搭載しなければならなかった。
【０００８】
また、ある画像符号化規格に対応したエンコーダ又はデコーダを開発した後に、その画像符号化規格に新たなシンタックスが拡張された場合や、符号化順序が変更された場合、これまでの可変長符号化及び復号化回路では、拡張又は変更後の規格に対応することができなくなるため、新規に回路設計を行わなければならなかった。
【０００９】
本発明は、このような従来の実情に鑑みて提案されたものであり、複数の規格に対応した場合であっても回路規模を小さくすることができ、さらに、新規な符号化規格が提案された場合であっても容易にその新規な規格に対応することができる拡張性の高い符号変換装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明にかかる符号変換装置は、特定の情報内容を示すシンタックスと符号列との対応関係が記述された変換テーブルを上記情報内容の種別毎に複数格納している変換テーブル格納手段と、入力されたシンタックスから対応した符号列への符号変換を上記変換テーブルの記述に従って行い、符号変換して生成した複数の符号列を合成して１つのデータストリームを生成する符号化処理、及び／又は、入力されたデータストリームから符号列を抽出し、抽出した符号列から対応したシンタックスへの符号変換を上記変換テーブルの記述に従って行う復号化処理を行う符号化／復号化手段と、少なくとも上記変換テーブルの選択情報が示された命令データを格納する命令格納手段とを備え、上記符号化／復号化手段は、上記命令格納手段に格納されている命令データに示された変換テーブルを上記変換テーブル格納手段から１つ選択し、選択した変換テーブルに基づき上記符号変換を行うことを特徴とする。
【００１１】
この符号変換装置では、情報内容の種別毎に分類された変換テーブルを変換テーブル格納手段内に複数格納しておく。変換テーブルには、シンタックスと符号列との対応関係が記述された情報が記述されている。
【００１２】
この符号変換装置には、外部から命令データが格納される。命令データには、少なくとも、変換テーブル格納手段に格納されている複数の変換テーブルのなかから１つの変換テーブルを選択する選択情報が記述されている。符号化／復号化手段は、命令格納手段に格納されている命令データに基づき１つの変換テーブルを選択し、選択した変換テーブルを参照して、シンタックスから符号列への符号変換処理又は符号列からシンタックスへの変換処理を行う。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態として、ＭＰＥＧ２（ＩＳＯ／ＩＥＣ　１３８１８−２）及びＭＰＥＧ４（ＩＳＯ／ＩＥＣ　１４４９６−２）の両者の方式に対応した画像符号化及び復号装置に用いられるＶＬＣ符号変換装置について、図面を参照しながら詳細に説明する。
【００１４】
本発明の実施の形態のＶＬＣ符号変換装置は、符号化処理を行う場合には、ＭＰＥＧ２又はＭＰＥＧ４のマクロブロックレイヤに規定されている各種の情報（以下シンタックスと呼ぶ。）が入力され、それらのシンタックスに対して可変長符号化処理（又は固定長符号化処理）をして所定の符号列を生成する。そして、ＶＬＣ符号変換装置は、生成した符号列を合成してＭＰＥＧ２又はＭＰＥＧ４に対応したデータストリームを生成する。また、ＶＬＣ符号変換装置は、復号処理を行う場合には、ＭＰＥＧ２又はＭＰＥＧ４に対応したデータストリームが入力され、入力されたデータストリームを可変長符号（又は固定長符号）の個々の符号列に分割する。そして、ＶＬＣ符号変換装置は、分割した各符号列に対して可変長符号の復号化処理（又は固定長符号の復号化処理）をしてＭＰＥＧ２又はＭＰＥＧ４のマクロブロックレイヤに規定されているシンタックスを抽出する。
【００１５】
シンタックスに対して可変長符号化処理（或いは固定長符号化処理）をして生成された符号列のことを、ＶＬＣ符号列と呼ぶものとする。
【００１６】
図１に、本発明の実施の形態のＶＬＣ符号変換装置１のブロック構成図を示す。
【００１７】
ＶＬＣ符号変換装置１は、図１に示すように、符号変換部１１と、ＤＣＴ係数バッファ１２と、ＭＶバッファ１３と、パラメータバッファ１４と、ビットストリームバッファ１５と、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１６とを備えて構成されている。
【００１８】
符号変換部１１は、符号化時には、ＭＰＥＧ２又はＭＰＥＧ４のマクロブロックレイヤに規定されているシンタックスをＶＬＣ符号列に変換し、生成したＶＬＣ符号列を合成してビットストリームを生成する処理を行う。符号変換部１１は、復号時には、ＭＰＥＧ２又はＭＰＥＧ４のフォーマットに対応したビットストリームを個々のＶＬＣ符号列に分離し、各ＶＬＣ符号列をシンタックスに変換する処理を行う。
【００１９】
ＤＣＴ係数バッファ１２は、ＭＰＥＧ２及びＭＰＥＧ４のシンタックスの一つとして規定されているＤＣＴ係数を格納する。ＭＶバッファ１３は、ＭＰＥＧ２及びＭＰＥＧ４のシンタックスの一つとして規定されている動きベクトルを格納する。パラメータバッファ１４は、ＭＰＥＧ２又はＭＰＥＧ４で規定されたシンタックスのうち、ＤＣＴ係数及び動きベクトル以外のシンタックス、例えば、マクロブロックのタイプ、動きベクトルの予測方向等を格納する。なお、ＭＰＥＧ２及びＭＰＥＧ４で規定されているシンタックスのうち、ＤＣＴ係数及び動きベクトル以外のシンタックスのことを、以下パラメータと呼ぶ。
【００２０】
ビットストリームバッファ１５は、ＭＰＥＧ２又はＭＰＥＧ４のビットストリームを格納する。ＣＰＵ１６は、符号変換部１１の動作を制御する。
【００２１】
以上のような構成のＶＬＣ符号変換装置１は、符号化時には、ＤＣＴ係数バッファ１２，ＭＶバッファ１３及びパラメータバッファ１４に格納されているシンタックス（ＤＣＴ係数，動きベクトル及びパラメータ）を読み出して、可変長符号化（又は固定長符号化）を行ってＶＬＣ符号列を生成し、生成したＶＬＣ符号列をビットストリームバッファ１５上で、ＭＰＥＧ２又はＭＰＥＧ４に対応したビットストリームに合成する。また、ＶＬＣ符号変換装置１は、復号時には、ビットストリームバッファ１５に格納されているＭＰＥＧ２又はＭＰＥＧ４に対応したビットストリームを読み出して、個々のＶＬＣ符号列を分離し、分離した各ＶＬＣ符号列に対して可変長符号の復号化（又は固定長符号の復号化）を行ってシンタックスを生成し、生成したシンタックスを対応するバッファ（ＤＣＴ係数バッファ１２，ＭＶバッファ１３又はパラメータバッファ１４のいずれかのバッファ）に格納する。
【００２２】
つぎに、符号変換部１１の内部構成について説明をする。
【００２３】
符号変換部１１は、ランラベル解析部２１と、ＭＶ解析部２２と、符号化／復号部２３と、命令レジスタ２４と、制御レジスタ２５と、制御部２６とを備えて構成されている。
【００２４】
ランレベル解析部２１は、符号化時には、ＤＣＴ係数バッファ１２から所定のスキャン順序でＤＣＴ係数を読み出し、読み出した順序で並べられたＤＣＴ係数をラン−レベル情報に変換する変換処理を行い、復号時には、その逆変換処理を行う。ＤＣＴ係数は、いわゆるランレベルの２次元可変長符号化が行われる。ランとは、ＤＣＴ係数の並びのうち先行するゼロ値の個数のことであり、レベルとは、ランに続く非ゼロ値のＤＣＴ係数の値のことである。ラン−レベル情報とは、１つのランと１つのレベルとの組み合わせを表わした符号化情報である。ＭＰＥＧ２及びＭＰＥＧ４では、このラン−レベル情報に基づき、ＤＣＴ係数にに対して可変長符号化を行う。ランレベル解析部２１は、符号化時には、ＤＣＴ係数バッファ１２からＤＣＴ係数を所定のスキャン順序で読み出して、ラン−レベル情報を生成し、符号化／復号部２３に供給する。また、ランレベル解析部２１は、復号時には、符号化／復号部２３から供給されたラン−レベル情報から、所定のスキャン順序で並べられた複数のＤＣＴ係数の値を復元し、復元したＤＣＴ係数をＤＣＴ係数バッファ１２に格納する。なお、ＭＰＥＧ２及びＭＰＥＧ４では、イントラマクロブロックのＤＣ成分のＤＣＴ係数は、ランレベルの２次元可変長符号化は行われずに、レベルに対する固定長符号化が行われる。このため、イントラマクロブロックのＤＣ成分のＤＣＴ係数は、符号化／復号部２３との間で、レベルの値のみがやり取りされる。
【００２５】
ＭＶ解析部２２は、符号化時には、連続したマクロブロックの動きベクトルの値の差分を求め、その差分値に基づき動きベクトルを差分コード化する。また、ＭＶ解析部２２は、復号時には、差分コードから動きベクトルを復元する処理を行う。ＭＶ解析部２２は、符号化時には、ＭＶバッファ１３から動きベクトルを読み出して差分コード化し、差分コード化した動きベクトルを符号化／復号部２３に供給する。ＭＶ解析部２２は、復号時には、符号化／復号部２３から供給された差分コードから動きベクトルを復元して、復元した動きベクトルをＭＶバッファ１３に格納する。なお、Ｐピクチャでのスライスの先頭マクロブロック、イントラマクロブロック、ノンＭＣ等では、差分コード化は行われず、動きベクトルの値がそのままＶＬＣ符号化される。
【００２６】
符号化／復号部２３は、内部に格納されている変換テーブルを参照して、シンタックスとＶＬＣ符号列との間の変換処理を行う。
【００２７】
符号化／復号部２３には、符号化時には、シンタックスとして、ＤＣＴ係数、動きベクトル及びパラメータが入力される。なお、ＤＣＴ係数はランレベル解析部２１によりラン−レベル情報とされて入力され、動きベクトルはＭＶ解析部２２により差分コード化されて入力される。また、パラメータは、パラメータバッファ１４から直接入力される。符号化／復号部２３は、符号化時には、制御部２６により選択された変換テーブルを参照して入力されたシンタックスを対応するＶＬＣ符号列に変換し、それらを合成してＭＰＥＧ２又はＭＰＥＧ４に対応したビットストリームを生成する。
【００２８】
符号化／復号部２３は、復号化時には、ＭＰＥＧ２又はＭＰＥＧ４に対応したビットストリームがビットストリームバッファ１５から入力される。符号化／復号部２３は、入力されたビットストリームを各ＶＬＣ符号列に分離する。符号化／復号部２３は、制御部２６により選択された変換テーブルを参照して各ＶＬＣ符号列を対応するシンタックスに変換する。符号化／復号部２３は、変換したシンタックスのうち、ＤＣＴ係数をランレベル解析部２１を介してＤＣＴ係数バッファ１２に格納し、動きベクトルをＭＶ解析部２２を介してＭＶバッファ１３に格納し、パラメータをパラメータバッファ１４に格納する。
【００２９】
命令レジスタ２４には、ＣＰＵ１６から命令データが与えられ、その命令データを格納する。命令データの詳細については後に説明する。
【００３０】
制御レジスタ２５には、ＣＰＵ１６から制御データが与えられ、その制御データを格納する。制御データの詳細については後に説明する。
【００３１】
制御部２６は、命令レジスタ２４に格納されている命令データ及び制御レジスタ２５に格納されている制御データを参照して、符号化／復号部２３の動作制御を行う。制御部２６の動作制御処理の詳細については後に説明する。
【００３２】
つぎに、符号化／復号部２３の構成について詳細に説明をする。図２に符号化／復号部２３のブロック構成図を示す。
【００３３】
符号化／復号部２３は、テーブル変換器３１と、ストリーム解析器３２と、ストリーム結合器３３とを備えて構成される。
【００３４】
ストリーム解析器３２には、符号化時に、ＭＰＥＧ２又はＭＰＥＧ４のビットストリームが入力される。ＭＰＥＧ２及びＭＰＥＧ４のビットストリームは、所定の階層データ構造で各種のデータが並べられて構成されたストリームであり、特に、マクロブロック層は、シンタックスを可変長符号化又は固定長符号化して生成されたデータ列（ＶＬＣ符号列）が、所定のデータ構造に従って並べられている。ビットストリーム内のマクロブロック層部分には、例えば、ＤＣＴ係数、動きベクトル、マクロブロックアドレス、マクロブロックアドレス等の情報内容を示すＶＬＣ符号列が含まれている。ただし、ＶＬＣ符号列の最大符号長（或いは固定長符号データの符号長）は、その情報内容毎に異なっている。ストリーム解析器３２は、ビットストリーム中に含まれているＶＬＣ符号列の最大符号長を示す情報が制御部２６から与えられ、その最大符号長情報に基づき、入力されたビットストリームを個々のＶＬＣ符号列に分離する。なお、この最大符号長を示す情報は、命令レジスタ２４に格納された命令データにより与えられる。
【００３５】
ストリーム結合器３３には、復号時には、テーブル変換器３１から出力されたＶＬＣ符号列が入力される。ストリーム結合器３３は、ＭＰＥＧ２又はＭＰＥＧ４のフォーマットに従い、入力されたＶＬＣ符号列を結合して、ＭＰＥＧ２又はＭＰＥＧ４に対応したビットストリームを生成する。結合されたビットストリームは、ＭＰＥＧ２又はＭＰＥＧ４のマクロブロック層部分の階層データとして外部に出力され、上位階層のデータストリームの所定部分に結合される。
【００３６】
テーブル変換器３１は、符号化時には、シンタックスが入力され、ＶＬＣ符号列を出力する。また、テーブル変換器３１は、復号時には、ストリーム解析器３２により分割された個々のＶＬＣ符号列又は固定長符号データが入力され、それらの対応したシンタックスを出力する。
【００３７】
テーブル変換器３１は、符号化時におけるシンタックスからＶＬＣ符号列への符号変換処理、復号時におけるＶＬＣ符号列からシンタックスへの符号変換処理を、予め内部に格納している変換テーブルを参照して行う。
【００３８】
テーブル変換器３１の内部構成を図３に示す。
【００３９】
テーブル変換器３１は、符号化／復号化テーブル格納部３４と、オフセットテーブル格納部３５と、アドレス生成部３６と、オフセットテーブル一時格納部３７と、アドレス合成部３８と、符号化／復号テーブル一時格納部３９とを備えて構成されている。
【００４０】
符号化／復号化テーブル格納部３４は、複数の符号化用の変換テーブル（符号化テーブル）と、複数の復号化用の変換テーブル（復号化テーブル）とを格納している。
【００４１】
符号化テーブルは、アドレス化されたシンタックスの値がインデックスワードとして記述されている。アドレス化されたシンタックスとは、テーブルデータとして取り扱いやすいようにシンタックスの値を変換したデータである。シンタックスの値は、例えば、マイナス値があったり、単純にインクリメントされている値ではなく、そのままではテーブルデータとして取り扱いづらい。そのため、本符号化テーブルでは、これらのシンタックスの値を所定の変換方式に従い単純化して、テーブルのインデックスワードとして用いることができるようにアドレス化している。符号化テーブルは、各インデックスワードに対して対応するＶＬＣ符号列が割り当てられている。割り当てられたＶＬＣ符号列は、テーブル内においては、おのおのがユニークな符号列となっている。このため、符号化テーブルは、ある任意の値のシンタックスを入力すると、そのシンタックスに対応したＶＬＣ符号列を一つ出力することができる。
【００４２】
復号化テーブルは、アドレス化されたＶＬＣ符号列の値がインデックスワードとして記述されている。アドレス化したＶＬＣ符号列とは、テーブルデータとして取り扱い易いように、ＶＬＣ符号列の値を変換したデータである。ＶＬＣ符号列の値は、それぞれの符号長が異なっており、テーブルデータのインデックスワードとしてそのまま用いた場合、テーブルが非常に大きくなってしまい、さらに、空白領域も膨大となり、非常に取り扱いづらい。そのため、本復号化テーブルでは、こららのＶＬＣ符号列の値を所定の変換方式に従い単純化して、テーブルのインデックスワードとして用いることができるようにアドレス化している。復号化テーブルは、各インデックスワードに対して対応するシンタックスの値が割り当てられている。このため、復号化テーブルは、ある任意のＶＬＣ符号列を入力すると、その符号列に対応したシンタックスの値を一つ出力することができる。
【００４３】
また、符号化／復号化テーブル格納部３４には、少なくともマクロブロック層に含まれるシンタックスの種類毎、ビットストリームの種類毎、符号化／復号化毎にそれぞれ独立した変換テーブルが格納されている。例えば、ＭＰＥＧ２に対応したＤＣＴ係数の変換テーブル、ＭＰＥＧ４に対応したＤＣＴ係数の変換テーブル、ＭＰＥＧ２に対応した動きベクトルの変換テーブル、ＭＰＥＧ４に対応した動きベクトルの変換テーブル、ＭＰＥＧ２に対応したマクロブロックのタイプの変換テーブル、ＭＰＥＧ４に対応したマクロブロックのタイプの変換テーブルといったように、情報の種類毎、ストリームの種類毎並びに符号化／復号化毎に独立に生成された変換テーブルが格納されている。
【００４４】
オフセットテーブル格納部３５には、各種のオフセットテーブルを格納している。オフセットテーブルは、アドレス化されたシンタックス又はアドレス化されたＶＬＣ符号列のうちの上位部分の情報（上位アドレス）がインデックスワードとして記述されており、各インデックスワードに対して変換テーブル内の所定のインデックス位置を示したオフセットアドレスが割り当てられたテーブルである。
【００４５】
変換テーブル内の情報は、図４に示すように、有効なインデックス値が連続して記述されている領域毎に分割できる。特に、アドレス化したＶＬＣ符号列は、データ長が様々であることもあり、有効な値が集まった領域が離散的に発生しているため、領域分割できる。変換テーブルでは、その個々の領域に対して上位アドレスを割り当て、領域内の各情報にその領域内における順位を示した下位アドレスが割り当てられている。オフセットテーブルは、上位アドレスが入力されると、その上位アドレスで指定される領域の先頭のアドレスを出力するテーブルである。
【００４６】
アドレス生成部３６は、変換前のデータ（符号化時にはシンタックス、復号時にはＶＬＣ符号列）が入力され、変換テーブル内の領域を指定する上位アドレスと、その領域内における順位を示す下位アドレスとを生成する。上位アドレスは、オフセットテーブル一時格納部３７に供給され、下位アドレスはアドレス合成部３８に供給される。
【００４７】
オフセットテーブル一時格納部３７には、オフセットテーブル３５に格納されている複数のオフセットテーブルのうち、制御部２６から与えられるテーブル選択信号により選択された１つのオフセットテーブルが転送され、その転送されたオフセットテーブルを格納する。オフセットテーブル一時格納部３７は、格納しているオフセットテーブルを参照して、入力された上位アドレスに対応したオフセットアドレスを出力する。オフセットアドレスは、アドレス合成部３８に供給される。なお、オフセットテーブル一時格納部３７に転送されるオフセットテーブルは、命令レジスタ２４に格納される命令データに基づき制御部２６が選択する。
【００４８】
アドレス合成部３８は、オフセットアドレスと下位アドレスとが入力される。アドレス合成部３８は、オフセットアドレスと下位アドレスとを加算したアドレスを生成する。この加算したアドレスは、変換テーブルのインデックスワードを指定するアドレスとなる。アドレス合成部３８により生成されたアドレスは、符号化／復号化テーブル一時格納部３９に供給される。
【００４９】
符号化／複号化テーブル一時格納部３９には、符号化／復号化テーブル格納部３４に格納されている複数の変換テーブルのうち、制御部２６から与えられるテーブル選択信号により選択された１つの符号化／復号化テーブルが転送され、その転送された変換テーブルを格納する。符号化／複号化テーブル一時格納部３９は、格納している変換テーブルを参照して、アドレス合成部３８から入力されたアドレスに対応した変換後データ（符号化時にはＶＬＣ符号列、復号時にはシンタックス）を出力する。なお、符号化／復号化テーブル一時格納部３９に転送される変換テーブルは、命令レジスタ３４に格納される命令データに基づき制御部２６が選択する。
【００５０】
以上のように符号化／復号部２３では、複数の各種の変換テーブルを予め格納しておき、可変長符号化（又は復号化）をする際に必要となる１つの変換テーブルを読み出して、その読み出した変換テーブルに基づき、シンタックスからＶＬＣ符号列への変換、或いは、ＶＬＣ符号列からシンタックスへの変換処理を行っている。このように本符号化／復号部２３では、必要に応じて変換テーブルを読み出すような構成としているので、ハードウェア構成自体を変更しなくても、変換テーブルの修正、追加のみをすれば、新たなシンタックスやフォーマットに対応することができる。
【００５１】
また、ＶＬＣ符号列をテーブルのインデックスとした場合、可変長符号であるという性質上、無駄な空白領域が増加し、テーブルデータが大きくなってしまう。しかしながら、本符号化／復号部２３では、変換テーブル内のデータを領域分割し、各領域を指定するアドレスをオフセットテーブルで発生している。本符号化／復号部２３では、このように２段階の符号変換用のテーブルを用いているので、可変長符号を取り扱ってもテーブル内に無駄な空白領域を作らなくてもよく、メモリの使用効率を向上させることができる。
【００５２】
つぎに、命令レジスタ２４及び制御レジスタ２５に格納される命令データ及び制御データについて説明を行う。
【００５３】
命令レジスタ２４には命令データが書き込まれ、制御レジスタ２５には制御データが書き込まれる。命令データ及び制御データの書き込みを行うのは、ＣＰＵ１６である。ＣＰＵ１６は、処理状況に応じた様々な処理プログラムを有しており、その処理プログラムに基づき必要な命令セット（複数の命令データが羅列されているセット）及び制御データを、命令レジスタ２４及び２５に格納する。
【００５４】
また、書き込まれた命令データ及び制御データを参照して動作制御を行うのは、符号変換部１１の制御部２６である。
【００５５】
図５（Ａ）に符号化時における命令データのデータ構成を示し、図５（Ｂ）に復号化時における命令データのデータ構成を示す。
【００５６】
符号化時の命令データは、モード情報４１、最大ビット長情報４２、パラメータ識別情報４３、バッファ選択／固定長符号化値情報４４、ループ数４５とから構成される。また、復号化時の命令データは、モード情報４１と、最大ビット長情報４２と、復号回数４６とから構成される。
【００５７】
モード情報４１は、符号化又は復号化するシンタックスの種類を示している。符号変換部１１の制御部２６は、このモード情報４１を参照して、複数の変換テーブル（及び複数のオフセットテーブル）のなかから、必要な１つの変換テーブル（及びオフセットテーブル）を選択する。符号変換部１１の制御部２６は、選択した変換テーブル（及びオフセットテーブル）を指定する制御命令を符号化／復号部２３に対して制御命令を発行し、指定した変換テーブル（オフセットテーブル）を参照して符号変換を行わせる。
【００５８】
モード情報４１として規定する具体的なコード例を図６〜図９に示す。ここで示すコード例では、５ビットのコード例である。図６は、ＭＰＥＧ２方式で符号化処理を行う場合におけるモード情報のコード例である。図７は、ＭＰＥＧ４方式で符号化処理を行う場合におけるモード情報のコード例である。図８は、ＭＰＥＧ２方式で復号化処理を行う場合におけるモード情報のコード例である。図９は、ＭＰＥＧ４方式で復号化処理を行う場合におけるモード情報のコード例である。
【００５９】
最大ビット長情報４２は、符号化又は復号化するＶＬＣ符号列の最大のビット長を表す情報である。符号変換部１１の制御部２６は、最大ビット長情報４２に基づき、ＶＬＣ符号列の最大ビット長を指定する制御情報を符号化／復号部２３に対して発行し、ＭＰＥＧ２又はＭＰＥＧ４ビットストリームを個々のＶＬＣ符号列に分割させる。
【００６０】
パラメータ識別情報４３は、符号化するシンタックスがパラメータであるか、ＤＣＴ係数又は動きベクトルであるか、を識別するための情報である。制御部２６は、本パラメータ識別情報４３に、符号化するシンタックスがパラメータであると示されている場合には、パラメータバッファ１４から符号化／復号部２３へデータを転送する制御を行う。なお、パラメータ識別情報は、符号化時にのみ設定される。
【００６１】
バッファ選択／固定長符号化値情報４４は、パラメータ識別情報４３の記述に応じて情報内容が異なる。符号化するシンタックスがパラメータであるパラメータ識別情報４３に示されている場合には、バッファ選択／固定長符号化値情報４４には、固定長符号化するシンタックスの値が記述される。この場合、制御部２６は、シンタックスの値が、このバッファ選択／固定長符号化値情報４４に示される値と一致する場合には、そのシンタックスに対して固定長符号化処理を行う。一方、符号化するシンタックスがパラメータではないとパラメータ識別情報４３に示されている場合には、バッファ選択／固定長符号化値情報４４には、符号化するシンタックスがＤＣＴ係数であるか動きベクトルであるかの識別情報が記述される。制御部２６は、バッファ選択／固定長符号化情報４４に符号化するシンタックスがＤＣＴ係数であると示されていれば、ＤＣＴ係数バッファ１２から符号化／復号部２３へデータを転送する制御を行い、バッファ選択／固定長符号化情報４４に符号化するシンタックスが動きベクトルであると示されていれば、ＭＶバッファ１３から符号化／復号部２３へデータを転送する制御を行う。なお、バッファ選択／固定長符号化値情報４４は、符号化時にのみ設定される。
【００６２】
ループ数情報４５は、本命令データで指定された変換テーブルを用いて、連続して符号化処理を行うインデックス数を示している。例えば、ＤＣＴ係数や動きベクトルは、ストリーム中に連続して符号化される。従って、連続した同種類のインデックスを、１つの変換テーブルを参照して符号化する場合には、このループ数情報４５に記述されている回数分繰り返し符号化処理を行う。このことによって、１つの命令データに基づき、複数のシンタックスに対する符号化処理が行えることとなり、命令数を減少させることができる。なお、このループ数情報４５は、符号化時にのみ設定される。
【００６３】
復号回数情報４６は、本命令データで指定された変換テーブルを用いて、復号処理を行う回数を示している。例えば、ＤＣＴ係数や動きベクトルは、ストリーム中に連続して符号化されている。従って、連続した同種類のインデックスを１つの変換テーブルを参照して復号化する場合には、この復号回数情報４６に記述されている回数分繰り返し復号処理を行う。このことによって、１つの命令データに基づき、複数回の復号処理を行えることとなり、命令数を減少させることができる。なお、この復号回数情報４６は、復号化時にのみ設定される。
【００６４】
図１０に制御データのデータ構成を示す。制御データは、モード情報として記述される各コード値に対して設定される。つまり、図６〜図９に示した５ビットの各値毎に制御データが設定される。制御データは、ＣＰＵ１６により制御レジスタ２５に書き込まれ、制御部２６により参照される。制御部２６は、まず、命令レジスタ２４から命令データを読み込んだ後に、その命令データのモード情報に対応した制御データを制御レジスタ２５から読み出し、その制御データに記述された内容を実行する。
【００６５】
制御データは、ＥＮＤフラグ４７、ＦＬＣフラグ４８、ＩＮＴＲＡフラグ４９、ＤＣＴフラグ５０、ＭＶフラグ５１、ＰＡＲＡＭフラグ５２から構成されている。
【００６６】
ＥＮＤフラグ４７は、終端マクロブロックを示すフラグである。すなわち、制御データは、ＥＮＤフラグ４７のビットが立っていればそのモード情報に基づき行われる符号変換処理が、終端マクロブロックに対する処理であることを示しており、ビットが立っていなければそのモード情報に基づき行われる符号変換処理が終端マクロブロックに対する処理ではないことを示している。制御部２６は、制御データのＥＮＤフラグ４７が立っていれば、その命令データに基づく処理を行う際に、終端マクロブロックに対する処理を行い、ＥＮＤフラグ４７が立っていなければ、その命令データに基づく処理を行う際に、通常のマクロブロックに対する処理を行う。
【００６７】
ＦＬＣフラグ４８は、固定長処理を行うか、可変長処理を行うかを示すフラグである。すなわち、制御データは、ＦＬＣフラグ４８のビットが立っていればそのモード情報に基づき行われる符号変換処理が、固定長符号化処理又は固定長復号化処理であることを示しており、ビットが立っていなければそのモード情報に基づき行われる符号変換処理が、可変長符号化又は可変長復号化処理であることを示している。制御部２６は、制御データのＦＬＣフラグ４８が立っていれば、例えばビットストリームの解析や変換テーブルのアドレス生成処理等を行う際に、固定長符号化処理に対応した処理を行い、制御データのＦＬＣフラグが４８が立っていなければ、例えばビットストリームの解析や変換テーブルのアドレス生成処理等を行う際に、可変長符号化処理に対応した処理を行う。
【００６８】
ＩＮＴＲＡフラグ４９は、イントラマクロブロックに対応した処理を行うか、インターマクロブロックに対応した処理を行うかを示すフラグである。すなわち、ＩＮＴＲＡフラグ４９のビットが立っていればそのモード情報に基づき行われる符号変換処理が、イントラマクロブロックに対する処理であることを示しており、ビットが立っていなければそのモード情報に基づき行われる符号変換処理が、インターマクロブロックに対する処理であることを示している。制御部２６は、制御データのＩＮＴＲＡフラグ４９が立っていれば、例えばランレベル解析部２１やＭＶ解析部２２に対してイントラマクロブロックに対応した処理をさせる制御を行い、制御部２６は、制御データのＩＮＴＲＡフラグ４９が立っていなければ、例えばランレベル解析部２１やＭＶ解析部２２に対してインターマクロブロックに対応した処理をさせる制御を行う。
【００６９】
ＤＣＴフラグ５０，ＭＶフラグ５１及びＰＲＡＭフラグ５２は、復号化したシンタックスを格納するバッファを選択するフラグである。すなわち、制御部２６は、ＤＣＴフラグ５０のビットが立っていれば復号したシンタックスをＤＣＴ係数バッファ１２に格納し、ＭＶフラグ５１のビットが立っていれば復号したシンタックスをＭＶバッファ１３に格納し、ＰＲＡＭフラグ５２のビットが立っていれば復号したシンタックスをパラメータバッファ１４に格納する。
【００７０】
以上のように本ＶＬＣ符号変換装置１では、命令データ及び制御データがＣＰＵ１６により書き込まれ、制御部２６が命令データ及び制御データに基づき、変換テーブルの選択や各種の符号変換処理の制御を行っている。このため、例えば、符号化や復号化するインデックスの種類やその順序等を自在にプログラミングすることが可能となる。従って、例えば複数のストリームに対応した符号化処理や復号化処理、並びに、新たな符号化ストリームへの対応等を、プログラムの変更のみで行うことができる。
【００７１】
つぎに、符号変換部１１の符号化時の処理内容について、図１１のフローチャートを参照して説明をする。
【００７２】
まず、制御レジスタ２５に対する制御データの書き込み（ステップＳ１１）、並びに、命令レジスタ２４に対する命令セットの書き込みが、ＣＰＵ１６により予め行われている（ステップＳ１２）。命令セットとは、複数の命令データで構成されるデータ群であり、命令データとその実行順序が示されている。
【００７３】
続いて、符号変換部１１の制御部２６は、ＣＰＵ１６から符号化開始命令が与えられる。制御部２６は、符号化開始命令が与えられると、符号化処理を開始する（ステップＳ１３）。
【００７４】
続いて、符号変換部１１の制御部２６は、命令レジスタ２４に格納されている命令セットの中から、最初の１つの命令データを読み出す（ステップＳ１４）。
【００７５】
続いて、符号変換部１１の制御部２６は、読み出した命令データに記述されているモード情報を参照し、そのモード情報に対応した制御データを制御レジスタ２５から読み出す。制御部２６は、読み出した制御データに記述された内容の設定制御を行う（ステップＳ１５）。
【００７６】
続いて、符号変換部１１の制御部２６は、命令データのモード情報により指定されるオフセットテーブル及び変換テーブルを選択し、符号化／復号化テーブル格納部３４及びオフセットテーブル格納部３５から、オフセットテーブル一時格納部３７及び変換テーブル一時格納部３９に転送する（ステップＳ１６）。
【００７７】
続いて、符号変換部１１の制御部２６は、符号化処理を行うシンタックスが、パラメータである場合には、パラメータバッファ１４から１つのパラメータを読み出して、符号化／復号部２３へ転送する。或いは、符号変換部１１の制御部２６は、符号化処理を行うシンタックスがＤＣＴ係数又は動きベクトルである場合には、ランレベル解析部２１又はＭＶ解析部２２に演算処理を行わせ、ランレベル情報又は動きベクトルの差分コードを符号化／復号部２３へ転送する（ステップＳ１７）。
【００７８】
続いて、符号変換部１１の制御部２６は、符号化／復号部２３に対して制御命令を発行して、入力されたシンタックス（ＤＣＴ係数，動きベクトル又はパラメータ）からアドレス情報への変換処理（ステップＳ２０）、アドレス情報化したシンタックスに対応したＶＬＣ符号列への変換処理（ステップＳ２１）、ＶＬＣ符号列のビットストリーム合成処理（ステップＳ２２）を行わせる。
【００７９】
続いて、符号変換部１１の制御部２６は、命令データに示されているループ数分の符号変換処理を行ったか否かを判断する（ステップＳ２３）。ループ数分の符号変換処理を行っていない場合には、ステップＳ１７に戻り、再度同じ変換テーブルを用いて次のシンタックスに対する符号化処理を行う。
【００８０】
ループ数分の符号変換処理が終了した場合には、続いて、命令セット内の全ての命令データに対して、符号変換処理が終了したか否かを判断する。命令セット内の全ての命令データに対して符号変換が終了していない場合にはステップＳ１４に戻り、次の命令データを命令レジスタ２４から読み出し、処理を続行する。終了した場合には、本符号化処理を終了する。
【００８１】
つぎに、符号変換部１１の復号化時の処理内容について、図１２のフローチャートを参照して説明をする。
【００８２】
まず、制御レジスタ２５に対する制御データの書き込み（ステップＳ３１）、並びに、命令レジスタ２４に対する命令セットの書き込みが、ＣＰＵ１６により予め行われている（ステップＳ３２）。
【００８３】
続いて、符号変換部１１の制御部２６は、ＣＰＵ１６から符号化開始命令が与えられる。符号変換部１１の制御部２６は、符号化開始命令が与えられると、符号化処理を開始する（ステップＳ３３）。
【００８４】
続いて、符号変換部１１の制御部２６は、命令レジスタ２４に格納されている命令セットの中から、最初の１つの命令データを読み出す（ステップＳ３４）。
【００８５】
続いて、符号変換部１１の制御部２６は、読み出した命令データに記述されているモード情報を参照し、そのモード情報に対応した制御データを制御レジスタ２５から読み出す。制御部２６は、読み出した制御データに記述された内容の設定制御を行う（ステップＳ３５）。
【００８６】
続いて、符号変換部１１の制御部２６は、命令データのモード情報により指定されるオフセットテーブル及び変換テーブルを選択し、復号化／復号化テーブル格納部３４及びオフセットテーブル格納部３５から、オフセットテーブル一時格納部３７及び変換テーブル一時格納部３９に転送する（ステップＳ３６）。
【００８７】
続いて、符号変換部１１の制御部２６は、ビットストリームバッファ１５内のビットストリームを解析して、１つのＶＬＣ符号列を抽出する（ステップＳ３７）。
【００８８】
続いて、符号変換部１１の制御部２６は、復号化／復号部２３に対して制御命令を発行して、抽出したＶＬＣ符号化列からアドレス情報への変換処理（ステップＳ３８）、アドレス情報化したＶＬＣ符号列に対応したシンタックスへの変換処理（ステップＳ３９）を行わせる。
【００８９】
続いて、符号変換部１１の制御部２６は、復号したシンタックスが、ＤＣＴ係数又は動きベクトルであるか否かを判断する（ステップＳ４０）。ＤＣＴ係数又は動きベクトルではない場合、つまり、パラメータである場合には、復号したパラメータをパラメータバッファ１４に格納する（ステップＳ４１）。符号変換部１１の制御部２６は、復号したシンタックスがＤＣＴ係数又は動きベクトルである場合には、ランレベル解析部２１又はＭＶ解析部２２に演算処理を行わせ（ステップＳ４２）、ＤＣＴ係数又は動きベクトルをＤＣＴ係数バッファ１２又はＭＶバッファ１３に格納する（ステップＳ４３）。
【００９０】
続いて、符号変換部１１の制御部２６は、命令データに示されている復号数分の符号変換処理を行ったか否かを判断する（ステップＳ４４）。復号数分の符号変換処理を行っていない場合には、ステップＳ３７に戻り、再度同じ変換テーブルを用いて次のＶＬＣ符号列に対する復号化処理を行う。
【００９１】
復号回数分の符号変換処理が終了した場合には、続いて、命令セット内の全ての命令データに対して、符号変換処理が終了したか否かを判断する。命令セット内の全ての命令データに対して符号変換が終了していない場合にはステップＳ３４に戻り、次の命令データを命令レジスタ２４から読み出し、処理を続行する。終了した場合には、本復号化処理を終了する。
【００９２】
つぎに、ＣＰＵ１６による符号変換部１１の制御処理方法の一例を示す。なお、ここでは、ＭＰＥＧ４で規定されているデータパーティションニングに対応した復号処理について説明をする。
【００９３】
ＭＰＥＧ４では、マクロブロック層に含められるデータを単純な階層構造ではなく、重要な情報を先に伝送するように情報の伝送順序を変えたデータパーティショングと呼ばれる伝送方式を適用することができる。データパーティショニングでは、重要な情報を先に伝送することによって、エラー耐性を向上させることができる。ＭＰＥＧ４のデータパーティショニングでは、ビデオパケットの各マクロブロックの特に重要な情報をビデオパケットの前半に、それ以外の情報を後半になるように伝送順序を変更している。そして、前半と後半のデータ列の間に、特定のビット列（イントラＶＯＰの場合にはｄｃ　ｍａｒｋｅｒ，インターＶＯＰの場合にはｍｏｔｉｏｎ　ｍａｒｋｅｒ）を配置している。
【００９４】
イントラＶＯＰの場合、前半部分に挿入されている情報は、符号化モード、量子化差分値、イントラＤＣ成分であり、後半部分に挿入されている情報は、さらに、内部が２ループに分割されている。後半部分の第１ループは、マクロブロックのＡＣ成分を復号するために必要な符号化パターン，ＡＣ予測フラグであり、第２ループは、マクロブロックのＡＣ成分である。つまり、ビデオパケット内のマクロブロック層のデータが、合計３ループで転送される。
【００９５】
インターＶＯＰの場合、前半部分に挿入されている情報は、符号化ＭＢであるか非符号化ＭＢであるかを示すフラグ、符号化モード、動きベクトルであり、後半部分に挿入されている情報は、さらに、内部が２ループに分割されている。後半部分の第１ループは、符号化パターン、ＡＣ予測フラグ、量子化差分値、イントラＤＣ成分であり、第２ループは、マクロブロックのＡＣ成分である。つまり、つまり、ビデオパケット内のマクロブロック層のデータが、合計３ループで転送される。
【００９６】
そのため、このようなデータパーティショニングに対応した復号処理を行う場合には、１つのビデオパケットに対して各ループ毎に複数の命令セットを準備し、これらの命令セットをストリームのループの位置に応じて適宜切り換えながら、命令レジスタ２４に書き込まなければならない。
【００９７】
以下に説明する制御フローは、このようなデータパーティショニングに対応した復号処理を行うためのプログラム例である。
【００９８】
図１３に、イントラＶＯＰに対するデータパーティショニングの制御フローを示し、図１４〜図１６に、イントラＶＯＰに対する制御フローで用いられる命令セットを示す。
【００９９】
まず、ＣＰＵ１６は、１つのビデオパケット内に含まれているマクロブロック数を示す変数ｍを０に初期化する（ステップＳ５１）。
【０１００】
続いて、ＣＰＵ１６は、制御データを制御レジスタ２５に書き込む（ステップＳ５２）。
【０１０１】
続いて、ＣＰＵ１６は、第１の命令セットを命令レジスタ２４に書き込む（ステップＳ５３）。第１の命令セットを図１４に示す。この第１の命令セットは、１つのマクロブロック内の符号化モード、量子化差分値、イントラＤＣ成分を復号するための命令セットである。
【０１０２】
続いて、ＣＰＵ１６は、符号変換部１１に対して復号化開始命令を発行する（ステップＳ５４）。復号化開始命令が発行されると、符号変換部１１は、第１の命令セットに対応した復号処理を行う（ステップＳ５５）。
【０１０３】
続いて、符号変換部１１による第１の命令セットに対応した復号処理を終了すると、つまり、１つのマクロブロックに対する符号化モード、量子化差分値、イントラＤＣ成分の復号が終了すると、ＣＰＵ１６は、変数ｍを１インクリメントする（ステップＳ５６）。
【０１０４】
続いて、ＣＰＵ１６は、データストリーム中の次のデータが、“ｄｃ　ｍａｒｋｅｒ“であるか否かを判断する（ステップＳ５７）。つまり、データパーティショニングの前半部分のデータを全て復号したか否かを判断する。“ｄｃ　ｍａｒｋｅｒ”ではない場合には、ステップＳ５４に戻り、再度復号開始命令を発行し、処理を繰り返す。なお、命令レジスタ２４には、第１の命令セットが格納されている状態のままなので、符号変換部１１は、再度復号開始命令が与えられると、もう一度第１の命令セットに対応した復号処理を繰り返す。つまり、次のマクロブロックに対する符号化モード、量子化差分値、イントラＤＣ成分の復号が行われる。
【０１０５】
データストリーム中の次のデータが“ｄｃ　ｍａｒｋｅｒ”である場合、つまり、データパーティショニングの前半部分のデータを全て復号すると、続いて、ステップＳ５８に進み、以後データパーティショニングの後半部分の第１ループに対する復号処理が行われる。この際、変数ｍには、ビデオパケット内のマクロブロック数の値が格納されている。
【０１０６】
ステップＳ５８において、ＣＰＵ１６は、第２の命令セットを命令レジスタ２４に書き込む（ステップＳ５８）。第２の命令セットを図１５に示す。この第２の命令セットは、１つのマクロブロック内のＡＣ成分を復号するために必要な符号化パターン及びＡＣ予測フラグを復号するための命令セットである。
【０１０７】
続いて、ＣＰＵ１６は、変数ｉを０に初期化する（ステップＳ５９）。この変数ｉは、復号したマクロブロック数を示す値である。
【０１０８】
続いて、ＣＰＵ１６は、符号変換部１１に対して復号化開始命令を発行する（ステップＳ６０）。復号化開始命令が発行されると、符号変換部１１は、第２の命令セットに対応した復号処理を行う（ステップＳ６１）。
【０１０９】
続いて、符号変換部１１による第２の命令セットに対応した復号処理を終了すると、つまり、１つのマクロブロックに対する符号化パターン及びＡＣ予測フラグの復号が終了すると、ＣＰＵ１６は、変数ｉを１インクリメントする（ステップＳ６２）。
【０１１０】
続いて、ＣＰＵ１６は、変数ｉが、ｍと一致したか否かを判断する（ステップＳ６３）。つまり、データパーティショニングの後半部分の第１ループ内のデータを全て復号したか否かを判断する。変数ｉとｍが一致しない場合には、ステップＳ６０に戻り、再度復号開始命令を発行し、処理を繰り返す。なお、命令レジスタ２４には、第２の命令セットが格納されている状態のままなので、符号変換部１１は、再度復号開始命令が与えられると、もう一度第２の命令セットに対応した復号処理を繰り返す。つまり、次のマクロブロックに対するＡＣ成分を復号するために必要な符号化パターン及びＡＣ予測フラグの復号が行われる。
【０１１１】
変数ｉとｍとが一致した場合、つまり、データパーティショニングの後半部分の第１ループのデータを全て復号すると、続いて、ステップＳ６４に進み、以後データパーティショニングの後半部分の第２ループに対する復号処理が行われる。
【０１１２】
ステップＳ６４において、ＣＰＵ１６は、第３の命令セットを命令レジスタ２４に書き込む（ステップＳ６４）。第３の命令セットを図１６に示す。この第３の命令セットは、１つのマクロブロック内のＡＣ成分を復号するための命令セットである。
【０１１３】
続いて、ＣＰＵ１６は、変数ｉを０に初期化する（ステップＳ６５）。この変数ｉは、復号したマクロブロック数を示す値である。
【０１１４】
続いて、ＣＰＵ１６は、符号変換部１１に対して復号化開始命令を発行する（ステップＳ６６）。復号化開始命令が発行されると、符号変換部１１は、第３の命令セットに対応した復号処理を行う（ステップＳ６７）。
【０１１５】
続いて、符号変換部１１による第３の命令セットに対応した復号処理を終了すると、つまり、１つのマクロブロック内のＡＣ成分の復号が終了すると、ＣＰＵ１６は、変数ｉを１インクリメントする（ステップＳ６８）。
【０１１６】
続いて、ＣＰＵ１６は、変数ｉが、ｍと一致したか否かを判断する（ステップＳ６９）。つまり、データパーティショニングの後半部分の第２ループ内のデータを全て復号したか否かを判断する。変数ｉとｍが一致しない場合には、ステップＳ６６に戻り、再度復号開始命令を発行し、処理を繰り返す。なお、命令レジスタ２４には、第３の命令セットが格納されている状態のままなので、符号変換部１１は、再度復号開始命令が与えられると、もう一度第３の命令セットに対応した復号処理を繰り返す。つまり、次のマクロブロックに対するＡＣ成分の復号が行われる。
【０１１７】
変数ｉとｍとが一致した場合、つまり、データパーティショニングの後半部分の第２ループのデータを全て復号すると、本処理を終了する。
【０１１８】
図１７に、インターＶＯＰに対するデータパーティショニングの制御フローを示す。このインターＶＯＰに対する制御フローは、ステップＳ５７における処理が、“ｄｃ　ｍａｒｋｅｒ”であるか、“ｍｏｔｉｏｎ　ｍａｒｋｅｒ”であるかの違いのみで、他の処理は全てイントラＶＯＰと同一であるので、その処理説明は省略する。
【０１１９】
ただし、第１の命令セット、第２の命令セット及び第３の命令セットは、それぞれ異なっている。図１８にインターＶＯＰの制御フローで用いられる第１の命令セットを示し、図１９にインターＶＯＰの制御フローで用いられる第２の命令セットを示し、図２０にインターＶＯＰの制御フローで用いられる第１の命令セットを示す。
【０１２０】
インターＶＯＰの制御フローで用いられる第１の命令セット（図１８）は、データパーティショニングの前半部分に挿入されている、符号化ＭＢであるか非符号化ＭＢであるかを示すフラグ、符号化モード、動きベクトルを復号するための命令セットである。インターＶＯＰの制御フローで用いられる第２の命令セット（図１９）は、データパーティショニングの後半部分の第１ループに挿入されている、符号化パターン、ＡＣ予測フラグ、量子化差分値、イントラＤＣ成分を復号するための命令セットである。インターＶＯＰの制御フローで用いられる第３の命令セット（図２０）は、マクロブロックのＡＣ成分を復号するための命令セットである。
【０１２１】
【発明の効果】
以上のように本発明にかかる符号変換装置では、命令格納手段に格納されている命令データに基づき１つの変換テーブルを選択し、選択した変換テーブルを参照して、シンタックスから符号列への符号変換処理又は符号列からシンタックスへの変換処理を行う。
【０１２２】
このため、本発明にかかる符号変換装置では、複数の規格に対応させる場合であっても、それぞれの規格毎に別途ハードウェアを作成することなく、一つの回路で符号変換を行うことができる。さらに、新規な符号化規格が提案された場合であっても、変換テーブルを追加するとともに、命令データを発行するソフトウェアプログラムを変更すれば対応することが可能である。
【図面の簡単な説明】
【図１】本発明の実施の形態のＶＬＣ符号変換装置のブロック構成図である。
【図２】上記ＶＬＣ符号変換装置の符号化／復号部のブロック構成図である。
【図３】上記符号化／復号部のテーブル変換部のブロック構成図である。
【図４】オフセットテーブルを説明するための図である。
【図５】命令データのデータ構成を説明するための図である。
【図６】ＭＰＥＧ２方式で符号化処理を行う場合における命令データのモード情報のコード例を示す図である。
【図７】ＭＰＥＧ４方式で符号化処理を行う場合における命令データのモード情報のコード例を示す図である。
【図８】ＭＰＥＧ２方式で復号化処理を行う場合における命令データのモード情報のコード例を示す図である。
【図９】ＭＰＥＧ４方式で復号化処理を行う場合における命令データのモード情報のコード例を示す図である。
【図１０】制御データのデータ構成を説明するための図である。
【図１１】符号化時における符号変換部の処理内容を示すフローチャートである。
【図１２】復号化時における符号変換部の処理内容を示すフローチャートである。
【図１３】データパーティショニングに従い伝送されたイントラＶＯＰから、マクロブロック層のデータを復号するための処理プログラムを示したフローチャートである。
【図１４】データパーティショニングに従い伝送されたイントラＶＯＰから、１つのマクロブロック内のデータを復号するための第１の命令セットである。
【図１５】データパーティショニングに従い伝送されたイントラＶＯＰから、１つのマクロブロック内のデータを復号するための第２の命令セットである。
【図１６】データパーティショニングに従い伝送されたイントラＶＯＰから、１つのマクロブロック内のデータを復号するための第３の命令セットである。
【図１７】データパーティショニングに従い伝送されたインターＶＯＰから、マクロブロック層のデータを復号するための処理プログラムを示したフローチャートである。
【図１８】データパーティショニングに従い伝送されたインターＶＯＰから、１つのマクロブロック内のデータを復号するための第１の命令セットである。
【図１９】データパーティショニングに従い伝送されたインターＶＯＰから、１つのマクロブロック内のデータを復号するための第２の命令セットである。
【図２０】データパーティショニングに従い伝送されたインターＶＯＰから、１つのマクロブロック内のデータを復号するための第３の命令セットである。
【符号の説明】
１　ＶＬＣ符号変換装置、１１　符号変換部、１２　ＤＣＴ係数バッファ、１３　ＭＶバッファ、１４　パラメータバッファ、１５　ビットストリームバッファ、２１　ランレベル解析部、２２　ＭＶ解析部、２３　符号化／復号部、２４命令レジスタ、２５　制御レジスタ、２６　制御部
【図１】
2004080634.tif 000003
【図２】
2004080634.tif 000004
【図３】
2004080634.tif 000005
【図４】
2004080634.tif 000006
【図５】
2004080634.tif 000007
【図６】
2004080634.tif 000008
【図７】
2004080634.tif 000009
【図８】
2004080634.tif 000010
【図９】
2004080634.tif 000011
【図１０】
2004080634.tif 000012
【図１１】
2004080634.tif 000013
【図１２】
2004080634.tif 000014
【図１３】
2004080634.tif 000015
【図１４】
2004080634.tif 000016
【図１５】
2004080634.tif 000017
【図１６】
2004080634.tif 000018
【図１７】
2004080634.tif 000019
【図１８】
2004080634.tif 000020
【図１９】
2004080634.tif 000021
【図２０】
2004080634.tif 000022