(57)【要約】【課題】低処理負荷でありながら、符号化効率を高くすることができるロングタームリファレンスフレームを指定して保存できるシンクライアントシステムを、提供する。【解決手段】GUI操作画面エミュレーション装置16は、シンクライアント端末2からの操作情報に基づいた画面を表示させるための画面データを生成する。H.264符号化ソフト／装置17は、画面データの各フレームを受け取る毎に、DPB20のショートタームリファレンス領域に格納し、メッセージキューにアクティブ化イベントが登録された時には、その時点で最新に登録されたフレームを、ロングタームリファレンス領域に複製する。さらに、H.264符号化ソフト／装置17は、受け取ったフレームを、DPB20に登録されている各フレームを参照して、符号化する。【選択図】図２
2010010959.tif 000002
【特許請求の範囲】
【請求項１】
端末からの操作情報に応じた処理の結果を表す画面を表示させるための画面データをサーバにて生成して、当該画面データを当該端末が復号化可能な符号化ストリームへ符号化し、当該サーバから当該端末へ送信するシンクライアントシステムにおける画像符号化方法であって、
前記サーバは、
前記画面データの各フレームを、生成順に、保持するショートタームリファレンスフレームの数が所定数を越えると古いものから廃棄する第１バッファに、前記ショートタームリファレンスフレームとして格納し、
オペレーティングシステムのＧＵＩ管理プログラムのメッセージキューに登録されているメッセージに基づいて、前記画面中でアクティブなウィンドウが切り替えられたことを表すアクティブ化イベントを検出し、
前記アクティブ化イベントを検出した時点で前記第１バッファに格納されている最新のショートタームリファレンスフレームを、当該時点でアクティブなウィンドウに対応付けて、前記第１バッファにおける前記ショートタームリファレンスフレームの保持期間よりも長期間ロングタームリファレンスフレームを保持可能な第２バッファに、前記ロングタームリファレンスフレームとして格納し、
生成された各画面データの各フレームを、前記第１バッファに格納されている各ショートタームリファレンスフレーム及び前記第２バッファに格納されている各ロングタームリファレンスフレームのうち最も近似したものを参照することによって、符号化する
ことを特徴とするシンクライアントシステムにおける画像符号化方法。
【請求項２】
前記サーバは、前記画面データの各フレームを、前記第１バッファに格納されている各ショートタームリファレンスフレーム及び前記第２バッファに格納されている各ロングタームリファレンスフレームのうち最も近似したものを参照して、H.264動画像符号化によ
り、符号化する
ことを特徴とする請求項１記載のシンクライアントシステムにおける画像符号化方法。
【請求項３】
前記サーバは、前記アクティブ化イベントが、前記画面中でアクティブであったウィンドウが閉じられて別のウィンドウがアクティブに切り替えられたことを表す場合に、閉じられたウィンドウに対応付けられたロングタームリファレンスフレームを前記第２バッファから削除する
ことを特徴とする請求項１記載のシンクライアントシステムにおける画像符号化方法。
【請求項４】
前記サーバは、前記アクティブ化イベントを検出した時点で、前記第１バッファに格納されている最新のショートタームリファレンスフレームと同じウィンドウに対応付けられたロングタームリファレンスフレームが前記第２バッファに格納されている場合には、当該ロングタームリファレンスフレームを当該第２バッファから削除する
ことを特徴とする請求項１記載のシンクライアントシステムにおける画像符号化方法。
【請求項５】
前記サーバは、前記アクティブ化イベントを検出した時点で、前記第１バッファに格納されている最新のショートタームリファレンスフレーム中のアクティブなウィンドウの面積が所定値以下であった場合には、当該ショートタームリファレンスフレームを、前記第２バッファに、前記ロングタームリファレンスフレームとして格納しない
ことを特徴とする請求項１記載のシンクライアントシステムにおける画像符号化方法。
【請求項６】
前記サーバは、前記アクティブ化イベントを検出した時点で、前記第１バッファに格納されている最新のショートタームリファレンスフレーム中のアクティブなウィンドウの更新頻度が所定値以上であった場合には、当該ショートタームリファレンスフレームを、前
記第２バッファに、前記ロングタームリファレンスフレームとして格納しない
ことを特徴とする請求項１記載のシンクライアントシステムにおける画像符号化方法。
【請求項７】
前記サーバは、前記アクティブ化イベントを検出した時点で、前記第１バッファに格納されている最新のショートタームリファレンスフレーム中のアクティブなウィンドウのアスペクト比が所定値以上であった場合には、当該ショートタームリファレンスフレームを、前記第２バッファに、前記ロングタームリファレンスフレームとして格納しない
ことを特徴とする請求項１記載のシンクライアントシステムにおける画像符号化方法。
【請求項８】
前記サーバは、前記アクティブ化イベントを検出した時点で、前記第２バッファに格納されているロングタームリファレンスフレームの数が所定数に達していた場合には、当該第２バッファに格納されているロングタームリファレンスフレームのうち、対応付けられたウィンドウの面積が最も小さいものを、当該第２バッファから削除する
ことを特徴とする請求項１記載のシンクライアントシステムにおける画像符号化方法。
【請求項９】
前記サーバは、前記アクティブ化イベントを検出した時点で、前記第２バッファに格納されているロングタームリファレンスフレームの数が所定数に達していた場合には、当該第２バッファに格納されているロングタームリファレンスフレームのうち、最も古いものを、当該第２バッファから削除する
ことを特徴とする請求項１記載のシンクライアントシステムにおける画像符号化方法。
【請求項１０】
シンクライアント端末からの操作情報に応じた処理の結果を表す画面を表示させるための画面データをサーバにて生成して、当該画面データを当該端末が復号化可能な符号化ストリームへ符号化し、当該端末へ送信するコンピュータを、
前記画面データの各フレームを、生成順に、保持するショートタームリファレンスフレームの数が所定数を越えると古いものから廃棄する第１バッファに、前記ショートタームリファレンスフレームとして格納するショートタームリファレンスフレーム登録手段，
オペレーティングシステムのＧＵＩ管理プログラムのメッセージキューに登録されているメッセージに基づいて、前記画面中でアクティブなウィンドウが切り替えられたことを表すアクティブ化イベントを検出するアクティブ化イベント検出手段，
前記アクティブ化イベントを検出した時点で前記第１バッファに格納されている最新のショートタームリファレンスフレームを、当該時点でアクティブなウィンドウに対応付けて、前記第１バッファにおける前記ショートタームリファレンスフレームの保持期間よりも長期間ロングタームリファレンスフレームを保持可能な第２バッファに、前記ロングタームリファレンスフレームとして格納するロングタームリファレンス登録手段，及び、
生成された各画面データの各フレームを、前記第１バッファに格納されている各ショートタームリファレンスフレーム及び前記第２バッファに格納されている各ロングタームリファレンスフレームのうち最も近似したものを参照することによって、符号化する符号化手段
として機能させる画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンクライアントシステムにおいてサーバにより生成されたクライアント用のGUI(Graphical User Interface)画面データを符号化する画像符号化方法，及び、コン
ピュータにかかる画像符号化方法を実行させる画像符号化プログラムに、関する。
【背景技術】
【０００２】
近年、業務アプリケーションの大規模化・高度化に因る端末資源の負荷及び陳腐化を回避すべく、また、ユーザデータのサーバによる集中管理によって情報漏洩等のネットワークセキュリティの向上を測るべく、シンクライアントシステムの開発が盛に行われている。
【０００３】
かかるシンクライアントシステムにおいては、通常、アプリケーションプログラム及びユーザデータはサーバのディスク装置に格納されている。そして、サーバのＣＰＵが、端末から受信した操作情報（キー入力やマウス操作の情報）に基づいて、当該アプリケーションプログラムを実行することにより、ユーザデータに対する処理を行い、その処理結果を表すGUI画面を表示させるためのGUI画面データを、端末へ応答する。そのため、端末は、コマンド等を入力するためにユーザによって操作された入力装置によって入力された操作情報をサーバへ送信する機能，及び、サーバから応答されたGUI画面データに基づいて
ディスプレイ上に画面を表示する機能を有していれば足りるのである。
【０００４】
かかるシンクライアントシステムにおいて、ユーザに違和感を感じさせることなく効率的に業務を行わしめるためには、サーバにおけるアプリケーションプログラムによる処理実行から端末における処理結果の画面表示までのレスポンスを、可及的に向上させる必要がある。もっとも、通信資源の容量には自ずから制限があるので、サーバにおいて生成された表示画面データを圧縮して端末へ送信すれば良い。
【０００５】
そこで、従来、多くのシンクライアントシステムでは、動画像符号化方式であるH.264
動画像符号化を用いてGUI画面を圧縮して端末へ送信する方法が、採用されている。ここ
に、H.264動画像符号化とは、既存の動画圧縮方法であるＭＰＥＧ−４等と同様に、フレ
ーム間予測，空間変換，量子化，エントロピー符号化等を採用するものであるが、それらを既存のものから改良することにより、圧縮効率を向上させたものである。
【０００６】
かかる改良の一つがフレーム間予測における複数参照フレームの導入である。即ち、既存の動画圧縮方式においては、フレーム間予測において参照フレームとして指定できるフレームは直前のフレームに固定されていたために、例えばシーンチェンジがあった場合には、圧縮効率を高くすることができなかったが、H.264動画像符号化では、H.264動画像符号化では、Joint Video Team (JVT) of ISO / IEC MPEG & ITU-T VCEG (SIO / IEC JTC1 / SC29 / w11 and ITU-T SG16 Q.6に規定されているように、複数の参照フレームを保持
することができ、しかも、保持数が所定枚数を超えると古いものから順に破棄されるショートタームリファレンス（short term reference）フレームに加えて、永続的に保持可能なロングタームリファレンス（long term reference）フレームをも保持し、且つ、参照
することができるように改良されているので、シーンチェンジ後の画面に近似したフレームをこれら複数フレームの中から捜して、これを参照することにより、高効率に圧縮することが可能となるのである。
【０００７】
図１１は、かかるH.264動画像符号化を用いたシンクライアントシステムの概念図であ
る。図１１において、シンクライアントプログラムを実行している端末（以下、「シンクライアント端末」という）１００は、入力装置から入力された操作情報（キー入力情報，マウス操作情報）を、シンクライアントサービス対応のサーバプログラムを実行しているサーバ装置（以下、単に「サーバ」という）１０１へ送信し、このサーバ１０１は、受信した操作情報に基づいてアプリケーションプログラムを実行し、上記サーバプログラムに含まれるGUI操作画面エミュレーションソフト（ないし、ハードウェアであるGUI操作画面エミュレーション装置）１０２により、その処理結果を表すGUI画面を表示するためのGUI画面データを生成し、同じく上記サーバプログラムに含まれるH.264符号化ソフト（ない
し、ハードウェアエンコーダであるH264.符号化装置）１０３により、H.264動画像符号化する。
【０００８】
このとき、図１２に示すように、H.264符号化ソフト／装置１０３は、GUI操作画面エミュレーション装置１０２から受け取ったGUI画面データの各フレームを、順次、ショート
タームリファレンスフレームとして、一時記憶メモリからなるＤＰＢ（Decorded Picture
Buffer）１０４のショートレファレンスフレーム領域に格納する。斯様にしてＤＰＢ１
０４に格納されたショートタームリファレンスフレームの数が、予め定められた数を超えると、格納された時期が古いものから、順に破棄される。また、H.264符号化ソフト／装
置１０３は、ＤＰＢ１０４に格納されたショートタームリファレンスフレームのうち任意のものを、ロングタームリファレンスフレームとして、ＤＰＢ１０４のロングタームリファレンス領域に複写する。斯様にしてＤＰＢ１０４に格納されたロングタームリファレンスフレームは、意図的に破棄が指示されない限り、永続的にＤＰＢ１０４内に保持され続ける。
【０００９】
同時に、H.264符号化ソフト／装置１０３は、ＤＰＢ１０４内に格納している各リファ
レンスフレームへのポインタをリスト構造にて一覧したリファレンスリスト１０５を一時記憶メモリ上に構築するか、かかるリファレンスリスト１０５が既に存在していれば、ＤＰＢ１０４に新たに格納されたフレームのポインタを登録する。
【００１０】
なお、H.264符号化ソフト／H264.符号化装置１０３は、何れのショートタームリファレンスフレームをロングタームリファレンスフレームとしてＤＢＰ１０４内に複製したかについての情報、及び、リファレンスリスト１０５の内容を、シンクライアント端末１００の後述するH.264復号化ソフト／装置１０６へ通知する。
【００１１】
以上の準備をした上で、H.264符号化ソフト／装置１０３は、リファレンスリスト１０
５及びＤＰＢ１０４内のリファレンスフレームを参照して、当該フレームを符号化する。
【００１２】
このようにしてGUI画面の各フレームを順次符号化することによって得られた符号化ス
トリームは、ＬＡＮ等のネットワークを通じてシンクライアント端末１００へ応答される。
【００１３】
シンクライアント端末１００では、シンクライアントプログラムを構成するH.264復号
化ソフト／装置１０６は、後述するようにして復号化したフレームをショートタームリファレンスフレームとして、上記ＤＰＢ１０４と同一構成のＤＰＢ１０７におけるショートタームリファレンスフレーム領域に格納するとともに、H.264符号化ソフト／装置１０３
から指定されたショートタームリファレンスフレームを、当該ＤＰＢ１０７におけるロングタームリファレンスフレーム領域に複製し、更に、H.264符号化ソフト／装置１０３か
ら通知された内容通りのリファレンスリスト１０８を、一時記憶メモリ上に生成する。このようにしてサーバ１０１のものと同じ内容を再現されたＤＰＢ１０７及びリファレンスリスト１０８を参照しつつ、H.264復号化ソフト／装置１０６は、H.264符号化ソフト／装置１０３から受信した符号化ストリームに基づいてGUI画面データの各フレームを順次復
号化し、このGUI画面データに基づいてGUI画面の動画像を、ディスプレイ１０９上に表示する。
【特許文献１】特開平6-149527号公報
【特許文献２】特許第3428192号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
ところで、従来、H.264動画像符号化を用いる場合にどのシーンをロングタームリファ
レンスフレームとして指定して登録するかについては、規格上定めがないので、画像処理に基づいて判定せざるを得なかった。
【００１５】
しかしながら、かかる画像処理は、往々にして複雑で処理負荷が大きかった。しかも、どのシーンが再び現れるかを予測することは非常に困難であるので、ロングタームリファレンスフレームを用いることによって現実に符号化効率が向上するかどうかは、不確実であった。
【００１６】
そこで、本発明の課題は、低処理負荷でありながら、符号化効率を高くすることができるロングタームリファレンスフレームを指定して保存できるシンクライアントシステムにおける画像符号化方法を、提供することである。
【課題を解決するための手段】
【００１７】
上記課題を達成するため、サーバは、先ず、端末からの操作情報に応じた処理の結果を表す画面を表示させるための画面データのフレームを順次生成し、生成順に、ショートタームリファレンスフレームとして、第１バッファに格納する。この第１バッファにおいて、ショートタームリファレンスフレームの数が所定数を越えると、古いものから廃棄される。一方、サーバは、オペレーティングシステムのＧＵＩ管理プログラムのメッセージキューに登録されているメッセージに基づいて、画面中でアクティブなウィンドウが切り替えられたことを表すアクティブ化イベントを検出する。このようにしてアクティブ化イベントを検出すると、サーバは、その時点で第１バッファに格納されている最新のショートタームリファレンスフレームを、その時点でアクティブなウィンドウに対応付けて、第２バッファに、ロングタームリファレンスフレームとして格納する。この第２バッファにおいて、ロングタームリファレンスフレームは、第１バッファにおける前記ショートタームリファレンスフレームの保持期間よりも長期間保持され得る。一方、サーバは、生成された各フレームを、第１バッファに格納されている各ショートタームリファレンスフレーム及び第２バッファに格納されている各ロングタームリファレンスフレームのうち最も近似したものを参照することによって、端末が復号化可能な符号化ストリームへ符号化し、当該端末へ送信する。
【００１８】
以上の構成によると、サーバは、画像データの各フレームに対して複雑な画像処理を施すことなく、ＧＵＩ管理プログラムのメッセージキューに登録されているメッセージに基づいて、ロングタームリファレンスの登録をすべきタイミングを容易に決定することができ、その結果、あるウィンドウから別のウィンドウにアクティブウィンドウが切り替えられた後に、当初のウィンドウが再度アクティブに戻された場合であっても、当該ウィンドウが当初アクティブであった期間の最後のフレームがロングタームリファレンスフレームとして第２バッファに保存されており、当該ロングタームリファレンスフレームは符号化対象フレームに近似している可能性が高いので、当該ロングタームリファレンスフレームを参照すれば、高効率に符号化することができる。
【００１９】
上述した符号化のアルゴリズムは、H.264動画符号化であっても良いし、MＰＥＧ−４であっても良い。要は、フレーム間の差分を符号化するアルゴリズムであれば良い。また、
第２バッファの容量は、無限である必要はなく、第１バッファの容量よりも小さくすることが可能である。もっとも、第２バッファの容量を小さくした場合には、アクティブウィンドウの切替を繰り返すにつれて、第２バッファが満杯になってしまう可能性もある。そのような場合には、既に第２バッファに格納されているロングタームリファレンスフレームを削除するか、新たに格納しようとするロングタームリファレンスフレームが将来参照される可能性が低いならば、その格納を中止してしまうという対策が、考えられる。前者の対策としては、例えば、古いロングタームリファレンスフレームを削除すること，対応付けられたアクティブウィンドウの面積が最も小さいロングタームリファレンスフレームを削除すること，若しくは、新たに格納しようとするロングタームリファレンスフレーム中のアクティブウィンドウと同じウィンドウに対応付けられた既存のロングタームリファレンスフレームを削除することが、考えられる。後者の対策としては、例えば、新たに格納しようとするロングタームリファレンスフレーム中のアクティブウィンドウの面積が所定閾値よりも小さい場合，アクティブウィンドウのアスペクト比が所定閾値よりも大きい場合，若しくは、アクティブウィンドウの更新頻度が所定閾値よりも大きい場合に、第２バッファへの格納を中止することが考えられる。
【００２０】
なお、符号化のアルゴリズムとしてH.264動画符号化を用いた場合、リファレンスリス
トを作成する必要がある。この場合、リストの先頭側に参照対象フレームのポインタが登録されていれば、そのリスト順を指定する情報を高効率に符号化できる。そこで、例えば、アクティブ化イベントによってアクティブに切り替えられるウィンドウに対応付けて第２バッファに格納されているロングタームリファレンスフレームのポインタを先頭に近い位置に登録したり、対応付けられているアクティブウィンドウの面積が大きいものほどそのポインタを先頭に近い位置に登録したり、最近までアクティブであったウィンドウに対応付けられたものほどそのポインタを先頭に近い位置に登録することが考えられる。
【発明の効果】
【００２１】
以上のように構成された本発明によると、低処理負荷でありながら、符号化効率を高くすることができるロングタームリファレンスフレームを指定して、保存することが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、図面に基づいて、本案によるシンクライアントシステムにおける画像符号化方法の実施の形態を、説明する。
＜システム構成＞
図１は、画像符号化方法が実施されるシンクライアントシステムの概略システム構成図である。図１に示すように、シンクライアントシステムは、ＬＡＮ等のネットワークＮを介して相互に接続されたサーバ装置１と複数台（図１では１台のみ図示）のシンクライアント端末２とから、構成されている。
【００２３】
サーバ装置１は、バスＢを介して相互に接続されたＣＰＵ１０，メモリ１１，通信インタフェース１２，及び、ハードディスク１３を、主要構成としている。
【００２４】
ハードディスク１３は、各種プログラム及びユーザデータ２２等の各種データを、格納するためのディスク装置である。ＣＰＵ１０は、ハードディスク１３に格納されている各種プログラムを実行する中央処理装置である。メモリ１１は、ＣＰＵ１０が上記処理を実行するに際して作業領域が展開される主記憶装置である。通信インタフェース１２は、ネットワークＮを終端して当該ネットワークＮを通じた通信を司る装置である。
【００２５】
他方、シンクライアント端末２は、バスＢを介して相互に接続されたＣＰＵ３０，メモリ３１，通信インタフェース３２，記憶装置３３，入力装置３５及びディスプレイ３６を
、主要構成としている。
【００２６】
記憶装置３３は、最小限のオペレーティングシステム及びシンクライアントプログラム２５を格納するに足りるディスク装置であり、ハードディスクでも良いが、ＲＯＭ等のメモリであっても良い。ＣＰＵ３０は、記憶装置３３に格納されている各種プログラムを実行する中央処理装置である。メモリ３１は、ＣＰＵ３０が上記処理を実行するに際して作業領域が展開される主記憶装置である。通信インタフェース３２は、ネットワークＮを終端して当該ネットワークＮを通じた通信を司る装置である。入力装置３５は、キーボード及びマウス等のポインティングデバイスであり、操作者によって操作されると、その操作の内容を示す操作情報（キー入力，マウス操作）を、ＣＰＵ３０に入力する。かくして入力された操作情報は、ＣＰＵ３０がシンクライアントプログラム３５を実行することにより、サーバ１へ送信される。ディスプレイ３６は、後述するH.264復号化ソフト／装置３
９によって復号化された一連のフレームからなる画面データに基づいて、サーバ１における処理結果を示す画面の動画を表示する。
【００２７】
以下、サーバ１におけるシンクライアントシステムに関連する機能をブロック図化して表示する図２，及び、図２における各ブロック間でのデータの授受を示す流れ図である図３を参照しつつ、サーバ１のハードディスク１３に格納されたプログラム（若しくは、その一部に代替されるハードウェア）及びシンクライアント端末２の記憶装置２３に格納されたシンクライアントプログラム（若しくは、その一部に代替されるハードウェア）の説明を行う。
【００２８】
上述したサーバのハードディスク１３に格納されている各種プログラムには、サーバプログラム１４及び多種類のアプリケーションプログラム１５が、含まれている。このサーバプログラム１４は、当該サーバ装置１を構成するコンピュータをサーバとして機能させるとともに、当該サーバにシンクライアントサービスを提供させるためのオペレーティングシステムプログラム（例えば、Cintrix社のCintrix Presentation Server［商標］，サン・マイクロシステムズ社のJava Station［商標］，マイクロソフト社のWindows Server
Terminal Service［商標］，等）である。従って、このサーバプログラム１４には、GUI操作画面エミュレーションソフト及びH.264符号化ソフトが含まれている。
【００２９】
GUI操作画面エミュレーションソフトは、ＣＰＵ１０に対して、シンクライアント端末
２から受信した操作情報（キー入力及びマウス操作に関する情報）に基づいて実行されたサーバプログラム１４中のGUI関連モジュール又はアプリケーションプログラム１５によ
る処理結果を表すGUI画面のフレームを、所定周期毎に生成させ、その画面データをH.264符号化ソフトに引き渡させる。
【００３０】
また、シンクライアント端末２から受信した操作情報（キー入力及びマウス操作に関する情報）がアクティブウィンドウを切り替える操作を示すものであった場合には、サーバプログラム１４中のGUI管理プログラムのメッセージキューにアクティブ化イベントのメ
ッセージ（どのウィンドウＩＤを有するウィンドウがアクティブになるかの情報を含む）が登録されるので、GUI操作画面エミュレーションソフトは、ＣＰＵ１０に対して、当該
メッセージキューに登録されているアクティブ化イベントを検出させ（アクティブ化イベント検出手段に相当）、アクティブ化イベント発生時点でアクティブであったウィンドウの識別番号（ウィンドウＩＤ），そのウィンドウの面積，そのウィンドウの更新回数を示す更新カウントといった情報，即ちウィンドウ情報を、H.264符号化ソフトに引き渡させ
る。
【００３１】
なお、GUI操作画面エミュレーションソフトの機能は、ハードウェアとして構成するこ
とも可能である。そこで、図２及び図３においては、かかるGUI操作画面エミュレーショ
ンソフト又はハードウェアによって実現される機能を、「GUI操作画面エミュレーション
装置１６」と記述する。
【００３２】
また、H.264符号化ソフトは、ＣＰＵ１０に対して、GUI操作画面エミュレーションソフトから受け取った画面データを構成する各フレームを、上述したH.264の規格に従った処
理によって符号化させ、かかる符号化によって得られた符号化ストリームを、シンクライアント端末２へ応答させる。
【００３３】
即ち、H.264符号化ソフトは、ＣＰＵ１０に対して、予めメモリ１１上に上述したＤＰ
Ｂ２０及びリファレンスリスト２１を構築させ、各フレームを受け取る毎に、そのフレームをＤＰＢにおけるショートタームリファレンス領域（即ち、保持するショートタームリファレンスフレームの数が所定数を超えると古いものから廃棄する第１バッファに相当）に格納させるとともに（即ち、ショートタームリファレンスフレーム登録手段に相当）、そのポインタをリファレンスリスト２１に登録させ、更に、後述するロングタームリファレンス制御器１８からの指示に応じて、アクティブ化イベント発生時点におけるフレームをロングタームリファレンス領域（即ち、第１バッファにおけるショートタームリファレンスフレームの保持期間よりも長期間ロングタームリファレンスフレームを保持可能な第２バッファに相当）へ複製させて（即ち、ロングタームリファレンス登録手段に相当）、複製後のポインタをリファレンスリストに登録させた後に、受け取ったフレームを複数のマクロブロックに分割し、分割した各マクロブロック毎に、リファレンスリスト２１によって定義されたリスト番号が若いものから順にＤＰＢ２０内のリファレンスフレームをサーチさせ、そのマクロブロックに最も近似したリファレンスフレームを指定し、指定したリファレンスフレームを参照して、当該マクロブロックを符号化させる（符号化手段に相当）。
【００３４】
これとともに、H.264符号化ソフトは、ＣＰＵ１０に対して、何れのフレームをロング
タームリファレンスフレームとしてＤＢＰ１０４内に格納したかについての情報、及び、リファレンスリスト１０５の内容を，更には、符号化によって得られた符号化ストリーム（各フレームの各マクロブロックを、どのリファレンスフレームを参照して符号化したかの情報を含む）を、シンクライアント端末１００へ応答させる。
【００３５】
なお、H.264符号化ソフトの機能は、ハードウェアとして構成することも可能である。
そこで、図２においては、かかるH.264符号化ソフト又はハードウェアによって実現され
る機能を、「H.264符号化ソフト／装置１７」と記述する。H.264符号化ソフトの機能がハードウェアとして構成される場合には、上述したＤＰＢ２０は専用のバッファとして構成され、リファレンスリスト２１は、当該ハードウェアを構成する書換可能メモリ上に構築される。
【００３６】
更に、H.264符号化ソフト／装置１７には、H.264に規格されていない特別な要素として、ロングタームリファレンス制御部１９が組み込まれている。このロングタームリファレンス制御部１９も、ＣＰＵ１０に実行されるプログラムとして構成して、ハードウェアとして構成しても良い。
【００３７】
このロングタームリファレンス制御部１９は、GUI操作画面エミュレーション装置１６
から受け取ったウィンドウ情報を参照し、図４に示すような構造のロングタームリファレンス管理情報を生成して、当該ロングタームリファレンス制御部１９がプログラムとして構成された場合にはメモリ１１に、ハードウェアとして構成された場合には当該ハードウェア中のメモリに、保存する。このロングタームリファレンス管理情報中のウィンドウＩＤ，面積，更新カウントは、ウィンドウ情報から引き継いだ情報であり、フレーム番号は、アクティブ化イベント発生時点のフレーム（即ち、アクティブウィンドウが切り替わる
直前のフレーム）の識別番号である。なお、図示は省略したが、このロングタームリファレンス管理情報には、GUI管理プログラムから得られるウィンドウに関する情報（例えば
、アスペクト比）が記載されている。従って、このロングタームリファレンス管理情報により、そのウィンドウＩＤによって特定されるアクティブなウィンドウが、そのフレーム番号が示すロングタームリファレンスフレームに、対応付けられる。
【００３８】
そして、ロングタームリファレンス制御部１９は、アクティブ化イベント発生時には、一時記憶しているロングタームリファレンス管理情報の数を所定の最大枚数以内に抑えつつ、一時記憶しているロングタームリファレンス管理情報に基づいて、ＤＰＢ２０のロングタームリファレンス領域への対象フレームの複製，及び、リファレンスリスト２１へ登録すべきことを、H.264符号化ソフト／装置１７へ指示する。なお、GUI操作画面エミュレーションソフトの代わりに、ロングタームリファレンス制御部１９自身が、GUI管理プロ
グラムのメッセージキューからアクティブ化イベントを取得し、ウィンドウ情報を取得しても良い。
【００３９】
以下、ロングタームリファレンス制御部１９を含むH.264符号化ソフト／装置１７が実
行する処理の具体的内容を、図５乃至図７のフローチャート（GUI画面データのフレーム
受信時に実行される処理）及び図８のフローチャート（ウィンドウ情報受信時に実行される処理）に基づいて説明する。
【００４０】
先ず、図５のフローチャートに示す処理（以下、「GUI画面復号化処理」という）は、GUI操作画面エミュレーション装置１６からのGUI画面データの個々のフレームを受信する
毎に、スタートする。そして、スタート後最初のＳ００１では、H.264符号化ソフト／装
置１７は、受信したGUI画面データのフレームを、ショートタームリファレンスフレーム
として、ＤＰＢ２０におけるショートタームリファレンス領域に格納する（ショートタームリファレンスフレーム登録手段に相当）。
【００４１】
次のＳ００２では、H.264符号化ソフト／装置１７は、リファレンスリスト２１の作成
処理を実行する。具体的には、図６に示すリファレンスリスト作成処理サブルーチンに従った処理を実行する。
【００４２】
このサブルーチンに入って最初のＳ１０１では、H.264符号化ソフト／装置１７は、図
９に示すように、前回のGUI画面符号化処理におけるＳ００１にて格納したショートター
ムリファレンスフレーム，即ち、処理対象フレームの直前のフレームのポインタを、リファレンスリストの先頭に登録する。
【００４３】
次のＳ１０２では、アクティブ化イベントが発生しているかをチェックする。このチェックは、前回のGUI画面符号化処理の開始後今回のGUI画面符号化処理の開始までの間に、上述したロングタームリファレンス管理情報が新たに格納されているか否かに基づいて行われる。そして、アクティブ化イベントが発生していなければ、H.264符号化ソフト／装
置１７は、処理をＳ１０４へ進める。
【００４４】
これに対して、アクティブ化イベントが発生していれば、H.264符号化ソフト／装置１
７は、Ｓ１０３において、図９に示すように、アクティブ化イベントによってアクティブになるウィンドウが過去にアクティブとなっていた期間の終期においてＤＰＢ２０に登録されたロングタームリファレンスフレームのポインタを、リファレンスリスト２１における２番目の位置に登録する。Ｓ１０３を完了すると、H.264符号化ソフト／装置１７は、
処理をＳ１０４へ進める。
【００４５】
Ｓ１０４では、H.264符号化ソフト／装置１７は、ＤＰＢ２０に登録されている残りの
ロングタームリファレンスフレームのポインタを、その登録（従って、アクティブとされた時）が最近のものから順に整列する。
【００４６】
次のＳ１０５では、H.264符号化ソフト／装置１７は、Ｓ１０４での整列がなされたロ
ングタームリファレンスフレームのポインタのリファレンスリスト２１における並び順を、それらのリファレンスフレーム中のアクティブなウィンドウの面積に基づいて、補正する。具体的には、図７に示すロングタームリファレンス並び補正サブルーチンを実行する。
【００４７】
このサブルーチンでは、H.264符号化ソフト／装置１７は、整列のなされた各ロングタ
ームリファレンスフレームのポインタ毎に、Ｓ２０１乃至Ｓ２０４のループ処理を実行する。
【００４８】
このループに入って最初のＳ２０１では、H.264符号化ソフト／装置１７は、整列され
たロングタームリファレンスフレームの順番を指定するための変数ｉ（初期値はi=1）が
参照値max（Ｓ１０３が実行されたのであれば、ロングタームリファレンスフレーム管理
情報の存在するロングタームリファレンスフレームの総数と同値，Ｓ１０３が実行されていないのであれば、ロングタームリファレンスフレームの総数よりも一つ大きい値）未満であるかどうかをチェックする。そして、“１”以上max未満であれば、H.264符号化ソフト／装置１７は、次のＳ２０２において、ｉ番目のポインタが示すロングタームリファンレンスフレーム中のアクティブなウィンドウの面積（即ち、当該ロングタームリファンレンスフレームについてのロングタームリファレンス管理情報中の面積）に所定の定数αを乗じた値が、ｉ−１番目のポインタが示すロングタームリファンレンスフレーム中のアクティブなウィンドウの面積未満であるか否かを、チェックする。そして、前者が後者以上であれば、H.264符号化ソフト／装置１７は、処理をそのままＳ２０４へ進める。なお、
リスト番号i=1の場合には、比較対象が存在していないので、常に、処理をＳ２０４へ進
める。
【００４９】
これに対して、前者が後者未満であれば、H.264符号化ソフト／装置１７は、Ｓ２０３
において、ｉ番目のポインタとｉ−１番目のポインタとの順序を、リファレンスリスト２１において入れ替える。Ｓ２０３を完了すると、H.264符号化ソフト／装置１７は、処理
をＳ２０４へ進める。
【００５０】
Ｓ２０４では、H.264符号化ソフト／装置１７は、ｉを一つインクリメントして、処理
をＳ２０１に戻す。
【００５１】
以上の処理ループを全てのリスト番号に対して実行した結果、処理対象リスト番号がmaxと合致すると、H.264符号化ソフト／装置１７は、このロングタームリファレンス並び補正サブルーチンを終了して、処理を図６のルーチンに戻す。そして、H.264符号化ソフト
／装置１７は、処理をＳ１０５からＳ１０６へ進める。
【００５２】
Ｓ１０６では、H.264符号化ソフト／装置１７は、図９に示すように、Ｓ１０４にて整
列をされＳ１０５にて並び順を補正された各ロングタームリファレンスフレームのポインタを、その並び順通りに、リファレンスリスト２１の末尾に、登録する。Ｓ１０６を完了すると、H.264符号化ソフト／装置１７は、このリファレンスリスト作成処理サブルーチ
ンを終了して、処理を図５のメインルーチンに戻す。そして、H.264符号化ソフト／装置
１７は、処理をＳ００２からＳ００３へ進める。
【００５３】
Ｓ００３では、H.264符号化ソフト／装置１７は、Ｓ００２にて作成したリファレンス
リストを、H.264に指定の方法により符号化する。
【００５４】
続いてH.264符号化ソフト／装置１７は、今回GUI操作画面エミュレーション装置１６から受信したフレーム（以下、「処理対象フレーム」という）を、複数のマクロブロックに分割し、各マクロブロック毎に符号化をすべく、Ｓ００４乃至Ｓ０１１のループ処理（ブロック処理ループ）を実行する。
【００５５】
このブロック処理ループに入って最初のＳ００４では、H.264符号化ソフト／装置１７
は、未処理の分割マクロブロックを一つ特定して、処理対象ブロックとする。続いて、H.264符号化ソフト／装置１７は、Ｓ００４にて特定した処理対象ブロックに対して、Ｓ０
０５乃至Ｓ００７のループ処理（リファレンスリストループ）を実行する。
【００５６】
このリファレンスリストループに入って最初のＳ００５では、H.264符号化ソフト／装
置１７は、変数ref（初期値は“０”）が定数Ｎ未満であるかどうかを、チェックする。
なお、参照対象リファレンスフレームのポインタに対応したリスト番号を示す。即ち、ref=０は、リファレンスリスト２１の先頭に登録されているショートタームリファレンスフレーム（即ち、直前のフレーム）のリスト番号を示し、ref=１は、リファレンスリスト２１の２番目の位置に登録されているロングタームリファレンスフレーム（即ち、処理時の直前にアクティブ化イベントが発生していた場合には、そのアクティブ化イベントによってアクティブに切り替えられるウィンドウが過去にアクティブであった期間における最後のフレーム）のリスト番号を示し、以下、refの値は、ref+1番目の位置に登録されているロングタームリファレンスフレームのリスト番号を示す。また、定数Ｎは、ロングタームリファレンスフレームの総数と同値である。
【００５７】
H.264符号化ソフト／装置１７は、Ｓ００５でのチェックの結果として、変数refがＮ未満であったならば、Ｓ００６において、変数refの値と同じリスト番号が付与されたポイ
ンタをリファレンスリスト２１から読み出し、このポインタが示すＤＰＢ２０中のフレームメモリから、リファレンスフレームを読み出す。そして、処理対象ブロックに含まれる各画素とリファレンスフレーム中の同位置の画素との差分絶対値の累積値SAD(ref)を求める。
【００５８】
次のＳ００７では、H.264符号化ソフト／装置１７は、変数refを一つインクリメントして、処理をＳ００５へ戻す。
【００５９】
以上のリファレンスリストループを、全てのリファレンスフレームについて繰り返した結果、変数refがＮに達すると、H.264符号化ソフト／装置１７は、リファレンスリストループから抜けて、処理をＳ００８へ進める。
【００６０】
Ｓ００８では、H.264符号化ソフト／装置１７は、Ｓ００６にて算出したSAD(ref)が最
も小さくなったrefの値を、minRefとして特定する。
【００６１】
次のＳ００９では、H.264符号化ソフト／装置１７は、minRefの値と同じリスト番号が
付与されたポインタをリファレンスリスト２１から読み出し、このポインタが示すＤＰＢ２０中のフレームメモリから、リファレンスフレーム（即ち、最も近似したフレーム）を読み出す。そして、H.264符号化ソフト／装置１７は、読み出したリファレンスフレーム
を参照して、H.264に従って、処理対象ブロックとの画面間予測を行う。
【００６２】
次のＳ０１０では、H.264符号化ソフト／装置１７は、Ｓ００９での画面間予測の結果
に基づいて、H.264に従って、処理対象ブロックの可変長符号化処理を実行して、処理対
象ブロック分の符号化ストリームを得る（符号化手段に相当）。さらに、H.264符号化ソ
フト／装置１７は、Ｓ００８にて特定したminRefを可変長符号化によって符号化する。こ
の時、minRefが０に近い程符合長が短くなるが、上述したＳ００２での処理において、参照される可能性の大きい重要なリファレンスフレームのポインタをリファレンスリスト２１の前方に配置してあるので、符号化が有利となっている。そして、H.264符号化ソフト
／装置１７は、符号化したminRefを、参照対象リファレンスフレームを特定する情報として、上記符号化ストリームに追加する。
【００６３】
次のＳ０１１では、H.264符号化ソフト／装置１７は、処理をS００４へ戻す。
【００６４】
以上のブロック処理ループを、処理対象フレームの全マクロブロックに対して実行し終わると、H.264符号化ソフト／装置１７は、ブロック処理ループを抜けて、処理をＳ０１
２へ進める。
【００６５】
Ｓ０１２では、H.264符号化ソフト／装置１７は、Ｓ００３にて符号化したリファレン
スリスト及びＳ０１０にて生成した符号化ストリームを、シンクライアント端末２のH.264符号化ソフト／装置３９へ送信する。
【００６６】
以上により、GUI操作画面エミュレーション装置１６から受信したGUI画面データの一フレームに対するGUI画面復号化処理が完了する。
【００６７】
次に、図８のフローチャートに示す処理（以下、「アクティブ化イベント処理」という）は、GUI操作画面エミュレーション装置１６からウィンドウ情報を受信することにより
、スタートする。そして、スタート後最初のＳ３０１では、H.264符号化ソフト／装置１
７は、現在メモリ１１又はそのハードウェア中のメモリに格納されているロングタームリファレンス管理情報の数（登録枚数）を一つインクリメントした値が、所定の最大枚数以上であるか否かをチェックする。そして、前者が後者未満であれば、Ｓ３０２へ処理を進め、前者が後者以上であれば、処理をＳ３０４へ進める。
【００６８】
Ｓ３０２では、H.264符号化ソフト／装置１７は、現在アクティブなウィンドウ（即ち
、アクティブ化イベント発生時点でアクティブであったウィンドウ）のウィンドウＩＤを、新たに受信したウィンドウ情報から取得する。
【００６９】
次のＳ３０３では、H.264符号化ソフト／装置１７は、Ｓ３０２にて取得したウィンド
ウＩＤが登録済みであるかどうかをチェックする。即ち、同じウィンドウＩＤを含むロングタームリファレンス管理情報が、既にメモリ１１又はハードウェア中のメモリに格納されているかどうかをチェックする。そして、H.264符号化ソフト／装置１７は、かかるロ
ングタームリファレンス管理情報が格納（登録）済みであれば、処理をＳ３０６へ進め、未格納（登録）であれば、処理をＳ３０７へ進める。
【００７０】
一方、Ｓ３０４では、H.264符号化ソフト／装置１７は、既にメモリ１１又はハードウ
ェア中のメモリに格納されているロングタームリファレンス管理情報から、「面積（アクティブなウィンドウの面積）」が最も小さなものを、検索する。
【００７１】
次のＳ３０５では、H.264符号化ソフト／装置１７は、既にメモリ１１又はハードウェ
ア中のメモリに格納されているロングタームリファレンス管理情報から、作成時期が最も古いもの，即ち、アクティブだった時期が最も古いアクティブウィンドウを含むロングタームリファレンスフレームについてのロングタームリファレンス管理情報を、検索する。Ｓ３０５の完了後、H.264符号化ソフト／装置１７は、処理をＳ３０６へ進める。
【００７２】
Ｓ３０６では、H.264符号化ソフト／装置１７は、Ｓ３０４にて検出された「面積（ア
クティブなウィンドウの面積）」が最も小さいロングタームリファレンス管理情報及びＳ
３０５にて検出された最も古いロングタームリファレンス管理情報，又はＳ３０３にて登録済みであると判断されたウィンドウＩＤを含むロングタームリファレンス管理情報を、メモリ１１又はハードウェア中のメモリから消去するとともに、消去したロングタームリファレンス管理情報に対応したロングタームリファレンスフレームを、ＤＰＢ２０のロングタームリファレンスフレーム領域から削除する。Ｓ３０６を完了すると、H.264符号化
ソフト／装置１７は、処理をＳ３０７へ進める。
【００７３】
Ｓ３０７では、H.264符号化ソフト／装置１７は、現在アクティブなウィンドウ（即ち
、アクティブ化イベント発生時点でアクティブであったウィンドウ）の面積を、新たに受信したウィンドウ情報から取得し、所定の閾値と比較する。そして、このウィンドウの面積が閾値以下であれば、H.264符号化ソフト／装置１７は、ロングタームリファレンスフ
レームの登録を何等行うことなく、直ちに、このアクティブ化イベント処理を終了する。これに対して、このウィンドウの面積が閾値を超えていれば、H.264符号化ソフト／装置
１７は、処理をS３０８へ進める。
【００７４】
Ｓ３０８では、H.264符号化ソフト／装置１７は、現在アクティブなウィンドウ（即ち
、アクティブ化イベント発生時点でアクティブであったウィンドウ）の更新カウントの値を、新たに受信したウィンドウ情報から取得し、所定の閾値と比較する。そして、このウィンドウの更新頻度の値が閾値以下であれば、H.264符号化ソフト／装置１７は、このウ
ィンドウが頻繁に更新されているとして、ロングタームリファレンスフレームの登録を何等行うことなく、直ちに、このアクティブ化イベント処理を終了する。これに対して、このウィンドウの更新頻度の値が閾値を超えていれば、H.264符号化ソフト／装置１７は、
このウィンドウが頻繁に更新されていないとして、処理をS３０９へ進める。
【００７５】
Ｓ３０９では、H.264符号化ソフト／装置１７は、現在アクティブなウィンドウ（即ち
、アクティブ化イベント発生時点でアクティブであったウィンドウ）のアスペクト比を、GUI管理プログラムから取得し、所定の閾値と比較する。そして、このウィンドウのアス
ペクト比が閾値以上であれば、H.264符号化ソフト／装置１７は、ロングタームリファレ
ンスフレームの登録を何等行うことなく、直ちに、このアクティブ化イベント処理を終了する。これに対して、このウィンドウのアスペクト比が閾値未満であれば、H.264符号化
ソフト／装置１７は、処理をS３１０へ進める。
【００７６】
Ｓ３１０では、H.264符号化ソフト／装置１７は、現在ＤＰＢ２０のショートタームリ
ファレンス領域に登録されている最新のショートタームリファレンスフレームを、ロングタームリファレンス領域に複製させるとともに（ロングタームリファレンスフレーム登録手段に相当）、新たに受信したウィンドウ情報の内容，当該リファレンスフレームのフレーム情報，管理プログラムから得られるウィンドウに関する情報に基づいてロングタームリファレンス管理情報を生成し、メモリ１１又はハードウェア中のメモリに格納する。Ｓ３１０を完了すると、H.264符号化ソフト／装置１７は、このアクティブ化イベント発生
時にロングタームリファレンスフレームを登録する処理が完了する。
【００７７】
シンクライアント端末２の記憶装置２３に記憶されているシンクライアントプログラム３４は、例えば、Cintrix社のPresentation Serverクライアント（商標），サン・マイクロシステムズ社のJava Virtuel Machine（商標），マイクロソフト社のRemote Desktop Protocol（商標），等であり、H.264復号化ソフトを含んでいる。このH.264復号化ソフト
は、ＣＰＵ３０に対して、H.264符号化ソフト（H264.符号化装置）１７から受信した符号化ストリームを復号化することによって一連のフレームからなるGUI画面の動画データを
生成し、この動画データに基づくGUI画面の動画をディスプレイ３６上に表示する。
【００７８】
即ち、H.264復号化ソフトは、ＣＰＵ３０に対して、記憶装置２３上に上述したＤＰＢ
３８及びリファレンスリスト３９を構築させるとともに、各フレームについての符号化ストリームをH.264符号化ソフト／装置１７から受信する毎に、これらＤＰＢ３８及びリフ
ァレンスリスト３９を参照して、対象フレームがどのリファレンスフレームを参照して符号化されたかを示す情報及び対象フレームの符号化ストリームに基づいて、対象フレームの画像データを復号化させてディスプレイ３６上に表示させるとともに、復号化されたフレームをＤＰＢ３８におけるショートタームリファレンス領域に格納させる。また、H.264復号化ソフトは、H.264符号化ソフト／装置１７から、何れのフレームをロングタームリファレンスフレームとしてＤＢＰ２０内に格納したかについての情報を受信すると、ＣＰＵ３０に対して、当該情報が示すフレームをショートタームリファレンス領域からロングタームリファレンス領域へ複製させる。さらに、H.264復号化ソフトは、H.264符号化ソフト／装置１７から、リファレンスリスト２１の内容を受信すると、ＣＰＵ３０に対して、その内容通りに、リファレンスリスト３７を更新する。このようにしてＤＰＢ３８に格納されたショートタームリファレンスフレーム又はロングタームリファレンスフレーム及び更新されたリファレンスリストは、次以降のフレームを復号化するために参照され得る。
【００７９】
なお、H.264復号化ソフトの機能は、ハードウェアとして構成することも可能である。
そこで、図２においては、かかるH.264復号化ソフト又はハードウェアによって実現され
る機能を、「H.264復号化ソフト／装置３９」と記述する。H.264復号化ソフトの機能がハードウェアとして構成される場合には、上述したＤＰＢ３８は専用のバッファとして構成され、リファレンスリスト３７は、当該ハードウェアを構成する書替可能メモリ上に構築される。
【００８０】
以下、上述したように構成された本実施形態によるシンクライアントシステムによってシンクライアント端末２のディスプレイ３８上へ画面表示するまでの流れを、図１０の例に応じて説明する。
【００８１】
いま、それまでにシンクライアント端末２の入力装置３５に対する操作に基づいて、サーバ１から送信されてきた符号化ストリームにより、図１０のＡに示すGUI画面が、ディ
スプレイ３６上に表示されていたとする。このGUI画面においては、ウィンドウＷ１がア
クティブとなっており、非アクティブなウィンドウＷ２に一部重なっているとする。この状態下で、GUI操作画面エミュレーション装置１６は、サーバプログラム１４及びウィン
ドウＷ１に対応したアプリケーションプログラムの実行結果及び操作情報が示す操作内容（カーソル等）を表す画面データのフレームを周期的に作成して、H.264符号化ソフト／
装置１７に渡すこととなる。このようにして、生成された画像データの各フレームを、H.264符号化ソフト／装置１７は、順次ＤＰＢ２０のショートタームリファレンス領域に格
納するとともに、リファレンスリスト２１を生成し、当該リファレンスリスト２１の先頭にポインタが登録されているショートタームリファレンスフレーム（即ち、一つ前に受信したショートタームリファレンスフレーム）を参照して符号化し、それによって得られた符号化ストリームをシンクライアント端末１へ送信する。シンクライアント端末１中のH.264復号化ソフト／装置３９は、受信した一連の符号化ストリームから一連の画面データ
のフレームを復元し、それに基づいて、図１０のＡに示すGUI画面を動画として表示する
。
【００８２】
このとき（T=1）、シンクライアント端末２の操作者が、入力装置３５に含まれるマウ
スを用いてクリックする等、ウィンドウＷ２をアクティブに切り替える操作を行ったとする。すると、その操作情報は、サーバ１へ送信され、サーバプログラム１４によって処理される。即ち、サーバプログラム１４は、GUI管理プログラムのメッセージキューに、ウ
ィンドウＷ２がアクティブとなるアクティブ化イベントを登録する。
【００８３】
GUI操作画面エミュレーション装置１６は、上記メッセージキューからアクティブ化イ
ベントを検出すると、その時点（T=1）で最後に生成した画面データのフレームについて
、そのフレーム中でアクティブとなっているウィンドウＷ１のウィンドウＩＤ，面積，更新カウントからなるウィンドウ情報を取得して、H.264符号化ソフト／装置１７へ通知す
る。H.264符号化ソフト／装置１７は、このウィンドウ情報を受信すると、その時点で最
後にＤＰＢ２０に登録していたショートタームリファレンスフレームを、ＤＰＢ２０のロングタームリファレンス領域に、ロングタームリファレンスフレームとして複製する。
【００８４】
その直後に上記所定周期のタイミングになると、GUI操作画面エミュレーション装置１
６は、アクティブに切り替わったウィンドウＷ２がウィンドウＷ１に重なったGUI操作画
面を示すフレームを作成して、H.264符号化ソフト／装置１７に渡す。すると、H.264符号化ソフト／装置１７は、受け取ったフレームを、ＤＰＢ２０のショートタームリファレンス領域に格納するとともに、リファレンスリスト２１を生成する。そして、当該リファレンスリスト２１に登録されている順に各ポインタが示すＤＰＢ２０中のリファレンスフレームを参照して、受け取った上記フレームを符号化する。以後、GUI操作画面エミュレー
ション装置１６は、サーバプログラム１４及びウィンドウＷ２に対応したアプリケーションプログラムの実行結果及び操作情報が示す操作内容（カーソル等）を表す画面データのフレームを周期的に作成し、H.264符号化ソフト／装置１７は、作成したフレームを順次
ＤＰＢ２０のショートタームリファレンス領域に順次格納するとともに、リファレンスリスト２１を作成しつつ、当該リファレンスリスト２１を参照して各フレームを符号化する。かかる符号化によって得られた符号化ストリームに基づいて、シンクライアント端末１中のH.264復号化ソフト／装置３９は、図１０のＢに示すGUI画面を動画として表示する。以上のようにＤＰＢ２０のショートタームリファレンスフレーム領域には、順次ショートタームリファレンスフレームが格納され、それとともに古いショートタームリファレンスフレームは上書きによって廃棄されていくので、短時間のうちにT=1のショートタームリ
ファレンスフレームはショートタームリファレンスフレーム領域から消滅することになる。但し、T=1のショートタームリファレンスフレームから複製されたロングタームリファ
レンスフレームは、Ｓ３０６にて消去されない限り、即ち、ショートタームリファレンスフレームの保持期間よりも長期間、保持されることになる。
【００８５】
その後、シンクライアント端末２の操作者が、入力装置３５に含まれるマウスを用いてクリックする等、ウィンドウＷ１をアクティブに切り替える操作を行ったとする。すると、GUI操作画面エミュレーション装置１６は、メッセージキューからアクティブ化イベン
トを検出して、上述したのと同様にして、ウィンドウ情報をH.264符号化ソフト／装置１
７へ通知し、H.264符号化ソフト／装置１７は、直前(T=n-1)にＤＰＢ２０に登録していたのショートタームリファレンスフレームを、ＤＰＢ２０のロングタームリファレンス領域に複製する。
【００８６】
その直後に上記所定周期のタイミング（T=n）になると、GUI操作画面エミュレーション装置１６は、アクティブに切り替わったウィンドウＷ１がウィンドウＷ２に重なったGUI
操作画面を示すフレームを作成し、H.264符号化ソフト／装置１７は、当該フレームをＤ
ＰＢ２０のショートタームリファレンス領域に格納するとともに、T=n-1のショートター
ムリファレンスフレームのポインタが先頭に登録され、アクティブ化イベントによってアクティブに切り替えられるウィンドウＷ１が過去にアクティブだった期間の終期（T=1）
においてＤＰＢ２０のロングタームリファレンスフレーム領域に複製されたロングタームリファレンスフレームのポインタが二番目の位置に登録されたリファレンスリスト２１を生成する。そして、当該リファレンスリスト２１に登録されている順に各ポインタが示すＤＰＢ２０中のリファレンスフレームを参照して、受け取った上記フレームを符号化する。このとき、リファレンスリスト２１の先頭にポインタが登録されているT=n-1のショー
トタームリファレンスフレームを参照しても、ウィンドウＷ１がウィンドウＷ２の上に重なっている部分のブロックを高効率に符号化することはできない。しかしながら、２番目
の位置にポインタが登録されているT=1のロングタームリファレンスフレームでは、ウィ
ンドウＷ１がウィンドウＷ２の上に重なっているので、その部分のブロックを参照することにより、T=nのフレームを高効率に符号化することが可能となる。
【００８７】
以上に説明したように、本実施形態のシンクライアントシステムによると、GUIプログ
ラムのメッセージキューに登録されたアクティブ化イベントのメッセージに基づいて、GUI画面中のアクティブなウィンドウの切替が検出され、その直前にＤＰＢ２０のショート
タームリファレンス領域に格納されたショートタームリファレンスフレームがロングタームリファレンスフレーム領域に複製されるので、ロングタームリファレンスフレームの登録のための複雑な画像処理が不要になる。
【００８８】
また、Ｓ３０３及びＳ３０６の処理により、あるウィンドウがアクティブであるフレームをロングタームリファレンスとして登録しようとする場合に、同じウィンドウがアクティブとなっているより古いフレームがロングタームリファレンス領域に格納されている場合には、最早参照する必要がなくなった後者が削除されるので、不要なロングタームリファレンスフレームがＤＰＢ２０に滞留してしまう弊害を防止することができる。
【００８９】
また、Ｓ３０７の処理により、あるフレームをロングタームリファレンスとして登録しようとしたところ、当該フレーム中のアクティブなウィンドウの面積が所定閾値以下であった場合には、その登録が省略されるので、マクロブロックの面積に比して狭い為に参照したとしても高効率な符号化の望めないウィンドウについてのフレームが、無駄にロングタームリファレンスフレームとして登録されてしまうことを防止することができる。
【００９０】
また、Ｓ３０８の処理により、あるフレームをロングタームリファレンスとして登録しようとしたところ、当該フレーム中のアクティブなウィンドウが頻繁に更新されていた場合には、その登録が省略されるので、既に内容が古い為に参照したとしても高効率な符号化の望めないウィンドウについてのフレームが、無駄にロングタームリファレンスフレームとして登録されてしまうことを防止することができる。
【００９１】
また、Ｓ３０９の処理により、あるフレームをロングタームリファレンスとして登録しようとしたところ、当該フレーム中のアクティブなウィンドウのアスペクト比が所定閾値以上っであった場合には、その登録が省略されるので、マクロブロックの面積に比して狭い為に参照したとしても高効率な符号化の望めないウィンドウについてのフレームが、無駄にロングタームリファレンスフレームとして登録されてしまうことを防止することができる。
【００９２】
また、Ｓ３０１，Ｓ３０４及びＳ３０６の処理により、ＤＰＢ２０に格納されているロングタームリファレンスフレームの数が最大枚数を超えている場合に、面積が小さい為に上述したように高効率な符号化を望めないアクティブウィンドウについてのロングタームリファレンスフレームがＤＰＢ２０から削除されるので、参照される可能性の高い新たなロングタームリファレンスフレームを格納することが可能となる。
【００９３】
また、Ｓ３０１，Ｓ３０５及びＳ３０６の処理により、ＤＰＢ２０に格納されているロングタームリファレンスフレームの数が最大枚数を超えている場合に、内容が古い為に高効率な符号化を望めない最も過去にアクティブとなったウィンドウについてのロングタームリファレンスフレームがＤＰＢ２０から削除されるので、参照される可能性の高い新たなロングタームリファレンスフレームを格納することが可能となる。
【００９４】
また、Ｓ１０３の処理により、アクティブ化イベントによりアクティブに切り替えられるウィンドウが過去にアクティブであった時点におけるロングタームリファレンスフレー
ムが、リファレンスリストの２番目の位置に登録されるので、参照対象となったロングタームリファレンスフレームを特定する情報を、高効率に符号化することができる。
【００９５】
また、Ｓ１０４の処理により、アクティブであった期間が最近のウィンドウについてのロングタームリファレンスフレームほど、リファレンスリストの先頭に近い位置に登録されるので、参照対象となったロングタームリファレンスフレームを特定する情報を、高効率に符号化することができる。
【００９６】
また、Ｓ１０５の処理により、面積が小さいアクティブウィンドウについてのロングタームリファレンスフレームほど、リファレンスリストの先頭に近い位置に登録されるので、参照対象となったロングタームリファレンスフレームを特定する情報を、高効率に符号化することができる。
【図面の簡単な説明】
【００９７】
【図１】シンクライアントシステムを構成するサーバ装置及びシンクライアント端末のハードウェア構成を示すブロック図
【図２】サーバ装置及びシンクライアント端末の内部で実現される機能の相関を示すブロック図
【図３】図２に示す各ブロック間での情報の流れを示す流れ図
【図４】ロングタームリファレンス管理情報を示す図
【図５】GUI画面データのフレーム受信時に実行される処理を示すフローチャート
【図６】図５のＳ００２で実行されるリファレンスリスト作成処理サブルーチンを示すフローチャート
【図７】図６のＳ１０５にて実行されるロングタームリファレンス並び補正サブルーチンを示すフローチャート
【図８】ウィンドウ情報受信時に実行される処理を示すフローチャート
【図９】リファレンスリストにおけるリスト構造を概念的に示す図
【図１０】アクティブ化イベントの発生と各リファレンスフレームの登録との相関を例示する図
【図１１】従来におけるシンクライアントシステムを示す図
【図１２】従来におけるＤＰＢ及びリファレンスリストを概念的に示す図
【符号の説明】
【００９８】
１    サーバ装置
２    シンクライアント端末
１０    ＣＰＵ
１３    ハードディスク
１４    サーバプログラム
１６    GUI操作画面エミュレーション装置
１７    H.264符号化ソフト／装置
２０    ＤＰＢ
２１    レファレンスリスト
３９    H.264復号化ソフト／装置
【図１】
2010010959.tif 000003
【図２】
2010010959.tif 000004
【図３】
2010010959.tif 000005
【図４】
2010010959.tif 000006
【図５】
2010010959.tif 000007
【図６】
2010010959.tif 000008
【図７】
2010010959.tif 000009
【図８】
2010010959.tif 000010
【図９】
2010010959.tif 000011
【図１０】
2010010959.tif 000012
【図１１】
2010010959.tif 000013
【図１２】
2010010959.tif 000014