画像処理装置、画像処理方法、プログラム、および記憶媒体
【課題】高解像度画像に対して、高速かつ安価な画像合成処理が可能な画像処理装置を提供する。
【解決手段】入力された画像データを、所定の画素数単位のタイルごとに分割し、当該分割された各タイルをM×N画素のサイズのブロックごとに分割する。各ブロックを順に処理対象とし、各ブロックに含まれる色データの配置パターンを示すパターンフラグを特定し、各ブロックの予め定義された位置の画素から第1色の色データを抽出し、更に、色データの数が2〜4のいずれかであると判断したブロックからは、配置パターンに対応する第2〜4色の色データを抽出して、各ブロックのパターンフラグと抽出された第1〜4色の色データとをメモリに保持させる。合成する合成画像データに基づいて、合成処理対象となるブロックの第1〜4色の色データとが保持されているメモリにおけるアドレスを特定し、各データを、合成画像データの色データに基づいて書き換える。
【解決手段】入力された画像データを、所定の画素数単位のタイルごとに分割し、当該分割された各タイルをM×N画素のサイズのブロックごとに分割する。各ブロックを順に処理対象とし、各ブロックに含まれる色データの配置パターンを示すパターンフラグを特定し、各ブロックの予め定義された位置の画素から第1色の色データを抽出し、更に、色データの数が2〜4のいずれかであると判断したブロックからは、配置パターンに対応する第2〜4色の色データを抽出して、各ブロックのパターンフラグと抽出された第1〜4色の色データとをメモリに保持させる。合成する合成画像データに基づいて、合成処理対象となるブロックの第1〜4色の色データとが保持されているメモリにおけるアドレスを特定し、各データを、合成画像データの色データに基づいて書き換える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを所定のブロック単位に圧縮する画像データ圧縮装置、及び圧縮されたデータへの画像処理、及び復元処理を行う画像処理装置に関する。特に、圧縮されたデータに対して合成処理を行う画像処理装置に関する。
【背景技術】
【0002】
従来、カラー静止画像の圧縮方式には、離散コサイン変換を利用したJPEG方式や、Wavelet変換を利用した方式が多く使われている。この種の符号化方式は、一般的に画像データを所定のブロック(例えば8×8や16×16画素単位)に符号化し、離散コサイン変換、量子化およびエントロピー符号化を行うことで高い圧縮効率を示している。この種の符号化方式は、可変長符号化方式であるので、符号化対象の画像データ毎に符号量が変化するものである。ブロック単位での離散コサイン変換処理を高速に行う場合、高速演算器もしくは専用ハードウェアが必要な上、バッファ用のメモリが必要となる。
【0003】
また、高解像度化が進むにつれて合成処理に代表される画像処理を必要とする画素数が飛躍的に増えその処理負荷が増大しているという課題もある。前述した画像圧縮が為された圧縮データに対して、画素データを参照し、画素データの値を変換する画像処理を実行しようとすると、当該圧縮データの復号処理が必要になってくる。つまり圧縮データのままで合成処理に代表される画像処理を行う事は出来ず、必ず復号処理が必要になる。そのため、高解像度データ全ての画素に対して画素単位に処理を行う必要が出てしまい、処理時間の増大をまねく。
【0004】
高解像度化に伴う画像合成処理の処理時間の増大を防ぐための画像合成装置として、例えば特許文献1がある。特許文献1によれば、画像合成対象となる複数の画像データの各縮小画像を作成し、重複領域の抽出・位置合わせを行う。これらの情報に基づいて画像データの合成を行う。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−358194号
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1の方法では、合成対象となる画像データの縮小画像を作成しなければならないため、縮小画像を作成するための処理時間が増大してしまう。また、合成処理自体は縮小前の画像データに対して行うため、一時記憶用のメモリ容量の増大も招いてしまう。
【0007】
本発明は、このような問題を鑑みてなされたもので、画像データを圧縮した状態で画像合成を行う領域のみに対して処理を行うことにより、安価でかつ高解像度画像データでも処理時間が短い画像処理装置を提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の画像処理装置は、入力された画像データを、所定の画素数単位のタイルごとに分割するタイル分割手段と、前記タイル分割手段で分割された各タイルを、M×N画素のサイズのブロックごとに分割するブロック分割手段と、前記ブロック分割手段で分割された各ブロックを順に処理対象にし、当該処理対象のブロック内の各画素の色データを比較することにより、前記各ブロックに含まれる色データの配置パターンを示すパターンフラグを特定するパターンフラグ特定手段と、前記各ブロックの予め定義された位置の画素から第1色の色データを抽出し、更に、前記ブロックに含まれる色データの数が2〜4のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第2〜4色の色データを抽出する抽出手段と、前記パターンフラグ特定手段で特定された各ブロックのパターンフラグと、前記抽出手段で抽出された第1色の色データと、前記抽出手段で抽出された第2〜4色の色データとをメモリに保持させる第1の保持手段と、合成する合成画像データに基づいて、合成処理対象となるブロックの前記第1色の色データと前記第2〜4色の色データとが保持されている前記メモリにおけるアドレスを特定するブロックアドレス特定手段と、前記ブロックアドレス特定手段により特定されたアドレスに保持されている、前記合成処理対象となるブロックに関する前記第1色の色データと前記第2〜4色の色データとを、前記合成画像データの色データに基づいて書き換える合成手段と、を有する。
【発明の効果】
【0009】
安価で、かつ高解像度画像データに対しても処理時間が短い画像処理装置を提供可能となる。
【図面の簡単な説明】
【0010】
【図1】本実施形態に係る画像処理装置の全体ブロック図。
【図2】本実施形態に係る図1のコントローラ101のブロック図。
【図3】本実施形態に係る画像をブロック分割した際のブロックのパターン示す図。
【図4】本実施形態に係るブロックのパターンとその識別子を列挙した図。
【図5】本実施形態に係る画像圧縮のフローを示した図。
【図6】本実施形態に係るブロックのパターンをフラグへ変換している様子を示した図。
【図7】第一の実施形態に係る圧縮処理に対する入力と出力の関係を示した図。
【図8】第一の実施形態に係るページとタイルとブロックの関係を示した図。
【図9】第一の実施形態に係るパケットの構成およびヘッダの構成を示した図。
【図10】第一の実施形態に係るパケット管理テーブルの例を示した図。
【図11】第一の実施形態に係る圧縮データのメモリ空間上でのレイアウトの例を示した図。
【図12】第一の実施形態に係るコントローラの動作のフローを示した図。
【図13】第一の実施形態に係る座標(0,0)のパケットの構成およびヘッダの構成を示した図。
【図14】第一の実施形態に係る合成情報を示した図。
【図15】第一の実施形態に係る画像合成部241の動作の詳細フローを示した図。
【図16】第一の実施形態に係るパターンフラグと第2,3,4色画素データのサイズとの関係を示した図。
【図17】第一の実施形態に係るにおけるアドレス特定の詳細フローを示した図。
【図18】第一の実施形態に係るパケット(1,2)のブロック座標と第2,3,4色画素データのアドレスとの関係を示した図。
【図19】第一の実施形態に係る画像合成前後の全体イメージ図。
【図20】第二の実施形態に係るパケットの構成およびヘッダの構成を示した図。
【図21】第二の実施形態に係るコントローラの動作のフローを示した図。
【図22】第二の実施形態に係る合成情報及びパケット管理テーブルの例を示した図。
【図23】第二の実施形態に係る座標(1,2)のパケットの構成およびヘッダの構成を示した図。
【図24】第二の実施形態に係るパケット(1,2)のブロック座標と第2,3,4色画素データとそれに対応する属性データのアドレスの関係を示す図。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための形態について図面を用いて説明する。
【0012】
<第一の実施形態>
[システム構成]
図1に、本発明の一実施形態としての画像処理装置の全体ブロック図を示す。本発明の実施形態における画像処理装置はスキャン、プリント、コピーを行うMFP(Multi Functional Printer)を想定している。画像処理装置は、コントローラ101、スキャナ102、プリンタ103、通信IF104、メモリ105から構成されている。
【0013】
コントローラ101は、画像処理装置全体の制御を司る部分である。コントローラ101はスキャナ102やプリンタ103をはじめとする各ブロックと電気的に接続されており、高度な機能を実現する為の制御を行っている。詳細については後述する。スキャナ102は原稿画像を光学的に読み取って電気的な画像信号に変換するブロックであり、密着型イメージセンサ、読み取り駆動部、読み取り点灯制御部等により構成される。読み取り駆動部(不図示)による制御に基づいて搬送される密着型イメージセンサによって原稿全体がスキャンされる際、読み取り点灯制御部の制御により密着型イメージセンサ内部のLEDが点灯制御される。同時に、密着型イメージセンサ内部のフォトセンサが原稿画像を光学的に読み取って、電気的な画像データに変換する。
【0014】
プリンタ103は電気的な画像信号を記録紙上に可視像としてプリントするブロックであり、レーザビームプリンタやインクジェットプリンタにより構成される。通信IF104は外部機器とのデータの送受を行うブロックであり、インターネット網やLANに接続したり、公衆電話回線に接続してFAX通信を行ったり、USBインタフェースによりPC(Personal Computer)と接続する。メモリ105は、例えばDDR−SDRAMやHDDなどのメモリデバイスであり、画像データを一時的に格納するだけでなく、画像処理装置の機能を実現する為にコントローラ101が使用する制御プログラムやデータなどを格納する。また、画像データの合成に必要な合成情報を格納する。
【0015】
図2にコントローラ101のブロック図を示す。コントローラ101は、CPU(Central Processing Unit)201やスキャナ用画像処理部211、画像圧縮部212、242、パケット生成部213、243を含む。さらに、DMAC(Direct Memory Access Controller)214、221、244、パケット展開部222、画像展開部223、プリント用画像処理部224、画像合成部231、レンダリング部241を含む。
【0016】
以下、各部の概略を説明する。CPU201はコントローラ部全体を制御する。CPU201は、メモリ105等の記憶部に格納されたコンピュータが読取可能なプログラムを読み出して実行することにより、各部を制御する。スキャナ用画像処理部211はスキャナ102が読み込んだ画像データに対して、シェーディング補正等を施し、更に、MTF補正、色変換処理、フィルタ処理、ガンマ補正処理等の各種画像処理を行う。その後、画像圧縮部212へ画像データを転送する。画像圧縮部212の詳細に関して説明を行う。まずページ単位のスキャナ用画像処理部211から受信した画像データから2×2画素のブロックを抽出し、そのブロック単位でデータの圧縮を行う。
【0017】
画像圧縮部212における処理の説明の前に、2×2の4画素データ中に占める色数に応じてその組み合わせの場合の数を考える。画素数が4画素であるため、そこに占める色数は最大4色になり、2×2サイズのブロック内では、たかだか1〜4色の組み合わせしか存在しない。それらのパターンが取りうる組み合わせの数を、図3を使って説明する。まずブロック内が1色の場合、4画素が同色で構成されている事になるので、その組み合わせは1通りである。次にブロック内が2色の場合を考える(各色を第1色と第2色と呼ぶこととする)。2色が4画素内へレイアウトされる場合の数は、所定位置の画素(本実施形態では左上の画素とする)の色を第1色として考えると、左上画素以外の残りの3画素へ第1色もしくは第2色が入るので、4画素同色の場合を除くと、全部で7通りの組み合わせが考えられる。
【0018】
次にブロック内が3色(第1色〜第3色)で構成される場合を考える。3色が4画素内へレイアウトされる場合の数は、3色のうち1色だけ2度使われる場合の数と言い換える事ができ、4画素の座標のうち、2画素が同じ色になる場合の数を求めればよい。つまり3色の場合の数は、4つの座標から2つの座標を取る組み合わせとなり、全部で6通りとなる。また、ブロック内が4色(第1色〜第4色)で構成される場合は1通りしか存在しない。
【0019】
これら1〜4色すべての場合の数を合計すると全部で15通りのパターンが考えられる。これらすべてのパターンを識別するためにフラグを付与する事を考えると、データ量としては4bitが必要となる。図示すると図4のようになり、以降この配置パターンを示すフラグをパターンフラグと呼ぶ。この定義されたパターンフラグにより、ブロック内における色数およびその色配置のバターンを特定することができる。
【0020】
[圧縮処理]
上記のように2×2画素の取りうる組み合わせを踏まえて、画像圧縮部212にて行われる圧縮処理の処理フローを、図5を用いて説明する。入力としては、例えばRGB(Red Green Blue)それぞれ8bitの256階調を持っており、またデータとしては8bitデータの点順次で1画素辺り24bit画像として説明を行う。なお、圧縮処理を行う画像データは、予めブロックのサイズに分割されていても良いし、本画像処理装置が分割手段を有しても良い。
【0021】
処理が開始されると、まず2×2画素のブロックを入力する(S101)。入力されたブロック内全ての2画素の組み合わせに対して24bitのコンペアを取る(S102)。このコンペアを取った結果、全ビット一致していた場合は1を出力し、不一致の場合は0を出力する。ここで、図6に示すように、2×2画素内の左上から右上、左下、右下の順に座標1、2、3、4とすると、2画素の組は、1−2、1−3、1−4、2−3、2−4、3−4の全部で6通りある。そのため、6回コンペアを取る必要があり、結果は6bit出力される。例えば全画素同色の場合には、全てのコンペア結果において1を出力し、逆に4画素全て異なる画素値を持っている場合には、全てのコンペア結果において0を出力する。前述の通り、4画素で色の一致から出現しうるパターン数は15通りなので、その6bitのコンペア結果に対して4bitのパターンフラグへ変換することが可能である(S103)。
【0022】
4bitのパターンフラグへ変換したら、続いて4画素内で出現した色数および色データを抽出する(S104)。パターンフラグから、左上を第1色とした場合の第2色以降がどの位置にあるか求める事が出来る。図7を参照しながら説明を行う。例えば4画素内が1色で構成されていることが確定した場合には、2色目以降は存在しないので、左上の画素から第1色の画素値を得て、パターンフラグ4bitと1色目の画素値24bit(RGBの各色成分8bit×3)を出力する(S106)。また4画素内が2色で構成されていることが確定した場合(S107)には、その2色目の座標をパターンフラグより算出して第2色の画素値を得て、パターンフラグ4bitと2色分の画素値48bitを出力する(S108)。3色、4色の場合も同様である(S109、S110、S111)。この時ブロック内の座標(左上から右上、左下、右下の順に1、2、3、4)順にこれまで出現していなかった色データを記憶する。以上により、色データの取得およびパターンフラグ特定を行う。
【0023】
このように、2×2画素からなるブロック内の4色分の入力データ(96bit)を4bitのパターンフラグとブロック内に存在する色数だけ画素値を出力することで、比較的簡単な処理で出力データ量を削減することが可能になる。またパターンフラグを参照することで、そのブロック内の色数を特定することが可能になる。この処理を画像ブロック全てに対して行うことで、画像全面のデータ圧縮が可能になる。
【0024】
パケット生成部213は、画像圧縮部212により圧縮された画像データを所定の画素数単位(本実施形態では所定の画素数単位を32×32画素とし、この単位をタイルと呼ぶ)に分割して読み出し、タイルに所定の固定長のヘッダ情報を付与する。図8にタイルとブロックとの関係を図示する。図8に示すように、入力された画像データの各ページにおいて、ページは複数のタイルにタイル分割される。更に、分割された各タイルは、複数のブロックにブロック分割される。なお、本実施形態において、ブロックを2x2画素、タイルを32x32画素からなる構成として扱っているが、これに限定されるわけではなく、必要に応じて変更させても良い。例えば、ブロックのサイズをM×N画素のサイズ(M,Nは2以上の整数)とする。なお、タイルのサイズはブロックサイズの定数倍のサイズとする(例えばブロックのサイズが2x2画素の場合、2K×2L(K,Lは2以上の整数))。ただし、ブロックのサイズを変更した場合には、上記で述べたパターンフラグの数やパターンフラグに必要とされるビット数も変更になることはいうまでも無い。
【0025】
[圧縮データの構造]
続いて、入力された画像データを圧縮した際のデータ構造について述べる。上記タイル単位にて圧縮を行うことを前提とし、そのタイルの圧縮データごとにヘッダを有する。ヘッダにはページID、タイル座標、色空間、画素データのビット数、タイルのデータサイズ等を記述する。ページIDには、ページ単位にユニークなID番号を付与する。タイル座標には、そのタイルがページ単位のラスタ画像上どの位置にあるかを記述してある。タイル座標には、X座標とY座標と2次元で座標が示されているとする。
【0026】
色空間には、そのタイルがRGB画像なのかCMYK画像なのかGRAY−SCALE画像なのかの識別子が記述されている。画素データのビット数には、タイル内の1画素あたりのビット長が書かれている。データサイズには、そのタイルの第2,3,4色画素データのデータサイズがByte単位で記述されている。このデータ構造を図9に示す。以後、このタイルとヘッダを含めたデータの単位を“パケット”と呼ぶことにする。
【0027】
パケットのデータ構造の生成方法について述べる。画像圧縮部212で生成されるデータは大きくパターンフラグ、第1色画素データ(第1色の色データ)、及び第2,3,4色画素データ(第2〜4色の色データ)、の3つのデータ種に分類可能である。各データのサイズは、タイルの単位である32×32画素のRGB各色8ビット画像の場合、以下のようになる。
【0028】
パターンフラグのデータサイズ(各ブロック4bit):4×16×16/8=128Byte
第1色画素データのデータサイズ(各ブロック24bit):24×16×16/8=768Byte
第2,3,4色画素データのデータサイズ(各ブロック最大72bit):最大72×16×16/8=2304Byte
なお、第2,3,4色画素データのデータサイズは、画像データによって異なり、最小は0Byteである。
【0029】
これらのデータサイズを格納可能な記憶部をパケット生成部に用意しておき、データ種ごと領域をまとめて格納する。タイル単位で圧縮処理が終了し、データサイズが確定した後にヘッダを付加することで、図9のようなパケットのデータ構造を作ることができる。
【0030】
ここで第1色画素データ以降のメモリ領域に関しては、画素値がピクセル単位で量子化や符号化されることなく格納して保持されている。つまり、1画素入力、1画素出力で完結する色処理(例えばLUTを用いた色変換や、ガンマ補正処理、行列演算を用いた色空間変換処理等)は、パターンフラグを参照して圧縮データを展開する必要はなく、直接処理を行うことが可能になる。このように圧縮データを直接用いることで、メモリバス上の転送効率が向上し、かつオリジナルの画像に対して少ない画素数のデータに対して処理することになるので、高速処理が可能になる。
【0031】
また図9のように画像データをメモリ上へ格納し保持することで、第1色画素データ領域は、画像データを2×2単位として、左上の座標の画素をサンプリングした画像結果がメモリ上に連続して存在することになる。これにより、第1の保持手段を実現する。本実施形態で説明している画像処理装置においては、蓄積したPDL(Page Description Language)の画像データやスキャンの画像データにおけるプレビュー表示や、前述したネットワーク送信などの機能も有している。例えばプリント解像度が600dpiであったとしてもプレビューや送信時にそこまでの解像度は通常必要とされず、300dpiやそれ以下で十分な場合が多い。こういった縮小データを得る必要がある場合は、パターンフラグや第2,3,4色を用いず、第1色画素データ領域から読み出した第1色の画像データのみ扱うことで、簡単に半分のサイズのラスタ画像を得る事が出来る。
【0032】
[パケット管理テーブル]
タイルの座標、パケットサイズ、パケットが置かれているアドレスをリストとして列挙し、パケット管理テーブルとして作成することで、任意のパケットへのアクセスが可能になる。パケット管理テーブルの例を図10(A)に示す。このようにしてタイル単位で画像データをパケットとしてメモリへ書き出すと図11のようにパケット毎にサイズが異なり、それぞれのパケットの先頭アドレスが一定の間隔ごとではなくなってしまう。そのためパケット管理テーブルを用いて、任意の座標のパケットにおける先頭アドレスを探索する。このようにタイル単位に任意のデータへのアクセスが可能になるので、画像データの部分的な処理が可能になる。
【0033】
さらに、パケット生成部213は生成したパケットをDMAC214に転送する。DMAC214、221、244は、メモリ105との間における画像データの転送を制御し、DMA(Direct Memory Access)機能を有している。パケット展開部222は、DMAC221からパケットを受信する。さらにパケットのヘッダから抜き出したパターンフラグ、第1色画素データ、及び第2,3,4色画素データを画像展開部223に送出する。画像展開部223では前述したようなパターンフラグ、画素データをもとに2×2のラスタ画像データへ戻す処理を行う。
【0034】
プリント用画像処理部224はスキャナ用画像処理された画像データに対して2値化処理、中間調処理、そしてRGBからCMYK等への色変換処理を行い、中間調画像データに変換する。さらに、記録解像度に合わせて解像度変換し、画像データの変倍、スムージング、濃度補正等の各種画像処理を施し、高精細な画像データに変換する。そして、レーザビームプリンタ等に出力する。画像合成部231は、メモリ105に格納された合成情報から、合成を行うブロックを判断し、合成を行う機能を有する。
【0035】
レンダリング部241は、通信IF104から送られてきたPDLデータに対し、CPU201がインタープリットして出力するディスプレイリストに基づいてラスタのRGB画像データへレンダリングを行う。その後、画像圧縮部242にて画像圧縮部212で行うものと同等の画像圧縮処理を画像データに対して行う。その圧縮データをパケット生成部243にてパケット生成部213で行うものと同等の処理を行い、パケットを生成する。
【0036】
[処理フロー]
図12は、本発明の第一の実施形態における画像処理装置の動作を示すフローチャートである。第一の実施形態では、画像データがスキャナから読み込まれ、その画像データに対して合成処理が行われプリンタに出力されるまでを述べる。特に画像合成のフローに関して詳述する。以下の説明で用いるサンプルの画像データのサイズは64×96画素、解像度は600dpiとする(図19(A)は合成処理前の画像の例である)。また、パケット生成時のタイルの大きさは32×32画素とする。合成を行う画像データのサイズは300dpi相当で16×16画素とする。また、パケットヘッダの大きさは16Byteとする。なお、本実施形態において、特に明記している場合を除き、本処理はメモリ105等の記憶部に格納されたプログラムをCPU201が読み出して実行するものとする。
【0037】
スキャナ102においてRGB3色の画像データの読み取りを行う(S201)。次に、コントローラ101のスキャナ用画像処理部211にてシェーディング処理やフィルタ処理等の画像処理を行う(S202)。次に画像圧縮部212にて上述した画像圧縮処理を行う(S203)。その圧縮データをパケット生成部213にてパケットに変換する(S204)。そして、DMAC214を介してメモリ105に該パケットのデータを格納する(S205)。図13にタイル座標(0,0)で表されるパケットのデータ構造を示す。なお、図13のパケットの例では、2×2画素が全て1色で構成されているため、第2〜4色画素データは存在しない。CPU201でパケット管理テーブルの作成を行う(S206)。その後、画像合成部231で、メモリ105に格納されている合成対象の合成画像に関する情報(合成情報)を読み出す(S207)。そして、メモリ105に格納されているパケットデータに対して、当該合成画像の合成処理を行う(S208)。本実施形態における合成情報を図14に示す。合成情報には合成画像の解像度や色・形状情報、合成条件などが格納されている。
【0038】
パケット管理テーブルに従って、メモリ105に格納されている合成処理後のパケットデータを、DMAC221を介して読み込む(S209)。具体的には、パケット管理テーブルのパケット(0,0)から順番にアドレスを指定し読み出しを行う。次に、パケット展開部222でパケットの展開が行われる(S310)。さらに、画像展開部223にてラスタ画像データへ展開する(S311)。ラスタの画像データをプリント用画像処理部224に入力し、そこでディザ法や誤差拡散法による面積階調処理を行う(S312)。そして、画像データをプリンタ103へ出力する(S313)。
【0039】
[合成処理]
以下、画像合成部231における合成処理(S208)の詳細について述べる。図15は図12におけるS208の詳細を示したフローチャートである。まず、メモリ105に格納されている合成を行うべき位置を示す合成位置情報より該当するパケットを特定し、そのアドレスをパケット管理テーブルより特定する(S301)。本実施形態では、合成位置情報を図14に示した合成情報に含めていないが、含める構成としても良い。次に合成情報を参照し、パケット内の合成すべき複数のブロックのアドレスを特定する(S302)。具体例を示しながらブロックのアドレス特定について説明する。
【0040】
本実施形態においては、合成情報に合成すべき座標を示す座標情報が含まれているので、それを用いてパケットにおける合成すべき複数のブロックのアドレス特定を行う。本実施形態におけるパケット管理テーブルを図10(B)に示す。合成情報に含まれる合成位置情報より、合成を行うパケットは例えば、座標(1,2)で表されるパケット(以降、パケット(1,2)と示す)であると判断できたとする。まず、画像合成部231は、パケット管理テーブルを参照しパケット(1,2)のアドレス(0x10002348)を特定する。次に、パケットのヘッダのサイズである16Byte分を加算し(0x10002358)、パターンフラグ格納部内のアドレスへアクセスする。1つのブロックのパターンフラグのサイズは4bitで固定なので、合成処理対象となるブロックが当該パケットにおいて何番目のブロックであるかが分かれば、対象となるブロックのパターンフラグを特定することが可能である。また、パターンフラグ格納部のデータサイズは前述したように128Byteであるので、第1色画素データ格納部の開始アドレス特定も容易に行える。1つのブロックの第1色のデータサイズは24bitなので、合成処理対象となるブロックが当該パケットにおいて何番目のブロックであるかが分かれば、合成対象となるブロックの第1色の画素データを特定することが可能である。そして、第1色画素データ格納部のデータサイズは前述したように768Byteであるので、第2,3,4色画素データ格納部の開始アドレス特定も容易に行える。ただし、各ブロックの第2,3,4色画素データのデータサイズは前述したように画像に応じて可変となる。図16にパターンフラグに応じた、2×2画素サイズのブロックにおける第2,3,4色画素データのサイズを示す。本実施形態では、一画素の画素値は24bit(RGBの各8Bit)で構成されるので、サイズは3Byteである。以上により、合成処理を施す複数のブロックを特定し、圧縮した状態の画像データに対して、合成処理を施す。
【0041】
[アドレス特定処理]
図17に第2,3,4色画素データのアドレス特定までのフローチャートを示す。なお、本実施形態において、特に明記している場合を除き、本処理はメモリ105等の記憶部に格納されたプログラムをCPU201が読み出して実行するものとする。まず、当該パケットにおけるパターンフラグ格納部に格納されている最初のパターンフラグから順に、パターンフラグの読み出しを行う(S401)。パターンフラグの値に応じて、その後の処理を分岐する(S402)。パターンフラグが0であれば第2,3,4色画素データのアドレスに0を加える(S403)。パターンフラグが1〜7であれば第2,3,4色画素データのアドレスに3を加える(S404)。パターンフラグが8〜Dであれば第2,3,4色画素データのアドレスに6を加える(S405)。パターンフラグがEであれば第2,3,4色画素データのアドレスに9を加える(S406)。これらパターンフラグの値に応じて加算するアドレスの値は、パケットの色空間や画素データのビット数に応じて変化する。また、アドレスに加算する値は、図16に示した値と同等である。
【0042】
次に、合成情報に含まれる座標情報からアドレス特定が終了したかを判定し(S407)、終了していなければパターンフラグ読み出しに戻る。このように、パターンフラグを順番に読み出していくことにより、各ブロックの第2,3,4色画素データのアドレスを特定することが可能になる。
【0043】
図18にパケット(1,2)のパターンフラグの並びの一部とそこから算出される第2,3,4色画素データのアドレスを示す。例えば、パケット(1,2)の第2,3,4色画素データの先頭アドレスは、0x100026D8である。また、図14に示した合成情報に基づいて、合成処理対象となるブロックのうち、最初に現れる座標(0,3)で表されるブロック(以降、ブロック(0,3)と示す)を例にとる。この場合、アクセスすべきアドレスは、第1色画素データ:0x100023E1、第2,3,4色画素データ:0x100026E1となる。
【0044】
以上のようにして特定されたアドレスに基づいて、合成処理対象となるブロックにおける第1色画素データおよび第2,3,4色画素データを特定することができる。そして、その特定された画素データを取得し、合成情報の色情報(画素値、明度、色差など)と合成条件に従い処理を行う(S303)。合成条件 が“上書き”の場合は、合成先のブロックの第1色画素データが格納されているアドレスおよび第2,3,4色画素データが格納されているアドレスに対し、画素値(合成色)を書き込むことにより、合成処理を行うこととなる。
【0045】
図14に示されているように、合成色が黒(R:0,G:0,B:0)である場合について説明する。図14で示されるように合成画像の解像度が300dpiで、合成先の元画像データの解像度が600dpiの場合、元画像データにおける合成処理対象のブロックに関して、当該合成処理対象ブロックを構成する全ての画素値を黒に書き換えればよい。すなわち、合成処理対象ブロックに対応する第1色画素データおよび第2,3,4色画素データの画素値を、黒(R:0,G:0,B:0)に変更することによって、合成処理を行ったことになる。本実施形態における合成前の画像データを展開した場合の全体図を図19(A)に、図14の合成画像を合成処理した後の画像データを展開した場合の全体図を図19(B)に示す。
【0046】
以上により、比較的単純な圧縮方式を用いて画像データに対し圧縮する場合において、画像データの圧縮データに対して、画像データをラスタライズせずに合成処理を行うことができる。したがって、必要となるメモリの量を抑えることができ、安価な画像処理装置の提供が可能である。
【0047】
また圧縮の説明の際、画像データとしてRGBの各8bitを例として説明していたが、CMYKの色空間を取るものや、GRAYスケールのデータ、また8bit以外の画素値をとるものでも良い。また、合成条件として上書きだけでなくアルファブレンドなどの条件を与えることも可能である。その場合は、合成先のブロックの第1色画素データの画素値および第2,3,4色画素データの画素値を取得し、当該画素値に合成色のアルファブレンドを行った後、元のアドレスに書き戻せばよい。
【0048】
<第二の実施形態>
本実施形態では第一の実施形態で述べたラスタ画像に加え、画素データに付随する属性データの合成に関して説明する。本実施形態における画像処理装置の構成は図1と、コントローラ101の構成は図2と同一である。
【0049】
PDLデータをレンダリングしたラスタ画像に対して画素単位でその画素に対し属性データ(属性値)を付与する事がある。その属性データとは、例えば文字、写真、グラフィックス、背景、グレー補償などの情報がある。こういった各属性に対応付けられた属性データを、各画素に付与することで、各画素の属性を判別できるようにする。こういった属性データが付いている画像データに対してはそれぞれの属性データに適した画像処理を切り替えながら行うことで、最適な画像データを得る事が可能となる。例えば文字の属性が付与されている画素に対しては、可読性を高くするためにコントラストを高くする画像処理を行い、また写真の属性が付いている画素に対しては、階調性を豊かにする画像処理を行うなどが考えられる。
【0050】
こういった属性情報が付与されている画像データは図2のレンダリング部251で生成され、そのデータは第一の実施形態でも説明したように画像圧縮部242、パケット生成部243、DMAC244を経由してメモリ105へ転送される。本実施形態2では、画像圧縮部242において述べた圧縮方法を属性データに対しても適用している。
【0051】
本実施形態におけるパケットのデータ構造を図20に示す。図9と比較すると、パケットヘッダに属性データのビット数と属性データの第2,3,4色画素データサイズ(第2〜4の属性データのサイズ)が付加されている。また、パケットのデータ構造には、属性データを圧縮した結果であるパターンフラグと、属性データの第1色画素データと、属性データの第2,3,4色画素データとが付加されている。なお、本実施形態では、便宜上、2×2画素のブロックに含まれる第1の属性データを「属性データの第1色画素データ」、第2,3,4の属性データを「属性データの第2,3,4色画素データ」と呼ぶことにする。また、属性データに対する配置のパターンフラグを、本実施形態では便宜上、第2のパターンフラグとも呼ぶ。
【0052】
付加された属性データの情報は、属性データのビット数が8の場合、サイズは以下のようになる。
【0053】
第2のパターンフラグのデータサイズ(各ブロック4bit):4×16×16/8=128Byte
属性データの第1色画素データ格納部のデータサイズ(各ブロック8bit):8×16×16/8=256Byte
属性データの第2,3,4色画素データ格納部のデータサイズ(各ブロック最大24bit):最大24×16×16/8=768Byte
第2,3,4色画素データのデータサイズは、画像データによって異なり、最小は0Byteである。
【0054】
図21は、本実施形態における画像処理装置の動作を示すフローチャートである。第二の実施形態では、メモリ105に格納されているディスプレイリスト(不図示)をレンダリング部241が読み出し画像データを形成し、その画像データに対して合成処理が行われプリンタに出力されるまでを述べる。特に画像合成のフローに関して詳述する。なお、本実施形態において、特に明記している場合を除き、本処理はメモリ105等の記憶部に格納されたプログラムをCPU201が読み出して実行するものとする。
【0055】
ここでの画像データのサイズは64×96画素、解像度は1200dpiとする。また、パケット生成時のタイルの大きさは32×32画素とする。合成を行う画像データのサイズは600dpi相当で16×16画素とする。また、パケットヘッダの大きさは16Byteとする。
【0056】
レンダリング部241にてメモリ105に格納されているディスプレイリストを読み出し、レンダリングを行う(S501)。レンダリングされた画像データに対して、画像圧縮部242にて画像圧縮処理を行う(S502)。その圧縮データをパケット生成部243にてパケットに変換する(S503)。次にDMAC244を介してメモリ105へ該パケットデータを格納する(S504)。CPU201でパケット管理テーブルの作成を行う(S505)。その後、画像合成部231で、メモリ105に格納されている合成対象の合成画像に関する情報(合成情報)を読み出す(S506)。そして、メモリ105に格納されているパケットデータに対して、当該合成画像の合成処理を行う(S507)。本実施形態における合成情報を図22(A)に示す。図22(A)に示す合成情報には合成画像データの解像度、色・形状情報、合成条件、及び属性データに対する合成値が格納されている。
【0057】
パケット管理テーブルに従って、メモリ105に格納されている合成処理後のパケットデータを、DMAC221を介して読み込む(S508)。具体的には、パケット管理テーブルのパケット(0,0)から順番にアドレスを指定し読み出しを行う。次に、パケット展開部222でパケットの展開が行われる(S509)。さらに、画像展開部223にてラスタ画像データへ展開する(S510)。ラスタの画像データをプリント用画像処理部224に入力し、そこでディザ法や誤差拡散法による面積階調処理を行い(S511)、プリンタ103へ出力する(S512)。
【0058】
[合成処理]
以下、画像合成部231における合成処理(S507)の詳細について述べる。第二の実施形態におけるS507の詳細を示したフローチャートは図15と同様である。本実施形態におけるブロックのアドレス特定について説明する。本実施形態に係るパケット管理テーブルを図22(B)に示す。図22(B)に示した合成位置情報より、例えば合成を行うパケットは座標(1,2)で表されるパケット(以降、パケット(1,2)と示す)であると判定できたとする。パケット(1,2)のデータ構造について図23に示す。まず、画像合成部231は、パケット管理テーブルを参照しパケット(1,2)のアドレス(0x10005000)を特定する。次に、パケットのヘッダのサイズである16Byteを加算し(0x10005010)、パターンフラグ格納部のアドレスへアクセスして、第2,3,4色画素データのアドレス特定を行う。図24(A)にパケット(1,2)のパターンフラグの並びとそこから算出される第2,3,4色画素データのアドレスを示す。パケット(1,2)の第2,3,4色画素データの先頭アドレスは、パケットの先頭アドレス(0x10005000)にヘッダ、パターンフラグ、及び第1色画素データ分のサイズを加算した0x10005390である。合成処理対象のブロックのうち、最初に現れる座標(0,3)で表されるブロック(以降、ブロック(0,3)と示す)を例にとると、アクセスすべきアドレスは、第1色画素データ:0x10005096、第2,3,4色画素データ:0x10005399となる。
【0059】
次に、属性データに関するアドレス特定に関しても同様の手順で行う。属性データのパターンフラグ(第2のパターンフラグ)のサイズおよび属性データの第1色画素データのサイズは固定長であるので、属性データの第1色画素データの先頭アドレスおよび、属性データの第2,3,4色画素データの先頭アドレスは容易に特定することができる。また、第1の属性データのサイズも8bitで固定なので、合成処理対象となるブロックが当該パケットにおいて何番目のブロックであるかが分かれば、合成対象となるブロックについての「属性データの第1色の画素データ」を特定することが可能である。また、各ブロックの第2〜4の属性データ(属性データの第2,3,4色画素データ)のデータサイズは、画像に応じて可変になる。したがって、属性データの第2,3,4色画素データの先頭アドレスと、当該パケットの属性データのパターンフラグの並びとに基づいて、合成処理対象のブロックに関する属性データの第2,3,4色画素データのアドレスを特定していくことができる。ここでは、便宜上、属性データに対するパターンフラグの特定を第2パターンフラグ特定とし、第2パターンフラグに基づいて、第2〜4の属性データを抽出する処理を第2抽出とする。また、第2抽出処理により抽出された第2〜4の属性データをメモリに保持することを第2の保持手段とする。図24(B)にパケット(1,2)の属性データのパターンフラグの並びの例とそこから算出される属性データの第2,3,4色画素データに対応するアドレスを示す。このようにして、合成処理対象のブロックに関する属性データが格納されているアドレスを特定することができる。
【0060】
ブロック(0,3)を例にとると、アクセスすべき属性データのアドレスは、属性データの第1色画素データ:0x10005513となり、また、属性データのパターンフラグが0であることから、属性データの第2,3,4色画素データは存在しない。
【0061】
以上のようにして特定されたアドレスから、格納されている画素データおよび属性データを、合成情報の色情報と合成条件に従い処理を行う(S303)。合成条件が“上書き”の場合は、合成先のブロックの第1色画素データが格納されているアドレスおよび第2,3,4色画素データが格納されているアドレスに対し、画素値(合成色)を書き込むことにより、合成処理を行うこととなる。また、属性データに関しても同様に、合成先のブロックの属性データの第1色画素データが格納されているアドレスおよび属性データの第2,3,4色画素データが格納されているアドレスに対し、属性データの合成値を書き込むことにより、合成処理を行うこととなる。
【0062】
合成画像データの解像度が600dpiで、合成先の元画像データの解像度が1200dpiの場合、元画像データの合成対象のブロックを構成する全ての画素値(RGB値)と属性データ(属性値)とを書き換えればよい。すなわち、第一の実施形態で説明したように、合成処理対象ブロックに対応する第1色画素データおよび第2,3,4色画素データの画素値を、合成色(図22の場合は(R:64,G:64,B:64))に書き換える。そして、第2の実施形態では、更に、合成処理対象ブロックに対応する属性データの第1色画素データおよび属性データの第2,3,4色画素データを合成値(図22の場合は0xFF)に書き換える。
【0063】
このような構成により、画素単位で属性データを伴う画像データを扱う場合にも、圧縮データ全てをラスタライズせずに合成処理が可能である。なお、ここではPDLの画像データに着目して属性データの圧縮に関して述べたが、スキャン画像データに対しても、画像認識を行うことで属性データを付与し、同様の処理で圧縮処理および合成処理が可能である。また、属性データは1画素あたり8bitに限るものではなく、1bitや4bit、16bitといった任意のbit数を取ることも可能である。
【0064】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、画像データを所定のブロック単位に圧縮する画像データ圧縮装置、及び圧縮されたデータへの画像処理、及び復元処理を行う画像処理装置に関する。特に、圧縮されたデータに対して合成処理を行う画像処理装置に関する。
【背景技術】
【0002】
従来、カラー静止画像の圧縮方式には、離散コサイン変換を利用したJPEG方式や、Wavelet変換を利用した方式が多く使われている。この種の符号化方式は、一般的に画像データを所定のブロック(例えば8×8や16×16画素単位)に符号化し、離散コサイン変換、量子化およびエントロピー符号化を行うことで高い圧縮効率を示している。この種の符号化方式は、可変長符号化方式であるので、符号化対象の画像データ毎に符号量が変化するものである。ブロック単位での離散コサイン変換処理を高速に行う場合、高速演算器もしくは専用ハードウェアが必要な上、バッファ用のメモリが必要となる。
【0003】
また、高解像度化が進むにつれて合成処理に代表される画像処理を必要とする画素数が飛躍的に増えその処理負荷が増大しているという課題もある。前述した画像圧縮が為された圧縮データに対して、画素データを参照し、画素データの値を変換する画像処理を実行しようとすると、当該圧縮データの復号処理が必要になってくる。つまり圧縮データのままで合成処理に代表される画像処理を行う事は出来ず、必ず復号処理が必要になる。そのため、高解像度データ全ての画素に対して画素単位に処理を行う必要が出てしまい、処理時間の増大をまねく。
【0004】
高解像度化に伴う画像合成処理の処理時間の増大を防ぐための画像合成装置として、例えば特許文献1がある。特許文献1によれば、画像合成対象となる複数の画像データの各縮小画像を作成し、重複領域の抽出・位置合わせを行う。これらの情報に基づいて画像データの合成を行う。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−358194号
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1の方法では、合成対象となる画像データの縮小画像を作成しなければならないため、縮小画像を作成するための処理時間が増大してしまう。また、合成処理自体は縮小前の画像データに対して行うため、一時記憶用のメモリ容量の増大も招いてしまう。
【0007】
本発明は、このような問題を鑑みてなされたもので、画像データを圧縮した状態で画像合成を行う領域のみに対して処理を行うことにより、安価でかつ高解像度画像データでも処理時間が短い画像処理装置を提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の画像処理装置は、入力された画像データを、所定の画素数単位のタイルごとに分割するタイル分割手段と、前記タイル分割手段で分割された各タイルを、M×N画素のサイズのブロックごとに分割するブロック分割手段と、前記ブロック分割手段で分割された各ブロックを順に処理対象にし、当該処理対象のブロック内の各画素の色データを比較することにより、前記各ブロックに含まれる色データの配置パターンを示すパターンフラグを特定するパターンフラグ特定手段と、前記各ブロックの予め定義された位置の画素から第1色の色データを抽出し、更に、前記ブロックに含まれる色データの数が2〜4のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第2〜4色の色データを抽出する抽出手段と、前記パターンフラグ特定手段で特定された各ブロックのパターンフラグと、前記抽出手段で抽出された第1色の色データと、前記抽出手段で抽出された第2〜4色の色データとをメモリに保持させる第1の保持手段と、合成する合成画像データに基づいて、合成処理対象となるブロックの前記第1色の色データと前記第2〜4色の色データとが保持されている前記メモリにおけるアドレスを特定するブロックアドレス特定手段と、前記ブロックアドレス特定手段により特定されたアドレスに保持されている、前記合成処理対象となるブロックに関する前記第1色の色データと前記第2〜4色の色データとを、前記合成画像データの色データに基づいて書き換える合成手段と、を有する。
【発明の効果】
【0009】
安価で、かつ高解像度画像データに対しても処理時間が短い画像処理装置を提供可能となる。
【図面の簡単な説明】
【0010】
【図1】本実施形態に係る画像処理装置の全体ブロック図。
【図2】本実施形態に係る図1のコントローラ101のブロック図。
【図3】本実施形態に係る画像をブロック分割した際のブロックのパターン示す図。
【図4】本実施形態に係るブロックのパターンとその識別子を列挙した図。
【図5】本実施形態に係る画像圧縮のフローを示した図。
【図6】本実施形態に係るブロックのパターンをフラグへ変換している様子を示した図。
【図7】第一の実施形態に係る圧縮処理に対する入力と出力の関係を示した図。
【図8】第一の実施形態に係るページとタイルとブロックの関係を示した図。
【図9】第一の実施形態に係るパケットの構成およびヘッダの構成を示した図。
【図10】第一の実施形態に係るパケット管理テーブルの例を示した図。
【図11】第一の実施形態に係る圧縮データのメモリ空間上でのレイアウトの例を示した図。
【図12】第一の実施形態に係るコントローラの動作のフローを示した図。
【図13】第一の実施形態に係る座標(0,0)のパケットの構成およびヘッダの構成を示した図。
【図14】第一の実施形態に係る合成情報を示した図。
【図15】第一の実施形態に係る画像合成部241の動作の詳細フローを示した図。
【図16】第一の実施形態に係るパターンフラグと第2,3,4色画素データのサイズとの関係を示した図。
【図17】第一の実施形態に係るにおけるアドレス特定の詳細フローを示した図。
【図18】第一の実施形態に係るパケット(1,2)のブロック座標と第2,3,4色画素データのアドレスとの関係を示した図。
【図19】第一の実施形態に係る画像合成前後の全体イメージ図。
【図20】第二の実施形態に係るパケットの構成およびヘッダの構成を示した図。
【図21】第二の実施形態に係るコントローラの動作のフローを示した図。
【図22】第二の実施形態に係る合成情報及びパケット管理テーブルの例を示した図。
【図23】第二の実施形態に係る座標(1,2)のパケットの構成およびヘッダの構成を示した図。
【図24】第二の実施形態に係るパケット(1,2)のブロック座標と第2,3,4色画素データとそれに対応する属性データのアドレスの関係を示す図。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための形態について図面を用いて説明する。
【0012】
<第一の実施形態>
[システム構成]
図1に、本発明の一実施形態としての画像処理装置の全体ブロック図を示す。本発明の実施形態における画像処理装置はスキャン、プリント、コピーを行うMFP(Multi Functional Printer)を想定している。画像処理装置は、コントローラ101、スキャナ102、プリンタ103、通信IF104、メモリ105から構成されている。
【0013】
コントローラ101は、画像処理装置全体の制御を司る部分である。コントローラ101はスキャナ102やプリンタ103をはじめとする各ブロックと電気的に接続されており、高度な機能を実現する為の制御を行っている。詳細については後述する。スキャナ102は原稿画像を光学的に読み取って電気的な画像信号に変換するブロックであり、密着型イメージセンサ、読み取り駆動部、読み取り点灯制御部等により構成される。読み取り駆動部(不図示)による制御に基づいて搬送される密着型イメージセンサによって原稿全体がスキャンされる際、読み取り点灯制御部の制御により密着型イメージセンサ内部のLEDが点灯制御される。同時に、密着型イメージセンサ内部のフォトセンサが原稿画像を光学的に読み取って、電気的な画像データに変換する。
【0014】
プリンタ103は電気的な画像信号を記録紙上に可視像としてプリントするブロックであり、レーザビームプリンタやインクジェットプリンタにより構成される。通信IF104は外部機器とのデータの送受を行うブロックであり、インターネット網やLANに接続したり、公衆電話回線に接続してFAX通信を行ったり、USBインタフェースによりPC(Personal Computer)と接続する。メモリ105は、例えばDDR−SDRAMやHDDなどのメモリデバイスであり、画像データを一時的に格納するだけでなく、画像処理装置の機能を実現する為にコントローラ101が使用する制御プログラムやデータなどを格納する。また、画像データの合成に必要な合成情報を格納する。
【0015】
図2にコントローラ101のブロック図を示す。コントローラ101は、CPU(Central Processing Unit)201やスキャナ用画像処理部211、画像圧縮部212、242、パケット生成部213、243を含む。さらに、DMAC(Direct Memory Access Controller)214、221、244、パケット展開部222、画像展開部223、プリント用画像処理部224、画像合成部231、レンダリング部241を含む。
【0016】
以下、各部の概略を説明する。CPU201はコントローラ部全体を制御する。CPU201は、メモリ105等の記憶部に格納されたコンピュータが読取可能なプログラムを読み出して実行することにより、各部を制御する。スキャナ用画像処理部211はスキャナ102が読み込んだ画像データに対して、シェーディング補正等を施し、更に、MTF補正、色変換処理、フィルタ処理、ガンマ補正処理等の各種画像処理を行う。その後、画像圧縮部212へ画像データを転送する。画像圧縮部212の詳細に関して説明を行う。まずページ単位のスキャナ用画像処理部211から受信した画像データから2×2画素のブロックを抽出し、そのブロック単位でデータの圧縮を行う。
【0017】
画像圧縮部212における処理の説明の前に、2×2の4画素データ中に占める色数に応じてその組み合わせの場合の数を考える。画素数が4画素であるため、そこに占める色数は最大4色になり、2×2サイズのブロック内では、たかだか1〜4色の組み合わせしか存在しない。それらのパターンが取りうる組み合わせの数を、図3を使って説明する。まずブロック内が1色の場合、4画素が同色で構成されている事になるので、その組み合わせは1通りである。次にブロック内が2色の場合を考える(各色を第1色と第2色と呼ぶこととする)。2色が4画素内へレイアウトされる場合の数は、所定位置の画素(本実施形態では左上の画素とする)の色を第1色として考えると、左上画素以外の残りの3画素へ第1色もしくは第2色が入るので、4画素同色の場合を除くと、全部で7通りの組み合わせが考えられる。
【0018】
次にブロック内が3色(第1色〜第3色)で構成される場合を考える。3色が4画素内へレイアウトされる場合の数は、3色のうち1色だけ2度使われる場合の数と言い換える事ができ、4画素の座標のうち、2画素が同じ色になる場合の数を求めればよい。つまり3色の場合の数は、4つの座標から2つの座標を取る組み合わせとなり、全部で6通りとなる。また、ブロック内が4色(第1色〜第4色)で構成される場合は1通りしか存在しない。
【0019】
これら1〜4色すべての場合の数を合計すると全部で15通りのパターンが考えられる。これらすべてのパターンを識別するためにフラグを付与する事を考えると、データ量としては4bitが必要となる。図示すると図4のようになり、以降この配置パターンを示すフラグをパターンフラグと呼ぶ。この定義されたパターンフラグにより、ブロック内における色数およびその色配置のバターンを特定することができる。
【0020】
[圧縮処理]
上記のように2×2画素の取りうる組み合わせを踏まえて、画像圧縮部212にて行われる圧縮処理の処理フローを、図5を用いて説明する。入力としては、例えばRGB(Red Green Blue)それぞれ8bitの256階調を持っており、またデータとしては8bitデータの点順次で1画素辺り24bit画像として説明を行う。なお、圧縮処理を行う画像データは、予めブロックのサイズに分割されていても良いし、本画像処理装置が分割手段を有しても良い。
【0021】
処理が開始されると、まず2×2画素のブロックを入力する(S101)。入力されたブロック内全ての2画素の組み合わせに対して24bitのコンペアを取る(S102)。このコンペアを取った結果、全ビット一致していた場合は1を出力し、不一致の場合は0を出力する。ここで、図6に示すように、2×2画素内の左上から右上、左下、右下の順に座標1、2、3、4とすると、2画素の組は、1−2、1−3、1−4、2−3、2−4、3−4の全部で6通りある。そのため、6回コンペアを取る必要があり、結果は6bit出力される。例えば全画素同色の場合には、全てのコンペア結果において1を出力し、逆に4画素全て異なる画素値を持っている場合には、全てのコンペア結果において0を出力する。前述の通り、4画素で色の一致から出現しうるパターン数は15通りなので、その6bitのコンペア結果に対して4bitのパターンフラグへ変換することが可能である(S103)。
【0022】
4bitのパターンフラグへ変換したら、続いて4画素内で出現した色数および色データを抽出する(S104)。パターンフラグから、左上を第1色とした場合の第2色以降がどの位置にあるか求める事が出来る。図7を参照しながら説明を行う。例えば4画素内が1色で構成されていることが確定した場合には、2色目以降は存在しないので、左上の画素から第1色の画素値を得て、パターンフラグ4bitと1色目の画素値24bit(RGBの各色成分8bit×3)を出力する(S106)。また4画素内が2色で構成されていることが確定した場合(S107)には、その2色目の座標をパターンフラグより算出して第2色の画素値を得て、パターンフラグ4bitと2色分の画素値48bitを出力する(S108)。3色、4色の場合も同様である(S109、S110、S111)。この時ブロック内の座標(左上から右上、左下、右下の順に1、2、3、4)順にこれまで出現していなかった色データを記憶する。以上により、色データの取得およびパターンフラグ特定を行う。
【0023】
このように、2×2画素からなるブロック内の4色分の入力データ(96bit)を4bitのパターンフラグとブロック内に存在する色数だけ画素値を出力することで、比較的簡単な処理で出力データ量を削減することが可能になる。またパターンフラグを参照することで、そのブロック内の色数を特定することが可能になる。この処理を画像ブロック全てに対して行うことで、画像全面のデータ圧縮が可能になる。
【0024】
パケット生成部213は、画像圧縮部212により圧縮された画像データを所定の画素数単位(本実施形態では所定の画素数単位を32×32画素とし、この単位をタイルと呼ぶ)に分割して読み出し、タイルに所定の固定長のヘッダ情報を付与する。図8にタイルとブロックとの関係を図示する。図8に示すように、入力された画像データの各ページにおいて、ページは複数のタイルにタイル分割される。更に、分割された各タイルは、複数のブロックにブロック分割される。なお、本実施形態において、ブロックを2x2画素、タイルを32x32画素からなる構成として扱っているが、これに限定されるわけではなく、必要に応じて変更させても良い。例えば、ブロックのサイズをM×N画素のサイズ(M,Nは2以上の整数)とする。なお、タイルのサイズはブロックサイズの定数倍のサイズとする(例えばブロックのサイズが2x2画素の場合、2K×2L(K,Lは2以上の整数))。ただし、ブロックのサイズを変更した場合には、上記で述べたパターンフラグの数やパターンフラグに必要とされるビット数も変更になることはいうまでも無い。
【0025】
[圧縮データの構造]
続いて、入力された画像データを圧縮した際のデータ構造について述べる。上記タイル単位にて圧縮を行うことを前提とし、そのタイルの圧縮データごとにヘッダを有する。ヘッダにはページID、タイル座標、色空間、画素データのビット数、タイルのデータサイズ等を記述する。ページIDには、ページ単位にユニークなID番号を付与する。タイル座標には、そのタイルがページ単位のラスタ画像上どの位置にあるかを記述してある。タイル座標には、X座標とY座標と2次元で座標が示されているとする。
【0026】
色空間には、そのタイルがRGB画像なのかCMYK画像なのかGRAY−SCALE画像なのかの識別子が記述されている。画素データのビット数には、タイル内の1画素あたりのビット長が書かれている。データサイズには、そのタイルの第2,3,4色画素データのデータサイズがByte単位で記述されている。このデータ構造を図9に示す。以後、このタイルとヘッダを含めたデータの単位を“パケット”と呼ぶことにする。
【0027】
パケットのデータ構造の生成方法について述べる。画像圧縮部212で生成されるデータは大きくパターンフラグ、第1色画素データ(第1色の色データ)、及び第2,3,4色画素データ(第2〜4色の色データ)、の3つのデータ種に分類可能である。各データのサイズは、タイルの単位である32×32画素のRGB各色8ビット画像の場合、以下のようになる。
【0028】
パターンフラグのデータサイズ(各ブロック4bit):4×16×16/8=128Byte
第1色画素データのデータサイズ(各ブロック24bit):24×16×16/8=768Byte
第2,3,4色画素データのデータサイズ(各ブロック最大72bit):最大72×16×16/8=2304Byte
なお、第2,3,4色画素データのデータサイズは、画像データによって異なり、最小は0Byteである。
【0029】
これらのデータサイズを格納可能な記憶部をパケット生成部に用意しておき、データ種ごと領域をまとめて格納する。タイル単位で圧縮処理が終了し、データサイズが確定した後にヘッダを付加することで、図9のようなパケットのデータ構造を作ることができる。
【0030】
ここで第1色画素データ以降のメモリ領域に関しては、画素値がピクセル単位で量子化や符号化されることなく格納して保持されている。つまり、1画素入力、1画素出力で完結する色処理(例えばLUTを用いた色変換や、ガンマ補正処理、行列演算を用いた色空間変換処理等)は、パターンフラグを参照して圧縮データを展開する必要はなく、直接処理を行うことが可能になる。このように圧縮データを直接用いることで、メモリバス上の転送効率が向上し、かつオリジナルの画像に対して少ない画素数のデータに対して処理することになるので、高速処理が可能になる。
【0031】
また図9のように画像データをメモリ上へ格納し保持することで、第1色画素データ領域は、画像データを2×2単位として、左上の座標の画素をサンプリングした画像結果がメモリ上に連続して存在することになる。これにより、第1の保持手段を実現する。本実施形態で説明している画像処理装置においては、蓄積したPDL(Page Description Language)の画像データやスキャンの画像データにおけるプレビュー表示や、前述したネットワーク送信などの機能も有している。例えばプリント解像度が600dpiであったとしてもプレビューや送信時にそこまでの解像度は通常必要とされず、300dpiやそれ以下で十分な場合が多い。こういった縮小データを得る必要がある場合は、パターンフラグや第2,3,4色を用いず、第1色画素データ領域から読み出した第1色の画像データのみ扱うことで、簡単に半分のサイズのラスタ画像を得る事が出来る。
【0032】
[パケット管理テーブル]
タイルの座標、パケットサイズ、パケットが置かれているアドレスをリストとして列挙し、パケット管理テーブルとして作成することで、任意のパケットへのアクセスが可能になる。パケット管理テーブルの例を図10(A)に示す。このようにしてタイル単位で画像データをパケットとしてメモリへ書き出すと図11のようにパケット毎にサイズが異なり、それぞれのパケットの先頭アドレスが一定の間隔ごとではなくなってしまう。そのためパケット管理テーブルを用いて、任意の座標のパケットにおける先頭アドレスを探索する。このようにタイル単位に任意のデータへのアクセスが可能になるので、画像データの部分的な処理が可能になる。
【0033】
さらに、パケット生成部213は生成したパケットをDMAC214に転送する。DMAC214、221、244は、メモリ105との間における画像データの転送を制御し、DMA(Direct Memory Access)機能を有している。パケット展開部222は、DMAC221からパケットを受信する。さらにパケットのヘッダから抜き出したパターンフラグ、第1色画素データ、及び第2,3,4色画素データを画像展開部223に送出する。画像展開部223では前述したようなパターンフラグ、画素データをもとに2×2のラスタ画像データへ戻す処理を行う。
【0034】
プリント用画像処理部224はスキャナ用画像処理された画像データに対して2値化処理、中間調処理、そしてRGBからCMYK等への色変換処理を行い、中間調画像データに変換する。さらに、記録解像度に合わせて解像度変換し、画像データの変倍、スムージング、濃度補正等の各種画像処理を施し、高精細な画像データに変換する。そして、レーザビームプリンタ等に出力する。画像合成部231は、メモリ105に格納された合成情報から、合成を行うブロックを判断し、合成を行う機能を有する。
【0035】
レンダリング部241は、通信IF104から送られてきたPDLデータに対し、CPU201がインタープリットして出力するディスプレイリストに基づいてラスタのRGB画像データへレンダリングを行う。その後、画像圧縮部242にて画像圧縮部212で行うものと同等の画像圧縮処理を画像データに対して行う。その圧縮データをパケット生成部243にてパケット生成部213で行うものと同等の処理を行い、パケットを生成する。
【0036】
[処理フロー]
図12は、本発明の第一の実施形態における画像処理装置の動作を示すフローチャートである。第一の実施形態では、画像データがスキャナから読み込まれ、その画像データに対して合成処理が行われプリンタに出力されるまでを述べる。特に画像合成のフローに関して詳述する。以下の説明で用いるサンプルの画像データのサイズは64×96画素、解像度は600dpiとする(図19(A)は合成処理前の画像の例である)。また、パケット生成時のタイルの大きさは32×32画素とする。合成を行う画像データのサイズは300dpi相当で16×16画素とする。また、パケットヘッダの大きさは16Byteとする。なお、本実施形態において、特に明記している場合を除き、本処理はメモリ105等の記憶部に格納されたプログラムをCPU201が読み出して実行するものとする。
【0037】
スキャナ102においてRGB3色の画像データの読み取りを行う(S201)。次に、コントローラ101のスキャナ用画像処理部211にてシェーディング処理やフィルタ処理等の画像処理を行う(S202)。次に画像圧縮部212にて上述した画像圧縮処理を行う(S203)。その圧縮データをパケット生成部213にてパケットに変換する(S204)。そして、DMAC214を介してメモリ105に該パケットのデータを格納する(S205)。図13にタイル座標(0,0)で表されるパケットのデータ構造を示す。なお、図13のパケットの例では、2×2画素が全て1色で構成されているため、第2〜4色画素データは存在しない。CPU201でパケット管理テーブルの作成を行う(S206)。その後、画像合成部231で、メモリ105に格納されている合成対象の合成画像に関する情報(合成情報)を読み出す(S207)。そして、メモリ105に格納されているパケットデータに対して、当該合成画像の合成処理を行う(S208)。本実施形態における合成情報を図14に示す。合成情報には合成画像の解像度や色・形状情報、合成条件などが格納されている。
【0038】
パケット管理テーブルに従って、メモリ105に格納されている合成処理後のパケットデータを、DMAC221を介して読み込む(S209)。具体的には、パケット管理テーブルのパケット(0,0)から順番にアドレスを指定し読み出しを行う。次に、パケット展開部222でパケットの展開が行われる(S310)。さらに、画像展開部223にてラスタ画像データへ展開する(S311)。ラスタの画像データをプリント用画像処理部224に入力し、そこでディザ法や誤差拡散法による面積階調処理を行う(S312)。そして、画像データをプリンタ103へ出力する(S313)。
【0039】
[合成処理]
以下、画像合成部231における合成処理(S208)の詳細について述べる。図15は図12におけるS208の詳細を示したフローチャートである。まず、メモリ105に格納されている合成を行うべき位置を示す合成位置情報より該当するパケットを特定し、そのアドレスをパケット管理テーブルより特定する(S301)。本実施形態では、合成位置情報を図14に示した合成情報に含めていないが、含める構成としても良い。次に合成情報を参照し、パケット内の合成すべき複数のブロックのアドレスを特定する(S302)。具体例を示しながらブロックのアドレス特定について説明する。
【0040】
本実施形態においては、合成情報に合成すべき座標を示す座標情報が含まれているので、それを用いてパケットにおける合成すべき複数のブロックのアドレス特定を行う。本実施形態におけるパケット管理テーブルを図10(B)に示す。合成情報に含まれる合成位置情報より、合成を行うパケットは例えば、座標(1,2)で表されるパケット(以降、パケット(1,2)と示す)であると判断できたとする。まず、画像合成部231は、パケット管理テーブルを参照しパケット(1,2)のアドレス(0x10002348)を特定する。次に、パケットのヘッダのサイズである16Byte分を加算し(0x10002358)、パターンフラグ格納部内のアドレスへアクセスする。1つのブロックのパターンフラグのサイズは4bitで固定なので、合成処理対象となるブロックが当該パケットにおいて何番目のブロックであるかが分かれば、対象となるブロックのパターンフラグを特定することが可能である。また、パターンフラグ格納部のデータサイズは前述したように128Byteであるので、第1色画素データ格納部の開始アドレス特定も容易に行える。1つのブロックの第1色のデータサイズは24bitなので、合成処理対象となるブロックが当該パケットにおいて何番目のブロックであるかが分かれば、合成対象となるブロックの第1色の画素データを特定することが可能である。そして、第1色画素データ格納部のデータサイズは前述したように768Byteであるので、第2,3,4色画素データ格納部の開始アドレス特定も容易に行える。ただし、各ブロックの第2,3,4色画素データのデータサイズは前述したように画像に応じて可変となる。図16にパターンフラグに応じた、2×2画素サイズのブロックにおける第2,3,4色画素データのサイズを示す。本実施形態では、一画素の画素値は24bit(RGBの各8Bit)で構成されるので、サイズは3Byteである。以上により、合成処理を施す複数のブロックを特定し、圧縮した状態の画像データに対して、合成処理を施す。
【0041】
[アドレス特定処理]
図17に第2,3,4色画素データのアドレス特定までのフローチャートを示す。なお、本実施形態において、特に明記している場合を除き、本処理はメモリ105等の記憶部に格納されたプログラムをCPU201が読み出して実行するものとする。まず、当該パケットにおけるパターンフラグ格納部に格納されている最初のパターンフラグから順に、パターンフラグの読み出しを行う(S401)。パターンフラグの値に応じて、その後の処理を分岐する(S402)。パターンフラグが0であれば第2,3,4色画素データのアドレスに0を加える(S403)。パターンフラグが1〜7であれば第2,3,4色画素データのアドレスに3を加える(S404)。パターンフラグが8〜Dであれば第2,3,4色画素データのアドレスに6を加える(S405)。パターンフラグがEであれば第2,3,4色画素データのアドレスに9を加える(S406)。これらパターンフラグの値に応じて加算するアドレスの値は、パケットの色空間や画素データのビット数に応じて変化する。また、アドレスに加算する値は、図16に示した値と同等である。
【0042】
次に、合成情報に含まれる座標情報からアドレス特定が終了したかを判定し(S407)、終了していなければパターンフラグ読み出しに戻る。このように、パターンフラグを順番に読み出していくことにより、各ブロックの第2,3,4色画素データのアドレスを特定することが可能になる。
【0043】
図18にパケット(1,2)のパターンフラグの並びの一部とそこから算出される第2,3,4色画素データのアドレスを示す。例えば、パケット(1,2)の第2,3,4色画素データの先頭アドレスは、0x100026D8である。また、図14に示した合成情報に基づいて、合成処理対象となるブロックのうち、最初に現れる座標(0,3)で表されるブロック(以降、ブロック(0,3)と示す)を例にとる。この場合、アクセスすべきアドレスは、第1色画素データ:0x100023E1、第2,3,4色画素データ:0x100026E1となる。
【0044】
以上のようにして特定されたアドレスに基づいて、合成処理対象となるブロックにおける第1色画素データおよび第2,3,4色画素データを特定することができる。そして、その特定された画素データを取得し、合成情報の色情報(画素値、明度、色差など)と合成条件に従い処理を行う(S303)。合成条件 が“上書き”の場合は、合成先のブロックの第1色画素データが格納されているアドレスおよび第2,3,4色画素データが格納されているアドレスに対し、画素値(合成色)を書き込むことにより、合成処理を行うこととなる。
【0045】
図14に示されているように、合成色が黒(R:0,G:0,B:0)である場合について説明する。図14で示されるように合成画像の解像度が300dpiで、合成先の元画像データの解像度が600dpiの場合、元画像データにおける合成処理対象のブロックに関して、当該合成処理対象ブロックを構成する全ての画素値を黒に書き換えればよい。すなわち、合成処理対象ブロックに対応する第1色画素データおよび第2,3,4色画素データの画素値を、黒(R:0,G:0,B:0)に変更することによって、合成処理を行ったことになる。本実施形態における合成前の画像データを展開した場合の全体図を図19(A)に、図14の合成画像を合成処理した後の画像データを展開した場合の全体図を図19(B)に示す。
【0046】
以上により、比較的単純な圧縮方式を用いて画像データに対し圧縮する場合において、画像データの圧縮データに対して、画像データをラスタライズせずに合成処理を行うことができる。したがって、必要となるメモリの量を抑えることができ、安価な画像処理装置の提供が可能である。
【0047】
また圧縮の説明の際、画像データとしてRGBの各8bitを例として説明していたが、CMYKの色空間を取るものや、GRAYスケールのデータ、また8bit以外の画素値をとるものでも良い。また、合成条件として上書きだけでなくアルファブレンドなどの条件を与えることも可能である。その場合は、合成先のブロックの第1色画素データの画素値および第2,3,4色画素データの画素値を取得し、当該画素値に合成色のアルファブレンドを行った後、元のアドレスに書き戻せばよい。
【0048】
<第二の実施形態>
本実施形態では第一の実施形態で述べたラスタ画像に加え、画素データに付随する属性データの合成に関して説明する。本実施形態における画像処理装置の構成は図1と、コントローラ101の構成は図2と同一である。
【0049】
PDLデータをレンダリングしたラスタ画像に対して画素単位でその画素に対し属性データ(属性値)を付与する事がある。その属性データとは、例えば文字、写真、グラフィックス、背景、グレー補償などの情報がある。こういった各属性に対応付けられた属性データを、各画素に付与することで、各画素の属性を判別できるようにする。こういった属性データが付いている画像データに対してはそれぞれの属性データに適した画像処理を切り替えながら行うことで、最適な画像データを得る事が可能となる。例えば文字の属性が付与されている画素に対しては、可読性を高くするためにコントラストを高くする画像処理を行い、また写真の属性が付いている画素に対しては、階調性を豊かにする画像処理を行うなどが考えられる。
【0050】
こういった属性情報が付与されている画像データは図2のレンダリング部251で生成され、そのデータは第一の実施形態でも説明したように画像圧縮部242、パケット生成部243、DMAC244を経由してメモリ105へ転送される。本実施形態2では、画像圧縮部242において述べた圧縮方法を属性データに対しても適用している。
【0051】
本実施形態におけるパケットのデータ構造を図20に示す。図9と比較すると、パケットヘッダに属性データのビット数と属性データの第2,3,4色画素データサイズ(第2〜4の属性データのサイズ)が付加されている。また、パケットのデータ構造には、属性データを圧縮した結果であるパターンフラグと、属性データの第1色画素データと、属性データの第2,3,4色画素データとが付加されている。なお、本実施形態では、便宜上、2×2画素のブロックに含まれる第1の属性データを「属性データの第1色画素データ」、第2,3,4の属性データを「属性データの第2,3,4色画素データ」と呼ぶことにする。また、属性データに対する配置のパターンフラグを、本実施形態では便宜上、第2のパターンフラグとも呼ぶ。
【0052】
付加された属性データの情報は、属性データのビット数が8の場合、サイズは以下のようになる。
【0053】
第2のパターンフラグのデータサイズ(各ブロック4bit):4×16×16/8=128Byte
属性データの第1色画素データ格納部のデータサイズ(各ブロック8bit):8×16×16/8=256Byte
属性データの第2,3,4色画素データ格納部のデータサイズ(各ブロック最大24bit):最大24×16×16/8=768Byte
第2,3,4色画素データのデータサイズは、画像データによって異なり、最小は0Byteである。
【0054】
図21は、本実施形態における画像処理装置の動作を示すフローチャートである。第二の実施形態では、メモリ105に格納されているディスプレイリスト(不図示)をレンダリング部241が読み出し画像データを形成し、その画像データに対して合成処理が行われプリンタに出力されるまでを述べる。特に画像合成のフローに関して詳述する。なお、本実施形態において、特に明記している場合を除き、本処理はメモリ105等の記憶部に格納されたプログラムをCPU201が読み出して実行するものとする。
【0055】
ここでの画像データのサイズは64×96画素、解像度は1200dpiとする。また、パケット生成時のタイルの大きさは32×32画素とする。合成を行う画像データのサイズは600dpi相当で16×16画素とする。また、パケットヘッダの大きさは16Byteとする。
【0056】
レンダリング部241にてメモリ105に格納されているディスプレイリストを読み出し、レンダリングを行う(S501)。レンダリングされた画像データに対して、画像圧縮部242にて画像圧縮処理を行う(S502)。その圧縮データをパケット生成部243にてパケットに変換する(S503)。次にDMAC244を介してメモリ105へ該パケットデータを格納する(S504)。CPU201でパケット管理テーブルの作成を行う(S505)。その後、画像合成部231で、メモリ105に格納されている合成対象の合成画像に関する情報(合成情報)を読み出す(S506)。そして、メモリ105に格納されているパケットデータに対して、当該合成画像の合成処理を行う(S507)。本実施形態における合成情報を図22(A)に示す。図22(A)に示す合成情報には合成画像データの解像度、色・形状情報、合成条件、及び属性データに対する合成値が格納されている。
【0057】
パケット管理テーブルに従って、メモリ105に格納されている合成処理後のパケットデータを、DMAC221を介して読み込む(S508)。具体的には、パケット管理テーブルのパケット(0,0)から順番にアドレスを指定し読み出しを行う。次に、パケット展開部222でパケットの展開が行われる(S509)。さらに、画像展開部223にてラスタ画像データへ展開する(S510)。ラスタの画像データをプリント用画像処理部224に入力し、そこでディザ法や誤差拡散法による面積階調処理を行い(S511)、プリンタ103へ出力する(S512)。
【0058】
[合成処理]
以下、画像合成部231における合成処理(S507)の詳細について述べる。第二の実施形態におけるS507の詳細を示したフローチャートは図15と同様である。本実施形態におけるブロックのアドレス特定について説明する。本実施形態に係るパケット管理テーブルを図22(B)に示す。図22(B)に示した合成位置情報より、例えば合成を行うパケットは座標(1,2)で表されるパケット(以降、パケット(1,2)と示す)であると判定できたとする。パケット(1,2)のデータ構造について図23に示す。まず、画像合成部231は、パケット管理テーブルを参照しパケット(1,2)のアドレス(0x10005000)を特定する。次に、パケットのヘッダのサイズである16Byteを加算し(0x10005010)、パターンフラグ格納部のアドレスへアクセスして、第2,3,4色画素データのアドレス特定を行う。図24(A)にパケット(1,2)のパターンフラグの並びとそこから算出される第2,3,4色画素データのアドレスを示す。パケット(1,2)の第2,3,4色画素データの先頭アドレスは、パケットの先頭アドレス(0x10005000)にヘッダ、パターンフラグ、及び第1色画素データ分のサイズを加算した0x10005390である。合成処理対象のブロックのうち、最初に現れる座標(0,3)で表されるブロック(以降、ブロック(0,3)と示す)を例にとると、アクセスすべきアドレスは、第1色画素データ:0x10005096、第2,3,4色画素データ:0x10005399となる。
【0059】
次に、属性データに関するアドレス特定に関しても同様の手順で行う。属性データのパターンフラグ(第2のパターンフラグ)のサイズおよび属性データの第1色画素データのサイズは固定長であるので、属性データの第1色画素データの先頭アドレスおよび、属性データの第2,3,4色画素データの先頭アドレスは容易に特定することができる。また、第1の属性データのサイズも8bitで固定なので、合成処理対象となるブロックが当該パケットにおいて何番目のブロックであるかが分かれば、合成対象となるブロックについての「属性データの第1色の画素データ」を特定することが可能である。また、各ブロックの第2〜4の属性データ(属性データの第2,3,4色画素データ)のデータサイズは、画像に応じて可変になる。したがって、属性データの第2,3,4色画素データの先頭アドレスと、当該パケットの属性データのパターンフラグの並びとに基づいて、合成処理対象のブロックに関する属性データの第2,3,4色画素データのアドレスを特定していくことができる。ここでは、便宜上、属性データに対するパターンフラグの特定を第2パターンフラグ特定とし、第2パターンフラグに基づいて、第2〜4の属性データを抽出する処理を第2抽出とする。また、第2抽出処理により抽出された第2〜4の属性データをメモリに保持することを第2の保持手段とする。図24(B)にパケット(1,2)の属性データのパターンフラグの並びの例とそこから算出される属性データの第2,3,4色画素データに対応するアドレスを示す。このようにして、合成処理対象のブロックに関する属性データが格納されているアドレスを特定することができる。
【0060】
ブロック(0,3)を例にとると、アクセスすべき属性データのアドレスは、属性データの第1色画素データ:0x10005513となり、また、属性データのパターンフラグが0であることから、属性データの第2,3,4色画素データは存在しない。
【0061】
以上のようにして特定されたアドレスから、格納されている画素データおよび属性データを、合成情報の色情報と合成条件に従い処理を行う(S303)。合成条件が“上書き”の場合は、合成先のブロックの第1色画素データが格納されているアドレスおよび第2,3,4色画素データが格納されているアドレスに対し、画素値(合成色)を書き込むことにより、合成処理を行うこととなる。また、属性データに関しても同様に、合成先のブロックの属性データの第1色画素データが格納されているアドレスおよび属性データの第2,3,4色画素データが格納されているアドレスに対し、属性データの合成値を書き込むことにより、合成処理を行うこととなる。
【0062】
合成画像データの解像度が600dpiで、合成先の元画像データの解像度が1200dpiの場合、元画像データの合成対象のブロックを構成する全ての画素値(RGB値)と属性データ(属性値)とを書き換えればよい。すなわち、第一の実施形態で説明したように、合成処理対象ブロックに対応する第1色画素データおよび第2,3,4色画素データの画素値を、合成色(図22の場合は(R:64,G:64,B:64))に書き換える。そして、第2の実施形態では、更に、合成処理対象ブロックに対応する属性データの第1色画素データおよび属性データの第2,3,4色画素データを合成値(図22の場合は0xFF)に書き換える。
【0063】
このような構成により、画素単位で属性データを伴う画像データを扱う場合にも、圧縮データ全てをラスタライズせずに合成処理が可能である。なお、ここではPDLの画像データに着目して属性データの圧縮に関して述べたが、スキャン画像データに対しても、画像認識を行うことで属性データを付与し、同様の処理で圧縮処理および合成処理が可能である。また、属性データは1画素あたり8bitに限るものではなく、1bitや4bit、16bitといった任意のbit数を取ることも可能である。
【0064】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
入力された画像データを、所定の画素数単位のタイルごとに分割するタイル分割手段と、
前記タイル分割手段で分割された各タイルを、M×N画素のサイズのブロックごとに分割するブロック分割手段と、
前記ブロック分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロック内の各画素の色データを比較することにより、前記各ブロックに含まれる色データの配置パターンを示すパターンフラグを特定するパターンフラグ特定手段と、
前記各ブロックの予め定義された位置の画素から第1色の色データを抽出し、更に、前記ブロックに含まれる色データの数が2〜4のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第2〜4色の色データを抽出する抽出手段と、
前記パターンフラグ特定手段で特定された各ブロックのパターンフラグと、前記抽出手段で抽出された第1色の色データと、前記抽出手段で抽出された第2〜4色の色データとをメモリに保持させる第1の保持手段と、
合成する合成画像データに基づいて、合成処理対象となるブロックの前記第1色の色データと前記第2〜4色の色データとが保持されている前記メモリにおけるアドレスを特定するアドレス特定手段と、
前記アドレス特定手段により特定されたアドレスに保持されている、前記合成処理対象となるブロックに関する前記第1色の色データと前記第2〜4色の色データとを、前記合成画像データの色データに基づいて書き換える合成手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記入力された画像データの各画素は、前記色データに加えて属性データを有し、
前記画像処理装置は、
前記ブロック分割手段で分割された各ブロックを順に処理対象にし、当該処理対象のブロック内の各画素の属性データを比較することにより、各ブロックに含まれる属性データの配置パターンを示す第2のパターンフラグを特定する第2パターンフラグ特定手段と、
前記各ブロックの予め定義された位置の画素から第1の属性データを抽出し、更に、前記ブロックに含まれる属性データの数が2〜4のいずれかであると判断したブロックからは、当該特定された第2のパターンフラグで定義されている配置パターンに対応する第2〜4の属性データを抽出する第2抽出手段と、
前記第2パターンフラグ特定手段で特定された各ブロックの第2のパターンフラグと、前記第2抽出手段で抽出された第1の属性データと、前記第2抽出手段で抽出された第2〜4の属性データとを前記メモリに保持させる第2の保持手段と、
を更に有し、
前記アドレス特定手段は、前記合成画像データに基づいて、合成処理対象となるブロックの前記第1色の色データと前記第2〜4色の色データと前記第1の属性データと前記第2〜4の属性データとが保持されている前記メモリにおけるアドレスを特定し、
前記合成手段は、前記アドレス特定手段により特定されたアドレスに保持されている、前記合成処理対象となるブロックに関する前記第1色の色データと前記第2〜4色の色データと前記第1の属性データと前記第2〜4の属性データとを、前記合成画像データの色データと属性データとに基づいて書き換えることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記ブロックのサイズは、2×2画素のサイズであることを特徴とする請求項1または2のいずれかに記載の画像処理装置。
【請求項4】
前記タイルのサイズは、32×32画素のサイズであることを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記アドレス特定手段は、前記入力された画像データの解像度と前記合成画像データの解像度とに基づいて、前記合成処理対象となるブロックの各データが保持されている前記メモリにおけるアドレスを特定することを特徴とする請求項1乃至4のいずれか一項に記載の画像処理装置。
【請求項6】
前記合成画像データは、合成位置を示す位置情報、解像度、合成画像の形状を示す形状情報、合成条件、画素それぞれの色情報、画素それぞれの位置情報、属性データ、のうちの少なくとも一つを含むことを特徴とする請求項1乃至5のいずれか一項に記載の画像処理装置。
【請求項7】
タイル分割手段が、入力された画像データを、所定の画素数単位のタイルごとに分割するタイル分割工程と、
ブロック分割手段が、前記タイル分割工程で分割された各タイルを、M×N画素のサイズのブロックごとに分割するブロック分割工程と、
パターンフラグ特定手段が、前記ブロック分割工程で分割された各ブロックを順に処理対象とし、当該処理対象のブロック内の各画素の色データを比較することにより、各ブロックに含まれる色データの配置パターンを示すパターンフラグを特定するパターンフラグ特定工程と、
抽出手段が、前記各ブロックの予め定義された位置の画素から第1色の色データを抽出し、更に、前記ブロックに含まれる色データの数が2〜4のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第2〜4色の色データを抽出する抽出工程と、
第1の保持手段が、前記パターンフラグ特定工程で特定された各ブロックのパターンフラグと、前記抽出工程で抽出された第1色の色データと、前記抽出工程で抽出された第2〜4色の色データとをメモリに保持させる第1の保持工程と、
アドレス特定手段が、合成する合成画像データに基づいて、合成処理対象となるブロックの前記第1色の色データと前記第2〜4色の色データとが保持されている前記メモリにおけるアドレスを特定するアドレス特定工程と、
合成手段が、前記アドレス特定工程で特定されたアドレスに保持されている、前記合成処理対象となるブロックに関する前記第1色の色データと前記第2〜4色の色データとを、前記合成画像データの色データに基づいて書き換える合成工程と、
を有することを特徴とする画像処理方法。
【請求項8】
コンピュータを、
入力された画像データを、所定の画素数単位のタイルごとに分割するタイル分割手段、
前記タイル分割手段で分割された各タイルを、M×N画素のサイズのブロックごとに分割するブロック分割手段、
前記ブロック分割手段で分割された各ブロックを順に処理対象にし、当該処理対象のブロック内の各画素の色データを比較することにより、各ブロックに含まれる色データの配置パターンを示すパターンフラグを特定するパターンフラグ特定手段、
前記各ブロックの予め定義された位置の画素から第1色の色データを抽出し、更に、前記ブロックに含まれる色データの数が2〜4のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第2〜4色の色データを抽出する抽出手段、
前記パターンフラグ特定手段で特定された各ブロックのパターンフラグと、前記抽出手段で抽出された第1色の色データと、前記抽出手段で抽出された第2〜4色の色データとをメモリに保持させる第1の保持手段、
合成する合成画像データに基づいて、合成処理対象となるブロックの前記第1色の色データと前記第2〜4色の色データとが保持されている前記メモリにおけるアドレスを特定するアドレス特定手段、
前記アドレス特定手段により特定されたアドレスに保持されている、前記合成処理対象となるブロックに関する前記第1色の色データと前記第2〜4色の色データとを、前記合成画像データの色データに基づいて書き換える合成手段、
として機能させるためのプログラム。
【請求項9】
請求項8に記載のプログラムを格納した、コンピュータが読取可能な記憶媒体。
【請求項1】
入力された画像データを、所定の画素数単位のタイルごとに分割するタイル分割手段と、
前記タイル分割手段で分割された各タイルを、M×N画素のサイズのブロックごとに分割するブロック分割手段と、
前記ブロック分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロック内の各画素の色データを比較することにより、前記各ブロックに含まれる色データの配置パターンを示すパターンフラグを特定するパターンフラグ特定手段と、
前記各ブロックの予め定義された位置の画素から第1色の色データを抽出し、更に、前記ブロックに含まれる色データの数が2〜4のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第2〜4色の色データを抽出する抽出手段と、
前記パターンフラグ特定手段で特定された各ブロックのパターンフラグと、前記抽出手段で抽出された第1色の色データと、前記抽出手段で抽出された第2〜4色の色データとをメモリに保持させる第1の保持手段と、
合成する合成画像データに基づいて、合成処理対象となるブロックの前記第1色の色データと前記第2〜4色の色データとが保持されている前記メモリにおけるアドレスを特定するアドレス特定手段と、
前記アドレス特定手段により特定されたアドレスに保持されている、前記合成処理対象となるブロックに関する前記第1色の色データと前記第2〜4色の色データとを、前記合成画像データの色データに基づいて書き換える合成手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記入力された画像データの各画素は、前記色データに加えて属性データを有し、
前記画像処理装置は、
前記ブロック分割手段で分割された各ブロックを順に処理対象にし、当該処理対象のブロック内の各画素の属性データを比較することにより、各ブロックに含まれる属性データの配置パターンを示す第2のパターンフラグを特定する第2パターンフラグ特定手段と、
前記各ブロックの予め定義された位置の画素から第1の属性データを抽出し、更に、前記ブロックに含まれる属性データの数が2〜4のいずれかであると判断したブロックからは、当該特定された第2のパターンフラグで定義されている配置パターンに対応する第2〜4の属性データを抽出する第2抽出手段と、
前記第2パターンフラグ特定手段で特定された各ブロックの第2のパターンフラグと、前記第2抽出手段で抽出された第1の属性データと、前記第2抽出手段で抽出された第2〜4の属性データとを前記メモリに保持させる第2の保持手段と、
を更に有し、
前記アドレス特定手段は、前記合成画像データに基づいて、合成処理対象となるブロックの前記第1色の色データと前記第2〜4色の色データと前記第1の属性データと前記第2〜4の属性データとが保持されている前記メモリにおけるアドレスを特定し、
前記合成手段は、前記アドレス特定手段により特定されたアドレスに保持されている、前記合成処理対象となるブロックに関する前記第1色の色データと前記第2〜4色の色データと前記第1の属性データと前記第2〜4の属性データとを、前記合成画像データの色データと属性データとに基づいて書き換えることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記ブロックのサイズは、2×2画素のサイズであることを特徴とする請求項1または2のいずれかに記載の画像処理装置。
【請求項4】
前記タイルのサイズは、32×32画素のサイズであることを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記アドレス特定手段は、前記入力された画像データの解像度と前記合成画像データの解像度とに基づいて、前記合成処理対象となるブロックの各データが保持されている前記メモリにおけるアドレスを特定することを特徴とする請求項1乃至4のいずれか一項に記載の画像処理装置。
【請求項6】
前記合成画像データは、合成位置を示す位置情報、解像度、合成画像の形状を示す形状情報、合成条件、画素それぞれの色情報、画素それぞれの位置情報、属性データ、のうちの少なくとも一つを含むことを特徴とする請求項1乃至5のいずれか一項に記載の画像処理装置。
【請求項7】
タイル分割手段が、入力された画像データを、所定の画素数単位のタイルごとに分割するタイル分割工程と、
ブロック分割手段が、前記タイル分割工程で分割された各タイルを、M×N画素のサイズのブロックごとに分割するブロック分割工程と、
パターンフラグ特定手段が、前記ブロック分割工程で分割された各ブロックを順に処理対象とし、当該処理対象のブロック内の各画素の色データを比較することにより、各ブロックに含まれる色データの配置パターンを示すパターンフラグを特定するパターンフラグ特定工程と、
抽出手段が、前記各ブロックの予め定義された位置の画素から第1色の色データを抽出し、更に、前記ブロックに含まれる色データの数が2〜4のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第2〜4色の色データを抽出する抽出工程と、
第1の保持手段が、前記パターンフラグ特定工程で特定された各ブロックのパターンフラグと、前記抽出工程で抽出された第1色の色データと、前記抽出工程で抽出された第2〜4色の色データとをメモリに保持させる第1の保持工程と、
アドレス特定手段が、合成する合成画像データに基づいて、合成処理対象となるブロックの前記第1色の色データと前記第2〜4色の色データとが保持されている前記メモリにおけるアドレスを特定するアドレス特定工程と、
合成手段が、前記アドレス特定工程で特定されたアドレスに保持されている、前記合成処理対象となるブロックに関する前記第1色の色データと前記第2〜4色の色データとを、前記合成画像データの色データに基づいて書き換える合成工程と、
を有することを特徴とする画像処理方法。
【請求項8】
コンピュータを、
入力された画像データを、所定の画素数単位のタイルごとに分割するタイル分割手段、
前記タイル分割手段で分割された各タイルを、M×N画素のサイズのブロックごとに分割するブロック分割手段、
前記ブロック分割手段で分割された各ブロックを順に処理対象にし、当該処理対象のブロック内の各画素の色データを比較することにより、各ブロックに含まれる色データの配置パターンを示すパターンフラグを特定するパターンフラグ特定手段、
前記各ブロックの予め定義された位置の画素から第1色の色データを抽出し、更に、前記ブロックに含まれる色データの数が2〜4のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第2〜4色の色データを抽出する抽出手段、
前記パターンフラグ特定手段で特定された各ブロックのパターンフラグと、前記抽出手段で抽出された第1色の色データと、前記抽出手段で抽出された第2〜4色の色データとをメモリに保持させる第1の保持手段、
合成する合成画像データに基づいて、合成処理対象となるブロックの前記第1色の色データと前記第2〜4色の色データとが保持されている前記メモリにおけるアドレスを特定するアドレス特定手段、
前記アドレス特定手段により特定されたアドレスに保持されている、前記合成処理対象となるブロックに関する前記第1色の色データと前記第2〜4色の色データとを、前記合成画像データの色データに基づいて書き換える合成手段、
として機能させるためのプログラム。
【請求項9】
請求項8に記載のプログラムを格納した、コンピュータが読取可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2011−238986(P2011−238986A)
【公開日】平成23年11月24日(2011.11.24)
【国際特許分類】
【出願番号】特願2010−105962(P2010−105962)
【出願日】平成22年4月30日(2010.4.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年11月24日(2011.11.24)
【国際特許分類】
【出願日】平成22年4月30日(2010.4.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]