(57)【要約】【課題】定着時のトナーの爆発及び飛び散りによる尾引き現象の対策のための画像処理において、メモリ使用量の増加、処理速度の低下を目的とする。【解決手段】所定の画素数からなるブロックごとに、前記ブロックに含まれる色情報および色の配置情報を保持することにより符号化する符号化方法によって符号化された画像データに対し処理を行う画像処理装置であって、符号化された前記画像データにおける前記色情報と前記色の配置情報とを用いて、同一の色情報を有する画素が所定の数よりも連続した領域を検出する検出手段と、前記検出手段で検出された領域を含む複数のブロックのうち、前記領域の所定の位置に対応する画素の色情報、および前記所定の位置の画素を含むブロックの配置情報を変換する変換手段とを有する。【選択図】  図７
2012010088.tif 000002
【特許請求の範囲】
【請求項１】
所定の画素数からなるブロックごとに、前記ブロックに含まれる色情報および色の配置情報を保持することにより符号化する符号化方法によって符号化された画像データに対し処理を行う画像処理装置であって、
符号化された前記画像データにおける前記色情報と前記色の配置情報とを用いて、同一の色情報を有する画素が所定の数よりも連続した領域を検出する検出手段と、
前記検出手段で検出された領域を含む複数のブロックのうち、前記領域の所定の位置に対応する画素の色情報、および前記所定の位置の画素を含むブロックの配置情報を変換する変換手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記検出手段は、前記領域として、黒色の画素値を有する画素の矩形の領域を検出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記変換手段は、前記所定の位置の画素の色情報の値を白色の画素値に変換することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記変換手段は、前記所定の位置の画素の色情報の値を減色する値に変換することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記検出手段が前記領域を検出する際に用いる前記所定の数は、前記領域を走査する方向において、前記ブロックを構成する画素数よりも大きな値であることを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記ブロックを構成する前記所定の画素数は２ｘ２画素であることを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記検出手段が前記領域を検出する際に用いる前記所定の数は、３画素であることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記所定の位置の画素は、前記領域の下端から２画素目の列でかつ、前記２画素目の列において１画素おきの位置にある画素であることを特徴とする請求項３に記載の画像処理装置。
【請求項９】
前記所定の位置の画素は、前記領域の下端から２画素目の列にある画素であることを特徴とする請求項４に記載の画像処理装置。
【請求項１０】
所定の画素数からなるブロックごとに、前記ブロックに含まれる色情報および色の配置情報を保持することにより符号化する符号化方法によって符号化された画像データに対し処理を行う画像処理装置の制御方法であって、
前記画像処理装置の検出手段が、符号化された前記画像データにおける前記色情報と前記色の配置情報とを用いて、同一の色情報を有する画素が所定の数よりも連続した領域を検出する検出工程と、
前記画像処理装置の変換手段が、前記検出工程にて検出された領域を含む複数のブロックのうち、前記領域の所定の位置に対応する画素の色情報、および前記所定の位置の画素を含むブロックの配置情報を変換する変換工程と
を有することを特徴とする制御方法。
【請求項１１】
コンピュータを、
所定の画素数からなるブロックごとに、前記ブロックに含まれる色情報および色の配置情報を保持することにより符号化する符号化方法によって符号化された画像データにおける前記色情報と前記色の配置情報とを用いて、同一の色情報を有する画素が所定の数よりも連続した領域を検出する検出手段、
前記検出手段で検出された領域を含む複数のブロックのうち、前記領域の所定の位置に対応する画素の色情報、および前記所定の位置の画素を含むブロックの配置情報を変換する変換手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を所定のブロック単位に圧縮した符号化データの画像処理を行う画像処理装置、制御方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、高解像度のカラー画像への需要は高く、それらの高画質化への要望へ応えるべくデジタル複合機では、１２００ｄｐｉ（ｄｏｔｓ  ｐｅｒ  ｉｎｃｈ）やそれを超える解像度の画像を扱う事が多くなってきている。デジタル複合機に限らずこれら画像を扱う画像処理装置（デジタルカメラやファクシミリ装置）では、メモリ／ハードディスク量の節約や、それらへの書き込み時間を短縮するために、カラー画像データの圧縮を行い、低コスト化や高速化を実現している。
【０００３】
従来、カラー静止画像の圧縮方式には、離散コサイン変換を利用したＪＰＥＧ方式や、Ｗａｂｅｌｅｔ変換を利用した方式が多く使われている。この種の符号化方式は、一般的に画像を所定のブロック（例えば８ｘ８や１６ｘ１６画素）単位に符号化し、離散コサイン変換、量子化およびエントロピー符号化を行うことで高い圧縮効率を示している。この種の符号化方式は、可変長符号化方式であるので、符号化対象の画像毎に符号量が変化する。
【０００４】
高解像度化が進むにつれて画像処理を必要とする画素数が飛躍的に増え、その処理負荷が増大している。例えば６００ｄｐｉから１２００ｄｐｉに解像度が倍になることで処理すべき画素数は４倍になる。前述した画像圧縮を用いた場合はその画素データを参照し、その画素データを変換しようとすると圧縮データの復号処理が必要になる。そのため、高解像度データ全ての画素に対して画素単位に処理を行う必要が出て、処理時間の増大をまねく。
【０００５】
画素データの圧縮処理を行う技術としては、画素データとその連続数を記憶する公知のランレングス圧縮方式や、ブロック単位でエッジを検出し、そのエッジの持つ２色を記憶することで圧縮する技術（特許文献１）などが開示されている。また、圧縮したデータを復号処理せず、そのまま画像処理を行う技術としては、ＭＰＥＧのような画像データでＤＣＴ係数のＤＣ成分以外を０にして、ブロック毎にある１色で塗りつぶす技術（特許文献２）などが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−２５７４８８号公報
【特許文献２】特開平１０−２９０３９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
電子写真方式のプリンタでは、定着時のトナーの爆発及び飛び散りにより、記録紙の搬送方向下流に尾を引いたように飛び散ったトナーが印字される尾引き現象の対策を行っている。従来のプリンタでは、この尾引き現象の対策として、画像中の主走査方向に連続する画素からなるラインを検出し、ライン下部（記録紙における下流側）に属する画素を間引く画像処理を行っている。尾引き対策も他の画像処理同様、高解像度処理が求められている。尾引き対策において高解像化を行いながら、メモリ使用量の増加、処理速度の低下を抑えるためには、圧縮データのまま画像処理をすることが必要である。しかしながら、従来の技術では、尾引き対策のように対象となる画像の特徴（ラインであるか）によって画像処理方法を変える必要がある処理については、圧縮データのまま画像処理を行うことができない。本発明では、これらの問題を解決可能な、画像処理方法を提供する。
【課題を解決するための手段】
【０００８】
本願発明は、上記課題を解決するために以下の構成を有する。所定の画素数からなるブロックごとに、前記ブロックに含まれる色情報および色の配置情報を保持することにより符号化する符号化方法によって符号化された画像データに対し処理を行う画像処理装置であって、符号化された前記画像データにおける前記色情報と前記色の配置情報とを用いて、同一の色情報を有する画素が所定の数よりも連続した領域を検出する検出手段と、前記検出手段で検出された領域を含む複数のブロックのうち、前記領域の所定の位置に対応する画素の色情報、および前記所定の位置の画素を含むブロックの配置情報を変換する変換手段とを有する。
【発明の効果】
【０００９】
上記構成をとることで、圧縮データを伸長することなく、尾引き対策処理を行うことが可能である。このことにより、メモリ容量やメモリバス帯域の節約が可能になる。また、尾引き対策処理における処理負荷も削減することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】ＭＦＰシステムの概要を示した図。
【図２】コントローラの概要を示した図。
【図３】画像をブロック分割した際にそのブロックのパターンを列挙した図。
【図４】ブロックのパターンとその識別子を列挙した図。
【図５】第一の実施形態に係る圧縮処理に対する入力と出力の関係を示した図。
【図６】圧縮データのメモリ空間上でのレイアウトを示した図。
【図７】第一の実施形態に係る尾引き対策処理を示すフローチャートの図。
【図８】第一および第二の実施形態に係るライン判定処理を示すフローチャートの図。
【図９】第一および第二の実施形態に係る対象ブロックの構成の判定処理を示すフローチャートの図。
【図１０】第一および第二の実施形態に係る対象ブロックの上部黒色判定処理を示すフローチャートの図。
【図１１】第一および第二の実施形態に係る対象ブロックの下部黒色判定処理を示すフローチャートの図。
【図１２】第一の実施形態に係る間引き処理を示すフローチャートの図。
【図１３】第二の実施形態に係る尾引き対策処理を示すフローチャートの図。
【図１４】第二の実施形態に係る減色処理を示すフローチャートの図。
【図１５】第一および第二の実施形態に係る入力および出力画像データの一例を示す図。
【図１６】第一および第二の実施形態に係る符号データの一例を示す図。
【図１７】第一の実施形態に係る符号データの一例を示す図。
【図１８】第二の実施形態に係る符合データの一例を示す図。
【発明を実施するための形態】
【００１１】
＜第一の実施形態＞
［システム構成］
以下、本発明を実施するための形態について図面を用いて説明する。図１に、本発明の実施形態のスキャン、プリント、コピーを行うデジタル複合機システム（以降ＭＦＰと称する）の全体構成図を示す。コントローラ１０１は画像入力デバイスであるスキャナ１０２や画像出力デバイスであるプリンタ１０３、ＬＡＮや公衆回線（ＷＡＮ）等のネットワーク１０４と接続している。ＭＦＰが、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開を行う。
【００１２】
ＣＰＵ１０５は、システム全体を制御するプロセッサである。メモリ１０６は、ＣＰＵ１０５が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＨＤＤ記憶部１０７はハードディスクドライブで、システムソフトウェア、画像データを格納する。
【００１３】
図２を用いて、図１のコントローラ１０１の動作に関して詳細に説明する。スキャンデータを読み込む場合を説明する。スキャナ１０２からＲＧＢ（ＲＥＤ、ＧＲＥＥＮ、ＢＬＵＥ）３色の読み取り画像データを受け取ったコントローラ１０１では、まずスキャナ用画像処理部２０１にてシェーディング処理やフィルタ処理等の画像処理を行う。画像処理を行ったデータを圧縮部２０２にて画像圧縮処理を行う。その圧縮データをＤＭＡＣ（ＤＩＲＥＣＴ  ＭＥＭＯＲＹ  ＡＣＣＥＳＳ  ＣＯＮＴＲＯＬＬＥＲ）２０３を介してメモリ１０６へ格納する。
【００１４】
スキャンデータをプリントする場合は、メモリ１０６に格納されている圧縮データをＤＭＡＣ２１１を介して画像処理部２１２へ入力しＣＭＹＫ（ＣＹＡＮ、ＭＡＧＥＮＴＡ、ＹＥＬＬＯＷ、ＢＬＡＣＫ）色空間へ変換する。その後、それらＣＭＹＫの値に対して濃度調整、プリンタガンマ補正等の調整の色処理を行った後、ＤＭＡＣ２１１を介してメモリ１０６へ再度格納する。その後プリント用の画像処理を行うために、ＤＭＡＣ２２１を介して、メモリ１０６に格納されている圧縮データを読み込み、展開部２２２にてラスタ画像データへ展開する。ラスタのＣＭＹＫ画像データをプリント用画像処理部２２３に入力し、そこでディザ法や誤差拡散法による面積階調処理を行い、プリンタ１０３へ出力する。
【００１５】
スキャンデータをネットワークへ送信する場合には、メモリ１０６に格納されている圧縮データをＤＭＡＣ２１１を介して画像処理部２１２へ入力し色変換を行う。具体的には、ディスプレイガンマ調整や用紙地色調整等を行った後にＹＣｂＣｒ（輝度、ＢＬＵＥ色差、ＲＥＤ色差）色空間へ変換する。その後再度、ＤＭＡＣ２１１を介してメモリ１０６へ格納する。その後送信用の画像処理を行うために、ＤＭＡＣ２３１を介して、メモリ１０６に格納されている圧縮データを読み込み、展開部２３２にてラスタ画像データへ展開する。ラスタのＹＣｂＣｒ画像データに対して送信処理部２３３ではカラー画像送信であればＪＰＥＧ圧縮処理を行い、モノクロ２値画像送信であればＹデータに対して２値化をしてＪＢＩＧ圧縮等を行う。その後、ネットワーク１０４へ出力する。
【００１６】
スキャンデータを保存する場合には、メモリ１０６に格納されている圧縮データをＤＭＡＣ２４１を介してディスクスプール高圧縮／展開部２４２へ入力する。ディスクスプール高圧縮／展開部２４２では、ＨＤＤの書き込みスピードがメモリに対して遅いため、さらに高圧縮のＪＰＥＧ圧縮を施す。その後ディスクアクセスコントローラ２４３を介してＨＤＤ記憶部１０７へ圧縮データを保存する。
【００１７】
保存されているデータを再度メモリへ展開する場合はその逆処理を行う。ＰＤＬのデータをメモリへ書き込む場合を説明する。図２では図示していないが、図１にてネットワーク１０４から送られてきたＰＤＬデータをＣＰＵ１０５にてインタープリットしメモリ１０６へディスプレイリストに変換後出力する。その後、メモリ１０６に格納されているディスプレイリストをレンダリング部２５１でラスタのＲＧＢ画像データへレンダリングを行い、圧縮部２５２にて画像圧縮処理を行う。その圧縮データをＤＭＡＣ２５３を介してメモリ１０６へ格納する。ＰＤＬ画像データをプリント、ネットワークへ送信、保存する場合はスキャンデータのそれと同様の処理を行うことで実現する事が可能になる。
【００１８】
［圧縮処理］
以降では本実施例の特徴となるラスタ画像データの圧縮部の詳細に関して説明を行う。まずページ単位のラスタ画像から２×２画素のブロックを抽出し、そのブロック単位でデータの圧縮を行う。処理の説明の前に、２×２の４画素データ中に占める色数に応じてその組み合わせの場合の数を考える。画素数が４画素なので、そこに占める色数は最大４色になり、ブロック内でたかだか１〜４色の組み合わせしか存在しない。それら４色のパターンのとりうる組み合わせの場合の数を、図３を用いて説明する。
【００１９】
まずブロック内が１色の場合、４画素が同色で構成されている事になるので、その組み合わせは１通りである。次にブロック内が２色の場合を考える。２色が４画素内へレイアウトされる場合の数は、左上の画素の色を第１色、他方を第２色として考えると、左上以外残りの３画素へ第１色もしくは第２色が入るので、４画素同色の場合を除くと、全部で７通りの組み合わせが考えられる。次にブロック内が３色の場合を考える。３色が４画素内へレイアウトされる場合の数は、３色のうち１色だけ２度使われる場合の数と言い換える事が可能で、４画素の座標のうち、２画素が同じ色になる場合の数を求めれば良い。つまり３色の場合の数は、４つの座標から２つの座標を取る組み合わせとなり、全部で６通りとなる。最後にブロック内が４色の場合は１色の場合と同様１パターンしか存在しない。
【００２０】
これら１〜４色すべての場合の数を合計すると全部で１５通りのパターンが考えられる。これらすべてのパターンを識別するためにフラグを付与すると、データ量としては４ｂｉｔ必要となる。図示すると図４のようになり、以降この配置情報を示すフラグをパターンフラグと呼ぶ。
【００２１】
２ｘ２画素のブロックの入力データと出力データの関係を図５に示す。図３に示したようにブロックに含まれる色数により、圧縮後における出力データとしてのデータ量は異なる。ブロックが１色から構成されていればパターンフラグ（４ｂｉｔ）と１色分の色情報（ＲＧＢ各８ｂｉｔ）で２８ｂｉｔのデータ量となり、４色から構成されていれば、パターンフラグ（４ｂｉｔ）と４色分の色情報（ＲＧＢ各８ｂｉｔ×4）で１００ｂｉｔのデータ量となる。
【００２２】
また、圧縮されたデータに対しメモリ空間上で格納される構成について図６に示す。メモリ空間上では、圧縮後のデータをそれぞれ種類ごとに分類して格納する。ここでの種類とは、パターンフラグ、ブロック内における第１色、ブロック内における第１色以外の色（第２、３、４色）である。なお、第１色とは、ブロック内の所定の位置にある画素の値（ＲＧＢ）を指し、ここではブロックの左上の画素の値とする。図６に示すように、データを保持し、圧縮した状態でも各画素の値およびその配置の情報を取得することができる。
【００２３】
［尾引き対策処理］
上記のように２×２画素の取りうる組み合わせを踏まえて、画像処理部２１２にて行われる尾引き対策処理フローを説明する。入力としては、例えばＲＧＢそれぞれ８ｂｉｔの２５６階調を持っており、またデータとしては８ｂｉｔデータの点順次で１画素あたり２４ｂｉｔデータとして説明を行う。図１５（Ａ）のようなラスタ画像データの場合、圧縮後のデータは図１６に示す符号データとなる。左上の４×４の画素が座標（０、０）となり、その下の４×４画素が、座標（１、０）となる。また、本処理フローは例えばメモリ１０６等に格納されたプログラムをＣＰＵ１０５が読み出し、実行するものである。
【００２４】
図７は第一の実施形態での尾引き対策処理を示すフローチャートである。まず、対象位置をラスタ画像データ上の原点（本実施形態では左下とする。図１６の座標とは異なる。）に置く（Ｓ1０１）。対象位置にある２×２画素ブロックのライン判定処理を行う（Ｓ１０２）。ライン判定処理では、走査する方向である上下方向の太さをカウントして所定の太さからなる同一の値を有する画素の連続した領域があるか否かを判定する（Ｓ１０３）。ここでは、ブロックのサイズよりも大きな領域を、所定の太さと定義して尾引き対策処理を行う。所定の太さとは３もしくは４画素とする。つまり、カウンタの値が３もしくは４であれば、複数の画素からなり、所定の太さを有する画素の領域があると判定する。カウンタについては、以下のライン判定処理において述べる。所定の太さからなる画素の領域があると判定したら（Ｓ１０３にてＹＥＳ）、当該領域の下から２画素目で左から２画素目に位置する画素に対して間引き処理を行う（Ｓ１０４）。
【００２５】
ライン判定処理及び間引き処理後、Ｙ方向の終了位置（画像データの上端）でなければ（Ｓ１０５にてＮＯ）、対象位置を上に１ブロック分移動して（Ｓ１０７）、次のライン判定処理を行うためにＳ１０２へ戻る。もし対象位置が上端であれば（Ｓ１０５にてＹＥＳ）、Ｘ方向の終了位置（画像データの右端）か否かを判定する（Ｓ１０６）。対象位置が右端でなければ（Ｓ１０６にてＮＯ）、対象位置を１ブロック分右に移動させ（Ｓ１０８）、次のライン判定処理を行うためにＳ１０２へ戻る。もし対象位置が右端の場合は（Ｓ１０６にてＹＥＳ）、尾引き対策処理を終了する。この尾引き対策処理によって、図１５（Ａ）のようなラスタ画像データを入力とすると、図１５（Ｂ）で示すラスタ画像データとなる。また、図１５（Ｂ）に対応する符号データを図１７に示す。以下により詳細な処理の内容について説明する。
【００２６】
［ライン判定処理］
図８は、本実施形態に係るライン判定処理を示すフローチャートである。ここで、ラインとして、同一の画素値からなる連続した領域の矩形を検出する。ライン判定処理は画像処理部２１２にて行う。ライン判定処理において、ラインの太さが確定したことを示すライン太さ確定フラグと、ラインの太さをカウンタするカウンタをメモリ１０６に設ける。ライン太さ確定フラグは初期値を“ＦＡＬＳＥ”として、ブロックの対象位置を右に移動させる度に“ＦＡＬＳＥ”に設定しなおす。また、カウンタは初期値を０として、ブロックの対象位置を右に移動させる度に０に設定しなおす。ここでカウンタは、同一の画素値を有する連続した画素の数を示す。なお、本実施形態では、下端から上端に向けて順次処理を行っている。ここで、処理を簡略化するために、連続した領域の左端における右の２画素が同一の画素値を有するブロック（パターンフラグ“３”“４”“Ｃ”）や右端における左の２画素が同一の画素値を有するブロック（パターンフラグ“３”“６”“８”）については、太さを検出する対象としていない。しかし、ブロックに対する処理の向き等を踏まえ、上記のパターンフラグを有するブロックについても太さを判定するブロックとして扱っても良い。
【００２７】
まず、ライン判定処理が開始したら、ライン太さ確定フラグを参照する（Ｓ２０１）。この値が“ＴＲＵＥ”であれば（Ｓ２０２にてＹＥＳ）、カウンタを０にする（Ｓ２０３）。次に、対象ブロックが黒１色で構成されているか否かを判定する黒一色判定処理を行う（Ｓ２０４）。この黒一色判定処理で対象ブロックが黒１色で構成されていると判定されたら（Ｓ２０５にてＹＥＳ）、カウンタを２加算する（Ｓ２０６）。対象ブロックが黒１色で構成されていないと判定された場合（Ｓ２０５にてＮＯ）、ライン太さ確定フラグが“ＴＲＵＥ”であれば（Ｓ２０７にてＹＥＳ）、対象ブロックの上部が黒であるかを判定する上部黒判定処理を行う（Ｓ２０８）。対象ブロックの上部が黒と判定された場合（Ｓ２０９にてＹＥＳ）に、カウンタを１加算する（Ｓ２１０）。対象ブロックが黒１色で構成されているか、もしくは対象ブロックの上部が黒であれば（すなわち、Ｓ２０６もしくはＳ２１０の処理の後）、ライン太さ確定フラグを“ＦＡＬＳＥ”にセットする（Ｓ２１１）。そして、本処理フローを終了する。
【００２８】
対象ブロックが黒１色で構成されていないと判定された場合（Ｓ２０５にてＮＯ）に、ライン太さ確定フラグが“ＦＡＬＳＥ”であれば（Ｓ２０７にてＮＯ）、対象ブロックの下部が黒であるかを判定する下部黒判定処理を行う（Ｓ２１２）。対象ブロックの下部が黒と判定された場合（Ｓ２１３にてＹＥＳ）、カウンタを１加算する（Ｓ２１４）。対象ブロックが黒１色で構成されていない（Ｓ２０５にてＮＯ）、かつ、対象ブロックの上部が黒でなければ（Ｓ２０９にてＮＯ）、ライン太さ確定フラグを“ＴＲＵＥ”にセットする（Ｓ２１５）。同様に、Ｓ２１３にてＮＯもしくはＳ２１４の処理の後、ライン太さ確定フラグを“ＴＲＵＥ”にセットする（Ｓ２１５）。その後、本処理フローを終了する。上記のように、ライン判定処理は、２×２画素ブロックの符号データを参照して、ライン太さ確定フラグとカウンタを更新する。
【００２９】
［黒一色判定処理］
図９は、本実施形態に係る対象ブロックが黒一色で構成されているかを判定する処理を示すフローチャートである。黒一色判定処理は画像処理部２１２にて行う。まず、黒一色判定処理が開始したら、対象ブロックのパターンフラグを参照する（Ｓ３０１）。パターンフラグの値が“０”であれば（Ｓ３０２にてＹＥＳ）、対象ブロックの第１色の色値を参照する（Ｓ３０３）。対象ブロックの第１色の色値が黒であれば（Ｓ３０４にてＹＥＳ）、対象ブロックが黒１色で構成されていると判定する（Ｓ３０５）。パターンフラグが“０”でない（Ｓ３０２にてＮＯ）、もしくは、色値が黒で無ければ（Ｓ３０４にてＮＯ）、対象ブロックは黒一色ではないと判定し、本処理フローを終了する。上記のように、黒一色判定処理は、２×２画素ブロックが黒１色で構成されているか否かを判定する。
【００３０】
［上部黒色判定処理］
図１０は、本実施形態に係る対象ブロックの上部が黒で構成されているかを判定する第１の処理を示すフローチャートである。上部黒色判定処理は画像処理部２１２にて行う。まず、上部黒色判定処理が開始したら、対象ブロックのパターンフラグを参照する（Ｓ４０１）。パターンフラグの値が“５”“６”“７”“Ｄ”のいずれかであれば（Ｓ４０２にてＹＥＳ）、対象ブロックの第１色の色値を参照する（Ｓ４０３）。対象ブロックの第１色の色値が黒であれば（Ｓ４０４にてＹＥＳ）、対象ブロックの上部が黒色で構成されていると判定する（Ｓ４０５）。パターンフラグの値が“５”“６”“７”“Ｄ”以外であるか（Ｓ４０２にてＮＯ）、または色値が黒でない場合には（Ｓ４０４にてＮＯ）、対象ブロックの上部は黒色でないと判定し、本処理フローを終了する。上記のように、上部黒色判定処理は、２×２画素ブロックの上部が黒色で構成されているか否かを判定する。
【００３１】
［下部黒色判定処理］
図１１は、本実施形態に係る対象ブロックの下部が黒で構成されているかを判定する第２の処理を示すフローチャートである。下部黒色判定処理は画像処理部２１２にて行う。まず、下部黒色判定処理が開始したら、対象ブロックのパターンフラグを参照する（Ｓ５０１）。パターンフラグの値が“１”であれば（Ｓ５０２にてＹＥＳ）、対象ブロックの第１色の色値を参照する（Ｓ５０３）。対象ブロックの第１色の色値が黒であれば（Ｓ５０４にてＹＥＳ）、対象ブロックの下部が黒色で構成されていると判定する（Ｓ５１１）。また、対象ブロックのパターンフラグが“４”“７”のいずれかであれば（Ｓ５０５にてＹＥＳ）、対象ブロックの第２色の色値を参照する（Ｓ５０６）。対象ブロックの第２色の色値が黒であれば（Ｓ５０７にてＹＥＳ）、対象ブロックの下部が黒色で構成されていると判定する（Ｓ５１１）。最後に、対象ブロックのパターンフラグが“Ａ”であれば（Ｓ５０８にてＹＥＳ）、対象ブロックの第３色の色値を参照する（Ｓ５０９）。対象ブロックの第３色の色値が黒であれば（Ｓ５１０にてＹＥＳ）、対象ブロックが下部が黒色で構成されていると判定する（Ｓ５１１）。パターンフラグの値が“１”“４”“７”“Ａ”の何れでもない（Ｓ５０８にてＮＯ）、もしくはパターンフラグの値が“１”“４”“７”“Ａ”であっても、下部に位置する画素の値が黒色で無い場合（Ｓ５０４、Ｓ５０７、Ｓ５１０のいずれかにてＮＯ）には、下部は黒色でないと判定する。そして、本処理フローを終了する。上記のように、下部黒色判定処理は、２×２画素ブロックの下部が黒色で構成されているか否かを判定する。
【００３２】
［間引き処理］
図１２は、本実施形態に係る間引き処理のフローを示すフローチャートである。間引き処理は画像処理部２１２にて行う。まず、間引き処理が開始したら、対象ブロックのフラグを参照する（Ｓ６０１）。パターンフラグの値が“０”であれば（Ｓ６０２にてＹＥＳ）、カウンタの値を参照し、太さの判定を行う（Ｓ６０３）。カウンタの値が“３”であれば（Ｓ６０３にてＹＥＳ）、パターンフラグを“６”に書き換える（Ｓ６０４）。パターンフラグ“６”は２色で構成されているので、第２色の色値を白として加える（Ｓ６０５）。ここで、白色を示す画素データは図６に示すメモリ空間の第２、３、４色格納部の対応する位置に格納されることとなる。そして、本処理フローを終了する。対象ブロックのパターンフラグが“０”でない（Ｓ６０２にてＮＯ）、もしくはパターンフラグが“０”であってもカウンタの値が“３”でなければ（Ｓ６０３にてＮＯ）、対象ブロックを１ブロック下の位置のブロックに移動させる（Ｓ６０６）。ここで、カウンタの値が“３”でない場合とは、カウンタの値が“４”であることを意味する。そして、移動後の対象ブロックのパターンフラグを“１”に書き換える（Ｓ６０７）。そして、第２色の色値を白とし、その画素値を加える（Ｓ６０８）。ここで、白色を示す画素データは図６に示すメモリ空間の第２、３、４色格納部の対応する位置に格納されることとなる。
【００３３】
最後に、対象ブロックの位置を１ブロック上の位置のブロックに移動させる（Ｓ６０９）。そして、本処理フローを終了する。上記のように、間引き処理は、所定の太さ以上の太さを有する画素の領域（ブロック）において、下から２画素目で右から２画素目にあたる画素の位置の画素値（色値）を書き換えることで実現している。図１５（Ａ）に示す入力データに対する処理結果は図１５（Ｂ）に示すとおりである。
【００３４】
なお、本実施形態において、黒色を対象として処理を行っているが、異なる色に対して本処理を適用しても良い。また、本実施形態では符号化された画像データに対し、原点を左下として右上端に向かって処理を進めたが、これに限定されるものではなく、原点および処理の方向は必要に応じて変更してもよい。この場合、間引き処理（図１２）において変換するパターンフラグの値を変更する必要があることは、言うまでもない。また、尾引き対策処理において、値を変換する画素の値は、下から２画素目で右から２画素目にあたる画素の位置に限定されるわけではない。つまり、出力される画像に影響を与えず、尾引きを防止可能な位置であれば別の画素でもかまわない。
【００３５】
以上のような構成をとることで、圧縮データを伸長することなく、尾引き対策処理を行うことが可能である。このことにより、メモリ容量やメモリバス帯域の節約が可能になる。また、尾引き対策のための圧縮データの伸長処理が不要になるので、処理負荷も削減することが可能になる。
【００３６】
＜第二の実施形態＞
本実施形態では第一の実施形態で述べた尾引き対策処理の間引き処理に関して別実施形態を説明する。尾引き対策処理は、前述したように画像中の主走査方向のラインを検出し、ライン下部を間引く画像処理を行っている。定着時のトナーの爆発及び飛び散りを防ぐには、間引き処理ではなく、減色処理を行うことによって、トナーの載り量を抑えることでも、同様の効果が得られる。そこで第一の実施形態で述べた尾引き対策処理方法の間引き処理を、減色処理に置き換えた方法に関して説明する。
【００３７】
［尾引き対策処理］
図１３は、第二の実施形態での尾引き対策処理を示すフローチャートである。本処理フローは例えばメモリ１０６等に格納されたプログラムをＣＰＵ１０５が読み出し、実行するものである。まず、対象位置をラスタ画像データ上の原点（本実施形態では左下とする）に置く（Ｓ７０１）。対象位置にある２×２画素ブロックのライン判定処理を行う（Ｓ７０２）。上下方向を太さとして、ライン判定処理により所定の太さからなる画素の連続した領域があるか否かを判定する（Ｓ７０３）。ここでは、所定の太さを３もしくは４とする。つまり、カウンタの値が３もしくは４であれば、所定の太さからなる画素の領域があると判定する。所定の太さからなる画素の領域があると判定したら（Ｓ７０３にてＹＥＳ）、当該領域の下から２画素目に位置する２画素に対して減色処理を行う（Ｓ７０４）。ライン判定処理及び減色処理後、Ｙ方向の終了位置（画像データの上端）で無ければ（Ｓ７０５にてＮＯ）、対象ブロックの位置を上に１ブロック分移動させ（Ｓ７０７）、次のライン判定処理を行うためにＳ７０２へ戻る。もし対象位置が上端であれば（Ｓ７０５にてＹＥＳ）、Ｘ方向の終了位置（画像データの右端）か否かを判定する（Ｓ７０６）。対象位置が右端でなければ（Ｓ７０６にてＮＯ）、対象位置を１ブロック分右の下端に移動させ（Ｓ７０８）、次のライン判定処理を行うためにＳ７０２へ戻る。もし対象位置が右端の場合は（Ｓ７０６にてＹＥＳ）、尾引き対策処理を終了する。この尾引き対策処理によって、図１５（Ａ）のようなラスタ画像データを入力とすると、図１５（Ｃ）で示すラスタ画像データとなる。図１５（Ｃ）に対応する符号データを図１８に示す。
【００３８】
［減色処理］
図１４は、本実施形態に係る減色処理のフローを示すフローチャートである。減色処理は画像処理部２１２にて行う。まず、減色処理が開始したら、対象ブロックのフラグを参照する（Ｓ８０１）。パターンフラグの値が“０”であれば（Ｓ８０２にてＹＥＳ）、カウンタの値を参照し、太さの判定を行う（Ｓ８０３）。カウンタの値が“３”であれば（Ｓ８０３にてＹＥＳ）、パターンフラグを“７”に書き換える（Ｓ８０４）。パターンフラグ“７”は２色で構成されているので、第２色の色値をグレーとして加える（Ｓ８０５）。ここで、グレーを示す画素データは図６に示すメモリ空間の第２、３、４色格納部の対応する位置に格納されることとなる。そして、本処理フローを終了する。
【００３９】
対象ブロックのパターンフラグが“０”でない（Ｓ８０２にてＮＯ）、もしくはパターンフラグが“０”であってもカウンタの値が“３”でなければ（Ｓ８０３にてＮＯ）、対象ブロックの位置を１ブロック下に移動させる（Ｓ８０６）。そして、移動後の対象ブロックのパターンフラグを“７”に書き換える（Ｓ８０７）。その上、第１色の色値をグレーの画素値に書き換える（Ｓ８０８）。さらに、第２色の色値を黒として加える（Ｓ８０９）。ここで、グレーを示す画素データは図６に示すメモリ空間の第１色格納部の対応する位置に、黒い色を示す画素データはメモリ空間の第２、３、４色格納部の対応する位置に格納されることとなる。最後に、対象ブロックの位置を１ブロック上に移動させる（Ｓ８１０）。そして、本処理フローを終了する。上記のように、減色処理は、ラインと判定された２×２画素ブロックから、黒色部分の下から２ライン目にあたる部分の画素の色値を書き換えることで実現する。
【００４０】
なお、本実施形態において、書き換える色を黒色からグレーとして処理を行っているが、異なる色を用いて本処理を適用しても良い。また、色値を置き換える画素の場所についても上記位置に限定されるものではなく、色値を置き換えることにより尾引きを防止する効果を望める画素であれば、その位置の画素を対象として色値の変換を行っても良い。
【００４１】
以上のような構成をとることで、圧縮データを伸長することなく、尾引き対策処理を行うことが可能である。このことにより、メモリ容量やメモリバス帯域の節約が可能になる。また、尾引き対策のための圧縮データの伸長処理が不要になるので、処理負荷も削減することが可能になる。
【００４２】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012010088.tif 000003
【図２】
2012010088.tif 000004
【図３】
2012010088.tif 000005
【図４】
2012010088.tif 000006
【図５】
2012010088.tif 000007
【図６】
2012010088.tif 000008
【図７】
2012010088.tif 000009
【図８】
2012010088.tif 000010
【図９】
2012010088.tif 000011
【図１０】
2012010088.tif 000012
【図１１】
2012010088.tif 000013
【図１２】
2012010088.tif 000014
【図１３】
2012010088.tif 000015
【図１４】
2012010088.tif 000016
【図１６】
2012010088.tif 000017
【図１７】
2012010088.tif 000018
【図１８】
2012010088.tif 000019
【図１５】
2012010088.tif 000020