JP2007245723A - ドキュメント・レンダリング・システム、方法およびプログラム - Google Patents

ドキュメント・レンダリング・システム、方法およびプログラム Download PDF

Info

Publication number
JP2007245723A
JP2007245723A JP2007069397A JP2007069397A JP2007245723A JP 2007245723 A JP2007245723 A JP 2007245723A JP 2007069397 A JP2007069397 A JP 2007069397A JP 2007069397 A JP2007069397 A JP 2007069397A JP 2007245723 A JP2007245723 A JP 2007245723A
Authority
JP
Japan
Prior art keywords
scanline
memory location
instruction
rendering
document
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.)
Pending
Application number
JP2007069397A
Other languages
English (en)
Inventor
Benjamin D Capper
ディー. カッパー,ベンジャミン
Abhijit Mandal
マンダル,アビジット
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.)
Toshiba Corp
Toshiba TEC Corp
Original Assignee
Toshiba Corp
Toshiba TEC Corp
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 Toshiba Corp, Toshiba TEC Corp filed Critical Toshiba Corp
Publication of JP2007245723A publication Critical patent/JP2007245723A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation

Landscapes

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

Abstract

【課題】メモリの効率的な使用を可能とし、複数のデータ・タイプを含むページ記述言語入力に適応するドキュメント・レンダリング・システム、方法およびプログラムを提供する。
【解決手段】レンダリングのためのシステム、方法またはプログラムが、連結してレンダリングされたドキュメント出力を形成する複数のバンドのそれぞれに対応する一連のインストラクションの配列を生成するように、ページ記述言語で記述された電子ドキュメントの解釈を行う。各インストラクションの配列は、出力イメージのスキャンラインに対応して生成されるピクセルのバンドを記述するインストラクションを含む。インストラクションは、オリジナルの電子ドキュメント内に記述されていたイメージ・プリミティブを含む。
【選択図】図5A

Description

