JP4343204B2 - 画像処理装置、画像処理方法、ならびに、プログラム - Google Patents

画像処理装置、画像処理方法、ならびに、プログラム Download PDF

Info

Publication number
JP4343204B2
JP4343204B2 JP2006251541A JP2006251541A JP4343204B2 JP 4343204 B2 JP4343204 B2 JP 4343204B2 JP 2006251541 A JP2006251541 A JP 2006251541A JP 2006251541 A JP2006251541 A JP 2006251541A JP 4343204 B2 JP4343204 B2 JP 4343204B2
Authority
JP
Japan
Prior art keywords
unit
storage unit
image information
image
temporary storage
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.)
Active
Application number
JP2006251541A
Other languages
English (en)
Other versions
JP2008071286A (ja
Inventor
恭広 川端
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.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment Co Ltd
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 Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to JP2006251541A priority Critical patent/JP4343204B2/ja
Publication of JP2008071286A publication Critical patent/JP2008071286A/ja
Application granted granted Critical
Publication of JP4343204B2 publication Critical patent/JP4343204B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Input (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

本発明は、表示すべき画像を生成する際に、繰り返し使用される文字フォント等の断片画像を効率良くキャッシュするのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
従来から、アクセス速度の低速な記憶媒体(たとえば、CD−ROM(Compact Disk Read Only Memory)など。)から各種の情報を読み出す際に、情報の使用頻度に偏りがあることを利用し、アクセス速度の高速な記憶媒体(たとえば、RAM(Random Access Memory)など。)に一時的にその情報をキャッシュして、アクセスを高速化する技術が提案されている。このような技術は、たとえば、以下の文献に開示されている。
特開2005−158819号公報
[特許文献1]の明細書段落0036には、CPU(Central Processing Unit)が備えるキャッシュ技術について開示されている。この技術では、RAMよりも高速なメモリであるCPUキャッシュに一旦データを入れることによって、繰返し処理などにおいて高速なアクセスを行う。
一方で、たとえば携帯型ゲーム装置においては、文字の形状をあらわすフォント情報や、キャラクターや背景をあらわす画像情報は、所定の大きさの断片画像情報として本体内のROMや、ROMカセット、外部ディスクなどの記録媒体などに記録され、これを適宜読み出して表示する画像を生成することとしており、画像生成の際には、一旦RAMに画像情報を読み出す必要があることが多い。これは、RAMに対するアドレス空間へのマッピングと、低速な記憶媒体に対するアドレス空間へのマッピングが異なるからである。
しかしながら、このような携帯型ゲーム装置等においては、RAMの容量が少ないことが多く、断片画像情報の読み出しの際には、特に効率良くRAMを再利用する必要がある。
一方で、表示する画像の生成には、通常のキャッシュ技術の場合とは異なり、一定時間おき(典型的には、垂直同期信号の周期ごと)に画像が生成されるという特殊な事情もある。
したがって、このような画像処理における特殊事情を考慮しつつ、高速なアクセスをできるだけ可能とするとともに、RAMの使用効率もできるだけ高くするような画像処理におけるキャッシュ技術が強く望まれている。
本発明は、上記のような課題を解決するもので、表示すべき画像を生成する際に、繰り返し使用される文字フォント等の断片画像を効率良くキャッシュするのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第1の観点に係る画像処理装置は、画像記憶部、一時記憶部、ソート部、キャッシュ部、画像生成部、繰返制御部を備え、以下のように構成する。
すなわち、画像記憶部は、識別符号に対応付けられる断片画像情報を複数あらかじめ記憶する。
典型的には、画像記憶部は内部ROM、ROMカセット、CD−ROM、ハードディスク等のアクセスが低速な記憶媒体で、メモリ空間に直接配置されないものであり、画像生成の際に断片画像情報を参照するときも、一旦RAMにその内容を読み込まなければならないようなものが該当する。
一方、一時記憶部は、画像記憶部に記憶された断片画像情報と、当該断片画像情報に対応付けられる識別符号と、当該断片画像情報を最後に使用した最終使用時刻と、の組を複数一時的に記憶する。
一時記憶部は、キャッシュメモリ用に用いられるもので、典型的にはRAMを用いるが、CPUが有するキャッシュメモリ空間をそのまま採用することも可能である。
さらに、ソート部は、一時記憶部に記憶される複数の組を、当該組の最終使用時刻によりソートする。
このようにソートすることによって、一時記憶部に記憶される組のうち、最も昔にアクセスされた(Least Recently Used)断片画像情報を記憶する組を、できるだけ早期に発見することができるようになる。
一方、キャッシュ部は、与えられた識別符号に対して、当該識別符号に対応付けられる断片画像情報を出力する。
本発明と一般的なRAMキャッシュと対比して考えると、識別符号がアドレスに、断片画像情報が当該アドレスに記憶される値に、それぞれ相当する。キャッシュ部の動作の詳細については、後述する。
一方、画像生成部は、キャッシュ部に識別符号を1つまたは複数与えることによってキャッシュ部から出力された1つまたは複数の断片画像情報により、画面に表示される画像を生成する。
一般に、画面に表示する一つの画像を作るためには、多数の断片画像情報が必要である。断片画像情報が文字フォントである場合には、使用される文字の頻度には偏りがあり、断片画像情報が背景やキャラクターの構成部品である場合には、背景に繰り返し模様が採用されることが多いことから、使用される断片画像情報には偏りがある。したがって、本発明のようなキャッシュを用いると処理の高速化が期待できる。
一方、繰返制御部は、画像生成部により画像が生成されるごとに、ソート部に一時記憶部に記憶される複数の組をソートさせる。
一般的なガーベージコレクションの技術では、メモリに空領域がなくなるとガーベージコレクションを実行し、一般的なキャッシュの技術では、キャッシュミスがあるとキャッシュメモリの更新を行うが、本発明ではさらに、画面に表示される画像が生成され(て、典型的には表示され)るごとに、ソート部により一時記憶部の組をソートする処理を別途行う。
典型的には、画像が生成されるタイミングは画面の垂直同期割込の周期ごとに訪れるため、ソート部によるソートも、この周期に合わせて実行されることになる。
また、画像の生成は、ある垂直同期の時点から次の垂直同期の時点の間となるので、画像の生成を始める段階では、一時記憶部はソート直後の状態で、組の最終使用時刻の順に並んでいるが、画像の生成を進めるうちに、その途中途中に、最終使用時刻の順序が狂っている部分が生じてくる。この順序が狂っている部分が「最近使用された組」である。
そして、キャッシュ部は、
(a)一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がある場合、当該一致する組を選択して、
(b)一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がない場合、一時記憶部に記憶される複数の組の中から当該組の最終使用時刻が最も古い組を選択して、画像記憶部から当該与えられた識別符号に対応付けられて記憶される断片画像情報を読み出し、当該選択された組の断片画像情報を当該読み出された断片画像情報に更新し、当該選択された組の識別符号を当該与えられた識別符号に更新する。
ここで選択された組が、一般的なキャッシュにおけるキャッシュミスが生じたアドレスに相当する部分であり、上記の処理によって「選択された組」には、与えられた識別符号と、当該識別符号に対する断片画像情報が記憶されることとなる。
さらに、キャッシュ部は、一時記憶部に記憶される複数の組の中からいずれかの組を選択した後に、当該選択された組の最終使用時刻を現在時刻に更新し、当該選択された組の断片画像情報を出力する。
これによって、画像生成部は、断片画像情報を参照できるようになるとともに、今回使用した旨の情報が反映されるため、次回のソートの際には、当該組が「より最近使用した組」の側に寄せられることになる。
本発明によれば、表示すべき画像を生成する際に、繰り返し使用される文字フォント等の断片画像を効率良くキャッシュすることができるようになる。
また、本発明の画像処理装置は、以下のように構成することができる。
すなわち、一時記憶部に記憶される組は、さらに、ソート部によりソートされた後に当該組の断片画像情報が使用されたか否かを示す使用フラグ情報を含む。
使用フラグ情報を採用するのは、キャッシュ部において「選択されるべき組」を探索する際の処理の簡易化を図るためである。
一方、ソート部は、一時記憶部に記憶される組を当該組の最終使用時刻が古い順にソートし、当該ソートの際に、当該組の使用フラグ情報をソート部によりソートされた後に当該組の断片画像情報が使用されていない旨を示すように更新する。
すなわち、使用フラグ情報は、ソート部によるソートが行われるごとに、すべてクリアされることとなる。
さらに、キャッシュ部は、断片画像情報を出力すべき組の使用フラグ情報を、ソート部によりソートされた後に当該組の断片画像情報が使用されている旨を示すように更新する。
すなわち、使用フラグ情報は、当該組が使用されるとセットされることとなる。
一方、キャッシュ部は、一時記憶部に記憶される複数の組の中に、当該組の識別符号が当該与えられた識別符号と一致するものがない場合、一時記憶部に記憶される複数の組をソートされた順に走査し、
(b1)当該組の使用フラグ情報がソート部によりソートされた後に当該組の断片画像情報が使用されていない旨を示す場合、当該組を、最終使用時刻が最も古い組として選択し、
(b2)すべての組の使用フラグ情報がソート部によりソートされた後に当該組の断片画像情報が使用されている旨を示す場合、当該一時記憶部に記憶される組を当該組の最終使用時刻が古い順に走査する際の先頭の組を、最終使用時刻が最も古い組として選択する。
上記のように、ソートの順は「新しい順」ではなく「古い順」であるから、使用フラグ情報がクリアされている(フラグが立っていない)組が初めて見つかれば、それが最終使用時刻が最も古い組、ということになる。
一方、すべての使用フラグ情報がセットされている(フラグが立っている)場合は、いずれの組の断片画像情報も今回の画像生成に使用されている、ということであるから、ある意味でどの組を上書きしても良いこととなる。そこで、「古い順」の「先頭の組」、すなわち、「前回のソートの直後に最終使用時刻が最も古いと判定された組」を、「最終使用時刻が最も古い組」の近似として選択する。
本発明は、上記発明の好適実施形態に係るものであり、キャッシュの中に含まれる組から、いずれの組を上書きするかを簡易な計算で容易に決定することができるようになる。
また、本発明の画像処理装置において、キャッシュ部は、一時記憶部に記憶された組がソート部によりソートされた後に、当該組の使用フラグ情報が、使用されていない旨を示す値から使用されている旨を示す値へ変化した回数をカウントし、繰返制御部は、画像生成部により画像が生成されるごとに、カウントされた回数が所定の閾値を超えていれば、ソート部に一時記憶部に記憶される複数の組をソートさせるように構成することができる。
本発明は、一時記憶部の容量が比較的大きい場合に好適で、ソート部によるソートの回数を低減させることができる。したがって、本発明によれば、処理時間のかかりやすいソートをできるだけ後に廻すことができるため、計算負担の低減が期待できる。
また、本発明の画像処理装置において、画像記憶部は、ROMもしくは外部情報記憶媒体により構成され、一時記憶部は、RAMにより構成され、画像生成部は、当該ROMに記憶される断片画像情報により当該画像を生成する際は、当該RAMに当該断片画像情報を一時的に記憶させることを要し、画像生成部は、垂直同期割込周期ごとに、当該画像を生成するように構成することができる。
本発明は上記発明の典型的な応用例に相当するものであり、たとえば携帯ゲーム装置のハードウェア上の制限の下で、本発明を適用することで、効率良く画像処理を行うことができるようになる。
また、本発明の画像処理装置において、当該識別符号は文字コードであり、当該断片画像情報は、当該文字コードを有する文字の形状を表すフォント情報であるように構成することができる。
本発明は上記発明の典型的な応用例に相当するものであり、一般に文字の使用の際には、ひらがなや登場するキャラクターの名前の文字などが頻繁に使用される傾向にあるため、キャッシュによる効果が大きいと考えられるので、本発明を適用することで、効率良く文字を表示する画像処理を行うことができるようになる。
本発明のその他の観点に係る画像処理方法は、画像記憶部、一時記憶部、ソート部、キャッシュ部、画像生成部、繰返制御部を備える画像処理装置にて実行され、画像記憶部には、識別符号に対応付けられる断片画像情報が複数あらかじめ記憶され、一時記憶部は、画像記憶部に記憶された断片画像情報と、当該断片画像情報に対応付けられる識別符号と、当該断片画像情報を最後に使用した最終使用時刻と、の組を複数一時的に記憶することができ、ソート工程、キャッシュ工程、画像生成工程、繰返制御工程を備え、以下のように構成する。
すなわち、ソート工程では、ソート部が、一時記憶部に記憶される複数の組を、当該組の最終使用時刻によりソートする。
一方、キャッシュ工程では、キャッシュ部が、与えられた識別符号に対して、当該識別符号に対応付けられる断片画像情報を出力する。
さらに、画像生成工程では、画像生成部が、キャッシュ工程にて、識別符号を1つまたは複数与えることによってキャッシュ工程から出力された1つまたは複数の断片画像情報により、画面に表示される画像を生成する。
そして、繰返制御工程では、繰返制御部が、画像生成工程にて画像が生成されるごとに、ソート工程にて一時記憶部に記憶される複数の組をソートさせる。
一方、キャッシュ工程では、
(a)一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がある場合、当該一致する組を選択して、
(b)一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がない場合、一時記憶部に記憶される複数の組の中から当該組の最終使用時刻が最も古い組を選択して、画像記憶部から当該与えられた識別符号に対応付けられて記憶される断片画像情報を読み出し、当該選択された組の断片画像情報を当該読み出された断片画像情報に更新し、当該選択された組の識別符号を当該与えられた識別符号に更新する。
さらに、キャッシュ工程では、一時記憶部に記憶される複数の組の中からいずれかの組を選択した後に、当該選択された組の最終使用時刻を現在時刻に更新し、当該選択された組の断片画像情報を出力する。
本発明のその他の観点に係るプログラムは、コンピュータを上記の画像処理装置として機能させ、コンピュータに上記の画像処理方法を実行させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
本発明によれば、表示すべき画像を生成する際に、繰り返し使用される文字フォント等の断片画像を効率良くキャッシュするのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
図1は、プログラムを実行することにより、本発明の画像処理装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
本情報処理装置101は、CPU(Central Processing Unit)102と、RAM(Random Access Memory)103と、ROM(Read Only Memory)104と、入力装置105と、画像処理部106と、液晶ディスプレイ107と、音声処理部108と、スピーカ109と、カセットリーダ110と、を備える。
CPU 102は、本情報処理装置101の各部の制御を行う。RAM 103の記憶域、ROM 104の記憶域、カセットリーダ110に挿入されたROMカセット111の記憶域は、いずれも、CPU 102が管理する1つのメモリ空間にマップされており、CPU 102は、それぞれの記憶域がマップされるアドレスを読み出せば、それぞれに記憶されている情報を取得することができる。また、RAM 103の記憶域には、書き込みも可能である。
このほか、CPU 102が画像処理部106や音声処理部108に対して各種の指示を行う際や、これらのほか、入力装置105から情報を取得する際の、窓口となるレジスタも、当該メモリ空間にマップされており、所定のアドレスにコマンドを表すデータ書き込みを行えば指示をすることができ、所定のアドレスからデータを読み出せば、情報を取得することができる。
情報処理装置101の電源が投入されると、CPU 102は、カセットリーダ110に挿入されたROMカセット111の記憶域がマップされたアドレスから開始されるプログラムを実行する。RAM 103は、一時的な記憶域として種々の目的に使用される。ROM 104には、情報処理装置101が提供するBIOS(Basic Input/Output System)ルーチンが記録されており、ROMカセット111内のプログラムから、適宜呼び出すことができる。
入力装置105は、方向を表す指示入力を受け付けるボタン、各種の操作を区別する指示入力を受け付けるボタンからの入力をメモリ空間にマップされたレジスタに反映させるほか、液晶ディスプレイ107の表面に貼り付けられたタッチパネルが押圧されているか否か、および押圧されているときのその座標の入力も受け付ける。
液晶ディスプレイ107は、画像処理部106によって管理される。メモリ空間にマップされたタイルを記憶するための記憶領域や、オブジェクト属性メモリを記憶するための記憶領域が用いられる。CPU 102が、計算により生成した値を書き込んだり、カセットリーダ110に挿入されたROMカセット111から一旦RAM 103に画像情報を転送し、その後に、RAM 103の転送先のアドレスを参照して画像処理部106に指示を出すことにより、液晶ディスプレイ107にスプライト画像が表示されることとなる。
このほか、液晶ディスプレイ107に表示される画像を画素単位で管理するフレームバッファを利用することもでき、液晶ディスプレイ107においてある色をある位置に表示したい場合には、フレームバッファ内のその位置に相当する場所にその色に相当する数値を書き込むと、適切なタイミングで液晶ディスプレイ107にビットマップ画像が表示される。
たとえば、16ビットカラー表示320×200ドットの液晶ディスプレイ107の場合、画素1つ分の色は2バイトで表現される。そこで、320×200個の要素(各2バイト)を持つ配列をフレームバッファとしてRAM 103内に用意し、当該配列の要素を1対1に液晶ディスプレイ107の画素に対応させる。当該配列の要素に色を表す16ビットの値を書き込み、適切なタイミングで(たとえば、垂直同期割り込みが発生する周期で)フレームバッファの内容を液晶ディスプレイ107に反映させるように、画像処理部106にて制御を行う。
これらの画像処理においては、スプライト画像やフォント情報として一定のサイズの断片画像情報を用意し、これらを1つまたは複数集めることにより、1つの文字や1人のキャラクター、共通する属性を有する背景の一部分の画像を生成することができるのである。
液晶ディスプレイ107の数は1つまたは複数とするのが一般的である。本実施形態では、複数の液晶ディスプレイが存在し、一方の液晶ディスプレイ107は表示専用とし、他方の液晶ディスプレイ107にはタッチパネルが貼り付けられている。
したがって、タッチペンでタッチパネルを押圧操作することにより、対応する液晶ディスプレイ107の位置を表す座標値が入力される。すなわち、タッチパネルと液晶ディスプレイ107とは一体となって、タッチスクリーンとして機能する。
なお、本情報処理装置101は、典型的な携帯ゲーム装置として利用されるものであるが、本発明の技術は、マウスおよびキーボードとCRT(Cathode Ray Tube)を用いて入力と出力を行うような汎用コンピュータで動作する各種のアプリケーションに適用することも可能であり、そのような実施形態も本発明の範囲に含まれる。
図2は、本実施形態に係る画像処理装置の概要構成を示す説明図である。以下、本図を参照して説明する。
本実施形態に係る画像処理装置201は、画像記憶部202、一時記憶部203、ソート部204、キャッシュ部205、画像生成部206、繰返制御部207を備える。
ここで、画像記憶部202は、識別符号に対応付けられる断片画像情報を複数あらかじめ記憶するものであり、本実施形態では、識別符号として文字コードを、断片画像情報として当該文字のフォント情報を、それぞれ採用する。
また、本実施形態では、これらのフォント情報は、ROMカセット111内に記憶されるため、ROMカセット111が画像記憶部202として機能する。
一方、一時記憶部203は、画像記憶部202に記憶された断片画像情報と、当該断片画像情報に対応付けられる識別符号と、当該断片画像情報を最後に使用した最終使用時刻と、の組を複数一時的に記憶する。なお本実施形態では、当該組に、使用フラグ情報を含めることとするが、適宜説明するように、使用フラグ情報を使用しなくとも、本実施形態と同様の効果を得ることが可能である。
一時記憶部203は、キャッシュメモリ用に用いられるもので、本実施形態では、RAM 103を用いる.したがって、RAM 103が一時記憶部203として機能する。
図3は、一時記憶部203の概要構成を示す説明図である。以下、本図を参照して説明する。
本実施形態では、一時記憶部203は、
組301のアドレスのアドレス配列(as)302と、
個々の組301が配置される組配列(ts)303と、
から構成されており、各組301には、
識別符号を記憶するための識別符号領域(code)311と、
断片画像情報を記憶するための断片画像情報領域(buffer)312と、
最後にその組の断片画像情報を使用した時刻を記憶するための最終使用時刻領域(time)313と、
最後にソートをした後にその組の断片画像情報を使用したか否かを記憶するための使用フラグ領域(flag)314と、
が用意されている。
本実施形態では、断片画像情報として文字フォントの情報を記憶するため、断片画像情報領域(buffer)312の大きさは自ずと等しいこととなる。各種のサイズが用いられるスプライト情報を本発明で利用する場合には、最も頻繁に用いられるスプライトのサイズや、ハードウェア的に効率良く表示ができる適当な画像サイズをbufferのサイズとして採用し、これより大きいものは適宜分割することとすれば良い。
本図に示す例では、アドレス配列(as)302と、組配列(ts)303とは、いずれもN個の要素を持っており、アドレス配列(as)302の各要素as[0],as[1],…,as[N-1]は、組配列(ts)303の各要素ts[0],ts[1],…,ts[N-1]のいずれかを重複なく指していることとなる。
そこで、C言語の慣習にならい、以下では、アドレス配列(as)302のi番目の要素as[i]が、組配列(ts)303のj番目の要素ts[j]を指すようにする設定処理を、
as[i] = &ts[j]
のように表記することとする。また、as[i]が指す組ts[j]の各要素は、
ts[j].code,ts[j].buffer,ts[j].time,ts[j].flag
のように、ピリオドを使用して参照するほか、
as[i]→code,as[i]→buffer,as[i]→time,as[i]→flag
のように矢印を使用して参照することとする。
本実施形態では、ソートの際の値の移動がアドレス配列(as)のみですむため、高速なソートが期待できる。
このほか、アドレス配列(as)302を使用しない態様も考えられる。この場合には、ソートの対象は組配列(ts)303となるが、ソートの高速化を図るため、bufferに直接断片画像情報を格納するのではなく、別途用意した断片画像情報を格納する領域のアドレスを格納することとすれば良い。
図4は、本実施形態における画像処理装置201にて実行される画像処理方法の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
本処理が開始されると、まず、CPU 102は、RAM 103にアクセスして、一時記憶部203の初期化を行う(ステップS401)。
具体的には、以下のような処理を行う。
すなわち、i = 0,1,…,N-1のそれぞれについて、
as[i] = &ts[i];
を実行する。
これにより、アドレス配列(as)302の各要素as[0],as[1],…,as[N-1]が、組配列(ts)303の各要素ts[0],ts[1],…,ts[N-1]のいずれかを重複なく指すこととなる。
さらにi = 0,1,…,N-1のそれぞれについて、
as[i]→code = 0;
as[i]→time = 0;
as[i]→flag = 0;
を実行する。これらはそれぞれ「表示される文字コードのいずれとも一致しない数値」「最も古い時刻」「まだ使用されていない」を意味する。
さらに、ソート部204は、アドレス配列(as)302の各要素as[0],as[1],…,as[N-1]を、最終使用時刻as[0]→time,as[1]→time,…,as[N-1]→timeを鍵にソートする(ステップS421)。当該ソートにより、アドレス配列(as)302の各要素は、最終使用時刻が古い順に整列されることになる。
そして、ソート部204は、i = 0,1,…,N-1のそれぞれについて、
as→flag = 0;
を実行する(ステップS422)。すなわち、すべての組301について使用フラグをクリアする。
なお、当該ソートと使用フラグのクリアは、ステップS401の直後であれば省略することができるが、以下の説明の理解を容易にするため、ここで説明するものである。
したがって、CPU 102は、RAM 103と共働して、ソート部204として機能する。
次に、画像生成部206は、所定の画像生成アルゴリズムにより、必要な断片画像情報をすべて処理するまで、以下の処理を繰り返す(ステップS402〜)。必要な断片画像情報をすべて処理する、とは、たとえば、「画面に表示する文字の文字フォントをすべて処理して画面に表示される画像を生成する」ことに相当する。画面に表示する文字は、たとえば現在のゲームの状況や他のユーザの状況、ゲームをプレイしているプレイヤーからの指示入力によって適宜変更される。
まず、キャッシュ部205に、次に必要な断片画像情報の識別符号、すなわち、文字フォントの文字コードを与える(ステップS403)。ここで与えられた文字コードをxとする。
すると、キャッシュ部205は、RAM 103に用意されたカウンタ変数iを用い、i = 0,1,…,N-1のそれぞれについて(ステップS404〜)、as[i]→codeがxに等しいか否かを判定する(ステップS405)。なお、等しいこととそうでないことは、C言語の慣習にならい、「==」「!=」を用い、それぞれas[i]→code == xあるいはas[i]→code != xのように記載することとする。
as[i]→code == xであれば(ステップS405;Yes)、ステップS404から開始されるループを抜けて、as[i]→timeに現在時刻を設定し、as[i]→flagのビットを立てる(ステップS406)。
現在時刻の取得方法については、情報処理装置101が持つリアルタイムクロックの値を採用しても良いし、垂直同期割込やタイマ割込が発生するたびにインクリメントされるカウンタをあらかじめ用意しておき、当該カウンタの値を採用することとしても良い。
そして、as[i]→bufferを次に必要な断片画像情報として画像生成部206に出力する(ステップS407)。
すると、画像生成部206は、RAM 103内に用意された画像バッファに断片画像情報as[i]→bufferに基づく断片画像を描画する(ステップS408)。上記のように、本実施形態では、as[i]→bufferは、文字コードxに対する文字フォント情報であるから、所定のアルゴリズムで決定される位置に当該文字フォントを出力することとなる。
したがって、CPU 102は、RAM 103や画像処理部106と共働して、画像生成部206として機能する。
そして、ステップS402から開始される繰り返しを続ける(ステップS409)。
一方、i = 0,1,…,N-1のすべてについてas[i]→code != xであるために(ステップS405;No)、ステップS404から開始されるループを途中で抜けることがなく、繰り返し(ステップS410)を最後まで行った場合には、所望の文字コードに対する文字フォントが一時記憶部203内にロードされていないこととなる。したがって、当該文字フォントを画像記憶部202から一時記憶部203にロードすること必要がある。そこで、上書きすべき組301を選択しなければならない。
そのため、キャッシュ部205は、当該カウンタ変数iを用い、i = 0,1,…,N-1のそれぞれについて順に(ステップS411〜)、as[i]→flag == 0であるか否かを調べる(ステップS412)。
as[i]→flag == 0であれば(ステップS412;Yes)、ステップS411から開始されるループを抜ける。すなわち、線形探索によってアドレス配列asを走査し、当該as[i]に指される組301を上書きする組として選択したことになる。
そして、画像記憶部202から文字コードxの文字フォントを読み出してas[i]→bufferに格納し(ステップS413)、as[i]→code = xを実行して(ステップS414)、ステップS406に進む。
一方、i = 0,1,…,N-1のすべてについてas[i]→flag != 0であるために(ステップS412;No)、繰り返し(ステップS415)を最後まで行った場合には、一時記憶部203内のいずれの組301も最近(すなわち、前回のソート以降に)使用されたこととなるから、いずれの組301を選択しても良いが、本実施形態では、当該カウンタ変数iに対してi = 0として(ステップS416)、as[0]に指される組301を選択する。すなわち、前回のソートの直後に最終使用時刻が最も古かった組を、上書きする組とするのである。そして、ステップS413に進む。
このように、CPU 102は、RAM 103やROMカセット111と共働して、キャッシュ部205として機能する。
さて、今回の画像生成において必要な文字フォントのすべての処理が終了すると(ステップS409)、CPU 102は、垂直同期割込が生じるまで待機する(ステップS416)。この「待機」の間には、他の処理を適宜実行することが可能である。
垂直同期割込が生じたら、CPU 102は、画像バッファに格納されている画像を実際に液晶ディスプレイ107に表示するように画像処理部106に指示を出して(ステップS417)、ステップS421に戻り、一時記憶部203をソート部204にソートさせる。したがって、CPU 102は、繰返制御部207として機能する。
このようにソートすることによって、一時記憶部203に記憶される組301のうち、最も昔にアクセスされた(Least Recently Used)断片画像情報を記憶する組301を、できるだけ早期に発見することができるようになる。
なお、各配列の添字については、ソートの方向に合わせて本実施形態と逆順にしても良いし、走査の方向を逆にしても良い。
本実施形態によれば、RAM 103の利用効率をあげて、ROMカセット111から文字フォントを読み出して、液晶ディスプレイ107に文字を表示する画像処理を行うことができるようになる。
実施例1において、ステップS417の後、直ちにステップS421に戻るのではない手法もありうる。
すなわち、ステップS406においてas[i]→flagのビットを立てる際に、当該ビットを立てることで、as[i]→flagの値が反転した回数を、RAM 103内に用意した変数領域revにカウントする。
ステップS417の後に、revの値がNに近いか否かを判定する。近いか否か、とは、たとえば、revの値がNの7割を超えているか否か、により判定できる。この閾値となる割合「7割」の値は適宜変更が可能であるが、5割以上9割以下の閾値を採用することが典型的である。
そして、revの値がNに近い場合は、キャッシュ内に空きが少ないのでステップS421に戻るが、そうでない場合は、キャッシュ内に空きが多いのでステップS403に戻る、とするのである。
そして、ステップS421、S422にてソートが終了した後に、変数revの値を0にクリアする。
本手法は、一時記憶部203の容量が比較的大きい場合に、ソート回数を減らすのに有効である。
実施例1、2では、使用フラグflagを参照することで上書きする組301を選択していたが、これを使用しない手法もありうる。
まず、ステップS421、S422にてソートが終了した後に、RAM 103内に用意した最終ソート時刻変数領域lastに現在時刻を格納する。
そして、ステップS412における判断を「as[i]→flag == 0であるか否か」から、「as[i]→time < lastであるか否か」に変更するのである。
今回の画像生成において使用された組については、ステップS406においてas[i]→timeにソート時点より後の時刻が格納されるから、「as[i]→time > last」が成立するはずである。
一方、as[0],as[1],…,as[N-1]は、ソート直後では最終使用時刻の古い順に並んでいるから、この中から今回の画像生成において使用されていない組だけを選んでも、やはり最終使用時刻の古い順に並ぶことになる。
したがって、i = 0,1,…,N-1の順に走査したときに、初めて見つかった「as[i]→time < last」が成立するものを、上書きすべき組として選択するのである。
本手法によれば、使用フラグを使用せずに上記実施形態と同様の効果を得ることができる。
以上説明したように、本発明によれば、表示すべき画像を生成する際に、繰り返し使用される文字フォント等の断片画像を効率良くキャッシュするのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
プログラムを実行することにより、本発明の画像処理装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。 本実施形態に係る画像処理装置の概要構成を示す説明図である。 一時記憶部の概要構成を示す説明図である。 本実施形態における画像処理装置にて実行される画像処理方法の制御の流れを示すフローチャートである。
符号の説明
101 情報処理装置
102 CPU
103 RAM
104 ROM
105 入力装置
106 画像処理部
107 液晶ディスプレイ
108 音声処理部
109 スピーカ
110 カセットリーダ
111 ROMカセット
201 画像処理装置
202 画像記憶部
203 一時記憶部
204 ソート部
205 キャッシュ部
206 画像生成部
207 繰返制御部
301 組
302 アドレス配列
303 組配列
311 識別符号領域
312 画像情報領域
313 最終使用時刻領域
314 使用フラグ領域

Claims (7)

  1. 識別符号に対応付けられる断片画像情報を複数あらかじめ記憶する画像記憶部、
    前記画像記憶部に記憶された断片画像情報と、当該断片画像情報に対応付けられる識別符号と、当該断片画像情報を最後に使用した最終使用時刻と、の組を複数一時的に記憶する一時記憶部、
    前記一時記憶部に記憶される複数の組を、当該組の最終使用時刻によりソートするソート部、
    与えられた識別符号に対して、当該識別符号に対応付けられる断片画像情報を出力するキャッシュ部、
    前記キャッシュ部に識別符号を1つまたは複数与えることによって前記キャッシュ部から出力された1つまたは複数の断片画像情報により、画面に表示される画像を生成する画像生成部、
    前記画像生成部により画像が生成されるごとに、前記ソート部に前記一時記憶部に記憶される複数の組をソートさせる繰返制御部
    を備え、
    前記キャッシュ部は、
    (a)前記一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がある場合、当該一致する組を選択して、
    (b)前記一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がない場合、前記一時記憶部に記憶される複数の組の中から当該組の最終使用時刻が最も古い組を選択して、前記画像記憶部から当該与えられた識別符号に対応付けられて記憶される断片画像情報を読み出し、当該選択された組の断片画像情報を当該読み出された断片画像情報に更新し、当該選択された組の識別符号を当該与えられた識別符号に更新し、
    前記キャッシュ部は、前記一時記憶部に記憶される複数の組の中からいずれかの組を選択した後に、当該選択された組の最終使用時刻を現在時刻に更新し、当該選択された組の断片画像情報を出力する
    ことを特徴とする画像処理装置。
  2. 請求項1に記載の画像処理装置であって、
    前記一時記憶部に記憶される組は、さらに、前記ソート部によりソートされた後に当該組の断片画像情報が使用されたか否かを示す使用フラグ情報を含み、
    前記ソート部は、前記一時記憶部に記憶される組を当該組の最終使用時刻が古い順にソートし、当該ソートの際に、当該組の使用フラグ情報を前記ソート部によりソートされた後に当該組の断片画像情報が使用されていない旨を示すように更新し、
    前記キャッシュ部は、断片画像情報を出力すべき組の使用フラグ情報を、前記ソート部によりソートされた後に当該組の断片画像情報が使用されている旨を示すように更新し、
    前記キャッシュ部は、前記一時記憶部に記憶される複数の組の中に、当該組の識別符号が当該与えられた識別符号と一致するものがない場合、前記一時記憶部に記憶される複数の組を前記ソートされた順に走査し、
    (b1)当該組の使用フラグ情報が前記ソート部によりソートされた後に当該組の断片画像情報が使用されていない旨を示す場合、当該組を、最終使用時刻が最も古い組として選択し、
    (b2)すべての組の使用フラグ情報が前記ソート部によりソートされた後に当該組の断片画像情報が使用されている旨を示す場合、当該一時記憶部に記憶される組を当該組の最終使用時刻が古い順に走査する際の先頭の組を、最終使用時刻が最も古い組として選択する
    ことを特徴とする画像処理装置。
  3. 請求項2に記載の画像処理装置であって、
    前記キャッシュ部は、前記一時記憶部に記憶された組が前記ソート部によりソートされた後に、当該組の使用フラグ情報が、使用されていない旨を示す値から使用されている旨を示す値へ変化した回数をカウントし、
    前記繰返制御部は、前記画像生成部により画像が生成されるごとに、前記カウントされた回数が所定の閾値を超えていれば、前記ソート部に前記一時記憶部に記憶される複数の組をソートさせる
    ことを特徴とする画像処理装置。
  4. 請求項1から3のいずれか1項に記載の画像処理装置であって、
    前記画像記憶部は、ROM(Read Only Memory)もしくは外部情報記憶媒体により構成され、前記一時記憶部は、RAM(Random Access Memory)により構成され、
    前記画像生成部は、当該ROMに記憶される断片画像情報により当該画像を生成する際は、当該RAMに当該断片画像情報を一時的に記憶させることを要し、
    前記画像生成部は、垂直同期割込周期ごとに、当該画像を生成する
    ことを特徴とする画像処理装置。
  5. 請求項1から4のいずれか1項に記載の画像処理装置であって、
    当該識別符号は文字コードであり、当該断片画像情報は、当該文字コードを有する文字の形状を表すフォント情報である
    ことを特徴とする画像処理装置。
  6. 画像記憶部、一時記憶部、ソート部、キャッシュ部、画像生成部、繰返制御部を備える画像処理装置にて実行される画像処理方法であって、
    前記画像記憶部には、識別符号に対応付けられる断片画像情報が複数あらかじめ記憶され、
    前記一時記憶部は、前記画像記憶部に記憶された断片画像情報と、当該断片画像情報に対応付けられる識別符号と、当該断片画像情報を最後に使用した最終使用時刻と、の組を複数一時的に記憶することができ、
    前記ソート部が、一時記憶部に記憶される複数の組を、当該組の最終使用時刻によりソートするソート工程、
    前記キャッシュ部が、与えられた識別符号に対して、当該識別符号に対応付けられる断片画像情報を出力するキャッシュ工程、
    前記画像生成部が、前記キャッシュ工程にて、識別符号を1つまたは複数与えることによって前記キャッシュ工程から出力された1つまたは複数の断片画像情報により、画面に表示される画像を生成する画像生成工程、
    前記繰返制御部が、前記画像生成工程にて画像が生成されるごとに、前記ソート工程にて前記一時記憶部に記憶される複数の組をソートさせる繰返制御工程
    を備え、
    前記キャッシュ工程では、
    (a)前記一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がある場合、当該一致する組を選択して、
    (b)前記一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がない場合、前記一時記憶部に記憶される複数の組の中から当該組の最終使用時刻が最も古い組を選択して、前記画像記憶部から当該与えられた識別符号に対応付けられて記憶される断片画像情報を読み出し、当該選択された組の断片画像情報を当該読み出された断片画像情報に更新し、当該選択された組の識別符号を当該与えられた識別符号に更新し、
    前記キャッシュ工程では、前記一時記憶部に記憶される複数の組の中からいずれかの組を選択した後に、当該選択された組の最終使用時刻を現在時刻に更新し、当該選択された組の断片画像情報を出力する
    ことを特徴とする画像処理方法。
  7. コンピュータを、
    識別符号に対応付けられる断片画像情報を複数あらかじめ記憶する画像記憶部、
    前記画像記憶部に記憶された断片画像情報と、当該断片画像情報に対応付けられる識別符号と、当該断片画像情報を最後に使用した最終使用時刻と、の組を複数一時的に記憶する一時記憶部、
    前記一時記憶部に記憶される複数の組を、当該組の最終使用時刻によりソートするソート部、
    与えられた識別符号に対して、当該識別符号に対応付けられる断片画像情報を出力するキャッシュ部、
    前記キャッシュ部に識別符号を1つまたは複数与えることによって前記キャッシュ部から出力された1つまたは複数の断片画像情報により、画面に表示される画像を生成する画像生成部、
    前記画像生成部により画像が生成されるごとに、前記ソート部に前記一時記憶部に記憶される複数の組をソートさせる繰返制御部
    として機能させ、当該コンピュータにおいて、
    前記キャッシュ部は、
    (a)前記一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がある場合、当該一致する組を選択して、
    (b)前記一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がない場合、前記一時記憶部に記憶される複数の組の中から当該組の最終使用時刻が最も古い組を選択して、前記画像記憶部から当該与えられた識別符号に対応付けられて記憶される断片画像情報を読み出し、当該選択された組の断片画像情報を当該読み出された断片画像情報に更新し、当該選択された組の識別符号を当該与えられた識別符号に更新し、
    前記キャッシュ部は、前記一時記憶部に記憶される複数の組の中からいずれかの組を選択した後に、当該選択された組の最終使用時刻を現在時刻に更新し、当該選択された組の断片画像情報を出力する
    ように機能させることを特徴とするプログラム。
JP2006251541A 2006-09-15 2006-09-15 画像処理装置、画像処理方法、ならびに、プログラム Active JP4343204B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006251541A JP4343204B2 (ja) 2006-09-15 2006-09-15 画像処理装置、画像処理方法、ならびに、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006251541A JP4343204B2 (ja) 2006-09-15 2006-09-15 画像処理装置、画像処理方法、ならびに、プログラム

Publications (2)

Publication Number Publication Date
JP2008071286A JP2008071286A (ja) 2008-03-27
JP4343204B2 true JP4343204B2 (ja) 2009-10-14

Family

ID=39292788

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006251541A Active JP4343204B2 (ja) 2006-09-15 2006-09-15 画像処理装置、画像処理方法、ならびに、プログラム

Country Status (1)

Country Link
JP (1) JP4343204B2 (ja)

Also Published As

Publication number Publication date
JP2008071286A (ja) 2008-03-27

Similar Documents

Publication Publication Date Title
US8724914B2 (en) Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files
US6911983B2 (en) Double-buffering of pixel data using copy-on-write semantics
JP4280270B2 (ja) 幾何プリミティブのインデックスを外す方法、ラスタ化装置、コンピュータ可読媒体
JP4076502B2 (ja) ゾーン・レンダリングのための効率的なグラフィックス状態管理
US10545868B2 (en) Managing display data
US8508551B1 (en) Rendering changed portions of composited images
JPH0355832B2 (ja)
WO2024187347A1 (zh) 可实时排序多个图元的图像处理方法和系统及电子设备
JP4343204B2 (ja) 画像処理装置、画像処理方法、ならびに、プログラム
JP3045359B2 (ja) 画像処理装置
JPH0561405A (ja) 図中名称表示装置
JP2006133114A (ja) 波形表示装置
JPH0398169A (ja) 対話型cadの複数要素の特徴一括変更システム
JP3835287B2 (ja) ビットマップデータ処理方式、ビットマップデータ処理方法およびビットマップデータ処理用プログラム
JPH06289838A (ja) フォントキャッシュ制御装置およびその適用方法
JP2000357242A (ja) 固定サイズテーブルのインデックス装置及び固定サイズテーブルをインデックスする方法
JP2504867B2 (ja) 文章処理装置における表示方式
JP2002132235A (ja) Cadデータ表示装置、方法及びコンピュータ読み取り可能な記録媒体
JPH1039853A (ja) 段階的文字表示装置
JPH0417082A (ja) グラフィック表示装置における画素情報蓄積方式
JPH05119764A (ja) 回路設計データの描画方法
JPH09245194A (ja) 画像処理装置
JPS5975285A (ja) 表示画面分割制御方式
JPH0679215B2 (ja) 動画表示制御装置
JPH11184456A (ja) 描画表示方法および装置とナビゲーションシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090701

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090708

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4343204

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130717

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130717

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140717

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250