(57)【特許請求の範囲】
【請求項１】
画像データを入力する入力手段と、
入力された画像データにおいて、予め定められたブロック単位ごとの属性情報を生成する属性情報生成手段と、
生成された前記属性情報に基づき、前記ブロック単位で符号化する際の優先順位を設定する優先順位設定手段と、
設定された前記優先順位に従って各ブロックを順番に符号化する際に、既に符号化したブロックにおける符号量の総計を算出する符号量算出手段と、
前記符号量の総計が、使用可能なメモリ領域に応じた所定の閾値より小さい場合に、第１方式を用いて、当該ブロックの画像データを符号化する第１符号化手段と、
前記符号量の総計が前記所定の閾値以上である場合に、前記第１方式よりも符号量が少ない第２方式を用いて、当該ブロックの画像データを符号化する第２符号化手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記属性情報生成手段は、
前記ブロック単位ごとに、画素値が変化するエッジの総数を算出するエッジ数算出手段を備え、
算出された前記エッジの総数に基づいて、前記ブロック単位ごとに前記属性情報を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記優先順位設定手段は、
前記エッジの総数が多い前記属性情報を有するブロックから順に高い優先順位を設定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第２符号化手段は、
前記エッジの総数が予め定められた値以上のブロックの画像データに対して、前記エッジの総数が前記予め定められた値より小さいブロックの画像データに対して用いられる圧縮率よりも高い圧縮率で符号化することを特徴とする請求項２又は３に記載の画像処理装置。
【請求項５】
前記第１符号化手段は、前記第１方式として可変長の符号化方式を用いて符号化処理を実行し、
前記第２符号化手段は、前記第２方式として固定長の符号化方式を用いて符号化処理を実行することを特徴とする請求項２乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記エッジの総数が予め定められた値以下のブロックの画像データに対して、前記第２符号化手段により符号化した場合の符号量の合計を推定する推定手段と、
推定された前記符号量の合計に従って前記所定の閾値を変更する変更手段と、
前記エッジの総数が予め定められた値以下のブロックの画像データを前記第２符号化手段によって符号化させ、残りのブロックの画像データを、設定された前記優先順位に従って順番に符号化する際に、変更された前記所定の閾値に基づき前記第１符号化手段又は前記第２符号化手段によって符号化させる制御手段と
をさらに備えることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記第１符号化手段は、前記第１方式として可逆の符号化方式を用いて符号化処理を実行し、
前記第２符号化手段は、前記第２方式として非可逆の符号化方式を用いて符号化処理を実行することを特徴とする請求項２乃至６の何れか１項に記載の画像処理装置。
【請求項８】
入力手段が、画像データを入力する入力ステップと、
属性情報生成手段が、入力された画像データにおいて、予め定められたブロック単位ごとの属性情報を生成する属性情報生成ステップと、
優先順位設定手段が、生成された前記属性情報に基づき、前記ブロック単位で符号化する際の優先順位を設定する優先順位設定ステップと、
符号量算出手段が、設定された前記優先順位に従って各ブロックを順番に符号化する際に、既に符号化したブロックにおける符号量の総計を算出する符号量算出ステップと、
第１符号化手段が、前記符号量の総計が、使用可能なメモリ領域に応じた所定の閾値より小さい場合に、第１方式を用いて、当該ブロックの画像データを符号化する第１符号化ステップと、
第２符号化手段が、前記符号量の総計が前記所定の閾値以上である場合に、前記第１方式よりも符号量が少ない第２方式を用いて、当該ブロックの画像データを符号化する第２符号化ステップと
を実行することを特徴とする画像処理装置の制御方法。
【請求項９】
請求項８に記載の画像処理装置の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを圧縮符号化する画像処理装置及びその制御方法に関するものである。
【背景技術】
【０００２】
高解像度の画像データをメモリへ格納する場合にはメモリ使用量が膨大になるため、画像データを圧縮してからメモリへ格納することが有効である。画像圧縮では、最終的に圧縮された画像データが伸張され出力されるため、画像品位が損なわれないように可変長可逆方式での符号化が望ましい。しかし、可変長可逆方式の場合、画像圧縮に必要となる補間情報が、画像によっては膨大に必要となる。このため、高い圧縮率で圧縮するか、画像に応じて符号化方式を切り替えて、トータルの符号量がメモリ容量に収まるよう制御する必要がある。
【０００３】
特許文献１では、入力画像をブロック分割して、ブロック毎に画像特性を算出し、画像の種類を判定する技術が提案されている。具体的には、算出した判定結果に基づいて可変長符号化方式と固定長符号化方式とを選択的に切り替えている。これにより、ＣＧ（コンピュータグラフィック）画像と自然画像などの画像特性が大きく異なる画像であっても、効率的に符号化し、少ない符号データ用メモリ容量であっても、伸張画像の画像劣化を最小限に抑えた高品質な画像を提供している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２５２５６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来技術の可変長符号化方式による符号量は、実際に符号化処理を行わないとトータルの符号量が解からない。したがって、画像によってはトータル符号量が使用可能なメモリ容量を超えてしまうことがあるため、メモリへの格納を行うことなく、仮の符号化処理のみを行い、符号量がメモリ容量を超える場合は、圧縮率を大きくして再度符号化処理を行う必要がある。この処理はメモリ容量に収まるまで繰り返されるため、非常に時間がかかってしまう。
【０００６】
そこで、特許文献１に記載の技術では、１回の符号化処理で終了するようにするために、使用する目標サイズを超えないように特定の閾値を超えた時点で、符号量が予測できる固定長符号化方式に切り替えている。しかし、ブロック化された画像データを順番に圧縮していくと、例えば最後の方のブロック画像に細線や文字が多く含まれていると、画像品質が劣化し、不明瞭な画像となってしまう。
【０００７】
本発明は、上述の問題に鑑みて成されたものであり、ブロック化した画像データを符号化する際の処理時間を低減するとともに、画像品質の低下を抑制する画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、画像処理装置として実現できる。画像処理装置は、画像データを入力する入力手段と、入力された画像データにおいて、予め定められたブロック単位ごとの属性情報を生成する属性情報生成手段と、生成された前記属性情報に基づき、前記ブロック単位で符号化する際の優先順位を設定する優先順位設定手段と、符号化した画像データを復号化するために必要となる符号量について、既に符号化したブロックにおける該符号量の総計を算出する符号量算出手段と、前記符号量の総計が、使用可能なメモリ領域に応じた所定の閾値より小さい場合に、第１方式を用いて、当該ブロックの画像データを符号化する第１符号化手段と、前記符号量の総計が前記所定の閾値以上である場合に、前記第１方式よりも符号量が少ない第２方式を用いて、当該ブロックの画像データを符号化する第２符号化手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明は、例えば、ブロック化した画像データを符号化する際の処理時間を低減するとともに、画像品質の低下を抑制する画像処理装置を提供できる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係るＭＦＰ１００の構成例を示すブロック図である。
【図２】第１の実施形態に係る画像符号化処理部１１０の構成例を示すブロック図である。
【図３】第１の実施形態に係る優先順位に従った符号化処理を説明する図である。
【図４】第１の実施形態に係る優先順位に従った符号化処理の処理手順を示すフローチャートである。
【図５】第１の実施形態に係る画像属性情報の判定方法を説明するための図である。
【図６】第１の実施形態に係るエッジ数算出方法を略式的に示す図である。
【図７】第１の実施形態に係る優先順位及び出力順序の設定方法を略式的に示す図である。
【図８】第１の実施形態に係るパケット生成部２０５によって生成されるパケットの構造を示す図である。
【図９】第１の実施形態に係るパケット生成部２０５の構成例を示す図である。
【図１０】第１の実施形態に係る画像圧縮部２０６の構成例を示す図である。
【図１１】第１の実施形態に係る第１圧縮処理部２０６２の構成例を示す図である。
【図１２】第１の実施形態に係る第１圧縮処理部２０６３の構成例を示す図である。
【図１３】第２の実施形態に係るタイル画像の一例を示す図である。
【図１４】第２の実施形態に係るＱテーブルＩＤリストの一例を示す図である。
【図１５】第２の実施形態に係る優先順位に従った符号化処理の処理手順を示すフローチャートである。
【図１６】第３の実施形態に係る画像符号化処理部１６００の構成例を示すブロック図である。
【図１７】第３の実施形態に係る符号化処理の処理手順を示すフローチャートである。
【図１８】第３の実施形態に係るベタ画像検出フラグ及び出力順序の設定方法を略式的に示す図である。
【発明を実施するための形態】
【００１１】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１２】
＜第１の実施形態＞
＜画像処理装置の構成＞
以下では、図１乃至図１２を参照して、第１の実施形態について説明する。まず、図１を参照して、本実施形態に係る画像処理装置の構成について説明する。本実施形態では、画像処理装置の一例としてＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：マルチファンクション周辺機器）を例に説明する。ＭＦＰ１００は、スキャナから出力されたジョブデータに対しメモリを介してプリントするコピー機能や、コンピュータ等の外部装置から出力されたジョブデータに対しメモリを介してプリントするプリント機能等の複数の機能を備える画像処理装置である。また、ＭＦＰ１００には、フルカラー機器とモノクロ機器があり、色処理や内部データなどを除いて、基本的な部分において、フルカラー機器がモノクロ機器の構成を包含することが多い。したがって、ここでは、フルカラー機器に絞って説明し、必要に応じて随時モノクロ機器の説明を加えることとする。また、本発明における画像処理装置は、プリント機能のみを備える単一機能型のＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：単一機能周辺機器）であってもよい。さらに、本発明は、複数のＭＦＰやＳＦＰ等の画像処理装置を備える画像処理システムとしても実現可能である。
【００１３】
ＭＦＰ１００は、スキャナ部１０１、外部Ｉ／Ｆ１０２、プリンタ部１０３、操作部１０４、ＣＰＵ１０５、メモリコントローラ部１０６、ＲＯＭ１０７、ＲＡＭ１０８、ＨＤＤ１０９、画像符号化処理部１１０、及び、画像伸張処理部１１１を備える。スキャナ部１０１は、紙原稿などの画像を読み取り、読み取ったデータに画像処理を施す。外部Ｉ／Ｆ１０２は、ファクシミリ、ネットワーク接続機器、外部専用装置と画像データなどを送受信する。プリンタ部１０３は、画像処理が施された画像データに従って、記録材等の用紙に画像を形成する。操作部１０４は、ユーザがＭＦＰ１００の様々なフローや機能を選択したり、操作指示したりするためのものである。また、操作部１０４は、当該操作部１０４に設けられた表示装置の高解像度化に伴い、文書管理部にある画像データをプレビューし、出力先でのプリント出力イメージをユーザに確認させることもできる。
【００１４】
ＣＰＵ１０５は、ＲＯＭ１０７から読み込んだプログラムに従って動作する。例えば、ＣＰＵ１０５は、外部Ｉ／Ｆ１０２を介してホストコンピュータから受信したＰＤＬ（ページ記述言語）コードデータを解釈し、ラスタイメージデータに展開する。さらに、ＣＰＵ１０５は、各種画像データのカラープロファイルを通したカラーマッチング処理を実行する。また、画像符号化処理部１１０は、ＪＢＩＧやＪＰＥＧ等といった各種圧縮方式によってＲＡＭ１０８、ＨＤＤ１０９に記憶されている画像データ等の圧縮動作を行う。画像伸張処理部１１１は、ＲＡＭ１０８、ＨＤＤ１０９に記憶されている符号化データの伸張動作を行う。
【００１５】
メモリコントローラ部１０６は、接続される記憶装置であるＲＯＭ１０７、ＲＡＭ１０８、及びＨＤＤ１０９へのアクセスを制御する。接続されている各マスタデバイスからのメモリアクセスが競合した場合には、優先順位によって順番に選択したスレーブメモリへアクセスするよう調停動作を行う。ＲＯＭ１０７は、読み出し専用のメモリであり、ブートシーケンスやフォント情報等の各種プログラムを予め記憶している。ＲＡＭ１０８は、読み出し及び書き込み可能なメモリで、スキャナ部１０１や外部Ｉ／Ｆ１０２よりメモリコントローラ部１０６を介して送られてきた画像データや、各種プログラムや設定情報を記憶する。ＨＤＤ１０９は、画像符号化処理部１１０によって圧縮された画像データを記憶する大容量の記憶装置である。
【００１６】
＜画像符号化処理部の構成＞
次に、図２を参照して、本発明の実施形態における画像符号化処理部１１０の構成について説明する。ここでは、ネットワークを介して接続されるホストコンピュータから画像データを受信して印刷出力を行う場合の画像符号化処理について説明する。ホストコンピュータからの画像データ（ＧＤＩコマンド等）は、スプール処理を行うための外部専用装置に一旦格納される。外部専用装置に格納された画像データは、外部Ｉ／Ｆ１０２を介して受信され、画像符号化処理部１１０へ入力される。図２に示すように、画像符号化処理部１１０は、ＤＬ変換部２０１、インタプリタ部２０２、優先順位設定部２０３、タイル生成部２０４、パケット生成部２０５、及び画像圧縮部２０６を備える。
【００１７】
ＤＬ変換部２０１は、中間言語に変換されている画像データを後段のインタプリタ部２０２においてインタプリットするために必要なデータ形式のディスプレイリスト（以下ＤＬ）に変換する。インタプリタ部２０２は、属性情報生成手段として機能し、入力される全てのＤＬを参照して、イメージや背景等のオブジェクトを論理演算して、ラスタ変換後のイメージ及び属性情報を例えば３２ｘ３２画素サイズのブロック単位で翻訳する。以下では、上記ブロック単位で区分された画像をブロック画像又はタイル画像と称し、その領域をブロック領域又はタイル領域と称する。優先順位設定部２０３は、インタプリタ部２０２より生成された属性情報より各タイル画像の重要度を判定して、タイル画像毎に画像圧縮部２０６へ転送する優先順位を設定する。タイル生成部２０４は、生成された優先順位を参照して、優先順位の高いＤＬから順番にブロック単位で再度翻訳してラスタ画像に変換し、タイル画像データとして出力する。パケット生成部２０５は、タイル画像データに対して、ヘッダ情報を付加してパケット化し、画像圧縮部２０６へ転送する。画像圧縮部２０６は、画像データを圧縮するために所定の符号化方式によって符号化処理を行う。
【００１８】
＜優先順位に従った符号化処理＞
次に、図３を参照して、優先順位に従った符号化処理について説明する。画像符号化処理部１１０へ入力される画像データは、メモリ負荷を抑えて画像ハンドリングを良くするために、タイル単位での符号化処理が行われる。そのため、入力画像データは図３の３０１に示すように、特定のブロックサイズでタイル化される。
【００１９】
次に各タイル画像が、文字／細線、ベタ画像、それ以外の画像（以下、イメージと称する。）等のどの属性であるかを判定して、各タイル画像毎の属性情報を付加する。図３の３０２では、斜線領域が文字属性を示し、ドット領域がイメージ属性を示し、無地領域がベタ画像属性と判定されたタイル画像であることを示す。本発明の符号化処理装置は、各タイル画像の画像属性毎に優先順位を設定し、優先順位の高いものから順番に符号化処理を行うよう制御する。例えば、優先順位が、文字／細線＞イメージ＞ベタ画像の場合には、最初に文字／細線属性のタイル画像を画像符号化処理部１１０へ転送する。文字／細線属性のタイル画像の符号化処理が終了すると、イメージ属性のタイル画像、最後に残りのベタ画像属性のタイル画像を順番に転送する。
【００２０】
＜優先順位に従った符号化処理シーケンス＞
次に、図４を参照して、本実施形態における優先順位に従った符号化処理シーケンスについて説明する。以下で説明する処理は、ＣＰＵ１０５がＲＯＭ１０７等からプログラムをロードして実行することにより実現される。なお、以下で記載するＳに続く番号は、各フローチャートのステップ番号を示す。
【００２１】
Ｓ４０１において、ＣＰＵ１０５は、ホストコンピュータからプリント要求を受信すると、外部Ｉ／Ｆ１０２を通じて、入力画像データをＤＬ変換部２０１へ入力する。ここで、ＤＬ変換部２０１は、中間言語形式の画像データを後段のインタプリタ部２０２でレンダリングするために必要なディスプレイリスト（以下、ＤＬ）形式に変換する。さらに、インタプリタ部２０２は、ブロック領域毎にＤＬを翻訳して、オブジェクト（背景、図形、模様など）を論理演算して、各ブロック領域内の画素値を計算する。
【００２２】
ここで、図５及び図６を参照して、画像属性情報の判定方法について説明する。図５に示すように、各タイル画像領域内の画素を参照して、ライン毎のエッジ数を算出し、各ラインのエッジの総数によって、文字／細線、ベタ画像、それ以外のイメージの各画像属性を判定する。図６にエッジ数算出方法を示す。説明を簡略化するため、１０ｘ１０画素のブロック画像について説明すると、図６に示すとおり、各０から９までのラインごとのエッジ数は、０，０，４，７，７，３，７，７，０，０となり、各ラインのエッジの総数は３５となる。ここでエッジとは、画像のエッジを示す。したがって、２ライン目のエッジは、０画素目と１画素目との間、２画素目と３画素目との間、５画素目と６画素目との間、７画素目と８画素目の間に存在するため、エッジ数が４となる。エッジの総数が０〜５の範囲内がベタ画像、６〜２０の範囲内がイメージ、２１以上の場合は文字の属性と判定する場合、図６に示すブロック画像（タイル画像）は、エッジの総数が３５となるため、文字属性と判定される。判定された画像属性情報はタイル画像毎にリスト化される。ここまでのタイル画像ごとの属性判定がＳ４０１の処理となる。
【００２３】
Ｓ４０２において、優先順位設定部２０３は、リスト化された画像属性情報を参照して、符号化処理を行う優先順位を判定する。ここで、図７を参照して、優先順位の設定方法について説明する。例えば優先順位が文字、イメージ、ベタの３段階で高くなる例について説明する。各画像属性に対する優先順位フラグ値は、優先順位の高い順に、文字が１、イメージが２、ベタが３の値とする。図７に示すように、リスト化された画像属性情報が、ベタ、文字、文字、文字、…、である場合は、優先順位フラグはそれぞれ、３、１、１、１、…、と設定される。
【００２４】
次に、Ｓ４０３において、画像符号化処理部１１０は、設定された優先順位フラグを参照して、タイルリスト毎に出力順序を設定する。図７に示すように、まず、優先順位フラグが１のリストに対して、出力順序を設定する。具体的には、優先順位が１であるタイルＮｏが２、３、４、…のリストについて出力順序が設定され、それぞれ１、２、３、…が設定される。次に、優先順位フラグが２、最後に優先順位フラグが３のリストに対して出力順序が設定される。したがって、設定される出力順序は、４２、１、２、３、４、５、４３、４４、４５、１６、…と設定する。
【００２５】
次に、Ｓ４０４において、タイル生成部２０４は、設定された出力順序に従ってＤＬを翻訳してラスタ画像に変換し、ブロック単位毎のタイル画像として出力する。続いて、Ｓ４０５において、パケット生成部２０５は、後段の画像圧縮部２０６における動作モードや、タイル画像の座標情報などをヘッダ情報としてタイル画像に付加して、パケットを生成する。
【００２６】
ここで、図８を参照して、パケット生成部２０５によって生成されるパケット構造について説明する。１パケットは３２ｘ３２画素の１タイル画像分の画像データを収容するデータ本体１００２と、ヘッダ１００１から構成される。また、ヘッダ１００１は、パケットＩＤ１００３、圧縮フラグ１００４、ＱテーブルＩＤ１００５及びデータ長１００６の各フィールドを備える。パケットＩＤ１００３はシリアル番号を示す。圧縮フラグ１００４は可変長可逆方式又は固定長非可逆方式のどちらの方式で画像データが圧縮されたかを示す。ＱテーブルＩＤ１００５は圧縮する際にどの圧縮率の量子化テーブルを参照されたかを示す。画像データ長１００６はデータ本体１００２に収容される画像データ量を示す。本実施形態では、パケットＩＤ１００３が１バイト、圧縮フラグ１００４が１ビット、ＱテーブルＩＤ１００５が３ビット、画像データ長１００６が２バイトである。さらに、ヘッダ１００１には、図８に示すように０値を設定する４ビットのフィールドが設けられている。
【００２７】
次に、図９を参照して、パケット生成部２０５の詳細について説明する。パケット生成部２０５は、バッファ２０５１、マージ回路２０５２、及びヘッダ生成回路２０５３を備える。まず、タイル生成部２０４で生成された画像データがタイル単位でバッファ２０５１に格納される。ヘッダ生成回路２０５３は、パケットＩＤ１００３を順にインクリメントし、ＱテーブルＩＤ１００５に対して、圧縮率に応じた量子化テーブルが設定されているＩＤをセットし、画像データ長１００６にデータ量をセットする。生成されたヘッダ情報はマージ回路２０５２へ出力される。マージ回路２０５２は、バッファ２０５１に格納されている画像データを読み出し、ヘッダ情報とマージして、図８に示すフォーマットのパケットを生成する。
【００２８】
パケットが生成されると、Ｓ４０６において、画像符号化処理部１１０は、トータルの符号量が予め設定している閾値より小さいか否かを判定する。トータルの符号量とは、ブロックごとに符号化を実行している際に、現在までに符号化された各ブロックの符号量の総計を示す。また、符号量とは、符号化した画像データを復号化するために必要となるデータ量を示す。ここで、図１０を参照して、画像圧縮部２０６の詳細について説明する。画像圧縮部２０６は、入力選択部２０６１、第１圧縮処理部２０６２、第２圧縮処理部２０６３、出力選択部２０６４、及び符号化データ量カウンタ２０６５を備える。
【００２９】
まず、画像圧縮部２０６へ入力されるパケットデータは、入力選択部２０６１へ入力される。入力選択部２０６１は、符号化データ量カウンタ２０６５から供給されるトータルの符号量を参照し、予め定められている閾値と比較する。つまり、符号化データ量カウンタ２０６５は、現在までに既に符号化されたブロックにおける符号量の総計を算出する符号量算出手段として機能する。ここで、入力選択部２０６１は、閾値より小さい場合には処理をＳ４０７へ移行させるとともに、第１圧縮処理部２０６２へパケットデータを供給する。一方、入力選択部２０６１は、それ以外の場合には処理をＳ４０８へ移行させるとともに、第２圧縮処理部２０６３へパケットデータを供給する。
【００３０】
なお、本実施形態によれば、第１圧縮処理部２０６２が可変長可逆方式の符号化処理を実行し、第２圧縮処理部２０６３が固定長非可逆方式の符号化処理を実行する。しかし、本発明はこの符号化方式に限定されず、第１圧縮処理部２０６２及び第２圧縮処理部２０６３に対して種々の符号化方式を採用してもよい。例えば、第１圧縮処理部２０６２及び第２圧縮処理部２０６３ともに可変長符号化方式が採用されてもよい。具体的には、第１圧縮処理部２０６２は、例えば、可変長非可逆方式のＪＰＥＧや可変長で非可逆と可逆の両方式を扱えるＪＰＥＧ２０００などを採用してもよい。また、第２圧縮処理部２０６３は、例えば、可変長可逆方式のＪＰＥＧ−ＬＳ、ＧＩＦ、ＰＮＧなどを採用してもよい。本発明では、第１圧縮処理部２０６２が自然画像を得意とする符号化方式を採用し、第２圧縮処理部２０６３がグラフィック画像を得意とする符号化方式を採用することを意図したものである。
【００３１】
Ｓ４０７において、第１圧縮処理部２０６２は、第１符号化手段として機能し、可変長可逆方式を用いて符号化処理を実行する。ここで、図１１を参照して、第１圧縮処理部２０６２の構成例とともに、可変長可逆方式の圧縮処理について説明する。第１圧縮処理部２０６２は、入力バッファ１３０１、ウェーブレット変換部１３０２、量子化部１３０３、ＥＢＣＯＴ符号化部１３０４、出力バッファ１３０５、及びヘッダ付加部１３０６を備える。
【００３２】
入力バッファ１３０１は、入力される画像データを格納するためのデータバッファであり、所定量のデータが送られると後段に接続されたウェーブレット変換部１３０２に対して所定の順序に従ってデータを出力する。ウェーブレット変換部１３０２では、入力バッファ１３０１より画像データが入力されると、ウェーブレット変換を行って、各サブバンドのウェーブレット係数に対する微分成分データに変換する。量子化部１３０３は、ウェーブレット変換部１３０２より出力される変換データに対して、所定の量子化値を用いて量子化を行う。ＥＢＣＯＴ符号化部１３０４は、量子化部１３０３から出力されたデータに対して所定の符号化処理を行って符号化データを生成する。出力バッファ１３０５は、ＥＢＣＯＴ符号化部１３０４からの符号化データの入力が終了すると、符号化されたデータ量を出力するとともに、ヘッダ付加部１３０６に対して符号化データが出力可能であることを通知する。その後、ヘッダ付加部１３０６の要求に従って符号化データを出力する。ヘッダ付加部１３０６は、符号化データと符号化データ量を受信して、ヘッダ情報を付加する。また、ヘッダ付加部１３０６は、図８に示すヘッダの圧縮フラグ１００４に、可変長可逆方式で圧縮したことを示す０をセットし、画像データ長１００６に、受信した符号化データ量をセットする。ヘッダを付加された符号化データは、パケットデータとして出力選択部２０６４へ送信される。このとき出力選択部２０６４は第１圧縮処理部２０６２の出力を画像圧縮部２０６より出力するよう選択する。
【００３３】
一方、Ｓ４０６でトータル符号量が閾値以上であると判定されると、Ｓ４０８において、第２圧縮処理部２０６３は、第２符号化手段として機能し、固定長非可逆方式での符号化処理を行う。ここで、図１２を参照して、第２圧縮処理部２０６３の構成例ととともに、固定長非可逆方式の圧縮処理について説明する。第２圧縮処理部２０６３は、入力バッファ１４０１、ＤＣＴ変換部１４０２、量子化部１４０３、ハフマン符号化部１４０４、出力バッファ１４０５、ヘッダ付加部１４０６、量子化テーブル選択部１４０７、及び量子化テーブル１４０８を備える。
【００３４】
入力バッファ１４０１は、入力される画像データを格納するためのデータバッファであり、所定量のデータが送られると後段に接続されたＤＣＴ変換部１４０２に対して所定の順序に従ってデータを出力する。ＤＣＴ変換部１４０２では、入力バッファ１４０１より画像データが入力されると、離散コサイン変換を行って、周波数成分データに変換する。量子化部１４０３は、ＤＣＴ変換部１４０２より出力される変換データに対して、所定の量子化値を用いて量子化を行う。なお、量子化に使用する値は、量子化テーブル選択部１４０７より入力される。量子化に使用する量子化テーブルは量子化テーブル選択部１４０７によって、入力バッファ１４０１に格納されるヘッダ情報のＱテーブルＩＤ１００５を参照することにより決定される。
【００３５】
ハフマン符号化部１４０４は、量子化部１４０３から出力されたデータに対して所定の符号化処理を行って符号化データを生成する。出力バッファ１４０５は、ハフマン符号化部１４０４からの符号化データの入力が終了すると、符号化されたデータ量を出力するとともに、ヘッダ付加部１４０６に対して符号化データが出力可能であることを通知する。その後、ヘッダ付加部１４０６の要求に従って符号化データを出力する。ヘッダ付加部１４０６は、符号化データと符号化データ量を受信して、ヘッダ情報を付加する。図８に示すヘッダの圧縮フラグ１００４に、固定長非可逆方式で圧縮したことを示す１をセットし、画像データ長１００６に、受信した符号化データ量をセットする。ヘッダを付加された符号化データは、パケットデータとして出力選択部２０６４へ送信される。このとき出力選択部２０６４は第２圧縮処理部２０６３の出力を画像圧縮部２０６から出力するように選択する。
【００３６】
Ｓ４０７又はＳ４０８で符号化処理が行われると、Ｓ４０９において、画像符号化処理部１１０は、符号化された画像データをメモリへ格納する。圧縮された画像データは、メモリ２０８に予め割り当てられている領域に対して、ヘッダ１００１のパケットＩＤ１００３の順番に従って順次格納される。続いて、Ｓ４１０において、画像符号化処理部１１０は、全てのタイル画像のメモリ２０８への格納が終了しているか否かを判定する。ここで、全てのタイル画像の処理が終了している場合は、画像圧縮に関する一連の処理を終了する。一方、まだ全てのタイル画像の処理が終了していない場合には、Ｓ４０４へ戻り、残りのタイル画像に対しての処理を繰り返す。
【００３７】
以上説明したように、本実施形態に係る画像処理装置は、ブロック化（タイル化）した各ブロック画像において、細線や文字などの重要ブロック画像を優先して第１方式で符号化処理を実行する。さらに、画像処理装置は、既に符号化したブロックの符号量が所定の閾値以上になると第２方式で符号化処理を実行する。このように、本実施形態によれば、途中から固定長符号化方式（第２方式）に切り替わっても、既に重要ブロック画像の処理が済んでいる可能性が高くなる。その結果、従来のように画質に大きな影響を与えることなく、符号量を予め定められたメモリ量に抑えることができる。
【００３８】
＜第２の実施形態＞
次に、図１３乃至図１５を参照して、第２の実施形態について説明する。本実施形態では、タイル画像中に文字が多く存在するなど、画素値変化量の大きい画像が圧縮対象である場合に、メモリを目標の容量内に圧縮するために、圧縮率を大きくすることを特徴とする。なお、以下では、第１の実施形態と異なる構成や技術について主に説明する。本実施形態ではインタプリタ部２０２において、画像圧縮部２０６で使用する量子化テーブルを選択するための、ＱテーブルＩＤリストを作成する。
【００３９】
まず、図１３を参照して、本実施形態における処理が適用されるタイル画像の一例について説明する。図１３に示すタイル画像では、各０から９までのラインのエッジ数は、０，０，５，９，９，５，９，８，０，０となり、各ラインにおけるエッジの総数が４５となる。ここで第１の実施形態と同様にエッジの総数が０〜５の範囲内をベタ画像と判定し、６〜２０の範囲内をイメージと判定し、２１以上の場合を文字の属性と判定する。したがって、図１３に示すタイル画像は、文字属性と判定される。さらに、本実施形態では、エッジの総数が４０以上の場合に、画素値変化量が大きいと判定し、高い圧縮率で圧縮するための量子化テーブルを使用するための、ＱテーブルＩＤリストに１が設定される。図１４には、本実施形態に係るＱテーブルＩＤリストを示す。図１４に示すように、例えば圧縮率の異なる２つの量子化テーブルを使用する場合、大きい圧縮率で量子化する場合はＱテーブルＩＤリストに１が設定され、それ以外のデフォルトの圧縮率でよい場合は０が設定される。
【００４０】
次に、図１５を参照して、本実施形態における符号化処理シーケンスについて説明する。ここでは、図４に示す第１の実施形態と同様の処理については同一のステップ番号を付し、説明を省略する。Ｓ１５０１において、インタプリタ部２０２は、各ラインエッジ数をカウントする際に、エッジの総数が予め定められた値以上（ここでは、４０以上）か否かを判定し、ＱテーブルＩＤリストを設定する。つまり、インタプリタ部２０２は、画素変化量が多いか否かを判定して、タイル画像ごとの圧縮率を決定している。具体的には、インタプリタ部２０２は、ワークメモリ上に展開されたタイル画素データのエッジの総数をＣＰＵ１０５によりカウントし、予め定められた値以上の場合は、文字数が多いと判断し、予め定められた値より小さい場合には文字数は少ないと判断する。文字数が多い場合は、前述したようにＱテーブルＩＤリストに１を設定し、それ以外の場合は０を設定する。
【００４１】
また、本実施形態によれば、トータル符号量が閾値以上である場合に、Ｓ１５０２において、第２圧縮処理部２０６３は、各タイル画像ごとに、ＱテーブルＩＤリストを参照して、文字数が多いか否かを判定する。ここで、ＱテーブルＩＤリストに１が設定されている場合はＳ１５０３に進み、０が設定されている場合はＳ１４０８に進む。具体的には、第２圧縮処理部２０６３の量子化テーブル選択部１４０７が、入力バッファ１４０１内に格納されている画像データのヘッダ情報のＱテーブルＩＤ１００５を参照する。量子化テーブル選択部１４０７は、ＱテーブルＩＤ１００５が０の場合は、量子化テーブル１４０８内のデフォルトの圧縮率で設定される量子化テーブルを参照する。ＱテーブルＩＤ１００５が１の場合は、圧縮率の高い別の量子化テーブルを参照する。その後、Ｓ４０８において、第２圧縮処理部２０６３は、量子化テーブル選択部１４０７によって参照された圧縮率を用いて、固定長非可逆符号化の処理を実行する。このようにＱテーブルＩＤ１００５によって参照する量子化テーブルを切り替えることにより、タイル単位で圧縮処理における圧縮率を切り替える。
【００４２】
以上説明したように、本実施形態における画像処理装置は、第１の実施形態の制御に加えて、文字数（エッジの総数）が多い場合には高い圧縮率に切り替えて符号化処理を実行する。これにより、文字数量が異なるブロックが混在する場合であっても、目標の符号量に収まるよう制御することができる。
【００４３】
＜第３の実施形態＞
以下では、図１６乃至図１８を参照して、第３の実施形態について説明する。画像データの符号化を行う際、一般的には画像属性を考慮することなく同じ符号化処理を行っている。そのため、重要でないタイル画像と重要なタイル画像に同じ符号量をメモリ領域に割り当てているのが現状である。そこで、重要でないタイル画像の符号量を減らし、その分を重要なタイル画像の符号量に割り当てることで、メモリ容量を有効に活用でき、画像品位を向上するよう制御することができる。第１の実施形態では画像属性情報を生成しタイル画像毎に優先順位を設定することにより、符号量を調整している。しかし、この方法は予め閾値を設定しているため、メモリ領域をフルに活用できない場合がある。
【００４４】
その一例として、ベタ画像が２０％、文字画像が８０％含まれる画像を想定する。このように、ベタ画像が少なく、文字画像が多い場合には、固定長非可逆方式に割り当てたメモリ領域が余ってしまう場合がある。これは、ベタ画像が少ない場合には固定長非可逆方式のトータル符号量が少ないため、予め設定したメモリの固定長領域が余ってしまうことに起因している。この場合、その余った固定長非可逆方式のメモリ領域を可変長可逆方式のメモリ領域に割り当てることができれば、よりメモリを有効に活用でき、画像品位を向上するよう制御できる。そこで、本実施形態では、画像属性情報を利用して、まず重要でないブロック画像の固定長方式による符号量の合計を推定し、余ったメモリ領域に応じて可変長可逆方式のメモリ領域の所定の閾値を変更する。これにより、重要なブロック画像により多くの可変長可逆方式の符号量を割り当てることができる。
【００４５】
図１６を参照して、本実施形態に係る画像符号化処理部１６００の構成例について説明する。画像符号化処理部１６００は、画像符号化処理部１１０の構成と基本的な構成は同じであるが、さらに、ベタ画像検出部２０７と、符号量・閾値算出部２１２とを備える。ベタ画像検出部２０７は、インタプリタ部２０２によって生成された属性情報から、ブロック毎に固定長非可逆方式で十分なブロック画像（ここではベタ画像とする。）を検出し、ベタ画像検出フラグを生成する。具体的には、ベタ画像検出部２０７は、エッジの総数が予め定められた値以下（例えば、５以下）のブロックを固定長非可逆方式で十分なブロック画像として検出する。符号量・閾値算出部２１２は、ベタ画像検出部２０７より生成されたベタ画像検出フラグを参照して、ベタ画像を固定長非可逆方式で符号化したときの符号量の合計を推定する。また、その符号量の合計と全メモリ領域から残りのメモリ領域を算出し、可変長可逆方式での符号化の際の所定の閾値を変更する。その他の処理部については第１の実施形態と同様であるため説明を省略する。
【００４６】
次に、図１７を参照して、本実施形態における符号化処理シーケンスについて説明する。以下で説明する処理は、ＣＰＵ１０５がＲＯＭ１０７等からプログラムをロードして実行することにより実現される。なお、以下で記載するＳに続く番号は、各フローチャートのステップ番号を示す。また、図４のフローチャートと同様の処理については同一のステップ番号を付し、説明を省略する。
【００４７】
Ｓ４０１で画像属性情報が生成されると、Ｓ１７０１において、ベタ画像検出部２０７は、リスト化された画像属性情報（文字／細線、イメージ、ベタなど）を参照して、固定長非可逆方式で十分なブロック画像（ここではベタ画像とする）を検出する。さらに、ベタ画像検出部２０７は、ベタ画像検出フラグを生成する。フラグ値は、固定長非可逆方式で十分なブロック画像（ベタ画像）として検出されたタイル画像は１と設定し、それ以外は０の値を設定する。さらに、ベタ画像検出部２０７は、ベタ画像検出フラグに基づいてベタ画像検出部２０７以降のタイル転送順序を決定する。
【００４８】
ここで、図１８を参照して、ベタ画像検出フラグについて説明する。Ｓ１７０１の処理を実行する段階では、タイル画像毎の属性情報が既に生成されている。したがって、ベタ画像検出部２０７は、その属性情報に基づいてベタ画像検出フラグの値を決定する。例えば、１番のタイル画像は、属性情報がベタであるため、ベタ画像検出フラグには１が設定される。２番のタイル画像は、属性情報が文字であるため、ベタ画像検出フラグには０が設定される。以下も同様にベタ画像検出フラグが設定される。また、図１８では出力番号も記載されているが、これはベタ画像検出フラグが１の値のタイル画像から順番に出力番号を割り振っている。これにより、先にベタ画像を転送しメモリに格納することが可能になる。
【００４９】
次に、Ｓ１７０２において、符号量・閾値算出部２１２は、ベタ画像検出フラグを参照してベタ画像を固定長非可逆方式の圧縮で行った場合の符号量の合計を推定する。例えば、予め１ブロックの固定長非可逆方式の符号量を設定しておき、ベタ画像検出フラグが１の値であった場合には、符号量の合計に１タイル画像あたりの符号量を加え、ベタ画像検出フラグが０の値であった場合には、何もしない。この処理を全タイル画像に行うことで固定長非可逆方式の符号量の合計を推定することができる。Ｓ１７０３において、符号量・閾値算出部２１２は、Ｓ１７０２で推定した符号量から残りのメモリ領域を算出し、残ったブロック画像を圧縮する際の可変長可逆方式の目標閾値を残りのメモリ領域に応じて算出し変更する。このように、まず固定長非可逆方式のトータル符号量を推定してメモリ領域を割り当てることにより、重要なタイル画像に割り当てられる可変長可逆方式の符号量を予め見積もることができる。その後、可変長可逆方式の符号化の閾値を決定することで、予め閾値を設定する場合と比べて可変長可逆方式の符号量を増加させることができる。
【００５０】
次に、Ｓ１７０４において、タイル生成部２０４は、３２ｘ３２のブロック画像をラスタ画像に変換してタイル画像データを生成する。さらに、パケット生成部２０５は、タイル画像の座標情報などをヘッダ情報としてタイル画像に付加し、パケットを生成する。続いて、Ｓ１７０５において、パケット生成部２０５は、ベタ画像検出フラグを参照して、フラグの値が１の値のブロックを出力番号に従って画像圧縮部２０６に転送する。
【００５１】
次に、Ｓ１７０６において、画像圧縮部２０６は、転送されたブロックを第２圧縮処理部２０６３により固定長非可逆方式で符号化する。Ｓ１７０７において、画像圧縮部２０６は、符号化した画像データをメモリへ転送し、格納する。符号化された画像データのメモリ格納は、ブロックごとに処理が終了すると、メモリに順次転送され、格納される。Ｓ１７０８において、画像符号化処理部１６００は、ベタ画像が全て固定長非可逆方式で圧縮されメモリに格納されたか否かを判定する。全て終わってない場合には、Ｓ１７０５に戻って残りのベタ画像検出フラグが１のブロック画像を固定長非可逆方式によって圧縮する。全て終わった場合には、Ｓ１７０９に進み、画像符号化処理部１６００は、ベタ画像検出フラグが０のブロック画像（ベタ画像以外のブロック画像）の転送を開始する。ここでは、残りのブロックの転送順は特に優先順位を設けず順次転送とするが、例えば第１の実施形態のように優先順位を決定しておき、その優先順位に応じた転送順としてもよい。なお、Ｓ４０６乃至Ｓ４１０の処理は、図４のフローチャートと同様であるため説明を省略する。
【００５２】
以上説明したように、本実施形態における画像処理装置は、重要でないタイル画像（ベタ画像等）を先に固定長符号化方式でメモリ領域を見積もり、メモリ領域をフル活用し残ったメモリ領域に応じて所定の閾値を変更する。これにより、可変長符号化方式での符号化の符号量に対応するメモリ領域を増やすことができる。したがって、本実施形態によれば、残りのメモリ領域をフル活用して、画像品位を向上させることができる。また、本実施形態に係る画像処理装置は、第１の実施形態や第２の実施形態と組み合わせて実現されてもよい。
【００５３】
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
0005524584.tif 000002
【図２】
0005524584.tif 000003
【図３】
0005524584.tif 000004
【図４】
0005524584.tif 000005
【図５】
0005524584.tif 000006
【図６】
0005524584.tif 000007
【図７】
0005524584.tif 000008
【図８】
0005524584.tif 000009
【図９】
0005524584.tif 000010
【図１０】
0005524584.tif 000011
【図１１】
0005524584.tif 000012
【図１２】
0005524584.tif 000013
【図１３】
0005524584.tif 000014
【図１４】
0005524584.tif 000015
【図１５】
0005524584.tif 000016
【図１６】
0005524584.tif 000017
【図１７】
0005524584.tif 000018
【図１８】
0005524584.tif 000019