説明

画像処理装置及び画像処理装置の制御方法

【課題】文字が多層に配置されている文書データにおいて、JPEG圧縮時に文字の周辺に発生するモスキートノイズを軽減することができる画像処理装置および画像処理装置の制御方法を提供することを目的とするものである。
【解決手段】文書データ内の各オブジェクトを、イメージ画像に変換し、この変換したイメージ画像を圧縮して圧縮画像を生成し、文字オブジェクトのみを、イメージ画像に変換し、この変換したイメージ画像を変倍する。この変倍した画像から、アウトライン画像を抽出し、この抽出されたアウトライン画像に基づいて、マスク画像を生成し、上記圧縮画像を伸長し、この伸長された画像と上記マスク画像とに基づいて、文字の塗りつぶし色と文字の周辺色とを決定する。そして、上記伸長された画像と、上記マスク画像と、上記塗りつぶし色と、上記周辺色とに基づいて、画像を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像を圧縮する画像圧縮装置、その画像を伸長する画像伸長装置、及びそれらを用いたプリンタシステムに関する。
【背景技術】
【0002】
近年、プリンタの高解像度化や多色化に伴い、ホストコンピュータからプリンタに送信するデータ量が増加している。特に、インクジェットプリンタ等のラスタプリンタにおいて、全データをラスタデータとして送信するので、データ量の増加が大きく、印字速度を低下させることも稀ではない。
【0003】
転送速度を向上させるために、ホストコンピュータとプリンタとを接続する高速インタフェースが採用されているが、低速なインタフェースや無線接続等を考慮した場合、印字速度の低下が懸念されている。
【0004】
この懸念を解決するために、ラスタデータをプリンタに送信するのではなく、JPEG方式による圧縮画像を、ホストコンピュータで生成し、プリンタ側で伸長処理し、印刷する技術が知られている。この技術によれば、圧縮によってデータ量を削減するので、転送に要する時間が削減される。
【0005】
しかし、JPEG方式を用いることによって、データを圧縮できる一方で、文字領域の境界部分にモスキートノイズが発生するという問題があり、また文字色が鈍るという問題がある。なお、上記「文字色の鈍り」は、文字のエッジ部、特に文字領域内で発生する画像劣化である。
【0006】
そこで、プリンタドライバが、文書データから、文字領域の始点、終点、色情報を含むエッジ情報を生成し、文字以外の領域の色と同じ色で、文字領域を塗り潰した画像を生成し、JPEG圧縮する方法が知られている(たとえば、特許文献1参照)。そして、データ再現時には、伸長したデータ上に、エッジ情報から文字データ部を生成する。
【0007】
JPEG化された画像には、同一色しか存在しないので、モスキートノイズが文字の周辺に発生しない。また、エッジ情報に含まれている色情報によって、文字領域全てを同一色で塗りつぶすことができるので、文字部分を含めて、JPEG圧縮した場合に発生する境界付近の色の鈍りが発生しないという利点もある。
【特許文献1】特開2006−54712号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかし、上記従来例では、文字が一層で配置されている場合、モスキートノイズや色の鈍りを抑えることができるものの、異なった色の文字と文字とが、多層化して配置されている場合には、モスキートノイズや色の鈍りを抑えることができないという問題がある。
【0009】
つまり、上記従来例では、文字部分にあたるバックグラウンドに、採用する色を決定できないので、モスキートノイズの発生を抑えることが不十分であり、これによって、文書データの復元時に良好な結果を得ることができないという問題がある。
【0010】
本発明は、文字が多層に配置されている文書データにおいて、JPEG圧縮時に文字の周辺に発生するモスキートノイズを軽減することができる画像処理装置及び画像処理装置の制御方法を提供することを目的とするものである。
【0011】
また、本発明は、境界部分に発生する文字色の鈍りを抑えることができ、良好な復元画像を生成することができる画像処理装置及び画像処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明は、文書データ内の各オブジェクトを、イメージ画像に変換する第1の変換手段と、上記第1の変換手段が変換したイメージ画像を圧縮して圧縮画像を生成する圧縮画像生成手段とを有する。本発明は、文字オブジェクトのみを、イメージ画像に変換する第2の変換手段と、第2の変換手段が変換したイメージ画像を変倍する画像変倍手段と、上記画像変倍手段が変倍した画像から、アウトライン画像を抽出するアウトライン画像抽出手段とを有する。また、本発明は、上記抽出されたアウトライン画像に基づいて、マスク画像を生成するマスク画像生成手段と、上記圧縮画像を伸長する画像伸長手段とを有する。本発明は、上記伸長された画像と上記マスク画像とに基づいて、文字の塗りつぶし色と文字の周辺色とを決定する色決定手段と、上記伸長された画像と、上記マスク画像と、上記塗りつぶし色と、上記周辺色とに基づいて、画像を生成する画像生成手段とを有する。
【発明の効果】
【0013】
本発明によれば、文字が多層に配置されている文書データにおいて、JPEG圧縮時に文字の周辺に発生するモスキートノイズを軽減することができるという効果を奏する。
【発明を実施するための最良の形態】
【0014】
発明を実施するための最良の形態は、次の実施例である。
【実施例1】
【0015】
図1は、本発明の実施例1であるプリンタ装置100の概観斜視図である。
【0016】
プリンタ装置100は、画像処理装置の例であり、ホストコンピュータ(PC)からデータを受信して印刷する通常のPCプリンタとしての機能を有する。
【0017】
また、プリンタ装置100は、メモリカード等の記憶媒体に記憶されている画像データを直接読み取って印刷する機能、又はデジタルカメラやPDA等からの画像データを受信して印刷する機能を備えている。なお、プリンタ装置100は、読取部を使用して、スキャナとしての機能を発揮し、また、コピー機としての機能を発揮する装置であってもよい。
【0018】
プリンタ装置100は、表示部1と、操作部2と、カードインタフェース3と、読取部4と、記録部5とを有する。
【0019】
図2は、プリンタ装置100の構成を示す図である。
【0020】
プリンタ装置100は、図1に示す部材以外に、CPU20と、ROM21と、RAM22と、不揮発性RAM23と、画像処理部24と、駆動部25と、センサ部26とを有する。
【0021】
CPU20は、ROM21からプログラムコードをRAM22にロードして動作する。また、動作時には、不揮発性RAM23からも、以前に保存された設定情報に基づいて動作することもある。
【0022】
プリンタ装置100は、操作部2からユーザの入力を受け、たとえばカードインタフェース3から画像データの供給を受け、画像処理部24が画像処理を施した後に、記録部5が印字する。
【0023】
また、読取部4が画像をスキャンし、画像処理部24が画像処理を施した後に、記録部5が印字することによって、コピー機能を実現する。駆動部25は、本体を駆動し、また、表示部1は、ユーザインタフェースの表示に使用される。
【0024】
次に、プリンタシステムPS1の構成について説明する。
【0025】
図3は、プリンタ装置100を含むプリンタシステムPS1を示すブロック図である。
【0026】
プリンタシステムPS1は、プリンタ装置100と、プリンタ制御装置40と、表示装置31と、入力装置32とを有する。
【0027】
表示装置31は、プリンタ制御装置40が生成した画像を表示する装置である。入力装置32は、プリンタ制御装置40に画像を入力する装置である。
【0028】
プリンタ制御装置40は、その内部に保存領域43が設けられ、表示装置31と入力装置32とに接続されている。また、プリンタ制御装置40は、双方向インタフェースによって、プリンタ装置100と接続されている。プリンタシステムPS1において、プリンタ制御装置40内では、印刷用データが生成され、プリンタ装置100が印字する。以上が、プリンタシステムPS1の概要である。
【0029】
次に、プリンタシステムPS1の主要な処理について説明する。
【0030】
図4は、プリンタシステムPS1で印刷するデータの例を示す図である。
【0031】
このデータには、画像、文字、グラフィックスのデータが含まれている。
【0032】
次に、プリンタシステムPS1の構成について説明する。
【0033】
図5は、プリンタシステムPS1の構成を示す図である。
【0034】
プリンタシステムPS1は、プリンタ制御装置40とプリンタ装置100とを有する。プリンタ制御装置40内には、プリンタドライバ41が配置されている。プリンタドライバ41は、印刷データ入手部411と、全画像データ生成部412と、文字画像データ生成部413と、圧縮データ生成部414と、マスクデータ生成部415と、データ出力部416とを有する。また、プリンタ制御装置40は、データ送信部42と保存領域43とを有する。
【0035】
プリンタ装置100は、データ受信部51と、圧縮データデコード部52と、マスクデータ解析部53と、塗り潰し色/周辺色決定部54と、印字データ生成部55と、データ印字部56とを有する。
【0036】
プリンタ装置100とプリンタ制御装置40とは、双方向インタフェースで接続されている。プリンタ制御装置40内のプリンタドライバ41が、図4に示すデータを、プリンタに送信するデータに変換する。
【0037】
プリンタドライバ41では、まず、印刷データ入手部411が、印刷データを入手する。この入手されたデータを、全画像データ生成部412が、多値のRGBデータとして、メモリ上にレンダリングする。また、印刷データのうちで、文字データについては、文字画像データ生成部413が、文字のみのRGBデータとして、別メモリ上にレンダリングする。
【0038】
図6は、入力印刷データと、2つのメモリ上のレンダリング結果とを示す図である。
【0039】
図6(A)は、任意の入力画像を示す図であり、図6(B)は、入力画像をメモリ上にデジタルデータとしてレンダリングした全画像レンダリング結果を示す図であり、図6(C)は、文字部のみのレンダリング結果を示す図である。
【0040】
印刷データ上には、文字、画像、グラフィックス等のオブジェクトが存在し、それぞれに対して重なりが存在する。このために、図6(C)に示すように、文字部分のレンダリング結果は、上から見える文字のみであるとする。図6(C)において、画像によって文字列の一部が切れたような結果になっている。
【0041】
次に、全画像データ生成部412がレンダリングした全画像を、圧縮データ生成部414が、圧縮処理し、この圧縮データは、保存領域43に保存される。圧縮する場合、JPEG等の非可逆の圧縮方法を利用する。これによって、転送するデータ量を削減する。一方、文字画像データ生成部413で生成された文字部画像(C)は、マスクデータ生成部415に渡され、後述する動作によって、マスクデータが生成され、同じく保存領域43に保存される。
【0042】
さらに、生成された圧縮データとマスクデータとは、保存領域43から読み出され、データ出力部416が、データ送信部42を介して、プリンタ装置100に送信する。以上が、プリンタ制御装置40における処理である。
【0043】
次に、プリンタ装置100の処理について説明する。
【0044】
プリンタ制御装置40から送信されたデータは、データ受信部51が受信する。受信したデータのうちで、圧縮データを、圧縮データデコード部52がデコード処理する。
【0045】
図7は、デコードされた結果を示す図である。
【0046】
図7(A)の結果は、非可逆に圧縮されたデータを伸長したものであるので、文字周りには、JPEG圧縮におけるモスキートノイズや文字内部に色の鈍りが発生している。なお、図7(A)に示す文字周りのモスキートノイズや文字内部の色の鈍りを、図22に示してある。
【0047】
次に、マスクデータ解析部53が、受信したマスクデータを解析処理する。上記「マスクデータ」は、図7(B)に示すように、文字部分のみのデータである。
【0048】
次に、圧縮データデコード部52が伸長したデータと、マスクデータ解析部53による解析結果とに基づいて、塗り潰し色/周辺色決定部54が、伸長されたデータの文字部分と周辺とに適用する色を決定する。本処理の詳細は後述する。
【0049】
決定された塗り潰し色と、周辺色とによって、印字データ生成部55がデコードしたデータに対して、上書き処理を施し、データ印字部56が印字する。図7(C)は、印刷結果を示す図である。以上が、プリンタ装置100の処理である。
【0050】
次に、プリンタ装置100の処理動作について説明する。
【0051】
図8は、プリンタ装置100の処理動作を示すフローチャートである。
【0052】
S0で、プリンタ制御装置40内の処理が開始され、S1で、全圧縮データが生成され、S2で、マスクデータが生成され、S3で、両データがプリンタ装置に送信される。S4で、プリンタ装置が圧縮データとマスクデータとを受信し、S5で、圧縮データをデコードする。S6で、マスクデータを解析し、S7で、文字内と文字周りとについて、塗り潰し色と周辺色とを決定する。最後に、S8で、印刷処理を行い、S9で、終了する。以上が、本システムの概略動作である。
【0053】
次に、図5に示す全画像データ生成部412〜マスクデータ生成部415の処理動作について、詳細に説明する。
【0054】
図9は、全画像データ生成部412〜マスクデータ生成部415の処理動作を示すフローチャートである。
【0055】
S10で、プリンタドライバの処理が開始され、S11で、全てのオブジェクトの描画が終了したかどうかを判断する。上記「オブジェクト」は、文字、画像、グラフィックス等である。全オブジェクトの描画が終了していなければ、S12で、対象オブジェクトを入手する。S13で、対象オブジェクトを、全画像用メモリにレンダリングする。この処理によって、印刷対象の全てのデータが、全画像用メモリにレンダリングされる。
【0056】
S14で、対象オブジェクトが文字であるかどうかを判断する。対象オブジェクトが文字であれば、S15で、全画像用メモリと同様に、文字を文字画像用メモリにレンダリングする。この処理によって、文字画像用メモリ上に、文字データがレンダリングされる。
【0057】
一方、対象オブジェクトが文字でなければ、S16で、対象オブジェクトを文字画像用メモリ上に、白領域としてレンダリングする。以上の処理によって、文字画像用メモリ上には、文字データのみがレンダリングされる。また、他のオブジェクトが描画順に従って文字部を上書きすれば、文字の一部が削られる可能性もある。
【0058】
上記処理を施し、S11に戻る。S11で、全てのオブジェクトの生成が終了したと判断されると、S17で、全画像用メモリの内容をJPEGデータに変換する。次に、S18で、後述するマスクデータ処理によって、マスクデータを生成する。以上の処理を施し、圧縮された印刷画像データとマスクデータとが作成され、処理を終了する。
【0059】
次に、S18におけるマスクデータ作成について説明する。
【0060】
図10は、S18におけるマスクデータ作成の動作を示すフローチャートである。
【0061】
S20で、処理が開始され、S21で、文字画像用メモリとは異なる文字画像用バッファ2に、縦横2倍に拡大したデータを生成する。拡大する場合、公知の単純拡大技術を利用し、縦横に画素をコピーする。
【0062】
図11は、単純拡大の処理を示す図である。
【0063】
任意の入力画像(A)の注目画素Xを、縦横に2倍に拡大した結果が、図11(B)に示す左上部分である。
【0064】
図12は、文字部の元画像と、これを2倍に拡大した結果と、この結果からアウトラインを抽出した結果と、これを2値化した結果とを示す図である。
【0065】
図12(A)が、文字部の元画像であり、図12(B)が、2倍に拡大した結果である。
【0066】
次に、S22以下の処理において、文字画像のアウトラインデータを抽出する。まず、S22で、文字画像用バッファ2の全ラスタの処理が終了しているかどうかを判断する。処理が終了していなければ、S23で、参照画素を対象ラスタの左端にセットする。
【0067】
S24で、対象ラスタの全画素の処理が終了したかどうかを判断する。終了していなければ、S25で、参照画素が白データであるかどうかを判断する。白画素でなければ、S26で、内部のフラグがONかどうかを判断し、フラグがONであれば、S27で、参照画素が右端の画素であるかどうかを判断する。右端画素でなければ、S28で、対象画素の次の画素が白画素であるかどうかを判断し、白画素でなければ、S29で、対象画素を白画素で上書きし、S24に戻る。以上の処理で、1ラスタにおける文字領域内部の画素が白画素に変更される。
【0068】
一方、S27で、右端の画素であると判断されると、又は、S28で、次の画素が白画素であるとして判断されると、S30で、内部フラグをOFFに変更する。この場合、画素の上書きを行わない。以上の処理を施して、S24に戻るが、本処理は、1ラスタ上の文字以外の部分、又は右端画素での処理である。
【0069】
また、S26で、フラグがOFFであれば、S31で、フラグをONにする。この処理は、1ラスタ上の文字の開始点を認識した場合であり、文字の開始点画素に上書きをしない。以上の処理で、1ラスタ上の文字部分について、左右端の画素のみを残し、内部画素を白で上書きし、アウトライン部分のみのデータを抽出したことになる。
【0070】
また、S25で、参照画素が白画素であれば、文字領域の外であるので、処理を行わずに、S24に戻る。以上の処理を、全ラスタに対して繰り返す。
【0071】
図12(B)に示すアウトラインを抽出した結果が、図12(C)に示す図である。
【0072】
次に、S32で、文字画像用バッファ2の内容を2値化する。本処理には、公知の2値化技術を用いるが、対象画素が白であるかどうかによって、各ビットを0又は1にセットする。
【0073】
図13は、2値化処理を示す図である。
【0074】
図13において、各画素のRGB値が白であるかどうかによって、対応するビットを1又は0に指定する。図13では、2画素分のデータを例としてあげているが、図13に示す画素1が「1」であり、図13に示す画素2が「0」である。従来は、1画素を、24ビットのRGBデータで表現しているが、本2値化処理では、1画素を、1ビットで表現することができる。図12(D)は、以上の処理を施した結果を示す図である。
【0075】
次に、アウトライン部の抽出結果について説明する。
【0076】
図14は、アウトラインを抽出した文字画像と、矢印部分を拡大した図である。
【0077】
図14(A)は、アウトラインを抽出した文字画像を示す図であり、図14(B)は、矢印部分の拡大図である。
【0078】
図14(B)において、黒画素は、文字領域の左右端の画素であり、グレーの画素は、上記処理によって、白画素に置き換えられた画素である。また、白画素は、文字領域外の画素である。
【0079】
上記処理によって、多値の文字データから、2値のアウトラインデータを抽出する処理が終了し、この処理が終了したデータが、「マスクデータ」である。つまり、「マスクデータ」は、多値の文字データから、2値で示すアウトラインデータを抽出したデータである。
【0080】
次に、圧縮データコード部52〜印字データ生成部55の処理動作について説明する。
【0081】
図15は、圧縮データコード部52〜印字データ生成部55の処理動作を示すフローチャートである。
【0082】
S40で、プリンタ内の処理が開始される。S41で、受信したJPEG画像データをメモリ上に伸長する。伸長されたデータは、上記のように、文字部分の境界付近でモスキートノイズや色の鈍りが発生している可能性がある。
【0083】
S42で、受信したマスクデータをメモリ上にレンダリングする。S43で、まず、マスクデータの全ラスタの処理が終了したかどうかを判断し、終了していなければ、S44で、マスクデータの対象画素が文字の一部(文字画像内)であるかどうかを判断する。文字の一部であれば、S45で、後述する手段によって、塗り潰し色を取得する。
【0084】
S46で、参照しているマスクデータ画素に相対するJPEG画像の対象画素を塗り潰し色として、バッファ2に出力し、S43に戻る。S44で、文字画像の外であると判断されれば、S47で、対象画素が文字の周辺画素であるかどうかを判断する。本判断処理についても後に詳述する。
【0085】
S47で、周辺画素であると判断されると、S48で、後述する手段で周辺色を取得する。S49で、参照しているマスクデータ画素に相対するJPEG画像の対象画素を周辺色とし、バッファ2に出力し、S43に戻る。
【0086】
また、S47で、文字の周辺画素ではないと判断されると、S50で、マスクデータ画素に相対するJPEG画像の対象画素を、バッファ2にコピーし、S43に戻り、全ラスタの処理が終了するまで、S43〜S50の処理を繰り返す。全ラスタの処理が終了した場合、S51で、バッファ2の内容を印字し、処理を終了する。以上が、プリンタ内における主な動作である。
【0087】
次に、塗り潰し色の決定方法について説明する。
【0088】
図16は、文字Aの上位部分のアウトラインマスクデータであり、1マスは、対応するJPEG画像の1MCUを示す図である。
【0089】
上記「1MCU」は、たとえば、8x8画素で構成されている。マスクデータは、上記のように、オリジナルサイズに対して、2倍(1画素を4画素)に拡大されているが、オリジナルJPEG画像との対比を明確にするために、図16では、4画素を1画素として表現している。また、図16に示す(1)と(2)とは、ともに文字領域内に位置するMCUを表しているが、注目画素が、このMCU内の任意の1画素である意味としても使用する。
【0090】
図17は、実施例1において塗り潰し色を決定する処理を示すフローチャートである。
【0091】
まず、図17において、S61で、注目画素が入っているMCU(以後、「対象MCU」という)を決定する。図16に示す(1)と(2)とが、注目画素の入っているMCUであるが、MCUの決定は、注目画素に対応するJPEG画像上の画素を見つけ出すことであり、容易に決定することができる。
【0092】
次に、S62で、対象MCUが接する周囲のMCU(以後、「周囲MCU」という)を決定する。図16に示す(1)、(2)のそれぞれに隣接する黒又はグレーのMCUが対象MCUである。
【0093】
次に、S63で、対象MCUと周囲MCUとに含まれている全ての画素が、文字領域内に存在するかどうかを判断する。全てが存在する場合(図16に示す(1)の場合)は、S64で、注目画素に、塗り潰し色を付与するように決定する。また、S63で、一部のMCUが、文字領域外にある画素を含んでいると判断されると(図16に示す(2)の場合)、S65で、文字領域外の画素を含んだMCU(図16では、グレーのMCU)を除いた周囲MCU内の全画素の平均値を求める。
【0094】
S66で、その平均値を塗り潰し色として決定する。図16に示す(2)の周囲の黒いMCUに、図16に示す(2)そのものを加えたものである。以上が、塗り潰し色の決定方法であるが、上記処理によって、色の鈍りがMCU内に閉じられるというMCUの特性を利用し、塗り潰し色決定の精度が向上される。JPEGの圧縮方式では、MCUブロックごとに符号化を行うので、符号化時に他のMCUに含まれる画素の影響が及ばない。
【0095】
次に、実施例1において、周辺色を決定する方法について説明する。
【0096】
図18は、文字Aの上位部分のアウトラインマスクデータを示す図である。
【0097】
図18において、1マスは、対応するJPEG画像の1MCUであり、1MCUは、たとえば、8x8画素で構成されている。マスクデータは、上記のように、オリジナルサイズに対して、2倍(1画素を4画素)に拡大されているが、オリジナルJPEG画像との対比を明確にするために、図18では、4画素を1画素として表現している。
【0098】
また、図18に示す(1)と(2)とは、ともに、文字領域内に位置するMCUを表しているが、注目画素が、このMCU内の任意の1画素である意味としても使用する。
【0099】
図19は、実施例1において、周辺色を決定する処理を示すフローチャートである。
【0100】
まず、S71で、注目画素が入っているMCU(以後、「対象MCU」という)を決定する。図18における(1)と(2)とが、注目画素の入っているMCUであるが、MCUを決定する場合、注目画素に対応するJPEG画像上の画素を見つけ出すことによって、MCUを容易に決定することができる。
【0101】
次に、S72で、対象MCUが接する周囲のMCU(以後、「周囲MCU」という)を決定する。図18における(1)と(2)とに隣接する黒又はグレーのMCUが、周囲MCUである。
【0102】
次に、S73で、周囲MCUの中で、MCUに含まれている全ての画素が、文字領域外に存在するMCUであるかどうかを判断する。図18では、黒いMCUがその対象である。対象となる周囲MCU(黒いMCU)が存在すれば、S74で、それらの周囲MCU(黒いMCU)内に存在する文字領域外の画素の平均値を求める(全ての黒いMCUの全画素の平均値を求める)。上記「画素の平均値」は、各画素のYCbCr値の平均を求めた値であり、Y=(Y1+Y2+・・・・+Yn)/nによって求めることができる。またCb、Cr値についても同様である。
【0103】
S75で、MCU(1)又はMCU(2)の各画素と平均値との差を求める。S76で、上記差が予め定めた閾値を超える画素が、1画素でも存在するどうかを判断し、存在すれば、S77で、注目画素の色をその画素に対する周辺色とする。つまり、注目画素を周辺色に置き換えたとしても同じ色に置き換えられるようにする。言い換えれば、注目画素の色が変わらないようにする。
【0104】
一方、全ての画素の差が、閾値以内であれば、S78で、文字領域を含まない周囲MCUの全画素について、同じ色であるかどうか(各画素の色の違いが所定範囲内であるかどうか)を判断する。同じ色であれば、S79で、対象色(黒いMCUの全画素の平均値の色)を周辺色として決定する。これは、文字領域を含まない周囲MCU内では色の変化が平坦であるため、MCU(1)又はMCU(2)の全画素を前述の平均値の色に置き換えることにより、文字周辺の色の鈍りを消すためである。また、同じ色でなければ、S80で、対象画素を周辺色とする。これは周囲MCU内に極端に色が異なる部分があれば、周囲MCU(黒いMCU)内にある画素の色の平均値は、周囲MCUの色とは異なるものになるため、注目画素がその異なる色に置き換えられることを防止するためである。また、S73で、周囲MCUの中で、MCUに含まれている全ての画素が、文字領域外に存在するMCUではないと判断されれば、上記と同様に、S80に進み処理を終了する。
【0105】
以上が、周辺色の決定方法であるが、本フローチャートは、モスキートノイズがMCU内に閉じられるというMCUの特性を利用するものであり、周辺色決定の精度を向上させることができる。
【0106】
次に、図15に示すS47でマスクデータ上の対象画素が文字の周辺かどうかを判断する手段について説明する。
【0107】
図20は、JPEGを伸長した画像と、マスクデータと、それぞれのデータの1ラスタデータとを示す図である。
【0108】
図20の(A)は、JPEGを伸長した画像であり、図20の(B)は、マスクデータである。図20の(C)、(D)は、各データの1ラスタデータを示す図である。
【0109】
モスキートノイズは、文字の境界の外側に発生する可能性がある。図20の(B)に示すXとYとは、文字の境界の外側の画素であるが、同一MCU内であれば、さらに外側の画素(グレー画素の部分)に発生する可能性もある。このために、この判断手段は、対象画素が、同一MCU内に文字の境界画素が存在するかどうかを判断することによって、実現可能である。
【0110】
以上が、実施例1の詳細な説明である。
【0111】
実施例1によれば、プリンタに送信するデータが、圧縮画像と2値のマスクデータとであるので、ラスタデータと比較すると、送信データ量を削減することができ、印刷速度を向上させることができる。
【0112】
また、実施例1によれば、マスクデータを利用して文字の周辺を、周辺色で塗りつぶすことができるので、圧縮画像内の文字の周辺に発生しているモスキートノイズを低減することができ、良好な印刷結果を得ることができる。
【0113】
さらに、上記実施例によれば、マスクデータを利用して、文字領域に、塗りつぶし色で塗りつぶすことができるので、文字部の境界に発生している文字色の鈍りを低減することができ、良好な印刷結果を得ることができる。
【実施例2】
【0114】
本発明の実施例2は、プリンタに搭載しているカード入力機器から、文書画像を入力する場合の実施例である。
【0115】
実施例2に係るプリンタハードウェア構成は、上記実施例1と同様であるので、その説明を省略する。また、実施例2に係るプリンタ内の構成についても、上記実施例1と同様であるので、図2及び図4を引用し、その説明を省略する。
【0116】
実施例2であるプリンタシステムPS2で印刷するデータの例は、図4に示すデータの例と同じである。本データには、画像、文字、グラフィックスのデータが含まれている。
【0117】
次に、プリンタシステムPS2の構成について、説明する。
【0118】
図21は、本発明の実施例2であるプリンタシステムPS2を示すブロック図である。
【0119】
プリンタシステムPS2は、プリンタ制御装置60と、プリンタ装置200と、保存領域80とを有する。
【0120】
プリンタ制御装置60は、プリンタドライバ61と、データ送信部62とを有する。
【0121】
プリンタドライバ61は、印刷データ入手部611と、全画像データ生成部612と、文字画像データ生成部613と、圧縮データ生成部614と、マスクデータ生成部615と、データ出力部616とを有する。
【0122】
次に、プリンタ装置200について説明する。
【0123】
プリンタ装置200は、データ受信部71と、圧縮データデコード部72と、マスクデータ解析部73と、塗り潰し色/周辺色決定部74と、印字データ生成部75と、データ印字部76とを有する。
【0124】
プリンタ装置200とプリンタ制御装置60とは、双方向インタフェースで接続されている。また、メモリカード等の外部保存領域80が設けられている。
【0125】
図4に示すデータは、プリンタ制御装置60内のプリンタドライバ61が、プリンタに送信するデータに変換される。プリンタドライバ61では、まず、印刷データ入手部611が印刷データを入手する。この入手されたデータを、全画像データ生成部612が、多値のRGBデータとしてメモリ上にレンダリングする。
【0126】
また、印刷データのうちで文字データについて、文字画像データ生成部613が、文字のみのRGBデータとして、別メモリ上にレンダリングする。この状態の入力印刷データと、上記2つのメモリ上のレンダリング結果とを示す図が、図6である。図6の(A)は、任意の入力画像であり、図6の(B)が、全画像レンダリング結果であり、図6の(C)が、文字部のみのレンダリング結果である。印刷データ上には、文字、画像、グラフィックス等のオブジェクトが存在するが、それぞれに対して重なりが存在する。
【0127】
このために、図6の(C)に示すように、文字部分のレンダリング結果は、最上位レイアに存在する文字のみとする。図6(C)において、画像によって文字列の一部が切れた結果となっている。
【0128】
次に、全画像データ生成部612がレンダリングした全画像を、圧縮データ生成部614が圧縮処理し、この圧縮データは、外部保存領域80に保存される。圧縮する場合、JPEG等の非可逆の圧縮方法を利用する。
【0129】
これによって、転送するデータ量を削減することができる。一方、文字画像データ生成部613が生成した文字部画像(C)は、マスクデータ生成部615に渡され、後述する処理によって、マスクデータを生成し、同じく外部保存領域80に保存される。以上が、プリンタ制御装置60における処理である。
【0130】
次に、プリンタ装置200の処理について説明する。
【0131】
プリンタ制御装置60において、外部保存領域80は、プリンタ内のカードスロットに装着される。プリンタ装置200のユーザインタフェースからの指令によって、外部保存領域80から、圧縮データとマスクデータとが読み出される。読み出されたデータは、データ受信部71が受信する。
【0132】
受信したデータのうちで、圧縮データは、圧縮データデコード部72がデコード処理する。デコードされた結果が、図7の(A)である。図7の(A)の結果は、非可逆に圧縮されたデータを解凍したものであるので、文字周りには、JPEG圧縮におけるモスキートノイズや文字内部に色の鈍りが発生している。
【0133】
次に、マスクデータ解析部73が、受信したマスクデータを解析処理する。マスクデータは、図7の(B)における文字部分のみのデータである。次に、塗り潰し色/周辺色決定部74が、圧縮データデコード部72がデコードしたデータと、マスクデータ解析部73が行った解析結果をデコードしたデータとの文字部分と周辺とに適用する色を決定する。本処理の詳細は、後述する。
【0134】
決定された塗り潰し色と周辺色とによって、印字データ生成部75が、デコードされたデータに上書き処理し、データ印字部76が印字する。図7の(C)が、印刷結果である。以上が、プリンタ装置200の処理である。
【0135】
以上が、実施例2におけるプリンタシステムPS2の動作である。
【0136】
また、実施例2に関わる他の処理は、実施例1における処理と同様であるので、その説明を省略する。
【0137】
実施例2によれば、外部保存領域80に保存するデータが、圧縮画像と2値のマスクデータとであるので、ラスタデータと比較して、送信データ量を削減することができ、印刷速度を向上させることができる。
【0138】
また、実施例2によれば、マスクデータを利用して文字の周辺を、周辺色で塗りつぶすことができるので、圧縮画像内の文字の周辺に発生しているモスキートノイズを低減することができ、良好な印刷結果を得ることができる。
【0139】
さらに、実施例2によれば、マスクデータを利用して文字領域に、塗りつぶし色で塗りつぶすことができるので、文字部の境界に発生している文字色の鈍りを低減することができ、良好な印刷結果を得ることができる。
【実施例3】
【0140】
本発明の実施例3は、実施例1の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体である。
【0141】
プリンタ装置100のコンピュータ(又はCPUやMPU)が、記憶媒体に格納されているプログラムコードを読み出し実行する実施例である。
【0142】
この場合、記憶媒体から読み出されたプログラムコード自体が、実施例1の機能を実現し、このプログラムコードを記憶した記憶媒体は、本発明を構成する。
【0143】
このようなプログラムコードを供給するための記憶媒体は、たとえば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMである。
【0144】
また、コンピュータが読み出したプログラムコードを実行することによって、上記実施例の機能が実現される。加えて、そのプログラムコードの指示に基づいて、コンピュータ上で稼動しているOS(オペレーティングシステム)等が、実際の処理の一部又は全部を実行し、この処理によって、上記実施例の機能が実現される場合も含まれる。
【0145】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続されている機能拡張ユニットに設けられているメモリに書き込まれた場合においても、実現される。そのプログラムコードの指示に基づいて、その機能拡張ボードや機能拡張ユニットに備わるCPU等が、実際の処理の一部又は全部を実行し、その処理によって、上記実施例の機能が実現される場合も含む。
【0146】
すなわち、読取部4は、文書データ内の各オブジェクトを、イメージ画像に変換する第1の変換手段の例であり、文字オブジェクトのみを、イメージ画像に変換する第2の変換手段の例である。
【0147】
画像処理部24は、上記第1の変換手段が変換したイメージ画像を圧縮して圧縮画像を生成する圧縮画像生成手段の例であり、上記第2の変換手段が変換したイメージ画像を変倍する画像変倍手段の例である。また、画像処理部24は、上記画像変倍手段が変倍した画像から、アウトライン画像を抽出するアウトライン画像抽出手段の例であり、上記抽出されたアウトライン画像に基づいて、マスク画像を生成するマスク画像生成手段の例である。さらに、画像処理部24は、上記圧縮画像を伸長する画像伸長手段の例であり、上記伸長された画像と上記マスク画像とに基づいて、文字の塗りつぶし色と文字の周辺色とを決定する色決定手段の例である。そして、画像処理部24は、上記伸長された画像と、上記マスク画像と、上記塗りつぶし色と、上記周辺色とに基づいて、画像を生成する画像生成手段の例である。
【0148】
また、入力装置32は、上記画像処理装置に画像を入力する入力装置の例である。表示装置31は、上記画像処理装置が生成した画像を表示する表示装置の例である。
【0149】
なお、上記実施例を方法の発明として把握することができる。つまり、上記実施例は、文書データ内の各オブジェクトを、イメージ画像に変換する第1の変換工程と、上記第1の変換工程で変換したイメージ画像を圧縮して圧縮画像を生成する圧縮画像生成工程とを実現する例である。また、上記実施例は、文字オブジェクトのみを、イメージ画像に変換する第2の変換工程と、上記第2の変換工程で変換したイメージ画像を変倍する画像変倍工程とを実現する例である。さらに、上記実施例は、上記画像変倍工程で変倍した画像から、アウトライン画像を抽出するアウトライン画像抽出工程と、上記抽出されたアウトライン画像に基づいて、マスク画像を生成するマスク画像生成工程とを実現する例である。そして、上記実施例は、上記圧縮画像を伸長する画像伸長工程と、上記伸長された画像と上記マスク画像とに基づいて、文字の塗りつぶし色と文字の周辺色とを決定する色決定工程とを実現する例である。また、上記実施例は、上記伸長された画像と、上記マスク画像と、上記塗りつぶし色と、上記周辺色とに基づいて、画像を生成する画像生成工程を実現する例である。
【図面の簡単な説明】
【0150】
【図1】本発明の実施例1であるプリンタ装置100の概観斜視図である。
【図2】プリンタ装置100の構成を示す図である。
【図3】プリンタ装置100を含むプリンタシステムPS1を示すブロック図である。
【図4】プリンタシステムPS1で印刷するデータの例を示す図である。
【図5】プリンタシステムPS1の構成を示す図である。
【図6】入力印刷データと2つのメモリ上のレンダリング結果とを示す図である。
【図7】デコードされた結果を示す図である。
【図8】プリンタ装置100の処理動作を示すフローチャートである。
【図9】全画像データ生成部412〜マスクデータ生成部415の処理動作を示すフローチャートである。
【図10】S18におけるマスクデータ作成の動作を示すフローチャートである。
【図11】単純拡大の処理を示す図である。
【図12】文字部の元画像と、これを2倍に拡大した結果と、この結果からアウトラインを抽出した結果と、これを2値化した結果とを示す図である。
【図13】2値化処理を示す図である。
【図14】アウトラインを抽出した文字画像と、矢印部分を拡大した図である。
【図15】圧縮データコード部52〜印字データ生成部55の処理動作を示すフローチャートである。
【図16】文字Aの上位部分のアウトラインマスクデータであり、1マスは、対応するJPEG画像の1MCUを示す図である。
【図17】実施例1において塗り潰し色を決定する処理を示すフローチャートである。
【図18】文字Aの上位部分のアウトラインマスクデータを示す図である。
【図19】実施例1において周辺色を決定する処理を示すフローチャートである。
【図20】JPEGを伸長した画像と、マスクデータと、それぞれのデータの1ラスタデータを示す図である。
【図21】本発明の実施例2であるプリンタシステムPS2を示すブロック図である。
【図22】本発明の実施例2において、デコードデータ上のモスキートノイズと色の鈍りを示す図である。
【符号の説明】
【0151】
100…プリンタ装置、
1…表示部、
2…操作部、
4…読取部、
5…記録部、
20…CPU、
31…表示装置、
32…入力装置、
PS1…プリンタシステム、
40…プリンタ制御装置、
41…プリンタドライバ、
411…印刷データ入手部、
412…全画像データ生成部、
413…文字画像データ生成部、
414…圧縮データ生成部、
415…マスクデータ生成部、
416…データ出力部、
42…データ送信部、
51…データ受信部、
52…圧縮データデコード部、
53…マスクデータ解析部、
54…塗りつぶし色/周辺色決定部、
55…印字データ生成部、
56…データ印字部、
PS2…プリンタシステム、
60…プリンタ制御装置、
61…プリンタドライバ、
200…プリンタ装置。

