JP2005073004A - フレームバッファ管理方法及びフレームバッファ管理装置 - Google Patents

フレームバッファ管理方法及びフレームバッファ管理装置 Download PDF

Info

Publication number
JP2005073004A
JP2005073004A JP2003300841A JP2003300841A JP2005073004A JP 2005073004 A JP2005073004 A JP 2005073004A JP 2003300841 A JP2003300841 A JP 2003300841A JP 2003300841 A JP2003300841 A JP 2003300841A JP 2005073004 A JP2005073004 A JP 2005073004A
Authority
JP
Japan
Prior art keywords
buffer
frame buffer
frame
acquired
buffer memory
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
JP2003300841A
Other languages
English (en)
Inventor
Taketoshi Morohashi
烈勇 諸橋
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.)
Konica Minolta Business Technologies Inc
Original Assignee
Konica Minolta Business Technologies Inc
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 Konica Minolta Business Technologies Inc filed Critical Konica Minolta Business Technologies Inc
Priority to JP2003300841A priority Critical patent/JP2005073004A/ja
Publication of JP2005073004A publication Critical patent/JP2005073004A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)
  • Storing Facsimile Image Data (AREA)

Abstract

【課題】記録紙サイズが混在する場合にもフレームバッファメモリを複数のページで効率良く分割利用することのできるフレームバッファ管理方法を提供する。
【解決手段】複数のバッファメモリ30a、30bを設け、各バッファメモリをリングバッファ的に使用するとともに、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できる場合は前回と同じバッファメモリからフレームバッファを取得し、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できない場合は前回と異なるバッファメモリからフレームバッファの取得を試みる。
【選出図】図1

Description

