【文献】
青木ほか,次世代放送システムのメディアトランスポート方式の検討,映像情報メディア学会技術報告,(一社)映像情報メディア学会,2013年 2月13日,Vol.37, No.9,p.57-60
【文献】
超高精細度テレビジョン放送システムに関する中間報告(多重化方式), [online],2013年12月 3日,p.33-34,URL,http://www.soumu.go.jp/main_content/000270455.pdf
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した非特許文献1のデータ送信方法に関し、以下の問題が生じることを見出した。
【0011】
MPEGで規格化中のメディア伝送フォーマットであるMMTでは、符号化されたコンテンツなどの符号化データユニットであるMPU(Media Processing Unit)は、そのMPUの提示(または表示)時刻(PTS: Presentation Time Stamp)あるいは復号時刻(DTS: Decoding Time Stamp)を示すことができないフォーマットで構成されている。したがって、データ再生装置は、そのMPUを取得しただけでは、そのMPUをいつ再生すべきか判断することができない。
【0012】
そこで、データ送信装置は、MPUの先頭時刻情報をデータ再生装置に送信することが想定されている。先頭時刻情報は、例えば、MPUの提示(または表示)を開始する時刻(先頭PTS)を示す。なお、この先頭PTSは、絶対時刻と同一の形式で示されるものである。つまり、MMTのデータを受信して再生するデータ再生装置は、そのデータを再生する際には、サーバ(データ送信装置)などに既に格納されたMPUを、先頭時刻情報と共に要求する。そして、データ送信装置は、その要求を受けると、そのMPUを先頭時刻情報と共にデータ再生装置に送信する。これにより、データ再生装置は、先頭時刻情報に示される先頭PTSの時刻にMPUの提示が開始されるように、そのMPUを再生する。
【0013】
しかしながら、MMTのデータを生成しながら順次送信し、送信されたデータを受信して順次再生するようなケースでは、先頭時刻情報から適切な先頭PTSを取得できないという課題がある。このような課題について、
図1を参照して説明する。
【0014】
図1は、上記非特許文献1などから想定されるデータ送信方法の課題を説明するための説明図である。
【0015】
データ送信装置は、
図1に示すように、MMTにおける複数のMPU(MPU#1、MPU#2、MPU#3、・・・)からなるデータ列であるアセットを送信する。なお、時刻T_getでは、MPU#1とMPU#2の先頭PTSが確定している。
【0016】
ここで、データ再生装置は、時刻T_getにおいて先頭時刻情報を取得し、時刻T_get以降であって、最初に処理が開始されるMPU#3からの各MPUのデータを受信する。この場合、先頭時刻情報には、MPU#1とMPU#2の先頭PTS(PTSab_1,PTSab_2)が示されるのみで、MPU#3の先頭PTS(PTSab_3)は示されない。したがって、データ再生装置は、MPU#3の先頭PTSを取得することができない。
【0017】
このように、データ再生装置は、放送や通信ネットワークを介して配信されるMPUを受信して再生することを、ユーザーの取得要求などにしたがって開始する際には、受信されるMPUの先頭PTSを適切に取得することができないという課題がある。つまり、MPUの復号および表示(オーディオの場合は出力)の開始時刻が決定できないという課題がある。また、先頭PTSが取得できないと、例えば、互いのPTSに基づくオーディオとビデオとの同期再生もできない。
【0018】
つまり、この想定されるデータ送信方法およびデータ再生方法、ならびにデータ送信装置およびデータ再生装置では、予め定められた時刻に再生することが要求される放送に対して十分に適用することができないという問題がある。
【0019】
なお、従来のMMTでは、MMTのファイル(MP4ファイル)を伝送することが想定されていたため、MMTにしたがって構成されるアセットのMPU(Media Processing Unit)において最初に表示あるいは復号されるサンプルのPTSやDTSは既知であった。このため、データ再生装置では、再生を開始するMPUにおける先頭PTSや先頭DTSを予め取得することができる。しかしながら、データ送信装置が、MMTのデータを生成しながら順次送信し、データ再生装置が、送信されたデータを再生する場合には、データ再生装置は、再生が開始されるMPUの先頭PTSなどの絶対時刻を予め取得できず、再生開始のタイミングが決定できないという課題がある。つまり、生放送などによって送信されるMMTのデータに対して十分に適用することができないという問題がある。
【0020】
このような問題を解決するために、本発明の一態様に係るデータ送信方法は、それぞれ複数のサンプルからなる複数の符号化データユニットと、現在の時刻を設定するための基準時刻を示す基準時刻情報と、符号化データユニット内の先頭のサンプルを提示または復号する時刻である先頭時刻を示す先頭時刻情報とを、生成する生成ステップと、生成された前記複数の符号化データユニット、前記基準時刻情報および前記先頭時刻情報を送信する送信ステップとを含み、前記先頭時刻情報は、生成された前記複数の符号化データユニットのうち、当該先頭時刻情報が送信された後に提示または復号が開始される複数の符号化データユニットである複数の特定符号化データユニットのそれぞれの先頭時刻を示し、生成された前記複数の符号化データユニットのそれぞれは、当該符号化データユニット内の先頭のサンプル以外のサンプルのそれぞれが提示または復号される時点を、当該符号化データユニット内の他のサンプルの時点との相対値として示す。
【0021】
これにより、先頭時刻情報には、その先頭時刻情報が送信された後に提示または復号が開始される複数の特定符号化データユニット(例えば、複数の特定のMPU)のそれぞれの先頭時刻(例えば、先頭PTS)が示されている。したがって、データ再生装置は、その先頭時刻情報を受信したときには、そのとき以降に提示または復号が開始される複数の特定符号化データユニットのそれぞれの先頭時刻、つまり適切な先頭時刻を取得することができる。その結果、データ再生装置は、複数の特定符号化データユニットの提示または復号をそれらの先頭時刻から適切に開始することができる。したがって、予め定められた時刻に再生することが要求される放送に対して十分に適用することができる。また、先頭時刻情報には、1つだけでなく、複数の特定符号化データユニットのそれぞれの先頭時刻が示されているため、データ再生装置は、何れかの特定符号化データユニットを受信することができなかった場合でも、他の特定符号化データユニットの受信を開始することができれば、その特定符号化データユニットの提示または復号を適切な時刻に開始することができる。
【0022】
また、前記先頭時刻情報は、生成された前記複数の符号化データユニットのうち、少なくとも、当該先頭時刻情報が送信された直後に送信される符号化データユニットの先頭時刻を示してもよい。
【0023】
これにより、データ再生装置は、符号化データユニットの適切な時刻での提示または復号の開始を早期に実現することができる。
【0024】
また、前記送信ステップでは、前記先頭時刻情報を周期的に送信してもよい。
【0025】
これにより、多くの符号化データユニットの先頭時刻をデータ再生装置に通知することができる。
【0026】
また、前記先頭時刻情報は、当該先頭時刻情報の次の先頭時刻情報が送信される時刻までに提示または復号が開始される前記複数の特定符号化データユニットの先頭時刻を示してもよい。
【0027】
これにより、先頭時刻情報によって示される複数の先頭時刻は、その先頭時刻情報が送信される時刻に近い時刻に提示または復号が開始される複数の特定符号化データユニットのそれぞれの先頭時刻だけであるため、正確な先頭時刻のみを先頭時刻情報に示すことができる。
【0028】
また、前記データ送信方法は、さらに、データが送信されてからデータ再生装置に受信されるまでにかかる伝搬時間と、前記データ再生装置によって前記先頭時刻情報が受信されてから符号化データユニットの受信が最初に開始されるまでの遅延時間とを、前記先頭時刻情報が送信される時刻に加算することによって、最終受信時刻を算出する算出ステップを含み、前記先頭時刻情報は、生成された前記複数の符号化データユニットのうち、当該先頭時刻情報が送信される時刻から前記最終受信時刻までに提示または復号が開始される全ての符号化データユニットの先頭時刻を、前記複数の特定符号化データユニットの先頭時刻として示してもよい。
【0029】
これにより、先頭時刻情報には、伝搬時間および遅延時間が考慮された複数の先頭時刻が示されているため、データ再生装置によって先頭時刻情報が受信された後に提示または復号を開始することができる符号化データユニットの先頭時刻が、その先頭時刻情報に1つも示されていないことを防ぐことができる。
【0030】
また、本発明の一態様に係るデータ再生方法は、それぞれ複数のサンプルからなる複数の符号化データユニットと、現在の時刻を設定するための基準時刻を示す基準時刻情報と、符号化データユニット内の先頭のサンプルを提示または復号する時刻である先頭時刻を示す先頭時刻情報とを、受信する受信ステップと、前記複数の符号化データユニットを再生する再生ステップとを含み、前記先頭時刻情報は、受信された前記複数の符号化データユニットのうち、当該先頭時刻情報が受信された後に提示または復号が開始される複数の符号化データユニットである複数の特定符号化データユニットの先頭時刻を示し、受信された前記複数の符号化データユニットのそれぞれは、当該符号化データユニット内の先頭のサンプル以外の複数のサンプルである複数の非先頭サンプルのそれぞれが提示または復号される時点を、当該符号化データユニット内の他のサンプルの時点との相対値として示し、前記再生ステップでは、前記基準時刻情報によって示される基準時刻にしたがって設定される現在の時刻と、前記先頭時刻情報によって示される前記複数の特定符号化データユニットのそれぞれの先頭時刻と、受信された前記複数の符号化データユニットのそれぞれによって示される、複数の前記非先頭サンプルのそれぞれの相対値と、に応じたタイミングに、前記複数の特定符号化データユニットに含まれる複数のサンプルがそれぞれ提示または復号されるように、前複数のサンプルを再生する。
【0031】
例えば、前記再生ステップでは、前記複数の特定符号化データユニットのうちの何れか1つである処理対象符号化データユニット内の先頭のサンプルを再生する際には、前記基準時刻情報によって示される基準時刻にしたがって設定される現在の時刻が、前記先頭時刻情報によって示される、前記処理対象符号化データユニットの先頭時刻に至ったときに、前記先頭のサンプルを提示または復号する。また、前記再生ステップでは、前記処理対象符号化データユニット内の複数の前記非先頭サンプルのうちの何れか1つである処理対象非先頭サンプルを再生する際には、前記処理対象非先頭サンプルを提示または復号する処理時刻を算出し、算出された前記処理時刻に、前記現在の時刻が至ったときに、前記処理対象非先頭サンプルを提示または復号し、前記処理時刻の算出では、前記処理対象符号化データユニットによって示される、複数の前記非先頭サンプルのそれそれぞれの相対値のうちの少なくとも前記処理対象非先頭サンプルの相対値を、前記先頭時刻情報によって示される、前記処理対象符号化データユニットの先頭時刻に加算することによって、前記処理時刻を算出する。
【0032】
これにより、複数の符号化データユニットに含まれるすべてのサンプル(アクセスユニット)を予め定められた時刻に提示または復号することができ、予め定められた時刻に再生することが要求される放送に対して十分に適用することができる。
【0033】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【0034】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0035】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0036】
(実施の形態)
図2は、本実施の形態におけるデータ送信装置のブロック図である。
【0037】
本実施の形態におけるデータ送信装置10は、放送に対して十分に適用することができる装置であって、生成部11と送信部12とを備える。
【0038】
生成部11は、それぞれ複数のサンプルからなる複数の符号化データユニットと、現在の時刻を設定するための基準時刻を示す基準時刻情報と、符号化データユニット内の先頭のサンプルを提示または復号する時刻である先頭時刻を示す先頭時刻情報とを生成する。送信部12は、生成された複数の符号化データユニット、基準時刻情報および先頭時刻情報を送信する。
【0039】
ここで、先頭時刻情報は、上述の複数の符号化データユニットのうち、その先頭時刻情報が送信された後に提示または復号が開始される複数の符号化データユニットである複数の特定符号化データユニットのそれぞれの先頭時刻を示す。また、複数の符号化データユニットのそれぞれは、その符号化データユニット内の先頭のサンプル以外のサンプルのそれぞれが提示または復号される時点を、その符号化データユニット内の他のサンプルの時点との相対値として示す。
【0040】
図3は、本実施の形態におけるデータ送信装置10の動作を示すフローチャートである。
【0041】
まず、生成部11は、複数の符号化データユニットと、基準時刻情報と、先頭時刻情報とを生成する(ステップS11)。次に、送信部12は、生成された複数の符号化データユニット、基準時刻情報および先頭時刻情報を送信する(ステップS12)。
【0042】
例えば、符号化データユニットはMMTにおけるMPUであり、サンプルはアクセスユニットである。基準時刻は、データ送信装置10と、データ送信装置10からデータを受信して再生するデータ再生装置との間で共通の時刻、または、データ送信装置10とデータ再生装置との間で同期を取るための時刻である。例えば、基準時刻は、UTC(Coordinated Universal Time)またはSTC(System Time Clock)である。先頭時刻情報は、この先頭時刻情報が送信された後に提示または復号が開始されるMPUごとに、そのMPUの識別情報(シーケンス番号など)と、そのMPU内の先頭のアクセスユニットを提示または復号する時刻である先頭時刻とを関連付けて示す。なお、符号化データユニット(MPU)内の先頭のサンプル(アクセスユニット)は、提示順で先頭のサンプルまたは復号順で先頭のサンプルである。つまり、先頭時刻情報によって示される先頭時刻が、先頭のサンプルを提示する時刻(先頭PTS)であれば、その先頭のサンプルは、提示順で先頭のサンプルである。また、先頭時刻情報によって示される先頭時刻が、先頭のサンプルを復号する時刻(先頭DTS)であれば、その先頭のサンプルは、復号順で先頭のサンプルである。
【0043】
このような本実施の形態におけるデータ送信装置10およびデータ送信方法では、先頭時刻情報には、その先頭時刻情報が送信された後に提示または復号が開始される複数の特定符号化データユニット(例えば、複数の特定のMPU)の先頭時刻(例えば、先頭PTS)が示されている。したがって、データ再生装置は、その先頭時刻情報を受信したときには、そのとき以降に提示または復号が開始される複数の特定符号化データユニットのそれぞれの先頭時刻、つまり適切な先頭時刻を取得することができる。その結果、データ再生装置は、複数の特定符号化データユニットの提示または復号をそれらの先頭時刻から適切に開始することができる。したがって、予め定められた時刻に再生することが要求される放送に対して十分に適用することができる。また、先頭時刻情報には、1つだけでなく、複数の特定符号化データユニットのそれぞれの先頭時刻が示されているため、データ再生装置は、何れかの特定符号化データユニットを受信することができなかった場合でも、他の特定符号化データユニットの受信を開始することができれば、その特定符号化データユニットの提示または復号を適切な時刻に開始することができる。
【0044】
以下、本実施の形態におけるデータ送信装置10およびデータ送信方法について、詳細に説明する。なお、以下の説明では、符号化データユニット、サンプル、および先頭時刻のそれぞれの具体的な例として、MPU、アクセスユニット、および先頭PTSを用いて説明する。
【0045】
本実施の形態における先頭時刻情報は、少なくとも、先頭時刻情報の送信時刻の直後に送信されるMPUの先頭PTSを含む。
【0046】
先頭PTSは、MPU内において提示(表示)順で先頭となるサンプルのPTSを、絶対時刻と同一の形式で示す。MMTの場合、絶対時刻はUTC(Coordinated
Universal Time)で表現され、UTCをNTP(Network Time Protocol)により取得した値が使われる。絶対時刻はUTCに限定されるものではなく、MPEG−2 systemにおけるSTC(System Time Clock)など絶対時刻が表現可能な任意の基準クロックを使用できる。
【0047】
図4は、本実施の形態におけるデータ送信方法を説明するための説明図である。
【0048】
図4に示すように、先頭時刻情報d1は、時刻T_sendにおいて送信されるが、時刻T_sendでは未だ送信されていないMPU(MPU#3,MPU#4,MPU#5)の先頭PTSを格納している。具体的には、先頭時刻情報d1は、時刻T_sendの直後に送信されるMPU♯3のシーケンス番号と、そのMPU♯3の先頭PTSとを関連付けて示し、MPU♯4のシーケンス番号と、そのMPU♯4の先頭PTSとを関連付けて示し、MPU♯5のシーケンス番号と、そのMPU♯5の先頭PTSとを関連付けて示す。なお、
図4において、MPUの右隣に♯とともに示される数字は、そのMPUのシーケンス番号(識別情報)である。また、この先頭時刻情報d1によって示されるシーケンス番号のMPUが上述の特定符号化データユニットである。
【0049】
このように時刻T_sendにおいて先頭時刻情報d1が送信される場合、データ再生装置は、その先頭時刻情報d1を取得して、例えば、MPU#4のデータから受信を開始する。このとき、データ再生装置は、MPU#4の先頭PTS(PTSab_4)を先頭時刻情報d1から取得して、現在時刻が時刻PTSab_4になったときにMPU#4の提示を開始する。
【0050】
なお、MMTパッケージが複数のアセット(ビデオおよびオーディオごとに、複数のMPUからなる列)から構成される場合には、データ送信装置10はアセットごとに先頭時刻情報d1を送信する。また、先頭時刻情報d1は、MPUの先頭PTSの代わりに先頭DTSを示してもよいし、先頭PTSと先頭DTSの両方を示してもよい。ここで、先頭DTSは、MPU内において復号順で先頭となるサンプルのDTSを絶対時刻と同一の形式で示す。
【0051】
また、本実施の形態では、MMTのMPUにおける先頭時刻情報d1を例に説明するが、先頭時刻情報d1はMPU以外の符号化データユニットの先頭時刻を示してもよい。つまり、本実施の形態は、MPEG−DASH(Dynamic Adaptive Streaming over HTTP)のSegmentや、MP4におけるMovie
Fragmentなど、コンテンツ内のアクセスユニット(MP4やMMT,MPEG−DASHにおけるサンプルに相当)のPTSやDTSを絶対時刻と同一の形式で示すことのできない任意のフォーマットに対して適用できる。なお、MPUやMPEG−DASHのSegmentの送信においては、moovやmdatなどのヘッダ情報を送信せずに、MPUを構成するサンプルデータのみを送信してもよい。この場合、MPU内のサンプルデータにおけるPTSあるいはDTSの先頭時刻情報d1からの相対値は、MPUとは別の情報として送信してもよい。また、本実施の形態におけるデータ送信方法は、放送あるいは通信ネットワークにおいてストリーミング(マルチキャスト、ブロードキャストなどを含む)やダウンロードによりコンテンツを受信して再生するなどのケースにおいて適用できる。
【0052】
ここで、先頭時刻情報d1に示される、MPUの先頭PTSの数または範囲について詳細に説明する。
【0053】
データ送信装置10の生成部11は、少なくとも、最終受信時刻T_lastと同一の時刻、あるいは、最終受信時刻T_lastよりも早い時刻を示す、複数のMPUの先頭PTSを先頭時刻情報d1に格納する。最終受信時刻T_lastは、以下の(式1)に示すように、送信時刻T_sendに、最大遅延時間Max_delayと伝搬時間Trans_timeとを加算した時刻として定義される。
【0054】
T_last = T_send + Trans_time + Max_delay ・・・(式1)
【0055】
なお、(式1)において、T_sendは先頭時刻情報d1の送信時刻であり、Trans_timeは、伝送路におけるデータの伝搬時間(データが送信されてから、データ再生装置によってそのデータが受信されるまでにかかる時間)である。また、Max_delayは、データ再生装置によって先頭時刻情報d1が受信されてから、MPUの受信が最初に開始されるまでの遅延時間の最大値である。
【0056】
MPUがランダムアクセスユニット(MPUの先頭がランダムアクセスポイント)であるとすると、データ再生装置は、先頭時刻情報d1を受信した後に最初にMPUの先頭データを取得することができた場合、そのMPUから、そのMPUを含むデータを復号することができる。
【0057】
例えば、データ再生装置が、
図4に示すMPU#3の先頭データの直後から受信を開始したとしても、MPU#3から復号を開始することはできず、MPU#4から復号を開始することができる。つまり、受信開始から復号開始できるまでには、最大で、MPUの再生時間長分のタイムラグが発生する。従って、データ送信装置10の生成部11は、最大遅延時間Max_delayを算出する際には、先頭時刻情報d1を受信してからMPUのデータを受信開始できるまでの遅延時間に、MPUなどランダムアクセスユニットの再生時間長の最大値などを加算することによって、最大遅延時間Max_delayを算出してもよい。
【0058】
MPUがランダムアクセスユニットでない場合には、データ送信装置10の生成部11は、先頭時刻情報d1が受信されてから、ランダムアクセスポイントのデータが受信開始されるまでの時間に基づいて、最大遅延時間Max_delayを決定してもよい。
【0059】
データ送信装置10の生成部11は、送信時刻T_sendを決定する際には、先頭時刻情報d1の厳密な送信時刻ではなく、送信時刻の推定値、あるいは、先頭時刻情報d1を生成する時刻などを送信時刻T_sendとして決定してもよい。
【0060】
先頭時刻情報d1の生成時刻を送信時刻T_sendとする場合には、生成部11は、生成時刻と実際の送信時刻との差異を考慮して、最終受信時刻T_lastを決定する。例えば、送信部12は、先頭時刻情報d1やMPUをパケット化(MMTパケット、TSパケット、あるいはRTPパケットなど)して送信する際には、それらのデータのパケットを多重化する。このとき、先頭時刻情報d1のパケットとMPUのパケットとが、それらのパケットに含まれるデータが生成された時刻の昇順に多重化されないことがある。つまり、先頭時刻情報d1よりも後に生成されたMPUが先頭時刻情報d1よりも先に送信されるなどのケースが発生し得る。
【0061】
したがって、生成部11は、パケット多重化時の順番の入れ替わりに起因する送信時刻の変動量に基づいて最終受信時刻T_lastを決定してもよい。ただし、ダウンロードにより取得されるデータ(MPEG−DASHのコンテンツなど)においては、パケット多重化は行われないため、このような問題は発生しない。
【0062】
また、生成部11は、先頭時刻情報d1を周期的に生成し、送信部12は、先頭時刻情報d1が生成されるごとに、その先頭時刻情報d1を送信してもよい。なお、順次送信される先頭時刻情報d1によって示される複数の先頭PTSは、その先頭時刻情報d1の送信時刻T_sendに応じて更新される。
【0063】
送信周期をTとすると、時刻T_sendにおいて先頭時刻情報d1が送信された後に、時刻(T_send+T)において次の先頭時刻情報d1が送信される。次の先頭時刻情報d1は、時刻(T_send+T)の直後に送信されるMPUの先頭PTSを少なくとも示す。従って、時刻T_sendに送信される先頭時刻情報d1は、時刻(T_send+T)より後のMPUの先頭PTSを示さなくてもよい。したがって、生成部11は、(式1)から算出された時刻と、(T_send+T)とを比較して、小さい方の値をT_lastとして決定してもよい(同一である場合は、いずれかの値)。
【0064】
放送では、伝搬時間Trans_timeは一定であるため、生成部11は、地上波放送あるいは衛星放送などの放送方式に応じてその伝搬時間Trans_timeを決定することができる。特に、地上波放送においては、伝搬時間Trans_timeを無視してもよい。また、最大遅延時間Max_delayについても、放送サービスにおける運用規定などによって定義することができる。また、データ再生装置が基準時刻に同期して動作する場合には、伝搬時間Trans_timeを考慮する必要がないため、伝搬時間Trans_timeは無視できる。
【0065】
一方、通信ネットワークにおいては、伝搬時間Trans_timeはネットワークの輻輳状況などに応じて変動する。したがって、生成部11は、ワーストケースを想定して伝搬時間Trans_timeを設定してもよいし、送信サーバ(データ送信装置10)からデータ再生装置までの伝搬時間を推定した上で、伝搬時間Trans_timeを適応的に設定してもよい。
【0066】
また、先頭時刻情報d1とMPUが異なるチャネルで受信される場合がある(例えば、先頭時刻情報d1がHTTPで受信され、MPUがMMTプロトコルやRTP(Real−time Transport Protocol)で受信される)。このような場合では、データ送信装置10は、先頭時刻情報d1を取得した後に、先頭時刻情報d1の送信時刻よりも前に送信されたMPUのデータを受信することがある(
図4において、先頭時刻情報d1の受信後に、MPU#1やMPU#2のデータを受信するなど)。したがって、生成部11は、送信時刻T_sendよりも前に送信されるMPUの先頭PTSを、先頭時刻情報d1に含めてもよい。
【0067】
放送では、MPEG−2 TSのセクション、あるいは、MMTにおけるMMTメッセージなどによって、先頭時刻情報d1が送信されるため、送信時刻T_sendよりも前の時刻を示す先頭PTSを持つMPUが、その送信時刻T_sendの後で受信されることはない。しかし、通信ネットワーク経由など放送以外の伝送路から先頭時刻情報d1が取得される場合には同様の問題が発生し得る。
【0068】
なお、上述の例では、生成部11は上記(式1)を用いて最終受信時刻T_lastを算出したが、そのような算出を行わずに、送信時刻T_sendに予め定められた時間長を加算することによって、最終受信時刻T_lastを決定してもよい。
【0069】
ここで、先頭時刻情報d1を生成する方法について詳細に説明する。
【0070】
生成部11は、先頭時刻情報d1を生成する先頭時刻情報生成部を備える。
【0071】
図5は、本実施の形態における先頭時刻情報生成部のブロック図である。
【0072】
先頭時刻情報生成部100は、開始MPU決定部101、先頭PTS取得部103、判定部104および情報生成部106を備える。
【0073】
開始MPU決定部101は、先頭時刻情報d1の送信時刻T_sendの直後に送信されるMPUを開始MPUとして決定し、開始MPUの識別情報を先頭PTS取得部103に通知する。
【0074】
先頭PTS取得部103は、補助情報を取得し、その補助情報に基づいて、開始MPU決定部101から通知された識別情報によって示される開始MPU以降の各MPUの先頭PTSを順次取得する。そして、先頭PTS取得部103は、先頭PTSを取得するごとに、その取得された先頭PTSを判定部104に通知する。
【0075】
判定部104は、先頭PTS取得部103から通知された先頭PTSが、最終受信時刻T_last以前を示すか否かを判定する。
【0076】
情報生成部106は、判定部104における判定結果に基づいて、先頭時刻情報d1を生成する。
【0077】
図6は、本実施の形態における先頭時刻情報生成部100の動作を示すフローチャートである。
【0078】
まず、開始MPU決定部101は、先頭時刻情報d1の送信時刻T_sendの直後に送信される開始MPUを決定する。なお、この開始MPUは、MMTのアセットに含まれる複数のMPUからなる列のうちのi=0番目のMPUであって、MPU(0)として表記される。iはシーケンス番号(識別情報)である。また、このとき、開始MPU決定部101は、決定された開始MPUの識別情報を先頭PTS取得部103に通知する。これにより、先頭PTS取得部103は、開始MPU決定部101から識別情報を取得すると、その識別情報によって示される開始MPU(MPU(0))の先頭PTSを、必要に応じて補助情報を参照することによって取得する(ステップS101)。
【0079】
次に、先頭PTS取得部103は、番号iを1に設定し(ステップS102)、i=1番目のMPUであるMPU(1)の先頭PTSを、必要に応じて補助情報を参照することによって取得する(ステップS103)。また、先頭PTS取得部103は、取得された先頭PTSを判定部104に通知する。
【0080】
次に、判定部104は、先頭PTS取得部103からMPU(1)の先頭PTSを取得すると、その先頭PTSが最終受信時刻T_last以前を示す否かを判定する(ステップS104)。なお、MMTのデータを送信する伝送路に応じて、例えば、放送と通信ネットワークでは、上記(式1)における伝搬時間Trans_timeが異なる。したがって、判定部104は、MMTのデータ(MPU)が送信される伝送路に応じて、伝搬時間Trans_timeに異なる値を設定してもよい。例えば、2つのアセットをそれぞれ放送と通信ネットワークで送信する場合には、判定部104は、その2つのアセットのそれぞれに対して、放送用と通信ネットワーク用の伝搬時間Trans_timeを設定する。
【0081】
ここで、判定部104は、先頭PTSが最終受信時刻T_last以前を示すと判定すると(ステップS104で、はい)、その判定結果を先頭PTS取得部103に通知する。その結果、先頭PTS取得部103は、番号iに対してインクリメントを行う(ステップS105)。つまり、上述の例の場合には、番号i=1であるため、先頭PTS取得部103は、その番号iを2に更新する。そして、先頭PTS取得部103は、ステップS103からの処理を繰り返し実行する。つまり、先頭PTS取得部103は、更新された番号iによって識別されるMPUの先頭PTSを取得する。
【0082】
一方、判定部104は、先頭PTSが最終受信時刻T_last以前を示さないと判定すると(ステップS104で、いいえ)、その判定結果を情報生成部106に通知する。その結果、情報生成部106は、0番目からi番目までの各MPUの先頭PTSを格納した先頭時刻情報d1を生成する(ステップS106)。このように生成される先頭時刻情報d1は、0番目からi番目までのMPUごとに、そのMPUの識別情報(例えばシーケンス番号)と、そのMPUの先頭PTSとを関連付けて示す。なお、情報生成部106は、0番目のMPU(開始MPU)の先頭PTSと、開始MPUおよび各後続MPU(開始MPUの後に続くMPU)のそれぞれの再生時間長とを、先頭時刻情報d1に格納してもよい。また、情報生成部106は、0番目のMPU(開始MPU)の先頭PTSと、開始MPUおよび各後続MPUの再生時間長が一定であるかどうかを示すフラグとを先頭時刻情報d1に格納してもよい。この場合、再生時間長が一定であることをフラグが示す場合(フラグ=1)、情報生成部106は、上述の開始MPUの先頭PTSと再生時間長、および、フラグのみを先頭時刻情報d1に格納する。一方、再生時間長が一定でないことをフラグが示す場合(フラグ=0)には、情報生成部106は、上述の開始MPUの先頭PTSとフラグだけでなく、開始MPUおよび各後続MPUの再生時間長も先頭時刻情報d1に格納する。
【0083】
ここで
図6に示すステップS103の処理について詳細に説明する。
【0084】
i番目のMPU(MPU(i))の先頭PTSを取得する際には、以下の3つのケースによって、その先頭PTSを取得する方法が異なる。3つのケースは、MPU(i−1)が既に存在する第1のケースと、MPU(i−1)は存在しないが、既に存在する符号化データからMPU(i−1)が生成可能な第2のケースと、その符号化データすら存在しせず、MPU(i−1)の生成に符号化処理が必要な第3のケースである。
【0085】
まず、第1のケースについて説明する。
【0086】
第1のケースでは、先頭PTS取得部103は、MPU(i−1)の先頭PTSであるPTS(i−1)に、MPU(i−1)を構成する各サンプルの再生時間長の総和を加算することにより、MPU(i)の先頭時刻であるPTS(i)を取得する。このとき、先頭PTS取得部103は、MPU(i−1)におけるMP4ヘッダを解析することによって、上述の再生時間長の総和を取得する。なお、この再生時間長の総和は、例えば上述の補助情報として扱われる。
【0087】
次に、第2のケースについて説明する。
【0088】
符号化データがビデオデータである場合には、先頭PTS取得部103は、その符号化データの中から、MPU(i−1)を構成する1つ以上のランダムアクセスユニットを決定する。そして、先頭PTS取得部103は、決定された1つ以上のランダムアクセスユニットを構成する各サンプルの再生時間長の総和(例えば上述の補助情報)を、PTS(i−1)に加算することにより、PTS(i)を取得する。なお、ランダムアクセスユニットは、MPEG−4 AVCやHEVC(High Efficiency Video
Coding)においてIDRピクチャから開始するシーケンス、あるいは、MPEG
−2 VideoのGOPなどに相当する。
【0089】
また、先頭PTS取得部103は、MPUに対して予め設定された再生時間長を用いて、MPUを構成するランダムアクセスユニットを決定してもよい。例えば、MPUの再生時間長が2秒として予め設定され、各ランダムアクセスユニットの再生時間長が1秒であれば、先頭PTS取得部103は、MPUを構成する2つのランダムアクセスユニットを決定する。
【0090】
ここで、例えば、放送におけるCM(commercial message)部分などでは、符号化データのフレームレートが変化することがある。フレームレートが変化すると(24Hzから60Hzに切替わるなど)、ランダムアクセスユニットの再生時間長も変化する。したがって、先頭PTS取得部103は、この変化を考慮してMPUを構成するランダムアクセスユニットを決定してもよい。
【0091】
一方、符号化データがオーディオデータまたは音声データである場合には、その符号化データを構成する任意のアクセスユニットから、その符号化データを復号することが可能である。そこで、先頭PTS取得部103は、サンプリング周波数に基づいて各アクセスユニットの再生時間長を決定する。その上で、先頭PTS取得部103は、予め設定されたMPUの再生時間長に基づいて、MPU(i−1)を構成するアクセスユニットを決定する。そして、先頭PTS取得部103は、それらのアクセスユニットの再生時間長の総和を、PTS(i−1)に加算することにより、PTS(i)を取得する。
【0092】
次に、第3のケースについて説明する。
【0093】
符号化データがビデオデータである場合には、先頭PTS取得部103は、符号化時のランダムアクセスユニットの構造(例えば、ランダムアクセスユニットを構成するアクセスユニットの数やアクセスユニット間の参照構造など)を予め設定しておく。そして、先頭PTS取得部103は、予め設定された構造に基づいて、ランダムアクセスユニットの再生時間長を計算し、その再生時間長を例えば上述の補助情報としてPTS(i−1)に加算することにより、PTS(i)を取得する。
【0094】
この場合、ビデオデータを符号化することにより符号化データを生成する符号化部(図示せず)は、予め設定されたランダムアクセスユニットの構造に従って、ビデオデータを符号化する。なお、符号化部は、データ送信装置10に備えられていても、備えられていなくてもよい。
【0095】
あるいは、予め設定されたランダムアクセスユニットの構造(構造A)と、符号化部による符号化によって生成される符号化データの実際の構造(構造B)とが異なっていてもよい。このとき、データ送信装置10は、構造Aに応じたMPUの先頭PTSと、構造Bに応じたMPUの先頭PTSとの差分を算出し、その差分を示す情報(差分情報)を、MPUのヘッダ情報(’moof’内のBoxなど)、またはMMTパケットのヘッダなどに格納してもよい。例えば、構造Aのランダムアクセスユニットは15個のアクセスユニットから構成され、構造Bのランダムアクセスユニットは18個のアクセスユニットから構成され、アクセスユニットの再生時間長が20msecとする。構造Bでは、再生時間長が推定値よりも60msec(=(18−15)×20msec)だけ長いため、データ送信装置10は、推定値よりも60msecだけ長いことを示す差分情報を上述のヘッダなどに格納する。
【0096】
このような差分情報を受信したデータ再生装置は、その差分情報に基づいて、先頭時刻情報d1に示される先頭PTSを修正する。また、データ再生装置は、修正された先頭PTSに対応するMPUに後続する各MPUの先頭PTSを算出する際にも、先頭時刻情報d1に示される先頭PTSに対して差分情報を反映する。例えば、データ再生装置は、差分情報の存在を確認し、存在する場合には、その差分情報が反映された先頭PTSを決定する。
【0097】
ここで、情報生成部106は、先頭PTSが、予め設定されたランダムアクセスユニットの構造に基づいて決定された予測値であるかどうかを示す情報を、先頭時刻情報d1に含めてもよい。この情報は、先頭時刻情報d1内の各先頭PTSに共通な情報として含められてもよく、各先頭PTSに個別に設定される情報として含められてもよい。
【0098】
また、フレームレートの切替わりなどにおいてランダムアクセスユニットの構造が変化すると、ランダムアクセスユニットの再生時間長も変化する。したがって、データ送信装置10は、その再生時間長の変化を示す情報も上述のヘッダなどに格納してもよい。
【0099】
一方、符号化データがオーディオデータまたは音声データである場合には、先頭PTS取得部103は、予め定められたMPUの再生時間長に基づいて、上述の第2のケースと同様の方法でPTS(i)を決定する。なお、MPU(i−1)を構成するアクセスユニットにおいて、サンプリング周波数が切替わると、アクセスユニットの再生時間長は変化する。したがって、データ送信装置10は、その再生時間長の変化を示す情報も上述のヘッダなどに格納してもよい。
【0100】
なお、
図6のステップS101において、先頭PTS取得部103がMPU(0)の先頭PTSを取得するときにも、先頭PTS取得部103は、MPU(0)の直前にあるMPUの情報に基づいて、上述のステップS103の処理と同様の処理を行うことによって、MPU(0)の先頭PTSを取得する。
【0101】
図7は、本実施の形態における上述のデータ再生装置のブロック図である。
【0102】
本実施の形態におけるデータ再生装置20は、放送に対して十分に適用することができる装置であって、受信部21と再生部22とを備える。
【0103】
受信部21は、それぞれ複数のサンプルからなる複数の符号化データユニットと、現在の時刻を設定するための基準時刻を示す基準時刻情報と、符号化データユニット内の先頭のサンプルを提示または復号する時刻である先頭時刻を示す先頭時刻情報d1とを、受信する。再生部22は、受信された複数の符号化データユニットを再生する。
【0104】
ここで、先頭時刻情報d1は、受信された複数の符号化データユニットのうち、その先頭時刻情報d1が受信された後に提示または復号が開始される複数の符号化データユニットである複数の特定符号化データユニットの先頭時刻を示す。また、受信された複数の符号化データユニットのそれぞれは、その符号化データユニット内の先頭のサンプル以外の複数のサンプルである複数の非先頭サンプルのそれぞれが提示または復号される時点を、その符号化データユニット内の他のサンプルの時点との相対値として示す。
【0105】
具体的には、再生部22は、基準時刻情報によって示される基準時刻にしたがって設定される現在の時刻と、先頭時刻情報d1によって示される複数の特定符号化データユニットの先頭時刻と、受信された複数の符号化データユニットのそれぞれによって示される、複数の非先頭サンプルのそれぞれの相対値と、に応じたタイミングに、複数の特定符号化データユニットに含まれる複数のサンプルがそれぞれ提示または復号されるように、その複数のサンプルを再生する。
【0106】
図8は、本実施の形態におけるデータ再生装置20の動作を示すフローチャートである。
【0107】
まず、受信部21は、複数の符号化データユニットと、基準時刻情報と、先頭時刻情報d1とを受信する(ステップS21)。次に、再生部22は、受信された複数の符号化データユニットを再生する(ステップS22)。つまり、再生部22は、基準時刻情報によって示される基準時刻にしたがって設定される現在の時刻と、先頭時刻情報d1によって示される複数の特定符号化データユニットのそれぞれの先頭時刻と、受信された複数の符号化データユニットのそれぞれによって示される、複数の非先頭サンプルのそれぞれの相対値と、に応じたタイミングに、複数の特定符号化データユニットに含まれる複数のサンプルがそれぞれ提示または復号されるように、その複数のサンプルを再生する。
【0108】
例えば、上述と同様に、符号化データユニットはMMTにおけるMPUであり、サンプルはアクセスユニットである。基準時刻は、データ送信装置10とデータ再生装置20との間で共通の時刻、または、データ送信装置10とデータ再生装置20との間で同期を取るための時刻である。例えば、基準時刻は、UTCまたはSTCである。先頭時刻情報d1は、この先頭時刻情報d1が送信された後に提示または復号が開始されるMPUごとに、そのMPUの識別情報(シーケンス番号など)と、そのMPU内の先頭のアクセスユニットを提示または復号する時刻である先頭時刻とを関連付けて示す。なお、符号化データユニット(MPU)内の先頭のサンプル(アクセスユニット)は、提示順で先頭のサンプルまたは復号順で先頭のサンプルである。
【0109】
このような本実施の形態におけるデータ再生装置20およびデータ再生方法では、複数の符号化データユニットに含まれるすべてのサンプル(アクセスユニット)を予め定められた時刻に提示または復号することができ、予め定められた時刻に再生することが要求される放送に対して十分に適用することができる。
【0110】
以下、本実施の形態におけるデータ再生装置20およびデータ再生方法について、詳細に説明する。
【0111】
再生部22は、先頭時刻情報d1に基づいて、提示または復号される各MPUの先頭PTSを決定する先頭PTS決定部を備える。
【0112】
図9は、本実施の形態における先頭PTS決定部のブロック図である。
【0113】
先頭PTS決定部200は、プログラム情報取得部201、先頭時刻情報取得部202、先頭MPU取得部203、先頭PTS判定部204、第1の取得部205、および第2の取得部206を備える。
【0114】
プログラム情報取得部201は、受信部21によって受信されたMMTパッケージから、MMTのプログラム情報(具体的には、MPT)を取得する。このプログラム情報は、データ送信装置10から送信される情報であって、プログラム情報取得部201は、そのプログラム情報を受信部21を介して取得してもよく、受信部21を介さずに取得してもよい。また、このMMTのプログラム情報は、MMTパッケージを構成する各アセットの識別情報と、各アセットのアクセス情報(アセットデータを送信するMMTパケットのID、アセットデータが送信されるURLなど、アセットの取得に必要な情報)とを含む。
【0115】
先頭時刻情報取得部202は、プログラム情報取得部201からプログラム情報を取得し、そのプログラム情報に基づいて、MMTパッケージを構成するアセットごとに、そのアセットの先頭時刻情報d1をMMTパッケージから取得する。そして、先頭時刻情報取得部202は、先頭時刻情報d1が取得されたことを先頭MPU取得部203に通知し、先頭時刻情報d1を先頭PTS判定部204に出力する。
【0116】
なお、先頭時刻情報d1は、プログラム情報と同様に、MMTメッセージに格納して送信されてもよい。また、MPEG−2 TSによってMMTのデータが送信される際には、先頭時刻情報d1は、PMT(Program Map Table)のデスクリプタなどの、セクションのデータとして格納されてもよい。また、MPEG−DASHを用いる際には、先頭時刻情報d1は、MPD(Media Presentation Description)におけるSegmentの情報として格納されてもよい。あるいは、先頭時刻情報d1を別途送信してもよい。プログラム情報や先頭時刻情報d1は、MPUとは異なる伝送路から取得されてもよい。この場合には、例えば、データ再生装置20は、放送によって送信されるMPUのプログラム情報または先頭時刻情報d1を、MPUの受信に先立って、通信ネットワーク上のサーバにアクセスして取得するなども可能である。また、この場合には、先頭時刻情報d1の送信時刻と、MPUの受信、提示または復号の開始時刻との差分が、同一の伝送路で先頭時刻情報d1およびMPUを送信する場合に比べて増大する。したがって、データ送信装置10は、その差分を考慮して、先頭時刻情報d1に格納される先頭PTSに対応するMPUを決定してもよい。
【0117】
先頭MPU取得部203は、先頭時刻情報d1が取得されたことが先頭時刻情報取得部202から通知されると、先頭時刻情報d1の取得後にMPUの先頭データ(先頭のアクセスユニット)が最初に受信されたMPUのシーケンス番号を取得する。そして、先頭MPU取得部203は、そのシーケンス番号を先頭PTS判定部204に通知する。
【0118】
先頭PTS判定部204は、先頭MPU取得部203から通知されたシーケンス番号のMPUの先頭PTSが、先頭時刻情報取得部202から出力された先頭時刻情報d1に含まれているか否かを判定する。
【0119】
第1の取得部205は、先頭PTS判定部204によって先頭PTSが含まれていると判定された場合に、その先頭時刻情報d1から、上述のシーケンス番号のMPUの先頭PTSを取得し、その取得された先頭PTSを出力する。
【0120】
第2の取得部206は、先頭PTS判定部204によって先頭PTSが含まれていないと判定された場合に、その先頭時刻情報d1に基づいて、上述のシーケンス番号のMPUの先頭PTSを算出し、その算出された先頭PTSを出力する。
【0121】
なお、オーディオでは、復号時の初期化情報を、moovやmoofなどのヘッダとは別に、サンプルのデータとして格納することが可能である。この場合に、任意のサンプルから復号開始できるため、MPUの先頭を待たずに、最初に受信したサンプルから復号または提示を開始してもよい。MMTパケットのヘッダにおいては、ペイロードに格納されるサンプルデータが属するMPUのシーケンス番号、および、サンプルがMPUにおいて復号順で何番目のサンプルであるかが示される。したがって、これらの情報に基づいて、サンプルのDTSあるいはPTSを決定することができる。
【0122】
図10は、本実施の形態における先頭PTS決定部200の動作を示すフローチャートである。
【0123】
まず、プログラム情報取得部201は、プログラム情報を取得する(ステップS201)。次に、先頭時刻情報取得部202は、そのプログラム情報に基づいて、MMTパッケージから先頭時刻情報d1を取得する(ステップS202)。
【0124】
そして、先頭MPU取得部203は、先頭時刻情報d1が取得された後にMPUの先頭データが最初に受信されたMPUのシーケンス番号(SQN)を取得する(ステップS203)。次に、先頭PTS判定部204は、取得されたシーケンス番号(SQN)によって識別されるMPU(MPU(SQN))の先頭PTSが先頭時刻情報d1に含まれているか否かを判定する(ステップS204)。つまり、先頭PTS判定部204は、取得されたシーケンス番号(SQN)に対応付けられた先頭PTSが先頭時刻情報d1に含まれているか否かを判定する。
【0125】
ここで、先頭PTSが先頭時刻情報d1に含まれていると判定された場合には(ステップS204で、はい)、第1の取得部205は、その先頭時刻情報d1に含まれている先頭PTSを取得する(ステップS205)。
【0126】
なお、
図6に示すステップS103において、第3のケースのように、ビデオデータまたはオーディオデータが所定の符号化動作に基づいて符号化されると仮定して先頭PTSが設定され、且つ、実際の符号化動作が所定の符号化動作と異なってしまった場合、先頭PTSに差分が発生する。つまり、先頭時刻情報d1に含まれている予測値である先頭PTSと、実際の値である先頭PTSとに間に差分が発生する。
【0127】
このような場合もあり得るため、第1の取得部205は、MMTパッケージに含まれる、先頭PTSが予測値であるか否かを示す情報を解釈し、予測値であると判定した場合には、予測値と実際の値との差分を示す差分情報を取得する。そして、第1の取得部205は、先頭時刻情報d1に含まれている先頭PTSに差分情報を反映することによって、その差分情報が反映された先頭PTSを取得してもよい。また、第1の取得部205は、差分情報が存在するか否かを判定し、存在する場合に、先頭時刻情報d1に含まれている先頭PTSに差分情報を反映してもよい。また、差分情報がデータ送信装置10から送信されていない場合には、第1の取得部205は、MPU(SQN)の後続のMPUの先頭PTSを用いて、先頭時刻情報d1に含まれている先頭PTSを補正してもよい。例えば、MPU(SQN)の後続の復号前のMPU(MPU_pre)に対応する先頭PTSが、先頭時刻情報d1の後に繰り返し送信される先頭時刻情報において示されている場合がある。この場合において、そのMPU(MPU_pre)に対応する先頭PTSが予測値でなければ、第1の取得部205は、そのMPU(MPU_pre)に対応する先頭PTSを用いてMPU(SQN)の先頭PTSを決定する。
【0128】
一方、ステップS204において、先頭PTSが先頭時刻情報d1に含まれていないと判定された場合には(ステップS204で、いいえ)、第2の取得部206は、その先頭時刻情報d1に基づいてMPU(SQN)の先頭PTSを算出する(ステップS206)。
【0129】
ここで、ステップS206の処理について詳細に説明する。
【0130】
第2の取得部206は、MPU(SQN)の先頭PTSを算出する際には、まず、先頭時刻情報d1において先頭PTSが示されているMPUの再生時間長(DUR)を算出する。そして、第2の取得部206は、そのMPU以降の各MPUの再生時間長はDURに等しいと仮定して、MPU(SQN)の先頭PTSを算出してもよい。例えば、先頭時刻情報d1には、MPU#1からMPU#3までの各MPU(特定符号化データユニット)の先頭PTS(PTSab_1, PTSab_2, PTSab_3)が格納されているとする。この場合、第2の取得部206は、MPU#1の再生時間長を(PTSab_2 − PTSab_1)によって算出し、MPU#2の再生時間長を(PTSab_3
− PTSab_2)によって算出する。そして、第2の取得部206は、MPU#3、および、MPU#3に後続する各MPUの再生時間長はMPU#2の再生時間長(DUR)に等しいと仮定する。つまり、DUR=(PTSab_3 − PTSab_2)である。ここで、MPU(SQN=5)、つまりMPU#5の先頭PTSは、MPU#3の先頭PTSに、MPU#3とMPU#4の再生時間長を加算したものである。また、MPU#3とMPU#4の再生時間長はDURと仮定される。したがって、第2の取得部206は、MPU#5の先頭PTSを、先頭PTS=(PTSab_3 + 2×DUR)によって算出する。
【0131】
このように、MPU(SQN)の先頭PTSを推定した場合には、データ再生装置20は、推定した先頭PTSに基づいてMPU(SQN)の提示(表示)または復号を開始することができる。ここで、データ再生装置20は、先頭時刻情報d1に後続する他の先頭時刻情報を取得して、その後続する他の先頭時刻情報から、復号前のMPUの先頭PTSを取得してもよい。この場合、データ再生装置20は、当該復号前のMPUにおいて最初に表示されるアクセスユニットのPTSを、その後続する他の先頭時刻情報から取得された先頭PTSに基づいて設定してもよい。例えば、データ再生装置20は、そのアクセスユニットのPTSを、後続する他の先頭時刻情報から取得された先頭PTSに設定する。これにより、復号前のMPUに対して再生開始時に推定した先頭PTSに誤差がある場合にも、データ再生装置20は、後続する他の先頭時刻情報を用いてその誤差を修正することができる。
【0132】
また、ステップS204において、先頭PTSが先頭時刻情報d1に含まれていないと判定された場合には、データ再生装置において予め定めた時刻において、MPU(SQN)の復号、および、提示(表示)を開始してもよい。例えば、MPU(SQN)の符号化データのバッファリング後に、復号順で先頭のサンプル(アクセスユニット)の復号を完了し、提示(表示)することが可能な最も早い時刻においてサンプルを提示する。このときも、後続する他の先頭時刻情報に基づいて、後続MPUの先頭PTSを調整してもよい。
【0133】
また、MPU(SQN)のシーケンス番号が、先頭時刻情報d1によって示される先頭PTSに対応するMPUのシーケンス番号よりも前である場合にも、第2の取得部206は、上述と同様の方法によって、そのMPU(SQN)の先頭PTSを算出することができる。
【0134】
なお、第2の取得部206は、先頭PTSが先頭時刻情報d1に含まれていないとステップS204において判定された場合には、再度、先頭時刻情報を取得してもよい。例えば、放送などでは、データ送信装置10は先頭時刻情報を周期的に送信する。このとき、データ送信装置10は、先頭時刻情報を送信するたびに、その先頭時刻情報の送信時刻付近において送信されるMPUの先頭PTSがその先頭時刻情報に示されるように、その先頭時刻情報の内容を更新している。したがって、データ再生装置20の第2の取得部206は、先頭時刻情報d1にMPU(SQN)の先頭PTSが含まれていなくても、その先頭時刻情報d1よりも時間的に後に送信される他の先頭時刻情報を取得することにより、MPU(SQN)の先頭PTSを取得することができる。なお、MPU(SQN)のシーケンス番号が、先頭時刻情報d1によって示される先頭PTSに対応するMPUのシーケンス番号よりも前にある場合には、上述の他の先頭時刻情報によってMPU(SQN)の先頭PTSを取得することはできない。したがって、この場合には、第2の取得部206は、上述のように、先頭時刻情報d1に基づいて各MPUの再生時間長を仮定することによって、MPU(SQN)の先頭PTSを取得する。または、第2の取得部206は、MPU(SQN)の先頭PTSを示す先頭時刻情報をサーバなどから別途取得してもよい。
【0135】
また、データ再生装置20の再生部22は、第1の取得部205または第2の取得部206によって取得された先頭PTSによって示される時刻に、その先頭PTSに対応するMPUに含まれる提示順で先頭のアクセスユニットの提示を開始する。つまり、再生部22は、先頭時刻情報d1によって示される複数のMPUのうちの何れか1つである処理対象MPU内の先頭のアクセスユニットを再生する際には、基準時刻情報によって示される基準時刻にしたがって設定される現在の時刻が、先頭時刻情報d1によって示される、その処理対象MPUの先頭PTS(先頭DTS)に至ったときに、その先頭のアクセスユニットを提示(復号)する。
【0136】
ここで、MPUには、複数のアクセスユニットが配列されている。そして、MPUは、そのMPU内の先頭のアクセスユニット以外の複数のアクセスユニットである複数の非先頭アクセスユニットのそれぞれが提示(復号)される時点を、そのMPU内の直前のアクセスユニットが提示(復号)される時点との相対値(差分)として示している。
【0137】
したがって、再生部22は、MPUに含まれる提示順でn番目のアクセスユニットの提示を開始する際には、まず、1番目のアクセスユニット(先頭のアクセスユニットの次のアクセスユニット)からn番目までのアクセスユニットまでの各アクセスユニット(各非先頭アクセスユニット)の相対値を積算する。そして、再生部22は、それらの相対値の積算結果を、そのMPUの先頭PTSに加算することによって、n番目のアクセスユニットのPTSを算出する。そして、再生部22は、現在の時刻がその算出されたPTSに至ったときに、n番目のアクセスユニットの提示を開始する。
【0138】
つまり、再生部22は、処理対象MPU内の複数の非先頭アクセスユニットのうちの何れか1つである処理対象非先頭アクセスユニットを再生する際には、まず、その処理対象非先頭アクセスユニットを提示(復号)する処理時刻を算出する。次に、再生部22は、算出された処理時刻に現在の時刻が至ったときに、その処理対象非先頭アクセスユニットを提示(復号)する。上述の処理時刻の算出では、再生部22は、処理対象MPUによって示される、複数の非先頭アクセスユニットのそれそれぞれの相対値のうちの少なくとも処理対象非先頭アクセスユニットの相対値を、先頭時刻情報d1によって示される、処理対象MPUの先頭PTS(先頭DTS)に加算することによって、処理時刻を算出する。
【0139】
以上のように、本実施の形態におけるデータ送信方法およびデータ再生方法では、MMTのデータを生成しながら順次送信し、送信されたデータを再生する場合にも、先頭時刻情報を参照することで、受信したMPUの先頭PTSを取得することができる。また、最初に受信した先頭時刻情報において、受信を開始したMPUの先頭PTSが含まれない場合にも、先頭時刻情報の内容に基づいて当該MPUの先頭PTSを推定する、あるいは、先頭時刻情報を繰り返し受信することにより、先頭PTSを決定することができる。
【0140】
以上、本発明に係るデータ送信方法およびデータ再生方法について、実施の形態を用いて説明したが、本発明はこれらに限定されるものではない。
【0141】
例えば、上記実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記実施の形態のデータ送信装置10およびデータ再生装置20などを実現するソフトウェアはそれぞれ、
図3または
図8に示すステップをコンピュータに実行させるプログラムである。
【0142】
また、MMTパッケージのアセットを構成するMPUのデータを、放送と通信ネットワークなどの、特性の異なる伝送路を併用して送信する場合がある。このとき、放送あるいは通信ネットワークのどちらか一方の伝送路から受信したデータのみを復号して再生するケースと、放送と通信ネットワークの両伝送路から受信したデータを復号して再生するケースとがある。
【0143】
したがって、データ送信装置10は、放送により送信されるアセットのMPUに対応する先頭時刻情報と、通信ネットワークにより送信されるアセットのMPUに対応する先頭時刻情報とを、それぞれ別々に格納して送信してもよい。この場合、データ再生装置20は、再生モードに応じて、先頭時刻情報を選択して処理することができる。
【0144】
例えば、データ送信装置10は、MMTにおける先頭時刻情報をテーブルに格納する。このとき、データ送信装置10は、放送および通信ネットワークのそれぞれの伝送路に対応する先頭時刻情報を別々のテーブルに格納してもよい。なお、それらのテーブルは識別情報によって識別される。識別情報はテーブルのIDなどである。データ送信装置10は、放送および通信ネットワークのそれぞれに対応するテーブルを、放送および通信ネットワークのそれぞれの伝送路で送信してもよい。または、データ送信装置10は、放送用のテーブルを放送で送信し、通信ネットワーク用のテーブルを通信ネットワークで送信するなど、それらのテーブルをそれぞれに対応する伝送路で送信してもよい。また、データ送信装置10は、使用されるテーブルのIDを、シグナリングしてもよいし、予め規定していてもよい。また、放送をサービスのエントリとして用いるようなケースでは、データ送信装置10は放送で両テーブルを送信してもよい。また、データ送信装置10は、先頭時刻情報をMMTのデスクリプタなどに格納してもよい。
【0145】
また、本発明は、上記実施の形態に限らず、より一般化することができる。例えば、データ送信装置10は、MPT(MMT Package Table)やMCIT(MMT Composition Information Table)などのテーブル、つまり、アセットデータの取得方法や復号時刻または提示時刻に関する情報、あるいは、アセットデータの表示方法などを示す情報を、放送や通信ネットワークなどの伝送路毎に別々に格納して送信してもよい。データ送信装置10は、これらのテーブルを、いずれか一方の伝送路で送信してもよいし、放送用のテーブルを放送で送信し、通信ネットワーク用のテーブルを通信ネットワークで通信するように、それぞれに対応する伝送路で送信してもよい。例えば、MMTにおいては、MPTまたはMCITの0番目のサブセットを放送用として扱い、1番目のサブセットを通信ネットワーク用に扱うことができる。
【0146】
また、本発明のデータ送信方法およびデータ再生方法は、放送には従来のMPEG−2
TSを用いてデータを送信し、通信路(通信ネットワーク)においてMMTやMPEG−DASHなどを用いてデータを送信し、放送と通信ネットワークにより取得したデータを一元的に扱う場合などにも適用できる。このとき、通信路において送信されるMMTやMPEG−DASHなどに対応する先頭時刻情報を、TSのセクションデータなどに格納してもよい。例えば、新規のデスクリプタを定義して、PMTに格納して送信することが可能である。あるいは、通信サーバが、放送とは独立に先頭時刻情報を決定して通信路で送信してもよい。
【0147】
また、本実施の形態におけるデータ送信装置10は、複数のMPUからなるアセットをデータ再生装置20に送信する際には、それらのMPUおよび先頭時刻情報d1を含む符号化データをパケット化して送信する。データ再生装置20は、そのパケット化された符号化データを受信する。ここで、本実施の形態におけるデータ再生装置20は、パケットロスが発生したときでも、その発生後に、MPUの提示を正しい時刻に開始することができる。つまり、データ再生装置20は、MPUのパケットがロスすると、そのMPUに含まれるアクセスユニット(非先頭アクセスユニット)の相対値(時刻の差分)を取得することができない場合がある。このような場合には、そのMPUに含まれる、そのアクセスユニット以降の各アクセスユニットのPTSを決定することができない。しかし、本実施の形態におけるデータ再生装置20は、パケットロスが発生したMPUに後続するMPUの先頭PTSを示す先頭時刻情報d1を受信することによって、その後続するMPUの提示をその先頭PTSから開始することができる。その結果、データ再生装置20は、データ送信装置10から送信される符号化データの正しい時刻にしたがった再生を早急に復旧することができる。
【0148】
また、以下のような場合も本発明に含まれる。
【0149】
(1)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0150】
(2)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
【0151】
(3)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【0152】
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0153】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【0154】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0155】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【0156】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0157】
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【0158】
以上、本発明の一つまたは複数の態様に係るデータ送信方法およびデータ再生方法などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つまたは複数の態様の範囲内に含まれてもよい。