JP4852012B2 - 画像を処理する装置、画像の更新を検出する方法およびプログラム - Google Patents

画像を処理する装置、画像の更新を検出する方法およびプログラム Download PDF

Info

Publication number
JP4852012B2
JP4852012B2 JP2007228052A JP2007228052A JP4852012B2 JP 4852012 B2 JP4852012 B2 JP 4852012B2 JP 2007228052 A JP2007228052 A JP 2007228052A JP 2007228052 A JP2007228052 A JP 2007228052A JP 4852012 B2 JP4852012 B2 JP 4852012B2
Authority
JP
Japan
Prior art keywords
page
image information
image
unit
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007228052A
Other languages
English (en)
Other versions
JP2009037581A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007228052A priority Critical patent/JP4852012B2/ja
Priority to US12/073,841 priority patent/US8045828B2/en
Priority to CN2008101334150A priority patent/CN101383040B/zh
Publication of JP2009037581A publication Critical patent/JP2009037581A/ja
Application granted granted Critical
Publication of JP4852012B2 publication Critical patent/JP4852012B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Image Input (AREA)
  • Digital Computer Display Output (AREA)
  • Information Transfer Between Computers (AREA)
  • Storing Facsimile Image Data (AREA)

Description

この発明は、ネットワークを介して接続された端末装置に転送する画像情報を生成する装置、画像の更新を検出する方法およびプログラムに関するものである。
一般に、PC(Personal Computer)などのように画像を表示する機能を有する計算機は、ディスプレイに表示するグラフィックデータ(画像情報)を保持するVRAM(Video Random Access Memory)などのフレームバッファを備えている。フレームバッファはX−Y座標に対応したメモリ領域であり、ラスタスキャン方式に従った順序でリニアに並んだアドレスを有する。LCD(Liquid Crystal Display)コントローラやCRT(Cathode Ray Tube)コントローラは、ラスタスキャンに合わせてフレームバッファから画像情報を取得してモニタに表示する。
このように、従来の計算機のグラフィックデバイスのフレームバッファは、計算機に接続されたモニタに表示するときに有利となるように、画面表示のラスタ方向に線形に画面データを配置する構成となっている。
一方、仮想計算機サーバ上で動作しているアプリケーション等の表示画面を端末装置上に表示するシステムや、他の端末装置を遠隔操作するシステムなどが開発されている。このようなシステムでは、フレームバッファから取得した画像情報を外部装置に転送する必要がある。
例えば、特許文献1では、ローカル端末からリモート端末を遠隔操作するリモート操作システムに関する技術が提案されている。具体的には、特許文献1は、セキュリティ向上、省電力化を目的として、リモート操作中に操作対象となるリモート端末の画面を省電力モードとするとともに、操作元の端末側でのパスフレーズの入力でリモート端末のロック状態を解除する方法を開示している。
一般に、特許文献1を含む従来の技術では、デスクトップ画面の更新でフレームバッファに書き込まれるべきデータと遠隔操作用端末に転送されるべきデータを判断し、更新された部分の画像情報のみを転送する。このようにして、ハイスペックなグラフィック機能を有する計算機における通信負荷の増大に対処している。また、通信負荷を軽減するために転送時に画像圧縮を行う方法も知られている。
フレームバッファに記憶された画像情報の更新部分の検出方法としては、フレームバッファへ書き込みを行うソフトウェアが更新部分の座標情報を申告する方法が存在する。しかし、更新部分の座標情報を申告するようにソフトウェアの手続きを変更する必要があることや、申告のためのオーバヘッドが増大することなどの欠点がある。
また、仮想メモリ管理の機能を有するプロセッサの場合であれば、メモリ管理ユニット(MMU:Memory Management Unit)を用いて、画像情報の更新部分を検出する方法も考えられる。MMUは、通常、仮想アドレスから物理アドレスを求めるための変換テーブルを備えている。そして、変換テーブルには、ページごとの書込み有無を判断するためのビット値(dirty bit)が設定される。そこで、MMUを用いる方法では、dirty bitの値によって更新されたページを検出し、検出したページを対象として画像情報の更新部分を検出する。
特開2003−85135号公報
しかしながら、変換テーブルのdirty bitを用いる方法では、更新部分の検出効率が悪化する場合があるという問題があった。例えば、1024×768ピクセルの画面で、1ピクセルあたりのデータ量が4バイトであり、かつ、1ページが4096バイトであるようなフレームバッファの構造の場合、ラスタ方向の1ラインが1ページに相当する。
このため、例えば矩形の図形を比較的多く扱うデスクトップアプリケーションなどで、矩形領域が更新された場合であれば、この矩形の高さに相当するラインと同数のページの更新が検出されることになる。そして、検出された更新ページそれぞれを用いて矩形の更新部分を検出する必要が生じる。すなわち、更新ページに占める更新部分の割合が小さくなるため、より多くの更新ページを対象として更新部分の検出処理を実行しなければならない。
本発明は、上記に鑑みてなされたものであって、仮想メモリ方式でフレームバッファを管理する場合の、画像の更新部分検出に関する処理の負荷を軽減することができる装置、画像の更新を検出する方法およびプログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、ネットワークを介して接続された端末装置に画面を表示させるための画像情報を生成して送信する画像処理装置であって、前記端末装置に送信する前記画像情報を記憶可能な第1画像記憶部と、前記画面に含まれる予め定められた大きさの矩形領域に対応して前記第1画像記憶部の記憶領域に設定されるページごとに、前記第1画像記憶部の仮想アドレスを物理アドレスに変換するためのエントリを有する変換テーブルを記憶するテーブル記憶部と、前記矩形領域に含まれる画素に対する仮想アドレスを算出するアドレス算出部と、前記変換テーブルを参照して、書込みが要求された前記画像情報の各画素に対して算出された前記仮想アドレスに対応する前記物理アドレスを取得する取得部と、取得された前記物理アドレスに、書込みが要求された前記画像情報を書込む書込み部と、前記取得部が前記物理アドレスを取得する際に参照した前記エントリに対応するページを、書込み前後で前記画像情報が一致しない部分を表す前記画像情報の更新部分を含むページとして検出する検出部と、検出された前記ページに含まれる前記更新部分の前記画像情報を圧縮する圧縮部と、を備えたことを特徴とする。
また、本発明は、ネットワークを介して接続された端末装置に画面を表示させるための画像情報を生成して送信する画像処理装置における画像情報の更新検出方法であって、前記画像処理装置は、前記端末装置に送信する前記画像情報を記憶可能な第1画像記憶部と、前記画面に含まれる予め定められた大きさの矩形領域に対応して前記第1画像記憶部の記憶領域に設定されるページごとに、前記第1画像記憶部の仮想アドレスを物理アドレスに変換するためのエントリを有する変換テーブルを記憶するテーブル記憶部と、を備え、アドレス算出部、前記矩形領域に含まれる画素に対する仮想アドレスを算出するアドレス算出ステップと、取得部が、前記変換テーブルを参照して、書込みが要求された前記画像情報の各画素に対して算出された前記仮想アドレスに対応する前記物理アドレスを取得する取得ステップと、書込み部、取得された前記物理アドレスに、書込みが要求された前記画像情報を書込む書込みステップと、検出部が、前記取得部が前記物理アドレスを取得する際に参照した前記エントリに対応するページを、書込み前後で前記画像情報が一致しない部分を表す前記画像情報の更新部分を含むページとして検出する検出ステップと、を備えたことを特徴とする。
また、本発明は、ネットワークを介して接続された端末装置に画面を表示させるための画像情報を生成して送信する画像処理装置における画像情報の更新検出プログラムであって、前記画像処理装置は、前記端末装置に送信する前記画像情報を記憶可能な第1画像記憶部と、前記画面に含まれる予め定められた大きさの矩形領域に対応して前記第1画像記憶部の記憶領域に設定されるページごとに、前記第1画像記憶部の仮想アドレスを物理アドレスに変換するためのエントリを有する変換テーブルを記憶するテーブル記憶部と、を備え、前記矩形領域に含まれる画素に対する仮想アドレスを算出するアドレス算出手順と、前記変換テーブルを参照して、書込みが要求された前記画像情報の各画素に対して算出された前記仮想アドレスに対応する前記物理アドレスを取得する取得手順と、取得された前記物理アドレスに、書込みが要求された前記画像情報を書込む書込み手順と、前記取得手順で前記物理アドレスを取得する際に参照した前記エントリに対応するページを、書込み前後で前記画像情報が一致しない部分を表す前記画像情報の更新部分を含むページとして検出する検出手順と、をコンピュータに実行させる更新検出プログラムである。
本発明によれば、仮想メモリ方式でフレームバッファを管理する場合の、画像の更新部分検出に関する処理の負荷を軽減することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる画像処理する装置、画像の更新を検出する方法およびプログラムの最良な実施の形態を詳細に説明する。
(第1の実施の形態)
第1の実施の形態にかかる画像処理装置は、画面の矩形領域が1ページに対応するようにフレームバッファのアドレスを構成するとともに、仮想メモリ方式でページ更新時にページ例外が発生することを利用して更新ページを検出し、画像情報の更新部分を効率的に検出するものである。
以下では、端末装置に対して各種処理を提供するために仮想的な計算機環境を作成し、当該計算機環境で実行された処理の結果を表示するための画像情報を端末装置に提供する仮想計算機サーバとして画像処理装置を実現した例について説明する。なお、適用可能な装置はこのような仮想計算機サーバに限られるものではなく、フレームバッファに格納した画面の画像情報から更新部分を検出する装置であればあらゆる装置に適用できる。
図1は、第1の実施の形態にかかる画像処理装置100を含むネットワーク構成の概要を示すブロック図である。同図に示すように、画像処理装置100は、インターネットやLAN(Local Area Network)などのネットワーク300を介して、ユーザが操作を行う端末装置200と接続されている。
端末装置200は、画像処理装置100から転送された画像情報を自装置内のディスプレイなどの表示装置に表示する機能を有する。また、端末装置200は、画像処理装置100から転送された画面の更新部分のみの画像情報を受信し、受信した画像情報によって更新部分のみを表示する機能を有することを前提とする。
画像処理装置100は、画像処理装置100を動作させる基盤となるホストOS110と、アプリケーション120と、ゲストOS130と、仮想表示部140と、バックエンド仮想表示部150とを備えている。
ゲストOS130は、端末装置200に対応する仮想的な計算機環境を動作させるOSであり、ホストOS110上で動作する。アプリケーション120は、ゲストOS130上で動作する各種処理を提供するプログラムである。
仮想表示部140は、ゲストOS130が生成する画像情報を出力するための仮想的な表示装置であり、後述するように画像情報を記憶するフレームバッファ142を含んでいる。バックエンド仮想表示部150は、画像表示に関する共通処理を実行するものであり、ホストOS110上で動作する。
次に、画像処理装置100の各構成部の詳細な機能について説明する。図2は、第1の実施の形態にかかる画像処理装置100の構成を示すブロック図である。
ゲストOS130は、画像表示に関する機能として、グラフィックライブラリ131を備えている。なお、ゲストOS130は、画像表示に関する機能以外にも、仮想的な計算機環境を動作するために必要なあらゆる機能を備えている。
グラフィックライブラリ131は、レンダラ132と、アドレス算出部133とを備えている。
レンダラ132は、アプリケーション120などから指定された描画命令に従い、各種画像処理を行ってその結果である画像情報を出力するものである。例えば、レンダラ132は、ある領域を拡大・縮小する描画命令を受けた場合、描画命令に含まれる座標情報などから拡大・縮小する領域を特定し、当該領域に対して拡大・縮小を行った結果である領域の座標情報などを含む画像情報を出力する。なお、座標情報とは、例えば、1024×768ピクセルの画面の場合、画面左上を(0、0)、画面右下を(1023、767)とするような座標系で表された情報をいう。このように、第1の実施の形態では、画面右方向をX座標方向、画面下方向をY座標方向としたX−Y座標によって画面上の画素の座標情報を表す。
アドレス算出部133は、レンダラ132が出力した画像情報を入力し、画像情報の座標情報をフレームバッファ142(後述)のアドレスに変換する処理を行うものである。第1の実施の形態では、アドレス算出部133は、端末装置200に表示する表示画面を32×32画素の矩形領域に分割し、分割した矩形領域内の各画素に、1ページ(4096バイト)の仮想アドレスが対応するように、フレームバッファ142の仮想アドレスを算出する。
具体的には、アドレス算出部133は、従来の算出式である以下の(1)式に代わり、以下の(2)式に従って、座標情報(X、Y)をフレームバッファ142のアドレスaddrに変換する。なお、OFFSETとは、画像情報の格納を開始する開始アドレスまでのオフセットの値を表す。
addr=OFFSET+(X<<2)+(Y<<12)・・・(1)
addr=OFFSET+((X&~0x1f)<<10)×3+((X&0x1f)<<2)+(Y<<7)・・・(2)
また、ディスプレイモードや、アドレス算出部133の演算能力により、実際の算出式の最適化の方式は異なる。
仮想表示部140は、メモリ管理部141と、フレームバッファ142とを備えている。メモリ管理部141は、仮想メモリ方式でフレームバッファ142に対するアクセスを管理するものであり、テーブル記憶部141aと、取得部141bと、変更部141cと、書込み部141dと、例外発生部141eと、を備えている。
テーブル記憶部141aは、仮想アドレスを物理アドレスに変換するための変換テーブルを記憶するものである。ここで、変換テーブルの構造の詳細と、メモリ管理部141による変換テーブルを用いたアドレス変換の流れについて図3を用いて説明する。図3は、メモリ管理部141による仮想アドレスから物理アドレスへの変換の流れを示す説明図である。
仮想メモリ方式の場合、ソフトウェアは仮想アドレスによって、仮想アドレス空間上の論理的にリニアなメモリ空間をアクセスする。本実施の形態では、32ビット長の仮想アドレスを用いる。また、32ビット長の仮想アドレスは、10ビット、10ビット、12ビットで区切られ、各ビットはそれぞれ以下のような意味を有する。
仮想アドレスの上位10ビットは、2段階の階層構造で表された変換テーブルの上位のテーブルであるPageDirectory(以下、pdという)内のエントリを特定するために利用される。特定したエントリには、下位のテーブルである複数のPageTableのうちいずれかを特定するためのポインタが含まれる。図3では、pt2で表されるPageTableが特定された例が示されている。
仮想アドレスの中位10ビットは、このポインタにより特定されるPageTable内のエントリを特定するために利用される。特定したエントリには、物理アドレス空間上のページブロック(以下、単にページという)を特定するためのポインタが含まれる。なお、ページとは、仮想アドレスにマッピングできる物理メモリの最小単位をいい、連続する物理メモリがページに割り当てられる。
仮想アドレスの下位12ビットは、このポインタにより特定されるページ内のオフセットを表す。このようにして、32ビット長の仮想アドレスから物理アドレスへ変換することができる。
以下に、PageDirectoryおよびPageTableのエントリの詳細について説明する。
PageDirectoryのエントリは、PageTableへのポインタと、同エントリの有効/無効を示すEnableビットと、仮想アドレスから物理アドレスへの変換過程で同エントリを参照した場合に1が設定されるAccessedビットとを含む。
PageTableのエントリは、物理メモリのページへのポインタと、同エントリの有効/無効を示すEnableビットと、同ページへの書き込みの可/不可を示すWritableビットと、同ページへのデータ書き込みが行なわれた場合に1が設定されるDirtyビットと、仮想アドレスから物理アドレスへの変換過程で同エントリを参照した場合に1が設定されるAccessedビットとを含む。
なお、プロセッサの種類によりビットの名称が異なる場合や、正論理か負論理かで異なる場合があるが、通常は上記のような情報を含むエントリが存在する。
図2に戻り、取得部141bは、このように構成された変換テーブルを用いて、フレームバッファ142への書込みが要求された画像情報の仮想アドレスに対応する物理アドレスを取得するものである。
変更部141cは、フレームバッファ142へのアクセス要求に応じて、変換テーブルの各エントリの情報を変更するものである。例えば、変更部141cは、書込みが要求された画像情報の仮想アドレスを含むページに対するPageTableのAccessedビットおよびDirtyビットを1に変更する。同時に、変更部141cは、PageDirectoryのAccessedビットを1に変更する。
書込み部141dは、取得部141bにより取得された物理アドレスに、書込みが要求された画像情報を書込むものである。
例外発生部141eは、書込みが要求されたページに対するページ例外を発生するものである。具体的には、例外発生部141eは、Writableビットが不可であるページに対して書込みが要求された場合にページ例外を発生する。なお、Writableビットは、予めすべて不可に設定しておく。これにより、書込みが要求された場合に必ずページ例外を発生させることができる。
また、例外発生部141eは、一般的な仮想メモリ方式で扱われるその他の例外も発生させる。例えば、仮想アドレス空間に対するアクセスが要求され、取得部141bによって変換テーブルが検索されたとき、例外発生部141eは、検索されたPageDirectoryのエントリ、または、PageTableのエントリのEnableビットが無効である場合に、プロセッサ(図示せず)に対してページ例外を発生する。
なお、ページ例外が発生した場合、プロセッサは、いずれの仮想アドレスに対してアクセスされたかを検出することができる。また、ページ例外発生時、プロセッサはページのマッピングなどの必要に応じた処理を行う。また、プロセッサは必要に応じて変換テーブルの更新を行って例外から復帰する。
フレームバッファ142は、端末装置200に表示する画面の1画面分の画像情報を記憶する記憶部である。フレームバッファ142には、取得部141bによって取得された物理アドレスに従って画像情報が保存される。
ここで、フレームバッファ142のアドレス配置の詳細について説明する。まず、従来の計算機で一般に用いられているフレームバッファのアドレス配置について図4〜図6を用いて説明する。図4は、従来の計算機で用いられているフレームバッファのアドレス配置の一例を示す説明図である。
同図は、1024×768ピクセルの画面で1ピクセルあたりのデータ量を4バイトであるとした場合のアドレス配置例を示している。同図に示すように、従来のフレームバッファは、画面の左上を基点として水平方向に連続したアドレス配置となっている。
図5は、従来のフレームバッファのアドレスの順序を示した模式図である。図5に示すように、従来のフレームバッファでは、モニタなどの表示部へ出力することを考慮し、ラスタスキャン方向に線形にアドレスが配置されている。
図6は、従来のフレームバッファにおける画面の領域とページとの対応を示した模式図である。1ページが4096バイトとすると、1ラスタのデータ量である4096バイト(=1024×4バイト)と一致するため、1ラスタが1ページに対応する。このため、768個のページが上下方向に並べられて1画面が構成される。
次に、第1の実施の形態における画像処理装置100で用いるフレームバッファ142のアドレス配置について図7を用いて説明する。図7は、第1の実施の形態における画像処理装置100で用いるフレームバッファ142のアドレス配置の一例を示す説明図である。
同図の上部に示すように、第1の実施の形態では、32×32ピクセルの矩形領域内でアドレスが線形に配置される。そして、同図の下部に示すように、この矩形領域を32×24個敷き詰めることにより、1画面が構成される。
なお、矩形領域は32×32ピクセルに限られず、矩形領域それぞれが各ページのアドレスと対応づけられるものであればどのようなものでもよい。また、矩形領域内のアドレス配置は、X座標方向に連続に配置する方法に限られない。例えば、Y座標方向に連続したアドレスを付与し、所定の画素数に達した場合に隣接する列の画素についてさらにY座標方向に連続したアドレスを付与するような順序でアドレスを配置するように構成してもよい。
図2に戻り、バックエンド仮想表示部150は、バックアップ記憶部151と、保存部152と、検出部153と、圧縮部154と、転送部155とを備えている。
バックアップ記憶部151は、更新されたページそれぞれについて画像情報のバックアップデータを記憶可能な記憶部である。
保存部152は、例外発生部141eによりWritableビットが不可であるページに書込みが要求されたことによるページ例外が発生したときに、当該ページ例外が発生したページの画像情報をバックアップ記憶部151に保存するものである。
検出部153は、メモリ管理部141が管理するページ単位で、画像情報の更新部分を検出するものである。具体的には、検出部153は、まず、画像情報がバックアップされているページを、画像情報が更新されたページとして検出する。そして、検出部153は、更新されたページそれぞれについて、バックアップ記憶部151の画像情報と、書込み部141dによってフレームバッファ142に書込まれた後の最新の画像情報とを比較し、相違点を含む矩形を更新部分として検出する。
圧縮部154は、検出部153により検出された更新部分に対してJPEG方式などによる画像圧縮処理を行うものである。なお、圧縮部154による圧縮方法は、JPEG方式に限られるものではない。
転送部155は、圧縮部154が圧縮した画像情報(圧縮画像情報)を端末装置200に転送するものである。
なお、フレームバッファ142およびバックアップ記憶部151は、RAM(Random Access Memory)、HDD(Hard Disk Drive)、光ディスク、メモリカードなどの一般的に利用されているあらゆる記憶媒体により構成することができる。また、バックアップ記憶部151をバックエンド仮想表示部150以外の、例えば、仮想表示部140内に備えるように構成してもよい。
次に、このように構成された第1の実施の形態にかかる画像処理装置100による画像処理について説明する。画像処理は、画像情報をフレームバッファ142およびバックアップ記憶部151に書込む画像書込み処理と、バックアップした画像情報と最新の画像情報とを比較して画像情報の更新部分を検出する更新部分検出処理に分けられる。
最初に、画像書込み処理および更新部分検出処理の概要について図8を用いて説明する。図8は、第1の実施の形態における画像書込み処理および更新部分検出処理の概要を示す説明図である。
画像書込み処理では、まず、予めフレームバッファ142のメモリ領域に関するすべてのPageTableのWritableビットを不可に設定する。これにより、以後、グラフィックライブラリ131がフレームバッファ142のいずれかの領域に書き込みを行うと、該当するページに関するページ例外が発生する。
この状態から、アプリケーション120が画面表示のためにグラフィックライブラリ131を介してフレームバッファ142に対する描画命令を送る(1)。メモリ管理部141は、変換テーブルを参照して、グラフィックライブラリ131からの描画命令で指定された仮想アドレスを物理アドレスに変換する(2)。
PageTableのWritableビットが予め不可に設定されていたため、変換テーブルが参照されると、例外発生部141eがページ例外を発生する(3)。発生したページ例外により、保存部152は、グラフィックライブラリ131が更新を要求したフレームバッファ142の該当ページを検知し、当該ページの内容のバックアップを残す(4)。
一方、変更部141cは、当該ページのPageTableのWritableビットを可に変更する(5)。この後、グラフィックライブラリ131による画像書き込みが続行される。以後、当該ページに対する画像書き込みについては、さらにページ例外を発生することなく書込みが行なわれる。別ページに対する画像書き込みについては、ページ例外が発生し(3)、当該ページの内容のバックアップ(4)、PageTableのWritableビットの変更(5)が順次実行される。
このように、画面上の矩形領域に適合したページを構成し、画像の書き込みが要求されたページのみに対して、当該ページへの最初の書き込み時にのみページ例外を発生し、画像書き込みが発生する前の画像情報のバックアップを残すことが可能となる。すなわち、必要最小限のページのみを対象として、無駄のない効率的な処理が実行できる。
次に、検出部153は、例えばタイマからの定期的の割り込みにより、画像情報の更新部分検出処理を実行する。更新部分検出処理とは、バックアップを残したページについて、バックアップした画像情報と現状のページの画像情報とを比較して、そのページ内で差分が存在する矩形を切り出す処理である。タイマは、例えば、端末装置200の画面更新を1秒間に60回行う場合であれば、1/60秒間隔で割り込みを発生するように設定する。
まず、検出部153は、タイマからのトリガにより更新部分検出処理を開始する(6)。次に、検出部153は、上記(4)でバックアップが保存されているページを更新ページとして検出する(7)。次に、検出部153は、バックアップした画像情報と、フレームバッファ142に書込まれた最新の画像情報とを比較し、更新部分の矩形を検出する(8)。なお、同図に示すように、検出部153は、複数の隣接するページから、更新された領域を含む最小の矩形領域を更新部分として検出することができる。
検出した更新部分の画像情報は、圧縮部154により圧縮される。また、圧縮後の圧縮画像情報は転送部155によって端末装置200に送信される(9)。
なお、同図では省略しているが、端末装置200に更新部分の圧縮画像情報を転送後、バックアップ記憶部151にバックアップされた画像情報はすべて破棄される。また、フレームバッファ142のメモリ領域に関するすべてのPageTableのWritableビットは不可に変更される。また、同図では、ページ例外(3)、バックアップ(4)、およびWritableビットの変更(5)は、4ページ分を一括して表現しているが、実際には、グラフィックライブラリ131からの書き込みを契機にそれぞれ4回実行される。
このように、画面上の矩形領域に適合したページを構成することにより、ページごとに発生可能なページ例外を利用してページ単位で更新部分を検出することが可能となる。
次に、画像書込み処理および更新部分検出処理の詳細な流れについて図9および図10を用いて説明する。図9は、第1の実施の形態における画像書込み処理の全体の流れを示すフローチャートである。
まず、アプリケーション120が、実行した処理に関連する画面情報の更新などが発生した場合に、表示画面の描画を要求する描画命令を出力する(ステップS901)。次に、レンダラ132が、描画命令に応じて画像処理を行い、その結果である画像情報を生成する(ステップS902)。画像情報には、更新する領域に対応する開始座標と終了座標の情報が含まれる。
次に、アドレス算出部133が、画面の矩形領域とページとが対応するように構成されたアドレッシングのフレームバッファ142に合わせて、更新する画素の座標情報をアドレス変換して仮想アドレスを算出する(ステップS903)。具体的には、アドレス算出部133は、上述の(2)式によって仮想アドレスを算出する。
次に、グラフィックライブラリ131は、算出された仮想アドレスを指定して、フレームバッファ142に対する画像情報の書き込みを要求する(ステップS904)。
次に、取得部141bが、テーブル記憶部141aに記憶された変換テーブルを参照して、指定された仮想アドレスに対応する物理アドレスを取得する(ステップS905)。変換テーブルが参照されたとき、例外発生部141eは、書込みが要求されたページについてページ例外を発生する(ステップS906)。
ページ例外を検出した保存部152は、ページ例外が発生したページに対応する画像情報をバックアップ記憶部151に保存する(ステップS907)。
一方、書込み部141dは、ステップS905で取得部141bが取得した物理アドレスに対して、要求された画像情報を書込み(ステップS908)、画像書込み処理を終了する。
次に、更新部分検出処理の詳細な流れについて説明する。図10は、第1の実施の形態における更新部分検出処理の全体の流れを示すフローチャートである。更新部分検出処理は、上述のようにタイマからの割り込み等により開始される。
まず、検出部153は、バックアップ記憶部151にバックアップが保存されているページ(更新ページ)を検出する(ステップS1001)。次に、検出部153は、検出した更新ページに対して、図9のステップS908で書込まれた最新の画像情報とバックアップ記憶部151に保存した画像情報とを比較し、相違箇所を更新部分として検出する(ステップS1002)。
次に、圧縮部154が、検出部153により検出された更新部分を圧縮する(ステップS1003)。そして、転送部155が、圧縮した画像情報をパケット化し、端末装置200に転送して(ステップS1004)、更新部分検出処理を終了する。
このように、第1の実施の形態にかかる画像処理装置では、画面の矩形領域が1ページに対応するようにフレームバッファのアドレスを構成し、仮想メモリ方式でページ更新時に発生するページ例外によって更新ページを検出することができる。これにより、画像情報の更新部分を効率的に検出し、仮想メモリ方式でフレームバッファを管理する場合の、画像の更新部分検出に関する処理の負荷を軽減することができる。
(第2の実施の形態)
第1の実施の形態では、ページ例外を利用して更新ページを検出していた。これに対し、第2の実施の形態にかかる画像処理装置は、ページ更新時に変更される変換テーブルのビット値を参照することにより更新ページを検出するものである。
図11は、第2の実施の形態にかかる画像処理装置1100の構成を示すブロック図である。図11に示すように、画像処理装置1100は、ホストOS110と、アプリケーション120と、ゲストOS130と、仮想表示部1140と、バックエンド仮想表示部1150とを備えている。
第2の実施の形態では、仮想表示部1140およびバックエンド仮想表示部1150の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる画像処理装置100の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
仮想表示部1140は、メモリ管理部1141と、フレームバッファ142と、を備えている。フレームバッファ142の構成は、第1の実施の形態と同様であるので、同一符号を付し、ここでの説明は省略する。
メモリ管理部1141は、テーブル記憶部141aと、取得部141bと、変更部141cと、書込み部141dと、例外発生部1141eと、を備えている。例外発生部1141e以外の構成および機能は、第1の実施の形態にかかる画像処理装置100の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
例外発生部1141eは、書込みが要求されたページに対するページ例外を発生する機能が削除された点が、第1の実施の形態の例外発生部141eと異なっている。
バックエンド仮想表示部1150は、バックアップ記憶部1151と、保存部1152と、検出部1153と、圧縮部154と、転送部155とを備えている。
第2の実施の形態では、バックアップ記憶部1151への保存方式と、保存部1152および検出部1153の機能とが第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる画像処理装置100の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
第1の実施の形態では、ページごとに画像情報のバックアップデータを記憶していたが、第2の実施の形態のバックアップ記憶部1151は、フレームバッファ142全体の画像情報のバックアップを記憶するものである。
保存部1152は、画像処理装置1100の初期状態で、または更新部分の転送が完了した後に、フレームバッファ142全体の画像情報をバックアップ記憶部1151に記憶するものである。
検出部1153は、PageDirectoryのAccessedビット、PageTableのAccessedビット、およびPageTableのDirtyビットを参照することにより、更新ページを検出する点が、第1の実施の形態の検出部153と異なっている。
次に、このように構成された第2の実施の形態にかかる画像処理装置1100による画像処理について説明する。最初に、画像書込み処理および更新部分検出処理の概要について図12を用いて説明する。図12は、第2の実施の形態における画像書込み処理および更新部分検出処理の概要を示す説明図である。
画像書込み処理では、まず、予めフレームバッファ142の全体のバックアップをバックアップ記憶部1151に保存する。フレームバッファ142のピクセルの値によって初期状態か否かを判断できる場合は、この時点でのバックアップの保持を省略するように構成してもよい。例えば、初期状態ですべてのピクセルが黒の場合であれば、ピクセルがすべて黒の場合はバックアップが存在しない初期状態であることを判断できるため、バックアップの保持を省略できる。
この状態から、アプリケーション120が画面表示のためにグラフィックライブラリ131を介してフレームバッファ142に対する描画命令を送る(1)。メモリ管理部1141は、変換テーブルを参照して、グラフィックライブラリ131からの描画命令で指定された仮想アドレスを物理アドレスに変換する。
メモリ管理部1141による変換テーブルの参照に伴い、変更部141cは、当該仮想アドレスの上位10ビットに対応するPageDirectoryのエントリのAccessedビットを1に変更する。さらに、変更部141cは、そのエントリが示すPageTableに関して当該仮想アドレスの中位10ビットに対応するエントリのAccessedビットとDirtyビットを1に変更する(2)。この後、グラフィックライブラリ131による画像書き込みが続行される。
次に、検出部1153は、例えばタイマからの定期的の割り込みにより、画像情報の更新部分検出処理を実行する。まず、検出部1153は、タイマからのトリガにより更新部分検出処理を開始する(3)。検出部1153は、まず、変換テーブルのAccessedビットおよびDirtyビットを参照し、各ビットが1に設定されているページを検索する(4)。することにより更新ページを検出する(5)。すなわち、検出部1153は、まず、PageDirectoryのフレームバッファ142に関係するエントリをサーチして、Accessedビットが1であるPageTableを洗い出す。そして、検出部1153は、そのPageTableのフレームバッファ142に関係するエントリをサーチして、Dirtyビットが1であるページを求めることで、画像更新が行なわれたページを検出する。
次に、検出部1153は、検出した更新ページに対して、バックアップした画像情報と、フレームバッファ142に書込まれた最新の画像情報とを比較し、更新部分の矩形を検出する(6)。
検出した更新部分の画像情報は、圧縮部154により圧縮される。また、圧縮後の圧縮画像情報は転送部155によって端末装置200に送信される(7)。
なお、同図では省略しているが、端末装置200に更新部分の圧縮画像情報を転送後、当該ページの画像情報のバックアップが現在の内容で更新される。また、変換テーブルのAccessedビットとDirtyビットが1に変更される。
次に、画像書込み処理および更新部分検出処理の詳細な流れについて図13および図14を用いて説明する。図13は、第2の実施の形態における画像書込み処理の全体の流れを示すフローチャートである。
ステップS1301からステップS1305までの、描画命令処理、アドレス算出処理、および物理アドレス取得処理は、第1の実施の形態にかかる画像処理装置100におけるステップS901からステップS905までと同様の処理なので、その説明を省略する。
取得部141bにより物理アドレスが取得された後、変更部141cは、変換テーブルのAccessedビットおよびDirtyビットを1に変更する(ステップS1306)。なお、第1の実施の形態の画像書込み処理を表す図9では、AccessedビットおよびDirtyビットの変更処理は記載を省略したが、実際にはステップS1306と同様の変更処理が実行される。
次に、書込み部141dは、ステップS1305で取得部141bが取得した物理アドレスに対して、要求された画像情報を書込み(ステップS1307)、画像書込み処理を終了する。
このように、第2の実施の形態の画像書込み処理では、ページ例外を発生させ、ページ例外が発生したページのバックアップを保存する処理が削除された点が、第1の実施の形態と異なっている。
次に、更新部分検出処理の詳細な流れについて説明する。図14は、第2の実施の形態における更新部分検出処理の全体の流れを示すフローチャートである。
まず、検出部1153は、AccessedビットおよびDirtyビットが1であるページ(更新ページ)を検出する(ステップS1401)。次に、検出部1153は、検出した更新ページに対応する画像情報をバックアップ記憶部1151から取得し、取得した画像情報と、最新の画像情報とを比較し、相違箇所を更新部分として検出する(ステップS1402)。
ステップS1403からステップS1404までの、画像圧縮処理および画像転送処理は、第1の実施の形態にかかる画像処理装置100におけるステップS1003からステップS1004までと同様の処理なので、その説明を省略する。
圧縮画像情報を転送した後、保存部1152は、フレームバッファ142に書込んだ最新の画像情報のバックアップを、バックアップ記憶部1151に保存し(ステップS1405)、更新部分検出処理を終了する。
このように、第2の実施の形態にかかる画像処理装置では、画面の矩形領域が1ページに対応するようにフレームバッファのアドレスを構成し、ページ更新時に変更される変換テーブルのビット値を参照することにより更新ページを検出することができる。これにより、画像情報の更新部分を効率的に検出し、仮想メモリ方式でフレームバッファを管理する場合の、画像の更新部分検出に関する処理の負荷を軽減することができる。
(変形例)
図7のような構造のフレームバッファ142は、32×24ページ分、すなわち、仮想アドレス上の3Mバイト(=32×24×4096バイト)の連続領域となることが前提であった。
一方、図3に示すように10ビット、10ビット、12ビットで区切られる仮想アドレスの場合、PageDirectoryは1024エントリ(10ビットに相当)を有する。同様に、PageTableも1024エントリを有する。1ページが4096バイトで構成されているため、PageDirectoryの各々のエントリは、4Mバイト(=4096×1024)の領域を管理していることになる。
従って、3Mバイトの連続領域であるフレームバッファ142は、PageDirectoryのエントリの境界を跨ぐ形で仮想アドレス空間上に配置しない限り、多くの場合、PageDirectoryの1エントリで管理される。また、当該1エントリのPageDirectoryが示すPageTableの1024エントリのうち、768エントリ分で、すべてのページへの対応が示される。
図15は、このような変換テーブルとフレームバッファ142との対応を示す模式図である。図15に示すように、仮想アドレスの連続領域にフレームバッファ142を配置する方法では、PageDirectoryのフレームバッファ142に対応するエントリのAccessedビットは、フレームバッファ142のいずれかにメモリアクセスが存在したか否かを示すフラグとなる。さらに、このフラグは書込みによるメモリアクセスのみでなく、読み出しによるメモリアクセスでも更新される。
このため、何らかのメモリアクセスが生じる度に、対応するPageTableの768エントリが毎回サーチ対象となり、更新部分を検出する処理の負荷が増大するという問題があった。
このように、フレームバッファ142を仮想アドレス空間のいずれの領域に分散させて配置するかによって、フレームバッファ142に関する変換テーブル(PageDirectoryとPageTable)の構造が変わり、更新部分検索のサーチの手間に影響する。
そこで、本変形例では、画面を所定の個数の領域に分割し、分割した各領域が、PageDirectoryの1エントリに対応するようにフレームバッファ142の仮想アドレス空間上に配置する。なお、このように配置するために仮想アドレス空間上でフレームバッファ142全体のアドレスが不連続になってもよい。
図16は、本変形例における変換テーブルとフレームバッファ142との対応を示す模式図である。図16は、画面を8つの領域に区分けし、その区分けがそれぞれPageDirectoryの1エントリに対応するように配置する場合の例を示している。
このように配置することにより、例えば画面の左端の区域(PageTableのpt1に対応する区域)のみで画面が更新された場合は、PageDirectoryの8つのエントリのうち該当する1つのエントリのAccessedビットのみが1に変更される。そして、このエントリに対応するPageTable内の96エントリのみをサーチすれば、更新ページを検出できる。
画面の区切り方は、上記に限られず、画面の上下や左右で区切る方法、4×4などの矩形に区切る方法、中心部とそれ以外で区切る方法など、想定するアプリケーションの画面の更新パターンなどを考慮したあらゆる方法を適用できる。また、区切る単位についても、荒く区切る方法や、細かく区切る方法などを設計に合わせて変更できる。
また、これまでは、PageDirectoryとPageTableの2段階で構成された変換テーブルを対象としていたが、2段階以上で構成された変換テーブルに適用することも可能である。例えば3段階であれば、まず画面を左右に区切って上位のテーブルに対応づけ、区切った区域のそれぞれをさらに2×2の領域で区切って中位のテーブルに対応づけるように構成することができる。このように、利用する変換テーブルの構造に合わせた効率の良いフレームバッファ142の区切り方を採用することができる。
(第3の実施の形態)
第1の実施の形態では、ページへの書き込みの可/不可を示すWritableビットを利用して、書込みが要求されたページのページ例外を発生させていた。ところが、変換テーブルの構成方法によっては、Writableビットによる例外発生方式を採用できない場合がある。
例えば、ハードウェアレベルで仮想化を支援するAdvanced Micro Devices社のSVM(Secure Virtual Machine)という仮想化支援機能を実装したプロセッサは、GuestPageTableおよびNestedPageTableという2つの変換テーブルを利用している。そして、このプロセッサでは、NestedPageTableへのアクセスが、常に書込みとして扱われる仕様となっている。このため、予めすべて不可に設定したWritableビットを利用する方法では、読み出しアクセスであってもアクセスが不可と判定され、アクセスできなくなるという問題があった。
そこで、第3の実施の形態では、Writableビットを利用する代わりに、書き込み時と読み出し時とで異なる仮想アドレスを算出するとともに、Enableビットを利用して、アクセスが要求された書込み用のページのページ例外を発生させるものである。
なお、第3の実施の形態では、上述のように2つの変換テーブルを利用する画像処理装置を例として説明する。すなわち、第3の実施の形態では、メモリ管理部によるメモリアドレスの論実変換が、第1の実施の形態のように仮想アドレスから物理アドレスへの1段階ではなく、ゲスト仮想アドレスからゲスト物理アドレスを経てホスト物理アドレスへ変換する2段階で実行される手法を前提とする。
図17は、第3の実施の形態にかかる画像処理装置1700の構成を示すブロック図である。図17に示すように、画像処理装置1700は、ホストOS110と、アプリケーション120と、ゲストOS1730と、仮想表示部1740と、バックエンド仮想表示部1750とを備えている。
第3の実施の形態では、ゲストOS1730、仮想表示部1740、およびバックエンド仮想表示部1750の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる画像処理装置100の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
ゲストOS1730は、画像表示に関する機能であるグラフィックライブラリ1731の機能が、第1の実施の形態のゲストOS130と異なっている。
グラフィックライブラリ1731は、レンダラ132と、アドレス算出部1733とを備えている。レンダラ132の機能は、第1の実施の形態と同様であるので、同一符号を付し、ここでの説明は省略する。
第1の実施の形態のアドレス算出部133は、フレームバッファ142へ書き込む際とフレームバッファ142から読み出す際で同じアドレスを算出していた。これに対し、第3の実施の形態のアドレス算出部1733は、フレームバッファ142へ書き込む際とフレームバッファ142から読み出す際で異なるアドレスを算出するものである。
例えば、図7のような構造のフレームバッファ142は、32×24ページ分、すなわち、仮想アドレス上の3Mバイト(=32×24×4096バイト)の領域となる。従って、アドレス算出部1733は、例えば、フレームバッファ142へ書き込む際とフレームバッファ142から読み出す際で、3Mバイト分異なるアドレスを算出する。
また、アドレス算出部1733は、第1の実施の形態のアドレス算出部133と同様に、端末装置200に表示する表示画面を32×32画素の矩形領域に分割し、分割した矩形領域内の各画素に、1ページ(4096バイト)の仮想アドレスが対応するように、フレームバッファ142の仮想アドレスを算出する。
具体的には、例えば、アドレス算出部1733は、読み出しの場合は、第1の実施の形態の算出式である前述の(2)式に従って、座標情報(X、Y)をフレームバッファ142のアドレスaddrに変換する。一方、書き込みの場合は、アドレス算出部1733は、以下の(3)式に従って、座標情報(X、Y)をフレームバッファ142のアドレスaddrに変換する。
addr=OFFSET+3Mバイト+((X&~0x1f)<<10)×3+((X&0x1f)<<2)+(Y<<7)・・・(3)
なお、書き出し用と読み出し用とで異なるアドレスを算出できるものであれば、加算する値は3Mバイトでなくてもよい。また、ディスプレイモードや、アドレス算出部1733の演算能力により、実際の算出式の最適化の方式は異なる。
仮想表示部1740は、メモリ管理部1741と、フレームバッファ142と、を備えている。フレームバッファ142の構成は、第1の実施の形態と同様であるので、同一符号を付し、ここでの説明は省略する。
メモリ管理部1741は、テーブル記憶部1741aと、取得部141bと、変更部141cと、書込み部141dと、例外発生部1741eと、を備えている。テーブル記憶部1741aおよび例外発生部1741e以外の構成および機能は、第1の実施の形態にかかる画像処理装置100の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
第1の実施の形態のテーブル記憶部141aは、仮想アドレスを物理アドレスに変換するための変換テーブルを1つのみ記憶していた。これに対し、第3の実施の形態のテーブル記憶部1741aは、仮想アドレスを物理アドレスに変換するための変換テーブルを2つ記憶する。
ここで、ゲスト仮想アドレスからゲスト物理アドレス、およびゲスト物理アドレスからホスト物理アドレスへの、2つの変換テーブルを用いた2段階変換の流れについて、図18を用いて説明する。図18は、2つの変換テーブルを用いたアドレスの2段階変換の流れの概要を示す図である。
同図は、ゲスト仮想アドレス空間1801のゲスト仮想アドレス1811を、ゲスト物理アドレス空間1802のゲスト物理アドレス1812に変換し、さらに、ホスト物理アドレス空間1803のホスト物理アドレス1813に変換した例を表している。1段階目の変換では、gCR3レジスタで指定される第1変換テーブル1821が参照される。第1変換テーブル1821は、ゲストOS1730ごとの変換テーブルである。実際には、ホスト物理アドレス空間1803上に存在しており、第1変換テーブル1821および第1変換テーブル1823は同一のものである。また、2段階目の変換では、nCR3レジスタで指定される第2変換テーブル1822が参照される。
なお、第1変換テーブル1823は、ゲストOS1730の個数に応じて複数存在しうる。また、上述のGuestPageTableおよびNestedPageTableは、それぞれ第1変換テーブルおよび第2変換テーブルに相当する。
このように、テーブル記憶部1741aは、第1変換テーブルおよび第2変換テーブルという2つの変換テーブルを記憶している。各変換テーブルを構成するPageDirectoryおよびPageTableのエントリの詳細や、変換に利用するエントリの特定方法については、第1の実施の形態と同様であるので、ここでの説明は省略する。
一般に、変換テーブルがアクセスされたとき、アクセス要求内に含まれる情報等によって、書き込み要求および読み出し要求のいずれであるかを区別できるようになっている。しかし、上述のように、第2変換テーブルへのアクセスが、常に書き込みとして扱われる仕様になっている場合がある。
第3の実施の形態では、このような場合であっても書き込みおよび読み出しを区別可能とするために、フレームバッファ142の同一のページに対するPageTableのエントリが、書き込み用と読み出し用で2つ存在するようにアドレスが算出される。
図19は、第2変換テーブルにおけるフレームバッファ142に対するPageTableの一例を示す図である。図19に示すように、物理的には1つであるフレームバッファ142の各領域に対し、それぞれ2つの仮想アドレスが対応づけられている。
例えば、同図のPageDirectoryのエントリ1901および1902は、それぞれ読み出し用および書き込み用として算出された仮想アドレスに対応するエントリである。そして、エントリ1901および1902は、それぞれ読み出し用のPageTable1911、および書き込み用のPageTable1912へのポインタを含んでいる。なお、以下では、第2変換テーブルにおけるフレームバッファ142に対する書き込み用のPageTableを、単に書き込み用PageTableという。
同図では、例えば、PageTable1911および1912の最初のエントリは、それぞれホスト物理アドレス空間1803上の同一のホスト物理アドレス1921に対応することが示されている。
前述のように、アドレス算出部1733は、フレームバッファ142へ書き込む際とフレームバッファ142から読み出す際で異なるアドレスを算出するため、同一のホスト物理アドレスにアクセスする場合であっても、書き込みおよび読み出しに応じて、異なるPageTableにアクセスすることができる。これにより、変換テーブルへのアクセスが常に書き込みとして扱われるような場合であっても、実際のアクセスが書き込みであるか読み出しであるかを、アクセスするPageTableによって判別し、ページの更新を適切に検出することが可能となる。
図17に戻り、例外発生部1741eについて説明する。第1の実施の形態の例外発生部141eは、Writableビットが不可であるページに対して書き込みが要求された場合にページ例外を発生させていた。これに対し、第3の実施の形態の例外発生部1741eは、Enableビットが無効である書き込み用PageTableのエントリに対して書き込みが要求された場合にページ例外を発生するものである。なお、Enableビットは、予めすべて無効に設定しておく。これにより、書き込みが要求された場合に必ずページ例外を発生させることができる。
バックエンド仮想表示部1750は、バックアップ記憶部151と、保存部1752と、検出部153と、圧縮部154と、転送部155とを備えている。保存部1752以外の構成および機能は、第1の実施の形態にかかる画像処理装置100の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
第1の実施の形態の保存部152は、Writableビットが不可であるページに書き込みが要求されたことによるページ例外が発生したときに、当該ページ例外が発生したページの画像情報を保存していた。これに対し、第3の実施の形態の保存部1752は、例外発生部1741eによりEnableビットが無効であるページに書き込みが要求されたことによるページ例外が発生されたときに、当該ページ例外が発生したページの画像情報をバックアップ記憶部151に保存するものである。
次に、このように構成された第3の実施の形態にかかる画像処理装置1700による画像処理について説明する。最初に、画像書込み処理および更新部分検出処理の概要について図20を用いて説明する。図20は、第3の実施の形態における画像書込み処理および更新部分検出処理の概要を示す説明図である。
画像書込み処理では、まず、予め第2変換テーブルにおけるフレームバッファ142に対するすべての書き込み用PageTableのEnableビットを無効に設定する。これにより、以後、グラフィックライブラリ1731がフレームバッファ142のいずれかの領域に書き込みを行うと、該当するページに関するページ例外が発生する。
この状態から、アプリケーション120が画面表示のためにグラフィックライブラリ1731を介してフレームバッファ142に対する描画命令を送る(1)。メモリ管理部1741は、2つの変換テーブルを参照して、グラフィックライブラリ1731からの描画命令で指定された仮想アドレスを物理アドレスに変換する(2)。
書き込み用PageTableのEnableビットが予め無効に設定されていたため、第2変換テーブルが参照されると、例外発生部1741eがページ例外を発生する(3)。発生したページ例外により、保存部1752は、グラフィックライブラリ1731が更新を要求したフレームバッファ142の該当ページを検知し、当該ページの内容のバックアップを残す(4)。
一方、変更部141cは、当該ページのPageTableのEnableビットを有効に変更する(5)。この後、グラフィックライブラリ1731による画像書き込みが続行される。以後、当該ページに対する画像書き込みについては、さらにページ例外を発生することなく書き込みが行なわれる。別ページに対する画像書き込みについては、ページ例外が発生し(3)、当該ページの内容のバックアップ(4)、PageTableのEnableビットの変更(5)が順次実行される。
次に、検出部153は、タイマからのトリガにより更新部分検出処理を開始する(6)。次に、検出部153は、上記(4)でバックアップが保存されているページを更新ページとして検出する(7)。次に、検出部153は、バックアップした画像情報と、フレームバッファ142に書込まれた最新の画像情報とを比較し、更新部分の矩形を検出する(8)。なお、同図に示すように、検出部153は、複数の隣接するページから、更新された領域を含む最小の矩形領域を更新部分として検出することができる。
検出した更新部分の画像情報は、圧縮部154により圧縮される。また、圧縮後の圧縮画像情報は転送部155によって端末装置200に送信される(9)。
なお、同図では省略しているが、端末装置200に更新部分の圧縮画像情報を転送後、バックアップ記憶部151にバックアップされた画像情報はすべて破棄される。また、第2変換テーブルにおけるフレームバッファ142に対するすべての書き込み用PageTableのEnableビットは無効に変更される。また、同図では、ページ例外(3)、バックアップ(4)、およびEnableビットの変更(5)は、4ページ分を一括して表現しているが、実際には、グラフィックライブラリ1731からの書き込みを契機にそれぞれ4回実行される。
次に、画像書込み処理の流れについて、図21を用いて説明する。図21は、第3の実施の形態における画像書込み処理の全体の流れを示すフローチャートである。なお、第1の実施の形態の画像書込み処理の全体の流れを示す図9と比較すると、ステップS2103での処理内容が、図9のステップS903と異なるのみであるため、ステップS2103以外の説明は省略する。
ステップS2103では、アドレス算出部1733が、アクセス要求が読み出しおよび書き込みのいずれであるかに応じて、上述の(2)式または(3)式によって仮想アドレスを算出する。アドレス算出部1733は、アクセス要求が読み出しおよび書き込みのいずれであるかは、描画命令によって判別することができる。
なお、更新部分検出処理の流れについては、第1の実施の形態の更新部分検出処理を表す図10と同様であるので、ここでの説明は省略する。
このように、第3の実施の形態にかかる画像処理装置では、書き込み時と読み出し時とで異なる仮想アドレスを算出するとともに、Enableビットを利用して、アクセスが要求された書込み用のページのページ例外を発生させ、このページ例外によって更新ページを検出することができる。これにより、Writableビットによる例外発生が利用できない場合であっても、画像情報の更新部分を効率的に検出し、仮想メモリ方式でフレームバッファを管理する場合の、画像の更新部分検出に関する処理の負荷を軽減することができる。
次に、第1〜第3の実施の形態にかかる画像処理装置のハードウェア構成について図22を用いて説明する。図22は、第1〜第3の実施の形態にかかる画像処理装置のハードウェア構成を示す説明図である。
第1〜第3の実施の形態にかかる画像処理装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、HDD(Hard Disk Drive)、CD(Compact Disc)ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス61を備えており、通常のコンピュータを利用したハードウェア構成となっている。
第1〜第3の実施の形態にかかる画像処理装置で実行される画像処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、第1〜第3の実施の形態にかかる画像処理装置で実行される画像処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1〜第3の実施の形態にかかる画像処理装置で実行される画像処理プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、第1〜第3の実施の形態の画像処理プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
第1〜第3の実施の形態にかかる画像処理装置で実行される画像処理プログラムは、上述した各部(アドレス算出部、取得部、書込み部、検出部、圧縮部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU51(プロセッサ)が上記記憶媒体から画像処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
以上のように、本発明にかかる画像を処理する装置、画像の更新を検出する方法およびプログラムは、端末装置に表示する画面の画像情報を生成して端末装置に転送する仮想計算機サーバに適している。
第1の実施の形態にかかる画像処理装置を含むネットワーク構成の概要を示すブロック図である。 第1の実施の形態にかかる画像処理装置の構成を示すブロック図である。 仮想アドレスから物理アドレスへの変換の流れを示す説明図である。 従来の計算機で用いられているフレームバッファのアドレス配置の一例を示す説明図である。 従来のフレームバッファのアドレスの順序を示した模式図である。 従来のフレームバッファにおける画面の領域とページとの対応を示した模式図である。 第1の実施の形態における画像処理装置で用いるフレームバッファのアドレス配置の一例を示す説明図である。 第1の実施の形態における画像書込み処理および更新部分検出処理の概要を示す説明図である。 第1の実施の形態における画像書込み処理の全体の流れを示すフローチャートである。 第1の実施の形態における更新部分検出処理の全体の流れを示すフローチャートである。 第2の実施の形態にかかる画像処理装置の構成を示すブロック図である。 第2の実施の形態における画像書込み処理および更新部分検出処理の概要を示す説明図である。 第2の実施の形態における画像書込み処理の全体の流れを示すフローチャートである。 第2の実施の形態における更新部分検出処理の全体の流れを示すフローチャートである。 変換テーブルとフレームバッファとの対応を示す模式図である。 変形例における変換テーブルとフレームバッファとの対応を示す模式図である。 第3の実施の形態にかかる画像処理装置の構成を示すブロック図である。 アドレスの2段階変換の流れの概要を示す図である。 第3の実施の形態におけるPageTableの一例を示す図である。 第3の実施の形態における画像書込み処理および更新部分検出処理の概要を示す説明図である。 第3の実施の形態における画像書込み処理の全体の流れを示すフローチャートである。 第1〜第3の実施の形態にかかる画像処理装置のハードウェア構成を示す説明図である。
符号の説明
51 CPU
52 ROM
53 RAM
54 通信I/F
61 バス
100 画像処理装置
110 ホストOS
120 アプリケーション
130 ゲストOS
131 グラフィックライブラリ
132 レンダラ
133 アドレス算出部
140 仮想表示部
141 メモリ管理部
141a テーブル記憶部
141b 取得部
141c 変更部
141d 書込み部
141e 例外発生部
142 フレームバッファ
150 バックエンド仮想表示部
151 バックアップ記憶部
152 保存部
153 検出部
154 圧縮部
155 転送部
200 端末装置
300 ネットワーク
1100 画像処理装置
1140 仮想表示部
1141 メモリ管理部
1141e 例外発生部
1150 バックエンド仮想表示部
1151 バックアップ記憶部
1152 保存部
1153 検出部
1700 画像処理装置
1730 ゲストOS
1731 グラフィックライブラリ
1733 アドレス算出部
1740 仮想表示部
1741 メモリ管理部
1741a テーブル記憶部
1741e 例外発生部
1750 バックエンド仮想表示部
1752 保存部
1801 ゲスト仮想アドレス空間
1802 ゲスト物理アドレス空間
1803 ホスト物理アドレス空間
1811 ゲスト仮想アドレス
1812 ゲスト物理アドレス
1813 ホスト物理アドレス
1821、1823 第1変換テーブル
1822 第2変換テーブル
1901、1902 エントリ
1911、1912 PageTable
1921 ホスト物理アドレス

Claims (11)

  1. ネットワークを介して接続された端末装置に画面を表示させるための画像情報を生成して送信する画像処理装置であって、
    前記端末装置に送信する前記画像情報を記憶可能な第1画像記憶部と、
    前記画面に含まれる予め定められた大きさの矩形領域に対応して前記第1画像記憶部の記憶領域に設定されるページごとに、前記第1画像記憶部の仮想アドレスを物理アドレスに変換するためのエントリを有する変換テーブルを記憶するテーブル記憶部と、
    前記矩形領域に含まれる画素に対する仮想アドレスを算出するアドレス算出部と、
    前記変換テーブルを参照して、書込みが要求された前記画像情報の各画素に対して算出された前記仮想アドレスに対応する前記物理アドレスを取得する取得部と、
    取得された前記物理アドレスに、書込みが要求された前記画像情報を書込む書込み部と、
    前記取得部が前記物理アドレスを取得する際に参照した前記エントリに対応するページを、書込み前後で前記画像情報が一致しない部分を表す前記画像情報の更新部分を含むページとして検出する検出部と、
    検出された前記ページに含まれる前記更新部分の前記画像情報を圧縮する圧縮部と、
    を備えたことを特徴とする画像処理装置。
  2. 前記ページ単位で前記画像情報を記憶可能な第2画像記憶部と、
    書込みが要求された前記画像情報の前記仮想アドレスを含む前記ページに対して、前記ページの書込みが要求された場合に、ページ例外の割込みを発生する例外発生部と、
    前記ページ例外が発生した前記ページに記憶された前記画像情報であって、前記書込み部によって書込む前の前記画像情報を前記第2画像記憶部に保存する保存部と、をさらに備え、
    前記検出部は、さらに、前記画像情報が前記第2画像記憶部に保存された前記ページを、前記画像情報が更新された前記ページとして検出すること、
    を特徴とする請求項1に記載の画像処理装置。
  3. 前記検出部は、更新された前記ページそれぞれについて、前記第2画像記憶部の前記画像情報と、前記書込み部によって書込まれた後の前記第1画像記憶部の前記画像情報とを比較して前記更新部分を検出すること、
    を特徴とする請求項2に記載の画像処理装置。
  4. 前記テーブル記憶部は、前記ページごとに、前記ページに対する書込みの有無を表す第1判定情報をさらに記憶し、
    書込みが要求された前記画像情報の前記仮想アドレスを含む前記ページの前記第1判定情報を書込み有りに変更する変更部をさらに備え、
    前記検出部は、さらに、前記第1判定情報が書込み有りである前記ページを、前記画像情報が更新された前記ページとして検出すること、
    を特徴とする請求項1に記載の画像処理装置。
  5. 前記書込み部によって書込む前の前記画像情報を記憶する第2画像記憶部と、
    前記書込み部によって前記画像情報が書込まれた後に、書込み後の前記画像情報を前記第2画像記憶部に保存する保存部と、をさらに備え、
    前記検出部は、更新された前記ページそれぞれについて、前記第2画像記憶部の前記画像情報と、前記書込み部によって書込まれた後の前記第1画像記憶部の前記画像情報とを比較して前記更新部分を検出すること、
    を特徴とする請求項4に記載の画像処理装置。
  6. 前記テーブル記憶部は、予め定められた個数の前記ページのグループごとに、前記グループに含まれる前記ページに対する参照の有無を表す第2判定情報をさらに記憶し、
    前記変更部は、さらに、書込みが要求された前記画像情報の前記仮想アドレスを含む前記ページを含む前記グループの前記第2判定情報を参照有りに変更し、
    前記検出部は、前記第2判定情報が参照有りである前記グループを検出し、検出した前記グループに含まれる前記ページを対象として、前記第1判定情報が書込み有りである前記ページを、前記画像情報が更新された前記ページとして検出すること、
    を特徴とする請求項4に記載の画像処理装置。
  7. 前記テーブル記憶部は、前記画面を分割した分割領域に含まれる前記矩形領域それぞれに対応する前記ページの前記グループごとに、前記第2判定情報を記憶すること、
    を特徴とする請求項6に記載の画像処理装置。
  8. 前記アドレス算出部は、前記矩形領域内の水平または垂直の方向である特定方向に隣接する各画素を含むラインに対し、前記ライン内の画素間で前記特定方向に連続し、かつ、隣接するライン間で連続する前記仮想アドレスを算出すること、
    を特徴とする請求項1に記載の画像処理装置。
  9. 前記アドレス算出部は、同一の前記画像情報に対して、書込みが要求された場合に第1仮想アドレスを算出し、読出しが要求された場合に第2仮想アドレスを算出し、
    前記テーブル記憶部は、前記第1仮想アドレスおよび前記第2仮想アドレスをそれぞれ同一の前記物理アドレスに変換するための前記変換テーブルを記憶し、
    前記ページ単位で前記画像情報を記憶可能な第2画像記憶部と、
    前記第1仮想アドレスを含む前記ページに対して書込みが要求された場合に、ページ例外の割込みを発生する例外発生部と、
    前記ページ例外が発生した前記ページに記憶された前記画像情報であって、前記書込み部によって書込む前の前記画像情報を前記第2画像記憶部に保存する保存部と、をさらに備え、
    前記検出部は、さらに、前記画像情報が前記第2画像記憶部に保存された前記ページを、前記画像情報が更新された前記ページとして検出すること、
    を特徴とする請求項1に記載の画像処理装置。
  10. ネットワークを介して接続された端末装置に画面を表示させるための画像情報を生成して送信する画像処理装置における画像情報の更新検出方法であって、
    前記画像処理装置は、
    前記端末装置に送信する前記画像情報を記憶可能な第1画像記憶部と、
    前記画面に含まれる予め定められた大きさの矩形領域に対応して前記第1画像記憶部の記憶領域に設定されるページごとに、前記第1画像記憶部の仮想アドレスを物理アドレスに変換するためのエントリを有する変換テーブルを記憶するテーブル記憶部と、を備え、
    アドレス算出部、前記矩形領域に含まれる画素に対する仮想アドレスを算出するアドレス算出ステップと、
    取得部が、前記変換テーブルを参照して、書込みが要求された前記画像情報の各画素に対して算出された前記仮想アドレスに対応する前記物理アドレスを取得する取得ステップと、
    書込み部、取得された前記物理アドレスに、書込みが要求された前記画像情報を書込む書込みステップと、
    検出部が、前記取得部が前記物理アドレスを取得する際に参照した前記エントリに対応するページを、書込み前後で前記画像情報が一致しない部分を表す前記画像情報の更新部分を含むページとして検出する検出ステップと、
    を備えたことを特徴とする更新検出方法。
  11. ネットワークを介して接続された端末装置に画面を表示させるための画像情報を生成して送信する画像処理装置における画像情報の更新検出プログラムであって、
    前記画像処理装置は、
    前記端末装置に送信する前記画像情報を記憶可能な第1画像記憶部と、
    前記画面に含まれる予め定められた大きさの矩形領域に対応して前記第1画像記憶部の記憶領域に設定されるページごとに、前記第1画像記憶部の仮想アドレスを物理アドレスに変換するためのエントリを有する変換テーブルを記憶するテーブル記憶部と、を備え、
    前記矩形領域に含まれる画素に対する仮想アドレスを算出するアドレス算出手順と、
    前記変換テーブルを参照して、書込みが要求された前記画像情報の各画素に対して算出された前記仮想アドレスに対応する前記物理アドレスを取得する取得手順と、
    取得された前記物理アドレスに、書込みが要求された前記画像情報を書込む書込み手順と、
    前記取得手順で前記物理アドレスを取得する際に参照した前記エントリに対応するページを、書込み前後で前記画像情報が一致しない部分を表す前記画像情報の更新部分を含むページとして検出する検出手順と、
    をコンピュータに実行させる更新検出プログラム。
JP2007228052A 2007-07-09 2007-09-03 画像を処理する装置、画像の更新を検出する方法およびプログラム Expired - Fee Related JP4852012B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007228052A JP4852012B2 (ja) 2007-07-09 2007-09-03 画像を処理する装置、画像の更新を検出する方法およびプログラム
US12/073,841 US8045828B2 (en) 2007-07-09 2008-03-11 Apparatus for processing images, and method and computer program product for detecting image updates
CN2008101334150A CN101383040B (zh) 2007-07-09 2008-07-09 用于处理图像的设备以及用于检测图像更新的方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007179673 2007-07-09
JP2007179673 2007-07-09
JP2007228052A JP4852012B2 (ja) 2007-07-09 2007-09-03 画像を処理する装置、画像の更新を検出する方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2009037581A JP2009037581A (ja) 2009-02-19
JP4852012B2 true JP4852012B2 (ja) 2012-01-11

Family

ID=40439398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007228052A Expired - Fee Related JP4852012B2 (ja) 2007-07-09 2007-09-03 画像を処理する装置、画像の更新を検出する方法およびプログラム

Country Status (2)

Country Link
JP (1) JP4852012B2 (ja)
CN (1) CN101383040B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8441494B2 (en) * 2009-04-23 2013-05-14 Vmware, Inc. Method and system for copying a framebuffer for transmission to a remote display
US8386745B2 (en) * 2009-07-24 2013-02-26 Advanced Micro Devices, Inc. I/O memory management unit including multilevel address translation for I/O and computation offload
JP4865021B2 (ja) * 2009-09-11 2012-02-01 株式会社東芝 画像処理装置および画像処理方法
CN102118404B (zh) * 2009-12-31 2013-10-09 华为技术有限公司 远程连接时未显示的屏幕区域更新通知的方法、装置和系统
CN102117187B (zh) * 2009-12-31 2014-05-21 华为技术有限公司 远程连接时显示多个区域屏幕的方法、装置和系统
JP5664275B2 (ja) * 2011-01-25 2015-02-04 セイコーエプソン株式会社 画像データ転送装置
JP5802167B2 (ja) * 2012-04-11 2015-10-28 アイキューブド研究所株式会社 メモリアドレス生成装置、メモリアドレス生成方法、およびプログラム
CN107291349B (zh) * 2017-06-02 2020-01-21 百富计算机技术(深圳)有限公司 显示界面旋转方法、装置、存储介质和计算机设备
EP3964949B1 (en) * 2019-05-27 2023-09-06 Huawei Technologies Co., Ltd. Graphics processing method and apparatus

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197795A (ja) * 1992-01-22 1993-08-06 Canon Inc 画像メモリ装置
JPH05323904A (ja) * 1992-05-19 1993-12-07 Canon Inc 表示制御装置及び表示制御方法
JPH08146941A (ja) * 1994-11-18 1996-06-07 Pioneer Electron Corp 画像表示装置
JP3732593B2 (ja) * 1996-09-30 2006-01-05 株式会社東芝 画像処理装置
JP3280306B2 (ja) * 1998-04-28 2002-05-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 画像情報送信方法、画像情報更新方法、送信装置及び更新装置
JP2003061052A (ja) * 2001-08-09 2003-02-28 Canon Inc 画像再生装置及び画像再生方法
JP4717289B2 (ja) * 2001-09-10 2011-07-06 シャープ株式会社 計算機リモート操作システム
JP2004086550A (ja) * 2002-08-27 2004-03-18 Matsushita Electric Ind Co Ltd 表示画面更新システム
WO2005031689A1 (en) * 2003-09-29 2005-04-07 Koninklijke Philips Electronics, N.V. A bi-stable display with accurate greyscale and natural image update
JP3968356B2 (ja) * 2004-04-29 2007-08-29 株式会社コナミデジタルエンタテインメント 表示装置、表示方法、ならびに、プログラム
JP2006003603A (ja) * 2004-06-17 2006-01-05 Olympus Corp 画像表示プログラム、画像表示方法、画像表示装置及び記録媒体
JP2007025073A (ja) * 2005-07-13 2007-02-01 Sony Corp データ伝送方法、データ送信装置及びデータ受信装置、並びにプログラム

Also Published As

Publication number Publication date
CN101383040B (zh) 2011-12-14
JP2009037581A (ja) 2009-02-19
CN101383040A (zh) 2009-03-11

Similar Documents

Publication Publication Date Title
JP4852012B2 (ja) 画像を処理する装置、画像の更新を検出する方法およびプログラム
US8045828B2 (en) Apparatus for processing images, and method and computer program product for detecting image updates
JP4810548B2 (ja) サーバ装置、更新画像検出方法およびプログラム
JP2538029B2 (ja) コンピユ−タ・デイスプレイ装置
US7746351B2 (en) Systems and methods for updating a frame buffer based on arbitrary graphics calls
US7746352B2 (en) Deferred page faulting in virtual memory based sparse texture representations
BR112012009893B1 (pt) dispositivos e métodos de geração de arquivo de imagem e de processamento de imagem, mídia de gravação não transitória legível por computador, e, estrutura de dados de um arquivo de imagem
US10043489B2 (en) Virtual surface blending and BLT operations
JP2007025958A (ja) プレビュー表示装置及びプレビュー表示方法及びプレビュー表示プログラム
WO2022179362A1 (zh) 一种图像融合方法以及装置
US9324299B2 (en) Atlasing and virtual surfaces
JP2013020395A (ja) 情報処理装置、情報処理方法及びプログラム
JP2006244480A (ja) エンティティルックアップシステム
US6639603B1 (en) Hardware portrait mode support
JP2000011151A (ja) 画像表示及びデータ読み込みのための装置及び方法
CN116795740A (zh) 数据存取方法、装置、处理器、计算机系统及存储介质
JP3417451B2 (ja) ウィンドウの機能強化型ロケータ・ヒット・テストを行う方法およびデータ処理システム
JP2005182615A (ja) エミュレーションシステムおよびエミュレーション方法
JP4594913B2 (ja) 画像転送装置、方法およびプログラム
KR101352512B1 (ko) 효율적인 메모리 사용을 위한 스택 관리 장치 및 방법
RU2821841C2 (ru) Способ визуализации, электронное устройство и носитель данных
KR101618999B1 (ko) 네트워크 부트 시스템
JP5447823B2 (ja) 画像処理装置、集積回路装置、電子機器
JPWO2018020647A1 (ja) 描画データ生成プログラム、描画データ生成装置、及び描画データ生成方法
JP2011040007A (ja) ファイル管理装置及びその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100601

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20110121

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20110127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110627

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

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

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

Free format text: PAYMENT UNTIL: 20141028

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees