(57)【要約】【課題】実施形態によれば、画像処理装置は、描画すべき描画領域を決定し、描画を決定した描画領域に対して物理メモリを割り当てることにより、画像処理装置におけるメモリ消費量を軽減する。【解決手段】第１の画像情報に基づき描画領域を決定し、前記第１の画像情報を仮想的に記憶する仮想バッファに仮想アドレスを割り当て、前記描画領域に対応する第２の画像情報を記憶する物理バッファに物理アドレスを割り当て、前記仮想バッファに割り当てた仮想アドレスを、前記物理バッファに割り当てた物理アドレスへ変換し、前記第２の画像情報を変換した前記物理アドレスに基づき前記物理バッファに記憶する。【選択図】図１
2014206881.tif 000002
【特許請求の範囲】
【請求項１】
第１の画像情報に基づき描画領域を決定する描画領域決定部と、
前記第１の画像情報を仮想的に記憶する仮想バッファに仮想アドレスを割り当てる仮想バッファ割当部と、
前記描画領域決定部で描画を決定した描画領域に対応する第２の画像情報を記憶する物理バッファに物理アドレスを割り当てる物理バッファ割当部と、
前記仮想バッファに割り当てた仮想アドレスを前記物理バッファに割り当てた物理アドレスへ変換する第１の変換部と、
前記第２の画像情報を前記第１の変換部で変換した物理アドレスに基づき前記物理バッファに記憶する描画部と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記物理バッファ割当部は、前記描画領域決定部で決定した描画領域外の第３の画像情報に対応する物理アドレスを割り当て、前記描画部は、この割り当てられた物理アドレスに基づき前記物理バッファのダミーページに前記第３の画像情報を記憶することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記描画部は、前記第３の画像情報を全て同一の前記ダミーページに記憶させることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
アプリケーションからの描画命令が前記描画領域に対応する描画命令であるか否かを判断する判断部と、
前記描画命令が、前記描画領域と描画領域外に跨がる場合は、前記描画領域のみ描画するように前記描画命令を変換する第２の変換部とを備え、
前記描画部は、前記第２の変換部と前記第１の変換部の指示に従い前記第２の画像情報を前記物理バッファに記憶することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記判断部は、前記描画命令が前記描画領域に対応する描画命令である場合、前記描画命令を前記第２の変換部に通知することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記判断部は、前記描画命令が前記描画領域に対応する描画命令でない場合、前記描画命令を廃棄することを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記物理バッファから前記第２の画像情報を取得し動画像を生成する動画像生成部と、前記動画像生成部が生成した動画像を送信する送信部と、を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項８】
第１の画像情報に基づき描画領域を決定する描画領域決定ステップと、
前記第１の画像情報を仮想的に記憶する仮想バッファに、仮想アドレスを割り当てる仮想バッファ割り当てステップと、
前記描画領域に対応する第２の画像情報を記憶する物理バッファに、物理アドレスを割り当てる物理バッファ割り当てステップと、
前記仮想バッファに割り当てた仮想アドレスを、前記物理バッファに割り当てた物理アドレスへ変換する第１の変換ステップと、
前記第２の画像情報を変換した前記物理アドレスに基づき前記物理バッファに記憶する描画ステップと、
を備えることを特徴とする画像処理方法。
【請求項９】
コンピュータに、画像情報を記憶させる画像処理プログラムであって、
第１の画像情報に基づき描画領域を決定する描画領域決定ステップと、
前記第１の画像情報を仮想的に記憶する仮想バッファに仮想アドレスを割り当てる仮想バッファ割り当てステップと、
前記描画領域に対応する第２の画像情報を記憶する物理バッファに物理アドレスを割り当てる物理バッファ割り当てステップと、
前記仮想バッファに割り当てた仮想アドレスを、前記物理バッファに割り当てた物理アドレスへ変換する第１の変換ステップと、
前記第２の画像情報を変換した前記物理アドレスに基づき前記物理バッファに記憶する描画ステップと、をコンピュータに実行させる画像処理プログラム。
【請求項１０】
画像処理装置で生成した画像情報をネットワークを介し接続するクライアント装置に表示させる画像処理システムであって、
前記画像処理装置は、
第１の画像情報に基づき描画領域を決定する描画領域決定部と、
前記第１の画像情報を仮想的に記憶する仮想バッファに仮想アドレスを割り当てる仮想バッファ割当部と、
前記描画領域決定部で描画を決定した描画領域に対応する第２の画像情報を記憶する物理バッファに物理アドレスを割り当てる物理バッファ割当部と、
前記仮想バッファに割り当てた仮想アドレスを前記物理バッファに割り当てた物理アドレスへ変換する第１の変換部と、
前記第２の画像情報を前記第１の変換部で変換した物理アドレスに基づき前記物理バッファに記憶する描画部と、
前記物理バッファから取得した前記第２の画像情報を外部へ送信する送信部と、を備え、
前記クライアント装置は、
前記画像処理装置からネットワークを介し前記第２の画像情報を受信する受信部と、
前記受信部で受け取った画像情報を表示する表示部と、を備えることを特徴とする画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像処理装置、画像処理方法、画像処理プログラム及び画像処理システムに関する。
【背景技術】
【０００２】
デスクトップ画面上の一部分のみの画像情報が必要とされる場合がある。
【０００３】
例えば、非特許文献１では、クライアントのデスクトップ上に、サーバ上の特定のアプリケーションのみを統合的に表示することができる。この場合、サーバでは、該アプリケーションの画像情報のみが必要とされる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｍｉｃｒｏｓｏｆｔ  ＴｅｃｈＮｅｔ  Ｌｉｂｒａｒｙ：  Ｏｖｅｒｖｉｅｗ  ｏｆ  ＲｅｍｏｔｅＡｐｐ
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１では、全てのアプリケーションの描画を、個別のオフスクリーンバッファへピクセル化したデータを記憶させることにより、特定のアプリケーションのみの画像情報を提供することで実現しており、サーバにおけるメモリ消費量が多いという問題がある。
【０００６】
また、提供する画像情報は、アプリケーション単位でしか指定できず、アプリケーションより小さい領域を指定することはできない。
【０００７】
本発明が解決する課題は、サーバ（画像処理装置）において、サーバで描画すべき描画領域を決定し、描画を決定した描画領域に対して物理メモリを割り当てることにより、サーバにおけるメモリ消費量を軽減することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために実施形態の画像処理装置は、第１の画像情報に基づき描画領域を決定する描画領域決定部と、前記第１の画像情報を仮想的に記憶する仮想バッファに仮想アドレスを割り当てる仮想バッファ割当部と、前記描画領域決定部で描画を決定した描画領域に対応する第２の画像情報を記憶する物理バッファに物理アドレスを割り当てる物理バッファ割当部と、前記仮想バッファに割り当てた仮想アドレスを前記物理バッファに割り当てた物理アドレスへ変換する第１の変換部と、前記第２の画像情報を前記第１の変換部で変換した物理アドレスに基づき前記物理バッファに記憶する描画部と、を備える。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る画像処理装置の構成例を示す図。
【図２】第１の実施形態に係る仮想アドレスから物理アドレスへの変換の流れを示す図。
【図３】第１の実施形態に係るアプリケーション画面例を示す図。
【図４】第１の実施形態に係る物理バッファへの描画例を示す図。
【図５】第１の実施形態に係るバッファ割当処理の概要を示すフローチャート。
【図６】第１の実施形態に係る画像処理の概要を示すフローチャート。
【図７】第２の実施形態に係る画像処理装置の構成例を示す図。
【図８】第２の実施形態に係るアプリケーション画面例を示す図。
【図９】第２の実施形態に係る物理バッファへの描画例を示す図。
【図１０】第２の実施形態に係る物理メモリへの描画例を示す図。
【図１１】第２の実施形態に係るバッファ割当処理の概要を示すフローチャート。
【図１２】第２の実施形態に係る画像処理の概要を示すフローチャート。
【図１３】第３の実施形態に係る画像処理装置の構成例を示す図。
【図１４】第３の実施形態に係る画像処理の概要を示すフローチャート。
【図１５】第３の実施形態に係る動画像送信処理の例を示す図。
【発明を実施するための形態】
【００１０】
以下、実施形態に係る画像処理装置を図面を参照して説明する。
【００１１】
（実施例１）（描画決定領域の画像情報を物理メモリに記憶、それ以外はダミーページに記憶する例）
図１に、実施例１に係る画像処理装置１００の構成例を示す。図１に示すように、実施例１に係る画像処理装置１００は、アプリケーション３００と、仮想ディスプレイデバイス４００と、ウィンドウマネージャ２００と、ハードウェア５００を備えている。
【００１２】
アプリケーション３００は、画像処理装置１００上で動作する各種処理を提供するプログラムである。アプリケーション３００は、描画領域決定部３０１を備えている。
【００１３】
描画領域決定部３０１は、画像処理装置１００で描画すべき領域を決定する。描画領域の決定方法は、どのようなものでもよい。例えば、ユーザが指定した領域を描画領域としてもよいし、描画命令がある閾値よりも高頻度で発生する領域を描画領域としてもよいし、ブラウザアプリケーションの場合はＣａｎｖａｓ要素に対応する領域を描画領域とするなどアプリケーションの種類ごとに特定の条件を設定してもよい。
【００１４】
仮想ディスプレイデバイス４００は、仮想バッファ割当部４０２と、物理バッファ割当部４０１を備えている。
【００１５】
仮想バッファ割当部４０２は、画像処理装置１００で生成する画像情報を記憶するバッファを仮想的に割り当て、ここで割り当てた仮想バッファに応じたサイズ分の仮想アドレスを仮想バッファへ割り当てる。仮想バッファは、クライアント側のディスプレイの解像度の設定に従って確保される。例えば、ディスプレイの解像度がＸＧＡ（１０２４×７６８ピクセル）となっている場合は、１０２４×７６８ピクセルのサイズの仮想バッファが割り当てられる。なお、仮想バッファのサイズは、ディスプレイに対応するサイズではなく、アプリケーション３００が指定したサイズの仮想バッファを割り当ててもよい。
【００１６】
物理バッファ割当部４０１は、画像処理装置１００で生成する画像情報を記憶するバッファ５０２を物理的に割り当てる。なお、このバッファ５０２（物理バッファ）は、描画領域に従って確保される。例えば、描画領域の大きさが１０２４×４ピクセルの場合は、１０２４×４ピクセルのサイズの物理バッファが割り当てられる。なお、物理バッファは、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、光ディスク、メモリカードなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００１７】
ここで、仮想バッファの仮想アドレスから物理バッファの物理アドレスへのアドレス変換の流れについて図２を用いて説明する。
【００１８】
アプリケーション３００は、仮想アドレスによって、仮想アドレス空間上の論理的にリニアなメモリ空間をアクセスする。本実施の形態では、３２ビット長の仮想アドレスを用いる。３２ビット長の仮想アドレスは、１０ビット、１０ビット、１２ビットで区切られ、各ビットはそれぞれ以下のような意味を有する。
【００１９】
仮想アドレスの上位１０ビットは、２段階の階層構造で表された変換テーブルの上位のテーブルであるＰａｇｅＤｉｒｅｃｔｏｒｙ内のエントリを特定するために利用される。特定したエントリには、下位のテーブルである複数のＰａｇｅＴａｂｌｅのうちいずれかを特定するためのポインタが含まれる。図２では、ｐｔ１で表されるＰａｇｅＴａｂｌｅが特定された例が示されている。
【００２０】
仮想アドレスの中位１０ビットは、このポインタにより特定されるＰａｇｅＴａｂｌｅ内のエントリを特定するために利用される。特定したエントリには、物理アドレス空間上のページブロック（以下、単にページという）を特定するためのポインタが含まれる。なお、ページとは、仮想アドレスにマッピングできる物理メモリの最小単位をいい、連続する物理メモリがページに割り当てられる。
【００２１】
仮想アドレスの下位１２ビットは、このポインタにより特定されるページ内のオフセットを表す。オフセットとは、ページ内の位置を特定するために利用される。例えば、１ページが４０９６バイトの場合は、オフセットは０から４０９５の値を取る。図２の例では、オフセットが０の場合は、物理アドレス空間上の網掛けされたページの左上の位置が特定される。
【００２２】
このようにして、３２ビット長の仮想アドレスから物理アドレスへと変換することができる。
【００２３】
実施例１に係る物理バッファ割当部４０１は、描画領域に対応する仮想アドレスに対しては新たに物理アドレスを割り当て、描画領域外に対応する仮想アドレスに対しては全て同一のダミーページを割り当てる。なお、ダミーページは、複数のアプリケーション３００で共用してもよい。
【００２４】
例えば、１０２４×７６８ピクセルの画面で、１ピクセルあたりのデータ量が４バイトであり、かつ、１ページが４０９６バイトの場合は、ラスタ（横）方向の１ラインが１ページに相当する。そのため、１０２４×４ピクセルのサイズの物理バッファとは、４ページ分の物理アドレスを割り当てることを意味する。
【００２５】
図２の例では、ｐｔ１のエントリＡ、Ｂ、Ｃ、Ｄに対しては新たに物理アドレスを割り当て、エントリＥ、Ｆに対しては同一のダミーページを割り当てている。なお、１０２４×７６８ピクセルの画面のうち１０２４×４ピクセルのみが描画領域の場合、７６８から４を引いた７６４ページ分が同一のダミーページに割り当てられる。
【００２６】
ウィンドウマネージャ２００は、描画部２０１を備えている。
【００２７】
描画部２０１は、アプリケーション３００から描画命令を受け取り、描画命令に含まれる座標情報などから特定した仮想アドレスに対して、描画命令に従い各種画像処理を行った結果の画像情報の書き込み要求を発行する。なお、座標情報とは、例えば、１０２４×７６８ピクセルの画面の場合、画面左上を（０、０）、画面右下を（１０２３、７６７）とするような座標系で表された情報をいう。
【００２８】
ハードウェア５００は、第１の変換部５０１及び物理バッファ５０２を備えている。
【００２９】
第１の変換部５０１は、仮想バッファの仮想アドレスを物理バッファの物理アドレスに変換を行なう。第１の変換部から物理アドレスを取得した描画部は、物理バッファ５０２上の物理アドレスへ画像情報を書き込む。
【００３０】
図３に、アプリケーション画面例を示す。また、図４に、図３に対応する、物理バッファへの描画例を示す。図３に示すように、画面の上部１０２４×４ピクセルの領域が描画領域であり、描画領域に黒い円、描画領域外に黒い矩形を描画する場合、図４に示すように、描画領域に対応する物理バッファへ黒い円が描画され、黒い矩形はダミーページに描画される。
【００３１】
次に、このように構成された実施例１の実施形態にかかる画像処理装置１００によるバッファ割当処理および画像処理について説明する。
【００３２】
最初に、バッファ割当処理の概要について、図５を用いて説明する。
【００３３】
まず、仮想バッファ割当部４０２が、ディスプレイの解像度の設定に従い、仮想バッファを割り当てる（ステップＳ１００）。例えば、１０２４×７６８ピクセルの画面の場合、仮想バッファの仮想アドレスは、例えば、０ｘ００００００００〜０ｘ００２ｆｆｆｆｆとなる。
【００３４】
次に、描画領域決定部３０１が、描画領域を決定する（ステップＳ１０１）。
【００３５】
最後に、物理バッファ割当部４０１が、描画領域の大きさに従い、物理バッファを割り当てる（ステップＳ１０２）。この際、ＰａｇｅＴａｂｌｅにおいて、描画領域に対応するエントリには物理バッファのアドレスを特定するためのポインタを含め、描画領域外に対応するエントリにはダミーページへのポインタを含める。例えば、１０２４×７６８ピクセルの画面の上部１０２４×４の領域のみが描画領域の場合、描画領域に対応する、仮想アドレスの０ｘ００００００００〜０ｘ００００３ｆｆｆに対応するエントリに対しては、物理バッファのアドレスを特定するためのポインタが含まれ、描画領域外に対応する、仮想アドレスの０ｘ００００４０００〜０ｘ００２ｆｆｆｆｆに対応するエントリに対しては、ダミーページへのポインタが含まれる。
【００３６】
次に、画像処理の概要について、図６を用いて説明する。
【００３７】
まず、アプリケーション３００が、描画命令を発行する（ステップＳ２００）。
【００３８】
次に、描画部２０１が、描画命令に含まれる座標情報などから仮想バッファの仮想アドレスを特定し、画像情報の書き込み要求を発行する。描画領域内の描画であれば物理バッファ内の物理アドレスに、描画領域外の描画であればダミーページの物理アドレスに画像情報の書き込み要求を行う（ステップＳ２０１）。
【００３９】
次に、第１の変換部５０１が、仮想バッファの仮想アドレスを物理バッファの物理アドレスに変換し、物理バッファ上の物理アドレスへ書き込む（ステップＳ２０２）。例えば、画面の（０、０）から幅１０２４ピクセル、高さ１ピクセルの矩形に対応する仮想アドレスは、０ｘ００００００００〜０ｘ００００１ｆｆｆとなる。この仮想アドレスを、ＰａｇｅＴａｂｌｅを用いて、物理アドレスに変換する。描画領域内の描画であれば物理バッファ内の物理アドレスに、描画領域外の描画であればダミーページの物理アドレスに変換されて描画される。
【００４０】
このように、実施例１の実施形態にかかる画像処理装置１００では、描画領域に対してのみ物理バッファを割り当て、描画領域外に対しては全て同一のダミーページを割り当てることにより、画像処理装置１００におけるメモリ消費量を抑えることができる。
【００４１】
（実施例２）（描画領域外の描画命令は描画せずに廃棄する例）
次に、実施例２について説明する。
【００４２】
実施例１の実施形態では、描画領域外の描画はダミーページに行っていた。
【００４３】
実施例２の実施形態では、描画領域外の描画命令は描画せずに廃棄する例について説明する。
【００４４】
以下、実施例１の実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【００４５】
図７に、実施例２の実施形態に係る画像処理装置１００の構成例を示す。
【００４６】
実施例２の実施形態では、仮想バッファ割当部４０２と、物理バッファ割当部４０１と、判断部２０２と、第２の変換部２０３の機能が実施例１の実施形態と異なっている。その他の構成は、実施例１の実施形態に係る画像処理装置１００の構成と同様であるので、ここでの説明は省略する。
【００４７】
実施例１の実施形態では、仮想バッファ割当部４０２は、ＰａｇｅＴａｂｌｅに設定される実際の仮想アドレスを割り当てていた。実施例２の実施形態では、仮想バッファ割当部４０２は、ダミーの仮想アドレスを割り当てる。例えば、１０２４×７６８ピクセルの画面の場合、０ｘ００００００００〜０ｘ００２ｆｆｆｆｆのダミーの仮想アドレスを割り当てる。アプリケーション３００には、ダミーの仮想アドレスが通知される。
【００４８】
物理バッファ割当部４０１は、描画領域に対応する実際の仮想アドレスおよび物理アドレスを割り当てる。例えば、画面の（０、０）から幅６４ピクセル、高さ６４ピクセルの領域が描画領域の場合、６４×６４ピクセル分の物理アドレスを割り当てる。例えば、０ｘ００３０００００〜０ｘ００３００ｆｆｃの物理アドレスを割り当てる。この際、実際の仮想アドレスも割り当てる。例えば、０ｘ００４０００００〜０ｘ００４００ｆｆｃの仮想アドレスを割り当てる。
【００４９】
判断部２０２は、アプリケーション３００から描画命令を受け取り、描画領域に対する描画命令であるか否かを判断し、描画領域に対応する場合は描画命令を第２の変換部２０３に渡し、対応しない場合は描画命令を廃棄する。例えば、描画領域が画面の（０、０）から幅６４ピクセル、高さ６４ピクセルであり、（１００、０）から幅１０２４ピクセル、高さ１００ピクセルの矩形を描画するための描画命令が発行された場合、描画命令は廃棄される。
【００５０】
第２の変換部２０３は、描画命令が描画領域と描画領域外に跨がる場合は、描画領域にのみ描画が発生するように描画命令を変換する。例えば、描画領域が画面の（０、０）から幅６４ピクセル、高さ６４ピクセルであり、（０、０）から幅１０２４ピクセル、高さ１００ピクセルの矩形を描画するための描画命令が発行された場合、（０、０）から幅６４ピクセル、高さ６４ピクセルの矩形を描画するための描画命令へ変換する。また、ダミーの仮想アドレスから実際の仮想アドレスへのアドレス変換を行う。
【００５１】
図８に、アプリケーション画面例を示す。ダミーの仮想アドレス空間は、レイアウト計算のために用いられる。例えば、ディスプレイサイズの仮想バッファを割り当てており、アプリケーション３００を仮想バッファ上の（１０、１０）に描画している場合、アプリケーション画面の（０、０）から幅６４ピクセル、高さ６４ピクセルの矩形を描画するための描画命令は、仮想バッファ上の（１０、１０）から幅６４ピクセル、高さ６４ピクセルの矩形を描画するための描画命令として発行される。なお、アプリケーション３００に対応するウィンドウの描画位置やサイズの情報を含むウィンドウ情報は、ウィンドウマネージャ２００が管理している。
【００５２】
また、図８に対応する、物理バッファおよび物理アドレスへの描画例を、図９および図１０に示す。物理アドレスは、連続したアドレスが割り当てられる。例えば、６４×６４ピクセルのサイズの物理バッファには、図１０に示すように、１ページ分の連続した物理アドレスが割り当てられる。
【００５３】
ここで、アドレス変換処理および描画処理の概要について説明する。
【００５４】
アドレスは、以下の式で計算される。ここで、ｘ、ｙはバッファ５０２上の位置情報、ｂｕｆＷはバッファ５０２のピクセル単位の横幅、Ｂｐｐは１ピクセル当たりのバイト数とする。
【００５５】
ｙ×ｂｕｆＷ×Ｂｐｐ＋ｘ×Ｂｐｐ＋開始アドレス。
【００５６】
例えば、１０２４×７６８ピクセルのサイズの仮想バッファに、０ｘ００００００００〜０ｘ００２ｆｆｆｆｆのダミーの仮想アドレスが割り当てられ、アプリケーション画面の（０、０）から幅６４ピクセル、高さ６４ピクセルの描画領域に、０ｘ００３０００００〜０ｘ００３００ｆｆｃの物理アドレスと０ｘ００４０００００〜０ｘ００４００ｆｆｃの実際の仮想アドレスが割り当てられているとする。また、アプリケーション３００は、仮想バッファの（１０、１０）の位置に描画されているとする。
【００５７】
この場合、アプリケーション画面の（０、０）から幅６４ピクセル、高さ６４ピクセルの矩形を描画するための描画命令は、仮想バッファ上の（１０、１０）から幅６４ピクセル、高さ６４ピクセルの矩形を描画するための描画命令として発行される。描画部２０１は、横幅ごとに書き込み要求を発行する。そのため、まず、（１０、１０）から幅６４ピクセルの書き込み要求が発行される。次に、第２の変換部２０３で、まず、ｘ＝１０、ｙ＝１０、ｂｕｆＷ＝１０２４、開始アドレス＝０ｘ００００００００を上述の式に代入し、（１０、１０）に対応する０ｘ００００９０２８のダミーの仮想アドレスが計算される。次に、物理バッファは、描画領域のみを含むため、ｘ＝０、ｙ＝０、ｂｕｆＷ＝６４、開始アドレス＝０ｘ００４０００００を上述の式に代入し、０ｘ００４０００００の実際の仮想アドレスが計算されて、ダミーの仮想アドレスが実際の仮想アドレスに変換される。
【００５８】
次に、第１の変換部５０１で、ｘ＝０、ｙ＝０、ｂｕｆＷ＝６４、開始アドレス＝０ｘ００３０００００を上述の式に代入し、０ｘ００３０００００の物理アドレスが計算され、実際の仮想アドレスが物理アドレスに変換される。この物理アドレスに対して、描画部２０１が生成した幅６４ピクセル、高さ１ピクセル分の画像情報が書き込まれる。次に、（１０、１１）から幅６４ピクセルの書き込み要求が発行され、第２の変換部２０３で、ｘ＝１０、ｙ＝１１、ｂｕｆＷ＝１０２４、開始アドレス＝０ｘ００００００００を上述の式に代入し、（１０、１１）に対応する０ｘ００００ａ０２８のダミーの仮想アドレスが計算され、ｘ＝０、ｙ＝１、ｂｕｆＷ＝６４、開始アドレス＝０ｘ００４０００００を上述の式に代入し、０ｘ００４００１００の実際の仮想アドレスが計算されて変換され、第１の変換部５０１で、ｘ＝０、ｙ＝１、ｂｕｆＷ＝６４、開始アドレス＝０ｘ００３０００００を上述の式に代入し、０ｘ００３００１００の物理アドレスが計算されて変換される。このように、アドレス変換処理を行いながら、描画処理を行う。
【００５９】
なお、動作途中で描画領域が変わってもよい。この場合、描画領域の変更に伴い、ダミーの仮想アドレスから実際の仮想アドレスへの変換処理を合わせて変更する。また、アプリケーションごとに物理バッファを割り当てなくても、共有物理バッファを割り当て、複数のアプリケーションの描画領域を並べて描画してもよい。
【００６０】
次に、このように構成された実施例２の実施形態にかかる画像処理装置１００によるバッファ割当処理および画像処理について説明する。
【００６１】
最初に、バッファ割当処理の概要について図１１を用いて説明する。実施例２の実施形態では、仮想バッファ割当部４０２と物理バッファ割当部４０１の機能が実施例１の実施形態と異なっている。その他の機能は、実施例１の実施形態に係る画像処理装置１００の機能と同様であるので、ここでの説明は省略する。
【００６２】
まず、実施例１の実施形態では、仮想バッファ割当部４０２は、実際の仮想アドレスを割り当てていた。
【００６３】
実施例２の実施形態では、仮想バッファ割当部４０２は、ダミーの仮想アドレスを割り当てる（ステップＳ３００）。
【００６４】
次に、実施例１の実施形態では、物理バッファ割当部４０１は、仮想バッファに対応するＰａｇｅＴａｂｌｅのエントリを作成し、描画領域外に対しては、ダミーページを割り当てていた。
【００６５】
実施例２の実施形態では、物理バッファ割当部４０１は、物理バッファに対応するＰａｇｅＴａｂｌｅのエントリのみを作成し、描画領域決定部３０１で決定（ステップ３０１）された描画領域に対して物理バッファを割り当て、描画領域外に対しては、何も割り当てない（ステップＳ３０２）。
【００６６】
次に、画像処理の概要について図１２を用いて説明する。実施例２の実施形態では、判断部２０２と第２の変換部２０３の機能が実施例１の実施形態と異なっている。その他の機能は、実施例１の実施形態に係る画像処理装置１００の機能と同様であるので、ここでの説明は省略する。
【００６７】
実施例２の実施形態では、まず、判断部２０２が、アプリケーション３００からの描画命令を受け（ステップＳ４００）、描画領域に対する描画命令であるか否かを判断し（ステップＳ４０１）、描画領域に対応する場合は描画命令を第２の変換部２０３に渡し、対応しない場合は描画命令を廃棄する（ステップＳ４０６）。
【００６８】
次に、第２の変換部２０３が、描画命令が描画領域と描画領域外に跨がる場合（ステップＳ４０２）は、描画領域にのみ描画が発生するように描画命令を変換（ステップＳ４０３）する。また、ダミーの仮想アドレスを実際の仮想アドレスに変換し（ステップＳ４０４）、物理バッファに描画領域に対応する画像情報を書き込む（ステップＳ４０５）。
【００６９】
このように、実施例２の実施形態にかかる画像処理装置１００では、描画領域外に対しては物理アドレスを割り当てず、描画領域外に対する描画命令は描画せずに廃棄することにより、画像処理装置１００におけるメモリ消費量を抑えることができる。
【００７０】
（実施例３）（画像情報を表示装置に送信する例）
次に、実施例３の実施形態について説明する。
【００７１】
実施例３の実施形態では、描画領域の画像情報をクライアントに送信する例について説明する。以下、実施例１の実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【００７２】
図１３に、実施例３の実施形態に係る画像処理装置１００の構成例を示す。
【００７３】
実施例３の実施形態では、動画像生成部２０４と送信部５０３の機能が実施例１の実施形態と異なっている。その他の構成は、実施例１の実施形態に係る画像処理装置１００の構成と同様であるので、ここでの説明は省略する。
【００７４】
動画像生成部２０４は、描画領域の画像情報を物理バッファから取得し、動画像を生成する。
【００７５】
なお、動画像は、どのような形式のものでもよい。例えば、Ｈ．２６４形式の動画を生成してもよい。また、更新画像のみを送信してもよい。例えば、描画部２０１から描画情報を取得し、新たに描画が発生した領域の画像情報のみを物理バッファから取得し、ＪＰＥＧ画像を生成してもよい。また、物理バッファとクライアントに送信済みのバックアップ画像を比較して、実際に変化のあった差分領域の画像情報のみを物理バッファから取得し、ＰＮＧ画像を生成してもよい。
【００７６】
送信部５０３は、動画像生成部２０４が生成した動画像をクライアントへ送信する。
【００７７】
次に、画像処理の概要について図１４を用いて説明する。実施例３の実施形態では、動画像生成部２０４と送信部５０３の機能が実施例１の実施形態と異なっている。その他の機能は、実施例１の実施形態に係る画像処理装置１００の機能と同様であり、ステップＳ５００〜ステップ５０３の処理は、ステップＳ２００〜ステップＳ２０３に対応するため、ここでの処理説明は省略する。
【００７８】
まず、動画像生成部２０４が描画領域に対応する画像情報を物理バッファから取得して動画像を生成する（ステップＳ５０３）。
【００７９】
次に、送信部５０３が動画像をクライアントに送信する（ステップＳ５０４）。
【００８０】
図１５に、動画像送信処理の例を示す。図１５の例では、クライアントにおいて、クライアントの画面上の左下部分は画像処理装置１００で描画した画像情報を動画または画像として受信し、残りの部分はクライアントで描画して、合成して表示している。
【００８１】
クライアントは、画像処理装置１００からネットワークを介し、画像情報を受信する図示しない受信部を備えるともに、この受信部で受け取った画像情報を表示する表示部を備える。
【００８２】
このように、実施例３の実施形態にかかる画像処理装置１００では、画像処理装置１００とクライアントで描画処理を分担する分散処理システムに応用することができる。
【００８３】
これまで、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８４】
１００  画像処理装置
２００  ウィンドウマネージャ
３００  アプリケーション
４００  仮想ディスプレイデバイス
５００  ハードウェア
２０１  描画部
３０１  描画領域決定部
４０１  物理バッファ割当部
４０２  仮想バッファ割当部
５０１  第１の変換部
５０２  バッファ。
【図１】
2014206881.tif 000003
【図２】
2014206881.tif 000004
【図３】
2014206881.tif 000005
【図４】
2014206881.tif 000006
【図５】
2014206881.tif 000007
【図６】
2014206881.tif 000008
【図７】
2014206881.tif 000009
【図８】
2014206881.tif 000010
【図９】
2014206881.tif 000011
【図１０】
2014206881.tif 000012
【図１１】
2014206881.tif 000013
【図１２】
2014206881.tif 000014
【図１３】
2014206881.tif 000015
【図１４】
2014206881.tif 000016
【図１５】
2014206881.tif 000017