JP5664281B2 - 画像生成装置及び画像生成方法 - Google Patents
画像生成装置及び画像生成方法 Download PDFInfo
- Publication number
- JP5664281B2 JP5664281B2 JP2011014755A JP2011014755A JP5664281B2 JP 5664281 B2 JP5664281 B2 JP 5664281B2 JP 2011014755 A JP2011014755 A JP 2011014755A JP 2011014755 A JP2011014755 A JP 2011014755A JP 5664281 B2 JP5664281 B2 JP 5664281B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- cpu
- image
- value
- pattern
- 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
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Record Information Processing For Printing (AREA)
- Control Or Security For Electrophotography (AREA)
Description
また、テストパターンを生成する別の方法として、1ページ分の画像データを生成するための記憶領域を確保した上で、テストパターンとして機能する画像データをソフトウェア処理により生成する方法が知られている(例えば特許文献2)。
また、特許文献2のテストパターン生成方法では、1ページの画素数分の画像データをRAMに書き込む処理の負担が大きくなり、また処理時間も長大となる。仮に、予め定められたテストパターンをROMに記憶させておく方法を取る場合、ソフトウェアの負担を幾分軽減することができる可能性があるが、ROMに記憶されたテストパターンは固定パターンとなるため、事後にテストパターンの内容を変更することができない。加えて、専用のROMを設けるコストもかかる。
画像形成装置1は、例えば、電子写真方式のカラー複写機であり、図1に示すように、制御部101、操作表示部102、スキャナ部103、画像処理部104、画像形成部105、センサ106、記憶部107、送受信部108等により構成され、各部はバス109により接続されている。
また、画像処理部104は、テストパターン生成部200を有する(詳細後述)。
図2に、画像形成部105の要部構成を示す。図2に示すように、画像形成部105は、Y、M、C、Kの各色のトナー像を形成する感光体ユニット50Y、50M、50C、50Kと、ローラ57の回転自在に感光体ユニット50Y、50M、50C、50Kで形成されたトナー像を転写紙に搬送する中間転写体としての中間転写ベルト56と、転写紙を搬送するレジストローラ58と、転写紙に中間転写ベルト56上に形成されたトナー像を転写する2次転写ローラ59と、転写紙にトナー像を定着させる定着ユニット60と、転写紙を排紙する排紙ローラ61とを備えて構成されている。
テストパターン生成部200は、スキャナ部103により読み取って得られたRGBデータや、送受信部108から送信されたRGBデータ等に基づく画像形成とは別の、独立で1ページの画像イメージを生成する構成である。
具体的には、テストパターン生成部200は、複数のパターン画像を含む画像イメージ(テストパターン)を生成する。テストパターンは、生成された部分から逐次画像形成部105へ入力される。画像形成部105は、入力されたテストパターンに応じた画像を用紙に形成する。以下、本実施形態では、テストパターンのパターン画像として矩形画像を生成する例について説明する。
図3に示すように、テストパターン生成部200は、走査位置カウンタ210、CPU220、RAM230、レジスタ250及びパターン生成部240を備える。図3に示すレジスタ250は、説明の便宜上、CPU220と分離して描いているが、CPU220と協働して演算装置を構成する。本実施形態の記載において、CPU220は演算装置の制御機能を示し、レジスタ250は演算装置記憶機能を示し、両者一体で演算装置として機能する。レジスタ250はI/Oボートのように、テストパターン生成部240側の描画パラメータを格納しているレジスタに直接接続されている。
なお、主走査方向は画像形成装置1の画像形成部105による画像形成の進行方向に対応し、副走査方向は中間転写ベルト56の駆動方向及び用紙の搬送方向に対応する。つまり、画像形成部105は、用紙の幅に応じて主走査方向に沿った1ライン分の画像形成を副走査方向について繰り返すことにより画像を形成する。
HVI、VVIは、用紙に対する画像形成と同期をとるためのパラメータであり、画像形成部105の用紙搬送に係る各部の駆動制御を行う図示しない駆動制御部から入力される。HVI、VVIの入力に応じてテストパターン生成部200がテストパターンを生成することにより、用紙の搬送、テストパターンの生成及びテストパターンに応じた画像形成部105による画像形成を同期させることができる。なお、HVCNTが用紙の主走査方向の位置に係るパラメータであり、VVCNTが副走査方向の位置に係るパラメータである。
HVCNTは、HVIのオン期間について主走査方向にカウントアップされるカウンタである。主走査方向に沿った1回の画像形成(1ライン分の画像形成)に係るHVCNTのカウントアップ回数は、用紙の大きさと所定の関係を有する。つまり、HVCNTのカウントアップ回数に応じて、主走査方向について用紙のどの位置に対して画像形成部105による画像形成が行われるのかを管理することができる。
VVCNTは、VVIオン期間中HVIのオン回数を副走査方向にカウントアップされるカウンタである。副走査方向に沿った画像形成の回数(ライン数)は、用紙の大きさと所定の関係を有する。つまり、VVCNTのカウントアップ回数に応じて、副走査方向について用紙のどの位置に対して画像形成部105による画像形成が行われるのかを管理することができる。
より具体的に言えば、HVIはH−Validの入力信号(H−Valid INPUT)、VVIはV−Validの入力信号(V−Valid INPUT)を意味し、HVI、VVIの入力が行われている期間が1ページ分の描画中における主走査方向、副走査方向の描画有効期間を示す。この両者の入力信号が在る期間(オン期間)において所定の時間間隔(インターバル)でそれぞれの入力信号を主走査方向、副走査方向に計数した値が、HVCNT、VVCNTである。
RAM230は、CPU220により処理されるデータ(プログラム)を一時的に記憶する(図4参照)。RAM230に記憶されるデータ(プログラム)は、テストパターン生成部200により所定の領域内に複数の矩形画像を生成するためのプログラムである。
本実施形態において、RAM230に記憶されるプログラムは、複数の命令と各々の命令を構成する複数のパラメータを含む。図4に示す横一列に並んだコンマ(,)に区切られた複数の文字列が一つの命令及びその命令を構成する複数のパラメータに対応する。各命令及びパラメータは、8ビット単位のデータである。
図5に、図4のプログラムに基づいてテストパターン生成部200により生成される1ページの生成内容を示す。
図5は用紙1ページの生成内容を示し、図5の横方向が主走査方向に対応し、図5の縦方向が副走査方向に対応する。画像形成部105は、主走査方向に沿って1ラインの順次画像を形成する。そして、用紙が副走査方向に沿って搬送されることにより、次のラインの主走査方向の画像形成が行われる。
Hsize、Vsizeは、生成される矩形の大きさを示す。具体的には、Hsizeは、Hstartとの加算回路の出力で主走査方向における終点を示し、同様にVsizeはVstartとの加算により副走査方向の終点を示すことにより、始点と協働して矩形の大きさを定めることとなる。HStart、VStart、Hsize、Vsizeは所定の原点(例えば図5に示す原点O)に対する主走査方向、副走査方向に係る位置を座標により示す。
図5に示す矩形Aの場合、原点Oに対し、HStart、VStartにより決定される始点は点Pであり、Hsize、Vsizeにより決定される終点は点Qである。
例えば、図4に示す「命令1」のHStartAの値は、プログラムに含まれるα1、α2の二つの8ビットデータにより構成される。そして、α1がHStartAの上位バイトであり、α2がHStartの下位バイトである。同様に、VStartAはα3、α4により構成され、HsizeAはα5、α6により構成され、VsizeAはα7、α8により構成される。他の矩形(矩形B、C、D、E)と、その生成命令(命令2、4、6、7)も同様の関係を有する。
例えば、図4に示す「命令1」のColorAの値は、プログラムに含まれるα9〜α12の四つの8ビットデータにより構成される。そして、α9がYの濃度値を示し、α10がMの濃度値を示し、α11がCの濃度値を示し、α12がKの濃度値を示す。他の矩形(矩形B、C、D、E)と、その生成命令(命令2、4、6、7)も同様の関係を有する。
「命令3」のJump命令の場合、CPU220は、図5に示すV1の範囲の生成を完了したか否かについて、現在処理している副走査方向の位置(VVCNT)と「副走査方向の所定の位置」の値(V1)との大小関係に基づいて判定する。VVCNTの値がV1を下回る場合、CPU220は「遷移先として指定されたアドレス(”Label1”を付加された命令(命令1)の先頭アドレス)」から始まる命令即ち命令1を読み出す。一方、VVCNTの値がV1以上である場合、CPU220は当該Jump命令(命令3)の次の命令(命令4)を読み出す。
他のJump命令(「命令8」のJump命令)と、そのパラメータ(「0xC0,00,46,V3H,V3L」)も同様の関係を有する。
CPU220は、命令1、命令2を順次読み出して実行する。これにより、矩形A、矩形Bを生成するための複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)が順次レジスタ250へ書き込まれる。パターン生成部240は、レジスタ250に保持されているパラメータを読み出し、当該パラメータの内容に応じた矩形画像(矩形A、矩形B)を生成する。
この一時停止、続行を伴いながら、CPU220は、Jump命令の前に連続する複数のLoad命令を1回ずつ読み出して実行処理することで1回の主走査方向の生成に係る処理を完了する。その後、副走査方向についての条件分岐命令であるJump命令を読み出して実行し、VVCNTの値がV1より小さいか否か判定する。VVCNTの値がV1より小さい場合、CPU220は再度命令1を読み出して実行し、その後に連続するLoad命令(命令2)を実行し、再度命令3を実行する。この繰り返し処理は、VVCNTの値がV1以上となるまで行われる。これによって、図5に示すV1の範囲において、二つのLoad命令(命令1、命令2)に対応する二つの矩形(矩形A、矩形B)が主走査方向に並んで生成されることとなる。
図6に示すように、パターン生成部240は、加算部301、302、減算部311、比較部321〜325、セレクタ(SEL)331、論理積判定部341、更新タイミング制御部351を備えている。なお、図6に示すように、パターン生成部240は、走査位置カウンタ210から出力されたHVCNT及びVVCNTの値や、レジスタ250に記憶されたHStart、VStart、Hsize、Vsize、Color等の各種パラメータを取得して出力(SGUOUT)を行う。
減算部311は、加算部301によるHStartとHsizeとの加算値(加算値A1)から1を減算した値(減算値M1)比較部325に対して出力する。
比較部322は、HVCNTと、HStartとHsizeとの加算値(加算値A1)とを比較し、HVCNTの値が加算値A1未満(HVCNT<A1)であるか否かを示す出力を論理積判定部341に対して行う。
比較部323は、VVCNTと、VStartとを比較し、VVCNTの値がVStartの値以上(VVCNT≧VStart)であるか否かを示す出力を論理積判定部341に対して行う。
比較部324は、VVCNTと、VStartとVsizeとの加算値(加算値A2)とを比較し、VVCNTの値が加算値A2未満(VVCNT<A2)であるか否かを示す出力を論理積判定部341に対して行う。
比較部325は、HVCNTと、加算部301によるHStartとHsizeとの加算値(加算値A1)から1を減算した値(減算値M1)とを比較し、HVCNTの値が減算値M1と等しい(VVCNT=A2)か否かを示す出力を更新タイミング制御部351に対して行う。
論理積判定部341は、比較部321〜324による出力の内容を取得して、セレクタ331による出力(SGUOUT)を制御する。具体的には、論理積判定部341は、HVCNTの値がHStartの値以上(HVCNT≧HStart)であり、HVCNTの値が加算値A1未満(HVCNT<A1)であり、VVCNTの値がVStartの値以上(VVCNT≧VStart)であり、かつ、VVCNTの値が加算値A2未満(VVCNT<A2)である場合、Colorの値に応じた出力をセレクタ331に行わせる出力制御を行う。
即ち、論理積判定部341は、HVCNTが、HStart以上かつ加算値A1未満であり、かつ、VVCNTが、VStart以上かつ加算値A2未満である場合に、セレクタ331にColorの値に応じた出力(SGUOUT)をさせる。ここで、HVCNTが、HStart以上かつ加算値A1未満であることは、HVCNTにより示される描画位置が、HStart及びHsizeにより示される矩形の主走査方向の範囲内であることを示す。また、VVCNTが、VStart以上かつ加算値A2未満であることは、VVCNTにより示される描画位置が、VStart及びVsizeにより示される矩形の副走査方向の範囲内であることを示す。つまり、論理積判定部341は、HVCNT及びVVCNTが共に、HStart、VStart、Hsize、Vsizeにより示される矩形の描画範囲内である場合に、セレクタ331にColorの値に応じた出力(SGUOUT)をさせる。これによって、矩形の色(Color)に応じた矩形の描画出力が行われる。
一方、論理積判定部341は、HVCNTの値がHStartの値以上(HVCNT≧HStart)でないか、HVCNTの値が加算値A1未満(HVCNT<A1)でないか、VVCNTの値がVStartの値以上(VVCNT≧VStart)でないか、又は、VVCNTの値が加算値A2未満(VVCNT<A2)でない場合、セレクタ331に、Colorを構成するY、M、C、Kの全ての色について出力を行わない(例えば、図6に示すall 0)内容の出力(SGUOUT)をさせる。つまり、HVCNT及びVVCNTにより示される描画位置が、HStart、VStart、Hsize、Vsizeにより示される矩形の描画範囲内でない場合、セレクタ331に空出力をさせる。これによって、HVCNT及びVVCNTが共に、HStart、VStart、Hsize、Vsizeにより示される矩形の描画範囲内である間のみ、矩形の色(Color)に応じた矩形の描画出力が行われる。
その後、VVCNTの値がV1以上となった場合、CPU220は命令4を読み出して実行する。これによって、V1より後の領域において、命令4に対応する矩形Cの生成が行われる。
なお、Load命令に含まれる矩形を生成するための複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)に対応する主走査位置及び副走査位置に至らない間も、パターン生成部240は命令1、命令2に応じたパラメータの読み出しを逐次行うが、この間、パターン生成部240は矩形画像の生成を行わない。つまり、矩形のパラメータ(HStart、VStart、Hsize、Vsize、Color)に対応しない範囲、すなわち、主走査方向には描画範囲にあっても、副走査位置が描画範囲にない場合では空ループ処理となる。
また、図4では、Jump命令の前に連続するLoad命令の数が二つであるため、図5において主走査方向に並んでいる矩形の数も二つであるが、Load命令の数即ち主走査方向に並べて生成する矩形の数は三つ以上にすることもできる。
また、ここで、示すように、矩形A矩形C矩形Dは各色の出力濃度値を等しい矩形として、プログラム上では、副走査範囲を等しくして複数の矩形を主走査方向に並べて描画しつつ、見た目上は、他と副走査サイズの異なる大きさの1個の矩形として描くことができる。
これにより、任意サイズの矩形領域を、任意の配置においた図形も、副走査方向に細分することにより、副走査幅の等しい矩形を、主走査方向に任意個、並べた配置として表現できることとなり、結果的に、任意の寸法の矩形を任意の位置に配置して描画することができる。矩形に分割することができれば、L字型や凸凹状の図形も描くことができる。プログラム規模が増大してしまうが、三角形を描くことをも、副走査1ライン毎に、主走査方向の幅を変化させることで可能となる。例えば nライン目の副走査位置では、高さ:1ライン × 主走査幅n画素の 矩形の並びとしてLoad命令を並べることにより、三角形を描画するプログラムを記述することもできる。
「命令5」のWait命令の場合、CPU220は、図5に示すV2の範囲の生成を完了したか否かについて、現在処理している副走査方向の位置(VVCNT)と「副走査方向の所定の位置」の値(V2)との大小関係に基づいて判定する。VVCNTの値がV2を下回る場合、CPU220は当該Wait命令(命令5)の次の命令(命令6)へ移行せず待機し、VVCNTの値がV2以上である場合、次の命令を読み出す。
図4、図5に示す例の場合、VVCNTの値がV1以上かつV2より小さい間、パターン生成部240により命令4による生成が継続され、命令4に対応する矩形Cの生成が行われる。
HALT命令によるプログラムの実行停止中は、CPU220の処理及びパターン生成部240による生成処理は行われない。復帰は制御部からの指示による。
具体的には、パターン生成部240は、走査位置カウンタ210から入力される主走査方向及び副走査方向に係る各種の値(HVI、VVI、HVCNT、VVCNT)と、レジスタ250に書き込まれた複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)とに基づいて、単一の描画範囲の矩形を描画するための出力(SGUOUT)を行うテストパターン信号発生回路(Signal Generator Unit:SGU)である。
ここで、パターン生成部240は、単一の描画範囲のパターン画像を生成する回路である。
また、所定の領域内に複数の矩形を描画するためのプログラムを記憶するRAM230と、RAM230に格納されたプログラムに含まれるLoad命令に基づいてレジスタ250に矩形を描画するための複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)を書き込むCPU220とは協働により、パターン生成部240にパターン画像を生成させる命令を実行する。
また、RAM230は、複数のLoad命令を含むプログラムを記憶することで、複数回の矩形生成を行うためのデータを記憶する。
また、CPU220は、RAM230に記憶されたデータ(プログラム)に基づいて矩形を生成するための命令を構成するパラメータ(HStart、VStart、Hsize、Vsize、Color)を生成する。
図3に示すように、レジスタ250は、矩形生成パラメータ格納領域251、アドレス(ADDRESS)格納領域252、プログラムカウンタ増分(PC_INC)格納領域253、遷移状態(CPU_STATUS)格納領域254、更新フラグ(FLAG_UPDATE)格納領域255、戻り番地(JMPADR)格納領域256、副走査方向待ち位置(VV_WAIT)格納領域257等を有する。
CPU220やパターン生成部240が矩形生成パラメータ、ADDRESS、PC_INC、CPU_STATUS、VV_WAIT、JMPADRの値を設定、変更する処理を行った場合、その処理後の値はそれぞれのパラメータに対応するレジスタ250の格納領域に保持される。
ここで、矩形生成パラメータ格納領域251は、CPU220により生成されたパラメータ(HStart、VStart、Hsize、Vsize、Color)を記憶する。
本実施形態の矩形生成パラメータ格納領域251は、単一の描画範囲の矩形画像を構成するためのパラメータを格納し、既に複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)を格納している矩形生成パラメータ格納領域251に対してさらにCPU220によりこれらのパラメータの格納が行われた場合、パラメータが上書きされて更新されることとなる。
プログラムカウンタの増分(PC_INC)格納領域253は、プログラムカウンタを意味するアドレス(ADDRESS)格納領域252の値の加算値(PC_INC)を格納する。PC_INCの値は、通常の場合1の値を取り、CPU220がプログラム続行を休止または復帰した場合に変更後の値(0又は1)を取る。
CPU220は、PC_INCの値に応じたADDRESSのカウントアップを行う。
CPU_STATUSに格納されるCPU220の状態として、上述のプログラムの各種命令の実行状態(LOAD、JUMP、WAIT、HALT)がある。
また、これらの命令に対応する実行状態の他に、CPU_STATUSに格納されるCPU220の状態として、RESET、FETCH、ERRORがある。RESETは、初期化状態を示す。制御部101から起動命令を受ける前のCPU220の状態は、RESETである。制御部から起動の指示を受けると、CPU_STATUSは、RESETからR1を経て、ここでR1ではPC_INC=1となり、その後FETCHとなる。FETCHは、その後に別の命令に対応する状態へ遷移することを示す。ERRORは、他のいずれの状態でもなく、プログラムに規定された状態でもないエラー状態であることを示す。HALT又はERRORとなった後は、制御部101からの処理によりCPU_STATUSがRESETとなる。
また、上述のプログラムの各種命令の実行状態のうち、Load命令、Jump命令、Wait命令に対応する状態は、各命令に含まれる処理内容に応じて細分化された状態を示す。具体的には、Load命令に含まれる状態として、LOAD及びL1〜L13の計14種類の状態がある。また、Jump命令に含まれる状態として、JUMP及びJ1〜J4の計5種類の状態がある。また、Wait命令に含まれる状態として、WAIT、W1及びW2の計3種類の状態がある。図7に示すように、各命令に対応する状態は、その命令の内容を示す状態の後、番号順に遷移する。例えば、Load命令に対応する状態の場合、LOAD、L1、L2…の順でCPU_STATUSが遷移し、L13まで遷移した後、FETCHへ遷移する。Jump命令、Wait命令についても同様である。
以下、図8を用いて、レジスタ250に格納される各種のパラメータと、CPU220の処理内容との対応関係について説明する。
例えば、図4に示すプログラムの場合、先頭アドレスにはLoad命令を示す「0x10」が書き込まれているので、当該「0x10」を読み出すことにより、CPU220は、以降の処理としてLoad命令を実行する。具体的には、CPU220は、RAM230のその後のアドレスに書き込まれているα1〜α12の値に基づいて単一の描画範囲の矩形画像を構成するための複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)を決定し、レジスタ250の矩形生成パラメータ格納領域251へ書き込む処理を行う。
ここで、CPU220は、ADDRESSの値に基づいてRAM230のアドレスを指定する処理順序を経ることから、図8に示すように、ADDRESSの値と、CPU220によるRAM230の読み出しタイミングとは1クロック分のずれを生じる。また、CPU220は、RAM230からプログラムを読み出した、その内容に応じた値をレジスタ250へ格納する処理順序を経ることから、CPU220によるRAM230の読み出しタイミングと、当該内容に対応する値のレジスタ250の格納のタイミングとは1クロック分のずれを生じる。
また、ADDRESSの値が1となった1クロック後の時点でCPU_STATUSは「LOAD」である。このとき、CPU220がADDRESS(1)の値に対応するRAM230のアドレス(0001)の内容である「α1」を読み出し、HStartの上位バイトの値とてレジスタ250の矩形生成パラメータ格納領域251へ格納する。また、CPU220は、CPU_STATUSを「L1」とする。CPU220が「α1」を読み出したクロックの1クロック後、「α1」の値がHStartの上位バイトの値としてレジスタ250の矩形生成パラメータ格納領域251に格納されると共に、CPU_STATUSに「L1」を示す値が格納される。
以降、同様に、ADDRESSの値と、CPU220の読み出し処理と、レジスタ250への書き込み処理と、はそれぞれ1クロックずつずれて進行する。
CPU_STATUSが「L1」であるとき、CPU220が「α2」を読み出してHStartの下位バイトの値として記憶し、CPU_STATUSを「L2」とする。
CPU_STATUSが「L2」であるとき、CPU220が「α3」を読み出してVStartの上位バイトの値として記憶、CPU_STATUSを「L3」とする。
CPU_STATUSが「L3」であるとき、CPU220が「α4」を読み出してVStartの下位バイトの値として記憶し、CPU_STATUSを「L4」とする。
CPU_STATUSが「L4」であるとき、CPU220が「α5」を読み出してHsizeの上位バイトの値として記憶し、CPU_STATUSを「L5」とする。
CPU_STATUSが「L5」であるとき、CPU220が「α6」を読み出してHsizeの下位バイトの値として記憶し、CPU_STATUSを「L6」とする。
CPU_STATUSが「L6」であるとき、CPU220が「α7」を読み出してVsizeの上位バイトの値として記憶し、CPU_STATUSを「L7」とする。
CPU_STATUSが「L7」であるとき、CPU220が「α8」を読み出してVsizeの下位バイトの値として記憶し、CPU_STATUSを「L8」とする。
CPU_STATUSが「L8」であるとき、CPU220が「α9」を読み出してColorに含まれるYの濃度値として記憶し、CPU_STATUSを「L9」とする。
CPU_STATUSが「L9」であるとき、CPU220が「α10」を読み出してColorに含まれるMの濃度値として記憶し、CPU_STATUSを「L10」とする。
FLAG_UPDATEの値は、所定の二値(例えば1又は0)を取る。本実施形態では、FLAG_UPDATEの値が二値の一方の値(例えば1)である場合、CPU220がレジスタ250の矩形生成パラメータ格納領域251に、一つのLoad命令に対応する、一つの矩形を構成する複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)の格納処理を完了し、パターン生成部240に対してレジスタ250の矩形生成パラメータ格納領域251の読み出しを要求していることを示す。また、FLAG_UPDATEの値が二値の他方の値(例えば0)である場合、その時点ではCPU220が矩形生成パラメータ格納領域251の読み出しを要求していないことを示す。本実施形態では、FLAG_UPDATEの初期値は0である。
一つの矩形を構成する複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)の読み出しを完了すると、走査位置カウンタ210から入力された走査位置に基づいて、読み出した矩形の走査位置に係るパラメータ(HStart、VStart、Hsize、Vsize)に対応する位置で当該矩形の色(Color)を有する矩形画像を生成する。これによって、単一の描画範囲のLoad命令に応じた矩形画像が用紙に生成される。
また、パターン生成部240は、一つの矩形を構成する複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)の更新を完了すると、FLAG_UPDATEの値を0とする。つまり、パターン生成部240は、レジスタ250の矩形生成パラメータ格納領域251に格納された新たな命令に対応する矩形のパラメータの読み出しを完了した後、CPU220により1を設定されたFLAG_UPDATEの値を元の値に戻す。その後、再度Load命令の読み出しに伴いFLAG_UPDATEの値が1となると、パターン生成部240は、その直前に読み出したパラメータに対応する矩形の一主走査分の画像生成を完了する時点で、再度、矩形生成パラメータ格納領域251から一つの矩形を構成する複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)を読み出し、読み出したパラメータに対応する矩形の生成を行う。これによって、複数のLoad命令に対応する複数の種類の矩形画像が生成される。
パターン生成部240の更新タイミング制御部351は、比較部325からの出力と、レジスタ250の更新フラグ(FLAG_UPDATE)の値に基づいて、パターン生成部240に保持されたHStart、VStart、Hsize、Vsize及びColorの値を更新させる制御を行う。具体的には、比較部325により、HVCNTの値が加算部301によるHStartとHsizeとの加算値(加算値A1)から1を減算した値(減算値M1)と等しい(VVCNT=A2)ことを示す出力がなされ、かつ、FLAG_UPDATEの値が1である場合、更新タイミング制御部351は、パターン生成部240に保持されたHStart、VStart、Hsize、Vsize及びColorの値を、そのときレジスタ250の矩形生成パラメータ格納領域251に格納された新たな命令に対応する矩形のパラメータ(HStart、VStart、Hsize、Vsize及びColor)により更新させ(図6のREAD TIMING)、その後、FLAG_UPDATEの値を0とする(図6のRESET)。ここで、HVCNTの値が加算部301によるHStartとHsizeとの加算値(加算値A1)から1を減算した値(減算値M1)と等しいことは、主走査方向について、そのときパターン生成部240に保持されたHStart、VStart、Hsize、Vsize及びColorの値に応じたパターン画像の描画が終了する1クロック前であることを示す。この時点でFLAG_UPDATEの値が1である即ち次のパターン画像の生成命令が控えていることが示されている場合、更新タイミング制御部351は、次のパターン画像を生成するための矩形のパラメータ(HStart、VStart、Hsize、Vsize及びColor)をパターン生成部240に取得させる制御を行う。そして、FLAG_UPDATEの値を0とすることにより、CPU220の処理の一時停止を解除させる。
これによって、その1クロック後、即ちHVCNTの値が加算部301によるHStartとHsizeとの加算値(加算値A1)と等しくなるタイミングで、パターン生成部240は、次のパターン画像を生成するための矩形のパラメータ(HStart、VStart、Hsize、Vsize及びColor)の取得を完了することができる。そしてその後、パターン生成部240は、取得されたパラメータに応じたパターン画像の生成を行うことができる。
また、更新フラグ格納領域255は、フラグ値(FLAG_UPDATE)を記憶する。
また、パターン生成部240は、読出しを完了した描画パラメータに基く一主走査分の最終画素描画位置でフラグ値(FLAG_UPDATE)をリセットする。そして、CPU220は、フラグ値(FLAG_UPDATE)のリセットが入るたびにCPU220自身に後続の命令を続行させる。
CPU_STATUSが「L13」であるとき、CPU220は、CPU_STATUSを「FETCH」とする。なお、CPU_STATUSが「L12」となったとき、PC_INCの値は1に戻るが、PC_INCの値が1に戻ったことによるADDRESSのカウントアップ再開はさらにその1クロック後となる。
図4に示す命令1のLoad命令の読み出しを完了した後に迎えた「FETCH」の場合、その後に読み出されるRAM230の内容は命令3のJump命令の先頭(「0xC0」)であるので、CPU220は、CPU_STATUSを「JUMP」とし、命令3のJump命令を開始する。
CPU_STATUSが「J1」であるとき、CPU220がRAM230における「0xC0」の2つ後のアドレスの値(例えば命令3の「0xC0」の2つ後の「00」)を読み出してJMPADRの下位バイトとして格納し、CPU_STATUSを「J2」とする。
副走査方向待ち位置(VV_WAIT)格納領域257は、副走査方向待ち位置(VV_WAIT)を格納する。VV_WAITは、「副走査方向の所定の位置」を示す。
CPU_STATUSが「J4」であるとき、CPU220が、CPU_STATUSを「FETCH」とする。
Jump命令の完了によりCPU_STATUSが「FETCH」となったとき、上述と同様、CPU220は、ADDRESSの値に応じて新たな命令を読み出す。
よって、VVCNTの値がVV_WAITの値(V1)を下回る間、CPU220は命令3のJump命令の完了後、命令1のLoad命令を再度読み出す。つまり、VVCNTの値がVV_WAITの値(V1)を下回る間、命令1、命令2、命令3、命令1…のように、命令1〜3の処理がループする。
なお、図9及び後述する図10において、「HV」は画像生成(画像形成)の方向が主走査方向に沿って進行しているか副走査方向に沿って進行しているかを示す。HVのシグナルが立ち上がっているときは主走査方向に沿って画像生成(画像形成)が進行し、立ち下がっているときは副走査方向に沿って画像生成(画像形成)が進行即ち主走査方向に沿った1ラインの画像生成(画像形成)が終了してラインが切り替わっていることを示す。
このように、CPU220は、RAM230に格納されたプログラムの内容に応じて、主走査方向について複数の矩形画像(例えば矩形A、矩形B等)を生成させる場合、所定の領域内における主走査方向に沿った画像生成を一回行う間に、複数の矩形画像の各々を生成させる命令(命令1、命令2)を切り替えて実行する。ここで、図9に示すように、パターン生成部240が矩形Aを描画している間にCPU220は命令2を実行して矩形Bのパラメータを矩形生成パラメータ格納領域251に格納し、パターン生成部240が矩形Bを描画している間にCPU220は命令1を実行して矩形Aのパラメータを矩形生成パラメータ格納領域251に格納することを繰り返す。つまり、CPU220は、パターン生成部240が次に描画する矩形画像の命令を実行する処理を繰り返す。
また、CPU220は、所定の領域(例えば用紙1ページ)内に対する複数の矩形画像の生成の開始から終了までの間に、パターン生成部240に単一の描画範囲の矩形画像を生成させる命令としての「矩形生成パラメータ格納領域251に対する複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)の格納及び更新フラグ(FLAG_UPDATE)の設定」を複数回行う。例えば、矩形Aの生成を完了するための複数ラインに渡る処理中において、CPU220は、矩形Bに対応する命令2及びJump命令である命令3を挟んで、矩形Aに対応する命令1の実行を複数回行っている。矩形Bに対応する命令2、矩形Dに対応する命令7、矩形Eに対応する命令8についても同様である。
命令4のLoad命令の完了によりCPU_STATUSが「FETCH」となったとき、上述と同様、CPU220は、ADDRESSの値に応じて新たな命令を読み出す。CPU220は、「0xD0」を読み出し、命令5のWait命令を開始する。ここで、CPU220は、レジスタ250の遷移状態(CPU_STATUS)格納領域254に「WAIT」を示す値を格納する。
CPU_STATUSが「W1」であるとき、CPU220は、RAM230における「0xC0」の2つ後のアドレスの値(例えば命令5の「0xD0」の2つ後の「V2L」)を読み出して先に格納されたVV_WAITの上位バイトと合わせて副走査方向待ち位置(VV_WAIT)を特定し、走査位置カウンタ210から入力された副走査方向の位置を示す値(VVCNT)と比較する。VVCNTの値がVV_WAITの値を下回る場合、PC_INCの値を0に設定し、CPU_STATUSを「W2」とする。
CPU_STATUSが「W2」であるとき、VVCNTの値とVV_WAITの値とを比較し、VVCNTの値がVV_WAITの値を下回る間、待機する。
一方、CPU_STATUSが「W1」又は「W2」であって、VVCNTの値がVV_WAITの値以上である場合、CPU220は、CPU_STATUSを「FETCH」とする。
図4に示すプログラムの場合、命令5のWait命令の完了後、命令6〜8に含まれる2つのLoad命令及びJump命令によるループ処理が行われて矩形D、矩形Eが生成された後、命令9のHALT命令に致ることにより1ページの生成処理が終了する。命令6〜命令8に含まれる2つのLoad命令及びJump命令によるループ処理は、上述の命令1〜3のループ処理と同様である。
このように、CPU220は、RAM230に格納されたプログラムの内容に応じて、副走査方向について複数の矩形画像を生成させる場合、所定の領域内における主走査方向に沿った複数の矩形画像の各々を生成させる命令を主走査方向で反復実行するプログラムを1組とし、副走査方向での複数画像分だけ、複数組実行する。
さらに、パターン生成部240は、単一の矩形画像を生成する機能と、矩形描画パラメータを更新できる機能があれば足りる回路で、CPU220によるプログラム処理の内容も簡易な命令の組み合わせで十分であり、レジスタ250に求められる記憶容量も小さく収めることができるので、より廉価に所定の領域内に任意の数のパターン画像を生成することができる。
また、上述の実施形態では、単一のテストパターン生成部200に設けられた単一の描画領域パターン生成部240が所定の領域内に複数のパターン画像を生成しているが、複数のテストパターン生成部200を協働させて所定の領域内に複数のパターン画像を生成することは差し支えない。また、単一のテストパターン生成部200に複数のパターン生成部240を設けてCPU220や専用の統括制御部等に複数のパターン生成部240を統括制御させる仕組みとしても差し支えない。ここでは、更新フラグの1または0の1ビットの情報伝達を行う例を示したが、描画パラメータを格納するバッファーを複数段分、FIFO構成で設けることにより、更新すべき描画パラメータがバッファー内に何段分溜ったか更新を済ませたかで、カウントアップ/カウントダウンする複数ビットの情報伝達にしても差し支えない。
102 操作表示部
103 スキャナ部
104 画像処理部
105 画像形成部
106 センサ
107 記憶部
108 送受信部
109 バス
200 テストパターン生成部
210 走査位置カウンタ
220 CPU
230 RAM
240 パターン生成部
250 レジスタ
Claims (5)
- レジスタと、
プログラムに記述された複数の命令を実行することによって、描画するパターン画像の始点及び大きさを描画パラメータとして前記レジスタに格納させるCPUと、
前記レジスタに格納された描画パラメータを読み出し、読み出した描画パラメータにより示される描画範囲において、パターン画像を生成するパターン生成部と、を備え、
前記CPUは、複数のパターン画像を生成する場合、前記パターン生成部により前記レジスタに格納された描画パラメータが読み出された後、前記レジスタに格納されたパターン画像の描画パラメータを、他のパターン画像の描画パラメータに更新することを繰り返して、各パターン画像の描画パラメータを前記レジスタに格納させ、
前記パターン生成部は、前記レジスタに格納された描画パラメータが更新されるごとに前記レジスタから描画パラメータを読み出し、読み出した各描画パラメータにより示される描画範囲においてパターン画像の生成を繰り返すことにより、複数のパターン画像を生成することを特徴とする画像生成装置。 - 前記パターン生成部は、前記描画パラメータにより示される主走査方向の描画範囲内においてパターン画像の主走査方向の1ラインを生成することを、前記描画パラメータにより示される副走査方向の描画範囲内で繰り返すことを特徴とする請求項1に記載の画像生成装置。
- 前記CPUは、複数のパターン画像を生成する場合、1つのパターン画像の描画パラメータを前記レジスタに格納し、前記パターン生成部が当該描画パラメータによりパターン画像の主走査方向の1ラインを生成し終えるまで、前記レジスタに格納された前記描画パラメータの更新を停止し、生成が終了すると、前記レジスタに格納された描画パラメータを他のパターン画像の描画パラメータに更新することを繰り返すことを特徴とする請求項2に記載の画像生成装置。
- 前記プログラムは、前記複数のパターン画像のそれぞれの生成を指示するLoad命令と、1又は複数のLoad命令を反復して実行し、指定された副走査方向の位置に至ると、次の命令の読み出しを指示するJump命令と、次の命令の読み出しを待機して実行中の命令を継続し、指定された副走査方向の位置に至ると次の命令の読み出しを指示するWait命令との組み合わせによって記述されていることを特徴とする請求項1から3のいずれか一項に記載の画像生成装置。
- プログラムに記述された複数の命令を実行することによって、描画するパターン画像の始点及び大きさを描画パラメータとしてレジスタに格納させる第1工程と、
前記レジスタに格納された描画パラメータを読み出し、読み出した描画パラメータにより示される描画範囲において、パターン画像を生成する第2工程と、を含み、
複数のパターン画像を生成する場合、前記第1工程では、前記レジスタに格納された描画パラメータが読み出された後、前記レジスタに格納されたパターン画像の描画パラメータを、他のパターン画像の描画パラメータに更新することを繰り返して、各パターン画像の描画パラメータを前記レジスタに格納させ、
前記第2工程では、前記レジスタに格納されたパターン画像の描画パラメータが更新されるごとに、更新された描画パラメータに基づくパターン画像の生成を繰り返すことにより、複数のパターン画像を生成することを特徴とする画像生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011014755A JP5664281B2 (ja) | 2011-01-27 | 2011-01-27 | 画像生成装置及び画像生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011014755A JP5664281B2 (ja) | 2011-01-27 | 2011-01-27 | 画像生成装置及び画像生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012153035A JP2012153035A (ja) | 2012-08-16 |
JP5664281B2 true JP5664281B2 (ja) | 2015-02-04 |
Family
ID=46835278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011014755A Active JP5664281B2 (ja) | 2011-01-27 | 2011-01-27 | 画像生成装置及び画像生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5664281B2 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3035931B2 (ja) * | 1989-10-20 | 2000-04-24 | ブラザー工業株式会社 | 文書処理装置 |
JP4204682B2 (ja) * | 1998-11-30 | 2009-01-07 | 株式会社リコー | 画像形成装置 |
JP2001096869A (ja) * | 1999-10-04 | 2001-04-10 | Seiko Epson Corp | 記録装置、半導体装置および記録ヘッド装置 |
JP2005043617A (ja) * | 2003-07-28 | 2005-02-17 | Konica Minolta Business Technologies Inc | 画像形成装置 |
-
2011
- 2011-01-27 JP JP2011014755A patent/JP5664281B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2012153035A (ja) | 2012-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102447802B (zh) | 光学写设备、图像形成装置和用于控制光学写设备的方法 | |
JP2011081144A (ja) | 表示方法、画像形成装置の表示方法、表示装置および画像形成装置 | |
JP2008186146A (ja) | 画像形成装置 | |
CN102147578B (zh) | 图像形成设备和用于图像形成设备的计数方法 | |
JP5664281B2 (ja) | 画像生成装置及び画像生成方法 | |
JP2008299156A (ja) | 画像形成装置、その調整方法及びその交換用部品 | |
CN105763756A (zh) | 操作显示装置 | |
JP2017116623A (ja) | 制御装置、画像形成装置およびプログラム | |
JP5268830B2 (ja) | ファームウェア更新プログラム及び画像形成装置 | |
JP5979176B2 (ja) | 画像処理装置及び画像形成装置 | |
JP6497242B2 (ja) | 画像形成装置、画像形成方法及び画像形成システム | |
JP2018138975A (ja) | 画像形成装置および制御方法 | |
US8537430B2 (en) | Image forming apparatus and control method thereof | |
JP6844554B2 (ja) | 画像形成装置 | |
JP2648400B2 (ja) | 画像処理装置 | |
JP2012114877A (ja) | 画像読取制御装置、画像形成装置および画像読取方法 | |
JP4675864B2 (ja) | 画像形成装置 | |
JP2001260422A (ja) | 画像形成装置 | |
JPH10186768A (ja) | 画像形成装置 | |
JP2002258695A (ja) | 画像形成装置及び現像剤消費量計測方法 | |
JP4748077B2 (ja) | 画素データ転送制御装置及び画素データ転送制御方法 | |
JP6287523B2 (ja) | 画像形成装置及び画像データの転送方法 | |
JP2008265048A (ja) | 画像形成装置 | |
JP4525426B2 (ja) | 画像形成装置、画像安定化処理とジョブとの実行制御方法並びに同制御プログラム | |
JP2017080915A (ja) | 画像処理装置、画像形成装置、及び画像処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20130416 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130621 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140304 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140424 |
|
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: 20141111 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141124 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5664281 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |