JP2014182793A - エンコーダ、映像処理サーバ、映像処理システム、エンコード方法およびそのプログラム - Google Patents

エンコーダ、映像処理サーバ、映像処理システム、エンコード方法およびそのプログラム Download PDF

Info

Publication number
JP2014182793A
JP2014182793A JP2014023186A JP2014023186A JP2014182793A JP 2014182793 A JP2014182793 A JP 2014182793A JP 2014023186 A JP2014023186 A JP 2014023186A JP 2014023186 A JP2014023186 A JP 2014023186A JP 2014182793 A JP2014182793 A JP 2014182793A
Authority
JP
Japan
Prior art keywords
browser
frame
video
server
audio
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014023186A
Other languages
English (en)
Inventor
Kiyoshi Kasatani
潔 笠谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2014023186A priority Critical patent/JP2014182793A/ja
Publication of JP2014182793A publication Critical patent/JP2014182793A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

【課題】端末側の負荷を低減させつつ、リッチなウェブコンテンツをブラウジングできるようにする。
【解決手段】映像音声エンコーダ211は、ウェブコンテンツをレンダリングしてブラウザ出力画像を生成するクラウドブラウザ204を備えたエンジンサーバ200に組み込まれるエンコーダであって、クラウドブラウザ204で生成されたブラウザ出力画像のIフレームまたはブラウザ出力画像の前のブラウザ出力画像に対するPフレームを生成するフレーム生成部2112と、フレーム生成部2112が生成したフレームを出力するフレーム出力部2113と、クラウドブラウザ204に更新が発生していない期間を計測するタイマと、を備え、フレーム生成部2112は、タイマによって計時されたクラウドブラウザ204に更新が発生していない期間が所定時間Tw以上となった場合、強制IフレームF1fを生成することを特徴とする。
【選択図】図30

Description

本発明は、エンコーダ、映像処理サーバ、映像処理システム、エンコード方法およびそのプログラムに関する。
近年、インターネットの普及に伴い、様々な分野でクラウドコンピューティングが利用されてきている。クラウドコンピューティングは、ユーザが、インターネットに接続した端末を用いてインターネット上のサーバが提供するサービス(クラウドサービス)を利用し、その対価を支払うサービス利用形態である。
しかし、インターネット上で扱われるコンテンツ(ウェブコンテンツ)は、様々な要求に応えるためにリッチ化される傾向にある。従来技術では、インターネット経由でサービスを利用するための端末をウェブコンテンツのリッチ化に対応させるための負荷が高いという問題がある。また、従来技術では、ウェブコンテンツの映像と音声を別個の端末で再生したいというニーズ、例えば、映像はプロジェクタで再生し、音声はプロジェクタから独立したスピーカで再生したいといったニーズに応えられない。
端末の負荷を低減させる技術としては、シンクライアントと呼ばれる技術があるが(例えば、特許文献1等を参照)、シンクライアントの多くはインターネット環境を利用しない閉じた環境で利用される。インターネット環境を利用してウェブベースで様々なアプリケーションをクライアント端末で実行できるようにするシンクライアントもあるが、この場合は、上記と同様に、クライアント端末をウェブコンテンツのリッチ化に対応させるための負荷が高くなるという問題が生じる。
本発明は、上記に鑑みてなされたものであって、端末側の負荷を低減させつつ、リッチなウェブコンテンツをブラウジングできるようにするエンコーダ、映像処理サーバ、映像処理システム、エンコード方法およびそのプログラムを提供することを主な目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかるエンコーダは、コンテンツをレンダリングして出力画像を生成するブラウザを備えたサーバに組み込まれるエンコーダであって、前記ブラウザで生成された出力画像の第1先頭フレームまたは前記出力画像よりも時間的に前の出力画像に対する差分フレームを生成するフレーム生成部と、前記フレーム生成部が生成したフレームを出力するフレーム出力部と、前記ブラウザに更新が発生していない期間を計測するタイマと、を備え、前記フレーム生成部は、前記タイマによって計時された前記ブラウザに更新が発生していない期間が所定時間以上となった場合、第2先頭フレームを生成することを特徴とする。
また、本発明にかかる映像処理サーバは、1つ以上の端末にネットワークを介して接続された映像処理サーバであって、コンテンツをレンダリングして出力画像を生成するブラウザと、上記のエンコーダと、前記フレーム出力部が出力した前記フレームを前記1つ以上の端末に前記ネットワークを介して配信する配信部と、を備えることを特徴とする。
また、本発明にかかる映像処理システムは、ネットワークを介して1つ以上の端末とサーバとが接続された映像処理システムであって、前記サーバは、コンテンツをレンダリングして出力画像を生成するブラウザと、上記のエンコーダと、前記前記フレーム出力部が出力した前記フレームを前記1つ以上の端末に前記ネットワークを介して配信する配信部と、を備え、各端末は、前記フレームをデコードするデコーダと、前記デコーダでデコードされた画像を表示する表示部と、を備えることを特徴とする。
また、本発明にかかるエンコード方法は、コンテンツをレンダリングして出力画像を生成するブラウザを備えたクラウドサーバにおける配信画像のエンコード方法であって、前記ブラウザに更新が発生していない期間を計測し、前記ブラウザに更新が発生していない期間が所定時間未満である場合、前記ブラウザで生成された出力画像の第1先頭フレームまたは前記出力画像よりも時間的に前の出力画像に対する差分フレームを生成し、前記ブラウザに更新が発生していない期間が前記所定時間以上となった場合、第2先頭フレームを生成することを含むことを特徴とする。
また、本発明にかかるプログラムは、ブラウザを備えたクラウドサーバに組み込まれたコンピュータを機能させるためのプログラムであって、前記ブラウザに更新が発生していない期間を計測する計時処理と、前記ブラウザに更新が発生していない期間が所定時間未満である場合、前記ブラウザで生成された出力画像の第1先頭フレームまたは前記出力画像よりも時間的に前の出力画像に対する差分フレームを生成し、前記ブラウザに更新が発生していない期間が前記所定時間以上となった場合、第2先頭フレームを生成するフレーム生成処理と、を前記コンピュータに実行させる。
本発明によれば、端末側の負荷を低減させつつ、リッチなウェブコンテンツをブラウジングすることができるという効果を奏する。
図1は、映像音声処理システムの概要を説明する図である。 図2は、映像音声処理システムの構成例を示すシステム構成図である。 図3は、管理サーバの機能的な構成例を示すブロック図である。 図4は、エンジンサーバの機能的な構成例を示すブロック図である。 図5は、クライアント端末の機能的な構成例を示すブロック図である。 図6は、デバイスの機能的な構成例を示すブロック図である。 図7は、デバイスを起動するための端末起動処理の具体例を示すシーケンス図である。 図8は、クライアント端末を起動するための端末起動処理の具体例を示すシーケンス図である。 図9は、エンジン準備処理の具体例を示すシーケンス図である。 図10は、エンジン準備処理の具体例を示すシーケンス図である。 図11は、実行環境情報取得処理の具体例を示すシーケンス図である。 図12は、セッション確立処理の具体例を示すシーケンス図である。 図13は、映像受信・再生処理の具体例を示すシーケンス図である。 図14は、音声受信・再生処理の具体例を示すシーケンス図である。 図15は、操作イベント送信処理の具体例を示すシーケンス図である。 図16は、マルチキャストの具体例を示すシーケンス図である。 図17は、端末状態管理処理の具体例を示すシーケンス図である。 図18は、エンジンサーバ負荷判定処理の具体例を示すシーケンス図である。 図19は、ユーザセッション終了処理の具体例を示すシーケンス図である。 図20は、映像音声個別配信の概要を説明する概念図である。 図21は、再生遅延時間を説明する概念図である。 図22は、実施形態にかかるブラウザ出力画像と更新領域との一例を示す図である。 図23は、実施形態にかかる映像音声エンコーダの概略機能構成例を示すブロック図である。 図24は、実施形態にかかる映像音声エンコーダの動作例を示すフローチャートである。 図25は、最新のブラウザ出力画像がIフレーム生成用の画像である場合を説明するための模式図である。 図26は、最新のブラウザ出力画像がIフレーム生成用の画像の次のPフレーム生成用の画像である場合を説明するための模式図である。 図27は、最新のブラウザ出力画像がPフレーム生成用の画像のさらに次のPフレーム生成用の画像である場合を説明するための模式図である。 図28は、変形例にかかるブラウザ出力画像と更新領域との一例を示す図である。 図29は、スキップフレームを利用しない場合の映像配信の流れを示す概念図である。 図30は、実施形態にかかるスキップフレームを利用した場合の映像配信の流れを示す概念図である。 図31は、実施形態にかかるスキップフレームを利用する映像音声エンコーダの動作例を示すフローチャートである。 図32は、強制Iフレームを利用した場合の映像配信の流れを示す概念図である。 図33は、実施形態にかかる強制Iフレームを利用する映像音声エンコーダの動作例を示すフローチャートである。 図34は、実施形態にかかるスキップフレームおよび強制Iフレームを利用した場合の映像配信の流れを示す概念図である。 図35は、実施形態にかかるスキップフレームおよび強制Iフレームを利用する映像音声エンコーダの動作例を示すフローチャートである。
以下に添付図面を参照して、この発明に係るエンコーダ、映像処理サーバ、映像処理システム、エンコード方法およびそのプログラムの実施形態を詳細に説明する。以下で示す実施形態は、クラウドコンピューティングを利用した映像音声処理システムとしての適用例である。
<概要>
本実施形態の映像音声処理システムは、クラウド上にあるウェブブラウザ(以下、クラウドブラウザという。)によりウェブコンテンツをレンダリングし、その結果を映像および音声として端末に配信して、端末で再生させる。
本実施形態の映像音声処理システムでは、クラウドブラウザを最新化しておくことで、ローカルのウェブブラウザを最新化しなくても、最新のリッチなウェブコンテンツをブラウジングすることが可能となる。また、映像および音声を再生する負荷はさほど高くないため、マシンスペックが低くても、映像および音声の再生は可能である。以上のことから、クラウドブラウザによりウェブコンテンツをレンダリングし、その結果を映像および音声として配信する本実施形態の映像音声処理システムを利用すると、リッチなウェブコンテンツを低スペックの端末でブラウジングすることが可能になる。つまり、本実施形態の映像音声処理システムを利用すると、端末側の負荷を低減させつつ、リッチなウェブコンテンツをブラウジングすることができる。
さらに、本実施形態の映像音声処理システムでは、ブラウジングしているウェブコンテンツに対しての端末からの入力(マウスクリック、タップ、スクロールなど)がイベントとしてクラウドブラウザにリアルタイムに送信され、ウェブコンテンツに反映される。すなわち、本実施形態の映像音声処理システムによれば、映像および音声として端末に配信されているウェブコンテンツをインタラクティブに操作することが可能である。
また、本実施形態の映像音声処理システムは、ウェブコンテンツを映像および音声として配信する仕組みであるため、同一のウェブコンテンツを多拠点に同時に配信(マルチキャスト)することもでき、ブラウジングの内容を多拠点で共有することができる。
また、本実施形態の映像音声処理システムは、ウエブコンテンツの映像と音声とを、それぞれ別個の端末に配信し、別個の端末で同期をとりながらこれら映像と音声とを再生させることができる。
図1は、本実施形態の映像音声処理システムの概要を説明する図である。図1に示すように、この映像音声処理システムは、主に、クラウド側の管理サーバ100および映像音声処理エンジンサーバ(以下、エンジンサーバと略称する。)200と、クライアント側のクライアント端末300およびデバイス400と、を備える。
管理サーバ100は、映像音声処理システムのサービスを管理する装置である。エンジンサーバ200は、管理サーバ100による管理のもとで実際にウェブコンテンツをレンダリングし、映像および音声として配信する装置であり、クラウドブラウザと映像エンコーダおよび音声エンコーダとを備えている。エンジンサーバ200および管理サーバ100の少なくとも一方は本発明に係る「映像処理サーバ」に相当する。
クライアント端末300およびデバイス400は、映像音声処理システムのサービスを受けるユーザが使用する端末であり、映像音声処理システム専用のアプリケーションプログラムを内蔵している。以下、クライアント端末300が内蔵しているアプリケーションプログラムをクライアントアプリといい、デバイス400が内蔵しているアプリケーションプログラムをデバイスアプリという。また、クライアント端末300およびデバイス400を総称する場合は、端末500という。
図1を参照して、本実施形態の映像音声処理システムの動作概要を説明する。映像音声処理システムの動作は、映像音声処理システムのサービスを受けるユーザが、端末500を用いて管理サーバ100にログインすることで開始される(1)。ユーザがログインすると、管理サーバ100がエンジンサーバ200の選定およびクラウドブラウザの割当を行い、エンジンサーバ200に配信を指示する(2)。エンジンサーバ200は、指定されたウェブコンテンツをクラウドブラウザによりレンダリングして画像および音声を生成する(3)。そして、エンジンサーバ200は、クラウドブラウザにより生成された画像と音声をそれぞれ映像エンコーダおよび音声エンコーダによりエンコードして、圧縮映像および圧縮音声として端末500に配信する(4)。
さらに、ユーザが、端末500を用いて、映像として配信されているウェブコンテンツに対して操作(マウスクリック、タップ、スクロールなど)を行うと、その操作に応じた操作情報がエンジンサーバ200に送信される(5)。エンジンサーバ200は、端末500からの操作情報をクラウドブラウザの処理に反映させる。これにより、ウェブコンテンツをインタラクティブに操作することができる。
<システム構成>
次に、本実施形態の映像音声処理システムの具体的な構成例を説明する。図2は、映像音声処理システムの構成例を示すシステム構成図である。図2に示すように、映像音声処理システムは、例えば、管理サーバ100と、エンジンサーバ200と、端末500(クライアント端末300およびデバイス400)と、システムストレージサーバ600Aと、ユーザストレージサーバ600Bと、を備える。また、映像音声処理システムは、ネットワーク上の外部認証サービス10と接続されている。
管理サーバ100は、ユーザの認証および管理、端末500の管理、エンジンサーバ200の配信管理など、映像音声処理システム全体の管理を行う。また、管理サーバ100は、ユーザが利用するログイン画面や設定画面などを提供するウェブサイトを有する。また、管理サーバ100は、メール送信のためのSMTP(Simple Mail Transfer Protocol)サーバを搭載している。
管理サーバ100は、例えば、クラウドのサービス(IaaS:Infrastracture as a Service)上に展開される仮想マシンとして実現することができる。管理サーバ100は、不測の事態に対応して継続的なサービス提供を実現するために、多重化して運用することが望ましい。
エンジンサーバ200は、指定されたウェブサイトのコンテンツを映像および音声として端末500に配信する。エンジンサーバ200は、例えば、複数台のコンピュータを用いて構成され、利用状況に応じてスケールアウトできるようになっている。本実施形態においては、エンジンサーバ200は、画像処理用に拡張ボードを利用する構成であり仮想環境が利用できないため、物理マシンで構成する。
エンジンサーバ200がコンテンツを取得するウェブサイトは、連携サイト40と一般サイト50に分類される。連携サイト40は、映像音声処理システムと連携してサービスを提供するウェブサイトであり、事前に連携サイト40として登録されたウェブサイトである。連携サイト40は、映像音声処理システムのユーザや端末500に関する情報を利用することができる。また、連携サイト40は、例えばマルチキャスト等、映像音声処理システムの様々な機能を利用することができる。一般サイト50は、一般にインターネット上に存在するウェブサイトである。
クライアント端末300は、クライアントアプリがインストールされたPC(Personal Computer)、タブレット端末、モバイル端末などである。本実施形態では、映像音声処理システムのサービスを受けるユーザが専有して利用する端末を、クライアント端末300として想定している。
クライアントアプリは、所定のOS(Operation System)上で動作する映像音声処理システム専用のアプリケーションプログラムである。クライアントアプリは、エンジンサーバ200から配信された映像や音声の再生を行うとともに、フレームロス数などの品質情報をエンジンサーバ200に送信する。クライアントアプリは、クラウドブラウザを操作したり、設定画面を操作したりするための操作情報を送信する機能も有する。なお、クライアント端末300にカメラやマイクが搭載されている場合は、これらカメラやマイクで取得された映像や音声をエンジンサーバ200に送信することもできる。
デバイス400は、サービスに対応したプロジェクタ、カメラ、スピーカなどである。デバイス400には、デバイスアプリが組み込まれている。デバイス400は、その種類によって再生できるメディアが、映像および音声、映像のみ、音声のみ、と異なったものとなる。また、映像音声処理システムのサービスに対応していないデバイスであっても、デバイスアプリが格納されたドングルを接続することで、デバイス400として利用することもできる。
本実施形態の映像音声処理システムでは、映像を表示する複数のデバイス400を並べて使用することで、マルチプロジェクションを行うことができる。マルチプロジェクションとは、クラウドブラウザでレンダリングされたウェブコンテンツの映像を分割し、分割した映像を複数のデバイス400にそれぞれ送信して再生する配信方式である。マルチプロジェクションでは、複数のデバイス400を連携させることで、大画面表示を行うことができる。
デバイスアプリは、デバイス400に組み込まれている映像音声処理システム専用のアプリケーションプログラムである。デバイスアプリは、エンジンサーバ200から配信された映像や音声の再生を行うとともに、フレームロス数などの品質情報をエンジンサーバ200に送信する。デバイスアプリは、映像や音声の配信に関しては、クライアントアプリと同等の機能を持つが、以下の点がクライアントアプリと異なる。すなわち、デバイスアプリは、映像音声処理システムへの接続の際にクライアント証明書で認証を行う。また、デバイスアプリは、デバイス400に固有のデバイスIDを保持する。デバイスアプリは、ユーザのログインがなくても映像や音声の配信を受けることができる。
システムストレージサーバ600Aは、映像音声処理システムのサービスに必要なユーザ情報や、デバイス情報などの永続的なデータを保管する。また、システムストレージサーバ600Aは、端末500の状態(切断状態/待機状態/使用中)を表す状態情報や、エンジンサーバ200の負荷の状態を表す負荷情報、セッションで用いるユーザごとの情報(Cookie、ブラウザ設定情報、キャッシュ、閲覧履歴など)である実行環境情報など、映像音声処理システムの管理に用いられる各種情報を保存することができる。システムストレージサーバ600Aは、管理サーバ100と例えばTCP/IP(Transmission Control Protocol/Internet Protocol)により接続される。
ユーザストレージサーバ600Bは、ユーザのデータを保存する。例えば、映像音声処理システムでは、ユーザ操作に応じて端末500に配信される映像(および音声)をレコーディングすることができ、このレコーディング機能で録画(録音)された映像(音声)のデータをユーザストレージサーバ600Bに保存することができる。また、映像音声処理システムでは、ユーザ操作に応じてクラウドブラウザでファイルをダウンロードすることができ、このクラウドブラウザでダウンロードしたファイルなどを、ユーザストレージサーバ600Bに保存することができる。ユーザストレージサーバ600Bのストレージ領域は、ユーザごとに契約によって割り当てられる。ユーザストレージサーバ600Bは、管理サーバ100と例えばTCP/IPにより接続される。
システムストレージサーバ600Aおよびユーザストレージサーバ600Bは、管理サーバ100と同様に、クラウドのサービス上に展開される仮想マシンとして実現することができる。システムストレージサーバ600Aおよびユーザストレージサーバ600Bは、多重化して運用することが望ましい。
外部認証サービス10は、映像音声処理システムの外部のサービスを利用してユーザの認証を行う。本実施形態の映像音声処理システムでは、外部認証サービス10にウェブサービスとしてユーザの認証を依頼し、結果を受け取り、映像音声処理システムのサービスへの認証とする。
<機能的な構成の詳細>
次に、映像音声処理システムを実現するための管理サーバ100、エンジンサーバ200、および端末500(クライアント端末300およびデバイス400)における機能的な構成の詳細について説明する。
<管理サーバ>
まず、管理サーバ100の機能的な構成例について説明する。図3は、管理サーバ100の機能的な構成例を示すブロック図である。図3に示すように、管理サーバ100は、機能的な構成要素として、ウェブサービス101(本発明に係る「管理装置」の「送信部」としての機能を持つ)と、エンジン用ウェブインターフェース102(本発明に係る「管理装置」の「取得部」としての機能を持つ)と、SMTPサーバ103と、を備える。これらの構成要素は、例えば、管理サーバ100のハードウェアとして用いるコンピュータのOS上で実行されるプログラム(ソフトウェア)によって実現することができる。
ウェブサービス101は、連携サイト40から映像音声処理システムの機能を利用するためにウェブサービスによるインターフェースを提供する。また、ウェブサービス101は、セッションIDをもとに接続IDを発行する。
セッションIDは、アクセス中のユーザのセッション管理のためにウェブアプリケーションが付与する一意のIDである。映像音声処理システムのサービスでは、管理サーバ100で発行されたセッションIDを、映像音声処理システム内での接続IDとして利用する。接続IDは、端末500からの接続ごとに一意に振られるIDである。接続IDは、端末500、管理サーバ100、およびエンジンサーバ200で共有される。
ウェブサービス101は、ユーザ管理部111、デバイス管理部112、DBアクセサ113、メッセージ管理部114、エンジン制御部115(本発明に係る「管理装置」の「選択部」としての機能を持つ)、および端末状態管理部117を有する。
ユーザ管理部111は、ユーザ情報を管理する。ユーザ管理部111は、ログイン・ログアウトの管理、複数の外部認証サービス10の紐付け、ユーザ情報の変更(代表者設定など)、管理者によるユーザ管理などの管理機能を有する。また、ユーザ管理部111は、信頼関係管理部118およびユーザ認証部119を有する。
信頼関係管理部118は、ユーザ間の信頼関係を管理する。本実施形態の映像音声処理システムにおいては、ユーザは、基本的に自身が触れることのできる範囲の端末500に対してのみ映像や音声を配信できるが、他のユーザとの間で信頼関係を構築することで、物理的に離れた場所にある端末500に対しても映像や音声を配信することができる。信頼関係管理部118は、このユーザ間の信頼関係を管理するものであり、信頼関係表示、信頼関係構築依頼、信頼関係承認/拒否、および信頼関係解除の各機能を有する。
ユーザ認証部119は、外部認証サービス10を利用した認証機能を提供する。
デバイス管理部112は、デバイス400のプロパティ、ステータスの管理と、ユーザごとに利用できるデバイス400を管理する。デバイス管理部112は、デバイス400の登録・変更・削除、プロパティの更新(名称、国名コード、公開設定、機能設定(ケーパビリティ)、管理連絡先など)、ユーザごとの利用するデバイス400の登録・表示・更新・削除、定期通信によるデバイス400の生存管理などの管理機能を有する。
また、デバイス管理部112は、デバイス認証部120を有する。デバイス認証部120は、接続されたデバイス400が許可されたデバイス400であるか否かをチェックする。例えば、許可されたデバイス400には共通のクライアント証明書が与えられる。デバイス管理部112は、このクライアント証明書の有無により、許可されたデバイス400であるか否かを認証する。認証されたデバイス400には接続IDを発行する。この接続IDにより、セッションが管理される。また、マスタデータに登録されていないデバイス400である場合は、マスタデータへの登録を行う。登録されたデバイス400には、デバイス400ごとに一意のデバイスIDが与えられ、このデバイスIDがマスタデータに保存される。
DBアクセサ113は、システムストレージサーバ600Aのデータベースに対して、ユーザ情報およびデバイス情報の永続的なデータの入出力を行う。また、DBアクセサ113は、ユーザストレージサーバ600Bのデータベースに対して、ユーザのデータの入出力を行う。
メッセージ管理部114は、一般ユーザ向けのウェブサイトのUI(ユーザインターフェース)上に表示するメッセージや、ユーザへの通知を管理する。メッセージの種類としては、例えば、信頼関係構築依頼、デバイス削除、出力デバイス選択要求、SNS(Social Networking Service)、ユーザメールアドレスへの通知などがある。
エンジン制御部115は、エンジンサーバ200による映像および音声の配信を制御する。エンジン制御部115は、出力デバイス設定、配信情報の生成・更新、マルチプロジェクションの設定・パターン表示・補正データ受信、信頼関係者に対する出力デバイス要求、配信開始・終了、配信セッションの管理(どの端末500がどのエンジンサーバ200に接続されているかなど)、エンジンサーバ200の負荷分散判定、映像の品質判定などの機能を有する。
端末状態管理部117は、端末500からの定期通信(ポーリング)を受信するインターフェースを提供する。定期通信は、端末500の生存確認、および、映像および音声の配信元のエンジンサーバ200に関する情報の送信(初回のみ)の用途で利用される。
エンジン用ウェブインターフェース102は、エンジンサーバ200から管理サーバ100に対してのインターフェースとなるウェブサービスである。エンジン用ウェブインターフェース102は、クラウドブラウザの実行環境情報の保存や、端末500からアップロードされたセンサ情報の保存、エンジンサーバ200の負荷情報の更新などの用途で使用される。
エンジン用ウェブインターフェース102は、ブラウザ実行環境情報制御部121およびDBアクセサ122を有する。
ブラウザ実行環境情報制御部121は、クラウドブラウザの実行環境情報をシステムストレージサーバ600Aのデータベースに保存するためのインターフェースである。ブラウザ実行環境情報制御部121からDBアクセサ122を通じて、システムストレージサーバ600Aに対する実行環境情報の入出力が行われる。
DBアクセサ122は、システムストレージサーバ600Aのデータベースに対して、クラウドブラウザの実行環境情報の入出力を行う。
SMTPサーバ103は、ユーザに対して電子メールでメッセージを通知するために利用される。
<エンジンサーバ>
次に、エンジンサーバ200の機能的な構成例について説明する。図4は、エンジンサーバ200の機能的な構成例を示すブロック図である。図4に示すように、エンジンサーバ200は、機能的な構成要素として、対管理サーバウェブサービス201と、管理サーバ送信部202と、配信制御部203と、クラウドブラウザ204(本発明に係る「ブラウザ」に相当)と、クラウドブラウザ制御部205と、エンコーダブリッジ206と、ブラウザFIFO207と、コンテンツ取得部208と、送信映像音声処理部209と、受信映像音声処理部210と、映像エンコーダ211a(本発明に係る「エンコーダ」または「映像エンコーダ」に相当)と、音声エンコーダ211b(本発明に係る「エンコーダ」または「音声エンコーダ」に相当)と、映像音声デコーダ212と、デコーダブリッジ214と、独自転送プロトコル対応サーバ215(本発明に係る「配信部」としての機能を持つ)と、回線適応制御部(アップロード)216Aと、回線適応制御部(ダウンロード)216Bと、エンジン負荷状況報告部217と、を備える。なお、映像エンコーダ211aと音声エンコーダ211bを区別しない場合は、これらを総称して映像音声エンコーダ211と表記する。これらの構成要素は、例えば、エンジンサーバ200のハードウェアとして用いるコンピュータのOS上で実行されるプログラム(ソフトウェア)によって実現することができる。
対管理サーバウェブサービス201は、管理サーバ100からのリクエストを受け付ける。具体的には、対管理サーバウェブサービス201は、管理サーバ100から、配信情報(マルチキャスト・マルチプロジェクション先のデバイスまたはユーザ)のリクエストや、キャリブレーション用の校正パターン映像の配信指示のリクエスト、映像および音声の配信・停止指示のリクエストなどを受け付ける。マルチキャストとは、クラウドブラウザ204でレンダリングされたウェブコンテンツの映像および音声を複数の端末500に送信して再生する配信方式である。また、キャリブレーションとは、マルチプロジェクションによる映像の表示を最適化するための補正データを算出する処理である。
管理サーバ送信部202は、管理サーバ100に保存する必要がある情報を管理サーバ100に送信する。具体的には、管理サーバ送信部202は、キャリブレーションの結果や、クラウドブラウザ204のユーザ別情報(実行環境情報)の保存要求、ユーザ別の手書き情報の保存要求などを、管理サーバ100に送信する。
配信制御部203は、管理サーバ100からの指示に従って配信に関する処理を行う。具体的には、配信制御部203は、クラウドブラウザ204や映像音声エンコーダ211の起動・終了を指示したり、起動・終了時にエンコーダIDを採番したりする。エンコーダIDとは、配信制御部203が映像音声エンコーダ211のプロセスを管理するために採番するIDである。
クラウドブラウザ204は、エンジンサーバ200内で動作するウェブキットベースのウェブブラウザである。クラウドブラウザ204は、ウェブコンテンツ等のコンテンツをレンダリングすることにより、映像(すなわち画像)や音声といった出力情報を生成する。クラウドブラウザ204は、ウェブコンテンツのリッチ化に対応させて常に最新化されている。本実施形態の映像音声処理システムでは、エンジンサーバ200内に複数のクラウドブラウザ204を用意しており、これら複数のクラウドブラウザ204の中からユーザセッションに使用するクラウドブラウザ204が選択される。各クラウドブラウザ204は、Media Player221、Flash Player222、独自JavaScript(登録商標)223、およびHTML(HyperText Markup Language)レンダラ224を有する。
Media Player221は、映像(および音声)ファイルなどのマルチメディアファイルをクラウドブラウザ204内で再生するためのブラウザプラグインである。
Flash Player222は、Flashコンテンツをクラウドブラウザ204内で再生するためのブラウザプラグインである。
独自JavaScript223は、映像音声処理システムに固有のサービスのAPI(Application Programming Interface)を提供するJavaScript群である。
HTMLレンダラ224は、ウェブキットベースのHTMLレンダリングエンジンである。
クラウドブラウザ制御部205は、クラウドブラウザ204のプロセスの起動・停止を管理する。クラウドブラウザ制御部205は、クラウドブラウザ204が起動されるたびに、ブラウザIDを採番し、管理する。ブラウザIDとは、クラウドブラウザ制御部205がクラウドブラウザ204のプロセスを管理するために採番するIDである。
クラウドブラウザ制御部205は、センサ受信部225を有する。センサ受信部225は、クライアント端末300での操作イベントや、温度センサなどのセンサ情報を受け取り、適切なクラウドブラウザ204に渡す。
エンコーダブリッジ206は、クラウドブラウザ204が出力したRGBデータ(画像)、PCM(Pulse Code Modulation)データ(音声)を映像音声エンコーダ211に渡すモジュールである。エンコーダブリッジ206は、映像音声エンコーダ211がエンコードした結果を受け取り、独自転送プロトコル対応サーバ215に渡す機能も有する。
ブラウザFIFO207は、クラウドブラウザ204でレンダリングされたRGBデータ、PCMデータが格納されるバッファである。映像音声エンコーダ211は、このブラウザFIFO207に格納されたデータを用いて、配信する映像や音声のエンコードを行う。
コンテンツ取得部208は、インターネット上のコンテンツサイトからウェブコンテンツを取得する。クラウドブラウザ204は、たとえばこのコンテンツ取得部208によって取得されるウェブコンテンツをレンダリングすることにより映像(すなわち画像)や音声といった出力情報を生成する。
送信映像音声処理部209は、端末500に送信する映像や音声に対しての処理を行う。具体的には、送信映像音声処理部209は、例えば、マルチプロジェクション用の映像補正処理などを行う。マルチプロジェクション用の映像補正処理とは、マルチプロジェクション時のキャリブレーションにより算出された補正パラメータに従って、マルチプロジェクション用の映像の座標変換とブレンディング(オーバーラップ部分の映像の混合処理)などを行う処理である。送信映像音声処理部209は、拡張ボードで処理を行うことで高速化が実現される。
受信映像音声処理部210は、端末500から受信する映像や音声に対しての処理を行う。具体的には、受信映像音声処理部210は、例えば、サイネージ向けにカメラで撮影された映像から顔や年齢、性別などを認識する処理を行う。また、受信映像音声処理部210は、オフィス向けに、カメラで撮影された映像から顔認識による名前タグ付けや背景映像の差し替え処理などを行う。受信映像音声処理部210は、送信映像音声処理部209と同様、拡張ボードで処理を行うことで高速化が実現される。
映像エンコーダ211aは、クラウドブラウザ204で生成された画像を、拡張ボード内で、圧縮映像の1フレームにエンコードする。映像エンコーダ211aは、映像が動かなければ(フレーム間で変化がなければ)、以降、映像が動くまでスキップフレームを挿入することで帯域をセーブする。後述の回線適応制御部216A,216Bでは、端末500でフレーム遅延時間を集計して定期的にエンジンサーバ200に報告する。映像エンコーダ211aは、この時間が最小となるように、映像に対する解像度変換やスキップフレームの追加処理などを行う。
音声エンコーダ211bは、クラウドブラウザ204で生成された音声を、拡張ボード内で、圧縮音声の1フレームにエンコードする。なお、1つの音声フレームは、所定数のサンプルで構成され、音声が停止している間は無音サンプルを付加することで、連続したフレームとする。
映像音声デコーダ212は、端末500から送られてきた圧縮映像および圧縮音声を拡張ボード内でデコードする。
デコーダブリッジ214は、クラウドブラウザ204と映像音声エンコーダ211、独自転送プロトコル対応サーバ215間のデータの受け渡しを行う。デコーダブリッジは、クラウドブラウザ204が生成しブラウザFIFO207に格納したRGBデータを取り出し、エンコード結果を受け取り、独自転送プロトコル対応サーバ215に渡す。
独自転送プロトコル対応サーバ215は、HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)サーバを介して映像音声処理システム独自のプロトコルにより、後述の独自転送プロトコル対応クライアント(クライアントアプリおよびデバイスアプリのモジュール)へのデータ送信およびデータ受信を行う。独自転送プロトコルは、エンジンサーバ200と端末500との間でリアルタイムに途切れることなくデータを送受信するためのHTTPSベースのアプリケーション層プロトコルである。
独自転送プロトコル対応サーバ215は、送信レスポンス制御部231、RTP作成部232、クライアントコマンド送信部233、受信レスポンス制御部234、受信データ分析部235、およびジェスチャ変換部236を有する。
送信レスポンス制御部231は、後述の独自転送プロトコル対応クライアントからリクエストされたダウンロード用のHTTPSセッションを管理する。このダウンロード用のHTTPSセッションのレスポンスはすぐに終了せず、一定時間(1〜数分)保持する。独自転送プロトコル対応サーバ215は、独自転送プロトコル対応クライアントに送るデータを動的にレスポンスのBody部に書き込む。また、再接続のコストをなくすため、独自転送プロトコル対応クライアントからは前のセッションが終了しないうちに別のリクエストが届くようにする。独自転送プロトコル対応サーバ215を、前のリクエストが完了するまで待機させておくようにすることで、再接続が不要となる。
RTP作成部232は、映像音声エンコーダ211で生成された圧縮映像や圧縮音声のデータ(RTP(Real−time Transport Protocol)データ)に独自のヘッダを付与して、RTPパケットとして下り用のHTTPSのBody部に書き込む。
クライアントコマンド送信部233は、独自転送プロトコル対応クライアントに送るコマンドデータを生成し、下り用のHTTPSのBody部に書き込む。コマンドデータは、例えば、マルチプロジェクションのためのキャリブレーション時に利用するカメラの起動指示などである。
受信レスポンス制御部234は、独自転送プロトコル対応クライアントからリクエストされたアップロード用のHTTPSセッションを管理する。このアップロード用のHTTPSセッションのレスポンスはすぐに終了せず、一定時間(1〜数分)保持する。独自転送プロトコル対応クライアントは、独自転送プロトコル対応サーバ215に送るデータを動的にレスポンスのBody部に書き込む。
受信データ分析部235は、独自転送プロトコル対応クライアントから送られてきたデータを種別ごとに分割し、必要なプロセスにデータを渡す。
ジェスチャ変換部236は、ユーザからのジェスチャイベントをクラウドブラウザ204が受け取れるかたちに変換する。
回線適応制御部(アップロード)216Aは、端末500からアップロードされる映像データの受信状況から、映像音声エンコーダ211のパラメータや再生遅延時間を決定し、映像音声デコーダ212や端末500の映像音声エンコーダにパラメータの変更を伝える。
回線適応制御部(ダウンロード)216Bは、端末500で受信される映像データや音声データの受信状況から、映像音声エンコーダ211のパラメータや再生遅延時間を決定し、映像音声エンコーダ211や端末500の映像音声デコーダにパラメータの変更を伝える。
エンジンサーバ負荷状況報告部217は、エンジンサーバ200の負荷状態を計測し、得られた負荷状態を、管理サーバ送信部202を介して管理サーバ100に送信する。
<クライアント端末>
次に、クライアント端末300の機能的な構成例について説明する。クライアント端末300は、ユーザが映像音声処理システムへのログインや映像(および音声)の配信の開始・停止などを行うためのインターフェースとなる端末であり、デバイス400としての機能も内包する。
図5は、クライアント端末300の機能的構成の一例を示すブロック図である。図5に示すように、クライアント端末300は、機能的な構成要素として、クライアント共通モジュール510と、クライアントGUI(Graphic User Interface)311と、センサ送信部312と、映像音声デコーダ550と、映像音声エンコーダ560と、を備える。これらの構成要素は、例えば、クライアント端末300のハードウェアとして用いるPC、タブレット端末、モバイル端末などに、上述したクライアントアプリをインストールすることによって実現することができる。なお、クライアント端末300は、図5に示すように、ハードウェアとして、例えば、入力デバイス301、センサ302、ディスプレイ303、スピーカ304、カメラ305、およびマイク306を備えた構成とすることができる。
クライアント共通モジュール510は、クライアントアプリとデバイスアプリとで共有できるモジュール群である。クライアント共通モジュール510は、独自転送プロトコル対応クライアント520、回線適応制御部521、RTP作成部522、RTCP(Real−time Transport Control Protocol)作成部523、再生制御部524、デバイス設定制御部525、全体通信制御部526、クライアントコマンド受信部527、状態制御部528、定期通信部529、初期処理部530、および管理サーバ通信部531を有する。
独自転送プロトコル対応クライアント520は、エンジンサーバ200との間のデータの送受信を行うためのHTTPSセッションを管理する。
独自転送プロトコル対応クライアント520は、受信リクエスト制御部541、送信リクエスト制御部542、受信データ分析部543、および送信データ作成部544を有する。
受信リクエスト制御部541は、エンジンサーバ200に対してリクエストしたダウンロード用のHTTPSセッションを管理する。このダウンロード用のセッションのレスポンスは、すぐに終了せず、一定時間(1〜数分)保持する。エンジンサーバ200の独自転送プロトコル対応サーバ215は、上述したように、独自転送プロトコル対応クライアント520に送るデータを動的にレスポンスのBody部に書き込むため、独自転送プロトコル対応クライアント520は、レスポンスを受信しながらその都度、データに応じた処理を行う。
送信リクエスト制御部542は、エンジンサーバ200に対してリクエストしたアップロード用のHTTPSセッションを管理する。このアップロード用のリクエストはすぐに終了せず、一定時間(1〜数分)保持する。独自転送プロトコル対応クライアント520は、独自転送プロトコル対応サーバ215に送るデータを動的にリクエストのBody部に書き込む。
受信データ分析部543は、受信データを種類ごとに分類し、適切なモジュールにデータを受け渡す。
送信データ作成部544は、入力デバイス301の操作に応じた操作情報を生成する。
回線適応制御部521は、RTPパケットの受信状況をエンジンサーバ200に送信する。RTPパケットの受信状況の送信には、送信リクエスト制御部542のセッションを用いる。本実施形態の映像音声処理システムでは、独自転送プロトコル対応クライアント520の受信品質に応じて独自転送プロトコル対応クライアント520側でエンコードの品質が決定される。回線適応制御部521は、その品質を判断するソースとして、遅延時間を送信する。
RTP作成部522は、エンジンサーバ200の独自転送プロトコル対応サーバ215から送られてきたRTPデータを解析して映像音声デコーダ550に渡す。
RTCP作成部523は、独自転送プロトコル対応サーバ215から送られてきたRTCP SRパケットを解析し、それをもとにRTCP RRパケットを作成する。このRTCP RRパケットは、送信リクエスト制御部542から独自転送プロトコル対応サーバ215に送信される。
再生制御部524は、受信したRTPパケットをバッファリングし、再生遅延時間を考慮して映像音声デコーダ550に渡す。
デバイス設定制御部525は、端末500間の接続状況に応じて設定を制御する。クライアントアプリでは、デバイス設定制御部525により他のデバイス400に対して接続情報をUPnP(Universal Plug and Play)で送信する。デバイスアプリでは、デバイス設定制御部525によりUPnPを受け付けて、それに応じて自身の設定を書き換える。
全体通信制御部526は、独自転送プロトコル対応クライアント520を用いたエンジンサーバ200との通信を制御する。例えば、全体通信制御部526は、独自転送プロトコル対応クライアント520に対して、独自転送プロトコル対応サーバ215との間の時刻差を取得させる。また、全体通信制御部526は、独自転送プロトコル対応クライアント520に対して、独自転送プロトコル対応サーバ215との間での独自転送プロトコルによる送信処理や受信処理の開始を指示する。
クライアントコマンド受信部527は、エンジンサーバ200の独自転送プロトコル対応サーバ215から送られてきたクライアントコマンドを解釈し、適切なモジュールに渡す。
状態制御部528は、端末500の状態が変化したときに、状態変化を管理サーバ100に報告する。また、状態制御部528は、端末500のスリープ状態への移行と待機状態への復旧などを管理する。
定期通信部529は、管理サーバ100への定期的なポーリング通信を行って、端末500の生存を通知する。なお、初回のポーリングでは、デバイス400の承認要求を通知して、管理サーバ100への接続を認証する。また、端末500に対する配信がある場合には、ポーリング通信のレスポンスとして配信元のエンジンサーバ200の情報を取得することができる。端末500は、指定されたエンジンサーバ200に接続することで、映像(および音声)を受信することができるようになる。
初期処理部530は、端末500の起動時に、管理サーバ100のウェブサービス101に必要なデータを渡し、設定画面用の映像の受信を開始するなどの処理を行う。
管理サーバ通信部531は、管理サーバ100との間で通信を行う。例えば、管理サーバ通信部531は、初期処理部530により生成された初期処理要求を管理サーバ100に送信するために用いられる。また、管理サーバ通信部531は、定期通信部529が管理サーバ100との間で定期的なポーリング通信を行うために用いられる。
クライアントGUI311は、キャリブレーションカメラ制御部321および手書き制御部322を有する。
キャリブレーションカメラ制御部321は、エンジンサーバ200からのサーバコマンドによる指示に従い、キャリブレーション用にカメラ305の起動・停止を行う。また、キャリブレーションカメラ制御部321は、カメラ305で撮影されたキャリブレーション用の映像を、送信リクエスト制御部542よりエンジンサーバ200に送信する。
手書き制御部322は、手書きモードの切り替えと、手書きデータの送信を行う。手書きデータの送信は、送信リクエスト制御部542を使用する。
センサ送信部312は、端末500に搭載されている各種のセンサ302の情報をエンジンサーバ200に送信する。センサ情報の送信には、送信リクエスト制御部542を使用する。センサ送信部312で扱うセンサ情報には、入力デバイス301を用いて配信された映像に対し行われるユーザの操作(マウスクリック、タップなど)、カメラ305の映像、マイク306で収録された音声、温度センサ、バイタルセンサなどのセンサ302の情報が含まれる。
映像音声デコーダ550は、エンジンサーバ200から受信する圧縮映像(および圧縮音声)をデコードする。
映像音声エンコーダ560は、エンジンサーバ200に対して送信するためにカメラ305などでキャプチャしたメディアファイルを圧縮映像(および圧縮音声)にエンコードする。
<デバイス>
次に、デバイス400の機能的な構成例について説明する。デバイス400は、デバイスアプリが組み込まれたプロジェクタ、カメラ、スピーカなどである。また、上述したように、映像音声処理システムのサービスに対応していないデバイスであっても、デバイスアプリを格納したドングルをに接続することで、当該デバイスを、映像音声処理システムのサービスに対応したデバイス400として機能させることもできる。
図6は、デバイス400の機能的構成の一例を示すブロック図であり、図6(a)は、デバイス400の1つであるプロジェクタ400Aの構成例を示し、図6(b)は、デバイス400の1つであるスピーカユニット400Bの構成例を示し、図6(c)は、デバイス400の1つであるカメラユニット400Cの構成例を示している。なお、図6(a)のプロジェクタ400Aは、デバイスアプリが格納されたドングルが接続されたデバイス400であり、ハードウェアとして映像を投影する投影エンジン401を備える。また、図6(b)のスピーカユニット400Bは、ハードウェアとしてスピーカ402を備える。また、図6(c)のカメラユニット400Cは、ハードウェアとしてカメラ403およびマイク404を備える。
プロジェクタ400Aのデバイスアプリは、図6(a)に示すように、クライアント共通モジュール510と、エンジンサーバ200から配信された圧縮映像をデコードする映像音声デコーダ550とを含む。また、スピーカユニット400Bのデバイスアプリは、図6(b)に示すように、クライアント共通モジュール510と、エンジンサーバ200から配信された圧縮音声をデコードする映像音声デコーダ550とを含む。また、カメラユニット400Cのデバイスアプリは、図6(c)に示すように、クライアント共通モジュール510と映像音声エンコーダ560とを含む。これらの構成要素は、例えば、デバイス400に組み込まれた(あるいはドングルに格納された)デバイスアプリによって実現することができる。
<映像音声処理システムの主要な処理>
次に、本実施形態の映像音声処理システムの主要な処理について説明する。映像音声処理システムの処理は、主に、端末500を起動する端末起動処理と、エンジンサーバ200から配信される映像を端末500で受信して再生する映像受信・再生処理と、エンジンサーバ200から配信される音声を端末500で受信して再生する音声受信・再生処理と、端末500で映像として再生されたウェブコンテンツに対する操作に応じた操作情報をエンジンサーバ200に送信する操作イベント送信処理と、1つのクラウドブラウザ204でレンダリングされたウェブコンテンツの映像(および音声)を複数の端末500に同時に配信するマルチキャストと、回線の品質に応じてエンコーダパラメータ等の調整を行う回線適応制御処理と、1つのクラウドブラウザ204でレンダリングされたウェブコンテンツの映像(および音声)を分割して複数のプロジェクタ400Aを用いて再生するマルチプロジェクションと、端末500の状態を管理する端末状態管理処理と、エンジンサーバ200の負荷状態を判定するエンジンサーバ負荷判定処理と、ユーザセッション終了処理と、を含む。以下、各処理の詳細について説明する。
<端末起動処理(デバイス)>
まず、デバイス400を起動するための端末起動処理について説明する。図7は、デバイス400を起動するための端末起動処理の具体例を示すシーケンス図である。
まず、ユーザがデバイス400に対して起動の操作を行うと、デバイス400の初期処理部530が、管理サーバ通信部531を介して管理サーバ100に対して初期処理要求(リクエスト)を送信する。初期処理要求には、端末タイプやデバイスIDなどの情報が付与される。また、管理サーバ100に対するアクセスの際には、クライアント証明書による認証を行うものとする。なお、端末タイプは、クライアントアプリとデバイスアプリとを区別するためのコードであり、プログラム間の呼び出しの引数で使用される。
管理サーバ100では、デバイス400からの初期処理要求に応じて、まず、ウェブサービス101が接続IDを発行する。次に、ウェブサービス101は、デバイス管理部112に対して、デバイスIDを指定してデバイス400の登録を指示する。
デバイス管理部112は、DBアクセサ113を介してシステムストレージサーバ600Aにアクセスし、指定されたデバイスIDで示されるデバイス400がマスタデータに存在するか否かを確認する。ここで、指定されたデバイスIDで示されるデバイス400がマスタデータに存在しない場合は、デバイス管理部112は、デバイス400をマスタデータに新規に登録(新規保存)する処理を行う。
次に、ウェブサービス101は、定期通信の間隔などの初期パラメータの取得を行った後、エンジンサーバ準備処理を行う。なお、エンジンサーバ準備処理の詳細は後述する。
エンジンサーバ準備処理が終わると、初期処理要求に対する応答(レスポンス)として、管理サーバ100のウェブサービス101からデバイス400に対して、接続ID、配信ID、エンジンサーバURL、および初期パラメータが送られる(「送信部」に相当)。エンジンサーバURLは、後述のエンジンサーバ準備処理によりエンジン制御部115によって選択されたエンジンサーバ200に、端末500がアクセスするための情報である。配信IDは、配信が行われるたびに管理サーバ100により発行される一意のIDである。発行された配信IDは、端末500、管理サーバ100、およびエンジンサーバ200で共有される。
デバイス400では、管理サーバ100から接続ID、配信ID、エンジンサーバURL、および初期パラメータを取得すると、初期パラメータでコマンドの受信を開始するために、独自転送プロトコル対応クライアント520がセッション確立処理を行い、端末起動処理が終了する。なお、セッション確立処理の詳細は後述する。
<端末起動処理(クライアント端末)>
次に、クライアント端末300を起動するための端末起動処理について説明する。図8は、クライアント端末300を起動するための端末起動処理の具体例を示すシーケンス図である。
まず、ユーザがクライアント端末300に対して起動の操作を行うと、クライアント端末300の初期処理部530が、管理サーバ通信部531を介して、管理サーバ100に対して初期処理要求を送信する。初期処理要求には、端末タイプやサービスIDなどの情報が付与される。サービスIDは、映像音声処理システム内でサービスを提供する場合のサービスID、もしくは連携サイトでサービスを提供する場合の連携サービスIDである。
管理サーバ100では、クライアント端末300からの初期処理要求に応じて、まず、ウェブサービス101が接続IDを発行する。次に、ウェブサービス101は、定期通信の間隔などの初期パラメータの取得を行った後、エンジンサーバ準備処理を行う。なお、エンジンサーバ準備処理の詳細は後述する。
エンジンサーバ準備処理が終わると、初期処理要求に対する応答として、管理サーバ100のウェブサービス101からからクライアント端末300に対して、接続ID、配信ID、エンジンサーバURL、および初期パラメータが送られる(「送信部」に相当)。
クライアント端末300では、管理サーバ100から接続ID、配信ID、エンジンサーバURL、および初期パラメータを取得すると、初期パラメータでログイン画面の映像の受信を開始するために、独自転送プロトコル対応クライアント520がセッション確立処理を行い、端末起動処理が終了する。なお、セッション確立処理の詳細は後述する。
<エンジン準備処理(デバイス)>
次に、図7に示した端末起動処理(デバイス)において実施されるエンジン準備処理について説明する。このエンジン準備処理では、デバイス400が起動時に配信を受けるために、管理サーバ100が、エンジンサーバ200に対して新規接続の開始を指示する。エンジンサーバ200は、デバイス400からの受信リクエストに備える。図9は、このエンジン準備処理の具体例を示すシーケンス図である。
まず、管理サーバ100のウェブサービス101が、エンジン制御部115に対して端末タイプ、デバイスID、および接続IDを渡して、エンジンサーバ200の準備を指示する。エンジン制御部115は、この指示に従って、エンジンサーバ200の負荷情報などをもとに、配信に使用するエンジンサーバ200を決定し、エンジンサーバIDを発行する(「選択部」に相当)。エンジンサーバIDは、配信に使用するエンジンサーバ200を一意に特定するためのIDである。
次に、エンジン制御部115は、配信情報の作成を行う。具体的には、エンジン制御部は、配信IDを発行し、これを接続IDやエンジンサーバIDなどと紐づけて管理する。また、配信IDは、ウェブサービス101に渡される。
エンジン制御部115は、配信情報の作成を行った後、エンジンサーバ200に対して準備要求を送信し、配信ID、接続ID、および端末タイプを渡す。
エンジンサーバ200では、管理サーバ100からの準備要求を対管理サーバウェブサービス201が受け取って、配信制御部203に対して準備を指示する。配信制御部203は、配信ID、接続ID、端末タイプを保持して、デバイス400からの受信リクエストに備える。
<エンジン準備処理(クライアント端末)>
次に、図8に示した端末起動処理(クライアント端末)において実施されるエンジン準備処理について説明する。このエンジン準備処理では、クライアント端末300が起動時に配信を受けるために、管理サーバ100が、エンジンサーバ200に対して新規配信の開始を指示する。エンジンサーバ200は、クラウドブラウザ204、映像音声エンコーダ211、独自転送プロトコル対応サーバ215等を起動し、クライアント端末300からの受信リクエストに備える。図10は、このエンジン準備処理の具体例を示すシーケンス図である。
まず、管理サーバ100のウェブサービス101が、エンジン制御部115に対して端末タイプ、接続ID、およびログインURLを渡して、エンジンサーバ200の準備を指示する。エンジン制御部115は、この指示に従って、エンジンサーバ200の負荷情報などをもとに、配信に使用するエンジンサーバ200を決定し、エンジンサーバIDを発行する(「選択部」に相当)。
次に、エンジン制御部115は、配信情報の作成を行う。具体的には、エンジン制御部115は、配信IDを発行し、これを接続IDやエンジンサーバIDなどと紐づけて管理する。また、配信IDは、ウェブサービス101に渡される。
エンジン制御部115は、配信情報の作成を行った後、エンジンサーバ200に対して準備要求を送信し、配信ID、接続ID、および端末タイプを渡す。
エンジンサーバ200では、管理サーバ100からの準備要求を対管理サーバウェブサービス201が受け取って、配信制御部203に対して準備を指示する。配信制御部203は、配信ID、接続ID、端末タイプを保持する。
また、配信制御部203は、ブラウザFIFO207を作成し、接続IDおよびブラウザFIFO207を渡してエンコーダブリッジ206を起動する。エンコーダブリッジ206は、映像音声エンコーダ211を起動する。そして、配信制御部203は、起動した映像音声エンコーダ211のエンコーダID(エンコーダブリッジ206のPID)を保持する。エンコーダIDは、配信制御部203が映像音声エンコーダ211のプロセスを管理するために採番されるIDである。
次に、配信制御部203は、実行環境情報取得処理を行って、管理サーバ100から実行環境情報を取得する。なお、実行環境情報取得処理の詳細は後述する。
次に、配信制御部203は、ブラウザIDを渡してクラウドブラウザ制御部205を起動する。クラウドブラウザ制御部205は、クラウドブラウザ204を起動する。そして、配信制御部203は、起動したクラウドブラウザ204のブラウザIDを保持して、クライアント端末300からの受信リクエストに備える。ブラウザIDは、クラウドブラウザ制御部がクラウドブラウザ204のプロセスを管理するために採番されるIDである。
<実行環境情報取得処理>
次に、図10に示したエンジン準備処理において実施される実行環境情報取得処理について説明する。クラウドブラウザ204は、エンジンサーバ200上で実行されるため、ユーザごとの情報(Cookie、ブラウザ設定情報、キャッシュ、閲覧履歴など)を保持することができない。そこで、それらの情報を管理サーバ100に保存しておき、クラウドブラウザ204の起動時に取得して設定できるようにしている。図11は、実行環境情報取得処理の具体例を示すシーケンス図である。
まず、エンジンサーバ200の配信制御部203が、エンジンサーバIDの確認を行う。そして、現在のエンジンサーバ200が、ユーザが前回使用したエンジンサーバ200ではない場合は、配信制御部203は、管理サーバ送信部202を介して、管理サーバ100に対して実行環境情報取得の要求を行う。
管理サーバ100では、エンジンサーバ200からの要求をエンジン用ウェブインターフェース102が受け取って、ブラウザ実行環境情報制御部121に実行環境情報の取得を指示する。
ブラウザ実行環境情報制御部121は、DBアクセサ122を介してシステムストレージサーバ600Aにアクセスし、システムストレージサーバ600Aから、ユーザが前回使用したエンジンサーバ200に関する実行環境情報を取得する。ブラウザ実行環境情報制御部121が取得した実行環境情報は、エンジン用ウェブインターフェース102を介してエンジンサーバ200に送られる。エンジンサーバ200の配信制御部203は、取得した実行環境情報を保存する。
その後、配信制御部203は、エンジンサーバ200上のユーザデータフォルダ250(図4参照)からユーザIDを指定して実行環境情報を取得する。なお、ユーザIDは映像音声処理システムのサービスを受けるユーザに付与される一意のIDである。ユーザIDは、例えば外部認証サービス10でユーザの認証を行う場合、最初にユーザが外部認証サービス10で認証を受けて管理サーバ100にログインした際に割り当てられる。ユーザIDは、端末500、管理サーバ100、およびエンジンサーバ200で共有される。
<セッション確立処理>
次に、図7および図8に示した端末起動処理において実施されるセッション確立処理について説明する。端末500は、初期処理が完了した後、指示されたエンジンサーバ200との間でセッション確立処理を行い、独自転送プロトコルによる接続(独自転送プロトコルによる受信・送信)を開始する。また、端末500は、すでにエンジンサーバ200と接続している場合においても、接続先が変わる場合にはセッション確立処理を行って、エンジンサーバ200との再接続を行う。図12は、セッション確立処理の具体例を示すシーケンス図である。
まず、端末500の初期処理部530が、再生制御部524に対して初期化処理を要求する。再生制御部524は、この要求に応じて、新たに映像音声デコーダ550を起動する。このとき、再生制御部524は、すでに起動している映像音声デコーダ550があれば先にその映像音声デコーダ550を終了させた後に、新たに映像音声デコーダ550を起動する。
次に、初期処理部530は、全体通信制御部526に対して、エンジンサーバURLと配信IDを指定して、セッション確立処理を指示する。
全体通信制御部526は、この指示に従って、まず、独自転送プロトコル対応クライアント520に対して時刻差異の取得要求を出す。独自転送プロトコル対応クライアント520は、この要求に応じて、エンジンサーバ200の独自転送プロトコル対応サーバ215との間で時刻合わせ処理を行い、独自転送プロトコル対応サーバ215との間の時刻差を全体通信制御部526に返す。全体通信制御部526は、独自転送プロトコル対応クライアント520から取得した時刻差の設定(時刻差異設定)を再生制御部524に指示する。なお、独自転送プロトコル対応クライアント520と独自転送プロトコル対応サーバ215との間の時刻合わせ処理の詳細は後述する。
次に、全体通信制御部526は、独自転送プロトコル対応クライアント520に送信処理の開始を指示する。これにより、独自転送プロトコル対応クライアント520とエンジンサーバ200の独自転送プロトコル対応サーバ215との間で、独自転送プロトコルによる送信処理が行われる。また、全体通信制御部526は、独自転送プロトコル対応クライアント520に受信処理の開始を指示する。これにより、独自転送プロトコル対応クライアント520とエンジンサーバ200の独自転送プロトコル対応サーバ215との間で、独自転送プロトコルによる受信処理が行われる。なお、独自転送プロトコルによる送信処理および受信処理の詳細は後述する。
<時刻合わせ処理>
次に、図12に示したセッション確立処理において実施される時刻合わせ処理について説明する。
時刻合わせ処理では、まず、端末500の独自転送プロトコル対応クライアント520が、管理サーバ100から指定されたエンジンサーバ200(エンジンサーバURLによりアクセスできるエンジンサーバ200)に対して時刻差異の取得要求を送信する。このとき、独自転送プロトコル対応クライアント520は、例えば、時刻合わせの通信であることを示す情報の入ったHTTPリクエストのヘッダのみを送り(Body部は送らない)、セッションを確立させる。そして、独自転送プロトコル対応クライアント520は、セッションが確立したのを確認した後、HTTPリクエストのBody部に独自転送プロトコル対応クライアント520上の時刻t1を記述する。
エンジンサーバ200の独自転送プロトコル対応サーバ215では、受信レスポンス制御部234が、HTTPリクエストのヘッダを参照して時刻合わせの通信であることを確認し、HTTPリクエストのBody部の到着を待つ。そして、受信レスポンス制御部234は、HTTPリクエストのBody部が64ビット長分受信できたときの独自転送プロトコル対応サーバ215上の時刻T1を取得する。
次に、受信レスポンス制御部234は、レスポンスを作成する。具体的には、受信レスポンス制御部234は、レスポンスのヘッダを送信した後、レスポンスのBody部に、そのときの独自転送プロトコル対応サーバ215上の時刻T2を記述する。
独自転送プロトコル対応クライアント520は、レスポンスのBody部の到着を待ち、64ビット長分受信できたときの独自転送プロトコル対応クライアント520上の時刻t2を取得する。そして、独自転送プロトコル対応クライアント520は、下記式(1)により、時刻の差異θを求める。
θ=(T1+T2)/2−(t1+t2)/2 ・・・(1)
独自転送プロトコル対応クライアント520は、初期パラメータで定められた規定回数だけ、独自転送プロトコル対応サーバ215との間で上記の処理を繰り返し、規定回数分のθの平均値を、独自転送プロトコル対応サーバ215との間の時刻差とする。なお、時刻はすべて、例えば64ビットのUTC(Coordinated Universal
Time)タイムスタンプとする。
<独自転送プロトコルによる受信処理>
次に、独自転送プロトコルによる受信処理について説明する。独自転送プロトコルによる受信処理では、例えば、HTTPSベースの独自転送プロトコルにより、独自転送プロトコル対応サーバ215から独自転送プロトコル対応クライアント520に対して、映像(および音声)のデータやコマンドのデータをリアルタイムに送信する(「配信部」に相当)。つまり、映像(および音声)のRTPデータだけでなく、端末500に送信するコマンド(配信開始、配信先切り替えやキャリブレーション用のカメラ起動のコマンドなど)についても、独自転送プロトコルによる受信処理で独自転送プロトコル対応クライアント520に送信する。
独自転送プロトコルによる受信処理では、1つのリクエストに対して1つのパケットを処理するのではなく、独自転送プロトコル対応サーバ215側でレスポンスを切らずに一定時間(初期パラメータにより設定)持続させ、その間にリクエストのBody部に動的にデータの書き込みを行う。これにより、1つのパケットごとにリクエストを発行する場合に懸念される遅延の発生を有効に抑制することができる。
リクエストは、一定時間が経過すると切断され、新たなリクエストに切り替えられる。ただし、リクエストの切り替え時に、セッションを完全に切断してから新しいセッションを確立すると、データ受信の連続性が失われる。そのため、受信中のセッションが切れる前に新しいセッションを確立することとする。この方法を採用することにより、HTTPSのセッションが切れた場合にも一定時間経過すると新しいセッションが確立されるため、再接続できるようになる。
<独自転送プロトコルによる送信処理>
次に、独自転送プロトコルによる送信処理について説明する。独自転送プロトコルによる送信処理では、例えば、HTTPSベースの独自転送プロトコルにより、独自転送プロトコル対応クライアント520から独自転送プロトコル対応サーバ215に対して、端末500での映像(および音声)のデータ受信状況、入力デバイス301の操作に応じた操作情報、温度センサなどのセンサ302が検知したセンサ情報、カメラ305,403で撮影した画像データなどをリアルタイムに送信する。
独自転送プロトコルによる送信処理では、独自転送プロトコルによる受信処理と同様に、セッションを持続させてデータを送信する。独自転送プロトコルによる送信処理が受信処理と異なるところは、リクエストのヘッダを送信し、接続が確立した後にリクエストのBody部を終了せずに、動的にデータを書き込むことである。
<映像受信・再生処理>
次に、映像受信・再生処理について説明する。映像受信・再生処理では、エンジンサーバ200が、クラウドブラウザ204が出力するブラウザ画像を映像エンコーダ211aで即時に圧縮映像の1フレームにエンコード(圧縮)し、RTPパケットを生成して、端末500に配信する。端末500は、エンジンサーバ200から配信されるRTPパケットを受信してデコード(伸張)し、ディスプレイ303や投影エンジン401で映像を再生する。図13は、映像受信・再生処理の具体例を示すシーケンス図である。
まず、エンジンサーバ200のクラウドブラウザ204からブラウザFIFO207へのブラウザ画像の書き出しが行われる。このブラウザ画像の書き出しは、クラウドブラウザ204で画像の更新があるたびに繰り返し行われる。
次に、エンコーダブリッジ206が、ブラウザFIFO207からのブラウザ画像の読み込みを行い、映像エンコーダ211aに対して、読み込んだブラウザ画像のエンコードを指示する。このとき、エンコーダブリッジ206は、ブラウザFIFO207にブラウザ画像がない場合は、映像エンコーダ211aに対して、スキップフレームを返すように要求する。
映像エンコーダ211aは、ブラウザ画像を圧縮映像の1フレームとしてエンコード(圧縮)して、得られたRTPデータをエンコーダブリッジ206に返す。なお、マルチプロジェクションを行う場合は、映像エンコーダ211aは、1つのブラウザ画像を複数の映像に分割する映像分割処理を行った後、送信映像音声処理部209を用いて映像補正処理を行い、複数のRTPデータを作成してエンコーダブリッジ206に返す。
次に、エンコーダブリッジ206は、独自転送プロトコル対応サーバ215に対して、RTP送信を指示する。これにより、独自転送プロトコル対応サーバ215と端末500の独自転送プロトコル対応クライアント520との間で独自転送プロトコルによる受信処理が行われ、エンジンサーバ200のクラウドブラウザ204でレンダリングされたウェブコンテンツの画像が圧縮映像として端末500にリアルタイムに送信される。独自転送プロトコルによる受信処理を行った端末500の独自転送プロトコル対応クライアント520は、再生制御部524に対して、独自転送プロトコル対応サーバ215から受信したRTPデータを渡して再生処理を指示する。
次に、再生制御部524は、回線適応制御部521に対する受信状況の報告を行い、回線適応の判定に用いる遅延時間情報を渡す。そして、再生制御部524は、再生時間調整を行う。再生時間調整とは、適切な再生遅延時間を設定することで映像や音声を再生する時間を調整する処理である。再生遅延時間は、端末500で再生までにバッファリングする時間を定める基準となる時間であり、端末500が使用する回線の品質等に応じた時間差を吸収するために設定される。再生制御部524は、この設定された再生遅延時間に基づいて、RTPパケットのヘッダに書き込まれたタイムスタンプに対して、どれだけ遅延して(バッファして)再生するかを決定する。
次に、再生制御部524は、映像音声デコーダ550に対してRTPデータを渡してデコードを指示する。映像音声デコーダ550は、この指示に従って、RTPデータをデコードし、ディスプレイ303や投影エンジン401に映像を再生させる。ブラウザ画像の読み込みから映像再生までの処理は、クラウドブラウザ204からブラウザFIFO207へのブラウザ画像の書き出しがあるたびに繰り返し行われる。
<音声受信・再生処理>
次に、音声受信・再生処理について説明する。音声受信・再生処理では、エンジンサーバ200が、クラウドブラウザ204から出力される音声データを音声エンコーダ211bで圧縮音声の1フレームに即時にエンコードし、RTPパケットを生成して端末500に配信する。端末500は、エンジンサーバ200から配信されるRTPパケットを受信してデコードし、スピーカ304,402で音声を再生する。図14は、音声受信・再生処理の具体例を示すシーケンス図である。
まず、エンジンサーバ200のクラウドブラウザ204からブラウザFIFO207への音声出力が行われる。この音声出力は、音声フレーム単位で繰り返し行われる。1つの音声フレームは、例えば1024サンプルで構成されるものとする。音声が途中で停止した場合は、1024サンプルに満たない場合でも無音サンプルを付加することで1024サンプルの音声フレームを出力するものとする。
次に、エンコーダブリッジ206が、ブラウザFIFO207からの音声の読み込みを行い、音声エンコーダ211bに対して、読み込んだ音声のエンコードを指示する。音声エンコーダ211bは、音声をエンコードしてRTPデータを生成し、エンコーダブリッジ206に返す。
次に、エンコーダブリッジ206は、独自転送プロトコル対応サーバ215に対して、RTP送信を指示する。これにより、独自転送プロトコル対応サーバ215と端末500の独自転送プロトコル対応クライアント520との間で独自転送プロトコルによる受信処理が行われ、エンジンサーバ200のクラウドブラウザ204でレンダリングされたウェブコンテンツの音声が圧縮音声として端末500にリアルタイムに送信される。独自転送プロトコルによる受信処理を行った端末500の独自転送プロトコル対応クライアント520は、再生制御部524に対して独自転送プロトコル対応サーバ215から受信したRTPデータを渡して再生処理を指示する。
次に、再生制御部524は、回線適応制御部521に対する受信状況の報告を行い、回線適応の判定に用いる遅延時間情報を渡す。そして、再生制御部524は、再生時間調整を行う。
次に、再生制御部524は、映像音声デコーダ550に対してRTPデータを渡してデコードを指示する。映像音声デコーダ550は、再生制御部の指示に従って、RTPデータをデコードし、スピーカ304,402に音声を再生させる。音声の読み込みから再生までの処理は、音声フレームの出力があるたびに繰り返し行われる。
<操作イベント送信処理>
次に、操作イベント送信処理について説明する。ユーザは、端末500に表示されているウェブコンテンツの映像を、例えば、クライアント端末300の入力デバイス301などを用いて通常のブラウザのように操作することができる。操作イベント送信処理では、ユーザの操作に応じたデータを直ちにエンジンサーバ200に送信し、クラウドブラウザ204に渡して操作のエミュレートを行う。なお、入力デバイス301を用いた操作のうちジェスチャ操作は、クライアントの環境ごとに操作情報が異なるため、エンジンサーバ200のジェスチャ変換部236でクラウドブラウザ204用の操作イベントに変換して、クラウドブラウザ204に渡すこととする。図15は、操作イベント送信処理の具体例を示すシーケンス図である。
まず、ユーザがクライアント端末300の入力デバイス301を操作すると、入力デバイス301からセンサ送信部312を介して送信データ作成部544に操作情報が渡される。送信データ作成部544は、この情報をもとにエンジンサーバ200に送信する操作情報を生成し、ユーザIDと操作情報とを独自転送プロトコル対応クライアント520に渡して、操作情報の送信を指示する。これにより、独自転送プロトコル対応クライアント520とエンジンサーバ200の独自転送プロトコル対応サーバ215との間で独自転送プロトコルによる送信処理が行われ、クライアント端末300の入力デバイス301の操作に応じた操作情報が、ユーザIDとともにエンジンサーバ200に送信される。
エンジンサーバ200の独自転送プロトコル対応サーバ215は、ユーザIDと操作情報を受信すると、これを操作イベントとしてジェスチャ変換部236を介してクラウドブラウザ制御部205に渡す。クラウドブラウザ制御部205は、ユーザIDと紐付けられている配信情報を配信制御部203から取得してクラウドブラウザ204を特定し、そのクラウドブラウザ204に操作イベントを渡す。クラウドブラウザ204は、操作イベントの内容をもとにユーザの操作をエミュレートする。
<マルチキャスト>
次に、マルチキャストについて説明する。マルチキャストは、クラウドブラウザ204でレンダリングされたウェブコンテンツの映像(および音声)を複数の端末500に送信して再生する配信方式である。マルチキャストを行うことにより、ユーザが端末500でブラウジングしているクラウドブラウザ204の映像(および音声)を、自身が管理する他の端末500または他のユーザが使用する端末500に対して配信することができる。図16は、マルチキャストの具体例を示すシーケンス図である。この図16では、映像の配信を指示するユーザ(以下、配信元ユーザという。)が、他のユーザ(以下、配信先ユーザという。)の端末500に映像を配信する例を示している。
まず、配信元ユーザが端末500を用いて配信設定を行うと、管理サーバ100のウェブサービス101がこの設定を受け付ける。そして、ウェブサービス101は、DBアクセサ113を介してシステムストレージサーバ600Aにアクセスし、配信元ユーザのユーザIDをキーとして、配信元ユーザが配信先として設定している配信先ユーザまたはデバイス400の一覧をシステムストレージサーバ600Aから取得する。
また、配信元ユーザが端末500を用いて配信先の追加を指示すると、管理サーバ100のウェブサービス101がこの指示を受け付ける。そして、ウェブサービス101は、DBアクセサ113を介してシステムストレージサーバ600Aにアクセスし、指示された配信先を追加して配信情報の更新を行う。
次に、配信元ユーザが端末500を用いて配信開始を指示すると、管理サーバ100のウェブサービス101がこの指示を受け付ける。そして、ウェブサービス101は、エンジン制御部115に配信開始を指示する。エンジン制御部115は、配信先ユーザが利用しているエンジンサーバ200を特定し、特定したエンジンサーバ200に対して、配信元ユーザが利用しているエンジンサーバ200のエンジンサーバURLおよび配信IDを指定して、配信開始要求を送信する。
配信先ユーザが利用しているエンジンサーバ200では、対管理サーバウェブサービス201が、管理サーバ100のエンジン制御部115からの要求に従って、配信先ユーザが使用する端末500に対して、配信元ユーザが利用しているエンジンサーバ200のエンジンサーバURLおよび配信IDを指定して、配信開始要求を送信する。
配信先ユーザが使用する端末500では、独自転送プロトコル対応クライアント520が配信開始要求を受け付ける。このとき、配信先ユーザが使用する端末500がクライアント端末300である場合は、配信元ユーザに対して配信開始確認を行い、配信可能か不可能かの応答を取得する。
配信先ユーザが使用する端末500が配信可能の端末500である場合は、配信元ユーザが利用しているエンジンサーバ200のクラウドブラウザ204でレンダリングされ、映像音声エンコーダ211でエンコードされた圧縮映像が、独自転送プロトコルによる受信処理により、独自転送プロトコル対応サーバ215から配信先ユーザが使用する端末500の独自転送プロトコル対応クライアント520に送信される。そして、配信先ユーザが使用する端末500において、圧縮映像がデコードされて映像が再生される。管理サーバ100のエンジン制御部115が配信開始の指示を受けた後の処理は、すべての配信先ユーザまたは配信先となる端末500の数だけ繰り返される。
その後、既に開始している配信に対して配信先を追加する場合は、配信元ユーザが、端末500を用いた操作により、管理サーバ100に対して配信先に追加したいユーザまたは端末500を指定して配信開始を指示する。管理サーバ100では、ウェブサービス101がこの配信開始の指示を受け付けて、エンジン制御部115に渡す。以降、配信先を指定せずに配信開始した場合と同様の処理が行われる。
<回線適応制御処理>
次に、回線適応制御処理について説明する。独自転送プロトコルによる受信処理を行っている際に、端末500においてRTPデータの受信状況が悪化すると、映像をスムーズに再生できない懸念がある。その場合は、上述した再生遅延時間を延ばしたり、エンジンサーバ200の映像音声エンコーダ211が映像データをエンコードする際のビットレートを落としたりすることで、スムーズな再生を可能にする。このため、端末500での映像データの受信状況を一定間隔(初期パラメータで設定)ごとにエンジンサーバ200に伝え、回線適応制御処理により適切なエンコードパラメータや再生遅延時間の調整を行う。
エンコードパラメータは、ビットレート、フレームレートなどの各パラメータを個別に変更するのではなく、それらを複数のセットにしてランク付けする。それを品質判定テーブルとして、端末500がRTPデータの受信に利用する回線の品質にあわせて、ランクを選択する。
また、独自転送プロトコルによる送信処理においても、受信処理と同様に、回線の品質に応じてエンコーダパラメータを調整し、リアルタイム性が損なわれないようにすることが望まれる。そこで、エンジンサーバ200側で端末500から送られてくるデータの受信状況を取得し、回線の品質に応じた適切なビットレート、フレームレートを算出して、エンコーダパラメータを調整する。
なお、回線の品質判定により得られたエンコードパラメータや再生遅延時間が現在のものと異なるとき、品質判定の結果に変化があるたびにエンコードパラメータや再生遅延時間を変更していると、評価対象の値が閾値付近にある場合に再生品質が目まぐるしく変化してしまい、スムーズな再生の妨げとなる。そこで、回線の品質が上がる場合と下がる場合とで異なる閾値を持つことで、これを回避することが望ましい。
<マルチプロジェクション>
本実施形態の映像音声処理システムでは、複数のプロジェクタ400Aを用いてマルチプロジェクションを行うことができる。マルチプロジェクションを行う際は、映像を表示するプロジェクタ400Aごとに専用の映像音声エンコーダ211を起動して、それぞれ個別の映像を配信する。マルチプロジェクションを行う前には、キャリブレーションを実施して、使用するプロジェクタ400Aの配置等に応じた映像の歪みを画像処理によって補正する。補正に用いる補正データは、例えば、映像の配信前に特定の校正パターンをプロジェクタ400Aで表示させてそれをカメラユニット400Cで撮影し、その画像をエンジンサーバ200で分析することで算出される。
マルチプロジェクションにより映像を結合して再生させるためには、映像再生のタイミングを複数のプロジェクタ400Aの間で同期させる必要がある。同期の方法としては、例えば以下の方法が考えられる。まず、RTPパケットのヘッダにエンジンサーバ200でブラウザ画像のサンプリングを開始した時刻(サンプリング時刻)をタイムスタンプとして設定する。そして、複数のプロジェクタ400Aの間で、タイムスタンプからの再生遅延時間を同じにする。各プロジェクタ400Aは、そのタイムスタンプと内部クロック、および再生遅延時間に基づいて再生時間を決める。タイムスタンプは、エンジンサーバ200の内部クロックを基準とするが、その基準時間と、各プロジェクタ400Aの内部クロックはずれていることが考えられる。そこで、プロジェクタ400Aごとに、エンジンサーバ200との間の時刻差を求めておき、再生時間の補正に使用する。
<端末状態管理処理>
次に、端末状態管理処理について説明する。端末状態管理処理では、端末500が定期的に管理サーバ100へ自身の状態(切断、待機中、使用中などのステータス)をポーリングすることで、端末500の状態を管理する。端末500は、起動直後から一定時間(ポーリング間隔)ごとに自身の状態の通知を行い、状態が変化したときは、ポーリング間隔を無視して直ちに状態変更通知を行う。図17は、端末状態管理処理の具体例を示すシーケンス図である。
端末500の状態が変化すると、状態制御部528が、定期通信部529に状態変更通知を指示する。定期通信部529は、次回の定期通信時までに端末500の状態に変更がない場合は同じ状態を送り続けることになるため、端末500の現在の状態を保持する。そして、定期通信部529は、管理サーバ通信部531を介して、管理サーバ100のウェブサービス101に対してデバイスIDと端末500の状態を送る。
ウェブサービス101は、端末500から受信したデバイスIDと端末500の状態を端末状態管理部117に渡して、端末500の状態の更新を要求する。端末状態管理部117は、この要求に応じて、DBアクセサ113を介してシステムストレージサーバ600Aにアクセスし、ウェブサービス101から受け取ったデバイスIDをキーとして、システムストレージサーバ600Aが保持する端末500の状態を更新する。端末500の定期通信部529が端末500の状態を保持した後の処理は、ポーリング間隔ごとに繰り返し行われる。
上記の処理とは別に、端末状態管理部117は、切断状態ではない端末500の定期通信を監視し、定期通信が一定時間(初期パラメータで設定)が行われていない端末500を検知して、システムストレージサーバ600Aが保持する端末500の状態を切断状態に更新するとともに、その端末500に対する配信の終了を指示する。端末500に対する配信の終了は、ユーザセッション終了処理により行われる。
<エンジンサーバ負荷判定処理>
次に、エンジンサーバ負荷判定処理について説明する。エンジンサーバ負荷判定処理では、エンジンサーバ200の負荷状態を管理サーバ100に定期的に通知する。管理サーバ100のエンジン制御部115は、上述したエンジン準備処理において、エンジンサーバ200から通知された負荷状態をもとに、負荷の低いエンジンサーバ200の選定を行う。図18は、エンジンサーバ負荷判定処理の具体例を示すシーケンス図である。
まず、エンジンサーバ200のエンジン負荷状況報告部217が、エンジンサーバ200の負荷状態を計測し、得られた負荷状態を、管理サーバ送信部202を介して管理サーバ100に送信する。エンジンサーバ200の負荷状態としては、例えば、前回の負荷状態の送信時からの平均CPU負荷率、平均メモリ使用率、平均ネットワーク帯域負荷率、および端末接続数などが挙げられる。
管理サーバ100のエンジン用ウェブインターフェース102は、エンジンサーバ200から負荷状態を受け取ると、エンジン制御部115に対して、エンジンサーバIDと負荷状態を渡し、システムストレージサーバ600Aに保存されている負荷情報の更新を指示する(「取得部」に相当)。
エンジン制御部115は、DBアクセサ113を介してシステムストレージサーバ600Aにアクセスし、エンジンサーバIDで特定されるエンジンサーバ200の負荷情報を、エンジンサーバ200で計測された負荷状態をもとに更新する。以上の処理は、初期パラメータで設定される一定時間ごとに繰り返し行われる。
エンジン制御部115は、エンジンサーバ200の負荷情報をもとに、例えば以下の手順に従って、使用するエンジンサーバ200の選定を行う。まず、平均メモリ使用率が初期パラメータで定められる一定量(例えば85%)以上のエンジンサーバ200を除外する。次に、平均ネットワーク帯域負荷率が初期パラメータで定められる一定量(例えば85%)以上のエンジンサーバ200を除外する。そして、残ったエンジンサーバ200のうち、平均CPU負荷率が初期パラメータで定められる一定量(例えば90%)以下で最も低いものを、配信に使用するエンジンサーバ200に選定する。なお、上記の条件を満たすエンジンサーバ200が存在しない場合には、ユーザに対して映像音声処理システムが混み合っている旨のメッセージを通知するようにしてもよい。
<ユーザセッション終了処理>
次に、ユーザセッション終了処理について説明する。ユーザセッション終了処理は、端末500が切断された場合に、管理サーバ100が、端末500の切断を検知してエンジンサーバ200による映像(および音声)の配信を停止させる処理である。図19は、ユーザセッション終了処理の具体例を示すシーケンス図である。
まず、端末状態管理処理により端末500の切断が検知されると、管理サーバ100の端末状態管理部117がエンジン制御部115に対して、配信終了を指示する。端末500の切断は、端末500から切断の状態更新が送信される、あるいは定期通信が一定時間行われていないことにより検知される。
エンジン制御部115は、ユーザIDまたはデバイスIDに基づいて配信情報を取得し、配信を行っているエンジンサーバ200を特定する。そして、エンジン制御部115は、配信を行っているエンジンサーバ200に対して配信終了を指示する。この際、エンジン制御部115からエンジンサーバ200に対して配信IDが渡される。
エンジンサーバ200では、対管理サーバウェブサービス201が、管理サーバ100のエンジン制御部115からの配信終了の指示を受け取って配信制御部203に渡す。配信制御部203は、配信終了の指示を受け取ると、配信IDに基づいて配信情報を特定し、配信情報に基づいて停止する各プロセスを特定する。
そして、配信制御部203は、独自転送プロトコル対応サーバ215を停止する。次に、配信制御部203は、エンコーダブリッジ206を停止する。エンコーダブリッジ206は、映像音声エンコーダ211を停止する。
次に、配信制御部203は、クラウドブラウザ制御部205にブラウザ停止の指示を送る。クラウドブラウザ制御部205は、この指示に従って、クラウドブラウザ204とブラウザFIFO207を停止する。そして、配信制御部203は、自身の持つ配信情報を削除する。
<映像音声個別配信>
本実施形態の映像音声処理システムでは、上述したように、エンジンサーバ200のクラウドブラウザ204でレンダリングされたウェブコンテンツの映像と音声を、それぞれ別個の端末500に配信し、別個の端末で同期をとりながらこれら映像と音声とを再生させることができる。以下、ハードウェアとして投影エンジン401を備えるプロジェクタ400A(「第1端末」に相当)でウェブコンテンツの映像を再生し、ハードウェアとしてスピーカ402を備えるスピーカユニット400B(「第2端末」に相当)で音声を再生する例を挙げて、この処理の概要を説明する。
図20は、ウェブコンテンツの映像をプロジェクタ400Aで再生し、音声をスピーカユニット400Bで再生する場合の映像音声個別配信の概要を説明する概念図である。映像音声個別配信を行う場合、まず、ユーザがクライアント端末300を操作して、映像の配信先と音声の配信先とを指定する(1)。また、ユーザは、映像の配信先となるプロジェクタ400Aと、音声の配信先となるスピーカユニット400Bとをそれぞれ起動する。この操作により、プロジェクタ400Aおよびスピーカユニット400Bのそれぞれで上述した端末起動処理が行われ、管理サーバ100からプロジェクタ400Aとスピーカユニット400Bの双方に対して、共通のエンジンサーバURLが通知される(2)。
プロジェクタ400Aとスピーカユニット400Bは、それぞれ、管理サーバ100から通知されたエンジンサーバURLにアクセスし、上述したセッション確立処理を行う。これにより、エンジンサーバ100の独自転送プロトコル対応サーバ215とプロジェクタ400Aの独自転送プロトコル対応クライアント520、エンジンサーバ100の独自転送プロトコル対応サーバ215とスピーカユニット400Bの独自転送プロトコル対応クライアント520との間で、それぞれ、独自転送プロトコルによる受信処理が開始される。また、上述したセッション確立処理(時刻合わせ処理)により得られたエンジンサーバ100との時刻差が、プロジェクタ400Aの再生制御部524と、スピーカユニット400Bの再生制御部524とにそれぞれ設定される。
プロジェクタ400Aの独自転送プロトコル対応クライアント520は、独自転送プロトコルによる受信処理が開始されると、映像の配信要求であることを示す情報を入れたHTTPSリクエストのヘッダを、エンジンサーバ200の独自転送プロトコル対応サーバ215に送る(3)。エンジンサーバ200の独自転送プロトコル対応サーバ215は、このHTTPSリクエストのヘッダに基づいて映像の配信要求であることを認識し、映像エンコーダ211aによりエンコードされた圧縮映像のRTPパケットを、レスポンスのBody部に書き込んでプロジェクタ400Aに送信する(4)。このとき、独自転送プロトコル対応サーバ215は、RTPパケットのヘッダに、当該RTPパケットに含まれるRTPデータ(ブラウザ画像)のサンプリング時刻をタイムスタンプ(時刻情報)として書き込む。なお、ブラウザ画像のサンプリング時刻は、例えば、クラウドブラウザ204がブラウザ画像の最初の走査線の描画を開始する時刻である。
また、スピーカユニット400Bの独自転送プロトコル対応クライアント520は、独自転送プロトコルによる受信処理が開始されると、音声の配信要求であることを示す情報を入れたHTTPSリクエストのヘッダを、エンジンサーバ200の独自転送プロトコル対応サーバ215に送る(3)。エンジンサーバ200の独自転送プロトコル対応サーバ215は、このHTTPSリクエストのヘッダに基づいて音声の配信要求であることを認識し、音声エンコーダ211bによりエンコードされた圧縮音声のRTPパケットを、レスポンスのBody部に書き込んでスピーカユニット400Bに送信する(4)。このとき、独自転送プロトコル対応サーバ215は、RTPパケットのヘッダに、当該RTPパケットに含まれるRTPデータ(音声)のサンプリング時刻をタイムスタンプ(時刻情報)として書き込む。なお、音声のサンプリング時刻は、例えば、クラウドブラウザ204が1フレーム分の音声データの最初のサンプルをキャプチャした時刻である。
同一のウェブコンテンツの映像と音声をプロジェクタ400Aとスピーカユニット400Bとで個別に再生させる場合、同じタイミングでサンプリングされた映像(ブラウザ画像)と音声を、プロジェクタ400Aとスピーカユニット400Bとで同期させながら再生する必要がある。このような再生同期は、プロジェクタ400Aの再生制御部524とスピーカユニット400Bの再生制御部52とが、それぞれ、共通の再生遅延時間に基づいてRTPデータのバッファリング時間を調整し、同じタイミングでサンプリングされた映像(ブラウザ画像)と音声について、プロジェクタ400Aの投影エンジン401が映像の再生を開始する再生開始時刻と、スピーカユニット400Bのスピーカ402が音声の再生を開始する再生開始時刻を合わせることで実現することができる。
図21は、再生遅延時間を説明する概念図であり、(a)は映像(ブラウザ画像)のサンプリングから再生開始までに要する時間、(b)は音声のサンプリングから再生開始までに要する時間をそれぞれ示している。
映像は、エンジンサーバ200でのサンプル取得とエンコードに要する時間がA1、エンジンサーバ200からプロジェクタ400Aへの伝送時間がB1、プロジェクタ400Aでデコードに要する時間がD1であるとする。一方、音声は、エンジンサーバ200でのサンプル取得とエンコードに要する時間がA2、エンジンサーバ200からスピーカユニット400Bへの伝送時間がB2、スピーカユニット400Bでデコードに要する時間がD2であるとする。
図21の例では、A1とB1とD1を足し合わせた時間が、A2とB2とD2を足し合わせた時間よりも長くなっており、プロジェクタ400Aとスピーカユニット400Bが、受信したRTPデータをすぐにデコードして再生すると、映像と音声の同期がとれなくなる。そこで、エンジンサーバ200が、映像や音声を送信する回線の品質などに応じて、サンプリング時刻から再生開始時刻までの時間である再生遅延時間を決定する。そして、プロジェクタ400Aの再生制御部524と、スピーカユニット400Bの再生制御部524は、エンジンサーバ200が決定した共通の再生遅延時間に基づいて、バッファリング時間C1,C2を調整し、同じ時刻にサンプリングされた映像(ブラウザ画像)と音声の再生開始時刻を合わせることで、映像と音声の再生を同期させる。図21の例では、音声のRTPデータをバッファリングするバッファリング時間C2を、映像のRTPデータをバッファリングするバッファリング時間C1よりも長くすることで、映像と音声の再生を同期させる。
再生遅延時間は、エンジンサーバ200が上述した回線適応制御処理を行うことで決定され、プロジェクタ400Aとスピーカユニット400Bとに通知される。そして、プロジェクタ400Aの再生制御部524と、スピーカユニット400Bの再生制御部524とに、同じ再生遅延時間が設定される。プロジェクタ400Aの再生制御部524と、スピーカユニット400Bの再生制御部524は、それぞれ、独自転送プロトコル対応クライアント520が受信したRTPパケットのヘッダに書き込まれたサンプリング時刻と、時刻合わせ処理により得られたエンジンサーバ200との間の時刻差と、上述した再生遅延時間とに基づいてバッファリング時間C1,C2を決定する。これにより、同じ時刻にサンプリングされた映像(ブラウザ画像)と音声の再生が同じ時刻に開始されることになり、同一のウェブコンテンツの映像と音声とを同期させながら再生することができる。
<矩形検出によるフレーム差分軽量化方式>
つぎに、本実施形態にかかる映像音声エンコーダ211の動作について、図面を用いて詳細に説明する。
映像音声処理システムでは、エンジンサーバ200の映像音声エンコーダ211(図4参照)が、クラウドブラウザ204の出力画像を静止画(以下、ブラウザ出力画像という)として取り出し、取り出したブラウザ出力画像を映像の1フレームとして圧縮する。このようにして生成された圧縮映像は、1枚のフレーム内で完結している先頭フレーム(以下、Iフレームという)と、時間的に前のフレームとの差分を記録する差分フレーム(以下、Pフレームという)との複数のフレームが時系列に沿って配列したデータ構造を有する。ここで、Pフレームは、前フレームとの差分について記述されたものであるため、静止画全体が記述されたものであるIフレームよりもデータ量が小さい。そのため、エンコードに要するデータ処理量や時間、および、映像配信時のトラフィックを削減することができる。
クラウドブラウザ204は、現在のブラウザ出力画像のうち、直前のブラウザ出力画像から変更となった領域(以下、更新領域という)を検知することができる。たとえばクラウドブラウザ204は、表示するウェブコンテンツにおける変更部分を特定してその部分をレンダリングし、これにより得られた部分的な画像で元のブラウザ出力画像を更新することで、つぎに表示するブラウザ出力画像を生成する。その際、クラウドブラウザ204は、レンダリングに使用した座標を用いることで、前のブラウザ出力画像から更新された更新領域を特定することができる。
映像音声エンコーダ211は、クラウドブラウザ204から更新領域に関する情報(以下、ブラウザ更新情報という)を取得し、この更新領域の部分について差分を検出してPフレームを生成する。
図22は、本実施形態にかかるブラウザ出力画像と更新領域との一例を示す図である。図22に示すように、クラウドブラウザ204は、ウェブコンテンツ等をレンダリングすることで生成したブラウザ出力画像のうち、レンダリングに使用した座標を用いることで、前のブラウザ出力画像に対する更新領域R11を特定し、この更新領域R11を特定するためのブラウザ更新情報を生成する。更新領域R11は、たとえばレンダリングに使用された座標のうち、最小のX座標(Xmin)および最大のX座標(Xmax)と、最小のY座標(Ymin)および最大のY座標(Ymax)とで規定される矩形状の領域であってもよい。その場合、ブラウザ更新情報には、たとえば基準座標(たとえば更新領域R11の左上の座標(Xmin,Ymin))と、縦横のサイズ(Xmax−Xmin,Ymax−Ymin)との情報が含まれる。ただし、これに限定されず、ブラウザ出力画像中の更新領域R11を特定し得る情報であれば如何様にも変形することができる。
図23は、本実施形態にかかる映像音声エンコーダの概略機能構成例を示すブロック図である。図23に示すように、映像音声エンコーダ211は、更新領域特定部2111と、フレーム生成部2112と、フレーム出力部2113とを備える。
映像音声エンコーダ211は、クラウドブラウザ204がレンダリング等で生成したブラウザ出力画像を取得する。その際、ブラウザ出力画像にブラウザ更新情報が付加されている場合には、このブラウザ更新情報も合わせて取得する。ブラウザ出力画像がPフレーム生成用の画像である場合、ブラウザ出力画像には、ブラウザ更新情報が付加されている。一方、ブラウザ出力画像がIフレーム生成用の画像である場合、ブラウザ出力画像には、ブラウザ更新情報が付加されていなくともよいし、ブラウザ出力画像がIフレーム生成用の画像であることを示す情報、全領域が更新領域R11であることを示す情報などを含むブラウザ更新情報が付加されていてもよい。
更新領域特定部2111は、クラウドブラウザ204からブラウザ更新情報を取得し、これに基づいてブラウザ出力画像の更新領域R11を特定する。ただし、ブラウザ出力画像にブラウザ更新情報が付加されていない場合、または、Iフレーム生成用の画像であることを示す情報もしくは全領域が更新領域R11であることを示す情報を含むブラウザ更新情報を取得した場合、更新領域特定部2111は、ブラウザ出力画像をIフレーム生成用の画像として特定する。
フレーム生成部2112は、ブラウザ出力画像がIフレーム生成用の画像である場合、最新のブラウザ出力画像のIフレームを生成する。一方、ブラウザ出力画像がPフレーム生成用の画像である場合、フレーム生成部2112は、ブラウザ更新情報に基づき、時間的に前のブラウザ出力画像と最新のブラウザ出力画像とから更新領域R11についての差分を検出してPフレームを生成する。生成されたIフレームまたはPフレームは、フレーム出力部2113から独自転送プロトコル対応サーバ215へ出力され、独自転送プロトコル対応サーバ215から端末500へ配信される。
つぎに、映像音声エンコーダ211の動作を、図面を用いて詳細に説明する。図24は、本実施形態にかかる映像音声エンコーダの動作例を示すフローチャートである。図24に示すように、映像音声エンコーダ211は、たとえば毎秒30フレームの更新サイクルであるとすると、その1つの更新サイクル(1/30秒)が経過したか否かを判定し(ステップS101)、1つの更新サイクルが経過した場合(ステップS101;YES)、クラウドブラウザ204から最新のブラウザ出力画像を取得する(ステップS102)。その際、映像音声エンコーダ211は、ブラウザ出力画像にブラウザ更新情報が付加されていれば、そのブラウザ更新情報も取得する。
つぎに、映像音声エンコーダ211は、ブラウザ更新情報の有無またはブラウザ更新情報に含まれる情報に基づいて、最新のブラウザ出力画像がIフレーム生成用の画像であるか否かを判定する(ステップS103)。Iフレーム生成用の画像である場合(ステップS103;YES)、映像音声エンコーダ211は、最新のブラウザ出力画像全体をスキャンして(ステップS104)、Iフレームを生成し(ステップS105)、生成したIフレームを独自転送プロトコル対応サーバ215へ出力して(ステップS106)、ステップS112へ進む。
一方、ブラウザ出力画像がIフレーム生成用の画像ではない場合(ステップS102;NO)、映像音声エンコーダ211は、ブラウザ更新情報から最新のブラウザ出力画像における更新領域を特定し(ステップS107)、特定した更新領域をスキャンして(ステップS108)、直前のブラウザ出力画像との差分を検出し(ステップS109)、検出した差分に基づいてPフレームを生成する(ステップS110)。つぎに、映像音声エンコーダ211は、生成したPフレームを独自転送プロトコル対応サーバ215へ出力して(ステップS111)、ステップS112へ進む。
ステップS112では、映像音声エンコーダ211は、本動作を終了するか否かを判定し、終了する場合(ステップS112;YES)、本動作を終了し、終了しない場合(ステップS112;NO)、ステップS101へリターンして以降の動作を実行する。
つぎに、図25〜図27を用いて、図24に示した動作を具体的に説明する。図25は、最新のブラウザ出力画像がIフレーム生成用の画像である場合を説明するための模式図であり、図26は、最新のブラウザ出力画像がIフレーム生成用の画像の次のPフレーム生成用の画像である場合を説明するための模式図であり、図27は、最新のブラウザ出力画像がPフレーム生成用の画像のさらに次のPフレーム生成用の画像である場合を説明するための模式図である。なお、ここでは、説明の明確化のため、図25に示すブラウザ出力画像を先頭(1番目)のブラウザ出力画像とし、図26に示すブラウザ出力画像を2番目のブラウザ出力画像とし、図27に示すブラウザ出力画像を3番目以降のブラウザ出力画像とする。
図25に示すように、最新のブラウザ出力画像が先頭のブラウザ出力画像である場合、映像音声エンコーダ211は、ブラウザ出力画像全体をスキャンして(S11)、Iフレームを生成し(S12)、生成したIフレームを独自転送プロトコル対応サーバ215へ出力する(S13)。
また、図26に示すように、最新のブラウザ出力画像が先頭から2番目のブラウザ出力画像であってPフレーム生成用の画像である場合、映像音声エンコーダ211は、ブラウザ出力画像におけるブラウザ更新情報で特定される更新領域R11をスキャンして(S21)、更新領域R11における先頭のブラウザ出力画像との差分を検出する(S22)。また、映像音声エンコーダ211は、検出した差分に基づいて、更新領域R11のPフレームを生成し(S23)、生成したPフレームを独自転送プロトコル対応サーバ215へ出力する(24)。
また、図27に示すように、最新のブラウザ出力画像が先頭から3番目以降のブラウザ出力画像であってPフレーム生成用の画像である場合、映像音声エンコーダ211は、ブラウザ出力画像におけるブラウザ更新情報で特定される更新領域R11をスキャンして(S31)、更新領域R11における時間的に前のブラウザ出力画像との差分を検出する(S32)。また、映像音声エンコーダ211は、検出した差分に基づいて、更新領域R11のPフレームを生成し(S33)、生成したPフレームを独自転送プロトコル対応サーバ215へ出力する(34)。
以上のように動作することで、ブラウザ出力画像に更新がある場合に、画像の全領域では無く、更新が含まれる領域を処理対象とすることが可能となるため、映像音声エンコーダ211にかかる負荷を軽減することができる。また、更新領域のPフレームは、ブラウザ出力画像全体のPフレームに比べてデータ量が小さいため、ネットワークへ送信するデータ量を削減することも可能となる。その結果、端末500側の負荷を低減させつつ、リッチなウェブコンテンツをブラウジングさせることが可能となる。
<矩形検出によるフレーム差分軽量化方式の変形例>
また、上記では、レンダリングに使用した座標を用い、その最小のX座標(Xmin)および最大のX座標(Xmax)と、最小のY座標(Ymin)および最大のY座標(Ymax)とで規定される矩形状の領域を更新領域R11としたが、本実施形態はこれに限定されない。たとえば、クラウドブラウザ204の表示領域をメッシュ状に分割して管理し、その区画(以下、メッシュという)単位で更新の有無を特定してもよい。
図28は、本変形例にかかるブラウザ出力画像と更新領域との一例を示す図である。図28に示すように、クラウドブラウザ204は、表示領域を2次元配列する複数のメッシュM11に分割して管理する。なお、図28において、表示領域とブラウザ出力画像とは、同じサイズである。
クラウドブラウザ204は、更新領域R11を少なくとも一部に含む1つ以上のメッシュM11を特定し、このメッシュ単位で更新領域R21を特定する。メッシュ単位での更新領域R21の特定は、たとえばウェブコンテンツ等のレンダリングに使用した座標と、各メッシュM11の座標領域とから、レンダリングに使用した座標を含むメッシュM11を特定し、特定されたメッシュM11をまとめて更新領域R21として特定するなどの処理が考えられる。ただし、これに限定されず、更新領域R11を包含する更新領域R21を特定し得る方法であれば如何様にも変形することができる。
なお、本変形例にかかる映像音声エンコーダおよびその動作は、たとえば図23に示す映像音声エンコーダ211および図24に示す動作と同様であるため、ここでは詳細な説明を省略する。
<スキップフレーム>
また、通常の映像エンコードでは、たとえば表示の更新サイクルを30fpsとすると、毎秒30フレーム分のエンコード処理が必要となる。しかしながら、ブラウザの更新がない期間は、クラウドブラウザ204は同じ静止画を表示し続けている。その場合、エンコード処理を省略することができる。そこで本実施形態では、クラウドブラウザ204のブラウザ更新情報を参照し、一定期間ブラウザの更新がなければ、クラウドブラウザ204が静止画を表示していると判断して、エンコード処理を省略するとともに、Pフレームの代わりに更新情報のないPフレーム(以下、スキップフレームという)を端末500へ配信する。
図29は、スキップフレームを利用しない場合の映像配信の流れを示す概念図である。図30は、スキップフレームを利用した場合の映像配信の流れを示す概念図である。なお、図29および図30では、説明の都合上、先頭フレームをIフレームとする。
図29に示すように、スキップフレームを利用しない通常の映像配信では、映像音声エンコーダ211は、最初にIフレームF1を生成して送信後、次のIフレームを生成するまで、PフレームF2を生成して送信する。その際、期間Tnの間、ユーザによるタッチイベントなどに起因したクラウドブラウザ204の更新がなかったとすると、その期間Tn、映像音声エンコーダ211は、実質的に更新情報を含まないPフレームF2aを生成して送信することとなる。ただし、この期間Tn中も、映像音声エンコーダ211は、PフレームF2aを生成するエンコード処理を実行することとなる。
一方、図30に示すように、スキップフレームを利用した場合の本実施形態にかかる映像配信では、クラウドブラウザ204の更新のない期間Tnが開始されてから所定時間Tw経過後、クラウドブラウザ204の更新が発生するタイミングt1まで、映像音声エンコーダ211は、エンコード処理を実行せずに、代わりにスキップフレームF2sを生成して送信する。このスキップフレームF2sは、更新情報を含まない定型のデータ構造でよいため、映像音声エンコーダ211にかかる負荷を低減することができるとともに、短いデータ構造とすることが可能であるため、端末500へ配信するデータ量を最小限に抑えることができる。
つぎに、スキップフレームを利用する映像音声エンコーダ211の動作について、図面を用いて詳細に説明する。図31は、スキップフレームを利用する映像音声エンコーダの動作例を示すフローチャートである。なお、図31において、図24と同様の動作については、それを引用することで、詳細な説明を省略する。
図31に示すように、映像音声エンコーダ211は、起動後、まず、不図示のタイマによる計時を開始する(ステップS201)。つぎに、図24のステップS101〜S103と同様の動作により、更新サイクルごとにブラウザ出力画像(およびブラウザ更新情報)を取得し、これがIフレーム生成用の画像であるか否かを判定する。なお、更新サイクルの計時には、ステップS201で開始したタイマとは別の不図示のタイマが用いられてもよい。
ブラウザ出力画像がIフレーム生成用の画像である場合(ステップS103;YES)、映像音声エンコーダ211は、図24のステップS104〜S106と同様の動作により、Iフレームを生成して送信し、その後、ステップS205へ進む。
ブラウザ出力画像がIフレーム生成用の画像ではない場合(ステップS103;NO)、映像音声エンコーダ211は、ブラウザ更新情報に基づいてクラウドブラウザ204に更新があるか否かを判定し(ステップS202)、更新がある場合(ステップS202;YES)、図24のステップS107〜S111と同様の動作により、更新領域についてのPフレームを生成して出力し、その後、ステップS205へ進む。
クラウドブラウザ204に更新がない場合(ステップS202;NO)、映像音声エンコーダ211は、タイマにより計時された経過時間が所定時間Tnに達したか否かを判定し(ステップS203)、所定時間Tnに達していない場合(ステップS203;NO)、図24のステップS107〜S111と同様の動作により、更新領域についてのPフレームを生成して出力し、その後、ステップS205へ進む。
一方、タイマにより計時された経過時間が所定時間Tnに達している場合(ステップS203;YES)、映像音声エンコーダ211は、Pフレームの代わりにスキップフレームを出力し(ステップS204)、ステップS101へリターンする。なお、スキップフレームは、たとえば図23に示すフレーム出力部2113が不図示のメモリから読み出して出力してもよい。また、スキップフレームを受信した端末500は、ディスプレイ303の表示を更新しないように動作してよい。
また、ステップS205では、映像音声エンコーダ211は、タイマをリセットする。リセットされたタイマは、その後、初期値からカウントを再開する。
以上のように、スキップフレームを利用することで、映像音声エンコーダ211にかかる負荷を低減することができるとともに、端末500へ配信するデータ量を最小限に抑えることが可能となる。
<強制Iフレーム>
また、ブラウザの更新が一定期間以上なく、クラウドブラウザ204が同じ静止画を表示し続けている場合には、一度、Iフレーム(以下、強制Iフレームという)を配信することで、端末500側に表示される映像の品質を向上させてもよい。その際、映像音声エンコーダ211が生成する強制Iフレームの解像度を通常のIフレームおよびPフレームよりも上げることで、より高画質の画像を端末500に表示させるようにしてもよい。
図32は、強制Iフレームを利用した場合の映像配信の流れを示す概念図である。なお、図32では、説明の都合上、先頭フレームをIフレームとする。また、強制Iフレームを利用しない場合の映像配信の流れは、図29または図30と同様である。
図32に示すように、強制Iフレームを利用した映像配信では、映像音声エンコーダ211は、最初にIフレームF1を生成して送信後、次のIフレームを生成するまでの間にユーザによるタッチイベントなどに起因したクラウドブラウザ204の更新がない期間Tnが開始されると、期間Tnの開始から所定時間Tw経過後、エンコード処理を実行して強制IフレームF1fを生成して送信する。この強制IフレームF1fは、通常のIフレームおよびPフレームよりも高い解像度であってもよい。これにより、端末500に静止画として表示されるブラウザ画面の品質を向上することが可能となる。
つぎに、強制Iフレームを利用する映像音声エンコーダ211の動作について、図面を用いて詳細に説明する。図33は、強制Iフレームを利用する映像音声エンコーダの動作例を示すフローチャートである。なお、図33において、図24または図31と同様の動作については、それを引用することで、詳細な説明を省略する。
図33に示すように、映像音声エンコーダ211は、起動後、図31のステップS201、S101〜103と同様に、タイマによる計時を開始するとともに、更新サイクルごとにブラウザ出力画像(およびブラウザ更新情報)を取得し、これがIフレーム生成用の画像であるか否かを判定する。ブラウザ出力画像がIフレーム生成用の画像である場合(ステップS103;YES)、映像音声エンコーダ211は、図31のステップS104〜S106と同様の動作により、Iフレームを生成して送信し、その後、ステップS205へ進む。
ブラウザ出力画像がIフレーム生成用の画像ではない場合(ステップS103;NO)、映像音声エンコーダ211は、図31のステップS202と同様の動作により、ブラウザ更新情報に基づいてクラウドブラウザ204に更新があるか否かを判定し、更新がある場合(ステップS202;YES)、図31のステップS107〜S111と同様の動作により、更新領域についてのPフレームを生成して出力し、その後、ステップS205へ進む。
クラウドブラウザ204に更新がない場合(ステップS202;NO)、映像音声エンコーダ211は、図31のステップS203に示す動作と同様の動作により、タイマにより計時された経過時間が所定時間Tnに達したか否かを判定し、所定時間Tnに達していない場合(ステップS203;NO)、図31のステップS107〜S111と同様の動作により、更新領域についてのPフレームを生成して出力し、その後、ステップS205へ進む。
一方、タイマにより計時された経過時間が所定時間Tnに達している場合(ステップS203;YES)、映像音声エンコーダ211は、ステップS102で取得した最新のブラウザ出力画像全体をスキャンして(ステップS301)、強制Iフレームを生成し(ステップS302)、生成した強制Iフレームを独自転送プロトコル対応サーバ215へ出力する(ステップS303)。その際、映像音声エンコーダ211は、通常のIフレームおよびPフレームよりも高い解像度で、強制Iフレームを生成してもよい。
その後、映像音声エンコーダ211は、タイマをリセットし(ステップS304)、ステップS101へリターンする。なお、リセットされたタイマは、その後、初期値からカウントを開始する。
以上のように、強制Iフレームを利用することで、端末500側に表示される映像の品質を向上させることができる。また、映像音声エンコーダ211が生成する強制Iフレームの解像度を通常のIフレームおよびPフレームよりも上げることで、より高画質の画像を端末500に表示させることが可能となる。
<スキップフレームおよび強制Iフレームの組み合わせ>
また、上述したスキップフレームと強制Iフレームとを併用することも可能である。すなわち、ブラウザの更新が一定期間以上なく、クラウドブラウザ204が同じ静止画を表示し続けている場合には、一度、Iフレーム(以下、強制Iフレームという)を配信することで端末500側に表示される映像の品質を向上させ、その後、クラウドブラウザ204の更新が発生するまで、スキップフレームを配信することで、映像音声エンコーダ211にかかる負荷を低減するとともに、端末500へ配信するデータ量を最小限に抑えるように構成することも可能である。
図34は、スキップフレームおよび強制Iフレームを利用した場合の映像配信の流れを示す概念図である。なお、図34では、説明の都合上、先頭フレームをIフレームとする。また、スキップフレームおよび/または強制Iフレームを利用しない場合の映像配信の流れは、図29、図30および図32のいずれかと同様である。
図34に示すように、スキップフレームおよび強制Iフレームを利用した映像配信では、映像音声エンコーダ211は、最初にIフレームF1を生成して送信後、次のIフレームを生成するまでの間にユーザによるタッチイベントなどに起因したクラウドブラウザ204の更新がない期間Tnが開始されると、期間Tnの開始から所定時間Tw経過後、エンコード処理を実行して強制IフレームF1fを生成して送信する。また、映像音声エンコーダ211は、強制Iフレームの送信以降、クラウドブラウザ204の更新が発生するタイミングt1まで、エンコード処理を実行せずに、代わりにスキップフレームF2sを生成して送信する。これにより、端末500に静止画として表示されるブラウザ画面の品質を向上するとともに、映像音声エンコーダ211にかかる負荷の低減、および、端末500へ配信するデータ量の最小化が可能となる。
つぎに、スキップフレームおよび強制Iフレームを利用する映像音声エンコーダ211の動作について、図面を用いて詳細に説明する。図35は、スキップフレームおよび強制Iフレームを利用する映像音声エンコーダの動作例を示すフローチャートである。なお、図35において、図24、図31または図33と同様の動作については、それを引用することで、詳細な説明を省略する。
図35に示すように、ステップS201、S101〜103、S202のYES、S104〜S111、S205およびS112までの動作、ならびに、ステップS202のNO、S203、S301〜S303までの動作は、図33に示す動作と同様の動作である。
その後、図35に示すように、ステップS303において強制Iフレームを出力すると、映像音声エンコーダ211は、1つの更新サイクルが経過したか否かを判定し(ステップS301)、1つの更新サイクルが経過した場合(ステップS401;YES)、クラウドブラウザ204から最新のブラウザ出力画像(およびブラウザ更新情報)を取得する(ステップS402)。つぎに、映像音声エンコーダ211は、ブラウザ更新情報に基づいてクラウドブラウザ204に更新があるか否かを判定し(ステップS403)、更新がある場合(ステップS403;YES)、図33のステップS107〜S111と同様の動作により、更新領域についてのPフレームを生成して出力し、その後、ステップS205へ進む。
一方、クラウドブラウザ204に更新がない場合(ステップS403;NO)、映像音声エンコーダ211は、Pフレームの代わりにスキップフレームを出力し(ステップS204)、ステップS401へリターンする。
以上のように、スキップフレームと強制Iフレームと併用することで、端末500に静止画として表示されるブラウザ画面の品質を向上するとともに、映像音声エンコーダ211にかかる負荷の低減、および、端末500へ配信するデータ量の最小化が可能となる。
<実施形態の効果>
以上、具体的な例を挙げながら詳細に説明したように、本実施形態の映像音声処理システムでは、ウェブコンテンツのリッチ化に対応させて常に最新化されるクラウドブラウザ204により、連携サイト40や一般サイト50が提供するウェブコンテンツがレンダリングされ、その結果が映像音声エンコーダ211により圧縮映像や圧縮音声の1フレームとして即時にエンコードされて、RTPデータとして端末500に配信される。したがって、本実施形態の映像音声処理システムによれば、端末500は、RTPデータを受信、デコードして再生する機能だけを備えていればよく、端末500側をウェブコンテンツのリッチ化に対応させるための負荷を低減させつつ、リッチなウェブコンテンツを端末500でブラウジングすることができる。
また、本実施形態の映像音声処理システムでは、ユーザの指定に従って、ウェブコンテンツから生成された圧縮映像のRTPデータをプロジェクタ400A等の端末500に配信するとともに、同一のウェブコンテンツから生成された圧縮音声のRTPデータをスピーカユニット400B等の端末500に配信することができるので、映像と音声を別個の端末500で再生することができる。
また、本実施形態の映像音声処理システムでは、エンジンサーバ200の独自転送プロトコル対応サーバ215が、映像を再生するプロジェクタ400A等の端末500および音声を再生するスピーカユニット400B等の端末500の独自転送プロトコル対応クライアント520に対して、映像や音声のサンプリング時刻を示すタイムスタンプを付加したRTPデータを配信するので、端末500側でこのタイムスタンプを基準にRTPデータのバッファリング時間を調整することで、プロジェクタ400A等の端末500とスピーカユニット400B等の端末500とで、映像と音声とを同期させながら再生することができる。
また、本実施形態の映像音声処理システムによれば、エンジンサーバ200の独自転送プロトコル対応サーバ215が、一つのクラウドブラウザ204によりレンダリングされた同一のウェブコンテンツの映像や音声を複数の端末500に同時に配信(マルチキャスト)することができるので、ブラウジングの内容を多拠点で共有することができる。
また、本実施形態の映像音声処理システムによれば、エンジンサーバ200の独自転送プロトコル対応サーバ215が、端末500との間の一つのセッションの間に、複数のRTPデータをレスポンスのBody部に動的に書き込むことで、圧縮映像や圧縮音声を端末500に送信するので、クラウドブラウザ204によるウェブコンテンツのブラウジングの内容をリアルタイムに途切れることなく、端末500に配信することができる。また、独自転送プロトコル対応サーバ215は、初期パラメータで設定された一定時間の間、端末500との間のセッションを保持するので、映像や音声を効率よく端末500に送信することができる。
なお、本実施形態の映像音声処理システムを構成する管理サーバ100やエンジンサーバ200は、CPUやROM、RAM、入出力インターフェースなどを備えた通常のコンピュータを利用したハードウェア構成を採用し、上述した各機能をソフトウェア(プログラム)として実装することができる。また、管理サーバ100やエンジンサーバ200の機能の少なくとも一部を、例えばASIC(Application Specific
Integrated Circuit)やFPGA(Field−Programmable Gate Array)などの専用のハードウェアを用いて実現することもできる。
また、本実施形態の映像音声処理システムでは、管理サーバ100とエンジンサーバ200とを互いに別個の装置として構成しているが、例えば、エンジンサーバ200に管理サーバ100の機能を持たせるなどにより、管理サーバ100とエンジンサーバ200とを一体の装置として構成するようにしてもよい。
100 管理サーバ
101 ウェブサービス
102 エンジン用ウェブインターフェース
115 エンジン制御部
200 エンジンサーバ
204 クラウドブラウザ
211 映像音声エンコーダ
215 独自転送プロトコル対応サーバ
300 クライアント端末
400 デバイス
500 端末
520 独自転送プロトコル対応クライアント
200 エンジンサーバ
204 クラウドブラウザ
211 映像音声エンコーダ
2111 更新情報取得部
2112 フレーム生成部
2113 フレーム出力部
特開2007−221229号公報