本発明は、イメージデータを格納するためのフレームバッファの取得および解放を管理するフレームバッファ管理方法およびフレームバッファ管理装置に関する。
従来、ページプリンタなどの印刷装置では、ホストコンピュータ等から受信した印刷データを展開して作成したイメージデータを一旦ページ単位のフレームバッファに格納し、印刷部がこのフレームバッファからイメージデータを順次読み出して記録紙上に画像を形成するという手順で印刷処理が行なわれる。
フレームバッファは、当該ページプリンタで印刷可能な最大サイズの記録紙に対応した大きさを備えている。そこで、最大サイズより小さい記録紙に印刷するとき、フレームバッファの余った領域を他のページの格納に利用してフレームバッファ用のメモリ領域を有効活用するようにしたページプリンタが開示されている(たとえば、特許文献1参照。)。
また、フレームバッファの空きが不足した場合に、フレームバッファ上のイメージデータをハードディスク装置などの補助記憶装置に退避することでフレームバッファに空き領域を生成し、ここにイメージデータを展開して画像形成処理を継続可能にする技術がある(たとえば、特許文献2参照。)。
特開平3−53965号公報 特開平6−168183号公報
小さいサイズの記録紙に印刷する際に1つのフレームバッファを複数のページ分のフレームバッファとして分割使用するものではフレームバッファをある程度有効利用することができる。しかし、記録紙には様々なサイズが存在するので、ページメモリの取得と解放を適切なアルゴリズムで行なわないと、空き領域が細切れになってフラグメンテーションが発生し、大きなサイズのフレームバッファが必要になった場合にそれをすぐに取得することが難しくなって、印刷処理が滞る場合が起きてしまう。
一方、ハードディスク装置などの補助記憶装置は、データの読み書き速度がフレームバッファに使用される半導体メモリに比べて一般に低速である。このため、空き領域が不足した場合にフレームバッファ上のイメージデータを補助記憶装置に退避すると、データの退避およびその復元に長い処理時間を要し、印刷のパフォーマンスが低下してしまう。また退避や復元に係る制御は複雑であった。
本発明は、上記の問題を解決しようとする課題にするものであり、記録紙サイズが混在する場合にもフレームバッファを複数のページで効率良く分割利用することのできるフレームバッファ管理方法及びフレームバッファ管理装置を提供することを目的としている。
請求項1に係る発明は、イメージデータを格納するためのフレームバッファの取得および解放を管理するフレームバッファ管理方法において、
複数のバッファメモリ(30a、30b)を設け、
前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できる場合は前回と同じバッファメモリからフレームバッファを取得し、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できない場合は前回と異なるバッファメモリからフレームバッファの取得を試みる
ことを特徴とするフレームバッファ管理方法である。
上記発明によれば、要求サイズのフレームバッファを前回と同じバッファメモリから取得できなくなった場合に初めて他のバッファメモリからの取得を試みる。これにより、大きいサイズのフレームバッファが必要になった場合にそれを他のバッファメモリから取得することが可能になる。各バッファメモリ内でフレームバッファを取得するためのアルゴリズムは任意でかまわない。たとえば、バッファメモリの先頭アドレスから空き領域を探してもよいし、バッファメモリをリングバッファのように使用して前回取得した次のアドレスから空き領域を探してもよい。
各バッファメモリは同一サイズであっても異なるサイズであってもよい。少なくとも1つのバッファメモリは、展開されるイメージデータの最大サイズ(プリンタにあっては、最大サイズの記録紙に対応する記憶容量)以上の記憶領域を備えたものとし、望ましくはその大きさの記憶領域をすべてのバッファメモリが備えるとよい。
バッファメモリの数は2以上であればいくつでもよい。バッファメモリが3つ以上存在する場合には、前回と異なるバッファメモリからフレームバッファの取得を試みる際の検索順序は、任意でも予め定めた特定の順序であってもよい。たとえば、バッファメモリを順序付けしておき、前回の取得したものを除いて先頭のものから順に検索したり、前回の次に順序付けされているものから順に複数のバッファメモリを一巡するよう検索したりするとよい。
請求項2に係る発明は、イメージデータを格納するためのフレームバッファの取得および解放を管理するフレームバッファ管理方法において、
複数のバッファメモリ(30a、30b)を設け、
前記各バッファメモリをリングバッファとして使用するとともに、
前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できる場合は前回と同じバッファメモリからフレームバッファを取得し、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できない場合は前回と異なるバッファメモリからフレームバッファの取得を試みる
ことを特徴とするフレームバッファ管理方法である。
上記発明によれば、前回と同じバッファメモリから要求サイズのフレームバッファを取得できなくなった場合に初めて他のバッファメモリからの取得を試みるとともに、各バッファメモリをリングバッファとして使用する。なお、フレームバッファとして物理的に連続する領域を取得する必要があるので、「リングバッファとして使用する」とは、記憶領域の先頭からフレームバッファを順次取得し、次に取得するフレームバッファがバッファメモリの後端を越えるときは、フレームバッファの先頭に戻ってそこから要求サイズのフレームバッファを取得するように使用することをいう。
通常、ページプリンタでは、展開手段がイメージデータをフレームバッファに格納したページ順に印刷手段がイメージデータをフレームバッファから読み出して印刷するので、取得された順にフレームバッファが解放される。したがって、各バッファメモリをリングバッファとして使用すれば、解放される領域が順次連続領域を形成して行くので、バッファメモリ内の空き領域が細切れにならず、大きなフレームバッファを確保し易くなる。
請求項3に係る発明は、前記複数のバッファメモリ(30a、30b)を順序付けし、
前回と異なるバッファメモリからフレームバッファの取得を試みる際に、前回フレームバッファを取得したバッファメモリ(30a、30b)の次に順序付けされたものから順にバッファメモリ(30a、30b)を検索する
ことを特徴とする請求項1または2に記載のフレームバッファ管理方法である。
上記発明によれば、前回と同じバッファメモリから要求サイズのフレームバッファを取得できないとき、その次に順序付けされたバッファメモリを起点として複数のバッファメモリ(30a、30b)を予め定めた順序に従って一巡するように検索してフレームバッファの取得を試みる。前回と同じバッファメモリから複数のバッファメモリ(30a、30b)を巡回的に使用するので、最も昔にフレームバッファを取得したバッファメモリが次の検索対象になる。したがって、通常のページプリンタのように、取得した順にフレームバッファが解放される場合には、次に検索するバッファメモリが最もフレームバッファの解放が進んだものになるので、上記の順に検索することで、必要サイズのフレームバッファを取得するまでの処理時間が短縮される。
なお、取得した順にフレームバッファが解放され、かつ各バッファメモリのサイズが同一の場合には、前回と同じバッファメモリの次のバッファメモリから要求サイズのフレームバッファを取得できなかった時点でそれ以上の検索を中止し、取得不能で処理を終了してもよい。
請求項4に係る発明は、イメージデータを格納するためのフレームバッファの取得および解放を管理するフレームバッファ管理装置において、
複数のバッファメモリ(30a、30b)と、
前記バッファメモリからフレームバッファの取得とその解放を行なう管理手段(21)とを備え、 前記管理手段(21)は、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できる場合は前回と同じバッファメモリからフレームバッファを取得し、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できない場合は前回と異なるバッファメモリからフレームバッファの取得を試みる
ことを特徴とするフレームバッファ管理装置である。
上記発明によれば、請求項1に記載の発明と同じく、要求サイズのフレームバッファを前回と同じバッファメモリから取得できなくなってから他のバッファメモリからの取得を試みる。これにより、大きいサイズのフレームバッファが必要になった場合にそれを他のバッファメモリから確保することが可能になる。
請求項5に係る発明は、イメージデータを格納するためのフレームバッファの取得および解放を管理するフレームバッファ管理装置において、
複数のバッファメモリ(30a、30b)と、
前記バッファメモリからフレームバッファの取得とその解放を行なう管理手段(21)とを備え、
前記管理手段(21)は、前記各バッファメモリをリングバッファとして使用するとともに、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できる場合は前回と同じバッファメモリからフレームバッファを取得し、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できない場合は前回と異なるバッファメモリからフレームバッファの取得を試みる
ことを特徴とするフレームバッファ管理装置である。
上記発明によれば、請求項2に記載の発明と同じく、前回と同じバッファメモリから要求サイズのフレームバッファを取得できなくなってから他のバッファメモリからの取得を試みるとともに、各バッファメモリをリングバッファとして使用する。取得順に解放されるようにフレームバッファが使用される場合には、各バッファメモリをリングバッファとして使用することで、バッファメモリ内の空き領域が細切れにならずに大きなフレームバッファを確保し易くなる。
請求項6に係る発明は、前記複数のバッファメモリ(30a、30b)を順序付けし、
前記管理手段(21)は、前回と異なるバッファメモリからフレームバッファの取得を試みる際に、前回フレームバッファを取得したバッファメモリ(30a、30b)の次に順序付けされたものから順にバッファメモリ(30a、30b)を検索する
ことを特徴とする請求項4または5に記載のフレームバッファ管理装置である。
上記発明によれば、請求項3に記載の発明と同じく、前回と同じバッファメモリから要求サイズのフレームバッファを取得できないとき、その次に順序付けされたバッファメモリから順に検索して、フレームバッファの取得を試みるようになっている。
本発明に係るフレームバッファ管理方法およびフレームバッファ管理装置によれば、複数のバッファメモリを用意しておき、要求されたサイズのフレームバッファを前回と同じバッファメモリから取得できなくなったときに初めて前回と異なるバッファメモリからの取得を試みるので、大きいサイズのフレームバッファが必要になった場合にそれを他のバッファメモリから確保することが可能になり、記録紙サイズが混在する場合にもフレームバッファを複数のページで効率良く利用することができる。
またバッファメモリが有効利用される結果、フレームバッファを解放するために補助記憶装置にフレームバッファ上のイメージデータを退避したりこれを復元したりする処理の実行が不要もしくは頻度が低減し、印刷のパフォーマンス低下が防止される。
各バッファメモリをリングバッファとして使用するものでは、通常のページプリンタのようにフレームバッファが取得順に解放されると、解放される領域が順次連続領域を形成して行くので、バッファメモリ内の空き領域が細切れにならず、大きなフレームバッファを取得し易くなる。
前回と同じバッファメモリから要求サイズのフレームバッファを取得できないとき、その次に順序付けされたバッファメモリを起点として複数のバッファメモリを一巡するように検索してフレームバッファの取得を試みるものでは、通常のページプリンタのようにフレームバッファが取得順に解放されると、最もフレームバッファの解放が進んだバッファメモリから検索されるので、必要サイズのフレームバッファを取得するまでの処理時間が短縮される。
以下、図面に基づき本発明の実施の形態を説明する。
図1は、本発明の実施の形態に係るフレームバッファ管理装置を含む印刷装置10の構成を示している。印刷装置10は、LAN(ローカル・エリア・ネットワーク)などのネットワークを介してクライアントコンピュータ等の印刷データ送信装置から印刷データを受信し、これをイメージデータに展開し、対応する画像を記録紙に形成して出力する機能を備えている。
印刷装置10は、制御部20と、印刷部11と、表示操作部12と、補助記憶装置13と、バッファメモリ30と、通信部14と、受信バッファ15とを備えている。制御部20は、当該装置全体の動作を統括制御する機能を果たし、図示省略のCPU(中央処理装置)とROM(リード・オンリ・メモリ)とRAM(ランダム・アクセス・メモリ)とを主要部として構成されている。
印刷部11は、電子写真プロセスによって記録紙上に画像を形成して出力する機能を果たす。印刷部11は、記録紙の搬送装置と、感光体ドラムと、帯電装置と、レーザーユニットと、現像装置と、転写分離装置と、クリーニング装置と、定着装置とを有する、いわゆるレーザープリンタとして構成されている。表示操作部12は、液晶ディスプレイと各種の操作スイッチから構成され、ユーザに各種の案内表示や状態表示を行なったり、ユーザから各種の入力操作を受け付けたりする機能を果たす。
通信部14は、印刷データ送信装置から印刷データを受信する等の機能と、受信した印刷データを受信バッファ15に格納する機能を果たす。補助記憶装置13は、ハードディスク装置など大容量の記憶装置で構成され、印刷データやこれを展開した後のイメージデータを保存することができる。
制御部20は、バッファ管理部21とイメージ展開部22としての機能を果たす。イメージ展開部22は、通信部14が受信した印刷データを解析してイメージデータに展開する。テキストデータのほか、各種のページディスクリプト言語に対応している。バッファメモリ30は、イメージ展開部22が展開したイメージデータを格納するメモリ領域である。ここでは第1バッファメモリ30aと第2バッファメモリ30bの2つがあり、バッファ管理部21はこれらの利用を管理する機能を果たす。印刷部11は、バッファメモリ30に格納されているイメージデータを読み出して、対応する画像を記録紙に形成して出力するようになっている。
第1バッファメモリ30aおよび第2バッファメモリ30bは、ページ単位にイメージデータを格納するための1または2以上のフレームバッファとして使用される。第1バッファメモリ30aおよび第2バッファメモリ30bはそれぞれ、印刷装置10が印刷可能な最大サイズの記録紙に対応するイメージデータを格納し得る記憶容量を備えている。制御部20は、印刷するページサイズに応じた大きさのフレームメモリをバッファメモリ30から取得し、ここにイメージデータを展開して格納する。また印刷が完了したときそのページのイメージデータを格納していたフレームバッファを解放する。したがって、各バッファメモリ30a、30bから小さいフレームバッファを複数取得することができ、1つのバッファメモリを複数ページ分のフレームバッファとして分割使用することが可能になっている。
各バッファメモリ30a、30bには、それぞれを一意に特定するための識別情報としてのバッファIDを割り当ててある。ここではバッファIDとして第1バッファメモリ30aに「0」を、第2バッファメモリ30bに「1」を付与してある。バッファIDは、バッファメモリを検索する際の順序を示す情報としても利用される。
バッファ管理部21は、バッファメモリ30a、30bをリングバッファ的に使用するように管理する。バッファメモリ30a、30bのそれぞれについて、先頭アドレスと、後端アドレスと、読み出しアドレスと、書き込みアドレスと、読み出しアドレスの前方(後端アドレス側)にある取得済みのフレームバッファ数(前方フレーム数)と、読み出しアドレスの後方(先頭アドレス側)にある取得済みのフレームバッファ数(後方フレーム数)とを管理する。また前回フレームバッファを取得したバッファメモリのバッファID(最終取得バッファID)を記憶するようになっている。
図2は、フレームバッファが取得・解放される際のバッファメモリの状態変化の一例を示している。同図(a)に示す初期状態のバッファメモリ51は、すべての領域が空き状態であり、読み出しアドレスと書き込みアドレスが共に先頭アドレスと一致し、前方フレーム数および後方フレーム数が共に「0」になっている。
同図(b)に示すバッファメモリ52は、1つ目のフレームバッファ53を取得した状態を示している。フレームバッファ53は、バッファメモリの先頭アドレスから取得され、書き込みアドレスは、取得したフレームバッファのサイズ分だけ加算される。また前方フレーム数は「+1」されて「1」になる。
同図(c)に示すバッファメモリ54は、2つ目のフレームバッファ55を取得した状態を示している、2つ目のフレームバッファ55は、1つ目のフレームバッファ53の前方(後端側)の空き領域よりもサイズが小さいので、1つ目のフレームバッファ53の後端側に連続する領域に取得される。書き込みアドレスは、取得したフレームバッファのサイズ分だけ加算され、前方フレーム数は「+1」されて「2」になる。
図3(a)に示すバッファメモリ56は、図2(c)の状態から1つ目のフレームバッファ53が解放された様子を示している。読み出しアドレスが解放されたフレームバッファのサイズ分だけ加算され、前方フレーム数が「−1」されて「1」になっている。図3(b)に示すバッファメモリ57は、同図(a)に示す状態から3つ目のフレームバッファ58を取得した様子を示している。3つ目のフレームバッファ58は、2つ目のフレームバッファ55の後端側にある空き領域59よりもサイズが大きいので、当該バッファメモリ57の先頭アドレスから取得される。これは、フレームバッファを物理的に連続領域として確保するためである。3つ目のフレームバッファ58は、読み出しアドレスの後方(先頭側)に取得されたので、後方フレーム数は「+1」されて「1」になる。
図4は、バッファメモリからフレームバッファを取得するためのフレーム取得メイン処理を示している。この処理では、今回要求されたサイズのバッファメモリが前回フレームバッファを取得したバッファメモリから取得可能か否かを調べ、可能な場合には前回と同じバッファメモリから取得する。一方、前回と同じバッファメモリから取得できないときは、次のバッファメモリから取得を試みるようになっている。このとき、前回フレームバッファを取得したバッファメモリの次に順序付けされているものから順に複数のバッファメモリが一巡するように検索される。
フレーム取得メイン処理には、その呼び出し元の処理からフレームバッファの要求サイズ(要求フレームサイズ)が引数として渡される。まず、記憶してある最終取得バッファIDを読み出してこれを変数IDにセットする(ステップS101)。変数IDとフレームバッファ数とを比較し前者が後者未満の場合は(ステップS102;Y)、変数IDと同じバッファIDのバッファメモリからフレームバッファの取得を試みるフレーム取得処理を実行する(ステップS103)。フレーム取得処理には、要求フレームサイズと変数IDが引数として渡される。フレーム取得処理は、フレームバッファを取得できたときはその先頭アドレスを返り値として戻し、取得できないときは「NULL」コードを返り値として戻すようになっている。
要求フレームサイズのフレームバッファを取得できたときは(ステップS104;Y)処理を終了し(リターン)、取得できなかったときは(ステップS104;N)変数IDを「+1」して(ステップS105)ステップS102に戻る。すなわち、加算後の変数IDがフレームバッファ数未満ならば変数IDと同じバッファIDのバッファメモリからフレームバッファの取得を試みる(ステップS103)。なお、フレーム取得メイン処理は、最後に行なったフレーム取得処理の返り値と変数IDを当該フレーム取得メイン処理の返り値として呼び出し元に戻すようになっている。
変数IDがフレームバッファ数未満でないときは(ステップS102;N)、順序が末尾のバッファメモリまでフレームバッファの取得を試みたことになるので、変数IDに「0」を代入し(ステップS106)、順序が先頭のバッファメモリに戻ってフレームバッファの取得を試みる。詳細には、変数IDが最終取得バッファID未満か否かを判定し(ステップS107)、未満のときは(ステップS107;Y)変数IDが示すバッファメモリからフレームバッファを取得するようにフレーム取得処理を実行し(ステップS108)、取得できたときは(ステップS109;Y)その時点で処理を終了する(リターン)。
取得できなかったときは(ステップS109;N)変数IDを「+1」して(ステップS110)、ステップS107に戻る。加算後の変数IDが最終取得バッファID未満でなくなった場合は(ステップS107;N)、複数のバッファメモリを一巡しても要求サイズのフレームバッファを取得できなかったので、処理を終了する(リターン)。
図5は、フレーム取得処理の流れを示している。まず、返り値として使用されるフレームポインタに「NULL」を代入しておく(ステップS201)。次に現在の読み出しアドレスが書き込みアドレス以下か否かを判断する(ステップS202)。読み出しアドレスが書き込みアドレス以下ならば、図6に示すように書き込みアドレスの後端側に空き領域71が隣接して存在する。そこで、書き込みアドレスから後端までの空き領域71が要求フレームサイズ以上あるときは(ステップS203;Y)、書き込みアドレスを先頭とするフレームバッファを当該空き領域71から取得する(ステップS204)。詳細には、返り値としてフレームポインタに書き込みアドレスを代入し、書き込みアドレスをこれに要求フレームサイズを加算した値に更新する。また読み出しアドレスよりも前方(後端側)にフレームバッファを取得したので、前方フレーム数を「+1」する。
書き込みアドレスから後端までの空き領域71が要求フレームサイズ以上無いときは(ステップS203;N)、図7に示すように、先頭アドレスから読み出しアドレスまでの間の空き領域72から要求フレームサイズのフレームバッファが取得可能か否かを調べる(ステップS205)。空き領域72が要求フレームサイズ以上あるときは(ステップS205;Y)、当該バッファメモリの先頭アドレスからフレームバッファを取得する(ステップS206)。詳細には、返り値としてフレームポインタに先頭アドレスを代入し、書き込みアドレスを先頭アドレスに要求フレームサイズを加算した値に更新する。また読み出しアドレスの後方(先頭側)にフレームバッファを取得したので、後方フレーム数を「+1」する。
読み出しアドレスが書き込みアドレス以下でないときは(ステップS202;N)、図8に示すように、書き込みアドレスから読み出しアドレスの手前までに空き領域73が存在する。そこで、この空き領域73が要求フレームサイズ以上存在するときは(ステップS207;Y)、当該空き領域73から要求フレームサイズのフレームバッファを取得する(ステップS208)。詳細には、返り値としてフレームポインタに書き込みアドレスを代入し、書き込みアドレスをこれに要求フレームサイズを加算した値に更新する。また読み出しアドレスの後方(先頭側)にフレームバッファを取得したので、後方フレーム数を「+1」する。
図9は、フレームバッファを解放する処理の流れを示している。この処理には、解放するフレームバッファの属するバッファIDと解放するフレームバッファの先頭アドレス(解放フレームポインタ)と解放するフレームバッファのサイズ(解放フレームサイズ)とが呼び出し元の処理から引数として渡される。引数とされたバッファIDのバッファメモリに対して解放処理が行なわれる。
まず、解放フレームポインタの値が当該バッファメモリの読み出しアドレスと一致するか否かを調べ(ステップS301)、一致しないときは(ステップS301;N)、引数にエラーがあったことになるので、処理を終了する。なお、エラーコードなどを返り値として呼び出し元に戻すとよい。
解放フレームポインタの値が読み出しアドレスと一致するときは(ステップS301;Y)読み出しアドレスをこれに解放フレームサイズを加算した値に更新し、かつ前方フレーム数を「−1」する。なお、取得時にフレームバッファが読み出しアドレスの後方(先頭側)にあった場合でも、読み出すときには、必ず読み出しアドレスの前方(後端側)に存在するので、解放時には前方フレーム数を減算する。
減算後も前方フレーム数が「0」でないときは(ステップS303;N)、後端側に隣接して取得済みのフレームバッファが存在し、かつこれが次に読み出されるフレームバッファになるので、ステップS302で解放のための処理は完了しており、そのままフレーム解放処理を終了する(リターン)。
減算の結果、前方フレーム数が「0」になったときは(ステップS303;Y)、これ以上後端側に取得済みのフレームバッファが存在しないことになる。また今回解放したフレームバッファより先頭側に取得済みのフレームバッファが存在する場合でもそれらは当該バッファメモリの先頭アドレスから順に取得されているので、読み出しアドレスを当該バッファメモリの先頭アドレスに変更する(ステップS304)。
さらに後方フレーム数が「0」の場合は(ステップS305;Y)、取得済みのフレームバッファが当該バッファメモリに1つも存在しないことになるので、書き込みアドレスを当該バッファメモリの先頭アドレスに更新してバッファメモリを初期状態に戻して(ステップS306)、フレーム解放処理を終了する(リターン)。
後方フレーム数が「0」でない場合は(ステップS305;N)、その数だけ取得済みのフレームバッファが当該バッファメモリに存在する。また読み出しアドレスは先頭アドレスに更新されているので、現存する取得済みのフレームバッファはすべて前方フレームになる。そこで後方フレーム数の値を前方フレーム数に代入し、かつ後方フレーム数を「0」にリセットして(ステップS307)、フレーム解放処理を終了する(リターン)。
ページプリンタでは、展開したイメージデータを格納したページ順に印刷部がイメージデータをフレームバッファから読み出して印刷するので、取得した順にフレームバッファが解放される。したがって、各バッファメモリを上記のようにリングバッファ的に使用することで、バッファメモリ内の空き領域が細切れにならず、大きなフレームバッファを確保し易くなる。また複数のバッファメモリを用意しておき、要求サイズのフレームバッファを前回と同じバッファメモリから取得できなくなってから他のバッファメモリからの取得を試みるので、大きいサイズのフレームバッファが必要になった場合にそれを他のバッファメモリから確保することが可能になる。
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。たとえば、実施の形態では、バッファメモリとして第1バッファメモリ30aと第2バッファメモリ30bの2面を用意したが、3面あるいはそれ以上であってもかまわない。またバッファメモリ同士は同一サイズでなくてもよい。なお、少なくとも1つのバッファメモリは、最大サイズの記録紙に対応した大きさ以上に構成される。
実施の形態では、各処理の結果を返り値として呼び出し元に戻すようにしたが、呼び出し元から受け取ったアドレスポインタ等の示す領域に処理結果を格納するように構成してもよい。また本発明は、実施の形態で例示した印刷装置に限定されず、コピー機やファクシミリ装置など各種の画像形成装置に適用することができる。
本発明の実施の形態に係るフレームバッファ管理装置を適用した印刷装置の構成を示すブロック図である。 フレームバッファが取得・解放される際のバッファメモリの状況変化の一例を示す説明図である。 フレームバッファが取得・解放される際のバッファメモリの状況変化の一例であって図2の続きを示す説明図である。 本発明の実施の形態に係るフレームバッファ管理装置を適用した印刷装置が行なうフレーム取得メイン処理を示す流れ図である。 本発明の実施の形態に係るフレームバッファ管理装置を適用した印刷装置が行なうフレーム取得処理を示す流れ図である。 書き込みアドレスの後端側に空き領域が隣接して存在する状態のバッファメモリの一例を示す説明図である。 取得済みフレームバッファの両側に空き領域が存在する状態のバッファメモリの一例を示す説明図である。 書き込みアドレスから読み出しアドレスまでの間に空き領域が存在する状態のバッファメモリの一例を示す説明図である。 本発明の実施の形態に係るフレームバッファ管理装置を適用した印刷装置が行なうフレーム解放処理を示す流れ図である。
符号の説明
10…印刷装置
11…印刷部
12…表示操作部
13…補助記憶装置
14…通信部
15…受信バッファ
20…制御部
21…バッファ管理部
22…イメージ展開部
30…バッファメモリ
30a…第1バッファメモリ
30b…第2バッファメモリ
51…初期状態のバッファメモリ
52…バッファメモリ
53…1つ目のフレームバッファ
54…バッファメモリ
55…2つ目のフレームバッファ
56…バッファメモリ
57…バッファメモリ
58…3つ目のフレームバッファ
59…空き領域
71…書き込みアドレスから後端までの空き領域
72…先頭アドレスから読み出しアドレスまでの空き領域
73…書き込みアドレスから読み出しアドレスまでの空き領域

Claims (6)

  1. イメージデータを格納するためのフレームバッファの取得および解放を管理するフレームバッファ管理方法において、
    複数のバッファメモリを設け、
    前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できる場合は前回と同じバッファメモリからフレームバッファを取得し、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できない場合は前回と異なるバッファメモリからフレームバッファの取得を試みる
    ことを特徴とするフレームバッファ管理方法。
  2. イメージデータを格納するためのフレームバッファの取得および解放を管理するフレームバッファ管理方法において、
    複数のバッファメモリを設け、
    前記各バッファメモリをリングバッファとして使用するとともに、
    前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できる場合は前回と同じバッファメモリからフレームバッファを取得し、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できない場合は前回と異なるバッファメモリからフレームバッファの取得を試みる
    ことを特徴とするフレームバッファ管理方法。
  3. 前記複数のバッファメモリを順序付けし、
    前回と異なるバッファメモリからフレームバッファの取得を試みる際に、前回フレームバッファを取得したバッファメモリの次に順序付けされたものから順にバッファメモリを検索する
    ことを特徴とする請求項1または2に記載のフレームバッファ管理方法。
  4. イメージデータを格納するためのフレームバッファの取得および解放を管理するフレームバッファ管理装置において、
    複数のバッファメモリと、
    前記バッファメモリからフレームバッファの取得とその解放を行なう管理手段とを備え、
    前記管理手段は、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できる場合は前回と同じバッファメモリからフレームバッファを取得し、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できない場合は前回と異なるバッファメモリからフレームバッファの取得を試みる
    ことを特徴とするフレームバッファ管理装置。
  5. イメージデータを格納するためのフレームバッファの取得および解放を管理するフレームバッファ管理装置において、
    複数のバッファメモリと、
    前記バッファメモリからフレームバッファの取得とその解放を行なう管理手段とを備え、 前記管理手段は、前記各バッファメモリをリングバッファとして使用するとともに、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できる場合は前回と同じバッファメモリからフレームバッファを取得し、前回フレームバッファを取得したバッファメモリから今回要求されたサイズのフレームバッファを連続領域で取得できない場合は前回と異なるバッファメモリからフレームバッファの取得を試みる
    ことを特徴とするフレームバッファ管理装置。
  6. 前記複数のバッファメモリを順序付けし、
    前記管理手段は、前回と異なるバッファメモリからフレームバッファの取得を試みる際に、前回フレームバッファを取得したバッファメモリの次に順序付けされたものから順にバッファメモリを検索する
    ことを特徴とする請求項4または5に記載のフレームバッファ管理装置。
