(57)【特許請求の範囲】
【請求項１】
画像データを圧縮符号化する画像処理装置であって、
圧縮符号化データを記憶する記憶手段と、
入力する画像データの像域情報を判定する判定手段と、
量子化ステップに関するパラメータと前記判定手段の判定結果に基づいて画像データを圧縮符号化する第１の圧縮符号化手段と、
量子化ステップに関するパラメータと前記判定手段の判定結果に基づいて画像データを圧縮符号化すると共に、前記第１の圧縮符号化手段で圧縮した符号データを復号し、再圧縮する第２の圧縮符号化手段と、
前記第１の圧縮符号化手段によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する符号量監視手段と、
該符号量監視手段によって前記所定量に達したと判断した場合、前記第１、第２の圧縮符号化手段における、量子化ステップを大きくするようパラメータを設定する設定手段と、
該パラメータ設定手段によりパラメータを変更した場合、前記第１の圧縮符号化手段で従前に生成された符号データを前記第２の圧縮符号化手段によって再符号化させ、当該再符号化を済ませた符号データを、前記第１の圧縮符号化手段のパラメータ変更後の符号データとして前記記憶手段に記憶すると共に、
パラメータ変更後の前記第１の圧縮符号化手段で生成された符号化データを、後続符号データとして前記記憶手段に保存させる制御手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記判定手段は文字線画領域か、中間調領域かを判定し、
前記第１、第２の圧縮符号化手段は、前記判定結果に応じて、１つのパラメータに対して文字線画領域用と中間調画像領域用それぞれの量子化マトリクスのうちいずれか一方を用いて量子化し、符号化することを特徴とする請求項第１項に記載の画像処理装置。
【請求項３】
画像データを圧縮符号化する画像処理方法であって、
入力する画像データの像域情報を判定する判定工程と、
量子化ステップに関するパラメータと前記判定工程の判定結果に基づいて画像データを圧縮符号化する第１の圧縮符号化工程と、
量子化ステップに関するパラメータと前記判定工程の判定結果に基づいて画像データを圧縮符号化すると共に、前記第１の圧縮符号化工程で圧縮した符号データを復号し、再圧縮する第２の圧縮符号化工程と、
前記第１の圧縮符号化工程によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する符号量監視工程と、
該符号量監視工程によって前記所定量に達したと判断した場合、前記第１、第２の圧縮符号化工程における、量子化ステップを大きくするようパラメータを設定するパラメータ設定工程と、
該パラメータ設定工程によりパラメータを変更した場合、前記第１の圧縮符号化工程で従前に生成された符号データを前記第２の圧縮符号化工程によって再符号化させ、当該再符号化を済ませた符号データを、前記第１の圧縮符号化工程のパラメータ変更後の符号データとして所定の記憶手段に記憶させると共に、
パラメータ変更後の前記第１の圧縮符号化工程で生成された符号化データを、後続符号データとして前記記憶手段に保存させる制御工程と
を備えることを特徴とする画像処理方法。
【請求項４】
画像データを圧縮符号化する画像処理装置用のコンピュータプログラムであって、
入力する画像データの像域情報を判定する判定手段と、
量子化ステップに関するパラメータと前記判定手段の判定結果に基づいて画像データを圧縮符号化する第１の圧縮符号化手段と、
量子化ステップに関するパラメータと前記判定手段の判定結果に基づいて画像データを圧縮符号化すると共に、前記第１の圧縮符号化手段で圧縮した符号データを復号し、再圧縮する第２の圧縮符号化手段と、
前記第１の圧縮符号化手段によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する符号量監視手段と、
該符号量監視手段によって前記所定量に達したと判断した場合、前記第１、第２の圧縮符号化手段における、量子化ステップを大きくするようパラメータを設定する設定手段と、
該パラメータ設定手段によりパラメータを変更した場合、前記第１の圧縮符号化手段で従前に生成された符号データを前記第２の圧縮符号化手段によって再符号化させ、当該再符号化を済ませた符号データを、前記第１の圧縮符号化手段のパラメータ変更後の符号データとして所定の記憶手段に記憶すると共に、
パラメータ変更後の前記第１の圧縮符号化手段で生成された符号化データを、後続符号データとして前記記憶手段に保存させる制御手段と
として機能するコンピュータプログラム。
【請求項５】
請求項４に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【請求項６】
画像データを圧縮符号化する画像処理装置であって、
圧縮符号化データを記憶する記憶手段と、
入力する画像データの像域情報を判定する判定手段と、
量子化ステップに関するパラメータと前記判定手段の判定結果に基づいて画像データを圧縮符号化する第１の圧縮符号化手段と、
量子化ステップに関するパラメータと前記判定手段の判定結果に基づいて画像データを圧縮符号化すると共に、前記第１の圧縮符号化手段と並行して動作し、前記第１の圧縮符号化手段による圧縮率よりも高い圧縮率で圧縮する第２の圧縮符号化手段と、
前記第１の圧縮符号化手段によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する符号量監視手段と、
該符号量監視手段によって前記所定量に達したと判断した場合、前記第２の圧縮符号化手段の従前のパラメータで前記第１の圧縮符号化手段を設定し、前記第２の圧縮符号化手段に新たたパラメータを設定するパラメータ設定手段と、
該パラメータ設定手段によりパラメータを変更した場合、前記第１の圧縮符号化手段で従前に生成された符号データに代わって前記第２の圧縮符号化手段で済ませた符号データを、前記第１の圧縮符号化手段のパラメータ変更後の符号データとして前記記憶手段に記憶すると共に、
パラメータ変更後の前記第１の圧縮符号化手段で生成された符号化データを、後続符号データとして前記記憶手段に保存させる制御手段と
を備えることを特徴とする画像処理装置。
【請求項７】
画像データを圧縮符号化する画像処理方法であって、
入力する画像データの像域情報を判定する判定工程と、
量子化ステップに関するパラメータと前記判定工程の判定結果に基づいて画像データを圧縮符号化する第１の圧縮符号化工程と、
量子化ステップに関するパラメータと前記判定工程の判定結果に基づいて画像データを圧縮符号化すると共に、前記第１の圧縮符号化工程と並行して動作し、前記第１の圧縮符号化工程による圧縮率よりも高い圧縮率で圧縮する第２の圧縮符号化工程と、
前記第１の圧縮符号化工程によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する符号量監視工程と、
該符号量監視工程によって前記所定量に達したと判断した場合、前記第２の圧縮符号化工程の従前のパラメータで前記第１の圧縮符号化工程を設定し、前記第２の圧縮符号化工程に新たたパラメータを設定するパラメータ設定工程と、
該パラメータ設定工程によりパラメータを変更した場合、前記第１の圧縮符号化工程で従前に生成された符号データに代わって前記第２の圧縮符号化工程で済ませた符号データを、前記第１の圧縮符号化工程のパラメータ変更後の符号データとして所定の記憶手段に記憶すると共に、
パラメータ変更後の前記第１の圧縮符号化工程で生成された符号化データを、後続符号データとして前記記憶手段に保存させる制御工程と
を備えることを特徴とする画像処理方法。
【請求項８】
画像データを圧縮符号化する画像処理装置用のコンピュータプログラムであって、
入力する画像データの像域情報を判定する判定手段と、
量子化ステップに関するパラメータと前記判定手段の判定結果に基づいて画像データを圧縮符号化する第１の圧縮符号化手段と、
量子化ステップに関するパラメータと前記判定手段の判定結果に基づいて画像データを圧縮符号化すると共に、前記第１の圧縮符号化手段と並行して動作し、前記第１の圧縮符号化手段による圧縮率よりも高い圧縮率で圧縮する第２の圧縮符号化手段と、
前記第１の圧縮符号化手段によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する符号量監視手段と、
該符号量監視手段によって前記所定量に達したと判断した場合、前記第２の圧縮符号化手段の従前のパラメータで前記第１の圧縮符号化手段を設定し、前記第２の圧縮符号化手段に新たたパラメータを設定するパラメータ設定手段と、
該パラメータ設定手段によりパラメータを変更した場合、前記第１の圧縮符号化手段で従前に生成された符号データに代わって前記第２の圧縮符号化手段で済ませた符号データを、前記第１の圧縮符号化手段のパラメータ変更後の符号データとして所定の記憶手段に記憶すると共に、
パラメータ変更後の前記第１の圧縮符号化手段で生成された符号化データを、後続符号データとして前記記憶手段に保存させる制御手段と
して機能するコンピュータプログラム。
【請求項９】
請求項８に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はカラー画像データを圧縮符号化する画像処理装置及びその制御方法及びコンピュータプログラム並びにコンピュータ可読記憶媒体に関するものである。
【０００２】
【従来の技術】
従来，静止画像の圧縮方式には，離散コサイン変換を利用したＪＰＥＧ方式や，Wavelet変換を利用した方式が多く使われている。この種の符号化方式は，可変長符号化方式であるので，符号化対象の画像毎に符号量が変化するものである。
【０００３】
国際標準化方式であるＪＰＥＧ方式では，画像に対して１組の量子化マトリクスしか定義できない。従って、プリスキャン無しには、符号量調整が行えず、限られたメモリに記憶するシステムで使用する場合においては、メモリオーバーを起こす危険性がある。
【０００４】
これを防止するために、予定した符号量よりオーバーした場合は、圧縮率を変更して、原稿の再読み込みを行なう方法や、予めプリスキャンによる符号量見積もりを行ない、符号量を調整するために，量子化パラメータの再設定を行なう方法などがとられていた。
【０００５】
また、プリスキャンを行う符号量制御方式として、例えば、プリ圧縮したデータを内部バッファメモリに入れ、これを伸長し、圧縮パラメータを変え、本圧縮し、外部記憶に出力する方式がある。このとき、本圧縮では、プリ圧縮よりも圧縮率を高めにすることになる。
【０００６】
また、例えば、画素ブロックごとの許容符号量を求め、符号量を減らすために、ＤＣＴ係数をｎ回レベルシフトした係数をハフマン符号化する方式が知られており、このシフト量ｎは許容符号量から決定される。
【０００７】
【発明が解決しようとする課題】
しかしながら、従来は、圧縮バッファとして、目標圧縮以上の圧縮バッファが必要となり，中間的に使うバッファのオーバーフローを防ぐには，原画のデータを記録できるほどの容量が必要となることは避けられない。
【０００８】
さらに、符号化処理を繰り返す方法では、圧縮した全データに対して、復号、再圧縮を行なう処理が入るため、連続処理のスピードがあがらないという問題がある。
【０００９】
本発明は上記従来例に鑑みて成されたものであり、再画像入力を不要とし、効果的に設定したサイズに収まる符号化データを生成でき、且つ、圧縮率に対して画質劣化が小さくすることが可能な画像処理装置及びその制御方法及びコンピュータプログラム及び記憶媒体を提供しようとするものである。
【００１０】
【課題を解決するための手段】
かかる課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
画像データを圧縮符号化する画像処理装置であって、
圧縮符号化データを記憶する記憶手段と、
入力する画像データの像域情報を判定する判定手段と、
量子化ステップに関するパラメータと前記判定手段の判定結果に基づいて画像データを圧縮符号化する第１の圧縮符号化手段と、
量子化ステップに関するパラメータと前記判定手段の判定結果に基づいて画像データを圧縮符号化すると共に、前記第１の圧縮符号化手段で圧縮した符号データを復号し、再圧縮する第２の圧縮符号化手段と、
前記第１の圧縮符号化手段によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する符号量監視手段と、
該符号量監視手段によって前記所定量に達したと判断した場合、前記第１、第２の圧縮符号化手段における、量子化ステップを大きくするようパラメータを設定する設定手段と、
該パラメータ設定手段によりパラメータを変更した場合、前記第１の圧縮符号化手段で従前に生成された符号データを前記第２の圧縮符号化手段によって再符号化させ、当該再符号化を済ませた符号データを、前記第１の圧縮符号化手段のパラメータ変更後の符号データとして前記記憶手段に記憶すると共に、
パラメータ変更後の前記第１の圧縮符号化手段で生成された符号化データを、後続符号データとして前記記憶手段に保存させる制御手段とを備える。
【００１１】
【発明の実施の形態】
以下、添付図面に従って本発明に係る実施形態を説明するが、先ず、基本部分について説明する。
【００１２】
図１は、実施形態が適用する画像処理装置１００の機能ブロック構成図である。以下、同図の各部を簡単に説明する。
【００１３】
画像処理装置１００は、イメージスキャナ等から画像を入力する入力部１０１を備えている。イメージスキャナには周知の像域分離処理部が含まれ、例えば原稿画像中の黒文字部分を構成する画素か否かを識別するための属性フラグデータが画素単位で生成されるようになっている。なお、黒文字の画素か否かの判断であるが、文字線画の場合、中間調画像と比較して、濃度変化が急峻である。従って、先ず、濃度変化（隣接する画素間の輝度もしくは濃度差）が所定閾値より大きいか否かを判断し、その閾値よりも大きく、尚且つ、ＲＧＢの値が互いにほぼ等しい値となっている（無彩色）場合に黒文字の画素と判断できよう。また、黒文字（黒文字線画）か否かだけでなく、色文字か否か、網点領域か否か、ベクターグラフィックス領域か否か等を含むようにしても構わない。この場合、各属性毎にビットを割り当てれば良い。
【００１４】
なお、上記では、入力部１０１はイメージスキャナから入力し、イメージスキャナー内部に像域分離処理部が含まれるものとして説明したが、イメージスキャナーがその処理部を備えていないのであれば、上記の判断処理を本装置側に設けても構わない。また、入力部１０１は、イメージスキャナからの画像に限らず、ページ記述言語レンダリングなどから画像データを入力しても良いし、記憶媒体に格納された画像ファイルを読込むことで実現しても良く、場合によってはネットワークより受信するようにしても良い。特に、ホストコンピュータよりページ記述言語データを受信してレンダリングする際には、各画素が如何なる属性にあるのかについてはページ記述言語で示されているので、判断は容易である。更に、イメージスキャナ内に像域分離処理部が含まれていない場合には、本装置側で上記属性を判断する処理部を設けても構わない。
【００１５】
いずれにしても、入力部１０１から入力した画像は一旦、圧縮ブロックラインバッファ１１１に格納される。このブロックラインバッファ１１１では、画像をタイル分割し（タイルの大きさをＭ×Ｎとする）、このタイルＭ×Ｎ画素毎に、カラー画像の符号化である離散古参変換符号化（ＪＰＥＧ）と属性フラグデータ情報の符号化であるラインレングス符号化に分けてそれぞれ符号化する。
【００１６】
ただし、Ｍ、Ｎは離散コサイン変換符号化のためのウインドウサイズの倍数でなければならない。本実施形態で用いるＪＰＥＧ圧縮方式では、圧縮のためのウインドウサイズを８×８画素とするので、例えばＭ＝Ｎ＝３２とすると、３２×３２の画素タイルの中を更に１６個の８×８画素に分割して８×８画素単位でＪＰＥＧ圧縮を行う。以下、実施形態ではＭ＝Ｎ＝３２として説明するが、勿論、これによって本発明が限定されるものではない。
【００１７】
符号化部１０２は、入力された３２×３２画素のタイル画像に含まれる１６個の８×８画素ウインドウに対して周知のＤＣＴ変換を施し量子化する。このときに用いる量子化係数（量子化マトリクスと呼ぶ）を後述する方式でタイル毎に切り替えて設定できるようになっている。
【００１８】
判定部１１３は符号化しようとしている画像データに対応する３２×３２画素の属性フラグ情報を入力し、後述する判定処理を行い、その結果に従って量子化係数の選択信号を符号化部１０２に出力する。属性フラグデータは、各画素毎につけられるものであるが、本実施形態のように、Ｍ×Ｎ画素タイル内の符号化方法は一定とするので、タイル内の属性データを解析して、そのタイルを代表する属性を決定する必要がある（詳細は後述）。
【００１９】
符号化部１０２は、判定部１１３からの判定結果及び符号化シーケンス１０８からの指示に基づき、入力した画像データの符号化を行なう。なお、符号化方式は公知のＪＰＥＧ符号化方式を用い、８×８画素単位に相当する画像データを直交変換し、後述する量子化ステップを用いた量子化、ハフマン符号化処理を行なうものである。また、符号化部１０２はタイルの代表属性値をランレングス符号化し、それを出力する。
【００２０】
第１のメモリ制御部１０３と第２のメモリ制御部１０５は、上記符号化部１０２から夫々に出力されてくる上記符号化データ（画像の符号化データと属性の符号化データ）を第１のメモリ１０４と第２のメモリ１０６へ格納する様に制御する。ここで、第１のメモリ１０４は、最終的に確定した（目標値以内のデータ量に圧縮し終わった）符号化データを、図１の基本構成の外部に接続されるネットワーク機器、画像出力装置や大容量記憶装置等へ出力するために、該符号化データを保持するためのメモリである。また、第２のメモリ１０６は、前記符号化データを第１のメモリ上に形成するための圧縮符号化処理を補助する作業用のメモリである。
【００２１】
カウンタ１０７は、符号化部１０２によって圧縮符号化された画像データのデータ量をカウントし、該カウント値を保持すると共に、そのカウント結果を符号化シーケンスの制御を行なう符号化シーケンス制御部１０８に出力する。なお、属性データの符号量もカウント対象にしても良いが、実施形態では対象外とした。理由は、１つの属性データは１つのタイル（複数画素で構成される領域）に対するものであるので、画像全体に対する情報量は元々ごく少ないし、高い圧縮率が望めるからである。ただし、カウント対象にしても良いのは勿論である。
【００２２】
符号化シーケンス制御部１０８では、カウンタ１０７のカウント値がある設定値に達したかどうかを検出し、その設定値に達したことを検出した時（目標値を越えた時でも良い）にメモリ１０４内の格納済みのデータを廃棄するよう第１のメモリ制御部１０３に制御信号を出力する。上記第１のメモリ制御部１０３は、この制御信号に基づいて、メモリアドレスカウンタをクリアするか、あるいは画像データ用の符号化データ管理テーブルをクリアすることにより、前記格納データを廃棄する。また、このとき、符号化シーケンス制御部１０８は、第１のカウンタ１０７をゼロクリアする（入力部１０１からの入力は継続している）と共に、符号化部１０２に対して今までより、高い圧縮率で符号化を行なうよう制御する。すなわち、本装置の符号化処理で発生する符号化データのデータ量が最終的に例えば１／２になるように制御する。なお、ここでは、１／２としたが任意に設定できることは言うまでもない。
【００２３】
そして、圧縮率変更後の符号化データも、これまでと同様、第１のメモリ制御部１０３と第２のメモリ制御部１０５を経て、第１のメモリ１０４と第２のメモリ１０６に夫々格納される。
【００２４】
さらに、符号化シーケンス制御部１０８は、第２のメモリ制御部１０５に対して、これまでに第２のメモリ１０６に格納した符号化データを読み出し、符号化データ変換手段である再符号化部１０９に該符号化データを出力するよう制御信号を出す。
【００２５】
再符号化部１０９は、入力された符号化データを復号化し、データ量を減らすための再量子化等を行なった後に再び符号化処理を行ない、圧縮率が変更された符号化部１０２と同じ圧縮率のデータ量を第２のカウンタ１１０に出力する。
【００２６】
この再符号化部１０９から出力される符号化データは、第１のメモリ制御部１０３と第２のメモリ制御部１０５を経由して、それぞれ、第１のメモリ１０４と第２のメモリ１０６に格納される。
【００２７】
再符号化処理が終了したかどうかは、第２のメモリ制御部が検出する。すなわち、再符号化処理するために読み出すデータが無くなれば、再符号化処理の終了を符号化シーケンス制御部１０８に知らせる。実際には、第２のメモリ制御部１０５の読みだし処理だけでなく、再符号化部１０９の処理も終了した後に、符号化処理が完了したことになる。
【００２８】
第２のカウンタ１１０で得られるカウント値は、再符号化処理が完了した後、第１のカウンタ１０７で保持されているカウンタ値に加算される。この加算結果は再符号化処理が完了した直後における、第１のメモリ１０４内のデータ量の合計を表す。即ち、１画面分の符号化部１０２と再符号化部１０９の符号化処理が終了した時点では、上記加算後の第１のカウンタ１０７で保持されているカウンタ値は、１画面分を本装置が符号化した場合に発生した総データ量を表す（詳細は後述）。
【００２９】
符号化部１０２は、再符号化処理の終了／未終了に関わらず、符号化するべき入力部１０１からの画像データが残っている限りは符号化処理を継続して行なう。
【００３０】
カウンタ１０７のカウント値がある設定値に達したかどうかは入力部１０１から入力される１ページ分の画像データの符号化処理（符号化、再符号化）が終わるまで繰り返され、上述した符号化と再符号化の処理は、ここで得られる検出結果に応じた制御の上で実行される。
【００３１】
上記図１の構成における処理のフローを表わすフローチャートを図８に示すが、説明を簡単にするため、簡略化した図３のフローチャートに従って先ず説明する。
【００３２】
既に説明したように、本発明の画像処理装置１００は、スキャナ等の入力部１０１から入力した１ページの画像データを所定のデータ量以下に圧縮符号化する装置である。該符号化処理を実現するために、前記入力部１０１以外に、符号化部１０２、再符号化部１０９、第１のメモリ１０４、第２のメモリ１０６等を有する。これらの機能ブロックを用い、図３に示すフローチャートに基づいて符号化処理を行なう。
【００３３】
図３のフローチャートは、大別すると、下記の３つの処理フェーズに分かれる。
（１）符号化フェーズ
（２）符号化・再符号化フェーズ
（３）転送フェーズ
上記それぞれの処理フェーズおいて、どのように画像データ、符号化データ等が流れて処理され，メモリにどのように格納されるかを視覚的に解り易く示したのが図４乃至図７である。
【００３４】
図４は、図３のフローチャートにおけるステップＳ３０３とＳ３０５に対応する符号化フェーズの初期状態を表わす（ただし、属性データの符号化データについては省略して示している）。また、図５はステップＳ３０７〜Ｓ３１５に対応する符号化・再符号化フェーズの処理状態を、図６はステップＳ３１７に対応する転送フェーズの処理状態を、図７は転送フェーズ後の符号化フェーズの処理状態を表わす。以下、各フェーズについて説明する。
【００３５】
＜＜符号化フェーズ＞＞
１ページ分の画像データの符号化処理は、符号化パラメータの初期設定（ステップＳ３０１）から始まる。ここでは符号化処理する画像サイズ（スキャナ等の入力部１０１から読み取る用紙サイズ）から一意的に定まる符号化データ量の上限値や符号化部１０２（ここでは公知のＪＰＥＧ符号化方式を用いるものとする）に適用する量子化ステップパラメータ（Ｑ１）を設定する。
【００３６】
符号化部１０２は、この量子化ステップパラメータＱ１と、判定部１１３からの３２×３２画素ブロックにおける判定結果に従い、注目画素ブロック（＝３２×３２画素）について黒文字領域用量子化マトリクスＱ１ａ、中間調画像用量子化マトリクスＱ１ｂのいずれかを用いて量子化し、符号化する。詳細は後述するが文字部分は文字としての判読可能かどうかが重要であるので、中間調画像よりも量子化ステップは小さい方が好ましい。上記の黒文字領域用量子化マトリクスＱ１ａ、中間調画像用量子化マトリクスＱ１ｂかかる相異点を有するものである。また、後述するように、量子化ステップパラメータＱ２が設定された場合には、量子化マトリクスＱ２ａ，Ｑ２ｂのいずれかを用いて符号化するし、量子化ステップパラメータＱ３が設定された場合には、量子化マトリクスＱ３ａ，Ｑ３ｂのいずれかを用いて符号化する。これについの詳細は後述することとし、図３の説明を続ける。
【００３７】
ステップＳ３０３にて、第１のカウンタ１０７は、実際の符号化処理（画像の８×８画素単位にＪＰＥＧ圧縮）を行ない、出力される符号化データのデータ量を累積カウントする。
【００３８】
次にステップＳ３０５にて、該データ量のカウント値が上記上限値をオーバーしたかどうかを検知し、オーバーしていなければステップＳ３０３のＪＰＥＧ符号化処理を継続する。これが初期状態の符号化フェーズである。
【００３９】
符号化部１０２から出力する符号化データは、図４に示すように第１のメモリ１０４と第２のメモリ１０６の両方に格納されていく。縦縞で示した領域が該格納した符号を表現している。
【００４０】
なお、符号化部１０２は判定部１１３からの判定結果であるタイル毎の属性データをも圧縮符号化し、第１、第２のメモリそれぞれに出力することになるが、この符号化部１０２内の属性データの圧縮にかかる構成は、図１７に示すようになっている。
【００４１】
同図は符号化部１０２内の属性データ圧縮符号化に関する部分のみの構造を示している。
【００４２】
図示において、判定部３１０では，入力される属性フラグデータの前回の値と現在の値とが同じかを判定し，同じ場合はＲＬコード生成部３１１に，違う場合はＬＴコード生成部３１２にデータを送るように切り替える。ＲＬコード生成部３１１では，前データと同じ場合の回数を違うデータが出てくるまでカウントし，最後に，繰返したデータを出力する。ＬＴコード生成部３１２では，データが前画素と異なる場合の数をカウントして，カウント数に対応する符号語と，実際データの最小構成ビット数をカウント数分だけ出力する。合成部３１３では，ＲＬ部の出力データとＬＴ部の出力データを合成してコード３１５として出力する。なお、この構成はその一例であって、別な構成で実現しても構わない。
【００４３】
＜＜符号化・再符号化フェーズ＞＞
符号化部１０２の符号化処理が進行し、前記データ量のカウント値が設定されている上限値をオーバーすると、ステップＳ３０７にて、第１のメモリ１０４内の符号化データを廃棄すると共に、ステップＳ３０９にて、符号化部１０２の量子化ステップパラメータをＱ２に変更する（従って、符号化部１０２は判定部１１３の判定結果に従い、量子化マトリクスＱ２ａ，Ｑ２ｂのいずれかを用いて符号化することになる）。
【００４４】
符号化データのデータ量のカウント値が設定された上限値をオーバーするという事は、圧縮後のデータ量が目標値以内に収まらないことを意味する。よって同じ量子化ステップを用いて符号化処理を継続しても意味が無いので、前よりもデータ量が少なくなるように、量子化ステップパラメータをＱ２（Ｑ１のときよりも量子化ステップは大きくなる）に変更するわけである。
【００４５】
量子化ステップパラメータを変更した後、ステップＳ３１１では符号化部１０２の符号化処理を再開し、図５に示すように符号化データを第２のメモリ１０６のみに格納する。それと並行して、ステップＳ３１３の再符号化処理を行なう。再符号化処理では、第２のメモリ１０６に格納済みの符号化データ（画像の符号化データ及び属性符号化データの両方）を読み出して、再符号化部１０９にて再符号化処理を行ない、２つのメモリ１０４、１０６に格納する。そして、縦縞▲１▼の符号を全て再符号化するまで、該符号化処理と再符号化処理を継続する。なお、再符号化部１０９は、符号化部１０２に対して設定した新たな量子化ステップパラメータと同じものを用い、復号して得られた属性に従って、最適な量子化マトリクスを用いて再符号化することになる
具体的にこの再符号化処理では、符号化データを一旦ハフマン復号した後の各量子化値に対して、これら値を２nで割った結果と同様の結果が出るビットシフト処理を施した後、再度ハフマン符号化を行なうことにより実現される。この方法は、ビットシフトのみで量子化ステップを変更する点と逆直交変換や再直交変換処理を行なわない点で、高速な再符号化処理が可能である。ステップ３１５では、再符号化処理の終了検知が行なわれる。
【００４６】
再符号化後のデータ量は再符号化前の符号化データのデータ量よりも少なくなるので、図５に示すように、再符号化前の符号を格納していたメモリ領域に再符号化後の符号化データを上書きするように格納することができる。再符号化処理が終了した時点で、縦縞▲１▼の符号化データのデータ量は図６に示すの斜め縞▲１▼の符号化データのデータ量へと減少する。
【００４７】
以上で説明したステップＳ３０７〜３１５が、符号化・再符号化フェーズで行なう処理である。
【００４８】
＜＜転送フェーズ＞＞
再符号化処理が終了したら、ステップＳ３１７では転送処理が行なわれる。該転送処理では、図６に示すように、符号化・再符号化フェーズで第２のメモリ１０６のみに格納した斜め縞▲２▼の符号化データを、第１のメモリ１０４内の斜め線▲１▼の符号化データに連結されるアドレスに転送し、格納する。その一方で、第２のメモリ１０６上で分散してしまっている斜め縞▲１▼の符号化データと斜め縞▲２▼の符号化データが第１のメモリ１０４上で連続して格納される様に、前記斜め縞▲２▼の符号化データを第２のメモリ１０６内で転送し、連結させる。これが、転送フェーズで行なう処理である。
【００４９】
上記転送フェーズが終了したら、ステップＳ３０３、Ｓ３０５の符号化フェーズに戻り、図７に示すように斜め縞▲４▼の符号を符号化部１０２から出力して２つのメモリ１０４，１０６に格納する。この符号化フェーズは、初期状態の符号化フェーズ（図４）と少し異なり、符号化部１０２で符号化する際の量子化ステップがＱ１からＱ２に変更されていると共に、２つのメモリ１０４，１０６に格納されている符号化データも様々なフェーズで処理された符号の集まりである。それらの違いを無視すれば、転送フェーズ直後の符号化フェーズと初期状態の符号化フェーズは、同じと見なせる。
【００５０】
よって、符号化フェーズ、符号化・再符号化フェーズと転送フェーズの３つを繰り返すことで、最終的に１ページの画像データをデータ量設定値以下に圧縮した符号を第１のメモリに格納することが出来る。しかも、入力部１０１は一連の処理が終わるまで、入力を継続するだけである。すなわち、画像を再度最初から入力し直すということが無くなる。
【００５１】
図３に示したフローチャートは、説明が理解しやすいように、図４、図５、及び、図６に示した各フェーズに対応する処理のみを記述した。しかしながら実際には、１ページの画像データの入力はどこかのフェーズで終了する。従って、どのフェーズで終了したかによって、それ以降の対応も多少異なる。それを考慮した流れを示したのが図８のフローチャートである。図８のフローチャートは、１ページ分の画像データの入力完了と図３で説明した各種処理との関係を考慮したものであり、ここでは図３のフローチャートに、ステップＳ８０１、Ｓ８０３、Ｓ８０５、Ｓ８０７を追加している。
【００５２】
ステップＳ８０１、Ｓ８０３、Ｓ８０５は、それぞれ、符号化フェーズ、符号化・再符号化フェーズ、転送フェーズにおいて、入力部１０１からの１ページ分の画像データの入力が終了したことを検知する。
【００５３】
符号化フェーズと転送フェーズで１ページ分の画像データの入力が終了したことを検知した場合（ステップＳ８０１、Ｓ８０５）、ステップＳ８０７へ移り、当該ページの圧縮符号化処理を終了し、次に処理すべき１ページ以上の画像データがあれば、次の１ページ分の画像データの圧縮符号化処理を開始し、無ければ停止状態に入る。
【００５４】
一方、符号化・再符号化フェーズで１ページ分の画像データの入力終了を検知した場合（ステップＳ８０３）には、符号化部１０２では再符号化処理する画像データが無くなるまで一旦動作を止める必要があるので、ステップＳ３１１の符号化処理をパスし、ステップＳ３１３で、今までに符号化部１０２で符号化済みの画像データを所定の符号化データ量に抑える為の再符号化処理のみを継続して行なう。再符号化処理が全て終了して、その後の転送処理が終わらないと、１ページ分の画像データ全体の符号化データが第１のメモリ上に集まらないため、１ページ分の画像データの入力終了後も再符号化処理及びそれに続く転送処理は継続して行われる必要がある。この場合には、ステップＳ３１５にて、再符号化処理が全て終了したことを検知すると、符号化・再符号化フェーズ中に、第２のメモリ１０６のみに格納された符号化データを第１のメモリに転送し（ステップＳ３１７）た後、次のステップＳ８０５にて、１ページ分の画像データの入力終了が検知されてステップＳ８０７へ移ることになる。
【００５５】
以上が動作であり、図８の動作説明でもある。
【００５６】
＜メモリ格納方法の変形例＞
図９、図１０は図５、図６の概念図で示したメモリ格納方法の変形例を示す図である。
【００５７】
図５の概念図においては、符号化・再符号化フェーズでは、符号化部１０２から出力する符号化データは第２のメモリ１０６のみに格納していたが、図９に示すように符号化・再符号化フェーズ中に、符号化部１０２から出力する符号化データを第１、第２メモリの両方に直接格納する。
【００５８】
符号化部１０２から見ると、どのフェーズで符号化して出力する符号化データも両方のメモリへ格納することになる。また、図６の概念図とは異なり、図１０に示す様に、転送フェーズでメモリ間のデータ転送が必要なくなる。またこの変形例の場合には、符号化・再符号化フェーズにおいて、符号化データと再符号化データを第１のメモリ１０４へ送った順序で順次格納される。そのため２種類のデータが入り混じってしまうという問題は有る。
【００５９】
従って、この変形例の場合にはこれに対応する為に符号化データをある単位で区切って、ファイル或いはパケットとして管理する様にする。具体的には、ファイル管理テーブル、或いは、パケット管理テーブル等を別に作成して管理する。
【００６０】
一つの手法としては、符号化部１０２からのデータを第１メモリ１０４に格納する際、適当な単位（例えば前記直交変換の単位が３２×３２の画素ブロックであるので、３２×ｉ（ｉ＝１、２…の整数）ライン分のデータ）毎に、画像データの先頭から管理番号を割り当て、各管理番号に対応する符号化データの格納先頭アドレスと該符号化データ量とを、管理番号順に格納できるような管理テーブルを作成する。
【００６１】
符号化部１０２や再符号化部１０９は処理中のデータの管理番号を保持し、該管理番号に基づいて、符号化データ格納時の先頭アドレスと符号化データ量とを管理テーブルに書き込む。このようにすれば、符号化部１０２と再符号化部１０９で処理した符号化データをランダムに格納したとしても、前記管理テーブルを管理番号順にアクセスし、その時読み出させる先頭アドレスと符号化データ量に基づいて、符号化データを第１メモリ１０４から読み出せば、画像の先頭から順番に符号化データを読み出すことができる。このような管理機構を設ければ、画像上で連続するデータをメモリ上で連続するように格納する必要性が無くなる。
【００６２】
図１０の概念図における転送フェーズ後の符号化フェーズは、これまで説明した２つの符号化フェーズ（図４、図７）とほとんど同じであり、第１のメモリ内における符号の格納状態が図１１に示した様に若干異なるだけである。よって、先の説明と本変形例は、３つのフェーズを繰り返して処理することに変わりは無い。
【００６３】
以上の結果、実施形態によれば、在る原稿を読み取って、符号化中に、目標値に達したと判断した場合、それ以降については新たに設定された量子化ステップパラメータに従って、より高い圧縮率で圧縮符号化される。また、目標値に達したと判断したとき、それ以前に既に圧縮符号化された符号データについては一旦、復号化し、新に設定された量子化ステップパラメータに従って再度符号化する。従って、原稿読み取り中に、生成される符号データ量が目標値を越えたとしても、その読み取りを継続させたまま目標値以内に符号量を抑えることが可能になる。
【００６４】
＜量子化マトリクス＞
先に説明したように、実施形態における符号化部１０２は、量子化ステップパラメータＱｉ（ｉ＝1,2,…）が設定されると、利用する量子化マトリクスＱiａＱiｂのいずれかを用いて、直交変換後の変換係数に対して量子化し、エントリピー符号化（ハフマン符号化）を行う。以下、図１８及び図１９を参照して説明する。
【００６５】
図１８（ａ）は読み取り対象の原稿画像を示しており、図示の如く文字領域と中間調画像領域とが混在している。実施形態では、判定部１１３では３２×３２画素ブロック単位にその画素ブロックを代表する属性を決定している。具体的には、画素ブロック中の１つでも文字画素であるとの属性がある場合、当該画素ブロックは文字領域として判定する。換言すれば、中間調と判断されるのは、画素ブロック内の全画素が中間調画素を示す属性を備える場合とした（ただし、文字である画素が２個以上ある場合に文字領域としても良いし、その数によって本発明が限定されるものではない）。
【００６６】
図１８（ｃ）は、同図（ｂ）のうち文字領域であると判定された部分のみを抽出されたところを示している。逆に、中間調領域であると判断された箇所に斜線部を付して区別して示すものが同図（ｄ）である。
【００６７】
先に説明したように、文字画像部分は、その文字が判読できることが重要であるので、中間調領域よりは量子化ステップ（特に、中高周波成分）は小さいことが望ましい。換言すれば、中間調領域は文字領域よりも量子化ステップを大きくしても全体に与える影響は少ない。
【００６８】
例えば、量子化ステップパラメータＱ１に対する中間調領域用量子化マトリクス、文字領域用量子化マトリクスの一例として示すのであれば図１９のようなものである。Ｔ１が文字を含まない写真等の中間調領域に対して適用される量子化マトリクスであり、Ｔ２が文字や線画を含むタイルに対して適用される量子化マトリクスの例である。
【００６９】
ＤＣＴ係数は通常マトリクスの左上がＤＣ成分に対する量子化ステップとなっており右もしくは下へ行くほど高周波成分に対する量子化ステップを表している。数値が小さいほど量子化ステップが小さい。すなわち元の画像の情報を保存していることを意味する。Ｔ２はＴ１にくらべ左上の領域の数値が大きくなっており、右もしくは下へ行くほど数値が小さくなるように設定している。すなわち低周波成分を若干犠牲にしながら高周波成分の情報を保存するようにしており、文字画像の圧縮劣化を減少させることができることになる。
【００７０】
以上の結果、設定したデータ量になる度に、量子化ステップパラメータがＱ１、Ｑ２、Ｑ３…と変わっていくものの、第１のメモリ１０４には１つの量子化ステップパラメータに従った符号化画像データと符号化属性データが格納されることになる。
【００７１】
例えば、第１のメモリ１０４に格納された符号化データを用いて、不図示のプリンタで印刷する場合には、第１のメモリ１０４に格納されたデータ（符号化画像データと符号化属性データ）をファイルとしてハードディスク等に保存し、そのハードディスクに記憶されている画像データ及び属性フラグデータを読出し、以下の手順で復号化して出力することになる。
【００７２】
まず圧縮して記憶された属性フラグデータのＭ×Ｎ（実施形態では３２×３２）画素分のデータを読み出し、属性フラグを復号する。
【００７３】
次に、属性フラグデータの復号結果により，画像データの復号化パラメータ（本発明では逆量子化マトリクス）を切り替えて画像データを復号処理し，その結果を出力バッファに出力する。
【００７４】
このとき、まず属性フラグデータを復号し復号されたＭ×Ｎ画素内の属性フラグデータに対し判定部１０１と同等の解析、判定処理を行い、対応するＭ×Ｎ画素の画像データを復号するための逆量子化マトリクスを設定して復号する。イメージスキャナとページ記述言語レンダリング部では全く同じ判定が行われ、また属性フラグデータはデータの劣化しないランレングス符号化のような可逆圧縮方式で圧縮されているので、符号化時と復号化時で同一タイルに対応する判定結果は全く等しいものとなる。従ってタイルごとに異なる量子化係数で量子化されていても復号時にはそれぞれに適した逆量子化係数が設定されるので、正しい復号画像データが得られることになる。
【００７５】
以上説明したように本第１の実施形態によれば、画像入力中に設定値を越えた場合であっても、その入力を継続しながら、目的とする設定値内に収まるよう符号化を行うことが可能になる。また、像域属性情報に従って２つの量子化マトリクスを用いることで、例えば１つの場合と比較し、中間調領域の圧縮率を多少高めに設定でき、その分、文字領域については画質劣化を抑制するために割り振ることができるので、結果的に、１つの場合と比較して、圧縮率に対する画質劣化を更に抑制することが可能になる。
【００７６】
＜第２の実施形態＞
以下、本発明に係る第２の実施形態を説明する。図２は画像処理装置の基本構成を示している。
【００７７】
図１の画像処理装置１００と大きく異なる点は、最初に符号化を行なう符号化部が２つ並列に存在する点である。画像処理装置２００は、入力部２０１から入力される画像データを、第１の符号化部２０２と第２の符号化部２０５で並行して符号化し、互いに圧縮率の異なる２種類の符号化データを生成する。本例でも、符号化方式は公知のＪＰＥＧ符号化方式を用い、８×８画素単位に相当する画像データを直交変換し、後述する量子化ステップを用いた量子化、ハフマン符号化処理を行なうものである。
【００７８】
なお、本例では第１の符号化部２０２よりも、第２の符号化部２０５の方が適用する圧縮率を高く設定する。具体的には、初期状態では、第１の符号化部２０２に設定する量子化ステップパラメータをＱ１、第２の符号化部２０５へ設定する量子化ステップパラメータをＱ２とする。つまり、第２の符号化部２０５に設定する量子化ステップパラメータは、常に第１の符号化部２０２よりも１ランク圧縮率の高くなるパラメータを設定する。第１、第２の符号化部２０２、２０５は設定されたパラメータと、判定部２１３からの判定結果に従って、直交変換したデータに対して最適な量子化マトリクスを選択し、量子化し、符号化する。
【００７９】
第１のカウンタ２０８は、符号化部２０２から出力される符号化データのデータ量をカウントして、これを保持すると共に、符号化シーケンス制御部２０９にも出力する。
【００８０】
一方、符号化部２０５で符号化された符号化データは、第２のメモリ制御部２０６を経由して、第２のメモリ２０７に格納される。このとき、第２のカウンタ２１０は、符号化部２０５から出力される符号化データのデータ量をカウントし、これを保持する。
【００８１】
更に、後述する第２のメモリ２０７に格納している符号化データを第１のメモリ２０４に転送する時には、それと同時に上記カウント値を、第１のカウンタ２０８に転送する。
【００８２】
さて、第１のカウンタ２０８が符号化部２０２から出力される符号化データのデータ量をカウント中に、該カウント値がある設定値に達した時には、符号化シーケンス制御部２０９は、先に説明した第１の実施形態と同様、メモリ制御部２０３に対してメモリ２０４に格納されているデータを廃棄するよう制御信号を出す。
【００８３】
そして、符号化シーケンス制御部２０９は、第２のメモリ２０７に格納している符号化データ（符号化画像データ及び符号化属性データ）を読み出して第１のメモリ２０４に転送し、第１のメモリ２０４に格納するよう、メモリ制御部２０６とメモリ制御部２０３に制御信号を出力する。この結果、第２のカウンタ２１０のカウント値が第１のカウンタ２０８に転送され、その値が第１のカウンタのカウント値としてロード（上書き）される。また、第２のカウンタ２１０はゼロクリアされ、それ以降に入力する画像データの符号化データ量を計数を開始する。
【００８４】
要するに、上記第２のカウンタ２１０のカウント値は、第２のメモリ２０７に格納している符号化データのデータ量を表わしているので、そのカウント値と符号化データを、互いの対応付けが変わらない様に、そのまま第１のカウンタと第１のメモリへコピーしたと考えれば良い。
【００８５】
さらに、符号化シーケンス制御２０９は、第１の符号化部２０２および、第２の符号化部２０５に対して、今までよりも、符号化データが少なくなるような符号化を行なうように制御信号を出す。
【００８６】
例えば、最初に設定値を越えたと判断した場合、第１の符号化部２０２、及び、第２の符号化部２０５に設定する量子化ステップパラメータはＱ１、Ｑ２からＱ２、Ｑ３へと変更する。この結果、第１の符号化部２０２は、その直前までの第２の符号化部２０５における量子化ステップパラメータＱ２を継承することになり、第２の符号化部２０５は更に大きな量子化ステップＱ３を用いて、次のオーバーフローに備えた更に高い圧縮率の符号化処理を行うことになる。
【００８７】
ただし、設定値を越えたと判断したとき、第２のメモリ２０７内にはそれまでの量子化ステップパラメータＱ２に従って符号化されたデータが格納されているので、このデータを新に設定された量子化ステップパラメータＱ３用の符号データに更新する必要がある。そのため、再符号化部２１１は、設定値を越えたと判断したとき以前の符号データ（符号化画像データ及び符号化属性データ）を読出し、復号化し、新に設定された量子化ステップパラメータＱ３に従い、再度符号化し、第２のメモリ制御部２０６を介して第２のメモリ２０７に再度格納する。このとき、第３のカウンタ２１２は再符号化部２１１で再度符号化されたデータ量をカウントしていて、従前の符号化データの再符号化が完了すると、そのカウント値を第２カウンタ２１０に加算する。従って、この加算が完了したとき、第２のカウンタ２１０は、第２の符号化部２０５があたかも入力画像の先頭から量子化ステップパラメータＱ３で符号化したデータ量をカウントしていることと透過になる。
【００８８】
そして、再符号化処理の終了／未終了に関わらず、符号化するべき入力部２０１からの画像データが残っていれば、２つの符号化部２０２と２０５による符号化処理を継続して行なう。そして、カウンタ２０８のカウント値がある設定値に達したかどうかの監視は入力部２０１から入力される１ページ分の画像データの符号化処理（符号化、再符号化）が終わるまで繰り返され、上述した符号化と再符号化の処理は、ここで得られる検出結果に応じた制御の上で実行される。
【００８９】
上記図２の構成における処理のフローを表わすフローチャートを図１２に示す。
【００９０】
図２で説明したように符号化部が２つある場合は、図１２に示すフローチャートに基づいて１ページ分の画像データの符号化を行なう。なお、図１２の説明は、符号化部が１つの場合のフローチャートである図８とは、大半は類似しており、当業者であれば上記説明から本第２の実施形態の特徴は十分に理解できるであろうから、符号化部１つの場合と同じように３つのフェーズで処理を説明する様にし、図８と異なる点を主に説明することとする。
【００９１】
上述した図８のフローと本実施形態のフローとの一番大きな違いは、ステップＳ３１７の転送処理が、ステップＳ３０７とステップＳ３０９の間に移動していることである。要するに、符号化・再符号化フェーズと転送フェーズが入れ替わったと見なせば良い（ステップＳ３０７の符号化データの廃棄処理は例外である）。
【００９２】
ステップＳ３０１の符号化パラメータの初期設定では、第１の符号化部２０２に量子化ステップパラメータＱ１を、第２の符号化部２０５には量子化ステップパラメータＱ２を設定する。
【００９３】
符号化フェーズでは、ステップＳ８０１、Ｓ３０３、Ｓ３０５を繰り返し実行する。ステップＳ８０１とステップＳ３０５は符号化部が１つの場合と同じ処理であるが、ステップＳ３０３の符号化処理だけは図１３に示すように異なっている。
【００９４】
第１のメモリ２０４へ格納する符号化データは圧縮率が段階的に高くなるようにするため、最初に格納する符号化データは圧縮率が一番低い量子化ステップパラメータＱ１で符号化したデータを格納し、第２のメモリ２０７へ格納する符号化データはそれより１ランク高い圧縮率となる量子化ステップパラメータＱ２で符号化したデータを格納する。
【００９５】
第１のメモリ２０４へ格納中のデータ量が設定されている上限値をオーバーしたら（ステップＳ３０５）、直ちに、第１のメモリ２０４で保持していた符号化データを廃棄し（ステップＳ３０７）、第２のメモリ２０７で保持している圧縮率の高い符号化データを、第１のメモリ２０４へ転送する（ステップＳ３１７、図１４参照）。これにより、第１の実施形態（図１）で説明した１回目の再符号化処理の終了を待たずに、速やかに、上限値をオーバーしない適切な２番目の候補の符号化データを第１のメモリ２０７内に格納出来る。これが、図１に対する、２つの符号器を持つ図２を適用することの最大の利点である。
【００９６】
本第２の実施形態では、２つのメモリ２０４、２０７で同じ圧縮率の符号化データを持っていることが無駄という考え方なので、第２のメモリ２０７には、第１のメモリ２０４に格納する符号化データよりも圧縮率の高い符号化データを格納しておくようにしている。従って、それ以降の処理もこの考え方に基づき行われるものであり、第２のメモリ２０７内の符号化データを第１のメモリ２０４に転送する処理（転送フェーズ）が終了した後は、第２のメモリ２０７の符号化データを、更に１段階圧縮率の高い符号化データを保持する様に再符号化することとなる。
【００９７】
具体的には、まず図１５に示す様に、転送フェーズの次の符号化・再符号化フェーズでは、上記再符号化の前に、２つの符号化部２０２，２０５に適用される各量子化ステップパラメータＱ１、Ｑ２をそれぞれＱ２、Ｑ３へ変更し（ステップＳ３０９）、１ページの画像データの入力が終了せずに続いていれば（ステップＳ８０３）、後続の画像データは新たな量子化ステップが設定された２つの符号化部で該入力データを符号化して（ステップＳ３１１）、対応する各メモリ２０４，２０７へ格納する。そして、上記符号化処理と並行して第２のメモリに格納されている符号化データ（第１のメモリ２０４に転送したもの）は、第１のメモリ内の符号化データよりも１段階高い圧縮率の符号化データに変更するべく、再符号化部２１１にて量子化ステップＱ３を用いて符号化されたデータが得られる様な再符号化処理（Ｓ３１３）を行ない、再符号化データを第２のメモリ２０７に格納し直す。
【００９８】
なお、本第２の実施形態でも、第１の実施形態と同様、再符号化処理では、符号化データを一旦ハフマン復号した後の各量子化値に対して、これら値を２nで割った結果と同様の結果が出るビットシフト処理を施した後、再度ハフマン符号化を行なうことにより実現される。この方法は、ビットシフトのみで量子化ステップを変更する点と逆直交変換や再直交変換処理を行わない点で、高速な再符号化処理が可能である。
【００９９】
なお、本第２の実施形態の様に符号化部が２つ有る場合には、図１５に示したように、第２のメモリ２０７に符号化データと再符号化データを混在して格納する状況が発生する。従って、前述したように、符号化データをある単位で区切って、ファイル或いはパケットとして管理することが、第２のメモリ２０７に対しても必要になる。その為には、例えば第１の例における変形例と同様の構成を設ければ良いであろう。
【０１００】
図１２において、再符号化処理の終了をステップＳ３１５で検知したら、また符号化フェーズ（ステップＳ８０１、Ｓ３０３）に移行する。なお、符号化・再符号化フェーズ後の符号化フェーズでは、図１６に示すように、２つのメモリ２０４，２０７が保持する符号化データは圧縮率が違うだけでなく、符号化データの混在の仕方（アドレス）もかなり違ってくる。従って、再度、第１のメモリ２０４のデータ量が設定値をオーバーした場合には、第２のメモリ２０７で保持されている符号化データ（▲６▼＋▲８▼の横縞の領域の符号）が第１のメモリ２０４へ転送される必要が出てくる。これらを考慮すると、第２のメモリ２０７だけでなく、第１のメモリ２０４でも符号化データをファイル或いはパケットとして管理する必要がある。よって、第１のメモリ２０４にも前述の管理テーブルを用いた管理機構が必要となる。
【０１０１】
図１６に示された符号化フェーズの状態は、量子化ステップと符号化データの混在の仕方が、再符号化処理の前後で異なっていること以外は、初期状態の符号化フェーズ（図１３）と同じである。よって、符号化フェーズ、転送フェーズと符号化・再符号化フェーズを繰り返すことで、最終的に、１ページ分の画像データを設定した上限値以下に圧縮した符号化データを確実に第１のメモリ２０４に格納することが出来る。
【０１０２】
なお、第１の実施形態の説明とは、転送フェーズと符号化・再符号化フェーズの配置順が逆であることから、図８において転送処理後に行なっていた１ページ分の画像データの入力終了検知（ステップＳ８０５）は、符号化・再符号化フェーズで行なう１ページ分の画像データの入力終了検知（ステップＳ８０３）と、ほとんど同じタイミングになってしまう。また、２つの検知処理は、機能的にはステップＳ８０５と同じで、タイミング的にはステップＳ８０３と同じである、従って、これら２つのステップは、新たな１ページ分の画像データの入力終了を検知するステップとして統合し、ステップＳ１２０１と表記しておく。
【０１０３】
以上説明した第１、第２の実施形態では、第１のメモリと第２のメモリは物理的に別のメモリであるとして説明をしてきた。これは、２つのメモリに対するアクセスが独立したものとすることができるので有利なためであり、本発明の特徴となす。しかしながら、第１のメモリと第２のメモリを、物理的に別のメモリとしない場合も本発明の範疇に含まれる。物理的に１つのメモリ上に、前記第１のメモリと第２のメモリに相当する２つの領域を確保して、第１のメモリを第１のメモリ領域、第２のメモリを第２のメモリ領域と言い直して、これまでの説明を読み直せば、本発明は、１つのメモリでも実現できることが分かる。
【０１０４】
また、１つのメモリで上記各実施形態を実現する場合には、前記転送フェーズで説明したデータ転送処理のいくつかは不要となる。その詳細はその都度容易に想像できるので説明は省略するが、前記２つの領域を厳密に別けて使用する場合、物理的に２つのメモリを持つ時と同じようにデータ転送処理が必要であるが、２つの領域間で同じデータを共有することになれば、データ転送処理が不要になるだけでなく記憶容量の削減も図れる。
【０１０５】
例えば、第２のメモリ領域で保持していた符号化データを、第１のメモリ領域へ転送する際、該符号化データが格納されている先頭アドレスとデータサイズの２つの情報を第２のメモリ制御部から第１のメモリ制御部へ転送するだけで、前記符号化データを転送したのと同じ効果が得られる。
【０１０６】
前記符号化データを、ファイル形式やパケット形式で格納している場合は、メモリ制御部の間で転送する情報は少し増え、該符号化データに関連する管理テーブル情報を転送する必要がある。それでも、符号化データを転送するよりは、効率が良い。
【０１０７】
上述した画像処理装置によると、入力した画像データを符号化していく際に、目的とするサイズに越えるような場合であっても、その入力を継続しつつ目標とするサイズに収めるよう処理を継続することができるようになる。しかも、本第１、第２の実施形態では、量子化ステップパラメータに対して一律同じ量子化ステップにするのではなく、文字領域、中間調領域それぞれに適した量子化マトリクスが用いられて符号化されるので、高い圧縮率と、画質劣化を最低限にすることが可能になる。
【０１０８】
なお、実施形態では、属性データを圧縮する際に、第１、第２のメモリそれぞれに格納するものとして説明したが、判定部１１３、２１３の判定結果の属性データは１ページの画像に対して変動することはないので、共通のメモリ（例えば第１のメモリ）に格納するようにし、再符号化部２１１が再符号化する際に、その共通のメモリを参照して再符号化するようにしても構わない。
【０１０９】
また、上記の通り、本発明は、汎用装置上で動作するアプリケーションプログラムによって実現できるものであるので、本発明はコンピュータプログラムをも含むものである。また、コンピュータプログラムは、通常、フロッピーディスクやＣＤＲＯＭ等の記憶媒体を装置にセットしてコピー或いはインストールことで行われるので、かかる記憶媒体も本発明の範疇に当然に含まれる。
【０１１０】
また、実施形態では、スキャナから画像データを入力するものとして説明したが、ホストコンピュータ上で動作するプリンタドライバに適用しても良い。プリンタドライバに適用する場合には、上位処理（アプリケーション等）から印刷対象のデータを受信したときに、その時点で、そのデータが中間調画像か、文字・線画かは勿論は判別できるので、像域情報生成処理にかかる構成を省くか、或いはより簡素なものとすることができる。
【０１１１】
また、本発明は、コンピュータプログラムと適当なハードウェア（符号化回路等）の組み合わせにも適用できる。
【０１１２】
【発明の効果】
以上説明したように本発明によれば、再画像入力を不要とし、効果的に設定したサイズに収まる符号化データを生成でき、且つ、圧縮率に対して画質劣化が小さくすることが可能になる。
【図面の簡単な説明】
【図１】第１の実施形態における画像処理装置のブロック構成図である。
【図２】第２の実施形態における画像処理装置のブロック構成図である。
【図３】図１の構成における処理を簡略化して示したフローチャートである。
【図４】初期状態の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図５】符号化・再符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図６】転送フェーズにおけるデータフローとメモリ内容を表わす図である。
【図７】転送フェーズ後の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図８】図１の構成における処理の詳細を示すフローチャートである。
【図９】図１の構成の変形例における符号化・再符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図１０】図９の変形例における転送フェーズにおけるデータフローとメモリ内容を表わす図である。
【図１１】図９の変形例における転送フェーズ後の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図１２】図２の構成における処理手順を示すフローチャートである。
【図１３】図２の構成における、初期状態の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図１４】図２に構成における、転送フェーズにおけるデータフローとメモリ内容を表わす図である。
【図１５】図２の構成における、符号化・再符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図１６】図２の構成における、符号化・再符号化フェーズ後の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図１７】実施形態が適用する属性データの符号化に係る処理部の構成を示す図である。
【図１８】実施形態における原稿画像と文字領域及び中間調領域との関係を示す図である。
【図１９】実施形態で採用する量子化マトリクスの例を示す図である。
【図１】
0003902953.tif 000002
【図２】
0003902953.tif 000003
【図３】
0003902953.tif 000004
【図４】
0003902953.tif 000005
【図５】
0003902953.tif 000006
【図６】
0003902953.tif 000007
【図７】
0003902953.tif 000008
【図８】
0003902953.tif 000009
【図９】
0003902953.tif 000010
【図１０】
0003902953.tif 000011
【図１１】
0003902953.tif 000012
【図１２】
0003902953.tif 000013
【図１３】
0003902953.tif 000014
【図１４】
0003902953.tif 000015
【図１５】
0003902953.tif 000016
【図１６】
0003902953.tif 000017
【図１７】
0003902953.tif 000018
【図１８】
0003902953.tif 000019
【図１９】
0003902953.tif 000020