JP5664281B2 - 画像生成装置及び画像生成方法 - Google Patents

画像生成装置及び画像生成方法 Download PDF

Info

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
Application number
JP2011014755A
Other languages
English (en)
Other versions
JP2012153035A (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.)
Konica Minolta Inc
Original Assignee
Konica Minolta 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 Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2011014755A priority Critical patent/JP5664281B2/ja
Publication of JP2012153035A publication Critical patent/JP2012153035A/ja
Application granted granted Critical
Publication of JP5664281B2 publication Critical patent/JP5664281B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Record Information Processing For Printing (AREA)
  • Control Or Security For Electrophotography (AREA)

Description

本発明は、画像生成装置及び画像生成方法に関する。
従来より、画像形成装置に、テストパターンを形成させる機能が備えられている。テストパターンとは、例えば所定の領域内(例えば用紙1ページ等)に複数のパターン画像(例えば矩形画像等)を配置した画像であり、用紙に形成されたテストパターンを確認することにより画像形成装置の状態を確認することができる。
テストパターンを生成する方法として、複数の矩形描画範囲の各々を形成するための回路を個別に設ける方法がある(例えば特許文献1)。
また、テストパターンを生成する別の方法として、1ページ分の画像データを生成するための記憶領域を確保した上で、テストパターンとして機能する画像データをソフトウェア処理により生成する方法が知られている(例えば特許文献2)。
特開2000−158771号公報 特開2005−43617号公報
しかしながら、特許文献1のテストパターン生成方法では、描画範囲を格納するレジスタの個数や、描画範囲を示す信号線の本数などの回路構成により、テストパターンに含まれる矩形画像の数の上限が決定してしまう。このため、テストパターンに含まれる矩形画像の領域数を増やす場合、矩形画像の数に比例して回路規模が増大する問題がある。また、回路が決定された後では、もはや、それ以上に矩形画像の数を増やすことはできなくなる。
また、特許文献2のテストパターン生成方法では、1ページの画素数分の画像データをRAMに書き込む処理の負担が大きくなり、また処理時間も長大となる。仮に、予め定められたテストパターンをROMに記憶させておく方法を取る場合、ソフトウェアの負担を幾分軽減することができる可能性があるが、ROMに記憶されたテストパターンは固定パターンとなるため、事後にテストパターンの内容を変更することができない。加えて、専用のROMを設けるコストもかかる。
本発明の課題は、回路規模によるパターン画像の数の制約を生じさせず、廉価かつ容易に、任意の位置、寸法、数のパターン画像を含むテストパターンを生成することができる画像生成装置及び画像生成方法を提供することである。
請求項1に記載の発明は、画像形成装置であって、レジスタと、プログラムに記述された複数の命令を実行することによって、描画するパターン画像の始点及び大きさを描画パラメータとして前記レジスタに格納させるCPUと、前記レジスタに格納された描画パラメータを読み出し、読み出した描画パラメータにより示される描画範囲において、パターン画像を生成するパターン生成部と、を備え、前記CPUは、複数のパターン画像を生成する場合、前記パターン生成部により前記レジスタに格納された描画パラメータが読み出された後、前記レジスタに格納されたパターン画像の描画パラメータを、他のパターン画像の描画パラメータに更新することを繰り返して、各パターン画像の描画パラメータを前記レジスタに格納させ、前記パターン生成部は、前記レジスタに格納された描画パラメータが更新されるごとに前記レジスタから描画パラメータを読み出し、読み出した各描画パラメータにより示される描画範囲においてパターン画像の生成を繰り返すことにより、複数のパターン画像を生成することを特徴とする。
請求項2に記載の発明は、請求項1に記載の画像生成装置であって、前記パターン生成部は、前記描画パラメータにより示される主走査方向の描画範囲内においてパターン画像の主走査方向の1ラインを生成することを、前記描画パラメータにより示される副走査方向の描画範囲内で繰り返すことを特徴とする。
請求項3に記載の発明は、請求項に記載の画像生成装置であって、前記CPUは、複数のパターン画像を生成する場合、1つのパターン画像の描画パラメータを前記レジスタに格納し、前記パターン生成部が当該描画パラメータによりパターン画像の主走査方向の1ラインを生成し終えるまで、前記レジスタに格納された前記描画パラメータの更新を停止し、生成が終了すると、前記レジスタに格納された描画パラメータを他のパターン画像の描画パラメータに更新することを繰り返すことを特徴とする。
請求項4に記載の発明は、請求項1から3のいずれか一項に記載の画像生成装置であって、前記プログラムは、前記複数のパターン画像のそれぞれの生成を指示するLoad命令と、1又は複数のLoad命令を反復して実行し、指定された副走査方向の位置に至ると、次の命令の読み出しを指示するJump命令と、次の命令の読み出しを待機して実行中の命令を継続し、指定された副走査方向の位置に至ると次の命令の読み出しを指示するWait命令との組み合わせによって記述されていることを特徴とする。
請求項5に記載の発明は、画像生成方法であって、プログラムに記述された複数の命令を実行することによって、描画するパターン画像の始点及び大きさを描画パラメータとしてレジスタに格納させる第1工程と、前記レジスタに格納された描画パラメータを読み出し、読み出した描画パラメータにより示される描画範囲において、パターン画像を生成する第2工程と、を含み、複数のパターン画像を生成する場合、前記第1工程では、前記レジスタに格納された描画パラメータが読み出された後、前記レジスタに格納されたパターン画像の描画パラメータを、他のパターン画像の描画パラメータに更新することを繰り返して、各パターン画像の描画パラメータを前記レジスタに格納させ、前記第2工程では、前記レジスタに格納されたパターン画像の描画パラメータが更新されるごとに、更新された描画パラメータに基づくパターン画像の生成を繰り返すことにより、複数のパターン画像を生成することを特徴とする。
本発明によれば、回路規模によるパターン画像の数の制約を生じさせず、廉価かつ容易に、任意の位置、寸法、数のパターン画像を含むテストパターンを生成することができる。
本発明に係る画像形成装置の構成例を示すブロック図である。 画像形成部の要部構成を示す図である。 テストパターン生成部の主要構成を示すブロック図である。 RAMに記憶されるプログラムの一例を示す図である。 図4のプログラムに基づいてテストパターン生成部により生成される1ページの生成内容を示す図である。 パターン生成部240の構成及びデータの入出力の一例を示すブロック図である。 CPU_STATUSの状態遷移パターンの一例を示す図である。 レジスタ250に格納される各種のパラメータと、CPU220の処理内容との対応関係の一例を示す図である。 Jump命令による命令のループの一例を示す図である。 Wait命令によるCPUの待機処理の一例を示す図である。
以下、図を参照して本発明の実施の形態の例を詳細に説明する。
図1に、本発明に係る画像形成装置1の構成例を示す。
画像形成装置1は、例えば、電子写真方式のカラー複写機であり、図1に示すように、制御部101、操作表示部102、スキャナ部103、画像処理部104、画像形成部105、センサ106、記憶部107、送受信部108等により構成され、各部はバス109により接続されている。
制御部101は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等により構成される。制御部101のCPUは、操作表示部102の操作により、ROMに記憶されているシステムプログラムや各種処理プログラムを読み出してRAMに展開し、展開されたプログラムに従って、画像形成装置1各部の動作を集中制御する。
操作表示部102は、LCD(Liquid Crystal Display)により構成され、制御部101から入力される表示信号の指示に従って表示画面上に各種操作ボタンや装置の状態表示、各機能の動作状況等の表示を行う。LCDの表示画面上は、透明電極を格子状に配置して構成された感圧式(抵抗膜圧式)のタッチパネルに覆われており、手指やタッチペン等で押下された力点のXY座標を電圧値で検出し、検出された位置信号を操作信号として制御部101に出力する。また、操作表示部102は、数字ボタン、スタートボタン等の各種操作ボタンを備え、ボタン操作による操作信号を制御部101に出力する。
スキャナ部103は、原稿を載置するコンタクトガラスの下部にスキャナを備えて構成され、原稿の画像を読み取る。スキャナは、光源、CCD(Charge Coupled Device)、A/D変換器等により構成され、光源から原稿へ照明走査した光の反射光を結像して光電変換することにより原稿の画像をR、G、B信号として読み取り、読み取った画像をA/D変換して画像処理部104に出力する。ここで、画像は、図形や写真等のイメージデータに限らず、文字や記号等のテキストデータ等も含む。
画像処理部104は、スキャナ部103により読み取って得られたRGBデータや、送受信部108から送信されたRGBデータ等に対して所定の色変換処理(YMCKデータ生成処理)、YMCKデータのγ補正処理、中間調処理等の画像処理を施して画像形成部105に出力する。
また、画像処理部104は、テストパターン生成部200を有する(詳細後述)。
画像形成部105は、電子写真方式により、画像処理部104から出力されたYMCKの画像データに基づいて、転写紙上に画像を形成して出力する。
図2に、画像形成部105の要部構成を示す。図2に示すように、画像形成部105は、Y、M、C、Kの各色のトナー像を形成する感光体ユニット50Y、50M、50C、50Kと、ローラ57の回転自在に感光体ユニット50Y、50M、50C、50Kで形成されたトナー像を転写紙に搬送する中間転写体としての中間転写ベルト56と、転写紙を搬送するレジストローラ58と、転写紙に中間転写ベルト56上に形成されたトナー像を転写する2次転写ローラ59と、転写紙にトナー像を定着させる定着ユニット60と、転写紙を排紙する排紙ローラ61とを備えて構成されている。
感光体ユニット50Yは、感光体ドラム51Yと、現像器52Yと、帯電器53Yと、クリーナ54Yと、1次転写ローラ55Yとを備えて構成されている。感光体ユニット50M、50C、50Kも同様である。
ここで、画像形成部105における画像形成について説明する。まず、感光体ユニット50Yにおいて、感光体ドラム51Yが回転し、その表面が帯電器53Yにより帯電され、図示しないレーザ光源などの露光手段の露光によりその帯電部分に画像処理部104から入力されたYデータの画像の潜像が形成される。そして、現像器52Yによりその潜像部分にイエローのトナー像が形成される。そのトナー像は第1転写ローラ55Yの圧接により中間転写ベルト56に転写される。トナー像は、出力対象の画像データに対応するイエローの像となる。転写されなかったトナーは、クリーナ54Yにより除去される。
感光体ユニット50M,50C,50Kについても同様に、マゼンダのトナー像、シアンのトナー像、黒のトナー像がそれぞれ同様に形成及び転写される。ローラ57、1次転写ローラ55Y、55M、55C、55K、2次転写ローラ59の回転により、中間転写ベルト56も回動され、YMCKのトナー像が中間転写ベルト56上に順に重ねられて転写される。また、図示しない給紙トレイからレジストローラ58の回転により転写紙が2次転写ローラ59に搬送される。
2次転写ローラ59の圧接部を転写紙が通過することにより、中間転写ベルト56上のYMCKのトナー像が転写紙に転写される。YMCKのトナー像が転写された転写紙は、定着ユニット60を通過する。定着ユニット60の加圧及び加熱により、YMCKのトナー像が転写紙上に定着されてカラー画像が形成される。画像形成された転写紙は、排紙ローラ61により、図示しない排紙トレイなどに搬送される。また、両面印刷をする場合には、片面に画像形成された転写紙が、図示しない両面搬送ユニットにより面が反転され、画像形成されていない面に再び画像形成するようにレジストローラ58により、2次転写ローラ59に搬送される。
図1のセンサ106は、画像形成部105において中間転写ベルト56上に形成された階調パッチパターン画像の各パッチに光を照射し、その反射光を受光して、反射率をセンサの出力値として制御部101に出力する。制御部101は、センサの出力値に基づいて画像の色の測定を行うことができる。
記憶部107は、フラッシュメモリ等により構成され、画像形成装置1の各部により用いられる各種のプログラムやデータ等を記憶する。
送受信部108は、モデム、LANアダプタやルータやTA(Terminal Adapter)等によって構成され、専用線、或いはISDN回線等の通信回線を介してネットワークNに接続された各装置との通信制御を行う。
次に、テストパターン生成部200について説明する。
テストパターン生成部200は、スキャナ部103により読み取って得られたRGBデータや、送受信部108から送信されたRGBデータ等に基づく画像形成とは別の、独立で1ページの画像イメージを生成する構成である。
具体的には、テストパターン生成部200は、複数のパターン画像を含む画像イメージ(テストパターン)を生成する。テストパターンは、生成された部分から逐次画像形成部105へ入力される。画像形成部105は、入力されたテストパターンに応じた画像を用紙に形成する。以下、本実施形態では、テストパターンのパターン画像として矩形画像を生成する例について説明する。
図3に、テストパターン生成部200の主要構成を示す。
図3に示すように、テストパターン生成部200は、走査位置カウンタ210、CPU220、RAM230、レジスタ250及びパターン生成部240を備える。図3に示すレジスタ250は、説明の便宜上、CPU220と分離して描いているが、CPU220と協働して演算装置を構成する。本実施形態の記載において、CPU220は演算装置の制御機能を示し、レジスタ250は演算装置記憶機能を示し、両者一体で演算装置として機能する。レジスタ250はI/Oボートのように、テストパターン生成部240側の描画パラメータを格納しているレジスタに直接接続されている。
走査位置カウンタ210は、所定の領域(例えば用紙1ページ分の生成領域)における一方向(主走査方向)及び当該一方向に直行する他方向(副走査方向)に係る位置をカウントアップし、主走査方向及び副走査方向に係る値(HVI、VVI、HVCNT、VVCNT)を出力する。
なお、主走査方向は画像形成装置1の画像形成部105による画像形成の進行方向に対応し、副走査方向は中間転写ベルト56の駆動方向及び用紙の搬送方向に対応する。つまり、画像形成部105は、用紙の幅に応じて主走査方向に沿った1ライン分の画像形成を副走査方向について繰り返すことにより画像を形成する。
具体的には、走査位置カウンタ210は、HVI、VVIの入力を受けて、HVI、VVI、HVCNT、VVCNTをパターン生成部240に対して出力する。また、走査位置カウンタ210は、VVCNTをCPU220に対して出力する。
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である。
CPU220は、RAM230に格納されたプログラムの内容に応じて、矩形画像を生成するための各種のパラメータをレジスタ250へ書き込む。本実施形態のCPU220は、8ビット命令を処理するマイクロプロセッサである。
RAM230は、CPU220により処理されるデータ(プログラム)を一時的に記憶する(図4参照)。RAM230に記憶されるデータ(プログラム)は、テストパターン生成部200により所定の領域内に複数の矩形画像を生成するためのプログラムである。
RAM230へのプログラムの書き込みは、制御部101により行われる。制御部101は、用紙に生成する矩形画像の配置、形状(大きさ)及び色に応じたプログラムをRAM230に書き込む。さらに、制御部101は、CPU220の起動制御をCPU220に対して実行する。CPU220は、当該起動制御に応じてRAM230の読み出し、実行処理を開始する。
図4に、RAM230に記憶されるプログラムの一例を示す。
本実施形態において、RAM230に記憶されるプログラムは、複数の命令と各々の命令を構成する複数のパラメータを含む。図4に示す横一列に並んだコンマ(,)に区切られた複数の文字列が一つの命令及びその命令を構成する複数のパラメータに対応する。各命令及びパラメータは、8ビット単位のデータである。
図4では、プログラムを構成するマシン語のイメージと、当該プログラムをアセンブラ形式で記載した場合の記載例を併記している。以下の記載では、必要に応じてアセンブラ言語での記載を用いてプログラムの内容を説明する。なお、図4及び図4を用いて示す命令を処理するCPU220は、この用途に特化した専用のCPUであり、他の命令形態による処理も行うことが可能な一般的なマイコンより簡素な回路にて実現することができる。
以下、プログラムの内容について、図5を参照して説明する。
図5に、図4のプログラムに基づいてテストパターン生成部200により生成される1ページの生成内容を示す。
図5は用紙1ページの生成内容を示し、図5の横方向が主走査方向に対応し、図5の縦方向が副走査方向に対応する。画像形成部105は、主走査方向に沿って1ラインの順次画像を形成する。そして、用紙が副走査方向に沿って搬送されることにより、次のラインの主走査方向の画像形成が行われる。
横一行に示される一つの命令は、その先頭の8ビットのデータ(図4の最も左に位置する4文字)により、命令の種類を示す。具体的には、先頭の8ビットのデータは、Load命令、Jump命令、Wait命令又はHALT命令のいずれかに対応するデータである。図4に示す例では、「0x10」のデータがLoad命令を示し、「0xC0」のデータがJump命令を示し、「0xD0」のデータがWait命令を示し、「0x00」のデータがHALT命令を示す。
Load命令は、パターン生成部240に矩形画像描画パラメータを指示する為の命令である。一つのLoad命令及びそのオペランドが、一つの矩形画像を生成させる命令として機能する。後で示すように、待ち合わせ機能も備えたLoad命令兼Wait命令であって、パターン生成部240とで、描画パラメータの更新要求および更新完了を伴う、待ち合わせ機能も受け持っている。図4、図5に示す例では、「命令1」のLoad命令が矩形Aの生成命令として機能し、「命令2」のLoad命令が矩形Bの生成命令として機能し、「命令4」のLoad命令が矩形Cの生成命令として機能し、「命令6」のLoad命令が矩形Dの生成命令として機能し、「命令7」のLoad命令が矩形Eの生成命令として機能する。
Load命令は、そのオペランドとして、HStart、VStart、Hsize、Vsize、Colorを含む。このうち、HStart、VStart、Hsize、Vsizeは所定の領域(例えば用紙1ページ分の生成領域)における一方向(主走査方向)及び当該一方向に直行する他方向(副走査方向)に基づいて矩形の生成位置ならびに矩形の一方向及び他方向に沿った大きさを決定するパラメータであり、Colorは矩形の色を決定するパラメータである。
HStart、VStartは、生成される矩形の始点を示す。具体的には、HStartは矩形の主走査方向における始点を示し、VStartは副走査方向における始点を示す。
Hsize、Vsizeは、生成される矩形の大きさを示す。具体的には、Hsizeは、Hstartとの加算回路の出力で主走査方向における終点を示し、同様にVsizeはVstartとの加算により副走査方向の終点を示すことにより、始点と協働して矩形の大きさを定めることとなる。HStart、VStart、Hsize、Vsizeは所定の原点(例えば図5に示す原点O)に対する主走査方向、副走査方向に係る位置を座標により示す。
図5に示す矩形Aの場合、原点Oに対し、HStart、VStartにより決定される始点は点Pであり、Hsize、Vsizeにより決定される終点は点Qである。
HStart、VStart、Hsize、Vsizeの値はそれぞれ、16ビット(2バイト)のデータであり、二つの8ビットのデータを組み合わせた値により構成される。そして、二つの8ビットデータは、その一方が対応する16ビットデータの上位バイトの値となり、他方が下位バイトの値となる。
例えば、図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)も同様の関係を有する。
Colorは矩形の色を決定する。具体的には、ColorはY(Yellow)、M(Magenta)、C(Cyan)、K(black)の各色の濃度値を8ビットの値で示す。これによって、Y、M、C、Kの各色の組み合わせにより構成される矩形の色を決定する。
Colorは、四つの8ビットのデータを組み合わせた値により構成される。そして、四つの8ビットのデータはそれぞれが、Y、M、C、Kの各色の濃度値を8ビットの値で示す。
例えば、図4に示す「命令1」のColorAの値は、プログラムに含まれるα9〜α12の四つの8ビットデータにより構成される。そして、α9がYの濃度値を示し、α10がMの濃度値を示し、α11がCの濃度値を示し、α12がKの濃度値を示す。他の矩形(矩形B、C、D、E)と、その生成命令(命令2、4、6、7)も同様の関係を有する。
Jump命令は、所定の条件を満たすか否かの判定結果に基づいて次に実行する命令を分岐させる。本実施形態では、第1の条件の判定として、現在処理している副走査方向の位置と「副走査方向の所定の位置」との大小関係に基づいて、「副走査方向の所定の位置」まで生成を完了しているか否かを判定する。そして、生成を完了していない場合、「遷移先として指定されたアドレス」から始まる命令を行い、生成を完了している場合、当該Jump命令の次の命令を実行する。「副走査方向の所定の位置」及び「遷移先として指定されたアドレス」は、Jump命令に含まれるオペランドによって示される。
具体的には、図4に示すプログラムにおいて、Jump命令を示す「0xC0」の直後に続く二つの8ビットデータが「遷移先として指定されたアドレス」を示す。また、「遷移先として指定されたアドレス」の直後に続く二つの8ビットデータが「副走査方向の所定の位置」を示す。「遷移先として指定されたアドレス」、「副走査方向の所定の位置」は16ビットの値であり、それぞれの値を構成する二つの8ビットデータの一方が上位バイトの値となり、他方が下位バイトの値となる。
例えば、「命令3」のJump命令の場合、「0xC0」の直後に続く二つの8ビットデータである「00,00」が「遷移先として指定されたアドレス(”Label1”を付加された命令(命令1)の先頭アドレス)」を示す。また、「00,00」の直後に続く二つの8ビットデータである「V1H,V1L」が「副走査方向の所定の位置(V1)」を示す。
「命令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」)も同様の関係を有する。
Jump命令の判定は、現在処理している副走査方向の位置(VVCNT)が変わるたびに行われる。つまり、主走査方向について1回の生成を完了するたび、Jump命令は実行される。また、Jump命令の前に複数のLoad命令が連続する場合、1回の主走査方向の生成を行うにあたり、CPU220は当該複数のLoad命令を読み出して実行する。
例えば、図4に示す命令1(矩形Aを生成するLoad命令)、命令2(矩形Bを生成するLoad命令)及び命令3(分岐先として命令1を指定されたJump命令)を例にとって説明する。
CPU220は、命令1、命令2を順次読み出して実行する。これにより、矩形A、矩形Bを生成するための複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)が順次レジスタ250へ書き込まれる。パターン生成部240は、レジスタ250に保持されているパラメータを読み出し、当該パラメータの内容に応じた矩形画像(矩形A、矩形B)を生成する。
ただしパターン生成部240は、1領域分の矩形描画パラメータによる主走査方向の描画範囲の期間中は、CPU220からの後続のLoad命令による矩形描画パラメータの更新指示をうけても、主走査描画範囲の最終画素に至るまで描画パラメータを更新しない。CPU220は、先行するLoad命令による描画パラメータに、パターン生成部240が更新を済ませない間は、後続命令の実行を一時停止し、プログラムカウンタのカウントアップを止める。パターン生成部が、先行するLoad命令による描画パラメータの更新指示を受理したタイミングで、一時停止状態を解除しプログラムカウンタのカウントアップと、後続命令をフェッチする動作を開始する。
この一時停止、続行を伴いながら、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の構成及びデータの入出力の一例を示す。
図6に示すように、パターン生成部240は、加算部301、302、減算部311、比較部321〜325、セレクタ(SEL)331、論理積判定部341、更新タイミング制御部351を備えている。なお、図6に示すように、パターン生成部240は、走査位置カウンタ210から出力されたHVCNT及びVVCNTの値や、レジスタ250に記憶されたHStart、VStart、Hsize、Vsize、Color等の各種パラメータを取得して出力(SGUOUT)を行う。
加算部301は、HStartとHsizeとを加算した値(加算値A1)を減算部311及び比較部322に対して出力する。加算部302は、VStartとVsizeとを加算した値(加算値A2)を比較部324に対して出力する。
減算部311は、加算部301によるHStartとHsizeとの加算値(加算値A1)から1を減算した値(減算値M1)比較部325に対して出力する。
比較部321は、HVCNTと、HStartとを比較し、HVCNTの値がHStartの値以上(HVCNT≧HStart)であるか否かを示す出力を論理積判定部341に対して行う。
比較部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に対して行う。
セレクタ331は、予め設定された色の無い出力(例えば、図6に示すall 0)又はColorの値に応じた出力のいずれかを行う(SGUOUT)。
論理積判定部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)に応じた矩形の描画出力が行われる。
更新タイミング制御部351は、比較部325からの出力と、レジスタ250の更新フラグ(FLAG_UPDATE)の値に基づいて、パターン生成部240に保持されたHStart、VStart、Hsize、Vsize及びColorの値を更新させる制御を行う。その詳細は後述するが、更新タイミング制御部351は、例えば、各LOAD命令に応じたHStart、VStart、Hsize、Vsize及びColorの値の切替制御を行う。つまり、更新タイミング制御部351により各LOAD命令に応じたHStart、VStart、Hsize、Vsize及びColorの値の切替制御が行われることで、一のパターン画像(例えば、矩形画像)を生成するパターン生成部240は、複数のLOAD命令に応じた複数のパターン画像を切り替えながら生成することができる。
このように1矩形領域の描画パラメータによって1描画領域を描画するに足りるだけの回路規模のパターン生成部240においても、その描画パラメータを、外部より、更新させる機能と、変更指示を受け付ける機能を備えることにより、複数領域のパターンを描くことができる。副走査方向で所定位置に到達するまでの期間、ループさせる条件分岐命令と、待合わせ機能を持たせたLOAD命令とによる簡易なプログラムで、複数領域のパターンを描くことができる。パターン生成部240は、主走査方向の矩形終端で、一度に複数バイト分の情報からなる描画パラメータを一度に更新する機能をもつことで矩形描画領域が隣接する場合においても、遅滞なく描画パラメータの更新が行われる。パターン生成部が矩形描画中にプログラムが実行されることと、その描画パラメータを、CPU側が控えておくこととにより、描画パラメータを一度に更新できることから、ことさら描画範囲について隙間を設けたりする必要がなくなり描画パラメータ全部を転送するプログラム実行時間に関るタイムラグを気にせずに済む点でCPU側のプログラミングの負担も軽くなる。
その後、VVCNTの値がV1以上となった場合、CPU220は命令4を読み出して実行する。これによって、V1より後の領域において、命令4に対応する矩形Cの生成が行われる。
上記は、命令1〜3のLoad命令及びJump命令について例示しているが、命令6〜8ののLoad命令及びJump命令についても同様である。
なお、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命令を並べることにより、三角形を描画するプログラムを記述することもできる。
Wait命令は、所定の条件を満たすか否かの判定結果に基づいて当該Wait命令の次の命令へ移行するか否か分岐させる。本実施形態では、第1の条件の判定として、現在処理している副走査方向の位置と「副走査方向の所定の位置」との大小関係に基づいて、「副走査方向の所定の位置」まで生成を完了しているか否かを判定する。そして、生成を完了していない場合、当該Wait命令の次の命令へ移行せず待機し、生成を完了している場合、当該Wait命令の次の命令へ移行する。「副走査方向の所定の位置」は、Wait命令に含まれるパラメータによって示される。
具体的には、図4に示すプログラムにおいて、Wait命令を示す「0xD0」の直後に続く二つの8ビットデータが「副走査方向の所定の位置」を示す。「副走査方向の所定の位置」は16ビットの値であり、それぞれの値を構成する二つの8ビットデータの一方が「副走査方向の所定の位置」の上位バイトの値となり、他方が下位バイトの値となる。
例えば、「命令5」のWait命令の場合、「0xD0」の直後に続く二つの8ビットデータである「V2H,V2L」が「副走査方向の所定の位置(V2)」を示す。
「命令5」のWait命令の場合、CPU220は、図5に示すV2の範囲の生成を完了したか否かについて、現在処理している副走査方向の位置(VVCNT)と「副走査方向の所定の位置」の値(V2)との大小関係に基づいて判定する。VVCNTの値がV2を下回る場合、CPU220は当該Wait命令(命令5)の次の命令(命令6)へ移行せず待機し、VVCNTの値がV2以上である場合、次の命令を読み出す。
Wait命令による待機中は、CPU220は後続のプログラムを実行しない。
図4、図5に示す例の場合、VVCNTの値がV1以上かつV2より小さい間、パターン生成部240により命令4による生成が継続され、命令4に対応する矩形Cの生成が行われる。
HALT命令は、プログラムの実行を停止させる。HALT命令を読み込んだCPU220は、その後、制御部101から新たな命令を受けるまでRAM230に対するアクセスを行わない。
HALT命令によるプログラムの実行停止中は、CPU220の処理及びパターン生成部240による生成処理は行われない。復帰は制御部からの指示による。
パターン生成部240は、レジスタ250に保持されているパラメータを読み出し、当該パラメータの内容に応じた矩形画像を生成する。
具体的には、パターン生成部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)を生成する。
また、パターン生成部240は、レジスタ250に保持されているパラメータの読み出しを完了した後、レジスタ250の更新フラグ(FLAG_UPDATE)の値を変更する。更新フラグ(FLAG_UPDATE)に係る処理については後述する。
レジスタ250は、CPU220により書き込まれる各種のパラメータを書き換え可能に記憶、保持する。CPUに付属する専用の値を格納するレジスタ群である。
図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は、矩形画像を構成するための複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)を格納する。
ここで、矩形生成パラメータ格納領域251は、CPU220により生成されたパラメータ(HStart、VStart、Hsize、Vsize、Color)を記憶する。
本実施形態の矩形生成パラメータ格納領域251は、単一の描画範囲の矩形画像を構成するためのパラメータを格納し、既に複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)を格納している矩形生成パラメータ格納領域251に対してさらにCPU220によりこれらのパラメータの格納が行われた場合、パラメータが上書きされて更新されることとなる。
アドレス(ADDRESS)格納領域252は、CPU220により読み出されるプログラムのRAM230におけるメモリアドレス(ADDRESS)を格納するプログラムカウンタである。。ADDRESSの初期値は0又は制御部101によるCPU210の起動処理に伴い設定される所定の値である。
プログラムカウンタの増分(PC_INC)格納領域253は、プログラムカウンタを意味するアドレス(ADDRESS)格納領域252の値の加算値(PC_INC)を格納する。PC_INCの値は、通常の場合1の値を取り、CPU220がプログラム続行を休止または復帰した場合に変更後の値(0又は1)を取る。
CPU220は、PC_INCの値に応じたADDRESSのカウントアップを行う。
遷移状態(CPU_STATUS)格納領域254は、CPU220の状態を示すパラメータ(CPU_STATUS)を格納する。
図7に、CPU_STATUSの状態遷移パターンの一例を示す。
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命令についても同様である。
各命令に対応する状態の遷移は、CPU220が処理している内容の遷移に対応する。
以下、図8を用いて、レジスタ250に格納される各種のパラメータと、CPU220の処理内容との対応関係について説明する。
まず、制御部101からRAM230へプログラムが書き込まれ、起動の指示がCPU220へ入力される。これにより図8に示す負論理のリセット信号に相当する「CPU CONTROL」が立ち上がり、CPU220が処理を開始することとなる。また、この後、PC_INCの値に応じてADDRESSの値がカウントアップされる。
起動後、CPU220は、RAM230の先頭アドレス(0)を読み出し、読み出した内容に応じた処理を行う。
例えば、図4に示すプログラムの場合、先頭アドレスにはLoad命令を示す「0x10」が書き込まれているので、当該「0x10」を読み出すことにより、CPU220は、以降の処理としてLoad命令を実行する。具体的には、CPU220は、RAM230のその後のアドレスに書き込まれているα1〜α12の値に基づいて単一の描画範囲の矩形画像を構成するための複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)を決定し、レジスタ250の矩形生成パラメータ格納領域251へ書き込む処理を行う。
以降、CPU220は、ADDRESSの値に基づいてRAM230のアドレスを指定し、指定したアドレスに書き込まれているプログラムの内容を読み出す。そして、読み出した内容に応じた値を、レジスタ250へ格納する。
ここで、CPU220は、ADDRESSの値に基づいてRAM230のアドレスを指定する処理順序を経ることから、図8に示すように、ADDRESSの値と、CPU220によるRAM230の読み出しタイミングとは1クロック分のずれを生じる。また、CPU220は、RAM230からプログラムを読み出した、その内容に応じた値をレジスタ250へ格納する処理順序を経ることから、CPU220によるRAM230の読み出しタイミングと、当該内容に対応する値のレジスタ250の格納のタイミングとは1クロック分のずれを生じる。
図4に示すプログラム及び図8の例示に基づいて説明をすると、ADDRESSの値が0である1クロック後、CPU220がADDRESS(0)の値に対応するRAM230のアドレス(0000)の内容である「0x10」を読み出し、Load命令を開始する。ここで、CPU220は、レジスタ250の遷移状態(CPU_STATUS)格納領域254に「LOAD」を示す値を格納する。図8では図示しないが、CPU220が「0x10」を読み出したクロックの1クロック後、CPU_STATUSに「LOAD」を示す値が格納される。
また、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クロックずつずれて進行する。
以下、Load命令中のCPU220の処理について記載する。ここでは、命令1のLoad命令に含まれるα1〜α12を例として記載するが、他のLoad命令でも同様である。CPU220は、プログラムカウンタであるADDRESSの値に応じて順次読み出すRAM230のアドレスを進める。
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」とする。
CPU_STATUSが「L10」であるとき、CPU220が「α11」を読み出してColorに含まれるCの濃度値として記憶し、CPU_STATUSを「L11」とする。さらに、このとき、CPU220は、プログラムカウンタ増分(PC_INC)格納領域253の値(PC_INC)を0に設定する。これによって、その1クロック後にPC_INCの値が0となる。つまり、それまでADDRESSに加算されていたPC_INCの値(1)が0になることによってADDRESSの値が変化しなくなり、ADDRESSの値によるカウントアップが一時停止する。これは1クロック後に起こる。
CPU_STATUSが「L11」であるとき、CPU220が「α12」を読み出してColorに含まれるKの濃度値として記憶し、CPU_STATUSを「L12」とする。さらに、このとき、CPU220は、レジスタ250の更新フラグ(FLAG_UPDATE)格納領域255に1をセットする。
更新フラグ(FLAG_UPDATE)格納領域255は、更新フラグ(FLAG_UPDATE)を格納する。FLAG_UPDATEは、CPU220がパターン生成部240に対してレジスタ250の矩形生成パラメータ格納領域251の読み出しを要求することを示す値であると共に、パターン生成部240が矩形生成パラメータ格納領域251に保持されているパラメータの読み出しを完了したか否かを示すためのフラグである。
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である。
パターン生成部240は、矩形の生成を開始していない場合又は直前に読み出した矩形の生成の一主走査分の描画完了の最終画素に達した場合であって、FLAG_UPDATEの値が1である場合、レジスタ250の矩形生成パラメータ格納領域251から一つの矩形を構成する複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)を読み出す。この読み出しは、パターン生成部の描画パラメータを納めたレジスタ群を構成するフリップフロップに対して、画像生成パラメータ格納領域251からの出力を入力値として、フリップフロップの出力値を更新させるトリガを与えることにより1クロックで実現される。後に示すように、矩形描画領域が隣接する場合においても、これにより1画素の遅滞なく、描画パラメータの更新が行われ、主走査方向に隣接する後続のパターン画像を描画することができる。
一つの矩形を構成する複数のパラメータ(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命令に対応する複数の種類の矩形画像が生成される。
ここで、FLAG_UPDATEの値に応じた一つの矩形を構成する複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)の更新の制御について、図6を用いて説明する。
パターン生成部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は、取得されたパラメータに応じたパターン画像の生成を行うことができる。
このように、CPU220は、パターン生成部240に格納されている単一の描画範囲のパターン画像の生成に対応する描画パラメータを、別のパターン画像の生成に対応する描画パラメータと切り替えるためのフラグ値(FLAG_UPDATEの1の値)を設定する。
また、更新フラグ格納領域255は、フラグ値(FLAG_UPDATE)を記憶する。
また、パターン生成部240は、読出しを完了した描画パラメータに基く一主走査分の最終画素描画位置でフラグ値(FLAG_UPDATE)をリセットする。そして、CPU220は、フラグ値(FLAG_UPDATE)のリセットが入るたびにCPU220自身に後続の命令を続行させる。
CPU_STATUSが「L12」であるとき、CPU220は、FLAG_UPDATEの値が0になるまで待機する。このとき、上述のように、PC_INCの値は0であるので、図8に示すように、ADDRESSの値のカウントアップは停止している。FLAG_UPDATEの値が0になると、CPU220は、PC_INCの値を1に戻し、CPU_STATUSを「L13」とする。つまり、CPU220は、FLAG_UPDATEの値を1に設定してパターン生成部240に命令の更新要求即ち複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)の更新の要求をした後、パターン生成部240が更新された複数のパラメータ(HStart、VStart、Hsize、Vsize、Color)の読み出しを完了してFLAG_UPDATEの値を0に戻すまで、以後の処理を行わずに待機する。
CPU_STATUSが「L13」であるとき、CPU220は、CPU_STATUSを「FETCH」とする。なお、CPU_STATUSが「L12」となったとき、PC_INCの値は1に戻るが、PC_INCの値が1に戻ったことによるADDRESSのカウントアップ再開はさらにその1クロック後となる。
CPU_STATUSが「FETCH」であるとき、CPU220は、ADDRESSの値に応じて新たな命令を読み出す。例えば、図4に示す命令1のLoad命令の読み出しを完了した後に迎えた「FETCH」の場合、図8に示すように、カウントアップが再開されたADDRESSの値(14)に応じたRAM230のアドレス(0014)の内容を読み出す。これによって、命令2のLoad命令の先頭(「0x10」)が読み出されるので、CPU220は、命令2のLoad命令を開始する。以後、上述の命令1のLoad命令と同様の処理が繰り返される。
図4に示す命令1のLoad命令の読み出しを完了した後に迎えた「FETCH」の場合、その後に読み出されるRAM230の内容は命令3のJump命令の先頭(「0xC0」)であるので、CPU220は、CPU_STATUSを「JUMP」とし、命令3のJump命令を開始する。
CPU_STATUSが「JUMP」であるとき、CPU220がRAM230における「0xC0」の直後のアドレスの値(例えば命令3の「0xC0」の直後の「00」)を読み出してレジスタ250の戻り番地(JMPADR)格納領域256の値(JMPADR)の上位バイトとして格納し、CPU_STATUSを「J1」とする。
CPU_STATUSが「J1」であるとき、CPU220がRAM230における「0xC0」の2つ後のアドレスの値(例えば命令3の「0xC0」の2つ後の「00」)を読み出してJMPADRの下位バイトとして格納し、CPU_STATUSを「J2」とする。
戻り番地(JMPADR)格納領域256は、戻り番地(JMPADR)を格納する。JUMPADRは、Jump命令における「遷移先として指定されたアドレス」を示す。
CPU_STATUSが「J2」であるとき、CPU220がRAM230における「0xC0」の3つ後のアドレスの値(例えば命令3の「0xC0」の3つ後の「V1H」)を読み出してレジスタ250の副走査方向待ち位置(VV_WAIT)格納領域257の値(VV_WAIT) の上位バイトとして格納し、CPU_STATUSを「J3」とする。
副走査方向待ち位置(VV_WAIT)格納領域257は、副走査方向待ち位置(VV_WAIT)を格納する。VV_WAITは、「副走査方向の所定の位置」を示す。
CPU_STATUSが「J3」であるとき、CPU220は、RAM230における「0xC0」の4つ後のアドレスの値(例えば命令3の「0xC0」の4つ後の「V1L」)を読み出して先に格納されたVV_WAITの上位バイトと合わせて副走査方向待ち位置(VV_WAIT)を特定し、走査位置カウンタ210から入力された副走査方向の位置を示す値(VVCNT)と比較する。VVCNTの値がVV_WAITの値を下回る場合、CPU220はJMPADRに格納された値をADDRESSに設定し、CPU_STATUSを「J4」とする。一方、VVCNTの値がVV_WAITの値以上である場合、CPU220は、ADDRESSの値を変更する処理を行わずにCPU_STATUSを「J4」とする。
CPU_STATUSが「J4」であるとき、CPU220が、CPU_STATUSを「FETCH」とする。
Jump命令の完了によりCPU_STATUSが「FETCH」となったとき、上述と同様、CPU220は、ADDRESSの値に応じて新たな命令を読み出す。
例えば、図4の命令3のJump命令の場合、JMPADRに「0000」即ち命令1の先頭アドレスが設定される。また、VV_WAITに「V1H」、「V1L」によって構成される値(V1)が設定される。そして、CPU220は、走査位置カウンタ210から入力されたVVCNTの値即ち現在処理している副走査方向の位置と、VV_WAITの値(V1)とを比較し、VVCNTの値がVV_WAITの値(V1)を下回る場合、CPU220はJMPADRに格納された値(0000)をADDRESSに設定する。
よって、VVCNTの値がVV_WAITの値(V1)を下回る間、CPU220は命令3のJump命令の完了後、命令1のLoad命令を再度読み出す。つまり、VVCNTの値がVV_WAITの値(V1)を下回る間、命令1、命令2、命令3、命令1…のように、命令1〜3の処理がループする。
図9を用いて、Jump命令による命令のループについて説明する。
なお、図9及び後述する図10において、「HV」は画像生成(画像形成)の方向が主走査方向に沿って進行しているか副走査方向に沿って進行しているかを示す。HVのシグナルが立ち上がっているときは主走査方向に沿って画像生成(画像形成)が進行し、立ち下がっているときは副走査方向に沿って画像生成(画像形成)が進行即ち主走査方向に沿った1ラインの画像生成(画像形成)が終了してラインが切り替わっていることを示す。
CPU220は、VVCNTの値がVV_WAITの値(V1)の値以上となるまで、命令1〜3の処理を繰り返す。これによって、副走査方向についてV1の位置までの生成を完了するまで、更新フラグ(FLAG_UPDATE)が0になるたびに命令1のLoad命令に対応する矩形(矩形A)の複数のパラメータと命令2のLoad命令に対応する矩形(矩形B)の複数のパラメータとが交互にレジスタ250の矩形生成パラメータ格納領域251に格納される。そして、更新フラグ(FLAG_UPDATE)が1になり、かつ、直前に読み出したパラメータに対応する矩形の生成を完了するたびに、パターン生成部240が矩形生成パラメータ格納領域251を読み出して、読み出したパラメータに対応する矩形を生成する。これによって、1回の主走査方向について、複数のLoad命令(命令1、命令2)に対応する複数の矩形(矩形A、矩形B)の生成が行われる。
このように、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についても同様である。
その後、VVCNTの値がVV_WAITの値(V1)の値以上となると、ADDRESSの値はJump命令で指示する分岐先には更新されず、PC_INCの値に基く通常のADDRESSのカウントアップに応じ、CPU220は命令4の先頭アドレスを読み出すこととなる。命令4のLoad命令の処理は、上述したLoad命令の処理と同様である。
命令4のLoad命令の完了によりCPU_STATUSが「FETCH」となったとき、上述と同様、CPU220は、ADDRESSの値に応じて新たな命令を読み出す。CPU220は、「0xD0」を読み出し、命令5のWait命令を開始する。ここで、CPU220は、レジスタ250の遷移状態(CPU_STATUS)格納領域254に「WAIT」を示す値を格納する。
CPU_STATUSが「WAIT」であるとき、CPU220がRAM230における「0xC0」の直後のアドレスの値(例えば命令5の「0xD0」の直後の「V2H」)を読み出してレジスタ250の副走査方向待ち位置(VV_WAIT)格納領域257の値(VV_WAIT) の上位バイトとして格納し、CPU_STATUSを「W1」とする。
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」とする。
つまり、Wait命令の実行後、VVCNTの値がVV_WAITの値以上となるまで、CPU220はレジスタ250の矩形生成パラメータ格納領域251に対するパラメータの更新が行われない。このため、図10に示すように、命令5のWait命令の直前のLoad命令である命令4に対応する矩形(矩形C)の生成が継続される。
VVCNTの値がVV_WAITの値以上となってWait命令が完了し、CPU_STATUSが「FETCH」となったとき、上述と同様、CPU220は、ADDRESSの値に応じて新たな命令を読み出す。
図4に示すプログラムの場合、命令5のWait命令の完了後、命令6〜8に含まれる2つのLoad命令及びJump命令によるループ処理が行われて矩形D、矩形Eが生成された後、命令9のHALT命令に致ることにより1ページの生成処理が終了する。命令6〜命令8に含まれる2つのLoad命令及びJump命令によるループ処理は、上述の命令1〜3のループ処理と同様である。
ここで、矩形A及び矩形Bと、矩形Cと、矩形D及び矩形Eとは、それぞれ、副走査方向に沿って生成された複数の矩形画像となっている。副走査方向に沿って生成される複数の矩形画像は、矩形A、矩形C、矩形Dのように連続させることもできるし、矩形Bと矩形Eのように個別の矩形画像とすることもできる。また、矩形Cの生成の間の処理のように、複数の矩形画像を生成する処理中に、副走査方向の一部又は全部について、主走査方向について単一の描画範囲の矩形画像のみが存在する範囲を設けることもできる。
このように、CPU220は、RAM230に格納されたプログラムの内容に応じて、副走査方向について複数の矩形画像を生成させる場合、所定の領域内における主走査方向に沿った複数の矩形画像の各々を生成させる命令を主走査方向で反復実行するプログラムを1組とし、副走査方向での複数画像分だけ、複数組実行する。
なお、上述の記載では図4のプログラムの内容に基づいて各種の命令及びその処理の流れについて説明しているが、RAM230に書き込まれるプログラムのLoad命令、Jamp命令、Wait命令等の組み合わせ方及びそのパラメータの具体的内容は任意に決定することができる。
以上、本実施形態の画像形成装置1によれば、テストパターン生成部200のCPU220が、所定の領域(例えば用紙1ページ)内に対する複数の矩形画像の生成の開始から終了までの間に、パターン生成部240に単一領域での矩形画像を生成させる命令の実行を複数回行う。つまり、CPU220は、プログラムの内容に応じて、単一の矩形画像を生成する描画パラメータを伝達するLoad命令を複数回繰り返して実行することにより、パターン生成部240に複数の矩形画像を生成させることができる。
さらに、パターン生成部240は、単一の矩形画像を生成する機能と、矩形描画パラメータを更新できる機能があれば足りる回路で、CPU220によるプログラム処理の内容も簡易な命令の組み合わせで十分であり、レジスタ250に求められる記憶容量も小さく収めることができるので、より廉価に所定の領域内に任意の数のパターン画像を生成することができる。
さらに、CPU220は、プログラムの内容に応じて、1回の主走査方向に沿った矩形画像の生成において、複数の矩形画像を生成する場合に、矩形画像の数に応じた描画パラメータをパターン生成部240に複数回伝達することで主走査方向について、任意の数の矩形画像を形成することができる。この描画パラメータの更新が、主走査での1矩形描画終了毎に行われる機構と、それまでCPU側の後続のLoad命令実行を一時停止させる機構を伴うことにより、ここでのプログラムは実際の主走査の画像形成タイミングを意識することのない簡潔で平易な記述ができる。この待ち合わせ機構なしに、CPUが直接的に、主走査方向の計数をしながら画像形成途中に描画パラメータの更新を実時間処理で行うようなプログラミングをするのは甚だ困難であり、もし実現できても著しく難解なプログラムとなろう。
さらに、CPU220は、プログラムの内容に応じて、副走査方向について複数の矩形画像を生成する場合に、副走査方向に沿った矩形画像の描画単位で、プログラムを切り替えてパターン生成部240に矩形画像を生成させることで、副走査方向について、任意の数の矩形画像を形成することができる。
さらに、CPU220は、更新フラグ(FLAG_UPDATE)の値の値を設定することによりパターン生成部240に対してパラメータの更新要求を行い、パターン生成部240はパラメータの更新完了時に更新フラグの値を戻すことにより更新完了を通知する。この単純な値の設定、更新により、CPU220とパターン生成部240とで命令実行・停止タイミングを制御することができて、プログラム構成も単純になる。
また、図6に示すように単一の矩形描画領域でだけテストパターン画像を描ける回路であっても、その回路に納められている描画領域の情報を、画像形成中に逐次更新させていく回路を図3のように付加することにより、任意個数の描画領域でテストパターンが描けることと、その描画領域の情報の更新のタイミングを制御する機能を備えることで、付加回路側に設けたソフトウェア手段についてもプログラミングが容易になる。
さらに、本実施形態のCPU220は、Load命令、Jump命令、Wait命令、HALT命令等の単純な命令を含むプログラムに基づいてパターン生成部240に矩形画像を生成させる仕組みである。上で示したように、この4種類に限られた命令実行に要する状態遷移に基く制御内容を実現する順序回路をハードウェア記述言語により記述することで、市販の汎用マイコンなどよりも遥かに小さい回路規模で、このCPUを構築することができる。この事は画像生成装置内の画像形成の回路上のFPGAやASIC等の同一チップ内に、容易に組み込むことが可能となり、これらの画像形成と同期したクロックでCPUを駆動することができる。これにより、1ページ描画中でのパターン生成回路のレジスタ書換えを実時間で制御することが、この専用CPUにて可能となる。そして、これらの命令は最長でも13バイトである。よって、読み出しやレジスタ250に値を格納する処理に伴う遅延を含めても、単一のLoad命令に対応する値をレジスタ250に格納するのに要するクロック数は十数クロックであり、これは例えば600dpi画像では1mm中の画素数より少ない点で、1mm角以上の矩形サイズのパターン描画に充分間に合うよう極めて高速に命令の実行ができる。よって、所定領域内で複数の矩形画像が主走査方向に極めて近接して並ぶようなパターンであっても、高速な描画パラメータ切り替えに十分対応することができるので、複数の矩形画像の配置に係る制約が極めて少ない。つまり、画像形成装置1は、RAM230に記憶させるプログラムの内容に応じて、複数の矩形画像の配置について極めて自由度の高い画像生成を行うことができる。そして、そのプログラムサイズは高々数キロバイトで何百個もの矩形パターンを描くことができる点で、制御部から、プログラム書き換えに要する時間も少なくて済む。複数ページ記録途中の頁間で実時間で書き換えることも可能となり、1ページ毎に異なったレイアウトのテストパターン画像を連続印刷することも可能となる。このことは、従来方式の一つである数十メガバイト以上の画素値データで画像メモリを埋めるようなテストパターン印刷方式では、時間もかかり困難な事であった。また、Load命令については、タイミング制御機能(更新要求フラグのセットと、リセットまでのウェイト処理)をも含めた専用命令としたことで、プログラムの記述がすっきりとして、矩形描画パラメータとの対応の付けやすい容易で平易なプログラミングができるメリットが、この専用の簡易CPUではでてくる。このように、単一描画領域を指定できるパターン生成回路と、描画パラメータを格納するバッファーレジスタと更新フラグとでの描画パラネータの更新情報の伝達手段と、専用の命令を備えたCPUとを組み合わせて協働させることにより、ソフトウェアの負担も軽くなり、また、パターン生成回路側も、単一の描画領域を指定できるだけの回路規模で済む点で、ハード、ソフト両面からテストパターン画像生成が容易となる効果が生まれる。
なお、本発明の実施の形態は、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明は、電子写真式画像形成装置以外のものにも適用することができる。例えば、ディスプレイ装置の表示内容を生成する装置として本発明の画像生成装置を用いても良い。即ち、走査により所定の周期(リフレッシュレート)で書き換えられる表示装置の表示内容について、走査に応じてその表示領域内に複数の矩形を描画する装置として本発明の画像生成装置を適用することで、プログラムの内容に応じて任意の個数の矩形描画領域でテストパターンを表示させることができる。
また、上述の実施形態では、パターン画像として矩形画像を生成する場合について示しているが、所定の一方向(例えば主走査方向)の画像生成と当該一方向に直交する他方向(例えば副走査方向)の画像生成との組み合わせにより、矩形以外の形状を有する任意のパターン画像を生成することも可能である。
また、テストパターンに限らず、複数のパターン画像を所定の領域内に生成することを伴う処理であれば、本発明を適用することができる。
また、上述の実施形態では、単一のテストパターン生成部200に設けられた単一の描画領域パターン生成部240が所定の領域内に複数のパターン画像を生成しているが、複数のテストパターン生成部200を協働させて所定の領域内に複数のパターン画像を生成することは差し支えない。また、単一のテストパターン生成部200に複数のパターン生成部240を設けてCPU220や専用の統括制御部等に複数のパターン生成部240を統括制御させる仕組みとしても差し支えない。ここでは、更新フラグの1または0の1ビットの情報伝達を行う例を示したが、描画パラメータを格納するバッファーを複数段分、FIFO構成で設けることにより、更新すべき描画パラメータがバッファー内に何段分溜ったか更新を済ませたかで、カウントアップ/カウントダウンする複数ビットの情報伝達にしても差し支えない。
101 制御部
102 操作表示部
103 スキャナ部
104 画像処理部
105 画像形成部
106 センサ
107 記憶部
108 送受信部
109 バス
200 テストパターン生成部
210 走査位置カウンタ
220 CPU
230 RAM
240 パターン生成部
250 レジスタ