本発明は、電子ドキュメント・ファイルのエンコードされた記述からビットマップ・イメージをレンダリングするシステム、方法およびプログラムに関し、特に、複数あるいは多様なイメージ・タイプを含む複雑な電子ドキュメントを効率的にレンダリングするシステム、方法およびプログラムに関する。
代表的なドキュメント出力デバイス(装置)、例えばレーザ・プリンタ、インクジェット・プリンタ、またはその他のビットマップ出力デバイスは、一般にビットマップ出力イメージをラスタ・イメージ処理(raster image processing;以下、RIPということがある。)によって完成されるレンダリングから生成する。よりハイレベルの記述言語が、通常は、電子ドキュメントに関連付けされる。この記述言語は、ページ記述言語(page description language)またはPDLと呼ばれる。ページ記述言語フォーマットは多く存在する。それらはアプリケーション、例えばワード・プロセッシング・パッケージ、ドローイング・パッケージ、コンピュータ支援設計(CAD)パッケージ、イメージ処理パッケージ、またはこれらの類から発することができる。その種のファイルは、ドキュメント入力から、例えば電子メール、スキャナ、ディジタイザ、ラスタライザ、ベクトル・ジェネレータ、データ・ストレージおよびこれらの類からも出力することができる。
ラスタ・イメージ・プロセッサは、通常、よりハイレベルの記述言語を、上記のようなビットマップ出力に伝達される一連のスキャンラインまたはビットマップ部分にデコードする。一度にシート全体(またはそれ以上)のビットマップ・イメージ・データがページ・バッファ内に準備され、その後、続いてエンジンに伝達されるが、これはかなりの容量のメモリを必要とする。したがって初期のラスタ・イメージ・プロセッサは、一度に1バンドのピクセルがページ記述から抽出され、このバンドがバッファされ、グラフィカル出力の生成のためにエンジンに伝達されるというスキームを採用していた。このようにして1ないしは複数のページの出力を完成するために一連のバンドが生成されて出力されていた。正確なバンド情報を抽出することは、しばしば、特に入力ページ記述が複数のイメージまたはグラフィクス、テキスト、オーバーレイおよびその類といった混合データ・タイプを含む場合に困難となる。いくつかの初期のシステムにおいては、よりハイレベルのページ記述からの直接的なバンドの生成が、下流のエンジンによって入力が期待されるレートに対応するタイミングにおいてバンドへの変換が完成されることも必要とする。
したがって、メモリの効率的な使用を可能にし、複数の入力データ・タイプを含むページ記述言語入力に適応し、かつグラフィクス出力エンジンの能力と独立したタイミングを伴うイメージ生成に適応するイメージ・レンダリング・システム、方法およびプログラムが望まれていた。
本発明は、上記の従来の問題点に鑑みてなされたもので、メモリの効率的な使用を可能にし、複数の入力データ・タイプを含むページ記述言語入力に適応し、グラフィクス出力エンジンの能力と独立したタイミングを伴うイメージ生成に適応するドキュメント・レンダリングのシステム、方法およびプログラムを提供することを目的とする。さらに、本発明は、複雑なページ記述ファイルからの正確かつメモリ効率のよいレンダリングを可能にするドキュメント・レンダリングのシステム、方法およびプログラムを提供することを目的とする。
本発明によるドキュメント・レンダリング・システムは、それぞれのスキャンライン・メモリ・ロケーションがレンダリングされるドキュメントのスキャンラインに対応する、複数のスキャンライン・メモリ・ロケーションを割り付けるスキャンライン・メモリ割り付け手段と、それぞれのスキャンライン・メモリ・ロケーションに対応する少なくとも一つのインストラクション・メモリ・ロケーションを割り付けるインストラクション・メモリ割り付け手段とを含むメモリ割り付けユニットと、少なくとも一つのエンコードされた視覚的出力プリミティブを含む電子ドキュメントを受け取る受け取り手段と、受け取った電子ドキュメントのそれぞれの視覚的出力プリミティブを一連のインストラクションに変換する変換手段と、それぞれのインストラクションと少なくとも一つのスキャンライン・メモリ・ロケーションとを関連付けする関連付け手段と、前記メモリ割り付けユニットによって割り付けられ、選択されたスキャンライン・メモリ・ロケーションに対応するインストラクション・メモリ・ロケーションにそれぞれのインストラクションを保存するストレージ手段と、エンコードされたスキャンライン出力ファイルを、それぞれのスキャンライン・メモリ・ロケーションに対応するそれぞれのインストラクション・メモリ・ロケーションの内容を含めて、ドキュメント・レンダリング・デバイスに伝達する出力手段とを有する。本発明によるドキュメント・レンダリング・システムは、前記エンコードされたスキャンライン出力ファイルを受け取る手段と、それぞれのスキャンライン・メモリ・ロケーションのインストラクションを連続的にデコードするデコーディング手段と、それぞれのスキャンライン・メモリ・ロケーションのデコードされたインストラクションに対応するビットマップ・バンド出力を生成する手段とを、さらに、有する。ここで、それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定する。前記受け取り手段は、少なくとも一つのスキャンライン・メモリ・ロケーションが前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含むように、エンコードされた複数の視覚的出力プリミティブを含む電子ドキュメントを受け取る手段を含む。さらに、前記デコーディング手段は、デコードされたインストラクションが以前にデコードされたインストラクションに関連付けされる部分の少なくとも一部を選択的に上書きするビットマップを生成するように、前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含む前記少なくとも一つのスキャンライン・メモリ・ロケーションからインストラクションをデコードする。少なくとも一つのインストラクションは、テキスト・レンダリング、一般バンド・レンダリング、グラフィクス・レンダリング、バッチ・レンダリングおよびキャッシングのうちの少なくとも一つを含む、ラスタ・オペレーション・コードを含む。
また、本発明によるドキュメント・レンダリング方法は、それぞれのスキャンライン・メモリ・ロケーションがレンダリングされるドキュメントのスキャンラインに対応する、複数のスキャンライン・メモリ・ロケーションを割り付けるステップと、それぞれのスキャンライン・メモリ・ロケーションに対応する少なくとも一つのインストラクション・メモリ・ロケーションを割り付けるステップと、少なくとも一つのエンコードされた視覚的出力プリミティブを含む電子ドキュメントを受け取るステップと、受け取った電子ドキュメントのそれぞれの視覚的出力プリミティブを一連のインストラクションに変換するステップと、それぞれのインストラクションと少なくとも一つのスキャンライン・メモリ・ロケーションとを関連付けするステップと、選択されたスキャンライン・メモリ・ロケーションに対応するインストラクション・メモリ・ロケーションにそれぞれのインストラクションを保存するステップと、エンコードされたスキャンライン出力ファイルを、それぞれのスキャンライン・メモリ・ロケーションに対応するそれぞれのインストラクション・メモリ・ロケーションの内容を含めて、ドキュメント・レンダリング・デバイスに伝達するステップとを含む。
また、本発明によるドキュメント・レンダリング・プログラムは、プロセッサに、それぞれのスキャンライン・メモリ・ロケーションがレンダリングされるドキュメントのスキャンラインに対応する、複数のスキャンライン・メモリ・ロケーションを割り付ける手順と、それぞれのスキャンライン・メモリ・ロケーションに対応する少なくとも一つのインストラクション・メモリ・ロケーションを割り付ける手順と、少なくとも一つのエンコードされた視覚的出力プリミティブを含む電子ドキュメントを受け取る手順と、受け取った電子ドキュメントのそれぞれの視覚的出力プリミティブを一連のインストラクションに変換する手順と、それぞれのインストラクションと少なくとも一つのスキャンライン・メモリ・ロケーションとを関連付けする手順と、選択されたスキャンライン・メモリ・ロケーションに対応するインストラクション・メモリ・ロケーションにそれぞれのインストラクションを保存する手順と、エンコードされたスキャンライン出力ファイルを、それぞれのスキャンライン・メモリ・ロケーションに対応するそれぞれのインストラクション・メモリ・ロケーションの内容を含めて、ドキュメント・レンダリング・デバイスに伝達する手順とを実行させる。
本発明によれば、メモリの効率的な使用を可能にし、複数の入力データ・タイプを含むページ記述言語入力に適応し、グラフィクス出力エンジンの能力と独立したタイミングを伴うイメージ生成に適応するドキュメント・レンダリングのシステム、方法およびプログラムが提供される。
さらに本発明によれば、複雑なページ記述ファイルからの正確かつメモリ効率のよいレンダリングを可能にするドキュメント・レンダリングのシステム、方法およびプログラムが提供される。
本発明による効果を詳細に述べると以下のような多くの利点がある。
本発明の一つの利点は、典型的なページ・バッファリング動作によって引き起こされる関連メモリ・マネジメント・サブシステムの負荷の低減を可能とするドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
本発明の別の利点は、ページ・レンダリングの間におけるより低いメモリ使用を可能にするドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
さらに別の本発明の利点は、簡略化された書き込み専用表示リスト・システムを実装し、レンダリングの時点に先行する中間表現フォーマットからの読み出しの必要性をバイパスすることを可能にするドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
さらに別の本発明の利点は、簡略化された透明度およびラスタ・オペレーションを容易にするドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
さらにまた別の本発明の利点は、パフォーマンスおよび中間表現メモリ・サイズを最適化するドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
さらにまた別の本発明の利点は、難しいドキュメント出力ジョブに直面したときにおいて、適切なパフォーマンスの低下を可能とするドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
さらにまた別の本発明の利点は、プロセッサ・キャッシュの利用により高いレンダリング・パフォーマンスを可能にするドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
さらにまた別の本発明の利点は、ソフトウエアあるいはハードウエアを介して、またはそれらの組み合わせを介して好適に実装可能なドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
以下、適宜、図面を参照しながら本発明による実施形態の説明を行う。図1は本発明による実施形態であるドキュメント・レンダリングのシステム、方法およびプログラムを説明するための図である。本発明は、詳細を後述するが、いくつかの主要な特徴を容易にする。それらには、順序付きインストラクション・シーケンスを基礎として部分的にレンダリングされたスキャンラインを確保するための能力が含まれる。また、ハイレベル、ローレベルのレンダリングにおいて遭遇するような2経路レンダリングのためのシステムもそれに含まれる。さらに、このシステムは本質的にフィード・フォワードであり、したがって効率的なレンダリング動作を可能にする。図1に示したシステム、方法は、ローレベル表示リスト・レンダリングを提供する。これは、ラスタ・イメージ処理(以下、RIPということがある。)に関連し、ローレベルのそれにおいて好適に使用される。このシステムは、RIPが、ページ上におけるピクセルのマーキングに携わるポイントで適切に実装される。その種のローレベル動作は、スキャンラインyにおいてxからx1までピクセルのバンドを指定色でレンダリングするといった機能を含む。この他の適切なローレベル動作は、スキャンラインyにおいてグリフ・ビットマップ(glyph bitmap)からx対x1に行を指定色でレンダリングすることである。さらに別の適切なローレベル動作は、スキャンラインyにおいてxからx1まで擬似ランレングス・エンコード(run length encode;RLE)されたピクセルのグループを指定色でレンダリングすることを含む。
図1に沿って説明を行うと、プロセスは、例えばページ記述言語の電子ドキュメントの入力を伴って10において開始する。このページ記述言語(page description language;以下、PDLということがある。)は、12においてインタープリタに伝達される。インタープリタによって解釈されたインストラクションは、14においてスキャンライン・レンダリング・インストラクションを生成するために伝達される。その後これらのスキャンライン・インストラクションは、16においてバッファされ、18においてスキャンライン・レンダリング・インストラクションのリストが生成される。その種のインストラクションは、24においてレンダラに直接伝達されるか、またはそれに代えて、20においてストレージ・システム22、例えばディスクまたはその他の揮発性または不揮発性メモリと調和して働くディスク入力/出力マネージャに伝達される。24においてレンダラによってレンダリングされると、レンダリングされたドキュメントは、26における出力デバイスによる出力のために伝達される。適切な出力デバイスには、レーザ・プリンタ、インクジェット・プリンタ、ファクシミリ装置、およびその類等の任意のドット・マトリクスまたはピクセル・ベースの出力をはじめ、後のレンダリングのための任意の適切なメモリへのビットマップ・イメージのストレージ用が含まれる。
ここで、レンダラ24、インタープリタ12、ディスクI/Oマネージャ20等の機能は、以上説明を行った処理と各部で実行する他の処理を行うため、プロセッサ、ROM、RAM、オペレーティングシステム等からなるプラットフォームの上で、実行することができる。
次に、図2に、本発明に関連して使用されるページ表現フォーマットを例示する。前述したとおり、このシステムはローレベルの表示リストを好適に使用する。ピクセルを実際にレンダリングするのではなく、本システムは、各ページをはじめ、イメージが出力エンジンに向けてバンディングされるポイントおよび時点等においてそれらのインストラクションを再生する方法を記述するレンダリング・インストラクションの保存を提供する。
このシステムは、ページをスキャンラインの配列として扱う。ここで使用する場合にスキャンラインは、出力ページのピクセルの完全な行を言う。各スキャンラインは、そのスキャンラインのレンダリングをもたらすことになるエンコードされたインストラクションのシーケンスによって表現される。スキャンライン・レンダリング・インストラクションは、1ないしは複数のインストラクション・ブロック内に保存されるが、それらのインストラクション・ブロックは、メモリ・プールから割り付けられるメモリの適切な固定サイズのブロックである。
図2の例示から認識されることになろうが、ページ30はy=0からy=nまでの一連のスキャンラインとして表現され、それにおいてnは、ページ30に関連付けされるスキャンラインの数として定義される。
見本のスキャンライン32を参照すると、このスキャンラインがページ30上のy=0において完了することに気付く。スキャンラインy=0は、一連のインストラクション33として表現され、その数は、以下の説明の理解から認識されるとおり、スキャンライン32から明らかとなる描写に対応する。図2の表現において、スキャンラインy=0に対応するその種のインストラクションは、インストラクション33a、33b、33c、および33dを含む。ページ30から発するページ全体について、類似のインストラクションのセットが各スキャンラインyに関連付けされることが認識されよう。さらに、以下を読めば認識されるとおり、スキャンラインに関連付けされる内容の複雑性に応じて、より少ない、またはより多くのインストラクションが必要となることも認識されることになろう。上記に加えて、各スキャンラインはポインタ・データを含み、それが、次のインストラクションが加えられることになる次に利用可能なインストラクション・ブロックのエリアをポイントするべく機能する。好ましい実施態様においては、各スキャンラインがグラフィクス状態も含み、その状態が、そのスキャンラインに関連付けされる指定されたグラフィクス・パラメータの現在の状態についての情報を保存するべく機能する。
RIPプロセスの間に特定のインストラクション・ブロックに関連付けされる以前のインストラクションに続き、スキャンラインにインストラクションが加えられるか、または追加される。図2のy=6となるスキャンライン36に例示されているようにスキャンラインが空の場合には、システムが、新しい空のインストラクション・ブロックを適切に割り付ける。好ましい実施態様においては、システムが、エンコーディングまたは翻訳プロセスの間に、各インスタンス内にインストラクションを追加するべく機能するだけでインストラクション・ブロックからの読み出しを必要としない。ここで認識されるとおり、出力コントローラに対してページのバンディングが行われるポイントにおいては、システムが、インストラクションを、それらをプリンタ・システムに、そこからの出力のために渡す前に再生して個別のスキャンラインをレンダリングするべく機能する。
一実施態様においては、各スキャンラインに関連付けされるメモリが、グラフィック状態情報を保存するべく機能する。この状態情報はスキャンラインにインストラクションを加えるプロセスの間をはじめ、最終的なレンダリング・プロセスの間の両方で適切に使用される。しかしながら特定の状況においては、パフォーマンス上の理由のため、選択された情報の局在化したキャッシュを作成すると有利となり得ることを認識する必要がある。このグラフィック状態のための適切な情報は、スキャンラインに関連付けされる現在の色を含む。適切なデフォルト色は、例えば、黒とする。
またグラフィック状態情報は、スキャンラインに関連付けされる現在の不透明度も適切に含む。好ましい実施態様においては、デフォルトの不透明度が完全な不透明である。グラフィック状態情報は、プリンタ・コントロール言語(PCL)に関連して使用されるような現在のラスタ・オペレータ(ROP)も適切に含む。任意の適切なプリンタ・コントロール言語が適切となる。しかしながら好ましい実施態様は、米国ヒューレット・パッカード社によって普及されているとおりの、以前はPCL6として知られていたPCL/XLを採用する。適切なデフォルトのROPは0である。追加の状態エントリは、適切に現在のパターンであり、適切なデフォルトをパターンなしとする。以下において認識されるとおり、本システムは、その種のグラフィック状態要素の修正および使用を教示する。
このシステムにおいては、バイト・コード形式のインストラクション・フォーマットを用いることができる。これは、一般に1バイトとなるopCodeからなる。opCodeには、適切に、1ないしは複数のパラメータ・バイトをはじめ、オプションの埋め込みデータが続く。選択されたopCodeは、適切に、選択された状態情報を含む。その種のopCode型は、スキャンラインのグラフィック状態を変更するopCode等のように、その後に続くすべてのインストラクションに影響を及ぼす変化を適切にもたらす。
このシステムは、4つのopCodeを好適に使用する。包括的なバンド・レンダリングは、適切に、線画等の表現用となる。グラフィック状態は、現在の色、ROP、三元ROP(TROP)、パターン、およびこれらの類に適している。opCodeは、バッチ・ピクセル・レンダリングおよびキャッシングのために適切に提供される。これは、イメージのレンダリング、パターン、PostScript(登録商標)シェーディング、ポータブル・ドキュメント・フォーマット(PDF)シェーディング、およびこれらの類を容易にする。加えて、opCodeは、テキストのレンダリングに対応するべく適切に提供される。ここで認識されることになろうが、多くのその種のopCodeが、PDF、PCL、PostScript(登録商標)、および任意のその他の適切なドキュメント言語に関連する使用のために利用可能であり、公開され、定期的に更新されている。
ここで図3を参照し、本発明の実施形態において使用するサンプルのレンダリングを、サンプル・イメージ40を使用して説明する。システムは、ディスクI/Oおよびメモリ・サブシステムの初期化、デフォルトまたは空値へのスキャンライン配列(スキャンラインのグラフィック状態を含む)の割り付けおよび初期化によって開始される。適切なディスクおよびメモリ・システムについては、より詳細を後述する。図3のサンプルのイメージ内には4つの要素が例示されている。第1の要素は、月面上のニール・アームストロングを図示しているイメージ42である。図3のイメージ40は白黒であるが、このレンダリングが白黒イメージはもとよりカラーにおいて機能することが認識されるであろう。ここでの説明は、本発明の明確な理解を容易にするためにイメージ42がグレイ色であることを前提とする。次にイメージ40は、イメージ40のボトムに配置される矩形部分44として例示されているベクトル・グラフィクス要素44を含む。このシステムは、2つのテキスト・オブジェクト、すなわちピクチャ・エリア42の上に重合された「Neil Armstrong」という第1のオブジェクト46、および白でレンダリングされ、矩形エリア44上に重合された「On The Moon」という字句の第2のオブジェクト48も例示している。
図3においては、2つのサンプルのスキャンライン、y=600およびy=7000が例示目的のために選択されている。スキャンラインy=600は、イメージ42およびテキスト46の両方と交差している。スキャンラインy=7000は、イメージ42、矩形44、およびテキスト48と交差している。最初に、それぞれの部分、グラフィック、形状、およびテキストについての記述を個別に説明する。
まず、宇宙飛行士ニール・アームストロングのイメージ42を参照し、記述を達成するための適切なメカニズムを説明する。この42のようなピクチャ・イメージは、左から右へのフォーマットで適切に表現される。ラスタ・イメージ処理動作の間においては、しばしば純粋なイメージ・レンダリングのケースに遭遇する。ここでの説明のため、ソース・イメージがプリンタ等のドキュメント出力デバイスと同じ解像度であることを仮定する。例としてのみ示すが、その種の解像度は適切に600dpiとする。しかしながら、入力および出力解像度レベルについて任意の解像度が適切に使用されることが認識されよう。また、入力および出力の解像度の間の変換が企図されており、この説明から認識されるとおり、スケーリング・インストラクションを用いて達成されることも認識されるであろう。さらに、この例を説明する目的のために、適切な8ビット・グレイ・イメージが割り付けられる。ここで認識する必要があるが、任意の適切なパレット表現、例えばCMY、CMY(K)、RGB、または任意の加法または減法原色セットが適切に使用される。概して言えば、加法原色セットは、ビデオ・ディスプレイ・デバイス等の能動表示ジェネレータにおいて好適に使用され、減法色セットは、プリントアウト等の受動表示において好適に使用される。
図4は、図3に例示したイメージの表現の構築の開始を例示しており、それにおいてはイメージが40’における電子ドキュメントとして表現されている。参照番号49は、図3に例示されているピクチャ40に対応する関連電子ページ40’の両方のそれぞれに関連付けされるそれぞれに関連付けされるスキャンラインの配列を例示している。電子ページ40’によって表現されるイメージの記述の構築の開始時は、インストラクション・ブロックがまったく割り付けられてなく、配列49内のすべてのスキャンライン構造は、デフォルト値に設定されている。
イメージのための構築プロセスを、図5Aのフローチャートを併せて検討して詳述する。このフローチャートではイメージがステップ50において受け取られる。ソース・イメージの行がステップ52においてデコードされてステップ54に例示されている生イメージ行が形成される。次に、ステップ56においてスケーリングおよびランレングスの決定が行われる。これが完了するとステップ58に進み、そこで一連の入力色値およびピクセル・ランを含むバッファリングが行われる。その後、ステップ60において、出力に関連付けされるデバイス固有の色空間に対する色値の変換が行われる。この値は、ステップ62において、一連のデバイス色値およびピクセル・ランにバッファされる。次にステップ64において、特定の行によって影響を受ける各スキャンラインは、それに関連付けされる色およびランレングス・バッファに関連するインストラクションをそれに追加する。次にステップ66において、イメージの各行が完了したか否かについての決定が行われる。完了していなければ、次の行を伴ってステップ52に戻る。最後の行の完了時には、ステップ68においてこの手順が終了する。
要約すると、サンプルのピクチャ等のソース・イメージのための処理は、ソース・イメージ・ピクセルの各行について行われる。必要であればスケーリングが行われる。この例においては、イメージ入力および出力がともに対応の600ドット・パー・インチに固定されている。したがって、その種の状況においてはスケーリングが必要ないことになる。色値および対応するランレングスがバッファされる。これらの値は、通常の出力におけるCYMK等の関連出力の色空間に変換される。システムは、レンダリングが行われている行によっていずれのスキャンラインが影響を受けるかを計算する。そのソース・イメージ行のレンダリングを行う対応のインストラクションが、スキャンラインに関連付けされるインストラクション・ブロックに追加される。このプロセスが各行について完成される。
図3のサンプルのイメージにおいては、ピクチャ部分42が600およびy=7000両方におけるスキャンラインに影響を与える。したがって、全イメージ40に関連付けされるデータの変換の間のいくつかのポイントにおいて部分42に関するレンダリングが、結果として、それらのスキャンラインに配置されるインストラクションを伴って生じる。
サンプルのy=600におけるスキャンラインを参照すると、ソースからイメージが、例えばレンダリングされることになる入力からグレイ・イメージ行が取り出されたことになる。入力および出力両方が、この例においては600dpiに設定されることから、スケーリングは必要ない。y=600におけるスキャンラインの良好な部分は、黒になり、特徴がない。これに、ヘルメットの上端についての何らかの詳細、より多くの黒い宇宙およびはるか右方の月の詳細が続くことになる。このラインが完成された後に適切な表現が生成されることになり、それが図6Aに示されている。複雑性における実際の表現は、この記述を多様化することになろうが、好ましい実施態様の例示にはこれで十分である。
次に、図7Aを参照すると、適切な出力デバイスの色空間に対する変換後の表現が例示されている。図6Aの場合と同様に、この表現は、例示目的のためだけに提供されている。実際の記述は、入力および出力イメージのより正確な詳細および性質に関して多様なものとなろう。図7Aの情報は、イメージ・ページに従って適切に整理されており、y=600におけるスキャンラインに対応する選択された座標において開始する。インストラクション・ブロックが割り付けられる。このインストラクション・ブロックは、適切なopCodeを表す1バイト・コードを適切に含む。最初のインストラクション・ブロック内では、適切な値がopCodeの開始を表す。次のopCodeが形成され、それがイメージの開始x座標を設定する。次に、図7Aに例示されているように、適切なイメージ・データ・エンコーディング・スキームに対して値が変換される。このプロセスが、すべてのイメージが処理されるまで、イメージに関連付けされるそれぞれの行ごとに完成される。
図6Bおよび7Bは、前述の図6Aおよび7Aに関連する例示に対する代替実施態様を例示している。図6Bはカラー・イメージ内のソース値の代替エンコーディングを例示しており、図7Bは適切な出力デバイスの色空間に対する変換後の代替エンコーディングを例示している。それぞれにおいて、2つの並列の配列が値のエンコードに使用される。いずれの場合にも最初がランレングスの配列、2番目が色値の配列である。ここで認識することになろうが、この実施態様の図7Bのページ座標値は、関連イメージ・ランのページ座標として定義される次の配列形式でエンコードされる。
,y
,y
黒、すなわち8ビット表現において適切に255となる値の最初のイメージ・ランは、y=600における1ピクセルの高さのx=100から2499までとなる。xおよびyの値は非算入であり、その結果、対応するランの高さはy−yであり、幅y−yを伴う。
図6Cおよび7Cは、図6Bおよび7Bに対応する実施態様を例示しており、グレイスケール・イメージがエンコードされる。この実施態様においては、C、Y、M値がすべてゼロであり、したがって出力がグレイスケールになると考えられる。したがって、すべての実施態様がカラーまたはグレイスケールのレンダリングを企図していることが認識されるであろう。
図5Bは、図6B、7B、および6C、7Cに関連して例示されているとおりの並列配列形式におけるイメージについての構築プロセスのフローチャートを例示している。このフローチャートではイメージがステップ70において受け取られる。ソース・イメージの行がステップ72においてデコードされてステップ74に例示されている生イメージ行が形成される。次に、ステップ76においてスケーリングおよびランレングスの決定が行われる。これが完了するとステップ78に進み、そこで一連の入力色値およびピクセル・ランを含むバッファリングが行われる。この実施態様の場合は、ここで並列配列が形成されることに注意する。その後、ステップ80において、出力に関連付けされるデバイス固有の色空間に対する色値の変換が行われる。この値は、ステップ82において、これも並列配列として形成される一連のデバイス色値およびピクセル・ランにバッファされる。次にステップ84において、特定の行によって影響を受ける各スキャンラインは、それに関連付けされる色およびランレングス・バッファに関連するインストラクションをそれに追加する。次にステップ86において、イメージの各行が完了したか否かについての決定が行われる。完了していなければ、次の行を伴ってステップ72に戻る。最後の行の完了時には、ステップ80においてこの手順が終了する。
図8を参照すると、y=600およびy=7000におけるロケーションによって表現されるとおりのイメージ部分42を含む完全な表現の部分が例示されている。ここで認識されることになろうが、イメージ42のすべての相は、それぞれのスキャンライン内に対応するエントリを有する。図9を参照し、図3の矩形44に関して説明する。この例においては、グレイの矩形44がベクトル形式で適切に表現される。適切なベクトル・レンダリングにおいては、形状が台形に、その後単一のスキャンライン・バンドに分解される。しかしながら多くの他の場合には、例として述べるが、複雑な形状が、個別の1ピクセルの高さのバンドを描画する一連の要求に帰着することを認識される必要がある。
ベクトル矩形のレンダリングは単純になる。スキャン変換が、出力スキャンライン当たり1バンドのレンダリング要求に帰着し、各バンドは、同一の開始x座標および幅wを有する。このシステムは、前述した42等のイメージの部分を矩形がオーバーラップする否かに関わる必要がない。例えばイメージ・データおよびベクトル・データを含む複合イメージの場合は、矩形の記述等のベクトル・データがイメージ・データおよびそのスキャンラインのためのインストラクション・ブロックの後に追加されることになる。この記述において、レンダリングの済んだ基礎をなすオブジェクトの上または下のいずれに描画が現れるかを決定するか、または指定する必要がない。
矩形44の例においては、変換が、結局のところ1ピクセルの高さのバンドを描画する一連の要求に帰着する。それぞれの要求について、有効なスキャンラインがそれに割り付けられているインストラクション・ブロックを有するか否かを判断する決定がなされる。これがまだ完成されていなければ1つが割り付けられる。次に、スキャンラインのための現在の色がレンダリングされることになるものと整合するか否かについての決定がなされる。整合しない場合には、必要な色を選択するべく適切なopCodeが設定される。次に、レンダリングに関連するopCodesが、対応するバンドの開始x座標および長さに関連付けされる影響を受けるそれぞれのラインに追加される。矩形部分44内においては、結局のところ処理が、y=7000等のスキャンラインを導き、それにおいてはメモリがすでに割り付けられており、したがってその種のメモリを再度割り付ける必要がない。前述したイメージ部分42と同様に、黒等のデフォルト色が選択され、必要に応じて適切な色を設定するべくインストラクションが追加されることになる。例を示すと、グレイの矩形は、値を適切に、4バイトによって定義される8ビット成分レベルのCYMKグレイを定義する0,0,0,128に設定することになる。スキャンライン7000を続けるが、バンドをレンダリングするopCodesについてのバイト・コード(opRenderBand)がインストラクション・ブロックに適切に追加され、それに、適切に2バイトとする開始x座標、およびこれも適切に2バイトとする幅の値wが続く。
上記から認識されることになろうが、したがってこの表現は、ピクチャ部分42をはじめ矩形部分44についての情報をともに含む。次に、テキスト空間要素の構成を説明する。
図3の例のイメージ40においては、テキスト相が文字列46および48を含む。テキスト情報のレンダリングのために、メモリ内の1ビット・グリフに必要なサイズで必要な文字をレンダリングする要求が最初になされる。グリフ・ビットマップ内の各行について、その行を適切な出力スキャンラインに、要求された色でレンダリングするべくインストラクションが加えられる。次に、必要であれば現在の色が選択される。このサンプルの例においては、すべてのスキャンラインのためのデフォルト色が黒である限り、文字列46のテキストのためにこれが白に設定されなければならない。これは、opCodeを用いて、例えば選択された値に対するopSetColor等の1バイト・コードを用いて適切に達成される。例として述べるが、CYMK色空間においては、0,0,0,0が白の4バイト値を適切に表現する。図12のスキャンライン600においては、opGlyphBandについての1バイト・コード、グリフが開始する次の座標についての2バイト、グリフの幅についての2バイトが追加される。
図10を参照すると、テキスト文字列46内の最初の文字に対応する文字“N”が例示されている。図10は、この文字に関連付けされる適切な1ビット・グリフ・イメージを例示している。スキャンライン600における、前述した“N”のグリフ(glyph)の部分が図11に例示されている。ビットマップの色づけされない部分、すなわち黒で示されている単一ビット・イメージが白で描画され、白い部分が適切に透明として示される。その後この情報が、それぞれのスキャンラインについて、グラフィックおよびベクトル・ベースのイメージについて以前に構築された表現に追加される。前述したとおり、y=600についてスキャンラインが最後をオーバーラップするインストラクション・ブロックがまだ割り付けられていない場合には、1つが割り付けられることになる。
レンダリングが完成すると、システムは、グリフ・データの対応する行を表す充分な記録済み情報を有する。
各テキスト文字列内の残りの文字も上記のとおりに扱われる。ここで認識されることになろうが、同一テキスト文字列内のその後に続く文字は、先行する文字に関して色が設定されている限り、次の文字が先行するものと異なる色を有するべく選択された場合を除いてそれを行う必要がない。
1ないしは複数のイメージ部分を含めてイメージについての完全な記述が完成すると、システムは、出力を可能にするべくイメージのバンディングに進む。この段階においてシステムは、現在のこの実施態様で通常は128スキャンラインの長さとなる完全な非圧縮バンドのための充分なメモリを適切に提供する。バンドは、バンドを含む各正規のスキャンラインを見つけ出すことによって埋められ、それらのバンドに関連付けされるopCodesインストラクションは、代表的に上に詳述した。
図13は、詳細を前述した例示のイメージにおいてy=7000に関連付けされるインストラクションの一例を提供する。この図には、そのスキャンラインに関連付けされるインストラクションを含む適切なバッファの内容が例示されている。レンダリング・プロセスにおいては、関連エンジンに、関連するスキャンラインをレンダリングするメモリのブロックに対するポインタが与えられる。これは、そのスキャンラインに関連付けされるインストラクションを処理することによって達成される。レンダリングは、最初にデフォルトを選択するべくスキャンライン・グラフィック・プロセッサをリセットすることによって開始する。次に対応するブロックからインストラクションが取り出されて実行され、ディスティネーション・メモリ・ブロック内にレンダリングが完成される。図13のスキャンラインy=7000の例では、opBeginImageとする最初のopCodeがまず取り出される。このopCodeは、開始x座標となる最初の2バイトを適切にアドレスする。この値が取り込まれると、システムが関連インストラクション・バッファ内のエンコード済みイメージ・データを通って反復し、対応するディスティネーション・メモリ・ブロック内にピクセルをプロットする。
図示の例では、このポイントにおいてディスティネーション・メモリ・ブロックが、ニール・アームストロングの足の下の月の、1ピクセル高のスライスを伴うスキャンラインを含む。次に、opSetColorが取り出されて色が設定される。この例においてはこれが、前述した矩形のグレイを指定する値0,0,0,128になる。次に定義されているopCodeは、開始x座標およびバンドの幅を取り出すopRenderBandであり、これは、以前のレンダリング済みピクチャ・イメージの上を覆ってグレイの矩形のバンドをレンダリングする手順に帰着することになる。次に、コード“O”文字のスライスであるグリフ・データ(glyph data)を、白とする選択色でレンダリングするopCodeが取り出される。このレンダリングがディスティネーション・メモリ・ブロックに伝達される。最後に、テキスト文字のレンダリングが、このバンドに影響を与える残りすべての文字について完成される。関連バンドについてのすべてのレンダリングが完成すると、最終ページ上にプリントアウトするか、あるいはそのほかドキュメント出力デバイスに出力する準備が整う。この例において、y=7000についてのレンダリングが完成すると、y=7,001におけるスキャンラインへというように、ページが完全にレンダリングされて、最終出力のためのシステムに完全に渡されるまで進められる。
本発明は、ソースコード、オブジェクトコード、部分的にコンパイルされた形のようなコード中間ソースおよびオブジェクトコードの形、あるいは本発明の実施形態で使用するために適した任意の他の形のコンピュータプログラムに適用される。コンピュータプログラムは、スタンドアローンのアプリケーション、ソフトウェアコンポーネント、スクリプト、または他のアプリケーションへのプラグインとすることができる。本発明を組み込むコンピュータプログラムは、例えば、ROMやRAMなどの記憶媒体、CD−ROMなどの光記録媒体、フロッピー(登録商標)ディスクなどの磁気記録媒体などの、コンピュータプログラムを伝達することができる任意の実体または装置である担体上で具体化することができる。この担体は、電気ケーブルまたは光ケーブルによって、または無線や他の手段によって伝えられる電気信号や光信号などの任意の伝達可能な担体である。コンピュータプログラムは、サーバからインターネットを介して適切にダウンロードされる。また、コンピュータプログラムの機能は集積回路に組み込むこともできる。示した本発明の原理を実質的にコンピュータまたはプロセッサに実行させるコードを含む任意およびすべての実施形態は、本発明の範囲内にある。
本発明の好ましい実施形態の以上の説明は、例示と説明のために行った。説明は網羅的でもなく本発明を開示した形態に限定しようとするものでもない。以上の教示を鑑みて明らかな修正または変形が可能である。実施形態は、本発明の原理とその実際的な応用例を最もよく示し、それにより当業者が、本発明を、意図された特定の使用に適した様々な実施形態において様々な修正で使用できるように選択され説明された。そのようなすべての修正と変形は、特許請求の範囲の記載に明示されるとおりの本発明の原理および範囲内において、当業者によって行われ得ることは明らかであり、特許請求の範囲の記載によって定められる発明の範囲内にある。
本発明による実施形態であるシステム、方法およびプログラムを説明するための図である。 本発明による実施形態において関連するページ表現の構成を例示した図である。 本発明による実施形態においてレンダリングされるサンプル・イメージを例示した図である。 本発明による実施形態において、図3に示されたサンプル・イメージのレンダリングのための開始ページ表現を例示した図である。 本発明による実施形態におけるイメージ・レンダリングのフローチャートの例を示す図である。 本発明による実施形態におけるイメージ・レンダリングのフローチャートの例を示す図である。 本発明による実施形態におけるレンダリングの生ピクセルおよびランレングスを例示した図である。 本発明による実施形態におけるレンダリングの生ピクセルおよびランレングスを例示した図である。 本発明による実施形態におけるレンダリングの生ピクセルおよびランレングスを例示した図である。 本発明による実施形態におけるレンダリングのCYMKピクセルおよびランレングスを例示した図である。 本発明による実施形態におけるレンダリングのCYMKピクセルおよびランレングスを例示した図である。 本発明による実施形態におけるレンダリングのCYMKピクセルおよびランレングスを例示した図である。 本発明による実施形態におけるサンプル・イメージの表現の例を示す図である。 本発明による実施形態における他のサンプル・イメージの表現の例を示す図である。 本発明による実施形態において、サンプル文字“N”のビットマップの例を示す図である。 図10に例示した文字“N”のビットマップ・ラインの例を示す図である。 本発明による実施形態におけるテキスト要素の表現の例を示す図である。 本発明による実施形態におけるインストラクション・バッファの例を示す図である。
符号の説明
12 インタープリタ
20 ディスクI/Oマネージャ
22 ディスク
24 レンダラ

