JP2008006803A - 印刷データ処理装置 - Google Patents

印刷データ処理装置 Download PDF

Info

Publication number
JP2008006803A
JP2008006803A JP2007010736A JP2007010736A JP2008006803A JP 2008006803 A JP2008006803 A JP 2008006803A JP 2007010736 A JP2007010736 A JP 2007010736A JP 2007010736 A JP2007010736 A JP 2007010736A JP 2008006803 A JP2008006803 A JP 2008006803A
Authority
JP
Japan
Prior art keywords
image
processing
print data
word width
word
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.)
Granted
Application number
JP2007010736A
Other languages
English (en)
Other versions
JP5079341B2 (ja
Inventor
Mikiya Ichikawa
美貴也 市川
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2007010736A priority Critical patent/JP5079341B2/ja
Priority to US11/796,300 priority patent/US8159708B2/en
Publication of JP2008006803A publication Critical patent/JP2008006803A/ja
Application granted granted Critical
Publication of JP5079341B2 publication Critical patent/JP5079341B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/602Rotation of whole images or parts thereof by block rotation, e.g. by recursive reversal or rotation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Record Information Processing For Printing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

【課題】入力される印刷データを最終的な画像データとして生成する際に、矩形描画やイメージ描画処理を高速化し、イメージの回転を含むデータを描画する際の処理を高速化するようにする。
【解決手段】プリンタコントローラ12によってイメージを描画する場合、図形描画処理を行う図形描画処理部122が任意ワード幅のイメージ描画を可能とする任意ワード幅イメージ描画関数部125と、1ワード幅に限定したイメージ描画を行う1ワード幅限定イメージ描画関数部126の2種類を持っている。図形描画処理部122は、描画イメージが11ワード幅に収まる描画範囲か否か、あるいは処理速度に応じて任意ワード幅イメージ描画関数部125と1ワード幅限定イメージ描画関数部126とを適宜切り替えながら描画処理する。
【選択図】 図2

Description

本発明は、パーソナル・コンピュータ(以下、PCという)などで生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行って描画処理する印刷データ処理装置に関するものである。
従来、任意の矩形状のマスクパターンを用いた描画処理を行う際に、ワード単位で高速にメモリにアクセスできるようにすることにより、ページメモリへの描画処理の高速化を可能とした画像出力装置が開示されている(特許文献1参照)。
また、図形描画命令に従って、濃度に対応するビットマップパターンにより指定描画範囲をタイル状に敷き詰め、写真画像のように階調変化の緩やかな画像を対象にした図形描画命令の入力に対して、描画処理時間を低減し、高速処理を実現する画像処理装置が開示されている(特許文献2参照)。
特開2003−248834号公報 特開2004−164549号公報
上記特許文献1にあっては、入力されたマスクパターンで描画演算する際に、ワード単位で単一ワードまたは複数ワードを繰り返し参照することで、シフト演算が不要となって、メモリアクセスが減少し、高速化することができる。しかしながら、マスクパターン幅を1ワード幅とするか複数ワード幅とするかは一律に決まっていたため、印刷データをレンダリング処理する際に、矩形描画やイメージ描画の状況に応じて逆に描画に時間がかかってしまうという課題があった。
また、上記特許文献2にあっては、指定されたページメモリ上の図形の描画範囲を指定された濃度に塗りつぶすという図形描画命令に従って、濃度に対応するビットマップパターンにより指定描画範囲をタイル状に敷き詰める描画処理を行うことにより、階調変化の緩やかな画像の図形描画命令に対して描画処理時間を短縮して、高速処理を実現するものである。しかしながら、イメージの回転を含むデータの描画処理の高速化については、解決手段が開示されていないという課題があった。
本発明は、上記に鑑みてなされたものであって、入力される印刷データを最終的な画像データとして生成する際に、矩形描画やイメージ描画処理を高速化する印刷データ処理装置を提供することを第1の目的とする。
また、イメージの回転を含むデータを描画する際の処理を高速化する印刷データ処理装置を提供することを第2の目的とする。
上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行う図形描画処理手段と、前記図形描画処理手段のレンダラ環境として、メモリワード幅を最小単位としてメモリアクセスを行うレンダリングエンジンが存在する際に、任意の高さを持つ任意のワード幅にアクセス可能な任意ワード幅描画手段と、任意の高さを持つ1ワード幅限定でアクセス可能な1ワード幅限定描画手段とを備え、前記図形描画処理手段が前記任意ワード幅描画手段と前記1ワード幅限定描画手段とを適宜切り替えながら描画処理することを特徴とする。
また、請求項2にかかる発明は、請求項1に記載の印刷データ処理装置において、前記図形描画処理手段によってイメージ描画コマンドを描画する場合は、前記任意ワード幅描画手段が任意ワード幅イメージ描画関数手段であって、前記1ワード幅限定描画手段が1ワード幅限定イメージ描画関数手段であることを特徴とする。
また、請求項3にかかる発明は、請求項1に記載の印刷データ処理装置において、前記図形描画処理手段によって矩形描画コマンドを描画する場合は、前記任意ワード幅描画手段が任意ワード幅矩形描画関数手段であり、前記1ワード幅限定描画手段が1ワード幅限定矩形描画関数手段であることを特徴とする。
また、請求項4にかかる発明は、請求項2または3に記載の印刷データ処理装置において、前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、必要に応じてディザリングなどの階調処理をワード幅単位で行うことを特徴とする。
また、請求項5にかかる発明は、請求項2または3に記載の印刷データ処理装置において、前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、必要に応じてROPなどの演算処理をワード幅単位で行うことを特徴とする。
また、請求項6にかかる発明は、請求項2または3に記載の印刷データ処理装置において、前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、必要に応じてブラシなどのパターン生成処理をワード幅単位で行うことを特徴とする。
また、請求項7にかかる発明は、請求項2または3に記載の印刷データ処理装置において、前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、必要に応じてイメージなどのビットマップ展開処理をワード幅単位で行うことを特徴とする。
また、請求項8にかかる発明は、請求項2または3に記載の印刷データ処理装置において、前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、必要に応じてマスクなどの描画と非描画の選択処理をワード幅を単位として、ワードのビットパターンとして行うことを特徴とする。
また、請求項9にかかる発明は、請求項4〜8のいずれか一つに記載の印刷データ処理装置において、前記図形描画処理手段が2ワード幅もしくは任意のワード幅以下で描画する際に、前記任意ワード幅描画手段を使用した場合よりも、前記1ワード限定描画手段を必要な回数だけ使用した場合の方が処理速度が速くなる場合は、1ワード限定描画手段を使用して描画することを特徴とする。
また、請求項10にかかる発明は、生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行う図形描画処理手段と、イメージデータの回転処理もしくは分割処理を行うイメージ処理手段とを備え、前記イメージ処理手段によりページ回転を行ってイメージを描画する際に、イメージデータをいくつかのイメージに分割し、その後回転処理することを特徴とする。
また、請求項11にかかる発明は、請求項10に記載の印刷データ処理装置において、前記イメージ処理手段によるイメージデータの分割は、回転後の描画先において縦に細長くなり、1ワード以上4ワード未満の幅となる場合に行うことを特徴とする。
また、請求項12にかかる発明は、請求項10または11に記載の印刷データ処理装置において、前記イメージ処理手段によるイメージデータの分割は、回転前のイメージを上下に分けるように分割することを特徴とする。
また、請求項13にかかる発明は、請求項12に記載の印刷データ処理装置において、前記イメージ処理手段において分割されたイメージデータは、中間データとする段階で複数のイメージ描画コマンドにすることを特徴とする。
また、請求項14にかかる発明は、請求項12に記載の印刷データ処理装置において、前記イメージ処理手段において分割されたイメージデータは、中間データとする段階で1つのイメージ描画コマンドに複数のイメージデータが結合された形で保存することを特徴とする。
また、請求項15にかかる発明は、請求項13または14に記載の印刷データ処理装置において、前記イメージ処理手段によるイメージデータの分割は、回転後の描画先でのページメモリのワード境界によって行うことを特徴とする。
また、請求項16にかかる発明は、請求項15に記載の印刷データ処理装置において、印刷データをレンダリング処理する前記図形描画処理手段が任意のワード幅にアクセス可能な任意ワード幅イメージ描画関数手段と、1ワード幅限定でアクセス可能な1ワード幅限定イメージ描画関数手段とを選択使用可能な場合に、前記イメージ処理手段において分割されたイメージデータを描画する際に、前記1ワード幅限定イメージ描画関数手段を優先使用することを特徴とする。
また、請求項17にかかる発明は、請求項15に記載の印刷データ処理装置において、印刷データをレンダリング処理する前記図形描画処理手段が任意のワード幅にアクセス可能な任意ワード幅イメージ描画関数手段と、1ワード幅限定でアクセス可能な1ワード幅限定イメージ描画関数手段とを選択使用可能な場合に、イメージの高さをパラメータとして前記イメージ処理手段による回転処理を加えても、前記任意ワード幅イメージ描画関数手段を用いた方が、前記イメージ処理手段により分割して回転を行い、前記1ワード幅限定イメージ描画関数手段を用いた場合よりも高速に描画できるのであれば、分割せずに前記任意ワード幅イメージ描画関数手段を優先使用することを特徴とする。
また、請求項18にかかる発明は、請求項16または17に記載の印刷データ処理装置において、1ワード幅以下のイメージであって、描画先においてワード境界にまたがる場合は、前記任意ワード幅イメージ描画関数手段を使用するより、前記1ワード幅限定イメージ描画関数手段を2回呼び出した方が処理が速くなる場合は、前記イメージ処理手段によりイメージを分割処理して前記1ワード幅限定イメージ描画関数手段を用いることを特徴とする。
また、請求項19にかかる発明は、生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行う図形描画処理手段と、イメージデータの回転処理もしくは分割処理を行うイメージ処理手段と、前記イメージデータが環境に応じて求めたイメージデータのサイズに該当するか否かを判定するサイズ判定処理手段とを備え、前記図形描画処理手段によるレンダリング処理前に、前記サイズ判定処理手段が環境に応じて求めたイメージデータのサイズに該当すると判定すると、前記イメージデータを前記イメージ処理手段でいくつかのイメージに分割し、回転処理を行うことを特徴とする。
また、請求項20にかかる発明は、請求項19に記載の印刷データ処理装置において、前記サイズ判定処理手段は、少なくとも環境によるパラメータを判定する処理と、印刷ページ、印刷データに依存するパラメータを判定する処理とを独立して処理することを特徴とする。
また、請求項21にかかる発明は、請求項20に記載の印刷データ処理装置において、前記環境によるパラメータは、少なくともいくつかの細長いイメージを90°回転や270°回転する時間と、縦に細長いイメージを仮想ページメモリに描画する時間とを用いることを特徴とする。
また、請求項22にかかる発明は、請求項20に記載の印刷データ処理装置において、前記環境によるパラメータは、少なくとも連続メモリ領域に対するアクセススピードと、その環境のバースト長を超える間隔を持ったアドレスに対するアクセススピードとを用いることを特徴とする。
また、請求項23にかかる発明は、請求項20に記載の印刷データ処理装置において、前記印刷データに依存するパラメータは、少なくともページ情報の解像度深さを持ち、イメージサイズの決定に使用することを特徴とする。
また、請求項24にかかる発明は、請求項21または22に記載の印刷データ処理装置において、前記環境によるパラメータを用いた判定は、装置の起動時に一度だけ行い、それ以降はその結果を使用することを特徴とする。
また、請求項25にかかる発明は、請求項21または22に記載の印刷データ処理装置において、前記イメージデータの作成環境と実行環境が同じ場合は、環境による判定を別処理部とし、高速化処理が載っている本体を作成する前に、独立した判定部を実行して必要な情報を集め、定数として本体の作成時に組み込むことを特徴とする。
また、請求項26にかかる発明は、請求項23に記載の印刷データ処理装置において、前記印刷データに依存するパラメータによって判定を行う場合は、ページの始めやジョブの始めといった必要最低限の回数だけで処理することを特徴とする請求項23に記載の印刷データ処理装置。
また、請求項27にかかる発明は、請求項20に記載の印刷データ処理装置において、前記パラメータによる判定処理は、専用の判定処理時間を用いずに、他の目的を持った既存関数の処理時間を用いることを特徴とする。
本発明にかかる印刷データ処理装置によれば、生成された印刷データを図形描画処理手段によってバンドメモリもしくはページメモリに対してレンダリング処理が行われる。図形描画処理手段のレンダラ環境としては、メモリワード幅を最小単位としてメモリアクセスを行うレンダリングエンジンが存在し、任意の高さを持つ任意のワード幅にアクセス可能な任意ワード幅描画手段と、任意の高さを持つ1ワード幅限定でアクセス可能な1ワード幅限定描画手段とを具備している。図形描画処理手段は、任意ワード幅描画手段と1ワード幅限定描画手段とを適宜切り替えながら描画処理する。このように、印刷データをバンドメモリもしくはページメモリに対してレンダリング処理する際に、メモリへのアクセスをメモリのワード長を単位として行うと処理効率が向上する。ここでは、図形描画処理手段が任意のワード幅を描画可能な任意ワード幅描画手段と、1ワード限定の1ワード幅限定描画手段の2種類を選択可能に具備し、その切り替えの判断も図形描画処理手段が行うことができる。このため、単にワード幅だけで、任意ワード幅描画手段と1ワード幅限定描画手段とを選択するのではなく、より処理が速くなる方を選択して描画処理を実行させることができるという効果を奏する。
また、別の発明にかかる印刷データ処理装置によれば、生成された印刷データを図形描画処理手段によりバンドメモリもしくはページメモリに対してレンダリング処理が行われる。また、イメージ処理手段によりイメージデータの回転もしくは分割処理が行われる。そして、イメージ処理手段によってページ回転処理を行いイメージの描画処理を行う際に、イメージデータをいくつかのイメージに分割し、その後回転処理を行うようにする。このように、イメージを回転させる場合、イメージ処理手段によってイメージデータをいくつかのイメージに分割し、その後回転処理を行うため、回転処理速度と描画処理速度のバランスをとって処理速度を高速化できるという効果を奏する。
また、別の発明にかかる印刷データ処理装置によれば、生成された印刷データを図形描画処理手段によりバンドメモリもしくはページメモリに対してレンダリング処理を行う前に、サイズ判定処理手段が環境に応じて求めたイメージデータのサイズに該当するか否かを判定し、該当する場合はイメージ処理手段がイメージデータをいくつかのイメージに分割した後、回転処理を行うようにする。このように、図形描画処理手段によるレンダリング処理前に、イメージデータが環境に応じて求めたイメージデータのサイズに該当するか否かを判定し、該当する場合のみ回転処理や分割処理を行うようにしたため、環境に応じて処理速度を高速化できるという効果を奏する。
以下に、本発明にかかる印刷データ処理装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
(第1の実施の形態)
図1は、印刷データ処理装置としてのプリンタコントローラの概略構成を説明するブロック図である。図1に示すプリンタコントローラ12は、ホストPC11から印刷データが送られてくると、インタープリタ実行部120が印刷データを受け取って中間データメモリ121に保存する。そして、中間データメモリ121から印刷データが図形描画処理部122に渡され、描画はページメモリ123に対して行われる。実際に印刷を行うプリンタエンジン13は、ページメモリ123における描画結果を参照して紙面へ印刷する。
このように、プリンタで描画する場合、印刷データは描画コマンドの集合としてホストPC11からプリンタコントローラに渡される。描画コマンドの中には、文字、グラフィック、イメージなどの種類があってそれぞれに特徴がある。
図2は、第1の実施の形態にかかるプリンタコントローラの概略構成を説明するブロック図である。イメージを描画する場合、図2に示すように、印刷データとしてのイメージ描画コマンドにより描画開始座標、イメージの幅、高さなどの情報を持つ矩形描画領域に指定されたイメージデータをページメモリ123に貼り付ける描画処理が行われる。この時、ページメモリ123へのアクセスをその環境のメモリワード長を単位として行うことで処理効率が良くなり、描画処理を高速化することができる。そして、指定された描画範囲がメモリワード境界と等しくない場合は、左右両端を適宜マスクすることにより、不要な領域への描画を行わないようにすることができる。
第1の実施の形態にかかるプリンタコントローラ12の特徴的な構成としては、図形描画処理を行う図形描画処理部122が任意ワード幅のイメージ描画を可能とする任意ワード幅イメージ描画関数部125と、1ワード幅(以下、1LONGともいう)に限定したイメージ描画を行う1ワード幅限定イメージ描画関数部126の2種類を持っていて、選択的に使用可能とした点にある。これにより、描画イメージが1LONG幅(1ワード幅)に収まる描画範囲か否かで、任意ワード幅イメージ描画関数部125と1ワード幅限定イメージ描画関数部126とを切り替えて描画することができる。ここでは、描画関数の切り替えを図形描画処理部122で判定するようにした。
図3は、イメージ描画先のページメモリに対してイメージの描画範囲を示した図である。図3に示すように、イメージ描画先の座標が分かれば、描画幅が1LONG内に収まるか否かが直ぐに求められ、ページメモリ123へアクセスするまでにどちらの描画関数部を使用すれば良いかを容易に判定することができる。すなわち、図3では、1ワードが1LONG=32bit(32ピクセル)の環境であれば、イメージの描画範囲のX座標が32bit,64bit,96bit…にかからないか否かによって判定することができる。
図4は、任意ワード幅イメージ描画関数部における処理手順を説明するフローチャートであり、図5は、1ワード幅限定イメージ描画関数部における処理手順を説明するフローチャートであり、図6は、ページメモリに対する種々のイメージの描画範囲を示す図である。図2に示す任意ワード幅イメージ描画関数部125では、図4に示すように、大きなループとしてY方向のループがあり、その内側にはX方向のループがあって、1LONG毎にページメモリ123へアクセスが行われる。
すなわち、図2の任意ワード幅イメージ描画関数部125では、図4に示すように、Y方向の初期化処理を行った後(ステップS100)、Y方向のループが開始され(ステップS101)、Y方向の設定処理が行われ(ステップS102)、続くステップS103では、X方向の初期化処理が行われ、X方向のループが開始され(ステップS104)、X方向の設定処理が行われる(ステップS105)。このようにして、1ワード幅(1LONG)の描画が行われる(ステップS106)。
また、次のワード幅(LONG)に対しても、同様にY方向のループとX方向のループが繰り返され、描画範囲が終わると、X方向のループが終了し(ステップS107)、Y方向のループも終了する(ステップS108)。
この任意ワード幅イメージ描画関数部125での処理をさらに具体的に説明すると、ソースイメージデータから描画対象となる部分を抜き出し、1LONG分のディザリングを行い、必要に応じて該当する座標のブラシパターンを1LONG分取得して、ページメモリ123の1LONG分とROP演算を行う。イメージ描画範囲の両端であればマスクを施し、その結果をページメモリに書き戻す。そして、X方向の描画範囲が続いている間は、次のLONGに対しても同様の処理が行われる。
ここで、ディザパターンが1LONGよりも大きなサイズを持つ場合などは、X方向にLONGが移動する度にディザパターンの計算もしくは取得という処理が発生する。このような処理は、ディザパターン以外のブラシパターンなどでも必要となる。
また、X方向と独立したY方向においてもディザパターンやブラシパターンを取得するための処理が必要となる。このように、X方向とY方向に独立している処理は、1LONG当たりに必要なディザやブラシなどの機能の種類と、その描画範囲に比例して処理量が増大することになる。このため、メモリへのアクセスは、メモリバーストなどの機能によって連続したアドレスに対する方が、飛び飛びのアドレスの場合よりも速く処理することが可能となり、この手法を用いることにより一定以上の幅を持つイメージの描画効率が良くなる。
一方、図2に示す1ワード幅限定イメージ描画関数部126では、図5に示すように、Y方向の初期化処理を行った後(ステップS200)、Y方向のループが開始され(ステップS202)、Y方向の設定処理が行われる(ステップS203)ため、Y方向のループは図4と同じである。しかし、X方向は、ステップS201において、X方向の初期化と設定処理を行うだけで、X方向のループを持たなくて良くなる。
すなわち、Y方向でのディザパターンやブラシパターン用の処理は、任意ワード幅イメージ描画関数部125と変わらないが、X方向についての処理がかなり簡素化できることがわかる。このため、1LONG当たりの命令コード自体が少なくなり、処理速度が向上する。またそれによって、CPUキャッシュに載る確率が上がり、ヒット率が上昇する等の利点がある。逆に、1ワード幅限定イメージ描画関数部126では、一度の関数コールで2LONG以上の幅を持つイメージを描画することはできない。
上記した任意ワード幅イメージ描画関数部125と1ワード幅限定イメージ描画関数部126との使い分けに従うと、図6の種々のイメージの描画範囲のうち、イメージ1およびイメージ3は描画幅が1ワード幅(1LONG)に収まっていないため、任意ワード幅イメージ描画関数部125を使って描画することになる。また、イメージ2は、1ワード幅(1LONG)内に収まっているため、1ワード幅限定イメージ描画関数部126を使って描画することになる。
以上述べたように、第1の実施の形態によれば、ページメモリに描画されるイメージの描画範囲が1ワード幅(1LONG)に収まっているか否かを図形描画処理部122で判断して、任意ワード幅イメージ描画関数部125と1ワード幅限定イメージ描画関数部126とを使い分けることで描画効率が向上し、イメージ描画を高速化することができる。
(第2の実施の形態)
第2の実施の形態の特徴は、例えば2ワード幅のイメージを描画する際に、上記した任意ワード幅イメージ描画関数部125を使用する場合よりも、1ワード幅限定イメージ描画関数部126を2回呼び出した方が処理速度の速くなる環境であれば、1ワード幅限定イメージ描画関数部126を選択するものである。
図7は、イメージデータを予めページメモリのワード境界で2つに分かれるように分割したイメージの描画範囲を示す図である。図7のページメモリに描画されたイメージは、何れもワード境界にかかっているため、イメージ3Aと3B、イメージ4Aと4Bのように、あらかじめページメモリのワード境界で縦方向に2つに分かれるように分割しておく。イメージをワード境界で2つに分割するのは、図2に示すインタープリタ実行部120によってイメージデータを中間データに変換する際に分割するのが容易であるが、必ずしもこれに限定されない。
以上述べたように、第2の実施の形態によれば、1ワードよりも広い幅を持つイメージデータ(イメージ4A+イメージ4B)、あるいは最小で幅2ピクセルのイメージが2ワードにまたがるイメージデータ(イメージ3A+イメージ3B)であっても、図形描画処理部122が1ワード幅限定イメージ描画関数部126を2回呼び出して処理することにより、任意ワード幅イメージ描画関数部125を使用するよりも速い描画処理を期待することができる。
なお、第2の実施の形態では、2ワードにまたがる描画範囲を持ったイメージの描画について説明したが、3ワード以上にまたがる描画範囲のイメージであっても、1ワード幅限定イメージ描画関数部126を繰り返し呼び出す方が任意ワード幅イメージ描画関数部125を使用するよりも速く処理できる場合であれば、同様に適用することが可能である。
また、上記した第1および第2の実施の形態では、イメージ描画を例にあげて説明したが、これに限定する趣旨ではなく、矩形描画についてもイメージ描画の場合と描画範囲について同様であるため、重複説明を省略する。従って、矩形描画を行う場合についても、上記イメージ描画の場合と同様に描画処理を高速化できるという効果が得られる。
(第3の実施の形態)
図8は、第3の実施の形態にかかるプリンタコントローラの概略構成を説明するブロック図であり、図9は、右90度回転前は横長で回転後は縦長となるイメージを読み込む場合のメモリジャンプの発生を説明する図であり、図10は、90度回転後のイメージ幅の狭いイメージを説明する図であり、図11は、横に細長いイメージを90度回転する場合にさらに細長くなるよう上下に分割処理したイメージを説明する図である。
第3の実施の形態にかかるプリンタコントローラ12の特徴は、図8に示すように、ホストPC11から送られてくる印刷データ(イメージデータ)をインタープリタ実行部120で解釈して実行する際に、イメージの回転処理あるいは分割処理を行うイメージ処理部127を備えた点にある。
イメージデータをインタープリタ実行部120で解釈して実行する場合は、使用可能メモリ量によって分割されることがある。この時のイメージの多くの場合、上下方向に分かれるため幅広で高さの低いイメージの連なりとなる。プリンタコントローラ12でページ右90度回転を行うときは、横長のイメージに対してイメージ処理部127により回転処理を行うことになる。
図9に示すように、右90度回転前のイメージは、横長であって、読み込み時に左上から右へ横方向にイメージを読み込んだとすると、回転後のイメージは縦長となり、回転後は右上から下に向かってピクセルを描き出していくことになる。このように、下に向かってピクセルを描き出すということは、メモリ上において回転後にイメージ幅分のメモリジャンプが発生することになり、メモリアクセスにより負荷がかかることになる。また、CPUキャッシュ溢れを引き起し易く、バースト長を越えやすいことから、アクセス自体も遅くなることが多い。
また、図10に示すように、回転後のイメージ幅が十分に狭ければ、書き出し時に1ピクセルごとに発生するイメージ幅分のメモリジャンプも小さくなって、回転後のイメージ高さがかなりある細長いイメージであってもCPUキャッシュに載る可能性は高くなる。仮に、CPUキャッシュから溢れたとしても、多くのハードウェアが持っているメモリバースト機能のバースト長の範囲内でより多くのピクセル数を書き出すことができるので、回転後のイメージ幅が狭いほど回転後のイメージの描き出しにかかる時間は短くなる。
そこで、図11に示すように、横に細長いイメージを90度もしくは270度回転することになった場合に、そのイメージの高さを図8のインタープリタ実行部120で見て、特定の範囲内であれば、さらに細長くなるように回転前のイメージを上下に分割処理し、イメージA〜Cとする。この場合の特定範囲の一例としては、ここでは33ピクセル以上、128ピクセル以下としている。
このように、イメージ高さに最大値を設けたのは、イメージを描画するときに同じ面積なら横幅が広い方が速く描画できるからである。つまり、回転処理は細い方が速くなるが、描画処理は太い方が速くなるので、そのバランスをとる必要があるためである。
上記条件に当てはまるイメージは、そのイメージの描画先の座標から、ページメモリ123のワード境界をまたぐか否か、またぐのであればイメージのどのラインでまたぐのかを判定する。すなわち、ワードは、ハードウェアが行うメモリアクセスの最小単位であるので、描画処理をこの単位で行えば効率が良くなるからである。そこで、1ワードを4Byte(=32bit)とする環境において、深さ1bitの描画条件であれば、32の倍数となるX座標がワード境界となる(図3参照)。
ここで、図12は、90度回転後にページメモリに描画されたイメージを示す図であり、図13は、図12のイメージをX座標128で分割したイメージAとBを示す図であり、図14は、図13のイメージの90度回転前のイメージ幅を示す図であり、図15は、図14のイメージを90度回転して中間データに変換した中間データメモリ内のデータ構造例を示す図であり、図16は、図8のプリンタコントローラに任意ワード幅イメージ描画関数部と1ワード幅限定イメージ描画関数部を付加した構成を説明するブロック図であり、図17は、第3の実施の形態にかかる動作を説明するフローチャートである。
例えば、図12に示す90度回転後のイメージ描画例は、等倍で(100,100)−(150,800)に描画されるのであれば、X座標128がイメージ描画範囲に含まれるワード境界となる。この時、回転前のイメージは、幅701ピクセル、高さ51ピクセルの大きさを持っている(図14参照)。
そして、図13に示すように、描画先においてワード境界であるX座標128で分けるとすると、(100,100)−(127,800)に描画される高さ701ピクセルで、幅28ピクセルのイメージAと、(128,100)−(150,800)に描画される同じ高さで、幅23ピクセルのイメージBとなる。
このように、イメージを回転して中間データに変換するイメージ処理部127であれば、イメージの読み込みを2回に分け、その書き出しを分割後のイメージ幅として指定することにより、容易に分割と回転とを同時に行うことが可能となる。
図15に示す中間データは、分割イメージである情報を含むイメージ中間データのヘッダ、イメージB+Aの描画先座標情報、イメージBのデータ、およびイメージAの情報などで構成されている。この中間データは、図8のインタープリタ実行部120が解釈したイメージ描画コマンドに対して一つ生成され、その中に分割されたイメージA,Bが格納されている。
この中間データを図16の図形描画処理部122で解釈する場合、図15に示すように、分割イメージが複数存在することを示す情報が中間データのヘッダに含まれている。図形描画処理部122がページメモリ123に対して描画処理を行う場合、分割されたイメージAとBは座標とイメージの内容以外は全て同じ描画条件であるので、各種設定を共通とし、ワード単位で描画するイメージ描画関数があれば1ワード幅限定イメージ描画関数部126を優先して使用する。ワード単位で描画するイメージ描画関数が無い場合は、任意ワード幅イメージ描画関数部125を用いて描画処理が行われる。
そして、描画座標は90度回転したイメージの場合、図11に示すように、右から順に格納されるため、分割前の描画先座標を右からワード境界まで描画し、次のイメージはその続きから次のワード境界まで描画するというように、描画範囲が無くなるまでイメージ描画が繰り返される。
この第3の実施の形態の動作について、図17を用いて説明する。まず、ステップS300においてイメージ高さが33ピクセル〜128ピクセルの範囲にある場合は、描画先の座標から分割高さを求め(ステップS301)、イメージ処理部127において分割しながら回転処理を行い(ステップS302)、中間データメモリ121に保存する(ステップS303)。
また、ステップS300において、イメージ高さが33ピクセル〜128ピクセルの範囲外の場合は、通常処理として、分割処理せずにそのまま中間データとして中間データメモリ121に保存する(ステップS304)。
図形描画処理部122は、中間データメモリ121から中間データを読み込んで解釈する(ステップS305)。この時、分割イメージの有無を判断し(ステップS306)、分割イメージがある場合は、イメージの数だけループ処理が行われる(ステップS307)。このループ処理では、イメージの描画範囲を求め(ステップS308)、その描画範囲におけるイメージ描画が行われる(ステップS309)。イメージの数だけ処理が繰り返されるとループエンドとなる(ステップS310)。
また、ステップS306において、分割されたイメージが無い場合は、そのイメージのまま描画処理が行われる(ステップS311)。
以上述べたように、第3の実施の形態によれば、インタープリタ実行部120で解釈されたイメージ描画コマンドに対して中間データを生成する際に、イメージ高さが特定の範囲内にある場合は、分割して回転処理を行い、分割されたイメージ毎に描画処理を行うため、回転処理と描画処理のバランスをとりつつ、処理を高速化することができる。
(第4の実施の形態)
図18は、第4の実施の形態における中間データメモリ内のデータ構造例を示す図である。この図18に示すように、第4の実施の形態の特徴は、上記図16のイメージ処理部127において、イメージを分割する際に、分割されたイメージ毎に描画先座標情報を付随させた一つの中間データを生成する点にある。
このように、第4の実施の形態によれば、メモリ上において第3の実施の形態よりもメモリジャンプ数を少なくできるため、メモリアクセスの負荷を軽減して、処理を高速化することができる。
(第5の実施の形態)
図19は、第5の実施の形態における中間データメモリ内のデータ構造例を示す図である。この図19に示すように、第5の実施の形態の特徴は、上記図16のイメージ処理部127において、中間データを分割したイメージの数だけ生成する点にある。すなわち、中間データと、イメージデータとが1対1で対応するようにする。
このように、第5の実施の形態によれば、メモリ上において第4の実施の形態よりもさらにメモリジャンプ数を少なくすることができるため、メモリアクセスの負荷が軽減され、処理を高速化することができる。
(第6の実施の形態)
図20は、第6の実施の形態において拡大描画指定をした場合のイメージ分割を説明する図である。拡大描画指定をされたイメージの場合は、描画時の拡大ルールを考慮して、描画先のワード境界をイメージデータに適応する必要がある。具体的には、描画先のワード境界によって分割された描画先イメージの幅を拡大率で割って、その値を高さとして回転前イメージの分割に使用するものである。すなわち、図20では、等倍描画の時(図14参照)とは異なり、描画時に適用されるX方向拡大率で割った高さとなる。
このように、第6の実施の形態によれば、拡大描画指定をした場合であっても、拡大された描画先のワード境界に基づいてイメージの分割処理を行うため、等倍描画の場合と同様にイメージデータの描画処理を高速化することができる。
(第7の実施の形態)
図21は、第7の実施の形態にかかるプリンタドライバの概略構成を説明するブロック図であり、図22は、第7の実施の形態の動作を説明するフローチャートである。第7の実施の形態における印刷データ処理システムは、印刷データを生成するホストPC内のプリンタドライバ22と、プリンタコントローラ23とによって構成されている。このプリンタドライバ22に入力されるイメージ描画コマンドは、ホストPC内のアプリケーション/OS21によって生成され、そのイメージの回転処理をプリンタドライバ22のイメージ処理部225で実行するものである。
第7の実施の形態では、上記第3の実施の形態において生成していた中間データに代えて、図21に示す描画コマンド処理部222がイメージ処理部225を介して処理するイメージ描画コマンドを印刷データ223として出力する点に特徴がある。
印刷データ223に出力されるイメージ描画コマンドは、一つのイメージデータのみが含まれる形式しかプリンタコントローラ23が対応していない場合、イメージ描画コマンドをイメージ処理部225にて分割処理するようにする。
第7の実施の形態における動作を図22のフローチャートに基づいて説明する。プリンタドライバ22では、アプリケーション/OS21から入力されるイメージ描画コマンドに基づいて、イメージ高さが33ピクセル〜128ピクセルの範囲内か否かを判断する(ステップS400)。範囲内であれば、描画先の座標から分割高さを求め(ステップ401)、イメージ処理部225において分割しながら回転処理を行い(ステップS402)、印刷データ223に出力する(ステップS403)。
また、ステップS400において、イメージ高さが33ピクセル〜128ピクセルの範囲外である場合は、分割処理せずにそのまま印刷データ223に出力する(ステップS404)。ここまでが、プリンタドライバ22における処理である。
続いて、プリンタコントローラ23のインタープリタ実行部(図1の120参照)にて、印刷データの解釈と実行が行われる(ステップS405)。この時、図形描画処理部(図1の122参照)において分割イメージの有無が判断され(ステップS406)、分割イメージがある場合は、イメージの数だけループ処理が行われる(ステップS407)。このループ処理では、イメージの描画範囲を求め(ステップS408)、その描画範囲におけるイメージ描画が行われる(ステップS409)。イメージの数だけ上記処理が繰り返されるとループエンドとなる(ステップS410)。
また、ステップS406において、分割されたイメージが無い場合は、当該イメージのまま描画処理が行われる(ステップS411)。
以上述べたように、第7の実施の形態によれば、プリンタドライバ22のインタープリタ実行部120で解釈されたイメージ描画コマンドをイメージ処理部225で処理する際に、イメージ高さが特定の範囲内にある場合は、分割して回転処理し、印刷データとしてプリンタコントローラ23に出力する。プリンタコントローラ23では、分割されたイメージ毎に描画処理が行われるため、回転処理と描画処理のバランスをとりつつ、処理を高速化することができる。
(第8の実施の形態)
図23は、第8の実施の形態にかかるプリンタコントローラの概略構成を説明するブロック図であり、図25は、第8の実施の形態の動作を説明するフローチャートであり、図26は、図25のステップS501のサブルーチンを示すフローチャートである。
図23に示すように、ホストPC11から送られてくる印刷データ(イメージデータ)をインタープリタ実行部120で解釈して実行する際に、イメージ処理部127でイメージを分割して回転処理を行うと、描画時にも分割したまま描画を行わなければならなくなる。また、描画時においても、イメージが一定以上横に長い領域であれば描画速度は速くなるので、どんな大きさのイメージでも分割すれば良いとはならない。しかし、イメージの回転をディザリング前に行う場合は、描画処理よりも回転処理の方がメモリアクセス量が多くなるため、分割してから行なった方が良い場合が多い。
そこで、第8の実施の形態にかかるプリンタコントローラ12の特徴は、イメージの形状(イメージの幅と高さのサイズ判定)に基づいて、分割してから回転処理を行うか否かを事前に判定するという点にある。ここでは、回転後に縦に細長くなるイメージの幅高さ(イメージ形状)の閾値は、実行環境におけるメモリアクセス速度を用いて決定するようにする。
まず、図23に示すサイズ判定処理部128は、インタープリタ実行部120の起動時において、例えば連続した128Byteに対するリード・ライト時間(Ts1)と、128Byte間隔で1Byteずつ128回リード・ライトした時間(Td1)とを測定する。このサイズ判定処理部128による測定が1度でできない場合は、複数回連続して測定するようにする。仮に、この段階で両測定時間に差が無い場合は、この環境下においてイメージ分割による高速化は行われない。また、64Byte、あるいは96Byteの時も同様に測定が行われる。
印刷が始まってページ情報が設定されると、1ピクセルを何ビットで表現できるかという「解像度深さ」を得ることができる。そこで、上記した連続領域に対するアクセス時間を8で割り、得られた解像度深さをかけることで描画処理における時間係数(Ts2)が求まる。また、これと同時に間隔のある領域へのアクセス時間を8で割り、得られた解像度深さをかけることで時間係数(Td2)が求まる。
上記したように、64Byte,96Byte,128Byteのそれぞれの場合において、次式(1)を満たす数値の前後を分割イメージの高速化の対象とする。
(Ts1+Td2)>(Td1+Ts2) ・・・・・(1)
第8の実施の形態にかかる動作を図25および図26を用いて説明する。図25に示すように、インタープリタ実行部120を起動させた後(ステップS500)、メモリアクセス速度の測定処理が行われる(ステップS501)。
メモリアクセス速度の測定処理は、図26に示すように、連続したメモリ領域に対するアクセス速度の測定を行い(ステップS5011)、同じ実行環境下でバースト長を超える間隔を持ったアドレスへのアクセス速度の測定を行って(ステップS5012)、上記(1)式に基づいて分割対象となるイメージサイズが決定される(ステップS5013)。
他にアクセス速度を測定する必要が有る場合は、上記ステップS5011に戻って、上記測定処理が繰り返される。また、他にアクセス速度を測定する必要が無い場合は、インタープリタ実行部120により上記決定されたイメージサイズに該当すると判定されると、イメージの分割と回転処理を行って中間データメモリ121に保存する。
ステップS502において、印刷のジョブ待ち状態であればステップS503に移行して、印刷ジョブが開始される。印刷ジョブが開始されると、図形描画処理部122が中間データメモリ121に保存されている描画コマンドの集合としての印刷データを読み出し、ページメモリ123に貼り付けることで描画処理が行われる(ステップS504)。
ステップS505において、終了要求が無い場合は、ステップS502に戻って、上記描画処理が繰り返される。終了要求が有るかジョブ待ち状態で無くなった場合は、処理を終了する。
以上述べたように、第8の実施の形態によれば、描画処理に先立って、環境に応じたイメージデータの形状(イメージの幅と高さのサイズ判定)を求めておき、そのイメージデータのサイズに該当する場合にのみイメージデータの分割と回転処理を行うが、該当しない場合は分割せずに描画処理を行うことによって、環境に応じて処理速度を高速化することができる。
(第9の実施の形態)
図24は、2次元領域中にある64×512といった幅と高さを持つイメージ領域を通常の90°回転と分割してからの回転処理時間とを計測する説明図である。
第9の実施の形態にかかるプリンタコントローラ12の特徴は、上記第8の実施の形態におけるインタープリタ実行部120の起動時に行う判定処理を、図24に示す1000×1000という2次元領域中にある64×512、96×512、128×512といった幅と高さを持つイメージ5の領域を通常の90°回転して転写した場合(イメージ6)と、分割してから回転し転写する場合の速度を実際に計測して比較する点にある。
このサイズ判定処理は、実行環境によるパラメータを用いた場合であって、最も処理の速い幅高さ付近のイメージサイズであれば、分割せずにそのまま回転処理を行うことが最も高速化となる。また、分割することで最も処理速度の速いイメージサイズとなるのであれば、そのサイズに分割した後、回転処理することが最も高速化となる。
さらに、別のサイズ判定処理としては、印刷ページや印刷データに依存するパラメータによって判定するものがある。例えば、印刷のページ情報が設定されると、1ピクセルを何ビットで表現するかという「解像度深さ」が決まり、これによって高速化の対象となるイメージサイズが変動する。このため、印刷ページや印刷データに依存するパラメータを用いることにより、処理速度の速いイメージサイズを判定する。
上記したように、サイズ判定処理には、実行環境によるパラメータを用いて判定する場合と、印刷ページや印刷データに依存するパラメータを用いて判定する場合とがある。そして、両者はイメージサイズに対して別々に作用するため、これらの判定処理はそれぞれ独立して処理が行われる。
なお、この第9の実施の形態では、イメージを90°回転して転写した場合の速度を実際に計測した例を用いて説明したが、これに限定されず、イメージを270°回転して転写する場合であっても勿論良い。
また、この第9の実施の形態では、実行環境によるパラメータを用いたサイズ判定処理を装置の起動時に一度だけ行い、それ以降の起動時にはその判定結果を使用するようにしても良い。これにより、装置の起動時毎に行われるサイズ判定処理を省略することが可能となり、処理を一層高速化することができる。
また、この第9の実施の形態では、印刷データに依存するパラメータによってサイズ判定処理を行う場合に、ページの始めやジョブの始めといった必要最低限の回数だけで処理するようにしても良い。これにより、ページ毎あるいはジョブ毎に行われるサイズ判定処理を省略することが可能となり、処理を一層高速化することができる。
以上述べたように、第9の実施の形態によれば、サイズ判定処理を1000×1000という2次元領域中にある複数の幅と高さを持つイメージ領域を回転して転写した場合と、分割してから回転し転写する場合の速度を実際に計測して比較することで、処理が速かった幅と高さを持つイメージを高速化の対象とするため、環境に応じた高速化を実施することが可能となる。
(第10の実施の形態)
第10の実施の形態にかかるプリンタコントローラ12の特徴は、インタープリタの作成環境と動作環境が同じ場合に、インタープリタ作成時に上記第9の実施の形態におけるメモリアクセス速度の測定を行い、その測定値を定数としてインタープリタに組み込んで作成する点にある。つまり、サイズ判定処理には、実行環境によるパラメータを用いて判定する場合と、印刷ページや印刷データに依存するパラメータを用いて判定する場合とがあり、それらはイメージサイズに対して別々に作用するため、その判定処理は別処理部で独立して行われる。図23のプリンタコントローラ12の構成図の場合は、サイズ判定処理部128の中にそれぞれ独立した判定部がある。
図27は、第10の実施の形態の動作を説明するフローチャートである。図27に示すように、インタープリタ作成プログラムを開始すると、インタープリタ本体を作成する前に、上記したサイズ判定処理部128におけるメモリアクセス速度の測定プログラムを作成する(ステップS600)。
そして、この測定プログラムを使い、サイズ判定処理部128の独立した判定部をそれぞれ実行することにより(ステップS601)、高速化の対象となるイメージサイズが求められ、これを定数としてインタープリタに組み込まれる(ステップS602)。このようにしてインタープリタ(プログラム)が作成される(ステップS603)。
以上述べたように、第10の実施の形態によれば、インタープリタ作成時にイメージサイズに応じたメモリアクセス速度を測定し、その結果をインタープリタの定数に組み込むため、その後のサイズ判定処理やメモリアクセス速度の測定が省略可能となって、処理を一層高速化することができる。
(第11の実施の形態)
第11の実施の形態にかかるプリンタコントローラ12の特徴は、上記第8の実施の形態のように、メモリアクセス速度の測定処理といった専用の判定処理時間を用いずに、他の目的を持った既存関数の処理時間を用いて分割対象となるイメージサイズを判定する点にある。
例えば、第11の実施の形態では、本来は別の目的を持つ処理として、ディザ展開関数の処理時間、ある領域をゼロクリアする関数などの処理時間を利用することにより、上記測定の代用とすることが可能となる。
このように、第11の実施の形態によれば、パラメータによるイメージサイズの判定処理を行うに当たって、必ずしも専用の判定処理時間を用いる必要がなく、ディザ展開関数の処理時間やある領域をゼロクリアする関数などの処理時間を使って、分割対象となるイメージサイズを判定することができるため、さらに処理時間を短縮することが可能となり、一層高速化することができる。
以上のように、本発明にかかる印刷データ処理装置は、例えばホストPCなどから入力されるPDL(プリンタ記述言語)等によって記述された描画命令に従うイメージデータなどを高速描画する印刷データ処理装置に適している。
印刷データ処理装置としてのプリンタコントローラの概略構成を説明するブロック図である。 第1の実施の形態にかかるプリンタコントローラの概略構成を説明するブロック図である。 イメージ描画先のページメモリに対してイメージの描画範囲を示した図である。 任意ワード幅イメージ描画関数部における処理手順を説明するフローチャートである。 1ワード幅限定イメージ描画関数部における処理手順を説明するフローチャートである。 ページメモリに対する種々のイメージの描画範囲を示す図である。 イメージデータを予めページメモリのワード境界で2つに分かれるように分割したイメージの描画範囲を示す図である。 第3の実施の形態にかかるプリンタコントローラの概略構成を説明するブロック図である。 右90度回転前は横長で回転後は縦長となるイメージを読み込む場合のメモリジャンプの発生を説明する図である。 90度回転後のイメージ幅の狭いイメージを説明する図である。 横に細長いイメージを90度回転する場合にさらに細長くなるよう上下に分割処理したイメージを説明する図である。 90度回転後にページメモリに描画されたイメージを示す図である。 図12のイメージをX座標128で分割したイメージAとBを示す図である。 図13のイメージの90度回転前のイメージ幅を示す図である。 図14のイメージを90度回転して中間データに変換した中間データメモリ内のデータ構造例を示す図である。 図8のプリンタコントローラに任意ワード幅イメージ描画関数部と1ワード幅限定イメージ描画関数部を付加した構成を説明するブロック図である。 第3の実施の形態にかかる動作を説明するフローチャートである。 第4の実施の形態における中間データメモリ内のデータ構造例を示す図である。 第5の実施の形態における中間データメモリ内のデータ構造例を示す図である。 第6の実施の形態において拡大描画指定をした場合のイメージ分割を説明する図である。 第7の実施の形態にかかるプリンタドライバの概略構成を説明するブロック図である。 第7の実施の形態の動作を説明するフローチャートである。 第8の実施の形態にかかるプリンタコントローラの概略構成を説明するブロック図である。 2次元領域中にある64×512といった幅と高さを持つイメージ領域を通常の90°回転と分割してからの回転処理時間とを計測する説明図である。 第8の実施の形態の動作を説明するフローチャートである。 図25のステップS501のサブルーチンを示すフローチャートである。 第10の実施の形態の動作を説明するフローチャートである。
符号の説明
11 ホストPC
12 プリンタコントローラ
120 インタープリタ実行部
121 中間データメモリ
122 図形描画処理部
123 ページメモリ
124 CPU
125 任意ワード幅イメージ描画関数部
126 1ワード幅限定イメージ描画関数部
127 イメージ処理部
128 サイズ判定処理部
21 アプリケーション/OS
22 プリンタドライバ
220 インタープリタ実行部
221 中間データメモリ
222 描画コマンド処理部
223 印刷データ
224 CPU
225 イメージ処理部
23 プリンタコントローラ

Claims (27)

  1. 生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行う図形描画処理手段と、
    前記図形描画処理手段のレンダラ環境として、メモリワード幅を最小単位としてメモリアクセスを行うレンダリングエンジンが存在する際に、
    任意の高さを持つ任意のワード幅にアクセス可能な任意ワード幅描画手段と、
    任意の高さを持つ1ワード幅限定でアクセス可能な1ワード幅限定描画手段と
    を備え、前記図形描画処理手段が前記任意ワード幅描画手段と前記1ワード幅限定描画手段とを適宜切り替えながら描画処理することを特徴とする印刷データ処理装置。
  2. 前記図形描画処理手段によってイメージ描画コマンドを描画する場合は、
    前記任意ワード幅描画手段が任意ワード幅イメージ描画関数手段であって、
    前記1ワード幅限定描画手段が1ワード幅限定イメージ描画関数手段であることを特徴とする請求項1に記載の印刷データ処理装置。
  3. 前記図形描画処理手段によって矩形描画コマンドを描画する場合は、
    前記任意ワード幅描画手段が任意ワード幅矩形描画関数手段であり、
    前記1ワード幅限定描画手段が1ワード幅限定矩形描画関数手段であることを特徴とする請求項1に記載の印刷データ処理装置。
  4. 前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、
    必要に応じてディザリングなどの階調処理をワード幅単位で行うことを特徴とする請求項2または3に記載の印刷データ処理装置。
  5. 前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、
    必要に応じてROPなどの演算処理をワード幅単位で行うことを特徴とする請求項2または3に記載の印刷データ処理装置。
  6. 前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、
    必要に応じてブラシなどのパターン生成処理をワード幅単位で行うことを特徴とする請求項2または3に記載の印刷データ処理装置。
  7. 前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、
    必要に応じてイメージなどのビットマップ展開処理をワード幅単位で行うことを特徴とする請求項2または3に記載の印刷データ処理装置。
  8. 前記図形描画処理手段が前記バンドメモリもしくはページメモリに対してレンダリング処理を行って描画する際に、
    必要に応じてマスクなどの描画と非描画の選択処理をワード幅を単位として、ワードのビットパターンとして行うことを特徴とする請求項2または3に記載の印刷データ処理装置。
  9. 前記図形描画処理手段が2ワード幅もしくは任意のワード幅以下で描画する際に、前記任意ワード幅描画手段を使用した場合よりも、前記1ワード限定描画手段を必要な回数だけ使用した場合の方が処理速度が速くなる場合は、1ワード限定描画手段を使用して描画することを特徴とする請求項4〜8のいずれか一つに記載の印刷データ処理装置。
  10. 生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行う図形描画処理手段と、
    イメージデータの回転処理もしくは分割処理を行うイメージ処理手段と
    を備え、
    前記イメージ処理手段によりページ回転を行ってイメージを描画する際に、イメージデータをいくつかのイメージに分割し、その後回転処理することを特徴とする印刷データ処理装置。
  11. 前記イメージ処理手段によるイメージデータの分割は、回転後の描画先において縦に細長くなり、1ワード以上4ワード未満の幅となる場合に行うことを特徴とする請求項10に記載の印刷データ処理装置。
  12. 前記イメージ処理手段によるイメージデータの分割は、回転前のイメージを上下に分けるように分割することを特徴とする請求項10または11に記載の印刷データ処理装置。
  13. 前記イメージ処理手段において分割されたイメージデータは、中間データとする段階で複数のイメージ描画コマンドにすることを特徴とする請求項12に記載の印刷データ処理装置。
  14. 前記イメージ処理手段において分割されたイメージデータは、中間データとする段階で1つのイメージ描画コマンドに複数のイメージデータが結合された形で保存することを特徴とする請求項12に記載の印刷データ処理装置。
  15. 前記イメージ処理手段によるイメージデータの分割は、回転後の描画先でのページメモリのワード境界によって行うことを特徴とする請求項13または14に記載の印刷データ処理装置。
  16. 印刷データをレンダリング処理する前記図形描画処理手段が任意のワード幅にアクセス可能な任意ワード幅イメージ描画関数手段と、1ワード幅限定でアクセス可能な1ワード幅限定イメージ描画関数手段とを選択使用可能な場合に、
    前記イメージ処理手段において分割されたイメージデータを描画する際に、前記1ワード幅限定イメージ描画関数手段を優先使用することを特徴とする請求項15に記載の印刷データ処理装置。
  17. 印刷データをレンダリング処理する前記図形描画処理手段が任意のワード幅にアクセス可能な任意ワード幅イメージ描画関数手段と、1ワード幅限定でアクセス可能な1ワード幅限定イメージ描画関数手段とを選択使用可能な場合に、
    イメージの高さをパラメータとして前記イメージ処理手段による回転処理を加えても、前記任意ワード幅イメージ描画関数手段を用いた方が、前記イメージ処理手段により分割して回転を行い、前記1ワード幅限定イメージ描画関数手段を用いた場合よりも高速に描画できるのであれば、分割せずに前記任意ワード幅イメージ描画関数手段を優先使用することを特徴とする請求項15に記載の印刷データ処理装置。
  18. 1ワード幅以下のイメージであって、描画先においてワード境界にまたがる場合は、
    前記任意ワード幅イメージ描画関数手段を使用するより、前記1ワード幅限定イメージ描画関数手段を2回呼び出した方が処理が速くなる場合は、前記イメージ処理手段によりイメージを分割処理して前記1ワード幅限定イメージ描画関数手段を用いることを特徴とする請求項16または17に記載の印刷データ処理装置。
  19. 生成された印刷データをバンドメモリもしくはページメモリに対してレンダリング処理を行う図形描画処理手段と、
    イメージデータの回転処理もしくは分割処理を行うイメージ処理手段と、
    前記イメージデータが環境に応じて求めたイメージデータのサイズに該当するか否かを判定するサイズ判定処理手段と
    を備え、前記図形描画処理手段によるレンダリング処理前に、前記サイズ判定処理手段が環境に応じて求めたイメージデータのサイズに該当すると判定すると、前記イメージデータを前記イメージ処理手段でいくつかのイメージに分割し、回転処理を行うことを特徴とする印刷データ処理装置。
  20. 前記サイズ判定処理手段は、少なくとも環境によるパラメータを判定する処理と、印刷ページ、印刷データに依存するパラメータを判定する処理とを独立して処理することを特徴とする請求項19に記載の印刷データ処理装置。
  21. 前記環境によるパラメータは、少なくともいくつかの細長いイメージを90°回転や270°回転する時間と、縦に細長いイメージを仮想ページメモリに描画する時間とを用いることを特徴とする請求項20に記載の印刷データ処理装置。
  22. 前記環境によるパラメータは、少なくとも連続メモリ領域に対するアクセススピードと、その環境のバースト長を超える間隔を持ったアドレスに対するアクセススピードとを用いることを特徴とする請求項20に記載の印刷データ処理装置。
  23. 前記印刷データに依存するパラメータは、少なくともページ情報の解像度深さを持ち、イメージサイズの決定に使用することを特徴とする請求項20に記載の印刷データ処理装置。
  24. 前記環境によるパラメータを用いた判定は、装置の起動時に一度だけ行い、それ以降はその結果を使用することを特徴とする請求項21または22に記載の印刷データ処理装置。
  25. 前記イメージデータの作成環境と実行環境が同じ場合は、環境による判定を別処理部とし、高速化処理が載っている本体を作成する前に、独立した判定部を実行して必要な情報を集め、定数として本体の作成時に組み込むことを特徴とする請求項21または22に記載の印刷データ処理装置。
  26. 前記印刷データに依存するパラメータによって判定を行う場合は、ページの始めやジョブの始めといった必要最低限の回数だけで処理することを特徴とする請求項23に記載の印刷データ処理装置。
  27. 前記パラメータによる判定処理は、専用の判定処理時間を用いずに、他の目的を持った既存関数の処理時間を用いることを特徴とする請求項20に記載の印刷データ処理装置。
JP2007010736A 2006-06-01 2007-01-19 印刷データ処理装置 Expired - Fee Related JP5079341B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007010736A JP5079341B2 (ja) 2006-06-01 2007-01-19 印刷データ処理装置
US11/796,300 US8159708B2 (en) 2006-06-01 2007-04-27 Apparatus for accelerated processing of print data by maximizing word-boundary accesses of image data

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006153891 2006-06-01
JP2006153891 2006-06-01
JP2007010736A JP5079341B2 (ja) 2006-06-01 2007-01-19 印刷データ処理装置

Publications (2)

Publication Number Publication Date
JP2008006803A true JP2008006803A (ja) 2008-01-17
JP5079341B2 JP5079341B2 (ja) 2012-11-21

Family

ID=38789552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007010736A Expired - Fee Related JP5079341B2 (ja) 2006-06-01 2007-01-19 印刷データ処理装置

Country Status (2)

Country Link
US (1) US8159708B2 (ja)
JP (1) JP5079341B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011062205A1 (ja) * 2009-11-17 2011-05-26 Necシステムテクノロジー株式会社 画像描画装置、画像描画方法および記録媒体

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4914318B2 (ja) * 2007-09-14 2012-04-11 株式会社リコー 画像処理装置、画像処理システム、画像処理方法、プログラム、および記録媒体
JP5413688B2 (ja) * 2011-02-16 2014-02-12 ブラザー工業株式会社 画像区画プログラム、及び、表示装置
JP6668611B2 (ja) 2014-06-20 2020-03-18 株式会社リコー プログラム、情報処理装置、及び情報処理システム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11309917A (ja) * 1998-04-28 1999-11-09 Canon Inc 印刷システムおよび印刷制御方法、データ処理装置、データ処理方法、記録媒体
JP2001047673A (ja) * 1999-08-10 2001-02-20 Canon Inc データ処理装置およびデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2003122521A (ja) * 2001-10-18 2003-04-25 Canon Inc 印刷システム、情報処理装置、それらの描画方法、プログラム及び記憶媒体
JP2004164549A (ja) * 2002-03-18 2004-06-10 Ricoh Co Ltd 画像処理装置、描画処理方法及び該方法を実行するためのプログラム
JP2005088574A (ja) * 2003-08-11 2005-04-07 Seiko Epson Corp 液体噴射データのデータ転送装置、液体噴射装置
JP2006103045A (ja) * 2004-10-01 2006-04-20 Seiko Epson Corp 画像形成装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4703515A (en) * 1985-08-26 1987-10-27 Xerox Corporation Image rotation
JPS6370381A (ja) * 1986-09-12 1988-03-30 インターナショナル・ビジネス・マシーンズ・コーポレーション イメ−ジ・デ−タの回転方法
US5204916A (en) * 1991-08-06 1993-04-20 Eastman Kodak Company Tile-oriented technique for collectively performing image rotation, scaling and digital halftone screening
US5717845A (en) * 1994-12-13 1998-02-10 Microsoft Corporation Method and apparatus for transferring a brush pattern to a destination bitmap
US5945997A (en) * 1997-06-26 1999-08-31 S3 Incorporated Block- and band-oriented traversal in three-dimensional triangle rendering
JP2000263857A (ja) * 1999-03-17 2000-09-26 Oki Data Corp 印刷システム
US6473814B1 (en) * 1999-05-03 2002-10-29 International Business Machines Corporation System for optimally tuning a burst length by setting a maximum burst length based on a latency timer value and adjusting the maximum burst length based on a cache line size
JP2003039748A (ja) * 2001-08-01 2003-02-13 Canon Inc 印刷制御装置および印刷制御方法および記憶媒体
JP4010537B2 (ja) 2002-02-21 2007-11-21 株式会社リコー 画像出力装置及び該装置の画像出力方法
US7308608B1 (en) * 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US7376763B2 (en) * 2003-07-17 2008-05-20 International Business Machines Corporation Method for transferring data from a memory subsystem to a network adapter by extending data lengths to improve the memory subsystem and PCI bus efficiency
JP2007076337A (ja) * 2005-09-16 2007-03-29 Ricoh Co Ltd 画像処理装置、画像処理方法、および画像処理用プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11309917A (ja) * 1998-04-28 1999-11-09 Canon Inc 印刷システムおよび印刷制御方法、データ処理装置、データ処理方法、記録媒体
JP2001047673A (ja) * 1999-08-10 2001-02-20 Canon Inc データ処理装置およびデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2003122521A (ja) * 2001-10-18 2003-04-25 Canon Inc 印刷システム、情報処理装置、それらの描画方法、プログラム及び記憶媒体
JP2004164549A (ja) * 2002-03-18 2004-06-10 Ricoh Co Ltd 画像処理装置、描画処理方法及び該方法を実行するためのプログラム
JP2005088574A (ja) * 2003-08-11 2005-04-07 Seiko Epson Corp 液体噴射データのデータ転送装置、液体噴射装置
JP2006103045A (ja) * 2004-10-01 2006-04-20 Seiko Epson Corp 画像形成装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011062205A1 (ja) * 2009-11-17 2011-05-26 Necシステムテクノロジー株式会社 画像描画装置、画像描画方法および記録媒体
US8805119B2 (en) 2009-11-17 2014-08-12 Nec System Technologies, Ltd. Image rendering device, image rendering method, and recording medium

Also Published As

Publication number Publication date
US8159708B2 (en) 2012-04-17
US20070279420A1 (en) 2007-12-06
JP5079341B2 (ja) 2012-11-21

Similar Documents

Publication Publication Date Title
JP5079341B2 (ja) 印刷データ処理装置
JP2817687B2 (ja) 画像形成装置
JP3791259B2 (ja) アウトラインスムージング処理方法
JP3845045B2 (ja) 画像処理装置、画像処理方法、画像形成装置、印刷装置及びホストpc
JPH08146936A (ja) アウトラインフォントデータの処理方法および装置
JP2008279626A (ja) 画像処理装置及び画像処理プログラム
JP2007122188A (ja) 画像形成装置及び画像処理方法、並びにプログラム
JP3606006B2 (ja) 画像形成装置およびグラデーション描画方法
JP3754975B2 (ja) 情報処理装置及び情報処理方法
JP2004299104A (ja) イメージデータ処理装置および画像形成装置
JP2007237510A (ja) 画像形成装置、並びに当該装置で実行される画像形成方法及び画像形成プログラム
JP3450961B2 (ja) 印刷装置及びその制御方法
JP2010012737A (ja) 印刷制御装置、印刷処理システム、描画処理方法およびプログラム
JP2009073083A (ja) 画像形成装置、画像形成方法、および画像形成プログラム
JP2004334533A (ja) 画像処理装置および画像処理方法
JP4325339B2 (ja) 印刷システム、ホストコンピュータ及びプリンタドライバ
JP2002024840A (ja) 描画処理装置
JP2009066926A (ja) 画像処理装置及び画像形成システム
JP4380947B2 (ja) 画像出力装置
JP6926394B2 (ja) 印刷装置及びプログラム
JP4764730B2 (ja) 画像形成装置及び画像形成方法
JP2015013388A (ja) 画像処理装置及び画像処理方法
JP2005148954A (ja) 画像形成制御装置及びその制御方法とプリンタドライバ及び印刷制御装置および印刷制御方法
JP2988303B2 (ja) イメージ処理装置
JP2002096506A (ja) ラスタライズ方法、印刷制御装置、印刷システムおよびプログラムを記録した記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120321

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120515

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: 20120828

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120829

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5079341

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees