(57)【要約】【課題】バーコード以外の印刷要素にバーコード用の補正が行われるのを抑制することを課題とする。【解決手段】画像形成装置１は、印刷対象とする画像のビットマップデータがライン単位に分割されたラインデータのうち電子写真記録プロセスの機構が搭載されたエンジンへの出力対象とするラインのラインデータを含む複数のラインデータを保持するラインバッファを参照して、ラインデータのうち黒に対応するドットがライン方向に連続する直線部を検出する処理と、複数のラインデータの間で直線部の始点または終点に対応するカラム位置をカラム方向に走査することにより得られるドットのパターンがいずれも白に対応するドットである直線部をバーコード領域として検出する処理と、バーコード領域にバーコード用の補正を行う処理とを実行する。【選択図】図１
2018052088.tif 000002
【特許請求の範囲】
【請求項１】
印刷対象とする画像のビットマップデータがライン単位に分割されたラインデータのうち電子写真記録プロセスの機構が搭載されたエンジンへの出力対象とするラインのラインデータを含む複数のラインデータを保持するラインバッファと、
前記ラインデータのうち黒に対応するドットがライン方向に連続する直線部を検出する第１検出部と、
前記複数のラインデータの間で前記直線部の始点または終点に対応するカラム位置をカラム方向に走査することにより得られるドットのパターンがいずれも白に対応するドットである直線部をバーコード領域として検出する第２検出部と、
前記バーコード領域にバーコード用の補正を行う補正部と、
を有することを特徴とする画像形成装置。
【請求項２】
前記第１検出部は、前記ラインバッファに保持された複数のラインデータをカラム方向に走査することにより得られたドットのパターンが所定のパターンと一致する状態がライン方向に向かって継続するドットの区間を前記エンジンへの出力対象とするラインにおける直線部として検出することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記複数のラインデータは、前記エンジンへの出力対象とするラインと、当該ラインとカラム方向に隣接する前後のラインのラインデータとを含むことを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
前記第１検出部、前記第２検出部および前記補正部がデジタル回路により実装されることを特徴とする請求項１、２または３に記載の画像形成装置。
【請求項５】
印刷対象とする画像のビットマップデータがライン単位に分割されたラインデータのうち電子写真記録プロセスの機構が搭載されたエンジンへの出力対象とするラインのラインデータを含む複数のラインデータを保持するラインバッファを参照して、前記ラインデータのうち黒に対応するドットがライン方向に連続する直線部を検出する処理と、
前記複数のラインデータの間で前記直線部の始点または終点に対応するカラム位置をカラム方向に走査することにより得られるドットのパターンがいずれも白に対応するドットである直線部をバーコード領域として検出する処理と、
前記バーコード領域にバーコード用の補正を行う処理と、
をコンピュータに実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
バーコードの印刷品質および読取精度には関連がある。例えば、インクジェットプリンタによりバーコードを含む画像データが印刷される場合、インク等の滲みが原因となってバーコードの直線部分がぼやけることがある。このようにバーコードの印刷品質が下がると、バーコードの読取精度も低下する場合がある。このことから、バーコードの印刷品質の低下を抑制するために、バーコードの直線部を細線化する補正が実施される場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−４９７７４号公報
【特許文献２】特開２００３−１３６７８５号公報
【特許文献３】特開２００２−３３９２３号公報
【特許文献４】特開２００８−２０１０５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の技術では、バーコード以外の印刷要素にバーコード用の補正が行われる場合がある。
【０００５】
すなわち、プリンタがホストから受信する画像データには、バーコードの他にも、文字や罫線等の印刷要素にも直線部が含まれる。それにもかかわらず、これらがまとめて補正される場合、バーコード以外の印刷要素にかすれ等が生じてしまう。
【０００６】
１つの側面では、本発明は、バーコード以外の印刷要素にバーコード用の補正が行われるのを抑制できる画像形成装置及び画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
一態様では、画像形成装置は、印刷対象とする画像のビットマップデータがライン単位に分割されたラインデータのうち電子写真記録プロセスの機構が搭載されたエンジンへの出力対象とするラインのラインデータを含む複数のラインデータを保持するラインバッファと、前記ラインデータのうち黒に対応するドットがライン方向に連続する直線部を検出する第１検出部と、前記複数のラインデータの間で前記直線部の始点または終点に対応するカラム位置をカラム方向に走査することにより得られるドットのパターンがいずれも白に対応するドットである直線部をバーコード領域として検出する第２検出部と、前記バーコード領域にバーコード用の補正を行う補正部と、を有する。
【発明の効果】
【０００８】
バーコード以外の印刷要素にバーコード用の補正が行われるのを抑制できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１に係る画像形成装置の構成的構成を示すブロック図である。
【図２】図２は、電子写真記録プロセスの一例を示す図である。
【図３】図３は、バーコード用の補正の一例を示す図である。
【図４】図４は、バーコード用の補正の一例を示す図である。
【図５】図５は、ビデオインタフェースシーケンスの一例を示す図である。
【図６】図６は、実施例１に係るビデオコントローラの内部構成を示す機能ブロック図である。
【図７】図７は、第１のラインバッファ及び第２のラインバッファに保持されるラインデータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して本願に係る画像形成装置及び画像処理プログラムについて説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１１】
［画像形成装置の機能的構成］
図１は、実施例１に係る画像形成装置の構成的構成を示すブロック図である。図１に示すように、画像形成装置１は、図示しないホストから供給されるデータにしたがって印刷データをエンジン５へ送出するコントローラ３と、印刷用の機構が搭載されたエンジン５とを有する。なお、図１には、記録媒体上に画像を形成する画像形成装置の一形態として、ホストから伝送されるデータを用いるプリンタの例を示したが、これはあくまで一例であり、原稿がスキャンされたデータを用いるコピー機であってもよいし、複合機であってもかまわない。
【００１２】
コントローラ３には、外部Ｉ／Ｆ（interface）コネクタ７と、メモリ８と、ＭＰＵ（Micro  Processor  Unit）９とが搭載される。
【００１３】
メモリ８は、データを記憶するデバイスである。メモリ８は、一例として、ＲＡＭ（Random  Access  Memory）を始めとする半導体メモリ素子によって実装することができる。例えば、メモリ８は、ホストから受信したデータ、例えば１ページ分の画像のビットマップデータを一時的に退避したり、メモリ８に記憶された１ページ分の画像のビットマップデータをライン単位でエンジン５へ出力するのに用いたりする。以下、１ページ分の画像のことを「ページ画像」と記載し、ページ画像のビットマップデータのうち１ラインのデータのことを「ラインデータ」と記載すると共に、ラインデータのうち１ドットのデータのことを「画素データ」と記載する場合がある。
【００１４】
ＭＰＵ９は、コントローラ３の全体制御を行うデバイスであり、例えば、外部Ｉ／Ｆコネクタ７を介して受信するデータをエンジン５へ出力するための制御を実施する。
【００１５】
図１に示すＭＰＵ９は、外部Ｉ／Ｆコントローラ９Ａと、プロセッサコア９Ｂと、メモリコントローラ９Ｃと、バスコントローラ９Ｄとを有する。
【００１６】
プロセッサコア９Ｂは、演算処理を行う論理回路や１次キャッシュなどが実装されるＭＰＵ９のコアである。図１には、１つのコアが示されているが、ＭＰＵ９に２以上の複数のプロセッサコアが実装されることを妨げない。
【００１７】
メモリコントローラ９Ｃは、メモリ８に対するアクセスをコントロールするデバイスである。例えば、メモリコントローラ９Ｃは、メモリ８上のデータの読み出し、メモリ８へのデータの書き込みの他、メモリ８のリフレッシュなどを行う。
【００１８】
バスコントローラ９Ｄは、ＭＰＵ９内部のバス制御を行うコントローラである。例えば、バスコントローラ９Ｄは、ＤＭＡ（Direct  Memory  Access）等のデータ転送方式を用いて、メモリ８にページ単位で格納された原画像のビットマップデータをライン単位でビデオコントローラ１０へ転送することができる。
【００１９】
エンジン５には、一例として、図２に示す電子写真記録プロセスが採用される。なお、図２には、あくまで一例として、レーザー方式の電子写真記録プロセスが例示されているが、エンジン５にはインクジェット方式の電子写真記録プロセスを採用することもできる。
【００２０】
図２は、電子写真記録プロセスの一例を示す図である。図２に示す電子写真記録プロセスでは、感光ドラム５Ａを中心に、帯電、露光、現像、転写、定着およびクリーニングなどのプロセスを通じて画像が形成される。図２に示すように、エンジン５には、感光ドラム５Ａ、帯電部５Ｂ、露光部５Ｃ、現像部５Ｄ、転写部５Ｅ、定着機５Ｆおよびドラムクリーナ５Ｇなどが含まれる。
【００２１】
まず、帯電プロセスでは、帯電部５Ｂにより感光ドラム５Ａ上に一様の電荷が形成される。この帯電部５Ｂには、一例として、コロナ放電装置やローラ帯電装置等を用いることができる。続いて、露光プロセスでは、ビデオコントローラ１０からドット単位で送出される画素データにしたがって露光部５Ｃが感光ドラム５Ａのドット上にレーザーを露光することにより２次元の静電潜像が感光ドラム５Ａ上に形成される。この露光部５Ｃの露光光源には、一例として、レーザー光をポリゴンミラーにより走査するレーザービーム方式の他、ライン方向にわたって直線状にＬＥＤ（Light  Emitting  Diode）が配列されるＬＥＤ光源方式を採用することができる。その後、現像プロセスでは、現像部５Ｄにより静電潜像に色材、いわゆるトナーが付着される。続いて、転写プロセスでは、転写部５Ｅにより感光ドラム５Ａ上の潜像に付着されたトナーが用紙等の記録媒体に転写される。その上で、定着プロセスでは、定着機５Ｆがトナーを用紙に接着させることによりトナーが用紙に定着される。その後、クリーニングプロセスでは、ドラムクリーナ５Ｇにより感光ドラム５Ａの体表面のトナー及び汚染物質が除去される。これら帯電プロセス、露光プロセス、現像プロセス、転写プロセス、定着プロセス及びクリーニングプロセスにより、電子写真記録プロセスが実現される。
【００２２】
ビデオコントローラ１０は、露光部５Ｃにおけるレーザー光の出力を制御するコントローラである。
【００２３】
ここで、本実施例に係るビデオコントローラ１０は、印刷対象とするページ画像のビットマップデータに含まれる直線部からバーコード以外の印刷要素、例えば文字や罫線などを除外してバーコードに対応する領域を検出できる処理に優位性を有する。
【００２４】
すなわち、単純な直線検出、例えばエッジ検出などを行う場合、ページ画像から検出された直線部は、バーコードに対応する領域である可能性もあれば、文字や罫線などのバーコード以外の印刷要素に対応する領域であるおそれもある。以下では、ページ画像に含まれる直線部のうちバーコードに対応する領域のことを「バーコード領域」と記載する一方で、バーコード以外の印刷要素に対応する領域のことを「非バーコード領域」と記載する場合がある。
【００２５】
図３は、バーコード用の補正の一例を示す図である。図３の上側には、補正前のページ画像の一部が抜粋して示される一方で、図３の下側には、補正前のページ画像にバーコード用の補正、すなわち細線化が行われた後のページ画像の一部、すなわち補正前のページ画像の一部と同じ部分が示されている。図３に示すページ画像には、３つの直線部Ｌ１〜Ｌ３が含まれる例が示されている。これら３つの直線部Ｌ１〜Ｌ３のうち、直線部Ｌ１及び直線部Ｌ２がバーコード領域、すなわちバーコードの模様を形成する垂直方向の線分の一部である一方で、直線部Ｌ３が非バーコード領域であるものとして以下の説明を行う。以下では、バーコードの模様を形成する線分のことを「バーコード線」と記載する場合がある。
【００２６】
図３の上側に示すページ画像にエッジ検出等の直線検出が行われた場合、３つの直線部Ｌ１〜Ｌ３とも直線部として検出される。この場合、３つの直線部Ｌ１〜Ｌ３が細線化される。例えば、図３の下側に示す通り、３つの直線部Ｌ１〜Ｌ３のうちエッジの境界部分、すなわちハッチングで示された部分が除去される。このため、非バーコード領域である直線部Ｌ３まで細線化が行われる結果、直線部Ｌ３に文字や罫線のかすれ等の不具合が発生するおそれがある。
【００２７】
このことから、本実施例に係るビデオコントローラ１０は、バーコードの模様を形成する線分が直線部のエッジ（端面）について長方形の形、すなわち凹凸が存在しない直線状となるという知見の下、非バーコード領域を除外してバーコード領域を検出する。すなわち、ビデオコントローラ１０は、ページ画像のビットマップデータから検出された直線部を形成するエッジの境界線に凹凸が存在せず、かつエッジの終端部が矩形の角形状に対応する直線部をバーコード領域として検出する。
【００２８】
図４は、バーコード用の補正の一例を示す図である。図４の上側には、補正前のページ画像の一部（図３と同様）が抜粋して示される一方で、図４の下側には、補正前のページ画像にバーコード用の補正、すなわち細線化が行われた後のページ画像の一部、すなわち補正前のページ画像の一部と同じ部分が示されている。図４に示すページ画像にも、図３と同様、３つの直線部Ｌ１〜Ｌ３が含まれる例が示されている。これら３つの直線部Ｌ１〜Ｌ３のうち、直線部Ｌ１及び直線部Ｌ２がバーコード領域、すなわち垂直方向のバーコード線である一方で、直線部Ｌ３が非バーコード領域である点も図３と同様であるとして以下の説明を行う。
【００２９】
図４の上側に示すページ画像に上記のバーコード検出が行われる場合、直線部Ｌ１及び直線部Ｌ２がバーコード領域として検出される一方で、直線部Ｌ３が非バーコード領域として除外される。例えば、直線部Ｌ１を形成するエッジの境界線Ｅ１には、凹凸が存在しない。また、直線部Ｌ１を形成するエッジの終端部Ｃ１の形状が矩形の角形状に対応する。さらに、直線部Ｌ２の場合も直線部Ｌ１のケースと同様に、直線部Ｌ２を形成するエッジの境界線Ｅ２には、凹凸が存在しない。また、直線部Ｌ２を形成するエッジの終端部Ｃ２の形状が矩形の角形状に対応する。一方、直線部Ｌ３を形成するエッジの境界線Ｅ３には、凹凸が存在しない。ところが、直線部Ｌ３を形成するエッジの終端部Ｃ３は、直角ではあるが、角によって形成される直角ではなく、隅によって形状される直角であるので、矩形の角形状には対応しない。よって、直線部Ｌ３はバーコード領域として検出されない。
【００３０】
この結果、図４の下側に示す通り、３つの直線部Ｌ１〜Ｌ３のうち、直線部Ｌ１及び直線部Ｌ２に絞って細線化される。例えば、図４の下側に示す通り、直線部Ｌ１及び直線部Ｌ２のエッジの境界部分、すなわちハッチングで示された部分が除去される。それ故、バーコード領域である直線部Ｌ１及び直線部Ｌ２には、バーコード用の補正、例えば細線化が行われる一方で、非バーコード領域である直線部Ｌ３にバーコード用の補正が行われるのを抑制できる。したがって、直線部Ｌ３に文字や罫線のかすれ等の不具合が発生するのも抑制できる。
【００３１】
［ビデオインタフェース］
図５は、ビデオインタフェースシーケンスの一例を示す図である。図５には、ビデオコントローラ１０およびエンジン５のインタフェースシーケンスが示されている。図５に示すように、エンジン５で用紙が印刷位置に搬送された後、露光部５Ｃによりレーザー光が検出されたタイミングがビーム光検出信号としてビデオコントローラ１０へ出力される。一方、ビデオコントローラ１０は、エンジン５から出力されるビーム光検出信号を用紙搬送のタイミングとして受け取り、水平同期信号（／Ｈｓｙｎｃ）をアサートする。そして、ビデオコントローラ１０は、水平同期信号（／Ｈｓｙｎｃ）がアサートされた時点からドット数のカウントを開始し、印刷開始位置まで到達した段階で、ページ画像のラインデータがドット単位にラスタライズされた画素データをエンジン５へ出力する。
【００３２】
［ビデオコントローラ１０の内部構成］
図６は、実施例１に係るビデオコントローラ１０の内部構成を示す機能ブロック図である。図６に示すビデオコントローラ１０は、ドットカウンタ１１、第１のラインバッファ１２、第２のラインバッファ１３、シリアル変換部１４及びバーコード検出部１５などの機能部を有する。
【００３３】
ドットカウンタ１１は、ドット数を計数するカウンタである。
【００３４】
第１のラインバッファ１２及び第２のラインバッファ１３は、いずれもラインデータを保持するバッファであるが、その用途は互いに異なる。すなわち、第２のラインバッファ１３には、エンジン５にドット単位で画素データを送出するためにラインデータがバッファリングされる。一方、第１のラインバッファ１２は、バーコード領域を検出するために、第２のラインバッファ１３の前段に配置されるバッファである。例えば、エンジン５に送出するラインを「ｎライン」としたとき、第１のラインバッファ１２には、ｎラインを含む複数のラインのラインデータがバッファリングされる。
【００３５】
シリアル変換部１４は、第１のラインバッファ１２に保持されたラインデータにシリアル変換を行う機能部である。このようなシリアル変換によって、ビデオコントローラ１０からエンジン５へ画素データが出力されることになる。
【００３６】
バーコード検出部１５は、バーコード領域の検出およびバーコード用の補正を行う機能部である。詳細は図７を用いて後述するが、バーコード検出部１５は、第１のラインバッファ１２に保持された複数のラインデータを参照して、エッジの境界線にライン方向と直交するカラム方向の凹凸がない直線部の検出に用いる「直線検出信号」と、直線部の中からバーコード領域を検出するのに用いる「バーコード検出信号」の２つの内部信号を生成することにより、バーコード領域を検出する。なお、上記の「ライン方向」とは、ページ画像の主走査が行われる水平方向を指し、上記の「カラム方向」とは、ページ画像の副走査が行われる垂直方向を指すこととする。
【００３７】
［印刷データ出力までの流れ］
次に、ビデオコントローラ１０からエンジン５へ印刷データが出力されるまでの一連の流れについて説明する。
【００３８】
（１）水平同期信号のアサート
エンジン５の印刷動作が開始すると、エンジン５で用紙が搬送される。これに同期してエンジン５で生成される水平同期信号（／Ｈｓｙｎｃ）がビデオコントローラ１０のドットカウンタ１１へ入力される。これにしたがって、ドットカウンタ１１で水平同期信号（／Ｈｓｙｎｃ）がアサートされる。
【００３９】
（２）ドット数のカウント開始
このように水平同期信号（／Ｈｓｙｎｃ）がアサートされた時点から、ドットカウンタ１１は、印刷開始位置までのドット数をカウントし、ラインデータの出力を開始するタイミングを第２のラインバッファ１３に指示する。
【００４０】
（３）第１のラインバッファのバッファリング
一方、メモリ８から第１のラインバッファ１２には、ＤＭＡによりページ画像のビットマップデータが転送される。この結果、第１のラインバッファ１２には、ページ画像のビットマップデータがライン単位でバッファリングされる。以下では、一例として、３ライン分のラインデータが第１のラインバッファ１２にバッファリングされる場合を想定して以下の説明を続ける。例えば、ビデオコントローラ１０がエンジン５に送出するラインが「ｎライン」としたとき、第１のラインバッファ１２には、ｎ−１ライン、ｎライン及びｎ＋１ラインの３ライン分のラインデータがバッファリングされる。
【００４１】
（４）副走査データの出力
その後、第１のラインバッファ１２にｎ−１ライン、ｎライン及びｎ＋１ラインの３ライン分のラインデータがバッファリングされた場合、次のような副走査データがバーコード検出部１５へ出力される。すなわち、第１のラインバッファ１２に保持されたｎ−１ライン、ｎライン及びｎ＋１ラインの３つのラインデータに対する副走査がカラムの先頭から順に行われる。これによって、第１のラインバッファ１２からバーコード検出部１５には、ｎ−１ライン、ｎライン及びｎ＋１ラインの３ラインの間で同一のカラムに位置する３つのドットの画素データが副走査されたシリアルデータ、すなわち上記の副走査データがカラムの先頭から順番に出力される。
【００４２】
（５）バーコード領域の検出およびバーコード用の補正
詳細は図７を用いて後述するが、バーコード検出部１５は、第１のラインバッファ１２から出力される副走査データをカラムの順番にしたがって参照することにより、バーコード領域の検出を行う。このとき、バーコード領域が検出された場合、バーコード検出部１５は、バーコード領域に対応するドットを白色にマスクする細線化を行うことにより、ｎラインのラインデータにバーコード用の補正を実施する。このようにバーコード用の補正が行われたｎラインのラインデータが第２のラインバッファ１３へ出力される。一方、バーコード領域が検出されない場合、バーコード用の補正は実施されない。すなわち、バーコード検出部１５は、第１のラインバッファ１２に保持されたｎラインのラインデータをそのまま第２のラインバッファ１３へ出力する。これによって、第２のラインバッファ１３にｎラインのラインデータがバッファリングされる。
【００４３】
（６）印刷データの出力
その後、第２のラインバッファ１３に保持されたｎラインのラインデータは、ドットカウンタ１１から出力される出力タイミングの指令にしたがってシリアル変換部１４へ出力信号Ｖｏｕｔとして出力される。続いて、シリアル変換部１４は、第２のラインバッファ１３から出力されたｎラインのラインデータにシリアル変換を行う。その上で、シリアル変換部１４は、ｎラインのラインデータがドット単位にシリアル変換された画素データを印刷データとして出力する。
【００４４】
［具体例］
次に、図７を用いて、バーコード領域の検出およびバーコード用の補正の具体例について説明する。図７は、第１のラインバッファ１２及び第２のラインバッファ１３に保持されるラインデータの一例を示す図である。図７には、ｎ−１ライン、ｎライン及びｎ＋１ラインの３つのラインデータが保持された第１のラインバッファ１２が示されている。このようにｎ−１ライン、ｎライン及びｎ＋１ラインの各ラインデータが第１のラインバッファ１２にバッファリングされることにより、全てのラインデータが有効となった場合、次のようにして副走査データがバーコード検出部１５へ出力される。すなわち、第１のラインバッファ１２からバーコード検出部１５には、ｎ−１ライン、ｎライン及びｎ＋１ラインの３ラインの間で同一のカラムに位置する３つのドットの画素データの副走査が行われた副走査データがカラムの先頭から順番に出力される。
【００４５】
ここで、以下では、ページ画像のビットマップデータにライン方向のバーコード線により模様が形成されるバーコードが含まれる場合を想定し、このバーコード線をバーコード領域として検出するために用いる直線検出信号およびバーコード検出信号のアサート条件およびネゲート条件を例示する。
【００４６】
（１）直線検出信号のアサート条件
例えば、直線検出信号のアサート条件の一例として、副走査データにおけるｎ−１ライン、ｎライン、ｎ＋１ラインの各ドットのパターンが「黒」＆「黒」＆「白」である状態が所定回数、例えば２回以上継続することが採用される。
【００４７】
（２）直線検出信号のネゲート条件
例えば、直線検出信号のネゲート条件の一例として、副走査データにおけるｎ−１ライン、ｎライン、ｎ＋１ラインの各ドットのパターンが「黒」＆「黒」＆「白」である状態が終了することが採用される。
【００４８】
（３）バーコード検出信号のアサート条件
例えば、バーコード検出信号のアサート条件の一例として、直線検出信号のネゲート条件の成立時に副走査データにおけるｎ−１ライン、ｎライン、ｎ＋１ラインの各ドットのパターンが「白」＆「白」＆「白」であることが採用される。
【００４９】
例えば、先頭の１カラム目の場合、ｎ−１ライン、ｎライン、ｎ＋１ラインの順に「白」＆「白」＆「白」のパターンが副走査データとして送出される。この場合、直線検出信号およびバーコード検出信号のいずれにおいてもアサート条件は満たされない。続いて、２カラム目の場合も、１カラム目の場合と同様になる。よって、直線検出信号およびバーコード検出信号のいずれにおいてもアサート条件は満たされない。
【００５０】
次に、３カラム目の場合、ｎ−１ライン、ｎライン、ｎ＋１ラインの順に「黒」＆「黒」＆「白」のパターンが副走査データとして送出される。この段階では、「黒」＆「黒」＆「白」のパターンが１回しか出現しておらず、「黒」＆「黒」＆「白」のパターンの継続回数は未だ１回であるので、直線検出信号のアサート条件は満たされない。
【００５１】
そして、４カラム目においても、３カラム目の場合と同様、ｎ−１ライン、ｎライン、ｎ＋１ラインの順に「黒」＆「黒」＆「白」のパターンが副走査データとして送出される。このように４カラム目の副走査データが送出された段階では、「黒」＆「黒」＆「白」のパターンの継続回数が２回となるので、直線検出信号のアサート条件が成立する。この場合、直線検出信号がアサートされることになる。その一方で、バーコード検出信号のアサート条件には、直線検出信号のネゲート条件の成立が条件となるので、バーコード検出信号はアサートされない。
【００５２】
その後、５カラム目から１６カラム目までは、ｎ−１ライン、ｎライン、ｎ＋１ラインの順に「黒」＆「黒」＆「白」のパターンが副走査データとして送出される。このため、直線検出信号は１６カラム目までアサートされたままとなる。
【００５３】
続いて、１７カラム目には、ｎ−１ライン、ｎライン、ｎ＋１ラインの順に「白」＆「白」＆「白」のパターンが副走査データとして送出される。このように１７カラム目に至って、「黒」＆「黒」＆「白」のパターンが終了するので、直線検出信号のネゲート条件が成立する。この結果、４カラム目の副走査データの送出後にアサートされた直線検出信号が１７カラム目の副走査データの送出後にネゲートされる。この直線検出信号のネゲート条件の成立に連動して、バーコード検出信号のアサート条件も成立する。なぜなら、直線検出信号のネゲート条件が成立したカラムのパターンが「白」＆「白」＆「白」であるからである。この結果、バーコード検出信号が１７カラム目に対応する１クロックだけアサートされる。
【００５４】
その後、２１カラム目の副走査データが出力された段階では、「黒」＆「黒」＆「白」のパターンの継続回数が２回となるので、直線検出信号のアサート条件が成立する。この場合、直線検出信号がアサートされることになる。そして、２３カラム目には、ｎ−１ライン、ｎライン、ｎ＋１ラインの順に「黒」＆「白」＆「白」のパターンが副走査データとして送出される。このように２３カラム目に至って、「黒」＆「黒」＆「白」のパターンが終了するので、直線検出信号のネゲート条件が成立する。この結果、２１カラム目の副走査データの送出後にアサートされた直線検出信号が２３カラム目の副走査データの送出後にネゲートされる。ここで、２３カラム目では、直線検出信号のネゲート条件の成立によりバーコード検出信号のアサート条件の一部が満たされるが、直線検出信号のネゲート条件が成立したカラムのパターンが「白」＆「白」＆「白」ではないので、バーコード検出信号のアサート条件は成立しない。したがって、２３カラム目では、バーコード検出信号はアサートされない。
【００５５】
また、２５カラム目の副走査データが出力された段階では、「黒」＆「黒」＆「白」のパターンの継続回数が２回となるので、直線検出信号のアサート条件が成立する。この場合、直線検出信号がアサートされることになる。そして、２８カラム目には、ｎ−１ライン、ｎライン、ｎ＋１ラインの順に「黒」＆「黒」＆「黒」のパターンが副走査データとして送出される。このように２８カラム目に至って、「黒」＆「黒」＆「白」のパターンが終了するので、直線検出信号のネゲート条件が成立する。この結果、２５カラム目の副走査データの送出後にアサートされた直線検出信号が２８カラム目の副走査データの送出後にネゲートされる。ここで、２８カラム目では、直線検出信号のネゲート条件の成立によりバーコード検出信号のアサート条件の一部が満たされるが、直線検出信号のネゲート条件が成立したカラムのパターンが「白」＆「白」＆「白」ではないので、バーコード検出信号のアサート条件は成立しない。したがって、２８カラム目では、バーコード検出信号はアサートされない。
【００５６】
このように、ｎラインでは、図７に示す直線検出信号およびバーコード検出信号が生成される。その後、直線検出信号がアサートされたアサート期間のうちバーコード検出信号がアサートされたクロックを含むアサート期間がバーコード検出部１５により検出される。図７の例で言えば、３つのアサート期間が存在するが、１番目に出現する直線検出信号のアサート期間にはバーコード検出信号がアサートされたクロックが含まれる一方で、２番目および３番目に出現する直線検出信号のアサート期間にはバーコード検出信号がアサートされたクロックが含まれない。それ故、１番目に出現する直線検出信号のアサート期間に対応するドットの区間がバーコード領域として検出される。すなわち、直線検出信号がアサートされた５カラム目から継続回数に設定された２カラムを遡った３カラム目を開始とし、直線検出信号がネゲートされた１７カラム目の１つ前の１６カラム目を終了とするバーコード領域が検出される。このように検出されたバーコード領域は、バーコード検出部１５により白色にマスクされることにより、バーコード線の最下端のラインが削られる結果、バーコード線が細線化される。この結果、図７に示す通り、第２のラインバッファ１３には、ｎラインの補正後のラインデータとして、３カラム目から１６カラム目までの区間の黒画素が削られたラインデータがバッファリングされることになる。
【００５７】
［効果の一側面］
以上のように、本実施例に係るビデオコントローラ１０は、直線検出信号のアサート期間のうちバーコード検出信号がアサートされたクロックが含まれるアサート期間に対応するドットの区間をバーコード領域として検出する。これによって、ページ画像のビットマップデータから検出された直線部を形成するエッジの境界線に凹凸が存在せず、かつエッジの終端部が矩形の角形状に対応する直線部をバーコード領域として検出できる。それ故、非バーコード領域に対応する直線部がバーコード領域として誤検出されるのを抑制できる結果、非バーコード領域にバーコード用の補正が行われるのも抑制できる。
【００５８】
さらに、本実施例に係るビデオコントローラ１０では、バーコード領域の検出がデジタル回路によって実装される。それ故、バーコード領域の検出がソフトウェアによる情報処理により実現される場合よりも所要時間を短縮できる。
【００５９】
加えて、本実施例に係るビデオコントローラ１０では、バーコード領域の検出に用いられるラインデータをｎラインを含む前後の所定数のラインデータに限定できる。それ故、ページ画像のビットマップデータをメモリ上に展開してバーコード領域の検出を行う場合よりも、バーコード領域の検出に用いるメモリ規模を縮小できると共に、その所要時間も短縮できる。
【実施例２】
【００６０】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００６１】
［第１のラインバッファのライン数］
上記の実施例１では、ｎ−１ライン、ｎライン及びｎ＋１ラインの３つのラインデータが第１のラインバッファにバッファリングされる場合を例示したが、４つ以上のラインデータを第１のラインバッファにバッファリングさせることもできる。例えば、ｎ−１ライン、ｎライン、ｎ＋１ライン及びｎ＋２の４つのラインデータを第１のラインバッファにバッファリングさせる場合、直線検出信号のアサート条件およびネゲート条件のパターンを「黒」＆「黒」＆「黒」＆「白」に読み替えると共にバーコード検出信号のアサート条件を「白」＆「白」＆「白」＆「白」に読み替えることにより、３つのラインデータがバッファリングされる場合と同様にバーコード領域の検出を実施することができる。この場合、ｎラインの直線検出信号のアサート期間だけでなく、ｎ＋１ラインの直線検出信号のアサート期間も併せて白色にマスクすることにより、バーコード線の細線化を実現することもできる。
【００６２】
［垂直方向のバーコード線の検出］
上記の実施例１では、ページ画像のビットマップデータからライン方向のバーコード線をバーコード領域として検出する場合を例示したが、ページ画像のビットマップデータからカラム方向のバーコード線をバーコード領域として検出することもできる。この場合、カラムをラインに読み替える共にラインデータをカラムデータと読み替え、さらに、副走査データを主走査データと読み替えて９０度回転された想定で実施することにより、カラム方向のバーコード線をバーコード領域として検出することができる。さらに、カラム方向のバーコード線の長さと同等以上の高さを持つライン数のラインデータを第１のラインバッファにバッファリングさせることとすれば、バーコード領域に対応する直線部の終端が検出できない状態、すなわちバーコード検出信号がアサートされない状態も抑制できる。加えて、ライン方向のバーコード線およびカラム方向のバーコード線を並列して検出することもできる。この場合、ライン方向のバーコード線を検出する系列と、カラム方向のバーコード線を検出する系列とでラインバッファおよびバーコード検出部のペア並びにカラムバッファ及びバーコード検出部のペアを個別に設けることにより、並列処理を実現できる。
【００６３】
［プログラム］
上記の実施例１及び実施例２で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。例えば、画像形成装置１のＭＰＵ９がメモリ８のワークエリア上に、上記のバーコード領域の検出およびバーコード用の補正を実現するファームウェアをプロセスとして展開することにより、上記のバーコード検出部１５が有する機能を仮想的に実現することができる。この他、画像形成装置１とネットワークを介して接続されるサーバ装置に搭載されるＣＰＵ（Central  Processing  Unit）が当該ＣＰＵに接続されたＲＡＭのワークエリア上に、上記のバーコード領域の検出およびバーコード用の補正を実現する画像処理プログラムをプロセスとして展開することにより、サーバ装置が画像形成装置１に上記のバーコード検出部１５が有する機能を提供することもできる。
【符号の説明】
【００６４】
１    画像形成装置
３    コントローラ
５    エンジン
７    外部Ｉ／Ｆコネクタ
８    メモリ
９    ＭＰＵ
９Ａ  外部Ｉ／Ｆコントローラ
９Ｂ  プロセッサコア
９Ｃ  メモリコントローラ
９Ｄ  バスコントローラ
１０    ビデオコントローラ
１１    ドットカウンタ
１２    第１のラインバッファ
１３    第２のラインバッファ
１４    シリアル変換部
１５    バーコード検出部
【図１】
2018052088.tif 000003
【図２】
2018052088.tif 000004
【図３】
2018052088.tif 000005
【図４】
2018052088.tif 000006
【図５】
2018052088.tif 000007
【図６】
2018052088.tif 000008
【図７】
2018052088.tif 000009