【解決手段】この送信方法では、第1のコンテンツの再生に用いる第1のタイムラインと、前記第1のコンテンツと同期して再生される第2のコンテンツの再生に用いられる第2のタイムラインとの対応関係が更新されたか否かを示す更新識別情報と、基準クロックにおける時刻を示す時刻情報とを送信する。
第1のコンテンツの再生に用いる第1のタイムラインと、前記第1のコンテンツと同期して再生される第2のコンテンツの再生に用いられる第2のタイムラインとの対応関係が更新されたか否かを示す更新識別情報と、
基準クロックにおける時刻を示す時刻情報とを送信する
送信方法。
第1のコンテンツの再生に用いる第1のタイムラインと、前記第1のコンテンツと同期して再生される第2のコンテンツの再生に用いられる第2のタイムラインとの対応関係が更新されたか否かを示す更新識別情報と、
基準クロックにおける時刻を示す時刻情報とを受信し、
前記更新識別情報と前記時刻情報とに基づいて、前記第1のコンテンツと前記第2のコンテンツとを再生する
受信方法。
第1のコンテンツの再生に用いる第1のタイムラインと、前記第1のコンテンツと同期して再生される第2のコンテンツの再生に用いられる第2のタイムラインとの対応関係が更新されたか否かを示す更新識別情報と、
基準クロックにおける時刻を示す時刻情報とを送信する送信部
を備える送信装置。
第1のコンテンツの再生に用いる第1のタイムラインと、前記第1のコンテンツと同期して再生される第2のコンテンツの再生に用いられる第2のタイムラインとの対応関係が更新されたか否かを示す更新識別情報と、
基準クロックにおける時刻を示す時刻情報とを受信する受信部と、
前記更新識別情報と前記時刻情報とに基づいて、前記第1のコンテンツと前記第2のコンテンツとを再生する再生部と、
を備える受信装置。
【発明を実施するための形態】
【0010】
(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した、非特許文献1の送信方法および受信方法に関し、以下の問題が生じることを見出した。
【0011】
従来のタイムライン拡張においては、補助データ用のストリームが定義されている。ここで、互いに独立に送信されるストリームを、それぞれ、参照元と参照先とする。なお、これらのストリームのそれぞれは、画像または音声を示す互いに異なるコンテンツを含む。また、参照元は、補助データ用のストリームとされる。この補助データ用のストリームに含まれるいずれかのPESパケットは、TEMI(Timeline and External Media Information)アクセスユニットを格納している。また、そのPESパケットのヘッダには、参照元のタイムラインにおける時刻T_orgが示される。さらに、TEMIアクセスユニットには、参照先のタイムラインにおいて、時刻T_orgに対応する時刻となる、時刻T_refが格納される。なお、タイムラインは、ストリームの送受信に用いられる基準クロックである。つまり、共通の時間軸において、参照元における時刻T_orgと参照先における時刻T_refとは互いに等しい時刻となる。
【0012】
TEMIアクセスユニットは、参照元のストリームと共に送信される。受信装置は、TEMIアクセスユニットを解析することにより、参照元のコンテンツと参照先のコンテンツとを同期させて再生することができる。
【0013】
図1Aは、従来の問題を説明するためのTEMIアクセスユニットのシンタックスを示す図である。
【0014】
図1Aに示すように、TEMIアクセスユニット(TEMI_AU)は、addon_locationと、timescaleとを含む。
【0015】
addon_locationは、参照先のロケーション情報(例えばURL: Uniform Resource Locatorなど)を示す。
【0016】
timescaleは、time_before_activationまたはmedia_time_anchorを含む。
【0017】
time_before_activationは、addon_locationが有効(つまり、参照先を取得することが可能であること)となるまでの時間を示す。
【0018】
media_time_anchorは、参照先のタイムラインにおける時刻T_refを示す。
【0019】
また、参照元のタイムラインにおける時刻T_orgは、TEMIアクセスユニットを格納するPESパケットのヘッダのPTSフィールドにおいて示される。
【0020】
図1Bは、受信装置がTEMIアクセスユニットを用いて参照元と参照先のそれぞれのタイムラインを同期するための処理を示すフローチャートである。
【0021】
まず、受信装置は、参照元のストリームに含まれるデータを受信する(ステップS1001)。次に、受信装置は、その受信されたデータがTEMIアクセスユニットか否か、つまり、TEMIアクセスユニットを受信したか否かを判定する(ステップS1002)。ここで、受信していないと判定すると(ステップS1002の「いいえ」)、受信装置は、ステップS1001からの処理を繰り返し実行する。一方、受信したと判定すると(ステップS1002の「はい」)、受信装置は、TEMIアクセスユニットを格納するPESパケットのPTSと、TEMIアクセスユニット内のmedia_time_anchorとを取得する。つまり、受信装置は、時刻T_orgと時刻T_refとを取得する(ステップS1003)。次に、受信装置は、その時刻T_orgと時刻T_refとに基づいて、参照元と参照先のタイムラインを同期する(ステップS1004)。なお、参照元と参照先のタイムラインを同期するとは、それらのタイムラインの対応関係、つまり時刻オフセット(つまりオフセット値)を特定することである。
【0022】
図1Cは、参照元のタイムラインと参照先のタイムラインにおける、時刻T_orgと時刻T_refとの関係を示す図である。
【0023】
受信装置は、時刻T_orgと時刻T_refの差分を時刻オフセット(offset)として特定する。この時刻オフセットは、offset=T_ref−T_org×(timescale2/timescale1)によって示される。なお、timescale1は、参照元のタイムラインのタイムスケールであり、timescale2は、参照先のタイムラインのタイムスケールである。なお、タイムスケールは、時刻が表現される頻度であって、具体的には、単位時間(例えば1秒間)あたりに表現される時刻の回数である。受信装置は、このような時刻オフセットを特定すると、参照元のタイムラインにおける任意の時刻Tに対応する、参照先のタイムラインにおける時刻を、T+offsetによって算出することができる。
【0024】
しかしながら、このようなタイムライン拡張においては、TEMIアクセスユニットを受信する度に、時刻T_orgと時刻T_refを解析する必要があり、同期再生時の時刻情報の管理に係る処理量が多く、効率的でないという問題がある。
【0025】
このような問題を解決するために、本発明の一態様に係る送信方法は、画像または音声のコンテンツに関する第1のストリームを送信する送信方法であって、前記第1のストリームの送受信に用いられる第1の基準クロックと、前記第1のストリームに関するコンテンツと同期して再生される他のコンテンツに関する第2のストリームの送受信に用いられる第2の基準クロックとの間の、対応関係が更新されたか否かを示すタイミング更新識別情報と、前記第1の基準クロックにおける第1の時刻と、更新後の前記対応関係に基づいて前記第1の時刻に対応付けられた前記第2の基準クロックにおける時刻である第2の時刻とを含む前記第1のストリームを送信する。
【0026】
これにより、タイミング更新識別情報が受信装置に送信される。したがって、受信装置は、第1の基準クロックと前記第2の基準クロックとの間の対応関係が更新されたか否かを、第1の時刻と第2の時刻とを用いた解析によって判定することなく、そのタイミング更新識別情報のみに基づいて簡単にその判定を行うことができる。その結果、受信装置は、更新されたと判定したときにのみ、第1の時刻と第2の時刻を用いて、更新後の対応関係を特定すればいいため、受信装置の処理量を抑えることができる。したがって、タイムライン拡張を効率的に行うことができる。
【0027】
例えば、前記送信方法は、さらに、前記対応関係が更新されたか否かを判定し、判定の結果を示す前記タイミング更新識別情報を生成してもよい。
【0028】
また、前記対応関係が更新されたか否かの判定では、前記第1の基準クロックによって示される時刻の変化に不連続な変化があったか否かを判定し、不連続な変化があったと判定したときには、前記対応関係が更新されたと判定してもよい。
【0029】
また、前記第1の基準クロックは、MPEG2−TS(Moving Picture Experts Group−2 Transport Stream)におけるPCR(Program Clock Reference)であってもよい。
【0030】
また、前記送信方法は、前記対応関係が更新されたと判定したときには、前記第1の基準クロックと前記第2の基準クロックとの間の、更新後の前記対応関係に応じたオフセット値を算出し、前記第1の時刻と、算出された前記オフセット値とに基づいて特定される前記第2の時刻を、前記第1のストリームに含めてもよい。
【0031】
また、前記第1のストリームにおけるTEMI(Timeline and External Media Information)アクセスユニットに、前記タイミング更新識別情報および前記第2の時刻を格納してもよい。
【0032】
また、前記TEMIアクセスユニットを格納するPES(Packetized Elementary Stream)パケットのヘッダに、前記第1の時刻を格納してもよい。
【0033】
また、前記TEMIアクセスユニットは、タイムラインデスクリプタと、ロケーションデスクリプタとを有し、前記タイムラインデスクリプタに、前記タイミング更新識別情報および前記第2の時刻を格納し、前記送信方法は、さらに、前記ロケーションデスクリプタに、前記第2のストリームに関するコンテンツの場所を示すロケーション情報を格納してもよい。
【0034】
また、前記送信方法は、さらに、前記第2のストリームに関するコンテンツの再生を中止して、第3のストリームに関するコンテンツの再生を開始させるためのスプライシング識別情報と、前記第3のストリームに関するコンテンツの場所を示すロケーション情報とを含む他のロケーションデスクリプタを、前記ロケーションデスクリプタが送信された後に送信し、前記第3のストリームに関するコンテンツの再生区間の終了時までに、前記ロケーションデスクリプタを再び送信してもよい。
【0035】
これにより、他のロケーションデスクリプタが受信装置に送信される。したがって、受信装置は、他のロケーションデスクリプタに格納されているスプライシング識別情報に基づいて、第2のストリームに関するコンテンツの再生を中止して、第3のストリームに関するコンテンツを再生することができる。さらに、その第3のストリームに関するコンテンツの再生区間(つまりスプライス区間)の終了までに、第2のストリームに関するコンテンツの場所を示すロケーション情報が格納されたロケーションデスクリプタが受信装置に再送される。したがって、受信装置は、その再生区間から第1のストリームの受信を開始した場合であっても、その再生区間の終了時には、次に再生すべきコンテンツを容易に特定して再生することができる。つまり、受信装置は、その再生区間前から第1のストリームの受信を開始していた場合と同様に、第3のストリームに関するコンテンツの前に再生されていた、元の第2のストリームに関するコンテンツの再生を再開することができる。
【0036】
また、本発明の一態様に係る受信方法は、画像または音声のコンテンツに関する第1のストリームを受信する受信方法であって、前記第1のストリームの送受信に用いられる第1の基準クロックと、前記第1のストリームに関するコンテンツと同期して再生される他のコンテンツに関する第2のストリームの送受信に用いられる第2の基準クロックとの間の、対応関係が更新されたか否かを示すタイミング更新識別情報と、前記第1の基準クロックにおける第1の時刻と、更新後の前記対応関係に基づいて前記第1の時刻に対応付けられた前記第2の基準クロックにおける時刻である第2の時刻とを含む前記第1のストリームを受信する。
【0037】
これにより、タイミング更新識別情報が受信装置に受信される。したがって、受信装置は、第1の基準クロックと第2の基準クロックとの間の対応関係が更新されたか否かを、わざわざ第1の時刻と第2の時刻とを用いた解析によって判定することなく、そのタイミング更新識別情報のみに基づいて簡単にその判定を行うことができる。その結果、受信装置は、更新されたと判定したときにのみ、第1の時刻と第2の時刻を用いて、更新後の対応関係を特定すればいいため、処理量を抑えることができる。したがって、タイムライン拡張を効率的に行うことができる。
【0038】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【0039】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0040】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0041】
(実施の形態)
図2は、本実施の形態におけるTEMIアクセスユニットのシンタックスの一例を示す図である。
【0042】
このTEMIアクセスユニットは、上述のaddon_locationと、timescaleと、media_time_anchorとを含むととともに、さらに、タイミング更新識別情報id1であるis_timing_updateを含んでいる。
【0043】
このis_timing_update(id1)は、参照元のタイムラインと参照先のタイムラインとの対応関係(時刻オフセットなど)が更新されたことを示す。つまり、is_timing_updateは、その対応関係が更新された後の、時刻T_orgと、時刻T_refとがPESパケットに格納されていることを示す。なお、参照元のタイムラインと参照先のタイムラインとを、以下、両タイムラインという。また、media_time_anchorが時刻T_refを示し、このTEMIアクセスユニットを含むPESパケットのヘッダに、時刻T_orgがPTSとして示されている。
【0044】
is_timing_updateは例えば1ビットのフラグである。したがって、is_timing_update=1の場合、そのis_timing_updateは、両タイムラインの対応関係が更新されたことを示す。また、is_timing_update=0の場合、そのis_timing_updateは、両タイムラインの対応関係は更新されていないことを示す。
【0045】
両タイムラインの対応関係が更新されるのは、addon_locationが有効な期間である。したがって、is_timing_updateの値が1にセットされる場合には、is_announcementの値は0となり、media_time_anchorのフィールドが存在する。
【0046】
送信装置は、両タイムラインの対応関係が更新された直後に送信されるTEMIアクセスユニットにおいてのみ、is_timing_updateを1にセットしてもよい。または、送信装置は、更新後に送信される複数のTEMIアクセスユニットにおいて、is_timing_updateを1にセットしてもよい。または、送信装置は、更新を事前に通知するために、更新前の複数のTEMIアクセスユニット、及び、更新直後のTEMIアクセスユニットにおいて、is_timing_updateを1にセットしてもよい。この場合、受信装置は、is_timing_updateの値が1から0に変化したことを判定することにより、両タイムラインの対応関係が更新されたと判定してもよい。
【0047】
送信装置は、参照先のタイムラインのタイムスケールを、TEMIアクセスユニットの“timescale”に設定してもよい。これにより、送信装置は、media_time_anchorの値を、タイムスケールの変換を行うことなしに、参照先のタイムラインにおける時刻情報として用いることができる。
【0048】
例えば、参照元がMPEG2−TSにより送信され、参照先がMPEG−DASHにより送信される場合、TEMIアクセスユニットはTSに多重化される。また、参照元がMPEG2−TSにより送信され、参照先がMMTのストリームとして送信されてもよく、参照元と参照先が共にMPEG2−TSによって送信されてもよく、他の組合せで送信されてもよい。
【0049】
また、送信装置は、TEMIアクセスユニットを参照元のストリームに多重化せずに、別のストリームとして送信してもよい。
【0050】
送信装置は、参照元のタイムラインと参照先のタイムラインとの対応関係を例えば以下のようなケース(ケース1および2)において更新する。
【0051】
つまり、送信装置は、参照元の基準クロックに不連続が発生した場合に更新する(ケース1)。例えば、送信装置は、MPEG2−TSにおけるPCR(Program Clock Reference)に不連続が発生した場合に更新する。
【0052】
または、送信装置は、参照先の基準クロックに不連続が発生した場合に更新する(ケース2)。例えば、送信装置は、参照先のMPEG−DASHにおいて、一部のMP4 Fragmentがスキップされる場合に更新する。または、送信装置は、参照先のMPEG2−TSにおけるPCRに不連続が発生した場合に更新する。または、送信装置は、参照先のMMTにおいて基準クロックとされるNTP(Network Time Protocol)の値に不連続が発生する場合に更新する。
【0053】
なお、ケース2では、参照先の基準クロックに不連続が発生したこと、および、基準クロックの変位量は、参照元のストリームを送信する送信装置に対して通知される。
【0054】
次に、media_time_anchorの設定方法について説明する。
【0055】
例えば、MPEG−DASHのように、セグメント化されたコンテンツの途中のセグメントからデータが受信されることがある。このとき、各セグメント、あるいは、MPEG−DASHのピリオドなどにおける、表示(再生)順で先頭のアクセスユニットのPTSが、コンテンツの先頭をゼロとするタイムライン(ゼロタイムライン)に従う場合には、当該タイムラインを使用することができる。一方、受信が開始されるセグメントなどの先頭アクセスユニットのPTSをゼロとするタイムライン(セグメントタイムラインと呼ぶ)に従う場合には、media_time_anchorもセグメントタイムラインに従って設定される。
【0056】
このとき、セグメントタイムラインの基準となるセグメントを特定するためのインデックス番号などを、TEMIアクセスユニット、あるいは、TEMIアクセスユニットのストリームのPID(パケット識別子)を格納するPMT(Program Map Table)におけるデスクリプタなどに格納してもよい。なお、セグメントタイムラインを用いる場合には、セグメントタイムラインの時刻がゼロとなる時刻に一致する、参照元のタイムラインにおける時刻を予め取得しておく必要がある。
【0057】
MPEG2−TS、MMT、あるいは、RTP(Real−time Transport Protocol)など、基準クロックが規定されるフォーマットの場合には、使用される基準クロックに従ってmedia_time_anchorの値が設定される。MPEG2−TSではPCRによって基準クロックが規定され、MMTおよびRTPではNTP(Network Time Protocol))によって基準クロックが規定される。
【0058】
図3は、本実施の形態における上述の送信装置の構成を示すブロック図である。
【0059】
本実施の形態における上述の送信装置100は、参照元TM決定部101、不連続判定部102、識別情報設定部103、不連続設定部104、および通常設定部106を備える。
【0060】
参照元TM決定部101は、参照元の時刻T_orgを決定する。不連続判定部102は、参照元のタイムラインに不連続が発生したか否かを判定する。識別情報設定部103は、上述のタイミング更新識別情報id1であるis_timing_updateを設定する。不連続設定部104は、両タイムラインの対応関係が更新された場合に、その更新後の対応関係に応じた、参照先のタイムラインの時刻T_refをTEMIアクセスユニットに設定する。通常設定部106は、両タイムラインの対応関係が更新されていない場合に、これまで使われていた対応関係に応じた、参照先のタイムラインの時刻T_refをTEMIアクセスユニットに設定する。
【0061】
図4は、本実施の形態における送信装置100の処理動作の例を示すフローチャートである。
【0062】
なお、
図4では、参照元のストリームがMPEG2−TSによって送信される場合を例にあげて説明する。
【0063】
まず、送信装置100の参照元TM決定部101は、参照元のタイムラインの時刻T_orgを決定して、TEMIアクセスユニットを格納するPESパケットのヘッダに格納する(ステップS101)。
【0064】
次に、不連続判定部102は、直前のTEMIアクセスユニットが送信されたとき以降に、基準クロックであるPCRに不連続が発生したかどうかを判定する(ステップS102)。PCRに不連続が発生したと判定された場合には(ステップS102の「はい」)、識別情報設定部103は、TEMIアクセスユニットにおけるis_timing_updateのフラグを1にセットする(ステップS103)。そして、不連続設定部104は、基準クロックの切り替わり後における時刻オフセットを算出し、その時刻オフセットに基づいて、参照先のタイムラインの時刻T_ref(media_time_anchor)を設定する(ステップS104)。
【0065】
一方、PCRに不連続が発生していないと判定された場合には(ステップS102の「いいえ」)、識別情報設定部103は、TEMIアクセスユニットにおけるis_timing_updateのフラグを0にセットする(ステップS105)。そして、通常設定部106は、これまで使われていた時刻オフセットに基づいて、参照先のタイムラインの時刻T_ref(media_time_anchor)を設定する(ステップS106)。
【0066】
不連続判定部102は、PCRを生成する手段から、そのPCRを直接取得してもよいし、PCRを格納するTSパケットを解析してもよい。後者の場合には、TSパケットのヘッダにおいてPCRの不連続が発生したかどうかを示すフィールド(discontinuity_indicator)が1にセットされていれば、不連続判定部102は不連続が発生したと判定する。あるいは、discontinuity_indicatorが不連続の発生に先立って連続的に1に設定される場合には、その値が1である最終のTSパケットにおいて更新後のPCRの値が格納される。したがって、不連続判定部102は、その最後のTSパケットを受けた場合に不連続が発生したと判定してもよい。
【0067】
送信装置100は、参照元のストリームに多重化されるオーディオまたはビデオのアクセスユニット(以下、AVアクセスユニットという)毎にTEMIアクセスユニットを送信してもよいし、送信間隔が所定値以下となるように周期的にTEMIアクセスユニットを送信してもよい。
【0068】
AVアクセスユニット毎にTEMIアクセスユニットを送信する際には、送信装置100は、TEMIアクセスユニットを格納するPESパケットのヘッダのPTSが、AVアクセスユニットのPTSと等しくなるように、そのPESパケットのヘッダのPTSを設定してもよい。
【0069】
このとき、送信装置100は、TEMIアクセスユニットを、そのTEMIアクセスユニットに対応するAVアクセスユニットよりも時間的に前に送信してもよい。これにより、受信装置は、AVアクセスユニットの取得に先立って、そのAVアクセスユニットのPTSに対応する参照先のタイムラインの時刻を取得することができる。
【0070】
また、送信装置100は、周期的にTEMIアクセスユニットを送信する際にも、TEMIアクセスユニットを格納するPESパケットのPTSが、AVアクセスユニットのPTSと等しくなるように、そのPESパケットのPTSを設定してもよい。さらに、送信装置100は、参照元と参照先のタイムラインの対応関係が更新された場合には、次のTEMIアクセスユニットの送信のタイミングまで待たずに、更新直後のAVアクセスユニットのPTSに対応するTEMIアクセスユニットを送信してもよい。
【0071】
参照元のストリームを送信する送信装置100は、図示しない手段によって、参照先のストリームを送信する送信装置から、参照先のタイムラインの情報を取得してもよい。例えば、参照元のコンテンツが本編とCM(コマーシャル)を含み、参照先のコンテンツが、参照元の本編と同期再生される本編のみを含む場合には、参照元のコンテンツのCMが再生される区間では、参照先のコンテンツの再生を停止しておくことが望まれる。このような場合には、送信装置100は、参照元のタイムラインのみを進めて、参照先のタイムラインを停止させてもよい。
【0072】
つまり、送信装置100は、CMの再生区間においては、時刻T_orgを更新するが、CMの生成区間に入る直前の時刻T_refの値を、それ以降の時刻T_refに設定し続ける。CMの再生区間の終了後は、送信装置100は、通常通り、時刻T_orgと時刻T_refを共に更新する。このとき、送信装置100は、参照元のストリームにおけるAVアクセスユニット毎に、それらのPTSに対応付けられたTEMIアクセスユニットを送信するのが望ましい。さらに、送信装置100は、参照先、あるいは、参照先のタイムラインが停止していることを示す識別情報を、TEMIアクセスユニットに格納してもよい。あるいは、送信装置100は、参照先のタイムラインを停止させずに、CMの再生区間において、参照先のコンテンツに無再生区間を挿入してもよい。例えば、送信装置100は、MP4における“empty edit”の機能などを用いて無再生区間を生成することができる。本方法は、CMに限らず、参照元と参照先において、同期再生の対象とならない区間が存在する場合に適用できる。
【0073】
このように、本実施の形態における送信方法は、画像または音声のコンテンツに関する第1のストリームを送信する送信方法であって、例えば上述の
図2に示すis_timing_updateなどのタイミング更新識別情報id1と、第1の時刻(上述の時刻T_orgに相当)と、第2の時刻(上述の時刻T_refに相当)とを含む第1のストリームを送信する。タイミング更新識別情報id1は、第1のストリームの送受信に用いられる第1の基準クロックと、その第1のストリームに関するコンテンツと同期して再生される他のコンテンツに関する第2のストリームの送受信に用いられる第2の基準クロックとの間の、対応関係が更新されたか否かを示す。また、第1の時刻は、第1の基準クロックにおける時刻であり、第2の時刻は、更新後の対応関係に基づいて第1の時刻に対応付けられた第2の基準クロックにおける時刻である。
【0074】
これにより、タイミング更新識別情報id1が受信装置に送信される。したがって、受信装置は、第1の基準クロックと第2の基準クロックとの間の対応関係が更新されたか否かを、第1の時刻と第2の時刻とを用いた解析によって判定することなく、そのタイミング更新識別情報id1のみに基づいて簡単にその判定を行うことができる。その結果、受信装置は、更新されたと判定したときにのみ、第1の時刻と第2の時刻を用いて、更新後の対応関係を特定すればいいため、受信装置の処理量を抑えることができる。したがって、タイムライン拡張を効率的に行うことができる。
【0075】
また、本実施の形態における送信方法は、さらに、上述の対応関係が更新されたか否かを判定し、判定の結果を示すタイミング更新識別情報id1を生成する。また、上述の対応関係が更新されたか否かの判定では、
図4のステップS102に示すように、第1の基準クロックによって示される時刻の変化に不連続な変化があったか否かを判定し、不連続な変化があったと判定したときには、対応関係が更新されたと判定する。また、第1の基準クロックは、例えば、MPEG2−TSにおけるPCRである。また、本実施の形態における送信方法は、対応関係が更新されたと判定したときには、
図4のステップS104に示すように、第1の基準クロックと第2の基準クロックとの間の、更新後の対応関係に応じたオフセット値(つまり、時刻オフセット)を算出する。さらに、第1の時刻と、算出された前記オフセット値とに基づいて特定される第2の時刻を、第1のストリームに含める。具体的には、第1のストリームにおけるTEMIアクセスユニットに、タイミング更新識別情報id1および第2の時刻を格納し、TEMIアクセスユニットを格納するPESパケットのヘッダに、第1の時刻を格納する。
【0076】
図5は、本実施の形態における上述の受信装置の構成を示すブロック図である。
【0077】
受信装置200は、TEMI_AU取得部201、初期状態判定部202、更新判定部203、および時刻同期部204を備える。
【0078】
TEMI_AU取得部201は、TEMIアクセスユニットを取得する。初期状態判定部202は、コンテンツの復号を開始する前に、両タイムラインの同期が完了しているか否かを判定する。更新判定部203は、両タイムラインの対応関係が更新されたか否かを判定する。時刻同期部204は、両タイムラインに対して後述する時刻同期処理を行う。
【0079】
図6は、本実施の形態における受信装置200の処理動作の例を示すフローチャートである。
【0080】
まず、受信装置200のTEMI_AU取得部201は、TEMIアクセスユニットを取得する(ステップS201)。次に、初期状態判定部202は、コンテンツの復号を開始するに先立って、参照元のタイムラインと参照先のタイムラインの同期が完了しているかどうかを判定する(ステップS202)。なお、コンテンツの復号を開始するときには、参照元と参照先のタイムラインの同期が必須である。
【0081】
ステップS202において、同期が完了していると判定されたときには(ステップS202の「はい」)、更新判定部203は、TEMIアクセスユニットにおいて、参照元と参照先のタイムラインの対応関係が更新されたことを示すタイミング更新識別情報id1(is_timing_update=1)がセットされているか否かを判定する(ステップS203)。
【0082】
ステップS202において、同期が完了していないと判定されたとき(ステップS202の「いいえ」)、または、ステップS203において、セットされていると判定されたときには(ステップS203の「はい」)、時刻同期部204は、参照元と参照先のタイムラインに対して時刻同期処理を行う。
【0083】
時刻同期処理とは、参照元のタイムラインと参照先のタイムラインとの間の時刻を対応付けることである。例えば、参照元のタイムラインにおける時刻T_orgと、参照先のタイムラインにおける時刻T_refとが対応する場合、時刻同期部204は、以下の(式1)によって、参照元のタイムラインにおける任意の時刻t1を、参照先のタイムラインにおける時刻t2に対応付ける。
【0084】
t2=t1×(timescale2/timescale1)+(T_ref−(T_org×timescale2/timescale1))・・・(式1)
【0085】
受信装置200は、上記(式1)に基づいて、参照元のストリームにおけるアクセスユニットと、参照先のストリームにおけるアクセスユニットとを同期させて再生する。
【0086】
受信装置200は、タイムラインの対応関係が更新された場合だけでなく、更新されていない場合にも、ステップS204における時刻同期処理を行ってもよい。例えば、周期的に時刻同期処理を行ってもよい。
【0087】
また、TEMIアクセスユニットにタイミング更新識別情報id1が格納されない場合には、受信装置200は、基準クロックが更新されたかどうかを別の方法により判定し、更新されたと判定した場合には、上述の時刻同期処理を行ってもよい。
【0088】
例えば、参照元のストリームがMPEG2−TSによって送信されていれば、受信装置200は、PCRを格納するTSパケットのdiscontinuity_indicatorの値に基づいて、基準クロックの更新(不連続)を判定する。そして、受信装置200は、不連続が発生したと判定した場合には、上述の時刻同期処理を行う。あるいは、受信装置200は、基準クロックの更新などを判定せずに、周期的にTEMIアクセスユニットを取得して上述の時刻同期処理を行ってもよい。
【0089】
このように、本実施の形態における受信方法は、画像または音声のコンテンツに関する第1のストリームを受信する受信方法であって、例えば上述の
図2に示すis_timing_updateなどのタイミング更新識別情報id1と、第1の時刻(上述の時刻T_orgに相当)と、第2の時刻(上述の時刻T_refに相当)とを含む第1のストリームを受信する。タイミング更新識別情報id1は、第1のストリームの送受信に用いられる第1の基準クロックと、その第1のストリームに関するコンテンツと同期して再生される他のコンテンツに関する第2のストリームの送受信に用いられる第2の基準クロックとの間の、対応関係が更新されたか否かを示す。また、第1の時刻は、第1の基準クロックにおける時刻であり、第2の時刻は、更新後の対応関係に基づいて第1の時刻に対応付けられた第2の基準クロックにおける時刻である。
【0090】
これにより、タイミング更新識別情報id1が受信装置200に受信される。したがって、受信装置200は、第1の基準クロックと第2の基準クロックとの間の対応関係が更新されたか否かを、わざわざ第1の時刻と第2の時刻とを用いた解析によって判定することなく、そのタイミング更新識別情報id1のみに基づいて簡単にその判定を行うことができる。その結果、受信装置は、更新されたと判定したときにのみ、第1の時刻と第2の時刻を用いて、更新後の対応関係を特定すればいいため、処理量を抑えることができる。したがって、タイムライン拡張を効率的に行うことができる。
【0091】
つまり、本実施の形態における受信方法は、
図6のステップS203に示すように、第1のストリームに含まれるタイミング更新識別情報id1に基づいて、上述の対応関係が更新されたか否かを判定する。そして、更新されたと判定されたときには、
図6のステップS204に示すように、時刻同期処理を行う。つまり、第1のストリームに含まれる第1の時刻と第2の時刻とに基づいて、更新された対応関係を特定する。そして、更新された対応関係に基づいて、第1のストリームに関するコンテンツと、第2のストリームに関するコンテンツとを同期させて再生する。また、更新された対応関係の特定では、例えば、第1および第2の基準クロックのタイムスケールをそれぞれTs1,Ts2とし、第1および第2の時刻をそれぞれT_org,T_refとし、第1の基準クロックにおける任意の時刻をtとして表す。この場合、t×(Ts2/Ts1)+(T_ref−(T_org×Ts2/Ts1))によって算出される第2の基準クロックにおける時刻に、第1の基準クロックにおける時刻tを対応付けることによって、更新された対応関係を特定する。なお、Ts1,Ts2は、上記(式1)におけるtimescale1,timescale2に相当する。
【0092】
(変形例1)
以下、本実施の形態における変形例について説明する。
【0093】
送信装置100は、TEMIアクセスユニットのaddon_locationに、コンテンツの管理情報を取得するためのアクセス情報(URLなど)を記述してもよい。管理情報は、例えば、MPEG−DASHにおけるMPD(Media Presentation Description)、またはMMTにおけるパッケージの構成情報(パッケージを構成するアセットや、アセットを取得するためのURLなど)などである。
【0094】
例えば、参照先のストリームがMPEG−DASHにしたがって送信される場合には、受信装置200は、まず、TEMIアクセスユニットのaddon_locationから、MPEG−DASHのMPDにアクセスするためのURLを取得する。そして、受信装置200は、そのURLにアクセスしてMPDを取得した上で、MPEG−DASHのコンテンツの取得を開始する。
【0095】
また、参照先のストリームがRTPにしたがって送信される際には、ビデオまたはオーディオの1つの符号化データが1つのRTPストリームによって送信されるのが一般的である。従って、送信装置100は、ビデオまたはオーディオなど複数のRTPストリームをまとめたコンテンツの管理情報にアクセスするためのURLを記述してもよい。
【0096】
あるいは、参照元のストリームがMPEG2−TSにしたがって送信される場合には、送信装置100は、TEMIアクセスユニットのストリームのPIDが示されるPMTのデスクリプタなどを利用して、参照先のコンテンツの管理情報を格納してもよい。このとき、送信装置100は、has_locationのフラグを0にセットして、addon_locationを格納せずに、PMTを参照して参照先のコンテンツの管理情報を格納してもよい。
【0097】
送信装置100は、PMTの第2ループにおいて、TEMIアクセスユニットに関連するデスクリプタとして管理情報を格納してもよい。あるいは、送信装置100は、PMTの第1ループのデスクリプタにおいて、参照先のコンテンツの有無を示す情報を格納し、参照先のコンテンツが存在する場合には、第2ループにおいて、参照先のコンテンツの管理情報を格納してもよい。
【0098】
また、参照元のコンテンツと参照先のコンテンツに依存関係がある場合には、送信装置100は、依存関係を示す情報を、TEMIアクセスユニットの情報が示されるPMTに格納してもよい。参照元のコンテンツがMPEG2−TSにしたがって送信される場合、参照元のコンテンツとTEMIアクセスユニットのPIDなどが、同一PMTによって示される。例えば、参照先のコンテンツが参照元のコンテンツの拡張データを含む場合、拡張データを復号することで、時間(フレームレートなど)、空間(解像度など)、およびビット深度などを拡張することができる。具体的には、フレームレートを60fpsから120fpsに増加したり、解像度を1920x1080pixelから3840x2160pixelに上げることができる。このような場合には、参照先のコンテンツが拡張データであり、送信装置100は、どのようなタイプの拡張ができるかを示す情報をPMTに格納してもよい。また、送信装置100は、参照元のコンテンツと参照先のコンテンツにおける、互いの表示位置を示す情報などをPMTに格納してもよい。
【0099】
あるいは、参照元のコンテンツにおける特定のデータと、参照先のコンテンツとが依存関係を持つ場合には、送信装置100は、どのデータが依存関係を持つかを示す情報をPMTに格納してもよい。例えば、参照元のコンテンツがオーディオとビデオを含み、参照先のコンテンツは参照元のコンテンツのビデオに対応する字幕データを含む。このとき、送信装置100は、参照元のコンテンツのビデオと参照先のコンテンツとが関連することを示してもよい。つまり、送信装置100は、ビデオを格納するTSパケットのPIDと、TEMIアクセスユニットを格納するTSパケットのPIDとを関連付ける。あるいは、送信装置100は、参照先のコンテンツの管理情報において、対応するデータとして、関連するビデオを格納するTSパケットのPIDを示してもよい。
【0100】
上記に示すような情報は、addon_locationに従って取得される参照先のコンテンツの管理情報に格納されてもよい。
【0101】
受信装置200は、上記に示す情報に基づいて、コンテンツの管理情報、あるいは、参照元と参照先のコンテンツの依存関係などを取得して、それらのコンテンツを再生する。
【0102】
(変形例2)
図7A〜
図7Cは、本変形例に係るTEMIアクセスユニットのシンタックスを示す図である。
【0103】
TEMIアクセスユニットは、
図7Aに示すように、デスクリプタ(temi_descriptor)を含む。このデスクリプタ(temi_descriptor)は、
図7Bに示すタイムラインデスクリプタ(temi_timeline_descriptor)と、
図7Cに示すロケーションデスクリプタ(temi_location_descriptor)とを含む。
【0104】
図7Bに示すタイムラインデスクリプタは、両タイムラインの対応関係を示すためのデスクリプタであり、参照先のタイムラインに関する情報を含む。上述のタイミング更新識別情報id1であるis_timing_updateは、このタイムラインデスクリプタに格納される。
【0105】
図7Cに示すロケーションデスクリプタは、参照先のコンテンツのロケーションに関する情報を示すためのデスクリプタである。
【0106】
つまり、TEMIアクセスユニットには、参照元のMPEG2−TSにより送信されるコンテンツと参照先のコンテンツとのタイムラインの対応関係、および、参照先のコンテンツのロケーション情報が、それぞれ異なるデスクリプタの形式として記述されている。
【0107】
以下に、ロケーションデスクリプタにおける特徴的な要素について説明する。force_reloadは、参照先のコンテンツの実体データ、またはコンテンツの管理情報を再度取得する必要があるかどうかを示すフラグである。その管理情報は、参照先とされるMPEG−DASHのMPDのような、コンテンツの管理情報である。
【0108】
is_announcementは、参照先のコンテンツが取得可能であるかどうかを示すフラグである。このフラグが1にセットされると、timescaleが示されるとともに、time_before_activationにおいて、参照先のコンテンツが取得可能となるまでの時間が示される。
【0109】
addon_locationは、参照先のコンテンツの場所を示すロケーション情報(例えばURL)である。
【0110】
splicing_flagは、コンテンツのつなぎ合わせを指示するためのスプライシング識別情報であって、参照先のコンテンツの再生および停止を示すフラグである。つまり、このフラグが1にセットされると、このフラグがセットされていないデスクリプタにおいて示される参照先のコンテンツの再生が中断され、このフラグがセットされているデスクリプタにおいて示される参照先のコンテンツが再生される。例えば、ロケーションデスクリプタAでは、splicing_flag=0がセットされ、かつ、参照先のコンテンツAが示されている。また、ロケーションデスクリプタBでは、splicing_flag=1がセットされ、かつ、参照先のコンテンツBが示されている。ここで、受信装置200は、参照先のコンテンツAを再生している状態で、ロケーションデスクリプタBを受信すると、参照先のコンテンツAの再生を中断して、参照先のコンテンツBを再生する。受信装置200は、参照先のコンテンツBの再生が終了した後には、参照先のコンテンツAの再生を再開する。
【0111】
media_timestampまたはnptなどは、上述のmedia_time_anchorに相当し、参照先のタイムラインにおける時刻T_refを示す。
【0112】
次に、上述のTEMIアクセスユニットを含むストリーム(以下、TEMIストリームという)におけるランダムアクセスについて説明する。
【0113】
図8Aは、受信装置200により行われるランダムアクセスを説明するための図である。受信装置200は、ロケーションデスクリプタを取得して解析し、参照先のコンテンツを取得して再生する。具体的には、受信装置200は、
図8Aに示すように、時刻T0においてロケーションデスクリプタAを取得して、そのロケーションデスクリプタAに示されるコンテンツAの再生を開始する。続いて、受信装置200は、時刻T1においてロケーションデスクリプタBを取得する。ロケーションデスクリプタBには、splicing_flagが1にセットされている。したがって、受信装置200は、コンテンツAの再生を中断して、ロケーションデスクリプタBに示されるコンテンツBの再生を開始する。コンテンツBの再生区間であるスプライス区間は、時刻T2で終了する。したがって、受信装置200は、時刻T2の後、コンテンツAの再生を再開する。
【0114】
なお、ロケーションデスクリプタAは時刻T0から周期的に送信され、ロケーションデスクリプタBは時刻T1から周期的に送信されている。また、スプライス区間は、splicing_flagが1にセットされているロケーションデスクリプタによって示されるコンテンツが再生される区間である。
【0115】
ここで、受信装置200は、ランダムアクセスを行う。例えば、受信装置200は、ロケーションデスクリプタBが送信されている時刻Tから受信を開始する。このとき、受信装置200は、ロケーションデスクリプタBを受信する。その結果、受信装置200は、コンテンツBから再生を開始する。しかしながら、この場合には、受信装置200は、ロケーションデスクリプタAを受信していないため、コンテンツBの再生終了後に再生を再開すべきコンテンツを特定することができない。
【0116】
そこで、本変形例では、送信装置100は、スプライス区間の直後に再生されるコンテンツを示すロケーションデスクリプタを、スプライス区間の終了時刻、あるいは、終了時刻以前に送信する。これにより、受信装置200は、splicing_flagが1にセットされたロケーションデスクリプタの直前に送出されたロケーションデスクリプタを取得できていない場合であっても、スプライス区間の終了後に、再生を再開すべき元のコンテンツを特定して再生することができる。
【0117】
図8Aに示す例では、送信装置100は、時刻T2においてロケーションデスクリプタAを再送する。送信装置100は、スプライス区間の終了時刻よりも前にロケーションデスクリプタAを送信する場合には、is_announcementのフラグを1にセットして、コンテンツAが時刻T2から取得可能であることをそのロケーションデスクリプタAに示してもよい。is_announcementは、本来、コンテンツが取得可能となる時刻を示すフラグであるが、スプライス区間の後に再生を再開する参照先のコンテンツの再生開始時刻を示してもよい。再生が開始されるアクセスユニットは、参照先のコンテンツ内のアクセスユニット毎のDTS(Decoding Time Stamp)あるいはPTSに基づいて決定される。
【0118】
ここで、参照元と参照先のタイムラインが異なる場合は、受信装置200は、temi_timeline_descriptorから取得したタイムラインの同期情報(例えば、timescaleおよびmedia_timestampなど)に基づいて、両タイムラインの時刻同期処理を行う。また、送信装置100は、再送されるロケーションデスクリプタにおいて、force_reloadのフラグを0にセットしておいてもよい。これにより、既にロケーションデスクリプタAを取得済みの受信装置200は、再送されたロケーションデスクリプタAを受信した場合には、参照先のコンテンツを再度取得する必要がないと判断することができる。
【0119】
なお、送信装置100は、スプライス区間の直後に再生されるコンテンツであることを示す情報、あるいは、ロケーションデスクリプタの内容が既に送信済みの内容であることを示す情報を、再送されるロケーションデスクリプタ内に格納してもよい。また、送信装置100は、TEMIストリームの属性を示すデスクリプタなどに、より有意義な情報を示してもよい。この有意義な情報は、任意のTEMIアクセスユニットから受信が開始された場合であっても、受信が開始されたTEMIアクセスユニットにより示される参照先のコンテンツと、時間的に後続となる参照先のコンテンツとが、ロケーションデスクリプタが再送さることによって一意に決定できることを示す情報である。
【0120】
図8Aに示す例は、ロケーションデスクリプタの取得直後から参照先のコンテンツの再生が開始できる理想的な例である。しかし、実際には、ロケーションデスクリプタの取得後にコンテンツを取得して再生を開始するまでには、通信ネットワークの帯域や輻輳状況などに依存してタイムラグが発生する。
【0121】
図8Bは、タイムラグを考慮した場合の送信装置100および受信装置200の処理動作を説明するための図である。
【0122】
例えば、受信装置200は、時刻T0においてロケーションデスクリプタAを取得した場合に、コンテンツAの再生を時刻S0から開始する。また、送信装置100は、ロケーションデスクリプタが取得されてから参照先のコンテンツの再生が開始されるまでにかかるタイムラグを考慮して、ロケーションデスクリプタを送信してもよい。つまり、送信装置100は、参照先のコンテンツにおける先頭アクセスユニットのDTSあるいはPTSに相当する時刻に先立って、temi_location_descriptorの送信を開始する。例えば、参照先のコンテンツの先頭アクセスユニットのDTSが、参照元のMPEG2−TSにおけるPCRの値に換算した場合に、1000000であり、タイムラグが600000であったとする。この場合、送信装置100は、PCRの値が400000に相当する時刻、あるいは、それ以前に、temi_location_descriptorを送信する。これにより、受信装置200において時刻1000000から参照先のコンテンツを再生することが保証できる。
【0123】
次に、上述のTEMIアクセスユニットを含むTEMIストリームにおけるランダムアクセスポイントについて説明する。
【0124】
受信装置200では、参照先のコンテンツに関する情報を取得することが可能である必要があり、具体的には、放送における選局、または、通信における受信開始動作の直後にその必要がある。例えば、放送の場合には、受信装置200は、受信される番組のPMTにより示されるTEMIストリームのPIDを取得してから、TEMIストリームの受信を開始する。したがって、送信装置100は、TEMIアクセスユニットにおけるタイムラインデスクリプタおよびロケーションデスクリプタを、放送におけるMPEG2−TSのPMTなどと同様に、周期的に送信することが望ましい。
【0125】
ロケーションデスクリプタは、その内容が更新された場合にのみ、受信装置200に送信されればよい。これは、TEMIアクセスユニットを受信する度に、同じ内容のロケーションデスクリプタを解析することは、受信装置200における処理負荷の増大に繋がるためである。
【0126】
タイムラインデスクリプタは、受信装置200において参照元のコンテンツと参照先のコンテンツのタイムラインが同期される頻度に依存して送信されればよく、基本的にはPCRの不連続が発生した場合にのみ送信されればよい。
【0127】
そこで、送信装置100は、ロケーションデスクリプタの内容が更新されたことを受信装置200にシグナリングしてもよい。例えば、送信装置100は、ロケーションデスクリプタにバージョン番号を示すカウンタを設けることによってシグナリングする。あるいは、送信装置100は、TSパケットのヘッダにおけるrandom_access_indicatorをセットするなどによってシグナリングする。また、送信装置100は、TEMIアクセスユニットにおけるCRC_flag直後のreserved領域などに新規のフラグを設けてもよい。ここで、random_access_indicatorを用いる場合には、送信装置100は、random_access_indicatorを1にセットする。具体的には、送信装置100は、更新後のロケーションデスクリプタを含むTEMIアクセスユニットの先頭データを含むTSパケットのヘッダにおいてセットする。例えば、splicing_flagの値、force_reloadの値、あるいは、新規location_idの設定によって示される参照先のコンテンツなどが、ロケーションデスクリプタの内容として変更される。
【0128】
このとき、受信装置200は、放送における選局直後に受信したTEMIアクセスユニットの内容に基づいて参照先のコンテンツを取得し、参照元のコンテンツと参照先のコンテンツのタイムラインの対応付けを行い、参照先のコンテンツを再生開始する。再生開始後は、受信装置200は、random_access_indicatorの値などに基づいてロケーションデスクリプタの内容が更新されたかどうかを判定し、内容が更新された場合には更新後の内容に基づいて参照先のコンテンツの切替えなどを行う。一方で、受信装置200は、TSパケットのヘッダのdiscontinuity_indicatorの値を監視して、PCRの不連続が発生したかどうかを判定する。受信装置200は、PCRの不連続が発生した場合には、TEMIアクセスユニット内のタイムラインデスクリプタを参照して、両タイムラインの対応付け(つまり同期)をやり直す。つまり、先頭のロケーションデスクリプタ、あるいは、内容が更新されてから最初に送信されるロケーションデスクリプタを含むTEMIアクセスユニットをランダムアクセスポイントとしてもよい。
【0129】
また、TEMIアクセスユニットに、タイムラインデスクリプタとロケーションデスクリプタのいずれか一方のみが含まれ、受信装置200において取得したいデスクリプタが含まれないことがある。この場合は、受信装置200は、取得対象となるデスクリプタが含まれるTEMIアクセスユニットを受信することができるまで、TEMIアクセスユニットの取得を継続する。
【0130】
なお、ランダムアクセスポイントは以下のように定義してもよい。
【0131】
図8Aの例を用いて説明したように、スプライス区間におけるTEMIアクセスユニットから受信が開始されると、スプライス区間の直後に再生されるコンテンツを取得できない場合がある。つまり、任意のTEMIアクセスユニット(AU(i))から受信が開始された場合であって、AU(i)により示される参照先のコンテンツの直後に再生されるコンテンツを取得するための情報が、AU(i)よりも送信順が前のTEMIアクセスユニットにおいてのみ示される場合には、AU(i)はランダムアクセスポイントとはならない。したがって、AU(i)により示される参照先コンテンツの直後に再生するコンテンツを取得するための情報が、AU(i)よりも送信順が後のTEMIアクセスユニットに格納されるとき、そのAU(i)をランダムアクセスポイントとしてもよい。
【0132】
図9は、本変形例に係る受信装置200の処理動作の例を示すフローチャートである。
【0133】
まず、受信装置200は、選局直後に受信したTEMIアクセスユニットのタイムラインデスクリプタとロケーションデスクリプタとを解析する。これにより、受信装置200は、参照先のコンテンツを特定するとともに、参照先のコンテンツと参照元のコンテンツのタイムラインの対応付けに必要な情報を取得する(ステップS301)。次に、受信装置200は、参照先のコンテンツを受信して、参照先のコンテンツと参照元のコンテンツとの同期再生を開始する(ステップS302)。
【0134】
次に、受信装置200は、ロケーションデスクリプタの内容が更新されたか否かを判定する(ステップS303)。ここで、更新されたと判定すると(ステップS303の「はい」)、受信装置200は、更新された内容に応じて、参照先のコンテンツを切り替えたり、参照先のコンテンツのURLの変更を行う。これにより、受信装置200は、更新後の参照先のコンテンツを取得する(ステップS304)。
【0135】
次に、受信装置200は、PCRの不連続が発生したか否かを判定する(ステップS305)。ここで、発生したと判定すると(ステップS305の「はい」)、受信装置200は、タイムラインデスクリプタを参照して、参照元のコンテンツと参照先のコンテンツのタイムラインを再び同期する(ステップS306)。
【0136】
なお、受信装置200は、ステップS303,S304を実行しなくてもよく、または、ステップS305,S306を実行しなくてもよい。つまり、受信装置200は、ステップS303,S304を含む処理と、ステップS305,S306を含む処理とのうち、何れか一方の処理のみを実行してもよい。
【0137】
このように、本実施の形態における送信方法では、TEMIアクセスユニットは、タイムラインデスクリプタと、ロケーションデスクリプタとを有する。そして、タイムラインデスクリプタに、タイミング更新識別情報id1および第2の時刻を格納し、ロケーションデスクリプタに、第2のストリームに関するコンテンツの場所を示すロケーション情報(例えばURL)を格納する。そして、本実施の形態における送信方法は、さらに、第2のストリームに関するコンテンツの再生を中止して、第3のストリームに関するコンテンツの再生を開始させるためのスプライシング識別情報(例えばsplicing_flag)と、第3のストリームに関するコンテンツの場所を示すロケーション情報(例えばURL)とを含む他のロケーションデスクリプタを、上記ロケーションデスクリプタが送信された後に送信する。そして、第3のストリームに関するコンテンツの再生区間の終了時までに、上記ロケーションデスクリプタを再び送信する。例えば、上述のロケーションデスクリプタ、他のロケーションデスクリプタ、第2のストリームに関するコンテンツ、および第3のストリーム関するコンテンツは、それぞれ
図8Aおよび
図8Bに示す、ロケーションデスクリプタA、ロケーションデスクリプタB、コンテンツAおよびコンテンツBである。
【0138】
一方、本実施の形態における受信方法は、さらに、コンテンツのつなぎ合せを指示するスプライシング識別情報(例えばsplicing_flag)と、第3のストリームに関するコンテンツの場所を示すロケーション情報とを含む第1のデスクリプタを受信したときには、第2のストリームに関するコンテンツの再生を中止して、第3のストリームに関するコンテンツの再生を開始する。さらに、第3のストリームに関するコンテンツの再生区間の終了時までに、第2のストリームに関するコンテンツの場所を示すロケーション情報を含む第2のデスクリプタを受信したときには、その再生区間の終了後に、第2のストリームに関するコンテンツの再生を再開する。例えば、上述の第1のデスクリプタ、第2のデスクリプタ、第2のストリームに関するコンテンツ、および第3のストリーム関するコンテンツは、それぞれ
図8Aおよび
図8Bに示す、ロケーションデスクリプタB、ロケーションデスクリプタA、コンテンツAおよびコンテンツBである。
【0139】
これにより、上述の他のロケーションデスクリプタが上述の第1のデスクリプタとして受信装置に送信される。したがって、受信装置200は、他のロケーションデスクリプタに格納されているスプライシング識別情報に基づいて、第2のストリームに関するコンテンツの再生を中止して、第3のストリームに関するコンテンツを再生することができる。さらに、その第3のストリームに関するコンテンツの再生区間の終了までに、第2のストリームに関するコンテンツの場所を示すロケーション情報が格納されたロケーションデスクリプタが上述の第2のデスクリプタとして受信装置200に再送される。したがって、受信装置200は、その再生区間から第1のストリームの受信を開始した場合であっても、その再生区間の終了時には、次に再生すべきコンテンツを容易に特定して再生することができる。つまり、受信装置200は、その再生区間前から、参照元のストリームである第1のストリームの受信を開始していた場合と同様に、第3のストリームに関するコンテンツの前に再生されていた、元の第2のストリームに関するコンテンツの再生を再開することができる。
【0140】
(変形例3)
ここで、スプライス区間における再生方法について説明する。
【0141】
タイムライン拡張においては、受信装置は、1を示すsplicing_flagがセットされたtemi_location_descriptorを受信すると、それまで再生していたコンテンツの再生を中断する。そして、受信装置は、splicing_flagが1にセットされた参照先のコンテンツの再生を行う。しかしながら、参照先のコンテンツがMPEG−DASH、MMT、あるいは、MPEG2−TSなどによって送信される場合には、参照先のコンテンツにおけるアクセスユニットのDTSまたはPTSは、MPEG−DASHまたはMMTなどのストリームにおいて示されている。したがって、受信装置は、特にsplicing_flagがセットされた場合の動作を一意に決定することができない場合がある。
【0142】
そこで、本変形例では、以下に示す送信方法および受信方法によって、スプライス区間において参照先のコンテンツを再生する動作を一意に決定することができる。ここで、MP4のようにアクセスユニットのDTSまたはPTSの絶対値が示されないフォーマットを相対時刻形式のフォーマットという。また、MPEG−DASHまたはMMTのようにアクセスユニットのDTSまたはPTSの絶対値が示されるフォーマットを、絶対時刻形式のフォーマットという。
【0143】
相対時刻形式のフォーマットでは、参照先のコンテンツを示すtemi_location_descriptorを含むTEMIアクセスユニットを格納するPESパケットのヘッダに示されるDTSあるいはPTSが、参照先のコンテンツの先頭アクセスユニットの時刻情報として扱われる。この場合、受信装置200は、temi_location_descriptorを受信すると、対応するTEMIアクセスユニットを格納するPESパケットのヘッダ(DTSまたはPTS)に基づいて時刻情報を決定する。したがって、例えば、送信装置100は、PCRの値が90000となる時刻から、参照先のコンテンツの再生を開始させるときに、TEMIアクセスユニットを周期的に送信する場合には、PESパケットに含まれるヘッダのPTSの値を90000に設定する。
【0144】
一方、絶対時刻形式のフォーマットでは、アクセスユニットの時刻情報は、各フォーマットにおける基準クロックに基づいた値として、フォーマット内のヘッダに示される。基準クロックは、MPEG−DASHまたはMMTではNTPの値であり、MPEG2−TSであればPCRの値となる。受信装置200は、アクセスユニットの時刻情報に従って、参照先のコンテンツを再生する。なお、
図8Bに示す例を用いて説明したように、temi_location_descriptorを受信してから参照先のコンテンツを再生できるまでにタイムラグが存在する。この場合には、タイムラグに応じてDTSあるいはPTSを遅らせてもよい。また、相対時刻形式のフォーマットにおいてはタイムラインが存在しないため、temi_timeline_descriptorは不要である。
【0145】
また、1を示すsplicing_flagがセットされた場合には、上記で説明した方法によってDTSまたはPTSを決定しなくてもよい。つまり、そのsplicing_flagがセットされたtemi_location_descriptorの受信時刻よりも後で、参照先のコンテンツが再生可能となった時点で再生を開始してもよい。このように、1を示すsplicing_flagがセットされたtemi_location_descriptorの受信時刻に基づいて参照先のコンテンツを再生するかどうかを示すフラグ情報を、デスクリプタ内に格納してもよい。
【0146】
また、
図7Cに示すシンタックスにおけるnb_addonsのフィールドの値を2以上に設定することで、参照先のコンテンツを複数指定することが可能である。このように指定される複数の参照先コンテンツを再生する方法には、(1)複数の参照先コンテンツを同時に再生する方法と、(2)複数の参照先コンテンツを格納順に1つずつ再生する方法とがある。したがって、(1)および(2)のどちらの方法で再生されるかを示す識別情報を、デスクリプタ内に格納してもよい。また、複数の参照先のコンテンツをグループ化して、グループ毎に(1)および(2)のどちらの方法で再生されるかを示す識別情報を、デスクリプタ内に格納してもよい。
【0147】
(変形例4)
ここで、TEMIストリームの属性情報について説明する。
【0148】
参照元のコンテンツと参照先のコンテンツの再生制御に関する以下のような情報を、TEMIストリームの属性情報として示してもよい。
【0149】
参照先のコンテンツを通信ネットワーク経由で取得する際には、ネットワークの帯域または輻輳に依存して、受信を開始してから再生を開始できるまでの遅延が生じる。このため、参照元のコンテンツと参照先のコンテンツを同期再生するには、参照先のコンテンツが揃うまで参照元のコンテンツのデータをバッファリングして参照元のコンテンツの再生を遅延させる必要がある。
【0150】
あるいは、受信装置200は、参照先のコンテンツにおける取得データの範囲を指定できる場合には、参照先のコンテンツのバッファリングに必要な時間を考慮して、参照先のコンテンツのうち、後のPTSを有するアクセスユニットから順に各アクセスユニットを取得する。例えば、受信装置200は、参照元のコンテンツにおいて再生開始するアクセスユニットのPTSよりも例えば10秒後のPTSを持つ、参照先のコンテンツにおけるアクセスユニットから、各アクセスユニットを順に取得する。これにより、受信装置200は、10秒後からは参照元と参照先の両コンテンツを同期再生することができる。
【0151】
あるいは、(1)マルチビュー再生される場合、または(2)参照元のコンテンツが、スケーラブル符号化における基本レイヤとされ、参照先のコンテンツが拡張レイヤとされている場合などは、厳密な同期再生が要求される。しかし、これららのケースを除いては、参照元と参照先のコンテンツを同期せずにそれぞれ独立に再生することも可能である。そこで、それぞれの状況にあわせた再生モードをTEMIストリームの属性情報として示すことにより、受信装置200はその再生モードにしたがって参照元のコンテンツと参照先のコンテンツを適切に再生することができる。
【0152】
また、TEMIストリームにおいて、temi_timeline_descriptorが含まれるかどうかを属性情報によって示してもよい。例えば、temi_location_descriptorが存在して、temi_timeline_descriptorが存在しない場合がある。このような場合に、参照先のコンテンツは存在するが、参照先のコンテンツと参照元のコンテンツとは同期再生する必要がないことをその属性情報によって示すことができる。あるいは、上述の場合には、参照先のコンテンツと参照元のコンテンツのタイムラインが同一であることを属性情報によって示してもよい。また、これらの情報をそれぞれ独立した識別情報により示してもよい。
【0153】
temi_timeline_descriptorが存在する場合には、タイムラインのタイプを示す属性情報を示してもよい。タイムラインのタイプには、例えば、NTP(Network Time Protocol)、IETFのRFC5484において規定されるタイムコード、あるいは、メディア固有のタイムスタンプなどの3タイプがある。NTP、タイムコード、あるいは、メディア固有のタイムスタンプは、それぞれtemi_location_descriptorのhas_ntp、has_timecodeおよび、has_timestampの各フィールドにより示される。
【0154】
さらに、上記の属性情報を格納するデスクリプタを規定して、PMTにおいてエレメンタリストリーム毎の属性を示す2ndループなどにそのデスクリプタを格納してもよい。
【0155】
(変形例5)
TEMIアクセスユニットにおけるデスクリプタの格納順序は予め規定されていてもよい。例えば、参照先のコンテンツのタイムラインが変化しなければ、temi_timeline_descriptorのサイズは固定されている。したがって、temi_timeline_descriptor、temi_location_descriptorの順に各デスクリプタをTEMIアクセスユニットに格納する。これにより、TEMIアクセスユニットにおけるtemi_location_descriptorの開始位置は固定となる。したがって、temi_timeline_descriptorのtemi_descr_tagとtemi_descr_lengthを解析してtemi_location_descriptorの開始位置を決定する処理を省くことができ、受信装置200の処理を低減することができる。
【0156】
また、temi_location_descriptorにおいてタイムラインの情報を示すフィールドの開始位置も固定となる。したがって、アクセスユニットの先頭から固定のバイトオフセットを加算した位置のデータを取得することで、デスクリプタを解析せずにタイムラインの情報を取得することができる。なお、temi_timeline_descriptorが常に存在することが保証されない場合には、受信装置200は、アクセスユニットにおける先頭デスクリプタのtemi_descr_tagの値を解析し、temi_location_descriptorが存在するかどうかを判定する。なお、TEMIアクセスユニットに格納される各デスクリプタ、及び、それらの格納順が固定であることを示すフラグを、TEMIストリームの属性情報としてデスクリプタなどに含めてもよい。
【0157】
参照先のコンテンツのロケーション情報として、通信ネットワーク経由でそのコンテンツを取得する際に用いられるURLなどに加えて、放送におけるトランスポートストリームのPIDを指定してもよい。あるいは、参照先のコンテンツを参照元のコンテンツと別の放送チャネルで送信する際には、トランスポートストリームの識別番号などを更に指定してもよい。
【0158】
以上、本発明の一態様に係る送信方法および受信方法について、実施の形態およびその変形例を用いて説明したが、本発明はこれらに限定されるものではない。
【0159】
図10Aは、本発明の一態様に係る送信方法を示すフローチャートである。
【0160】
この送信方法は、画像または音声のコンテンツに関する第1のストリームを送信する送信方法であって、ステップS11を含む。このステップS11では、タイミング更新識別情報と、第1の時刻と、第2の時刻とを含む第1のストリームを送信する。タイミング更新識別情報は、第1のストリームの送受信に用いられる第1の基準クロックと、その第1のストリームに関するコンテンツと同期して再生される他のコンテンツに関する第2のストリームの送受信に用いられる第2の基準クロックとの間の、対応関係が更新されたか否かを示す。第1の時刻は、第1の基準クロックにおける時刻である。第2の時刻は、更新後の対応関係に基づいて第1の時刻に対応付けられた第2の基準クロックにおける時刻である。
【0161】
このような送信方法であっても、上記実施の形態の送信方法と同様の効果を奏することができる。
【0162】
図10Bは、本発明の一態様に係る送信装置のブロック図である。
【0163】
この送信装置10は、画像または音声のコンテンツに関する第1のストリームを送信する送信装置であって、送信部11を備える。この送信部11は、上述のタイミング更新識別情報と、第1の時刻と、第2の時刻とを含む第1のストリームを送信する。このような送信装置10であっても、上記実施の形態の送信装置100と同様の効果を奏することができる。
【0164】
また、本発明は、上述の第1のストリームを生成するデータ生成方法またはデータ生成装置であってもよい。つまり、本発明のデータ生成方法またはデータ生成装置は、画像または音声のコンテンツに関する第1のストリームを生成する方法または装置であって、タイミング更新識別情報と、第1の時刻と、第2の時刻とを含む第1のストリームを生成する。また、本発明のデータ生成方法には、上記実施の形態およびその変形例に含まれる、送信以外の何れの処理動作が含まれていてもよく、本発明のデータ生成装置には、上記実施の形態およびその変形例に含まれる、送信を行う構成要素以外の何れの構成要素が含まれていてもよい。
【0165】
図11Aは、本発明の一態様に係る受信方法を示すフローチャートである。
【0166】
この受信方法は、画像または音声のコンテンツに関する第1のストリームを受信する受信方法であって、ステップS21を含む。このステップS21では、タイミング更新識別情報と、第1の時刻と、第2の時刻とを含む第1のストリームを受信する。タイミング更新識別情報は、第1のストリームの送受信に用いられる第1の基準クロックと、その第1のストリームに関するコンテンツと同期して再生される他のコンテンツに関する第2のストリームの送受信に用いられる第2の基準クロックとの間の、対応関係が更新されたか否かを示す。第1の時刻は、第1の基準クロックにおける時刻である。第2の時刻は、更新後の対応関係に基づいて第1の時刻に対応付けられた第2の基準クロックにおける時刻である。
【0167】
このような受信方法であっても、上記実施の形態の受信方法と同様の効果を奏することができる。
【0168】
図11Bは、本発明の一態様に係る受信装置のブロック図である。
【0169】
この受信装置20は、画像または音声のコンテンツに関する第1のストリームを受信する受信装置であって、受信部21を備える。この受信部21は、上述のタイミング更新識別情報と、第1の時刻と、第2の時刻とを含む第1のストリームを受信する。このような受信装置20であっても、上記実施の形態の受信装置200と同様の効果を奏することができる。
【0170】
なお、上記実施の形態およびその変形例において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の送信装置または受信装置などを実現するソフトウェアは、次のようなプログラムである。すなわち、このプログラムは、コンピュータに、
図10Aまたは
図11Aに示すフローチャートに含まれるステップを実行させる。
【0171】
また、以下のような場合も本発明に含まれる。
【0172】
(1)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0173】
(2)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
【0174】
(3)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【0175】
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0176】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【0177】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0178】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【0179】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0180】
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【0181】
以上、一つまたは複数の態様に係る送信方法および受信方法について、実施の形態およびその変形例に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。