Claims (7)

  1. コンテンツをレンダリングして出力画像を生成するブラウザを備えたサーバに組み込まれるエンコーダであって、
    前記ブラウザで生成された出力画像の第1先頭フレームまたは前記出力画像よりも時間的に前の出力画像に対する差分フレームを生成するフレーム生成部と、
    前記フレーム生成部が生成したフレームを出力するフレーム出力部と、
    前記ブラウザに更新が発生していない期間を計測するタイマと、
    を備え、
    前記フレーム生成部は、前記タイマによって計時された前記ブラウザに更新が発生していない期間が所定時間以上となった場合、第2先頭フレームを生成することを特徴とするエンコーダ。
  2. 前記フレーム生成部は、前記第1先頭フレームよりも解像度が高い前記第2先頭フレームを生成することを特徴とする請求項1に記載のエンコーダ。
  3. 前記フレーム出力部は、前記第2先頭フレームを出力後、前記ブラウザに更新が発生するまでの間、定型のスキップフレームを出力することを特徴とするエンコーダ。
  4. 1つ以上の端末にネットワークを介して接続された映像処理サーバであって、
    コンテンツをレンダリングして出力画像を生成するブラウザと、
    請求項1〜3のいずれか一つに記載のエンコーダと、
    前記フレーム出力部が出力した前記フレームを前記1つ以上の端末に前記ネットワークを介して配信する配信部と、
    を備えることを特徴とする映像処理サーバ。
  5. ネットワークを介して1つ以上の端末とサーバとが接続された映像処理システムであって、
    前記サーバは、
    コンテンツをレンダリングして出力画像を生成するブラウザと、
    請求項1〜3のいずれか一つに記載のエンコーダと、
    前記前記フレーム出力部が出力した前記フレームを前記1つ以上の端末に前記ネットワークを介して配信する配信部と、
    を備え、
    各端末は、
    前記フレームをデコードするデコーダと、
    前記デコーダでデコードされた画像を表示する表示部と、
    を備えることを特徴とする映像処理システム。
  6. コンテンツをレンダリングして出力画像を生成するブラウザを備えたクラウドサーバにおける配信画像のエンコード方法であって、
    前記ブラウザに更新が発生していない期間を計測し、
    前記ブラウザに更新が発生していない期間が所定時間未満である場合、前記ブラウザで生成された出力画像の第1先頭フレームまたは前記出力画像よりも時間的に前の出力画像に対する差分フレームを生成し、
    前記ブラウザに更新が発生していない期間が前記所定時間以上となった場合、第2先頭フレームを生成する
    ことを含むことを特徴とするエンコード方法。
  7. ブラウザを備えたクラウドサーバに組み込まれたコンピュータを機能させるためのプログラムであって、
    前記ブラウザに更新が発生していない期間を計測する計時処理と、
    前記ブラウザに更新が発生していない期間が所定時間未満である場合、前記ブラウザで生成された出力画像の第1先頭フレームまたは前記出力画像よりも時間的に前の出力画像に対する差分フレームを生成し、前記ブラウザに更新が発生していない期間が前記所定時間以上となった場合、第2先頭フレームを生成するフレーム生成処理と、
    を前記コンピュータに実行させるためのプログラム。
