(57)【要約】【課題】  画像データの復号化処理において、複数個の係数をできるだけ１サイクルで処理し効率化を図るための手法の提供。【解決手段】  復号化の処理に際し、有意な係数と０がペアになるように予め定めたスキャン順序により、係数を並べ替え処理を行う。さらに、周波数の分布状況から、適切なスキャン順を選択することにより、より処理の効率化を図る。【選択図】図１
2007074742.tif 000002
【特許請求の範囲】
【請求項１】
量子化直交変換係数を、逆量子化処理、スキャン順序変換処理、逆直交変換処理して画像を復号化する画像復号化装置において、
前記量子化直交変換係数を第１のスキャン順序に変換して２個以上出力する第１のスキャン変換手段と、
前記第１のスキャン変換手段により出力された２個以上の量子化直交変換係数が０であるかどうかをそれぞれ判定し、その判定結果を出力する０判定手段と、
前記２個以上の量子化直交変換係数のうち、１個以上を選択する第１の選択手段と、
前記２個以上の量子化直交変換係数に対応する２個以上の量子化閾値のうち、１個以上を選択する第２の選択手段と、
前記０判定手段の結果に応じて、前記第１の選択手段及び第２の選択手段を制御し、さらに前記０判定手段の判定結果からフォーマット信号を生成出力する制御手段と、
前記１個以上の量子化直交変換係数と、前記１個以上の量子化閾値とを用いてそれぞれ逆量子化演算処理を行う逆量子化演算手段と、
前記逆量子化演算手段から出力された直交変換係数を第２のスキャン順序に並べ替えて２個以上出力する第２のスキャン変換手段と、
を有することを特徴とする画像復号化装置。
【請求項２】
前記第２のスキャン順序が、ラスタスキャン順序であることを特徴とする請求項１に記載の画像復号化装置。
【請求項３】
前記第２のスキャン順序が、縦方向のラスタスキャン順序であることを特徴とする請求項１に記載の画像復号化装置。
【請求項４】
前記第１のスキャン順序が、偶数番目のサンプルはジグザグスキャン順序の先頭から順方向に、奇数番目のサンプルはジグザグスキャン順序の末尾から逆方向順にそれぞれ配列させた順序であることを特徴とする、請求項１乃至請求項３のいずれかに記載の画像復号化装置。
【請求項５】
前記第１のスキャン順序が、奇数番目のサンプルはジグザグスキャン順序の先頭から順方向に、偶数番目のサンプルはジグザグスキャン順序の末尾から逆方向順にそれぞれ配列させた順序であることを特徴とする、請求項１乃至請求項３のいずれかに記載の画像復号化装置。
【請求項６】
前記第１のスキャン順序が、偶数番目のサンプルはラスタスキャン順序の先頭から順方向に、奇数番目のサンプルはラスタスキャン順序の末行から順方向順にそれぞれ配列させた順序であることを特徴とする、請求項１乃至請求項３のいずれかに記載の画像復号化装置。
【請求項７】
前記第１のスキャン順序が、奇数番目のサンプルはラスタスキャン順序の先頭から順方向に、偶数番目のサンプルはラスタスキャン順序の末行から順方向順にそれぞれ配列させた順序であることを特徴とする、請求項１乃至請求項３のいずれかに記載の画像復号化装置。
【請求項８】
前記第１のスキャン順序が、偶数番目のサンプルはラスタスキャン縦方向順序の先頭から順方向に、奇数番目のサンプルはラスタスキャン縦方向順序の末列から順方向順にそれぞれ配列させた順序であることを特徴とする、請求項１乃至請求項３のいずれかに記載の画像復号化装置。
【請求項９】
前記第１のスキャン順序が、奇数番目のサンプルはラスタスキャン縦方向順序の先頭から順方向に、偶数番目のサンプルはラスタスキャン縦方向順序の末列から順方向順にそれぞれ配列させた順序であることを特徴とする、請求項１乃至請求項３のいずれかに記載の画像復号化装置。
【請求項１０】
前記第１のスキャン順序が、ラスタスキャン方向に配列させた順序であることを特徴とする請求項１記載の画像復号化装置。
【請求項１１】
前記第１のスキャン順序が、ラスタスキャン縦方向に配列させた順序であることを特徴とする請求項１記載の画像復号化装置。
【請求項１２】
前記第１のスキャン変換手段が、ラスタスキャン方向に配列させた第１のスキャン順序、及び、ラスタスキャン縦方向に配列させた第２のスキャン順序を有し、入力される前記量子化直交変換係数に応じて適応的に前記スキャン順序よりただ一つを選択してスキャン変換を行なうことを特徴とする、請求項１に記載の画像復号化装置。
【請求項１３】
量子化直交変換係数を、逆量子化処理、スキャン順序変換処理、逆直交変換処理して画像を復号化する画像復号化方法において、
前記量子化直交変換係数を第１のスキャン順序に変換して２個以上出力するスキャン変換工程と、
前記スキャン変換工程により出力された２個以上の量子化直交変換係数が０であるかどうかをそれぞれ判定し、その判定結果を出力する０判定工程と、
前記２個以上の量子化直交変換係数のうち、１個以上を選択する第１の選択工程と、
前記２個以上の量子化直交変換係数に対応する２個以上の量子化閾値のうち、１個以上を選択する第２の選択工程と、
前記０判定工程の結果に応じて、前記第１の選択工程及び第２の選択工程を制御する制御工程と、
前記１個以上の直交変換係数と、前記１個以上の量子化閾値とを用いてそれぞれ逆量子化演算処理を行う逆量子化演算工程と
前記逆量子化演算工程から出力された直交変換係数を第２のスキャン順序に並べ替えて２個以上出力する第２のスキャン変換工程と、
を有することを特徴とする画像復号化方法。
【請求項１４】
量子化直交変換係数を、逆量子化処理、スキャン変換処理、逆直交変換処理して画像を復号化する画像復号化方法をコンピュータに実行させるための画像復号化プログラムであって、前記画像復号化方法は、
前記量子化直交変換係数を第１のスキャン順序に変換して２個以上出力するスキャン変換工程と、
前記スキャン変換工程において出力された２個以上の量子化直交変換係数が０であるかどうかをそれぞれ判定し、その判定結果を出力する０判定工程と、
前記２個以上の量子化直交変換係数のうち、１個以上を選択する第１の選択工程と、
前記２個以上の量子化直交変換係数に対応する２個以上の量子化閾値のうち、１個以上を選択する第２の選択工程と、
前記０判定工程における判定結果に応じて、前記第１の選択工程及び第２の選択工程を制御する制御工程と、
前記１個以上の直交変換係数と、前記１個以上の量子化閾値とを用いてそれぞれ逆量子化演算処理を行う逆量子化演算工程と
前記逆量子化演算工程において出力された直交変換係数を第２のスキャン順序に並べ替えて２個以上出力する第２のスキャン変換工程と
を有することを特徴とする画像復号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像の復号化を行う装置、方法及びプログラムに関する。
【背景技術】
【０００２】
多値画像の圧縮技術として、従来より原画像を複数の画素からなるブロック単位に分割して直交変換を施し、指定された量子化閾値で量子化してハフマン符号化するものが知られている。かかる符号化処理はJPEG(Joint Photographic Experts Group) 方式でも取りいれられており、これをハードウェア化して符号化、復号化する装置が従来より知られている。
【０００３】
例えば、ハードウェア化された符号化装置では、従来より量子化処理を最小限の回路規模で良好な処理レートを得るための工夫がなされており、ジグザグスキャン順に変換された直交変換係数が複数個ずつ処理される。そこで、従来の符号化装置の構成を以下に説明する。
【０００４】
従来の符号化装置は、直交変換器により、複数のブロックに分割された入力原画像を、該ブロック単位で直交変換を施し、直交変換係数を出力する。出力された係数は、ジグザグスキャン変換器によりジグザグスキャン順に並べ替えられ、２係数ずつ比較器へ出力され、これに対応する量子化閾値も２つずつ同様に比較器へ出力される。比較器では出力係数と対応する量子化閾値の比較を行い、直交変換係数が量子化閾値より小さいかどうかという比較結果情報をそれぞれ出力する。この比較結果情報は、該直交変換係数を対応する量子化閾値で量子化した結果が０になるかどうかという情報と等価である。
【０００５】
制御装置では、比較器の出力結果に応じて、２つの直交変換係数の量子化結果の少なくともいずれか一方が０であれば、量子化結果の０にならない方（有意係数）を選択するように、選択器に制御信号を出力し（両方共０の場合はいずれを選択するような制御信号を出力しても動作には影響しない）、いずれも０でないならばジグザグスキャン順になるように一つずつ２サイクルに分けて交互に選択するように制御信号を出力する。また制御装置は比較器の出力結果に応じて、ハフマン符号化器にフォーマット信号を出力する。該フォーマット信号は、２つの直交変換係数のうちいずれか一方が０であれば"０と有意係数のペア"、両方共０であれば"０と０のペア"、両方共有意係数であれば"一つの有意係数のみ"を示す情報（両方共有意係数の場合は、係数を一つずつ２サイクルに分けて量子化処理することになるので、２サイクル連続で"一つの有意係数のみ"を示す情報を出力することになる）を、ならびに"０と有意係数のペア"であるならば該０と有意係数のペアのうちどちらがジグザグスキャン順で先であるのかを示す情報を含む。
【０００６】
このように、直交変換係数が０であれば量子化処理することなく結果が得られる（即ち０）ので、２つの直交変換係数のうち少なくともいずれか一方が０であれば、該２つの直交変換係数を実質的に１サイクルで量子化処理するように制御する。しかし、比較の結果、二つの係数の両方が有意であれば、どちらの係数も０でないので量子化処理を必要とし、そのために２サイクルの処理期間が必要となる。
【０００７】
また、ハードウェア化された復号化装置では、従来より逆量子化処理を最小限の回路規模で良好な処理レートを得るための工夫がなされており、例えば、量子化直交変換係数のうち有意係数のみについてのみ逆量子化演算及びメモリへの書込みを行ない、メモリの初期化動作をする提案がなされている。以下に、従来の復号化装置の構成を説明する。
【０００８】
従来の復号化器は、ハフマン復号化器により、ハフマン符号化された符号データを復号し、量子化された直交変換係数とそれ以前に０がいくつ続いていたかを示すゼロラン情報を出力する。出力された量子化直交変換係数は、逆量子化器へ入力され、量子化閾値テーブルが出力する該量子化直交変換係数に対応する量子化閾値を用いて逆量子化処理を施し、直交変換係数として選択器へ出力される。
【０００９】
アドレス生成器は出力されたゼロラン情報より、出力量子化直交変換係数が直交変換処理単位ブロック内でのどの位置に対応するかを計算し、対応する位置に応じたブロックメモリの書込みアドレス及び量子化閾値テーブルの読出しアドレスをそれぞれ出力すると共に、単位ブロックにつき、量子化処理に先んじてブロックメモリを初期化する為の初期化対象アドレスをブロックメモリへ出力し、初期化動作中であることを示す信号を制御装置へ出力する。該初期化処理は、単位ブロックの処理前に予め０を書きこんでおき、実際の処理段でブロックメモリへ書込む直交変換係数を有意係数（０でない係数）のみに限定し、無意係数（０である係数）の書込み処理を省くための前処理である。この場合、有意係数が書込まれたアドレスのみ初期化すればよく、その為に有意係数の書込みが発生したアドレスを記憶しておく必要があり、初期化の為の書込みアドレスは該記憶しておいたアドレス情報をもとに生成する。
【００１０】
量子化閾値テーブルは、前記書込みアドレス生成器の出力をもとに、処理対象となる量子化直交変換係数に対応する量子化閾値を読出し、逆量子化器に出力する。制御装置は初期化動作中を示す信号をもとに、初期化データである０値及び初期化データを選択するか否かを表す順序選択信号を選択器に出力し、またブロックメモリの書込み動作・読出し動作を制御する制御信号及び読出しアドレス生成器に出力する。該制御信号は、単位直交変換ブロック分の書込み動作が終了したら読出し動作を開始し、１サイクルにつき２係数ずつ読出していき、単位直交変換ブロック分データを読出し終わった時点で読出しを終了し、初期化処理の為の初期化データ書込み処理を開始し、初期化処理が終了した後に次処理対象直交変換ブロックの書込み動作を開始するように指示される。
【００１１】
読出しアドレス生成器は、制御装置の出力する書込み・読出し制御をもとに、読出し期間中はブロックメモリに書込まれた単位直交変換処理ブロック分のデータをジグザグスキャン順に順次読出しを行なうよう、アドレスを生成してブロックメモリに出力する。
【００１２】
ブロックメモリは、直交変換処理単位ブロック毎に初期化、書込み、ジグザグスキャン順に読出し、のサイクルで動作する。また、ブロックメモリは選択器の出力を書込みアドレスに書込み、読出しは読出しアドレスに応じて、制御装置の出力する書込み・読出し制御信号に従って行なう。読出し値は、逆直交変換器へ出力する。
【００１３】
逆直交変換器は、ブロックメモリよりジグザグスキャン順に出力される直交変換係数を順次逆直交変換し、単位ブロック毎に変換結果を出力する。
【００１４】
以上のような構成では、ブロックメモリに対する書込み処理は単位ブロック内に存在する有意係数の数分だけクロックサイクルを要し、読出しは２係数ずつの読出しとしたので単位ブロック内のサンプル数を６４とすると３２クロックサイクルを要し、初期化は単位ブロック内に存在する有意係数の数分だけクロックサイクルを要することになる。
【００１５】
例えば、単位ブロック内のサンプル数を６４とし、処理対象となる単位ブロック内に有意係数が２０個存在していたとすると、該処理対象ブロックの処理に要する総クロックサイクル数は、書込み処理＝２０サイクル、読出し処理＝３２サイクル、初期化処理＝２０サイクルであるので、合計して７２クロックサイクルということになる。
【００１６】
さらに、ある単位直交変換ブロック（８ｘ８＝６４サンプルとする）を処理するのに要するクロックサイクル数の最小値は、該処理対象ブロック内の有意係数の数が０であった場合であり、その際のクロックサイクル数は、書込み処理＝０サイクル、読出し処理＝３２サイクル、初期化処理＝０サイクルであるので、合計して３２サイクルということになる。これに対し、ある単位直交変換ブロックを処理するのに要するクロックサイクル数の最大値は、該処理対象ブロック内の有意係数の数が６４であった場合であり、その際のクロックサイクル数は、書込み処理＝６４サイクル、読出し処理＝３２サイクル、初期化処理＝６４サイクルであるので、合計して１６０サイクルということになる。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
従来の復号化装置の構成では、圧縮率が高く単位直交変換ブロックあたりに占める有意係数の数が少ない場合は、良好な復号化速度が得られるものの、直交変換ブロック毎に初期化処理を行なうため、有意係数の占める割合が高くなるにつれて処理速度が極端に低下し、圧縮率の高い符号データと圧縮率の低い符号データとで復号化処理に要する時間の差が大きくなってしまうといった問題があった。
【課題を解決するための手段】
【００１８】
本発明は前記のような問題を鑑みて、圧縮率の相違に影響されない復号化処理を行なうことを目的として、以下の手段を提供する。
【００１９】
量子化直交変換係数を、逆量子化処理、スキャン順序変換処理、逆直交変換処理して画像を復号化する画像復号化装置において、
前記量子化直交変換係数を第１のスキャン順序に変換して２個以上出力する第１のスキャン変換手段と、
前記第１のスキャン変換手段により出力された２個以上の量子化直交変換係数が０であるかどうかをそれぞれ判定し、その判定結果を出力する０判定手段と、
前記２個以上の量子化直交変換係数のうち、１個以上を選択する第１の選択手段と、
前記２個以上の量子化直交変換係数に対応する２個以上の量子化閾値のうち、１個以上を選択する第２の選択手段と、
前記０判定手段の結果に応じて、前記第１の選択手段及び第２の選択手段を制御し、さらに前記０判定手段の判定結果からフォーマット信号を生成出力する制御手段と、
前記１個以上の量子化直交変換係数と、前記１個以上の量子化閾値とを用いてそれぞれ逆量子化演算処理を行う逆量子化演算手段と、
前記逆量子化演算手段から出力された直交変換係数を第２のスキャン順序に並べ替えて２個以上出力する第２のスキャン変換手段とを備え、
逆量子化処理対象数を複数個同時に０判定し、該複数個の係数の中の有意係数の個数によって逆量子化処理を制御し、前記第１のスキャン手段で備えるスキャン順序を、有意係数がなるべく平均的に分散されて配列されるような順序にして逆量子化処理レートの向上を図ると共に、初期化処理期間をなくしたことにより、全体の処理レートの向上を図る。
【発明の効果】
【００２０】
本発明によれば、圧縮率の相違に影響されない復号化処理を行なうことが可能となる。
【発明を実施するための最良の形態】
【００２１】
[第１の実施形態]
図１に、本発明の第１の実施形態の符号化装置の構成例を示す。本実施形態では ２係数ずつ処理する構成となっている。また、処理の流れは図１２ａから図１２ｄのフローチャートに示すようになる。
【００２２】
１０１ は直交変換器であり、符号化処理対象となる原画像を複数のブロック単位に分割したものを入力とし、該ブロック単位で直交変換を施し、直交変換係数を第１のスキャン変換器１０２へ順次出力する（Ｓ１２０１）。
【００２３】
第１のスキャン変換器１０２は、直交変換器１０１より出力された直交変換係数を入力とし、予め定められたスキャン順序に並べ替え（Ｓ１２０２）、２係数ずつ出力する。また１０２は、例えば１０２(a)に示すブロックメモリと１０２(b)に示すアドレス生成器より構成され、１０２(a) は１０１より出力された直交変換係数を、一旦１ブロック分蓄え、１０２(b)の指示するアドレスに従って書込み及び読出しを行なう。１０２(b) は１０２(a)から直交変換係数を読出していったときに、予め定められたスキャン順で出力されるようにアドレスを生成する。実際のスキャン順序は前記直交変換ブロック単位内でなるべく有意係数が分散されるように考慮されたものが処理速度の観点から望ましく、例えば図２b に示したスキャン順、図２cに示したスキャン順、または図２d に示したスキャン順などが有利である。
【００２４】
量子化閾値テーブル１０５は、予め所定のスキャン順序に対応するようにテーブル成分が並べ替えられており、１０２の出力する２つの直交変換係数にそれぞれ対応した量子化閾値を２つずつ出力する（Ｓ１２０４）。比較器１０３, １０４ は１０２及び１０５より出力された直交変換係数と対応する量子化閾値の２組のペアをそれぞれ入力とし、直交変換係数と量子化閾値を比較して直交変換係数が量子化閾値より小さいか否かという比較結果情報をそれぞれ出力する（Ｓ１２０５）。この比較結果情報は、該直交変換係数を対応する量子化閾値で量子化した結果が０になるかどうかという情報と等価である。
【００２５】
制御装置１０６は比較器１０３,１０４ の出力結果に応じて、１０２が出力する２つの直交変換係数の量子化結果の少なくともいずれか一方が０であれば（８−３）、量子化結果の０にならない方（有意係数）を選択するように、選択器１０７ 及び選択器１０８に制御信号を出力し（両方共０の場合はいずれを選択するような制御信号を出力しても動作には影響しない）、いずれも０でないならば第１のスキャン変換器１０２で変換されたスキャン順になるように一つずつ２サイクルに分けて交互に選択するように制御信号を出力する。また制御装置１０６は比較器１０３,１０４ の出力結果に応じて、第２のスキャン変換器１１０にフォーマット信号を出力する。該フォーマット信号は、１０２が出力する２つの直交変換係数のうちいずれか一方が０であれば"０と有意係数のペア"、両方共０であれば"０と０のペア"、両方共有意係数であれば"一つの有意係数のみ"を示す情報（両方共有意係数の場合は、係数を一つずつ２サイクルに分けて量子化処理することになるので、２サイクル連続で"一つの有意係数のみ"を示す情報を出力することになる）を、ならびに"０と有意係数のペア"であるならば該０と有意係数のペアのうちどちらが第１のスキャン変換器１０２で変換されたスキャン順で先であるのかを示す情報を含む。
【００２６】
このように、直交変換係数が０であれば量子化演算処理することなく結果が得られる（即ち０）ので、２つの直交変換係数のうち少なくともいずれか一方が０であれば、該２つの直交変換係数を実質的に１サイクルで量子化処理するように制御する。
【００２７】
選択器１０７は１０２の出力する２つの直交変換係数のうちいずれか一方を、１０６の出力する制御信号に従って選択し、量子化演算器１０９へ出力する。
【００２８】
選択器１０８は、１０５の出力する２つの量子化閾値のうちいずれか一方を、１０６の出力する制御信号に従って選択し、量子化演算器１０９へ出力する。また、選択器１０８の出力する量子化閾値は、常に選択器１０７の出力する直交変換係数に対応する量子化閾値となる。
【００２９】
量子化演算器１０９は、１０７の出力を１０８の出力で除算して得る量子化結果を、第２のスキャン変換器１１０へ出力する。
【００３０】
第２のスキャン変換器１１０は、１０６の出力するフォーマット信号に応じて、１０９の出力をジグザグスキャン順に並べ替え（Ｓ１２１９）、２つずつハフマン符号化器１１１へ出力する（Ｓ１２２０）。また１１０は、例えば１１０(a)に示すブロックメモリと１１０(b)に示すアドレス生成器より構成され、１１０(a) は１０９の出力を、一旦１ブロック分蓄え、１１０(b)の指示するアドレスに従って書込み及び読出しを行なう。１１０(b) は１１０(a)から直交変換係数を読出していったときに、ジグザグスキャン順で出力されるようにアドレスを生成する。
【００３１】
ハフマン符号化器１１１は、１１０の出力を順次ハフマン符号化していく（Ｓ１２２１）。このように１０２より出力される２つの直交変換係数の量子化結果のうち、いずれか一方が０であれば該２つの係数を量子化するのに１サイクルの処理時間ですみ、いずれも０でないならばどちらも除算による量子化処理が必要となる為、該２つの係数を量子化するのに２サイクルの処理期間が必要となる。
【００３２】
以下、例として１０２の出力する２つの直交変換係数を量子化閾値で量子化した結果を１０２の出力する順番に並べると、以下に示したようになる場合の処理を説明する。
【００３３】
例：「０」は量子化結果が０、「有」は量子化結果が０でない（つまり有意係数）ことを示す。
【００３４】
量子化結果：（０、有）、（０、０）、（有、０）、（有、有）
まず最初のペア（０、有）は一方が０で他方が有意係数であるので、制御装置１０６は選択器１０７,１０８に対し有意係数の方を選択するよう、制御信号を出力し（Ｓ１２１７）、また第２のスキャン変換器１１０には"０と有意係数のペア"という情報、ならびにそのどちらが第１のスキャン変換器１０２で変換されたスキャン順で先であるのかを示す情報を同時に出力する（Ｓ１２１６）。
【００３５】
量子化演算器１０９は１０７より出力された有意係数を１０８の出力である量子化閾値で除算して得た量子化直交変換係数（有意係数）を第２のスキャン変換器１１０に出力する（Ｓ１２１８）。
【００３６】
次のペア（０、０）は両方共０であるので、制御装置１０６は選択器１０７,１０８に対しいずれか一方（どちらでもよい）を選択するよう、制御信号を出力し（Ｓ１２０９）、また第２のスキャン変換器１１０には"０と０のペア"を示すフォーマット信号を同時に出力する（Ｓ１２０８）。
【００３７】
量子化演算器１０９は１０７より出力された係数を１０８より出力された量子化閾値で除算して得た量子化直交変換係数（この場合結果的には無意係数になる）を第２のスキャン変換器１１０に出力する（Ｓ１２１０）。
【００３８】
その次のペア（有、０）は一方が有意係数で他方が０であるので、制御装置１０６は選択器１０７,１０８に対し有意係数の方を選択するよう、制御信号を出力し（Ｓ１２１７）、また第２のスキャン変換器１１０には"０と有意係数のペア"という情報ならびにそのどちらが第１のスキャン変換器１０２で変換されたスキャン順で先であるのかを示す情報を同時に出力する（Ｓ１２１６）。
【００３９】
量子化演算器１０９は１０７より出力された有意係数を１０８の出力である量子化閾値で除算して得た量子化直交変換係数（有意係数）を第２のスキャン変換器１１０に出力する（Ｓ１２１８）。
【００４０】
その次のペア（有、有）は両方共０でないので、制御装置１０６は選択器１０７,１０８に対しまず最初のサイクルでは第１のスキャン変換器１０２で変換されたスキャン順で早い方を選択するよう、制御信号を出力し（Ｓ１２１２）、また第２のスキャン変換器１１０には"一つの有意係数のみ"という情報を同時に出力する（Ｓ１２１１）。その次のサイクルでは第１のスキャン変換器１０２で変換されたスキャン順で後の方を選択するよう、制御信号を出力し、また第２のスキャン変換器１１０には"一つの有意係数のみ"という情報を同時に出力する（Ｓ１２１４）。
【００４１】
量子化演算器１０９は、２サイクルに分けて１０７より出力された係数及び１０８より出力された量子化閾値を用いて、２サイクルに分けて量子化演算し、その結果を量子化直交変換係数として２サイクルに分けて第２のスキャン変換器１１０に出力する（Ｓ１２１３、Ｓ１２１５）。
【００４２】
このように、以上示した例では８個の係数の量子化処理を合計５サイクルで行なうことになる。
【００４３】
[第２の実施形態]
図３に、本発明の第２の実施形態の符号化装置の構成例を示す。
【００４４】
３０１ は直交変換器であり、符号化処理対象となる原画像を複数のブロック単位に分割したものを入力とし、該ブロック単位で直交変換を施し、直交変換係数を第１のスキャン変換器３０２へ順次出力するとともに、該処理対象ブロックの周波数分布情報を順序選択信号生成器３１２へ出力する。順序選択信号生成器３１２は、３０１の出力する周波数分布情報をもとに第１のスキャン変換器３０２の備える複数のスキャン順序うちただ一つを選択する順序選択信号を出力する。
【００４５】
例えば、図５（ａ）に示す量子化結果配列例のように、有意係数が上半分に偏っている場合、図２ａから図２ｄに示すスキャン順序でスキャンすると、（有、有）の組み合わせの数は、それぞれ５、２、１、４となる。従って、第１のスキャン変換器３０２としては図２cに示すスキャン順序でスキャンすれば（有、有）の組み合わせの数が少なくなる。また、図６（ａ）に示す量子化結果配列例のように、有意係数が左半分に偏っている場合、図２ａから図２ｄに示すスキャン順序でスキャンすると、（有、有）の組み合わせの数は、それぞれ５、２、４、１となる。従って、第１のスキャン変換器３０２としては図２dに示すスキャン順序でスキャンすれば（有、有）の組み合わせの数が少なくなる。このように、３１２は処理対象ブロックの周波数分布情報をもとに、処理速度的に有利となるスキャン順序を選択するよう、順序選択信号を生成していく。
【００４６】
第１のスキャン変換器３０２は、直交変換器３０１より出力された直交変換係数を入力とし、予め備えた複数のスキャン順序のうち３１２より出力された順序選択信号に従って一つを選択し、該選択したスキャン順序に並べ替え、２係数ずつ出力する。また３０２は、３０２(a)に示すブロックメモリと、３０２(b)に示すアドレス生成器１、３０２(c)に示すアドレス生成器２、及び３０２(d)に示すアドレス生成器３と、３１２より出力された順序選択信号に従って３０２(b)、３０２(c)、３０２(d)の出力より一つを選択する選択器３０２(e)より構成される。３０２(a) は３０１より出力された直交変換係数を、一旦１ブロック分蓄え、３０２(e)の出力の指示するアドレスに従って書込み及び読出しを行なう。３０２(b) 、３０２(c)、３０２(d) はそれぞれ３０２(a)から直交変換係数を読出していったときに、例えば図２b に示したスキャン順、図２c に示したスキャン順、図２d に示したスキャン順のような予め定められたスキャン順で出力されるようにアドレスを生成する。
【００４７】
量子化閾値テーブル３０５は、直交変換器３１２の出力する順序選択信号をもとに、３０２の出力する２つの直交変換係数にそれぞれ対応した量子化閾値を２つずつ出力する。
【００４８】
比較器３０３, ３０４ は３０２及び３０５より出力された直交変換係数と対応する量子化閾値の２組のペアをそれぞれ入力とし、直交変換係数と量子化閾値を比較して直交変換係数が量子化閾値より小さいか否かという比較結果情報をそれぞれ出力する。この比較結果情報は、該直交変換係数を対応する量子化閾値で量子化した結果が０になるかどうかという情報と等価である。
【００４９】
制御装置３０６は比較器３０３,３０４ の出力結果に応じて、３０２が出力する２つの直交変換係数の量子化結果の少なくともいずれか一方が０であれば、量子化結果の０にならない方を選択するように、選択器３０７ 及び選択器３０８に制御信号を出力し（両方共０の場合はいずれを選択するような制御信号を出力しても動作には影響しない）、いずれも０でないならば第１のスキャン変換器３０２で選択されたスキャン順になるように２サイクルに分けて一つずつ交互に選択するように制御信号を出力する。また制御装置３０６は比較器３０３,３０４ の出力結果に応じて、第２のスキャン変換器３１０にフォーマット信号を出力する。該フォーマット信号は、３０２が出力する２つの直交変換係数のうちいずれか一方が０であれば"０と有意係数のペア"、両方共０であれば"０と０のペア"、両方共有意係数であれば"一つの有意係数のみ"を示す情報（両方共有意係数の場合は、係数を一つずつ２サイクルに分けて量子化処理することになるので、２サイクル連続で"一つの有意係数のみ"を示す情報を出力することになる）を、ならびに"０と有意係数のペア"であるならば該０と有意係数のペアのうちどちらが第１のスキャン変換器３０２で変換されたスキャン順で先であるのかを示す情報を含む。
【００５０】
このように、直交変換係数が０であれば量子化演算処理することなく結果が得られる（即ち０）ので、２つの直交変換係数のうち少なくともいずれか一方が０であれば、該２つの直交変換係数を実質的に１サイクルで量子化処理するように制御する。
【００５１】
選択器３０７は３０２の出力する２つの直交変換係数のうちいずれか一方を、３０６の出力する制御信号に従って選択し、量子化演算器３０９へ出力する。選択器３０８は、３０５の出力する２つの量子化閾値のうちいずれか一方を、３０６の出力する制御信号に従って選択し、量子化演算器３０９へ出力する。また、選択器３０８の出力する量子化閾値は、常に選択器３０７の出力する直交変換係数に対応する量子化閾値となる。
【００５２】
量子化演算器３０９は、３０７の出力を３０８の出力で除算して得る量子化結果を、第２のスキャン変換器３１０へ出力する。
【００５３】
第２のスキャン変換器３１０は、３０６の出力するフォーマット信号に応じて、直交変換器３１２の出力する順序選択信号をもとに、３０９の出力をジグザグスキャン順に並べ替え、２つずつハフマン符号化器３１１へ出力する。また３１０は、３１０(a)に示すブロックメモリと３１０(b)に示すアドレス生成器４、３１０(c)に示すアドレス生成器５、及び３１０(d)に示すアドレス生成器６と、３０１より出力された順序選択信号に従って３１０(b)、３１０(c)、３１０(d)の出力より一つを選択する選択器３１０(e)より構成される。３１０(a) は３０９の出力を、一旦１ブロック分蓄え、３１０(e)が出力するアドレスに従って書込み及び読出しを行なう。３１０(b) 、３１０(c)、３１０(d) はそれぞれ３１０(a)から量子化直交変換係数を読出していったときに、ジグザグスキャン順で出力されるようにアドレスを生成する。
【００５４】
ハフマン符号化器３１１は、３１０の出力を順次ハフマン符号化していく。
【００５５】
図４（ａ）に、８×８画素単位にブロック分割された画像に直交変換及び量子化を施した例を示す。図で「有」は有意係数、「０」は無意係数を表す。一般に多くの画像は直交変換を施した場合直流成分、低周波成分に電力が集中することが知られており、また量子化閾値は、人間の視覚特性が高周波成分に対し鈍感であることを考慮して、高周波成分に対応する量子化閾値に大きい値を割り当てることが多い。そのため、図４（ａ）に示すように、有意係数は直交変換ブロックの左上の方、つまりジグザグスキャン順で早い方に連続して集中する傾向にある。
【００５６】
図４（ａ）の量子化結果配列例では、ジグザグスキャン順に２つずつ係数を取り出して並べると、図４（b）のようになる。この場合、(有、有)の組み合わせが７つあるので、６４係数の量子化処理時間は７×２ + (３２ - ７) = ３９ サイクルとなる。即ち、図４（ａ）に示した例では従来例の構成では３９サイクルの量子化処理時間を要する。
【００５７】
これに対し、本発明の第１の実施形態の構成では量子化処理に要する処理時間は以下のようになる。
【００５８】
まず、図２b に示したスキャン順を選択して図４（ａ）に示す量子化結果配列例を該スキャン順に２つずつ並べると、図４（c）のようになる。この場合、(有、有)の組み合わせが２つあるので、６４係数の量子化処理時間は２×２ + (３２ - ２) = ３４ サイクルとなる。
【００５９】
次に、図２c に示したスキャン順を選択して図４（ａ）に示す量子化結果配列例を該スキャン順に２つずつ並べると、図４（d）のようになる。この場合、(有、有)の組み合わせが１つあるので、６４係数の量子化処理時間は１×２ + (３２ - １) = ３３ サイクルとなる。
【００６０】
次に、図２d に示したスキャン順を選択して図４（ａ）に示す量子化結果配列例を該スキャン順に２つずつ並べると、図４（e）のようになる。この場合、(有、有)の組み合わせが２つあるので、６４係数の量子化処理時間は２×２ + (３２ - ２) = ３４ サイクルとなる。
【００６１】
前記のように、従来のスキャン順に従った場合と、本発明におけるスキャン順に従った場合において、８ｘ８のブロックにサイクル数の差は、図２b及び図２d に示したスキャン順を選択した場合は５サイクル、図２c に示したスキャン順を選択した場合は６サイクルである。これを画面全体（画素数Ｎa）に換算すると以下の式によりサイクル数の差（Ｄ）を求めることができる。
【００６２】
総画素数が２００万ならば、Ｄ＝（Ｎa／６４）ｘ５  [サイクル]について、
図２bに示したスキャン順を選択すれば、
Ｄ＝２００ｘ１０６／６４）ｘ５＝１５.６ｘ１０６[サイクル]
図２c に示したスキャン順を選択すれば、
Ｄ＝２００ｘ１０６／６４）ｘ６＝１８．７５ｘ１０６[サイクル]となる。
【００６３】
[第３の実施形態]
なお、上述した図２bから図２dに示した高周波成分と低周波成分とが入り組んだスキャン順を採用せず、図２eに示した様なラスタスキャン縦方向のスキャン順序、又はラスタスキャン順序を採用してもよい。以下、ラスタスキャン縦方向のスキャン順序を適用した場合を具体的に説明する。
【００６４】
図１４（ａ）は、８×８画素単位にブロック分割された画像に直交変換及び量子化を施した例である。図４（ａ）と同様、図１４（ａ）においても、「有」は有意係数、「０」は無意係数を表す。
【００６５】
図１４（ａ）の例では、ジグザグスキャン順に２つずつ係数を取り出して並べると、図１４（b）のようになる。この場合、(有、有)の組み合わせが９個あるので、６４係数の量子化処理時間は９×２+(３２-９)=４１サイクルとなる。即ち、図１４（ａ）に示した例（従来例の構成）では４１サイクルの量子化処理時間を要する。
【００６６】
これに対し、図２eに示したスキャン順を採用した場合、量子化処理に要する処理時間は以下のようになる。図２eに示したスキャン順を採用して図１４（ａ）の例を該スキャン順に２つずつ並べると、図１４（c）のようになる。この場合、(有、有)の組み合わせが６つあるので、６４係数の量子化処理時間は６×２+(３２-６)=３８サイクルとなる。
【００６７】
図１５（ａ）に８×８画素単位にブロック分割された画像に直交変換及び量子化を施した別の例である。図４（ａ）と同様、図１５（ａ）においても、「有」は有意係数、「０」は無意係数を表す。
【００６８】
図１５（ａ）の例では、ジグザグスキャン順に２つずつ係数を取り出して並べると、図１５bのようになる。この場合、(有、有)の組み合わせが８個あるので、６４係数の量子化処理時間は８×２+(３２-８)=４０サイクルとなる。即ち、図１５（ａ）に示した例（従来例の構成）では４０サイクルの量子化処理時間を要する。
【００６９】
これに対し、図２eに示したスキャン順を採用した場合、量子化処理に要する処理時間は以下のようになる。図２eに示したスキャン順を選択して図１５（ａ）の例を該スキャン順に２つずつ並べると、図１５（c）のようになる。この場合、(有、有)の組み合わせが５つあるので、６４係数の量子化処理時間は５×２+(３２-５)=３７サイクルとなる。
【００７０】
以上のように、図２eに示すスキャン順を採用しても、サイクル数を十分に低減する効果を得ることが可能である。
【００７１】
[第４の実施形態]
図７に本発明の第４の実施形態を示す。７０１はハフマン復号化器であり、ハフマン符号化された符号データを復号し、量子化された直交変換係数として第１のスキャン変換器７０２へ出力する（Ｓ１３０１）。
【００７２】
第１のスキャン変換器７０２は、ハフマン復号器７０１より出力された量子化直交変換係数を入力とし、予め定められたスキャン順序に並べ替え（Ｓ１３０２）、２係数ずつ出力する（Ｓ１３０３）。また７０２は、例えば７０２（ａ）に示すブロックメモリと７０２（ｂ）に示すアドレス生成器より構成され、７０２（ａ）は７０１より出力された量子化直交変換係数を、一旦１ブロック分蓄え、７０２（ｂ）の指示するアドレスに従って書き込み及び読み出しを行なう。７０２（ｂ）は７０２（ａ）から量子化直交変換係数を読み出していったときに、予め定められたスキャン順で出力されるようにアドレスを生成する。実際のスキャン順序は前記直交変換ブロック単位内でなるべく有意係数が分散されるように考慮されたものが処理速度の観点から望ましく、例えば図２bに記載のスキャン順、図２ｃに記載のスキャン順、または図２bに記載のスキャン順などが有利である。
【００７３】
量子化閾値テーブル７０４は、７０２の出力する２つの量子化直交変換係数にそれぞれ対応した量子化閾値を２つずつ出力する（Ｓ１３０４）。
【００７４】
０判定機７０３は７０２より出力された２つの量子化直交変換係数を入力とし、該入力された量子化直交変換係数がそれぞれ０であるか否か判定し、その判定結果を制御装置７０５に出力する（Ｓ１３０５）。
【００７５】
制御装置７０５は０判定器７０３の出力結果に応じて、７０２が出力する２つの量子化直交変換係数のうちすくなくともいずれか一方が０であれば、０でない方（有意係数）を選択するように、選択器７０６及び選択器７０７に制御信号を出力し（両方共０の場合はいずれを選択するような制御信号を出力しても動作に影響しない）、いずれも０でないならば２サイクルに分けて第１のスキャン変換器７０２で出力されたスキャン順になるよう一つずつ交互に選択するように制御信号を出力する。また制御装置７０５は０判定器７０３の出力結果に応じて、第２のスキャン変換器７０９にフォーマット信号を出力する。該フォーマット信号は、７０２が出力する２つの量子化直交変換係数のうちいずれか一方が０であれば"０と有意係数のペア"、両方共０であれば"０と０のペア"、両方共有意係数であれば"一つの有意係数のみ"を示す情報（両方共有意係数の場合は、係数を一つずつ２サイクルに分けて逆量子化処理することになるので、２サイクル連続で"一つの有意係数のみ"を示す情報を出力することになる）を、ならびに"０と有意係数のペア"であるならば該０と有意係数のペアのうちどちらが第１のスキャン変換器７０２で変換されたスキャン順であるのかを示す情報を含む。
【００７６】
このように、量子化直交変換係数が０であれば逆量子化演算処理することなく結果が得られる（即ち０）ので、２つの量子化直交変換係数のうち少なくともいずれか一方が０であれば、該２つの量子化直交変換係数を実質的に１サイクルで逆量子化するように制御する。
【００７７】
選択器７０６は７０２の出力する２つの量子化直交変換係数のうちいずれか一方を、７０５の出力する制御信号に従って選択し、逆量子化演算器７０８へ出力する。選択器７０７は、７０４の出力する２つの量子化閾値のうちいずれか一方を、７０５の出力する制御信号に従って選択し、逆量子化演算器７０８へ出力する。また、選択器７０７の出力する量子化閾値は、常に選択器７０６の出力する量子化直交変換係数に対応する量子化閾値となる。
【００７８】
逆量子化演算器７０８は、７０６の出力に７０７の出力を乗じて得る逆量子化結果を、第２のスキャン変換器７０９へ出力する。
【００７９】
第２のスキャン変換器７０９は、制御装置７０５の出力するフォーマット信号に応じて、７０８の出力を予め定められたスキャン順に並べ替え（Ｓ１３１９）、２つずつ逆直交変換器７１０へ出力する（Ｓ１３２０）。また７０９は、例えば７０９（ａ）に示すブロックメモリと７０９（ｂ）に示すアドレス生成器より構成され、７０９（ａ）は７０８の出力を一旦ブロック分蓄え、７０９（ｂ）の指示するアドレスに従って書き込み及び読み出しを行なう。７０９（ｂ）は７０９（ａ）から直交変換係数を読み出していったときに、予め定められたスキャン順で出力されるようにアドレスを生成する。第２のスキャン変換器７０９の施す実際のスキャン変換の順序は、逆直交変換器７１０の構成に応じて決定されるべきで、例えばラスタスキャン順、または縦方向のラスタスキャン順などが一般的であろう。
【００８０】
逆直交変換器７１０は、７０９の出力に対し、順次逆直交変換処理を施して出力していく（Ｓ１３２１）。
【００８１】
以上のような構成では、前述したような０判定器を設け、量子化直交変換係数の逆量子化結果が０になるのかどうかを逆量しか処理する前に知り、少なくともどちらか一方が０であるならば乗算処理をする必要がない為、他方の係数とあわせて２つの係数を１サイクルでただ一つの逆量子化演算器で逆量子化処理できることになる。
【００８２】
例として、７０２の出力する２つの量子化直交変換係数が以下に示したようになる場合の処理を説明する。
【００８３】
例：「０」は量子化直交変換係数が０、「有」は量子化直交変換係数が０でない（つまり有意係数）ことを示す。
【００８４】
量子化直交変換係数：（０、有）、（０、０）、（有、０）、（有、有）
まず最初のペア（０、有）は一方が０で他方が有意係数であるので、制御装置７０５は選択器７０６，７０７に対し有意係数の方を選択するよう、制御信号を出力し（Ｓ１３１７）、また第２のスキャン変換器７０９には"０と有意係数のペア"という情報ならびに、そのどちらが第１のスキャン変換器７０２で変換されたスキャン順で先であるかを示す情報を同時に出力する（Ｓ１３１６）。
【００８５】
逆量子化演算器７０８は７０６より出力された有意係数に７０７の出力である量子化閾値を乗じて得る直交変換係数（有意係数）を第２のスキャン変換器７０９に出力する（Ｓ１３１８）。
【００８６】
次のペア（０、０）は両方共０であるので、制御装置７０５は選択器７０６，７０７に対しいずれか一方（どちらでもよい）を選択するよう、制御信号を出力し（Ｓ１３１４）、また第２のスキャン変換器７０９には"０と０のペア"という情報を同時に出力する（Ｓ１３１３）。
【００８７】
逆量子化演算器７０８は７０６より出力された係数に７０７の出力である量子化閾値を乗じて得る直交変換係数（この場合結果的には無意係数になる）を第２のスキャン変換器７０９に同時に出力する（Ｓ１３１５）。
【００８８】
その次のペア（有、０）は一方が有意係数で他方が０であるので、制御装置７０５は選択器７０６，７０７に対し有意係数の方を選択するよう、制御信号を出力し（Ｓ１３１７）、また第２のスキャン変換器７０９には"０と有意係数のペア"という情報ならびにそのどちらが第１のスキャン変換器７０２で変換されたスキャン順であるかを示す情報を同時に出力する（Ｓ１３１６）。
【００８９】
逆量子化演算器７０８は７０６より出力された係数に７０７の出力である量子化閾値を乗じて得る直交変化係数（有意係数）を第２のスキャン変換器７０９に出力する（Ｓ１３１８）。
【００９０】
その次のペア（有、有）は両方共０でないので、制御装置７０５は選択器７０６，７０７に対しまず最初のサイクルでは７０２で変換されたスキャン順で早い方を選択するよう、制御信号を出力し（Ｓ１３０８）、また第２のスキャン変換器７０９には"一つの有意係数のみ"という情報を同時に出力する（Ｓ１３０９）。その次のサイクルでは７０２で変換されたスキャン順で後の方を選択するよう、制御信号を出力し、また第２のスキャン変換器７０９には"一つの有意係数のみ"という情報を同時に出力する（Ｓ１３１１）。
【００９１】
逆量子化演算器７０８は２サイクルに分けて７０６より出力された係数及び７０７より出力された量子化閾値を用いて、２サイクルに分けて逆量子化演算し、その結果を直交変換係数として２サイクルに分けて第２のスキャン変換器７０９に出力する（Ｓ１３１０、Ｓ１３１２）。
【００９２】
このように、以上示した例では８個の係数の逆量子化処理を合計５サイクルで行うことができる。
【００９３】
[第５の実施形態]
図８に本発明の第５の実施形態の復号化装置の構成例を示す。
【００９４】
８０１はハフマン復号化器であり、ハフマン符号化された符号データを復号し、量子化された直交変換係数として第１のスキャン変換器８０２へ出力する。第１のスキャン変換器８０２は、ハフマン復号化器８０１より出力された量子化直交変換係数を入力とし、予め定められた複数のスキャン順序のうち予め定められた順序選択信号に従って一つを選択し、該選択したスキャン順序に並べ替え、２係数ずつ出力する。また８０２は、８０２（ａ）に示すブロックメモリと、８０２（ｂ）に示すアドレス生成器１、８０２（ｃ）に示すアドレス生成器２、及び８０２（ｄ）に示すアドレス生成器３と、順序選択信号に従って８０２（ｂ）、８０２（ｃ）、８０２（ｄ）の出力より一つを選択する選択器８０２（ｅ）より構成される。８０２（ａ）は８０１より出力された量子化直交変換係数を、一旦１ブロック分蓄え、８０２（ｅ）が出力するアドレスに従って書き込み及び読み出しを行なう。８０２（ｂ）、８０２（ｃ）、８０２（ｄ）が備えるスキャン順序は、例えばそれぞれ図２bに記載のスキャン順、図２ｃに記載のスキャン順、図２ｄに記載のスキャン順、又は、図２ｅのスキャン順等が処理速度の観点から有利である。図２ｅは、ラスタスキャン縦方向のスキャン順序であるが、ラスタスキャン順序を採用してもよい。
【００９５】
例えば、図１０（ａ）に示す直交変換係数配列例のように、有意係数が上半分に偏っている場合、図２ａから図２ｅに示すスキャン順序でスキャンすると、（有、有）の組み合わせの数は、それぞれ６、３、１、５、６となる。従って、図２cに示すスキャン順序で書込み読出しを行えば（有、有）の組み合わせの数が少なくなる。また、図１１（ａ）に示す量子化結果配列例のように、有意係数が左半分に偏っている場合、図２ａから図２ｅに示すスキャン順序でスキャンすると、（有、有）の組み合わせの数は、それぞれ５、２、４、１、６となる。従って、図２dに示すスキャン順序で書込み読出しを行えば（有、有）の組み合わせの数が少なくなる。このように、処理対象ブロックの有意係数分布情報をもとに処理速度的に有利となるスキャン順序が選択される。
【００９６】
量子化閾値テーブル８０４は、順次選択信号をもとに、８０２の出力する２つの量子化直交変換数にそれぞれ対応した量子化閾値を２つずつ出力する。０判定器８０３は８０２より出力された２つの量子化直交変換係数を入力とし、該入力された量子化直交変換係数がそれぞれ０であるか否か判定し、その判定結果を制御装置８０５に出力する。
【００９７】
制御措置８０５は０判定器８０３の出力結果に応じて、８０２が出力する２つの量子化直交変換係数のうち少なくともいずれか一方が０であれば、０でない方を選択するように、選択器８０６及び選択器８０７に制御信号を出力し（両方共０の場合はいずれを選択するような制御信号を出力しても影響しない）、いずれも０でないならば２サイクルに分けて第１のスキャン変換器８０２で変換されたスキャン順になるように一つずつ交互に選択するように制御信号を出力する。また制御装置８０５は０判定器８０３の出力結果に応じて、第２のスキャン変換器８０９にフォーマット信号を出力する。該フォーマット信号は、８０２が出力する２つの量子化直交変換係数のうちいずれか一方が０であれば"０と有意係数のペア"、両方共０であれば"０と０のペア"、両方共有意係数であれば"一つの有意係数のみ"を示す情報（両方共有意係数の場合は、係数を一つずつ２サイクルに分けて逆量子化処理することになるので、２サイクル連続で"一つの有意係数のみ"を示す情報を出力することになる）を、ならびに"０と有意係数のペア"であるならば該０と有意係数のペアのうちどちらが第１のスキャン変換器８０２で変換されたスキャン順で先であるのかを示す情報を含む。
【００９８】
このように、量子化直交変換係数が０であれば逆量子化演算処理することなく結果が得られる（即ち０）ので、２つの量子化直交変換係数のうち少なくともいずれか一方が０であれば、該２つの量子化直交変換係数を実質的に１サイクルで逆量子化するように制御する。
【００９９】
選択器８０６は８０２の出力する２つの量子化直交変換係数のうちいずれか一方を、８０５の出力する制御信号に従って選択し、逆量子化演算器８０８へ出力する。選択器８０７は、８０４の出力する２つの量子化閾値のうちいずれか一方を、８０５の出力する制御信号に従って選択し、逆量子化演算器８０８へ出力する。また、選択器８０７の出力する量子化閾値は、常に選択器８０６の出力する量子化直交変換係数に対応する量子化閾値となる。
【０１００】
逆量子化演算器８０８は、８０６の出力に８０７の出力を乗じて得る逆量子化結果を、第２のスキャン変換器８０９に出力する。
【０１０１】
第２のスキャン変換器８０９は、順序選択信号をもとに８０２で選択されたスキャン順序に対応するスキャン順序を選択し、該選択されたスキャン順序に従って８０８の出力を並べ替え、２つずつ逆直交変換器８１０へ出力する。また１８０９は、８０９（ａ）に示すブロックメモリと８０９（ｂ）に示すアドレス生成器４、８０９に示すアドレス生成器５、及び８０９（ｄ）に示すアドレス生成器６と、順序選択信号に従って８０９（ｂ）、８０９（ｄ）の出力により一つを選択する選択器８０９（ｅ）より構成される。８０９（ａ）は８０８の出力を一旦１ブロック分蓄え、８０９（ｅ）の出力するアドレスに従って書き込み及び読み出しを行なう。逆直交変換器８１０は、８０９の出力を順次逆直交変換処理していく。
【０１０２】
図９（ａ）に、８×８画素単位にブロック分割された画像に直交変換及び量子化を施した例を示す。図で「有」は有意係数、「０」は無意係数を表す。
【０１０３】
一般に多くの画像は直交変換を施した場合直流成分、低周波成分に電力が集中することが知られており、また量子化閾値は、人間の視覚特性が高周波成分に対し鈍感であることを考慮して、高周波成分に対応する量子化閾値に大きい値を割り当てることが多い。その為図９（ａ）に示すように、有意係数は直交変換ブロックの左上の方、つまりジグザグスキャン順で早い方に連続して集中する傾向にある。この特性を利用して、該有意係数が直交変換ブロック内でなるべく均等に分散されるように考慮してスキャン順を定めることにより、量子化処理時間を最小限に押さえることができる。
【０１０４】
図９（ａ）に示された例において、本発明の第４の実施形態の構成では、処理に要するサイクルの数は以下のようになる。
【０１０５】
まず、図２b に示したスキャン順を選択して図９（ａ）の例を該スキャン順に２つずつ並べると、図９（ｃ）のようになる。この場合、(有、有)の組み合わせが２つあるので、６４係数の量子化処理時間は２×２ + (３２ - ２) = ３４ サイクルとなる。
【０１０６】
図２c に示したスキャン順を選択して図９（ａ）の例を該スキャン順に２つずつ並べると、図９（ｄ）のようになる。この場合、(有、有)の組み合わせが１つあるので、６４係数の量子化処理時間は１×２ + (３２ - １) = ３３ サイクルとなる。
【０１０７】
次に、図２d に示したスキャン順を選択して図９（ａ）の例を該スキャン順に２つずつ並べると、図９（e）のようになる。この場合、(有、有)の組み合わせが３つあるので、６４係数の量子化処理時間は３×２ + (３２ - ３) = ３５ サイクルとなる。
【０１０８】
次に、図２ｅ に示したスキャン順を選択して図９（ａ）の例を該スキャン順に２つずつ並べると、図９（ｆ）のようになる。この場合、(有、有)の組み合わせが７つあるので、６４係数の量子化処理時間は７×２ + (３２ - ７) = ３９ サイクルとなる。
【０１０９】
従って、ブロックメモリ７０９(a)への書込みサイクルは図２ｃの場合は３３サイクルとなる。また、ブロックメモリ７０９(a)からの読出しサイクルは８×８÷２＝３２サイクルであり、初期化処理サイクルは必要ないので、全体としての処理サイクルは最小で３３＋３２＝６５サイクルとなる。
【０１１０】
一方、図９（ａ）に示された例において、従来例の構成では処理に要するサイクル数は以下のようになる。
【０１１１】
図９（ａ）に示された例では、有意係数の個数は２０個であるので、該処理対象ブロックの処理に要する総クロックサイクル数は、書き込み処理＝２０サイクル、読出し処理３２サイクル、初期化処理＝２０サイクルであるので、合計して７２サイクルとなる。
【０１１２】
従って、図９（ａ）に示された例においては、従来より約１０％程度処理時間が短縮されたこととなる。又、従来の構成では、８×８の単位ブロック当たりに要する処理サイクル数は３２〜１６０サイクルと非常に大きい開きがあり、そのため圧縮率の高い符号データと圧縮率の低い符号データとで復号化勝利に要する時間の差が大きくなってしまうという問題があったのに対し、本発明の構成を備えた本実施形態では、８×８の単位ブロック当たりに要する処理サイクル数は６４〜９６サイクルと開きが小さく、従って、圧縮率の高い符号データと圧縮率の低い符号データとで復号化処理に要する時間の差が小さいという効果がある。この事実は、復号化装置を組み込むシステムが復号化装置に要求する処理速度として、その復号化装置の持つ処理速度の最悪値に合わせなければならない場合などに効果的であり、また復号化装置を組み込むシステムが扱う画像符号データが、比較的圧縮率の低いものが多い場合などにも有効である。
【０１１３】
以上示したように、ブロックメモリの初期化処理期間を省き、逆量子化器に投入する量子化直交変換係数の有意係数がなるべく均等に分散されるようにスキャン順を考慮することにより、画像の圧縮率に拘わらず高速に復号化処理を行うことができる。
【０１１４】
[他の実施形態]
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１１５】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１６】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１７】
以上示したように、本発明により量子化又は逆量子化される係数のうち、有意のものがなるべく均等に分散されるように考慮したスキャン順序を採用することにより、ジグザクスキャン順で処理する場合よりも、処理サイクルを低減でき、全体として高速に復号化処理を行なうことが可能となる。
【０１１８】
また、予め複数のスキャン順序を用意し、これを順序選択信号によって切替えて使用することで、入力係数の分布に適応したスキャン順序を選択することが可能となり、処理サイクルをより効果的に低減できる。
【図面の簡単な説明】
【０１１９】
【図１】本発明の第１の実施形態の構成図である。
【図２ａ】ジグザグスキャン順序を示す図である。
【図２ｂ】本発明におけるスキャン順序の一つを示す図である。
【図２ｃ】本発明におけるスキャン順序の一つを示す図である。
【図２ｄ】本発明におけるスキャン順序の一つを示す図である。
【図２ｅ】本発明におけるスキャン順序の一つを示す図である。
【図３】本発明の第２の実施形態の構成を示す図である。
【図４】８x８ブロックの量子化結果例、及び、それについて図２a乃至図２dに示すスキャン順序で２個ずつ配列した場合の組合せを示す図である。
【図５】８x８ブロックの量子化結果例、及び、それについて図２a乃至図２dに示すスキャン順序で２個ずつ配列した場合の組合せを示す図である。
【図６】８x８ブロックの量子化結果例、及び、それについて図２a乃至図２dに示すスキャン順序で２個ずつ配列した場合の組合せを示す図である。
【図７】本発明の第４の実施形態の構成を示す図である。
【図８】本発明の第５の実施形態の構成を示す図である。
【図９】８x８ブロックの直交変換係数配列例、及び、それについて図２a乃至図２dに示すスキャン順序で２個ずつ配列した場合の組合せを示す図である。
【図１０】８x８ブロックの直交変換係数配列例、及び、それについて図２a乃至図２dに示すスキャン順序で２個ずつ配列した場合の組合せを示す図である。
【図１１】８x８ブロックの直交変換係数配列例、及び、それについて図２a乃至図２dに示すスキャン順序で２個ずつ配列した場合の組合せを示す図である。
【図１２ａ】本発明の第１の実施形態における、処理の流れを示したフローチャートである。
【図１２ｂ】本発明の第１の実施形態における、処理の流れを示したフローチャートである。
【図１２ｃ】本発明の第１の実施形態における、処理の流れを示したフローチャートである。
【図１２ｄ】本発明の第１の実施形態における、処理の流れを示したフローチャートである。
【図１３ａ】本発明の第４の実施形態における、処理の流れを示したフローチャートである。
【図１３ｂ】本発明の第４の実施形態における、処理の流れを示したフローチャートである。
【図１３ｃ】本発明の第４の実施形態における、処理の流れを示したフローチャートである。
【図１３ｄ】本発明の第４の実施形態における、処理の流れを示したフローチャートである。
【図１４】８x８ブロックの量子化結果例、及び、それについて図２ａ又は図２ｅに示すスキャン順序で２個ずつ配列した場合の組合せを示す図である。
【図１５】８x８ブロックの量子化結果例、及び、それについて図２ａ又は図２ｅに示すスキャン順序で２個ずつ配列した場合の組合せを示す図である。
【図１６】８x８ブロックの量子化結果例、及び、それについて図２ａ又は図２ｅに示すスキャン順序で２個ずつ配列した場合の組合せを示す図である。
【図１】
2007074742.tif 000003
【図２ａ】
2007074742.tif 000004
【図２ｂ】
2007074742.tif 000005
【図２ｃ】
2007074742.tif 000006
【図２ｄ】
2007074742.tif 000007
【図２ｅ】
2007074742.tif 000008
【図３】
2007074742.tif 000009
【図４】
2007074742.tif 000010
【図５】
2007074742.tif 000011
【図６】
2007074742.tif 000012
【図７】
2007074742.tif 000013
【図８】
2007074742.tif 000014
【図９】
2007074742.tif 000015
【図１０】
2007074742.tif 000016
【図１１】
2007074742.tif 000017
【図１２ａ】
2007074742.tif 000018
【図１２ｂ】
2007074742.tif 000019
【図１２ｃ】
2007074742.tif 000020
【図１２ｄ】
2007074742.tif 000021
【図１３ａ】
2007074742.tif 000022
【図１３ｂ】
2007074742.tif 000023
【図１３ｃ】
2007074742.tif 000024
【図１３ｄ】
2007074742.tif 000025
【図１４】
2007074742.tif 000026
【図１５】
2007074742.tif 000027
【図１６】
2007074742.tif 000028