(57)【特許請求の範囲】
【請求項１】
バス幅のビット数と異なるドット数の幅を有する矩形画像のデータをビットマップメモリに描画する矩形画像描画装置において、
前記ビットマップメモリに描画されるべき矩形画像の幅のドット数を示すサイズ情報を記憶する矩形画像サイズ記憶手段と、
前記ビットマップメモリに描画されるべき矩形画像のデータを格納する矩形画像データ記憶手段と、
複数のバッファメモリを有し、それらの内の前記バス幅のビット数と描画されるべき矩形画像の幅のドット数とにより規定される所定数のバッファメモリに循環的な使用順序が予め定められる分割画像バッファ手段と、
前記矩形画像サイズ記憶手段に記憶されているサイズの矩形画像を描画するに際して必要な前記分割画像バッファ手段のバッファメモリの数を、バス幅のビット数と矩形幅のドット数とに応じて予め記憶している分割画像バッファ本数テーブルと、
前記分割画像バッファ手段を構成する複数のバッファメモリから出力された画像データの論理和演算処理を行なった結果のデータを前記ビットマップメモリに書き込む論理和演算手段と、
前記矩形画像データ記憶手段から一つの矩形画像のデータを読み出す制御と、前回にバッファメモリに書き込まれた矩形画像のデータと位置合わせするためにシフトする必要があるか否かを判定し、シフトする必要がある場合には前記矩形画像データ記憶手段から読み出された矩形画像のデータを必要量シフトした後に、シフトする必要がない場合には前記矩形画像データ記憶手段から読み出された矩形画像のデータをそのまま、前記所定数のバッファメモリの内の一つのバッファメモリに書き込む制御と、前記矩形画像データ記憶手段から読み出された一つの矩形画像のデータ全体の同一のバッファメモリへの描画が終了したか否かを判定し、終了していない場合にはバッファメモリを他のバッファメモリに切り換えずに同一の矩形画像のデータを前記矩形画像データ記憶手段から再度読み出し、終了している場合にはバッファメモリを予め定められた順序に従って他のバッファメモリに切り換えた後に次に描画されるべき矩形画像のデータを前記矩形画像データ記憶手段から読み出す制御と、前記各制御を反復することにより前記所定数のバッファメモリの内のいずれかが満杯になった場合に、前記所定数のバッファメモリの記憶内容を前記論理和演算手段に論理和演算させて前記ビットマップメモリに書き込む制御とを行なう制御手段と
を備えたことを特徴とする矩形画像描画装置。
【請求項２】
バス幅のビット数と異なるドット数の幅を有する文字画像データをビットマップメモリに描画し、前記ビットマップメモリに描画された文字画像データを印刷する文字画像描画装置において、
前記ビットマップメモリに描画されるべき文字画像データの幅のドット数を示すサイズ情報を記憶する文字サイズエリアと、
前記ビットマップメモリに描画されるべき文字画像を指定するコードデータを格納する文字コードエリアと、
前記文字サイズエリア及び文字コードエリアに記憶されているデータで指定される前記ビットマップメモリに描画されるべき文字画像データを格納する文字画像データエリアと、
複数のバッファメモリを有し、それらの内の前記バス幅のビット数と描画されるべき文字画像データの幅のドット数とにより規定される所定数のバッファメモリに循環的な使用順序が予め定められる分割画像バッファと、
前記文字サイズエリアに記憶されているサイズの文字画像データを描画するに際して必要な前記分割画像バッファのバッファメモリの数を、バス幅のビット数と矩形幅のドット数とに応じて予め記憶している分割画像バッファ本数テーブルと、
前記分割画像バッファを構成する複数のバッファメモリから出力された画像データの論理和演算処理を行なった結果のデータを前記ビットマップメモリに書き込む論理和演算部と、
前記文字画像データエリアから一つの文字画像のデータを読み出す制御と、前回にバッファメモリに書き込まれた文字画像のデータと位置合わせするためにシフトする必要があるか否かを判定し、シフトする必要がある場合には前記文字画像データエリアから読み出された文字画像データのデータを必要量シフトした後に、シフトする必要がない場合には前記文字画像エリアから読み出された文字画像のデータをそのまま、前記所定数のバッファメモリの内の一つのバッファメモリに書き込む制御と、前記文字画像データエリアから読み出された一つの文字画像のデータのバッファメモリへの描画が終了したか否かを判定し、終了していない場合にはバッファメモリを他のバッファメモリに切り換えずに同一の文字画像のデータを前記文字画像データエリアから再度読み出し、終了している場合にはバッファメモリを予め定められた順序に従って他のバッファメモリに切り換えた後に次に描画されるべき文字画像のデータを前記文字画像データエリアから読み出す制御と、前記各制御を反復することにより前記所定数のバッファメモリの内のいずれかが満杯になった場合に、前記所定数のバッファメモリの記憶内容を前記論理和演算手段に論理和演算させて前記ビットマップメモリに書き込む制御とを行なう制御手段と、
前記ビットマップメモリに書き込まれた画像データを印刷する印刷手段と
を備えたことを特徴とする文字画像描画装置。
【請求項３】
バス幅のビット数と異なるドット数の幅を有する文字画像データをビットマップメモリに描画し、前記ビットマップメモリに描画された文字画像データを表意する文字画像表示装置において、
前記ビットマップメモリに描画されるべき文字画像データの幅のドット数を示すサイズ情報を記憶する文字サイズエリアと、
前記ビットマップメモリに描画されるべき文字画像を指定するコードデータを格納する文字コードエリアと、
前記文字サイズエリア及び文字コードエリアに記憶されているデータで指定される前記
ビットマップメモリに描画されるべき文字画像データを格納する文字画像データエリアと、
複数のバッファメモリを有し、それらの内の前記バス幅のビット数と描画されるべき文字画像データの幅のドット数とにより規定される所定数のバッファメモリに循環的な使用順序が予め定められる分割画像バッファと、
前記文字サイズエリアに記憶されているサイズの文字画像データを描画するに際して必要な前記分割画像バッファのバッファメモリの数を、バス幅のビット数と矩形幅のドット数とに応じて予め記憶している分割画像バッファ本数テーブルと、
前記分割画像バッファを構成する複数のバッファメモリから出力された画像データの論理和演算処理を行なった結果のデータを前記ビットマップメモリに書き込む論理和演算部と、
前記文字画像データエリアから一つの文字画像のデータを読み出す制御と、前回にバッファメモリに書き込まれた文字画像のデータと位置合わせするためにシフトする必要があるか否かを判定し、シフトする必要がある場合には前記文字画像データエリアから読み出された文字画像データのデータを必要量シフトした後に、シフトする必要がない場合には前記文字画像エリアから読み出された文字画像のデータをそのまま、前記所定数のバッファメモリの内の一つのバッファメモリに書き込む制御と、前記文字画像データエリアから読み出された一つの文字画像のデータのバッファメモリへの描画が終了したか否かを判定し、終了していない場合には、バッファメモリを他のバッファメモリに切り換えずに同一の文字画像のデータを前記文字画像データエリアから再度読み出し、終了している場合には、バッファメモリを予め定められた順序に従って他のバッファメモリに切り換えた後に次に描画されるべき文字画像のデータを前記文字画像データエリアから読み出す制御と、前記各制御を反復することにより前記所定数のバッファメモリの内のいずれかが満杯になった場合に、前記所定数のバッファメモリの記憶内容を前記論理和演算部に論理和演算させて前記ビットマップメモリに書き込む制御とを行なう制御手段と、
前記ビットマップメモリに書き込まれた画像データを表示する表示手段と
を備えたことを特徴とする文字画像表示装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ビットマップ方式の画像メモリを有し、たとえば文字，ドットデータで表された矩形領域の画像を高速で描画し得る矩形画像描画装置及びそれを応用した文字画像描画装置及び文字画像表示装置に関する。
【０００２】
【従来の技術】
従来、画像形成装置または表示装置においては、文字をドットデータで表したフォントデータ等の矩形画像をビットマップメモリ上に描画する際、矩形画像の幅がプロセッサのバス幅と異なる場合にはプロセッサ側で矩形画像を矩形幅境界に合致するようにシフト処理し、転送先の画像と論理和(OR)演算処理を行なってから転送する必要があった。以下、図１乃至図６の模式図を参照してそのような従来の手法について詳述する。なお、以下の説明では、バス幅12ビットのプロセッサで矩形画像としての９×９ドットの文字のフォントデータ（矩形画像）を四文字連続して「ＢＯＤＹ」と描画する場合の例について説明する。
【０００３】
まず、図１に示されているように、メモリから最初の９×９ドットの文字「Ｂ」のフォントデータ（矩形画像）が読み出されてそのままバス幅12ビットのバスの LSB側の９ビットの部分へ出力される。一方、転送先のバッファメモリはバス幅に等しい12ビット幅の矩形幅境界で複数のブロックに区切られており、その第１ブロックのビットマップデータが読み出される。そして、両者が論理和(OR)演算処理された結果がバッファメモリの第１ブロックにライトバックされる。
【０００４】
これにより、バッファメモリの第１ブロックにはその LSB側の９ビットの部分に最初の文字「Ｂ」のフォントデータ（矩形画像）全体が書き込まれたことになる。
【０００５】
次に、図２に示されているように、メモリから二番目の９×９ドットの文字「Ｏ」のフォントデータ（矩形画像）が読み出されて９ビット右シフトされ、残りの左側の３ドットの部分のみがバス幅12ビットのバスの MSB側の３ビットの部分へ出力される。一方、転送先のバッファメモリからは12ビット幅の第１ブロック（既に最初の文字（矩形画像）「Ｂ」が LSB側の９ビットの部分に書き込まれている）が読み出される。そして、両者が論理和(OR)演算処理された結果がバッファメモリの第１ブロックにライトバックされる。
【０００６】
これにより、バッファメモリの第１ブロックにはその LSB側の９ビットの部分に最初の文字「Ｂ」のフォントデータ（矩形画像）全体が、 MSB側の３ビットの部分に二番目の文字「Ｏ」のフォントデータ（矩形画像）の左側の３ドットの部分がそれぞれ書き込まれ、第１ブロックに対する処理が終了する。但し、二番目の文字「Ｏ」のフォントデータ（矩形画像）全体のバッファメモリへの書き込みは完了していない。
【０００７】
次に、図３に示されているように、メモリから二番目の９×９ドットの文字「Ｏ」のフォントデータ（矩形画像）が再度読み出されて３ビット左シフトされ、残りの右側の６ドットの部分がバス幅12ビットのバスの LSB側の６ビットの部分へ出力される。一方、転送先のバッファメモリからは12ビット幅の第２ブロックが読み出される。そして、両者が論理和(OR)演算処理された結果がバッファメモリの第２ブロックにライトバックされる。
【０００８】
これにより、バッファメモリの第２ブロックにはその LSB側の６ビットの部分に二番目の文字「Ｏ」のフォントデータ（矩形画像）の右側の６ドットの部分が書き込まれたことになる。また、二番目の文字「Ｏ」のフォントデータ（矩形画像）全体のバッファメモリへの書き込みが終了したことになる。
【０００９】
次に、図４に示されているように、メモリから三番目の９×９ドットの文字「Ｄ」のフォントデータ（矩形画像）が読み出されて６ビット右シフトされ、残りの左側の６ドットの部分がバス幅12ビットのバスの MSB側の６ビットの部分へ出力される。一方、転送先のバッファメモリからは12ビット幅の第２ブロック（既に二番目の文字「Ｏ」のフォントデータ（矩形画像）の右側の６ドットの部分が LSB側の６ビットの部分に書き込まれている）が読み出される。そして、両者が論理和(OR)演算処理された結果がバッファメモリの第２ブロックにライトバックされる。
【００１０】
これにより、バッファメモリの第２ブロックにはその LSB側の６ビットの部分に二番目の文字「Ｏ」のフォントデータ（矩形画像）の右側の６ドットの部分が、 MSB側の６ビットの部分に三番目の文字「Ｄ」のフォントデータ（矩形画像）の左側の６ドットの部分がそれぞれ書き込まれ、第２ブロックに対する処理が終了する。但し、三番目の文字「Ｄ」のフォントデータ（矩形画像）全体のバッファメモリへの書き込みは完了していない。
【００１１】
次に、図５に示されているように、メモリから三番目の９×９ドットの文字「Ｄ」のフォントデータ（矩形画像）が再度読み出されて６ビット左シフトされ、残りの右側の３ドットの部分がバス幅12ビットのバスの LSB側の３ビットの部分へ出力される。一方、転送先のバッファメモリからは12ビット幅の第３ブロックが読み出される。そして、両者が論理和(OR)演算処理された結果がバッファメモリの第３ブロックにライトバックされる。
【００１２】
これにより、バッファメモリの第３ブロックにはその LSB側の３ビットの部分に三番目の文字「Ｄ」のフォントデータ（矩形画像）の右側の３ドットの部分が書き込まれたことになり、三番目の文字「Ｄ」のフォントデータ（矩形画像）全体のバッファメモリへの書き込みが終了したことになる。
【００１３】
最後に、図６に示されているように、メモリから四番目の９×９ドットの文字「Ｙ」のフォントデータ（矩形画像）が読み出されて３ビット右シフトされ、バス幅12ビットのバスの MSB側の９ビットの部分へ出力される。一方、転送先のバッファメモリからは12ビット幅の第３ブロック（既に三番目の文字「Ｄ」のフォントデータ（矩形画像）の右側の３ドットの部分が LSB側の３ビットの部分に書き込まれている）が読み出される。そして、両者が論理和(OR)演算処理された結果がバッファメモリの第３ブロックにライトバックされる。
【００１４】
これにより、バッファメモリの第３ブロックにはその LSB側の３ビットの部分に三番目の文字「Ｄ」のフォントデータ（矩形画像）の右側の３ドットの部分が、 MSB側の９ビットの部分に四番目の文字「Ｙ」のフォントデータ（矩形画像）全体がそれぞれ書き込まれ、第３ブロックに対する処理が終了する。
【００１５】
【発明が解決しようとする課題】
このような従来の矩形画像描画方法においては、上述の如くドットデータで表された矩形画像の矩形幅とプロセッサのバス幅とが異なる場合には、矩形画像のドットデータをメモリから読み出して一旦バッファメモリに描画する際に、シフト処理を行なった上でバッファメモリから読み出した画像データと論理和演算処理を行なってライトバックする必要があり、それぞれにある程度の時間を要する。
【００１６】
但し、シフト処理に要する時間に関してはプロセッサの処理速度の向上によりある程度は相殺可能であるが、論理和演算処理に要する時間に関してはバッファメモリに対するメモリアクセスに要する時間を削減する必要がある。そのためには、第一の解決策としてバッファメモリに高速メモリを使用してメモリアクセスに要する時間を短縮するか、第二の解決策としてバッファメモリに対するメモリアクセス回数が減少するようなデータ処理手法を採用するかのいずれかの対策を講じる必要がある。しかし、バッファメモリに高速メモリを使用する場合にはハードウェアコストの上昇は避けられない。従って、メモリアクセス回数が減少するような処理手法を採用することが望ましい。
【００１７】
本発明はこのような事情に鑑みてなされたものであり、バッファメモリに対するメモリアクセス回数の削減が可能なデータ処理手法を採用することにより、ハードウェアコストの上昇を最小限に抑制した高速処理可能な矩形画像描画装置及びそれを応用した文字画像描画装置及び文字画像表示装置の提供を目的とする。
【００１８】
【課題を解決するための手段】
以下に、本発明の矩形画像描画装置による矩形画像描画方法の原理について、図７乃至図13の模式図を参照して説明する。なお、以下の説明では前述の従来技術の説明の場合と同様に、バス幅12ビットの装置で矩形画像としての９×９ドットの文字のフォントデータを四文字連続して「ＢＯＤＹ」と描画する場合の例について説明する。
【００１９】
但し、詳細は後述するが、本発明の矩形画像描画装置による矩形画像描画方法においては画像を描画するためのバッファメモリを複数用意する必要があり、上述の条件では２本のバッファメモリが必要になるので、それらを第１バッファメモリ及び第２バッファメモリと言う。また、これらの２本のバッファメモリはいずれもプロセッサのバス幅と等しい12ビット単位でブロックに区切られている。
【００２０】
まず、図７に示されているように、メモリから最初の９×９ドットの文字「Ｂ」のフォントデータ（矩形画像）が読み出されてそのままバス幅12ビットのバスの LSB側の９ビットの部分へ出力され、第１バッファメモリの第１ブロックに書き込まれる。
【００２１】
これにより、第１バッファメモリの第１ブロックにはその LSB側の９ビットの部分に最初の文字「Ｂ」のフォントデータ全体が書き込まれたことになる。
【００２２】
次に、図８に示されているように、メモリから二番目の９×９ドットの文字「Ｏ」のフォントデータ（矩形画像）が読み出されて９ビット右シフトされ、残りの左側の３ドットの部分のみがバス幅12ビットのバスの MSB側の３ビットの部分へ出力され、第２バッファメモリの第１ブロックに書き込まれる。
【００２３】
これにより、第２バッファメモリの第１ブロックにはその MSB側の３ビットの部分に二番目の文字「Ｏ」のフォントデータの左側の３ドットの部分が書き込まれる。但し、二番目の文字「Ｏ」のフォントデータ全体のバッファメモリへの書き込みは完了していない。
【００２４】
次に、図９に示されているように、メモリから二番目の９×９ドットの文字「Ｏ」のフォントデータ（矩形画像）が再度読み出されて３ビット左シフトされ、残りの右側の６ドットの部分がバス幅12ビットのバスの LSB側の６ビットの部分へ出力され、第２バッファメモリの第２ブロックに書き込まれる。
【００２５】
これにより、第２バッファメモリの第２ブロックにはその LSB側の６ビットの部分に二番目の文字「Ｏ」のフォントデータの右側の６ドットの部分が書き込まれたことになる。また、二番目の文字「Ｏ」のフォントデータ全体のバッファメモリへの書き込みが終了したことになる。
【００２６】
次に、図10に示されているように、メモリから三番目の９×９ドットの文字「Ｄ」のフォントデータ（矩形画像）が読み出されて６ビット右シフトされ、残りの左側の６ドットの部分がバス幅12ビットのバスの MSB側の６ビットの部分へ出力され、第１バッファメモリの第２ブロックに書き込まれる。
【００２７】
これにより、第１バッファメモリの第２ブロックにはその MSB側の６ビットの部分に三番目の文字「Ｄ」のフォントデータの左側の６ドットの部分が書き込まれる。但し、三番目の文字「Ｄ」のフォントデータ全体のバッファメモリへの書き込みは完了していない。
【００２８】
次に、図11に示されているように、メモリから三番目の９×９ドットの文字「Ｄ」のフォントデータ（矩形画像）が再度読み出されて６ビット左シフトされ、残りの右側の３ドットの部分がバス幅12ビットのバスの LSB側の３ビットの部分へ出力され、第２バッファメモリの第３ブロックに書き込まれる。
【００２９】
これにより、第２バッファメモリの第３ブロックにはその LSB側の３ビットの部分に三番目の文字「Ｄ」のフォントデータの右側の３ドットの部分が書き込まれたことになり、三番目の文字「Ｄ」のフォントデータ全体のバッファメモリへの書き込みが終了したことになる。
【００３０】
次に、図12に示されているように、メモリから四番目の９×９ドットの文字「Ｙ」のフォントデータ（矩形画像）が読み出されて３ビット右シフトされ、バス幅12ビットのバスの MSB側の６ビットの部分へ出力され、第２バッファメモリの第３ブロックに書き込まれる。
【００３１】
これにより、第２バッファメモリの第３ブロックにはその MSB側の９ビットの部分に四番目の文字「Ｙ」のフォントデータ全体が書き込まれる。以上により、文字「ＢＯＤＹ」の各フォントデータのバッファメモリへの書き込みが完了したので、最後に第１バッファメモリの内容と第２バッファメモリの内容とを論理和演算処理してビットマップメモリに書き込めば、図13に示されているように、「ＢＯＤＹ」と描画される。
【００３２】
このように、本発明の矩形画像描画装置による矩形画像描画方法では、バッファメモリに対するメモリアクセスがデータの書き込みの際のみになるので、その回数が削減され、全体として高速な処理が可能になる。
【００３３】
次に、上述のような矩形画像描画方法を実施するためのハードウェア構成、換言すれば本発明の矩形画像描画装置の基本構成例を示すブロック図を図14に示す。
【００３４】
図14において、参照符号８はバスを示しており、制御手段９を中心として矩形画像サイズ記憶手段１, 矩形画像コード記憶手段２, 矩形画像データ記憶手段３, 分割画像バッファ本数テーブル４, 分割画像バッファ手段５, OR演算手段 (論理和演算手段) ６, 画像メモリ７等が接続されている。
【００３５】
矩形画像サイズ記憶手段１は、画像メモリ７に描画されるべき矩形画像のサイズ情報、換言すればその矩形画像の幅のドット数を記憶する。
【００３６】
矩形画像コード記憶手段２は、画像メモリ７に描画されるべき矩形画像が所定のコードで指定されるたとえば文字フォント等のような画像である場合にはそのコードを記憶する。
【００３７】
矩形画像データ記憶手段３は、画像メモリ７に描画されるべき矩形画像のデータを格納している。この矩形画像サイズ記憶手段１に格納される矩形画像としては、所定のコードで指定されるたとえば文字フォント等のような画像、または任意のビットマップデータを矩形に区切った画像が考えられる。この矩形画像サイズ記憶手段１に格納されている矩形画像が所定のコードで指定されるたとえば文字フォント等のような画像である場合には、矩形画像サイズ記憶手段１に記憶されている矩形画像サイズと矩形画像コード記憶手段２に記憶されているコードとで指定することにより、矩形画像のデータを読み出すことが可能である。また、矩形画像サイズ記憶手段１に格納されている矩形画像が任意のビットマップデータを矩形に区切った画像である場合には、読み出し順序の指定に従って読み出される。
【００３８】
分割画像バッファ本数テーブル４は、矩形画像サイズ記憶手段１に記憶されている矩形画像を描画するに際して必要な分割画像バッファ手段５の数、換言すれば論理和演算処理が不要になるだけのバッファメモリの数を、バス８のビット幅と種々の矩形幅とに応じて予め記憶している。
【００３９】
分割画像バッファ手段５は複数のバッファメモリで構成されており、矩形画像データ記憶手段３から読み出された矩形画像のデータを制御手段９の制御に従ってそのまま、または分割していずれかのバッファメモリに一時保持する。
【００４０】
OR演算手段６は、分割画像バッファ手段５を構成する複数のバッファメモリから出力された画像データの論理和演算処理を行なう。
【００４１】
画像メモリ７は、ハードウェアとしてはビットマップメモリで構成されたいわゆるページメモリである。この画像メモリ７は、上述のOR演算手段６により論理和演算処理された画像データが描画されることにより、１ページ分の画像を格納する。
【００４２】
制御手段９は、バス８を介して、上述の参照符号１乃至７の構成要素を制御する。
【００４３】
以下に、制御手段９による制御手順、換言すれば本発明の矩形画像描画装置による矩形画像描画方法の実行手順について図15のフローチャートを参照して説明する。
【００４４】
まず、制御手段９は矩形画像サイズ記憶手段１から矩形画像サイズを読み出す (ステップS11)。次に制御手段９は、その矩形画像サイズをキーとして分割画像バッファ本数テーブル４を参照することにより、矩形画像サイズ記憶手段１から読み出された矩形画像サイズで描画するに際して必要な分割画像バッファ手段５のバッファメモリの数を検索する (ステップS12)。
【００４５】
次に、矩形画像サイズ記憶手段１から読み出された矩形画像サイズを参照して、制御手段９は矩形画像データ記憶手段３から画像データを読み出す (ステップS13)。次に制御手段９は、矩形画像データ記憶手段３から読み出されたデータを直前に描画した矩形画像に整列させるためにシフト処理が必要か否かを判定する (ステップS14)。この結果、シフト処理が必要であればシフト処理を行なった後に (ステップS15)、シフト処理が不要であればシフト処理を行なわないままに、矩形画像データ記憶手段３から読み出した画像データを制御手段９は分割画像バッファ手段５の一つのバッファメモリに描画する (ステップS16)。
【００４６】
上述の処理が一つの矩形画像に関して終了するまで反復される (ステップS17)。この反復処理は、一つの矩形画像の幅がバス８のビット幅より大きい場合には必ず行なわれるが、その他にもたとえば前述の図８, 図９に示されているような状態、即ち一つの矩形画像が分割されて複数回にわたって転送されるような場合にも行なわれる。
【００４７】
一つの矩形画像の分割画像バッファ手段５の一つのバッファメモリへの描画が終了すると、制御手段９は分割画像バッファ手段５が満杯になったか否かを判断する (ステップS18)。分割画像バッファ手段５が満杯になるまでは、制御手段９は分割画像バッファ手段５のバッファメモリをそれまでとは異なるバッファメモリに切り換え (ステップS23)、次に一ページ分の描画が終了したか否かを判断する (ステップS24)。一ページ分の描画が終了するまでは、制御手段９はステップS13 へ処理を戻す。
【００４８】
上述のステップS23 の分割画像バッファ手段５のバッファメモリの切り換えの処理は、たとえば図７に示されているように一つの矩形画像の分割画像バッファ手段５の一つのバッファメモリへの描画が終了した後に、図８に示されているように他のバッファメモリに切り換える処理である。このようにして一つの矩形画像の分割画像バッファ手段５の一つのバッファメモリへの描画が終了すると、他のバッファメモリに切り換えられて次の一つの矩形画像の分割画像バッファ手段５への描画が行なわれる。
【００４９】
やがて、いくつかの矩形画像が分割画像バッファ手段５のいくつかのバッファメモリに描画されて分割画像バッファ手段５が満杯になると (ステップS18)、制御手段９は分割画像バッファ手段５の各バッファメモリからOR演算手段６へデータ転送を行なわせる (ステップS19)。OR演算手段６は分割画像バッファ手段５の各バッファメモリから転送されてきたデータの論理和演算処理を行ない (ステップS20)、処理結果を画像メモリ７に描画する (ステップS21)。その後、分割画像バッファ手段５はクリアされる (ステップS22)。
【００５０】
このような本発明の処理では図７乃至図13に示されているように、描画の際に矩形画像毎に分割画像バッファ手段５が切り換えられて使用されるため、従来技術において論理和演算処理に必要なバッファメモリに対するメモリアクセスが不要になる。
【００５１】
【発明の実施の形態】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。図16は本発明に係る矩形画像描画装置をプリンタ装置に適用し、処理対象の矩形画像を文字フォントとした場合の構成例を示すブロック図である。
【００５２】
なお、本発明の矩形画像描画装置は、具体的にはマイクロコンピュータシステムとして構成されており、一般的なマイクロコンピュータシステムと同様に、 CPU, RAM, ROM，ビットマップメモリ等を備えている。
【００５３】
図16において、参照符号８はバスを示しており、CPU ９を中心として文字サイズエリア１, 文字コードエリア２, フォントデータエリア３, 分割画像バッファ本数テーブル４, 分割画像バッファ５, OR演算部６, 画像メモリ７, 通信制御部10, ビデオ制御部11等が接続されている。なお、ビデオ制御部11にはプリンタエンジン12が接続されている。
【００５４】
文字サイズエリア１は、これから描画されるべき文字のサイズ情報、換言すればその文字を構成する矩形のフォントデータの幅のドット (ビット) 数が記憶されている。
【００５５】
文字コードエリア２は、画像メモリに描画されるべき文字のコードが記憶されている。なお、文字サイズエリア１及び文字コードエリア２は RAM内の適宜のエリアに設定されている。
【００５６】
フォントデータエリア３は、種々のサイズ及び種類の文字のフォントデータが予め格納されている。このフォントデータエリア３に格納されているフォントデータは、文字サイズエリア１に記憶されている文字サイズと文字コードエリア２に記憶されているコードとによって指定され、出力される。
【００５７】
分割画像バッファ本数テーブル４は、文字を描画するために必要な分割画像を一時保持する。分割画像バッファ５は複数のバッファメモリで構成されており、その数はバス８のビット幅とサイズエリア１に記憶されているサイズとから、文字コードエリア２に記憶されている文字を描画するに際して必要な数、換言すればバッファへのフォントデータの描画に際して論理和演算処理が不要になるだけの数であり、分割画像バッファ本数テーブル４に予めテーブルの形で格納されている。
【００５８】
分割画像バッファ５は上述の如く複数のバッファメモリで構成されており、フォントデータエリア３から読み出された矩形画像のデータをCPU ９の制御に従ってそのまま、または分割していずれかのバッファメモリに一時保持する。
【００５９】
図17は分割画像バッファ本数テーブル４に予め格納されている内容の一例を示す模式図である。具体的には、今日のワードプロセッサ，マイクロプロセッサ等において一般的な32ビットのバス幅で、文字サイズ (フォントデータのサイズ) が16乃至64ビット幅である場合に対応する分割画像バッファ５の必要本数が予め格納されている。この図17からも明らかなように、分割画像バッファ５のバッファメモリの数は文字サイズとバス８のビット幅とが等しい場合には１本でよく、文字サイズがバスのビット幅未満である場合には２本または３本が必要であり、文字サイズがバスのビット幅より大きい場合には２本でよい。
【００６０】
OR演算部６は、分割画像バッファ５を構成する複数のメモリから出力された画像データの論理和演算処理を行なう。なお、このOR演算部６の構成は公知の種々の回路が利用可能である。
【００６１】
画像メモリ７は、ハードウェアとしてはビットマップメモリで構成されたいわゆるページメモリである。この画像メモリ７は、上述のOR演算部６により論理和演算処理された画像データが描画されることにより、１ページ分の画像を格納する。
【００６２】
制御手段９は、バス８を介して、上述の参照符号１乃至７の構成要素を制御する。
【００６３】
通信制御部10はCPU ９の指示によりホストとの間のデータの送受信を司る。この通信制御部10によりホストから受信された文字コード列のデータは文字コードエリア２へ転送されて保持される。
【００６４】
ビデオ制御部11は、CPU ９の指示により画像メモリ７に描画された一ページ分のデータをプリンタエンジン12へ転送する。プリンタエンジン12は上述のビデオ制御部11から転送された一ページ分のデータを印字する。
【００６５】
図18及び図19は上述のような本発明に係る矩形画像描画装置をプリンタ装置に適用した場合の動作手順を示すフローチャートである。以下、この図18及び図19のフローチャートを参照して、前述の図７乃至図14に示されているような処理を行なう場合の本発明の矩形画像描画装置の動作を説明する。
【００６６】
まず、CPU ９は通信制御部10にホストからの「ＢＯＤＹ」の文字コード列のデータを受信させる (ステップS51)。CPU ９により受信された「ＢＯＤＹ」の文字コード列のコードデータは文字コードエリア２に、文字サイズのデータは文字サイズエリア１にそれぞれ転送されて保持される。通信制御部10による受信が完了すると (ステップS52)、基本的には前述の図15と同様の制御が行なわれる。以下、具体的に説明する。
【００６７】
最初にCPU ９は文字サイズエリア１から文字サイズ（図７乃至図13に示されている例では９ビット）を読み出す (ステップS53)。その文字サイズをキーとして図17に示されているような分割画像バッファ本数テーブル４を参照することにより、CPU ９は文字サイズエリア１から読み出した文字サイズで描画するに際して必要な分割画像バッファ５のバッファメモリの数を検索する (ステップS54)。
【００６８】
但し、図17には示されてはいないが、図７乃至図13に示されている例では、バス幅が12ビットで文字サイズが９ビットであり、この場合に必要な分割画像バッファ５の数は２本である。以下、それらの分割画像バッファ５のバッファメモリを第１バッファメモリ及び第２バッファメモリと言う。また、これらの第１及び第２バッファメモリはいずれもプロセッサのバス幅と等しい12ビット単位でブロックに区切られており、それらを第１, 第２, 第３ブロックと言う。
【００６９】
次に、CPU ９は文字コードエリア２から最初の一文字「Ｂ」の文字コードを読み出し (ステップS55)、先に文字サイズエリア１から読み出した文字サイズを参照してフォントデータエリア３から「Ｂ」のフォントデータを図７に示されているように読み出す (ステップS56)。フォントデータエリア３から読み出されたフォントデータを直前に描画した文字に整列させるためにシフト処理が必要か否かが判定され (ステップS57)、必要であればシフト処理を行なった後に (ステップS58)、シフト処理が不要な場合にはシフト処理を行なわないままに、CPU ９は分割画像バッファ５の第１バッファメモリに描画する (ステップS59)。
【００７０】
図７に示されている場合にはシフト動作は不要であるので、CPU ９は分割画像バッファ５の第１バッファメモリの第１ブロックに文字「Ｂ」のフォントデータを描画する。
【００７１】
以上のように、一文字の分割画像バッファ５への描画が終了すると (ステップS60)、CPU ９は分割画像バッファ５が満杯になったか否かを調べる (ステップS61)。この場合には分割画像バッファ５は未だ満杯にはなっていないので、CPU ９は使用する分割画像バッファ５のバッファメモリを第１バッファメモリから第２バッファメモリに切り換える (ステップS66)。
【００７２】
次に、CPU ９は一ページ分の処理が終了したか否かを調べる (ステップS67)。この場合には未だ一ページ分の処理は終了していないので、CPU ９はステップS55 へ処理を戻して図８に示されているように、二番目の文字「Ｏ」のフォントデータをフォントデータエリア３から読み出す (ステップS56)。この場合にはシフト動作が必要であるため (ステップS57)、CPU ９は９ビット右シフト処理を行ない (ステップS58)、その後に分割画像バッファ５の第２バッファメモリの第１ブロックに描画する (ステップS59)。
【００７３】
上述の処理が一文字分が終了するまで反復される (ステップS60)。即ち、図８に示されている状態では二番目の文字「Ｏ」のフォントデータはその一部のみが分割画像バッファ５の第２バッファメモリの第１ブロックに描画されただけであるため、再度ステップS56 へ処理が戻されて図９に示されているように二番目の文字「Ｏ」のフォントデータがフォントデータエリア３から読み出され (ステップS56)、シフト処理が必要であると判断され (ステップS57)、３ビット左シフト処理され (ステップS58)、分割画像バッファ５の第２バッファメモリの第２ブロックに描画される (ステップS59)。
【００７４】
以上の処理で二番目の文字「Ｏ」のフォントデータの分割画像バッファ５への描画が完了したので、CPU ９は分割画像バッファ５が満杯になっているか否かを判断する (ステップS61)。分割画像バッファ５は未だ満杯になっていないので、CPU ９は使用する分割画像バッファ５のバッファメモリを第２バッファメモリから第１バッファメモリへ切り換え (ステップS66)、一ページの描画が終了したか否かを判断する (ステップS67)。この場合、まだ一ページの描画は終了していないので、CPU ９はステップS55 へ処理を戻す。
【００７５】
次に、CPU ９は三番目の文字コードを文字コードエリア２から読み出し (ステップS55)、図10に示されているように、それに対応する三番目の文字「Ｄ」のフォントデータをフォントデータエリア３から読み出す (ステップS56)。この場合、シフト処理が必要と判断されるので (ステップS57)、CPU ９は６ビット右シフト処理し (ステップS58)、分割画像バッファ５の第１バッファメモリの第２ブロックに描画する (ステップS59)。
【００７６】
この時点では、未だ一文字分のフォントデータの描画は終了していないので (ステップS60)、CPU ９はステップS56 へ処理を戻して、図11に示されているように、再度三番目の文字「Ｄ」のフォントデータをフォントデータエリア３から読み出す。この場合、シフト処理が必要と判断されるので (ステップS57)、CPU ９は９ビット左シフト処理し (ステップS58)、分割画像バッファ５の第１バッファメモリの第３ブロックに描画する (ステップS59)。これで一文字のフォントデータの分割画像バッファ５への描画が終了したので (ステップS60)、CPU ９は分割画像バッファ５が満杯になっているか否かを判断する (ステップS61)。この時点では分割画像バッファ５は未だ満杯になっていないので、CPU ９は使用する分割画像バッファ５のバッファメモリを第１バッファメモリから第２バッファメモリに切り換え (ステップS66)、一ページの描画が終了したか否かを判断する (ステップS67)。この場合、まだ一ページの描画は終了していないので、CPU ９はステップS55 へ処理を戻す。
【００７７】
次に、CPU ９は四番目の文字コードを文字コードエリア２から読み出し (ステップS55)、それに対応する四番目の文字「Ｙ」のフォントデータを、図12に示されているように、フォントデータエリア３から読み出す (ステップS56)。この場合、シフト処理が必要と判断されるので (ステップS57)、CPU ９は３ビット右シフト処理し (ステップS58)、分割画像バッファ５の第２バッファメモリの第３ブロックに描画する (ステップS59)。
【００７８】
この時点で一文字のフォントデータの描画が終了したので (ステップS60)、CPU ９は分割画像バッファ５が満杯になっているか否かを判断する (ステップS61)。この時点では分割画像バッファ５は満杯になっているので、図13に示されているように、CPU ９は分割画像バッファ５からOR演算部６へデータ転送を行なわせる (ステップS62)。OR演算部６は論理和演算処理を行ない (ステップS63)、処理結果を画像メモリ７に描画する (ステップS64)。この結果、画像メモリ７には「ＢＯＤＹ」と描画される。その後、分割画像バッファ５はクリアされる (ステップS65)  。
【００７９】
このような処理が反復されて一ページ分の画像メモリ７への描画が終了すると (ステップS67)、その一ページ分の画像メモリ７のビットマップデータがビデオ制御部11によりプリンタエンジン12へ転送され、印字される (ステップS68, S69) 。
【００８０】
以上のような本発明の処理により、図７乃至図13に示されているように、描画の際に文字毎に分割画像バッファ５が切り換えられて使用されるため、従来技術において論理和演算処理の都度必要であったバッファメモリに対するメモリアクセスが不要になる。
【００８１】
なお、本発明の矩形画像描画装置を CRTディスプレイ等の表示装置に適用する場合には、図20のブロック図に示されているように、ビデオ制御部11の出力を CRT, 液晶表示パネル等のディスプレイ13に接続すればよい。
【００８２】
【発明の効果】
以上に詳述したように本発明によれば、バッファメモリに対するメモリアクセス回数が減少するため、ハードウェアコストの上昇を伴わずに、高速な矩形画像の描画が可能になる。
【００８３】
また、そのような本発明を利用して画像を印字または表示可能なたとえばプリンタ等の画像形成装置及びディスプレイ等の画像表示装置が実用化される。
【図面の簡単な説明】
【図１】  従来の矩形画像描画方法を説明するための模式図である。
【図２】  従来の矩形画像描画方法を説明するための模式図である。
【図３】  従来の矩形画像描画方法を説明するための模式図である。
【図４】  従来の矩形画像描画方法を説明するための模式図である。
【図５】  従来の矩形画像描画方法を説明するための模式図である。
【図６】  従来の矩形画像描画方法を説明するための模式図である。
【図７】  本発明の矩形画像描画装置による矩形画像描画方法の原理を説明するための模式図である。
【図８】  本発明の矩形画像描画装置による矩形画像描画方法の原理を説明するための模式図である。
【図９】  本発明の矩形画像描画装置による矩形画像描画方法の原理を説明するための模式図である。
【図１０】  本発明の矩形画像描画装置による矩形画像描画方法の原理を説明するための模式図である。
【図１１】  本発明の矩形画像描画装置による矩形画像描画方法の原理を説明するための模式図である。
【図１２】  本発明の矩形画像描画装置による矩形画像描画方法の原理を説明するための模式図である。
【図１３】  本発明の矩形画像描画装置による矩形画像描画方法の原理を説明するための模式図である。
【図１４】  本発明の矩形画像描画装置の原理的構成を示すブロック図である。
【図１５】  本発明の矩形画像描画装置による矩形画像描画方法の処理手順を示すフローチャートである。
【図１６】  本発明の矩形画像描画装置を画像形成装置に適用した場合の構成例を示すブロック図である。
【図１７】  分割画像バッファ本数テーブルの内容の一例を示す模式図である。
【図１８】  本発明の矩形画像描画装置を画像形成装置に適用した場合の処理手順を示すフローチャートである。
【図１９】  本発明の矩形画像描画装置を画像形成装置に適用した場合の処理手順を示すフローチャートである。
【図２０】  本発明の矩形画像描画装置を画像表示装置に適用した場合の構成例を示すブロック図である。
【符号の説明】
１    文字サイズエリア（矩形画像サイズ記憶手段）
２    文字コードエリア（矩形画像コード記憶手段）
３    フォントデータエリア（矩形画像データ記憶手段）
４    分割画像バッファ本数テーブル
５    分割画像バッファ（分割画像バッファ）
６    OR演算部（OR演算手段）
７    画像メモリ（ビットマップメモリ）
８    バス
９    CPU(制御手段）
12    プリンタエンジン
13    ディスプレイ
【図１】
0003695831.tif 000002
【図２】
0003695831.tif 000003
【図３】
0003695831.tif 000004
【図４】
0003695831.tif 000005
【図５】
0003695831.tif 000006
【図６】
0003695831.tif 000007
【図７】
0003695831.tif 000008
【図８】
0003695831.tif 000009
【図９】
0003695831.tif 000010
【図１０】
0003695831.tif 000011
【図１１】
0003695831.tif 000012
【図１２】
0003695831.tif 000013
【図１３】
0003695831.tif 000014
【図１４】
0003695831.tif 000015
【図１５】
0003695831.tif 000016
【図１６】
0003695831.tif 000017
【図１７】
0003695831.tif 000018
【図１８】
0003695831.tif 000019
【図１９】
0003695831.tif 000020
【図２０】
0003695831.tif 000021