JP2003300841A 2003-08-26 2003-08-26 フレームバッファ管理方法及びフレームバッファ管理装置 Pending JP2005073004A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003300841A JP2005073004A (ja) 2003-08-26 2003-08-26 フレームバッファ管理方法及びフレームバッファ管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003300841A JP2005073004A (ja) 2003-08-26 2003-08-26 フレームバッファ管理方法及びフレームバッファ管理装置

Publications (1)

Publication Number Publication Date
JP2005073004A true JP2005073004A (ja) 2005-03-17

Family

ID=34405632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003300841A Pending JP2005073004A (ja) 2003-08-26 2003-08-26 フレームバッファ管理方法及びフレームバッファ管理装置

Country Status (1)

Country Link
JP (1) JP2005073004A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100686393B1 (ko) 2005-04-07 2007-03-02 주식회사 텔레칩스 하드웨어 구현에 적합한 움직임 예측 장치 및 그 방법
JP2007207076A (ja) * 2006-02-03 2007-08-16 Naltec Inc 処理装置およびその制御方法
JP2009245437A (ja) * 2008-03-31 2009-10-22 Konica Minolta Systems Lab Inc ラスタ化のためのメモリマネージメント方法、コンピュータ可読媒体及びコンピュータ可読メモリ
WO2009133722A1 (ja) * 2008-04-30 2009-11-05 日本電気株式会社 プロセス間通信システム、その通信に用いる共有メモリおよび通信方法
US7721065B2 (en) 2006-09-28 2010-05-18 Kyocera Mita Corporation Reducing memory fragmentation by learning memory allocation patterns
JP2012033085A (ja) * 2010-08-02 2012-02-16 Fujitsu Ltd データ処理装置
JP2013151118A (ja) * 2012-01-25 2013-08-08 Ricoh Co Ltd 印刷装置および印刷制御方法
US8526049B2 (en) 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
US8854680B2 (en) 2008-09-11 2014-10-07 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimal memory allocation units
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

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100686393B1 (ko) 2005-04-07 2007-03-02 주식회사 텔레칩스 하드웨어 구현에 적합한 움직임 예측 장치 및 그 방법
JP2007207076A (ja) * 2006-02-03 2007-08-16 Naltec Inc 処理装置およびその制御方法
JP4664211B2 (ja) * 2006-02-03 2011-04-06 ナルテック株式会社 処理装置およびその制御方法
US8526049B2 (en) 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
US7721065B2 (en) 2006-09-28 2010-05-18 Kyocera Mita Corporation Reducing memory fragmentation by learning memory allocation patterns
JP2009245437A (ja) * 2008-03-31 2009-10-22 Konica Minolta Systems Lab Inc ラスタ化のためのメモリマネージメント方法、コンピュータ可読媒体及びコンピュータ可読メモリ
US8782371B2 (en) 2008-03-31 2014-07-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for memory management for rasterization
WO2009133722A1 (ja) * 2008-04-30 2009-11-05 日本電気株式会社 プロセス間通信システム、その通信に用いる共有メモリおよび通信方法
US8854680B2 (en) 2008-09-11 2014-10-07 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimal memory allocation units
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
JP2012033085A (ja) * 2010-08-02 2012-02-16 Fujitsu Ltd データ処理装置
JP2013151118A (ja) * 2012-01-25 2013-08-08 Ricoh Co Ltd 印刷装置および印刷制御方法

