JP2015106768A - 通信装置のプログラム、通信装置、及び通信方法 - Google Patents

通信装置のプログラム、通信装置、及び通信方法 Download PDF

Info

Publication number
JP2015106768A
JP2015106768A JP2013246882A JP2013246882A JP2015106768A JP 2015106768 A JP2015106768 A JP 2015106768A JP 2013246882 A JP2013246882 A JP 2013246882A JP 2013246882 A JP2013246882 A JP 2013246882A JP 2015106768 A JP2015106768 A JP 2015106768A
Authority
JP
Japan
Prior art keywords
time
data
unit
cpu
communication
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
JP2013246882A
Other languages
English (en)
Inventor
純 宮澤
Jun Miyazawa
純 宮澤
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.)
Brother Industries Ltd
Original Assignee
Brother Industries 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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2013246882A priority Critical patent/JP2015106768A/ja
Priority to US14/549,676 priority patent/US20150156325A1/en
Priority to US14/550,174 priority patent/US9473541B2/en
Publication of JP2015106768A publication Critical patent/JP2015106768A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1046Call controllers; Call servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/56Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities
    • H04M3/568Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities audio processing specific to telephonic conferencing, e.g. spatial distribution, mixing of participants
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/152Multipoint control units therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Environmental & Geological Engineering (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ジッタを最小化することによって通話品質の劣化を抑制する通信装置のプログラム、通信装置、及び通信方法を提供する。
【解決手段】通信装置のCPUは、第1記憶部に所定時間以上の音のサンプリングデータが記憶されているか判断する。CPUは、サンプリングデータが記憶されていると判断した場合、所定時間分のサンプリングデータを圧縮し、単位音データを生成し、第2記憶部に記憶する。CPUは、計測データによる通信に基づいて、ネットワークの通信状態を決定する。CPUは、決定された通信状態に応じて、結合時間を設定する(S19、S21、S23)。CPUは、第2記憶部に、結合時間以上の時間分の単位音データが記憶されている場合(S25:YES)、結合時間分の単位音データを含むパケットを生成する(S27)。CPUは、生成されたパケットを、結合時間の周期で送信する(S29)。
【選択図】図4

Description

本発明は、ネットワークを介して他の通信装置と音のデータの通信を行う通信装置のプログラム、通信装置、及び通信方法に関する。
複数の通信装置の夫々が、他の通信装置との間で音のデータ(以下、音データという。)の通信を行うことによって、複数の通信装置の夫々のユーザ間での通話を可能とするシステムが知られている。特許文献1は、発信側の装置からの音声のデータパケットの送出間隔を、60ms以下、より好ましくは約20msとする技術を開示する。この技術によれば、通信中にデータパケットが失われた場合でも、受信側の装置のユーザは、会話音声の途切れを認識し難くなる。
特定の通信装置から送信された複数の音データの夫々が、ネットワークを経由して他の通信装置に到達するまでに要する時間は、ネットワークの状態等に応じて変動する場合がある。以下、特定の通信装置から音データが送信されてから、音データが他の通信装置に到達するまでに要する時間を、遅延時間という。複数の音データの夫々の遅延時間の変動を、ジッタという。通話の品質を維持するためには、ジッタは小さい方が好ましい。これに対し、ジッタによる通話の品質の劣化を防止する周知の技術として、所定容量分の音データを他の通信装置が常に記憶装置(RAM等)に記憶し、記憶した音データに基づいて音を出力する技術が知られている。
特開2000−349824号公報
ジッタが大きい時、特許文献1に記載された技術によって特定の通信装置が複数の音データを一定周期で送信した場合でも、他の通信装置が複数の音データを受信する間隔は不安定になる。この場合、複数の音データの夫々に基づいて他の通信装置が音を出力する間隔も不安定になる。このため、他の通信装置が出力する音の間隔が長くなった場合に、出力される音に途切が生じる可能性がある。このように、特許文献1に記載された技術は、特定の通信装置からの複数の音データの送信間隔を所定間隔としているに過ぎないので、他の通信装置で複数の音データを受信する場合のジッタを小さくすることはできない。又、所定容量分の音データを常に記憶する周知の技術が用いられた場合、特定の通信装置から複数の音データが送信されてから、複数の音データに基づく音が他の通信装置から出力されるまでに要する時間が長くなるので、通話のリアルタイム性が悪化する場合がある。
本発明の目的は、ジッタを最小化することによって通話品質の劣化を抑制する通信装置のプログラム、通信装置、及び通信方法を提供することである。
本発明の第1態様に係る通信装置のプログラムは、ネットワークを介して複数の相手装置との間で遠隔会議を実行可能な通信装置のコンピュータが実行可能なプログラムであって、前記コンピュータを、音のサンプリングデータを記憶可能な第1記憶部に、所定時間以上の時間分の音のサンプリングデータが記憶されているか判断する第1判断手段と、前記第1判断手段によって前記所定時間以上の時間分の音のサンプリングデータが前記第1記憶部に記憶されていると判断された場合、前記第1記憶部への記憶順に従い前記第1記憶部に記憶された前記サンプリングデータの前記所定時間分を圧縮し、単位音データを生成する第1生成手段と、前記第1生成手段によって生成された前記単位音データを第2記憶部に記憶する記憶手段と、前記ネットワークに対して送信される送信データ、及び、前記ネットワークから受信される受信データの少なくとも一方に基づいて、前記ネットワークの通信状態が第1状態であるか第2状態であるかを決定する決定手段と、前記決定手段によって前記第1状態であると決定されたことに応じて、1つのパケットに含める前記単位音データの基となる音の時間を示す結合時間を第1時間に設定し、前記決定手段によって前記第2状態であると決定されたことに応じて、前記結合時間を前記第1時間よりも大きい第2時間に設定する設定手段と、前記第2記憶部に、前記設定手段によって設定された前記結合時間以上の時間分の前記単位音データが記憶されているか判断する第2判断手段と、前記第2判断手段によって、前記結合時間以上の時間分の前記単位音データが前記第2記憶部に記憶されていると判断されたことに応じ、前記結合時間分の前記単位音データを含むパケットを生成する第2生成手段と、前記第2生成手段によって生成された前記パケットを、前記結合時間の周期で、少なくとも1つの相手装置に送信する送信手段として機能させることを特徴とする。
第1態様によれば、通信装置は、ネットワークの通信状態が第1状態であるか第2状態であるかに応じて、結合時間を設定する。結合時間は、1つのパケットに含める単位音データの音の時間であり、パケットの送信周期でもある。通信装置は、通信状態に応じて結合時間を設定することによって、少なくとも1つの相手装置に対してパケットを送信する場合の送信周期を調整できる。通信装置から長い周期でパケットが少なくとも1つの相手装置に送信される程、ジッタは小さくなる可能性が高くなる。ジッタが小さい程、単位音データに基づいて相手装置から出力される音の品質は良好となる。従って通信装置は、通信状態に応じて結合時間を設定し、ジッタを適正化することによって、通信品質の劣化を抑制できる。
第1態様において、前記コンピュータを、前記ネットワークに接続され、前記通信装置及び前期複数の相手装置との間でセッションを維持することで遠隔会議を行う会議サーバに前記送信データが送信されてから、前記会議サーバによって前記送信データが受信されるまでの遅延時間、及び、前記会議サーバによって送信された前記送信データが前記通信装置によって受信データとして受信されるまでの遅延時間の少なくとも一方の変動の程度を示すジッタを計測する計測手段として更に機能させ、前記決定手段は、前記計測手段によって計測された前記ジッタが第1値の場合に前記第1状態であると決定し、前記計測手段によって計測された前記ジッタが前記第1値よりも大きい第2値の場合に、前記第2状態であると決定してもよい。通信装置から送信されるパケットの送信周期が長くなる程、ジッタは小さくなる可能性が高い。通信装置は、特定されたジッタが大きい程、結合時間を大きくしてパケットの送信周期を長くする。従って通信装置は、ジッタを効率的に抑制して通信品質の劣化を抑制できる。
第1態様において、前記コンピュータを前記複数の相手装置の夫々が前記送信データを前記サーバに送信してから、前記サーバが前記送信データを受信するまでの複数の遅延時間、及び、前記サーバによって送信された送信データが前記複数の相手装置の夫々によって受信データとして受信されるまでの複数の遅延時間の少なくとも一方の変動の程度を示す複数のジッタを取得する取得手段として更に機能させ、前記決定手段は、前記計測手段によって計測された前記ジッタ、及び、前記取得手段によって取得された前記複数のジッタのうち最大のジッタが第1値の場合に前記第1状態であると決定し、前記計測手段によって計測された前記複数のジッタのうち最大のジッタが前記第1値よりも大きい第2値の場合に、前記第2状態であると決定してもよい。この場合、通信装置は、複数の相手装置の夫々に対応するジッタを最小することが可能となる。従って通信装置は、複数の相手装置の夫々から出力される音の品質を維持できる。
第1態様において、前記コンピュータを、前記少なくとも1つの相手装置に対して前記遠隔会議において共有される共有資料データの送信が行われているかを判断する第3判断手段として更に機能させ、前記決定手段は、前記第3判断手段による前記共有資料データの送信が行われていないとの判断に応じて、前記第1状態であると決定し、前記第3判断手段による前記共有資料データの送信が行われているとの判断に応じて、前記第2状態であると決定してもよい。通信装置から相手装置に対して共有資料データが送信される場合、送信されるデータ量は送信される前よりも多くなる。この場合、ジッタは増加する可能性が高い。従って通信装置は、共有資料データが送信されていると判断した場合、結合時間を大きくしてパケットを送信する周期を長くし、ジッタの増加を抑制する。これによって通信装置は、共有資料データが送信される場合も、通信品質の劣化を抑制できる。
第1態様において、前記コンピュータを、前記遠隔会議において前記少なくとも1つの相手装置に対してフレーム内圧縮画像のデータの送信が行われているかを判断する第3判断手段として更に機能させ、前記決定手段は、前記第3判断手段による前記フレーム内圧縮画像のデータの送信が行われていないとの判断に応じて、前記第1状態であると決定し、前記第3判断手段による前記フレーム内圧縮画像のデータの送信が行われているとの判断に応じて、前記第2状態であると決定してもよい。通信装置から相手装置に対して、フレーム内圧縮画像のデータが送信される場合、送信されるデータ量は送信される前よりも多くなる。この場合、ジッタは増加する可能性が高い。従って通信装置は、フレーム内圧縮画像のデータが送信されていると判断した場合、結合時間を大きくしてパケットを送信する周期を長くし、ジッタの増加を抑制する。これによって通信装置は、送信されるデータ量が増加した場合も、通信品質の劣化を抑制できる。
第1態様において、前記第1生成手段は、前記所定時間の周期である第1周期で前記単位音データを生成し、前記送信手段は、前記第1周期の整数倍の周期である複数の第2周期の何れかの周期で前記パケットを送信してもよい。この場合、通信装置は、生成したパケットを効率よく送信できる。
本発明の第2態様に係る通信装置は、ネットワークを介して複数の相手装置との間で遠隔会議を実行可能な通信装置であって、音のサンプリングデータを記憶可能な第1記憶部に、所定時間以上の時間分の音のサンプリングデータが記憶されているか判断する第1判断手段と、前記第1判断手段によって前記所定時間よりも長い時間分の音のサンプリングデータが前記第1記憶部に記憶されていると判断された場合、前記第1記憶部への記憶順に従い前記第1記憶部に記憶された前記サンプリングデータの前記所定時間分を圧縮し、単位音データを生成する第1生成手段と、前記第1生成手段によって生成された前記単位音データを第2記憶部に記憶する記憶手段と、前記遠隔会議において通信されるデータであって、前記ネットワークに対して送信される送信データ、及び、前記ネットワークから受信される受信データの少なくとも一方に基づいて、前記ネットワークの通信状態が第1状態であるか第2状態であるかを決定する決定手段と、前記決定手段によって前記第1状態であると決定されたことに応じて、1つのパケットに含める前記単位音データの基となる音の時間を示す結合時間を第1時間に設定し、前記決定手段によって前記第2状態であると決定されたことに応じて、前記結合時間を前記第1時間よりも大きい第2時間に設定する設定手段と、前記第2記憶部に、前記設定手段によって設定された結合時間以上の時間分の前記単位音データが記憶されているか判断する第2判断手段と、前記第2判断手段によって、前記結合時間以上の時間分の前記単位音データが前記第2記憶部に記憶されていると判断されたことに応じ、前記結合時間分の前記単位音データを含むパケットを生成する第2生成手段と、前記第2生成手段によって生成された前記パケットを、前記結合時間の周期で、少なくとも1つの相手装置に送信する送信手段とを備えている。第2態様によれば、第1態様と同様の効果を奏することができる。
本発明の第3態様に係る通信方法は、ネットワークを介して複数の相手装置との間で遠隔会議を実行する通信方法であって、音のサンプリングデータを記憶可能な第1記憶部に、所定時間以上の時間分の音のサンプリングデータが記憶されているか判断する第1判断ステップと、前記第1判断ステップによって前記所定時間よりも長い時間分の音のサンプリングデータが前記第1記憶部に記憶されていると判断された場合、前記第1記憶部への記憶順に従い前記第1記憶部に記憶された前記サンプリングデータの前記所定時間分を圧縮し、単位音データを生成する第1生成ステップと、前記第1生成ステップによって生成された前記単位音データを第2記憶部に記憶する記憶ステップと、前記遠隔会議において通信されるデータであって、前記ネットワークに対して送信される送信データ、及び、前記ネットワークから受信される受信データの少なくとも一方に基づいて、前記ネットワークの通信状態が第1状態であるか第2状態であるかを決定する決定ステップと、前記決定ステップによって前記第1状態であると決定されたことに応じて、1つのパケットに含める前記単位音データの基となる音の時間を示す結合時間を第1時間に設定し、前記決定ステップによって前記第2状態であると決定されたことに応じて、前記結合時間を前記第1時間よりも大きい第2時間に設定する設定ステップと、前記第2記憶部に、前記設定ステップによって設定された結合時間以上の時間分の前記単位音データが記憶されているか判断する第2判断ステップと、前記第2判断ステップによって、前記結合時間以上の時間分の前記単位音データが前記第2記憶部に記憶されていると判断されたことに応じ、前記結合時間分の前記単位音データを含むパケットを生成する第2生成ステップと、前記第2生成ステップによって生成された前記パケットを、前記結合時間の周期で、少なくとも1つの相手装置に送信する送信ステップとを備えている。第3態様によれば、第1態様と同様の効果を奏することができる。
本発明の第4態様に係る通信装置のプログラムは、ネットワークを介して複数の相手装置との間で会議サーバを介して遠隔会議を実行可能な通信装置のコンピュータが実行可能なプログラムであって、前記コンピュータを、前記遠隔会議において通信されるデータであって、前記会議サーバに対して送信される送信データ、及び、前記会議サーバから受信される受信データの少なくとも一方に基づいて、前記会議サーバとの間の通信状態が第1状態であるか第2状態であるかを決定する決定手段と、前記決定手段によって前記第1状態であると決定されたことに応じて、結合時間を第1時間に設定し、前記決定手段によって前記第2状態であると決定されたことに応じて、結合時間を前記第1時間よりも大きい第2時間に設定する設定手段と、音のサンプリングデータを記憶可能な第1記憶部に記憶されている音のサンプリングデータから、前記第1記憶部への記憶順に従い、前記結合時間分のサンプリングデータを順次圧縮し、前記結合時間分の音データを生成する第1生成手段と、前記第1生成手段によって生成された前記音データを含むパケットを生成する第2生成手段と、前記パケットを、前記結合時間の周期で、前記会議サーバに送信する送信手段として機能させる。第4態様によれば、第1態様と同様の効果を奏することができる。
第4態様において、前記第1生成手段は、前記第1記憶部への記憶順に従い、前記結合時間以下である所定時間分の前記サンプリングデータを順次圧縮し単位音データを生成する第3生成手段と、前記第3生成手段によって生成された前記単位音データを第2記憶部に記憶する記憶手段と、を備え、前記コンピュータを、前記第2記憶部に前記設定手段によって設定された前記結合時間以上の時間分の前記単位音データが記憶されているか判断する第2判断手段として更に機能させ、前記第2生成手段は、前記第2判断手段によって、前記結合時間以上の時間分の前記単位音データが前記第2記憶部に記憶されていると判断されたことに応じ、前記結合時間分の前記単位音データを含むパケットを生成してもよい。これによって、第1態様と同様の効果を奏することができる。
遠隔会議システム1の概要と、通信装置15及びサーバ装置16の電気的構成とを示す図である。 遠隔会議システム1における音に関する信号又はデータの流れを示す図である。 送信周期を説明するための図である。 装置第1処理のフローチャートである。 装置第2処理のフローチャートである。 装置第3処理のフローチャートである。 装置第4処理のフローチャートである。 テーブル1142を示す図である。 第1設定処理のフローチャートである。 テーブル1141を示す図である。 第2設定処理のフローチャートである。 サーバ第1処理のフローチャートである。 サーバ第2処理のフローチャートである。
図1を参照し、遠隔会議システム1を説明する。遠隔会議システム1は、通信装置11、12、13及び、サーバ装置16を備える。以下、通信装置11〜13を総称し、通信装置15という。通信装置15及びサーバ装置16は、ネットワーク20を介して通信可能に接続する。通信装置15は周知のスマートフォンである。サーバ装置16は周知のMulti-point Control Unit(MCU)である。なお、通信装置11〜13のうち少なくとも1つは、遠隔会議用の専用端末、汎用Personal Computer(PC)、タブレットPC等であってもよい。サーバ装置16は汎用のサーバであってもよい。
通信装置15の電気的構成を説明する。通信装置15は、通信装置15の制御を司るCPU111を備える。CPU111は、ROM112、RAM113、記憶部114、カメラ115、表示部116、通信I/F117、入力部118、A/Dコンバータ119、D/Aコンバータ121、及び、ドライブ装置123と電気的に接続する。
ROM112には、ブートプログラム、Basic Input/Output System(BIOS)等が記憶される。RAM113には、タイマやカウンタ、フラグ情報、一時的なデータ等が記憶される。なお、タイマは、後述するOperating System(OS)が備えるタイマ機能によって、所定の周期(例えば1ms)で更新される。又、RAM113には、記憶領域として第1記憶部15A、第2記憶部15B、及び第3記憶部15C(図2参照)が設けられる。記憶部114は、コンピュータが読み取り可能な非一時的な記憶媒体、例えば、フラッシュメモリによって構成される。但し、記憶部34は、ハードディスク及び/又はROM等で構成されてもよい。非一時的な記憶媒体は、情報を記憶する期間に関わらず、情報を記憶可能な記憶媒体であればよい。非一時的な記憶媒体は、一時的に伝送される信号を含まなくてもよい。記憶部114には、CPU111に装置第1処理(図4参照)、装置第2処理(図5参照)、装置第3処理(図6参照)、及び装置第4処理(図7参照)を実行させるためのアプリケーションプログラム(以下、単に「プログラム」という。)、及びOSが記憶される。又、記憶部114にはテーブル1141(図10参照)、及び、テーブル1142(図8参照)が記憶される。
表示部116はLiquid Crystal Display(LCD)である。通信I/F117は、通信装置15がネットワーク20に接続した図示外のアクセスポイントと接続して無線通信を行うためのインタフェース素子(例えば、Wi−Fi通信モデムなど)である。CPU111は、通信I/F117を介してサーバ装置16とパケットの送受信を行う。入力部118は、例えば、ハードキーやタッチパッドを含む。タッチパッドは、例えば静電容量式の位置入力装置で、ユーザの指の接触位置に応じた座標位置を示す信号を出力する。タッチパッドは、抵抗膜方式や超音波方式等、他の形態の位置入力装置によって構成されてもよい。入力部118に含まれるタッチパッドが表示部116に重畳されることにより、タッチパネルが構成されても良い。A/Dコンバータ119は、図示外のアナログ増幅回路(マイクアンプ等)を介してマイク120と電気的に接続する。D/Aコンバータ121は、図示外のアナログ増幅回路(スピーカアンプ等)を介してスピーカ122と電気的に接続する。ドライブ装置123は、半導体メモリ等のコンピュータが読み取り可能な記憶媒体1231に記憶された情報を読み出すことができる。CPU111は、記憶媒体1231に記憶されたプログラムをドライブ装置123によって読み出し、記憶部114に記憶できる。
なお、CPU111として、汎用的なプロセッサーが用いられてもよい。装置第1処理〜装置第4処理は、CPU111によって実行される例に限定されず、他の電子部品(例えば、ASIC)によって実行されてもよい。装置第1処理〜装置第4処理は、複数の電子機器(つまり、複数のCPU)によって分散処理されてもよい。例えば、装置第1処理〜装置第4処理の一部は、ネットワーク20に接続したサーバで実行されてもよい。プログラムは、例えば、ネットワーク20に接続したサーバからダウンロードされて(即ち、伝送信号として通信装置15に送信され)、通信装置15の記憶部114に記憶されてもよい。この場合、プログラムは、サーバに備えられたHDDなどの非一時的な記憶媒体に保存されていることとなる。通信I/F117は、通信装置15をネットワーク20に有線で接続するためのインタフェース素子(例えば、LANカード)であってもよい。
サーバ装置16の電気的構成を説明する。サーバ装置16は、サーバ装置16の制御を司るCPU161を備える。CPU161は、ROM162、RAM163、記憶部164、通信I/F165、及びドライブ装置166と電気的に接続する。ROM162には、ブートプログラム、BIOS等が記憶される。RAM163には、タイマやカウンタ、一時的なデータが記憶される。記憶部164には、CPU161にサーバ第1処理(図12参照)及びサーバ第2処理(図13参照)を実行させるためのプログラム、及びOSが記憶される。通信I/F165は、サーバ装置16がネットワーク20に接続するためのインタフェース素子(例えば、LANカードなど)である。CPU161は、通信I/F165を介して通信装置15とデータの送受信を行う。ドライブ装置166は、記憶媒体1661に記憶された情報を読み出すことができる。CPU161は、記憶媒体1661に記憶されたプログラムをドライブ装置166によって読み出し、記憶部164に記憶できる。
図2を参照し、遠隔会議システム1における音に関する信号又はデータの流れを説明する。マイク120は、通信装置15を使用するユーザの音声等の音を集音する。マイク120は、集音した音をアナログの電気信号に変換し、図示外のアナログ増幅回路に出力する。アナログ増幅回路は、入力されたアナログの電気信号を増幅し、A/Dコンバータ119に出力する。A/Dコンバータ119は、入力されたアナログの電気信号を所定のサンプリングレート(例えば、44.1kHz)でサンプリングし、デジタルの電気信号に変換する。A/Dコンバータ119は、デジタルの電気信号をCPU111に出力する。CPU111は、入力されたデジタルの電気信号をデータ化し、サンプリングデータ151を生成する。CPU111は、生成したサンプリングデータ151を、RAM113の第1記憶部15Aに記憶する。サンプリングデータ151は、マイク120によって音が集音される順番で第1記憶部15Aに記憶される。
CPU111は、第1記憶部15Aに記憶されたサンプリングデータ151を、第1記憶部15Aに記憶された順番で20ms分ずつ取得し、所定の圧縮化方式に従って圧縮(エンコード)する。以下、圧縮されたサンプリングデータを圧縮データといい、20ms分の圧縮データを単位音データという。CPU111は、生成した単位音データ152を、RAM113の第2記憶部15Bに記憶する。CPU111は、サンプリングデータ151が第1記憶部15Aに20ms分以上記憶されている場合、単位音データ152を生成して第2記憶部15Bに記憶する処理を繰り返す。
なお以下では、理解を容易とするために、図2に示すように、複数の20ms分の圧縮データの夫々が単位音データとして第2記憶部15Bに記憶されるとして説明する。これに対し、複数の20ms分毎の圧縮データの夫々は、第2記憶部15Bに記憶された状態で区別されず、一体となってもよい。即ち、第2記憶部15Bには、単位音データを生成した回数N(Nは1以上の整数)に応じた時間20ms×N分の圧縮データが記憶されてもよい。
CPU111は結合時間を設定する。結合時間は、通信パケットに含められる単位音データの音の時間を示す。通信パケットは、通信装置15から遠隔会議に参加する他の通信装置15に対して送信される。通信パケットは、1又は複数の単位音データを含む。又、結合時間は、通信パケットを送信するときの送信周期も示す。結合時間は、サーバ装置16に計測パケットが送信されてから、サーバ装置16から返信された計測パケットを受信するまでの遅延時間の変動の程度に基づいて設定される。以下、遅延時間の変動の程度をジッタという。結合時間の設定方法の詳細は後述する。
CPU111は、結合時間分の圧縮データを含む通信パケット153を生成する。なお、生成される通信パケット153には、結合時間に対応する数の単位音データが含まれる。例えば、結合時間を40msに設定した場合、CPU111は、単位音データを2つ(20ms×2=40ms)含む通信パケット153を生成する。なお、図2では、通信パケット153として2つの単位音データのみ示されているが、実際には、ネットワーク20を介して通信行うために必要なヘッダ情報が、2つの単位音データに付加される。CPU111は、生成した通信パケット153を、設定した結合時間の周期40msでサーバ装置16に送信する。
なお、A/Dコンバータ119から出力されたデジタルの電気信号をデータ化してサンプリングデータ151を生成し、第1記憶部15Aに記憶する処理、及び、生成された通信パケットを送信する処理は、OSの有する機能の1つとしてCPU111によって実行される。一方、第1記憶部15Aに記憶されたサンプリングデータ151を圧縮して単位音データ152を生成する処理、及び、少なくとも1つの単位音データ152を含む通信パケット153を生成する処理は、装置第1処理〜装置第4処理(図4〜図10参照)のプログラムに基づいてCPU111が動作することによって実行される。
図3に示すように、CPU111は、設定した結合時間に応じて、通信パケットに含める単位音データの音の時間、及び、通信パケットの送信周期を変化させる。結合時間が20msの場合、通信パケットには20ms分の単位音データ(単位音データ1つ)が含められ、20ms周期で送信される。同様に、結合時間が40ms、60ms、80ms、100ms、120msの場合、通信パケットには、40ms分(単位音データ2つ)、60ms分(単位音データ3つ)、80ms分(単位音データ4つ)、100ms分(単位音データ5つ)、120ms分(単位音データ6つ)の音の単位音データが含められ、夫々、40ms、60ms、80ms、100ms、120ms周期で送信される。なお、何れの結合時間の場合も、通信装置15から他の通信装置15に対して送信される単位音データの総量は変化しない。
通信装置15から送信される通信データの送信周期が長い程、ジッタは小さくなる。ジッタは、通信装置15、サーバ装置16、及び、ネットワーク20に介在する図示外の中継装置(ルータ、サーバ装置等)が通信パケットの通信を行うために実行する処理に必要な時間の変動が要因となって発生する。そのため、通信データの送信周期が長い程、通信パケットの通信を行うために実行する処理の頻度が少なくなるので、処理時間の変動が要因となって発生するジッタが小さくなる。一方で、通信データの送信周期が長い程、単位音データの遅延時間は大きくなるので、送信周期はできるだけ小さい方が好ましい。従って通信装置15は、ユーザ間で円滑な遠隔会議が実行されるように、ネットワーク20の通信状態に応じて最適な結合時間を設定する。詳細は後述する。
図2に示すように、サーバ装置16のCPU161は、ネットワーク20を介して通信装置15から通信パケットを受信する。CPU161は、通信パケットを送信した通信装置15が参加する遠隔会議を特定し、この遠隔会議に参加する他の通信装置15を特定する。CPU161は、特定した他の通信装置15に対して、受信した通信パケットを転送する。
通信装置15のCPU111は、ネットワーク20を介してサーバ装置16から通信パケットを受信した場合、受信した通信パケットに含まれる、結合時間に応じた数の単位音データを取得する。CPU111は、取得した単位音パケットを伸張(デコード)し、元のサンプリングデータに戻す。CPU111は、RAM113の第3記憶部15Cにサンプリングデータを記憶する。CPU111は、第3記憶部15Cに記憶されたサンプリングデータを、音がマイク120によって集音された順番に20ms分ずつ取得する。CPU111は、取得したサンプリングデータに対応するデジタルの電気信号を、D/Aコンバータ121に出力する。D/Aコンバータ121は、入力されたデジタルの電気信号をアナログの電気信号に変換する。D/Aコンバータ121は、アナログの電気信号を図示外のアナログ増幅回路に出力する。アナログ増幅回路は、入力されたアナログの電気信号を増幅し、スピーカ122に出力する。スピーカ122は、入力されたアナログの電気信号に対応する音を出力する。
なお、パケットを受信する処理、及び、第3記憶部15Cに記憶されたサンプリングデータに対応するデジタルの電気信号をD/Aコンバータ121に出力する処理は、OSの有する機能の1つとしてCPU111によって実行される。一方、受信したパケットに含まれる少なくとも1つの単位音データを伸張して元のサンプリングデータに戻し、第3記憶部15Cに記憶する処理は、図示外の処理を実行するプログラムに基づいてCPU111が動作することによって、実行される。
以上の処理が実行されることによって、遠隔会議に参加する通信装置15のユーザ間で通話を行うことが可能となる。なお上記では、音に関する信号又はデータの流れのみを説明したが、実際には、通信装置15の表示部116に表示される共有資料及び映像のデータを含むパケットについても、遠隔会議に参加する通信装置15間でサーバ装置16を介して通信が行われる。共有資料は、遠隔会議において夫々のユーザが参照する、遠隔会議に関連する説明資料等である。映像は、カメラ115によって撮影されたユーザ等の様子を示す映像である。通信装置15のユーザは、表示部116に表示される共有資料及び映像、並びに、スピーカ122から出力される音によって、他の通信装置15の他のユーザとの間で遠隔会議を行うことができる。
図5〜図10を参照し、通信装置15のCPU111によって実行される装置第1処理〜装置第4処理を説明する。装置第1処理は、遠隔会議のアプリケーションを起動する操作が、入力部118を介して入力された場合、記憶部114に記憶されたプログラムをCPU111が実行することによって開始される。装置第2処理〜装置第4処理は、装置第1処理のS13(後述)の処理によって開始される。装置第1処理〜装置第4処理は並列して実行される。
なお、以下では、通信装置11〜13の夫々のユーザが共通の遠隔会議に参加する場合を例に挙げ、通信装置11のCPU111によって装置第1処理〜装置第4処理が実行される場合について具体的に説明する。例えば、遠隔会議の開催予定日時以前に、遠隔会議に参加予定の通信装置11〜13に夫々に対応した各電子メールアドレスを宛先として、サーバ装置16から電子メールが送信される。この電子メールは、通信装置11〜13による遠隔会議のためのURL(Uniform Resource Locator)を含む。このURLは、遠隔会議の会議室毎に固有である。換言すれば、URLには、遠隔会議を識別するID(会議ID)が含まれている。
通信装置11を例に挙げると、通信装置11のユーザは、遠隔会議の開催予定日時に、通信装置11を操作する。通信装置11において、CPU111は、会議IDを含むURLに対する入力を、入力部118が検出したか判断する(S11)。CPU111は、会議IDを含むURLに対する入力を検出しない場合(S11:NO)、処理をS11に戻す。CPU111は、会議IDを含むURLに対する入力を検出した場合(S11:YES)、通信I/F117からサーバ装置16にアクセスし、会議接続の処理を実行する。会議接続の処理により、通信装置11とサーバ装置16の間で遠隔会議のセッションが確立され、通信装置11は、サーバ装置16に対して会議接続される。通信装置12,13でも同様の操作が行われ、通信装置12,13の夫々とサーバ装置16の間で遠隔会議のセッションが確立され通信装置12,13は、サーバ装置16に対して会議接続される。
サーバ装置16のCPU161は、URLに含まれる会議IDと、通信装置11〜13の夫々を識別するID(装置ID)とを対応付け、管理テーブルとして記憶部164に記憶する。通信装置11〜13による遠隔会議は、このようにして開始される。
CPU111は、A/Dコンバータ119から出力されるデジタルの電気信号をデータ化し、サンプリングデータを生成して第1記憶部15Aに記憶する処理を開始する。なおこの処理は、OSの有する機能として実行されるので、装置第1処理と並行して実行される。CPU111は、装置第2処理(図5参照)、装置第3処理(図6参照)、及び装置第4処理(図7参照)を開始する(S13)。
図5を参照し、装置第2処理を説明する。CPU111は、第1記憶部15Aに20ms以上の時間分のサンプリングデータが記憶されているか判断する(S83)。CPU111は、20ms分以上のサンプリングデータが第1記憶部15Aに記憶されていないと判断した場合(S83:NO)、処理をS91に進める。CPU111は、20ms分以上のサンプリングデータが第1記憶部15Aに記憶されていると判断した場合(S83:YES)、20ms分のサンプリングデータを、第1記憶部15Aに記憶された順番に取得する(S85)。CPU111は、20ms分のサンプリングデータを取得した場合、第1記憶部15Aの記憶可能な容量を確保するため、取得したサンプリングデータを第1記憶部15Aから削除する。
なお、CPU111は、サンプリングデータを生成して第1記憶部15Aに記憶する処理を、OSの機能として継続的に実行している。このため、CPU111がS85の処理によって20ms分のサンプリングデータを第1記憶部15Aから取得する場合の周期は、第1記憶部15Aに新たな20ms分のサンプリングデータが記憶される周期と略同じ20msになる。
CPU111は、取得した20ms分のサンプリングデータを圧縮し、単位音データを生成する(S87)。CPU111は、生成した単位音データを第2記憶部15Bに記憶する(S89)。なお上記のように、サンプリングデータは20ms周期で第1記憶部15Aから取得されることになるので、生成された単位音データが第2記憶部15Bに記憶される周期も約20msとなる。
CPU111は、遠隔会議を終了させるための入力操作を、入力部118を介して検出したか判断する(S91)。CPU111は、遠隔会議を終了させるための入力操作を検出しないと判断した場合(S91:NO)、処理をS83に戻す。CPU111は、遠隔会議を終了させるための入力操作を検出したと判断した場合(S91:YES)、装置第2処理を終了させる。
図6を参照し、装置第3処理を説明する。CPU111は、サーバ装置16に対して一定の周期T1(例えば1s)で送信する計測パケットの送信タイミングが到来したかを判断する(S101)。CPU111は、計測パケットの送信タイミングが到来していないと判断した場合(S101:NO)、処理をS123に進める。CPU111は、計測パケットの送信タイミングが到来したと判断した場合(S101:YES)、送信タイミングが到来したと判断した時点の時刻t1をOSから取得し、RAM113に記憶する(S103)。CPU111は、サーバ装置16に計測パケットを送信する(S105)。計測パケットは、ネットワーク20を介して通信可能なパケットであり、所定サイズ分のダミーデータを含む。
CPU111は、計測パケットの送信に応じて、サーバ装置16から返信される計測パケットを受信したか判断する(S107)。CPU111は、計測パケットを受信していないと判断した場合(S107:NO)、処理をS107に戻す。CPU111は、サーバ装置16から送信された計測パケットを受信したと判断した場合(S107:YES)、計測パケットを受信したと判断した時点の時刻t2をOSから取得し、RAM113に記憶する(S109)。CPU111は、RAM113に記憶した時刻t1及び時刻t2を取得する。CPU111は、時刻t1から時刻t2までの経過時間を遅延時間として算出し、RAM113に記憶する(S111)。遅延時間は、通信装置11から送信された計測パケットがサーバ装置16に伝達する場合の通信時間と、サーバ装置16から送信された計測パケットが通信装置11に伝達する場合の通信時間とを加算した往復時間である。なお、S105及びS107の処理は、専用の計測パケットの代わりに、ICMP(Internet Control Message Protocol)に従って動作する、OSが標準で備えるPINGコマンドで達成されてもよい。
CPU111は、後述するS117、S119の処理によって最後にジッタを算出してから、計測パケットを送信する周期T1よりも長い周期T2(例えば10s)が経過したか判断する(S115)。CPU111は、最後にジッタを算出してから周期T2が経過していないと判断した場合(S115:NO)、処理をS123に進める。
最後にジッタを算出してから周期T2が経過した場合、後述するS117の処理によって標準偏差を算出する場合に用いられていない複数の遅延時間が、RAM113に記憶されている。CPU111は、最後にジッタを算出してから周期T2が経過したと判断した場合(S115:YES)、RAM113に記憶された複数の遅延時間を用いて平均値を算出し、次いで、算出した平均値を用いて標準偏差σを算出する(S117)。CPU111は、標準偏差σを算出するときに用いた遅延時間を、RAM113から削除する。CPU111は、3σをジッタとして算出する(S119)。CPU111は、通信装置11の装置IDと算出したジッタとを含む第1通知パケットを、サーバ装置16に送信する(S121)。
なお、標準偏差σを算出する方法は、上記の方法に限定されない。例えばCPU111は、RAM22をリングバッファとして使用してもよい。CPU111は、算出した遅延時間をリングバッファに順番に記憶してもよい(S111)。CPU111は、リングバッファに記憶された複数の遅延時間のうち、記憶されたタイミングが新しい順に所定数の遅延時間を取得してもよい。CPU111は、取得した所定数の遅延時間を用いて標準偏差σを算出してもよい。なおCPU111は、リングバッファを使用する場合、標準偏差σを算出するために取得した遅延時間を、リングバッファから削除しない。これによってCPU111は、周期T2の間に算出された複数の遅延時間の数よりも大きい数の遅延時間を用いて、標準偏差σを算出できる。
CPU111は、遠隔会議を終了させるための入力操作を、入力部118を介して検出したか判断する(S123)。CPU111は、遠隔会議を終了させるための入力操作を検出しないと判断した場合(S123:NO)、処理をS101に戻す。CPU111は、遠隔会議を終了させるための入力操作を検出したと判断した場合(S123:YES)、装置第3処理を終了させる。
図7を参照し、装置第4処理を説明する。CPU111は、サーバ装置16から送信された第2通知パケットを受信したか判断する(S131)。CPU111は、第2通知パケットを受信しないと判断した場合(S131:NO)、処理をS137に進める。CPU111は、第2通知パケットを受信したと判断した場合(S131:YES)、第2通知パケットに含まれる装置ID及びジッタを取得する。CPU111は、取得した装置ID及びジッタを関連付けて、記憶部114に記憶されたテーブル1142に格納する(S135)。
図8を参照し、テーブル1142を説明する。テーブル1142は、装置ID、ジッタ、及び比較用ジッタを含む。装置ID及びジッタは、夫々、第2通知パケットに含まれる装置ID及びジッタに対応する。比較用ジッタは、後述のS17(図4参照)の処理でジッタとの比較が行われる場合に使用される。
例えば、通信装置11〜13は同一の遠隔会議に参加しているので、通信装置11〜13の夫々のCPU111は、装置第3処理(図6参照)を実行することによって、第1通知パケットをサーバ装置16に送信する(S121、図6参照)。詳細は後述するが、サーバ装置16は、通信装置11〜13の夫々から第1通知パケットを受信した場合、夫々の第1通知パケットに含まれている装置ID及びジッタを含む第2通知パケットを、通信装置11〜13の夫々に対して送信する。従ってテーブル1142には、遠隔会議に参加する全ての通信装置11〜13の夫々の装置IDとジッタとが関連付けて格納される。なお、S135(図7参照)の処理によってテーブル1142に新たに格納する装置IDが、テーブル1142に既に格納されている場合がある。この場合、CPU111は、既に格納されている装置IDに関連付けられているジッタを、比較用ジッタとしてテーブル1142に格納する。次いで、CPU111は、新たに格納するジッタを、新たに格納する装置IDに関連付けてテーブル1142に格納する。即ち、既に格納されていたジッタは、新たに格納されるジッタによって更新される。例えば、装置ID11に関連付けられたジッタは10msであり、比較用ジッタは30msである。このことは、通信装置11(装置ID11)が装置第3処理(図6参照)を実行することによって計測されたジッタが、30msから10msに変化したことを示している。
図7に示すように、CPU111は、遠隔会議を終了させるための入力操作を、入力部118を介して検出したか判断する(S137)。CPU111は、遠隔会議を終了させるための入力操作を検出しないと判断した場合(S137:NO)、処理をS131に戻す。CPU111は、遠隔会議を終了させるための入力操作を検出したと判断した場合(S137:YES)、装置第4処理を終了させる。
図4に示すように、CPU111は、S13の処理によって装置第2処理(図5参照)、装置第3処理(図6参照)、及び装置第4処理(図7参照)を開始した後、記憶部114に記憶されたテーブル1142(図8参照)に格納されたジッタ及び比較用ジッタを全て取得する(S15)。CPU111は、関連付けられたジッタと比較用ジッタとの差分を、テーブル1142に記憶された夫々の装置IDに対して算出する。CPU111は、算出した複数の差分の夫々と所定閾値(例えば、10ms)とを比較する。CPU111は、算出した差分のうち少なくとも1つがが0でない場合、少なくとも1つのジッタが変化したと判断する(S17:YES)。CPU111は、テーブル1142に記憶されたジッタに基づいて第1暫定時間を設定する処理(第1設定処理、図9参照)を実行する(S19)。第1暫定時間は、後述するS23の処理によって最終的に結合時間を設定する場合の候補となる。CPU111は、第1設定処理の終了後、処理をS21に進める。一方、CPU111は、算出した複数の差分の全てが0である場合、全てのジッタは変化していないと判断する(S17:NO)。CPU111は処理をS21に進める。
なお、上記において、CPU111は、算出した差分のうち少なくとも1つが所定閾値よりも大きい場合、少なくとも1つのジッタが変化したと判断してもよい。一方、CPU111は、算出した差分の全てが所定閾値よりも大きくない場合、全てのジッタが変更していないと判断してもよい。
図9を参照し、第1設定処理を説明する。CPU111は、テーブル1142(図8参照)を参照し、通信装置11の装置IDに関連付けられたジッタを取得する(S41)。CPU111は、テーブル1142を参照し、通信装置12、13の装置IDのうち何れか1つ(例えば、装置IDの並び順、テーブル1142の記憶順などに従う)に関連付けられたジッタを取得する(S43)。CPU111は、S41及びS43の処理によって取得した2つのジッタに基づいて、合成ジッタを算出する。合成ジッタは、例えば、2つのジッタの夫々を2乗して加算した加算結果の平方根として算出される(S45)。以下、算出された値を合成ジッタという。CPU111は、合成ジッタをRA113に記憶する(S45)。CPU111は、S43の処理によって、遠隔会議に参加する全ての装置IDに関連付けられたジッタを取得したか判断する(S47)。CPU111は、全ての装置IDに関連付けられたジッタを取得していないと判断した場合(S47:NO)、処理をS43に戻す。CPU111は、装置ID12、13に関連付けられた複数のジッタのうち、例えば、装置IDの並び順、テーブル1142の記憶順などに従い、S43の処理によって取得されていない別の装置IDに関連付けられたジッタを取得し(S43)、S45の処理を繰り返す。CPU111は、S43で全ての装置IDに関連付けられたジッタを取得したと判断した場合(S47:YES)、処理をS49に進める。
CPU111は、S45の処理によってRAM113に記憶された合成ジッタのうち、最大の合成ジッタ(以下、最大ジッタ)を選択する(S49)。CPU111は、選択された最大ジッタをテーブル1141(図10参照)に適用することによって、ネットワーク20の通信状態を決定する(S50)。例えば、CPU111は、通信状態として、選択された最大ジッタが、テーブル1141に登録されている複数のジッタ範囲の内、どの範囲に属するかを決定する。CPU111は、特定した通信状態に対応する第1暫定時間を、テーブル1141に基づいて設定する(S51)。CPU111は、設定した第1暫定時間をRAM113に記憶する。CPU111は第1設定処理を終了させ、処理を装置第1処理(図4参照)に戻す。
図10に示すテーブル1141を参照し、ネットワーク20の通信状態の決定方法及び第1暫定時間の設定方法を具体的に説明する。テーブル1141では、最大ジッタの範囲を示す複数のジッタ範囲の夫々に、結合量及び第1暫定時間が1つずつ対応付けられている。結合量は、単位音データの数を示す。単位音データの音の時間は20msであるため、結合量1,2,3,4,5,6の夫々に、第1暫定時間20ms(=20ms×1)、40ms(=20ms×2)、60ms(=20ms×3)、80ms(=20ms×4)、100ms(20ms×5)、及び120ms(20ms×6)が夫々対応付けられる。
CPU111は、テーブル1141の複数のジッタ範囲のうち、S49(図9参照)の処理によって選択された最大ジッタが含まれるジッタ範囲を特定する。CPU111は、特定したジッタ範囲が50ms以下の場合、ネットワーク20の通信状態を第1状態に決定する(S50、図9参照)。第1状態は、ネットワーク20の状態が後述の第2状態と比べて安定な状態を示す。従って第1暫定時間は、夫々のジッタ範囲に対応する100ms以下の結合時間(20〜100ms)に設定される(S51、図9参照)。一方、CPU111は、特定したジッタ範囲が50msより大きい場合、ネットワーク20の状態を第2状態に決定する(S50)。第2状態は、ネットワーク20の状態が前述の第1状態と比べて不安定な状態を示す。従って第1暫定時間は、テーブル1141のうち最大の結合時間である120msに設定される(S51)。
なお本実施形態では、閾値を50msとした場合に、最大ジッタに応じて第1状態及び第2状態が決定される例が示されている。しかしながら本発明は、閾値を50msとする場合に限定されない。第1状態及び第2状態が決定される場合に用いられる閾値は、任意の値でよい。例えば閾値は、テーブル1141の複数のジッタ範囲の夫々の下限の値である10ms、20ms、30ms、40msの何れかであってもよい。例えば、閾値が40msとされた場合、最大ジッタが40ms以下の場合に第1状態に決定され(S50)、40ms以下の夫々のジッタ範囲に対応する第1暫定時間に設定されてもよい(S51)。一方、最大ジッタ40msよりも大きい場合に第2状態に決定され(S50)、第1暫定時間が100msに設定されてもよい。
図4に示すように、CPU111は、遠隔会議において通信される通信パケットに含まれるデータの種別に基づいて第2暫定時間を設定する処理(第2設定処理、図11参照)を実行する(S21)。第2暫定時間は、第1設定処理(図9参照)によって設定された第1暫定時間と同様、後述するS23の処理によって最終的に結合時間を設定する場合の候補となる。
図11を参照し、第2設定処理を説明する。CPU111は、遠隔会議に参加する通信装置12、13との間で共有資料を共有するための操作を、入力部118を介して検出したか判断する(S61)。CPU111は、共有資料を共有するための操作を検出したと判断した場合、共有資料のデータを含む共有資料パケットを、サーバ装置16に送信する。なお、サーバ装置16のCPU161は、通信装置11から送信された共有資料パケットを受信した場合、共有資料パケットを送信した通信装置11が参加する遠隔会議の会議IDを、管理テーブルに基づいて特定する。CPU161は、管理テーブルのうち特定した会議IDと同一の会議IDに対応付けられた装置ID11、12、13を、共通の遠隔会議に参加する通信装置11、12、13の装置IDとして特定する。CPU161は、特定した装置ID11、12、13のうち、共有資料パケットを送信した通信装置11の装置ID11を除く他の装置ID12、13の通信装置12、13に対して、受信した共有資料パケットを送信する。通信装置12、13のCPU111は、サーバ装置16から送信された共有資料パケットを受信した場合、受信した共有資料パケットに含まれる共有資料のデータに基づいて、共有資料を表示部116に表示させる。
又、通信装置11のCPU111は、共有資料を共有するための操作を検出した場合、共有資料パケットの送信が開始されるので、共有資料パケットの送信が行われている状態であると判断する(S61:YES)。CPU111は、ネットワーク20の通信状態を第2状態に決定する(S66)。理由は、共有資料パケットに含まれる共有資料データのサイズは、他の通信パケットに含まれるデータのサイズと比べて大きいので、共有資料パケットが送信された場合、ネットワーク20の状態は不安定な状態になる可能性が高いためである。CPU111は、第2暫定時間を、テーブル1141(図10参照)のうち最大の結合時間である120msに設定する(S67)。CPU111は、設定した第2暫定時間をRAM113に記憶する。CPU111は、第2設定処理を終了させ、処理を装置第1処理(図4参照)に戻す。
CPU111は、共有資料データを共有するための操作を検出しない場合、共有資料パケットの送信が行われていない状態であると判断する(S61:NO)。次に、CPU111は、カメラ115によって撮影された映像をサーバ装置16が通信装置12、13に対して送信することを許可するための設定が記憶されているか、RAM22を参照して判断する(S63)。なお、カメラ115によって撮影された映像をサーバ装置16が通信装置12、13に対して送信することを許可又は禁止する設定は、入力部118を介して受け付けられ、RAM22に記憶される。CPU111は、サーバ装置16が通信装置12、13に対して映像を送信することを許可するための操作を検出したと判断した場合、カメラ115によって撮影された映像のデータを圧縮し、フレーム内圧縮された映像のフレームと、フレーム間圧縮された映像のフレームとを順次生成する。フレーム内圧縮された映像のフレームは、映像のデータがフレーム内でのみ圧縮されたデータを含む。フレーム間圧縮された映像のフレームは、前後のフレームとの差分のデータを含む。以下、フレーム内圧縮された映像をフレーム内圧縮映像といい、フレーム間圧縮された映像をフレーム間圧縮映像という。フレーム間圧縮映像を生成する場合の圧縮率は、フレーム内圧縮映像を生成する場合の圧縮率よりも大きいので、フレーム内圧縮映像のサイズはフレーム間圧縮映像のサイズよりも大きくなる。
CPU111は、フレーム内圧縮映像又はフレーム間圧縮映像のデータを生成する。CPU111は、映像の種別をヘッダとして含む映像パケットを生成し、サーバ装置16に送信する。なお、サーバ装置16のCPU161は、通信装置11から送信された映像パケットを受信した場合、通信装置11が参加する遠隔会議の会議IDを、管理テーブルに基づいて特定する。CPU161は、管理テーブルのうち特定した会議IDと同一の会議IDに対応付けたれた装置ID11、12、13を、共通の遠隔会議に参加する通信装置11、12、13の装置IDとして特定する。CPU161は、特定した装置ID11、12、13のうち、映像パケットを送信した通信装置15の装置ID11を除く他の装置ID12、13の通信装置12、13に対して、受信した映像パケットを送信する。通信装置12、13のCPU111は、サーバ装置16から送信された映像パケットを受信した場合、受信した映像パケットに含まれるフレーム内圧縮映像又はフレーム間圧縮映像のデータに基づいて、カメラ115によって撮影された映像を表示部116に表示させる。
又、通信装置11のCPU111は、サーバ装置16が通信装置12、13に対して送信することを許可するための設定が記憶されている場合、映像パケットの送信が開始されるので、映像パケットの送信が行われている状態であると判断する(S63:YES)。CPU111は、送信されている映像パケットに含まれる映像の種別(フレーム内圧縮映像又はフレーム間圧縮映像)を、映像パケットのヘッダから取得する。CPU111は、取得した種別がフレーム内圧縮映像であるか判断する(S65)。CPU111は、取得した種別がフレーム内圧縮映像であると判断した場合(S65:YES)、ネットワーク20の通信状態を第2状態に決定する(S66)。理由は、フレーム内圧縮映像のサイズは、他の通信パケットに含まれるデータのサイズと比べて大きいので、フレーム内圧縮映像のデータを含む映像パケットが送信された場合、ネットワーク20の状態は不安定な状態になる可能性が高いためである。CPU111は、第2暫定時間を、テーブル1141のうち最大の結合時間である120msに設定する(S67)。CPU111は、設定した第2暫定時間をRAM113に記憶する。CPU111は、第2設定処理を終了させ、処理を装置第1処理(図4参照)に戻す。
一方、CPU111は、映像パケットの送信が行われていないと判断された場合(S63:NO)、又は、OSから取得された映像の種別がフレーム間圧縮映像であると判断された場合(S65:NO)、ネットワーク20の通信状態を第1状態に決定する(S68)。理由は、共有資料パケット及び映像パケットの何れのパケットも送信されていない場合、又は、フレーム間圧縮映像のデータを含む映像パケットが送信されている場合、送信されるデータのサイズは、共有資料パケット又はフレーム内圧縮映像のデータを含む映像パケットのデータのサイズと比べて小さいので、ネットワーク20の状態は安定な状態になる可能性が高いためである。CPU111は、後述するS23(図4参照)の処理によって繰り返し設定される結合時間をRA113から読み出し、第2暫定時間として設定する(S69)。CPU111は、設定した第2暫定時間をRAM113に記憶する。CPU111は、第2設定処理を終了させ、処理を装置第1処理(図4参照)に戻す。
図4に示すように、第2決定処理(S21)の終了後、CPU111は、第1設定処理(S19)によって設定された第1暫定時間、及び、第2設定処理(S21)によって設定された第2暫定時間を、RAM113から読み出す。CPU111は、読み出した第1暫定時間及び第2暫定時間のうち大きい値を、結合時間として最終的に設定する(S23)。CPU111は、設定した結合時間をRA113に記憶する。なお、第1設定処理が実行されていない場合(S17:NOの場合)、RAM113に記憶された第2暫定時間が最終的に結合時間として設定される。
CPU111は、RAM113に記憶した結合時間分の単位音データが、第2記憶部15B(図2参照)に記憶されているか判断する(S25)。CPU111は、結合時間分の単位音データが第2記憶部15Bに記憶されていないと判断した場合(S25:NO)、処理をS31に進める。CPU111は、結合時間分の単位音データが第2記憶部15Bに記憶されていると判断した場合(S25:YES)、結合時間分の単位音データを含む通信パケットを生成する(S27)。具体的には、S23の処理によって設定された結合時間が20msの場合、1つの単位音データを含む通信パケットが生成される。同様に、結合時間が40msの場合には2つ、結合時間が60msの場合には3つ、結合時間が80msの場合には4つ、結合時間が100msの場合には5つ、結合時間が120msの場合には6つの単位音データを含む通信パケットが生成される。CPU111は、生成した通信パケットを、ネットワーク20を介してサーバ装置16に送信する(S29)。なお、サーバ装置16は、通信装置11から送信された通信パケットを受信し、通信装置12、13に対して通信パケットを送信する。従ってCPU111は、S29の処理によって、サーバ装置16を介して通信装置12、13に通信パケットを送信していることになる。
なお、CPU111は、20ms×N分の単位音データを、20ms×Nで生成して第2記憶部15Bに記憶する。従ってCPU111が、結合時間を20ms×Nに設定し、20ms×N分の単位音データが第2記憶部15Bに記憶されていると判断する場合(S25:YES)の周期も、第1記憶部15Aに20ms×N分のサンプリングデータが記憶される時間20ms×Nになる。このためCPU111は、S27で生成した通信パケットを、結合時間の周期でサーバ装置16に送信することになる。
CPU111は、遠隔会議を終了させるための入力操作を、入力部118を介して検出したか判断する(S31)。CPU111は、遠隔会議を終了させるための入力操作を検出しないと判断した場合(S31:NO)、処理をS15に戻す。CPU111は、遠隔会議を終了させるための入力操作を検出したと判断した場合(S31:YES)、装置第1処理を終了させる。
図12、図13を参照し、サーバ装置16のCPU161によって実行されるサーバ第1処理、及び、サーバ第2処理を説明する。CPU161は、特定の会議室に対応するURLに対して、少なくとも1つの通信装置15からアクセスを受け付けた場合、特定の会議室に対応するセッションを、少なくとも1つの通信装置15との間で確立させる。サーバ第1処理及びサーバ第2処理は、セッションが確立された場合に、記憶部164に記憶されたプログラムをCPU161が実行することによって開始される。サーバ第1処理、及び、サーバ第2処理は、会議室に対応するセッション毎に実行される。特定のセッションに対応するサーバ第1処理及びサーバ第2処理は、他のセッションに対応するサーバ第1処理及びサーバ第2処理と並列して実行される。又、特定のセッションに対応するサーバ第1処理、及び、サーバ第2処理同士も並列して実行される。
図12を参照し、サーバ第1処理を説明する。CPU161は、通信装置15から送信された計測パケットを受信したか判断する(S151)。CPU161は、計測パケットを受信しないと判断した場合(S151:NO)、処理をS155に進める。CPU161は、計測パケットを受信したと判断した場合(S151:YES)、計測パケットを送信した通信装置15に対して、受信した計測パケットを返信する(S153)。CPU161は処理をS155に進める。なお、通信装置15のCPU111は、装置第3処理(図6参照)において、サーバ装置16に対して計測パケットを送信し、サーバ装置16から計測パケットを受信することによって、ジッタを算出する(S119、図6参照)。
CPU161は、特定の会議室について確立された状態のセッションが終了したか判断する(S155)。CPU111は、特定の会議室に対応するセッションが継続して確立されていると判断した場合(S155:NO)、処理をS151に戻す。CPU111は、特定の会議室について確立された状態のセッションが終了したと判断した場合(S155:YES)、サーバ第1処理を終了させる。
図13を参照し、サーバ第2処理を説明する。CPU161は、通信装置15から送信された第1通知パケットを受信したか判断する(S171)。CPU161は、第1通知パケットを受信しないと判断した場合(S171:NO)、処理をS175に進める。CPU161は、第1通知パケットを受信したと判断した場合(S171:YES)、受信した第1通知パケットに含まれる装置ID及びジッタを取得する。CPU161は、取得したID及びジッタを含む第2通知パケットを生成する。CPU161は、第1通知パケットを送信した通信装置15が参加する遠隔会議の会議IDを、管理テーブルに基づいて特定する。CPU161は、管理テーブルのうち特定した会議IDと同一の会議IDに対応付けたれた装置IDを、共通の遠隔会議に参加する通信装置15の装置IDとして特定する。CPU161は、特定した装置IDの通信装置15に対して、生成した第2通知パケットを送信する(S173)。CPU161は処理をS175に進める。なお、通信装置15のCPU111は、装置第4処理(図7参照)において、サーバ装置16から第2通知パケットを受信し、テーブル1142に装置ID及びジッタを対応付けて格納する(S135、図7参照)。
CPU161は、特定の会議室について確立された状態のセッションが終了したか判断する(S175)。CPU111は、特定の会議室に対応するセッションが継続して確立されていると判断した場合(S175:NO)、処理をS171に戻す。CPU111は、特定の会議室について確立された状態のセッションが終了したと判断した場合(S175:YES)、サーバ第2処理を終了させる。
以上説明したように、通信装置11のCPU111は、通信状態が第1状態であるか第2状態であるかに応じて、第1暫定時間及び第2暫定時間を設定し(S19、S21)、結合時間を設定する(S23)。結合時間は、1つのパケットに含める単位音データの基となる音の時間であり、通信パケットの送信周期でもある。CPU111は、通信状態に応じて結合時間を設定することによって、遠隔会議に参加する通信装置12、13に対して通信パケットを送信する場合の送信周期を調整できる。通信装置11から長い周期で通信パケットが通信装置12、13に送信される程、ジッタは小さくなる可能性が高くなる。ジッタが小さい程、単位音データに基づいて通信装置12、13から出力される音の品質は良好となる。従ってCPU111は、通信状態に応じて結合時間を設定し、ジッタを適正化することによって、遠隔会議における通信品質の劣化を抑制できる。
通信装置11のCPU111は、設定した第1暫定時間及び第2暫定時間のうち大きい方の時間を、結合時間として最終的に決定する(S23)。即ち、CPU111は、異なる方法で設定した第1暫定時間及び第2暫定時間のうち、ジッタの抑制効果がより大きい方を結合時間として最終的に設定する。このためCPU111は、遠隔会議における通信品質の劣化を適切に抑制できる。
通信装置11のCPU111は、サーバ装置16に対して計測パケットを送信し(S105)てから、サーバ装置16から返信される計測パケットを受信する(S107)までの時間の変動の程度を、ジッタとして算出する(S119)。CPU111は、遠隔会議に参加する全ての通信装置11、12、13の夫々のCPU111によって算出されたジッタを取得し(S131、S133)、複数の合成ジッタを算出する(S45)。CPU111は、算出した複数の合成ジッタのうち最大ジッタに基づいて通信状態を決定し(S50)、第1暫定時間を設定する(S51)。CPU111は、第1暫定時間と第2暫定時間とに基づいて、結合時間を最終的に設定する(S23)。CPU111は、設定した結合時間の周期で、通信パケットを送信する(S29)。
CPU111が第1暫定時間を設定する場合に使用するテーブル1141では、最大ジッタが大きい程、大きな値の結合時間が対応付けられている。即ち、最大ジッタが大きい程、大きな値の結合時間が第1暫定時間として決定される。通信装置11から送信される通信パケットの送信周期が長くなる程、ジッタは小さくなる可能性が高い。これに対してCPU111は、上記の処理によって、最大ジッタが大きい程、結合時間を長くして通信パケットの送信周期を長くすることができる。従ってCPU111は、最大ジッタが大きい程、通信パケットの送信周期を長くしてジッタを効果的に抑制できる。これによってCPU111は、遠隔会議時の通信品質の劣化を効果的に抑制できる。
又上記において、通信装置11のCPU111は、算出した複数の合成ジッタのうち最大ジッタに基づいて通信状態を決定し(S50)、第1暫定時間を設定する(S51)。第1暫定時間が結合時間として最終的に設定された場合、遠隔会議に参加する通信装置12、13のうち、通信状態がより不安定な通信装置12、13の何れかとの間のジッタが適正化される。従ってCPU111は、遠隔会議に参加する全ての通信装置12、13との間の通信品質の劣化を効果的に抑制できる。
共有資料パケットが通信装置11から送信される場合、共有資料パケットに含まれるデータのサイズは大きいので、ジッタは大きくなる可能性が高い。これに対して、CPU111は、共有資料データを送信していると判断した場合(S61:YES)、第2暫定時間を最大(120ms)にし(S67)、共有資料パケットを送信する周期を長くすることによって、ジッタを抑制できる。これによってCPU111は、共有資料パケットが送信されることでネットワーク20の通信状態が不安定になった場合も、遠隔会議における通信品質の劣化を抑制できる。
フレーム内圧縮映像のデータを含む映像パケットが通信装置11から送信される場合、映像パケットに含まれるデータのサイズは大きいので、ジッタは大きくなる可能性が高い。これに対して、CPU111は、フレーム内圧縮映像のデータを含む映像パケットを送信していると判断した場合(S65:YES)、第2暫定時間を最大(120ms)にし(S67)、映像パケットを送信する周期を長くすることによって、ジッタを抑制できる。これによってCPU111は、フレーム内圧縮映像のデータを含む映像データが送信されることでネットワーク20の通信状態が不安定になった場合も、遠隔会議における通信品質の劣化を抑制できる。
CPU111は、20ms分の音のサンプリングデータが第1記憶部15Aに記憶された場合、サンプリングデータを圧縮することによって単位音データを生成する(S87)。上記のように、単位音データの生成周期は、20ms分のサンプリングデータが第1記憶部15Aに記憶されるときの時間20msと同じである。又、CPU111は、20ms、40ms、60ms、80ms、100ms、及び120msの何れかの時間を、結合時間として設定する。(S19、S21、S23)。通信パケットは、結果として、結合時間の周期で通信装置11から送信される(S29)ので、単位音データの生成周期20msの整数倍の周期20ms×Nで送信されることになる。従ってCPU111は、結合時間20ms×N分のサンプリングデータが第1記憶部15Aに記憶されるタイミングで、結合時間20ms×N分の単位音データを含む通信パケットを送信できる。従ってCPU111は、サンプリングデータから単位音データを効率的に生成し、結合時間分の単位音データを含む通信パケットを遅滞なく送信できる。
本発明は上記実施形態に限定されず、種々の変更が可能である。上記実施形態では、サンプリングデータを圧縮することによって単位音データが生成され(S87)、次いで、設定された結合時間に対応する数の単位音データを含む通信パケットが生成された(S27)。これに対し、設定された結合時間分のサンプリングデータが圧縮されることによって得られる圧縮データを、通信パケットに含めてもよい。以下説明する。通信装置11のCPU111は、上記の実施形態と同様の方法で結合時間を決定した後、装置第2処理(図5参照)において、結合時間分のサンプリングデータが第1記憶部15Aに記憶されているかを判断してもよい(S83)。CPU111は、結合時間分のサンプリングデータが第1記憶部15Aに記憶されていると判断した場合(S83:YES)、結合時間分のサンプリングデータを取得してもよい(S85)。CPU111は、取得した結合時間分のサンプリングデータを圧縮し、音データとして生成してもよい(S87)。CPU111は、生成した音データを第2記憶部15Bに記憶してもよい(S89)。この場合、CPU111は、装置第1処理(図4参照)のS25において、結合時間分の音データが第2記憶部15Bに記憶されていると常に判断してもよい(S89:YES)。CPU111は、結合時間分の音データを含む通信パケットを生成し(S27)、結合時間の周期で通信パケットを送信してもよい(S29)。
通信装置11のCPU111は、装置第1処理(図4参照)において、S23の処理を行うことによって、第1暫定時間及び第2暫定時間のうち大きい値を、結合時間として最終的に設定した。これに対してCPU111は、第1暫定時間を結合時間として最終的に設定してもよいし、第2暫定時間を結合時間として最終的に設定してもよい。更に、CPU111は、第1暫定時間及び第2暫定時間のうち何れを結合時間とするかを、設定によって切り替えられるようにしてもよい。CPU111は、S29の処理を行う場合、S23で設定した結合時間の周期を計測し、通信パケットの送信タイミングを決定してもよい。CPU111は、送信タイミングが到来したと判断した場合、S27の処理によって生成した通信パケットをサーバ装置16に送信してもよい。
通信装置11のCPU111は、第1設定処理(図9参照)において、通信装置11が計測したジッタと、通信装置12、13が計測した複数のジッタとの夫々とに基づいて、複数の合成ジッタを算出した(S45)。CPU111は、算出した複数の合成ジッタのうち最大ジッタをテーブル1141に適用し、通信状態を決定して第1暫定時間を設定した(S50、S51)。これに対してCPU111は、通信装置11〜13の夫々が計測した複数のジッタのうち最大のジッタを、最大ジッタとして選択し、通信状態を決定して第1暫定時間を設定してもよい。又は、CPU111は、通信装置11が計測したジッタをテーブル1141に適用し、通信状態を決定して第1暫定時間を設定してもよい。CPU111は、ジッタと結合時間との関係を示す所定の関係式をテーブル1141の代わりに用いることによって、第1暫定時間を設定してもよい。
通信装置11のCPU111は、第2設定処理(図11参照)において、共有資料パケット及び映像パケットの送信状態、及び、映像パケットに含まれる映像の種別に応じて、通信状態を決定し第2暫定時間を設定した。これに対して、CPU111は、通信パケットに含めるデータのサイズを取得し、取得したデータのサイズに応じて、通信状態を決定し第2暫定時間を設定してもよい。例えばCPU111は、取得したデータのサイズが所定閾値よりも小さい場合に第1状態であると決定して20msを第2暫定時間として設定し、取得したデータのサイズが所定閾値以上の場合に第2状態であると決定して120msを第2暫定時間として設定してもよい。
CPU111は、装置第2処理(図5参照)において、S87の処理を実行することによって、20ms分の音のサンプリングデータを圧縮し、単位音データを生成した。これに対してCPU111は、20ms以外の所定時間分の音のサンプリングデータを圧縮し、単位音データを生成してもよい。結合時間としてとり得る最小の時間は、20msに限らず、他の任意の時間であってもよい。単位音データの音の時間と、結合時間としてとり得る最小の時間とは異なっていてもよい。第1記憶部15A及び第2記憶部15Bは、RAM113と異なる記憶デバイスに記憶されてもよい。
CPU111は、装置第3処理(図6参照)において、サーバ装置16に計測パケットを送信するときの時刻t1と、サーバ装置16から計測パケットを受信したときの時刻t2とに基づいて、遅延時間を算出した。この遅延時間には、計測パケットが通信装置11からサーバ装置16まで伝達する場合の伝達時間、及び、計測パケットがサーバ装置16から通信装置11まで伝達する場合の伝達時間が含まれている。これに対して、CPU111は、計測パケットが通信装置11からサーバ装置16まで伝達する場合の伝達時間、又は、計測パケットがサーバ装置16から通信装置11まで伝達する場合の伝達時間を、遅延時間としてもよい。CPU111は、遠隔会議に参加する通信装置12、13宛の計測パケットを、サーバ装置16に送信してもよい。サーバ装置16のCPU161は、通信装置11から送信された計測パケットを受信した場合、受信した計測パケットを通信装置12、13に転送してもよい。通信装置12、13の夫々のCPU111は、サーバ装置16から計測パケットを受信した場合、サーバ装置16に対して計測パケットを返信してもよい。サーバ装置16のCPU161は、通信装置12、13から計測パケットを受信した場合、受信した計測パケットを通信装置11に転送してもよい。通信装置11のCPU111は、サーバ装置16から送信された計測パケットを受信した場合、計測パケットを送信したときの時刻と、計測パケットを受信したときの時刻とに基づいて、遅延時間を算出してもよい。CPU111は、サイズの異なる複数のデータの夫々含む複数の計測パケットを、順番に送信してもよい。CPU111は、標準偏差の代わりに平均値をジッタとして算出してもよい。
例えば、通信装置11のCPU111は、装置第1処理を開始した場合、メールアドレス及びパスワードを入力可能な画面を表示部116に表示させてもよい。CPU111は、メールアドレス及びパスワードの入力操作を入力部118を介して検出した場合、次に、入力されたメールアドレス及びパスワードに対応するユーザが参加可能な少なくとも1つの遠隔会議を特定してもよい。CPU111は、特定した少なくとも1つの遠隔会議を選択可能な画面を、表示部116に表示させてもよい。これによってユーザは、表示部116に表示された少なくとも1つの遠隔会議の何れかを選択することによって、選択した遠隔会議に参加することが可能となる。
又、CPU111は、入力されたメールアドレス及びパスワードをサーバ装置16に送信してもよい。サーバ装置16のCPU161は、受信したメールアドレス及びパスワードによってユーザを認証してもよい。CPU161は、認証に成功した場合、ユーザが参加可能な少なくとも1つの遠隔会議を特定し、特定した少なくとも1つの遠隔会議の会議IDを通信装置15に送信してもよい。通信装置15のCPU111は、サーバ装置16から受信した会議IDに基づいて、入力されたメールアドレス及びパスワードに対応するユーザが参加可能な少なくとも1つの遠隔会議を特定してもよい。
CPU111は、通信装置11の装置IDと、ユーザに選択された遠隔会議の会議IDとを含む要求パケットを、サーバ装置16に送信してもよい。サーバ装置16のCPU161は、要求パケットを受信した場合、要求パケットに含まれる装置ID及び会議IDを関連付け、記憶部164に記憶された管理テーブルに格納してもよい。
CPU111は、S11の処理によって、少なくとも1つの遠隔会議を選択する入力操作を、入力部118を介して検出したか判断してもよい。CPU111は、遠隔会議を選択する入力操作を検出した場合(S11:YES)、選択された遠隔会議を開始してもよい。
S83は本発明の「第1判断手段」の一例である。S87の処理は本発明の「第1生成手段」の一例である。S89の処理が本発明の「記憶手段」の一例である。S49、S61、S63、S65の処理が本発明の「決定手段」の一例である。S23、S51、S67、S69の処理が本発明の「設定手段」の一例である。S25の処理が本発明の「第2判断手段」の一例である。S27の処理が本発明の「第2生成手段」の一例である。S29の処理が本発明の「送信手段」の一例である。装置第3処理(S101〜S123)は本発明の「計測手段」の一例である。テーブル1141において、最も大きい第1暫定時間に対応付けられたジッタ範囲である50ms未満の任意の値が本発明の「第1値」の一例であり、50ms以上の任意の値が本発明の「第2値」の一例である。S61、S63の処理が本発明の「判断手段」の一例である。S83の処理を行うCPU111は本発明の「第1判断手段」の一例である。S87の処理を行うCPU111は本発明の「第1生成手段」の一例である。S89の処理を行うCPU111が本発明の「記憶手段」の一例である。S49、S61、S63、S65の処理を行うCPU111が本発明の「決定手段」の一例である。S23、S51、S67、S69の処理を行うCPU111が本発明の「設定手段」の一例である。S25の処理を行うCPU111が本発明の「第2判断手段」の一例である。S27の処理を行うCPU111が本発明の「第2生成手段」の一例である。S29の処理を行うCPU111が本発明の「送信手段」の一例である。
1 遠隔会議システム
11、12、13、15 通信装置
15A 第1記憶部
15B 第2記憶部
16 サーバ装置
111 CPU
113 RAM
114 HDD
151 サンプリングデータ
152 単位音データ
161 CPU
1141 テーブル
1142 テーブル

Claims (10)

  1. ネットワークを介して複数の相手装置との間で遠隔会議を実行可能な通信装置のコンピュータが実行可能なプログラムであって、
    前記コンピュータを、
    音のサンプリングデータを記憶可能な第1記憶部に、所定時間以上の時間分の音のサンプリングデータが記憶されているか判断する第1判断手段と、
    前記第1判断手段によって前記所定時間以上の時間分の音のサンプリングデータが前記第1記憶部に記憶されていると判断された場合、前記第1記憶部への記憶順に従い前記第1記憶部に記憶された前記サンプリングデータの前記所定時間分を圧縮し、単位音データを生成する第1生成手段と、
    前記第1生成手段によって生成された前記単位音データを第2記憶部に記憶する記憶手段と、
    前記ネットワークに対して送信される送信データ、及び、前記ネットワークから受信される受信データの少なくとも一方に基づいて、前記ネットワークの通信状態が第1状態であるか第2状態であるかを決定する決定手段と、
    前記決定手段によって前記第1状態であると決定されたことに応じて、1つのパケットに含める前記単位音データの基となる音の時間を示す結合時間を第1時間に設定し、前記決定手段によって前記第2状態であると決定されたことに応じて、前記結合時間を前記第1時間よりも大きい第2時間に設定する設定手段と、
    前記第2記憶部に、前記設定手段によって設定された前記結合時間以上の時間分の前記単位音データが記憶されているか判断する第2判断手段と、
    前記第2判断手段によって、前記結合時間以上の時間分の前記単位音データが前記第2記憶部に記憶されていると判断されたことに応じ、前記結合時間分の前記単位音データを含むパケットを生成する第2生成手段と、
    前記第2生成手段によって生成された前記パケットを、前記結合時間の周期で、少なくとも1つの相手装置に送信する送信手段と
    して機能させることを特徴とする通信装置のプログラム。
  2. 前記コンピュータを、
    前記ネットワークに接続され、前記通信装置及び前期複数の相手装置との間でセッションを維持することで遠隔会議を行う会議サーバに前記送信データが送信されてから、前記会議サーバによって前記送信データが受信されるまでの遅延時間、及び、前記会議サーバによって送信された前記送信データが前記通信装置によって受信データとして受信されるまでの遅延時間の少なくとも一方の変動の程度を示すジッタを計測する計測手段として更に機能させ、
    前記決定手段は、前記計測手段によって計測された前記ジッタが第1値の場合に前記第1状態であると決定し、前記計測手段によって計測された前記ジッタが前記第1値よりも大きい第2値の場合に、前記第2状態であると決定することを特徴とする請求項1に記載の通信装置のプログラム。
  3. 前記コンピュータを
    前記複数の相手装置の夫々が前記送信データを前記サーバに送信してから、前記サーバが前記送信データを受信するまでの複数の遅延時間、及び、前記サーバによって送信された送信データが前記複数の相手装置の夫々によって受信データとして受信されるまでの複数の遅延時間の少なくとも一方の変動の程度を示す複数のジッタを取得する取得手段として更に機能させ、
    前記決定手段は、前記計測手段によって計測された前記ジッタ、及び、前記取得手段によって取得された前記複数のジッタのうち最大のジッタが第1値の場合に前記第1状態であると決定し、前記計測手段によって計測された前記複数のジッタのうち最大のジッタが前記第1値よりも大きい第2値の場合に、前記第2状態であると決定することを特徴とする請求項2に記載の通信装置のプログラム。
  4. 前記コンピュータを、
    前記少なくとも1つの相手装置に対して前記遠隔会議において共有される共有資料データの送信が行われているかを判断する第3判断手段として更に機能させ、
    前記決定手段は、前記第3判断手段による前記共有資料データの送信が行われていないとの判断に応じて、前記第1状態であると決定し、前記第3判断手段による前記共有資料データの送信が行われているとの判断に応じて、前記第2状態であると決定することを特徴とする請求項1に記載の通信装置のプログラム。
  5. 前記コンピュータを、
    前記遠隔会議において前記少なくとも1つの相手装置に対してフレーム内圧縮画像のデータの送信が行われているかを判断する第3判断手段として更に機能させ、
    前記決定手段は、前記第3判断手段による前記フレーム内圧縮画像のデータの送信が行われていないとの判断に応じて、前記第1状態であると決定し、前記第3判断手段による前記フレーム内圧縮画像のデータの送信が行われているとの判断に応じて、前記第2状態であると決定することを特徴とする請求項1に記載の通信装置のプログラム。
  6. 前記第1生成手段は、前記所定時間の周期である第1周期で前記単位音データを生成し、
    前記送信手段は、前記第1周期の整数倍の周期である複数の第2周期の何れかの周期で前記パケットを送信することを特徴とする請求項1から5の何れかに記載の通信装置のプログラム。
  7. ネットワークを介して複数の相手装置との間で遠隔会議を実行可能な通信装置であって、
    音のサンプリングデータを記憶可能な第1記憶部に、所定時間以上の時間分の音のサンプリングデータが記憶されているか判断する第1判断手段と、
    前記第1判断手段によって前記所定時間よりも長い時間分の音のサンプリングデータが前記第1記憶部に記憶されていると判断された場合、前記第1記憶部への記憶順に従い前記第1記憶部に記憶された前記サンプリングデータの前記所定時間分を圧縮し、単位音データを生成する第1生成手段と、
    前記第1生成手段によって生成された前記単位音データを第2記憶部に記憶する記憶手段と、
    前記遠隔会議において通信されるデータであって、前記ネットワークに対して送信される送信データ、及び、前記ネットワークから受信される受信データの少なくとも一方に基づいて、前記ネットワークの通信状態が第1状態であるか第2状態であるかを決定する決定手段と、
    前記決定手段によって前記第1状態であると決定されたことに応じて、1つのパケットに含める前記単位音データの基となる音の時間を示す結合時間を第1時間に設定し、前記決定手段によって前記第2状態であると決定されたことに応じて、前記結合時間を前記第1時間よりも大きい第2時間に設定する設定手段と、
    前記第2記憶部に、前記設定手段によって設定された結合時間以上の時間分の前記単位音データが記憶されているか判断する第2判断手段と、
    前記第2判断手段によって、前記結合時間以上の時間分の前記単位音データが前記第2記憶部に記憶されていると判断されたことに応じ、前記結合時間分の前記単位音データを含むパケットを生成する第2生成手段と、
    前記第2生成手段によって生成された前記パケットを、前記結合時間の周期で、少なくとも1つの相手装置に送信する送信手段と
    を備えたことを特徴とする通信装置。
  8. ネットワークを介して複数の相手装置との間で遠隔会議を実行する通信方法であって、
    音のサンプリングデータを記憶可能な第1記憶部に、所定時間以上の時間分の音のサンプリングデータが記憶されているか判断する第1判断ステップと、
    前記第1判断ステップによって前記所定時間よりも長い時間分の音のサンプリングデータが前記第1記憶部に記憶されていると判断された場合、前記第1記憶部への記憶順に従い前記第1記憶部に記憶された前記サンプリングデータの前記所定時間分を圧縮し、単位音データを生成する第1生成ステップと、
    前記第1生成ステップによって生成された前記単位音データを第2記憶部に記憶する記憶ステップと、
    前記遠隔会議において通信されるデータであって、前記ネットワークに対して送信される送信データ、及び、前記ネットワークから受信される受信データの少なくとも一方に基づいて、前記ネットワークの通信状態が第1状態であるか第2状態であるかを決定する決定ステップと、
    前記決定ステップによって前記第1状態であると決定されたことに応じて、1つのパケットに含める前記単位音データの基となる音の時間を示す結合時間を第1時間に設定し、前記決定ステップによって前記第2状態であると決定されたことに応じて、前記結合時間を前記第1時間よりも大きい第2時間に設定する設定ステップと、
    前記第2記憶部に、前記設定ステップによって設定された結合時間以上の時間分の前記単位音データが記憶されているか判断する第2判断ステップと、
    前記第2判断ステップによって、前記結合時間以上の時間分の前記単位音データが前記第2記憶部に記憶されていると判断されたことに応じ、前記結合時間分の前記単位音データを含むパケットを生成する第2生成ステップと、
    前記第2生成ステップによって生成された前記パケットを、前記結合時間の周期で、少なくとも1つの相手装置に送信する送信ステップと
    を備えたことを特徴とする通信方法。
  9. ネットワークを介して複数の相手装置との間で会議サーバを介して遠隔会議を実行可能な通信装置のコンピュータが実行可能なプログラムであって、
    前記コンピュータを、
    前記遠隔会議において通信されるデータであって、前記会議サーバに対して送信される送信データ、及び、前記会議サーバから受信される受信データの少なくとも一方に基づいて、前記会議サーバとの間の通信状態が第1状態であるか第2状態であるかを決定する決定手段と、
    前記決定手段によって前記第1状態であると決定されたことに応じて、結合時間を第1時間に設定し、前記決定手段によって前記第2状態であると決定されたことに応じて、結合時間を前記第1時間よりも大きい第2時間に設定する設定手段と、
    音のサンプリングデータを記憶可能な第1記憶部に記憶されている音のサンプリングデータから、前記第1記憶部への記憶順に従い、前記結合時間分のサンプリングデータを順次圧縮し、前記結合時間分の音データを生成する第1生成手段と、
    前記第1生成手段によって生成された前記音データを含むパケットを生成する第2生成手段と、
    前記パケットを、前記結合時間の周期で、前記会議サーバに送信する送信手段と
    して機能させることを特徴とする通信装置のプログラム。
  10. 前記第1生成手段は、
    前記第1記憶部への記憶順に従い、前記結合時間以下である所定時間分の前記サンプリングデータを順次圧縮し単位音データを生成する第3生成手段と、
    前記第3生成手段によって生成された前記単位音データを第2記憶部に記憶する記憶手段と、
    を備え、
    前記コンピュータを、
    前記第2記憶部に前記設定手段によって設定された前記結合時間以上の時間分の前記単位音データが記憶されているか判断する第2判断手段として更に機能させ、
    前記第2生成手段は、前記第2判断手段によって、前記結合時間以上の時間分の前記単位音データが前記第2記憶部に記憶されていると判断されたことに応じ、前記結合時間分の前記単位音データを含むパケットを生成することを特徴とする請求項9に記載の通信装置のプログラム。
JP2013246882A 2013-11-29 2013-11-29 通信装置のプログラム、通信装置、及び通信方法 Pending JP2015106768A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013246882A JP2015106768A (ja) 2013-11-29 2013-11-29 通信装置のプログラム、通信装置、及び通信方法
US14/549,676 US20150156325A1 (en) 2013-11-29 2014-11-21 Communication Device and Non-Transitory Computer-Readable Medium
US14/550,174 US9473541B2 (en) 2013-11-29 2014-11-21 Communication device and non-transitory computer-readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013246882A JP2015106768A (ja) 2013-11-29 2013-11-29 通信装置のプログラム、通信装置、及び通信方法

Publications (1)

Publication Number Publication Date
JP2015106768A true JP2015106768A (ja) 2015-06-08

Family

ID=53266294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013246882A Pending JP2015106768A (ja) 2013-11-29 2013-11-29 通信装置のプログラム、通信装置、及び通信方法

Country Status (2)

Country Link
US (2) US20150156325A1 (ja)
JP (1) JP2015106768A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017123583A (ja) * 2016-01-07 2017-07-13 ブラザー工業株式会社 遠隔会議方法及びプログラム
CN110023817A (zh) * 2017-02-15 2019-07-16 麦克赛尔株式会社 平视显示装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017034313A (ja) * 2015-07-28 2017-02-09 株式会社リコー 撮影装置、プログラム及び撮影方法
AU2018380519B2 (en) * 2017-12-05 2022-09-15 Nec Platforms, Ltd. Communication apparatus, communication data recording system, communication method, and program

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154445A (en) * 1996-04-18 2000-11-28 Bell Atlantic Network Services, Inc. Telephony communication via varied redundant networks
US6661836B1 (en) * 1998-10-21 2003-12-09 Nptest, Llp Measuring jitter of high-speed data channels
KR100608638B1 (ko) * 1998-12-05 2006-10-24 엘지전자 주식회사 인터넷 폰 시스템의 제어방법
JP2000349824A (ja) 1999-03-31 2000-12-15 Soft Front:Kk 音声データ送受信システム
CN1342358A (zh) 1999-03-31 2002-03-27 索福特弗朗特株式会社 通过数据包网络传送语音数据的系统
US6744813B1 (en) * 1999-04-16 2004-06-01 Paradyne Corporation System and method for estimating noise characteristics in the presence of non-stationary noise
CA2280378C (en) * 1999-04-29 2009-05-26 S&C Electric Company Arrangements to detect and respond to disturbances in electrical power systems
US6525523B1 (en) * 2000-11-24 2003-02-25 Advantest Corporation Jitter measurement apparatus and its method
FI116498B (fi) 2002-09-23 2005-11-30 Nokia Corp Kaistanleveyden mukauttaminen
US7773581B2 (en) * 2004-03-19 2010-08-10 Ericsson Ab Method and apparatus for conferencing with bandwidth control
US8310965B1 (en) * 2005-10-04 2012-11-13 Marvell International Ltd. Buffered audio system with synchronizing bus controller
US8665861B1 (en) * 2005-11-29 2014-03-04 At&T Intellectual Property Ii, L.P. VoIP delay for predictive maintenance
US7916653B2 (en) * 2006-09-06 2011-03-29 Cisco Technology, Inc. Measurement of round-trip delay over a network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017123583A (ja) * 2016-01-07 2017-07-13 ブラザー工業株式会社 遠隔会議方法及びプログラム
CN110023817A (zh) * 2017-02-15 2019-07-16 麦克赛尔株式会社 平视显示装置

Also Published As

Publication number Publication date
US20150156222A1 (en) 2015-06-04
US20150156325A1 (en) 2015-06-04
US9473541B2 (en) 2016-10-18

Similar Documents

Publication Publication Date Title
EP2767039B1 (en) Quality of user experience testing for video transmissions
JP6383424B2 (ja) クラウドストリーミングサービスのためのアプリケーションエラー検出方法、そのための装置及びシステム
JP2015106768A (ja) 通信装置のプログラム、通信装置、及び通信方法
WO2013071747A1 (zh) 一种获取文件的方法和装置
US10855763B2 (en) Method and apparatus for synchronizing applications' consumption of remote data
JP2014072632A (ja) 通信端末、遠隔会議システム、通信端末の制御プログラム
US10821358B2 (en) Gaming server and method to generate context-aware gaming information
WO2014086222A1 (zh) 设置视频通话参数、和发送能力参数的方法及装置
JP6116240B2 (ja) 送信装置、送信方法、及びプログラム
WO2014187295A1 (zh) 一种通信方法、终端及通信系统
JP2011211665A (ja) 通信装置、通信方法、および通信プログラム
JP2017068530A (ja) プログラム及び遠隔会議方法
WO2015110047A1 (zh) 一种用于终端应用的数据处理方法和装置
CN109246664B (zh) 一种语音测试方法及装置
Qi et al. A context-aware framework for reducing bandwidth usage of mobile video chats
CN107982912B (zh) 一种信息处理方法和终端
JP2016018502A5 (ja)
JP5257373B2 (ja) パケット送信装置、パケット送信方法及びパケット送信プログラム
CN114866827A (zh) 音视频同步的检测方法和装置、存储介质及电子设备
JP2012015822A (ja) 通信装置、通信方法、及び通信プログラム
JP6007623B2 (ja) セッション管理装置、方法、及び、プログラム
JP2015186176A (ja) 会議制御プログラム
JP6406200B2 (ja) 通信プログラム、及び、通信システム
JP6399001B2 (ja) 遠隔会議方法及びプログラム
CN117560528B (zh) 音视频数据发送方法、装置、计算机设备及可读存储介质