(57)【特許請求の範囲】
【請求項１】
色値及び属性値を有する画素で構成される入力画像中で、色値が変化する境界及び属性値が変化する境界を特定する特定手段と、
前記境界によって区切られる領域の色値及び属性値を示す情報を格納する第１の領域と、前記境界の位置情報を格納する第２の領域と、を含むデータを生成及び出力する第１の圧縮手段と、
前記第１の圧縮手段が出力したデータを取得する取得手段と、
前記データの前記第２の領域に格納された、色値が変化する境界及び属性値が変化する前記境界の位置情報を参照して、画像の横方向ライン上で同一の色値及び属性値を有する画素群の位置を示すスパン情報を生成する情報生成手段と、
前記データの前記第１の領域に格納された、前記境界によって区切られる領域の色値及び属性値を示す情報を参照して、前記スパン情報に示される画素群の色値及び属性値を決定する決定手段と、
を備えることを特徴とする、画像処理装置。
【請求項２】
前記特定手段は、色値及び属性値が変化する境界に加えて、色値が変化しないが属性値が変化する境界を特定することを特徴とする、請求項１に記載の画像処理装置。
【請求項３】
前記特定手段は、開始境界と終端境界との組により規定され、前記開始境界と前記終端境界との間にある色値及び属性値が一定である領域を特定し、
前記第１の領域は複数の分割領域を有し、
前記第１の圧縮手段は、前記第１の領域の１つの分割領域に、前記開始境界と終端境界との組により規定される領域の色値及び属性値を格納し、前記開始境界及び前記終端境界の位置情報を前記第２の領域に格納する
ことを特徴とする、請求項１又は２に記載の画像処理装置。
【請求項４】
前記第１の圧縮手段は、前記開始境界及び前記終端境界の起点座標情報及び終点座標情報を前記第１の領域に格納し、前記開始境界及び前記終端境界の軌跡情報を前記第２の領域に格納する
ことを特徴とする、請求項３に記載の画像処理装置。
【請求項５】
前記開始境界及び前記終端境界の軌跡情報は、前記開始境界及び前記終端境界が通る座標の座標値を符号化することにより得られることを特徴とする、請求項４に記載の画像処理装置。
【請求項６】
前記入力画像中に、可逆圧縮領域と非可逆圧縮領域とを設定する設定手段と、
前記非可逆圧縮領域内の前記入力画像を表す非可逆圧縮データを生成及び出力する第２の圧縮手段と、をさらに備え、
前記特定手段は、前記可逆圧縮領域中で、色値が変化する境界及び属性値が変化する境界を特定し、
前記第１の圧縮手段は、前記可逆圧縮領域についての前記色値及び属性値を示す情報を前記第１の領域に格納し、前記データを可逆圧縮データとして出力する
ことを特徴とする、請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記特定手段は、前記非可逆圧縮領域中で、属性値が変化する境界を特定し、
前記第１の圧縮手段は、前記非可逆圧縮領域について、前記境界によって区切られる領域の属性値を示す情報をさらに前記第１の領域に格納し、前記境界の位置情報を前記第２の領域に格納することを特徴とする、請求項６に記載の画像処理装置。
【請求項８】
前記第１の圧縮手段は、前記属性値が変化する境界における変化後の属性値と、前記属性値が変化する境界の起点座標情報及び終点座標情報とを前記第１の領域に格納し、前記属性値が変化する境界の軌跡情報を前記第２の領域に格納することを特徴とする、請求項７に記載の画像処理装置。
【請求項９】
前記第１の領域は、前記境界が前記可逆圧縮領域中の境界であるか前記非可逆圧縮領域中の境界であるかを示す情報をさらに格納することを特徴とする、請求項７又は８に記載の画像処理装置。
【請求項１０】
前記第２の圧縮手段は、前記可逆圧縮領域中の画素の色値を所定値に置換してから前記入力画像を非可逆圧縮することで、前記非可逆圧縮データを生成することを特徴とする、請求項７乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
色値及び属性値を有する画素で構成される画像において色値が変化する境界及び属性値が変化する境界によって区切られる領域の色値及び属性値を示す第１のデータ要素を第１の領域に含み、前記境界の位置を示す第２のデータ要素を第２の領域に含む構造を有するデータを取得する取得手段と、
前記データの前記第２の領域に格納された、色値が変化する境界及び属性値が変化する前記境界の位置情報を参照して、画像の横方向ライン上で同一の色値及び属性値を有する画素群の位置を示すスパン情報を生成する情報生成手段と、
前記データの前記第１の領域に格納された、前記境界によって区切られる領域の色値及び属性値を示す情報を参照して、前記スパン情報に示される画素群の色値及び属性値を決定する決定手段と、
を備えることを特徴とする、画像処理装置。
【請求項１２】
画像処理装置が行う画像処理方法であって、
色値及び属性値を有する画素で構成される入力画像中で、色値が変化する境界及び属性値が変化する境界を特定する特定工程と、
前記境界によって区切られる領域の色値及び属性値を示す情報を格納する第１の領域と、前記境界の位置情報を格納する第２の領域と、を含むデータを生成及び出力する圧縮工程と、
前記圧縮工程で出力されたデータを取得する取得工程と、
前記データの前記第２の領域に格納された、色値が変化する境界及び属性値が変化する前記境界の位置情報を参照して、画像の横方向ライン上で同一の色値及び属性値を有する画素群の位置を示すスパン情報を生成する情報生成工程と、
前記データの前記第１の領域に格納された、前記境界によって区切られる領域の色値及び属性値を示す情報を参照して、前記スパン情報に示される画素群の色値及び属性値を決定する決定工程と、
を備えることを特徴とする、画像処理方法。
【請求項１３】
画像処理装置が行う画像処理方法であって、
色値及び属性値を有する画素で構成される画像において色値が変化する境界及び属性値が変化する境界によって区切られる領域の色値及び属性値を示す第１のデータ要素を第１の領域に含み、前記境界の位置を示す第２のデータ要素を第２の領域に含む構造を有するデータを取得する取得工程と、
前記データの前記第２の領域に格納された、色値が変化する境界及び属性値が変化する前記境界の位置情報を参照して、画像の横方向ライン上で同一の色値及び属性値を有する画素群の位置を示すスパン情報を生成する情報生成工程と、
前記データの前記第１の領域に格納された、前記境界によって区切られる領域の色値及び属性値を示す情報を参照して、前記スパン情報に示される画素群の色値及び属性値を決定する決定工程と、
を備えることを特徴とする、画像処理方法。
【請求項１４】
コンピュータを、請求項１乃至１１の何れか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、プログラム及びデータに関する。
【背景技術】
【０００２】
画像を処理する際に、画素の属性を表す属性マップを参照し、属性に応じて処理を変更する画像処理技術が知られている。例えば、スキャンして得られた画像に対して像域分離処理を行い、画素毎に文字領域の画素か写真領域の画素かを示す属性マップ情報を生成し、属性マップ情報に応じて画像処理のパラメータを設定することができる。例えば、文字領域の画素に対してはエッジ強調処理を行うことで文字部分の鮮鋭化を行い、写真領域の画素に対してはスムージング処理を行うことによって、良好な出力画像を得ることが可能となる。
【０００３】
また、異なる属性の画素を含む混在画像の符号化における画質劣化を防ぐために、特許文献１は、次の方法を開示している。第１に、文字線画画素を含む前景画像領域を判定し、前景画像領域の多値画像データから２値画像データを生成して可逆圧縮する。第２に、文字線画画素の位置にある多値画素の値を、非文字線画画素の位置にある多値画素の値を用いて置換し、得られた画像（背景画像）を非可逆圧縮する。第３に、文字線画領域内の画素に対する属性データをあらかじめ設定された値でマスクしてから、属性データを可逆圧縮する。以上の方法により、属性データのデータ量を削減しながら、出力画像の画質を向上させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５１３２５３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の方法では、前景画像、背景画像及び属性データがそれぞれ個別に圧縮される。このため、復号時には前景画像の色データ、背景画像の色データ、及び属性データがそれぞれ別々のメモリ領域に展開される。これらのデータを参照して処理を行う際には、色データと属性データとをそれぞれのメモリ領域から読み出す必要がある。また、処理前に色データと属性データとを画素毎に結合する場合であっても、色データと属性データとをそれぞれのメモリ領域から読み出す必要があることに変わりはない。そして、色データと属性データとをそれぞれのメモリ領域から読み出そうとすると、これらのデータを効率よく供給するための二次キャッシュのようなハードウェア資源なしには、キャッシュミスが生じやすくなるという課題があった。
【０００６】
本発明は、色値及び属性値を有する画素で構成される入力画像を符号化しておき、入力画像の処理を行う際には符号化された入力画像を復号して用いる構成において、入力画像の処理を行う際にキャッシュミスを低減し性能を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。すなわち、
色値及び属性値を有する画素で構成される入力画像中で、色値が変化する境界及び属性値が変化する境界を特定する特定手段と、
前記境界によって区切られる領域の色値及び属性値を示す情報を格納する第１の領域と、前記境界の位置情報を格納する第２の領域と、を含むデータを生成及び出力する第１の圧縮手段と、
前記第１の圧縮手段が出力したデータを取得する取得手段と、
前記データの前記第２の領域に格納された、色値が変化する境界及び属性値が変化する前記境界の位置情報を参照して、画像の横方向ライン上で同一の色値及び属性値を有する画素群の位置を示すスパン情報を生成する情報生成手段と、
前記データの前記第１の領域に格納された、前記境界によって区切られる領域の色値及び属性値を示す情報を参照して、前記スパン情報に示される画素群の色値及び属性値を決定する決定手段と、
を備える。
【発明の効果】
【０００８】
色値及び属性値を有する画素で構成される入力画像を符号化しておき、入力画像の処理を行う際には符号化された入力画像を復号して用いる構成において、入力画像の処理を行う際にキャッシュミスを低減し性能を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係る画像処理システムの構成図。
【図２】フラットニング処理の概念を説明する図。
【図３】一実施形態に係る符号化部の構成図。
【図４】一実施形態に係る第２の符号化部の構成図。
【図５】中間データに含まれる圧縮されたビットマップデータのメモリイメージ例。
【図６】ビットマップ内の矩形領域の例及びそこに含まれる領域を示す図。
【図７】ビットマップ内の矩形領域の例及び可逆圧縮領域の境界を示す図。
【図８】ビットマップ内の矩形領域の例及び非可逆圧縮領域の境界を示す図。
【図９】可逆圧縮データのフォーマットの一例を示す図。
【図１０】一実施形態に係る第２の復号部及び第１の出力部の構成図。
【図１１】一実施形態に係る画像処理方法のフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明の実施例を図面に基づいて説明する。ただし、本発明の範囲は以下の実施形態に限定されない。
【００１１】
以下に説明する、本発明の一実施形態に係る画像処理技術を用いることにより、符号化された画像データを復号した際には、色値と属性値とを持つ画素群で構成される画像データがメモリに展開される。このため、色値と属性値とを画素毎に結合するための処理、又はこの処理を効率化するための追加のハードウェア資源を用いることなく、色値と属性値とを持つ画素群で構成される画像データを効率よく復号後の処理で用いることが可能となる。
【００１２】
本発明に係る画像処理技術は、画像の符号化及び復号に一般的に利用可能である。例えば、コンピュータが画像を符号化し、符号化された画像をプリンタに送信し、プリンタが送信された画像を復号して画像処理を行ってから印刷を行う構成において、画像を符号化及び復号する際に、本発明に係る画像処理技術を適用することができる。以下では、本発明に係る画像処理技術の適用例として、ページ記述言語を用いて記述された印刷データをプリンタに送信し、プリンタは印刷データを中間データに変換して一次的に記憶する場合について説明する。この場合、プリンタは、一時的に記憶している中間データからレンダリングによりビットマップデータである印刷画像を生成し、印刷画像に基づいて印刷処理を行う。
【００１３】
ここで、中間データには複数の描画要素が含まれており、印刷画像は中間データで定義されている描画要素を合成することにより生成される。また、中間データには、印刷データとして送信されるビットマップや、後述するフラットニング処理により生成されるビットマップのような、いくつかのビットマップが含まれることがある。そして、中間データの記憶領域を節約するためにこのようなビットマップを符号化して圧縮することができる。本発明に係る画像処理技術は、例えば、このようなビットマップの符号化及び復号に適用することができる。
【００１４】
また、以下の実施形態では、１つの画像（例えば１つのビットマップ）中に可逆圧縮領域と非可逆圧縮領域とを設定し、可逆圧縮領域の画像のみを可逆圧縮し、非可逆圧縮領域の画像は可逆圧縮しない場合について説明する。しかしながら、本発明に係る画像処理技術は、１つの画像全体を１つの方法で圧縮する場合にも適用可能である。
【００１５】
図１は、本実施形態に係る画像圧縮方法及び画像伸長方法を実行する画像処理システム１００の構成の一例を示す。画像処理システム１００は、例えば、１台のプリンタであってもよいし、複数の装置により構成される印刷システムであってもよい。図１において、ＣＰＵ１０１はシステム全体の制御を行う。また、ＣＰＵ１０１は、ＰＤＬによって記述された印刷データを、後述するレンダラ１０５によって解釈される中間データに変換する。この処理を中間データ生成処理という。本実施形態に係る画像圧縮方法は、中間データ生成処理において、圧縮された画像データを含む中間データを生成するために、印刷データに従う画像データを圧縮するために適用される。一実施形態において、ＣＰＵ１０１は、中間データに含まれるビットマップを圧縮する。
【００１６】
ＲＡＭ１０２は、例えばメモリコントローラとＤＲＡＭを備える。ＲＡＭ１０２にはプログラムを展開することができ、ＣＰＵ１０１がＲＡＭ１０２に展開されたプログラムに従って処理を行うことにより、後述する動作を実現できる。また、ＲＡＭ１０２は、ＣＰＵ１０１及び画像処理システム１００上で動作する符号化部３０１のワークメモリとして使用することができる。さらに、ＲＡＭ１０２は、印刷データ、中間データ、及び印刷画像を記憶することができる。
【００１７】
ＲＯＭ１０３はプログラムを記憶している。ＣＰＵ１０１はこのプログラムに従って処理を行うことができる。外部インタフェース（ＩＦ）１０４は、画像処理システム１００を外部機器と接続するインタフェースである。外部ＩＦ１０４を介して、Ｅｔｈｅｒｎｅｔ又はＵＳＢ等の技術を用いることにより、画像処理システム１００は外部機器とデータを送受信することができる。レンダラ１０５は、レンダリング処理を行って中間データを印刷画像に変換する。
【００１８】
画像処理装置１０６は、印刷画像に対する画像処理を行う。例えば、画像処理装置１０６は、印刷画像に対して高画質処理を行ったり、印刷画像を印刷装置１０７に入力可能なデータフォーマットに変換したりすることができる。印刷画像の各画素が属性値を有している場合、属性値を参照して高精度の高画質処理を行うことができる。一例として、文字属性を有する画素に対してはエッジ強調処理を、写真属性を有する画素に対してはスムージング処理を行うことができる。もっとも、画像処理装置１０６は、レンダラ１０５により復号されたビットマップに対して高画質処理を行ってもよい。印刷装置１０７は、電子情報である印刷画像に基づいて、トナーやインクを紙面に定着させて、紙面に画像を形成する。
【００１９】
インターコネクト１０８は、ＣＰＵ１０１、外部ＩＦ１０４、レンダラ１０５、画像処理装置１０６、印刷装置１０７、ＲＡＭ１０２、及びＲＯＭ１０３間のデータ転送経路である。インターコネクト１０８は、共有バスやスイッチ等を用いて構成することができる。
【００２０】
レンダラ１０５は、画像復号装置及び中間データ処理装置を備える。画像復号装置は、制御部１０９、第１の復号部１１０、第２の復号部１１１、及び第１の出力部１１２を備える。中間データ処理装置は、制御部１０９、描画部１１３、及び第２の出力部１１４を備える。図１の例において、制御部１０９は画像復号装置と中間データ処理装置に共通の構成要素であるが、画像復号装置と中間データ処理装置がそれぞれ制御部を有していてもよい。
【００２１】
制御部１０９は、中間データからレンダラ制御情報を読み出し、このレンダラ制御情報に従ってレンダラ１０５を制御する。具体的には、制御部１０９は、第１の復号部１１０、第２の復号部１１１、第１の出力部１１２、描画部１１３、及び第２の出力部１１４に制御情報を転送することにより、これらの各部を制御する。
【００２２】
第１の復号部１１０は、中間データに含まれる非可逆圧縮データを読み出して復号する。非可逆圧縮データの復号により、画素ごとの色値を含む画素データを得ることができる。そして、第１の復号部１１０は、復号により得られた色値で構成される画素データを第２の復号部１１１に転送する。
【００２３】
第２の復号部１１１は、中間データに含まれる可逆圧縮データを読み出し復号する。非可逆圧縮データの復号により、画素ごとに色値及び属性値を含む画素データを得ることができる。そして、第２の復号部１１１は、復号により得られた画素データと、第１の復号部１１１から転送された画素データとを、第１の出力部１１２に転送する。第１の出力部１１２は、転送された画素データを、例えばＲＡＭ１０２等の所定のメモリ領域に書き出す。第１の出力部１１２は、可逆圧縮領域の画素については第２の復号部が復号した色値と属性値とを出力し、非可逆圧縮領域の画素については第１の復号部が復号した色値と第２の復号部が復号した属性値とを出力することができる。
【００２４】
描画部１１３は、ＲＡＭ１０２に記憶されている中間データに従って、印刷画像を構成する画素データを生成する。例えば、描画部１１３は、中間データで定義されている描画要素の合成処理により、印刷画像を生成することができる。具体的には、描画部１１３は、中間データから、描画要素の境界情報、塗り情報、及び合成情報を読み出し、重なり合う描画要素を合成することができる。描画部１１３は、そして、生成した画素データを第２の出力部１１４に転送する。具体的な合成処理の一例としては、画素ごとに、描画要素の色値と属性値である透過率を入力として用いて、所定の計算式に従ってその座標を占める複数の描画要素の色値を合成する方法がある。このような色合成方法はαブレンドと呼ばれ、広く知られている。第２の出力部１１４は、描画部１１３から転送された画素データを、例えばＲＡＭ１０２等の所定のアドレスに転送する。
【００２５】
中間データに圧縮ビットマップが含まれている場合、制御部１０９は、中間データに含まれるレンダラ制御情報に従って、圧縮ビットマップの復号制御情報を第１の復号部１１０および第２の復号部１１１に転送する。第１の復号部１１０及び第２の復号部１１１は、復号制御情報に従って圧縮ビットマップを復号し、第１の出力部１１２を介してＲＡＭ１０２に転送する。
【００２６】
次に、制御部１０９は、中間データに含まれるレンダラ制御情報に従って、描画部１１３に制御情報を転送する。描画部１１３は、第１の復号部１１０及び第２の復号部１１１によって復号され、第１の出力部１１２によってＲＡＭ１０２に転送されているビットマップを読み込み、他の描画要素との合成処理を行う。さらに、合成処理によって得られた、画素データを第２の出力部１１４に転送する。第２の出力部１１４は、ＲＡＭ１０２の所定のアドレスに、画素データを書き出す。以上のレンダリング処理によって、中間データは印刷画像に変換され、ＲＡＭ１０２に記録される。
【００２７】
中間データに含まれるビットマップとしては、印刷データに最初から含まれているビットマップと、フラットニング処理という部分レンダリング処理によって生成されるビットマップと、がある。
【００２８】
ここで、フラットニング処理について述べる。ＣＰＵ１０１により実行される中間データ生成処理は、指定されたサイズのメモリ領域を使って動作する。一方、中間データ生成処理では、多くの描画要素を含んでいたり、複雑な描画要素を含んでいたりする領域を処理する際に、処理に必要なメモリが足りなくなることがある。そこで、割り当てられたメモリが所定領域についての処理を行うのに不十分である場合、複数の描画要素についてビットマップ化処理及びαブレンド処理を行うことで、この領域のビットマップが生成される。この処理をフラットニング処理と呼ぶ。
【００２９】
フラットニング時には、フラットニングの対象となる描画要素の属性値を参照して、ビットマップに対応する属性値が生成される。属性値は、ビットマップの各画素についての属性を示し、例えば各画素に対応する描画要素の種類や、各画素の透過率等を含むことができる。本実施形態において、属性値は、例えば、ビットマップの各画素に対応する描画要素の種類を示す領域属性マップや、ビットマップの各画素に対応する透過率αを示す透過率マップ等として表される。また、中間データに含まれるビットマップは、多くの場合圧縮符号化される。そして、フラットニング処理で生成された属性値も、対応するビットマップとともに圧縮符号化される。属性値は、このように画像処理システム１００によって生成されてもよいが、印刷データにビットマップとともに最初から含まれていてもよい。
【００３０】
図２は、フラットニング処理の概念を示す。図２は、処理対象の矩形領域２０１、透過率０のビットマップ２０２、透過率０の円形のグラフィック図形２０３、透過率０．５の三角形のグラフィック図形２０４、透過率０のテキスト２０５が示されている。フラットニング処理により、ビットマップ２０６が生成される。
【００３１】
具体的には、フラットニング処理により、ビットマップ２０２、円形のグラフィック図形２０３、三角形のグラフィック図形２０４、及びテキスト２０５は順次重ね合わせられ、ビットマップ２０６が生成される。また、この際には、以下のような領域属性マップも生成される。すなわち、描画要素２０２、２０３、２０４、２０５のいずれも存在しない領域の画素には、背景属性が割り当てられる。ビットマップ２０２のみが存在する領域の画素には、ビットマップ画像属性が割り当てられる。グラフィック図形２０３のみが存在する領域と、グラフィック図形２０４のみが存在する領域と、グラフィック図形２０３及びグラフィック図形２０４が重なった領域と、の画素にはグラフィック属性が割り当てられる。ビットマップ２０２とグラフィック図形２０４とが重なった領域の画素には、所定の演算に従って決定された属性が割り当てられる。ビットマップ２０２とテキスト２０５とが重なった領域の画素には、テキスト属性が割り当てられる。
【００３２】
さらに、フラットニング処理によりビットマップ２０６を生成する際には、以下のような透過率マップも生成される。すなわち、描画要素２０２、２０３、２０４、２０５のいずれも存在しない領域の画素には、透過率として１が設定される。グラフィック図形２０４のみが存在する領域の画素には、透過率として０．５が設定される。その他の領域は、透過率０の描画要素が占めるか、透過率０の描画要素を含む描画要素が重ね合わされているため、これらの領域の画素には透過率として０が設定される。
【００３３】
このように、フラットニングによって生成されるビットマップは、異なる属性値を有する複数の領域によって構成され得る。そして、フラットニングによって生成されたビットマップを用いて印刷画像を生成する際には、ビットマップの色値と属性値（透過率）との双方が必要となる。このように、本実施形態に係る画像処理技術は、フラットニングによって生成されたビットマップの圧縮に適用することができる。
【００３４】
以下では、各画素が属性値として透過率を有するビットマップの符号化について主に説明する。しかしながら、属性値は透過率に限られず、例えば前述したように文字領域の画素か写真領域の画素かを示す領域情報であってもよい。また、各画素が２つ以上の属性値の組み合わせを有していてもよい。
【００３５】
図３は、本実施形態に係る画像圧縮方法を実現する符号化部の構成の一例を示す。符号化部３０１は、領域分割部３０２、画像置換部３０３、第１の符号化部３０４、属性結合部３０５、及び第２の符号化部３０６を備える。これらの各部の機能は、例えばＲＯＭ１０３等に格納されているプログラムを、ＲＡＭ１０２等のメモリに展開し、展開されたプログラムに従ってＣＰＵ１０１等のプロセッサが動作することにより実現できる。
【００３６】
符号化部３０１には、色値及び属性値を有する画素で構成される入力画像が入力される。この入力画像は、中間データに含まれるビットマップであり、例えば印刷データに含まれているビットマップ、又はフラットニング処理によって生成されたビットマップ等でありうる。以下の説明において、入力画像はＲＧＢ各８ビットのビットマップであるものとする。この入力画像は、ＲＡＭ１０２上には、以下の順に、各画素の色値（ＲＧＢ値）が記録されている。
【００３７】
Ｒ（０，０）、Ｇ（０，０）、Ｂ（０，０）、Ｒ（１，０）Ｇ（１，０）Ｂ（１，０）、……、Ｒ（Ｘ−ｍａｘ，０）、Ｇ（Ｘ−ｍａｘ，０）、Ｂ（Ｘ−ｍａｘ，０）、Ｒ（０，１）、Ｇ（０，１）、Ｂ（０，１）、Ｒ（１，１）、Ｇ（１，１）、Ｂ（１，１）、……、Ｒ（Ｘ−ｍａｘ，１）、Ｇ（Ｘ−ｍａｘ，１）、Ｂ（Ｘ−ｍａｘ，１）、……、Ｒ（０，Ｙ−ｍａｘ）、Ｇ（０，Ｙ−ｍａｘ）、Ｂ（０，Ｙ−ｍａｘ）、Ｒ（１，Ｙ−ｍａｘ）、Ｇ（１，Ｙ−ｍａｘ）、Ｂ（１，Ｙ−ｍａｘ）、……、Ｒ（Ｘ−ｍａｘ，Ｙ−ｍａｘ）、Ｇ（Ｘ−ｍａｘ，Ｙ−ｍａｘ）、Ｂ（Ｘ−ｍａｘ，Ｙ−ｍａｘ）
【００３８】
ここで、Ｒ（Ｘ，Ｙ）、Ｇ（Ｘ，Ｙ）、Ｂ（Ｘ，Ｙ）は、それぞれビットマップの座標（Ｘ，Ｙ）にある画素のＲＧＢ値を示す。また、入力画像の幅又は高さが例えば１６の倍数でない場合は、１６の倍数となるように画像の右端と下端に所定の色値及び属性値を有する画素がパディングされる。Ｘ−ｍａｘは入力画像の右端画素のＸ座標であり、１６ｍ−１（ｍは自然数）で表される。Ｙ−ｍａｘは入力画像の下端画素のＹ座標であり、１６ｎ−１（ｎは自然数）で表される。
【００３９】
また、以下の説明において、属性値を示す入力属性データは各画素８ビットの透過率マップであるものとする。ＲＡＭ１０２上には、以下の順に、各画素の透過率が記録されている。以下において、α（Ｘ，Ｙ）は、それぞれビットマップの座標（Ｘ，Ｙ）にある画素の透過率αを示す。
【００４０】
α（０，０）、α（１，０）、……、α（Ｘ−ｍａｘ，０）、α（０，１）、α（１，１）、……、α（Ｘ−ｍａｘ，１）、……、α（０，Ｙ−ｍａｘ）、α（１，Ｙ−ｍａｘ）、……、α（Ｘ−ｍａｘ，Ｙ−ｍａｘ）
【００４１】
領域分割部３０２は、入力画像中に、可逆圧縮領域と非可逆圧縮領域とを設定する。こうして、領域分割部３０２は、入力画像を非可逆圧縮領域と可逆圧縮領域とに分割する。また、領域分割部３０２は、入力画像のそれぞれの画素について、非可逆圧縮領域か可逆圧縮領域かを識別するための領域特定情報を生成する。
【００４２】
本実施形態において、領域分割部３０２は、同じ色値及び属性値を有し互いに隣接する所定数以上の画素で構成される領域を１つの可逆圧縮領域として設定する。本実施形態において、所定数は３画素であるが、特に限定されない。本実施形態においては全く同じ色値及び属性値を有する画素により１つの可逆圧縮領域が構成されるが、用途によっては、１つの可逆圧縮領域に含まれる画素の色値及び属性値に閾値以下の誤差が存在してもよい。また、入力画像において予め可逆圧縮領域及び非可逆圧縮領域が設定されている場合、又は可逆圧縮領域及び非可逆圧縮領域を設定しない場合、領域分割部３０２は不要である。
【００４３】
以下では、領域分割部３０２の具体的な処理例について説明する。領域分割部３０２は、ＲＡＭ１０２から、１６×１６画素の矩形単位で、ビットマップの画素データを読み込む。ここで領域分割部３０２は、矩形領域の左上の画素からラスタ順に画素データを順次読み込み、読み込んだ画素データのうち連続する３ライン分の画素データをバッファする。そして、領域分割部３０２は、バッファされた３ライン分の画素データを参照し、隣接する３つ以上の画素についてＲＧＢ値が同一である場合、ＲＧＢ値が同一である画素群で構成される領域を可逆圧縮領域と判定する。ここで、画素が隣接するとは、２つの画素について、Ｘ座標の差分が０又は１であり、かつＹ座標の差分が０又は１であることを意味する。一方、領域分割部３０２は、隣接する画素のＲＧＢ値が同一であっても２つの隣接する画素しかＲＧＢ値が同一ではない場合、又は隣接するいずれの画素ともＲＧＢ値が異なる場合には、これらの画素で構成される領域を非可逆圧縮領域と判定する。
【００４４】
そして、領域分割部３０２は、可逆圧縮領域と判定された画素には、可逆圧縮領域であることを示す領域特定情報を割り当て、非可逆圧縮領域と判定された画素には、非可逆圧縮領域であることを示す領域特定情報を割り当てる。各画素について生成された領域特定情報は、ビットマップに含まれる画素の色値及び属性値の並びと同じ順序で、画像置換部３０３と属性結合部３０５とに供給される。
【００４５】
画像置換部３０３は、可逆圧縮領域中の画素の色値を所定値に置換することで、非可逆圧縮対象画像を生成する。本実施形態において、画像置換部３０３は、領域特定情報を参照して、可逆圧縮領域にある画素のＲＧＢ値を置換することで、非可逆圧縮対象画像を生成する。本実施形態において、画像置換部３０３は、非可逆圧縮領域にある画素のＲＧＢ値を参照して算出した置換値で、可逆圧縮領域にある画素のＲＧＢ値を置換する。例えば、画像置換部３０３は、入力画像データを１６×１６画素の矩形単位で読み出し、１６×１６画素の矩形単位の非可逆圧縮対象画像を生成することができる。この際に画像置換部３０３は、矩形領域内の画素のうち、非可逆圧縮領域にある画素の平均Ｒ値、平均Ｇ値、及び平均Ｂ値で、可逆圧縮領域にある画素のＲ値、Ｇ値、及びＢ値のそれぞれを置換することができる。
【００４６】
このように、可逆圧縮領域中の画素の色値を所定値に置換することで生成された入力画像に対して、第１の符号化部３０４により非可逆圧縮が行われる。この処理により、非可逆圧縮対象画像を非可逆圧縮及び復号した場合における、非可逆圧縮領域の画像劣化を抑えることができる。しかしながら、画像置換部３０３による置換処理は必須ではない。なお、後述する第１の符号化部３０４、属性結合部３０５、及び第２の符号化部３０６は、画像置換部３０３による置換処理と同じ矩形単位で処理を行うことができる。
【００４７】
第１の符号化部３０４は、非可逆圧縮領域内の入力画像を表す非可逆圧縮データを生成する。例えば、第１の符号化部３０４は、非可逆圧縮対象画像を１６×１６画素の矩形単位で非可逆圧縮することで、非可逆圧縮データを生成することができる。圧縮方式は特に限定されないが、例えばＪＰＥＧ方式が挙げられる。また、本実施形態においては非可逆圧縮対象画像の全体が圧縮されるが、非可逆圧縮領域内の入力画像のみが圧縮されてもよい。なお、本実施形態において、属性値は非可逆圧縮データには含まれない。
【００４８】
属性結合部３０５は、１６×１６画素の矩形単位で、入力画像データと属性データを、矩形領域の左上画素から順次読み込む。そして、属性結合部３０５は、画素毎に入力画像データのＲＧＢ値と属性データを結合する。本実施形態で属性結合部３０５は、色値としてＲＧＢ値、属性値としてα値を結合する。こうして、属性結合部３０５は、各画素についてＲＧＢα値を有する可逆圧縮対象画像を生成する。可逆圧縮対象画像のデータは、以下のように矩形順に整列され、第２の符号化部３０６に供給される。
【００４９】
［矩形（０，０）］、［矩形（１，０）］、［矩形（２，０）］、……、［矩形（Ｘ’ｍａｘ，０）］、［矩形（１，０）］、［矩形（１，１）］、……、［矩形（Ｘ’ｍａｘ，Ｙ’ｍａｘ−１）］、［矩形（０，Ｙ’ｍａｘ）］、［矩形（１，Ｙ’ｍａｘ）］、……、［矩形（Ｘ’ｍａｘ，Ｙ’ｍａｘ）］、
【００５０】
ここで、矩形（Ｘ，Ｙ）は、左からＸ番目の、上からＹ番目の矩形を示す。また、Ｘ’ｍａｘ及びＹ’ｍａｘはそれぞれ横方向及び縦方向の矩形の数を表し、Ｘ’ｍａｘ＝Ｘ−ｍａｘ−１５）／１６、Ｙ’ｍａｘ＝（Ｙ−ｍａｘ−１５）／１６）である。それぞれの矩形の画像データは、以下のように画素順に整列されている。以下において、Ｒ（Ｘ，Ｙ）、Ｇ（Ｘ，Ｙ）、Ｂ（Ｘ，Ｙ）、α（Ｘ，Ｙ）は、それぞれ矩形内で左からＸ番目、上からＹ番目の画素のＲ値、Ｇ値、Ｂ値、及びα値を表す。
【００５１】
Ｒ（０，０）、Ｇ（０，０）、Ｂ（０，０）、α（０，０）、Ｒ（１，０）、Ｇ（１，０）、Ｂ（１，０）、α（１，０）、……、Ｒ（１５，０）、Ｇ（１５，０）、Ｂ（１５，０）、α（１５，０）、Ｒ（０，１）、Ｇ（０，１）、Ｂ（０，１）、α（０，１）、Ｒ（１，１）、Ｇ（１，１）、Ｂ（１，１）、α（１，１）、……、Ｒ（１５，１）、Ｇ（１５，１）、Ｂ（１５，１）、α（１５，１）、……、Ｒ（０，１５）、Ｇ（０，１５）、Ｂ（０，１５）、α（０，１５）、Ｒ（１，１５）、Ｇ（１，１５）、Ｂ（１，１５）、α（１，１５）、……、Ｒ（１５，１５）、Ｇ（１５，１５）、Ｂ（１５，１５）、α（１５，１５）
【００５２】
第２の符号化部３０６は、１６×１６画素の矩形単位で、可逆圧縮対象画像を後述するように図９に示すフォーマットの圧縮データに圧縮する。図４は、第２の符号化部３０６の構成の一例を示す。
【００５３】
境界抽出部４０１は、色値が変化する境界及び属性値が変化する境界を特定する。この分割境界は、色値と属性値との少なくとも一方が変化する境界でありうる。本実施形態において、境界抽出部４０１は、画像領域を分割し、それぞれの領域を区切る分割境界の位置を示す境界情報を生成する。本実施形態において、境界抽出部４０１は、可逆圧縮領域中では色値が変化する境界及び属性値が変化する境界を特定する。こうして特定された境界により規定される可逆圧縮領域内の１つの分割領域は、色値及び属性値が同一である隣接画素群で構成される。また、境界抽出部４０１は、非可逆圧縮領域中では属性値が変化する境界を特定する。こうして特定された境界により規定される非可逆圧縮領域内の１つの分割領域は、属性値が同一である隣接画素群で構成される。このように、非可逆圧縮領域中で、属性値が変化する境界によって区切られる領域には、色値が異なる画素が含まれてもよい。境界抽出部４０１は、このような規則に従って、画像領域を１以上の分割領域に分割する。
【００５４】
まず、可逆圧縮領域についての具体的な処理例について以下で説明する。境界抽出部４０１は、上端からラインごとに、左隣の画素との間で、色値又は属性値が異なる画素を、境界画素として抽出する。可逆圧縮領域の左端の画素は、常に境界として抽出される。さらに境界抽出部４０１は、上隣の画素との間で、色値又は属性値が異なる画素も、境界画素として抽出する。そして、境界抽出部４０１は、処理済の上隣のラインにある同一の色値及び属性値を有する画素を検出して、現在のラインにある境界画素と上隣のラインにある境界画素とを関連づけることにより、境界を特定する。このように、境界抽出部４０１は、色値及び属性値が変化する境界に加えて、色値が変化しないが属性値が変化する境界も特定する。
【００５５】
非可逆圧縮領域においては、境界抽出部４０１は、上端からラインごとに、左隣の画素との間で、属性値が異なる画素を、境界画素として抽出する。さらに境界抽出部４０１は、上隣の画素との間で、属性値が異なる画素も、境界画素として抽出する。そして、境界抽出部４０１は、処理済の上隣のラインにある同一の属性値を有する画素を検出して、現在のラインにある境界画素と上隣のラインにある境界画素とを関連づけることにより、境界を特定する。
【００５６】
ヘッダ生成部４０２は、境界抽出部４０１が特定した境界によって区切られる領域の色値及び属性値を示す情報を生成する。もっとも、非可逆圧縮領域については、領域の色を示す情報は生成されず、境界抽出部４０１が特定した境界によって区切られる領域の属性値を示す情報が生成される。また、軌跡生成部４０３は、境界抽出部４０１が特定した境界の位置情報を生成する。ヘッダ生成部４０２及び軌跡生成部４０３が生成する情報は、境界によって区切られる領域の色値及び属性値を示す情報、又は境界抽出部４０１が特定した境界の位置情報を含んでいるのであれば、特定のフォーマットに限定されない。例えば、境界の右側に存在する領域の色値及び属性値を示す情報と境界の位置情報とが生成されてもよい。さらに、１組の境界に挟まれる領域の色値及び属性値を示す情報とそれぞれの境界の位置情報とが生成されてもよい。
【００５７】
本実施形態においては、境界抽出部４０１が特定した境界によって区切られる可逆圧縮領域のそれぞれについて、左端の境界である開始境界と、右端の境界である終端境界と、を示す情報が生成される。このように、境界抽出部４０１は、開始境界と終端境界との組により規定され、開始境界と終端境界との間にある色値及び属性値が一定である領域を特定している。
【００５８】
そして、ヘッダ生成部４０２は、開始境界と終端境界との組により規定される領域ごとに、領域内の画素の色値及び属性値を示す情報を生成する。また、ヘッダ生成部４０２はさらに、開始境界及び終端境界の起点座標情報及び終点座標情報を生成する。具体例として、ヘッダ生成部４０２は、開始境界の最上端におけるＸ座標及びＹ座標、開始境界の最下端におけるＹ座標、並びに終端境界の最上端におけるＸ座標を示す情報を生成する。一方、軌跡生成部４０３は、開始境界と終端境界とのそれぞれについて、開始境界及び終端境界が通る座標の座標値を符号化及び整列することで軌跡情報を生成する。例えば、軌跡生成部４０３は、最上端から最下端までの各横方向ライン間における境界のＸ座標の変位を示す情報を、軌跡情報として生成する。
【００５９】
また、本実施形態においては、境界抽出部４０１が特定した境界によって区切られる非可逆圧縮領域のそれぞれについては、属性値が変化する境界を示す情報が生成される。具体例として、境界抽出部４０１が特定した属性値が変化する境界によって区切られる非可逆圧縮領域のそれぞれについては、左端の境界（属性境界）を示す情報が生成される。そして、ヘッダ生成部４０２は、属性値が変化する境界における変化後の属性値を示す情報を生成する。具体例として、ヘッダ生成部４０２は、属性境界の右側にある領域について、領域内の画素の属性値を示す情報を生成する。また、ヘッダ生成部４０２はさらに、属性境界の起点座標情報及び終点座標情報を生成する。具体例として、ヘッダ生成部４０２は、属性境界の最上端におけるＸ座標及びＹ座標、並びに属性境界の最下端におけるＹ座標を示す情報を生成する。そして、軌跡生成部４０３は、属性境界が通る座標の座標値を符号化することで軌跡情報を生成する。
【００６０】
一方、境界抽出部４０１が特定した境界によって区切られる非可逆圧縮領域の属性値が、左隣の可逆圧縮領域の属性値と同じである場合には、この領域についての属性境界を示す情報は省略される。本実施形態においては、左隣の可逆圧縮領域の終端境界と、右隣の可逆圧縮領域の開始境界又は非可逆圧縮領域の属性境界を示す情報を用いて、属性境界を示す情報が省略されている非可逆圧縮領域を特定することができる。
【００６１】
以上のようにしてヘッダ生成部４０２が生成した情報は、可逆圧縮データ９０１の第１の領域（ヘッダ部）に格納される。また、軌跡生成部４０３が生成した情報は、可逆圧縮データ９０１の第２の領域（軌跡データ部）に格納される。
【００６２】
次に、図１に示すシステムにより生成される圧縮データのフォーマットについて、図５〜図９を参照して説明する。
【００６３】
図５は、中間データに含まれる圧縮されたビットマップデータのメモリイメージである。メモリイメージ５は、ページやフレームなどの描画領域に含まれるビットマップのデータとして、ビットマップヘッダ５０１と圧縮ビットマップデータ５０２を含む。
【００６４】
ビットマップヘッダ５０１は、ページやフレームなどの描画領域に含まれるビットマップ（図５の例では、ビットマップ１〜ビットマップＢ）ごとに定義されるヘッダの集合である。ビットマップヘッダは、ビットマップサイズ５０１１、チャネル数５０１２、ビット精度５０１３、可逆圧縮データへのポインタマップ５０１４、及び非可逆圧縮データへのポインタマップ５０１５を含む。
【００６５】
１つのビットマップは１６×１６画素の矩形領域に分割されている。以下の説明では、ビットマップ１はＷ×Ｈ個の矩形領域で構成されているものとする。元のビットマップの縦画素数又は横画素数が１６の整数倍でない場合は、縦画素数及び横画素数が１６の整数倍となるようにパディングを付加した後に、ビットマップを矩形領域に分割することができる。
【００６６】
ビットマップサイズ５０１１は、ビットマップのサイズを示し、より具体的にはビットマップの幅及び高さのそれぞれについて、１６の何倍であるかを示す。チャネル数５０１２は、ビットマップの色数を示す。チャネル数５０１２は、ＲＧＢの場合は３チャネル、ＣＭＹＫの場合は４チャネル、ＹＵＶの場合は３チャネル、ＢＷの場合は１チャネルとなる。ビット精度５０１３は、色を１チャネルあたり何ビットで表現するのかを示す。可逆圧縮データへのポインタマップ５０１４には、各矩形領域に対応する可逆圧縮データの先頭アドレスが格納される。非可逆圧縮データへのポインタマップ５０１５には、各矩形領域に対応する非可逆圧縮データの先頭アドレスが格納される。
【００６７】
圧縮ビットマップデータ５０２は、ページやフレームなどの描画領域に含まれるビットマップ（ビットマップ１〜ビットマップＢ）を圧縮したものである。可逆圧縮データは各ビットマップごとの可逆圧縮データで構成され、非可逆圧縮データも、各ビットマップごとの非可逆圧縮データで構成される。また、１つのビットマップについての可逆圧縮データは、各矩形領域に対応する可逆圧縮データで構成され、１つのビットマップについての非可逆圧縮データも、各矩形領域に対応する非可逆圧縮データで構成される。
【００６８】
例えば、ビットマップ１の圧縮ビットマップデータは、各矩形領域の可逆圧縮データ５０１６、５０１７、……、５０１８と、各矩形領域の非可逆圧縮データ５０１９、５０２０、……、５０２１と、を含む。そして、ビットマップ１内の矩形領域１の圧縮ビットマップデータは、可逆圧縮データ５０１６と非可逆圧縮データ５０１９とを含む。各矩形領域の可逆圧縮データは、１６×１６画素の矩形領域内の境界情報と、それぞれの分割領域（単色領域）についての色情報及び属性情報を含む。また、各矩形領域の非可逆圧縮データは、縦横２個ずつ、合計４個の８×８画素のＭＣＵ(Minimum Coded Unit)で構成される、１６×１６画素のＪＰＥＧデータである。可逆圧縮データ５０１６、５０１７、……、５０１８と、非可逆圧縮データ５０１９、５０２０、……、５０２１について、図６〜図８を参照してさらに説明する。
【００６９】
図６は、１つのビットマップに含まれる１６×１６画素の矩形領域６を表す。図６において、実線は矩形領域の外端及び分割領域の境界を示し、破線はＪＰＥＧのＭＣＵに相当する８×８の小矩形領域の境界を示す。また、図６には、境界によって区切られた分割領域６０１〜６０８が示されている。具体的には、図６には、第１の領域６０１（可逆圧縮領域）、第２の領域６０２（非可逆圧縮領域）、第３の領域６０３（可逆圧縮領域）、及び第４の領域６０４（可逆圧縮領域）が示されている。図６には、さらに、第５の領域６０５（非可逆圧縮領域）、第６の領域６０６（可逆圧縮領域）、第７の領域（可逆圧縮領域）、及び第８の領域６０８（非可逆圧縮領域）が示されている。
【００７０】
矩形領域６において、第２の領域６０２、第５の領域６０５、及び第８の領域６０８においては、同じ色値及び属性値を有する３つ以上の画素が隣接しておらず、これらの領域は非可逆圧縮される。第１の領域６０１、第３の領域６０３、第４の領域６０４、第６の領域６０６、及び第７の領域６０７は、同じ色値及び属性値を有する３つ以上の画素が隣接している領域であり、可逆圧縮される。
【００７１】
図７は、矩形領域６を分割する、可逆圧縮領域の横方向ライン上の先頭を示す属性を有する境界（開始境界）と、可逆圧縮領域の横方向ライン上の終端を示す属性を有する境界（終端境界）とを示す。図７において、実線は開始境界を示し、太い破線は終端境界を示す。開始境界の右隣の画素から１つの可逆圧縮領域が開始し、終端境界の右隣の画素で１つの可逆圧縮領域が終了する。以下では、１つの可逆圧縮領域を表す開始境界と終端境界とのセットを可逆圧縮領域境界と呼ぶ。開始境界と終端境界とは、互いに交わらないように、一対の組をなす境界情報として第２の符号化部３０６によって生成される。
【００７２】
図７には、第１の領域６０１の開始境界７０１及び終端境界７０２と、第３の領域６０３の開始境界７０３及び終端境界７０４と、第４の領域６０４の開始境界７０５及び終端境界７０６と、が示されている。図７にはさらに、第６の領域６０６の開始境界７０７及び終端境界７０８と、第７の領域６０７の開始境界７０９及び終端境界７１０と、が示されている。
【００７３】
図８は、矩形領域６内の非可逆圧縮領域について、属性のみを定義する境界を示す。図８には、第２の領域６０２の属性を定義する境界８０１、第５の領域６０５の属性を定義する境界８０２、並びに第８の領域６０８の属性を定義する境界８０３及び８０４を示す。図２の領域６０２及び第五の領域６０５においては、領域内で属性が変化しない。一方、第８の領域６０８は、属性が異なる２つの領域で構成される。以下では、これら属性のみを定義する境界のことを属性境界と呼ぶ。
【００７４】
図９は、可逆圧縮データのフォーマットを示す。９０１は、１６×１６画素の矩形領域の可逆圧縮データであり、可逆圧縮データ５０１６、５０１７、……、５０１８のうちの１つに相当する。可逆圧縮データ９０１は、境界数９０１１及び境界ヘッダ９０１２、……、９０１３が格納されるヘッダ部（第１の領域）と、軌跡データ９０１４、……、９０１５が格納される軌跡データ部（第２の領域）とに分割された構造を有する。
【００７５】
可逆圧縮データ９０１のヘッダ部には、色値及び属性値を有する画素で構成される画像において色値が変化する境界及び属性値が変化する境界によって区切られる領域の色値及び属性値を示す第１のデータ要素が含まれている。例えば、ヘッダ部には、ヘッダ生成部４０２が生成した情報を格納することができる。また、可逆圧縮データ９０１の軌跡データ部には、境界の位置を示す第２のデータ要素が含まれている。例えば、軌跡データ部には、軌跡生成部４０３が生成した情報を格納することができる。
【００７６】
境界数９０１１は、１６×１６画素の矩形領域内にある、可逆圧縮領域の開始境界と終端境界の組の数と、属性のみを定義する属性境界の数と、の合計値を示す。図９において、境界数はＥである。すなわち、矩形領域内には１番目〜Ｅ番目までの境界があり、それぞれの境界は可逆圧縮領域境界又は属性境界である。以下では、Ｎ番目の境界のことを境界Ｎ−１と呼ぶ。
【００７７】
可逆圧縮データ９０１のヘッダ部には、境界０〜境界Ｅ−１のヘッダ情報である境界ヘッダが格納される。ヘッダ部は複数の領域に分割されており、１つの分割領域には、開始境界と終端境界との組により規定される１つの可逆圧縮領域の色値及び属性値、又は属性境界を用いて規定される１つの非可逆圧縮領域の属性値が格納される。
【００７８】
例えば、境界０の境界ヘッダ９０１２は、１番目の境界の境界ヘッダであり、境界Ｅ−１の境界ヘッダ９０１３は、Ｅ番目の境界の境界ヘッダである。また、可逆圧縮データ９０１の軌跡データ部には、境界０〜境界Ｅ−１の軌跡データが格納される。例えば、軌跡データ９０１４は境界０の軌跡データであり、軌跡データ９０１５は境界Ｅ−１の軌跡データである。この軌跡データは、各横方向ラインにおける境界の横方向（Ｘ）座標を特定するためのデータであり、関数、横方向ライン上の横方向（Ｘ）座標、横方向ライン間の横方向（Ｘ）座標の差分、などを含むことができる。
【００７９】
９０２は、可逆圧縮領域境界についての境界ヘッダの、すなわち可逆圧縮領域の開始境界と終端境界の組に対応する境界ヘッダのフォーマットを示す。領域色(Region Color)・属性値９０２１は、それぞれ可逆圧縮領域の色値と属性値を示す。境界種別９０２６は、境界が可逆圧縮境界であるか属性境界であるかを示し、可逆圧縮領域境界についての境界ヘッダ９０２においては境界が可逆圧縮境界であることを示す。このように、可逆圧縮データ９０１のヘッダ部には、境界が可逆圧縮領域中の境界であるか非可逆圧縮領域中の境界であるかを示す情報が格納される。
【００８０】
また、境界ヘッダには、軌跡の位置情報の一部を格納することができる。例えば、先頭Ｙ座標(Start Y Position)９０２２は、境界の開始点の縦方向（Ｙ）座標、すなわち開始境界の最上端の位置を示す。開始Ｘ座標(Enabling X Position)９０２３は、開始境界の開始点の横方向（Ｘ）座標、すなわち開始境界の最上端におけるＸ座標を示す。末尾Ｙ座標(End Y Position)９０２４は、境界の終端点の縦方向（Ｙ）座標、すなわち開始境界の最下端の位置を示す。終端Ｘ座標(Disabling X Position)９０２５は、終端境界の開始点の横方向（Ｘ）座標、すなわち終端境界の最上端におけるＸ座標を示す。なお、終端境界の開始点及び終端点の縦方向（Ｙ）座標は、対をなす開始境界の開始点及び終端点の縦方向（Ｙ）座標と等しいため、境界ヘッダ９０２では省略されている。一方、これらの位置情報は、軌跡データとして記録することもできる。
【００８１】
９０３は、属性境界についての境界ヘッダのフォーマットを示す。属性値９０３１は、属性境界の右側の領域についての属性値を示す。開始Ｘ座標(Enabling X Position)９０３３は、属性境界の開始点の横方向（Ｘ）座標を示す。また、境界ヘッダ９０３には、属性境界の先頭Ｙ座標９０２２及び末尾Ｙ座標９０２４が含まれる。
【００８２】
境界ヘッダ９０１２〜９０１３は、先頭Ｙ座標９０２２の昇順にソートされており、かつ同じ先頭Ｙ座標９０２２を有する境界ヘッダは、開始Ｙ座標９０２３の昇順にソートされている。すなわち、矩形領域を左上から右下へ向かって走査する順番に整列された状態で、境界ヘッダはメモリに格納されている。
【００８３】
以下では、可逆圧縮データ９０１の復号方法について説明する。各横方向ラインにおいて、１つの可逆圧縮領域境界についての開始境界の横方向（Ｘ）座標から終端境界の横方向（Ｘ）座標までの間にある画素は、境界ヘッダ９０２に定義された領域色の色値及び属性値を有する画素となる。１つの横方向ライン上で、１つの可逆圧縮領域境界についての終端境界と別の可逆圧縮領域境界についての開始境界の間にギャップがないことは、可逆圧縮領域が隣接していることを示す。
【００８４】
また、１つの横方向ライン上で、１つの可逆圧縮領域境界についての終端境界と別の可逆圧縮領域境界についての開始境界の間にギャップがあることは、終端境界の右隣の画素から次の開始境界の左隣の画素までは、非可逆圧縮領域に含まれることを示す。このような非可逆圧縮領域に含まれる画素の色値は、非可逆圧縮データを伸張することによって得られる。また、このような非可逆圧縮領域に含まれる画素の属性値は、属性境界が存在しなければ左隣の可逆圧縮領域と同じ値となる。一方、１つの横方向ライン上で、１つの可逆圧縮領域境界についての終端境界の右隣に属性境界が隣接する場合、又は非可逆圧縮領域中に属性境界が存在する場合には、属性境界の画素及びその右側の画素の属性値は、境界ヘッダ９０３に定義された属性値となる。
【００８５】
横方向ラインの左端（Ｘ＝０）に可逆圧縮領域境界の開始境界が存在しない場合、横方向ライン上の左端（Ｘ＝０）から、最初に出現する可逆圧縮領域境界の開始境界の左隣の画素までは、非可逆圧縮領域に含まれる。また、１つの横方向ラインに可逆圧縮領域境界の開始座標が存在しない場合は、左端（Ｘ＝０）から右端（Ｘ＝１５）までが非可逆圧縮領域に含まれる。この場合、非可逆圧縮領域に含まれる画素の属性値は、属性境界が存在しなければ、１つ上の横方向ラインの右端画素の属性値と同じ値となる。一方、横方向ラインの左端（Ｘ＝０）に属性境界がある場合は、左端画素及びその右側の画素の属性値は、属性境界の境界ヘッダ９０３に定義された属性値となる。
【００８６】
なお、矩形領域の一番上のラインの左端には、可逆圧縮領域境界の開始境界か、属性境界か、のいずれかが存在する。
【００８７】
矩形領域６についての可逆圧縮データを表１に示す。
【００８８】
【表１】
0006762758.tif 000002
【００８９】
表１について簡単に説明する。矩形領域６には、可逆圧縮領域である第１の領域、第３の領域、第４の領域、第６の領域、及び第７の領域に対応する５つの可逆圧縮領域境界と、４つの属性境界が存在するため、境界数（Ｅ）は９である。
【００９０】
第１の領域についての境界である境界０の境界ヘッダには、境界種別として可逆圧縮領域境界であることを示す情報、領域色として第１の領域の色値である０ｘＦＦ００００、属性値として第１の領域の属性値である０が記録されている。また、開始境界７０１及び終端境界７０２の最上端は座標（Ｙ＝０）の横方向ラインに存在するため、先頭Ｙ座標は０であり、最下端は座標（Ｙ＝９）の横方向ラインに存在するため、末尾Ｙ座標は９である。さらに、開始境界７０１及び終端境界７０２の最上端が存在する座標（Ｙ＝０）の横方向ラインにおいて、開始境界７０１の横方向（Ｘ）座標は０であるから開始Ｘ座標は０であり、終端境界７０２の横方向（Ｘ）座標は２であるから、終端Ｘ座標は２である。
【００９１】
属性境界８０１を表す境界１の境界ヘッダには、境界種別として属性境界であることを示す情報、属性値として属性境界８０１の右側の領域にある画素の属性値である２が記録されている。また、属性境界８０１の最上端は座標（Ｙ＝０）の横方向ラインに存在するため、先頭Ｙ座標は０であり、最下端は座標（Ｙ＝３）の横方向ラインに存在するため、末尾Ｙ座標は３である。さらに、属性境界８０１の最上端が存在する座標（Ｙ＝０）の横方向ラインにおいて、属性境界８０１の横方向（Ｘ）座標は３であるから、開始Ｘ座標は３である。境界２〜８についても同様であるから、説明は省略する。
【００９２】
第１の領域についての境界である境界０の軌跡データとしては、開始境界の軌跡データと終端境界の軌跡データとが記録される。先頭Ｙ座標（Ｙ＝０）から末尾Ｙ座標（Ｙ＝９）までの開始境界の横方向（Ｘ）座標は、順に０、０、０、０、０、０、１、２、３、４である。本実施形態では、開始境界の軌跡データとして、隣接する横方向ライン間での横方向（Ｘ）座標の差分である０、０、０、０、０、＋１、＋１、＋１、＋１を記録する。同様に、先頭Ｙ座標（Ｙ＝０）から末尾Ｙ座標（Ｙ＝９）までの終端境界の横方向（Ｘ）座標は、順に２、５、５、６、７、６、６、６、５、５である。したがって、終端境界の軌跡データとしては、隣接する横方向ライン間での横方向（Ｘ）座標の差分である＋３、０、＋１、＋１、−１、０、０、−１、０を記録する。
【００９３】
属性境界８０１を表す境界１の軌跡データとしては、属性境界８０１の軌跡データが記録される。属性境界８０１の、先頭Ｙ座標（Ｙ＝０）から末尾Ｙ座標（Ｙ＝３）までの開始境界の横方向（Ｘ）座標は、順に３、６、６、７である。そこで、属性境界８０１を表す境界１の軌跡データとしては、横方向（Ｘ）座標の差分である＋３、０、＋１を記録する。境界２〜８についても同様であるから、説明は省略する。
【００９４】
次に、非可逆圧縮データについて説明する。矩形領域６の非可逆圧縮データはＪＰＥＧによって圧縮されたデータであり、８×８画素のＭＣＵ４個で構成され、ＭＣＵは縦横それぞれ２個並んでいる。非可逆圧縮データは、矩形領域６の全画素の色値を示す。従って、可逆圧縮領域である第１の領域６０１、第３の領域６０３、第４の領域６０４、第６の領域６０６、及び第７の領域６０７についても色値を有している。
【００９５】
図１０は、第２の復号部１１１及び第１の出力部１１２の構成の一例を示す。図１０において、第２の復号部１１１は、データ読込部１００１、境界追跡部１００３、スパン情報生成部１００４、領域色／属性値読取部１００５、属性値読取部１００６、及び属性値結合部１００７を備える。また、第１の出力部１１２は、画像読込部１００２及び画素選択部１００８を備える。
【００９６】
以下では、ビットマップ１の矩形領域６について復号を行う場合について説明するが、矩形領域１〜矩形領域Ｗ×ＨまでのＷ×Ｈ個の矩形領域について順次復号を行うことにより、ビットマップ１の全体を復号することができる。また、ビットマップ１〜Ｂのそれぞれについてこのような処理を行うことにより、画像全体を復号することができる。
【００９７】
データ読込部１００１は、制御部１０９の指示に従ってＲＡＭ１０２から圧縮ビットマップデータ５０２に含まれるビットマップ１の矩形領域６の可逆圧縮データを読み込む。画像読込部１００２は、第１の復号部１１０が圧縮ビットマップデータ５０２に含まれるビットマップ１の矩形領域６の非可逆圧縮データを復号することにより得た、画像データを読み込む。
【００９８】
境界追跡部１００３及びスパン情報生成部１００４は、可逆圧縮データ９０１の軌跡データ部に格納された軌跡データを参照して、スパン情報を生成する。スパン情報は、可逆圧縮領域については、画像の横方向ライン上で同一の色値及び属性値を有する画素群の位置を示す。また、スパン情報は、非可逆圧縮領域については、画像の横方向ライン上で同一の属性値を有する画素群の位置を示す。上述のように、この軌跡データには、色値が変化する境界及び属性値が変化する境界の位置情報が記録されている。
【００９９】
本実施形態の場合、境界追跡部１００３はさらに、境界０〜境界Ｅ−１のそれぞれについて、境界ヘッダを参照して可逆圧縮領域境界の開始境界及び終端境界、並びに属性境界の始点及び終点を取得する。そして境界追跡部１００３は、軌跡データを参照して座標値を更新することで、境界０〜境界Ｅ−１のそれぞれについて、可逆圧縮領域境界の開始境界及び終端境界、並びに属性境界の位置を決定及び保持する。
【０１００】
スパン情報生成部１００４は、各横方向ライン上に存在する境界のＸ座標を参照して、横方向ライン上にある領域の画素数を算出する。そして、スパン情報生成部１００４は、横方向ライン上にある領域のそれぞれについて、左端境界のＸ座標と画素数とで構成されるスパン情報を生成する。スパン情報生成部１００４は、境界ヘッダに基づいて、それぞれのスパン情報が、可逆圧縮領域のスパン情報であるか、非可逆圧縮領域のスパン情報であるか、を知ることができる。
【０１０１】
領域色／属性値読取部１００５は、可逆圧縮データ９０１のヘッダ部に格納された境界ヘッダを参照して、スパン情報に示される画素群の色値及び属性値を決定する。上述のように、この境界ヘッダには、境界によって区切られる領域の色値及び属性値を示す情報が記録されている。具体的には、領域色／属性値読取部１００５は、可逆圧縮領域のそれぞれについて、スパン情報に対応する色値と属性値とを境界ヘッダから読み取る。
【０１０２】
属性値読取部１００６は、非可逆圧縮領域のそれぞれについて、境界ヘッダからスパン情報に対応する属性値を読み取る。属性値結合部１００７は、画像読込部１００２が読み込んだ画像における色値と、属性値結合部１００７が読み取った属性値とを結合することで、スパン情報に対応する画素に色値と属性値とを設定する。
【０１０３】
画素選択部１００８は、スパン情報に基づいて可逆圧縮領域の画素と非可逆圧縮領域の画素を選択し、順次選択された画素の色値と属性値とを出力する。こうして、可逆圧縮データ及び非可逆圧縮データの復号が完了する。
【０１０４】
本実施形態における画像処理方法について、図１１のフローチャートを参照して簡単に説明する。図１１（Ａ）は、符号化処理のフローチャートである。ステップＳ１１１０において、領域分割部３０２は、上述のように、色値及び属性値を有する画素で構成される入力画像を、可逆圧縮領域と非可逆圧縮領域とに分割する。ステップＳ１１１５において、境界抽出部４０１は、入力画像中で色値が変化する境界及び属性値が変化する境界を特定する。ステップＳ１１２０において、ヘッダ生成部４０２は、境界によって区切られる領域の色値及び属性値を示す情報を、可逆圧縮データのヘッダ部に格納する。ステップＳ１１２５において、軌跡生成部４０３は、境界の位置情報を、可逆圧縮データの軌跡データ部に格納する。ステップＳ１１３０において、第１の符号化部３０４は、非可逆圧縮領域内の入力画像を表す非可逆圧縮データを生成する。
【０１０５】
図１１（Ｂ）は、復号処理のフローチャートである。ステップＳ１１５０において、データ読込部１００１は、可逆圧縮データを取得する。ステップＳ１１５５において、スパン情報生成部１００４は、可逆圧縮データの軌跡データ部に格納された、色値が変化する境界及び属性値が変化する境界の位置情報を参照する。そして、スパン情報生成部１００４は、可逆圧縮領域について、画像の横方向ライン上で同一の色値及び属性値を有する画素群の位置を示すスパン情報を生成する。また、スパン情報生成部１００４は、非可逆圧縮領域について、画像の横方向ライン上で同一の属性値を有する画素群の位置を示すスパン情報を生成する。ステップＳ１１６０において、領域色／属性値読取部１００５は、可逆圧縮データのヘッダ部に格納された、境界によって区切られる領域の色値及び属性値を示す情報を参照する。そして、領域色／属性値読取部１００５は、可逆圧縮領域について、スパン情報に示される画素群の色値及び属性値を決定する。ステップＳ１１６５において、属性値読取部１００６は、非可逆圧縮領域について、スパン情報に示される画素群の属性値を決定する。ステップＳ１１７０において、第１の復号部１１０は、非可逆圧縮データを復号することにより画像データを生成する。ステップＳ１１７５において、属性値結合部１００７は、非可逆圧縮領域について、ステップＳ１１７０で得られた画像データにおける色値と、ステップＳ１１６５で決定された属性値とを結合することで、スパン情報に対応する画素に色値と属性値とを設定する。
【０１０６】
以上述べたように、図３及び図４の構成により、画像データは可逆圧縮領域と非可逆圧縮領域に分割され、圧縮データが生成される。また、図１０の構成により、それぞれの圧縮データが復号された後、結合されて画像が復号される。
【０１０７】
画素選択部１００８からは画素ごとに色値と属性値とが合わせて出力されるため、復号された画像を用いた画像処理を行う際に、キャッシュを有効活用して高速に処理を行うことができる。また、復号処理中においても、可逆圧縮領域の色値と属性値は両方とも境界ヘッダに格納されているため、同じメモリ領域に色値と属性値とを保持し、領域色／属性値読取部１００５による処理をキャッシュを有効活用して高速に行うことができる。このように、図９に示す可逆圧縮データ９０１を用いることにより、画像処理性能の向上が実現できる。
【０１０８】
また、本実施形態の方法によれば、境界によって区切られる領域の色値及び属性値を示す情報が可逆圧縮データのヘッダ部に格納される。このため、可逆圧縮領域の画像の色値及び属性値を容易に修正することができる。また、非可逆圧縮領域の画像の属性値も、容易に修正することができる。このような構成によれば、例えばプリンタの内部パラメータが変化した際に、この変化に合わせて、中間データに含まれる画像の色値及び属性値を少ない処理負荷で変更することができる。
【符号の説明】
【０１０９】
１１０：第１の復号部、１１１：第２の復号部、１１２：第１の出力部、３０４：第１の符号化部、３０６：第２の符号化部、４０１：境界抽出部、４０２：ヘッダ生成部、４０３：軌跡生成部
【図１】
0006762758.tif 000003
【図２】
0006762758.tif 000004
【図３】
0006762758.tif 000005
【図４】
0006762758.tif 000006
【図５】
0006762758.tif 000007
【図６】
0006762758.tif 000008
【図７】
0006762758.tif 000009
【図８】
0006762758.tif 000010
【図９】
0006762758.tif 000011
【図１０】
0006762758.tif 000012
【図１１】
0006762758.tif 000013