(57)【要約】【課題】画像毎にＩｎｄｅｘテーブルを生成して高速な描画を行う際に、Ｉｎｄｅｘテーブルの保持と管理の処理を軽減する画像処理装置及び画像処理方法を提供すること。【解決手段】画像の描画コマンドを有する入力データを解析し、前記画像が有する画素の色値を取得する色情報取得手段と、前記色値毎に一意に対応づけられるインデックス値を生成してインデックステーブルを生成するインデックステーブル生成手段と、前記入力データと前記インデックステーブルとに基づいて、前記画像をインデックス値により描画するインデックス描画手段と、描画された前記画像が有するインデックス値を、前記インデックステーブルに基づいて色値に変換し、さらに、色値に変換されたカラー画像を符号化して符号データを生成する符号化手段と、を有する画像符号化装置。【選択図】図３
2010220131.tif 000002
【特許請求の範囲】
【請求項１】
画像の描画コマンドを有する入力データを解析し、前記画像が有する画素の色値を取得する色情報取得手段と、
前記色値毎に一意に対応づけられるインデックス値を生成してインデックステーブルを生成するインデックステーブル生成手段と、
前記入力データと前記インデックステーブルとに基づいて、前記画像をインデックス値により描画するインデックス描画手段と、
描画された前記画像が有するインデックス値を、前記インデックステーブルに基づいて色値に変換し、さらに、色値に変換されたカラー画像を符号化して符号データを生成する符号化手段と、
を有することを特徴とする画像符号化装置。
【請求項２】
前記画像が複数のオブジェクトを有する場合に、
色値の数が所定数より多い前記オブジェクトを、該オブジェクトが有する色値により描画する色値描画手段を有し、
前記インデックステーブル生成手段は、複数の前記オブジェクトのうち、色値の数が所定数以下のオブジェクトに対し、該オブジェクト毎にインデックステーブルを生成し、
前記インデックス描画手段は、前記オブジェクト毎のインデックステーブルにより前記画像が有するオブジェクトを描画し、
前記符号化手段は、前記色値描画手段により描画されたオブジェクトを含むカラー画像を符号化することを特徴とする請求項１記載の画像符号化装置。
【請求項３】
前記インデックス描画手段により描画されるオブジェクト及び前記色値描画手段により描画されるオブジェクトを、前記画像におけるオブジェクト毎の位置に対応づけて一の記憶領域に記憶する記憶手段を有することを特徴とする請求項２記載の画像符号化装置。
【請求項４】
前記一の記憶領域は、前記色値をコンポーネント毎に記憶する複数のプレーンを有し、前記インデックス値は一以上の前記プレーンに記憶される請求項３記載の画像符号化装置。
【請求項５】
前記プレーンの一は、前記画像の画素毎に、前記インデックス値と前記色値とを識別するヘッダー情報を記憶することを特徴とする請求項４記載の画像符号化装置。
【請求項６】
前記符号データを復号し、前記カラー画像の復号画像を生成する復号手段を有し、
前記復号画像の画素の色値と、前記カラー画像における前記画素に対応する画素の色値又はインデックス値と、は、前記一の記憶領域における同一のアドレス領域に記憶されることを特徴とする請求項３ないし５何れか一項に記載の画像符号化装置。
【請求項７】
前記符号化手段は、前記カラー画像が有する画素の色値と該画素に隣接する画素の色値との差分の符号を生成することを特徴とする請求項１記載の画像符号化装置。
【請求項８】
前記符号化手段は、前記差分が所定の値以下の場合に、該差分の符号を前記符号データに含ませることを特徴とする請求項７記載の画像符号化装置。
【請求項９】
前記符号化手段は、前記カラー画像をランレングス符号化することを特徴とする請求項１記載の画像符号化装置。
【請求項１０】
前記インデックステーブル生成手段は、前記色値のハッシュ値により前記インデックス値を生成することを特徴とする請求項１記載の画像符号化装置。
【請求項１１】
画像の描画コマンドを有する入力データを解析し、前記画像が有する画素の色値を取得する色情報取得ステップと、
前記色値毎に一意に対応づけられるインデックス値を生成してインデックステーブルを生成するインデックステーブル生成ステップと、
前記入力データと前記インデックステーブルとに基づいて、前記画像をインデックス値により描画するインデックス描画ステップと、
描画された前記画像が有するインデックス値を、前記インデックステーブルに基づいて色値に変換し、さらに、色値に変換されたカラー画像を符号化して符号データを生成する符号化ステップと、
を有することを特徴とする画像符号化方法。
【請求項１２】
前記画像が複数のオブジェクトを有する場合に、
色値の数が所定数より多い前記オブジェクトを、該オブジェクトが有する色値により描画する色値描画ステップを有し、
前記インデックステーブル生成ステップにおいて、複数の前記オブジェクトのうち、色値の数が所定数以下のオブジェクトに対し、該オブジェクト毎にインデックステーブルを生成し、
前記インデックス描画ステップにおいて、前記オブジェクト毎のインデックステーブルにより前記画像が有するオブジェクトを描画し、
前記符号化ステップにおいて、前記色値描画ステップにおいて描画されたオブジェクトを含むカラー画像を符号化することを特徴とする請求項１１記載の画像符号化方法。
【請求項１３】
前記インデックス描画ステップにおいて描画されるオブジェクト及び前記色値描画ステップにおいて描画されるオブジェクトを、前記画像におけるオブジェクト毎の位置に対応づけて記憶手段の一の記憶領域に記憶させる記憶ステップを有することを特徴とする請求項１２記載の画像符号化方法。
【請求項１４】
前記一の記憶領域は、前記色値をコンポーネント毎に記憶する複数のプレーンを有し、
前記記憶ステップにおいて、前記インデックス値は一以上の前記プレーンに記憶される請求項１３記載の画像符号化方法。
【請求項１５】
前記インデックス描画ステップにおいて、さらに、前記画像の画素毎に、前記インデックス値と前記色値とを識別するヘッダー情報が付加されることを特徴とする請求項１記載の画像符号化方法。
【請求項１６】
前記色値描画ステップにおいて、さらに、前記オブジェクトの画素毎に、前記インデックス値と前記色値とを識別するヘッダー情報が付加されることを特徴とする請求項２記載の画像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置、及び、画像符号化方法に関する。
【背景技術】
【０００２】
従来から、ＰＤＬを解析して描画する画像形成装置において、プリンタエンジンが出力する画像形式にするため、カラー画像を、少ない色値の数により表現される画像に変換する画像処理の技術がある。このような画像処理は、ＰＤＬを解析して得られる描画コマンドにより、ＲＧＢ値の画像をメモリ上に展開した後、色変換、階調処理等を行い、プリンタエンジンに対して出力する。
【０００３】
ところで、メモリ上に画像を描画する際に、背景をクリアする処理、論理演算処理、半透明処理等は、ＲＧＢ値による処理になるため、描画に時間がかかる。そこで、特開平６−１３９３６４号公報（特許文献１）では、入力画像データをカラーパレットに展開し、カラーパレットによる描画を行うことが開示されている。また、特開平１１−７８２１６号公報（特許文献２）では、カラーパレット数を超える場合に、減色を行うことが開示されている。
【０００４】
またさらに、特開２００７−２１６６７５号公報（特許文献３）には、カラーパレットのパレット数を表すビット数を、画像データ毎に変更することが開示されている。
【０００５】
なお、上記特許文献等に記載の「カラーパレット」は、「Ｉｎｄｅｘテーブル」に対応する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、Ｉｎｄｅｘテーブルを用いる描画では、Ｉｎｄｅｘ値による描画の後、そのＩｎｄｅｘ値を実際のカラー値に変換するまでの間、Ｉｎｄｅｘテーブルを保持しなくてはならない。したがって、Ｉｎｄｅｘテーブルを、画像毎、又は、画像の中のオブジェクト毎等に応じて変換する際に、それぞれのＩｎｄｅｘテーブルを管理する処理とそのＩｎｄｅｘテーブルを保持するメモリとが必要になる。
【０００７】
本発明は、上記の点に鑑みて、これらの問題を解消するために発明されたものであり、画像毎にＩｎｄｅｘテーブルを生成して高速な描画を行う際に、Ｉｎｄｅｘテーブルの保持と管理の処理を軽減する画像符号化装置及び画像符号化方法を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の画像符号化装置は次の如き構成を採用した。
【０００９】
本発明の画像符号化装置は、画像の描画コマンドを有する入力データを解析し、前記画像が有する画素の色値を取得する色情報取得手段と、前記色値毎に一意に対応づけられるインデックス値を生成してインデックステーブルを生成するインデックステーブル生成手段と、前記入力データと前記インデックステーブルとに基づいて、前記画像をインデックス値により描画するインデックス描画手段と、描画された前記画像が有するインデックス値を、前記インデックステーブルに基づいて色値に変換し、さらに、色値に変換されたカラー画像を符号化して符号データを生成する符号化手段と、を有する構成とすることができる。
【００１０】
これにより、画像毎にＩｎｄｅｘテーブルを生成して高速な描画を行う際に、Ｉｎｄｅｘテーブルの保持と管理の処理を軽減する画像符号化装置を提供することができる。
【００１１】
また、上記目的を達成するために、本発明の画像符号化方法は、画像の描画コマンドを有する入力データを解析し、前記画像が有する画素の色値を取得する色情報取得ステップと、前記色値毎に一意に対応づけられるインデックス値を生成してインデックステーブルを生成するインデックステーブル生成ステップと、前記入力データと前記インデックステーブルとに基づいて、前記画像をインデックス値により描画するインデックス描画ステップと、描画された前記画像が有するインデックス値を、前記インデックステーブルに基づいて色値に変換し、さらに、色値に変換されたカラー画像を符号化して符号データを生成する符号化ステップと、を有する構成とすることができる。
【００１２】
これにより、画像毎にＩｎｄｅｘテーブルを生成して高速な描画を行う際に、Ｉｎｄｅｘテーブルの保持と管理の処理を軽減する画像符号化方法を提供することができる。
【発明の効果】
【００１３】
本発明の画像符号化装置及び画像符号化方法によれば画像毎にＩｎｄｅｘテーブルを生成して高速な描画を行う際に、Ｉｎｄｅｘテーブルの保持と管理の処理を軽減する画像処理装置及び画像処理方法を提供することが可能になる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本実施の形態に係る画像処理装置を実装する画像形成装置の機構部の構成例を示す図である。
【図２】図２は、カラープリンタ１０００における制御部の装置構成を示すブロック図である。
【図３】図３は、制御部１００の機能構成の例を示す図である。
【図４】図４は、メインメモリ１３０上に設けられる各領域を説明する図である。
【図５】図５は、画像フォーマットを説明する図である。
【図６】図６は、本実施の形態により処理される画像の例を示す図である。
【図７】図７は、画像ｂが格納されたメインメモリ１３０の各プレーンを示す図である。
【図８】図８は、Ｉｎｄｅｘテーブルの例を示す図である。
【図９】図９は、小Ｉｎｄｅｘテーブルの例を示す図である。
【図１０】図１０は、Ｉｎｄｅｘテーブルを生成する処理を示すフロー図である。
【図１１】図１１は、描画処理を説明するフロー図である。
【図１２】図１２は、グラフィックス描画処理を説明するフロー図である。
【図１３】図１３は、カラー値により描画する処理を示すフロー図である。
【図１４】図１４は、ＲＧＢＡ符号化部８の機能構成を示すブロック図である。
【図１５】図１５は、ランレングス処理の概略を示す図である。
【図１６】図１６は、符号の種類を示す図である。
【図１７】図１７は、符号フォーマットの詳細な例を示す図である。
【図１８】図１８は、符号の全体の構成を示す図である。
【図１９】図１９は、ＲＧＢＡ復号部１０の機能構成の例を示すブロック図である。
【図２０】図２０は、制御部２００の構成の例を示す図である。
【図２１】図２１は、符号化部２１１のハードウェア構成の例を示す図である。
【図２２】図２２は、符号化部２１１における符号化処理を示すフロー図である。
【図２３】図２３は、復号部２１５のハードウェア構成の例を示す図である。
【図２４】図２４は、復号部２１５におけるランレングス復号処理を説明するフロー図である。
【図２５】図２５は、本発明の実施の形態に係る画像処理装置を実現するコンピュータの構成を説明する図である。
【発明を実施するための形態】
【００１５】
以下、本実施の形態を図面に基づき説明する。
〔本実施の形態〕
図１は、本実施の形態に係る画像処理装置を実装する画像形成装置の機構部の構成例を示す図である。図１では、画像形成装置としてカラープリンタ１０００を示す。カラープリンタ１０００は、４色（Ｙ、Ｍ、Ｃ、Ｋ）の画像をそれぞれ独立の作像系で形成し、この４色の画像を合成する４ドラムタンデムエンジンタイプの画像形成装置である。
【００１６】
カラープリンタ１０００は、各部の動作を制御する制御部１００を有する。本実施の形態に係る画像処理方法は、制御部１００により実行される。
【００１７】
（カラープリンタ１０００における制御部のブロック）
図２は、カラープリンタ１０００における制御部の装置構成を示すブロック図である。図２の制御部１００は、プリンタＡＳＩＣ１１０、プリンタエンジン１２０、メインメモリ１３０、及び、ＣＰＵ１９０を有し、ネットワークを介してパーソナルコンピュータ（以下、「ＰＣ」という。）９００に接続されている。
【００１８】
ＣＰＵ１９０は、カラープリンタ１０００の全体の制御を行う。プリンタエンジン１２０は、画像を媒体上に形成して出力する。メインメモリ１３０は、ＣＰＵ１９０が出力する描画コマンド、ＣＰＵ１９０が実行するプログラム、及び、画像データのうちバンド毎の画像データであるバンドデータ、ページ毎の圧縮データ等の各種データ等を格納する。
ＣＰＵ１９０は、さらに、コンピュータプログラムを実行することにより、本実施形態に係る画像処理装置の各部の機能を実現する。
【００１９】
プリンタＡＳＩＣ１１０は、入力される画像データに対して所定の処理を行い、プリンタエンジン１２０に対して出力する。プリンタＡＳＩＣ１１０は、例えば、ＣＰＵ  インタフェース（以下、「Ｉ／Ｆ」という。）１１２、メインメモリアービタ１１３、メインメモリコントローラ１１４、ＤＭＡ部１１６、エンジンコントローラ１１８、及び、通信処理部１１９を有する。
【００２０】
ＣＰＵ  Ｉ／Ｆ１１２は、メインメモリアービタ１１３を介してメインメモリコントローラ１１４に接続され、ＣＰＵ１９０とメインメモリコントローラ１１４との間のインタフェース処理を行う。メインメモリアービタ１１３は、通信処理部１１９、及び、ＣＰＵ１９０からの、メインメモリ１３０へのアクセス順等を管理する。メインメモリコントローラ１１４は、メインメモリ１３０へのデータの書き込み及び読み出しを制御する。
【００２１】
ＤＭＡ部１１６は、プリンタエンジン１２０へのＤＭＡ転送を行う。エンジンコントローラ１１８は、プリンタエンジン１２０を制御する。
【００２２】
通信処理部１１９は、通信コントローラであり、ネットワークを介して接続されたＰＣ９００から画像データを受信する。画像データは、例えば、ＰＤＬ（ｐａｇｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ）の形式を有する。通信処理部１１９は、受信した画像データを、メインメモリ１３０に対して出力する。
【００２３】
（制御部１００の機能構成の例）
図３は、制御部１００の機能構成の例を示す図である。図３の制御部１００では、入力された画像データが解析され、画像処理された後、プリンタエンジン１２０に対して出力される。図３の制御部１００は、ＰＤＬ記憶部１、ＰＤＬ解析部２、描画処理部２１、Ｉｎｄｘ＆ＲＧＢＡ画像記憶部６、Ｉｎｄｅｘテーブル記憶部７、ＲＧＢＡ符号化部８、ＲＧＢＡ符号記憶部９、ＲＧＢＡ復号部１０、画像処理部２２、階調処理後画像記憶部１４、ＤＭＡ処理部１５を有し、プリンタエンジン１２０に接続される。
【００２４】
ＰＤＬ記憶部１は、通信処理部１１９から送信されたＰＤＬを記憶する。ＰＤＬ解析部２は、ＰＤＬ記憶部１に格納されたＰＤＬを解析し、グラフィックスコマンドと写真画像コマンドとを取得する。ＰＤＬ解析部２は、Ｉｎｄｅｘによる描画コマンドを、描画処理部２１に出力する。写真画像コマンドの場合は、カラー情報と描画コマンドとを、描画処理部２１に出力する。
【００２５】
描画処理部２１は、Ｉｎｄｅｘテーブル生成部３、Ｉｎｄｅｘ描画部４、及び、ＲＧＢＡ描画部５を有する。Ｉｎｄｅｘテーブル生成部３は、ＰＤＬ解析部２により取得された描画コマンドにより、入力されるＰＤＬによる画像に含まれるカラー値のＩｎｄｅｘテーブルを生成する。Ｉｎｄｅｘ描画部４は、Ｉｎｄｅｘ値による描画を行う。Ｉｎｄｅｘ値による描画は、カラー画像の描画に比して、コンポーネントの数が少ないため、描画プレーン数が少ない。そこで、例えば、グラフィック画像等、少数の色により表現される画像を、Ｉｎｄｅｘ値により描画することにより、描画処理を高速にすることができる。
ＲＧＢＡ描画部５は、ＰＤＬ解析部２により解析された描画コマンドのうち、例えば写真画像等、ＲＧＢ値により表される画素の描画を行う。
【００２６】
Ｉｎｄｅｘ＆ＲＧＢＡ画像記憶部６は、Ｉｎｄｅｘ描画部４及びＲＧＢＡ描画部５により描画される画像を格納する。
【００２７】
Ｉｎｄｅｘテーブル記憶部７は、Ｉｎｄｅｘテーブル生成部３により生成されるＩｎｄｅｘテーブルを格納する。Ｉｎｄｅｘテーブルは、ＲＧＢＡ符号化部８により用いられる。
【００２８】
ＲＧＢＡ符号化部８は、Ｉｎｄｅｘ＆ＲＧＢＡ画像記憶部６に格納される画像データに対し、ランレングス符号による符号化を行う。ＲＧＢＡ符号化部８は、画像データのカラー値のラン長を求め、ランレングス符号を生成する。
【００２９】
ＲＧＢＡ符号記憶部９は、ＲＧＢＡ符号化部８により生成された符号データを記憶する。ＲＧＢＡ復号部１０は、ランレングス符号を復号して、ＲＧＢＡ値を出力する。
【００３０】
画像処理部２２は、色変換部１１、ＵＣＲ部１２、及び、階調処理部１３を有する。色変換部１１は、ＲＧＢ値で表されるカラー画像を、ＣＭＹ値で表されるカラー画像に変換する。ＵＣＲ部１２は、ＣＭＹ値で表されるカラー画像に対し、下色除去を行い、ＣＭＹＫ値で表されるカラー画像を生成する。階調処理部１３は、ＣＭＹＫ値で表されるカラー画像に対し、階調処理を行う。これにより、例えばディザ等の面積階調により表現される画像となる。
【００３１】
階調処理後画像記憶部１４は、画像処理部２２により処理された画像が格納される。階調処理後画像記憶部１４に格納される画像データは、面積階調等の処理が行われ、プリンタにより出力されるための画像データである。
【００３２】
ＤＭＡ処理部１５は、プリンタエンジン１２０に対し、ＤＭＡ転送により画像データを出力する。プリンタエンジン１２０は、入力される画像データを媒体に形成して出力する。
【００３３】
図３中、ＰＤＬ解析部２、描画処理部２１の各部、画像処理部２２の各部は、例えば、ＣＰＵ１９０がコンピュータプログラムを実行することにより実現される。
【００３４】
また、図３中、ＰＤＬ記憶部１、Ｉｎｄｅｘ＆ＲＧＢＡ画像記憶部６、Ｉｎｄｅｘテーブル記憶部７、ＲＧＢＡ符号記憶部９、及び、階調処理後画像記憶部１４は、例えば、メインメモリ１３０上に設けられる。
【００３５】
図４は、メインメモリ１３０上に設けられる各領域を説明する図である。図４では、メインメモリ１３０上に、プログラム領域、ＰＤＬ領域、Ｉｎｄｅｘテーブル領域、Ｉｎｄｅｘ＆ＲＧＢＡ領域、符号領域、階調処理後画像領域、及び、その他の情報を格納する領域が設けられている。プログラム領域は、ＣＰＵ１９０が実行するプログラムを格納する領域である。ＰＤＬ領域は、ＰＤＬ記憶部１に対応する。Ｉｎｄｅｘテーブル領域は、Ｉｎｄｅｘテーブル記憶部７に対応する。Ｉｎｄｅｘ＆ＲＧＢＡ領域は、Ｉｎｄｅｘ＆ＲＧＢＡ画像記憶部６に対応する。符号領域は、ＲＧＢ符号記憶部９に対応する。階調処理後画像領域は、階調処理後画像記憶部１４に対応する。
【００３６】
Ｉｎｄｅｘ＆ＲＧＢＡ領域は、プレーン０領域、プレーン１領域、プレーン２領域、及び、プレーン３領域を有する。プレーン０領域からプレーン３領域は、それぞれ、一の色コンポーネント毎の画像データを格納する。例えば、プレーン１領域にＲ値、プレーン２領域にＧ値、プレーン３領域にＢ値を格納し、さらに、プレーン０領域に属性値を格納するとよい。プレーン０領域には、また、Ｉｎｄｅｘ値により描画される画像が格納されるとよい。また、Ｉｎｄｅｘ値が２毎のプレーンにまたがるビット数を有する場合には、例えば、プレーン０領域とプレーン１領域とにＩｎｄｅｘ値が格納されるとよい。これにより、４毎のプレーンで、Ｉｎｄｅｘ値により描画された画像と、ＲＧＢＡ値により描画された画像との両方を格納することができる。
【００３７】
図５は、画像フォーマットを説明する図である。図５では、カラー画像のフォーマットと、Ｉｎｄｅｘ値によるフォーマットとの両方を示す。カラー画像のフォーマットは、ヘッダーと属性値（以下、「Ａ」ともいう。）とからなる８ビット、Ｒ値、Ｇ値、及び、Ｂ値のそれぞれ８ビットの計３２ビットを有する。これらの画像データは、８ビット毎に、それぞれ、プレーン０領域からプレーン３領域に格納される。
【００３８】
Ｉｎｄｅｘ値によるフォーマットは、Ｉｎｄｅｘフォーマット１及びＩｎｄｅｘフォーマット２の２つのフォーマットがある。Ｉｎｄｅｘフォーマット１は、１ビットのヘッダーと７ビットの小Ｉｎｄｅｘテーブル値とからなる８ビットのフォーマットである。Ｉｎｄｅｘフォーマット１の画像データは、プレーン０領域に格納される。
【００３９】
Ｉｎｄｅｘフォーマット２は、２ビットのヘッダーと、１４ビットのＩｎｄｅｘテーブル値とからなる１６ビットのフォーマットである。Ｉｎｄｅｘフォーマット２は、プレーン０領域及びプレーン１領域に格納される。
【００４０】
図６は、本実施の形態により処理される画像の例を示す図である。図６は、画像ａ及び画像ｂを示す。画像ａは、本実施の形態により処理される画像の例を示す図である。画像ａは、写真画像部分と、グラフィックス画像部分とを有する。画像ｂは、メインメモリ１３０上に描画された例を示す図である。画像ｂは、グラフィックス画像部分が、Ｉｎｄｅｘ値により描画され、写真画像部分が、カラー画像フォーマットにより描画されている。
【００４１】
図７は、図６の画像ｂが格納されたメインメモリ１３０の各プレーンを示す図である。図７では、プレーン０領域が、Ｉｎｄｅｘフォーマット１により描画された領域、カラー画像フォーマットのうちＡ値により描画された領域、及び、Ｉｎｄｅｘフォーマット２の上位８ビットにより描画された領域を有する。
【００４２】
プレーン１領域は、カラー画像フォーマットのうちＲ値により描画された領域と、Ｉｎｄｅｘフォーマット２の下位８ビットにより描画された領域を有する。プレーン２領域は、カラー画像フォーマットのうちＧ値により描画された領域を有し、プレーン３領域は、カラー画像フォーマットのうちＢ値により描画された領域を有する。
【００４３】
図７に示すように、プレーン１領域からプレーン３領域には、Ｉｎｄｅｘフォーマット１により描画されることがない。また、プレーン２領域及びプレーン３領域には、Ｉｎｄｅｘフォーマット２により描画されることがない。これにより、描画を高速にすることができる。
【００４４】
図８は、Ｉｎｄｅｘテーブルの例を示す図である。図８のＩｎｄｅｘテーブルは、例えば、Ｉｎｄｅｘフォーマット２の画像フォーマットに対応する。これにより、カラー値を１４ビットのＩｎｄｅｘ値に表すことができる。図８のＩｎｄｅｘテーブルは、さらに、Ｉｎｄｅｘ値毎に小Ｉｎｄｅｘ値を有する。小Ｉｎｄｅｘ値は、Ｉｎｄｅｘ値よりも少ないビット数で表される。小Ｉｎｄｅｘ値により、Ｉｎｄｅｘテーブルにより表されるカラー値のうち所定数のカラー値を、Ｉｎｄｅｘ値よりも少ないビット数により描画することができる。
【００４５】
図９は、小Ｉｎｄｅｘテーブルの例を示す図である。図９の小Ｉｎｄｅｘテーブルは、小Ｉｎｄｅｘ値毎にカラー値が対応づけられる。小Ｉｎｄｅｘ値は、０から１２７までの値を有する。小Ｉｎｄｅｘテーブルに含まれるカラー値は、Ｉｎｄｅｘテーブルにも含まれる。
【００４６】
なお、図８のＩｎｄｅｘテーブルにおいて、小Ｉｎｄｅｘ値が０から１２７までの値を有さないカラー値に対しては、小Ｉｎｄｅｘ値が全て１２８となる。
【００４７】
図１０は、Ｉｎｄｅｘテーブルを生成する処理を示すフロー図である。図１０の処理は、Ｉｎｄｅｘテーブル生成部３により実行される。図１０のステップＳ１０１では、ＰＤＬ解析部２が生成した色テーブルからＲＧＢＡ値により表されるカラー値を受け取る。ステップＳ１０２では、カラー値の数を次式により計算する。
（カラー値の数）＝Ｒ＜＜２４＋Ｇ＜＜１６＋Ｂ＜＜８＋Ａ
なお、上式中、記号＜＜は、左ビットシフトを表し、＜＜８は、８ビット左シフトすることを表す。
【００４８】
ステップＳ１０３では、カラー値に対応するＩｎｄｅｘ値を計算するためのＷＯＲＫデータを次式により計算する。
ＷＯＲＫデータ＝Ｉｎｔ（カラー値の数×（１／１６３３３））
【００４９】
ステップＳ１０４では、上式で求めたＷＯＲＫデータを用い、インデックス値を次式により計算する。
Ｉｎｄｅｘ値＝カラー値の数−（１６３３３×ＷＯＲＫデータ）
【００５０】
ステップＳ１０５では、現在作成中のＩｎｄｅｘテーブルに含まれるレコードのうち、ステップＳ１０４で生成されたＩｎｄｅｘ値のレコードを参照する。そして参照したレコードのカラー値が、ステップＳ１０４でＩｎｄｅｘ番号を生成したカラー値と同一か否かを判定する。同一の場合には、ステップＳ１１１に進み、同一ではない場合には、ステップＳ１０７に進む。
【００５１】
ステップＳ１０６では、現在作成中のＩｎｄｅｘテーブルに含まれているＩｎｄｅｘ値に対応するＲＧＢＡによる色情報に、ステップＳ１０１で取得したＲＧＢＡによるカラー値をセットする。
【００５２】
ステップＳ１０７では、変数ＩＮＤＥＸＣＮＴの値が１２８以上か否かを判断する。変数ＩＮＤＥＸＣＮＴは、図示しないステップにより、全ての処理に先立ち、０に初期化される。変数ＩＮＤＥＸＣＮＴの値が１２８以上の場合は、ステップＳ１１１に進む。そうではない場合には、ステップＳ１０８に進む。
【００５３】
ステップＳ１０８では、Ｉｎｄｅｘテーブルの小Ｉｎｄｅｘ値の項目に、現在のＩＮＤＥＸＣＮＴの値をセットする。ステップＳ１０９では、作成途中の小Ｉｎｄｅｘテーブルにおける現在のＩＮＤＥＸＣＮＴ値に対応する色情報の項目にステップＳ１０１で受け取ったカラー値をセットする。
【００５４】
ステップＳ１１０では、ＩＮＤＥＸＣＮＴ値に対し１加算する。
【００５５】
ステップＳ１１１では、色テーブルに含まれている全ての色値に対する処理が終了したか否かを判断する。全ての色値に対する処理が終了している場合には、処理を終了する。処理されていない色値がある場合には、ステップＳ１０１に戻って処理を繰り返す。
【００５６】
図１１は、描画処理部２１における描画処理を説明するフロー図である。図１１の描画処理は、Ｉｎｄｅｘ描画部４及びＲＧＢＡ描画部５により実現される。図１１のステップＳ２０１では、ＰＤＬ解析部２により解析された描画コマンドが読み込まれる。
【００５７】
ステップＳ２０２では、読み込んだ描画コマンドが、グラフィックス描画コマンドか否かの判断がなされる。グラフィックス描画コマンドの場合は、ステップＳ２０３に進み、グラフィックス描画コマンドではない場合は、ステップＳ２０４に進む。
【００５８】
ステップＳ２０３では、Ｉｎｄｅｘ描画部４によるグラフィクス描画処理が行われる。一方、ステップＳ２０４では、ＲＧＢＡ描画部５による写真描画処理が行われる。なお、写真描画処理とは、ＲＧＢ値による描画処理である。
【００５９】
ステップＳ２０３又はステップＳ２０４に続くステップＳ２０５では、ＰＤＬ解析部２により解析されて得られた全ての描画コマンドに対する処理が終了したか否かの判断がなされる。全ての処理が終了している場合には、処理を終了し、処理されていない描画コマンドがある場合には、ステップＳ２０１に戻って処理を繰り返す。
【００６０】
図１２は、ステップＳ２０３におけるグラフィックス描画処理を説明するフロー図である。グラフィックス描画処理は、Ｉｎｄｅｘ描画部４により実行される。図１２のステップＳ３０１では、色テーブルのレコードのうち、Ｉ番目のレコードのＩｎｄｅｘ値を取得する。
【００６１】
ステップＳ３０１に続いてステップＳ３０２に進み、ＩｎｄｅｘテーブルにおけるステップＳ３０１で取得されたＩｎｄｅｘ値のカラー値が、描画コマンドのカラー値か否かを判断する。描画コマンドのカラー値と同じ場合には、ステップＳ３０３に進み、描画コマンドのカラー値と異なる場合には、ステップＳ３０７に進む。
【００６２】
なお、描画コマンドのカラー値と異なる場合とは、図１０で求めたカラー値の数、すなわちハッシュ関数によるハッシュ値が、衝突している。そこで、Ｉｎｄｅｘフォーマットによる描画ではなく、カラー値による描画を行う。
【００６３】
ステップＳ３０２に続くステップＳ３０３では、ステップＳ３０１で取得されたＩｎｄｅｘ値のレコードが、小Ｉｎｄｅｘ値を含むか否かの判断を行う。なお、小Ｉｎｄｅｘ値を含むとは、そのレコードの小Ｉｎｄｅｘ値が、０から１２７のうちの何れか一の値を有することである。小Ｉｎｄｅｘ値を含む場合には、ステップＳ３０４に進み、小Ｉｎｄｅｘ値を含まない場合には、ステップＳ３０５に進む。
【００６４】
ステップＳ３０４では、Ｉｎｄｅｘテーブル１の値により、プレーン０領域に対する描画を行う。一方、ステップＳ３０５では、Ｉｎｄｅｘテーブル２の上位８ビットの値で、プレーン０領域の描画を行う。ステップＳ３０５に続いてステップＳ３０６に進み、Ｉｎｄｅｘテーブル２の下位８ビットの値で、プレーン１領域の描画を行う。
【００６５】
またステップＳ３０２に続くステップＳ３０７では、ＲＧＢＡのＡ値によりプレーン０領域を描画する。ステップＳ３０８では、ＲＧＢＡのＲ値によりプレーン１領域を描画する。ステップＳ３０９では、ＲＧＢＡのＧ値によりプレーン２領域を描画する。ステップＳ３１０では、ＲＧＢＡのＢ値によりプレーン３領域を描画する。
【００６６】
図１３は、写真画像をカラー値により描画する処理を示すフロー図である。図１３の処理は、ＲＧＢＡ描画部５により実行される。図１３のステップＳ４０１では、ＲＧＢＡ描画部５が、写真画像のソース画像を取得する。ステップＳ４０１に続くステップＳ４０２からステップＳ４０５の処理は、図１２のステップＳ３０７からステップＳ３１０の処理と同一であるので、ここでは説明を省略する。
【００６７】
図１４は、ＲＧＢＡ符号化部８の機能構成を示すブロック図である。図１４のＲＧＢＡ符号化部８は、入力されるプレーン画像データ３１に対し、ランレングス符号化による符号化を行い、符号３９を出力する。ＲＧＢＡ符号化部８は、プレーン画像読込部３２、カラー展開部３３、Ｉｎｄｅｘテーブル保持部３４、ランレングス生成部３５、差分演算部３６、符号生成部３７、及び、符号書込部３８を有する。
【００６８】
プレーン画像データ３１は、プレーン０からプレーン３までの４つのプレーンを有する。プレーン画像データ３１は、画素毎に、カラー画像フォーマット又はＩｎｄｅｘフォーマットの何れかにより画素データを保持する。
【００６９】
プレーン画像読込部３２は、Ｉｎｄｅｘ＆ＲＧＢＡ画像記憶部６から、プレーン画像データ３１を読み込む。カラー展開部３３は、Ｉｎｄｅｘテーブル保持部３４に保持されているＩｎｄｅｘテーブルにより、読み込んだプレーン画像のうち、Ｉｎｄｅｘフォーマットにより描画されている画素を、ＲＧＢＡ値に展開する。
【００７０】
Ｉｎｄｅｘテーブル保持部３４は、Ｉｎｄｅｘテーブル記憶部７からＩｎｄｅｘテーブルを読み込んで保持する。なお、Ｉｎｄｅｘテーブル保持部３４が保持するＩｎｄｅｘテーブルは、図８に示すＩｎｄｅｘテーブル及び図８に示す小Ｉｎｄｅｘテーブルの２つのテーブルである。
【００７１】
ランレングス生成部３５は、ＲＧＢＡ値に展開された画像データに対し、画素値毎のラン長を求めるランレングス符号化を行う。差分演算部３６は、ランレングス符号化により生成されたラン長に対応する画素値に対し、直前の画素値との差分を演算する。
【００７２】
図１５は、ランレングス処理の概略を示す図である。図１５は、一の画素ラインにおける画素の一コンポーネントの並びを示す。ラインの最初から順に、同一の画素値を有する画素の数が、３、３、４、４、２であり、これらの数値がラン長となる。
【００７３】
符号生成部３７は、ラン長と画素値、又は、ラン長と画素差分による、符号を生成する。図１６は、符号の種類を示す図である。図１６に示す符号は、全体の符号に含まれる内部符号と符号終端である。内部符号は、２つの種類がある。図１６の（１）は、隣接するランの間の画素差分に係る符号であり、画素差分ヘッダー、ラン長の情報、差分値の情報を含む。図１６の（２）は、画素値に係る符号であり、画素ヘッダー、ラン長の情報、カラー値の情報を含む。図１６の（３）は、符号の終端を示す情報である。
【００７４】
図１７は、符号フォーマットの詳細な例を示す図である。図１７に示す符号フォーマットは、画素ヘッダー及び画素差分ヘッダーの２つのヘッダーに対応する符号、符号終端に対応する符号、ラン長の符号、カラー値の符号、及び、差分の符号を有する。
【００７５】
画素ヘッダー、画素差分ヘッダーは、それぞれ４ビットの固定長であり、符号終端は、８ビットの固定長である。
【００７６】
ラン長の符号は、Ｌ１からＬ３の３つの符号フォーマットを有する。Ｌ１は４ビットの符号で、ラン長に１加算した値１から８を保持する。Ｌ２は、８ビットの符号で、ラン長に９加算した値を保持する。Ｌ２の最大値は４０である。
【００７７】
Ｌ３は可変長の符号である。Ｌ３は、ラン長が４０から１０４８５７６までの間の値に対応する。Ｌ３は、４ビットの固定長部分と、その後に続く可変長の部分とを有する。可変長の部分は、４ビット毎の符号である。４ビットのうち、最初の１ビットが、次の４ビットの有無を表し、続く３ビットが、ラン長の数値の一部分となる。
【００７８】
カラー値の符号は、ＲＧＢＡのコンポーネント毎に８ビットの固定長を有する。８ビット毎に、各コンポーネントの値が含まれる。
【００７９】
差分の符号は、１２ビットの固定長である。４ビット毎に、Ｒの差分値、Ｇの差分値、Ｇの差分値を保持する。差分の符号は、コンポーネント毎に、＋８から−８までの値を有する。この範囲を超える差分の場合は、カラー値の符号により符号化される。
【００８０】
図１８は、符号の全体の構成を示す図である。符号には、内部符号と符号終端とがある。内部符号は、図１６の（１）及び（２）が連続して配置される。また、符号終端は、図１６の（３）である。
【００８１】
図１４に戻り、符号書込部３８は、ＲＧＢＡ符号記憶部９に符号３９を出力する。
【００８２】
図１９は、ＲＧＢＡ復号部１０の機能構成の例を示すブロック図である。図１９のＲＧＢＡ復号部１０は、入力される符号４１を復号して、プレーン画像データ４９を出力する。ＲＧＢＡ復号部１０は、符号読込部４２、符号解析部４３、差分展開部４４、ランレングス復号部４５、カラー画像生成部４６、及び、画像書込部４７を有する。
【００８３】
符号読込部４２は、ＲＧＢＡ符号記憶部９に格納される符号４１を読み込む。符号解析部４３は、図１６ないし図１８に示す符号フォーマットにより、符号４１を解析し、差分、カラー値、及び、ラン長の情報を取得する。
【００８４】
差分展開部４４は、符号解析部４３により取得された差分を、カラー値に展開する。ランレングス復号部４５は、ラン長の情報により、ラン長とラン長に対応する画素値との組み合わせを、画素値の並びに復号する。カラー画像生成部４６は、ランレングス復号部４５により復号された画素値を用い、画素毎のコンポーネントを連結し、図５に示すカラー画像のフォーマットにする。
【００８５】
画像書込部４７は、生成したカラー画像のフォーマットの画像データを、Ｉｎｄｅｘ＆ＲＧＢＡ画像記憶部６に格納させる。
【００８６】
ＲＧＢＡ復号部１０により出力される画像データは、プレーン０からプレーン３までの４つのプレーンを有する、プレーン画像データである。プレーン画像データ４９は、Ｉｎｄｅｘ＆ＲＧＢＡ画像記憶部６の各プレーン領域に、プレーン毎に格納される。
【００８７】
図２０は、制御部２００の構成の例を示す図である。制御部２００は、カラープリンタ１０００に制御部１００に代えて設けられる。制御部２００のうち、図２の制御部１００と機能及び構成が異なる各部は、ＣＰＵ２９０、ＣＰＵ  Ｉ／Ｆ２１２、画像処理部２１７、符号化部２１１、及び、復号部２１５である。制御部２００が有するその他の各部は、制御部１００と機能及び構成が同一であるので、ここでは説明を省略する。
【００８８】
画像処理部２１７は、画像処理部２１７の機能を実現する専用のハードウェアである。符号化部２１１は、ＲＧＢＡ符号化部８の機能を実現する専用のハードウェアである。復号部２１５は、ＲＧＢＡ復号部１０の機能を実現する専用のハードウェアである。
【００８９】
ＣＰＵ２９０は、プログラムを実行することにより、描画処理部２１の機能を実現する。
【００９０】
図２１は、符号化部２１１のハードウェア構成の例を示す図である。符号化部２１１は、バスアービタ  Ｉ／Ｆ３９０、画像読込部３２０、アドレス生成部３２１、プレーン０バッファー部３２２、プレーン１バッファー部３２３、プレーン２バッファー部３２４、プレーン３バッファー部３２５、カラー展開部３３０、カラーパレット１テーブル３３１、カラーパレット２テーブル３３２、ランレングス生成部３５０、差分演算部３６０、符号生成部３７０、符号書込部３８０、及び、アドレス生成部３８１を有する。
【００９１】
画像読込部３２０は、メインメモリ１３０上のＩｎｄｅｘ＆ＲＧＢＡ画像記憶部６からＩｎｄｅｘ値とＲＧＢＡ値とによる画像データを読み込む。アドレス生成部３２１は、画像読込部３２０が画像データを読み込む際の、メインメモリ１３０上のアドレスを生成する。
【００９２】
プレーン０バッファー部３２２からプレーン３バッファー部３２５は、それぞれ、画像読込部３２０が読み込んだ画像データの各プレーンを格納する。プレーン０バッファー部３２２は、プレーン０領域から読み込まれた画像データを格納し、プレーン１バッファー部３２３は、プレーン１領域から読み込まれた画像データを格納し、プレーン２バッファー部３２４は、プレーン２領域から読み込まれた画像データを格納し、プレーン３バッファー部３２５は、プレーン３領域から読み込まれた画像データを格納する。
【００９３】
カラー展開部３３０は、プレーン０バッファー部３２２からプレーン３バッファー部３２５に格納されている画像データのうち、Ｉｎｄｅｘフォーマット１及びＩｎｄｅｘフォーマット２の画像データの各Ｉｎｄｅｘ値を、カラー値に変換する。カラー展開部３３０は、プレーン０バッファー部３２２に格納されているデータの、上位１ビット又は２ビットを参照することにより、画素毎に、Ｉｎｄｅｘフォーマット１、Ｉｎｄｅｘフォーマット２、及び、カラー画像フォーマットの何れであるかを判断する。カラー展開部３３０は、Ｉｎｄｅｘテーブル及び小Ｉｎｄｅｘテーブルを参照し、Ｉｎｄｅｘ値及び小Ｉｎｄｅｘ値により表される画素を、カラー値に変換する。
【００９４】
カラーパレット１テーブルは、Ｉｎｄｅｘテーブルを保持し、カラーパレット２テーブルは、小Ｉｎｄｅｘテーブルを保持する。カラーパレット１テーブル及びカラーパレット２テーブルが保持するデータは、カラー展開部３３０により参照される。
【００９５】
ランレングス生成部３５０は、カラー展開部３３０によりＲＧＢＡ値に変換された画像データに対し、ラン長を生成する。これにより、ラン長と画素値とを含む、ランレングスのデータを生成する。差分演算部３６０は、ランレングス生成部３５０によりラン長が生成されたデータにおいて、ラン毎に、直前のランに対応する画素値と、当のランに対応する画素値との差分を演算する。差分演算部３６０は、差分が所定の値の場合には、その画素値に対する差分は生成せず、画素値のまま出力する。
【００９６】
符号生成部３７０は、ラン長の情報、差分、及び、画素値から、図１６から図１８に示すフォーマットの符号を精製する。
【００９７】
符号書込部３８０は、符号生成部３７０が生成した符号を、メインメモリ１３０上のＲＧＢＡ符号記憶部９に格納させる。アドレス生成部３８１は、符号書込部３８０が符号をメインメモリ１３０に格納させる際の、メインメモリ１３０上のアドレスを生成する。
【００９８】
バスアービタＩ／Ｆ３９０は、符号化部２１１とメインメモリ１３０との間のデータの入出力を調停する。
【００９９】
図２２は、符号化部２１１における符号化処理を示すフロー図である。図２２のステップＳ５０１では、ラインの初期値フラグを１にセットする。ステップＳ５０１では、さらに、ラン長の値を０に初期化してもよい。ステップＳ５０２では、カラー展開部３３０が、ＲＧＢＡ値により表される一の画素データを読み込み、その画素データを、ＲＧＢＡＤＡＴＡとする。
【０１００】
ステップＳ５０２に続いてステップＳ５０３に進み、カラー展開部３３０が、ＲＧＢＡＤＡＴＡのヘッダー部分の上位１ビットの値を確認する。上位１ビットの値が、Ｉｎｄｅｘフォーマット１である場合には、ステップＳ５０４に進む。そうではない場合には、ステップＳ５０５に進む。ステップＳ５０５では、カラー展開部３３０が、ＲＧＢＡＤＡＴＡのヘッダー部分の上位２ビットの値を確認する。上位２ビットの値が、Ｉｎｄｅｘフォーマット２である場合には、ステップＳ５０６に進む。そうではない場合には、カラー画像フォーマットであるため、ステップＳ５０７に進む。
【０１０１】
ステップＳ５０３に続くステップＳ５０４では、カラー展開部３３０が、カラーパレット１テーブル３３１に対し、ＲＧＢＡＤＡＴＡが有する小Ｉｎｄｅｘ値でアクセスし、対応するカラー値を取得する。このカラー値を、処理する画素のカラー値とする。
【０１０２】
一方、ステップＳ５０５に続くステップＳ５０６では、カラー展開部３３０が、カラーパレット２テーブル３３２に対し、ＲＧＢＡＤＡＴＡが有するＩｎｄｅｘ値でアクセスし、対応するカラー値を取得する。このカラー値を、処理する画素のカラー値とする。
【０１０３】
ステップＳ５０４、ステップＳ５０６、又は、ステップＳ５０５に続くステップＳ５０７では、初期値フラグの値が１か否かを判断する。初期値フラグの値が１の場合、すなわち、画素ラインの最初の画素の場合には、ステップＳ５０８に進む。一方、初期値フラグが１ではない場合には、ステップＳ５１０に進む。
【０１０４】
ステップＳ５０７に続くステップＳ５０８では、ランレングス生成部３５０が、変数ＯＲＧ−ＲＧＢＡＤＡＴＡの値をＲＧＢＡＤＡＴＡの値とする。ステップＳ５０８に続いてステップＳ５０９に進み、初期値フラグの値を０に設定する。
【０１０５】
一方、ステップＳ５０７に続くステップＳ５１０では、ランレングス生成部３５０が、ＯＲＧ−ＲＧＢＡＤＡＴＡの値と、ＲＧＢＡＤＡＴＡの値とが、同一か否かを判断する。同一である場合には、ステップＳ５１１に進み、異なる値の場合には、ステップＳ５１２に進む。ステップＳ５１０に続くステップＳ５１１では、ランレングス生成部３５０が、ラン長の値を１加算する。
【０１０６】
ステップＳ５０９又はステップＳ５１１の処理の後、ステップＳ５０２に戻って処理を繰り返す。
【０１０７】
一方、ステップＳ５１０に続くステップＳ５１２では、差分演算部３６０が、ＯＲＧ−ＲＧＢＡＤＡＴＡの値と、ＲＧＢＡＤＡＴＡとの値との差が、所定の値以下か否かを判断する。所定の値以下の場合には、ステップＳ５１３に進み、所定の値より大きい場合には、ステップＳ５１７に進む。
【０１０８】
ステップＳ５１２に続くステップＳ５１３では、差分演算部３６０が、ＯＲＧ−ＲＧＢＡＤＡＴＡの値と、ＲＧＢＡＤＡＴＡの値との差分を求める。
【０１０９】
ステップＳ５１４からステップＳ５１６の処理と、ステップＳ５１７からステップＳ５１９の処理は、符号生成部３７０により実行される。ステップＳ５１３に続くステップＳ５１４では、符号フォーマットにおける画素差分ヘッダーを生成する。ステップＳ５１４に続いてステップＳ５１５に進み、符号フォーマットにおけるラン長の情報の符号を生成する。ステップＳ５１５に続いてステップＳ５１６に進み、符号フォーマットにおける差分の符号を生成する。
【０１１０】
一方、ステップＳ５１２に続くステップＳ５１７では、符号フォーマットの画素ヘッダーの符号を生成する。ステップＳ５１７に続いてステップＳ５１８に進み、符号フォーマットにおけるラン長の符号を生成する。ステップＳ５０８に続いてステップＳ５１９に進み、符号フォーマットにおけるカラー値の符号を生成する。
【０１１１】
ステップＳ５１６又はステップＳ５１９に続くステップＳ５２０では、ＯＲＧ−ＲＧＢＡＤＡＴＡの値を、ＲＧＢＡＤＡＴＡの値により更新する。これにより、直前のランに係る情報が、現在のランに係る情報で更新される。
【０１１２】
ステップＳ５２０に続いてステップＳ５２１に進み、全ての画素について処理が終了したか否かの判断がなされる。終了している場合には、ステップＳ５２２に進み、終了していない場合には、ステップＳ５０２に戻り処理を繰り返す。
【０１１３】
ステップＳ５２１に続くステップＳ５２２では、符号フォーマットにおける符号終端を生成する。これにより、符号が完成する。
【０１１４】
図２３は、復号部２１５のハードウェア構成の例を示す図である。図２３の復号部２１５は、メモリアービタ−Ｉ／Ｆ４９０、符号読込部４２０、アドレス生成部４２１、符号解析部４３０、差分展開部４４０、ランレングス復号部４５０、カラー画像生成部４６０、プレーン０バッファー部４７２、プレーン１バッファー部４７３、プレーン２バッファー部４７４、プレーン３バッファー部４７５、アドレス生成部４７１、及び、画像書込部４７０を有する。
【０１１５】
符号読込部４２０は、ＲＧＢＡ符号記憶部９からランレングスの符号を読み込む。アドレス生成部４２１は、符号読込部４２０が符号を読み込む際の、メインメモリ１３０上のアドレスを生成する。
【０１１６】
符号解析部４３０は、図１７の符号フォーマットに基づいて、読み込まれた符号データを解析する。これにより、差分、ヘッダー、ラン長の情報、ＲＧＢＡデータが出力される。差分展開部４４０は、差分を、直前の画素値に加算することにより、ラン長の情報毎に対応づけられるＲＧＢＡの画素値を出力する。
【０１１７】
ランレングス復号部４５０は、ラン長の情報により、画素値をラン長の数に対応させて繰り返させ、画素毎の画素値を生成する。カラー画像生成部４６０は、画素毎の属性値とコンポーネントとを結合させて、ＲＧＢＡの画像データを生成し、属性とコンポーネント毎の４つのプレーンとして出力する。
【０１１８】
プレーン０バッファー部４７２からプレーン３バッファー部４７５は、それぞれＲＧＢＡの画像データのプレーンの一を格納する。プレーン０バッファー部４７２は、Ａ値を格納し、プレーン１バッファー部４７３は、Ｒ値を格納し、プレーン２バッファー部４７４は、Ｇ値を格納し、プレーン３バッファー部４７５は、Ｂ値を格納する。
【０１１９】
画像書込部４７０は、プレーン０バッファー部４７２からプレーン３バッファー部４７５に格納されているＲＧＢＡの各プレーンの画像データを、メインメモリ１３０上のプレーン毎の領域に格納させる。
【０１２０】
アドレス生成部４７１は、画像書込部４７０がＲＧＢＡによる画像データをメインメモリ１３０に格納する際の、メインメモリ１３０上のアドレスを生成する。
【０１２１】
メモリアービタＩ／Ｆ４９０は、復号部２１５のメインメモリ１３０に対するデータの入出力を調停する。
【０１２２】
図２４は、復号部２１５におけるランレングス復号処理を説明するフロー図である。図２４のステップＳ６０１では、符号解析部４３０が、符号のヘッダー部分を読み込む。ステップＳ６０１に続いてステップＳ６０２に進み、ステップＳ６０１で読み込まれた符号ヘッダーが、画素ヘッダー又は画素差分ヘッダーの何れかであるか否かを判断する。何れかである場合には、ステップＳ６０３に進み、何れでもない場合には、処理を終了する。
【０１２３】
ステップＳ６０２に続くステップＳ６０３では、符号解析部４３０が、符号の本体部分を読み込む。ステップＳ６０３に続いてステップＳ６０４に進み、符号の本体部分からラン長の情報を取得する。
【０１２４】
ステップＳ６０４に続いてステップＳ６０５に進み、符号のヘッダーが画素差分ヘッダーか否かの判断がなされる。画素差分ヘッダーの場合には、ステップＳ６０６に進み、画素差分ヘッダーではない場合には、ステップＳ６０８に進む。
【０１２５】
ステップＳ６０５に続くステップＳ６０６では、符号解析部４３０が、符号から差分の値を読み込む。ステップＳ６０６に続いてステップＳ６０７に進み、次式により画素値ＲＧＢＡＤＡＴＡを得る。
ＲＧＢＡＤＡＴＡ＝ＯＲＧ−ＲＧＢＡＤＡＴＡ＋差分
【０１２６】
一方、ステップＳ６０５に続くステップＳ６０８では、符号解析部４３０がカラー値の情報を読み込み、これをＲＧＢＡＤＡＴＡとする。
【０１２７】
ステップＳ６０７又はステップＳ６０８に続いてステップＳ６０９に進み、ランレングス復号を開始する。ステップＳ６０９からステップＳ６１３の処理は、ランレングス復号部４５０、及び、カラー画像生成部４６０により実行される。ステップＳ６０９では、ランレングス復号部４５０が、ラン長のループのカウンタＬＯＯＰの値を、ラン長の値に設定する。
【０１２８】
ステップＳ６０９に続いてステップＳ６１０に進み、カラー画像生成部４６０が、ＲＧＢＡＤＡＴＡに対し、カラー値になるよう、ヘッダー”００”を付加する。さらに、生成したカラー値を、Ａ，Ｒ，Ｇ，Ｂの４つのプレーンに展開する。展開したプレーンは、プレーン０バッファー部４７２からプレーン３バッファー部４７５に格納される。
【０１２９】
ステップＳ６１０に続くステップＳ６１１では、カウンタＬＯＯＰの値を１減ずる。
【０１３０】
ステップＳ６１１に続いてステップＳ６１２に進み、カウンタＬＯＯＰの値が０か否かを判断する。０の場合は、ステップＳ６１３に進む。０ではない場合には、ステップＳ６１０に戻って処理を繰り返す。
【０１３１】
ステップＳ６１２に続くステップＳ６１３では、直前のランの画素値の変数ＯＲＧ−ＲＧＢＡＤＡＴＡの値に、ＲＧＢＡＤＡＴＡの値をセットする。ステップＳ６１３の後、ステップＳ６０１に戻って処理を繰り返す。
【０１３２】
（コンピュータ等による実現  ＭＦＰ）
図２５は、本発明の実施の形態に係る画像処理装置を実現するコンピュータの構成を説明する図である。図２５のコンピュータは、主処理部９０、入力装置９１、表示装置９２、スキャナ９３、プロッタ９４、ＮＩＣ９６、ドライブ装置９８、ハードディスク装置（以下、「ＨＤＤ」という。）９９、入力Ｉ／Ｆ９１９、表示Ｉ／Ｆ９２９、スキャナＩ／Ｆ９３９、プロッタＩ／Ｆ９４９、ドライブＩ／Ｆ９８９、及び、ＨＤＤ  Ｉ／Ｆ９９９を有する。
【０１３３】
主処理部９０は、コンピュータプログラムを実行して各機能を実現する。主処理部９０は、例えば、ＣＰＵ９０１、ＲＯＭ９０８、及び、ＲＡＭ９０９を有する。ＣＰＵ９０１は、コンピュータプログラムを実行することにより、コンピュータが有する各デバイス等の制御を行う。ＲＯＭ９０８は、例えば、コンピュータプログラムやパラメータ等が格納され、ＣＰＵ９０１にそれらが供せられる。ＲＡＭ９０９は、例えば、ＣＰＵ９０１がコンピュータプログラムを実行する際のワークメモリとして供せられる。
【０１３４】
入力装置９１は、例えば、キーボードやマウス等の入力デバイスとして構成され、コンピュータに対する指示等が入力される。表示装置９２は、コンピュータの状態等が表示される。スキャナ９３は、画像を光学的に読み取って、画像データを生成する。プロッタ９４は、媒体上に画像を形成して出力する。
【０１３５】
ＮＩＣ９６は、コンピュータと外部とをネットワークを介して接続する際のインタフェースの機能を実現し、その制御を行う。ドライブ装置９８は、記録媒体が挿入され、その記録媒体に記録された情報を読み出し、またその記録媒体に情報を記録する。ＨＤＤ９９は、大容量のデータを格納する記憶手段である。
【０１３６】
入力Ｉ／Ｆ９１９は、表示Ｉ／Ｆ９２９、スキャナＩ／Ｆ９３９、プロッタＩ／Ｆ９４９、ドライブＩ／Ｆ９８９、及び、ＨＤＤ  Ｉ／Ｆ９９９は、それぞれ、入力装置９１、表示装置９２、スキャナ９３、プロッタ９４、ドライブ装置９８、及び、ＨＤＤ９９がバスを介して主処理部９０と接続される際のインタフェースである。
【０１３７】
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨をそこなわない範囲で変更することが可能である。
【産業上の利用可能性】
【０１３８】
以上のように、本発明にかかる画像符号化装置は、グラフィックス画像を含む画像の高速処理に有用であり、特に、印刷処理に適している。
【符号の説明】
【０１３９】
１     ＰＤＬ記憶部
２     ＰＤＬ解析部
３     Ｉｎｄｅｘテーブル生成部
４     Ｉｎｄｅｘ描画部
５     ＲＧＢＡ描画部
６     Ｉｎｄｅｘ＆ＲＧＢＡ画像記憶部
７     Ｉｎｄｅｘテーブル記憶部
８     ＲＧＢＡ符号化部
９     ＲＧＢＡ符号記憶部
１０   ＲＧＢＡ復号部
１１   色変換部
１２   ＵＣＲ部
１３   階調処理部
１４   階調処理後画像記憶部
１５   ＤＭＡ処理部
２１   描画処理部
２２   画像処理部
３１   プレーン画像データ
３２   プレーン画像読込部
３３   カラー展開部
３４   Ｉｎｄｅｘテーブル保持部
３５   ランレングス生成部
３６   差分演算部
３７   符号生成部
３８   符号書込部
３９   符号
４１   符号
４２   符号読込部
４３   符号解析部
４４   差分展開部
４５   ランレングス復号部
４６   カラー画像生成部
４７   画像書込部
４９   プレーン画像データ
９０   主処理部
９１   入力装置
９２   表示装置
９３   スキャナ
９４   プロッタ
９８   ドライブ装置
１００ 制御部
１１０ プリンタＡＳＩＣ
１１３ メインメモリアービタ
１１４ メインメモリコントローラ
１１６ ＤＭＡ部
１１８ エンジンコントローラ
１１９ 通信処理部
１２０ プリンタエンジン
１３０ メインメモリ
２００ 制御部
２１１ 符号化部
２１５ 復号部
２１７ 画像処理部
３２０ 画像読込部
３２１ アドレス生成部
３２２ プレーン０バッファー部
３２３ プレーン１バッファー部
３２４ プレーン２バッファー部
３２５ プレーン３バッファー部
３３０ カラー展開部
３３１ カラーパレット１テーブル
３３２ カラーパレット２テーブル
３５０ ランレングス生成部
３６０ 差分演算部
３７０ 符号生成部
３８０ 符号書込部
３８１ アドレス生成部
４２０ 符号読込部
４２１ アドレス生成部
４３０ 符号解析部
４４０ 差分展開部
４５０ ランレングス復号部
４６０ カラー画像生成部
４７０ 画像書込部
４７１ アドレス生成部
４７２ プレーン０バッファー部
４７３ プレーン１バッファー部
４７４ プレーン２バッファー部
４７５ プレーン３バッファー部
１０００      カラープリンタ
【先行技術文献】
【特許文献】
【０１４０】
【特許文献１】特開平６−１３９３６４号公報
【特許文献２】特開平１１−７８２１６号公報
【特許文献３】特開２００７−２１６６７５号公報
【図１】
2010220131.tif 000003
【図２】
2010220131.tif 000004
【図３】
2010220131.tif 000005
【図４】
2010220131.tif 000006
【図５】
2010220131.tif 000007
【図６】
2010220131.tif 000008
【図７】
2010220131.tif 000009
【図８】
2010220131.tif 000010
【図９】
2010220131.tif 000011
【図１０】
2010220131.tif 000012
【図１１】
2010220131.tif 000013
【図１２】
2010220131.tif 000014
【図１３】
2010220131.tif 000015
【図１４】
2010220131.tif 000016
【図１５】
2010220131.tif 000017
【図１６】
2010220131.tif 000018
【図１７】
2010220131.tif 000019
【図１８】
2010220131.tif 000020
【図１９】
2010220131.tif 000021
【図２０】
2010220131.tif 000022
【図２１】
2010220131.tif 000023
【図２２】
2010220131.tif 000024
【図２３】
2010220131.tif 000025
【図２４】
2010220131.tif 000026
【図２５】
2010220131.tif 000027