(57)【要約】【課題】転送の負荷を軽減する画像転送装置を提供すること。【解決手段】端末装置に表示する画面の画像情報を記憶可能なフレームバッファ１４２と、画面に含まれる予め定められた大きさの矩形領域であるブロックのそれぞれについて、ブロック内の各画素に対して、フレームバッファ１４２の連続するアドレスを算出するアドレス算出部１３３と、算出したアドレスに基づいて画像情報をフレームバッファ１４２に保存する保存部１４１と、ブロックごとに画像情報をフレームバッファ１４２から読み出し、読み出した画像情報を圧縮する圧縮部１５２と、圧縮した画像情報を端末装置に転送する転送部１５３と、を備えた。【選択図】        図２
2008085502.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された端末装置に画像情報を転送する画像転送装置であって、
前記端末装置に表示する画面の前記画像情報を記憶可能な画像記憶部と、
前記画面に含まれる予め定められた大きさの矩形領域であるブロックのそれぞれについて、前記ブロック内の各画素に対して、前記画像記憶部の連続するアドレスを算出するアドレス算出部と、
算出した前記アドレスに基づいて前記画像情報を前記画像記憶部に保存する保存部と、
前記ブロックごとに前記画像情報を前記画像記憶部から読み出し、読み出した前記画像情報を圧縮する圧縮部と、
圧縮した前記画像情報を前記端末装置に転送する転送部と、
を備えたことを特徴とする画像転送装置。
【請求項２】
前記画像情報が変更された前記画面内の領域の前記画面における座標を示す座標情報を記憶可能な更新情報記憶部をさらに備え、
前記保存部は、さらに前記画像情報が変更された前記領域の前記座標情報を前記更新情報記憶部に保存すること、
を特徴とする請求項１に記載の画像転送装置。
【請求項３】
前記更新情報記憶部に記憶された前記座標情報に基づいて、前記ブロックうち、前記画像情報が変更された前記領域が含まれる前記ブロックを検出する検出部をさらに備え、
前記圧縮部は、検出された前記ブロックに対応する前記画像情報を前記画像記憶部から読み出し、読み出した前記画像情報を前記ブロックごとに圧縮すること、
を特徴とする請求項２に記載の画像転送装置。
【請求項４】
前記アドレス算出部は、前記ブロック内の各画素の前記座標情報から前記ブロック内の各画素に対する前記画像記憶部の連続するアドレスを算出し、
前記検出部は、前記更新情報記憶部に記憶された前記座標情報に対応する前記アドレスを算出し、算出した前記アドレスを含む前記ブロックを、前記画像情報が変更された前記領域が含まれる前記ブロックとして検出すること、
を特徴とする請求項３に記載の画像転送装置。
【請求項５】
前記アドレス算出部は、前記ブロック内の水平または垂直の方向である第１方向に隣接する各画素を含むラインに対し、前記ライン内の画素間で前記第１方向に連続し、かつ、隣接するライン間で連続する前記アドレスを算出すること、
を特徴とする請求項１に記載の画像転送装置。
【請求項６】
前記アドレス算出部は、前記第１方向に対して垂直の方向である第２方向に隣接する前記ブロック間で連続する前記アドレスを算出すること、
を特徴とする請求項５に記載の画像転送装置。
【請求項７】
前記ブロックごとに前記画像情報が変更された画素が含まれているか否かを表す更新情報を記憶可能な更新情報記憶部をさらに備え、
前記保存部は、前記画像情報が変更された画素を含む前記ブロックに対して、前記画像情報が変更された画素が含まれていることを表す前記更新情報を前記更新情報記憶部に保存すること、
を特徴とする請求項６に記載の画像転送装置。
【請求項８】
前記画像情報が変更された画素が含まれていることを表す前記更新情報が保存された前記ブロックを前記更新情報記憶部から取得することにより、前記画像情報が変更された画素が含まれている前記ブロックを検出する検出部をさらに備え、
前記圧縮部は、検出された前記ブロックに対応する前記画像情報を前記画像記憶部から読み出し、読み出した前記画像情報を前記ブロックごとに圧縮すること、
を特徴とする請求項７に記載の画像転送装置。
【請求項９】
前記アドレス算出部は、前記画面に含まれる８画素×８画素の矩形領域である前記ブロックのそれぞれについて、前記ブロック内の各画素に対して、前記画像記憶部の連続するアドレスを算出し、
前記圧縮部は、読み出した前記画像情報をＪＰＥＧ（Ｊｏｉｎｔ Ｐｈｏｔｏｇｒａｐｈｉｃ Ｅｘｐｅｒｔ Ｇｒｏｕｐ）方式で圧縮すること、
を特徴とする請求項１に記載の画像転送装置。
【請求項１０】
ネットワークを介して接続された端末装置に画像情報を転送する画像転送装置における画像転送方法であって、
前記画像転送装置は、前記端末装置に表示する画面の前記画像情報を記憶可能な画像記憶部を備え、
アドレス算出部によって、前記画面に含まれる予め定められた大きさの矩形領域であるブロックのそれぞれについて、前記ブロック内の各画素に対して、前記画像記憶部の連続するアドレスを算出するアドレス算出ステップと、
保存部によって、算出した前記アドレスに基づいて前記画像情報を前記画像記憶部に保存する保存ステップと、
圧縮部によって、前記ブロックごとに前記画像情報を前記画像記憶部から読み出し、読み出した前記画像情報を圧縮する圧縮ステップと、
転送部によって、圧縮した前記画像情報を前記端末装置に転送する転送ステップと、
を備えたことを特徴とする画像転送方法。
【請求項１１】
ネットワークを介して接続された端末装置に画像情報を転送する画像転送装置における画像転送プログラムであって、
前記画像転送装置は、前記端末装置に表示する画面の前記画像情報を記憶可能な画像記憶部を備え、
前記画面に含まれる予め定められた大きさの矩形領域であるブロックのそれぞれについて、前記ブロック内の各画素に対して、前記画像記憶部の連続するアドレスを算出するアドレス算出手順と、
算出した前記アドレスに基づいて前記画像情報を前記画像記憶部に保存する保存手順と、
前記ブロックごとに前記画像情報を前記画像記憶部から読み出し、読み出した前記画像情報を圧縮する圧縮手順と、
圧縮した前記画像情報を前記端末装置に転送する転送手順と、
をコンピュータに実行させる画像転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ネットワークを介して接続された端末装置に画像情報を転送する画像転送装置、方法およびプログラムに関するものである。
【背景技術】
【０００２】
一般に、ＰＣ（Personal Computer）などのように画像を表示する機能を有する計算機は、ディスプレイに表示するグラフィックデータ（画像データ）を保持するＶＲＡＭ（Video Random Access Memory）などのフレームバッファを備えている。フレームバッファはＸ−Ｙ座標に対応したメモリ領域であり、ラスタスキャン方式に従った順序でリニアに並んだアドレスを有する。ＬＣＤ（Liquid Crystal Display）コントローラやＣＲＴ（Cathode Ray Tube）コントローラは、ラスタスキャンに合わせてフレームバッファから画像データを取得してモニタに表示する。
【０００３】
このように、従来の計算機のグラフィックデバイスのフレームバッファは、計算機に接続されたモニタに表示するときに有利となるように、画面表示のラスタ方向に線形に画面データを配置する構成となっている。
【０００４】
一方、仮想計算機サーバ上で動作しているアプリケーション等の表示画面を端末装置上に表示するシステムや、他の端末装置を遠隔操作するシステムなどが開発されており、このようなシステムでも、互換性を確保するために従来と同じ構造のフレームバッファが利用されている。なお、このようなシステムでは、フレームバッファから取得した画像データを外部装置に転送する必要がある。
【０００５】
例えば、特許文献１では、ローカル端末からリモート端末を遠隔操作するリモート操作システムに関する技術が提案されている。具体的には、特許文献１は、セキュリティ向上、省電力化を目的として、リモート操作中に操作対象となるリモート端末の画面を省電力モードとするとともに、操作元の端末側でのパスフレーズの入力でリモート端末のロック状態を解除する方法を開示している。
【０００６】
一般に、特許文献１を含む従来の技術では、デスクトップ画面の更新でフレームバッファに書き込まれるべきデータと遠隔操作用端末に転送されるべきデータを判断し、更新された部分の画像データのみを転送する。このようにして、ハイスペックなグラフィック機能を有する計算機における通信負荷の増大に対処している。また、通信負荷を軽減するために転送時に画像圧縮を行う方法も知られている。
【０００７】
【特許文献１】特開２００３−８５１３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、画像圧縮を行う場合、圧縮の画像ブロックとフレームバッファの構造が一致していないため、圧縮の作業用メモリへ圧縮方式に見合った形へ画像の切り出しを行う必要があり、画像データの送信側で余分な処理負荷が発生するという問題があった。
【０００９】
例えば、ＪＰＥＧ（Joint Photographic Expert Group）形式で圧縮する場合、圧縮の画像ブロックは８×８画素のブロックであるのに対し、フレームバッファは上述のようにリニアにアドレッシングされた構造を有する。このため、フレームバッファから圧縮対象となる８×８画素の領域を切出して圧縮の作業用メモリへコピーする必要が生じる。
【００１０】
本発明は、上記に鑑みてなされたものであって、画面の更新部分の切り出しと画像の圧縮を効率化することにより、転送の負荷を軽減することができる画像転送装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、ネットワークを介して接続された端末装置に画像情報を転送する画像転送装置であって、前記端末装置に表示する画面の前記画像情報を記憶可能な画像記憶部と、前記画面に含まれる予め定められた大きさの矩形領域であるブロックのそれぞれについて、前記ブロック内の各画素に対して、前記画像記憶部の連続するアドレスを算出するアドレス算出部と、算出した前記アドレスに基づいて前記画像情報を前記画像記憶部に保存する保存部と、前記ブロックごとに前記画像情報を前記画像記憶部から読み出し、読み出した前記画像情報を圧縮する圧縮部と、圧縮した前記画像情報を前記端末装置に転送する転送部と、を備えたことを特徴とする。
【００１２】
また、本発明は、上記装置を実行することができる方法およびプログラムである。
【発明の効果】
【００１３】
本発明によれば、画面の更新部分の切り出しと画像の圧縮を効率化することにより、転送の負荷を軽減することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この発明にかかる画像転送装置、方法およびプログラムの最良な実施の形態を詳細に説明する。
【００１５】
（第１の実施の形態）
第１の実施の形態にかかる画像転送装置は、表示する画面に含まれる各画素を圧縮処理の単位に合わせたブロックに分割し、分割したブロック内で線形にアドレッシングされるように各画素の座標をフレームバッファのアドレスに変換するものである。また、分割したブロック単位で圧縮処理を実行することにより、フレームバッファから圧縮のための作業用メモリへのコピー処理を不要とするものである。
【００１６】
以下では、端末装置に対して各種処理を提供するために仮想的な計算機環境を作成し、当該計算機環境で実行された処理の結果を表示するための画像情報を端末装置に提供する仮想計算機サーバに適用した例について説明する。なお、適用可能な装置はこのような仮想計算機サーバに限られるものではなく、フレームバッファに格納した画面の画像情報を圧縮して転送する装置であればあらゆる装置に適用できる。
【００１７】
図１は、第１の実施の形態にかかる画像転送装置１００を含むネットワーク構成の概要を示すブロック図である。同図に示すように、画像転送装置１００は、インターネットやＬＡＮ（Local  Area  Network）などのネットワーク３００を介して、ユーザが操作を行う端末装置２００と接続されている。
【００１８】
端末装置２００は、画像転送装置１００から転送された画像情報を自装置内のディスプレイなどの表示装置に表示する機能を有する。また、端末装置２００は、画像転送装置１００から転送された画面の更新部分のみの画像情報を受信し、受信した画像情報によって更新部分のみを表示する機能を有することを前提とする。
【００１９】
画像転送装置１００は、画像転送装置１００を動作させる基盤となるホストＯＳ１１０と、アプリケーション１２０と、ゲストＯＳ１３０と、仮想表示部１４０と、バックエンド仮想表示部１５０とを備えている。
【００２０】
ゲストＯＳ１３０は、端末装置２００に対応する仮想的な計算機環境を動作させるＯＳであり、ホストＯＳ１１０上で動作する。アプリケーション１２０は、ゲストＯＳ１３０上で動作する各種処理を提供するプログラムである。
【００２１】
仮想表示部１４０は、ゲストＯＳ１３０が生成する画像情報を出力するための仮想的な表示装置であり、後述するように画像情報を記憶するフレームバッファ１４２を含んでいる。バックエンド仮想表示部１５０は、画像表示に関する共通処理を実行するものであり、ホストＯＳ１１０上で動作する。
【００２２】
次に、画像転送装置１００の各構成部の詳細な機能について説明する。図２は、第１の実施の形態にかかる画像転送装置１００の構成を示すブロック図である。
【００２３】
ゲストＯＳ１３０は、画像表示に関する機能として、グラフィックライブラリ１３１を備えている。なお、ゲストＯＳ１３０は、画像表示に関する機能以外にも、仮想的な計算機環境を動作するために必要なあらゆる機能を備えている。
【００２４】
グラフィックライブラリ１３１は、レンダラ１３２と、アドレス算出部１３３とを備えている。
【００２５】
レンダラ１３２は、アプリケーション１２０などから指定された描画命令に従い、各種画像処理を行ってその結果である画像情報を出力するものである。例えば、レンダラ１３２は、ある領域を拡大・縮小する描画命令を受けた場合、描画命令に含まれる座標情報などから拡大・縮小する領域を特定し、当該領域に対して拡大・縮小を行った結果である領域の座標情報などを含む画像情報を出力する。なお、座標情報とは、例えば、１０２４×７６８ピクセルの画面の場合、画面左上を（０、０）、画面右下を（１０２３、７６７）とするような座標系で表された情報をいう。このように、第１の実施の形態では、画面右方向をＸ座標方向、画面下方向をＹ座標方向としたＸ−Ｙ座標によって画面上の画素の座標情報を表す。
【００２６】
アドレス算出部１３３は、レンダラ１３２が出力した画像情報を入力し、画像情報の座標情報をフレームバッファ１４２（後述）のアドレスに変換する処理を行うものである。第１の実施の形態では、アドレス算出部１３３は、端末装置２００に表示する表示画面に含まれる画素を、ＪＰＥＧで圧縮するときの単位である８×８画素のブロック（圧縮ブロック）に分割し、分割したブロック内で連続するようなアドレスを算出する。
【００２７】
具体的には、アドレス算出部１３３は、従来の算出式である以下の（１）式に代わり、以下の（２）式に従って、座標情報（Ｘ、Ｙ）をフレームバッファ１４２のアドレスａｄｄｒに変換する。なお、ＯＦＦＳＥＴとは、画像情報の格納を開始する開始アドレスまでのオフセットの値を表す。
ａｄｄｒ＝ＯＦＦＳＥＴ＋（Ｘ）＋（Ｙ×Ｘ）・・（１）
ａｄｄｒ＝ＯＦＦＳＥＴ＋（８×Ｙ×（Ｘ／８）＋（Ｘ％８））＋（８×Ｙ）・・（２）
【００２８】
仮想表示部１４０は、保存部１４１と、フレームバッファ１４２と、更新テーブル１４３とを備えている。
【００２９】
保存部１４１は、アドレス算出部１３３が算出したアドレスに従い、レンダラ１３２が出力した画像情報を、フレームバッファ１４２の該当するアドレスに保存するものである。また、保存部１４１は、保存する画像情報に対応する画素の座標情報を更新テーブル１４３に保存する。座標情報はレンダラ１３２が出力した画像情報から取得する。
【００３０】
フレームバッファ１４２は、端末装置２００に表示する画面の１画面分の画像情報を記憶する記憶部である。フレームバッファ１４２には、アドレス算出部１３３が算出したアドレスに従って保存部１４１により画像情報が保存される。
【００３１】
ここで、フレームバッファ１４２のアドレス配置の詳細について説明する。まず、従来の計算機で一般に用いられているフレームバッファのアドレス配置について説明する。図３は、従来の計算機で用いられているフレームバッファのアドレス配置の一例を示す説明図である。
【００３２】
同図は、１０２４×７６８ピクセルの画面で１ピクセルあたりのデータ量を１メモリワードであるとした場合のアドレス配置例を示している。同図に示すように、従来のフレームバッファは、画面の左上を基点として水平方向に連続したアドレス配置となっている。
【００３３】
図４は、従来のフレームバッファのアドレスの順序を示した模式図である。同図に示すように、従来のフレームバッファでは、モニタなどの表示部へ出力することを考慮し、ラスタスキャン方向に線形にアドレスが配置されている。
【００３４】
次に、第１の実施の形態における画像転送装置１００で用いるフレームバッファ１４２のアドレス配置について説明する。図５は、第１の実施の形態における画像転送装置１００で用いるフレームバッファ１４２のアドレス配置の一例を示す説明図である。
【００３５】
同図に示すように、第１の実施の形態では、ＪＰＥＧの圧縮ブロックに合わせて、Ｘ座標方向の８ピクセルで折り返すようにアドレスを線形に配置する。また、各圧縮ブロックは、Ｙ座標方向に隣接するように配置する。
【００３６】
図６は、第１の実施の形態のフレームバッファ１４２のアドレスの順序を示した模式図である。同図に示すように、第１の実施の形態のフレームバッファ１４２では、Ｘ座標方向の８ピクセルごとに画面に含まれる画素が分割され、分割された領域内ではラスタスキャン方式従った順序で線形にアドレスが配置されている。
【００３７】
なお、上記説明では圧縮方式としてＪＰＥＧを例に説明したが、画像の圧縮方式はＪＰＥＧに限られるものではない。したがって圧縮ブロックの単位も８×８画素に限られるものではない。すなわち、利用する圧縮方式に対応する大きさのブロック単位で分割し、利用する圧縮方式が採用するアドレス順序でブロック内の画素に対応するフレームバッファ１４２のアドレスを配置するように構成することができる。例えば、Ｙ座標方向に連続したアドレスを付与し、所定の画素数に達した場合に隣接する列の画素についてさらにＹ座標方向に連続したアドレスを付与するような順序でアドレスを配置するように構成してもよい。
【００３８】
図２に戻り、更新テーブル１４３は、保存する画像情報に対応する画素の座標情報を記憶するものである。更新テーブル１４３は、後述する検出部１５１が、更新された画素を含むブロックを検出するときに参照される。
【００３９】
図７は、更新テーブル１４３のデータ構造の一例を示す説明図である。同図に示すように、更新テーブル１４３は、保存する画像情報を含む矩形の開始座標と終了座標とを対応づけて格納している。
【００４０】
なお、フレームバッファ１４２および更新テーブル１４３は、ＲＡＭ（Random Access Memory）、ＨＤＤ（Hard Disk Drive）、光ディスク、メモリカードなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００４１】
バックエンド仮想表示部１５０は、検出部１５１と、圧縮部１５２と、転送部１５３とを備えている。
【００４２】
検出部１５１は、更新テーブル１４３に記憶された座標情報を用いて、更新された画像情報、すなわち、保存部１４１によりフレームバッファ１４２に保存された画像情報を含む圧縮ブロックを検出するものである。具体的には、検出部１５１は、更新テーブル１４３に記憶された開始座標と終了座標とに含まれる各座標について、アドレス算出部１３３と同様の方法によりアドレス変換したアドレスを算出し、算出したアドレスを含む圧縮ブロックを検出する。
【００４３】
このとき、検出部１５１は、Ｙ座標方向の任意のアドレスから開始する圧縮ブロックを検出する。すなわち、図６に示すように、Ｘ座標方向には圧縮ブロックは８の倍数を単位として区切らなければ圧縮ブロック内のアドレスが連続しないのに対し、Ｙ座標方向ではいずれのアドレスから区切っても圧縮ブロック内のアドレスが連続する。これにより、圧縮した画像情報生成のための画面情報の取り出し方法に柔軟性を持たせることができる。
【００４４】
圧縮部１５２は、検出部１５１により更新されたブロックとして検出された圧縮ブロック（更新ブロック）に対してＪＰＥＧ方式による画像圧縮処理を行うものである。なお、圧縮部１５２による圧縮方法は、ＪＰＥＧ方式に限られるものではない。
【００４５】
転送部１５３は、圧縮部１５２が圧縮した画像情報（圧縮画像情報）を端末装置２００に転送するものである。
【００４６】
次に、このように構成された第１の実施の形態にかかる画像転送装置１００による画像転送処理について説明する。図８は、第１の実施の形態における画像転送処理の全体の流れを示すフローチャートである。
【００４７】
まず、アプリケーション１２０が、実行した処理に関連する画面情報の更新などが発生した場合に、表示画面の描画を要求する描画命令を出力する（ステップＳ８０１）。次に、レンダラ１３２が、描画命令に応じて画像処理を行い、その結果である画像情報を生成する（ステップＳ８０２）。画像情報には、更新する領域に対応する開始座標と終了座標の情報が含まれる。
【００４８】
次に、アドレス算出部１３３が、圧縮ブロックを考慮したアドレッシングのフレームバッファ１４２に合わせて、更新する画素の座標情報をアドレス変換してアドレスを算出する（ステップＳ８０３）。
【００４９】
例えば、ディスプレイモードが１０２４×７６８ピクセルの場合、従来は以下の（３）式であったのに対し、第１の実施の形態では、アドレス算出部１３３は以下の（４）式によりアドレスを算出する。
ａｄｄｒ＝ＯＦＦＳＥＴ＋（Ｘ）＋（Ｙ＜＜１０）・・（３）
ａｄｄｒ＝ＯＦＦＳＥＴ＋（（Ｘ＆０ｘ３）＜＜１１）×３＋（Ｘ＆０ｘ３）＋（ｙ＜＜３）・・（４）
【００５０】
また、例えば、ディスプレイモードが１２８０×１０２４ピクセルの場合、従来は以下の（５）式であったのに対し、第１の実施の形態では、アドレス算出部１３３は以下の（６）式によりアドレスを算出する。
ａｄｄｒ＝ＯＦＦＳＥＴ＋（Ｘ）＋（Ｙ＜＜８）×５・・（５）
ａｄｄｒ＝ＯＦＦＳＥＴ＋（（Ｘ＆０ｘ３）＜＜１３）＋（Ｘ＆０ｘ３）＋（ｙ＜＜３）・・（６）
【００５１】
なお、ディスプレイモードや、アドレス算出部１３３の演算能力により、実際の算出式の最適化の方式は異なる。
【００５２】
次に、保存部１４１は、算出されたアドレスに従い画像情報をフレームバッファ１４２に書き込む（ステップＳ８０４）。また、保存部１４１は、更新する領域に対応する座標情報（開始座標、終了座標）を更新テーブル１４３に保存する（ステップＳ８０５）。
【００５３】
次に、検出部１５１が、更新テーブル１４３に保存された座標情報に対応する圧縮ブロックを検出する（ステップＳ８０６）。次に、圧縮部１５２が、検出部１５１により検出された圧縮ブロックを圧縮する（ステップＳ８０７）。第１の実施の形態では、圧縮部１５２は、ＪＰＥＧ方式により圧縮ブロックに対応する画像情報の圧縮を行う。
【００５４】
次に、転送部１５３が、圧縮した画像情報をパケット化し、端末装置２００に転送し（ステップＳ８０８）、画像転送処理を終了する。
【００５５】
なお、従来の方法では、フレームバッファが圧縮処理に対応したブロックごとに線形にアドレッシングされていないため、圧縮対象となる領域を検出した後、圧縮部内でフレームバッファから当該領域に対応する画像情報を作業用メモリにコピーして圧縮対象となる画像情報を切出す処理が、ステップＳ８０７の前に必要となる。
【００５６】
これに対し、第１の実施の形態では、フレームバッファ１４２が圧縮処理に対応したブロックに分割可能にアドレッシングされているため、このような圧縮ブロックの切出し処理が不要となる。
【００５７】
このように、第１の実施の形態にかかる画像転送装置では、表示する画面に含まれる各画素を圧縮処理の単位に合わせたブロックに分割し、分割したブロック内で線形にアドレッシングされるように各画素の座標をフレームバッファのアドレスに変換することができる。また、分割したブロック単位で圧縮処理を実行することにより、特に圧縮を専用ハードウェアで実現している場合に、圧縮ブロックの切り出しに伴う無駄なデータコピーを削減できる。これにより、画面の更新部分の切り出しと画像の圧縮を効率化し、転送の負荷を軽減することができる。
【００５８】
（第２の実施の形態）
第２の実施の形態にかかる画像転送装置は、ブロックごとの更新された画素の有無を表す更新情報を含む更新テーブルを用いて更新されたブロックの検出を容易化するものである。
【００５９】
図９は、第２の実施の形態にかかる画像転送装置９００の構成を示すブロック図である。同図に示すように、画像転送装置９００は、ホストＯＳ１１０と、アプリケーション１２０と、ゲストＯＳ１３０と、仮想表示部９４０と、バックエンド仮想表示部９５０とを備えている。
【００６０】
第２の実施の形態では、仮想表示部９４０およびバックエンド仮想表示部９５０の機能が第１の実施の形態と異なっている。その他の構成および機能は、第１の実施の形態にかかる画像転送装置１００の構成を表すブロック図である図２と同様であるので、同一符号を付し、ここでの説明は省略する。
【００６１】
仮想表示部９４０は、保存部９４１と、フレームバッファ１４２と、更新テーブル９４３とを備えている。フレームバッファ１４２の構成は、第１の実施の形態と同様であるので、同一符号を付し、ここでの説明は省略する。
【００６２】
更新テーブル９４３は、圧縮ブロックごとに、圧縮ブロック内の画素が更新されたか否かを表す更新情報を記憶するものである。図１０は、更新テーブル９４３のデータ構造の一例を示す説明図である。
【００６３】
同図に示すように、更新テーブル９４３は、圧縮ブロックごとに、更新された画素が存在する場合に１、更新された画素が存在しない場合に０となるようなビットマップ形式で更新情報を保存している。
【００６４】
保存部９４１は、レンダラ１３２が出力した画像情報をフレームバッファ１４２の該当するアドレスに保存するとともに、保存する画像情報に対応する画素を含む圧縮ブロックについて、当該圧縮ブロックの更新情報を１に設定するものである。
【００６５】
バックエンド仮想表示部９５０は、検出部９５１と、圧縮部１５２と、転送部１５３とを備えている。圧縮部１５２および転送部１５３の構成および機能は、第１の実施の形態にかかる画像転送装置１００の構成を表すブロック図である図２と同様であるので、同一符号を付し、ここでの説明は省略する。
【００６６】
検出部９５１は、更新テーブル９４３に保存された更新情報を参照して、更新された画素を含む圧縮ブロックを検出するものである。具体的には、検出部９５１は、更新情報が１である圧縮ブロックを、更新された画素を含む圧縮ブロックとして検出する。
【００６７】
次に、このように構成された第２の実施の形態にかかる画像転送装置９００による画像転送処理について説明する。図１１は、第２の実施の形態における画像転送処理の全体の流れを示すフローチャートである。
【００６８】
ステップＳ１１０１からステップＳ１１０４までの、画像情報生成処理、画像情報保存処理は、第１の実施の形態にかかる画像転送装置１００におけるステップＳ８０１からステップＳ８０４までと同様の処理なので、その説明を省略する。
【００６９】
画像情報をフレームバッファ１４２に保存した後、保存部９４１は、保存した画像情報に対応する各画素について、更新した画素を含む圧縮ブロックの更新情報を１に設定し、更新テーブル９４３に保存する（ステップＳ１１０５）。
【００７０】
次に、検出部９５１は、更新情報が１である圧縮ブロックを、更新テーブル９４３から検出する（ステップＳ１１０６）。
【００７１】
ステップＳ１１０７からステップＳ１１０８までの、画像圧縮処理、圧縮画像転送処理は、第１の実施の形態にかかる画像転送装置１００におけるステップＳ８０７からステップＳ８０８までと同様の処理なので、その説明を省略する。
【００７２】
このように、第２の実施の形態にかかる画像転送装置では、フレームバッファへの画像情報書込みとともに、更新された画素を含むブロックの情報を含む更新テーブルを作成し、作成した更新テーブルを用いて更新されたブロックの検出を行うことができる。これにより、座標情報から圧縮ブロックを求める代わりに、ビットマップの確認という軽量な処理で更新部分の検出が実行可能になる。
【００７３】
また、第１の実施の形態では、更新部分を含む領域に該当するすべての圧縮ブロックを圧縮していたが、第２の実施の形態では、当該領域内であっても更新された画素が含まれない圧縮ブロックであれば、更新情報が０のままであり、当該圧縮ブロックは圧縮の対象にならない。すなわち、更新されていないブロックを圧縮する無駄を排除することができる。
【００７４】
図１２は、第１または第２の実施の形態にかかる画像転送装置のハードウェア構成を示す説明図である。
【００７５】
第１または第２の実施の形態にかかる画像転送装置は、ＣＰＵ（Central Processing Unit）５１などの制御装置と、ＲＯＭ（Read Only Memory）５２やＲＡＭ５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、ＨＤＤ（Hard Disk Drive）、ＣＤ（Compact Disc）ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス６１を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００７６】
第１または第２の実施の形態にかかる画像転送装置で実行される画像転送プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact Disk Recordable）、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００７７】
また、第１または第２の実施の形態にかかる画像転送装置で実行される画像転送プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第１または第２の実施の形態にかかる画像転送装置で実行される画像転送プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００７８】
また、第１または第２の実施の形態の画像転送プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００７９】
第１または第２の実施の形態にかかる画像転送装置で実行される画像転送プログラムは、上述した各部（アドレス算出部、保存部、検出部、圧縮部、転送部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ５１（プロセッサ）が上記記憶媒体から画像転送プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【００８０】
以上のように、本発明にかかる画像転送装置、方法およびプログラムは、端末装置に表示する画面の画像情報を生成して端末装置に転送する仮想計算機サーバに適している。
【図面の簡単な説明】
【００８１】
【図１】第１の実施の形態にかかる画像転送装置を含むネットワーク構成の概要を示すブロック図である。
【図２】第１の実施の形態にかかる画像転送装置の構成を示すブロック図である。
【図３】従来の計算機で用いられているフレームバッファのアドレス配置の一例を示す説明図である。
【図４】従来のフレームバッファのアドレスの順序を示した模式図である。
【図５】第１の実施の形態における画像転送装置で用いるフレームバッファのアドレス配置の一例を示す説明図である。
【図６】第１の実施の形態のフレームバッファのアドレスの順序を示した模式図である。
【図７】更新テーブルのデータ構造の一例を示す説明図である。
【図８】第１の実施の形態における画像転送処理の全体の流れを示すフローチャートである。
【図９】第２の実施の形態にかかる画像転送装置の構成を示すブロック図である。
【図１０】更新テーブルのデータ構造の一例を示す説明図である。
【図１１】第２の実施の形態における画像転送処理の全体の流れを示すフローチャートである。
【図１２】第１または第２の実施の形態にかかる画像転送装置のハードウェア構成を示す説明図である。
【符号の説明】
【００８２】
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  通信Ｉ／Ｆ
６１  バス
１００  画像転送装置
１１０  ホストＯＳ
１２０  アプリケーション
１３０  ゲストＯＳ
１３１  グラフィックライブラリ
１３２  レンダラ
１３３  アドレス算出部
１４０  仮想表示部
１４１  保存部
１４２  フレームバッファ
１４３  更新テーブル
１５０  バックエンド仮想表示部
１５１  検出部
１５２  圧縮部
１５３  転送部
２００  端末装置
３００  ネットワーク
９００  画像転送装置
９４０  仮想表示部
９４１  保存部
９４３  更新テーブル
９５０  バックエンド仮想表示部
９５１  検出部
【図１】
2008085502.tif 000003
【図２】
2008085502.tif 000004
【図３】
2008085502.tif 000005
【図４】
2008085502.tif 000006
【図５】
2008085502.tif 000007
【図６】
2008085502.tif 000008
【図７】
2008085502.tif 000009
【図８】
2008085502.tif 000010
【図９】
2008085502.tif 000011
【図１０】
2008085502.tif 000012
【図１１】
2008085502.tif 000013
【図１２】
2008085502.tif 000014