JP5680841B2 - 最適なメモリアロケーションユニットのシステム及び方法 - Google Patents

最適なメモリアロケーションユニットのシステム及び方法 Download PDF

Info

Publication number
JP5680841B2
JP5680841B2 JP2009206817A JP2009206817A JP5680841B2 JP 5680841 B2 JP5680841 B2 JP 5680841B2 JP 2009206817 A JP2009206817 A JP 2009206817A JP 2009206817 A JP2009206817 A JP 2009206817A JP 5680841 B2 JP5680841 B2 JP 5680841B2
Authority
JP
Japan
Prior art keywords
memory
memory allocation
pixmap
units
size
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.)
Expired - Fee Related
Application number
JP2009206817A
Other languages
English (en)
Other versions
JP2010079893A (ja
Inventor
ユージン ベラート ダレル
ユージン ベラート ダレル
Original Assignee
コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド
コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド
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 コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド, コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド filed Critical コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド
Publication of JP2010079893A publication Critical patent/JP2010079893A/ja
Application granted granted Critical
Publication of JP5680841B2 publication Critical patent/JP5680841B2/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
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding

Landscapes

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

Description

本発明は印刷の分野に関し、特に、最適なメモリアロケーションユニットを決定してフレームバッファメモリのメモリ管理を容易にするシステム及び方法に関する。
文書処理ソフトウェアによってユーザは便利に文書を閲覧、編集、処理、保存、及び印刷することができる。しかし、文書が印刷可能になる前に、文書のページは多くの場合ページ記述言語(「PDL」)によって記述される。この文書でも用いられているが、PDLにはPostScript、AdobePDF、HPPCL、MicrosoftXPS及びこれらの変形例等の、文書のページを記述するのに用いられる言語が含まれる。PDL記述により文書の各ページの高水準の記述が提供され、多くの場合文書が印刷される際に一連のより低水準のプリンタ特有のコマンドに翻訳される。この処理はラスタライゼーションと称される。ラスタライゼーション処理は複雑でそのプリンタがもつ特徴や性能に依存しうるが、柔軟で移植可能な汎用ラスタライゼーションスキームによってメモリの空き容量、所望の印刷スピード、コスト及びその他の条件に基づいたプリンタ性能の最適化を実現しうる。
従来、印刷システムのメモリは、ディスプレイリストメモリとフレームバッファメモリとからなる二つの別個のプールによって構成されてきた。ディスプレイリストメモリは通常ラスタライゼーション用のディスプレイリストブジェクトを保持し、フレームバッファメモリは通常印刷されたページに示されるマークを示す画像データを保持する。ビットマップはデジタル画像の格納に用いられるメモリ構成の一種で、各ピクセルには一ビットが割り当てられる(つまりピクセルは「オン」か「オフ」かのいずれかである)。ピクスマップ(又はピクセルマップ)という用語はいくつかのビット深度で存在しうるラスタ画像を指して用いる。二つのプールの異なる性質により、ディスプレイリストメモリは通常フレームバッファを目的として用いることができず、逆もまた同様である。よって、印刷の失敗は一方のプールに十分空きメモリがあったとしても他方のプールに十分なメモリがないことによって起こりうる。また、異なるルーチンを用いて二つの別個のプールを管理すると個々の製品において異なる方法や最適化が用いられうるので、ある製品群にわたってメモリを管理するのに用いられるコードの修正及び管理が難しくなりうる。
メモリ資源の最適化はメモリ全体が一つのプールとして扱われているような状況においても重要となりうる。例えば、フレームバッファのピクスマップは従来可変サイズの連続したメモリの塊を用いており、これによりメモリのフラグメンテーションが起こる。フラグメンテーションにより空きメモリが小さな使用不可能なブロックとして点在するので、小さなブロックの空きメモリを合計すると、小さなブロックが連続していればメモリ割当要求をみたすことができたにも関わらず、フラグメンテーションによっていくつかのメモリ割当要求をみたすことができなくなる。
ディスプレイリストとフレームバッファの間でメモリが共用されている場合、プリンタ動作の間、各プールが十分な空きメモリを有し、非効率的な割当により潜在的に空きメモリが失われていないことを確実にするには、メモリの最適化が重要となる。グローバルレベルでは、コスト及び/又は印刷スピード等のプリンタ設計目標が達成されるように、最適化方法によってメモリをディスプレイリストとフレームバッファメモリとの間で割り当てることを確実にしうる。加えて、ローカライズされたディスプレイリスト及びフレームバッファ特有の最適化によってより低レベルで実現可能な最適化が利用されることを確実にする。高価ではないプリンタにおいては、比較的少ないメモリを用いて、効率的なメモリ資源により設計上の機能性が達成されうる。高性能プリンタにおいては、メモリの有効利用によって、印刷アプリケーションに用いるためのより多くのリアルタイムなメモリの空き容量が確保され、性能の向上につながりうる。
よって、シームレスなアップグレードパスを提供しながら、メモリ資源の最適な利用が可能となるフレームバッファメモリを含むラスタライゼーションを行うプリンタ上のメモリを管理するシステム及び方法が必要である。
本発明による実施例には、最適なメモリアロケーションユニットサイズを選択してフレームバッファメモリの管理を容易にするシステム及び方法が提供される。いくつかの実施例においては、フレームバッファメモリ及びディスプレイリストメモリを含むメモリプールを備え、ディスプレイリスト及びピクスマップに対するメモリ割当を、基準メモリアロケーションユニットの単位、または整数倍の基準メモリアロケーションユニットからなるメモリアロケーションユニットの単位で行う装置において、ピクスマップのメモリ割当要求に応じて、当該ピクスマップに対して複数の前記メモリアロケーションユニットを割り当てる方法は、前記複数のメモリアロケーションユニットに、前記メモリ割当要求されたピクスマップが格納されるときの未使用メモリの容量を決定するステップと、前記未使用メモリの容量に基づいて、前記メモリ割当要求されたピクスマップに割り当てる前記複数のメモリアロケーションユニットについて、メモリ割当の単位に対応する前記整数倍の値を選択するステップと、を含む。
また、開示されている本発明の実施例は、コンピュータ読取可能なメディア又はコンピュータ読取可能なメモリを用いるプロセッサによって作成、格納、アクセス、又は修正される方法に関する。
これら及びその他の実施例について添付の図面を参照しながら詳細に説明する。
図1は、文書を印刷するシステムの構成要素を示すブロック図を図示している。 図2は、例示的なプリンタの上位ブロック図を図示している。 図3は、フレームバッファ管理のシステムの例示的な上位アーキテクチャを図示示している。 図4は、ラスタライゼーションの間のメモリプール310の一部の例示的な割り当てを示すスナップショット400を図示している。 図5は、ピクスマップオブジェクト510の例示的なデータ構造を示すブロック図500を図示している。 図6は、Z個のスーパーブロック420−1〜420−Zにわたって分布されるスキャンライン610を含むピクスマップPの例示的なメモリ構成600を図示している。 図7は、スーパーブロック420の最適なサイズを選択してピクスマップのメモリ利用を最適化する例示的な方法を示すフローチャート700を図示している。 図8は、特定のスーパーブロックサイズの利用されていない空間を算出する例示的ルーチン740を示すフローチャートを図示している。
本発明の様々な特徴を示す実施例に基づいて、第一印刷可能データから生成された第二又は中間形式の印刷可能データを自動的に格納、操作、及び処理するシステム及び方法が提示される。いくつかの実施例においては、第一印刷可能データは文書のPDL記述の形式を取り、中間印刷可能データはPDL記述から生成されたオブジェクトのディスプレイリストの形式を取りうる。
図1は文書を印刷するシステムの構成要素を示すブロック図を図示している。開示された実施例に基づくコンピュータソフトウェアアプリケーションは、図1に示すように、従来の通信プロトコル及び/又はデータポートインターフェースを用いた情報交換を実現する通信リンクを通じて接続されたコンピュータネットワークにおいて配備されうる。
図1に示すように、例示的システム100はコンピューティングデバイス110及びサーバ130を有するコンピュータを含む。また、コンピューティングデバイス110とサーバ130は、ある実施例においてはインターネットでありうるネットワーク140を経由して接続部120を通じて通信しうる。コンピューティングデバイス110はコンピュータワークステーション、デスクトップパソコン、ノートパソコン、又はその他のネットワーク化された環境で用いることができるあらゆるコンピューティングデバイスでありうる。サーバ130はコンピューティングデバイス110及びその他の装置(図示せず)に接続することができるプラットフォームであることができる。コンピューティングデバイス110及びサーバ130はプリンタ170を用いて文書の印刷を実現するソフトウェア(図示せず)を実行することができる。
例示的プリンタ170は電子データから物理的な文書を作成する装置を含み、レーザプリンタ、インクジェットプリンタ、LEDプリンタ、プロッタ、ファクシミリ機、及びデジタルコピー機を含むが、これらに限定されない。いくつかの実施例においては、プリンタ170は接続部120を介してコンピューティング装置110又はサーバ130から受信した文書を直接印刷することができる。いくつかの実施例においては、このような構成によってコンピューティングデバイス110又はサーバ130による処理を加えた上で(又は加えずに)直接文書を印刷しうる。いくつかの実施例においては、文書はテキスト、グラフィックス、及び画像のうちの一以上を含みうる。いくつかの実施例においては、プリンタ170は印刷される文書のPDL記述を受信しうる。また、文書印刷処理もまた割り当てることができる。よって、コンピューティングデバイス110、サーバ130、及び/又はプリンタは、文書がプリンタ170によって物理的に印刷される前に、網掛け、色合わせ及び/又はその他の操作処理等の文書印刷処理を部分的に実行しうる。
コンピューティングデバイス110は、また、リムーバブルメディアドライブ150を含む。リムーバブルメディアドライブ150は例えば、3.5インチフロッピードライブ、CD−ROMドライブ、DVDROMドライブ、CD±RWもしくはDVD±RWドライブ、USBフラッシュドライブ及び/又は開示される実施例に適合するその他のあらゆるリムーバブルメディアドライブを含みうる。いくつかの実施例においては、ソフトウェアアプリケーションの各部分がリムーバブルメディアに搭載され、リムーバブルメディアドライブ150を用いてコンピューティングデバイス110によって読み出されて実行される。
接続部120はコンピューティングデバイス110、サーバ130及びプリンタ170を接続し、従来の通信プロトコル及び/又はデータポートインターフェースを用いて有線又は無線接続として構築しうる。一般に、接続部120は装置間のデータの送受信を実現するあらゆる通信チャンネルであることができる。ある実施例においては、適切な接続を通じたデータの送受信のために、装置に例えば、パラレルポート、シリアルポート、Ethernet、USB、SCSI、FIREWIRE、及び/又は同軸ケーブルポート等の従来のデータポートを設けることができる。いくつかの実施例においては、接続部120はデジタル加入者回線(DSL)、非対称型デジタル加入者回線(ADSL)、又はケーブル回線であることができる。接続リンクは無線リンク、有線リンク又は様々な装置間の通信を可能にする、開示される実施例に適合するあらゆる組合せであることができる。
ネットワーク140はLocal Area Network(LAN)、Wide Area Network(WAN)、又はインターネットを含みうる。いくつかの実施例においては、ネットワーク140上で送信された情報は暗号化することによって、送信されるデータのセキュリティを確保しうる。プリンタ170は接続部120を通じてネットワーク140に接続されうる。いくつかの実施例においては、プリンタ170はまた直接コンピューティングデバイス110及び/又はサーバ130に接続されうる。いくつかの実施例においては、システム100はまた、その他の周辺機器(図示せず)を含みうる。開示される実施例に適合するコンピュータソフトウェアアプリケーションは図1に示すように、あらゆる典型的なコンピュータに搭載しうる。例えば、コンピューティングデバイス110はサーバ130から直接ダウンロードしうるソフトウェアを実行することができる。開示される実施例に基づいて、アプリケーションの各部分はプリンタ170によっても実行しうる。
図2は例示的なプリンタ170の上位ブロック図を示す。いくつかの実施例においては、プリンタ170はCPU176、ファームウェア171、メモリ172、入出力ポート175、プリントエンジン177及び二次記憶装置173を接続するバス174を含みうる。また、プリンタ170は開示される実施例に基づく文書印刷のためのアプリケーションの各部分を実行することができるその他のApplication Specific Integrated Circuits(ASIC)、及び/又はField Programmable Gate Arrays(FPGA)178を有しうる。いくつかの実施例においては、プリンタ170はまたI/Oポート175及び接続部120を用いて二次記憶装置又はコンピューティングデバイス110のその他のメモリにアクセスすることができる。また、いくつかの実施例においては、プリンタ170はプリンタオペレーティングシステム及びその他の適切なアプリケーションソフトウェアを含むソフトウェアを実行することができる。いくつかの実施例においては、プリンタ170においてその他のオプション中、用紙サイズ、排紙トレイ、色選択及び印刷解像度はユーザが設定することができる。
いくつかの実施例においては、CPU176は汎用プロセッサ、専用プロセッサ又は組み込みプロセッサでありうる。CPU176は制御情報及び命令を含むデータをメモリ172及び/又はファームウェア171と交換することができる。メモリ172はあらゆる種類のDynamic Random Access Memory(「DRAM」)であることができ、例えばSDRAM又はRDRAMが含まれるがこれらに限定されない。ファームウェア171は命令及びデータを保持することができ、起動シーケンス、予め定義されたルーチン、メモリ管理ルーチン及びその他のコードを含むがこれらに限定されない。いくつかの実施例においては、ファームウェア171のコード及びデータはCPU176によって実行される前に、メモリ172にコピーしうる。ファームウェア171に含まれるルーチンはコンピューティングデバイス110から受信されたページ記述をディスプレイリスト及び画像バンドに翻訳するコードを含みうる。いくつかの実施例においては、ファームウェア171は、ディスプレイリストを適切なピクスマップにラスタライズし、メモリ172にピクスマップを格納するルーチンを含みうる。ファームウェア171はまた圧縮ルーチンやメモリ管理ルーチンを含みうる。いくつかの実施例においては、ファームウェア171に含まれるデータ及び命令はアップグレードしうる。
いくつかの実施例においては、CPU176は命令及びデータに従って各ASIC/FPGA178及びプリントエンジン177を制御し及びデータを提供して印刷文書を生成しうる。また、いくつかの実施例においては、各ASIC/FPGA178はプリントエンジン177を制御し及びデータを提供しうる。また、各FPGA/ASIC178は翻訳、圧縮及びラスタライゼーションアルゴリズムのうちの一以上を実行しうる。いくつかの実施例においては、コンピューティングデバイス110は文書データを第一印刷可能データに変換しうる。そして、第一印刷可能データはプリンタ170へ送信されて、中間印刷可能データに変換されうる。プリンタ170は中間印刷可能データを最終的な形式の印刷可能データに変換して、ピクスマップ形式を取りうるこのような最終的な形式に基づいて印刷しうる。いくつかの実施例においては、第一印刷可能データは文書のPDL記述に対応しうる。いくつかの実施例においては、文書のPDL記述から一連のより低水準のプリンタ固有のコマンドを含む最終的な印刷可能データへの翻訳処理には、オブジェクトのディスプレイリストを含む中間印刷可能データの生成を含みうる。
いくつかの実施例においては、ディスプレイリストは、テキスト、グラフィックス、及び画像データオブジェクトのうちの一以上を保持しうる。いくつかの実施例においては、ディスプレイリスト内のオブジェクトはユーザ文書内の類似するオブジェクトに対応しうる。いくつかの実施例においては、ディスプレイリストは中間又は最終印刷可能データの生成を支援しうる。いくつかの実施例においては、ディスプレイリスト及び/又はピクスマップは、メモリ172又は二次記憶装置173に格納されうる。二次記憶装置173の一例としては、内蔵もしくは外付けハードディスク、メモリスティック又はプリンタ170で用いることができるその他のあらゆるメモリ記憶装置でありうる。いくつかの実施例においては、ディスプレイリストはプリンタ170、コンピューティングデバイス110、及びサーバ130のうちの一以上の装置に搭載されうる。ディスプレイリスト及び/又はピクスマップを格納するメモリは、専用メモリでありもしくは汎用メモリの一部を形成し、又はいくつかの実施例においてはこれらの何らかの組合せを含みうる。いくつかの実施例においては、メモリは動的に割り当てられ、必要に応じてディスプレイリスト及び/又はピクスマップを保持しうる。いくつかの実施例においては、ディスプレイリスト及び/又はピクスマップを格納するのに割り当てられたメモリは処理後に動的に解放されうる。
図3はフレームバッファ管理のシステムの上位アーキテクチャ300の一例を図示する。開示される実施例によれば、アーキテクチャ300によってメモリプール310はフレームバッファ350及びフレームバッファではないブロックの両方に対応するブロックを含む単独のメモリプールとして管理される。通常、ブロックはメモリ管理部375の基準メモリアロケーションユニットとみなすことができる。いくつかの実施例においては、メモリは、基準メモリアロケーションユニットつまり一個のブロック又は基準メモリアロケーションユニットの或る(非ゼロ、正)整数倍でスーパーブロックと称されるものを用いて割り当てうる。
一方、メモリ管理部375は、ブロック単位のメモリ割当によってフラグメンテーションが起こることを防止し、メモリ管理に関する実施詳細を捨象し、メモリ管理アプリケーションプログラミングインターフェース(API)370を通じた標準インターフェースを提供し、そのルーチンにアクセスする。他方、ピクスマップコード345によって、ピクスマップは一体型のユニットとして論理的にみなされるとともに、メモリ管理API370及びフレームバッファ管理ライブラリ335を通じてメモリ管理部375が提供する機能を利用することにより、ピクスマップはメモリプール310の連続しないメモリブロックを占有することができる。
図3に示されるように、言語サーバ340、エンジンサーバ360、及びラスタサーバ320は相互に通信しうる。また、言語サーバ340、エンジンサーバ360、及びラスタサーバ320はルーチンを実行してRDLライブラリ330と通信しうる。また、システムはフレームバッファ管理ライブラリ335を含み、フレームバッファ管理ライブラリ335は、ピクスマップコード345と通信し、並びにメモリ管理API370を通じてラスタサーバ320及びエンジンサーバ360と通信する。
メモリ管理部375はメモリを割り当て、管理する。メモリ管理部375のルーチンはメモリ管理API370を用いてアクセスしうる。よって、メモリ管理コードの詳細はディスプレイリスト又はフレームバッファを管理及び/又は操作するのに用いられるプログラムコードから捨象することができる。同様に、いくつかの実施例においては、ピクスマップコード345によってピクスマップを単独の論理的構成要素として利用及び操作するとともに、ピクスマップは一以上の連続しないメモリブロックに広がりうる。この抽象化はフレームバッファ管理ライブラリ335を用いてピクスマップのブロック及びポインタの割当及び割当解除、ピクスマップに関する状態情報並びにピクスマップを用いる処理の追跡を管理することによって達成することができる。いくつかの実施例においては、ピクスマップコード345によってピクスマップのメモリブロックにアクセスしうる。各メモリブロック又はメモリアロケーションユニットは一まとまりの連続するメモリである。メモリブロックは一以上のスキャンラインを有しうる。画像内のピクセルの一列をスキャンラインという。
いくつかの実施例においては、フレームバッファ管理ライブラリ335はブロック単位でメモリを割り当てうる。ある実施例においては、ブロックは同じ大きさでありうる。他の実施例においては、メモリは一ブロック単位又はスーパーブロックと称される一以上のブロックの整数倍の単位で割り当てうる。スーパーブロックとは連続するブロックの一セットである。例えば、フレームバッファ管理ライブラリ335はメモリをブロック単位及びスーパーブロック単位で割り当て、スーパーブロックは四つのブロックから構成されうる。スーパーブロックはより大きなピクスマップを保持するのに有用であり、異なる紙サイズ、解像度、及び構成のサポートを容易にする。紙サイズ及びその他のパラメータが分かる特定の製品については、ブロックサイズは無駄なメモリを減らすような最適な数字に変更することができる。
いくつかの実施例においては、メモリ管理部375によって提供される機能はメモリ管理アプリケーションAPI370を通じて用いられうる。例えば、フレームバッファ管理ライブラリ335は、メモリ管理API370に指定されたインターフェースを用いて、メモリ管理部375によってブロック及びポインタを取得しうる。メモリ管理部375はメモリ管理API370の機能を定義する。いくつかの実施例においては、フレームバッファ管理ライブラリ335のコード等、ディスプレイリスト及びフレームバッファ350に関するコードはメモリ管理API370を通じてメモリ管理部375とインターフェースで接続されうる。よって、これらの実施例においては、メモリ管理部はディスプレイリスト又はフレームバッファを管理及び/又は操作するのに用いられるプログラムコードを変更せずに製品固有のメモリ管理部と交換又は容易に修正することができる。
いくつかの実施例においては、ディスプレイリストは、文書又は印刷される文書内のページのデータオブジェクトとそれらのコンテクストを定義するコマンドを含みうる。これらの表示コマンドは文字又はテキスト、線画又は配列、及び画像又はラスタデータによって構成されるデータを含みうる。
いくつかの実施例においては、ディスプレイリストは動的に再構成可能であり、再構成可能なディスプレイリストと称される(「RDL」)。ある実施例においては、RDLは動的に操作される状態で特定のディスプレイリストオブジェクトが格納されるデータ構造を用いて実装されうる。例えば、画像オブジェクトは所定の位置に圧縮されてメモリの空き容量が増加し、参照及び/又は使用される際には解凍しうる。いくつかの実施例においては、RDLによればRDLオブジェクトの実際の位置にポインタ、オフセット又はアドレスを保持してRDLオブジェクトがメモリ及び/又は二次記憶装置に格納され、その後参照及び/又は使用される際に読み出されうる。一般に、RDLによってディスプレイリストオブジェクトはシステム上の制約及びパラメータに基づいて、柔軟に格納及び操作しうる。
ある実施例においては、文書のPDL記述からディスプレイリスト及び/又はRDL表現への翻訳はRDLライブラリ330及びメモリ管理部375のルーチンを用いて言語サーバ340によって実行しうる。例えば、言語サーバ340はPDL言語プリミティブを用いてこれらをデータ及びグラフィカルオブジェクトに変換して、これらをRDLライブラリ330及びメモリ管理部375の作用によって提供される機能を用いて再構成可能なディスプレイリストに加えうる。ある実施例においては、ディスプレイリストはメモリ172の一部を構成しうる例示的なメモリプール310等の動的に割り当てられたメモリプールに格納し及び操作しうる。
いくつかの実施例においては、RDLは実際の印刷の前に行われるデータ処理の中間過程において生成されうる。RDLは次の形式に変換される前に解析されうる。いくつかの実施例においては、次の形式は最終的な表現となることがあり、変換処理はデータのラスタライズと称されうる。例えば、ラスタライゼーションは、フレームバッファ管理ライブラリ335及びピクスマップコード345のルーチンを用いて、ラスタサーバ320により実行しうる。ラスタライゼーションの際にラスタライズされたデータは、メモリ管理API370を通じてアクセスしうるメモリ管理部375のルーチンを用いて、メモリプール310の一部でありうるフレームバッファ350に格納しうる。ある実施例においては、ラスタライズされたデータは印刷されたページ上に生成されるマークを示すビットマップ又はピクスマップの形式を取りうる。
ある実施例においては、メモリ管理部375のルーチンはメモリ172の空きメモリのいくつかのサブセットをメモリプール310として管理し、メモリプール310からのメモリを、メモリ管理API370を通じて要求処理に割り当てうる。メモリが要求処理で必要とされなくなると、メモリは割当解除され、メモリプール310に戻され、他の処理に利用することができる。よって、例示的なメモリ管理部375はメモリ解放のルーチン、メモリ回復のルーチン、及び二次記憶装置173とメモリを交換することができる交換ルーチンを含むその他の各種メモリ管理機能を提供することができる。
いくつかの実施例においては、フレームバッファ350はメモリプール310の一部を構成し、メモリ管理部375によって管理されうる。例えば、フレームバッファ管理ライブラリ335の機能を呼び出す結果、メモリ管理API370の機能を呼び出しうる。次に、メモリ管理APIはメモリ管理部375の機能のうち一以上の機能を実行しうる。メモリ管理部375によって実行される動作の結果は呼び出し処理に戻されうる。ある実施例において、フレームバッファ350は最初の連続するブロックのメモリが割り当てられ、続くメモリブロックは要求されればフレームバッファ350に割り当てられうる。メモリブロックはその他のフレームバッファ以外の目的でメモリプール310から割り当てうる。いくつかの実施例においては、フレームバッファ350又はその他の処理に割り当てられた個々のメモリブロックはメモリ172の連続しないメモリ領域を占有しうる。
プリントエンジン177はフレームバッファ350でラスタライズされたデータを処理し、フレームバッファライブラリ335のルーチンを用いる紙等の印刷媒体にページの印刷可能な画像を形成しうる。いくつかの実施例においては、ラスタサーバ320及びエンジンサーバ360はRDLライブラリ330及びピクスマップコード345のルーチンを用いてその機能を実行しうる。例えば、ピクスマップコード345のルーチンによってラスタサーバ320はラスタライゼーションを支援するピクスマップルーチンにアクセスしうる。ある実施例においては、ピクスマップコード345のルーチンによって、エンジンサーバ360を通じてプリントエンジン177は一以上の色平面要素を含む最終的なピクスマップ及びアルファ平面要素を利用しうる。
いくつかの実施例において、エンジンサーバ360は制御情報、命令及びデータをプリントエンジン177に提供しうる。いくつかの実施例においては、エンジンサーバ360は、ピクスマップコード345、フレームバッファライブラリ335、メモリ管理API370を通じてメモリ管理部375により提供される機能を用いて、フレームバッファオブジェクトによって利用されたメモリを処理終了後に解放してメモリプール310へ戻すルーチンを実行しうる。ピクスマップコード345のルーチンによってエンジンサーバ360はピクスマップのスキャンラインにアクセスしうる。いくつかの実施例においては、メモリプール310及び/又はフレームバッファ350の各部分はメモリ172又は二次記憶装置173に存在しうる。
いくつかの実施例においては言語サーバ340、ラスタサーバ320、及びエンジンサーバ360のルーチンはファームウェア171によって提供され、又はASIC/FPGA178を用いて実装されうる。
図4は、ラスタライゼーションの間のメモリプール310の一部分の例示的な割当を図示するスナップショット400を示す。ラスタライゼーションの様々な時点において、メモリプール310はブロック410、スーパーブロック420及び割り当てられていないメモリ440の何らかの組合せによって構成されうる。論理的な視点からは、メモリプール310は割り当てられていないメモリ440又はフリーブロック410の集まりとして当初見られうる。図4に示すように、メモリはブロック410−1、410−2、410−3、並びにスーパーブロック420−1及び420−2によって構成されており、これらは異なるパターンによって示される、五つの別個のピクスマップA、B、C、D、及びEにそれぞれ対応しうる。
例えばピクスマップを格納するため、フレームバッファ350によるメモリ使用の要求がされると、ブロック410又はスーパーブロック420が割り当てられうる。スーパーブロック420は一以上のブロック410の整数倍を含む連続するメモリの塊である。RDLのメモリが要求される場合、又は一時的格納及び処理を目的とする場合はブロック410が割り当てられうる。図4に示すように、ピクスマップA、B、及びCは、メモリ172にわたって点在する連続しないメモリブロック410にわたって分散される。いくつかの実施例においては、メモリデフラグルーチンは一定の間隔でもしくはメモリの空き容量が一定の閾値を下回る場合、又はメモリを解放する方法として実行され、メモリプール310内でばらばらに分散したブロック410から新しいスーパーブロック420が生成される。例えば、メモリ内のオブジェクトは再配置されて、ばらばらに分散したブロックは組み合わされてより大きな連続するメモリ領域が生成される。
いくつかの実施例においては、デフラグはスーパーブロック420の利用によって減らしうる。いくつかの実施例においては、スーパーブロックアロケーションユニットのサイズはメモリ利用を最適化するために幅広い範囲にわたる。例えば、図4に示すように、ピクスマップDはスーパーブロック420−1を含むアロケーションユニットを用いており、各スーパーブロック420−1のサイズは二個のブロック分である。同様に、ピクスマップEはスーパーブロック420−2を含むアロケーションユニットを用いており、各スーパーブロック420−2のサイズは六個のブロック分である。
いくつかの実施例においては、メモリが要求された場合にスーパーブロック420を割り当てることができ、単独のブロック410が要求された場合に代わりにスーパーブロック420を割り当てうる。この場合、割り当てられたスーパーブロック420を構成するブロックのうちの一以上のブロックは当初未使用でありうる。さらに単独のブロック410が要求されると、前に割り当てられたスーパーブロックからいずれかの未使用のブロックが要求元に提供され、これが未使用のブロックがなくなるまで続き、未使用のブロックがなくなると、別のスーパーブロックが割り当てられうる。いくつかの実施例においては、フレームバッファ350を連続しないアロケーションユニットに分割することによって、メモリを効率的に利用しうる。例えば、一つのスキャンラインにアクセスすると、対象のスキャンラインを含まないピクスマップのアロケーションユニットにはメモリ管理又は回復スキームが実行されてメモリの空き容量が増加されうる。例えば、アロケーションユニットはディスクへ交換され又は圧縮されてメモリの空き容量が増加されうる。
図5はピクスマップオブジェクト510の例示的なデータ構造のいくつかの部分を図示しているブロック図500を示す。ピクスマップオブジェクト510はピクスマップコード345のルーチンによって利用及び処理されうる。いくつかの実施例においては、ピクスマップオブジェクト510は例えばピクセルにわたる画像の縦及び横の長さ並びに各ピクセルについてのビット数又は色深度等のピクスマップオブジェクト510に関する内部情報520によって特徴付けられうる。色深度は各ピクセルが表現することができる色数を決定する。内部情報520は構成する平面の数、各構成要素のビットでのサイズ、ピクスマップ要素をパッキングするのに用いられるパッキング形式などのその他のピクスマップについての情報を格納する領域を含みうる。
また、ピクスマップオブジェクト510はブロックリスト530を含み、これは特定のピクスマップに対応するブロック410又はスーパーブロック420に関する情報を保持することができる。例として示すブロックリスト530は一以上のブロックハンドルを有し、block_handle_1からblock_handle_nとして図示される。いくつかの実施例においては、各ブロックハンドルによってブロック410又はスーパーブロック420の一以上のスキャンラインにアクセスしうる。ブロックリスト530はリストのブロックへのポインタを保持するデータ領域を含みうる。例えば、各ブロックに関連付けられたデータ構造は直後及び/又は直前のブロックへのポインタを保持しうる。いくつかの実施例においては、ブロックリスト530は動的配列として実装され、これはサイズを変更することができ、要素を加えたり除いたりすることができる。
いくつかの実施例においては、ブロック410又はスーパーブロック420によって保持されるスキャンラインの数は、割り当てられたユニットのサイズ及びその他のシステムパラメータによって決定されうる。例えば、ピクスマップに対応する各ブロック410はスキャンラインSmax個によって構成されうる。しかし、ピクスマップの最後のブロック410はSmax個より少ない数のスキャンラインを保持しうる。図5に示すように、各ブロック410は5個のスキャンライン(Smax=5)個を保持する。いくつかの実施例においては、スキャンラインはさらに要素平面、アルファ要素等のうちの一以上を含む構成要素に分けられうる。例えば、カラー画像のピクセルはシアン、マゼンタ、イエロー及びブラック(「CMYK」)の要素を含みうる。
図6はZ個のスーパーブロック420−1から420−Zにわたって分布する、それぞれSバイトのメモリを有する各スキャンライン610から構成されるピクスマップPのメモリ構成600を図示している。ピクスマップPは合計M個のスキャンラインによって構成されうるので、ピクスマップP全体が格納された場合は少なくともS*Mバイトのメモリが占有されうる。ZはピクスマップPを保持するのに用いられるスーパーブロックの数である。図6に示されるように、スーパーブロック420は一以上のスキャンライン610によって構成されうる。
特定のサイズにおいて、スーパーブロック420はそれぞれSバイトのスキャンラインを最大Smax個保持することができる。スーパーブロック420のサイズはスキャンラインのサイズSの整数倍とは限らないので、各スーパーブロック420においていくらかのメモリWが未使用となりうる(ただし、最後のスーパーブロック420−Zは異なる容量のメモリが未使用となりうることから、例外となりうる)。図6はSmax個のスキャンライン610−1から610−Smaxによって構成される例示的なスーパーブロック420−1を図示している。スーパーブロック420はユニットとして割り当てられうるので、最後のスーパーブロック420−ZはSmax個より少ないスキャンラインから構成され、よってWの未使用の領域を含みうる。よって、スキャンライン610のサイズとスーパーブロック420のサイズに応じてピクスマップPはS*Mバイトよりも多くのメモリを用いうる。メモリ管理部375、フレームバッファ管理ライブラリ335、及びピクスマップコード345におけるルーチンはスーパーブロック420の割当を管理するのに用いられ、ピクスマップPのメモリ使用を最適化しうる。
図7はスーパーブロック420の最適なサイズを選択してピクスマップのメモリ使用を最適化する例示的な方法のフローチャート700を図示している。フローチャート700の方法は、N*Bがスーパーブロック420の最適なサイズを表し、Bがブロック410のサイズを表す場合に整数N(N>0)を決定するのに用いられうる。少なくともM*Sバイトのメモリを用いてM個のサイズSのスキャンライン610から構成されるピクスマップPを保持しうる。
ステップ710において、アルゴリズムによって、ピクスマップPを保持することができる最小の整数倍のブロック数Nの値を決定しうる。よって、ステップ710において、Nは以下の式で算出され、
Figure 0005680841



Nは式(1)が真となる最小の整数である。上述の数値Nは未使用領域を最小限にすることによってピクスマップPによるメモリ使用を最適化しうる。
しかし、システムパラメータによっては、スーパーブロックの最大のサイズを制限し、つまりスーパーブロック420を構成する連続するブロックNの数に上限Nmaxを設ける方が効果的な場合がありうる。よって、ステップ720において、式(1)に基づいて算出された数値NはNmaxと比較される。N≦Nmaxである場合、アルゴリズムはステップ790へ移行し、スーパーブロック420のサイズはN*Bに設定される。
式(1)に基づいて算出された数値NがNmaxを超える場合、ステップ730において、反復カウンタの数値iはNmaxに初期設定され、すでにアルゴリズムによって検討されているスーパーブロックのサイズの未使用領域の下限を記録する変数Wminの数値はN*B又はその他の十分に大きな数値に初期設定しうる。
ルーチン740において、アルゴリズムはサイズ(i*B)のスーパーブロックの未使用領域Wを計算しうる。次に、ステップ760において、WはWminの現在値と比較しうる。Wの現在値がWminのそれよりも低い場合、WminにWの数値が割り当てられ、iの現在値はiminに割り当てられうる。
次に、ステップ765において、Wの現在値はWthreshと比較することができる。Wthreshは使用可能な未使用領域の最大値に対応する閾値を保持しうる。Wthreshの数値は印刷システムによって異なり、システムパラメータに依存しうる。例えば、プリンタ170の使用可能なメモリに制限がある場合はWthreshには低い数値が設定されうる。いくつかの実施例においては、Wthreshの数値は実験によって集められた発見的データに基づきうる。いくつかの方法においては、Wthreshの初期値はプリンタ170の動作の際に集められた情報に基づいて更新されうる。例えば、Wthreshはピクスマップの未使用メモリの平均、直近五つのピクスマップの未使用メモリの平均、又は様々な統計的及び発見的方法を用いたその他の数値に設定しうる。いくつかの実施例においては、ユーザは可能な最適化のメニューを提供するユーザインタフェースを通じてWthreshの数値を指定することができる。ステップ765において、Wの数値がWthreshの数値を下回る場合には、アルゴリズムは直接ステップ785に移行し、Nにはiminの数値が割り当てられる。Wthreshの適切な数値を設定することによって、アルゴリズムはより早く収束して、最適なスーパーブロックのサイズを選択しうる。
がWthreshを超える場合、ステップ770においてiの数値はデクリメントされて、ステップ780においてiがゼロを超えるか判定しうる。iがゼロに等しい場合、アルゴリズムはステップ785へ移行し、Nにはiminの数値が割り当てられうる。ステップ780において、iが0よりも大きい場合、アルゴリズムはステップ740〜780を繰り返し適用する。
ステップ790において、スーパーブロック420のサイズはN*Bとして設定される。アルゴリズム700は様々な状況に対応しうるように変形しうることに留意されたい。例えば、メモリ管理部がブロックサイズB又は所定のスーパーブロックのサイズN*Bを用いるように構成されている場合、Wminはこれら二つの値について算出され、他のブロックのサイズについての計算は実行されなくてもよい。また、スーパーブロック420がブロックサイズの様々な整数倍で割り当てることができる場合、最後のスーパーブロック420−Zのサイズはその前のスーパーブロック420とは異なるサイズを有し、これにより無駄な領域を最小限に抑えうる。例えば、最後のスーパーブロック420−Zが一つのスキャンラインを有する場合、ブロック410が割り当てられて、これにより最後のスキャンラインが保持され、よって未使用メモリが減少する。その他の多様なスキームが当業者にとっては明らかであり、例示的なフローチャート700において図示されるアルゴリズムは適宜修正しうる。
図8は特定のスーパーブロックサイズの未使用領域を計算するための例示的なルーチン740のフローチャートを図示している。図8において、図7に説明されている構成要素を参照する際は同様の符号を用いる。アルゴリズムは各スーパーブロック420(最後を除く)の未使用領域を算出し、これに最後のスーパーブロック420−Zの未使用領域を加算することによって、ピクスマップPを保持する場合の未使用領域の合計を計算する。
ステップ742において、アルゴリズムはサイズi*Bのスーパーブロック420が保持することができるスキャンラインの最大値Smaxを計算する。Smaxは次の式を満たす最大の整数として計算しうる。
Figure 0005680841




ここでiは反復カウンタの現在値で、Bはブロックサイズで、Sは各スキャンラインのサイズである。
ステップ744において、各スーパーブロックの最後の未使用領域は以下の式によって算出される。
Figure 0005680841



「mod」とはモジュロ演算子を指し、除算の後の剰余を算出する。ステップ746において、ピクスマップP全体を保持することができるスーパーブロックZの最小数が次の式の最小の整数Zとして算出される。
Figure 0005680841



ここでMとはピクスマップPのスキャンラインの合計数をいう。
次に、ステップ748において、最後のスーパーブロック420−Zの未使用領域がスーパーブロック420−Zのサイズ(i*B)から最後のブロックのスキャンラインによって占有されるバイト数を引くことによって算出される。最後のブロックのスキャンラインによって占有されるバイト数は(Z−1)*Smax*Sによって得られる最初の(Z−1)個のブロックにおけるスキャンラインで用いられるバイト数からピクスマップP=(M*S)のサイズを引くことによって計算しうる。よって最後のブロックにおける未使用領域Wは以下により算出しうる。
Figure 0005680841


次に、ステップ749において、未使用領域Wの合計は、各個別のスーパーブロック420における未使用領域、つまり(Z−1)*Wと最後のスーパーブロック420−Lにおける未使用領域Wの合計として算出される。よって
Figure 0005680841

ルーチン740において算出された数値Wは例示的なフローチャート700において図示している方法において用いられうる。
本発明のその他の実施例は、本明細書に開示される、詳細な説明の検討及び実施により当業者にとって明らかとなるであろう。本明細書と実施例は、例示とすることのみを意図しており、本発明の真の範囲や意図は添付される請求項において示される。

Claims (16)

  1. フレームバッファメモリ及びディスプレイリストメモリを含むメモリプールを備え、
    ディスプレイリスト及びピクスマップに対するメモリ割当を、基準メモリアロケーションユニットの単位、または整数倍の基準メモリアロケーションユニットからなるメモリアロケーションユニットの単位で行う装置において、
    ピクスマップのメモリ割当要求に応じて、当該ピクスマップに対して複数の前記メモリアロケーションユニットを割り当てる場合に、
    前記複数のメモリアロケーションユニットに、前記メモリ割当要求されたピクスマップが格納されるときの未使用メモリの容量を決定するステップと、
    前記未使用メモリの容量に基づいて、前記メモリ割当要求されたピクスマップに割り当てる前記複数のメモリアロケーションユニットについて、メモリ割当の単位に対応する前記整数倍の値を選択するステップと、
    を含む方法。
  2. 前記メモリアロケーションユニットのサイズは前記基準メモリアロケーションユニットの整数倍に対する上限によって制限される請求項1に記載の方法。
  3. 前記メモリアロケーションユニットのサイズは前記ピクスマップが格納されるときに未使用メモリの総容量を最小限にするサイズである請求項に記載の方法。
  4. 前記メモリアロケーションユニットのサイズは、結果的に前記未使用メモリが指定の未使用メモリ閾値以下となるサイズである請求項2又は3に記載の方法。
  5. 前記未使用メモリ閾値はユーザ選択可能な発見的方法を用いて指定される請求項に記載の方法。
  6. 全ての割り当てられたメモリアロケーションユニットは等しいサイズである請求項1〜5の何れか一項に記載の方法。
  7. 各個別のメモリアロケーションユニットはメモリの連続する部分によって構成される請求項1〜6の何れか一項に記載の方法。
  8. 前記方法はプリンタにおいて実行される請求項1〜7の何れか一項に記載の方法。
  9. 前記単独のメモリプールは印刷装置に存在する請求項1〜8の何れか一項に記載の方法。
  10. フレームバッファメモリ及びディスプレイリストメモリを含むメモリプールを備え、
    ディスプレイリスト及びピクスマップに対するメモリ割当を、基準メモリアロケーションユニットの単位、または整数倍の基準メモリアロケーションユニットからなるメモリアロケーションユニットの単位で行う装置において、ピクスマップのメモリ割当要求に応じて、当該ピクスマップに対して複数の前記メモリアロケーションユニットを割り当てる方法のステップを実行するプロセッサを制御する命令を含むコンピュータ読取可能な媒体であって、
    前記方法は、
    前記複数のメモリアロケーションユニットに、前記メモリ割当要求されたピクスマップが格納されるときの未使用メモリの容量を決定するステップと、
    前記未使用メモリの容量に基づいて、前記メモリ割当要求されたピクスマップに割り当てる前記複数のメモリアロケーションユニットについて、メモリ割当の単位に対応する前記整数倍の値を選択するステップと、
    を含むコンピュータ読取可能な媒体。
  11. 前記メモリアロケーションユニットのサイズは前記基準メモリアロケーションユニットの整数倍に対する上限によって制限される請求項10に記載のコンピュータ読取可能な媒体。
  12. 前記メモリアロケーションユニットのサイズは前記ピクスマップが格納されるときに未使用メモリの総容量を最小限にするサイズである請求項11に記載のコンピュータ読取可能な媒体。
  13. 前記メモリアロケーションユニットのサイズは、結果的に前記未使用メモリが指定の未使用メモリ閾値以下となるサイズである請求項11又は12に記載のコンピュータ読取可能な媒体。
  14. 前記未使用メモリ閾値はユーザ選択可能な発見的方法を用いて指定される請求項13に記載のコンピュータ読取可能な媒体。
  15. 全ての割り当てられたメモリアロケーションユニットは等しいサイズである請求項10〜14の何れか一項に記載のコンピュータ読取可能な媒体。
  16. フレームバッファメモリ及びディスプレイリストメモリを含むメモリプールを備え、
    ディスプレイリスト及びピクスマップに対するメモリ割当を、基準メモリアロケーションユニットの単位、または整数倍の基準メモリアロケーションユニットからなるメモリアロケーションユニットの単位で行う装置において、ピクスマップのメモリ割当要求に応じて、当該ピクスマップに対して複数の前記メモリアロケーションユニットを割り当てる方法のステップを実行するプロセッサを制御する命令を含むコンピュータ読取可能なメモリであって、
    前記方法は、
    前記複数のメモリアロケーションユニットに、前記メモリ割当要求されたピクスマップが格納されるときの未使用メモリの容量を決定するステップと、
    前記未使用メモリの容量に基づいて、前記メモリ割当要求されたピクスマップに割り当てる前記複数のメモリアロケーションユニットについて、メモリ割当の単位に対応する前記整数倍の値を選択するステップと、
    を含むコンピュータ読取可能なメモリ。
JP2009206817A 2008-09-11 2009-09-08 最適なメモリアロケーションユニットのシステム及び方法 Expired - Fee Related JP5680841B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/209,046 US8854680B2 (en) 2008-09-11 2008-09-11 Systems and methods for optimal memory allocation units
US12/209,046 2008-09-11

Publications (2)

Publication Number Publication Date
JP2010079893A JP2010079893A (ja) 2010-04-08
JP5680841B2 true JP5680841B2 (ja) 2015-03-04

Family

ID=41799028

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009206817A Expired - Fee Related JP5680841B2 (ja) 2008-09-11 2009-09-08 最適なメモリアロケーションユニットのシステム及び方法

Country Status (2)

Country Link
US (1) US8854680B2 (ja)
JP (1) JP5680841B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8526049B2 (en) * 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
US8782371B2 (en) * 2008-03-31 2014-07-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for memory management for rasterization
US8228555B2 (en) * 2008-03-31 2012-07-24 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for parallel display list rasterization
US8817032B2 (en) 2008-08-29 2014-08-26 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for framebuffer management
US8861014B2 (en) * 2008-09-30 2014-10-14 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimized printer throughput in a multi-core environment
JP2011126210A (ja) * 2009-12-18 2011-06-30 Canon Inc 印刷データ処理装置、印刷データ処理方法、およびプログラム
US8762625B2 (en) 2011-04-14 2014-06-24 Apple Inc. Stochastic block allocation for improved wear leveling
US8510531B1 (en) * 2012-09-20 2013-08-13 Google Inc. Fast, dynamic cache packing
US8954391B2 (en) 2012-10-15 2015-02-10 Oracle International Corporation System and method for supporting transient partition consistency in a distributed data grid
US10418002B2 (en) * 2016-10-18 2019-09-17 Mediatek Inc. Merged access units in frame buffer compression
CN107203477A (zh) * 2017-06-16 2017-09-26 深圳市万普拉斯科技有限公司 内存分配方法、装置、电子设备及可读存储介质
WO2020091767A1 (en) * 2018-10-31 2020-05-07 Hewlett-Packard Development Company, L.P. Continuous frequency based print pipeline generation
CN112698950B (zh) * 2020-12-31 2024-04-05 杭州电子科技大学 一种用于工业物联网边缘设备的内存优化方法

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4782398A (en) 1986-02-14 1988-11-01 Canon Kabushiki Kaisha Image processing apparatus
US5010515A (en) 1987-07-28 1991-04-23 Raster Technologies, Inc. Parallel graphics processor with workload distributing and dependency mechanisms and method for distributing workload
JP2797400B2 (ja) 1989-04-18 1998-09-17 富士ゼロックス株式会社 データ表示制御装置
US5041920A (en) 1989-11-15 1991-08-20 Xerox Corporation Image halftone generation by static RAM look-up table
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
US6092171A (en) 1991-09-16 2000-07-18 Advanced Micro Devices, Inc. System and method for using a memory management unit to reduce memory requirements
US5477257A (en) 1991-11-11 1995-12-19 Matsushita Electric Industrial Co., Ltd. Image forming method and apparatus using rotated screen with pulse width modulation
JPH05244371A (ja) 1992-02-27 1993-09-21 Canon Inc 記録装置および方法
US5479587A (en) 1992-09-03 1995-12-26 Hewlett-Packard Company Page printer having adaptive data compression for memory minimization
US5491808A (en) 1992-09-30 1996-02-13 Conner Peripherals, Inc. Method for tracking memory allocation in network file server
JPH06149757A (ja) 1992-11-10 1994-05-31 Hitachi Ltd 並列処理装置
US5542031A (en) 1993-04-30 1996-07-30 Douglass; Clay S. Halftone computer imager
US5646670A (en) 1993-08-31 1997-07-08 Canon Kabushiki Kaisha Color image forming apparatus which reduces toner consumption during image formation
US5502462A (en) 1993-11-01 1996-03-26 The 3Do Company Display list management mechanism for real-time control of by-the-line modifiable video display system
US5577243A (en) 1994-03-31 1996-11-19 Lexmark International, Inc. Reallocation of returned memory blocks sorted in predetermined sizes and addressed by pointer addresses in a free memory list
JP3610528B2 (ja) 1995-01-24 2005-01-12 ブラザー工業株式会社 メモリ管理方法及び装置
US5864342A (en) 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
JP3466808B2 (ja) 1996-02-29 2003-11-17 キヤノン株式会社 画像処理装置及び方法
US5946334A (en) 1996-03-27 1999-08-31 Ricoh Company, Inc. Semiconductor laser control system
US5793937A (en) 1996-03-29 1998-08-11 Peerless Systems Corporation Fallback processing for page generation using memory reduction techniques
US5778414A (en) 1996-06-13 1998-07-07 Racal-Datacom, Inc. Performance enhancing memory interleaver for data frame processing
US5978893A (en) 1996-06-19 1999-11-02 Apple Computer, Inc. Method and system for memory management
US5913018A (en) 1996-07-24 1999-06-15 Adobe Systems Incorporated Print band rendering system
US6269190B1 (en) 1996-09-24 2001-07-31 Electronics For Imaging, Inc. Computer system for processing images using a virtual frame buffer
US6031995A (en) 1996-11-06 2000-02-29 George; A. Chacko Object-oriented sequencing using hierarchical configuration streams
JP3156605B2 (ja) 1996-11-19 2001-04-16 セイコーエプソン株式会社 トナー転写式の印刷装置のためのパルス幅データの生成装置及び方法
US6111582A (en) 1996-12-20 2000-08-29 Jenkins; Barry L. System and method of image generation and encoding using primitive reprojection
US6057847A (en) 1996-12-20 2000-05-02 Jenkins; Barry System and method of image generation and encoding using primitive reprojection
US6178036B1 (en) 1997-01-14 2001-01-23 California Institute Of Technology Opto-electronic devices and systems based on brillouin selective sideband amplification
US5999709A (en) 1997-04-18 1999-12-07 Adobe Systems Incorporated Printer memory boost
US6040917A (en) * 1997-10-27 2000-03-21 Hewlett-Packard Company Memory partitioning for multi-resolution pauseless page printing
US6490670B1 (en) 1998-04-24 2002-12-03 International Business Machines Corporation Method and apparatus for efficiently allocating objects in object oriented systems
US6252675B1 (en) 1998-05-08 2001-06-26 Xerox Corporation Apparatus and method for halftone hybrid screen generation
US20010015820A1 (en) 1998-07-13 2001-08-23 Hewlett-Packard Company Method and apparatus for conservation of memory in a printer through selective compression of a display list
US6366289B1 (en) 1998-07-17 2002-04-02 Microsoft Corporation Method and system for managing a display image in compressed and uncompressed blocks
US20020063894A1 (en) 1998-08-28 2002-05-30 Russell Campbell Conservation of printer memory on the composition page
US20020093669A1 (en) 1998-08-28 2002-07-18 Russell Campbell Complexity extensions for band management in a printer page pipe
JP3620310B2 (ja) 1998-10-16 2005-02-16 富士ゼロックス株式会社 パルス発生装置および画像記録装置
US6192157B1 (en) 1998-10-27 2001-02-20 Hewlett-Packard Company Modifications of postscript adaptive data compression (ADC) for 3 plane, 8 bit color images, JPEG lossy compression, and variable Q factors
JP2000141811A (ja) 1998-11-11 2000-05-23 Nec Corp プリンタシステム
JP2000181643A (ja) * 1998-12-11 2000-06-30 Canon Inc 画像形成装置及び画像形成方法
US6707563B1 (en) 1999-01-11 2004-03-16 T/R Systems Multiple print engine with error handling capability
US6684304B2 (en) 1999-01-29 2004-01-27 Micron Technology, Inc. Method to access memory based on a programmable page limit
US6701420B1 (en) 1999-02-01 2004-03-02 Hewlett-Packard Company Memory management system and method for allocating and reusing memory
US6249793B1 (en) 1999-06-10 2001-06-19 Sun Microsystems, Inc. Mostly concurrent compaction in a garbage collection system
US6778292B1 (en) 1999-08-19 2004-08-17 Seiko Epson Corporation Printer host and storage medium storing the operation program therefor
GB2354416B (en) 1999-09-17 2004-04-21 Technologies Limit Imagination Depth based blending for 3D graphics systems
JP3983449B2 (ja) 1999-10-15 2007-09-26 株式会社リコー パルス幅変調回路、光書き込み装置及び画像形成装置
US7111190B2 (en) 2001-02-23 2006-09-19 Intel Corporation Method and apparatus for reconfigurable memory
US6326993B1 (en) 2000-03-15 2001-12-04 Toshiba Tec Kabushiki Kaisha Pulse width modulation system and image forming apparatus having the pulse width modulation system
US7064859B1 (en) 2000-03-27 2006-06-20 International Business Machines Corporation Method, system, program, and data structure for producing a look-up table to enhance print quality
US6879416B2 (en) 2000-04-27 2005-04-12 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and storage medium
JP2001350439A (ja) 2000-06-06 2001-12-21 Sony Corp 変調回路およびこれを用いた画像表示装置
EP1287494B1 (en) 2000-06-08 2007-03-14 Imagination Technologies Limited Tiling and compression for rendering 3d images
JP3985437B2 (ja) 2000-08-03 2007-10-03 セイコーエプソン株式会社 電子写真の画像形成装置及びその画像形成プログラム製品
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US7031025B1 (en) 2000-08-23 2006-04-18 Hewlett-Packard Development Company, L.P. Combined dot density and dot size modulation
AUPQ995700A0 (en) 2000-09-07 2000-09-28 Canon Kabushiki Kaisha Method and apparatus for printing computer generated images
US7609402B2 (en) 2001-01-19 2009-10-27 Flexiworld, Inc. Methods for universal data output
JP2002267963A (ja) 2001-03-07 2002-09-18 Ricoh Co Ltd 画像形成装置
DE60237256D1 (de) 2001-03-14 2010-09-23 Ricoh Kk Lichtemissionsmodulation mit einem effektiven Verfahren zur Erzeugung von Grautönen in einem Bild
US6643759B2 (en) 2001-03-30 2003-11-04 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
JP2005500620A (ja) 2001-08-15 2005-01-06 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 移動するメモリブロックを備えるメモリプール
US7113302B2 (en) 2001-10-16 2006-09-26 Texas Instruments Incorporated Printer with unified display list and banded display lists
US7038671B2 (en) 2002-02-22 2006-05-02 Intel Corporation Digitally driving pixels from pulse width modulated waveforms
US7330956B1 (en) 2002-04-16 2008-02-12 Emc Corporation Bucket based memory allocation
US7715031B2 (en) 2002-06-14 2010-05-11 Kyocera Mita Corporation Method and apparatus for generating an image for output to a raster device
US7069396B2 (en) 2002-06-27 2006-06-27 Hewlett-Packard Development Company, L.P. Deferred memory allocation for application threads
JP2004038527A (ja) 2002-07-03 2004-02-05 Canon Inc プリンタドライバおよび印刷制御方法およびコンピュータが読み取り可能な記憶媒体およびプログラム
US6895486B2 (en) 2002-08-29 2005-05-17 Micron Technology, Inc. Linear object management for a range of flash memory
US8045215B2 (en) 2002-10-18 2011-10-25 Hewlett-Packard Development Company, L.P. Printer object list resolutions
US20040098544A1 (en) 2002-11-15 2004-05-20 Gaither Blaine D. Method and apparatus for managing a memory system
US20040120007A1 (en) 2002-12-19 2004-06-24 Jacobsen Dana A. Method and apparatus for forming a display list
US7280246B2 (en) 2003-02-12 2007-10-09 Marvell International Technology Ltd. Laser print apparatus that generates pulse width value and justification value based on pixels in a multi-bit image
JP4144395B2 (ja) 2003-03-25 2008-09-03 ブラザー工業株式会社 画像処理装置およびそれを備えた画像形成装置
JP2005065043A (ja) 2003-08-18 2005-03-10 Minolta Co Ltd データ処理装置
JP2005073004A (ja) 2003-08-26 2005-03-17 Konica Minolta Business Technologies Inc フレームバッファ管理方法及びフレームバッファ管理装置
US7583397B2 (en) 2003-09-30 2009-09-01 Canon Kabushiki Kaisha Method for generating a display list
US7284107B2 (en) 2004-04-30 2007-10-16 Microsoft Corporation Special-use heaps
JP4563737B2 (ja) 2004-07-02 2010-10-13 ルネサスエレクトロニクス株式会社 パルス幅変調回路
US7747834B2 (en) 2004-09-30 2010-06-29 Kyocera Wireless Corp. Memory manager for an embedded system
US20060077307A1 (en) 2004-10-07 2006-04-13 Robbie Thielemans System for and method of optically enhancing video and light elements
JP4053545B2 (ja) 2005-01-11 2008-02-27 株式会社ルネサステクノロジ グラフィックスプロセッサおよび図形処理装置
JP4484770B2 (ja) 2005-06-09 2010-06-16 キヤノン株式会社 画像処理装置およびその方法
US7437529B2 (en) 2005-06-16 2008-10-14 International Business Machines Corporation Method and mechanism for efficiently creating large virtual memory pages in a multiple page size environment
US7782442B2 (en) 2005-12-06 2010-08-24 Nikon Corporation Exposure apparatus, exposure method, projection optical system and device producing method
JP4281738B2 (ja) 2005-12-26 2009-06-17 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、画像形成方法及びプログラム
US7447836B2 (en) 2006-02-14 2008-11-04 Software Site Applications, Limited Liability Company Disk drive storage defragmentation system
US8526049B2 (en) 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
US7822115B2 (en) 2006-06-30 2010-10-26 Konica Minolta Systems Laboratory, Inc. Systems for generating a pulse width modulated signal
US7907303B2 (en) * 2006-06-30 2011-03-15 Konica Minolta Systems Laboratory, Inc. Systems and methods for processing pixel data for a printer
US7957025B2 (en) 2006-06-30 2011-06-07 Konica Minolta Systems Laboratory, Inc. Systems and methods for processing pixel data for a printer
US20080002229A1 (en) 2006-06-30 2008-01-03 Konica Minolta Systems Laboratory, Inc. Systems and method for saving memory on screen
US7428075B2 (en) 2006-06-30 2008-09-23 Konica Minolta Systems Laboratory, Inc. Circuitry to support justification of PWM pixels
US7619644B2 (en) 2006-06-30 2009-11-17 Konica Minolta Systems Laboratory, Inc. Method and apparatus for image alignment
US20090086254A1 (en) 2007-09-28 2009-04-02 Mike Hy Duong Systems and Methods for Dynamic Printer Configuration
EP2075698A1 (en) 2007-12-28 2009-07-01 Software AG Method and system for allocating memory in a broker system
US8228555B2 (en) 2008-03-31 2012-07-24 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for parallel display list rasterization
US8782371B2 (en) 2008-03-31 2014-07-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for memory management for rasterization
US8817032B2 (en) 2008-08-29 2014-08-26 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for framebuffer management
US8861014B2 (en) 2008-09-30 2014-10-14 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimized printer throughput in a multi-core environment
US8256049B1 (en) * 2011-01-04 2012-09-04 Sinks Michael D Compact sleep enhancement kit

Also Published As

Publication number Publication date
US8854680B2 (en) 2014-10-07
US20100060934A1 (en) 2010-03-11
JP2010079893A (ja) 2010-04-08

Similar Documents

Publication Publication Date Title
JP5680841B2 (ja) 最適なメモリアロケーションユニットのシステム及び方法
US8782371B2 (en) Systems and methods for memory management for rasterization
JP5437754B2 (ja) ディスプレイリストの並列生成及び並行ラスタライゼーションのための方法及びコンピュータにより読取可能な媒体
US8526049B2 (en) Systems and methods for display list management
JP5238526B2 (ja) 印刷リソース管理のためのシステム及び方法
JP5226581B2 (ja) ディスプレイリストの並行ラスタ化のための方法、コンピュータ可読媒体及びコンピュータ可読メモリ
JP5642951B2 (ja) ピクスマップの管理方法、プログラム及びプログラムを記録した記録媒体
JP5457208B2 (ja) 印刷装置におけるメモリ管理用システム及びその方法
US9195919B2 (en) Fixed memory rendering
JP2009163709A (ja) Pdlデータからの文書特性判別方法
JPH08221226A (ja) 自己構成ネットワーク/プリンタ・システム
JP5471681B2 (ja) 画像処理装置及び画像処理プログラム
JP5684466B2 (ja) 複数のオブジェクト種別のオブジェクトに対応する、ラスタ画像バッファ中の少なくとも一つの画素を処理するための方法及びコンピュータで読み取り可能な媒体
JP6135329B2 (ja) 印刷データ処理装置、プログラム、及びシステム
JP2007189674A (ja) 色変換用のメモリ管理システムおよび方法
US20100053685A1 (en) Image processing apparatus, image processing method, program, and storage medium
JPH0918732A (ja) 情報処理装置及びその方法
JP2009282964A (ja) 印刷データをレンダリングするシステム、方法及びコンピュータ可読媒体
JP5245713B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP6238589B2 (ja) 画像形成装置、画像処理方法、およびプログラム
JP2004202755A (ja) 画像形成装置、画像形成方法、およびプログラム
KR20050072224A (ko) 화상형성장치 및 그의 메모리 관리방법
JP2005199485A (ja) 画像処理装置及び画像処理方法ならびに画像処理方法を実行するプログラム
JP2015001882A (ja) 印刷画像処理システムおよびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120718

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140819

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141117

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150108

R150 Certificate of patent or registration of utility model

Ref document number: 5680841

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees