JP6230466B2 - 画像形成装置 - Google Patents

画像形成装置 Download PDF

Info

Publication number
JP6230466B2
JP6230466B2 JP2014071949A JP2014071949A JP6230466B2 JP 6230466 B2 JP6230466 B2 JP 6230466B2 JP 2014071949 A JP2014071949 A JP 2014071949A JP 2014071949 A JP2014071949 A JP 2014071949A JP 6230466 B2 JP6230466 B2 JP 6230466B2
Authority
JP
Japan
Prior art keywords
image
vacnt
value
sub
area
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.)
Active
Application number
JP2014071949A
Other languages
English (en)
Other versions
JP2015195471A (ja
Inventor
譲 矢野
譲 矢野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014071949A priority Critical patent/JP6230466B2/ja
Priority to US14/670,771 priority patent/US9672452B2/en
Publication of JP2015195471A publication Critical patent/JP2015195471A/ja
Application granted granted Critical
Publication of JP6230466B2 publication Critical patent/JP6230466B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1835Transforming generic data
    • G06K15/1842Geometric transformations, e.g. on raster data
    • G06K15/1843Changing size or raster resolution

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

本発明は、静電潜像により画像を形成する画像形成装置に関する。
静電潜像により画像を形成する画像形成装置では、構成部品の取り付け位置のばらつき、又は、形成された画像を定着する際の熱などの影響を受け、転写部材上に形成された画像の画像サイズと本来意図する画像の画像サイズとが異なってしまうという問題がある。
このような問題に対し、特許文献1に開示された画像処理装置では、出力された画像の画像サイズと本来意図する画像サイズとを比較し、比較した結果に基づいて画像の形成過程における変倍率を測定する。そして、入力画像の画像データに対して測定された倍率で補正を行い、補正後の補正画像データに基づいて画像を形成する。その結果、最終的には、本来意図する画像サイズで画像が出力されるというものである。
例えば、画像形成を行った際に、入力画像の画像サイズに対して、出力された画像の画像サイズが副走査方向(感光体の回転方向)に101[%]のサイズとなってしまう画像形成装置があるとする。この場合、入力画像と同じ画像サイズで出力するには、測定された倍率の逆数を積算した画像サイズで画像形成が行われるように画像データを補正する。具体的には、副走査方向に0.990099…(101の逆数=100/101)倍した画像が形成されるようにする。その結果、出力画像の画像サイズは、主走査方向1.010101…×99[%]=100[%]、副走査方向0.990099…×101[%]=100[%]となる。
特許文献1に記載された画像処理装置における入力画像データの倍率変更方法は、副走査方向における所望の画像サイズと、補正処理せずに出力した出力画像の画像サイズとの差分に相当する画素数を算出する。そして、この画素数に基づいて、副走査方向の画像領域を複数のエリア(領域)に分割する。
図15は、処理対象の入力画像を模式的に示した図である。図15に示す入力画像は、主走査方向及び副走査方向に配列された画素の集合である。例えば、所望の画像サイズと、補正処理せずに出力した出力画像のサイズとの差分が10画素であったとする。この場合、図15中の点線で示すように、入力画像を副走査方向に10分割する。更に、分割された各エリア毎に、乱数発生器が生成した乱数値に基づいて、主走査方向の各座標位置(主走査位置)につき1ヶ所ずつランダムな位置を決定する。同一エリア内であっても、副走査位置が異なれば、ランダムな位置は異なる。そして、決定されたランダムな位置において、画像サイズを副走査方向に拡大する場合には画素を挿入し、又、縮小する場合には画素を削除する。画素が挿入されると、それ以降は同エリアにおいて副走査方向に1ライン分遅れた位置の画素が出力される。画素が削除されると、それ以降は同エリアにおいて副走査方向に1ライン分早めた位置の画素が出力される。なお、画素の挿入又は削除に伴って発生する、これらの「遅れ」、「早め」の状態は、エリアが切り替わるとその状態が初期化される。
図16は、あるエリアについて、乱数発生器が生成した乱数値に基づいて決定されたランダムな位置を視覚化して表した模式図である。図16に示すように、エリアの主走査位置を表す座標値を「x」、ラインNo(副走査位置)を表す座標値を「y」とする。図16において、主走査方向と平行する点線は、エリアの境界線(エリア境界)であり、図15で示した点線に相当する。
例えば、入力画像の画像サイズを副走査方向に拡大する場合、決定されたランダムな位置で画素を挿入する。画素が挿入された結果、図17(a)に示すような画像(拡大前の画像)が、図17(b)に示すように、補正処理(拡大処理)により画像サイズが拡大されて出力されることになる。この補正処理は、1つのエリアにおいて、副走査方向に1ライン分画像サイズを拡大する変倍処理である。
また、画像サイズを副走査方向に縮小する場合、決定されたランダムな位置で画素を削除する。画素が削除された結果、図17(c)に示すような画像(縮小前の画像)が、図17(d)に示すように、補正処理(縮小処理)により画像サイズが縮小されて出力されることになる。この補正処理は、1つのエリアにおいて、副走査方向に1ライン分画像サイズを縮小する変倍処理である。
また、画像形成装置によっては、画像データを保持するためのフレームバッファを備えるものがある。この場合、フレームバッファに格納された入力画像データに対して補正処理を行うことにより、副走査方向の変倍処理を行う。この他、画像データを保持する別の方法として、バンド処理を採用することもできる。バンド処理を採用すれば、画像形成装置には必要最小限のラインメモリ(ラインバッファ)を備えれば良いことになる。そのため、高価なフレームバッファを画像形成装置に備える必要がなくなり、画像形成装置の製造コストの低減を図ることができる。
ここで、バンド処理の概要について説明する。図18は、入力画像を模式的に表した図である。図18に示す入力画像は、主走査方向に14画素、副走査方向に20画素が配列されており、1マスが1画素を表している。各マス中に示された文字は、補正処理前の画素それぞれについて、副走査方向の位置を便宜上区別するためのものである。
バンド処理とは、入力画像全体を表す画像データの中から、一回の走査において所定のライン数(バンド処理幅)だけ画像データを読み出し、読み出した画像データに対して画像処理を行う方法である。この方法では、入力画像全体の処理が終了するまで、画像データの読み出しと、読み出した分の画像処理とが繰り返し行われる。一例として、図18に示す入力画像において、一回の走査で読み出すライン数が4ラインであれば、図19に示すように、走査毎(図19中の走査1から走査5)に4ラインずつの画像データが出力されることになる。入力画像(図18)は、副走査方向に20ラインあるため、4ライン単位の読み出しを計5回行えば、入力画像全体の読み出しは完了する。
例えば、4ラインずつ読み出すバンド処理で副走査方向の変倍処理を行う場合、一般的には、ラインバッファは5ライン分あれば良いことになる。各エリアに対して、画素の挿入又は削除が行われるランダムな位置は、主走査位置毎に1カ所である。そのため、画像サイズを拡大する場合には、ランダムな位置に対して前の1ライン分のラインデータを余分に用意しておけば良い。また、画像サイズを縮小する場合には、ランダムな位置に対して後の1ライン分のラインデータを余分に用意しておけば良い。一例として、図19中に示す走査2の画像データ出力に対して、変倍処理を行う場合について説明する。
図20は、変倍処理のために必要なラインバッファ数(ライン数)を説明するための図である。図20に示すように、例えば副走査位置Aのラインで画素を挿入する場合には、走査1(図19)の最終ラインである副走査位置Xのラインデータが必要となる。また、副走査位置Dのラインで画素を削除する場合には、走査3(図19)の最初のラインである副走査位置Yのラインデータが必要となる。変倍処理は、拡大するか又は縮小するかのいずれか一方の処理であることから、必要なラインバッファ数は、4+1=5ライン分あれば良いことになる。
特開2008−99114号公報
しかしながら、分割された各エリアのエリア境界を含む走査においてバンド処理を行う場合、「バンド処理幅+1」を超える数のラインバッファと、乱数発生器が2つ必要になることがある。以下、この場合について具体的に説明する。
図21は、エリアの副走査方向の長さ(副走査エリア長)が9画素である入力画像の一部を示した図である。図21中の点線は、エリアの境界線を示しており、画素X(マス中の文字がX)と画素1(マス中の文字が1)の間、画素9(マス中の文字が9)と画素1の間、画素9と画素Y(マスの中の文字がY)の間それぞれがエリア境界である。図21を正面から見て、上方のエリアをエリアA、下方のエリアをエリアBとする。以下、エリアA、エリアBに対して、4ラインのバンド処理幅で、画像サイズを縮小する変倍処理を行った場合の例について説明する。
図22は、図21に示すエリアAとエリアBにおいて、画素を削除するランダムな位置が特定された様子を表した図である。図23は、図22に示した位置で画素を削除した結果、つまり、画像サイズを縮小する変倍処理を行った結果を示した図である。図23に示す網線で塗られた位置のマスは、縮小する変倍処理によって画素が削除された位置を示している。図23では、変倍処理によりエリアA、エリアBともに副走査方向に1ライン減算され、その結果、副走査エリア長が9画素から8画素となっている様子が見てとれる。
図24は、図23に示す画像を4ラインのバンド処理幅でバンド処理した場合の出力画像データ(走査1から走査5)と、変倍処理に必要なラインデータ及びラインバッファ数を表した図である。なお、画像形成装置の副走査方向の変倍率が十分小さく、画素の挿入又は削除の頻度がバンド処理幅より小さい場合を例に挙げて説明する。具体的には、例えばバンド処理幅が4ラインの場合であれば、画素の挿入又は削除が4ラインに1回未満の頻度で行われる変倍率である。
画素の挿入が4ラインに1回の頻度で行われる倍率は、4ライン分の画像データが5ライン分に変換されるため、5/4=1.25となる。つまり、変倍率は125[%]である。また、画素の削除が4ラインに1回の頻度で行われる倍率は、4ライン分の画像データが3ライン分に変換されるため、3/4=0.75となる。つまり、変倍率は75[%]である。変倍率が75[%]から125[%]の範囲にあるとして説明する。
なお、既知の画像形成装置において多く使用される変倍率は、99[%]から101[%]の範囲である。また、バンド処理幅が異なる画像形成装置では、上記した倍率範囲が異なる場合がある。しかし、その場合においてもバンド処理幅は最大でも32ライン程度であり、99[%]から101[%]に対して、上記した75[%]から125[%]は十分に大きな範囲となる。
図24に示すように、走査1、走査2、走査4、走査5では、必要なラインバッファ数は5ライン(5line)である。これとは異なり、走査3では、必要なラインバッファ数が6ライン(6line)であることが見て取れる。走査1から走査5の中で、走査3のみ必要なラインバッファ数が1多くなる理由は、走査3がエリアAとエリアBに跨っており、このラインをバンド処理していることに起因する。通常は、一回の走査中に発生する画素の挿入又は削除の回数は、主走査位置毎に1回である。しかし、エリアを跨いだ走査では、エリアAの処理に用いられる乱数値と、エリアBの処理に用いられる乱数値の組み合わせによっては、画素の挿入又は削除が同じ主走査位置で2回発生する場合がある。例えば、図24に示す走査3の主走査位置Pにおいては、画素の削除が2回発生している。また、エリアAとエリアBに跨るラインをバンド処理する場合には、エリアAとエリアBの両方の乱数値を生成し、生成した乱数値を保持しなければならない。
そのため、エリアを跨いだ走査の画像処理のためのラインバッファと、2つの乱数生成器を予め画像形成装置に備えておく必要がある。そのため、画像形成装置の製造コストが増加してしまう、という課題が残る。
本発明は、バンド処理で変倍処理を行う場合に必要なラインバッファと、乱数生成回路の数を削減することができる画像形成装置を提供することを、主たる目的とする。
本発明の画像形成装置は、受け付けた画像データを複数のエリアに分割する分割手段と、前記分割された各エリア毎に画素を挿入又は削除する位置を特定するための乱数値を生成する乱数生成手段と、前記画像データを主走査方向に走査する走査幅及び前記エリアの副走査方向の長さに応じて前記乱数生成手段が生成する乱数値の範囲を決定する決定手段と、前記決定された範囲内の乱数値で定めた位置へ画素を挿入し、又は、当該位置の画素を削除する画像処理を行う画像処理手段と、を有することを特徴とする。
本発明によれば、走査幅及びエリアの副走査方向の長さに応じて、生成される乱数値の範囲を決定する。この範囲内の乱数値を受け取り、受け取った当該乱数値で定めた位置へ画素を挿入し、又は、当該位置の画素を削除する画像処理を行う。これにより、画像処理に用いられる乱数値が決定された範囲内に制限される。そのため、変倍処理を行う場合に必要となるラインバッファと、乱数生成回路の数を削減することができる。また、画像形成装置の製造コストの低減を図ることができる。
画像形成装置の概略縦断面図。 露光制御部及び感光体の構成例を示す図。 画像処理部とその周辺の構成例を示すブロック図。 縮小又は拡大する処理の処理手順例を示すフローチャート。 図4に続く、フローチャート。 ステップS511からステップS515それぞれの処理の前後におけるラインバッファの格納データを模式的に示した図。 各走査目毎のカウンタvacntの変化の様子を表わした図。 乱数値を生成する処理の具体的な処理手順例を示すフローチャート。 (a)は、乱数発生器の動作原理を示す図。(b)は、シフト後の乱数出力回路のシード値を示す図。 画像出力処理の具体的な処理手順例を示すフローチャート。 一回の走査がエリアAとエリアBを跨ぐ場合の、カウンタvacntの取り得る値を例示した図。 縮小処理における、ラインバッファと出力画像の関係を説明するための図。 本実施形態の縮小処理における一連のフローを整理して表した図。 本実施形態の拡大処理における一連のフローを整理して表した図。 入力画像のエリア分割を説明するための図。 画素を挿入又は削除するランダムな位置の決定を説明するための図。 (a)は、拡大前の入力画像を示す図。(b)は、拡大後の画像を示す図。(c)は、縮小前の入力画像を示す図。(d)は、縮小後の画像を示す図。 入力画像の一例を示す図。 一例として、入力画像がバンド処理により4ライン毎に出力されることを説明するための図。 変倍処理のために必要なラインバッファ数を説明するための図。 エリアに分割された入力画像の一部を示した図。 エリアAとエリアBにおいて、画素を削除するランダムな位置が特定された様子を表した図。 図22に示した位置の画素を削除した結果を表した図。 バンド処理した場合の出力画像データと、必要なラインデータ及びラインバッファ数を表した図。
以下、図面を参照しながら実施形態例を説明する。
[実施形態例]
図1は、本実施形態に係る画像形成装置の概略縦断面図である。
この画像形成装置110は、原稿を所定の読取り部位まで給送する原稿給送部111、給送された原稿を読取る画像読取り部112、画像データに基づき作像する画像形成部113を含んで構成される。なお、画像形成装置110は、コピーモードとプリンタモードの2つのモードを有する。コピーモードは、画像読取り部112で読み取って得た画像信号(画像データ)を受け付け、受け付けた画像データを印刷するモードである。また、プリンタモードは、後述する外部PC48から出力された画像信号(画像データ)を受け付け、受け付けた画像データを印刷するモードである。
以下、画像形成装置110の基本的な動作について、図1を参照しながら説明する。
コピーモードの場合、原稿給送部111の原稿給紙装置1に積載された原稿は、1枚ずつ、画像読取り部112の原稿台ガラス面2上まで給送される。原稿が給送されると、画像読取り部112のスキャナユニット4に備わるランプ3が点灯し、原稿表面に光を照射すると共に、スキャナユニット4が副走査方向へと移動する。原稿表面からの反射光は、スキャナユニット4に備わるミラー5、ミラー6、7を介して集光部8を通過し、その後、イメージセンサ9に入力される。イメージセンサ9は、反射光を画像信号(画像データ)へ変換し、変換した画像データを画像形成部113の露光制御部10へ出力する。
また、プリンタモードの場合、外部PC48から受け付けた画像データが露光制御部10へと出力される。
露光制御部10は、受け付けた画像データに応じて、露光制御部10に搭載されたレーザ駆動装置を制御し、レーザ光を発生させる。レーザ光の照射により感光体11上に作られた潜像は、電位センサ100において、感光体11上の電位が所望の値になっているかどうかが監視される。所望の値のときは、現像器13により現像される。
感光体11は、露光制御部10の出力ライン毎に同期するように回転駆動され、簾状のライン走査を繰り返すことにより、画像を形成する。また、潜像タイミングにあわせて、転写部材積載部14又は15から転写部材が搬送され、転写部16に於いて、上記現像されたトナー像が転写部材の表面に転写される。転写されたトナー像は、定着部17で転写部材に定着された後、排出ローラ対18より装置外部に排出される。
転写後の感光体11の表面は、クリーナ25により清掃される。清掃された感光体11の表面は、補助帯電器26で除電され、1次帯電器28により良好な帯電を得られるように調整される。その上で、感光体11上の残留電荷を露光ランプ27により消去させて、1次帯電器28により感光体11の表面を帯電させる。画像形成装置110は、この工程を繰り返して複数枚の画像形成を行う。
転写部材の両面に画像を形成する場合は、転写部材の表面に画像が形成された後、定着部17から搬送された転写部材の後端がシート検知部19により検知されたときに、排出ローラ対18の回転を停止する。排出通路21に設けられたフラッパー20は、通路を反転通路22へ切り替える。その後、排出ローラ対18が逆転して、転写部材を反転通路22へ搬送する。転写部材は、反転通路22から反転搬送路入口23を経由して反転搬送路24へ搬送される。転写部材は、反転搬送路24から再び転写部16へ搬送されて、前記した画像形成動作と同様にして、転写部材の裏面に画像が形成される。
図2は、露光制御部10及び感光体11の構成例を示す図である。露光制御部10は、半導体レーザ43と、レーザ駆動装置31、絞り32、回転多面鏡(以下、ポリゴンミラーという。)33、f−θレンズ34、コリメータレンズ35、ビームディテクトセンサ(以下、BDセンサという。)36を含んで構成される。露光制御部10は、また、画像処理部50を有する。露光制御部10は、画像データに従ってパルス幅変調されたレーザ光を主走査方向に走査することにより、感光体11の表面を露光する。
イメージセンサ9又は外部PC48から受け付けた画像データは、画像処理部50に入力される。画像処理部50は、画像データに対して画像形成装置110の作像モードに応じたPWM(パルス幅変調)テーブル変換を行い、レーザ駆動信号としてレーザ駆動装置31に出力する。レーザ駆動装置31は、画像処理部50からレーザ駆動信号を受信し、レーザ駆動信号に基づいて半導体レーザ43を駆動する。
半導体レーザ43の内部には、レーザ光の一部を検出するPD(フォト・ダイオード)センサ(図示せず)が設けられている。画像処理部50は、PDセンサの検出信号を用いてレーザダイオードのオートパワーコントロール制御を行う。半導体レーザ43から発せられたレーザ光は、コリメータレンズ35及び絞り32によりほぼ平行光となり、所定の光径でポリゴンミラー33に入射する。ポリゴンミラー33は、矢印Qで示す方向に等角速度の回転をするように、図示しない駆動装置により駆動される。この回転に伴い、入射したレーザ光は、連続的に角度が変位された偏向ビームとなって反射される。
偏向ビームは、f−θレンズ34により集光する。その際、f−θレンズ34は、偏向ビームの歪曲収差の補正を行う。そのため、偏向ビームは、像担持体としての感光体11上に矢印Pの方向に向けて等速で結合走査される。
BDセンサ36は、ポリゴンミラー33からの反射光を検出する。BDセンサ36が出力する検出信号は、主走査方向の画像形成位置を一定にするために、ポリゴンミラー33の回転と画像データの書き込みを同期させるための同期信号(主走査同期信号)である。
上記プロセスにより、転写部材の表面に画像が形成される。画像が形成される際、転写されたトナー像を定着部17で定着する際に加えられる熱により、転写部材が伸縮してしまう場合がある。転写部材の伸縮率は、転写部材の材質によってほぼ一定である。そのため、例えば印刷前に転写部材の種類をユーザが指定し、この指定に応じて画像処理部50が伸縮率の逆数の変倍処理を行うことで対処することができる。また、転写部材の種類の指定は、例えば後述するコントロールパネル49を介して行ったり、外部PC48から行ったりすることができる。
図3は、画像処理部50とその周辺の構成例を示すブロック図である。画像処理部50は、CPU(Central Processing Unit)51、画像セレクタ52、ラインバッファ53、乱数バッファ54を含んで構成される。画像処理部50は、スキャナユニット4、イメージセンサ9、BDセンサ36、外部PC48、コントロールパネル49、レーザ駆動装置31と接続される。
CPU51は、画像処理部50及び画像形成装置110が有する各構成機器を制御する。画像セレクタ52は、コピーモード又はプリンタモードに応じて、受け付ける画像データを選択する。具体的には、コピーモードの場合では、図3に示すようにイメージセンサ9から出力される画像データCを選択するように動作する。また、プリンタモードの場合では、図3に示すように外部PC48から出力される画像データPを選択するように動作する。ラインバッファ53は、所定のライン分だけ画像データを格納する。乱数バッファ54は、CPU51が生成した1エリア分の乱数値を格納する。
外部PC48は、ユーザからのプリント開始指示の受け付けを契機に、画像形成開始信号Pを出力する。外部PC48は、また、ユーザが設定した倍率Pを出力する。この倍率Pは、例えば10[%]縮小して印刷したり、10[%]拡大して印刷したりする場合にユーザが設定する。外部PC48は、CPU51からの画像データ要求信号Pの受け付けを契機に、1ライン分の画像データPの出力を行う。
コントロールパネル49は、ユーザからのコピー開始指示の受け付けを契機に、画像形成開始信号Cを出力する。コントロールパネル49は、また、ユーザが設定した倍率Cを出力する。この倍率Cは、例えば10[%]縮小して印刷したり、10[%]拡大して印刷したりする場合にユーザが設定する。スキャナユニット4は、CPU51からの画像データ要求信号Cの受け付けを契機に、1ライン分の画像データをイメージセンサ9から出力するために副走査方向へ移動する。
スキャナユニット4の副走査方向の移動について、画像形成装置110の解像度が600[dpi]である場合を例に挙げて説明する。解像度600[dpi]の場合の1ラインの長さは、25.4[mm]/600[dpi]により求められる。この場合の1ラインの長さは0.04233[mm]である。スキャナユニット4が副走査方向へ0.04233[mm]移動すれば、解像度600[dpi]の場合における1ライン相当分を移動したことになる。イメージセンサ9は、移動後のスキャン位置でスキャンした結果を画像信号に変換する。変換された画像信号は、画像データCとして出力される。
なお、画像データ要求信号C及び、画像データ要求信号Pは、1ページ分の作像動作中に複数回発生する。例えば、副走査が210[mm]のページ全体を作像する場合は、210[mm]/0.04233[mm]≒4960[回]の要求信号が発生する。発生タイミングについては後述する。
図4及び図5は、画像サイズを縮小又は拡大する処理の処理手順例を示すフローチャートである。初めに、プリンタモード時における縮小処理について説明する。
画像形成装置110、外部PC48から画像形成開始信号Pの受信及び画像データPの受け付けを契機に、作像を開始する。なお、画像データPとして受け付けた入力画像は、主走査方向及び副走査方向に配列された画素の集合である。主走査方向の長さを表す主走査方向入力画像サイズin_xが14画素、副走査方向の長さを表す副走査方向入力画像サイズin_yが20画素である場合を例に挙げて説明する。また、バンド処理幅dを4画素(4ライン)、倍率pを90.9090・・・[%]、ラインバッファ53のライン数Lを5(d+1=4+1=5)とする。ラインバッファ53の各ラインをそれぞれ、ラインバッファL0、L1、L2、L3、L4とする。
CPU51は、入力画像の画像サイズ(走査方向入力画像サイズin_xの値及び副走査方向入力画像サイズin_yの値)を取得する(S501)。具体的には、主走査方向の画素列が14画素、副走査方向の画素列が20画素である。
CPU51は、外部PC48から倍率情報(倍率pの値)を取得する(S502)。具体的には、90.9090・・・[%]である。
CPU51は、入力画像を副走査方向に分割し、分割された各エリア毎の副走査長ayの画素数を演算する(S503)。縮小処理の場合は、各エリア内で副走査方向の画素列から1画素削除されることから、下記の式1で求めることができる。
ay−1/ay = p/100・・・(式1)
また、式1を整理すると下記の式2のようになる。
ay=100/(100−p)・・・(式2)
縮小処理における副走査長ayは、ay = 100/(100−90.9090…)=11[画素]となる。つまり、11ラインに1回の頻度で画素の削除が行われる。
CPU51は、副走査カウンタvcnt及びカウンタvacntそれぞれを初期化する(S504)。副走査カウンタvcntは、出力画像の総出力ライン数をカウントするためのものである。ステップS504の処理により、副走査カウンタvcntの値は0(ゼロ。以下同じ。)に初期化される。カウンタvacntは、各エリア毎における出力ライン数をカウントするためのものである。縮小処理の場合のカウンタvacntの最大値vacnt(max)は、vacnt(max)=ay−1−1で表される。これは、カウンタvacntは「0」からカウントが開始されることに対する「−1」と、当初11画素であった副走査長ayが10画素となり、1画素早くエリアが終了することに対する「−1」を反映している。なお、拡大処理におけるカウンタvacntの最大値vacnt(max)は、vacnt(max)=ay−1+1となる。詳細は後述する。
また、バンド処理幅dが4ラインであることから、一回の走査毎にカウンタvacntの値に4が加算(+4)される。ただし、加算した結果、最大値vacnt(max)の値を超えた場合は、その超えた分について0からカウントし直す。
ここでは、バンド処理により出力された画像データにおいて、カウンタvacntの1ライン目をカウンタvacnt(0)、2ライン目をカウンタvacnt(1)、3ライン目をカウンタvacnt(2)、4ライン目をカウンタvacnt(3)とする。カウンタvacntを初期化すると、カウンタvacnt(0)=0、カウンタvacnt(1)=1、カウンタvacnt(2)=2、カウンタvacnt(3)=3となる。
CPU51は、ラインバッファ53を初期化する(S505)。具体的には、ラインバッファL0、L1、L2、L3、L4の全てのバッファに対して、データ0で上書きを行う。
CPU51は、BDセンサ36から主走査同期信号を受け付けたか否かを判別する(S506)。主走査同期信号の受け付けを契機に(S506:yes)、CPU51はエリア更新、つまり、新しいエリアで処理が開始されるか否かを判別する(S507)。具体的には、カウントvacnt(0)からカウントvacnt(3)までのいずれかの値が0であれば、エリア更新したと判別する。エリア更新したと判別した場合(S507:yes)、ステップS508の処理へ進む。また、そうでない場合(S507:no)、ステップS515の処理へ進む。
CPU51は、画像の出力が1走査目(一回目の走査)であるか否かを判別する(S508)。具体的には、副走査カウンタvcntの値が0であれば、1走査目であると判別する。1走査目であると判別した場合(S508:yes)、S510の処理へ進む。また、そうでない場合(S508:no)、S509の処理へ進む。
CPU51は、倍率pの値に基づいて、縮小処理又は拡大処理のいずれの処理であるかを判別する(S509)。縮小処理であると判別した場合(S509:yes)、S511の処理へ進む。また、そうでない場合(S509:no)、S512の処理へ進む。
CPU51は、倍率pの値に基づいて、縮小処理又は拡大処理のいずれの処理であるかを判別する(S510)。縮小処理であると判別した場合(S510:yes)、S513の処理へ進む。また、そうでない場合(S510:no)、ステップS514の処理へ進む。
CPU51は、ラインバッファ53の更新を行う(S511)。具体的には、CPU51は、外部PC48に対して画像データ要求信号Pを5回出力する。そして、画像データ要求信号Pに応答して外部PC48から出力された5ライン分の画像データを、ラインバッファL0、L1、L2、L3、L4の順番で格納する。
CPU51は、ラインバッファ53の更新を行う(S512)。具体的には、CPU51は、ラインバッファL3に格納されている画像データをコピーし、コピーした画像データをラインバッファL0に格納する。また、ラインバッファL4に格納されている画像データをコピーし、コピーした画像データをラインバッファL1に格納する。そして、外部PC48に対して画像データ要求P信号を3回出力する。CPU51は、画像データ要求信号Pに応答して外部PC48から出力された3ライン分の画像データを、ラインバッファL2、L3、L4の順番で格納させる。
CPU51は、ラインバッファ53の準備を行う(S513)。ステップS513の処理は、一回目の走査における縮小処理を行うため、ラインバッファ53に画像データを格納する処理である。具体的には、CPU51は、外部PC48に対して画像データ要求P信号を5回出力する。そして、画像データ要求信号Pに応答して外部PC48から出力された5ライン分の画像データを、ラインバッファL0、L1、L2、L3、L4の順番で格納する。
CPU51は、ラインバッファの準備を行う(S514)。ステップS514の処理は、一回目の走査における拡大処理を行うため、ラインバッファ53に画像データを格納する処理である。具体的には、CPU51は、ラインバッファL0に格納されている画像データをデータ0で上書きを行い、全てのデータをクリアする。CPU51は、外部PC48に対して画像データ要求P信号を4回出力する。そして、画像データ要求信号Pに応答して外部PC48から出力された4ライン分のデータを、ラインバッファL1、L2、L3、L4の順番で格納する。
CPU51は、ラインバッファ53の更新を行う(S515)。CPU51は、まずラインバッファL4に格納されている画像データをコピーし、コピーした画像データをラインバッファL0に格納する。CPU51は、外部PC48に対して画像データ要求P信号を4回出力する。そして、画像データ要求信号Pに応答して外部PC48から出力された4ライン分の画像データを、ラインバッファL1、L2、L3、L4の順番で格納する。
ここで、ステップS511からステップS515それぞれの処理の前後における、ラインバッファL0、L1、L2、L3、Lそれぞれに格納されている画像データについて説明する。図6は、ステップS511からステップS515それぞれの処理の前後の、ラインバッファL0、L1、L2、L3、L4それぞれの格納データを模式的に表した図である。図6では、各ステップの処理前を「更新・準備前」とし、処理後を「更新・準備後」として示している。例えば、図6中に示す「line1」は、入力画像の先頭ラインの画像データである。また、図6中に示す「N」は、1以上の任意の整数である。図6中に示す「0(データ0)」は、入力画像とは無関係に、全てのデータが0であることを示している。なお、図6中の網線で囲まれているラインは、処理の前後で共通して使用される画像データである。例えば、ステップS512の処理にでは、「lineN+3」と「lineN+4」である。
図5に戻り、CPU51は、一回の走査における全ての主走査位置に対する乱数rndを生成する(S516)。本実施形態の画像形成装置110では、生成する乱数値rndの最大値と最小値から定まる範囲の幅が、「0」から「カウンタvacntの最大値vacnt(max)−バンド処理幅d+1」の範囲となるように制限される。例えば、最大値vacnt(max)の値が9、バンド処理幅dの値が4であれば、CPU51は、ランダムな位置を特定するために使用する乱数値rndを、「0」から「6」の範囲に制限する。乱数値rndの範囲の詳細については、後述するステップS702(図10)の処理の説明の際に説明する。また、具体的な乱数発生手順については、後述するステップS600からステップS607(図8)の処理において説明する。
ステップS517からステップS524の各処理は、一回の走査における画像処理である。
CPU51は、主走査位置xを0に初期化する(S517)。CPU51は、主走査位置xに対応する乱数値rndを、乱数バッファ54から取得する(S518)。
CPU51は、取得した乱数値rndと、カウンタvacnt(0)からvacnt(3)の各値、倍率pの値に基づいて、変倍処理を行う(S519)。具体的な変倍処理順については、後述するステップS700からステップS714(図10)の各処理において説明する。
CPU51は、主走査位置xを更新する(S520)。具体的には、主走査位置xの値に1を加算(+1)する。
CPU51は、主走査位置xの値と、入力画像の主走査方向入力画像サイズin_xの値とを比較して、全ての主走査位置で画像処理が行われたか否かを判別する(S521)。具体的には、「x≧in_x−1」が満たされたとき、全ての主走査位置で画像処理が行われたと判別する。全ての主走査位置で画像処理が行われたと判別した場合(S521:yes)、ステップS522の処理へ進む。また、そうでない場合(S521:no)、ステップS518の処理へ戻る。
CPU51は、カウンタvacntを更新する(S522)。具体的には、カウンタvacnt(0)からカウンタvacnt(3)それぞれの値に4を加算(+4)する。ただし、前述した通り、縮小処理時のカウンタvacntの最大値vacnt(max)は、vacnt(max)=ay−1−1である。そのため、最大値を超えた場合は、その超えた分を0からカウントし直す。
一例として、ay=11、vacnt(max)=9、vacnt(0)=5、vacnt(1)=6、vacnt(2)=7、vacnt(3)=8である場合の更新について説明する。この場合に、カウンタvacnt(0)からカウンタvacnt(3)を更新すると、以下に示す(a)から(d)のようになる。
(a)vacnt(0)=5+4=9
(b)vacnt(1)=6+4=10、よって、vacnt(1)=0
(c)vacnt(2)=7+4=11、よって、vacnt(2)=1
(d)vacnt(3)=8+4=12、よって、vacnt(3)=2
各走査目毎のカウンタvacnt(0)からカウンタvacnt(3)それぞれの値を図7に示す。図7に示すように、例えばカウンタvacnt(0)の値は、5走査目においては6、6走査目においては0となっている。
CPU51は、副走査カウンタvcntを更新する(S523)。具体的には、副走査カウンタvcntの値に4を加算(+4)する。
CPU51は、画像出力が全て終了したか否かを判別する(S524)。出力画像の総ライン数は、副走査方向入力画像サイズin_yの値に倍率pの値を乗算したものである。具体的には、「vcnt≧[in_y×p]([ ]は、中の値を超える最小の整数を表わす記号である。)」が満たされた場合、画像出力が全て終了したと判別する。画像出力が全て終了したと判別した場合(S524:yes)、一連の作像を終了する。また、そうでない場合(S524:no)、ステップS506の処理へ戻り、次走査の画像処理を行う。なお、副走査方向入力画像サイズin_yは1からカウントが開始され、副走査カウンタvcntは0からカウントが開始される。
ここで、ステップS516の処理について具体的に説明する。図8は、ステップS516の処理(乱数値rndを生成する処理)の具体的な処理手順例を示すフローチャートである。
CPU51は、主走査カウンタxxを初期化(xx=0)する(S601)。CPU51は、乱数を1つ生成する(S602)。
ここで、乱数値について詳しく説明する。本実施形態では、乱数出力回路の一例として、原始多項式を利用した疑似乱数生成法を使用して乱数値を生成し、生成した乱数値を出力するものについて説明する。図9(a)、(b)は、16次の原始多項式を回路化した乱数出力回路を模式的に示した図である。
乱数出力回路は、16個の2値データの記録素子を縦列接続するとともに、いずれかの記録素子間に3つの論理演算回路を介在させて構成される。複数個の記録素子を、それぞれbit(ビット)15からbit0(図9(a)中では、15、14・・・と示している)と定義する。また、bit14とbit13、bit13とbit12、bit11とbit10の間には、それぞれ論理演算回路の一例であるEXORゲートが介在する。シード値は、乱数値の種となるもので、乱数出力回路の各bitの2値データの集合として定義される。
図9(a)において、乱数出力回路のシード値は「1111011011001001」である。ここで、2^nが乱数値の最大値を超える最小の指数nを求める。本実施形態においては、乱数値の最大値が6であることから、n=3となる。この指数nの値は、図19に示される乱数出力回路から、何bit分のデータを取得すれば良いかに対応する。本実施形態においては、bit2からbit0までの計3bitを取得する。
例えば、生成される乱数値は、このシード値のbit2からbit0の出力で決定される。図9(a)において、bit2からbit0の値を順に並べると、「001」となる。これを10進数化することにより、乱数値「1」が生成される。乱数値を再度生成したい場合は、記録素子が保持する2値データをそれぞれ所定方向に隣接する他の記録素子に移行させ、これにより変化したシード値に基づいて次の乱数値を生成する。具体的は、乱数出力回路のシード値を右側にシフトさせる。乱数出力回路のシード値を右側にシフトさせて、乱数値を再度生成するときの具体的な手順は以下の通りである。
(a)bit0の値を一時変数temp(図示省略)に保存する。
(b)bit0の値にbit1の値を代入する。
(c)bit1の値にbit2の値を代入する。
(d)bit2の値にbit3の値を代入する。
(e)bit3の値にbit4の値を代入する。
(f)bit4の値にbit5の値を代入する。
(g)bit5の値にbit6の値を代入する。
(h)bit6の値にbit7の値を代入する。
(i)bit7の値にbit8の値を代入する。
(j)bit8の値にbit9の値を代入する。
(k)bit9の値にbit10の値を代入する。
(l)bit10の値に一時変数tempとbit11のEXOR値を代入する。
(m)bit11の値にbit12の値を代入する。
(n)bit12の値に一時変数tempとbit13のEXOR値を代入する。
(o)bit13の値に一時変数tempとbit14のEXOR値を代入する。
(p)bit14の値にbit15の値を代入する。
(q)bit15の値に一時変数tempの値を代入する。
このように、(a)から(q)まで処理されて、次の乱数値が生成される。
図9(b)は、シフト後の乱数出力回路のシード値を示す図である。ここで、先ほどと同様に、このシード値のbit2からbit0の出力で決定されるとする。図9(b)において、bit2からbit0の値を順に並べると、「100」となる。これを10進数化することにより、乱数値「4」が生成される。
図8に戻り、CPU51は、ステップS602の処理で生成された乱数値rndが、決定された範囲を満たすものであるか否かを判別する(S603)。本実施形態においては、生成された乱数値rndが「0」から「6」の範囲内であるか否かが判別される。範囲外であった場合(S603:no)、CPU51は、乱数出力回路のシード値をシフトさせる(S604)。その後、改めて乱数値rndを生成させる。また、そうでない場合(S603:yes)、つまり、生成された乱数値rndが「6」以下であれば、CPU51は、この乱数値rndを乱数バッファ54に格納する(S605)。
CPU51は、主走査カウンタxxを1進める(S606)。具体的には、主走査カウンタxxの値を、xx=xx+1にする。
CPU51は、全ての主走査位置に対応する乱数値の生成が終了したか否かを判別する(S607)。なお、主走査方向入力画像サイズin_xは1からカウントが開始され、主走査カウンタxxは0からカウントが開始される。「主走査位置xx≧ 主走査方向入力画像サイズin_x−1」となったときに、全ての主走査位置に対応する乱数値の生成が終了したと判別する。生成が終了したと判別した場合(S607:yes)、ステップS608の処理へ進む。また、そうでない場合(S607:no)、S602の処理へ戻る。
このように、ステップS601からステップS607の各処理により、各主走査位置に対応した乱数値rndの全てが、乱数バッファ54に格納される。
図5に示すステップS519の処理について具体的に説明する。図10は、ステップS519の処理(画像出力処理)の具体的な処理手順例を示すフローチャートである。図10に示す処理は、カウンタvacnt(0)、カウンタ vacnt(1)、カウンタ vacnt(2)、カウンタvacnt(3)それぞれに対して行われる。つまり、カウンタvacnt(0)を用いた処理は、出力画像の1ライン目のデータを決定し、カウンタvacnt(1)を用いた処理は、出力画像の2ライン目のデータを決定する。また、カウンタvacnt(2)を用いた処理は3ライン目、カウンタvacnt(3)を用いた処理は4ライン目のデータを決定する。ここでは、代表してカウンタvacnt(0)を例に挙げて説明する。なお、カウンタvacnt(1)、カウンタvacnt(2)、カウンタvacnt(3)に対しても同様に処理される。
CPU51は、倍率pの値に基づいて、縮小処理又は拡大処理のいずれの処理であるかを判別する(S701)。縮小処理であると判別した場合(S701:yes)、ステップS702の処理へ進む。また、そうでない場合(S701:no)、ステップS708の処理へ進む。ここでは、縮小処理であることから(S701:yes)、ステップS702の処理へ進む。
なお、ステップS708からステップS713の各処理は、後述する拡大処理の処理手順である。
CPU51は、カウンタvacnt(0)と、エリアの副走査長ay、バンド処理幅dを比較する(S702)。具体的には、「vacnt(0)≦vacnt(max)−d+1」を満たす場合(S702:yes)、ステップS703の処理へ進む。また、そうでない場合(S702:no)、S707の処理へ進む。
ここで、ステップS702の処理における比較式「vacnt(0)≦vacnt(max)−d+1」の「vacnt(max)−d+1」について説明する。エリアの境界線近くをバンド処理する場合には、2つのエリアに跨って処理が行われる場合がある。例えば、一回の走査において、1ライン目と2ライン目のエリア(一例として、エリアA。)と、3ライン目と4ライン目のエリア(一例として、エリアB。)が異なる場合である。
図11は、一回の走査がエリアAとエリアBを跨いで行われる場合の、カウンタvacnt(0)からカウンタvacnt(3)の取り得る値を例示した図である。バンド処理幅dは4ラインであるため、図11中に示す(a)から(e)のパターンでは、以下のような値をとる。
(a):vacnt(0)=0、vacnt(1)=1、vacnt(2)=2、vacnt(3)=3
(b):vacnt(0)=9、vacnt(1)=0、vacnt(2)=1、vacnt(3)=2
(c):vacnt(0)=8、vacnt(1)=9、vacnt(2)=0、vacnt(3)=1
(d):vacnt(0)=7、vacnt(1)=8、vacnt(2)=9、vacnt(3)=0
(e):vacnt(0)=6、vacnt(1)=7、vacnt(2)=8、vacnt(3)=9
図11中の(b)、(c)、(d)それぞれの状態が、エリアAとエリアBを跨いで処理が行われるパターンである。この場合のカウンタvacntの値は、縮小処理時のカウンタvacntの最大値vacnt(max)とバンド処理幅dを変数として考えると、「vacnt(max)−d+2≦vacnt≦vacnt(max)」である。
既知の画像形成装置に採用されている構成では、エリア内の全ての副走査位置が画素の挿入又は削除の対象となり得る。この場合、乱数値rndを「0≦rnd≦ay−1」の範囲で生成し、一回の走査で2つのエリアに跨って処理する際には、エリアA、Bの双方について、カウンタvacntと乱数値rndとの比較が必要となる。つまり、乱数値を2つエリア分保持する必要が生じる。さらに、2つのエリアに跨って処理を行う場合、画素の削除が同じ主走査位置で2回の行われる場合がある。この場合の例について、図12を用いて説明する。
図12は、一例として主走査位置xがx=5、エリアAの乱数値を8、エリアBの乱数値を1とした場合の縮小処理における、ラインバッファと出力画像の関係を説明するための図である。図12では、エリアAの乱数値rnd(A)が「8」、エリアBの乱数値rnd(B)が「1」であるため、同一主走査上にある削除対象1(linebuf1(A))、削除対象2(linebuf4(D))の2つの画素が削除される。出力画像においては、その分だけ副走査方向にシフトされることになり、図12に示すように、line1(B)、line2(C)、line3(E)、line4(F)となる。つまり、この場合の縮小処理では、ラインバッファ53のライン数Lは、バンド処理幅d+2ライン分を必要とする。
本実施形態の画像形成装置110では、乱数値rndの範囲を制限することにより、例えばエリアAとエリアBを跨ぐ走査より前の走査において、エリアA側の処理において挿入又は削除の対象となる画素が必ず存在するように制御される。その結果、エリアAとエリアBを跨ぐ走査においては、エリアAに対する乱数値rndは必要がなくなり、エリアBに対する乱数値rndのみを必要とする。また、一回の走査において、画素の削除が同じ主走査位置で2回以上行われることがなくなる。そのため、ラインバッファ53のライン数Lは、バンド処理幅d+1ライン分で良いことになる。
乱数値rndの範囲は、図11から「0≦rnd≦vacnt(max)−d+1」であることが見て取れる。この条件を満たすことにより、ステップS702の処理では、「vacnt(0)≦= vacnt(max)−d+1」を満たさない場合、エリアAの乱数値を参照する必要がないことから、ステップS707の処理へ進むことができる。
図10に戻り、CPU51は、ステップS518(図5)の処理で取得した、主走査位置xに対応する乱数値rndの値と、カウンタvacnt(0)の値とを比較する(S703)。比較した結果、「rnd≦vacnt(0)」である場合(S703:yes)、ステップS704の処理へ進む。また、そうでない場合(S703:no)、ステップS707の処理へ進む。
CPU51は、ステップS518(図5)の処理で取得した、主走査位置xに対応する乱数値rndの値と、カウンタvacnt(0)の値とを比較する(S704)。比較の結果、「rnd=vacnt(0)」である場合(S704:yes)、ステップS705の処理へ進む。また、そうでない場合(S704:no)、ステップS706の処理へ進む。
CPU51は、縮小処理(変倍出力処理)を行う(S705)。具体的には、カウンタvacnt(0)に関する処理では、ラインバッファL1から主走査位置xに対応するデータを取得し、これを出力する。また、カウンタvacnt(1)に関する処理では、ラインバッファL2から主走査位置xに対応するデータを取得し、これを出力する。カウンタvacnt(2)に関する処理では、ラインバッファL3から主走査位置xに対応するデータを取得し、これを出力する。カウンタvacnt(3)に関する処理では、ラインバッファL4から主走査位置xに対応するデータを取得し、これを出力する。これらの処理により、エリア内において乱数値rndで特定された位置で1画素削除したことになる。
CPU51は、乱数前出力処理を行う(S706)。この場合の乱数前出力処理は、縮小処理において、変倍処理を行わない通常の画像出力処理である。具体的には、カウンタvacnt(0)に関する処理では、ラインバッファL0から主走査位置xに相当するデータを取得し、これを出力する。また、カウンタvacnt(1)に関する処理では、ラインバッファL1から主走査位置xに相当するデータを取得し、これを出力する。カウンタvacnt(2)に関する処理では、ラインバッファL2から主走査位置xに相当するデータを取得し、これを出力する。カウンタvacnt(3)に関する処理では、ラインバッファL3から主走査位置xに相当するデータを取得し、これを出力する。
CPU51は、乱数後出力処理を行う(S707)。この場合の乱数後出力処理は、エリア内のカウントvacnt(0)からカウントvacnt(3)より前のラインで縮小処理が既に行われたことに対する、1画素早く出力するための処理である。具体的には、カウンタvacnt(0)に関する処理では、ラインバッファL1から主走査位置xに相当するデータを取得し、これを出力する。また、カウンタvacnt(1)に関する処理では、ラインバッファL2から主走査位置xに相当するデータを取得し、これを出力する。カウンタvacnt(2)に関する処理では、ラインバッファL3から主走査位置xに相当するデータを取得し、これを出力する。カウンタvacnt(3)に関する処理では、ラインバッファL4から主走査位置xに相当するデータを取得し、これを出力する。
図13は、本実施形態の縮小処理における一連のフローを整理して表した図である。図13では、入力画像、ラインバッファL0、L1、L2、L3、L4それぞれに格納される画像データ、乱数値(A、B)を模式的に表している。図13は、さらに、出力画像データ、カウンタvacnt(0)からvacnt(3)の値を示した上で、各走査毎(走査1から走査5)に整理したものである。
次に、プリンタモード時における画像の拡大処理について説明する。基本的な処理手順は縮小処理の場合に準じて行われる。以下、縮小処理の場合の処理手順とは異なる点を中心に説明する。
なお、主走査方向入力画像サイズin_xを14画素、副走査方向入力画像サイズin_yを20画素、バンド処理幅dを4画素(4ライン)、倍率pを111.111111・・・[%]である場合を例に挙げて説明する。また、ラインバッファ53のライン数Lを5(d+1=4+1=5)とし、それぞれをラインバッファL0、L1、L2、L3、L4とする。
ステップS502(図4)の処理において、CPU51は、外部PC48から倍率情報(倍率pの値)を取得する。具体的には、111.111111・・・[%]である。
ステップS503(図4)の処理において、CPU51は、入力画像を副走査方向に分割し、分割された各エリアの副走査長ayの画素数を演算する。拡大処理の場合は、各エリア内で副走査方向の画素列に1画素挿入されることから、下記の式3で求めることができる。
ay+1/ay=p/100・・・(式3)
また、式3を整理すると式4のようになる。
ay=100/(p−100)・・・(式4)
拡大処理における副走査長ayは、ay=100/(111.111111・・・−100)=9[画素]となる。つまり、9ラインに1回の頻度で画素の挿入が行われる。
ステップS522(図5)の処理において、CPU51は、カウンタvacntを更新する。具体的には、カウンタvacnt(0)からカウンタvacnt(3)それぞれの値に4を加算(+4)する。ただし、拡大処理時のカウンタvacntの最大値vacnt(max)は、vacnt(max)=ay−1+1である。そのため、最大値を超えた場合は、その超えた分を0からカウントし直す。
一例として、ay=9、vacnt(max)=9、vacnt(0)=5、vacnt(1)=6、vacnt(2)=7、vacnt(3)=8である場合の更新について説明する。この場合に、カウンタvacnt(0)からカウンタvacnt(3)を更新すると、以下に示す(a)から(d)のようになる。
(a)vacnt(0)=5+4=9
(b)vacnt(1)=6+4=10、よって、vacnt(1)=0
(c)vacnt(2)=7+4=11、よって、vacnt(2)=1
(d)vacnt(3)=8+4=12、よって、vacnt(3)=2
拡大処理における、図5に示すステップS519の処理(画像出力処理)について、図10を参照しながら具体的に説明する。なお、縮小処理の場合と同様に、拡大処理においてもカウンタvacnt(0)、カウンタ vacnt(1)、カウンタ vacnt(2)、カウンタvacnt(3)それぞれに対して処理が行われる。
ステップS701(図10)の処理において、CPU51は、倍率pの値に基づいて、縮小処理又は拡大処理のいずれの処理であるかを判別する。ここでは、拡大処理であることから(S701:no)、ステップS708(図10)の処理へ進む。以下、ステップS708からステップS713の各処理について説明する。
CPU51は、カウンタvacnt(0)と、各エリアの副走査長ay、バンド処理幅dを比較する(S708)。具体的には、「vacnt(0)≦vacnt(max)−d+1」を満たす場合(S708:yes)、ステップS709の処理へ進む。また、そうでない場合(S708:no)、ステップS713の処理へ進む。
CPU51は、ステップS518(図5)の処理で取得した、主走査位置xに対応する乱数値rndの値と、カウントvacnt(0)の値とを比較する(S709)。比較した結果、「rnd≦vacnt(0)」である場合(S709:yes)、ステップS710の処理へ進む。また、そうでない場合(S709:no)、ステップS713の処理へ進む。
CPU51は、ステップS518(図5)の処理で取得した、主走査位置xに対応する乱数値rndの値とカウンタvacnt(0)の値とを比較する(S710)。比較した結果、「rnd=vacnt(0)」である場合(S710:yes)、ステップS711の処理へ進む。また、そうでない場合(S710:no)、ステップS712の処理へ進む。
CPU51は、拡大処理(変倍出力処理)を行う(S711)。具体的には、カウンタvacnt(0)に関する処理では、ラインバッファL0から主走査位置xに対応するデータを取得し、これを出力する。また、カウンタvacnt(1)に関する処理では、ラインバッファL1から主走査位置xに対応するデータを取得し、これを出力する。カウンタvacnt(2)に関する処理では、ラインバッファL2から主走査位置xに対応するデータを取得し、これを出力する。カウンタvacnt(3)に関する処理では、ラインバッファL3から主走査位置xに対応するデータを取得し、これを出力する。これらの処理により、エリア内において乱数値rndで特定された位置で1画素挿入したことになる。
CPU51は、乱数前出力処理を行う(S712)。この場合の乱数前出力処理は、拡大処理において、変倍処理を行わない通常の画像出力処理である。具体的には、カウンタvacnt(0)に関する処理では、ラインバッファL1から主走査位置xに相当するデータを取得し、これを出力する。また、カウンタvacnt(1)に関する処理では、ラインバッファL2から主走査位置xに相当するデータを取得し、これを出力する。カウンタvacnt(2)に関する処理では、ラインバッファL3から主走査位置xに相当するデータを取得し、これを出力する。カウンタvacnt(3)に関する処理では、ラインバッファL4から主走査位置xに相当するデータを取得し、これを出力する。
CPU51は、乱数後出力処理を行う(S713)。この場合の乱数後出力処理は、エリア内のカウントvacnt(0)からカウントvacnt(3)より前のラインで拡大処理が既に行われたことに対する、1画素遅く出力するための処理である。具体的には、カウンタvacnt(0)に関する処理では、ラインバッファL0から主走査位置xに相当するデータを取得し、これを出力する。また、カウンタvacnt(1)に関する処理では、ラインバッファL1から主走査位置xに相当するデータを取得し、これを出力する。カウンタvacnt(2)に関する処理では、ラインバッファL2から主走査位置xに相当するデータを取得し、これを出力する。カウンタvacnt(3)に関する処理では、ラインバッファL3から主走査位置xに相当するデータを取得し、これを出力する。
図14は、本実施形態の拡大処理における一連のフローを整理して表した図である。図14では、入力画像(エリアA、B、C)、ラインバッファL0、L1、L2、L3、L4それぞれに格納される画像データ、乱数値(A、B、C)を模式的に表している。図14は、さらに、出力画像データ、カウンタvacnt(0)からvacnt(3)の値を示した上で、各走査毎(走査1から走査6)に整理したものである。
なお、画像形成装置110がコピーモードである場合でも、プリンタモードの場合に準じて、入力画像の縮小処理又は拡大処理が行われる。なお、プリンタモードの場合と異なる点は、信号及び各種データの授受の対象が外部PC48に代えて、コントロールパネル49、スキャナユニット4及びイメージセンサ9になる点である。この場合、プリンタモードにおける画像形成開始信号Pは、コピーモードにおける画像形成開始信号Cとなる。また、プリンタモードにおける倍率Pはコピーモードにおける倍率Cとなる。プリンタモードにおける画像データ要求信号Pは、コピーモードにおける画像データ要求信号Cとなる。プリンタモードにおける画像データPは、コピーモードにおける画像データCとなる。
このように、本実施形態の画像形成装置110では、走査幅(バンド処理幅d)及びエリアの副走査方向の長さ(副走査長ay)に基づいて、CPU51は、乱数発生器が生成する乱数値rndの範囲を決定する。具体的には、生成される乱数値rndは、「0」から「カウンタvacntの最大値vacnt(max)−バンド処理幅d+1」の範囲内に制限される。この範囲内の乱数値rndを受け取り、受け取った当該乱数値rndで定めた位置へ画素を挿入し、又は、当該位置の画素を削除する画像処理を行う。
これにより、変倍処理を行う場合に必要なラインバッファ53のライン数Lと、乱数生成回路の数を削減することができる。また、画像形成装置110の製造コストの低減を図ることができる。
なお、縮小処理では、vacnt(max)=ay−1−1であることから、「カウンタvacntの最大値vacnt(max)−バンド処理幅d+1」は、「副走査長ay−バンド処理幅d−1」と表すことができる。つまり、副走査長ayの値からバンド幅dの値を減算し、さらに、「1」を減算(−1)した値以下となる。
また、拡大処理では、vacnt(max)=ay−1+1であることから、「カウンタvacntの最大値vacnt(max)−バンド処理幅d+1」は、「副走査長ay−バンド処理幅d+1」と表すことができる。つまり、副走査長ayの値からバンド幅dの値を減算し、さらに、「1」を加算(+1)した値以下となる。
本実施形態の説明においては、分割された各エリアの副走査長ayの値が一定である場合を例に挙げて説明した。これに限らず、副走査長ayの値は各エリアで異なるものであっても良い。その際、副走査長ayの値を用いる演算式においては、処理対象のエリアの副走査長ayの値を用いることになる。また、副走査長ayの値が小数点以下の値を含む場合、例えば演算結果がay=10.5となったときには、ay=10のエリアと、ay=11のエリアとを交互に配置すれば良い。
また、図8に示すステップS602からステップS604の各処理において生成された乱数値rndが、決定された範囲を外れる場合には、この範囲に収まるまで生成フローを繰り返す構成について説明した。この他、そもそも範囲を外れた乱数値rndが生成されないように、bitを決定してしまっても良い。例えば、乱数値rndの範囲を0から6と決定した場合、2^nが乱数値の最大値をこえる最小のnを求めることに代えて、2^nが乱数値の最大値をこえない最大のnを求めても良い。すると、n=2となり、これは2bitの乱数値を生成することを表す。つまり、乱数値rndが生成される範囲は、0から3の範囲になる。こうして生成された乱数値rndは、最大値6より必ず小さな値となるため、ステップS604(図8)の処理を経由することがなくなる。
また、拡大処理では、画素の挿入が行われるため、画素を削除する場合とは異なり、画素の挿入に応じて新しいデータを必要としない。しかし、入力画像の入力単位が複数ラインで固定されており、一度読みだしたデータは2度と読み出せないような構成の画像形成装置であれば、ラインバッファを削減する効果がある。このような構成の画像形成装置では、拡大処理によって遅れ方向にシフトされたデータをラインバッファに格納しておく必要がある。つまり、一回の走査で画素の挿入が2回上行われる場合があるため、2ライン分の画像データが次走査のために必要となる場合がある。
そのため、生成される乱数値rndを、「0」から「カウンタvacntの最大値vacnt(max)−バンド処理幅d+1」の範囲内に制限することにより、ラインバッファのライン数を削減することができる。
上記説明した実施形態は、本発明をより具体的に説明するためのものであり、本発明の範囲が、これらの例に限定されるものではない。
1・・・原稿給紙装置、2・・・原稿台ガラス面、3・・・ランプ、4・・・スキャナユニット、5、6、7・・・ミラー、8・・・集光部、9・・・イメージセンサ、10・・・露光制御部、11・・・感光体、13・・・現像器、14、15・・・転写部材積載部、16・・・転写部、17・・・定着部、18・・・排紙部、20・・・フラッパー、21・・・排出通路、22・・・反転通路、23・・・反転搬送路入口、24・・・反転搬送路、25・・・クリーナ、26・・・補助帯電器、27・・・露光ランプ、28・・・1次帯電器、31・・・レーザ駆動装置、32・・・絞り、33・・・ポリゴンミラー、34・・・f−θレンズ、35・・・コリメータレンズ、36・・・BDセンサ、43・・・半導体レーザ、48・・・外部PC、49・・・コントロールパネル、50・・・画像処理部、51・・・CPU、52・・・画像セレクタ、53・・・ラインバッファ、54・・・乱数バッファ、100・・・電位センサ、110・・・画像形成装置、111・・・原稿給送部、112・・・画像読取り部、113・・・画像形成部。

Claims (5)

  1. 受け付けた画像データを複数のエリアに分割する分割手段と、
    前記分割された各エリア毎に画素を挿入又は削除する位置を特定するための乱数値を生成する乱数生成手段と、
    前記画像データを主走査方向に走査する走査幅及び前記エリアの副走査方向の長さに応じて前記乱数生成手段が生成する乱数値の範囲を決定する決定手段と、
    前記決定された範囲内の乱数値で定めた位置へ画素を挿入し、又は、当該位置の画素を削除する画像処理を行う画像処理手段と、を有することを特徴とする、
    画像形成装置。
  2. 前記画像データは、画像の主走査方向及び副走査方向に配列された画素の集合であり、
    前記決定手段により決定された前記範囲は、前記エリアの副走査方向と平行となる各画素列のそれぞれにおいて、画素の挿入又は削除が2回以上行われない範囲であることを特徴とする、
    請求項1記載の画像形成装置。
  3. 前記決定手段は、一回の前記走査において前記走査幅が複数の前記エリアに跨がる場合に前記乱数生成手段が生成する乱数値の範囲を決定することを特徴とする、
    請求項1又は2記載の画像形成装置。
  4. 前記走査幅は画素数で表される幅であり、
    前記決定手段は、前記乱数生成手段が生成する乱数値の最大値と最小値から定まる前記範囲の幅を、「0」以上で、且つ、前記エリア内の画素を削除することにより副走査方向に前記画像を縮小する画像処理の場合には前記エリアの副走査方向の画素数から前記走査幅を減算した結果から、さらに「1」を減算した値以下とすることを特徴とする、
    請求項1、2、又は3記載の画像形成装置。
  5. 前記走査幅は画素数で表される幅であり、
    前記決定手段は、前記乱数生成手段が生成する乱数値の最大値と最小値から定まる前記範囲の幅を、「0」以上で、且つ、前記画素を挿入することにより副走査方向に前記画像を拡大する画像処理の場合には前記エリアの副走査方向の画素数から前記走査幅を減算した結果に「1」を加算した値以下とすることを特徴とする、
    請求項1、2、又は3記載の画像形成装置。
JP2014071949A 2014-03-31 2014-03-31 画像形成装置 Active JP6230466B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014071949A JP6230466B2 (ja) 2014-03-31 2014-03-31 画像形成装置
US14/670,771 US9672452B2 (en) 2014-03-31 2015-03-27 Image forming apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014071949A JP6230466B2 (ja) 2014-03-31 2014-03-31 画像形成装置

Publications (2)

Publication Number Publication Date
JP2015195471A JP2015195471A (ja) 2015-11-05
JP6230466B2 true JP6230466B2 (ja) 2017-11-15

Family

ID=54190858

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014071949A Active JP6230466B2 (ja) 2014-03-31 2014-03-31 画像形成装置

Country Status (2)

Country Link
US (1) US9672452B2 (ja)
JP (1) JP6230466B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6066955B2 (ja) * 2014-04-04 2017-01-25 キヤノン株式会社 画像形成装置
US10580122B2 (en) * 2015-04-14 2020-03-03 Chongqing University Of Ports And Telecommunications Method and system for image enhancement
JP6655377B2 (ja) * 2015-12-16 2020-02-26 株式会社東芝 光走査装置及び光走査方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1051627A (ja) * 1996-07-30 1998-02-20 Canon Inc 画像処理方法とその装置
JP4593884B2 (ja) * 2002-05-10 2010-12-08 キヤノン株式会社 レーザ走査制御装置
JP4341908B2 (ja) * 2004-01-07 2009-10-14 株式会社リコー 画素クロック及びパルス変調信号生成装置、光走査装置並びに画像形成装置
JP4003803B1 (ja) * 2006-10-13 2007-11-07 富士ゼロックス株式会社 画像処理装置、画像形成装置及びプログラム
JP5595119B2 (ja) * 2010-05-19 2014-09-24 キヤノン株式会社 画像印字装置、画像印字方法及びプログラム
JP5749925B2 (ja) * 2010-12-09 2015-07-15 キヤノン株式会社 画像形成装置及び画像形成方法
JP5836684B2 (ja) * 2011-07-25 2015-12-24 キヤノン株式会社 画像形成装置
JP5440577B2 (ja) * 2011-09-15 2014-03-12 コニカミノルタ株式会社 画像処理装置および画像処理方法

Also Published As

Publication number Publication date
US9672452B2 (en) 2017-06-06
US20150278659A1 (en) 2015-10-01
JP2015195471A (ja) 2015-11-05

Similar Documents

Publication Publication Date Title
JP5947529B2 (ja) 画像形成装置
US5455681A (en) Low resolution grey level printing method from high resolution binary input file
US20070030548A1 (en) Apparatus for generating pulse-modulated signal
JP5569067B2 (ja) 画像形成装置および画像形成方法
JP4355549B2 (ja) 画像形成装置および走査位置の修正方法
JP5554941B2 (ja) 画像形成装置およびその主走査倍率補正方法
JP6230466B2 (ja) 画像形成装置
JP5836684B2 (ja) 画像形成装置
US20130293913A1 (en) Image forming apparatus
JP5595119B2 (ja) 画像印字装置、画像印字方法及びプログラム
JP5749925B2 (ja) 画像形成装置及び画像形成方法
US8064094B2 (en) Method and apparatus for performing image size adjustment
JP2008099114A (ja) 画像処理装置、画像形成装置及びプログラム
JP6201557B2 (ja) 画像形成装置
JP6066955B2 (ja) 画像形成装置
JP4531491B2 (ja) 画像形成装置及び画像形成方法
JP2015195472A (ja) 画像形成装置
JP6281348B2 (ja) 光書込装置、画像形成装置、光書込制御方法及びプログラム
JP6776094B2 (ja) 画像形成装置
KR100342634B1 (ko) 화상 형성 장치 및 프로그램을 저장하는 기록 매체
JP2002067380A (ja) 発光素子アレイ書き込み装置
JP5633616B2 (ja) 画像形成装置および画像形成方法
JP5660187B2 (ja) 画像形成装置、画像形成方法、画像形成プログラム及び記録媒体
JP2007286509A (ja) 画像形成装置
EP2592483B1 (en) Writing device, image forming apparatus, and writing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170825

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170919

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171017

R151 Written notification of patent or utility model registration

Ref document number: 6230466

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151