Claims (21)

  1. それぞれのスキャンライン・メモリ・ロケーションがレンダリングされるドキュメントのスキャンラインに対応する、複数のスキャンライン・メモリ・ロケーションを割り付けるスキャンライン・メモリ割り付け手段と、
    それぞれのスキャンライン・メモリ・ロケーションに対応する少なくとも一つのインストラクション・メモリ・ロケーションを割り付けるインストラクション・メモリ割り付け手段と
    を含むメモリ割り付けユニットと、
    少なくとも一つのエンコードされた視覚的出力プリミティブを含む電子ドキュメントを受け取る受け取り手段と、
    受け取った電子ドキュメントのそれぞれの視覚的出力プリミティブを一連のインストラクションに変換する変換手段と、
    それぞれのインストラクションと少なくとも一つのスキャンライン・メモリ・ロケーションとを関連付けする関連付け手段と、
    前記メモリ割り付けユニットによって割り付けられ、選択されたスキャンライン・メモリ・ロケーションに対応するインストラクション・メモリ・ロケーションにそれぞれのインストラクションを保存するストレージ手段と、
    エンコードされたスキャンライン出力ファイルを、それぞれのスキャンライン・メモリ・ロケーションに対応するそれぞれのインストラクション・メモリ・ロケーションの内容を含めて、ドキュメント・レンダリング・デバイスに伝達する出力手段と
    を有することを特徴とするドキュメント・レンダリング・システム。
  2. 前記エンコードされたスキャンライン出力ファイルを受け取る手段と、
    それぞれのスキャンライン・メモリ・ロケーションのインストラクションを連続的にデコードするデコーディング手段と、
    それぞれのスキャンライン・メモリ・ロケーションのデコードされたインストラクションに対応するビットマップ・バンド出力を生成する手段と
    を、さらに、有することを特徴とする請求項1に記載のドキュメント・レンダリング・システム。
  3. それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定することを特徴とする請求項1に記載のドキュメント・レンダリング・システム。
  4. 前記受け取り手段は、少なくとも一つのスキャンライン・メモリ・ロケーションが前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含むように、エンコードされた複数の視覚的出力プリミティブを含む電子ドキュメントを受け取る手段を含むことを特徴とする請求項1に記載のドキュメント・レンダリング・システム。
  5. 前記デコーディング手段は、デコードされたインストラクションが以前にデコードされたインストラクションに関連付けされる部分の少なくとも一部を選択的に上書きするビットマップを生成するように、前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含む前記少なくとも一つのスキャンライン・メモリ・ロケーションからインストラクションをデコードすることを特徴とする請求項4に記載のドキュメント・レンダリング・システム。
  6. それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定することを特徴とする請求項5に記載のドキュメント・レンダリング・システム。
  7. 少なくとも一つのインストラクションは、テキスト・レンダリング、一般バンド・レンダリング、グラフィクス・レンダリング、バッチ・レンダリングおよびキャッシングのうちの少なくとも一つを含む、ラスタ・オペレーション・コードを含むことを特徴とする請求項5に記載のドキュメント・レンダリング・システム。
  8. それぞれのスキャンライン・メモリ・ロケーションがレンダリングされるドキュメントのスキャンラインに対応する、複数のスキャンライン・メモリ・ロケーションを割り付けるステップと、
    それぞれのスキャンライン・メモリ・ロケーションに対応する少なくとも一つのインストラクション・メモリ・ロケーションを割り付けるステップと、
    少なくとも一つのエンコードされた視覚的出力プリミティブを含む電子ドキュメントを受け取るステップと、
    受け取った電子ドキュメントのそれぞれの視覚的出力プリミティブを一連のインストラクションに変換するステップと、
    それぞれのインストラクションと少なくとも一つのスキャンライン・メモリ・ロケーションとを関連付けするステップと、
    選択されたスキャンライン・メモリ・ロケーションに対応するインストラクション・メモリ・ロケーションにそれぞれのインストラクションを保存するステップと、
    エンコードされたスキャンライン出力ファイルを、それぞれのスキャンライン・メモリ・ロケーションに対応するそれぞれのインストラクション・メモリ・ロケーションの内容を含めて、ドキュメント・レンダリング・デバイスに伝達するステップと
    を含むことを特徴とするドキュメント・レンダリング方法。
  9. 前記エンコードされたスキャンライン出力ファイルを受け取るステップと、
    それぞれのスキャンライン・メモリ・ロケーションのインストラクションを連続的にデコードするステップと、
    それぞれのスキャンライン・メモリ・ロケーションのデコードされたインストラクションに対応するビットマップ・バンド出力を生成するステップと
    を、さらに、含むことを特徴とする請求項8に記載のドキュメント・レンダリング方法。
  10. それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定することを特徴とする請求項8に記載のドキュメント・レンダリング方法。
  11. 前記電子ドキュメントを受け取るステップは、少なくとも一つのスキャンライン・メモリ・ロケーションが前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含むように、エンコードされた複数の視覚的出力プリミティブを含む電子ドキュメントを受け取るステップを、さらに、含むことを特徴とする請求項8に記載のドキュメント・レンダリング方法。
  12. 前記インストラクションをデコードするステップは、デコードされたインストラクションが以前にデコードされたインストラクションに関連付けされる部分の少なくとも一部を選択的に上書きするビットマップを生成するように、前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含む前記少なくとも一つのスキャンライン・メモリ・ロケーションからインストラクションをデコードすることを特徴とすることを特徴とする請求項11に記載のドキュメント・レンダリング方法。
  13. それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定することを特徴とする請求項12に記載のドキュメント・レンダリング方法。
  14. 少なくとも一つのインストラクションは、テキスト・レンダリング、一般バンド・レンダリング、グラフィクス・レンダリング、バッチ・レンダリングおよびキャッシングのうちの少なくとも一つを含む、ラスタ・オペレーション・コードを含むことを特徴とする請求項12に記載のドキュメント・レンダリング方法。
  15. プロセッサに、
    それぞれのスキャンライン・メモリ・ロケーションがレンダリングされるドキュメントのスキャンラインに対応する、複数のスキャンライン・メモリ・ロケーションを割り付ける手順と、
    それぞれのスキャンライン・メモリ・ロケーションに対応する少なくとも一つのインストラクション・メモリ・ロケーションを割り付ける手順と、
    少なくとも一つのエンコードされた視覚的出力プリミティブを含む電子ドキュメントを受け取る手順と、
    受け取った電子ドキュメントのそれぞれの視覚的出力プリミティブを一連のインストラクションに変換する手順と、
    それぞれのインストラクションと少なくとも一つのスキャンライン・メモリ・ロケーションとを関連付けする手順と、
    選択されたスキャンライン・メモリ・ロケーションに対応するインストラクション・メモリ・ロケーションにそれぞれのインストラクションを保存する手順と、
    エンコードされたスキャンライン出力ファイルを、それぞれのスキャンライン・メモリ・ロケーションに対応するそれぞれのインストラクション・メモリ・ロケーションの内容を含めて、ドキュメント・レンダリング・デバイスに伝達する手順と
    を実行させることを特徴とするドキュメント・レンダリング・プログラム。
  16. プロセッサに、
    前記エンコードされたスキャンライン出力ファイルを受け取る手順と、
    それぞれのスキャンライン・メモリ・ロケーションのインストラクションを連続的にデコードする手順と、
    それぞれのスキャンライン・メモリ・ロケーションのデコードされたインストラクションに対応するビットマップ・バンド出力を生成する手順と
    を、さらに、実行させることを特徴とする請求項15に記載のドキュメント・レンダリング・プログラム。
  17. それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定することを特徴とする請求項15に記載のドキュメント・レンダリング・プログラム。
  18. 前記電子ドキュメントを受け取る手順は、
    少なくとも一つのスキャンライン・メモリ・ロケーションが前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含むように、エンコードされた複数の視覚的出力プリミティブを含む電子ドキュメントを受け取る手順を、さらに、含むことを特徴とする請求項15に記載のドキュメント・レンダリング・プログラム。
  19. 前記インストラクションをデコードする手順は、
    デコードされたインストラクションが以前にデコードされたインストラクションに関連付けされる部分の少なくとも一部を選択的に上書きするビットマップを生成するように、前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含む前記少なくとも一つのスキャンライン・メモリ・ロケーションからインストラクションをデコードすることを特徴とする請求項18に記載のドキュメント・レンダリング・プログラム。
  20. それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定することを特徴とする請求項19に記載のドキュメント・レンダリング・プログラム。
  21. 少なくとも一つのインストラクションは、テキスト・レンダリング、一般バンド・レンダリング、グラフィクス・レンダリング、バッチ・レンダリング、およびキャッシングのうちの少なくとも一つを含むラスタ・オペレーション・コードを含むことを特徴とする請求項19に記載のドキュメント・レンダリング・プログラム。
JP2007069397A 2006-03-16 2007-03-16 ドキュメント・レンダリング・システム、方法およびプログラム Pending JP2007245723A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/376,797 US20070216696A1 (en) 2006-03-16 2006-03-16 System and method for document rendering employing bit-band instructions

Publications (1)

Publication Number Publication Date
JP2007245723A true JP2007245723A (ja) 2007-09-27

Family

ID=38517304

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007069397A Pending JP2007245723A (ja) 2006-03-16 2007-03-16 ドキュメント・レンダリング・システム、方法およびプログラム

Country Status (2)

Country Link
US (1) US20070216696A1 (ja)
JP (1) JP2007245723A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8134742B2 (en) * 2006-07-07 2012-03-13 Canon Kabushiki Kaisha Output device and method for outputting density data corresponding to a color material to a printing unit
US7928992B2 (en) * 2007-05-30 2011-04-19 Kabushiki Kaisha Toshiba System and method for transparent object rendering
US20090091564A1 (en) * 2007-10-03 2009-04-09 Raju Thevan System and method for rendering electronic documents having overlapping primitives
KR20220157573A (ko) * 2021-05-21 2022-11-29 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 메모리 사이즈의 최적화
WO2023287407A1 (en) * 2021-07-14 2023-01-19 Hewlett-Packard Development Company, L.P. Hardware component initialization

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4203154A (en) * 1978-04-24 1980-05-13 Xerox Corporation Electronic image processing system
US4296476A (en) * 1979-01-08 1981-10-20 Atari, Inc. Data processing system with programmable graphics generator
US4471463A (en) * 1979-01-08 1984-09-11 Atari, Inc. Data processing system with programmable graphics generator
US4254467A (en) * 1979-06-04 1981-03-03 Xerox Corporation Vector to raster processor
US4868557A (en) * 1986-06-04 1989-09-19 Apple Computer, Inc. Video display apparatus
JPH01304588A (ja) * 1988-06-01 1989-12-08 Oki Electric Ind Co Ltd クリッピング処理方式
US4967392A (en) * 1988-07-27 1990-10-30 Alliant Computer Systems Corporation Drawing processor for computer graphic system using a plurality of parallel processors which each handle a group of display screen scanlines
DE69117112T2 (de) * 1990-08-08 1996-06-27 Peerless Group Verfahren und Vorrichtung zur Bildwiedergabe
US5509115A (en) * 1990-08-08 1996-04-16 Peerless Systems Corporation Method and apparatus for displaying a page with graphics information on a continuous synchronous raster output device
US5319778A (en) * 1991-07-16 1994-06-07 International Business Machines Corporation System for manipulating elements in linked lists sharing one or more common elements using head nodes containing common offsets for pointers of the linked lists
US5321810A (en) * 1991-08-21 1994-06-14 Digital Equipment Corporation Address method for computer graphics system
US5467435A (en) * 1992-07-10 1995-11-14 Microsoft Corporation System and method for mode switching
US5577173A (en) * 1992-07-10 1996-11-19 Microsoft Corporation System and method of printer banding
US5479587A (en) * 1992-09-03 1995-12-26 Hewlett-Packard Company Page printer having adaptive data compression for memory minimization
US5687303A (en) * 1994-05-18 1997-11-11 Xerox Corporation Printer controller for object optimized printing
US6327043B1 (en) * 1994-05-18 2001-12-04 Xerox Corporation Object optimized printing system and method
AUPM704394A0 (en) * 1994-07-25 1994-08-18 Canon Information Systems Research Australia Pty Ltd Optimization method for the efficient production of images
AUPM704194A0 (en) * 1994-07-25 1994-08-18 Canon Information Systems Research Australia Pty Ltd Efficient methods for the evaluation of a graphical programming language
US5615314A (en) * 1994-08-30 1997-03-25 Management Graphics, Inc. Interface for providing rasterized data to an imaging device
US5838334A (en) * 1994-11-16 1998-11-17 Dye; Thomas A. Memory and graphics controller which performs pointer-based display list video refresh operations
US6067098A (en) * 1994-11-16 2000-05-23 Interactive Silicon, Inc. Video/graphics controller which performs pointer-based display list video refresh operation
US5801719A (en) * 1995-11-27 1998-09-01 Sun Microsystems, Inc. Microprocessor with graphics capability for masking, aligning and expanding pixel bands
US6538764B2 (en) * 1996-04-12 2003-03-25 Canon Kabushiki Kaisha Printing apparatus, information processing apparatus, data processing method for use in such an apparatus, and storage medium storing computer-readable program
US6591414B2 (en) * 1996-10-28 2003-07-08 Fujitsu Limited Binary program conversion apparatus, binary program conversion method and program recording medium
AUPO478897A0 (en) * 1997-01-24 1997-02-20 Canon Information Systems Research Australia Pty Ltd Scan line rendering of convolutions
US6256108B1 (en) * 1998-09-10 2001-07-03 Electronics For Imaging, Inc. Method and apparatus for label composition
JP4365950B2 (ja) * 1998-09-11 2009-11-18 キヤノン株式会社 高速ラスタ形式レンダリングのためのグラフィックオブジェクト処理方法および装置
US6825941B1 (en) * 1998-09-21 2004-11-30 Microsoft Corporation Modular and extensible printer device driver and text based method for characterizing printer devices for use therewith
US7181548B2 (en) * 1998-10-30 2007-02-20 Lsi Logic Corporation Command queueing engine
JP3641147B2 (ja) * 1998-11-18 2005-04-20 富士通株式会社 調停機能付バッファ装置および挿入データ調停方法並びに調停機能付データ挿入装置
US6677952B1 (en) * 1999-06-09 2004-01-13 3Dlabs Inc., Ltd. Texture download DMA controller synching multiple independently-running rasterizers
US6557053B1 (en) * 2000-01-04 2003-04-29 International Business Machines Corporation Queue manager for a buffer
US6567091B2 (en) * 2000-02-01 2003-05-20 Interactive Silicon, Inc. Video controller system with object display lists
US20020135585A1 (en) * 2000-02-01 2002-09-26 Dye Thomas A. Video controller system with screen caching
AUPQ697100A0 (en) * 2000-04-18 2000-05-11 Canon Kabushiki Kaisha Rendering graphic object based images
TW513635B (en) * 2000-11-24 2002-12-11 Ibm Method and structure for variable-length frame support in a shared memory switch
US6516397B2 (en) * 2001-04-09 2003-02-04 Hewlett-Packard Company Virtual memory system utilizing data compression implemented through a device
US7024538B2 (en) * 2001-12-21 2006-04-04 Hewlett-Packard Development Company, L.P. Processor multiple function units executing cycle specifying variable length instruction block and using common target block address updated pointers
DE10205546B4 (de) * 2002-02-11 2006-01-12 Nexpress Solutions Llc Verfahren zur Datenkomprimierung von Bildmaskendaten
US6996284B2 (en) * 2002-03-08 2006-02-07 Global Graphics Software Limited System and method for flattening spans
AUPS127602A0 (en) * 2002-03-20 2002-04-18 Canon Kabushiki Kaisha Image compression in retained-mode renderer
US20040064430A1 (en) * 2002-09-27 2004-04-01 Klein Jonathan D. Systems and methods for queuing data
US7000080B2 (en) * 2002-10-03 2006-02-14 Hewlett-Packard Development Company, L.P. Channel-based late race resolution mechanism for a computer system
US20040218218A1 (en) * 2002-10-04 2004-11-04 Carolus De Bie Method and system for printing computer generated images
US20040196483A1 (en) * 2003-04-07 2004-10-07 Jacobsen Dana A. Line based parallel rendering
US8056001B2 (en) * 2003-04-10 2011-11-08 Hewlett-Packard Development Company, L.P. Method and apparatus for classifying elements of a document
US7324696B2 (en) * 2003-06-27 2008-01-29 Xerox Corporation Method for tag plane growth and contraction using run length encoded data
US7236268B2 (en) * 2003-07-30 2007-06-26 Texas Instruments Incorporated Adaptive screening in raster image processing of complex pages
US7583397B2 (en) * 2003-09-30 2009-09-01 Canon Kabushiki Kaisha Method for generating a display list
US7414757B2 (en) * 2003-09-30 2008-08-19 Xerox Corporation Method for compressing printing hint data sent to a printer
US7124261B2 (en) * 2004-02-09 2006-10-17 Arm Limited Access to bit values within data words stored in a memory
US7714865B2 (en) * 2004-03-09 2010-05-11 Canon Kabushiki Kaisha Compositing list caching for a raster image processor

