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