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