(57)【要約】【課題】メモリの効率的な使用を可能とし、複数のデータ・タイプを含むページ記述言語入力に適応するドキュメント・レンダリング・システム、方法およびプログラムを提供する。【解決手段】レンダリングのためのシステム、方法またはプログラムが、連結してレンダリングされたドキュメント出力を形成する複数のバンドのそれぞれに対応する一連のインストラクションの配列を生成するように、ページ記述言語で記述された電子ドキュメントの解釈を行う。各インストラクションの配列は、出力イメージのスキャンラインに対応して生成されるピクセルのバンドを記述するインストラクションを含む。インストラクションは、オリジナルの電子ドキュメント内に記述されていたイメージ・プリミティブを含む。【選択図】図５Ａ
2007245723.tif 000002
【特許請求の範囲】
【請求項１】
それぞれのスキャンライン・メモリ・ロケーションがレンダリングされるドキュメントのスキャンラインに対応する、複数のスキャンライン・メモリ・ロケーションを割り付けるスキャンライン・メモリ割り付け手段と、
それぞれのスキャンライン・メモリ・ロケーションに対応する少なくとも一つのインストラクション・メモリ・ロケーションを割り付けるインストラクション・メモリ割り付け手段と
を含むメモリ割り付けユニットと、
少なくとも一つのエンコードされた視覚的出力プリミティブを含む電子ドキュメントを受け取る受け取り手段と、
受け取った電子ドキュメントのそれぞれの視覚的出力プリミティブを一連のインストラクションに変換する変換手段と、
それぞれのインストラクションと少なくとも一つのスキャンライン・メモリ・ロケーションとを関連付けする関連付け手段と、
前記メモリ割り付けユニットによって割り付けられ、選択されたスキャンライン・メモリ・ロケーションに対応するインストラクション・メモリ・ロケーションにそれぞれのインストラクションを保存するストレージ手段と、
エンコードされたスキャンライン出力ファイルを、それぞれのスキャンライン・メモリ・ロケーションに対応するそれぞれのインストラクション・メモリ・ロケーションの内容を含めて、ドキュメント・レンダリング・デバイスに伝達する出力手段と
を有することを特徴とするドキュメント・レンダリング・システム。
【請求項２】
前記エンコードされたスキャンライン出力ファイルを受け取る手段と、
それぞれのスキャンライン・メモリ・ロケーションのインストラクションを連続的にデコードするデコーディング手段と、
それぞれのスキャンライン・メモリ・ロケーションのデコードされたインストラクションに対応するビットマップ・バンド出力を生成する手段と
を、さらに、有することを特徴とする請求項１に記載のドキュメント・レンダリング・システム。
【請求項３】
それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定することを特徴とする請求項１に記載のドキュメント・レンダリング・システム。
【請求項４】
前記受け取り手段は、少なくとも一つのスキャンライン・メモリ・ロケーションが前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含むように、エンコードされた複数の視覚的出力プリミティブを含む電子ドキュメントを受け取る手段を含むことを特徴とする請求項１に記載のドキュメント・レンダリング・システム。
【請求項５】
前記デコーディング手段は、デコードされたインストラクションが以前にデコードされたインストラクションに関連付けされる部分の少なくとも一部を選択的に上書きするビットマップを生成するように、前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含む前記少なくとも一つのスキャンライン・メモリ・ロケーションからインストラクションをデコードすることを特徴とする請求項４に記載のドキュメント・レンダリング・システム。
【請求項６】
それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定することを特徴とする請求項５に記載のドキュメント・レンダリング・システム。
【請求項７】
少なくとも一つのインストラクションは、テキスト・レンダリング、一般バンド・レンダリング、グラフィクス・レンダリング、バッチ・レンダリングおよびキャッシングのうちの少なくとも一つを含む、ラスタ・オペレーション・コードを含むことを特徴とする請求項５に記載のドキュメント・レンダリング・システム。
【請求項８】
それぞれのスキャンライン・メモリ・ロケーションがレンダリングされるドキュメントのスキャンラインに対応する、複数のスキャンライン・メモリ・ロケーションを割り付けるステップと、
それぞれのスキャンライン・メモリ・ロケーションに対応する少なくとも一つのインストラクション・メモリ・ロケーションを割り付けるステップと、
少なくとも一つのエンコードされた視覚的出力プリミティブを含む電子ドキュメントを受け取るステップと、
受け取った電子ドキュメントのそれぞれの視覚的出力プリミティブを一連のインストラクションに変換するステップと、
それぞれのインストラクションと少なくとも一つのスキャンライン・メモリ・ロケーションとを関連付けするステップと、
選択されたスキャンライン・メモリ・ロケーションに対応するインストラクション・メモリ・ロケーションにそれぞれのインストラクションを保存するステップと、
エンコードされたスキャンライン出力ファイルを、それぞれのスキャンライン・メモリ・ロケーションに対応するそれぞれのインストラクション・メモリ・ロケーションの内容を含めて、ドキュメント・レンダリング・デバイスに伝達するステップと
を含むことを特徴とするドキュメント・レンダリング方法。
【請求項９】
前記エンコードされたスキャンライン出力ファイルを受け取るステップと、
それぞれのスキャンライン・メモリ・ロケーションのインストラクションを連続的にデコードするステップと、
それぞれのスキャンライン・メモリ・ロケーションのデコードされたインストラクションに対応するビットマップ・バンド出力を生成するステップと
を、さらに、含むことを特徴とする請求項８に記載のドキュメント・レンダリング方法。
【請求項１０】
それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定することを特徴とする請求項８に記載のドキュメント・レンダリング方法。
【請求項１１】
前記電子ドキュメントを受け取るステップは、少なくとも一つのスキャンライン・メモリ・ロケーションが前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含むように、エンコードされた複数の視覚的出力プリミティブを含む電子ドキュメントを受け取るステップを、さらに、含むことを特徴とする請求項８に記載のドキュメント・レンダリング方法。
【請求項１２】
前記インストラクションをデコードするステップは、デコードされたインストラクションが以前にデコードされたインストラクションに関連付けされる部分の少なくとも一部を選択的に上書きするビットマップを生成するように、前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含む前記少なくとも一つのスキャンライン・メモリ・ロケーションからインストラクションをデコードすることを特徴とすることを特徴とする請求項１１に記載のドキュメント・レンダリング方法。
【請求項１３】
それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定することを特徴とする請求項１２に記載のドキュメント・レンダリング方法。
【請求項１４】
少なくとも一つのインストラクションは、テキスト・レンダリング、一般バンド・レンダリング、グラフィクス・レンダリング、バッチ・レンダリングおよびキャッシングのうちの少なくとも一つを含む、ラスタ・オペレーション・コードを含むことを特徴とする請求項１２に記載のドキュメント・レンダリング方法。
【請求項１５】
プロセッサに、
それぞれのスキャンライン・メモリ・ロケーションがレンダリングされるドキュメントのスキャンラインに対応する、複数のスキャンライン・メモリ・ロケーションを割り付ける手順と、
それぞれのスキャンライン・メモリ・ロケーションに対応する少なくとも一つのインストラクション・メモリ・ロケーションを割り付ける手順と、
少なくとも一つのエンコードされた視覚的出力プリミティブを含む電子ドキュメントを受け取る手順と、
受け取った電子ドキュメントのそれぞれの視覚的出力プリミティブを一連のインストラクションに変換する手順と、
それぞれのインストラクションと少なくとも一つのスキャンライン・メモリ・ロケーションとを関連付けする手順と、
選択されたスキャンライン・メモリ・ロケーションに対応するインストラクション・メモリ・ロケーションにそれぞれのインストラクションを保存する手順と、
エンコードされたスキャンライン出力ファイルを、それぞれのスキャンライン・メモリ・ロケーションに対応するそれぞれのインストラクション・メモリ・ロケーションの内容を含めて、ドキュメント・レンダリング・デバイスに伝達する手順と
を実行させることを特徴とするドキュメント・レンダリング・プログラム。
【請求項１６】
プロセッサに、
前記エンコードされたスキャンライン出力ファイルを受け取る手順と、
それぞれのスキャンライン・メモリ・ロケーションのインストラクションを連続的にデコードする手順と、
それぞれのスキャンライン・メモリ・ロケーションのデコードされたインストラクションに対応するビットマップ・バンド出力を生成する手順と
を、さらに、実行させることを特徴とする請求項１５に記載のドキュメント・レンダリング・プログラム。
【請求項１７】
それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定することを特徴とする請求項１５に記載のドキュメント・レンダリング・プログラム。
【請求項１８】
前記電子ドキュメントを受け取る手順は、
少なくとも一つのスキャンライン・メモリ・ロケーションが前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含むように、エンコードされた複数の視覚的出力プリミティブを含む電子ドキュメントを受け取る手順を、さらに、含むことを特徴とする請求項１５に記載のドキュメント・レンダリング・プログラム。
【請求項１９】
前記インストラクションをデコードする手順は、
デコードされたインストラクションが以前にデコードされたインストラクションに関連付けされる部分の少なくとも一部を選択的に上書きするビットマップを生成するように、前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含む前記少なくとも一つのスキャンライン・メモリ・ロケーションからインストラクションをデコードすることを特徴とする請求項１８に記載のドキュメント・レンダリング・プログラム。
【請求項２０】
それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定することを特徴とする請求項１９に記載のドキュメント・レンダリング・プログラム。
【請求項２１】
少なくとも一つのインストラクションは、テキスト・レンダリング、一般バンド・レンダリング、グラフィクス・レンダリング、バッチ・レンダリング、およびキャッシングのうちの少なくとも一つを含むラスタ・オペレーション・コードを含むことを特徴とする請求項１９に記載のドキュメント・レンダリング・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子ドキュメント・ファイルのエンコードされた記述からビットマップ・イメージをレンダリングするシステム、方法およびプログラムに関し、特に、複数あるいは多様なイメージ・タイプを含む複雑な電子ドキュメントを効率的にレンダリングするシステム、方法およびプログラムに関する。
【背景技術】
【０００２】
代表的なドキュメント出力デバイス（装置）、例えばレーザ・プリンタ、インクジェット・プリンタ、またはその他のビットマップ出力デバイスは、一般にビットマップ出力イメージをラスタ・イメージ処理（raster image processing；以下、ＲＩＰということがある。）によって完成されるレンダリングから生成する。よりハイレベルの記述言語が、通常は、電子ドキュメントに関連付けされる。この記述言語は、ページ記述言語（page description language）またはＰＤＬと呼ばれる。ページ記述言語フォーマットは多く存在する。それらはアプリケーション、例えばワード・プロセッシング・パッケージ、ドローイング・パッケージ、コンピュータ支援設計（ＣＡＤ）パッケージ、イメージ処理パッケージ、またはこれらの類から発することができる。その種のファイルは、ドキュメント入力から、例えば電子メール、スキャナ、ディジタイザ、ラスタライザ、ベクトル・ジェネレータ、データ・ストレージおよびこれらの類からも出力することができる。
【０００３】
ラスタ・イメージ・プロセッサは、通常、よりハイレベルの記述言語を、上記のようなビットマップ出力に伝達される一連のスキャンラインまたはビットマップ部分にデコードする。一度にシート全体（またはそれ以上）のビットマップ・イメージ・データがページ・バッファ内に準備され、その後、続いてエンジンに伝達されるが、これはかなりの容量のメモリを必要とする。したがって初期のラスタ・イメージ・プロセッサは、一度に１バンドのピクセルがページ記述から抽出され、このバンドがバッファされ、グラフィカル出力の生成のためにエンジンに伝達されるというスキームを採用していた。このようにして１ないしは複数のページの出力を完成するために一連のバンドが生成されて出力されていた。正確なバンド情報を抽出することは、しばしば、特に入力ページ記述が複数のイメージまたはグラフィクス、テキスト、オーバーレイおよびその類といった混合データ・タイプを含む場合に困難となる。いくつかの初期のシステムにおいては、よりハイレベルのページ記述からの直接的なバンドの生成が、下流のエンジンによって入力が期待されるレートに対応するタイミングにおいてバンドへの変換が完成されることも必要とする。
【０００４】
したがって、メモリの効率的な使用を可能にし、複数の入力データ・タイプを含むページ記述言語入力に適応し、かつグラフィクス出力エンジンの能力と独立したタイミングを伴うイメージ生成に適応するイメージ・レンダリング・システム、方法およびプログラムが望まれていた。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記の従来の問題点に鑑みてなされたもので、メモリの効率的な使用を可能にし、複数の入力データ・タイプを含むページ記述言語入力に適応し、グラフィクス出力エンジンの能力と独立したタイミングを伴うイメージ生成に適応するドキュメント・レンダリングのシステム、方法およびプログラムを提供することを目的とする。さらに、本発明は、複雑なページ記述ファイルからの正確かつメモリ効率のよいレンダリングを可能にするドキュメント・レンダリングのシステム、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明によるドキュメント・レンダリング・システムは、それぞれのスキャンライン・メモリ・ロケーションがレンダリングされるドキュメントのスキャンラインに対応する、複数のスキャンライン・メモリ・ロケーションを割り付けるスキャンライン・メモリ割り付け手段と、それぞれのスキャンライン・メモリ・ロケーションに対応する少なくとも一つのインストラクション・メモリ・ロケーションを割り付けるインストラクション・メモリ割り付け手段とを含むメモリ割り付けユニットと、少なくとも一つのエンコードされた視覚的出力プリミティブを含む電子ドキュメントを受け取る受け取り手段と、受け取った電子ドキュメントのそれぞれの視覚的出力プリミティブを一連のインストラクションに変換する変換手段と、それぞれのインストラクションと少なくとも一つのスキャンライン・メモリ・ロケーションとを関連付けする関連付け手段と、前記メモリ割り付けユニットによって割り付けられ、選択されたスキャンライン・メモリ・ロケーションに対応するインストラクション・メモリ・ロケーションにそれぞれのインストラクションを保存するストレージ手段と、エンコードされたスキャンライン出力ファイルを、それぞれのスキャンライン・メモリ・ロケーションに対応するそれぞれのインストラクション・メモリ・ロケーションの内容を含めて、ドキュメント・レンダリング・デバイスに伝達する出力手段とを有する。本発明によるドキュメント・レンダリング・システムは、前記エンコードされたスキャンライン出力ファイルを受け取る手段と、それぞれのスキャンライン・メモリ・ロケーションのインストラクションを連続的にデコードするデコーディング手段と、それぞれのスキャンライン・メモリ・ロケーションのデコードされたインストラクションに対応するビットマップ・バンド出力を生成する手段とを、さらに、有する。ここで、それぞれのインストラクションは、色、不透明度、パターン、ピクセル範囲、およびラスタ・オペレーション・コードのうちの少なくとも一つを特定する。前記受け取り手段は、少なくとも一つのスキャンライン・メモリ・ロケーションが前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含むように、エンコードされた複数の視覚的出力プリミティブを含む電子ドキュメントを受け取る手段を含む。さらに、前記デコーディング手段は、デコードされたインストラクションが以前にデコードされたインストラクションに関連付けされる部分の少なくとも一部を選択的に上書きするビットマップを生成するように、前記エンコードされた複数の視覚的出力プリミティブのそれぞれに対応するインストラクションを含む前記少なくとも一つのスキャンライン・メモリ・ロケーションからインストラクションをデコードする。少なくとも一つのインストラクションは、テキスト・レンダリング、一般バンド・レンダリング、グラフィクス・レンダリング、バッチ・レンダリングおよびキャッシングのうちの少なくとも一つを含む、ラスタ・オペレーション・コードを含む。
【０００７】
また、本発明によるドキュメント・レンダリング方法は、それぞれのスキャンライン・メモリ・ロケーションがレンダリングされるドキュメントのスキャンラインに対応する、複数のスキャンライン・メモリ・ロケーションを割り付けるステップと、それぞれのスキャンライン・メモリ・ロケーションに対応する少なくとも一つのインストラクション・メモリ・ロケーションを割り付けるステップと、少なくとも一つのエンコードされた視覚的出力プリミティブを含む電子ドキュメントを受け取るステップと、受け取った電子ドキュメントのそれぞれの視覚的出力プリミティブを一連のインストラクションに変換するステップと、それぞれのインストラクションと少なくとも一つのスキャンライン・メモリ・ロケーションとを関連付けするステップと、選択されたスキャンライン・メモリ・ロケーションに対応するインストラクション・メモリ・ロケーションにそれぞれのインストラクションを保存するステップと、エンコードされたスキャンライン出力ファイルを、それぞれのスキャンライン・メモリ・ロケーションに対応するそれぞれのインストラクション・メモリ・ロケーションの内容を含めて、ドキュメント・レンダリング・デバイスに伝達するステップとを含む。
【０００８】
また、本発明によるドキュメント・レンダリング・プログラムは、プロセッサに、それぞれのスキャンライン・メモリ・ロケーションがレンダリングされるドキュメントのスキャンラインに対応する、複数のスキャンライン・メモリ・ロケーションを割り付ける手順と、それぞれのスキャンライン・メモリ・ロケーションに対応する少なくとも一つのインストラクション・メモリ・ロケーションを割り付ける手順と、少なくとも一つのエンコードされた視覚的出力プリミティブを含む電子ドキュメントを受け取る手順と、受け取った電子ドキュメントのそれぞれの視覚的出力プリミティブを一連のインストラクションに変換する手順と、それぞれのインストラクションと少なくとも一つのスキャンライン・メモリ・ロケーションとを関連付けする手順と、選択されたスキャンライン・メモリ・ロケーションに対応するインストラクション・メモリ・ロケーションにそれぞれのインストラクションを保存する手順と、エンコードされたスキャンライン出力ファイルを、それぞれのスキャンライン・メモリ・ロケーションに対応するそれぞれのインストラクション・メモリ・ロケーションの内容を含めて、ドキュメント・レンダリング・デバイスに伝達する手順とを実行させる。
【発明の効果】
【０００９】
本発明によれば、メモリの効率的な使用を可能にし、複数の入力データ・タイプを含むページ記述言語入力に適応し、グラフィクス出力エンジンの能力と独立したタイミングを伴うイメージ生成に適応するドキュメント・レンダリングのシステム、方法およびプログラムが提供される。
【００１０】
さらに本発明によれば、複雑なページ記述ファイルからの正確かつメモリ効率のよいレンダリングを可能にするドキュメント・レンダリングのシステム、方法およびプログラムが提供される。
【００１１】
本発明による効果を詳細に述べると以下のような多くの利点がある。
【００１２】
本発明の一つの利点は、典型的なページ・バッファリング動作によって引き起こされる関連メモリ・マネジメント・サブシステムの負荷の低減を可能とするドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
【００１３】
本発明の別の利点は、ページ・レンダリングの間におけるより低いメモリ使用を可能にするドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
【００１４】
さらに別の本発明の利点は、簡略化された書き込み専用表示リスト・システムを実装し、レンダリングの時点に先行する中間表現フォーマットからの読み出しの必要性をバイパスすることを可能にするドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
【００１５】
さらに別の本発明の利点は、簡略化された透明度およびラスタ・オペレーションを容易にするドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
【００１６】
さらにまた別の本発明の利点は、パフォーマンスおよび中間表現メモリ・サイズを最適化するドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
【００１７】
さらにまた別の本発明の利点は、難しいドキュメント出力ジョブに直面したときにおいて、適切なパフォーマンスの低下を可能とするドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
【００１８】
さらにまた別の本発明の利点は、プロセッサ・キャッシュの利用により高いレンダリング・パフォーマンスを可能にするドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
【００１９】
さらにまた別の本発明の利点は、ソフトウエアあるいはハードウエアを介して、またはそれらの組み合わせを介して好適に実装可能なドキュメント・レンダリングのシステム、方法およびプログラムの提供である。
【発明を実施するための最良の形態】
【００２０】
以下、適宜、図面を参照しながら本発明による実施形態の説明を行う。図１は本発明による実施形態であるドキュメント・レンダリングのシステム、方法およびプログラムを説明するための図である。本発明は、詳細を後述するが、いくつかの主要な特徴を容易にする。それらには、順序付きインストラクション・シーケンスを基礎として部分的にレンダリングされたスキャンラインを確保するための能力が含まれる。また、ハイレベル、ローレベルのレンダリングにおいて遭遇するような２経路レンダリングのためのシステムもそれに含まれる。さらに、このシステムは本質的にフィード・フォワードであり、したがって効率的なレンダリング動作を可能にする。図１に示したシステム、方法は、ローレベル表示リスト・レンダリングを提供する。これは、ラスタ・イメージ処理（以下、ＲＩＰということがある。）に関連し、ローレベルのそれにおいて好適に使用される。このシステムは、ＲＩＰが、ページ上におけるピクセルのマーキングに携わるポイントで適切に実装される。その種のローレベル動作は、スキャンラインｙにおいてｘからｘ１までピクセルのバンドを指定色でレンダリングするといった機能を含む。この他の適切なローレベル動作は、スキャンラインｙにおいてグリフ・ビットマップ（glyph bitmap）からｘ対ｘ１に行を指定色でレンダリングすることである。さらに別の適切なローレベル動作は、スキャンラインｙにおいてｘからｘ１まで擬似ランレングス・エンコード（run length encode；ＲＬＥ）されたピクセルのグループを指定色でレンダリングすることを含む。
【００２１】
図１に沿って説明を行うと、プロセスは、例えばページ記述言語の電子ドキュメントの入力を伴って１０において開始する。このページ記述言語（page description language；以下、ＰＤＬということがある。）は、１２においてインタープリタに伝達される。インタープリタによって解釈されたインストラクションは、１４においてスキャンライン・レンダリング・インストラクションを生成するために伝達される。その後これらのスキャンライン・インストラクションは、１６においてバッファされ、１８においてスキャンライン・レンダリング・インストラクションのリストが生成される。その種のインストラクションは、２４においてレンダラに直接伝達されるか、またはそれに代えて、２０においてストレージ・システム２２、例えばディスクまたはその他の揮発性または不揮発性メモリと調和して働くディスク入力／出力マネージャに伝達される。２４においてレンダラによってレンダリングされると、レンダリングされたドキュメントは、２６における出力デバイスによる出力のために伝達される。適切な出力デバイスには、レーザ・プリンタ、インクジェット・プリンタ、ファクシミリ装置、およびその類等の任意のドット・マトリクスまたはピクセル・ベースの出力をはじめ、後のレンダリングのための任意の適切なメモリへのビットマップ・イメージのストレージ用が含まれる。
【００２２】
ここで、レンダラ２４、インタープリタ１２、ディスクＩ／Ｏマネージャ２０等の機能は、以上説明を行った処理と各部で実行する他の処理を行うため、プロセッサ、ＲＯＭ、ＲＡＭ、オペレーティングシステム等からなるプラットフォームの上で、実行することができる。
【００２３】
次に、図２に、本発明に関連して使用されるページ表現フォーマットを例示する。前述したとおり、このシステムはローレベルの表示リストを好適に使用する。ピクセルを実際にレンダリングするのではなく、本システムは、各ページをはじめ、イメージが出力エンジンに向けてバンディングされるポイントおよび時点等においてそれらのインストラクションを再生する方法を記述するレンダリング・インストラクションの保存を提供する。
【００２４】
このシステムは、ページをスキャンラインの配列として扱う。ここで使用する場合にスキャンラインは、出力ページのピクセルの完全な行を言う。各スキャンラインは、そのスキャンラインのレンダリングをもたらすことになるエンコードされたインストラクションのシーケンスによって表現される。スキャンライン・レンダリング・インストラクションは、１ないしは複数のインストラクション・ブロック内に保存されるが、それらのインストラクション・ブロックは、メモリ・プールから割り付けられるメモリの適切な固定サイズのブロックである。
【００２５】
図２の例示から認識されることになろうが、ページ３０はｙ＝０からｙ＝ｎまでの一連のスキャンラインとして表現され、それにおいてｎは、ページ３０に関連付けされるスキャンラインの数として定義される。
【００２６】
見本のスキャンライン３２を参照すると、このスキャンラインがページ３０上のｙ＝０において完了することに気付く。スキャンラインｙ＝０は、一連のインストラクション３３として表現され、その数は、以下の説明の理解から認識されるとおり、スキャンライン３２から明らかとなる描写に対応する。図２の表現において、スキャンラインｙ＝０に対応するその種のインストラクションは、インストラクション３３ａ、３３ｂ、３３ｃ、および３３ｄを含む。ページ３０から発するページ全体について、類似のインストラクションのセットが各スキャンラインｙに関連付けされることが認識されよう。さらに、以下を読めば認識されるとおり、スキャンラインに関連付けされる内容の複雑性に応じて、より少ない、またはより多くのインストラクションが必要となることも認識されることになろう。上記に加えて、各スキャンラインはポインタ・データを含み、それが、次のインストラクションが加えられることになる次に利用可能なインストラクション・ブロックのエリアをポイントするべく機能する。好ましい実施態様においては、各スキャンラインがグラフィクス状態も含み、その状態が、そのスキャンラインに関連付けされる指定されたグラフィクス・パラメータの現在の状態についての情報を保存するべく機能する。
【００２７】
ＲＩＰプロセスの間に特定のインストラクション・ブロックに関連付けされる以前のインストラクションに続き、スキャンラインにインストラクションが加えられるか、または追加される。図２のｙ＝６となるスキャンライン３６に例示されているようにスキャンラインが空の場合には、システムが、新しい空のインストラクション・ブロックを適切に割り付ける。好ましい実施態様においては、システムが、エンコーディングまたは翻訳プロセスの間に、各インスタンス内にインストラクションを追加するべく機能するだけでインストラクション・ブロックからの読み出しを必要としない。ここで認識されるとおり、出力コントローラに対してページのバンディングが行われるポイントにおいては、システムが、インストラクションを、それらをプリンタ・システムに、そこからの出力のために渡す前に再生して個別のスキャンラインをレンダリングするべく機能する。
【００２８】
一実施態様においては、各スキャンラインに関連付けされるメモリが、グラフィック状態情報を保存するべく機能する。この状態情報はスキャンラインにインストラクションを加えるプロセスの間をはじめ、最終的なレンダリング・プロセスの間の両方で適切に使用される。しかしながら特定の状況においては、パフォーマンス上の理由のため、選択された情報の局在化したキャッシュを作成すると有利となり得ることを認識する必要がある。このグラフィック状態のための適切な情報は、スキャンラインに関連付けされる現在の色を含む。適切なデフォルト色は、例えば、黒とする。
【００２９】
またグラフィック状態情報は、スキャンラインに関連付けされる現在の不透明度も適切に含む。好ましい実施態様においては、デフォルトの不透明度が完全な不透明である。グラフィック状態情報は、プリンタ・コントロール言語（ＰＣＬ）に関連して使用されるような現在のラスタ・オペレータ（ＲＯＰ）も適切に含む。任意の適切なプリンタ・コントロール言語が適切となる。しかしながら好ましい実施態様は、米国ヒューレット・パッカード社によって普及されているとおりの、以前はＰＣＬ６として知られていたＰＣＬ／ＸＬを採用する。適切なデフォルトのＲＯＰは０である。追加の状態エントリは、適切に現在のパターンであり、適切なデフォルトをパターンなしとする。以下において認識されるとおり、本システムは、その種のグラフィック状態要素の修正および使用を教示する。
【００３０】
このシステムにおいては、バイト・コード形式のインストラクション・フォーマットを用いることができる。これは、一般に１バイトとなるopCodeからなる。opCodeには、適切に、１ないしは複数のパラメータ・バイトをはじめ、オプションの埋め込みデータが続く。選択されたopCodeは、適切に、選択された状態情報を含む。その種のopCode型は、スキャンラインのグラフィック状態を変更するopCode等のように、その後に続くすべてのインストラクションに影響を及ぼす変化を適切にもたらす。
【００３１】
このシステムは、４つのopCodeを好適に使用する。包括的なバンド・レンダリングは、適切に、線画等の表現用となる。グラフィック状態は、現在の色、ＲＯＰ、三元ＲＯＰ（ＴＲＯＰ）、パターン、およびこれらの類に適している。opCodeは、バッチ・ピクセル・レンダリングおよびキャッシングのために適切に提供される。これは、イメージのレンダリング、パターン、PostScript（登録商標）シェーディング、ポータブル・ドキュメント・フォーマット（ＰＤＦ）シェーディング、およびこれらの類を容易にする。加えて、opCodeは、テキストのレンダリングに対応するべく適切に提供される。ここで認識されることになろうが、多くのその種のopCodeが、ＰＤＦ、ＰＣＬ、PostScript（登録商標）、および任意のその他の適切なドキュメント言語に関連する使用のために利用可能であり、公開され、定期的に更新されている。
【００３２】
ここで図３を参照し、本発明の実施形態において使用するサンプルのレンダリングを、サンプル・イメージ４０を使用して説明する。システムは、ディスクＩ／Ｏおよびメモリ・サブシステムの初期化、デフォルトまたは空値へのスキャンライン配列（スキャンラインのグラフィック状態を含む）の割り付けおよび初期化によって開始される。適切なディスクおよびメモリ・システムについては、より詳細を後述する。図３のサンプルのイメージ内には４つの要素が例示されている。第１の要素は、月面上のニール・アームストロングを図示しているイメージ４２である。図３のイメージ４０は白黒であるが、このレンダリングが白黒イメージはもとよりカラーにおいて機能することが認識されるであろう。ここでの説明は、本発明の明確な理解を容易にするためにイメージ４２がグレイ色であることを前提とする。次にイメージ４０は、イメージ４０のボトムに配置される矩形部分４４として例示されているベクトル・グラフィクス要素４４を含む。このシステムは、２つのテキスト・オブジェクト、すなわちピクチャ・エリア４２の上に重合された「Neil  Armstrong」という第１のオブジェクト４６、および白でレンダリングされ、矩形エリア４４上に重合された「On The Moon」という字句の第２のオブジェクト４８も例示している。
【００３３】
図３においては、２つのサンプルのスキャンライン、ｙ＝６００およびｙ＝７０００が例示目的のために選択されている。スキャンラインｙ＝６００は、イメージ４２およびテキスト４６の両方と交差している。スキャンラインｙ＝７０００は、イメージ４２、矩形４４、およびテキスト４８と交差している。最初に、それぞれの部分、グラフィック、形状、およびテキストについての記述を個別に説明する。
【００３４】
まず、宇宙飛行士ニール・アームストロングのイメージ４２を参照し、記述を達成するための適切なメカニズムを説明する。この４２のようなピクチャ・イメージは、左から右へのフォーマットで適切に表現される。ラスタ・イメージ処理動作の間においては、しばしば純粋なイメージ・レンダリングのケースに遭遇する。ここでの説明のため、ソース・イメージがプリンタ等のドキュメント出力デバイスと同じ解像度であることを仮定する。例としてのみ示すが、その種の解像度は適切に６００ｄｐｉとする。しかしながら、入力および出力解像度レベルについて任意の解像度が適切に使用されることが認識されよう。また、入力および出力の解像度の間の変換が企図されており、この説明から認識されるとおり、スケーリング・インストラクションを用いて達成されることも認識されるであろう。さらに、この例を説明する目的のために、適切な８ビット・グレイ・イメージが割り付けられる。ここで認識する必要があるが、任意の適切なパレット表現、例えばＣＭＹ、ＣＭＹ（Ｋ）、ＲＧＢ、または任意の加法または減法原色セットが適切に使用される。概して言えば、加法原色セットは、ビデオ・ディスプレイ・デバイス等の能動表示ジェネレータにおいて好適に使用され、減法色セットは、プリントアウト等の受動表示において好適に使用される。
【００３５】
図４は、図３に例示したイメージの表現の構築の開始を例示しており、それにおいてはイメージが４０’における電子ドキュメントとして表現されている。参照番号４９は、図３に例示されているピクチャ４０に対応する関連電子ページ４０’の両方のそれぞれに関連付けされるそれぞれに関連付けされるスキャンラインの配列を例示している。電子ページ４０’によって表現されるイメージの記述の構築の開始時は、インストラクション・ブロックがまったく割り付けられてなく、配列４９内のすべてのスキャンライン構造は、デフォルト値に設定されている。
【００３６】
イメージのための構築プロセスを、図５Ａのフローチャートを併せて検討して詳述する。このフローチャートではイメージがステップ５０において受け取られる。ソース・イメージの行がステップ５２においてデコードされてステップ５４に例示されている生イメージ行が形成される。次に、ステップ５６においてスケーリングおよびランレングスの決定が行われる。これが完了するとステップ５８に進み、そこで一連の入力色値およびピクセル・ランを含むバッファリングが行われる。その後、ステップ６０において、出力に関連付けされるデバイス固有の色空間に対する色値の変換が行われる。この値は、ステップ６２において、一連のデバイス色値およびピクセル・ランにバッファされる。次にステップ６４において、特定の行によって影響を受ける各スキャンラインは、それに関連付けされる色およびランレングス・バッファに関連するインストラクションをそれに追加する。次にステップ６６において、イメージの各行が完了したか否かについての決定が行われる。完了していなければ、次の行を伴ってステップ５２に戻る。最後の行の完了時には、ステップ６８においてこの手順が終了する。
【００３７】
要約すると、サンプルのピクチャ等のソース・イメージのための処理は、ソース・イメージ・ピクセルの各行について行われる。必要であればスケーリングが行われる。この例においては、イメージ入力および出力がともに対応の６００ドット・パー・インチに固定されている。したがって、その種の状況においてはスケーリングが必要ないことになる。色値および対応するランレングスがバッファされる。これらの値は、通常の出力におけるＣＹＭＫ等の関連出力の色空間に変換される。システムは、レンダリングが行われている行によっていずれのスキャンラインが影響を受けるかを計算する。そのソース・イメージ行のレンダリングを行う対応のインストラクションが、スキャンラインに関連付けされるインストラクション・ブロックに追加される。このプロセスが各行について完成される。
【００３８】
図３のサンプルのイメージにおいては、ピクチャ部分４２が６００およびｙ＝７０００両方におけるスキャンラインに影響を与える。したがって、全イメージ４０に関連付けされるデータの変換の間のいくつかのポイントにおいて部分４２に関するレンダリングが、結果として、それらのスキャンラインに配置されるインストラクションを伴って生じる。
【００３９】
サンプルのｙ＝６００におけるスキャンラインを参照すると、ソースからイメージが、例えばレンダリングされることになる入力からグレイ・イメージ行が取り出されたことになる。入力および出力両方が、この例においては６００ｄｐｉに設定されることから、スケーリングは必要ない。ｙ＝６００におけるスキャンラインの良好な部分は、黒になり、特徴がない。これに、ヘルメットの上端についての何らかの詳細、より多くの黒い宇宙およびはるか右方の月の詳細が続くことになる。このラインが完成された後に適切な表現が生成されることになり、それが図６Ａに示されている。複雑性における実際の表現は、この記述を多様化することになろうが、好ましい実施態様の例示にはこれで十分である。
【００４０】
次に、図７Ａを参照すると、適切な出力デバイスの色空間に対する変換後の表現が例示されている。図６Ａの場合と同様に、この表現は、例示目的のためだけに提供されている。実際の記述は、入力および出力イメージのより正確な詳細および性質に関して多様なものとなろう。図７Ａの情報は、イメージ・ページに従って適切に整理されており、ｙ＝６００におけるスキャンラインに対応する選択された座標において開始する。インストラクション・ブロックが割り付けられる。このインストラクション・ブロックは、適切なopCodeを表す１バイト・コードを適切に含む。最初のインストラクション・ブロック内では、適切な値がopCodeの開始を表す。次のopCodeが形成され、それがイメージの開始ｘ座標を設定する。次に、図７Ａに例示されているように、適切なイメージ・データ・エンコーディング・スキームに対して値が変換される。このプロセスが、すべてのイメージが処理されるまで、イメージに関連付けされるそれぞれの行ごとに完成される。
【００４１】
図６Ｂおよび７Ｂは、前述の図６Ａおよび７Ａに関連する例示に対する代替実施態様を例示している。図６Ｂはカラー・イメージ内のソース値の代替エンコーディングを例示しており、図７Ｂは適切な出力デバイスの色空間に対する変換後の代替エンコーディングを例示している。それぞれにおいて、２つの並列の配列が値のエンコードに使用される。いずれの場合にも最初がランレングスの配列、２番目が色値の配列である。ここで認識することになろうが、この実施態様の図７Ｂのページ座標値は、関連イメージ・ランのページ座標として定義される次の配列形式でエンコードされる。
【００４２】
ｘ０，ｙ０
ｘ１，ｙ１
黒、すなわち８ビット表現において適切に２５５となる値の最初のイメージ・ランは、ｙ＝６００における１ピクセルの高さのｘ＝１００から２４９９までとなる。ｘ１およびｙ１の値は非算入であり、その結果、対応するランの高さはｙ１−ｙ０であり、幅ｙ１−ｙ０を伴う。
【００４３】
図６Ｃおよび７Ｃは、図６Ｂおよび７Ｂに対応する実施態様を例示しており、グレイスケール・イメージがエンコードされる。この実施態様においては、Ｃ、Ｙ、Ｍ値がすべてゼロであり、したがって出力がグレイスケールになると考えられる。したがって、すべての実施態様がカラーまたはグレイスケールのレンダリングを企図していることが認識されるであろう。
【００４４】
図５Ｂは、図６Ｂ、７Ｂ、および６Ｃ、７Ｃに関連して例示されているとおりの並列配列形式におけるイメージについての構築プロセスのフローチャートを例示している。このフローチャートではイメージがステップ７０において受け取られる。ソース・イメージの行がステップ７２においてデコードされてステップ７４に例示されている生イメージ行が形成される。次に、ステップ７６においてスケーリングおよびランレングスの決定が行われる。これが完了するとステップ７８に進み、そこで一連の入力色値およびピクセル・ランを含むバッファリングが行われる。この実施態様の場合は、ここで並列配列が形成されることに注意する。その後、ステップ８０において、出力に関連付けされるデバイス固有の色空間に対する色値の変換が行われる。この値は、ステップ８２において、これも並列配列として形成される一連のデバイス色値およびピクセル・ランにバッファされる。次にステップ８４において、特定の行によって影響を受ける各スキャンラインは、それに関連付けされる色およびランレングス・バッファに関連するインストラクションをそれに追加する。次にステップ８６において、イメージの各行が完了したか否かについての決定が行われる。完了していなければ、次の行を伴ってステップ７２に戻る。最後の行の完了時には、ステップ８０においてこの手順が終了する。
【００４５】
図８を参照すると、ｙ＝６００およびｙ＝７０００におけるロケーションによって表現されるとおりのイメージ部分４２を含む完全な表現の部分が例示されている。ここで認識されることになろうが、イメージ４２のすべての相は、それぞれのスキャンライン内に対応するエントリを有する。図９を参照し、図３の矩形４４に関して説明する。この例においては、グレイの矩形４４がベクトル形式で適切に表現される。適切なベクトル・レンダリングにおいては、形状が台形に、その後単一のスキャンライン・バンドに分解される。しかしながら多くの他の場合には、例として述べるが、複雑な形状が、個別の１ピクセルの高さのバンドを描画する一連の要求に帰着することを認識される必要がある。
【００４６】
ベクトル矩形のレンダリングは単純になる。スキャン変換が、出力スキャンライン当たり１バンドのレンダリング要求に帰着し、各バンドは、同一の開始ｘ座標および幅ｗを有する。このシステムは、前述した４２等のイメージの部分を矩形がオーバーラップする否かに関わる必要がない。例えばイメージ・データおよびベクトル・データを含む複合イメージの場合は、矩形の記述等のベクトル・データがイメージ・データおよびそのスキャンラインのためのインストラクション・ブロックの後に追加されることになる。この記述において、レンダリングの済んだ基礎をなすオブジェクトの上または下のいずれに描画が現れるかを決定するか、または指定する必要がない。
【００４７】
矩形４４の例においては、変換が、結局のところ１ピクセルの高さのバンドを描画する一連の要求に帰着する。それぞれの要求について、有効なスキャンラインがそれに割り付けられているインストラクション・ブロックを有するか否かを判断する決定がなされる。これがまだ完成されていなければ１つが割り付けられる。次に、スキャンラインのための現在の色がレンダリングされることになるものと整合するか否かについての決定がなされる。整合しない場合には、必要な色を選択するべく適切なopCodeが設定される。次に、レンダリングに関連するopCodesが、対応するバンドの開始ｘ座標および長さに関連付けされる影響を受けるそれぞれのラインに追加される。矩形部分４４内においては、結局のところ処理が、ｙ＝７０００等のスキャンラインを導き、それにおいてはメモリがすでに割り付けられており、したがってその種のメモリを再度割り付ける必要がない。前述したイメージ部分４２と同様に、黒等のデフォルト色が選択され、必要に応じて適切な色を設定するべくインストラクションが追加されることになる。例を示すと、グレイの矩形は、値を適切に、４バイトによって定義される８ビット成分レベルのＣＹＭＫグレイを定義する０，０，０，１２８に設定することになる。スキャンライン７０００を続けるが、バンドをレンダリングするopCodesについてのバイト・コード（opRenderBand）がインストラクション・ブロックに適切に追加され、それに、適切に２バイトとする開始ｘ座標、およびこれも適切に２バイトとする幅の値ｗが続く。
【００４８】
上記から認識されることになろうが、したがってこの表現は、ピクチャ部分４２をはじめ矩形部分４４についての情報をともに含む。次に、テキスト空間要素の構成を説明する。
【００４９】
図３の例のイメージ４０においては、テキスト相が文字列４６および４８を含む。テキスト情報のレンダリングのために、メモリ内の１ビット・グリフに必要なサイズで必要な文字をレンダリングする要求が最初になされる。グリフ・ビットマップ内の各行について、その行を適切な出力スキャンラインに、要求された色でレンダリングするべくインストラクションが加えられる。次に、必要であれば現在の色が選択される。このサンプルの例においては、すべてのスキャンラインのためのデフォルト色が黒である限り、文字列４６のテキストのためにこれが白に設定されなければならない。これは、opCodeを用いて、例えば選択された値に対するopSetColor等の１バイト・コードを用いて適切に達成される。例として述べるが、ＣＹＭＫ色空間においては、０，０，０，０が白の４バイト値を適切に表現する。図１２のスキャンライン６００においては、opGlyphBandについての１バイト・コード、グリフが開始する次の座標についての２バイト、グリフの幅についての２バイトが追加される。
【００５０】
図１０を参照すると、テキスト文字列４６内の最初の文字に対応する文字“Ｎ”が例示されている。図１０は、この文字に関連付けされる適切な１ビット・グリフ・イメージを例示している。スキャンライン６００における、前述した“Ｎ”のグリフ（glyph）の部分が図１１に例示されている。ビットマップの色づけされない部分、すなわち黒で示されている単一ビット・イメージが白で描画され、白い部分が適切に透明として示される。その後この情報が、それぞれのスキャンラインについて、グラフィックおよびベクトル・ベースのイメージについて以前に構築された表現に追加される。前述したとおり、ｙ＝６００についてスキャンラインが最後をオーバーラップするインストラクション・ブロックがまだ割り付けられていない場合には、１つが割り付けられることになる。
【００５１】
レンダリングが完成すると、システムは、グリフ・データの対応する行を表す充分な記録済み情報を有する。
【００５２】
各テキスト文字列内の残りの文字も上記のとおりに扱われる。ここで認識されることになろうが、同一テキスト文字列内のその後に続く文字は、先行する文字に関して色が設定されている限り、次の文字が先行するものと異なる色を有するべく選択された場合を除いてそれを行う必要がない。
【００５３】
１ないしは複数のイメージ部分を含めてイメージについての完全な記述が完成すると、システムは、出力を可能にするべくイメージのバンディングに進む。この段階においてシステムは、現在のこの実施態様で通常は１２８スキャンラインの長さとなる完全な非圧縮バンドのための充分なメモリを適切に提供する。バンドは、バンドを含む各正規のスキャンラインを見つけ出すことによって埋められ、それらのバンドに関連付けされるopCodesインストラクションは、代表的に上に詳述した。
【００５４】
図１３は、詳細を前述した例示のイメージにおいてｙ＝７０００に関連付けされるインストラクションの一例を提供する。この図には、そのスキャンラインに関連付けされるインストラクションを含む適切なバッファの内容が例示されている。レンダリング・プロセスにおいては、関連エンジンに、関連するスキャンラインをレンダリングするメモリのブロックに対するポインタが与えられる。これは、そのスキャンラインに関連付けされるインストラクションを処理することによって達成される。レンダリングは、最初にデフォルトを選択するべくスキャンライン・グラフィック・プロセッサをリセットすることによって開始する。次に対応するブロックからインストラクションが取り出されて実行され、ディスティネーション・メモリ・ブロック内にレンダリングが完成される。図１３のスキャンラインｙ＝７０００の例では、opBeginImageとする最初のopCodeがまず取り出される。このopCodeは、開始ｘ座標となる最初の２バイトを適切にアドレスする。この値が取り込まれると、システムが関連インストラクション・バッファ内のエンコード済みイメージ・データを通って反復し、対応するディスティネーション・メモリ・ブロック内にピクセルをプロットする。
【００５５】
図示の例では、このポイントにおいてディスティネーション・メモリ・ブロックが、ニール・アームストロングの足の下の月の、１ピクセル高のスライスを伴うスキャンラインを含む。次に、opSetColorが取り出されて色が設定される。この例においてはこれが、前述した矩形のグレイを指定する値０，０，０，１２８になる。次に定義されているopCodeは、開始ｘ座標およびバンドの幅を取り出すopRenderBandであり、これは、以前のレンダリング済みピクチャ・イメージの上を覆ってグレイの矩形のバンドをレンダリングする手順に帰着することになる。次に、コード“Ｏ”文字のスライスであるグリフ・データ（glyph data）を、白とする選択色でレンダリングするopCodeが取り出される。このレンダリングがディスティネーション・メモリ・ブロックに伝達される。最後に、テキスト文字のレンダリングが、このバンドに影響を与える残りすべての文字について完成される。関連バンドについてのすべてのレンダリングが完成すると、最終ページ上にプリントアウトするか、あるいはそのほかドキュメント出力デバイスに出力する準備が整う。この例において、ｙ＝７０００についてのレンダリングが完成すると、ｙ＝７，００１におけるスキャンラインへというように、ページが完全にレンダリングされて、最終出力のためのシステムに完全に渡されるまで進められる。
【００５６】
本発明は、ソースコード、オブジェクトコード、部分的にコンパイルされた形のようなコード中間ソースおよびオブジェクトコードの形、あるいは本発明の実施形態で使用するために適した任意の他の形のコンピュータプログラムに適用される。コンピュータプログラムは、スタンドアローンのアプリケーション、ソフトウェアコンポーネント、スクリプト、または他のアプリケーションへのプラグインとすることができる。本発明を組み込むコンピュータプログラムは、例えば、ＲＯＭやＲＡＭなどの記憶媒体、ＣＤ−ＲＯＭなどの光記録媒体、フロッピー（登録商標）ディスクなどの磁気記録媒体などの、コンピュータプログラムを伝達することができる任意の実体または装置である担体上で具体化することができる。この担体は、電気ケーブルまたは光ケーブルによって、または無線や他の手段によって伝えられる電気信号や光信号などの任意の伝達可能な担体である。コンピュータプログラムは、サーバからインターネットを介して適切にダウンロードされる。また、コンピュータプログラムの機能は集積回路に組み込むこともできる。示した本発明の原理を実質的にコンピュータまたはプロセッサに実行させるコードを含む任意およびすべての実施形態は、本発明の範囲内にある。
【００５７】
本発明の好ましい実施形態の以上の説明は、例示と説明のために行った。説明は網羅的でもなく本発明を開示した形態に限定しようとするものでもない。以上の教示を鑑みて明らかな修正または変形が可能である。実施形態は、本発明の原理とその実際的な応用例を最もよく示し、それにより当業者が、本発明を、意図された特定の使用に適した様々な実施形態において様々な修正で使用できるように選択され説明された。そのようなすべての修正と変形は、特許請求の範囲の記載に明示されるとおりの本発明の原理および範囲内において、当業者によって行われ得ることは明らかであり、特許請求の範囲の記載によって定められる発明の範囲内にある。
【図面の簡単な説明】
【００５８】
【図１】本発明による実施形態であるシステム、方法およびプログラムを説明するための図である。
【図２】本発明による実施形態において関連するページ表現の構成を例示した図である。
【図３】本発明による実施形態においてレンダリングされるサンプル・イメージを例示した図である。
【図４】本発明による実施形態において、図３に示されたサンプル・イメージのレンダリングのための開始ページ表現を例示した図である。
【図５Ａ】本発明による実施形態におけるイメージ・レンダリングのフローチャートの例を示す図である。
【図５Ｂ】本発明による実施形態におけるイメージ・レンダリングのフローチャートの例を示す図である。
【図６Ａ】本発明による実施形態におけるレンダリングの生ピクセルおよびランレングスを例示した図である。
【図６Ｂ】本発明による実施形態におけるレンダリングの生ピクセルおよびランレングスを例示した図である。
【図６Ｃ】本発明による実施形態におけるレンダリングの生ピクセルおよびランレングスを例示した図である。
【図７Ａ】本発明による実施形態におけるレンダリングのＣＹＭＫピクセルおよびランレングスを例示した図である。
【図７Ｂ】本発明による実施形態におけるレンダリングのＣＹＭＫピクセルおよびランレングスを例示した図である。
【図７Ｃ】本発明による実施形態におけるレンダリングのＣＹＭＫピクセルおよびランレングスを例示した図である。
【図８】本発明による実施形態におけるサンプル・イメージの表現の例を示す図である。
【図９】本発明による実施形態における他のサンプル・イメージの表現の例を示す図である。
【図１０】本発明による実施形態において、サンプル文字“Ｎ”のビットマップの例を示す図である。
【図１１】図１０に例示した文字“Ｎ”のビットマップ・ラインの例を示す図である。
【図１２】本発明による実施形態におけるテキスト要素の表現の例を示す図である。
【図１３】本発明による実施形態におけるインストラクション・バッファの例を示す図である。
【符号の説明】
【００５９】
１２  インタープリタ
２０  ディスクＩ／Ｏマネージャ
２２  ディスク
２４  レンダラ
【図１】
2007245723.tif 000003
【図２】
2007245723.tif 000004
【図４】
2007245723.tif 000005
【図５Ａ】
2007245723.tif 000006
【図５Ｂ】
2007245723.tif 000007
【図６Ａ】
2007245723.tif 000008
【図６Ｂ】
2007245723.tif 000009
【図６Ｃ】
2007245723.tif 000010
【図７Ａ】
2007245723.tif 000011
【図７Ｂ】
2007245723.tif 000012
【図７Ｃ】
2007245723.tif 000013
【図８】
2007245723.tif 000014
【図９】
2007245723.tif 000015
【図１２】
2007245723.tif 000016
【図１３】
2007245723.tif 000017
【図３】
2007245723.tif 000018
【図１０】
2007245723.tif 000019
【図１１】
2007245723.tif 000020