JP2014023186A 2014-02-10 2014-02-10 エンコーダ、映像処理サーバ、映像処理システム、エンコード方法およびそのプログラム Pending JP2014182793A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014023186A JP2014182793A (ja) 2014-02-10 2014-02-10 エンコーダ、映像処理サーバ、映像処理システム、エンコード方法およびそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014023186A JP2014182793A (ja) 2014-02-10 2014-02-10 エンコーダ、映像処理サーバ、映像処理システム、エンコード方法およびそのプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013054396 Division 2013-03-15 2013-03-15

Publications (1)

Publication Number Publication Date
JP2014182793A true JP2014182793A (ja) 2014-09-29

Family

ID=51701385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014023186A Pending JP2014182793A (ja) 2014-02-10 2014-02-10 エンコーダ、映像処理サーバ、映像処理システム、エンコード方法およびそのプログラム

Country Status (1)

Country Link
JP (1) JP2014182793A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9756202B2 (en) 2015-05-20 2017-09-05 Ricoh Company, Ltd. Information processing system, information processing method and computer program product
JP2018152656A (ja) * 2017-03-10 2018-09-27 三菱電機株式会社 伝送装置、映像配信装置、映像符号化装置及び伝送方法
US10270926B2 (en) 2015-05-20 2019-04-23 Ricoh Company, Ltd. Information processing apparatus, information processing system, and information processing method
US10288159B2 (en) 2016-05-13 2019-05-14 GM Global Technology Operations LLC Integrated clutch systems for torque converters of vehicle powertrains
JP2019523939A (ja) * 2016-06-07 2019-08-29 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. センサープライバシー設定制御
JPWO2021039983A1 (ja) * 2019-08-29 2021-03-04
CN113491877A (zh) * 2020-04-01 2021-10-12 华为技术有限公司 触发信号生成方法及装置
WO2022070628A1 (ja) * 2020-09-30 2022-04-07 ソニーグループ株式会社 情報処理装置、情報処理方法、およびプログラム
CN114501062A (zh) * 2022-01-27 2022-05-13 腾讯科技(深圳)有限公司 视频渲染协同方法、装置、设备及存储介质
CN118055151A (zh) * 2024-04-15 2024-05-17 湖南马栏山视频先进技术研究院有限公司 一种云桌面gpu直通虚拟化重定向管理系统及方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10356181B2 (en) 2015-05-20 2019-07-16 Ricoh Company, Ltd. Information processing system, information processing method and computer program product
US9756202B2 (en) 2015-05-20 2017-09-05 Ricoh Company, Ltd. Information processing system, information processing method and computer program product
US10270926B2 (en) 2015-05-20 2019-04-23 Ricoh Company, Ltd. Information processing apparatus, information processing system, and information processing method
US10288159B2 (en) 2016-05-13 2019-05-14 GM Global Technology Operations LLC Integrated clutch systems for torque converters of vehicle powertrains
JP7378208B2 (ja) 2016-06-07 2023-11-13 コーニンクレッカ フィリップス エヌ ヴェ センサープライバシー設定制御
JP2019523939A (ja) * 2016-06-07 2019-08-29 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. センサープライバシー設定制御
US11436380B2 (en) 2016-06-07 2022-09-06 Koninklijke Philips N.V. Sensor privacy setting control
JP2018152656A (ja) * 2017-03-10 2018-09-27 三菱電機株式会社 伝送装置、映像配信装置、映像符号化装置及び伝送方法
JPWO2021039983A1 (ja) * 2019-08-29 2021-03-04
JP7267436B2 (ja) 2019-08-29 2023-05-01 株式会社ソニー・インタラクティブエンタテインメント 送信装置、送信方法及びプログラム
US11949887B2 (en) 2019-08-29 2024-04-02 Sony Interactive Entertainment Inc. Transmission apparatus, transmission method, and program
CN113491877A (zh) * 2020-04-01 2021-10-12 华为技术有限公司 触发信号生成方法及装置
CN113491877B (zh) * 2020-04-01 2023-12-08 华为技术有限公司 触发信号生成方法及装置
WO2022070628A1 (ja) * 2020-09-30 2022-04-07 ソニーグループ株式会社 情報処理装置、情報処理方法、およびプログラム
CN114501062A (zh) * 2022-01-27 2022-05-13 腾讯科技(深圳)有限公司 视频渲染协同方法、装置、设备及存储介质
CN118055151A (zh) * 2024-04-15 2024-05-17 湖南马栏山视频先进技术研究院有限公司 一种云桌面gpu直通虚拟化重定向管理系统及方法

