JP2016192610A - 遠隔会議プログラム、制御装置及び遠隔会議方法 - Google Patents
遠隔会議プログラム、制御装置及び遠隔会議方法 Download PDFInfo
- Publication number
- JP2016192610A JP2016192610A JP2015070479A JP2015070479A JP2016192610A JP 2016192610 A JP2016192610 A JP 2016192610A JP 2015070479 A JP2015070479 A JP 2015070479A JP 2015070479 A JP2015070479 A JP 2015070479A JP 2016192610 A JP2016192610 A JP 2016192610A
- Authority
- JP
- Japan
- Prior art keywords
- terminal
- resolution
- display resolution
- cpu
- video data
- 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
Links
Images
Abstract
【課題】端末装置で表示される大きさに合わせた適切な解像度の画像データの生成によって通信負荷を低減することができる遠隔会議プログラム、制御装置及び遠隔会議方法を提供する。【解決手段】サーバのCPUは、受信側の端末で表示される送信側の端末の映像の表示解像度に変更があった場合、送信側の端末に、撮影データを映像データにエンコードするエンコード解像度を変更する要求を送信する。例えば、端末Aが送信側の端末である場合、サーバは、端末B〜Hで表示される端末Aの映像の縦解像度を大きさ順に並べ替え、隣り合う縦解像度同士で差分値を算出し、差分値の大きい順に、グループ分割位置を設定する。サーバは端末AのCPUスペックに応じてグループの数を設定し、端末B〜Hを分割位置で分けたグループに分類する。サーバは各グループの最大の表示解像度をエンコード解像度に決定し、端末Aにエンコード解像度を変更する要求を送信する。【選択図】図10
Description
本発明は、ネットワークを介して複数の端末装置と接続し、各種データの送受信を管理して遠隔会議を行うための遠隔会議プログラム、制御装置及び遠隔会議方法に関する。
従来、ネットワークを介して携帯端末、パーソナルコンピュータ(PC)等、複数の端末装置と接続し、画像データを含む各種データの送受信を制御して、遠隔会議を進行する制御装置が知られている。例えば、特許文献1に記載の会議コントローラは、送信側端末装置のカメラで撮影された動画像データを送信側端末装置から受信し、受信側端末装置に転送する。受信側端末装置は、会議コントローラから受信した動画像データをモニタに表示する。
特許文献1において、送信側端末装置は、基準表示サイズ以下の表示サイズで動画像データを表示する受信側端末装置があれば、低解像度の動画像データを生成する。同様に、送信側端末装置は、基準表示サイズより大きい表示サイズで動画像データを表示する受信側端末装置があれば、高解像度の動画像データを生成する。送信側端末装置は、低解像度の動画像データ及び高解像度の動画像データのうち少なくとも一方の動画像データを生成したら、会議コントローラに送信する。会議コントローラは、受信側端末装置における表示サイズに合わせた低解像度又は高解像度の動画像データを、夫々の受信側端末装置に転送する。
しかしながら、特許文献1において、送信側端末装置が生成する低解像度の動画像データと高解像度の動画像データの解像度は、夫々、予め設定されている。このため、送信側端末装置の表示サイズが基準表示サイズより僅かに大きなサイズであった場合でも、送信側端末装置は、高解像度の動画像データを生成する。動画像データの送受信において、高解像度の動画像データは、低画質動画像データよりも大きな帯域を使用するため、通信負荷が高くなるという問題があった。
本発明は、端末装置で表示される大きさに合わせた適切な解像度の画像データの生成によって通信負荷を低減することができる遠隔会議プログラム、制御装置及び遠隔会議方法を提供することを目的とする。
本発明の第一態様によれば、ネットワークを介して複数の端末装置と接続する制御装置のコンピュータが実行可能な遠隔会議プログラムであって、前記制御装置のコンピュータに、前記複数の端末装置のうちの1つである第一端末に接続されたカメラで撮影された撮影データに基づき前記第一端末で符号化され、ストリーミング形式で送信される映像データを、前記第一端末とは異なる複数の第二端末が前記制御装置を介して受信し、前記第二端末に接続されたモニタの夫々に前記映像データを復号して表示する映像の表示解像度を示す表示解像度情報を、前記複数の第二端末の夫々から取得する第一取得ステップと、前記第一取得ステップにおいて取得した前記表示解像度情報に示される前記表示解像度のうちの最大の表示解像度と最小の表示解像度との差が、所定の第一差分値以上か否か判断する第一判断ステップと、前記第一判断ステップにおいて前記最大の表示解像度と前記最小の表示解像度との差が前記第一差分値未満と判断した場合、前記第一端末に、前記撮影データに基づき前記最大の表示解像度以下、且つ前記最小の表示解像度以上の解像度で符号化された1つの前記映像データをストリーミング形式で送信させ、前記第一差分値以上と判断した場合には、前記第一端末に、解像度が異なる2以上の前記映像データであって、前記撮影データに基づき夫々前記最大の表示解像度以下、且つ前記最小の表示解像度以上の解像度で符号化された前記2以上の映像データをストリーミング形式で送信させる設定情報を設定する設定ステップと、前記設定ステップにおいて設定した前記設定情報を、前記第一端末に送信する送信ステップとを実行させることを特徴とする遠隔会議プログラムが提供される。
異なる解像度で符号化された2つの映像データがストリーミング送信される場合、送信に使用される帯域は、1つの映像データのみがストリーミング送信される場合と比べて大きい。第一態様において、最大の表示解像度と最小の表示解像度との差が第一差分値未満の場合、第一端末が送信する映像データは、1つの映像データである。従って、第一態様に係る遠隔会議プログラムを実行する制御装置は、映像データの送受信に使用される帯域を小さくし、通信負荷を低減することができる。
本発明の第二態様によれば、ネットワークを介して複数の端末装置と接続する制御装置であって、前記複数の端末装置のうちの1つである第一端末に接続されたカメラで撮影された撮影データに基づき前記第一端末で符号化され、ストリーミング形式で送信される映像データを、前記第一端末とは異なる複数の第二端末が前記制御装置を介して受信し、前記第二端末に接続されたモニタの夫々に前記映像データを復号して表示する映像の表示解像度を示す表示解像度情報を、前記複数の第二端末の夫々から取得する第一取得手段と、前記第一取得手段が取得した前記表示解像度情報に示される前記表示解像度のうちの最大の表示解像度と最小の表示解像度との差が、所定の第一差分値以上か否か判断する第一判断手段と、前記第一判断手段が、前記最大の表示解像度と前記最小の表示解像度との差が前記第一差分値未満と判断した場合、前記第一端末に、前記撮影データに基づき前記最大の表示解像度以下、且つ前記最小の表示解像度以上の解像度で符号化された1つの前記映像データをストリーミング形式で送信させ、前記第一差分値以上と判断した場合には、前記第一端末に、解像度が異なる2以上の前記映像データであって、前記撮影データに基づき夫々前記最大の表示解像度以下、且つ前記最小の表示解像度以上の解像度で符号化された前記2以上の映像データをストリーミング形式で送信させる設定情報を設定する設定手段と、前記設定手段が設定した前記設定情報を、前記第一端末に送信する送信手段とを備えたことを特徴とする制御装置が提供される。
第二態様に係る制御装置は、複数の第二端末のモニタに表示される映像の最大の表示解像度と最小の表示解像度との差に基づいて第一端末に映像データを生成させることで、第一態様と同様の効果を得ることができる。
本発明の第三態様によれば、ネットワークを介して複数の端末装置と接続する制御装置のコンピュータがプログラムに従って実行可能な遠隔会議方法であって、前記複数の端末装置のうちの1つである第一端末に接続されたカメラで撮影された撮影データに基づき前記第一端末で符号化され、ストリーミング形式で送信される映像データを、前記第一端末とは異なる複数の第二端末が前記制御装置を介して受信し、前記第二端末に接続されたモニタの夫々に前記映像データを復号して表示する映像の表示解像度を示す表示解像度情報を、前記複数の第二端末の夫々から取得する第一取得ステップと、前記第一取得ステップにおいて取得した前記表示解像度情報に示される前記表示解像度のうちの最大の表示解像度と最小の表示解像度との差が、所定の第一差分値以上か否か判断する第一判断ステップと、前記第一判断ステップにおいて前記最大の表示解像度と前記最小の表示解像度との差が前記第一差分値未満と判断した場合、前記第一端末に、前記撮影データに基づき前記最大の表示解像度以下、且つ前記最小の表示解像度以上の解像度で符号化された1つの前記映像データをストリーミング形式で送信させ、前記第一差分値以上と判断した場合には、前記第一端末に、解像度が異なる2以上の前記映像データであって、前記撮影データに基づき夫々前記最大の表示解像度以下、且つ前記最小の表示解像度以上の解像度で符号化された前記2以上の映像データをストリーミング形式で送信させる設定情報を設定する設定ステップと、前記設定ステップにおいて設定した前記設定情報を、前記第一端末に送信する送信ステップとを含むことを特徴とする遠隔会議方法が提供される。
制御装置のコンピュータがプログラムに従って第三態様に係る方法を実行し、複数の第二端末のモニタに表示される映像の最大の表示解像度と最小の表示解像度との差に基づいて第一端末に映像データを生成させることで、第一態様と同様の効果を得ることができる。
以下、本発明の一実施形態について、図面を参照して説明する。参照する図面は、本発明が採用し得る技術的特徴を説明するために用いられるものである。図面に記載されている装置の構成、各種処理のフローチャート等は、それのみに限定する趣旨ではなく、単なる説明例である。
図1を参照し、サーバ1及び端末3を含む遠隔会議システム100について説明する。サーバ1は、本発明に係る「制御装置」の一例である。端末3は、本発明に係る「端末装置」の一例である。遠隔会議システム100は、サーバ1が仮想的に構築する会議室に複数の端末3がネットワーク10を介して夫々仮想的に参加し、映像及び音声を用いた遠隔会議(テレビ会議)を開催できるシステムである。サーバ1及び複数の端末3は、ネットワーク10を介して互いに接続する。端末3は、遠隔会議に参加するユーザが使用する。サーバ1は、複数の端末3の間で実行される遠隔会議を制御する。
図1に示す遠隔会議システム100は、一例として、1つのサーバ1と8つの端末3が、夫々ネットワーク10に接続して構成するシステムである。サーバ1は、複数の端末3を用いて行われる遠隔会議の場として仮想的な会議室を構築する。サーバ1は、各端末3の会議室への入退室を管理する。仮想的な会議室は、所定の会議室IDで識別される。複数の端末3は、所定の会議室IDで識別される同一の遠隔会議に参加する。また、複数の端末3は、夫々、ユーザIDによって識別される。会議室IDとユーザIDは互いに関連付けられて、例えば、サーバ1のハードディスクドライブ(以下、「HDD」という。)17に保存される。
複数の端末3は、ネットワーク10を介してサーバ1に接続する。端末3は、モニタ41、マイク43、カメラ44、スピーカ45等が接続される端末装置である。例えばPCが、端末3として用いられる。端末3として、スマートフォン、タブレット端末の携帯端末が用いられてもよい。サーバ1のHDD17には、複数の端末3がサーバ1に対して接続して遠隔会議を行うことを可能にする各処理のプログラムが記憶される。この点を除き、サーバ1の構成は、公知の構成のワークステーションやパーソナルコンピュータ(PC)と同様の構成である。
複数の端末3は、夫々が送信側の端末3として機能し、且つ、夫々が受信側の端末3として機能する。送信側の端末3は、遠隔会議時に、カメラ44が撮影した撮影データとマイク43が収音した収音データを取得する。送信側の端末3は、取得した撮影データと収音データをエンコードして、映像データと音声データを生成する。送信側の端末3は、会議室IDとともに、映像データと音声データをストリーミング形式でサーバ1に送信する。サーバ1は、受信した映像データと音声データを、受信側の端末3の夫々に、ストリーミング形式で再送信する。なお、受信側の端末3は、会議室IDに関連付けられ、送信側の端末3とは異なるユーザIDで識別される。受信側の端末3は、サーバ1から受信した映像データと音声データを復号する。受信側の端末3は、映像データに基づく映像をモニタに表示する。受信側の端末3は、映像データに基づく音声をスピーカから出力する。この構成により、複数の端末3は映像データと音声データを互いに送受信し、リアルタイムな会話による遠隔会議を実行することができる。遠隔会議システム100は、遠隔会議の参加者(端末3のユーザ)のすべてが同一の場所にいなくとも、参加者同士による円滑な会議の場を提供することができる。
サーバ1の電気的構成について説明する。サーバ1は、例えば、公知の構成のPCである。サーバ1は、サーバ1の制御を司るCPU11を備える。CPU11はチップセット15に接続し、チップセット15を介してROM12、RAM13、及び表示制御部14と電気的に接続する。チップセット15はチップセット16と接続する。CPU11は、チップセット16を介し、HDD17、通信I/F18、USB I/F19と電気的に接続する。
チップセット15は、CPU11と、ROM12、RAM13、及び表示制御部14との間でデータの送受信を管理する一連の回路群である。ROM12は、ブートプログラム、BIOS等を記憶する。RAM13は、種々の一時データを記憶する。表示制御部14は、モニタ21への映像の表示を制御する。チップセット16は、CPU11と、HDD17、通信I/F18及びUSB I/F19との間でデータの送受信を管理する一連の回路群である。HDD17は、OS、サーバ1をサーバとして機能させるためのソフトウェア(後述する遠隔会議プログラム)、その他各種アプリケーション、データ等を記憶する。通信I/F18は、有線又は無線によってネットワーク10に接続し、データ通信を行うためのインターフェイスである。USB I/F19は、USB規格に基づく通信を行うためのインターフェイスである。CPU11は、USB I/F19を介し、入力部22と電気的に接続する。入力部22は、キーボード、マウス等、サーバ1に対する操作の入力を行う装置である。
なお、後述する遠隔会議プログラムは、サーバ1のCPU11に応じたコードにコンパイルされ、ファイルサーバ(図示略)等に設けられたコンピュータが読み取り可能な記憶装置に記憶されている。コンピュータが読み取り可能な記憶装置は、一時的な記憶媒体(例えば、伝送信号)を含まない、非一時的な記憶媒体であってもよい。遠隔会議プログラムは、ファイルサーバ等からサーバ1にネットワーク10等の電気通信回線を通じて伝送信号として送信されて提供される。あるいは、遠隔会議プログラムは、CD−ROM、DVD−ROM、フラッシュROM等の非一時的な記録媒体(図示略)に記憶されてもよい。この場合、サーバ1のCPU11が、サーバ1に接続可能な読取装置(図示略)で記録媒体から読み取ることで、遠隔会議プログラムが提供されてもよい。CPU11は、サーバ1が備えるコンピュータで読み取り可能な記憶装置に、遠隔会議プログラムを記憶する。本実施形態の記憶装置はHDD17であるが、HDD17に限らず、例えば、SSD(Solid State Drive)、フラッシュROM等、データを記憶する時間の長さに関わらずにデータを保持できる不揮発性の記憶装置を用いることが好ましい。
端末3の電気的構成について説明する。モニタ41、マイク43、カメラ44、及びスピーカ45は、内蔵又は外付けによって端末3に接続される。端末3は、後述する会議参加プログラムの実行によって、遠隔会議のクライアントとして機能することができる構成を有すればよい。以下では端末3がPCである場合の電気的構成を説明するが、端末3がスマートフォンやタブレット端末である場合の電気的構成は、便宜上、PCの電気的構成に準ずるものとする。
端末3は、端末3の制御を司るCPU31を備える。CPU31はチップセット35に接続し、チップセット35を介してROM32、RAM33、及び表示制御部34と電気的に接続する。チップセット35はチップセット36と接続する。CPU31は、チップセット36を介し、HDD37、通信I/F38、USB I/F39と電気的に接続する。
チップセット35は、CPU31と、ROM32、RAM33、及び表示制御部34との間でデータの送受信を管理する一連の回路群である。ROM32は、ブートプログラム、BIOS等を記憶する。RAM33は、種々の一時データを記憶する。表示制御部34は、映像データをデコードした表示データに基づく映像のモニタ41への表示を制御する。チップセット36は、CPU31と、HDD37、通信I/F38及びUSB I/F39との間でデータの送受信を管理する一連の回路群である。HDD37は、OS、端末3をクライアントとして機能させるためのソフトウェア(後述する会議参加プログラム)、その他各種アプリケーション、データ等を記憶する。通信I/F38は、有線又は無線によってネットワーク10に接続し、データ通信を行うためのインターフェイスである。
なお、後述する会議参加プログラムは、端末3に応じたコードにコンパイルされ、ファイルサーバ(図示略)、サーバ1等に設けられたコンピュータが読み取り可能な記憶装置に記憶されている。コンピュータが読み取り可能な記憶装置は、一時的な記憶媒体(例えば、伝送信号)を含まない、非一時的な記憶媒体であってもよい。会議参加プログラムは、ファイルサーバ、サーバ1等から端末3にネットワーク10等の電気通信回線を通じて伝送信号として送信されて提供される。あるいは、会議参加プログラムは、CD−ROM、DVD−ROM、フラッシュROM等の非一時的な記録媒体(図示略)に記憶されてもよい。この場合、端末3のCPU31が、端末3に接続可能な読取装置(図示略)で記録媒体から読み取ることで会議参加プログラムが提供されてもよい。CPU31は、端末3が備えるコンピュータで読み取り可能な記憶装置に、会議参加プログラムを記憶する。端末3の記憶装置の一例はHDD37であるが、HDD37に限らず、例えば、SSD、フラッシュROM等、データを記憶する時間の長さに関わらずにデータを保持できる不揮発性の記憶装置を用いることが好ましい。
USB I/F39は、USB規格に基づく通信を行うためのインターフェイスである。CPU31は、USB I/F39を介し、入力部42、マイク43、カメラ44、及びスピーカ45と電気的に接続する。入力部42は、キーボード、マウス、タッチパネル等、端末3に対する操作の入力を行う装置である。マイク43は、端末3の周囲の音声を収音してA/D変換(サンプリング)した収音データを、USB I/F39を介してOSに送信する。カメラ44は、端末3の周囲の景色を撮影してA/D変換した撮影データを、USB I/F39を介してOSに送信する。カメラ44は、例えばCCDやCMOSなどの撮像素子と、その撮像素子に対して外界光を結像させるレンズ系とを含む。カメラ44は、さらに、撮像素子から出力されるアナログデータを増幅し、A/D変換してデジタルデータである撮影データを生成する変換回路を含む。スピーカ45は、音声データをデコードした再生データをUSB I/F39を介してOSから受信し、D/A変換して音声を出力する。
遠隔会議システム100において、サーバ1のCPU11及び端末3のCPU31は、夫々、遠隔会議プログラム及び会議参加プログラムに従って、概略、以下の各処理を行う。送信側の端末3のCPU31は、公知の音声用エンコーダを用い、マイク43で収音した収音データを所定の音声パラメータに従ってエンコードし、音声データを生成する。音声パラメータは、例えば、「コーデックにHE−AAC v2を用い、ビットレートを48kbps(CBR)とし、サンプリングレート24kHzでエンコードする」等のエンコード条件である。CPU31は、生成した音声データをサーバ1にストリーミング形式で送信する。
同様に、端末3のCPU31は、公知の映像用エンコーダを用い、カメラ44で撮影した撮影データを所定の映像パラメータに従ってエンコードし、映像データを生成する。映像パラメータは、例えば、「コーデックにMPEG−4 AVCを用い、解像度640×360、30fps、ビットレート1Mbpsでエンコードする」等のエンコード条件である。CPU31は、生成した映像データをサーバ1にストリーミング形式で送信する。
上記の音声用エンコーダと映像用エンコーダは、CPU31が、会議参加プログラムの実行において適宜呼び出して処理を行わせるプログラムモジュールの一つである。音声用エンコーダと映像用エンコーダは、会議参加プログラムに含めて予めインストールされている。PCの基本ソフトはマルチタスク型のOSである。基本ソフトは、会議参加プログラム、エンコーダ、デコーダ等を、並列処理によって実行することができる。なお、基本ソフトがマルチタスク型のOSでない場合、各プログラムモジュールは、ハードウェアからのイベント割込み等を契機に起動してもよい。
サーバ1は、送信側の端末3からストリーミング受信した映像データと音声データを、受信側の端末3の夫々に再送信(即ち、転送)する。受信側の端末3のCPU31は、サーバ1からストリーミング受信する映像データを公知の映像用デコーダでデコードして表示データを生成する。受信側の端末3のCPU31は、表示データに基づく映像をモニタ41に表示する。同様に、受信側の端末3のCPU31は、サーバ1からストリーミング受信する音声データを公知の音声用デコーダでデコードした再生データを生成する。受信側の端末3のCPU31は、再生データに基づく音声をスピーカ45から再生する。表示データに基づく映像と、再生データに基づく音声は、同期して表示及び再生される。
送信側の端末3のCPU31は、受信側の端末3夫々のモニタ41に表示される送信側の端末3の映像データの表示解像度に基づいて、映像データをエンコードする。本実施形態のサーバ1のCPU11は、送信側の端末3のCPU31にエンコードさせる映像データの映像パラメータを設定することができる。詳細は後述するが、CPU11は、受信側の端末3から、夫々のモニタ41に表示される送信側の端末3の映像データの表示解像度を取得する。CPU11は、受信側の端末3を表示解像度の大きさに応じたグループに分類する。CPU11は、グループごとに映像データの適切なエンコード解像度を決定する。CPU11は、送信側の端末3に、決定したエンコード解像度を含む映像パラメータを送信する。なお、説明の簡略化のため、本実施形態のCPU11は、送信側の端末3に対し、映像パラメータのうち映像データのエンコード解像度に対する要求を行うものとする。映像パラメータのうちコーデックの種類、フレームレート、ビットレート等、その他のパラメータについては予め固定されているものとする。また、音声パラメータについても予め固定されているものとする。以下の説明では、映像データの送受信における制御について説明を行い、音声データの送受信の制御については、説明を省略する。
CPU11は、グループに応じて夫々異なるエンコード解像度を設定した映像パラメータを、送信側の端末3に送信する。送信側の端末3のCPU31は、受信した映像パラメータにおいて指定されるエンコード解像度でエンコードした複数の映像データを生成する。CPU31は、生成した複数の映像データを、サーバ1に対してストリーミング形式で送信する。サーバ1のCPU11は、受信側の端末3に対し、夫々が分類されたグループに応じて適切な解像度の映像データを、ストリーミングによって再送信する。なお、ストリーミング形式による映像データの送受信では、異なる解像度でエンコードされた複数の映像データが、夫々個別のストリーム(例えば、MPEG−4/AVC)で送受信されてもよい。或いは、異なる解像度でエンコードされた複数の映像データが多重化され、1つのストリーム(例えば、MPEG−4/SVC)で送受信されてもよい。このように、サーバ1は、送信側の端末3がエンコードする映像データのエンコード解像度を、受信側の端末3のモニタ41における表示解像度に合わせて設定した映像パラメータを、送信側の端末3に送信する。これにより、サーバ1は、映像データの送受信に使用される帯域を小さくし、通信負荷を低減することができる。
遠隔会議システム100においてサーバ1のCPU11及び端末3のCPU31が行う具体的な処理について、以下に説明する。まず、図2を参照し、端末3のCPU31が会議参加プログラムの実行に従って行う処理について説明する。端末3のCPU31は、入力部42に対して入力される操作に基づき、会議参加プログラムをHDD37から読み込んで実行する。CPU31は、会議参加プログラム実行時の初期設定を行う(S1)。CPU31は、撮影バッファ、送信バッファ及び受信バッファの記憶領域をRAM33に夫々確保する。撮影バッファは、カメラ44が撮影した撮影データを一時的に記憶する記憶領域である。CPU31は、カメラドライバにカメラ44を起動させ、撮影バッファに撮影データの一時的な記憶を開始する。送信バッファは、端末3のCPU31が、送信側の端末3として機能する場合に、サーバ1を介して受信側の端末3に送信する映像データを一時的に記憶する記憶領域である。受信バッファは、端末3のCPU31が、受信側の端末3として機能する場合に、サーバ1を介して送信側の端末3から受信する映像データを一時的に記憶する記憶領域である。
CPU31は、ユーザが参加を希望する仮想的な会議室のIDの入力を、入力部42を介して受け付ける。例えば、遠隔会議の開催予定日時以前に、遠隔会議に参加予定の端末3の各電子メールアドレスを宛先として、サーバ1から電子メールが送信される。この電子メールは、端末3による遠隔会議のためのURL(Uniform Resource Locator)を含む。このURLは、例えば、仮想的な会議室のIDをクエリパラメータとして含む。このURLを選択する操作が入力部42によって受け付けられることで、CPU31は、ユーザが入力した会議室IDを取得する。
CPU31は、ネットワーク10を介し、サーバ1との接続を試みる。CPU31は、サーバ1との接続が確立したら、サーバ1に対し、会議室IDとユーザIDを含む入室リクエストを送信する。サーバ1のHDD17には、サーバ1が開催する複数の遠隔会議の会議室IDが保存されている。入室リクエストに含まれるユーザIDは、入室リクエストに含まれる会議室IDが所定の会議室IDと一致すれば所定の会議室IDに関連付けられ、HDD17に保存される。そして、サーバ1において、所定の会議室IDによって識別される既存の会議室への参加を許可する通知が入室リクエストに基づいて生成される。また、サーバ1において、入室リクエストに含まれる会議室IDがHDD17に保存されていなければ、入室リクエストに含まれるユーザIDと会議室IDとが関連付けられ、HDD17に保存される。そして保存された会議室IDに基づき仮想的な会議室が作成され、その会議室への参加を許可する通知が入室リクエストに基づいて生成される。CPU31は、入室リクエストに対するレスポンスとしてサーバ1から送信される、会議室への参加を許可する通知を受信する。CPU31は、遠隔会議に参加して、サーバ1が仮想的に作成した会議室にユーザを入室させる(S2)。詳細は省略するが、サーバ1は、遠隔会議に新たに端末3が参加する度に、遠隔会議に参加する全参加者のユーザIDを、全ての端末3に通知する。また、遠隔会議から1つの端末3が離脱する度に、遠隔会議に参加する全参加者のユーザIDを、全ての端末3に通知する。
CPU31は、端末情報を収集し、サーバ1に送信する(S3)。端末情報は、例えば、CPU31のスペック(コア数(スレッド数)、クロック周波数、命令セット等)である。後述するが、サーバ1のCPU11は、送信側となる端末3にエンコードさせる解像度の異なる映像データのエンコード数を、夫々のCPU31のスペックに応じて設定する。
CPU31は、モニタ41の画面に、他の端末3から受信する映像データに基づく映像を表示しているか否か判断する(S4)。CPU31は、モニタ41に映像が表示されていない場合(S4:NO)、処理をS6に進める。CPU31は、映像表示がない旨を報せる情報を、夫々の端末3のユーザIDに関連付けて、サーバ1に送信する(S6)。具体的には、CPU31は、他の端末3夫々の映像が非表示であることを報せる表示解像度情報を、サーバ1に通知する。なお、受信側の端末3は、送信側の端末3の映像データを受信せず、モニタ41に映像が非表示であっても、サーバ1から通知される全参加者のユーザIDに基づき、その送信側の端末3が遠隔会議に参加しており、その送信側の端末3からの映像データを受信可能な状態であることを認識することができる。
CPU31は、サーバ1からエンコード解像度が設定された映像パラメータを受信したか否か判断する(S7)。CPU31は、サーバ1からエンコード解像度が設定された映像パラメータを受信していなければ(S7:NO)、処理をS9に進める。CPU31は、撮影バッファに記憶する撮影データをデフォルトで設定された映像パラメータの設定に従ってエンコードし、映像データを生成する。CPU31は、生成した映像データを送信バッファに記憶し、サーバ1に対してストリーミング方式で送信する(S9)。
CPU31は、サーバ1を介して他の端末3が送信した映像データを受信した場合、OSに従って受信バッファに記憶する。CPU31は、受信バッファに映像データが記憶されているか否か判断する(S10)。CPU31は、OSがサーバ1から受信した映像データが受信バッファに記憶されていなければ(S10:NO)、処理をS12に進める。CPU31は、映像データが受信バッファに記憶されている場合(S10:YES)、映像データを受信バッファから読み出す。CPU31は、映像データを映像用デコーダに入力し、所定の映像パラメータに従って伸張された表示データを取得する。CPU31は、表示データを表示制御部34に送信し、表示データに基づく映像をモニタ41に表示させる(S11)。
CPU31は、モニタ41に表示する映像の表示解像度が変更されたか否か判断する(S12)。例えば、遠隔会議に新たに参加した端末3のCPU31は、それまで映像表示のなかったモニタ41に、他の端末3が送信した映像データに基づく映像を表示する。この場合に、モニタ41に表示する映像の表示解像度が変更されるので(S12:YES)、CPU31は処理をS4に戻す。例えば、他の端末3の1つが新たに遠隔会議に参加した場合、CPU31は、新たに参加した端末3が送信する映像データに基づく映像を、モニタ41に新たに表示する。この場合もモニタ41に表示する映像の表示解像度が変更されるので(S12:YES)、CPU31は処理をS4に戻す。また、例えば、遠隔会議から他の端末3の1つが離脱した場合、CPU31は、離脱した端末3の映像データを受信しなくなる。この場合にもモニタ41に表示する映像の表示解像度が変更されるので(S12:YES)、CPU31は処理をS4に戻す。
なお、CPU31は、ユーザの操作を受け付けて、他の端末3から受信する映像データに基づきモニタ41に表示する映像の表示解像度を、夫々、ユーザが設定した表示解像度に変更して表示することができる。ユーザの操作に基づく表示解像度の変更は、他の端末3が送信する映像データを受信しながらも、その映像データに基づく映像のモニタ41への表示をオン(表示)からオフ(非表示)にする変更、及びオフからオンにする変更も含む。ユーザの操作によって表示解像度が変更された映像が1つでもあれば(S12:YES)、CPU31は処理をS4に戻す。
モニタ41に映像が表示されている場合(S4:YES)、CPU31は、モニタ41に表示されている他の端末3の映像の表示解像度を夫々取得する(S5)。CPU31は、取得した他の端末3の表示解像度を報せる表示解像度情報を、夫々の端末3のユーザIDに関連付けて、サーバ1に送信する(S6)。前述したように、CPU31は、他の端末3の映像表示を非表示にした場合、その端末3の表示解像度情報を非表示としてサーバ1に送信する。
CPU31は、表示解像度の変更がなければ(S12:NO)、遠隔会議を終了する指示の入力があるか否か判断する(S13)。CPU31は、遠隔会議を終了する指示の入力がない場合(S13:NO)、処理をS7に戻す。CPU31は、S7〜S13の処理を繰り返して、他の端末3から受信した映像データに基づく映像をモニタ41に表示する。
S7の処理において、サーバ1からエンコード解像度が設定された映像パラメータを受信した場合(S7:YES)、CPU31は、エンコード設定をリセットする(S8)。CPU31は、撮影データのエンコード条件を、サーバ1から指示された映像パラメータに変更する。CPU31は、変更後の映像パラメータに従って撮影データをエンコードした映像データを生成し始める。CPU31は、処理をS9に進め、上記同様、S7〜S13の処理を繰り返して、他の端末3から受信した映像データに基づく映像をモニタ41に表示する。
例えば、遠隔会議の管理者権限を有するユーザの操作する端末3において遠隔会議を終了する操作の入力が受け付けられた場合、サーバ1は、遠隔会議を終了する通知を全ての端末3に送信する。CPU31は、サーバ1から遠隔会議を終了する通知を受信した場合(S13:YES)、CPU31は、サーバ1に対して仮想的な会議室からの退室するリクエストを送信する。また、端末3において遠隔会議を終了する操作を受け付けた場合にも、CPU31は、サーバ1に対して仮想的な会議室からの退室するリクエストを送信する。CPU31は、サーバ1との接続を切断して遠隔会議への参加を終了し、会議参加プログラムの実行を終了する。
次に、図3〜図10を参照し、サーバ1のCPU11が遠隔会議プログラムの実行に従って行う処理について説明する。サーバ1のCPU11は、入力部22に対して入力される操作に基づき、遠隔会議プログラムをHDD17から読み込んで、図3に示すメイン処理を実行する。CPU11は、遠隔会議プログラム実行時の初期設定で、RAM13に、記憶領域50(図7参照)と、記憶領域60(図8参照)を確保する(S21)。図7に示す、記憶領域50は、遠隔会議に参加する端末3の端末情報及び表示解像度情報を記憶する領域である。記憶領域50には、ユーザID記憶エリア51、端末情報記憶エリア52及び解像度情報記憶エリア53が設けられる。図8に示す、記憶領域60は、エンコード解像度の設定に用いるグループを決定するための演算に用いられる領域である。記憶領域60は、後述する解像度グループ決定処理(図5参照)で使用される。記憶領域60には、ユーザID記憶エリア61、縦解像度記憶エリア62、差分値記憶エリア63、分割位置記憶エリア64、グループ記憶エリア65、表示解像度記憶エリア66及びエンコード解像度記憶エリア67が設けられる。記憶領域60は、遠隔会議に参加する端末3の夫々に対応して設けられる。
図3に示すように、CPU11は、遠隔会議の開始を待機する(S22:NO)。図示しないが、CPU11は、端末3から入室リクエストを受信すると、端末3を遠隔会議に参加させる処理を行う図示外のプログラムを、遠隔会議プログラムとの並列処理によって実行する。上記したように、CPU11は、入室リクエストに含まれる会議室IDと一致する会議室IDがHDD17に保存されていなければ、仮想的な会議室を作成する。CPU11は、入室リクエストに含まれるユーザIDと会議室IDとを関連付けて、HDD17に保存する。また、CPU11は、入室リクエストに含まれるユーザIDを、RAM13の記憶領域50のユーザID記憶エリア51に記憶する。CPU11は、入室リクエストに対するレスポンスを端末3に送信する。CPU11は、仮想的な会議室を作成し、遠隔会議を開始したら(S22:YES)、処理をS23に進める。なお、前述したように、CPU11は、端末3が新たに遠隔会議に参加したり、遠隔会議から離脱したりする度に、遠隔会議に参加する全参加者のユーザIDを、全ての端末3に通知する。
CPU11は、会議室に新たに参加した端末3から端末情報を受信した場合(S23:YES)、受信した端末情報を、RAM13の記憶領域50のユーザID記憶エリア51に記憶する端末3のユーザIDに関連付けて、端末情報記憶エリア52に記憶する(S24)。例えば、図7に示すように、ユーザIDが「001」の端末Aから端末情報を受信した場合、CPU11は、クロック周波数3.2GHz、コア数2(スレッド数4)、命令セットBWY搭載等の端末情報を、ユーザID「001」に関連付けて端末情報記憶エリア52に記憶する。同様に、CPU11は、ユーザID「002」〜「008」の端末B〜Hから端末情報を受信した場合、夫々の端末情報をユーザID「002」〜「008」に関連付けて端末情報記憶エリア52に記憶する。
図3に示すように、CPU11は、会議室に新たに参加した端末3から端末情報に次いで送信される表示解像度情報を受信する。CPU11は、RAM13の記憶領域50の解像度情報記憶エリア53に、端末3のユーザIDに関連付けて表示解像度情報を記憶する(S26)。会議室に参加した直後の端末3は、デフォルトで設定された映像パラメータの設定に従ってエンコードした映像データを送信する。会議室に新たに参加した端末3の映像が、会議室に既に参加する端末3のモニタ41に表示される。会議室に既に参加する端末3は、モニタ41に表示された映像の表示解像度を示す表示解像度情報を、サーバ1に送信する。例えば、図7に示すように、ユーザIDが「001」の端末Aから表示解像度情報を受信した場合、CPU11は、端末Aのモニタ41に表示される端末B〜Hの映像の表示解像度を、ユーザID「001」に関連付けて解像度情報記憶エリア53に記憶する。なお、図7に示す例は、CPU11が、端末Aから、モニタ41に端末Bの映像を表示せず、端末Cの映像を1920×1080の表示解像度で表示し、端末D〜Hの映像を夫々320×240の表示解像度で表示することを示す表示解像度情報を受信した例である。なお、表示解像度は、横解像度(横のドット数)×縦解像度(縦のドット数)で表されるものとする。CPU11は、同様に、ユーザID「002」〜「008」の端末B〜Hから表示解像度情報を受信した場合、夫々のモニタ41に表示される映像の表示解像度を、ユーザID「002」〜「008」に関連付けて解像度情報記憶エリア53に記憶する。
なお、前述したように、端末3は、ユーザの操作によって表示解像度が変更された場合にも、変更後の表示解像度情報をサーバ1に送信する。図3に示すように、CPU11は、既に会議室に参加しており端末情報を送信済みの端末3から表示解像度情報を受信した場合にも(S23:NO,S25:YES)、受信した端末3のユーザIDに関連付けて、RAM13の解像度情報記憶エリア53に表示解像度情報を記憶する(S26)。
CPU11は、処理をS27に進め、エンコーダ設定決定処理(図4参照)を実行する(S27)。図4に示すように、CPU11は、記憶領域50のユーザID記憶エリア51に記憶する端末3のユーザIDを、1つ選択する(S41)。選択対象のユーザIDは、表示解像度情報を受信した端末3のユーザIDを除く未選択の端末3のユーザIDである。CPU11は、選択したユーザIDに関連付けられた端末3の端末情報を端末情報記憶エリア52から読み込む(S42)。CPU11は、ユーザID記憶エリア51に記憶するユーザIDの数を、全端末数として算出する(S43)。CPU11は、全端末数から、1、即ち表示解像度情報を受信した端末3を差し引いた数を、作動上限数として算出する。CPU11は、作動上限数と、選択した端末3の端末情報とに基づいて、選択した端末3において作動させるエンコーダの最大数(最大作動数)を決定する(S45)。
選択した端末3において同時に作動可能なエンコーダの数は、コア数又はスレッド数に依存する。コア数又はスレッド数が複数有る場合、CPU11は、選択した端末3のCPU稼働率が100%とならないように、コア数又はスレッド数から1引いた数を最大作動数として仮に設定する。また、クロック周波数が所定の周波数より低かったり、命令セットが所定の命令を含まないものだったりする等、撮影データのエンコード処理において所定のパフォーマンスが得られにくい場合、CPU11は、仮に設定する最大作動数を、更に1減らす。但し、最大作動数は1以上に設定する。更に、CPU11は、最大作動数が作動上限数より大きければ、最大作動数を作動上限数に決定し、作動上限数以下なら、仮に設定した最大作動数に決定する。
例えば、図7に示すように、端末Aが選択された場合、CPU11は、遠隔会議に参加する端末3の数が、端末Aを除くと端末B〜Hの7であるので、作動上限数を7に設定する。端末AのCPU31のクロック周波数3.2GHzが所定の周波数より高く、命令セットBWYが所定の命令を含む場合、スレッド数が4であるので、CPU11は、端末Cの最大作動数を3に仮に設定する。CPU11は、仮に設定した最大作動数3が作動上限数7以下なので、最大作動数を3に決定する。
図4に示すように、CPU11は、解像度グループ決定処理(図5参照)を実行する(S45)。図5に示すように、CPU11は、記憶領域50の解像度情報記憶エリア53から、選択外の端末3のモニタ41に夫々表示される、選択した端末3の映像の表示解像度のうちの縦解像度(縦のドット数)を抽出する(S61)。モニタ41に表示される映像のアスペクト比は様々であるが、16:9又は4:3が一般的である。本実施形態では、処理の簡易化のため、CPU11は、表示解像度の縦解像度を抽出する。CPU11は、選択した端末3に対応する記憶領域60(図8参照)のユーザID記憶エリア61と縦解像度記憶エリア62との夫々に、選択外の端末3のユーザIDと、抽出した縦解像度とを関連付けて記憶する。例えば、図8に示すように、ユーザIDが「001」の端末AがS41で選択された場合、CPU11は、ユーザID「002」〜「008」と、端末B〜Hの夫々のモニタ41に表示される端末Aの映像の縦解像度とを抽出し、記憶領域60に記憶する。なお、図8において、縦解像度記憶エリア62における縦解像度の並びの状態は、後述するS71の処理においてソート後の状態を模式的に示したものであり、S61における抽出時には、例えばユーザID順に縦解像度が並べられた状態である。
なお、選択外の端末3のモニタ41に、選択した端末3の映像が非表示である場合、CPU11は、縦解像度を抽出せず、無効として処理する。例えば、ユーザIDが「002」の端末BがS41で選択された場合、CPU11は、ユーザID「003」,「004」,「007」,「008」と、端末C,D,G,Hの夫々のモニタ41に表示される端末Bの映像の縦解像度とを抽出する。CPU11は、端末Bの映像を非表示とする端末A,E,FのユーザIDと縦解像度を抽出対象にしない。
図5に示すように、CPU11は、最大作動数が1より大きいか否か判断する(S62)。最大作動数、即ち選択した端末3において作動可能なエンコーダの数が1である場合(S62:NO)、CPU11は、選択外の端末3を1つのグループに設定し(S64)、処理をS66に進める。最大作動数が1より大きい場合(S62:YES)、CPU11は、記憶領域60の縦解像度記憶エリア62から、最大の縦解像度と最小の縦解像度とを抽出する。CPU11は、最大の縦解像度と最小の縦解像度との差分値を求め、所定の第一差分値と比較する(S63)。第一差分値は、2つの受信側の端末3において同じ解像度の映像データを異なる表示解像度で表示しても、表示される映像の品質に対する影響が小さい値に、予め設定される。本実施形態では、第一差分値に、例えば240が設定されている。差分値が第一差分値未満の場合(S63:NO)、CPU11は、選択外の端末3を1つのグループに設定し(S64)、処理をS66に進める。差分値が第一差分値以上の場合(S63:YES)、CPU11は、グループ振り分け処理(図6参照)を実行する(S65)。
図6に示すように、CPU11は、選択した端末3に対応する記憶領域60において、縦解像度記憶エリア62に記憶された縦解像度を大きさ順に並べ替え、ユーザID記憶エリア61のユーザIDと関連付けて記憶する(S71)。図8の例では、選択された端末Aの映像が端末B〜Hの夫々において表示される縦解像度が、大きい順に、1080(端末D)、720(端末F)、720(端末G)、480(端末B)、480(端末C)、160(端末E)、144(端末H)の順に並べ替えられる。CPU11は、縦解像度記憶エリア62において、並べ替えによって並びの順番が隣り合う縦解像度同士の差分を夫々算出する(S72)。算出結果は、記憶領域60の差分値記憶エリア63に記憶される。図8の例では、端末Dの縦解像度1080と、端末Fの縦解像度720との差分360が、差分値記憶エリア63に記憶される。同様に、縦解像度記憶エリア62における並びの順に隣り合う他の縦解像度同士の差分も夫々算出され、差分値記憶エリア63に記憶される。
CPU11は、差分値記憶エリア63に記憶する差分値のうち、最も大きい差分値を抽出する(S73)。図8の例では、端末Dの縦解像度1080と端末Fの縦解像度720との差分値である360が、他の差分値よりも大きいので、抽出される。CPU11は、抽出した差分値を、差分値記憶エリア63から削除する(S74)。CPU11は、抽出した差分値を、所定の第二差分値と比較する(S75)。第二差分値は、第一差分値と同様に、2つの受信側の端末3において同じ解像度の映像データを異なる表示解像度で表示しても、表示される映像の品質に対する影響が小さいとして、予め設定された値である。本実施形態では、第二差分値にも、例えば240が設定されている。なお、第一差分値と第二差分値は、異なる値が設定されてもよい。
抽出した差分値が第二差分値以上の場合(S75:YES)、CPU11は、抽出した差分値の算出対象となった縦解像度の間の位置をグループの分割位置の候補に設定し、記憶領域60の分割位置記憶エリア64に記憶する(S76)。CPU11は、第二差分値との比較がまだ行われていない差分値があり、差分値記憶エリア63に差分値が記憶されていれば(S77:NO)、処理をS73に進める。CPU11は、S73〜S77の処理を繰り返し、上記同様、第二差分値以上の差分値の算出対象となった縦解像度の間の位置を、グループの分割位置の候補に設定する。CPU11は、分割位置記憶エリア64に、候補を設定した順を記憶する。例えば、図9に示すように、端末Dと端末Fの間の位置、端末Cと端末Eの間の位置、及び端末Gと端末Bの間の位置が、順に、グループ分割位置に設定され、分割位置記憶エリア64に設定順が記憶される。
図6に示すように、抽出した差分値が第二差分値未満の場合(S75:NO)、CPU11は、処理をS78に進める。CPU11は、グループ数が最大作動数、即ち選択した端末3において作動可能なエンコーダの数と同数になるように、最大作動数から1少ない数分のグループ分割位置を、設定した順に分割位置記憶エリア64から抽出する(S78)。図9の例では、選択された端末Aの最大作動数が3であるので、1番目に設定された端末Dと端末Fの間の位置と、2番目に設定された端末Cと端末Eの間の位置が、夫々、グループ分割位置として抽出される。端末Gと端末Bの間に設定されたグループの分割位置は、破棄される。
CPU11は、抽出したグループ分割位置において各端末3を分類したグループを設定し、記憶領域60のグループ記憶エリア65に、各端末3が分類されたグループの識別子(例えばグループ番号)を記憶する(S79)。図10に示す例では、グループ1に端末Dが分類され、グループ2に端末F,G,B,Cが分類され、グループ3に端末E,Hが分類される。CPU11は、処理を解像度グループ決定処理(図5参照)のS66に進める。
図5に示すように、CPU11は、記憶領域50の解像度情報記憶エリア53から、選択外の端末3で表示される選択した端末3の映像の表示解像度を夫々読み込んで、記憶領域60の表示解像度記憶エリア66に記憶する(S66)。CPU11は、処理をエンコーダ設定決定処理(図4参照)のS46に進める。
図4に示すように、CPU11は、グループ記憶エリア65に記憶するグループの識別子を、1つ選択する(S46)。CPU11は、表示解像度記憶エリア66に記憶された表示解像度のうち、選択したグループに対応する表示解像度を抽出する。CPU11は、抽出した表示解像度のうち、縦解像度が最も大きな表示解像度を抽出する。CPU11は、抽出された縦解像度が最も大きな表示解像度の中から、横解像度が最も大きな表示解像度をさらに抽出する。CPU11は、抽出した表示解像度を、そのグループに属する端末3に対応するエンコード解像度として決定する。CPU11は、抽出した表示解像度を、記憶領域60のエンコード解像度記憶エリア67に記憶する(S47)。CPU11は、エンコード解像度がまだ決定されていないグループがあれば(S48:NO)、処理をS46に戻す。CPU11は、S46〜S48の処理を繰り返し、上記同様、各グループのエンコード解像度を決定する。
例えば図10に示すように、端末Dが属するグループ1では、端末Dの表示解像度1920×1080が、グループ1のエンコード解像度に決定される。端末F,G,B,Cが属するグループ2では、端末Fの表示解像度1280×720が最も大きいので、グループ2のエンコード解像度に決定される。端末E,Hが属するグループ3では、端末Eの表示解像度284×160が端末Hより大きいので、グループ3のエンコード解像度に決定される。
図4に示すように、CPU11は、全てのグループに対してエンコード解像度を決定したら(S48:YES)、処理をS49に進める。CPU11は、未選択の端末3があれば(S49:NO)、処理をS41に戻し、S41〜S49を繰り返す。S25の処理で表示解像度情報を受信した端末3を除く端末3の全てに対し、上記同様のグループの分類とエンコード解像度の決定を行ったら(S49:YES)、CPU11は、処理を遠隔会議プログラムのメイン処理(図3参照)のS28に進める。
CPU11は、記憶領域60に記憶する夫々の端末3に対し、エンコード解像度記憶エリア67に記憶するグループごとのエンコード解像度を設定した映像パラメータを送信する(S28)。例えば、図10に示すように、端末Aに対しては、「1920×1080」と「1280×720」と「284×160」の3つのエンコード解像度で撮影データをエンコードする指示がサーバ1から送信される。前述したように、端末AのCPU31は、エンコード設定をリセットし、撮影データのエンコード条件を変更して、上記3つのエンコード解像度でエンコードした映像データの生成を開始する。
図3に示すように、CPU11は、処理をS29に進め、各端末3がS9の処理(図2参照)でストリーミング送信する映像データを、いずれの端末3からも受信していなければ(S29:NO)、処理をS31に進める。CPU11は、いずれかの端末3から映像データを受信した場合(S29:YES)、受信した端末3に対応する記憶領域60に記憶されたユーザIDと、そのユーザIDに対応するエンコード解像度とに基づいて、受信した映像データを各端末3にストリーミング形式で再送信する(S30)。即ち、CPU11は、ユーザIDで識別される各端末3に、夫々のユーザIDに対応付けられたエンコード解像度と同じ解像度の映像データを、受信した映像データの中から選択して再送信する。
例えば、図10に示すように、端末AのCPU31は、解像度が「1920×1080」、「1280×720」及び「284×160」の3つの映像データをサーバ1に対してストリーミング送信する。サーバ1のCPU11は、受信した映像データのうち、解像度が「1920×1080」の映像データを、端末Dに再送信する。また、CPU11は、端末F,G,B,Cに対して「1280×720」の映像データを夫々再送信し、端末E,Hに対しては、「284×160」の映像データを夫々再送信する。
なお、前述したように、受信側の端末3において送信側の端末3の映像を非表示とした場合、サーバ1のCPU11は、送信側の端末3の映像パラメータの設定において、受信側の端末3における表示解像度を無効として処理する。この場合、CPU11は、受信側の端末3に、送信側の端末3の映像データを再送信しない。受信側の端末3は、送信側の端末3の映像データを受信せず、映像が非表示である場合、送信側の端末3が遠隔会議に未参加であって映像データを受信しない状態なのではなく、受信側の端末3において送信側の端末3の映像を非表示に設定したため映像データを受信しない状態であることを、参加者情報に基づいて判断することができる。従って、受信側の端末3は、送信側の端末3の映像データを受信していなくても、その送信側の端末3の映像を、非表示から表示に変更することができる。受信側の端末3において映像が非表示から表示に変更された場合、モニタ41には、映像を表示する枠だけが変更後の表示解像度に合わせた大きさに表示される。このとき、枠内に映像は表示されない。しかし、サーバ1のCPU11は、受信側の端末3における表示解像度の変更に基づいて送信側の端末3に映像パラメータの変更を要求する。よって、受信側の端末3は、サーバ1が再送信する送信側の端末3の映像データを受信し、枠内に送信側の端末3の映像を表示することができる。
CPU11は、処理をS31に進め、遠隔会議が終了したか否か判断する(S31)。前述したように、CPU11は、遠隔会議プログラムとの並列処理によって、端末3を遠隔会議に参加・退室させる処理等を含む図示外のプログラムを実行する。CPU11は、そのプログラムの実行において、管理者権限を有するユーザの端末3において遠隔会議を終了する操作を受け付けた場合、または、全ての端末3から仮想的な会議室からの退室するリクエストを受信した場合に、遠隔会議を終了する。遠隔会議を終了しない場合(S31:NO)、CPU11は処理をS23に戻してS23〜S31を繰り返し、受信側の端末3における表示解像度の変更に応じて送信側の端末3の映像データの解像度を変更させる処理を継続する。遠隔会議を終了する場合(S31:YES)、CPU11は処理をS21に戻し、新たに遠隔会議が開始されるのを待機する。
以上説明したように、異なる解像度で符号化された2つの映像データがストリーミング送信される場合、送信に使用される帯域は、1つの映像データのみがストリーミング送信される場合と比べて大きい。最大の表示解像度と最小の表示解像度との差が第一差分値未満の場合(S63:NO)、グループが1つに設定されるので、送信側の端末3が送信する映像データは、1つの映像データである。従って、サーバ1は、映像データの送受信に使用される帯域を小さくし、通信負荷を低減することができる。
受信側の端末3には、同じグループに属する受信側の端末3の表示解像度に基づき決定された解像度でエンコードされた映像データが送信される。即ち、複数の受信側の端末3が表示解像度の差分に基づいてグループ分けされることによって、送信側の端末3は、複数の受信側の端末3夫々の表示解像度に合わせて複数の異なる解像度の映像データを生成せずに済む。言い換えると、送信側の端末3は、1つのグループにつき1つの解像度の映像データを生成すればよいので、映像データの生成数を抑制できる。
また、従来、例えば、所定の表示解像度を基準に、予め決められた高解像度の映像データと低解像度の映像データが生成される場合がある。この場合において、1つのグループが所定の表示解像度に近い表示解像度の受信側の端末3を含む場合、所定の表示解像度よりも僅かに大きい受信側の端末3が1つでも含まれるだけで、そのグループの受信側の端末3には、高解像度の映像データが送信される。これに対し、本実施形態では、グループに属する受信側の端末3の表示解像度に基づいて映像データの解像度が設定される。このため、そのグループに属する受信側の端末3に対しては、所定の表示解像度と同じ又はそれに近い解像度の映像データが生成され、送信される。従って、サーバ1は、例えば高解像度の映像データが送信される場合と比べ、映像データの送受信に使用される帯域を小さくでき、通信負荷を低減できる。
1つのグループに属する全ての受信側の端末3には、そのグループに属する受信側の端末3の最大の表示解像度と同じ解像度でエンコードされた映像データが送信される。よって、そのグループの受信側の端末3は、表示解像度に合わせて映像データを等倍又縮小してモニタに表示すればよい。従って、サーバ1は、受信側の端末3における映像データ表示の処理負荷を、映像データを拡大表示する場合と比べて低減できる。
表示解像度の差分が第二差分値以上の2つの受信側の端末3は、異なるグループに分類される。従って、サーバ1は、受信側の端末3に、夫々の表示解像度に適した解像度で生成された映像データを配信することができる。
送信側の端末3は、異なる解像度の映像データをデータ処理の性能に応じて適した負荷で生成することができる。従って、サーバ1は、送信側の端末3において、映像データの生成における処理負荷が高くなることを抑制できる。
送信側の端末3は、会議に参加する受信側の端末3の数(作動上限数)以上のエンコーダを起動せずに済む。従って、サーバ1は、送信側の端末3において、映像データの生成における処理負荷が高くなることを抑制することができる。
送信側の端末3は、サーバ1が表示解像度情報又は端末情報を取得したときにのみ、設定情報を受信し、映像データの生成数、解像度等を変更する。従って、サーバ1は、送信側の端末3において、映像データの生成数、解像度等の変更に伴うエンコーダのリセット処理が行われる頻度を低減することができる。
なお本発明は上記実施形態に限定されず、種々の変更が可能である。例えば、端末3は、ラップトップ型、タワー型のPCに限らず、ノート型のPCであってもよいし、スマートフォン、タブレット型端末等であってもよい。即ち端末3は、遠隔会議プログラムを実行でき、且つネットワーク10に接続でき、カメラ44による撮影と、モニタ41への映像の表示ができる端末装置であればよい。また、端末3は、マイク43、スピーカ45、カメラ44、モニタ41のうちの少なくとも一つを内蔵してもよい。
CPU11は、S26で表示解像度情報を受信し、解像度情報記憶エリア53に保存する際に、表示解像度に変更のあった端末3のみを抽出し、抽出した端末3を、S41における選択対象の端末3としてもよい。記憶領域50及び記憶領域60は、HDD17に設けてもよい。
CPU11は、選択外の端末3のモニタ41に、選択した端末3の映像が非表示である場合、選択した端末3の表示解像度が0×0であるものとして各処理を行ってもよい。この場合、CPU11は、S61で、選択外の端末3のモニタ41に、選択した端末3の映像が非表示である場合、縦解像度を0として抽出すればよい。
受信側の端末3において送信側の端末3の映像を非表示とした場合、本実施形態のサーバ1のCPU11は、受信側の端末3に送信側の端末3の映像データを再送信しないとしたが、これに限らず、解像度が最も小さいグループに対応する映像データを再送信してもよい。即ち、受信側の端末3は、モニタ41に表示可能な送信側の端末3の映像データを受信しながらも、非表示の状態とすることができる。故に、受信側の端末3は、送信側の端末3の映像が非表示から表示に変更された場合、直ちに、モニタ41に送信側の端末3の映像を表示することができる。
受信側の端末3のモニタ41に表示される送信側の端末3の映像は、任意のアスペクト比で表示されてもよい。例えば、縦解像度が横解像度より大きい、いわゆる縦長画面の映像データの場合、表示解像度の大きさの比較において、画面を90度回転させ、縦解像度と横解像度とを入れ替えた状態で比較すればよい。また、本実施形態では、表示解像度の大きさの比較を縦解像度で行ったが、横解像度で比較してもよい。あるいは、解像度の代わりに、対辺の長さ、画素数等で、大きさの比較を行ってもよい。
CPU11は、S71において、縦解像度の並び替えを小さい順に行ってもよい。CPU11は、S24において、端末情報として、CPU31のコア数(スレッド数)、クロック周波数、命令セット等を取得したが、必ずしも全ての情報を取得しなくてもよく、例えばスレッド数だけを取得してもよい。
本発明においては、端末3が、「端末装置」に相当し、サーバ1が、「制御装置」に相当する。送信側の端末3が、「第一端末」に相当し、受信側の端末3が、「第二端末」に相当する。S25の処理が、「第一取得ステップ」に相当する。S63の処理が、「第一判断ステップ」に相当する。エンコーダ設定決定処理(図4参照)が、「設定ステップ」に相当する。映像パラメータが、「設定情報」に相当する。S28の処理が、「送信ステップ」に相当する。RAM13が、「所定の記憶部」に相当する。S61の処理が、「記憶ステップ」に相当する。グループ振り分け処理(図6参照)が、「分類ステップ」に相当する。S47の処理が、「第一決定ステップ」に相当する。S72の処理が、「演算ステップ」に相当する。S75の処理が、「第二判断ステップ」に相当する。S23の処理が、「第二取得ステップ」に相当する。S44の処理が、「第二決定ステップ」に相当する。S43の処理が、「第三取得ステップ」に相当する。
1 サーバ
3 端末
10 ネットワーク
11 CPU
13 RAM
41 モニタ
44 カメラ
50,60 記憶領域
3 端末
10 ネットワーク
11 CPU
13 RAM
41 モニタ
44 カメラ
50,60 記憶領域
Claims (9)
- ネットワークを介して複数の端末装置と接続する制御装置のコンピュータが実行可能な遠隔会議プログラムであって、
前記制御装置のコンピュータに、
前記複数の端末装置のうちの1つである第一端末に接続されたカメラで撮影された撮影データに基づき前記第一端末で符号化され、ストリーミング形式で送信される映像データを、前記第一端末とは異なる複数の第二端末が前記制御装置を介して受信し、前記第二端末に接続されたモニタの夫々に前記映像データを復号して表示する映像の表示解像度を示す表示解像度情報を、前記複数の第二端末の夫々から取得する第一取得ステップと、
前記第一取得ステップにおいて取得した前記表示解像度情報に示される前記表示解像度のうちの最大の表示解像度と最小の表示解像度との差が、所定の第一差分値以上か否か判断する第一判断ステップと、
前記第一判断ステップにおいて前記最大の表示解像度と前記最小の表示解像度との差が前記第一差分値未満と判断した場合、前記第一端末に、前記撮影データに基づき前記最大の表示解像度以下、且つ前記最小の表示解像度以上の解像度で符号化された1つの前記映像データをストリーミング形式で送信させ、前記第一差分値以上と判断した場合には、前記第一端末に、解像度が異なる2以上の前記映像データであって、前記撮影データに基づき夫々前記最大の表示解像度以下、且つ前記最小の表示解像度以上の解像度で符号化された前記2以上の映像データをストリーミング形式で送信させる設定情報を設定する設定ステップと、
前記設定ステップにおいて設定した前記設定情報を、前記第一端末に送信する送信ステップと
を実行させることを特徴とする遠隔会議プログラム。 - 前記設定ステップは、
前記第一取得ステップにおいて前記複数の第二端末の夫々から取得した前記表示解像度情報を、前記第二端末の夫々と対応付けて、所定の記憶部に記憶する記憶ステップと、
前記記憶ステップにおいて記憶した前記表示解像度情報に示される前記表示解像度に基づいて、前記複数の第二端末を1以上のグループに分類する分類ステップと、
前記分類ステップにおいて分類した前記グループごとに、前記グループに属する前記第一端末に送信する前記映像データの解像度を、そのグループに属する前記複数の第二端末の前記表示解像度に基づいて決定する第一決定ステップと
を含み、
前記設定情報は、前記第一決定ステップにおいて決定した前記映像データの解像度を、前記撮影データに基づき前記第一端末に生成させる前記映像データの解像度として設定する情報を含むことを特徴とする請求項1に記載の遠隔会議プログラム。 - 前記第一決定ステップでは、前記グループに属する前記第二端末に送信する前記映像データの解像度を、そのグループに属する前記第二端末の前記表示解像度のうち、最大の解像度に決定することを特徴とする請求項2に記載の遠隔会議プログラム。
- 前記分類ステップは、
前記複数の第二端末の夫々の前記表示解像度の大きさ順に、2つの第二端末の前記表示解像度の差分を演算する演算ステップと、
前記演算ステップにおいて演算した前記差分が、所定の第二差分値以上か否か判断する第二判断ステップと
を含み、
前記分類ステップでは、前記第二判断ステップにおいて前記差分が前記第二差分値以上と判断した場合、前記2つの第二端末を異なる前記グループに分類することを特徴とする請求項2又は3に記載の遠隔会議プログラム。 - 前記制御装置のコンピュータに、
前記第一端末のデータ処理の性能を示す端末情報を取得する第二取得ステップと、
前記第二取得ステップにおいて取得した前記端末情報に基づいて、前記第一端末が前記映像データを異なる解像度で生成するため同時に実行するエンコーダの数を決定する第二決定ステップと
を更に実行させ、
前記分類ステップでは、前記複数の第二端末を分類する前記グループの数を、前記第二決定ステップにおいて決定した前記エンコーダの数を上限に決定することを特徴とする請求項2から4のいずれかに記載の遠隔会議プログラム。 - 前記制御装置のコンピュータに、ネットワークを介して前記制御装置に接続する前記複数の第二端末の接続数を取得する第三取得ステップを更に実行させ、
前記第二決定ステップでは、前記第三取得ステップにおいて取得した前記接続数を上限に、前記エンコーダの数を決定することを特徴とする請求項5に記載の遠隔会議プログラム。 - 前記設定ステップでは、前記第一取得ステップにおいて前記表示解像度情報を取得した場合、又は、前記第二取得ステップにおいて前記端末情報を取得した場合に、前記設定情報を設定することを特徴とする請求項5又は6に記載の遠隔会議プログラム。
- ネットワークを介して複数の端末装置と接続する制御装置であって、
前記複数の端末装置のうちの1つである第一端末に接続されたカメラで撮影された撮影データに基づき前記第一端末で符号化され、ストリーミング形式で送信される映像データを、前記第一端末とは異なる複数の第二端末が前記制御装置を介して受信し、前記第二端末に接続されたモニタの夫々に前記映像データを復号して表示する映像の表示解像度を示す表示解像度情報を、前記複数の第二端末の夫々から取得する第一取得手段と、
前記第一取得手段が取得した前記表示解像度情報に示される前記表示解像度のうちの最大の表示解像度と最小の表示解像度との差が、所定の第一差分値以上か否か判断する第一判断手段と、
前記第一判断手段が、前記最大の表示解像度と前記最小の表示解像度との差が前記第一差分値未満と判断した場合、前記第一端末に、前記撮影データに基づき前記最大の表示解像度以下、且つ前記最小の表示解像度以上の解像度で符号化された1つの前記映像データをストリーミング形式で送信させ、前記第一差分値以上と判断した場合には、前記第一端末に、解像度が異なる2以上の前記映像データであって、前記撮影データに基づき夫々前記最大の表示解像度以下、且つ前記最小の表示解像度以上の解像度で符号化された前記2以上の映像データをストリーミング形式で送信させる設定情報を設定する設定手段と、
前記設定手段が設定した前記設定情報を、前記第一端末に送信する送信手段と
を備えたことを特徴とする制御装置。 - ネットワークを介して複数の端末装置と接続する制御装置のコンピュータがプログラムに従って実行可能な遠隔会議方法であって、
前記複数の端末装置のうちの1つである第一端末に接続されたカメラで撮影された撮影データに基づき前記第一端末で符号化され、ストリーミング形式で送信される映像データを、前記第一端末とは異なる複数の第二端末が前記制御装置を介して受信し、前記第二端末に接続されたモニタの夫々に前記映像データを復号して表示する映像の表示解像度を示す表示解像度情報を、前記複数の第二端末の夫々から取得する第一取得ステップと、
前記第一取得ステップにおいて取得した前記表示解像度情報に示される前記表示解像度のうちの最大の表示解像度と最小の表示解像度との差が、所定の第一差分値以上か否か判断する第一判断ステップと、
前記第一判断ステップにおいて前記最大の表示解像度と前記最小の表示解像度との差が前記第一差分値未満と判断した場合、前記第一端末に、前記撮影データに基づき前記最大の表示解像度以下、且つ前記最小の表示解像度以上の解像度で符号化された1つの前記映像データをストリーミング形式で送信させ、前記第一差分値以上と判断した場合には、前記第一端末に、解像度が異なる2以上の前記映像データであって、前記撮影データに基づき夫々前記最大の表示解像度以下、且つ前記最小の表示解像度以上の解像度で符号化された前記2以上の映像データをストリーミング形式で送信させる設定情報を設定する設定ステップと、
前記設定ステップにおいて設定した前記設定情報を、前記第一端末に送信する送信ステップと
を含むことを特徴とする遠隔会議方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015070479A JP2016192610A (ja) | 2015-03-31 | 2015-03-31 | 遠隔会議プログラム、制御装置及び遠隔会議方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015070479A JP2016192610A (ja) | 2015-03-31 | 2015-03-31 | 遠隔会議プログラム、制御装置及び遠隔会議方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016192610A true JP2016192610A (ja) | 2016-11-10 |
Family
ID=57245811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015070479A Pending JP2016192610A (ja) | 2015-03-31 | 2015-03-31 | 遠隔会議プログラム、制御装置及び遠隔会議方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016192610A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729379A (zh) * | 2019-02-01 | 2019-05-07 | 广州虎牙信息科技有限公司 | 直播视频连麦的实现方法、装置、终端和存储介质 |
CN110519651A (zh) * | 2019-08-06 | 2019-11-29 | 浙江大华技术股份有限公司 | 一种显示控制方法及服务器 |
JP2020149568A (ja) * | 2019-03-15 | 2020-09-17 | 沖電気工業株式会社 | 通信ノード、通信プログラム、通信方法、配信構成管理装置、及び情報配信システム |
WO2023071356A1 (zh) * | 2021-10-29 | 2023-05-04 | 朱玉荣 | 视频会议处理方法、处理设备、会议系统以及存储介质 |
-
2015
- 2015-03-31 JP JP2015070479A patent/JP2016192610A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729379A (zh) * | 2019-02-01 | 2019-05-07 | 广州虎牙信息科技有限公司 | 直播视频连麦的实现方法、装置、终端和存储介质 |
JP2020149568A (ja) * | 2019-03-15 | 2020-09-17 | 沖電気工業株式会社 | 通信ノード、通信プログラム、通信方法、配信構成管理装置、及び情報配信システム |
JP7314545B2 (ja) | 2019-03-15 | 2023-07-26 | 沖電気工業株式会社 | 通信ノード、通信プログラム、通信方法、配信構成管理装置、及び情報配信システム |
CN110519651A (zh) * | 2019-08-06 | 2019-11-29 | 浙江大华技术股份有限公司 | 一种显示控制方法及服务器 |
CN110519651B (zh) * | 2019-08-06 | 2022-11-04 | 浙江大华技术股份有限公司 | 一种显示控制方法及服务器 |
WO2023071356A1 (zh) * | 2021-10-29 | 2023-05-04 | 朱玉荣 | 视频会议处理方法、处理设备、会议系统以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7508413B2 (en) | Video conference data transmission device and data transmission method adapted for small display of mobile terminals | |
KR102157634B1 (ko) | 영상 획득 방법 및 로컬 엔드포인트 호스트 장치 | |
US9602769B2 (en) | Timestamp-based audio and video processing method and system thereof | |
JP5216303B2 (ja) | 合成映像配信装置ならびにその方法およびプログラム | |
KR101955202B1 (ko) | 다자간 영상 통화 장치 및 이를 이용한 다자간 영상 출력 방법 | |
KR101696321B1 (ko) | 화상 회의 제어 시스템 및 화상 회의 예약 방법 | |
US8976220B2 (en) | Devices and methods for hosting a video call between a plurality of endpoints | |
JP6179179B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
US10044782B2 (en) | Terminal device, data transmission method, and computer-readable recording medium | |
US9118808B2 (en) | Dynamic allocation of encoders | |
US10079867B2 (en) | Apparatus, system, and method of controlling output of content data, and recording medium | |
JP2016192610A (ja) | 遠隔会議プログラム、制御装置及び遠隔会議方法 | |
CN112911197A (zh) | 影像信息处理系统、移动通信终端和影像信息处理方法 | |
US8704871B2 (en) | Method and system for creating a continuous presence video-conference | |
JP2020005302A (ja) | 伝送管理装置 | |
CN113992883B (zh) | 视频会议处理方法、处理设备、会议系统以及存储介质 | |
EP3065373A1 (en) | Communication system, communication method, relay device, and computer program product | |
JP6179226B2 (ja) | 議事録生成装置、議事録生成方法、議事録生成プログラムおよび通信会議システム | |
EP3068072A1 (en) | Transmission management apparatus, transmission system, transmission management method and recording medium | |
EP3068132A1 (en) | Information processing apparatus, information processing system, and information processing method | |
EP3068071A1 (en) | Transmission management apparatus, transmission system, transmission management method and recording medium | |
JP6466638B2 (ja) | 動き変化量に応じて撮影動画像のフレームを間引く端末、システム、プログラム及び方法 | |
CN115209189B (zh) | 一种视频流传输方法、系统、服务器及存储介质 | |
JP2017028660A (ja) | 情報処理装置、画像表示方法、通信システム、プログラム | |
WO2016101623A1 (zh) | 多点音频视频通信中远程互动的方法及设备 |