Similar Documents

Publication Publication Date Title
US6473192B1 (en) Job processing apparatus
JP4900530B1 (ja) 画像処理装置及びプログラム
US20050111045A1 (en) Image forming method, image forming apparatus, and program
JP2005073004A (ja) フレームバッファ管理方法及びフレームバッファ管理装置
US7061654B2 (en) Image processor, image processing method and storage medium
JP2006041764A (ja) ログ記録装置、ログ記録プログラムおよび記録媒体
US20080038002A1 (en) Image formation device, information processing device, recording medium, log generation method, and computer data signal
JP2004070871A (ja) ネットワークプリンタ及びデータ共有印刷システム
JP2006344184A (ja) 画像形成装置
JPH09107426A (ja) 印刷制御装置並びに印刷装置および印刷制御装置の印刷ジョブ処理方法
JP2008046977A (ja) 画像処理システム及び画像形成装置
JP4760235B2 (ja) 画像形成システム、画像形成装置、画像読取装置
JP2005349768A (ja) 印刷装置及び印刷方法
JP2006236006A (ja) 印刷装置、プログラムおよび記録媒体
EP0860770A2 (en) Terminal printer
JP2001146049A (ja) プリンタシステム及びそれを用いた描画処理方法及び描画処理を行うプログラムを記録した記録媒体
JP2002200821A (ja) 画像形成装置及び画像形成制御方法
JPH03265025A (ja) 印刷処理方法及び装置
JP4035304B2 (ja) デジタル情報出力システム
JP3417426B2 (ja) 画像記録装置
JP2001320561A (ja) 画像処理装置
JP2006289680A (ja) 画像形成装置及び画像形成プログラム
KR100213119B1 (ko) 프린터의 인쇄대상목록 표시방법
JP2005215903A (ja) 情報処理システム
US8732218B2 (en) File access system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080208

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080321