(57)【要約】【課題】文字が横向きかつ左右反転された２値の文字データを流用して、印刷エンジンで処理可能な階調値で１ドットが表現された多値の文字データを生成できるビットマップ生成方法、印刷装置、集積回路及びビットマップ生成装置を提供する。【解決手段】読み出し方向と直交する方向のビット数と「８」との最小公倍数を算出する（Ｓ２）。２値の文字データに左右反転処理を施す（Ｓ３）。文字データに縦横変換処理および拡張処理を施す（Ｓ４）。拡張処理では、１ドットを表現する１ビットの値を印刷エンジンで処理可能な２ビットの階調値に変換して、前記最小公倍数と等しいビット数に拡張する。このとき、記録なしを意味する「０」を同じく記録なしを意味する「００」に、記録を意味する「１」を大ドットでの記録を意味する「１１」に変換する。【選択図】図５
2008073960.tif 000002
【特許請求の範囲】
【請求項１】
１ドットが２値で表現されるとともに文字の縦方向が、読み出し方向と一致する向きで配置されかつ文字が左右反転された２値のビットマップデータからなる文字データを基に、印刷装置が有する印刷エンジンで処理可能な多値のビットマップデータを生成するビットマップ生成方法であって、
前記文字データにおける文字の横方向のビット数である横ビット数と８との公倍数であってかつ該公倍数を該横ビット数で割った値である拡張倍率が、前記印刷エンジンで処理可能な１ドットの階調数を表現するビット数以上の値となる公倍数のうち最も小さい公倍数を選択し、１ドットを表現する２値を前記印刷エンジンで処理可能な１ドットの階調数を表現するビット数の多値に変換する多値化処理を行いつつ、前記文字の横方向のビット数が前記選択した公倍数に等しいビット数になるように前記文字データを文字の横方向に拡張する拡張処理を行う拡張ステップと、
前記文字の横方向が前記読み出し方向に一致する文字の向きとすべく前記文字データを９０度回転させる縦横変換ステップと、
前記文字の左右を反転させる左右反転処理を前記文字データに施す左右反転ステップとを備え、
前記各ステップを順不同に行うことを特徴とするビットマップ生成方法。
【請求項２】
前記拡張ステップでは、前記選択された公倍数は、前記拡張倍率が、前記印刷エンジンで処理可能な１ドットを表現するビット数に等しくなることを満たすことを特徴とする請求項１に記載のビットマップ生成方法。
【請求項３】
前記文字データは、前記横ビット数と８との最小公倍数を前記横ビット数で割った値である拡張倍率が、前記印刷エンジンで処理可能な１ドットのビット数と一致する条件を満たす横ビット数を有する２値の文字データであり、前記拡張ステップでは、前記選択された公倍数が最小公倍数であることを特徴とする請求項１又は２に記載のビットマップ生成方法。
【請求項４】
前記拡張ステップでは、前記選択された公倍数を前記横ビット数で割った値である拡張倍率が、前記印刷エンジンで処理可能な１ドットのビット数に２以上の自然数を乗じた値である場合は、前記拡張処理において、前記多値化処理によって前記文字の横方向に多値表現で配列されるドット間に相当する位置に記録なしを意味するドットの階調値を追加する処理が行われることを特徴とする請求項１に記載のビットマップ生成方法。
【請求項５】
印刷エンジンと、該印刷エンジンが処理可能であるとともに請求項１乃至４のいずれか一項に記載のビットマップ生成方法を用いて生成された多値の文字データを記憶する文字記憶部と、前記文字記憶部から前記多値の文字データを読み出して展開処理して前記印刷エンジンに送出する展開処理手段とを備えたことを特徴とする印刷装置。
【請求項６】
印刷エンジンと、前記２値の文字データを記憶する文字記憶部と、前記文字記憶部から前記文字データを読み出すとともに請求項１乃至４のいずれか一項に記載のビットマップ生成方法を用いて前記２値の文字データから前記印刷エンジンが処理可能な多値の文字データを生成するとともに該多値の文字データを展開して前記印刷エンジンに送出するビットマップ生成手段とを備えたことを特徴とする印刷装置。
【請求項７】
請求項１乃至４のいずれか一項に記載のビットマップ生成方法を実行するプログラムが形成された電気回路部を有することを特徴とする集積回路。
【請求項８】
１ドットが２値で表現されるとともに文字の縦方向が、読み出し方向と一致する向きで配置されかつ文字が左右反転された２値のビットマップデータからなる文字データを基に、印刷装置が有する印刷エンジンで処理可能な多値のビットマップデータを生成するビットマップ生成装置であって、
前記文字データにおける文字の横方向のビット数である横ビット数と８との公倍数であってかつ該公倍数を該横ビット数で割った値である拡張倍率が、前記印刷エンジンで処理可能な１ドットの階調数を表現するビット数以上の値となる公倍数のうち最も小さい公倍数を選択し、１ドットを表現する２値を前記印刷エンジンで処理可能な１ドットの階調数を表現するビット数の多値に変換する多値化処理を行いつつ、前記文字の横方向のビット数が前記選択した公倍数に等しいビット数になるように前記文字データを文字の横方向に拡張する拡張処理を行う拡張手段と、
前記文字の横方向が前記読み出し方向に一致する文字の向きとすべく前記文字データを９０度回転させる縦横変換手段と、
前記文字の左右を反転させる左右反転処理を前記文字データに施す左右反転手段と
を備えたことを特徴とするビットマップ生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字が横向きかつ左右反転された２値の文字データを基に、印刷装置の印刷エンジンで処理可能な階調値で１ドットが表現された多値の文字データを生成するビットマップ生成方法、印刷装置、集積回路及びビットマップ生成装置に関する。
【背景技術】
【０００２】
従来、印刷装置では、文字を印刷するときには印刷データとして文字コードが送られてくるため、文字コードから文字データを取得できるように文字データをＲＯＭ等に記憶している（例えば特許文献１、２等）。例えば文字データは、キャラクタジェネレータに格納されており、印刷データ中の文字コードをキャラクタゲネレータに送出すると、該文字コードに対応する文字データがキャラクタゲネレータから与えられる。この文字データは出力バッファ（イメージバッファ）上にビットマップで展開された後、印刷エンジン（例えば印刷ヘッド駆動制御部）に送出され、該印刷エンジンによりビットマップデータに従って文字の印刷が行われるようになっている。
【０００３】
例えばドットインパクトプリンタには、文字データが備えられているが、その文字データは１ドットが２値（１ビット）で表現されている。一方、インクジェットプリンタは、近年、インク滴を複数サイズで吐出できる機種が登場している（特許文献３、４等）。この場合、ビットマップデータにおいて１ドットのビット数は、吐出／非吐出（印刷／非印刷）の情報の他、ドットサイズの違いを階調値で表現できるように２ビット以上に設定されている。例えば特許文献３では、１ドットが２ビットで表現され、「００」であれば吐出なし（非吐出）、「０１」であれば小ドット、「１０」であれば中ドット、「１１」であれば大ドットとして表現されるようになっていた。
【特許文献１】特開２００１−１３８５８２号公報
【特許文献２】特開平５−２４６０７８号公報
【特許文献３】特開２００４−３１４４１１号公報
【特許文献４】特開２００６−０９５８６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、インクジェット方式の印刷装置において文字データを用意する場合、インクジェット方式以外の他の記録方式の印刷装置（ドットインパクトプリンタ等）で使用されていた文字データを利用できれば、文字データを零から作成する必要がなく、しかもプリンタの開発速度を速められ効率的である。このためには、２値の文字データを基に印刷エンジンで処理可能な多値のビットマップデータを生成する必要があり、その生成のために好適な方法が要望されていた。
【０００５】
本発明は、上記課題を解決するためになされたものであって、その目的は、文字が横向きかつ左右反転された２値の文字データを流用して、印刷エンジンで処理可能な階調値で１ドットが表現された多値の文字データを生成できるビットマップ生成方法、印刷装置、集積回路及びビットマップ生成装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、１ドットが２値で表現されるとともに文字の縦方向が、読み出し方向と一致する向きで配置されかつ文字が左右反転された２値のビットマップデータからなる文字データを基に、印刷装置が有する印刷エンジンで処理可能な多値のビットマップデータを生成するビットマップ生成方法であって、前記文字データにおける文字の横方向のビット数である横ビット数と８との公倍数であってかつ該公倍数を該横ビット数で割った値である拡張倍率が、前記印刷エンジンで処理可能な１ドットの階調数を表現するビット数以上の値となる公倍数のうち最も小さい公倍数を選択し、１ドットを表現する２値を前記印刷エンジンで処理可能な１ドットの階調数を表現するビット数の多値に変換する多値化処理を行いつつ、前記文字の横方向のビット数が前記選択した公倍数に等しいビット数になるように前記文字データを文字の横方向に拡張する拡張処理を行う拡張ステップと、前記文字の横方向が前記読み出し方向に一致する文字の向きとすべく前記文字データを９０度回転させる縦横変換ステップと、前記文字の左右を反転させる左右反転処理を前記文字データに施す左右反転ステップとを備え、前記各ステップを順不同に行うことを要旨とする。
【０００７】
これによれば、文字の横方向のビット数と８との公倍数であってかつ該公倍数を該横ビット数で割った値である拡張倍率が印刷エンジンで処理可能な１ドットの階調数を表現するビット数以上の値をとる公倍数のうち最も小さい公倍数が選択される。この公倍数の選択は、予め選択したものを予め設定しておくこともできるし、その都度、計算して算出する構成も可能である。処理対象である２値の文字データに対し、拡張ステップ、縦横変換ステップ、左右反転ステップが順不同に施される。拡張ステップでは、１ドットを表現する２値を、印刷エンジンで処理可能な多値に変換する多値化処理を行いつつ、文字の横方向のビット数が選択された公倍数に等しいビット数になるように、文字データを文字の横方向に拡張する拡張処理が行われる。また、縦横変換ステップでは、文字の横方向が読み出し方向に一致する文字の向きとすべく文字データを９０度回転させる。また、左右反転ステップでは、文字の左右を反転させる左右反転処理が文字データに施される。この結果、縦横反転（９０度回転）、左右反転していた２値の文字データを、印刷エンジンで処理可能な多値の文字データに変換できる。しかも、変換された多値の文字データは、読み出し方向が文字の横方向（ラスタ方向）となる配列で、かつ読み出し方向（文字の横方向）のビット数が８の倍数となるような多値の文字データとして生成できる。
【０００８】
本発明のビットマップ生成方法においては、前記拡張ステップでは、前記選択された公倍数は、該公倍数を前記横ビット数で割った値である拡張倍率が、前記印刷エンジンで処理可能な１ドットを表現するビット数に等しくなることを満たすことが好ましい。
【０００９】
これによれば、１ドットを２値の表現から印刷エンジンで処理可能な多値の表現に変換する多値化処理を行えば、文字の横方向のビット数が、選択された公倍数に等しいビット数になるように、文字データが文字の横方向に拡張される。つまり、文字データが文字の横方向に、選択された公倍数を横ビット数で割った値である拡張倍率で拡張される。よって、多値化処理が拡張処理を兼ねることになるので、拡張処理において多値化処理以外の余分の処理が不要になる。
【００１０】
本発明のビットマップ生成方法では、前記文字データは、前記横ビット数と８との最小公倍数を前記横ビット数で割った値である拡張倍率が、前記印刷エンジンで処理可能な１ドットのビット数と一致する条件を満たす横ビット数を有する２値の文字データであり、前記拡張ステップでは、前記選択された公倍数が最小公倍数であることが好ましい。
【００１１】
これによれば、拡張後のビット数を規定する選択された公倍数が最小公倍数であり、しかも印刷エンジンで処理可能な１ドットのビット数に変換するのに必要なビット数分だけ拡張される。よって、２値の文字データから変換して生成した多値の文字データを、極力小さなデータサイズに抑えることができる。
【００１２】
本発明のビットマップ生成方法では、前記拡張ステップでは、前記選択された公倍数を前記横ビット数で割った値である拡張倍率が、前記印刷エンジンで処理可能な１ドットのビット数に２以上の自然数を乗じた値である場合は、前記拡張処理において、前記多値化処理によって前記文字の横方向に多値表現で配列されるドット間に相当する位置に記録なしを意味するドットの階調値を追加する処理が行われることが好ましい。
【００１３】
これによれば、選択された公倍数を横ビット数で割った値である拡張倍率が、印刷エンジンで処理可能な１ドットを表現するビット数に等しくなくても、当該ビット数に２以上の自然数を乗じた値である場合は、印刷エンジンで処理可能な文字データとして生成できる。すなわち、拡張処理において、多値化処理によって文字の横方向に配列される多値のドット間に相当する位置に記録なしを意味するドットの階調値が追加される。これにより、生成された文字データは、１ドットを印刷エンジンで処理可能な多値で表現されるうえ、選択された公倍数から規定される拡張倍率で文字データを文字の横方向に拡張したものとなって、読み出し方向（文字の横方向）のビット数が８の倍数となる。しかも、ドット間に追加された階調値は、記録なしを意味するので、印刷エンジンが記録処理を行うときには記録されず、本来のドットのみが記録の対象となる。
【００１４】
本発明は、印刷装置であって、印刷エンジンと、該印刷エンジンが処理可能であるとともに上記発明のビットマップ生成方法を用いて生成された多値の文字データを記憶する文字記憶部と、前記文字記憶部から前記多値の文字データを読み出して展開処理して前記印刷エンジンに送出する展開処理手段とを備えたことを要旨とする。
【００１５】
これによれば、印刷装置内の文字記憶部には、上記発明のビットマップ生成方法を用いて生成された多値の文字データが予め記憶されている。文字記憶部から読み出した多値の文字データは印刷エンジンが処理可能な文字データであるので、そのまま展開処理手段により展開させればよいので、印刷エンジンへ送出する前の処理を簡単に済ませられる。
【００１６】
本発明は、印刷装置であって、印刷エンジンと、前記２値の文字データを記憶する文字記憶部と、前記文字記憶部から前記文字データを読み出すとともに上記発明のビットマップ生成方法を用いて前記２値の文字データから前記印刷エンジンが処理可能な多値の文字データを生成するとともに該多値の文字データを展開して前記印刷エンジンに送出するビットマップ生成手段とを備えたことを要旨とする。
【００１７】
これによれば、印刷装置内の文字記憶部には、２値の文字データが記憶されており、ビットマップ生成手段は、文字記憶部から読み出された２値の文字データを基に、上記発明のビットマップ生成方法を用いて、印刷エンジンで処理可能な多値の文字データを生成する。そして、生成された多値の文字データは印刷エンジンに送出される。このように２値の文字データが記憶された文字記憶部をそのまま用いて、印刷装置内で２値の文字データを多値の文字データに変換できる。
【００１８】
本発明は、集積回路であって、上記発明のビットマップ生成方法を実行するプログラムが形成された電気回路部を有することを要旨とする。
これによれば、集積回路を印刷装置に内蔵して用いることにより、文字記憶部に２値の文字データが記憶されていても、印刷装置内で２値の文字データを多値の文字データに変換することが可能になる。
【００１９】
本発明は、１ドットが２値で表現されるとともに文字の縦方向が、読み出し方向と一致する向きで配置されかつ文字が左右反転された２値のビットマップデータからなる文字データを基に、印刷装置が有する印刷エンジンで処理可能な多値のビットマップデータを生成するビットマップ生成装置であって、前記文字データにおける文字の横方向のビット数である横ビット数と８との公倍数であってかつ該公倍数を該横ビット数で割った値である拡張倍率が、前記印刷エンジンで処理可能な１ドットの階調数を表現するビット数以上の値となる公倍数のうち最も小さい公倍数を選択し、１ドットを表現する２値を前記印刷エンジンで処理可能な１ドットの階調数を表現するビット数の多値に変換する多値化処理を行いつつ、前記文字の横方向のビット数が前記選択した公倍数に等しいビット数になるように前記文字データを文字の横方向に拡張する拡張処理を行う拡張手段と、前記文字の横方向が前記読み出し方向に一致する文字の向きとすべく前記文字データを９０度回転させる縦横変換手段と、前記文字の左右を反転させる左右反転処理を前記文字データに施す左右反転手段とを備えたことを要旨とする。この構成によれば、上記ビットマップ生成方法の発明と同様の効果が得られる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明を具体化したビットマップ生成方法及びビットマップ生成装置の一実施形態を、図１〜図９に従って説明する。まず、本実施形態のビットマップ生成方法により生成された多値のビットマップデータからなる文字データ（キャラクタデータ）を用いて印刷処理を行う印刷装置について説明する。
【００２１】
図１は、印刷装置の基本構成を示す斜視図である。図１に示すように、印刷装置１１は、同図における上方及び手前方向に向かって開放された略長四角箱状の本体ケース１２を備える。本体ケース１２の同図における左右側壁間には所定長さを有するガイド軸１３が架設されている。ガイド軸１３が挿通された状態にあるキャリッジ１４は、ガイド軸１３の軸方向に移動可能に設けられている。本体ケース１２の内側背面側には、無端状のタイミングベルト１５が主走査方向Ｘに張設された状態で回転可能に支持されており、キャリッジ１４の背面側の一箇所はタイミングベルト１５の所定箇所に固定されている。キャリッジ１４はタイミングベルト１５を回転駆動させるキャリッジモータ１６の駆動軸に対してタイミングベルト１５を介して動力伝達可能に連結されている。キャリッジモータ１６が正逆転駆動されてタイミングベルト１５が正転・逆転することによって、キャリッジ１４は主走査方向Ｘに往復移動するように構成されている。
【００２２】
キャリッジ１４の下部には、インクジェット方式の記録ヘッド１７が設けられており、その下面は、液体としてのインクを噴射するノズル１８が開口するノズル形成面１７ａ（いずれも図３に示す（但し、図３ではインク色と同数あるノズル列のうち１色分の１列のみ図示））となっている。本体ケース１２内において記録ヘッド１７の印刷時の移動経路と対向する位置には、記録ヘッド１７と用紙Ｐとの間隔を規定するプラテン１９が設けられている。また、キャリッジ１４の上部には、記録ヘッド１７にインクを供給するブラックのインクカートリッジ２０、および例えばシアン、マゼンタ、イエローの３色のインクが個別に収容されたカラー用のインクカートリッジ２１が着脱可能に装填されている。これら各インクカートリッジ２０，２１より記録ヘッド１７に対してインクが供給され、記録ヘッド１７はノズル形成面１７ａの各ノズル１８からインクを噴射（吐出）可能となっている。
【００２３】
また、本体ケース１２の図１における右端下部には、紙送りモータ２２が配設されている。紙送りモータ２２が駆動されて、用紙搬送経路上において記録ヘッド１７を前後に挟んだ両側に配設された紙送りローラ及び排紙ローラ（図示せず）が回転駆動されることにより、用紙Ｐは副走査方向Ｙに搬送される。そして、キャリッジ１４を主走査方向Ｘに往復動させながら記録ヘッド１７のノズル１８から用紙Ｐにインクを吐出する記録動作と、用紙Ｐを副走査方向Ｙに所定の搬送量（紙送り量）で搬送する紙送り動作とを交互に繰り返すことで、用紙Ｐに印刷が施される。なお、キャリッジ１４の移動経路上の一端位置（図１における右端位置）は、キャリッジ１４が印刷作業をしないときに待機する待機位置（ホームポジション）となっている。本体ケース１２内において待機位置に配置されたキャリッジ１４の直下に相当する位置には、記録ヘッド１７のメンテナンスをするメンテナンス装置２３が装備されている。
【００２４】
図２は、印刷装置の基本的な電気的構成を示すブロックである。図２に示すように、印刷装置１１は、インターフェイス部３０（Ｉ／Ｆ部）、受信部３１、解釈部３２、制御部３３、イメージ生成部３４、キャラクタジェネレータ３５（ＣＧ−ＲＯＭ）及び印刷エンジン３７を備える。印刷エンジン３７は、記録ヘッド１７の吐出駆動制御を行う印刷駆動回路３８を備え、該印刷駆動回路３８の他、記録ヘッド１７、キャリッジモータ１６、紙送りモータ２２、各モータ１６，２２を駆動制御する各種モータ駆動回路（図示省略）などから構成される。なお、印刷装置１１は、ＣＰＵ、ＡＳＩＣ３９（Application Specific ＩＣ（特定用途向けＩＣ）），ＲＯＭ、ＲＡＭを備える。解釈部３２は解釈処理を実行するＣＰＵにより構成され、イメージ生成部３４はキャラクタジェネレータ３５から取得した文字データ（キャラクタデータ）や印刷データから取得した画像データをイメージバッファ３６上に展開する展開処理を実行する電子回路を内蔵するＡＳＩＣ３９により構成されている。さらに受信部３１及びイメージバッファ３６は、それぞれＲＡＭにより構成されている。もちろん、ＣＰＵおよびＡＳＩＣ３９は、印刷エンジン３７の制御をはじめとするその他の各種機能も果たす構成となっている。
【００２５】
ホスト装置（図示せず）から印刷装置１１がインターフェイス部３０を通じて入力した印刷データは、受信部３１に一時蓄積された後、解釈部３２に送られる。解釈部３２は印刷データを解釈して、印刷データをヘッダやフッタからなる部分と記録データとに分離し、記録データをイメージ生成部３４（ＡＳＩＣ３９）へ転送する。記録データは、画像データや文字コードを含むデータからなる。イメージ生成部３４は画像データの展開処理を行う。また、イメージ生成部３４は、文字コードをキャラクタジェネレータ３５に送出することにより、その文字コードに対応する文字データをキャラクタジェネレータ３５から取得する。
【００２６】
本実施形態では、キャラクタジェネレータ３５に格納されている文字データの種類に応じて、キャラクタジェネレータ３５には２通りの構成がある。すなわち、キャラクタジェネレータ３５が、ドットインパクトプリンタ用の２値の文字データが記憶されているものである場合と、印刷エンジン３７で処理可能な多値の文字データが記憶されているものである場合とがある。ドットインパクト用の文字データは、１ドットが２値（１ビット）で表現される２値データからなるとともに、文字が９０度回転した横向きに配置されかつ文字が左右で反転した文字データからなり、そのままではインクジェット用の印刷エンジン３７では処理不能である。
【００２７】
そのため、キャラクタジェネレータ３５が前者の構成である場合、イメージ生成部３４は、取得したドットインパクト用の文字データを基に、印刷エンジン３７で処理可能な多値の文字データを生成する。このイメージ生成部３４を有するＡＳＩＣ３９は、本発明のビットマップ生成方法を実行可能なプログラムが電子回路の形でハードウェアとして作り込まれた回路部を有する集積回路を構成する。一方、キャラクタジェネレータ３５が後者の構成である場合、ドットインパクト用の文字データを基に生成された多値の文字データが予めキャラクタジェネレータ３５に格納されている。この場合、イメージ生成部３４は、公知の展開処理のみ行う。
【００２８】
イメージ生成部３４は、文字コードを送出することでキャラクタジェネレータ３５から文字データを読み出してイメージバッファ３６上に展開する。このとき、イメージ生成部３４は、多値の文字データを所定バイト幅（本実施形態では２バイト幅）で文字の横方向に複数に分割するとともに分割した各データ列を１列に並べた読み出し順になるように該文字データを展開する縦展開を行う。この展開（縦展開）によって、文字データは、記録ヘッド１７が主走査方向Ｘに移動するときに副走査方向Ｙに並ぶ複数個のノズル１８からインクが吐出される吐出順序に合わせてデータが並び替えられる。展開されたデータはイメージバッファ３６から印刷エンジン３７の印刷駆動回路３８へ、１ビット列ずつシリアル転送されるか、又は所定バイト単位（１バイト又は２バイト単位）でパラレル転送される。これらのいずれの方式で転送されても、転送されたデータは印刷駆動回路３８内の所定格納領域にバイト単位で格納される。なお、本実施形態では、印刷エンジン３７という場合、特に断らない限り、文字データを基に印刷処理（吐出処理）を行う印刷駆動回路３８を含む吐出処理部分を指すものとする。
【００２９】
イメージ生成部３４がイメージバッファ３６上に展開する文字データは、１ドットが２ビット（４階調）で表現される多値のビットマップデータである。この多値の文字データの転送先である印刷エンジン３７は、大中小の３種類のサイズでインク滴を打ち分けることが可能であり、そのインク滴サイズの打ち分けを１ドットが４階調の多値で表現される階調値に基づいて行う構成となっている。ドットの階調値に応じてインク滴の吐出の有無、及び吐出されるインク滴のサイズ（ドットサイズ）が決められる。すなわち、多値の文字データでは、１ドットが階調値「００」「０１」「１０」「１１」の４種類で表現される。そして、印刷エンジン３７は、１ドットが４階調で表現される多値の文字データを処理可能に構成され、例えば「００」であれば吐出なし、「０１」であれば小ドット、「１０」であれば中ドット、「１１」であれば大ドットのインク滴を吐出するような吐出処理を行う。
【００３０】
図３は、印刷制御回路の構成を示す。印刷駆動回路３８は、電圧波形の異なる１組（例えば２つ）の電圧パルスからなる吐出駆動信号ＤＳを出力する駆動信号生成回路４０、シフトレジスタ４１、ラッチ回路４２、レベルシフタ４３、スイッチ素子４４を、吐出駆動素子４５ごとに備えている。吐出駆動素子４５は、記録ヘッド１７のノズル１８毎に一つずつ設けられており、本実施形態では圧電振動子により構成されている。もちろん、吐出駆動素子４５は、インクジェット方式の記録ヘッドに使用可能な素子であれば足り、圧電振動子の他、例えば静電駆動素子又は発熱素子などを用いて構成することもできる。
【００３１】
駆動信号生成回路４０は、制御部３３からの制御信号に基づき、印刷実行時にインクを吐出するときにはその吐出タイミングに同期して、吐出駆動信号ＤＳを生成して出力する。
【００３２】
各シフトレジスタ４１には、発振回路（図示せず）からのクロック信号ＣＫに同期したドットデータＳＩ（例えば２ビットの階調値データ「００」「０１」「１０」「１１」のうちいずれか）がそれぞれ入力される。各シフトレジスタ４１はドットデータのうち、まず上位ビットのデータを順次セットする。
【００３３】
ラッチ回路４２は、上位ビットのデータが各シフトレジスタ４１にセットされると、所定のタイミングで入力されるラッチ信号ＬＡＴに基づきシフトレジスタ４１にセットされたデータをラッチする。
【００３４】
レベルシフタ４３は、データが「１」である場合に、ラッチされたデータを所定の電圧値（例えば数十ボルト）まで昇圧し、この昇圧したデータによってスイッチ素子４４が接続状態となる。一方、データが「０」である場合、各レベルシフタ４３はデータの昇圧を実行せず、スイッチ素子４４が非接続状態となる。
【００３５】
スイッチ素子４４は、駆動信号生成回路４０から図３に示す吐出駆動信号ＤＳを入力している。吐出駆動信号ＤＳは、第１パルスＣＯＭ１と第２パルスＣＯＭ２からなる。上位ビット「１」に基づきスイッチ素子４４が接続状態となるタイミングで、吐出駆動信号ＤＳのうち第１パルスＣＯＭ１が各スイッチ素子４４に印加される。そして、上位ビットのデータが出力されると、次にドットデータが下位ビットのデータにシフトされ、下位ビット「１」に基づきスイッチ素子４４が接続状態となるタイミングで、第２パルスＣＯＭ２が各スイッチ素子４４に印加される。
【００３６】
すなわち、「０１」のドットデータが出力されたとき、吐出駆動信号ＤＳのうち第２パルスＣ０Ｍ２だけが吐出駆動素子４５に印加されて小ドットのインクが吐出される。また、「１０」のドットデータＳＩが出力されたとき、吐出駆動信号ＤＳのうち第１パルスＣＯＭ１だけが吐出駆動素子４５に印加されて中ドットのインクが吐出され、「１１」のドットデータが出力されたとき、第１パルスＣＯＭ１と第２パルスＣＯＭ２が共に吐出駆動素子４５に印加されて大ドットのインクが吐出される。このように、吐出駆動信号ＤＳのうちドットデータＳＩの階調値に応じて選択された電圧パルスが吐出駆動素子４５に印加されることにより、与えられた電圧パルスに応じた強さで吐出駆動素子４５が吐出駆動し、ノズル１８から階調値に応じた大きさのインク滴が吐出される。なお、図３における吐出駆動信号ＤＳの電圧波形は、インク滴を大中小に打ち分ける構成を説明する模式図であり、個々のパルスの電圧波形やその組合せは、使用されるインクのインク特性（粘性等）や記録ヘッドの吐出特性などに応じて適切なドットサイズにインク滴を打ち分けられうるように適宜変更できる。
【００３７】
次に、上記の印刷装置１１に適用され、ドットインパクト用の２値のビットマップデータからなる文字データを基に、インクジェット用の多値のビットマップデータからなる文字データを生成するビットマップ生成装置について説明する。図４はビットマップ生成装置の電気的構成を示すブロック図である。
【００３８】
図４に示すように、ビットマップ生成装置５０は、主制御部５１、メモリ５２、演算部５３、左右反転部５４、縦横変換部５５、拡張処理部５６及びインターフェイス５７を備えている。主制御部５１は、各部５２〜５７に指示を出して所定の処理を行わせることにより、ドットインパクト用の文字データを基にインクジェット用の文字データを生成するビットマップ生成処理を行う。主制御部５１が各部５２〜５６に指示して実行されるビットマップ生成処理は、図５に示すフローチャートで示される。このビットマップ生成処理においては、左右反転処理、縦横変換処理、拡張処理などが行われる。ここで、ビットマップ生成処理について詳述する前に、まずドットインパクト用の文字データについて説明する。
【００３９】
図６は、２値の文字データを示す。図６（ａ）は、ドットインパクト用の文字データを示し、図６（ｂ）は左右反転処理後の文字データを示す。また、図６（ｃ）は、図６（ａ），（ｂ）における文字データ中の１升分の領域（１バイト領域）を詳細に示したデータ図である。なお、図６（ａ），（ｂ）における文字データ中で升内に付与された数字はデータの読み出し順（アドレス順序）を示す。
【００４０】
図６（ａ）に示すドットインパクト用の文字データＣＤ１は、文字「Ａ」の文字データであり、同図における升内の数字の順番で示される読み出し方向（同図における左から右への方向）が文字の縦方向となる向きで、かつ文字が左右（図６（ａ）では上下）で反転された状態でキャラクタジェネレータ３５（ＣＧ−ＲＯＭ）に格納されている。図６における縦方向がノズル配列方向（ドットインパクトプリンタにおけるインパクトワイヤ配列方向）となっており、横方向（左右方向）が主走査方向Ｘのドット列の方向であるラスタ方向となっている。
【００４１】
ここで、図６では、文字データＣＤ１は、ノズル配列方向である同図における縦方向がビット（ｂｉｔ）で表現され、ラスタ方向である同図における横方向（左右方向）がバイト（ｂｙｔｅ）で表現されている。すなわち、同図における文字データＣＤ１の１升は、図６（ｃ）に示すように、１バイトに相当し、８個の２値データがラスタ方向に並ぶ８ビットで構成されている。１ドットが１ビットで表現される２値の文字データＣＤ１は、ノズル配列方向（図６（ａ）の縦方向）に３６ビット、ラスタ方向（図６（ａ）の横方向）に６バイト（４８ビット）で表現されている。文字の縦方向と横方向の各ドット数がそれぞれ４８ドット、３６ドットであり、その文字データＣＤ１のドットサイズは、縦×横＝４８×３６ドットとなっている。
【００４２】
ここで、１ドットを１ビット（２値）で表現している図６に示す文字データＣＤ１では、縦方向の３６ドットは、ドットインパクトプリンタの記録ヘッドのインパクトワイヤの本数が副走査方向に３６本（３６ドット）あることに依拠している。このように文字データＣＤ１は、縦×横が４８×３６ビットの画像サイズを有する２値データからなり、かつ解像度が３６０ｄｐｉ（dot  per  inch）（１inchは２．５４cm）となっている。文字「Ａ」が描かれた領域（灰色領域）は値「１」をとり、文字の背景領域（白抜き領域）は値「０」をとる。なお、図６に示す文字データＣＤ１において灰色で表現された文字は、１升である１バイト中に「１」となるビットが存在する場合にそのバイトの升を灰色で表現することによりバイト単位で２値表現したものであり、そのため文字の輪郭にギザギザ感があるが、実際のビット単位で２値表現された文字はその輪郭が滑らかなものとなっている。
【００４３】
図４に戻って、ビットマップ生成装置５０を構成する各部５３〜５６の構成を、以下、順番に説明する。左右反転部５４は、ドットインパクトプリンタ用に左右反転された文字を、インクジェットプリンタ用に左右反転されていない文字に戻すべく、文字データＣＤ１を文字の左右に反転させる左右反転処理を行う。左右反転処理が施されると、例えば図６（ａ）に示す文字データＣＤ１は、図６（ｂ）に示すように文字が左右で反転されていない正規の文字データＣＤ２に変換される。
【００４４】
縦横変換部５５は、文字の横方向（図６における縦方向（ノズル配列方向））がバイトで表現される読み出し方向（図６における左右方向（ラスタ方向））となるように、文字データの縦と横を入れ替えて文字を９０度回転させる縦横変換を行う。
【００４５】
拡張処理部５６は、文字データの縦方向と横方向のうち所定の一方向におけるビット数が元のビット数の所定数（２以上の自然数）倍となるように、文字データを拡張する拡張処理を行う。このとき、１ドットを表現する２値（１ビット）は、印刷エンジン３７で処理可能な階調数である４階調を表現できる２ビットの値に変換する。すなわち、１ドットを表現する１ビットの値のうち「０」を「００」に、「１」を「１１」に変換する。これは、文字を印刷する場合、インク滴を異なるサイズに打ち分けることはしておらず、吐出するか吐出しないかの２通りしかなく、吐出しないときにはそれを意味する「００」、吐出するときには大ドットを打つことを意味する「１１」にしている。もちろん、吐出する場合に大ドットにすることは必須でなく、例えば「１」を、中ドットを意味する「１０」や、小ドットを意味する「０１」に変換してもよい。
【００４６】
演算部５３は、拡張処理部５６がビット数を拡張すべき拡張後のビット数を算出する。本実施形態では、拡張後のビット数の値として、文字データＣＤ１のノズル配列方向に相当する縦方向（文字の横方法）のビット数Ｎｂ（本例では３６ビット）と、１バイトのビット数である「８」との最小公倍数を算出する。文字データの縦方向のビット数Ｎｂが「３６」であるので、「３６」と「８」との最小公倍数「７２」が拡張後のビット数として算出される。もちろん、２値の文字データのサイズ及び多値の文字データのサイズがそれぞれ決まっている場合は、予め算出した最小公倍数を拡張後のビット数として設定しおき、拡張後のビット数を計算する演算を省くこともできる。
【００４７】
本実施形態では、ビット数Ｎｂが「３６」であるので「８」との最小公倍数を算出する構成としている。拡張後に読み出し方向がバイト単位で表現されるように８の倍数となるビット数に拡張でき、しかも拡張した場合に１ドットを表現する１ビットが、印刷エンジン３７が１ドットを表現する階調数を表すことができるビット数（本例では２ビット）に変換できる条件を満たす拡張後のビット数を求める必要がある。本実施形態のように、ビット数Ｎｂ（＝「３６」）が４の倍数でありかつ８の倍数でなく（つまり２倍すれば８との公倍数となり）、かつ１ドットを表現するビット数が１ビットから２ビットへ変換される場合（ビット数を２倍にすればよい場合）は、ビット数Ｎｂと「８」との最小公倍数を、拡張後のビット数とすればよい。
【００４８】
但し、本実施形態のような上記の条件を満たす文字データ以外の文字データをも扱う可能性がある場合は、次のような処理を行う。まず、ビット数Ｎｂと「８」との公倍数を小さい方から順次算出する。そして公倍数Ｊのとき、その公倍数Ｊをビット数Ｎｂで割った値である拡張倍率Ｑが、印刷エンジン３７が処理可能な階調数を表現するビット数Ｋと一致するか否かを判断する。拡張倍率Ｑとビット数Ｋが一致すればそのときの公倍数Ｊを、拡張処理後のビット数として採用する。一方、拡張倍率Ｑとビット数Ｋが一致しない場合は、Ｑ＞Ｋが成立するか否かを判断する。Ｑ＞Ｋが不成立である場合は、１つ大きな次の公倍数に変更して、その公倍数Ｊについて同様の処理をする。一方、Ｑ＞Ｋが成立する場合は、既に印刷エンジン３７で処理可能なビット数Ｋで１ドットを表現するのに必要なビット数を超えるビット数に拡張可能なので、その公倍数Ｊを拡張後のビット数として採用する。
【００４９】
次に、主制御部５１が各部５３〜５６に処理を行わせて実行するビットマップ生成処理について、図６〜図８の図面を用いつつ、図５に示すフローチャートに従って説明する。なお、図７に示す文字データも、図６と同様に、図における横方向である読み出し方向はバイトで表現されており、升内の数字はデータの読み出し順を示す。
【００５０】
主制御部５１は、文字データが与えられる度に文字データの一つひとつについてビットマップ生成処理を施す。もちろん、処理後の文字の位置・向きを把握しつつ複数の文字データにビットマップ生成処理を一度に施す方法も実施可能である。ここでは、いずれの方法であるにせよ、一つの文字データに着目してビットマップ生成処理を説明する。
【００５１】
まずステップＳ１では、処理の対象となる文字データＣＤ１を取得する。すなわち、文字データＣＤ１を読み出してメモリ５２の作業領域に書き込む。例えばインターフェイス５７を介して外部から文字データをメモリ５２の作業領域へ読み込んでもよいし、予めメモリ５２の他の格納領域に格納された文字データを、該メモリ５２の作業領域へ読み込んでも構わない。後者の場合、メモリ５２は、文字データ格納用のＲＯＭ又はフラッシュメモリと、作業領域用のＲＡＭ又はフラッシュメモリとから構成されてもよいし、１つフラッシュメモリ内に文字データ格納領域と作業領域とが用意された構成でもよい。また、例えば外部から文字データを読み込む構成としては、ビットマップ生成装置５０と通信可能に接続されたキャラクタジェネレータ３５に文字コードを送出することによりインターフェイス５７を通じて文字データＣＤ１を取得する構成が挙げられる。
【００５２】
ステップＳ２では、文字データのノズル配列方向（縦方向）のビット数Ｎｂ（本例では「３６」）と「８」との最小公倍数を算出する。この最小公倍数の算出処理は、主制御部５１の指示に従って演算部５３が実行する。最小公倍数は「７２」と算出され、この値「７２」はメモリ５２の所定記憶領域に一時記憶される。なお、前述のごとく、扱う文字データ及び変換後の文字データの各サイズが予め決まっている場合は、予め最小公倍数「７２」を算出して設定しておくことにより、当該ステップの演算を省くこともできる。
【００５３】
また、本実施形態では、ビット数Ｎｂが４の倍数でありかつ８の倍数ではない値であり、かつＫ＝２であることから、ビット数Ｎｂと「８」との最小公倍数を算出する構成としている。もちろん、処理対象である２値の文字データのビット数Ｎｂが４の倍数でなく、かつ印刷エンジン３７で処理可能な１ドットを表現できるビット数Ｋが「２」でない場合もありうる。このような場合にも対応できるためには、次の２つの条件を満たすような公倍数Ｊ（拡張倍率Ｑ）を求める。すなわち、(1)ビット数Ｎｂと「８」との公倍数Ｊ（又はＱ＝Ｊ／Ｎｂ）であり、かつ(2)拡張倍率Ｑで拡張した際に印刷エンジン３７で処理可能な階調値表現ができるように１ドットをＫビットで表現するために必要なビット数（＝Ｎｂ×Ｋ）が確保されうる条件Ｑ≧Ｋを満たすことである。つまり、条件Ｊ／Ｎｂ≧Ｋを満たす公倍数Ｊ（又は拡張倍率Ｑ（＝Ｊ／Ｎｂ））を定めればよい。
【００５４】
具体的には次の処理を実行する。まず、ビット数Ｎｂと「８」との公倍数を小さい方から順次算出する。最初の公倍数を算出すると、その公倍数Ｊ（本例では「７２」）をビット数Ｎｂで割った拡張倍率Ｑが、印刷エンジン３７で処理可能な階調数を表現できるビット数Ｋ（本例では「２」）と一致するか否かを判断する。拡張倍率Ｑとビット数Ｋが一致すれば、拡張後のビット数としてその公倍数Ｊを採用する。先の最小公倍数を算出する方法は、最初の公倍数Ｊ（つまり最小公倍数）に対応する拡張倍率ＱがＫに一致した場合に該当する。一方、拡張倍率Ｑとビット数Ｋが一致しない場合は、Ｑ＞Ｋが成立するか否かを判断する。Ｑ＞Ｋが不成立の場合は、１つ大きな次の公倍数に変更して、その公倍数Ｊについて同様の処理をする。一方、Ｑ＞Ｋが成立する場合は、既に印刷エンジン３７で処理可能なビット数Ｋで１ドットを表現するのに必要なビット数を超えるビット数への拡張が可能なので、拡張後のビット数としてその公倍数Ｊを採用する。採用する公倍数Ｊはメモリ５２の所定記憶領域に一時記憶される。
【００５５】
ステップＳ３では、与えられた文字データＣＤ１に文字の左右を反転させる左右反転処理を施す。この左右反転処理は、主制御部５１の指示に従って左右反転部５４が実行する。この左右反転処理は、文字データにおいて文字の左右方向の両側のデータを入れ替える処理を両端から内側へ向かって順次行う。この結果、文字データＣＤ１の左右が反転されて、図６（ｂ）に示すように、文字が左右（横方向）で反転されていない正規の文字データＣＤ２が得られる。
【００５６】
次のステップＳ４では、文字データを縦横変換・拡張処理する。この縦横変換処理は、主制御部５１の指示に従って縦横変換部５５が実行する。メモリ５２に格納された左右反転後の文字データＣＤ２をメモリ５２の格納領域における縦方向（ノズル配列方向）に読み出し、その読み出したデータをメモリ５２の元の格納領域に横方向（読み出し方向）に書き込む処理を行う。この縦横変換処理の過程では、読み出したデータを、書込み方向を９０度変えて書き込むが、その書込みをする前に、その読み出したデータに拡張処理を施す。なお、縦横変換処理は、横方向（読み出し方向）に読み出して、縦方向（ノズル配列方向）に書き込む処理としてもよい。
【００５７】
この拡張処理は、主制御部５１の指示に従って拡張処理部５６が実行する。この拡張処理では、まず先に算出した（あるいは予め設定された）最小公倍数の値をメモリ５２の所定記憶領域から読み出し、文字の横方向（ラスタ方向）のビット数が、その読み出した最小公倍数に等しいビット数となるように、文字データをラスタ方向に拡張する。詳しくは、縦横変換処理の過程で読み出した文字データに対し、１ドットを表現する１ビットの値（２値）を、４階調で表現できる２ビット（多値）に変換する多値化処理を施す。本実施形態では、図７（ｂ）に示すように、「０」を「００」に、「１」を「１１」に変換する。吐出なしを意味する「０」は、４階調で吐出なしを意味する「００」に変換され、一方、吐出ありを意味する「１」は、４階調で大ドットでの吐出ありを意味する「１１」に変換される。そして、この多値化処理されたデータをメモリ５２の格納領域に、読み出し方向と９０度向きを変えた横方向（ラスタ方向）に書き込む。この結果、図７（ａ）に示すように、文字データの縦横が変換されて文字の横方向が読み出し方向と一致するとともに、読み出し方向（文字の横方向）のビット数が、元の３６ビット（３６ドット）の２倍である７２ビット（９バイト）に拡張される。拡張処理後の文字データでは、１ドットが２ビットで表現されているので、拡張倍率Ｑ＝２で拡張されても、文字の横方向のドット数は３６ドットで、ドット数に変更はない。
【００５８】
また、ステップＳ２において、ビット数Ｎｂと「８」との公倍数を小さい方から順次算出し、公倍数Ｊをビット数Ｎｂで割った値である拡張倍率Ｑが、印刷エンジン３７で処理可能な階調数を表現できるビット数Ｋと一致するか否かを判断する処理を行った場合、拡張処理は以下のように行われる。拡張倍率Ｑ（＝Ｊ／Ｎｂ）とビット数Ｋとが一致したときの公倍数Ｊを採用した場合、文字データを拡張方向（本例では文字の横方向）に、拡張後のビット数が公倍数Ｊに等しい値になるように拡張処理を行う。すなわち、多値化処理において、吐出しないを意味する「０」を吐出しないを意味するＫ（＝Ｑ）ビットの値に変換し、吐出することを意味する「１」を大ドット（又は最大ドット）で吐出することを意味するＫビットの値に変換する。ビット数Ｎｂが８の倍数でない場合、Ｑがとりうる値としては「２」「４」「６」「８」が挙げられる。また、ビット数Ｎｂが８の倍数である場合、Ｑがとりうる値としては、Ｋの値に等しい２以上の自然数（＝２，３，４，５，…，８）が挙げられる。なお、インクジェットの場合、１ドットを表現するビット数Ｋが「８」を超える用途での使用は考えられにくいので、ここではＱの値は最大「８」としている。
【００５９】
一方、拡張倍率Ｑとビット数Ｋが一致せず、より大きな公倍数に順次変更していって、初めてＱ＞Ｋが成立したときの公倍数Ｊを採用した場合は、多値化変換において、「０」を吐出なしを意味するＫビットの値に変換し、「１」を大ドット（又は最大ドット）で吐出することを意味するＫビットの値に変換する。Ｑ＞ＫとなるＱとＫとの組合せとしては、（Ｑ，Ｋ）＝（４，２）、（４，３）、（６，２）、（６，３）、（６，４）、（６，５）、（８，２）、（８，３）…（８，７）が挙げられる。Ｑ＞ＫとなるＱとＫの組合せについては、余分に拡張されたビット（（Ｑ−Ｋ）ビット分）は、元々存在するドット間に相当する位置に追加する。この場合、ドット間に追加したビット数（Ｑ−Ｋ）がＫの自然数倍の値でなくても、後述する解像度調整を行うときにその余分に追加されたビットを解像度調整用の新たなドット（但し、吐出なしを意味する値）として利用したり、印刷エンジン３７（印刷制御回路３８）側で記録時に余分なビットを間引きしながら印刷処理を行ったりすればよい。
【００６０】
また、Ｑ＞ＫとなるＱとＫとの組合せのうち、ＱがＫの２以上の自然数倍（Ｎ倍）である場合、具体的には、（Ｑ，Ｋ）＝（４，２）、（６，３）、（８，２）、（８，４）の場合は、元々存在するドット間に相当する位置に、同じＫビットで表現されるドットを（Ｎ−１）個追加することができる。そして、ドット間に追加した（Ｎ−１）個のドットを表現するＫビットの値を、吐出なしを意味する値（例えば「００」、「０００」、「００００」）にする。こうすれば印刷エンジン３７で処理可能な階調表現ができるうえ、余分に拡張されたビットにはドットが記録されない。特にＱ＝２Ｋである場合、具体的には（Ｑ，Ｋ）＝（４，２）、（６，３）、（８，４）の場合は、元々存在するドット間に相当する位置に、吐出なしを意味するＫビットの値（例えば「００」、「０００」、「００００」）を１個追加するだけで済む。このように余分な（Ｑ−Ｋ）分のビットを、ドットの階調値として追加できる場合は、印刷エンジン３７側での記録実行時に余分なビットを間引く間引き処理を採用しない構成も実現可能になる。
【００６１】
ステップＳ５では、処理すべき全ての文字データについて処理を終了したか否かを判断し、未処理の文字データがあれば処理対象を次の文字データに切り替えて（Ｓ６）、ステップＳ１〜Ｓ４の各処理を実行する。文字データ毎にステップＳ１〜Ｓ４の各処理を実行し、ステップＳ５において全ての文字データについて処理を終了したと判断すると、当該ビットマップ生成処理を終了する。なお、本実施形態では、左右反転処理を行うステップＳ３が左右反転ステップに相当する。また、ステップＳ４における拡張処理（多値化処理）が「拡張ステップ」に相当し、ステップＳ４における縦横変換処理が「縦横変換ステップ」に相当する。
【００６２】
こうして３６０ｄｐｉの２値データからなるドットインパクト用の文字データＣＤ１は、３６０ｄｐｉの多値データからなるインクジェット用の文字データＣＤ３に変換される。つまり、ビットマップ生成装置５０により、ドットインパクト用の２値のビットマップデータからなる文字データＣＤ１を基に、インクジェット用の多値のビットマップデータである文字データＣＤ３が生成される。
【００６３】
ところで、図４に示すビットマップ生成装置５０は、例えばパーソナルコンピュータやワークステーション等のコンピュータにより構成することができる。この場合、図５にフローチャートで示されたビットマップ生成処理用のプログラムをコンピュータのＣＰＵが実行することにより、図４における各部５１，５３〜５６は構築される。例えば印刷装置１１のキャラクタジェネレータ３５にビットマップ生成処理後の図７に示す文字データＣＤ３を予め格納しておく場合は、上記のごとく、コンピュータによりビットマップ生成装置５０を構築して、文字データＣＤ１にビットマップ生成処理を施して、文字データＣＤ３を取得し、取得した文字データＣＤ３をキャラクタジェネレータ３５に格納する。
【００６４】
一方、図４に示すビットマップ生成装置５０は、例えばＡＳＩＣ３９により構成することもできる。この場合、図５にフローチャートで示されたビットマップ生成処理のプログラムが電子回路の形態で作り込まれた集積回路部をＡＳＩＣ３９は内蔵する。すなわち、ＡＳＩＣ３９に内蔵された集積回路部（つまりイメージ生成部３４）は、図４に示すビットマップ生成装置５０を構成し、主制御部５１、演算部５３、左右反転部５４、縦横変換部５５、拡張処理部５６を備える。例えば印刷装置１１のキャラクタジェネレータ３５にドットインパクト用の文字データＣＤ１を格納しておく場合は、上記のごとく、ＡＳＩＣ３９によりビットマップ生成装置５０を構築する。そして、印刷装置１１の内部でイメージ生成部３４がキャラクタジェネレータ３５から取得した文字データＣＤ１にビットマップ生成処理を施して、文字データＣＤ３を取得し、それをイメージバッファ３６上に展開する。なお、扱われる２値の文字データ及び多値の文字データの各サイズが決まっていて、拡張処理部に予め決まった最小公倍数（又は公倍数）を設定しておく構成で実現した場合は、拡張後のビット数を求める演算が不要なので、演算部は廃止できる。
【００６５】
印刷装置１１において、イメージ生成部３４は上記のいずれかの処理によって結果的に文字データＣＤ３を取得すると、必要に応じて解像度調整処理を行う。解像度調整処理は、印刷エンジン３７の印刷解像度に文字データＣＤ３の解像度を合わせる処理である。本実施形態では、印刷エンジン３７の印刷解像度が７２０ｄｐｉに設定されているので、ラスタ方向（読み出し方向）に解像度を２倍にして、３６０ｄｐｉを７２０ｄｐｉに解像度変換する。つまり、図８に示すように、ラスタ方向（同図における左右方向）において元々存在するドットＤ１（同図における黒丸でその値は大ドットの吐出を意味する「１１」の例）間に１個ドットＤ２（同図における白丸）を追加するとともに、その追加したドットＤ２の値を吐出なしを意味する「００」とすることにより、３６０ｄｐｉから７２０ｄｐｉに解像度を変換する。そして、解像度を高めた７２０ｄｐｉの文字データＣＤ４をイメージバッファ３６上に展開する。なお、印刷エンジン３７の仕様に応じて、ノズル配列方向に解像度を増やす解像度調整を行ってもよい。
【００６６】
イメージ生成部３４は、展開処理として、文字データを縦方向に展開する縦展開処理を行う。縦展開処理は、記録ヘッド１７を走査して印刷をするときにノズル１８からインク滴を吐出する順番に合わせてデータの順序を並び替える処理である。図９は縦展開処理後の文字データを示す。同図に示すように、文字データをラスタ方向（同図における左右方向）に所定バイト幅（本実施形態では２バイト幅）ずつ分割し、文字の縦方向（ノズル配列方向）と平行かつ所定バイト幅のデータ列を、文字の読み出し方向（ラスタ方向）の順番に順次イメージバッファ３６上に縦列に並べる書き込みを行って縦展開処理は実施される。図９において縦展開処理後の文字データＣＤ５における升内の数字は、ドットデータの並び順を示し（但し同図における横方向はバイト表現）、太線で分断された２バイト幅のデータ列は、実際にはドットデータの順番でイメージバッファ３６上に縦列に格納される。
【００６７】
図９に示すように、文字データを２バイト幅で縦方向に展開する場合、一文字分のラスタ方向の幅が９バイトと奇数バイト幅であるので、最後の書込みアドレスが９バイト目となる。イメージ生成部３４は、イメージバッファ３６への書込みアドレスをカウンタで管理しており、奇数バイト目（例えば１バイト目）のアドレスから奇数バイト幅（９バイト幅）の文字データを書き込んだ場合、奇数アドレス境界が後端で発生する。次に、例えば文字「Ｂ」を書き込む場合、前の文字データが９バイトの幅なので、奇数アドレス境界が先端で発生する。そのため、文字「Ｂ」の文字データのうちその１バイト目を、文字「Ａ」の最後の書込みアドレス（９バイト目）と２バイト幅のデータ列を形成するように次のアドレスである１０バイト目のバイト列に書き込む。すなわち、次の文字を展開するときに最後に書き込まれたバイト列を示すアドレスが奇数バイト目であるときは、次の文字データをカウンタの奇数値に「１」を加えた偶数番目のバイト列から書込みを開始する。なお、図９は、解像度調整を行わなかった文字データを展開した例である。
【００６８】
こうして２バイト幅のデータ列ずつイメージバッファ３６の領域上に１列に縦展開されたデータは、ドット形成順序でイメージバッファ３６から印刷エンジン３７の印刷駆動回路３８へ転送される。
【００６９】
以上詳述したように、本実施形態によれば、以下の効果を得ることができる。
（１）文字の横方向のビット数Ｎｂと「８」との最小公倍数であって、その最小公倍数をビット数Ｎｂで割った値である拡張倍率Ｑが印刷エンジン３７で処理可能な１ドットを表現するビット数に等しくなるような最小公倍数を設定した。そして、文字データを拡張方向に設定した最小公倍数と等しいビット数となるように拡張する拡張ステップ、縦横変換ステップ、左右反転ステップを、ドットインパクト用の２値の文字データに施して、印刷エンジン３７で処理可能な多値の文字データを生成した。よって、ドットインパクト用の２値の文字データを基に、読み出し方向が文字の横方向（ラスタ方向）となる向きでその読み出し方向（文字の横方向）のビット数が８の倍数となり、かつ１ドットが印刷エンジン３７で処理可能に階調値表現された多値の文字データを生成できる。
【００７０】
（２）拡張ステップでは、ビット数Ｎｂと「８」との公倍数のうち選択した公倍数Ｊから定まる拡張倍率Ｑ（＝Ｊ／Ｎｂ）が、印刷エンジン３７で処理可能な１ドットを表現するビット数「２」に等しい。言い換えれば、選択した公倍数Ｊは、ビット数Ｎｂに印刷エンジン３７で処理可能な１ドットを表現するビット数「２」を乗じた値に等しい。よって、１ドットを２値の表現から印刷エンジン３７で処理可能な多値の表現に変換する多値化処理を行えば、文字の横方向のビット数が選択された公倍数になるように、文字データが拡張方向（文字の横方向）に拡張される。すなわち、多値化処理が拡張処理を兼ねるので、処理が少なく済む。
【００７１】
（３）選択された公倍数から定まる拡張倍率Ｑが、印刷エンジン３７で処理可能な１ドットを表現するビット数に２以上の自然数を乗じた値である場合は、拡張処理において、多値化処理によって文字の横方向（ラスタ方向）に多値表現で配列されるドット間に相当する位置に記録なしを意味するドットの階調値を追加するようにした。このため、拡張倍率Ｑが、印刷エンジン３７で処理可能な１ドットを表現するビット数Ｋに等しくなくても、その拡張倍率Ｑが、１ドットを表現するビット数Ｋに２以上の自然数を乗じた値である場合は、印刷エンジン３７が処理可能な文字データを生成できる。この生成された文字データは、１ドットを印刷エンジン３７で処理可能な多値で表現されるうえ、設定された公倍数（拡張ビット数）から定まる拡張倍率Ｑで文字データを文字の横方向（ラスタ方向）に拡張したものとなって、読み出し方向（文字の横方向）のビット数が８の倍数となる。しかも、ドット間に追加された階調値は、記録なしを意味するので、印刷エンジン３７が記録処理を行うときには記録されず、本来のドットのみを記録対象とすることができる。
【００７２】
（４）２値の文字データとして文字の横方向のビット数Ｎｂと「８」との最小公倍数から定まる拡張倍率Ｑが、印刷エンジン３７で処理可能な１ドットのビット数Ｋと一致する条件を満たすビット数Ｎｂをもつ文字データＣＤ１を採用した。よって、拡張ステップで拡張処理後のビット数として最小公倍数を採用でき、２値の文字データＣＤ１から変換して生成した多値の文字データＣＤ３を、極力小さなデータサイズに抑えることができる。
【００７３】
（５）拡張処理を縦横変換処理の過程で実施したので、読出し書込回数を相対的に減らして、比較的高速にビットマップ生成処理を実行できる。
（６）パーソナルコンピュータ等を用いてビットマップ生成方法により生成した多値の文字データＣＤ３を予めキャラクタジェネレータ３５に記憶し、展開処理手段としてのイメージ生成部３４が、キャラクタジェネレータ３５から取得した多値の文字データを展開処理して印刷エンジン３７に送出する構成を提供した。よって、印刷装置１１の内部では、キャラクタジェネレータ３５から取得した多値の文字データを展開処理するだけでよいので、印刷装置１１内の処理を簡単に済ませられる。
【００７４】
（７）印刷装置１１内のキャラクタジェネレータ３５に２値の文字データを記憶しておき、イメージ生成部３４がキャラクタジェネレータ３５から読み出された２値の文字データを基に、ビットマップ生成方法を用いて多値の文字データを生成する構成を提供した。よって、ドットインパクト用の文字データが格納されたキャラクタジェネレータ３５をそのまま用いて、印刷装置１１内でインクジェット用の多値の文字データを取得できる。
【００７５】
（８）ＡＳＩＣ３９は、本実施形態のビットマップ生成方法を実行するプログラムが作り込まれた電気回路部（集積回路部）を有する。このため、ＡＳＩＣ３９を印刷装置１１に内蔵することにより、２値の文字データが記憶されたキャラクタジェネレータ３５を実装する印刷装置１１内で、２値の文字データを多値の文字データに変換することが可能になる。
【００７６】
なお、前記実施形態に限定されず、以下の形態も実施することもできる。
（変形例１）前記実施形態では、ドットインパクト用の文字データはノズル配列方向（インパクトワイヤ配列方向）のドット数（ビット数Ｎｂ）が３６ドット（３６ビット）であったが、これに限定されない。文字データにおけるノズル配列方向のドット数（ビット数Ｎｂ）の値は特に限定されない。ビット数Ｎｂは、例えば２８、５２、７６、１００ビットなどでもよい。これらの場合、「８」との最小公倍数から定まる拡張倍率Ｑは、いずれも多値の文字データの１ドットを表現するビット数Ｋに等しく「２」であり、多値に変換した後の文字データの文字の横方向（読み出し方向）のバイト数は、それぞれ、「７」「１３」「１９」「２５」となる。
【００７７】
（変形例２）前記実施形態では、ドットインパクト用の文字データを、処理対象の元データとしたが、処理対象はドットインパクト用の文字データに限定されない。要するに、印刷装置１１の印刷エンジン３７で処理可能な文字データとするために、縦横変換、左右反転、拡張処理（多値化処理）が必要となる２値の文字データであれば足りる。このような文字データであれば、元々適用されていた印刷装置の記録方式は特に限定されない。例えばレーザープリンタ用の文字データであっても構わない。
【００７８】
（変形例３）左右反転ステップ、拡張ステップ、縦横変換ステップは、前記実施形態における順序に限定されず、適宜順序を変更できる。すなわち、これら各ステップは順不同に実施してよい。前記実施形態では、縦横変換処理と拡張処理を一緒に行ったが、読出・書込回数が増えはするものの、それぞれ個別の処理として実施してよい。この場合、例えば左右反転ステップをα、縦横変換ステップをβ、拡張ステップをγとすると、以下のいずれの順番も採用できる。（１番目，２番目，３番目）＝（α，β，γ）、（α，γ，β）、（β，α，γ）、（β，γ，α）、（γ，α，β）、（γ，β，α）。また、拡張処理を左右反転処理の過程で行うこともできる。
【００７９】
（変形例４）前記実施形態では、印刷装置内でビットマップ生成処理を実施する構成として、ビットマップ生成装置をＡＳＩＣ３９に電子回路部として内蔵し、キャラクタジェネレータ３５から読み出した文字データＣＤ１をＡＳＩＣ３９内のイメージ生成部３４がビットマップ生成処理を行う構成とした。これに替えて、キャラクタジェネレータ３５内にビットマップ生成装置の電子回路部を組み込んで、キャラクタジェネレータ３５からビットマップ生成処理後の多値の文字データを取得する構成も採用できる。
【００８０】
（変形例５）前記実施形態では、ＡＳＩＣ３９内の電子回路部にビットマップ生成方法のプログラム（図５）を作り込むことでハードウェアにより実現したが、例えば印刷装置１１内のＣＰＵがビットマップ生成方法のプログラムを実行することでソフトウェアにより実現することもできる。さらにハードウェアとソフトウェアとの協働によりビットマップ生成装置を実現することもできる。
【００８１】
（変形例６）前記実施形態では、キャラクタジェネレータ３５に格納された文字データ（フォントデータ）は、ビットマップフォントであったが、アウトラインフォントでもよい。例えばアウトラインフォントから既存のラスタライザにより生成したビットマップフォントを処理対象として、本発明のビットマップ生成方法を適用することもできる。
【００８２】
（変形例７）前記実施形態では、印刷動作と紙送り動作を交互に行って印刷を行うシリアルプリンタに適用したが、シリアルプリンタに限定されない。ページプリンタに適用することもできる。この場合、レーザープリンタ、最大用紙幅の全域に渡りノズルを有するラインヘッド型の記録ヘッドを有するインクジェット式の印刷装置などに適用できる。
【００８３】
以下、前記実施形態および各変形例から把握される技術的思想を記載する。
（１）前記文字データの解像度を前記印刷エンジンの印刷解像度に変換する解像度変換ステップを更に備えたことを特徴とする請求項１乃至５のいずれか一項に記載のビットマップ生成方法。これによれば、文字データの解像度を印刷エンジンの印刷解像度に合わせることができる。
【００８４】
（２）前記拡張手段において前記選択された公倍数は、該公倍数を文字の横方向のビット数で割った値である拡張倍率が前記印刷エンジンで処理可能な１ドットを表現するビット数に等しいことを特徴とする請求項８に記載のビットマップ生成装置。
【００８５】
（３）前記多値化処理では、２値で表現された記録なしを意味する値を、多値で表現された記録なしを意味する値に変換するとともに、２値で表現された記録ありを意味する値を、多値で表現された記録ありを意味する値に変換することを特徴とする請求項１乃至４及び前記技術的思想（１）、（２）のうちいずれか一項に記載のビットマップ生成方法。
【００８６】
（４）前記縦横変換ステップと前記左右反転ステップは、読み出した文字データを読み出し位置と異なる位置へ書き込むことにより該当する縦横変換処理と左右反転処理をそれぞれ行い、前記拡張ステップは、前記縦横変換ステップと前記左右反転ステップのうち一方のステップにおいて読み出した文字データに対して書き込み前に拡張処理を施すことにより行われることを特徴とする請求項１乃至４、及び前記技術的思想（１）乃至（３）のうちいずれか一項に記載のビットマップ生成方法。
【図面の簡単な説明】
【００８７】
【図１】一実施形態における印刷装置の斜視図。
【図２】印刷装置の電気的構成を示すブロック図。
【図３】印刷駆動回路の電気的構成を示すブロック図。
【図４】ビットマップ生成装置の電気的構成を示すブロック図。
【図５】ビットマップ生成処理を示すフローチャート。
【図６】（ａ）（ｂ）２値の文字データを示すデータ図、（ｃ）１バイトを示す模式図。
【図７】（ａ）多値の文字データを示すデータ図、（ｂ）多値化処理の説明図。
【図８】解像度変換処理の説明図。
【図９】展開処理を説明するデータ図。
【符号の説明】
【００８８】
１１…印刷装置、１６…キャリッジモータ、１７…記録ヘッド、１８…ノズル、２２…紙送りモータ、３１…受信部、３２…解釈部、３３…制御部、３４…展開処理手段としてのイメージ生成部、３５…文字記憶部としてのキャラクタジェネレータ、３６…イメージバッファ、３７…印刷エンジン、３８…印刷駆動回路、３９…集積回路としてのＡＳＩＣ、４５…吐出駆動素子、５０…ビットマップ生成手段としてのビットマップ生成装置、５１…主制御部、５２…メモリ、５３…演算部、５４…左右反転部、５５…縦横変換部、５６…拡張処理部、Ｊ…公倍数、Ｎｂ…横ビット数としてのビット数、Ｋ…印刷エンジンで処理可能な１ドットを表現するビット数、Ｑ…拡張倍率、ＣＤ１…２値の文字データ、ＣＤ３…多値の文字データ。
【図１】
2008073960.tif 000003
【図２】
2008073960.tif 000004
【図３】
2008073960.tif 000005
【図４】
2008073960.tif 000006
【図５】
2008073960.tif 000007
【図６】
2008073960.tif 000008
【図７】
2008073960.tif 000009
【図８】
2008073960.tif 000010
【図９】
2008073960.tif 000011