説明

サーバ装置および情報処理方法

【課題】
フレームレートを下げても操作性や利便性が損なわれないようなサーバ装置を提供することを目的とする。
【解決手段】
サーバ装置において、シンクライアントから操作情報を受信し、受信した前記操作情報をアプリケーションに送信する操作情報処理部と、前記操作情報による前記アプリケーションの処理に基づき画面情報を生成する画面情報生成部と、生成された前記画面情報を受信して動画像として符号化を行う符号化処理部と、符合化された前記画面情報を前記シンクライアントに送信する送信部と、前記符号化処理部により符合化される前記画面情報のフレームレートを変更するフレームレート変更部と、を有することを特徴とするサーバ装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はサーバ装置および情報処理方法に関する。
【背景技術】
【0002】
ネットワークを経由して遠隔地にある装置を操作するためのシンクライアント技術が実用化している。これは、遠隔地にサーバ装置を設置し、手元にあるシンクライアント装置とネットワークで接続し、シンクライアント装置に接続した入力装置からの操作情報をサーバ装置に送信し、これをサーバ装置で動作するアプリケーションへの入力とし、同時に、サーバ装置で動作するアプリケーションが出力した画面情報をシンクライアント装置に送信し、これをシンクライアント装置に接続した出力装置に出力することで実現される。
【0003】
またこれとは別に特開2007−214808号広報(特許文献1)がある。この公報には、TV会議システムにおいて、ホワイトボード共有等の電子会議機能利用状況を判別し、描画中は端末の負荷を軽減するように自動で映像の撮像処理、送受信処理及び映像の表示処理を変更することが記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−214808
【発明の概要】
【発明が解決しようとする課題】
【0005】
シンクライアント端末の操作性や利便性が損なわれないようなサーバ装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
そこで、サーバ装置が画面情報を動画像として符号化する場合に、シンクライアント装置からの入力情報、あるいは、実行しているアプリケーション状態の情報、あるいは、アプリケーションが生成した画面情報、あるいは、符号化処理の情報といった情報の一つ、あるいは、複数の組み合わせによって、符号化する動画像のフレームレートを制御する。
【発明の効果】
【0007】
本サーバ装置は、符号化する動画像のフレームレートを制御しているため、操作性や利便性を確保したまま、符号化処理を低減できる。
【図面の簡単な説明】
【0008】
【図1】サーバ装置の構成図の例である
【図2】実施例1におけるサーバ装置100の各処理部の関連を示す図である
【図3】フレームレート変更部135が一定周期で行う処理フローを示す図である
【図4】フレームレート変更表の一例である
【図5】経過時間判断表の一例である
【図6】フレームレートが固定の場合の、各ユーザのアプリケーションプログラムと画面情報生成と符号化処理によって占有するサーバ装置のCPU時間の一例である
【図7】フレームレートが可変の場合の、一人のユーザのアプリケーションプログラムと画面情報生成と符号化処理によって占有するサーバ装置のCPU時間の一例である
【図8】フレームレートが可変の場合の、各ユーザのアプリケーションプログラムと画面情報生成と符号化処理によって占有するサーバ装置のCPU時間の一例である
【図9】フレームレートが可変の場合の、各ユーザのアプリケーションプログラムと画面情報生成と符号化処理によって占有するサーバ装置のCPU時間が処理能力を超えない事例である
【図10】実施例2におけるサーバ装置100の各処理部の関連を示す図の例である
【図11】経過時間判断表の一例である
【図12】実施例3におけるサーバ装置100の各処理部の関連を示す図の例である
【図13】実施例4におけるサーバ装置100の各処理部の関連を示す図の例である
【図14】複数ユーザが同一のサーバ装置に接続する場合のサーバ装置100の構成図の例である
【図15】シンクライアント装置の構成図の例である
【図16】シンクライアント装置をテレビジョン装置で構成した場合の図の例である
【発明を実施するための形態】
【実施例1】
【0009】
通常のシンクライアント端末では、IP(Internet Protocol)により、ターミナルサーバ装置(以下サーバ装置と呼ぶこともある)で処理した静止画像を、シンクライアント端末に送信する。
一方、本実施例では、サーバ装置がシンクライアント装置に出力する画面情報の情報量を削減するために、サーバ装置が画面情報を静止画像ではなく動画像として符号化して出力し、シンクライアント装置が当該動画像を復号して、復号した画面情報を出力装置に出力することができる。
【0010】
このような方法では、サーバ装置が画面情報を動画像として符号化する場合に、動画像符号化処理の計算量が大きいため、サーバ装置の処理負荷が大きくなってしまう場合がある。これによって、複数のシンクライアント装置がサーバ装置に接続すると、サーバ装置が単位時間あたりに処理可能な符号化処理の計算量を超えてしまい、例えば、シンクライアント装置の画面情報出力が遅れたり、サーバ装置で実行しているアプリケーションの処理が遅れたりする、という問題が発生する場合がある。
【0011】
以下、図面を参照しながら実施例について説明する。図1はサーバ装置の構成図の例である。サーバ装置100はプロセッサ110とメモリ120を有し、通信インターフェイス140を介してLAN、WANなどのネットワーク141に接続する。
【0012】
メモリ120に格納されたアプリケーションプログラム131、操作情報処理プログラム132、画面情報生成プログラム133、符号化処理プログラム134、フレームレート変更プログラム135など各種プログラム130をプロセッサ110が実行することで、アプリケーション、操作情報処理、画面情報生成、符号化処理の各処理を行う。
【0013】
これらは、アプリケーション部131、操作情報処理部132、画面情報生成部133、符号化処理部134、フレームレート変更部135など、各処理を行う処理部として集積回路化するなどして、一部または全部をハードウェアで実現することもできる。
以下説明を簡略化するため、各種プログラム130をプロセッサ110が実行することで実現される各処理部を各処理の主体として説明する。なお各処理部をハードウェアで実現した場合にはその各処理部が主体となって各処理を行う。
【0014】
図15は、シンクライアント装置の構成図の例である。シンクライアント装置142はプロセッサ210とメモリ220を有し、通信インターフェイス240を介してLAN、WANなどのネットワーク141に接続する。
メモリ220に格納されたアプリケーションプログラム231、操作情報処理プログラム232、画面情報処理プログラム233、復号処理プログラム234、など各種プログラム230をプロセッサ210が実行することで、アプリケーション、操作情報処理、画面情報生成、復号処理の各処理を行う。
【0015】
これらは、アプリケーション部231、操作情報処理部232、画面情報処理部233、復号処理部234など、各処理を行う処理部として集積回路化するなどして、一部または全部をハードウェアで実現することもできる。
表示部250は、サーバ装置から送信された動画像を表示する表示部である。図14ではシンクライアント装置が表示部250を備える構成となっているが、表示部250はシンクライアント装置の外にある外付けの表示部であってもよい。
入力部260は、ユーザからの入力を受け付ける。例えば、マウス操作や、キーボード入力、リモコン操作などの操作情報を受信する。
【0016】
シンクライアントシステムの動作の概要を説明する。シンクライアント装置142の入力部260は、ユーザからの操作を受け付ける。ユーザによるマウス操作やキーボード入力により、マウスをクリックした座標情報や、キーボード入力情報を、操作情報処理部232が処理し、処理された操作情報を通信インターフェイス240を介してサーバ装置100に送信する。
【0017】
図2は図1のサーバ装置100において、操作情報処理部132が主体となってフレームレート変更部135を制御する場合の、サーバ装置100の各処理部の関連を示す図である。各処理部を接続する矢印は処理の流れを示している。
サーバ装置100は、通信インターフェイス140を介して、シンクライアント装置142から操作情報を受信する。受信した操作情報は操作情報処理部132に送信され、操作情報処理部132は当該操作情報をサーバ装置への操作情報として、アプリケーション部131に入力する。
【0018】
アプリケーション部131は操作情報処理部132からの操作情報の入力や時間的変化などによってアプリケーションの画面情報が変更すると、画面情報生成部133に描画情報を送信する。描画情報とは、例えば、画面に文字を書く、四角形を書く、といった情報のことである。画面情報生成部133は受信した描画情報を一定周期で画面情報を生成する。符号化処理部134は一定周期で画面情報生成部133から画面情報を取得して、当該画面情報を符号化して、通信インターフェイス140を介してシンクライアント装置142に送信する。
【0019】
シンクライアント装置140は、符号化された画面情報を受信し、復号処理部234に入力する。復号処理部234は、画面情報を復号し、表示部250に表示する。
【0020】
本実施例では、画面情報の処理を、サーバ装置100の符号化処理部134、シンクライアント装置142の復号処理部234により行う。このように動画処理の方法を用いることで、シンクライアント装置142として、テレビジョン装置の復号処理部を使用することができる。
【0021】
図16はシンクライアント装置142をテレビジョン装置で構成した図の例である。
【0022】
シンクライアント装置142は、チューナ101、デスクランブラ102、デマルチプレクサ103、デコーダ234、表示部/スピーカ250、入力部106、メモリ220、アプリケーション部231、操作情報処理部232、画面情報処理部233、記録部115、暗号/復号処理部112、通信処理部104、通信インターフェイス240、制御部210から構成される。
【0023】
チューナ101は、放送局からアンテナ10を介して受信した複数のチャンネルから所望のチャンネルを選局し、デジタル変調された番組を復調する。
【0024】
デスクランブラ102は、サービス事業者と契約したチャンネルのみを受信可能とするためにかけられている番組のスクランブルを解除する。
【0025】
デマルチプレクサ103は、放送番組から音声データ、映像データを抽出する。
【0026】
デコーダ234は、放送番組や通信インターフェイス240から受信した圧縮符合化された音声データや映像データを復号して、元の音声信号、映像信号に伸長する。
【0027】
表示部/スピーカ250は、デコーダ234からの出力信号を再生する。内蔵ではなく、外付けでも良い。
【0028】
入力部106は、ユーザからのマウス操作、リモコン操作、タッチパネルからの入力、キーボード入力などの操作情報を入力する。
【0029】
アプリケーション部231、操作情報処理部232、画面情報処理部233の処理は以前説明したものと同じである。
【0030】
記録部115は、放送番組を記録する内蔵メモリである。その他に着脱可能なHDD(ハードディスクドライブ)や光ディスク、メモリカード、そしてこれらを組み合わせたハイブリッド形態などでもよい。
【0031】
暗号/復号処理部112は、放送番組やネットワーク経由でデジタル入出力端子114を介して受信したコンテンツを、サーバ装置100と共有した鍵を使用して暗号化あるいは復号する。
【0032】
通信処理部104は、通信インターフェイス240を介してネットワークで接続した他のサーバ装置との間で動画像情報や制御コマンドを送受信する。コンテンツを送受信する場合には、送受信するコンテンツにその取り扱い方を示す「Copy free」「Copy one generation」「No more copies」「Copy never」などの識別コードなどが付加される。
【0033】
制御部210は、シンクライアント装置142における各部の動作を統括的に制御する。
【0034】
フレームレートの変換について説明する。操作情報処理部132は操作情報をフレームレート変更部135に送信する。フレームレート変更部135は受信した操作情報を元にフレームレートを下げる、または、維持する、または、上げる判断する。フレームレートを上げる、または、下げる、と判断した場合、フレームレート変更部135は符号化処理部134に新しいフレームレートを通知する。
【0035】
符号化処理部134はフレームレート変更部135からフレームレートを通知されると、画面情報生成部133から画面情報を取得して、当該画面情報を符号化する周期をフレームレート変更部135から通知されたフレームレートに変更する。
【0036】
例えば、符号化形式がMPEG2形式の場合、一つのフレームを一つのピクチャとして扱い、複数のピクチャをGOP(Group of Picture)という単位で扱うが、GOP構成がIBBPBBPBBPBBPBBの15枚のピクチャであり、一つのGOPが0.5秒である場合、フレームレートを10fpsに変更した場合、GOPの構成をIPPPPの5枚のピクチャで構成して符号化する。これによって、0.5秒を5枚のピクチャで表現することになるため、10fpsを実現していることになる。しかしIBBPBBPBBPBBPBBのようなGOP構成では、フレームレートを下げる場合、実現可能なフレームレートに制限がある。
【0037】
そこで、GOP構成を、例えばIPPPPPPPPP・・・とPが15枚以上続くような構成にすれば、任意のPを抜いてGOPを構成できるため、任意のフレームレートを設定できる。フレームレートの変更方法は前記した方法以外でも良い。
【0038】
次に、フレームレート変更部135が時間経過と共にフレームレートを段階的に下げる処理について説明する。図3にフレームレート変更部135が周期的に行う処理フローを示す。フレームレート変更部135は基準フレームレートを現在フレームレートとして保存する(S501)。本実施例では基準フレームレートを30fpsとしている。
【0039】
フレームレート変更部135はプロセッサ110が内蔵するタイマカウンタ値を読み取り、これを基準時刻として保存する(S502)。このタイマカウンタ値はプロセッサ110の代わりに、別のハードウェアで実現しても良い。また読み取ったタイマカウンタ値をプロセッサ固有の時間単位から秒単位に変換しても良い。本実施例ではタイマカウンタ値を求めるときに全て秒単位に変換して扱うものとする。
【0040】
フレームレート変更部135は周期的にタイマカウンタ値を読み取り、前回保存した基準時刻との経過時間を求める(S503)。フレームレート変更部135は図4に示すフレームレート変更表600を内蔵している。フレームレート変更表600はプログラムに内蔵されていても良いし、フラッシュロムなど別のハードウェアに格納されていても良い。フレームレート変更部135はフレームレート変更表600を元に、経過時間に該当するフレームレートを求め(S504)、新フレームレートとする。
【0041】
求めた新フレームレートと現在フレームレートとを比較し(S505)、求めた新フレームレートが現在フレームレートと異なる場合、新フレームレートを新たにフレームレート変更部135が現在フレームレートとして保持し(S506)、当該フレームレートを符号化処理部134に通知する(S507)。例えば、経過時間が100の場合、新フレームレートは15fpsである。その後、またS503の処理に戻る。
【0042】
次に、フレームレート変更部135が即座にフレームレートを上げる処理について説明する。フレームレート変更部135が操作情報処理部132から操作情報を受信すると、フレームレート変更部135はタイマカウンタ値を読み取り、基準時刻として保存する。その後、前記周期的処理により、新フレームレートを算出すると、経過時間は、基準時刻と、基準時刻を保存してから次の周期で読み取ったタイマカウンタ値との経過時間となるため、フレームレート変更表600の0〜99秒の列に該当することになる。したがって、新フレームレートは基準フレームレートになる。これによって、何らかの操作情報を受信したときに、即座に基準フレームレートに戻すことができる。
【0043】
一方、別の方法として、次に示す方法を用いて、フレームレート変更部135が段階的にフレームレートを上げることもできる。フレームレート変更部135が操作情報処理部132から操作情報を受信すると、フレームレート変更部135が保持しているフレームレートを元に、図5に示す経過時間判断表601から新経過時間を求める。さらに、タイマカウンタ値を読み取り、タイマカウンタ値と新経過時間の和を基準時刻として保存する。経過時間判断表601の新経過時間とフレームレートの対応は、フレームレート変更部135が保持しているフレームレートを元に新経過時間を選択する際、フレームレート変更表600から得られる当該新経過時間に対応するフレームレートがフレームレート変更部135で保持しているフレームレートより大きくなるような新経過時間となるように、経過時間判断表601の新経過時間を設定しておく。
【0044】
その後、前記周期的処理により、新フレームレートを算出すると、経過時間は、基準時刻と、基準時刻を保存してから次の周期で読み取ったタイマカウンタ値との経過時間となるため、フレームレート変更表600から得られるフレームレートは、フレームレート変更部135が保持しているフレームレートより大きくなる。
【0045】
例えば、フレームレート変更部135が保存しているが10fpsの場合、経過時間判断表601から得られる新経過時間は100であるため、これとタイマカウンタ値との和を基準時刻として保存すると、前記周期的処理の処理によってフレームレート変更表600から得られる新フレームレートは、15fpsになる。
【0046】
この方法によれば、何らかの操作情報を受信したときに、段階的にフレームレートを上げていくことができる。
【0047】
本実施例によれば、シンクライアント装置が操作情報を送信していない時間が一定時間続くと、サーバ装置100は段階的にフレームレートを下げることができる。また、シンクライアント装置が何らかの操作情報を送信すると、サーバ装置100はフレームレートを即座に、あるいは段階的に基準フレームレートに戻すことができる。ユーザの操作情報をもとに、操作情報があればフレームレートを上げ、操作情報がない場合はフレームレートをさげるため、アプリケーションの操作性や利便性が損なわれることがない。
【0048】
次に、一つのサーバ装置に複数ユーザがシンクライアント端末を用いて同時に接続した場合に、本実施例によって得られる効果について説明する。
複数ユーザがシンクライアント装置を用いて同一サーバ装置100に同時に接続する場合の、サーバ装置100の構成の例を図14に示す。サーバ装置100では同時にプログラム130をプロセッサ110が処理する。
【0049】
複数ユーザがシンクライアント装置を用いて同一サーバ装置100に同時に接続し、当該サーバ装置100上でアプリケーションプログラムを動作する場合、当該サーバ装置100のCPU占有時間は、各ユーザが実行しているアプリケーションプログラムと画面情報生成と符号化処理によって占有するCPU時間の合計になる。
【0050】
従来のサーバ装置の場合は、例えば図6に示すように、各ユーザのアプリケーションプログラムと画面情報生成と符号化処理によって占有するCPU時間が30%であって、接続するユーザがユーザAとユーザBとユーザCの三者であった場合、CPU占有率の合計は常に90%になる。このとき、別のユーザDが同一サーバ装置100に接続し、アプリケーションプログラムを動作させようとすると、CPU占有率が100%に達してしまい、サーバ装置100の処理能力を超えてしまう。これによって、例えば、アプリケーションプログラムの動作が遅くなるといった問題が発生しうる。
【0051】
そこで、本実施例によるサーバ装置100であれば、各ユーザが実行しているアプリケーションプログラムについて、フレームレートを下げることが可能であるため、画面情報生成及び符号化処理の低減が可能である。そのため、各ユーザのアプリケーションプログラムと画面情報生成と符号化処理のCPU占有率は時間経過によって変動するため、サーバ装置100全体のCPU占有率はフレームレートが固定であった場合よりも低くなる。
【0052】
例えば、図7では、本実施例によってフレームレートを下げることによって、符号化処理を低減し、CPU占有率を下げていることを示している。同様のことはユーザBとユーザCにも言える。図8に示すように、ユーザAとユーザBとユーザCのCPU占有率が時間経過によって変動しているため、それらの合計は図7に示すサーバ装置100のCPU占有率よりも低い。したがって、ユーザDが同一サーバ装置100に接続して、アプリケーションプログラムを動作させていても、図9に示すように、CPU占有率が100%を超えることがない。
【0053】
本実施例によるサーバ装置100では、フレームレートを下げる要因がユーザからの操作情報に依存するが、同一サーバ装置100に接続するユーザ数が多くなれば、各ユーザが操作情報を入力するタイミングが統計的に平滑化されるため、サーバ装置100のCPU占有率を常に低い状態に保つことができる。
【0054】
サーバ装置100のCPU占有率を常に低い状態に保つことで、複数ユーザが同時に同一のサーバ装置100に接続した場合であっても、アプリケーションプログラムの動作が遅くなりにくくなる。さらに、CPU占有率が常に低い状態であるため、サーバ装置100の消費電力を低減することが可能である。CPU占有率が低くなるため、サーバ装置100のプロセッサ110の性能を低くできるため、サーバ装置100のハードウェアコストを低減できる。
【0055】
また、本実施例によるサーバ装置100であれば、各ユーザが実行しているアプリケーションプログラムについて、フレームレートを下げることが可能であるため、符号化処理部134が出力する符号量の削減が可能である。
【0056】
そのため、各ユーザの画面情報の符号量は時間経過によって変動するため、サーバ装置100が出力する符号量の合計は、フレームレートが固定であった場合よりも低くなる。CPU占有率と同様に、本実施例によるサーバ装置100では、フレームレートを下げる要因がユーザからの操作情報に依存するが、同一サーバ装置100に接続するユーザ数が多くなれば、各ユーザが操作情報を入力するタイミングが統計的に平滑化され、サーバ装置100が出力する符号量の合計を常に低い状態に保つことができる。
【0057】
サーバ装置100が出力する符号量の合計を常に低い状態に保つことで、ネットワーク上で送受信するデータ量を削減できるため、ネットワーク上での輻輳が発生しにくくなる。また、ネットワーク上で送受信するデータ量を削減できるため、データ量に応じて課金するネットワークシステムの場合、課金料を削減することが可能である。
【実施例2】
【0058】
以下、図面を参照しながら実施例について説明する。なお、実施例1と同一の部分については説明を省略し、異なる部分について詳細に説明する。
図10は図1のサーバ装置100において、アプリケーション部131が主体となってフレームレート変更部135を制御する場合の、サーバ装置100の各処理部の関連を示す図である。各処理部を接続する矢印は処理の流れを示している。
【0059】
操作情報処理部132と画面情報生成部133と符号化処理部134の処理は、実施例1で説明した処理と同様であるため、説明を省略する。フレームレート変更部135が周期的処理は、実施例1で説明した処理と同様であるため、説明を省略する。フレームレート変更部135が操作情報処理部132から操作情報を受信したときの処理は、実施例1で説明した処理と同様であるため、説明を省略する。
【0060】
次に、アプリケーション部131がフレームレート変更部135にフレームレートの変更を要求する処理を説明する。アプリケーション部131は現在実行しているアプリケーションプラグラムについて、フレームレートを明示的に下げたい、あるいはフレームレート明示的に上げたいといった場合に、フレームレート変更部135にフレームレートを上げる、あるいは、フレームレートを下げる要求を送信することができる。
【0061】
例えば、静止画を表示し続ける場合は、フレームレートを下げ、動画を表示し続ける場合は、フレームレートを上げるといった制御がある。フレームレートを上げる、あるいは、フレームレートを下げる判断は、アプリケーションプログラムが自由に設定できる。
【0062】
次に、フレームレート変更部135が時間経過と共にフレームレートを段階的に下げる処理について説明する。フレームレート変更部135がアプリケーション部131からフレームレートを上げる要求を受信すると、フレームレート変更部135はタイマカウンタ値を読み取り、基準時刻として保存する。その後、前記周期的処理により、新フレームレートを算出すると、経過時間は、基準時刻と、基準時刻を保存してから次の周期で読み取ったタイマカウンタ値との差分となるため、フレームレート変更表600の0〜99秒の列に該当することになる。したがって、新フレームレートは基準フレームレートになる。これによって、フレームレートを上げる要求を受信したときに、即座に基準フレームレートに戻すことができる。
【0063】
次に、フレームレート変更部135がフレームレートを即座に下げる処理について説明する。フレームレート変更部135がアプリケーション部131からフレームレートを下げる要求を受信すると、フレームレート変更部135は図4に示すフレームレート変更表600の中で一番低い新フレームレートに対応する経過時間よりも大きな値を基準時刻として保存する。
【0064】
その後、前記周期的処理により、新フレームレートを算出すると、経過時間は、基準時刻と、基準時刻を保存してから次の周期で読み取ったタイマカウンタ値との差分となるため、フレームレート変更表600の400〜499秒の列に該当することになる。したがって、新フレームレートはフレームレート変更表600の中で一番低いフレームレートになる。これによって、フレームレートを下げる要求を受信したときに、即座にフレームレート変更表600の中で一番低いフレームレートに設定することができる。
【0065】
一方、別の方法として、次に示す方法を用いて、フレームレート変更部135が段階的にフレームレートを上げる、あるいは下げることもできる。フレームレート変更部135がアプリケーション部131からフレームレートを上げる、または、フレームレートを下げる要求を受信すると、フレームレート変更部135が保持しているフレームレートを元に、図11に示す経過時間判断表602及び経過時間判断表603から基準時刻を求め、基準時刻を基準時刻として保存する。
【0066】
その後、前記周期的処理により、新フレームレートを算出すると、経過時間は、基準時刻と、基準時刻を保存してから次の周期で読み取ったタイマカウンタ値との差分となるため、フレームレート変更表600から得られるフレームレートは、フレームレート変更部135が保持しているフレームレートより大きく、あるいは小さくなる。
【0067】
例えば、フレームレート変更部135が保存しているが10fpsの場合、経過時間判断表601から得られる基準時刻は100であるため、これを基準時刻として保存すると、前記周期的の処理によってフレームレート変更表600から得られる新フレームレートは、15fpsになる。
【0068】
この方法によれば、フレームレートを下げる要求を受信したときに、段階的にフレームレートを下げていくことができる。
本実施例によれば、アプリケーションプログラムが明示的にフレームレートを下げる、あるいはフレームレートを上げる、といった要求を送信した場合、サーバ装置100は段階的あるいは即座にフレームレートを下げる、あるいは下げることができる。
【0069】
アプリケーション部が主体となってフレームレートを上げる、あるいは下げることによって得られる効果について説明する。
アプリケーション部において動作しているアプリケーションプログラムが、操作性や利便性に対して、俊敏な応答や高速な画面切り替えなどのリアルタイム性を要求されるような状況になったときに、フレームレートを上げる要求を送信することで、リアルタイム性を要求するような状況でフレームレートが高くなり、操作性や利便性が損なわれることがない。例えば、動画像再生を行うアプリケーションプログラムにおいて、再生を開始するときにフレームレートを上げておくことで、動画像が滑らかに再生される。
【0070】
逆に、アプリケーション部において動作しているアプリケーションプログラムが、リアルタイム性を要求しないような状況になったときに、フレームレートを下げる要求を送信することで、リアルタイム性を要求しないような状況でフレームレートが低くなり、符号化処理部の負荷を低減できる。例えば、動画像再生を行うアプリケーションプログラムにおいて、再生を停止したときにフレームレートを下げておくことで、動画像を再生していないときはフレームレートを低くして、符号化処理部の負荷を低減できる。
【実施例3】
【0071】
以下、図面を参照しながら実施例について説明する。なお、実施例1と同一の部分については説明を省略し、異なる部分について詳細に説明する。
図12は図1のサーバ装置100において、画面情報生成部133が主体となってフレームレート変更部135を制御する場合の、サーバ装置100の各処理部の関連を示す図である。各処理部を接続する矢印は処理の流れを示している。
【0072】
操作情報処理部132とアプリケーション部133と符号化処理部134の処理は、実施例1で説明した処理と同様であるため、説明を省略する。フレームレート変更部135が周期的処理は、実施例1で説明した処理と同様であるため、説明を省略する。フレームレート変更部135が操作情報処理部132から操作情報を受信したときの処理は、実施例1で説明した処理と同様であるため、説明を省略する。
【0073】
次に、画面情報生成部133がフレームレート変更部135にフレームレートの変更を要求する処理を説明する。画面情報生成部133はフレームレートを上げる、あるいは下げる判断を行い、フレームレートを上げる、あるいは下げる要求をフレームレート変更部135に送信する。
画面情報生成部133がフレームレートを上げる、あるいは下げる判断としては次のような手法がある。画面情報生成部133は今回生成した画面情報と前回に生成した画面情報とを比較し、画面情報に変化が小さい場合は、フレームレートを下げる要求を送信する。逆に、画面情報生成部133は今回生成した画面情報と前回に生成した画面情報とを比較し、画面情報に変化が大きい場合は、フレームレートを下げる要求を送信する。
【0074】
また、別の手法として、一定時間内のアプリケーション部131からの描画情報が閾値未満の場合は、フレームレートを下げる要求を送信し、閾値以上の場合は、フレームレートを上げる要求を送信する、という手法がある。画面情報生成部133がフレームレートを上げる、あるいは下げる判断を行う手法は前記に上げた手法によらなくてもよい。
【0075】
フレームレート変更部135が画面情報生成部133からフレームレートを上げる要求を受信したときの処理は、実施例2のフレームレート変更部135が画面情報生成部133からフレームレートを上げる要求を受信したときの処理における、アプリケーション部131を画面情報生成部133に置き換えた場合と同様であるため、説明を省略する。
本実施例によれば、画面情報生成部133がフレームレートを下げる、あるいはフレームレートを上げる、といった要求を送信した場合、サーバ装置100は段階的あるいは即座にフレームレートを下げる、あるいは下げることができる。
【0076】
画面情報生成部が主体となってフレームレートを上げる、あるいは下げることによって得られる効果について説明する。
実施例1による方法では、シンクライアント端末からの操作情報の入力がない場合は、フレームレートを下げていたが、操作情報がない場合でもフレームレートを上げたいという状況に対応できない。例えば、ユーザからの入力待ち状態の画面で、アニメーションを用いたグラフィカルな画面の場合、アニメーションが滑らかに動くためにフレームレートを上げておきたい場合がある。実施例3による方法によれば、このように、操作情報の入力がない場合でも、画面情報の変化の大小から、フレームレートを上げる、あるいは下げることができる。これによって操作性や利便性の更なる向上が可能になる。
【実施例4】
【0077】
以下、図面を参照しながら実施例について説明する。なお、実施例1と同一の部分については説明を省略し、異なる部分について詳細に説明する。
図13は図1のサーバ装置100において、符号化処理部134が主体となってフレームレート変更部135を制御する場合の、サーバ装置100の各処理部の関連を示す図である。各処理部を接続する矢印は処理の流れを示している。
【0078】
操作情報処理部132とアプリケーション部133と画面情報生成部133の処理は、実施例1で説明した処理と同様であるため、説明を省略する。フレームレート変更部135が周期的処理は、実施例1で説明した処理と同様であるため、説明を省略する。フレームレート変更部135が操作情報処理部132から操作情報を受信したときの処理は、実施例1で説明した処理と同様であるため、説明を省略する。
【0079】
次に、符号化処理部134がフレームレート変更部135にフレームレートの変更を要求する処理を説明する。符号化処理部134はフレームレートを上げる、あるいは下げる判断を行い、フレームレートを上げる、あるいは下げる要求をフレームレート変更部135に送信する。
【0080】
符号化処理部134がフレームレートを上げる、あるいは下げる判断としては次のような手法がある。符号化処理部134は今回画面情報生成部133から取得した画面情報と前回画面情報生成部133から取得した画面情報とを比較し、画面情報に変化が小さい場合は、フレームレートを下げる要求を送信する。
逆に、画面情報生成部133は画面情報生成部133から取得した画面情報と画面情報生成部133から取得した画面情報とを比較し、画面情報に変化が大きい場合は、フレームレートを下げる要求を送信する。
【0081】
また、別の手法として、例えば、符号化処理部134がMPEG2方式の符号化方式である場合、符号化処理の過程で現在のフレームと前後のフレームとの間の動き補償の残差を離散コサイン変換してDCT(Discrete Cosine Transform)係数を算出する。算出したDCT係数の残差が小さい場合、画面情報の変化が小さいとみなして、フレームレートを下げる要求を送信し、逆に残差が大きい場合、画面情報の変化が大きいとみなして、フレームレートを上げる要求を送信する。符号化の過程でDCT係数の残差を算出する符号化形式であれば、MPEG2方式でなくてもよい。また残差を算出する過程で、DCTによらない計算方法を用いても良い。
【0082】
また、さらに別の手法として、例えば、符号化処理部134がMPEG2方式の符号化方式である場合、画面内のイントラマクロブロック数が画面内の総イントラマクロブロックにしめる割合、すなわちイントラ率が低い場合、画面情報の変化が小さいとみなして、フレームレートを下げる要求を送信し、イントラ率が高い場合、画面情報の変化が大きいとみなして、フレームレートを上げる要求を送信する。符号化の過程でマクロブロックをイントラ、非イントラとして区別して符号化する符号化形式であれば、MPEG2方式でなくてもよい。
【0083】
フレームレート変更部135が符号化処理部134からフレームレートを上げる要求を受信したときの処理は、実施例2のフレームレート変更部135が符号化処理部134からフレームレートを上げる要求を受信したときの処理における、アプリケーション部131を符号化処理部134に置き換えた場合と同様であるため、説明を省略する。
本実施例によれば、符号化処理部134がフレームレートを下げる、あるいはフレームレートを上げる、といった要求を送信した場合、サーバ装置100は段階的あるいは即座にフレームレートを下げる、あるいは下げることができる。
【0084】
符号化処理部が主体となってフレームレートを上げる、あるいは下げることによって得られる効果について説明する。
実施例4による方法では実施例3の効果と同様に、操作情報の入力がない場合でもDCT係数の残差およびイントラ率から画面変化の大小を判別し、フレームレートを上げる、あるいは下げることができる。これによって操作性や利便性の更なる向上が可能になる。
【0085】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0086】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0087】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0088】
100 サーバ装置
110 プロセッサ
120 メモリ
130 プログラム
131 アプリケーション部
132 操作情報処理部
133 画面情報生成部
134 符号化処理部
135 フレームレート変更部
140 通信インターフェイス
141 ネットワーク
142 シンクライアント装置
600、602、603 フレームレート変更表
601 経過時間判断表

