情報処理装置、情報処理方法及びプログラム
【課題】モデルとビューとから構成される表示用データを効率的にキャッシュする。
【解決手段】情報処理装置200は、他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信可能な通信部19と、上記受信された複数の画像データの少なくとも一部をキャッシュ可能なキャッシュメモリ20と、上記第1の面積よりも小さい第2の面積を有する表示領域を有し、上記キャッシュされた複数の画像データの一部を当該表示領域に表示可能な表示部16と、上記仮想領域を複数の領域に分割し、当該複数の領域に応じて、上記複数の画像データのツリー構造を示す第2のツリー情報を生成し、当該第2のツリー情報を基に、上記キャッシュメモリを制御する制御部とを具備する。
【解決手段】情報処理装置200は、他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信可能な通信部19と、上記受信された複数の画像データの少なくとも一部をキャッシュ可能なキャッシュメモリ20と、上記第1の面積よりも小さい第2の面積を有する表示領域を有し、上記キャッシュされた複数の画像データの一部を当該表示領域に表示可能な表示部16と、上記仮想領域を複数の領域に分割し、当該複数の領域に応じて、上記複数の画像データのツリー構造を示す第2のツリー情報を生成し、当該第2のツリー情報を基に、上記キャッシュメモリを制御する制御部とを具備する。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、キャッシュメモリを有する情報処理装置、当該情報処理装置における情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、クライアント端末がネットワーク経由でウェブブラウザによりアプリケーションを実行するようになり、またクライアント端末の種類が増加したことに伴い、サーバでは、クライアント端末の画面への表示内容を構成要素データ(モデル)と表示方法データ(ビュー)とに分けて保持しておくことが一般的になっている。例えば、サーバはウェブページをHTML(HyperText Markup Language)とCSS(Cascading Style Sheets)とに分けてクライアント端末へ送信し表示させている。これにより、クライアント端末におけるロード時間が短縮し、処理効率が向上することから、表示処理の見かけ上の実行速度が向上する。
【0003】
一方、ブラウザによる表示処理を高速化する別の手法として、クライアント側で、必要となるデータを事前にキャッシュしておくことも行われている。例えば下記特許文献1には、選択操作、戻る操作、スクロール操作等のユーザ入力を検知しながらデータを先読みして画面遷移を快適に行う情報処理装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−160441号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1に記載の技術は、表示されるデータのレイアウトが予め固定されていることを前提にしている。したがって当該技術は、上述のように、画面の表示内容がモデルとビューとに分かれたデータを扱う場合には実現が困難である。
【0006】
以上のような事情に鑑み、本技術の目的は、モデルとビューとから構成される表示用データを効率的にキャッシュすることが可能な情報処理装置、情報処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0007】
上述の課題を解決するため、本技術の一形態に係る情報処理装置は、通信部と、キャッシュメモリと、表示部と、制御部とを有する。上記通信部は、他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信可能である。上記キャッシュメモリは、上記受信された複数の画像データの少なくとも一部をキャッシュ可能である。上記表示部は、上記第1の面積よりも小さい第2の面積を有する表示領域を有し、上記キャッシュされた複数の画像データの一部を当該表示領域に表示可能である。上記制御部は、上記第2の面積と、上記受信されたレイアウト情報とを基に、上記仮想領域を複数の領域に分割可能である。また制御部は、当該複数の領域に応じて、上記複数の画像データのツリー構造を示す第2のツリー情報を生成可能である。さらに制御部は、当該第2のツリー情報を基に上記少なくとも一部の画像データをキャッシュするように上記キャッシュメモリを制御可能である。
【0008】
これにより情報処理装置は、キャッシュ用の第2のツリー情報を生成することで、モデル(複数の画像データまたは第1のツリー情報)とビュー(レイアウト情報)とから構成される表示用データを効率的にキャッシュすることができる。
【0009】
上記制御部は、上記複数の領域にそれぞれポイントを付与し、所定値以上のポイントを付与された領域にレイアウトされる画像データを上記キャッシュメモリにキャッシュし、当該所定値未満のポイントを付与された領域にレイアウトされる画像データを上記キャッシュメモリから消去するように上記キャッシュメモリを制御可能であってもよい。
【0010】
これにより情報処理装置は、各領域にポイントを付与することで、次に表示される可能性の高い領域の画像データをキャッシュし、表示される可能性が低い領域の画像データをキャッシュから消去できる。
【0011】
上記制御部は、上記表示領域に表示される画像データが変更された場合に、当該変更後の画像データを基に、上記第2のツリー情報を再生成し、上記各領域に付与されるポイントを再計算してもよい。
【0012】
これにより情報処理装置は、表示領域の画像データが変更されるたびに、キャッシュする、またはキャッシュから消去する画像データを変更し、最適なキャッシュ状態を維持することができる。ここで、画像データの変更は、ユーザのスクロール操作のような画面遷移以外にも、例えば情報処理装置の位置や、情報処理装置が有する各種センサの出力によっても生じ得る。
【0013】
上記制御部は、上記複数の領域のうち、上記表示領域に表示されている画像データがレイアウトされている領域と他の領域との距離が小さいほど上記ポイントが高くなるように、上記複数の領域に付与されるポイントを計算してもよい。
【0014】
これにより情報処理装置は、現在表示中の画像データの領域からの距離が近い画像データをキャッシュし、距離が遠い画像データをキャッシュから消去することができる。
【0015】
上記制御部は、上記表示領域に表示されている画像データがレイアウトされている領域には、上記距離に応じたポイントに加えて別途ポイントを付与してもよい。
【0016】
これにより情報処理装置は、現在表示されている画像データを確実にキャッシュしておくことができる。
【0017】
本技術の他の形態に係る情報処理方法は、他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信することを含む。上記第1の面積よりも小さい第2の面積を有する表示領域を有する表示部に、上記受信された複数の画像データの一部が表示される。上記第2の面積と、上記受信されたレイアウト情報とを基に、上記仮想領域を複数の領域に分割される。当該複数の領域に応じて、上記複数の画像データのツリー構造を示す第2のツリー情報が生成される。当該第2のツリー情報を基に前記少なくとも一部の画像データがキャッシュされる。
【0018】
本技術の他の形態に係るプログラムは、情報処理装置に、受信ステップと、表示ステップと、生成ステップと、キャッシュステップとを実行させる。上記受信ステップでは、他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とが受信される。上記表示ステップでは、上記第1の面積よりも小さい第2の面積を有する表示領域を有する表示部に、上記受信された複数の画像データの一部が表示される。上記生成ステップでは、上記第2の面積と、上記受信されたレイアウト情報とを基に、上記仮想領域が複数の領域に分割され、当該複数の領域に応じて、上記複数の画像データのツリー構造を示す第2のツリー情報が生成される。上記キャッシュ/消去ステップでは、上記第2のツリー情報を基に上記少なくとも一部の画像データがキャッシュされる。
【発明の効果】
【0019】
以上のように、本技術によれば、モデルとビューとから構成される表示用データを効率的にキャッシュすることができる。
【図面の簡単な説明】
【0020】
【図1】本技術の一実施形態における画像表示システムの構成を示す図である。
【図2】上記画像表示システムにおけるユーザ端末のハードウェア構成を示した図である。
【図3】上記ユーザ端末が有するソフトウェアを示した機能ブロック図である。
【図4】上記ユーザ端末がサーバから受信するツリー情報の例を示した図である。
【図5】図4のツリー情報に基づいて描画されるビューの例を示した図である。
【図6】上記ユーザ端末がサーバから受信するレイアウト情報の例を示した図である。
【図7】上記ユーザ端末がサーバから受信するレイアウト情報の例を示した図である。
【図8】ユーザ端末によるキャッシュ処理の流れを示したフローチャートである。
【図9】上記ユーザ端末により生成される仮想的なツリー情報の例を示した図である。
【図10】図9の仮想的なツリー情報に基づいて描画される画面の例を示した図である。
【図11】ユーザ端末が仮想的なツリー情報を生成する処理の流れを示したフローチャートである。
【図12】ユーザ端末がリージョンごとにポイントを設定してキャッシュを管理する処理の流れを示したフローチャートである。
【図13】リージョンごとにポイントが設定される例を示した図である。
【図14】ポイント設定処理に関するキャッシュメモリ内部のメタデータの例を示した図である。
【発明を実施するための形態】
【0021】
以下、本技術に係る実施形態を、図面を参照しながら説明する。
【0022】
[システムの概要]
図1は、本技術の一実施形態における画像表示システムの構成を示す図である。
【0023】
同図に示すように、このシステムは、サーバ100とユーザ端末200とで構成される。両者はインターネット50等のネットワークにより互いに通信可能とされている。
【0024】
ユーザ端末200は複数存在しうる。ユーザ端末200は、典型的には、例えばスマートフォン、携帯電話機、タブレットPC等の携帯端末であるが、デスクトップ型やノートブック型のPC、電子書籍リーダー、携帯型AV(Audio/Visual)機器等、あらゆる情報処理装置でありうる。
【0025】
ユーザ端末200は、サーバ100から大量の画像をダウンロードして、それらをユーザインタフェースにより表示する。本実施形態では、特に、モデルとビューとが分離されたユーザインタフェースのアーキテクチャが対象とされている。モデルとビューとが分離されたユーザインタフェースでは、サーバ100ではモデル情報を管理し、クライアント側のユーザ端末200は、その機器属性やユーザ入力等に応じてビューを変化させる。これにより、様々な種別のユーザ端末200に対応可能な柔軟システムが実現される。ここで、モデル情報とは、ページデータや画像データのデータベースを指し、ビュー情報は描画用のツリー構造、レイアウト情報、デザインテンプレート等が想定される。より広い意味では、ツリー構造もモデル情報と見なし得る。
【0026】
ユーザ端末200は、サーバ100へ、ウェブブラウザ(以下、単にブラウザと称する)のユーザインタフェースを介して、複数の画像ファイルを含むウェブページをリクエストする。サーバ100は当該リクエストに応じて、ウェブページ及び画像ファイルを、当該画像ファイルのツリー構造を示すツリー情報(例えば、DOM(Document Object Model)ツリー)や画像ファイルのレイアウト情報と共にユーザ端末200へ送信する。
【0027】
[ユーザ端末のハードウェア構成]
図2は、上記ユーザ端末200のハードウェア構成を示した図である。同図に示すように、ユーザ端末200は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、入出力インタフェース15、及び、これらを互いに接続するバス14を備える。
【0028】
CPU11は、必要に応じてRAM13等に適宜アクセスし、各種演算処理を行いながらユーザ端末200の各ブロック全体を統括的に制御する。ROM12は、CPU11に実行させるOS、プログラムや各種パラメータなどのファームウェアが固定的に記憶されている不揮発性のメモリである。RAM13は、例えばDRAM(Dynamic RAM)であり、ユーザ端末200のメインメモリとして用いられる。RAM13は、CPU11の作業用領域として、OS、実行中の各種アプリケーション、処理中の各種データを一時的に保持する。
【0029】
また、CPU11の内部には、キャッシュメモリ20が設けられている。キャッシュメモリ20は、サーバ100から受信した画像データをキャッシュする。キャッシュメモリ20は例えばSRAM(Static RAM)であるが、高速な読み書きが可能な一次記憶装置として用いることができればどのような記憶素子であっても構わない。キャッシュメモリ20の内部では、キーと値のペアによりデータが保持される。
【0030】
入出力インタフェース15には、表示部16、操作受付部17、記憶部18、通信部19等が接続される。
【0031】
表示部16は、例えばLCD、OELD、CRT(Cathode Ray Tube)等を用いた表示デバイスであり、サーバ100から受信した画像データを表示する。
【0032】
操作受付部17は、例えばマウス等のポインティングデバイス、キーボード、タッチパネル、その他の入力装置である。操作受付部17がタッチパネルである場合、そのタッチパネルは表示部16と一体となり得る。
【0033】
記憶部18は、例えばHDD(Hard Disk Drive)や、フラッシュメモリ(SSD;Solid State Drive)、その他の固体メモリ等の不揮発性メモリである。当該記憶部18には、上記OSや各種アプリケーション、各種データが記憶される。
【0034】
通信部19は、インターネット50やLANに有線接続するためのNIC等であり、サーバ100との間の通信処理(リクエストの送信やレスポンスの受信)を担う。
【0035】
[ユーザ端末のソフトウェア構成]
図4は、上記ユーザ端末200が有するソフトウェアモジュールを示した機能ブロック図である。当該ソフトウェアモジュールは、例えば、時系列で並んだ大量の画像(写真)データを一覧表示するアプリケーションの機能として設けられるが、これに限られない。
【0036】
同図に示すように、ユーザ端末200は、データ取得部31、データ構造変換部32、表示制御部33、表示領域判定部34、キャッシュ制御部35及びデータベース36を有する。
【0037】
データ取得部31は、サーバ100から、画像データ、ツリー情報(第1のツリー情報)、レイアウト情報をネットワーク経由で取得し、データ構造変換部32へ引き渡す。
【0038】
データ構造変換部32は、データ取得部31で取得されたデータを、キャッシュメモリ20によるキャッシュ用のツリー構造(第2のツリー情報)に変換し、それをデータベース36に格納する。
【0039】
表示制御部33は、データベース36に格納された画像データを、レイアウト情報を基に表示部16に表示するとともに、ユーザの入力やコンテクストの変化により表示内容を変化させる。
【0040】
表示領域判定部34は、サーバ100から受信されたデータのレイアウト領域の中で、現在表示部16に表示されている画像が、どの部分のデータであるかを判定する。
【0041】
キャッシュ制御部35は、上記表示領域判定部34が判定した表示内容に応じて、キャッシュメモリ20へのデータの挿入またはキャッシュメモリ20からのデータの削除を実行する。
【0042】
[ツリー情報]
図4は、上記サーバ100から受信されるツリー情報を示した図である。同図に示す各ノード(A〜J)が、例えば1つのHTMLのIMGタグに相当する。
【0043】
図5は、上記ツリー情報に基づいて描画されるビューの例を示した図である。
【0044】
同図において、仮想領域Vは、上記レイアウト情報により示される画像データのレイアウト可能領域を示しており、画面表示領域Dは、上記表示部16の有する表示領域を示している。通常、画面表示領域Dの面積は、仮想領域Vのそれよりも小さい。
【0045】
仮想領域Vは、例えば5つのリージョンR1〜R5に分割されており、各リージョンには、それぞれ、上記ツリー情報にしたがって画像データA〜Jが表示される。リージョンは、例えば作成日時等の画像データの属性によって分けられる。同図の例は、表示部16に、画像データA、B及びDのみが表示されている状態を示している。
【0046】
この例のように、ツリー情報と画面表示領域Dとが単純に対応している場合には、キャッシュメモリ20に保持しておくべきデータを予測するのは比較的容易である。しかしながら、昨今では、端末ごとに多彩な表示態様が可能になってきており、ツリー構造と画面表示領域Dとが一致していない場合も多い。本実施形態では、このような場合でも効率的なキャッシュ利用が行える仕組みが提供される。
【0047】
[レイアウト情報]
図6及び図7は、上記サーバ100から受信されるレイアウト情報の例を示した図である。
【0048】
図6は、表示部16上の画像ファイルの描画位置情報とアドレス情報とを示したものである。同図の例では、仮想領域Vが3つのリージョンR1〜R3に分割され、画像ファイルがレイアウトされる位置(1−1、1−2、...、3−3、3−4)が、各リージョンの上部(N)と下部(S)とにそれぞれ2つずつ割り当てられている。
【0049】
図7は、レイアウトファイルとしてサーバ100で管理されているファイルを示したものである。当該レイアウトファイル上では、画像ファイル名と、表示上のアドレス情報(上記レイアウト位置)とが格納されている。
【0050】
[ユーザ端末の動作]
次に、以上のように構成された画像表示システムにおけるユーザ端末200の動作を説明する。この動作は、上記ユーザ端末200のCPU11の制御下において、他のハードウェア及びソフトウェア(ブラウザ)と協働して行われる。
【0051】
図8は、ユーザ端末200による画像データのキャッシュ処理の流れを示したフローチャートである。
【0052】
同図に示すように、まずCPU11は、サーバ100から画像データ、ツリー情報(第1のツリー情報)及びレイアウト情報を取得する(ステップ81)。そしてCPU11は、当該取得した画像データを、レイアウト情報を基に表示部16に表示する(ステップ82)。
【0053】
続いてCPU11は、上記レイアウト情報を基に、上記サーバ100から受信したツリー情報(第1のツリー情報)とは別に、キャッシュ用に仮想的なツリー情報(第2のツリー情報)を生成する(ステップ83)。
【0054】
図9は、当該生成される仮想的なツリー情報の例を示した図である。また図10は、図9の仮想的なツリー情報に基づいて描画される画面の例を示した図である。
【0055】
図9に示すように、当該ツリー構造においては、画像ファイルが複数のグループ(G1〜G3)に分類される。1つのグループは、表示可能領域Dに対応している。
【0056】
図10に示すように、仮想領域Vは、表示部16の表示可能領域Dの3倍に相当する面積を有している。同図では、この3画面分のグループのうち、左側のグループG1が表示対象となっている。上記サーバ100から受信したツリー情報(図4参照)に基づけば、画像ファイルA,B,Cの隣は画像ファイルD,E,F,Gであるべきであるが、レイアウト情報によって、画像ファイルH,I,Jがその位置にレイアウトされている。
【0057】
このように、レイアウト情報が複雑になると、論理的なツリー構造と画面表示とが一致しない例が多く見られるようになる。
【0058】
図8に戻り、CPU11は、続いて、画像ファイルの、仮想領域V内の表示領域の位置が変更されたか否かを判断する(ステップ84)。変更がない場合には(No)、変更がされるまで待機する(ステップ85)。
【0059】
表示領域の位置に変更があった場合(Yes)、CPU11は、キャッシュ用の仮想的なツリー情報を再構成する(ステップ86)。
【0060】
そしてCPU11は、ツリー情報を再構成した状態で、現在の表示領域の位置との関係に応じて、各リージョンにポイントを設定する(ステップ87)。当該リージョンへのポイント設定処理については後述する。
【0061】
図11は、当該仮想的なツリー情報の生成処理の詳細を示した図である。
【0062】
同図に示すように、CPU11は、まず表示領域に関する情報を取得する(ステップ111)。表示領域の情報とは、表示部16の表示可能領域Dのサイズ(面積)や解像度である。
【0063】
続いてCPU11は、上記仮想領域Vを、表示可能領域Dの面積分ずつの領域に分割する(ステップ112)。例えば上記図9及び図10の例では、仮想領域Vが3つの領域(G1〜G3)に分割されている。
【0064】
続いてCPU11は、各領域(に属する画像ファイル)を表示可能性が高い順にグループ分けする(ステップ113)。上記図9及び図10の例では、現在の表示領域からの距離の近さに応じてグループ分けがなされる。
【0065】
そしてCPU11は、各グループに上記順番に応じた番号を付与し、当該グループに属する画像ファイルを、仮想的なツリーに追加する(ステップ114)。距離以外にも、例えば、画像ファイルについてのユーザの嗜好度(再生頻度)や画像ファイルの作成日時等に基づいてグループ分けがなされてもよい。
【0066】
図9及び図10の例では、ツリーはフラットな構成となっているが、ツリーは、表示領域に応じて親子関係を持つものであってもよい。例えば、ズームインやズームアウトによって表示領域に変更がある場合には、ズームイン前またはズームアウト前の画像ファイルと、ズームイン後またはズームアウト後の画像ファイルとが親子関係を有するファイルとしてツリー上で管理されることになる。
【0067】
図12は、ユーザ端末200がリージョンごとにポイントを設定してキャッシュを管理する処理の流れを示したフローチャートである。
【0068】
同図に示すように、まずCPU11は、例えばユーザの操作等により、上記仮想領域V内での表示領域が変更されたか否かを判断する(ステップ121)。
【0069】
表示領域に変更がないと判断した場合(No)、CPU11は、サーバ100から送信されるデータの変更通知があったか否かを判断する(ステップ122)。
【0070】
サーバ100からの変更通知がないと判断した場合(No)、CPU11は、画像データのキャッシュから所定時間が経過したか否かを判断する(ステップ123)。
【0071】
上記ステップ121、122及び123でYesと判断した場合、CPU11は、キャッシュのタイムアウト処理を実行する(ステップ124)。すなわち、キャッシュメモリ20が、キャッシュ開始からの経過時間による自動削除機能を有している場合、一定時間が経過するごとにキャッシュメモリ20から、当該一定時間参照されなかったデータを消去する。
【0072】
続いてCPU11は、分割された全てのリージョンについて、それらに付与されているポイントを例えば10ポイント減算する(ステップ124)。
【0073】
続いてCPU11は、現在の表示領域からの距離に応じて、各リージョンにポイントを加算する(ステップ126)。すなわち、例えば、現在の表示領域からの距離が近いリージョンほど高いポイントが付与される。またCPU11は、現在の表示領域については特別に例えば20ポイントを加算する(ステップ127)。
【0074】
例えば、1回の画面遷移(例えば1フリック操作)により移動可能な位置が距離1とされ、例えば距離が1の場合は20ポイント、距離が2の場合は10ポイントといったように、距離に応じてポイントが付与される。
【0075】
図13は、リージョンごとにポイントが設定される例を示した図である。同図に示すように、現在の表示領域Dには50ポイントが付与されており、そこから距離が離れるにしたがってポイントが小さくなっているのが分かる。
【0076】
図12に戻り、続いてCPU11は、一定ポイント以上のリージョンに属する画像データを先読みしてキャッシュメモリ20に格納する(ステップ128)。一方、CPU11は、一定ポイント未満のリージョンに属する画像データがキャッシュメモリ20に格納されていれば、それを削除する(ステップ129)。例えば一定ポイントは10ポイントとされるが、これに限られない。
【0077】
これにより、次に表示領域となりそうなリージョンの画像データが常にキャッシュメモリ20に格納されることとなる。
【0078】
キャッシュメモリ20では、上記ポイント設定処理に関するメタデータをその内部に保持する。図14は、当該メタデータの例を示した図である。同図に示すように、ポイントが10ポイント未満の画像ファイルLとMとがキャッシュメモリ20から削除されているのが分かる。
【0079】
[まとめ]
以上のように、本実施形態によれば、ユーザ端末200は、サーバ100から送信されるツリー情報とは別に、キャッシュ用の仮想的なツリー情報を生成し、当該ツリー情報を基に、リージョン単位でキャッシュメモリ20を管理する。これによりユーザ端末200は、モデルとビューとから構成されるコンテンツ(画像データ)を事前にキャッシュし、不要になりそうなコンテンツをキャッシュから追い出すことで、効率的なキャッシュ管理を実行できる。
【0080】
[変形例]
本技術は上述の実施形態にのみ限定されるものではなく、本開示の要旨を逸脱しない範囲内において種々変更され得る。
【0081】
上述の実施形態においては、例えばユーザの操作により表示領域が変更される例が示された。しかし、ユーザの操作を伴わない場合でも、様々なコンテクストの変化に基づいてキャッシュが変更されてもよい。例えば、ユーザ端末200がGPSセンサや地磁気センサ等を有し、ユーザ端末200の位置情報に応じて表示領域が変わるような写真表示アプリケーションを有している場合、当該位置情報の変化に応じて仮想的なツリー情報が生成され、キャッシュに格納されるコンテンツが変更されてもよい。その他、気候情報の変化等の他のセンサ情報や、他のユーザ端末200の状況の変化、コンテンツの人気度の変化等に応じて、キャッシュに格納されるコンテンツが変更されてもよい。
【0082】
また、ユーザ端末200がイメージ検索アプリケーションを実行可能な場合、ユーザ端末200は、人気度の高いキーワードと、その検索結果としての画像データとの対応関係に応じて、キャッシュ用の仮想的なツリー情報を生成し、検索結果として表示される可能性の高い画像データをキャッシュメモリ20に格納していてもよい。
【0083】
上述の実施形態においては、クライアントとしてのユーザ端末200がサーバ100から画像ファイルを取得する例を示した。しかし、ユーザ端末200の機能とサーバ100の機能とは、物理的に離れたそれぞれの装置で実行される必要はない。すなわち、ユーザ端末200の機能とサーバ100の機能とが1つの機器内で論理的に役割分担されてもよい。
【0084】
例えば、ユーザ端末200の機能がブラウザとして提供され、サーバ100の機能がデーモンとして提供されてもよい。この装置における動作は、上述した実施形態における動作と比較して、サーバ100とユーザ端末200との間のネットワークを介した通信処理が、装置内部におけるブラウザとデーモンとの信号処理に替わる以外は同様となる。
【0085】
上述の実施形態においては、本技術がユーザ端末200に適用された例を示した。しかし、本技術は、オーディオプレイヤー、テレビジョン装置、ゲーム機器、カーナビゲーション装置、記録再生装置等、他のあらゆる情報処理装置に適用可能である。
【0086】
[その他]
本技術は以下のような構成をとることもできる。
(1)他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信可能な通信部と、
前記受信された複数の画像データの少なくとも一部をキャッシュ可能なキャッシュメモリと、
前記第1の面積よりも小さい第2の面積を有する表示領域を有し、前記キャッシュされた複数の画像データの一部を当該表示領域に表示可能な表示部と、
前記第2の面積と、前記受信されたレイアウト情報とを基に、前記仮想領域を複数の領域に分割し、当該複数の領域に応じて、前記複数の画像データのツリー構造を示す第2のツリー情報を生成し、当該第2のツリー情報を基に前記少なくとも一部の画像データをキャッシュするように前記キャッシュメモリを制御可能な制御部と
を具備する情報処理装置。
(2)上記(1)に記載の情報処理装置であって、
前記制御部は、前記複数の領域にそれぞれポイントを付与し、所定値以上のポイントを付与された領域にレイアウトされる画像データを前記キャッシュメモリにキャッシュし、当該所定値未満のポイントを付与された領域にレイアウトされる画像データを前記キャッシュメモリから消去するように前記キャッシュメモリを制御する
情報処理装置。
(3)上記(2)に記載の情報処理装置であって、
前記制御部は、前記表示領域に表示される画像データが変更された場合に、当該変更後の画像データを基に、前記第2のツリー情報を再生成し、前記各領域に付与されるポイントを再計算する
情報処理装置。
(4)上記(2)または(3)に記載の情報処理装置であって、
前記制御部は、前記複数の領域のうち、前記表示領域に表示されている画像データがレイアウトされている領域と他の領域との距離が小さいほど前記ポイントが高くなるように、前記複数の領域に付与されるポイントを計算する
情報処理装置。
(5)上記(4)に記載の情報処理装置であって、
前記制御部は、前記表示領域に表示されている画像データがレイアウトされている領域には、前記距離に応じたポイントに加えて別途ポイントを付与する
情報処理装置。
【符号の説明】
【0087】
11…CPU
16…表示部
17…操作受付部
19…通信部
20…キャッシュメモリ
31…データ取得部
32…データ構造変換部
33…表示制御部
34…表示領域判定部
35…キャッシュ制御部
36…データベース
50…インターネット
100…サーバ
200…ユーザ端末
【技術分野】
【0001】
本技術は、キャッシュメモリを有する情報処理装置、当該情報処理装置における情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、クライアント端末がネットワーク経由でウェブブラウザによりアプリケーションを実行するようになり、またクライアント端末の種類が増加したことに伴い、サーバでは、クライアント端末の画面への表示内容を構成要素データ(モデル)と表示方法データ(ビュー)とに分けて保持しておくことが一般的になっている。例えば、サーバはウェブページをHTML(HyperText Markup Language)とCSS(Cascading Style Sheets)とに分けてクライアント端末へ送信し表示させている。これにより、クライアント端末におけるロード時間が短縮し、処理効率が向上することから、表示処理の見かけ上の実行速度が向上する。
【0003】
一方、ブラウザによる表示処理を高速化する別の手法として、クライアント側で、必要となるデータを事前にキャッシュしておくことも行われている。例えば下記特許文献1には、選択操作、戻る操作、スクロール操作等のユーザ入力を検知しながらデータを先読みして画面遷移を快適に行う情報処理装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−160441号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1に記載の技術は、表示されるデータのレイアウトが予め固定されていることを前提にしている。したがって当該技術は、上述のように、画面の表示内容がモデルとビューとに分かれたデータを扱う場合には実現が困難である。
【0006】
以上のような事情に鑑み、本技術の目的は、モデルとビューとから構成される表示用データを効率的にキャッシュすることが可能な情報処理装置、情報処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0007】
上述の課題を解決するため、本技術の一形態に係る情報処理装置は、通信部と、キャッシュメモリと、表示部と、制御部とを有する。上記通信部は、他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信可能である。上記キャッシュメモリは、上記受信された複数の画像データの少なくとも一部をキャッシュ可能である。上記表示部は、上記第1の面積よりも小さい第2の面積を有する表示領域を有し、上記キャッシュされた複数の画像データの一部を当該表示領域に表示可能である。上記制御部は、上記第2の面積と、上記受信されたレイアウト情報とを基に、上記仮想領域を複数の領域に分割可能である。また制御部は、当該複数の領域に応じて、上記複数の画像データのツリー構造を示す第2のツリー情報を生成可能である。さらに制御部は、当該第2のツリー情報を基に上記少なくとも一部の画像データをキャッシュするように上記キャッシュメモリを制御可能である。
【0008】
これにより情報処理装置は、キャッシュ用の第2のツリー情報を生成することで、モデル(複数の画像データまたは第1のツリー情報)とビュー(レイアウト情報)とから構成される表示用データを効率的にキャッシュすることができる。
【0009】
上記制御部は、上記複数の領域にそれぞれポイントを付与し、所定値以上のポイントを付与された領域にレイアウトされる画像データを上記キャッシュメモリにキャッシュし、当該所定値未満のポイントを付与された領域にレイアウトされる画像データを上記キャッシュメモリから消去するように上記キャッシュメモリを制御可能であってもよい。
【0010】
これにより情報処理装置は、各領域にポイントを付与することで、次に表示される可能性の高い領域の画像データをキャッシュし、表示される可能性が低い領域の画像データをキャッシュから消去できる。
【0011】
上記制御部は、上記表示領域に表示される画像データが変更された場合に、当該変更後の画像データを基に、上記第2のツリー情報を再生成し、上記各領域に付与されるポイントを再計算してもよい。
【0012】
これにより情報処理装置は、表示領域の画像データが変更されるたびに、キャッシュする、またはキャッシュから消去する画像データを変更し、最適なキャッシュ状態を維持することができる。ここで、画像データの変更は、ユーザのスクロール操作のような画面遷移以外にも、例えば情報処理装置の位置や、情報処理装置が有する各種センサの出力によっても生じ得る。
【0013】
上記制御部は、上記複数の領域のうち、上記表示領域に表示されている画像データがレイアウトされている領域と他の領域との距離が小さいほど上記ポイントが高くなるように、上記複数の領域に付与されるポイントを計算してもよい。
【0014】
これにより情報処理装置は、現在表示中の画像データの領域からの距離が近い画像データをキャッシュし、距離が遠い画像データをキャッシュから消去することができる。
【0015】
上記制御部は、上記表示領域に表示されている画像データがレイアウトされている領域には、上記距離に応じたポイントに加えて別途ポイントを付与してもよい。
【0016】
これにより情報処理装置は、現在表示されている画像データを確実にキャッシュしておくことができる。
【0017】
本技術の他の形態に係る情報処理方法は、他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信することを含む。上記第1の面積よりも小さい第2の面積を有する表示領域を有する表示部に、上記受信された複数の画像データの一部が表示される。上記第2の面積と、上記受信されたレイアウト情報とを基に、上記仮想領域を複数の領域に分割される。当該複数の領域に応じて、上記複数の画像データのツリー構造を示す第2のツリー情報が生成される。当該第2のツリー情報を基に前記少なくとも一部の画像データがキャッシュされる。
【0018】
本技術の他の形態に係るプログラムは、情報処理装置に、受信ステップと、表示ステップと、生成ステップと、キャッシュステップとを実行させる。上記受信ステップでは、他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とが受信される。上記表示ステップでは、上記第1の面積よりも小さい第2の面積を有する表示領域を有する表示部に、上記受信された複数の画像データの一部が表示される。上記生成ステップでは、上記第2の面積と、上記受信されたレイアウト情報とを基に、上記仮想領域が複数の領域に分割され、当該複数の領域に応じて、上記複数の画像データのツリー構造を示す第2のツリー情報が生成される。上記キャッシュ/消去ステップでは、上記第2のツリー情報を基に上記少なくとも一部の画像データがキャッシュされる。
【発明の効果】
【0019】
以上のように、本技術によれば、モデルとビューとから構成される表示用データを効率的にキャッシュすることができる。
【図面の簡単な説明】
【0020】
【図1】本技術の一実施形態における画像表示システムの構成を示す図である。
【図2】上記画像表示システムにおけるユーザ端末のハードウェア構成を示した図である。
【図3】上記ユーザ端末が有するソフトウェアを示した機能ブロック図である。
【図4】上記ユーザ端末がサーバから受信するツリー情報の例を示した図である。
【図5】図4のツリー情報に基づいて描画されるビューの例を示した図である。
【図6】上記ユーザ端末がサーバから受信するレイアウト情報の例を示した図である。
【図7】上記ユーザ端末がサーバから受信するレイアウト情報の例を示した図である。
【図8】ユーザ端末によるキャッシュ処理の流れを示したフローチャートである。
【図9】上記ユーザ端末により生成される仮想的なツリー情報の例を示した図である。
【図10】図9の仮想的なツリー情報に基づいて描画される画面の例を示した図である。
【図11】ユーザ端末が仮想的なツリー情報を生成する処理の流れを示したフローチャートである。
【図12】ユーザ端末がリージョンごとにポイントを設定してキャッシュを管理する処理の流れを示したフローチャートである。
【図13】リージョンごとにポイントが設定される例を示した図である。
【図14】ポイント設定処理に関するキャッシュメモリ内部のメタデータの例を示した図である。
【発明を実施するための形態】
【0021】
以下、本技術に係る実施形態を、図面を参照しながら説明する。
【0022】
[システムの概要]
図1は、本技術の一実施形態における画像表示システムの構成を示す図である。
【0023】
同図に示すように、このシステムは、サーバ100とユーザ端末200とで構成される。両者はインターネット50等のネットワークにより互いに通信可能とされている。
【0024】
ユーザ端末200は複数存在しうる。ユーザ端末200は、典型的には、例えばスマートフォン、携帯電話機、タブレットPC等の携帯端末であるが、デスクトップ型やノートブック型のPC、電子書籍リーダー、携帯型AV(Audio/Visual)機器等、あらゆる情報処理装置でありうる。
【0025】
ユーザ端末200は、サーバ100から大量の画像をダウンロードして、それらをユーザインタフェースにより表示する。本実施形態では、特に、モデルとビューとが分離されたユーザインタフェースのアーキテクチャが対象とされている。モデルとビューとが分離されたユーザインタフェースでは、サーバ100ではモデル情報を管理し、クライアント側のユーザ端末200は、その機器属性やユーザ入力等に応じてビューを変化させる。これにより、様々な種別のユーザ端末200に対応可能な柔軟システムが実現される。ここで、モデル情報とは、ページデータや画像データのデータベースを指し、ビュー情報は描画用のツリー構造、レイアウト情報、デザインテンプレート等が想定される。より広い意味では、ツリー構造もモデル情報と見なし得る。
【0026】
ユーザ端末200は、サーバ100へ、ウェブブラウザ(以下、単にブラウザと称する)のユーザインタフェースを介して、複数の画像ファイルを含むウェブページをリクエストする。サーバ100は当該リクエストに応じて、ウェブページ及び画像ファイルを、当該画像ファイルのツリー構造を示すツリー情報(例えば、DOM(Document Object Model)ツリー)や画像ファイルのレイアウト情報と共にユーザ端末200へ送信する。
【0027】
[ユーザ端末のハードウェア構成]
図2は、上記ユーザ端末200のハードウェア構成を示した図である。同図に示すように、ユーザ端末200は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、入出力インタフェース15、及び、これらを互いに接続するバス14を備える。
【0028】
CPU11は、必要に応じてRAM13等に適宜アクセスし、各種演算処理を行いながらユーザ端末200の各ブロック全体を統括的に制御する。ROM12は、CPU11に実行させるOS、プログラムや各種パラメータなどのファームウェアが固定的に記憶されている不揮発性のメモリである。RAM13は、例えばDRAM(Dynamic RAM)であり、ユーザ端末200のメインメモリとして用いられる。RAM13は、CPU11の作業用領域として、OS、実行中の各種アプリケーション、処理中の各種データを一時的に保持する。
【0029】
また、CPU11の内部には、キャッシュメモリ20が設けられている。キャッシュメモリ20は、サーバ100から受信した画像データをキャッシュする。キャッシュメモリ20は例えばSRAM(Static RAM)であるが、高速な読み書きが可能な一次記憶装置として用いることができればどのような記憶素子であっても構わない。キャッシュメモリ20の内部では、キーと値のペアによりデータが保持される。
【0030】
入出力インタフェース15には、表示部16、操作受付部17、記憶部18、通信部19等が接続される。
【0031】
表示部16は、例えばLCD、OELD、CRT(Cathode Ray Tube)等を用いた表示デバイスであり、サーバ100から受信した画像データを表示する。
【0032】
操作受付部17は、例えばマウス等のポインティングデバイス、キーボード、タッチパネル、その他の入力装置である。操作受付部17がタッチパネルである場合、そのタッチパネルは表示部16と一体となり得る。
【0033】
記憶部18は、例えばHDD(Hard Disk Drive)や、フラッシュメモリ(SSD;Solid State Drive)、その他の固体メモリ等の不揮発性メモリである。当該記憶部18には、上記OSや各種アプリケーション、各種データが記憶される。
【0034】
通信部19は、インターネット50やLANに有線接続するためのNIC等であり、サーバ100との間の通信処理(リクエストの送信やレスポンスの受信)を担う。
【0035】
[ユーザ端末のソフトウェア構成]
図4は、上記ユーザ端末200が有するソフトウェアモジュールを示した機能ブロック図である。当該ソフトウェアモジュールは、例えば、時系列で並んだ大量の画像(写真)データを一覧表示するアプリケーションの機能として設けられるが、これに限られない。
【0036】
同図に示すように、ユーザ端末200は、データ取得部31、データ構造変換部32、表示制御部33、表示領域判定部34、キャッシュ制御部35及びデータベース36を有する。
【0037】
データ取得部31は、サーバ100から、画像データ、ツリー情報(第1のツリー情報)、レイアウト情報をネットワーク経由で取得し、データ構造変換部32へ引き渡す。
【0038】
データ構造変換部32は、データ取得部31で取得されたデータを、キャッシュメモリ20によるキャッシュ用のツリー構造(第2のツリー情報)に変換し、それをデータベース36に格納する。
【0039】
表示制御部33は、データベース36に格納された画像データを、レイアウト情報を基に表示部16に表示するとともに、ユーザの入力やコンテクストの変化により表示内容を変化させる。
【0040】
表示領域判定部34は、サーバ100から受信されたデータのレイアウト領域の中で、現在表示部16に表示されている画像が、どの部分のデータであるかを判定する。
【0041】
キャッシュ制御部35は、上記表示領域判定部34が判定した表示内容に応じて、キャッシュメモリ20へのデータの挿入またはキャッシュメモリ20からのデータの削除を実行する。
【0042】
[ツリー情報]
図4は、上記サーバ100から受信されるツリー情報を示した図である。同図に示す各ノード(A〜J)が、例えば1つのHTMLのIMGタグに相当する。
【0043】
図5は、上記ツリー情報に基づいて描画されるビューの例を示した図である。
【0044】
同図において、仮想領域Vは、上記レイアウト情報により示される画像データのレイアウト可能領域を示しており、画面表示領域Dは、上記表示部16の有する表示領域を示している。通常、画面表示領域Dの面積は、仮想領域Vのそれよりも小さい。
【0045】
仮想領域Vは、例えば5つのリージョンR1〜R5に分割されており、各リージョンには、それぞれ、上記ツリー情報にしたがって画像データA〜Jが表示される。リージョンは、例えば作成日時等の画像データの属性によって分けられる。同図の例は、表示部16に、画像データA、B及びDのみが表示されている状態を示している。
【0046】
この例のように、ツリー情報と画面表示領域Dとが単純に対応している場合には、キャッシュメモリ20に保持しておくべきデータを予測するのは比較的容易である。しかしながら、昨今では、端末ごとに多彩な表示態様が可能になってきており、ツリー構造と画面表示領域Dとが一致していない場合も多い。本実施形態では、このような場合でも効率的なキャッシュ利用が行える仕組みが提供される。
【0047】
[レイアウト情報]
図6及び図7は、上記サーバ100から受信されるレイアウト情報の例を示した図である。
【0048】
図6は、表示部16上の画像ファイルの描画位置情報とアドレス情報とを示したものである。同図の例では、仮想領域Vが3つのリージョンR1〜R3に分割され、画像ファイルがレイアウトされる位置(1−1、1−2、...、3−3、3−4)が、各リージョンの上部(N)と下部(S)とにそれぞれ2つずつ割り当てられている。
【0049】
図7は、レイアウトファイルとしてサーバ100で管理されているファイルを示したものである。当該レイアウトファイル上では、画像ファイル名と、表示上のアドレス情報(上記レイアウト位置)とが格納されている。
【0050】
[ユーザ端末の動作]
次に、以上のように構成された画像表示システムにおけるユーザ端末200の動作を説明する。この動作は、上記ユーザ端末200のCPU11の制御下において、他のハードウェア及びソフトウェア(ブラウザ)と協働して行われる。
【0051】
図8は、ユーザ端末200による画像データのキャッシュ処理の流れを示したフローチャートである。
【0052】
同図に示すように、まずCPU11は、サーバ100から画像データ、ツリー情報(第1のツリー情報)及びレイアウト情報を取得する(ステップ81)。そしてCPU11は、当該取得した画像データを、レイアウト情報を基に表示部16に表示する(ステップ82)。
【0053】
続いてCPU11は、上記レイアウト情報を基に、上記サーバ100から受信したツリー情報(第1のツリー情報)とは別に、キャッシュ用に仮想的なツリー情報(第2のツリー情報)を生成する(ステップ83)。
【0054】
図9は、当該生成される仮想的なツリー情報の例を示した図である。また図10は、図9の仮想的なツリー情報に基づいて描画される画面の例を示した図である。
【0055】
図9に示すように、当該ツリー構造においては、画像ファイルが複数のグループ(G1〜G3)に分類される。1つのグループは、表示可能領域Dに対応している。
【0056】
図10に示すように、仮想領域Vは、表示部16の表示可能領域Dの3倍に相当する面積を有している。同図では、この3画面分のグループのうち、左側のグループG1が表示対象となっている。上記サーバ100から受信したツリー情報(図4参照)に基づけば、画像ファイルA,B,Cの隣は画像ファイルD,E,F,Gであるべきであるが、レイアウト情報によって、画像ファイルH,I,Jがその位置にレイアウトされている。
【0057】
このように、レイアウト情報が複雑になると、論理的なツリー構造と画面表示とが一致しない例が多く見られるようになる。
【0058】
図8に戻り、CPU11は、続いて、画像ファイルの、仮想領域V内の表示領域の位置が変更されたか否かを判断する(ステップ84)。変更がない場合には(No)、変更がされるまで待機する(ステップ85)。
【0059】
表示領域の位置に変更があった場合(Yes)、CPU11は、キャッシュ用の仮想的なツリー情報を再構成する(ステップ86)。
【0060】
そしてCPU11は、ツリー情報を再構成した状態で、現在の表示領域の位置との関係に応じて、各リージョンにポイントを設定する(ステップ87)。当該リージョンへのポイント設定処理については後述する。
【0061】
図11は、当該仮想的なツリー情報の生成処理の詳細を示した図である。
【0062】
同図に示すように、CPU11は、まず表示領域に関する情報を取得する(ステップ111)。表示領域の情報とは、表示部16の表示可能領域Dのサイズ(面積)や解像度である。
【0063】
続いてCPU11は、上記仮想領域Vを、表示可能領域Dの面積分ずつの領域に分割する(ステップ112)。例えば上記図9及び図10の例では、仮想領域Vが3つの領域(G1〜G3)に分割されている。
【0064】
続いてCPU11は、各領域(に属する画像ファイル)を表示可能性が高い順にグループ分けする(ステップ113)。上記図9及び図10の例では、現在の表示領域からの距離の近さに応じてグループ分けがなされる。
【0065】
そしてCPU11は、各グループに上記順番に応じた番号を付与し、当該グループに属する画像ファイルを、仮想的なツリーに追加する(ステップ114)。距離以外にも、例えば、画像ファイルについてのユーザの嗜好度(再生頻度)や画像ファイルの作成日時等に基づいてグループ分けがなされてもよい。
【0066】
図9及び図10の例では、ツリーはフラットな構成となっているが、ツリーは、表示領域に応じて親子関係を持つものであってもよい。例えば、ズームインやズームアウトによって表示領域に変更がある場合には、ズームイン前またはズームアウト前の画像ファイルと、ズームイン後またはズームアウト後の画像ファイルとが親子関係を有するファイルとしてツリー上で管理されることになる。
【0067】
図12は、ユーザ端末200がリージョンごとにポイントを設定してキャッシュを管理する処理の流れを示したフローチャートである。
【0068】
同図に示すように、まずCPU11は、例えばユーザの操作等により、上記仮想領域V内での表示領域が変更されたか否かを判断する(ステップ121)。
【0069】
表示領域に変更がないと判断した場合(No)、CPU11は、サーバ100から送信されるデータの変更通知があったか否かを判断する(ステップ122)。
【0070】
サーバ100からの変更通知がないと判断した場合(No)、CPU11は、画像データのキャッシュから所定時間が経過したか否かを判断する(ステップ123)。
【0071】
上記ステップ121、122及び123でYesと判断した場合、CPU11は、キャッシュのタイムアウト処理を実行する(ステップ124)。すなわち、キャッシュメモリ20が、キャッシュ開始からの経過時間による自動削除機能を有している場合、一定時間が経過するごとにキャッシュメモリ20から、当該一定時間参照されなかったデータを消去する。
【0072】
続いてCPU11は、分割された全てのリージョンについて、それらに付与されているポイントを例えば10ポイント減算する(ステップ124)。
【0073】
続いてCPU11は、現在の表示領域からの距離に応じて、各リージョンにポイントを加算する(ステップ126)。すなわち、例えば、現在の表示領域からの距離が近いリージョンほど高いポイントが付与される。またCPU11は、現在の表示領域については特別に例えば20ポイントを加算する(ステップ127)。
【0074】
例えば、1回の画面遷移(例えば1フリック操作)により移動可能な位置が距離1とされ、例えば距離が1の場合は20ポイント、距離が2の場合は10ポイントといったように、距離に応じてポイントが付与される。
【0075】
図13は、リージョンごとにポイントが設定される例を示した図である。同図に示すように、現在の表示領域Dには50ポイントが付与されており、そこから距離が離れるにしたがってポイントが小さくなっているのが分かる。
【0076】
図12に戻り、続いてCPU11は、一定ポイント以上のリージョンに属する画像データを先読みしてキャッシュメモリ20に格納する(ステップ128)。一方、CPU11は、一定ポイント未満のリージョンに属する画像データがキャッシュメモリ20に格納されていれば、それを削除する(ステップ129)。例えば一定ポイントは10ポイントとされるが、これに限られない。
【0077】
これにより、次に表示領域となりそうなリージョンの画像データが常にキャッシュメモリ20に格納されることとなる。
【0078】
キャッシュメモリ20では、上記ポイント設定処理に関するメタデータをその内部に保持する。図14は、当該メタデータの例を示した図である。同図に示すように、ポイントが10ポイント未満の画像ファイルLとMとがキャッシュメモリ20から削除されているのが分かる。
【0079】
[まとめ]
以上のように、本実施形態によれば、ユーザ端末200は、サーバ100から送信されるツリー情報とは別に、キャッシュ用の仮想的なツリー情報を生成し、当該ツリー情報を基に、リージョン単位でキャッシュメモリ20を管理する。これによりユーザ端末200は、モデルとビューとから構成されるコンテンツ(画像データ)を事前にキャッシュし、不要になりそうなコンテンツをキャッシュから追い出すことで、効率的なキャッシュ管理を実行できる。
【0080】
[変形例]
本技術は上述の実施形態にのみ限定されるものではなく、本開示の要旨を逸脱しない範囲内において種々変更され得る。
【0081】
上述の実施形態においては、例えばユーザの操作により表示領域が変更される例が示された。しかし、ユーザの操作を伴わない場合でも、様々なコンテクストの変化に基づいてキャッシュが変更されてもよい。例えば、ユーザ端末200がGPSセンサや地磁気センサ等を有し、ユーザ端末200の位置情報に応じて表示領域が変わるような写真表示アプリケーションを有している場合、当該位置情報の変化に応じて仮想的なツリー情報が生成され、キャッシュに格納されるコンテンツが変更されてもよい。その他、気候情報の変化等の他のセンサ情報や、他のユーザ端末200の状況の変化、コンテンツの人気度の変化等に応じて、キャッシュに格納されるコンテンツが変更されてもよい。
【0082】
また、ユーザ端末200がイメージ検索アプリケーションを実行可能な場合、ユーザ端末200は、人気度の高いキーワードと、その検索結果としての画像データとの対応関係に応じて、キャッシュ用の仮想的なツリー情報を生成し、検索結果として表示される可能性の高い画像データをキャッシュメモリ20に格納していてもよい。
【0083】
上述の実施形態においては、クライアントとしてのユーザ端末200がサーバ100から画像ファイルを取得する例を示した。しかし、ユーザ端末200の機能とサーバ100の機能とは、物理的に離れたそれぞれの装置で実行される必要はない。すなわち、ユーザ端末200の機能とサーバ100の機能とが1つの機器内で論理的に役割分担されてもよい。
【0084】
例えば、ユーザ端末200の機能がブラウザとして提供され、サーバ100の機能がデーモンとして提供されてもよい。この装置における動作は、上述した実施形態における動作と比較して、サーバ100とユーザ端末200との間のネットワークを介した通信処理が、装置内部におけるブラウザとデーモンとの信号処理に替わる以外は同様となる。
【0085】
上述の実施形態においては、本技術がユーザ端末200に適用された例を示した。しかし、本技術は、オーディオプレイヤー、テレビジョン装置、ゲーム機器、カーナビゲーション装置、記録再生装置等、他のあらゆる情報処理装置に適用可能である。
【0086】
[その他]
本技術は以下のような構成をとることもできる。
(1)他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信可能な通信部と、
前記受信された複数の画像データの少なくとも一部をキャッシュ可能なキャッシュメモリと、
前記第1の面積よりも小さい第2の面積を有する表示領域を有し、前記キャッシュされた複数の画像データの一部を当該表示領域に表示可能な表示部と、
前記第2の面積と、前記受信されたレイアウト情報とを基に、前記仮想領域を複数の領域に分割し、当該複数の領域に応じて、前記複数の画像データのツリー構造を示す第2のツリー情報を生成し、当該第2のツリー情報を基に前記少なくとも一部の画像データをキャッシュするように前記キャッシュメモリを制御可能な制御部と
を具備する情報処理装置。
(2)上記(1)に記載の情報処理装置であって、
前記制御部は、前記複数の領域にそれぞれポイントを付与し、所定値以上のポイントを付与された領域にレイアウトされる画像データを前記キャッシュメモリにキャッシュし、当該所定値未満のポイントを付与された領域にレイアウトされる画像データを前記キャッシュメモリから消去するように前記キャッシュメモリを制御する
情報処理装置。
(3)上記(2)に記載の情報処理装置であって、
前記制御部は、前記表示領域に表示される画像データが変更された場合に、当該変更後の画像データを基に、前記第2のツリー情報を再生成し、前記各領域に付与されるポイントを再計算する
情報処理装置。
(4)上記(2)または(3)に記載の情報処理装置であって、
前記制御部は、前記複数の領域のうち、前記表示領域に表示されている画像データがレイアウトされている領域と他の領域との距離が小さいほど前記ポイントが高くなるように、前記複数の領域に付与されるポイントを計算する
情報処理装置。
(5)上記(4)に記載の情報処理装置であって、
前記制御部は、前記表示領域に表示されている画像データがレイアウトされている領域には、前記距離に応じたポイントに加えて別途ポイントを付与する
情報処理装置。
【符号の説明】
【0087】
11…CPU
16…表示部
17…操作受付部
19…通信部
20…キャッシュメモリ
31…データ取得部
32…データ構造変換部
33…表示制御部
34…表示領域判定部
35…キャッシュ制御部
36…データベース
50…インターネット
100…サーバ
200…ユーザ端末
【特許請求の範囲】
【請求項1】
他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信可能な通信部と、
前記受信された複数の画像データの少なくとも一部をキャッシュ可能なキャッシュメモリと、
前記第1の面積よりも小さい第2の面積を有する表示領域を有し、前記キャッシュされた複数の画像データの一部を当該表示領域に表示可能な表示部と、
前記第2の面積と、前記受信されたレイアウト情報とを基に、前記仮想領域を複数の領域に分割し、当該複数の領域に応じて、前記複数の画像データのツリー構造を示す第2のツリー情報を生成し、当該第2のツリー情報を基に前記少なくとも一部の画像データをキャッシュするように前記キャッシュメモリを制御可能な制御部と
を具備する情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記制御部は、前記複数の領域にそれぞれポイントを付与し、所定値以上のポイントを付与された領域にレイアウトされる画像データを前記キャッシュメモリにキャッシュし、当該所定値未満のポイントを付与された領域にレイアウトされる画像データを前記キャッシュメモリから消去するように前記キャッシュメモリを制御する
情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
前記制御部は、前記表示領域に表示される画像データが変更された場合に、当該変更後の画像データを基に、前記第2のツリー情報を再生成し、前記各領域に付与されるポイントを再計算する
情報処理装置。
【請求項4】
請求項2に記載の情報処理装置であって、
前記制御部は、前記複数の領域のうち、前記表示領域に表示されている画像データがレイアウトされている領域と他の領域との距離が小さいほど前記ポイントが高くなるように、前記複数の領域に付与されるポイントを計算する
情報処理装置。
【請求項5】
請求項4に記載の情報処理装置であって、
前記制御部は、前記表示領域に表示されている画像データがレイアウトされている領域には、前記距離に応じたポイントに加えて別途ポイントを付与する
情報処理装置。
【請求項6】
他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信し、
前記第1の面積よりも小さい第2の面積を有する表示領域を有する表示部に、前記受信された複数の画像データの一部を表示し、
前記第2の面積と、前記受信されたレイアウト情報とを基に、前記仮想領域を複数の領域に分割し、当該複数の領域に応じて、前記複数の画像データのツリー構造を示す第2のツリー情報を生成し、
前記第2のツリー情報を基に前記少なくとも一部の画像データをキャッシュする
情報処理方法。
【請求項7】
情報処理装置に、
他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信するステップと、
前記第1の面積よりも小さい第2の面積を有する表示領域を有する表示部に、前記受信された複数の画像データの一部を表示するステップと、
前記第2の面積と、前記受信されたレイアウト情報とを基に、前記仮想領域を複数の領域に分割し、当該複数の領域に応じて、前記複数の画像データのツリー構造を示す第2のツリー情報を生成するステップと、
前記第2のツリー情報を基に前記少なくとも一部の画像データをキャッシュするステップと
を実行させるプログラム。
【請求項1】
他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信可能な通信部と、
前記受信された複数の画像データの少なくとも一部をキャッシュ可能なキャッシュメモリと、
前記第1の面積よりも小さい第2の面積を有する表示領域を有し、前記キャッシュされた複数の画像データの一部を当該表示領域に表示可能な表示部と、
前記第2の面積と、前記受信されたレイアウト情報とを基に、前記仮想領域を複数の領域に分割し、当該複数の領域に応じて、前記複数の画像データのツリー構造を示す第2のツリー情報を生成し、当該第2のツリー情報を基に前記少なくとも一部の画像データをキャッシュするように前記キャッシュメモリを制御可能な制御部と
を具備する情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記制御部は、前記複数の領域にそれぞれポイントを付与し、所定値以上のポイントを付与された領域にレイアウトされる画像データを前記キャッシュメモリにキャッシュし、当該所定値未満のポイントを付与された領域にレイアウトされる画像データを前記キャッシュメモリから消去するように前記キャッシュメモリを制御する
情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
前記制御部は、前記表示領域に表示される画像データが変更された場合に、当該変更後の画像データを基に、前記第2のツリー情報を再生成し、前記各領域に付与されるポイントを再計算する
情報処理装置。
【請求項4】
請求項2に記載の情報処理装置であって、
前記制御部は、前記複数の領域のうち、前記表示領域に表示されている画像データがレイアウトされている領域と他の領域との距離が小さいほど前記ポイントが高くなるように、前記複数の領域に付与されるポイントを計算する
情報処理装置。
【請求項5】
請求項4に記載の情報処理装置であって、
前記制御部は、前記表示領域に表示されている画像データがレイアウトされている領域には、前記距離に応じたポイントに加えて別途ポイントを付与する
情報処理装置。
【請求項6】
他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信し、
前記第1の面積よりも小さい第2の面積を有する表示領域を有する表示部に、前記受信された複数の画像データの一部を表示し、
前記第2の面積と、前記受信されたレイアウト情報とを基に、前記仮想領域を複数の領域に分割し、当該複数の領域に応じて、前記複数の画像データのツリー構造を示す第2のツリー情報を生成し、
前記第2のツリー情報を基に前記少なくとも一部の画像データをキャッシュする
情報処理方法。
【請求項7】
情報処理装置に、
他の情報処理装置から、第1の面積を有する仮想領域にレイアウトされ得る複数の画像データと、当該複数の画像データのツリー構造を示す第1のツリー情報と、当該複数の画像データのレイアウトを示すレイアウト情報とを受信するステップと、
前記第1の面積よりも小さい第2の面積を有する表示領域を有する表示部に、前記受信された複数の画像データの一部を表示するステップと、
前記第2の面積と、前記受信されたレイアウト情報とを基に、前記仮想領域を複数の領域に分割し、当該複数の領域に応じて、前記複数の画像データのツリー構造を示す第2のツリー情報を生成するステップと、
前記第2のツリー情報を基に前記少なくとも一部の画像データをキャッシュするステップと
を実行させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2013−20395(P2013−20395A)
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【出願番号】特願2011−152487(P2011−152487)
【出願日】平成23年7月11日(2011.7.11)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【出願日】平成23年7月11日(2011.7.11)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]