(57)【要約】【課題】  可逆符号化、非可逆符号化の双方を併用しつつも、１度の画像入力により目標データ量の符号化データを生成する。【解決手段】  第１のメモリ１０５には、非可逆符号化を行う第１の符号化部１０８と可逆符号化を行う第２の符号化部１０３それぞれで生成される符号長の短い符号化データを格納し、第２のメモリ１０７には第２の符号化部１０３からの符号化データを格納する。符号化シーケンス制御部１１０は、第１のメモリに格納された符号化データ量が目標データ量をオーバーしたと判定した場合、第１のメモリ内のデータを破棄し、第１の符号化部に、より高い圧縮率となるよう量子化パラメータを設定し、符号化を実行させる。オーバーしたと判定される以前の符号化データについては、再符号化部１１２で再符号化することで生成する。【選択図】  図１
2006067117.tif 000002
【特許請求の範囲】
【請求項１】
画像データを入力し、当該画像データを符号化する画像符号化装置であって、
第１のパラメータに従って、入力する画像データを所定画素ブロック単位に非可逆符号化し、非可逆符号化データを生成する第１の符号化手段と、
入力する画像データを前記所定画素ブロック単位に可逆符号化し、可逆符号化データを生成する第２の符号化手段と、
前記第１、第２の符号化手段で生成された、それぞれの符号化データのうち、符号長の短い符号化データを所定の第１のメモリに格納する第１の格納手段と、
前記第２の符号化手段で生成された可逆符号化データを所定の第２のメモリに格納する第２の格納手段と、
前記第２のメモリ内の可逆符号化データを復号し、第２のパラメータに従って再符号化して非可逆符号化データを生成すると共に、該再符号化により得られた非可逆符号化データと該再符号化前の可逆符号化データのうち、符号長の短い符号化データを前記第１のメモリに格納する再符号化手段と、
前記第１のメモリに格納された符号化データ量を監視し、所定データ量を超えたか否かを判断する監視手段と、
該監視手段で前記符号化データ量が所定データ量を超えたと判断した場合、（ａ）前記第１のメモリ内の符号化データを破棄し、（ｂ）前記第１の符号化手段に設定されていた第１のパラメータを、圧縮率の高いパラメータに更新して画像データの符号化を継続させ、（ｃ）更新後の第１のパラメータと同じパラメータを第２のパラメータとして前記再符号化手段に設定して、前記符号化データ量が所定データ量を超える以前に得られた可逆符号化データを再符号化させるパラメータ更新手段と
を備えることを特徴とする画像符号化装置。
【請求項２】
前記第１の符号化手段による符号化にはＪＰＥＧを用い、前記第２の符号化手段による符号化にはＪＰＥＧ−ＬＳを用いたことを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
画像データを入力し、当該画像データを符号化する画像符号化方法であって、
第１のパラメータに従って、入力する画像データを所定画素ブロック単位に非可逆符号化し、非可逆符号化データを生成する第１の符号化工程と、
入力する画像データを前記所定画素ブロック単位に可逆符号化し、可逆符号化データを生成する第２の符号化工程と、
前記第１、第２の符号化工程で生成された、それぞれの符号化データのうち、符号長の短い符号化データを所定の第１のメモリに格納する第１の格納工程と、
前記第２の符号化工程で生成された可逆符号化データを所定の第２のメモリに格納する第２の格納工程と、
前記第２のメモリ内の可逆符号化データを復号し、第２のパラメータに従って再符号化して非可逆符号化データを生成すると共に、該再符号化により得られた非可逆符号化データと該再符号化前の可逆符号化データのうち、符号長の短い符号化データを前記第１のメモリに格納する再符号化工程と、
前記第１のメモリに格納された符号化データ量を監視し、所定データ量を超えたか否かを判断する監視工程と、
該監視工程で前記符号化データ量が所定データ量を超えたと判断した場合、（ａ）前記第１のメモリ内の符号化データを破棄し、（ｂ）前記第１の符号化工程に設定されていた第１のパラメータを、圧縮率の高いパラメータに更新して画像データの符号化を継続させ、（ｃ）更新後の第１のパラメータと同じパラメータを第２のパラメータとして前記再符号化工程に設定して、前記符号化データ量が所定データ量を超える以前に得られた可逆符号化データを再符号化させるパラメータ更新工程と
を備えることを特徴とする画像符号化方法。
【請求項４】
コンピュータが読み込み実行することで、画像データを入力し、当該画像データを符号化する画像符号化装置として機能するコンピュータプログラムであって、
第１のパラメータに従って、入力する画像データを所定画素ブロック単位に非可逆符号化し、非可逆符号化データを生成する第１の符号化手段と、
入力する画像データを前記所定画素ブロック単位に可逆符号化し、可逆符号化データを生成する第２の符号化手段と、
前記第１、第２の符号化手段で生成された、それぞれの符号化データのうち、符号長の短い符号化データを所定の第１のメモリに格納する第１の格納手段と、
前記第２の符号化手段で生成された可逆符号化データを所定の第２のメモリに格納する第２の格納手段と、
前記第２のメモリ内の可逆符号化データを復号し、第２のパラメータに従って再符号化して非可逆符号化データを生成すると共に、該再符号化により得られた非可逆符号化データと該再符号化前の可逆符号化データのうち、符号長の短い符号化データを前記第１のメモリに格納する再符号化手段と、
前記第１のメモリに格納された符号化データ量を監視し、所定データ量を超えたか否かを判断する監視手段と、
該監視手段で前記符号化データ量が所定データ量を超えたと判断した場合、（ａ）前記第１のメモリ内の符号化データを破棄し、（ｂ）前記第１の符号化手段に設定されていた第１のパラメータを、圧縮率の高いパラメータに更新して画像データの符号化を継続させ、（ｃ）更新後の第１のパラメータと同じパラメータを第２のパラメータとして前記再符号化手段に設定して、前記符号化データ量が所定データ量を超える以前に得られた可逆符号化データを再符号化させるパラメータ更新手段
として機能することを特徴とするコンピュータプログラム。
【請求項５】
請求項４に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【請求項６】
画像データを入力し、当該画像データを符号化する画像符号化装置であって、
第１のパラメータに従って、入力する画像データを所定画素ブロック単位に非可逆符号化し、非可逆符号化データを生成する第１の符号化手段と、
前記第１のパラメータよりも高い圧縮率となる第２のパラメータに従って、入力する画像データを前記所定画素ブロック単位に非可逆符号化し、非可逆符号化データを生成する第２の符号化手段と、
入力する画像データを前記所定画素ブロック単位に可逆符号化し、可逆符号化データを生成する第３の符号化手段と、
前記第１、第３の符号化手段で生成された、それぞれの符号化データのうち、符号長の短い符号化データを所定の第１のメモリに格納する第１の格納手段と、
前記第２、第３の符号化手段で生成された、それぞれの符号化データのうち、符号長の短い符号化データを所定の第２のメモリに格納する第２の格納手段と、
前記第３の符号化手段で生成された可逆符号化データを所定の第３のメモリに格納する第３の格納手段と、
前記第３のメモリ内の可逆符号化データを復号し、第３のパラメータに従って再符号化して非可逆符号化データを生成すると共に、該再符号化により得られた非可逆符号化データと該再符号化前の可逆符号化データのうち、符号長の短い符号化データを前記第２のメモリに格納する再符号化手段と、
前記第１のメモリに格納された符号化データ量を監視し、所定データ量を超えたか否かを判断する監視手段と、
該監視手段で前記符号化データ量が所定データ量を超えたと判断した場合、（ａ）前記第１のメモリ内の符号化データを破棄し、前記第２のメモリ内の符号化データを前記第２のメモリに転送し、（ｂ）前記第１の符号化手段に設定されていた第１のパラメータを、前記第２の符号化手段に設定されていた第２のパラメータで更新して画像データの符号化を継続させ、（ｃ）前記第２のメモリ内の符号化データを破棄し、前記第２の符号化手段に設定されていた第２のパラメータを圧縮率の高いパラメータに更新して、符号化を継続させ、（ｄ）更新後の第２のパラメータと同じパラメータを第３のパラメータとして前記再符号化手段に設定して、前記符号化データ量が所定量を超える以前に得られた可逆符号化データを再符号化させるパラメータ更新手段と
を備えることを特徴とする画像符号化装置。
【請求項７】
前記第１、第２の符号化手段による符号化にはＪＰＥＧを用い、前記第３の符号化手段による符号化にはＪＰＥＧ−ＬＳを用いることを特徴とする請求項６に記載の画像符号化装置。
【請求項８】
画像データを入力し、当該画像データを符号化する画像符号化方法であって、
第１のパラメータに従って、入力する画像データを所定画素ブロック単位に非可逆符号化し、非可逆符号化データを生成する第１の符号化工程と、
前記第１のパラメータよりも高い圧縮率となる第２のパラメータに従って、入力する画像データを前記所定画素ブロック単位に非可逆符号化し、非可逆符号化データを生成する第２の符号化工程と、
入力する画像データを前記所定画素ブロック単位に可逆符号化し、可逆符号化データを生成する第３の符号化工程と、
前記第１、第３の符号化工程で生成された、それぞれの符号化データのうち、符号長の短い符号化データを所定の第１のメモリに格納する第１の格納工程と、
前記第２、第３の符号化工程で生成された、それぞれの符号化データのうち、符号長の短い符号化データを所定の第２のメモリに格納する第２の格納工程と、
前記第３の符号化工程で生成された可逆符号化データを所定の第３のメモリに格納する第３の格納工程と、
前記第３のメモリ内の可逆符号化データを復号し、第３のパラメータに従って再符号化して非可逆符号化データを生成すると共に、該再符号化により得られた非可逆符号化データと該再符号化前の可逆符号化データのうち、符号長の短い符号化データを前記第２のメモリに格納する再符号化工程と、
前記第１のメモリに格納された符号化データ量を監視し、所定データ量を超えたか否かを判断する監視工程と、
該監視工程で前記符号化データ量が所定データ量を超えたと判断した場合、（ａ）前記第１のメモリ内の符号化データを破棄し、前記第２のメモリ内の符号化データを前記第２のメモリに転送し、（ｂ）前記第１の符号化工程に設定されていた第１のパラメータを、前記第２の符号化工程に設定されていた第２のパラメータで更新して画像データの符号化を継続させ、（ｃ）前記第２のメモリ内の符号化データを破棄し、前記第２の符号化工程に設定されていた第２のパラメータを圧縮率の高いパラメータに更新して、符号化を継続させ、（ｄ）更新後の第２のパラメータと同じパラメータを第３のパラメータとして前記再符号化工程に設定して、前記符号化データ量が所定データ量を超える以前に得られた可逆符号化データを再符号化させるパラメータ更新工程と
を備えることを特徴とする画像符号化方法。
【請求項９】
コンピュータが読み込み実行することで、画像データを入力し、当該画像データを符号化する画像符号化装置として機能するコンピュータプログラムであって、
第１のパラメータに従って、入力する画像データを所定画素ブロック単位に非可逆符号化し、非可逆符号化データを生成する第１の符号化手段と、
前記第１のパラメータよりも高い圧縮率となる第２のパラメータに従って、入力する画像データを前記所定画素ブロック単位に非可逆符号化し、非可逆符号化データを生成する第２の符号化手段と、
入力する画像データを前記所定画素ブロック単位に可逆符号化し、可逆符号化データを生成する第３の符号化手段と、
前記第１、第３の符号化手段で生成された、それぞれの符号化データのうち、符号長の短い符号化データを所定の第１のメモリに格納する第１の格納手段と、
前記第２、第３の符号化手段で生成された、それぞれの符号化データのうち、符号長の短い符号化データを所定の第２のメモリに格納する第２の格納手段と、
前記第３の符号化手段で生成された可逆符号化データを所定の第３のメモリに格納する第３の格納手段と、
前記第３のメモリ内の可逆符号化データを復号し、第３のパラメータに従って再符号化して非可逆符号化データを生成すると共に、該再符号化により得られた非可逆符号化データと該再符号化前の可逆符号化データのうち、符号長の短い符号化データを前記第２のメモリに格納する再符号化手段と、
前記第１のメモリに格納された符号化データ量を監視し、所定データ量を超えたか否かを判断する監視手段と、
該監視手段で前記符号化データ量が所定データ量を超えたと判断した場合、（ａ）前記第１のメモリ内の符号化データを破棄し、前記第２のメモリ内の符号化データを前記第２のメモリに転送し、（ｂ）前記第１の符号化手段に設定されていた第１のパラメータを、前記第２の符号化手段に設定されていた第２のパラメータで更新して画像データの符号化を継続させ、（ｃ）前記第２のメモリ内の符号化データを破棄し、前記第２の符号化手段に設定されていた第２のパラメータを圧縮率の高いパラメータに更新して、符号化を継続させ、（ｄ）更新後の第２のパラメータと同じパラメータを第３のパラメータとして前記再符号化手段に設定して、前記符号化データ量が所定量を超える以前に得られた可逆符号化データを再符号化させるパラメータ更新手段
として機能することを特徴とするコンピュータプログラム。
【請求項１０】
請求項９に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【請求項１１】
原稿画像を入力し、所定の記録媒体上に可視画像を形成する画像形成装置であって、
入力した原稿画像データを請求項１又は６に記載の画像符号化装置と
該画像符号化装置で生成された符号化データを蓄積する蓄積手段と、
蓄積手段で蓄積された符号化データを復号する復号手段と、
復号手段で得られた画像データを像域情報に基づいて補正し、画像形成する画像形成手段と
を備えることを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを符号化する技術に関するものである。
【背景技術】
【０００２】
従来、静止画像データを圧縮するには、離散コサイン変換を利用した方法や、Wavelet変換を利用した方法が多く使われている。この種の符号化は、可変長符号化であるので、符号化対象の画像毎に符号量が変化する。
【０００３】
国際標準化方式であるＪＰＥＧ符号化では、１つの画像に対して１組の量子化マトリクスしか定義できないので、プリスキャン無しには、１つの画像（原稿）の符号化データを目標とする符号量に収めることは難しい。また、限られたメモリに記憶するシステムで使用する場合においては、メモリオーバーを起こす危険性がある。
【０００４】
これを防止するために、予定した符号量よりオーバーした場合は、圧縮率パラメータを変更して、同じ原稿の再読み込みを行なう方法や、予めプリスキャンによる符号量見積もりを行ない、符号量を調整するために、量子化パラメータの再設定を行なう方法などがとられていた。
【０００５】
上記のように、プリスキャンン、本スキャンを行うのが一般的であるが、これでは少なくとも２回、同じ原稿を読取る必要があり、効率的とは言えない。特に複写機において複数枚（ページ）の原稿をＡＤＦ（Auto Document Feeder）から１ページずつ連続的に読取りながら符号化するような場合には、同じ原稿を２回読取ることは処理時間的にも不可能である。
【０００６】
本願出願人は、上記のようなプレスキャン、本スキャンの２回のスキャンを不要とし、且つ、１つの画像全体に共通の符号化パラメータを用いた符号化を行った上で、目標となる符号化データ量に圧縮する技術を提案した（特許文献１）。この技術は、１度（１ページ分）の画像入力中に、符号化データを２つのメモリに順次格納していき、もしその途中で、所定メモリ内の符号化データの量が所定サイズを超えた場合には、その所定メモリ内のデータを破棄するとともに、それまでの符号化パラメータから更に圧縮率を高くする新しい符号化パラメータに更新して未だ符号化されていない部分の画像データの符号化処理を継続する（ここで得られる符号化データを第１符号化データとする）。このとき、もう一方のメモリには、圧縮率を上げる以前の符号化により得られた符号化済みデータが格納されているので、これら符号化済みデータを更新後のパラメータに従って再符号化することにより、上記新しいパラメータで最初から符号化した場合と同等の符号化データを得ることができる（この再符号化で得られる符号化データを第２符号化データとする）。そして、これら第１符号化データと第２符号化データを結合することにより、１つ（１ページ分）の画像の全体に渡って共通の符号化パラメータ（更新後の符号化パラメータ）で符号化された符号化データ（ＪＰＥＧ符号化にも準拠）を得ることができ、かつ目標となる符号化データ量にできるというものである。
【特許文献１】特開２００３−８９０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記従来技術で用いられる圧縮符号化は、ＪＰＥＧ等の非可逆圧縮技術のみが用いられている。
【０００８】
さて、上記符号量制御技術において、１ページの画像の符号化中に、生成される符号化データ量が所定サイズを超えた場合、そのページ全体を一律圧縮率を上げるのと等価の処理を行うことになるため、部分的に予測以上の画質劣化を招くことがあった。特に、文字線画部分を含む画像を圧縮する場合にこの傾向が高かった。
【０００９】
ところで、ＪＰＥＧ−ＬＳという可逆圧縮技術が知られている。この技術は「ＪＰＥＧ」と冠しつつも、その符号化アルゴリズムは通常の非可逆のＪＰＥＧとは全く異なるものであり、自然画の圧縮率はＪＰＥＧに譲るものの、文字線画やコンピュータグラフィクスについては高い圧縮率で可逆符号化できるものとして知られている。
【００１０】
これを考慮すると、１ページに写真画像、文字線画が混在している原稿画像を圧縮する場合、できるだけ文字線画部分には可逆圧縮を適用するべきである。
【００１１】
従って、このような原稿を圧縮する際に、先に示した特許文献１と同様に、一度の画像データの入力で、つまり、再入力を必要としないで、かつ目標とするデータ量に収めるために、非可逆圧縮と可逆圧縮技術を併用する技術が望まれることになる。また、画像の一部または全部に対する非可逆符号化の適用において、その画像には共通の符号化パラメータを用いることも必要である。本発明はこれらを解決することを課題とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明の画像符号化装置は以下の構成を備える。すなわち、
画像データを入力し、当該画像データを符号化する画像符号化装置であって、
第１のパラメータに従って、入力する画像データを所定画素ブロック単位に非可逆符号化し、非可逆符号化データを生成する第１の符号化手段と、
入力する画像データを前記所定画素ブロック単位に可逆符号化し、可逆符号化データを生成する第２の符号化手段と、
前記第１、第２の符号化手段で生成された、それぞれの符号化データのうち、符号長の短い符号化データを所定の第１のメモリに格納する第１の格納手段と、
前記第２の符号化手段で生成された可逆符号化データを所定の第２のメモリに格納する第２の格納手段と、
前記第２のメモリ内の可逆符号化データを復号し、第２のパラメータに従って再符号化して非可逆符号化データを生成すると共に、該再符号化により得られた非可逆符号化データと該再符号化前の可逆符号化データのうち、符号長の短い符号化データを前記第１のメモリに格納する再符号化手段と、
前記第１のメモリに格納された符号化データ量を監視し、所定データ量を超えたか否かを判断する監視手段と、
該監視手段で前記符号化データ量が所定データ量を超えたと判断した場合、（ａ）前記第１のメモリ内の符号化データを破棄し、（ｂ）前記第１の符号化手段に設定されていた第１のパラメータを、圧縮率の高いパラメータに更新して画像データの符号化を継続させ、（ｃ）更新後の第１のパラメータと同じパラメータを第２のパラメータとして前記再符号化手段に設定して、前記符号化データ量が所定データ量を超える以前に得られた可逆符号化データを再符号化させるパラメータ更新手段とを備える。
【発明の効果】
【００１３】
本発明によれば、１つの画像に可逆符号化、非可逆符号化の双方を併用しつつ、その画像への非可逆符号化の適用において共通の符号化パラメータを用いることができ、且つ、１度の画像入力により目標データ量の符号化データを生成することが可能になる。
【００１４】
また、非可逆符号化としてＪＰＥＧ、可逆符号化としてＪＰＥＧ−ＬＳを用いることで、格別な像域判定回路を設けなくても、文字線画、自然画それぞれに対して適した符号化が選択されることになり、復号した際の画質及び圧縮率ともに優れた符号化データを生成することが可能になる。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１６】
＜装置概要の説明＞
図２２は、実施形態が適用する複写機のブロック構成図である。
【００１７】
図中、１は装置全体の制御を司る制御部であり、ＣＰＵ、ＲＯＭ、ＲＡＭ等で構成される。２はＬＣＤ表示器や各種スイッチ、ボタン等で構成される操作部である。３は原稿読取部（イメージスキャナ部）であり、ＡＤＦ（Auto Document Feeder）を搭載している。読取った画像はＲＧＢ各色成分毎に８ビット（２５６階調）のデジタルデータを出力する。４は、不図示のインタフェース（ネットワークインタフェースを含む）を介して受信したＰＤＬ形式の印刷データに基づき、印刷画像を描画するレンダリング部である。５はセレクタであり、制御部１からの指示に従って、原稿読取部３、又は、レンダリング部４から出力されたビットマップイメージのいずれか一方を選択し、出力する。
【００１８】
６は本実施形態の特徴部分である符号化処理部である。この符号化処理部６の詳細な後述するが、画像データの符号化するものである。
【００１９】
７は２次記憶装置（実施形態ではハードディスク装置とする）であり、符号化処理部６より出力された符号化データを順に格納記憶する。
【００２０】
８は、復号処理部であって、２次記憶装置７に格納された圧縮符号化された画像データを、その格納順に読出し、復号する。９は画像処理部であって、復号処理部８からの復号画像を入力し、ＲＧＢ色空間を記録色空間であるＹＭＣへの変換、ＵＣＲ（Under Color Removal）処理を行うと共に、画像データの補正処理を行う。
【００２１】
１０はプリンタエンジン部である。プリンタエンジン部の印刷機構は、レーザビームプリンタエンジンとするが、インク液を吐出するタイプでも構わず、その種類は問わない。
【００２２】
上記構成において、例えば、利用者が操作部２を操作して、複写モードを選択し、原稿を原稿読取部３（のＡＤＦ）にセットし、複写開始キーを押下すると、原稿読取部３で読取られた原稿画像データは、ラスター順に、セレクタ５を介して符号化処理部６に転送され、ここで圧縮符号化されて２次記憶装置７に格納していく。
【００２３】
また、外部より印刷データを受信した場合には、セレクタ５をレンダリング部４を選択するようにし、レンダリング部４が生成した印刷データに基づく画像を圧縮符号化し、２次記憶装置７に格納することになる。
【００２４】
復号処理部８は、プリンタエンジン１０の印刷速度に応じて、２次記憶装置７から圧縮符号化データを読出し、復号処理する。そして、画像処理部９で復号した画像データからＹＭＣＫ成分の記録用画像データを生成する。そして、その結果をプリンタエンジン部１０に出力し、印刷を行う。
【００２５】
上記の通り、２次記憶装置７への圧縮符号化データの格納処理と、復号し印刷するための読出し処理は、非同期である。つまり、２次記憶装置７は画像圧縮処理と、復号処理との間に介在するバッファとして機能することになり、原稿読取り／符号化処理は、復号／記録処理に非依存なので、多数の原稿を高速に読取ることができ、次のジョブの原稿読取りにすばやく移行することが可能になる。
【００２６】
以上、実施形態における装置全体の構成について説明した。次に、本装置の特徴部分である符号化処理部６について、以下の各実施形態で説明する。
【００２７】
＜第１の実施形態＞
図１は、実施形態における符号化処理部６のブロック構成図である。以下、同図の各部を簡単に説明する。
【００２８】
入力部１０１には、複数ライン分のラインバッファーメモリを内蔵し、先に説明したように、セレクタ５を介して、原稿読取部３もしくはレンダリング部４からの画像データをラスター順に入力し、内部のラインバッファーに格納し、Ｎ×Ｍ画素ブロック（実施形態では８×８画素ブロックとした）単位に出力する。
【００２９】
第１の符号化部１０２は非可逆符号化部であって、圧縮率に影響を与えるパラメータに従って、入力部１０１より入力した画素ブロック単位に圧縮符号化処理を行い、その結果（符号化データ）を出力する。但し、符号化データの先頭には、第１の符号化部１０２で符号化されたことを示す識別ビットを付加する。
【００３０】
実施形態における、この画像符号化部１０２は、ＪＰＥＧ符号化（非可逆符号化）を適用した例を説明する。つまり、８×８画素単位に相当する画像データを直交変換し、後述する量子化ステップを用いた量子化をし、ハフマン符号化処理を行うものである。ここで生成される符号化データ量を左右するのが量子化ステップであり、これが圧縮率に影響を与える符号化パラメータとして符号化シーケンス制御部１１０により設定される。ＪＰＥＧ符号化は、自然画に適した技術として知られている。
【００３１】
図２１はＤＣＴ変換後の周波数係数を量子化する際に用いる量子化マトリクステーブルＱ０、Ｑ１、Ｑ２を示している（符号化シーケンス制御部１１０に記憶保持されている）。ここで、量子化マトリクステーブル内の値Ｑｉ（０，０）〜Ｑｉ（７，７）（ｉ＝０、１、２…）が量子化ステップ値を意味する。量子化ステップ値は、概ね、Ｑ０＜Ｑ１＜Ｑ２…の関係にある。量子化ステップ値が大きくなればなるほど、量子化後の周波数係数値の取り得る範囲が狭くなり、圧縮率が向上する。
【００３２】
第２の符号化部１０３は、第１の符号化部１０２と異なり、可逆符号化部である。可逆符号化であるため、その復号結果は符号化する前の画像と同じとなり、原理的に画質の劣化は発生しない。実施形態では、この第２の符号化部１０３にＪＰＥＧ−ＬＳを用いた。ＪＰＥＧ−ＬＳは「ＪＰＥＧ」を冠するものの、第１の符号化部で採用している非可逆符号化ＪＰＥＧとはそのアルゴリズムは全く異なる。ＪＰＥＧ−ＬＳ符号化の特徴は、文字線画、コンピュータグラフィックスに適した技術であり、これらの画像を符号化する場合には、非可逆符号化であるＪＰＥＧに与える量子化ステップが“１”（実質可逆）は勿論こと、“２”、“３”等の比較的小さい量子化ステップ値よりも少ない符号データを生成することができる。
【００３３】
また、第２の符号化部１０３は、第１の符号化部１０２と実質的に同じタイミングで、同じ画素ブロックに対して符号化を行い、符号化データを出力する。また、第２の符号化部１０３は、符号化データを出力する際に、その符号化データの先頭に第２の符号化部１０２で符号化されたことを示す識別ビットを付加する。
【００３４】
第１の符号長検出部１０８は、第１の符号化部１０２から出力される画素ブロックの符号化データ長（識別ビットである１ビットを含む）を検出し、符号化シーケンス制御部１０８に出力する。第２の符号長検出部１０９は第２の符号化部１０３から出力される画素ブロックの符号化データ長（識別ビットである１ビットを含む）を検出し、符号化シーケンス制御部１０８に出力する。
【００３５】
符号化シーケンス制御部１１０は実施形態における符号化処理部６の制御を司るものであり、内部には第１カウンタ１１１が設けられている。このカウンタは、１ページの符号化を開始する際にリセットされ、第１の符号長検出部１０８からの符号長と第２の符号長検出部１０９からの符号長データを比較し、短い符号長データを選択し、累積加算するものである。また、短い符号長が判明するので、短い符号長の符号化データを格納するよう第１のメモリ制御部１０４に要求する。
【００３６】
第１のメモリ制御部１０４は符号化シーケンス制御部１１０の制御の元で、第１のメモリ１０５への符号化データの書き込み、消去処理を行う。この第１のメモリ１０５は、１ページの符号化が完了した際の最終的に確定した符号化データを格納することになり、２次記憶装置７に出力される符号データを格納するものでもある。
【００３７】
第２のメモリ制御部１０６は符号化シーケンス制御部１１０の制御の元で、第２符号化部１０３で生成された符号化データの第２のメモリ１０７への格納処理、及び、第２のメモリ１０７より符号化データの読出しを行う。この第２のメモリ１０７は、１ページの画像データを符号化する際の作業エリアとして使用されるものである。
【００３８】
再符号化部１１２は、第２のメモリ１０７に格納された符号化データ（可逆符号化データ）中の、符号化シーケンス部１１０より指定された範囲の符号化データを再符号化する。この再符号化部１１２は例えば図１９の構成になる。
【００３９】
第２のメモリ１０７には第２の符号化部（ＪＰＥＧ−ＬＳ符号化部）１０３で符号化された符号化データが格納されているので、先ず、ＪＰＥＧ−ＬＳ復号部１１２ａで原画像の画素ブロックに復号（復元）する。そして、ＪＰＥＧ符号化部１１２ｂは、復元された画素ブロックを、符号化シーケンス制御部１１０より設定された量子化マトリクステーブルに従ってＪＰＥＧ符号化（非可逆符号化）を行う。そして、セレクタ１１２ｃはＪＰＥＧ符号化部１１２ｂから出力された非可逆符号化データと、再符号化する以前の状態の可逆符号化データの小さい方を選択し、出力する。この処理を符号化シーケンス制御部１０６より指定された範囲について繰り返し実行する。第２のカウンタ１１３は、再符号化部１１２の再符号化が開始される際にリセットされ、再符号化部１１２で生成される符号化データ量を累積カウントする。設定された範囲の再符号化が完了した場合、第２のカウンタに保持されている値（再符号化で生成された符号化データ量）は、符号化シーケンス制御部１１０に出力される。
【００４０】
以上、図１の構成について説明したが、全体の処理を更に詳しく説明すると次の通りである。
【００４１】
１ページの画像データの符号化を開始する際に、入力される画像サイズに応じた目標データ量が符号化制御部１１０に制御部１より設定される。符号化シーケンス制御部１１１は第１の符号化部１０２に対して初期の量子化マトリクステーブルＱ０（最高画質且つ最低圧縮率に相当する符号化パラメータ）を設定し、第１のカウンタ１１１をゼロクリアする。そして、第１の符号化部１０２、第２の符号化部１０３に対して符号化処理を開始させる。以下は、１ページの画像データの入力と符号化処理の説明である。
【００４２】
第１の符号長検出部１０８及び第２の符号長検出部１０９より、同じ画素ブロックに対する符号化データが出力されると共に、第１、第２の符号長検出部１０８、１０９でそれぞれの符号長が得られる。符号化シーケンス制御部１１０は、小さい方の符号長を選択し、第１のカウンタ１１１に加算させる。このとき、いずれを選択したのかを示す制御信号を第１のメモリ制御部１０４に出力する。なお、２つの符号化長が同じであった場合には、可逆符号化データを選択したことを示す制御信号を出力する。
【００４３】
第１のメモリ制御部１０４には、符号化シーケンス制御部１１０より上記の制御信号を受け取り、符号長の短いと判定された符号化データを選択し、第１のメモリ１０５に格納する。
【００４４】
以上の結果、第１のメモリ１０５には、画像データの各画素ブロックについて符号長の短い符号化データが格納されていく。つまり、第１のメモリ１０５には、可逆符号化データと非可逆符号化データが混在して格納されていく。一方、第２のメモリ１０７には可逆符号化データのみが格納されていくことになる。
【００４５】
ここで注意したい点は、第１のカウンタ１１１には第１のメモリ１０５に格納される符号化データの総符号量の情報が格納されることである。
【００４６】
符号化シーケンス制御部１１０は、１ページ分の画像の符号化処理が進行中、第１のカウンタ１１１の値、すなわち、第１のメモリ１０５に格納される符号化データの総量を監視し、目標データ量を超えた（到達も含む）か否かを判定する。そして、第１のカウンタ１１１に格納された値（総符号量）が、目標データ量を超えたと判定した場合、符号化シーケンス制御部１１０は次の処理を行う。
１．第１のメモリ１０５内の格納済みのデータを廃棄するよう第１のメモリ制御部１０４に制御信号を出力する。第１のメモリ制御部１０４は、この制御信号に基づいて、メモリアドレスカウンタをクリアするか、あるいは、符号化データ管理テーブルをクリアすることにより、格納された符号化データを廃棄する。
２．第１のカウンタ１１１をゼロクリアする（入力部１０１からの画像の入力は継続している）。
３．第１の符号化部１０２に対して、今までより高い圧縮率で符号化を行うようにするため、量子化マトリクステーブルを更新する。すなわち、従前にセットされた量子化マトリクステーブルがＱiであった場合には、Ｑi+1をセットする。初期状態ではＱ０がセットされていたので、最初に目標量を超えたと判定した場合にはＱ１がセットされることになる。
４．第２のカウンタ１１３をゼロクリアし、再符号化部１１２に量子化マトリクステーブルＱi+1をセットし、第２のメモリ１０７に格納されている符号化データの再符号化を開始させる。再符号化して得られた符号化データ（可逆・非可逆符号化データが混在している）は、第２のメモリ１０７に再格納する。なお、第２のメモリ１０７には、第２の符号化部１０３からの符号化データも格納されているので、両者は区別して格納される。
５．再符号化が完了した場合、第２のメモリ１０７に「再」格納された符号化データを、第１のメモリ１０５に転送すると共に、第２のメモリより削除する（符号化部１０３からの符号化データは削除しない）。そして、第２のカウンタ１１３の値を読出し、第１のカウンタ１１１に足し込む。この結果、第１のカウンタ１１１は再び第１のメモリに格納された符号化データの総量を示すことになる。
【００４７】
なお、再符号化処理が終了したかどうかは、第２のメモリ制御部１０６が検出する。すなわち、再符号化処理するために読み出すデータが無くなれば、再符号化処理の終了を符号化シーケンス制御部１１０に知らせる。実際には、第２のメモリ制御部１０７の読み出し処理だけでなく、再符号化部１１１の処理も終了した後に、符号化処理が完了したことになる。
【００４８】
そして１ページの画像の入力と符号化が完了する前に再び総符号化データ量が目標データ値を超えたと判断した場合、上記工程１乃至５を実行する。従って、最終的に、第１のメモリ１０５には目標データ量以下の符号化データが格納されることになる。
【００４９】
上記、図１の構成における符号化シーケンス制御部１１０の処理手順を図９のフローチャートに示すが、説明を簡単にするために、簡略化した図３のフローチャートに従ってまず、説明する。
【００５０】
図３のフローチャートは、大別すると、下記の３つの処理フェーズに分かれる。
（１）  符号化フェーズ
（２）  符号化・再符号化フェーズ
（３）  転送フェーズ
上記それぞれの処理フェーズにおいて、どのように画像データ、符号化データ等が流れて処理され、メモリにどのように格納されるのかを視覚的にわかりやすく示したのが図４乃至図８である。
【００５１】
図４は、図３のフローチャートにおけるステップＳ３０３とＳ３０５に対応する符号化フェーズの初期状態を表す。なお、図４におけるスイッチ４０は、第１の符号化部１０２からの符号化データと第２の符号化部１０３からの符号化データのうち、符号長の短い方を選択することを示している。このスイッチ４０は、符号化シーケンス制御部１１０及び第１のメモリ制御部１０４の機能で実現することになる。第１のメモリ１０５には２つの符号化部の符号データのうち符号長の短い方が格納される。従って、第１のメモリ１０５に格納されるデータ量Ｉは、第２のメモリ１０７に格納されるデータ量Ｉ’よりも少ない関係が維持されることになる。
【００５２】
図５は、ステップＳ３０９で量子化マトリクステーブルを変更した際の状態を示している。図示のように、第１のメモリ１０５内の符号化データはない。
【００５３】
図６は、ステップＳ３１１〜Ｓ３１５に対応する符号化・再符号化フェーズの処理状態を示し、図７はステップＳ３１７に対応する転送フェーズの処理状態を、図８は転送フェーズ後の符号化フェーズの処理状態を表す。以下、各フェーズについて説明する。
【００５４】
＜＜符号化フェーズ＞＞
１ページ分の画像データの符号化処理は、符号化パラメータの初期設定処理（ステップＳ３０１）から始まる。ここでは、符号化処理する画像サイズ（ページ記述レンダリング等の入力部１０１から読み取る用紙サイズ）から一意的に定まる符号化データ量の目標データ量や第１の符号化部１０２に適用する量子化マトリクステーブルＱ０を設定する処理である。
【００５５】
この後、ステップＳ３０３にて、第１の符号化部１０２及び第２の符号化部１０３にて符号化処理を開始させる。この結果、第１のメモリ１０５には、画素ブロック単位に、第１の符号化部１０２からの符号化データ及び第２の符号化部１０３からの符号化データのうち符号長の短い一方の符号化データを格納されていく。第１のメモリ１０５に格納されている符号化データ量は、第１のカウンタで計数する点は既に述べた通りである。一方、第２のメモリ１０６には、第２の符号化部１０３からの符号化データが格納されていくことになる。図４は、この状況を示している。第１のメモリ１０５に格納されるデータ量を示す領域Ｉは、少なくとも第２のメモリ１０７に格納されるデータ量を示す領域Ｉ’以下のなる。
【００５６】
次にステップＳ３０５にて、該データ量のカウント値が上記目標値をオーバーしたかどうかを検知し、オーバーしていなければステップＳ３０３の第１の符号化と第２の符号化処理を継続する。これが、初期状態の符号化フェーズである。
【００５７】
＜＜符号化・再符号化フェーズ＞＞
符号化処理が進行し、第１のメモリに格納される総符号データ量が目標量をオーバーすると、ステップＳ３０７にて第１のメモリ１０５内の符号化データを廃棄すると共に、ステップＳ３０９にて、第１の符号化部１０２に設定されていた量子化マトリクステーブルＱ０を、次の段階のＱ１に更新する。総符号化データ量が目標データ量をオーバーするということは、圧縮後のデータ量が目標以内に収まらないことを意味する。よって同じ量子化ステップを用いて符号化処理を継続しても意味がないので、前よりも量子化ステップ幅の大きい量子化ステップＱ１に変更するわけである。
【００５８】
量子化ステップを変更した後、ステップＳ３１１では、第１の符号化部１０２と第２の符号化部１０３の符号化処理を再開する。また、再符号化部１１２に量子化マトリクステーブルＱ１（第１の符号化部にセットした更新後の量子化マトリクステーブルと同じ）をセットし、第２のメモリに格納されている符号化データ量の再符号化を開始しさせ、再符号化結果を再び第２のメモリに格納させる。この状態を示すのが図５である。
【００５９】
そして、ステップＳ３１５で再符号化の処理が完了するまで待つことになる。
【００６０】
＜転送フェーズ＞
ステップＳ３１５にて、再符号化が完了したと判断した場合、第１メモリ１０５及び第２のメモリ１０７の符号化データの格納状況を示すのが図６である。図示において、領域ＩＩ、ＩＩ’は、再符号化処理を行っている最中に、新に入力した画像データに対応する符号化データを示し、領域Ｉは、領域Ｉ’に格納されていた符号化データを再符号化した結果（非可逆符号化データと可逆符号化データが混在している）を示している。
【００６１】
ステップＳ３１７では、図７に示すように、第２のメモリ１０７に格納された再符号化データ（図示の領域Ｉ）を、第１のメモリ１０５に転送する。この転送が完了すると、第２のメモリ１０７内の領域Ｉのデータは破棄（もしくは上書きを許容）する。
【００６２】
上記転送フェーズが終了したら、ステップＳ３０３，Ｓ３０５の符号化フェーズに戻り、符号化フェーズに戻ることになる。この結果、図８に示すように、新たな入力画像データに対する符号化データＩＩＩ、ＩＩＩ’をそれぞれのメモリへの格納処理を行うことになる。この符号化フェーズは、初期状態の符号化フェーズ（図４）と少し異なり、第１の符号化部１０２で符号化する際の量子化ステップがＱ０からＱ１に変更されていると共に、第１のメモリ１０５に格納される符号化データの順序が、画像入力順にならない点である。それらの違いを無視すれば、転送フェーズ直後の符号化フェーズと初期状態の符号化フェーズは、同じと見なせる。なお、図８に示すように、符号化データの順番は必ずしも時系列になるとは限らないが、各フェーズにおける各脳アドレスを別途記憶しておき、１ページの符号化処理が完了し２次記憶装置７に出力する際には、第１のメモリ１０５より時系列に符号化データを読出し、出力するようにすれば良い。
【００６３】
よって、符号化フェーズ、符号化・再符号化フェーズと転送フェーズの３つを繰り返すことで、最終的に１ページの画像データをデータ量設定値以下に圧縮した符号を第１のメモリ１０５に格納することが出来る。しかも、入力部１０１は一連の処理が終わるまで、入力を継続するだけである。すなわち、画像を再度最初から入力し直すということが無くなる。
【００６４】
図３に示したフローチャートは、説明が理解しやすいように、図４乃至図８に示した各フェーズに対応する処理のみを記述した。しかしながら実際には、１ページの画像データの入力はどこかのフェーズで終了する。従って、どのフェーズで終了したかによって、それ以降の対応も多少異なる。それを考慮した流れを示したのが図９のフローチャートである。図９のフローチャートは、１ページ分の画像データの入力完了と図３で説明した各種処理との関係を考慮したものであり、ここでは図３のフローチャートに、ステップＳ８０１、Ｓ８０３、Ｓ８０５、Ｓ８０７を追加している。
【００６５】
ステップＳ８０１、Ｓ８０３、Ｓ８０５は、それぞれ、符号化フェーズ、符号化・再符号化フェーズ、転送フェーズにおいて、入力部１０１からの１ページ分の画像データの入力が終了したことを検知する。
【００６６】
符号化フェーズと転送フェーズで１ページ分の画像データの入力が終了したことを検知した場合（ステップＳ８０１、Ｓ８０５）、ステップＳ８０７へ移り、当該ページの圧縮符号化処理を終了し、次に処理すべき１ページ以上の画像データがあれば、次の１ページ分の画像データの圧縮符号化処理を開始し、無ければ停止状態に入る。
【００６７】
一方、符号化・再符号化フェーズで１ページ分の画像データの入力終了を検知した場合（ステップＳ８０３）には、第１の符号化部１０２、第２の符号化部１０３では再符号化処理する画像データが無くなるまで一旦動作を止める必要があるので、ステップＳ３１１の符号化処理をパスし、ステップＳ３１３で、今までに第１の符号化部１０２、第２の符号化部１０３で符号化済みの画像データを所定の符号化データ量に抑える為の再符号化処理のみを継続して行なう。再符号化処理が全て終了して、その後の転送処理が終わらないと、１ページ分の画像データ全体の符号化データが第１のメモリ上に集まらないため、１ページ分の画像データの入力終了後も再符号化処理及びそれに続く転送処理は継続して行われる必要がある。この場合には、ステップＳ３１５にて、再符号化処理が全て終了したことを検知すると、符号化・再符号化フェーズ中に、第２のメモリ１０７のみに格納された符号化データを第１のメモリに転送し（ステップＳ３１７）た後、次のステップＳ８０５にて、１ページ分の画像データの入力終了が検知されてステップＳ８０７へ移ることになる。
【００６８】
以上が実施形態における動作であり、図９の動作説明でもある。
【００６９】
以上説明したように、非可逆符号化データを生成する第１の符号化部１０２、可逆符号化データを生成する第２の符号化部１０３という異なる符号化技術を用いながらも、１ページの画像を入力を中断することなく、且つ、再入力を行うことなく、目標符号化データ量以下の符号化データを生成することが可能となる。
【００７０】
特に、注目したい点は、ＪＰＥＧとＪＰＥＧ−ＬＳという２つの技術を併用している点である。ＪＰＥＧ符号化は自然画に対して圧縮効率が高いことが知られている。一方、ＪＰＥＧ−ＬＳ符号化は、文字線画に対して高い圧縮率が得られるし、可逆符号化であるため原画像を忠実に再現することが可能である。
【００７１】
かかる点から、実施形態における画像符号化処理部６は次のような作用効果が期待できることになる。なお、以下では目標符号データ量は、１ページ全体が自然画である場合を想定したものとする。
１．原稿が文字のみで構成される通常原稿の場合、第１のメモリ１０５に格納される画素ブロック単位の符号化データとしては、第２の符号化部１０３からのＪＰＥＧ−ＬＳ符号化データ（可逆符号化データ）が選択される可能性が高くなる。また、その際の圧縮率は非常に高いものであり、総符号化データ量が目標符号量をオーバーしないまま符号化が完了することが期待できる。また、可逆符号化データであるので、印刷結果も原画像に忠実なものとなり、印刷結果の画質は符号化が介在しないのと実質的に等価のものとなる。
２．原稿が自然画のみである場合、第１のメモリ１０５に格納される符号化データとして、第１の符号化部１０２からのＪＰＥＧ符号化データ（非可逆符号化データ）が選択される可能性が高くなる。また、目標データ量をオーバーする回数も、数回になる可能性がある。しかし、もともと自然画であるため階調性が画質を決めるファクタであるので、実害のない画質で印刷が可能となる。
３．原稿が自然画と文字が混在している場合、文字線画領域ではＪＰＥＧ−ＬＳ符号化データが選択される可能性が高く、自然画ではＪＰＥＧ符号化データが選択される可能性が高くなる。文字線画領域では、圧縮効率が高いＪＰＥＧ−ＬＳ符号化が選択される可能性が高いわけであるから、１ページを占める自然画領域と文字線画の比以上に、自然画領域に割り当てる符号化データ量を大きくすることができることを意味する。つまり、写真画像の量子化ステップの値は比較的小さなままで、符号化処理が完了することが期待できるので、文字線画は勿論のこと、写真画像領域の画質劣化を抑制することが可能になる。
４．更に、上記１乃至３を、像域判定回路等の格別な回路構成無しに、実現できることも大きな利点である。
【００７２】
ここで、
第１カウンタ１１１（符号量）の時間軸の推移の一例を図１３に示す。
【００７３】
図示の場合、タイミングＴ０で、原稿画像の入力を開始し、タイミングＴ５で原稿画像の入力が完了した場合を示している。入力される原稿のサイズが固定であれば、タイミングＴ５は固定となる。以下、各タイミングでの処理を説明する。
【００７４】
タイミングＴ０：
画像入力開始（符号化開始）タイミングである。このとき、第１の符号化部１０２には、初期値として量子化マトリクステーブルＱ０をセットし、第１カウンタ１１１は“０”に初期化される。この後、画像の入力及び符号化が継続すると、画像データの符号化データの符号化が行われ、第１カウンタ１１１のカウント値は徐々に増えていく。
【００７５】
タイミングＴ１：
画像データの符号化データ量が、目標符号量に到達した場合を示している。このとき、第１のメモリ１０５の画像データの符号化データは破棄し、第１カウンタ１１１をゼロクリアし、第１の符号化部１０２にセットされていた量子化マトリクステーブルをＱ１に更新する。また、再符号化部１１２にも量子化マトリクステーブルＱ１をセットし、再符号化処理を開始させる。
【００７６】
タイミングＴ２：
再符号化及び転送処理の完了を示している。再符号化が完了すると、再符号化して得られた符号データが第２のメモリ１０７から第１のメモリ１０５に転送されると共に、再符号化データ量を示す第２のカウンタ１１３の値が、第１のカウンタ１１１に足し込まれる。この結果、第１のメモリ１０５及び第２のメモリ１０７には、１ページの先頭からタイミングＴ２までの間に入力した画像データに対する量子化マトリクステーブルＱ１で符号化したのと等価の符号化データが格納される。
【００７７】
タイミングＴ３：
再び、画像データの符号化データ量が、目標符号量に到達した場合を示している。このとき、第１のメモリ１０５の画像データの符号化データは破棄し、第１カウンタ１１１をゼロクリアし、第１の符号化部１０２の量子化マトリクステーブルをＱ２をセットする。また、再符号化部１１２にも量子化マトリクステーブルＱ２をセットし、再符号化処理を開始させる。
【００７８】
タイミングＴ４：
再符号化及び転送処理の完了を示している。再符号化が完了すると、再符号化して得られた符号データが第２のメモリ１０７から第１のメモリ１０５に転送されると共に、再符号化データ量を示す第２のカウンタ１１３の値が、第１のカウンタ１１１に足し込まれる。この結果、第１のメモリ１０５及び第２のメモリ１０７には、１ページの先頭からタイミングＴ２までの間に入力した画像データに対する量子化マトリクステーブルＱ２で符号化したのと等価の符号化データが格納される。
【００７９】
タイミングＴ５：
１ページの原稿入力の完了を示している。この場合、第１のメモリ１０５には、１ページの画像の符号化データが格納されていることになるので、その結果を、２次記憶装置７に出力する。
【００８０】
ここで、２枚めの原稿画像を読取る場合には、上記タイミングＴ１からの処理を繰り返すことになる。
【００８１】
なお、画像によっては、原稿画像の入力が完了したタイミングＴ５の直前にて、第１カウンタ１１１の値が目標量をオーバーすることも有り得る。この場合、タイミングＴ５の後に、再符号化及び転送処理が行われることになる。従って、第１のメモリ１０５に格納された符号化データを２次記憶装置７に出力する条件は、原稿画像の入力が完了し、且つ、符号化（再符号化及び転送）が完了した場合となる。
【００８２】
また、再符号化１１２による再符号化しようとする符号化データ量は、第１カウンタ１１１の値が目標データ値をオーバーする回数を重ねるほど、多くなる傾向にある。換言すれば、目標値をオーバーする回数が少ないほど、符号化処理に要する時間が少ないことになる。
【００８３】
＜メモリ格納方法の変形例１＞
図２は、図１に対する変形例である。図１と異なる点は、再符号化部１１２で再符号化して得られた符号化データの格納先を、第１のメモリ１０５にした点である。これ以外の構成は図１と同じである。
【００８４】
図１０は、第１のメモリ１０５に格納された総符号化データ量が目標データをオーバーし、第１のメモリ１０５内のデータを破棄し、第２のメモリ１０７に格納されている符号化データ（図示の領域Ｉ’）の再符号化を開始する際の状態を示している。
【００８５】
図示に示すように、再符号化部１１２の再符号化の格納先は第１のメモリ１０５に設定して、再符号化を開始させる。
【００８６】
図１１は、再符号化が完了した際の２つのメモリの符号化データの格納状態を示している。再符号化が完了すると、図示のように、第１のメモリ１０５には、領域Ｉで示す符号化データが格納される。この領域Ｉの符号化データは、目標データ量をオーバーしたと判定する以前までに入力した画像データを、量子化マトリクステーブルＱ１で符号化した場合に相当するものとなる。
【００８７】
再符号化が行われている最中にも、画像データの入力及び符号化が行われているので、図示に示すように領域ＩＩ及びＩＩ’が存在する。
【００８８】
第１のメモリ１０５には、空き領域１０５ａが生成されることになるので、図示の領域ＩＩの符号化データを、領域Ｉの後端位置にまで移動させる。この後、符号化フェーズを再開することになり、この際のメモリへの格納状態は図１２に示すようになる。
【００８９】
図１に対して図２の構成のメリットは、再符号化後のデータ転送が実質的に無くなる点である。
【００９０】
なお、この変形例では、転送フェーズが無くなるだけであるので、先の説明と本変形例は、３つのフェーズを繰り返して処理することに変わりは無い。従って、処理の内容も図３や図９と殆ど同じであるので、説明は不要であろう。なお、図１１では空き領域１０５ａを無くすために、第１のメモリ１０５内での移動を行ったが、各領域の接続関係を管理するファイル管理テーブル、或いは、パケット管理テーブル等を設ければ良いので、必ずしも内部転送は必要ではない。
【００９１】
＜メモリ格納方法の変形例２＞
上記第１の実施形態及び変形例１では、第１のメモリ１０５内の符号化データ量が目標データ量をオーバーした際に、第２のメモリ１０７の符号化データを再符号化部１１２で再符号化した。換言すれば、再符号化部１１２は、第１のメモリ１０５内の符号化データ量が目標データ量未満である期間は実行しないことになる。
【００９２】
そこで、期間を有効利用する例を変形例２として説明する。
【００９３】
以下は、第１のメモリ１０５内の符号化データ量が目標データ量未満の場合であって、第２のメモリ１０７に第２の符号化部１０３からの可逆符号化データが格納されていく最中の処理の説明である点に注意されたい。また、条件として、第１の符号化部１０２に設定される量子化マトリクステーブルがＱiであるものとして説明する。
【００９４】
第２のメモリ１０７に第２の符号化部１０３より可逆符号化データを格納していくのは、これまでの実施形態と同じである。但し、再符号化部１１２は、格納されている可逆符号化データから順に読出し、量子化マトリクスＱi+1で再符号化して非可逆符号化データを生成し、その結果を第２のメモリ１０７に格納していく処理を前倒し的に行う。
【００９５】
この結果、第１のメモリ１０５内の符号化データが目標データ量をオーバーしたとき、第２のメモリ１０７には可逆符号化データは勿論のこと、ある程度の非可逆符号化データが存在することが約束されるので、同一画素ブロック位置であれば小さいほうを第１のメモリに転送し、比べる対象となる非可逆符号化データが存在しない画素ブロックについてだけ、図２０による処理を行えば良いことになる。
【００９６】
また、第２のメモリ１０７から第１のメモリ１０５への転送が完了した場合、第２のメモリ内に格納されていた非可逆符号化データを破棄し、今度は、量子化マトリクスＱi+2を設定し、再符号化することを開始すればよい。以上の結果、再符号化に係る処理を更に短縮させることが可能になる。
【００９７】
＜第２の実施形態＞
先に説明した第１の実施形態では、１ページの画像入力中に符号化データ量（第１のカウンタ１１１の値）が目標値をオーバーした際に一旦ゼロクリアした。そして、第１のカウンタ１１０が再び正確な総符号量を保持するのは、再符号化部１１２による再符号化が完了した場合になる。つまり、図１３におけるタイミングＴ１−Ｔ２間、及び、Ｔ３−Ｔ４間では、一時的に、符号化データ量が不明な状態になる。また、タイミングＴ５で原稿画像の入力が終了したとしても、たまたまタイミングＴ５の直前で、総符号量が目標値をオーバーした場合には、再符号化部１１２による再符号化が完了しない限り、次の原稿画像の入力が行えない。
【００９８】
本第２の実施形態では、上記の問題を解決する。本第２の実施形態における符号化処理部６の構成を図１４に示す。
【００９９】
図１との違いは、ＪＰＥＧ（非可逆）符号化部としての第３の符号化部１１４、第３の符号化部１１４で生成される画素ブロックの符号長を検出する第３の符号長検出部１１５、第３のカウンタ１１６、第３のメモリ制御部１１７及び第３のメモリ１１８を設けた点にある。また、第３の符号化部１１４は、生成する符号化データの先頭にＪＰＥＧ符号化（非可逆符号化）であることを示すビットを付加する点は第１の実施形態と同じである。
【０１００】
また、図１では非可逆（ＪＰＥＧ）符号化を行うＪＰＥＧ符号化部が１つであったのに対し、本第２の実施形態の図１４に示す如く、第１の符号化部１０２、第３の符号化部２０２の２つになり、これら２つの非可逆符号化部が並行して符号化処理を行う。また、第１の符号化部１０２と第３の符号化部１１４との違いは、設定するパラメータにある。つまり、第１の符号化部１０２に設定されていた量子化マトリクステーブルをＱiとしたとき、第３の符号化部１１４には常に１段階大きな量子化マトリクステーブルＱi+1を設定する。１ページの符号化開始の初期段階では、第１の符号化部１０２にセットする量子化マトリクステーブルはＱ０であり、第３の符号化部１１４にセットする量子化マトリクステーブルはＱ１となる。
【０１０１】
また、第１の符号化部１０２、第２の符号化部１０３、第３の符号化部１１４はそれぞれ同じタイミングで同じ画素ブロックについて符号化処理を行い、ほぼ同時に符号化データを生成し、出力するものとする。
【０１０２】
さらにまた、第２の符号化部１０３から出力される可逆符号化データは第３のメモリ制御部１１７を介して無条件に第３のメモリ１１８に格納する。また、１ページの符号化が完了した場合、第１のメモリ１０５に格納されている符号化データが最終的に求める符号化データとなるのは第１の実施形態と同様である。
【０１０３】
以下、図１４の構成における符号化シーケンス制御部１１０の処理概要を説明する。
【０１０４】
本第２の実施形態における符号化シーケンス制御部１１０における画素ブロック単位の基本処理は次の通りである。
１．第１の符号化部１０２にセットする量子化マトリクステーブルをＱｉとしたとき（初期段階ではＱ０）、第３の符号化部１１４には常に１段階大きな量子化マトリクステーブルＱi+1（初期段階ではＱ１）をセットする。
２．第１の符号化部１０２から出力される非可逆の符号化データと第２の符号化部１０３から出力される可逆の符号化データの小さい方が第１のメモリ１０５に格納されるよう、第１のメモリ制御部に制御信号を出力する。また、第１のカウンタ１１１には、２つの符号化データの符号長のうち短い方を累積加算する。つまり、第１のカウンタ１１１には、第１の実施形態と同様、第１のメモリ１０５に格納されている符号化データ量を示す情報が格納されることになる。
３．第３の符号化部１１４から出力される非可逆符号化データと第２の符号化部１０３から出力される可逆符号化データの小さい方を第２のメモリ１０７に格納するよう制御信号を出力する。また、第３のカウンタ１１６には、２つの符号化データの符号長のうち短い方を累積加算する。
【０１０５】
次に、１ページの符号化処理中の符号化シーケンス制御部１１０の処理の概要を説明する。
【０１０６】
符号化シーケンス制御部１１０は、第１のカウンタ１１１の値（第１のメモリ１０５に格納された符号化データ量）が目標データ量をオーバーしたか否かを判定する。目標データ量をオーバーしないと判定し、１ページの符号化処理が完了した場合には、第１のメモリ１０５内に格納された符号化データを、実施形態における符号化処理部６の符号化結果として２次記憶装置７に出力する。
【０１０７】
一方、第１のカウンタ１１１の値が、目標データ量をオーバーしたと判定した場合、符号化シーケンス制御部１１０は次の各工程を行う。
工程１：第１のメモリ１０５内の画像データの符号化データを破棄するよう第１のメモリ制御部１０４に要求する。
工程２：第２のメモリ１０７に格納された符号化データ（量子化マトリクステーブルＱi+1による非可逆符号化データと可逆符号化データが混在したデータ）を第１のメモリ１０５に転送する。これに伴い、第１のカウンタ１１１の値を第３のカウンタ１１６の値で更新する（第１のカウンタ１１１に第３のカウンタ１１６の値を上書きする）。
工程３：第２のメモリ１０７から第１のメモリ１０５への転送が完了した場合、第２のメモリ１０７内のデータを破棄するよう第２のメモリ１０６に制御信号を出力する。
工程４：第１の符号化部１０２への量子化マトリクステーブルをＱi+1に更新し、第３の符号化部１１４への量子化マトリクステーブルをＱi+2に更新し、符号化を継続させる。
工程５：再符号化部１１２に量子化マトリクステーブルＱi+2（更新後の第３の符号化部１１４の量子化マトリクステーブルと同じ）をセットし、第３のメモリ１１８に格納された可逆符号化データを再符号化させる。再符号化部１１２は、第１の実施形態と同じ構成であるので、その説明は省略する。再符号化処理で得られた符号化データは、第３のメモリに再格納する。このとき、再符号化処理で生成された符号化データ量は第２のカウンタ１１３に格納される。
工程６：工程５の再符号化が完了したら、その再符号化処理して得られた符号化データを第２のメモリに転送し、第２のカウンタ１１３の値を、第３のカウンタ１１６に加算する。
【０１０８】
上記工程１乃至６において、工程１乃至５は、入力部１０１による画像データの入力に対して十分に高速に処理可能である。従って、図９におけるタイミングＴ１−Ｔ２間、或いは、Ｔ３−Ｔ４間のように、符号化データ量が不明な期間は短いものとすることができる。特に、工程２での第１のカウンタ１１１の更新処理は、転送処理が完了する以前に行っても構わない。この場合には、符号化データ量が不明な期間は実質的に無いものとすることが可能になる。
【０１０９】
なお、図９のタイミングＴ５の直前において、第１のカウンタ１１１で示される符号化データ量が目標値をオーバーした場合、上記工程１から処理が開始されるものの、工程２まで完了すれば、求める符号化データを第１のメモリ１０５に格納したことになるので、２次記憶装置７に書き込みを行い、工程３以降の処理は行わず、次ページの読み込みと符号化処理を開始して構わない。
【０１１０】
以上、図１４の構成における動作概要を説明した。本第２の実施形態のように、２つの非可逆符号化部と、１つの可逆符号部を並行して設ける場合は、図１５に示すフローチャートに基づいて１ページ分の画像データの符号化を行うことになる。
【０１１１】
なお、図１５の処理は、その大半の処理が図９と類似しているので、３つのフェーズで処理を説明する様にし、図９と異なる点を主に説明することとする。
【０１１２】
上述した図９のフローと本第２の実施形態のフローとの一番大きな違いは、ステップＳ３１７における第２のメモリ１０７から第１のメモリ１０５への転送処理が、ステップＳ３０７とステップＳ３０９の間に移動している点、この転送処理が終わった際に、第２のメモリ１０７内のデータを破棄する処理（ステップＳ３２０）が追加された点、並びに、再符号化処理が完了した場合に第３のメモリから第２のメモリへの転送処理（ステップＳ３２１）が追加された点である。
【０１１３】
ステップＳ３０１の符号化パラメータの初期設定では、第１の画像符号化部１０２に設定すべき初期量子化マトリクステーブルＱ０を決定し、第３の画像符号化部１１４はそれより１段階大きなＱ２を設定する。
【０１１４】
符号化フェーズでは、ステップＳ８０１、Ｓ３０３、Ｓ３０５を繰り返し実行する。図１６は、符号化フェーズにおける第１乃至３のメモリの符号化データの格納状態を示している。図示において、スイッチ４０は第１の実施形態と同じ意味である。スイッチ４１は第２のメモリ制御部１０６及び符号化シーケンス制御部１１０によって構成されるものである。すなわち、スイッチ４１は、画素ブロック単位に、第１の符号化部１０２及び第２の符号化部１０３それぞれより出力される符号長の短い符号化データを選択し、第１のメモリ１０５に格納する。スイッチ４１は、画素ブロック単位に、第３の符号化部１１４及び第２の符号化部１０３それぞれより出力される符号長の短い符号化データを選択し、第２のメモリ１０７に格納する。そして、第３のメモリ１１８には第２の符号化部１０３からの符号化データを無条件に格納する。
【０１１５】
今、図１６において、第１のメモリ１０５に格納された符号化データ量（図示の領域Ｉ）が、目標値をオーバーした場合を考察する。つまり、ステップＳ３０５にて、目標データ量をオーバーしたと判定された場合である。
【０１１６】
このとき、第１のメモリ１０５に保持していた符号化データを廃棄し（ステップＳ３０７）、第２のメモリ１０７で保持している圧縮率の高い符号化データ（領域Ｉ’）を、第１のメモリ２０４へ転送すると共に、第３のカウンタ１１６の値を第１のカウンタ１１１に書き込む（ステップＳ３１７）。この転送後、第２のメモリ１０７に格納されている符号化データを破棄し、第３カウンタの値をゼロクリアする（ステップＳ３２０）。そして、第１の符号化部１０２に対して新たなに量子化マトリクステーブルＱ１を設定し、第２の符号化部１０３に対しても新たなに量子化マトリクステーブルＱ２を設定する（ステップＳ３０９）。
【０１１７】
図１７は、このステップＳ３０９の直後の各メモリの格納状況を示している。処理はステップＳ３１１にて、第１の符号化部１０２、第３の符号化部１１４、第２の符号化部１０３の処理を継続させることになる。つまり、第１の符号化部１０２は、新に設定された量子化マトリクステーブルＱ１で符号化を続行しすることになる。また、第２のメモリ１０７には、目標データ量をオーバーしたと判定された以降に入力される画像データの符号化データが格納されるものの、それ以前の符号化データは存在しないことになる。
【０１１８】
そこで、第３のメモリ１１８に格納されている図１６の領域Ｉ”の符号化データ（可逆符号化データ）について再符号化部１１２で再符号化を開始させる。再符号化部１１２の構成は第１の実施形態で説明したものと同じであるが、設定する量子化マトリクステーブルは第３の符号化部１１４にセットした量子化マトリクステーブルと同じＱ２にする。再符号化処理で得られた符号化データは、再び第３のメモリ１１８に格納する。
【０１１９】
図１８は、再符号化処理が完了したと判定した直後の各メモリの格納状態を示している。図示のように、第３のメモリ１１８には、同図の領域Ｉ”に相当する再符号化データ（図示の領域Ｉ’）が格納されている。再符号化処理には、多少の時間が必要であるため、図示のように領域ＩＩ、ＩＩ’、ＩＩ”のように符号化データが新に格納されることになる。
【０１２０】
さて、再符号化が完了すると、第３のメモリ１１８に格納された領域Ｉ’の符号化データを、第２のメモリ１０７に転送すると共に、再符号化の符号データ量を示す第２のカウンタ１１３の値を、第３のカウンタ１１６に足し込む（ステップＳ３２１）、そして、ステップＳ８０１以降の符号化シーケンスに戻ることになる。図１９は、符号化シーケンスに戻り、ある程度の符号化が進んだ状態を示している（図示の領域ＩＩＩ、ＩＩＩ’、ＩＩＩ”が増えている）。図１９において、第２のメモリ１０７内の領域Ｉ’とＩＩ’との間に空き領域が存在するが、メモリ１０７内での転送を行うことで空き領域がないようにしても構わない。但し、第２のメモリ１０７は、補助的なものである点、及び、次回、再び目標データ量を超えた場合には、図示の領域Ｉ’、ＩＩ’、ＩＩＩ’の符号化データを第１のメモリ１０５にその順番に転送すればよいので、問題は発生しない。
【０１２１】
以上第２の実施形態を説明した。本第２の実施形態によれば、第１のメモリ１０５内の符号化データ量が目標データ量をオーバーした場合に、オーバーする以前については、第２のメモリ１０７に格納された１段階高い圧縮率の高い符号化データそのまま使うことにより、第１のカウンタ１１１が不明な期間は実質的に無い、或いは短くでき、且つ、再符号化処理は、再び目標データ量をオーバーする以前であれば良いので、再符号化部１１２の処理は第１の実施形態ほど高速である必要もない。更に、図９のタイミングＴ５の直前にて、第１のカウンタ１１１の値が目標データ量をオーバーし、タイミングＴ５になったとしても、第２のメモリ１０７から第１のメモリ１０５への転送が完了していれば、それ以降の処理、すなわち再符号化処理は不要であり、すぐさま次のページの符号化が行えるようになる（図１５のステップＳ１２０１がＹＥＳの場合に相当する）。
【０１２２】
なお、上記第２の実施形態では、再符号化部１１２での再符号化結果を第３のメモリ１１８に格納したが、第１の実施形態における変形例と同様、再符号化結果を第２のメモリ１０７に格納するようにしてもよい。
【０１２３】
以上、本発明に係る第１、第２の実施形態を説明したが、第１のメモリ１０５、第２のメモリ１０７、及び、第３のメモリ１１８は物理的に別のメモリであるとして説明をしてきた。本発明においてはこれらのメモリを独立して設けることは十分に１つの特徴となる。しかしながら、これらのメモリを物理的に別のメモリとしない場合も本発明の範疇に含まれる。特に、メモリの転送スピードが、十分に高速な場合には物理的に１つのメモリ上に、第１のメモリ、第２のメモリ（及び第３のメモリ）に相当する２つ（或いは３つ）の領域を確保して、第１のメモリを第１のメモリ領域、第２のメモリを第２のメモリ領域と言い直して、これまでの説明を読み直せば、１つのメモリでも実現できることが分かる。
【０１２４】
また、１つのメモリで上記各実施形態を実現する場合には、前記転送フェーズで説明したデータ転送処理のいくつかは不要となる。その詳細はその都度容易に想像できるので説明は省略するが、前記２つの領域を厳密に別けて使用する場合、物理的に２つのメモリを持つ時と同じようにデータ転送処理が必要であるが、２つの領域間で同じデータを共有することになれば、データ転送処理が不要になるだけでなく記憶容量の削減も図れる。
【０１２５】
例えば、第２のメモリ領域で保持していた符号化データを、第１のメモリ領域へ転送する際、該符号化データが格納されている先頭アドレスとデータサイズの２つの情報を第２のメモリ制御部から第１のメモリ制御部へ転送するだけで、前記符号化データを転送したのと同じ効果が得られる。
【０１２６】
前記符号化データを、ファイル形式やパケット形式で格納している場合は、メモリ制御部の間で転送する情報は少し増え、該符号化データに関連する管理テーブル情報を転送する必要がある。
【０１２７】
なお、実施形態では、符号化対象を８×８画素ブロックサイズとして説明したが、このサイズも本発明を限定するものではない。要するに、２つ（或いはそれ以上でも良い）の異なる符号化技術を使って、同一の画像領域に対して生成された２種類の符号化データ量を比較できるようにすれば良い。例えば、ＪＰＥＧ符号化ではＮ×Ｍ画素ブロック単位に符号化を行い、ＪＰＥＧ−ＬＳが２Ｎ×２Ｍの画素ブロックを符号化対象とし得るのであれば、４つのＪＰＥＧ符号化データと１つのＪＰＥＧ−ＬＳ符号化データを比較するようにしても構わない。
【０１２８】
また、実施形態では、２種類の符号化技術として、非可逆符号化であるＪＰＥＧ、可逆符号化であるＪＰＥＧ−ＬＳを用いる例を説明した。この２つの符号化技術は、可逆、非可逆の違いがあると同時に、ＪＰＥＧは自然画に適した符号化技術であり、ＪＰＥＧ−ＬＳは文字線画やコンピュータグラフィックスに適したものであり、符号化効率の面でも相異なるものである。このように、可逆符号化／非可逆符号化、及び、文字線画／自然画の両方に対して相異なる性質を持つ２つの符号化技術を用いると、本願発明は有利に作用することがわかるであろう。
【０１２９】
また、上記第１、第２の実施形態では、図２２に示す複写機に適用した例を説明したが、例えばパーソナルコンピュータ等の汎用情報処理装置にイメージスキャナ等の画像入力装置を接続して符号化する場合にも適用できるのは明らかである。この場合、図３（又は図９）或いは図１５に示す処理に係るプログラムを実行すれば良いので、本願発明はかかるコンピュータプログラムをもその範疇とするのは明らかである。また、通常、コンピュータプログラムはＣＤＲＯＭ等のコンピュータ可読記憶媒体をそのコンピュータにセットし、システムにコピーもしくはインストールすることで実行可能になるわけであるから、当然、そのようなコンピュータ可読記憶媒体も本発明の範疇に含まれる。
【図面の簡単な説明】
【０１３０】
【図１】第１の実施形態における符号化処理部のブロック構成図である。
【図２】第１の実施形態における符号化処理部の変形例を示すブロック構成図である。
【図３】第１の実施形態における処理を簡略化して示したフローチャートである。
【図４】第１の実施形態における初期状態の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図５】第１の実施形態における符号化・再符号化フェーズの開示時のデータフローとメモリ内容を表わす図である。
【図６】第１の実施形態における符号化・再符号化フェーズの終了時のデータフローとメモリ内容を表わす図である。
【図７】第１の実施形態における転送フェーズにおけるデータフローとメモリ内容を表わす図である。
【図８】第１の実施形態における転送フェーズ後の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図９】第１の実施形態における処理の詳細を示すフローチャートである。
【図１０】図２の構成における符号化・再符号化フェーズの開始時におけるデータフローとメモリ内容を表わす図である。
【図１１】図２の構成における転送フェーズにおけるデータフローとメモリ内容を表わす図である。
【図１２】図２の構成における転送フェーズ後の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図１３】第１の実施形態における第１カウンタの値の推移の一例を示す図である。
【図１４】第２の実施形態における符号化処理部のブロック構成図である。
【図１５】第２の実施形態における処理手順を示すフローチャートである。
【図１６】第２の実施形態における初期状態の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図１７】第２の実施形態における目標データ量オーバー時におけるデータフローとメモリ内容を表わす図である。
【図１８】第２の実施形態における符号化・再符号化フェーズの完了時におけるデータフローとメモリ内容を表わす図である。
【図１９】第２の実施形態における符号化・再符号化フェーズ後の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図２０】実施形態における再符号化部のブロック構成図である。
【図２１】実施形態で用いる量子化マトリクステーブルを示す図である。
【図２２】実施形態が適用する複写機の構成図である。
【図１】
2006067117.tif 000003
【図２】
2006067117.tif 000004
【図３】
2006067117.tif 000005
【図４】
2006067117.tif 000006
【図５】
2006067117.tif 000007
【図６】
2006067117.tif 000008
【図７】
2006067117.tif 000009
【図８】
2006067117.tif 000010
【図９】
2006067117.tif 000011
【図１０】
2006067117.tif 000012
【図１１】
2006067117.tif 000013
【図１２】
2006067117.tif 000014
【図１３】
2006067117.tif 000015
【図１４】
2006067117.tif 000016
【図１５】
2006067117.tif 000017
【図１６】
2006067117.tif 000018
【図１７】
2006067117.tif 000019
【図１８】
2006067117.tif 000020
【図１９】
2006067117.tif 000021
【図２０】
2006067117.tif 000022
【図２１】
2006067117.tif 000023
【図２２】
2006067117.tif 000024