以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明は、同期パケットを送信すると共に、他のMMT受信機から同期パケットを受信する複数のMMT受信機により構成されるネットワークにおいて、MMT受信機が、同期パケットに含まれるNTP経過時間(NTPサーバと同期してからの経過時間)から、NTP経過時間が最小のMMT受信機を特定し、当該MMT受信機の同期パケットに含まれる送信タイムスタンプ(同期パケットを送信したときの送信時刻)にアプリ時計を補正することを特徴とする。
これにより、同期パケットを相互に受信することで、複数のMMT受信機のアプリ時計を合わせることができ、ネットワークの構成が変化しても、自律的に同期を確立することができる。したがって、複数のMMT受信機により構成されるネットワークにおいて、簡易な手法で同期を確立することができる。
〔ネットワーク〕
まず、本発明の実施形態によるMMT受信機(以下、「受信機」という。)を含むネットワークについて説明する。図1は、本発明の実施形態による受信機を含むネットワークを説明する図である。
このネットワーク1は、n台の受信機2-1,2-2,2-3,・・・,2-nを備えて構成される。以下、受信機2-1,2-2,2-3,・・・,2-nを総称して、「受信機2」という。n台の受信機2は、前述の非特許文献1と同様に、無線、LAN等の通信路により相互に接続されるものとする。
受信機2は、例えばタブレット端末、スマートフォン等のモバイル端末、またはテレビである。受信機2は、UTCを含むNTPパケットをNTPサーバ4から受信し、UTCをシステム時計に設定し、映像及び音声を再生するアプリケーションの起動に際し、システム時間をアプリ時計に設定する。このアプリケーションは、MMTストリームを受信し、映像及び音声を再生するソフトウェアであり、受信機2に予めインストールされる。
受信機2は、MMT方式により多重化された映像・音声信号を含むIPパケット(MMTPパケットを含むIPパケット)を送信装置3から受信し、アプリ時計に基づいて、映像及び音声を再生する。
受信機2は、同期を確立するために用いる同期パケットを他の受信機2へマルチキャストにて送信し、他の受信機2から同期パケットをそれぞれ受信する。そして、受信機2は、同期パケットに基づいて、アプリ時計を補正することで、複数の受信機2間でアプリ時計を合わせ、同期を確立する。
尚、n台の受信機2が接続される通信路は、送信装置3からIPパケットが送信される伝送路及びNTPサーバ4からNTPパケットが送信される伝送路と共通であってもよいし、別であってもよい。
〔同期パケット〕
次に、図1に示したネットワーク1においてマルチキャスト送信される同期パケットについて説明する。図2は、同期パケットに含まれるデータを示す図である。
この同期パケットは、各受信機2がIPパケットに含まれるMMTPパケットを受信している間、他の受信機2に対し一定周期でマルチキャストにて送信するパケットであり、他の受信機2から一定周期で受信するパケットでもある。図1を参照して、例えば受信機2-1は、当該受信機2-1にて生成した同期パケットを受信機2-2,2-3,・・・,2-nへマルチキャスト送信する。また、受信機2-1は、受信機2-2,2-3,・・・,2-nから、それぞれの受信機2-2,2-3,・・・,2-nにて生成された同期パケットを受信する。
図2を参照して、同期パケットは、送信元の受信機2のIPアドレス、送信タイムスタンプ、NTP経過時間、MMTパッケージID及びPTSオフセットを含む各データにより構成される。
送信元の受信機2のIPアドレスは、同期パケットをマルチキャスト送信する当該受信機2のIPアドレスを示す。送信タイムスタンプは、同期パケットを送信する際のアプリ時計の時刻を示す。受信機2は、同期パケットを送信する際に、アプリ時計を送信タイムスタンプとして同期パケットに格納(設定)する。
NTP経過時間は、当該受信機2においてNTPサーバ4と同期してからの経過時間を示す。具体的には、受信機2がNTPサーバ4からNTPパケットを受信し、NTPパケットに含まれるUTCをシステム時計に設定したタイミングを、NTPサーバ4と同期が確立したタイミングとする。NTP経過時間は、当該同期が確立したタイミングからの経過時間、すなわち、NTPサーバ4から取得したUTCがシステム時計に設定されたときからの経過時間を示す。NTPサーバ4との間の同期は、所定時間間隔にて行われる。
MMTパッケージIDは、当該同期パケットを送信する送信元の当該受信機2が受信中の映像・音声信号のIDを示す。例えば受信機2-1,2-2,2-3においてMMTパッケージIDが同じ場合、受信機2-1,2-2,2-3は、同じ映像等を受信していることを意味する。
PTSオフセットは、パケットの伝送遅延時間と処理遅延時間の和の時間を示す。伝送遅延時間は、送信装置3と当該受信機2との間の伝送路におけるパケットの遅延時間である。処理遅延時間は、当該受信機2がパケットを受信してから映像等を提示(再生)するまでの間の遅延時間である。
〔同期処理〕
次に、図1に示した受信機2による同期処理について説明する。図3は、受信機2の同期処理例を示すフローチャートである。
受信機2は、送信装置3により送信されたMMTPパケットの受信を開始したか否かを判定する(ステップS301)。受信機2は、ステップS301において、MMTPパケットの受信を開始していないと判定した場合(ステップS301:N)、MMTPパケットの受信を開始するまで待つ。
一方、受信機2は、ステップS301において、MMTPパケットの受信を開始したと判定した場合(ステップS301:Y)、一定周期にて同期パケットを生成し、同期パケットをマルチキャスト送信する(ステップS302)。また、受信機2は、生成した同期パケットを、後述する受信機リストバッファ16に格納し、受信機リストを更新する。受信機リストバッファ16の詳細については後述する。
受信機2は、他の受信機2によりマルチキャスト送信された同期パケットを受信したか否かを判定する(ステップS303)。受信機2は、ステップS303において、同期パケットを受信していないと判定した場合(ステップS303:N)、ステップS302へ移行し、同期パケットを受信するまで待つ。この場合、受信機2は、一定周期にて同期パケットの生成、送信及び格納処理を行う。
一方、受信機2は、ステップS303において、同期パケットを受信したと判定した場合(ステップS303:Y)、当該同期パケットを後述する受信機リストバッファ16に格納し、受信機リストを更新する(ステップS304)。
ステップS302~S304により、受信機リストバッファ16には、全ての受信機2の同期パケットが格納される。
受信機2は、受信機リストバッファ16から全ての受信機2の同期パケットを読み出す。そして、受信機2は、自己のMMTパッケージIDと同じIDを有する同期パケットを特定し、特定した同期パケット及び自己の同期パケットを対象パケットに設定する(ステップS305)。例えば、受信機2-1は、自己のMMTパッケージIDが受信機2-2,2-3のMMTパッケージIDと同じ場合、受信機2-1,2-2,2-3の同期パケットを対象パケットに設定する。
受信機2は、対象パケットに基づいて、NTP経過時間が最小の受信機2’を特定する(ステップS306)。具体的には、受信機2は、1または2以上の対象パケットである同期パケットに含まれるNTP経過時間のうち、最小のNTP経過時間を特定する。そして、受信機2は、同期パケットに含まれるIPアドレスに基づいて、最小のNTP経過時間を含む同期パケットを送信してきた受信機2’を特定する。
ここで、最小のNTP経過時間を含む同期パケットを送信してきた受信機2’は、最も信頼できる(最も精度の高い)アプリ時計を保持しているものとみなされる。
NTP経過時間は、NTPサーバ4と同期してからの経過時間であるため、NTP経過時間が長いほど、アプリ時計(システム時計が反映された後のアプリ時計)の精度は低く、NTP経過時間が短いほど、アプリ時計の精度は高いからである。つまり、NTP経過時間が長いほど、アプリ時計は、正確な時間であるNTPサーバ4のUTCからずれることとなり、NTP経過時間が短いほど、正確な時間に近くなる。
受信機2は、ステップS306にて特定した受信機2’の(から送信してきた)同期パケットに含まれる送信タイムスタンプをアプリ時計に設定することで、自己のアプリ時計を補正する(ステップS307)。ここで、受信機2は、ステップS306にて特定した受信機2’が当該受信機2である場合、アプリ時計の補正を行わない。
これにより、受信機2の自己のアプリ時計は、同じMMTパッケージIDの映像等を受信している受信機2群のうち、最も信頼できるアプリ時計を保持した受信機2’のアプリ時計に一致することとなる。したがって、同じMMTパッケージIDの映像等を受信している受信機2群のそれぞれのアプリ時計は、最も信頼できるアプリ時計に一致することとなる。
受信機2は、ステップS305にて設定した対象パケットに基づいて、PTSオフセットが最大の受信機2”を特定する(ステップS308)。具体的には、受信機2は、1または2以上の対象パケットである同期パケットに含まれるPTSオフセットのうち、最大のPTSオフセットを特定する。そして、受信機2は、同期パケットに含まれるIPアドレスに基づいて、最大のPTSオフセットを含む同期パケットを送信してきた受信機2”を特定する。この場合、受信機2は、対象パケットに含まれるPTSオフセットのうちその最大値を特定するようにしてもよい。
ここで、最大のPTSオフセットを含む同期パケットを送信してきた受信機2”における映像等の提示時刻は、同じ映像等を再生している受信機2群の提示時刻のうち、最も遅い時刻とみなされる。そして、最も遅い提示時刻に合わせるように、後述のステップS309において待ち時間が設定され、映像等の提示処理のタイミングを示す提示タイミング信号が修正される。
受信機2は、ステップS308にて特定した受信機2”の(から送信してきた)同期パケットから抽出したPTSオフセット(PTSオフセットの最大値)から自己のPTSオフセットを減算する。そして、受信機2は、減算結果を、映像等の提示処理の待ち時間に設定する(ステップS309)。ここで、受信機2は、ステップS308にて特定した受信機2”が当該受信機2である場合、待ち時間の設定を行わない。
そして、受信機2により、PTSにPTSオフセットが加算され、さらに待ち時間が加算された加算結果の時刻を示す提示タイミング信号が生成され、同じ映像等を再生している受信機2群の提示時刻のうち最も遅い提示時刻に、映像等が再生される。したがって、同じMMTパッケージIDの映像等を受信している受信機2群のそれぞれの提示時刻は、最も遅い提示時刻に一致することとなる。
受信機2は、MMTPパケットの受信が終了したか否かを判定する(ステップS310)。受信機2は、ステップS310において、MMTPパケットの受信が終了していないと判定した場合(ステップS310:N)、ステップS302へ移行する。一方、受信機2は、ステップS310において、MMTPパケットの受信が終了したと判定した場合(ステップS310:Y)、同期処理を終了する。
このように、同期パケットの受信を契機として、ステップS304にて受信機リストが更新され、ステップS307にてアプリ時計が信頼できる時刻となるように補正され、ステップS309にて映像等の提示処理の待ち時間が最も遅い提示時刻を基準として設定される。したがって、同じMMTパッケージIDの映像等を受信している受信機2群について、アプリ時計が一致し、映像等が同じ時刻にて提示されこととなり、同期が確立する。
〔受信機2〕
次に、図1に示した受信機2について説明する。図4は、受信機2の構成例を示すブロック図である。この受信機2は、ユーザインターフェース10、無線LANインターフェース11、システム時計設定部12、アプリ時計処理部13、パケット受信処理部14、同期制御部15、受信機リストバッファ16、符号データバッファ17、復号器18、復号済データバッファ19、読出器20、ディスプレイ21及びスピーカ22を備えている。
ユーザインターフェース10は、ユーザの操作に従って番組の選局を行い、受信パラメータ、同期パラメータ等を設定する。ユーザインターフェース10は、受信パラメータをパケット受信処理部14に出力し、同期パラメータを同期制御部15に出力する。同期パラメータとして、同期パケットのマルチキャスト送信周期等が設定される。
無線LANインターフェース11は、各種データを含むパケットを受信する受信部として機能すると共に、各種データを含むパケットを送信する送信部として機能する。無線LANインターフェース11は、送信装置3から映像・音声信号等を含むIPパケットを受信し、IPパケットからMMTPパケットを抽出し、MMTPパケットをパケット受信処理部14に出力する。MMTPパケットには、映像信号及び音声信号等が格納されている。
無線LANインターフェース11は、他の受信機2(受信機2-1,2-2,2-3,・・・,2-nのうち当該受信機2以外の受信機)から同期パケットを受信する。そして、無線LANインターフェース11は、同期パケットを同期制御部15に出力する。また、無線LANインターフェース11は、同期制御部15から同期パケットを入力し、同期パケットを他の受信機2へマルチキャスト送信する。
無線LANインターフェース11は、OS(Operating System、図示せず)の制御により、所定周期にてNTPサーバ4からUTCを含むNTPパケットを受信し、NTPパケットをシステム時計設定部12に出力する。
システム時計設定部12は、当該受信機2が保持する自らの時刻情報(OSの時刻)をシステム時計として格納している。このシステム時計は、アプリ時計処理部13により読み出される。
システム時計設定部12は、無線LANインターフェース11からNTPパケットを入力し、NTPパケットからUTCを抽出し、UTCをシステム時計として設定する。そして、システム時計設定部12は、UTCをシステム時計と設定したタイミングをNTPサーバ4の時計に同期したタイミングとし、そのタイミングにてNTP同期信号を生成し、NTP同期信号を同期制御部15に出力する。
アプリ時計処理部13は、映像及び音声を再生するアプリケーションの起動に伴い(起動したタイミングにて)、システム時計設定部12からシステム時計を読み出し、システム時計をアプリ時計に設定する。そして、アプリ時計処理部13は、受信機リストバッファ16から全ての受信機2の同期パケットを読み出し、図3に示したステップS305~S307の処理を行い、自己のアプリ時計を補正する。アプリ時計処理部13は、補正後のアプリ時計を同期制御部15に出力する。アプリ時計処理部13の詳細については後述する。
パケット受信処理部14は、ユーザインターフェース10から受信パラメータを入力すると共に、無線LANインターフェース11からMMTPパケットを入力する。パケット受信処理部14は、受信パラメータに従ってMMTPパケットの受信処理を開始し、MMTPパケットから、映像信号及び音声信号の符号データ、PTS及びMMTパッケージID等を抽出する。
パケット受信処理部14は、映像信号及び音声信号の符号データを結合し、復号器18にて復号できるように、所定の形式の符号データを生成して符号データバッファ17に格納する。
パケット受信処理部14は、図示しない算出部から、MMTPパケットを含むIPパケットの伝送遅延時間及び処理遅延時間を入力し、伝送遅延時間に処理遅延時間を加算することで、これらの和を求め、これをPTSオフセットΔOFに設定する。
前述のとおり、伝送遅延時間は、送信装置3と当該受信機2との間の伝送路におけるパケットの遅延時間であり、図示しない算出部により既知の処理にて算出される。また、処理遅延時間は、当該受信機2がパケットを受信してから映像等を提示するまでの間の遅延時間であり、図示しない算出部により既知の処理にて算出される。
パケット受信処理部14は、MMTPパケットから抽出したPTS及びMMTパッケージID、予め設定された当該受信機2のIPアドレス、及び算出したPTSオフセットΔOFを同期制御部15に出力する。
同期制御部15は、ユーザインターフェース10から同期パラメータを入力すると共に、無線LANインターフェース11から同期パケットを入力し、システム時計設定部12からNTP同期信号を入力する。また、同期制御部15は、アプリ時計処理部13からアプリ時計を入力し、パケット受信処理部14からPTS、MMTパッケージID、IPアドレス、PTSオフセットΔOFを入力する。
同期制御部15は、NTP同期信号の入力タイミングから経過時間をカウントし、同期パラメータに含まれるマルチキャスト送信周期のタイミングにて、カウントした経過時間をNTP経過時間に設定すると共に、アプリ時計を送信タイムスタンプに設定する。
同期制御部15は、IPアドレス、送信タイムスタンプ、NTP経過時間、MMTパッケージID及びPTSオフセットΔOF等からなる同期パケットを生成し、これを受信機リストバッファ16に格納する。また、同期制御部15は、マルチキャスト送信するように同期パケットを設定し、当該同期パケットを無線LANインターフェース11に出力する。
同期制御部15は、無線LANインターフェース11から入力した同期パケットを受信機リストバッファ16に格納する。
同期制御部15は、受信機リストバッファ16から全ての受信機2の同期パケットを読み出し、図3に示したステップS305,S308,S309の処理を行い、待ち時間を設定する。そして、同期制御部15は、PTSに自己のPTSオフセットΔOF及び待ち時間を加算し、加算結果の時刻を提示時刻とし、提示時刻を示す提示タイミング信号を生成する。また、同期制御部15は、アプリ時計の時刻が提示時刻のときに復号データの復号が完了して映像等を提示できるように、復号時刻を示す復号タイミング信号を生成する。
同期制御部15は、復号タイミング信号を復号器18に出力し、提示タイミング信号を読出器20に出力する。同期制御部15の詳細については後述する。
受信機リストバッファ16には、当該受信機2にて生成した同期パケット、及び他の受信機2から受信した同期パケットが格納される。
図5は、受信機リストバッファ16の構成例を説明する図である。受信機リストバッファ16には、受信機2-1の(受信機2-1により生成された)同期パケット、受信機2-2の同期パケット、・・・及び受信機2-nの同期パケットが格納されている。
図4へ戻って、符号データバッファ17には、パケット受信処理部14により結合された映像信号及び音声信号の符号データが格納される。
復号器18は、同期制御部15から復号タイミング信号を入力し、復号タイミング信号に従って、符号データバッファ17から符号データを読み出し、符号データを復号して復号済データを生成する。そして、復号器18は、復号済データを復号済データバッファ19に格納する。
復号済データバッファ19には、復号器18により復号された映像信号及び音声信号の復号済データが格納される。
読出器20は、同期制御部15から提示タイミング信号を入力し、提示タイミング信号に従って、復号済データバッファ19から復号済データを読み出す。そして、読出器20は、映像信号の復号済データをディスプレイ21に出力し、音声信号の復号済データをスピーカ22に出力する。
ディスプレイ21は、読出器20から映像信号の復号済データを入力し、映像を再生する。スピーカ22は、読出器20から音声信号の復号済データを入力し、音声を再生する。
〔アプリ時計処理部13〕
次に、図4に示したアプリ時計処理部13について説明する。図6は、アプリ時計処理部13の構成例を示すブロック図である。このアプリ時計処理部13は、設定部30、アプリ時計格納部31、補正部32及び出力部33を備えている。
設定部30は、映像及び音声を再生するアプリケーションの起動に伴い、システム時計設定部12からシステム時計を読み出し、システム時計をアプリ時計に設定し、アプリ時計をアプリ時計格納部31に格納する。
これにより、映像及び音声を再生するアプリケーションの起動のタイミングで、アプリ時計がシステム時計と同じ時刻に設定され、その後、アプリ時計がカウントされる。
補正部32は、図3に示したステップS305~S307の処理を行う。図8は、補正部32の処理例を示すフローチャートであり、図3に示したステップS305~S307の処理に相当する。
補正部32は、他の受信機2から同期パケットが受信され受信機リストバッファ16が更新されたタイミングで、受信機リストバッファ16から全ての受信機2の同期パケットを読み出す(ステップS801)。そして、補正部32は、それぞれの同期パケットからMMTパッケージIDを抽出し、自己の(当該受信機2が受信中の映像等の)MMTパッケージIDと同じIDを含む同期パケットを対象パケットに設定する(ステップS802)。
補正部32は、対象パケットからNTP経過時間を抽出し、NTP経過時間が最小の受信機2を特定し、当該受信機2が自己の受信機2であるか他の受信機2であるかを判定する(ステップS803)。
補正部32は、ステップS803において、NTP経過時間が最小の受信機2が自己の受信機2でなく、他の受信機2であると判定した場合(ステップS803:他)、NTP経過時間が最小の受信機2を他の受信機2’に設定する(ステップS804)。
補正部32は、他の受信機2’の(から送信してきた)同期パケットから送信タイムスタンプを抽出し、当該送信タイムスタンプをアプリ時計に設定することで、自己のアプリ時計を補正する(ステップS805)。補正部32は、補正後のアプリ時計をアプリ時計格納部31に格納(上書)する。これにより、当該受信機2のアプリ時計は、他の受信機2’のアプリ時計と同じ時刻に補正される。
一方、補正部32は、ステップS803において、NTP経過時間が最小の受信機2が自己の受信機2であると判定した場合(ステップS803:自己)、アプリ時計の補正を行わない。
前述のとおり、NTP経過時間は、NTPサーバ4と同期してからの経過時間であるため、NTP経過時間が短いほど、受信機2におけるアプリ時計の精度は高い。このため、受信機2’は、最も信頼できるアプリ時計を保持しているといえる。受信機2’から送信してきた同期パケットに含まれる送信タイムスタンプは、最も信頼できる現在のアプリ時計として、当該送信タイムスタンプを用いて自己のアプリ時計が補正される。
これにより、同期パケットの受信を契機として、当該受信機2のアプリ時計が信頼できる時刻に補正され、受信機2’のアプリ時計に一致することとなる。したがって、当該受信機2と同じMMTパッケージIDの映像等を受信している受信機2群のそれぞれのアプリ時計は、最も信頼できるアプリ時計に一致することとなる。
図6に戻って、出力部33は、アプリ時計格納部31からアプリ時計を読み出し、アプリ時計を同期制御部15に出力する。
これにより、受信機2群において同期した補正後のアプリ時計が同期制御部15に出力される。
〔同期制御部15〕
次に、図4に示した同期制御部15について説明する。図7は、同期制御部15の構成例を示すブロック図である。この同期制御部15は、同期パケット生成部40、同期パケットマルチキャスト送信部(同期パケット送信部)41、同期パケット受信部42、待ち時間設定部43及びタイミング制御部44を備えている。
同期パケット生成部40は、ユーザインターフェース10から同期パラメータを入力すると共に、システム時計設定部12からNTP同期信号を入力し、アプリ時計処理部13からアプリ時計を入力する。また、同期パケット生成部40は、パケット受信処理部14からMMTパッケージID、IPアドレス、PTSオフセットΔOFを入力する。同期パケット生成部40は、NTP同期信号の入力タイミングから経過時間をカウントする。
同期パケット生成部40は、同期パラメータに含まれるマルチキャスト送信周期のタイミングにおいて、カウントしている経過時間をNTP経過時間に設定すると共に、入力したアプリ時計を送信タイムスタンプに設定する。
同期パケット生成部40は、IPアドレス、送信タイムスタンプ、NTP経過時間、MMTパッケージID及びPTSオフセットΔOF等からなる同期パケットを生成する。同期パケット生成部40は、同期パケットを受信機リストバッファ16に格納すると共に、同期パケットマルチキャスト送信部41に出力する。
これにより、一定周期毎に同期パケットが生成され、同期パケットは受信機リストバッファ16に格納されることで受信機リストが更新され、同期パケットマルチキャスト送信部41及び無線LANインターフェース11を介して他の受信機2へマルチキャスト送信される。
また、同期パケットマルチキャスト送信部41は、同期パケット生成部40から同期パケットを入力する。そして、同期パケットマルチキャスト送信部41は、同期パケットに対し、マルチキャスト送信周期の示す一定周期にてマルチキャスト送信するための設定を行う。そして、同期パケットマルチキャスト送信部41は、同期パケットを無線LANインターフェース11に出力する。同期パケットマルチキャスト送信部41は、同期パケットを、無線LANインターフェース11を介して他の受信機2へマルチキャスト送信する。
これにより、同期パケットは、一定周期にてマルチキャスト送信される。図3に示したステップS302の処理は、同期パケット生成部40、同期パケットマルチキャスト送信部41及び無線LANインターフェース11により行われる。
同期パケット受信部42は、図3に示したステップS304,S305の処理を行う。具体的には、同期パケット受信部42は、他の受信機2から無線LANインターフェース11を介して同期パケットを受信する。つまり、同期パケット受信部42は、他の受信機2によりマルチキャスト送信された同期パケットを、無線LANインターフェース11から入力する。
同期パケット受信部42は、同期パケットを受信機リストバッファ16に格納する。これにより、他の受信機2により生成され送信された同期パケットが受信機リストバッファ16に格納され、受信機リストが更新される。
尚、同期パケット受信部42は、同期パケットを受信して受信機リストバッファ16に格納し、受信機リストを更新したタイミングで、更新タイミング信号を待ち時間設定部43及びアプリ時計処理部13の補正部32に出力する。
これにより、待ち時間設定部43は、更新タイミング信号を入力することで、図3に示したステップS305,S308,S309の処理を行い、待ち時間を設定する。また、アプリ時計処理部13の補正部32は、更新タイミング信号を入力することで、図3に示したステップS305~S307の処理を行い、アプリ時計を補正する。
待ち時間設定部43は、図3に示したステップS305,S308,S309の処理を行う。図9は、待ち時間設定部43の処理例を示すフローチャートであり、図3に示したステップS305,S308,S309の処理に相当する。
待ち時間設定部43は、他の受信機2から同期パケットが受信され受信機リストバッファ16が更新されたタイミングで、受信機リストバッファ16から全ての受信機2の同期パケットを読み出す(ステップS901)。そして、待ち時間設定部43は、それぞれの同期パケットからMMTパッケージIDを抽出し、自己の(当該受信機2が受信中の映像等の)MMTパッケージIDと同じIDを含む同期パケットを対象パケットに設定する(ステップS902)。
待ち時間設定部43は、対象パケットからPTSオフセットを抽出し、PTSオフセットが最大の受信機2を特定し、当該受信機2が自己の受信機2であるか他の受信機2であるかを判定する(ステップS903)。
待ち時間設定部43は、ステップS903において、PTSオフセットが最大の受信機2が自己の受信機2でなく、他の受信機2であると判定した場合(ステップS903:他)、PTSオフセットが最大の受信機2を他の受信機2”に設定する(ステップS904)。
待ち時間設定部43は、以下の式のとおり、他の受信機2”が送信してきた同期パケットから抽出したPTSオフセット(PTSオフセットの最大値ΔPTSmax)から自己のPTSオフセットΔOFを減算する(ステップS905)。そして、待ち時間設定部43は、減算結果を映像等の提示処理の待ち時間ΔWTに設定する(ステップS906)。
[数1]
待ち時間ΔWT=PTSオフセットの最大値ΔPTSmax-PTSオフセットΔOF
・・・(1)
これにより、当該受信機2の提示時刻が、同じ映像等を再生している受信機2群の提示時刻のうち最も遅い時刻となるように、待ち時間ΔWTが設定される。
一方、待ち時間設定部43は、ステップS903において、PTSオフセットが最大の受信機2が自己の受信機2であると判定した場合(ステップS903:自己)、待ち時間ΔWTの設定を行わない(待ち時間ΔWT=0を設定する)。これにより、当該受信機2の提示時刻が、同じ映像等を再生している受信機2群の提示時刻のうち最も遅い時刻であるため、当該受信機2の提示時刻を変更しないように、待ち時間ΔWTは設定されない。
尚、待ち時間設定部43は、対象パケットからPTSオフセットを抽出し、PTSオフセットが最大の受信機2を特定する際に、抽出したPTSオフセットが予め設定された閾値以上である場合、当該PTSオフセットを除外する。つまり、待ち時間設定部43は、抽出したPTSオフセットのうち閾値以上のPTSオフセットを除外し、除外後のPTSオフセットから、PTSオフセットが最大の受信機2を特定する。
これにより、映像等の提示処理を、PTSオフセットが閾値以上の大きな値の受信機2に合わせることがないから、ユーザビリティの低下を抑え、バッファメモリのコスト増を回避することができる。
図7に戻って、タイミング制御部44は、アプリ時計処理部13からアプリ時計を入力すると共に、パケット受信処理部14からPTS及びPTSオフセットΔOFを入力し、さらに待ち時間設定部43から待ち時間ΔWTを入力する。
タイミング制御部44は、PTSの時刻にPTSオフセットΔOF及び待ち時間ΔWTを加算し、加算結果の時刻を提示時刻(PTS+ΔOF+ΔWT)に設定する。そして、タイミング制御部44は、提示時刻(PTS+ΔOF+ΔWT)及びアプリ時計等に基づいて、復号タイミング信号及び提示タイミング信号を生成する。タイミング制御部44は、復号タイミング信号を復号器18に出力し、提示タイミング信号を読出器20に出力する。
具体的には、タイミング制御部44は、アプリ時計が提示時刻(PTS+ΔOF+ΔWT)のときに符号データの復号が完了して映像等が提示できるように、復号時刻のタイミングを示す復号タイミング信号を生成して出力する。
また、タイミング制御部44は、アプリ時計が提示時刻(PTS+ΔOF+ΔWT)のときに復号済データをディスプレイ21及びスピーカ22に出力できるように、提示時刻(PTS+ΔOF+ΔWT)のタイミングを示す提示タイミング信号を生成して出力する。
これにより、待ち時間ΔWTだけ、映像及び音声をディスプレイ21及びスピーカ22に提示するタイミングを遅延させることができる。つまり、同じ映像等を再生している受信機2群の提示時刻のうち最も遅い提示時刻に、映像等が再生される。したがって、同じMMTパッケージIDの映像等を受信している受信機2群のそれぞれの提示時刻は、最も遅い提示時刻に一致することとなる。
以上のように、本発明の実施形態の受信機2によれば、送信装置3により送信されたMMTPパケットの受信を開始すると、同期制御部15は、一定周期にて同期パケットを生成してマルチキャスト送信し、生成した同期パケットを受信機リストバッファ16に格納し、受信機リストを更新する。
同期制御部15は、他の受信機2によりマルチキャスト送信された同期パケットを受信し、受信した同期パケットを受信機リストバッファ16に格納し、受信機リストを更新する。
アプリ時計処理部13は、受信機リストバッファ16から全ての同期パケットを読み出し、自己のMMTパッケージIDと同じIDを有する同期パケットを特定し、これを対象パケットに設定する。
アプリ時計処理部13は、対象パケットに基づいて、NTP経過時間が最小の受信機2’を特定し、受信機2’の同期パケットに含まれる送信タイムスタンプをアプリ時計に設定することで、自己のアプリ時計を補正する。
これにより、受信機2のアプリ時計は、同じMMTパッケージIDの映像等を受信している受信機2群のうち、最も信頼できるアプリ時計を備えた受信機2’のアプリ時計に一致することとなる。そして、同じMMTパッケージIDの映像等を受信している受信機2群のアプリ時計は、受信機2’のアプリ時計に一致することとなる。
同期制御部15は、アプリ時計処理部13と同様に対象パケットを設定し、対象パケットに基づいて、PTSオフセットが最大の受信機2”を特定し、受信機2”の同期パケットから抽出したPTSオフセット(PTSオフセットの最大値)から自己のPTSオフセットを減算し、減算結果を待ち時間として設定する。
同期制御部15は、PTSにPTSオフセット及び待ち時間を加算した加算結果の時刻を示す提示タイミング信号を生成し、提示タイミング信号を出力する。
これにより、同じ映像等を再生している受信機2群の提示時刻のうち最も遅い提示時刻に、映像等が再生される。そして、同じMMTパッケージIDの映像等を受信している受信機2群のそれぞれの提示時刻は、最も遅い提示時刻に一致することとなる。
前述の特許文献1の手法では、マスターに設定された受信機2と同じMMTパッケージIDの映像等を受信している全ての受信機2において、同期が確立する。これに対し、本発明の実施形態では、ネットワーク1を構成する全ての受信機2のうち、同じMMTパッケージIDの映像等を受信している受信機2群において、同期が確立する。
例えば、ネットワーク1において、受信機2-1,2-2,2-3が第1のMMTパッケージIDの映像等を受信しており、受信機2-4,2-5,2-6が第2のMMTパッケージIDの映像等を受信している場合を想定する。この場合、受信機2-1,2-2,2-3において同期が確立し、これとは別に、受信機2-4,2-5,2-6においても同期が確立する。
このように、本発明の実施形態では、同じMMTパッケージIDの映像等を受信している受信機2群が複数グループ存在しても、グループ毎に同期を確立することができる。また、マスターの受信機2の設定が不要となるから、利便性が向上すると共に、簡易な手法にて同期を確立することができる。
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。
例えば前記実施形態では、受信機2のアプリ時計処理部13は、同じMMTパッケージIDの映像等を受信している受信機2群におけるそれぞれの同期パケットに基づいて、NTP経過時間が最小の受信機2’を特定する。そして、アプリ時計処理部13は、受信機2’の同期パケットに含まれる送信タイムスタンプをアプリ時計に設定することで、自己のアプリ時計を補正するようにした。
これに対し、アプリ時計処理部13は、NTP経過時間の代わりに、NTPサーバ4から取得するUTCの(NTPサーバ4の時計の)ジッター等の品質値を用いて、自己のアプリ時計を補正するようにしてもよい。この場合、図4において、受信機2の図示しない算出部は、既知の処理にて、NTPサーバ4の時計のジッター等を算出することで、NTPサーバ4の時計の品質値を求める。そして、同期制御部15の同期パケット生成部40は、図示しない算出部から品質値を入力し、当該品質値等を含む同期パケットを生成し、同期パケットマルチキャスト送信部41は、同期パケットをマルチキャスト送信する。
受信機2のアプリ時計処理部13は、同じMMTパッケージIDの映像等を受信している受信機2群におけるそれぞれの同期パケットから品質値を抽出し、同期パケットに含まれるIPアドレスに基づいて、品質値が最大の受信機2’を特定する。そして、アプリ時計処理部13は、受信機2’の同期パケットに含まれる送信タイムスタンプをアプリ時計に設定することで、自己のアプリ時計を補正する。
ここで、図8に示したNTP経過時間を用いてアプリ時計を補正する手法は、受信機2群のそれぞれが同じNTPサーバ4の時計を参照してシステム時計を設定している場合に有効である。一方、NTPサーバ4の時計の品質値を用いてアプリ時計を補正する手法は、受信機2群のそれぞれが異なるNTPサーバ4の時計を参照してシステム時計を設定している場合に有効である。
また、受信機2のアプリ時計処理部13は、NTP経過時間及び品質値を用いて、自己のアプリ時計を補正するようにしてもよい。この場合、各受信機2は、NTP経過時間及びNTPサーバ4の時計の品質値等を含む同期パケットを生成し、同期パケットをマルチキャスト送信する。
受信機2のアプリ時計処理部13は、同じMMTパッケージIDの映像等を受信している受信機2群におけるそれぞれの同期パケットからNTP経過時間及び品質値を抽出する。そして、アプリ時計処理部13は、NTP経過時間が短いほど高い評価値(及びNTP経過時間が長いほど低い評価値)を設定すると共に、品質値が大きいほど高い評価値(及び品質値が小さいほど低い評価値)を設定し、両評価値の合計が最大の受信機2’を特定する。このとき、NTP経過時間を品質値よりも優先するように(NTP経過時間の重みを品質値の重みよりも大きくして)、評価値を設定するようにしてもよい。そして、アプリ時計処理部13は、受信機2’の同期パケットに含まれる送信タイムスタンプをアプリ時計に設定することで、自己のアプリ時計を補正する。
また、前記実施形態では、受信機2は、送信装置3から受信している映像等のMMTパッケージIDを含む同期パケットを生成するようにしたが、MMTパッケージIDの代わりに、番組を一意に特定可能な他のIDを用いるようにしてもよい。
また、同期パケット等のパケットは、例えばSLP(Service Location Protocol)、SNMP(Simple Network Management Protocol)等を用いて送受信するようにしてもよい。
また、受信機2は、当該受信機2の種類に応じて優先度を設け、優先度に応じて受信機2’,2”を特定するようにしてもよい。例えば、受信機2は、スマートフォンよりもテレビの方を高い優先度に設定し、スマートフォンの受信機2よりもテレビの受信機2の方を優先して受信機2’,2”に特定する。
また、ネットワーク1において、NTPサーバ4と同期している受信機2が存在しない場合、受信機2は、受信機2群のうち予め設定された受信機2を、受信機2’として特定するようにしてもよい。つまり、受信機2は、予め設定された受信機2である受信機2’の同期パケットに含まれる送信タイムスタンプをアプリ時計に設定することで、自己のアプリ時計を補正する。
また、前記実施形態では、受信機2は、同期パケットを他の受信機2へマルチキャストにて送信するようにしたが、ブロードキャストにて送信するようにしてもよい。
また、前記実施形態では、受信機2は、無線LANインターフェース11を介して、IPパケット及びNTPパケットを受信し、同期パケットを送受信するようにした。これに対し、配信システム2は、無線LANインターフェース11の代わりに有線LANインターフェースを介して、IPパケット及びNTPパケットを受信し、同期パケットを送受信するようにしてもよい。
尚、本発明の実施形態による受信機2のハードウェア構成としては、通常のコンピュータを使用することができる。受信機2は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。
受信機2に備えたユーザインターフェース10、無線LANインターフェース11、システム時計設定部12、アプリ時計処理部13、パケット受信処理部14、同期制御部15、受信機リストバッファ16、符号データバッファ17、復号器18、復号済データバッファ19及び読出器20の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。
これらのプログラムは、前記記憶媒体に格納されており、CPUに読み出されて実行される。また、これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。