Similar Documents

Publication Publication Date Title
JP2014182793A (ja) エンコーダ、映像処理サーバ、映像処理システム、エンコード方法およびそのプログラム
JP6460228B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
US11936921B2 (en) Method for managing network live streaming data and related apparatus, and device and storage medium
JP6398215B2 (ja) 配信制御システム、配信システム、配信制御方法、及びプログラム
JP6354195B2 (ja) 配信システム、配信方法、及びプログラム
US9723337B2 (en) Distribution control system and distribution system
US9781193B2 (en) Distribution control system, distribution system, distribution control method, and computer-readable storage medium
JP6337499B2 (ja) 配信制御システム、配信システム、配信制御方法、及びプログラム
US20160044079A1 (en) Distribution control system, distribution control method, and computer-readable storage medium
US20160014193A1 (en) Computer system, distribution control system, distribution control method, and computer-readable storage medium
JP2014199648A (ja) 配信制御システム、配信システム、配信制御方法、及びプログラム
US20150029196A1 (en) Distribution management apparatus
US9596435B2 (en) Distribution control apparatus, distribution control method, and computer program product
JP2015056855A (ja) 配信管理装置、及び配信管理システム
US10925014B2 (en) Method and apparatus for synchronization in a network
JP2014131143A (ja) 送信装置、送信方法、及びプログラム
JP6248488B2 (ja) 通信端末及び通信方法
US9596282B2 (en) Delivery managing device, terminal, and delivery managing method
JP2015056046A (ja) 配信管理システム、配信システム、配信管理方法、及びプログラム
JP2016063247A (ja) 配信システム及び配信方法
US9525901B2 (en) Distribution management apparatus for distributing data content to communication devices, distribution system, and distribution management method
JP2016517644A (ja) オーディオ−ビデオ用のワイヤレスドッキングシステム
JP2015053613A (ja) 映像配信装置、及び映像配信システム
JP6248492B2 (ja) 配信管理装置、配信管理システム、及び配信管理方法
JP6442832B2 (ja) 配信制御システム、配信システム、配信制御方法、及びプログラム