(57)【特許請求の範囲】
【請求項１】
画像データを色変換する画像処理システムであって、
第１の表色系を用いた第１のラスタデータを処理する第１の画像処理装置と、
前記第１のラスタデータを第２の表色系に色変換した第２のラスタデータを処理する第２の画像処理装置と
を備え、
前記第１の画像処理装置は、
前記第１のラスタデータにおける画素値の出現頻度に応じて、前記第１の表色系の画素値に可変長符号を割り当てた符号化テーブルを生成する符号化テーブル生成部と、
前記符号化テーブル生成部によって生成された符号化テーブルを用いて前記第１のラスタデータを可変長符号化した符号化データを生成する符号化部と、
前記符号化テーブルおよび前記符号化データを前記第２の画像処理装置に引き渡すデータ引渡部と
を備え、
前記第２の画像処理装置は、
前記第１の画像処理装置から引き渡された符号化テーブルにおける画素値を前記第１の表色系から前記第２の表色系に色変換した復号化テーブルを生成する復号化テーブル生成部と、
前記第１の画像処理装置から引き渡された符号化データを、前記復号化テーブル生成部によって生成された復号化テーブルを用いて復号化することによって、前記第２のラスタデータを生成する復号化部と
を備える、画像処理システム。
【請求項２】
請求項１記載の画像処理システムであって、
前記第１の画像処理装置の前記符号化テーブル生成部は、
前記第１のラスタデータにおける前記第１の表色系の画素値のうち、頻度の高い方から所定数の画素値を上位画素値として特定する上位色特定部と、
前記第１のラスタデータにおける前記第１の表色系の画素値のうち、前記上位画素値とは異なる複数の他の画素値を特定する下位色特定部と、
前記上位色特定部によって特定された所定数の上位画素値に該所定数の可変長符号を割り当てると共に、前記下位色特定部によって特定された複数の他の画素値に単一の可変長符号を割り当てることによって、前記符号化テーブルを生成する符号割当部と
を備える、画像処理システム。
【請求項３】
請求項２記載の画像処理システムであって、
前記第１の画像処理装置の前記符号化部は、
前記第１のラスタデータにおける第１の表色系の画素値が前記上位画素値である場合、前記符号化テーブルにおいて該画素値に割り当てられた可変長符号を前記符号化データに編入する第１の符号編入部と、
前記第１のラスタデータにおける第１の表色系の画素値が前記複数の他の画素値の一つである場合、前記符号化テーブルにおいて前記複数の他の画素値に割り当てられた可変長符号と共に、該第１の表色系の画素値を、前記符号化データに編入する第２の符号編入部と
を備える、画像処理システム。
【請求項４】
請求項３記載の画像処理システムであって、
前記第２の画像処理部の前記復号化部は、
前記符号化データにおける可変長符号が前記上位画素値に割り当てられた符号である場合、前記復号化テーブルにおいて該可変長符号に割り当てられた第２の表色系の画素値を、前記第２のラスタデータに編入する第１の画素値編入部と、
前記符号化データにおける可変長符号が前記複数の他の画素値に割り当てられた符号である場合、該可変長符号と共に前記符号化データに編入されている第１の表色系の画素値を色変換した第２の表色系の画素値を、前記第２のラスタデータに編入する第２の画素値編入部と
を備える、画像処理システム。
【請求項５】
前記第１の画像処理装置の前記符号化部は、先回の第１のラスタデータと後続の第１のラスタデータとの間で画素値の出現頻度が同一または類似している場合、前記先回の第１のラスタデータを可変長符号化するのに用いた符号化テーブルを用いて、前記後続の第１のラスタデータを可変長符号化した符号化データを生成する請求項１ないし４のいずれか記載の画像処理システム。
【請求項６】
画像データを処理する画像処理装置であって、
第１の表色系の画素値に可変長符号を割り当てた符号化テーブルに基づいて、該符号化テーブルにおける画素値を第２の表色系に色変換した復号化テーブルを生成する復号化テーブル生成部と、
前記符号化テーブルを用いて前記第１の表色系のラスタデータを可変長符号化した符号化データを、前記復号化テーブル生成部によって生成された復号化テーブルを用いて復号化することによって、前記第２の表色系のラスタデータを生成する復号化部と
を備える画像処理装置。
【請求項７】
コンピュータを用いて、画像データを処理する画像処理方法であって、
コンピュータが備える復号化テーブル生成手段が、第１の表色系の画素値に可変長符号を割り当てた符号化テーブルに基づいて、該符号化テーブルにおける画素値を第２の表色系に色変換した復号化テーブルを生成する工程と、
コンピュータが備える復号化手段が、前記符号化テーブルによる前記第１の表色系のラスタデータを可変長符号化した符号化データを、前記復号化テーブル生成手段によって生成された復号化テーブルを用いて復号化することによって、前記第２の表色系のラスタデータを生成する工程と
を備える画像処理方法。
【請求項８】
画像データを処理する機能をコンピュータに実現させるためのプログラムであって、
第１の表色系の画素値に可変長符号を割り当てた符号化テーブルに基づいて、該符号化テーブルにおける画素値を第２の表色系に色変換した復号化テーブルを生成する復号化テーブル生成機能と、
前記符号化テーブルを用いて前記第１の表色系のラスタデータを可変長符号化した符号化データを、前記復号化テーブル生成機能によって生成された復号化テーブルを用いて復号化することによって、前記第２の表色系のラスタデータを生成する復号化機能と
をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを処理する画像処理技術に関し、特に、ハフマン符号化（Huffman Encoding）やシャノン符号化（Shannon-Fano Encoding）などの可変長符号化を用いて画像データを処理する技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータから伝送された画像データをプリンタで印刷する印刷システムでは、パーソナルコンピュータからプリンタに伝送される画像データを可変長符号化することによって、印刷処理におけるスループットの向上を図ることができる。一般的に、印刷システムで処理される画像データは、デジタルカメラやスキャナで取得される場合やディスプレイに表示される場合にＲＧＢ形式の表色系で取り扱われ、印刷される場合にはＲＧＢ形式からＣＭＹＫ形式の表色系に色変換される。下記特許文献１には、ハフマン符号化によって画像データをデータ圧縮する画像処理技術が開示されている。
【０００３】
【特許文献１】特開２００６−５８７４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の画像処理技術では、可変長符号化における処理負荷の軽減を図ることができるものの、色変換が必要な画像データの取り扱いについて十分に考慮されていなかった。例えば、従来の印刷システムでは、可変長符号化された画像データを復号化した後、その復号化した画像データを更に色変換する必要があった。
【０００５】
本発明は、上記した課題を踏まえ、可変長符号化された画像データを色変換するための処理負荷を軽減することが可能な画像処理技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
【０００７】
［適用例１］  適用例１の画像処理システムは、画像データを色変換する画像処理システムであって、第１の表色系による第１のラスタデータを処理する第１の画像処理装置と、前記第１のラスタデータを第２の表色系に色変換した第２のラスタデータを処理する第２の画像処理装置とを備え、前記第１の画像処理装置は、前記第１のラスタデータにおける画素値の出現頻度に応じて、前記第１の表色系による画素値に可変長符号を割り当てた符号化テーブルを生成する符号化テーブル生成部と、前記符号化テーブル生成部によって生成された符号化テーブルを用いて前記第１のラスタデータを可変長符号化した符号化データを生成する符号化部と、前記符号化テーブルおよび前記符号化データを前記第２の画像処理装置に引き渡すデータ引渡部とを備え、前記第２の画像処理装置は、前記第１の画像処理装置から引き渡された符号化テーブルにおける画素値を前記第１の表色系から前記第２の表色系に色変換した復号化テーブルを生成する復号化テーブル生成部と、前記第１の画像処理装置から引き渡された符号化データを、前記復号化テーブル生成部によって生成された復号化テーブルを用いて復号化することによって、前記第２のラスタデータを生成する復号化部とを備えることを特徴とする。適用例１の画像処理システムによれば、符号化テーブルを色変換した復号化テーブルを用いて第２のラスタデータを符号化データから直接的に生成することができる。その結果、可変長符号化された画像データを色変換するための処理負荷を軽減することができる。
【０００８】
［適用例２］  適用例１の画像処理システムにおいて、前記第１の画像処理装置の前記符号化テーブル生成部は、前記第１のラスタデータにおける前記第１の表色系による画素値のうち、頻度の高い方から所定数の画素値を上位画素値として特定する上位色特定部と、前記第１のラスタデータにおける前記第１の表色系による画素値のうち、前記上位画素値とは異なる複数の他の画素値を特定する下位色特定部と、前記上位色特定部によって特定された所定数の上位画素値に該所定数の可変長符号を割り当てると共に、前記下位色特定部によって特定された複数の他の画素値に単一の可変長符号を割り当てることによって、前記符号化テーブルを生成する符号割当部とを備えるとしても良い。適用例２の画像処理システムによれば、出現頻度の高い上位画素とは異なる複数の他の画素値に単一の可変長符号を割り当てることができるため、これら他の画素値の各々に可変長符号を割り当てた場合と比較して、符号化テーブルのデータ量を抑制することができる。
【０００９】
［適用例３］  適用例２の画像処理システムにおいて、前記第１の画像処理装置の前記符号化部は、前記第１のラスタデータにおける第１の表色系による画素値が前記上位画素値である場合、前記符号化テーブルにおいて該画素値に割り当てられた可変長符号を前記符号化データに編入する第１の符号編入部と、前記第１のラスタデータにおける第１の表色系による画素値が前記複数の他の画素値の一つである場合、前記符号化テーブルにおいて前記複数の他の画素値に割り当てられた可変長符号と共に、該第１の表色系による画素値を、前記符号化データに編入する第２の符号編入部とを備えるとしても良い。適用例３の画像処理システムによれば、出現頻度の高い上位画素とは異なる複数の他の画素値を可変長符号と共に符号化データに編入することによって、データを脱落させることなく第１のラスタデータを符号化することができる。
【００１０】
［適用例４］  適用例３の画像処理システムにおいて、前記第２の画像処理部の前記復号化部は、前記符号化データにおける可変長符号が前記上位画素値に割り当てられた符号である場合、前記復号化テーブルにおいて該可変長符号に割り当てられた第２の表色系による画素値を、前記第２のラスタデータに編入する第１の画素値編入部と、前記符号化データにおける可変長符号が前記複数の他の画素値に割り当てられた符号である場合、該可変長符号と共に前記符号化データに編入されている第１の表色系による画素値を色変換した第２の表色系による画素値を、前記第２のラスタデータに編入する第２の画素値編入部とを備えるとしても良い。適用例４の画像処理システムによれば、単一の可変長符号が割り当てられた複数の他の画素値を第２のラスタデータとして復号化することができる。
【００１１】
［適用例５］  適用例１ないし４のいずれかの画像処理システムにおいて、前記第１の画像処理装置の前記符号化部は、先回の第１のラスタデータと後続の第１のラスタデータとの間で画素値の出現頻度が同一または類似している場合、前記先回の第１のラスタデータを可変長符号化するのに用いた符号化テーブルを用いて、前記後続の第１のラスタデータを可変長符号化した符号化データを生成するとしても良い。適用例５の画像処理システムによれば、後続の可変長符号化に際し符号化データを生成する必要がないため、画像データを可変長符号化するための処理負荷を軽減することができる。
【００１２】
また、適用例１ないし５のいずれかの画像処理システムにおいて、前記第１の画像処理装置の前記符号化テーブル生成部は、前記第１のラスタデータを分割した複数の分割ラスタデータの各々における画素値の出現頻度に応じて、前記第１の表色系による画素値に可変長符号を割り当てた複数の符号化テーブルを生成するとしても良い。この画像処理システムによれば、第１のラスタデータの全体が可変長符号化されるのを待つことなく、分割ラスタデータ毎に後続の処理を進行させることができるため、後続処理の開始を早めることができる。
【００１３】
［適用例６］  画像データを処理する画像処理装置であって、第１の表色系による画素値に可変長符号を割り当てた符号化テーブルに基づいて、該符号化テーブルにおける画素値を第２の表色系に色変換した復号化テーブルを生成する復号化テーブル生成部と、前記符号化テーブルを用いて前記第１の表色系による第１のラスタデータを可変長符号化した符号化データを、前記復号化テーブル生成部によって生成された復号化テーブルを用いて復号化することによって、前記第２の表色系による第２のラスタデータを生成する復号化部とを備えることを特徴とする。適用例６の画像処理装置によれば、符号化テーブルを色変換した復号化テーブルを用いて第２のラスタデータを符号化データから直接的に生成することができる。その結果、可変長符号化された画像データを色変換するための処理負荷を軽減することができる。
【００１４】
本発明の形態は、画像処理システムや画像処理装置に限るものではなく、画像処理装置が組み込まれた印刷装置（プリンタ），コンピュータを用いた画像処理方法、コンピュータプログラムなど他の形態に適用することもできる。また、本発明は、前述の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。
【発明を実施するための最良の形態】
【００１５】
以上説明した本発明の構成および作用を一層明らかにするために、以下本発明を適用した画像処理装置について説明する。なお、本実施例では、画像処理装置の一形態として、印刷システムを例に挙げて説明する。
【００１６】
Ａ．第１実施例：
Ａ１．印刷システムの構成：
図１は、印刷システム１０の構成を示す説明図である。画像処理システムである印刷システム１０は、第１の画像処理装置であるパーソナルコンピュータ（以下、パソコンという）２０と、第２の画像処理装置であるプリンタ３０とを備える。印刷システム１０では、パソコン２０からの印刷要求に基づいて、プリンタ３０による印刷が実施される。
本実施例では、パソコン２０とプリンタ３０とはデータをやり取り可能にローカルエリアネットワーク（Local Area Network、ＬＡＮ）を介して接続されているが、他の実施形態として、無線ＬＡＮ，インタネット，ＵＳＢ(Universal Serial Bus)，ブルートゥースなどを介して接続されても良い。
【００１７】
印刷システム１０のパソコン２０は、セントラルプロセッシングユニット（Central Processing Unit、以下、ＣＰＵという）２１０と、メモリ２２０と、通信インタフェース２８０と、ユーザインタフェース２９０とを備える。
【００１８】
パソコン２０のＣＰＵ２１０は、メモリ２２０に記憶されたプログラムに基づいて様々な演算処理を実行する。ＣＰＵ２１０は、プログラムに基づいて実現される機能要素として、ＲＩＰ（Raster Image Processor）部２１２と、符号化テーブル生成部２１４と、符号化部２１６と、データ引渡部２１８とを備える。ＣＰＵ２１０のＲＩＰ部２１２は、プリンタ３０で印刷される画像データをラスタライズすることによって、ＲＧＢ表色系によるラスタデータであるＲＧＢラスタデータ２２２を生成する。ラスタデータとは、画素（ピクセル）の色情報を有する複数の画素値を羅列して画像を表現したデータを意味する。ＲＧＢ表色系では、赤（Red），緑（Green），青（Blue）の三つの色を混ぜ合わせて様々な色が再現される。ＲＩＰ部２１２によって生成されたＲＧＢラスタデータ２２２は、メモリ２２０に記憶される。
【００１９】
ＣＰＵ２１０の符号化テーブル生成部２１４は、ＲＧＢラスタデータ２２２における画素値の出現頻度を検出し、その出現頻度に応じてＲＧＢ値にハフマン符号を割り当てた符号化テーブル２２４を生成する。符号化テーブル生成部２１４によって生成された符号化テーブル２２４は、メモリ２２０に記憶される。符号化テーブル２２４の詳細については後述する。ＣＰＵ２１０の符号化部２１６は、符号化テーブル生成部２１４によって生成された符号化テーブル２２４を用いて、ＲＩＰ部２１２によって生成されたＲＧＢラスタデータ２２２をハフマン符号化した符号化データ２２６を生成する。符号化データ２２６の詳細については後述する。ＣＰＵ２１０のデータ引渡部２１８は、符号化テーブル２２４および符号化データ２２６を、通信インタフェース２８０を通してプリンタ３０に引き渡す。
【００２０】
本実施例では、パソコン２０のメモリ２２０は、リードオンリメモリ（Read Only Memory、以下、ＲＯＭという），ランダムアクセスメモリ（Random Access Memory、以下、ＲＡＭという）を含み、他の実施形態として、ハードディスクドライブ（Hard Disk Drive、以下、ＨＤＤという）を仮想的にメモリ２２０の一部として利用しても良い。パソコン２０の通信インタフェース２８０は、プリンタ３０とデータをやり取りする。パソコン２０のユーザインタフェース２９０は、ディスプレイ，キーボード，マウスを含み、パソコン２０のユーザと情報をやり取りする。パソコン２０の動作についての詳細は後述する。
【００２１】
印刷システム１０のプリンタ３０は、紙やラベルなどの印刷媒体にインク滴を噴射して文字や画像などのデータを印刷するインクジェット式プリンタである。本実施例では、プリンタ３０は、いわゆる複合機としてスキャナやコピーなどの各種機能を有する。プリンタ３０は、ＣＰＵ３１０と、メモリ３２０と、印刷機構部３３０と、スキャナ３４０と、通信インタフェース３８０と、ユーザインタフェース３９０とを備える。
【００２２】
プリンタ３０のＣＰＵ３１０は、メモリ３２０に記憶されたプログラムに基づいて様々な演算処理を実行する。ＣＰＵ３１０は、プログラムに基づいて実現される機能要素として、画像取得部３１２と、復号化テーブル生成部３１４と、復号化部３１６と、印刷指示部３１８とを備える。ＣＰＵ３１０の画像取得部３１２は、符号化テーブル２２４および符号化データ２２６を、通信インタフェース３８０を通じてパソコン２０から取得する。画像取得部３１２によって取得された符号化テーブル２２４および符号化データ２２６は、メモリ３２０に記憶される。
【００２３】
ＣＰＵ３１０の復号化テーブル生成部３１４は、パソコン２０から取得した符号化テーブル２２４における画素値をＲＧＢ表色系からＣＭＹＫ表色系に色変換した復号化テーブル３２５を生成する。ＣＭＹＫ表色系では、シアン（Cyan），マゼンタ（Magenta），黄（Yellow），黒（Black）の四つの色を混ぜ合わせて様々な色が再現される。復号化テーブル生成部３１４によって生成された復号化テーブル３２５は、メモリ３２０に記憶される。復号化テーブル３２５の詳細については後述する。ＣＰＵ３１０の復号化部３１６は、パソコン２０から取得した符号化データ２２６を、復号化テーブル生成部３１４によって生成された復号化テーブル３２５を用いて復号化することによって、ＣＭＹＫ表色系によるラスタデータであるＣＭＹＫラスタデータ３２８を生成する。復号化部３１６によって生成されたＣＭＹＫラスタデータ３２８は、メモリ３２０に記憶される。ＣＰＵ３１０の印刷指示部３１８は、復号化部３１６によって生成されたＣＭＹＫラスタデータ３２８を印刷するように印刷機構部３３０に指示する。本実施例では、印刷機構部３３０に印刷指示されるＣＭＹＫラスタデータ３２８は、印刷指示部３１８によってハーフトーン処理される。
【００２４】
本実施例では、プリンタ３０のメモリ３２０は、ＲＯＭ，ＲＡＭを含み、他の実施形態として、ＨＤＤを仮想的にメモリ３２０の一部として利用しても良い。プリンタ３０の印刷機構部３３０は、ＣＰＵ３１０からの指示に基づいてシアン（Cyan），マゼンタ（Magenta），黄（Yellow），黒（Black）の四色のインクを印刷媒体に噴射することによって印刷を実行する。プリンタ３０のスキャナ３４０は、原稿台（図示しない）に載置された原稿を読み取ってデジタルデータに変換（スキャン、scan）する。プリンタ３０の通信インタフェース３８０は、パソコン２０とデータをやり取りする。プリンタ３０のユーザインタフェース３９０は、ディスプレイ，操作パネルを含み、プリンタ３０のユーザと情報をやり取りする。プリンタ３０の動作についての詳細は後述する。
【００２５】
Ａ２．印刷システムにおけるパソコンの動作：
図２は、印刷システム１０におけるパソコン２０のＣＰＵ２１０によって実行される印刷要求処理を示すフローチャートである。図２の印刷要求処理は、符号化した印刷データをパソコン２０からプリンタ３０に伝送するための処理である。本実施例では、画像データをプリンタ３０で印刷するようにとの印刷要求が、パソコン２０のユーザからユーザインタフェース２９０を介して受け付けられた場合に、パソコン２０のＣＰＵ２１０は、図２の印刷要求処理を開始する。本実施例では、図２の印刷要求処理は、パソコン２０のＣＰＵ２１０がソフトウェアに基づいて動作することによって実現されるが、他の実施形態として、パソコン２０の電子回路がその物理的な回路構成に基づいて動作することによって実現されても良い。
【００２６】
パソコン２０のＣＰＵ２１０は、図２の印刷要求処理を開始すると、ＲＩＰ部２１２として動作することによってラスタライズ処理を実行する（ステップＳ２２０）。本実施例では、ラスタライズ処理（ステップＳ２２０）では、パソコン２０のユーザからユーザインタフェース２９０を介して指定された画像データが、ＲＧＢラスタデータ２２２へとラスタライズされ、このＲＧＢラスタデータ２２２は、パソコン２０のメモリ２２０に記憶される。本実施例で説明するＲＧＢラスタデータ２２２の一例を、次の数式１に示す。
【００２７】
【数１】
0004957605.tif 000002
【００２８】
ここで、Ｘ１はＲＧＢラスタデータ２２２であり、Ｃ１，Ｃ２，Ｃ３...は、ＲＧＢ表色系の成分値を示すＲＧＢ値を２４ビットで表現するデータである（例えば、Ｃ１＝（０，０，２２５））。
【００２９】
ラスタライズ処理（ステップＳ２２０）の後、ＣＰＵ２１０は、符号化テーブル生成部２１４として動作することによって符号化テーブル生成処理を実行する（ステップＳ２４０）。符号化テーブル生成処理（ステップＳ２４０）において、ＣＰＵ２１０は、ＲＧＢラスタデータ２２２におけるＲＧＢ値の出現頻度（ヒストグラム）を生成する（ステップＳ２４２）。本実施例では、ＣＰＵ２１０は、ＲＧＢラスタデータ２２２におけるＲＧＢ値のうち出現頻度の高い方から「ｎ」個のＲＧＢ値を上位画素値として各々の出現頻度を集計し、これら「ｎ」個の上位画素値以外のＲＧＢ値を下位画素値として単一の出現頻度にまとめて集計する。本実施例では、出現頻度の高い方から「７」個のＲＧＢ値を上位画素値として集計するが、他の実施形態として、パソコン２０におけるＣＰＵ２１０の処理能力やメモリ２２０の記憶容量、パソコン２０とプリンタ３０との間の通信速度、プリンタ３０におけるＣＰＵ３１０の処理能力やメモリ３２０の記憶容量などに応じて、上位画素値の個数を増減しても良い。
【００３０】
本実施例で説明する出現頻度の一例を次に示す。上位画素値は、Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５，Ｃ６，Ｃ７であり、これらの出現頻度は、Ｃ１が５０％、Ｃ２が２０％、Ｃ３が１５％、Ｃ４が５％、Ｃ５が３％、Ｃ６が２％、Ｃ７が１％であり、下位画素の出現頻度が４％であったとする。
【００３１】
ＲＧＢラスタデータ２２２におけるＲＧＢ値の出現頻度（ヒストグラム）が生成された後（ステップＳ２４２）、ＣＰＵ２１０は、その出現頻度に応じてＲＧＢ値にハフマン符号を割り当てた符号化テーブル２２４を生成する（ステップＳ２４４）。本実施例では、「ｎ」個の上位画素値に、その他の画素値を一つにまとめた下位画素値を加えた合計「ｎ＋１」個の画素値に対して、これらの出現頻度に応じて「ｎ＋１」個のハフマン符号が割り当てられる。
【００３２】
図３は、符号化テーブル２２４の一例を模式的に示す説明図である。符号化テーブル２２４は、ＲＧＢ値を示すＲＧＢデータ列２２４２と、ＲＧＢデータ列２２４２のＲＧＢ値にそれぞれ割り当てられたハフマン符号を示すハフマン符号列２２４４とを有する。本実施例では、７個の上位画素値に、その他の画素値を一つにまとめた下位画素値を加えた合計８個の画素値に対して、これらの出現頻度に応じて８個のハフマン符号が割り当てられる。本実施例では、出現頻度が一番目に高い上位画素Ｃ１に、一番短いハフマン符号「Ｆ１＝０」が割り当てられ、続いて出現頻度の順に、Ｃ２に「Ｆ２＝１０」、Ｃ３に「Ｆ３＝１１０」、Ｃ４に「Ｆ４＝１１１００」が割り当てられている。本実施例では、下位画素の出現頻度が４％であり、上位画素Ｃ５の出現頻度３％よりも高いため、上位画素Ｃ４に続いて、下位画素である他の画素値にハフマン符号「Ｇ＝１１１０１」が割り当てられている。本実施例では、下位画素に続いて、Ｃ５に「Ｆ５＝１１１１０」、Ｃ６に「Ｆ６＝１１１１１０」、Ｃ７に「Ｆ７＝１１１１１１」が割り当てられている。
【００３３】
図２の説明に戻り、符号化テーブル生成処理（ステップＳ２４０）の後、パソコン２０のＣＰＵ２１０は、ＲＧＢラスタデータ２２２の最初のＲＧＢ値をメモリ２２０から読み出して準備する（ステップＳ２６１）。その後、ＣＰＵ２１０は、準備したＲＧＢ値を符号化テーブル２２４に照合する（ステップＳ２６４）。
【００３４】
ＲＧＢ値が上位画素値である場合（本実施例では、ＲＧＢ値がＣ１〜Ｃ７のいずれかである場合）（ステップＳ２６５）、ＣＰＵ２１０は、そのＲＧＢ値に対応する符号化テーブル２２４のハフマン符号を符号化データ２２６に編入する（ステップＳ２６６）。一方、ＲＧＢ値が下位画素値である場合（本実施例では、ＲＧＢ値がＣ１〜Ｃ７以外である場合）（ステップＳ２６５）、ＣＰＵ２１０は、下位画素である他の画素値に対応する符号化テーブル２２４のハフマン符号と共に、そのＲＧＢ値を符号化データ２２６に編入する（ステップＳ２６７）。ＲＧＢ値に対応するハフマン符号が符号化データ２２６に編入された後（ステップＳ２６６，Ｓ２６７）、ＣＰＵ２１０は、ＲＧＢラスタデータ２２２に含まれるＲＧＢ値の全てが符号化データ２２６へとハフマン符号化されるまで処理を繰り返す（ステップＳ２６４，Ｓ２６８，Ｓ２６９）。
【００３５】
数式１に示したＲＧＢラスタデータ２２２を符号化データ２２６にハフマン符号化する例を次に示す。本実施例では、数式１のＲＧＢラスタデータ２２２における最初のＲＧＢ値はＣ１である。図３の符号化テーブル２２４によれば、画素値Ｃ１には、ハフマン符号「Ｆ１＝０」が対応付けられていることから、符号化データ２２６にハフマン符号「Ｆ１＝０」が保存される（ステップＳ２６６）。この状態の符号化データ２２６の一例を、次の数式２に示す。
【００３６】
【数２】
0004957605.tif 000003
【００３７】
ここで、Ｘ２は符号化データ２２６である。
【００３８】
本実施例では、数式１のＲＧＢラスタデータ２２２における二番目のＲＧＢ値はＣ３である。図３の符号化テーブル２２４によれば、画素値Ｃ３には、ハフマン符号「Ｆ３＝１１０」が対応付けられていることから、符号化データ２２６にハフマン符号「Ｆ３＝１１０」が保存される（ステップＳ２６６）。この状態の符号化データ２２６の一例を、次の数式３に示す。
【００３９】
【数３】
0004957605.tif 000004
【００４０】
本実施例では、数式１のＲＧＢラスタデータ２２２における三番目のＲＧＢ値はＣ９である。図３の符号化テーブル２２４によれば、画素値Ｃ９は、下位画素値である他の画素値であり、他の画素値には、ハフマン符号「Ｇ＝１１１０１」が対応付けられていることから、ハフマン符号「Ｇ＝１１１０１」と共に、そのＲＧＢ値「Ｃ９」が、符号化データ２２６に保存される（ステップＳ２６７）。この状態の符号化データ２２６の一例を、次の数式４に示す。
【００４１】
【数４】
0004957605.tif 000005
【００４２】
上述の通り処理を繰り返すことによって、数式１のＲＧＢラスタデータ２２２は、次の数式５で示される符号化データ２２６にハフマン符号化される（ステップＳ２６０）。
【００４３】
【数５】
0004957605.tif 000006
【００４４】
図２の説明に戻り、符号化処理（ステップＳ２６０）の後、パソコン２０のＣＰＵ２１０は、データ引渡部２１８として動作することによってデータ引渡処理を実行する（ステップＳ２８０）。データ引渡処理（ステップＳ２８０）では、ＣＰＵ２１０は、符号化処理（ステップＳ２６０）で生成された符号化データ２２６を、符号化テーブル生成処理（ステップＳ２４０）で生成された符号化テーブル２２４と合わせて、通信インタフェース２８０を通じてプリンタ３０に伝送する（ステップＳ２８０）。データ引渡処理（ステップＳ２８０）の後、ＣＰＵ２１０は、図２の印刷要求処理を終了する。
【００４５】
Ａ３．印刷システムにおけるプリンタの動作：
図４は、印刷システム１０におけるプリンタ３０のＣＰＵ３１０によって実行される画像印刷処理を示すフローチャートである。図４の画像印刷処理は、パソコン２０から受け取った符号化された印刷データを復号化して印刷するための処理である。本実施例では、プリンタ３０の通信インタフェース３８０がパソコン２０から符号化テーブル２２４および符号化データ２２６を受け取った場合に、プリンタ３０のＣＰＵ３１０は、図４の画像印刷処理を開始する。本実施例では、図４の画像印刷処理は、プリンタ３０のＣＰＵ３１０がソフトウェアに基づいて動作することによって実現されるが、他の実施形態として、プリンタ３０の電子回路がその物理的な回路構成に基づいて動作することによって実現されても良い。
【００４６】
プリンタ３０のＣＰＵ３１０は、図４の画像印刷処理を開始すると、画像取得部３１２として動作することによって画像取得処理を実行する（ステップＳ３２０）。画像取得処理（ステップＳ３２０）において、本実施例では、ＣＰＵ３１０は、通信インタフェース３８０を通じてパソコン２０から符号化テーブル２２４を取得する（ステップＳ３２２）。その後、ＣＰＵ３１０は、通信インタフェース３８０を通じてパソコン２０から符号化データ２２６を取得する（ステップＳ３２４）。本実施例では、パソコン２０から取得された符号化テーブル２２４および符号化データ２２６は、プリンタ３０のメモリ３２０に記憶される。
【００４７】
画像取得処理（ステップＳ３２０）の後、ＣＰＵ３１０は、復号化テーブル生成部３１４として動作することによって復号化テーブル生成処理を実行する（ステップＳ３４０）。復号化テーブル生成処理（ステップＳ３４０）において、ＣＰＵ３１０は、画像取得処理（ステップＳ３２０）でパソコン２０から取得した符号化テーブル２２４におけるＲＧＢ値をＣＭＹＫ値に色変換することによって（ステップＳ３４２）、符号化テーブル２２４のハフマン符号にＣＭＹＫ値を対応付けた復号化テーブル３２５を生成する（ステップＳ３４４）。
【００４８】
図５は、復号化テーブル３２５の一例を模式的に示す説明図である。復号化テーブル３２５は、ＣＭＹＫ値を示すＣＭＹＫデータ列３２５２と、ＣＭＹＫデータ列３２５２のＣＭＹＫ値にそれぞれ割り当てられたハフマン符号を示すハフマン符号列３２５４とを有する。ＣＭＹＫ表色系の成分値を示すＣＭＹＫ値Ｄ１〜Ｄ７は、ＲＧＢ値Ｃ１〜Ｃ７をそれぞれＣＭＹＫ値に色変換したデータである。
【００４９】
図４の説明に戻り、複号化テーブル生成処理（ステップＳ３４０）の後、プリンタ３０のＣＰＵ３１０は、復号化部３１６として動作することによって復号化処理を実行する（ステップＳ３６０）。復号化処理（ステップＳ３６０）において、ＣＰＵ３１０は、画像取得処理（ステップＳ３２０）でパソコン２０から取得した符号化データ２２６を、復号化テーブル生成処理（ステップＳ３４０）で生成した復号化テーブル３２５を用いて復号化することによって、ＣＭＹＫラスタデータ３２８を生成する。復号化処理（ステップＳ３６０）の詳細については後述する。
【００５０】
復号化処理（ステップＳ３６０）の後、ＣＰＵ３１０は、印刷指示部３１８として動作することによって印刷指示処理を実行する（ステップＳ３８０）。印刷指示処理（ステップＳ３８０）において、ＣＰＵ３１０は、復号化処理（ステップＳ３６０）で生成されたＣＭＹＫラスタデータ３２８を印刷するように印刷機構部３３０を制御する。印刷指示処理（ステップＳ３８０）の後、プリンタ３０のＣＰＵ３１０は、図４の画像印刷処理を終了する。
【００５１】
図６は、図４の画像印刷処理における復号化処理（ステップＳ３６０）の詳細を示すフローチャートである。プリンタ３０のＣＰＵ３１０は、図６の復号化処理（ステップＳ３６０）を開始すると、画像取得処理（ステップＳ３２０）でパソコン２０から取得した符号化データ２２６の最初のハフマン符号をメモリ３２０から読み出して準備する（ステップＳ３６１）。その後、ＣＰＵ３１０は、準備したハフマン符号を、復号化テーブル生成処理（ステップＳ３４０）で生成した復号化テーブル３２５に照合する（ステップＳ３６２）。
【００５２】
ハフマン符号が上位画素値に対応付けられた符号である場合（本実施例では、ハフマン符号がＦ１〜Ｆ７のいずれかである場合）（ステップＳ３６４）、ＣＰＵ３１０は、そのハフマン符号に対応する復号化テーブル３２５のＣＭＹＫ値をＣＭＹＫラスタデータ３２８に編入する（ステップＳ３６６）。一方、ハフマン符号が下位画素値に対応付けられた符号である場合（本実施例では、ハフマン符号がＧである場合）（ステップＳ３６４）、ＣＰＵ３１０は、そのハフマン符号Ｇと共に符号化データ２２６に編入されているＲＧＢ値を特定する（ステップＳ３７２）。その後、ＣＰＵ３１０は、符号化データ２２６から特定したＲＧＢ値をＣＭＹＫ値に色変換し（ステップＳ３７４）、このＲＧＢ値から色変換したＣＭＹＫ値をＣＭＹＫラスタデータ３２８に編入する（ステップＳ３７６）。ハフマン符号に対応するＣＭＹＫ値がＣＭＹＫラスタデータ３２８に編入された後（ステップＳ３６６，Ｓ３７６）、ＣＰＵ３１０は、符号化データ２２６に含まれるハフマン符号の全てがＣＭＹＫラスタデータ３２８へと復号化されるまで処理を繰り返す（ステップＳ３６２，Ｓ３６８，Ｓ３６９）。
【００５３】
数式５に示した符号化データ２２６をＣＭＹＫラスタデータ３２８に復号化する例を次に示す。本実施例では、数式５の符号化データ２２６における最初のハフマン符号は「Ｆ１＝０」である。図５の復号化テーブル３２５によれば、ハフマン符号Ｆ１には、ＣＭＹＫ値「Ｄ１」が対応付けられていることから、ＣＭＹＫラスタデータ３２８にＣＭＹＫ値「Ｄ１」が保存される（ステップＳ３６６）。この状態のＣＭＹＫラスタデータ３２８の一例を、次の数式６に示す。
【００５４】
【数６】
0004957605.tif 000007
【００５５】
ここで、Ｘ３はＣＭＹＫラスタデータ３２８である。
【００５６】
本実施例では、数式５の符号化データ２２６における二番目のハフマン符号は「Ｆ３＝１１０」である。図５の復号化テーブル３２５によれば、ハフマン符号Ｆ３には、ＣＭＹＫ値「Ｄ３」が対応付けられていることから、ＣＭＹＫラスタデータ３２８にＣＭＹＫ値「Ｄ３」が保存される（ステップＳ３６６）。この状態のＣＭＹＫラスタデータ３２８の一例を、次の数式７に示す。
【００５７】
【数７】
0004957605.tif 000008
【００５８】
本実施例では、数式５の符号化データ２２６における三番目のハフマン符号は「Ｇ＝１１１０１」である。図５の復号化テーブル３２５によれば、ハフマン符号Ｇは下位画素値である他の画素値に対応付けられていることから、そのハフマン符号Ｇの次に符号化データ２２６に保存されているＲＧＢ値「Ｃ９」をＣＭＹＫ値に色変換した「Ｄ９」が、ＣＭＹＫラスタデータ３２８に保存される（ステップＳ３７６）。この状態のＣＭＹＫラスタデータ３２８の一例を、次の数式８に示す。
【００５９】
【数８】
0004957605.tif 000009
【００６０】
上述の通り処理を繰り返すことによって、数式５の符号化データ２２６は、次の数式９で示されるＣＭＹＫラスタデータ３２８に復号化される（ステップＳ３６０）。
【００６１】
【数９】
0004957605.tif 000010
【００６２】
Ａ４．効果：
以上説明した印刷システム１０によれば、符号化テーブル２２４を色変換した復号化テーブル３２５を用いてＣＭＹＫラスタデータ３２８を符号化データ２２６から直接的に生成することができる。その結果、ハフマン符号かされたＲＧＢラスタデータをＣＭＹＫラスタデータに色変換するための処理負荷を軽減することができる。
【００６３】
また、出現頻度の高い上位画素とは異なる複数の他の画素値に単一のハフマン符号を割り当てることができるため（ステップＳ２４４）、これら他の画素値の各々にハフマン符号を割り当てた場合と比較して、符号化テーブル２２４のデータ量を抑制することができる。また、出現頻度の高い上位画素とは異なる複数の他の画素値をハフマン符号と共に符号化データ２２６に編入することによって（ステップＳ２６７）、データを脱落させることなくＲＧＢラスタデータ２２２を符号化することができる。
【００６４】
Ｂ．その他の実施形態：
以上、本発明の実施の形態について説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。例えば、本実施例では、表色系の一例としてＲＧＢ表色系およびＣＭＹＫ表色系を示したが、ＲＧＢＡ，ＹＣｂＣｒなどの他の異なる表色系の間で色変換が必要な場合のデータ符号化に本発明を適用しても良い。また、本実施例では、ハフマン符号化を示したが、シャノン符号化など他の可変長符号化に本発明を適用しても良い。
【００６５】
また、上述の実施例では、本発明をパソコン２０とプリンタ３０とを備える印刷システム１０に適用した例について説明したが、他の実施形態として、例えば、パソコン２０に代えて、デジタルスチルカメラやデジタルカメラ、携帯電話などの画像データを処理可能な画像処理装置をプリンタ３０に接続しても良い。また、プリンタ３０において、スキャナ３４０で生成されたＲＧＢラスタデータをメモリ３２０にハフマン符号化して一時的に保管した後、そのＲＧＢラスタデータを印刷機構部３３０で印刷する場合に、本発明を適用しても良い。
【００６６】
また、印刷システム１０におけるパソコン２０のＣＰＵ３１０は、先回のＲＧＢラスタデータと後続のＲＧＢラスタデータとの間で画素値の出現頻度が同一または類似している場合、先回のＲＧＢラスタデータをハフマン符号化するのに用いた符号化テーブルを用いて、後続のＲＧＢラスタデータをハフマン符号化した符号化データを生成するとしても良い。これによって、後続のハフマン符号化に際し符号化データを生成する必要がないため、画像データをハフマン符号化するための処理負荷を軽減することができる。
【００６７】
また、印刷システム１０におけるパソコン２０のＣＰＵ３１０は、ＲＧＢラスタデータを分割した複数の分割ラスタデータの各々における画素値の出現頻度に応じて、ＲＧＢ値にハフマン符号を割り当てた複数の符号化テーブルを生成するとしても良い。これによって、ＲＧＢラスタデータの全体がハフマン符号化されるのを待つことなく、分割ラスタデータ毎に後続の処理を進行させることができるため、後続処理の開始を早めることができる。
【図面の簡単な説明】
【００６８】
【図１】印刷システム１０の構成を示す説明図である。
【図２】印刷システム１０におけるパソコン２０のＣＰＵ２１０によって実行される印刷要求処理を示すフローチャートである。
【図３】符号化テーブル２２４の一例を模式的に示す説明図である。
【図４】印刷システム１０におけるプリンタ３０のＣＰＵ３１０によって実行される画像印刷処理を示すフローチャートである。
【図５】復号化テーブル３２５の一例を模式的に示す説明図である。
【図６】図４の画像印刷処理における復号化処理（ステップＳ３６０）の詳細を示すフローチャートである。
【符号の説明】
【００６９】
１０...印刷システム
２０...パソコン
３０...プリンタ
２１０...ＣＰＵ
２１２...ＲＩＰ部
２１４...符号化テーブル生成部
２１６...符号化部
２１８...データ引渡部
２２０...メモリ
２２２...ＲＧＢラスタデータ
２２４...符号化テーブル
２２６...符号化データ
２８０...通信インタフェース
２９０...ユーザインタフェース
３１０...ＣＰＵ
３１２...画像取得部
３１４...復号化テーブル生成部
３１６...復号化部
３１８...印刷指示部
３２０...メモリ
３２５...復号化テーブル
３２８...ＣＭＹＫラスタデータ
３３０...印刷機構部
３４０...スキャナ
３８０...通信インタフェース
３９０...ユーザインタフェース
２２４２...ＲＧＢデータ列
２２４４...ハフマン符号列
３２５２...ＣＭＹＫデータ列
３２５４...ハフマン符号列
【図１】
0004957605.tif 000011
【図２】
0004957605.tif 000012
【図３】
0004957605.tif 000013
【図４】
0004957605.tif 000014
【図５】
0004957605.tif 000015
【図６】
0004957605.tif 000016