JP2018052088A - 画像形成装置及び画像処理プログラム - Google Patents
画像形成装置及び画像処理プログラム Download PDFInfo
- Publication number
- JP2018052088A JP2018052088A JP2016194570A JP2016194570A JP2018052088A JP 2018052088 A JP2018052088 A JP 2018052088A JP 2016194570 A JP2016194570 A JP 2016194570A JP 2016194570 A JP2016194570 A JP 2016194570A JP 2018052088 A JP2018052088 A JP 2018052088A
- Authority
- JP
- Japan
- Prior art keywords
- line
- data
- barcode
- straight line
- line data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】バーコード以外の印刷要素にバーコード用の補正が行われるのを抑制することを課題とする。
【解決手段】画像形成装置1は、印刷対象とする画像のビットマップデータがライン単位に分割されたラインデータのうち電子写真記録プロセスの機構が搭載されたエンジンへの出力対象とするラインのラインデータを含む複数のラインデータを保持するラインバッファを参照して、ラインデータのうち黒に対応するドットがライン方向に連続する直線部を検出する処理と、複数のラインデータの間で直線部の始点または終点に対応するカラム位置をカラム方向に走査することにより得られるドットのパターンがいずれも白に対応するドットである直線部をバーコード領域として検出する処理と、バーコード領域にバーコード用の補正を行う処理とを実行する。
【選択図】図1
【解決手段】画像形成装置1は、印刷対象とする画像のビットマップデータがライン単位に分割されたラインデータのうち電子写真記録プロセスの機構が搭載されたエンジンへの出力対象とするラインのラインデータを含む複数のラインデータを保持するラインバッファを参照して、ラインデータのうち黒に対応するドットがライン方向に連続する直線部を検出する処理と、複数のラインデータの間で直線部の始点または終点に対応するカラム位置をカラム方向に走査することにより得られるドットのパターンがいずれも白に対応するドットである直線部をバーコード領域として検出する処理と、バーコード領域にバーコード用の補正を行う処理とを実行する。
【選択図】図1
Description
本発明は、画像形成装置及び画像処理プログラムに関する。
バーコードの印刷品質および読取精度には関連がある。例えば、インクジェットプリンタによりバーコードを含む画像データが印刷される場合、インク等の滲みが原因となってバーコードの直線部分がぼやけることがある。このようにバーコードの印刷品質が下がると、バーコードの読取精度も低下する場合がある。このことから、バーコードの印刷品質の低下を抑制するために、バーコードの直線部を細線化する補正が実施される場合がある。
しかしながら、上記の技術では、バーコード以外の印刷要素にバーコード用の補正が行われる場合がある。
すなわち、プリンタがホストから受信する画像データには、バーコードの他にも、文字や罫線等の印刷要素にも直線部が含まれる。それにもかかわらず、これらがまとめて補正される場合、バーコード以外の印刷要素にかすれ等が生じてしまう。
1つの側面では、本発明は、バーコード以外の印刷要素にバーコード用の補正が行われるのを抑制できる画像形成装置及び画像処理プログラムを提供することを目的とする。
一態様では、画像形成装置は、印刷対象とする画像のビットマップデータがライン単位に分割されたラインデータのうち電子写真記録プロセスの機構が搭載されたエンジンへの出力対象とするラインのラインデータを含む複数のラインデータを保持するラインバッファと、前記ラインデータのうち黒に対応するドットがライン方向に連続する直線部を検出する第1検出部と、前記複数のラインデータの間で前記直線部の始点または終点に対応するカラム位置をカラム方向に走査することにより得られるドットのパターンがいずれも白に対応するドットである直線部をバーコード領域として検出する第2検出部と、前記バーコード領域にバーコード用の補正を行う補正部と、を有する。
バーコード以外の印刷要素にバーコード用の補正が行われるのを抑制できる。
以下に添付図面を参照して本願に係る画像形成装置及び画像処理プログラムについて説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[画像形成装置の機能的構成]
図1は、実施例1に係る画像形成装置の構成的構成を示すブロック図である。図1に示すように、画像形成装置1は、図示しないホストから供給されるデータにしたがって印刷データをエンジン5へ送出するコントローラ3と、印刷用の機構が搭載されたエンジン5とを有する。なお、図1には、記録媒体上に画像を形成する画像形成装置の一形態として、ホストから伝送されるデータを用いるプリンタの例を示したが、これはあくまで一例であり、原稿がスキャンされたデータを用いるコピー機であってもよいし、複合機であってもかまわない。
図1は、実施例1に係る画像形成装置の構成的構成を示すブロック図である。図1に示すように、画像形成装置1は、図示しないホストから供給されるデータにしたがって印刷データをエンジン5へ送出するコントローラ3と、印刷用の機構が搭載されたエンジン5とを有する。なお、図1には、記録媒体上に画像を形成する画像形成装置の一形態として、ホストから伝送されるデータを用いるプリンタの例を示したが、これはあくまで一例であり、原稿がスキャンされたデータを用いるコピー機であってもよいし、複合機であってもかまわない。
コントローラ3には、外部I/F(interface)コネクタ7と、メモリ8と、MPU(Micro Processor Unit)9とが搭載される。
メモリ8は、データを記憶するデバイスである。メモリ8は、一例として、RAM(Random Access Memory)を始めとする半導体メモリ素子によって実装することができる。例えば、メモリ8は、ホストから受信したデータ、例えば1ページ分の画像のビットマップデータを一時的に退避したり、メモリ8に記憶された1ページ分の画像のビットマップデータをライン単位でエンジン5へ出力するのに用いたりする。以下、1ページ分の画像のことを「ページ画像」と記載し、ページ画像のビットマップデータのうち1ラインのデータのことを「ラインデータ」と記載すると共に、ラインデータのうち1ドットのデータのことを「画素データ」と記載する場合がある。
MPU9は、コントローラ3の全体制御を行うデバイスであり、例えば、外部I/Fコネクタ7を介して受信するデータをエンジン5へ出力するための制御を実施する。
図1に示すMPU9は、外部I/Fコントローラ9Aと、プロセッサコア9Bと、メモリコントローラ9Cと、バスコントローラ9Dとを有する。
プロセッサコア9Bは、演算処理を行う論理回路や1次キャッシュなどが実装されるMPU9のコアである。図1には、1つのコアが示されているが、MPU9に2以上の複数のプロセッサコアが実装されることを妨げない。
メモリコントローラ9Cは、メモリ8に対するアクセスをコントロールするデバイスである。例えば、メモリコントローラ9Cは、メモリ8上のデータの読み出し、メモリ8へのデータの書き込みの他、メモリ8のリフレッシュなどを行う。
バスコントローラ9Dは、MPU9内部のバス制御を行うコントローラである。例えば、バスコントローラ9Dは、DMA(Direct Memory Access)等のデータ転送方式を用いて、メモリ8にページ単位で格納された原画像のビットマップデータをライン単位でビデオコントローラ10へ転送することができる。
エンジン5には、一例として、図2に示す電子写真記録プロセスが採用される。なお、図2には、あくまで一例として、レーザー方式の電子写真記録プロセスが例示されているが、エンジン5にはインクジェット方式の電子写真記録プロセスを採用することもできる。
図2は、電子写真記録プロセスの一例を示す図である。図2に示す電子写真記録プロセスでは、感光ドラム5Aを中心に、帯電、露光、現像、転写、定着およびクリーニングなどのプロセスを通じて画像が形成される。図2に示すように、エンジン5には、感光ドラム5A、帯電部5B、露光部5C、現像部5D、転写部5E、定着機5Fおよびドラムクリーナ5Gなどが含まれる。
まず、帯電プロセスでは、帯電部5Bにより感光ドラム5A上に一様の電荷が形成される。この帯電部5Bには、一例として、コロナ放電装置やローラ帯電装置等を用いることができる。続いて、露光プロセスでは、ビデオコントローラ10からドット単位で送出される画素データにしたがって露光部5Cが感光ドラム5Aのドット上にレーザーを露光することにより2次元の静電潜像が感光ドラム5A上に形成される。この露光部5Cの露光光源には、一例として、レーザー光をポリゴンミラーにより走査するレーザービーム方式の他、ライン方向にわたって直線状にLED(Light Emitting Diode)が配列されるLED光源方式を採用することができる。その後、現像プロセスでは、現像部5Dにより静電潜像に色材、いわゆるトナーが付着される。続いて、転写プロセスでは、転写部5Eにより感光ドラム5A上の潜像に付着されたトナーが用紙等の記録媒体に転写される。その上で、定着プロセスでは、定着機5Fがトナーを用紙に接着させることによりトナーが用紙に定着される。その後、クリーニングプロセスでは、ドラムクリーナ5Gにより感光ドラム5Aの体表面のトナー及び汚染物質が除去される。これら帯電プロセス、露光プロセス、現像プロセス、転写プロセス、定着プロセス及びクリーニングプロセスにより、電子写真記録プロセスが実現される。
ビデオコントローラ10は、露光部5Cにおけるレーザー光の出力を制御するコントローラである。
ここで、本実施例に係るビデオコントローラ10は、印刷対象とするページ画像のビットマップデータに含まれる直線部からバーコード以外の印刷要素、例えば文字や罫線などを除外してバーコードに対応する領域を検出できる処理に優位性を有する。
すなわち、単純な直線検出、例えばエッジ検出などを行う場合、ページ画像から検出された直線部は、バーコードに対応する領域である可能性もあれば、文字や罫線などのバーコード以外の印刷要素に対応する領域であるおそれもある。以下では、ページ画像に含まれる直線部のうちバーコードに対応する領域のことを「バーコード領域」と記載する一方で、バーコード以外の印刷要素に対応する領域のことを「非バーコード領域」と記載する場合がある。
図3は、バーコード用の補正の一例を示す図である。図3の上側には、補正前のページ画像の一部が抜粋して示される一方で、図3の下側には、補正前のページ画像にバーコード用の補正、すなわち細線化が行われた後のページ画像の一部、すなわち補正前のページ画像の一部と同じ部分が示されている。図3に示すページ画像には、3つの直線部L1〜L3が含まれる例が示されている。これら3つの直線部L1〜L3のうち、直線部L1及び直線部L2がバーコード領域、すなわちバーコードの模様を形成する垂直方向の線分の一部である一方で、直線部L3が非バーコード領域であるものとして以下の説明を行う。以下では、バーコードの模様を形成する線分のことを「バーコード線」と記載する場合がある。
図3の上側に示すページ画像にエッジ検出等の直線検出が行われた場合、3つの直線部L1〜L3とも直線部として検出される。この場合、3つの直線部L1〜L3が細線化される。例えば、図3の下側に示す通り、3つの直線部L1〜L3のうちエッジの境界部分、すなわちハッチングで示された部分が除去される。このため、非バーコード領域である直線部L3まで細線化が行われる結果、直線部L3に文字や罫線のかすれ等の不具合が発生するおそれがある。
このことから、本実施例に係るビデオコントローラ10は、バーコードの模様を形成する線分が直線部のエッジ(端面)について長方形の形、すなわち凹凸が存在しない直線状となるという知見の下、非バーコード領域を除外してバーコード領域を検出する。すなわち、ビデオコントローラ10は、ページ画像のビットマップデータから検出された直線部を形成するエッジの境界線に凹凸が存在せず、かつエッジの終端部が矩形の角形状に対応する直線部をバーコード領域として検出する。
図4は、バーコード用の補正の一例を示す図である。図4の上側には、補正前のページ画像の一部(図3と同様)が抜粋して示される一方で、図4の下側には、補正前のページ画像にバーコード用の補正、すなわち細線化が行われた後のページ画像の一部、すなわち補正前のページ画像の一部と同じ部分が示されている。図4に示すページ画像にも、図3と同様、3つの直線部L1〜L3が含まれる例が示されている。これら3つの直線部L1〜L3のうち、直線部L1及び直線部L2がバーコード領域、すなわち垂直方向のバーコード線である一方で、直線部L3が非バーコード領域である点も図3と同様であるとして以下の説明を行う。
図4の上側に示すページ画像に上記のバーコード検出が行われる場合、直線部L1及び直線部L2がバーコード領域として検出される一方で、直線部L3が非バーコード領域として除外される。例えば、直線部L1を形成するエッジの境界線E1には、凹凸が存在しない。また、直線部L1を形成するエッジの終端部C1の形状が矩形の角形状に対応する。さらに、直線部L2の場合も直線部L1のケースと同様に、直線部L2を形成するエッジの境界線E2には、凹凸が存在しない。また、直線部L2を形成するエッジの終端部C2の形状が矩形の角形状に対応する。一方、直線部L3を形成するエッジの境界線E3には、凹凸が存在しない。ところが、直線部L3を形成するエッジの終端部C3は、直角ではあるが、角によって形成される直角ではなく、隅によって形状される直角であるので、矩形の角形状には対応しない。よって、直線部L3はバーコード領域として検出されない。
この結果、図4の下側に示す通り、3つの直線部L1〜L3のうち、直線部L1及び直線部L2に絞って細線化される。例えば、図4の下側に示す通り、直線部L1及び直線部L2のエッジの境界部分、すなわちハッチングで示された部分が除去される。それ故、バーコード領域である直線部L1及び直線部L2には、バーコード用の補正、例えば細線化が行われる一方で、非バーコード領域である直線部L3にバーコード用の補正が行われるのを抑制できる。したがって、直線部L3に文字や罫線のかすれ等の不具合が発生するのも抑制できる。
[ビデオインタフェース]
図5は、ビデオインタフェースシーケンスの一例を示す図である。図5には、ビデオコントローラ10およびエンジン5のインタフェースシーケンスが示されている。図5に示すように、エンジン5で用紙が印刷位置に搬送された後、露光部5Cによりレーザー光が検出されたタイミングがビーム光検出信号としてビデオコントローラ10へ出力される。一方、ビデオコントローラ10は、エンジン5から出力されるビーム光検出信号を用紙搬送のタイミングとして受け取り、水平同期信号(/Hsync)をアサートする。そして、ビデオコントローラ10は、水平同期信号(/Hsync)がアサートされた時点からドット数のカウントを開始し、印刷開始位置まで到達した段階で、ページ画像のラインデータがドット単位にラスタライズされた画素データをエンジン5へ出力する。
図5は、ビデオインタフェースシーケンスの一例を示す図である。図5には、ビデオコントローラ10およびエンジン5のインタフェースシーケンスが示されている。図5に示すように、エンジン5で用紙が印刷位置に搬送された後、露光部5Cによりレーザー光が検出されたタイミングがビーム光検出信号としてビデオコントローラ10へ出力される。一方、ビデオコントローラ10は、エンジン5から出力されるビーム光検出信号を用紙搬送のタイミングとして受け取り、水平同期信号(/Hsync)をアサートする。そして、ビデオコントローラ10は、水平同期信号(/Hsync)がアサートされた時点からドット数のカウントを開始し、印刷開始位置まで到達した段階で、ページ画像のラインデータがドット単位にラスタライズされた画素データをエンジン5へ出力する。
[ビデオコントローラ10の内部構成]
図6は、実施例1に係るビデオコントローラ10の内部構成を示す機能ブロック図である。図6に示すビデオコントローラ10は、ドットカウンタ11、第1のラインバッファ12、第2のラインバッファ13、シリアル変換部14及びバーコード検出部15などの機能部を有する。
図6は、実施例1に係るビデオコントローラ10の内部構成を示す機能ブロック図である。図6に示すビデオコントローラ10は、ドットカウンタ11、第1のラインバッファ12、第2のラインバッファ13、シリアル変換部14及びバーコード検出部15などの機能部を有する。
ドットカウンタ11は、ドット数を計数するカウンタである。
第1のラインバッファ12及び第2のラインバッファ13は、いずれもラインデータを保持するバッファであるが、その用途は互いに異なる。すなわち、第2のラインバッファ13には、エンジン5にドット単位で画素データを送出するためにラインデータがバッファリングされる。一方、第1のラインバッファ12は、バーコード領域を検出するために、第2のラインバッファ13の前段に配置されるバッファである。例えば、エンジン5に送出するラインを「nライン」としたとき、第1のラインバッファ12には、nラインを含む複数のラインのラインデータがバッファリングされる。
シリアル変換部14は、第1のラインバッファ12に保持されたラインデータにシリアル変換を行う機能部である。このようなシリアル変換によって、ビデオコントローラ10からエンジン5へ画素データが出力されることになる。
バーコード検出部15は、バーコード領域の検出およびバーコード用の補正を行う機能部である。詳細は図7を用いて後述するが、バーコード検出部15は、第1のラインバッファ12に保持された複数のラインデータを参照して、エッジの境界線にライン方向と直交するカラム方向の凹凸がない直線部の検出に用いる「直線検出信号」と、直線部の中からバーコード領域を検出するのに用いる「バーコード検出信号」の2つの内部信号を生成することにより、バーコード領域を検出する。なお、上記の「ライン方向」とは、ページ画像の主走査が行われる水平方向を指し、上記の「カラム方向」とは、ページ画像の副走査が行われる垂直方向を指すこととする。
[印刷データ出力までの流れ]
次に、ビデオコントローラ10からエンジン5へ印刷データが出力されるまでの一連の流れについて説明する。
次に、ビデオコントローラ10からエンジン5へ印刷データが出力されるまでの一連の流れについて説明する。
(1)水平同期信号のアサート
エンジン5の印刷動作が開始すると、エンジン5で用紙が搬送される。これに同期してエンジン5で生成される水平同期信号(/Hsync)がビデオコントローラ10のドットカウンタ11へ入力される。これにしたがって、ドットカウンタ11で水平同期信号(/Hsync)がアサートされる。
エンジン5の印刷動作が開始すると、エンジン5で用紙が搬送される。これに同期してエンジン5で生成される水平同期信号(/Hsync)がビデオコントローラ10のドットカウンタ11へ入力される。これにしたがって、ドットカウンタ11で水平同期信号(/Hsync)がアサートされる。
(2)ドット数のカウント開始
このように水平同期信号(/Hsync)がアサートされた時点から、ドットカウンタ11は、印刷開始位置までのドット数をカウントし、ラインデータの出力を開始するタイミングを第2のラインバッファ13に指示する。
このように水平同期信号(/Hsync)がアサートされた時点から、ドットカウンタ11は、印刷開始位置までのドット数をカウントし、ラインデータの出力を開始するタイミングを第2のラインバッファ13に指示する。
(3)第1のラインバッファのバッファリング
一方、メモリ8から第1のラインバッファ12には、DMAによりページ画像のビットマップデータが転送される。この結果、第1のラインバッファ12には、ページ画像のビットマップデータがライン単位でバッファリングされる。以下では、一例として、3ライン分のラインデータが第1のラインバッファ12にバッファリングされる場合を想定して以下の説明を続ける。例えば、ビデオコントローラ10がエンジン5に送出するラインが「nライン」としたとき、第1のラインバッファ12には、n−1ライン、nライン及びn+1ラインの3ライン分のラインデータがバッファリングされる。
一方、メモリ8から第1のラインバッファ12には、DMAによりページ画像のビットマップデータが転送される。この結果、第1のラインバッファ12には、ページ画像のビットマップデータがライン単位でバッファリングされる。以下では、一例として、3ライン分のラインデータが第1のラインバッファ12にバッファリングされる場合を想定して以下の説明を続ける。例えば、ビデオコントローラ10がエンジン5に送出するラインが「nライン」としたとき、第1のラインバッファ12には、n−1ライン、nライン及びn+1ラインの3ライン分のラインデータがバッファリングされる。
(4)副走査データの出力
その後、第1のラインバッファ12にn−1ライン、nライン及びn+1ラインの3ライン分のラインデータがバッファリングされた場合、次のような副走査データがバーコード検出部15へ出力される。すなわち、第1のラインバッファ12に保持されたn−1ライン、nライン及びn+1ラインの3つのラインデータに対する副走査がカラムの先頭から順に行われる。これによって、第1のラインバッファ12からバーコード検出部15には、n−1ライン、nライン及びn+1ラインの3ラインの間で同一のカラムに位置する3つのドットの画素データが副走査されたシリアルデータ、すなわち上記の副走査データがカラムの先頭から順番に出力される。
その後、第1のラインバッファ12にn−1ライン、nライン及びn+1ラインの3ライン分のラインデータがバッファリングされた場合、次のような副走査データがバーコード検出部15へ出力される。すなわち、第1のラインバッファ12に保持されたn−1ライン、nライン及びn+1ラインの3つのラインデータに対する副走査がカラムの先頭から順に行われる。これによって、第1のラインバッファ12からバーコード検出部15には、n−1ライン、nライン及びn+1ラインの3ラインの間で同一のカラムに位置する3つのドットの画素データが副走査されたシリアルデータ、すなわち上記の副走査データがカラムの先頭から順番に出力される。
(5)バーコード領域の検出およびバーコード用の補正
詳細は図7を用いて後述するが、バーコード検出部15は、第1のラインバッファ12から出力される副走査データをカラムの順番にしたがって参照することにより、バーコード領域の検出を行う。このとき、バーコード領域が検出された場合、バーコード検出部15は、バーコード領域に対応するドットを白色にマスクする細線化を行うことにより、nラインのラインデータにバーコード用の補正を実施する。このようにバーコード用の補正が行われたnラインのラインデータが第2のラインバッファ13へ出力される。一方、バーコード領域が検出されない場合、バーコード用の補正は実施されない。すなわち、バーコード検出部15は、第1のラインバッファ12に保持されたnラインのラインデータをそのまま第2のラインバッファ13へ出力する。これによって、第2のラインバッファ13にnラインのラインデータがバッファリングされる。
詳細は図7を用いて後述するが、バーコード検出部15は、第1のラインバッファ12から出力される副走査データをカラムの順番にしたがって参照することにより、バーコード領域の検出を行う。このとき、バーコード領域が検出された場合、バーコード検出部15は、バーコード領域に対応するドットを白色にマスクする細線化を行うことにより、nラインのラインデータにバーコード用の補正を実施する。このようにバーコード用の補正が行われたnラインのラインデータが第2のラインバッファ13へ出力される。一方、バーコード領域が検出されない場合、バーコード用の補正は実施されない。すなわち、バーコード検出部15は、第1のラインバッファ12に保持されたnラインのラインデータをそのまま第2のラインバッファ13へ出力する。これによって、第2のラインバッファ13にnラインのラインデータがバッファリングされる。
(6)印刷データの出力
その後、第2のラインバッファ13に保持されたnラインのラインデータは、ドットカウンタ11から出力される出力タイミングの指令にしたがってシリアル変換部14へ出力信号Voutとして出力される。続いて、シリアル変換部14は、第2のラインバッファ13から出力されたnラインのラインデータにシリアル変換を行う。その上で、シリアル変換部14は、nラインのラインデータがドット単位にシリアル変換された画素データを印刷データとして出力する。
その後、第2のラインバッファ13に保持されたnラインのラインデータは、ドットカウンタ11から出力される出力タイミングの指令にしたがってシリアル変換部14へ出力信号Voutとして出力される。続いて、シリアル変換部14は、第2のラインバッファ13から出力されたnラインのラインデータにシリアル変換を行う。その上で、シリアル変換部14は、nラインのラインデータがドット単位にシリアル変換された画素データを印刷データとして出力する。
[具体例]
次に、図7を用いて、バーコード領域の検出およびバーコード用の補正の具体例について説明する。図7は、第1のラインバッファ12及び第2のラインバッファ13に保持されるラインデータの一例を示す図である。図7には、n−1ライン、nライン及びn+1ラインの3つのラインデータが保持された第1のラインバッファ12が示されている。このようにn−1ライン、nライン及びn+1ラインの各ラインデータが第1のラインバッファ12にバッファリングされることにより、全てのラインデータが有効となった場合、次のようにして副走査データがバーコード検出部15へ出力される。すなわち、第1のラインバッファ12からバーコード検出部15には、n−1ライン、nライン及びn+1ラインの3ラインの間で同一のカラムに位置する3つのドットの画素データの副走査が行われた副走査データがカラムの先頭から順番に出力される。
次に、図7を用いて、バーコード領域の検出およびバーコード用の補正の具体例について説明する。図7は、第1のラインバッファ12及び第2のラインバッファ13に保持されるラインデータの一例を示す図である。図7には、n−1ライン、nライン及びn+1ラインの3つのラインデータが保持された第1のラインバッファ12が示されている。このようにn−1ライン、nライン及びn+1ラインの各ラインデータが第1のラインバッファ12にバッファリングされることにより、全てのラインデータが有効となった場合、次のようにして副走査データがバーコード検出部15へ出力される。すなわち、第1のラインバッファ12からバーコード検出部15には、n−1ライン、nライン及びn+1ラインの3ラインの間で同一のカラムに位置する3つのドットの画素データの副走査が行われた副走査データがカラムの先頭から順番に出力される。
ここで、以下では、ページ画像のビットマップデータにライン方向のバーコード線により模様が形成されるバーコードが含まれる場合を想定し、このバーコード線をバーコード領域として検出するために用いる直線検出信号およびバーコード検出信号のアサート条件およびネゲート条件を例示する。
(1)直線検出信号のアサート条件
例えば、直線検出信号のアサート条件の一例として、副走査データにおけるn−1ライン、nライン、n+1ラインの各ドットのパターンが「黒」&「黒」&「白」である状態が所定回数、例えば2回以上継続することが採用される。
例えば、直線検出信号のアサート条件の一例として、副走査データにおけるn−1ライン、nライン、n+1ラインの各ドットのパターンが「黒」&「黒」&「白」である状態が所定回数、例えば2回以上継続することが採用される。
(2)直線検出信号のネゲート条件
例えば、直線検出信号のネゲート条件の一例として、副走査データにおけるn−1ライン、nライン、n+1ラインの各ドットのパターンが「黒」&「黒」&「白」である状態が終了することが採用される。
例えば、直線検出信号のネゲート条件の一例として、副走査データにおけるn−1ライン、nライン、n+1ラインの各ドットのパターンが「黒」&「黒」&「白」である状態が終了することが採用される。
(3)バーコード検出信号のアサート条件
例えば、バーコード検出信号のアサート条件の一例として、直線検出信号のネゲート条件の成立時に副走査データにおけるn−1ライン、nライン、n+1ラインの各ドットのパターンが「白」&「白」&「白」であることが採用される。
例えば、バーコード検出信号のアサート条件の一例として、直線検出信号のネゲート条件の成立時に副走査データにおけるn−1ライン、nライン、n+1ラインの各ドットのパターンが「白」&「白」&「白」であることが採用される。
例えば、先頭の1カラム目の場合、n−1ライン、nライン、n+1ラインの順に「白」&「白」&「白」のパターンが副走査データとして送出される。この場合、直線検出信号およびバーコード検出信号のいずれにおいてもアサート条件は満たされない。続いて、2カラム目の場合も、1カラム目の場合と同様になる。よって、直線検出信号およびバーコード検出信号のいずれにおいてもアサート条件は満たされない。
次に、3カラム目の場合、n−1ライン、nライン、n+1ラインの順に「黒」&「黒」&「白」のパターンが副走査データとして送出される。この段階では、「黒」&「黒」&「白」のパターンが1回しか出現しておらず、「黒」&「黒」&「白」のパターンの継続回数は未だ1回であるので、直線検出信号のアサート条件は満たされない。
そして、4カラム目においても、3カラム目の場合と同様、n−1ライン、nライン、n+1ラインの順に「黒」&「黒」&「白」のパターンが副走査データとして送出される。このように4カラム目の副走査データが送出された段階では、「黒」&「黒」&「白」のパターンの継続回数が2回となるので、直線検出信号のアサート条件が成立する。この場合、直線検出信号がアサートされることになる。その一方で、バーコード検出信号のアサート条件には、直線検出信号のネゲート条件の成立が条件となるので、バーコード検出信号はアサートされない。
その後、5カラム目から16カラム目までは、n−1ライン、nライン、n+1ラインの順に「黒」&「黒」&「白」のパターンが副走査データとして送出される。このため、直線検出信号は16カラム目までアサートされたままとなる。
続いて、17カラム目には、n−1ライン、nライン、n+1ラインの順に「白」&「白」&「白」のパターンが副走査データとして送出される。このように17カラム目に至って、「黒」&「黒」&「白」のパターンが終了するので、直線検出信号のネゲート条件が成立する。この結果、4カラム目の副走査データの送出後にアサートされた直線検出信号が17カラム目の副走査データの送出後にネゲートされる。この直線検出信号のネゲート条件の成立に連動して、バーコード検出信号のアサート条件も成立する。なぜなら、直線検出信号のネゲート条件が成立したカラムのパターンが「白」&「白」&「白」であるからである。この結果、バーコード検出信号が17カラム目に対応する1クロックだけアサートされる。
その後、21カラム目の副走査データが出力された段階では、「黒」&「黒」&「白」のパターンの継続回数が2回となるので、直線検出信号のアサート条件が成立する。この場合、直線検出信号がアサートされることになる。そして、23カラム目には、n−1ライン、nライン、n+1ラインの順に「黒」&「白」&「白」のパターンが副走査データとして送出される。このように23カラム目に至って、「黒」&「黒」&「白」のパターンが終了するので、直線検出信号のネゲート条件が成立する。この結果、21カラム目の副走査データの送出後にアサートされた直線検出信号が23カラム目の副走査データの送出後にネゲートされる。ここで、23カラム目では、直線検出信号のネゲート条件の成立によりバーコード検出信号のアサート条件の一部が満たされるが、直線検出信号のネゲート条件が成立したカラムのパターンが「白」&「白」&「白」ではないので、バーコード検出信号のアサート条件は成立しない。したがって、23カラム目では、バーコード検出信号はアサートされない。
また、25カラム目の副走査データが出力された段階では、「黒」&「黒」&「白」のパターンの継続回数が2回となるので、直線検出信号のアサート条件が成立する。この場合、直線検出信号がアサートされることになる。そして、28カラム目には、n−1ライン、nライン、n+1ラインの順に「黒」&「黒」&「黒」のパターンが副走査データとして送出される。このように28カラム目に至って、「黒」&「黒」&「白」のパターンが終了するので、直線検出信号のネゲート条件が成立する。この結果、25カラム目の副走査データの送出後にアサートされた直線検出信号が28カラム目の副走査データの送出後にネゲートされる。ここで、28カラム目では、直線検出信号のネゲート条件の成立によりバーコード検出信号のアサート条件の一部が満たされるが、直線検出信号のネゲート条件が成立したカラムのパターンが「白」&「白」&「白」ではないので、バーコード検出信号のアサート条件は成立しない。したがって、28カラム目では、バーコード検出信号はアサートされない。
このように、nラインでは、図7に示す直線検出信号およびバーコード検出信号が生成される。その後、直線検出信号がアサートされたアサート期間のうちバーコード検出信号がアサートされたクロックを含むアサート期間がバーコード検出部15により検出される。図7の例で言えば、3つのアサート期間が存在するが、1番目に出現する直線検出信号のアサート期間にはバーコード検出信号がアサートされたクロックが含まれる一方で、2番目および3番目に出現する直線検出信号のアサート期間にはバーコード検出信号がアサートされたクロックが含まれない。それ故、1番目に出現する直線検出信号のアサート期間に対応するドットの区間がバーコード領域として検出される。すなわち、直線検出信号がアサートされた5カラム目から継続回数に設定された2カラムを遡った3カラム目を開始とし、直線検出信号がネゲートされた17カラム目の1つ前の16カラム目を終了とするバーコード領域が検出される。このように検出されたバーコード領域は、バーコード検出部15により白色にマスクされることにより、バーコード線の最下端のラインが削られる結果、バーコード線が細線化される。この結果、図7に示す通り、第2のラインバッファ13には、nラインの補正後のラインデータとして、3カラム目から16カラム目までの区間の黒画素が削られたラインデータがバッファリングされることになる。
[効果の一側面]
以上のように、本実施例に係るビデオコントローラ10は、直線検出信号のアサート期間のうちバーコード検出信号がアサートされたクロックが含まれるアサート期間に対応するドットの区間をバーコード領域として検出する。これによって、ページ画像のビットマップデータから検出された直線部を形成するエッジの境界線に凹凸が存在せず、かつエッジの終端部が矩形の角形状に対応する直線部をバーコード領域として検出できる。それ故、非バーコード領域に対応する直線部がバーコード領域として誤検出されるのを抑制できる結果、非バーコード領域にバーコード用の補正が行われるのも抑制できる。
以上のように、本実施例に係るビデオコントローラ10は、直線検出信号のアサート期間のうちバーコード検出信号がアサートされたクロックが含まれるアサート期間に対応するドットの区間をバーコード領域として検出する。これによって、ページ画像のビットマップデータから検出された直線部を形成するエッジの境界線に凹凸が存在せず、かつエッジの終端部が矩形の角形状に対応する直線部をバーコード領域として検出できる。それ故、非バーコード領域に対応する直線部がバーコード領域として誤検出されるのを抑制できる結果、非バーコード領域にバーコード用の補正が行われるのも抑制できる。
さらに、本実施例に係るビデオコントローラ10では、バーコード領域の検出がデジタル回路によって実装される。それ故、バーコード領域の検出がソフトウェアによる情報処理により実現される場合よりも所要時間を短縮できる。
加えて、本実施例に係るビデオコントローラ10では、バーコード領域の検出に用いられるラインデータをnラインを含む前後の所定数のラインデータに限定できる。それ故、ページ画像のビットマップデータをメモリ上に展開してバーコード領域の検出を行う場合よりも、バーコード領域の検出に用いるメモリ規模を縮小できると共に、その所要時間も短縮できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[第1のラインバッファのライン数]
上記の実施例1では、n−1ライン、nライン及びn+1ラインの3つのラインデータが第1のラインバッファにバッファリングされる場合を例示したが、4つ以上のラインデータを第1のラインバッファにバッファリングさせることもできる。例えば、n−1ライン、nライン、n+1ライン及びn+2の4つのラインデータを第1のラインバッファにバッファリングさせる場合、直線検出信号のアサート条件およびネゲート条件のパターンを「黒」&「黒」&「黒」&「白」に読み替えると共にバーコード検出信号のアサート条件を「白」&「白」&「白」&「白」に読み替えることにより、3つのラインデータがバッファリングされる場合と同様にバーコード領域の検出を実施することができる。この場合、nラインの直線検出信号のアサート期間だけでなく、n+1ラインの直線検出信号のアサート期間も併せて白色にマスクすることにより、バーコード線の細線化を実現することもできる。
上記の実施例1では、n−1ライン、nライン及びn+1ラインの3つのラインデータが第1のラインバッファにバッファリングされる場合を例示したが、4つ以上のラインデータを第1のラインバッファにバッファリングさせることもできる。例えば、n−1ライン、nライン、n+1ライン及びn+2の4つのラインデータを第1のラインバッファにバッファリングさせる場合、直線検出信号のアサート条件およびネゲート条件のパターンを「黒」&「黒」&「黒」&「白」に読み替えると共にバーコード検出信号のアサート条件を「白」&「白」&「白」&「白」に読み替えることにより、3つのラインデータがバッファリングされる場合と同様にバーコード領域の検出を実施することができる。この場合、nラインの直線検出信号のアサート期間だけでなく、n+1ラインの直線検出信号のアサート期間も併せて白色にマスクすることにより、バーコード線の細線化を実現することもできる。
[垂直方向のバーコード線の検出]
上記の実施例1では、ページ画像のビットマップデータからライン方向のバーコード線をバーコード領域として検出する場合を例示したが、ページ画像のビットマップデータからカラム方向のバーコード線をバーコード領域として検出することもできる。この場合、カラムをラインに読み替える共にラインデータをカラムデータと読み替え、さらに、副走査データを主走査データと読み替えて90度回転された想定で実施することにより、カラム方向のバーコード線をバーコード領域として検出することができる。さらに、カラム方向のバーコード線の長さと同等以上の高さを持つライン数のラインデータを第1のラインバッファにバッファリングさせることとすれば、バーコード領域に対応する直線部の終端が検出できない状態、すなわちバーコード検出信号がアサートされない状態も抑制できる。加えて、ライン方向のバーコード線およびカラム方向のバーコード線を並列して検出することもできる。この場合、ライン方向のバーコード線を検出する系列と、カラム方向のバーコード線を検出する系列とでラインバッファおよびバーコード検出部のペア並びにカラムバッファ及びバーコード検出部のペアを個別に設けることにより、並列処理を実現できる。
上記の実施例1では、ページ画像のビットマップデータからライン方向のバーコード線をバーコード領域として検出する場合を例示したが、ページ画像のビットマップデータからカラム方向のバーコード線をバーコード領域として検出することもできる。この場合、カラムをラインに読み替える共にラインデータをカラムデータと読み替え、さらに、副走査データを主走査データと読み替えて90度回転された想定で実施することにより、カラム方向のバーコード線をバーコード領域として検出することができる。さらに、カラム方向のバーコード線の長さと同等以上の高さを持つライン数のラインデータを第1のラインバッファにバッファリングさせることとすれば、バーコード領域に対応する直線部の終端が検出できない状態、すなわちバーコード検出信号がアサートされない状態も抑制できる。加えて、ライン方向のバーコード線およびカラム方向のバーコード線を並列して検出することもできる。この場合、ライン方向のバーコード線を検出する系列と、カラム方向のバーコード線を検出する系列とでラインバッファおよびバーコード検出部のペア並びにカラムバッファ及びバーコード検出部のペアを個別に設けることにより、並列処理を実現できる。
[プログラム]
上記の実施例1及び実施例2で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。例えば、画像形成装置1のMPU9がメモリ8のワークエリア上に、上記のバーコード領域の検出およびバーコード用の補正を実現するファームウェアをプロセスとして展開することにより、上記のバーコード検出部15が有する機能を仮想的に実現することができる。この他、画像形成装置1とネットワークを介して接続されるサーバ装置に搭載されるCPU(Central Processing Unit)が当該CPUに接続されたRAMのワークエリア上に、上記のバーコード領域の検出およびバーコード用の補正を実現する画像処理プログラムをプロセスとして展開することにより、サーバ装置が画像形成装置1に上記のバーコード検出部15が有する機能を提供することもできる。
上記の実施例1及び実施例2で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。例えば、画像形成装置1のMPU9がメモリ8のワークエリア上に、上記のバーコード領域の検出およびバーコード用の補正を実現するファームウェアをプロセスとして展開することにより、上記のバーコード検出部15が有する機能を仮想的に実現することができる。この他、画像形成装置1とネットワークを介して接続されるサーバ装置に搭載されるCPU(Central Processing Unit)が当該CPUに接続されたRAMのワークエリア上に、上記のバーコード領域の検出およびバーコード用の補正を実現する画像処理プログラムをプロセスとして展開することにより、サーバ装置が画像形成装置1に上記のバーコード検出部15が有する機能を提供することもできる。
1 画像形成装置
3 コントローラ
5 エンジン
7 外部I/Fコネクタ
8 メモリ
9 MPU
9A 外部I/Fコントローラ
9B プロセッサコア
9C メモリコントローラ
9D バスコントローラ
10 ビデオコントローラ
11 ドットカウンタ
12 第1のラインバッファ
13 第2のラインバッファ
14 シリアル変換部
15 バーコード検出部
3 コントローラ
5 エンジン
7 外部I/Fコネクタ
8 メモリ
9 MPU
9A 外部I/Fコントローラ
9B プロセッサコア
9C メモリコントローラ
9D バスコントローラ
10 ビデオコントローラ
11 ドットカウンタ
12 第1のラインバッファ
13 第2のラインバッファ
14 シリアル変換部
15 バーコード検出部
Claims (5)
- 印刷対象とする画像のビットマップデータがライン単位に分割されたラインデータのうち電子写真記録プロセスの機構が搭載されたエンジンへの出力対象とするラインのラインデータを含む複数のラインデータを保持するラインバッファと、
前記ラインデータのうち黒に対応するドットがライン方向に連続する直線部を検出する第1検出部と、
前記複数のラインデータの間で前記直線部の始点または終点に対応するカラム位置をカラム方向に走査することにより得られるドットのパターンがいずれも白に対応するドットである直線部をバーコード領域として検出する第2検出部と、
前記バーコード領域にバーコード用の補正を行う補正部と、
を有することを特徴とする画像形成装置。 - 前記第1検出部は、前記ラインバッファに保持された複数のラインデータをカラム方向に走査することにより得られたドットのパターンが所定のパターンと一致する状態がライン方向に向かって継続するドットの区間を前記エンジンへの出力対象とするラインにおける直線部として検出することを特徴とする請求項1に記載の画像形成装置。
- 前記複数のラインデータは、前記エンジンへの出力対象とするラインと、当該ラインとカラム方向に隣接する前後のラインのラインデータとを含むことを特徴とする請求項1または2に記載の画像形成装置。
- 前記第1検出部、前記第2検出部および前記補正部がデジタル回路により実装されることを特徴とする請求項1、2または3に記載の画像形成装置。
- 印刷対象とする画像のビットマップデータがライン単位に分割されたラインデータのうち電子写真記録プロセスの機構が搭載されたエンジンへの出力対象とするラインのラインデータを含む複数のラインデータを保持するラインバッファを参照して、前記ラインデータのうち黒に対応するドットがライン方向に連続する直線部を検出する処理と、
前記複数のラインデータの間で前記直線部の始点または終点に対応するカラム位置をカラム方向に走査することにより得られるドットのパターンがいずれも白に対応するドットである直線部をバーコード領域として検出する処理と、
前記バーコード領域にバーコード用の補正を行う処理と、
をコンピュータに実行させることを特徴とする画像処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016194570A JP2018052088A (ja) | 2016-09-30 | 2016-09-30 | 画像形成装置及び画像処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016194570A JP2018052088A (ja) | 2016-09-30 | 2016-09-30 | 画像形成装置及び画像処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018052088A true JP2018052088A (ja) | 2018-04-05 |
Family
ID=61833427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016194570A Pending JP2018052088A (ja) | 2016-09-30 | 2016-09-30 | 画像形成装置及び画像処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018052088A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220016900A1 (en) * | 2020-07-20 | 2022-01-20 | Brother Kogyo Kabushiki Kaisha | Printer, non-transitory storage medium storing plurality of instructions, and control method |
-
2016
- 2016-09-30 JP JP2016194570A patent/JP2018052088A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220016900A1 (en) * | 2020-07-20 | 2022-01-20 | Brother Kogyo Kabushiki Kaisha | Printer, non-transitory storage medium storing plurality of instructions, and control method |
US11663432B2 (en) * | 2020-07-20 | 2023-05-30 | Brother Kogyo Kabushiki Kaisha | Printer, non-transitory storage medium storing plurality of instructions, and control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8885218B2 (en) | Image processing apparatus, image processing method, storage medium | |
JP2007193143A (ja) | 画像形成装置およびその画像処理方法 | |
US20170187916A1 (en) | Image processing device, image forming apparatus, image processing method, and non-transitory recording medium | |
US8767250B2 (en) | Image forming apparatus and method for increasing image resolution and magnification | |
JP5595119B2 (ja) | 画像印字装置、画像印字方法及びプログラム | |
JP2016055525A (ja) | 欠陥情報特定装置及び欠陥情報特定方法 | |
JP5407627B2 (ja) | 画像処理装置、画像処理方法、プログラム | |
JP2016061603A (ja) | 投影装置及び投影方法 | |
KR100869284B1 (ko) | 화상 처리 장치 및 화상 처리 방법 | |
JP5921155B2 (ja) | 画像処理装置、画像処理方法、コンピュータプログラム | |
JP2018052088A (ja) | 画像形成装置及び画像処理プログラム | |
JP6938992B2 (ja) | 検査装置、検査システム、検査方法及びプログラム | |
JP6907621B2 (ja) | 画像処理装置、画像処理システム、画像処理方法及びプログラム | |
JP2010028206A (ja) | 画像形成システム、画像形成装置、画像処理装置および画像形成方法 | |
JP4570156B2 (ja) | 画像形成装置 | |
US10569575B2 (en) | Image forming apparatus, control apparatus, control method in image forming apparatus, and storage medium | |
JP5754972B2 (ja) | 画像処理装置及び画像処理方法 | |
JP2015053561A (ja) | 印刷物検査装置、印刷物検査方法及びプログラム | |
JP2017223737A (ja) | 画像形成装置、画像形成方法及びプログラム | |
JP2016076925A (ja) | 画像形成装置、画像処理方法、及び画像処理プログラム | |
JP2013150111A (ja) | 画像処理装置および画像処理方法 | |
JP6032849B2 (ja) | 画像形成装置及びプログラム | |
JP2004195847A (ja) | 画像形成装置及び画像形成装置の画像情報処理方法 | |
JP6085942B2 (ja) | 情報処理装置、画像形成装置、データ処理方法 | |
JP2009217584A (ja) | 画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20180912 |