画像処理装置
【課題】画像データをmxnのデータの配置パターンを表すコードデータと、前記mxn画素を構成する値(カラーデータ)で構成する可逆圧縮処理(第1の圧縮処理)を行った後、更にデータ量を少なくする為に、可逆圧縮もしくは非可逆圧縮のどちらかで第2の圧縮処理を行う場合、文字部分に関して、非可逆圧縮による画質の劣化が起こる。
【解決手段】第2の圧縮処理内で、可逆圧縮処理、非可逆圧縮処理の選択は、第1の圧縮処理を行った結果のカラーデータの量によって決まっている。そこで、第1の圧縮処理を行う際に、エッジ情報を使用した減色処理を行う事により、カラーデータの削減を行い、第2の圧縮処理内で、非可逆圧縮処理の選択を行いやすくする。その際、通常の画像処理用に検出されているエッジ検出信号に対して、実画像データのエッジ部分とエッジ検出部分が一致するように、エッジ検出信号に補正を行う。
【解決手段】第2の圧縮処理内で、可逆圧縮処理、非可逆圧縮処理の選択は、第1の圧縮処理を行った結果のカラーデータの量によって決まっている。そこで、第1の圧縮処理を行う際に、エッジ情報を使用した減色処理を行う事により、カラーデータの削減を行い、第2の圧縮処理内で、非可逆圧縮処理の選択を行いやすくする。その際、通常の画像処理用に検出されているエッジ検出信号に対して、実画像データのエッジ部分とエッジ検出部分が一致するように、エッジ検出信号に補正を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力した画像データを所定のブロック単位で圧縮する画像データ圧縮を行い、その後更に可逆圧縮もしくは非可逆圧縮のどちらかで圧縮を行う画像装置において、文字等のエッジ部分の画像劣化を防ぎ、良好な画像出力を行う方法に関する。
【背景技術】
【0002】
従来から、特許文献1にあるように、入力された画像データに対して、エッジの検出を行い、背景部分などの諧調画像部分とは異なる処理を行わせることにより、文字部分、諧調画像部分のそれぞれに、良好な画像出力を行わせる技術が知られている。 また、画像データの圧縮技術として、JPEG圧縮処理のように、非可逆圧縮処理及び、画像データをmxnの複数画素毎のデータの配置パターンを表すコードデータと、前記複数画素を構成する値(カラーデータ)で構成する可逆圧縮処理等が知られている。
【0003】
非可逆圧縮処理に関しては、画像劣化は発生するが、圧縮率を高くする事により、圧縮後のデータ量を小さくすることが可能となる。また、可逆圧縮処理に関しては、非可逆圧縮処理ほどの圧縮率は望めず、圧縮後のデータ量はそれほど小さくはならないが、元画像と全く同じ画像が復元できるという特徴がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−93880
【発明の概要】
【発明が解決しようとする課題】
【0005】
画像データをmxnの複数画素毎のデータの配置パターンを表すコードデータと、前記複数画素を構成する値(カラーデータ)で構成する可逆圧縮処理(第1の圧縮処理)を行った後、プリント出力を行わず、ハードディスク等にデータの格納を行うことがある。前記第1の圧縮処理を行ったデータに対して、更にデータ量を少なくする為に、第2の圧縮処理を行う。第2の圧縮処理を行う場合、カラーデータのデータ量をカウントし、データ量が大きい場合、非可逆圧縮処理を、データ量が少ない場合には、可逆圧縮処理を行わせる事により、データ量と画質の両立を行なわせる。前記第2の圧縮処理を行う時、文字や細線等の画像に対して、JPEG等の非可逆画像圧縮処理を行った場合、文字や細線のエッジ部分において、ブロックノイズが発生し、画像劣化を引き起こす。また、スキャナによって入力された画像データは、元原稿では、均一色、均一濃度のベタ画像部分でも、光量ムラや、CCDの特性のバラツキ等で、均一の画像データとはならない。その為、スキャン画像データを前記第1の圧縮処理によって圧縮した場合、カラーデータのデータ量は多くなる。その結果、スキャナによって入力された画像データは、第2の圧縮処理に置いて、非可逆圧縮処理が実施される事となり、文字や細線のエッジ部分において、画像劣化の目立つ画像が出力されてしまう。
【課題を解決するための手段】
【0006】
上述の課題を解決するため、本発明は、第1の圧縮処理手段で圧縮処理を行った後、第2の圧縮処理手段で更に圧縮処理を行う画像処理装置であって、第1の圧縮処理手段は、入力された画像データで使用されている色数を少なくする減色処理を行うことによりデータ量を少なくした後に、圧縮データを生成し、第2の圧縮処理手段は、1の圧縮処理手段により生成された圧縮データのデータ量を予め設定してある閾値と比較し、閾値を越えている場合は圧縮データに対して非可逆圧縮処理を行ない、閾値を越えていない場合は圧縮データに対して可逆圧縮処理を行ない、さらに、入力された画像データから文字や線のエッジ部分を検出してエッジ検出信号を出力するエッジ検出手段を有し、第1の圧縮処理手段は減色処理を行う際に、エッジ検出手段により出力されたエッジ検出信号に基づいて、画像データの属性の同じ画素間は属性の異なる画素間より減色処理をしやすくするよう制御することを特徴とする画像処理装置を提供する。
【発明の効果】
【0007】
スキャナ画像入力データの文字部分の処理に関して、可逆符号化手段による良好な画像として出力する事により、スキャン文字領域の画質を改善できる。
【図面の簡単な説明】
【0008】
【図1】MFPシステムの概要を示す図である。
【図2】コントローラの概要を示す図である。
【図3】画像をブロック分割した際にそのブロックのパターンを列挙する図である。
【図4】ブロックのパターンとその識別子を列挙する図である。
【図5】画像圧縮のフローを示す図である。
【図6】ブロックのパターンをフラグへ変換している様子を示す図である。
【図7】圧縮処理に対する入力と出力の関係を示す図である。
【図8】圧縮データのメモリ空間上でのレイアウトを示す図である。
【図9】第1の実施例の圧縮処理部(A)のブロック図である。
【図10】第1の実施例の圧縮処理全体の構成を示すブロック図である。
【図11】第1の実施例の圧縮処理部(B)のブロック図である。
【図12】第1の実施例の減色処理のフローを表す図である。
【図13】第1の実施例の具定例における画像データを示す図である。
【図14】第1の実施例の減色処理を含めた圧縮処理全体の構成を示すブロック図である。
【図15】第1の実施例の圧縮処理部(C)のブロック図である。
【図16】第1の実施例の画像とエッジ検出信号のパターンを表す図である。
【図17】第1の実施例の具定例における画像データを示す図である。
【図18】第1の実施例の具定例におけるエッジ検出信号を示す図である。
【図19】第1の実施例のエッジ情報を使用した減色処理を含めた圧縮処理全体の構成を示すブロック図である。
【図20】第1の実施例でのエッジ検出部でのスムージングフィルタの例を示す図である。
【図21】第1の実施例でのエッジ検出部でのエッジ強調用フィルタの例を示す図である。
【図22】第1の実施例での画像データとエッジ検出信号の違いを示す図である。
【図23】第1の実施例の圧縮処理部(D)のブロック図である。
【図24】第1の実施例のエッジ信号補正処理の内容を示す図である。
【図25】第1の実施例のエッジ信号補正処理を含めた圧縮処理全体の構成を示すブロック図である。
【図26】第1の実施例の圧縮処理のフローを示す図である。
【図27】第2の実施例の圧縮処理全体の構成を示すブロック図である。
【図28】第3の実施例の圧縮処理全体の構成を示すブロック図である。
【発明を実施するための形態】
【0009】
以下、本発明を実施するための圧縮処理及び、伸張処理の最良の形態について図面を用
いて説明する。
【0010】
<第1の実施例>
図1に、本発明の実施の形態のスキャン、プリント、コピーを行うデジタル複合機システム(以降「MFP」と称する)の全体構成図を示す。
【0011】
コントローラ101は画像入力デバイスであるスキャナ102や画像出力デバイスであるプリンタ103と接続し、またLANや公衆回線(WAN)等ネットワーク104と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行う。CPU105はシステム全体を制御するプロセッサである。メモリ106はCPU105が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。HDD記憶部107はハードディスクドライブで、システムソフトウェア、画像データを格納する。ユーザーインターフェイス108は、MFPの状態や、画像データの表示を行うディスプレイ、ユーザーがMFPを使用するにあたって、各種設定を行うボタンやスイッチ、テンキー、またディスプレイやボタン等を兼ねたタッチパネルなどを備える。
【0012】
図2を用いて、図1のコントローラ部の動作に関して詳細に説明する。まず、スキャンデータを読み込む場合を説明する。
【0013】
スキャナ102からRGB(RED、GREEN、BLUE)3色の読み取り画像データを受け取ったコントローラ部では、まずスキャナ用画像処理部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へ出力する。
【0014】
スキャンデータを保存する場合には、メモリ106に格納されている圧縮データをDMAC241を介してディスクスプール高圧縮/展開部242へ入力する。ディスクスプール高圧縮/展開部では、HDDの書き込みスピードがメモリに対して遅いため、さらに高圧縮のJPEG圧縮を施す。その後ディスクアクセスコントローラ243を介してHDD記憶部107へ圧縮データを保存する。保存されているデータを再度メモリへ展開する場合はその逆処理を行う。
【0015】
PDLのデータをメモリへ書き込む場合を説明する。図2では図示していないが、図1にてネットワークから送られてきたPDLデータをCPU105にてインタープリットしメモリ106へディスプレイリストを出力する。その後メモリ106に格納されているディスプレイリストをレンダリング部251でラスタのRGB画像データへレンダリングを行い、圧縮部252にて画像圧縮処理を行う。その圧縮データをDMAC253を介してメモリ106へ格納する。PDL画像データをプリント、ネットワークへ送信、保存する場合はスキャンデータのそれと同様の処理を行うことで実現する事が可能になる。
【0016】
以降ではラスタ画像データの圧縮部の詳細に関して説明を行う。まずページ単位のラスタ画像データから2x2画素のブロックを抽出し、そのブロック単位でデータの圧縮を行う。
処理の説明の前に、2x2の4画素データ中に占める色数に応じてその組み合わせの場合の数を考える。画素数が4画素なので、そこに占める色数は最大4色になり、ブロック内でたかだか1〜4色の組み合わせしか存在しない。それら4色のパターンのとりうる組み合わせの場合の数を図3を使って説明する。
【0017】
まずブロック内が1色の場合、4画素が同色で構成されている事になるので、その組み合わせは1通りである。次にブロック内が2色の場合を考える。2色が4画素内へレイアウトされる場合の数は、左上の画素を第1色、他方を第2色として考えると、左上以外残りの3画素へ第1色もしくは第2色が入るので、4画素同色の場合を除くと、全部で7通りの組み合わせが考えられる。
【0018】
次にブロック内が3色の場合を考える。3色が4画素内へレイアウトされる場合の数は、3色のうち1色だけ2度使われる場合の数と言い換える事が可能で、4画素の座標のうち、2画素が同じ色になる場合の数を求めればよい。つまり3色の場合の数は、4つの座標から2つの座標を取る組み合わせとなり、全部で6通りとなる。
【0019】
最後にブロック内が4色の場合は1色の場合と同様1パターンしか存在しない。これら1〜4色すべての場合の数を合計すると全部で15通りのパターンが考えられる。これらすべてのパターンを識別するためにフラグを付与する事を考えると、データ量としては4bit必要となる。図示すると図4のようになり、以降このフラグをパターンフラグと呼ぶ。
【0020】
上記のように2x2画素の取りうる組み合わせを踏まえて、圧縮部202、252にて行われる処理フローを図5を用いて説明する。入力としては、例えばRGBそれぞれ8bitの256階調を持っており、またデータとしては8bitデータの点順次で1画素あたり24bit画像として説明を行う。
【0021】
まず2x2画素のブロックを入力し(S501)、そのブロック内全ての2画素の組み合わせに対して24bitのコンペアを取る(S502)。このコンペアを取った結果、全ビット一致していた場合1を、不一致の場合0を出力する。
【0022】
図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色以降がどの位置にあるか求める事が出来る。
【0023】
図7を参照しながら説明を行う。例えば4画素内が1色で構成されていることが確定した場合(S505)には、2色目以降は存在しないので、パターンフラグ4bitと1色目の24bitを出力する(S506)。また4画素内が2色で構成されていることが確定した場合(S507)には、その2色目の座標をパターンフラグより算出し、パターンフラグ4bitと2色分の画素値48bitを出力する(S508)。3色、4色の場合も同様である(S509、S510、S511)。この時ブロック内の座標(左上から右上、左下、右下の順に1、2、3、4)順にこれまで出現していなかった色データを記憶する。
【0024】
このように、2x2画素のブロック内の4色96bitの入力データを4bitのパターンフラグとそこに存在する色数だけ画素値を出力することで、比較的簡単な処理で出力データ量を削減することが可能になる。またパターンフラグを参照することで、そのブロック内の色数を特定することが可能になる。
【0025】
この処理を画像ブロック全てに対して行うことで、画像全面のデータ圧縮が可能になる。このようにして求めたパターンフラグと、色データをDMACを通じてメモリに書き込むが、その時DMACではパターンフラグと第1色のデータと、第2、3、4色の書き込み位置を変える。DMACにはパターンフラグ書き込みのためのメモリ先頭アドレスと、第1色データの書き込みのためのメモリ先頭アドレスと、第2、3、4色データの書き込みのためのメモリ先頭アドレスの3つのアドレスを指定する。
【0026】
図8にその例を図示する。例えばMxN画素のRGB各色8ビット画像を圧縮部へ入力する場合、パターンフラグのデータサイズはMxN/8バイト、第1色のデータサイズはMxNx3/4バイト、第2〜4色のデータサイズは画像によって不定(画像によって異なる)の出力となる。ここで第1色書き込み位置以降のメモリ領域に関しては、画素データがピクセル単位で量子化や符号化されることなく格納されている。つまり、1画素入力、1画素出力で完結する色処理、例えばLUTを用いた色変換や、ガンマ補正処理、行列演算を用いた色空間変換処理等は特にパターンフラグを参照する必要はなく、直接処理を行うことが可能になる。図2に示す色処理部ではメモリ上の第1色書き込み先頭アドレス以降の画素データをDMAC経由で読み込み、画素単位での処理を済ませた後にメモリ上へ書き戻す。この時なんらかの画素単位処理によって画素のビット数が変わらない場合には、メモリ上同じ場所へ上書きすることでメモリの節約も可能である。
【0027】
このように圧縮データを直接用いることで、メモリバス上の転送効率が向上し、かつオリジナルの画像に対して少ない画素数のデータに対して処理することになるので、高速処理が可能になる。また前述のように(図8のように)画像データを離散的にメモリ上へ格納することで、第1色部に限ってみると、画像を2x2単位に左上の座標の画素をサンプリングした画像結果がメモリ上連続して存在することになる。本実施例で説明しているMFPにおいては、蓄積したPDL画像データやスキャンの画像データのプレビュー表示や、前述したネットワーク送信などの機能も有している。例えばプリント解像度が600dpiであったとしてもプレビューや送信時にそこまでの解像度は通常必要とされず、300dpiやそれ以下で十分な場合が多い。こういった縮小データを得る必要がある場合は、パターンフラグや第2、3、4色を捨て、第1色の画像データのみ扱うことで、簡単に半分のサイズのラスタ画像を得る事が出来る。
【0028】
例えば前述の例で600dpiで蓄積されていた場合の縮小送信時を説明する。解像度として400dpiなどサンプリングされている300dpiより大きい解像度が指定されている場合にはパターンフラグも含めて圧縮されているデータを一度展開し公知の変倍を用いて送信する。逆に300dpiより小さい送信解像度指定がされている場合には第1色部のデータのみ用い、指定の解像度へ変倍処理を行うといったように必要な画像サイズに応じて切り替えながらデータの読み込みを行う。
【0029】
次に、圧縮部と対になる展開部222、232に関して説明する。展開部では前述したようなパターンフラグ、画素データをもとにもとのラスタ画像データへ戻す処理を行なう。
【0030】
メモリ上に図8のように配置されている圧縮データのパターンフラグ書き込み先頭アドレス、第1色書き込み先頭アドレス、および第2、3、4色書き込み先頭アドレスの3つのアドレスをDMACへ指定する。DMACはその3つのアドレスからデータを読み出し、展開部へ入力する。展開部ではまず4bitのパターンフラグを解釈し、そのブロック内の色数を算出する。第1色データに加え、色数に応じて第2、3、4色データを読み出し、パターンフラグの形状に応じて画素データを再配置する。このようにすることで2x2画素ブロックを展開、復号する。
【0031】
また、展開部で画像サイズ1/2を行う場合には、前述したように、パターンフラグと2、3、4色データを必要としないので、DMACには第1色書き込み先頭アドレスのみ指定し、メモリからは第1色データのみ読み込みを行い画像を構成する。こうすることでメモリバスの帯域を節約することが可能になる。
【0032】
以上説明してきた構成をとることで、比較的単純な圧縮方式でメモリ容量やメモリバス帯域の節約が可能になるだけでなく、画素単位での画像処理や縮小変倍の処理負荷も削減することが可能になる。
【0033】
なお本実施例では2x2のブロックを最小単位として記述していたが、これに限るものではない。また圧縮の説明の際画像データとしてRGB8bitを例として説明していたが、CMYKの色空間を取るものや、グレースケールのデータ、また8bit以外の画素値をとるものでも良い。
【0034】
前記圧縮処理を実現する為のブロック図は、図9のようになる。入力I/F901を介して入力された画像データは、2x2画素切り出し部902によって、2x2画素単位でデータが抽出される。2x2で切り出されたデータは、パターン認識部903によって、先に説明を行った15パターンのどのパターンにあたるかの認識が行われる。また同時に、2x2で切り出されたデータは、色判定部904に入力され、第1色データ及び、第2から第4の色データ(補間色データ)の認識が行われる。前記、パターン認識部903及び色判定部904の処理結果を元に、圧縮データ生成部905によって、先に説明を行ったような、パターンデータ、第1色データ、補間色データの生成を行なう。前記各データは、出力I/F906を介して出力される。
【0035】
前記圧縮処理(第1の圧縮処理)を行った後、プリント出力を行わず、ハードディスク等にデータを格納したり、他の処理モジュールに転送を行う場合、前記圧縮処理を行ったデータに対して、更にデータ量を少なくする為に、第2の圧縮処理を行う。第2の圧縮処理を行う場合、補間色データのデータ量をカウントし、補間色データ量が大きい場合、非可逆圧縮処理を、補間色データ量が少ない場合には、可逆圧縮処理を行わせる事により、データ量と画質の両立を行なわせる。
【0036】
前記2段階の圧縮処理を行う為のブロック図は、図10のようになる。先に説明を行っている部分に関しては、先の図と同じ番号をつける事により、詳細な説明は省く。
【0037】
入力I/F1001は、スキャナ等から入力される画像データの入力を行う。スキャナ用画像処理部201は、図2に関して説明したように、シェーディング処理やフィルタ処理、色補正処理等の画像処理を行う。
【0038】
圧縮処理部(1A)1002は、図9を用いて説明した処理(第1の圧縮処理)を行う部分で、2x2画素切り出し部902、パターン認識部903、色判定部904、圧縮データ生成部905からなり、パターンデータ、第1色データ、補間色データを生成する。スキャナ用画像処理部201、圧縮処理部(1A)1002で処理した画像データを、プリンタで出力したり、ネットワーク経由でコントローラから出力する場合は、圧縮処理部(1A)1002からの各出力データを出力I/F1003を介して出力する。
【0039】
スキャナ用画像処理部201、圧縮処理部(1A)1002で処理した画像データを、プリント出力等を行わず、ハードディスク等にデータの格納を行う場合、前記圧縮処理を行ったデータに対して、更にデータ量を少なくする為に、第2の圧縮処理を行う。圧縮処理部(2)1004が第2の圧縮処理を行う。
【0040】
圧縮処理部(2)1004内には、非可逆圧縮部1008と可逆圧縮部1009の2種類の圧縮処理が用意されている。圧縮処理部(1A)1002からの補間色データのデータ量が大きい場合には、データ量を小さくする為に非可逆圧縮部1008によって、非可逆圧縮処理を行う。また、圧縮処理部(1A)1002からの補間色データのデータ量が小さい場合には、良好な画像出力を保つ為に可逆圧縮部1009によって、可逆圧縮処理を行う。
【0041】
圧縮処理部(1A)1002からの補間色データは、比較部1005にも入力され、データ量をカウントし、予め設定されている閾値との比較を行う事によって、圧縮処理部(2)1004で行う圧縮処理の選択信号を生成する。圧縮方式選択部1006では、圧縮処理部(1A)1002からの各データの入力を行い、比較部1005からの選択信号を元に、非可逆圧縮部1008と可逆圧縮部1009のどちらかにデータを出力する。
【0042】
圧縮処理部(1A)1002からの補間色データのデータ量が大きく、比較部1005からの選択信号が非可逆圧縮処理の選択を行った場合は非可逆圧縮処理を行なう。即ち、圧縮方式選択部1006から出力されるパターンデータ、第1色データ、補間色データを伸張処理部1007によって伸張し、元画像データとしてから、非可逆圧縮部1008によって、JPEG圧縮処理等の高圧縮率の非可逆圧縮処理を行う。一方、補間色データのデータ量が小さく、比較部1005からの選択信号が可逆圧縮処理の選択を行った場合、圧縮方式選択部1006から出力されるパターンデータ、第1色データ、補間色データのそれぞれに対して、可逆圧縮部1009によって可逆圧縮を行う。
【0043】
出力データ選択部1010は、比較部1005からの選択信号を元に、非可逆圧縮部1008もしくは可逆圧縮部1009からの圧縮データの選択を行い、出力I/F1003を介して出力を行なう。
【0044】
前記2段階の圧縮処理を行う場合、圧縮処理部(2)1004内の非可逆圧縮部1008もしくは可逆圧縮部1009の選択を、補間色データのデータ量を元に決定する。
【0045】
スキャナによって入力された画像データは、元原稿では均一色、均一濃度のベタ画像部分でも、光量ムラや、CCDの特性のバラツキ等で、均一の画像データとはならない事が多い。その為、スキャン画像データを圧縮処理部(1A)1002によって圧縮した場合、補間色データのデータ量は多くなる。その結果、スキャナによって入力された画像データは、圧縮処理部(2)1004において、非可逆圧縮処理が実施される事となり、文字や細線のエッジ部分において、画像劣化の目立つ画像が出力されてしまう。
【0046】
スキャナによって入力された画像データ等のデータのバラツキは、元々均一色、均一濃度の部分に関しては、類似した色及び濃度で表現される。そこで、2x2に切り出した画像データに対して、類似した色及び濃度の画素に関して、複数画素のデータを、出力画像の画質の劣化が目立たない状態で、1色にまとめる処理(減色処理)を行なうことを考える。
【0047】
図11は、先に図9で説明を行った圧縮処理に、減色処理部1101を加えた形のブロック図である。2x2画素切り出し部902によって切り出された2x2画素のデータに対して、減色処理部1101によって減色処理を行なう。その後、パターン認識部903、色判定部904、圧縮データ生成部905による各種圧縮処理を行い、パターンデータ、第1色データ、補間色データの生成を行なう。
【0048】
図12は、減色処理部1101での処理内容を示すフローチャートである。まず2x2の入力に対し、4画素のデータに対して1色へ減色処理を行う(S1202)。ここでは例えば4画素の平均画素値を算出することで1色への減色を実現する。続いて減色した画素値と入力の4画素の画素値との差分を算出し(S1203)、誤差の大小を判定する(S1204)。例えば入力と減色後のRGB値の差の絶対値の和を取り、その値がある閾値以下である場合には差が小さいと判断出来る。もしここで差が小さいと判定された場合には、減色した1色の画素値を使用して2x2画素データを出力する(S1205)。
【0049】
S1204で誤差が大きいと判定された場合には、2色へ減色処理を行う(S1206)。ここでは例えば4画素のうちRGB値の差が最も大きい2画素A、Bを抽出し、残りの2画素がA、Bどちらに近いかでクラスタリングし、そのクラスタ平均値を求めることで、2色化する。続いて2色化した画素値と入力の4画素の画素値との差分を計算し(S1207)、誤差の大小を判定する(S1208)。もしここで差が小さいと判定された場合には、減色した2色の画素値を使用して2x2画素データの出力を行う(S1209)。
【0050】
S1208でも誤差が大きいと判定された場合には、3色への減色処理を行う(S1210)。ここでは例えば4画素のうち最もRGB値の差の小さい2画素を抽出し、その2画素の値を平均化し、それ以外の2画素をあわせ4画素を3色へ減色する。続いて3色化した画素値と入力の4画素の画素値との差分を計算し(S1211)、誤差の大小を判定する(S1212)。もしここで差が小さいと判定された場合には、減色した3色の画素値を使用して2x2画素データの出力を行う(S1213)。
【0051】
S1212でも誤差が大きいと判定された場合には、減色することで視覚的に問題が出るブロックということになるので、入力された4色全ての画素値を出力する(S1214)。
【0052】
上述の減色処理を行う事により、スキャナ等で入力された画像データの類似した色及び濃度で表現されていた各画素データをある程度まとめることができる。このようにして、補間色データの削減が行われる。
【0053】
また前述した誤差判定の閾値の取り方次第で圧縮率と画質の調整も可能となる。例えば許容する誤差を全くなくす(0にする)事で、画像としては全く可逆の圧縮になる。逆に許容する誤差を無限にする事で、全ブロック1色で表現されることになり解像度を半分にするのと等価となり、データ量を1/4にすることが保証出来る。
【0054】
本実施例では減色を用いた圧縮部での説明となっているが、この方法を用いた圧縮であればその展開の処理は減色を伴ったかどうかの圧縮方法を意識する必要はない。なお、ここで説明に用いた減色の処理は一例であり、他の公知の減色処理を用いて実施することも可能である。また入力画素と減色処理後の画素の差を算出する手段であるが、これも公知の色差を求める別の手段で代替することも可能である。
【0055】
前記減色処理の具体例をあげると以下のようになる。図13のような2x2の画像データが入力されたものとする。なお、色を同一色としてまとめる閾値を、誤差値が「40」以内と設定するものとする。
【0056】
「1」の画素のデータは、(R, G, B) = (200, 180, 160)
「2」の画素のデータは、(R, G, B) = (180, 160, 140)
「3」の画素のデータは、(R, G, B) = (50, 40, 30)
「4」の画素のデータは、(R, G, B) = (80, 70, 60)
【0057】
前記2x2画素のデータを1色にまとめようとした場合のR、G、Bのデータは、各画素のR、G、Bそれぞれの4画素の平均値とすると、以下のようになる。
AVE_R = (200+180+50+80) /4 = 127.5
AVE_G = (180+160+40+70) /4 = 112.5
AVE_B = (160+140+30+60) /4 = 97.5
(R, G, B) = (AVE_R, AVE_G, AVE_B) = (127.5, 112.5, 97.5)
【0058】
1色にまとめる場合の「1」〜「4」の各誤差値は、以下のように求められる。
「1」の誤差値 : |127.5-200| + |112.5-180| + |97.5-160| = 202.5
「2」の誤差値 : |127.5-180| + |112.5-160| + |97.5-140| = 142.5
「3」の誤差値 : |127.5-50| + |112.5-40| + |97.5-30| = 217.5
「4」の誤差値 : |127.5-80| + |112.5-70| + |97.5-60| = 127.5
従って、上述の閾値を用いると、「1」から「4」の全ての画素に関して、色をまとめる事は出来ないと判断される。
【0059】
次に、前記2x2画素のデータを2色にまとめる場合の計算を行う。前記2x2画素のデータを2色にまとめようとした場合のR、G、Bのデータは、「1」と「2」の画素のR、G、Bそれぞれの平均値と、「3」と「4」の画素のR、G、Bそれぞれの平均値の2色のデータとなる。前者の平均値をAVE_12_R, AVE_12_G, AVE_12_B、後者をAVE_34_R, AVE_34_G, AVE_34_Bとする。
AVE_12_R = (200+180) /2 = 190
AVE_12_G = (180+160) /2 = 170
AVE_12_B = (160+140) /2 = 150
AVE_34_R = (50+80) /2 = 65
AVE_34_G = (40+70) /2 = 55
AVE_34_B = (30+60) /2 = 45
【0060】
よって、2色にまとめる場合の、「1」〜「4」の各誤差値は、以下のように求められる。
「1」の誤差値 : |190-200| + |170-180| + |150-160| = 30
「2」の誤差値 : |190-180| + |170-160| + |150-140| = 30
「3」の誤差値 : |65-50| + |55-40| + |45-30| = 45
「4」の誤差値 : |65-80| + |55-70| + |45-60| = 45
従って、上述の閾値を用いると、「1」、「2」の画素に関してはまとめる事が可能であるが、「3」、「4」の画素色をまとめる事は出来ないと判断される。よって、前記2x2画素のデータは、2色にまとめる事は出来ないと判断される。
【0061】
次に、前記2x2画素のデータを3色にまとめる場合の計算を行う。前記2x2画素のデータを3色にまとめようとした場合のR、G、Bのデータは、「1」と「2」の画素のR、G、Bそれぞれの平均値と、「3」と「4」の画素の入力データをそのまま使用する形で、3色のデータとなる。「1」と「2」の画素のR、G、Bそれぞれの平均値(AVE_12_R, AVE_12_G, AVE_12_B)は以下のようになる。
AVE_12_R = (200+180) /2 = 190
AVE_12_G = (180+160) /2 = 170
AVE_12_B = (160+140) /2 = 150
【0062】
よって、3色にまとめる場合の、「1」、「2」の各誤差値は、以下のように求められる。
「1」の誤差値 : |190-200| + |170-180| + |150-160| = 30
「2」の誤差値 : |190-180| + |170-160| + |150-140| = 30
従って、上述の閾値を用いると、「1」、「2」の画素に関してはまとめる事が可能となる。また、「3」、「4」の画素に関しては、入力されたデータをそのまま使用するため、本例の2x2画素のデータは、3色にまとめる事が出来ると判断される。その場合の2x2画素のデータは、以下のようになる。
「1」の画素のデータ (R, G, G) = (190, 170, 150)
「2」の画素のデータ (R, G, G) = (190, 170, 150)
「3」の画素のデータ (R, G, G) = (50, 40, 30)
「4」の画素のデータ (R, G, G) = (80, 70, 60)
【0063】
図10の画像圧縮処理のブロック図に前記減色処理を含めると図14のようになる。圧縮処理部(1B)1401内に減色処理部1101を加える事により、スキャナ等で入力された画像データの類似した色及び濃度で表現されていた各画素データがまとめられ、補間色データの削減が行われる。その結果、圧縮処理部(2)1004での比較部1005によって、可逆圧縮処理が選ばれやすくなる為、圧縮処理部(2)1004での画像圧縮による劣化が抑えられる。
【0064】
しかし、前記減色処理を行うと弊害が起きることもある。スキャン画像データのベタ部分の減色を積極的に行おうとすると、同一色としてまとめる閾値が大きくなる。そうすると、文字のエッジ部分などの下地と文字の境界部分の中間色も下地部分と同一の色と判断され、文字のエッジが綺麗に表現されない事態が生じる。そのため、減色処理を行う際に、エッジ情報を使用する事が考えられる。
【0065】
図15は、図11の減色処理部1101に代えて、エッジ情報を使用した減色処理部1501を使用した圧縮処理部(C)1500のブロック図である。圧縮処理部(C)1500では、エッジ検出信号を外部から入力し、減色処理部1501内で、エッジ情報を加味した減色処理を行う。この場合、エッジ情報を元に、同一の属性の画素間に関しては同一色と判断しやすく、異なる属性の画素間に関しては同一色と判断しにくくする制御を行う。すなわち、エッジ情報を元に、同一の属性の画素間に関して、異なる属性の画素間より同一色と判断しやすくする制御を行う。それによって、下地部分どうしでは減色処理が行われるように、文字のエッジ部分と下地部分では減色処理が行われにくくなり、文字のエッジ部分の再現性をよくすることができる。
【0066】
以下に、減色処理部1501内で行われる、エッジ情報を加味した減色処理に関する詳細な説明を行う。図16に示すように、画像データのパターンデータは、先に説明を行ったように15パターンのデータである。同様にして考えると、エッジ部分か否かの判定を行ったエッジ検出信号を、画像データと対応させて2x2画素で表現すると、8つのパターンで表される。
【0067】
図17に示す2x2の画像データに対して、図18のようなエッジ検出信号が入力されたものとする。
「1」の画素のデータは、(R, G, B) = (200, 180, 160)
「2」の画素のデータは、(R, G, B) = (180, 160, 140)
「3」の画素のデータは、(R, G, B) = (50, 40, 30)
「4」の画素のデータは、(R, G, B) = (80, 70, 60)
ここで、各画素は以下の属性情報を持つものとする。
「1」の属性情報は非エッジ部分
「2」の属性情報はエッジ部分
「3」の属性情報はエッジ部分
「4」の属性情報はエッジ部分
【0068】
なお、色を同一色としてまとめる閾値として、以下のような設定を用いるものとする。
(ア)同一の属性を持つ画素間の誤差値が「50」以内である場合は同一色とする
(イ)異なる属性を持つ画素間の誤差値が「25」以内である場合は同一色とする
【0069】
前記2x2画素のデータを1色にまとめようとした場合のR、G、Bのデータは、各画素のR、G、Bそれぞれの4画素の平均値とすると、以下のようになる。
AVE_R = (200+180+50+80) /4 = 127.5
AVE_G = (180+160+40+70) /4 = 112.5
AVE_B = (160+140+30+60) /4 = 97.5
(R, G, B) = (AVE_R, AVE_G, AVE_B) = (127.5, 112.5, 97.5)
【0070】
1色にまとめる場合の、「1」〜「4」の各誤差値は、以下のように求められる。
「1」の誤差値 : |127.5-200| + |112.5-180| + |97.5-160| = 202.5
「2」の誤差値 : |127.5-180| + |112.5-160| + |97.5-140| = 142.5
「3」の誤差値 : |127.5-50| + |112.5-40| + |97.5-30| = 217.5
「4」の誤差値 : |127.5-80| + |112.5-70| + |97.5-60| = 127.5
従って、上述の閾値を用いると、「1」〜「4」の全ての画素に関して、色をまとめる事は出来ないと判断される。
【0071】
次に、前記2x2画素のデータを2色にまとめる場合の計算を行う。前記2x2画素のデータを2色にまとめようとした場合のR、G、Bのデータは、「1」と「2」の画素のR、G、Bそれぞれの平均値と、「3」と「4」の画素のR、G、Bそれぞれの平均値の2色のデータとなる。前者の平均値をAVE_12_R, AVE_12_G, AVE_12_B、後者をAVE_34_R, AVE_34_G, AVE_34_Bとする。
AVE_12_R = (200+180) /2 = 190
AVE_12_G = (180+160) /2 = 170
AVE_12_B = (160+140) /2 = 150
AVE_34_R = (50+80) /2 = 65
AVE_34_G = (40+70) /2 = 55
AVE_34_B = (30+60) /2 = 45
【0072】
よって、2色にまとめる場合の、「1」〜「4」の各誤差値は、以下のように求められる。
「1」の誤差値 : |190-200| + |170-180| + |150-160| = 30
「2」の誤差値 : |190-180| + |170-160| + |150-140| = 30
「3」の誤差値 : |65-50| + |55-40| + |45-30| = 45
「4」の誤差値 : |65-80| + |55-70| + |45-60| = 45
従って、「1」、「2」の画素に関しては、誤差値は「30」となっているが、エッジ検出信号のパターンが「1」は非エッジ部分、「2」はエッジ部分の属性を示している為、閾値(イ)により、同一色にはならないと判断される。「3」、「4」の画素に関しては、誤差値は「45」となっているが、エッジ検出信号のパターンが「3」、「4」ともエッジ部分の属性を示している為、閾値(ア)により、同一色になると判断される。よって、前記2x2画素のデータは、2色にまとめる事は出来ないと判断される。
【0073】
次に、前記2x2画素のデータを3色にまとめる場合の計算を行う。前記2x2画素のデータを3色にまとめようとした場合のR、G、Bのデータは、「3」と「4」の画素のR、G、Bそれぞれの平均値と、「1」と「2」の画素の入力データをそのまま使用する形で、3色のデータとなる。「3」と「4」の画素のR、G、Bそれぞれの平均値(AVE_34_R, AVE_34_G, AVE_34_B)は以下のようになる。
AVE_34_R = (50+80) /2 = 65
AVE_34_G = (40+70) /2 = 55
AVE_34_B = (30+60) /2 = 45
【0074】
よって、3色にまとめる場合の、3、4の各誤差値は、以下のように求められる。
「3」の誤差値 : |65-50| + |55-40| + |45-30| = 45
「4」の誤差値 : |65-80| + |55-70| + |45-60| = 45
従って、「3」、「4」の画素に関しては、誤差値は「45」となっているが、エッジ検出信号のパターンが「3」、「4」ともエッジ部分の属性を示している為、閾値(ア)により、同一色になると判断される。また、「1」、「2」の画素に関しては、入力されたデータをそのまま使用するため、本例の2x2画素のデータは、3色にまとめる事が出 「1」の画素のデータ (R, G, G) = (200, 180, 160)
「2」の画素のデータ (R, G, G) = (180, 160, 140)
「3」の画素のデータ (R, G, G) = (65, 55, 45)
「4」の画素のデータ (R, G, G) = (65, 55, 45)
【0075】
図14の画像圧縮処理のブロック図に、前記エッジ検出信号を使用した減色処理を含めると図19のようになる。エッジ検出部1901によって検出されたエッジ検出信号は、スキャナ用画像処理部等で色補正やエッジ強調等の切り替えに使用されると共に、圧縮処理部(1C)1902内の減色処理部1501に入力される。それにより、スキャナ等で入力された画像データの類似した色及び濃度で表現されていた各画素データがまとめられ、補間色データの削減が行われる際に、エッジ部分の画質の劣化を防ぐことができる。
【0076】
しかし、図19のような状態では、良好な結果が得られない事がある。エッジ検出部1901内でのエッジ検出の方法は以下のように行われる。例えば、図20に示すような、3x3のスムージングフィルターにより、中心の注目画素に対して、スムージング処理を行う。また同時に、図21に示すようなエッジ強調フィルタにより、中心の注目画に対して、エッジ強調処理を行う。前記スムージング処理結果と、エッジ協調処理結果の差の絶対値を、予め設定されている閾値と比較し、閾値よりも大きな場合はエッジ部分、小さな場合は非エッジ部分との判断を行う。通常、エッジ検出を行なう場合、設定されている閾値は、濃度の薄い文字のエッジや、下地に色がついている部分の文字のエッジ等をエッジ部分として検出を行う為、ある程度小さめの値となっている。スキャナ用画像処理部等で色補正やエッジ強調等の切り替えに使用される場合は、薄い文字や下地に色がある場合の文字等にも、エッジ部分としての処理が必要となるからである。その為、下地との濃度差が十分あるような場合(白い下地に黒い文字があるような場合)は、図22に示すように、実際の文字のエッジ部分より広い範囲で、エッジ部分の検出を行う。
【0077】
そのため本来、減色処理の制御を行いたい部分(文字のエッジ部分)と、エッジ検出信号のエッジ部分にズレがあり、間違った部分で前記エッジ信号を使用した減色処理の制御が実施されてしまう。実際の文字のエッジ部分より何画素広い範囲で、エッジ部分の検出を行うかは、前記スムージング処理結果と、エッジ協調処理結果の差の絶対値を比較する閾値の大きさによって決定する。よって、その閾値の設定値によって、下地との濃度差が十分あるような場合に、何画素分余分にエッジ判定を行っているかが明確になる。
【0078】
上述の事態に対応する為に、図15に示した圧縮処理に対して、エッジ検出信号補正部2301を付加した構成を図23に示す。図23では、エッジ検出信号補正部2301によって、入力されたエッジ検出信号を、実際の画像データのエッジ部分と一致するように補正を行った後に、減色処理部1501へ入力する。
【0079】
エッジ検出信号補正部2301では、図24に示すように、濃度の薄い文字のエッジや、下地に色がついている部分の文字のエッジ等をエッジ部分として検出を行う為、ある程度小さめの閾値によるエッジ判定信号を用いる。そして、実際の文字のエッジに一致するように、数画素(本実施例では2画素)細らせることにより、エッジ検出信号を画像データのエッジと一致させる。これにより、意図した部分でのエッジ情報を使用した減色処理が可能となる。
【0080】
図19の画像圧縮処理のブロック図に、エッジ検出信号補正部2301を含めると図25のようになる。エッジ検出部1901によって検出されたエッジ検出信号は、スキャナ用画像処理部等で使用される。エッジ検出信号はさらに、圧縮処理部(1D)2501内のエッジ検出信号補正部2301によって、補正処理が行われた後、エッジ検出補正信号として、減色処理部1501に入力される。それにより、スキャナ等で入力された画像データの類似した色及び濃度で表現されていた各画素データがまとめられ、補間色データの削減が行われる際に、エッジ部分の画質の劣化を防ぐことができる。
【0081】
図26は、図25の構成による処理フローを示すフローチャートである。入力された画像データ(S2601)は、エッジ検出部1901によってエッジ検出処理が行われ(S2603)、その結果を使用して、スキャン用画像処理部201によって、スキャン用画像処理が行われる(S2602)。スキャン用画像処理(S2602)が行われた画像データは、圧縮処理部(1D)2501に入力され、2x2画素切り出し処理(S2604)によって、2x2画素のデータに切り出される。入力された画像データがスキャン画像で、それを元にしたエッジ検出信号を使用する場合には(S2605:YES)、エッジ信号補正処理(S2606)をエッジ検出信号補正部(2502)によって実施した後に、減色処理(S2607)を実施する。PDL画像等のエッジ情報が入力され、エッジ検出信号の補正の必要がない場合には(S2605:NO)、エッジ信号補正処理(S2606)は実施せずに、減色処理(S2607)を実施する。その後、パターン認識処理(S2608)及び、色判定処理(S2609)を行った後に圧縮データ生成処理(S2610)を行い、パターンデータ、第1の色データ、補間色データの生成を行なう。
【0082】
ここで、生成した圧縮データをプリンタ等で出力を行なう場合には(S2611:YES)、出力I/F1003を介してプリント出力を行う(S2612)。プリントを行わず、ハードディスク等に格納を行う場合には(S2611:NO)、圧縮処理部(2)1004へ入力され、更なる圧縮処理が行われる。
【0083】
圧縮処理部(2)1004では、比較部1005によって、補間データ量を予め設定されている閾値と比較する(S2613)。補間データ量が閾値より大きい場合(S2614:YES)、圧縮処理部(1D)2501から圧縮処理部(2)1004に入力された、パターンデータ、第1の色データ、補間色データに伸張処理部1007によって伸張処理を行う(S2615)。こうして元画像データに戻した後、非可逆圧縮処理部1008によって、高圧縮率の非可逆圧縮を行う(S2616)。補間データ量が閾値より小さい場合(S2614:NO)、圧縮処理部(1D)2501から圧縮処理部(2)1004に入力された、パターンデータ、第1の色データ、補間色データに、可逆圧縮処理部1009によって低圧縮率の可逆圧縮を行う(S2617)。圧縮処理部(2)1004によって、非可逆圧縮もしくは可逆圧縮が行われた圧縮データは、出力I/F1003を介して出力される(S2618)。
【0084】
以上のように、画像データをmxnの複数画素毎のデータの配置パターンを表すコードデータと、前記複数画素を構成する値(カラーデータ)で構成する可逆圧縮処理(第1の圧縮処理)を行った後、更にデータ量を少なくする為に、第2の圧縮処理を行う。この場合、エッジ検出信号を実際の画像データに合わせた上で減色処理に使用する事により、文字の再現性の品質を保った上で、圧縮データを生成することができる。
【0085】
<第2の実施例>
第1の実施例では、第1の圧縮処理時に減色処理を行う事により補間色データのデータ量を削減し、第2の圧縮処理時に可逆圧縮を選択しやすくする方法について説明を行った。第2の実施例では、スキャナ以外からのデータ入力もある事を想定した圧縮処理の説明を行う。本実施例では、スキャナ以外からのデータとしては、PDF画像データがエッジ情報と共に入力されてくる事を考慮する。
【0086】
PDF画像データとスキャンデータとの違いとしては、以下のような点があげられる。人工的に生成されたデータなので、ベタの部分は均一な色、均一な濃度のデータとなっており、データのバラツキが無い。エッジ情報に関しても、実際の画像のエッジ部分と一致した状態で生成される。よって、前記圧縮処理においてもスキャナデータと、PDFデータの入力の違いにより、内部の処理を切り替え、それぞれにあった処理を行わせる必要がある。
【0087】
エッジ信号補正処理に関しては、スキャンデータからのエッジ検出信号に対しては、細らせるなどの補正処理が必要となるが、PDF画像データに付随して入力されるエッジ検出信号に関しては、補正の必要は無い。また、スキャンデータに関しては、第1の実施例のような減色処理を積極的に行わなければ、補間色データが大きくなってしまうが、PDF画像の場合は、ベタの部分は均一データとなっている為、減色処理を積極的に行わなくても、補間データは少ない状態となる。そこで本実施例では、スキャナからの入力画像か否かの情報(入力データ認識信号)を元にして、スキャナからの入力画像データの場合、エッジ検出信号の補正処理を実施し、減色処理部ではより積極的な減色を実施する。
【0088】
図27に第2の実施例のブロック図を示す。図27の構成は、図25の第1の実施例における画像圧縮処理に、入力した画像データの種類を元にした処理の切り替えを加えたものである。
【0089】
入力I/F2701はスキャナもしくはPDFの画像データの入力を行なうものであり、入力したデータがスキャンデータまたはPDFデータのどちらであるかの認識を行い、入力データ認識信号を出力する。入力データ認識信号は、後段のエッジ検出部2702、圧縮処理部(1E)2703等の画像処理で使用される。
【0090】
エッジ検出部2702では、入力データ認識信号を元に、スキャンデータ入力時と、PDFデータ入力時で、処理を切り替える。スキャンデータ入力時は第1の実施例で説明したように、画像データからエッジ部分の検出処理を行い、実際の画像データより広い範囲となるエッジ検出信号の出力を行う。PDFデータ入力時は、画像データと併せて入力されてくるエッジ情報を画像データと切り分けて、エッジ検出信号として出力を行う。この場合、エッジ検出信号は実際の画像データと一致したものとなる。入力データ認識信号は、圧縮処理部(1E)2703にも入力され、エッジ検出信号補正部2704及び、減色処理部2705でも使用される。
【0091】
エッジ検出信号補正部2704では、スキャンデータ入力時は第1の実施例で説明したように、通常、実際の画像データより広い範囲となるエッジ検出信号に対して補正を行い、画像データのエッジ部分と一致させる処理を行い、エッジ検出補正信号の出力を行う。PDFデータ入力時は、エッジ検出信号は実際の画像データと一致しているため補正の必要はなく、入力データのままエッジ検出補正信号の出力を行う。減色処理部2705では、スキャンデータに使用する閾値と、PDFデータに使用する閾値の2種類の閾値を用意し、入力データ認識信号によって切り替える。
【0092】
以下に具体例をあげる。なお、図17に示す2x2の画像データに対して、図18のようなエッジ検出信号が入力された場合の、第1の実施例で挙げた具体例の数値、属性情報をそのまま流用する。
【0093】
また、色を同一色としてまとめる閾値として、以下のような設定を行なうものとする。
入力データが、スキャンデータの場合(上述の閾値と同じ)
(ア)同一の属性を持つ画素間の誤差値が「50」以内である場合は同一色とする
(イ)異なる属性を持つ画素間の誤差値が「25」以内である場合は同一色とする
入力データが、PDFデータの場合
(ウ)同一の属性を持つ画素間の誤差値が「25」以内である場合は同一色とする
(エ)異なる属性を持つ画素間の誤差値が「20」以内である場合は同一色とする
【0094】
入力データがスキャンデータの場合は上述の結果と同じである。PDFデータの場合は次のようになる。1色にまとめる場合、上述の閾値を用いると、「1」〜「4」の全ての画素に関して、色をまとめる事は出来ないと判断される。2色にまとめる場合、「1」、「2」に関するR、G、Bそれぞれの平均値との誤差値、「3」、「4」に関するR、G、Bそれぞれの平均値との誤差値とも、閾値を越える事となる為、同一色にはならないと判断される。3色にまとめる場合、「1」、「2」に関するR、G、Bそれぞれの平均値との誤差値、「3」、「4」に関するR、G、Bそれぞれの平均値との誤差値とも、閾値を越える事となる為、同一色にはならないと判断される。よって、入力データがPDFデータ入力の場合、減色処理において減色されることは無く、入力された4色のデータのまま出力される。
【0095】
以上のように、第2の実施例では、入力された画像データが、スキャンデータかPDFデータの認識をおこない、処理の切り替えを行うこととする。減色処理を行わなくても補間色データのデータ量が比較的小さいPDFデータに関しては、減色処理をしにくい閾値の設定を行ない、より入力画像データに忠実な出力を行う。また、スキャンデータに関しては、データのバラツキによる補間データの増大を抑えるため、積極的に減色を行うような閾値の設定を行なう。また、エッジ検出信号に関しては、補正の必要の有無を認識し、切り替える事により、エッジ情報を元にした減色処理を正確に行う。
【0096】
<第3の実施例>
第1の実施例では、第1の圧縮処理時に減色処理を行う事により補間色データのデータ量を削減し、第2の圧縮処理で可逆圧縮を選択しやすくする方法を説明した。第2の実施例では、スキャナ以外からのデータとして、PDF画像データがエッジ情報と共に入力される事を考慮し、前段の圧縮処理において、スキャナデータとPDFデータの違いにより内部の処理を切り替え、それぞれに合った処理を行う方法を説明した。本実施例では、スキャナからの入力画像か否かの情報(スキャン情報)を元にして、後段の圧縮処理を切り替える事により、良好な画像出力を行なうような処理を行なう。
【0097】
図28に第3の実施例のブロック図を示す。図28の構成は、図27の第2の実施例における画像圧縮処理に、入力した画像データの種類を元にした処理の切り替えを加えたものである。
【0098】
入力I/F2701はスキャナもしくはPDFの画像データの入力を行なうものであり、入力したデータがスキャンデータまたはPDFのどちらであるかの認識を行い、入力データ認識信号を出力する。入力データ認識信号は、後段のエッジ検出部2702、圧縮処理部(1E)2703等の画像処理で使用されると共に、圧縮処理部(2B)2801内の比較部(B)2802にも入力される。
【0099】
エッジ検出部2702、圧縮処理部(1E)2703は、スキャナからの入力画像か否かの情報(入力データ認識信号)を元にして、スキャナからの入力画像データの場合、エッジ検出信号の補正処理を実施し、減色処理部ではより減色を行うような処理をさせる。処理内容の詳細に関しては、第2の実施例によって説明を行っているので、ここでは省く。
【0100】
圧縮処理部(2B)2801内の比較部(B)2802では、入力データ認識信号を元に、入力されたデータが、スキャンデータかPDFデータかによって、内部の処理の切り替えを行う事とする。以下に、その詳細の説明を行う。
【0101】
圧縮処理部(2B)2801内には、非可逆圧縮部1008と可逆圧縮部1009の2種類の圧縮処理が用意されている。圧縮処理部(1E)2703からの補間色データのデータ量が大きい場合には、データ量を小さくする為に非可逆圧縮部1008によって非可逆圧縮処理を行う。また、圧縮処理部(1E)2703からの補間色データのデータ量が小さい場合には、良好な画像出力を保つ為に可逆圧縮部1009によって可逆圧縮処理を行う。
【0102】
圧縮処理部(1E)2703からの補間色データは、比較部(B)2802にも入力され、データ量をカウントし、予め設定されている閾値との比較を行う事によって、圧縮処理部(2B)2801で行う圧縮処理の選択信号を生成する。圧縮処理部(2B)2801では、圧縮処理部(1A)1002からの各データの入力を行い、比較部(B)2802からの選択信号を元に、非可逆圧縮部1008と可逆圧縮部1009のどちらかにデータを出力する。
【0103】
圧縮処理部(1E)2703からの補間色データの量が大きく、比較部(B)2802からの選択信号が非可逆圧縮処理を選択した場合、圧縮方式選択部1006から出力されるパターンデータ、第1色データ、補間色データを伸張処理部1007で伸張する。こうして元画像データとしてから、非可逆圧縮部1008によって、JPEG圧縮処理等の高圧縮率の非可逆圧縮処理を行う。補間色データの量が小さく、比較部(B)2802からの選択信号が可逆圧縮処理の選択を行った場合、圧縮方式選択部1006から出力されるパターンデータ、第1色データ、補間色データのそれぞれに、可逆圧縮部1009で可逆圧縮を行う。
【0104】
出力データ選択部1010は、比較部(B)2802からの選択信号を元に、非可逆圧縮部1008もしくは可逆圧縮部1009からの圧縮データの選択を行い、出力I/F1003を介して出力を行なう。
【0105】
本実施例では、比較部(B)2802に入力データ認識信号を入力する事により、入力されたデータがスキャンデータかPDFデータかによって、内部の処理の切り替えを行う。また、本実施例では、スキャンデータ入力用の閾値と、PDFデータ入力用の閾値の2種類の閾値を予め設定しておき、入力データ認識信号を元に両閾値を使い分ける。具体的には、スキャンデータ入力用の閾値を、PDFデータ入力用の閾値より大きな値として設定しておき、スキャン用のデータが入力されてきた時には、可逆圧縮での圧縮処理がより多く行われるように切り替える。これにより、スキャンデータ入力時の非可逆圧縮による文字部分等の画像劣化を防ぐことが可能となる。
【0106】
以上のように、第3の実施例では、スキャナからの入力画像か否かの情報(スキャン情報)を元にして、後段の圧縮処理を切り替える事により、良好な画像出力を行なうように処理する事が可能となる。
【0107】
<その他の実施例>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0108】
1004 圧縮処理部(第2の圧縮処理手段)
1901 エッジ検出部(エッジ検出手段)
2501 圧縮処理部(第1の圧縮処理手段)
2502 エッジ検出信号補正部(エッジ検出信号補正手段)
【技術分野】
【0001】
本発明は、入力した画像データを所定のブロック単位で圧縮する画像データ圧縮を行い、その後更に可逆圧縮もしくは非可逆圧縮のどちらかで圧縮を行う画像装置において、文字等のエッジ部分の画像劣化を防ぎ、良好な画像出力を行う方法に関する。
【背景技術】
【0002】
従来から、特許文献1にあるように、入力された画像データに対して、エッジの検出を行い、背景部分などの諧調画像部分とは異なる処理を行わせることにより、文字部分、諧調画像部分のそれぞれに、良好な画像出力を行わせる技術が知られている。 また、画像データの圧縮技術として、JPEG圧縮処理のように、非可逆圧縮処理及び、画像データをmxnの複数画素毎のデータの配置パターンを表すコードデータと、前記複数画素を構成する値(カラーデータ)で構成する可逆圧縮処理等が知られている。
【0003】
非可逆圧縮処理に関しては、画像劣化は発生するが、圧縮率を高くする事により、圧縮後のデータ量を小さくすることが可能となる。また、可逆圧縮処理に関しては、非可逆圧縮処理ほどの圧縮率は望めず、圧縮後のデータ量はそれほど小さくはならないが、元画像と全く同じ画像が復元できるという特徴がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−93880
【発明の概要】
【発明が解決しようとする課題】
【0005】
画像データをmxnの複数画素毎のデータの配置パターンを表すコードデータと、前記複数画素を構成する値(カラーデータ)で構成する可逆圧縮処理(第1の圧縮処理)を行った後、プリント出力を行わず、ハードディスク等にデータの格納を行うことがある。前記第1の圧縮処理を行ったデータに対して、更にデータ量を少なくする為に、第2の圧縮処理を行う。第2の圧縮処理を行う場合、カラーデータのデータ量をカウントし、データ量が大きい場合、非可逆圧縮処理を、データ量が少ない場合には、可逆圧縮処理を行わせる事により、データ量と画質の両立を行なわせる。前記第2の圧縮処理を行う時、文字や細線等の画像に対して、JPEG等の非可逆画像圧縮処理を行った場合、文字や細線のエッジ部分において、ブロックノイズが発生し、画像劣化を引き起こす。また、スキャナによって入力された画像データは、元原稿では、均一色、均一濃度のベタ画像部分でも、光量ムラや、CCDの特性のバラツキ等で、均一の画像データとはならない。その為、スキャン画像データを前記第1の圧縮処理によって圧縮した場合、カラーデータのデータ量は多くなる。その結果、スキャナによって入力された画像データは、第2の圧縮処理に置いて、非可逆圧縮処理が実施される事となり、文字や細線のエッジ部分において、画像劣化の目立つ画像が出力されてしまう。
【課題を解決するための手段】
【0006】
上述の課題を解決するため、本発明は、第1の圧縮処理手段で圧縮処理を行った後、第2の圧縮処理手段で更に圧縮処理を行う画像処理装置であって、第1の圧縮処理手段は、入力された画像データで使用されている色数を少なくする減色処理を行うことによりデータ量を少なくした後に、圧縮データを生成し、第2の圧縮処理手段は、1の圧縮処理手段により生成された圧縮データのデータ量を予め設定してある閾値と比較し、閾値を越えている場合は圧縮データに対して非可逆圧縮処理を行ない、閾値を越えていない場合は圧縮データに対して可逆圧縮処理を行ない、さらに、入力された画像データから文字や線のエッジ部分を検出してエッジ検出信号を出力するエッジ検出手段を有し、第1の圧縮処理手段は減色処理を行う際に、エッジ検出手段により出力されたエッジ検出信号に基づいて、画像データの属性の同じ画素間は属性の異なる画素間より減色処理をしやすくするよう制御することを特徴とする画像処理装置を提供する。
【発明の効果】
【0007】
スキャナ画像入力データの文字部分の処理に関して、可逆符号化手段による良好な画像として出力する事により、スキャン文字領域の画質を改善できる。
【図面の簡単な説明】
【0008】
【図1】MFPシステムの概要を示す図である。
【図2】コントローラの概要を示す図である。
【図3】画像をブロック分割した際にそのブロックのパターンを列挙する図である。
【図4】ブロックのパターンとその識別子を列挙する図である。
【図5】画像圧縮のフローを示す図である。
【図6】ブロックのパターンをフラグへ変換している様子を示す図である。
【図7】圧縮処理に対する入力と出力の関係を示す図である。
【図8】圧縮データのメモリ空間上でのレイアウトを示す図である。
【図9】第1の実施例の圧縮処理部(A)のブロック図である。
【図10】第1の実施例の圧縮処理全体の構成を示すブロック図である。
【図11】第1の実施例の圧縮処理部(B)のブロック図である。
【図12】第1の実施例の減色処理のフローを表す図である。
【図13】第1の実施例の具定例における画像データを示す図である。
【図14】第1の実施例の減色処理を含めた圧縮処理全体の構成を示すブロック図である。
【図15】第1の実施例の圧縮処理部(C)のブロック図である。
【図16】第1の実施例の画像とエッジ検出信号のパターンを表す図である。
【図17】第1の実施例の具定例における画像データを示す図である。
【図18】第1の実施例の具定例におけるエッジ検出信号を示す図である。
【図19】第1の実施例のエッジ情報を使用した減色処理を含めた圧縮処理全体の構成を示すブロック図である。
【図20】第1の実施例でのエッジ検出部でのスムージングフィルタの例を示す図である。
【図21】第1の実施例でのエッジ検出部でのエッジ強調用フィルタの例を示す図である。
【図22】第1の実施例での画像データとエッジ検出信号の違いを示す図である。
【図23】第1の実施例の圧縮処理部(D)のブロック図である。
【図24】第1の実施例のエッジ信号補正処理の内容を示す図である。
【図25】第1の実施例のエッジ信号補正処理を含めた圧縮処理全体の構成を示すブロック図である。
【図26】第1の実施例の圧縮処理のフローを示す図である。
【図27】第2の実施例の圧縮処理全体の構成を示すブロック図である。
【図28】第3の実施例の圧縮処理全体の構成を示すブロック図である。
【発明を実施するための形態】
【0009】
以下、本発明を実施するための圧縮処理及び、伸張処理の最良の形態について図面を用
いて説明する。
【0010】
<第1の実施例>
図1に、本発明の実施の形態のスキャン、プリント、コピーを行うデジタル複合機システム(以降「MFP」と称する)の全体構成図を示す。
【0011】
コントローラ101は画像入力デバイスであるスキャナ102や画像出力デバイスであるプリンタ103と接続し、またLANや公衆回線(WAN)等ネットワーク104と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行う。CPU105はシステム全体を制御するプロセッサである。メモリ106はCPU105が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。HDD記憶部107はハードディスクドライブで、システムソフトウェア、画像データを格納する。ユーザーインターフェイス108は、MFPの状態や、画像データの表示を行うディスプレイ、ユーザーがMFPを使用するにあたって、各種設定を行うボタンやスイッチ、テンキー、またディスプレイやボタン等を兼ねたタッチパネルなどを備える。
【0012】
図2を用いて、図1のコントローラ部の動作に関して詳細に説明する。まず、スキャンデータを読み込む場合を説明する。
【0013】
スキャナ102からRGB(RED、GREEN、BLUE)3色の読み取り画像データを受け取ったコントローラ部では、まずスキャナ用画像処理部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へ出力する。
【0014】
スキャンデータを保存する場合には、メモリ106に格納されている圧縮データをDMAC241を介してディスクスプール高圧縮/展開部242へ入力する。ディスクスプール高圧縮/展開部では、HDDの書き込みスピードがメモリに対して遅いため、さらに高圧縮のJPEG圧縮を施す。その後ディスクアクセスコントローラ243を介してHDD記憶部107へ圧縮データを保存する。保存されているデータを再度メモリへ展開する場合はその逆処理を行う。
【0015】
PDLのデータをメモリへ書き込む場合を説明する。図2では図示していないが、図1にてネットワークから送られてきたPDLデータをCPU105にてインタープリットしメモリ106へディスプレイリストを出力する。その後メモリ106に格納されているディスプレイリストをレンダリング部251でラスタのRGB画像データへレンダリングを行い、圧縮部252にて画像圧縮処理を行う。その圧縮データをDMAC253を介してメモリ106へ格納する。PDL画像データをプリント、ネットワークへ送信、保存する場合はスキャンデータのそれと同様の処理を行うことで実現する事が可能になる。
【0016】
以降ではラスタ画像データの圧縮部の詳細に関して説明を行う。まずページ単位のラスタ画像データから2x2画素のブロックを抽出し、そのブロック単位でデータの圧縮を行う。
処理の説明の前に、2x2の4画素データ中に占める色数に応じてその組み合わせの場合の数を考える。画素数が4画素なので、そこに占める色数は最大4色になり、ブロック内でたかだか1〜4色の組み合わせしか存在しない。それら4色のパターンのとりうる組み合わせの場合の数を図3を使って説明する。
【0017】
まずブロック内が1色の場合、4画素が同色で構成されている事になるので、その組み合わせは1通りである。次にブロック内が2色の場合を考える。2色が4画素内へレイアウトされる場合の数は、左上の画素を第1色、他方を第2色として考えると、左上以外残りの3画素へ第1色もしくは第2色が入るので、4画素同色の場合を除くと、全部で7通りの組み合わせが考えられる。
【0018】
次にブロック内が3色の場合を考える。3色が4画素内へレイアウトされる場合の数は、3色のうち1色だけ2度使われる場合の数と言い換える事が可能で、4画素の座標のうち、2画素が同じ色になる場合の数を求めればよい。つまり3色の場合の数は、4つの座標から2つの座標を取る組み合わせとなり、全部で6通りとなる。
【0019】
最後にブロック内が4色の場合は1色の場合と同様1パターンしか存在しない。これら1〜4色すべての場合の数を合計すると全部で15通りのパターンが考えられる。これらすべてのパターンを識別するためにフラグを付与する事を考えると、データ量としては4bit必要となる。図示すると図4のようになり、以降このフラグをパターンフラグと呼ぶ。
【0020】
上記のように2x2画素の取りうる組み合わせを踏まえて、圧縮部202、252にて行われる処理フローを図5を用いて説明する。入力としては、例えばRGBそれぞれ8bitの256階調を持っており、またデータとしては8bitデータの点順次で1画素あたり24bit画像として説明を行う。
【0021】
まず2x2画素のブロックを入力し(S501)、そのブロック内全ての2画素の組み合わせに対して24bitのコンペアを取る(S502)。このコンペアを取った結果、全ビット一致していた場合1を、不一致の場合0を出力する。
【0022】
図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色以降がどの位置にあるか求める事が出来る。
【0023】
図7を参照しながら説明を行う。例えば4画素内が1色で構成されていることが確定した場合(S505)には、2色目以降は存在しないので、パターンフラグ4bitと1色目の24bitを出力する(S506)。また4画素内が2色で構成されていることが確定した場合(S507)には、その2色目の座標をパターンフラグより算出し、パターンフラグ4bitと2色分の画素値48bitを出力する(S508)。3色、4色の場合も同様である(S509、S510、S511)。この時ブロック内の座標(左上から右上、左下、右下の順に1、2、3、4)順にこれまで出現していなかった色データを記憶する。
【0024】
このように、2x2画素のブロック内の4色96bitの入力データを4bitのパターンフラグとそこに存在する色数だけ画素値を出力することで、比較的簡単な処理で出力データ量を削減することが可能になる。またパターンフラグを参照することで、そのブロック内の色数を特定することが可能になる。
【0025】
この処理を画像ブロック全てに対して行うことで、画像全面のデータ圧縮が可能になる。このようにして求めたパターンフラグと、色データをDMACを通じてメモリに書き込むが、その時DMACではパターンフラグと第1色のデータと、第2、3、4色の書き込み位置を変える。DMACにはパターンフラグ書き込みのためのメモリ先頭アドレスと、第1色データの書き込みのためのメモリ先頭アドレスと、第2、3、4色データの書き込みのためのメモリ先頭アドレスの3つのアドレスを指定する。
【0026】
図8にその例を図示する。例えばMxN画素のRGB各色8ビット画像を圧縮部へ入力する場合、パターンフラグのデータサイズはMxN/8バイト、第1色のデータサイズはMxNx3/4バイト、第2〜4色のデータサイズは画像によって不定(画像によって異なる)の出力となる。ここで第1色書き込み位置以降のメモリ領域に関しては、画素データがピクセル単位で量子化や符号化されることなく格納されている。つまり、1画素入力、1画素出力で完結する色処理、例えばLUTを用いた色変換や、ガンマ補正処理、行列演算を用いた色空間変換処理等は特にパターンフラグを参照する必要はなく、直接処理を行うことが可能になる。図2に示す色処理部ではメモリ上の第1色書き込み先頭アドレス以降の画素データをDMAC経由で読み込み、画素単位での処理を済ませた後にメモリ上へ書き戻す。この時なんらかの画素単位処理によって画素のビット数が変わらない場合には、メモリ上同じ場所へ上書きすることでメモリの節約も可能である。
【0027】
このように圧縮データを直接用いることで、メモリバス上の転送効率が向上し、かつオリジナルの画像に対して少ない画素数のデータに対して処理することになるので、高速処理が可能になる。また前述のように(図8のように)画像データを離散的にメモリ上へ格納することで、第1色部に限ってみると、画像を2x2単位に左上の座標の画素をサンプリングした画像結果がメモリ上連続して存在することになる。本実施例で説明しているMFPにおいては、蓄積したPDL画像データやスキャンの画像データのプレビュー表示や、前述したネットワーク送信などの機能も有している。例えばプリント解像度が600dpiであったとしてもプレビューや送信時にそこまでの解像度は通常必要とされず、300dpiやそれ以下で十分な場合が多い。こういった縮小データを得る必要がある場合は、パターンフラグや第2、3、4色を捨て、第1色の画像データのみ扱うことで、簡単に半分のサイズのラスタ画像を得る事が出来る。
【0028】
例えば前述の例で600dpiで蓄積されていた場合の縮小送信時を説明する。解像度として400dpiなどサンプリングされている300dpiより大きい解像度が指定されている場合にはパターンフラグも含めて圧縮されているデータを一度展開し公知の変倍を用いて送信する。逆に300dpiより小さい送信解像度指定がされている場合には第1色部のデータのみ用い、指定の解像度へ変倍処理を行うといったように必要な画像サイズに応じて切り替えながらデータの読み込みを行う。
【0029】
次に、圧縮部と対になる展開部222、232に関して説明する。展開部では前述したようなパターンフラグ、画素データをもとにもとのラスタ画像データへ戻す処理を行なう。
【0030】
メモリ上に図8のように配置されている圧縮データのパターンフラグ書き込み先頭アドレス、第1色書き込み先頭アドレス、および第2、3、4色書き込み先頭アドレスの3つのアドレスをDMACへ指定する。DMACはその3つのアドレスからデータを読み出し、展開部へ入力する。展開部ではまず4bitのパターンフラグを解釈し、そのブロック内の色数を算出する。第1色データに加え、色数に応じて第2、3、4色データを読み出し、パターンフラグの形状に応じて画素データを再配置する。このようにすることで2x2画素ブロックを展開、復号する。
【0031】
また、展開部で画像サイズ1/2を行う場合には、前述したように、パターンフラグと2、3、4色データを必要としないので、DMACには第1色書き込み先頭アドレスのみ指定し、メモリからは第1色データのみ読み込みを行い画像を構成する。こうすることでメモリバスの帯域を節約することが可能になる。
【0032】
以上説明してきた構成をとることで、比較的単純な圧縮方式でメモリ容量やメモリバス帯域の節約が可能になるだけでなく、画素単位での画像処理や縮小変倍の処理負荷も削減することが可能になる。
【0033】
なお本実施例では2x2のブロックを最小単位として記述していたが、これに限るものではない。また圧縮の説明の際画像データとしてRGB8bitを例として説明していたが、CMYKの色空間を取るものや、グレースケールのデータ、また8bit以外の画素値をとるものでも良い。
【0034】
前記圧縮処理を実現する為のブロック図は、図9のようになる。入力I/F901を介して入力された画像データは、2x2画素切り出し部902によって、2x2画素単位でデータが抽出される。2x2で切り出されたデータは、パターン認識部903によって、先に説明を行った15パターンのどのパターンにあたるかの認識が行われる。また同時に、2x2で切り出されたデータは、色判定部904に入力され、第1色データ及び、第2から第4の色データ(補間色データ)の認識が行われる。前記、パターン認識部903及び色判定部904の処理結果を元に、圧縮データ生成部905によって、先に説明を行ったような、パターンデータ、第1色データ、補間色データの生成を行なう。前記各データは、出力I/F906を介して出力される。
【0035】
前記圧縮処理(第1の圧縮処理)を行った後、プリント出力を行わず、ハードディスク等にデータを格納したり、他の処理モジュールに転送を行う場合、前記圧縮処理を行ったデータに対して、更にデータ量を少なくする為に、第2の圧縮処理を行う。第2の圧縮処理を行う場合、補間色データのデータ量をカウントし、補間色データ量が大きい場合、非可逆圧縮処理を、補間色データ量が少ない場合には、可逆圧縮処理を行わせる事により、データ量と画質の両立を行なわせる。
【0036】
前記2段階の圧縮処理を行う為のブロック図は、図10のようになる。先に説明を行っている部分に関しては、先の図と同じ番号をつける事により、詳細な説明は省く。
【0037】
入力I/F1001は、スキャナ等から入力される画像データの入力を行う。スキャナ用画像処理部201は、図2に関して説明したように、シェーディング処理やフィルタ処理、色補正処理等の画像処理を行う。
【0038】
圧縮処理部(1A)1002は、図9を用いて説明した処理(第1の圧縮処理)を行う部分で、2x2画素切り出し部902、パターン認識部903、色判定部904、圧縮データ生成部905からなり、パターンデータ、第1色データ、補間色データを生成する。スキャナ用画像処理部201、圧縮処理部(1A)1002で処理した画像データを、プリンタで出力したり、ネットワーク経由でコントローラから出力する場合は、圧縮処理部(1A)1002からの各出力データを出力I/F1003を介して出力する。
【0039】
スキャナ用画像処理部201、圧縮処理部(1A)1002で処理した画像データを、プリント出力等を行わず、ハードディスク等にデータの格納を行う場合、前記圧縮処理を行ったデータに対して、更にデータ量を少なくする為に、第2の圧縮処理を行う。圧縮処理部(2)1004が第2の圧縮処理を行う。
【0040】
圧縮処理部(2)1004内には、非可逆圧縮部1008と可逆圧縮部1009の2種類の圧縮処理が用意されている。圧縮処理部(1A)1002からの補間色データのデータ量が大きい場合には、データ量を小さくする為に非可逆圧縮部1008によって、非可逆圧縮処理を行う。また、圧縮処理部(1A)1002からの補間色データのデータ量が小さい場合には、良好な画像出力を保つ為に可逆圧縮部1009によって、可逆圧縮処理を行う。
【0041】
圧縮処理部(1A)1002からの補間色データは、比較部1005にも入力され、データ量をカウントし、予め設定されている閾値との比較を行う事によって、圧縮処理部(2)1004で行う圧縮処理の選択信号を生成する。圧縮方式選択部1006では、圧縮処理部(1A)1002からの各データの入力を行い、比較部1005からの選択信号を元に、非可逆圧縮部1008と可逆圧縮部1009のどちらかにデータを出力する。
【0042】
圧縮処理部(1A)1002からの補間色データのデータ量が大きく、比較部1005からの選択信号が非可逆圧縮処理の選択を行った場合は非可逆圧縮処理を行なう。即ち、圧縮方式選択部1006から出力されるパターンデータ、第1色データ、補間色データを伸張処理部1007によって伸張し、元画像データとしてから、非可逆圧縮部1008によって、JPEG圧縮処理等の高圧縮率の非可逆圧縮処理を行う。一方、補間色データのデータ量が小さく、比較部1005からの選択信号が可逆圧縮処理の選択を行った場合、圧縮方式選択部1006から出力されるパターンデータ、第1色データ、補間色データのそれぞれに対して、可逆圧縮部1009によって可逆圧縮を行う。
【0043】
出力データ選択部1010は、比較部1005からの選択信号を元に、非可逆圧縮部1008もしくは可逆圧縮部1009からの圧縮データの選択を行い、出力I/F1003を介して出力を行なう。
【0044】
前記2段階の圧縮処理を行う場合、圧縮処理部(2)1004内の非可逆圧縮部1008もしくは可逆圧縮部1009の選択を、補間色データのデータ量を元に決定する。
【0045】
スキャナによって入力された画像データは、元原稿では均一色、均一濃度のベタ画像部分でも、光量ムラや、CCDの特性のバラツキ等で、均一の画像データとはならない事が多い。その為、スキャン画像データを圧縮処理部(1A)1002によって圧縮した場合、補間色データのデータ量は多くなる。その結果、スキャナによって入力された画像データは、圧縮処理部(2)1004において、非可逆圧縮処理が実施される事となり、文字や細線のエッジ部分において、画像劣化の目立つ画像が出力されてしまう。
【0046】
スキャナによって入力された画像データ等のデータのバラツキは、元々均一色、均一濃度の部分に関しては、類似した色及び濃度で表現される。そこで、2x2に切り出した画像データに対して、類似した色及び濃度の画素に関して、複数画素のデータを、出力画像の画質の劣化が目立たない状態で、1色にまとめる処理(減色処理)を行なうことを考える。
【0047】
図11は、先に図9で説明を行った圧縮処理に、減色処理部1101を加えた形のブロック図である。2x2画素切り出し部902によって切り出された2x2画素のデータに対して、減色処理部1101によって減色処理を行なう。その後、パターン認識部903、色判定部904、圧縮データ生成部905による各種圧縮処理を行い、パターンデータ、第1色データ、補間色データの生成を行なう。
【0048】
図12は、減色処理部1101での処理内容を示すフローチャートである。まず2x2の入力に対し、4画素のデータに対して1色へ減色処理を行う(S1202)。ここでは例えば4画素の平均画素値を算出することで1色への減色を実現する。続いて減色した画素値と入力の4画素の画素値との差分を算出し(S1203)、誤差の大小を判定する(S1204)。例えば入力と減色後のRGB値の差の絶対値の和を取り、その値がある閾値以下である場合には差が小さいと判断出来る。もしここで差が小さいと判定された場合には、減色した1色の画素値を使用して2x2画素データを出力する(S1205)。
【0049】
S1204で誤差が大きいと判定された場合には、2色へ減色処理を行う(S1206)。ここでは例えば4画素のうちRGB値の差が最も大きい2画素A、Bを抽出し、残りの2画素がA、Bどちらに近いかでクラスタリングし、そのクラスタ平均値を求めることで、2色化する。続いて2色化した画素値と入力の4画素の画素値との差分を計算し(S1207)、誤差の大小を判定する(S1208)。もしここで差が小さいと判定された場合には、減色した2色の画素値を使用して2x2画素データの出力を行う(S1209)。
【0050】
S1208でも誤差が大きいと判定された場合には、3色への減色処理を行う(S1210)。ここでは例えば4画素のうち最もRGB値の差の小さい2画素を抽出し、その2画素の値を平均化し、それ以外の2画素をあわせ4画素を3色へ減色する。続いて3色化した画素値と入力の4画素の画素値との差分を計算し(S1211)、誤差の大小を判定する(S1212)。もしここで差が小さいと判定された場合には、減色した3色の画素値を使用して2x2画素データの出力を行う(S1213)。
【0051】
S1212でも誤差が大きいと判定された場合には、減色することで視覚的に問題が出るブロックということになるので、入力された4色全ての画素値を出力する(S1214)。
【0052】
上述の減色処理を行う事により、スキャナ等で入力された画像データの類似した色及び濃度で表現されていた各画素データをある程度まとめることができる。このようにして、補間色データの削減が行われる。
【0053】
また前述した誤差判定の閾値の取り方次第で圧縮率と画質の調整も可能となる。例えば許容する誤差を全くなくす(0にする)事で、画像としては全く可逆の圧縮になる。逆に許容する誤差を無限にする事で、全ブロック1色で表現されることになり解像度を半分にするのと等価となり、データ量を1/4にすることが保証出来る。
【0054】
本実施例では減色を用いた圧縮部での説明となっているが、この方法を用いた圧縮であればその展開の処理は減色を伴ったかどうかの圧縮方法を意識する必要はない。なお、ここで説明に用いた減色の処理は一例であり、他の公知の減色処理を用いて実施することも可能である。また入力画素と減色処理後の画素の差を算出する手段であるが、これも公知の色差を求める別の手段で代替することも可能である。
【0055】
前記減色処理の具体例をあげると以下のようになる。図13のような2x2の画像データが入力されたものとする。なお、色を同一色としてまとめる閾値を、誤差値が「40」以内と設定するものとする。
【0056】
「1」の画素のデータは、(R, G, B) = (200, 180, 160)
「2」の画素のデータは、(R, G, B) = (180, 160, 140)
「3」の画素のデータは、(R, G, B) = (50, 40, 30)
「4」の画素のデータは、(R, G, B) = (80, 70, 60)
【0057】
前記2x2画素のデータを1色にまとめようとした場合のR、G、Bのデータは、各画素のR、G、Bそれぞれの4画素の平均値とすると、以下のようになる。
AVE_R = (200+180+50+80) /4 = 127.5
AVE_G = (180+160+40+70) /4 = 112.5
AVE_B = (160+140+30+60) /4 = 97.5
(R, G, B) = (AVE_R, AVE_G, AVE_B) = (127.5, 112.5, 97.5)
【0058】
1色にまとめる場合の「1」〜「4」の各誤差値は、以下のように求められる。
「1」の誤差値 : |127.5-200| + |112.5-180| + |97.5-160| = 202.5
「2」の誤差値 : |127.5-180| + |112.5-160| + |97.5-140| = 142.5
「3」の誤差値 : |127.5-50| + |112.5-40| + |97.5-30| = 217.5
「4」の誤差値 : |127.5-80| + |112.5-70| + |97.5-60| = 127.5
従って、上述の閾値を用いると、「1」から「4」の全ての画素に関して、色をまとめる事は出来ないと判断される。
【0059】
次に、前記2x2画素のデータを2色にまとめる場合の計算を行う。前記2x2画素のデータを2色にまとめようとした場合のR、G、Bのデータは、「1」と「2」の画素のR、G、Bそれぞれの平均値と、「3」と「4」の画素のR、G、Bそれぞれの平均値の2色のデータとなる。前者の平均値をAVE_12_R, AVE_12_G, AVE_12_B、後者をAVE_34_R, AVE_34_G, AVE_34_Bとする。
AVE_12_R = (200+180) /2 = 190
AVE_12_G = (180+160) /2 = 170
AVE_12_B = (160+140) /2 = 150
AVE_34_R = (50+80) /2 = 65
AVE_34_G = (40+70) /2 = 55
AVE_34_B = (30+60) /2 = 45
【0060】
よって、2色にまとめる場合の、「1」〜「4」の各誤差値は、以下のように求められる。
「1」の誤差値 : |190-200| + |170-180| + |150-160| = 30
「2」の誤差値 : |190-180| + |170-160| + |150-140| = 30
「3」の誤差値 : |65-50| + |55-40| + |45-30| = 45
「4」の誤差値 : |65-80| + |55-70| + |45-60| = 45
従って、上述の閾値を用いると、「1」、「2」の画素に関してはまとめる事が可能であるが、「3」、「4」の画素色をまとめる事は出来ないと判断される。よって、前記2x2画素のデータは、2色にまとめる事は出来ないと判断される。
【0061】
次に、前記2x2画素のデータを3色にまとめる場合の計算を行う。前記2x2画素のデータを3色にまとめようとした場合のR、G、Bのデータは、「1」と「2」の画素のR、G、Bそれぞれの平均値と、「3」と「4」の画素の入力データをそのまま使用する形で、3色のデータとなる。「1」と「2」の画素のR、G、Bそれぞれの平均値(AVE_12_R, AVE_12_G, AVE_12_B)は以下のようになる。
AVE_12_R = (200+180) /2 = 190
AVE_12_G = (180+160) /2 = 170
AVE_12_B = (160+140) /2 = 150
【0062】
よって、3色にまとめる場合の、「1」、「2」の各誤差値は、以下のように求められる。
「1」の誤差値 : |190-200| + |170-180| + |150-160| = 30
「2」の誤差値 : |190-180| + |170-160| + |150-140| = 30
従って、上述の閾値を用いると、「1」、「2」の画素に関してはまとめる事が可能となる。また、「3」、「4」の画素に関しては、入力されたデータをそのまま使用するため、本例の2x2画素のデータは、3色にまとめる事が出来ると判断される。その場合の2x2画素のデータは、以下のようになる。
「1」の画素のデータ (R, G, G) = (190, 170, 150)
「2」の画素のデータ (R, G, G) = (190, 170, 150)
「3」の画素のデータ (R, G, G) = (50, 40, 30)
「4」の画素のデータ (R, G, G) = (80, 70, 60)
【0063】
図10の画像圧縮処理のブロック図に前記減色処理を含めると図14のようになる。圧縮処理部(1B)1401内に減色処理部1101を加える事により、スキャナ等で入力された画像データの類似した色及び濃度で表現されていた各画素データがまとめられ、補間色データの削減が行われる。その結果、圧縮処理部(2)1004での比較部1005によって、可逆圧縮処理が選ばれやすくなる為、圧縮処理部(2)1004での画像圧縮による劣化が抑えられる。
【0064】
しかし、前記減色処理を行うと弊害が起きることもある。スキャン画像データのベタ部分の減色を積極的に行おうとすると、同一色としてまとめる閾値が大きくなる。そうすると、文字のエッジ部分などの下地と文字の境界部分の中間色も下地部分と同一の色と判断され、文字のエッジが綺麗に表現されない事態が生じる。そのため、減色処理を行う際に、エッジ情報を使用する事が考えられる。
【0065】
図15は、図11の減色処理部1101に代えて、エッジ情報を使用した減色処理部1501を使用した圧縮処理部(C)1500のブロック図である。圧縮処理部(C)1500では、エッジ検出信号を外部から入力し、減色処理部1501内で、エッジ情報を加味した減色処理を行う。この場合、エッジ情報を元に、同一の属性の画素間に関しては同一色と判断しやすく、異なる属性の画素間に関しては同一色と判断しにくくする制御を行う。すなわち、エッジ情報を元に、同一の属性の画素間に関して、異なる属性の画素間より同一色と判断しやすくする制御を行う。それによって、下地部分どうしでは減色処理が行われるように、文字のエッジ部分と下地部分では減色処理が行われにくくなり、文字のエッジ部分の再現性をよくすることができる。
【0066】
以下に、減色処理部1501内で行われる、エッジ情報を加味した減色処理に関する詳細な説明を行う。図16に示すように、画像データのパターンデータは、先に説明を行ったように15パターンのデータである。同様にして考えると、エッジ部分か否かの判定を行ったエッジ検出信号を、画像データと対応させて2x2画素で表現すると、8つのパターンで表される。
【0067】
図17に示す2x2の画像データに対して、図18のようなエッジ検出信号が入力されたものとする。
「1」の画素のデータは、(R, G, B) = (200, 180, 160)
「2」の画素のデータは、(R, G, B) = (180, 160, 140)
「3」の画素のデータは、(R, G, B) = (50, 40, 30)
「4」の画素のデータは、(R, G, B) = (80, 70, 60)
ここで、各画素は以下の属性情報を持つものとする。
「1」の属性情報は非エッジ部分
「2」の属性情報はエッジ部分
「3」の属性情報はエッジ部分
「4」の属性情報はエッジ部分
【0068】
なお、色を同一色としてまとめる閾値として、以下のような設定を用いるものとする。
(ア)同一の属性を持つ画素間の誤差値が「50」以内である場合は同一色とする
(イ)異なる属性を持つ画素間の誤差値が「25」以内である場合は同一色とする
【0069】
前記2x2画素のデータを1色にまとめようとした場合のR、G、Bのデータは、各画素のR、G、Bそれぞれの4画素の平均値とすると、以下のようになる。
AVE_R = (200+180+50+80) /4 = 127.5
AVE_G = (180+160+40+70) /4 = 112.5
AVE_B = (160+140+30+60) /4 = 97.5
(R, G, B) = (AVE_R, AVE_G, AVE_B) = (127.5, 112.5, 97.5)
【0070】
1色にまとめる場合の、「1」〜「4」の各誤差値は、以下のように求められる。
「1」の誤差値 : |127.5-200| + |112.5-180| + |97.5-160| = 202.5
「2」の誤差値 : |127.5-180| + |112.5-160| + |97.5-140| = 142.5
「3」の誤差値 : |127.5-50| + |112.5-40| + |97.5-30| = 217.5
「4」の誤差値 : |127.5-80| + |112.5-70| + |97.5-60| = 127.5
従って、上述の閾値を用いると、「1」〜「4」の全ての画素に関して、色をまとめる事は出来ないと判断される。
【0071】
次に、前記2x2画素のデータを2色にまとめる場合の計算を行う。前記2x2画素のデータを2色にまとめようとした場合のR、G、Bのデータは、「1」と「2」の画素のR、G、Bそれぞれの平均値と、「3」と「4」の画素のR、G、Bそれぞれの平均値の2色のデータとなる。前者の平均値をAVE_12_R, AVE_12_G, AVE_12_B、後者をAVE_34_R, AVE_34_G, AVE_34_Bとする。
AVE_12_R = (200+180) /2 = 190
AVE_12_G = (180+160) /2 = 170
AVE_12_B = (160+140) /2 = 150
AVE_34_R = (50+80) /2 = 65
AVE_34_G = (40+70) /2 = 55
AVE_34_B = (30+60) /2 = 45
【0072】
よって、2色にまとめる場合の、「1」〜「4」の各誤差値は、以下のように求められる。
「1」の誤差値 : |190-200| + |170-180| + |150-160| = 30
「2」の誤差値 : |190-180| + |170-160| + |150-140| = 30
「3」の誤差値 : |65-50| + |55-40| + |45-30| = 45
「4」の誤差値 : |65-80| + |55-70| + |45-60| = 45
従って、「1」、「2」の画素に関しては、誤差値は「30」となっているが、エッジ検出信号のパターンが「1」は非エッジ部分、「2」はエッジ部分の属性を示している為、閾値(イ)により、同一色にはならないと判断される。「3」、「4」の画素に関しては、誤差値は「45」となっているが、エッジ検出信号のパターンが「3」、「4」ともエッジ部分の属性を示している為、閾値(ア)により、同一色になると判断される。よって、前記2x2画素のデータは、2色にまとめる事は出来ないと判断される。
【0073】
次に、前記2x2画素のデータを3色にまとめる場合の計算を行う。前記2x2画素のデータを3色にまとめようとした場合のR、G、Bのデータは、「3」と「4」の画素のR、G、Bそれぞれの平均値と、「1」と「2」の画素の入力データをそのまま使用する形で、3色のデータとなる。「3」と「4」の画素のR、G、Bそれぞれの平均値(AVE_34_R, AVE_34_G, AVE_34_B)は以下のようになる。
AVE_34_R = (50+80) /2 = 65
AVE_34_G = (40+70) /2 = 55
AVE_34_B = (30+60) /2 = 45
【0074】
よって、3色にまとめる場合の、3、4の各誤差値は、以下のように求められる。
「3」の誤差値 : |65-50| + |55-40| + |45-30| = 45
「4」の誤差値 : |65-80| + |55-70| + |45-60| = 45
従って、「3」、「4」の画素に関しては、誤差値は「45」となっているが、エッジ検出信号のパターンが「3」、「4」ともエッジ部分の属性を示している為、閾値(ア)により、同一色になると判断される。また、「1」、「2」の画素に関しては、入力されたデータをそのまま使用するため、本例の2x2画素のデータは、3色にまとめる事が出 「1」の画素のデータ (R, G, G) = (200, 180, 160)
「2」の画素のデータ (R, G, G) = (180, 160, 140)
「3」の画素のデータ (R, G, G) = (65, 55, 45)
「4」の画素のデータ (R, G, G) = (65, 55, 45)
【0075】
図14の画像圧縮処理のブロック図に、前記エッジ検出信号を使用した減色処理を含めると図19のようになる。エッジ検出部1901によって検出されたエッジ検出信号は、スキャナ用画像処理部等で色補正やエッジ強調等の切り替えに使用されると共に、圧縮処理部(1C)1902内の減色処理部1501に入力される。それにより、スキャナ等で入力された画像データの類似した色及び濃度で表現されていた各画素データがまとめられ、補間色データの削減が行われる際に、エッジ部分の画質の劣化を防ぐことができる。
【0076】
しかし、図19のような状態では、良好な結果が得られない事がある。エッジ検出部1901内でのエッジ検出の方法は以下のように行われる。例えば、図20に示すような、3x3のスムージングフィルターにより、中心の注目画素に対して、スムージング処理を行う。また同時に、図21に示すようなエッジ強調フィルタにより、中心の注目画に対して、エッジ強調処理を行う。前記スムージング処理結果と、エッジ協調処理結果の差の絶対値を、予め設定されている閾値と比較し、閾値よりも大きな場合はエッジ部分、小さな場合は非エッジ部分との判断を行う。通常、エッジ検出を行なう場合、設定されている閾値は、濃度の薄い文字のエッジや、下地に色がついている部分の文字のエッジ等をエッジ部分として検出を行う為、ある程度小さめの値となっている。スキャナ用画像処理部等で色補正やエッジ強調等の切り替えに使用される場合は、薄い文字や下地に色がある場合の文字等にも、エッジ部分としての処理が必要となるからである。その為、下地との濃度差が十分あるような場合(白い下地に黒い文字があるような場合)は、図22に示すように、実際の文字のエッジ部分より広い範囲で、エッジ部分の検出を行う。
【0077】
そのため本来、減色処理の制御を行いたい部分(文字のエッジ部分)と、エッジ検出信号のエッジ部分にズレがあり、間違った部分で前記エッジ信号を使用した減色処理の制御が実施されてしまう。実際の文字のエッジ部分より何画素広い範囲で、エッジ部分の検出を行うかは、前記スムージング処理結果と、エッジ協調処理結果の差の絶対値を比較する閾値の大きさによって決定する。よって、その閾値の設定値によって、下地との濃度差が十分あるような場合に、何画素分余分にエッジ判定を行っているかが明確になる。
【0078】
上述の事態に対応する為に、図15に示した圧縮処理に対して、エッジ検出信号補正部2301を付加した構成を図23に示す。図23では、エッジ検出信号補正部2301によって、入力されたエッジ検出信号を、実際の画像データのエッジ部分と一致するように補正を行った後に、減色処理部1501へ入力する。
【0079】
エッジ検出信号補正部2301では、図24に示すように、濃度の薄い文字のエッジや、下地に色がついている部分の文字のエッジ等をエッジ部分として検出を行う為、ある程度小さめの閾値によるエッジ判定信号を用いる。そして、実際の文字のエッジに一致するように、数画素(本実施例では2画素)細らせることにより、エッジ検出信号を画像データのエッジと一致させる。これにより、意図した部分でのエッジ情報を使用した減色処理が可能となる。
【0080】
図19の画像圧縮処理のブロック図に、エッジ検出信号補正部2301を含めると図25のようになる。エッジ検出部1901によって検出されたエッジ検出信号は、スキャナ用画像処理部等で使用される。エッジ検出信号はさらに、圧縮処理部(1D)2501内のエッジ検出信号補正部2301によって、補正処理が行われた後、エッジ検出補正信号として、減色処理部1501に入力される。それにより、スキャナ等で入力された画像データの類似した色及び濃度で表現されていた各画素データがまとめられ、補間色データの削減が行われる際に、エッジ部分の画質の劣化を防ぐことができる。
【0081】
図26は、図25の構成による処理フローを示すフローチャートである。入力された画像データ(S2601)は、エッジ検出部1901によってエッジ検出処理が行われ(S2603)、その結果を使用して、スキャン用画像処理部201によって、スキャン用画像処理が行われる(S2602)。スキャン用画像処理(S2602)が行われた画像データは、圧縮処理部(1D)2501に入力され、2x2画素切り出し処理(S2604)によって、2x2画素のデータに切り出される。入力された画像データがスキャン画像で、それを元にしたエッジ検出信号を使用する場合には(S2605:YES)、エッジ信号補正処理(S2606)をエッジ検出信号補正部(2502)によって実施した後に、減色処理(S2607)を実施する。PDL画像等のエッジ情報が入力され、エッジ検出信号の補正の必要がない場合には(S2605:NO)、エッジ信号補正処理(S2606)は実施せずに、減色処理(S2607)を実施する。その後、パターン認識処理(S2608)及び、色判定処理(S2609)を行った後に圧縮データ生成処理(S2610)を行い、パターンデータ、第1の色データ、補間色データの生成を行なう。
【0082】
ここで、生成した圧縮データをプリンタ等で出力を行なう場合には(S2611:YES)、出力I/F1003を介してプリント出力を行う(S2612)。プリントを行わず、ハードディスク等に格納を行う場合には(S2611:NO)、圧縮処理部(2)1004へ入力され、更なる圧縮処理が行われる。
【0083】
圧縮処理部(2)1004では、比較部1005によって、補間データ量を予め設定されている閾値と比較する(S2613)。補間データ量が閾値より大きい場合(S2614:YES)、圧縮処理部(1D)2501から圧縮処理部(2)1004に入力された、パターンデータ、第1の色データ、補間色データに伸張処理部1007によって伸張処理を行う(S2615)。こうして元画像データに戻した後、非可逆圧縮処理部1008によって、高圧縮率の非可逆圧縮を行う(S2616)。補間データ量が閾値より小さい場合(S2614:NO)、圧縮処理部(1D)2501から圧縮処理部(2)1004に入力された、パターンデータ、第1の色データ、補間色データに、可逆圧縮処理部1009によって低圧縮率の可逆圧縮を行う(S2617)。圧縮処理部(2)1004によって、非可逆圧縮もしくは可逆圧縮が行われた圧縮データは、出力I/F1003を介して出力される(S2618)。
【0084】
以上のように、画像データをmxnの複数画素毎のデータの配置パターンを表すコードデータと、前記複数画素を構成する値(カラーデータ)で構成する可逆圧縮処理(第1の圧縮処理)を行った後、更にデータ量を少なくする為に、第2の圧縮処理を行う。この場合、エッジ検出信号を実際の画像データに合わせた上で減色処理に使用する事により、文字の再現性の品質を保った上で、圧縮データを生成することができる。
【0085】
<第2の実施例>
第1の実施例では、第1の圧縮処理時に減色処理を行う事により補間色データのデータ量を削減し、第2の圧縮処理時に可逆圧縮を選択しやすくする方法について説明を行った。第2の実施例では、スキャナ以外からのデータ入力もある事を想定した圧縮処理の説明を行う。本実施例では、スキャナ以外からのデータとしては、PDF画像データがエッジ情報と共に入力されてくる事を考慮する。
【0086】
PDF画像データとスキャンデータとの違いとしては、以下のような点があげられる。人工的に生成されたデータなので、ベタの部分は均一な色、均一な濃度のデータとなっており、データのバラツキが無い。エッジ情報に関しても、実際の画像のエッジ部分と一致した状態で生成される。よって、前記圧縮処理においてもスキャナデータと、PDFデータの入力の違いにより、内部の処理を切り替え、それぞれにあった処理を行わせる必要がある。
【0087】
エッジ信号補正処理に関しては、スキャンデータからのエッジ検出信号に対しては、細らせるなどの補正処理が必要となるが、PDF画像データに付随して入力されるエッジ検出信号に関しては、補正の必要は無い。また、スキャンデータに関しては、第1の実施例のような減色処理を積極的に行わなければ、補間色データが大きくなってしまうが、PDF画像の場合は、ベタの部分は均一データとなっている為、減色処理を積極的に行わなくても、補間データは少ない状態となる。そこで本実施例では、スキャナからの入力画像か否かの情報(入力データ認識信号)を元にして、スキャナからの入力画像データの場合、エッジ検出信号の補正処理を実施し、減色処理部ではより積極的な減色を実施する。
【0088】
図27に第2の実施例のブロック図を示す。図27の構成は、図25の第1の実施例における画像圧縮処理に、入力した画像データの種類を元にした処理の切り替えを加えたものである。
【0089】
入力I/F2701はスキャナもしくはPDFの画像データの入力を行なうものであり、入力したデータがスキャンデータまたはPDFデータのどちらであるかの認識を行い、入力データ認識信号を出力する。入力データ認識信号は、後段のエッジ検出部2702、圧縮処理部(1E)2703等の画像処理で使用される。
【0090】
エッジ検出部2702では、入力データ認識信号を元に、スキャンデータ入力時と、PDFデータ入力時で、処理を切り替える。スキャンデータ入力時は第1の実施例で説明したように、画像データからエッジ部分の検出処理を行い、実際の画像データより広い範囲となるエッジ検出信号の出力を行う。PDFデータ入力時は、画像データと併せて入力されてくるエッジ情報を画像データと切り分けて、エッジ検出信号として出力を行う。この場合、エッジ検出信号は実際の画像データと一致したものとなる。入力データ認識信号は、圧縮処理部(1E)2703にも入力され、エッジ検出信号補正部2704及び、減色処理部2705でも使用される。
【0091】
エッジ検出信号補正部2704では、スキャンデータ入力時は第1の実施例で説明したように、通常、実際の画像データより広い範囲となるエッジ検出信号に対して補正を行い、画像データのエッジ部分と一致させる処理を行い、エッジ検出補正信号の出力を行う。PDFデータ入力時は、エッジ検出信号は実際の画像データと一致しているため補正の必要はなく、入力データのままエッジ検出補正信号の出力を行う。減色処理部2705では、スキャンデータに使用する閾値と、PDFデータに使用する閾値の2種類の閾値を用意し、入力データ認識信号によって切り替える。
【0092】
以下に具体例をあげる。なお、図17に示す2x2の画像データに対して、図18のようなエッジ検出信号が入力された場合の、第1の実施例で挙げた具体例の数値、属性情報をそのまま流用する。
【0093】
また、色を同一色としてまとめる閾値として、以下のような設定を行なうものとする。
入力データが、スキャンデータの場合(上述の閾値と同じ)
(ア)同一の属性を持つ画素間の誤差値が「50」以内である場合は同一色とする
(イ)異なる属性を持つ画素間の誤差値が「25」以内である場合は同一色とする
入力データが、PDFデータの場合
(ウ)同一の属性を持つ画素間の誤差値が「25」以内である場合は同一色とする
(エ)異なる属性を持つ画素間の誤差値が「20」以内である場合は同一色とする
【0094】
入力データがスキャンデータの場合は上述の結果と同じである。PDFデータの場合は次のようになる。1色にまとめる場合、上述の閾値を用いると、「1」〜「4」の全ての画素に関して、色をまとめる事は出来ないと判断される。2色にまとめる場合、「1」、「2」に関するR、G、Bそれぞれの平均値との誤差値、「3」、「4」に関するR、G、Bそれぞれの平均値との誤差値とも、閾値を越える事となる為、同一色にはならないと判断される。3色にまとめる場合、「1」、「2」に関するR、G、Bそれぞれの平均値との誤差値、「3」、「4」に関するR、G、Bそれぞれの平均値との誤差値とも、閾値を越える事となる為、同一色にはならないと判断される。よって、入力データがPDFデータ入力の場合、減色処理において減色されることは無く、入力された4色のデータのまま出力される。
【0095】
以上のように、第2の実施例では、入力された画像データが、スキャンデータかPDFデータの認識をおこない、処理の切り替えを行うこととする。減色処理を行わなくても補間色データのデータ量が比較的小さいPDFデータに関しては、減色処理をしにくい閾値の設定を行ない、より入力画像データに忠実な出力を行う。また、スキャンデータに関しては、データのバラツキによる補間データの増大を抑えるため、積極的に減色を行うような閾値の設定を行なう。また、エッジ検出信号に関しては、補正の必要の有無を認識し、切り替える事により、エッジ情報を元にした減色処理を正確に行う。
【0096】
<第3の実施例>
第1の実施例では、第1の圧縮処理時に減色処理を行う事により補間色データのデータ量を削減し、第2の圧縮処理で可逆圧縮を選択しやすくする方法を説明した。第2の実施例では、スキャナ以外からのデータとして、PDF画像データがエッジ情報と共に入力される事を考慮し、前段の圧縮処理において、スキャナデータとPDFデータの違いにより内部の処理を切り替え、それぞれに合った処理を行う方法を説明した。本実施例では、スキャナからの入力画像か否かの情報(スキャン情報)を元にして、後段の圧縮処理を切り替える事により、良好な画像出力を行なうような処理を行なう。
【0097】
図28に第3の実施例のブロック図を示す。図28の構成は、図27の第2の実施例における画像圧縮処理に、入力した画像データの種類を元にした処理の切り替えを加えたものである。
【0098】
入力I/F2701はスキャナもしくはPDFの画像データの入力を行なうものであり、入力したデータがスキャンデータまたはPDFのどちらであるかの認識を行い、入力データ認識信号を出力する。入力データ認識信号は、後段のエッジ検出部2702、圧縮処理部(1E)2703等の画像処理で使用されると共に、圧縮処理部(2B)2801内の比較部(B)2802にも入力される。
【0099】
エッジ検出部2702、圧縮処理部(1E)2703は、スキャナからの入力画像か否かの情報(入力データ認識信号)を元にして、スキャナからの入力画像データの場合、エッジ検出信号の補正処理を実施し、減色処理部ではより減色を行うような処理をさせる。処理内容の詳細に関しては、第2の実施例によって説明を行っているので、ここでは省く。
【0100】
圧縮処理部(2B)2801内の比較部(B)2802では、入力データ認識信号を元に、入力されたデータが、スキャンデータかPDFデータかによって、内部の処理の切り替えを行う事とする。以下に、その詳細の説明を行う。
【0101】
圧縮処理部(2B)2801内には、非可逆圧縮部1008と可逆圧縮部1009の2種類の圧縮処理が用意されている。圧縮処理部(1E)2703からの補間色データのデータ量が大きい場合には、データ量を小さくする為に非可逆圧縮部1008によって非可逆圧縮処理を行う。また、圧縮処理部(1E)2703からの補間色データのデータ量が小さい場合には、良好な画像出力を保つ為に可逆圧縮部1009によって可逆圧縮処理を行う。
【0102】
圧縮処理部(1E)2703からの補間色データは、比較部(B)2802にも入力され、データ量をカウントし、予め設定されている閾値との比較を行う事によって、圧縮処理部(2B)2801で行う圧縮処理の選択信号を生成する。圧縮処理部(2B)2801では、圧縮処理部(1A)1002からの各データの入力を行い、比較部(B)2802からの選択信号を元に、非可逆圧縮部1008と可逆圧縮部1009のどちらかにデータを出力する。
【0103】
圧縮処理部(1E)2703からの補間色データの量が大きく、比較部(B)2802からの選択信号が非可逆圧縮処理を選択した場合、圧縮方式選択部1006から出力されるパターンデータ、第1色データ、補間色データを伸張処理部1007で伸張する。こうして元画像データとしてから、非可逆圧縮部1008によって、JPEG圧縮処理等の高圧縮率の非可逆圧縮処理を行う。補間色データの量が小さく、比較部(B)2802からの選択信号が可逆圧縮処理の選択を行った場合、圧縮方式選択部1006から出力されるパターンデータ、第1色データ、補間色データのそれぞれに、可逆圧縮部1009で可逆圧縮を行う。
【0104】
出力データ選択部1010は、比較部(B)2802からの選択信号を元に、非可逆圧縮部1008もしくは可逆圧縮部1009からの圧縮データの選択を行い、出力I/F1003を介して出力を行なう。
【0105】
本実施例では、比較部(B)2802に入力データ認識信号を入力する事により、入力されたデータがスキャンデータかPDFデータかによって、内部の処理の切り替えを行う。また、本実施例では、スキャンデータ入力用の閾値と、PDFデータ入力用の閾値の2種類の閾値を予め設定しておき、入力データ認識信号を元に両閾値を使い分ける。具体的には、スキャンデータ入力用の閾値を、PDFデータ入力用の閾値より大きな値として設定しておき、スキャン用のデータが入力されてきた時には、可逆圧縮での圧縮処理がより多く行われるように切り替える。これにより、スキャンデータ入力時の非可逆圧縮による文字部分等の画像劣化を防ぐことが可能となる。
【0106】
以上のように、第3の実施例では、スキャナからの入力画像か否かの情報(スキャン情報)を元にして、後段の圧縮処理を切り替える事により、良好な画像出力を行なうように処理する事が可能となる。
【0107】
<その他の実施例>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0108】
1004 圧縮処理部(第2の圧縮処理手段)
1901 エッジ検出部(エッジ検出手段)
2501 圧縮処理部(第1の圧縮処理手段)
2502 エッジ検出信号補正部(エッジ検出信号補正手段)
【特許請求の範囲】
【請求項1】
第1の圧縮処理手段で圧縮処理を行った後、第2の圧縮処理手段で更に圧縮処理を行う画像処理装置であって、
前記第1の圧縮処理手段は、入力された画像データで使用されている色数を少なくする減色処理を行うことによりデータ量を少なくした後に、圧縮データを生成し、
前記第2の圧縮処理手段は、前記第1の圧縮処理手段により生成された圧縮データのデータ量を予め設定してある閾値と比較し、閾値を越えている場合は圧縮データに対して非可逆圧縮処理を行ない、閾値を越えていない場合は圧縮データに対して可逆圧縮処理を行ない、
前記画像処理装置は、さらに、入力された画像データから文字や線のエッジ部分を検出してエッジ検出信号を出力するエッジ検出手段を有し、
前記第1の圧縮処理手段は減色処理を行う際に、前記エッジ検出手段により出力されたエッジ検出信号に基づいて、画像データの属性の同じ画素間は属性の異なる画素間より減色処理をしやすくするよう制御することを特徴とする画像処理装置。
【請求項2】
前記第1の圧縮処理手段は、入力された画像データがスキャン画像か否かを示す認識信号に基づき、スキャン画像データが入力されたと認識される場合、減色処理に用いる閾値を調整し、属性の同じ画素間は減色処理をよりしやすくするよう制御することを特徴とする、請求項1記載の画像処理装置。
【請求項3】
前記第2の圧縮処理手段は、入力された画像データがスキャン画像か否かを示す認識信号に基づき、スキャン画像データが入力されたと認識される場合、前記予め設定してある閾値を調整し、可逆圧縮処理を実施しやすくするよう制御することを特徴とする、請求項1記載の画像処理装置。
【請求項4】
前記エッジ検出手段により出力されたエッジ検出信号を補正するエッジ検出信号補正手段をさらに有し、エッジ検出信号補正手段はエッジ検出信号の領域を調整する事により、実際の画像データのエッジと領域を合わせることを特徴とする、請求項1記載の画像処理装置。
【請求項5】
(請求項1と同様に補正ください。)
第1の圧縮処理手段で圧縮処理を行った後、第2の圧縮処理手段で更に圧縮処理を行う画像処理装置における画像処理方法であって、
エッジ検出手段により、入力された画像データから文字や線のエッジ部分を検出してエッジ検出信号を出力する工程と、
第1の圧縮処理手段により、入力された画像データで使用されている色数を少なくする減色処理を行うことによりデータ量を少なくした後に、圧縮データを生成する工程と、
第2の圧縮処理手段により、前記生成された圧縮データのデータ量を予め設定してある閾値と比較し、閾値を越えている場合は圧縮データに対して非可逆圧縮処理を行ない、閾値を越えていない場合は圧縮データに対して可逆圧縮処理を行なう工程とを有し、
第1の圧縮処理手段より減色処理を行う際に、前記出力されたエッジ検出信号に基づいて、画像データの属性の同じ画素間は属性の異なる画素間より減色処理をしやすくするよう制御することを特徴とする画像処理方法。
【請求項6】
請求項5記載の画像処理方法をコンピュータに実行させるプログラムを記憶する記憶媒体。
【請求項1】
第1の圧縮処理手段で圧縮処理を行った後、第2の圧縮処理手段で更に圧縮処理を行う画像処理装置であって、
前記第1の圧縮処理手段は、入力された画像データで使用されている色数を少なくする減色処理を行うことによりデータ量を少なくした後に、圧縮データを生成し、
前記第2の圧縮処理手段は、前記第1の圧縮処理手段により生成された圧縮データのデータ量を予め設定してある閾値と比較し、閾値を越えている場合は圧縮データに対して非可逆圧縮処理を行ない、閾値を越えていない場合は圧縮データに対して可逆圧縮処理を行ない、
前記画像処理装置は、さらに、入力された画像データから文字や線のエッジ部分を検出してエッジ検出信号を出力するエッジ検出手段を有し、
前記第1の圧縮処理手段は減色処理を行う際に、前記エッジ検出手段により出力されたエッジ検出信号に基づいて、画像データの属性の同じ画素間は属性の異なる画素間より減色処理をしやすくするよう制御することを特徴とする画像処理装置。
【請求項2】
前記第1の圧縮処理手段は、入力された画像データがスキャン画像か否かを示す認識信号に基づき、スキャン画像データが入力されたと認識される場合、減色処理に用いる閾値を調整し、属性の同じ画素間は減色処理をよりしやすくするよう制御することを特徴とする、請求項1記載の画像処理装置。
【請求項3】
前記第2の圧縮処理手段は、入力された画像データがスキャン画像か否かを示す認識信号に基づき、スキャン画像データが入力されたと認識される場合、前記予め設定してある閾値を調整し、可逆圧縮処理を実施しやすくするよう制御することを特徴とする、請求項1記載の画像処理装置。
【請求項4】
前記エッジ検出手段により出力されたエッジ検出信号を補正するエッジ検出信号補正手段をさらに有し、エッジ検出信号補正手段はエッジ検出信号の領域を調整する事により、実際の画像データのエッジと領域を合わせることを特徴とする、請求項1記載の画像処理装置。
【請求項5】
(請求項1と同様に補正ください。)
第1の圧縮処理手段で圧縮処理を行った後、第2の圧縮処理手段で更に圧縮処理を行う画像処理装置における画像処理方法であって、
エッジ検出手段により、入力された画像データから文字や線のエッジ部分を検出してエッジ検出信号を出力する工程と、
第1の圧縮処理手段により、入力された画像データで使用されている色数を少なくする減色処理を行うことによりデータ量を少なくした後に、圧縮データを生成する工程と、
第2の圧縮処理手段により、前記生成された圧縮データのデータ量を予め設定してある閾値と比較し、閾値を越えている場合は圧縮データに対して非可逆圧縮処理を行ない、閾値を越えていない場合は圧縮データに対して可逆圧縮処理を行なう工程とを有し、
第1の圧縮処理手段より減色処理を行う際に、前記出力されたエッジ検出信号に基づいて、画像データの属性の同じ画素間は属性の異なる画素間より減色処理をしやすくするよう制御することを特徴とする画像処理方法。
【請求項6】
請求項5記載の画像処理方法をコンピュータに実行させるプログラムを記憶する記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【公開番号】特開2012−65214(P2012−65214A)
【公開日】平成24年3月29日(2012.3.29)
【国際特許分類】
【出願番号】特願2010−208710(P2010−208710)
【出願日】平成22年9月17日(2010.9.17)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年3月29日(2012.3.29)
【国際特許分類】
【出願日】平成22年9月17日(2010.9.17)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]