(57)【要約】【課題】  ネットワークに接続された複数の端末に係る時刻の同期を適切に行う。【解決手段】  端末１０１は、ＮＴＰプロトコルを用いてＮＴＰサーバ１０２から自端末１０１の内部時計１１６の計時時刻のずれＴDを取得し、このＴDの値と、端末１０１の設定テーブルに格納されている設定値ＴSとを比較し、比較結果に応じて内部時計１１６の時刻の修正量ΔＴを決定する。具体的には、ＴDの絶対値が設定値ＴS以下である場合は修正量ΔＴをＴDに設定し、ＴDの絶対値が設定値ＴSよりも大きい場合は修正量ΔＴをＴSに設定する。これにより、ネットワークの状態の変動に起因して内部時計１１６の計時時刻が不適切な値に補正されることが防止される。【選択図】    図１
2005195507.tif 000002
【特許請求の範囲】
【請求項１】
計時手段を有する端末と参照時計を有するサーバ装置との間で時刻の同期をとる方法であって、
前記計時手段が計時する時刻と前記参照時計が計時する時刻との差に関する時間差情報を通信ネットワークを用いて取得する取得ステップと、
前記時間差情報によって表される時間差が所定値以下である場合、当該時間差だけ前記計時手段の計時時刻を修正し、当該時間差が前記所定値よりも大きい場合、前記所定値だけ前記計時手段の計時時刻を修正する修正ステップと
を有する時刻同期方法。
【請求項２】
前記取得ステップおよび前記修正ステップを定期的に繰り返すことを特徴とする請求項１に記載の時刻同期方法。
【請求項３】
前記サーバ装置はＮＴＰサーバであり、前記時間差情報はＮＴＰプロトコルに従って取得する
ことを特徴する請求項１に記載の同期方法。
【請求項４】
前記所定値は前記通信ネットワークの安定度に基づいて決定される
ことを特徴とする請求項１に記載の時刻同期方法。
【請求項５】
計時手段と、
前記計時手段が計時する時刻とサーバ装置の参照時計が計時する時刻との差に関する時間差情報を通信ネットワークを介して取得する手段と、
前記時間差情報によって表される時間差が所定値以下である場合、当該時間差だけ前記時計を修正し、当該時間差が前記所定値よりも大きい場合、前記所定値だけ前記計時手段の時刻を修正する手段と
を有する端末。
【請求項６】
前記端末はＭＩＤＩ端末であることを特徴とする請求項５に記載の端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続された複数の端末において時刻の同期をとる方法および当該方法を実行するための端末に関する。
【背景技術】
【０００２】
近年、通信インフラが急速に発達していることに伴い、ネットワークを介して、地理的な離れた複数のコンピュータ端末を用いて合奏（セッション）を行うシステムを構築することが試みられている。例えば、各ユーザはＭＩＤＩ（Musical Instrument Digital Interface）規格に適合した端末（以下、ＭＩＤＩ端末という）をインターネットに接続し、同一楽曲の特定のパートを演奏すること等が考えられている。
【０００３】
このようなシステムにおいては、ある端末から演奏情報を含む通信パケットが他の端末に送信され、また逆に、他の端末からの演奏情報パケットが当該端末において受信される。そして、送信されるパケットには当該パケットに含まれる楽音情報（楽音の発生・停止、音色の変更等の命令等）を処理するタイミングを表すタイムスタンプが付されており、受信端末側でこのタイムスタンプを参照し、当該タイムスタンプに従ったタイミングで受信した演奏情報を処理する。このような方法で楽音情報の交換を行って発音タイミング等の各種演奏処理の同期を取ることにより、ネットワークを介して複数のＭＩＤＩ端末を用いたセッションを成立させようというのである。
【０００４】
この際、各端末はぞれぞれ自端末の動作の基準となる時計を有しており、且つそれらの時計は互いに時刻の同期が取れていることが前提となる。各時計が同期していなければ、パケットに適切なタイムスタンプが付されていても、それを処理する時間が端末ごとに異なってしまうため、セッションに支障をきたす結果となるからである。しかし、一般的にはどのような時計であっても狂いが生じる可能性があり、各端末の時計が狂いなく動作していることは保証できない。そこで、ネットワークを介して各端末の時計の時刻合わせを行うことが一般的に行われている。
【０００５】
ネットワークに接続された端末の時計の時刻を合わせる方法に関して、種々の技術が存在する（例えば特許文献１参照）。代表的なものとしては、ＮＴＰ（network time protocol）およびその簡易版であるＳＮＴＰ（simple network time protocol）を用いた方法がある。具体的には、ある端末が自端末の時計の示す時刻を付したパケットをＮＴＰサーバに送信し、ＮＴＰサーバはこのパケットを受信すると、新たなパケットを当該端末に送信する。このパケットには、端末からのパケットを受信した時刻と当該新たなパケットを送信する時刻とを付しておく。このパケットを受け取った端末はパケットに付されている両時刻から自端末とサーバとの時刻差を計算し、自端末の時計を合わせる。このようにして全ての端末の時計をＮＴＰサーバの時計に合わせることにより同期をとるのである。
【０００６】
しかしながら、上述の方法においては、時刻合わせはネットワークを介して行われるため、少なからずネットワークの状態の影響を受けてしまうことは避けられない。例えば、ネットワークの負荷や使用可能帯域の状態は時間的に変動し得ることが知られているが、これはすなわち、時刻合わせに用いるパケットの遅延時間も変化する可能性があることを意味する。また、ＮＴＰプロトコルにおいては、時刻合わせ用のパケットの遅延時間は往路と復路とでは同一であると仮定している（非特許文献１参照）。従って、ある端末が受信する時刻合わせ用のパケットが何らかの突発的な影響等により、たまたま大きく遅延して届いた場合、当該端末の時刻はずれた状態に設定される可能性がある。特に、時刻合わせ用のパケットの授受中に往路および復路の一方のみに大きく遅延が発生した場合、そもそも時刻合わせの原理の前提条件が崩れることになり、結果的に、端末の時計は大きくずれた時刻に設定されてしまう。
【０００７】
一般に、セッションにおいて許容される時間のずれの範囲は数十ミリ秒程度であって、これ以上のずれが発生すると演奏者（セッションに参加している端末ユーザ）の演奏に支障が生じることが知られている。これは、従来の、ある程度リアルタイム性が要求される映像のストリーミング配信等において求められる時間誤差レベルに比べても、厳しい条件となっている。そして、実際インターネットを介した通信においては、これを大きく越えて伝送遅延のゆらぎ（ジッタ）が一時的に生じることが十分あり得る。このような場合、ＮＴＰ等の従来の方法で時刻同期を行っても、端末の時計が大きくずれて設定されてしまう結果、セッション全体の円滑な進行に支障をきたす虞がある。また、セッションに参加している端末の時計が同じようにずれて設定されていればまだしも、ある通信環境に属する端末の時計のみが著しくずれて設定されてしまうと、もはやセッションとして成り立たない可能性すらある。
【０００８】
以上説明したように、従来の時刻同期方法をインターネット等を用いたＭＩＤＩセッションに参加する端末の時刻合わせにそのまま適用しても、セッションに支障をきたさないような方法で端末の時計の時刻合わせを行うことは困難である。
【特許文献１】特開２００３−５０２８８号公報
【非特許文献１】“Simple Network Time Protocol (SNTP) Version 4 for IPv4, IPv6 and OSI“、[online]、Network Working Group Request for Comments: 2030、ミルズ（D. Mills）著、インターネット＜ＵＲＬ：http://www.faqs.org/ftp/rfc/pdf/rfc2030.txt.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、上述した点に鑑み、ネットワークを介したＭＩＤＩセッションにおいて、当該セッションに支障をきたすことなく、複数の端末の時刻の同期をとることを目的とする。
【課題を解決するための手段】
【００１０】
この課題を解決するため、本発明の時刻同期方法は、計時手段を有する端末と参照時計を有するサーバ装置との間で時刻の同期をとる方法であって、前記計時手段が計時する時刻と前記参照時計が計時する時刻との差に関する時間差情報を通信ネットワークを用いて取得する取得ステップと、前記時間差情報によって表される時間差が所定値以下である場合、当該時間差だけ前記計時手段の計時時刻を修正し、当該時間差が前記所定値よりも大きい場合、前記所定値だけ前記計時手段の計時時刻を修正する修正ステップとを有する。
【００１１】
好ましい態様において、前記取得ステップおよび修正ステップを定期的に繰り返す。また、前記サーバ装置はＮＴＰサーバであり、前記時間差情報はＮＴＰプロトコルに従って取得してもよい。前記所定値は、前記通信ネットワークの安定度に基づいて決定してもよい。
【００１２】
また、本発明の端末は、計時手段と、前記計時手段が計時する時刻とサーバ装置の参照時計が計時する時刻との差に関する時間差情報を通信ネットワークを介して取得する手段と、前記時間差情報によって表される時間差が所定値以下である場合、当該時間差だけ前記時計を修正し、当該時間差が前記所定値よりも大きい場合、前記所定値だけ前記計時手段の時刻を修正する手段と、を有する。
【発明の効果】
【００１３】
本発明によれば、通信ネットワークを介したＭＩＤＩセッションにおいて、当該セッションに支障をきたすことなく複数の端末の時刻の同期をとることができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照しつつ本発明の実施形態を説明する。
図１は、本発明の実施形態に係るＭＩＤＩセッションシステム１００の全体構成を表す図である。ＭＩＤＩ端末１０１Ａ、１０１Ｂ、および１０１Ｃは、各々インターネット１０３を介して他のＭＩＤＩ端末と接続されている。また、インターネット１０３にはＮＴＰサーバ１０２が接続されている。なお、同図においてはＭＩＤＩ端末が３つ描かれているが、これは便宜のためであって、セッションに使用するＭＩＤＩ端末の数は任意である。これら端末の構成はいずれも同じであるので、以下では、これらのＭＩＤＩ端末をMＩＤＩ端末１０１と総称することにする。
【００１５】
図２は、ＭＩＤＩ端末１０１の構成図である。ＭＩＤＩ端末１０１は、入力部１１０、送受信部１１１、楽音発生部１１２、制御部１１３、表示部１１４、記憶部１１５、内部時計１１６、および各要素を接続するバス１２０から構成される。
【００１６】
入力部１１０は、キーボード、マウス等の情報入力デバイスおよび鍵盤等の演奏情報を入力するための操作子等から構成され、各種ユーザの指示や演奏情報等を制御部１１３へ供給する。送受信部１１１はEthernet（登録商標）インタフェースや無線アンテナ等の、無線若しくは有線によりインターネット１０３を介して通信を行うための通信インタフェースである。楽音発生部１１２は、音源回路、ＤＳＰ、スピーカ等から構成され、楽音発生・停止・音色変更等の各種楽音処理を行う。制御部１１３は、ＣＰＵ、ＲＡＭ、ＲＯＭ等から構成され、各要素を制御する他、後述する時刻の計算処理等を行う。また制御部１１３は、現在選択されている動作モードに従って動作を行う。ここで動作モードとは、ＭＩＤＩ端末１０１の動作中、ユーザの明示的指示によりまたは自動的にいずれか１つのモードが選択される。そして適宜動作モードを切り換えることが可能である。このように複数の動作モードを用意することで、異なる修正処理動作を可能ならしめている。
【００１７】
表示部１１４は液晶ディスプレイ等の表示装置から構成され、ＭＩＤＩ端末１０１の設定状態を含む各種情報をユーザに提示する。記憶部１１５は、ＲＡＭ、ＥＥＰＲＯＭ、ハードディスク等の記憶装置であって、ＭＩＤＩ楽曲データを格納するほか、時刻同期処理の実行時に参照される後述する設定テーブル１２１を格納する。内部時計１１６は、端末１０１における全ての処理動作の基準となる参照時刻を生成する。具体的には、送信するパケットへのタイムスタンプの付与、受信したパケットに付与されているタイムスタンプの比較等の処理は、すべて内部時計１１６が計時する時刻に基づいて行われる。
【００１８】
図３に、記憶部１１５に格納される設定テーブル１２１の内容を示す。同図に示すように、設定テーブル１２１には、時刻差の修正処理に係る動作モードと時刻差の修正量の上限を表す設定値とが対応付けて記憶されている。
【００１９】
以下、時刻差の修正処理動作について説明する。
本発明にかかる時刻差修正処理は、二つの段階からなる。第一は、ネットワーク遅延時間を決定する処理である。第二は、決定した遅延時間および前述した設定テーブルの内容に基づいて内部時計１１６を修正すべき時間の量（以下、修正量という）ΔＴを決定する処理である。
【００２０】
図４にネットワーク遅延時間を決定する処理を示す。本実施形態においては、ＮＴＰの簡易版である、ＲＦＣ２０３０に規定されるＳＮＴＰ（Simple Network Time Protocol）を採用する。以下、同図を用いてＳＮＴＰプロトコルに準拠した遅延時間の決定方法を説明する。
【００２１】
まず、ＭＩＤＩ端末１０１は、自端末の内部時計１１６が示す時刻Ｔ1において、時刻合わせを要求するパケットをＮＴＰサーバ１０２に送信する（ステップＳ１０１）。このとき、当該パケットにはタイムスタンプ「Ｔ1」を付しておく。なお、タイムスタンプはミリ秒単位で記述するのが好ましい。
【００２２】
ＮＴＰサーバ１０２は、このパケットをＮＴＰサーバ１０２の内部時計（以下、これを参照時計という）が示す時刻Ｔ2において受信したとする（ステップＳ１０２）。そして、当該パケットに対する応答として、新たなパケットを当該端末１０１に対し、ＮＴＰサーバ１０２の参照時計が示す時刻Ｔ3において送信する（ステップＳ１０３）。このパケットには、タイムスタンプ「Ｔ2」および「Ｔ3」を付しておく。ＭＩＤＩ端末１０１はこのパケットを内部時計１１６で示される時刻Ｔ4に受信すると（ステップＳ１０４）、ＭＩＤＩ端末１０１は、以下の式からネットワークの遅延時間ＴdelayおよびＮＴＰサーバ１０２の参照時計に対する内部時計１１６の時刻差（ずれ）ＴDを計算する（ステップＳ１０５）。
（数１）  Ｔdelay＝（Ｔ4−Ｔ1）−（Ｔ2−Ｔ3）                         (1)
（数２）  ＴD＝｛（Ｔ2−Ｔ1）+（Ｔ3−Ｔ4）｝／２                      (2)
【００２３】
続いて、このように算出した時刻差ＴDに基づき内部時計１１６の修正量ΔＴを決定する処理を主に図５を参照して説明する。従来のＮＴＰを用いた方法においては、無条件に算出したＴDの値を修正量ΔＴとしていた（ただし正負は逆）。しかしながら、本発明においては、更に以下の処理を行って最終的な修正量ΔＴを決定する。これを以下に説明する。なお、時刻のずれＴDおよび修正量ΔＴといった量は、実際には符号が存在する。時計のずれには、時計が基準となる時刻に対して進んでいるか、または遅れているかの２通りの可能性があるからである。しかし、以下においては、特に断りがない限り絶対値を指すものとする。すなわち、時刻のずれといった場合はその量を示すこととする。設定すべき時刻の修正量ΔＴの正負は、時刻のずれの方向（ずれの値の正負）と反対に設定すべきことは説明するまでもない。
【００２４】
ステップＳ２０１において、上述したようにＮＴＰサーバ１０２の参照時計に対するＭＩＤＩ端末１０１の内部時計１１６のずれＴDが計算されると、ステップＳ２０２において、図３に示した設定テーブル１２１を参照し、現在の動作モードに対応する設定値ＴS（正の数）を抽出する。そして、算出したＴDの絶対値（以下、単にＴDと記す）と抽出したＴSの値とを比較する。ＴD＜ＴSまたはＴD＝ＴSの場合は（ステップＳ２０３、ＹＥＳ）、ステップＳ２０４において、ＴDだけ内部時計１１６を修正する。ＴD＞ＴSの場合は（ステップＳ２０３、ＮＯ）、Ｔｓだけ内部時計１１６を修正する（ステップＳ２０５）。すなわち、設定値ＴSよりも大きな時刻のずれが算出されても、設定値以上の量の修正を行わないようにするのである。
【００２５】
次に、図６および図７を用いて具体的な時刻修正処理の例について説明する。なお、以下では、ＭＩＤＩ端末１０１において動作モードは「Ｍ３」に設定されているものとする。
【００２６】
図６は、上述した図４および図５を用いて説明した時刻修正処理を、セッション中に定期的に（時間ｔ0毎に）実行した場合の、ＴDの値とＴSの値とを示したものである。横軸は時間（ｔ0単位）を表し、縦軸は上図においてはＴDの値を、下図においては内部時計１１６の修正量ΔＴを表す。
【００２７】
図６の上図において、時刻「６ｔ0」までは２０ｍｓ秒程度の誤差で時間差ＴDが推移している。これは、ネットワークには、２０ｍｓ程度の遅延時間の揺らぎ（ジッタ）が定常的に存在することを意味している。しかし、時刻「６ｔ0」においてＴDの値が突然大きくなっているのが分かる。時刻「７ｔ0」以降は時刻５ｔ0以前の値と同程度の値をとっているため、時刻「６ｔ0」において求めたＴDの値は、ネットワークの負荷が突発的な影響等を受けたものであって、真の時刻のずれを表しているものではないと推測される。図６の下図を参照すれば分かるように、このような場合であっても修正量ΔＴは常に±３０ｍｓの範囲の値をとっている。
【００２８】
すなわち、このＴDの値に即座に追従して内部時計１１６の修正を行うのではなく、所定値の範囲内で修正を行う。これにより、仮に通常の値から大きくずれた遅延時間ＴDの値が算出されたとしても、内部時計１１６の不適切な修正が行われることはない。結果的に、時刻の同期が大きく乱れることがなく、安定したセッションが実現する。
【００２９】
図７は、時刻修正動作の他の例を示す。図６と同様、時刻修正処理を定期的に実行した場合のＴDの値とＴSの値とを示したものである。横軸は時間（ｔ0単位）を表し、縦軸は上図においてはＴDの値を、同下図においては内部時計１１６の修正量ΔＴを表す。
【００３０】
図７の上図において、時刻「５ｔ0」までは一定の範囲でＴDの値は推移しているが、時刻「７ｔ0」付近で大きな値をとり、時刻「８ｔ0」以降は徐々に減少していることが分かる。この例の場合は、図６に示した場合と異なり、ＴDの値は時刻「８ｔ0」以降は即座に以前の値に戻っていないため、ネットワークの状態の一時的な変動によるものではなく、時刻「７ｔ0」付近で何らかの原因により時刻のずれが実際に生じていると推測される。すなわち、時刻「７ｔ0」におけるＴDの値に従って内部時計を修正すべきであることを示していると考えられる。
【００３１】
図７の下図を見ると、このような場合であっても、一回の修正に係る修正量ΔＴの上限は設定値である３０ｍｓとなっていることが分かる。実際、図７の上図と下図とを比較して見れば、一回の修正を行うごとに計算したＴDの値は約３０ｍｓずつ程度減少していることが読み取れる。そして、時刻「７ｔ0」から「１０ｔ0」ほど時間が経過し時刻「１７ｔ0」になったとき、すなわち１０回程度の修正が行われた後は、ＴDの値は以前のように０±２０ｍｓ前後となっており、これは内部時計１１６の同期がほぼ保たれた状態に戻ったことを示している。
【００３２】
すなわち、一回の修正処理で修正できる量以上の修正が必要な場合は、修正処理を繰り返し行うことによって、所望の修正量ΔＴの時刻修正を実現する。このように、たとえ現実に大きなネットワークの遅延時間の変化が発生して内部時計の大幅な時刻修正を余儀なくされた場合であっても、修正処理を繰り返し行うことにより、確実に内部時計１１６を同期させることが可能となる。
【００３３】
以上説明したように、大きな時刻のずれＴDを検知した場合において、それがネットワークの一時的な要因による一過性のものであって内部時計をその値に修正すべきでない場合であっても、実際に時計の計時時刻がずれていてその通りの値に修正すべき場合であっても、適切に対応することができる。
【００３４】
なお、設定する動作モードの数および各モードにおける設定値ＴSの値は任意に設定できる。例えば、ＭＩＤＩ端末１０１のユーザが設定テーブル１２１に書き込んでもよい。あるいはＭＩＤＩ端末１０１が自動的に設定してもよい。具体的には、端末１０１がネットワークの状態を測定し、ネットワークの状態に基づいて自動的に設定値Ｔｓを決定してもよい。例えば、ネットワークの状態を定期的に測定し、ネットワークが安定している場合は設定値Ｔｓを小さくし、不安定の場合は設定値Ｔｓを大きくするように書き換えることが可能である。また、ネットワーク状態に関する情報を外部のサーバから取得することとしてもよい。これにより、ユーザはネットワークの状態を意識する必要がなく、演奏に集中することができる。
【００３５】
また、図６および図７におけるｔ0の設定、換言すれば修正処理を行う頻度の設定およびタイミングの設定に関しては、任意の方法で行うことが可能である。例えば、ネットワークの安定度に基づいて設定してもよい。また、楽曲の演奏中（セッション中）に定期的(例えば１秒毎）に行うのが好ましいが、所定の小節毎に行ってもよい。また、楽曲の開始時には必ず最低１回は時刻合わせを行うことが好ましい。
【００３６】
本発明の時刻同期方法は、ＭＩＤＩ端末を用いたセッションシステムに限らず、例えば、少なからずリアルタイム性が要求されるストリーミング配信等の映像・音声データの送受信システムにも適用できることは言うまでもない。
【００３７】
＜変形例＞
図８に本発明の変形例に係るＭＩＤＩセッションシステム２００を示す。本変形例においては、ＭＩＤＩ端末１０１Ａ〜１０１Ｃに替えてシーケンサ２０１Ａ〜２０１Ｃおよび音源２０２Ａ〜２０２Ｃを用いた構成となっている。図９にシーケンサ２０１の構成を示す。同図に示すように、シーケンサ２０１は楽音発生部１１２を備えておらず、楽音を発生させる機能を有していない。その代わり、音源２０２と通信を行うためのＭＩＤＩ規格に対応したインタフェース部１１７を備えている。音源２０２はＭＩＤＩ規格等に準拠した音源であり、図示せぬインタフェースを介してシーケンサ２０１と通信を行う。シーケンサ２０１は、インタフェース部１１７を介して音源２０２から演奏情報を取得すると、取得した演奏情報に対してその音量や音色等の情報を予め定められた設定条件に基づいて加工し、加工後の演奏情報を音源２０２に出力する。音源２０２は加工された演奏情報を受信すると、当該加工後の演奏情報に基づいて楽音を発生させる。なお、図９においては、便宜上、一つのシーケンサに対して一つの音源のみが示されているが、複数の音源を用いてもよいことは言うまでもない。
【００３８】
以上本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、適宜、変形等を行うことが可能である。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態に係るＭＩＤＩセッションシステムの全体構成図である。
【図２】同実施形態に係るＭＩＤＩ端末の構成図である。
【図３】同ＭＩＤＩ端末に係る設定テーブルの内容を示す図である。
【図４】同実施形態において、ＮＴＰプロトコルに従って遅延時間差および時刻のずれを決定する処理を表すシーケンスチャートである。
【図５】本発明の実施形態に係る時刻修正処理をフローチャートである。
【図６】同実施形態に係る時刻差の経時変化を示す例である。
【図７】同実施形態に係る時刻差の経時変化を示す例である。
【図８】本発明の変形例に係るＭＩＤＩセッションシステムの全体構成図である。
【図９】同変形例に係るシーケンサ２０１の構成を示す図である。
【符号の説明】
【００４０】
１００・・・ＭＩＤＩセッションシステム、１０１・・・ＭＩＤＩ端末、１０２・・・ＮＴＰサーバ、１０３・・・インターネット、１１０・・・入力部、１１１・・・送受信部、１１２・・・楽音発生部、１１３・・・制御部、１１４・・・表示部、１１５・・・記憶部、１１６・・・内部時計・・・、１１７・・・インタフェース部、１２０・・・バス、１２１・・・設定テーブル。
【図１】
2005195507.tif 000003
【図２】
2005195507.tif 000004
【図３】
2005195507.tif 000005
【図４】
2005195507.tif 000006
【図５】
2005195507.tif 000007
【図６】
2005195507.tif 000008
【図７】
2005195507.tif 000009
【図８】
2005195507.tif 000010
【図９】
2005195507.tif 000011