JP5643578B2 - 画像処理装置、画像処理方法、およびプログラム - Google Patents

画像処理装置、画像処理方法、およびプログラム Download PDF

Info

Publication number
JP5643578B2
JP5643578B2 JP2010196094A JP2010196094A JP5643578B2 JP 5643578 B2 JP5643578 B2 JP 5643578B2 JP 2010196094 A JP2010196094 A JP 2010196094A JP 2010196094 A JP2010196094 A JP 2010196094A JP 5643578 B2 JP5643578 B2 JP 5643578B2
Authority
JP
Japan
Prior art keywords
color
data
block
processing
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010196094A
Other languages
English (en)
Other versions
JP2012054786A (ja
Inventor
圭吾 小倉
圭吾 小倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2010196094A priority Critical patent/JP5643578B2/ja
Publication of JP2012054786A publication Critical patent/JP2012054786A/ja
Application granted granted Critical
Publication of JP5643578B2 publication Critical patent/JP5643578B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、画像を所定のブロック単位に圧縮する画像データ圧縮装置、及びそれらブロック単位に圧縮されたデータへの画像処理及び画像データへ復元処理するための画像処理装置に関する。
従来のカラー静止画像の圧縮方式には、離散コサイン変換を利用したJPEG方式や、Wavelet変換を利用した方式が多く使われている。この種の符号化方式は、一般的に画像を所定のブロック毎(例えば8x8や16x16画素単位)に符号化し、離散コサイン変換、量子化およびエントロピー符号化を行うことで高い圧縮効率を示している。この種の符号化方式は、可変長符号化方式であるので、符号化対象の画像ブロック毎に符号量が変化する。そのため、複数のブロックからなる符号化画像の一部に対してのみ復号化を行う場合、まず、CPUはメモリに格納されている全ブロックの符号量情報を取得する必要がある。その上で、CPUはブロック復号化処理を行う前に、各復号対象ブロックの符号化データが格納されているメモリ上のアドレス情報を算出してから符号化データへアクセスを行う。JPEGでの離散コサイン変換は、ブロックサイズとして通常8x8画素を必要としている。このブロック単位での離散コサイン変換処理を高速に行う場合には、高速演算器もしくは専用ハードウェア、及びバッファ用のメモリが必要となる。
上記に述べたような符号化データに対するランダムアクセス性や処理の複雑度の課題に対するアプローチとして、特許文献1ではブロックサイズが小さい圧縮率固定の画像圧縮技術が開示されている。また、高解像度化が進むにつれて画像処理を必要とする画素数が飛躍的に増えその処理負荷が増大しているという課題もある。また、前述した画像圧縮を用いた場合はその画素データを参照し、その画素データに対して色変換などの処理を行う場合、圧縮データの復号処理が必要になる。つまり圧縮データのままで画像処理を行う事は出来ず、必ず復号処理が必要になり、処理時間の増大をまねく。
画素データの輝度や濃度値情報を変換せずに圧縮処理を行う技術として、画素データとその連続数を記憶するランレングス圧縮方式や、ブロック単位でエッジを検出し、そのエッジの持つ2色を記憶することで圧縮する技術(特許文献2)などが開示されている。
特開2004−104621号公報 特開平10−257488号公報
上述したように、離散コサイン変換を利用したJPEG方式やWavelet変換を用いた方式の場合、対象ブロックのブロックサイズが大きいと、ブロック毎に必要とされる計算量が多く、処理ハードウェアが高価になってしまうといった問題がある。また、画像データの用途次第では高解像度データが必ずしも必要では無く、それら高解像度データから低解像度データを作成する際にも必ず復号処理および別途縮小処理が必要になってしまう。
本発明は、このような問題を鑑みてなされたもので、その目的を以下に示す。処理コストを抑えつつ、高解像度画像データに対して高い圧縮率によって符号化を実現する。符号化された高解像度画像データから簡単に低解像度データを取得する。特に、後段の処理での必要性に応じて、低解像度データを容易に得られるようにする。
上記課題を解決するために、本発明の画像処理装置は、画像データを所定サイズのブロックごとに分割し、当該分割されるブロックを順に処理対象にする分割手段と、前記分割手段で分割された処理対象のブロック内の色の配置が、1つ前に処理対象になったブロック内の色の配置と同じであるか否か判定する判定手段と、前記処理対象のブロック内の各画素の色を比較することにより、当該処理対象のブロックに含まれる色の配置パターンを示すパターンフラグを特定する特定手段と、前記処理対象のブロック内の予め定義された位置の画素の色を第1色の色データとして抽出し、更に、当該ブロックに含まれる前記第1色の色データ以外の色データを抽出する抽出手段と、前記パターンフラグ、及び、前記色データのうち少なくとも一方を出力する出力手段とを有し、前記出力手段は、前記第1判定手段で同じでないと判定された場合は、前記特定手段で特定された当該処理対象のブロックに含まれる色の配置パターンを示すパターンフラグと、前記抽出手段で抽出された前記処理対象のブロック内の前記第1色の色データと、前記処理対象のブロック内の前記第1色の色データ以外の色データとを出力し、前記判定手段で同じであると判定され、且つ、後段の処理で前記処理対象のブロックの前記第1色の色データを用いた処理が行われる場合は、当該処理対象のブロック内の色の配置が1つ前に処理対象になったブロック内の色の配置と同じであることを示すパターンフラグと、前記処理対象のブロックの前記第1色の色データとを出力し、前記判定手段で同じであると判定され、且つ、後段の処理で前記処理対象のブロックの前記第1色の色データを用いた処理が行われない場合は、当該処理対象のブロック内の色の配置が1つ前に処理対象になったブロック内の色の配置と同じであることを示すパターンフラグを出力する。
処理コストを抑えつつ、高解像度画像データに対して高い圧縮率によって符号化を実現することができる。また、後段の処理で、低解像度画像データを必要とする場合は、前のブロックと同じ色配置のブロックについても、同じ色配置であることを示すパターンフラグとともに、第1色の色データを出力することにより、簡単に低解像度画像データを得ることができる。
本発明に係るMFPシステムの概要を示した図。 本発明に係るコントローラの概要を示した図。 本発明に係る圧縮回路の全体構成を示した図。 本発明に係る画像をブロック分割した際のブロックのパターンを列挙した図。 本発明に係るブロックのパターンとその識別子を列挙した図。 本発明に係る画像圧縮のフローを示した図。 本発明に係るブロックのパターンをフラグへ変換する様子を示す図。 本発明に係る圧縮処理に対する入力と出力の関係を示した図。 本発明に係るリピートフラグを追加した入出力の関係を示した図。 本発明に係る画像圧縮のフローを示した図。 本発明に係る第一圧縮回路における圧縮回路動作のデータ作成例を示す図。 本発明に係るページとタイルとブロックの関係を示した図。 本発明に係るパケットの構成およびヘッダの構成を示した図。 本発明に係るパケット管理テーブルと圧縮データのメモリ空間上の配置例を示す図。 第一実施形態に係るプリント動作のデータフローを示した図。 第一実施形態に係る画像処理後のプリント動作のデータフローを示した図。 第一実施形態に係る画像圧縮のフローを示した図。 第二実施形態に係る圧縮回路を改良した全体構成を示した図。 第二実施形態に係る異解像度データを製本するデータフローを示した図。 第二実施形態に係る画像圧縮のフローを示した図。 第三実施形態に係る単色タイルを当該圧縮処理後のデータ量を示した図。 第三実施形態に係る単色タイルを改良後圧縮処理後のデータ量を示した図。 第三実施形態に係る画像圧縮フローを示した図。
<第一実施形態>
以下、本発明を実施するための形態について図面を用いて説明する。図1に、本発明の実施の形態のスキャン、プリント、コピーを行うデジタル複合機システム(以降MFPと称する)の全体構成図を示す。コントローラ101は、画像入力デバイスであるスキャナ102や画像出力デバイスであるプリンタ103と接続する。一方、LANや公衆回線(WAN)等のネットワーク104と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行うためのコントローラである。CPU105はシステム全体を制御するプロセッサである。メモリ106は、CPU105が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。HDD記憶部107はハードディスクドライブで、システムソフトウェア、画像データを格納する。
図2を用いて、図1のコントローラ101の動作に関して詳細に説明する。スキャンデータを読み込む場合を説明する。コントローラ101は、スキャナ102からRGB(RED、GREEN、BLUE)の3色の読み取り画像データを受け取る。次に、スキャナ用画像処理部201にてシェーディング処理やフィルタ処理等の画像処理を行い、圧縮部202にて画像圧縮処理を行う。その圧縮データをDMAC(DIRECT MEMORY ACCESS CONTROLLER)203を介してメモリ106へ格納する。
スキャンデータをプリントする場合は、メモリ106に格納されている圧縮データをDMAC211を介して色処理部213へ入力しCMYK(CYAN、MAGENTA、YELLOW、BLACK)色空間へ変換する。その後、それらCMYKの値に対して濃度調整、プリンタガンマ補正等の調整の色処理を行った後、DMAC211を介して再度メモリ106へ格納する。その後プリント用の画像処理を行うために、DMAC221を介して、メモリ106に格納されている圧縮データを読み込み、展開部222にてラスタ画像データへ展開する。ラスタのCMYK画像データをプリント用画像処理部223に入力し、そこでディザ法や誤差拡散法による面積階調処理を行い、プリンタ103へ出力する。
スキャンデータをネットワーク104へ送信する場合には、メモリ106に格納されている圧縮データをDMAC211を介して展開部/圧縮部212へ入力し展開処理を行った後、色処理部213へ入力し色変換を行う。具体的には、ディスプレイガンマ調整や用紙地色調整等を行った後にYCbCr(輝度、BLUE色差、RED色差)色空間へ変換する。その後再度、DMAC211を介してメモリ106へ格納する。その後、送信用の画像処理を行うために、DMAC231を介して、メモリ106に格納されている圧縮データを読み込み、展開部232にてラスタ画像データへ展開する。ラスタのYCbCr画像データに対して送信処理部233ではカラー画像送信であればJPEG圧縮処理を行い、モノクロ2値画像送信であればYデータに対して2値化を行う。そして、送信処理部233は、JBIG圧縮等を行い、ネットワーク104へ出力する。
スキャンデータを保存する場合には、メモリ106に格納されている圧縮データをDMAC241を介してディスクスプール242へ入力する。ディスクスプール242では、HDDの書き込みスピードがメモリに比べて遅いため、さらに高圧縮のJPEG圧縮を施す。その後、ディスクアクセスコントローラ243を介してHDD記憶部107へJPEG圧縮データを保存する。保存されているデータを再度メモリ106に展開する場合はその逆の処理を行う。
PDLのデータをメモリ106へ書き込む場合を説明する。CPU105は、ネットワーク104から送られてきたPDLデータをインタープリットし、メモリ106へディスプレイリストを出力する。その後、レンダリング部251は、メモリ106に格納されているディスプレイリストを読み出して、ラスタ画像データへレンダリングを行う。レンダリング部251は、ラスタ画像データを一定画素数(例えば、64x64画素)のブロック単位(タイル単位)で、圧縮部252へ転送することが可能である。以下の本実施形態では、圧縮部252へ転送されるサイズ(例えば64x64画素)をタイルと呼び、そのタイルサイズの画像をタイル画像と呼ぶこととする。圧縮部252は、レンダリング部251から転送されたタイル単位で画像圧縮処理を行い、圧縮されたデータをDMAC253に転送する。DMAC253が圧縮部252から転送された圧縮データをメモリ106へ格納する。
[圧縮部]
続いて、図3に本発明の特徴となる圧縮部252の構成を示す。圧縮部252は、入力バッファ330、第一圧縮部300、第二圧縮部301、バッファ311、パケット情報生成部312からなる。入力バッファ330は、レンダリング部251がレンダリングした後のタイル画像データ(例えば、64x64画素サイズの画像など)を格納する。圧縮処理を行うブロックは、本発明の方法によって圧縮処理を行う第一圧縮部300と、画像圧縮されたデータをJPEGなどに代表される圧縮方式によって符号化する第二圧縮部301からなる。なお、本実施形態において、第一圧縮部300を第一の符号化部、第二圧縮部301を第二の符号化部とも表記する。
第一圧縮部300は、さらに画像圧縮部1(302)、画像バッファ1(320)、画像圧縮部2(303)、画像バッファ2(304)からなる。画像圧縮部1(302)と画像圧縮部2(303)は共に、後述する圧縮処理フローに従って、画像圧縮を行う。画像圧縮部1および2(302、303)は、後述する処理フローによって、入力データをパターンフラグ、第1色データ、第2/3/4色データと呼ばれる3つのデータに変換する。ここでの第2/3/4色データは、第1色の色データ以外の色データを意味する。画像圧縮部1(302)は、パターンフラグをパターンフラグ格納部1(350)、第1色データを画像バッファ1(320)、第2/3/4色データを第2/3/4色格納部1(351)に格納する。なお、第1色データは、2×2画素サイズのブロック内の予め定義された位置の画素(例えば2×2画素ブロック内の左上画素)の画素値を指し、第2/3/4色データは、当該2×2画素ブロックに含まれる第1色データ以外の画素値を示している。なお、2×2画素のブロックにおいて、第1色(代表色)を除く他の色は0〜3色存在しうるので、第2/3/4色データの色数は0〜3色のいずれかである。第1色データを代表色、第2/3/4色データを他色とも記載する。ここで、画像バッファ1(320)に格納されるデータは、入力バッファ330の画像データ(例えば64×64画素サイズのタイル画像)を、2x2画素サイズのブロックごとに分割し、各ブロックの所定位置の画素から1画素分の情報量を生成したデータである。従って、元のブロックにおける解像度を半分に変換したデータに相当する(2x2画素→1x1画素)。すなわち、入力バッファ330の画像データが64×64画素サイズであった場合、画像バッファ1(320)に格納される画像データは32×32画素サイズとなる。
画像圧縮部2(303)は、画像バッファ1(320)に格納されたデータを処理する。画像圧縮部2(303)は、パターンフラグをパターンフラグ格納部2(352)、第1色データを画像バッファ2(304)、第2/3/4色データを第2/3/4色格納部2(353)に格納する。画像バッファ2(304)に格納されるデータは、画像バッファ1(320)のデータ(例えば32×32画素サイズの画像)を2x2画素サイズのブロックごとに分割し、各ブロックの所定位置の画素から1画素分の情報量を生成したデータである。このデータは、解像度を半分に変換したデータに相当する。すなわち、画像バッファ1(320)のデータが32×32画素サイズであった場合、画像バッファ2(304)に格納される画像データは16×16画素サイズとなる。
このように、画像圧縮部1および2(302、303)は、入力された画像の解像度を半分に変換することが可能な圧縮器である。つまり、図3に示すように同一の処理を行う圧縮器を2つ配置することで、第一圧縮部300に入力された画像の解像度を4分の1相当に変換することが可能となる。例えば、1200dpiでプリントされた画像を第一圧縮部300に入力することで、300dpiに圧縮された画像を得ることが可能になる。また、画像圧縮部2(303)の処理を省略することで、入力画像の解像度を半分にする処理も可能であり、例えば1200dpiの入力画像から600dpi画像を得ることも可能となる。
第二圧縮部301は、第二圧縮方式判定部308と、符号化方式選択回路309、310と、非可逆符号化部305と、可逆符号化部306とからなる。また、第一圧縮部300による画像圧縮データをそのまま出力するためのパス307を有する。非可逆符号化部305は、JPEG−DCTに代表される画像符号化方式を用いて非可逆符号化を行い、可逆符号化部306は、JPEG−LSなどに代表される画像符号化方式を用いて可逆符号化を行う。
第二圧縮方式判定部308は、画像バッファ2(304)及びバッファ311から出力される各データ量を元にした制御情報315、316に基づいて第二圧縮方式を決定する。第二圧縮方式判定部308は決定された第二圧縮方式によって、符号化方式選択回路309、310を動作させる。画像バッファ2(304)に格納された画素データ群は、第二圧縮方式判定部308で決定される非可逆符号化部305あるいは可逆符号化部306における圧縮方式で処理され、処理後のデータがバッファ311の第1色or符号化画像バッファ354に格納される。圧縮処理を行わない場合には、画像バッファ2(304)に格納されたデータは、第二圧縮部301で何も処理されずに(307)、バッファ311の第1色or符号化画像バッファ354に転送される。
バッファ311に格納された圧縮データは、パケット情報生成部312で、図13を用いて後述するような圧縮方法、色情報、画像位置情報などからなるパケット情報を付加されることにより、パケット化される。パケット化された圧縮データは、DMAC253を介してメモリ106に格納される。レジスタ部313は、CPU105から制御情報を受け、制御信号314に変換して、第一圧縮部300及び第二圧縮部301、パケット情報生成部312へ制御情報を通知する。
[画像圧縮部]
次に、ラスタ画像データの第一圧縮部300の画像圧縮部1および2(302、303)の詳細な圧縮方法に関して図4および図5を用いて説明を行う。画像圧縮部1(302)と画像圧縮部2(303)は、処理対象にするラスタ画像のサイズが異なるだけで、その他は同様の手法で処理を行う。ここでは、ラスタ画像400を処理対象画像として説明を行う。まず、ラスタ画像400を2x2画素単位のブロック401ごとに分割し、そのブロック単位でデータの圧縮を行う。処理の説明の前に、2x2画素(1つのブロック)の4画素における色数の組み合わせを考える。4画素それぞれが異なる色を表す場合に、ブロック内で最大4色が存在する。従って、ブロック内で存在する色数は、1〜4色となる。
図4のテーブル402は、色数が1色〜4色のそれぞれの場合において、考えられるブロック内の色の配置パターンを示す図である。まずブロック内を構成する色数が1色の場合、4画素が同色で構成されている事になるので、その配置パターンは1通りである。次に、ブロック内を構成する色数が2色の場合を考える(各色を第1色と第2色と呼ぶこととする)。2色が4画素内へレイアウトされる場合の数は、所定位置の画素(本実施例では左上の画素とする)の色を第1色として考えると、左上画素以外の残りの3画素へ第1色もしくは第2色が入るので、4画素同色の場合を除くと、全部で7通りの組み合わせが考えられる。
次に、ブロック内を構成する色数が3色(第1色〜第3色)で構成される場合を考える。3色が4画素内へレイアウトされる場合の数は、3色のうち1色だけ2度使われる場合の数と言い換える事ができるので、4画素の座標のうち、2画素が同じ色になる場合の数を求めればよい。つまり3色の場合の数は、4つの画素から2つの画素を取る組み合わせとなり、全部で6通りとなる。また、ブロック内を構成する色数が4色(第1色〜第4色)で構成される場合は、1パターンしか存在しない。したがって、ブロック内の色数が1〜4色のすべての場合の数を合計すると全部で15通りのパターンが考えられる。これらすべてのパターンを識別するためにフラグ(識別子)を付与する事を考えると、データ量としては4bit必要となる(フラグ0〜E)。この15通りの配置パターンとフラグとの対応を図5に示すように定義する。以降このフラグをパターンフラグ500と呼ぶ。
[画像圧縮処理フロー]
上記のように2x2画素の取りうる組み合わせを踏まえて、図6を用いて画像圧縮部1・2(302、303)にて行われる処理フローを説明する。1画素あたりのデータは、例えばRGBそれぞれ8bit(すなわち256階調)の24bit画像として説明を行う。
まず、2x2画素のブロックを入力し(S601)、そのブロック内全ての2画素の組み合わせに対して24bitのコンペア(比較)を取る(S602)。このコンペアを取った結果、全ビット一致していた場合には1を、不一致の場合には0を出力する。ここで、図7に示すように、2x2画素内の左上から右上、左下、右下の画素の位置順に、座標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のパターンフラグへ変換する(S603)。これにより、ブロック内の色の配置に対する配置決定を実現する。4bitのパターンフラグへ変換したら続いて、4画素内で出現した色数および色データを抽出する(S604)。図7に示したように、4ビットのパターンフラグ(または6ビットのコンペア結果)に対して、ブロック内での各色の配置を示す各パターンが対応づけられているので、各ブロックにおける色数と色データを特定することができる。なお、本実施形態の図7では、全てのパターンにおいて、左上の画素の色(画素値)が第1色(1番目の色データ)となるように予め定義している。パターンフラグが0の場合は、色数1で、左上の画素の色(画素値)を第1色として抽出する。また、パターンフラグが1〜7の場合は、色数2で、左上の画素の色(画素値)を第1色として抽出し、更に、各パターンフラグに応じて定義されている第2色(2番目の色データ)が存在する位置の画素の色(画素値)を抽出する。
例えば、パターンフラグが1の場合は、右上の画素の色を第2色として抽出する。また、パターンフラグが8〜Dの場合は、色数3で、左上の画素の色(画素値)を第1色として抽出し、更に、各パターンフラグに応じて定義されている第2色(2番目の色データ)および第3色(3番目の色データ)が存在する位置の画素の色(画素値)を抽出する。例えば、パターンフラグが8の場合は、右上の画素の色(画素値)を第2色として抽出し、右下の画素の色(画素値)を第3色として抽出する。また、パターンフラグがEの場合は、左上の画素の色を第1色、右上の画素の色を第2色、左下の画素の色を第3色、右下の画素の色を第4色として抽出する。このように、パターンフラグ(またはコンペア結果)に基づいて、ブロックの色数が特定され(S605、S607、S609)、それぞれに応じたパターンフラグと色データとを出力する(S606、S608、S610、S611)。
なお、本実施形態において、第1色(代表色)の位置をブロック内の左上の画素の値としているが、これに限定するものではなく、他の位置の画素を第1色(代表色)としても良い。これに伴って、第2/3/4色(他色)の位置やその配置パターンの割当も変更しても構わない。
S606、S608、S610、S611で出力されるデータを、図8を用いて説明する。例えばパターンフラグが0(すなわち4画素内が1色で構成されている)の場合には、2色目以降は存在しないので、パターンフラグ4bitと1色目の画素値(24bit分の色データ)とを出力する(S606)。また、パターンフラグが1〜7(4画素内が2色で構成されている)の場合(S607でYES)には、2色目が存在する画素の座標をパターンフラグより算出して当該画素の画素値(色データ)を得る。そして、パターンフラグ4bitと2色分の画素値(48bit分の色データ)とを出力する(S608)。また、パターンフラグが8〜D(すなわち3色)の場合(S609でYES)、パターンフラグの4ビットと3色分の画素値(72ビット分の色データ)とを出力する(S610)。そして、パターンフラグがE(すなわち4色)の場合(S609でNO)、パターンフラグの4ビットと4色分の画素値(96ビット分の色データ)とを出力する(S611)。言い換えると、各ブロックから出力される色データは、ブロック内の座標(左上から右上、左下、右下の順に1、2、3、4)順に走査した場合に、出現していなかった色データが第1色から順に出力されることに相当する。
このように、2x2画素のブロックにおける4色(96bit)の入力データを、4bitのパターンフラグと、各ブロック内に存在する色数分の画素値とを出力することで、比較的簡単な処理で出力データ量を削減することが可能になる。特に、2×2画素のブロック内で同色の画素が存在するブロック(すなわち各ブロック内の色数が少ないブロック)が多いラスタ画像の場合は、出力されるデータ量の圧縮率も高くなる。またパターンフラグを参照することで、そのブロック内の色数を特定することが可能になる。
この処理を、処理対象のラスタ画像から抽出される2×2画素ブロック全てに対して行うことで、画像全面のデータ圧縮が可能になる。この時、第一圧縮部300の画像圧縮部1(302)が生成した第2/3/4色データは、第2/3/4色格納部1(351)へ、パターンフラグはパターンフラグ格納部1(350)へ格納する。また、第一圧縮部300の画像圧縮部2(303)による処理後、第1色のデータを画像バッファ2(304)へ、第2/3/4色データを第2/3/4色格納部2(353)へ、パターンフラグをパターンフラグ格納部2(352)へ格納する。
ここで、第1色格納部以外のメモリ領域に関しては、画素値がピクセル単位で量子化や符号化されることなく格納されている。そこで、第二圧縮部301で圧縮符号化処理を実行しなければ、画像バッファ2(304)に格納されている第1色のデータを、そのまま第1色or符号化画像バッファ354に格納することが可能となる。そのため、第二圧縮部301の符号化部305や306による圧縮符号化を行わずに色データを書き出した場合は、画素の色データがそのままのビット数で格納される。したがって、圧縮データをデコードしてラスタ画像に戻さなくても、各画素の色データ(画素値)を特定することができる。よって、1画素入力/1画素出力で完結する色処理(例えばLUTによる色変換やガンマ補正処理、行列演算を用いた色空間変換処理等)を行う場合は、元のラスタ画像に戻す必要はなく、格納されている色データに対して直接処理を行うことができる。
第二圧縮部301での圧縮符号化処理を省略した場合、DMAC211が、パケット情報を読み込み、メモリ106上の第1色書き込み先頭アドレス(図13)以降の画素データを色処理部に転送し、画素単位での処理を済ませた後にメモリ106上へ書き戻す。この時なんらかの画素単位処理によって画素のビット数が変わらない場合には、メモリ106上の同じ場所へ上書きすることでメモリの節約も可能である。
このような圧縮データを直接用いることで、メモリバス上の転送効率が向上し、かつオリジナルの画像に比べ、少ない画素数の色データに対して処理することになるので、高速処理が可能になる。また、後述の図14のように、画像データを、パターンフラグと第1色とその他の色とに分類し、離散的にメモリ上へ格納している。したがって、第1色格納部には、画像を2x2画素のブロックに分割して各ブロックにおける左上の座標の画素をサンプリングする処理を画像圧縮部302と303で2回行った場合の画素値(色データ)がメモリ上に連続して存在することになる。
ここで説明しているMFPにおいては、蓄積したPDL画像データやスキャンの画像データのプレビュー表示や、前述したネットワーク送信などの機能も有している。例えばプリント解像度が1200dpiであったとしてもプレビューや送信時にそこまでの解像度は通常必要とされず、300dpiやそれ以下で十分な場合が多い。こういった縮小データを得る必要がある場合は、第1色格納部に格納されている第1色の色データをまとめて抽出することで、簡単に1/4の解像度のラスタ画像を得る事が出来る。
[展開処理]
次に、展開部/圧縮部212における展開処理に関して説明する。展開部/圧縮部212では前述したようなパターンフラグと色データとを用いて、元のラスタ画像データへ戻す処理の事を指す。メモリ106上に後述する図13のように配置されているパケット情報の先頭アドレス、圧縮データのパターンフラグ書き込み先頭アドレス、第1色書き込み先頭アドレス、および第2/3/4色書き込み先頭アドレスの4つのアドレスをDMAC211へ指定する。DMAC211はその3つのアドレスからデータを読み出し、展開部/圧縮部212へ入力する。
展開部/圧縮部212ではまず4bitのパターンフラグを解釈し、そのブロック内の色数を算出する。第1色データに加え、色数に応じて第2/3/4色データを読み出し、各パターンフラグに対して予め定義されている色データの配置パターン(図5)にしたがって、第1色ならびに第2〜4色の色データを再配置する。これにより、2x2画素ブロックを展開、復号する。また、展開部/圧縮部212で画像サイズを1/4として処理を行う場合には、前述したように、パターンフラグと2、3、4色データを必要としないので、DMAC211には第1色書き込み先頭アドレスのみ指定し、メモリからは第1色データのみ読み込みを行う。こうすることでメモリバスの帯域を節約することが可能になる。
[圧縮方法]
前述した画像圧縮方法で高圧縮になることが期待される画像は、画像内で隣接画素値が同色ないし減色を行い同じとみなせるだけ十分近いレベルしか違わないような領域が多い画像である。そういった画像領域に着目すると、2x2画素のブロック内部だけでなく隣接する2x2画素のブロックも含めて同色ないし十分同色とみなせるだけ差が小さい場合が多い。そこでこれまでに述べたブロック内で閉じた圧縮方法に加え、隣接ブロックの類似性も含めて圧縮処理を行う別の圧縮方法に関して説明する。この別の圧縮方法は、第1圧縮部300の画像圧縮部1,2で実行されるものとする。
図7に2x2のブロックがとりうるパターンフラグの場合の数を記述したが、15通りのパターンを4bitで表現している。4bitのパターンフラグでは16通りまで表現可能なので、1通りまだ利用出来る余地がある。そこで、現在処理しているブロックの一つ前のブロックに対して処理を行った際に、その画素値を記憶しておく。そして、現在のブロックと全画素一致(もしくは減色した際十分近い)と判断出来る場合にはそのブロック内の画素値(色データ)を第1色および第2/3/4色データとして出力せず、前ブロックと同じというフラグだけを立てる。このフラグに4bitの残りの1通りを割り当てることで、前述したパターンフラグのビット数を変化させることなく、データのさらなる圧縮が可能になる。例えば、図7に示すように、パターンフラグ0〜Eまでが配置パターンとして割り当てられているため、“F”を、前ブロックと一致であること(すなわち、繰り返し)を示すパターンフラグとして追加する。
こうして新たなパターンフラグを追加した入出力の関係を図9に示す。図9では、新たなパターンフラグとして、前のブロックと同じパターンであることを示すパターンフラグ“F”(以下、リピートフラグと称する)を追加した場合のビット数を示す図である。パターンフラグがFのブロックは、前のブロックの画素値(色データ)とパターンフラグとを参照して展開することが可能となるので、画素値(色データ)を格納しなくて済み、圧縮率が向上する。ただし、後段で第1色の色データを用いて圧縮処理が行われる場合は、前のブロックと同じ色配置のブロックに対しては、リピートフラグとともに第1色の色データを出力するものとする。
例えば、第一圧縮部300の画像圧縮部1(302)における処理の場合は、第1色の色データを用いて後段の画像圧縮部2(303)での圧縮処理が行われる(つまり、第一圧縮部300での最終処理でない)。したがって、前のブロックと同じ色配置のブロックに対しては、リピートフラグと第1色の色データとが出力される。なお、前のブロックと異なる色配置のブロックに対しては、色データの配置パターンを示すパターンフラグと第1色の色データと第2〜4色の色データとが出力されることになる。
また、第一圧縮部300の画像圧縮部2(303)における処理の場合は、後段の第二圧縮部301で圧縮符号化が行われるように設定されているか否かに応じて処理が切り替わる。すなわち、第二圧縮部301で圧縮符号化が行われるように設定されている場合は、前のブロックと同じ色配置のブロックに対しては、リピートフラグと第1色の色データとが出力される。一方、第二圧縮部301で圧縮符号化が行われないように設定されている場合は、前のブロックと同じ色配置のブロックに対しては、リピートフラグのみが出力される。
[圧縮処理フロー]
第一圧縮部300の画像圧縮部1および2(302、303)において、リピートフラグを出力する場合(つまり、前のブロックと同じ色配置のブロックの場合)に、第1色の色データを一緒に出力するか否かを切り替える処理フローを図10に示す。まず、DMACなどのデータ転送部は、ラスタ画像データを入力し、圧縮処理を開始する。画像圧縮部は、入力された画像データから2x2画素のブロックを切り出す(S1001)。2x2画素のブロックを順に処理対象として、以降の処理を行う。そして、処理対象のブロックが最初のブロックであれば(S1002にてYES)、このブロック以前に処理されたブロックはないので、前述した図8と同様の圧縮処理を行う(S1005)。一方,処理対象のブロックが最初のブロックでない場合(S1002にてNO)、1つ前に処理し、記憶していたブロックとの差分算出を行う(S1003)。この処理は例えば、同じ座標位置での画素値の差の絶対値の和を求める事で可能である。
前ブロックとの差が閾値以上の場合には(S1004にてNO)、前ブロックとの差が大きいため前ブロックのデータの再利用は出来ないと判断し、前述した図8と同様の圧縮処理を行う(S1005)。ここでの差異の基準となる閾値は、予め定義されているものとする。なお、画像データの特性等によって変更されても良い。その後、画像圧縮部は、そのブロックの第1色および第2/3/4色データの展開を行い(S1006)、展開ブロックを前のブロックのデータとして記憶更新しておく(S1007)。そして、当該処理対象のブロックのパターンフラグと第1色の色データおよび第2/3/4色の色データとを、それぞれのバッファに出力する(S1008)。
一方、前ブロックとの差が閾値より小さければ(S1004にてYES)、1つ前に処理をして記憶した記憶ブロックと現在処理対象のブロックとの画素値が近いと判断し、S1009へ進む。そして、現在実行している画像圧縮が、第一圧縮部300における最終の画像圧縮処理であるか否かを判断する(S1009)。第一圧縮部300における最終処理でない(すなわち、第一圧縮部300の画像圧縮部1(302)の処理であって、画像圧縮部2(303)の処理が次に行われる)と判断した場合は、S1010に進む。一方、第一圧縮部300における最終処理である(すなわち、画像圧縮部2(303)による処理である)と判断した場合は、S1011に進む。
最終の画像圧縮処理であるか否かの判断は、レジスタ部313の情報から画像圧縮部1および2(302、303)が判断する。レジスタ部313は、入力データの解像度情報(圧縮前の解像度)と出力データの解像度情報(圧縮後の解像度)の設定情報を保持可能な構成である。また、画像圧縮部1および2(302、303)は各々入力データを何回圧縮処理したかを検出可能な構成である。上記の構成にすることで、圧縮部252は、画像圧縮処理した実行回数と入出力の解像度情報から、第一圧縮部300における最終の画像圧縮処理であるか否かの判断(目的とする解像度に圧縮されたか否か)が可能となる。
第一圧縮部300における最終処理であれば、第二圧縮部301における圧縮処理が設定されているか否かを判断する(S1011)。つまり、第一圧縮部300の圧縮処理の後に第二圧縮部301による圧縮処理の有無によって生成する情報を変更する。
S1009において第一圧縮部300における最終処理でないと判定した場合、あるいは、S1011において、第一圧縮部300による画像圧縮処理よりも後に第二圧縮部301において圧縮処理が設定されていると判定した場合、「第1色生成オンモード」として、第1色の色データとパターンフラグとを作成する(S1010)。このとき、当該処理対象ブロックの第2/3/4色の色データは、前のブロックと同じであるので出力されない。なお、第1色の色データも前のブロックと同じであるが、後段の処理で第1色の色データが必要になるので、第1色の色データも出力されてバッファに格納される。
一方、圧縮部202全体として最終の圧縮処理である(すなわち、第一圧縮部300の画像圧縮部303の処理であって、且つ第二圧縮部301での圧縮処理が設定されていない)と判断できる場合は(S1011にてNO)、「第1色生成オフモード」として、パターンフラグFの生成のみを行い、第1色の色データは出力しない(S1012)。そして、着目ブロックが最後のブロックかを判定し(S1013)、最後のブロックとなるまで繰り返す(S1013にてYES)ことで、画像全体を圧縮する。
[モード切替]
前述した「第1色生成オンモード」と「第1色生成オフモード」を切り替えることで、第一圧縮部300を実行した時のデータ生成例を図11に示す。図11は、入力されたラスタ画像が64x64画素のタイル画像であるとして、入力されたラスタ画像を2x2画素のブロックに分割し、各ブロックをラスタ画像の主走査方向順に処理するものとする。
例えば、タイル画像における画素位置を(0,0)から(63、63)で示すものとして、以下に図11の2×2画素ブロックそれぞれの画素位置を説明する。ここで、図11の「第m−nブロック」とは、「画像圧縮部m」によって処理される「第n番目の2×2画素ブロック」という意味である。すなわち、図11の第1−1ブロックに含まれる各画素の座標位置は、(x、y)=(0,0)/(0,1)/(1、0)/(1,1)となる。また、第1−33ブロックに含まれる各画素の座標位置は、座標(2,0)/(2,1)/(3,0)/(3,1)である。図11の画像圧縮部1(1100)、画像圧縮部2(1101)には、各ブロックにおいて判定されたパターンフラグと出力される色データの例を示している。
また、画像圧縮部1(1100)と画像圧縮部2(1101)の間の画像バッファ1(1102)に、画像圧縮部1(1101)の第1色データが格納される状態を示している。画像圧縮部1(302)は、レジスタ部313の情報に基づき、第一圧縮部における最終処理でない(すなわち、画像圧縮部2(303)による画像圧縮が後で実行される)ことを判断される。したがって、第1−2ブロックに対しては、その前のブロック(第1−1ブロック)と同じ画素配置であった場合、判定されたパターンフラグFと第1色の色データとを出力し、第2/3/4色の色データは出力しない。
すなわち、画像圧縮部1(302)は、第1−2ブロックに対するパターンフラグとして、同一情報(前のブロックと同じ配置及び色情報の繰り返し)を示す0xFを生成するとともに、第1色の色データを出力する。また、画像圧縮部1(302)は、第1−33ブロックに対して、4色とも異なる色であると判定して、パターンフラグ0xEを生成する(なお、前ラインと同一ブロックが連続すれば連続とすることも可能である)。画像圧縮部1(302)は、続く第1−34ブロックが第1−33ブロックと同じ配置である場合、パターンフラグ0xFと第1色の色データとを出力する。
次に、画像圧縮部1(302)を実行した結果について説明する。画像圧縮部1(1100)の各ブロックから出力される第1色の色データは元の画像の半分の解像度の画像を示しており、この半分の解像度の画像を2×2画素ごとに分割したブロックが、画像バッファ1(1102)に格納される。第2−1ブロックは、第1−1、1−2、1−33、1−34ブロックから生成された第1色の色データからなる。第2−2ブロックは、第1−3、1−4、1−35、1−36ブロックから生成された第1色の色データからなる。図11の例では、画像圧縮部2(303)は、第2−1、2−2ブロックとも1色データで、かつ、同一ブロックが連続していると判定したものとする。ここでは、第2−2ブロックに対する処理結果は、2通り考えられる。レジスタ部313の第二圧縮部301から取得した実行制御情報から、画像圧縮部2(303)が、第二圧縮部301において符号化処理を実行するように設定されていると判定した場合、画像圧縮部2(1101)では第1色の色データを出力する。したがって、第2−2ブロックに対して画像圧縮部2で処理した結果は、第2−2ブロック1104に示すように、パターンフラグFと第1色の色データとを出力する。そして、パターンフラグと第1色の色データとを記憶領域であるメモリ106に格納する。これは、図10のS1011にてYESである場合を意味し、第1色生成オンモードとなる。
一方、画像圧縮部2(303)が、第二圧縮部301において圧縮符号化を実行しないように設定されていると判定した場合、画像圧縮部2(1101)では、第2−2ブロック1103に示すように、パターンフラグFのみ出力し、色データは出力しない。従って、パターンフラグのみを記憶領域であるメモリ106に格納する。これは、図10のS1011にてNOである場合を意味し、第1色生成オフモードとなる。
このように、画像圧縮処理が最終処理であるか否かの制御情報に基づいて、前のブロックと同じ色配置のブロックに対して、リピートフラグとともに第1色情報を生成するか否かの切り替え制御を行う。本発明では、これらの制御情報は、レジスタ部313から出力される制御信号314を有するものとしているが、後述するパケットのヘッダ部1303に記述されていても良い。
[データ処理方法]
続いて、図12〜図14を用いて、文書1ページのラスタ画像1200を、所定サイズ(例えば64×64画素)のタイル画像1201に分割し、タイル画像単位で第一圧縮部300および第二圧縮部301による処理を実行した場合のデータ処理方法について説明する。なお、タイル画像1201は、複数の2×2画素ブロックから構成されているものとする。第一圧縮部300では、タイル画像1201を2x2画素のブロック1202単位に、上述した圧縮処理を行い、バッファ311に格納する。パケット情報生成部312は、図13に示すように、パケット化処理を行う。
パケット情報は、圧縮データ部1302とヘッダ部1303とからなる。さらに、ヘッダ部1303には、対象タイルの画像圧縮結果に関する情報1304が記載されている。ページIDとは、現在処理を実行しているページ情報を示すものである。タイル座標とは、ラスタ画像1200に示されているように各タイルに対して、主走査方向順に番号を振ったものである。色空間は圧縮時における元画像の色空間である。画素データのビット数は、1画素1色あたりのビット数である。
データサイズは、第1色または符号化データ部のデータサイズおよび、第2/3/4色のデータサイズ情報である。属性情報は、各画素データの特性を示すものであり、写真や文字情報などの情報を画素データと共に保持しているかいないかを示すフラグ情報である。圧縮フラグとは、第一圧縮部300による処理を実行する際に、周辺ブロック情報を参照して、色情報の圧縮処理を行い、データサイズの圧縮を行ったか否かを示すフラグ情報である。圧縮データ種別とは、第一圧縮部300における処理のみか、第二圧縮部301までの処理を実行したかを示すフラグ情報である。なお、ヘッダ部1303に含まれる情報は上記に限定されるものではなく、必要に応じて追加しても良い。
このように第一圧縮部300、第二圧縮部301、パケット情報生成部312によって生成されたデータがメモリ空間上に書き込まれる情報を図14に示す。パケット情報アドレス部には、各タイルのタイル座標と、各パケットのサイズ情報が書き込まれている。また、先頭パケットアドレスから各タイルを圧縮したデータが順に書かれている。CPU105は、メモリ106に書き込まれたパケット情報の先頭アドレスと、先頭パケットアドレス情報をDMACに指示する。
DMACは、パケット情報アドレス部から、各タイルのデータサイズを読み出す。続いて、ヘッダ部1303から、前述した情報を読み出し、パターンフラグ、第1色または符号化データ、第2/3/4色情報を各々読み出し、色処理部213などの画像処理部にデータを転送する。
このような画像処理システムにおける本発明の圧縮方法について、後述する実施形態に用いて説明する。
[プリント処理]
第一実施形態における、実行するジョブの種類、つまり、画像のデータパスに応じて、パターンフラグと第1色情報の生成方法が変わることを説明する。図15にプリント処理を実行する場合のデータパスを示す。PCが出力したPDLデータは、CPU105によってインタープリットされ、ディスプレイリストとしてメモリ106に格納される。続いて、レンダリング部251は、メモリからディスプレイリストを読み出し、レンダリングを行う。レンダリング部251は、ラスタ展開した画像を圧縮部252に転送する。
プリント処理の場合、圧縮部252は、第一圧縮部300、および第二圧縮部301で圧縮処理を行い、第1色の色データに対してJPEG符号化を行って圧縮率を向上させるように設定する。そのため、第一圧縮部300の画像圧縮部1および2(302、303)は、同一ブロックが連続して出現する場合、パターンフラグとして繰り返しを示す0xFを出力するとともに、第1色の色データも出力する。そして、第二圧縮部301は当該出力された第1色の色データに対してJPEG符号化を行う。圧縮部252は、圧縮データをDMAC253に転送し、DMAC253はメモリ106に第一圧縮部300および第二圧縮部301により実行されたパケット(以下、「第二圧縮パケット」と呼ぶ)を書き込む。
CPU105は、さらにDMAC241の書き込み動作とDMAC253の読み出し動作が連動するように制御情報を入力する。例えば、レンダリング部251が一定のライン数分のラスタ画像を生成し、第二圧縮パケットがメモリ106に格納されると、DMAC241が読み出しを開始する制御を行うことが可能である。DMAC241は、メモリ106に格納された第二圧縮パケットを順次、ディスクスプール242に転送し、ディスクアクセスコントローラ243を介して、HDD記憶部107に第二圧縮パケットを格納する。
CPU105は、プリントする1ページ分の第二圧縮パケットがHDD記憶部107に格納されていることを検知してプリンタ103からのプリント要求があると、HDD記憶部107からメモリ106へデータを転送する指示を行う。CPU105は、読み出しDMAC221にメモリ106からデータを読み出す制御を行う。DMAC221は、展開部222にデータを転送し、展開部222は圧縮データをラスタ情報に復元する。ここでは、第二復号化部でJPEG部分を復号化し、更に、第一復号化部でパターンフラグと第1色の色データと第2/3/4色の色データとに基づいて、ラスタ画像に復号化し、プリント用画像処理部223に転送する。プリント用画像処理部223のプリンタ103への転送部は、プリンタへデータを転送する。
次に、別のプリント処理のジョブについて説明する。図16を用いて、1200dpiでレンダリング後に、300dpi相当の画像に圧縮処理を行い、色処理部213による色処理を実行してからプリントする場合のデータパスについて説明する。色処理部213は、第一圧縮部300の圧縮処理データ、つまりは、第1色および第2/3/4色データを参照して、直接色処理を実行できるようにするため、第二圧縮部301による圧縮処理を行わないように設定する。第二圧縮部301の処理を行わないように設定することで、圧縮および復号化処理の負荷も軽減できる。この時、CPU105は、レンダリングの後にメモリ106へ格納した後、圧縮部252は、第二圧縮部301による圧縮を行わない制御を行う。
このとき、圧縮部252の第一圧縮部300の画像圧縮部1(302)は、画像圧縮部2(303)の処理を実行する制御情報を取得しているため、前のブロックと同じ色配置のブロックに対して、パターンフラグ(0xF)と第1色の色データ(第1色情報)とを生成する。一方、画像圧縮部2(303)は、第二圧縮部301による圧縮を行わない制御情報を取得しているため、同じ色配置のブロックに対しては、パターンフラグ(0xF)のみ生成し、第1色情報を生成しない。上記の制御情報は、CPU105がレジスタ部313にその処理内容を指定する。パケット情報生成部312は、CPU105がレジスタ部313に指定した情報から、ヘッダ部1303の圧縮データ種別に「第一圧縮パケット」情報であることを付加することで、展開部/圧縮部212が動作可能となる。
展開部/圧縮部212は、DMAC211から転送されたデータを解析するパケット情報解析部(不図示)がヘッダ部1303に含まれる情報を解析し、第二復号化部の処理を行わない制御を行う。第一復号化部の画像展開部2(不図示)は、同一ブロックに対して第1色データが削除されていると判断して動作する。画像展開部1(不図示)は、同一ブロックに対してもデータが生成されていると判断して動作する。色処理部213の処理が実行された後のプリント画像パスは、レンダリング後の圧縮後のデータパスと同様である。
[処理フロー]
上述した図15および図16のような各動作における圧縮部の動作フローを図17に示す。処理が開始されると、画像圧縮部1および2(302、303)、パケット情報生成部312は、CPU105がレジスタ部313に指示した制御情報を受信する(S1701)。画像圧縮部1および2(302、303)は、受信情報から第一圧縮部300のみ実行するモードか否かを判断する(S1702)。第一圧縮部300の処理のみ実行する場合(S1702にてYES)、画像圧縮部1(302)は、後段に画像圧縮部2(303)処理があると判断し、前のブロックと同一の色配置のブロックに対しては、パターンフラグと第1色の色データ(第1色情報)とを生成する制御を行う(S1703)。なお、前述したように、前のブロックと同一の色配置でないブロックに対しては、パターンフラグと第1色の色データと第2/3/4色の色データとが生成される。また、画像圧縮部2(303)は、第二圧縮部301の処理を行わないように設定されていると判断し、前のブロックと同一の色配置のブロックに対しては、パターンフラグ“F”のみを生成し、第1色情報を生成しない(S1704)。
一方、第二圧縮部301の処理を実行するように設定されている場合(S1702にてNO)、画像圧縮部1および2(302、303)は、前のブロックと同一の色配置のブロックに対してはパターンフラグと第1色の色データとを生成する(S1705、S1706)。なお、前述したように、前のブロックと同一の色配置でないブロックに対しては、パターンフラグと第1色の色データと第2/3/4色の色データとが生成される。第二圧縮部301の第二圧縮方式判定部308は、第一圧縮部300における処理が終了した情報を受信すると、第2/3/4色情報のデータ量を判断する(S1707)。ここでのデータ量の判断は、所定の閾値に基づき、その閾値に対する大小で判断する。なお、閾値は予め定義されているものとし、その値は画像の特性に合せて変更されても良い。第2/3/4色情報のデータ量が多ければ(S1707にてYES)、非可逆符号化方式を選択し、非可逆符号化部305において、画像バッファ2(304)のデータの非可逆符号化処理を行う(S1708)。一方、第2/3/4色情報のデータ量が少なければ(S1707にてNO)、可逆符号化方式を選択し、可逆符号化部306において、画像バッファ2(304)のデータの可逆符号化処理を行う(S1709)。S1704、S1708、S1709の処理の後、パケット情報生成部312が第一圧縮部300及び第二圧縮部301の処理が終了したことを判断して、パケット情報を生成する(S1710)。以上により、本処理フローを終了する。
以上、本発明により、処理コストを抑えつつ、高解像度画像データに対して高い圧縮率によって符号化を実現することができる。また、符号化後に、その圧縮データのまま画像処理を容易に行うことが可能になる。
<第二実施形態>
第一実施形態にて述べた図3に示した第一圧縮部300の構成の場合、画像圧縮は、2段階までしか対応できないことになる。例えば、1200dpi→600dpi→300dpiなどである。しかし、解像度の異なる複数の文書データ(高解像度のデータと中解像度のデータ)を一様に300dpiに揃えて、製本のための画像処理などを行えるようにするため、第二実施形態の装置では図18に示す構成を追加する。一つは、図18のバッファ311から画像圧縮部1(302)に対するデータパス1801である。もう一つは、画像圧縮部1(302)の出力データである画像バッファ1(320)および、画像圧縮部2(303)の出力データである画像バッファ2(304)の出力を画像圧縮部1(302)へフィードバックするデータパス1802である。さらに、画像圧縮部1および2(302、303)に画像圧縮処理を省略する制御も追加する。そうすることで3段階(2400dpi→300dpiなど)以上の画像の解像度圧縮処理が可能となる。
[圧縮処理]
メモリ106とHDD記憶部107上に格納されている2つの異なる解像度のデータを同解像度に揃えて一つのデータに統合(製本)処理を行う処理について説明する。図19は、2400dpiでレンダリングされた第二圧縮パケットと、1200dpiでJPEGイメージを圧縮した第二圧縮パケットを一つのデータに変換する例である。まず、DMAC211は、メモリ106に格納されたレンダリング後の第二圧縮パケットデータを読み出し、展開部/圧縮部212へ転送する。展開部/圧縮部212は、色処理部213による処理後、画像圧縮処理を行う。この時、第一圧縮部300は、2400dpiで生成されたデータを画像圧縮部1→画像圧縮部1→画像圧縮部2の順で合計3回の圧縮処理を実行し、第二圧縮部301は、圧縮処理を行わず、第一圧縮パケットのままメモリ106へ転送する。画像圧縮部1および2の処理回数の配分は上記に述べた以外も可能である。
一方、HDD記憶部107に格納されたJPEGイメージの第二圧縮パケットデータは、展開処理、および色処理が実行された後、第一圧縮部300が、画像圧縮部1→画像圧縮部2の順で、第一実施形態と同様に圧縮処理を行い、メモリ106へ格納する。その結果、300dpiに画像圧縮された第一圧縮パケットが、メモリ106上に格納される。そして、CPU105が、図14で前述したパケット情報を書き換えることでデータが統合される。
本実施形態のように、第一圧縮部300に対して、圧縮後の最終解像度情報を制御情報として使用する場合の圧縮部の処理フローについて図20を用いて説明する。なお、図17の処理フローと同一の箇所については説明を省略し、差分のみを説明する。まず、第一圧縮部300の処理のみ実行する場合、画像圧縮部1(302)は、最終圧縮解像度処理であるかを判定する(S2001)。最終画像圧縮処理の場合は(S2001にてYES)、画像圧縮部1(302)は処理を行わず、画像圧縮部2(303)が圧縮処理を実行する。最終画像圧縮処理でない場合(S2001にてNO)、画像圧縮部1(302)での処理を行った後(S1703)、画像圧縮部2(303)が、画像圧縮部2(303)の次の画像圧縮が最終処理であるか否かを判定する(S2002)。最終処理でない場合(S2002でNo)は、画像圧縮部1(302)での処理を繰り返し行う。第二圧縮部301で圧縮符号化を行わないので、S1704においては、前のブロックと同一の色配置のブロックに対しては、第1色の色データを出力せずに、パターンフラグのみ出力する。
一方、第二圧縮部301での圧縮符号化処理を実行する場合においても、同様に最終圧縮解像度であるか否かの判定を行う(S2003、S2004)。この場合、第二圧縮部301で第1色の圧縮符号化処理を行うため、S1706においては、前のブロックと同一の色配置のブロックに対しても第1色情報は生成する。
最終解像度であるか否かの判定は、画像圧縮部1(302)の処理を何度実行するかの制御として用いられる。つまり、最終圧縮解像度になるまでは、画像圧縮部1(302)により繰り返し圧縮処理が実施される(S1703もしくはS1705)。
第一実施形態の効果に加え、高解像度画像データに対して更に高い圧縮率によって符号化を実現することができる。また、符号化後に、その圧縮データのまま画像処理を容易に行うことが可能になる。
<第三実施形態>
第一実施形態及び第二実施形態では、動作モードに基づいて、第二圧縮部301による処理を行うか否かを分けていた。しかし、図21および図22において示すように、CPU105が第二圧縮部301による処理を行うように制御をする場合においても、第二圧縮部301の処理を行わずに、第一圧縮部300による処理結果のままメモリ106へ格納した方が良いケースがある。第一及び第二実施形態では、第二圧縮パケットを生成する場合、図13の第1色格納部or符号化データ格納部は、第二圧縮部301で圧縮符号化後のデータを格納する符号化データ格納部として機能していた。それに対し、第三実施形態では、第二圧縮部301による処理を行うように設定されていたとしても、タイルの特性により第二圧縮部301で圧縮符号化を行っていないデータを格納する第1色格納部として機能する場合があることを意味している。
図21は、単色のタイル2101(例えば、64x64画素が白一色のタイル)の場合における各圧縮処理を行った後のデータ量を示している。例えば、第一圧縮部300の画像圧縮部1(302)の後は、全ブロックが同一であるにも関わらず、画像圧縮部2(303)の処理があるため、第1色部は3072byteとなる。続いて、画像圧縮部2(303)処理を実行すると、第1色部は128byteとなり、第二圧縮部301を実行することで、符号化データ部は30byteまで圧縮される。
一方、図22のような制御を追加することで、第1色部(と符号化データ部との兼用格納部)のデータ量はさらに削減できることを示す。画像圧縮部1(302)にカウンタ部2201を追加し、同一ブロックが連続した回数をカウントする機能を持たせる。そこで、画像圧縮部2(303)は、圧縮処理実行前にカウンタ情報2202を読み出す。画像圧縮部2(303)は、連続したブロックの数が、予め設定された閾値よりも大きいブロック数を示す場合は、第二圧縮部301の処理を実行するように指定されていても、画像圧縮部2(303)は、自身を最終圧縮とするように変更する。すると、画像圧縮部2(303)は、第1色生成オフモードに設定するため、第1色部を3byteまで圧縮(2203)することが可能である。この場合は、第二圧縮部301にて処理を行わずにデータを生成(2204)し、第一圧縮部300の処理モード情報をパケットのヘッダ部に付加し、第1色部情報としてDMAC203へ転送する。この時は、第一および二圧縮パケットが、1ページの中に混在してメモリ106に格納される。なお、連続するブロック数に対する閾値については、画像の特性に合せて定義されても良いし、固定値を用いても良い。
図23において、さらに圧縮方法の制御情報を変更するケースを追加したフローを示す。なお、図20と重複する部分については説明を省略し、差異のみを述べる。画像圧縮部2(303)は、次の画像圧縮が最終処理と判断される場合、画像圧縮部1(302)における同一ブロックの連続数を判定する(S2301)。ここでは、同一ブロックの連続数が所定の閾値以上であるか否かを判定する。連続数が所定の値より小さければ、S1706へ進む。画像圧縮部2(302)は、予め設定された以上の連続数であれば(S2301にてYES)、圧縮制御情報を変更する(S2302)。この場合、第1色生成オフモードで動作する。
なお、1段階の画像圧縮を行う場合は、画像圧縮部1(302)の動作にカウントモードを追加する。カウントモードとは、1回目の画像圧縮が最終処理である場合(S2003にてYES)、画像圧縮部1(302)が連続する同一ブロックをカウントする機能のみを動作させ、データ自体を処理しないことで、同一ブロックの連続数を判定する(S2303)。また、図示していないが、カウントモードを画像圧縮部2(303)に設けることも可能である。
以上、第一および第二実施形態の効果に加え、高解像度画像データに対して更に高い圧縮率によって符号化を実現することができる。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (9)

  1. 画像データを所定サイズのブロックごとに分割し、当該分割されるブロックを順に処理対象にする分割手段と、
    前記分割手段で分割された処理対象のブロック内の色の配置が、1つ前に処理対象になったブロック内の色の配置と同じであるか否か判定する判定手段と、
    前記処理対象のブロック内の各画素の色を比較することにより、当該処理対象のブロックに含まれる色の配置パターンを示すパターンフラグを特定する特定手段と、
    前記処理対象のブロック内の予め定義された位置の画素の色を第1色の色データとして抽出し、更に、当該ブロックに含まれる前記第1色の色データ以外の色データを抽出する抽出手段と、
    前記パターンフラグ、及び、前記色データのうち少なくとも一方を出力する出力手段と
    を有し、
    前記出力手段は、
    前記判定手段で同じでないと判定された場合は、前記特定手段で特定された当該処理対象のブロックに含まれる色の配置パターンを示すパターンフラグと、前記抽出手段で抽出された前記処理対象のブロック内の前記第1色の色データと、前記処理対象のブロック内の前記第1色の色データ以外の色データとを出力し、
    前記判定手段で同じであると判定され、且つ、後段の処理で前記処理対象のブロックの前記第1色の色データを用いた処理が行われる場合は、当該処理対象のブロック内の色の配置が1つ前に処理対象になったブロック内の色の配置と同じであることを示すパターンフラグと、前記処理対象のブロックの前記第1色の色データとを出力し、
    前記判定手段で同じであると判定され、且つ、後段の処理で前記処理対象のブロックの前記第1色の色データを用いた処理が行われない場合は、当該処理対象のブロック内の色の配置が1つ前に処理対象になったブロック内の色の配置と同じであることを示すパターンフラグを出力する
    ことを特徴とする画像処理装置。
  2. 前記分割された各ブロックから出力される前記第1色の色データで構成される画像に対して、再度、前記分割手段と前記判定手段と前記特定手段と前記抽出手段と前記出力手段とによる処理が行われる場合、前記出力手段は、前記後段の処理で前記処理対象のブロックの前記第1色の色データを用いた処理が行われると判定することを特徴とする請求項1に記載の画像処理装置。
  3. 前記後段の処理で、前記分割された各ブロックから出力される前記第1色の色データで構成される画像に対して、可逆符号化処理あるいは非可逆符号化処理を実行するように設定されている場合、前記出力手段は、前記後段の処理で前記処理対象のブロックの前記第1色の色データを用いた処理が行われると判定することを特徴とする請求項1に記載の画像処理装置。
  4. 指定されたジョブの種類に応じて、前記分割された各ブロックから出力される前記第1色の色データで構成される画像に対して可逆符号化処理あるいは非可逆符号化処理を実行するか否かが設定されることを特徴とする請求項3に記載の画像処理装置。
  5. 前記分割された各ブロックから出力される前記第1色の色データで構成される画像に対して、可逆符号化処理あるいは非可逆符号化処理を実行するように設定されている場合、前記後段の処理では、前記第1色の色データ以外の色データのデータ量に基づいて、当該第1色の色データ以外の色データのデータ量が、所定の閾値以上である場合に前記非可逆符号化処理を行い、前記所定の閾値よりも小さい場合に前記可逆符号化処理を行うことを特徴とする請求項3に記載の画像処理装置。
  6. 前記後段の処理で、前記分割された各ブロックから出力される前記第1色の色データで構成される画像に対して、可逆符号化処理あるいは非可逆符号化処理を実行するように設定されている場合に、1つ前に処理対象になったブロック内の色の配置と同じであるブロックが連続する連続数をカウントするカウント手段と、
    前記カウント手段によりカウントされた前記連続数が所定の閾値以上である場合、前記後段の処理で、前記可逆符号化処理あるいは非可逆符号化処理を実行しないように設定を変更する変更手段と
    を更に有することを特徴とする請求項3に記載の画像処理装置。
  7. 前記所定サイズは2×2画素サイズであることを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
  8. 分割手段が、画像データを所定サイズのブロックごとに分割し、当該分割されるブロックを順に処理対象にする分割工程と、
    判定手段が、前記分割工程で分割された処理対象のブロック内の色の配置が、1つ前に処理対象になったブロック内の色の配置と同じであるか否か判定する判定工程と、
    特定手段が、前記処理対象のブロック内の各画素の色を比較することにより、当該処理対象のブロックに含まれる色の配置パターンを示すパターンフラグを特定する特定工程と、
    抽出手段が、前記処理対象のブロック内の予め定義された位置の画素の色を第1色の色データとして抽出し、更に、当該ブロックに含まれる前記第1色の色データ以外の色データを抽出する抽出工程と、
    出力手段が、前記パターンフラグ、及び、前記色データのうち少なくとも一方を出力する出力工程と
    を有し、
    前記出力工程において、
    前記判定工程で同じでないと判定された場合は、前記特定工程で特定された当該処理対象のブロックに含まれる色の配置パターンを示すパターンフラグと、前記抽出工程で抽出された前記処理対象のブロック内の前記第1色の色データと、前記処理対象のブロック内の前記第1色の色データ以外の色データとを出力し、
    前記判定工程で同じであると判定され、且つ、後段の処理で前記処理対象のブロックの前記第1色の色データを用いた処理が行われる場合は、当該処理対象のブロック内の色の配置が1つ前に処理対象になったブロック内の色の配置と同じであることを示すパターンフラグと、前記処理対象のブロックの前記第1色の色データとを出力し、
    前記判定工程で同じであると判定され、且つ、後段の処理で前記処理対象のブロックの前記第1色の色データを用いた処理が行われない場合は、当該処理対象のブロック内の色の配置が1つ前に処理対象になったブロック内の色の配置と同じであることを示すパターンフラグを出力する
    ことを特徴とする画像処理方法。
  9. コンピュータを請求項1乃至7のいずれか1項に記載の画像処理装置として機能させるためのプログラム。
JP2010196094A 2010-09-01 2010-09-01 画像処理装置、画像処理方法、およびプログラム Expired - Fee Related JP5643578B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010196094A JP5643578B2 (ja) 2010-09-01 2010-09-01 画像処理装置、画像処理方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010196094A JP5643578B2 (ja) 2010-09-01 2010-09-01 画像処理装置、画像処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2012054786A JP2012054786A (ja) 2012-03-15
JP5643578B2 true JP5643578B2 (ja) 2014-12-17

Family

ID=45907657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010196094A Expired - Fee Related JP5643578B2 (ja) 2010-09-01 2010-09-01 画像処理装置、画像処理方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP5643578B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408542A (en) * 1992-05-12 1995-04-18 Apple Computer, Inc. Method and apparatus for real-time lossless compression and decompression of image data
US5787192A (en) * 1994-09-27 1998-07-28 Kabushikaisha Equos Research Image data compression apparatus and image data communication system
JP2006238291A (ja) * 2005-02-28 2006-09-07 Ricoh Printing Systems Ltd カラー画像情報の符号化処理方法、復号化処理方法およびこれを用いた印刷装置
JP2010118760A (ja) * 2008-11-11 2010-05-27 Canon Inc 画像処理装置
JP5116650B2 (ja) * 2008-12-10 2013-01-09 キヤノン株式会社 画像符号化装置及びその制御方法

Also Published As

Publication number Publication date
JP2012054786A (ja) 2012-03-15

Similar Documents

Publication Publication Date Title
US8660347B2 (en) Image processing apparatus and processing method therefor
US8553301B2 (en) Image processing apparatus, method, and program product to perform color-reduction processing for a block
JP5595151B2 (ja) 画像処理装置、画像処理装置における圧縮方法、および、プログラム
US8452083B2 (en) Image processing apparatus, image processing method, and computer-readable medium
US8953220B2 (en) Image processing for rotation of compressed image data
US8780414B2 (en) Image processing apparatus, image processing method, and computer-readable medium for image data compression
US8406517B2 (en) Image processing apparatus and image processing method
JP2000295113A (ja) ハフマン符号化データ圧縮装置
JP2008104164A (ja) 画像処理装置及び画像処理方法
JP2006101010A (ja) 画像処理装置、画像処理方法、ならびにプログラム、記憶媒体
JP2008042685A (ja) 画像処理装置及び方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP5643578B2 (ja) 画像処理装置、画像処理方法、およびプログラム
US8494261B2 (en) Image processing apparatus, image processing method, and computer-readable medium
JP5595142B2 (ja) 画像処理装置及び画像処理方法
US9049404B2 (en) Image processing apparatus and method that perform multiple image processes, and storage medium storing a program thereof, for decompressing a compressed image according to first and second information indicating image processing to be performed
JP5606223B2 (ja) 画像処理装置及びその処理方法
JP2012095227A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2013085173A (ja) 画像処理装置及びその処理方法
JP2013121154A (ja) 画像処理装置
JP2014099742A (ja) カラーモノクロ判定
JP2012074897A (ja) 画像処理装置、画像処理方法、およびプログラム
JP2004159069A (ja) 画像処理装置の制御方法
JP2012054789A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2007166404A (ja) 画像処理装置及び画像処理方法及びコンピュータプログラム及び記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140718

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140911

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141031

LAPS Cancellation because of no payment of annual fees