画像処理装置、画像処理方法、及びプログラム
【課題】各画素に色データと属性データとが付加された属性付き画像データを、効率よく圧縮できるようにする。
【解決手段】画像データを所定サイズのブロック毎に分割し、当該ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する。2種類以上のデータ種類で構成されるブロックに関しては、当該ブロックに含まれる属性データの種類が単一であるか複数であるか判断する。2種類以上のデータ種類で構成され且つ属性データの種類が単一であると判定されたブロックに関しては、属性データが単一であることを示すフラグと、配置パターンを示すフラグと、予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力する。
【解決手段】画像データを所定サイズのブロック毎に分割し、当該ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する。2種類以上のデータ種類で構成されるブロックに関しては、当該ブロックに含まれる属性データの種類が単一であるか複数であるか判断する。2種類以上のデータ種類で構成され且つ属性データの種類が単一であると判定されたブロックに関しては、属性データが単一であることを示すフラグと、配置パターンを示すフラグと、予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データとその属性データとを所定のブロック単位に圧縮する技術とブロック単位に圧縮された画像の画像処理や復元処理を行う技術に関する。
【背景技術】
【0002】
画像の高解像度化が進むにつれて、画像処理を必要とする画素数が飛躍的に増え、その処理負荷が増大しているという課題がある。この課題に対し、扱う画像データに対する圧縮処理を適用している。例えば、カラー静止画像の圧縮方式には、離散コサイン変換を利用したJPEG方式やWavelet変換を利用した方式が多く使われている。この種の符号化方式は、一般的に画像を所定のブロック(例えば8×8や16×16画素単位)に符号化し、離散コサイン変換、量子化及びエントロピー符号化を行うことで高い圧縮効率を達成している。この種の符号化方式は、可変長符号化方式であるので、符号化対象の画像毎に符号量が変化するものである。
【0003】
上述した画像圧縮を用いた場合、各画素データを変換するには、圧縮データに対する復号処理が必要になってくる。つまり、圧縮データのままで画像処理を行うことはできず、必ず復号処理が必要になる。そのため、高解像度データ全ての画素に対して画素単位に処理を行う必要が生じ、処理時間の増大を招く。
【0004】
また、圧縮処理を行う技術としては、画素データとその連続数を記憶する公知のランレングス圧縮方式や、特許文献1のように、ブロック毎に2色以下に減色して2色分の色データとその2色の配置形状を出力することでデータ量を圧縮する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−271046号
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1においては、ブロック内を2色化し、その2色の配置に関する形状情報と2色の色情報を記憶していた。これに対し、さらなる高画質化、処理高速化を図るため、本出願人は、特願2009−221444号において、2色より多いデータ種類数を持つブロックの画質を落とさずに圧縮する技術を提案している。特願2009−221444号の提案では、まず、画像データをブロック(例えば2×2画素サイズのブロック)毎に分割し、ブロック内の各画素の色データを比較する。これにより、注目ブロックに含まれる色データの配置パターン情報と、着目ブロックに含まれる色数分の色データ情報とを出力する。そして、出力された色データ情報のうち、ブロックにおける予め決められた位置の画素に対応する第1の色データ情報(例えば2×2画素サイズのブロックにおける左上の画素の色データ情報)と、それ以外の色データ情報(第2〜4の色データ情報)とに分けてメモリ領域に格納する。すなわち、各ブロックから得られる配置パターン情報と第1の色データ情報とそれ以外の色データ情報とを、それぞれ異なるメモリ領域にまとめて格納することを特徴としている。各ブロック内には同色の画素が存在する場合が多いので、メモリ領域に格納されたデータは、元画像のデータよりもデータサイズが小さい圧縮データとなる。また、第1の色データ情報は、各ブロックの予め決められた位置の画素の画素値であるので、連続メモリ領域に格納されている第1の色データ情報は、元画像を単純間引き処理して生成される低解像度画像に等しい。したがって、低解像度画像データも容易に得ることができる。また、各ブロックの第1の色データ情報からなる低解像度画像データを連続メモリ領域に置くことで、符号化データのままでの処理を容易化し、復号化することなく低解像度画像に対する画素処理も可能となる。
【0007】
一方、画像データには、各画素に属性が付加された属性付き画像データも存在する。本発明では、このような属性付き画像データを扱う場合に、効率よく圧縮できるようにする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の画像処理装置は、各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割手段と、前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段と、2〜L種類(L=M×N)のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか否かを判断する第1判断手段と、2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックが単一属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力手段とを有する。
【0009】
または、上記課題を解決するために、本発明の画像処理装置は、各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロック毎に分割する分割手段と、前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段と、2〜L種類(L=M×N)のデータ種類で構成されるブロックに関して、当該ブロックに含まれる画素の属性データの種類が単一であるか否かを判断する第1判断手段と、2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックが複数属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力手段とを有する。
【発明の効果】
【0010】
本発明によれば、属性付き画像データを圧縮して保持する場合に保持するデータ量の削減が可能となる。
【図面の簡単な説明】
【0011】
【図1】MFPシステムの概要を示した図。
【図2】コントローラの概要を示した図。
【図3】画像をブロック分割した際にそのブロックのパターンを列挙した図。
【図4】ブロックのパターンとその識別子を列挙した図。
【図5】第一の実施形態に係る画像圧縮フローを示した図。
【図6】ブロックのパターンをフラグに変換している様子を示した図。
【図7】第一の実施形態に係る圧縮処理に対するに入力と出力の関係を示した図。
【図8】第一の実施形態に係る圧縮データのメモリ空間上でのレイアウトを示した図。
【図9】第二の実施形態に係る画像圧縮フローを示した図。
【図10】第二の実施形態に係る圧縮処理に対するに入力と出力の関係を示した図。
【図11】第三の実施形態に係る画像圧縮フローを示した図。
【図12】第三の実施形態に係る圧縮処理に対するに入力と出力の関係を示した図。
【図13】本発明に係る展開処理に関する処理フローを示した図。
【発明を実施するための形態】
【0012】
<第一の実施形態>
図1に、本発明の実施形態の画像処理装置であり、スキャン、プリント、コピーを行うデジタル複合機システム(以降、MFPと称する)の全体構成図を示す。コントローラ101は、画像入力デバイスであるスキャナ102や画像出力デバイスであるプリンタ103と接続する。また、一方ではLANや公衆回線(WAN)等のネットワーク104と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行う。CPU(Central Processing Unit)105はシステム全体を制御するプロセッサである。メモリ106は、CPU105が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。HDD記憶部107はハードディスクドライブであり、システムソフトウェア、画像データ等のデータ類を格納する。
【0013】
ここで本発明において扱う属性データについて説明しておく。画像データに含まれる画素単位で、その画素の属性を付与する場合がある。ここで、付与可能な属性の種類には、例えば文字、写真、グラフィックス、背景、グレー補償などが挙げられる。こういった属性が付与されている画像データに対しては、それぞれの属性に適した画像処理を切り替えながら行うことで、最適な画像データを得る事が可能となる。例えば文字の属性が付与されている画素に対しては、可読性を高くするためにコントラストを高くするための処理を行い、また写真の属性が付いている画素に対しては、階調性を豊かにするための処理を行うなどが考えられる。以後、属性の付加された画像データを“属性付き画像データ”、属性が付加されていない画像データを単に“画像データ”と称する。
【0014】
図2を用いて、図1のコントローラ部の動作に関して詳細に説明する。ここでは、スキャンデータを読み込む場合を説明する。スキャナ102からRGB(RED、GREEN、BLUE)3色の読み取り画像データを受け取ったコントローラ部では、まずスキャナ用画像処理部201にてシェーディング処理やフィルタ処理等の画像処理を行った後、属性データを付加する。そして、圧縮部202にて属性付き画像データの画像圧縮処理を行う。その圧縮データをDMAC(Direct Memory Access Controller)203を介してメモリ106へ格納する。
【0015】
スキャンデータをプリントする場合は、メモリ106に格納されている圧縮データを、DMAC211を介して色処理部212へ入力しCMYK(CYAN、MAGENTA、YELLOW、BLACK)色空間へ変換する。上記圧縮データからは属性データも復元される。その後、それらCMYKの値に対してその属性に最適な濃度調整、プリンタガンマ補正等の調整の色処理を行った後、DMAC211を介して再度、メモリ106へ格納する。その後プリント用の画像処理を行うため、DMAC221を介して、メモリ106に格納されている圧縮データを読み込み、展開部222にて属性付きラスタ画像データへ展開する。ラスタのCMYK画像データをプリント用画像処理部223に入力し、そこで画像データに付与された属性に最適なディザ法や誤差拡散法による面積階調処理を行い、プリンタ103へ出力する。
【0016】
スキャンデータをネットワークへ送信する場合には、メモリ106に格納されている圧縮データを、DMAC211を介して色処理部212へ入力し色変換を行う。具体的には、属性に最適なディスプレイガンマ調整や用紙地色調整等を行った後にYCbCr(輝度、BLUE色差、RED色差)色空間へ変換する。その後再度、DMAC211を介してメモリ106へ格納する。その後、送信用の画像処理を行うために、DMAC231を介して、メモリ106に格納されている圧縮データを読み込み、展開部232にて属性付きラスタ画像データへ展開する。ラスタのYCbCr画像データに対して送信処理部233ではカラー画像送信であればJPEG圧縮処理を行う。また、モノクロ2値画像送信であればYデータに対して2値化を行い、JBIG圧縮等を行う。その後、ネットワーク104へ出力する。
【0017】
スキャンデータを保存する場合には、メモリ106に格納されている圧縮データをディスクスプール高圧縮/展開部242へDMAC241を介して入力する。ディスクスプール高圧縮/展開部242では、HDDの書き込みスピードがメモリに対して遅いため、さらに高圧縮のJPEG圧縮を施す。その後ディスクアクセスコントローラ243を介してHDD記憶部107へ圧縮データを保存する。保存されているデータを再度メモリへ展開する場合はその逆処理を行う。
【0018】
PDLのデータをメモリへ書き込む場合を説明する。図2では図示していないが、図1にてネットワークから送られてきたPDLデータを、CPU105を用いて解釈し、メモリ106へディスプレイリストを出力する。その後、メモリ106に格納されているディスプレイリストをレンダリング部251で属性付きRGB画像データへレンダリングを行い、圧縮部252にて画像圧縮処理を行う。その圧縮データを、DMAC253を介してメモリ106へ格納する。PDL画像データに対し、プリント、ネットワークへ送信、保存する等の処理を行う場合はスキャンデータと同様の処理を行うことで実現する事が可能になる。
【0019】
[圧縮処理]
以降では本発明の特徴となる属性付き画像データの圧縮部の詳細に関して説明を行う。まずページ単位の属性付き画像データを所定の画素数(本実施形態では、2x2画素)のブロックごとに分割し、そのブロックを順に着目ブロックとしてデータの圧縮を行う。ここで、本実施形態における属性付き画像データの各画素は、R(Red)、G(Green)、B(Blue)の各8bitと属性データ8bitとから構成されるものとする。
【0020】
処理の説明の前に、2x2画素のブロック(4画素データ)におけるデータ種類の配置パターンを考える。ここで、各画素のデータ種類は、R、G、Bと属性データの計32bitで表されるものとし、各画素を32bit単位で比較し、一致すれば同じデータ種類であると判断する。ブロック内の画素数が4画素なので、そこに占めるデータ種類数は1〜4種類である。それら1〜4種類のパターンの取りうる組み合わせの場合の数を、図3を用いて説明する。なお、本明細書では、出力データにおける1〜4種類のデータ種類の情報を、それぞれ順に第1種類、第2種類、第3種類、第4種類の(属性付き)画像データと呼ぶ。
【0021】
まずブロック内が1種類の場合、4画素が同一データ種類で構成されている事になるので、その組み合わせは1通りである。次にブロック内が2種類の場合を考える。2種類が4画素内へレイアウトされる場合の数は、予め定義された位置の画素(ここでは左上の画素とする)の属性付き画像データの種類を第1種類、第1種類と異なる属性付き画像データの種類を第2種類とする。この場合、左上以外の残りの3画素へ第1種類もしくは第2種類が入るので、4画素同種類の場合を除くと、全部で7通りの組み合わせが考えられる。
【0022】
次にブロック内が3種類のデータで構成される場合を考える。3種類のデータが4画素内へレイアウトされる場合の数は、3種類のうち1種類だけ2度使われる場合の数と言い換える事が可能で、4画素の座標のうち、2画素が同じ種類になる場合の数を求めればよい。つまり3種類の場合の数は、4つの座標から2つの座標を取る組み合わせとなり、全部で6通りとなる。最後にブロック内が4種類のデータで構成される場合は1通りしか存在しない。
【0023】
これら1〜4種類すべての場合の数を合計すると全部で15通りのパターンが考えられる。これらすべてのパターンを識別するためにフラグを付与する事を考えると、データ量としては4bitが必要となる。図示すると図4のようになり、以降このフラグをパターンフラグと称する。このパターンフラグにより、ブロックに含まれるデータ種類の数とその配置パターンを特定することが可能となる。また、ここでは、4bitのパターンフラグとして「F」は使用されていないことを注意されたい。
【0024】
本発明は、2×2画素のブロック内の属性データが1種類か複数種類かで処理を変更するように構成している。ここで、属性データのみに着目して属性データの取りうる種類数に言及すると、図3に示すように属性付き画像データの取りうる種類数以下となる。上記図4のパターンフラグにおいて割り当てられていなかった4bitの識別フラグ「F」は、本実施形態において4画素内の属性付き画像データに含まれる色数が2種類以上で、かつ属性データの種類が1種類のときに追加付与されるものとする。以降、このパターンフラグ「F」を単一属性識別フラグ「F」と称する。
【0025】
[処理フロー]
上記のように2x2画素の取りうる組み合わせを踏まえて、圧縮部202、252にて行われる処理を図5のフローを用いて説明する。入力としては、先述のとおりRGBそれぞれ8bitの256階調を有し、属性データは8bitである。またデータとしては8bitデータの点順次で1画素あたり32bitの属性付き画像データを有するとして説明を行う。
【0026】
まず、属性付き画像データを2×2画素のブロックごとに分割し、当該分割された2x2画素のブロックを順に入力する(S501)。入力されたブロック内全ての2画素の組み合わせそれぞれに対して、32bitで表現される各画素の属性付き画像データの値(色データ及び属性データ)のコンペア(比較)を取る(S502)。このコンペアを取った結果、全ビット一致していた場合には1を出力し、不一致の場合には0を出力する。図6に示すように、2x2画素内の左上から右上、左下、右下の順に座標1、2、3、4とすると、2画素の組は、1−2、1−3、1−4、2−3、2−4、3−4の全部で6通りある。そのため、6回コンペアを取る必要があり、結果は6bit出力される。例えば全画素同一の値を有している(属性付き画像データの値(色データと属性データ)が全画素同じ)場合には、全てのコンペア結果が1を出力し、逆に4画素全てバラバラの値を有している(属性付き画像データの値(色データと属性データ)が全画素異なる)場合には、全てのコンペア結果が0を出力する。前述の通り、2×2画素からなるブロックで出現しうるパターン数は15通りなので、図6に示すように、その6bitのコンペア結果に対して配置パターンを示す4bitのパターンフラグへ変換する(S503)。
【0027】
4bitのパターンフラグへ変換したら続いて、4画素内で出現したデータ種類数をパターンフラグから判断する(S504)。図6に示したように、4bitのパターンフラグ(または6bitのコンペア結果)に対して、ブロック内での各値(各データ種類)の配置を示すパターンが対応付けられている。そのため、各ブロックにおけるデータ種類の数と、そのデータ種類(属性付き画像データ:すなわち、RGB色データ及び属性データ)とを抽出することができる。なお、本実施形態では、全てのパターンにおいて、左上の画素の値が第1種類のデータ(1番目のデータ)となるように定義し、更に、各パターンにおいて、第2種類以降のデータがどこに配置されているデータであるかも予め定義している。したがって、配置パターンを示すパターンフラグに基づいて、左上の画素のデータ種類(左上画素の色データ及び属性データの値)を第1種類のデータとした場合、第2種類以降のデータがどの位置にあるか求める事が出来る。図7を参照しながら説明を行う。例えば4画素内が1種類で構成されていることが確定した場合(S505にてYES)には、左上の画素のデータ種類(左上画素の色データ及び属性データの値)を第1種類のデータとして抽出する。ここでは、第2種類以降のデータは存在しないので、配置パターンを示すパターンフラグ(4bit)と第1種類のデータ(32bit)とを出力する(S506)。
【0028】
また本実施形態では、4画素が2種類以上のデータで構成されている場合、4画素全ての属性データが同じであるかの判定を行い、その判定結果にしたがって出力するデータを変更する。すなわち、4画素が2種類のデータで構成されていることが確定した場合(S507にてYES)には、さらに当該4画素の属性が1種類かどうか(同一属性かどうか)を判定する(S522)。当該ブロック内の画素の属性が複数種類あると判定した場合(S522にてNO)、その第2種類の属性付き画像データが存在する画素の位置座標をパターンフラグに基づき決定する。そして、左上の画素のデータ種類(左上画素の色データ及び属性データの値)を第1種類のデータとして抽出し、更に、前記決定された位置の画素から第2種類の属性付き画像データ(色データと属性データ)を抽出する。そして、配置パターンを示すパターンフラグ4bitと第1種類の属性付き画像データ32bitと第2種類の属性付き画像データ32bitとを出力する(S508)。一方、当該ブロック内の属性が1種類であると判定した場合(S522にてYES)、単一属性識別フラグ「F」4bitと配置パターンを示すパターンフラグ4bitとをパターンフラグとして出力する。更に、第1種類の属性付き画像データ32bitと、(属性データ無しで色データのみの)第2種類の画像データ24bitとを出力する(S526)。ここで、単一属性識別フラグ「F」が配置パターンを示すパターンフラグと一緒に出力されることにより、ブロックに含まれる全画素の属性が共通であることが分かるようになる。したがって、データ展開時は、第1種類の属性付き画像データに含まれる属性データを、その他のデータ種類に対する属性データとして流用することができるようになる。すなわち、本発明では、単一属性識別フラグ「F」が付与されている場合は、第2種類のデータ種類については、属性データを付与しないで出力するように構成している。このように構成することで、属性データの冗長な出力が抑制される。
【0029】
4画素内が3種類のデータで構成されていることが確定した場合(S509にてYES)には、さらに当該4画素の属性が1種類かどうか(同一かどうか)判定する(S523)。属性が複数種類(2〜L種類、本実施形態ではL=4)あると判定した場合は、第2種類と第3種類の属性付き画像データが存在する画素の位置をS503で求めたパターンフラグに基づいて決定する。当該決定された位置に基づいて第2種類と第3種類の属性付き画像データを抽出する。そして、配置パターンを示すパターンフラグ4bit、第1種類の属性付き画像データ32bit、第2種類の属性付き画像データ32bit、及び第3種類の属性付き画像データ32bitを出力する(S510)。一方、属性が1種類であると判定した場合(S523にてYES)、単一属性識別フラグ「F」(4bit)と配置パターンを示すパターンフラグ4bitとをパターンフラグとして出力する。続いて第1種類の属性付き画像データ32bitと、(属性データ無しの)第2種類の画像データ24bitと(属性データ無しの)第3種類の画像データ24bitとを出力する(S527)。ここで、単一属性識別フラグ「F」が付与されている場合は、第2〜3種類のデータ種類については、属性データを付与しないで出力するようにすることで、冗長な出力が抑制される。
【0030】
4画素内が4種類のデータで構成されていることが確定した場合(S509にてNO)には、さらに当該4画素の属性が1種類かどうか(単一かどうか)判定する(S524)。これにより、第1判断手段を実現する。属性が複数種類であると判定した場合は(S524にてNO)、その第2〜4種類の属性付き画像データが存在する画素の位置座標をパターンフラグより決定する。そして、配置パターンを示すパターンフラグ4bit、第1種類の属性付き画像データ32bit、第2種類の属性付き画像データ32bit、第3種類の属性付き画像データ32bit、及び第4種類の属性付き画像データ32bitを出力する(S511)。一方、属性が1種類であると判定した場合は(S524にてYES)、単一属性識別フラグ「F」4bitと配置パターンを示すパターンフラグ4bitとをパターンフラグとして出力する。続いて第1種類の属性付き画像データ32bit、(属性データ無しの)第2種類の画像データ24bit、(属性データ無しの)第3種類の画像データ24bit、(属性データ無しの)第4種類の画像データ24bitを出力する(S528)。ここで、単一属性識別フラグ「F」が付与されている場合は、第2〜4種類のデータ種類については、属性データを付与しないで出力するようにすることで、冗長な出力が抑制される。入力された属性付き画像データを2×2画素のブロックごとに分割し、当該分割された2x2画素のブロックを順に処理対象として上述した処理(S501〜S528)を繰り返し行うことにより、圧縮データを得る。
【0031】
以上のように、2x2画素のブロックにおける128bit(4画素×32bit)の入力データを、ブロック内の属性データが単一でない場合は、当該ブロック内の配置パターンを示すパターンフラグ(4bit)と、当該ブロック内に存在するデータ種類数分の属性付き画像データ(32〜128bit)に変換して出力する。また、ブロック内の属性データが単一(1種類)であれば、第2〜4種類の画像データについては属性データを出力せず、単一属性識別フラグ「F」を付加して識別できるようにする。すなわち、ブロック内の属性データが単一(1種類)であれば、単一属性識別フラグ(4bit)のパターンフラグと、配置パターンを示すパターンフラグ(4bit)と、第1種類の属性付き画像データ(32bit)と、属性データ無しの第2〜4種類の画像データ(24〜72bit)とに変換して出力する。
【0032】
2x2画素ブロック内の各画素は、同一の値を有する(すなわち、RGB色データと属性データが同じ)場合が多く、更に、RGBデータが異なっても属性データは同じであるという場合も多い。したがって、入力画像全体でみると、上述したような処理を行うことで、データ圧縮が可能になる。
【0033】
[データ構造]
上述したように、各ブロックに関して順次出力される、パターンフラグ(単一属性識別フラグと配置パターンを示すパターンフラグ)と、第1種類の属性付き画像データと、第2〜4種類のデータ(属性付き画像データまたは属性無し画像データ)とを、DMACを介してメモリに書き込む。その時DMACではパターンフラグと第1種類の属性付き画像データと、第2〜4種類のデータの書き込み位置を変える。DMACにはパターンフラグ書き込みのためのメモリ先頭アドレスと、第1種類の属性付き画像データに対する書き込みのためのメモリ先頭アドレスと、第2〜種類のデータに対する書き込みのためのメモリ先頭アドレスとの3つのアドレスを指定する。図8にその例を図示する。パターンフラグ格納部には、2×2画素ブロックのパターンフラグ(単一属性識別フラグと配置パターンを示すパターンフラグ)が、ブロックの並び順にしたがって順番に格納される。このとき、単一属性であると判定されたブロックに関しては、単一属性識別フラグと配置パターンを示すフラグとが格納され、複数の属性があると判定されたブロックにおいては、配置パターンを示すフラグのみが格納されることになる。第1種類属性付き画像データ格納部(第1種類データ格納部)に関しては、2×2画素ブロックの予め決められた位置(例えば左上)の画素の属性付き画像データが、ピクセル単位で量子化や符号化されることなく、ブロックの並び順に従って順に格納されている。また、第2〜4種類データ格納部(第2〜L種類データ格納部)に関しては、2×2画素ブロック内の第2〜4種類のデータが格納される。このとき、単一属性であると判定されたブロックに関しては、第2〜4種類の(属性データ無し)画像データが格納され、複数の属性が存在すると判定されたブロックに関しては、第2〜4種類の属性付き画像データが格納される。
【0034】
なお、第1種類属性付き画像データ格納部に格納されているデータは、元の入力画像に対し半分の解像度の画像が格納されているのに等しい。従って、高解像度の画像が必要ないような処理を行う場合は、第1種類属性付き画像データ格納部に格納されているデータを利用すればよい。このように、第1種類属性付き画像データ格納部に格納されているデータを利用する場合、1画素入力・1画素出力で完結する処理、例えばLUTを用いた色データや属性データの変換や、ガンマ補正処理、行列演算を用いた種類空間変換処理等は、パターンフラグを参照する必要はない。従って、第1種類属性付き画像データ格納部に格納されているデータに対して直接処理を行うことが可能になる。図2に示している色処理部212ではメモリ106上の第1色書き込み先頭アドレス以降の画素データをDMAC211経由で読み込み、画素単位での処理後にメモリ106へ書き戻す。この時何らかの画素単位処理によって画素のビット数が変わらない場合には、メモリ106の同じ場所へ上書きすることでメモリの節約も可能である。
【0035】
このように圧縮データを直接用いることで、メモリバス上の転送効率が向上し、かつオリジナルの画像に対して少ない画素数のデータに対して処理することになるので、高速処理が可能になる。
【0036】
すなわち、図8のように画像データを離散的にメモリ上へ格納することで、第1種類の属性付き画像データ格納部に限ってみると、画像を2x2単位に左上の座標の画素をサンプリングした画像結果がメモリ上に連続して存在することになる。本実施形態で説明しているMFPにおいては、蓄積したPDL画像データやスキャンの画像データのプレビュー表示や、前述したネットワーク送信などの機能も有している。例えばプリント解像度が600dpiであったとしてもプレビューや送信時にそこまでの解像度は通常必要とされず、300dpiやそれ以下で十分な場合が多い。こういった縮小データを得る必要がある場合は、パターンフラグや第2〜4種類のデータを捨て、第1種類の属性付き画像データのみ扱うことで、簡単に半分のサイズのラスタ画像を得る事が出来る。
【0037】
例えば前述の例において、600dpiで蓄積されていた場合の縮小送信時を説明する。解像度として400dpiなどサンプリングされている300dpiより大きい解像度が指定されている場合にはパターンフラグも含めて圧縮されているデータを一度展開し公知の変倍を用いて送信する。逆に300dpiより小さい送信解像度指定がされている場合には第1種類属性付き画像データ格納部のデータのみ用い、指定の解像度へ変倍処理を行うといったように必要な画像サイズに応じて切り替えながらデータの読み込みを行う。
【0038】
[展開処理]
次に、圧縮部と対になる展開部222、232に関して説明する。展開部では前述したようなパターンフラグ、画素データに基づいて、元のラスタ画像データへ戻す処理(復号化処理)を行う。メモリにおいて、図8のように配置されている圧縮データのパターンフラグ書き込み先頭アドレス、第1種類書き込み先頭アドレス、及び第2、3、4種類書き込み先頭アドレスの3つのアドレスをDMACへ指定する。DMACはその3つのアドレスからデータを読み出し、展開部へ入力する。
【0039】
図13は、展開部が実行する展開処理を示すフローチャートである。展開する圧縮データに対して、最初の2×2画素ブロックから順に展開対象として、S1301〜S1311の処理が繰り返し行われる。復号化処理が開始されると、S1301では、第1種類属性付き画像データ格納部から、第1種類の属性付き画像データを読み出す。最初は、最初の2×2画素ブロックの左上の画素に配置される画像データが読み出される。
【0040】
S1302では、パターンフラグ格納部から4bit分のパターンフラグが読み出される。S1303では、S1302で読み出したパターンフラグが「F」であるか判定する。すなわち、単一属性のブロックであるかどうかを判断している。S1303でパターンフラグが「F」でない(単一属性でない)と判断した場合(S1303にてNO)、S1303で読み出したパターンフラグは配置パターンを示すため、当該パターンフラグに対して予め定義されている配置パターンに基づき、当該ブロック内に存在するデータの種類数を求める(S1304)。ここで、種類数が2〜4であれば、その種類数分のデータを第2〜4種類データ格納部から属性付き画像データを読み出す(S1305)。なお、種類数が1であれば、第2〜4種類のデータは無いので、S1305における読み出し処理は省略される。そして、パターンフラグに対して予め定義されている配置パターンに基づいて、S1301とS1305で読み出した属性付き画像データを展開対象のブロック内に配置(展開)する(S1306)。その後、S1311へ進む。
【0041】
一方、S1303でパターンフラグが「F」である(単一属性である)と判断した場合(S1303にてYES)、パターンフラグ格納部から次の4bit分のパターンフラグを読み出す(S1307)。S1307で取得したパターンフラグに対して予め定義されている配置パターンに基づき、当該ブロック内に存在するデータの種類数を求める(S1308)。ここで種類数が2〜4であれば、その種類数分のデータを第2〜4種類データ格納部から(属性無しの)画像データを読み出す(S1309)。そして、パターンフラグに対して予め定義されている配置パターンに基づいて、S1301で読み出した第1種類の属性付き画像データとS1309で読み出した属性無しの画像データとを展開対象のブロック内に配置する(S1310)。このとき、属性データに関しては、S1301で読み出した第1種類の属性付き画像データに付与されている属性データを、当該ブロック内の全画素に展開する。そして、S1311へ進む。
【0042】
S1311では、次のブロックがあるか判定し、次の展開対象ブロックがある場合は(S1311にてYES)、S1301に戻り、全てのブロックの展開が終了したと判定した場合は(S1311にてNO)、展開処理を終了する。
【0043】
なお、解像度が元画像の半分の画像を必要とする場合、展開部では、前述したように、パターンフラグと第2〜4種類のデータを必要としない。従って、DMACには第1種類書き込み先頭アドレスのみ指定し、メモリからは第1種類のデータのみ読み込みを行い、画像を構成する。これによりメモリバスの帯域を節約することが可能になる。
【0044】
なお本実施形態では左上の画素の値を第1種類のデータとしたが、これに限るものではなく、その他の画素(例えば右下の画素)の値を第1種類のデータとするように配置パターンを定義してもよい。また、入力された画像を2x2画素(計4個の画素)のブロックを単位として分割していたが、これに限るものではなく、M×N画素(計L個の画素)のブロックごとに分割してもよい。もちろんブロックのサイズを変更する場合には、パターンフラグを扱うビット数も4ビット長から変更になることはいうまでも無い。また、色データとしてRGB各色8bitのデータを例として説明していたが、CMYKの色空間を取るものや、GRAYスケールのデータ、また8bit以外のデータ長をとるものでも良い。
【0045】
<第二の実施形態>
第一の実施形態では属性データが1種類のとき識別フラグ「F」を付加したに対し、第二の実施形態では属性データが複数種類のとき識別フラグ「F」を付加する実施形態を説明する。
【0046】
図9に実施形態における画像圧縮フローを示す。図9においてS530〜S535の出力処理以外は第一の実施形態にて示した図5と同一である。第二の実施形態においては、S522〜S524の各分岐処理において属性データが複数種類あると判定した場合に識別フラグ「F」を付加する。第二の実施形態では、これを複数属性識別フラグ「F」と呼ぶこととする。一方、ブロック内の属性データが1種類のときは付加しない。これは第一の実施形態における属性識別フラグ「F」の付加基準が逆の関係となっている。入力データと出力データとの関係を図10に示す。
【0047】
圧縮符号としては、各ブロック内に存在する属性データが1種類であるかそうでないかを識別できればよいため、第一、第二の実施形態のいずれの方式でも成立する。いずれの実施形態を選択するかは属性データが1種類であるブロックと複数種類であるブロックとどちらの頻度が高いかによって選ぶとよい。一般に、発生頻度の高い事象には短い符号を割り当てると符号量が小さくなるため、各ブロックの属性データが1種類である確率が高ければ第二の実施形態の方式が好ましい。すなわち、各ブロックの属性データが1種類のときは4bitの識別フラグ「F」が付加されないため、その分短い符号となる。
【0048】
<第三の実施形態>
上述した第1〜2実施形態では、2×2画素ブロックが取り得る配置パターンが15種類であるのに対して4bit(16個)のフラグを割り当てるので、未使用となる1個のフラグ(F)を、属性が単一か複数かを判別するためのフラグとして有効に活用している。すなわち、パターンフラグのビット長は4bitに抑えたまま、配置パターン以外の情報(属性が単一か複数かの情報)に利用している。
【0049】
一方、入力された画像データによっては、連続する2×2画素ブロック単位で見た場合、配置パターンおよびデータ種類(色データおよび属性データの種類)が同じブロックが連続する場合がある。そこで、第3の実施形態では、同一ブロックの連続数を符合化する技術と組み合わせてさらに圧縮率を向上させる実施形態を説明する。
【0050】
まず図12を用いてパターンフラグの割り当て方を説明する。第二の実施形態におけるパターンフラグの割り当て方法を説明する図10と比較されたい。相違点は第二の実施形態で複数属性識別フラグのために1つの「F」を付加していたのに対して第三の実施形態では2回の連続する「F」で代替していることである。以降上記フラグを複数属性識別フラグ「F、F」と称する。
【0051】
本実施形態においては、単一の「F」の後に0乃至Eの値が続く場合、当該続く数値(0乃至E)は、(直前のブロックと同じ配置のブロックが繰り返される回数n)−1を示すこととする。したがって、繰り返し回数nは、(単一の「F」の後の数値(0乃至E)+1)回となる。例えば、パターンフラグが単一の「F」の後に「0」のフラグが続く場合、直前のブロックの画素配置と同じ画素配置のブロックが1回繰り返し配置されることを示すことになる。以下、繰り返される回数をnとして上記フラグをリピートフラグ「F、n−1」と称する。
【0052】
なお、同じ画素配置のブロックが連続する場合でも、第1種類の属性付き画像データは全てのブロックで出力するものとする。すなわち、同じ画素配置のブロックが繰り返される回数(n回)と同じ回数の第1種類の属性付き画像データが繰り返し回数分出力され、第1種類属性付き画像データ格納部に格納される。リピートフラグがあれば、前のブロックを参照することで第1種類の画像データも復元することは可能である。しかし、上述したように、第1種類の属性付き画像データに関しては全てのブロックについて格納した理由は、第1種類属性付き画像データ格納部に格納されている画像データをそのまま低解像度のサンプリング画像として扱える利点を優先したためである。ただし、第2〜4種類のデータに関しては、ブロック内に存在したとしても出力されないことになるので、圧縮率は向上する。なお、圧縮率を優先するのであれば、リピートフラグ「F、n−1」のみを付加し、第1種類の属性付き画像データ及び第2〜4種類のデータの両方を省略するように構成することも可能である。
【0053】
[処理フロー]
図11を用いてフローを説明する。まず属性付き画像データが入力される(S1101)。その後、入力された属性付き画像データから分割された最初の2x2画素ブロックが入力される(S1102)。S502以降最初のブロックの圧縮処理がなされデータが出力される。ここで、S502からS524までの処理及び分岐は図9の対応ステップと同じであるので説明を省略する。S1111からS1117までの出力処理に関しても図9のS506及びS530からS535までと類似である。ここでの相違点は、属性データが1種類でない(すなわち複数種類である)場合に1回の「F」の代わりに2回の「F」を付与して出力している点である。S1111乃至S1117のいずれかの処理により、圧縮データとしてパターンフラグとデータを出力して各格納部に格納させた後、当該2x2画素ブロックの属性付き画像データを後の比較のために圧縮部内のバッファに一時記憶する(S1119)。ここで記憶されるブロック情報は、S1102にて入力された情報と同一である。
【0054】
次にS1118にてすべてのブロックに対して処理が完了したかを確認する。完了した場合は、本処理フローを終了する(S1120)。すべてのブロックに対し、処理が完了していない場合(S1118)には、S1103へ進む。圧縮部はブロックの繰り返し数を計数するカウンタを保持し、次のブロック処理へ移る前に該繰り返しカウンタnを初期化(n=0)する(S1103)。次に入力された属性付き画像データにおける未処理の次の2x2画素ブロックを入力する(S1104)。S1119にて記憶されたブロックとS1104にて入力されたブロックとが一致するかの同一判定を行う(S1105)。比較したブロックが一致しない場合(S1105にてNO)は、nの値が判定される(S1107)。n=0であれば(S1107にてYES)、S502へ移行し上述の処理が繰り返される。これにより、第2判断手段を実現する。
【0055】
S1105にて比較したブロックが一致した場合(S1105にてYES)は、nに1がインクリメントされる(S1106)。その後、nの値を判定する(SS1108)。n=15で無ければ(S1108にてNO)、S1104へ戻り、次の未処理の2x2画素ブロックが入力される。ここで、同一のブロックが続く場合を考える。同一のブロックが連続することにより、カウンタの値であるnが増加する。ここで、本実施形態においてリピートフラグとして表せるのはnが15以下であるため、S1108にてn=15が検出されたときはS1110の出力処理へ移行する。S1110では直前のブロックが15回繰り返されたことを意味するリピートフラグ「F、E」(16進数表記)と前ブロックの第1種類にあたる画素のみの属性付き画像データが15回繰り返して出力される。このパスを通るときは同一ブロックがまだ連続中なのでバッファに記録された情報は更新せずS1118を経てS1103へ戻る。
【0056】
次にS1104からS1108までの処理を繰り返している間にS1119にて記憶したブロックと一致しないブロックが現れ、且つ繰り返しカウンタnが0でなかった場合(S1105にてNO、かつS1107にてNO)を説明する。例えばn=3のときにS1107へ分岐した場合はさらにS1109へ移行する。そして、上記記憶されたブロックと一致しないブロックが入力されるまでに繰り返されていたブロック数分の処理が実行される(S1109)。すなわち、n=3であれば、リピートフラグ「F、2」の生成出力とバッファに保持された第1種類の属性付き画像データが3回分生成出力されて、各格納部に格納される。S1109は、S1110にて出力される回数とリピートフラグの値が異なる。記憶されているブロックと一致しない新しく入力されたブロックは、S502以降の処理により圧縮処理され、フラグとデータが出力される。
【0057】
以上述べたフローを入力された属性付き画像全体に対して繰り返す(S1118)ことにより圧縮処理が終了する(S1120)。
【0058】
本実施形態ではフラグ「F」を、属性の種類数を識別することとブロックの繰り返しを識別することに用いたが、他の実施形態であってもよい。また本実施形態では第二の実施形態を元にブロックの連続性に着目した圧縮技術を付加したが、第一の実施形態をもとに実装しても良い。
【0059】
以上により、比較的単純な圧縮方式でメモリ容量やメモリバス帯域の節約が可能になるだけでなく、画素単位での画像処理や縮小変倍の処理負荷も削減することが可能になる。
【0060】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、画像データとその属性データとを所定のブロック単位に圧縮する技術とブロック単位に圧縮された画像の画像処理や復元処理を行う技術に関する。
【背景技術】
【0002】
画像の高解像度化が進むにつれて、画像処理を必要とする画素数が飛躍的に増え、その処理負荷が増大しているという課題がある。この課題に対し、扱う画像データに対する圧縮処理を適用している。例えば、カラー静止画像の圧縮方式には、離散コサイン変換を利用したJPEG方式やWavelet変換を利用した方式が多く使われている。この種の符号化方式は、一般的に画像を所定のブロック(例えば8×8や16×16画素単位)に符号化し、離散コサイン変換、量子化及びエントロピー符号化を行うことで高い圧縮効率を達成している。この種の符号化方式は、可変長符号化方式であるので、符号化対象の画像毎に符号量が変化するものである。
【0003】
上述した画像圧縮を用いた場合、各画素データを変換するには、圧縮データに対する復号処理が必要になってくる。つまり、圧縮データのままで画像処理を行うことはできず、必ず復号処理が必要になる。そのため、高解像度データ全ての画素に対して画素単位に処理を行う必要が生じ、処理時間の増大を招く。
【0004】
また、圧縮処理を行う技術としては、画素データとその連続数を記憶する公知のランレングス圧縮方式や、特許文献1のように、ブロック毎に2色以下に減色して2色分の色データとその2色の配置形状を出力することでデータ量を圧縮する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−271046号
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1においては、ブロック内を2色化し、その2色の配置に関する形状情報と2色の色情報を記憶していた。これに対し、さらなる高画質化、処理高速化を図るため、本出願人は、特願2009−221444号において、2色より多いデータ種類数を持つブロックの画質を落とさずに圧縮する技術を提案している。特願2009−221444号の提案では、まず、画像データをブロック(例えば2×2画素サイズのブロック)毎に分割し、ブロック内の各画素の色データを比較する。これにより、注目ブロックに含まれる色データの配置パターン情報と、着目ブロックに含まれる色数分の色データ情報とを出力する。そして、出力された色データ情報のうち、ブロックにおける予め決められた位置の画素に対応する第1の色データ情報(例えば2×2画素サイズのブロックにおける左上の画素の色データ情報)と、それ以外の色データ情報(第2〜4の色データ情報)とに分けてメモリ領域に格納する。すなわち、各ブロックから得られる配置パターン情報と第1の色データ情報とそれ以外の色データ情報とを、それぞれ異なるメモリ領域にまとめて格納することを特徴としている。各ブロック内には同色の画素が存在する場合が多いので、メモリ領域に格納されたデータは、元画像のデータよりもデータサイズが小さい圧縮データとなる。また、第1の色データ情報は、各ブロックの予め決められた位置の画素の画素値であるので、連続メモリ領域に格納されている第1の色データ情報は、元画像を単純間引き処理して生成される低解像度画像に等しい。したがって、低解像度画像データも容易に得ることができる。また、各ブロックの第1の色データ情報からなる低解像度画像データを連続メモリ領域に置くことで、符号化データのままでの処理を容易化し、復号化することなく低解像度画像に対する画素処理も可能となる。
【0007】
一方、画像データには、各画素に属性が付加された属性付き画像データも存在する。本発明では、このような属性付き画像データを扱う場合に、効率よく圧縮できるようにする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の画像処理装置は、各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割手段と、前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段と、2〜L種類(L=M×N)のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか否かを判断する第1判断手段と、2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックが単一属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力手段とを有する。
【0009】
または、上記課題を解決するために、本発明の画像処理装置は、各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロック毎に分割する分割手段と、前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段と、2〜L種類(L=M×N)のデータ種類で構成されるブロックに関して、当該ブロックに含まれる画素の属性データの種類が単一であるか否かを判断する第1判断手段と、2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックが複数属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力手段とを有する。
【発明の効果】
【0010】
本発明によれば、属性付き画像データを圧縮して保持する場合に保持するデータ量の削減が可能となる。
【図面の簡単な説明】
【0011】
【図1】MFPシステムの概要を示した図。
【図2】コントローラの概要を示した図。
【図3】画像をブロック分割した際にそのブロックのパターンを列挙した図。
【図4】ブロックのパターンとその識別子を列挙した図。
【図5】第一の実施形態に係る画像圧縮フローを示した図。
【図6】ブロックのパターンをフラグに変換している様子を示した図。
【図7】第一の実施形態に係る圧縮処理に対するに入力と出力の関係を示した図。
【図8】第一の実施形態に係る圧縮データのメモリ空間上でのレイアウトを示した図。
【図9】第二の実施形態に係る画像圧縮フローを示した図。
【図10】第二の実施形態に係る圧縮処理に対するに入力と出力の関係を示した図。
【図11】第三の実施形態に係る画像圧縮フローを示した図。
【図12】第三の実施形態に係る圧縮処理に対するに入力と出力の関係を示した図。
【図13】本発明に係る展開処理に関する処理フローを示した図。
【発明を実施するための形態】
【0012】
<第一の実施形態>
図1に、本発明の実施形態の画像処理装置であり、スキャン、プリント、コピーを行うデジタル複合機システム(以降、MFPと称する)の全体構成図を示す。コントローラ101は、画像入力デバイスであるスキャナ102や画像出力デバイスであるプリンタ103と接続する。また、一方ではLANや公衆回線(WAN)等のネットワーク104と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行う。CPU(Central Processing Unit)105はシステム全体を制御するプロセッサである。メモリ106は、CPU105が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。HDD記憶部107はハードディスクドライブであり、システムソフトウェア、画像データ等のデータ類を格納する。
【0013】
ここで本発明において扱う属性データについて説明しておく。画像データに含まれる画素単位で、その画素の属性を付与する場合がある。ここで、付与可能な属性の種類には、例えば文字、写真、グラフィックス、背景、グレー補償などが挙げられる。こういった属性が付与されている画像データに対しては、それぞれの属性に適した画像処理を切り替えながら行うことで、最適な画像データを得る事が可能となる。例えば文字の属性が付与されている画素に対しては、可読性を高くするためにコントラストを高くするための処理を行い、また写真の属性が付いている画素に対しては、階調性を豊かにするための処理を行うなどが考えられる。以後、属性の付加された画像データを“属性付き画像データ”、属性が付加されていない画像データを単に“画像データ”と称する。
【0014】
図2を用いて、図1のコントローラ部の動作に関して詳細に説明する。ここでは、スキャンデータを読み込む場合を説明する。スキャナ102からRGB(RED、GREEN、BLUE)3色の読み取り画像データを受け取ったコントローラ部では、まずスキャナ用画像処理部201にてシェーディング処理やフィルタ処理等の画像処理を行った後、属性データを付加する。そして、圧縮部202にて属性付き画像データの画像圧縮処理を行う。その圧縮データをDMAC(Direct Memory Access Controller)203を介してメモリ106へ格納する。
【0015】
スキャンデータをプリントする場合は、メモリ106に格納されている圧縮データを、DMAC211を介して色処理部212へ入力しCMYK(CYAN、MAGENTA、YELLOW、BLACK)色空間へ変換する。上記圧縮データからは属性データも復元される。その後、それらCMYKの値に対してその属性に最適な濃度調整、プリンタガンマ補正等の調整の色処理を行った後、DMAC211を介して再度、メモリ106へ格納する。その後プリント用の画像処理を行うため、DMAC221を介して、メモリ106に格納されている圧縮データを読み込み、展開部222にて属性付きラスタ画像データへ展開する。ラスタのCMYK画像データをプリント用画像処理部223に入力し、そこで画像データに付与された属性に最適なディザ法や誤差拡散法による面積階調処理を行い、プリンタ103へ出力する。
【0016】
スキャンデータをネットワークへ送信する場合には、メモリ106に格納されている圧縮データを、DMAC211を介して色処理部212へ入力し色変換を行う。具体的には、属性に最適なディスプレイガンマ調整や用紙地色調整等を行った後にYCbCr(輝度、BLUE色差、RED色差)色空間へ変換する。その後再度、DMAC211を介してメモリ106へ格納する。その後、送信用の画像処理を行うために、DMAC231を介して、メモリ106に格納されている圧縮データを読み込み、展開部232にて属性付きラスタ画像データへ展開する。ラスタのYCbCr画像データに対して送信処理部233ではカラー画像送信であればJPEG圧縮処理を行う。また、モノクロ2値画像送信であればYデータに対して2値化を行い、JBIG圧縮等を行う。その後、ネットワーク104へ出力する。
【0017】
スキャンデータを保存する場合には、メモリ106に格納されている圧縮データをディスクスプール高圧縮/展開部242へDMAC241を介して入力する。ディスクスプール高圧縮/展開部242では、HDDの書き込みスピードがメモリに対して遅いため、さらに高圧縮のJPEG圧縮を施す。その後ディスクアクセスコントローラ243を介してHDD記憶部107へ圧縮データを保存する。保存されているデータを再度メモリへ展開する場合はその逆処理を行う。
【0018】
PDLのデータをメモリへ書き込む場合を説明する。図2では図示していないが、図1にてネットワークから送られてきたPDLデータを、CPU105を用いて解釈し、メモリ106へディスプレイリストを出力する。その後、メモリ106に格納されているディスプレイリストをレンダリング部251で属性付きRGB画像データへレンダリングを行い、圧縮部252にて画像圧縮処理を行う。その圧縮データを、DMAC253を介してメモリ106へ格納する。PDL画像データに対し、プリント、ネットワークへ送信、保存する等の処理を行う場合はスキャンデータと同様の処理を行うことで実現する事が可能になる。
【0019】
[圧縮処理]
以降では本発明の特徴となる属性付き画像データの圧縮部の詳細に関して説明を行う。まずページ単位の属性付き画像データを所定の画素数(本実施形態では、2x2画素)のブロックごとに分割し、そのブロックを順に着目ブロックとしてデータの圧縮を行う。ここで、本実施形態における属性付き画像データの各画素は、R(Red)、G(Green)、B(Blue)の各8bitと属性データ8bitとから構成されるものとする。
【0020】
処理の説明の前に、2x2画素のブロック(4画素データ)におけるデータ種類の配置パターンを考える。ここで、各画素のデータ種類は、R、G、Bと属性データの計32bitで表されるものとし、各画素を32bit単位で比較し、一致すれば同じデータ種類であると判断する。ブロック内の画素数が4画素なので、そこに占めるデータ種類数は1〜4種類である。それら1〜4種類のパターンの取りうる組み合わせの場合の数を、図3を用いて説明する。なお、本明細書では、出力データにおける1〜4種類のデータ種類の情報を、それぞれ順に第1種類、第2種類、第3種類、第4種類の(属性付き)画像データと呼ぶ。
【0021】
まずブロック内が1種類の場合、4画素が同一データ種類で構成されている事になるので、その組み合わせは1通りである。次にブロック内が2種類の場合を考える。2種類が4画素内へレイアウトされる場合の数は、予め定義された位置の画素(ここでは左上の画素とする)の属性付き画像データの種類を第1種類、第1種類と異なる属性付き画像データの種類を第2種類とする。この場合、左上以外の残りの3画素へ第1種類もしくは第2種類が入るので、4画素同種類の場合を除くと、全部で7通りの組み合わせが考えられる。
【0022】
次にブロック内が3種類のデータで構成される場合を考える。3種類のデータが4画素内へレイアウトされる場合の数は、3種類のうち1種類だけ2度使われる場合の数と言い換える事が可能で、4画素の座標のうち、2画素が同じ種類になる場合の数を求めればよい。つまり3種類の場合の数は、4つの座標から2つの座標を取る組み合わせとなり、全部で6通りとなる。最後にブロック内が4種類のデータで構成される場合は1通りしか存在しない。
【0023】
これら1〜4種類すべての場合の数を合計すると全部で15通りのパターンが考えられる。これらすべてのパターンを識別するためにフラグを付与する事を考えると、データ量としては4bitが必要となる。図示すると図4のようになり、以降このフラグをパターンフラグと称する。このパターンフラグにより、ブロックに含まれるデータ種類の数とその配置パターンを特定することが可能となる。また、ここでは、4bitのパターンフラグとして「F」は使用されていないことを注意されたい。
【0024】
本発明は、2×2画素のブロック内の属性データが1種類か複数種類かで処理を変更するように構成している。ここで、属性データのみに着目して属性データの取りうる種類数に言及すると、図3に示すように属性付き画像データの取りうる種類数以下となる。上記図4のパターンフラグにおいて割り当てられていなかった4bitの識別フラグ「F」は、本実施形態において4画素内の属性付き画像データに含まれる色数が2種類以上で、かつ属性データの種類が1種類のときに追加付与されるものとする。以降、このパターンフラグ「F」を単一属性識別フラグ「F」と称する。
【0025】
[処理フロー]
上記のように2x2画素の取りうる組み合わせを踏まえて、圧縮部202、252にて行われる処理を図5のフローを用いて説明する。入力としては、先述のとおりRGBそれぞれ8bitの256階調を有し、属性データは8bitである。またデータとしては8bitデータの点順次で1画素あたり32bitの属性付き画像データを有するとして説明を行う。
【0026】
まず、属性付き画像データを2×2画素のブロックごとに分割し、当該分割された2x2画素のブロックを順に入力する(S501)。入力されたブロック内全ての2画素の組み合わせそれぞれに対して、32bitで表現される各画素の属性付き画像データの値(色データ及び属性データ)のコンペア(比較)を取る(S502)。このコンペアを取った結果、全ビット一致していた場合には1を出力し、不一致の場合には0を出力する。図6に示すように、2x2画素内の左上から右上、左下、右下の順に座標1、2、3、4とすると、2画素の組は、1−2、1−3、1−4、2−3、2−4、3−4の全部で6通りある。そのため、6回コンペアを取る必要があり、結果は6bit出力される。例えば全画素同一の値を有している(属性付き画像データの値(色データと属性データ)が全画素同じ)場合には、全てのコンペア結果が1を出力し、逆に4画素全てバラバラの値を有している(属性付き画像データの値(色データと属性データ)が全画素異なる)場合には、全てのコンペア結果が0を出力する。前述の通り、2×2画素からなるブロックで出現しうるパターン数は15通りなので、図6に示すように、その6bitのコンペア結果に対して配置パターンを示す4bitのパターンフラグへ変換する(S503)。
【0027】
4bitのパターンフラグへ変換したら続いて、4画素内で出現したデータ種類数をパターンフラグから判断する(S504)。図6に示したように、4bitのパターンフラグ(または6bitのコンペア結果)に対して、ブロック内での各値(各データ種類)の配置を示すパターンが対応付けられている。そのため、各ブロックにおけるデータ種類の数と、そのデータ種類(属性付き画像データ:すなわち、RGB色データ及び属性データ)とを抽出することができる。なお、本実施形態では、全てのパターンにおいて、左上の画素の値が第1種類のデータ(1番目のデータ)となるように定義し、更に、各パターンにおいて、第2種類以降のデータがどこに配置されているデータであるかも予め定義している。したがって、配置パターンを示すパターンフラグに基づいて、左上の画素のデータ種類(左上画素の色データ及び属性データの値)を第1種類のデータとした場合、第2種類以降のデータがどの位置にあるか求める事が出来る。図7を参照しながら説明を行う。例えば4画素内が1種類で構成されていることが確定した場合(S505にてYES)には、左上の画素のデータ種類(左上画素の色データ及び属性データの値)を第1種類のデータとして抽出する。ここでは、第2種類以降のデータは存在しないので、配置パターンを示すパターンフラグ(4bit)と第1種類のデータ(32bit)とを出力する(S506)。
【0028】
また本実施形態では、4画素が2種類以上のデータで構成されている場合、4画素全ての属性データが同じであるかの判定を行い、その判定結果にしたがって出力するデータを変更する。すなわち、4画素が2種類のデータで構成されていることが確定した場合(S507にてYES)には、さらに当該4画素の属性が1種類かどうか(同一属性かどうか)を判定する(S522)。当該ブロック内の画素の属性が複数種類あると判定した場合(S522にてNO)、その第2種類の属性付き画像データが存在する画素の位置座標をパターンフラグに基づき決定する。そして、左上の画素のデータ種類(左上画素の色データ及び属性データの値)を第1種類のデータとして抽出し、更に、前記決定された位置の画素から第2種類の属性付き画像データ(色データと属性データ)を抽出する。そして、配置パターンを示すパターンフラグ4bitと第1種類の属性付き画像データ32bitと第2種類の属性付き画像データ32bitとを出力する(S508)。一方、当該ブロック内の属性が1種類であると判定した場合(S522にてYES)、単一属性識別フラグ「F」4bitと配置パターンを示すパターンフラグ4bitとをパターンフラグとして出力する。更に、第1種類の属性付き画像データ32bitと、(属性データ無しで色データのみの)第2種類の画像データ24bitとを出力する(S526)。ここで、単一属性識別フラグ「F」が配置パターンを示すパターンフラグと一緒に出力されることにより、ブロックに含まれる全画素の属性が共通であることが分かるようになる。したがって、データ展開時は、第1種類の属性付き画像データに含まれる属性データを、その他のデータ種類に対する属性データとして流用することができるようになる。すなわち、本発明では、単一属性識別フラグ「F」が付与されている場合は、第2種類のデータ種類については、属性データを付与しないで出力するように構成している。このように構成することで、属性データの冗長な出力が抑制される。
【0029】
4画素内が3種類のデータで構成されていることが確定した場合(S509にてYES)には、さらに当該4画素の属性が1種類かどうか(同一かどうか)判定する(S523)。属性が複数種類(2〜L種類、本実施形態ではL=4)あると判定した場合は、第2種類と第3種類の属性付き画像データが存在する画素の位置をS503で求めたパターンフラグに基づいて決定する。当該決定された位置に基づいて第2種類と第3種類の属性付き画像データを抽出する。そして、配置パターンを示すパターンフラグ4bit、第1種類の属性付き画像データ32bit、第2種類の属性付き画像データ32bit、及び第3種類の属性付き画像データ32bitを出力する(S510)。一方、属性が1種類であると判定した場合(S523にてYES)、単一属性識別フラグ「F」(4bit)と配置パターンを示すパターンフラグ4bitとをパターンフラグとして出力する。続いて第1種類の属性付き画像データ32bitと、(属性データ無しの)第2種類の画像データ24bitと(属性データ無しの)第3種類の画像データ24bitとを出力する(S527)。ここで、単一属性識別フラグ「F」が付与されている場合は、第2〜3種類のデータ種類については、属性データを付与しないで出力するようにすることで、冗長な出力が抑制される。
【0030】
4画素内が4種類のデータで構成されていることが確定した場合(S509にてNO)には、さらに当該4画素の属性が1種類かどうか(単一かどうか)判定する(S524)。これにより、第1判断手段を実現する。属性が複数種類であると判定した場合は(S524にてNO)、その第2〜4種類の属性付き画像データが存在する画素の位置座標をパターンフラグより決定する。そして、配置パターンを示すパターンフラグ4bit、第1種類の属性付き画像データ32bit、第2種類の属性付き画像データ32bit、第3種類の属性付き画像データ32bit、及び第4種類の属性付き画像データ32bitを出力する(S511)。一方、属性が1種類であると判定した場合は(S524にてYES)、単一属性識別フラグ「F」4bitと配置パターンを示すパターンフラグ4bitとをパターンフラグとして出力する。続いて第1種類の属性付き画像データ32bit、(属性データ無しの)第2種類の画像データ24bit、(属性データ無しの)第3種類の画像データ24bit、(属性データ無しの)第4種類の画像データ24bitを出力する(S528)。ここで、単一属性識別フラグ「F」が付与されている場合は、第2〜4種類のデータ種類については、属性データを付与しないで出力するようにすることで、冗長な出力が抑制される。入力された属性付き画像データを2×2画素のブロックごとに分割し、当該分割された2x2画素のブロックを順に処理対象として上述した処理(S501〜S528)を繰り返し行うことにより、圧縮データを得る。
【0031】
以上のように、2x2画素のブロックにおける128bit(4画素×32bit)の入力データを、ブロック内の属性データが単一でない場合は、当該ブロック内の配置パターンを示すパターンフラグ(4bit)と、当該ブロック内に存在するデータ種類数分の属性付き画像データ(32〜128bit)に変換して出力する。また、ブロック内の属性データが単一(1種類)であれば、第2〜4種類の画像データについては属性データを出力せず、単一属性識別フラグ「F」を付加して識別できるようにする。すなわち、ブロック内の属性データが単一(1種類)であれば、単一属性識別フラグ(4bit)のパターンフラグと、配置パターンを示すパターンフラグ(4bit)と、第1種類の属性付き画像データ(32bit)と、属性データ無しの第2〜4種類の画像データ(24〜72bit)とに変換して出力する。
【0032】
2x2画素ブロック内の各画素は、同一の値を有する(すなわち、RGB色データと属性データが同じ)場合が多く、更に、RGBデータが異なっても属性データは同じであるという場合も多い。したがって、入力画像全体でみると、上述したような処理を行うことで、データ圧縮が可能になる。
【0033】
[データ構造]
上述したように、各ブロックに関して順次出力される、パターンフラグ(単一属性識別フラグと配置パターンを示すパターンフラグ)と、第1種類の属性付き画像データと、第2〜4種類のデータ(属性付き画像データまたは属性無し画像データ)とを、DMACを介してメモリに書き込む。その時DMACではパターンフラグと第1種類の属性付き画像データと、第2〜4種類のデータの書き込み位置を変える。DMACにはパターンフラグ書き込みのためのメモリ先頭アドレスと、第1種類の属性付き画像データに対する書き込みのためのメモリ先頭アドレスと、第2〜種類のデータに対する書き込みのためのメモリ先頭アドレスとの3つのアドレスを指定する。図8にその例を図示する。パターンフラグ格納部には、2×2画素ブロックのパターンフラグ(単一属性識別フラグと配置パターンを示すパターンフラグ)が、ブロックの並び順にしたがって順番に格納される。このとき、単一属性であると判定されたブロックに関しては、単一属性識別フラグと配置パターンを示すフラグとが格納され、複数の属性があると判定されたブロックにおいては、配置パターンを示すフラグのみが格納されることになる。第1種類属性付き画像データ格納部(第1種類データ格納部)に関しては、2×2画素ブロックの予め決められた位置(例えば左上)の画素の属性付き画像データが、ピクセル単位で量子化や符号化されることなく、ブロックの並び順に従って順に格納されている。また、第2〜4種類データ格納部(第2〜L種類データ格納部)に関しては、2×2画素ブロック内の第2〜4種類のデータが格納される。このとき、単一属性であると判定されたブロックに関しては、第2〜4種類の(属性データ無し)画像データが格納され、複数の属性が存在すると判定されたブロックに関しては、第2〜4種類の属性付き画像データが格納される。
【0034】
なお、第1種類属性付き画像データ格納部に格納されているデータは、元の入力画像に対し半分の解像度の画像が格納されているのに等しい。従って、高解像度の画像が必要ないような処理を行う場合は、第1種類属性付き画像データ格納部に格納されているデータを利用すればよい。このように、第1種類属性付き画像データ格納部に格納されているデータを利用する場合、1画素入力・1画素出力で完結する処理、例えばLUTを用いた色データや属性データの変換や、ガンマ補正処理、行列演算を用いた種類空間変換処理等は、パターンフラグを参照する必要はない。従って、第1種類属性付き画像データ格納部に格納されているデータに対して直接処理を行うことが可能になる。図2に示している色処理部212ではメモリ106上の第1色書き込み先頭アドレス以降の画素データをDMAC211経由で読み込み、画素単位での処理後にメモリ106へ書き戻す。この時何らかの画素単位処理によって画素のビット数が変わらない場合には、メモリ106の同じ場所へ上書きすることでメモリの節約も可能である。
【0035】
このように圧縮データを直接用いることで、メモリバス上の転送効率が向上し、かつオリジナルの画像に対して少ない画素数のデータに対して処理することになるので、高速処理が可能になる。
【0036】
すなわち、図8のように画像データを離散的にメモリ上へ格納することで、第1種類の属性付き画像データ格納部に限ってみると、画像を2x2単位に左上の座標の画素をサンプリングした画像結果がメモリ上に連続して存在することになる。本実施形態で説明しているMFPにおいては、蓄積したPDL画像データやスキャンの画像データのプレビュー表示や、前述したネットワーク送信などの機能も有している。例えばプリント解像度が600dpiであったとしてもプレビューや送信時にそこまでの解像度は通常必要とされず、300dpiやそれ以下で十分な場合が多い。こういった縮小データを得る必要がある場合は、パターンフラグや第2〜4種類のデータを捨て、第1種類の属性付き画像データのみ扱うことで、簡単に半分のサイズのラスタ画像を得る事が出来る。
【0037】
例えば前述の例において、600dpiで蓄積されていた場合の縮小送信時を説明する。解像度として400dpiなどサンプリングされている300dpiより大きい解像度が指定されている場合にはパターンフラグも含めて圧縮されているデータを一度展開し公知の変倍を用いて送信する。逆に300dpiより小さい送信解像度指定がされている場合には第1種類属性付き画像データ格納部のデータのみ用い、指定の解像度へ変倍処理を行うといったように必要な画像サイズに応じて切り替えながらデータの読み込みを行う。
【0038】
[展開処理]
次に、圧縮部と対になる展開部222、232に関して説明する。展開部では前述したようなパターンフラグ、画素データに基づいて、元のラスタ画像データへ戻す処理(復号化処理)を行う。メモリにおいて、図8のように配置されている圧縮データのパターンフラグ書き込み先頭アドレス、第1種類書き込み先頭アドレス、及び第2、3、4種類書き込み先頭アドレスの3つのアドレスをDMACへ指定する。DMACはその3つのアドレスからデータを読み出し、展開部へ入力する。
【0039】
図13は、展開部が実行する展開処理を示すフローチャートである。展開する圧縮データに対して、最初の2×2画素ブロックから順に展開対象として、S1301〜S1311の処理が繰り返し行われる。復号化処理が開始されると、S1301では、第1種類属性付き画像データ格納部から、第1種類の属性付き画像データを読み出す。最初は、最初の2×2画素ブロックの左上の画素に配置される画像データが読み出される。
【0040】
S1302では、パターンフラグ格納部から4bit分のパターンフラグが読み出される。S1303では、S1302で読み出したパターンフラグが「F」であるか判定する。すなわち、単一属性のブロックであるかどうかを判断している。S1303でパターンフラグが「F」でない(単一属性でない)と判断した場合(S1303にてNO)、S1303で読み出したパターンフラグは配置パターンを示すため、当該パターンフラグに対して予め定義されている配置パターンに基づき、当該ブロック内に存在するデータの種類数を求める(S1304)。ここで、種類数が2〜4であれば、その種類数分のデータを第2〜4種類データ格納部から属性付き画像データを読み出す(S1305)。なお、種類数が1であれば、第2〜4種類のデータは無いので、S1305における読み出し処理は省略される。そして、パターンフラグに対して予め定義されている配置パターンに基づいて、S1301とS1305で読み出した属性付き画像データを展開対象のブロック内に配置(展開)する(S1306)。その後、S1311へ進む。
【0041】
一方、S1303でパターンフラグが「F」である(単一属性である)と判断した場合(S1303にてYES)、パターンフラグ格納部から次の4bit分のパターンフラグを読み出す(S1307)。S1307で取得したパターンフラグに対して予め定義されている配置パターンに基づき、当該ブロック内に存在するデータの種類数を求める(S1308)。ここで種類数が2〜4であれば、その種類数分のデータを第2〜4種類データ格納部から(属性無しの)画像データを読み出す(S1309)。そして、パターンフラグに対して予め定義されている配置パターンに基づいて、S1301で読み出した第1種類の属性付き画像データとS1309で読み出した属性無しの画像データとを展開対象のブロック内に配置する(S1310)。このとき、属性データに関しては、S1301で読み出した第1種類の属性付き画像データに付与されている属性データを、当該ブロック内の全画素に展開する。そして、S1311へ進む。
【0042】
S1311では、次のブロックがあるか判定し、次の展開対象ブロックがある場合は(S1311にてYES)、S1301に戻り、全てのブロックの展開が終了したと判定した場合は(S1311にてNO)、展開処理を終了する。
【0043】
なお、解像度が元画像の半分の画像を必要とする場合、展開部では、前述したように、パターンフラグと第2〜4種類のデータを必要としない。従って、DMACには第1種類書き込み先頭アドレスのみ指定し、メモリからは第1種類のデータのみ読み込みを行い、画像を構成する。これによりメモリバスの帯域を節約することが可能になる。
【0044】
なお本実施形態では左上の画素の値を第1種類のデータとしたが、これに限るものではなく、その他の画素(例えば右下の画素)の値を第1種類のデータとするように配置パターンを定義してもよい。また、入力された画像を2x2画素(計4個の画素)のブロックを単位として分割していたが、これに限るものではなく、M×N画素(計L個の画素)のブロックごとに分割してもよい。もちろんブロックのサイズを変更する場合には、パターンフラグを扱うビット数も4ビット長から変更になることはいうまでも無い。また、色データとしてRGB各色8bitのデータを例として説明していたが、CMYKの色空間を取るものや、GRAYスケールのデータ、また8bit以外のデータ長をとるものでも良い。
【0045】
<第二の実施形態>
第一の実施形態では属性データが1種類のとき識別フラグ「F」を付加したに対し、第二の実施形態では属性データが複数種類のとき識別フラグ「F」を付加する実施形態を説明する。
【0046】
図9に実施形態における画像圧縮フローを示す。図9においてS530〜S535の出力処理以外は第一の実施形態にて示した図5と同一である。第二の実施形態においては、S522〜S524の各分岐処理において属性データが複数種類あると判定した場合に識別フラグ「F」を付加する。第二の実施形態では、これを複数属性識別フラグ「F」と呼ぶこととする。一方、ブロック内の属性データが1種類のときは付加しない。これは第一の実施形態における属性識別フラグ「F」の付加基準が逆の関係となっている。入力データと出力データとの関係を図10に示す。
【0047】
圧縮符号としては、各ブロック内に存在する属性データが1種類であるかそうでないかを識別できればよいため、第一、第二の実施形態のいずれの方式でも成立する。いずれの実施形態を選択するかは属性データが1種類であるブロックと複数種類であるブロックとどちらの頻度が高いかによって選ぶとよい。一般に、発生頻度の高い事象には短い符号を割り当てると符号量が小さくなるため、各ブロックの属性データが1種類である確率が高ければ第二の実施形態の方式が好ましい。すなわち、各ブロックの属性データが1種類のときは4bitの識別フラグ「F」が付加されないため、その分短い符号となる。
【0048】
<第三の実施形態>
上述した第1〜2実施形態では、2×2画素ブロックが取り得る配置パターンが15種類であるのに対して4bit(16個)のフラグを割り当てるので、未使用となる1個のフラグ(F)を、属性が単一か複数かを判別するためのフラグとして有効に活用している。すなわち、パターンフラグのビット長は4bitに抑えたまま、配置パターン以外の情報(属性が単一か複数かの情報)に利用している。
【0049】
一方、入力された画像データによっては、連続する2×2画素ブロック単位で見た場合、配置パターンおよびデータ種類(色データおよび属性データの種類)が同じブロックが連続する場合がある。そこで、第3の実施形態では、同一ブロックの連続数を符合化する技術と組み合わせてさらに圧縮率を向上させる実施形態を説明する。
【0050】
まず図12を用いてパターンフラグの割り当て方を説明する。第二の実施形態におけるパターンフラグの割り当て方法を説明する図10と比較されたい。相違点は第二の実施形態で複数属性識別フラグのために1つの「F」を付加していたのに対して第三の実施形態では2回の連続する「F」で代替していることである。以降上記フラグを複数属性識別フラグ「F、F」と称する。
【0051】
本実施形態においては、単一の「F」の後に0乃至Eの値が続く場合、当該続く数値(0乃至E)は、(直前のブロックと同じ配置のブロックが繰り返される回数n)−1を示すこととする。したがって、繰り返し回数nは、(単一の「F」の後の数値(0乃至E)+1)回となる。例えば、パターンフラグが単一の「F」の後に「0」のフラグが続く場合、直前のブロックの画素配置と同じ画素配置のブロックが1回繰り返し配置されることを示すことになる。以下、繰り返される回数をnとして上記フラグをリピートフラグ「F、n−1」と称する。
【0052】
なお、同じ画素配置のブロックが連続する場合でも、第1種類の属性付き画像データは全てのブロックで出力するものとする。すなわち、同じ画素配置のブロックが繰り返される回数(n回)と同じ回数の第1種類の属性付き画像データが繰り返し回数分出力され、第1種類属性付き画像データ格納部に格納される。リピートフラグがあれば、前のブロックを参照することで第1種類の画像データも復元することは可能である。しかし、上述したように、第1種類の属性付き画像データに関しては全てのブロックについて格納した理由は、第1種類属性付き画像データ格納部に格納されている画像データをそのまま低解像度のサンプリング画像として扱える利点を優先したためである。ただし、第2〜4種類のデータに関しては、ブロック内に存在したとしても出力されないことになるので、圧縮率は向上する。なお、圧縮率を優先するのであれば、リピートフラグ「F、n−1」のみを付加し、第1種類の属性付き画像データ及び第2〜4種類のデータの両方を省略するように構成することも可能である。
【0053】
[処理フロー]
図11を用いてフローを説明する。まず属性付き画像データが入力される(S1101)。その後、入力された属性付き画像データから分割された最初の2x2画素ブロックが入力される(S1102)。S502以降最初のブロックの圧縮処理がなされデータが出力される。ここで、S502からS524までの処理及び分岐は図9の対応ステップと同じであるので説明を省略する。S1111からS1117までの出力処理に関しても図9のS506及びS530からS535までと類似である。ここでの相違点は、属性データが1種類でない(すなわち複数種類である)場合に1回の「F」の代わりに2回の「F」を付与して出力している点である。S1111乃至S1117のいずれかの処理により、圧縮データとしてパターンフラグとデータを出力して各格納部に格納させた後、当該2x2画素ブロックの属性付き画像データを後の比較のために圧縮部内のバッファに一時記憶する(S1119)。ここで記憶されるブロック情報は、S1102にて入力された情報と同一である。
【0054】
次にS1118にてすべてのブロックに対して処理が完了したかを確認する。完了した場合は、本処理フローを終了する(S1120)。すべてのブロックに対し、処理が完了していない場合(S1118)には、S1103へ進む。圧縮部はブロックの繰り返し数を計数するカウンタを保持し、次のブロック処理へ移る前に該繰り返しカウンタnを初期化(n=0)する(S1103)。次に入力された属性付き画像データにおける未処理の次の2x2画素ブロックを入力する(S1104)。S1119にて記憶されたブロックとS1104にて入力されたブロックとが一致するかの同一判定を行う(S1105)。比較したブロックが一致しない場合(S1105にてNO)は、nの値が判定される(S1107)。n=0であれば(S1107にてYES)、S502へ移行し上述の処理が繰り返される。これにより、第2判断手段を実現する。
【0055】
S1105にて比較したブロックが一致した場合(S1105にてYES)は、nに1がインクリメントされる(S1106)。その後、nの値を判定する(SS1108)。n=15で無ければ(S1108にてNO)、S1104へ戻り、次の未処理の2x2画素ブロックが入力される。ここで、同一のブロックが続く場合を考える。同一のブロックが連続することにより、カウンタの値であるnが増加する。ここで、本実施形態においてリピートフラグとして表せるのはnが15以下であるため、S1108にてn=15が検出されたときはS1110の出力処理へ移行する。S1110では直前のブロックが15回繰り返されたことを意味するリピートフラグ「F、E」(16進数表記)と前ブロックの第1種類にあたる画素のみの属性付き画像データが15回繰り返して出力される。このパスを通るときは同一ブロックがまだ連続中なのでバッファに記録された情報は更新せずS1118を経てS1103へ戻る。
【0056】
次にS1104からS1108までの処理を繰り返している間にS1119にて記憶したブロックと一致しないブロックが現れ、且つ繰り返しカウンタnが0でなかった場合(S1105にてNO、かつS1107にてNO)を説明する。例えばn=3のときにS1107へ分岐した場合はさらにS1109へ移行する。そして、上記記憶されたブロックと一致しないブロックが入力されるまでに繰り返されていたブロック数分の処理が実行される(S1109)。すなわち、n=3であれば、リピートフラグ「F、2」の生成出力とバッファに保持された第1種類の属性付き画像データが3回分生成出力されて、各格納部に格納される。S1109は、S1110にて出力される回数とリピートフラグの値が異なる。記憶されているブロックと一致しない新しく入力されたブロックは、S502以降の処理により圧縮処理され、フラグとデータが出力される。
【0057】
以上述べたフローを入力された属性付き画像全体に対して繰り返す(S1118)ことにより圧縮処理が終了する(S1120)。
【0058】
本実施形態ではフラグ「F」を、属性の種類数を識別することとブロックの繰り返しを識別することに用いたが、他の実施形態であってもよい。また本実施形態では第二の実施形態を元にブロックの連続性に着目した圧縮技術を付加したが、第一の実施形態をもとに実装しても良い。
【0059】
以上により、比較的単純な圧縮方式でメモリ容量やメモリバス帯域の節約が可能になるだけでなく、画素単位での画像処理や縮小変倍の処理負荷も削減することが可能になる。
【0060】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割手段と、
前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段と、
2〜L種類(L=M×N)のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第1判断手段と、
2〜L種類のデータ種類で構成され、且つ前記第1判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックが単一属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、
2〜L種類のデータ種類で構成され、且つ前記第1判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、
1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力手段と
を有することを特徴とする画像処理装置。
【請求項2】
各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割手段と、
前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段と、
2〜L種類(L=M×N)のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第1判断手段と、
2〜L種類のデータ種類で構成され、且つ前記第1判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、
2〜L種類のデータ種類で構成され、且つ前記第1判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックが複数属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、
1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力手段と
を有することを特徴とする画像処理装置。
【請求項3】
更に、着目ブロックが直前のブロックの画素配置と同じ画素配置のブロックであるか否かを判断し、同じ画素配置のブロックが連続する回数を計数する第2判断手段を更に有し、
前記出力手段は、前記第2判断手段で直前のブロックの画素配置と同じ画素配置のブロックであると判定されたブロックに関しては、同じ画素配置のブロックが連続する回数を示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データとを当該連続する回数分出力することを特徴とする請求項1または2のいずれかに記載の画像処理装置。
【請求項4】
前記M×N画素のサイズのブロックは、2×2画素のサイズのブロックであり、前記L種類は4種類であることを特徴とする請求項1乃至3のいずれかに記載の画像処理装置。
【請求項5】
前記配置パターンを示すフラグおよび前記単一属性であることを示すフラグは、4ビット長のフラグを用いて表されることを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記出力手段で出力されるフラグをフラグ格納部に格納し、
前記出力手段で出力される第1種類の色データと第1種類の属性データとを第1種類データ格納部に格納し、
前記出力手段で出力される第2〜L種類の色データと第2〜L種類の属性データとを第2〜L種類データ格納部に格納する格納手段
を更に有することを特徴とする請求項1乃至5のいずれかに記載の画像処理装置。
【請求項7】
分割手段が、各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割工程と、
特定手段が、前記分割工程において分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定工程と、
第1判断手段が、2〜L種類(L=M×N)のデータ種類で構成されるブロックに関して、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第1判断工程と、
出力手段が、
2〜L種類のデータ種類で構成され且つ前記第1判断工程において画素の属性データが単一であると判断されたブロックに関しては、当該ブロックが単一属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、
2〜L種類のデータ種類で構成され且つ前記第1判断工程において画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、
1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力工程と
を有することを特徴とする画像処理方法。
【請求項8】
分割手段が、各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割工程と、
特定手段が、前記分割工程で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定工程と、
第1判断手段が、2〜L種類(L=M×N)のデータ種類で構成されるブロックに関して、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第1判断工程と、
出力手段が、
2〜L種類のデータ種類で構成され、且つ前記第1判断工程において画素の属性データが単一であると判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、
2〜L種類のデータ種類で構成され、且つ前記第1判断工程において画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックが複数属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、
1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力工程と
を有することを特徴とする画像処理方法。
【請求項9】
第2判断手段が、着目ブロックが直前のブロックの画素配置と同じ画素配置のブロックであるか否かを判断し、同じ画素配置のブロックが連続する回数を計数する第2判断工程を更に有し、
前記出力工程では、前記第2判断工程において直前のブロックの画素配置と同じ画素配置のブロックであると判定されたブロックに関しては、同じ画素配置のブロックが連続する回数を示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データとを当該連続する回数分出力することを特徴とする請求項7または8のいずれかに記載の画像処理方法。
【請求項10】
コンピュータを、
各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割手段、
前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段、
2〜L種類(L=M×N)のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第1判断手段、
2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックが単一属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、
2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、
1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力手段
として機能させるためのプログラム。
【請求項11】
コンピュータを、
各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割手段、
前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段、
2〜L種類(L=M×N)のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第1判断手段、
2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、
2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックが複数属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、
1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力手段
として機能させるためのプログラム。
【請求項12】
前記コンピュータを、着目ブロックが直前のブロックの画素配置と同じ画素配置のブロックであるか否かを判断し、同じ画素配置のブロックが連続する回数を計数する第2判断手段として更に機能させるためのプログラムであって、
前記出力手段では、前記第2判断手段で直前のブロックの画素配置と同じ画素配置のブロックであると判定されたブロックに関しては、同じ画素配置のブロックが連続する回数を示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データとを当該連続する回数分出力することを特徴とする請求項10または11のいずれかに記載のプログラム。
【請求項1】
各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割手段と、
前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段と、
2〜L種類(L=M×N)のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第1判断手段と、
2〜L種類のデータ種類で構成され、且つ前記第1判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックが単一属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、
2〜L種類のデータ種類で構成され、且つ前記第1判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、
1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力手段と
を有することを特徴とする画像処理装置。
【請求項2】
各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割手段と、
前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段と、
2〜L種類(L=M×N)のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第1判断手段と、
2〜L種類のデータ種類で構成され、且つ前記第1判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、
2〜L種類のデータ種類で構成され、且つ前記第1判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックが複数属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、
1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力手段と
を有することを特徴とする画像処理装置。
【請求項3】
更に、着目ブロックが直前のブロックの画素配置と同じ画素配置のブロックであるか否かを判断し、同じ画素配置のブロックが連続する回数を計数する第2判断手段を更に有し、
前記出力手段は、前記第2判断手段で直前のブロックの画素配置と同じ画素配置のブロックであると判定されたブロックに関しては、同じ画素配置のブロックが連続する回数を示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データとを当該連続する回数分出力することを特徴とする請求項1または2のいずれかに記載の画像処理装置。
【請求項4】
前記M×N画素のサイズのブロックは、2×2画素のサイズのブロックであり、前記L種類は4種類であることを特徴とする請求項1乃至3のいずれかに記載の画像処理装置。
【請求項5】
前記配置パターンを示すフラグおよび前記単一属性であることを示すフラグは、4ビット長のフラグを用いて表されることを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記出力手段で出力されるフラグをフラグ格納部に格納し、
前記出力手段で出力される第1種類の色データと第1種類の属性データとを第1種類データ格納部に格納し、
前記出力手段で出力される第2〜L種類の色データと第2〜L種類の属性データとを第2〜L種類データ格納部に格納する格納手段
を更に有することを特徴とする請求項1乃至5のいずれかに記載の画像処理装置。
【請求項7】
分割手段が、各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割工程と、
特定手段が、前記分割工程において分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定工程と、
第1判断手段が、2〜L種類(L=M×N)のデータ種類で構成されるブロックに関して、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第1判断工程と、
出力手段が、
2〜L種類のデータ種類で構成され且つ前記第1判断工程において画素の属性データが単一であると判断されたブロックに関しては、当該ブロックが単一属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、
2〜L種類のデータ種類で構成され且つ前記第1判断工程において画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、
1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力工程と
を有することを特徴とする画像処理方法。
【請求項8】
分割手段が、各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割工程と、
特定手段が、前記分割工程で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定工程と、
第1判断手段が、2〜L種類(L=M×N)のデータ種類で構成されるブロックに関して、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第1判断工程と、
出力手段が、
2〜L種類のデータ種類で構成され、且つ前記第1判断工程において画素の属性データが単一であると判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、
2〜L種類のデータ種類で構成され、且つ前記第1判断工程において画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックが複数属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、
1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力工程と
を有することを特徴とする画像処理方法。
【請求項9】
第2判断手段が、着目ブロックが直前のブロックの画素配置と同じ画素配置のブロックであるか否かを判断し、同じ画素配置のブロックが連続する回数を計数する第2判断工程を更に有し、
前記出力工程では、前記第2判断工程において直前のブロックの画素配置と同じ画素配置のブロックであると判定されたブロックに関しては、同じ画素配置のブロックが連続する回数を示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データとを当該連続する回数分出力することを特徴とする請求項7または8のいずれかに記載の画像処理方法。
【請求項10】
コンピュータを、
各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割手段、
前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段、
2〜L種類(L=M×N)のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第1判断手段、
2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックが単一属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、
2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、
1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力手段
として機能させるためのプログラム。
【請求項11】
コンピュータを、
各画素のデータ種類が色データと属性データとで表される画像データを、M×N画素のサイズのブロックに分割する分割手段、
前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段、
2〜L種類(L=M×N)のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第1判断手段、
2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データとを出力し、
2〜L種類のデータ種類で構成され且つ前記第1判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックが複数属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第2〜L種類の色データ及び第2〜L種類の属性データとを出力し、
1種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データを出力する出力手段
として機能させるためのプログラム。
【請求項12】
前記コンピュータを、着目ブロックが直前のブロックの画素配置と同じ画素配置のブロックであるか否かを判断し、同じ画素配置のブロックが連続する回数を計数する第2判断手段として更に機能させるためのプログラムであって、
前記出力手段では、前記第2判断手段で直前のブロックの画素配置と同じ画素配置のブロックであると判定されたブロックに関しては、同じ画素配置のブロックが連続する回数を示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第1種類の色データ及び第1種類の属性データとを当該連続する回数分出力することを特徴とする請求項10または11のいずれかに記載のプログラム。
【図1】
【図2】
【図5】
【図9】
【図11】
【図13】
【図3】
【図4】
【図6】
【図7】
【図8】
【図10】
【図12】
【図2】
【図5】
【図9】
【図11】
【図13】
【図3】
【図4】
【図6】
【図7】
【図8】
【図10】
【図12】
【公開番号】特開2011−259246(P2011−259246A)
【公開日】平成23年12月22日(2011.12.22)
【国際特許分類】
【出願番号】特願2010−132412(P2010−132412)
【出願日】平成22年6月9日(2010.6.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年12月22日(2011.12.22)
【国際特許分類】
【出願日】平成22年6月9日(2010.6.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]