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