(57)【要約】【課題】  可逆符号化、非可逆符号化の双方を併用しつつも、１度の画像入力により目標データ量の符号化データを生成する。【解決手段】  符号化シーケンス制御部１１０は、非可逆（ＪＰＥＧ）符号化である第１の符号化部１０２、可逆（ＪＰＥＧ−ＬＳ）符号化である第２の符号化部１０３、第１のメモリ、第２のメモリ、及び再符号化部１１２を制御して、目標データ量以下の、可逆／非可逆符号化データが混在した符号化データを第１のメモリ１０５に格納する。補正処理部１２０は、第１のメモリ１０５に格納された符号化データの中で、その種類が孤立した符号化データを、周辺の種類と同じにして、出力する。【選択図】  図１
2006080794.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（更新後の第３の符号化部１１４の量子化マトリクステーブルと同じ）をセットし、第３のメモリ１１８に格納された可逆符号化データを再符号化させる。再符号化部１１２は、第１の実施形態と同じ構成であるので、その説明は省略する。再符号化処理で得られた符号化データは、第３のメモリに再格納する。このとき、再符号化処理で生成された符号化データ量は第２のカウンタ１１３に格納される。
工程６：工程５の再符号化が完了したら、その再符号化処理して得られた符号化データを第２のメモリに転送し、第２のカウンタ１１３の値を、第３のカウンタ１１６に加算する。
【０１３６】
上記工程１乃至６において、工程１乃至５は、入力部１０１による画像データの入力に対して十分に高速に処理可能である。従って、図９におけるタイミングＴ１−Ｔ２間、或いは、Ｔ３−Ｔ４間のように、符号化データ量が不明な期間は短いものとすることができる。特に、工程２での第１のカウンタ１１１の更新処理は、転送処理が完了する以前に行っても構わない。この場合には、符号化データ量が不明な期間は実質的に無いものとすることが可能になる。
【０１３７】
なお、図９のタイミングＴ５の直前において、第１のカウンタ１１１で示される符号化データ量が目標値をオーバーした場合、上記工程１から処理が開始されるものの、工程２まで完了すれば、求める符号化データを第１のメモリ１０５に格納したことになるので、２次記憶装置７に書き込みを行い、工程３以降の処理は行わず、次ページの読み込みと符号化処理を開始して構わない。
【０１３８】
以上、図１４の構成における動作概要を説明した。本変形例３のように、２つの非可逆符号化部と、１つの可逆符号部を並行して設ける場合は、図１５に示すフローチャートに基づいて１ページ分の画像データの符号化を行うことになる。
【０１３９】
なお、図１５の処理は、その大半の処理が図９と類似しているので、３つのフェーズで処理を説明する様にし、図９と異なる点を主に説明することとする。
【０１４０】
上述した図９のフローと変形例３のフローとの一番大きな違いは、ステップＳ３１７における第２のメモリ１０７から第１のメモリ１０５への転送処理が、ステップＳ３０７とステップＳ３０９の間に移動している点、この転送処理が終わった際に、第２のメモリ１０７内のデータを破棄する処理（ステップＳ３２０）が追加された点、並びに、再符号化処理が完了した場合に第３のメモリから第２のメモリへの転送処理（ステップＳ３２１）が追加された点である。
【０１４１】
ステップＳ３０１の符号化パラメータの初期設定では、第１の画像符号化部１０２に設定すべき初期量子化マトリクステーブルＱ０を決定し、第３の画像符号化部１１４はそれより１段階大きなＱ２を設定する。
【０１４２】
符号化フェーズでは、ステップＳ８０１、Ｓ３０３、Ｓ３０５を繰り返し実行する。図１６は、符号化フェーズにおける第１乃至３のメモリの符号化データの格納状態を示している。図示において、スイッチ４０は第１の実施形態と同じ意味である。スイッチ４１は第２のメモリ制御部１０６及び符号化シーケンス制御部１１０によって構成されるものである。すなわち、スイッチ４１は、画素ブロック単位に、第１の符号化部１０２及び第２の符号化部１０３それぞれより出力される符号長の短い符号化データを選択し、第１のメモリ１０５に格納する。スイッチ４１は、画素ブロック単位に、第３の符号化部１１４及び第２の符号化部１０３それぞれより出力される符号長の短い符号化データを選択し、第２のメモリ１０７に格納する。そして、第３のメモリ１１８には第２の符号化部１０３からの符号化データを無条件に格納する。
【０１４３】
今、図１６において、第１のメモリ１０５に格納された符号化データ量（図示の領域Ｉ）が、目標値をオーバーした場合を考察する。つまり、ステップＳ３０５にて、目標データ量をオーバーしたと判定された場合である。
【０１４４】
このとき、第１のメモリ１０５に保持していた符号化データを廃棄し（ステップＳ３０７）、第２のメモリ１０７で保持している圧縮率の高い符号化データ（領域Ｉ’）を、第１のメモリ２０４へ転送すると共に、第３のカウンタ１１６の値を第１のカウンタ１１１に書き込む（ステップＳ３１７）。この転送後、第２のメモリ１０７に格納されている符号化データを破棄し、第３カウンタの値をゼロクリアする（ステップＳ３２０）。そして、第１の符号化部１０２に対して新たなに量子化マトリクステーブルＱ１を設定し、第２の符号化部１０３に対しても新たなに量子化マトリクステーブルＱ２を設定する（ステップＳ３０９）。
【０１４５】
図１７は、このステップＳ３０９の直後の各メモリの格納状況を示している。処理はステップＳ３１１にて、第１の符号化部１０２、第３の符号化部１１４、第２の符号化部１０３の処理を継続させることになる。つまり、第１の符号化部１０２は、新に設定された量子化マトリクステーブルＱ１で符号化を続行しすることになる。また、第２のメモリ１０７には、目標データ量をオーバーしたと判定された以降に入力される画像データの符号化データが格納されるものの、それ以前の符号化データは存在しないことになる。
【０１４６】
そこで、第３のメモリ１１８に格納されている図１６の領域Ｉ”の符号化データ（可逆符号化データ）について再符号化部１１２で再符号化を開始させる。再符号化部１１２の構成は第１の実施形態で説明したものと同じであるが、設定する量子化マトリクステーブルは第３の符号化部１１４にセットした量子化マトリクステーブルと同じＱ２にする。再符号化処理で得られた符号化データは、再び第３のメモリ１１８に格納する。
【０１４７】
図１８は、再符号化処理が完了したと判定した直後の各メモリの格納状態を示している。図示のように、第３のメモリ１１８には、同図の領域Ｉ”に相当する再符号化データ（図示の領域Ｉ’）が格納されている。再符号化処理には、多少の時間が必要であるため、図示のように領域ＩＩ、ＩＩ’、ＩＩ”のように符号化データが新に格納されることになる。
【０１４８】
さて、再符号化が完了すると、第３のメモリ１１８に格納された領域Ｉ’の符号化データを、第２のメモリ１０７に転送すると共に、再符号化の符号データ量を示す第２のカウンタ１１３の値を、第３のカウンタ１１６に足し込む（ステップＳ３２１）、そして、ステップＳ８０１以降の符号化シーケンスに戻ることになる。図１９は、符号化シーケンスに戻り、ある程度の符号化が進んだ状態を示している（図示の領域ＩＩＩ、ＩＩＩ’、ＩＩＩ”が増えている）。図１９において、第２のメモリ１０７内の領域Ｉ’とＩＩ’との間に空き領域が存在するが、メモリ１０７内での転送を行うことで空き領域がないようにしても構わない。但し、第２のメモリ１０７は、補助的なものである点、及び、次回、再び目標データ量を越えた場合には、図示の領域Ｉ’、ＩＩ’、ＩＩＩ’の符号化データを第１のメモリ１０５にその順番に転送すればよいので、問題は発生しない。
【０１４９】
以上変形例３を説明した。本変形例３によれば、第１のメモリ１０５内の符号化データ量が目標データ量をオーバーした場合に、オーバーする以前については、第２のメモリ１０７に格納された１段階高い圧縮率の高い符号化データそのまま使うことにより、第１のカウンタ１１１が不明な期間は実質的に無い、或いは短くでき、且つ、再符号化処理は、再び目標データ量をオーバーする以前であれば良いので、再符号化部１１２の処理は第１の実施形態ほど高速である必要もない。更に、図９のタイミングＴ５の直前にて、第１のカウンタ１１１の値が目標データ量をオーバーし、タイミングＴ５になったとしても、第２のメモリ１０７から第１のメモリ１０５への転送が完了していれば、それ以降の処理、すなわち再符号化処理は不要であり、すぐさま次のページの符号化が行えるようになる（図１５のステップＳ１２０１がＹＥＳの場合に相当する）。
【０１５０】
なお、上記変形例３では、再符号化部１１２での再符号化結果を第３のメモリ１１８に格納したが、変形例１と同様、再符号化結果を第２のメモリ１０７に格納するようにしてもよい。
【０１５１】
以上、符号化処理部の３つの変形例を説明したが、それぞれにおいて、補正処理部１２０が同様の処理を行うことで、第１の実施形態と同様の作用効果を奏することができるのは明らかである。
【０１５２】
＜第２の実施形態＞
先に説明した第１の実施形態における補正処理部１２０は、孤立した可逆符号化データを無条件に非可逆符号化データに変換するものであった。
【０１５３】
ここで、注目したい点は、実施形態では、可逆符号化としてＪＰＥＧ−ＬＳを採用していることである。その関係から、孤立可逆符号化データの符号量が、所定閾値以下の符号化データ量である場合、その画素ブロックは文字線画等である確率が非常に高いことを意味している。このような状況は、自然画中に文字（撮影者の名前、日時）等が合成されている場合を考えると分かりやすい。
【０１５４】
このような状況にある場合、孤立可逆符号化データをＪＰＥＧ符号化で非可逆符号化データに変換してしまうと、文字線画としての先鋭度が失われ、逆に画質が劣化してしまうことになりかねない。そこで、本第２の実施形態では、孤立可逆符号化データを条件付きで非可逆符号化データに変換する例を説明する。
【０１５５】
符号化処理部６のブロック構成は、図１、図２、図１４のいずれでも構わない。従って、以下では、補正処理部１２０の処理についてのみ説明することとする。
【０１５６】
図２５は、第２の実施形態における補正処理部１２０の処理手順を示すフローチャートである。
【０１５７】
図２４と異なる点は、ステップＳ１７が追加された点であり、それ以外は図２４と同じである。すなわち、図示のステップＳ１７を追加することで、孤立している可逆符号化データであって、その符号化データ量が予め設定された閾値以下の場合には変換を行わず、閾値を越えた場合にのみ、非可逆符号化データに変換するものである。
【０１５８】
以上の結果、第１の実施形態に加えて、自然画中に文字線画等が存在した場合には、その部分の先鋭度が維持され、視認性を維持するという作用効果を奏することが可能になる。
【０１５９】
＜第３の実施形態＞
上記第２の実施形態では、条件つきで、孤立可逆符号化データを非可逆符号化データに変換するものであった。本第３の実施形態では、孤立非可逆符号化データについても考慮する例を説明する。
【０１６０】
図２６は第３の実施形態における符号化処理部６の構成を示している。図１と異なる点は、補正処理部１２０が第２のメモリ１０７をも参照対象とする点である。なお、本第３の実施形態では、図１をその基本としているが、図２、図１４をその基礎にしても構わない。要するに、補正処理部１２０が、可逆符号化データを格納しているメモリ（図２では第２のメモリ１０７、図１４では第３のメモリ１１８）をアクセスできるようにしていればよい。
【０１６１】
先の第２の実施形態で説明したように、自然画中に文字線画が存在することは、良くあることであるが、その逆の状態、すなわち、符号化単位である画素ブロック（実施形態では高々８×８画素サイズ）のサイズの自然画が、文字線画中に孤立して存在することは、普通はあり得ない。
【０１６２】
したがって、このような孤立非可逆符号化データは、無条件に可逆符号化データに変換しても構わないことになる。
【０１６３】
図２７は、第３の実施形態における補正処理部１２０の処理内容を示すフローチャートである。図２５（第２の実施形態）との違いは、ステップＳ１８が追加された点のみである。
【０１６４】
ステップＳ１３にて、可逆符号化データではない、すなわち、孤立した非可逆符号化データであると判定した場合、処理はステップＳ１８に進む。ステップＳ１８では、注目している画素ブロックと同一位置にある可逆符号化データを第２のメモリ１０７より読出し、その読出した符号化データを、変換結果としてステップＳ１５で出力する。
【０１６５】
以上の結果、第３の実施形態によれば、第２の実施形態の作用効果に加えて、何らかの原因で孤立した非可逆符号化データを、可逆符号化データに置換えて出力することで、ブロックノイズを抑制した画像を形成することが可能になる。
【０１６６】
以上、本発明に係る第１乃至第３の実施形態を説明したが、第１のメモリ１０５、第２のメモリ１０７、及び、第３のメモリ１１８は物理的に別のメモリであるとして説明をしてきた。本発明においてはこれらのメモリを独立して設けることは十分に１つの特徴となる。しかしながら、これらのメモリを物理的に別のメモリとしない場合も本発明の範疇に含まれる。特に、メモリの転送スピードが、十分に高速な場合には物理的に１つのメモリ上に、第１のメモリ、第２のメモリ（及び第３のメモリ）に相当する２つ（或いは３つ）の領域を確保して、第１のメモリを第１のメモリ領域、第２のメモリを第２のメモリ領域と言い直して、これまでの説明を読み直せば、１つのメモリでも実現できることが分かる。
【０１６７】
また、１つのメモリで上記各実施形態を実現する場合には、前記転送フェーズで説明したデータ転送処理のいくつかは不要となる。その詳細はその都度容易に想像できるので説明は省略するが、前記２つの領域を厳密に別けて使用する場合、物理的に２つのメモリを持つ時と同じようにデータ転送処理が必要であるが、２つの領域間で同じデータを共有することになれば、データ転送処理が不要になるだけでなく記憶容量の削減も図れる。
【０１６８】
例えば、第２のメモリ領域で保持していた符号化データを、第１のメモリ領域へ転送する際、該符号化データが格納されている先頭アドレスとデータサイズの２つの情報を第２のメモリ制御部から第１のメモリ制御部へ転送するだけで、前記符号化データを転送したのと同じ効果が得られる。
【０１６９】
前記符号化データを、ファイル形式やパケット形式で格納している場合は、メモリ制御部の間で転送する情報は少し増え、該符号化データに関連する管理テーブル情報を転送する必要がある。
【０１７０】
なお、実施形態では、符号化対象を８×８画素ブロックサイズとして説明したが、このサイズも本発明を限定するものではない。要するに、２つ（或いはそれ以上でも良い）の異なる符号化技術を使って、同一の画像領域に対して生成された２種類の符号化データ量を比較できるようにすれば良い。例えば、ＪＰＥＧ符号化ではＮ×Ｍ画素ブロック単位に符号化を行い、ＪＰＥＧ−ＬＳが２Ｎ×２Ｍの画素ブロックを符号化対象とし得るのであれば、４つのＪＰＥＧ符号化データと１つのＪＰＥＧ−ＬＳ符号化データを比較するようにしても構わない。
【０１７１】
また、第３の実施形態では、孤立可逆符号化データを条件つきで、非可逆符号化データに変換する例を説明したが、これは望ましい形態であるものの、この条件を除いたとしても、十分な画質の画像を形成することが確認されているので、その条件をつけることが本発明の必須とはならない。すなわち、図２８に示すように、ステップＳ１７を除外しても構わない。
【０１７２】
さらにまた、実施形態では、孤立符号化データとは、注目している１画素ブロックの符号化データの種類（可逆か非可逆かの種類）が、回りの８つの符号化データの種類と異なることを前提にして説明した。しかしながら、同じ種類の符号化データが１以上Ｎ以下で連続している場合にまで拡張しても構わない。この場合のＮは、読取り解像度にも依存して決定すれば良いが、微小領域を示すことに変わりなく、最大でも１桁台にすることが望ましい。
【０１７３】
また、実施形態では、２種類の符号化技術として、非可逆符号化であるＪＰＥＧ、可逆符号化であるＪＰＥＧ−ＬＳを用いる例を説明した。この２つの符号化技術は、可逆、非可逆の違いがあると同時に、ＪＰＥＧは自然画に適した符号化技術であり、ＪＰＥＧ−ＬＳは文字線画やコンピュータグラフィックスに適したものであり、符号化効率の面でも相異なるものである。このように、可逆符号化／非可逆符号化、及び、文字線画／自然画の両方に対して相異なる性質を持つ２つの符号化技術を用いると、本願発明は有利に作用することがわかるであろう。
【０１７４】
また、上記実施形態では、図２２に示す複写機に適用した例を説明したが、例えばパーソナルコンピュータ等の汎用情報処理装置にイメージスキャナ等の画像入力装置を接続して符号化する場合にも適用できるのは明らかである。この場合、図２３（図３（又は図９）或いは図１５に示す処理を含む）に係るプログラムを実行すれば良いので、本願発明はかかるコンピュータプログラムをもその範疇とするのは明らかである。また、通常、コンピュータプログラムはＣＤＲＯＭ等のコンピュータ可読記憶媒体をそのコンピュータにセットし、システムにコピーもしくはインストールすることで実行可能になるわけであるから、当然、そのようなコンピュータ可読記憶媒体も本発明の範疇に含まれる。
【図面の簡単な説明】
【０１７５】
【図１】第１の実施形態における符号化処理部のブロック構成図である。
【図２】第１の実施形態における符号化処理部の変形例を示すブロック構成図である。
【図３】第１の実施形態における処理を簡略化して示したフローチャートである。
【図４】第１の実施形態における初期状態の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図５】第１の実施形態における符号化・再符号化フェーズの開示時のデータフローとメモリ内容を表わす図である。
【図６】第１の実施形態における符号化・再符号化フェーズの終了時のデータフローとメモリ内容を表わす図である。
【図７】第１の実施形態における転送フェーズにおけるデータフローとメモリ内容を表わす図である。
【図８】第１の実施形態における転送フェーズ後の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図９】第１の実施形態における処理の詳細を示すフローチャートである。
【図１０】図２の構成における符号化・再符号化フェーズの開始時におけるデータフローとメモリ内容を表わす図である。
【図１１】図２の構成における転送フェーズにおけるデータフローとメモリ内容を表わす図である。
【図１２】図２の構成における転送フェーズ後の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図１３】第１の実施形態における第１カウンタの値の推移の一例を示す図である。
【図１４】第１の実施形態における符号化処理部の他の変形例のブロック構成図である。
【図１５】図１４の構成における処理手順を示すフローチャートである。
【図１６】図１４の構成における初期状態の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図１７】図１４の構成における目標データ量オーバー時におけるデータフローとメモリ内容を表わす図である。
【図１８】図１４の構成における符号化・再符号化フェーズの完了時におけるデータフローとメモリ内容を表わす図である。
【図１９】図１４の構成における符号化・再符号化フェーズ後の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図２０】実施形態における再符号化部のブロック構成図である。
【図２１】実施形態で用いる量子化マトリクステーブルを示す図である。
【図２２】実施形態が適用する複写機の構成図である。
【図２３】実施形態における符号化処理部の処理手順を示すフローチャートである。
【図２４】第１の実施形態における補正処理の処理手順を示すフローチャートである。
【図２５】第２の実施形態における補正処理の処理手順を示すフローチャートである。
【図２６】第３の実施形態における符号化処理部のブロック構成図である。
【図２７】第３の実施形態における補正処理の処理手順を示すフローチャートである。
【図２８】第３の実施形態における他の補正処理の処理手順を示すフローチャートである。
【図１】
2006080794.tif 000003
【図２】
2006080794.tif 000004
【図３】
2006080794.tif 000005
【図４】
2006080794.tif 000006
【図５】
2006080794.tif 000007
【図６】
2006080794.tif 000008
【図７】
2006080794.tif 000009
【図８】
2006080794.tif 000010
【図９】
2006080794.tif 000011
【図１０】
2006080794.tif 000012
【図１１】
2006080794.tif 000013
【図１２】
2006080794.tif 000014
【図１３】
2006080794.tif 000015
【図１４】
2006080794.tif 000016
【図１５】
2006080794.tif 000017
【図１６】
2006080794.tif 000018
【図１７】
2006080794.tif 000019
【図１８】
2006080794.tif 000020
【図１９】
2006080794.tif 000021
【図２０】
2006080794.tif 000022
【図２１】
2006080794.tif 000023
【図２２】
2006080794.tif 000024
【図２３】
2006080794.tif 000025
【図２４】
2006080794.tif 000026
【図２５】
2006080794.tif 000027
【図２６】
2006080794.tif 000028
【図２７】
2006080794.tif 000029
【図２８】
2006080794.tif 000030