(57)【特許請求の範囲】
【請求項１】
１ページの画像データ中のＭ０×Ｎ０個の画素で構成される画素ブロックを単位に入力し、符号化する画像符号化装置であって、
入力する画像データ中の、着目しているＭ０×Ｎ０サイズの画素ブロックを、解像度変換することでＭ１×Ｎ１サイズの画素ブロック（Ｍ１＜Ｍ０、Ｎ１＜Ｎ０）を生成する解像度変換手段と、
該解像度変換手段で変換されたＭ１×Ｎ１サイズの画素ブロック単位に、非可逆符号化データを生成する第１の符号化手段と、
前記解像度変換手段で得られたＭ１×Ｎ１サイズの画素ブロックと、解像度変換前のＭ０×Ｎ０サイズの画素ブロックとの誤差を演算する誤差演算手段と、
前記着目しているＭ０×Ｎ０個の画素で構成される画素ブロック単位に可逆符号化データを生成する第２の符号化手段と、
前記着目しているＭ０×Ｎ０サイズの画素ブロック内の色数分布に関する色数分布情報を抽出する色数情報抽出手段と、
該色数情報抽出手段で抽出された色数分布情報と、前記誤差演算手段で得られた誤差に基づき、前記着目しているＭ０×Ｎ０サイズの画素ブロックが予め設定された特徴を有するか否かを判断する判断手段と、
該判断手段によって前記着目している画素ブロックが前記特徴を有すると判断された場合、前記第１、第２の符号化手段で得られたいずれか一方の符号化データを、着目画素ブロックの符号化データとして選択し、
前記判断手段によって前記着目している画素ブロックが前記特徴を有しないと判断された場合であって、前記第１の符号化手段で得られた非可逆符号化データのデータ量をＬｙ、前記第２の符号化手段で得られた可逆符号化データ量をＬｘ、及び、予め設定された非線形の境界関数をｆ（）と定義したとき、
条件：Ｌｙ≧ｆ（Ｌｘ）
を満たす場合には、前記可逆符号化データを着目画素ブロックに対する符号化データとして選択し、前記条件を満たさない場合には、前記非可逆符号化データを着目画素ブロックに対する符号化データとして選択する選択手段と、
該選択手段で選択された符号化データを出力用メモリに出力する出力手段と
を備えることを特徴とする画像符号化装置。
【請求項２】
前記境界関数ｆ（）は、少なくとも非線形境界線を有すると共に、水平軸を可逆符号化データ長、垂直軸を非可逆符号化データ長としたとき、第１のパラメータｉに従って前記非線形境界線は垂直軸方向にシフトし、第２のパラメータｊに従って前記非線形境界線は水平方向にシフトする関数であり、
前記第１の符号化手段は前記第１のパラメータｉで決定される量子化マトリクスＱｉに従ってＪＰＥＧ符号化データを生成する符号化手段であり、
前記画像符号化装置は、更に、
前記選択手段による選択処理の履歴情報を格納する履歴情報格納手段と、
該出力用メモリに格納される総符号化データ量を監視し、予め設定された目標符号量を越えたか否かを判断する監視手段と、
該監視手段で、前記総符号化データ量が前記目標符号量を越えたと判断した場合、前記記憶手段内の符号化データを破棄すると共に、
前記第１のパラメータｉ、前記第２のパラメータｊ、並びに、前記判断手段によって前記着目している画素ブロックが前記特徴を有すると判断された場合の前記選択手段が選択する対象を、可逆／非可逆符号化データのいずれにするかを決定するための第３のパラメータを、前記履歴情報格納手段に格納された履歴情報に基づいて決定し、
前記画像データの再入力と前記第１、第２の符号化手段による再符号化を再実行させる制御手段と
を備えることを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記選択手段は、１ページの画像の最初の符号化時において、前記判断手段によって前記着目している画素ブロックが前記特徴を有すると判断された場合には、前記第１の符号化手段で得られた可逆符号化データを前記着目画素ブロックに対する符号化データとして選択することを特徴とする請求項２に記載の画像符号化装置。
【請求項４】
前記制御手段は、
前記履歴情報格納手段に格納された履歴情報に基づいて、前記出力用メモリに格納されている総符号化データ量に含まれる非可逆符号化データ量ＭJP、前記判断手段によって前記着目している画素ブロックが前記特徴を有すると判断されて前記出力用メモリに格納された可逆符号化データ量ＭLSH1、及び、前記境界関数ｆ（）に基づいて、前記出力用メモリに格納された可逆符号化データ量ＭLSH0を算出する算出手段と、
該算出手段で得られたＭJP,ＭLSH1,ＭLSH0の中の最大値がいずれであるかを求める最大値決定手段と、
該最大値決定手段で決定された最大値が前記ＭLSH1であるとき、前記選択手段による前記判断手段によって前記着目している画素ブロックが前記特徴を有すると判断された場合の選択対象を前記非可逆符号化データとするように前記第３のパラメータを更新し、
前記最大値決定手段で決定された最大値が前記ＭLSH0であるとき、前記第１のパラメータｉを更新し、
前記最大値決定手段で決定された最大値が前記ＭJPであるとき、前記第２のパラメータｊを更新するパラメータ更新手段と
を含むことを特徴とする請求項３に記載の画像符号化装置。
【請求項５】
前記制御手段は、
前記履歴情報格納手段に格納された履歴情報に基づいて、前記出力用メモリに格納されている総符号化データ量に含まれる非可逆符号化データ量ＭJP、前記判断手段によって前記着目している画素ブロックが前記特徴を有すると判断されて前記出力用メモリに格納された可逆符号化データ量ＭLSH1、及び、前記境界関数ｆ（）に基づいて、前記出力用メモリに格納された可逆符号化データ量ＭLSH0を算出する算出手段と、
該算出手段で得られたＭJP,ＭLSH1,ＭLSH0の中の最大値がいずれであるかを求める最大値決定手段と、
該最大値決定手段で決定された最大値が前記ＭLSH1であるとき、前記選択手段による前記判断手段によって前記着目している画素ブロックが前記特徴を有すると判断された場合の選択対象を前記非可逆符号化データとするように前記第３のパラメータを更新し、
前記最大値決定手段で決定された最大値が前記ＭJP、ＭLSJH0のいずれかであるとき、予め設定された第１、第２のパラメータｉ，ｊの組み合わせの優先順位情報と前記履歴情報格納手段に格納された履歴情報に基づき、少なくとも前記第１、第２のパラメータｉ，ｊの一方を更新するパラメータ更新手段と
を含むことを特徴とする請求項３に記載の画像符号化装置。
【請求項６】
前記パラメータ更新手段は、
前記優先順位情報の優先順位を示す係数をｋ、
当該係数ｋで特定される前記第１、第２のパラメータｉ，ｊで符号化したと仮定した場合の１ページの予測符号化データ量をＭｐｋ、
前記目標符号量をＴｈ、
許容値をβとしたとき、
条件：Ｍｐｋ≦Ｔｈ＋β
を満たす係数ｋを求め、当該係数ｋで特定された第１、第２のパラメータｉ，ｊを更新後の第１、第２のパラメータｉ，ｊとして決定する
ことを特徴とする請求項５に記載の画像符号化装置。
【請求項７】
更に、互いに異なる複数の優先順位情報を記憶する優先順位記憶手段を備え、
前記パラメータ更新手段は、前記第１、第２のパラメータを最初に更新する場合に、前記出力用メモリに格納された符号化データ中の可逆符号化データ量と非可逆符号化データ量の比率に従って、使用する優先順位情報を前記複数の優先順位情報の中から決定することを特徴とする請求項６に記載の画像符号化装置。
【請求項８】
更に、前記許容値βを設定する設定手段を備えることを特徴とする請求項６又は７に記載の画像符号化装置。
【請求項９】
１ページの画像データ中のＭ０×Ｎ０個の画素で構成される画素ブロックを単位に入力し、符号化する画像符号化装置の制御方法であって、
入力する画像データ中の、着目しているＭ０×Ｎ０サイズの画素ブロックを、解像度変換することでＭ１×Ｎ１サイズの画素ブロック（Ｎ１＜Ｎ０、Ｍ１＜Ｍ０）を生成する解像度変換工程と、
該解像度変換工程で変換されたＭ１×Ｎ１サイズの画素ブロック単位に、非可逆符号化データを生成する第１の符号化工程と、
前記解像度変換工程で得られたＭ１×Ｎ１サイズの画素ブロックと、解像度変換前のＭ０×Ｎ０サイズの画素ブロックとの誤差を演算する誤差演算工程と、
前記着目しているＭ０×Ｎ０個の画素で構成される画素ブロック単位に可逆符号化データを生成する第２の符号化工程と、
前記着目しているＭ０×Ｎ０サイズの画素ブロック内の色数分布に関する色数分布情報を抽出する色数情報抽出工程と、
該色数情報抽出工程で抽出された色数分布情報と、前記誤差演算工程で得られた誤差に基づき、前記着目しているＭ０×Ｎ０サイズの画素ブロックが予め設定された特徴を有するか否かを判断する判断工程と、
該判断工程によって前記着目している画素ブロックが前記特徴を有すると判断された場合、前記第１、第２の符号化工程で得られたいずれか一方の符号化データを、着目画素ブロックに対する符号化データとして選択し、
前記判断工程によって前記着目している画素ブロックが前記特徴を有しないと判断された場合であって、前記第１の符号化工程で得られた非可逆符号化データのデータ量をＬｙ、前記第２の符号化工程で得られた可逆符号化データ量をＬｘ、及び、予め設定された非線形の境界関数をｆ（）と定義したとき、
条件：Ｌｙ≧ｆ（Ｌｘ）
を満たす場合には、前記可逆符号化データを着目画素ブロックに対する符号化データとして選択し、前記条件を満たさない場合には、前記非可逆符号化データを着目画素ブロックに対する符号化データとして選択する選択工程と、
該選択工程で選択された符号化データを出力用メモリに出力する出力工程と
を備えることを特徴とする画像符号化装置の制御方法。
【請求項１０】
請求項９に記載の各工程をコンピュータに実行させるためのコンピュータプログラム。
【請求項１１】
請求項１０に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの圧縮符号化技術に関するものである。
【背景技術】
【０００２】
従来、静止画像の圧縮方式には、離散コサイン変換を利用したＪＰＥＧ方式や、Ｗａｖｅｌｅｔ変換を利用した方式が多く使われている。この種の符号化方式は、可変長符号化方式であるので、符号化対象の画像毎に符号量が変化する。
【０００３】
国際標準化方式であるＪＰＥＧ方式では、１ページの画像に対して１組の量子化マトリクスしか定義できない。それ故、原稿をスキャンし、画像データを符号化する場合、その結果得られた符号化データ量が、目標とする予定した符号量を越えることも当然に起こりえる。
【０００４】
従って、予定した符号量をオーバーした場合は、圧縮率を変更するため量子化マトリクスを変更して、原稿の再読み込みを行なうのが一般的である。また、予めプリスキャンによる符号量見積もりを行ない、符号量を調整するために、量子化パラメータの再設定を行なう方法もある。
【０００５】
従来、プリスキャンを行う符号量制御方式として、例えば、プリ圧縮したデータを内部バッファメモリに入れ、これを伸長し、圧縮パラメータを変え、本圧縮し、外部記憶に出力する方式が知られている。このとき、本圧縮は、プリ圧縮よりも圧縮率を高めにする必要がある。
【０００６】
また、例えば、画素ブロックごとの許容符号量を求め、符号量を減らすために、ＤＣＴ係数をｎ回レベルシフトした係数をハフマン符号化する方式が知られており、このシフト量ｎは許容符号量から決定される。
【０００７】
また、一度の画像入力により、効果的にサイズに収まる符号化データを生成する方法もある（特許文献１）。この手法は、符号化データを格納するための２つのメモリを用意し、生成された符号化データを両メモリに格納していくものである。そして、格納した符号化データ量が目標データ量に到達したとき、より高い圧縮率となるような大きな量子化ステップを設定すると共に、一方のメモリ（第１のメモリ）をクリアする。これにより、目標データ量に到達した以降の符号化の圧縮率と高くする。また、もう一方のメモリ（第２のメモリ）には、発生した符号量が目標データ量に到達する以前の符号化データが格納されているので、更に高い量子化ステップで再符号化を行い、再符号化結果を第１のメモリに格納する。そして、この処理を、データ量が目標データ量に達する毎に繰り返るものである。
【０００８】
また、これら非可逆方式のみでなく、可逆符号化方式を取り入れて、文字画像や、線画等の非自然画等に可逆符号化方式を用い、自然画部に非可逆符号化方式を用いる方法がとられている。これらはあらかじめその画像の部分部分において属性を判定しておき、その判定結果を用いて符号化方式を切り替える方法がとられている（特許文献２）。
また，上記のような可逆符号化方式と非可逆符号化方式の切り替えに、属性判断を必要とすることなく、その符号量から切り替えを行う方式もある．
【特許文献１】特開２００３−８９０３号公報
【特許文献２】特開平７−１２３２７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記の非可逆処理においては、画像の全種別に対して画質が満足するかどうかは保証されていない。さらには、データ量が目標符号量に収まらなかった場合には、量子化ステップをより大きなものとし、画像全体の圧縮率を一律に引き上げることになり、画像劣化を引き起こす可能性が高い。特に、文字／線画及び自然画が混在した画像を圧縮符号化する場合には問題が多い。なぜなら、自然画については量子化ステップの引き上げても画質に与える影響は少ないものの、文字／線画の場合そのエッジが不明瞭になってきてしまうからである。
【００１０】
かかる点、文字／線画については可逆符号化、自然画については非可逆符号化を行うことで、それぞれの像域に特化した符号化することが望ましい。しかしながら、これを実現するためには、前処理として像域毎の属性判断処理を行う必要があるし、その判定には高い精度が要求される。従って、装置が実行する処理が複雑にならざるをえず、コスト高になることは避けられない。
【００１１】
理想的には、１ページの全域を可逆符号化することである。なぜなら、可逆であるが故に、原理的に原稿画像データに完全に復元できるからである。しかし、可逆符号化の場合、非可逆符号化と違って圧縮率を調整することはできない。従って、可逆符号化して得られた符号化データ量が目標符号量に収まらない場合には、もはやそれ以上の対処は難しい。
【００１２】
また、１回めのスキャンでは可逆符号化を行ない、その結果が目標符号量を越えた場合には非可逆符号化を行なうということも考えられる。しかし、非可逆符号化の場合、先に説明したように、１ページ全域について用いる量子化ステップは１つだけである。従って、採用する量子化マトリクスによっては原稿画像中の文字／線画の像域の画質劣化は避けられない。
【００１３】
本発明は上記の問題に鑑みなされたものである。また、格別な像域判定技術を用いずとも、自然画、文字／線画、或いは、それらが混在した画像に対し、適応的に可逆符号化と非可逆符号化を切り替え、且つ、復号結果の文字／線画部分については違和感の発生しない画像圧縮技術を提供しようとするものである。
【００１４】
更にまた、本発明は、目標符号量以下の符号化データを生成する技術を提供する。
【課題を解決するための手段】
【００１５】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
１ページの画像データ中のＭ０×Ｎ０個の画素で構成される画素ブロックを単位に入力し、符号化する画像符号化装置であって、
入力する画像データ中の、着目しているＭ０×Ｎ０サイズの画素ブロックを、解像度変換することでＭ１×Ｎ１サイズの画素ブロック（Ｍ１＜Ｍ０、Ｎ１＜Ｎ０）を生成する解像度変換手段と、
該解像度変換手段で変換されたＭ１×Ｎ１サイズの画素ブロック単位に、非可逆符号化データを生成する第１の符号化手段と、
前記解像度変換手段で得られたＭ１×Ｎ１サイズの画素ブロックと、解像度変換前のＭ０×Ｎ０サイズの画素ブロックとの誤差を演算する誤差演算手段と、
前記着目しているＭ０×Ｎ０個の画素で構成される画素ブロック単位に可逆符号化データを生成する第２の符号化手段と、
前記着目しているＭ０×Ｎ０サイズの画素ブロック内の色数分布に関する色数分布情報を抽出する色数情報抽出手段と、
該色数情報抽出手段で抽出された色数分布情報と、前記誤差演算手段で得られた誤差に基づき、前記着目しているＭ０×Ｎ０サイズの画素ブロックが予め設定された特徴を有するか否かを判断する判断手段と、
該判断手段によって前記着目している画素ブロックが前記特徴を有すると判断された場合、前記第１、第２の符号化手段で得られたいずれか一方の符号化データを、着目画素ブロックの符号化データとして選択し、
前記判断手段によって前記着目している画素ブロックが前記特徴を有しないと判断された場合であって、前記第１の符号化手段で得られた非可逆符号化データのデータ量をＬｙ、前記第２の符号化手段で得られた可逆符号化データ量をＬｘ、及び、予め設定された非線形の境界関数をｆ（）と定義したとき、
条件：Ｌｙ≧ｆ（Ｌｘ）
を満たす場合には、前記可逆符号化データを着目画素ブロックに対する符号化データとして選択し、前記条件を満たさない場合には、前記非可逆符号化データを着目画素ブロックに対する符号化データとして選択する選択手段と、
該選択手段で選択された符号化データを出力用メモリに出力する出力手段とを備える。
【発明の効果】
【００１６】
本発明によれば、格別な像域判定技術を用いずとも、自然画、文字／線画、或いは、それらが混在した画像に対し、適応的に可逆符号化と非可逆符号化を切り替え、且つ、復号結果の文字／線画部分については違和感が発生しないようにできる。また、更に、目標符号量以下の符号化データを生成することも可能になる。
【発明を実施するための最良の形態】
【００１７】
以下、図面に従って本発明に係る実施形態を詳細に説明する。
【００１８】
＜装置概要の説明＞
図１１は、実施形態が適用する複写機のブロック構成図である。
【００１９】
図中、１は装置全体の制御を司る制御部であり、ＣＰＵ、ＲＯＭ、ＲＡＭ等で構成される。２はＬＣＤ表示器や各種スイッチ、ボタン等で構成される操作部である。３は原稿読取部（イメージスキャナ部）であり、ＡＤＦ（Auto Document Feeder）を搭載している。読取った画像はＲＧＢ各色成分毎に８ビット（２５６階調）のデジタルデータを出力する。４は、不図示のインタフェース（ネットワークインタフェースを含む）を介して、クライアント端末から受信したＰＤＬ形式の印刷データに基づき、印刷画像を描画するレンダリング部である。５はセレクタであり、制御部１からの指示に従って、原稿読取部３、又は、レンダリング部４から出力されたビットマップイメージのいずれか一方を選択し、出力する。
【００２０】
６は本実施形態の特徴部分である符号化処理部である。この符号化処理部６の詳細な後述するが、画像データの符号化するものである。
【００２１】
７は２次記憶装置（実施形態ではハードディスク装置とする）であり、符号化処理部６より出力された１ページの符号化データを順に格納記憶する。
【００２２】
８は、復号処理部であって、２次記憶装置７に格納された圧縮符号化された画像データを、その格納順（ページ順）に読出し、復号する。９は画像処理部であって、復号処理部８からの復号画像を入力し、ＲＧＢ色空間を記録色空間であるＹＭＣへの変換、ＵＣＲ（Under Color Removal）処理を行うと共に、画像データの補正処理を行う。
【００２３】
１０はプリンタエンジン部である。プリンタエンジン部の印刷機構は、レーザビームプリンタエンジンとするが、インク液を吐出するタイプでも構わず、その種類は問わない。
【００２４】
上記構成において、例えば、利用者が操作部２を操作して、複写モードを選択し、原稿を原稿読取部３（のＡＤＦ）にセットし、複写開始キーを押下したとする。この場合、原稿読取部３で読取られた原稿画像データは、ラスター順に、セレクタ５を介して符号化処理部６に転送され、ここで圧縮符号化されて２次記憶装置７に格納していく。
【００２５】
また、外部より印刷データを受信した場合には、セレクタ５をレンダリング部４を選択するようにし、レンダリング部４が生成した印刷データに基づく画像を圧縮符号化し、２次記憶装置７に格納することになる。
【００２６】
復号処理部８は、プリンタエンジン１０の印刷速度に応じて、２次記憶装置７から圧縮符号化データを読出し、復号処理する。そして、画像処理部９で復号した画像データからＹＭＣＫ成分の記録用画像データを生成する。そして、その結果をプリンタエンジン部１０に出力し、印刷を行う。
【００２７】
上記の通り、２次記憶装置７への圧縮符号化データの格納処理と、復号し印刷するための読出し処理は、非同期である。つまり、２次記憶装置７は画像圧縮処理と、復号処理との間に介在するバッファとして機能する。従って、原稿読取り／符号化処理は、復号／記録処理に非依存なので、多数の原稿を高速に読取ることができ、次のジョブの原稿読取りにすばやく移行することが可能になる。
【００２８】
以上、実施形態における装置全体の構成について説明した。次に、本装置の特徴部分である符号化処理部６について説明する。
【００２９】
＜符号化部の説明＞
図１は実施形態における符号化処理部６のブロック構成図である。
【００３０】
入力部１０１は、複数ライン分のラインバッファーメモリを内蔵し、先に説明したように、セレクタ５を介して、原稿読取部３もしくはレンダリング部４からの画像データをラスター順に入力し、内部のラインバッファーに格納する。また、入力部１０１は、Ｎ×Ｍ画素ブロック（実施形態では１６×１６画素ブロックとした）単位に出力する。
【００３１】
解像度変換部１０６は、入力された画像データの解像度変換を行なう。この解像度変換は、水平２画素×垂直２画素の４画素から１画素を生成し、水平、垂直とも解像度を１／２にする。この解像度を下げる技術としては、２×２画素中の予め決められた位置の画素を代表画素として抽出する処理、あるいは、２×２画素の平均値を求めるで行なう。ただし、これ以外の既知の解像度変換法を使ってもかまわない。
【００３２】
先に説明したように、入力部１０１からは１６×１６画素単位のデータが出力されるので、解像度変換部１０６は結局のところ８×８画素のデータを出力することになる。なお、実施形態では解像度変換部１０６は、入力画像の解像度を１／２に落とすものとして説明しているが、これは一例であって他の値でも構わない。
【００３３】
差分算出部１０７は、入力画像データと解像度変換後の画像データからどれだけ変化したか、差分算出を行う。この差分の算出方法は、例えば次の通りである。
【００３４】
解像度変換部１０６から出力された１つの画素をＰ０とする。また、この画素Ｐ０の元になった入力画像中の２×２画素をＰ１、Ｐ２、Ｐ３、Ｐ４とする。差分算出部１０７は、差分ｄを次のようにして求める。
ｄ＝｜Ｐ０−Ｐ１｜＋｜Ｐ０−Ｐ２｜＋｜Ｐ０−Ｐ３｜＋｜Ｐ０−Ｐ４｜
ここで、｜ｘ｜はｘの絶対値を意味する。なお、カラー画像の場合、各画素がＲ、Ｇ、Ｂ等の色成分値を持つことになるので、上記式を各成分毎に演算することになる。
【００３５】
なお、絶対値を算出する代わりに、
ｄ＝（Ｐ０−Ｐ１）2＋（Ｐ０−Ｐ２）2＋（Ｐ０−Ｐ３）2＋（Ｐ０−Ｐ４）2
として求めてもよい。
【００３６】
解像度変換部１０６からは８×８画素＝６４個の画素データが出力されるので、差分演算部１０７は、その６４個の画素について上記差分ｄ（＝ｄ1、ｄ2、ｄ3、…ｄ64）を求める。そして、差分値ｄｉの合算した値を、入力画像の１６×１６画素に対する解像度変換後の差分値Ｄとして次のようにして求める。
Ｄ＝Σｄｉ
そして、差分算出部１０７は、求められた差分値Ｄを画像判定部１１２に出力する。差分値Ｄの値が大きいほど、解像度変換後の８×８画素ブロックで構成される部分画像の画質は、オリジナル画像の対応する部分画像に対して劣化の度合が大きいことを意味する。従って、かかる意味を持つ情報を得るのであれば、差分の絶対値を求める代わりに、ＭＳＥ、ＰＳＮＲ、分散や標準偏差を求めるようにしても構わない。
【００３７】
なお、差分値Ｄが小さい値になるのは、入力画像が自然画等の場合である。なぜなら、自然画の場合、隣接する画素の値の差は小さいので、必然的に、Ｐ１，Ｐ２，Ｐ３，Ｐ４とＰ０との差も小さな値になるからである。
【００３８】
また、差分値Ｄは、上記の通り、オリジナル画像の１６×１６画素で表わされる部分画像を解像度変換した場合に、どれだけ誤差が生じたかを示す指標情報と見ることができるので、これ以降、この差分値Ｄを解像度変換誤差情報と言う。
【００３９】
図１の説明に戻る。第１の符号化部１０２は、解像度変換部１０７から出力された８×８画素ブロック単位に、非可逆符号化処理を行なって符号化データ（非可逆符号化データ）を生成し、第１のメモリ制御部１０４にその符号化データを出力する。ただし、符号化データの先頭には、第１の符号化部１０２で符号化されたことを示す識別ビット（例えば“０”の値を持つビット）を付加する。
【００４０】
実施形態における、この第１の符号化部１０２は、ＪＰＥＧ符号化（不可逆符号化）を適用した。つまり、８×８画素単位に相当する画像データを直行変換し、後述する量子化ステップを用いて量子化し、ハフマン符号化処理を行うものである。ここで生成される符号量を左右するのが量子化ステップであり、これは符号化シーケンス制御部１１０により設定される。ＪＰＥＧ符号化は、自然画に適した技術として知られている。
【００４１】
図１０はＤＣＴ変換後の周波数係数を量子化する際に用いる量子化マトリクステーブルＱ０、Ｑ１、Ｑ２を示している（符号化シーケンス制御部１１０に記憶保持されている）。ここで、量子化マトリクステーブル内の値Ｑｉ（０、０）〜Ｑｉ（７、７）（ｉ＝０、１、２…）が量子化ステップ値を意味する。量子化ステップ値は、概ね、Ｑ０＜Ｑ１＜Ｑ２…の関係にある。量子化ステップ値が大きくなればなるほど、量子化後の周波数係数値の取り得る範囲が狭くなり、圧縮率が向上する。１ページの符号化処理を開始する際に、第１の符号化部１０２に設定される量子化マトリクスはＱ０である。
【００４２】
第２の符号化部１０３は、第１の符号化部１０２と異なり、可逆符号化部である。可逆符号化であるため、その復号結果は符号化する前の画像と同じとなり、原理的に画質の劣化は発生しない。実施形態では、この第２の符号化部１０３は、ＪＰＥＧ−ＬＳを適用した。ＪＰＥＧ−ＬＳは「ＪＰＥＧ」を冠するものの、第１の符号化部１０２で採用している非可逆符号化ＪＰＥＧとはそのアルゴリズムは全く異なる。ＪＰＥＧ−ＬＳ符号化の特徴は、文字線画、コンピュータグラフィックスに適した技術である。すなわち、ＪＰＥＧ−ＬＳは、これらの画像の場合には、非可逆符号化であるＪＰＥＧに与える量子化ステップが“１”（実質可逆）は勿論こと、“２”、“３”等の比較的小さい量子化ステップ値よりも遥かに少ない符号データを生成することができる。
【００４３】
第２の符号化部１０３は、１６×１６画素データ単位に入力し、可逆符号化データを生成し、第１のメモリ制御部１０４に出力する。ただし、可逆符号化データの先頭には、第１の符号化部１０２で生成された非可逆符号化データと区別するため、その先頭には識別ビット（例えば、“１”のビット）を付加する。
【００４４】
従って、復号処理部８は、この識別ビットが“０”の場合には該当する画素ブロックの符号化データが非可逆符号化データであるものとして復号処理を行なう。そして、且つ、復号して得られた画像を、水平、垂直とも数倍（実施形態では２倍）にして画像を生成する。画像を２倍にするには、復号して得られた１画素と同じ値を持つ２×２画素を生成すればよい。場合によっては、線形補間で画素数を増やすようにしても良い。また、識別ビットが“１”の場合には該当する画素ブロックの符号化データが可逆符号化データであるものとして復号処理を行なえば良いことになる。
【００４５】
また、第２の符号化部１０３においては、ＪＰＥＧ−ＬＳの処理に則って注目画素データを符号化中、その注目画素の周囲画素群に含まれる色数をカウントしていく。具体的には次の通りである。
【００４６】
図６は、その色数カウントする際のスキャン順を示している。図示において、＊印が注目画素を示し、矢印がスキャン方向を示している。１６×１６画素の領域内の１ラインのスキャンが完了すると、図示の下方向のラインの左端からスキャンを開始する。従って、図示の注目画素の近傍画素ａ，ｂ，ｃ，ｄは、既符号化済みの画素となる。
【００４７】
本実施形態では、注目画素の位置が更新される度に、その近傍画素ａ，ｂ，ｃ，ｄに含まれる色数が“２”となっている回数をカウントしていく。すなわち、図示の場合、近傍画素の数が４つであるので、最低色数は“１”であり、最大色数は“４”となる。実施形態では、色数“２”の検出が、１６×１６画素の領域をスキャンしていく最中に、何回検出されたのかを示す色数情報を画像判定部１１２に出力する。なお、ここでは注目画素を、色数のカウントの対象外としたが、カウント対象としても構わない。
【００４８】
第１の符号化部１０２と第２の符号化部１０３は、実質的に同じタイミングで、オリジナル画像の同じ１６×１６画素データに対応する符号化データを生成する。
【００４９】
第１の符号長検出部１０８は、第１の符号化部１０２から出力される画素ブロックの符号化データ長（識別ビットである１ビットを含む）を検出し、符号化シーケンス制御部１０８に出力する。第２の符号長検出部１０９は第２の符号化部１０３から出力される画素ブロックの符号化データ長（識別ビットである１ビットを含む）を検出し、符号化シーケンス制御部１０８に出力する。
【００５０】
画像判定部１１２は、第１、第２の符号化部が符号化データを出力するタイミングで、差分算出部１０７からの解像度変換誤差情報Ｄ、及び、第２の符号化部１０３から出力された色数情報Ｃと、２つの予め設定された閾値Ｔ１、Ｔ２との関係が、
条件：Ｄ＞Ｔ１  且つ  Ｃ＞Ｔ２        …（１）
を満たすか否かを判定する。そして、上記条件式（１）を満たす場合には“１”、満たさない場合には“０”の画像判定信号Ｈを符号化シーケンス制御部１０８に出力する。
【００５１】
上記条件を満たす場合、オリジナル画像の１６×１６画素領域に含まれる色数は、ほぼ２色と少なく、且つ、高周波成分を多く含んでいることを意味する。典型的には、文字／線画（白地に黒文字や黒線）を意味すると考えると分かりやすい。以下の説明では、上記条件を満たすことを、オリジナル画像中の１６×１６画素ブロックが特定画像であるとして説明する。
【００５２】
符号化シーケンス制御部１１０は実施形態における符号化処理部６の制御を司るものである。その１つに、第１の符号長検出部１０８、第２の符号長検出部１０９、及び、画像判定部１１２からの信号Ｈと、内蔵したＬＵＴ（ルックアップテーブル）１２０を用いて、第１のメモリ１０５に格納すべき符号化データを決定する処理がある（この選択原理は後述する）。そして、その決定した符号化データを選択させるための選択信号を第１のメモリ制御部１０４に出力する。
【００５３】
また、符号化シーケンス制御部１１０は、各画素ブロック毎に、非可逆／可逆符号化データの何れを選択したのか、及び、非可逆符号化データ長、可逆符号化データ長を示す情報を符号化履歴記録部１５１に記録しておく（詳細は後述）。
【００５４】
更に、符号化シーケンス制御部１１０は、第１のメモリ１０５に格納することになった符号化データの符号長データを累積カウントする第１のカウンタ１１１を備える。第１のカウンタ１１１は、１ページの符号化を開始する際にゼロクリアされる。従って、このカウンタ１１１は、第１のメモリ１０５に格納された総符号化データ量を示す情報を保持することになる。
【００５５】
また、この符号化シーケンス制御部１１０は、カウンタ１１１の値（第１のメモリ１０５に格納された符号化データ量）と目標符号量Ｔｈ（入力画像のサイズに依存して決定されるものとする）との比較を行う。そして、カウンタ１１１の値が目標符号量Ｔｈを越えた（目標符号量に達した場合としても良い）ことを検出した時に、符号化シーケンス制御部１１０はメモリ１０５内の格納済みのデータを廃棄するようメモリ制御部１０４に制御信号を出力する。また、このとき、符号化シーケンス制御部１１０は、カウンタ１１１をゼロクリアする。そして、画像の再入力を制御部１（図１１参照）に対して要求し、原稿画像の再スキャンを実施させる。
【００５６】
再スキャンを行なう目的は、第１のメモリ１０５に格納される符号化データ量をより少なくするためである。それ故、符号化シーケンス制御部１１０は、第１の符号化部１０２に設定する量子化マトリクス、第１、第２符号長検出部及び画像判定部１１２からの信号に基づく判定条件、或いは、ＬＵＴ１２０による選択基準を変更する。すなわち、符号化シーケンス制御部１１０は、少なくとも前回よりも発生する符号化データ量を抑制するための環境設定（符号化パラメータ）を更新する。この更新処理についての詳細は後述する。
【００５７】
こうして、カウンタ１１１の値が目標符号量Ｔｈを超えないまま、１ページの符号化が完了すると、それを２次記憶装置７にファイルとして出力する。この１ページの符号化データには、可逆、非可逆符号化データが混在した符号化データが生成されることになることに注意されたい。また、次のページの画像データが存在する（或いは次の原稿が存在する）場合には、その原稿の読み込みを行なうべく、その原稿を読取面（一般にはプラテンガラス）に搬送し、読取及び符号化を開始する。
【００５８】
以上実施形態における符号化処理部６の大まかな処理内容について説明した。
【００５９】
＜環境設定の説明＞
次に、実施形態における符号化シーケンス制御部１１０が、画素ブロック毎の非可逆／可逆符号化データのいずれを第１のメモリ１０５に格納するかを決定するための環境設定について説明する。なお、以下の説明では、本実施形態の処理内容の理解がしやすいようにするため、画像判定部１１２からの画像判定情報はないものとして説明する。画像判定部１１２からの画像判定情報を利用した処理の詳細は後述する。
【００６０】
先に説明したように実施形態では、第１の符号化部１０２に非可逆符号化であるＪＰＥＧ、第２の符号化部１０３に可逆符号化であるＪＰＥＧ−ＬＳを利用した場合である。ＪＰＥＧは周知の通り自然画の圧縮に適した符号化技術であるが、文字／線画等については圧縮率は高くない。一方、ＪＰＥＧ−ＬＳは、文字／線画（カラーを含む）、並びに、単調な棒グラフ等の画像に好適なものであり、尚且つ、可逆符号化であるが故に画像劣化は原理的に発生しない。ただし、ＪＰＥＧ−ＬＳは自然画については圧縮率は高くない。つまり、これら２つの符号化技術は互いに補う関係にあると言える。
【００６１】
ここで、図９に示すような、文字／線画領域Ｔ１、Ｔ２、コンピュータグラフィクスによるグラデーション（濃度がなだらかに変化する画像）領域Ｇ、自然画領域Ｉを含む原稿を読取る場合について考察する。
【００６２】
文字／線画領域Ｔ１内には、画像のエッジが急峻な文字／線画のみが存在し、文字／線画Ｔ２ではエッジ部分が多少ボケた文字／線画のみが存在するものとする。文字／線画領域Ｔ２は文字や図形のふちを滑らかに見せるためのアンチエイリアス処理をかけたものや、デジタル的な解像度変換を行った場合に相当する。文字／線画領域Ｔ２は、何度も複写を繰り返した場合の画像を擬似的に生成したものと考えると分かりやすい。
【００６３】
さて、非可逆符号化を行なう第１の符号化部１０２に対しては初期パラメータとして量子化マトリクスＱ０（最高画質、最低圧縮率）を設定し、図９の原稿を読取ったとする。このとき、１６×１６画素ブロック単位に可逆符号化して得られた符号化データの符号長をＬｘ、上記１６×１６画素ブロックの解像度変換後の８×８画素ブロックを非可逆符号化で符号化して得られた符号化データの符号長をＬｙとする。このＬｘ、Ｌｙを座標とする点Ｐ（Ｌｘ、Ｌｙ）を、１ページに含まれる画素ブロックの数だけプロットした結果を示すのが図７である。
【００６４】
図７における楕円で囲んだ各分布領域２００１乃至２００５が、上記各領域Ｔ１、Ｔ２、Ｇ、Ｉのプロットした点の概ねの分布領域を示している。なお、楕円外をプロットする点が存在したが、そのようなプロット点は少なく、イレギュラーな点として無視した。また、図示の破線２００６はＬｙ＝Ｌｘの関係を示す直線である。
【００６５】
ここで符号化データの圧縮効率の観点からすれば、第１のメモリ１０５に格納する符号化データは次のような条件で決定することになろう。
１．Ｌｙ＜Ｌｘの関係にあるとき、第１のメモリ１０５には第１の符号化部１０２からの非可逆符号化データを格納する。
２．Ｌｙ≧Ｌｘの関係にあるとき、第１のメモリ１０５には第２の符号化部１０３からの可逆符号化データを格納する。
【００６６】
上記のようにすると、第１のメモリ１０５は１ページの総符号化データ量が、最小データ量とすることが可能になる。
【００６７】
しかしながら、境界条件Ｌｙ＝Ｌｘの場合には、コンピュータグラディエーション領域Ｇは、境界線２００６で分断されることになり、非可逆符号化データと可逆符号化データが画素ブロック単位に混在した状態になる。すなわち、コンピュータグラディエーション領域Ｇには、可逆符号化データの画素ブロックと非可逆符号化データの画素ブロックが交互に発生する可能性が非常に高いことを意味する。これを復号すると、符号化方式の違いに起因して、隣接する画素ブロックの境界が不連続となるブロックノイズが発生し易くなり、画質の面で不利と考えられる。
【００６８】
そこで、実施形態では、図７の実線２００７で示される非線形な境界条件を設定する。すなわち、コンピュータグラデーション領域Ｇの分布領域２００３と自然画領域Ｉの分布領域２００４との中間位置を通り、分布領域２００３外を回り込むような下に凸（上に凹）の曲線を設定する。また、その曲線を文字／線画領域Ｔ２の分布領域２００２と自然画領域Ｉの分布領域２００４との間を通るようにした。
【００６９】
なお、図７では境界線２００７の湾曲部分（非線形部分）は、コンピュータグラデーション領域Ｇ、アンチエイリアス処理を施した文字／線画領域Ｔ２の外部を通る部分とした。しかし、必ずしもコンピュータグラデーション領域Ｇやアンチエイリアス処理を施した文字／線画領域Ｔ２の外部を通るとは限らないし、更に多くのサンプルを用いて求めることが望まれる。いずれにしても、単純な線形境界条件２００６と比べ、実施形態の境界線２００７のように、比較的符号量の低い部分については、可逆符号化データが採用される確率が高くなり、上記のような問題が発生することを抑制できる。また、境界線が非線形になる箇所は両符号化の符号長の小さい領域であるので、画像全体に対する符号データ量に与える影響は少ないくすることもできる。
【００７０】
ここで実線２００７で示される境界条件を、Ｌｙ＝ｆ（Ｌｘ）と表現すると、
１．Ｌｙ＜ｆ（Ｌｘ）の関係あるとき、第１のメモリ１０５には第１の符号化部１０２からの非可逆符号化データを格納する。
２．Ｌｙ≧ｆ（Ｌｘ）の関係にあるとき、第１のメモリ１０５には第２の符号化部１０３からの可逆符号化データを格納する。
【００７１】
この結果、コンピュータグラデーション領域内は、異なる符号化種類の符号化データが混在する確率が低くなり、上記のような問題が発生することを抑制できるようになる。
【００７２】
なお、図７における実線２００７は、原点、点Ａ（≒コンピュータグラデーション領域の可逆符号化データ長の最大値＋α）、点Ｂ（Ｌｘ＜Ｌｙを満たすアンチエイリアス処理を施した文字／線画領域Ｔ２の最大値＋α）で示される区間を曲線で示した。そして、点Ｂより大きい領域では破線２００６と実線２００７とを重ねるようにした。この結果、可逆／非可逆符号化データのデータ長が共に大きい場合には、そのデータ長が短い符号化データが選択されることになり、第１のメモリ１０５に格納される符号化データ量の増大を抑制できる。
【００７３】
次に、第１のカウンタ１１１の値が目標符号量Ｔｈを超えた場合の対処法について以下に説明する。２回め以降のスキャンでは、当然、前回の符号化データ量よりも少ない符号化データ量にする必要がある。本願発明者等は、このためのアプローチとして２通りを考えた。以下に、それぞれのアプローチについて先ず説明する。
【００７４】
＜第１のアプローチ＞
第１のアプローチは、前回の符号化で使用されていた量子化マトリクスを仮にＱi-1としたとき、今回のスキャン及び符号化ではそれより上の量子化マトリクスＱiとし、且つ、境界条件を変更する。具体的には次の通りである。
【００７５】
図７は第１の符号化部１０２に設定する量子化マトリクスＱ0であった。その量子化マトリクスＱ0より１つレベルの高い量子化マトリクスＱ1を用いた場合の、各像域のプロットした分布領域は図８のようになる。
【００７６】
可逆符号化データの符号長Ｌｘは変動しないので、図７の各分布領域２００１乃至２００４は、図８の分布領域２００１’乃至２００４’のように、総じて垂直軸の下方向にシフトすることになる。また、これに伴い、図７の境界線２００７の曲線部分も、図８の境界線２００７’のように総じて下方向にシフトする。
【００７７】
ここで、第１の符号化部１０２で使用する量子化マトリクスをＱiとし、その際の境界条件ｆi（）と定義する。ここで、変数ｉは図１０に示す如く、０、１、２、３…の値であり、境界条件ｆiで示される境界線の湾曲部分は、ｉが大きくなるほど、下方向にシフトする。
【００７８】
要するに、符号化シーケンス制御部１１０の処理は次のようになる。
１．Ｌｙ＜ｆi（Ｌｘ）の関係あるとき、第１のメモリ１０５には第１の符号化部１０２からの非可逆符号化データを格納する。
２．Ｌｙ≧ｆi（Ｌｘ）の関係にあるとき、第１のメモリ１０５には第２の符号化部１０２からの可逆符号化データを格納する。
【００７９】
以上の結果、少なくとも前回の符号化で用いた量子化マトリクスがＱi-1であった場合、今回の量子化マトリクスをＱiとすることで、第１のメモリ１０５に格納される符号化データ量は前回の符号化時のそれとより少なくできるようになる。
【００８０】
＜第２のアプローチ＞
図８の境界線２００６と境界線２００７で挟まれる領域を明示すると図１２の斜線で示した領域２０１０となる。
【００８１】
或る画素ブロックから得られた可逆符号化データ長をＬｘ、非可逆符号化データ長をＬｙとしたとき、座標（Ｌｘ，Ｌｙ）が領域２０１０内にあれば、非可逆符号化データよりも多い可逆符号化データが第１のメモリ１０５に格納されることになる。
【００８２】
従って、量子化マトリクスＱｉを変更しなくても、この領域２０１０の面積を小さくするだけで第１のメモリ１０５に格納される符号化データ量を少なくなるできる。
【００８３】
その為には、２回めのスキャン時には、図１３のように、境界線２００７を左方向にシフトした境界線２００７ａに変更する。また、これでもって生成された符号化データ量が目標符号量Ｔｈを越えた場合には、更に左にシフトした境界線２００７ｂを採用するようにする。
【００８４】
なお、図１３では、境界線２００７ｂが領域２００２の内部を通過するようになっている。領域２００７ｂはアンチエイリアス処理を施した不鮮明な文字／線画に対応するものであり、且つ、通常の文書中の文字／線画は領域２００２ではなく領域２００１に対応するので、符号化による画質劣化の影響は少ない。ただし、領域２００３（コンピュータグラフィックスによる画像）内に境界線が入り込まないようにすることが望ましい。理由は先に説明した通りである。ただし、本発明は、境界線が必ずしも、領域２００３外を通ることを必須とするものではない。なぜなら、多少は領域２００３内に境界線が入り込んだとしても、線形な境界線２００６と比較すれば、画質が劣化する可能性は低くなるからである。
【００８５】
また、上記では、境界線２００７ａ、２００７ｂについて、境界線２００７を左シフトするという表現を用いたが、単純なシフトではなく、先の第１のアプローチと同様に、境界線２００７の水平方向の倍率を変更することで実現しても構わない。
【００８６】
以上説明したように、量子化マトリクスを変更しなくても、境界線２００７を総じて左側にシフトすることで、符号化データ量を減らすことが可能になることが理解できよう。
【００８７】
＜符号化環境の設定原理の説明＞
上記第２のアプローチでは、量子化マトリクスＱ0の初期の境界線２００７を、Ｌｙ≧Ｌｘを満たしつつ、左シフトして境界線２００７ａ，２００７ｂ…を定義していくものであった。この左シフトする対象は、量子化マトリクスＱ1,Ｑ2，…それぞれの初期の境界線についても同様である。
【００８８】
ここで、左シフトの回数を変数ｊで定義すると、結局のところ、可逆／非可逆符号化データの選択判定の境界条件は、上記変数ｊと使用する量子化マトリクスを特定する変数ｉによって特定できることになる。即ち、境界条件は、変数ｉ，ｊをパラメータとする関数ｆi,j（）と見ることができる。
【００８９】
従って、符号化シーケンス制御部１１０は、次の処理を行なえば良いことになる。
１．Ｌｙ＜ｆi,j（Ｌｘ）の関係あるとき、第１のメモリ１０５には第１の符号化部１０２からの非可逆符号化データを格納する。
２．Ｌｙ≧ｆi,j（Ｌｘ）の関係にあるとき、第１のメモリ１０５には第２の符号化部１０３からの可逆符号化データを格納する。
【００９０】
符号化シーケンス制御部１１０は、画素ブロックの符号化データが生成される都度、この関数ｆi,j（）を演算すれば良いが、それでは符号化シーケンス制御部１１０に係る負担は大きい。そこで、実施形態では、関数ｆi,j（）（i,j＝0,1,2,3,…）に相当する幾つもの境界条件データを、符号化シーケンス制御部１１０内のＬＵＴ（ルックアップテーブル）１２０として保持するようにした。
【００９１】
符号化シーケンス制御部１１０内における、ＬＵＴ１２０を用いた符号化データの選択、及び、境界関数ｆi,j（）の選択に係る構成は、例えば図２に示す構成で実現できよう。
【００９２】
ＬＵＴ１２０にはアドレスとして、第１の符号長検出部１０８及び第２の符号長検出部１０９それぞれからの符号長データ、変数ｉ、及び、変数ｊが供給される。
【００９３】
この変数ｉ，ｊは、境界条件関数ｆi,j（）を示す複数のテーブルの中の１つを選択するための信号とも見ることができる。
【００９４】
そして、ＬＵＴ１２０内の、上記アドレス位置に１ビットの選択信号Ｓを予め格納しておく。例えば、Ｌｙ≧ｆi,j（Ｌｘ）という関係にあるアドレス位置には“１”、Ｌｙ＜ｆi,j（Ｌｘ）という関係にあるアドレス位置には“０”を格納する。
【００９５】
そして、アドレスされた際にそのビットを符号化データ選択信号Ｓとして第１のメモリ制御部１０４に出力する。また、この符号化データ選択信号Ｓはセレクタ１２１の選択信号としても供給される。そして、セレクタ１２１は選択された符号長データは第１のカウンタ１１１に出力される。第１のカウンタ１１１はセレクタ１２１から出力されたデータ長を累積加算していけばよい。
【００９６】
さて、原稿のスキャン／符号化する場合には、符号化シーケンス制御部１１０は、第１の符号化部１０２に対して、変数ｉで示される量子化マトリクステーブルＱiを設定する。また、符号化シーケンス制御部１１０は、境界条件ｆi,j（）に従って、可逆／非可逆符号化データのいずれか一方を第１のメモリ１０５に格納する。なお、最初に原稿をスキャン／符号化する場合には、ｉ＝ｊ＝０である。
【００９７】
この符号化処理中に、第１のカウンタ１１１が保持した符号量情報（第１のメモリ１０５に格納された総符号化データ量）が目標符号量Ｔｈを越えたとする。この場合、符号化シーケンス制御部１１０は、現在の境界条件に隣接する境界条件ｆi+1,j（）、ｆi,j+1（）のいずれにするかを決定し、再スキャン／符号化を実行する。換言すれば、符号化シーケンス制御部１１０は、変数ｉ，ｊの値を決定しなければなならい。そこで、以下では、この変数ｉ，ｊの決定の原理について説明する。
【００９８】
実施形態における符号化シーケンス制御部１１０は、１つの画素ブロックの符号化が完了するごとに、符号化処理のログ情報を符号化履歴記録部１５１（図１参照）に格納する。
【００９９】
符号化履歴記録部１５１が記憶データ構造は、例えば図１７に示す通りである。図示では、変数ｉ＝ａ、ｊ＝ｂの場合のログ情報を示している。
【０１００】
第１のフィールドは、画素ブロックの番号であり、最大画素ブロックの番号Ｎmaxは読取る原稿のサイズに依存する。第２フィールドは可逆符号化データ長Ｌｘ、第３フィールドは非可逆符号化データ長Ｌｙ、第４フィールドは何れの符号化データを第１のメモリ１０５に格納させたかを示す選択信号Ｓ（図２参照）を格納する。なお、第５フィールドは、画像判定部１１２からの画像判定信号Ｈであるが、ここでは説明しない。
【０１０１】
また、可逆符号化データが選択された場合、すなわち、選択信号Ｓが“１”の場合の可逆符号化データ長Ｌｘの累積加算値ＭLSをエリア１５１ａに格納する。同様に、選択信号Ｓが“０”の場合の非可逆符号化データ長Ｌｙの累積加算値ＭJPをエリア１５１ｂに格納する。つまり、エリア１５１ａが保持する値ＭLSとエリア１５１ｂが保持する値ＭJPの合算結果は、第１のカウンタ１１１が保持する値に等しい。
【０１０２】
また、図１７では、ちょうどｋ番目の画素ブロックの符号化処理が完了した場合に、第１のカウンタ１１１が保持する値が目標符号量Ｔｈを越えた場合を示している。
【０１０３】
この場合、実施形態における符号化シーケンス制御部１１０は、以下のような処理を実行する。
【０１０４】
［ＭLS＜ＭJPの場合］
これは、非可逆符号化データのデータ量が、可逆符号化データ量よりも多かった場合を示している。換言すれば、全符号化データ中、非可逆符号化データ量が支配的な場合である。符号化シーケンス制御部１１０は、次のように処理する。
１．第１のメモリ１０５内のデータを破棄する指令を第１のメモリ制御部１０４に出力し、第１のカウンタ１１１をゼロクリアする。
２．第１の符号化部１０２に対して、前回の量子化マトリクスＱaより１段階大きな量子化マトリクスＱa+1を設定する。
３．ｉ＝ａ＋１、ｊ＝ｂをＬＵＴ１２０に設定し、使用する境界条件をｆa+1,j（）に変更する。
４．原稿の再スキャン／符号化を開始する。
【０１０５】
［ＭLS≧ＭJPの場合］
これは、可逆符号化データのデータ量が、非可逆符号化データ量よりも多かった場合を示している。換言すれば、全符号化データ中、可逆符号化データ量が支配的な場合である。符号化シーケンス制御部１１０は、次のように処理する。
１．第１のメモリ１０５内のデータを破棄する指令を第１のメモリ制御部１０４に出力し、第１のカウンタ１１１をゼロクリアする。
２．第１の符号化部１０２に対しては、前回の量子化マトリクスＱaのままに維持する。
３．ｉ＝ａ、ｊ＝ｂ＋１として、ＬＵＴ１２０に設定し、使用する境界条件をｆa,b+1（）を設定する。
４．原稿の再スキャン／符号化を開始する。
【０１０６】
以上の結果、本実施形態によると、１ページの画像を符号化処理中に得られた符号化データが目標符号量Ｔｈを越えた場合、その際の可逆／非可逆符号化データ量に応じて、変数ｉ，ｊを決定する。従って、符号化対象の画像データに応じた最適な符号化環境を設定可能になる。
【０１０７】
［画像判定信号Ｈの活用の説明］
以上の説明は、本実施形態の処理を理解しやすくするため、画像判定部１１２からの画像判定信号Ｈについて言及していない。以下、この画像判定部１１２からの画像判定信号Ｈを用いた場合を説明する。
【０１０８】
先に説明したように文字／線画の領域では、第２の符号化部１０３で生成される符号化データが選択される確率が高く、自然画領域では第１の符号化部１０２からの符号化データが選択される確率が高くなる。
【０１０９】
しかしながら、これはあくまで確率であって、必ずしもそのようになるとは限らない点に注意したい。
【０１１０】
従って、文字のみから構成される通常の１ページの画像を符号化して、印刷を行なったとする。この場合、１つの文字の上半分のエッジは鮮明であり、下半分はそうではないことが起こりえる。これでは、その印刷結果を見る者にとっては違和感を抱くことにもなろう。１つの文字に着目した場合、そのエッジが鮮明か、多少は不鮮明になるにしても、その文字全体のエッジが同じように印刷されることが望ましいし、ページ全体の文字が同じようなエッジで印刷されることの方が重要である。
【０１１１】
画像判定部１１２は、先に示した条件式（１）を満たすか否かを示す画像判定信号Ｈを出力する。
【０１１２】
この条件式（１）の意味は、１６×１６画素ブロックを解像度変換前と後での解像度変換誤差が大きく、且つ、１６×１６画素に含まれる色数が“２”であると見なして良いか否かを示している。つまり、少なくとも文字画像であるか否かを示す判定であると言える。
【０１１３】
そこで、本実施形態では、画像判定部１１２からの画像判定信号Ｈが“１”の場合、強制的に、可逆／非可逆符号化データのいずれか一方を選択するための判断基準に加えるものとした。この選択する対象は、１ページの符号化中は固定である。
【０１１４】
本実施形態では、画像判定信号が“１”である場合、初期状態では、無条件に可逆符号化データを選択するようにする。また、その後で、後述する条件を満たす場合、画像判定信号が“１”である場合には、今度は逆に非可逆符号化データを無条件に選択するようにする。
【０１１５】
従って、初期状態であるか否かを判断するための変数ＦＬＡＧを用意し、１ページの画像を最初に符号化するとき、ＦＬＡＧ＝０と設定する。
【０１１６】
つまり、ＦＬＡＧ＝０であり、尚且つ、画像判定信号Ｈ＝“１”の場合には、第２の符号化部１０３からの可逆符号化データを第１のメモリ１０５に格納するよう選択信号Ｓを発生する。
【０１１７】
そして、ＦＬＡＧ＝１であり、尚且つ、画像判定信号Ｈ＝“１”の場合には、第１の符号化部１０２からの非可逆符号化データを第１のメモリ１０５に格納するよう選択信号Ｓを発生する。
【０１１８】
本実施形態の符号化シーケンス制御部１１０は、次のように符号化処理を制御する。なお、これまでの説明の通り、１６×１６の画素ブロックの可逆符号化データのデータ長をＬｘ、その１６×１６の画素ブロックを解像度変換した後の８×８の画素ブロックの非可逆符号化データのデータ長をＬｙとして説明することとする。
【０１１９】
［符号化対象の画像データを最初に符号化する場合］
符号化シーケンス制御部１１０は、符号化パラメータｉ，ｊ、及びＦＬＡＧを共に“０”を設定する。従って、第１の符号化部１０２に対して、初期値として量子化マトリクスＱ０を設定し、入力部１０１からの画像データを第１の符号化部１０２、第２の符号化部１０３で符号化を開始させる。
【０１２０】
符号化シーケンス制御部１１０は、第１のメモリ１０５に格納すべき符号化データを以下の条件にしたがって決定する。
条件Ａ．画像判定信号Ｈが“１”の場合：
無条件に、第２の符号化部１０３で生成される可逆符号化データを第１のメモリ１０５に格納させる。
条件Ｂ．画像判定信号Ｈが“０”の場合：
・Ｌｙ＜ｆ0,0（Ｌｘ）の関係にあるとき、第１の符号化部１０２で生成された非可逆符号化データを第１のメモリ１０５に格納させる。
・Ｌｙ≧ｆ0,0（Ｌｘ）の関係にあるとき、第２の符号化部１０３で生成された可逆符号化データを第１のメモリ１０５に格納させる。
【０１２１】
ここで、注意する点は、最初のスキャンであるので、上記条件Ａ，ＢのいずれもＦＬＡＧ＝０であることを前提にしている。
【０１２２】
［２回目以降の符号化の場合］
これは、前回、或いは、最初の符号化処理中に、第１のカウンタ１１１が保持する値は目標符号量を越えた場合である。
【０１２３】
ここでは、説明を簡単なものとするため、最初の符号化中、図１７に示すように第ｋ番目の画素ブロックを符号化した際に、第１のカウンタ１１１が保持する値が、目標符号量Ｔｈを越えた場合について説明する。つまり、図１７におけるａ，ｂはａ＝ｂ＝０であり、ＦＬＡＧ＝０であるものとして説明する。
【０１２４】
ｋ番目の画素ブロックの符号化が完了した場合の第１のメモリ１０５に格納された符号化データ量（第１のカウンタ１１１が保持する値）をＭ０とする。このとき、Ｍ０と図１７の符号化履歴記録部１５１に格納されているＭLS、ＭJPとの関係は、次の通りである。
Ｍ０＝ＭLS＋ＭJP
また、可逆符号化データ量ＭLSは、２種類の可逆符号化データ量で分けられる。１つは、上記条件Ａ（画像判定信号Ｈが“１”）に従って強制的に可逆符号化データが選択された場合の符号化データ量であり、これをＭLS（H1）と定義する。もう１つは上記条件Ｂ（画像判定信号Ｈが“０”）の「Ｌｙ≧ｆ0,0（Ｌｘ）」が満たされた場合の符号量であり、これをＭLS（H0）と定義する。つまり、
ＭLS＝ＭLS（H1）＋ＭLS（H0）
である。
【０１２５】
画像判定信号Ｈは“１”か“０”のいずれかである。従って、図１７の場合、ＭLSH1は、変数ｂ＝１、２、…ｋの合算関数Σで表わすと次の通りに記述できる。
ＭLSH1＝ΣＬｘ（ｂ）×Ｈ（ｂ）
また、ＭLSH1は、単純に、次のように算出できる。
ＭLSH0＝ＭLS−ＭLSH1
【０１２６】
本実施形態では、ＭJP、ＭLS（H1）、ＭLS（H0）の中の最大値を示すものを探し出し、それぞれに応じて、次回のスキャン／符号化に利用する符号化パラメータを決定する。なお、理論上、ＭJP＝ＭLS（H1）＝ＭLS（H0）となることもあるが、このような場合、優先順位としてＭJP＜ＭLS（H0）＜ＭLS（H1）と見なして処理を行なうものとする。
【０１２７】
また、符号化履歴記録部１５１には、ＭJP、ＭLS（H1）、ＭLS（H0）を格納する領域を設けても良い。この場合、１画素ブロックの符号化が完了する毎に、ＭJP、ＭLS（H1）、ＭLS（H0）を更新すれば良いので、上記算出は不要にできる。
【０１２８】
なお、ここで注意したい点は、上記はＦＬＡＧ＝０であることを前提にしている点である。ＦＬＡＧ＝１である場合であって、画像判定信号Ｈが“１”のときには強制的に、非可逆符号化データを選択するので、ＭLS（H1）は“０”となり、必ず最小値となる。
【０１２９】
＜ＭLS（H1）が最大値である場合＞
これは第１のメモリ１０５に格納されている符号化データの内、ＦＬＡＧ＝０、且つ、画像判定信号Ｈが“１”となった場合の可逆符号化データが一番多いことを示している。
【０１３０】
実施形態では、現在の符号化パラメータｉ，ｊを維持したまま、再度スキャン／符号化を行なう。ただし、このままでは、同じ結果になってしまうので、次回のスキャン／符号化時には、画像判定信号Ｈが“１”の場合には、第１の符号化部１０２からの非可逆符号化データを選択するように変更する。すなわち、ＦＬＡＧ＝１に更新する。まとめると、符号化シーケンス制御部１１０の処理は次の通りである。
１．第１のメモリ１０５内のデータを破棄する指令を第１のメモリ制御部１０４に出力し、第１のカウンタ１１１をゼロクリアする。
２．符号化パラメータｉ，ｊは変更しない。従って、第１の符号化部１０２に対しても、前回のスキャン／符号化時の量子化マトリクスＱaのまま維持し、使用する境界条件をｆa,b（）のままにする。
３．変数ＦＬＡＧを“１”に設定する。
４．画像の再スキャン／符号化を開始する。
【０１３１】
従って、画像の再スキャン／符号化では、画像判定信号Ｈが“１”となった場合、第１のメモリ１０５には無条件に非可逆データを格納するための選択信号Ｓを出力することになる。
【０１３２】
なお、これ以降、注目ページに対する最終的な符号化データが得られるまで、ＦＬＡＧの値は“１”のままに維持する。
【０１３３】
従って、ここで説明した＜ＭLS（H1）が最大値である場合＞の処理は、注目ページの符号化処理中は、最大でも１回しか実行されない。
【０１３４】
＜ＭLS（H0）が最大値である場合＞
これは第１のメモリ１０５に格納されている符号化データの内、『Ｌｙ≧ｆa,b（Ｌｘ）』の関係にあると判断されて格納された可逆符号化データ量が一番多い場合を意味する。
【０１３５】
この場合、符号化シーケンス制御部１１０は、これまで説明した処理に従って処理を行なう。再度説明すれば次の通りである。
１．第１のメモリ１０５内のデータを破棄する指令を第１のメモリ制御部１０４に出力し、第１のカウンタ１１１をゼロクリアする。
２．第１の符号化部１０２に対しては、前回の量子化マトリクスＱaのままに維持する。
３．符号化パラメータｉ，ｊを、ｉ＝ａ、ｊ＝ｂ＋１として、ＬＵＴ１２０に設定し、使用する境界条件をｆa,b+1（）を設定する。
４．原稿の再スキャン／符号化を開始する。
【０１３６】
この結果、画像の再スキャン／符号化処理が開始されるが、その符号化処理中に画像判定信号Ｈが“１”になった場合に選択する符号化データは、変数ＦＬＡＧに依存して決定する。
【０１３７】
［ＭJPが最大になる場合］
これは第１のメモリ１０５に格納されている符号化データの内、『Ｌｙ＜ｆa,b（Ｌｘ）』の関係にあると判断されて格納された非可逆符号化データ量が一番多い場合を意味する。
【０１３８】
この場合、符号化シーケンス制御部１１０は、これまで説明した処理に従って処理を行なう。再度説明すれば次の通りである。
１．第１のメモリ１０５内のデータを破棄する指令を第１のメモリ制御部１０４に出力し、第１のカウンタ１１１をゼロクリアする。
２．第１の符号化部１０２に対して、前回の量子化マトリクスＱaより１段階大きな量子化マトリクスＱa+1を設定する。
３．符号化パラメータｉ，ｊをｉ＝ａ＋１、ｊ＝ｂとして、ＬＵＴ１２０に設定し、使用する境界条件をｆa+1,j（）に変更する。
４．原稿の再スキャン／符号化を開始する。
【０１３９】
この結果、画像の再スキャン／符号化処理が開始されるが、その符号化処理中に画像判定信号Ｈが“１”になった場合に選択する符号化データは、変数ＦＬＡＧに依存して決定する。また、ＦＬＡＧ＝１となった場合、ＭJPには、画像判定信号Ｈが“１”になって選択された非可逆符号化データのデータ量と、画像判定信号Ｈが“０”になって、Ｌｙ＜ｆa,b（Ｌｘ）となって選択された非可逆符号化データのデータ量が含まれることになる。
上記を実現するため、符号化シーケンス制御部１１０は図３乃至図５のフローチャートに従って処理を行えば良い。
【０１４０】
先ず、ステップＳ１で変数ｉ、ｊ、ＦＬＡＧに初期値として０をセットする。次いで、ステップＳ２では、第１のカウンタ１１１に相当する変数Ｃｎをゼロクリアする。
【０１４１】
この後、ステップＳ３で第１の符号化部１０２に量子化マトリクステーブルＱｉをセットする。最初の符号化の場合、ｉ＝０であるので、第１の符号化部１０２に量子化マトリクステーブルＱ０をセットすることになる。また、このとき、符号化履歴記録部１５１をクリアする処理も行なう。
【０１４２】
次いで、ステップＳ４で１画素ブロックのデータ（１６×１６画素で構成される部分画像データ）を入力する。
【０１４３】
そして、ステップＳ５にて第２の符号化部１０２で可逆符号化を行い、ステップＳ６にてその際に得られた符号化データ長Ｌｘを求める。また、この符号化処理中に、符号化対象となる注目画素の近傍画素群内の色数が“２”となっている個数Ｃ（以下、２色数Ｃという）をカウントする（ステップＳ７）。
【０１４４】
また、この可逆符号化と並行して、以下のステップＳ８乃至Ｓ１１の処理を行なう。
【０１４５】
ステップＳ８では、１６×１６画素ブロックを８×８画素ブロックへ解像度変換を行なう。そして、ステップＳ９では解像度変換誤差Ｄを算出する。次いで、ステップＳ１０では、非可逆符号化を行ない、ステップＳ１１では、その際に得られた符号化データ長Ｌｙを求める。
【０１４６】
なお、図示ではステップＳ５乃至Ｓ７とステップＳ８乃至１１の処理は、並行して行う例を示しているが、コンピュータプログラムで実現する場合であって、且つ、マルチタスクＯＳが稼働するのであれば同様に処理できる。また、シングルタスクＯＳで実現する場合には、ステップＳ５、６、７、８、９、１０、１１の順に処理すれば良いであろう。
【０１４７】
さて、着目画素ブロックに対する可逆符号化、及び、非可逆符号化処理が終了すると、処理はステップＳ１２（図４）に進む。
【０１４８】
ステップＳ１２では、２色数Ｃと解像度変換誤差Ｄに基づき、画像判定信号Ｈを算出する。すなわち、
Ｄ＞Ｔ１  且つ  Ｃ＞Ｔ２の場合、Ｈ＝１
これ以外では、Ｈ＝０
とする。
【０１４９】
ステップＳ１３では、画像判定信号Ｈが“１”であるか否かを判断する。Ｈ＝０であると判断した場合にはステップＳ１４に処理を進める。
【０１５０】
ステップＳ１４では、『Ｌｙ≧ｆi,j（Ｌｘ）』を満たすか否かを判定する。この関係を満たす場合には、ステップＳ１５にて第１のメモリ１０５には可逆符号化データを格納させる。そして、ステップＳ１６にて、カウンタＣｎに符号長Ｌｘを加算する。
【０１５１】
また、ステップＳ１４にて『Ｌｙ＜ｆi,j（Ｌｘ）』であると判定した場合には、ステップＳ１７にて、第１のメモリ１０５には非可逆符号化データを格納させる。そして、ステップＳ１８にて、カウンタＣｎに符号長Ｌｙを加算する。
【０１５２】
一方、ステップＳ１３にて、画像判定信号Ｈが“０”であると判断した場合には、ステップＳ１９に進んで、ＦＬＡＧが“０”であるか否かを判断する。
【０１５３】
ＦＬＡＧが“０”であると判断した場合には、ステップＳ２０にて第１のメモリ１０５には可逆符号化データを格納させる。そして、ステップＳ２１にて、カウンタＣｎに符号長Ｌｘを加算する。
【０１５４】
また、ＦＬＡＧが“１”であると判断した場合には、ステップＳ２２にて第１のメモリ１０５には非可逆符号化データを格納させる。そして、ステップＳ２３にて、カウンタＣｎに符号長Ｌｙを加算する。
【０１５５】
以上のようにして、第１のメモリ１０５への符号化データの格納が終わると、処理はステップＳ２４に進んで、注目画素ブロックの符号化履歴情報（実施形態では、Ｌｘ、Ｌｙ、及び選択信号Ｓ、画像判定信号Ｈ）を符号化履歴記録部１２１に格納する。
【０１５６】
そして、ステップＳ１５にて、カウンタＣｎが目標符号量Ｔｈである閾値を越えたか否かを判断する。
【０１５７】
Ｃｎ≦Ｔｈであると判断した場合には、ステップＳ２６に進んで、１ページの最終画素ブロックについての処理が完了したか否かを判断する。そして、このステップＳ２６の判定がＮｏの場合には、ステップＳ４以降の処理を繰り返す。
【０１５８】
また、ステップＳ２５でＣｎ＞Ｔｈである、すなわち、１ページの符号化処理中に、生成された符号化データ量が目標符号量を越えたと判断した場合には、ステップＳ２７に進み、符号化パラメータｉ，ｊ、ＦＬＡＧの更新処理を行なう（詳細後述）。そして、ステップＳ２に戻って、１ページの先頭画素ブロックから再入力及び再符号化を開始する。
【０１５９】
こうして、Ｃｎ≦Ｔｈのまま、１ページ分の画像の符号化が完了した場合には、ステップＳ２６の判定がＹｅｓとなる。この場合には、ステップＳ２８に進み、第１のメモリ１０５に格納された符号化データを２次記憶装置７にファイルとして書き込み、本処理を終了する。
【０１６０】
ここで、上記のステップＳ２７の処理を図５のフローチャートに従って説明する。
【０１６１】
先ず、ステップＳ３１にて、符号化履歴記録部１５１を参照して、ＭJP、ＭLS(H0)、ＭLS（H1）を算出する。
【０１６２】
次いで、これらＭJP、ＭLS(H0)、ＭLS（H1）の中の最大値となる値ＭＸを求める。
ＭＸ＝max（ＭJP、ＭLS(H0)、ＭLS（H1））
【０１６３】
この後、ステップＳ３３で、ＭLS（H1）とＭｘが等しいか否か、すなわち、ＭJP、ＭLS(H0)、ＭLS（H1）の中で最大となるのがＭLS（H1）であるか否かを判断する。ＭLS（H1）が最大値であると判断した場合には、ステップＳ３４に進み、符号化パラメータの１つであるＦＬＡＧを“１”に設定する。先に説明したように、一旦、ＦＬＡＧを“１”に設定すると、注目ページの符号化中は、このステップＳ３３の判断は必ずＮｏとなる点に注意されたい。
【０１６４】
また、ステップＳ３３の判断がＮｏであった場合には、処理はステップＳ３５に進み、ＭLS（H1）とＭｘが等しいか否か、すなわち、ＭJP、ＭLS(H0)、ＭLS（H1）の中で最大となるのがＭLS（H0）であるか否かを判断する。ＭLS（H0）が最大値であると判断した場合には、ステップＳ３７に進み、境界線２００７を左シフトすべく、変数ｊを“１”だけ増加させる。
【０１６５】
また、ステップＳ３５の判断がＮｏの場合、つまり、ＭJP、ＭLS(H0)、ＭLS（H1）の中で最大となるのがＭJPであると判断した場合には、ステップＳ３６に進んで、量子化マトリクスＱiをＱi+1に更新すべく、変数ｉを“１”だけ増加させる。
【０１６６】
以上説明したように本実施形態によれば、先ず、１６×１６画素ブロックについて可逆符号化し、その一方で、その１６×１６画素ブロックを解像度変換して８×８画素ブロックを生成して非可逆符号化を行なう。そして、その際に符号量を比較することで、いずれか一方を選択する。この結果、格別は像域判定回路を設けることなく、自然画領域中の画像については非可逆符号化データが選択され易く、文字線画については可逆符号化データが選択され易くすることが可能になり、且つ、生成される符号化データ量を少なくすることが可能になる。
【０１６７】
更に、実施形態によれば、目標符号量Ｔｈを超えた場合には、符号化パラメータｉ，ｊ，ＦＬＡＧの少なくとも１つを変更し、画像データの再入力・再符号化を行うことで、目標符号量量Ｔｈ以下の符号化データを生成することも成功する。
【０１６８】
また、画素ブロック毎の解像度変換する前と後との間の差分が大きく、且つ、その画素ブロックに含まれる色数がほぼ２色である場合には、１ページを通じて、可逆／もしくは非可逆符号化のいずれか一方のみが選択される。従って、文字／線画等の画像のエッジは、ほぼ同じ状態を維持でき、違和感のない出力結果を得ることが可能になる。
【０１６９】
＜第２の実施形態＞
上記実施形態は、第１のメモリ１０５に格納される符号化データ量（第１のカウンタ１１１の値）が、目標符号量Ｔｈを越えた場合、その符号化データに占める可逆符号化データ量ＭLS(H0),ＭLS(H１)と非可逆符号化データ量ＭJPとの比較する。そして、この比較結果に従って、次回のスキャン時の符号化パラメータｉ，ｊ、ＦＬＡＧを決定した。本第２の実施形態では、この内の符号化パラメータｉ，ｊを更に精度良く決定する例を説明する。
【０１７０】
符号化パラメータＦＬＡＧについては第１の実施形態と同様に決定されるものとする。また、説明を単純化するため、ＦＬＡＧ＝１となった場合について説明する。
【０１７１】
つまり、第１のメモリ１０５に格納される非可逆符号化データは、ＦＬＡＧ＝１となった場合、或いは、ＦＬＡＧ＝０で、且つ、Ｌｙ＜ｆｉ，ｊ（Ｌｘ）となる場合である。このとき、ＭLS（H1）は常に“０”であり、ＭLS＝ＭLS（H1）の関係を満たす。従って、以下では、ＭJPとＭLSについて言及すれば良いのは明らかである。
【０１７２】
先ず、説明に先立ち、fi,j（）をｆi+1,j（）に変更した場合、画素ブロックに対する非可逆符号化データ長の統計的な減少率Ｒ（(i,j),(i+1,j))が求められているものとする。ここで、fi,j（）を用いた場合の、画素ブロックの平均的な非可逆符号化データ長をＣ（fi,j（）)と定義した場合、減少率Ｒ（(i,j),(i+1,j))は次の通りである。
【０１７３】
Ｒ（(i,j),(i+1,j))＝Ｃ（fi+1,j（）)／Ｃ（fi,j（）)
また、同様に、fi,j（）をｆi,j+1（）に変更した場合の非可逆符号化データ長の統計的な減少率Ｒ（(i,j),(i,j+1))も求められているものとする。そして、fi,j（）をｆi+1,j+1（）に変更した場合の非可逆符号化データ長の統計的な減少率Ｒ（(i,j),(i+1,j+1))も予め求められているものとする。
【０１７４】
境界条件ｆi,j（）で符号化している最中に、第１のメモリ１０５に格納されている符号化データ量が目標符号量Ｔｈを越えたとする。この場合、本第２の実施形態の符号化シーケンス制御部１１０は、ｆi+1,j（）、fi,j+1（）、ｆi+1,j+1()の中から１つを選択する。すなわち、再符号化のパラメータｉ，ｊを決定する。
【０１７５】
装置構成は図１１と同じであり、符号化処理部６も図１と同じとする。異なる点は、符号化シーケンス制御部１１０の処理内容と、符号化履歴記録部１２１が格納するデータ構造である。
【０１７６】
本第２の実施形態における符号化履歴記録部１２１のデータ構造の例を図１８に示す。図１７との相異点は、図１８では第６〜第１１フィールドが追加された点である。第１乃至第５フィールドは図１７と同じである。
【０１７７】
第２の実施形態の符号化シーケンス制御部１１０は、１つの画素ブロックの符号化データを第１のメモリ１０５に格納するた際に、以下の処理を行なう。
１．注目画素ブロックの非可逆符号化データＬｙに減少率Ｒ（(i,j),(i+1,j))、Ｒ（(i,j),(i,j+1))、及び、Ｒ（(i,j),(i,j+1))を乗算して得られた値Ｌｙ',Ｌｙ'',Ｌｙ'''を、予測符号化データ長として第６、第８、第１０フィールドに格納する。
２．予測される選択信号Ｓ',Ｓ'',Ｓ'''を第７、第９、第１１フィールドに格納する。
【０１７８】
これらの処理１、２は、図４におけるステップＳ２４で行なえば良い。
【０１７９】
ここで、選択信号Ｓ',Ｓ'',Ｓ'''がどのようになるのかは、図２の構成を利用して、擬似的に選択信号Ｓを発生させれば良い。なお、可逆符号化データ量Ｌｘは、スキャン回数に依存せず、変化することはない。
【０１８０】
本第２の実施形態における、符号化シーケンス制御部１１０が、符号化履歴記録部１２１に格納する各データは以下のようにして求める。
Ｌｙ'  ＝ Ｌｙ×Ｒ（(i,j),(i+1,j))
Ｌｙ' ＜ Ｌｘの場合、Ｓ’＝０
Ｌｙ' ≧ Ｌｘの場合、Ｓ’＝１
Ｌｙ''  ＝ Ｌｙ×Ｒ（(i,j),(i,j+1))
Ｌｙ'' ＜Ｌｘの場合、Ｓ'' ＝０
Ｌｙ'' ≧Ｌｘの場合、Ｓ'' ＝１
Ｌｙ'''  ＝ Ｌｙ×Ｒ（(i,j),(i+1,j+1))
Ｌｙ'''＜Ｌｘの場合、Ｓ'''＝０
Ｌｙ'''≧Ｌｘの場合、Ｓ'''＝１
【０１８１】
さて、図１８の場合、ｋ番目の画素ブロックを符号化した際に、第１のカウンタ１１１の値が目標符号量を越えたことを示している。
【０１８２】
この１乃至ｋ番目の画素ブロックを符号化した際の可逆符号化データ量はＭLS、非可逆符号化データ量はＭJPで与えられるから、第１のカウンタ１１１の値は、次のようになる。
第１のカウンタ１１１の値＝ＭLS＋ＭJP          （２）
【０１８３】
１ページの符号化が途中で中断するが、ｋ番目以前と同じ推移でｋ＋１番目以降の画像が入力されると仮定すると、１ページの全画素ブロックの符号化が完了した場合の１ページの予測総符号化データ量Ｍtotalは、次のように求められるであろう。
Ｍtotal＝（ＭLS＋ＭJP）×Ｎmax／ｋ
従って、境界条件ｆi+1,j（）での１ページの予測符号化データ量をＭtotal'とした場合、次のようにして求めることができる。
Ｍtotal'＝（ＭLS'＋ＭJP'）×Ｎmax／ｋ        （３）
ここで、ＭLS'は予測選択信号Ｓ’＝１の可逆符号化データ長Ｌｘ（）の合計値であり、ＭJP’は予測選択信号Ｓ’＝０の非可逆符号化データ長ータＬｙ'（）の合計値である。
【０１８４】
同様に、境界条件fi,j+1（）の場合の予測符号化データ量Ｍtotal''、ｆi+1,j+1()の場合の予測符号化データ量Ｍtotal'''も求めることができるのは明らかである。
【０１８５】
本第２の実施形態では、このようにして求めたＭtotal',Ｍtotal'',Ｍtotal'''の中で、目標符号量Ｔｈとの差分の絶対値が最も小さいものを選択し、その際の変数ｉ，ｊを次のスキャン／符号化の符号化パラメータとして決定する。
【０１８６】
なお、上記でＭLS'、ＭJP'の算出は、既に図１８のようなテーブルが構築されている場合には、実質的に瞬時に計算できるものである。ただし、計算速度を高めるには、予測値Ｌｙ’や予測選択信号Ｓ’を求めた際に、ＭLS'或いはＭJP'も更新することである。
【０１８７】
また、本第２の実施形態では、符号化パラメータｉ＝ａ，ｊ＝ｂを設定して得られた実符号化データ量が目標符号量Ｔｈを越えた場合、「ｉ＝ａ＋１、ｊ＝ｂ」、「ｉ＝ａ，ｊ＝ｂ＋１」、「ｉ＝ａ＋１，ｊ＝ｂ＋１」の３つの中から、再スキャン／符号化の際の符号化パラメータを決定した。しかし、第１の実施形態と同様に、「ｉ＝ａ＋１、ｊ＝ｂ」、「ｉ＝ａ，ｊ＝ｂ＋１」の２つの中から選択しても構わない。
【０１８８】
ここで、本第２の実施形態における符号化シーケンス制御部１１０は、図５のステップＳ３３がＮｏと判断された以降のステップＳ３５乃至Ｓ３７に代わって、図１９の示すフローチャートに従って符号化パラメータを決定すればよい。
【０１８９】
ステップＳ４１乃至４３では、上記のようにしてＭtotal',Ｍtotal'',Ｍtotal'''を算出する。次いで、ステップＳ４４では、Ｍtotal',Ｍtotal'',Ｍtotal'''の中で目標符号量Ｔｈとの差の絶対値が最小になるのはどれかを判定する。
【０１９０】
目標符号量Ｔｈとの差の絶対値が最小となるのが、Ｍtotal'であれば、変数ｉのみを“１”だけインクリメントし、変数ｊは変更しない（ステップＳ４５）。また、目標符号量Ｔｈとの差の絶対値が最小となるのが、Ｍtotal''であれば、変数ｊのみを“１”だけインクリメントし、変数ｉは変更しない（ステップＳ４６）。そして、目標符号量Ｔｈとの差の絶対値が最小となるのが、Ｍtotal'''であれば、変数ｉ、ｊの両方を“１”だけインクリメントする。
【０１９１】
以上説明したように本第２の実施形態によれば、第１の実施形態と比較して、より精度良く符号化パラメータｉ，ｊを決定することが可能になり、結果的に、第１の実施形態と比較してスキャン回数を減らすことも可能になる。
【０１９２】
なお、２回目の再スキャン／符号化が開始されると、符号化履歴記録部１２１には３回目の再スキャン／符号化のための予測情報が格納されることになる点を付言しておく。
【０１９３】
＜第３の実施形態＞
上記第２の実施形態では、１ページの予測符号化データ量Ｍtotal',Ｍtotal'',Ｍtotal'''を求め、その中の目標符号量に最も近い符号化パラメータで再符号化を行なうものであった。本第３の実施形態では、符号化対象の画像に依存して符号化パラメータを決定する例を説明する。装置構成は、第１の実施形態と同じである。
【０１９４】
また、符号化パラメータＦＬＡＧについては第１の実施形態と同様に決定されるものとする。また、説明を単純化するため、ここでもＦＬＡＧ＝１となった場合について説明する。従って、第２の実施形態で説明した通り、ＭLS＝ＭLS（H1）の関係が成立するので、以下では、ＭJPとＭLSについて説明する。
【０１９５】
また、符号化履歴記録部１２１が格納するデータ構造は第２の実施形態と同じであるが、符号化パラメータｉ，ｊの全てについて、非可逆符号化データ量Ｌｙの予測符号量と予測選択信号を求めているものとする。
【０１９６】
ＬＵＴ１２０に格納されている変数ｉ（量子化マトリクスＱｉを決定する変数でもある）、ｊで特定される各境界条件ｆi,j（）の境界線を図１４乃至図１６に示す。図示は２次元配列された９個の境界線の例であるが、勿論、この数に制限はない。基本的に、Ａ点（図７参照）の垂直方向の座標位置は、変数ｉが増加するにつれて下方向にシフトし（図１４示の直線２５０１参照）、変数ｊが増加するにつれて左方向にシフトしていく（図７の直線２５０２参照）。図１４乃至図１６の違いは、Ｐ０乃至Ｐ８で示した順番であり、それ以外は同じである。なお、これら図１４乃至１６における優先順位情報は、符号化シーケンス制御部１１０内に格納されているものとする。
【０１９７】
第２の実施形態で説明したように、ｉ＝ａ、ｊ＝ｂの符号化パラメータで符号化中に目標符号量Ｔｈを越えた際の可逆符号化データ量はＭLS、非可逆符号化データ量はＭJPで与えられる。
【０１９８】
本第３の実施形態におけるＭLS及びＭJPと、図１４乃至図１６を説明すると、以下の通りである。なお、以下の説明で係数αは１未満の正の値であり、例えばα＝０．６である。また、説明を簡単なものとするため、現在の符号化パラメータはｉ＝０、ｊ＝０の場合として説明する。
【０１９９】
［ＭLS＜ＭJP×αの場合］
これは、非可逆符号化データ量ＭJPが可逆符号化データ量ＭLSよりも十分に多い場合を示している。すなわち、符号化対象の画像データ中の自然画が占める面積が大きく、文字／線画が占める面積は小さいことを意味する。従って、再スキャン／符号化処理する場合には、変数ｉを増加させることを優先することが望ましく、図１４の優先順位Ｐ０、Ｐ１、Ｐ２…に従って再スキャン／符号化に用いる符号化パラメータｉ，ｊを決定する。
【０２００】
［ＭLS×α≧ＭJPの場合］
これは、可逆符号化データ量ＭLSが可逆符号化データ量ＭJPよりも十分に多い場合を示している。すなわち、符号化対象の画像データ中の文字／線画が占める面積が大きく、自然画が占める面積は小さいことを意味する。通常の文章を記述した原稿の場合と考えると分かりやすい。従って、再スキャン／符号化処理する場合には、変数ｊを増加させることを優先することが望ましく、図１５の優先順位Ｐ０、Ｐ１、Ｐ２…に従って再スキャン／符号化に用いる符号化パラメータｉ，ｊを決定する。
【０２０１】
［ＭLS×α＜ＭJP≦ＭLS／αの場合］
これは、可逆符号化データ量ＭLSと可逆符号化データ量ＭJPとがほぼ同じ場合を示している。すなわち、符号化対象の画像データ中には、文字／線画と自然画が混在しており、それぞれの占める割合がほぼ同じであることを意味する。従って、再スキャン／符号化処理する場合には、変数ｉ，ｊの両方をほぼ同じ重みづけで増加させることが望ましく、図１６の優先順位Ｐ０、Ｐ１、Ｐ２…に従って再スキャン／符号化に用いる符号化パラメータｉ，ｊを決定する。
【０２０２】
ここで、符号化パラメータｉ＝０、ｊ＝０で符号化処理中に、得られた符号化データ量（第１のカウンタ１１１の値）が目標符号量Ｔｈを越え、その際のＭLSとＭJPとの関係が「ＭLS＜ＭJP×α」となった場合の処理を説明する。
【０２０３】
この場合、図１４の優先順位に従って、１ページの予測符号量を求める。予測符号量の算出は、先の第２の実施形態で示した式（３）で求めることができる。
【０２０４】
本第３の実施形態では、符号化パラメータｉ，ｊの代わりに優先順位Ｐｚ（ｚ＝０、１、２、…）で示される。そこで、目標符号量Ｔｈを越えた場合の、優先順位Ｐｚで決定される可逆符号化データ量をＭLSｚ、非可逆符号化データ量ＭJPzとする。このように定義すると、優先順位Ｐｚで示される符号化パラメータで１ページを符号化したと仮定した場合の予測総符号化データ量Ｍｐｚは次の式（４）で与えられる。
Ｍｐｚ＝（ＭLSz＋ＭJPz）×Ｎmax／ｋ        （４）
【０２０５】
先に説明したように、上記予測符号化データ量Ｍｐｚはあくまで予測値であり、実際にその符号化パラメータでスキャンし符号化した場合の符号化データ量と一致するとは限らない。そこで、許容値β（正の値）を加え、上記式（４）を以下の式（５）に変更する。
Ｍｐｚ≦（ＭLSz＋ＭJPz）×Ｎmax／ｋ＋β      （５）
【０２０６】
本第３の実施形態では、図１４の優先順位の順にｚに１、２、…を順次与え、最初に式（５）を満たす変数ｚを求め、その変数ｚで示される符号化パラメータに従って再スキャン／符号化を実行するようにした。例えば、ｚ＝４として決定した場合には、符号化パラメータｉ＝１、ｊ＝１として、再スキャン／再符号化を行なう。この結果、再度符号化データ量が目標符号量Ｔｈを越えてしまった場合には、優先順位Ｐ５以降について符号化パラメータを決定していく。ここで注意したい点は、最初に目標符号量Ｔｈを越え、図１４乃至図１６の中の優先順位を決定した以降では、優先順位を変更しない点である。すなわち、１つのページの画像を符号化している最中に、図１４乃至図１６の優先順位をその都度選択することは行なわない。
【０２０７】
以上であるが、本第３の実施形態における符号化シーケンス制御部１１０の処理をまとめると次の通りである。
【０２０８】
先ず、図４のステップＳ２４では、符号化パラメータｉ，ｊの取り得る全ての組み合わせに対して、非可逆符号化データの予測符号量と予測選択信号を格納するものとする。従って、本第３の実施形態では、第２の実施形態と同様に、図５のステップＳ３３でＮｏと判断された以降の処理が変更になるだけである。
【０２０９】
本第３の実施形態では、図５のステップＳ３３でＮｏと判断した場合に後続する処理尾を、図２０のフローチャートに従って処理する。
【０２１０】
先ず、ステップＳ５１では、初めてこの処理を実行するのか否かを判断する。この判断は、符号化パラメータｉ，ｊ、ＦＬＡＧが共に“０”であるか否かで判断すれば良い。
【０２１１】
ステップＳ５１で、「初めてこの処理を実行する」と判断した場合には、ステップＳ５２に進んで、現在の符号化データの可逆符号化データ量ＭLSと非可逆符号化データ量ＭJPが、次のいずれであるかを判断し、優先順位を決定する。
・ＭLS＜ＭJP×αの場合、非可逆符号化の符号量を優先して減らす優先順位に決定する。実施形態では、図１４の優先順位に決定する。
・ＭLS×α≧ＭJPの場合の場合、可逆符号化の符号量を優先して減らす優先順位に決定する。実施形態では、図１５の優先順位に決定する。
・ＭLS×α＜ＭJP≦ＭLS／αの場合、可逆及び非可逆符号化の双方の符号量を減らす優先順位に決定する。実施形態では、図１６の優先順位に決定する。
【０２１２】
そして、ステップＳ５３では、優先順位の番号を示す変数ｚに初期値“０”を代入する。
【０２１３】
次いで、ステップＳ５４に進んで、変数ｚを“１”だけ増加させる。従って、ステップＳ５２、５３の処理を行なった場合、ステップＳ５４ではｚ＝１となる。また、次回以降に目標符号量Ｔｈを越えた場合、ステップＳ５２、５３の処理は行われないので、前回のスキャン／符号化時のｚの値が、更に“１”だけ増加することになる。
【０２１４】
ステップＳ５５では、符号化履歴記録部１２１のデータを参照して、変数ｚで示される１ページの予測符号化データ量ＭＰｚを算出する。そして、ステップＳ５６で、条件「ＭＰｚ≦Ｔｈ＋β」を満たすか否かを判断する。この条件を満たさないと判断した場合にはステップＳ５４に進んで、変数ｚを更新し、同様の処理を繰り返す。
【０２１５】
こうして、条件「ＭＰｚ≦Ｔｈ＋β」が満たされると判断した場合、処理はステップＳ５７に進み、その時点での変数ｚで示される変数ｉ，ｊを、再スキャン／符号化時の符号化パラメータとして決定し、本処理を終える。
【０２１６】
以上説明したように本第３の実施形態をまとめると次のようになる。
１．符号化パラメータｉ＝０，ｊ＝０、ＦＬＡＧ＝１で符号化していてる最中に、得られた符号化データ量（第１のカウンタ１１１の値）が目標符号量Ｔｈを越えた場合、その際の可逆符号化データ量ＭLSと非可逆符号化データ量ＭJPとを比較する。これにより、入力される画像の性質を判定できる。
２．判定した入力画像の性質に応じて、符号化パラメータｉ，ｊを求めるための優先順位を決定する。
３．決定した優先順位に従って、目標符号量Ｔｈに近似する予測符号化データ量を求め、その際の符号化パラメータｉ，ｊで実際に再スキャン／符号化を開始することにより、効率良く目標符号量Ｔｈに近い符号化データを得ることができる。
【０２１７】
なお、本第３の実施形態では、符号化パラメータを決定するための優先順位のパターンとして、図１４乃至図１６の３つのパターンをしめしたが、「ＭLS＜ＭJP」についてのみ判断することで、図１４、図１５の２つのパターンとしても良い。また、条件を更に細かく分け、４つ以上であっても構わない。
【０２１８】
以上説明したように、本第３の実施形態によれば、第１、第２の実施形態での作用効果に加えて、目標符号量Ｔｈ以下に納めるためのパラメータを、符号化対象の画像の性質に応じながら、効率良く決定できることになる。
【０２１９】
なお、符号化パラメータｉ＝ａ、ｊ＝ｂの次のスキャン／符号化を行なう符号化パラメータｉ，ｊを、「ｉ≧ａ、ｊ≧ｂ」という条件を更に加えるようにしても構わない。
【０２２０】
＜第４の実施形態＞
第４の実施形態を説明する。本第４の実施形態では、上記第３の実施形態を更に発展させるものである。以下にその詳細を説明する。
【０２２１】
上記第３の実施形態では、式（５）、すなわち、
Ｍｐｚ≦（ＭLSz＋ＭJPz）×Ｎmax／ｋ＋β
の係数βは正の値であるものとした。
【０２２２】
この式からも容易にわかるように、係数βの値が大きな値であればあるほど、この条件が満足する確率は高くなる。例えば、図１４に示す優先順位に決定したとする。もしβの値が十分に大きければ、優先順位Ｐ１で直ちに上記条件が満足することになり、符号化パラメータｉ＝１、ｊ＝０で再スキャン／符号化を開始することになろう。
【０２２３】
ここで、実際の画像データの符号化処理では、優先順位Ｐ４の符号化パラメータを使用して目標符号量Ｔｈ以下になるとすると、結局のところ、Ｐ０、Ｐ１、Ｐ２、Ｐ３、Ｐ４、の計５回のスキャン／符号化を行なうことになる。すなわち、係数βを大きな値に設定すると、スキャン／符号化処理回数は増える可能性が高いものの、目標符号量Ｔｈ以下という条件で、最高画質を生成するための符号化データを生成することが可能になる。
【０２２４】
一方、係数βの値が小さく、例えば負の値をも取るように設定すると、優先順位Ｐ０に近いＰ１、Ｐ２では上記の条件は満足す可能性が低くなり、優先順位Ｐ０から幾つも離れた優先順位になって初めて上記条件を満たすように作用する。すなわち、係数βを小さな値に設定すると、復号画像の画質が必要以上に低下する可能性はあるものの、スキャン／符号化回数を減らすことが可能となる。
【０２２５】
上記は境界線（境界条件）の数は９の例であるが、それより多い場合を示すより分かりやすい。図２２はその例である。図示の符号２５００で示される矢印は、係数βが大きい場合のスキャン／符号化の推移を示している。係数βが十分に大きい場合、スキャン／符号化は７回と多いものの、目標符号量Ｔｈ以下で、その目標符号量Ｔｈに最も近い符号化パラメータｉ，ｊを決定できることを示している。一方、係数βを小さい場合（負の値を持つ場合）、符号２５０１で示される矢印の場合、矢印２５００と比較して、不必要に圧縮してしまっているものの、スキャン／符号化は３回と少ない回数で完了していることを示している。
【０２２６】
上記考察からわかるように、係数βの値はスキャン／符号化回数、或いは、最終的な目標符号量となる符号化データの画質に影響を与えるパラメータとしての意味を持つことが理解できよう。
【０２２７】
そこで、本第４の実施形態では、この係数βを正負の値を取り得るように変更し、その値を操作部２（図１１参照）により、ユーザが適宜設定できるようにする。ユーザレベルで見れば、この設定は符号化速度（或いは画質）の設定パラメータとして、指定することとすれば良い。
【０２２８】
本第４の実施形態では、説明を簡単なものとするため、ユーザは−１，０（デフォルト），＋１の３段階で符号化速度係数ｖを設定できるものとする。そして、入力する画像データのサイズ（原稿サイズ）に依存して決定される係数γに、設定した符号化速度係数ｖを乗算した値を係数βとして定義する。つまり、β＝γ×ｖとして決定する。
【０２２９】
勿論、設定できる段数は上記３段階に限らず、２つでも良いし、４以上であっても構わない。ユーザが操作する操作部２には、例えば、上記３段階のいずれかを選択するためのスライダバーをタッチパネル上に表示し、それでもって選択することとするが、選択する機構は如何なるものでも構わない。
【０２３０】
本第４の実施形態は、基本的に第３の実施形態の図２０のステップＳ５６における係数βを決定するものである。実際の符号化処理はこれまでの説明から明らかであろうから、ここでは、操作部２による操作指示による制御部１の処理手順を図２１のフローチャートに従って説明する。
【０２３１】
先ず、ステップＳ６１では、操作部２からの入力を検出する。ステップＳ６２では入力が符号化速度に関する指示であるか否か、ステップＳ６４では複写開始の指示であるかを判断する。符号化速度の指示であると判断した場合には、ステップＳ６３に進み、指示に従って係数ｖを決定する（デフォルトはｖ＝０としている）。また、符号化速度や複写開始指示以外の指示であると判断した場合には、ステップＳ６５に進み、該当する処理を行なう。
【０２３２】
さて、複写開始指示が入力されたと判断した場合、処理はステップＳ６６に進んで、原稿読取部３のＡＤＦにセットされた原稿を１枚を原稿読み取り面（プラテンガラス上）に搬送する。このとき、公知技術に従って原稿のサイズを検出し、係数γを決定する（ステップＳ６７）。
【０２３３】
この後、ステップＳ６８に進んで、係数γと係数ｖとを乗算することで係数βを算出し、符号化シーケンス制御部１１０に設定する。このとき、目標符号量Ｔｈも合わせて符号化シーケンス制御部１１０に設定する。
【０２３４】
上記設定がなされると、処理はステップＳ６９に進んで、原稿読取部３に対して原稿のスキャンを開始させると共に、符号化シーケンス制御部１１０に対して符号化処理を開始させる。そして、ステップＳ７０にて、１ページ分の符号化データが格納されるまで待つ（符号化シーケンス制御部１１０から符号化完了の通知がくるのを待つ）。
【０２３５】
さて、１ページの符号化処理が完了すると、処理はステップＳ７１に進み、２次記憶装置７に第１のメモリ１０５に格納された１ページ分の符号化データを格納させる。そして、ステップＳ７２において、復号・印刷処理を開始させる。復号印刷処理は、図示の処理とは独立した処理である。この後、ステップＳ７３に進み、稿読取部３に未複写の原稿が残っているか否かを、不図示のセンサからの信号に従って判断する。未複写の原稿が残っている場合には、ステップＳ６６以降の処理を繰り返す。
【０２３６】
以上説明したように本第４の実施形態によれば、第３の実施形態での作用効果に加えて、符号化速度、或いは、出力画像の画質についてユーザが設定できることになる。
【０２３７】
なお、第４の実施形態のフローチャートは、複写処理を例にしたが、印刷データを外部から印刷データを受信し印刷する場合に適用させても構わない。
【０２３８】
以上、本発明に係る実施形態を説明した。
【０２３９】
実施形態では、符号化対象を１６×１６画素ブロック単位に入力し、符号化する例を説明したが、このサイズも本発明を限定するものではない。要するに、２つ（或いはそれ以上でも良い）の異なる符号化技術を使って、同一の画像領域に対して生成された２種類の符号化データ量を比較できるようにすれば良い。
【０２４０】
また、実施形態では、２種類の符号化技術として、非可逆符号化であるＪＰＥＧ、可逆符号化であるＪＰＥＧ−ＬＳを用いる例を説明した。しかしながら、可逆、非可逆符号化技術としては、これによって限定されない。
【０２４１】
ただし、ＪＰＥＧは非可逆符号化であり自然画に適した符号化方式であり、一方、ＪＰＥＧ−ＬＳは可逆符号化であり、自然画と対極にある文字／線画に適したものである。つまり、両符号化は、符号化方式、符号化対象の画像の性質が共に異なるものであるので、このようにお互いに補い合う方式を採用すると、本願発明は有利に作用することがわかるであろう。
【０２４２】
また、実施形態では、符号化対象となる画像データは、スキャナやレンダリング処理より得られる例を説明したが、オリジナルの画像データを記憶した記憶媒体（例えばＣＤＲＯＭ等）から読出し、それを圧縮符号化する場合に適用しても構わない。
【０２４３】
更にまた、実施形態では、可逆符号化データと非可逆符号化データのそれぞれのデータ長のプロットした例として図７に示した。しかし、圧縮符号化対象の画像データ中の文字／線画が比較的鮮明であることを前提にするのであれば、図７のアンチエイリアス処理を施した文字／線画領域Ｔ２については、符号化品位の劣化を抑制する対象から外しても構わない。
【０２４４】
また、上記各実施形態では、図１１に示す複写機に適用した例を説明した。しかしながら、例えばパーソナルコンピュータ等の汎用情報処理装置にイメージスキャナ等の画像入力装置を接続して符号化する場合にも適用できるのは明らかである。この場合、各実施形態で示したフローチャートに係るプログラムを実行すれば良いので、本願発明はかかるコンピュータプログラムをもその範疇とするのは明らかである。また、通常、コンピュータプログラムはＣＤＲＯＭ等のコンピュータ可読記憶媒体をそのコンピュータにセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、当然、そのようなコンピュータ可読記憶媒体も本発明の範疇に含まれる。
【図面の簡単な説明】
【０２４５】
【図１】実施形態における符号化処理部のブロック構成図である。
【図２】図１における符号化シーケンス制御部内の符号化データ選択処理を行う部分のブロック構成図である。
【図３】第１の実施形態における符号化処理手順を示すフローチャートである。
【図４】第１の実施形態における符号化処理手順を示すフローチャートである。
【図５】第１の実施形態における符号化処理手順を示すフローチャートである。
【図６】図１における第２の符号化部における色数検出のスキャン方向を示す図である。
【図７】実施形態における可逆符号化データと非可逆符号化データの一方を選択する際の境界条件を説明するための図である。
【図８】量子化マトリクスの変更に伴って境界条件を変更することを示す図である。
【図９】サンプル原稿画像を示す図である。
【図１０】実施形態で用いる量子化マトリクステーブルを示す図である。
【図１１】実施形態が適用する複写機の構成図である。
【図１２】実施形態における可逆符号化データ長が非可逆符号化データ長よりも長くても、可逆符号化データが選択される領域を示す図である。
【図１３】境界条件関数を左シフトした例を示す図である。
【図１４】第３の実施形態における符号化パラメータを決定する際の優先順位を示す図である。
【図１５】第３の実施形態における符号化パラメータを決定する際の優先順位を示す図である。
【図１６】第３の実施形態における符号化パラメータを決定する際の優先順位を示す図である。
【図１７】第１の実施形態における符号化履歴記録部１５１に格納されるデータ構造を示す図である。
【図１８】第２の実施形態における符号化履歴記録部１５１に格納されるデータ構造を示す図である。
【図１９】第２の実施形態における符号化パラメータの変更処理手順を示すフローチャートである。
【図２０】第３の実施形態における符号化パラメータの変更処理手順を示すフローチャートである。
【図２１】第４の実施形態における予測符号化データ量の許容値βを決定するための処理手順を示すフローチャートである。
【図２２】第４の実施形態での、許容値βに依存して符号化パラメータの更新推移が変化する例を示す図である。
【図１】
0004697966.tif 000002
【図２】
0004697966.tif 000003
【図３】
0004697966.tif 000004
【図４】
0004697966.tif 000005
【図５】
0004697966.tif 000006
【図６】
0004697966.tif 000007
【図７】
0004697966.tif 000008
【図８】
0004697966.tif 000009
【図９】
0004697966.tif 000010
【図１０】
0004697966.tif 000011
【図１１】
0004697966.tif 000012
【図１２】
0004697966.tif 000013
【図１３】
0004697966.tif 000014
【図１４】
0004697966.tif 000015
【図１５】
0004697966.tif 000016
【図１６】
0004697966.tif 000017
【図１７】
0004697966.tif 000018
【図１８】
0004697966.tif 000019
【図１９】
0004697966.tif 000020
【図２０】
0004697966.tif 000021
【図２１】
0004697966.tif 000022
【図２２】
0004697966.tif 000023