(57)【要約】【課題】フレームレートを下げても操作性や利便性が損なわれないようなサーバ装置を提供することを目的とする。【解決手段】  サーバ装置において、シンクライアントから操作情報を受信し、受信した前記操作情報をアプリケーションに送信する操作情報処理部と、前記操作情報による前記アプリケーションの処理に基づき画面情報を生成する画面情報生成部と、生成された前記画面情報を受信して動画像として符号化を行う符号化処理部と、符合化された前記画面情報を前記シンクライアントに送信する送信部と、前記符号化処理部により符合化される前記画面情報のフレームレートを変更するフレームレート変更部と、を有することを特徴とするサーバ装置。【選択図】図２
2011192229.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置において、
シンクライアントから操作情報を受信し、受信した前記操作情報をアプリケーションに送信する操作情報処理部と、
前記操作情報による前記アプリケーションの処理に基づき画面情報を生成する画面情報生成部と、
生成された前記画面情報を受信して動画像として符号化を行う符号化処理部と、
符合化された前記画面情報を前記シンクライアントに送信する送信部と、
前記符号化処理部により符合化される前記画面情報のフレームレートを変更するフレームレート変更部と、
を有することを特徴とするサーバ装置。
【請求項２】
請求項１記載のサーバ装置において、
前記フレームレート変更部は、前記操作情報処理部が前記シンクライアントから前記操作情報を受信しない時間が、所定の時間を超えた場合に、前記符合化処理部で符合化される前記画面情報のフレームレートを下げる
ことを特徴とするサーバ装置。
【請求項３】
請求項１または２に記載のサーバ装置において、
前記フレームレート変更部は、前記操作情報処理部が前記シンクライアントから前記操作情報を受信した場合に、前記符合化処理部で符合化される前記画面情報のフレームレートを上げる
【請求項４】
請求項１〜３のいずれか１項に記載のサーバ装置において、
前記画面情報生成部が直前の画面情報と、現在の画面情報と、を比較し、画面情報の変化量が閾値未満の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを下げる
ことを特徴とするサーバ装置。
【請求項５】
請求項１〜４のいずれか１項に記載のサーバ装置において、
前記画面情報生成部が直前の画面情報と、現在の画面情報と、を比較し、画面情報の変化量が閾値以上の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを上げる
ことを特徴とするサーバ装置。
【請求項６】
請求項１〜５のいずれか１項に記載のサーバ装置において、
前記アプリケーションから前記画面情報生成部への描画要求が一定時間の間に閾値未満の場合に、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを下げる
ことを特徴とするサーバ装置。
【請求項７】
請求項１〜６のいずれか１項に記載のサーバ装置において、
前記アプリケーションから前記画面情報生成部への描画要求が一定時間の間に閾値以上の場合に、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを上げる
ことを特徴とするサーバ装置。
【請求項８】
請求項１〜７のいずれか１項に記載のサーバ装置において、
前記符号化処理部が前回画面情報生成部から受信した画面情報と、前記符号化処理部が今回画面情報生成部から受信した画面情報と、を比較し、画面情報の変化量が閾値未満の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを下げる
ことを特徴とするサーバ装置。
【請求項９】
請求項１〜８のいずれか１項に記載のサーバ装置において、
前記符号化処理部が前回画面情報生成部から受信した画面情報と、前記符号化処理部が今回画面情報生成部から受信した画面情報と、を比較し、画面情報の変化量が閾値以上の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを下げる
ことを特徴とするサーバ装置。
【請求項１０】
請求項１〜９のいずれか１項に記載のサーバ装置において、
ＤＣＴ係数の残差が閾値未満の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを下げる
ことを特徴とするサーバ装置。
【請求項１１】
請求項１〜１０のいずれか１項に記載のサーバ装置において、
ＤＣＴ係数の残差が閾値以上の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを上げることを特徴とするサーバ装置。
【請求項１２】
請求項１〜１１のいずれか１項に記載のサーバ装置において、
画面内のイントラマクロブロック数が画面内の総イントラマクロブロックに占める割合が閾値未満の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを下げることを特徴とするサーバ装置。
【請求項１３】
請求項１〜１２のいずれか１項に記載のサーバ装置において、
画面内のイントラマクロブロック数が画面内の総イントラマクロブロックに占める割合が閾値以上の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを上げる
ことを特徴とするサーバ装置。
【請求項１４】
サーバ装置における情報処理方法において、
シンクライアントから操作情報を受信し、
受信した前記操作情報をアプリケーションに送信し、
前記操作情報による前記アプリケーションの処理に基づき画面情報を生成し、
生成された前記画面情報を受信して動画像として符号化を行い、
符合化された前記画面情報を前記シンクライアントに送信するものであって、
符合化される前記画面情報のフレームレートを変更する、
ことを特徴とするサーバ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はサーバ装置および情報処理方法に関する。
【背景技術】
【０００２】
ネットワークを経由して遠隔地にある装置を操作するためのシンクライアント技術が実用化している。これは、遠隔地にサーバ装置を設置し、手元にあるシンクライアント装置とネットワークで接続し、シンクライアント装置に接続した入力装置からの操作情報をサーバ装置に送信し、これをサーバ装置で動作するアプリケーションへの入力とし、同時に、サーバ装置で動作するアプリケーションが出力した画面情報をシンクライアント装置に送信し、これをシンクライアント装置に接続した出力装置に出力することで実現される。
【０００３】
またこれとは別に特開２００７−２１４８０８号広報（特許文献１）がある。この公報には、ＴＶ会議システムにおいて、ホワイトボード共有等の電子会議機能利用状況を判別し、描画中は端末の負荷を軽減するように自動で映像の撮像処理、送受信処理及び映像の表示処理を変更することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２１４８０８
【発明の概要】
【発明が解決しようとする課題】
【０００５】
シンクライアント端末の操作性や利便性が損なわれないようなサーバ装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
そこで、サーバ装置が画面情報を動画像として符号化する場合に、シンクライアント装置からの入力情報、あるいは、実行しているアプリケーション状態の情報、あるいは、アプリケーションが生成した画面情報、あるいは、符号化処理の情報といった情報の一つ、あるいは、複数の組み合わせによって、符号化する動画像のフレームレートを制御する。
【発明の効果】
【０００７】
本サーバ装置は、符号化する動画像のフレームレートを制御しているため、操作性や利便性を確保したまま、符号化処理を低減できる。
【図面の簡単な説明】
【０００８】
【図１】サーバ装置の構成図の例である
【図２】実施例１におけるサーバ装置１００の各処理部の関連を示す図である
【図３】フレームレート変更部１３５が一定周期で行う処理フローを示す図である
【図４】フレームレート変更表の一例である
【図５】経過時間判断表の一例である
【図６】フレームレートが固定の場合の、各ユーザのアプリケーションプログラムと画面情報生成と符号化処理によって占有するサーバ装置のＣＰＵ時間の一例である
【図７】フレームレートが可変の場合の、一人のユーザのアプリケーションプログラムと画面情報生成と符号化処理によって占有するサーバ装置のＣＰＵ時間の一例である
【図８】フレームレートが可変の場合の、各ユーザのアプリケーションプログラムと画面情報生成と符号化処理によって占有するサーバ装置のＣＰＵ時間の一例である
【図９】フレームレートが可変の場合の、各ユーザのアプリケーションプログラムと画面情報生成と符号化処理によって占有するサーバ装置のＣＰＵ時間が処理能力を超えない事例である
【図１０】実施例２におけるサーバ装置１００の各処理部の関連を示す図の例である
【図１１】経過時間判断表の一例である
【図１２】実施例３におけるサーバ装置１００の各処理部の関連を示す図の例である
【図１３】実施例４におけるサーバ装置１００の各処理部の関連を示す図の例である
【図１４】複数ユーザが同一のサーバ装置に接続する場合のサーバ装置１００の構成図の例である
【図１５】シンクライアント装置の構成図の例である
【図１６】シンクライアント装置をテレビジョン装置で構成した場合の図の例である
【発明を実施するための形態】
【実施例１】
【０００９】
通常のシンクライアント端末では、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）により、ターミナルサーバ装置（以下サーバ装置と呼ぶこともある）で処理した静止画像を、シンクライアント端末に送信する。
一方、本実施例では、サーバ装置がシンクライアント装置に出力する画面情報の情報量を削減するために、サーバ装置が画面情報を静止画像ではなく動画像として符号化して出力し、シンクライアント装置が当該動画像を復号して、復号した画面情報を出力装置に出力することができる。
【００１０】
このような方法では、サーバ装置が画面情報を動画像として符号化する場合に、動画像符号化処理の計算量が大きいため、サーバ装置の処理負荷が大きくなってしまう場合がある。これによって、複数のシンクライアント装置がサーバ装置に接続すると、サーバ装置が単位時間あたりに処理可能な符号化処理の計算量を超えてしまい、例えば、シンクライアント装置の画面情報出力が遅れたり、サーバ装置で実行しているアプリケーションの処理が遅れたりする、という問題が発生する場合がある。
【００１１】
以下、図面を参照しながら実施例について説明する。図１はサーバ装置の構成図の例である。サーバ装置１００はプロセッサ１１０とメモリ１２０を有し、通信インターフェイス１４０を介してＬＡＮ、ＷＡＮなどのネットワーク１４１に接続する。
【００１２】
メモリ１２０に格納されたアプリケーションプログラム１３１、操作情報処理プログラム１３２、画面情報生成プログラム１３３、符号化処理プログラム１３４、フレームレート変更プログラム１３５など各種プログラム１３０をプロセッサ１１０が実行することで、アプリケーション、操作情報処理、画面情報生成、符号化処理の各処理を行う。
【００１３】
これらは、アプリケーション部１３１、操作情報処理部１３２、画面情報生成部１３３、符号化処理部１３４、フレームレート変更部１３５など、各処理を行う処理部として集積回路化するなどして、一部または全部をハードウェアで実現することもできる。
以下説明を簡略化するため、各種プログラム１３０をプロセッサ１１０が実行することで実現される各処理部を各処理の主体として説明する。なお各処理部をハードウェアで実現した場合にはその各処理部が主体となって各処理を行う。
【００１４】
図１５は、シンクライアント装置の構成図の例である。シンクライアント装置１４２はプロセッサ２１０とメモリ２２０を有し、通信インターフェイス２４０を介してＬＡＮ、ＷＡＮなどのネットワーク１４１に接続する。
メモリ２２０に格納されたアプリケーションプログラム２３１、操作情報処理プログラム２３２、画面情報処理プログラム２３３、復号処理プログラム２３４、など各種プログラム２３０をプロセッサ２１０が実行することで、アプリケーション、操作情報処理、画面情報生成、復号処理の各処理を行う。
【００１５】
これらは、アプリケーション部２３１、操作情報処理部２３２、画面情報処理部２３３、復号処理部２３４など、各処理を行う処理部として集積回路化するなどして、一部または全部をハードウェアで実現することもできる。
表示部２５０は、サーバ装置から送信された動画像を表示する表示部である。図１４ではシンクライアント装置が表示部２５０を備える構成となっているが、表示部２５０はシンクライアント装置の外にある外付けの表示部であってもよい。
入力部２６０は、ユーザからの入力を受け付ける。例えば、マウス操作や、キーボード入力、リモコン操作などの操作情報を受信する。
【００１６】
シンクライアントシステムの動作の概要を説明する。シンクライアント装置１４２の入力部２６０は、ユーザからの操作を受け付ける。ユーザによるマウス操作やキーボード入力により、マウスをクリックした座標情報や、キーボード入力情報を、操作情報処理部２３２が処理し、処理された操作情報を通信インターフェイス２４０を介してサーバ装置１００に送信する。
【００１７】
図２は図１のサーバ装置１００において、操作情報処理部１３２が主体となってフレームレート変更部１３５を制御する場合の、サーバ装置１００の各処理部の関連を示す図である。各処理部を接続する矢印は処理の流れを示している。
サーバ装置１００は、通信インターフェイス１４０を介して、シンクライアント装置１４２から操作情報を受信する。受信した操作情報は操作情報処理部１３２に送信され、操作情報処理部１３２は当該操作情報をサーバ装置への操作情報として、アプリケーション部１３１に入力する。
【００１８】
アプリケーション部１３１は操作情報処理部１３２からの操作情報の入力や時間的変化などによってアプリケーションの画面情報が変更すると、画面情報生成部１３３に描画情報を送信する。描画情報とは、例えば、画面に文字を書く、四角形を書く、といった情報のことである。画面情報生成部１３３は受信した描画情報を一定周期で画面情報を生成する。符号化処理部１３４は一定周期で画面情報生成部１３３から画面情報を取得して、当該画面情報を符号化して、通信インターフェイス１４０を介してシンクライアント装置１４２に送信する。
【００１９】
シンクライアント装置１４０は、符号化された画面情報を受信し、復号処理部２３４に入力する。復号処理部２３４は、画面情報を復号し、表示部２５０に表示する。
【００２０】
本実施例では、画面情報の処理を、サーバ装置１００の符号化処理部１３４、シンクライアント装置１４２の復号処理部２３４により行う。このように動画処理の方法を用いることで、シンクライアント装置１４２として、テレビジョン装置の復号処理部を使用することができる。
【００２１】
図１６はシンクライアント装置１４２をテレビジョン装置で構成した図の例である。
【００２２】
シンクライアント装置１４２は、チューナ１０１、デスクランブラ１０２、デマルチプレクサ１０３、デコーダ２３４、表示部／スピーカ２５０、入力部１０６、メモリ２２０、アプリケーション部２３１、操作情報処理部２３２、画面情報処理部２３３、記録部１１５、暗号／復号処理部１１２、通信処理部１０４、通信インターフェイス２４０、制御部２１０から構成される。
【００２３】
チューナ１０１は、放送局からアンテナ１０を介して受信した複数のチャンネルから所望のチャンネルを選局し、デジタル変調された番組を復調する。
【００２４】
デスクランブラ１０２は、サービス事業者と契約したチャンネルのみを受信可能とするためにかけられている番組のスクランブルを解除する。
【００２５】
デマルチプレクサ１０３は、放送番組から音声データ、映像データを抽出する。
【００２６】
デコーダ２３４は、放送番組や通信インターフェイス２４０から受信した圧縮符合化された音声データや映像データを復号して、元の音声信号、映像信号に伸長する。
【００２７】
表示部／スピーカ２５０は、デコーダ２３４からの出力信号を再生する。内蔵ではなく、外付けでも良い。
【００２８】
入力部１０６は、ユーザからのマウス操作、リモコン操作、タッチパネルからの入力、キーボード入力などの操作情報を入力する。
【００２９】
アプリケーション部２３１、操作情報処理部２３２、画面情報処理部２３３の処理は以前説明したものと同じである。
【００３０】
記録部１１５は、放送番組を記録する内蔵メモリである。その他に着脱可能なＨＤＤ（ハードディスクドライブ）や光ディスク、メモリカード、そしてこれらを組み合わせたハイブリッド形態などでもよい。
【００３１】
暗号／復号処理部１１２は、放送番組やネットワーク経由でデジタル入出力端子１１４を介して受信したコンテンツを、サーバ装置１００と共有した鍵を使用して暗号化あるいは復号する。
【００３２】
通信処理部１０４は、通信インターフェイス２４０を介してネットワークで接続した他のサーバ装置との間で動画像情報や制御コマンドを送受信する。コンテンツを送受信する場合には、送受信するコンテンツにその取り扱い方を示す「Ｃｏｐｙ  ｆｒｅｅ」「Ｃｏｐｙ  ｏｎｅ  ｇｅｎｅｒａｔｉｏｎ」「Ｎｏ  ｍｏｒｅ  ｃｏｐｉｅｓ」「Ｃｏｐｙ  ｎｅｖｅｒ」などの識別コードなどが付加される。
【００３３】
制御部２１０は、シンクライアント装置１４２における各部の動作を統括的に制御する。
【００３４】
フレームレートの変換について説明する。操作情報処理部１３２は操作情報をフレームレート変更部１３５に送信する。フレームレート変更部１３５は受信した操作情報を元にフレームレートを下げる、または、維持する、または、上げる判断する。フレームレートを上げる、または、下げる、と判断した場合、フレームレート変更部１３５は符号化処理部１３４に新しいフレームレートを通知する。
【００３５】
符号化処理部１３４はフレームレート変更部１３５からフレームレートを通知されると、画面情報生成部１３３から画面情報を取得して、当該画面情報を符号化する周期をフレームレート変更部１３５から通知されたフレームレートに変更する。
【００３６】
例えば、符号化形式がＭＰＥＧ２形式の場合、一つのフレームを一つのピクチャとして扱い、複数のピクチャをＧＯＰ（Ｇｒｏｕｐ  ｏｆ  Ｐｉｃｔｕｒｅ）という単位で扱うが、ＧＯＰ構成がＩＢＢＰＢＢＰＢＢＰＢＢＰＢＢの１５枚のピクチャであり、一つのＧＯＰが０．５秒である場合、フレームレートを１０ｆｐｓに変更した場合、ＧＯＰの構成をＩＰＰＰＰの５枚のピクチャで構成して符号化する。これによって、０．５秒を５枚のピクチャで表現することになるため、１０ｆｐｓを実現していることになる。しかしＩＢＢＰＢＢＰＢＢＰＢＢＰＢＢのようなＧＯＰ構成では、フレームレートを下げる場合、実現可能なフレームレートに制限がある。
【００３７】
そこで、ＧＯＰ構成を、例えばＩＰＰＰＰＰＰＰＰＰ・・・とＰが１５枚以上続くような構成にすれば、任意のＰを抜いてＧＯＰを構成できるため、任意のフレームレートを設定できる。フレームレートの変更方法は前記した方法以外でも良い。
【００３８】
次に、フレームレート変更部１３５が時間経過と共にフレームレートを段階的に下げる処理について説明する。図３にフレームレート変更部１３５が周期的に行う処理フローを示す。フレームレート変更部１３５は基準フレームレートを現在フレームレートとして保存する（Ｓ５０１）。本実施例では基準フレームレートを３０ｆｐｓとしている。
【００３９】
フレームレート変更部１３５はプロセッサ１１０が内蔵するタイマカウンタ値を読み取り、これを基準時刻として保存する（Ｓ５０２）。このタイマカウンタ値はプロセッサ１１０の代わりに、別のハードウェアで実現しても良い。また読み取ったタイマカウンタ値をプロセッサ固有の時間単位から秒単位に変換しても良い。本実施例ではタイマカウンタ値を求めるときに全て秒単位に変換して扱うものとする。
【００４０】
フレームレート変更部１３５は周期的にタイマカウンタ値を読み取り、前回保存した基準時刻との経過時間を求める（Ｓ５０３）。フレームレート変更部１３５は図４に示すフレームレート変更表６００を内蔵している。フレームレート変更表６００はプログラムに内蔵されていても良いし、フラッシュロムなど別のハードウェアに格納されていても良い。フレームレート変更部１３５はフレームレート変更表６００を元に、経過時間に該当するフレームレートを求め（Ｓ５０４）、新フレームレートとする。
【００４１】
求めた新フレームレートと現在フレームレートとを比較し（Ｓ５０５）、求めた新フレームレートが現在フレームレートと異なる場合、新フレームレートを新たにフレームレート変更部１３５が現在フレームレートとして保持し（Ｓ５０６）、当該フレームレートを符号化処理部１３４に通知する（Ｓ５０７）。例えば、経過時間が１００の場合、新フレームレートは１５ｆｐｓである。その後、またＳ５０３の処理に戻る。
【００４２】
次に、フレームレート変更部１３５が即座にフレームレートを上げる処理について説明する。フレームレート変更部１３５が操作情報処理部１３２から操作情報を受信すると、フレームレート変更部１３５はタイマカウンタ値を読み取り、基準時刻として保存する。その後、前記周期的処理により、新フレームレートを算出すると、経過時間は、基準時刻と、基準時刻を保存してから次の周期で読み取ったタイマカウンタ値との経過時間となるため、フレームレート変更表６００の０〜９９秒の列に該当することになる。したがって、新フレームレートは基準フレームレートになる。これによって、何らかの操作情報を受信したときに、即座に基準フレームレートに戻すことができる。
【００４３】
一方、別の方法として、次に示す方法を用いて、フレームレート変更部１３５が段階的にフレームレートを上げることもできる。フレームレート変更部１３５が操作情報処理部１３２から操作情報を受信すると、フレームレート変更部１３５が保持しているフレームレートを元に、図５に示す経過時間判断表６０１から新経過時間を求める。さらに、タイマカウンタ値を読み取り、タイマカウンタ値と新経過時間の和を基準時刻として保存する。経過時間判断表６０１の新経過時間とフレームレートの対応は、フレームレート変更部１３５が保持しているフレームレートを元に新経過時間を選択する際、フレームレート変更表６００から得られる当該新経過時間に対応するフレームレートがフレームレート変更部１３５で保持しているフレームレートより大きくなるような新経過時間となるように、経過時間判断表６０１の新経過時間を設定しておく。
【００４４】
その後、前記周期的処理により、新フレームレートを算出すると、経過時間は、基準時刻と、基準時刻を保存してから次の周期で読み取ったタイマカウンタ値との経過時間となるため、フレームレート変更表６００から得られるフレームレートは、フレームレート変更部１３５が保持しているフレームレートより大きくなる。
【００４５】
例えば、フレームレート変更部１３５が保存しているが１０ｆｐｓの場合、経過時間判断表６０１から得られる新経過時間は１００であるため、これとタイマカウンタ値との和を基準時刻として保存すると、前記周期的処理の処理によってフレームレート変更表６００から得られる新フレームレートは、１５ｆｐｓになる。
【００４６】
この方法によれば、何らかの操作情報を受信したときに、段階的にフレームレートを上げていくことができる。
【００４７】
本実施例によれば、シンクライアント装置が操作情報を送信していない時間が一定時間続くと、サーバ装置１００は段階的にフレームレートを下げることができる。また、シンクライアント装置が何らかの操作情報を送信すると、サーバ装置１００はフレームレートを即座に、あるいは段階的に基準フレームレートに戻すことができる。ユーザの操作情報をもとに、操作情報があればフレームレートを上げ、操作情報がない場合はフレームレートをさげるため、アプリケーションの操作性や利便性が損なわれることがない。
【００４８】
次に、一つのサーバ装置に複数ユーザがシンクライアント端末を用いて同時に接続した場合に、本実施例によって得られる効果について説明する。
複数ユーザがシンクライアント装置を用いて同一サーバ装置１００に同時に接続する場合の、サーバ装置１００の構成の例を図１４に示す。サーバ装置１００では同時にプログラム１３０をプロセッサ１１０が処理する。
【００４９】
複数ユーザがシンクライアント装置を用いて同一サーバ装置１００に同時に接続し、当該サーバ装置１００上でアプリケーションプログラムを動作する場合、当該サーバ装置１００のＣＰＵ占有時間は、各ユーザが実行しているアプリケーションプログラムと画面情報生成と符号化処理によって占有するＣＰＵ時間の合計になる。
【００５０】
従来のサーバ装置の場合は、例えば図６に示すように、各ユーザのアプリケーションプログラムと画面情報生成と符号化処理によって占有するＣＰＵ時間が３０％であって、接続するユーザがユーザＡとユーザＢとユーザＣの三者であった場合、ＣＰＵ占有率の合計は常に９０％になる。このとき、別のユーザＤが同一サーバ装置１００に接続し、アプリケーションプログラムを動作させようとすると、ＣＰＵ占有率が１００％に達してしまい、サーバ装置１００の処理能力を超えてしまう。これによって、例えば、アプリケーションプログラムの動作が遅くなるといった問題が発生しうる。
【００５１】
そこで、本実施例によるサーバ装置１００であれば、各ユーザが実行しているアプリケーションプログラムについて、フレームレートを下げることが可能であるため、画面情報生成及び符号化処理の低減が可能である。そのため、各ユーザのアプリケーションプログラムと画面情報生成と符号化処理のＣＰＵ占有率は時間経過によって変動するため、サーバ装置１００全体のＣＰＵ占有率はフレームレートが固定であった場合よりも低くなる。
【００５２】
例えば、図７では、本実施例によってフレームレートを下げることによって、符号化処理を低減し、ＣＰＵ占有率を下げていることを示している。同様のことはユーザＢとユーザＣにも言える。図８に示すように、ユーザＡとユーザＢとユーザＣのＣＰＵ占有率が時間経過によって変動しているため、それらの合計は図７に示すサーバ装置１００のＣＰＵ占有率よりも低い。したがって、ユーザＤが同一サーバ装置１００に接続して、アプリケーションプログラムを動作させていても、図９に示すように、ＣＰＵ占有率が１００％を超えることがない。
【００５３】
本実施例によるサーバ装置１００では、フレームレートを下げる要因がユーザからの操作情報に依存するが、同一サーバ装置１００に接続するユーザ数が多くなれば、各ユーザが操作情報を入力するタイミングが統計的に平滑化されるため、サーバ装置１００のＣＰＵ占有率を常に低い状態に保つことができる。
【００５４】
サーバ装置１００のＣＰＵ占有率を常に低い状態に保つことで、複数ユーザが同時に同一のサーバ装置１００に接続した場合であっても、アプリケーションプログラムの動作が遅くなりにくくなる。さらに、ＣＰＵ占有率が常に低い状態であるため、サーバ装置１００の消費電力を低減することが可能である。ＣＰＵ占有率が低くなるため、サーバ装置１００のプロセッサ１１０の性能を低くできるため、サーバ装置１００のハードウェアコストを低減できる。
【００５５】
また、本実施例によるサーバ装置１００であれば、各ユーザが実行しているアプリケーションプログラムについて、フレームレートを下げることが可能であるため、符号化処理部１３４が出力する符号量の削減が可能である。
【００５６】
そのため、各ユーザの画面情報の符号量は時間経過によって変動するため、サーバ装置１００が出力する符号量の合計は、フレームレートが固定であった場合よりも低くなる。ＣＰＵ占有率と同様に、本実施例によるサーバ装置１００では、フレームレートを下げる要因がユーザからの操作情報に依存するが、同一サーバ装置１００に接続するユーザ数が多くなれば、各ユーザが操作情報を入力するタイミングが統計的に平滑化され、サーバ装置１００が出力する符号量の合計を常に低い状態に保つことができる。
【００５７】
サーバ装置１００が出力する符号量の合計を常に低い状態に保つことで、ネットワーク上で送受信するデータ量を削減できるため、ネットワーク上での輻輳が発生しにくくなる。また、ネットワーク上で送受信するデータ量を削減できるため、データ量に応じて課金するネットワークシステムの場合、課金料を削減することが可能である。
【実施例２】
【００５８】
以下、図面を参照しながら実施例について説明する。なお、実施例１と同一の部分については説明を省略し、異なる部分について詳細に説明する。
図１０は図１のサーバ装置１００において、アプリケーション部１３１が主体となってフレームレート変更部１３５を制御する場合の、サーバ装置１００の各処理部の関連を示す図である。各処理部を接続する矢印は処理の流れを示している。
【００５９】
操作情報処理部１３２と画面情報生成部１３３と符号化処理部１３４の処理は、実施例１で説明した処理と同様であるため、説明を省略する。フレームレート変更部１３５が周期的処理は、実施例１で説明した処理と同様であるため、説明を省略する。フレームレート変更部１３５が操作情報処理部１３２から操作情報を受信したときの処理は、実施例１で説明した処理と同様であるため、説明を省略する。
【００６０】
次に、アプリケーション部１３１がフレームレート変更部１３５にフレームレートの変更を要求する処理を説明する。アプリケーション部１３１は現在実行しているアプリケーションプラグラムについて、フレームレートを明示的に下げたい、あるいはフレームレート明示的に上げたいといった場合に、フレームレート変更部１３５にフレームレートを上げる、あるいは、フレームレートを下げる要求を送信することができる。
【００６１】
例えば、静止画を表示し続ける場合は、フレームレートを下げ、動画を表示し続ける場合は、フレームレートを上げるといった制御がある。フレームレートを上げる、あるいは、フレームレートを下げる判断は、アプリケーションプログラムが自由に設定できる。
【００６２】
次に、フレームレート変更部１３５が時間経過と共にフレームレートを段階的に下げる処理について説明する。フレームレート変更部１３５がアプリケーション部１３１からフレームレートを上げる要求を受信すると、フレームレート変更部１３５はタイマカウンタ値を読み取り、基準時刻として保存する。その後、前記周期的処理により、新フレームレートを算出すると、経過時間は、基準時刻と、基準時刻を保存してから次の周期で読み取ったタイマカウンタ値との差分となるため、フレームレート変更表６００の０〜９９秒の列に該当することになる。したがって、新フレームレートは基準フレームレートになる。これによって、フレームレートを上げる要求を受信したときに、即座に基準フレームレートに戻すことができる。
【００６３】
次に、フレームレート変更部１３５がフレームレートを即座に下げる処理について説明する。フレームレート変更部１３５がアプリケーション部１３１からフレームレートを下げる要求を受信すると、フレームレート変更部１３５は図４に示すフレームレート変更表６００の中で一番低い新フレームレートに対応する経過時間よりも大きな値を基準時刻として保存する。
【００６４】
その後、前記周期的処理により、新フレームレートを算出すると、経過時間は、基準時刻と、基準時刻を保存してから次の周期で読み取ったタイマカウンタ値との差分となるため、フレームレート変更表６００の４００〜４９９秒の列に該当することになる。したがって、新フレームレートはフレームレート変更表６００の中で一番低いフレームレートになる。これによって、フレームレートを下げる要求を受信したときに、即座にフレームレート変更表６００の中で一番低いフレームレートに設定することができる。
【００６５】
一方、別の方法として、次に示す方法を用いて、フレームレート変更部１３５が段階的にフレームレートを上げる、あるいは下げることもできる。フレームレート変更部１３５がアプリケーション部１３１からフレームレートを上げる、または、フレームレートを下げる要求を受信すると、フレームレート変更部１３５が保持しているフレームレートを元に、図１１に示す経過時間判断表６０２及び経過時間判断表６０３から基準時刻を求め、基準時刻を基準時刻として保存する。
【００６６】
その後、前記周期的処理により、新フレームレートを算出すると、経過時間は、基準時刻と、基準時刻を保存してから次の周期で読み取ったタイマカウンタ値との差分となるため、フレームレート変更表６００から得られるフレームレートは、フレームレート変更部１３５が保持しているフレームレートより大きく、あるいは小さくなる。
【００６７】
例えば、フレームレート変更部１３５が保存しているが１０ｆｐｓの場合、経過時間判断表６０１から得られる基準時刻は１００であるため、これを基準時刻として保存すると、前記周期的の処理によってフレームレート変更表６００から得られる新フレームレートは、１５ｆｐｓになる。
【００６８】
この方法によれば、フレームレートを下げる要求を受信したときに、段階的にフレームレートを下げていくことができる。
本実施例によれば、アプリケーションプログラムが明示的にフレームレートを下げる、あるいはフレームレートを上げる、といった要求を送信した場合、サーバ装置１００は段階的あるいは即座にフレームレートを下げる、あるいは下げることができる。
【００６９】
アプリケーション部が主体となってフレームレートを上げる、あるいは下げることによって得られる効果について説明する。
アプリケーション部において動作しているアプリケーションプログラムが、操作性や利便性に対して、俊敏な応答や高速な画面切り替えなどのリアルタイム性を要求されるような状況になったときに、フレームレートを上げる要求を送信することで、リアルタイム性を要求するような状況でフレームレートが高くなり、操作性や利便性が損なわれることがない。例えば、動画像再生を行うアプリケーションプログラムにおいて、再生を開始するときにフレームレートを上げておくことで、動画像が滑らかに再生される。
【００７０】
逆に、アプリケーション部において動作しているアプリケーションプログラムが、リアルタイム性を要求しないような状況になったときに、フレームレートを下げる要求を送信することで、リアルタイム性を要求しないような状況でフレームレートが低くなり、符号化処理部の負荷を低減できる。例えば、動画像再生を行うアプリケーションプログラムにおいて、再生を停止したときにフレームレートを下げておくことで、動画像を再生していないときはフレームレートを低くして、符号化処理部の負荷を低減できる。
【実施例３】
【００７１】
以下、図面を参照しながら実施例について説明する。なお、実施例１と同一の部分については説明を省略し、異なる部分について詳細に説明する。
図１２は図１のサーバ装置１００において、画面情報生成部１３３が主体となってフレームレート変更部１３５を制御する場合の、サーバ装置１００の各処理部の関連を示す図である。各処理部を接続する矢印は処理の流れを示している。
【００７２】
操作情報処理部１３２とアプリケーション部１３３と符号化処理部１３４の処理は、実施例１で説明した処理と同様であるため、説明を省略する。フレームレート変更部１３５が周期的処理は、実施例１で説明した処理と同様であるため、説明を省略する。フレームレート変更部１３５が操作情報処理部１３２から操作情報を受信したときの処理は、実施例１で説明した処理と同様であるため、説明を省略する。
【００７３】
次に、画面情報生成部１３３がフレームレート変更部１３５にフレームレートの変更を要求する処理を説明する。画面情報生成部１３３はフレームレートを上げる、あるいは下げる判断を行い、フレームレートを上げる、あるいは下げる要求をフレームレート変更部１３５に送信する。
画面情報生成部１３３がフレームレートを上げる、あるいは下げる判断としては次のような手法がある。画面情報生成部１３３は今回生成した画面情報と前回に生成した画面情報とを比較し、画面情報に変化が小さい場合は、フレームレートを下げる要求を送信する。逆に、画面情報生成部１３３は今回生成した画面情報と前回に生成した画面情報とを比較し、画面情報に変化が大きい場合は、フレームレートを下げる要求を送信する。
【００７４】
また、別の手法として、一定時間内のアプリケーション部１３１からの描画情報が閾値未満の場合は、フレームレートを下げる要求を送信し、閾値以上の場合は、フレームレートを上げる要求を送信する、という手法がある。画面情報生成部１３３がフレームレートを上げる、あるいは下げる判断を行う手法は前記に上げた手法によらなくてもよい。
【００７５】
フレームレート変更部１３５が画面情報生成部１３３からフレームレートを上げる要求を受信したときの処理は、実施例２のフレームレート変更部１３５が画面情報生成部１３３からフレームレートを上げる要求を受信したときの処理における、アプリケーション部１３１を画面情報生成部１３３に置き換えた場合と同様であるため、説明を省略する。
本実施例によれば、画面情報生成部１３３がフレームレートを下げる、あるいはフレームレートを上げる、といった要求を送信した場合、サーバ装置１００は段階的あるいは即座にフレームレートを下げる、あるいは下げることができる。
【００７６】
画面情報生成部が主体となってフレームレートを上げる、あるいは下げることによって得られる効果について説明する。
実施例１による方法では、シンクライアント端末からの操作情報の入力がない場合は、フレームレートを下げていたが、操作情報がない場合でもフレームレートを上げたいという状況に対応できない。例えば、ユーザからの入力待ち状態の画面で、アニメーションを用いたグラフィカルな画面の場合、アニメーションが滑らかに動くためにフレームレートを上げておきたい場合がある。実施例３による方法によれば、このように、操作情報の入力がない場合でも、画面情報の変化の大小から、フレームレートを上げる、あるいは下げることができる。これによって操作性や利便性の更なる向上が可能になる。
【実施例４】
【００７７】
以下、図面を参照しながら実施例について説明する。なお、実施例１と同一の部分については説明を省略し、異なる部分について詳細に説明する。
図１３は図１のサーバ装置１００において、符号化処理部１３４が主体となってフレームレート変更部１３５を制御する場合の、サーバ装置１００の各処理部の関連を示す図である。各処理部を接続する矢印は処理の流れを示している。
【００７８】
操作情報処理部１３２とアプリケーション部１３３と画面情報生成部１３３の処理は、実施例１で説明した処理と同様であるため、説明を省略する。フレームレート変更部１３５が周期的処理は、実施例１で説明した処理と同様であるため、説明を省略する。フレームレート変更部１３５が操作情報処理部１３２から操作情報を受信したときの処理は、実施例１で説明した処理と同様であるため、説明を省略する。
【００７９】
次に、符号化処理部１３４がフレームレート変更部１３５にフレームレートの変更を要求する処理を説明する。符号化処理部１３４はフレームレートを上げる、あるいは下げる判断を行い、フレームレートを上げる、あるいは下げる要求をフレームレート変更部１３５に送信する。
【００８０】
符号化処理部１３４がフレームレートを上げる、あるいは下げる判断としては次のような手法がある。符号化処理部１３４は今回画面情報生成部１３３から取得した画面情報と前回画面情報生成部１３３から取得した画面情報とを比較し、画面情報に変化が小さい場合は、フレームレートを下げる要求を送信する。
逆に、画面情報生成部１３３は画面情報生成部１３３から取得した画面情報と画面情報生成部１３３から取得した画面情報とを比較し、画面情報に変化が大きい場合は、フレームレートを下げる要求を送信する。
【００８１】
また、別の手法として、例えば、符号化処理部１３４がＭＰＥＧ２方式の符号化方式である場合、符号化処理の過程で現在のフレームと前後のフレームとの間の動き補償の残差を離散コサイン変換してＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）係数を算出する。算出したＤＣＴ係数の残差が小さい場合、画面情報の変化が小さいとみなして、フレームレートを下げる要求を送信し、逆に残差が大きい場合、画面情報の変化が大きいとみなして、フレームレートを上げる要求を送信する。符号化の過程でＤＣＴ係数の残差を算出する符号化形式であれば、ＭＰＥＧ２方式でなくてもよい。また残差を算出する過程で、ＤＣＴによらない計算方法を用いても良い。
【００８２】
また、さらに別の手法として、例えば、符号化処理部１３４がＭＰＥＧ２方式の符号化方式である場合、画面内のイントラマクロブロック数が画面内の総イントラマクロブロックにしめる割合、すなわちイントラ率が低い場合、画面情報の変化が小さいとみなして、フレームレートを下げる要求を送信し、イントラ率が高い場合、画面情報の変化が大きいとみなして、フレームレートを上げる要求を送信する。符号化の過程でマクロブロックをイントラ、非イントラとして区別して符号化する符号化形式であれば、ＭＰＥＧ２方式でなくてもよい。
【００８３】
フレームレート変更部１３５が符号化処理部１３４からフレームレートを上げる要求を受信したときの処理は、実施例２のフレームレート変更部１３５が符号化処理部１３４からフレームレートを上げる要求を受信したときの処理における、アプリケーション部１３１を符号化処理部１３４に置き換えた場合と同様であるため、説明を省略する。
本実施例によれば、符号化処理部１３４がフレームレートを下げる、あるいはフレームレートを上げる、といった要求を送信した場合、サーバ装置１００は段階的あるいは即座にフレームレートを下げる、あるいは下げることができる。
【００８４】
符号化処理部が主体となってフレームレートを上げる、あるいは下げることによって得られる効果について説明する。
実施例４による方法では実施例３の効果と同様に、操作情報の入力がない場合でもＤＣＴ係数の残差およびイントラ率から画面変化の大小を判別し、フレームレートを上げる、あるいは下げることができる。これによって操作性や利便性の更なる向上が可能になる。
【００８５】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００８６】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００８７】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００８８】
１００  サーバ装置
１１０  プロセッサ
１２０  メモリ
１３０  プログラム
１３１  アプリケーション部
１３２  操作情報処理部
１３３  画面情報生成部
１３４  符号化処理部
１３５  フレームレート変更部
１４０  通信インターフェイス
１４１  ネットワーク
１４２  シンクライアント装置
６００、６０２、６０３  フレームレート変更表
６０１  経過時間判断表
【図１】
2011192229.tif 000003
【図２】
2011192229.tif 000004
【図３】
2011192229.tif 000005
【図４】
2011192229.tif 000006
【図５】
2011192229.tif 000007
【図６】
2011192229.tif 000008
【図７】
2011192229.tif 000009
【図８】
2011192229.tif 000010
【図９】
2011192229.tif 000011
【図１０】
2011192229.tif 000012
【図１１】
2011192229.tif 000013
【図１２】
2011192229.tif 000014
【図１３】
2011192229.tif 000015
【図１４】
2011192229.tif 000016
【図１５】
2011192229.tif 000017
【図１６】
2011192229.tif 000018