(57)【要約】      （修正有）【課題】入力画像のデータサイズを圧縮する際に処理速度の低下や画質の劣化を低減させた画像処理装置及びその圧縮方法を提供する。【解決手段】入力画像を複数の予め定めたサイズの画像ピースに分割し、各画像ピースに含まれる色データの配置パターンを示すコードデータと各画像ピースに含まれる色数分の色データとを第１の出力データとして出力し、各画像ピース内の色数を求め色数毎の画像ピースの数をカウントする。第１の出力データが所定のデータサイズ以上である場合、前記カウントされた色数毎の画像ピースの数と、減色させるパターンの優先順位とに従って前記複数の画像ピースに対する減色させるパターンを判定し減色処理を実行した後、各画像ピース内の各画素の色データ同士を比較することにより各画像ピースに含まれる色データの配置パターンを示すコードデータと各画像ピースに含まれる色数分の色データとを決定し、第２の出力データとして出力する。【選択図】図９
2012019357.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を、複数の予め定めたサイズの画像ピースに分割する分割手段と、
前記分割された各画像ピース内の各画素の色データ同士を比較することにより各画像ピースに含まれる色データの配置パターンを示すコードデータと各画像ピースに含まれる色数分の色データとを決定し、当該決定されたコードデータと色データとを第１の出力データとして出力する第１の出力手段と、
前記分割された各画像ピース内の色数を求め、色数毎の画像ピースの数をカウントするカウント手段と、
前記第１の出力手段で出力される第１の出力データが所定のデータサイズ以上である場合、前記カウントされた色数毎の画像ピースの数と、減色させるパターンの優先順位とに従って、前記複数の画像ピースに対する減色させるパターンを判定する判定手段と、
前記分割された各画像ピースのうち前記判定手段で判定されたパターンに該当する画像ピースに対して減色処理を実行した後、各画像ピース内の各画素の色データ同士を比較することにより各画像ピースに含まれる色データの配置パターンを示すコードデータと各画像ピースに含まれる色数分の色データとを決定し、当該決定されたコードデータと色データとを第２の出力データとして出力する第２の出力手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記カウント手段において、前記色数は、前記第１の出力手段で出力されるコードデータに基づき特定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記減色処理は、前記画像ピース内の複数の画素を平均化することにより、当該画像ピース内の色数を減らすことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記優先順位は、画質劣化が小さいものから順に設定されることを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記判定手段は、前記カウントされた色数毎の画像ピースの数と前記優先順位とに基づいて、前記優先順位の順に、各パターンの減色処理を実行した場合の出力データのデータサイズを求めていき、当該データサイズが前記所定のデータサイズより小さくなったときのパターンを前記減色させるパターンとして判定することを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
入力画像のデータサイズを圧縮する画像処理装置の圧縮方法であって、
分割手段が、入力画像を、複数の予め定めたサイズの画像ピースに分割する分割工程と、
第１の出力手段が、前記分割された各画像ピース内の各画素の色データ同士を比較することにより各画像ピースに含まれる色データの配置パターンを示すコードデータと各画像ピースに含まれる色数分の色データとを決定し、当該決定されたコードデータと色データとを第１の出力データとして出力する第１の出力工程と、
カウント手段が、前記分割された各画像ピース内の色数を求め、色数毎の画像ピースの数をカウントするカウント工程と、
判定手段が、前記第１の出力工程で出力される第１の出力データが所定のデータサイズ以上である場合に、前記カウントされた色数毎の画像ピースの数と、減色させるパターンの優先順位とに従って、前記複数の画像ピースに対する減色させるパターンを判定する判定工程と、
第２の出力手段が、前記分割された各画像ピースのうち前記判定工程で判定されたパターンに該当する画像ピースに対して減色処理を実行した後、各画像ピース内の各画素の色データ同士を比較することにより各画像ピースに含まれる色データの配置パターンを示すコードデータと各画像ピースに含まれる色数分の色データとを決定し、当該決定されたコードデータと色データとを第２の出力データとして出力する第２の出力工程と、
を有することを特徴とする画像処理装置の圧縮方法。
【請求項７】
請求項６に記載の画像処理装置の圧縮方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に入力される画像に対して、メモリ資源の削減や処理の高速化のためにデータサイズを圧縮して保存する技術に関する。
【背景技術】
【０００２】
画像処理装置は画質や画像処理機能を向上させるために、高解像度の画像データを扱うことが求められており、高解像度の画像データを効率的に保持する画像圧縮方式が必要とされている。
【０００３】
従来の画像圧縮方法には、画像を所定の大きさの領域に分割し、領域の単位で圧縮処理を切り替えて行う方法がある（例えば、特許文献１参照）。この方法によれば、圧縮処理において解像度変換部が解像度変換した画像に対して符号化を行うことで高い圧縮率を得ることができる。
【０００４】
また、元画像を復元可能な擬似高解像度変換処理に関する方法もある（例えば、特許文献２参照）。この方法によれば、変換後の低解像度の画像に、各画素に対応した属性データ（画素パターン等）を付加することで解像度変換によりデータサイズを縮小しつつ高解像度の画像に復元することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−４２６８７号公報
【特許文献２】特開２００８−２３８５９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
画像処理装置では、画像データを格納するメモリ資源は限られており、特に高解像度の画像データを扱う場合は、画像データのデータサイズが大きいためメモリ資源を節約する必要がある。そのため、変換後の画像データは所定のデータサイズ以下に制御できる必要がある。
【０００７】
この擬似高解像度変換処理では、周辺画素の画素値が複雑なパターンの画像に対しては、属性データが大きくなる傾向があり、解像度変換後の画像データのデータサイズが元画像のデータサイズを超える場合もある。そのような場合、元画像に対して周辺画素の画素値を均一化する減色処理を実施して、属性データを縮小した再変換処理を行うことが考えられる。
【０００８】
しかしながら、従来の再変換処理では、各矩形領域毎に順次減色処理を施すため、画像データのデータサイズは変換後に確定する。そのため、一度の減色処理では、最適な画像データのデータサイズを得られず、次のように処理速度の低下や画質劣化といった課題が発生する。
【０００９】
第一に、減色処理の度合い（以下、減色処理レベルと呼ぶ。）が弱いと、画像データのデータサイズが十分に小さくならず、減色処理レベルを変更して再々変換処理する必要がある。
【００１０】
第二に、減色処理レベルが強いと、圧縮された画像データのデータサイズが必要以上に小さくなり、画質劣化が起こる。その結果、最適な画像データのデータサイズを得るために減色処理と擬似高解像度変換処理を繰り返し実行しなければならず、全体的な処理速度が低下する。
【００１１】
本発明は、入力画像のデータサイズを圧縮する際に処理速度の低下や画質の劣化を低減させた画像処理装置及びその圧縮方法を提供する。
【課題を解決するための手段】
【００１２】
本発明の画像処理装置は、
入力画像を、複数の予め定めたサイズの画像ピースに分割する分割手段と、
前記分割された各画像ピース内の各画素の色データ同士を比較することにより各画像ピースに含まれる色データの配置パターンを示すコードデータと各画像ピースに含まれる色数分の色データとを決定し、当該決定されたコードデータと色データとを第１の出力データとして出力する第１の出力手段と、
前記分割された各画像ピース内の色数を求め、色数毎の画像ピースの数をカウントするカウント手段と、
前記第１の出力手段で出力される第１の出力データが所定のデータサイズ以上である場合、前記カウントされた色数毎の画像ピースの数と、減色させるパターンの優先順位とに従って、前記複数の画像ピースに対する減色させるパターンを判定する判定手段と、
前記分割された各画像ピースのうち前記判定手段で判定されたパターンに該当する画像ピースに対して減色処理を実行した後、各画像ピース内の各画素の色データ同士を比較することにより各画像ピースに含まれる色データの配置パターンを示すコードデータと各画像ピースに含まれる色数分の色データとを決定し、当該決定されたコードデータと色データとを第２の出力データとして出力する第２の出力手段と、
を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、処理速度の低下や画質の劣化を低減させて、入力画像のデータサイズを圧縮することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態における画像処理装置のハードウェア構成を示すブロック図。
【図２】図１に示す解像度変換部及び符号変換部の処理を示す図。
【図３】データフォーマットの一例を示す図。
【図４】本実施形態における再圧縮処理の概要を示す図。
【図５】解像度圧縮処理における減色処理レベルを示す図。
【図６】解像度圧縮処理における再圧縮処理を示すフローチャート。
【図７】解像度圧縮処理におけるコードデータのカウント例を示す図。
【図８】解像度圧縮処理における減色処理レベル決定方法を説明する図。
【図９】減色処理レベル決定方法を示すフローチャート。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。以下の実施形態では、入力された画像を、低解像度の画像データと、コードデータと、補間データとで構成されるデータに変換する。本実施形態では、この変換処理を解像度圧縮と呼ぶこととする。ここで低解像度の画像データは、元画像に対して予め定義された大きさの画像領域（２×２画素の矩形領域）を単位として分割されたときの代表画素（矩形領域内の所定位置の画素（例えば右下画素））の画素値で構成される。また、コードデータは、画像領域内の画素値の配置パターンを示すコードのデータである。更に、補間データは、画像領域内の代表画素以外の画素値を示すデータである。尚、画像領域（２×２画素の矩形領域）内の各画素値同士を比較することにより、当該画像領域内で同じ画素値が存在する位置（同じ色が存在する位置）を判断する。そして、当該判断結果に基づいて、各画素値が画像領域内のどの位置に存在するかを示す配置パターンを示すコードデータを使用する。
【００１６】
まず、本実施形態における画像処理装置のハードウェア構成を、図１に示すブロック図を用いて説明する。図１に示すように、画像処理装置１０１は、外部装置接続部１０２、画像入力部１０３、画像展開部１０４、解像度変換部１０５、符号変換部１０６、印刷部１０７、ＣＰＵ１０８、ＲＯＭ１０９、記憶部１１０を備える。
【００１７】
外部装置接続部１０２は、ＬＡＮやＵＳＢ接続によって外部装置とデータのやり取りを行う。画像入力部１０３は、外部装置接続部１０２を介して受信された画像データを入力する。画像データは、ベクターデータを含み、様々な解像度のオブジェクトで構成されたデータであっても良い。
【００１８】
画像展開部１０４は、ベクターデータを含む様々な解像度のオブジェクトで構成されたデータをビットマップ画像に展開する。解像度変換部１０５は、画像展開部１０４で展開されたビットマップ画像を所定の解像度において解像度圧縮又は伸長を行う。尚、解像度圧縮は、所定の圧縮矩形領域毎に色情報（画素値）のパターンを解析し、低解像度の画像データとコードデータと補間データとを生成する。
【００１９】
符号変換部１０６は、解像度変換部１０５で生成された画像をJPEGなど所定の画像形式において符号圧縮又は伸長を行う。印刷部１０７は、電子写真方式やインクジェット方式のエンジンを含み、画像処理され生成された画像データの印刷を行う。
【００２０】
ＣＰＵ１０８は、ＲＯＭ１０９、記憶部１１０、不図示の周辺装置と共に画像処理装置１０１の制御部として機能し、本装置全体を制御する。ＲＯＭ１０９は、ＣＰＵ１０８の制御プログラムや制御データを格納したメモリである。記憶部１１０は、ＣＰＵ１０８の制御プログラムの変数や画像処理装置１０１の各処理用バッファを格納するためのメモリであり、ＲＡＭやＨＤＤといった記憶媒体を有する。
【００２１】
次に、外部装置から画像データの印刷を指示された際の印刷機能における画像処理を、図２を用いて説明する。画像入力部１０３で入力された画像データはベクター情報を含む画像であり、Display List２０１として記憶部１０９に格納される。次に、画像データは画像展開部１０４でＲＩＰ処理され、印刷解像度（例えば1200dpi）のビットマップ画像２０２に展開される。次に、展開されたビットマップ画像２０２は解像度変換部１０５で解像度圧縮され、例えば600dpiの圧縮解像度の画像データ（＋コードデータ＋補間データ）２０３に変換される。
【００２２】
そして、この画像データ（＋コードデータ＋補間データ）２０３は更に符号変換部１０６で符号圧縮され（例えばJPEG圧縮）、符号圧縮画像（＋コードデータ＋補間データ）２０４に変換され記憶部１０９に格納される。このように圧縮保存された画像データは、印刷時には逆の手順により符号伸長及び解像度伸長され、印刷部１０７で印刷される。
【００２３】
ここで、上述した解像度圧縮処理におけるデータフォーマットの一例を、図３を用いて説明する。図３は、画像データ（＋コードデータ＋補間データ）２０３に変換された解像度圧縮後のデータフォーマットの一例である。ここでは入力画像（ビットマップ画像２０２）を２×２画素サイズの矩形領域ごとに分割し、各矩形領域（以下、画像ピースと呼ぶ）を圧縮単位として圧縮したときの、各画像ピース内に存在する色数毎のデータフォーマットを示す。
【００２４】
図３に示すように、データフォーマットは、コードデータ３１０、代表色（所定位置の画素（代表画素）の画素値）を示す画像データ３１１、代表色以外の色（代表色以外の画素値）を示す補間データ３１２から構成される。コードデータ３１０は画像ピースの色配置パターンであり、Code３０５のビット列として表される。また、コードデータ３１０から画像ピースの色数も判断可能である。ここで、画像ピースは２×２画素であるので、色配置パターンとして１５パターンを表現できればよいので、Code３０５は４ｂｉｔのビット列を用いればよい。
【００２５】
画像データ３１１は、２×２画素の画像ピースの所定位置（ここでは右下の画素）から選択した代表画素であり、第一色３０５の画素値として表される。即ち、画像データ３１１は低解像度の画像データ（解像度圧縮前に比べて半分の解像度の画像）となる。補間データ３１２は、画像ピースの代表画素の画素値以外の画素値であり、画像ピース内に存在する色数に応じてそれぞれの画素値として表される。
【００２６】
図３に示す画像ピース３０１は１色で構成される場合のデータ構成を示し、この場合、代表色以外の画素値は存在しないので、この画像ピース３０１の補間データは存在しない。次に、画像ピース３０２は画像ピース内が２色で構成される場合の配置パターンを示しており、色配置パターンは７パターンが存在する。この画像ピース３０２の補間データには、第２色データ３０７のみが含まれる。
【００２７】
次に、画像ピース３０３は３色で構成される場合の配置パターンを示しており、色配置パターンは６パターンが存在する。この画像ピース３０３の補間データには、第２色データ３０７及び第３色データ３０８が含まれる。次に、画像ピース３０４は４色で構成される場合の配置パターンを示しており、色配置パターンは１パターンのみが存在する。この画像ピース３０４の補間データには、第２色データ３０７、第３色データ３０８及び第４色データ３０９が含まれる。
【００２８】
このように、画像全体で各画像ピース内の色数が少ないほどデータサイズは小さくなり、解像度圧縮処理の圧縮率は高くなる。また、画像全体で各画像ピース内の色数が多い場合はデータサイズが大きくなり、解像度圧縮処理の圧縮率は低くなる。
【００２９】
次に、圧縮後のデータサイズが所定のデータサイズ以上の場合に、解像度圧縮処理において再圧縮を行う再圧縮処理の概要を、図４を用いて説明する。入力データ４０１は解像度圧縮部４０２の入力画像であり、例えば1200dpi画像である。解像度圧縮部４０２は解像度圧縮処理を実行するモジュールであり、例えば図３に示すデータフォーマットに入力画像を変換する。出力データ４０４は解像度圧縮部４０２の出力画像であり、例えば図３に示すデータフォーマット形式の600dpi画像とコードデータと補間データで構成される。
【００３０】
ここで上述したように、出力データ４０４は各画像ピースの色数が多い場合にはデータサイズが大きくなる。またコードデータ３１０が付加されているため、入力データ４０１よりデータサイズが大きくなる可能性もある。このような場合に、解像度圧縮部４０２が入力データ４０１に対して減色処理４０３を実施して再圧縮を行う。
【００３１】
減色処理４０３は、入力データ４０１の各画像ピース内の色数を減少させる処理であり、例えば画像ピース内で画素値が近い複数の画素を選択し、画素値を平均化して同一色に変換する処理である。減色処理４０３により各画像ピースで補間データ３１２が小さくなり、再圧縮処理での圧縮率を高めることができる。
【００３２】
図５に、解像度圧縮処理における減色処理レベルを示す。上述の減色処理４０３は減色する色数によって減色の強さ（以下、減色処理レベルと呼ぶ）が変化する。例えば、解像度圧縮前の画像ピースが画像ピース５０１のように４色であったと想定する。そのうちの２画素の画素値を平均化することで画像ピース５０２のように３色化する場合、減色数は１であり減色処理レベル１とする。また、画像ピース内の３画素の画素値を平均化することで画像ピース５０３のように２色化する場合、減色数は２であり減色処理レベル２とする。また全４画素の画素値を平均化することで画像ピース５０４のように１色化する場合、減色数は３であり減色処理レベル３とする。
【００３３】
また、減色処理４０３は画素値の近い複数の画素を選択する際に、所定の閾値を設けることでも減色の強さを変化させることができる。以下の説明では減色処理レベルを減色数によって規定するが、前記閾値を含め複数パラメタで減色レベルを規定しても良い。
【００３４】
図６に、解像度圧縮処理における再圧縮処理のフローチャートを示す。まずＳ６０１において、再圧縮処理か否かを判断する。ここでは、減色処理レベルの設定有無により判断し、初回圧縮処理の場合はＳ６０２へ処理を進め、減色処理は行わずに解像度圧縮処理を実行する。
【００３５】
解像度圧縮処理は、画像データを予め定めたサイズ（２×２画素サイズ）のブロック（即ち画像ピース）毎に分割し、各画像ピース内の各画素の色データ（画素値）同士を比較する。そして、画像ピースに含まれる色データの配置パターンを示す情報（コードデータ）と、当該画像ピースに含まれる色数分の色データ情報（画素値情報）とを決定する。そして、当該決定された配置パターンを示すコードデータと色数分の色データ情報とを出力する処理である。即ち、各画像ピース内で、各画素の色データ同士を比較することにより、当該画像ピース内の色数と各色の配置が分かる。従って、前記比較結果に基づいて当該画像ピースに含まれる色データの配置パターンと、色数分の色データ情報とを決定することができる。出力された色データ情報の内、各画像ピースにおける予め決められた位置の画素に対応する第１の色データ情報（例えば各画像ピースにおける右下の画素の色データ情報）と、それ以外の色データ情報（第２〜４の色データ情報）とに分けてメモリ領域に格納する。即ち、各画像ピースから得られる配置パターン情報と第１の色データ情報とそれ以外の色データ情報とを、それぞれ異なるメモリ領域にまとめて格納することを特徴としている。各画像ピース内には同色の画素が存在する場合が多いので、メモリ領域に格納されたデータは、元画像のデータよりもデータサイズが小さい圧縮データとなる場合が多い。また、第１の色データ情報は、各画像ピースの予め決められた位置の画素の画素値であるので、連続メモリ領域に格納されている第１の色データ情報は、元画像を単純間引き処理して生成される低解像度画像に等しい。従って、解像度圧縮後のデータから、低解像度画像データも容易に抽出することができる。また、各各画像ピースの第１の色データ情報からなる低解像度画像データを連続メモリ領域に置くことで、符号化データのままでの処理を容易化し、復号化することなく低解像度画像に対する画素処理も可能となる。
【００３６】
Ｓ６０２の処理で出力されるデータ（コードデータと第１の色データ情報（低解像度画像）と第２〜４の色データ情報（補間データ））に関して、Ｓ６０５において、その出力データサイズが所定のデータサイズ以上か否かを判定する。判定の結果、その出力データサイズが所定のデータサイズ以上であればＳ６０１に戻り、再圧縮を行う。また、その出力データサイズが所定のデータサイズ以上でなければ、この再圧縮処理を終了する。
【００３７】
一方、上述のＳ６０１において、再圧縮処理と判断された場合はＳ６０３へ処理を進め、減色処理レベルを設定及び記憶する。ここで、再圧縮処理が２回目以降である場合は、前回の減色処理レベルを参照し、より大きい値を設定する。そして、Ｓ６０４において、Ｓ６０３で設定された減色処理レベルに従って、入力データに減色処理を実施し、減色後の画像データに対してＳ６０２と同様の解像度圧縮処理を実行する。次のＳ６０５では、上述したように、その出力データサイズが所定のデータサイズ以上かを判定し、その出力データサイズが所定のデータサイズ以上であれば更に再圧縮を行うためにＳ６０１へ戻り、そうでなければ、この処理を終了する。
【００３８】
即ち、Ｓ６０３で設定した減色処理レベルが適切な値になっていなければ、出力データサイズが所定のデータサイズより小さくならない。
【００３９】
従って、減色処理を実施して再圧縮を行っても、出力データサイズが十分に小さくならず再度再圧縮が必要になってしまうと、パフォーマンスが著しく低下してしまう。
【００４０】
また、必要以上の減色処理を実施すると、出力データサイズは小さくなったとしても、必要以上に画質劣化が大きくなってしまう場合がある。
【００４１】
そこで、本実施形態では、Ｓ６０３の減色処理レベルの設定において、出力データサイズを予め決定でき、入力データに応じて減色処理レベルを適切な値に設定するための制御方法を提示する。従って、Ｓ６０４の出力データサイズが入力データサイズ以下となり、再圧縮処理は１回しか行われない。また、出力データサイズが必要以上に小さくならず画質劣化を防止できる。
【００４２】
ここで、解像度圧縮処理におけるコードデータのカウンタを、図７を用いて説明する。解像度圧縮の出力データ７０１であるコード７０２は、図３に示すデータフォーマットにおけるコードデータ３１０に相当する。
【００４３】
本実施形態では、減色処理レベルの設定にコード７０２、即ち、コードデータ３１０を用いる。コードデータ３１０は画像ピースの色配置パターンを示し、画像ピース内の色数を特定できる。従って、入力データ全体に対して、色数毎の画像ピース数をカウントすることができ、これをコードデータカウンタと呼ぶ。また、コードデータカウンタは上述のＳ６０２の初回の解像度圧縮処理においてカウントできる。
【００４４】
ここで、４色の画像ピース数をＣ４、３色の画像ピース数をＣ３、２色の画像ピース数をＣ２、１色の画像ピース数をＣ１とする。例えば、例１）の入力画像データに対するコードデータカウンタ７０３がＣ４＞Ｃ３＞Ｃ２＞Ｃ１の関係であった場合、４色の画像ピースの割合が大きいことが分かる。また、例２）の入力画像データに対するコードデータカウンタ７０４が、Ｃ３＞Ｃ４＞Ｃ２＞Ｃ１の関係であった場合、３色の画像ピースの割合が大きいことが分かる。
【００４５】
このように、コードデータをカウントすることにより色数毎の画像ピース数を検知することができる。従って、設定した減色処理レベルによる解像度圧縮後の出力データサイズが算出可能となり、また色数毎に減色処理レベルを設定することで、出力データサイズを様々に調節することが可能となる。
【００４６】
次に、解像度圧縮処理における減色処理レベルを決定する減色処理レベル決定方法を、図８を用いて説明する。図８に示す例では、減色処理レベルの決定要素として次の３つを設ける。即ち、画像ピース内の減色数８０１、画像ピースの色数変化８０２、グループ内優先順位８０３である。
【００４７】
まず画像ピース内の減色数８０１は、画像ピースに対する減色処理で許容する最大減色数であり、従って、最大減色数１の（Gr.１）８０４、最大減色数２の（Gr.２）８０５、最大減色数３の（Gr.３）８０６の３つのグループが存在する。最大減色数が小さいほど、画質劣化が小さくなるので、最大減色数の小さいグループを優先して減色処理レベルを決定する。
【００４８】
次に、画像ピースの色数変化８０２は、画像ピース内の減色数８０１に対する色数変化パターン（減色パターン）であり、色数毎の組み合わせで表現される。例えば、（Gr.１）８０４に対するパターンは次のような７通りが存在する。
・４色画像ピースを３色化
・３色画像ピースを２色化
・４色画像ピースを３色化＋３色画像ピースを２色化
・２色画像ピースを１色化
・４色画像ピースを３色化＋２色画像ピースを１色化
・３色画像ピースを２色化＋２色画像ピースを１色化
・４色画像ピースを３色化＋３色画像ピースを２色化＋２色画像ピースを１色化
従って、図７に示すコードデータカウンタ及び図３に示すデータフォーマットから各色変化パターンにおける減色処理後の出力データサイズを算出することが可能である。
【００４９】
例えば（Gr.１）８０４に対するパターンでは、４色画像ピースを３色化のみ実施するパターンを減色処理レベルと決定した場合、次のようになる。１画素の画素値が３バイトで表されると仮定すると、減色処理により縮小されるデータサイズは、３バイト×１（１ピースあたりの減色数）×Ｃ４（４色の画像ピースの個数）と算出できる。
【００５０】
次に、グループ内優先順位８０３は、画像ピースの色数変化８０２に対する優先順位を表す。減色処理による画質劣化が小さいものほど、優先順位は高く設定される。また減色前の画像ピースの色数が高いものほど画質劣化が小さいと考えられる。
【００５１】
従って、例えば（Gr.１）８０４の色数変化パターンに対する優先順位は、４色画像ピースを３色化のパターンが最も高く、上記の順となる。Gr.１の優先順位は、減色前の色数が多いほど減色で色が変化する画素数が少なくなるため、上記の順で定義している。例えば、４色画像ピースを３色化する場合は、当該画像ピース内の２画素で構成される２色を１色に減色させることになるので、２画素の色が変化する。また、３色画像ピースを２色化する場合は、当該画像ピース内の２〜３画素で構成される２色を１色に減色させることになるので、２または３画素の色が変化する。即ち、減色数が同じグループ内での優先順位は、色が変化する画素数の低い組み合わせから優先するようにしている。
【００５２】
また、Gr.２においては、「４色画像ピースを２色化」するパターンが第１位であり、「４色画像ピースを２色化、且つ（Gr.１の４色画像ピース以外の優先順位）の組み合わせ」を第２位としている。この第２位は、Gr.１の優先順位を参照して、４色画像ピース以外（３色画像ピースの２色化と２色画像ピースの１色化）の優先順位を組み合わせて、更に細分化されるものとする。即ち、当該第２位のうちの１番目として「４色画像ピースを２色化、且つ、３色画像ピースを２色化」が選択され、次に、当該第２位のうちの２番目として「４色画像ピースを２色化、且つ、２色画像ピースを１色化」が選択される。更に、当該第２位のうちの３番目として「４色画像ピースを２色化、且つ、３色画像ピースを２色化且つ、２色画像ピースを１色化」が選択されることになる。
【００５３】
本実施形態では、図８に示す３つの決定要素に従って、各色変化パターンの出力データサイズを算出し、出力データサイズが所定の目標とするメモリサイズ（例えば、システムで許容されるメモリサイズとしてもよいし、入力データサイズの７０％としてもよい。）以下かつ画質劣化の最も小さいパターンを減色処理レベルとして決定する。
【００５４】
ここで、本実施形態における減色処理レベル決定方法を、図９に示すフローチャートを用いて説明する。Ｓ９０１において、画像ピース内の減色数８０１を選択する。ここでは始め減色数が最も小さい（Gr.１）８０４を選択する。そして、Ｓ９０２において、画像ピースの色数変化のパターン８０２を選択する。ここでは、始めグループ内優先順位８０３に従って最も優先順の高いパターン（どの色数の画像ピースを減色処理させるかを示す減色パターン）を選択する。最初は４色の画像ピースを３色に減色するパターンが選択される。そして、Ｓ９０３において、Ｓ９０２で選択したパターンに従って出力データサイズを算出する。
【００５５】
本実施形態では、コードデータカウンタの色数毎の画像ピース数（Ｃ４，Ｃ３，Ｃ２，Ｃ１）及び選択した色数変化パターンから縮小されるデータのサイズを算出する。そして、減色処理前の第１の出力データのサイズから差し引くことにより、減色処理後の第２の出力データのサイズを算出する。
【００５６】
次に、Ｓ９０４において、Ｓ９０３で算出した出力データサイズが所定のメモリサイズ以下であるか否かを判定する。ここで、所定のメモリサイズとは、予め定めた目標とするデータサイズ（例えば解像度圧縮処理の入力データサイズの７０％）であり、再圧縮の必要性判断基準に用いられる。判定の結果、所定のメモリサイズ以下であった場合はＳ９０８へ処理を進め、現在選択している色数変化パターンを減色処理レベルとして決定する。
【００５７】
一方、Ｓ９０４において、出力データサイズが所定のメモリサイズ以下でなかった場合はＳ９０５へ処理を進め、Ｓ９０１で選択したグループにおいて全ての色数変化パターンを選択したか否かをチェックする。ここで、全て選択していない場合はＳ９０６へ処理を進め、グループ内優先順位８０３を進めた上でＳ９０２に戻る。また、全て選択した場合はＳ９０７へ処理を進め、画像ピース内の減色数を１つ増加させた上でＳ９０１に戻る。
【００５８】
尚、Ｓ９０５からＳ９０１又はＳ９０２に戻る場合でも、色数変化パターンを順次選択し出力データサイズを算出することで、所定のメモリサイズ以下となり、Ｓ９０８へ帰着する。
【００５９】
Ｓ９０８で減色処理させるパターン（減色処理レベル）として決定された色数変化パターンを用いて、再圧縮処理を行う。即ち、入力された画像データに対して、減色処理レベルとして決定されたパターンに該当する色数を有する画像ピースに関しては、対応する減色処理を行って再圧縮処理を行うようにすればよい。
【００６０】
本実施形態によれば、解像度変換において再変換処理を行う際に、出力データのデータサイズを保証することで、再変換処理でのパフォーマンスの低下を確実に回避すると同時に、画質の劣化を低減させることができる。
【００６１】
［他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012019357.tif 000003
【図２】
2012019357.tif 000004
【図３】
2012019357.tif 000005
【図４】
2012019357.tif 000006
【図５】
2012019357.tif 000007
【図６】
2012019357.tif 000008
【図７】
2012019357.tif 000009
【図８】
2012019357.tif 000010
【図９】
2012019357.tif 000011