(57)【特許請求の範囲】
【請求項１】
画像データに対して冗長度を削減する符号化処理を施した符号化データを出力する符号化処理装置において、
上記画像データに施す符号化処理において算出される第１の符号化情報と、上記第１の符号化情報の発生頻度に応じて符号長を割り当てて可変長符号化処理を施した第２の符号化情報とを記憶する第１の記憶手段と、
上記第１の符号化情報及び上記第２の符号化情報の対応関係を示すテーブルを格納する第２の記憶手段と、
上記第１の記憶手段に記憶された第１の符号化情報を読み出し、上記第２の記憶手段が格納するテーブルを検索することによって上記第２の符号化情報を算出して該第１の記憶手段に記憶する算術手段と、
上記算術手段が過去に上記第１の記憶手段から読み出した第１の符号化情報と、該第１の符号化情報から算出した上記第２の符号化情報とを対応付けて記憶する第３の記憶手段と、
上記第３の記憶手段に記憶された情報を参照して、上記算術手段により上記第１の記憶手段から読み出された第１の符号化情報と同じ情報が上記第３の記憶手段に記憶されているとき、該第１の符号化情報に対応付けられた上記第２の符号化情報を該第３の記憶手段から読み出して該第１の記憶手段に記憶する第１の制御手段と、
上記算術手段が上記第１の記憶手段から読み出した第１の符号化情報から上記第２の符号化情報を算出したとき、該第１の符号化情報と該第２の符号化情報とを対応付けて上記第３の記憶手段に記憶する第２の制御手段と、
上記第１の制御手段によって過去に上記第３の記憶手段から読み出された上記第２の符号化情報の履歴情報を記憶する履歴記憶手段とを備え、
上記第３の記憶手段は、上記画像データの量子化値を複数の領域に分割して、各領域で発生しやすい上記第１の符号化情報をグループ分けして記憶し、
上記算術手段は、上記第１の記憶手段から読み出した第１の符号化情報から算出される第２の符号化情報が上記第３の記憶手段に記憶されていないときにのみ、上記第２の記憶手段に記憶されたテーブルを検索して該第２の符号化情報を算出する処理を行い、
上記履歴記憶手段は、上記履歴情報として、上記算術手段により上記第１の記憶手段から読み出された上記第１の符号化情報に対応した上記第２の符号化情報が上記第３の記憶手段から読み出された累積回数を示すヒット数と、該ヒット数を、該第２の符号化情報が該第３の記憶手段から参照された合計回数で除したヒット率とを記憶し、さらに、現在処理対象のマクロブロックの量子化値と該第３の記憶手段が記憶しているグループに係る量子化値との条件が一致しているときには、該グループの情報に対応するヒット率を１倍よりも大きくなるように設定し、
上記第２の制御手段は、上記算術手段が上記第１の記憶手段から読み出した第１の符号化情報から算出した第２の符号化情報を記憶する記憶容量が上記第３の記憶手段にないとき、上記履歴記憶手段に記憶されたヒット率が最も小さい第２の符号化情報を該第３の記憶手段から削除して、上記算術手段により算出した第２の符号化情報を記憶する符号化処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを符号化する符号化処理装置に関するものである。
【背景技術】
【０００２】
ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）やＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）など符号化方式に準拠して画像データを符号化する符号化処理における可変長符号化処理では、可変長符号テーブルを参照することにより、ビットストリームからシンタックスを生成する。例えば、符号化された画像データの離散コサイン変換（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ：ＤＣＴ）係数を可変長符号化する処理においては、マクロブロックレベルのシンタックスに対して行う処理であるため可変長符号テーブルのサイズが大きくなり探索処理時間も膨大となる。特に、このような検索処理を汎用の演算プロセッサで実行した場合には、並列して検索処理を行うことができずキャッシュに格納した可変長符号表から順次探索するため、処理サイクル数が増大してしまう。
【０００３】
復号処理における可変長符号テーブルの探索時間を低減するため、特許文献１には、可変長復号処理の対象ビットストリームの先頭から連続する「１」の個数、又は「０」の個数により符号化テーブルを分割することで探索処理の高速化を図る復号処理装置が記載されている。
【０００４】
しかしながら、上述した特許文献１に記載された復号処理装置では、予め与えられたハフマン符号表に対して、まず対象ビットストリームの先頭から連続する「１」の個数又は「０」の個数を求め、求めた値をアドレスとして第１のテーブルを参照し、さらに参照して得られた情報を用いて第２のテーブルを参照して、可変長符号ビット列をランレングスとレベルとに対応させる処理ステップを行う必要がある。
【０００５】
このような処理ステップを汎用のプロセッサで行う場合には、１組のランレングスとレベルに対する処理に、例えば数十サイクルの処理時間を要する。このように、マクロブロック単位のシンタックスに従った処理においては、ランレングスとレベルに関する探索処理の占める割合が比較的大きい。このため、高解像度の画像データに対して符号化処理を行う場合、可変長符号化処理以外の処理も行う汎用的なプロセッサでは、リアルタイムで符号化処理を行うことが困難になる。
【０００６】
また、可変長符号化処理以外にも、符号化処理においては、中間処理段階で算出される符号化情報の入出力関係を対応付けたテーブルを検索することによって符号化情報を算出する処理工程がある。そこで、汎用的なプロセッサでは、リアルタイムに符号化処理及び復号処理を行うため、上述したような探索処理の処理時間の低減が望まれる。
【０００７】
【特許文献１】特開平６―１５２９８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、このような実情に鑑みて提案されたものであり、画像データを符号化する符号化処理において、所定のテーブルを検索することによって符号化情報を算出する検索処理の処理時間を低減する符号化処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決するための手段として、本発明に係る符号化処理装置は、画像データに対して冗長度を削減する符号化処理を施した符号化データを出力する符号化処理装置であって、上記画像データに施す符号化処理において算出される第１の符号化情報と、上記第１の符号化情報の発生頻度に応じて符号長を割り当てて可変長符号化処理を施した第２の符号化情報とを記憶する第１の記憶手段と、上記第１の符号化情報及び上記第２の符号化情報の対応関係を示すテーブルを格納する第２の記憶手段と、上記第１の記憶手段に記憶された第１の符号化情報を読み出し、上記第２の記憶手段が格納するテーブルを検索することによって上記第２の符号化情報を算出して該第１の記憶手段に記憶する算術手段と、上記算術手段が過去に上記第１の記憶手段から読み出した第１の符号化情報と、該第１の符号化情報から算出した上記第２の符号化情報とを対応付けて記憶する第３の記憶手段と、上記第３の記憶手段に記憶された情報を参照して、上記算術手段により上記第１の記憶手段から読み出された第１の符号化情報と同じ情報が上記第３の記憶手段に記憶されているとき、該第１の符号化情報に対応付けられた上記第２の符号化情報を該第３の記憶手段から読み出して該第１の記憶手段に記憶する第１の制御手段と、上記算術手段が上記第１の記憶手段から読み出した第１の符号化情報から上記第２の符号化情報を算出したとき、該第１の符号化情報と該第２の符号化情報とを対応付けて上記第３の記憶手段に記憶する第２の制御手段と、上記第１の制御手段によって過去に上記第３の記憶手段から読み出された上記第２の符号化情報の履歴情報を記憶する履歴記憶手段とを備え、上記第３の記憶手段は、上記画像データの量子化値を複数の領域に分割して、各領域で発生しやすい上記第１の符号化情報をグループ分けして記憶し、上記算術手段は、上記第１の記憶手段から読み出した第１の符号化情報から算出される第２の符号化情報が上記第３の記憶手段に記憶されていないときにのみ、上記第２の記憶手段に記憶されたテーブルを検索して該第２の符号化情報を算出する処理を行い、上記履歴記憶手段は、上記履歴情報として、上記算術手段により上記第１の記憶手段から読み出された上記第１の符号化情報に対応した上記第２の符号化情報が上記第３の記憶手段から読み出された累積回数を示すヒット数と、該ヒット数を、該第２の符号化情報が該第３の記憶手段から参照された合計回数で除したヒット率とを記憶し、さらに、現在処理対象のマクロブロックの量子化値と該第３の記憶手段が記憶しているグループに係る量子化値との条件が一致しているときには、該グループの情報に対応するヒット率を１倍よりも大きくなるように設定し、上記第２の制御手段は、上記算術手段が上記第１の記憶手段から読み出した第１の符号化情報から算出した第２の符号化情報を記憶する記憶容量が上記第３の記憶手段にないとき、上記履歴記憶手段に記憶されたヒット率が最も小さい第２の符号化情報を該第３の記憶手段から削除して、該上記算術手段により算出した第２の符号化情報を記憶する。
【発明の効果】
【００１１】
本発明に係る符号化処理装置は、算術手段が、第１の記憶手段から読み出した第１の符号化情報から算出される第２の符号化情報が第３の記憶手段に記憶されていないときにのみ、第２の記憶手段に記憶されたテーブルを検索して第２の符号化情報を算出する処理を行うので、テーブルを直接検索することによって符号化情報を算出する処理を行う頻度を低減して第１の符号化情報から第２の符号化情報を算出する処理全体に係る処理時間を低減することができる。
また、本発明に係る符号化処理装置は、履歴記憶手段が、現在処理対象のマクロブロックの量子化値と第３の記憶手段が記憶しているグループに係る量子化値との条件が一致しているときには、グループの情報に対応するヒット率を１倍よりも大きくなるように設定することで、量子化値に応じて発生しやすい可変長符号情報を履歴記憶手段にできるだけ残しやすいようにして、算術手段による検索処理を行う頻度をより低減することができる。
【発明を実施するための最良の形態】
【００１３】
本発明が適用された画像処理装置は、画像データを符号化する符号化処理、及び、符号化された画像データを復号する復号処理を行う装置である。以下では、この画像処理装置の具体例として、図１に示すような画像処理装置１を用いて、本発明を実施するための最良の形態について説明する。
【００１４】
画像処理装置１は、後述するような汎用性の演算プロセッサを備えるコンピュータであって、演算処理を行う演算部２と、画像データなどのデータを記憶するハードディスク３と、演算部２が演算処理を行うデータを一時的に記憶するメインメモリ４と、外部から画像データなどを入出力するためのインタフェース５とを備える。
【００１５】
演算部２は、画像データに対して符号化処理及び復号処理を行うためのプログラムを例えばハードディスク３からメインメモリ４に読み出して実行する。
【００１６】
ハードディスク３は、インタフェース５から入力され演算部２により符号化処理が施された画像データを記憶する。また、ハードディスク３は、符号化処理及び復号処理を行うためのプログラムを予め記憶している。
【００１７】
メインメモリ４は、演算部２が演算処理を行うデータを一時的に記憶する。
【００１８】
インタフェース５は、演算部２による制御命令に従って、外部から画像データを取り込んで、取り込んだ画像データをハードディスク３及びメインメモリ４に供給する。
【００１９】
以上のような構成からなる画像処理装置１では、デジタルカメラなどによって撮像された画像データをインタフェース５から取り込んで、取り込んだ画像データに対してＪＰＥＧやＭＰＥＧ等の符号化方式に従って演算部２が符号化処理を施した符号化データをハードディスク３などに記憶する処理を行う。また、画像処理装置１では、ハードディスク３及びインタフェース５などから取り込まれる符号化された画像データに対して演算部２が復号処理を施し、復号した画像データをディスプレイなどの外部表示装置に出力する。
【００２０】
画像処理装置１の演算部２が行う符号化処理及び復号処理においては、例えば後述する可変長符号化及び可変長復号処理などの中間処理段階で算出される情報の入出力関係を対応付けたテーブルを検索ことによって符号化情報及び復号情報を算出する工程がある。本実施形態に係る画像処理装置１では、上述した検索処理の処理時間を低減するため、演算部２が次のような構成を有している。
【００２１】
すなわち、演算部２は、図２に示すように、符号化処理及び復号処理に係る演算処理を行う算術器１１と、算術器１１が行う命令コードを一時的に記憶する命令キャッシュ１２と、算術器１１で算出されたデータを一時的に記憶する汎用レジスタ１３と、後述する可変長符号表などを格納するデータキャッシュ１４と、データキャッシュ１４のアドレスに格納されるデータを参照するための処理を行うアドレスデコーダ１５とを備え、これらの各部をバス１６を介して接続している。
【００２２】
算術器１１は、汎用レジスタ１３からデータを読み出して、読み出したデータに対して所定の演算処理を施し、その演算処理結果を汎用レジスタ１３に記憶する。また、算術器１１は、命令コードを生成して、生成した命令コードを命令キャッシュ１２に一時的に記憶する。
【００２３】
命令キャッシュ１２は、算術器１１から供給される命令コードを一時的に記憶するとともに記憶した命令コードを算術器１１に供給する。
【００２４】
汎用レジスタ１３は、算術器１１が演算処理を行うデータと、算術器１１が演算処理を行った演算結果とを記憶する。
【００２５】
データキャッシュ１４は、可変長符号化処理などの符号化処理や復号処理に係る中間処理段階で算出される入出力関係に係る情報をアドレス番号に従って管理したテーブルを記憶する。また、データキャッシュ１４は、後述するアドレスデコーダ１５によって参照されたアドレス番号の情報を読み出して算術器１１に供給する。
【００２６】
アドレスデコーダ１５は、算術器１１による制御命令が示すアドレス番号にデコード処理を施し、データキャッシュ１４のアドレスに記憶されたデータを読み出す処理を行う。
【００２７】
また、演算部２は、上述した構成によってハードディスク３などから読み出したプログラムを実行することで符号化処理及び復号処理を行うが、上述したように処理時間の低減を図るために、データメモリ部２１と、比較メモリ出力制御部２２と、履歴メモリ部２３と、ライン選択メモリ入力制御部２４とを備えている。
【００２８】
データメモリ部２１は、複数のラインメモリからなり、各ラインメモリに、算術器１１が汎用レジスタ１３から入力した入力データと、この入力データに対してアドレスデコーダ１５を介してデータキャッシュ１４を参照することで得られる出力データとを対応付けた入出力データを記憶する。
【００２９】
比較メモリ出力制御部２２は、データメモリ部２１に記憶されている算術器１１が過去に演算処理をした入力データ群と、現在この算術器１１が演算処理対象としている入力データとを比較して、この比較結果に応じてデータメモリ部２１に記憶されている出力データを読み出す処理を行う。
【００３０】
また、比較メモリ出力制御部２２は、データメモリ部２１に記憶されている複数の入力データと出力データとを対応付けた情報を並列して参照する。比較メモリ出力制御部２２は、算術器１１が現在処理している入力データを汎用レジスタ１３から読み出して、この読み出した入力データと、参照した複数のラインメモリに記憶されている入力データと一致するラインが存在するかを比較する。すなわち、比較メモリ出力制御部２２は、算術器１１が現在処理している入力データにヒットする入出力データがデータメモリ部２１に記憶されているかを判断する。
【００３１】
履歴メモリ部２３は、比較メモリ出力制御部２２による比較結果を履歴情報として記憶する。具体的に、履歴メモリ部２３は、算術器１１が現在処理している入力データにヒットする入出力データとして出力データが読み出された累積回数を示すヒット数と、このヒット数を参照された合計回数で除したヒット率とを、データメモリ部２１に記憶された各入出力データ毎に履歴情報として記憶する。
【００３２】
ライン選択メモリ入力制御部２４は、算術器１１による演算処理に応じて、データメモリ部２１に記憶されているデータを更新する。
【００３３】
また、演算部２は、汎用レジスタ１３に加えて、算術器１１によって算出される情報のうち、ユーザが定義した種類の情報を専用して管理するユーザレジスタ１７を備えている。
【００３４】
以上のような構成を有する演算部２では、ハードディスク３などに記憶されたプログラムを読み出して、以下に示すようにして符号化処理及び復号処理を実行する。
【００３５】
次に、符号化処理に係る演算部２の動作について説明する。
【００３６】
演算部２は、例えば図３に示すようなフローチャートに従って、画像データから符号化データを生成する。以下に示す符号化処理を開始するため、演算部２は、符号化対象となる画像データをメインメモリ４などに読み出して、記憶した画像データをシンタックスに従ってマクロブロック単位に分割して管理しているものとする。
【００３７】
ステップＳ１において、演算部２は、処理対象となる画像データのマクロブロック（以下、カレントマクロブロックという。）と、この画像データの参照画像となる画像データのマクロブロック（以下、参照マクロブロックという。）を、例えばメインメモリ４から汎用レジスタ１３に読み出す処理を行う。
【００３８】
ステップＳ２において、演算部２は、カレントマクロブロックと参照マクロブロックとにより、カレントマクロブロックに係る動き検出を行う。すなわち、演算部２は、カレントマクロブロックに対応する参照マクロブロックの画像探索を行い、参照マクロブロックの参照位置を確定する。
【００３９】
ステップＳ３において、演算部２は、カレントマクロブロックと、ステップＳ２で参照位置を確定した参照マクロブロックとにより、画素間を半分に分割した分解精度の参照位置を求めて、カレントマクロブロックに係る差分画像を生成する。また、演算部２は、この差分画像を生成する処理を行うとともに、動きベクトルに係る情報も生成する。
【００４０】
ステップＳ４において、演算部２は、ステップＳ３で生成された差分画像に係る情報に対してＤＣＴ処理及び量子化処理を施して、量子化されたＤＣＴ係数を生成する。
【００４１】
ステップＳ５において、演算部２は、動きベクトルなどのマクロブロックレベルのパラメータとともにステップＳ４で生成された量子化されたＤＣＴ係数に対して、可変長符号化処理を施す。そして、演算部２は、可変長符号化されたカレントマクロブロックレベルの符号化データを汎用レジスタ１３に記憶する。
【００４２】
ステップＳ６において、演算部２は、ステップＳ４で生成した量子化されたＤＣＴ係数に対して逆量子化処理及び逆ＤＣＴ変換処理を施す。
【００４３】
ステップＳ７において、演算部２は、次のフレーム画像を符号化する処理に用いられる参照画像データとして、ステップＳ６で復号されたカレントマクロブロックのデータを汎用レジスタ１３に記憶する。
【００４４】
ステップＳ８において、演算部２は、ステップＳ１からステップＳ６までの処理においてカレントマクロブロックとして処理したマクロブロックが、フレーム画像を構成するマクロブロックのうち最後に位置するマクロブロックであるかを判断する。演算部２は、この判断処理で、最後に位置するマクロブロックであると判断したとき本処理を終了し、最後に位置するマクロブロックではないと判断したときステップＳ１に戻る。
【００４５】
以上の処理工程のうち、次にステップＳ５に係る可変長符号化処理に関する処理工程について、図４に示すようなフローチャートを参照して詳細に説明する。
【００４６】
図４に示すフローチャートに従った処理工程の前提として、演算部２は、ステップＳ４で生成したＤＣＴ係数と動きベクトルに係る情報を、ランレングスとレベルとからなるシンタックスに従った情報として汎用レジスタ１３に記憶しているものとする。また、演算部２は、ランレングスとレベルとからなるシンタックスの発生頻度に応じて、サイズとコードとからなる符号長を割り当てた可変長符号表をデータキャッシュ１４に格納するものとする。ここで、便宜上、ランレングスとレベルとからなるシンタックスに従った情報を第１の符号化情報とし、この第１の符号化情報から算出されるサイズとコードとからなるビットストリームを第２の符号化情報とする。
【００４７】
従来の可変長符号化処理では、算術器がデータキャッシュに格納されている可変長符号表を参照して第１の符号化情報に対応する第２の符号化情報を検索する。これに対して、本実施形態に係る可変長符号化処理では、次のような処理を行うことによって、過去に処理した第１の符号化情報とこの情報から算出される第２の符号化情報とを対応付けた可変長符号情報をデータメモリ部２１に記憶して、以下に示す処理を行うことによって処理時間の低減を図る。
【００４８】
ステップＳ１１において、演算部２では、汎用レジスタ１３から、カレントマクロブロックに係る第１の符号化情報のうち、１組のランレングスとレベルとからなる第１の符号化情報を、算術器１１及び比較メモリ出力制御部２２に読み出す。
【００４９】
ステップＳ１２において、演算部２では、比較メモリ出力制御部２２が、算術器１１による過去の演算結果により得られた第１の符号化情報と第２の符号化情報とを対応付けた可変長符号情報を、例えば図５に示すように、データメモリ部２１における複数のラインメモリから参照する。そして、演算部２では、比較メモリ出力制御部２２が、ステップＳ１１で読み出した第１の符号化情報と、各ラインメモリに格納された可変長符号情報とを、複数ラインメモリ単位で同時並列に比較する。
【００５０】
ステップＳ１３において、演算部２では、比較メモリ出力制御部２２が、ステップＳ１２による比較処理において、ステップＳ１１で読み出した第１の符号化情報にヒットする可変長符号情報がデータメモリ部２１にあるかを判断する。演算部２は、この判断処理においてヒットする可変長符号情報がデータメモリ部２１にあるときステップＳ１４に進み、この判断処理においてヒットする可変長符号情報がデータメモリ部２１にないときステップＳ１５に進む。
【００５１】
ステップＳ１４において、演算部２では、比較メモリ出力制御部２２が、ステップＳ１３による比較処理においてヒットした可変長符号情報に対応する第２の符号化情報を汎用レジスタ１３に記憶するとともに、履歴メモリ部２３が記憶する履歴情報を次のように更新する。すなわち、履歴メモリ部２３は、履歴情報のうち、本処理工程において汎用レジスタ１３に記憶した第２の符号化情報に対応する可変長符号情報に関するヒット数に１を加算するとともにヒット率を更新する。そして、演算部２は、ステップＳ１７に進む。
【００５２】
ステップＳ１５において、演算部２では、算術器１１が、アドレスデコーダ１５を介してデータキャッシュ１４に格納された可変長符号表を参照することによって、ステップＳ１１で読み出された第１の符号化情報に対応する第２の符号化情報を探索して、探索した第２の符号化情報を汎用レジスタ１３に記憶してステップＳ１６に進む。
【００５３】
ステップＳ１６において、演算部２では、ライン選択メモリ入力制御部２４が、次のようにデータメモリ部２１に記憶される情報の更新を行う。すなわち、ライン選択メモリ入力制御部２４は、ステップＳ１５で算術器１１による探索処理で得られた第１の符号化情報と第２の符号化情報とを対応付けた可変長符号情報をデータメモリ部２１に記憶する。ここでデータメモリ部２１に記憶可能容量がないとき、ライン選択メモリ入力制御部２４は、履歴メモリ部２３に記憶された履歴情報に応じて、ヒット率が最も小さい履歴情報に対応する可変長符号情報をデータメモリ部２１から消去して、ステップＳ１５で算術器１１による探索処理で得られた可変長符号情報をデータメモリ部２１に記憶する。そして、演算部２は、ステップＳ１７に進む。
【００５４】
ステップＳ１７において、演算部２は、現在処理対象の第１の符号化情報が、カレントマクロブロックレベルのシンタックスに係る最後の第１の符号化情報であるかを判断する。演算部２は、この判断処理で、最後の第１の符号化情報であると判断したとき本処理工程を終了し、最後の第１の符号化情報でないと判断したときステップＳ１８に進む。
【００５５】
ステップＳ１８において、演算部２は、次に可変長符号化処理を施す第１の符号化情報を選択してステップＳ１１に戻る。
【００５６】
以上のようにして、演算部２は、ステップＳ１３において、汎用レジスタ１３から読み出した第１の符号化情報から算出される第２の符号化情報がデータメモリ部２１に記憶されていないと判断されたときにのみ、ステップＳ１５において、算術器１１が、データキャッシュ１４に格納された可変長符号表を検索して第２の符号化情報を算出して汎用レジスタ１３に記憶する。このため、演算部２は、可変長符号表を直接探索することによって第２の符号化情報を算出する処理を行う頻度を低減して、第１の符号化情報から第２の符号化情報を算出する処理全体に係る処理時間を低減することができる。
【００５７】
また、演算部２は、ステップＳ１３の判断処理を介して、ステップＳ１４とステップＳ１５との何れか一方が行われるので、ステップＳ１１からステップＳ１８までの処理全体が１サイクルで実装されるので、従来に比べて可逆符号化処理で行われるサイクル数を低減することができる。
【００５８】
特に、ラインメモリの数が８のデータメモリ部２１を用いて、自然画像を画像データとして符号化処理を行った場合、演算部２は、約５０％のヒット率でステップＳ１３を介してステップＳ１４の処理を行うことができる。すなわち、この場合、演算部２は、従来に比べて、ステップＳ１５に係る通常の可変長符号化処理を行う回数を約半分に低減することができる。
【００５９】
このようにして演算部２が探索処理工程を削減できるのは、自然画像の画像データの冗長性によって過去に処理したデータと同じデータが将来処理対象となる可能性が比較的高いからである。
【００６０】
また、演算部２では、処理対象となるデータの量子化値に応じて、発生頻度の高い第１の符号化情報を分類してデータメモリ部２１に記憶される可変長符号情報を管理するようにしてもよい。データメモリ部２１は、例えば、図６に示すように、量子化値が２０より大きいときに発生しやすい第１の符号化情報を含む可変長符号情報をグループ１に割り当て、量子化値が１６より大きく２０以下であるときに発生しやすい第１の符号化情報を含む可変長符号情報をグループ２に割り当てて管理する。そして、履歴メモリ部２３は、現在処理対象のマクロブロックの量子化値とグループに係る量子化値との条件が一致しているとき、履歴メモリ部２３が記憶している履歴情報に係るヒット率を例えば２倍に設定し、現在処理対象のマクロブロックの量子化値とグループの量子化値とが一致しないとき、履歴メモリ部２３が記憶している履歴情報に係るヒット率を変更しないようにする。このようにすることで、演算部２では、量子化値に応じて発生しやすい可変長符号情報をデータメモリ部２１にできるだけ残しやすいようにして、ステップＳ１３からステップＳ１４に進む頻度を向上させることができ、算術器１１による検索処理を行う頻度をより低減することで符号化処理に係る処理時間を低減することができる。
【００６１】
なお、演算部２は、上述した可変長符号化処理以外にも、符号化処理に係る中間処理段階で算出される情報を第１の符号化情報とし、この第１の符号化情報から算出される情報を第２の符号化情報として、これらの第１の符号化情報と第２の符号化情報とを対応付けたテーブルを探索することによって、第２の符号化情報を算出する処理工程にも上述した図４に示すようなフローチャートに従った処理を適用するようにしてもよい。
【００６２】
次に、復号処理に係る演算部２の動作について説明する。
【００６３】
演算部２は、例えば図７に示すようなフローチャートに従って、符号化された画像データを復号する。以下に示す復号処理を開始するため、演算部２には、復号処理の対象となる符号化データに係るビットストリームをマクロブロック単位で管理するようにメインメモリ４などに読み出す。
【００６４】
ステップＳ２１において、演算部２は、復号対象のカレントマクロブロックのビットストリームに対して可変長復号処理を施して、量子化されたＤＣＴ係数と動きベクトルを生成する。
【００６５】
ステップＳ２２において、演算部２は、ステップＳ２１で生成した量子化されたＤＣＴ係数に対して、逆量子化処理及び逆ＤＣＴ変換処理を施して、差分画像データを生成する。
【００６６】
ステップＳ２３において、演算部２は、ステップＳ２１で生成された動きベクトルに応じて、メインメモリ４などから参照画像となる画像データのマクロブロックを読み出す。
【００６７】
ステップＳ２４において、演算部２は、ステップＳ２２で生成した差分画像データと、ステップＳ２３で読み出した参照画像となる画像データとに対して動き補償処理を施して、マクロブロックの復号画像を生成する。
【００６８】
ステップＳ２４において、演算部２は、ステップＳ２３で生成したマクロブロックの復号画像をメインメモリ４などに記憶する。
【００６９】
ステップＳ２５において、演算部２は、ステップＳ２１からステップＳ２４までの処理においてカレントマクロブロックとして処理したマクロブロックが、フレーム画像を構成するマクロブロックのうち最後に位置するマクロブロックであるか判断する。演算部２は、この判断処理で、最後に位置するマクロブロックであると判断したとき本処理を終了し、最後に位置するマクロブロックではないと判断したときステップＳ２１に戻る。
【００７０】
以上の処理工程のうち、次にステップＳ２１に係る可変長復号処理に関する処理工程について、図８に示すようなフローチャートを参照して詳細に説明する。
【００７１】
図８に示すフローチャートに従った処理工程の前提として、演算部２では、汎用レジスタ１３にカレントマクロブロックレベルのシンタックスに係るビットストリームが記憶されているものとする。また、演算部２では、ビットストリームを構成するサイズとコードとからなる情報を、ランレングスとレベルとからなるシンタックスに従った情報に復号するための可変長復号表をデータキャッシュ１４に格納するものとする。ここで、便宜上、上述したサイズとコードとから構成される情報を第１の復号情報とし、この第１の復号情報から算出されるランレングスとレベルとからなるシンタックスに従った情報を第２の復号情報とする。
【００７２】
ステップＳ３１において、演算部２では、汎用レジスタ１３から、カレントマクロブロックに係る第１の復号情報のうち、１組のサイズとコードとからなる第１の復号情報を、算術器１１及び比較メモリ出力制御部２２に読み出す。
【００７３】
ステップＳ３２において、演算部２では、比較メモリ出力制御部２２が、算術器１１による過去の演算処理により得られた第１の復号情報と第２の復号情報とを対応付けた可変長復号情報を、データメモリ部２１における複数のラインメモリから参照する。そして、演算部２では、比較メモリ出力制御部２２が、ステップＳ３１で読み出した第１の復号情報と、各ラインメモリに格納された可変長復号情報とを、複数ラインメモリ単位で同時並列に比較する。具体的に、比較メモリ出力制御部２２は、ステップＳ３１で読み出したビットストリームからサイズ分のビットを取り出し、取り出したビット列とコードとを比較する。
【００７４】
ステップＳ３３において、演算部２では、比較メモリ出力制御部２２が、ステップＳ３２による比較処理において、ステップＳ３１で読み出した第１の復号情報にヒットする可変長復号情報がデータメモリ部２１にあるかを判断する。演算部２は、この判断処理において、ヒットする可変長復号情報がデータメモリ部２１にあるときステップＳ３４に進み、この判断処理においてヒットする可変長復号情報がデータメモリ部２１にないときステップＳ３５に進む。
【００７５】
ステップＳ３４において、演算部２では、比較メモリ出力制御部２２が、ステップＳ３３による比較処理においてヒットした可変長復号情報に対応する第２の復号情報を汎用レジスタ１３に記憶するとともに、履歴メモリ部２３が記憶する履歴情報を次のように更新する。すなわち、履歴メモリ部２３は、履歴情報のうち、本処理工程において汎用レジスタ１３に記憶した第２の復号情報に対応する可変長復号情報に関するヒット数に１を加算するとともにヒット率を更新する。そして、演算部２は、ステップＳ３７に進む。
【００７６】
ステップＳ３５において、演算部２では、算術器１１が、アドレスデコーダ１５を介してデータキャッシュ１４に格納された可変長復号表を参照することによって、ステップＳ３１で読み出された第１の復号情報に対応する第２の復号情報を探索して、探索した第２の復号情報を汎用レジスタ１３に記憶してステップＳ３６に進む。
【００７７】
ステップＳ３６において、演算部２では、ライン選択メモリ入力制御部２４が、次のようにデータメモリ部２１に記憶される情報の更新を行う。すなわち、ライン選択メモリ入力制御部２４は、ステップＳ３５で算術器１１による探索処理で得られた第１の復号情報と第２の復号情報とを対応付けた可変長復号情報をデータメモリ部２１に記憶する。ここでデータメモリ部２１に記憶可能容量がないとき、ライン選択メモリ入力制御部２４は、履歴メモリ部２３に記憶された履歴情報に応じて、ヒット率が最も小さい履歴情報に対応する可変長復号情報をデータメモリ部２１から消去して、ステップＳ３５で算術器１１による探索処理で得られた可変長復号情報をデータメモリ部２１に記憶する。そして、演算部２は、ステップＳ３７に進む。
【００７８】
ステップＳ３７において、演算部２は、現在処理対象の第１の復号情報が、カレントマクロブロックレベルのシンタックスに係る最後の第１の復号化情報であるかを判断する。演算部２は、この判断処理で、最後の第１の復号情報であると判断したとき本処理工程を終了し、最後の第１の復号情報でないと判断したときステップＳ３８に進む。
【００７９】
ステップＳ３８において、演算部２は、次に可変長復号処理を施す第１の復号情報を選択してステップＳ３１に戻る。
【００８０】
以上のようにして、演算部２は、ステップＳ３３において、汎用レジスタ１３から読み出した第１の復号情報から算出される第２の復号情報がデータメモリ部２１に記憶されていないと判断されたときにのみ、ステップＳ３５において、算術器１１が、データキャッシュ１４に格納された可変長復号表を検索して第２の復号情報を算出して汎用レジスタ１３に記憶する。このため、演算部２は、可変長復号表を直接探索することによって第２の復号情報を算出する処理を行う頻度を低減して、第１の復号情報から第２の復号情報を算出する処理全体に係る処理時間を低減することができる。
【００８１】
また、演算部２は、ステップＳ３３の判断処理を介して、ステップＳ３４とステップＳ３５との何れか一方が行われるので、ステップＳ３１からステップＳ３８までの処理全体が１サイクルで実装されるので、従来に比べて可逆復号処理で行われるサイクル数を低減することができる。
【００８２】
なお、演算部２は、上述した可変長復号処理以外にも、復号処理に係る中間処理段階で算出される情報を第１の復号情報とし、この第１の復号情報から算出される情報を第２の復号情報とし、これらの第１の復号情報と第２の復号情報とを対応付けたテーブルを探索することによって第２の復号情報を算出する処理工程にも、上述した図８に示すようなフローチャートに従った処理を適用するようにしてもよい。以下では、上述した復号処理のうちステップＳ２２で行われる逆量子化処理に適用した具体例について、図９に示すようなフローチャートを参照して詳細に説明する。
【００８３】
図９に示すフローチャートに従った処理工程の前提として、演算部２は、量子化された係数と量子化値とを汎用レジスタ１３に画素単位で記憶しているものとする。また、以下に示す処理では、量子化された係数と量子化値とからなる１組の情報を第１の復号情報とし、逆量子化処理が施された差分画素データを第２の復号情報とする。
【００８４】
ステップＳ４１において、演算部２では、処理対象となる画素に係る第１の復号情報を、汎用レジスタ１３から、算術器１１及び比較メモリ出力制御部２２に読み出す。
【００８５】
ステップＳ４２において、演算部２では、比較メモリ出力制御部２２が、算術器１１による過去の演算結果により得られた第１の復号情報と第２の復号情報とを対応付けた逆量子化情報を、例えば図１０に示すようにデータメモリ部２１における複数のラインメモリから参照する。そして、演算部２では、比較メモリ出力制御部２２が、ステップＳ４１で読み出した第１の復号情報と、各ラインメモリに格納された逆量子化情報とを複数ラインメモリ単位で同時並列に比較する。
【００８６】
ステップＳ４３において、演算部２では、比較メモリ出力制御部２２が、ステップＳ４２による比較処理において、ステップＳ４１で読み出した第１の復号情報にヒットする逆量子化情報がデータメモリ部２１にあるかを判断する。演算部２は、この判断処理において、ヒットする逆量子化情報がデータメモリ部２１にあるときステップＳ４４に進み、この判断処理においてヒットする可変長符号情報がデータメモリ部２１にないときステップＳ４５に進む。
【００８７】
ステップＳ４４において、演算部２では、比較メモリ出力制御部２２が、ステップＳ４３による比較処理においてヒットした逆量子化情報に対応する第２の復号情報を汎用レジスタ１３に記憶するとともに、履歴メモリ部２３が記憶する履歴情報を次のように更新する。すなわち、履歴メモリ部２３は、履歴情報のうち、本処理工程において汎用レジスタ１３に記憶した第２の復号情報に対応する逆量子化情報に関するヒット数に１を加算するとともにヒット率を更新する。そして、演算部２は、ステップＳ４７に進む。
【００８８】
ステップＳ４５において、演算部２では、算術器１１が、ステップＳ４１で読み出された第１の復号情報から、下記式により第２の復号情報を算出して汎用レジスタ１３に記憶してステップＳ４６に進む。
【００８９】
Ｆ＝（（（ＱＦ×２）＋Ｓｉｇｎ（ＱＦ））×ＱＳ）／３２
【００９０】
ここで、ＱＦは、第１の復号情報に含まれる量子化された係数である。また、ＱＳは、第１の復号情報に含まれる量子化値である。また、Ｆは、逆量子化された差分画素データである。
【００９１】
ステップＳ４６において、演算部２では、ライン選択メモリ入力制御部２４が、ステップＳ４５で算術器１１による算出処理で得られた第１の復号情報と第２の復号情報とを対応付けた逆量子化情報をデータメモリ部２１に記憶する。ここでデータメモリ部２１に記憶可能容量がないとき、ライン選択メモリ入力制御部２４は、履歴メモリ部２３に記憶された履歴情報に応じて、ヒット率が最も小さい履歴情報に対応する可変長符号情報をデータメモリ部２１から消去して、ステップＳ４５で算術器１１による算出処理で得られた逆量子化情報をデータメモリ部２１に記憶する。そして、演算部２は、ステップＳ４７に進む。
【００９２】
ステップＳ４７において、演算部２は、現在処理対象の第１の復号情報が、フレーム画像を構成する最後に位置する画素に係る第１の復号情報であるかを判断する。演算部２は、この判断処理で、最後の第１の復号情報であると判断したとき本処理工程を終了し、最後の第１の復号情報でないと判断したときステップＳ４８に進む。
【００９３】
ステップＳ４８において、演算部２は、次に逆量子化処理を施す第１の復号情報を選択してステップＳ４１に戻る。
【００９４】
以上のようにして、演算部２は、ステップＳ４３において、汎用レジスタ１３から読み出した第１の復号情報から算出される第２の復号情報がデータメモリ部２１に記憶されていないと判断されたときにのみ、ステップＳ４５において、算術器１１が、第１の復号情報から第２の復号情報を算出して汎用レジスタ１３に記憶する。このため、演算部２は量子化された係数と量子化値とに対応する差分画素データを算出するステップＳ４５に係る算出処理工程を行う頻度を低減して、逆量子化処理全体に係る処理時間を削減することができる。
【００９５】
なお、本発明は、以上の実施形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００９６】
【図１】画像処理装置の全体構成を示すブロック図である。
【図２】演算部の全体構成を示すブロック図である。
【図３】符号化処理の処理工程の説明に供するフローチャートである。
【図４】可変長符号化処理の処理工程の説明に供するフローチャートである。
【図５】データメモリ部に記憶される可変長符号情報を示す図である。
【図６】データメモリ部に記憶される可変長符号情報を示す図である。
【図７】復号処理の処理工程の説明に供するフローチャートである。
【図８】可変長復号処理の処理工程の説明に供するフローチャートである。
【図９】逆量子化処理の処理工程の説明に供するフローチャートである。
【図１０】逆量子化処理時においてデータメモリ部に記憶される入出力情報を示す図である。
【符号の説明】
【００９７】
１  画像処理装置、２  演算部、３  ハードディスク、４  メインメモリ、５  インタフェース、１１  算術器、１２  命令キャッシュ、１３  汎用レジスタ、１４  データキャッシュ、１５  アドレスデコーダ、１６  バス、１７  ユーザレジスタ、２１  データメモリ部、２２  比較メモリ出力制御部、２３  履歴メモリ部、２４  ライン選択メモリ入力制御部
【図１】
0004631879.tif 000002
【図２】
0004631879.tif 000003
【図３】
0004631879.tif 000004
【図４】
0004631879.tif 000005
【図５】
0004631879.tif 000006
【図６】
0004631879.tif 000007
【図７】
0004631879.tif 000008
【図８】
0004631879.tif 000009
【図９】
0004631879.tif 000010
【図１０】
0004631879.tif 000011