(57)【要約】【課題】ＤＣＴ係数符号化の命令を実行する間、並行して算術論理演算などの処理を実行することができるプログラマブル可変長符号処理回路を得ることを課題とする。【解決手段】命令メモリ１、プログラム制御部２、命令デコード部３、算術論理演算部４、パラメータ入出力部５、作業用メモリ６、作業用メモリ制御部７、データ入出力制御部８、スキャン変換部９、ＤＣＴ係数符号化部１０、ストリーム出力部１１、ストリーム入力部１２、ＤＣＴ係数復号化部１３を備えて構成される。ＤＣＴ係数符号化の命令を実行する間、並行して算術論理演算などの処理を実行する。【選択図】        図１
2004356744.tif 000002
【特許請求の範囲】
【請求項１】
命令列であるプログラムが格納された命令メモリと、
前記命令メモリから読み出したプログラムの進行を制御するプログラム制御部と、
前記命令メモリから読み出した命令を解読する命令デコード部と、
レジスタファイルと算術論理演算器とを備えた命令演算部と、
符号化パラメータの入出力を制御するパラメータ入出力部と、
作業用メモリへのアクセスを制御する作業用メモリ制御部と、
ビットストリームおよびＤＣＴ係数データの入出力を制御するデータ入出力制御部と、
ＤＣＴ係数データの０ラン長を検出または復元するスキャン変換部と、
ＤＣＴ係数データと０ラン長とを符号語へ変換するＤＣＴ係数符号化部と、
前記ビットストリームをＤＣＴ係数データおよび０ラン長へ復号するＤＣＴ係数復号化部と、
符号語と符号長とを入力し、ある一定ビット単位のデータに結合するストリーム出力部と、
前記ビットストリームをある一定ビット単位で入力し、ビット単位で順方向にシフト可能なストリーム入力部と
を備えるプログラマブル可変長符号処理回路。
【請求項２】
ＤＣＴ係数符号化部とＤＣＴ係数復号化部とデータ入出力制御部とスキャン変換部のうちの少なくとも１つの処理終了までプログラムの進行を中断する命令を備え、前記ＤＣＴ係数符号化部と前記ＤＣＴ係数復号化部と前記データ入出力制御部と前記スキャン変換部のうちの少なくとも１つの動作中に、プログラム制御部と命令デコード部とパラメータ入出力部と作業用メモリ制御部のうちの少なくとも１つを動作させる命令を同時に実行可能であることを特徴とする請求項１記載のプログラマブル可変長符号処理回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えばＩＳＯ  ＭＰＥＧ−４やＣＣＩＴＴ  Ｈ．２６１などの離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）を用いた画像符号化および復号化を実現するプログラマブル可変長符号処理回路に関するものである。
【０００２】
【従来の技術】
従来のプログラミング可能な可変長符号処理回路について、例えば特許文献１にその符号化回路の一例が記載されている。その符号化回路によると、命令の読み出しを制御するプログラム制御手段と、命令を格納する命令メモリと、命令メモリから読み出した命令をデコードする命令デコード手段と、演算器およびレジスタファイルからなる演算手段と、可変長符号テーブルを格納した可変長符号テーブルメモリと、２次元ＤＣＴ係数データから０ラン長を検出するスキャン変換手段と、符号語と符号長を格納するＦＩＦＯと、符号語のパッキングを行うストリーム出力手段とを備えている。
【０００３】
その動作は演算手段内に格納された符号化パラメータにより可変長テーブル参照アドレスを算出し、可変長テーブルから得られた符号語と符号長とをＦＩＦＯに格納する。そしてストリーム出力手段は、ＦＩＦＯに格納された符号語のパッキングを行いビットストリームとして出力するものである。
【０００４】
また、ＤＣＴ係数の符号化はまず、スキャン変換手段が２次元ＤＣＴ係数データを０ラン長と０で無い係数の値との組に変換し、連続的に可変長符号テーブルメモリから対応する符号語および符号長を求めＦＩＦＯに格納する。そしてストリーム出力手段は、ＦＩＦＯに格納された符号語のパッキングを行い、ビットストリームとして出力するものである。
【０００５】
【特許文献１】
特開平９−３０７４５４号
【０００６】
【発明が解決しようとする課題】
しかしながら、従来の可変長符号処理回路は、ＤＣＴ係数符号化の命令を実行する間、並行して算術論理演算などの処理を実行することができないため、全体の処理サイクル数が増加してしまうという課題があった。
【０００７】
この発明は上記のような課題を解決するためになされたもので、ＤＣＴ係数を連続的に処理する間、他の処理を並行して実行することを可能にし、可変長符号化処理および可変長符号化処理を効率よく行うことが可能なプログラマブル可変長符号処理回路を得ることを目的とする。
【０００８】
【課題を解決するための手段】
この発明に係るプログラマブル可変長符号処理回路は、命令列であるプログラムが格納された命令メモリと、命令メモリから読み出したプログラムの進行を制御するプログラム制御部と、命令メモリから読み出した命令を解読する命令デコード部と、レジスタファイルと算術論理演算器とを備えた命令演算部と、符号化パラメータの入出力を制御するパラメータ入出力部と、作業用メモリへのアクセスを制御する作業用メモリ制御部と、ビットストリームおよびＤＣＴ係数データの入出力を制御するデータ入出力制御部と、ＤＣＴ係数データの０ラン長を検出または復元するスキャン変換部と、ＤＣＴ係数データと０ラン長とを符号語へ変換するＤＣＴ係数符号化部と、ビットストリームをＤＣＴ係数データおよび０ラン長へ復号するＤＣＴ係数復号部と、符号語と符号長とを入力し、ある一定ビット単位のデータに結合するストリーム出力部と、ビットストリームをある一定ビット単位で入力し、ビット単位で順方向にシフト可能なストリーム入力部とを備え、ＤＣＴ係数を連続的に処理する間、他の処理を並行して実行することが可能なものである。
【０００９】
【発明の実施の形態】
以下、この発明に係るプログラマブル可変長符号処理回路の実施の一形態について説明する。
実施の形態１．
この発明に係るプログラマブル可変長符号処理回路は、例えばＩＳＯ  ＭＰＥＧ−４やＣＣＩＴＴ  Ｈ．２６１などのＤＣＴを用いた画像符号化および復号化を実現する装置において、動きベクトルやＤＣＴ係数などの符号化パラメータを固定長または可変長の符号語に変換し、規定されたシンタックスに従ったビットストリームを生成する可変長符号化処理と、入力したビットストリームを、規定されたシンタックスに従って解析し、固定長または可変長の符号語から符号化パラメータを復元する可変長復号化処理とを実現するものであり、さらに内部に命令デコーダを備えたプログラミング可能な可変長符号処理回路である。
【００１０】
図１に示すように本発明に係るプログラマブル可変長符号処理回路は、プログラムを格納する命令メモリ１、命令メモリ１から読み出したプログラムの進行を制御するプログラム制御部２、命令メモリ１から読み出した命令を解読し内部の制御信号を出力する命令デコード部３、レジスタファイルと算術論理演算器とを備えた算術論理演算部４、外部と符号化パラメータの入出力を行うパラメータ入出力部５、一時的にデータを格納するための作業用メモリ６、作業用メモリ６へのアクセスを制御する作業用メモリ制御部７、ビットストリームデータおよびＤＣＴ係数データの入出力を制御するデータ入出力制御部８、ＤＣＴ係数データの０ラン長を検出または復元するスキャン変換部９、０ラン長と０で無いＤＣＴ係数データとを可変長または固定長の符号語へ変換するＤＣＴ係数符号化部１０、符号語と符号長とを入力し符号語をある一定ビット長単位に結合し、ビットストリームとして出力するストリーム出力部１１、ビットストリームをある一定ビット長単位で入力し、ビット単位で順方向にシフト可能なストリーム入力部１２、可変長または固定長の符号語を復号し、０ラン長および０で無いＤＣＴ係数データを出力するＤＣＴ係数復号化部１３で構成される。
【００１１】
図２はプログラマブル可変長符号処理回路の命令の一部を表すテーブルである。例えばニーモニックとしてｍｏｖｅがあり、その機能はレジスタ間データ転送である。その他のニーモニックとその機能も図２に示すとおりである。
【００１２】
つぎにプログラマブル可変長符号処理回路の動作について説明する。まず、図３を参照し、ＤＣＴ係数以外の符号化パラメータを符号化する動作を説明する。
はじめに符号化パラメータをパラメータ入出力部５から入力し、算術論理演算部４内のレジスタファイルに格納する（ステップＳＴ１０１）。つぎに、算術論理演算部４にて予め作業用メモリ６に格納された可変長符号化テーブルの参照アドレスを算出し、結果を算術論理演算部４内のレジスタファイルに格納する（ステップＳＴ１０２）。
【００１３】
つぎに作業用メモリ制御部７は先に算出した参照アドレスを用いて符号語と符号長とを作業用メモリ６から読み出し、算術論理演算部４内のレジスタファイルに格納する（ステップＳＴ１０３）。つぎにストリーム出力部１１に符号語と符号長とを入力し、ビットストリームの結合および出力を行う（ステップＳＴ１０４）。
【００１４】
このようにして符号化パラメータを順次符号化していく過程において、ストリーム出力部１１は、ある一定ビット長単位のビットストリームが蓄積されたらデータ入出力制御部８の転送起動信号および単位蓄積データを出力する。そしてデータ入出力制御部８は、入力した単位蓄積データを外部へ出力する。
【００１５】
つぎにＤＣＴ係数を符号化する動作を説明する。はじめにデータ入出力制御部８は外部から１ブロック分のＤＣＴ係数データを入力しスキャン変換部９内に格納する。つぎにスキャン変換部９はＤＣＴ係数データを指定された順序で走査したときの０ラン長を検出し、０ラン長を示すＲＵＮ情報と、０でないＤＣＴ係数の値を示すＬＥＶＥＬ情報と、ブロック内の最後の０でないＤＣＴ係数であることを示すＬＡＳＴ情報と、これら情報が有効であることを示すＶＡＬＩＤ情報とをＤＣＴ係数符号化部１０へ出力する。
【００１６】
ＤＣＴ係数符号化部１０はＶＡＬＩＤ情報で示された有効なＬＥＶＥＬ情報およびＲＵＮ情報およびＬＡＳＴ情報から該当する符号語および符号長を算出し、ストリーム出力部１１の起動信号と共にストリーム出力部１１へ出力する。ストリーム出力部１１およびデータ入出力制御部８は先に示したＤＣＴ係数以外の符号化パラメータの符号化動作と同様に、ある一定ビット長単位にビットストリームを結合し外部に送出する。
【００１７】
なお、ＤＣＴ係数のうち、例えばイントラＤＣ成分のように、他のＤＣＴ係数とは異なる方法で符号化する場合は、図３を参照して説明したＤＣＴ係数以外の符号化パラメータの符号化動作と同様の方法で符号化することができる。
【００１８】
つぎに、ＤＣＴ係数以外の符号化パラメータを復号化する動作について図４を参照して説明する。
はじめに算術論理演算部４はストリーム入力部１２に予め格納されたビットストリームデータから、予め作業用メモリ６に格納された可変長復号化テーブルの参照アドレスを算出し、算術論理演算部４内のレジスタファイルに格納する（ステップＳＴ２０１）。つぎに作業用メモリ制御部７は、先に算出した参照アドレスをもちいて復号結果である意味データと符号長とを作業用メモリ６から読み出し、算術論理演算部４内のレジスタファイルに格納する（ステップＳＴ２０２）。つぎに意味データをパラメータ入出力部５から出力する（ステップＳＴ２０３）。つぎにストリーム入力部１２は符号長で示されたビット長分だけ入力ビットストリームデータを順方向にシフトし、ビットストリームデータを更新する（ステップＳＴ２０４）。
【００１９】
このようにして、ＤＣＴ係数以外の符号化パラメータを順次復合化していく過程において、ストリーム入力部１２は、ある一定ビット長単位のデータがシフトされたら、データ入出力制御部８から新たな後続のビットストリームデータを入力し、同時にデータ入出力制御部８の転送起動信号を出力する。そしてデータ入出力制御部８は外部からさらにつぎの後続のビットストリームデータを入力し、内部に保持しておく。
【００２０】
つぎにＤＣＴ係数を復号化する動作を説明する。はじめにＤＣＴ係数復号化部１３は、ストリーム入力部１２のビットストリームデータから、該当するＬＥＶＥＬ情報、ＲＵＮ情報、ＬＡＳＴ情報および符号長を算出する。そしてＬＥＶＥＬ情報、ＲＵＮ情報およびＬＡＳＴ情報をＶＡＬＩＤ情報と共にスキャン変換部９へ出力すると同時に、ストリーム入力部１２の起動信号と符号長とをストリーム入力部１２へ出力し、符号化パラメータの符号化動作と同様にビットストリームデータを更新させる。ＤＣＴ係数復号化部１３は復号化エラーまたはブロック内の最後の０でない係数を検出するまでこの動作を繰り返す。
【００２１】
スキャン変換部９はＶＡＬＩＤ情報で示された有効なＬＥＶＥＬ情報、ＲＵＮ情報およびＬＡＳＴ情報から、２次元のＤＣＴデータを復元する。つぎにデータ入出力制御部８は、スキャン変換部９内のＤＣＴ係数データを読み出して外部に出力する。
【００２２】
なお、ＤＣＴ係数のうち例えばイントラＤＣ成分のように、他のＤＣＴ係数とは異なる方法で復号化する場合には、図４を参照して説明したＤＣＴ係数以外の符号化パラメータの復号化動作と同様の方法で復号化することができる。
【００２３】
作業用メモリ６は可変長符号化テーブルおよび可変長復号化テーブルの他に図２に示したｌｏａｄ命令またはｓｔｏｒｅ命令により、作業用メモリ制御部７を動作させることで、任意のデータの読み書きが可能となる。例えばこの作業用メモリ６には現在符号化中のマクロブロック番号など、プログラム制御に必要なデータを一時的に格納することができる。
【００２４】
つぎにＤＣＴ係数の符号化および復号化動作のタイミング制御方法について図５を参照して説明する。データ入出力制御部８、スキャン変換部９、ＤＣＴ係数符号化部１０およびＤＣＴ係数復号化部１３は、それぞれ動作中であることを示すＡＣＴＩＶＥ信号２０を出力する。これらＡＣＴＩＶＥ信号２０は算術論理演算部４内の内部ステータスレジスタ２１へ格納される。
【００２５】
ここで図２におけるｓｙｎｃ命令が命令メモリ１から読み出されると、命令デコード部３は、命令の引数として指定されたビットパターン２２を算術論理演算部４へ出力し、算術論理演算部４はビットパターン２２に対応した処理部が動作中である間、ＷＡＩＴ信号２３をプログラム制御部２へ出力する。プログラム制御部２は、ＷＡＩＴ信号２３が有効な間、プログラムの進行を中断する。
【００２６】
このようにして図２におけるｓｙｎｃ命令を実行することにより、ＤＣＴ符号化動作およびＤＣＴ復号化動作に要する処理サイクル数を意識することなく、ソフトウェアにてＤＣＴ符号化動作およびＤＣＴ復号化動作を順序正しく制御することができる。
【００２７】
また、ｓｙｎｃ命令はプログラム中の任意のタイミングで実行することができる。このため、例えばＤＣＴ係数符号化動作中に、算術論理演算部４にて次ブロックの転送アドレスの計算や前ブロックのビット量の累などの演算処理を実行し、結果を作業用メモリ６に格納した後、ｓｙｎｃ命令にてＤＣＴ係数符号化動作終了を待つという処理の並列化が可能である。
【００２８】
図６はＤＣＴ係数符号化動作のタイミングチャートであって、図２におけるｔｒａｎｓｄ命令とｅｎｃｒｌ命令との実行中に他の命令を並列して実行し、ｓｙｎｃ命令で処理終了まで待つ動作を記載している。内部ステータスレジスタ２１の値は、ＭＳＢからデータ入出力制御部８、ＤＣＴ係数符号化部１０、ＤＣＴ係数復号化部１３、スキャン変換部９の順に２進数で表記しており、図６における各部のＡＣＴＩＶＥ信号２０が内部ステータスレジスタ２１の値に反映されている。また、図６におけるＷＡＩＴ信号２３は、ｓｙｎｃ命令の実行によりビットパターンが入力されてから目的の命令が終了するまで有効であることを示している。
【００２９】
図７はＤＣＴ係数復号化動作のタイミングチャートであって、図２におけるｔｒａｎｓｄ命令およびｄｅｃｔｃ命令との実行中に別の命令を並列実行し、ｓｙｎｃ命令で処理終了まで待つ動作を記述している。
【００３０】
【発明の効果】
以上のように、本発明のプログラマブル可変長符号処理回路によれば、ＤＣＴ係数の可変長符号化処理および可変長復号化処理を連続的に処理することができ、なおかつ並行して算術論理演算処理や作業用メモリアクセス処理や分岐命令を実行することができるため、可変長符号化処理、および可変長復号化処理を高速に処理することが可能となる。
【図面の簡単な説明】
【図１】本発明のプログラマブル可変長符号処理回路の構成を示すブロック図である。
【図２】プログラマブル可変長符号処理回路の命令の一部を示すテーブルである。
【図３】プログラマブル可変長符号処理回路のＤＣＴ係数以外の符号化パラメータの符号化動作を説明するためのフローチャートである。
【図４】プログラマブル可変長符号処理回路のＤＣＴ係数以外の復号化パラメータの復号化動作を説明するためのフローチャートである。
【図５】プログラマブル可変長符号処理回路の算術論理演算部内の一部を示すブロック図である。
【図６】プログラマブル可変長符号処理回路のＤＣＴ係数符号化動作のタイミングチャートである。
【図７】プログラマブル可変長符号処理回路のＤＣＴ係数復号化動作のタイミングチャートである。
【符号の説明】
１  命令メモリ、２  プログラム制御部、３  命令デコード部、４  算術論理演算部、５  パラメータ入出力部、６  作業用メモリ、７  作業用メモリ制御部、８  データ入出力制御部、９  スキャン変換部、１０  ＤＣＴ係数符号化部、１１  ストリーム出力部、１２  ストリーム入力部、１３  ＤＣＴ係数復号化部、２０  ＡＣＴＩＶＥ信号、２１  内部ステータスレジスタ、２２  ビットパターン、２３  ＷＡＩＴ信号。
【図１】
2004356744.tif 000003
【図２】
2004356744.tif 000004
【図３】
2004356744.tif 000005
【図４】
2004356744.tif 000006
【図５】
2004356744.tif 000007
【図６】
2004356744.tif 000008
【図７】
2004356744.tif 000009