(57)【特許請求の範囲】
【請求項１】
画像データを複数画素のブロック単位に、可変長な符号長に変換する可変長符号化手段と、
該可変長符号化手段により生成された符号を固定長符号化する固定長符号化手段と、
該固定長符号化手段で変換された前記符号長の合計を計算する符号長合計計算手段と、
該符号長合計計算手段で計算された符号長の合計を、所定値以下に収めるように、前記固定長符号化手段の使用割合を制御する制御手段と、
前記固定長符号化手段で変換された符号長の前後に符号化の種類を示す情報を付加する符号情報付加手段とを有し、
前記符号情報付加手段は、ブロック容量に対して、使用した符号の余りのBITを認識させる情報を付加することを特徴とする画像圧縮処理装置。
【請求項２】
画像データを複数画素のブロック単位に、可変長な符号長に変換する可変長符号化工程と、
該可変長符号化工程により生成された符号を固定長符号化する固定長符号化手段により固定長符号化する固定長符号化工程と、
該固定長符号化工程で変換された前記符号長の合計を計算する符号長合計計算工程と、
該符号長合計計算工程で計算された符号長の合計を、所定値以下に収めるように、前記固定長符号化手段の使用割合を制御する制御工程と、
前記固定長符号化工程で変換された符号長の前後に、ブロック容量に対して、使用した符号の余りのBITを認識させる情報を付加する符号情報付加工程と
を有することを特徴とする画像圧縮処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像圧縮処理装置及び画像圧縮処理方法に関し、詳細にはデジタル画像データをデータ圧縮、伸長する例えばデジタル複写機、スキャナなどの画像処理装置におけるファイリングなどの画像記録装置に最適な画像圧縮処理装置及び該方法に関する。
【０００２】
【従来の技術】
画像データ圧縮技術は画像データを保持するためのメモリ量を低減したり、画像データの送信時間を短縮したりする目的で画像処理分野において一般に使用されている。画像データ圧縮方式は画像データの処理形態により、種々であり画像データを印字処理する場合においては限られた容量のメモリ上で画像データを回転して印字するなどの処理を高速に行うという必要性から固定長圧縮が良く使用されている。代表的な固定長圧縮の方式としてGBTC（Generalized BTC）などが知られている。
【０００３】
図５２及び図５３並びに図５４にGBTCのアルゴリズムを示す。GBTCのLD値により、LD値の大きいエッジ部分に４／８GBTCのような画質の良いGBTCを配置させ、LD値の小さい部分に対しては２／８GBTCのような画質に多少問題があるが、圧縮率の高いGBTCを配置させかつ、ラインごと固定された符号長に収める。また、他の圧縮方式として画像データを水平周波数方向と垂直周波数方向に複数のブロックに分割すると共に低域周波数のブロックほど細かくするWavelet変換が知られ、このWavelet変換は最近、自然階調の画像を効果的に圧縮する方法として注目されている。また、Wavelet変換は写真のような連続した階調を持った画像の圧縮に適していることが知られている。可変長符号において、エッジ成分の高いブロックに対して、量子化を緩め、エッジ成分の少ないブロックに対して量子化を強め、かつ数ライン単位に固定された符号長に収め、かつ回転処理が可能な従来の符号化方法があった。また、前述したように、印字処理を目的とするシステムにおいては固定長圧縮としてGBTCなどを使用してきた。更に、圧縮方式としてはＤＣＴ（Discret Cosine Transform）などの直交変換によって画像データを周波数成分に変換し、その変換係数を量子化する方式があり、特にＤＣＴを使用した多値画像を符号化する方式として、ITU-TとISOにより、標準化されたJPEG方式が知られている。
【０００４】
【発明が解決しようとする課題】
しかし、上述したGBTCは４／８圧縮において１ブロック４＊４ドット、１ドットに３BITの８種類の色を割り振り、３／８圧縮においては１ドットに２BITの４種類の色を、２／８圧縮においては１BITの２種類の色を割り振っていた。このため、特に画素の階調差が激しい１ブロック内ではノッチと呼ばれるゴミのようなものが文字の輪郭などに発生し、画質を劣化される。また、JPEG方式は、GBTC以上の８＊８ドットのブロックを使用するために、８ラインのメモリを必要とするがその圧縮率は良く、画質的にも、GBTC以上の画質を持つ。しかし、可変長である点と、８＊８ブロック間で差分を取るため、回転処理を行うことができない。
【０００５】
また、上記従来の可変長符号の回転方式は、１ラインが可変長符号の集まりであるために、各ラインごとラインのスタートアドレスを格納する領域が必要であり、かつ符号とこの各ライン毎のスタートアドレステーブルが必要であり、処理をハードウエアなどで、行う場合、処理手順が複雑となり、かつこのテーブルを格納するメモリが必要となり、コストアップと信頼性の低下を招いてしまう。
【０００６】
本発明はこれらの問題点を解決するためのものであり、印字処理を目的とするシステムにおいてGBTC、ＤＣＴやWaveletなどで符号化する画像圧縮伸長装置においては、ブロックごとの固定値ではなく、ブロックで構成されたラインごと固定長のサイズに収め、そのライン（ブロック）の中で各ブロックごとその必要とする符号長を均等に割り振ることにより、１／４の符号化の場合、周波数の高いエッジ部分には３／８GBTCなどの符号長の長い方式をゆるし、周波数の低い部分には１／１６平均のような小さな符号長で収めるようにし、そして、通常の画像においては２／８GBTCを使用する。これにより周波数の高いエッジ部分も画質の良い画像を作成でき、かつラインごと固定された符号量であるため、ラインごとのスタートアドレスを管理するテーブルが必要なく、コストが低く、かつ信頼性の高い画像圧縮処理装置及び画像圧縮処理方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
前記問題点を解決するために、本発明の画像圧縮処理装置は、画像データを複数画素のブロック単位に、可変長な符号長に変換する可変長符号化手段と、可変長符号化手段により生成された符号を固定長符号化する固定長符号化手段と、固定長符号化手段で変換された符号長の合計を計算する符号長合計計算手段と、符号長合計計算手段で計算された符号長の合計を、所定値以下に収めるように、固定長符号化手段の使用割合を制御する制御手段と、固定長符号化手段で変換された符号長の前後に符号化の種類を示す情報を付加する符号情報付加手段とを有し、符号情報付加手段は、ブロック容量に対して、使用した符号の余りのBITを認識させる情報を付加することに特徴がある。よって、可変長符号化方式により、本来符号長が長く必要な部分には長い符号を割り振ることにより、高画質化し、かつ符号量の割り振りをコントロールし、符号のアドレスをコントロールすることにより、回転処理を行うことができる。
【００１１】
また、別の発明としての画像圧縮処理方法によれば、画像データを複数画素のブロック単位に、可変長な符号長に変換する可変長符号化工程と、可変長符号化工程により生成された符号を固定長符号化する固定長符号化手段により固定長符号化する固定長符号化工程と、固定長符号化工程で変換された符号長の合計を計算する符号長合計計算工程と、符号長合計計算工程で計算された符号長の合計を、所定値以下に収めるように、固定長符号化手段の使用割合を制御する制御工程と、固定長符号化工程で変換された符号長の前後に、ブロック容量に対して、使用した符号の余りのBITを認識させる情報を付加する符号情報付加工程とを有することに特徴がある。よって、ブロック容量に対して、使用した符号の余りのBITを認識させる情報を付加することにより、方式の異なる固定長符号化方式を組み合わせることによりなる可変長符号に対して回転処理を行うことができる。
【００１２】
【発明の実施の形態】
本発明の画像圧縮処理装置は、画像データを複数画素のブロック単位に、可変長な符号長に変換する可変長符号化手段と、可変長符号化手段により生成された符号を固定長符号化する固定長符号化手段と、固定長符号化手段で変換された符号長の合計を計算する符号長合計計算手段と、符号長合計計算手段で計算された符号長の合計を、所定値以下に収めるように、固定長符号化手段の使用割合を制御する制御手段と、固定長符号化手段で変換された符号長の前後に符号化の種類を示す情報を付加する符号情報付加手段とを有し、符号情報付加手段は、ブロック容量に対して、使用した符号の余りのBITを認識させる情報を付加する。
【００１３】
【実施例】
図１は本発明の第１の実施例に係る画像符号化装置の構成を示すブロック図である。同図において、ラインメモリ１０１は、４＊４のブロックをライン分格納する。４＊４バッファ１０２は、４＊４のＣ，Ｍ，Ｙ，Ｋのいずれか、またはＲ，Ｇ，Ｂのいずれか、またはＹ，Ｕ，Ｖのいずれか、などの４＊４の画像情報を格納する。符号化装置１０３は、４＊４バッファ１０２内のデータを符号化する。回転用符号情報付加装置１０４は、図３のように、符号の前、後ろに符号の種類を表すＦＬＡＧと１ラインの最後に最後の符号の場所を認識するためのＦＬＡＧ、この例では使用していないＢＩＴの長さを示す符号を付加する。アドレス生成装置１０５は、図４のように可変長符号のメモリのアドレスを生成する。メモリ１０６は、符号を格納する。
【００１４】
図２は別の発明の第１の実施例に係る画像復号化装置の構成を示すブロック図である。同図において、メモリ２０１は、符号を格納する。アドレス生成装置２０２は、図５のように各回転（０°，９０°，１８０°，２７０°）によりメモリ２０１をアクセスするアドレスを生成する。符号切り出し装置２０３は、ＦＬＡＧに基づいて１ラインごとの符号を切り出す。復号化装置２０４は、メモリ２０１からの符号を復号化する。４＊４バッファ２０５は、４＊４のＣ，Ｍ，Ｙ，Ｋのいずれか、またはＲ，Ｇ，Ｂのいずれか、またはＹ，Ｕ，Ｖのいずれか、などの４＊４の画像情報を格納する。ラインメモリ２０６は、４＊４のブロックをライン分格納する。
【００１５】
ここで、図６にＬＩＮＥ内部の符号フォーマットの例を示す。同図に示すように、基本となる符号化（ここでは２／８GBTC）は、基準となる圧縮率の符号長でなければならない。図６では２／８のため、３２BITである。そして、これを取り巻く小さい符号が存在する。この例では小さい値として１／１６、大きな値として３／８GBTCである。これはエッジ部分に３／８GBTCを割り振り、エッジでなく、起伏がない部分に１／１６を割り振る。そして、その他は基準となる２／８GBTCを割り振る。また、これらの符号には前と後ろにヘッダを持っている。これらは符号の種類を表し、ここではハフマン木を割り振っている。また、後ろのヘッダは符号認識ヘッダである。また、本発明では、BTCを混在させる方式であるため符号認識のためのヘッダで良い。これにより、BIT長が短くなる。更に、後ろヘッダは、回転処理された場合にどうしても符号を後ろから復号化する必要があり、後ろからの復号化のためのヘッダである。
【００１６】
図７は残りのBIT数を表す符号フォーマット例を示す図である。同図に示す例では、符号と残りBITの境界に“０”を埋め込み、残りのBITには“１”を埋め込んでいる。このため、“０”を探索することにより、残りBITと最終符号を認識できる。
【００１７】
図８は本発明の第１の実施例における符号化処理の動作を示すフローチャートである。同図において、先ず図１のアドレス生成装置１０５のアドレスレジスタの値に０アドレス（一番先頭のライン）をセットする（ステップＳ１０１）。次に、垂直カウンタをクリアする（ステップＳ１０２）。また、水平カウンタをクリアする（ステップＳ１０３）。更に、図１のラインバッファ１０１のアドレスレジスタの値に０をセットする（ステップＳ１０４）。そして、図１の４＊４バッファ１０２に４＊４画像をリードする（ステップＳ１０５）。次に、図１の符号化処理装置１０３内の符号長計算装置により、符号長を計算する（ステップＳ１０６）。水平カウンタをカウントアップする（ステップＳ１０７）。また、図１のラインバッファ１０１のアドレスレジスタの値をカウントアップする（ステップＳ１０８）。そして、図１のラインバッファ１０１の値をすべて処理するまで繰り返す（ステップＳ１０９）。図１のラインバッファ１０１の値をすべて処理後、図１のラインバッファ１０１のアドレスレジスタの値に０をセットする（ステップＳ１１０）。また、水平カウンタをクリアする（ステップＳ１１１）。図１の４＊４バッファ１０２に４＊４画像をリードする（ステップＳ１１２）。図１の符号化処理装置１０３内の符号化装置により、符号化する（ステップＳ１１３）。図１の回転用符号情報付加装置１０４により、前後ヘッダを付加し、図１のメモリ１０６へライトする（ステップＳ１１４）。そして、図１のアドレス生成装置１０５のアドレスレジスタの値を更新する（ステップＳ１１５）。また、水平カウンタをカウントアップする（ステップＳ１１６）。更に、図１のラインバッファ１０１のアドレスレジスタの値をカウントアップする（ステップＳ１１７）。図１のメモリ１０６で水平カウンタが水平方向のブロック数を超えていないかを判定する（ステップＳ１１８）。超えていない場合はステップＳ１１２に戻る（ステップＳ１１８；ＹＥＳ）。超えた場合、図１の回転用符号情報付加装置１０４により、残りBIT数を符号化し、図１のメモリ１０６へライトする（ステップＳ１１８；ＮＯ、ステップＳ１１９）。また、図１のメモリ１０６で垂直カウンタをカウントアップする（ステップＳ１２０）。最後に、図１のメモリ１０６で垂直カウンタが垂直方向のブロック数を超えていないかを判定する（ステップＳ１２１）。超えた場合はライン単位の処理が終了する（ステップＳ１２１；ＮＯ）。
【００１８】
次に、本実施例における各回転（０°，９０°，１８０°，２７０°）の復号化処理について説明する。
【００１９】
図９は別の発明の第１の実施例における０°回転時の復号化処理の動作を示すフローチャートである。同図において、先ず、垂直カウンタをクリアする（ステップＳ２０１）。また、水平カウンタをクリアする（ステップＳ２０２）。そして、図２のアドレス生成装置２０２により、各ラインの先頭アドレスを求める（ステップＳ２０３）。図２の符号切り出し装置２０３でメモリ２０１から符号を図１０のようにプラス方向から固定長ビット切り取る（ステップＳ２０４）。その後、図２の復号化装置２０４によりエントロピー復号化を行う（ステップＳ２０５）。この場合、符号化方向と同じ方向のために順次復号化する。図２の４＊４バッファ２０５に４＊４画像を格納し、ラインメモリ２０６へ転送する（ステップＳ２０６）。その後また水平カウンタをカウントアップする（ステップＳ２０７）。図２のアドレス生成装置２０２のアドレスレジスタの値を更新する（ステップＳ２０８）。更に、水平カウンタが水平方向のブロック数を超えていないかを判定する（ステップＳ２０９）。超えた場合は垂直カウンタをカウントアップする（ステップＳ２０９；ＮＯ、ステップＳ２１０）。そして、垂直カウンタが垂直方向のブロック数を超えていないかを判定する（ステップＳ２１１）。超えた場合はライン単位の処理を終了する（ステップＳ２１１；ＮＯ）。
【００２０】
図１１は別の発明の第１の実施例における９０°回転時の復号化処理の動作を示すフローチャートである。同図において、先ず、図２のアドレス生成装置２０２により、各ラインの先頭アドレスを求める（ステップＳ３０１）。そして、水平カウンタをクリアする（ステップＳ３０２）。また、垂直カウンタをクリアする（ステップＳ３０２）。そして、図２のアドレス生成装置２０２のＶＣＮＴの示すラインの先頭アドレスにより、メモリ２０１をアクセスする（ステップＳ３０３，Ｓ３０４）。図２の符号切り出し装置２０３でメモリ２０１から符号を図１０のようにプラス方向から固定長ビット切り取る（ステップＳ３０５）。図２の復号化装置２０４で復号化を行う（ステップＳ３０６）。この場合、符号化方向と同じ方向のために順次復号化する。その後、図２の４＊４バッファ２０５に４＊４画像を格納し、ラインメモリ２０６へ転送する（ステップＳ３０７）。図２のアドレス生成装置２０２のＶＣＮＴの示すラインの先頭アドレス値を更新する（ステップＳ３０８）。また、垂直カウンタをカウントダウンする（ステップＳ３０９）。更に、垂直カウンタが垂直方向のブロック数を超えていないかを判定する（ステップＳ３１０）。超えた場合は水平カウンタをカウントアップする（ステップＳ３１０；ＮＯ、ステップＳ３１１）。最後に、水平カウンタが水平方向のブロック数を超えていないかを判定し、超えた場合は処理を終了する（ステップＳ３１２；ＮＯ）。
【００２１】
図１２は別の発明の第１の実施例における１８０°回転時の復号化処理の動作を示すフローチャートである。同図において、先ず、図２のアドレス生成装置２０２により、各ラインの先頭アドレスを求める（ステップＳ４０１）。また、垂直カウンタに垂直ブロック数をセットする（ステップＳ４０２）。更に、水平カウンタに水平ブロック数をセットする（ステップＳ４０３）。そして、図２のアドレス生成装置２０２のＶＣＮＴの示すラインの先頭アドレスにより、メモリ２０１をアクセスする（ステップＳ４０４）。その後、ラインの残りBIT符号を読み込み最終符号のアドレスを求める（ステップＳ４０５）。また、図２の符号切り出し装置２０３でメモリ２０１から符号を図１０のようにマイナス方向から固定長ビット切り取る（ステップＳ４０６）。切り取られた固定長の符号の後ろの回転用情報付加装置で付加された後ヘッダをリードし、実際の符号を切り取る（ステップＳ４０７）。そして、図２の復号化装置２０４で復号化を行う（ステップＳ４０８）。この場合、符号化方向と同じ方向のために順次復号化する。そして、図２の４＊４バッファ２０５に４＊４画像を格納し、ラインメモリ２０６へ転送する（ステップＳ４０９）。また、水平カウンタをカウントダウンする（ステップＳ４１０）。更に、図２のアドレス生成装置２０２のアドレスレジスタの値を更新する（ステップＳ４１１）。そして、水平カウンタが０を超えていないかを判定する（ステップＳ４１２）。超えた場合は垂直カウンタをカウントダウンする（ステップＳ４１２；ＮＯ、ステップＳ４１３）。垂直カウンタが０を超えていないかを判定し、超えた場合は処理を終了する（ステップＳ４１４；ＮＯ）。
【００２２】
図１３は別の発明の第１の実施例における２７０°回転時の復号化処理の動作を示すフローチャートである。同図において、先ず、図２のアドレス生成装置２０２により、各ラインの先頭アドレスを求める（ステップＳ５０１）。また、水平カウンタに水平ブロック数をセットする（ステップＳ５０２）。更に、垂直カウンタに０の値をセットする（ステップＳ５０３）。図２のアドレス生成装置２０２のＶＣＮＴの示すラインの先頭アドレスにより、メモリ２０１をアクセスする（ステップＳ５０４）。図２の符号切り出し装置２０３でメモリ２０１から符号を図１０のようにマイナス方向から固定長ビット切り取る（ステップＳ５０５）。切り取られた固定長の符号の後ろの回転用情報付加装置で付加された符号長をリードし、実際の符号を切り取る。次に、図２の復号化装置２０４で復号化を行う（ステップＳ５０６）。この場合、符号化方向と同じ方向のために順次復号化する。図２の４＊４バッファ２０５に４＊４画像を格納し、ラインメモリ２０６へ転送する（ステップＳ５０７）。図２のアドレス生成装置２０２のＶＣＮＴの示すラインの先頭アドレス値を更新する（ステップＳ５０８）。そして、垂直カウンタをカウントアップする（ステップＳ５０９）。垂直カウンタが垂直方向のブロック数を超えていないかを判定する（ステップＳ５１０）。超えた場合は水平カウンタをカウントダウンする（ステップＳ５１０；ＮＯ、ステップＳ５１１）。水平カウンタが０を超えていないかを判定し、超えた場合は処理を終了する（ステップＳ５１２）。
【００２３】
図１４は図１の符号化装置の構成を示すブロック図である。なお、これは２／８固定長圧縮の例である。同図において、LDMIN,LDMAX計算装置３０１は、図１の４＊４バッファ１０２中の画像データのMIN値とMAX値を求める。LD計算装置３０２は、MIN値とMAX値と画像情報からGBTC演算を行い、LD値を求める。符号長合計計算装置３０３は、LD計算装置３０２で求めたLD値から図１５のように複数のモードにより、異なる符号化方式の分布に基づき、１ラインの符号長の合計を求める。エッジ境界値計算装置３０４は、符号長合計計算装置３０３の処理で求めた１ライン（ブロック単位）処理が終了すると（この１ラインの処理、エッジ境界値を求めるための計測用の処理である。）得られた各モードの符号長の合計値から、ライン（ブロック単位）の符号長制限と比較し画質の良い優先順位に基づき、モードを選択する。ここでの例は２／８固定長圧縮の例であるために、２／８GBTCがメインであり、３／８GBTCは周波数の大きなエッジ部分用であり、１／１６はなだらかな画質用であり、これにより符号長をかせぐ。この例では１／１６と２／８GBTCとの境界であるLD値のエッジ境界１と２／８GBTCと３／８GBTCの境界のLD値のエッジ境界２を求めている。符号化装置３０５は、処理した１ライン（ブロック単位）のデータを再度処理する。エッジ境界値計算装置３０４で求めたエッジ境界値により、各ブロックはLD値により、１／１６、２／８GBTC、３／８GBTCなどのどれで処理させるか判断し、GBTCなどの処理を行い符号化する。図６に示すようにGBTCなどの符号の前にFLAGを持ち、デコード時に種類がわかるようにする。
【００２４】
図１６は図１４のLMIN、LMAX計算装置の構成を示すブロック図である。同図において、LMAX計算装置４０１によりMAX値を求め、LMIN計算装置４０２によりMIN値を求める。
【００２５】
図１７は図１４のLD計算装置の構成を示すブロック図である。図１８にLD計算装置の動作フローを示す。図１７において、P1,P2計算装置５０１はLMIN、LMAXからGBTCの計算式のP1,P2を求める。Q1合計計算装置５０２は、P1,P2計算装置５０１で求めたP1値以下の画像データの合計値とその画像データの数を求める。Q4合計計算装置５０３は、P1,P2計算装置５０１で求めたP2値以上の画像データの合計値とその画像データの数を求める。除算器５０４は、Q1合計計算装置５０２で求めた合計値とデータ数から平均を求める。除算器５０５は、Q4合計計算装置５０３で求めた合計値とデータ数から平均を求める。引算器５０６は、GBTCの式に基づき除算器５０５の平均値から除算器５０４の平均値を引きLDを求める。
【００２６】
図１９は図１４の符号長合計計算装置の構成を示すブロック図である。同図において、符号長制御装置６０１は、LD値から複数のエッジ境界値からなる符号長合計値、この例ではGOKEIB、GOKEIC,GOKEID、GOKEIE、GOKEIFのLD値の区分の２／８GBTC,３／８GBTC、４／８GBTCの割り振りによりよる符号長を複数のエッジ境界値からなる符号長合計値ごと制御する。ＭＵＸ６０２は符号長制御装置６０１でコントロールされることにより符号長を加算器６０３へ送る。加算器６０３は、符号長と符号長合計を加算し新しい符号長を求める。レジスタ６０４は、GOKEIBのエッジ境界値からなるGBTCの分布の符号長合計を格納する。ＭＵＸ６０５は、符号長制御装置６０１でコントロールされることにより符号長を加算器６０６へ送る。加算器６０６は、符号長と符号長合計を加算し新しい符号長を求める。レジスタ６０７は、GOKEICのエッジ境界値からなるGBTCの分布の符号長合計を格納する。ＭＵＸ６０８は、符号長制御装置６０１でコントロールされることにより符号長を加算器６０９へ送る。加算器６０９は、符号長と符号長合計を加算し新しい符号長を求める。レジスタ６１０は、GOKEIDのエッジ境界値からなるGBTCの分布の符号長合計を格納する。ＭＵＸ６１１は、符号長制御装置６０１でコントロールされることにより符号長を加算器６１２へ送る。加算器６１２は、符号長と符号長合計を加算し新しい符号長を求める。レジスタ６１３は、GOKEIEのエッジ境界値からなるGBTCの分布の符号長合計を格納する。ＭＵＸ６１４は、符号長制御装置６０１でコントロールされることにより符号長を加算器６１５へ送る。加算器６１５は、符号長と符号長合計を加算し新しい符号長を求める。レジスタ６１６は、GOKEIFのエッジ境界値からなるGBTCの分布の符号長合計を格納する。
【００２７】
図２０は図１４のエッジ境界値計算装置の構成を示すブロック図である。また、図２１にエッジ境界値計算装置の動作フローを示す。
【００２８】
図２２は図１４の符号化装置の構成を示すブロック図である。また、図２３に符号化装置の動作フローを示す。図２２において、LDMIN,LDMAX計算装置７０１は、図１の４＊４バッファ１０２中の画像データのMIN値とMAX値を求める。LD計算装置７０２は、MIN値とMAX値と画像情報からGBTC演算を行い、LD値を求める。１／１６処理装置７０３は、PIXELデータから１／１６演算を行い、ＭＵＸ７０４へ符号を送る。２／８GBTC処理装置７０５は、PIXELデータから２／８GBTC演算を行い、ＭＵＸ７０４へ符号を送る。３／８GBTC処理装置７０６は、PIXELデータから３／８GBTC演算を行い、ＭＵＸ７０４へ符号を送る。GBTC選択装置７０７は、LD値とエッジ境界値を比較し、１／１６、２／８GBTC、３／８GBTCなどの符号化装置を、ＭＵＸ７０４をコントロールすることにより選択する。ＭＵＸ７０４は、３つの符号化装置の出力を選択する。
【００２９】
図２４は本発明の第２の実施例に係る画像符号化装置の構成を示すブロック図である。同図において、ラインメモリ８０１は、８＊８のブロックをライン分格納する。８＊８バッファ８０２は、８＊８のＣ，Ｍ，Ｙ，Ｋのいずれか、またはＲ，Ｇ，Ｂのいずれか、またはＹ，Ｕ，Ｖのいずれか、などの８＊８の画像情報を格納する。ＤＣＴ処理装置８０３は、８＊８バッファ８０２内のデータを下記のＤＣＴ演算式によるＤＣＴ演算を行う。
【００３０】
【数１】
0004141692.tif 000002
【００３１】
符号化装置８０４は、ＤＣＴ処理装置８０３によりＤＣＴ演算された８＊８のデータを符号化する。回転用符号情報付加装置８０５は、図３のように、符号の前、後ろに符号の種類を表すＦＬＡＧと１ラインの最後に最後の符号の場所を認識するためのＦＬＡＧ、この例では使用していないＢＩＴの長さを示す符号を付加する。アドレス生成装置８０６は、図４のように可変長符号のメモリのアドレスを生成する。メモリ８０７は、符号を格納する。
【００３２】
図２５は別の発明の第２の実施例に係る画像復号化装置の構成を示すブロック図である。同図において、メモリ９０１は、符号を格納する。アドレス生成装置９０２は、図５のように各回転（０°，９０°，１８０°，２７０°）によりメモリ９０１をアクセスするアドレスを生成する。符号切り出し装置９０３は、ＦＬＡＧに基づいて１ラインごとの符号を切り出す。復号化装置９０４は、メモリ９０１からの符号を復号化する。ＩＤＣＴ処理装置９０５は、復号化装置９０４により復号化されたＤＣＴ後のデータを逆ＤＣＴ処理を行い、画像データへ変換する。８＊８バッファ９０６は、８＊８のＣ，Ｍ，Ｙ，Ｋのいずれか、またはＲ，Ｇ，Ｂのいずれか、またはＹ，Ｕ，Ｖのいずれか、などの８＊８の画像情報を格納する。ラインメモリ９０７は、８＊８のブロックをライン分格納する。
【００３３】
ここで、図２６にＬＩＮＥ内部の符号フォーマットの例を示す。同図に示すように、基本となる符号化（ここでは２／８GBTC）は、基準となる圧縮率の符号長でなければならない。図２６では２／８のため、１２８BITである。そして、これを取り巻く小さい符号が存在する。この例では小さい値として１／８、大きな値として３／８GBTCである。これはエッジ部分に３／８GBTCを割り振り、エッジでなく、起伏がない部分に１／８を割り振る。そして、その他は基準となる２／８GBTCを割り振る。また、これらの符号には前と後ろにヘッダを持っている。これらは符号の種類を表し、ここではハフマン木を割り振っている。また、後ろのヘッダは符号認識ヘッダである。また、本発明では、BTCを混在させる方式であるため符号認識のためのヘッダで良い。これにより、BIT長が短くなる。更に、後ろヘッダは、回転処理された場合にどうしても符号を後ろから復号化する必要があり、後ろからの復号化のためのヘッダである。
【００３４】
図２７は本発明の第２の実施例における符号化処理の動作を示すフローチャートである。同図において、先ず図２４のアドレス生成装置８０６のアドレスレジスタの値に０アドレス（一番先頭のライン）をセットする（ステップＳ９０１）。次に、垂直カウンタをクリアする（ステップＳ９０２）。また、水平カウンタをクリアする（ステップＳ９０３）。更に、図２４のラインバッファ８０１のアドレスレジスタの値に０をセットする（ステップＳ９０４）。そして、図２４の８＊８バッファ８０２に８＊８画像をリードする（ステップＳ９０５）。次に、図２４のＤＣＴ処理装置８０３によるＤＣＴ処理後、図２４の符号化装置８０４内の符号長計算装置により、符号長を計算する（ステップＳ９０６）。水平カウンタをカウントアップする（ステップＳ９０７）。また、図２４のラインバッファ８０１のアドレスレジスタの値をカウントアップする（ステップＳ９０８）。そして、図２４のラインバッファ８０１の値をすべて処理するまで繰り返す（ステップＳ９０９）。図２４のラインバッファ８０１の値をすべて処理後、図２４のラインバッファ８０１のアドレスレジスタの値に０をセットする（ステップＳ９１０）。また、水平カウンタをクリアする（ステップＳ９１１）。図２４の８＊８バッファ８０２に８＊８画像をリードする（ステップＳ９１２）。図２４のＤＣＴ処理装置８０３によるＤＣＴ処理後、図２４の符号化装置８０４により、符号化する（ステップＳ９１３）。図２４の回転用符号情報付加装置８０５により、前後ヘッダを付加し、図２４のメモリ８０７へライトする（ステップＳ９１４）。そして、図２４のアドレス生成装置８０６のアドレスレジスタの値を更新する（ステップＳ９１５）。また、水平カウンタをカウントアップする（ステップＳ９１６）。更に、図２４のラインバッファ８０１のアドレスレジスタの値をカウントアップする（ステップＳ９１７）。図２４のメモリ８０７で水平カウンタが水平方向のブロック数を超えていないかを判定する（ステップＳ９１８）。超えていない場合はステップＳ９１２に戻る（ステップＳ９１８；ＹＥＳ）。超えた場合、図２４の回転用符号情報付加装置８０５により、残りBIT数を符号化し、図２４のメモリ８０７へライトする（ステップＳ９１８；ＮＯ、ステップＳ９１９）。また、図２４のメモリ８０７で垂直カウンタをカウントアップする（ステップＳ９２０）。最後に、図２４のメモリ８０７で垂直カウンタが垂直方向のブロック数を超えていないかを判定する（ステップＳ９２１）。超えた場合はライン単位の処理が終了する（ステップＳ９２１；ＮＯ）。
【００３５】
図２８は本発明の第２の実施例における画像符号化装置のハードウエアの概略を示すブロック図である。同図において、図２４と同じ参照符号は同じ構成要素を示す。ラインメモリ８０１は８本のラインメモリを有している。符号化処理装置１００１は、図２４の８＊８バッファ８０２、ＤＣＴ処理装置８０３、符号化装置８０４、回転用符号情報付加装置８０５及びアドレス生成装置８０６を含む装置に相当し、ラインメモリ８０１から読み込んだ値を符号長を判定し、その後符号化を行う。メモリ８０７は、符号を格納する。
【００３６】
次に、符号化処理のタイミングについてタイムチャートを示す図２９に従って説明する。先ず、バスなどを介して転送されるデータを８＊８のブロックになるまで、図２８のラインメモリ８０１に格納する必要があるそのためライン０から７までは、ラインメモリ８０１への格納時間であるが、ライン７では同時に符号長測定処理を行っている。この符号長測定処理は前述した図２７のステップＳ９０５からステップＳ９０９に相当する。そして、ライン７が終了すると、次のライン０の各ブロックの１番上のラインの８DOTを受け取るごとに、前のLINE0から７のラインメモリに貯えられた８＊８の符号化処理を行い、そしてライン０の８DOTをLINE０のメモリ８０７へ格納することにより、LINE0〜７のデータを使用し、符号化処理と、次のライン0のデータをLINE０メモリへ格納を同時に行うことにより、メモリを増やさずに、スピードを落とさずに、符号化チェックと符号化を行うことができる。この符号化処理は図２７のステップＳ９１２〜Ｓ９２０に相当する。
【００３７】
図３０は別の発明の第２の実施例における０°回転時の復号化処理の動作を示すフローチャートである。同図において、先ず、垂直カウンタをクリアする（ステップＳ１００１）。また、水平カウンタをクリアする（ステップＳ１００２）。そして、図２５のアドレス生成装置９０２により、各ラインの先頭アドレスを求める（ステップＳ１００３）。図２５の符号切り出し装置９０３でメモリ９０１から符号を図３１のようにプラス方向から固定長ビット切り取る（ステップＳ１００４）。その後、図２５の復号化装置９０４によりエントロピー復号化を行い、ＤＣＴ処理装置９０５によるＤＣＴ処理を行う（ステップＳ１００５）。この場合、符号化方向と同じ方向のために順次復号化する。図２５の８＊８バッファ９０６に８＊８画像を格納し、ラインメモリ９０７へ転送する（ステップＳ１００６）。その後また水平カウンタをカウントアップする（ステップＳ１００７）。図２５のアドレス生成装置９０２のアドレスレジスタの値を更新する（ステップＳ１００８）。更に、水平カウンタが水平方向のブロック数を超えていないかを判定する（ステップＳ１００９）。超えた場合は垂直カウンタをカウントアップする（ステップＳ１００９；ＮＯ、ステップＳ１０１０）。そして、垂直カウンタが垂直方向のブロック数を超えていないかを判定する（ステップＳ１０１１）。超えた場合はライン単位の処理を終了する（ステップＳ１０１１；ＮＯ）。
【００３８】
図３２は別の発明の第２の実施例における９０°回転時の復号化処理の動作を示すフローチャートである。同図において、先ず、図２５アドレス生成装置９０２により、各ラインの先頭アドレスを求める（ステップＳ１１０１）。そして、水平カウンタをクリアする（ステップＳ１１０２）。また、垂直カウンタをクリアする（ステップＳ１１０２）。そして、図２５アドレス生成装置９０２のＶＣＮＴの示すラインの先頭アドレスにより、メモリ９０１をアクセスする（ステップＳ１１０３，Ｓ１１０４）。図２５の符号切り出し装置９０３でメモリ９０１から符号を図３１のようにプラス方向から固定長ビット切り取る（ステップＳ１１０５）。図２５の復号化装置９０４で復号化を行い、図２５のＤＣＴ処理装置９０５によるＤＣＴ処理を行う（ステップＳ１１０６）。この場合、符号化方向と同じ方向のために順次復号化する。その後、図２５の８＊８バッファ９０６に８＊８画像を格納し、ラインメモリ９０７へ転送する（ステップＳ１１０７）。図２５のアドレス生成装置９０２のＶＣＮＴの示すラインの先頭アドレス値を更新する（ステップＳ１１０８）。また、垂直カウンタをカウントダウンする（ステップＳ１１０９）。更に、垂直カウンタが垂直方向のブロック数を超えていないかを判定する（ステップＳ１１１０）。超えた場合は水平カウンタをカウントアップする（ステップＳ１１１０；ＮＯ、ステップＳ１１１１）。最後に、水平カウンタが水平方向のブロック数を超えていないかを判定し、超えた場合は処理を終了する（ステップＳ１１１２；ＮＯ）。
【００３９】
図３３は別の発明の第２の実施例における１８０°回転時の復号化処理の動作を示すフローチャートである。同図において、先ず、図２５のアドレス生成装置９０２により、各ラインの先頭アドレスを求める（ステップＳ１２０１）。また、垂直カウンタに垂直ブロック数をセットする（ステップＳ１２０２）。更に、水平カウンタに水平ブロック数をセットする（ステップＳ１２０３）。そして、図２５のアドレス生成装置９０２のＶＣＮＴに示すラインの先頭アドレスにより、メモリ９０１をアクセスする（ステップＳ１２０４）。その後、ラインの残りBIT符号を読み込み最終符号のアドレスを求める（ステップＳ１２０５）。また、図２５の符号切り出し装置９０３でメモリ９０１から符号を図３１のようにマイナス方向から固定長ビット切り取る（ステップＳ１２０６）。切り取られた固定長の符号の後ろの回転用情報付加装置で付加された後ヘッダをリードし、実際の符号を切り取る（ステップＳ１２０７）。そして、図２５の復号化装置９０４で復号化を行う（ステップＳ１２０８）。この場合、符号化方向と同じ方向のために順次復号化する。そして、図２５の８＊８バッファ９０５に８＊８画像を格納し、ラインメモリ９０６へ転送する（ステップＳ１２０９）。また、水平カウンタをカウントダウンする（ステップＳ１２１０）。更に、図２５のアドレス生成装置９０２のアドレスレジスタの値を更新する（ステップＳ１２１１）。そして、水平カウンタが０を超えていないかを判定する（ステップＳ１２１２）。超えた場合は垂直カウンタをカウントダウンする（ステップＳ１２１２；ＮＯ、ステップＳ１２１３）。垂直カウンタが０を超えていないかを判定し、超えた場合は処理を終了する（ステップＳ１２１４；ＮＯ）。
【００４０】
図３４は別の発明の第２の実施例における２７０°回転時の復号化処理の動作を示すフローチャートである。同図において、先ず、図２５のアドレス生成装置９０２により、各ラインの先頭アドレスを求める（ステップＳ１３０１）。また、水平カウンタに水平ブロック数をセットする（ステップＳ１３０２）。更に、垂直カウンタに０の値をセットする（ステップＳ１３０３）。図２５のアドレス生成装置９０２のＶＣＮＴの示すラインの先頭アドレスにより、メモリ９０１をアクセスする（ステップＳ１３０４）。図２５の符号切り出し装置９０３でメモリ９０１から符号を図３１のようにマイナス方向から固定長ビット切り取る（ステップＳ１３０５）。切り取られた固定長の符号の後ろの回転用情報付加装置で付加された符号長をリードし、実際の符号を切り取る。次に、図２５の復号化装置９０４で復号化を行い、ＤＣＴ処理装置９０５によるＤＣＴ処理を行う（ステップＳ１３０６）。この場合、符号化方向と同じ方向のために順次復号化する。図２５の８＊８バッファ９０６に８＊８画像を格納し、ラインメモリ９０７へ転送する（ステップＳ１３０７）。図２５のアドレス生成装置９０２のＶＣＮＴの示すラインの先頭アドレス値を更新する（ステップＳ１３０８）。そして、垂直カウンタをカウントアップする（ステップＳ１３０９）。垂直カウンタが垂直方向のブロック数を超えていないかを判定する（ステップＳ１３１０）。超えた場合は水平カウンタをカウントダウンする（ステップＳ１３１０；ＮＯ、ステップＳ１３１１）。水平カウンタが０を超えていないかを判定し、超えた場合は処理を終了する（ステップＳ１３１２）。
【００４１】
図３５は図２４の符号化処理装置の構成を示すブロック図である。同図において、量子化装置１１０１は、ＤＣＴ処理装置８０３のＤＣＴ処理後のデータを受け取り、量子化処理を行う。複数モード符号長計算装置１１０２は、量子化装置１１０１で処理された量子化後のデータを符号長に計算し、その符号長を図２６のような固定長に符号長に変換するため、図３６のように符号長境界（１／８，２／８，３／８符号への切り替え境界）が異なる複数のモードにより判断しその符号長を複数モード符号長合計装置１１０３へ転送する。複数モード符号長合計装置１１０３は、複数モード符号長計算装置１１０２で求めた符号長を各モードごとのライン（ブロック単位）での合計を求める。符号長境界生成装置１１０４は、複数モード符号長合計装置１１０３の処理で求めた１ライン（ブロック単位）処理が終了する（この1ラインの処理、符号長境界値を求めるための計測用の処理である。）と得られた各モードの符号長の合計値から、ライン（ブロック単位）の符号長制限と比較し画質の良い優先順位に基づき、モードを選択する。なお、ここでの例は２／８符号化の例であるために、２／８符号がメインであり、３／８符号は周波数の大きなエッジ部分用であり、１／８符号はなだらかな画質用であり、これにより符号長をかせぐ。また、この例では１／８符号と２／８符号との境界である符号長境界１と２／８符号と３／８符号の境界の符号長境界２を求めている。量子化装置１１０５は、符号長計測後、再度１ライン（ブロック単位）のデータを図２４のＤＣＴ処理装置８０３からＤＣＴ処理後のデータを受け取り、量子化処理を行う。エントロピー符号化装置１１０６は、量子化装置１１０５により、量子化されたデータを符号化し、得られた可変長符号を符号長境界生成装置１１０４で求められた符号長境界値により、決められた符号長に直していく。この例の場合、符号長境界１，２値により、１／８符号、２／８符号、３／８符号を生成する。なお、図３７に量子化テーブルの例を示す。
【００４２】
図３８は図３５の量子化装置の構成を示すブロック図である。量子化テーブル記憶装置１２０１は、図３７のような量子化テーブルを格納する。量子化装置１２０２は、ＤＣＴ後の８＊８データを受け取り、量子化テーブル記憶装置１２０１から量子化テーブルを読み込み量子化処理を行う。
【００４３】
図３９は図３５の複数モード符号長計算装置の構成を示すブロック図である。同図において、符号長計算装置１３０１は、図３５の量子化装置１１０１から量子化後のデータを受け取り、１ブロックの合計の符号長を求める。MODE0符号長計算装置１３０２は、符号長計算装置１３０１で求めた１ブロックの合計符号長から、図３６のMODE0の表のように符号長境界１，２と比較し、割り当てられた符号長を求め、MODE0の符号長とする。MODE1符号長計算装置１３０３は、符号長計算装置１３０１で求めた１BLOCKの合計符号長から、図３６のMODE1の表のように符号長境界１，２と比較し、割り当てられた符号長を求め、MODE1の符号長とする。MODE2符号長計算装置１３０４は、符号長計算装置１３０１で求めた１BLOCKの合計符号長から、図３６のMODE2の表のように符号長境界１，２と比較し、割り当てられた符号長を求め、MODE2の符号長とする。MODE3符号長計算装置１３０５は、符号長計算装置１３０１で求めた１BLOCKの合計符号長から、図３６のMODE3の表のように符号長境界１，２と比較し、割り当てられた符号長を求め、MODE3の符号長とする。MODE4符号長計算装置１３０６は、符号長計算装置１３０１で求めた１BLOCKの合計符号長から、図３６のMODE4の表のように符号長境界１，２と比較し、割り当てられた符号長を求め、MODE4の符号長とする。
【００４４】
図４０は図３５の複数モード符号長計算装置の構成を示すブロック図である。同図において、DC符号長計算装置１４０１は、図４１に示すようにＤＣＴ処理後のDC成分をハフマン符号化などの方法により        符号化する場合の符号長を求める。AC符号計算装置１４０２は、図４２に示すようにＤＣＴ処理後のAC成分を周波数の低いものから優先順位に基づき、図４２のようにジグザグスキャンして、AC成分の符号長の合計を求める。加算器１４０３は、DC符号長計算装置１４０１のDC符号長とAC符号計算装置１４０２のAC符号長を加算し、ブロックの符号長の合計を求める。
【００４５】
図４３は図３５の複数モード符号長合計装置の構成を示すブロック図である。同図において、加算器１５０１は、図３５の複数モード符号長計算装置１１０２からのMODE0符号長を受け取り、加算を繰り返し、１ライン（ブロック単位）のMODE0の符号長合計を求める。レジスタ１５０２は、加算器１５０１による加算結果を格納する。加算器１５０３は、図３５の複数モード符号長計算装置１１０２からのMODE1符号長を受け取り、加算を繰り返し、１ライン（ブロック単位）のMODE1の符号長合計を求める。レジスタ１５０４は、加算器１５０３による加算結果を格納する。加算器１５０５は、図３５の複数モード符号長計算装置１１０２からのMODE2符号長を受け取り、加算を繰り返し、１ライン（ブロック単位）のMODE2の符号長合計を求める。レジスタ１５０６は、加算器１５０５による加算結果を格納する。加算器１５０７は、図３５の複数モード符号長計算装置１１０２からのMODE3符号長を受け取り、加算を繰り返し、１ライン（ブロック単位）のMODE3の符号長合計を求める。レジスタ１５０８は、加算器１５０７による加算結果を格納する。加算器１５０９は、図３５の複数モード符号長計算装置１１０２からのMODE4符号長を受け取り、加算を繰り返し、１ライン（ブロック単位）のMODE4の符号長合計を求める。レジスタ１５１０は、加算器１５０９による加算結果を格納する。
【００４６】
図４４は図３５の符号長境界生成装置の構成を示すブロック図である。また、図４５は図３５のエントロピー符号化装置の構成を示すブロック図である。図４４において、DC符号化装置１６０１は、図４１のようにＤＣＴ処理後のDC成分をハフマン符号化などの方法により符号化する。AC符号化装置１６０２は、図４２のようにＤＣＴ処理後のAC成分を周波数の低いものから優先順位に基づき、図４２のようにジグザグスキャンして、AC成分を符号化する。固定長データ生成装置１６０３は、図３５の符号長境界生成装置１１０４から符号長境界１，２の値を受け取り、DC符号化装置１６０１からDC成分を符号化したもの、AC符号化装置１６０２からAC成分を符号化したものを受け取り、DC符号とAC符号を接続し、合計の符号長から、符号境界１，２に基づき、図４６、図４７のように符号長の調整を行い、符号とその符号の長さを図２４の回転用符号情報付加装置８０５へ転送する。図４６では、ブロックの合計符号長と符号長境界１，２の比較結果から指定された符号長に対して合計符号長が長い場合、指定された符号長をまたがるAC符号を切り取り、終端符号を入れ込む。この終端符号は、指定された符号長の最長符号長以上の長さがある符号であり、そのため、埋め込む領域では、復号化できない。復号器では復号処理が指定された符号長以上になる場合、復号化を打ち切るように処理するため、終端符号は復号化されず、指定された符号長の内部に入りきった符号のみ、復号化される。また、図４７では、ブロックの合計符号長と符号長境界１，２の比較結果から指定された符号長に対して合計符号長が短い場合であり、残りに領域に、終端符号を入れ込む。この終端符号は、指定された符号長の最長符号長以上の長さがある符号であり、そのため、埋め込む領域では、復号化できない。復号器では復号処理が指定された符号長以上になる場合、復号化を打ち切るように処理するため、終端符号は復号化されず、指定された符号長の内部に入りきった符号のみ、復号化される。
【００４７】
図４８は図３５と異なる方式の図２４の符号化処理装置の構成を示すブロック図である。同図において、量子化装置１７０１は、図２４のＤＣＴ処理装置８０３によるＤＣＴ処理後のデータを受け取り、量子化処理を行う。符号長計算装置１７０２は、量子化装置１７０１で処理された量子化後のデータの符号長のブロック内の合計を求める。ヒストグラム作成装置１７０３は、符号長計算装置１７０２で求めた符号長を、その値が属するカウンタをカウントアップすることにより、１ライン（ブロック単位）のヒストグラムを作成する。ここで、図４９にヒストグラムの例を示す。符号長境界生成装置１７０４は、ヒストグラム作成装置１７０３の処理で求めた１ライン（ブロック単位）処理が終了する（この１ラインの処理、符号長境界値を求めるための計測用の処理である。）と、得られた１ライン（ブロック単位）のヒストグラムの値から、ヒストグラムの符号長の最も長いカウンタの値から指定された３／８境界値を満たすまでの符号長のカウントを求め、そこを符号長境界２とし、次にヒストグラムの符号長の最も短いカウンタの値から指定された１／８境界値（３／８符号で消費した符号長を１／８符号により満たす値）を満たすまでの符号長のカウントを求め、符号長境界１とする。量子化装置１７０５は、符号長計測後再度１ライン（ブロック単位）のデータを図２４のＤＣＴ処理装置８０３からＤＣＴ処理後のデータを受け取り、量子化処理を行う。エントロピー符号化装置１７０６は、量子化装置１７０５により、量子化されたデータを符号化し、得られた可変長符号を符号長境界生成装置１７０４で求められた符号長境界値により、決められた符号長に直していく。この例の場合、符号長境界１，２値により、１／８符号、２／８符号、３／８符号を生成する。
【００４８】
図５０は図４８のヒストグラム作成装置の構成を示すブロック図である。同図において、カウンタコントローラ１８０１は、図４８の符号長計算装置１７０２からの符号長を受け取り、図４８のヒストグラムを作成するために、その符号長が属するカウンタ１８０２〜１８０８の１つのカウンタのカウントアップの制御を行う。カウンタ１８０２は、図４９のヒストグラムの０〜１５の値のカウンタに対応する。カウンタ１８０３は、図４９のヒストグラムの１６〜３１の値のカウンタに対応する。カウンタ１８０４は、図４９のヒストグラムの３２〜４７の値のカウンタに対応する。カウンタ１８０５は、図４９のヒストグラムの４８〜６３の値のカウンタに対応する。カウンタ１８０６は、図４９のヒストグラムの６４〜７９の値のカウンタに対応する。カウンタ１８０７は、図４９のヒストグラムの８０〜２７１の値のカウンタに対応する。カウンタ１８０８は、図４９のヒストグラムの２７２〜（２７２以上）の値のカウンタに対応する。
【００４９】
図５１は図４８の符号長境界生成装置の構成を示すブロック図である。符号長境界１を生成する装置１９０１〜１９３０は、図４８のヒストグラム生成装置１７０３からのヒストグラム値を受け取り、小さい符号長をカウントした値から１／８符号へ変換した場合の符号長の合計を求めていき、１／８境界値（３／８符号へ変換したことによる２／８圧縮から増加した長さだけ、１／８符号へ変換することにより、均等を保てる値）を超える最初の符号長のカウント値を符号長境界１とし、１／８符号で消費した符号長を残りBIT数計算装置１９６１へ送る。乗算器１９０１〜１９１０は、各カウンタの領域を１／８符号へ変換した場合の符号長を求める。加算器１９１１〜１９１９は、各カウンタの領域までの累積する１／８符号時の符号長を求める。比較器１９２０〜１９２９は、各カウンタの領域までの累積された符号長と１／８境界値と比較し、１／８境界を求める。符号長境界１生成装置１９３０は、比較器１９２０〜１９２９で求めた比較結果から１番最初に１／８境界値を超えたカウンタ領域を求め、そこを符号長境界１とする。符号長境界２を生成する装置１９３０〜１９６０は、図４８のヒストグラム生成装置１７０３からのヒストグラム値を受け取り、大きい符号長をカウントした値から３／８符号へ変換した場合の符号長の合計を求めていき、３／８境界値（３／８符号へ変換した符号長）を超える最初の符号長のカウント値を符号長境界２とし、３／８符号で消費した符号長を残りBIT数計算装置１９６１へ送る。乗算器１９３１〜１９４０であり、各カウンタの領域を３／８符号へ変換した場合の符号長を求める。加算器１９４１〜１９４９は、各カウンタの領域までの累積する３／８符号時の符号長を求める。比較器１９５０〜１９５９は、各カウンタの領域までの累積された符号長と３／８境界値と比較し、３／８境界を求める。符号長境界２生成装置１９６０は、比較器１９５０〜１９５９で求めた比較結果から１番最初に３／８境界値を超えたカウンタ領域を求め、そこを符号長境界２とする。残りBIT計算装置１９６１は、符号長境界１と符号長境界２と各領域（１／８，２／８，３／８領域）の符号長の合計から、１ライン（ブロック単位）の符号長の制限値の残りの値を求め、図２４の回転符号情報付加装置８０５へ送る。
【００５０】
なお、本発明は上記実施例に限定されるものではなく、特許請求の範囲内の記載であれば多種の変形や置換可能であることは言うまでもない。
【００５２】
【発明の効果】
以上説明したように、本発明の画像圧縮処理装置は、画像データを複数画素のブロック単位に、可変長な符号長に変換する可変長符号化手段と、可変長符号化手段により生成された符号を固定長符号化する固定長符号化手段と、固定長符号化手段で変換された符号長の合計を計算する符号長合計計算手段と、符号長合計計算手段で計算された符号長の合計を、所定値以下に収めるように、固定長符号化手段の使用割合を制御する制御手段と、固定長符号化手段で変換された符号長の前後に符号化の種類を示す情報を付加する符号情報付加手段とを有し、符号情報付加手段は、ブロック容量に対して、使用した符号の余りのBITを認識させる情報を付加することに特徴がある。よって、可変長符号化方式により、本来符号長が長く必要な部分には長い符号を割り振ることにより、高画質化し、かつ符号量の割り振りをコントロールし、符号のアドレスをコントロールすることにより、回転処理を行うことができる。
【００５５】
また、別の発明としての画像圧縮処理方法によれば、画像データを複数画素のブロック単位に、可変長な符号長に変換する可変長符号化工程と、可変長符号化工程により生成された符号を固定長符号化する固定長符号化手段により固定長符号化する固定長符号化工程と、固定長符号化工程で変換された符号長の合計を計算する符号長合計計算工程と、符号長合計計算工程で計算された符号長の合計を、所定値以下に収めるように、固定長符号化手段の使用割合を制御する制御工程と、固定長符号化工程で変換された符号長の前後に、ブロック容量に対して、使用した符号の余りのBITを認識させる情報を付加する符号情報付加工程とを有することに特徴がある。よって、ブロック容量に対して、使用した符号の余りのBITを認識させる情報を符号の前後に付加することにより、方式の異なる固定長符号化方式を組み合わせることによりなる可変長符号に対して回転処理を行うことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施例に係る画像符号化装置の構成を示すブロック図である。
【図２】別の発明の第１の実施例に係る画像復号化装置の構成を示すブロック図である。
【図３】符号フォーマットを示す図である。
【図４】メモリの内容を示す図である。
【図５】各回転（０°，９０°，１８０°，２７０°）の復号化処理の様子を示す図である。
【図６】ＬＩＮＥ内部の符号フォーマットの例を示す図である。
【図７】残りのBIT数を表す符号フォーマット例を示す図である。
【図８】本発明の第１の実施例における符号化処理の動作を示すフローチャートである。
【図９】別の発明の第１の実施例における０°回転時の復号化処理の動作を示すフローチャートである。
【図１０】符号切り出しの様子を示す図である。
【図１１】別の発明の第１の実施例における９０°回転時の復号化処理の動作を示すフローチャートである。
【図１２】別の発明の第１の実施例における１８０°回転時の復号化処理の動作を示すフローチャートである。
【図１３】別の発明の第１の実施例における２７０°回転時の復号化処理の動作を示すフローチャートである。
【図１４】図１の符号化装置の構成を示すブロック図である。
【図１５】複数のモードごとのLD値を示す図である。
【図１６】図１４のLMIN、LMAX計算装置の構成を示すブロック図である。
【図１７】図１４のLD計算装置の構成を示すブロック図である。
【図１８】図１４のLD計算装置の動作を示すフローチャートである。
【図１９】図１４の符号長合計計算装置の構成を示すブロック図である。
【図２０】図１４のエッジ境界値計算装置の構成を示すブロック図である。
【図２１】図１４のエッジ境界値計算装置の動作を示すフローチャートである。
【図２２】図１４の符号化装置の構成を示すブロック図である。
【図２３】図１４の符号化装置の動作を示すフローチャートである。
【図２４】本発明の第２の実施例に係る画像符号化装置の構成を示すブロック図である。
【図２５】別の発明の第２の実施例に係る画像復号化装置の構成を示すブロック図である。
【図２６】ＬＩＮＥ内部の符号フォーマットの例を示す図である。
【図２７】本発明の第２の実施例における符号化処理の動作を示すフローチャートである。
【図２８】本発明の第２の実施例における画像符号化装置のハードウエアの概略を示すブロック図である。
【図２９】符号化処理のタイミングを示すタイムチャートである。
【図３０】別の発明の第２の実施例における０°回転時の復号化処理の動作を示すフローチャートである。
【図３１】符号切り出しの様子を示す図である。
【図３２】別の発明の第２の実施例における９０°回転時の復号化処理の動作を示すフローチャートである。
【図３３】別の発明の第２の実施例における１８０°回転時の復号化処理の動作を示すフローチャートである。
【図３４】別の発明の第２の実施例における２７０°回転時の復号化処理の動作を示すフローチャートである。
【図３５】図２４の符号化処理装置の構成を示すブロック図である。
【図３６】複数のモードごとのLD値を示す図である。
【図３７】量子化テーブルの例を示す図である。
【図３８】図３５の量子化装置の構成を示すブロック図である。
【図３９】図３５の複数モード符号長計算装置の構成を示すブロック図である。
【図４０】図３５の複数モード符号長計算装置の構成を示すブロック図である。
【図４１】ＤＣ符号化の様子を示す図である。
【図４２】ＡＣ符号化の手順を示す図である。
【図４３】図３５の複数モード符号長合計装置の構成を示すブロック図である。
【図４４】図３５の符号長境界生成装置の構成を示すブロック図である。
【図４５】図３５のエントロピー符号化装置の構成を示すブロック図である。
【図４６】符号長の調整の様子を示す図である。
【図４７】符号長の別の調整の様子を示す図である。
【図４８】図３５と異なる方式の図２４の符号化処理装置の構成を示すブロック図である。
【図４９】ヒストグラムの例を示す図である。
【図５０】図４８のヒストグラム作成装置の構成を示すブロック図である。
【図５１】図４８の符号長境界生成装置の構成を示すブロック図である。
【図５２】  GBTCのアルゴリズムを示す図である。
【図５３】  GBTCのアルゴリズムを示す図である。
【図５４】  GBTCのアルゴリズムを示す図である。
【符号の説明】
１０１，２０６，８０１，９０７；ラインメモリ、
１０２，２０５；４＊４バッファ、１０３，８０４；符号化装置、
１０４，８０５；回転用符号情報付加装置、
１０５，２０２，８０６，９０２；アドレス生成装置、
１０６，２０１，８０７，９０１；メモリ、
２０３，９０３；符号切り出し装置、２０４，９０４；復号化装置、
８０２，９０６；８＊８バッファ、８０３，９０５；ＤＣＴ処理装置。
【図１】
0004141692.tif 000003
【図２】
0004141692.tif 000004
【図３】
0004141692.tif 000005
【図４】
0004141692.tif 000006
【図５】
0004141692.tif 000007
【図６】
0004141692.tif 000008
【図７】
0004141692.tif 000009
【図８】
0004141692.tif 000010
【図９】
0004141692.tif 000011
【図１０】
0004141692.tif 000012
【図１１】
0004141692.tif 000013
【図１２】
0004141692.tif 000014
【図１３】
0004141692.tif 000015
【図１４】
0004141692.tif 000016
【図１５】
0004141692.tif 000017
【図１６】
0004141692.tif 000018
【図１７】
0004141692.tif 000019
【図１８】
0004141692.tif 000020
【図１９】
0004141692.tif 000021
【図２０】
0004141692.tif 000022
【図２１】
0004141692.tif 000023
【図２２】
0004141692.tif 000024
【図２３】
0004141692.tif 000025
【図２４】
0004141692.tif 000026
【図２５】
0004141692.tif 000027
【図２６】
0004141692.tif 000028
【図２７】
0004141692.tif 000029
【図２８】
0004141692.tif 000030
【図２９】
0004141692.tif 000031
【図３０】
0004141692.tif 000032
【図３１】
0004141692.tif 000033
【図３２】
0004141692.tif 000034
【図３３】
0004141692.tif 000035
【図３４】
0004141692.tif 000036
【図３５】
0004141692.tif 000037
【図３６】
0004141692.tif 000038
【図３７】
0004141692.tif 000039
【図３８】
0004141692.tif 000040
【図３９】
0004141692.tif 000041
【図４０】
0004141692.tif 000042
【図４１】
0004141692.tif 000043
【図４２】
0004141692.tif 000044
【図４３】
0004141692.tif 000045
【図４４】
0004141692.tif 000046
【図４５】
0004141692.tif 000047
【図４６】
0004141692.tif 000048
【図４７】
0004141692.tif 000049
【図４８】
0004141692.tif 000050
【図４９】
0004141692.tif 000051
【図５０】
0004141692.tif 000052
【図５１】
0004141692.tif 000053
【図５２】
0004141692.tif 000054
【図５３】
0004141692.tif 000055
【図５４】
0004141692.tif 000056