Also Published As

Publication number Publication date
US20070216696A1 (en) 2007-09-20

Similar Documents

Publication Publication Date Title
US7583397B2 (en) Method for generating a display list
JP4995057B2 (ja) 描画装置、印刷装置、描画方法、及びプログラム
EP0809192B1 (en) Method and apparatus for rendering fontless structured documents
EP1577838B1 (en) A method of rendering graphical objects
JP2000511364A (ja) 表示データ用の格納条件を減少させる方法及び装置
US20100315431A1 (en) Combining overlapping objects
US7898686B2 (en) System and method for encoded raster document generation
CN107844278B (zh) 图像处理装置和方法
JPH10243210A (ja) 画像処理装置及びその方法
AU2012216550B2 (en) Cloud assisted rendering
JP2007245723A (ja) ドキュメント・レンダリング・システム、方法およびプログラム
US20090091564A1 (en) System and method for rendering electronic documents having overlapping primitives
JP2013505854A (ja) 印刷可能なラスタ画像ファイルを作成する方法
JPH1166327A (ja) 画像処理方法および画像処理装置および記録媒体
US20080291493A1 (en) Threshold-based load balancing printing system
US20060285144A1 (en) Efficient Implementation of Raster Operations Flow
KR100477777B1 (ko) 래스터 오브젝트를 생성하기 위한 방법, 시스템, 정보저장 매체, 및 컴퓨터 판독가능 매체
JP2008228168A (ja) 画像処理装置およびプログラム
JP2001293936A (ja) 描画情報処理装置および描画情報処理方法
JP4514168B2 (ja) 画像処理システム及び画像処理方法
JPH08506681A (ja) フォント情報の供給及びフェッチ方法
JP2009066926A (ja) 画像処理装置及び画像形成システム
JP4325339B2 (ja) 印刷システム、ホストコンピュータ及びプリンタドライバ
JP4072403B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2015002530A (ja) 画像形成装置、画像処理方法、およびプログラム