(57)【要約】 【課題】表示すべき画像を生成する際に、繰り返し使用される文字フォント等の断片画像を効率良くキャッシュする画像処理装置等を提供する。【解決手段】画像処理装置２０１においてキャッシュ部２０５は、画像生成部２０６から与えられた識別符号に対する断片画像情報を画像記憶部２０２から読み出して一時記憶部２０３にキャッシュし、画像生成部２０６に出力し、画像生成部２０６は得られた断片画像情報により表示すべき画像を生成し、当該画像が完成すると、繰返制御部２０７がソート部２０４に、一時記憶部２０３の内容を最後に当該断片画像情報が使用された時刻に基づいてソートさせ、一時記憶部２０３がいっぱいになったときにキャッシュ部２０５が上書きする場所を線形探索で早期に発見できるようにする。【選択図】図２
2008071286.tif 000002
【特許請求の範囲】
【請求項１】
識別符号に対応付けられる断片画像情報を複数あらかじめ記憶する画像記憶部、
前記画像記憶部に記憶された断片画像情報と、当該断片画像情報に対応付けられる識別符号と、当該断片画像情報を最後に使用した最終使用時刻と、の組を複数一時的に記憶する一時記憶部、
前記一時記憶部に記憶される複数の組を、当該組の最終使用時刻によりソートするソート部、
与えられた識別符号に対して、当該識別符号に対応付けられる断片画像情報を出力するキャッシュ部、
前記キャッシュ部に識別符号を１つまたは複数与えることによって前記キャッシュ部から出力された１つまたは複数の断片画像情報により、画面に表示される画像を生成する画像生成部、
前記画像生成部により画像が生成されるごとに、前記ソート部に前記一時記憶部に記憶される複数の組をソートさせる繰返制御部
を備え、
前記キャッシュ部は、
（ａ）前記一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がある場合、当該一致する組を選択して、
（ｂ）前記一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がない場合、前記一時記憶部に記憶される複数の組の中から当該組の最終使用時刻が最も古い組を選択して、前記画像記憶部から当該与えられた識別符号に対応付けられて記憶される断片画像情報を読み出し、当該選択された組の断片画像情報を当該読み出された断片画像情報に更新し、当該選択された組の識別符号を当該与えられた識別符号に更新し、
前記キャッシュ部は、前記一時記憶部に記憶される複数の組の中からいずれかの組を選択した後に、当該選択された組の最終使用時刻を現在時刻に更新し、当該選択された組の断片画像情報を出力する
ことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記一時記憶部に記憶される組は、さらに、前記ソート部によりソートされた後に当該組の断片画像情報が使用されたか否かを示す使用フラグ情報を含み、
前記ソート部は、前記一時記憶部に記憶される組を当該組の最終使用時刻が古い順にソートし、当該ソートの際に、当該組の使用フラグ情報を前記ソート部によりソートされた後に当該組の断片画像情報が使用されていない旨を示すように更新し、
前記キャッシュ部は、断片画像情報を出力すべき組の使用フラグ情報を、前記ソート部によりソートされた後に当該組の断片画像情報が使用されている旨を示すように更新し、
前記キャッシュ部は、前記一時記憶部に記憶される複数の組の中に、当該組の識別符号が当該与えられた識別符号と一致するものがない場合、前記一時記憶部に記憶される複数の組を前記ソートされた順に走査し、
（ｂ１）当該組の使用フラグ情報が前記ソート部によりソートされた後に当該組の断片画像情報が使用されていない旨を示す場合、当該組を、最終使用時刻が最も古い組として選択し、
（ｂ２）すべての組の使用フラグ情報が前記ソート部によりソートされた後に当該組の断片画像情報が使用されている旨を示す場合、当該一時記憶部に記憶される組を当該組の最終使用時刻が古い順に走査する際の先頭の組を、最終使用時刻が最も古い組として選択する
ことを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
前記キャッシュ部は、前記一時記憶部に記憶された組が前記ソート部によりソートされた後に、当該組の使用フラグ情報が、使用されていない旨を示す値から使用されている旨を示す値へ変化した回数をカウントし、
前記繰返制御部は、前記画像生成部により画像が生成されるごとに、前記カウントされた回数が所定の閾値を超えていれば、前記ソート部に前記一時記憶部に記憶される複数の組をソートさせる
ことを特徴とする画像処理装置。
【請求項４】
請求項１から３のいずれか１項に記載の画像処理装置であって、
前記画像記憶部は、ＲＯＭ（Read Only Memory）もしくは外部情報記憶媒体により構成され、前記一時記憶部は、ＲＡＭ（Random Access Memory）により構成され、
前記画像生成部は、当該ＲＯＭに記憶される断片画像情報により当該画像を生成する際は、当該ＲＡＭに当該断片画像情報を一時的に記憶させることを要し、
前記画像生成部は、垂直同期割込周期ごとに、当該画像を生成する
ことを特徴とする画像処理装置。
【請求項５】
請求項１から４のいずれか１項に記載の画像処理装置であって、
当該識別符号は文字コードであり、当該断片画像情報は、当該文字コードを有する文字の形状を表すフォント情報である
ことを特徴とする画像処理装置。
【請求項６】
画像記憶部、一時記憶部、ソート部、キャッシュ部、画像生成部、繰返制御部を備える画像処理装置にて実行される画像処理方法であって、
前記画像記憶部には、識別符号に対応付けられる断片画像情報が複数あらかじめ記憶され、
前記一時記憶部は、前記画像記憶部に記憶された断片画像情報と、当該断片画像情報に対応付けられる識別符号と、当該断片画像情報を最後に使用した最終使用時刻と、の組を複数一時的に記憶することができ、
前記ソート部が、一時記憶部に記憶される複数の組を、当該組の最終使用時刻によりソートするソート工程、
前記キャッシュ部が、与えられた識別符号に対して、当該識別符号に対応付けられる断片画像情報を出力するキャッシュ工程、
前記画像生成部が、前記キャッシュ工程にて、識別符号を１つまたは複数与えることによって前記キャッシュ工程から出力された１つまたは複数の断片画像情報により、画面に表示される画像を生成する画像生成工程、
前記繰返制御部が、前記画像生成工程にて画像が生成されるごとに、前記ソート工程にて前記一時記憶部に記憶される複数の組をソートさせる繰返制御工程
を備え、
前記キャッシュ工程では、
（ａ）前記一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がある場合、当該一致する組を選択して、
（ｂ）前記一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がない場合、前記一時記憶部に記憶される複数の組の中から当該組の最終使用時刻が最も古い組を選択して、前記画像記憶部から当該与えられた識別符号に対応付けられて記憶される断片画像情報を読み出し、当該選択された組の断片画像情報を当該読み出された断片画像情報に更新し、当該選択された組の識別符号を当該与えられた識別符号に更新し、
前記キャッシュ工程では、前記一時記憶部に記憶される複数の組の中からいずれかの組を選択した後に、当該選択された組の最終使用時刻を現在時刻に更新し、当該選択された組の断片画像情報を出力する
ことを特徴とする画像処理方法。
【請求項７】
コンピュータを、
識別符号に対応付けられる断片画像情報を複数あらかじめ記憶する画像記憶部、
前記画像記憶部に記憶された断片画像情報と、当該断片画像情報に対応付けられる識別符号と、当該断片画像情報を最後に使用した最終使用時刻と、の組を複数一時的に記憶する一時記憶部、
前記一時記憶部に記憶される複数の組を、当該組の最終使用時刻によりソートするソート部、
与えられた識別符号に対して、当該識別符号に対応付けられる断片画像情報を出力するキャッシュ部、
前記キャッシュ部に識別符号を１つまたは複数与えることによって前記キャッシュ部から出力された１つまたは複数の断片画像情報により、画面に表示される画像を生成する画像生成部、
前記画像生成部により画像が生成されるごとに、前記ソート部に前記一時記憶部に記憶される複数の組をソートさせる繰返制御部
として機能させ、当該コンピュータにおいて、
前記キャッシュ部は、
（ａ）前記一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がある場合、当該一致する組を選択して、
（ｂ）前記一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がない場合、前記一時記憶部に記憶される複数の組の中から当該組の最終使用時刻が最も古い組を選択して、前記画像記憶部から当該与えられた識別符号に対応付けられて記憶される断片画像情報を読み出し、当該選択された組の断片画像情報を当該読み出された断片画像情報に更新し、当該選択された組の識別符号を当該与えられた識別符号に更新し、
前記キャッシュ部は、前記一時記憶部に記憶される複数の組の中からいずれかの組を選択した後に、当該選択された組の最終使用時刻を現在時刻に更新し、当該選択された組の断片画像情報を出力する
ように機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示すべき画像を生成する際に、繰り返し使用される文字フォント等の断片画像を効率良くキャッシュするのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、アクセス速度の低速な記憶媒体（たとえば、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）など。）から各種の情報を読み出す際に、情報の使用頻度に偏りがあることを利用し、アクセス速度の高速な記憶媒体（たとえば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）など。）に一時的にその情報をキャッシュして、アクセスを高速化する技術が提案されている。このような技術は、たとえば、以下の文献に開示されている。
【特許文献１】特開２００５−１５８８１９号公報
【０００３】
[特許文献１]の明細書段落００３６には、ＣＰＵ（Central Processing Unit）が備えるキャッシュ技術について開示されている。この技術では、ＲＡＭよりも高速なメモリであるＣＰＵキャッシュに一旦データを入れることによって、繰返し処理などにおいて高速なアクセスを行う。
【０００４】
一方で、たとえば携帯型ゲーム装置においては、文字の形状をあらわすフォント情報や、キャラクターや背景をあらわす画像情報は、所定の大きさの断片画像情報として本体内のＲＯＭや、ＲＯＭカセット、外部ディスクなどの記録媒体などに記録され、これを適宜読み出して表示する画像を生成することとしており、画像生成の際には、一旦ＲＡＭに画像情報を読み出す必要があることが多い。これは、ＲＡＭに対するアドレス空間へのマッピングと、低速な記憶媒体に対するアドレス空間へのマッピングが異なるからである。
【０００５】
しかしながら、このような携帯型ゲーム装置等においては、ＲＡＭの容量が少ないことが多く、断片画像情報の読み出しの際には、特に効率良くＲＡＭを再利用する必要がある。
【０００６】
一方で、表示する画像の生成には、通常のキャッシュ技術の場合とは異なり、一定時間おき（典型的には、垂直同期信号の周期ごと）に画像が生成されるという特殊な事情もある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、このような画像処理における特殊事情を考慮しつつ、高速なアクセスをできるだけ可能とするとともに、ＲＡＭの使用効率もできるだけ高くするような画像処理におけるキャッシュ技術が強く望まれている。
【０００８】
本発明は、上記のような課題を解決するもので、表示すべき画像を生成する際に、繰り返し使用される文字フォント等の断片画像を効率良くキャッシュするのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１０】
本発明の第１の観点に係る画像処理装置は、画像記憶部、一時記憶部、ソート部、キャッシュ部、画像生成部、繰返制御部を備え、以下のように構成する。
【００１１】
すなわち、画像記憶部は、識別符号に対応付けられる断片画像情報を複数あらかじめ記憶する。
【００１２】
典型的には、画像記憶部は内部ＲＯＭ、ＲＯＭカセット、ＣＤ−ＲＯＭ、ハードディスク等のアクセスが低速な記憶媒体で、メモリ空間に直接配置されないものであり、画像生成の際に断片画像情報を参照するときも、一旦ＲＡＭにその内容を読み込まなければならないようなものが該当する。
【００１３】
一方、一時記憶部は、画像記憶部に記憶された断片画像情報と、当該断片画像情報に対応付けられる識別符号と、当該断片画像情報を最後に使用した最終使用時刻と、の組を複数一時的に記憶する。
【００１４】
一時記憶部は、キャッシュメモリ用に用いられるもので、典型的にはＲＡＭを用いるが、ＣＰＵが有するキャッシュメモリ空間をそのまま採用することも可能である。
【００１５】
さらに、ソート部は、一時記憶部に記憶される複数の組を、当該組の最終使用時刻によりソートする。
【００１６】
このようにソートすることによって、一時記憶部に記憶される組のうち、最も昔にアクセスされた（Least Recently Used）断片画像情報を記憶する組を、できるだけ早期に発見することができるようになる。
【００１７】
一方、キャッシュ部は、与えられた識別符号に対して、当該識別符号に対応付けられる断片画像情報を出力する。
【００１８】
本発明と一般的なＲＡＭキャッシュと対比して考えると、識別符号がアドレスに、断片画像情報が当該アドレスに記憶される値に、それぞれ相当する。キャッシュ部の動作の詳細については、後述する。
【００１９】
一方、画像生成部は、キャッシュ部に識別符号を１つまたは複数与えることによってキャッシュ部から出力された１つまたは複数の断片画像情報により、画面に表示される画像を生成する。
【００２０】
一般に、画面に表示する一つの画像を作るためには、多数の断片画像情報が必要である。断片画像情報が文字フォントである場合には、使用される文字の頻度には偏りがあり、断片画像情報が背景やキャラクターの構成部品である場合には、背景に繰り返し模様が採用されることが多いことから、使用される断片画像情報には偏りがある。したがって、本発明のようなキャッシュを用いると処理の高速化が期待できる。
【００２１】
一方、繰返制御部は、画像生成部により画像が生成されるごとに、ソート部に一時記憶部に記憶される複数の組をソートさせる。
【００２２】
一般的なガーベージコレクションの技術では、メモリに空領域がなくなるとガーベージコレクションを実行し、一般的なキャッシュの技術では、キャッシュミスがあるとキャッシュメモリの更新を行うが、本発明ではさらに、画面に表示される画像が生成され（て、典型的には表示され）るごとに、ソート部により一時記憶部の組をソートする処理を別途行う。
【００２３】
典型的には、画像が生成されるタイミングは画面の垂直同期割込の周期ごとに訪れるため、ソート部によるソートも、この周期に合わせて実行されることになる。
【００２４】
また、画像の生成は、ある垂直同期の時点から次の垂直同期の時点の間となるので、画像の生成を始める段階では、一時記憶部はソート直後の状態で、組の最終使用時刻の順に並んでいるが、画像の生成を進めるうちに、その途中途中に、最終使用時刻の順序が狂っている部分が生じてくる。この順序が狂っている部分が「最近使用された組」である。
【００２５】
そして、キャッシュ部は、
（ａ）一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がある場合、当該一致する組を選択して、
（ｂ）一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がない場合、一時記憶部に記憶される複数の組の中から当該組の最終使用時刻が最も古い組を選択して、画像記憶部から当該与えられた識別符号に対応付けられて記憶される断片画像情報を読み出し、当該選択された組の断片画像情報を当該読み出された断片画像情報に更新し、当該選択された組の識別符号を当該与えられた識別符号に更新する。
【００２６】
ここで選択された組が、一般的なキャッシュにおけるキャッシュミスが生じたアドレスに相当する部分であり、上記の処理によって「選択された組」には、与えられた識別符号と、当該識別符号に対する断片画像情報が記憶されることとなる。
【００２７】
さらに、キャッシュ部は、一時記憶部に記憶される複数の組の中からいずれかの組を選択した後に、当該選択された組の最終使用時刻を現在時刻に更新し、当該選択された組の断片画像情報を出力する。
【００２８】
これによって、画像生成部は、断片画像情報を参照できるようになるとともに、今回使用した旨の情報が反映されるため、次回のソートの際には、当該組が「より最近使用した組」の側に寄せられることになる。
【００２９】
本発明によれば、表示すべき画像を生成する際に、繰り返し使用される文字フォント等の断片画像を効率良くキャッシュすることができるようになる。
【００３０】
また、本発明の画像処理装置は、以下のように構成することができる。
【００３１】
すなわち、一時記憶部に記憶される組は、さらに、ソート部によりソートされた後に当該組の断片画像情報が使用されたか否かを示す使用フラグ情報を含む。
【００３２】
使用フラグ情報を採用するのは、キャッシュ部において「選択されるべき組」を探索する際の処理の簡易化を図るためである。
【００３３】
一方、ソート部は、一時記憶部に記憶される組を当該組の最終使用時刻が古い順にソートし、当該ソートの際に、当該組の使用フラグ情報をソート部によりソートされた後に当該組の断片画像情報が使用されていない旨を示すように更新する。
【００３４】
すなわち、使用フラグ情報は、ソート部によるソートが行われるごとに、すべてクリアされることとなる。
【００３５】
さらに、キャッシュ部は、断片画像情報を出力すべき組の使用フラグ情報を、ソート部によりソートされた後に当該組の断片画像情報が使用されている旨を示すように更新する。
【００３６】
すなわち、使用フラグ情報は、当該組が使用されるとセットされることとなる。
【００３７】
一方、キャッシュ部は、一時記憶部に記憶される複数の組の中に、当該組の識別符号が当該与えられた識別符号と一致するものがない場合、一時記憶部に記憶される複数の組をソートされた順に走査し、
（ｂ１）当該組の使用フラグ情報がソート部によりソートされた後に当該組の断片画像情報が使用されていない旨を示す場合、当該組を、最終使用時刻が最も古い組として選択し、
（ｂ２）すべての組の使用フラグ情報がソート部によりソートされた後に当該組の断片画像情報が使用されている旨を示す場合、当該一時記憶部に記憶される組を当該組の最終使用時刻が古い順に走査する際の先頭の組を、最終使用時刻が最も古い組として選択する。
【００３８】
上記のように、ソートの順は「新しい順」ではなく「古い順」であるから、使用フラグ情報がクリアされている（フラグが立っていない）組が初めて見つかれば、それが最終使用時刻が最も古い組、ということになる。
【００３９】
一方、すべての使用フラグ情報がセットされている（フラグが立っている）場合は、いずれの組の断片画像情報も今回の画像生成に使用されている、ということであるから、ある意味でどの組を上書きしても良いこととなる。そこで、「古い順」の「先頭の組」、すなわち、「前回のソートの直後に最終使用時刻が最も古いと判定された組」を、「最終使用時刻が最も古い組」の近似として選択する。
【００４０】
本発明は、上記発明の好適実施形態に係るものであり、キャッシュの中に含まれる組から、いずれの組を上書きするかを簡易な計算で容易に決定することができるようになる。
【００４１】
また、本発明の画像処理装置において、キャッシュ部は、一時記憶部に記憶された組がソート部によりソートされた後に、当該組の使用フラグ情報が、使用されていない旨を示す値から使用されている旨を示す値へ変化した回数をカウントし、繰返制御部は、画像生成部により画像が生成されるごとに、カウントされた回数が所定の閾値を超えていれば、ソート部に一時記憶部に記憶される複数の組をソートさせるように構成することができる。
【００４２】
本発明は、一時記憶部の容量が比較的大きい場合に好適で、ソート部によるソートの回数を低減させることができる。したがって、本発明によれば、処理時間のかかりやすいソートをできるだけ後に廻すことができるため、計算負担の低減が期待できる。
【００４３】
また、本発明の画像処理装置において、画像記憶部は、ＲＯＭもしくは外部情報記憶媒体により構成され、一時記憶部は、ＲＡＭにより構成され、画像生成部は、当該ＲＯＭに記憶される断片画像情報により当該画像を生成する際は、当該ＲＡＭに当該断片画像情報を一時的に記憶させることを要し、画像生成部は、垂直同期割込周期ごとに、当該画像を生成するように構成することができる。
【００４４】
本発明は上記発明の典型的な応用例に相当するものであり、たとえば携帯ゲーム装置のハードウェア上の制限の下で、本発明を適用することで、効率良く画像処理を行うことができるようになる。
【００４５】
また、本発明の画像処理装置において、当該識別符号は文字コードであり、当該断片画像情報は、当該文字コードを有する文字の形状を表すフォント情報であるように構成することができる。
【００４６】
本発明は上記発明の典型的な応用例に相当するものであり、一般に文字の使用の際には、ひらがなや登場するキャラクターの名前の文字などが頻繁に使用される傾向にあるため、キャッシュによる効果が大きいと考えられるので、本発明を適用することで、効率良く文字を表示する画像処理を行うことができるようになる。
【００４７】
本発明のその他の観点に係る画像処理方法は、画像記憶部、一時記憶部、ソート部、キャッシュ部、画像生成部、繰返制御部を備える画像処理装置にて実行され、画像記憶部には、識別符号に対応付けられる断片画像情報が複数あらかじめ記憶され、一時記憶部は、画像記憶部に記憶された断片画像情報と、当該断片画像情報に対応付けられる識別符号と、当該断片画像情報を最後に使用した最終使用時刻と、の組を複数一時的に記憶することができ、ソート工程、キャッシュ工程、画像生成工程、繰返制御工程を備え、以下のように構成する。
【００４８】
すなわち、ソート工程では、ソート部が、一時記憶部に記憶される複数の組を、当該組の最終使用時刻によりソートする。
【００４９】
一方、キャッシュ工程では、キャッシュ部が、与えられた識別符号に対して、当該識別符号に対応付けられる断片画像情報を出力する。
【００５０】
さらに、画像生成工程では、画像生成部が、キャッシュ工程にて、識別符号を１つまたは複数与えることによってキャッシュ工程から出力された１つまたは複数の断片画像情報により、画面に表示される画像を生成する。
【００５１】
そして、繰返制御工程では、繰返制御部が、画像生成工程にて画像が生成されるごとに、ソート工程にて一時記憶部に記憶される複数の組をソートさせる。
【００５２】
一方、キャッシュ工程では、
（ａ）一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がある場合、当該一致する組を選択して、
（ｂ）一時記憶部に記憶される複数の組の中に、当該与えられた識別符号と一致する識別符号の組がない場合、一時記憶部に記憶される複数の組の中から当該組の最終使用時刻が最も古い組を選択して、画像記憶部から当該与えられた識別符号に対応付けられて記憶される断片画像情報を読み出し、当該選択された組の断片画像情報を当該読み出された断片画像情報に更新し、当該選択された組の識別符号を当該与えられた識別符号に更新する。
【００５３】
さらに、キャッシュ工程では、一時記憶部に記憶される複数の組の中からいずれかの組を選択した後に、当該選択された組の最終使用時刻を現在時刻に更新し、当該選択された組の断片画像情報を出力する。
【００５４】
本発明のその他の観点に係るプログラムは、コンピュータを上記の画像処理装置として機能させ、コンピュータに上記の画像処理方法を実行させるように構成する。
【００５５】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００５６】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００５７】
本発明によれば、表示すべき画像を生成する際に、繰り返し使用される文字フォント等の断片画像を効率良くキャッシュするのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００５８】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００５９】
図１は、プログラムを実行することにより、本発明の画像処理装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００６０】
本情報処理装置１０１は、ＣＰＵ（Central Processing Unit）１０２と、ＲＡＭ（Random Access Memory）１０３と、ＲＯＭ（Read Only Memory）１０４と、入力装置１０５と、画像処理部１０６と、液晶ディスプレイ１０７と、音声処理部１０８と、スピーカ１０９と、カセットリーダ１１０と、を備える。
【００６１】
ＣＰＵ  １０２は、本情報処理装置１０１の各部の制御を行う。ＲＡＭ  １０３の記憶域、ＲＯＭ  １０４の記憶域、カセットリーダ１１０に挿入されたＲＯＭカセット１１１の記憶域は、いずれも、ＣＰＵ  １０２が管理する１つのメモリ空間にマップされており、ＣＰＵ  １０２は、それぞれの記憶域がマップされるアドレスを読み出せば、それぞれに記憶されている情報を取得することができる。また、ＲＡＭ  １０３の記憶域には、書き込みも可能である。
【００６２】
このほか、ＣＰＵ  １０２が画像処理部１０６や音声処理部１０８に対して各種の指示を行う際や、これらのほか、入力装置１０５から情報を取得する際の、窓口となるレジスタも、当該メモリ空間にマップされており、所定のアドレスにコマンドを表すデータ書き込みを行えば指示をすることができ、所定のアドレスからデータを読み出せば、情報を取得することができる。
【００６３】
情報処理装置１０１の電源が投入されると、ＣＰＵ  １０２は、カセットリーダ１１０に挿入されたＲＯＭカセット１１１の記憶域がマップされたアドレスから開始されるプログラムを実行する。ＲＡＭ  １０３は、一時的な記憶域として種々の目的に使用される。ＲＯＭ  １０４には、情報処理装置１０１が提供するＢＩＯＳ(Basic Input/Output System)ルーチンが記録されており、ＲＯＭカセット１１１内のプログラムから、適宜呼び出すことができる。
【００６４】
入力装置１０５は、方向を表す指示入力を受け付けるボタン、各種の操作を区別する指示入力を受け付けるボタンからの入力をメモリ空間にマップされたレジスタに反映させるほか、液晶ディスプレイ１０７の表面に貼り付けられたタッチパネルが押圧されているか否か、および押圧されているときのその座標の入力も受け付ける。
【００６５】
液晶ディスプレイ１０７は、画像処理部１０６によって管理される。メモリ空間にマップされたタイルを記憶するための記憶領域や、オブジェクト属性メモリを記憶するための記憶領域が用いられる。ＣＰＵ  １０２が、計算により生成した値を書き込んだり、カセットリーダ１１０に挿入されたＲＯＭカセット１１１から一旦ＲＡＭ  １０３に画像情報を転送し、その後に、ＲＡＭ  １０３の転送先のアドレスを参照して画像処理部１０６に指示を出すことにより、液晶ディスプレイ１０７にスプライト画像が表示されることとなる。
【００６６】
このほか、液晶ディスプレイ１０７に表示される画像を画素単位で管理するフレームバッファを利用することもでき、液晶ディスプレイ１０７においてある色をある位置に表示したい場合には、フレームバッファ内のその位置に相当する場所にその色に相当する数値を書き込むと、適切なタイミングで液晶ディスプレイ１０７にビットマップ画像が表示される。
【００６７】
たとえば、１６ビットカラー表示３２０×２００ドットの液晶ディスプレイ１０７の場合、画素１つ分の色は２バイトで表現される。そこで、３２０×２００個の要素（各２バイト）を持つ配列をフレームバッファとしてＲＡＭ  １０３内に用意し、当該配列の要素を１対１に液晶ディスプレイ１０７の画素に対応させる。当該配列の要素に色を表す１６ビットの値を書き込み、適切なタイミングで（たとえば、垂直同期割り込みが発生する周期で）フレームバッファの内容を液晶ディスプレイ１０７に反映させるように、画像処理部１０６にて制御を行う。
【００６８】
これらの画像処理においては、スプライト画像やフォント情報として一定のサイズの断片画像情報を用意し、これらを１つまたは複数集めることにより、１つの文字や１人のキャラクター、共通する属性を有する背景の一部分の画像を生成することができるのである。
【００６９】
液晶ディスプレイ１０７の数は１つまたは複数とするのが一般的である。本実施形態では、複数の液晶ディスプレイが存在し、一方の液晶ディスプレイ１０７は表示専用とし、他方の液晶ディスプレイ１０７にはタッチパネルが貼り付けられている。
【００７０】
したがって、タッチペンでタッチパネルを押圧操作することにより、対応する液晶ディスプレイ１０７の位置を表す座標値が入力される。すなわち、タッチパネルと液晶ディスプレイ１０７とは一体となって、タッチスクリーンとして機能する。
【００７１】
なお、本情報処理装置１０１は、典型的な携帯ゲーム装置として利用されるものであるが、本発明の技術は、マウスおよびキーボードとＣＲＴ（Cathode Ray Tube）を用いて入力と出力を行うような汎用コンピュータで動作する各種のアプリケーションに適用することも可能であり、そのような実施形態も本発明の範囲に含まれる。
【００７２】
図２は、本実施形態に係る画像処理装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【００７３】
本実施形態に係る画像処理装置２０１は、画像記憶部２０２、一時記憶部２０３、ソート部２０４、キャッシュ部２０５、画像生成部２０６、繰返制御部２０７を備える。
【００７４】
ここで、画像記憶部２０２は、識別符号に対応付けられる断片画像情報を複数あらかじめ記憶するものであり、本実施形態では、識別符号として文字コードを、断片画像情報として当該文字のフォント情報を、それぞれ採用する。
【００７５】
また、本実施形態では、これらのフォント情報は、ＲＯＭカセット１１１内に記憶されるため、ＲＯＭカセット１１１が画像記憶部２０２として機能する。
【００７６】
一方、一時記憶部２０３は、画像記憶部２０２に記憶された断片画像情報と、当該断片画像情報に対応付けられる識別符号と、当該断片画像情報を最後に使用した最終使用時刻と、の組を複数一時的に記憶する。なお本実施形態では、当該組に、使用フラグ情報を含めることとするが、適宜説明するように、使用フラグ情報を使用しなくとも、本実施形態と同様の効果を得ることが可能である。
【００７７】
一時記憶部２０３は、キャッシュメモリ用に用いられるもので、本実施形態では、ＲＡＭ  １０３を用いる．したがって、ＲＡＭ  １０３が一時記憶部２０３として機能する。
【００７８】
図３は、一時記憶部２０３の概要構成を示す説明図である。以下、本図を参照して説明する。
【００７９】
本実施形態では、一時記憶部２０３は、
組３０１のアドレスのアドレス配列（as）３０２と、
個々の組３０１が配置される組配列（ts）３０３と、
から構成されており、各組３０１には、
識別符号を記憶するための識別符号領域（code）３１１と、
断片画像情報を記憶するための断片画像情報領域（buffer）３１２と、
最後にその組の断片画像情報を使用した時刻を記憶するための最終使用時刻領域（time）３１３と、
最後にソートをした後にその組の断片画像情報を使用したか否かを記憶するための使用フラグ領域（flag）３１４と、
が用意されている。
【００８０】
本実施形態では、断片画像情報として文字フォントの情報を記憶するため、断片画像情報領域（buffer）３１２の大きさは自ずと等しいこととなる。各種のサイズが用いられるスプライト情報を本発明で利用する場合には、最も頻繁に用いられるスプライトのサイズや、ハードウェア的に効率良く表示ができる適当な画像サイズをbufferのサイズとして採用し、これより大きいものは適宜分割することとすれば良い。
【００８１】
本図に示す例では、アドレス配列（as）３０２と、組配列（ts）３０３とは、いずれもN個の要素を持っており、アドレス配列（as）３０２の各要素as[0]，as[1]，…，as[N-1]は、組配列（ts）３０３の各要素ts[0]，ts[1]，…，ts[N-1]のいずれかを重複なく指していることとなる。
【００８２】
そこで、Ｃ言語の慣習にならい、以下では、アドレス配列（as）３０２のi番目の要素as[i]が、組配列（ts）３０３の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）３０２を使用しない態様も考えられる。この場合には、ソートの対象は組配列（ts）３０３となるが、ソートの高速化を図るため、bufferに直接断片画像情報を格納するのではなく、別途用意した断片画像情報を格納する領域のアドレスを格納することとすれば良い。
【００８５】
図４は、本実施形態における画像処理装置２０１にて実行される画像処理方法の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【００８６】
本処理が開始されると、まず、ＣＰＵ  １０２は、ＲＡＭ  １０３にアクセスして、一時記憶部２０３の初期化を行う（ステップＳ４０１）。
【００８７】
具体的には、以下のような処理を行う。
【００８８】
すなわち、i = 0，1，…，N-1のそれぞれについて、
as[i] = &ts[i]；
を実行する。
【００８９】
これにより、アドレス配列（as）３０２の各要素as[0]，as[1]，…，as[N-1]が、組配列（ts）３０３の各要素ts[0]，ts[1]，…，ts[N-1]のいずれかを重複なく指すこととなる。
【００９０】
さらにi = 0，1，…，N-1のそれぞれについて、
as[i]→code = 0；
as[i]→time = 0；
as[i]→flag = 0；
を実行する。これらはそれぞれ「表示される文字コードのいずれとも一致しない数値」「最も古い時刻」「まだ使用されていない」を意味する。
【００９１】
さらに、ソート部２０４は、アドレス配列（as）３０２の各要素as[0]，as[1]，…，as[N-1]を、最終使用時刻as[0]→time，as[1]→time，…，as[N-1]→timeを鍵にソートする（ステップＳ４２１）。当該ソートにより、アドレス配列（as）３０２の各要素は、最終使用時刻が古い順に整列されることになる。
【００９２】
そして、ソート部２０４は、i = 0，1，…，N-1のそれぞれについて、
as→flag = 0；
を実行する（ステップＳ４２２）。すなわち、すべての組３０１について使用フラグをクリアする。
【００９３】
なお、当該ソートと使用フラグのクリアは、ステップＳ４０１の直後であれば省略することができるが、以下の説明の理解を容易にするため、ここで説明するものである。
【００９４】
したがって、ＣＰＵ  １０２は、ＲＡＭ  １０３と共働して、ソート部２０４として機能する。
【００９５】
次に、画像生成部２０６は、所定の画像生成アルゴリズムにより、必要な断片画像情報をすべて処理するまで、以下の処理を繰り返す（ステップＳ４０２〜）。必要な断片画像情報をすべて処理する、とは、たとえば、「画面に表示する文字の文字フォントをすべて処理して画面に表示される画像を生成する」ことに相当する。画面に表示する文字は、たとえば現在のゲームの状況や他のユーザの状況、ゲームをプレイしているプレイヤーからの指示入力によって適宜変更される。
【００９６】
まず、キャッシュ部２０５に、次に必要な断片画像情報の識別符号、すなわち、文字フォントの文字コードを与える（ステップＳ４０３）。ここで与えられた文字コードをxとする。
【００９７】
すると、キャッシュ部２０５は、ＲＡＭ  １０３に用意されたカウンタ変数iを用い、i = 0，1，…，N-1のそれぞれについて（ステップＳ４０４〜）、as[i]→codeがxに等しいか否かを判定する（ステップＳ４０５）。なお、等しいこととそうでないことは、Ｃ言語の慣習にならい、「==」「!=」を用い、それぞれas[i]→code == xあるいはas[i]→code != xのように記載することとする。
【００９８】
as[i]→code == xであれば（ステップＳ４０５；Ｙｅｓ）、ステップＳ４０４から開始されるループを抜けて、as[i]→timeに現在時刻を設定し、as[i]→flagのビットを立てる（ステップＳ４０６）。
【００９９】
現在時刻の取得方法については、情報処理装置１０１が持つリアルタイムクロックの値を採用しても良いし、垂直同期割込やタイマ割込が発生するたびにインクリメントされるカウンタをあらかじめ用意しておき、当該カウンタの値を採用することとしても良い。
【０１００】
そして、as[i]→bufferを次に必要な断片画像情報として画像生成部２０６に出力する（ステップＳ４０７）。
【０１０１】
すると、画像生成部２０６は、ＲＡＭ  １０３内に用意された画像バッファに断片画像情報as[i]→bufferに基づく断片画像を描画する（ステップＳ４０８）。上記のように、本実施形態では、as[i]→bufferは、文字コードxに対する文字フォント情報であるから、所定のアルゴリズムで決定される位置に当該文字フォントを出力することとなる。
【０１０２】
したがって、ＣＰＵ  １０２は、ＲＡＭ  １０３や画像処理部１０６と共働して、画像生成部２０６として機能する。
【０１０３】
そして、ステップＳ４０２から開始される繰り返しを続ける（ステップＳ４０９）。
【０１０４】
一方、i = 0，1，…，N-1のすべてについてas[i]→code != xであるために（ステップＳ４０５；Ｎｏ）、ステップＳ４０４から開始されるループを途中で抜けることがなく、繰り返し（ステップＳ４１０）を最後まで行った場合には、所望の文字コードに対する文字フォントが一時記憶部２０３内にロードされていないこととなる。したがって、当該文字フォントを画像記憶部２０２から一時記憶部２０３にロードすること必要がある。そこで、上書きすべき組３０１を選択しなければならない。
【０１０５】
そのため、キャッシュ部２０５は、当該カウンタ変数iを用い、i = 0，1，…，N-1のそれぞれについて順に（ステップＳ４１１〜）、as[i]→flag == 0であるか否かを調べる（ステップＳ４１２）。
【０１０６】
as[i]→flag == 0であれば（ステップＳ４１２；Ｙｅｓ）、ステップＳ４１１から開始されるループを抜ける。すなわち、線形探索によってアドレス配列ａｓを走査し、当該as[i]に指される組３０１を上書きする組として選択したことになる。
【０１０７】
そして、画像記憶部２０２から文字コードxの文字フォントを読み出してas[i]→bufferに格納し（ステップＳ４１３）、as[i]→code = xを実行して（ステップＳ４１４）、ステップＳ４０６に進む。
【０１０８】
一方、i = 0，1，…，N-1のすべてについてas[i]→flag != 0であるために（ステップＳ４１２；Ｎｏ）、繰り返し（ステップＳ４１５）を最後まで行った場合には、一時記憶部２０３内のいずれの組３０１も最近（すなわち、前回のソート以降に）使用されたこととなるから、いずれの組３０１を選択しても良いが、本実施形態では、当該カウンタ変数iに対してi = 0として（ステップＳ４１６）、as[0]に指される組３０１を選択する。すなわち、前回のソートの直後に最終使用時刻が最も古かった組を、上書きする組とするのである。そして、ステップＳ４１３に進む。
【０１０９】
このように、ＣＰＵ  １０２は、ＲＡＭ  １０３やＲＯＭカセット１１１と共働して、キャッシュ部２０５として機能する。
【０１１０】
さて、今回の画像生成において必要な文字フォントのすべての処理が終了すると（ステップＳ４０９）、ＣＰＵ  １０２は、垂直同期割込が生じるまで待機する（ステップＳ４１６）。この「待機」の間には、他の処理を適宜実行することが可能である。
【０１１１】
垂直同期割込が生じたら、ＣＰＵ  １０２は、画像バッファに格納されている画像を実際に液晶ディスプレイ１０７に表示するように画像処理部１０６に指示を出して（ステップＳ４１７）、ステップＳ４２１に戻り、一時記憶部２０３をソート部２０４にソートさせる。したがって、ＣＰＵ  １０２は、繰返制御部２０７として機能する。
【０１１２】
このようにソートすることによって、一時記憶部２０３に記憶される組３０１のうち、最も昔にアクセスされた（Least Recently Used）断片画像情報を記憶する組３０１を、できるだけ早期に発見することができるようになる。
【０１１３】
なお、各配列の添字については、ソートの方向に合わせて本実施形態と逆順にしても良いし、走査の方向を逆にしても良い。
【０１１４】
本実施形態によれば、ＲＡＭ  １０３の利用効率をあげて、ＲＯＭカセット１１１から文字フォントを読み出して、液晶ディスプレイ１０７に文字を表示する画像処理を行うことができるようになる。
【実施例２】
【０１１５】
実施例１において、ステップＳ４１７の後、直ちにステップＳ４２１に戻るのではない手法もありうる。
【０１１６】
すなわち、ステップＳ４０６においてas[i]→flagのビットを立てる際に、当該ビットを立てることで、as[i]→flagの値が反転した回数を、ＲＡＭ  １０３内に用意した変数領域revにカウントする。
【０１１７】
ステップＳ４１７の後に、revの値がNに近いか否かを判定する。近いか否か、とは、たとえば、revの値がNの７割を超えているか否か、により判定できる。この閾値となる割合「７割」の値は適宜変更が可能であるが、５割以上９割以下の閾値を採用することが典型的である。
【０１１８】
そして、revの値がNに近い場合は、キャッシュ内に空きが少ないのでステップＳ４２１に戻るが、そうでない場合は、キャッシュ内に空きが多いのでステップＳ４０３に戻る、とするのである。
【０１１９】
そして、ステップＳ４２１、Ｓ４２２にてソートが終了した後に、変数revの値を０にクリアする。
【０１２０】
本手法は、一時記憶部２０３の容量が比較的大きい場合に、ソート回数を減らすのに有効である。
【実施例３】
【０１２１】
実施例１、２では、使用フラグflagを参照することで上書きする組３０１を選択していたが、これを使用しない手法もありうる。
【０１２２】
まず、ステップＳ４２１、Ｓ４２２にてソートが終了した後に、ＲＡＭ  １０３内に用意した最終ソート時刻変数領域lastに現在時刻を格納する。
【０１２３】
そして、ステップＳ４１２における判断を「as[i]→flag == 0であるか否か」から、「as[i]→time ＜ lastであるか否か」に変更するのである。
【０１２４】
今回の画像生成において使用された組については、ステップＳ４０６においてas[i]→timeにソート時点より後の時刻が格納されるから、「as[i]→time ＞ last」が成立するはずである。
【０１２５】
一方、as[0]，as[1]，…，as[N-1]は、ソート直後では最終使用時刻の古い順に並んでいるから、この中から今回の画像生成において使用されていない組だけを選んでも、やはり最終使用時刻の古い順に並ぶことになる。
【０１２６】
したがって、i = 0，1，…，N-1の順に走査したときに、初めて見つかった「as[i]→time ＜ last」が成立するものを、上書きすべき組として選択するのである。
【０１２７】
本手法によれば、使用フラグを使用せずに上記実施形態と同様の効果を得ることができる。
【産業上の利用可能性】
【０１２８】
以上説明したように、本発明によれば、表示すべき画像を生成する際に、繰り返し使用される文字フォント等の断片画像を効率良くキャッシュするのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【０１２９】
【図１】プログラムを実行することにより、本発明の画像処理装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
【図２】本実施形態に係る画像処理装置の概要構成を示す説明図である。
【図３】一時記憶部の概要構成を示す説明図である。
【図４】本実施形態における画像処理装置にて実行される画像処理方法の制御の流れを示すフローチャートである。
【符号の説明】
【０１３０】
１０１  情報処理装置
１０２  ＣＰＵ
１０３  ＲＡＭ
１０４  ＲＯＭ
１０５  入力装置
１０６  画像処理部
１０７  液晶ディスプレイ
１０８  音声処理部
１０９  スピーカ
１１０  カセットリーダ
１１１  ＲＯＭカセット
２０１  画像処理装置
２０２  画像記憶部
２０３  一時記憶部
２０４  ソート部
２０５  キャッシュ部
２０６  画像生成部
２０７  繰返制御部
３０１  組
３０２  アドレス配列
３０３  組配列
３１１  識別符号領域
３１２  画像情報領域
３１３  最終使用時刻領域
３１４  使用フラグ領域
【図１】
2008071286.tif 000003
【図２】
2008071286.tif 000004
【図３】
2008071286.tif 000005
【図４】
2008071286.tif 000006