JP2012010089A - 画像処理装置、制御方法、及びプログラム - Google Patents
画像処理装置、制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2012010089A JP2012010089A JP2010143922A JP2010143922A JP2012010089A JP 2012010089 A JP2012010089 A JP 2012010089A JP 2010143922 A JP2010143922 A JP 2010143922A JP 2010143922 A JP2010143922 A JP 2010143922A JP 2012010089 A JP2012010089 A JP 2012010089A
- Authority
- JP
- Japan
- Prior art keywords
- tile
- correction
- data
- value
- area
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】従来、濃度ムラ、色ムラの補正を行う場合、人手を介して補正箇所の指定や補正方法の指定を行う方法により、多くのハードウェアとともに、補正処理のための長い処理時間が必要となっていた。また、人手を介さない場合、ハードウェアで実現する際には、大規模な処理回路と、かなりの処理時間が必要であった。
【解決手段】タイルに含まれる画素の値から代表値を算出する代表値算出手段と、第一のタイル数からなる第一エリアにおける各タイルの前記代表値の分布に基づき、前記第一エリアに含まれる注目タイルを補正するか否かを判定する判定手段と、第二のタイル数からなる第二エリアにおける各タイルの前記代表値に基づき、前記注目タイルに対する補正値を算出する補正値算出手段と、前記圧縮手段により圧縮された画像データにおける前記タイルそれぞれに対し、前記代表値と、前記判定手段による判定結果と、前記補正値とを付加する付加手段とを有する。
【選択図】 図25
【解決手段】タイルに含まれる画素の値から代表値を算出する代表値算出手段と、第一のタイル数からなる第一エリアにおける各タイルの前記代表値の分布に基づき、前記第一エリアに含まれる注目タイルを補正するか否かを判定する判定手段と、第二のタイル数からなる第二エリアにおける各タイルの前記代表値に基づき、前記注目タイルに対する補正値を算出する補正値算出手段と、前記圧縮手段により圧縮された画像データにおける前記タイルそれぞれに対し、前記代表値と、前記判定手段による判定結果と、前記補正値とを付加する付加手段とを有する。
【選択図】 図25
Description
本発明は、原稿をスキャナ等から入力し、画像データを所定のブロック単位で圧縮する画像データ圧縮及びそれらブロック単位に圧縮されたデータの画像データへの復元処理を行う技術に関する。特に画像データ復元において、原稿の均一色部分に関して、濃度や色味の補正を行う技術に関する。
スキャナ等によって入力された画像データは、原稿の浮きや原稿を照らす光源の光量ムラ等により、原稿上では均一の濃度及び均一の色によってプリントされている部分でも、画像データ上では濃度や色味が異なって入力される。前記濃度ムラや色味ムラは、入力された画像データをプリントする場合、画像の劣化として目立つ事となる。
従来、前記濃度ムラや色味ムラを補正する場合、入力された画像データをモニタ等に表示し、オペレータが指定した補正箇所や補正処理内容の指示に従って、画像データに対して補正を行っていた(特許文献1等参照)。つまり、人手による各種設定が必要となっていた。
また、人手を介さずに前記ムラの補正を行おうとした場合は、元画像データの全てのデータに対して、補正部分や補正量の認識処理を行い、どの部分をどのように補正するかの認識を行う必要があった。その後、認識した情報を元に、再度、元画像データの全てのデータに対して、補正を行う処理を実行する事となる。
以上のように、従来、濃度ムラ、色ムラの補正を行う場合、人手を介して補正箇所の指定や補正方法の指定を行う方法により、多くのハードウェア(機材)とともに、補正処理のための長い処理時間が必要となっていた。
また、人手を介さない場合、元画像の全てのデータに対して、認識処理と補正処理の2回の処理を施さなければいけないため、ハードウェアで実現する際には、大規模な処理回路と、かなりの処理時間が必要である。
また、ソフトウェアで実現させる場合に関しても、その処理内容には大きな処理時間がかかる。
上記課題を解決するために、本願発明は以下の構成を有する。入力された画像データに対し、補正処理を適用する画像処理装置であって、前記画像データを、所定の画素数からなるタイルごとに画素の値および画素の配置に基づいて圧縮する圧縮手段と、前記タイルに含まれる画素の値から代表値を算出する代表値算出手段と、第一のタイル数からなる第一エリアにおける各タイルの前記代表値の分布に基づき、前記第一エリアに含まれる注目タイルを補正するか否かを判定する判定手段と、第二のタイル数からなる第二エリアにおける各タイルの前記代表値に基づき、前記注目タイルに対する補正値を算出する補正値算出手段と、前記圧縮手段により圧縮された画像データにおける前記タイルそれぞれに対し、前記代表値と、前記判定手段による判定結果と、前記補正値とを付加する付加手段とを有する。
色ムラ・濃度ムラ補正の処理に関して、補正処理に必要なハードウェアの増加分の削減、補正処理に必要な処理時間の大幅な削減が可能となる。
<第一の実施形態>
以下、本発明を実施するための圧縮処理及び、展開処理の形態について図面を用いて説明する。図1に、本発明の実施形態のスキャン、プリント、コピーを行うデジタル複合機システム(以降MFPと称する)の全体構成図を示す。
以下、本発明を実施するための圧縮処理及び、展開処理の形態について図面を用いて説明する。図1に、本発明の実施形態のスキャン、プリント、コピーを行うデジタル複合機システム(以降MFPと称する)の全体構成図を示す。
[システム構成]
コントローラ101は画像入力デバイスであるスキャナ102や画像出力デバイスであるプリンタ103と接続する。また一方では、LANや公衆回線(WAN)等ネットワーク104と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行うためのコントローラである。CPU105はシステム全体を制御するプロセッサである。メモリ106はCPU105が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。HDD記憶部107はハードディスクドライブで、システムソフトウェア、画像データを格納する。ユーザーインターフェイス108は、MFPの状態や画像データの表示を行うディスプレイ、ユーザーが本MFPを使用する際に各種設定を行うボタンやスイッチ、テンキー、もしくはディスプレイやボタン等を兼ねたタッチパネルなどが含まれるものとする。
コントローラ101は画像入力デバイスであるスキャナ102や画像出力デバイスであるプリンタ103と接続する。また一方では、LANや公衆回線(WAN)等ネットワーク104と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行うためのコントローラである。CPU105はシステム全体を制御するプロセッサである。メモリ106はCPU105が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。HDD記憶部107はハードディスクドライブで、システムソフトウェア、画像データを格納する。ユーザーインターフェイス108は、MFPの状態や画像データの表示を行うディスプレイ、ユーザーが本MFPを使用する際に各種設定を行うボタンやスイッチ、テンキー、もしくはディスプレイやボタン等を兼ねたタッチパネルなどが含まれるものとする。
[コントローラの動作]
図2を用いて、図1のコントローラ101の動作に関して詳細に説明する。まず、スキャンデータを読み込む場合を説明する。スキャナ102からRGB(RED、GREEN、BLUE)3色の読み取り画像データを受け取ったコントローラ101では、まずスキャナ用画像処理部201にてシェーディング処理やフィルタ処理等の画像処理を行う。そして、圧縮部202にて画像圧縮処理を行う。その圧縮データをDMAC(DIRECT MEMORY ACCESS CONTROLLER)203を介してメモリ106へ格納する。スキャンデータをプリントする場合は、メモリ106に格納されている圧縮データをDMAC211を介して色処理部212へ入力しCMYK(CYAN、MAGENTA、YELLOW、BLACK)色空間へ変換する。そして、それらCMYKの値に対して濃度調整、プリンタガンマ補正等の調整の色処理を行った後、DMAC211を介して再度メモリ106へ格納する。その後プリント用の画像処理を行うために、DMAC221を介して、メモリ106に格納されている圧縮データを読み込み、展開部222にてラスタ画像データへ展開する。ラスタのCMYK画像データをプリント用画像処理部223に入力し、そこでディザ法や誤差拡散法による面積階調処理を行った後、プリンタ103へ出力する。スキャンデータをネットワークへ送信する場合には、メモリ106に格納されている圧縮データをDMAC211を介して色処理部212へ入力し色変換を行う。具体的には、ディスプレイガンマ調整や用紙地色調整等を行った後にYCbCr(輝度、BLUE色差、RED色差)色空間へ変換する。その後再度、DMAC211を介してメモリ106へ格納する。その後送信用の画像処理を行うために、DMAC231を介して、メモリ106に格納されている圧縮データを読み込み、展開部232にてラスタ画像データへ展開する。ラスタのYCbCr画像データに対して送信処理部233ではカラー画像送信であればJPEG圧縮処理を行い、モノクロ2値画像送信であればYデータに対して2値化を行ってからJBIG圧縮等を行い、ネットワーク104へ出力する。
図2を用いて、図1のコントローラ101の動作に関して詳細に説明する。まず、スキャンデータを読み込む場合を説明する。スキャナ102からRGB(RED、GREEN、BLUE)3色の読み取り画像データを受け取ったコントローラ101では、まずスキャナ用画像処理部201にてシェーディング処理やフィルタ処理等の画像処理を行う。そして、圧縮部202にて画像圧縮処理を行う。その圧縮データをDMAC(DIRECT MEMORY ACCESS CONTROLLER)203を介してメモリ106へ格納する。スキャンデータをプリントする場合は、メモリ106に格納されている圧縮データをDMAC211を介して色処理部212へ入力しCMYK(CYAN、MAGENTA、YELLOW、BLACK)色空間へ変換する。そして、それらCMYKの値に対して濃度調整、プリンタガンマ補正等の調整の色処理を行った後、DMAC211を介して再度メモリ106へ格納する。その後プリント用の画像処理を行うために、DMAC221を介して、メモリ106に格納されている圧縮データを読み込み、展開部222にてラスタ画像データへ展開する。ラスタのCMYK画像データをプリント用画像処理部223に入力し、そこでディザ法や誤差拡散法による面積階調処理を行った後、プリンタ103へ出力する。スキャンデータをネットワークへ送信する場合には、メモリ106に格納されている圧縮データをDMAC211を介して色処理部212へ入力し色変換を行う。具体的には、ディスプレイガンマ調整や用紙地色調整等を行った後にYCbCr(輝度、BLUE色差、RED色差)色空間へ変換する。その後再度、DMAC211を介してメモリ106へ格納する。その後送信用の画像処理を行うために、DMAC231を介して、メモリ106に格納されている圧縮データを読み込み、展開部232にてラスタ画像データへ展開する。ラスタのYCbCr画像データに対して送信処理部233ではカラー画像送信であればJPEG圧縮処理を行い、モノクロ2値画像送信であればYデータに対して2値化を行ってからJBIG圧縮等を行い、ネットワーク104へ出力する。
スキャンデータを保存する場合には、メモリ106に格納されている圧縮データをDMAC241を介してディスクスプール高圧縮/展開部242へ入力する。ディスクスプール高圧縮/展開部242では、HDDの書き込みスピードがメモリに対して遅いため、さらに高圧縮のJPEG圧縮を施す。その後、ディスクアクセスコントローラ243を介してHDD記憶部107へ圧縮データを保存する。保存されているデータを再度メモリへ展開する場合は、ここまで述べた流れと逆処理を行う。
[メモリへの書き込み]
PDLのデータをメモリへ書き込む場合を説明する。図2では図示していないが、図1にてネットワークから送られてきたPDLデータをCPU105にてインタープリットしメモリ106へディスプレイリストを出力する。その後、メモリ106に格納されているディスプレイリストをレンダリング部251にてラスタのRGB画像データへレンダリングを行い、圧縮部252にて画像圧縮処理を行う。その圧縮データをDMAC253を介してメモリ106へ格納する。PDL画像データをプリント、ネットワークへ送信、保存する場合はスキャンデータのそれと同様の処理を行うことで実現する事が可能になる。
PDLのデータをメモリへ書き込む場合を説明する。図2では図示していないが、図1にてネットワークから送られてきたPDLデータをCPU105にてインタープリットしメモリ106へディスプレイリストを出力する。その後、メモリ106に格納されているディスプレイリストをレンダリング部251にてラスタのRGB画像データへレンダリングを行い、圧縮部252にて画像圧縮処理を行う。その圧縮データをDMAC253を介してメモリ106へ格納する。PDL画像データをプリント、ネットワークへ送信、保存する場合はスキャンデータのそれと同様の処理を行うことで実現する事が可能になる。
[圧縮処理およびパターンフラグ]
以降ではラスタ画像データの圧縮部の詳細に関して説明を行う。まずページ単位のラスタ画像データから2x2画素のブロックを抽出し、そのブロック単位でデータの圧縮を行う。処理の説明の前に、2x2の4画素データ中に占める色数に応じてその組み合わせの場合の数を考える。画素数が4画素なので、そこに占める色数は最大4色になり、ブロック内でたかだか1〜4色の組み合わせしか存在しない。それら4色のパターンのとりうる組み合わせの場合の数を、図3を用いて説明する。
以降ではラスタ画像データの圧縮部の詳細に関して説明を行う。まずページ単位のラスタ画像データから2x2画素のブロックを抽出し、そのブロック単位でデータの圧縮を行う。処理の説明の前に、2x2の4画素データ中に占める色数に応じてその組み合わせの場合の数を考える。画素数が4画素なので、そこに占める色数は最大4色になり、ブロック内でたかだか1〜4色の組み合わせしか存在しない。それら4色のパターンのとりうる組み合わせの場合の数を、図3を用いて説明する。
まずブロック内が1色の場合、4画素が同色で構成されている事になるので、その組み合わせは1通りである。次にブロック内が2色の場合を考える。2色が4画素内へレイアウトされる場合の数は、左上の画素を第1色、他方を第2色として考えると、左上以外残りの3画素へ第1色もしくは第2色が入るので、4画素同色の場合を除くと、全部で7通りの組み合わせが考えられる。
次にブロック内が3色の場合を考える。3色が4画素内へレイアウトされる場合の数は、3色のうち1色だけ2度使われる場合の数と言い換える事ができ、4画素の座標のうち、2画素が同じ色になる場合の数を求めればよい。つまり3色の場合の数は、4つの座標から2つの座標を取る組み合わせとなり、全部で6通りとなる。
最後にブロック内が4色の場合は1色の場合と同様1パターンしか存在しない。これら1〜4色すべての場合の数を合計すると全部で15通りのパターンが考えられる。これらすべてのパターンを識別するためにフラグを付与する事を考えると、データ量としては4bit必要となる。図示すると図4のようになり、以降このフラグをパターンフラグと呼ぶ。
上記のように2x2画素の取りうる組み合わせを踏まえて、圧縮部202、252にて行われる処理フローを、図5を用いて説明する。入力としては、例えばRGBそれぞれ8bitの256階調を持っており、またデータとしては8bitデータの点順次で1画素あたり24bit画像として説明を行う。
まず2x2画素のブロックを入力する(S501)。そして、そのブロック内全ての2画素の組み合わせに対して24bitのコンペアを取る(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を出力する。前述の通り、4画素で色の一致から出現しうるパターン数は15通りなので、その6bitのコンペア結果に対して4bitのパターンフラグへ変換することが可能である(S503)。4bitのパターンフラグへ変換したら続いて、4画素内で出現した色数および色データを抽出する(S504)。パターンフラグから、左上を第1色とした場合の第2色以降がどの位置にあるか求める事が出来る。
ここで、図7を参照しながら入力データに対する出力データの構成について説明を行う。例えば4画素内が1色で構成されていることが確定した場合には、2色目以降は存在しないので、パターンフラグ4bitと1色目の24bitを出力する(S506)。また4画素内が2色で構成されていることが確定した場合(S507)には、その2色目の座標をパターンフラグより算出し、パターンフラグ4bitと2色分の画素値48bitを出力する(S508)。3色、4色の場合も同様である(S509、S510、S511)。この時ブロック内の座標(左上から右上、左下、右下の順に1、2、3、4)順にこれまで出現していなかった色データを記憶する。以上により、処理を終了する。
このように、2x2画素のブロック内の4色96bitの入力データを4bitのパターンフラグとそこに存在する色数だけ画素値を出力することで、比較的簡単な処理で出力データ量を削減することが可能になる。またパターンフラグを参照することで、そのブロック内の色数及びその配置パターンを特定することが可能になる。この処理を画像ブロック全てに対して行うことで、画像全面のデータ圧縮が可能になる。
なお、ブロックを構成する画素数は2x2画素に限定するものではなく、必要に応じて増加させても良い。その場合には、パターンフラグとして必要とする値も変更になることはいうまでも無い。
[データ書き込み構造]
このようにして求めたパターンフラグと、色データをDMACを通じてメモリに書き込むが、その時DMACではパターンフラグと第1色のデータと、第2,3,4色の書き込み位置を変える。DMACにはパターンフラグ書き込みのためのメモリ先頭アドレスと、第1色データの書き込みのためのメモリ先頭アドレスと、第2,3,4色データの書き込みのためのメモリ先頭アドレスの3つのアドレスを指定する。図8にその例を図示する。
このようにして求めたパターンフラグと、色データをDMACを通じてメモリに書き込むが、その時DMACではパターンフラグと第1色のデータと、第2,3,4色の書き込み位置を変える。DMACにはパターンフラグ書き込みのためのメモリ先頭アドレスと、第1色データの書き込みのためのメモリ先頭アドレスと、第2,3,4色データの書き込みのためのメモリ先頭アドレスの3つのアドレスを指定する。図8にその例を図示する。
例えばサイズがMxN画素のRGB各色8ビット画像を圧縮部へ入力する場合、パターンフラグのデータサイズはMxN/8バイトである。また、第1色のデータサイズはMxNx3/4バイト、第2,3,4色のデータサイズは画像によって不定(画像によって異なる)の出力となる。ここで第1色書き込み位置以降のメモリ領域に関しては、画素データがピクセル単位で量子化や符号化されることなく格納されている。つまり、1画素入力、1画素出力で完結する色処理、例えばLUTを用いた色変換や、ガンマ補正処理、行列演算を用いた色空間変換処理等は特にパターンフラグを参照する必要はなく、直接処理を行うことが可能になる。図2に示している色処理部ではメモリ上の第1色書き込み先頭アドレス以降の画素データをDMAC経由で読み込み、画素単位での処理を済ませた後にメモリ上へ書き戻す。この時なんらかの画素単位処理によって画素のビット数が変わらない場合には、メモリ上同じ場所へ上書きすることでメモリの節約も可能である。
このように圧縮データを直接用いることで、メモリバス上の転送効率が向上し、かつオリジナルの画像に対して少ない画素数のデータに対して処理することになるので、高速処理が可能になる。また図8に示したように、画像データを離散的にメモリ上へ格納することで、第1色部に限ってみると、画像を2x2単位に左上の座標の画素をサンプリングした画像結果がメモリ上で連続して存在することになる。本実施形態で説明しているMFPにおいては、蓄積したPDL画像データやスキャンの画像データのプレビュー表示や、前述したネットワーク送信などの機能も有している。例えばプリント解像度が600dpiであったとしてもプレビューや送信時にそこまでの解像度は通常必要とされず、300dpiやそれ以下で十分な場合が多い。こういった縮小データを得る必要がある場合は、パターンフラグや第2,3,4色を捨て、第1色の画像データのみ扱うことで、簡単に半分のサイズのラスタ画像を得る事が出来る。
例えば前述の例において、600dpiで蓄積されていた場合の縮小送信時を説明する。解像度として400dpiなどサンプリングされている300dpiより大きい解像度が指定されている場合にはパターンフラグも含めて圧縮されているデータを一度展開し公知の変倍を用いて送信する。逆に300dpiより小さい送信解像度指定がされている場合には第1色部のデータのみ用い、指定の解像度へ変倍処理を行うといったように必要な画像サイズに応じて切り替えながらデータの読み込みを行う。
次に、圧縮部と対になる展開部222、232に関して説明する。展開部では前述したようなパターンフラグ、画素データをもとにもとのラスタ画像データへ戻す処理の事を指す。
メモリ上に図8のように配置されている圧縮データのパターンフラグ書き込み先頭アドレス、第1色書き込み先頭アドレス、および第2,3,4色書き込み先頭アドレスの3つのアドレスをDMACへ指定する。DMACはその3つのアドレスからデータを読み出し、展開部へ入力する。展開部ではまず4bitのパターンフラグを解釈し、そのブロック内の色数を算出する。第1色データに加え、色数に応じて第2,3,4色データを読み出し、パターンフラグの形状に応じて画素データを再配置する。これにより、2x2画素ブロックを展開、復号する。
また、展開部で画像サイズ1/2を行う場合には、前述したように、パターンフラグと2,3,4色データを必要としないので、DMACには第1色書き込み先頭アドレスのみ指定し、メモリからは第1色データのみ読み込みを行い、画像を構成する。これにより、メモリバスの帯域を節約することが可能になる。
以上説明してきた構成により、比較的単純な圧縮方式でメモリ容量やメモリバス帯域の節約が可能になるだけでなく、画素単位での画像処理や縮小変倍の処理負荷も削減することが可能になる。
なお本実施形態では2x2画素のブロックを最小単位として記述していたが、これに限るものではない。ブロックの画素サイズを変更する場合には、パターンフラグにて必要とするビット数も変更になることはいうまでもない。また圧縮の説明の際画像データとしてRGB8bitを例として説明していたが、CMYKの色空間を取るものや、グレースケールのデータ、また8bit以外の画素値をとるものでも良い。
[ラスタ画像データ圧縮]
次に、前に述べたラスタ画像データの圧縮部に関して、ランダムアクセス性を高めた実施形態を説明する。前記圧縮方法は画像データに依存してその圧縮データサイズが変わる可変長圧縮処理となっている。そのため圧縮データに対してのランダムアクセス性はなく、画像の一部だけ切り出して処理するなどといった目的には向かない。そこでこれまでに述べた方法に対してよりランダムアクセス性を高める事に着目した圧縮方法に関して説明する。
次に、前に述べたラスタ画像データの圧縮部に関して、ランダムアクセス性を高めた実施形態を説明する。前記圧縮方法は画像データに依存してその圧縮データサイズが変わる可変長圧縮処理となっている。そのため圧縮データに対してのランダムアクセス性はなく、画像の一部だけ切り出して処理するなどといった目的には向かない。そこでこれまでに述べた方法に対してよりランダムアクセス性を高める事に着目した圧縮方法に関して説明する。
図9を用いて詳細を説明する。まずページ単位にラスタ画像データを入力する(S901)。続いて圧縮部の入力となる前記画像データを所定の大きさへ分割する(S902)。本実施形態では32x32画素とする。今後の説明ではこれまでの2x2画素のブロックと区別するために、この構成要素をタイルと呼ぶこととする。図10にタイルとブロックとの関係を図示する。このタイル単位に前述の方法で説明してきた圧縮処理を適用する(S903)。この圧縮処理に関しての説明は割愛する。なお、本実施形態において、タイルを32x32画素から構成されるとして扱っているが、このサイズに限定されるものではなく、必要に応じて増減しても構わない。なお、その場合にはブロックのサイズを考慮して構成することが望ましい。
続いてその圧縮されたタイルデータのデータサイズを算出する。これはパターンフラグサイズ、第1色データサイズ、第2,3,4色データサイズの合計になる。パターンフラグがタイル単位で32x32bit必ず付与されるので、必ずしもオリジナルの画像データよりデータサイズが圧縮される保証はない。そのため、もし圧縮処理を行った圧縮データがオリジナルの画像データサイズを超えてしまった場合には、生の画像データ(すなわち、元の画像データ:以下、生データと称す)を出力する方が画像を保持するトータルの容量として効率が良い。そのため圧縮データと生データとのサイズの比較を行う(S904)。
もし、圧縮データが生データのサイズを超えていた場合には(S904にてYES)、ヘッダ中の圧縮フラグを0にする(S905)。一方、超えていなかった場合(S904にてNO)にはフラグを1にする(S907)。それらの結果を受けてデータサイズが小さいいずれかのデータ(圧縮データもしくは生データ)を1つのデータにパッキングする(S906、S908)。このデータ構造を図11に示す。以後このヘッダも含めたデータの単位を“パケット”と呼ぶことにする。
パケットデータには所定の固定長のヘッダ情報が付与される(S909)。本実施形態において、ヘッダ情報にはページID、タイル座標、色空間、画素データのビット数、タイルのデータサイズ、属性情報の有無、圧縮フラグを記述する。ページIDには、ページ単位にユニークなID番号を付与する。
タイル座標には、そのタイルがページ単位のラスタ画像上どの位置にあるかを記述してある。ここには、X座標とY座標と2次元で座標が書かれているとする。色空間には、そのタイルがRGB画像、CMYK画像、GRAY−SCALE画像のうちのいずれであるかを示す識別子が記述されている。画素データのビット数には、タイル内の1画素あたりのビット長が書かれている。データサイズには、そのタイルの第1色のデータサイズと第2,3,4色のデータのデータサイズがByte単位で記述されている。属性情報の有無には、その画像データに文字や写真といった属性情報が画素単位で付与されているか否かが記述されている。圧縮フラグには、そのタイルが圧縮されたデータが格納されているか、非圧縮のデータが格納されているかのフラグが記述されている。なお、ヘッダ情報に含まれる情報は、上記に限定するものではなく、必要に応じて追加しても良い。
図11のようなパケットにするために、タイル単位で圧縮処理が終了しデータサイズが確定した後、第1色格納部と第2,3,4色格納部の間は詰めた状態でデータをパッキングする。そうした後にDMACを経由し、メモリ上へ出力する(S910)。それに続いてそのパケットの座標とサイズをリストとして列挙し、パケット管理テーブルとして作成する(S911)。パケット管理テーブルの例として図12に示す。これを最後のタイルまで繰り返す(S912)。
このようにしてタイル単位で画像をメモリへ書き出すと図12のようにパケット毎にサイズが異なり、それぞれのパケットの先頭アドレスが不規則になってしまう。そのため先のフローで書き出したパケット管理テーブルを用いて、任意の座標のパケットの先頭アドレスを探索する。先頭パケットの書き込みアドレスが既知であれば、パケット管理テーブルに記載されている座標までのデータサイズをオフセットとして任意のパケットの先頭アドレスを求める事が可能になる。
例えば図13における第3パケットを読み込む場合を考える。その場合、第1、第2パケットのサイズ合計をパケット管理テーブルより求め、先頭パケットのアドレスに対して、オフセットをかけることで第3パケットアドレスを算出する。そして、そこからデータを読み込むことで第3パケットのデータを取得することが可能になる。このようにタイル単位に任意のデータへのアクセスが可能になるので、圧縮した画像データに対する部分的な処理が可能になる。
画像データに対する全てのパケットの処理が完了した時点で、ページ単位のヘッダ情報をTopヘッダとして付加する(S913)。Topヘッダの内容は、図14のように、ページ内で共通となっている情報を付加するものとして、ページID、タイル数、色空間、画像データのビット数等の情報を付加する。また、圧縮後の画像データをメモリや磁気ディスク等に保存する場合には、前記処理の最後に付加されたTopヘッダの格納スペースを各パケットの前に予め空けておき、各パケットデータの格納を行い、最後に出力されてくるTopヘッダを空きスペースに格納する。なお、Topヘッダの構成は、上記で述べたものに限定されるわけではなく、必要に応じて情報を追加しても良い。以上が、圧縮時のフローとなる。
[ハードウェア構成(圧縮処理向け)]
前記圧縮処理を実現する為のハードウェア構成の例を図15に示す。入力I/F1501は、ラスタ画像データの入力を行う。タイル切り出し部1502は、入力されたラスタ画像データを、一旦第1メモリ1503に格納し、32x32画素のタイルデータへの切り出しを行う。圧縮処理部1500は、タイル切り出し部1502によって切り出されたタイルの画像データに対して、圧縮処理を行う。ブロック切り出し部1504は、パターン認識を行う為に、タイルデータ内からブロック(本実施形態では2x2の画素)の切り出しを行う。パターン認識部1505は、ブロックにおけるパターンの認識を行う。色数判定部1506は、ブロック内の色情報を抽出する。
前記圧縮処理を実現する為のハードウェア構成の例を図15に示す。入力I/F1501は、ラスタ画像データの入力を行う。タイル切り出し部1502は、入力されたラスタ画像データを、一旦第1メモリ1503に格納し、32x32画素のタイルデータへの切り出しを行う。圧縮処理部1500は、タイル切り出し部1502によって切り出されたタイルの画像データに対して、圧縮処理を行う。ブロック切り出し部1504は、パターン認識を行う為に、タイルデータ内からブロック(本実施形態では2x2の画素)の切り出しを行う。パターン認識部1505は、ブロックにおけるパターンの認識を行う。色数判定部1506は、ブロック内の色情報を抽出する。
圧縮データ生成部1507は、タイル内の各ブロックのパターン情報と色情報とを、第2メモリ1508に格納しておき、タイル内の全ブロックの処理が完了した時点で1タイル分の圧縮データとしてパッキングを行う。比較部1509は、圧縮データ生成部1507によって生成された圧縮後のデータ量と、圧縮を行わない生データのデータ量の比較を行う。また、比較結果をセレクタ部1510へ出力を行う。セレクタ部1510には、第3メモリ1511に格納しておいたタイルの生データと、圧縮データ生成部1507から出力された圧縮後データの入力を行う。さらに、圧縮後のデータが生データのデータ量を超える場合は生データを、圧縮後のデータが生データのデータ量より小さい場合は圧縮後のデータの出力を行う。ヘッダ情報付加部1512は、セレクタ部1510から出力されたデータに対して、図11に示したようなヘッダ情報を付加する。ヘッダ情報付加部1512でヘッダ情報を付加されたデータは出力I/F1513から出力される。
なお、ここで、各メモリの役割を明確にするため、第1メモリ、第2メモリと記載したが、実装においては、同一のメモリであっても良い。
[圧縮データ展開処理]
次に、前記圧縮データを展開する場合の詳細な例について説明を行う。図16は、展開処理を行う場合のフローの例である。処理が開始されると、圧縮データが入力される(S1601)。そして、Topヘッダの情報の参照が行われる(S1602)。その後、順次未処理のタイルのパケットデータの入力が行われる(S1603)。タイルデータが入力されると、まずタイル毎のヘッダ情報が認識される(S1604)。次に、ヘッダ情報内の圧縮フラグを参照し、圧縮フラグが「1」の場合(S1605にてYES)は、圧縮されたデータが入っていると認識し、後の展開処理へと移行する。一方、圧縮フラグが「0」の場合(S1605にてNO)は、圧縮されていない生データが入っていると認識し、展開処理は行わず、そのまま生データが出力(S1606)される。
次に、前記圧縮データを展開する場合の詳細な例について説明を行う。図16は、展開処理を行う場合のフローの例である。処理が開始されると、圧縮データが入力される(S1601)。そして、Topヘッダの情報の参照が行われる(S1602)。その後、順次未処理のタイルのパケットデータの入力が行われる(S1603)。タイルデータが入力されると、まずタイル毎のヘッダ情報が認識される(S1604)。次に、ヘッダ情報内の圧縮フラグを参照し、圧縮フラグが「1」の場合(S1605にてYES)は、圧縮されたデータが入っていると認識し、後の展開処理へと移行する。一方、圧縮フラグが「0」の場合(S1605にてNO)は、圧縮されていない生データが入っていると認識し、展開処理は行わず、そのまま生データが出力(S1606)される。
展開処理には、ヘッダよりパターンフラグ格納位置、第1色のデータ格納位置、及び第2,3,4色格納位置が求められる。例えばパターンフラグの位置は固定長のヘッダなのでオフセットすることで求められる。続いて第1色のデータは、タイルのサイズが32x32画素であればパターンフラグのサイズが32x32bitで固定になるので、パターンフラグ位置からオフセットをかければ求められる。最後に第2,3,4色のデータは第1色のデータが不定長なので、ヘッダに記載されている第1色サイズを参照し、第1色のデータ位置からオフセットをかけることで求められる。S1605にてYSEと判定された場合、パターンフラグの抽出(S1607)する。その後、色情報の抽出が行われる(S1608)。そして、元画像へと復元される(S1609)。復元された画像データは、展開データとして出力される(S1610)。以上の処理を画像データの全てのタイルに対して完了した時点(S1611にてYES)で展開処理は終了となる(S1612)。
[ハードウェア構成(展開処理向け)]
展開処理を実現する為のハードウェア構成の例を図17に示す。入力I/F1701は、圧縮データの入力を行う。ヘッダ情報解析部1702は、入力された圧縮データのヘッダ情報を入力し、内容の解析を行う。展開処理制御部1703は、ヘッダ情報解析部1702によって認識されたヘッダ情報を元に、展開処理を行う展開処理部1700の制御を行う。パターン情報抽出部1704は入力されたタイルデータから、2x2画素のパターンデータの抽出を行う。色数情報抽出部1705は入力されたタイルデータから、2x2画素のパターンデータの色情報の抽出を行う。元画像再生部1706は、パターン情報抽出部1704によって認識されたパターン情報と、色数情報抽出部1705によって認識された色情報を元に、元の2x2画素の状態の復元を行う。セレクタ部1707は、ヘッダ情報解析部1702によって認識された圧縮フラグの情報に基づいて、入力されたパケットデータが圧縮されていない生データであった場合は、入力されたパケットデータからヘッダ部分を除いた生データの出力を行う。これに対し、入力されたパケットデータが圧縮データであった場合には、元画像再生部1706によって復元された画像データの出力を行う。以上の処理を行った復元データは、出力I/F1708から出力される。
展開処理を実現する為のハードウェア構成の例を図17に示す。入力I/F1701は、圧縮データの入力を行う。ヘッダ情報解析部1702は、入力された圧縮データのヘッダ情報を入力し、内容の解析を行う。展開処理制御部1703は、ヘッダ情報解析部1702によって認識されたヘッダ情報を元に、展開処理を行う展開処理部1700の制御を行う。パターン情報抽出部1704は入力されたタイルデータから、2x2画素のパターンデータの抽出を行う。色数情報抽出部1705は入力されたタイルデータから、2x2画素のパターンデータの色情報の抽出を行う。元画像再生部1706は、パターン情報抽出部1704によって認識されたパターン情報と、色数情報抽出部1705によって認識された色情報を元に、元の2x2画素の状態の復元を行う。セレクタ部1707は、ヘッダ情報解析部1702によって認識された圧縮フラグの情報に基づいて、入力されたパケットデータが圧縮されていない生データであった場合は、入力されたパケットデータからヘッダ部分を除いた生データの出力を行う。これに対し、入力されたパケットデータが圧縮データであった場合には、元画像再生部1706によって復元された画像データの出力を行う。以上の処理を行った復元データは、出力I/F1708から出力される。
[濃度ムラおよび色ムラ補正処理]
次に、上記の圧縮処理及び展開処理に、濃度ムラ及び色ムラの補正処理を付加する処理について説明を行う。本実施形態では、グレースケールのデータによる例にて説明を行う。最初に、圧縮処理と併せて行う補正前処理についての詳細な説明を行う。図18(A)に示すように、前述と同様にページ内の画像データから32x32画素のタイルデータの切り出しを行う。座標(M、N)のタイルには、タイル内の座標(0、0)から座標(31、31)までのデータが含まれている。本実施形態の場合、グレースケールのデータ(BW)として、8bitのデータがそれぞれの画素に含まれている。まずは、タイル代表値(BWave)の算出を行う。本実施形態では、タイル内の全画素データの平均値を求めて、タイル代表値(BWave)とする。次に、タイル代表値を使用して、各タイルが補正処理対象か否かの判定を行う。その方法を、図19(A)を用いて説明を行う。
次に、上記の圧縮処理及び展開処理に、濃度ムラ及び色ムラの補正処理を付加する処理について説明を行う。本実施形態では、グレースケールのデータによる例にて説明を行う。最初に、圧縮処理と併せて行う補正前処理についての詳細な説明を行う。図18(A)に示すように、前述と同様にページ内の画像データから32x32画素のタイルデータの切り出しを行う。座標(M、N)のタイルには、タイル内の座標(0、0)から座標(31、31)までのデータが含まれている。本実施形態の場合、グレースケールのデータ(BW)として、8bitのデータがそれぞれの画素に含まれている。まずは、タイル代表値(BWave)の算出を行う。本実施形態では、タイル内の全画素データの平均値を求めて、タイル代表値(BWave)とする。次に、タイル代表値を使用して、各タイルが補正処理対象か否かの判定を行う。その方法を、図19(A)を用いて説明を行う。
注目タイルを座標(M、N)のタイルとする。注目タイルを中心として、主走査方向にA、副走査方向にBの複数のタイルを含んだ領域をエリアとする。本実施形態では、A=5、B=5としたと場合を例とする。この場合、注目タイルを中心として、座標(M−2、N−2)から座標(M+2、N+2)の領域内のタイルが注目タイル(M、N)のエリアとなる。エリアに含まれるタイルのタイル代表値のヒストグラムをとる。エリア内の全てのタイル代表値が予め設定した値(SL)の範囲内に入っている場合(言い換えると、エリア内のタイル代表値の最大値と最小値の差がSL以内である場合)、AxBのエリアは「均一部分である」と判定する。そして、注目タイルは「補正処理を実施する」タイルと判定する。エリア内のタイル代表値が特定の範囲内に入っていない場合、AxBのエリアは「均一部分ではない」と判定し、注目タイルは「補正処理を実施しない」タイルと判定する。また、エリア内の全ての代表値の中で、最も多い値をそのエリア代表値(AREAD)とする。
図19(A)、図20(A)を元に、具体的な例をあげる。図19(A)のように、座標(M、N)を注目タイルとした5x5タイルのエリア内のタイル代表値(BWave)が、「12」から「15」までの値を持っていたとする。このエリア内のタイル代表値のヒストグラムを取ると、図20(A)のようになる。このヒストグラムを用いて、補正対象を判定するためのエリアにおけるタイル代表値の分布を確認する。本実施形態の場合、図20(A)に示すように、エリア内の全てのタイル代表値が予め設定した値(SL=5とする)の範囲内に含まれている。つまり、エリア内のタイル代表値において、最大値と最小値の差が5以内である。よって、AxBのエリアは「均一部分である」と判定し、注目タイルは「補正処理を実施する」タイルと判定する。また、エリア内のタイル代表値の中で、最も多くエリア内に存在するタイル代表値「12」(すなわち、最頻値)を、座標(M、N)を注目タイルとした場合のエリア代表値AREAD(M、N)とする。
次に、補正値(BWH)の算出を行う。補正値(BWH)とは、補正処理対象か否かの判定によって、補正対象と判定されたタイルの値をどのような値に補正するかを示す値である。図21を用いて、本実施形態における補正値(BWH)の算出方法の説明を行う。補正値(BWH)の算出は、画像データ内の補正対象タイルと判定されたタイルに関して、エリア代表値(AREAD)のヒストグラムを取り、最も多い値をそのページの補正値(BWH)とする。すなわち、タイルに含まれるエリア代表値のうち、最も出現する頻度が多い値を補正値としている。図21の例は、TILE(M−2,N−2)からTILE(M+2,N+2)の範囲内のタイルが、非補正対象タイルと判定されている場合の例である。ここでは、画像データ内のTILE(M−2,N−2)からTILE(M+2,N+2)の範囲以外のエリア代表値(AREAD)で最も多い値を補正値(BWH)とする。
以上の処理を行う事により、各タイルに、タイル代表値(BWave)と補正対象か否かの判定の情報を出力する。また、画像データ全体に対して、補正値(BWH)の情報を出力する。なお、本実施形態において、図21の例から分かるように、注目タイルに対し、補正を行うか否かの判定を行うために対象としたエリアの範囲と、注目タイルに対する補正値を求めるために対象としたエリアの範囲は異なっている。しかし、これに限定されるものではなく、例えば、判定のためのエリア(第一エリア)の範囲と補正値算出のためのエリア(第二エリア)の範囲を同一の範囲とし、その中のエリア代表値を用いてもよい。また、第一エリアを構成するタイル数(第一のタイル数)と第二エリアを構成するタイル数(第二のタイル数)についても本実施形態に挙げられたものに限定するものではなく、必要に応じて増減してもよい。
前記タイル代表値や補正対象のタイルを示す情報は、圧縮されたデータのヘッダ部分に付加される。タイル代表値(BWave)に関しては、各タイルのパケットデータのヘッダ部分に付加される。また、タイルが補正対象か否かの情報も、補正対象フラグとして、各タイルのパケットデータのヘッダ部分に付加される。この情報により、圧縮時における注目タイルに対する補正を行うか否かの判定結果が反映されている。図22は、タイルのパケットデータに付加されたヘッダ情報の例である。圧縮時のヘッダ情報に加えて、TILE(M、N)の代表値(BWave)の値と、補正対象フラグ(本実施形態の場合、補正対象タイルであった場合は「1」、非補正対象タイルであった場合は、「0」)を有する。また、補正値(BWH)に関しては、図23(A)に示すように、通常圧縮時のTopヘッダ情報に加えて、補正値(BWH)の値を付加することとする。
図24は、本実施形態のフローチャートを示した図である。圧縮処理に関しては、図9と同じとなるため、重複した参照番号の詳細な説明は割愛する。本実施形態における補正前処理に関する処理は、S2401からS2405となる。
タイルの切り出しが行われた後、圧縮処理に関しては、2x2画素ずつのパターンの認識や、色情報の認識等の処理が行われる。その処理と平行して、タイル内の画像データからタイル毎にタイル代表値(BWave)の算出が行われる(S2401)。そして、タイル代表値を元に、AxBのエリアのタイル代表値(BWave)の解析が実施される(S2402)。その後、補正対象か否かの認識処理が実行される(S2403)。それら処理の結果、タイルの代表値と補正対象フラグがヘッダ部分に付加され(S909)、パケットデータが出力される(S910)。また、すべてのタイルへの処理が完了した時点で(S912にてYES)、補正値の算出が行われる(S2404)。そして、補正値がTopヘッダに付加される(S913)。以上により、本処理が終了する。圧縮後の画像データをメモリや磁気ディスク等に保存する場合には、上記の処理の最後に付加されたTopヘッダの格納スペースを各パケットが格納される位置の前に予め空けておく。この領域に対し、各パケットデータの格納を行い、最後に出力されてくるTopヘッダを空きスペースに格納する。以上が、圧縮時に本特許の補正前処理を行う場合のフローとなる。
[ハードウェア構成(補正付き圧縮処理向け)]
上記の圧縮処理を実現する為のハードウェア構成の例を図25に示す。図15と重複する箇所については、同じ参照番号で示し、ここでは詳細な説明は省くこととする。
上記の圧縮処理を実現する為のハードウェア構成の例を図25に示す。図15と重複する箇所については、同じ参照番号で示し、ここでは詳細な説明は省くこととする。
入力I/F1501は、ラスタ画像データの入力を行う。タイル切り出し部1502は、入力されたラスタ画像データを、一旦第1メモリ1503に格納し、32x32画素のタイルデータへの切り出しを行う。圧縮処理部1500は、タイル切り出し部1502によって切り出されたタイルの画像データに対して、圧縮処理を行う。圧縮処理部1500に関しては、詳細な説明は割愛する。
補正前処理部2500は、タイル切り出し部1502によって切り出されたタイルの画像データに対して、タイル代表値の算出や、各タイルが補正対象か否かの判定を行う。タイル代表値算出部2501は、入力されたタイル内のデータの平均値を算出する。各画素の値の加算を行う加算器(不図示)や、加算結果から平均値を求めるための除算器(不図示)等が含まれているものとなる。エリア切り出し部2502は、第4メモリ2503等のメモリ手段を内部に備え、各タイルのタイル代表値(BWave)の格納を行い、図19(A)で示したようなAxBのエリア情報を作成する。補正部認識部2504は、エリア切り出し部2502によって生成されたエリア内のタイル代表値(BWave)から、補正を行うべきタイルか否かの判定を行う。エリア代表値算出部2505は、エリア代表値(AREAD)を算出する。ここでは、エリア切り出し部2502によって生成されたエリア内のタイル代表値(BWave)の中で最も多くエリア内に存在するタイル代表値(BWave)を、エリア代表値(AREAD)とする。補正値算出部2506は、本実施形態では、画像データ内の補正対象タイルと判定されたタイルに関して、エリア代表値(AREAD)のヒストグラムを取り、最も多い値をそのページの補正値(BWH)とする。ヘッダ情報付加部2507は、セレクタ部1510から出力されたデータに対して、タイル代表値算出部2501からのタイル代表値(BWave)及び、補正部認識部2504からの補正対象フラグ等を付加する。そして、図22に示したようなヘッダ情報を付加されたデータは出力I/F1513から出力される。画像データ内のすべてのタイルに関して処理が完了した時点で、図23(A)で示したようなTopヘッダの付加も行われる。
[濃度補正処理]
次に、前記圧縮データを展開する場合に、同時に濃度の補正処理を行う場合の詳細な例について説明を行う。図26は、展開処理を行う場合のフローの例である。まず処理が開始されると、圧縮データが入力される(S2601)。続いて、Topヘッダの情報の参照が行われる(S2602)。この時、Topヘッダに付加されている補正値の認識が行われる。その後、順次、未処理のタイルに対するタイルデータの入力が行われる(S2603)。タイルデータが入力されると、まずタイル毎のヘッダ情報が認識される(S2604)。この時、各タイルのヘッダ部分に付加されている各タイル代表値(BWave)の認識及び、入力されたタイルが、補正対象か否かの認識が、補正対象フラグを見ることにより認識される。
次に、前記圧縮データを展開する場合に、同時に濃度の補正処理を行う場合の詳細な例について説明を行う。図26は、展開処理を行う場合のフローの例である。まず処理が開始されると、圧縮データが入力される(S2601)。続いて、Topヘッダの情報の参照が行われる(S2602)。この時、Topヘッダに付加されている補正値の認識が行われる。その後、順次、未処理のタイルに対するタイルデータの入力が行われる(S2603)。タイルデータが入力されると、まずタイル毎のヘッダ情報が認識される(S2604)。この時、各タイルのヘッダ部分に付加されている各タイル代表値(BWave)の認識及び、入力されたタイルが、補正対象か否かの認識が、補正対象フラグを見ることにより認識される。
次に、ヘッダ情報内の圧縮フラグを参照する(S2605)。圧縮フラグが「1」の場合は(S2605にてYES)、圧縮されたデータが入っていると認識し、後の展開処理へと移行する。一方、圧縮フラグが「0」の場合は(S2605にてNO)、圧縮されていない生データが入っていると認識し、展開処理は行わず、そのまま生データが出力される(S2606)。圧縮フラグが「1」の場合(S2605にてYES)は、圧縮されたデータが入っていると認識され、次に、補正対象フラグの値から、そのタイルが補正対象か否かの判定を行う(S2607)。本実施形態の場合、補正対象フラグが「0」の場合(S2607にてNO)は前述の通り、通常の展開処理を行う(S2608)。通常の展開処理に関しては、図16のフローチャートによって詳細な説明を行ったように、パターンフラグの抽出、色情報抽出、元画像復元の各処理を行う。ここでは、通常の展開処理に関しては割愛する。
補正対象フラグが「1」の場合は(S2607にてYES)、通常の展開処理に加えて、補正処理も同時に行う。その場合はまず、補正量の算出が行われる(S2609)。補正量の算出は、タイルヘッダ部に付加されていたタイル代表値(BWave)から、Topヘッダに付加されていた補正値(BWH)を引くことにより、算出する。次に、補正処理を行った上で展開処理を行う。この場合、パターンフラグの抽出(S2610)、色情報の抽出(S2611)が行われた後、抽出された色情報に対して、色情報補正の処理が行われる(S2612)。本実施形態では、抽出された各色情報に対して、先に算出を行った補正量を加算する事により、色情報の補正を行う。さらに、抽出されたパターン情報に対して、補正を行った色情報を当てはめることにより、補正画像生成を行い(S2613)、展開データとして出力する(S2614)。以上の処理を画像データの全てのタイルに対して完了した時点(S2615にてYES)で補正処理を行った展開処理の終了となる(S2616)。未処理のタイルが有る場合(S2615にてNO)には、S2603へ戻り、次の未処理のタイルに対し処理を繰り返す。
[ハードウェア構成(補正付き展開処理向け)]
前記展開処理を実現する為のハードウェア構成の例を図27に示す。入力I/F2701は、圧縮データの入力を行う。ヘッダ情報解析部2702は、入力された圧縮データのヘッダ情報を入力し、内容の解析を行う。展開・補正処理制御部2703は、ヘッダ情報解析部2702によって認識されたヘッダ情報を元に、展開処理を行う展開・補正処理部2700の制御を行う。パターン情報抽出部2704は、入力されたタイルデータから、2x2画素のパターンデータの抽出を行う。色数情報抽出部2705は、入力されたタイルデータから、2x2画素の元画像データの色情報の抽出を行う。補正量算出部2706は、ヘッダ情報解析部2702によって認識されたタイル代表値(BWave)と補正値(BWH)から、補正量の算出を行う。補正値からタイル代表値を引くための減算器(不図示)が含まれる。補正処理部2707は、ヘッダ情報解析部2702によって認識された補正対象フラグを元に、処理を行っているタイルが補正対象で無い場合には、抽出された色情報に対して補正を行わない状態で、次の元画像再生部2708へデータの出力を行う。また、処理を行っているタイルが補正対象であった場合には、抽出された色情報に対して先に算出した補正量の加算を行ってから、次の元画像再生部2708へデータの出力を行う。元画像再生部2708は、パターン情報抽出部2704によって認識されたパターン情報と、補正処理部2707から出力された色情報を元に、元の2x2画素の状態の復元を行う。セレクタ部2709は、ヘッダ情報解析部2702によって認識された圧縮フラグの情報を元に、入力されたパケットデータが圧縮されていない生データであった場合は、入力されたパケットデータからヘッダ部分を除いた生データの出力を行う。一方、圧縮データであった場合には、元画像再生部2708によって復元された画像データの出力を行う。以上の処理を行った復元データは、出力I/F2710から出力される事となる。
前記展開処理を実現する為のハードウェア構成の例を図27に示す。入力I/F2701は、圧縮データの入力を行う。ヘッダ情報解析部2702は、入力された圧縮データのヘッダ情報を入力し、内容の解析を行う。展開・補正処理制御部2703は、ヘッダ情報解析部2702によって認識されたヘッダ情報を元に、展開処理を行う展開・補正処理部2700の制御を行う。パターン情報抽出部2704は、入力されたタイルデータから、2x2画素のパターンデータの抽出を行う。色数情報抽出部2705は、入力されたタイルデータから、2x2画素の元画像データの色情報の抽出を行う。補正量算出部2706は、ヘッダ情報解析部2702によって認識されたタイル代表値(BWave)と補正値(BWH)から、補正量の算出を行う。補正値からタイル代表値を引くための減算器(不図示)が含まれる。補正処理部2707は、ヘッダ情報解析部2702によって認識された補正対象フラグを元に、処理を行っているタイルが補正対象で無い場合には、抽出された色情報に対して補正を行わない状態で、次の元画像再生部2708へデータの出力を行う。また、処理を行っているタイルが補正対象であった場合には、抽出された色情報に対して先に算出した補正量の加算を行ってから、次の元画像再生部2708へデータの出力を行う。元画像再生部2708は、パターン情報抽出部2704によって認識されたパターン情報と、補正処理部2707から出力された色情報を元に、元の2x2画素の状態の復元を行う。セレクタ部2709は、ヘッダ情報解析部2702によって認識された圧縮フラグの情報を元に、入力されたパケットデータが圧縮されていない生データであった場合は、入力されたパケットデータからヘッダ部分を除いた生データの出力を行う。一方、圧縮データであった場合には、元画像再生部2708によって復元された画像データの出力を行う。以上の処理を行った復元データは、出力I/F2710から出力される事となる。
以上のように、本発明は、データ圧縮と同時に、ムラの検知、補正値の算出等の補正前処理を行い、データ展開と同時に、データ補正を行う。これにより、従来は人手による補正設定や複数回のページ全体への画像処理を行い、回路規模、処理時間とも大きな負荷のある処理となっていた色ムラ・濃度ムラ補正の処理に関して、効率化が図れる。つまり、補正処理に必要なハードウェアの増加分の削減、補正処理に必要としていた処理時間の大幅な削減が可能となる。
<第二の実施形態>
第一の実施形態では、グレースケールのデータに対する補正について説明を行ったが、第二の実施形態では、RGBカラー画像データに対する補正処理の説明を行う。第一の実施形態と異なる点は、以下の点となる。
第一の実施形態では、グレースケールのデータに対する補正について説明を行ったが、第二の実施形態では、RGBカラー画像データに対する補正処理の説明を行う。第一の実施形態と異なる点は、以下の点となる。
タイル代表値に関して、グレースケールの場合、1色分のデータ(BWave)を保持していたが、本実施形態ではRGBそれぞれの色属性に対するタイル代表値(Rave、Gave、Bave)をタイル代表値として保持する。また、補正対象か否かの判定をグレースケールの場合、タイル代表値(BWave)を使用して行ったが、本実施形態では、RGBの各タイル代表値(Rave、Gave、Bave)の全データの平均値(AVE)を使用して判定を行う。また、補正値に関しても、グレースケールの場合、1色分のデータ(BWH)を保持していたが、本実施形態ではRGBそれぞれの色属性に対する補正値(RH、GH、BH)を補正値として保持する。
以下に、RGBカラー画像データに対する補正処理の詳細な説明を行う。但し、画像データの圧縮及び、展開処理に関しては、第一の実施形態と同様な処理となるため、本実施形態では詳細な説明は割愛する。
[補正前処理]
最初に、圧縮と同時に行う補正前処理についての詳細な説明を行う。図18(B)に示すように、第一の実施形態と同様、ページ内の画像データから32x32画素のタイルデータの切り出しを行う。座標(M、N)のタイルには、タイル内の座標(0、0)から座標(31、31)までのデータが含まれている。本実施形態の場合、RGBデータ(R、G、B)として、8bitのデータがそれぞれ含まれている。
最初に、圧縮と同時に行う補正前処理についての詳細な説明を行う。図18(B)に示すように、第一の実施形態と同様、ページ内の画像データから32x32画素のタイルデータの切り出しを行う。座標(M、N)のタイルには、タイル内の座標(0、0)から座標(31、31)までのデータが含まれている。本実施形態の場合、RGBデータ(R、G、B)として、8bitのデータがそれぞれ含まれている。
まずは、RGBの各色のタイル代表値(Rave、Gave、Bave)の算出を行なう。本実施形態では、タイル内の全画素のRGBにおける各データの平均値を求め、各色のタイル代表値(Rave、Gave、Bave)とする。次に、各タイルが補正処理対象か否かの判定を行う為、全データの平均値(AVE)の算出を行う。この場合、全データの平均値は、各色のタイル代表値(Rave、Gave、Bave)の平均から算出される。次に、全データの平均値(AVE)を使用して、各タイルが補正処理対象か否かの判定を行う。その方法を、図19(B)を用いて説明を行う。注目タイルを座標(M、N)のタイルとする。注目タイルを中心として、主走査方向にA、副走査方向にBの複数のタイルを含んだ領域をエリアとする。
本実施形態では、A=5、B=5としたと場合を例とする。この場合、注目タイルを中心として、座標(M−2、N−2)から座標(M+2、N+2)の領域内のタイルが注目タイル(M、N)のエリアとなる。エリアに含まれるタイルの全データの平均値(AVE)のヒストグラムをとる。エリア内の全てのタイルの全データの平均値(AVE)が予め設定した値(SL)の範囲内に入っている場合、AxBのエリアは「均一部分である」と判定し、注目タイルは「補正処理を実施する」タイルと判定する。エリア内のタイル代表値が特定の範囲内に入っていない場合、AxBのエリアは「均一部分ではない」と判定し、注目タイルは「補正処理を実施しない」タイルと判定する。また、エリア内の全ての代表値の中で、最も多い値をそのエリア代表値(AREAD)とする。
図19(B)、図20(B)を元に、具体的な例をあげる。図19(B)のように、座標(M、N)を注目タイルとした5x5タイルのエリア内の全データの平均値(AVE)が、「12」から「15」までの値を有しているとする。このエリア内のタイル代表値のヒストグラムを取ると、図20(B)のようになる。このヒストグラムを用いて、補正対象を判定するためのエリアにおけるタイル代表値の分布を確認する。本実施形態の場合、エリア内の全データの平均値(AVE)が予め設定した値(本実施形態では、SL=5とする)の範囲内に入っているので、AxBのエリアは「均一部分である」と判定し、注目タイルは「補正処理を実施する」タイルと判定する。また、エリア内のタイル代表値の中で、最も多くエリア内に存在するタイル代表値「12」を、座標(M、N)を注目タイルとした場合のエリア代表値AREAD(M、N)とする。すなわち、出現する頻度が最も多い値をエリア代表値としている。
次に、RGB各色の補正値(RH、GH、BH)の算出を行なう。RGB各色の補正値(RH、GH、BH)は、前記補正処理対象か否かの判定によって、補正対象と判定されたタイルのRGBの各値をどのような値に補正するかを示す値となる。RGB各色の補正値(RH、GH、BH)の算出は、以下のように行うこととする。画像データ内の補正対象タイルと判定されたタイルに関して、エリア代表値(AREAD)のヒストグラムを取り、最も多い値をそのページの代表平均値(AVED)とする。画像データ内の補正対象タイルと判定されたタイルに関して、ページの代表平均値(AVED)と一致するタイルのRGBの各色のタイル代表値(Rave、Gave、Bave)を各色ごとに平均値を取り、RGB各色の補正値(RH、GH、BH)とする。
以上の処理により、各タイルに対してRGBの各色のタイル代表値(Rave、Gave、Bave)と補正対象か否かの判定の情報の認識が行われる。また、画像データ全体に対してRGB各色の補正値(RH、GH、BH)の情報の認識が行われる。それらの情報は、圧縮されたデータのヘッダ部分に付加される。RGBの各色のタイル代表値(Rave、Gave、Bave)に関しては、各タイルのパケットデータのヘッダ部分に、また、タイルが補正対象か否かの情報も、補正対象フラグとして、各タイルのパケットデータのヘッダ部分に付加される。
図28は、タイルのパケットデータに付加されたヘッダ情報の例である。圧縮時のヘッダ情報に加えて、TILE(M、N)のRGBの各色のタイル代表値(Rave、Gave、Bave)の値と、補正対象フラグとを有する。本実施形態の場合、当該タイルが補正対象タイルであった場合は「1」、非補正対象タイルであった場合は「0」を、補正対象フラグとして保持する。
また、RGB各色の補正値(RH、GH、BH)に関しては、図23(B)に示すように、図14にて詳細な説明を行った、通常圧縮時のTopヘッダ情報に加えて、RGB各色の補正値(RH、GH、BH)の値を付加することとする。
図29は、本実施形態の圧縮時に行う補正前処理のフローチャートを示した図である。圧縮処理に関しては、図9と同一であるため、同じ参照番号にて示す処理の詳細な説明は割愛する。本実施形態における補正前処理に関する処理は、S3301からS3305となる。タイルの切り出しが行われた後、圧縮処理に関しては、2x2画素ずつのパターンの認識や、色情報の認識等の処理が行われる。それと平行して、タイル内の画像データからタイル毎にRGBの各色のタイル代表値(Rave、Gave、Bave)の算出が行われる(S3301)。そして、その各色の代表値を元に、タイル内の全てのデータ平均値(AVE)が算出される(S3302)。その後、AxBエリアのタイル内の全てのデータ平均値(AVE)の解析が実施される(S3303)。その後、解析の結果に基づいて、補正対象か否かの認識処理が実行される(S3304)。S3304の処理の結果、S908もしくはS906にてパッキングされたデータに対し、RGBの各色のタイル代表値(Rave、Gave、Bave)と補正対象フラグがヘッダ部分に付加される(S909)。そして、パケットデータが出力される(S910)。
また、すべてのタイルの処理が完了した時点で(S912にてYES)、RGB各色の補正値(RH、GH、BH)の算出が行われる(S3305)。そして、補正に値に関してはTopヘッダに付加されて(S913)、出力される(S914)。圧縮後の画像データをメモリや磁気ディスク等に保存する場合には、処理の最後に付加されたTopヘッダの格納スペースを各パケットの前に予め空けておき、各パケットデータの格納を行う。そして、最後に出力されてくるTopヘッダを前記空きスペースに格納する。以上が、圧縮時に本特許の補正前処理を行う場合のフローとなる。
[ハードウェア構成(カラー画像用補正処理付き圧縮処理向け)]
上記の圧縮処理を実現する為のハードウェア構成の例を図30に示す。ここでは、先に図15によって説明を行っている部分に関しては、図15と同じ番号を振っておく事により、詳細な説明は省くこととする。
上記の圧縮処理を実現する為のハードウェア構成の例を図30に示す。ここでは、先に図15によって説明を行っている部分に関しては、図15と同じ番号を振っておく事により、詳細な説明は省くこととする。
入力I/F1501は、ラスタ画像データの入力を行う。タイル切り出し部1502は、入力されたラスタ画像データを、一旦第1メモリ1503に格納し、32x32画素のタイルデータへの切り出しを行う。圧縮処理部1500は、タイル切り出し部1502によって切り出されたタイルの画像データに対して、圧縮処理を行う。圧縮処理部1500に関しては、すでに述べているため詳細な説明は割愛する。
補正前処理部3400は、タイル切り出し部1502によって切り出されたタイルの画像データに対して、タイル代表値の算出や、各タイルが補正対象か否かの判定を行う。RGBタイル代表値算出部3401は、入力されたタイル内のデータのRGB各色の平均値を算出する。各画素の値の加算を行う加算器(不図示)や、加算結果から平均値を求めるための除算器(不図示)等が含まれている。全データ平均値算出部3402は、タイル内の全データの平均値(AVE)を算出する。本実施形態では、入力されたRGBの各色のタイル代表値(Rave、Gave、Bave)の平均値を算出するために、各色のタイル代表値の加算を行う加算器(不図示)や、加算結果から平均値を求めるための除算器(不図示)等が含まれている。
エリア切り出し部3403は、第4メモリ3404等のメモリ手段を内部有する。また、各タイルの全データの平均値(AVE)の格納を行い、図19(B)で示したようなAxBのエリア情報を作成する。補正部認識部3405は、エリア切り出し部3403によって生成されたエリア内の各タイルの全データの平均値(AVE)から、補正を行うべきタイルか否かの判定を行う。エリア代表値算出部3406は、エリア代表値を算出する。本実施形態においては、エリア切り出し部3403によって生成されたエリア内の各タイルの全データの平均値(AVE)の中で最も多くエリア内に存在する全データの平均値(AVE)を、エリア代表値(AREAD)とする。補正値算出部3407は、RGB各色の補正値(RH、GH、BH)の算出を行う。画像データ内の補正対象タイルと判定されたタイルに関して、エリア代表値(AREAD)のヒストグラムを取り、最も多い値をそのページの代表平均値(AVED)とする。
画像データ内の補正対象タイルと判定されたタイルに関して、ページの代表平均値(AVED)と一致するタイルのRGBの各色のタイル代表値(Rave、Gave、Bave)を各色ごとに平均値を取り、RGB各色の補正値(RH、GH、BH)とする。ヘッダ情報付加部3408は、セレクタ部1510から出力された圧縮後の画像データに対して、RGBタイル代表値算出部3401からのRGBの各色のタイル代表値(Rave、Gave、Bave)及び、補正部認識部3405からの補正対象フラグ等を付加する。ここでは、図28に示したようなヘッダ情報を付加されたデータは出力I/F1513から出力される。画像データ内のすべてのタイルに関して処理が完了した時点で、図23(B)で示したようなTopヘッダの付加もヘッダ情報付加部3408にて行われる。
[濃度補正処理]
次に、前記圧縮データを展開する場合に、同時に濃度の補正処理を行う場合の詳細な例について説明を行う。図31は、展開処理を行う場合のフローの例である。処理が開始されると、圧縮データが入力される(S3501)。そして、Topヘッダの情報の参照が行われる(S3502)。この時、Topヘッダ部に付加されている補正値の認識が行われる。その後、順次タイルのパケットデータの入力が行われる(S3503)。タイルデータが入力されると、まずタイル毎のヘッダ情報が認識される(S3504)。この時、各タイルのヘッダ部分に付加されているRGBの各色のタイル代表値(Rave、Gave、Bave)の認識及び、入力されたタイルが、補正対象か否かの認識が、補正対象フラグを見ることにより認識される。
次に、前記圧縮データを展開する場合に、同時に濃度の補正処理を行う場合の詳細な例について説明を行う。図31は、展開処理を行う場合のフローの例である。処理が開始されると、圧縮データが入力される(S3501)。そして、Topヘッダの情報の参照が行われる(S3502)。この時、Topヘッダ部に付加されている補正値の認識が行われる。その後、順次タイルのパケットデータの入力が行われる(S3503)。タイルデータが入力されると、まずタイル毎のヘッダ情報が認識される(S3504)。この時、各タイルのヘッダ部分に付加されているRGBの各色のタイル代表値(Rave、Gave、Bave)の認識及び、入力されたタイルが、補正対象か否かの認識が、補正対象フラグを見ることにより認識される。
次に、ヘッダ情報内の圧縮フラグを参照する(S3505)。ここで、圧縮フラグが「1」の場合は(S3505にてYES)、圧縮されたデータが入っていると認識し、後の展開処理へと移行する。一方、圧縮フラグが「0」の場合は(S3505にてNO)、圧縮されていない生データが入っていると認識し、展開処理は行わず、そのまま生データが出力される(S3506)。圧縮フラグが「1」の場合は(S3505にてYES)、圧縮されたデータが入っていると認識され、次に補正対象フラグの値から、そのタイルが補正対象か否かの判定を行う(S3507)。
本実施形態の場合、補正対象フラグが「0」の場合は(S3507にてNO)、先に詳細な説明を行ったように、通常の展開処理を行う(S3508)。通常の展開処理に関しては、図16のフローチャートによって詳細な説明を行ったように、パターンフラグの抽出、色情報抽出、元画像復元の各処理を行う。ここでは、通常の展開処理に関しては割愛する。補正対象フラグが「1」の場合は(S3507にてYES)、通常の展開処理に加えて、補正処理も同時に行う。その場合はまず、RGBの各色に対する補正量の算出が行われる(S3509)。補正量の算出は、タイルヘッダに付加されていたRGBの各色のタイル代表値(Rave、Gave、Bave)から、Topヘッダに付加されていたRGB各色の補正値(RH、GH、BH)を各色からに引くことにより、算出する。
次に、補正処理を行ったうえで展開処理を行う。この場合、パターンフラグの抽出(S3510)、色情報の抽出(S3511)が行われた後、抽出されたRGB各色情報に対して、色情報補正の処理が行われる(S3512)。本実施形態では、抽出された各色情報のRGBデータに対して、先に算出を行ったRGB各色の補正量を加算する事により、色情報の補正を行う。抽出されたパターン情報に対して、補正を行った色情報を当てはめることにより、補正画像生成を行う(S3513)。そして、S3513もしくはS3508の後に展開データとして出力する(S3514)。以上の処理を画像データの全てのタイルに対して完了した時点(S3515にてYES)で、補正処理を行った展開処理の終了となる(S3516)。
[ハードウェア構成(カラー画像用補正付き展開処理向け)]
上記の展開処理を実現する為のハードウェア構成の例を図32に示す。入力I/F3601は、圧縮データの入力を行う。ヘッダ情報解析部3602は、入力された圧縮データのヘッダ情報を入力し、内容の解析を行う。展開・補正処理制御部3603は、ヘッダ情報解析部3602によって認識されたヘッダ情報を元に展開処理を行う展開・補正処理部3600の制御を行う。パターン情報抽出部3604は、入力されたタイルデータから、2x2画素のパターンデータの抽出を行う。色数情報抽出部3605は、入力されたタイルデータから、2x2画素の元画像データの色情報の抽出を行う。
上記の展開処理を実現する為のハードウェア構成の例を図32に示す。入力I/F3601は、圧縮データの入力を行う。ヘッダ情報解析部3602は、入力された圧縮データのヘッダ情報を入力し、内容の解析を行う。展開・補正処理制御部3603は、ヘッダ情報解析部3602によって認識されたヘッダ情報を元に展開処理を行う展開・補正処理部3600の制御を行う。パターン情報抽出部3604は、入力されたタイルデータから、2x2画素のパターンデータの抽出を行う。色数情報抽出部3605は、入力されたタイルデータから、2x2画素の元画像データの色情報の抽出を行う。
RGB補正量算出部3606は、ヘッダ情報解析部3602によって認識されたRGBの各色のタイル代表値(Rave、Gave、Bave)とRGB各色の補正値(RH、GH、BH)から、RGB各色の補正量の算出を行う。ここでは各色の補正値から各色のタイル代表値を引くための減算器(不図示)が含まれるものとなる。補正処理部3607は、ヘッダ情報解析部3602によって認識された補正対象フラグが、処理を行っているタイルが補正対象で無い場合には、抽出された色情報に対して補正を行わない状態で、次の元画像再生部3608へデータの出力を行う。また、処理を行っているタイルが補正対象であった場合には、抽出された色情報のRGBデータに対して先に算出したRGB各色の補正量の加算を行って、次の元画像再生部3608へデータの出力を行う。
元画像再生部3608は、パターン情報抽出部3604によって認識されたパターン情報と、補正処理部3607から出力された色情報を元に、元の2x2画素の状態の復元を行う。セレクタ部3609は、ヘッダ情報解析部3602によって認識された圧縮フラグの情報を元に、入力されたパケットデータが圧縮されていない生データであった場合は、入力されたパケットデータからヘッダ部分を除いた生データを出力する。一方、入力されたパケットデータが圧縮データであった場合には、元画像再生部3608によって復元された画像データの出力を行う。以上の処理を行った復元データは、出力I/F3610から出力される。
以上のように、RGBのカラー画像データに対しても、データ圧縮と同時に、ムラの検知、補正値の算出等の補正前処理を行い、データ展開と同時に、データ補正を行う。これにより、従来は人手による補正設定や複数回のページ全体への画像処理を行い、回路規模、処理時間とも大きな負荷のある処理となっていた色ムラ・濃度ムラ補正の処理に関して、効率化ができる。すなわち、補正処理に必要なハードウェアの増加分の削減、補正処理に必要としていた処理時間の大幅な削減が可能となる。
<第三の実施形態>
第一の実施形態では、グレースケールのデータに対する補正について、第二の実施形態では、RGBカラー画像データに対する補正処理について説明を行った。しかし、前記補正処理では、グラデーション画像に関して補正を行ってしまうという問題点が挙げられる。
第一の実施形態では、グレースケールのデータに対する補正について、第二の実施形態では、RGBカラー画像データに対する補正処理について説明を行った。しかし、前記補正処理では、グラデーション画像に関して補正を行ってしまうという問題点が挙げられる。
例えば、AxBのエリア内が、グレースケールデータで右下方向に暗くなるようなグラデーション画像であるデータが入力された場合、タイル代表値(BWave)は、図19(C)のような値となる。
このエリア内のタイル代表値のヒストグラムを取ると、図20(C)のようになる。第一の実施形態の場合、エリア内の全てのタイル代表値が予め設定した値(本実施形態では、SL=5とする)の範囲内に入っているので、AxBのエリアは「均一部分である」と判定し、注目タイルは「補正処理を実施する」タイルと判定される。この場合、展開・補正処理時にグラデーション中のタイルに関して、補正値(BWH)を基にした補正処理が実行される事となり、グラデーション画像が乱れることとなる。
そこで、本実施形態では、前記補正前処理中の補正対象か否かの判定を行う部分(AxBタイルエリア解析)に関して、グラデーションの領域判定を実行する。これにより、注目タイルがグラデーションの領域に含まれると認識した場合には、非補正対象とし、グラデーション部分の補正処理による画像の乱れを防ぐ。
本実施形態は、第一の実施形態で述べた図24のフローチャートにおける補正対象タイル認識(S2403)にて処理を行う。また、図25のブロック図における補正前処理部2500内での処理に関するものである。よって、すでに述べた他の処理に対する詳細な説明は割愛することとする。
[グラデーション画像の認識]
グラデーション画像のデータの特徴として、図33で示すように、エリアのA方向(主走査線方向)において、座標が大きくなるに従って、BWaveの値が常に上がり続けるか(増加)、常に下がり続けるか(減少)、同じ値が続くか(一定)の3つの状態を示す。また、エリアのB方向(副走査線方向)に関して、Nの座標が大きくなるに従って、BWaveの値が常に上がり続けるか(増加)、常に下がり続けるか(減少)、同じ値が続くか(一定)の3つの状態を示す。
グラデーション画像のデータの特徴として、図33で示すように、エリアのA方向(主走査線方向)において、座標が大きくなるに従って、BWaveの値が常に上がり続けるか(増加)、常に下がり続けるか(減少)、同じ値が続くか(一定)の3つの状態を示す。また、エリアのB方向(副走査線方向)に関して、Nの座標が大きくなるに従って、BWaveの値が常に上がり続けるか(増加)、常に下がり続けるか(減少)、同じ値が続くか(一定)の3つの状態を示す。
すなわち、本実施形態では、主走査線方向と副走査線方向との両方において、画素の値が常に増加、減少、もしくは一定であるかの判定を行い、グラデーションの領域を判定する。このグラデーションにおける特徴の認識を行い、注目エリアの補正に関する判定に利用する。
グラデーション認識に関して、図34を用いて詳細な説明を行う。AxBのエリアのA方向に関して、図34(A)のように(A−2)列、(A−1)列、(A)列、(A+1)列、(A+2)列と、各列の設定を行う。そして、各列に対して、隣り合ったタイル代表値の差を計算する。例えば、(A−2)列に関しては、以下の演算を行う。
BWave(M−2,N−2)−BWave(M−1,N−2)
BWave(M−1,N−2)−BWave(M,N−2)
BWave(M,N−2)−BWave(M+1,N−2)
BWave(M+1,N−2)−BWave(M+2,N−2)
同様に、(A)列に関しては、以下の演算を行う。
BWave(M−1,N−2)−BWave(M,N−2)
BWave(M,N−2)−BWave(M+1,N−2)
BWave(M+1,N−2)−BWave(M+2,N−2)
同様に、(A)列に関しては、以下の演算を行う。
BWave(M−2,N)−BWave(M−1,N)
BWave(M−1,N)−BWave(M,N)
BWave(M,N)−BWave(M+1,N)
BWave(M+1,N)−BWave(M+2,N)
また、AxBのエリアのA方向に関して、図34(B)のように(B−2)列、(B−1)列、(B)列、(B+1)列、(B+2)列と、各列の設定を行う。そして、各列に対して、隣り合ったタイル代表値の差を計算する。例えば、(B−1)列に関しては、以下の演算を行う。
BWave(M−1,N)−BWave(M,N)
BWave(M,N)−BWave(M+1,N)
BWave(M+1,N)−BWave(M+2,N)
また、AxBのエリアのA方向に関して、図34(B)のように(B−2)列、(B−1)列、(B)列、(B+1)列、(B+2)列と、各列の設定を行う。そして、各列に対して、隣り合ったタイル代表値の差を計算する。例えば、(B−1)列に関しては、以下の演算を行う。
BWave(M−1,N−2)−BWave(M−1,N−1)
BWave(M−1,N−1)−BWave(M−1,N)
BWave(M−1,N)−BWave(M−1,N+1)
BWave(M−1,N+1)−BWave(M−1,N+2)
同様に、(B+2)列に関しては、以下の演算を行う。
BWave(M−1,N−1)−BWave(M−1,N)
BWave(M−1,N)−BWave(M−1,N+1)
BWave(M−1,N+1)−BWave(M−1,N+2)
同様に、(B+2)列に関しては、以下の演算を行う。
BWave(M+2,N−2)−BWave(M+2,N−1)
BWave(M+2,N−1)−BWave(M+2,N)
BWave(M+2,N)−BWave(M+2,N+1)
BWave(M+2,N+1)−BWave(M+2,N+2)
以上のA列、B列の各演算結果の解析を行い、参照しているエリアがグラデーションであるか否かの判定を行う。その判定方法は以下のようになる。
BWave(M+2,N−1)−BWave(M+2,N)
BWave(M+2,N)−BWave(M+2,N+1)
BWave(M+2,N+1)−BWave(M+2,N+2)
以上のA列、B列の各演算結果の解析を行い、参照しているエリアがグラデーションであるか否かの判定を行う。その判定方法は以下のようになる。
A列の全ての演算結果が正の値であったとき、B列の演算結果が全て正の値、B列の演算結果が全て負の値、もしくは「0」であった場合には、参照しているエリアはグラデーションであると判定し、注目タイルは「非補正対象」とする。
A列の全ての演算結果が負の値であったとき、B列の演算結果が全て正の値、B列の演算結果が全て負の値、もしくは「0」であった場合には、参照しているエリアはグラデーションであると判定し、注目タイルは「非補正対象」とする。
A列の全ての演算結果が「0」であったとき、B列の演算結果が全て正の値、B列の演算結果が全て負の値であった場合には、参照しているエリアはグラデーションであると判定し、注目タイルは「非補正対象」とする。
A列の全ての演算結果が「0」で、B列の全ての演算結果が「0」あった場合には、参照しているエリアは全て同じ値であり、補正の必要は無いため、注目タイルは「非補正対象」とする。
[圧縮処理]
図35は、本実施形態のフローチャートを示した図である。圧縮処理に関しては、図9と同様であるため、同一の参照番号を付与した処理に関して詳細な説明は割愛する。本実施形態における補正前処理に関する処理は、S4201からS4211となる。
図35は、本実施形態のフローチャートを示した図である。圧縮処理に関しては、図9と同様であるため、同一の参照番号を付与した処理に関して詳細な説明は割愛する。本実施形態における補正前処理に関する処理は、S4201からS4211となる。
本実施形態において、従来のヒストグラムの解析結果以外に、グラデーションの認識を平行して行う。まずS902にてタイルの切り出しが行われた後、タイル内の画像データからタイル毎にタイル代表値(BWave)の算出する(S4201)。続いて、AxBのエリアの切り出しを行う(S4202)。そして、ヒストグラムの処理と平行して、切り出したAxBのエリアのA方向に対して、図34(A)で説明を行ったような列へと、さらに領域の分割を行う(S4205)。その後、各列のタイル代表値(BWave)に対して、隣り合ったタイル代表値(BWave)ごとの差の算出を行う(S4206)。同様に、AxBのエリアのB方向に対して、図34(B)で説明を行ったような列へと、さらに領域の分割を行う(S4207)。その後、各列のタイル代表値(BWave)に対して、隣り合ったタイル代表値(BWave)ごとの差の算出を行う(S4208)。
S4206におけるA方向の列ごとの演算結果及び、S4208におけるB方向の列ごとの演算結果から、上述した判定基準に基づいて、エリアがグラデーションか否かの認識を行うこととなる(S4209)。補正対象タイル認識(S4210)では、前記ヒストグラム解析(S4204)の結果と、グラデーション認識(S4209)の結果に基づき、ヒストグラム解析(S4204)において補正対象と判定されたタイルに対し補正対象か否かの判定を行う。ここでは補正対象と判定された場合でも、グラデーション認識(S4209)によってグラデーション部分と認識されたタイルに関しては、非補正対象と判定する。
上記の処理の結果、タイルの代表値と補正対象フラグがヘッダ部分に付加される(S909)。そして、パケットデータが出力される(S910)。また、すべてのタイルの処理が完了した時点(S912にてYES)で、第二の実施形態と同様に、補正値の算出が行われる(S4211)。そして、補正に値に関してはTopヘッダに付加され(S913)、出力される(S914)。
圧縮後の画像データをメモリや磁気ディスク等に保存する場合には、上記の処理の最後に付加されたTopヘッダの格納スペースを各パケットの前に予め空けておく。そして、各パケットデータの格納を行い、最後に出力されてくるTopヘッダを前記空きスペースに格納する。以上が、圧縮時に本実施形態の補正前処理を行う場合のフローとなる。
展開処理に関しては、第二の実施形態と同じ処理であるため本実施形態では詳細な説明は割愛することとする。
以上のように、参照しているエリアがグラデーションであるか否かの判定を行い、グラデーションと判定した場合には、当該グラデーションの領域に含まれるタイルには補正処理を行わない。つまり、図24のフローチャートにおける補正対象タイル認識(S2403及び、図25のブロック図における補正前処理部2500の従来の処理において、補正対象であると判定された場合でも、注目タイルは、非補正対象のタイルであると判定する。
以上により、第一の実施形態、第二の実施形態の効果に加え、グラデーション画像に対し不必要な補正を行ってしまい、画像を乱すという問題を防ぐことが可能となる。
<第四の実施形態>
第一の実施形態及び、第二の実施形態では、画像データに対する補正を全て自動で行っていた。しかし、本実施形態では、圧縮データの展開時に、補正前処理によって認識された補正値の変更することにより、画像データに対する補正量を変え、均一画像部分の濃度や色味を変える処理の説明を行う。
第一の実施形態及び、第二の実施形態では、画像データに対する補正を全て自動で行っていた。しかし、本実施形態では、圧縮データの展開時に、補正前処理によって認識された補正値の変更することにより、画像データに対する補正量を変え、均一画像部分の濃度や色味を変える処理の説明を行う。
[処理フロー]
本実施形態のフローチャートを、図36に示す。本実施形態は、グレースケール画像に関しての説明とする。また、図36のフローチャートに関しては、第一の実施形態にて示した図26に対して、補正値の変更の処理を加えた流れとなる。よって、第一の実施形態から変更の無い部分に関しては、同一の参照番号とし詳細な説明は割愛する。
本実施形態のフローチャートを、図36に示す。本実施形態は、グレースケール画像に関しての説明とする。また、図36のフローチャートに関しては、第一の実施形態にて示した図26に対して、補正値の変更の処理を加えた流れとなる。よって、第一の実施形態から変更の無い部分に関しては、同一の参照番号とし詳細な説明は割愛する。
本実施形態の特徴は、補正量算出(S2609)の処理を行う前に、補正値修正(S4201)の処理を行う点である。補正値修正の処理では、Topヘッダ情報入力(S2602)によって認識された補正値(BWH)の値に対して、ユーザーが指定した値を加算もしくは、減算することにより、補正値の変更を行う処理となる。
具体的には、図1におけるMFPのユーザーインターフェイスのディスプレイに、Topヘッダ情報入力(S2602)によって認識された補正値(BWH)の値を表示し、それに対して、加算もしくは減算すべき値を、テンキー等の入力部から入力する。画像データが、グレースケールの場合、補正値(BWH)の値を大きくすることによって、補正対象部分の濃度は薄く、小さくすることによって補正対象部分の濃度は濃くなる。
また、ユーザーインターフェイス108の表示部に、画像データの表示が可能な場合、一度、補正値の変更を行う前の展開画像データの表示を行う。更に、併せて補正値の変更の設定を行った補正値変更後の展開データの表示を行うことで、変更の効果が確認出来るような構成をとることも可能である。
[ハードウェア構成(補正値入力用展開処理向け)]
図37は、本実施形態のハードウェアの構成を示したブロック図である。展開及び補正処理に関しては、図27と同じであるため同一の参照番号を付した構成についての詳細な説明は割愛する。
図37は、本実施形態のハードウェアの構成を示したブロック図である。展開及び補正処理に関しては、図27と同じであるため同一の参照番号を付した構成についての詳細な説明は割愛する。
図37は、第一の実施形態の展開・補正処理のハードウェア構成(図27)に、図1で示したユーザーインターフェイス108が接続されている構成となっている。図1におけるMFPのユーザーインターフェイス108に、ヘッダ情報解析部2702から、認識された補正値(BWH)が入力されることとなる。これにより、ユーザーからの補正値の入力を受け付ける受付手段を実現する。ユーザーインターフェイス108の表示部4401では、ディスプレイ等を使用し、補正値(BWH)の値を表示する。
それに対してユーザーは、表示された補正値(BWH)に、加算もしくは減算すべき値を、テンキー等の入力部4402から入力する。ユーザーインターフェイス108の表示部4401に、画像データの表示が可能な場合、一度、補正値の変更を行う前の展開画像データを出力I/F2710から出力を行い、展開データ表示を行う。そしてユーザーが、補正値の変更の設定を行った時点で、補正値変更後の展開データの表示に切り替える事により、補正値の変更の効果が確認出来るような構成としてもよい。
以上のように、圧縮データの展開時に、補正前処理によって認識された補正値の変更することにより、補正量を変え、均一画像部分の濃度や色味の変更を容易に行うことが可能となる。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (16)
- 入力された画像データに対し、補正処理を適用する画像処理装置であって、
前記画像データを、所定の画素数からなるタイルごとに画素の値および画素の配置に基づいて圧縮する圧縮手段と、
前記タイルに含まれる画素の値から代表値を算出する代表値算出手段と、
第一のタイル数からなる第一エリアにおける各タイルの前記代表値の分布に基づき、前記第一エリアに含まれる注目タイルを補正するか否かを判定する判定手段と、
第二のタイル数からなる第二エリアにおける各タイルの前記代表値に基づき、前記注目タイルに対する補正値を算出する補正値算出手段と、
前記圧縮手段により圧縮された画像データにおける前記タイルそれぞれに対し、前記代表値と、前記判定手段による判定結果と、前記補正値とを付加する付加手段と
を有することを特徴とする画像処理装置。 - 前記圧縮された画像データを展開する展開手段を更に有し、
前記展開手段は、前記付加手段により前記圧縮された画像データに付加された前記代表値と前記判定手段による判定結果と前記補正値とを用いて、前記圧縮された画像データを展開する際に、前記画像データに対する補正を行うことを特徴とする請求項1に記載の画像処理装置。 - 前記代表値算出手段は、前記タイルに含まれる画素の値の平均値を前記代表値として算出することを特徴とする請求項1または2に記載の画像処理装置。
- 前記代表値算出手段は、前記タイルに含まれる画素の値のうち、最も頻度の多い値を代表値とすることを特徴とする請求項1または2に記載の画像処理装置。
- 前記判定手段は、前記第一エリアに含まれるタイルの代表値の分布が所定の範囲内であれば、前記注目タイルに対し、補正を行うと判定することを特徴とする請求項1乃至4のいずれか一項に記載の画像処理装置。
- 入力された画像データにおいて、グラデーションの領域を判定する領域判定手段を更に有し、
前記判定手段は、前記注目タイルが前記グラデーションの領域に含まれる場合、前記注目タイルに対し、補正を行わないと判定することを特徴とする請求項1乃至5のいずれか一項に記載の画像処理装置。 - 前記領域判定手段は、判定を行う領域に含まれる各タイルの代表値が、走査線方向および副走査線方向の両方において、常に増加、常に減少、もしくは一定のいずれかである場合、当該領域はグラデーションの領域であると判定することを特徴とする請求項6に記載の画像処理装置。
- 前記判定手段において判定を行う前記第一エリアと前記補正値算出手段において算出を行う前記第二エリアとは、同一の範囲のエリアであることを特徴とする請求項1乃至7のいずれか一項に記載の画像処理装置。
- 前記判定手段において判定を行う前記第一エリアと前記補正値算出手段において算出を行う前記第二エリアとは異なる範囲のエリアであることを特徴とする請求項1乃至7のいずれか一項に記載の画像処理装置。
- 前記補正値算出手段は、前記第二エリアに含まれる各タイルの代表値の平均値を補正値として算出することを特徴とする請求項1乃至9のいずれか一項に記載の画像処理装置。
- 前記補正値算出手段は、前記第二エリアに含まれる各タイルの代表値のうち、最も頻度の高い値を補正値として算出することを特徴とする請求項1乃至9のいずれか一項に記載の画像処理装置。
- 前記補正値を受け付ける受付手段を更に有し、
前記展開手段は、前記補正値算出手段により算出された補正値に代えて、前記受付手段にて受け付けた補正値を用いて展開処理を行うことを特徴とする請求項2に記載の画像処理装置。 - 入力された前記画像データは、カラー画像データであり、
前記代表値算出手段は、前記タイルに含まれる画素の値から色属性それぞれの代表値を算出し、
前記補正値算出手段は、前記注目タイルにおける前記色属性それぞれに対する補正値を算出することを特徴とする請求項1乃至12のいずれか一項に記載の画像処理装置。 - 前記タイルを構成する前記所定の画素数は、32x32画素の構成からなる数であることを特徴とする請求項1乃至13のいずれか一項に記載の画像処理装置。
- 入力された画像データに対し、補正処理を適用する画像処理装置の制御方法であって、
前記画像処理装置の圧縮手段が、前記画像データを、所定の画素数からなるタイルごとに画素の値および画素の配置に基づいて圧縮する圧縮工程と、
前記画像処理装置の代表値算出手段が、前記タイルに含まれる画素の値から代表値を算出する代表値算出工程と、
前記画像処理装置の判定手段が、第一のタイル数からなる第一エリアにおける各タイルの前記代表値の分布に基づき、前記第一エリアに含まれる注目タイルを補正するか否かを判定する判定工程と、
前記画像処理装置の補正値算出手段が、第二のタイル数からなる第二エリアにおける各タイルの前記代表値に基づき、前記注目タイルに対する補正値を算出する補正値算出工程と、
前記画像処理装置の付加手段が、前記圧縮工程において圧縮された画像データにおける前記タイルそれぞれに対し、前記代表値と、前記判定手段による判定結果と、前記補正値とを付加する付加工程と
を有することを特徴とする制御方法。 - コンピュータを、
画像データを、所定の画素数からなるタイルごとに画素の値および画素の配置に基づいて圧縮する圧縮手段、
前記タイルに含まれる画素の値から代表値を算出する代表値算出手段、
第一のタイル数からなる第一エリアにおける各タイルの前記代表値の分布に基づき、前記第一エリアに含まれる注目タイルを補正するか否かを判定する判定手段、
第二のタイル数からなる第二エリアにおける各タイルの前記代表値に基づき、前記注目タイルに対する補正値を算出する補正値算出手段、
前記圧縮手段により圧縮された画像データにおける前記タイルそれぞれに対し、前記代表値と、前記判定手段による判定結果と、前記補正値とを付加する付加手段
として機能させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010143922A JP2012010089A (ja) | 2010-06-24 | 2010-06-24 | 画像処理装置、制御方法、及びプログラム |
US13/159,312 US8570627B2 (en) | 2010-06-24 | 2011-06-13 | Image processing apparatus for data compression, control method, and computer-readable medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010143922A JP2012010089A (ja) | 2010-06-24 | 2010-06-24 | 画像処理装置、制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012010089A true JP2012010089A (ja) | 2012-01-12 |
Family
ID=45352311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010143922A Withdrawn JP2012010089A (ja) | 2010-06-24 | 2010-06-24 | 画像処理装置、制御方法、及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8570627B2 (ja) |
JP (1) | JP2012010089A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180087842A (ko) * | 2017-01-25 | 2018-08-02 | 캐논 가부시끼가이샤 | 화상 처리 장치 및 그 제어 방법 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USD612398S1 (en) | 2007-09-04 | 2010-03-23 | Apple Inc. | Icon for a portion of a display screen |
JP2012019357A (ja) * | 2010-07-07 | 2012-01-26 | Canon Inc | 画像処理装置及びその圧縮方法 |
USD753687S1 (en) * | 2013-06-09 | 2016-04-12 | Apple Inc. | Display screen or portion thereof with graphical user interface |
US9659393B2 (en) * | 2013-10-07 | 2017-05-23 | Intel Corporation | Selective rasterization |
USD842321S1 (en) | 2017-09-18 | 2019-03-05 | Apple Inc. | Electronic device with graphical user interface |
USD916128S1 (en) | 2019-03-04 | 2021-04-13 | Apple Inc. | Electronic device with icon |
USD902947S1 (en) | 2019-03-25 | 2020-11-24 | Apple Inc. | Electronic device with graphical user interface |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3938818B2 (ja) | 1999-03-24 | 2007-06-27 | 富士フイルム株式会社 | 画像処理装置及び方法 |
US7330596B2 (en) * | 2002-07-17 | 2008-02-12 | Ricoh Company, Ltd. | Image decoding technique for suppressing tile boundary distortion |
US8218908B2 (en) * | 2006-11-02 | 2012-07-10 | Canon Kabushiki Kaisha | Mixed content image compression with two edge data representations |
JP5132517B2 (ja) | 2008-10-22 | 2013-01-30 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
-
2010
- 2010-06-24 JP JP2010143922A patent/JP2012010089A/ja not_active Withdrawn
-
2011
- 2011-06-13 US US13/159,312 patent/US8570627B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180087842A (ko) * | 2017-01-25 | 2018-08-02 | 캐논 가부시끼가이샤 | 화상 처리 장치 및 그 제어 방법 |
US10706340B2 (en) | 2017-01-25 | 2020-07-07 | Canon Kabushiki Kaisha | Image processing apparatus and method for controlling the same with character attribute indicating that pixel is pixel of a character |
KR102246058B1 (ko) * | 2017-01-25 | 2021-04-29 | 캐논 가부시끼가이샤 | 화상 처리 장치 및 그 제어 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20110317232A1 (en) | 2011-12-29 |
US8570627B2 (en) | 2013-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012010089A (ja) | 画像処理装置、制御方法、及びプログラム | |
US8660347B2 (en) | Image processing apparatus and processing method therefor | |
JP5595151B2 (ja) | 画像処理装置、画像処理装置における圧縮方法、および、プログラム | |
JP5393574B2 (ja) | 画像処理装置、画像処理方法、及びプログラム | |
US8452083B2 (en) | Image processing apparatus, image processing method, and computer-readable medium | |
US8953220B2 (en) | Image processing for rotation of compressed image data | |
US8401287B2 (en) | Image processing apparatus and processing method thereof | |
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 | |
JP2004194278A (ja) | 画像処理装置、プログラム、コンピュータに読取可能な記憶媒体及び画像処理方法 | |
JP5538996B2 (ja) | 画像処理装置、画像処理方法、プログラム、および記憶媒体 | |
JP5599033B2 (ja) | 画像処理装置及び方法、並びにプログラム | |
JP5595142B2 (ja) | 画像処理装置及び画像処理方法 | |
US7342683B2 (en) | Data processing method for color management module | |
JP2012065214A (ja) | 画像処理装置 | |
JP2005269380A (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
JP2005051764A (ja) | 画像処理装置、プログラム、コンピュータに読取可能な記憶媒体及び画像処理方法 | |
JP5062633B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP5606223B2 (ja) | 画像処理装置及びその処理方法 | |
US8837021B2 (en) | Image processing apparatus, control method, and computer-readable medium | |
JP2012095227A (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JPH0918722A (ja) | カラー画像処理装置 | |
JP2012074897A (ja) | 画像処理装置、画像処理方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20130903 |