(57)【要約】【課題】入力される印刷データを最終的な画像データとして生成する際に、矩形描画やイメージ描画処理を高速化し、イメージの回転を含むデータを描画する際の処理を高速化するようにする。【解決手段】プリンタコントローラ１２によってイメージを描画する場合、図形描画処理を行う図形描画処理部１２２が任意ワード幅のイメージ描画を可能とする任意ワード幅イメージ描画関数部１２５と、１ワード幅に限定したイメージ描画を行う１ワード幅限定イメージ描画関数部１２６の２種類を持っている。図形描画処理部１２２は、描画イメージが１１ワード幅に収まる描画範囲か否か、あるいは処理速度に応じて任意ワード幅イメージ描画関数部１２５と１ワード幅限定イメージ描画関数部１２６とを適宜切り替えながら描画処理する。【選択図】        図２
2008006803.tif 000002
【特許請求の範囲】
【請求項１】
生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行う図形描画処理手段と、
前記図形描画処理手段のレンダラ環境として、メモリワード幅を最小単位としてメモリアクセスを行うレンダリングエンジンが存在する際に、
任意の高さを持つ任意のワード幅にアクセス可能な任意ワード幅描画手段と、
任意の高さを持つ１ワード幅限定でアクセス可能な１ワード幅限定描画手段と
を備え、前記図形描画処理手段が前記任意ワード幅描画手段と前記１ワード幅限定描画手段とを適宜切り替えながら描画処理することを特徴とする印刷データ処理装置。
【請求項２】
前記図形描画処理手段によってイメージ描画コマンドを描画する場合は、
前記任意ワード幅描画手段が任意ワード幅イメージ描画関数手段であって、
前記１ワード幅限定描画手段が１ワード幅限定イメージ描画関数手段であることを特徴とする請求項１に記載の印刷データ処理装置。
【請求項３】
前記図形描画処理手段によって矩形描画コマンドを描画する場合は、
前記任意ワード幅描画手段が任意ワード幅矩形描画関数手段であり、
前記１ワード幅限定描画手段が１ワード幅限定矩形描画関数手段であることを特徴とする請求項１に記載の印刷データ処理装置。
【請求項４】
前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、
必要に応じてディザリングなどの階調処理をワード幅単位で行うことを特徴とする請求項２または３に記載の印刷データ処理装置。
【請求項５】
前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、
必要に応じてＲＯＰなどの演算処理をワード幅単位で行うことを特徴とする請求項２または３に記載の印刷データ処理装置。
【請求項６】
前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、
必要に応じてブラシなどのパターン生成処理をワード幅単位で行うことを特徴とする請求項２または３に記載の印刷データ処理装置。
【請求項７】
前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、
必要に応じてイメージなどのビットマップ展開処理をワード幅単位で行うことを特徴とする請求項２または３に記載の印刷データ処理装置。
【請求項８】
前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、
必要に応じてマスクなどの描画と非描画の選択処理をワード幅を単位として、ワードのビットパターンとして行うことを特徴とする請求項２または３に記載の印刷データ処理装置。
【請求項９】
前記図形描画処理手段が２ワード幅もしくは任意のワード幅以下で描画する際に、前記任意ワード幅描画手段を使用した場合よりも、前記１ワード限定描画手段を必要な回数だけ使用した場合の方が処理速度が速くなる場合は、１ワード限定描画手段を使用して描画することを特徴とする請求項４〜８のいずれか一つに記載の印刷データ処理装置。
【請求項１０】
生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行う図形描画処理手段と、
イメージデータの回転処理もしくは分割処理を行うイメージ処理手段と
を備え、
前記イメージ処理手段によりページ回転を行ってイメージを描画する際に、イメージデータをいくつかのイメージに分割し、その後回転処理することを特徴とする印刷データ処理装置。
【請求項１１】
前記イメージ処理手段によるイメージデータの分割は、回転後の描画先において縦に細長くなり、１ワード以上４ワード未満の幅となる場合に行うことを特徴とする請求項１０に記載の印刷データ処理装置。
【請求項１２】
前記イメージ処理手段によるイメージデータの分割は、回転前のイメージを上下に分けるように分割することを特徴とする請求項１０または１１に記載の印刷データ処理装置。
【請求項１３】
前記イメージ処理手段において分割されたイメージデータは、中間データとする段階で複数のイメージ描画コマンドにすることを特徴とする請求項１２に記載の印刷データ処理装置。
【請求項１４】
前記イメージ処理手段において分割されたイメージデータは、中間データとする段階で１つのイメージ描画コマンドに複数のイメージデータが結合された形で保存することを特徴とする請求項１２に記載の印刷データ処理装置。
【請求項１５】
前記イメージ処理手段によるイメージデータの分割は、回転後の描画先でのページメモリのワード境界によって行うことを特徴とする請求項１３または１４に記載の印刷データ処理装置。
【請求項１６】
印刷データをレンダリング処理する前記図形描画処理手段が任意のワード幅にアクセス可能な任意ワード幅イメージ描画関数手段と、１ワード幅限定でアクセス可能な１ワード幅限定イメージ描画関数手段とを選択使用可能な場合に、
前記イメージ処理手段において分割されたイメージデータを描画する際に、前記１ワード幅限定イメージ描画関数手段を優先使用することを特徴とする請求項１５に記載の印刷データ処理装置。
【請求項１７】
印刷データをレンダリング処理する前記図形描画処理手段が任意のワード幅にアクセス可能な任意ワード幅イメージ描画関数手段と、１ワード幅限定でアクセス可能な１ワード幅限定イメージ描画関数手段とを選択使用可能な場合に、
イメージの高さをパラメータとして前記イメージ処理手段による回転処理を加えても、前記任意ワード幅イメージ描画関数手段を用いた方が、前記イメージ処理手段により分割して回転を行い、前記１ワード幅限定イメージ描画関数手段を用いた場合よりも高速に描画できるのであれば、分割せずに前記任意ワード幅イメージ描画関数手段を優先使用することを特徴とする請求項１５に記載の印刷データ処理装置。
【請求項１８】
１ワード幅以下のイメージであって、描画先においてワード境界にまたがる場合は、
前記任意ワード幅イメージ描画関数手段を使用するより、前記１ワード幅限定イメージ描画関数手段を２回呼び出した方が処理が速くなる場合は、前記イメージ処理手段によりイメージを分割処理して前記１ワード幅限定イメージ描画関数手段を用いることを特徴とする請求項１６または１７に記載の印刷データ処理装置。
【請求項１９】
生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行う図形描画処理手段と、
イメージデータの回転処理もしくは分割処理を行うイメージ処理手段と、
前記イメージデータが環境に応じて求めたイメージデータのサイズに該当するか否かを判定するサイズ判定処理手段と
を備え、前記図形描画処理手段によるレンダリング処理前に、前記サイズ判定処理手段が環境に応じて求めたイメージデータのサイズに該当すると判定すると、前記イメージデータを前記イメージ処理手段でいくつかのイメージに分割し、回転処理を行うことを特徴とする印刷データ処理装置。
【請求項２０】
前記サイズ判定処理手段は、少なくとも環境によるパラメータを判定する処理と、印刷ページ、印刷データに依存するパラメータを判定する処理とを独立して処理することを特徴とする請求項１９に記載の印刷データ処理装置。
【請求項２１】
前記環境によるパラメータは、少なくともいくつかの細長いイメージを９０°回転や２７０°回転する時間と、縦に細長いイメージを仮想ページメモリに描画する時間とを用いることを特徴とする請求項２０に記載の印刷データ処理装置。
【請求項２２】
前記環境によるパラメータは、少なくとも連続メモリ領域に対するアクセススピードと、その環境のバースト長を超える間隔を持ったアドレスに対するアクセススピードとを用いることを特徴とする請求項２０に記載の印刷データ処理装置。
【請求項２３】
前記印刷データに依存するパラメータは、少なくともページ情報の解像度深さを持ち、イメージサイズの決定に使用することを特徴とする請求項２０に記載の印刷データ処理装置。
【請求項２４】
前記環境によるパラメータを用いた判定は、装置の起動時に一度だけ行い、それ以降はその結果を使用することを特徴とする請求項２１または２２に記載の印刷データ処理装置。
【請求項２５】
前記イメージデータの作成環境と実行環境が同じ場合は、環境による判定を別処理部とし、高速化処理が載っている本体を作成する前に、独立した判定部を実行して必要な情報を集め、定数として本体の作成時に組み込むことを特徴とする請求項２１または２２に記載の印刷データ処理装置。
【請求項２６】
前記印刷データに依存するパラメータによって判定を行う場合は、ページの始めやジョブの始めといった必要最低限の回数だけで処理することを特徴とする請求項２３に記載の印刷データ処理装置。
【請求項２７】
前記パラメータによる判定処理は、専用の判定処理時間を用いずに、他の目的を持った既存関数の処理時間を用いることを特徴とする請求項２０に記載の印刷データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナル・コンピュータ（以下、ＰＣという）などで生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行って描画処理する印刷データ処理装置に関するものである。
【背景技術】
【０００２】
従来、任意の矩形状のマスクパターンを用いた描画処理を行う際に、ワード単位で高速にメモリにアクセスできるようにすることにより、ページメモリへの描画処理の高速化を可能とした画像出力装置が開示されている（特許文献１参照）。
【０００３】
また、図形描画命令に従って、濃度に対応するビットマップパターンにより指定描画範囲をタイル状に敷き詰め、写真画像のように階調変化の緩やかな画像を対象にした図形描画命令の入力に対して、描画処理時間を低減し、高速処理を実現する画像処理装置が開示されている（特許文献２参照）。
【０００４】
【特許文献１】特開２００３−２４８８３４号公報
【特許文献２】特開２００４−１６４５４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記特許文献１にあっては、入力されたマスクパターンで描画演算する際に、ワード単位で単一ワードまたは複数ワードを繰り返し参照することで、シフト演算が不要となって、メモリアクセスが減少し、高速化することができる。しかしながら、マスクパターン幅を１ワード幅とするか複数ワード幅とするかは一律に決まっていたため、印刷データをレンダリング処理する際に、矩形描画やイメージ描画の状況に応じて逆に描画に時間がかかってしまうという課題があった。
【０００６】
また、上記特許文献２にあっては、指定されたページメモリ上の図形の描画範囲を指定された濃度に塗りつぶすという図形描画命令に従って、濃度に対応するビットマップパターンにより指定描画範囲をタイル状に敷き詰める描画処理を行うことにより、階調変化の緩やかな画像の図形描画命令に対して描画処理時間を短縮して、高速処理を実現するものである。しかしながら、イメージの回転を含むデータの描画処理の高速化については、解決手段が開示されていないという課題があった。
【０００７】
本発明は、上記に鑑みてなされたものであって、入力される印刷データを最終的な画像データとして生成する際に、矩形描画やイメージ描画処理を高速化する印刷データ処理装置を提供することを第１の目的とする。
【０００８】
また、イメージの回転を含むデータを描画する際の処理を高速化する印刷データ処理装置を提供することを第２の目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行う図形描画処理手段と、前記図形描画処理手段のレンダラ環境として、メモリワード幅を最小単位としてメモリアクセスを行うレンダリングエンジンが存在する際に、任意の高さを持つ任意のワード幅にアクセス可能な任意ワード幅描画手段と、任意の高さを持つ１ワード幅限定でアクセス可能な１ワード幅限定描画手段とを備え、前記図形描画処理手段が前記任意ワード幅描画手段と前記１ワード幅限定描画手段とを適宜切り替えながら描画処理することを特徴とする。
【００１０】
また、請求項２にかかる発明は、請求項１に記載の印刷データ処理装置において、前記図形描画処理手段によってイメージ描画コマンドを描画する場合は、前記任意ワード幅描画手段が任意ワード幅イメージ描画関数手段であって、前記１ワード幅限定描画手段が１ワード幅限定イメージ描画関数手段であることを特徴とする。
【００１１】
また、請求項３にかかる発明は、請求項１に記載の印刷データ処理装置において、前記図形描画処理手段によって矩形描画コマンドを描画する場合は、前記任意ワード幅描画手段が任意ワード幅矩形描画関数手段であり、前記１ワード幅限定描画手段が１ワード幅限定矩形描画関数手段であることを特徴とする。
【００１２】
また、請求項４にかかる発明は、請求項２または３に記載の印刷データ処理装置において、前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、必要に応じてディザリングなどの階調処理をワード幅単位で行うことを特徴とする。
【００１３】
また、請求項５にかかる発明は、請求項２または３に記載の印刷データ処理装置において、前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、必要に応じてＲＯＰなどの演算処理をワード幅単位で行うことを特徴とする。
【００１４】
また、請求項６にかかる発明は、請求項２または３に記載の印刷データ処理装置において、前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、必要に応じてブラシなどのパターン生成処理をワード幅単位で行うことを特徴とする。
【００１５】
また、請求項７にかかる発明は、請求項２または３に記載の印刷データ処理装置において、前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、必要に応じてイメージなどのビットマップ展開処理をワード幅単位で行うことを特徴とする。
【００１６】
また、請求項８にかかる発明は、請求項２または３に記載の印刷データ処理装置において、前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、必要に応じてマスクなどの描画と非描画の選択処理をワード幅を単位として、ワードのビットパターンとして行うことを特徴とする。
【００１７】
また、請求項９にかかる発明は、請求項４〜８のいずれか一つに記載の印刷データ処理装置において、前記図形描画処理手段が２ワード幅もしくは任意のワード幅以下で描画する際に、前記任意ワード幅描画手段を使用した場合よりも、前記１ワード限定描画手段を必要な回数だけ使用した場合の方が処理速度が速くなる場合は、１ワード限定描画手段を使用して描画することを特徴とする。
【００１８】
また、請求項１０にかかる発明は、生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行う図形描画処理手段と、イメージデータの回転処理もしくは分割処理を行うイメージ処理手段とを備え、前記イメージ処理手段によりページ回転を行ってイメージを描画する際に、イメージデータをいくつかのイメージに分割し、その後回転処理することを特徴とする。
【００１９】
また、請求項１１にかかる発明は、請求項１０に記載の印刷データ処理装置において、前記イメージ処理手段によるイメージデータの分割は、回転後の描画先において縦に細長くなり、１ワード以上４ワード未満の幅となる場合に行うことを特徴とする。
【００２０】
また、請求項１２にかかる発明は、請求項１０または１１に記載の印刷データ処理装置において、前記イメージ処理手段によるイメージデータの分割は、回転前のイメージを上下に分けるように分割することを特徴とする。
【００２１】
また、請求項１３にかかる発明は、請求項１２に記載の印刷データ処理装置において、前記イメージ処理手段において分割されたイメージデータは、中間データとする段階で複数のイメージ描画コマンドにすることを特徴とする。
【００２２】
また、請求項１４にかかる発明は、請求項１２に記載の印刷データ処理装置において、前記イメージ処理手段において分割されたイメージデータは、中間データとする段階で１つのイメージ描画コマンドに複数のイメージデータが結合された形で保存することを特徴とする。
【００２３】
また、請求項１５にかかる発明は、請求項１３または１４に記載の印刷データ処理装置において、前記イメージ処理手段によるイメージデータの分割は、回転後の描画先でのページメモリのワード境界によって行うことを特徴とする。
【００２４】
また、請求項１６にかかる発明は、請求項１５に記載の印刷データ処理装置において、印刷データをレンダリング処理する前記図形描画処理手段が任意のワード幅にアクセス可能な任意ワード幅イメージ描画関数手段と、１ワード幅限定でアクセス可能な１ワード幅限定イメージ描画関数手段とを選択使用可能な場合に、前記イメージ処理手段において分割されたイメージデータを描画する際に、前記１ワード幅限定イメージ描画関数手段を優先使用することを特徴とする。
【００２５】
また、請求項１７にかかる発明は、請求項１５に記載の印刷データ処理装置において、印刷データをレンダリング処理する前記図形描画処理手段が任意のワード幅にアクセス可能な任意ワード幅イメージ描画関数手段と、１ワード幅限定でアクセス可能な１ワード幅限定イメージ描画関数手段とを選択使用可能な場合に、イメージの高さをパラメータとして前記イメージ処理手段による回転処理を加えても、前記任意ワード幅イメージ描画関数手段を用いた方が、前記イメージ処理手段により分割して回転を行い、前記１ワード幅限定イメージ描画関数手段を用いた場合よりも高速に描画できるのであれば、分割せずに前記任意ワード幅イメージ描画関数手段を優先使用することを特徴とする。
【００２６】
また、請求項１８にかかる発明は、請求項１６または１７に記載の印刷データ処理装置において、１ワード幅以下のイメージであって、描画先においてワード境界にまたがる場合は、前記任意ワード幅イメージ描画関数手段を使用するより、前記１ワード幅限定イメージ描画関数手段を２回呼び出した方が処理が速くなる場合は、前記イメージ処理手段によりイメージを分割処理して前記１ワード幅限定イメージ描画関数手段を用いることを特徴とする。
【００２７】
また、請求項１９にかかる発明は、生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行う図形描画処理手段と、イメージデータの回転処理もしくは分割処理を行うイメージ処理手段と、前記イメージデータが環境に応じて求めたイメージデータのサイズに該当するか否かを判定するサイズ判定処理手段とを備え、前記図形描画処理手段によるレンダリング処理前に、前記サイズ判定処理手段が環境に応じて求めたイメージデータのサイズに該当すると判定すると、前記イメージデータを前記イメージ処理手段でいくつかのイメージに分割し、回転処理を行うことを特徴とする。
【００２８】
また、請求項２０にかかる発明は、請求項１９に記載の印刷データ処理装置において、前記サイズ判定処理手段は、少なくとも環境によるパラメータを判定する処理と、印刷ページ、印刷データに依存するパラメータを判定する処理とを独立して処理することを特徴とする。
【００２９】
また、請求項２１にかかる発明は、請求項２０に記載の印刷データ処理装置において、前記環境によるパラメータは、少なくともいくつかの細長いイメージを９０°回転や２７０°回転する時間と、縦に細長いイメージを仮想ページメモリに描画する時間とを用いることを特徴とする。
【００３０】
また、請求項２２にかかる発明は、請求項２０に記載の印刷データ処理装置において、前記環境によるパラメータは、少なくとも連続メモリ領域に対するアクセススピードと、その環境のバースト長を超える間隔を持ったアドレスに対するアクセススピードとを用いることを特徴とする。
【００３１】
また、請求項２３にかかる発明は、請求項２０に記載の印刷データ処理装置において、前記印刷データに依存するパラメータは、少なくともページ情報の解像度深さを持ち、イメージサイズの決定に使用することを特徴とする。
【００３２】
また、請求項２４にかかる発明は、請求項２１または２２に記載の印刷データ処理装置において、前記環境によるパラメータを用いた判定は、装置の起動時に一度だけ行い、それ以降はその結果を使用することを特徴とする。
【００３３】
また、請求項２５にかかる発明は、請求項２１または２２に記載の印刷データ処理装置において、前記イメージデータの作成環境と実行環境が同じ場合は、環境による判定を別処理部とし、高速化処理が載っている本体を作成する前に、独立した判定部を実行して必要な情報を集め、定数として本体の作成時に組み込むことを特徴とする。
【００３４】
また、請求項２６にかかる発明は、請求項２３に記載の印刷データ処理装置において、前記印刷データに依存するパラメータによって判定を行う場合は、ページの始めやジョブの始めといった必要最低限の回数だけで処理することを特徴とする請求項２３に記載の印刷データ処理装置。
【００３５】
また、請求項２７にかかる発明は、請求項２０に記載の印刷データ処理装置において、前記パラメータによる判定処理は、専用の判定処理時間を用いずに、他の目的を持った既存関数の処理時間を用いることを特徴とする。
【発明の効果】
【００３６】
本発明にかかる印刷データ処理装置によれば、生成された印刷データを図形描画処理手段によってバンドメモリもしくはページメモリに対してレンダリング処理が行われる。図形描画処理手段のレンダラ環境としては、メモリワード幅を最小単位としてメモリアクセスを行うレンダリングエンジンが存在し、任意の高さを持つ任意のワード幅にアクセス可能な任意ワード幅描画手段と、任意の高さを持つ１ワード幅限定でアクセス可能な１ワード幅限定描画手段とを具備している。図形描画処理手段は、任意ワード幅描画手段と１ワード幅限定描画手段とを適宜切り替えながら描画処理する。このように、印刷データをバンドメモリもしくはページメモリに対してレンダリング処理する際に、メモリへのアクセスをメモリのワード長を単位として行うと処理効率が向上する。ここでは、図形描画処理手段が任意のワード幅を描画可能な任意ワード幅描画手段と、１ワード限定の１ワード幅限定描画手段の２種類を選択可能に具備し、その切り替えの判断も図形描画処理手段が行うことができる。このため、単にワード幅だけで、任意ワード幅描画手段と１ワード幅限定描画手段とを選択するのではなく、より処理が速くなる方を選択して描画処理を実行させることができるという効果を奏する。
【００３７】
また、別の発明にかかる印刷データ処理装置によれば、生成された印刷データを図形描画処理手段によりバンドメモリもしくはページメモリに対してレンダリング処理が行われる。また、イメージ処理手段によりイメージデータの回転もしくは分割処理が行われる。そして、イメージ処理手段によってページ回転処理を行いイメージの描画処理を行う際に、イメージデータをいくつかのイメージに分割し、その後回転処理を行うようにする。このように、イメージを回転させる場合、イメージ処理手段によってイメージデータをいくつかのイメージに分割し、その後回転処理を行うため、回転処理速度と描画処理速度のバランスをとって処理速度を高速化できるという効果を奏する。
【００３８】
また、別の発明にかかる印刷データ処理装置によれば、生成された印刷データを図形描画処理手段によりバンドメモリもしくはページメモリに対してレンダリング処理を行う前に、サイズ判定処理手段が環境に応じて求めたイメージデータのサイズに該当するか否かを判定し、該当する場合はイメージ処理手段がイメージデータをいくつかのイメージに分割した後、回転処理を行うようにする。このように、図形描画処理手段によるレンダリング処理前に、イメージデータが環境に応じて求めたイメージデータのサイズに該当するか否かを判定し、該当する場合のみ回転処理や分割処理を行うようにしたため、環境に応じて処理速度を高速化できるという効果を奏する。
【発明を実施するための最良の形態】
【００３９】
以下に、本発明にかかる印刷データ処理装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００４０】
（第１の実施の形態）
図１は、印刷データ処理装置としてのプリンタコントローラの概略構成を説明するブロック図である。図１に示すプリンタコントローラ１２は、ホストＰＣ１１から印刷データが送られてくると、インタープリタ実行部１２０が印刷データを受け取って中間データメモリ１２１に保存する。そして、中間データメモリ１２１から印刷データが図形描画処理部１２２に渡され、描画はページメモリ１２３に対して行われる。実際に印刷を行うプリンタエンジン１３は、ページメモリ１２３における描画結果を参照して紙面へ印刷する。
【００４１】
このように、プリンタで描画する場合、印刷データは描画コマンドの集合としてホストＰＣ１１からプリンタコントローラに渡される。描画コマンドの中には、文字、グラフィック、イメージなどの種類があってそれぞれに特徴がある。
【００４２】
図２は、第１の実施の形態にかかるプリンタコントローラの概略構成を説明するブロック図である。イメージを描画する場合、図２に示すように、印刷データとしてのイメージ描画コマンドにより描画開始座標、イメージの幅、高さなどの情報を持つ矩形描画領域に指定されたイメージデータをページメモリ１２３に貼り付ける描画処理が行われる。この時、ページメモリ１２３へのアクセスをその環境のメモリワード長を単位として行うことで処理効率が良くなり、描画処理を高速化することができる。そして、指定された描画範囲がメモリワード境界と等しくない場合は、左右両端を適宜マスクすることにより、不要な領域への描画を行わないようにすることができる。
【００４３】
第１の実施の形態にかかるプリンタコントローラ１２の特徴的な構成としては、図形描画処理を行う図形描画処理部１２２が任意ワード幅のイメージ描画を可能とする任意ワード幅イメージ描画関数部１２５と、１ワード幅（以下、１ＬＯＮＧともいう）に限定したイメージ描画を行う１ワード幅限定イメージ描画関数部１２６の２種類を持っていて、選択的に使用可能とした点にある。これにより、描画イメージが１ＬＯＮＧ幅（１ワード幅）に収まる描画範囲か否かで、任意ワード幅イメージ描画関数部１２５と１ワード幅限定イメージ描画関数部１２６とを切り替えて描画することができる。ここでは、描画関数の切り替えを図形描画処理部１２２で判定するようにした。
【００４４】
図３は、イメージ描画先のページメモリに対してイメージの描画範囲を示した図である。図３に示すように、イメージ描画先の座標が分かれば、描画幅が１ＬＯＮＧ内に収まるか否かが直ぐに求められ、ページメモリ１２３へアクセスするまでにどちらの描画関数部を使用すれば良いかを容易に判定することができる。すなわち、図３では、１ワードが１ＬＯＮＧ＝３２ｂｉｔ（３２ピクセル）の環境であれば、イメージの描画範囲のＸ座標が３２ｂｉｔ，６４ｂｉｔ，９６ｂｉｔ…にかからないか否かによって判定することができる。
【００４５】
図４は、任意ワード幅イメージ描画関数部における処理手順を説明するフローチャートであり、図５は、１ワード幅限定イメージ描画関数部における処理手順を説明するフローチャートであり、図６は、ページメモリに対する種々のイメージの描画範囲を示す図である。図２に示す任意ワード幅イメージ描画関数部１２５では、図４に示すように、大きなループとしてＹ方向のループがあり、その内側にはＸ方向のループがあって、１ＬＯＮＧ毎にページメモリ１２３へアクセスが行われる。
【００４６】
すなわち、図２の任意ワード幅イメージ描画関数部１２５では、図４に示すように、Ｙ方向の初期化処理を行った後（ステップＳ１００）、Ｙ方向のループが開始され（ステップＳ１０１）、Ｙ方向の設定処理が行われ（ステップＳ１０２）、続くステップＳ１０３では、Ｘ方向の初期化処理が行われ、Ｘ方向のループが開始され（ステップＳ１０４）、Ｘ方向の設定処理が行われる（ステップＳ１０５）。このようにして、１ワード幅（１ＬＯＮＧ）の描画が行われる（ステップＳ１０６）。
【００４７】
また、次のワード幅（ＬＯＮＧ）に対しても、同様にＹ方向のループとＸ方向のループが繰り返され、描画範囲が終わると、Ｘ方向のループが終了し（ステップＳ１０７）、Ｙ方向のループも終了する（ステップＳ１０８）。
【００４８】
この任意ワード幅イメージ描画関数部１２５での処理をさらに具体的に説明すると、ソースイメージデータから描画対象となる部分を抜き出し、１ＬＯＮＧ分のディザリングを行い、必要に応じて該当する座標のブラシパターンを１ＬＯＮＧ分取得して、ページメモリ１２３の１ＬＯＮＧ分とＲＯＰ演算を行う。イメージ描画範囲の両端であればマスクを施し、その結果をページメモリに書き戻す。そして、Ｘ方向の描画範囲が続いている間は、次のＬＯＮＧに対しても同様の処理が行われる。
【００４９】
ここで、ディザパターンが１ＬＯＮＧよりも大きなサイズを持つ場合などは、Ｘ方向にＬＯＮＧが移動する度にディザパターンの計算もしくは取得という処理が発生する。このような処理は、ディザパターン以外のブラシパターンなどでも必要となる。
【００５０】
また、Ｘ方向と独立したＹ方向においてもディザパターンやブラシパターンを取得するための処理が必要となる。このように、Ｘ方向とＹ方向に独立している処理は、１ＬＯＮＧ当たりに必要なディザやブラシなどの機能の種類と、その描画範囲に比例して処理量が増大することになる。このため、メモリへのアクセスは、メモリバーストなどの機能によって連続したアドレスに対する方が、飛び飛びのアドレスの場合よりも速く処理することが可能となり、この手法を用いることにより一定以上の幅を持つイメージの描画効率が良くなる。
【００５１】
一方、図２に示す１ワード幅限定イメージ描画関数部１２６では、図５に示すように、Ｙ方向の初期化処理を行った後（ステップＳ２００）、Ｙ方向のループが開始され（ステップＳ２０２）、Ｙ方向の設定処理が行われる（ステップＳ２０３）ため、Ｙ方向のループは図４と同じである。しかし、Ｘ方向は、ステップＳ２０１において、Ｘ方向の初期化と設定処理を行うだけで、Ｘ方向のループを持たなくて良くなる。
【００５２】
すなわち、Ｙ方向でのディザパターンやブラシパターン用の処理は、任意ワード幅イメージ描画関数部１２５と変わらないが、Ｘ方向についての処理がかなり簡素化できることがわかる。このため、１ＬＯＮＧ当たりの命令コード自体が少なくなり、処理速度が向上する。またそれによって、ＣＰＵキャッシュに載る確率が上がり、ヒット率が上昇する等の利点がある。逆に、１ワード幅限定イメージ描画関数部１２６では、一度の関数コールで２ＬＯＮＧ以上の幅を持つイメージを描画することはできない。
【００５３】
上記した任意ワード幅イメージ描画関数部１２５と１ワード幅限定イメージ描画関数部１２６との使い分けに従うと、図６の種々のイメージの描画範囲のうち、イメージ１およびイメージ３は描画幅が１ワード幅（１ＬＯＮＧ）に収まっていないため、任意ワード幅イメージ描画関数部１２５を使って描画することになる。また、イメージ２は、１ワード幅（１ＬＯＮＧ）内に収まっているため、１ワード幅限定イメージ描画関数部１２６を使って描画することになる。
【００５４】
以上述べたように、第１の実施の形態によれば、ページメモリに描画されるイメージの描画範囲が１ワード幅（１ＬＯＮＧ）に収まっているか否かを図形描画処理部１２２で判断して、任意ワード幅イメージ描画関数部１２５と１ワード幅限定イメージ描画関数部１２６とを使い分けることで描画効率が向上し、イメージ描画を高速化することができる。
【００５５】
（第２の実施の形態）
第２の実施の形態の特徴は、例えば２ワード幅のイメージを描画する際に、上記した任意ワード幅イメージ描画関数部１２５を使用する場合よりも、１ワード幅限定イメージ描画関数部１２６を２回呼び出した方が処理速度の速くなる環境であれば、１ワード幅限定イメージ描画関数部１２６を選択するものである。
【００５６】
図７は、イメージデータを予めページメモリのワード境界で２つに分かれるように分割したイメージの描画範囲を示す図である。図７のページメモリに描画されたイメージは、何れもワード境界にかかっているため、イメージ３Ａと３Ｂ、イメージ４Ａと４Ｂのように、あらかじめページメモリのワード境界で縦方向に２つに分かれるように分割しておく。イメージをワード境界で２つに分割するのは、図２に示すインタープリタ実行部１２０によってイメージデータを中間データに変換する際に分割するのが容易であるが、必ずしもこれに限定されない。
【００５７】
以上述べたように、第２の実施の形態によれば、１ワードよりも広い幅を持つイメージデータ（イメージ４Ａ＋イメージ４Ｂ）、あるいは最小で幅２ピクセルのイメージが２ワードにまたがるイメージデータ（イメージ３Ａ＋イメージ３Ｂ）であっても、図形描画処理部１２２が１ワード幅限定イメージ描画関数部１２６を２回呼び出して処理することにより、任意ワード幅イメージ描画関数部１２５を使用するよりも速い描画処理を期待することができる。
【００５８】
なお、第２の実施の形態では、２ワードにまたがる描画範囲を持ったイメージの描画について説明したが、３ワード以上にまたがる描画範囲のイメージであっても、１ワード幅限定イメージ描画関数部１２６を繰り返し呼び出す方が任意ワード幅イメージ描画関数部１２５を使用するよりも速く処理できる場合であれば、同様に適用することが可能である。
【００５９】
また、上記した第１および第２の実施の形態では、イメージ描画を例にあげて説明したが、これに限定する趣旨ではなく、矩形描画についてもイメージ描画の場合と描画範囲について同様であるため、重複説明を省略する。従って、矩形描画を行う場合についても、上記イメージ描画の場合と同様に描画処理を高速化できるという効果が得られる。
【００６０】
（第３の実施の形態）
図８は、第３の実施の形態にかかるプリンタコントローラの概略構成を説明するブロック図であり、図９は、右９０度回転前は横長で回転後は縦長となるイメージを読み込む場合のメモリジャンプの発生を説明する図であり、図１０は、９０度回転後のイメージ幅の狭いイメージを説明する図であり、図１１は、横に細長いイメージを９０度回転する場合にさらに細長くなるよう上下に分割処理したイメージを説明する図である。
【００６１】
第３の実施の形態にかかるプリンタコントローラ１２の特徴は、図８に示すように、ホストＰＣ１１から送られてくる印刷データ（イメージデータ）をインタープリタ実行部１２０で解釈して実行する際に、イメージの回転処理あるいは分割処理を行うイメージ処理部１２７を備えた点にある。
【００６２】
イメージデータをインタープリタ実行部１２０で解釈して実行する場合は、使用可能メモリ量によって分割されることがある。この時のイメージの多くの場合、上下方向に分かれるため幅広で高さの低いイメージの連なりとなる。プリンタコントローラ１２でページ右９０度回転を行うときは、横長のイメージに対してイメージ処理部１２７により回転処理を行うことになる。
【００６３】
図９に示すように、右９０度回転前のイメージは、横長であって、読み込み時に左上から右へ横方向にイメージを読み込んだとすると、回転後のイメージは縦長となり、回転後は右上から下に向かってピクセルを描き出していくことになる。このように、下に向かってピクセルを描き出すということは、メモリ上において回転後にイメージ幅分のメモリジャンプが発生することになり、メモリアクセスにより負荷がかかることになる。また、ＣＰＵキャッシュ溢れを引き起し易く、バースト長を越えやすいことから、アクセス自体も遅くなることが多い。
【００６４】
また、図１０に示すように、回転後のイメージ幅が十分に狭ければ、書き出し時に１ピクセルごとに発生するイメージ幅分のメモリジャンプも小さくなって、回転後のイメージ高さがかなりある細長いイメージであってもＣＰＵキャッシュに載る可能性は高くなる。仮に、ＣＰＵキャッシュから溢れたとしても、多くのハードウェアが持っているメモリバースト機能のバースト長の範囲内でより多くのピクセル数を書き出すことができるので、回転後のイメージ幅が狭いほど回転後のイメージの描き出しにかかる時間は短くなる。
【００６５】
そこで、図１１に示すように、横に細長いイメージを９０度もしくは２７０度回転することになった場合に、そのイメージの高さを図８のインタープリタ実行部１２０で見て、特定の範囲内であれば、さらに細長くなるように回転前のイメージを上下に分割処理し、イメージＡ〜Ｃとする。この場合の特定範囲の一例としては、ここでは３３ピクセル以上、１２８ピクセル以下としている。
【００６６】
このように、イメージ高さに最大値を設けたのは、イメージを描画するときに同じ面積なら横幅が広い方が速く描画できるからである。つまり、回転処理は細い方が速くなるが、描画処理は太い方が速くなるので、そのバランスをとる必要があるためである。
【００６７】
上記条件に当てはまるイメージは、そのイメージの描画先の座標から、ページメモリ１２３のワード境界をまたぐか否か、またぐのであればイメージのどのラインでまたぐのかを判定する。すなわち、ワードは、ハードウェアが行うメモリアクセスの最小単位であるので、描画処理をこの単位で行えば効率が良くなるからである。そこで、１ワードを４Ｂｙｔｅ（＝３２ｂｉｔ）とする環境において、深さ１ｂｉｔの描画条件であれば、３２の倍数となるＸ座標がワード境界となる（図３参照）。
【００６８】
ここで、図１２は、９０度回転後にページメモリに描画されたイメージを示す図であり、図１３は、図１２のイメージをＸ座標１２８で分割したイメージＡとＢを示す図であり、図１４は、図１３のイメージの９０度回転前のイメージ幅を示す図であり、図１５は、図１４のイメージを９０度回転して中間データに変換した中間データメモリ内のデータ構造例を示す図であり、図１６は、図８のプリンタコントローラに任意ワード幅イメージ描画関数部と１ワード幅限定イメージ描画関数部を付加した構成を説明するブロック図であり、図１７は、第３の実施の形態にかかる動作を説明するフローチャートである。
【００６９】
例えば、図１２に示す９０度回転後のイメージ描画例は、等倍で（１００，１００）−（１５０，８００）に描画されるのであれば、Ｘ座標１２８がイメージ描画範囲に含まれるワード境界となる。この時、回転前のイメージは、幅７０１ピクセル、高さ５１ピクセルの大きさを持っている（図１４参照）。
【００７０】
そして、図１３に示すように、描画先においてワード境界であるＸ座標１２８で分けるとすると、（１００，１００）−（１２７，８００）に描画される高さ７０１ピクセルで、幅２８ピクセルのイメージＡと、（１２８，１００）−（１５０，８００）に描画される同じ高さで、幅２３ピクセルのイメージＢとなる。
【００７１】
このように、イメージを回転して中間データに変換するイメージ処理部１２７であれば、イメージの読み込みを２回に分け、その書き出しを分割後のイメージ幅として指定することにより、容易に分割と回転とを同時に行うことが可能となる。
【００７２】
図１５に示す中間データは、分割イメージである情報を含むイメージ中間データのヘッダ、イメージＢ＋Ａの描画先座標情報、イメージＢのデータ、およびイメージＡの情報などで構成されている。この中間データは、図８のインタープリタ実行部１２０が解釈したイメージ描画コマンドに対して一つ生成され、その中に分割されたイメージＡ，Ｂが格納されている。
【００７３】
この中間データを図１６の図形描画処理部１２２で解釈する場合、図１５に示すように、分割イメージが複数存在することを示す情報が中間データのヘッダに含まれている。図形描画処理部１２２がページメモリ１２３に対して描画処理を行う場合、分割されたイメージＡとＢは座標とイメージの内容以外は全て同じ描画条件であるので、各種設定を共通とし、ワード単位で描画するイメージ描画関数があれば１ワード幅限定イメージ描画関数部１２６を優先して使用する。ワード単位で描画するイメージ描画関数が無い場合は、任意ワード幅イメージ描画関数部１２５を用いて描画処理が行われる。
【００７４】
そして、描画座標は９０度回転したイメージの場合、図１１に示すように、右から順に格納されるため、分割前の描画先座標を右からワード境界まで描画し、次のイメージはその続きから次のワード境界まで描画するというように、描画範囲が無くなるまでイメージ描画が繰り返される。
【００７５】
この第３の実施の形態の動作について、図１７を用いて説明する。まず、ステップＳ３００においてイメージ高さが３３ピクセル〜１２８ピクセルの範囲にある場合は、描画先の座標から分割高さを求め（ステップＳ３０１）、イメージ処理部１２７において分割しながら回転処理を行い（ステップＳ３０２）、中間データメモリ１２１に保存する（ステップＳ３０３）。
【００７６】
また、ステップＳ３００において、イメージ高さが３３ピクセル〜１２８ピクセルの範囲外の場合は、通常処理として、分割処理せずにそのまま中間データとして中間データメモリ１２１に保存する（ステップＳ３０４）。
【００７７】
図形描画処理部１２２は、中間データメモリ１２１から中間データを読み込んで解釈する（ステップＳ３０５）。この時、分割イメージの有無を判断し（ステップＳ３０６）、分割イメージがある場合は、イメージの数だけループ処理が行われる（ステップＳ３０７）。このループ処理では、イメージの描画範囲を求め（ステップＳ３０８）、その描画範囲におけるイメージ描画が行われる（ステップＳ３０９）。イメージの数だけ処理が繰り返されるとループエンドとなる（ステップＳ３１０）。
【００７８】
また、ステップＳ３０６において、分割されたイメージが無い場合は、そのイメージのまま描画処理が行われる（ステップＳ３１１）。
【００７９】
以上述べたように、第３の実施の形態によれば、インタープリタ実行部１２０で解釈されたイメージ描画コマンドに対して中間データを生成する際に、イメージ高さが特定の範囲内にある場合は、分割して回転処理を行い、分割されたイメージ毎に描画処理を行うため、回転処理と描画処理のバランスをとりつつ、処理を高速化することができる。
【００８０】
（第４の実施の形態）
図１８は、第４の実施の形態における中間データメモリ内のデータ構造例を示す図である。この図１８に示すように、第４の実施の形態の特徴は、上記図１６のイメージ処理部１２７において、イメージを分割する際に、分割されたイメージ毎に描画先座標情報を付随させた一つの中間データを生成する点にある。
【００８１】
このように、第４の実施の形態によれば、メモリ上において第３の実施の形態よりもメモリジャンプ数を少なくできるため、メモリアクセスの負荷を軽減して、処理を高速化することができる。
【００８２】
（第５の実施の形態）
図１９は、第５の実施の形態における中間データメモリ内のデータ構造例を示す図である。この図１９に示すように、第５の実施の形態の特徴は、上記図１６のイメージ処理部１２７において、中間データを分割したイメージの数だけ生成する点にある。すなわち、中間データと、イメージデータとが１対１で対応するようにする。
【００８３】
このように、第５の実施の形態によれば、メモリ上において第４の実施の形態よりもさらにメモリジャンプ数を少なくすることができるため、メモリアクセスの負荷が軽減され、処理を高速化することができる。
【００８４】
（第６の実施の形態）
図２０は、第６の実施の形態において拡大描画指定をした場合のイメージ分割を説明する図である。拡大描画指定をされたイメージの場合は、描画時の拡大ルールを考慮して、描画先のワード境界をイメージデータに適応する必要がある。具体的には、描画先のワード境界によって分割された描画先イメージの幅を拡大率で割って、その値を高さとして回転前イメージの分割に使用するものである。すなわち、図２０では、等倍描画の時（図１４参照）とは異なり、描画時に適用されるＸ方向拡大率で割った高さとなる。
【００８５】
このように、第６の実施の形態によれば、拡大描画指定をした場合であっても、拡大された描画先のワード境界に基づいてイメージの分割処理を行うため、等倍描画の場合と同様にイメージデータの描画処理を高速化することができる。
【００８６】
（第７の実施の形態）
図２１は、第７の実施の形態にかかるプリンタドライバの概略構成を説明するブロック図であり、図２２は、第７の実施の形態の動作を説明するフローチャートである。第７の実施の形態における印刷データ処理システムは、印刷データを生成するホストＰＣ内のプリンタドライバ２２と、プリンタコントローラ２３とによって構成されている。このプリンタドライバ２２に入力されるイメージ描画コマンドは、ホストＰＣ内のアプリケーション／ＯＳ２１によって生成され、そのイメージの回転処理をプリンタドライバ２２のイメージ処理部２２５で実行するものである。
【００８７】
第７の実施の形態では、上記第３の実施の形態において生成していた中間データに代えて、図２１に示す描画コマンド処理部２２２がイメージ処理部２２５を介して処理するイメージ描画コマンドを印刷データ２２３として出力する点に特徴がある。
【００８８】
印刷データ２２３に出力されるイメージ描画コマンドは、一つのイメージデータのみが含まれる形式しかプリンタコントローラ２３が対応していない場合、イメージ描画コマンドをイメージ処理部２２５にて分割処理するようにする。
【００８９】
第７の実施の形態における動作を図２２のフローチャートに基づいて説明する。プリンタドライバ２２では、アプリケーション／ＯＳ２１から入力されるイメージ描画コマンドに基づいて、イメージ高さが３３ピクセル〜１２８ピクセルの範囲内か否かを判断する（ステップＳ４００）。範囲内であれば、描画先の座標から分割高さを求め（ステップ４０１）、イメージ処理部２２５において分割しながら回転処理を行い（ステップＳ４０２）、印刷データ２２３に出力する（ステップＳ４０３）。
【００９０】
また、ステップＳ４００において、イメージ高さが３３ピクセル〜１２８ピクセルの範囲外である場合は、分割処理せずにそのまま印刷データ２２３に出力する（ステップＳ４０４）。ここまでが、プリンタドライバ２２における処理である。
【００９１】
続いて、プリンタコントローラ２３のインタープリタ実行部（図１の１２０参照）にて、印刷データの解釈と実行が行われる（ステップＳ４０５）。この時、図形描画処理部（図１の１２２参照）において分割イメージの有無が判断され（ステップＳ４０６）、分割イメージがある場合は、イメージの数だけループ処理が行われる（ステップＳ４０７）。このループ処理では、イメージの描画範囲を求め（ステップＳ４０８）、その描画範囲におけるイメージ描画が行われる（ステップＳ４０９）。イメージの数だけ上記処理が繰り返されるとループエンドとなる（ステップＳ４１０）。
【００９２】
また、ステップＳ４０６において、分割されたイメージが無い場合は、当該イメージのまま描画処理が行われる（ステップＳ４１１）。
【００９３】
以上述べたように、第７の実施の形態によれば、プリンタドライバ２２のインタープリタ実行部１２０で解釈されたイメージ描画コマンドをイメージ処理部２２５で処理する際に、イメージ高さが特定の範囲内にある場合は、分割して回転処理し、印刷データとしてプリンタコントローラ２３に出力する。プリンタコントローラ２３では、分割されたイメージ毎に描画処理が行われるため、回転処理と描画処理のバランスをとりつつ、処理を高速化することができる。
【００９４】
（第８の実施の形態）
図２３は、第８の実施の形態にかかるプリンタコントローラの概略構成を説明するブロック図であり、図２５は、第８の実施の形態の動作を説明するフローチャートであり、図２６は、図２５のステップＳ５０１のサブルーチンを示すフローチャートである。
【００９５】
図２３に示すように、ホストＰＣ１１から送られてくる印刷データ（イメージデータ）をインタープリタ実行部１２０で解釈して実行する際に、イメージ処理部１２７でイメージを分割して回転処理を行うと、描画時にも分割したまま描画を行わなければならなくなる。また、描画時においても、イメージが一定以上横に長い領域であれば描画速度は速くなるので、どんな大きさのイメージでも分割すれば良いとはならない。しかし、イメージの回転をディザリング前に行う場合は、描画処理よりも回転処理の方がメモリアクセス量が多くなるため、分割してから行なった方が良い場合が多い。
【００９６】
そこで、第８の実施の形態にかかるプリンタコントローラ１２の特徴は、イメージの形状（イメージの幅と高さのサイズ判定）に基づいて、分割してから回転処理を行うか否かを事前に判定するという点にある。ここでは、回転後に縦に細長くなるイメージの幅高さ（イメージ形状）の閾値は、実行環境におけるメモリアクセス速度を用いて決定するようにする。
【００９７】
まず、図２３に示すサイズ判定処理部１２８は、インタープリタ実行部１２０の起動時において、例えば連続した１２８Ｂｙｔｅに対するリード・ライト時間（Ｔｓ１）と、１２８Ｂｙｔｅ間隔で１Ｂｙｔｅずつ１２８回リード・ライトした時間（Ｔｄ１）とを測定する。このサイズ判定処理部１２８による測定が１度でできない場合は、複数回連続して測定するようにする。仮に、この段階で両測定時間に差が無い場合は、この環境下においてイメージ分割による高速化は行われない。また、６４Ｂｙｔｅ、あるいは９６Ｂｙｔｅの時も同様に測定が行われる。
【００９８】
印刷が始まってページ情報が設定されると、１ピクセルを何ビットで表現できるかという「解像度深さ」を得ることができる。そこで、上記した連続領域に対するアクセス時間を８で割り、得られた解像度深さをかけることで描画処理における時間係数（Ｔｓ２）が求まる。また、これと同時に間隔のある領域へのアクセス時間を８で割り、得られた解像度深さをかけることで時間係数（Ｔｄ２）が求まる。
【００９９】
上記したように、６４Ｂｙｔｅ，９６Ｂｙｔｅ，１２８Ｂｙｔｅのそれぞれの場合において、次式（１）を満たす数値の前後を分割イメージの高速化の対象とする。
（Ｔｓ１＋Ｔｄ２）＞（Ｔｄ１＋Ｔｓ２）  ・・・・・（１）
【０１００】
第８の実施の形態にかかる動作を図２５および図２６を用いて説明する。図２５に示すように、インタープリタ実行部１２０を起動させた後（ステップＳ５００）、メモリアクセス速度の測定処理が行われる（ステップＳ５０１）。
【０１０１】
メモリアクセス速度の測定処理は、図２６に示すように、連続したメモリ領域に対するアクセス速度の測定を行い（ステップＳ５０１１）、同じ実行環境下でバースト長を超える間隔を持ったアドレスへのアクセス速度の測定を行って（ステップＳ５０１２）、上記（１）式に基づいて分割対象となるイメージサイズが決定される（ステップＳ５０１３）。
【０１０２】
他にアクセス速度を測定する必要が有る場合は、上記ステップＳ５０１１に戻って、上記測定処理が繰り返される。また、他にアクセス速度を測定する必要が無い場合は、インタープリタ実行部１２０により上記決定されたイメージサイズに該当すると判定されると、イメージの分割と回転処理を行って中間データメモリ１２１に保存する。
【０１０３】
ステップＳ５０２において、印刷のジョブ待ち状態であればステップＳ５０３に移行して、印刷ジョブが開始される。印刷ジョブが開始されると、図形描画処理部１２２が中間データメモリ１２１に保存されている描画コマンドの集合としての印刷データを読み出し、ページメモリ１２３に貼り付けることで描画処理が行われる（ステップＳ５０４）。
【０１０４】
ステップＳ５０５において、終了要求が無い場合は、ステップＳ５０２に戻って、上記描画処理が繰り返される。終了要求が有るかジョブ待ち状態で無くなった場合は、処理を終了する。
【０１０５】
以上述べたように、第８の実施の形態によれば、描画処理に先立って、環境に応じたイメージデータの形状（イメージの幅と高さのサイズ判定）を求めておき、そのイメージデータのサイズに該当する場合にのみイメージデータの分割と回転処理を行うが、該当しない場合は分割せずに描画処理を行うことによって、環境に応じて処理速度を高速化することができる。
【０１０６】
（第９の実施の形態）
図２４は、２次元領域中にある６４×５１２といった幅と高さを持つイメージ領域を通常の９０°回転と分割してからの回転処理時間とを計測する説明図である。
【０１０７】
第９の実施の形態にかかるプリンタコントローラ１２の特徴は、上記第８の実施の形態におけるインタープリタ実行部１２０の起動時に行う判定処理を、図２４に示す１０００×１０００という２次元領域中にある６４×５１２、９６×５１２、１２８×５１２といった幅と高さを持つイメージ５の領域を通常の９０°回転して転写した場合（イメージ６）と、分割してから回転し転写する場合の速度を実際に計測して比較する点にある。
【０１０８】
このサイズ判定処理は、実行環境によるパラメータを用いた場合であって、最も処理の速い幅高さ付近のイメージサイズであれば、分割せずにそのまま回転処理を行うことが最も高速化となる。また、分割することで最も処理速度の速いイメージサイズとなるのであれば、そのサイズに分割した後、回転処理することが最も高速化となる。
【０１０９】
さらに、別のサイズ判定処理としては、印刷ページや印刷データに依存するパラメータによって判定するものがある。例えば、印刷のページ情報が設定されると、１ピクセルを何ビットで表現するかという「解像度深さ」が決まり、これによって高速化の対象となるイメージサイズが変動する。このため、印刷ページや印刷データに依存するパラメータを用いることにより、処理速度の速いイメージサイズを判定する。
【０１１０】
上記したように、サイズ判定処理には、実行環境によるパラメータを用いて判定する場合と、印刷ページや印刷データに依存するパラメータを用いて判定する場合とがある。そして、両者はイメージサイズに対して別々に作用するため、これらの判定処理はそれぞれ独立して処理が行われる。
【０１１１】
なお、この第９の実施の形態では、イメージを９０°回転して転写した場合の速度を実際に計測した例を用いて説明したが、これに限定されず、イメージを２７０°回転して転写する場合であっても勿論良い。
【０１１２】
また、この第９の実施の形態では、実行環境によるパラメータを用いたサイズ判定処理を装置の起動時に一度だけ行い、それ以降の起動時にはその判定結果を使用するようにしても良い。これにより、装置の起動時毎に行われるサイズ判定処理を省略することが可能となり、処理を一層高速化することができる。
【０１１３】
また、この第９の実施の形態では、印刷データに依存するパラメータによってサイズ判定処理を行う場合に、ページの始めやジョブの始めといった必要最低限の回数だけで処理するようにしても良い。これにより、ページ毎あるいはジョブ毎に行われるサイズ判定処理を省略することが可能となり、処理を一層高速化することができる。
【０１１４】
以上述べたように、第９の実施の形態によれば、サイズ判定処理を１０００×１０００という２次元領域中にある複数の幅と高さを持つイメージ領域を回転して転写した場合と、分割してから回転し転写する場合の速度を実際に計測して比較することで、処理が速かった幅と高さを持つイメージを高速化の対象とするため、環境に応じた高速化を実施することが可能となる。
【０１１５】
（第１０の実施の形態）
第１０の実施の形態にかかるプリンタコントローラ１２の特徴は、インタープリタの作成環境と動作環境が同じ場合に、インタープリタ作成時に上記第９の実施の形態におけるメモリアクセス速度の測定を行い、その測定値を定数としてインタープリタに組み込んで作成する点にある。つまり、サイズ判定処理には、実行環境によるパラメータを用いて判定する場合と、印刷ページや印刷データに依存するパラメータを用いて判定する場合とがあり、それらはイメージサイズに対して別々に作用するため、その判定処理は別処理部で独立して行われる。図２３のプリンタコントローラ１２の構成図の場合は、サイズ判定処理部１２８の中にそれぞれ独立した判定部がある。
【０１１６】
図２７は、第１０の実施の形態の動作を説明するフローチャートである。図２７に示すように、インタープリタ作成プログラムを開始すると、インタープリタ本体を作成する前に、上記したサイズ判定処理部１２８におけるメモリアクセス速度の測定プログラムを作成する（ステップＳ６００）。
【０１１７】
そして、この測定プログラムを使い、サイズ判定処理部１２８の独立した判定部をそれぞれ実行することにより（ステップＳ６０１）、高速化の対象となるイメージサイズが求められ、これを定数としてインタープリタに組み込まれる（ステップＳ６０２）。このようにしてインタープリタ（プログラム）が作成される（ステップＳ６０３）。
【０１１８】
以上述べたように、第１０の実施の形態によれば、インタープリタ作成時にイメージサイズに応じたメモリアクセス速度を測定し、その結果をインタープリタの定数に組み込むため、その後のサイズ判定処理やメモリアクセス速度の測定が省略可能となって、処理を一層高速化することができる。
【０１１９】
（第１１の実施の形態）
第１１の実施の形態にかかるプリンタコントローラ１２の特徴は、上記第８の実施の形態のように、メモリアクセス速度の測定処理といった専用の判定処理時間を用いずに、他の目的を持った既存関数の処理時間を用いて分割対象となるイメージサイズを判定する点にある。
【０１２０】
例えば、第１１の実施の形態では、本来は別の目的を持つ処理として、ディザ展開関数の処理時間、ある領域をゼロクリアする関数などの処理時間を利用することにより、上記測定の代用とすることが可能となる。
【０１２１】
このように、第１１の実施の形態によれば、パラメータによるイメージサイズの判定処理を行うに当たって、必ずしも専用の判定処理時間を用いる必要がなく、ディザ展開関数の処理時間やある領域をゼロクリアする関数などの処理時間を使って、分割対象となるイメージサイズを判定することができるため、さらに処理時間を短縮することが可能となり、一層高速化することができる。
【産業上の利用可能性】
【０１２２】
以上のように、本発明にかかる印刷データ処理装置は、例えばホストＰＣなどから入力されるＰＤＬ（プリンタ記述言語）等によって記述された描画命令に従うイメージデータなどを高速描画する印刷データ処理装置に適している。
【図面の簡単な説明】
【０１２３】
【図１】印刷データ処理装置としてのプリンタコントローラの概略構成を説明するブロック図である。
【図２】第１の実施の形態にかかるプリンタコントローラの概略構成を説明するブロック図である。
【図３】イメージ描画先のページメモリに対してイメージの描画範囲を示した図である。
【図４】任意ワード幅イメージ描画関数部における処理手順を説明するフローチャートである。
【図５】１ワード幅限定イメージ描画関数部における処理手順を説明するフローチャートである。
【図６】ページメモリに対する種々のイメージの描画範囲を示す図である。
【図７】イメージデータを予めページメモリのワード境界で２つに分かれるように分割したイメージの描画範囲を示す図である。
【図８】第３の実施の形態にかかるプリンタコントローラの概略構成を説明するブロック図である。
【図９】右９０度回転前は横長で回転後は縦長となるイメージを読み込む場合のメモリジャンプの発生を説明する図である。
【図１０】９０度回転後のイメージ幅の狭いイメージを説明する図である。
【図１１】横に細長いイメージを９０度回転する場合にさらに細長くなるよう上下に分割処理したイメージを説明する図である。
【図１２】９０度回転後にページメモリに描画されたイメージを示す図である。
【図１３】図１２のイメージをＸ座標１２８で分割したイメージＡとＢを示す図である。
【図１４】図１３のイメージの９０度回転前のイメージ幅を示す図である。
【図１５】図１４のイメージを９０度回転して中間データに変換した中間データメモリ内のデータ構造例を示す図である。
【図１６】図８のプリンタコントローラに任意ワード幅イメージ描画関数部と１ワード幅限定イメージ描画関数部を付加した構成を説明するブロック図である。
【図１７】第３の実施の形態にかかる動作を説明するフローチャートである。
【図１８】第４の実施の形態における中間データメモリ内のデータ構造例を示す図である。
【図１９】第５の実施の形態における中間データメモリ内のデータ構造例を示す図である。
【図２０】第６の実施の形態において拡大描画指定をした場合のイメージ分割を説明する図である。
【図２１】第７の実施の形態にかかるプリンタドライバの概略構成を説明するブロック図である。
【図２２】第７の実施の形態の動作を説明するフローチャートである。
【図２３】第８の実施の形態にかかるプリンタコントローラの概略構成を説明するブロック図である。
【図２４】２次元領域中にある６４×５１２といった幅と高さを持つイメージ領域を通常の９０°回転と分割してからの回転処理時間とを計測する説明図である。
【図２５】第８の実施の形態の動作を説明するフローチャートである。
【図２６】図２５のステップＳ５０１のサブルーチンを示すフローチャートである。
【図２７】第１０の実施の形態の動作を説明するフローチャートである。
【符号の説明】
【０１２４】
１１  ホストＰＣ
１２  プリンタコントローラ
１２０  インタープリタ実行部
１２１  中間データメモリ
１２２  図形描画処理部
１２３  ページメモリ
１２４  ＣＰＵ
１２５  任意ワード幅イメージ描画関数部
１２６  １ワード幅限定イメージ描画関数部
１２７  イメージ処理部
１２８  サイズ判定処理部
２１  アプリケーション／ＯＳ
２２  プリンタドライバ
２２０  インタープリタ実行部
２２１  中間データメモリ
２２２  描画コマンド処理部
２２３  印刷データ
２２４  ＣＰＵ
２２５  イメージ処理部
２３  プリンタコントローラ
【図１】
2008006803.tif 000003
【図２】
2008006803.tif 000004
【図３】
2008006803.tif 000005
【図４】
2008006803.tif 000006
【図５】
2008006803.tif 000007
【図６】
2008006803.tif 000008
【図７】
2008006803.tif 000009
【図８】
2008006803.tif 000010
【図９】
2008006803.tif 000011
【図１０】
2008006803.tif 000012
【図１１】
2008006803.tif 000013
【図１２】
2008006803.tif 000014
【図１３】
2008006803.tif 000015
【図１４】
2008006803.tif 000016
【図１５】
2008006803.tif 000017
【図１６】
2008006803.tif 000018
【図１７】
2008006803.tif 000019
【図１８】
2008006803.tif 000020
【図１９】
2008006803.tif 000021
【図２０】
2008006803.tif 000022
【図２１】
2008006803.tif 000023
【図２２】
2008006803.tif 000024
【図２３】
2008006803.tif 000025
【図２４】
2008006803.tif 000026
【図２５】
2008006803.tif 000027
【図２６】
2008006803.tif 000028
【図２７】
2008006803.tif 000029