Claims (5)

  1. レジスタと、
    プログラムに記述された複数の命令を実行することによって、描画するパターン画像の始点及び大きさを描画パラメータとして前記レジスタに格納させるCPUと、
    前記レジスタに格納された描画パラメータを読み出し、読み出した描画パラメータにより示される描画範囲において、パターン画像を生成するパターン生成部と、を備え、
    前記CPUは、複数のパターン画像を生成する場合、前記パターン生成部により前記レジスタに格納された描画パラメータが読み出された後、前記レジスタに格納されたパターン画像の描画パラメータを、他のパターン画像の描画パラメータに更新することを繰り返して、各パターン画像の描画パラメータを前記レジスタに格納させ、
    前記パターン生成部は、前記レジスタに格納された描画パラメータが更新されるごとに前記レジスタから描画パラメータを読み出し、読み出した各描画パラメータにより示される描画範囲においてパターン画像の生成を繰り返すことにより、複数のパターン画像を生成することを特徴とする画像生成装置。
  2. 前記パターン生成部は、前記描画パラメータにより示される主走査方向の描画範囲内においてパターン画像の主走査方向の1ラインを生成することを、前記描画パラメータにより示される副走査方向の描画範囲内で繰り返すことを特徴とする請求項1に記載の画像生成装置。
  3. 前記CPUは、複数のパターン画像を生成する場合、1つのパターン画像の描画パラメータを前記レジスタに格納し、前記パターン生成部が当該描画パラメータによりパターン画像の主走査方向の1ラインを生成し終えるまで、前記レジスタに格納された前記描画パラメータの更新を停止し、生成が終了すると、前記レジスタに格納された描画パラメータを他のパターン画像の描画パラメータに更新することを繰り返すことを特徴とする請求項2に記載の画像生成装置。
  4. 前記プログラムは、前記複数のパターン画像のそれぞれの生成を指示するLoad命令と、1又は複数のLoad命令を反復して実行し、指定された副走査方向の位置に至ると、次の命令の読み出しを指示するJump命令と、次の命令の読み出しを待機して実行中の命令を継続し、指定された副走査方向の位置に至ると次の命令の読み出しを指示するWait命令との組み合わせによって記述されていることを特徴とする請求項1から3のいずれか一項に記載の画像生成装置。
  5. プログラムに記述された複数の命令を実行することによって、描画するパターン画像の始点及び大きさを描画パラメータとしてレジスタに格納させる第1工程と、
    前記レジスタに格納された描画パラメータを読み出し、読み出した描画パラメータにより示される描画範囲において、パターン画像を生成する第2工程と、を含み、
    複数のパターン画像を生成する場合、前記第1工程では、前記レジスタに格納された描画パラメータが読み出された後、前記レジスタに格納されたパターン画像の描画パラメータを、他のパターン画像の描画パラメータに更新することを繰り返して、各パターン画像の描画パラメータを前記レジスタに格納させ、
    前記第2工程では、前記レジスタに格納されたパターン画像の描画パラメータが更新されるごとに、更新された描画パラメータに基づくパターン画像の生成を繰り返すことにより、複数のパターン画像を生成することを特徴とする画像生成方法。
JP2011014755A 2011-01-27 2011-01-27 画像生成装置及び画像生成方法 Active JP5664281B2 (ja)

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)

* Cited by examiner, † Cited by third party
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 画像形成装置

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