(57)【要約】【課題】量子化処理のための除算演算処理の高速化を図る。【解決手段】被除数のうち所定ビットよりも上位ビットの被除数が、除数よりも小さいか否か比較判定し、上位ビットの被除数が除数よりも小さい場合には、商のうち上位ビットに対応するビットの商をゼロとするとともに、所定ビット以下の下位ビットの被除数を除数で除算して、下位ビットに対応するビットの商を求めることにより、被除数を除数で除算した商を求める。【選択図】図３
2009175958.tif 000002
【特許請求の範囲】
【請求項１】
被除数を除数で除算した商を求める除算器であって、
演算手段と、
前記被除数のうち所定ビットよりも上位ビットの前記被除数が、前記除数よりも小さいか否か比較判定するための被除数部分比較手段と、
前記上位ビットの被除数が前記除数よりも小さい場合には、前記商のうち前記上位ビットに対応するビットの商をゼロとするとともに、前記所定ビット以下の下位ビットの前記被除数を前記除数で除算して、前記下位ビットに対応するビットの商を求めることにより、前記被除数を前記除数で除算した商を求めるように、前記演算手段を制御する制御手段と、
を備えることを特徴とする除算器。
【請求項２】
請求項１記載の除算器であって、
前記所定ビットの大きさが順に異なる複数の被除数部分比較手段を備え、
前記制御手段は、複数の前記所定ビットのうち第１の所定ビットよりも上位ビットの被除数が前記除数よりも大きく、前記第１の所定ビットの次に大きい第２の所定ビットよりも上位ビットの被除数が前記除数よりも小さい場合には、前記商のうち前記第２の所定ビットよりも上位ビットに対応するビットの商をゼロとするとともに、前記第２の所定ビット以下の下位ビットの被除数を前記除数で除算して、前記第２の所定ビット以下の下位ビットに対応するビットの商を求めることにより、前記被除数を前記除数で除算した商を求めるように、前記演算手段を制御する
ことを特徴とする除算器。
【請求項３】
請求項１または請求項２記載の除算器であって、
さらに、前記被除数が前記除数よりも小さいか否か比較判定するための被除数全体比較手段を備え、
前記制御手段は、前記被除数が前記除数よりも小さい場合には、各ビットの商をゼロとすることにより、前記被除数を前記除数で除算した商を求めるように、前記演算手段を制御する
ことを特徴とする除算器。
【請求項４】
請求項１ないし請求項３のいずれかに記載の除算器であって、
前記被除数は画像データを離散コサイン変換したＤＣＴ係数であり、
前記除数は所定の量子化閾値であり、
前記所定ビットは、前記ＤＣＴ係数を前記量子化閾値で除算することにより得られる商としての量子化係数の特性に基づいて決定される
ことを特徴とする除算器。
【請求項５】
請求項４記載の除算器を備え、
前記除算器に、前記被除数として前記ＤＣＴ係数を入力し、前記除数として前記量子化閾値を入力することにより、前記ＤＣＴ係数を前記量子化閾値で除算して求められる商を前記量子化係数として得ることを特徴とする画像符号化装置。
【請求項６】
被除数を除数で除算した商を求める除算方法であって、
前記被除数のうち所定ビットよりも上位ビットの前記被除数が、前記除数よりも小さいか否か比較判定し、
前記上位ビットの被除数が前記除数よりも小さい場合には、前記商のうち前記上位ビットに対応するビットの商をゼロとするとともに、前記所定ビット以下の下位ビットの前記被除数を前記除数で除算して、前記下位ビットに対応するビットの商を求めることにより、前記被除数を前記除数で除算した商を求める、
ことを特徴とする除算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、除算器、特に、画像符号化装置において実行される量子化処理のための除算演算を効率的に行なうことが可能な除算器に関する。
【背景技術】
【０００２】
画像データの圧縮符号化方式であるＪＰＥＧ（Joint Photographic Expert Group）やＭＰＥＧ（Moving Picture Experts Group）による画像データの圧縮符号化では、二次元離散コサイン変換（二次元ＤＣＴ）により得られたＤＣＴ係数を、量子化閾値で除算することにより、その商としての量子化係数を得る量子化処理が実行される。従って、画像データの圧縮符号化を実行する画像符号化装置には、量子化処理を実行する回路として除算演算を実行する除算器が備えられることになる。
【０００３】
ここで、除算演算を実行する除算器は、一般的に処理速度が遅いという問題がある。図８は、基本的な除算演算のアルゴリズムを示す説明図である。
【０００４】
まず、［Ｎ＋１］ビットの被減数Ｍｄの各ビットの値を“０”とするとともに、インデックスｉの値を［Ｍ−１］とする（ステップＳ１０１０）。ここで、Ｍは被除数Ｄｄのビット数を示し、Ｎは除数Ｄｓのビット数を示す。
【０００５】
そして、被減数Ｍｄに、インデックスｉに対応するビットＤｄ［ｉ］の値を加算する（ステップＳ１０２０）。
【０００６】
次に、被減数Ｍｄが除数Ｄｓ以上の場合には（ステップＳ１０３０：ＹＥＳ）、被減数Ｍｄから除数Ｄｓを減算し（ステップＳ１０４０）、インデックスｉに対応するビットの商Ｑ［ｉ］を“１”とする（ステップＳ１０５０）。一方、被減数Ｍｄが除数Ｄｓよりも小さい場合には（ステップＳ１０３０：ＮＯ）、商Ｑ［ｉ］を“０”とする（ステップＳ１０６０）。
【０００７】
そして、インデックスｉが“０”である場合には（ステップＳ１０７０：ＹＥＳ）、この除算演算を終了する。一方、インデックスｉが“０”でない場合には（ステップＳ１０７０：ＮＯ）、インデックスｉを“１”減算し（ステップＳ１０８０）、被減数Ｍｄを１ビット左シフトして、最上位ビットの値を廃棄した値を新たな被減数Ｍｄとした上で（ステップＳ１０９０）、ステップＳ１０２０に戻ってステップＳ１０２０〜ステップＳ１０６０の処理を実行する。すなわち、インデックスｉが“０”となるまで、ステップＳ１０２０〜ステップＳ１０９０の処理を繰り返す。
【０００８】
以上のように、除算演算の基本的なアルゴリズムは、ステップＳ１０２０〜ステップＳ１０９０の処理を被除数の最上位ビット（ｉ＝［Ｍ−１］）から最下位ビット（ｉ＝０）まで順に繰り返し実行することにより除算結果を得るものである。
【０００９】
図９は、除算演算の基本的なアルゴリズムに従った除算器として、演算アルゴリズムにおける被除数Ｄｄの各ビットについての処理を、基準クロックの１クロックの間に、１ビットの処理を実行する場合の構成を示すブロック図である。
【００１０】
この除算器１０００は、Ｍビットの被除数Ｄｄを記憶する被除数レジスタ１０１と、Ｎビットの除数Ｄｓを記憶する除数レジスタ１０２と、Ｍビットの商Ｑを記憶する商レジスタ１０３と、を備える。また、除算器１０００は、Ｍビットの被除数Ｄｄ［Ｍ−１：０］から１ビットの被除数Ｄｄ［ｉ］を選択して出力するセレクタ１０４と、１ビットの被除数Ｄｄ［ｉ］を被減数Ｍｄの最下位ビットとして記憶する［Ｎ＋１］ビットの被減数レジスタ１０５と、を備える。さらに、また、除算器１０００は、［Ｎ＋１］ビットの被減数ＭｄからＮビットの除数Ｄｓを減算し、そのＮビットの減算結果（剰余）を出力する減算器１０６と、被減数Ｍｄが除数Ｄｓ以上であるか否か比較し、その１ビットの比較結果を出力する比較器１０７と、［Ｎ＋１］ビットの被減数Ｍｄを１ビット左シフトし、Ｎビットの被減数Ｍｄを出力する左シフト回路１０８と、減算器１０６の出力と左シフト回路１０８の出力のいずれか一方を選択して出力するセレクタ１０９と、比較器１０７の１ビットの出力をＭビットの商レジスタ１０３のいずれのビットに書き込むかを決定するセレクタ１１０と、セレクタ１０４およびセレクタ１１０の動作を制御する制御回路１１１と、を備える。なお、比較器１０７の出力は、セレクタ１０９の制御信号としてセレクタ１０９にも入力される。
【００１１】
セレクタ１０４および被除数レジスタ１０５によって、図８のステップＳ１０２０の処理、すなわち、被減数Ｍｄに、インデックスｉに対応するビットの被除数Ｄｄ［ｉ］の値を加算する処理が実行される。
【００１２】
減算器１０６、比較器１０７、および、セレクタ１１０によって、ステップＳ１０３０〜Ｓ１０６０の処理、すなわち、被減数Ｍｄが除数Ｄｓ以上の場合には、被減数Ｍｄら除数Ｄｓを減算し、インデックスｉに対応するビットの商Ｑ［ｉ］を“１”とし、被減数Ｍｄが除数Ｄｓよりも小さい場合には、商Ｑ［ｉ］を“０”とする、処理が実行される。
【００１３】
制御回路１１１、左シフト回路１０８、および、セレクタ１０９によって、ステップＳ１０７０〜Ｓ１０９０の処理、すなわち、インデックスｉを“１”減算し、被減数Ｍｄを１ビット左シフトして、最上位ビットの値を廃棄した値を被減数Ｍｄの上位Ｎビットの新たな値とする処理が実行される。
【００１４】
図９のような構成とした場合には、被除数Ｄｄのビット数Ｍに等しいクロック数に対応する時間が除算演算処理のために必要となる。例えば、被除数としてのＤＣＴ係数は１１ビット（符号ナシ）で表され、除数としての量子化係数は８ビットで表されるが、基準クロックの１クロックで１ビットの処理を実行する場合には、１１クロック分の時間が除算演算処理のために必要となる。
【００１５】
また、図１０は、除算演算の基本的なアルゴリズムに従った除算器として、演算アルゴリズムにおける被除数Ｄｄの各ビットについての処理を、基準クロックの１クロックの間に、３ビットの処理を実行する場合の構成を示すブロック図である。
【００１６】
この除算器１０００Ａは、基準クロックの１クロックの間に３ビットの処理を実行するために、図９の除算器１０００の減算器１０６、比較器１０７、左シフト回路１０８、および、セレクタ１０９に換えて、３ビット分の減算器１０６ａ〜１０６ｃ、比較器１０７ａ〜１０７ｃ、左シフト回路１０８ａ〜１０８ｃ、および、セレクタ１０９ａ〜１０９ｃを３段に備える構成としたものである。また、この構成に対応するために、除算器１０００のセレクタ１０４およびセレクタ１１０に換えて、Ｍビットの被除数Ｄｄ［Ｍ−１：０］から３ビットの被除数Ｄｄ［ｉ］，Ｄｄ［ｉ−１］，Ｄｄ［ｉ−２］を選択し、減算器１０６ａ，１０６ｂ，１０６ｃに入力する［Ｎ＋１］ビットの被減数Ｍｄのうちの最下位ビットとして出力するセレクタ１０４Ａと、比較器１０７ａ〜１０７ｃの出力をＭビットの商レジスタ１０３のいずれの３ビットに書き込むかを決定するセレクタ１１０Ａと、を備える。さらに、制御回路１１１に換えて、セレクタ１０４Ａおよびセレクタ１１０Ａの動作を制御する制御回路１１１Ａを備える。
【００１７】
図１０のような構成とした場合には、図９の構成の場合に比べて、除算演算処理の時間は短くなる。例えば、１１ビットのＤＣＴ係数を被除数とし、８ビットの量子化係数を除数とする場合、基準クロックの４クロック分の時間で除算演算処理が実行される。しかしながら、一度に処理できるビット数は回路の動作速度や回路を構成する半導体プロセスの種類等に依存するため、まとめて実行可能なビット数には制限がある。また、まとめて実行するビット数が増えるほど、回路規模もそれに比例して増大することになる。
【００１８】
また、一連の処理をパイプライン処理化することで除算器のスループットを向上させることも可能であるが、この場合にも、やはりパイプライン段数分の演算処理回路が増加し、加えてパイプライン・レジスタも必要となるため、回路規模が増加する。
【００１９】
以上のような問題を解決する除算演算の手法を用いた除算器として、例えば、特許文献１，２に記載の例が提案されている。これらの除算演算の手法は、被除数としてのＤＣＴ係数と除数としての量子化閾値とを比較する。そして、ＤＣＴ係数よりも量子化閾値の方が大きい場合には、被減数から除数を減算する処理を繰り返すことによって実行される除算演算処理を行なわずに、量子化係数としての商を“０”に設定することによって、除算演算処理に必要なクロック数を低減し、全体としての演算処理時間の高速化を図るものである。
【００２０】
しかしながら、上記除算演算の手法を用いた除算器では、被除数としてのＤＣＴ係数が除数としての量子化閾値よりも大きい場合には、結局、被除数としてのＤＣＴ係数の各ビットについて最上位ビットから最下位ビットまで順に、ステップＳ１０２０〜ステップＳ１０９０のような処理を繰り返すことになり、除算演算処理時間の短縮化を図ることができず、全体としての演算処理時間の高速化が不十分であった。
【００２１】
【特許文献１】特開平１０−１９１３３４号公報
【特許文献２】特開平３−８５８７１号公報
【発明の開示】
【発明が解決しようとする課題】
【００２２】
本発明は、上記課題を解決するためになされたものであり、量子化処理のための除算演算処理の高速化を図ることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００２３】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【００２４】
［適用例１］
被除数を除数で除算した商を求める除算器であって、
被除数を除数で除算した商を求める除算器であって、
演算手段と、
前記被除数のうち所定ビットよりも上位ビットの前記被除数が、前記除数よりも小さいか否か比較判定するための被除数部分比較手段と、
前記上位ビットの被除数が前記除数よりも小さい場合には、前記商のうち前記上位ビットに対応するビットの商をゼロとするとともに、前記所定ビット以下の下位ビットの前記被除数を前記除数で除算して、前記下位ビットに対応するビットの商を求めることにより、前記被除数を前記除数で除算した商を求めるように、前記演算手段を制御する制御手段と、
を備えることを特徴とする除算器。
【００２５】
適用例１記載の除算器では、被除数のうち所定ビットよりも上位ビットの被除数が、除数よりも小さいか否か比較判定し、所定ビットよりも上位ビットの被除数が除数よりも小さい場合には、上位ビットの被除数に対応するビットの商をゼロとするとともに、所定ビット以下の被除数を除数で除算して、所定ビット以下の下位ビットの被除数に対応するビットの商を求めるので、除算を行なう被除数のビットを限定して、除算演算処理に要する時間を短縮化することができるので、除算演算処理の高速化を図ることが可能である。
【００２６】
［適用例２］
適用例１記載の除算器であって、
前記所定ビットの大きさが順に異なる複数の被除数部分比較手段を備え、
前記制御手段は、複数の前記所定ビットのうち第１の所定ビットよりも上位ビットの被除数が前記除数よりも大きく、前記第１の所定ビットの次に大きい第２の所定ビットよりも上位ビットの被除数が前記除数よりも小さい場合には、前記商のうち前記第２の所定ビットよりも上位ビットに対応するビットの商をゼロとするとともに、前記第２の所定ビット以下の下位ビットの被除数を前記除数で除算して、前記第２の所定ビット以下の下位ビットに対応するビットの商を求めることにより、前記被除数を前記除数で除算した商を求めるように、前記演算手段を制御する
ことを特徴とする除算器。
【００２７】
適用例２の除算器では、複数の所定ビットのうち第１の所定ビットよりも上位ビットの被除数が除数よりも大きく、第１の所定ビットの次に大きい第２の所定ビットよりも上位ビットの被除数が除数よりも小さい場合には、第２の所定ビットよりも上位ビットに対応するビットの商をゼロとするとともに、第２の所定ビット以下の下位ビットの被除数を除数で除算して、第２の所定ビット以下の下位ビットの被除数に対応するビットの商を求めるので、除算を行なう被除数のビットを第１の所定ビットだけでなく第２の所定ビットでも限定して、除算演算処理に要する時間を短縮化することができるので、除算演算処理の高速化をさらに図ることが可能である。
【００２８】
［適用例３］
適用例１または適用例２記載の除算器であって、
さらに、前記被除数が前記除数よりも小さいか否か比較判定するための被除数全体比較手段を備え、
前記制御手段は、前記被除数が前記除数よりも小さい場合には、各ビットの商をゼロとすることにより、前記被除数を前記除数で除算した商を求めるように制御する
ことを特徴とする除算器。
【００２９】
適用例３記載の除算器では、被除数が除数よりも小さいか否か比較判定し、被除数が除数よりも小さい場合には、各ビットの商をゼロとすることにより、被除数を除数で除算した商を求めて、実際に被除数を除数で除算する処理を省略することができるので、さらに、除算演算処理に要する時間を短縮化し、除算演算処理の高速化を図ることが可能である。
【００３０】
［適用例４］
適用例１ないし適用例４のいずれかに記載の除算器であって、
前記被除数は画像データを離散コサイン変換したＤＣＴ係数であり、
前記除数は所定の量子化閾値であり、
前記所定ビットは、前記ＤＣＴ係数を前記量子化閾値で除算することにより得られる商としての量子化係数の特性に基づいて決定される
ことを特徴とする除算器。
【００３１】
適用例４に記載の除算器では、被除数としてのＤＣＴ係数を除数としての量子化閾値で除算して、その商としての量子化係数を得る除算演算処理としての量子化処理に要する時間を短縮化し、量子化処理の高速化を図ることが可能である。
【００３２】
［適用例５］
適用例４記載の除算器を備え、
前記除算器に、前記被除数として前記ＤＣＴ係数を入力し、前記除数として前記量子化閾値を入力することにより、前記ＤＣＴ係数を前記量子化閾値で除算して求められる商を前記量子化係数として得ることを特徴とする画像符号化装置。
【００３３】
適用例５に記載の画像符号化装置では、適用例４と同様の効果を奏することができる。
【００３４】
［適用例６］
被除数を除数で除算した商を求める除算方法であって、
前記被除数のうち所定ビットよりも上位ビットの前記被除数が、前記除数よりも小さいか否か比較判定し、
前記上位ビットの被除数が前記除数よりも小さい場合には、前記商のうち前記上位ビットに対応するビットの商をゼロとするとともに、前記所定ビット以下の下位ビットの前記被除数を前記除数で除算して、前記下位ビットに対応するビットの商を求めることにより、前記被除数を前記除数で除算した商を求める、
ことを特徴とする除算方法。
【００３５】
適用例６に記載の除算方法によれば、適用例１と同様の効果を奏することができる。
【発明を実施するための最良の形態】
【００３６】
Ａ．画像符号化装置の構成：
Ｂ．第１実施例の除算器の構成：
Ｂ１．除算アルゴリズム：
Ｂ２．除算器の具体例：
Ｃ．第２実施例の除算器の構成：
Ｃ１．除算アルゴリズム：
Ｃ２．除算器の具体例：
Ｄ．変形例：
【００３７】
Ａ．画像符号化装置の構成：
図１は、本発明の除算器を量子化部に適用した画像符号化装置の構成を示すブロック図である。図２は、画像符号化装置で実行される量子化処理について示す説明図である。
【００３８】
画像符号化装置１０は、ＤＣＴ部２０と、量子化部３０と、量子化テーブル４０と、ハフマン符号化部５０と、ハフマンテーブル６０と、を備える。
【００３９】
ＤＣＴ部２０は、図２（Ａ）に示すような［８×８］画素のブロックに分割された各画像について、二次元離散コサイン変換を行なって、図２（Ｂ）に示すようなＤＣＴ係数を得る機能ブロックである。
【００４０】
量子化部３０は、図２（Ｃ）に示すような量子化テーブル４０に格納されている量子化閾値で各ブロックのＤＣＴ係数を除算することにより、図２（Ｄ）に示すように、その商としての量子化係数を得る機能ブロックである。
【００４１】
得られた量子化係数は、図２（Ｄ）に示すように、番号Ｑ１〜Ｑ６４で表される量子化係数の走査順に取り出され、ハフマン符号化部５０に入力される。
【００４２】
ハフマン符号化部５０は、入力された量子化係数をハフマンテーブル６０に従って符号化する機能ブロックである。
【００４３】
以上のように、画像符号化装置１０は、画像を表す画像データをＤＣＴ部２０でＤＣＴ係数に変換し、除算器を用いた量子化部３０で、得られたＤＣＴ係数を量子化閾値で除算処理することにより量子化し、得られた量子化係数をハフマン符号化部５０で符号化することにより、画像データの表す画像を符号化した符号データを生成する装置である。
【００４４】
Ｂ．第１実施例の除算器の構成：
以下では、画像符号化装置１０の量子化部３０に用いられる第１実施例としての除算器について説明する。
【００４５】
Ｂ１．除算アルゴリズム：
一般的に、自然画像は高周波成分をあまり含んでいないため、画像データをＤＣＴ変換することにより得られたＤＣＴ係数のうち、高周波成分のＤＣＴ係数については除去したとしても、画質の劣化は少ないと考えられる。
【００４６】
そこで、画像符号化装置１０の量子化テーブル４０としては、通常、量子化部３０の除算演算による量子化処理において、低周波成分を残し、高周波成分を除去するように、低周波成分に対応する量子化閾値は小さく、高周波成分に対応する量子化閾値は大きい値に設定されたものが用いられる。
【００４７】
従って、このような自然画像の性質により、量子化部３０における量子化処理としての除算演算で求められる商としての量子化係数の値には、以下のような偏りが認められる。
【００４８】
ＪＰＥＧ方式による画像圧縮符号化処理の場合には、量子化処理として、［ＤＣＴ係数（符号ナシ１１ビット）÷量子化閾値(符号ナシ８ビット)］で表される除算演算が実行され、その商としての量子化係数（符号ナシ１１ビット）は、［０ｘ０００］〜［０ｘ７ＦＦ］の範囲となる。
【００４９】
ここで、実際の自然画像、例えば、デジタルカメラで撮像した５Ｍピクセルの写真を、高品質モードでＪＰＥＧ方式による画像圧縮符号化処理を実行した場合において、量子化処理としての除算演算の商である量子化係数は、「０ｘ０００」が６５〜８０％、［０ｘ００１］〜［０ｘ００７］（３ビット以下の値）が１５〜３０％、［０ｘ００８］〜［０ｘ０３Ｆ］（６ビット以下の値）が３〜６％、［０ｘ０４０］〜［０ｘ１ＦＦ］（９ビット以下の値）が０．３〜０．６％、［０ｘ２００］〜［０ｘ７ＦＦ］（１１ビット以下の値）が０％であった。すなわち、［０ｘ０００］が全体の半数以上を占めており、３ビット以下の値を含めると全体の９０％以上を占めていることがわかった。
【００５０】
そこで、以上の点に着目すると、以下で説明するように、除算演算処理の高速化を図ることが可能であると考えられる。
【００５１】
［１］量子化係数が［０ｘ０００］であることは、ＤＣＴ係数(被除数)が量子化閾値(除数)よりも小さいことを示している。そこで、従来例でも説明したように、ＤＣＴ係数と量子化閾値とを比較し、ＤＣＴ係数＜量子化閾値である場合には、除算演算の商としての量子化係数を［０ｘ０００］として、従来アルゴリズムで説明したＤＣＴ係数（被除数）のビットごとに実行する減算処理（図８のステップＳ１０２０〜Ｓ１０９０の処理参照）を省略する。これにより、例えば、上記実際の自然画像の量子化処理としての除算演算処理のうち、６５〜８０％の除算演算処理における処理時間の短縮化を図ることができ、全体として除算演算処理の高速化を図ることができる。
【００５２】
［２］量子化係数が［０ｘ００１］〜［０ｘ００７］の３ビットで表される値であることは、１１ビットのＤＣＴ係数（被除数）のうちの４ビット目〜１１ビット目までで表される数（１１ビットのＤＣＴ係数を３ビット右シフトした数）が量子化閾値（除数）よりも小さいことを示している。そこで、１１ビットのＤＣＴ係数のうちの４ビット目〜１１ビット目までで表される数が量子化閾値より小さい場合には、量子化係数のうち４ビット目〜１１ビット目の各ビットの値を“０”とし、３ビット目〜１ビット目の各ビットについてのみ除算処理を行なうことにより、１１ビット目〜４ビット目のビットごとに実行する減算処理（図８のステップＳ１０２０〜Ｓ１０９０の処理参照）を省略する。これにより、例えば、上記実際の自然画像の量子化処理としての除算演算処理のうち、１５〜３０％の除算演算処理における処理時間の短縮化を図ることができ、全体として除算演算処理の高速化を図ることができる。
【００５３】
以上のように、除算演算の商としての量子化係数がＫビット（Ｋは除数のビット数よりも小さい）の範囲内であることは、被除数としてのＤＣＴ係数の［Ｋ＋１］ビット目以上の値（被除数としてのＤＣＴ係数をＫビット右シフトした数）と、除数としての量子化閾値と、を比較することにより判定可能であり、この比較結果を用いて減算処理を開始するビット位置を限定することができる。これにより、除算演算処理の高速化が可能となる。
【００５４】
図３は、第１実施例としての除算演算のアルゴリズムを示す説明図である。なお、以下の説明では、Ｍビットの被除数Ｄｄとして１１ビット（符号ナシ）のＤＣＴ係数を、Ｎビットの除数Ｄｓとして８ビットの量子化係数を例示する。
【００５５】
まず、Ｍビット（＝１１ビット）の被除数ＤｄがＮビット（＝８ビット）の除数Ｄｓよりも小さい場合には（ステップＳ１０１：ＮＯ）、Ｍビット（＝１１ビット）の商Ｑ［Ｍ−１］〜Ｑ［０］の各ビットの値を“０”とし（ステップＳ１０２）、この除算演算を終了する。一方、被除数Ｄｄが除数Ｄｓ以上である場合には（ステップＳ１０１：ＹＥＳ）、さらに、被除数ＤｄのＫビット目（Ｋ＜Ｎ）よりも上位ビットの被除数Ｄｄ［Ｍ−１：Ｋ］が除数Ｄｓ以上であるか否かに応じて（ステップＳ１０３）、次の処理を実行する。なお、ここでは、Ｋを“３”として例示する。
【００５６】
被除数ＤｄのＫビット（＝３ビット）目よりも上位ビットの被除数Ｄｄ［Ｍ−１：Ｋ］（＝Ｄｄ［１０：３］）が除数Ｄｓ以上である場合には（ステップＳ１０３：ＹＥＳ）、［Ｎ＋１］ビット（＝９ビット）の被減数Ｍｄの各ビットの値を“０”とし、インデックスｉの値を［Ｍ−１］（＝１０）とし（ステップＳ１０４）、さらに、被減数Ｍｄに、インデックスｉに対応するビットＤｄ［ｉ］の値を加算する（ステップＳ１０５）。一方、被除数ＤｄのＫビット（＝３ビット）目よりも上位ビットの被除数Ｄｄ［Ｍ−１：Ｋ］（＝Ｄｄ［１０：３］）が除数Ｄｓよりも小さい場合には（ステップＳ１０３：ＮＯ）、被除数Ｄｄ［Ｍ−１：Ｋ−１］（＝Ｄｄ［１０：２］）を被減数Ｍｄとし、インデックスｉの値を［Ｋ−１］（＝２）とするとともに、商ＱのＫビット（＝３ビット）目よりも上位ビットの商Ｑ［Ｍ−１］〜Ｑ［Ｋ］の各ビットの値を“０”とする（ステップＳ１０６）。
【００５７】
次に、被減数Ｍｄが除数Ｄｓ以上の場合には（ステップＳ１０７：ＹＥＳ）、被減数Ｍｄから除数Ｄｓを減算し（ステップＳ１０８）、インデックスｉに対応するビットの商Ｑ［ｉ］を“１”とする（ステップＳ１０９）。一方、被減数Ｍｄが除数Ｄｓよりも小さい場合には（ステップＳ１０７：ＮＯ）、商Ｑ［ｉ］を“０”とする（ステップＳ１１０）。
【００５８】
そして、インデックスｉが“０”である場合には（ステップＳ１１１：ＹＥＳ）、この除算演算を終了する。一方、インデックスｉが“０”でない場合には（ステップＳ１１１：ＮＯ）、インデックスｉを“１”減算し（ステップＳ１１２）、被減数Ｍｄを１ビット左シフトして、最上位ビットの値を廃棄した値を新たな被減数Ｍｄとした上で（ステップＳ１１３）、ステップＳ１０５に戻ってステップＳ１０５〜ステップＳ１１０の処理を実行する。すなわち、インデックスｉが“０”となるまで、ステップＳ１０５〜ステップＳ１１３の処理を繰り返す。なお、このステップＳ１０５〜ステップＳ１０７の処理は、図８に示した基本的な除算演算のアルゴリズムにおけるステップＳ１０２０〜ステップＳ１０９０の処理と同じである。
【００５９】
以上のように、本実施例のアルゴリズムでは、第１に、被除数Ｄｄが除数Ｄｓ以上である場合には、Ｍビットの商Ｑ［Ｍ−１］〜Ｑ［０］（＝Ｑ［１０］〜Ｑ［０］）の各ビットの値を“０”とすることにより除算結果を得るものである。第２に、Ｋビット（＝３ビット）目より上位ビットの被除数Ｄｄ［Ｍ−１：Ｋ］（＝Ｄｄ［１０：３］）が除数Ｄｓより小さい場合には、Ｋビット目よりも上位ビットの商Ｑ［Ｍ−１］〜Ｑ［Ｋ］の各ビットの値を“０”とし、ステップＳ１０５〜ステップＳ１１３の処理を被除数のＫビット目（ｉ＝［Ｋ−１］＝２）から最下位ビット（ｉ＝０）まで順に繰り返し実行することにより除算結果を得るものである。第３に、Ｋビット（＝３ビット）目より上位ビットの被除数Ｄｄ［Ｍ−１：Ｋ］（＝Ｄｄ［１０：３］）が除数Ｄｓ以上である場合には、ステップＳ１０５〜ステップＳ１１３の処理を被除数の最上位ビット（ｉ＝［Ｍ−１］）から最下位ビット（ｉ＝０）まで順に繰り返し実行することにより除算結果を得るものである。従って、被除数Ｄｄが除数Ｄｓよりも小さい場合には、ステップＳ１０５〜ステップＳ１１３の処理を省略することができる。また、Ｋビット（＝３ビット）目より上位ビットの被除数Ｄｄ［Ｍ−１：Ｋ］（＝Ｄｄ［１０：３］）が除数Ｄｓより小さい場合には、ステップＳ１０５〜ステップＳ１１３の処理の繰り返し回数をＫ回（＝３回）に限定することができる。
【００６０】
例えば、上記したように、１枚の自然画像のＪＰＥＧ方式による画像圧縮符号化処理の場合において、量子化処理としての除算演算の商である量子化係数が［０ｘ０００］となる場合、すなわち、Ｍビットの被除数Ｄｄとしての１１ビットのＤＣＴ係数がＮビットの除数Ｄｓとしての８ビットの量子化閾値よりも小さくなる場合が６５〜８０％である。また、［０ｘ００１］〜［０ｘ００７］となる場合、すなわち、Ｋビット（＝３ビット）目より上位ビットの被除数Ｄｄ［Ｍ−１：Ｋ］（＝Ｄｄ［１０：３］が除数Ｄｓより小さくなる場合が１５〜３０％である。従って、量子化係数が［０ｘ０００］〜［０ｘ００７］となる場合、すなわち、量子化係数としての商Ｑが３ビットの範囲内となる場合が、１枚の自然画像に対する処理結果のうちの９０％以上であることになる。従って、本実施例のアルゴリズムでは、１枚の自然画像に対する除算演算の９０％以上の処理において、除算演算処理時間の短縮化を図ることが可能である。この結果、除算演算処理の高速化を図ることが可能である。
【００６１】
Ｂ２．除算器の具体例：
図４は、第１実施例としての除算演算のアルゴリズムに従った除算器として、被除数Ｄｄの各ビットについての処理を、基準クロックの１クロックの間に、１ビットの処理を実行する場合の構成を示すブロック図である。
【００６２】
この除算器１００は、図９に示した基本的な除算演算のアルゴリズムに従った除算器１０００の構成に加えて、２つの比較器１１２，１１３と、セレクタ１１４と、を備える。また、セレクタ１１０と商レジスタ１０３との間に、セレクタ１１５を備える。さらに、制御回路１１１に換えて、制御回路１１６を備える。
【００６３】
比較器１１２は、Ｍビット（＝１１ビット）の被除数Ｄｄと、Ｎビット（＝８ビット）の除数Ｄｓと、を比較し、その比較結果を制御回路１１６へ出力する機能ブロックである。
【００６４】
セレクタ１１４は、Ｍビット（＝１１ビット）の被除数Ｄｄのうち、Ｋビット目よりも上位のビットの被除数Ｄｄ［Ｍ−１：Ｋ］（＝Ｄｄ［１０：３］）を選択し出力する機能ブロックである。
【００６５】
比較器１１３は、被除数Ｄｄ［Ｍ−１：Ｋ］（＝Ｄｄ［１０：３］）と、除数Ｄｓと、を比較し、その比較結果を制御回路１１６へ出力する機能ブロックである。
【００６６】
セレクタ１１５は、セレクタ１１０の出力を商レジスタ１０３に書き込むか、“０”を書き込むか選択する機能ブロックである。
【００６７】
制御回路１１６は、比較器１１２および比較器１１３の比較結果に応じて、セレクタ１０４、セレクタ１１０、および、セレクタ１１５の動作を制御する機能ブロックである。
【００６８】
比較器１１２、セレクタ１１５、および、制御回路１１６によって、図３のステップＳ１０１およびステップＳ１０２の処理、すなわち、Ｍビット（＝１１ビット）の被除数ＤｄがＮビット（＝８ビット）の除数Ｄｓよりも小さい場合には、Ｍビット（＝１１ビット）の商Ｑ［Ｍ−１］〜Ｑ［０］（＝Ｑ［１０］〜Ｑ［０］）の各ビットの値を“０”とする処理が実行される。
【００６９】
セレクタ１１４、比較器１１３、セレクタ１０４、セレクタ１１５、および、制御回路１１６によって、ステップＳ１０３〜Ｓ１０６の処理、すなわち、被除数ＤｄのＫビット（＝３ビット）目よりも上位ビットの被除数Ｄｄ［Ｍ−１：ｋ］（＝Ｄｄ［１０：３］）が除数Ｄｓ以上である場合には、［Ｎ＋１］ビット（＝９ビット）の被減数Ｍｄの各ビットの値を“０”とするとともに、インデックスｉの値を［Ｍ−１］（＝１０）とし、さらに、被減数Ｍｄに、インデックスｉに対応するビットＤｄ［ｉ］の値を加算する処理が実行される。また、被除数ＤｄのＫビット（＝３ビット）目よりも上位ビットの被除数Ｄｄ［Ｍ−１：Ｋ］（＝Ｄｄ［１０：３］）が除数Ｄｓよりも小さい場合には、被除数Ｄｄ［Ｍ−１：Ｋ−１］（＝Ｄｄ［１０：２］）を被減数Ｍｄとし、インデックスｉの値を［Ｋ−１］（＝２）とするとともに、Ｋビット（＝３ビット）目よりも上位ビットの商Ｑ［Ｍ−１］〜Ｑ［Ｋ］の各ビットの値を“０”とする処理が実行される。
【００７０】
減算器１０６、比較器１０７、および、セレクタ１１０によって、ステップＳ１０７〜Ｓ１１０の処理、すなわち、被減数Ｍｄが除数Ｄｓ以上の場合には、被減数Ｍｄら除数Ｄｓを減算し、インデックスｉに対応するビットの商Ｑ［ｉ］を“１”とし、被減数Ｍｄが除数Ｄｓよりも小さい場合には、商Ｑ［ｉ］を“０”とする、処理が実行される。
【００７１】
制御回路１１６、左シフト回路１０８、および、セレクタ１０９によって、ステップＳ１１１〜Ｓ１１３の処理、すなわち、インデックスｉを“１”減算し、被減数Ｍｄを１ビット左シフトして、最上位ビットの値を廃棄した値を被減数Ｍｄの上位Ｎビットの新たな値とする処理が実行される。
【００７２】
この除算器１００の構成では、図３に示した除算演算のアルゴリズムに従った除算演算を実行することができ、画像圧縮符号化装置における量子化処理としての除算演算の処理時間の短縮化を図ることができるので、量子化処理のための除算演算処理の高速化を図ることが可能である。
【００７３】
また、この除算器１００の構成では、基本的には、従来の除算器１０００（図９参照）に、２つの比較器１１２，１１３と、２つのセレクタ１１４，１１５と、を追加するのみで構成することができるので、例えば、汎用プロセッサに備えられる除算器のような複雑かつ回路規模の大きい除算器と比較して、効率が良い。
【００７４】
また、除算演算処理時間の短縮化を図ることができないような被除数Ｄｄの場合には、従来と同様の除算演算処理が実行されるので、少なくとも従来の除算器１０００と同様に動作することができる。
【００７５】
図５は、第１実施例としての除算演算のアルゴリズムに従った除算器として、被除数Ｄｄの各ビットについての処理を、基準クロックの１クロックの間に、３ビットの処理を実行する場合の構成を示すブロック図である。
【００７６】
この除算器１００Ａは、図１０に示した基本的な除算演算のアルゴリズムに従った除算器１０００Ａの構成に加えて、図４に示した除算器１００と同様に、２つの比較器１１２，１１３と、セレクタ１１４と、を備える。また、セレクタ１１０Ａと商レジスタ１０３との間に、セレクタ１１５を備える。さらに、制御回路１１１Ａに換えて、制御回路１１６Ａを備える。
【００７７】
制御回路１１６Ａは、比較器１１２および比較器１１３の比較結果に応じて、セレクタ１０４Ａ、セレクタ１１０Ａ、および、セレクタ１１５の動作を制御する機能ブロックである。
【００７８】
この除算器１００Ａの構成では、図４に示した除算器１００と同様に、図３に示した除算演算のアルゴリズムに従った除算演算を実行することができ、画像圧縮符号化装置における量子化処理としての除算演算の処理時間の短縮化を図ることができるので、量子化処理のための除算演算処理の高速化を図ることが可能である。また、この除算器１００Ａの構成では、図４に示した除算器１００が、基準クロックの１クロックの間に１ビットの処理を実行するのに対して、３ビットの処理を実行することができるので、除算器１００に比べて、図３のステップＳ１０５〜ステップＳ１１３において繰り返し実行される処理の時間をさらに短縮化することができるので、量子化処理のための除算演算処理の高速化を図ることが可能である。
【００７９】
また、この除算器１００Ａの構成も、基本的には、従来の除算器１０００Ａ（図１０参照）に、２つの比較器１１２，１１３と、２つのセレクタ１１４，１１５と、を追加するのみで構成することができるので、例えば、汎用プロセッサに備えられる除算器のような複雑かつ回路規模の大きい除算器と比較して、効率が良い。
【００８０】
また、除算演算処理時間の短縮化を図ることができないような被除数Ｄｄの場合には、従来と同様の除算演算処理が実行されるので、少なくとも従来の除算器１０００Ａと同様に動作することができる。
【００８１】
なお、上記除算器１００，１００Ａにおいて、比較器１１２が本発明の被除数全体比較手段に相当し、比較器１１３およびセレクタ１１４が本発明の被除数部分比較手段に相当する。また、制御回路１１６，１１６Ａが本発明の制御手段に相当する。さらに、また、上記演算器１００において、セレクタ１０４、被減数レジスタ１０５、減算器１０６、比較器１０７、左シフト回路１０８、セレクタ１０９、セレクタ１１０、および、セレクタ１１５が、本発明の演算手段に相当する。また、上記演算器１００Ａにおいて、セレクタ１０４Ａ、被減数レジスタ１０５、減算器１０６ａ〜１０６ｃ、比較器１０７ａ〜０７ｃ、左シフト回路１０８ａ〜０８ｃ、セレクタ１０９ａ〜１０９ｃ、セレクタ１１０Ａ、および、セレクタ１１５が、本発明の演算手段に相当する。
【００８２】
Ｃ．第２実施例の除算器の構成：
Ｃ１．除算アルゴリズム：
図６は第２実施例としての除算演算のアルゴリズムの一部を示す説明図である。このアルゴリズムは、図３の第１実施例としての除算演算のアルゴリズムのステップＳ１０３とステップＳ１０４との間に、ステップＳ１０３ａ，ステップＳ１０３ｂが挿入されたものであり、その部分のみを示している。
【００８３】
具体的には、Ｋビット（３ビット）目よりも上位の被除数Ｄｄ［Ｍ−１：Ｋ］（＝Ｄｄ［１０：３］）が除数Ｄｓ以上である場合において（ステップＳ１０３：ＹＥＳ）、さらに、Ｌビット（Ｌ＞Ｋ）目よりも上位ビットの被除数Ｄｄ［Ｍ−１：Ｌ］が除数Ｄｓ以上であるか否かに応じて（ステップＳ１０３ａ）、ステップＳ１０４の処理を実行するか、ステップＳ１０３ｂの処理を実行する。なお、ここでは、Ｌ＝６を例として説明する。
【００８４】
被除数ＤｄのＬビット（＝６ビット）目よりも上位ビットの被除数Ｄｄ［Ｍ−１：Ｌ］（＝Ｄｄ［１０：６］）が除数Ｄｓ以上である場合には（ステップＳ１０３ａ：ＹＥＳ）、［Ｎ＋１］ビット（＝９ビット）の被減数Ｍｄの各ビットの値を“０”とし、インデックスｉの値を［Ｍ−１］（＝１０）とし（ステップＳ１０４）、図３のステップＳ１０５以降の処理を実行する。一方、被除数ＤｄのＬビット（＝６ビット）目よりも上位ビットの被除数Ｄｄ［Ｍ−１：Ｌ］（＝Ｄｄ［１０：６］）が除数Ｄｓよりも小さい場合には（ステップＳ１０３ａ：ＮＯ）、被除数Ｄｄ［Ｍ−１：Ｌ−１］（＝Ｄｄ［１０：４］）を被減数Ｍｄとし、インデックスｉの値を［Ｌ−１］（＝５）とするとともに、Ｌビット（＝６ビット）目よりも上位ビットの商Ｑ［Ｍ−１］〜Ｑ［Ｌ］の各ビットの値を“０”とする（ステップＳ１０３ａ）とし、図３のステップＳ１０７以降の処理を実行する。
【００８５】
本実施例のアルゴリズムは、図３に示した第１実施例のアルゴリズムの場合に加えて、Ｌビット（＝６ビット）目より上位ビットの被除数Ｄｄ［Ｍ−１：Ｌ］（＝Ｄｄ［１０：６］）が除数Ｄｓより小さい場合には、Ｌビット目より上位ビットの商Ｑ［Ｍ−１］〜Ｑ［Ｌ］の各ビットの値を“０”とし、ステップＳ１０５〜ステップＳ１１３の処理を被除数のＬビット目（ｉ＝［Ｌ−１］＝５）から最下位ビット（ｉ＝０）まで順に繰り返し実行することにより除算結果を得るものである。従って、Ｌビット（＝６ビット）目より上位ビットの被除数Ｄｄ［Ｍ−１：Ｌ］（＝Ｄｄ［１０：６］）が除数Ｄｓより小さい場合には、ステップＳ１０５〜ステップＳ１１３の処理の繰り返し回数をＬ回（＝６回）に限定することができる。
【００８６】
例えば、上記したように、１枚の自然画像のＪＰＥＧ方式による画像圧縮符号化処理の場合において、量子化処理としての除算演算の商である量子化係数が［０ｘ００８］〜［０ｘ０３Ｆ］となる場合、すなわち、Ｌビット（＝６ビット）目より上位ビットの被除数Ｄｄ［Ｍ−１：Ｌ］（＝Ｄｄ［１０：６］が除数Ｄｓより小さくなる場合が３〜６％である。従って、量子化係数が［０ｘ０００］〜［０ｘ０３Ｆ］となる場合、すなわち、量子化係数としての商Ｑが６ビットの範囲内となる場合が、１枚の自然画像に対する処理結果のうちの９３％以上であることになる。従って、１枚の自然画像に対する除算演算の９３％以上の処理において、除算演算処理時間の短縮化を図ることが可能である。この結果、第１実施例の場合よりもさらに、除算演算処理の高速化を図ることが可能である。
【００８７】
Ｃ２．除算器の具体例：
図７は、第２実施例としての除算演算のアルゴリズムに従った除算器として、被除数Ｄｄの各ビットについての処理を、基準クロックの１クロックの間に、１ビットの処理を実行する場合の構成の一部を示すブロック図である
【００８８】
この除算器２００は、図４に示した第１実施例の除算器１００の構成に加えて、セレクタ１１８および比較器１１７を備える。また、制御回路１１６に換えて制御回路１１９を備える。
【００８９】
セレクタ１１８は、Ｍビット（＝１１ビット）の被除数Ｄｄのうち、Ｌビット（=６ビット）目よりも上位のビットの被除数Ｄｄ［Ｍ−１：Ｌ］（＝Ｄｄ［１０：６］）を選択し出力する機能ブロックである。
【００９０】
比較器１１７は、被除数Ｄｄ［Ｍ−１：Ｌ］（＝Ｄｄ［１０：６］）と、除数Ｄｓと、を比較し、その比較結果を制御回路１１９へ出力する機能ブロックである。
【００９１】
制御回路１１９は、比較器１１２、比較器１１３、および、比較器１１７の比較結果に基づいて、セレクタ１０４、セレクタ１１０、およびセレクタ１１５の動作を制御する機能ブロックである。
【００９２】
セレクタ１１８、比較器１１７、セレクタ１０４、セレクタ１１５、および、制御回路１１９によって、ステップＳ１０３ａ，Ｓ１０３ｂの処理、すなわち、被除数ＤｄのＬビット（＝６ビット）目よりも上位ビットの被除数Ｄｄ［Ｍ−１：Ｌ］（＝Ｄｄ［１０：６］）が除数Ｄｓよりも小さい場合には、被除数Ｄｄ［Ｍ−１：Ｌ−１］（＝Ｄｄ［１０：５］）を被減数Ｍｄとし、インデックスｉの値を［Ｌ−１］（＝５）とするとともに、Ｌビット（＝６ビット）目よりも上位ビットの商Ｑ［Ｍ−１］〜Ｑ［Ｌ］の各ビットの値を“０”とする処理が実行される。
【００９３】
この除算器２００によれば、図６に示した第２実施例としての除算演算のアルゴリズムに従った除算演算を実行することができ、画像圧縮符号化装置における量子化処理としての除算演算の処理時間の短縮化を図ることができる。
【００９４】
また、この除算器２００の構成も、基本的には、従来の除算器１０００（図９参照）に、３つの比較器１１２，１１３，１１７と、３つのセレクタ１１４，１１５，１１８と、を追加するのみで構成することができるので、例えば、汎用プロセッサに備えられる除算器のような複雑かつ回路規模の大きい除算器と比較して、効率が良い。
【００９５】
また、除算演算処理時間の短縮化を図ることができないような被除数Ｄｄの場合には、従来と同様の除算演算処理が実行されるので、少なくとも従来の除算器１０００と同様に動作することができる。
【００９６】
なお、図示および説明を省略するが、図５に示した第１実施例の除算器１００Ａに加えて、セレクタ１１８および比較器１１７を備え、制御回路１１６に換えて制御回路１１９を備える構成として、被除数Ｄｄの各ビットについての処理を、基準クロックの１クロックの間に、３ビットの処理を実行する構成とすることも可能である。
【００９７】
なお、上記除算器２００において、比較器１１３およびセレクタ１１４と、比較器１１７とセレクタ１１８と、が本発明の複数の被除数部分比較手段に相当する。また、制御回路１１９が本発明の制御手段に相当する。
【００９８】
Ｄ．変形例：
なお、本発明は上記した実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様にて実施することが可能である。
【００９９】
Ｄ１．変形例１：
上記した第１実施例では、Ｋビット目より上位ビットの被除数Ｄｄ［Ｍ−１：Ｋ］が除数Ｄｓよりも小さいか否か判断することにより、除算演算処理に要する時間を短縮化する場合を説明しており、その例示として、ある自然画像の量子化係数の分布特性に基づいて、Ｋ＝３（＜Ｎ＝８）の場合を示している。しかしながら、これに限定されるものではなく、量子化係数の分布特性に基づいて、除数のビット数Ｎよりも小さい種々の値とすることができる。
【０１００】
Ｄ２．変形例２：
上記した第２実施例では、Ｋビット目より上位ビットの被除数Ｄｄ［Ｍ−１：Ｋ］が除数Ｄｓよりも小さいか否か判断するともに、Ｌビット目（Ｎ＞Ｌ＞Ｋ）より上位ビットの被除数Ｄｄ［Ｍ−１：Ｌ］が除数Ｄｓよりも小さいか否か判断することにより、除算演算処理に要する時間を短縮化する場合を説明しているが、これに限定されるものではなく、さらに、Ｏビット目（Ｎ＞Ｏ＞Ｌ）より上位ビットの被除数Ｄｄ［Ｍ−１：Ｏ］が除数Ｄｓよりも小さいか否か判断することにより除算演算処理に要する時間を短縮化するようにしてもよい。すなわち、複数の異なった所定ビットよりも上位ビットの被除数のそれぞれが、除数よりも小さいか否かを判断することにより除算演算処理に要する時間を短縮化するようにしてもよい。
【０１０１】
Ｄ３．変形例３：
上記した実施例では、除算器の具体例として、１クロックの間に１ビットの処理を実行する場合の構成の例と、１クロックの間に３ビットの処理を実行する場合の構成の例を示したが、これに限定されるものではなく、１クロックの間に２ビットの処理を実行する場合や、４ビット以上の処理を実行する場合の構成等、１クロックの間に複数ビットの処理を実行する場合の構成に適用可能である。
【０１０２】
Ｄ４．変形例４：
上記した実施例では、自然画像の画像データを二次元離散コサイン変換することにより得られたＤＣＴ係数を被除数とし、量子化閾値を除数とし、除算演算の商として量子化係数を得る場合を例として除算器のアルゴリズムおよびその構成を説明したが、これに限定されるものではなく、種々の場合に適用可能である。特に、量子化係数の特性分布のように被除数を除数で除した商の値が除数よりも小さい値に偏っているような特性分布を有している場合に有効である。
【図面の簡単な説明】
【０１０３】
【図１】本発明の除算器を量子化部に適用した画像符号化装置の構成を示すブロック図である。
【図２】画像符号化装置で実行される量子化処理について示す説明図である。
【図３】第１実施例としての除算演算のアルゴリズムを示す説明図である。
【図４】第１実施例としての除算演算のアルゴリズムに従った除算器として被除数Ｄｄの各ビットについての処理を基準クロックの１クロックの間に１ビットの処理を実行する場合の構成を示すブロック図である。
【図５】第１実施例としての除算演算のアルゴリズムに従った除算器として被除数Ｄｄの各ビットについての処理を基準クロックの１クロックの間に３ビットの処理を実行する場合の構成を示すブロック図である。
【図６】第２実施例としての除算演算のアルゴリズムの一部を示す説明図である。
【図７】第２実施例としての除算演算のアルゴリズムに従った除算器として被除数Ｄｄの各ビットについての処理を基準クロックの１クロックの間に１ビットの処理を実行する場合の構成の一部を示すブロック図である
【図８】基本的な除算演算のアルゴリズムを示す説明図である。
【図９】除算演算の基本的なアルゴリズムに従った除算器として演算アルゴリズムにおける被除数Ｄｄの各ビットについての処理を基準クロックの１クロックの間に１ビットの処理を実行する場合の構成を示すブロック図である。
【図１０】除算演算の基本的なアルゴリズムに従った除算器として演算アルゴリズムにおける被除数Ｄｄの各ビットについての処理を基準クロックの１クロックの間に３ビットの処理を実行する場合の構成を示すブロック図である。
【符号の説明】
【０１０４】
１０…画像符号化装置
２０…ＤＣＴ部
３０…量子化部
４０…量子化テーブル
５０…ハフマン符号化部
６０…ハフマンテーブル
１００…除算器
１００Ａ…除算器
１０１…被除数レジスタ
１０２…除数レジスタ
１０３…商レジスタ
１０５…被減数レジスタ
１０４…セレクタ
１０４Ａ…セレクタ
１０６…減算器
１０７…比較器
１０８…左シフト回路
１０９…セレクタ
１０６ａ〜１０６ｃ…減算器
１０７ａ〜１０７ｃ…比較器
１０８ａ〜１０８ｃ…左シフト回路
１０９ａ〜１０９ｃ…セレクタ
１１０…セレクタ
１１０Ａ…セレクタ
１１１…制御回路
１１１Ａ…制御回路
１１２…比較器
１１３…比較器
１１４…セレクタ
１１５…セレクタ
１１６…制御回路
１１６Ａ…制御回路
１１７…比較器
１１８…セレクタ
１１９…制御回路
【図１】
2009175958.tif 000003
【図２】
2009175958.tif 000004
【図３】
2009175958.tif 000005
【図４】
2009175958.tif 000006
【図５】
2009175958.tif 000007
【図６】
2009175958.tif 000008
【図７】
2009175958.tif 000009
【図８】
2009175958.tif 000010
【図９】
2009175958.tif 000011
【図１０】
2009175958.tif 000012