【特許請求の範囲】
【請求項1】
文書データ内の各オブジェクトを、イメージ画像に変換する第1の変換手段と;
上記第1の変換手段が変換したイメージ画像を圧縮して圧縮画像を生成する圧縮画像生成手段と;
文字オブジェクトのみを、イメージ画像に変換する第2の変換手段と;
上記第2の変換手段が変換したイメージ画像を変倍する画像変倍手段と;
上記画像変倍手段が変倍した画像から、アウトライン画像を抽出するアウトライン画像抽出手段と;
上記抽出されたアウトライン画像に基づいて、マスク画像を生成するマスク画像生成手段と;
上記圧縮画像を伸長する画像伸長手段と;
上記伸長された画像と上記マスク画像とに基づいて、文字の塗りつぶし色と文字の周辺色とを決定する色決定手段と;
上記伸長された画像と、上記マスク画像と、上記塗りつぶし色と、上記周辺色とに基づいて、画像を生成する画像生成手段と;
を有することを特徴とする画像処理装置。
【請求項2】
文書データ内の各オブジェクトを、イメージ画像に変換する第1の変換手段と、上記第1の変換手段が変換したイメージ画像を圧縮して圧縮画像を生成する圧縮画像生成手段と、文字オブジェクトのみを、イメージ画像に変換する第2の変換手段と、上記第2の変換手段が変換したイメージ画像を変倍する画像変倍手段と、上記画像変倍手段が変倍した画像から、アウトライン画像を抽出するアウトライン画像抽出手段と、上記抽出されたアウトライン画像に基づいて、マスク画像を生成するマスク画像生成手段と、上記圧縮画像を伸長する画像伸長手段と、上記伸長された画像と上記マスク画像とに基づいて、文字の塗りつぶし色と文字の周辺色とを決定する色決定手段と、上記伸長された画像と、上記マスク画像と、上記塗りつぶし色と、上記周辺色とに基づいて、画像を生成する画像生成手段とを具備する画像処理装置と;
上記画像処理装置に画像を入力する入力装置と;
上記画像処理装置が生成した画像を表示する表示装置と;
を有することを特徴とするプリンタシステム。
【請求項3】
文書データ内の各オブジェクトを、イメージ画像に変換する第1の変換工程と;
上記第1の変換工程で変換したイメージ画像を圧縮して圧縮画像を生成する圧縮画像生成工程と;
文字オブジェクトのみを、イメージ画像に変換する第2の変換工程と;
上記第2の変換工程で変換したイメージ画像を変倍する画像変倍工程と;
上記画像変倍工程で変倍した画像から、アウトライン画像を抽出するアウトライン画像抽出工程と;
上記抽出されたアウトライン画像に基づいて、マスク画像を生成するマスク画像生成工程と;
上記圧縮画像を伸長する画像伸長工程と;
上記伸長された画像と上記マスク画像とに基づいて、文字の塗りつぶし色と文字の周辺色とを決定する色決定工程と;
上記伸長された画像と、上記マスク画像と、上記塗りつぶし色と、上記周辺色とに基づいて、画像を生成する画像生成工程と;
を有することを特徴とする画像処理装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2008−165538(P2008−165538A)
【公開日】平成20年7月17日(2008.7.17)
【国際特許分類】
【出願番号】特願2006−355179(P2006−355179)
【出願日】平成18年12月28日(2006.12.28)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】