(57)【要約】      （修正有）【課題】メモリ容量、記憶速度、キャッシュ容量、プロセッサ速度及びその他のシステムパラメータがプリンタ間で異なる印刷環境において、印刷キャッシュメモリの最適化を柔軟に行う。【解決手段】キャッシュ内にオブジェクトが存在しない場合に参照カウントに初期値を割り当てる工程と、キャッシュ内にオブジェクトが既に存在する場合に参照カウントを第一の重み分だけインクリメントする工程と、ページ終了事象に応じて参照カウントを第二の重み分だけデクリメントする工程と、参照カウントが閾値未満の場合にキャッシュからオブジェクトを削除する工程と、を有する。【選択図】図３
2010182300.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一のオブジェクトに対するキャッシュメンバーシップを決定する、コンピュータ実行可能な方法であって、前記キャッシュがプリンタにおけるメモリの一部をなし、前記少なくとも一のオブジェクトは少なくとも一の参照カウントと関連付けられ、
前記方法は、コンピュータにより実行される以下の工程：
ａ）前記キャッシュ内に前記オブジェクトが存在しない場合、前記参照カウントに初期値を割り当てる工程；
ｂ）前記キャッシュ内に前記オブジェクトが既に存在する場合、前記参照カウントを第一の重み分だけインクリメントする工程；
ｃ）ページ終了事象に応じて前記参照カウントを第二の重み分だけデクリメントする工程；及び
ｄ）前記参照カウントが閾値未満の場合、前記キャッシュから前記オブジェクトを削除する工程、
を有する。
【請求項２】
前記キャッシュ内に前記オブジェクトを配置する前に、前記参照カウントに前記初期値が割り当てられる請求項１に記載のコンピュータ実行可能な方法。
【請求項３】
前記参照カウントに割り当てられる前記初期値は、前記閾値と前記第二の重みとの和以上である請求項１に記載のコンピュータ実行可能な方法。
【請求項４】
前記オブジェクトは、画像オブジェクト、図形オブジェクト、テキストオブジェクト、フォントオブジェクト又はベクターメタデータオブジェクトのうちの一である請求項１に記載のコンピュータ実行可能な方法。
【請求項５】
前記第一の重みがオブジェクトのクラスに共通である請求項１に記載のコンピュータ実行可能な方法。
【請求項６】
前記第一の重みが全てのオブジェクトに共通である請求項１に記載のコンピュータ実行可能な方法。
【請求項７】
前記第二の重みがオブジェクトのクラスに共通である請求項１に記載のコンピュータ実行可能な方法。
【請求項８】
前記第二の重みが全てのオブジェクトに共通である請求項１に記載のコンピュータ実行可能な方法。
【請求項９】
前記プリンタに接続されたプロセッサにより実行される請求項１に記載のコンピュータ実行可能な方法。
【請求項１０】
前記第一及び第二の重みは、前記オブジェクトの大きさと前記キャッシュの大きさとの少なくとも一方に基づき決定される請求項１に記載のコンピュータ実行可能な方法。
【請求項１１】
前記第一の重みが前記第二の重み以上である請求項１に記載のコンピュータ実行可能な方法。
【請求項１２】
プロセッサにより実行された際に、少なくとも一のオブジェクトに対するキャッシュメンバーシップを決定する、コンピュータ実行可能な方法における各工程を行う命令を記憶するコンピュータ読取可能な媒体であって、前記キャッシュがプリンタにおけるメモリの一部をなし、前記少なくとも一のオブジェクトは少なくとも一の参照カウントと関連付けられ、
前記方法は、コンピュータにより実行される以下の工程： 
ａ）前記キャッシュ内に前記オブジェクトが存在しない場合、前記参照カウントに初期値を割り当てる工程；
ｂ）前記キャッシュ内に前記オブジェクトが既に存在する場合、前記参照カウントを第一の重み分だけインクリメントする工程；
ｃ）ページ終了事象に応じて前記参照カウントを第二の重み分だけデクリメントする工程；及び
ｄ）前記参照カウントが閾値未満の場合、前記キャッシュから前記オブジェクトを削除する工程、
を有する。
【請求項１３】
前記参照カウントに割り当てられる前記初期値は、前記閾値と前記第二の重みとの和以上である請求項１２に記載のコンピュータ読取可能な媒体。
【請求項１４】
前記オブジェクトは、画像オブジェクト、図形オブジェクト、テキストオブジェクト、フォントオブジェクト又はベクターメタデータオブジェクトのうちの一である請求項１２に記載のコンピュータ読取可能な媒体。
【請求項１５】
前記第一及び第二の重みが前記オブジェクトの大きさと前記キャッシュの大きさとの少なくとも何れか一方に基づき決定される請求項１２に記載のコンピュータ読取可能な媒体。
【請求項１６】
前記第一の重みが前記第二の重み以上である請求項１２に記載のコンピュータ読取可能な媒体。
【請求項１７】
印刷データストリームから派生した少なくとも一のオブジェクトに対するキャッシュメンバーシップを決定するシステムであって、
前記少なくとも一のオブジェクトは少なくとも一の参照カウントと関連付けられ、
前記システムが、
前記印刷データストリームを受信する入力インターフェースと、
キャッシュを有し前記印刷データストリームから派生した前記少なくとも一のオブジェクトを記憶するメモリと、
前記入力インターフェースと前記メモリとに接続されるとともに、ａ）前記キャッシュ内に前記オブジェクトが存在しない場合に前記参照カウントに初期値を割り当てる工程と、ｂ）前記キャッシュ内に前記オブジェクトが既に存在する場合に前記参照カウントを第一の重み分だけインクリメントする工程と、ｃ）ページ終了事象に応じて前記参照カウントを第二の重み分だけデクリメントする工程と、ｄ）前記参照カウントが閾値未満の場合に前記キャッシュから前記オブジェクトを削除する工程と、を実行するための命令を遂行するプロセッサと、を有するシステム。
【請求項１８】
前記参照カウントに割り当てられる初期値は、前記閾値と前記第二の重みとの和以上である請求項１７に記載のシステム。
【請求項１９】
前記第一及び第二の重みは、オブジェクトの大きさとキャッシュの大きさとの少なくとも一方に基づき決定される請求項１７に記載のシステム。
【請求項２０】
前記第一の重みが前記第二の重み以上である請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷分野に関し、特に、印刷装置におけるメモリ管理用システム及びその方法に関する。
【背景技術】
【０００２】
印刷中の文書において再利用される画像及び／又はその他のオブジェクトの高速印刷を促進するために、これらのオブジェクトはキャッシュメモリ内にキャッシュされ得る。キャッシュ済みオブジェクトがその他の（キャッシュ済み、及び、未キャッシュ）オブジェクトによって参照される際、かかる被参照オブジェクトは、その後の処理のために迅速にアクセスされ得る。未使用のオブジェクトによって消費されるメモリ及びその他のリソースが適時に解放されることを確保する一方で、キャッシュメモリの利用を最適に管理することにより、被参照オブジェクトへのより高速なアクセスが可能となる。
【０００３】
コンピュータシステムにおいて、キャッシュ済みオブジェクトを管理する一のメカニズムは、参照カウント法と呼ばれる。参照カウント法においては、キャッシュ済みオブジェクトのようなリソースへの外部参照の回数（“参照カウント”）を算出することができ、また、その参照カウントは前記のリソースやオブジェクトと関連付けられ得る。あるオブジェクトがもはや参照されないことを参照カウントが示した場合、そのオブジェクト又はリソースはキャッシュから削除され得る。通常は、アクセスできないようにオブジェクトを効果的にレンダリングすることにより、参照カウントがゼロ、すなわち、オブジェクトが他の何れのオブジェクトによっても参照されないことを意味する値になった場合に割当解除が起きる。参照カウント法における従来の方法では、オブジェクト又はリソースが新たに参照されたときに参照カウントが一つインクリメントされ、オブジェクト又はリソースに対する既存の参照が損なわれたり上書きされたりしたときに参照カウントが一つデクリメントされる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、メモリ容量、記憶速度、キャッシュ容量、プロセッサ速度及びその他のシステムパラメータがプリンタ間で大きく異なる印刷環境においては、上記のような従来のメカニズムは、キャッシュ管理の自由度を制限してしまう。従って、キャッシュ最適化技術において自由度を大幅に改善できる、印刷装置におけるメモリ管理用システム及びその方法が必要となる。
【課題を解決するための手段】
【０００５】
開示する実施形態によれば、プリンタにおけるメモリの一部をキャッシュが構成するとともに、少なくとも一の参照カウントに対応付けられた少なくとも一のオブジェクトについてキャッシュメンバーシップを決定するためのシステム及び方法が開示される。いくつかの実施形態において、前記方法は、ａ）前記キャッシュ内に前記オブジェクトが存在しない場合に前記参照カウントに初期値を割り当てる工程と、ｂ）前記キャッシュ内に前記オブジェクトが既に存在する場合に前記参照カウントを第一の重み分だけインクリメントする工程と、ｃ）ページ終了事象に応じて前記参照カウントを第二の重み分だけデクリメントする工程と、ｄ）前記参照カウントが閾値未満の場合に前記キャッシュから前記オブジェクトを削除する工程と、を備え得る。
【０００６】
いくつかの実施形態はまた、ソフトウェア、ファームウェア、及び、コンピュータ読取可能な媒体又はコンピュータ読取可能なメモリを用いてプロセッサにより創造され、記憶され、アクセスされ又は改良されたプログラム命令に関する。ここに記載される方法は、コンピュータ及び／又はプリンタ装置において実行され得る。これらの及びその他の実施形態が、以下に図面を参照してさらに説明される。
【図面の簡単な説明】
【０００７】
【図１】画像及びソフトマスクデータ入りの印刷データストリームを処理する例示的システムの構成を説明したブロック図である。
【図２】例示的プリンタの高水準ブロック図である。
【図３】例示的オブジェクト及び潜在的なキャッシュ候補に関するメモリ管理用の例示的アルゴリズムにおける各工程を示したフローチャートである。
【発明を実施するための形態】
【０００８】
以下に開示する実施形態によれば、印刷装置におけるメモリ管理用システム及びその方法が提供される。このメモリ管理技術は、印刷装置におけるキャッシュメモリ内のオブジェクトを管理するにあたって自由度を大幅に改善できる最適化技術を含む。オブジェクトは、画像オブジェクト、図形オブジェクト、テキストオブジェクト、フォントオブジェクト、ベクターメタデータオブジェクトに加え、キャッシュされ得るその他のオブジェクトを含んでいてもよい。
【０００９】
図形や形状を含み得るベクターメタデータは、しばしばコンテンツを種々の数学的パラメータの観点から記述する。例えば、数学的パラメータは、色データ、形状データ及び／又はテクスチャデータを記述してもよい。さらにベクターメタデータは、四角形、円、等のような形状のみならず、例えば、Adobe Illustrator（登録商標）の線画、図表のようなオブジェクトを含んでいてもよい。ベクターメタデータはまた、二次元の静的又は動的（対話式又は動画）なオブジェクトを記述できるＸＭＬベースのＳＶＧ（Scalable Vector Graphics）オブジェクトを含んでいてもよい。ＳＶＧオブジェクトは、予めレンダリングされたオブジェクトにグループ分け、型合わせ、変換及び合成されてもよい。キャッシングは、ＳＶＧ及びその他のベクターメタデータオブジェクトへのアクセスを促進することを支援し得る。
【００１０】
図１は、文書印刷用の例示的システムの構成を説明したブロック図である。印刷データストリームから派生したオブジェクトのキャッシュメンバーシップを決定するためのアプリケーションは、図１に示すように、従来の通信プロトコル及び／又はデータポートインターフェースを用いて情報をやりとりする通信リンクを介して接続された、コンピュータと印刷装置とのネットワーク上に配置されていてもよい。
【００１１】
図１に示すように、例示的システム１００は、コンピュータデバイス１１０とサーバ１３０とを含むコンピュータを備えている。さらに、コンピュータデバイス１１０とサーバ１３０とは、ネットワーク１４０を通り得る接続部１２０を介して通信してもよい。コンピュータデバイス１１０は、コンピュータワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、又は、ネットワーク環境で使用可能な、その他の如何なるコンピュータデバイスであってもよい。サーバ１３０は、コンピュータデバイス１１０その他のデバイス（不図示）に接続可能なプラットフォームであってもよい。コンピュータデバイス１１０とサーバ１３０とは、プリンタ１７０を用いて文書の印刷を可能とするソフトウェア（不図示）を実行可能であってもよい。
【００１２】
コンピュータデバイス１１０及び／又はサーバ１３０において稼動中の文書処理ソフトウェアにより、ユーザは、文書をタイミングよく表示、編集、処理及び記憶し得る。文書中の印刷すべきページは、Ａｄｏｂｅ（登録商標）ＰＤＦ及びその変種のようなページ記述言語（Page Description Language：ＰＤＬ）で記述され得る。プリンタ１７０は、文書における各ページの高級記述を規定する文書のＰＤＬ記述に応じた印刷データストリームを受信し得る。このＰＤＬ記述は、文書印刷中に、しばしば一連のより低級なプリンタ固有コマンドに変換される。画像オブジェクト、テキストオブジェクト、図形オブジェクト、フォントオブジェクト、ベクターメタデータオブジェクト及び／又はその他のオブジェクトを含む種々のオブジェクトは、上記印刷データストリームから派生し、プリンタメモリに記憶され、そして、文書印刷処理の過程における種々のポイントにおいて再利用されてもよい。
【００１３】
ＰＤＬから低級プリンタ固有コマンドへの変換処理は、複雑な上に、例示的プリンタ１７０によってもたらされる特徴及び性能に依存し得る。例えば、プリンタ１７０は、そのデータを段階的に処理してもよい。第一段階において、プリンタ１７０は、ＰＤＬコマンドを解析して高級命令をプリミティブと呼ばれる一連の低級命令群に分解し得る。これらプリミティブは、ページ上のどこにマークを付するかを決定するために該プリミティブを使用し得る例示的プリンタ１７０の後段に供給され得る。場合によって、各プリミティブは、生成されたときと同様に処理され得る。他のシステムにおいて、大量のプリミティブが生成され、記憶され、その後に処理され得る。例えば、単独のページを記述するのに必要なプリミティブが生成され、リストに記憶され、その後に処理され得る。記憶された一連のプリミティブは、中間リスト又はディスプレイリストと称される。
【００１４】
概して、プリンタ１７０は、限定はしないが、レーザープリンタ及びＬＥＤプリンタのような電子写真プリンタ、インクジェットプリンタ、感熱式プリンタ、レーザー撮像装置及びオフセットプリンタを含む、電子データから物理的文書を生成するように構成できるどのようなデバイスであってもよい。プリンタ１７０は、ファクシミリ装置やデジタル複写機に搭載されるような画像送受信機能、画像読み取り機能及び／又はコピー機能を備えていてもよい。例示的プリンタ１７０はまた、接続部１２０を介してコンピュータデバイス１１０又はサーバ１３０から受信した文書を直接印刷可能であってもよい。いくつかの実施形態において、このような配置とすることにより、コンピュータデバイス１１０又はサーバ１３０による追加処理を伴う（又は伴わない）文書の直接印刷が可能となり得る。テキストオブジェクト、図形オブジェクト、画像オブジェクト、フォントオブジェクト、ベクターメタデータオブジェクトその他のオブジェクトのうち１以上を含み得る文書の処理は、分配され得る。このようにして、コンピュータデバイス１１０、サーバ１３０及び／又はプリンタは、文書がプリンタ１７０によって物理的に印刷される前に、文書印刷処理、ディスプレイリスト生成、中間調処理、色合わせ及び／又はその他の操作処理の一部を実行し得る。いくつかの実施形態において、プリンタ１７０は、開示されたいくつかの実施形態と合致する方法で印刷データストリームから派生したオブジェクトのキャッシュメンバーシップを決定する技術を含み得るＯＳ（Operating System）を備えていてもよい。
【００１５】
コンピュータデバイス１１０はまた、リムーバブルメディアドライブ１５０を有していてもよい。リムーバブルメディアドライブ１５０は、例えば、３．５インチフロッピーディスクドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤ−ＲＯＭドライブ、ＣＤ±ＲＷ又はＤＶＤ±ＲＷドライブ、ＵＳＢフラッシュドライブ、及び／又はその他の取り外し可能などのようなメディアドライブを含んでもよい。アプリケーションの各部は、取り外し可能なメディアに存在してもよく、システム１００において実行される前にリムーバブルメディアドライブ１５０を用いてコンピュータデバイス１１０により読み込まれてもよい。
【００１６】
接続部１２０は、コンピュータデバイス１１０、サーバ１３０及びプリンタ１７０を接続しており、従来の通信プロトコル及び／又はデータポートインターフェースを用いた有線又は無線の接続部として実装されていてもよい。概して、接続部１２０は、装置間におけるデータ送信を可能とするどのような通信チャンネルであってもよい。一実施形態において、例えば、適切な接続部を介したデータ送信用のパラレルポート、シリアルポート、イーサネット、ＵＳＢ（登録商標）、ＳＣＳＩ、ＦＩＲＥＷＩＲＥ（登録商標）、及び／又は、同軸ケーブルポートのような従来のデータポートを備えていてもよい。
【００１７】
ネットワーク１４０は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、又はインターネットを含み得る。プリンタ１７０は、接続部１２０を介してネットワーク１４０に接続されていてもよい。例示的プリンタ１７０はまた、コンピュータデバイス１１０及び／又はサーバ１３０に直接接続されていてもよい。システム１００はまた、その他の周辺機器（不図示）を備えていてもよい。印刷データストリームから派生したオブジェクトのキャッシュメンバーシップを決定するアプリケーションは、図１に示すように、例示的コンピュータ又はプリンタのうち１以上に配置されてもよい。例えば、コンピュータデバイス１１０は、サーバ１３０から直接ダウンロードされ得るソフトウェアを実行することができ、上記アプリケーションの各部もまた例示的プリンタ１７０によって実行されてもよい。
【００１８】
図２は、接続部１２０を介してコンピュータデバイス１１０に接続された例示的プリンタ１７０の高水準ブロック図を示す。例示的プリンタ１７０は、ＣＰＵ１７６、ファームウェア１７１、メモリ１７２、入出力（Ｉ／Ｏ）ポート１７５、プリントエンジン１７７及び二次記憶装置１７３を接続するバス１７４を備えている。例示的プリンタ１７０はまた、文書を印刷又は処理するためのアプリケーションの各部を実行し得る特定用途向け集積回路（ＡＳＩＣｓ）及び／又はフィールドプログラマブルゲートアレイ（ＦＰＧＡｓ）を含んでいてもよい。例示的プリンタ１７０はまた、Ｉ／Ｏポート１７５及び接続部１２０を用いてコンピュータデバイス１１０内の二次記憶装置又はその他のメモリにアクセス可能であってもよい。プリンタ１７０は、Ｉ／Ｏポート１７５及び接続部１２０を用いて印刷データストリームを受信してもよい。画像オブジェクト、テキストオブジェクト、図形オブジェクト、フォントオブジェクト、ベクターメタデータオブジェクト、及び／又はその他のオブジェクトを含む種々のオブジェクトは、上記印刷データストリームから派生し、プリンタメモリ内に記憶され、そして、文書印刷処理の過程における種々のポイントにおいて再利用されてもよい。
【００１９】
いくつかの実施形態において、プリンタ１７０はまた、画像抽出処理ソフトウェア、データ圧縮解凍、プリンタＯＳ（printer operating system）及びその他の適切なアプリケーションソフトウェアを含むソフトウェアを実行可能であってもよい。いくつかの実施形態において、上記ＯＳは、開示した実施形態に合致する方法でメモリ管理を行うルーチンを含んでいてもよく、又は該ルーチンを呼び出し可能であってもよい。
【００２０】
例示的ＣＰＵ１７６は、汎用プロセッサ、専用プロセッサ、又は組み込みプロセッサであってもよい。ＣＰＵ１７６は、メモリ１７２及び／又はファームウェア１７１との間で、制御情報と命令とを含むデータをやり取りすることができる。メモリ１７２は、限定はしないが、ＳＤＲＡＭ又はＲＤＲＡＭのような、如何なるタイプのダイナミックＲＡＭ（ＤＲＡＭ）であってもよい。メモリ１７２は、最新の及び／又は頻繁にアクセスされるオブジェクトを記憶できるキャッシュメモリを含んでいてもよい。いくつかの実施形態において、キャッシュメモリは、記憶されているオブジェクトへのより高速なアクセスを可能とする独立した高速メモリとして実装されていてもよい。いくつかの実施形態において、キャッシュメモリは、プリンタ１７０におけるメモリ階層の一部を構成していてもよい。しかし、キャッシュメモリは一般に高価であるため、メモリ１７２のごく一部を構成するのみであってもよい。従って、プリンタ１７２におけるメモリ管理ルーチンは、プリンタ１７０によって受信された印刷データストリームから派生したオブジェクトのキャッシュメンバーシップを決定するためのキャッシュ最適化技術を含んでいてもよい。
【００２１】
ファームウェア１７１は、限定はしないが、ブートアップシーケンスと、メモリ管理、ブレンド、合成、画像処理、トラッピング、文書処理その他のコード用のルーチンを含む予め設定されたルーチンと、を含む命令及びデータを保持していてもよい。いくつかの実施形態において、ファームウェア１７１内のコード及びデータは、ＣＰＵ１７６によって実行される前にメモリ１７２内にコピーされてもよい。ファームウェア１７１内のルーチンはまた、コンピュータデバイス１１０から受信したページ記述をディスプレイリストに変換するコードを含んでいてもよい。いくつかの実施形態において、ファームウェア１７１は、ディスプレイリスト内の表示コマンドを適切なラスタライズ済ビットマップに変換するとともに、該ビットマップをメモリ１７２内に記憶させるラスタライズルーチンを含んでいてもよい。ファームウェア１７１はまた、圧縮及び記憶管理ルーチンを含んでいてもよい。ファームウェア１７１内のデータ及び命令は、コンピュータ１１０、サーバ１３０、ネットワーク１４０、プリンタ１７０に接続されたリムーバブルメディア、及び／又は、二次記憶装置１７３のうち一以上を用いてアップグレード可能であってもよい。
【００２２】
例示的ＣＰＵ１７６は、命令及びデータに基づいて動作し、ＡＳＩＣｓ／ＦＰＧＡｓ１７８及びプリントエンジン１７７に制御及びデータを提供して印刷文書を生成し得る。ＡＳＩＣｓ／ＦＰＧＡｓ１７８もまた、プリントエンジン１７７に制御及びデータを提供し得る。ＡＳＩＣｓ／ＦＰＧＡｓ１７８はまた、翻訳、圧縮、解凍、合成及びラスタライズの各アルゴリズムのうち一以上を実行し得る。
【００２３】
例示的コンピュータデバイス１１０は、文書データを第一印刷可能データに変換し得る。いくつかの実施形態において、上記第一印刷可能データは、文書のＰＤＬ記述に対応し得る。そして、上記第一印刷可能データは、プリンタ１７０に送信されて中間印刷可能データに変換され得る。いくつかの実施形態において、文書のＰＤＬ記述から、一連の低級プリンタ固有コマンドを有する最終印刷可能データへの変換処理は、オブジェクトのディスプレイリストを有する上記中間印刷可能データの生成を含み得る。ディスプレイリストは種々のオブジェクトを保持していてもよく、ディスプレイリスト内における一種以上のデータオブジェクトはユーザドキュメント内のオブジェクトに対応し得る。
【００２４】
上記最終印刷可能データの生成を支援し得るディスプレイリストは、メモリ１７２又は二次記憶装置１７３内に記憶され得る。例示的な二次記憶装置１７３は、内蔵型の又は外付けのハードディスク、メモリスティック、その他の、システム２００で用いられ得るどのような記憶貯蔵装置であってもよい。いくつかの実施形態において、上記ディスプレイリストは、文書処理がどこで発生するかに応じて、プリンタ１７０、コンピュータデバイス１１０及びサーバ１３０のうちの何れに存在していてもよいし、これらのうち一以上の間において転送されてもよい。
【００２５】
ディスプレイリストを記憶するためのメモリは、専用メモリであってもよいし、汎用メモリ１７２の一部であってもよいし、これらの組み合わせであってもよい。いくつかの実施形態において、キャッシュメモリを含み得るメモリ１７２は、必要に応じて動的に割り当て、管理及び解放されてもよい。プリンタ１７０は、中間印刷可能データを印刷可能データの最終形態に変換してもよく、当該最終形態に従って印刷してもよい。
【００２６】
図３は、例示的オブジェクトｉに対するメモリ管理用の例示的アルゴリズム３００における各工程を示したフローチャートである。いくつかの実施形態において、オブジェクトｉは、プリンタ１７０によって受信された印刷データストリームを処理することにより派生し得る。いくつかの実施形態において、オブジェクトｉ用に描画された方法が、適切な改良を加えることにより上記印刷データストリームにおける他のオブジェクトにも適用され得ることは、当業者に明らかであろう。オブジェクトは、上記印刷処理の間に遭遇し得るテキストオブジェクト、図形オブジェクト、画像オブジェクト、フォントオブジェクト、ベクターメタデータオブジェクトその他のオブジェクトを含んでいてもよい。いくつかの実施形態において、アルゴリズム３００は、プリンタオペレーティングシステムの一部であり得るプリンタ１７０のメモリ管理ルーチンによって起動されてもよい。いくつかの実施形態において、アルゴリズム３００は、本実施形態に合致する改良型の参照カウント法を採用し得る。いくつかの実施形態において、各オブジェクトには個別の参照カウントが関連付けられ得る。いくつかの実施形態において、参照カウントと該参照カウントをインクリメント及びデクリメントする方法とは、オブジェクトの一部であってもよい。いくつかの実施形態において、個別の参照カウントが生成されて各オブジェクトと関連付けられてもよい。
【００２７】
いくつかの実施形態において、アルゴリズム３００は、ステップ３１０において開始され、ステップ３１１においてキャッシュメモリ内のオブジェクトｉに対する参照をチェックする。オブジェクトｉへの参照が行われた場合（ステップ３１１；Ｙｅｓ）、ステップ３１２においてオブジェクトｉへの参照処理が行われ得る。オブジェクトｉへの参照が行われない場合（ステップ３１１；Ｎｏ）、アルゴリズムは最初の重み付けを設定し、ステップ３５０に進む。
【００２８】
ステップ３１５において、参照されたオブジェクトｉは、当該オブジェクトが既にキャッシュ内に存在するか否かを確かめるためにチェックされ得る。オブジェクトｉがキャッシュ内に存在しない場合（ステップ３１５；Ｎｏ）、ステップ３２０において、オブジェクトｉと関連付けられた参照カウントR-iが値R-i0に初期化され得る。例示的オブジェクトｉは、初めてキャッシュされたオブジェクト、又は、以前にキャッシュから削除されて再導入されたオブジェクトであってもよい。
【００２９】
キャッシュ内でオブジェクトｉが検出された場合（ステップ３１５；Ｙｅｓ）はオブジェクトが再利用されていることを意味し、この場合、アルゴリズムはステップ３４０に進み得る。ステップ３４０において、オブジェクトｉに関連付けられた参照カウントR-iは重みW-i1だけインクリメントされ得る。重みW-i1は、キャッシュ内のオブジェクトを保持することを支援するバイアスとして見なされ得る。いくつかの実施形態において、重みWi-1は、単一のオブジェクトと関連付けられ得る。いくつかの実施形態において、重みW-i1は、オブジェクトのクラスと関連付けられ得る。例えば、一の重みが全てのテキストオブジェクトに割り当てられ、他の重みが図形オブジェクトに、三番目の重みが画像オブジェクトに割り当てられ得る。いくつかの実施形態において、重みWi-1は、全てのオブジェクトに共通であってもよい。いくつかの実施形態において、オブジェクトは、個々の絶対的なサイズ、又は、プリンタ１７０上でのキャッシュサイズに関連した個々のサイズに基づいて分類されてもよい。
【００３０】
次に、ステップ３５０において、アルゴリズムはページ終了の事象をチェックする。ページ終了の事象が発生した場合（ステップ３５０；Ｙｅｓ）、参照カウントR-iは、重みW-i2だけデクリメントされ得る。重みW-i2は、キャッシュからオブジェクトを削除することを支援するバイアスとして見なされ得る。いくつかの実施形態において、重みWi-2は、単一のオブジェクトと関連付けられ得る。いくつかの実施形態において、重みW-i2は、オブジェクトのクラスと関連付けられ得る。例えば、一の重みが、ある所定のサイズを超えるオブジェクトに割り当てられ得る。いくつかの実施形態において、重みWi-2は、全てのオブジェクトに共通であってもよい。重みWi-1及びWi-2は、プリンタ１７０の構成、オブジェクトの分類、システムパラメータ、及び／又は、プリンタ１７０によって処理されている印刷ジョブに用いられる上記ＰＤＬ内の命令に基づいて、それぞれ異なる値に設定されてもよい。ページ終了の事象が発生しない場合（ステップ３５０；Ｎｏ）、アルゴリズムは、オブジェクトｉへの次の参照処理を待つステップ３１２に戻る。
【００３１】
ステップ３７０において、オブジェクトｉへの参照カウントR-iの現在の値が閾値T-iと比較される。いくつかの実施形態において、T-iの値は、（R-i0−W-i2）未満に制限され得る。R-i ? T-iの場合（ステップ３７０；Ｙｅｓ）、オブジェクトｉがキャッシュ内に保持され、アルゴリズムはステップ３１２に戻る。R-i ＜ T-iの場合、オブジェクトｉはステップ３８０においてキャッシュから削除され得る。いくつかの実施形態において、閾値T-iは、単一のオブジェクトと関連付けられ得る。いくつかの実施形態において、閾値T-iは、オブジェクトのクラスと関連付けられ得る。いくつかの実施形態において、閾値T-iは、全てのオブジェクトに共通であってもよい。いくつかの実施形態において、オブジェクトｉに対する参照カウントR-i0の初期値は、少なくとも１ページにつきオブジェクトｉが確実にキャッシュされるようにするために、W-i2とT-iとの和以上に設定されてもよい。
【００３２】
一実施形態において、オブジェクトは、重み（W-i1及び／又はW-i2）がオブジェクトサイズに基づいて割り当てられ得るように、該オブジェクトのサイズに基づいて分類されてもよい。例えば、より多くのキャッシュスペースを占める大きなオブジェクトは、除去される可能性を増大させる重みが割り当てられ得る。一実施形態において、（W-i1−W-i2）の差は低減されてもよく、これとともに／或いは、キャッシュサイズに対するオブジェクトサイズの所定のサイズと所定の割合とのいずれか一方を超えるオブジェクトに対して、より高い閾値T-iが設定されてもよい。いくつかの実施形態において、W-i1の値はW-i2以上の値に設定されてもよい。イラストレーションのように、オブジェクトの記憶に有利に働くシステムにおいて、例えば、W-i1 ＞ W-i2のように、W-i1が高い値に設定され、W-i2が低い値に設定されてもよい。また、閾値T-iは、０（ゼロ）さらには負の値のような、低い値に設定されてもよい。重みWi-1、Wi-2及び閾値T-iは、単純な加減算を用いて説明したが、その他種々の複雑な数学関数がまた、適切な改良において用いられ得る。
【００３３】
例えば、R-i0の初期値は８に設定されてもよく、重みWi-1及びW-i-2は、それぞれ１０、３に設定されてもよく、また、閾値T-iは４に設定されてもよい。上記の例において、オブジェクトに対する中間参照が全く無い場合、オブジェクトは、キャッシュ内への当該オブジェクトの導入に続く２度のページ終了事象の後にキャッシュから削除され得る。１ページ目の最後において、R-iの値は、R-i0−W-i2＝１０−３＝７となり、４（閾値T-iの値）以上である。従って、オブジェクトｉはキャッシュ内に留まる。２ページ目の最後において（オブジェクトｉへの参照は無かったと仮定する）、R-iの新たな値はR-i−W-i2＝７−３＝４となり、T-i以上であるから、オブジェクトｉはキャッシュ内に留まる。しかしながら、３ページ目の最後において（オブジェクトｉへの参照は無かったと仮定する）、R-iの新たな値はR-i−W-i2＝４−３＝１となり、T-i未満であるから、オブジェクトｉはキャッシュから削除される。オブジェクトに対する参照が行われる度に、R-iの現在の値にWi-1が毎回加算されることにより、該オブジェクトが記憶される可能性が増大する。
【００３４】
概して、重みWi-1、Wi-2及び閾値T-iは、オブジェクトの絶対的なサイズ、キャッシュサイズに対するオブジェクトのサイズ、印刷ジョブの機能、キャッシュサイズ、プリンタ速度、等を含むシステムパラメータに基づいて調整され得る。例えば、プリンタ１７０が比較的小さなキャッシュを有する場合、上記重み及び閾値は、オブジェクトの迅速な削除を支援するように調整され得る。
【００３５】
説明の単純化及び容易化のため、例示的オブジェクトｉに関するアルゴリズム３００について説明したが、参照された各オブジェクトは、適切に改良されたものと同様に処理され得ることは当業者に明らかであろう。いくつかの実施形態において、キャッシュがいっぱいであり、且つ、どのオブジェクトも削除対象として選択されていない場合、新たなオブジェクトの導入に先立ち、参照カウントの最も低いオブジェクトが削除対象として選択され得る。
【００３６】
いくつかの実施形態において、アルゴリズム３００に記述された処理を実行するためのプログラムは、コンピュータ読み取り可能な媒体１５０又はコンピュータ読み取り可能なメモリ内に記録され得る。これらは、限定はしないが、ＲＯＭ（Read Only Memory）、ＰＲＯＭ（Programmable Read Only Memory）、フラッシュメモリ、NVRAM（Non-Volatile Random Access Memory：不揮発性ＲＡＭ）、又は、ＳＤ（Secure Digital）メモリカード、コンパクトフラッシュ（登録商標）、スマートメディア（登録商標）、メモリスティック（登録商標）、等のようなデジタルメモリカードを含む。実施形態において、一種以上のコンピュータ読み取り可能な媒体がプリンタ１７０に接続され得る。実施形態において、開示されたシステム、方法及び構成を実行するプログラムの各部は、ネットワーク１４０を介して供給される。
【００３７】
本発明の他の実施形態は、詳細な説明を考慮することにより又はその中に開示された一以上の発明を実践することにより、当業者に明らかとなるであろう。上述した詳細な説明および実施例は、単に例としてのみ考慮されることを意図しており、発明の真の範囲及び精神は、以下の特許請求の範囲によって示される。
【図１】
2010182300.tif 000003
【図２】
2010182300.tif 000004
【図３】
2010182300.tif 000005
【外国語明細書】
2010182300000001.pdf
2010182300000002.pdf
2010182300000003.pdf
2010182300000004.pdf