【特許請求の範囲】
【請求項1】
サーバ装置において、
シンクライアントから操作情報を受信し、受信した前記操作情報をアプリケーションに送信する操作情報処理部と、
前記操作情報による前記アプリケーションの処理に基づき画面情報を生成する画面情報生成部と、
生成された前記画面情報を受信して動画像として符号化を行う符号化処理部と、
符合化された前記画面情報を前記シンクライアントに送信する送信部と、
前記符号化処理部により符合化される前記画面情報のフレームレートを変更するフレームレート変更部と、
を有することを特徴とするサーバ装置。
【請求項2】
請求項1記載のサーバ装置において、
前記フレームレート変更部は、前記操作情報処理部が前記シンクライアントから前記操作情報を受信しない時間が、所定の時間を超えた場合に、前記符合化処理部で符合化される前記画面情報のフレームレートを下げる
ことを特徴とするサーバ装置。
【請求項3】
請求項1または2に記載のサーバ装置において、
前記フレームレート変更部は、前記操作情報処理部が前記シンクライアントから前記操作情報を受信した場合に、前記符合化処理部で符合化される前記画面情報のフレームレートを上げる
【請求項4】
請求項1〜3のいずれか1項に記載のサーバ装置において、
前記画面情報生成部が直前の画面情報と、現在の画面情報と、を比較し、画面情報の変化量が閾値未満の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを下げる
ことを特徴とするサーバ装置。
【請求項5】
請求項1〜4のいずれか1項に記載のサーバ装置において、
前記画面情報生成部が直前の画面情報と、現在の画面情報と、を比較し、画面情報の変化量が閾値以上の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを上げる
ことを特徴とするサーバ装置。
【請求項6】
請求項1〜5のいずれか1項に記載のサーバ装置において、
前記アプリケーションから前記画面情報生成部への描画要求が一定時間の間に閾値未満の場合に、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを下げる
ことを特徴とするサーバ装置。
【請求項7】
請求項1〜6のいずれか1項に記載のサーバ装置において、
前記アプリケーションから前記画面情報生成部への描画要求が一定時間の間に閾値以上の場合に、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを上げる
ことを特徴とするサーバ装置。
【請求項8】
請求項1〜7のいずれか1項に記載のサーバ装置において、
前記符号化処理部が前回画面情報生成部から受信した画面情報と、前記符号化処理部が今回画面情報生成部から受信した画面情報と、を比較し、画面情報の変化量が閾値未満の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを下げる
ことを特徴とするサーバ装置。
【請求項9】
請求項1〜8のいずれか1項に記載のサーバ装置において、
前記符号化処理部が前回画面情報生成部から受信した画面情報と、前記符号化処理部が今回画面情報生成部から受信した画面情報と、を比較し、画面情報の変化量が閾値以上の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを下げる
ことを特徴とするサーバ装置。
【請求項10】
請求項1〜9のいずれか1項に記載のサーバ装置において、
DCT係数の残差が閾値未満の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを下げる
ことを特徴とするサーバ装置。
【請求項11】
請求項1〜10のいずれか1項に記載のサーバ装置において、
DCT係数の残差が閾値以上の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを上げることを特徴とするサーバ装置。
【請求項12】
請求項1〜11のいずれか1項に記載のサーバ装置において、
画面内のイントラマクロブロック数が画面内の総イントラマクロブロックに占める割合が閾値未満の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを下げることを特徴とするサーバ装置。
【請求項13】
請求項1〜12のいずれか1項に記載のサーバ装置において、
画面内のイントラマクロブロック数が画面内の総イントラマクロブロックに占める割合が閾値以上の場合は、前記フレームレート変更部は、前記符合化処理部で符合化される前記画面情報のフレームレートを上げる
ことを特徴とするサーバ装置。
【請求項14】
サーバ装置における情報処理方法において、
シンクライアントから操作情報を受信し、
受信した前記操作情報をアプリケーションに送信し、
前記操作情報による前記アプリケーションの処理に基づき画面情報を生成し、
生成された前記画面情報を受信して動画像として符号化を行い、
符合化された前記画面情報を前記シンクライアントに送信するものであって、
符合化される前記画面情報のフレームレートを変更する、
ことを特徴とするサーバ方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2011−192229(P2011−192229A)
【公開日】平成23年9月29日(2011.9.29)
【国際特許分類】
【出願番号】特願2010−60118(P2010−60118)
【出願日】平成22年3月17日(2010.3.17)
【出願人】(509189444)日立コンシューマエレクトロニクス株式会社 (998)
【Fターム(参考)】