本明細書で使われる用語としては、本発明においての機能を考慮したうえ、できるだけ現在広く使われている一般的な用語を選択したが、これは、当該分野に従事する技術者の意図、慣例又は新しい技術の出現などによって変更してもよい。また、特定の場合、出願人が任意に選定した用語もあり、その場合には、該当する発明の説明の部分においてその意味を記載するものとする。したがって、本明細書で使われる用語は、単純な用語の名称ではなく、その用語が持つ実質的な意味及び本明細書の全般にわたる内容に基づいて解釈しなければならないということは明らかである。
この明細書でいうメディア時間(media time)は、オーディオ/ビデオ又はオーディオコンテンツアイテムの再生における一時点を参照するパラメータを指す。ACRは自動コンテンツ認識を表す。AMTは活性化メッセージテーブルを表す。APIはアプリケーションプログラムインタフェースを表す。DAEは宣言的応用環境を表す。DOは宣言的オブジェクトを表す。FLUTEは、単方向送信を用いたファイル配信(File Delivery over Unidirectional Transport)を表す。GPSは、全球測位システム(Global Positioning System)を表す。HTTPは、ハイパテキスト送信プロトコルを表す。IPはインターネットプロトコルを表す。IPTVはインターネットプロトコルテレビを表す。iTVは対話型テレビを表す。MIMEはインターネットメディアタイプを表す。NDOはNRT宣言的オブジェクト(NRT Declarative Object)を表す。NRTは非実時間(Non−Real Time)を表す。SMTはサービスマップテーブルを表す。SSCはサービス信号通知チャネルを表す。TDOは、トリガされた宣言的オブジェクトを表す。TPTは、TDOパラメータテーブルを表す。UDOは、非結合宣言的オブジェクトを表す。UPnPはユーザプラグアンドプレイを表す。URIは統一資源識別子を表す。URLは統一資源位置指定子を表す。XMLは拡張可能マーク付け言語を表す。TFTはテキストフラグメントテーブル(Text Fragment Table)を表す。詳細な内容は後述する。
この明細書で、DO、TDO、NDO、UDO、リンク及びパッケージ型アプリは次のような意味を有する。
DO(Declarative Object)は、対話型アプリケーション(例えば、HTML、JavaScript(登録商標)、CSS、XML及びマルチメディアファイル)を構成するコレクションであってもよい。
トリガされた対話型付加データサービスによって開始された宣言的オブジェクト又はトリガによって開始されたDOによって実行されたDOなどを指定するために“トリガされた宣言的オブジェクト(TDO)”を使用する。
トリガされた対話型データサービスではなくNRTサービスの一部として実行された宣言的オブジェクトを表すために、“NRT宣言的オブジェクト”(NDO)という用語を使用する。
パッケージ型アプリ(Packaged App)のようにサービスに結合されない宣言的オブジェクト、リンクによって実行されたDO、又はそのようなDOによって実行されたDOなどを表すために“非結合宣言的オブジェクト(UDO)”という用語を使用する。
“リンク”は、現在のTV番組又はNRTサービスに関係するオンライン情報又は機能を提供するウェブサイトを示す放送事業者提供のURLである。
“パッケージ型アプリ”は、放送事業者が視聴者に提供しようとする情報又は機能を提供し、視聴者がダウンロードして設置できる一つのファイルとしてまとめられた放送事業者提供宣言的オブジェクト(DO)である。
その詳細は後述する。
この明細書において、時間ベースメッセージ(time base message)は、時間ベーストリガ及びその均等物を含む。したがって、“時間ベースメッセージ”と“時間ベーストリガ”とを同じ意味で用いてもよい。
この明細書において、活性化メッセージは、活性化トリガ及び/又はAMT内の活性化要素のような、活性化を引き起こすすべての情報配信を含む。
図1は、一般的な放送ストリームの一実施例を示す図である。
一般的な放送ストリームはTV番組のシーケンスで構成されている。各TV番組は、基本となるショー(show)で構成され、ショーは一般的に広告及び/又は他の介在素材(interstitial material)によって分離されたブロックに分けられる。
図1においては、放送ストリームに、ショーA(Show A)セグメント、広告1(Ad1)、広告2(Ad2)、ショーB(Show B)セグメントなどが順次に含まれている。各ショーをなすセグメントをショー材料、広告を介在素材と呼んでもよい。
各ショー又は介在素材は、それと連携している対話型付加データサービスを有しても有さなくてもよい。
本明細書では、統合ユニットとして放送事業者によって扱われる対話型付加サービスの一部を表すために“対話型サービスセグメント”、又は単純に“セグメント”という用語を使用する。対話型サービスセグメントは一般的に単一ショー又は1個の介在素材と連携するが、必ずしもそうでない。
このような対話型付加データサービスを実行するための二つのモデルがあり得る。直接実行モデル及びトリガされた宣言的オブジェクト(TDO)モデルがそれである。
直接実行モデルでは、仮想チャネルが選択されると直ちに宣言的オブジェクト(DO)は自動で開始される。宣言的オブジェクトは、画面上の特定位置での表示の生成、世論調査の実行、他の特殊DOの開始などのように、オーディオ/ビデオ番組と同期した対話型機能(feature)の提供のための具体的な指示事項を得るために、インターネットを介してバックエンドサーバと通信することができる。
TDOモデルでは、TDOの開始、TODの終了、又はTDOによる一部作業の誘発のようにTDOイベントを開始するために信号を放送ストリームで配信したり、又はインターネットを介して配信したりすることができる。これらのイベントは、特定時刻に開始され、一般的にオーディオ/ビデオ番組と同期化される。TDOが開始されると、プログラムされた対話型機能を提供することができる。
TDOモデルの基本概念は、TDOを構成するファイル及びある動作を取るためにTDOによって用いられるデータファイルはいずれも、その大きさによって受信機に配信されるには一定の時間がかかるということである。対話型要素に対するユーザ体験は、コンテンツの放送前に作成(author)してもよいが、ある振舞は、番組内のイベント、例えば、商業広告セグメントの発生と同時に起きるように注意して時刻を決めなければならない。
TDOモデルでは、宣言的オブジェクト、連携するデータ、スクリプト、テキスト及びグラヒックの配信を、対話型イベントの再生に対する特定タイミングの信号通知(signaling)と区別する。
対話型イベントのタイミングを設定する要素はトリガである。
一つのセグメント内で用いられるTDO及びトリガによって開始される連携TDOイベントに関する情報は、“TDOパラメータテーブル”(TPT)と呼ばれるデータ構造によって提供される。
以下、トリガについて説明する。
図2は、既に生成されたコンテンツの場合の、トリガタイミングの一実施例を示す図である。
トリガは、信号通知を識別し、対話型イベントの再生タイミングを設定する機能を担う信号通知要素である。
トリガには、対話型サービスに関係するセグメントに対するメディア時間を示す役割を担う時間ベーストリガと、対話型サービスに関係するアプリケーションのイベント発生時刻を示す役割を担う活性化トリガとの2種類があり得る。
トリガは、対話型サービスのサポートのために、タイミングに関係する様々な機能を果たすことができる。トリガはその機能によって多機能的であってもよく、特定トリガインスタンスは、次の機能のうち一つ以上を行うことができる。
1.TPT(送出ストリーム内のFLUTEセッション、インターネットサーバ、又はこれら両者を介して利用可能なTPT)の位置を信号通知する。
2.次の番組セグメントに対する対話型コンテンツがプリロードされることを示す。
3.連携するオーディオ/ビデオコンテンツ又はオーディオコンテンツの現在メディア時間を示す。
4.TPT内特定対話型イベントを参照し、当該イベントが現在又は特定の未来のメディア時間に実行されなければならないということを知らせる。
5.需要が最大となることを避けるために、インターネットサーバに対する接続が特定の期間内にランダムに分散されることを示す。
図2は、二つの番組セグメントと連携して配信されるトリガを示す。この例では、二つのセグメントとも“あらかじめ制作(pre−produce)”されるが、これは、コンテンツがライブコンテンツではなく、対話型要素はポストプロダクションで追加されたことを意味する。
図示のように、番組セグメント1の発生前の短い時間に“プリロード”トリガが配信されて、受信機と連携されているTPT及び単方向コンテンツを取得できる機会を受信機に許容することができる。プリロードトリガが送信されないとき、受信機は、コンテンツを取得するために該当のセグメント内で遭遇する最初のトリガを用いると考えることができる。
図示のように、トリガはSegment1を介して送信されて、当該セグメントに関する現在メディア時間(図では“m”と表記)を示すことができる。単に当該チャネルに遭遇した受信器が対話型コンテンツを同期化して取得できるようにするためにメディア時間トリガの周期的な配信が必要なことがある。
Segment2の開始直前に当該セグメントに対するプリロードトリガが送信される。
あらかじめ作成されたコンテンツ(非ライブ(non−live)コンテンツ)の場合、受信機が最初のトリガを処理した後に取得できるTPTは、当該セグメントに対する対話型体験のすべての要素のタイミングを定義することができる。当該受信機及びTDOが対話型要素を再生するようにするために必要なものは、メディアタイミングの知識であってもよい。このTPTはメディア時間に関して対話型イベントを記述することができる。
図3は、ライブコンテンツの場合に、トリガタイミングの一実施例を示す図である。
ライブコンテンツの場合にも、TPTは、別個の対話型イベントに関係するデータ及び情報を含むが、放送中に番組内の動作が展開するまでは、そのようなイベントの再生タイミングは知られないことがある。このようなライブの場合、トリガの“イベントタイミング”機能が活用される。このモードにおいて、トリガは、特定の対話型イベントが新しい特定メディア時間値に再設定(re−timed)されることを知らせることができる。又は、トリガは、あるイベントが直ちに実行されることを示すこともできる。
図3において、セグメント3に対する各トリガの機能は次のとおりである。
1番トリガは、プリロードトリガであって、セグメント3に関するファイルを得ることができるディレクトリを参照する。
2番トリガは、メディア時間トリガであって、セグメント3に対する再生タイミングを示すために用いられる。
3番トリガは、イベント再設定(re−timing)トリガであって、TPTでeventID=2のイベントがメディア時間240に発生するように時間が再設定されることを示す。ハッチングされた領域は、3番トリガが受信機に配信され得る240以前の期間を示す。
4番トリガは、メディア時間トリガである。
5番トリガは、イベント再設定トリガであって、TPTでeventID=5のイベントがメディア時間444に発生するように時間が再設定されることを示す。
6番、7番トリガは、メディア時間トリガである。
8番トリガは、イベントトリガであって、TPTでeventID=12のイベントが直ちに実行されることを示す。
9番トリガは、イベント再設定トリガであって、TPTでeventID=89のイベントがメディア時間900に発生するように時間が再設定されることを示す。
以下、TDOのライフサイクル及び状態、並びに状態変化イベントについて説明する。
TDOは、解放(Released)、実行可能(Ready)、実行中(Active)、及び中止(Suspended)の異なった4つの状態で存在することができる。多数の異なる要素(トリガ、ユーザ動作、変更されるチャネルなど)が一つの状態から他の状態への変動を引き起こし得る。
TDOは、次の4つの状態を有することができる。4つの状態は、実行可能、実行中、中止及び解放である。実行可能状態は、TDOがダウンロードされて実行準備となっているが、まだ実行されていないことを意味する。活動状態は、TDOが実行中であることを意味する。中止状態は、その状態の保存と併せて、TDOの実行が一時的に中止することを意味する。解放状態は、TDOが実行可能、実行中又は中止状態でないことを意味する。
TDOの状態変化を起こし得るイベントの例には次のものがある。
1.“prepare”をトリガする。装置は、TDOが実行(リソース割当、主メモリへのロードなど)をするように準備されることを要求するトリガを(現在選択された1次仮想チャネルで)受信する。
2.“execute”をトリガする。装置は、TDOが活性化されることを要求するトリガを(現在選択された1次仮想チャネルで)受信する。
3.“suspend”をトリガする。装置は、TDOの中止を示すトリガを(現在選択された1次仮想チャネルで)受信する。
4.“kill”をトリガする。装置は、TDOの終了を示すトリガを(現在選択された1次仮想チャネルで)受信する。
図4は、トリガ構文の一実施例を示す図である。
活性化メッセージ及び時間ベースメッセージは双方とも、ある送信環境で一般的な“トリガ”フォーマットを有してもよい。
ここで、構文上の定義は、代替(alternative)を指定するために垂直バーシンボル“|”が使われる場合以外は、拡張バッカスナウア記法(Augmented Backus−Naur Form、ABNF)の文法を用いて記述する。規則は等号“=”によって定義と分離され、1行を超えて規則定義を続けるときは字下げを用い、リテラルは“”で引用し、要素のグループ化には括弧“(”及び“)”を用い、選択的な要素は“[”と“]”との間に入れる。そして、要素の前に<n>*がつくと、その次の要素のn回以上の反復を指定でき、nはデフォルト値として0に設定される。そして、要素の前に<n>*<m>がつくと、その次にくる要素のn回以上m回以下の反復を指定することができる。
このようなトリガ構文は、<scheme>と“://”部分を除いて、付加的な制限事項と共にURIの一般構文(Generic Syntax)に基づく。
トリガは、locator_part及び項(terms)で構成することができる。termsは、省略可能な構成である。termsが存在するときは、locator_partとtermsとを‘?’で連結することができる。
locator_partは、hostname部分とpath_segments部分とで構成することができ、その間は‘/’で連結することができる。
hostnameは、domainlabelとtoplabelとで構成することができ、domainlabelはその次に‘.’と共に0回以上反復され得る。すなわち、hostnameは、反復されたdomainlabelがtoplabelと連結した形態であってもよく、又は、toplabelだけで構成された形態であってもよい。
domainlabelは、一つのalphanumからなる形態であってもよい。又は、二つのalphanumの間にalphanum又は‘−’が0回以上反復されたものが挿入された形態であってもよい。
alphanumは、alpha又はdigitを意味することができる。
alphaは、lowalpha又はupalphaのいずれかであってもよい。
lowalphaは、a、b、c、d、e、f、g、h、i、j、k、l、m、n、o、p、q、r、s、t、u、v、w、x、y、zのいずれか一つであってもよい。
upalphaは、A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q、R、S、T、U、V、W、X、Y、Zのいずれか一つであってもよい。
digitは、0、1、2、3、4、5、6、7、8、9のいずれか一つであってもよい。
toplabelは、一つのalphaからなる形態であってもよい。又は、alphaとalphanumとの間にalphanum又は‘−’が0回以上反復されたものが挿入された形態であってもよい。
path_segmentsは、セグメントが一つがあり、その次にセグメントが0回以上反復されたものが続く形態であってもよい。このとき、セグメントの間は‘/’で連結することができる。
セグメントは、alphanumが1回以上反復された形態であってもよい。
termsは、event_time又はmedia_timeのいずれかからなる形態であってもよい。続いてspread又はothersが来てもよい。spreadとothersは省略可能な構成であってもよい。spread及びothersが存在すると、これは‘&’を前に置いている形態であって、event_time又はmedia_timeの次に位置することができる。
spreadは、‘s=’の次にdigitが1回以上反復されたものが続く形態であってもよい。
event_timeは、‘e=’の次にdigitが1回以上反復されたものが続く形態であってもよい。又は、その後、‘&t=’の次にhexdigitが1回以上7回以下反復されたものが続く形態であってもよい。‘&t=’とその次の部分は省略可能な構成であってもよい。
hexdigitは、0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、fのいずれか一つであってもよい。
media_timeは、‘m=’の次にhexdigitが1回以上7回未満反復されたものが続く形態であってもよい。
othersは、一つのotherからなる形態であってもよい。又は、その次に‘&’とotherが追加された形態であってもよい。
otherは、resv_cmdとalphanumとが1回以上反復されたものとが‘=’によって連結された形態であってもよい。
resv_cmdは、‘c’、‘e’、‘E’、‘m’、‘M’、‘s’、‘S’、‘t’、‘T’を除くalphanumであってもよい。
トリガの長さは52バイトを超えてはならない。そして、トリガのhostname部分は、登録されたインターネットドメイン名であってもよい。
トリガは、三つの部分からなることがわかる。
<domain name part>/<directory path>[?<parameters>]
<domain name part>は、登録されたドメイン名であり、<directory path>は、ドメイン名がURIにおいて出現するようになるパスであってもよい。
<domain name part>は、登録されたインターネットドメイン名を参照することができる。<directory path>は、識別されたドメイン名に対する権限を持つエンティティの制御及び管理下でディレクトリパスを識別する任意の文字列であってもよい。
TDOモデルにおいて、<domain name part>と<directory path>との組合せは、連携するコンテンツに対話性を追加するために受信機によって処理され得るTPTを一意に識別することができる。
<domain name part>と<directory path>との組合せは、現在セグメントに対するTPTが得られるインターネット位置のURLであってもよい。
すなわち、トリガは、<domain name part>及び<directory path>を用いてTPTを識別することができ、これによってトリガの適用されるTPTがわかる。当該triggerがTPTに適用されてどのような役割を果たすかは、<parameters>部分による。
以下、<parameters>部分について説明する。
<parameters>は、“event_time”、“media_time”、又は“spread”の一つ以上で構成することができる。
次は、図4に示した構文において“event_time”、“media_time”、“spread”に関する部分である。
event_time ="e="1*digit["&t="1*7hexdigit]
media_time ="m="1*7hexdigit
spread ="s="1*digit
“event_time”項は、対象とされたイベント(“e=”項)と当該イベントが活性化されるべき時間(“t=”項)を識別するために活性化トリガにおいて用いることができる。“t=”項がないときは、トリガが到達する時間にイベントが活性化されなければならないことを意味する。
すなわち、対話型イベントID項である“e=”は、当該イベントの対象であるTDOの連携するTPT内のappID、当該特定イベントのeventide、及びこのイベント活性化のために用いられるデータ要素のdataIDを参照することができる。
選択的なタイミング値項である“t=”は、指定されたイベントのための新しいメディアタイミングを示すことができる。“t=”部分が存在しないときは、指定されたイベントのためのタイミングがトリガの到達時刻であることを意味することができる。
“media_time”項(“m=”項)は、時間ベーストリガによって示される時間ベースに対する現在時刻を識別するために時間ベーストリガにおいて用いることができる。そして、現在表れているコンテンツを識別できるコンテンツ識別子情報(“c=”項)がmedia_timeに更に含まれてもよい。“c=”項については、直接実行モデルに関する説明で後述する。
すなわち、“m=”は、その次に16進数を表示する1乃至8文字長の文字列が続くメディア時間スタンプ項であって、現在のメディア時間を示すことができる。
“spread”項は、サーバ上で作業負荷が分散するように、時間ベーストリガに応答してなされる動作(サーバからのTPTの検索のような動作)又は活性化トリガに応答してなされる動作(TDOをサーバに接続させるような動作)が、ランダムな時間だけ遅延されなければならないということを示すために用いることができる。
“s=”項は、すべての受信機がトリガで識別されたインターネットサーバに接続を試みるべき秒単位の時間数を示すことができる。それぞれの個別受信機が、指定された区間内でランダムな時間を導出して、該当する量だけ接続要求を遅延させることによって、受信機においてトリガが初めて現れるときに発生し得る需要の最大値を時間上で分散させると考えることができる。
<media time>パラメータを含むトリガは、イベント時刻に対する時間ベースを設定するために用いられるため、時間ベーストリガと呼ぶこともできる。
<event time>パラメータを含むトリガは、イベントに対する活性化時刻を設定するため、活性化トリガと呼ぶこともできる。
図5及び図6は、TDOパラメータテーブルの一実施例を示す図である。
TDOパラメータテーブル(TPT)は、一つのセグメントのTDO及びそれらの対象であるイベントに関するメタデータを含む。
以下、テーブルに含まれる各フィールドについて説明する。各フィールドの大きさとテーブルに含み得るフィールドの種類は設計者の意図によって追加又は変更してもよい。
TPT構造内のフィールドの具体的な意味(semantics)は次のとおりである。
TDOパラメータテーブル(TPT)は、@majorProtocolVersion、@minorProtocolVersion、@id、@tptVersion、@expireDate、@updatingTime、@serviceID、@baseURL属性、Capabilities、ライブトリガ(LiveTrigger)、及び/又はTDO要素を含むことができる。
TPTは、当該TPTのルート要素である。一つのTPT要素は、一つの番組セグメントの(時間上での)全体又は一部分を記述する。
4ビット属性であってもよい@MajorProtocolVersionは、テーブル定義のメジャーバージョン番号を示すことができる。メジャーバージョン番号は1に設定することができる。受信機は、それらがサポートしないメジャーバージョン値を示すTPTのインスタンスを捨てると考えることができる。
4ビット属性であってもよい@MinorProtocolVersionが存在する場合、テーブル定義のマイナバージョン番号を示すことができる。存在しない場合、そのデフォルト値は0であってよい。マイナバージョン番号は0に設定することができる。受信機は、それらがサポートするように備えられていないマイナバージョン番号値を示すTPTのインスタンスを捨てないと予想される。この場合、受信機はそれらがサポートしない個別要素又は属性を無視すると予想される。
URIである@idは、このTPT要素に関係する対話型プログラミングセグメントを固有に識別することができる。@idは、セグメントの識別子の役割を持つ。したがって、受信機がTPTをパースした後、@id情報を用いて、一つのセグメントに関係するトリガ、AMTなどを、該セグメントを識別するための@idを有するTPTと照合することができる。したがって、該トリガとAMTが適用されるセグメントを探すことが可能になる。AMTに関する詳細な内容は後述する。
8ビット整数であってもよい@tptVersionは、id属性によって識別されるTPT要素のバージョン番号を示すことができる。tptVersionは、TPTが変更されるごとに増加(increment)してもよい。
TPT要素の@expireDate属性は、存在する場合、当該TPTインスタンスに含まれた情報の満了日及び時刻を示すことができる。受信機がTPTをキャッシュに記憶したときは、満了日まで再使用することができる。
16ビット要素であってもよい@updatingTimeは、存在する場合、TPTが修正されることを示すことができ、TPTを再びダウンロードするための秒単位の推薦区間を提供する。
16ビット要素であってもよい@serviceIDは、存在する場合、このTPTインスタンスで記述された対話型サービスと連携するNRTservice_idを示すことができる。これは、この対話型サービスのためのファイルが放送ストリームで配信されるとき、受信機がサービスマップテーブルからFLUTEパラメータを得るために必要である。
@baseURL属性は、存在する場合、当該TPTで出現する任意の相対URLの前につくと、基礎URLを提供することができる。この属性は、ファイルの絶対URLを提供することができる。
Capabilities要素は、存在する場合、当該TPTと連携する対話型サービスの意味ある提示のために必須である能力を示すことができる。要求される能力のうち一つ以上を持たない受信機はサービスの提示を試みないと予想される。
LiveTriggerは、インターネットを介した活性化トリガの配信が利用可能な場合にだけ存在する。存在する場合、活性化トリガを得るために受信機において必要とする情報を提供することができる。LiveTriggerの子要素及び属性については後述する。
TPT要素の子要素であるTDOは、当該TPTインスタンスによって記述されたセグメントの間に対話型サービスの一部を提供するアプリケーション(例えば、TDO)を示すことができる。TDOの子要素及び属性については後述する。
LiveTrigger要素は、@URL及び@pollPeriod属性を含むことができる。
上述したとおり、LiveTrigger要素は、インターネットを介した活性化トリガの配信が利用可能な場合にだけ存在する。存在する場合、活性化トリガを得るために受信機において必要とする情報を提供することができる。
LiveTrigger要素の属性である@URLは、インターネットを介して活性化トリガを配信し得るサーバのURLを示すことができる。活性化トリガは、対話型サービスプロバイダの選択によって、HTTPショートポーリング、HTTPロングポーリング、又はHTTPストリーミングを用いてインターネットを介して配信することができる。
LiveTrigger要素の属性である@pollPeriodは、存在する場合、活性化トリガの配信のためにショートポーリングが使用中であることを示すことができ、pollPeriod属性値は、受信機がポーリング周期として用いる秒単位の推薦時間を示すことができる。
LiveTrigger要素が存在する場合、受信機は、当該TPTをパースして、インターネットを用いて活性化トリガを配信するための情報を得ることができる。@URL情報から、活性化トリガを配信してもらえるサーバのURLを得ることができる。@pollPeriod情報から、又は@pollPeriod属性が存在しないという情報から、活性化トリガがインターネットを介して配信される方式及びポーリング周期に関する情報を得ることができる。@pollPeriodの詳細な説明は後述する。
TDO要素は、@appID、@appType、@appName、@globalID、@appVersion、@cookieSpace、@frequencyOfUse、@expireDate、@testTDO、@availInternet、@availBroadcast属性と、URL、Capabilities、Contentitem、及び/又はEvent要素を含むことができる。
上述したとおり、TPT要素の子要素であるTDOは、当該TPTインスタンスによって記述されたセグメントの間に対話型サービスの一部を提供するアプリケーション(例えば、TDO)を示すことができる。
16ビット整数であってもよい@appIDは、TPT範囲内でアプリケーションを一意に識別することができる。活性化トリガはappIDを参照してトリガに対する対象アプリケーションを識別することができる。@appIDの場合、アプリケーションの識別子である。一つのTPTには複数のアプリケーション(TDOのようなアプリケーション)があってもよい。したがって、TPTをパースした後に@appID情報を用いてアプリケーションを識別することができる。あるアプリケーションに適用されるトリガ又はAMTなどを、そのアプリケーションを識別する@appIDを有するアプリケーションと照合することができる。したがって、トリガ及びAMTの適用されるアプリケーションを探すことが可能になる。AMTに関する詳細な内容は後述する。
8ビット整数であってもよい@appTypeは、アプリケーションフォーマット類型を示すことができる。デフォルト値は1に設定することができ、この値はTDOを示すことができる。他の値は他のフォーマットを示すことができる。
TDO要素の属性である@appNameは、アプリケーションを開始するために視聴者の許可を求めるとき、視聴者に表示し得る人間にとって読み取り可能な名前であってもよい。
TDO要素の属性である@globalIDは、アプリケーションの大域的に一意な(globally unique)識別子であってもよい。多くの場合に、受信機は近いうちに再び用いるアプリをキャッシュに記憶する。このことが有用となるには、受信機は当該アプリが将来に出現したときそれを認識できなければならない。当該アプリが新しいセグメントで再び出現したとき、受信機がそれを認識できるようにするためにglobalIDが必要である。
TDO要素の属性である@appVersionは、アプリケーションのバージョン番号であってもよい。appVersion値は、当該アプリケーション(globalIDによって識別されたアプリケーション)が変更されるごとに増加してもよい。appVersion属性は、globalID属性が存在しない限り存在することができない。
8ビット整数であってもよい@cookieSpaceは、各呼出し(invocation)間に永続データ(persistent data)を記憶するためにアプリケーションがどれくらい多くの空間を必要とするかを示すことができる。
4ビット整数であってもよい@frequencyOfUseは、受信機にそのアプリケーションコードキャッシュ空間の管理に関する案内を提供するために概略的にどれくらい頻繁に当該アプリケーションが放送で使われるかを示すことができる。‘@frequencyOfUse’の詳細な説明は後述する。
TDO要素の属性である@expireDateは、受信機が当該アプリケーション及び関係する資源を安全に削除できる日付及び時刻を示すことができる。
ブールの(Boolean)属性である@testTDOは、その値が“true”として存在する場合、当該アプリケーションがテスト用であり、一般受信機においては無視してもよいことを示すことができる。
@availInternet属性に対する“true”値は、当該アプリケーションがインターネットを介したダウンロード用に利用可能であることを示すことができる。その値が“false”のとき、当該アプリケーションがインターネットを介したダウンロード用に利用可能でないことを示すことができる。属性が存在しない場合、デフォルト値は“true”であってもよい。
@availBroadcast属性に対する“true”値は、当該アプリケーションが放送からの抽出に利用可能であることを示すことができる。“false”値は、当該アプリケーションが放送からの抽出に利用可能でないことを示すことができる。属性が存在しない場合、デフォルト値は“true”であってもよい。
TDO要素の子要素であるURLの各インスタンスは、当該アプリケーションの一部であるファイルを識別することができる。インスタンスURL要素は@entry属性を含むことができる。URL要素の属性である@entryは“true”値を有すると、当該URLが当該アプリケーションのエントリポイント、すなわち、当該アプリケーションを開始するために開始され得るファイルであることを示すことができる。“false”値を有すると、当該URLが当該アプリケーションのエントリポイントでないことを示すことができる。当該属性が出現しないとき、デフォルト値は“false”であってもよい。TDO要素の子要素であるURL要素は、上述したとおり、当該アプリケーションをなすファイルを識別する。受信端ではTPTをパースして当該URL情報を得た後、それを用いてサーバに接続して、当該URL情報が示すアプリケーションをダウンロードすることとなる。
TDO要素の子要素であるCapabilitiesは、存在する場合、当該アプリケーションの意味ある提示のために必須である能力を示すことができる。要求される能力のうち一つ以上を持たない受信機は当該アプリケーションの開始を試みないと予想される。
TDO要素の子要素であるContentItemは、当該アプリケーションで必要とする一つ以上のデータファイルで構成されたコンテンツアイテムを示すことができる。ContentItem要素は、この要素の属しているTDO要素が示すアプリケーションが必要とするデータファイルに関する情報を有する。受信端ではパースを行った後、ContentItem要素が存在する場合、ContentItem内のURL情報などを用いて、当該アプリケーションが必要とするデータファイルをダウンロードすることができる。ContentItemの子要素及び属性については後述する。
TDO要素の子要素であるEventは、当該アプリケーションのためのイベントを示すことができる。Event要素は、この要素の属しているアプリケーションのイベントを示す。いかなるイベントを有しているか、該当データにはどのようなものがあるか、該当動作にはどのようなものがあるか等に関する情報を含んでいる。これをパースして受信端ではアプリケーションのイベントに関する情報を得ることができる。Eventの子要素及び属性については後述する。
受信端でTPTを受けてパースすると、TDO及び上述したTDOの子要素及び属性の情報を得ることができる。
TDO要素の子要素の一つである、contentItem要素は、@updateAvail、@pollPeriod、@size、@availInternet、@availBroadcastattribute及び/又はURL要素を含むことができる。
ここで、URL要素は@entry属性を含むことができる。ContentItem要素の子要素であるURLの各インスタンスは、コンテンツアイテムの一部であるファイルを識別することができる。URL要素は@entry属性を含むことができる。URL要素の属性である@entryは、“true”値を有するとき、該当URLが当該コンテンツアイテムのエントリポイント、すなわち、当該コンテンツアイテムを開始するために開始され得るファイルであることを示すことができる。“false”値を有するときは、当該URLが当該コンテンツアイテムのエントリポイントでないことを示すことができる。当該属性が出現しないとき、デフォルト値は“false”であってもよい。受信機は、パース後にContentItemのURL情報を用いて当該アプリケーションの要求されるデータファイルをダウンロードすることができる。この過程で、上述した他の属性のような情報を用いることができる。
ContentItem要素のブール属性である@updatesAvailは、当該コンテンツアイテムがたまに更新されるか否か、すなわち、コンテンツアイテムが静的ファイル(static file)で構成されるか、それとも、当該アイテムが実時間データ供給(feed)であるかを示すことができる。その値が“true”のとき、当該コンテンツアイテムは時々更新され、その値が“false”のとき、当該コンテンツアイテムは更新されない。この属性が出現しないと、デフォルト値は“false”であってもよい。
ContentItem要素の属性である@pollPeriodは、updatesAvail属性の値が“true”の場合にだけ存在することができる。@pollPeriodが存在する場合、活性化トリガを配信するためにショートポーリングが用いられていることを示すことができ、@pollPeriod属性の値は、受信機がポーリング周期として使用するための秒単位の推薦時間を示すことができる。
ContentItem要素の属性である@Sizeは、当該コンテンツアイテムの大きさを示すことができる。
@availInternet属性は、その値が“true”のとき、当該コンテンツアイテムがインターネットを介したダウンロードに利用可能であることを示すことができる。その値が“false”のとき、当該コンテンツアイテムがインターネットを介したダウンロードに利用可能でないことを示すことができる。この属性が存在しない場合、デフォルト値は“true”であってもよい。”
@availBroadcast属性は、その値が“true”のとき、当該コンテンツアイテムが放送からの抽出に利用可能であることを示すことができる。“false”値は、当該コンテンツアイテムが放送からの抽出に利用可能でないことを示すことができる。属性が存在しない場合、デフォルト値は“true”であってもよい。
Event要素は、このEvent要素の属するTDO要素によって示されたアプリケーションのイベントに関する情報を含む。受信機は、当該イベントに関する情報を得るためにこのEvent要素をパースすることができる。
TDO要素の子要素の一つである、Event要素は、@eventID、@action、@destination、@diffusion属性、及び/又はData要素を含むことができる。ここでData要素は@dataID属性を含むことができる。
上記Event要素の16ビット整数属性であってもよい@eventIDは、これを含むTDO要素の範囲内で当該イベントを固有に識別することができる。活性化トリガ(又は、AMT内の活性化要素)は、appIDとeventIDとの組合せによって当該トリガに対するターゲットアプリケーション及びイベントを識別することができる。イベントが活性化されると、受信機は、このイベントを当該アプリケーションに渡す。@eventIDは、イベントの識別子の役割を持つ。@eventID情報を用いて、当該イベントを活性化させるためのトリガ、AMTなどを、このイベントを識別するための@eventIDを有するアプリケーションと照合することができる。すなわち、活性化トリガ(又は、AMT内の活性化要素)は、appIDとeventIDとの組合せによって当該トリガに対するターゲットアプリケーション及びイベントを識別することができる。イベントが活性化されると、受信機は、このイベントを当該アプリケーションに渡す。AMTの詳細は後述する。
Event要素の属性である@actionは、当該イベントが活性化されるときに適用される動作の類型を示すことができる。許容される値は、“prep”、“exec”、“susp”及び“kill”であってもよい。
“prep”は、“Trig prep”動作に対応できる。対象となったアプリケーションの状態が“Released”のとき、この動作は“Ready”への状態変更を起こすことができる。
“exec”は、“Trig exec”動作に対応できる。このトリガを受信したとき、対象となったアプリケーションの状態は“Active”になり得る。
“susp”は、“Trig susp”動作に対応できる。このトリガを受信したとき、対象となったアプリケーションの状態が“Active”である場合、“Suspended”に変更可能であり、そうでない場合は変更されない。
“kill”は、“Trig kill”動作に対応できる。このトリガを受信したとき、対象となったアプリケーションの状態は“Released”になり得る。
@actionは、当該イベントが活性化されるときに適用される動作の類型を示すことができる。
Event要素の属性である@destinationは、当該イベントの対象装置を示すことができる。@destinationに関する詳細な内容は後述する。
Event要素の8ビット整数属性であってもよい@diffusionは、存在する場合、秒単位の時間周期Tを示すことができる。この拡散パラメータの目的は、サーバ負荷の最大値を均一にすることである。受信機は0〜Tの範囲で10ミリ秒単位でランダム時間を算出し、TPTでURLによって参照されたコンテンツを検索するためにインターネットサーバに接続する前にこの時間量だけ遅延されると予想できる。
Event要素の子要素であるDataは、存在する場合、当該イベントに関係するデータを提供することができる。Eventの別個の活性化は、それらと連携する異なるData要素を有してもよい。ここで、Data要素は@dataID属性を含むことができる。16ビット整数属性である@dataIDは、これを含むEvent要素の範囲内でData要素を一意に識別することができる。イベントの活性化がこれと連携するデータを持つ場合、活性化トリガは、AppID、EventID及びDataIDの組合せによって該当Data要素を識別することができる。Data要素は、当該イベントに用いられるデータを示す。一つのイベント要素は複数のデータ要素を有してもよい。データ要素の@dataID属性を用いてデータの識別をする。受信端では該当データに関係するイベントが活性化された場合、活性化トリガ(又は、AMT内活性化要素)は、AppID、EventID、及びDataIDの組合せによってData要素を識別することができる。AMTに関する詳細な内容は後述する。
図7は、‘Frequency of Use’属性値の意味の一実施例を示す図である。
“意味”列は、当該アプリケーションを含むセグメントの発生頻度を示す。(もちろん、一つのセグメント内で一つの属性が複数回出現可能である。)frequencyOfUse属性は、globalIDが存在しなければ存在することができない。アプリがキャッシュに記憶されて後で用いられるとすき、受信機は、該当アプリが後で再び出現すると、同一のアプリとして認識しなければならない。そのためにglobalId属性が必要である。
図8は、‘destination’属性値の意味の一実施例を示す図である。
図8に示すように、目的地属性の値が0のときに予約され、1のときに主装置だけを意味し、2のときに一つ以上の補助装置だけを意味し、3のときに主装置及び/又は一つ以上の補助装置を意味することができる。
図9、図10、図11、図12、図13は、TDOパラメータテーブルの2進形態の構文の一実施例を示す図である。
これは、上述したTPT構造の2進フォーマットである。この構造は、NRTでTPTを送信する場合に必要なフォーマットであって、TPTのXML構造をNRTで送信するのに適するように作成しておいたものである。
TPTのXMLバージョンに含まれた次の要素及び/又は属性、すなわち、@protocolVersion(major/minor)、@serviceID及び@tptVersionは、2進テーブルを配信するためのカプセル化ヘッダ(encapsulation header)によって放送ストリームで提供できるため、2進バージョンから省略することができる。
フィールドの意味は、次のとおりである。図9、図10、図11、図12、図13の順に続くTDOパラメータテーブルの2進フォーマットにおいて、上から下に出現する順に記述した。
1ビットフィールドであってもよいexpire_date_includedは、expire_datefieldが含まれるか否かを示すことができる。その値が‘1’のとき、当該フィールドが含まれることを意味し、その値が‘0’のとき、含まれないことを意味してもよい。
5ビットフィールドであってもよいsegment_id_lengthは、segment_idのバイト長を示すことができる。
可変長フィールドであるsegment_idは、セグメントIDのバイトを含むことができるが、これは、TPTXMLフォーマットの“id”属性と同じ意味を有してもよい。
8ビットフィールドであってもよいbase_URL_lengthは、base_URLフィールドのバイト長を示すことができる。
可変長フィールドであるbase_URLはベースURLのバイトを含むことができるが、これは、TPTXMLフォーマットのbaseURL属性と同じ意味を有してもよい。
32ビットフィールドであってもよいexpire_dateは、当該TPTインスタンスに含まれた情報の満了日及び時刻を示すことができる。受信機がTPTをキャッシュに記憶すると、満了日まで再使用することができる。符号無し整数は、1980年1月6日00:00:00 UTC以後、GPS秒の値からGPS−UTC_offsetを引いたものと解釈することができる。GPS UTCオフセットは、GPSとUTC時刻標準との間の現在の全体秒単位オフセットを定義する8ビット符号無し整数であってもよい。
8ビットフィールドであってもよいtrigger_server_URL_lengthは、trigger_server_URLフィールドのバイト長を示すことができる。このフィールドの値が0のとき、個々の活性化トリガのインターネット配信が利用可能でないことを示すことができる。
trigger_server_URL_lengthフィールドが0でなければ、trigger_server_URLは、Trigger Server URLのバイトを含むことができ、これはTPTXMLフォーマットのLiveTrigger要素のURL属性と同じ意味を有してもよい。
1ビットフィールドであってもよいtrigger_delivery_typeは、インターネットを介した個別活性化トリガの配信モードを示すことができる、‘0’値を有するときは、HTTPショートポーリングが使用中であることを示すことができ、‘1’値を有するときは、HTTPロングポーリング又はHTTPストリーミングが使用中であることを示すことができる。
8ビット整数であってもよいpoll_periodは、HTTPショートポーリングが使用中であるとき、ポーリング間の推奨される秒の数を示すことができる。
8ビットフィールドであってもよいnum_apps_in_tableは、当該TPTインスタンスで記述されたアプリケーション(TDO)の数を示すことができる。
16ビットフィールドであってもよいapp_idは、当該アプリケーション(num_apps_in_tableループの反復で記述されるアプリケーション)に対する識別子を含むことができる。これは、当該TPTインスタンス内で固有であってもよい。
1ビットフィールドであってもよいapp_type_includedは、app_typeフィールドが当該アプリケーションに対して含まれるか否かを示すことができる。その値が‘1’のとき、当該フィールドが含まれることを意味し、その値が‘0’のとき、含まれないことを意味する。
1ビットフィールドであってもよいapp_name_includedは、app_nameフィールドが当該アプリケーションに対して含まれるか否かを示すことができる。その値が‘1’のとき、当該フィールドが含まれることを意味し、その値が‘0’のとき、含まれないことを意味する。
1ビットフィールドであってもよいglobal_id_includedは、global_idフィールドが当該アプリケーションに対して含まれるか否かを示すことができる。その値が‘1’のとき、当該フィールドが含まれることを意味し、その値が‘0’のとき、含まれないことを意味する。
1ビットフィールドであってもよいapp_version_includedは、app_versionフィールドがこのアプリケーションに対して含まれるか否かを示すことができる。その値が‘1’のとき、当該フィールドが含まれることを意味し、その値が‘0’のとき、含まれないことを意味する。
1ビットフィールドであってもよいcookie_space_includedは、cookie_spaceフィールドがこのアプリケーションに対して含まれるか否かを示すことができる。その値が‘1’のとき、当該フィールドが含まれることを意味し、その値が‘0’のとき、含まれないことを意味する。
1ビットフィールドであってもよいfrequency_of_use_includedは、frequency_of_useフィールドがこのアプリケーションに対して含まれるか否かを示すことができる。その値が‘1’のとき、当該フィールドが含まれることを意味し、その値が‘0’のとき、含まれないことを意味する。
1ビットフィールドであってもよいexpire_date_includedは、expire_dateフィールドがこのアプリケーションに対して含まれるか否かを示すことができる。その値が‘1’のとき、当該フィールドが含まれることを意味し、その値が‘0’のとき、含まれないことを意味する。
8ビットフィールドであってもよいapp_typeは、存在する場合、このアプリケーションのフォーマット類型を示すことができる。その値が0のとき、そのアプリケーションがTDOであることを示すことができる。このフィールドが存在しない場合、その値は0にデフォルトされる。他の値は他のフォーマットを示すことができる。
8ビットフィールドであってもよいapp_name_lengthは、存在する場合、その直後にくるapp_nameフィールドのバイト長を示すことができる。このフィールドの値が0のとき、該当アプリケーションのためのapp_nameフィールドが存在しないことを示すことができる。
可変長フィールドであるapp_nameは、TPT XMLフォーマットであるTDO要素のappName属性と同じ意味を有してもよい。
8ビットフィールドであってもよいglobal_id_lengthは、その直後にくるglobal_idフィールドのバイト長を示すことができる。このフィールド値が0のとき、当該アプリケーションのためのglobal_idフィールドが存在しないことを示すことができる。
可変長フィールドであるglobal_idは、TPT XMLフォーマットのTDO要素のglobalId属性と同じ意味を有してもよい。
8ビットフィールドであってもよいapp_versionは、TPT XMLフォーマットのTDO要素のappVersion属性と同じ意味を有する。
8ビットフィールドであってもよいcookie_spaceは、TPT XMLフォーマットのTDO要素のcookieSpace属性と同じ意味を有してもよい。
8ビットフィールドであってもよいfrequency_of_useは、存在する場合、TPT XMLフォーマットのTDO要素のfrequencyOfUse属性と同じ意味を有してもよい。
8ビットフィールドであってもよいexpire_dateは、TPT XMLフォーマットのTDO要素のexpireDate属性と同じ意味を有してもよい。
1ビットフィールドであってもよいtest_appは、当該アプリケーションが一般受信機に無視されるようになっているテストアプリケーションであるか否かを示すことができる。その値が‘1’のとき、テストアプリケーションであることを意味でき、その値が‘0’のとき、テストアプリケーションでないことを意味する。
1ビットフィールドであってもよいavailable_on_internetは、当該アプリケーションがインターネットを介して利用可能か否かを示すことができる。その値が‘1’のとき、インターネットを介して利用可能であることを意味でき、その値が‘0’のとき、インターネットを介して利用可能でないことを意味する。
1ビットフィールドであってもよいavailable_in_broadcastは、当該アプリケーションが放送を介して利用可能か否かを示すことができる。その値が‘1’のとき、放送を介して利用可能であることを意味でき、その値が‘0’のとき、放送を介して利用可能でないことを意味する。
4ビットフィールドであってもよいnumber_URLsは、当該アプリケーションを含むファイルの数を示すことができる。
8ビットフィールドであってもよいURL_lengthは、それに続くURLフィールドの長さを示すことができる。
可変長フィールドであるURLは、TPT XMLフォーマットであるTDO要素のURL属性と同じ意味を有してもよい。
8ビットフィールドであってもよいnumber_content_itemsは、このアプリケーションによる使用のためにダウンロードしなければならないコンテンツアイテムの数を示すことができる。
1ビットフィールドであってもよいupdates_availは、このコンテンツアイテムがたまに更新される否か、すなわち、コンテンツアイテムが固定ファイルの集合であるか、それとも、実時間データフィードであるかを示すことができる。その値が‘1’のとき、更新されることを示すことができ、その値が‘0’のとき、更新されないことを示すことができる。
1ビットフィールドであってもよいavail_internetは、このコンテンツアイテムを含むファイルを、インターネットを介してダウンロードできるか否かを示すことができる。その値が‘1’のとき、インターネットを介したダウンロードに利用可能であることを意味でき、その値が‘0’のとき、インターネットを介したダウンロードに利用可能でないことを意味する。
1ビットフィールドであってもよいavail_broadcastは、このコンテンツアイテムを含むファイルを、放送を介してダウンロードできるか否かを示すことができる。その値が‘1’のとき、放送を介したダウンロードに利用可能であることを意味でき、その値が‘0’のとき、放送を介したダウンロードに利用可能でないことを意味する。
1ビットフィールドであってもよいcontent_size_includedは、このアプリケーションのためにcontent_sizeフィールドが含まれるか否かを示すことができる。その値が‘1’のとき、当該フィールドが含まれることを意味でき、その値が‘0’のとき、含まれないことを意味する。
4ビットフィールドであってもよいnumber_URLsは、このコンテンツアイテムを含むファイルの数を示すことができる。
8ビットフィールドであってもよいURL_lengthは、それに続くURLフィールドの長さを示すことができる。
可変長フィールドであるURLは、TPT XMLフォーマットであるTDO要素の子要素であるContentItemのURL属性と同じ意味を有してもよい。
24ビットフィールドであってもよいcontent_sizeは、TPT XMLフォーマットであるTDO要素の子要素であるContentItemのcontentSize属性と同じ意味を有してもよい。
8ビットフィールドであってもよいnum_content_descriptorsは、その直後にくる記述子ループ内のコンテンツ記述子の数を示すことができる。
可変長フィールドであるcontent_descriptor()は、MPEG−2記述子フォーマット(タグ、長さ、データ)に従う記述子であってもよい。このフィールドは、当該コンテンツアイテムに関する付加情報を提供することができる。この記述子ループに含み得る記述子の中に、このコンテンツアイテムの意味ある提示のために必要な受信機能力を示すCapabilities記述子があってもよい。
8ビットフィールドであってもよいnumber_eventsは、このTDOに対して定義されたイベントの数を示すことができる。
16ビットフィールドであってもよいevent_idは、当該イベント(number_eventsループの反復で記述されたイベント)のための識別子を含むことができる。このフィールドは、当該アプリケーションの範囲内で唯一であってもよい。当該イベントはapp_idとevent_idとの組合せによって活性化トリガ内で参照してもよい。
5ビットフィールドであってもよいactionは、TPT XMLフォーマットであるTDO要素のEvent子要素のaction属性と同じ意味を有してもよい。
1ビットフィールドであってもよいdestination_includedは、当該イベントのためにdestinationフィールドが含まれるか否かを示すことができる。その値が‘1’のとき、このフィールドが含まれることを示すことができ、その値が‘0’のとき、含まれないことを示すことができる。
1ビットフィールドであってもよいdiffusion_includedは、当該イベントのためにdiffusionフィールドが含まれるか否かを示すことができる。その値が‘1’のとき、このフィールドが含まれることを示すことができ、その値が‘0’のとき、含まれないことを示すことができる。
1ビットフィールドであってもよいdata_includedは、当該イベントのためにdata_sizeとdata_bytesフィールドが含まれるか否かを示すことができる。その値が‘1’のとき、このフィールドらが含まれることを示すことができ、その値が‘0’のとき、含まれないことを示すことができる。
destinationフィールドの意味は、存在する場合、TPT XMLフォーマットであるTDO要素のEvent子要素のdestination属性の意味と同一であってもよい。
diffusionフィールドの意味は、存在する場合、TPT XMLフォーマットであるTDO要素のEvent子要素のdiffusion属性の意味と同一であってもよい。
data_sizeフィールドは、存在する場合、その直後にくるdata_bytesフィールドの大きさを示すことができる。
data_bytesフィールドは、存在する場合、当該イベントに関係するデータを提供することができる。当該イベントが活性化されるごとに対象アプリケーションはそのデータを読み取り、それを用いて所望の動作の実行を助けることができる。このフィールドは、生(raw)の2進値を含み得るということを除けば、その内容がTPT XMLフォーマットである該当のTDO要素の該当のEvent子要素の該当のData子要素の内容と同一であってもよく、TPT XMLフォーマットであるこのData要素はその2進値のベース64符号化を含むことができる。
8ビットフィールドであってもよいnum_app_descriptorsは、その直後にくる記述子ループ内の記述子の数を示すことができる。
可変長フィールドであるapp_descriptor()は、MPEG−2記述子フォーマット(タグ、長さ、データ)に従う記述子であってもよい。このフィールドは、当該アプリケーション(TDO)に関する付加情報を提供することができる。この記述子ループに含み得る記述子の中に、このアプリケーションの意味ある提示のために必要な受信機能力を示すCapabilities記述子があってもよい。
8ビットフィールドであってもよいnum_TPT_descriptorsは、その直後にくる記述子ループ内の記述子の数を示すことができる。
可変長フィールドであるTPT_descriptor()は、MPEG−2記述子フォーマット(タグ、長さ、データ)に従う記述子であってもよい。このフィールドは、当該TPTに関する付加情報を提供することができる。この記述子ループに含み得る記述子の中に、このTPTによって示される対話型サービスの意味ある提示のために必要な受信機能力を示すCapabilities記述子があってもよい。
図14は、活性化メッセージテーブル(Activation Messages Table、AMT)構造の一実施例を示す図である。以下、テーブルに含まれる各フィールドについて説明する。各フィールドの大きさとテーブルに含み得るフィールドの種類は、設計者の意図によって追加又は変更してもよい。
AMTは、セグメントのための活性化トリガに対応するものを含むことができる。ある環境では活性化トリガに代えてこのAMTが受信機に配信してもよい。トリガは、“live trigger”サーバによって、ACRサーバによってAMTを介して字幕ストリームで配信してもよい。
AMT構造内のフィールドの具体的な意味は、次のとおりである。
AMTは、@majorProtocolVersion、@minorProtocolVersion、@segmentId、@beginMT属性、及び/又はActivation要素を含むことができる。
AMT要素の4ビット属性であってもよい@majorProtocolVersionは、AMT定義のメジャーバージョン番号を示すことができる。メジャーバージョン番号は1に設定することができる。受信機は、それらがサポートするように備えられていないメジャーバージョン値を示すAMTのインスタンスを捨てると予想できる。
AMT要素の4ビット属性であってもよい@minorProtocolVersionは、存在する場合、AMT定義のマイナバージョン番号を示すことができる。存在しない場合、その値は0にデフォルトすることができる。マイナバージョン番号は0に設定することができる。受信機は、それらがサポートするように備えられていないマイナバージョン値を示すAMTのインスタンスを捨てないと予想できる。この場合、受信機はそれらがサポートしない個別要素又は属性を無視すると予想してもよい。
AMTの識別子である@segmentIDは、AMT内Activationが適用されるアプリケーション及びイベントを含むTPTの識別子と照合される。@segmentIdは、AMTの識別子の役割を担うことができる。したがって、受信端でAMTを受信した後にこれをパースし、@segmentId情報を用いてAMTを識別することができる。@segmentIdは、AMTがどのセグメントに適用されるべきかに関する情報を含んでおり、そのセグメントに関係するTPTが有している@idと照合されてAMTとTPTとを連結する役割を担うことができる。さらに、まず当該segmentを識別することによって、AMT内のそれぞれのActivation要素が対象とするTDO、イベントを識別するために必要な基本的な情報を提供することができる。
AMT要素の属性である@beginMTは、存在する場合、AMTインスタンスが活性化時刻を提供するセグメントのメディア時間の開始を示すことができる。@beginMTは、属しているAMTが適用されるセグメントに対してメディア時間の開始を示すことができる。これによって、Activation要素が示す活性化が発生する時間の基準を定めることができる。したがって、@beginMTがある場合、Activation要素内の@startTime属性は、@beginMTが示すメディア時間の開始に影響を受けることができる。
AMTのActivation要素の各インスタンスは、あるイベントをこのイベントと関係するあるデータと共にある時間に活性化する命令を示すことができる。Activation要素は、AMT内に複数個が存在してもよい。各Activation要素は、活性化トリガと同様の役割を担うことができる。Activation要素はいずれも、AMT内の@segmentIdが示すセグメントに適用することができる。Activation要素内の属性に、該当活性化がどのアプリケーションの、どのイベントに、いつ起きるかに関する情報などを含めることができる。Activation要素内の属性に関する詳細な説明を次に説明する。
Activation要素は、@targetTDO、@targetEvent、@targetData、@startTime、@endTimeの属性を含むことができる。
Activation要素の属性である@targetTDOは、AMTに連携するTPT内のTDO要素のappID属性と照合することによって、活性化命令に対する対象アプリケーションを識別することができる。@targetTDOは、AMT内のActivation要素がどのアプリケーションに適用されるかに関する情報を含むことができる。受信端ではAMTを受信してパースして@targetTDOを得、一致するTPT内のTDO要素内の@appIDを探して、Activation要素の適用されるアプリケーションを識別することができる。
Activation要素の属性である@targetEventは、targetTDO属性によって識別されるTDO要素に含まれたEvent要素のeventID属性と照合することによって、当該活性化命令に対する対象イベントを識別することができる。@targetEventは、AMT内のActivation要素がどのアプリケーションのどのイベントに適用されるかに関する情報を含むことができる。受信端ではAMTを受信しパースして@targetEventを得、一致するTPT内のTDO要素内の@eventIDを探して、Activation要素の適用されるイベントを識別することができる。
Activation要素の属性である@targetDataは、targetTDOとtargetEvent属性によって識別されるEvent要素に含まれたData要素のdataIDと照合することによって、活性化命令が適用されるときに対象イベントと連携されるデータを識別することができる。@targetDataは、活性化命令が適用されるとき、ターゲットとなったイベントに関係するデータを識別することができる。受信端ではAMTを受信しパースして@targetDataを得、TPT内の該当Event要素内の@dataIDを探すことができる。
イベント要素の属性である@startTimeは、メディア時間に対するイベントの有効期間の開始を示すことができる。受信機は、メディア時間がstartTime内の値に到達するとき、又はその後のできるだけ近いうちに当該命令を実行すると予想できる。@startTimeは、当該イベントが起きる開始時刻を示すことができる。この開始時刻はメディア時間を基準とする。受信端ではAMTをパースして@startTime情報を得、これを用いてイベントの起きる時間が把握できる。受信端では、@segmentIdによって識別されたセグメントのメディア時間を基準にメディア時間が開始時刻(start Time)に達すると、イベントを活性化させることができる。万一、既に開始時刻が過ぎた場合は、できるだけ早くイベントを活性化させることができる。
イベント要素の属性である@endTimeは、存在する場合、メディア時間に対する当該イベントのための有効期間の終わりを示すことができる。受信機は、メディア時間がendTimeの値を経過すると当該命令を実行しないと予想できる。@endTimeは、当該イベントが終わる時間を示すことができる。メディア時間が終わる時間に達すると、受信端ではイベントを実行させなくてもよい。
AMT内Activation要素は、startTime値の昇順で出現できる。
受信機がAMT内Activationによってイベントを活性化させるとき、受信機は、各活性化をその開始時刻に適用したり、又はその後にできるだけ近いうちに適用(例えば、受信機がサービスに加入して、開始時刻以降と終了時刻以前との間におけるある時刻にAMTを受信する場合)したりすると予想できる。TPT内イベント要素の“action”属性が“exec”のとき、受信機はTriggerEventを対象アプリケーションに渡すと予想できる。TriggerEventについては、APIに関する部分で後述する。
図15は、URLリスト構造の一実施例を示す図である。
URLリストは、受信機に対して使用潜在性のあるURLを含むことができる。次のようなURLなどを含むことができる。
1.一つ又はそれ以上の未来セグメントに対するTPTのためのURL。受信機がファイルをあらかじめダウンロードできるようにする。
2.放送ストリーム内の独立型NRTサービスに関する情報が検索され得るNRT信号通知サーバのURL。受信機に放送ストリーム内のNRTサービス信号通知の配信に対する利用権限がなくてもこれらのサービスに利用可能になる。
3.仮想チャネルに対する使用報告が送信される使用報告サーバのURL。受信機に放送ストリーム内のこのURLの配信に対する利用権限がなくてもこのような報告を送信可能にする。
4.仮想チャネルに対するPDI−QテーブルのURL。受信機に放送ストリームで配信されたPDI−Qテーブルに対する利用権限がなくても視聴体験を個人化(personalization)可能にする。(PDI−Qテーブルは対話型サービスを提供するにあたり、ユーザにカスタマイズサービスを提供するための個人化に関係するテーブルである。PDI−Qテーブルを介してユーザに個人化のための質問ができる。)
そのうち、UsrUrl要素に関して、URLリストを作成し、さらに使用報告のためのサーバのURLを知らせる必要があり得る。これは、現在、受信機が視聴し消費しているコンテンツの種類及び好みのデータを活用してビジネスに活用するためであってもよい。URLリストにあるUsrUrl要素は、次のように様々に解釈可能である。
第一に、使用報告サーバである場合は、受信機はこの使用報告サーバのURLを用いて、あらかじめ定められたプロトコル(例えば、データ構造、XMLファイルなど)によって受信機の使用報告機能を果たすことができる。
第二に、受信機のウェブブラウザで実行されるTDOであってもよい。ここでは、使用報告TDOの位置を知らせ、この場合、TDOが直接、受信機のウェブブラウザのAPI(例えば、ファイルAPI、使用報告API)を用いて受信機に記憶された又は現在消費しているコンテンツの情報を収集して報告することができる。TDOは、独自でXMLHttpRequestというJavaScript(登録商標)APIを活用して収集されたデータを送信することができる。
以下、URLリストについて説明する。
URLlistは、UrlList、TptUrl、UrsUrl、及び/又はPdiUrlなどを含むことができる。これらの要素の意味は次のとおりである。
UrlList要素の要素であるTptUrlは、現在の対話型付加サービス内の未来セグメントに対するTPTのURLを含むことができる。複数のTptUrl要素が含まれた場合、放送内のセグメントの出現順に配列することができる。
UrlList要素の要素であるNrtSignalingUrlは、受信機が現在のトランスポートストリーム内のすべての仮想チャネルに対するNRT信号通知テーブルを取得し得るサーバのURLを含むことができる。
UrlList要素の要素であるUrsUrlは、受信機が現在の仮想チャネルに対する使用(視聴率調査)報告を送信し得るサーバのURLを含むことができる。
UrlList要素の要素であるPdiUrlは、現在の仮想チャネルに対するPDI−QテーブルのURLを含むことができる。
図16は、TPTを含むプライベートセクションの二進フォーマットの一実施例を示す図である。図16は、後述する配信メーカニズムにおいて放送ストリームによってTPTが配信される場合を示す。詳細な内容は後述する。
トリガ、TPTなどを配信する配信メーカニズムについて説明する。対話型サービス生成からの結果、放送ストリームでのトリガの配信、インターネットを介した時間ベーストリガの配信、インターネットを介した活性化トリガの配信(ACRシナリオ)、放送ストリームでのTPTの配信、インターネットを介したTPTの配信、TDO及びコンテンツアイテムの移動、複数セグメントの一つのセグメントへの結合(combining)などを順に説明する。
以下、対話型サービス生成からの結果について説明する。
一つのセグメントに対するサービス生成過程は、すべてのTDO及び他のコンテンツアイテムを含むフォルダ、XML formatのTPTファイル、及びXML formatのAMTファイルを生成することができる。その他の結果物も生成することができる。
次に、放送ストリーム内でのトリガの配信について説明する。
トリガは、放送ストリームで配信する場合、サービス#6のDTV字幕チャネルのURLString命令で配信することができる。
トリガの長さが26文字以下のとき、トリガはセグメント化せずに送信することができる(Type=11)。トリガの長さが27乃至52文字のとき、二つのセグメント(the first segment in a Type=00セグメントである1番目のセグメントと、Type=10セグメントである2番目のセグメント)で送信してもよい。
当該命令の与えられた任意のインスタンスで配信されたURIの類型は、インスタンス8ビットパラメータによって与えることができる。
TDOモデルを使用する対話型サービスの場合、URIデータ構造のURI類型は、0(TDOモデルのための対話型TVトリガ)に設定することができる。この配信メーカニズムは、時間ベーストリガも活性化トリガも含む。
時間ベーストリガが(字幕サービス#6の)放送ストリームで配信される場合に、“m=”項が不存在のとき、時間ベーストリガは単純に信号通知サーバのURLを配信することができる。そして、“m=”項が不存在のとき、“t=”項は活性化トリガに不存在でなければならない。
活性化トリガが(字幕サービス#6の)放送ストリームで配信される場合に、すなわち、“Trigger”フォーマットが“e=”項を有しており、“t=”項は有しているかいない場合に“t=”項が存在するときは、活性化時刻は時間ベースに対する時間スタンプであってもよい。そして、“t=”項が不存在のとき、活性化時刻はメッセージの到達時刻になってもよい。
時間ベーストリガ及び活性化トリガがCCサービス#6を介して配信される場合、放送事業者が時間ベーストリガ及び活性化トリガを扱う方法には三つの方法が可能である。この三つの方法は、‘明示的な時間ベースがないセグメントモード’、‘明示的な時間ベースがあるセグメントモード’、そして‘明示的な時間ベースがないサービスモード’である。
これらは放送内のセグメント単位で混合してもよい。
明示的な時間ベースがないセグメントモードでは、活性化メッセージが時間スタンプを含まないため、各メッセージの活性化時刻はそのメッセージの配信時刻となり、また、時間ベースメッセージが時間スタンプを含まないため、その唯一の目的はTPTファイルを配信し得る信号通知サーバのURLを提供することであり得る。このモードでは、信号通知サーバのURLを提供するための活性化メッセージ内のURLによって時間ベースメッセージが完全に省略してもよいが、この場合受信機は、最初の活性化メッセージが出現するまでTPTを検索したり、TDOのダウンロードを開始したりできなくなり、活性化メッセージに対する応答がかなり遅延することになる。
このような場合、CCサービス#6に出現し得る時間ベースメッセージは、“Trigger”フォーマットの“locator_part”を含むことができ、“spread”項も含むことができるが、“media_time”項は含まなくてもよい。そして、CCサービス#6で出現し得る活性化メッセージは、“Trigger”フォーマットの“locator_part”及び“event_time”項を含むことができ、“spread”項も含むことができるが、“イベント_time”項には“t=”部分がなくてもよい。時間ベース及び活性化メッセージの“locator_part”は現在のsegmentIdであってもよい。このURLは、インターネットを介してセグメントのためのTPTを検索するために用いてもよい。
明示的な時間ベースがあるサービスモードにおいて、時間ベースメッセージは時間ベースを定義するためにこの時間スタンプを含む。活性化メッセージは、時間ベースに対する活性化時刻を定義するために時間スタンプを含む。又は、これらのメッセージは時間スタンプを含まなくてもよく、この場合、活性化時刻はメッセージの到達時刻である。
この場合、CCサービス#6で出現し得る時間ベースメッセージは、Trigger”フォーマットの“locator_part”と“media_time”項を含むことができ、“spread”項も含んでもよく、CCサービス#6で出現し得る活性化メッセージは“Trigger”フォーマットの“locator_part”と“event_time”項を含むことができ、“spread”項も含んでもよく、このとき、“event_time”項内の“t=”部分は存在してもしなくてもよい。時間ベース及び活性化メッセージの“locator_part”は現在のsegmentIdであってもよく、該当時間ベースは該当セグメントに特定である。このURLは、インターネットを介してセグメントのためのTPTを検索するために用いられてもよい。
明示的な時間ベースがあるサービスモードにおいて、時間ベースメッセージは時間ベースを定義するためにこの時間スタンプを含み、活性化メッセージは時間スタンプを含んでもよいし、含まなくてもよい。時間ベースは特定の一セグメントに特定されるよりは、複数のセグメントにわたって延長することができる。時間ベースメッセージの“locator_part”は、時間ベースの識別子であってもよく、インターネットを介してサービスのためのTPTを検索するために使用可能なURLであってもよい。
いずれの場合であれ、CCサービス#6にトリガを挿入するトリガ挿入サーバは、AMTから作業をして、活性化メッセージをAMT内のXMSフォーマットからCCサービス#6での配信に特定されたトリガフォーマットに変えなければならない。endTime属性がないActivation要素の場合は、活性化時刻がstartTime属性と同一であり、単一トリガが挿入してもよい。startTimeとendTime要素の双方を有するActivation要素の場合は、同一の対象をもってトリガシーケンスが挿入してもよい。シーケンス内の最初のトリガは、startTime属性と同じ活性化時刻を有することができ、当該シーケンス内の最後のトリガは、endTime属性と同じ活性化時刻を有することができ、シーケンス内のトリガの活性化時刻の間には固定した期間が存在できる(例外として、シーケンス内の最後のトリガとその直前のトリガとの間の区間はより短くてもよい。)。この固定した期間の長さは設定可能である。
時間ベース及び活性化メッセージがセグメントモードであるとき、時間ベースは、セグメントに対して特定することができる。このベースは、当該セグメントの開始時に“beginMT”値で始まって、セグメントを通じて行うことができる。個々の活性化の“startTime”及び“endTime”値は、“beginMT”値に対して相対的であってもよい。時間ベース及び活性化メッセージがサービスモードにあるとき、時間ベースはセグメントにわたっていてもよく、各セグメントに対する“beginMT”値は、サービス時間ベース及び放送スケジュールを考慮して調整することができる。
次に、インターネットを介した時間ベーストリガの配信について説明する。
時間ベーストリガインターネット配信は、いわゆる自動コンテンツ認識(Automatic Content Recognition、ACR)状況で有用であり得るが、このような状況で、時間ベーストリガの受信側は字幕サービス#6に対する利用権限がない。このような状況で受信機はビデオフレームを認識し、時間ベースをこれらのフレームと同期化させるためにACRを使用しなければならない。ACR状況において時間ベースメッセージは透かし又はACRサーバから得ることができる。ACRサーバから受ける場合、時間ベースメッセージはACRサーバから応答として配信してもよい。
次に、インターネットを介した活性化トリガの配信(ACRシナリオ)について説明する。
活性化メッセージは、ショートポーリング、ロングポーリング又はストリーミングを通じて配信することができるが、これらのメッセージはいずれも受信機及びサーバに相当のオーバロードを発生させ得る。活性化メッセージは、AMTの形態で配信してもよいが、セグメントの長さに関する多い量の情報を提供し、広告飛ばし機能(ad killer)を可能にすることができる。他の方法も可能である。
活性化メッセージが活性化トリガの形態で配信される場合に、すなわち、“Trigger”formatにおいて“e=”項はあり、“t=”項はあるかない場合に、これは、HTTPショートポーリング、ロングポーリング又はストリーミングを通じて配信され得る。
インターネットを介して配信される場合、活性化メッセージは、個別的活性化トリガ配信メーカニズム若しくは一括的活性化トリガ配信メーカニズムのいずれか一方、又は双方を用いて配信することができる。
次に、個別的活性化トリガ配信について説明する。
前述したように、個別活性化トリガは、インターネットを介して配信されるとき、HTTPショートポーリング、ロングポーリング又はストリーミングを用いて配信すことができる。活性化トリガのフォーマットはDTVCCサービス#6を通じて配信されるときと同一であってもよい。
ショートポーリングの場合は、そのポーリング周期を指定しなければならない。この周期は、次の説明のように、TPTにあるpollPeriodを用いてショートポーリング動作を設定することができる。
活性化トリガのインターネット配信が利用可能な場合、TPT内LiveTrigger要素のURL属性は、活性化トリガを配信し得る活性化トリガサーバを示すことができる。LiveTrigger要素のpollPeriod属性がTPTに存在する場合、これはHTTPショートポーリングが使用中であることを示すことができ、この属性は、受信機が用いるべきポーリング周期を示すことができる。LiveTrigger要素のpollPeriod属性がTPTに存在しない場合、これは、HTTPロングポーリングとHTTPストリーミングのいずれか一方が使用中であることを示すことができる。
いずれのプロトコルが用いられるかにかかわらず、受信機は問い合わせ形式で活性化トリガサーバにHTTP要求をすると予想できる。
?mt=<media_time>
ここで、<media_time>は、視聴されているコンテンツの現在メディア時間であってもよい。
ショートポーリングが使用中である場合、活性化トリガサーバからの応答は、<media_time>で終わるpollPeriod長の期間内で発生したすべてのトリガを含むことができる。一つ以上の活性化トリガが返却される場合、これらは一つ以上の空白(whitespace)文字によって分離することができる。返却される活性化トリガがないときは、当該応答は空でもよい。
HTTPロングポーリング又はHTTPストリーミングが使用中である場合は、活性化トリガサーバは、活性化トリガが放送ストリームで配信されるメディア時間まで応答の返却を待機することができる。このとき、活性化トリガを返却することができる。
HTTPロングポーリングが使用中である場合、活性化トリガサーバは、活性化トリガを返却後にセッションを閉じることができる。受信機は更新されたメディア時間を用いて直ちに他の要求をすると予想できる。
HTTPストリーミングが使用中である場合、活性化トリガサーバは、各活性化トリガを返却した後に当該セッションを開いた状態に維持し、追加の活性化トリガを配信する時刻に到達すると、当該セッションでそれらのトリガを配信することができる。
いずれの場合においても、HTTP応答は、配信モードを知らせるために、次の形態のいずれかの形態からなるHTTP Response Headerフィールドを含むことができる。
ATSC-Delivery-Mode:ShortPolling[<poll-period>]
ATSC-Delivery-Mode:LongPolling
ATSC-Delivery-Mode:Streaming
<poll−period>パラメータは、連続するポーリングに対してポーリング間の推奨間隔を示すことができる。<poll−period>は省略してもよい。
次に、活性化トリガ一括配信について説明する。
活性化トリガがインターネットを介して一括的に配信される場合、一つのセグメントに対する活性化トリガを、当該セグメントに対するTPTをメッセージの1番目の部分とし、AMTをメッセージの2番目の部分とする複数パートMIMEメッセージの形態としてHTTPを通じて当該セグメントに対するTPTと共に配信することができる。
以下、放送ストリームでのTPT配信について説明する。
放送ストリームで配信するとき、TPTを、それらのXMLフォーマットから対応する2進NRTスタイル信号通知フォーマットに変換して、テーブルインスタンス当たり一つずつNRTスタイルプライベートセクションにカプセル化することができる。現在セグメントに対するTPTは常に存在する。一つ以上の未来セグメントにに対するTPTも存在することができる。TPTインスタンスは、そのsegment_idフィールドの値によって定義される。参考として、TDOパラメータテーブルの2進フォーマットは、上述したとおりである。ここで、NRT−スタイルプライベートセクションは、図16のtpt_section()に対応してもよい。
要するに、TPTの2進構造をNRTで送信するために、NRT送信に合うようにセクション構造を有してもよい。以下、この過程について詳しく説明する。
各TPTをブロックに分割し、それらのブロックをtable_id、protocol_versionTPT_data_versionとsequence_numberフィールドの共通値を持つセクションのtpt_bytes()フィールドに挿入することによって、各TPTをNRTスタイルプライベートセクション内にカプセル化することができる。これらのブロックは、section_numberフィールド値の昇順でセクションに挿入することができる。プライベートセクションは、TPTに関係する仮想チャネルのIPサブネットのサービス信号通知チャネル(Service Signaling Channel、SSC)で送信することができる。ここで、“Service Signaling Channel”は、ATSC−NRT標準に定義されており、特定IPアドレス及びポート番号を持つチャネルを意味する。セクション内のsequence_numberフィールドは、同一SSCで送信される別個のTPTインスタンスを区別するために用いることができる。
以下、図16のフィールドについて説明する。
プライベートセクション(tpt_section())は、table_id、protocol_version、sequence_number、TPT_data_version、current_next_indicator、section_number、last_section_number、及び/又はservice_id、tpt_bytes()情報を含むことができる。
8ビットフィールドであってもよいtable_idは、当該テーブルセクションをTDOパラメータテーブルインスタンスに属するものとして識別することができる。
protocol_versionは二つの部分に分けることができる。8ビット符号無し整数フィールドのうち上位4ビットは、当該テーブルの定義のメジャーバージョン番号と、ここに含まれて送信されるTPTインスタンスを示すことができ、下位4ビットは、マイナバージョン番号を示すことができる。メジャーバージョン番号は1に設定することができる。受信機は、それらがサポートするように備えられていないメジャーバージョン値を示すAMTのインスタンスを捨てると予想できる。マイナバージョン番号は0に設定することができる。受信機は、それらがサポートするように備えられていないマイナバージョン値を示すAMTのインスタンスを捨てないと予想できる。この場合、受信機は、それらが認識できない記述子と、それらがサポートしないフィールドとを無視すると予想できる。
sequence_numberは、8ビットフィールドであってもよい。sequence_numberは、当該TPTインスタンスの他のすべてのセクションのsequence_numberと同一であり、当該サービス信号通知チャネル内の他のTPTインスタンスのすべてのセクションのsequence_numberとは異なってよい。したがって、他のTPTインスタンスと区別する役割を担うことができる。sequence_numberフィールドは、このセクションが現れるサービス信号通知チャネルに連携するIPサブネットを示すことができる。別個のTPTインスタンスのsequence_numberフィールド値は、放送ストリームでセグメントが出現する順序を反映することができる。
TPT_data_versionは、5ビットフィールドであってもよく、当該TPTインスタンスのバージョン番号を示すことができ、ここで、TPTインスタンスは、そのsegment_idによって定義することができる。TPTバージョンをあらかじめ知ってこそ受信されたTPTセクションデータが最新バージョンのTPTであるか否かがわかるため、セクションテーブルにTPT_data_versionフィールドがあってもよい。バージョン番号は、TPTインスタンス内の任意のフィールドに変更がある場合、1 modulo 32分ずつ増加できる。
current_next_indicatorは1ビット指示子であってもよく、TPTセクションに対して常に‘1’に設定されて送信されるTPTがsegment_idによって識別されるセグメントに対して常に現在TPTであることを示すことができる。
section_numberは8ビットフィールドであってもよく、当該TPTインスタンスセクションのセクション番号を提供することができるが、TPTインスタンスはsegment_idによって識別可能である。TPTインスタンス内の最初のセクションのsection_numberは0x00であってもよい。section_numberは、TPTインスタンス内の各追加セクションと共に1ずつ増加可能である。
last_section_numberは8ビットフィールドであってもよく、最後のセクション(すなわち、section_numberが最も高いセクション)が、その一部であるTPTインスタンスの最後のセクション番号を提供することができる。
service_idは、当該テーブルインスタンスに記述されたコンテンツアイテムを提供する対話型サービスと連携するservice_idを特定することができる。
tpt_bytes()は、可変長フィールドであって、当該セクションによって部分的に送信されるTPTインスタンスブロックで構成することができる。当該テーブルインスタンスのすべてのセクションのtpt_bytes()フィールドがsection_numberフィールドの順に連結されたとき、その結果として一つの完全なTPTインスタンスが作成される。
すなわち、TPTの2進フォーマットを用いたり、XMLフォーマットを2進フォーマットに変えたりした後、NRT送信に合うようにそれを分けて、プライベートセクションのうちtpt_bytes()フィールドに入れてNRT方式で送信することができる。ここで、一つのTPTが複数のプライベートセクションに分けられるときは、それぞれのプライベートセクションは、同一のtable_id、protocol_versionTPT_data_version、sequence_number値を有してもよい。分けられたTPTブロックをsection_numberフィールド値に従う順に挿入することができる。
受信端では、受信したプライベートセクションに対してパースできる。一つのTPTに再びまとめるために、同一のtable_id、protocol_versionTPT_data_version、sequence_number値を持つプライベートセクションを用いることができる。このとき、section_numberとlast_section_number情報から得られる順序情報を用いることができる。同一のtable_id、protocol_versionTPT_data_version、sequence_number値を持つすべてのプライベートセクションのtpt_bytes()がsection_numberの順に連結されたとき、その結果として一つの完全なTPTが作成される。
インターネットを介したTPTの配信について図17を参照して詳しく説明する。
次に、TDO及びコンテンツアイテムの移動について説明する。
通信網と基地局は、TDO及びこれらのTDOによって用いられるコンテンツアイテム(ファイル)の配信のために、自体HTTPサーバを頻繁に提供しなければならない。提供がなされると、TPT内のbaseURLはサーバの位置を反映して調整してもよい。
次に、複数のセグメントを一つのセグメントへの結合について説明する。
セグメント間の境界を徹底的にあいまいにさせるために、複数のセグメントに対するTPT及びAMTを一つのTPT及びAMTに結合することができる。その段階は、次のとおりである。
1.結合されるセグメントの集合を識別する。
2.新しいsegmentIdを有する新しいTPTを生成する。
3.結合されるセグメントの中でライブ活性化を有するものがあれば、それらの活性化のすべてに対して利用権限を付与するリレーサーバを提供し、このサーバに対するパラメータを“LiveTrigger”要素に入れる。
4.必要によって各セグメントに対してbaseURLを適用して全体TDOとContentItem URLを得る(結合されるすべてのセグメントに共通するより短いbaseURLを識別し、それを、結合されたセグメントに対するbaseURLとして維持する)。
5.必要によって値を修正して衝突を除去する。
6.結合されるすべてのセグメントに対するすべての修正されたTDO要素を新しいTPTに挿入する。
7.結合されたTPTの新しいsegmentIdに対応するsegmentIdを有する新しいAMTを生成する。
8.新しいAMTに対して適切な新しい“beginMT”値を選択する。
9.appId値における変更を反映して結合されるセグメントに対するAMTファイル内のすべてのActivation要素のtargetId値を調整する。
10.新しい“beginMT”値と結合されるセグメントに対する放送スケジュールを反映して結合されるセグメントに対するAMTファイル内のすべてのActivation要素のstartTimeとendTime値を調整する。
11.修正されたすべてのActivation要素を新しいAMTに挿入する。
図17は、XML文書として符号化されたURL目録の一実施例を示す図である。
以下、インターネットを介したTPTの配信について説明する。
インターネットで配信される場合、TPTはHTTPを通じて配信することができる。時間ベースメッセージで現在セグメントに対するTPTのURLは“<domain name part>/<directory path>”であってもよい。TPTに対する要求に対する応答は、単純にTPTで構成されてもよいし、要求されたTPTは第1部分にあり、URLリストは第2部分にあってXML文書として符号化される2部構成MIMEメッセージとして構成されてもよい(要求に対する応答は常に現在セグメントに対するTPTを含む。一つ以上の未来セグメントらに対するTPTも含むことができる)。
上述した応答の第2部分としてのURLは、図17のような形態であってもよい。
図17の要素の意味について説明する。
“UrlList”は、受信機に有用なURLリストを含むことができる。
“TptUrl”は、未来セグメントに対するTPTのURLを含むことができる。複数のTptUrl要素が含まれる場合、それらは、放送におけるセグメントの登場順に配列することができる。
“NrtSignalingUrl”は、受信機が現在の放送ストリームにおけるすべての仮想チャネルに対するNRT信号通知(signaling)テーブルを取得し得るサーバのURLを含むことができる。
図18は、addTriggerEventListenerの一実施例を示す図である。
以下、DOを実行するための環境のための、ATSC JavaScript(登録商標)APIについて説明する。
放送番組に対する宣言的オブジェクト動作の同期化をサポートするために、ビデオ/放送オブジェクトに対して追加の方法がサポートしてもよい。
DTVCC又はインターネットでTPTが受信されると、TPT内にはTDOを実行するための複数のイベントがあってもよく、これらのイベントは活性化トリガによって活性化してもよい。
このイベントを処理するようにするために、リスナ(Listener)という関数をeventID別に登録しておくことができる。これによって、上述の‘追加の方法’として、リスナ関数を登録できる二つの関数、addTriggerEventListener及びremoveTriggerEventListenerがあり得る。
図18には、addTriggerEventListenerについての説明及びフォーマット、引数(argument)などが示されている。“addTriggerEventListener”関数は、eventIdごとに生成されたイベントを処理するコールバック(callback)関数(リスナ関数)を登録することができる。“addTriggerEventListener”関数は、EventListenerタイプのlistener及びNumberタイプのeventIdを引数として受け取ることができる。EventListenerタイプについては後述する。“addTriggerEventListener”関数は返却値を有しなくともよい(void)。
ここで、eventId引数は、TPTのイベント要素においてイベントIDであってもよい。ここで、listener引数は、イベントに対するリスナであってもよい。
受信機のトリガ処理モジュールでは活性化メッセージを受信したとき、直ちに“addTriggerEventListener”関数を用いてeventIdごとにリスナ関数を登録することができる。後で当該イベントに活性化が起きたときは、登録されたリスナ関数を呼び出すことができる。このとき、TriggerEventタイプのオブジェクトをリスナ関数として配信することができる。TriggerEventタイプについては後述する。
図19は、removeTriggerEventListenerの一実施例を示す図である。
図19には、removeTriggerEventListenerに対する説明及びフォーマット、引数などが示されている。
“removeTriggerEventListener”関数は、eventIdごとに生成されたイベントを処理するコールバック関数(リスナ関数)の登録を取り消すことができる。“removeTriggerEventListener”関数は、EventListenerタイプのlistener及びNumberタイプのeventIdを引数として受け取ることができる。EventListenerタイプについて後述する。“removeTriggerEventListener”関数は返却値を有しなくてもよい(void)。ここで、eventId引数は、TPTのイベント要素でイベントIDであってもよい。ここで、listener引数は、イベントに対するリスナであってもよい。
JavaScript(登録商標)プログラムでは、当該eventId別に発生し得るイベントをそれ以上受信しないことを希望し、又は“DestroyWindow”のようなプログラム終了時に、“removeTriggerEventListener”を用いて、登録されたリスナ関数を取り消すことができる。
図20は、EventListenerタイプの定義の一実施例を示す図である。
ここで、EventListenerタイプの定義は、ウェブインタフェース定義言語(Web interface definition language、Web IDL)に従う。Web IDLは、ウェブブラウザ内に実現されるように意図されたインタフェースを記述するために用いることができる。Web IDLは、ウェブプラットフォームにおける共用スクリプトオブジェクトの動作をより読みやすく明細化するための多数の機能を有するIDLの変形物である。
EventListenerタイプは、TriggerEventタイプを持つイベントを引数とすることができる。EventListenerはインタフェースであってもよい。
図21は、TriggerEventタイプの定義の一実施例を示す図である。
TriggerEventタイプは、イベントに関する情報を含むことができる。
TriggerEventタイプは、eventId、data、statusを属性として有することができる。ここで、eventIdは、TPTのイベント要素中のeventIdであってもよい。ここで、dataは、イベントの活性化のためのものであってもよい。ここで、dataは、16進法となっていてもよい。ここで、statusは、イベントの状態を意味することができる。ここで、status値が“trigger”の場合は、イベントが活性化トリガによって活性化された状態を意味する。ここで、status値が“error”の場合は、エラーが発生した状態を意味する。
TDOモデルについて説明してきた。以下、直接実行モデルについて説明する。
直接実行モデルにおいて、仮想チャネルが選択されると直ちに宣言的オブジェクト(DO)が自動で開始される。宣言的オブジェクトは、画面上の特定位置での表示の生成、世論調査実行、他の特殊DOの開始などのようにオーディオ/ビデオ番組と同期化される対話型機能の提供のための具体的な指示事項を得るために、インターネットを介してバックエンドサーバと通信することができる。
次に、直接実行モデルにおけるトリガ動作について説明する。
トリガの役割、機能、構文は、直接実行モデルだからといって大きく変わらない。
トリガの性能については、前述したとおりである。
トリガ構文については、前述したとおりである。
トリガは三つの部分で構成されると考えられる。
<domain name part>/<directory path>[?<parameters>]
直接実行モデルにおいて、<domain name part>と<directory path>との組合せによって、開始されるDOを一意に識別することができる。
<parameters>は、“event_time”、“media_time”、又は“spread”の一つ以上で構成することができる。
直接実行モデルにおいて、仮想チャネルが選択されると直ちにアプリケーションが自動で開始され得る。アプリケーションは“Synchronized Content Protocol”を通じてインターネットでバックエンドサーバと通信することができる。このサーバは、オーディオ/ビデオ番組とすべて同期化された対話型機能の提供のための具体的な指示事項を提供することができる。
直接実行モデルの場合、直ちにアプリケーションが実行されるため、時間ベーストリガが配信され次第、現在実行中のアプリケーションに情報を配信することができる。このモデルにおいて、アプリケーションはサーバに、前述した同期化のために、現在放映中のコンテンツに関する情報を配信し続ける必要がある。この必要に応じるために、時間ベーストリガには、TDOモデルとは異なる特別な情報が更に含まれてもよい。この特別な情報は、現在放映中のコンテンツに対する識別子であってもよい。
同様に、上記のコンテンツ識別子は、トリガのパラメータ部分にパラメータの形態で存在することができる。
同様に、上記のコンテンツ識別子は、トリガのmedia_timeに一つの項の形態で存在してもよい。コンテンツ識別子項は、次に文字列が続く“c=”によって指定できるcontent_idと呼ばれ、現在視聴されているコンテンツに対する識別子を示すことができる。
content_id項は、対話型サービス実行の直接実行モデルをサポートするためのものであってもよい。
上述したとおり、このモデルにおいて、content_id項を有する時間ベーストリガは、アプリケーションの開始後にこのアプリケーションに配信され、このアプリケーションは相互作用のためのコンテキストの識別のためにcontent_idをバックエンドサーバに配信することができる。その詳細な動作については後述する。
直接実行モデルにおけるトリガの配信メーカニズムは、前述したとおりである。
ただし、放送ストリームによるトリガの配信の場合において、トリガはURLString命令内でサービス#6を通じてDTV字幕チャネルに配信してもよい。そして、直接実行モデルを用いる対話型サービスは、URI_typeフィールドを2(直接実行モデルのための対話型TVトリガ)に設定してもよい。
以下、直接実行モデルの全体動作について説明する。
対話型サービスを実行する一つのモデルとして、直接実行モデルでは、仮想チャネルが選択されると直ちにアプリケーションが自動で開始されうる。アプリケーションは“同期化されたコンテンツプロトコル”を介してインターネット上でバックエンドサーバと通信することができる。このサーバは、スクリーン上の特定位置での画面の生成、世論調査の実行、他の特殊DOの開始などのようにオーディオビデオ番組と同期化された対話型特徴の提供のための具体的な指示事項を提供することができる。
上記の動作を次のように行うことができる。
まず、アプリケーションが開始されうる。その後、時間ベーストリガが受信される。時間ベーストリガは、アプリケーションが実行された後にアプリケーションに配信される。時間ベーストリガのcontent_id項には、現在見られているコンテンツに関するコンテンツ識別情報が含まれていてもよい。アプリケーションは、相互作用のためのコンテキストを識別し、現在見られているコンテンツを識別するためにcontent_idをバックエンドサーバに配信することができる。
直接実行モデルについて説明してきた。
図22は、WM技法のためのアーキテクチャの一実施例を示す図である。
他のインタフェースを介した配信について説明する。
非圧縮オーディオ及びビデオにだけ利用可能な(例えば、ケーブル又は衛星セットトップボックスから受信される)環境で対話型サービスの取得を可能にするプロトコル及びアーキテクチャが定義される。アーキテクチャ及びプロトコルは、インターネット接続を有し、放送ストリームからの非圧縮オーディオ及びビデオにだけ利用できる受信機による使用のために設計することができる。もちろん、アーキテクチャ及びプロトコルは、対話型サービスプロバイダがそれらをサポートする場合には、成功裏に用いることができる。
このアーキテクチャは、視聴されているコンテンツの識別のための二つの基本技法をサポートするように設計され、関係する対話型サービス強化データをインターネットを介して配信できるようにすることができる。二つの基本技法は、透かし(Water marking)及び指紋(Finger printing)であってもよい。
透かし、指紋技法双方とも、その目的は、どの番組が現在視聴されているかを受信機が探して、当該番組のための対話型サービスに関する付加情報を得る出発点として用いられうるURLを取得できるようにすることである。
図22は、WM技法のためのアーキテクチャの一実施例を示す図である。
WM技法のためのアーキテクチャにおいて、アーキテクチャは、放送事業者22010、透かし挿入部22011、MVPD 22020、STB 22030、受信機22040、WMクライアント22050、TPTサーバ22060及びコンテンツサーバ22070で構成することができる。
放送事業者22010は、オーディオ/ビデオストリーム及びこれと関係する対話型サービスを送出する情報源であってもよい。TV放送事業者などをその例に挙げることができる。 放送事業者22010は、放送コンテンツの制作者又は配給事業者であってもよい。放送事業者22010は、放送ストリーム、オーディオ/ビデオコンテンツ、対話型データ、放送スケジュール又はAMTなどを配信することができる。
透かし挿入部22011は、放送されるオーディオ/ビデオフレームに透かしを入れることができる。透かし挿入部22011は、放送事業者22010と統合されていてもよいし、別個のモジュールであってもよい。透かしとは、受信機に必要な一種の情報であってもよい。透かしは、URLのような情報であってもよい。透かしについての詳細は後述する。
MVPD 22020は、多チャネルビデオ番組配給事業者(Multiprogram Video Program Distributor)の略語である。MVPD 22020は、ケーブル事業者、衛星事業者又はIPTV事業者であってもよい。MVPD 22020は、放送事業者/透かし挿入部から放送ストリームを受信することができ、透かしACRシステムの場合、透かし挿入部22011によって透かしが挿入される。MVPD 22020は、たびたびオーディオ及びビデオトラック以外のすべての番組要素を除くストリームを顧客の宅内のセットトップボックス(STB)に送る。
STB 22030は一般にオーディオ及びビデオを復号(圧縮解除)し、これらを、視聴者が視聴するTV受像機に送る。STBは、非圧縮オーディオ/ビデオコンテンツを受信機22040に送ることができる。STBは、本発明の一実施例による外部の復号部であってもよい。
受信機22040は、WMクライアント22050を含むことができる。WMクライアント22050は、受信機22040の外部に位置してもよい。ここで、受信機は、透かし対応機能を有する(watermark−capable)。受信機22040の構造については後述する。
WMクライアント22050は、該当用途のAPIを用いてACRサーバ(図示せず)から活性化トリガを受け、これらをメイン受信機コードに送ることができる。一般に、WMクライアント22050は、受信機内に構成されるが、他の構成も可能である。WMクライアント22050は、非圧縮オーディオ/ビデオコンテンツから、挿入された透かしを抽出することができる。透かしはURLなどの情報であってもよい。
TPTサーバ22060は、TPTのようなアプリケーションをダウンロードできるサーバであってもよい。受信機22040は、抽出された透かしをACRサーバに送信する。透かしがデータベース(図示せず)に保存された透かしと一致したとき、受信機22040は、一つ又は複数のトリガを応答として受信することができる。受信された一つ又は複数のトリガが、上述した新しいlocator_partを有し、又は新しいバージョンのTPT又はアプリケーションパラメータテーブルが発見されたとき、受信機22040はTPTサーバ22060に新しいTPT又はアプリケーションパラメータテーブルをダウンロードすることを要求してもよい。
コンテンツサーバ22070は、対話型サービスを提供するために必要なアプリケーション及びTDOを提供することができる。新しいアプリケーション又はTDOが必要な場合、新しいアプリケーションは、TPT又はアプリケーションパラメータテーブルにあるURLを用いてダウンロードすることができる。
透かし(WM)技法において、放送事業者/透かし挿入部は、放送されるオーディオ/ビデオフレームに透かしを入れることができる。これらの透かしは、視聴者に感知されないか、又はできるだけ邪魔とならないような量の情報を受信機に送信するように設計することができる。このような透かしは、受信機が必要とする情報を直接提供してもよいし、又は受信機が必要とする情報を得るために、遠隔サーバにインターネット接続を介して送ることができるコード値だけを提供してもよい。
図23に、FP技法のアーキテクチャの一実施例が示されている。
FP技法のアーキテクチャにおいて、アーキテクチャは、放送事業者23010、MVPD 23020、STB 23030、受信機23040、FPクライアント23050、TPTサーバ23060、コンテンツサーバ23070、署名(signature)抽出器23080及びFPサーバ23090で構成することができる。
放送事業者23010は、オーディオ/ビデオストリーム及びオーディオ/ビデオストリームに関係した対話型サービスを出力する情報源であってもよい。放送事業者23010の一例としてTV放送事業者が挙げられる。放送事業者23010は、放送コンテンツ制作者や配給事業者であってもよい。放送事業者23010は、放送ストリーム、オーディオ/ビデオコンテンツ、対話型データ、放送スケジュール、又はAMTを配信することもできる。
MVPD 23020は、多チャネルビデオ番組配給事業者の略語である。MVPD 23020は、ケーブル事業者、衛星事業者又はIPTV事業者であってもよい。MVPD 23020はしばしば、オーディオ及びビデオトラック以外のすべての番組要素を除くストリームを顧客の宅内のセットトップボックス(STB)に送る。
STB 23030は一般にオーディオ及びビデオを復号(圧縮解除)し、これらを視聴者に視聴されるTV受像機に送る。STBは、非圧縮オーディオ/ビデオコンテンツを受信機23040に送ることができる。STB 23030は、本発明の一実施例による外部の復号部であってもよい。
受信機23040は、FPクライアント23050を含むことができる。FPクライアント23050は、受信機22040の外部に位置してもよい。ここで、受信機23040は、指紋に対応できる(fingerprint−capable)。受信機23040の構造については後述する。
FPクライアント23050は、当該用途のAPIを用いて、FPサーバ23090から活性化トリガを受けて、それらをメイン受信機コードに送ることができる。一般に、FPクライアント23050は受信機内に構成されるが、他の構成も可能である。FPクライアント23050は、非圧縮オーディオ/ビデオコンテンツから、指紋を抽出することができる。指紋については後述する。
TPTサーバ23060は、TPTのようなアプリケーションをダウンロードできるサーバであってもよい。受信機23040は、抽出された指紋をFPサーバ23090に送信する。指紋が署名抽出器23080の署名と一致したとき、受信機23040は、一つ又は複数のトリガを応答として受信することができる。受信された一つ又は複数のトリガが上述の新しいlocator_partを有し、又は新しいバージョンのTPT又はアプリケーションパラメータテーブルが発見されたとき、受信機23040はTPTサーバ23060に新しいTPT又はアプリケーションパラメータテーブルをダウンロードすることを要求してもよい。
コンテンツサーバ23070は、対話型サービスを提供するために必要なアプリケーション及びTDOを提供することができる。新しいアプリケーション又はTDOが必要な場合、新しいアプリケーションは、TPT又はアプリケーションパラメータテーブルにあるURLを用いてダウンロードすることができる。
署名抽出器23080は、放送事業者23010からメタデータを受信することができる。署名抽出器23080は、受信されたメタデータからフレームの署名を抽出することができる。FPサーバ23090に送信された指紋が署名抽出器23080の署名と一致すると、署名抽出器23080は、署名に関係したメタデータをFPサーバ23090に配信することができる。
FPサーバ23090は、署名抽出器23080と署名照合動作を行うことができる。FPサーバ23090は、署名を受信機23040から受信された指紋と照合することができる。署名が指紋と一致したとき、FPサーバ23090は、署名抽出器23080から署名に関係したメタデータを受信することができる。FPサーバ23090はメタデータを受信機23040に送信することができる。
指紋(FP)技法において、FPクライアント23050は、オーディオ又はビデオフレームから指紋(署名と呼ぶこともできる。)を抽出し、多重の放送事業者からの放送フレームに対する指紋データベースに対してこの指紋を検査し、受信機23040が必要とする情報を探すことができる。このような検査は、遠隔サーバに対する署名によってなされてもよく、所望の情報を有する記録を受けることができ、一部の場合は、受信機23040にダウンロードされた署名のデータベースに対して検査することによって検査がなされてもよい。ここで、遠隔サーバは、FPサーバ23090であってもよい。
透かしと指紋とは互いに区別される技術であるが、必ずしも互いに排他的なものではない。これらの両技術の組合せを用いることも考えることができる。自動コンテンツ認知(ACR)は、これらの両技術のいずれか一方を別途に指すか、又はこれらの両技術の組合せを指すために用いることができる。
受信機が放送ストリームからの非圧縮オーディオ及びビデオにだけ利用できる環境を“ACR環境”と呼ぶ。
WMの場合もFPの場合も、受信機は、トリガを含む対話型サービスコンテンツを得るための出発点としてURLを用いることができる。
WM、FPの双方の場合とも、インターネットを介して配信されたトリガの活性化タイムスタンプなどのように、当該チャネルに対して時間限界的(time critical)イベントの放送側クロックに対するタイムスタンプの形態であってもよい。
放送事業者は、一般にアンテナからTV信号を受ける受信機のために放送ストリームでの対話型サービスの直接配信をサポートでき、非圧縮オーディオ及びビデオを受ける受信機のために、前述したとおり、インターネットを介した対話型サービスの配信をサポートするものの、インターネット接続を有することができると仮定する。しかし、放送事業者は、この二つの配信メーカニズムのいずれか一方だけをサポートできる。
透かしがコード値だけを提供する場合、透かし技法のための代表的なアーキテクチャは、図22及び図23の二つのアーキテクチャの組合せのように見える。図22のように透かし挿入部が存在するが、この挿入部は、受信機が必要とする情報ではなくコードを挿入する。また、図23のFPサーバと同じ役割を担うWMサーバが存在する。受信機は、このサーバに署名ではなくコードを送り、これら受信機が必要とする情報を受信する。
対話型サービス利用について説明する。
対話型サービス利用についての説明は、直接実行モデル、ACRサーバに独立的な活性化を有するTDOモデル、ACRサーバから受信された活性化を有するTDOモデルについての説明を含む。モデルを示してはいないが、モデルは、説明に限定されず、設計者の意図によって変更されてもよい。
放送事業者選択及びACRシステムの特性によってACR環境にある受信機が対話型サービスに利用できる方法には、様々なものがある。対話型サービスモデルは、直接実行モデル又はTDOモデルであり、TDOモデルの場合、活性化及びトリガは、ACRサーバに独立して又はACRサーバによって配信することができる。
以下、直接実行モデルについて説明する。
直接実行モデルを有する対話型サービスを含む仮想チャネルのためのACR過程は、このチャネルを見ている受信機に、media_time(“m=”)項とcontent_id(“c=”)項とを含む時間ベーストリガに対応するものを提供することができる。これらのトリガは、直接実行モデルを有する対話型サービスのためのトリガと確認できる。
まず、受信機が新しいlocator_partを有するこのようなトリガを受信したとき、そのブラウザに、トリガのlocator_partが指す宣言的オブジェクト(DO)をロードすると考えることができる。一般に、DOは、あらかじめ設置されていたり、あらかじめダウンロードされてキャッシュに記憶されたりする。そうでなければ、受信機がHTTP GET要求を用いてDOをダウンロードすると考えることもできる。
その後、DOは、適宜のバックエンドサーバと連絡して、バックエンドサーバが指示する対話型サービスを提供することができる。
受信機は、ACRサーバから新しいlocator_partを有する及び/又はTDOモデルを有する対話型サービスのためのトリガとして確認されるトリガを得るまで(これらのいずれか一つの場合は、一般的にチャネルの変更を指示する)取得された初期トリガと続くトリガをDOが利用できるようにするものと考えることができる。
以下、ACRサーバに独立した活性化を有するTDOモデルについて説明する。
TDOモデルを有する対話型サービスを含むことができ、ACRサーバと独立してイベント活性化を提供する仮想チャネルのためのACR過程は、media_time(“m=”)項を含み得る時間ベーストリガに対応するものを、このチャネルを見ている受信機に提供することができる。これらのトリガは、TDOモデルを有する対話型サービスのためのトリガと確認できる。
まず、受信機が新しいlocator_partを有するこのようなトリガを受信したとき、当該トリガのlocator_partが指し得るTPTサーバで現在のTDOパラメータテーブル(TPT)を検索し、このトリガ及び続くトリガ内のメディア時間を用いて、ACR過程によって識別されうるオーディオ又はビデオフレームに対してイベント活性化のための基準時間ベースを設定すると考えることができる。
AMT(活性化メッセージテーブル)がTPTと併せて配信される場合、受信機は、トリガ内のメディア時間によって設定された時間ベースを基準に正確な時間にイベントを活性化させるためにこのテーブル内のそれぞれの活性化要素を使用すると考えることができる。(これらのイベントは、TDODMLロード及び実行、TDOが同期化される特定動作を行うようにすること、TDOを中止させること、などを含むことができる。)
TPTにLiveTrigger要素が含まれた場合、受信機はLiveTrigger要素で信号通知されたポーリング方法を用いてLiveTrigger要素内のURLによって識別されたライブトリガサーバから活性化トリガを検索し、この活性化トリガを用いて、このトリガ内のメディア時間項によって設定された時間ベースを基準に、正確な時間にイベントを活性化させることができる。
AMT及びライブトリガサーバ双方とも同一のサービスのために用いることができるが、前者は静的活性化を提供し、後者は動的活性化を提供する。これと違い、セグメントのすべての活性化が静的活性化である場合は、AMTだけを用いてもよく、ライブトリガサーバだけを用いて静的活性化及び動的活性化の双方を配信してもよい。
ACRサーバから受信された活性化を有するTDOモデルについて説明する。
TDO対話型サービスモデルのための活性化トリガが、ACR環境において、別途のトリガサーバ無しでどのように配信されるかについて記述する。
指紋ACRシステムは、ACRサーバを含むことができる。受信機は、ACRサーバにフレーム署名を送ることができ、ACRサーバは、当該署名が示すフレームを識別して、再び受信機において必要とする情報を送ることができる。透かしが、受信機において必要とする情報を得るためにACRサーバに配信され得るコードだけで構成された場合、透かしACRシステムはACRサーバを含むことができる。透かし自体が受信機において必要とする情報を含む場合、透かしACRシステムはACRサーバを含まなくてもよい。ACRサーバを含むACRシステムでは、サーバと受信機間の通信に別個の二つのモデル、すなわち、要求/応答モデル及びイベント主導型モデルを用いることができる。
放送事業者でTDO対話型モデル(TDO interaction model)をサポートしていると仮定する。
要求/応答モデルを用いるACRサーバ、イベント主導型モデルを用いるACRサーバ、情報を直接挿入する透かしACRシステムのような三つの場合を想定することができる。
ACRサーバがある場合、ACR方式は、指紋であってもよく、この場合、受信機は一種のオーディオ又はビデオフレームの署名(又は、指紋)を算出し、識別のためにそれらをACRサーバに提示する。又は、ACR方式が透かしであってもよく、この場合、受信機はオーディオ又はビデオフレームから透かし形態のコードを抽出し、これらのコードを識別のためにACRサーバに提示する。
便宜のために指紋署名の用語を説明する。ただし、システムは透かしコードの場合と同一の方式で動作し、本発明は指紋に限定されない。
図24は要求/応答ACR場合の静的活性化の一実施例を示す図である。
ACRサーバが要求/応答モデルを使用する場合について説明する。
要求/応答ACRモデルで、受信機は周期的に(例えば、5秒ごとに(これは、例示に過ぎず、設計者によって変更されてもよい))コンテンツの署名を生成し、署名を含む要求をACRサーバに送ると考えることができる。ACRサーバは、受信機から要求を受けると応答を送ることができる。要求/応答インスタンス間では通信セッションが開放状態に維持されない。このモデルでは、ACRサーバが受信機にメッセージを開始することが不可能であってもよい。
この要求/応答モデルを用い、受信機に活性化トリガを配信するACRサーバの場合、ACRサーバからの各応答は、ヌル(Null)、時間ベーストリガ又は活性化トリガのうち一つであってもよい。
ヌル応答は、署名が認識されないことを示し、又は、(ACRインジェストモジュール(ACR Ingest Module)がフレームに対する署名を対話型サービスのない番組セグメントに含める場合に)署名は関係する対話型サービスのないセグメントに属するフレームを意味することを示すことができる。ACRインジェストモジュールについては後述する。
時間ベーストリガ応答は、クライアントの次の要求がある前にイベント活性化が発生するようにスケジュールされていないことを示すことができる。クライアントは、時間ベーストリガを用いてメディア時間クロックを維持すると考えることができる。
活性化トリガ応答は、活性化がまもなく発生する予定であることを示すことができ、活性化の時間は、トリガ内の“t=”項によって示される。
受信機は、新しいlocator_partを有するトリガを受けるたびに、以前のTPTと共に配信されたURLListを用いて新しいTPTが検索されていないときは、それを直ちにダウンロードすると考えることができる。
受信機は、活性化トリガを受けるたびに、メディア時間クロックに対して当該トリガ内の“t=”項によって示された時間に、当該イベントを活性化させると考えることができる。
図24は、静的活性化に対して(ACRシステムが予定よりも十分に早く動的活性化について知っている場合は動的活性化に対して)、この方式がどのように作用するかを示している。
図24で、受信機は、ACRサーバでメディア時間MT1、MT2及びMT3を有すると判断したフレームに対する署名を配信することができる。メディア時間MT1を有するフレームの場合、受信機は、時間ベーストリガを含む応答を取得する。メディア時間MT2を有するフレームの場合、静的活性化がメディア時間MTaに予定され、受信機は“t=MTa”項を有する活性化トリガを含む応答を取得する。メディア時間MT3を有するフレームの場合、受信機は、時間ベーストリガを含む応答を取得する。
受信機が同一のイベント活性化に対して一つ以上の活性化トリガを受信する場合が発生しうる。しかし、これらのそれぞれに対するメディア時間は同一であるため、受信機はそれらの活性化トリガが重複していると把握し、これらのうち一つだけを適用することができる。
図25は、要求/応答ACRケースにおける静的活性化の一実施例を示す図である。
以下、ACRサーバが要求/応答モデルを使用する場合について説明する。
図25で、受信機は、ローカルクロック時間LC1、LC2、LC3で見られたフレームに対する署名を配信することができる。ローカルクロック時間LC1に見られたフレームに対するmedia_timeはACRサーバによってMT1であると判断でき、受信機は、media_time又はevent_timeのないトリガを含む応答を受信する。ローカルクロック時間LC2に見られたフレームに対するmedia_timeはACRサーバによってMT2であると判断でき、ACRサーバは、メディア時間MTaに静的活性化が予定されていることを知っているため、ACRサーバは、この活性化のための活性化時刻MTaがMT2以降の<オフセット>時間であることを意味する“d=<offset>”項を有する活性化トリガを含む応答を配信する。すると、受信機は<オフセット>を時間LC2に追加し、当該イベントを活性化させるべきローカル時間であるLcaを得る。
図26は、要求/応答ACRケースにおける動的活性化の一実施例を示す図である。
以下、要求/応答ACRケースにおいて、動的活性化が起きる場合について説明する。
あらかじめ受信機にトリガを送るには手遅れになるまでACRシステムがイベント活性化について知らなかった状況での動的活性化の場合には、ACRサーバが次の要求があるまで待ってから活性化トリガを送らなければならない。 このような場合を図26に示す。そのため、一つの要求区間だけ動的活性化が遅延されうる。
図26で、受信機は、ACRサーバでメディア時間MT1、MT2及びMT3を有すると判断したフレームに対する署名を配信することができる。メディア時間MT1及びMT2を有するフレームの場合、受信機は、時間ベーストリガを含む応答を取得する。活性化時刻MTaを有する動的活性化がメディア時間MTaで又は直前に現れる場合、ACRサーバは、メディア時間MT3を有するフレームに対して発生する受信機からの次の要求があるまで、受信機にそれを通知することができない。このとき、ACRサーバ応答は、活性化時刻MTa(少し過去の時間)を有する活性化トリガを含む。このような状況で、受信機は、その応答が到達すると直ちに当該活性化トリガを適用すると考えることができる。
ここで、受信機は、同一のイベント活性化に対して一つ以上の活性化トリガを受信することが可能である。しかし、それらのそれぞれのメディア時間は同一であるため、受信機はそれらが重複したと把握し、それらのうち一つだけを適用できる。
図27は、要求/応答ACRケースにおける動的活性化の一実施例を示す図である。
以下、要求/応答ACRケースにおいて、動的活性化が起きる場合について説明する。
図27で、受信機は、ローカルクロック時間LC1、LC2、LC3で見られたフレームに対する署名を配信することができる。ローカルクロック時間LC1に見られたフレームに対するmedia_timeはACRサーバによってMT1であると判断でき、受信機はmedia_time又はevent_timeのないトリガを含む応答を受信する。ローカルクロック時間LC2に見られたフレームに対するmedia_timeはACRサーバによってMT2であると判断でき、ACRサーバは、メディア時間MTaに動的活性化が発生する予定であることを知らず、受信機は、media_time又はevent_timeのないトリガを含む応答を受信する。動的活性化がメディア時間MTaに登場すると、ACRサーバは、ローカル時間LC3に発生する受信機からの次の要求があるまで、受信機にそれに対して通知することができない。このとき、ACRサーバ応答は、負の<オフセット>値を有する活性化トリガ又は“今実行”(do it now)の活性化トリガを含むことができる。
イベント主導型モデルを使用するACRサーバについて説明する。
イベント主導型ACRモデルにおいては、受信機はACRサーバに対する永久的な接続を開始し、周期的に(例えば、5秒ごとに)コンテンツの署名を生成し、署名を接続を介して提示すると考えることができる。ACRサーバは各署名に反応しない。それは、新しいセグメントが発見されたか、又はイベント活性化が受信機に配信される必要があるとき、受信機にメッセージを送ることができる。当該モデルで、ACRサーバはいつでもクライアントに対するメッセージを開始することができる。
このイベント主導型モデルを使用し、活性化を受信機に配信するACRサーバに対して、次の規則はACRサーバからのメッセージに適用することができる。
第一に、ACRサーバは、新しいセグメントに対応する受信機から署名を受信したとき、単に受信機が関係のTPTを取得できるようにするために、直ちに時間ベーストリガを受信機に送ることができる。
第二に、イベントが活性化される予定であるときはいつも、ACRサーバは活性化トリガを受信機に送ることができる。可能なときは、受信機が適用すべき時期よりもやや早く活性化トリガを送ってもよい(これは、要求/応答モデルにおける動作と略同様である)。ACRサーバは、活性化を知るのが遅く、活性化トリガを事前に早く送ることができなかったときは(これは、動的イベント活性化の場合に発生しうる)、活性化トリガを可能な限り早く送ることができる。後者の場合に、メッセージ遅延によってクライアントは活性化時期よりもやや遅れてメッセージを受信することができ、この場合、受信機はメッセージを受信次第、イベントを活性化すると考えることができる。
受信機は、新しいlocator_partを有するトリガを受信するたびに、以前のTPTと一緒に配信されるURLListを用いて既に検索していない限り、新しいTPTを直ちにダウンロードすると考えることができる。
情報を直接挿入する透かしACRシステムについて説明する。透かしACRシステムを示してはいないが、透かしACRシステムは、次の説明に限定されず、設計者によって変更されてもよい。
受信機が必要とする情報を直接挿入する透かしシステムの場合、フレームと関係する透かしは、次のように、要求/応答ACRサーバが返却するフレームに対して、前述したのと同じ規則に従うことができる。要求/応答ACRサーバは、ヌル、時間ベーストリガ、活性化トリガのうち一つを返却することができる。
ヌル応答は、署名が認識されないことを示したり、又は(ACRインジェストモジュールがフレームに対する署名を対話型サービスのない番組セグメントに含める場合)署名が関係した対話型サービスのないセグメントに属するフレームを意味することを示したりすることができる。
時間ベーストリガ応答は、クライアントの次の要求がある前にイベント活性化が発生するようにスケジュールされていないことを示すことができる。クライアントは、時間ベーストリガを用い、メディア時間クロックを維持すると考えることができる。
活性化トリガ応答は、活性化がまもなく発生する予定であることを示すことができ、活性化の時間はトリガ内の“t=”項によって示される。
ACRサーバが必要とされないように、受信機が必要とする情報を透かしに直接含めて配信する透かしACRシステムの場合、インジェストモジュールは、各フレームと関係付けるトリガを決定し、このトリガをデータベース内の該当フレームと関係付けずに当該フレームのための透かしに含める要求/応答サーバモデルについて、前述したのと同じ規則に従うことができる。インジェストモジュール及びデータベースについては後述する。
独立型NRTサービスのサポートについて説明する。これを図示してはいないが、本発明は次の説明に限定されず、設計者の意図によって変更されてもよい。
ACR環境にある受信機が独立型NRTサービスを受けるために、放送事業者は、NRTサービスへのインターネット接続をサポートする必要があり、受信機は、それらのサービスに対するSMT及びNRT−ITインスタンスを得る必要がありうる。
インターネットを介してPSIPテーブル及びNRTテーブルを得るための問い合わせ(query)プロトコルについて説明する。
放送事業者は、特定放送ストリームに対してこのプロトコルをサポートし、このとき、この放送ストリームに対する放送事業者の信号通知サーバのURLを知っている受信機は、次の段階を行う。
第一に、受信機は、指定された未来時間区間(例えば、次の時間)に当該放送ストリームのためのテーブルの“基本NRT集合”に対して問い合わせを発生させることができる。
第二に、上記の段階で各独立型NRT仮想チャネルに対するSMT及びILT、並びに指定された時間区間を含むNRT−IT及びTFTインスタンスを生成する。
受信機が放送ストリームに対する信号通知サーバのURLを発見できる一つの方法は、この放送ストリーム内の対話型サービスセグメントのプロバイダが、TPTと併せて配信されたURLList要素内で信号通知サーバURLを提供するように選択できるようにすることであってよい。
受信機が放送ストリームに対する信号通知サーバのURLを発見できるもう一つの方法は、事前設定によるものであってもよい。DTV受信機メーカが、特定放送領域に到達するACRサーバをどのように探すかを知るようにDTV受信機をあらかじめ設定するのと同じ方式で、DTV受信機メーカが、特定放送領域に到達する“NRT発見サーバ”をどのように探すかを知るようにDTV受信機をあらかじめ設定することができる。このようなNRT発見サーバは、各放送ストリームに対する信号通知サーバURLと共に、独立型NRTサービスを含む放送ストリーム目録を受信機に提供することができる。
図28は、ACRサーバ活性化のためのアーキテクチャの一実施例を示す図である。
あるACRシステムはACRサーバを含み、あるACRシステムは含まない。指紋ACRシステムでは、受信機はフレーム署名を算出してACRサーバに送ることができ、ACRサーバは、受信機において必要とする情報を送る。したがって、指紋ACRシステムは、ACRサーバを含む。透かしACRシステムでは、透かしにフレームを固有に識別するコードだけが含まれてもよく、又は受信機が必要とする全体情報が含まれてもよい。透かしがコードだけを含む場合は、受信機がコードを抽出し、それらをACRサーバに送ることができ、ACRサーバは、受信機において必要とする情報を送る。透かしが全体情報を含む場合は、受信機が自分に必要な情報を透かしから直接抽出でき、ACRサーバは必要ではない。
ACRサーバを含むACRシステムでは、ACRサーバと受信機との間の通信のために2種類の別個のモデル、すなわち、要求/応答モデルとイベント主導型モデルを共通に使用することができる。
要求/応答ACRサーバモデルにおいて、受信機は周期的に(例えば、5秒ごとに)コンテンツの署名を算出したり、コンテンツからコードを抽出したりして、この署名又はコードが含まれた要求をACRサーバに送ると考えることができる。ACRサーバは受信機から要求を受信したとき、応答を返却することができる。要求/応答インスタンス間には通信セッションが開いた状態で維持されない。このモデルでは、ACRサーバが受信機にメッセージを開始することが実行可能でなくてもよい。
処理しているチャネルの放送事業者がTDO対話型モデルをサポートすると仮定する。
2種類の一般的な類型のイベント活性化、すなわち、セグメントの放送が開始される前に活性化時刻が知らされる静的活性化と、セグメントの放送中に活性化時刻が動的に決定される動的活性化とがありうる。あらかじめ記録されたセグメントでは、すべてのイベント活性化が静的であってもよい。ライブショーを放送するセグメントでは、イベント活性化の一部又はすべてが動的であってもよい。静的活性化は活性化トリガの形態で受信機に配信されてもよいが、一般的に活性化メッセージテーブル(AMT)に記載される。動的活性化は、これらのタイミングがAMTの発生時点で知らされないため、活性化トリガの形態で配信してもよい。
図28は、ACRサーバを使用するACRシステムをサポートするアーキテクチャを示している。これは論理構成図であって、実行アーキテクチャではない。例えば、ACRインジェストモジュールは、放送情報源と同じ位置にあってもよいし、別途の位置にあってもよい。
ACRサーバを使用するACRシステムをサポートするアーキテクチャにおいて、アーキテクチャは、放送情報源28010、ACRインジェストモジュール28020、MVPD28030、STB 28040、受信機28050、ACRクライアント28060、ACR設定サーバ28070、ACRサーバ28080及びデータベース28090で構成することができる。
放送情報源28010は、A/Vストリーム及び関係対話型サービスが送出される時点であって、例えばネットワーク分配時点又はTV放送事業者であってもよい。
ACRインジェストモジュール28020は、指紋ACRシステムの場合、フレームの署名(指紋)を算出したり、コードに基づく透かしACRシステムの場合、コードからなる透かしをフレームに挿入したりすることができる。このモジュールは、他のメタデータと併せて署名又はコードに関係する各フレームのmedia_timeをデータベース28090に保存することができる。ACRインジェストモジュール28020は、放送ストリーム内の単一チャネル、放送ストリーム全体、複数の放送ストリーム又はこれらの組合せにおいてを扱うことができる。そのために、ACRインジェストモジュール28020は、対話型サービスを含む番組セグメントのためのフレームを処理すると仮定する。しかし、すべてのフレームが処理されるが、対話型サービスを有するセグメントの一部でないものは、これらが対話型サービスを有するセグメントの一部でないことを示す指示子がデータベース28090エントリにあるACRシステムも可能である。
MVPD28030は一般に、ケーブル事業者、衛星事業者又はIPTV事業者である。MVPD28030は、透かしACRシステムの場合、ACRインジェストモジュール28020によって挿入された透かしと共に、放送ストリームをいずれかの方式で放送情報源から受信することができる。このようなシステムはしばしば、オーディオ及びビデオトラック以外のすべての番組要素を除去し、残りのストリームを顧客の宅内のSTB 28040に送る。
STB 28040は一般にオーディオ及びビデオを復号(圧縮解除)し、これらを視聴者が視聴するTV受信機に送る。TV受信機は、対話型サービストリガを含むDTV限定字幕(closed caption)サービス#6を利用できないと仮定する。
受信機28050は、ACRクライアント28060を含むことができる。ACRクライアント28060は、受信機28050の外部に位置してもよい。受信機28050の構造については後述する。
受信機28050内のACRクライアント28060は、当該用途のAPIを用いてACRサーバ28080から活性化トリガを受け、これらをメイン受信機コードに送ることができる。一般に、ACRクライアント28060は受信機28050内に構成されるが、他の構成も可能である。
ACR設定サーバ28070は、ACRクライアント28060が適切なACRサーバ28080の位置を決定する方式を提供することができる。この発見過程は他の方式で得ることもできる。
ACRサーバ28080は、受信機から署名又はコードを受け、適切な時点で活性化トリガを返却することができる。
データベース28090は、ACRサーバ28080の使用のためにオーディオ又はビデオフレームのいずれか一方(又は、双方)に関する情報が記憶される一種のデータ記憶所であって、厳密にはデータベースでなくてもよい。
透かし内の情報の直接配信を用いるACRシステムのアーキテクチャは、データベース及びACRサーバを備えなくてもよい。ACRインジェストモジュールは、情報をフレームの識別子及びこれらと関係する情報を含むデータベース記録に挿入する代わりに、透かしの形態で放送ストリーム内のフレームに直接挿入してもよい。その後、受信機はその情報をACRサーバから取得せず、放送内のフレームから抽出してもよい。
以下、要求/応答ACRサーバを介した活性化トリガの配信について段階別に説明する。
このACRサーバの挙動を具現する効果的な方法は、以下に説明する過程に従うものであるが、この過程の動作の数は、上記のアーキテクチャダイヤグラムである図28内の数字に対応する。
1)対話型サービスセグメントの放送スケジュール及びセグメントごとのAMT又は均等物を、セグメントが放送される前にあらかじめACRインジェストモジュールに配信することができる。放送スケジュールは、セグメントID、関係する対話型サービスを含み得る各セグメントのGPS開始時点及びGPS終了時点を含むことができる。放送スケジュールに土壇場での変更があった場合、ACRインジェストモジュールにそれらの変更を直ちに通知してもよい。放送スケジュールは、各セグメントに対するTPTのバージョン番号も含むことができ、TPTバージョンのスケジュールされていない変更は、実時間でACRインジェストモジュールに通知され、必要時に“version”(“v=”)項をトリガに挿入することができる。インジェストモジュールは、各セグメントの開始時に特定区間(多数の受信機が新しいTPTを同時に要求する可能性がある時)のように適切な時間に“spread”(“s=”)項をトリガに挿入するように構成されてもよい。
2)動的活性化が存在する場合、動的活性化の情報源からACRインジェストモジュールにリンクが設定されてもよい。
3)放送ストリームはACRインジェストモジュールに送信されてもよい。
4)ACRインジェストモジュールは、フレームから署名を抽出したり(指紋ACRシステムの場合)、関係する対話型サービスを持つセグメントに含まれたすべてのフレームに対してコードをフレームに挿入(透かしACRシステムの場合)したりすることができる。(ACRインジェストモジュールは、GPSクロック並びに放送スケジュール内のセグメントの開始時刻及び終了時刻を用いてフレームがそのようなセグメントにあるかを判断できる。)そのような各フレームに対してACRインジェストモジュールは、トリガ及び署名、又は当該フレームと関係するコードを含み得るデータベースに記録を挿入することができる。トリガが挿入されることに関する規則は、この過程内の動作のリストの終端に記述される。
5)放送ストリームは、MVPDに続いてもよい。
6)MVPD加入者の位置にあるSTBに放送ストリームを送信できる(一般に、対話型コンテンツは最初に除く)。
7)STBは、A/Vを復号して非圧縮A/VをDTV受信機に送ることができる。
8)まず、受信機がオンになると、受信機は自身の位置をACR設定サーバに送ることができる(ACR設定サーバのURLは、この受信機内に組み込んでもよい)。
9)ACR設定サーバは、受信機が使用するACRサーバのURLを送ることができる。
10)受信機内のACRクライアントは、指紋署名又は透かしコードを抽出し、それらをACRサーバに送ることができる。
11)署名又はコードを受信したACRサーバは、データベース内で署名又はコードの照合を試みることができる。
12)署名又はコードがデータベースのいずれの署名又はコードとも一致しないと、ACRサーバは“no match”指示子を取得することができる。署名又はコードがデータベース内の署名又はコードと一致すると、ACRサーバは、一致する署名又はコードを有するフレームに対する記録を取得することができる。後者の場合、データベース内の記録は時間ベーストリガを含むことができ、及び/又はACRインジェストモジュールによってフレームの記録に何が挿入されたかによって一つ以上の活性化トリガを含むことができる。
13)ACRサーバがデータベースから“no match”指示子を取得したとき、ACRクライアントにヌル応答を返却することができる。そうでない場合は、ACRサーバは、得られたたトリガ又はトリガをACRクライアントに返却することができる。
下記の規則を用いて、ACRインジェストモジュールがどの一つ又は複数のトリガをデータベース内の各フレーム記録に挿入するかを判断できる。
図29は、EndTimeがない場合(a)及び場合(b)における活性化トリガの一実施例を示す図である。
受信機内の個別ACRクライアントによって使われた要求区間の長さには、ある上限(upper bound)L1が存在すると仮定できる(ACRクライアントが実際にこの上限内で動作する限り、この境界を知っているかは重要でない)。L2をフレームが受信機に到達した時点から計算して、一般のACRクライアントが署名を算出したり、このフレームと関係する透かしを抽出したりするためにかかる時間の長さとしよう。メッセージがACRクライアントからACRサーバに送られてから帰ってくるためにかかる一般的な往復移動時間をL3としよう。M=L1+L2+L3とする。(やや大きいMの値を用いてもよい。やや大きい値の長所は、活性化トリガに反応する上で若干の余分の時間を得るということである。短所は、受信機が同一のイベント活性化に対して複数の活性化トリガを取得する可能性がやや高いということである。受信機は、後述するように、これらが重複することを感知し、活性化を1回だけ適用できるため、この短所は大きく問題にならない。)
ACRインジェストモジュールは、次の三つの条件のうち少なくとも一つが成立しないときは、時間ベーストリガだけをフレームと関係する記録に挿入することができる。
(a)活性化要素は、フレームのmedia_timeが活性化要素のstartTime前の時間長さMから始まって、活性化要素のendTimeで終わる時間区間(time interval)にあるようにAMTに存在する(活性化がendTimeを有しないとき、endTimeはstartTimeと同一のものと見なされる)。
(b)トリガの活性化時刻(“t=<event_time>”)直前の時間長さMの時間区間以前に動的活性化トリガがインジェストモジュールによって受信されており、当該フレームはこの区間内に存在する。
(c)トリガの活性化時刻直前の時間長さMの区間の開始よりも遅れて、動的活性化トリガがインジェストモジュールによって受信されており、フレームのmedia_timeはトリガの受信の直後の時間長さL1の区間に存在する。
これらの条件(a)、(b)及び(c)のいずれか一つでも成立するとき、活性化トリガは、活性化されるイベントを識別する“e=”項とAMT内の活性化要素のstartTimeを指示する(条件(a)の場合)か、又は動的トリガのevent_timeを指示する(条件(b))“t=”項と共に記録に含まれうる。トリガはバージョン(“v=”)項も含むことができる。
(a)の場合、startTimeからendTimeまでの区間を通じて続けて活性化トリガをフレームと関係付ける理由は、この区間を通じてチャネルに参加する受信機をある程度受容するためである。
この利用法は、ACRサーバ側に追加的な知能を要求しないという点に留意されたい。このサーバは、単純にデータベースにおいて発見する情報をACRクライアントに返却する。すべての知能はACRインジェストモジュールに存在できる。しかも、ACRインジェストモジュールが行うべき演算が非常に簡単でありうる。
この方式を用いると、受信機において同一のイベント活性化に対して一つ以上の活性化トリガ(別個のフレームと関係するトリガ)を受信することが可能である。しかし、受信機は、“t=”値から、それらのトリガがいずれも同一の活性化時刻を有することがわかるため、受信機はそれらが重複すると判断し、イベントを1回だけ活性化させることができる。
上記の場合のうち二つの場合に、活性化トリガ内の“t=”項は、関係するフレームのmedia_timeより早いevent_timeを有することができる。(a)の状況で、活性化要素のendTimeがstartTimeよりも非常に遅いときは、受信機は一般に、startTimeとendTimeとの間の区間を介して複数の活性化トリガを取得することができ、これらはいずれも活性化時刻としてstartTimeを有することができる。(c)の状況では、活性化のための活性化トリガが余りにも遅くフレーム記録に挿入され、受信機が取得する活性化トリガが、要求に対する応答として、活性化時刻以降のmedia_timeを有するフレームに対する署名と共に到着することがある。受信機が、関係するフレームのmedia_timeよりも早いevent_timeを有する活性化トリガを取得したとき、このトリガが既に確認して当該イベントの活性化のために使用した活性化トリガと同じものと認識しない場合、当該イベントを直ちに活性化すると考えることができる。
フレームのmedia_timeがevent_activation timeよりも遅い場合に“即時実行(do it now)”トリガではなく過去のevent_time値を用いる目的は、受信機がこのような“事後(after the fact)”活性化トリガを一つ以上取得することができるためである。“t=”値は、受信機においてこれらのトリガがいずれも同一の活性化時刻を有すると判断し、当該イベントを1回だけ活性化させ得るようにする。
図29は、AMT内の活性化要素にendTime属性がない状況(a)及び状況(b)を説明する。
図29は、AMT内の活性化要素がendTimeを有しないとき、上記の動作(4)での状況(a)の一例を示している。これは、ACRインジェストモジュールに、活性化時刻よりも少なくともM時間単位前に、動的活性化トリガが送られる上記の段階(4)での状況(b)の例であってもよい。
図29は、時間軸(timeline)上にイベント活性化時刻と、これよりも先行する長さL1、L2及びL3の区間を含む長さMの区間とを示している。時間軸の下の垂直矢印は、個別フレームの時間を表す。長さMの区間の開始よりも先行するか、又はイベント活性化時刻後に到着する各フレームは、データベースにおいて時間ベーストリガと関係する。長さMの区間内の各フレームは、データベースにおいて同図の下における二つの例(f1、f2)のような活性化トリガと関係する。各フレームに対する“t=”項は、media_timeに対するイベント活性化時刻を示すことができる。(丸囲みのf1、f2で表示されている。)
丸囲みの4つの垂直矢印は、一般の受信機が要求を送るときの例示である。この例で、受信機は、同一のイベント活性化に対して二つの活性化トリガを取得するようになるが、これらのトリガは同一のイベント活性化時刻を有するため、受信機はこれらを同一のものと認識し、最初のトリガだけを適用する。受信機の要求間の間隔がL1未満であるため、受信機は図示のL1区間でフレームに対する署名と併せて少なくとも一つの要求をすることが保証される。これによって活性化時刻以前に署名を算出してACRサーバに要求を送り、その応答として活性化トリガを取得する時間を有することとなる。この例で、受信機が取得する一番目の活性化トリガはあらかじめ配信されるが、受信機が取得する二番目の活性化トリガは、辛うじて間に合って到達する(このトリガは重複トリガである)。
図30は、EndTimeがない場合(a)及び場合(b)における活性化トリガの一実施例を示す図である。
以下、EndTimeがない場合(a)及び場合(b)における活性化トリガを説明する。これは、上記の図29に関する説明に似ている。
図30は、AMT内の活性化要素がendTimeを有しない場合に、上記の動作(4)における状況(a)の例を示している。これは、ACRインジェストモジュールに活性化時刻よりも少なくともM時間単位以前に動的活性化トリガが送られる上記の段階(4)における状況(b)の例である。
図30は、時間軸上にイベント活性化時刻と、これよりも先行する長さL1、L2及びL3の区間を含む長さMの区間とを示している。時間軸の下の矢印は、個別フレームの時間を表す。長さMの区間の開始よりも先行するか、又はイベント活性化時刻後に到着する各フレームは、データベースにおいて<media_time>又は<event_time>項のないトリガと関係する。長さMの区間内の各フレームは、データベースにおいて同図の下における二つの例と同一の活性化トリガと関係する。各フレームに対する”d=”項は、このフレーム及びイベント活性化時刻の時間の長さを示すことができる。(丸囲みのf1、f2で表示されている)。
丸囲みの4つの垂直矢印は、一般の受信機が要求を送るときの例示であってもよい。この例で、受信機は、同一のイベント活性化に対して二つの活性化トリガを取得するが、<d1>値をフレームf1に対する受信機のローカル時間に加えるか、又は<d2>値をフレームf2に対する受信機のローカル時間に加えて算出した活性化時刻は、同一の結果を有するため、受信機はそれらを重複したものと認識し、最初のトリガだけを適用する。受信機要求間の間隔がL1未満であるため、受信機は図示のL1区間でフレームに対する署名と併せて少なくとも一つの要求をするように保証される。これによって活性化時刻以前に署名を算出してACRサーバに要求を送り、その応答として活性化トリガを取得する時間を有することとなる。この例で、受信機において受信された二番目の活性化トリガは、活性化時刻以降に到達する。
図31は、EndTimeがある場合(a)における活性化トリガの一実施例を示す図である。
図31は、AMT内の活性化要素がstartTimeのほか、endTimeも持つ場合に、上記の動作(4)における状況(a)の例を示している。
同図は、時間軸上にイベント活性化のstartTime及びendTime、並びにstartTimeよりも先行する長さMの区間を示している。時間軸の下の矢印は、個別フレームの時間を表す。長さMの区間の開始よりも先行するか、イベント活性化のendTime後に到着する各フレームは、データベースにおいて時間ベーストリガと関係する。長さMの区間内又はイベント活性化のstartTimeとendTimeとの間の各フレームは、データベースで同図の下における三つの例で示す形態で関係する活性化トリガを有する。各フレームに対する“t=”項は、media_timeに対するイベント活性化時刻を示すことができる。(丸囲みのf1、f2、f3で表示されている。)
丸囲みの三つの垂直矢印は、一般の受信機が要求を送るときの例示であってもよい。この場合、受信機は同一のイベント活性化に対して三つの活性化トリガを取得するが、活性化時刻が同一であるため、受信機はそれらを同一のものと認識し、最初のトリガだけを適用する。
同図における最初の二つの活性化トリガは、startTime以降にチャネルに参加して最初の要求と併せてフレームf3の署名を送る受信機には認知できない。
図32は、EndTimeがある場合(a)における活性化トリガの一実施例を示す図である。
以下、EndTimeがある場合(a)における活性化トリガを説明する。
図32は、AMT内の活性化要素がstartTimeのほか、endTimeも有する場合に上の動作(4)での状況(a)の例を示している。
同図は、時間軸上にイベント活性化のstartTime及びendTime、並びにstartTimeよりも先行する長さMの区間を示している。時間軸の下の矢印は、個別フレームの時間を表す。長さMの区間の開始よりも先行するか、イベント活性化時刻後に到着する各フレームは、データベースにおいて<media_time>又は<event_time>項の無いトリガと関係する。長さMの区間内の各フレームは、データベースにおいて同図の下における2例で示す形態の活性化トリガを有する。各フレームに対する“d=”項は、このフレームとイベント活性化時刻との間の時間長を示すことができる。(丸囲みの垂直矢印で示されている)。
丸囲みの垂直矢印は、一般の受信機が要求を送るときの例示であってもよい。この場合、受信機は同一のイベント活性化に対して三つの活性化トリガを取得するが、<d1>値をフレームf1に対する受信機のローカル時間に加えたり、<d2>値をフレームf2に対する受信機のローカル時間に加えたり、(負の)<d3>値をフレームf3に対する受信機のローカル時間に加えたりして算出した活性化時刻は、同一の結果を有するため、受信機はそれらを重複したものと認識し、最初のトリガだけを適用する。
図示の最初における二つの活性化トリガは、startTime以降にチャネルに参加して最初の要求と併せてフレームf3の署名を送る受信機には認知できない。
図33は、場合(c)に対する活性化トリガの一実施例を示す図である。
図33は、活性化時刻以前にM時間単位よりも遅くACRインジェストモジュールに動的活性化トリガが送られる上記の動作(4)での状況(c)を示している。
図33は、時間軸上に、動的イベント活性化時刻と、ACRインジェストモジュールがイベントの活性化を知るイベント活性化時刻の直前の時間とを示す図であり、ACRインジェストモジュールでイベントの活性化を知る時間後に長さL1の区間が続く。時間軸の下における垂直矢印は、個別フレームの時間を表す。長さL1の区間の開始よりも先行するか、又は長さL1の区間の終わりに続く各フレームは、データベースにおいてこのフレームと関係する時間ベーストリガを有する。長さL1の区間内の各フレームは、データベースにおいて同図の下における例のような活性化トリガを有する。各フレームに対する“t=”項は、メディア時間軸に対するイベント活性化時刻を示す。(丸囲みの垂直矢印で表示されている。)丸囲みの垂直矢印は、一般の受信機が要求を送るときの例示であってもよい。この場合、受信機はイベント活性化に対して一つの活性化トリガを有する。活性化トリガの活性化時刻は、このトリガを受信した時間前であるから、受信機はトリガを受信したとき直ちに適用する。
図34は、場合(c)に対する活性化トリガの一実施例を示す図である。
以下、場合(c)に対する活性化トリガを説明する。これは、上記の図33に関する説明に類似する。
図34は、活性化時刻以前にM時間単位よりも遅くACRインジェストモジュールに動的活性化トリガが送られる上記の動作(4)での状況(c)を示している。
図34は、時間軸上に、動的イベント活性化時刻と、ACRインジェストモジュールがイベントの活性化を知るイベント活性化時刻の直前の時間とを示す図であり、ACRインジェストモジュールがイベントの活性化を知る時間後に長さMの区間が続く。時間軸の下における矢印は、個別フレームの時間を表す。長さMの区間の開始よりも先行するか、又は長さMの区間の終わりに続く各フレームは、データベースにおいて<media_time>又は<event_time>項のないトリガを有する。長さMの区間内の各フレームは、データベースにおいて同図の下における二つの例のような活性化トリガを有する。各フレームに対する“d=”項は、このフレームとイベント活性化時刻との間の時間長を示すことができる。(丸囲みの垂直矢印で表示されている。)丸囲みの垂直矢印は、一般の受信機が要求を送るときの例示であってもよい。この場合、受信機は、同一のイベント活性化に対して二つの活性化トリガを取得するが、(負の)<d1>値をフレームf1に対する受信機のローカル時間に加えたり、(負の)<d2>値をフレームf2に対する受信機のローカル時間に加えたりして算出した活性化時刻はいずれも同一の結果を有するため、受信機はそれらを重複したものと認識し、受信した最初のトリガだけを適用する。最初のトリガの活性化時刻は、それを受信した時間以前であるから、受信機はこのトリガを受信したとき直ちに適用する。
図35は、最後に配信される動的活性化トリガの一実施例を示す図である。
イベント主導型ACRモデルにおいて、受信機は、ACRサーバに対する持続的な接続を開始し、一定の間隔をおいて(例えば、5秒ごとに)フレームに関係した署名を生成し、署名を接続を介して提示すると考えることができる。ACRサーバは各署名に反応しない。ACRサーバは、新しいセグメントが発見されたか、又はイベント活性化が受信機に配信される必要があるとき、受信機にメッセージを送ることができる。当該モデルにおいては、ACRサーバはいつでも持続的な接続を介してクライアントに対するメッセージを開始することができる。
また、受信機からの直近の提示に対応するセグメントID(トリガの<locator_part>)及び受信機に送られる直近の活性化トリガのように、各受信機に関して一定量の情報を維持することはサーバにとって容易である。
当該イベント主導型モデルを使用し、活性化を受信機に配信するACRサーバに対して、次の規則はACRサーバからのメッセージに適用することができる。
第一に、ACRサーバは、新しいセグメントでのフレームに対応する受信機から署名を受信したとき、受信機が関係のTPTを取得できるようにするために、直ちに時間ベーストリガと共にメッセージを受信機に送ることができる。
第二に、ACRサーバは(受信機が見た直近のバージョンとは異なる)TPTに対する新しいバージョン数を有するセグメントの一部でのフレームに対応する受信機から署名を受信したとき、受信機が関係のTPTの新しいバージョンを取得できるようにするために、直ちに“v=”項を有する時間ベーストリガと共にメッセージを受信機に送ることができる。
第三に、イベントが活性化される予定である場合、ACRサーバは活性化トリガを受信機に送ることができる。可能なときは、メディア時間ラインに関係した活性化時刻を示すために活性化トリガでの“t=”項と共に、受信機が適用すべき時期よりもやや早く活性化トリガを送ることができる(これは、要求/応答モデルでの動作と略同様である)。ACRサーバは、活性化を知るのが遅く、活性化トリガを平素よりはるかに早く送ることができなかったときも、活性化を知ったとき、できるだけ早く活性化トリガを送ることができる。(後者の場合に、受信機は、活性化時期後に活性化トリガを受信することができ、この場合、受信機は活性化トリガを受信次第イベントを活性化すると考えることができる。)
図28に示した要求/応答ケースに対するアーキテクチャも、一つの差異点以外は、当該イベント主導型ケースに適している。その差異点は、イベント主導型ケースにおいて新しい動作(2a)がありうることである。動的活性化トリガが存在するとき、ACRインジェストモジュールが選択された動的活性化トリガをACRサーバに送ることができるように、ACRインジェストモジュールとACRインジェストモジュールによって実装されたデータベースを使用するすべてのACRサーバとの間に接続が設定されてもよい。
イベント主導型ケースに対する番号付き動作は、要求/応答ケースと類似可能である。新しい動作(2a)の他に、動作(4)が少し異なり、動作(13)が少し異なり、新しい動作(14)が追加される。
動作(4)で、ACRインジェストモジュールはフレームから署名を抽出し(指紋ACRシステムの場合)、又は関係した対話型サービスを有するセグメントに含まれたすべてのフレームに対してコードをフレームに挿入(透かしACRシステムの場合)することができる。(ACRインジェストモジュールは、GPSクロックと放送スケジュール内セグメントの開始時間及び終了時間とを用いて、フレームがそのようなセグメントにあるか否かを判断できる。)そのような各フレームに対してACRインジェストモジュールは、トリガと署名又は当該フレームに関係したコードを含み得るデータベースに記録を挿入することができる。次の二つの条件の少なくとも一つを満たさないとき、ACRインジェストモジュールによって記録に含まれたトリガは、時間ベーストリガであってもよい。
(a)活性化要素は、フレームのmedia_timeが活性化要素のstartTime前の時間長Mから始まって活性化要素のendTimeで終わる時間区間にあるようにAMTに存在する。(活性化がendTimeを有しないとき、endTimeはstartTimeと同一であると見なす。)(要求/応答ACRモデルに対して条件(a)と同一)
(b)トリガの活性化時刻(“t=<event_time>”)直前の時間長Mの時間区間以前に動的活性化トリガがインジェストモジュールによって受信されており、当該フレームはこの区間内に存在する。(要求/応答ACRモデルに対して条件(b)と同一)
これらの条件(a)及び(b)のうち一つでも成立するとき、活性化トリガは、活性化されるイベントを識別する“e=”項、及びAMT内活性化要素のstartTimeを示す(条件(a)が場合)か、又は動的トリガのevent_timeを示す(条件(b))“t=”項と共に記録に含まれうる。
動的活性化トリガがトリガの活性化時刻直前の時間長Mの区間でインジェストモジュールによって受信されたとき(このとき、Mは要求/応答サーバにおけると同じ意味を有する)、インジェストモジュールは、動的活性化トリガと関係してデータベースに何も置かず、インジェストモジュールが記録を挿入できるデータベースを使用するすべてのACRサーバに活性化トリガを配信することができる。(このアーキテクチャに対して次のような変形があってもよい。インジェストモデルを経由せずに動的活性化トリガが動的活性化トリガ情報源からACRサーバに直接配信されるが、関係した受信機に直ちにメッセージを送信できるように、ACRサーバは活性化時刻以前のM時間単位よりも遅く到着する動的活性化トリガを得る。次の受信機提示まで待つと遅すぎる。)
動作(13)において、ACRサーバは直前の提示に対して受信しなかった後にデータベースから“no match”指示子が返却されたとき、受信機にNULLメッセージを送ることができる。直前の提示に対して返却された<locator_part>と異なる<locator_part>と共にトリガが返却されたとき、受信機にトリガを送ることができる。双方の場合において、受信機に視聴中のチャネルが変更されたか、又は視聴中のセグメントが終わったことを知らせ、受信機が現在実行しているTDOを終了し、必要なら、新しいTPTをダウンロードするようにすることができる。ACRサーバは、一つ以上の活性化トリガが返却されたとき、既に受信機に送られた活性化トリガと重複するものは捨てて受信機に送ることができる。それとも、ACRサーバは何にもしなくてもよい。
新しい動作(14)で、ACRサーバは動的活性化トリガを受信したとき、動的活性化トリガの<locator_part>と各ACRクライアントに対する現<locator_part>とを比較することができる。(ここでクライアントに対する現<locator_part>は、ACRサーバがACRクライアントからの直近の提示に対してデータベースから受けたトリガの<locator_part>である。<locator_part>が一致する各クライアントに対して、ACRサーバは動的トリガをクライアントに送ることができる。)
図29及び図31は、活性化時刻よりも少なくともM時間単位以前にACRインジェストモジュールに配信される静的活性化及び動的活性化に対するトリガの処理を示す。差異点は、ACRサーバが重複する活性化トリガを受信機に送らずに捨てることができるという点である。
図35は、急に(活性化時刻よりもM時間単位以前に)受信された動的活性化トリガの処理の一実施例を示す。
図35は、時間ライン上の動的イベント活性化時刻及びACRインジェストモジュールがイベント活性化について知るときであるイベント活性化時刻よりも少し前の時間を示す。時間ラインの下の垂直矢印は、個別フレームの回数を表す。ACRサーバは、ACRインジェストモジュールから活性化トリガを受信し次第、(トリガの<locator_part>から確認されるように)現在の活性化トリガに関係したセグメントを視聴しているすべての受信機に活性化トリガを送ることができる。
図36は、最後に配信される動的活性化トリガの一実施例を示す図である。
最後に配信される動的活性化トリガについて説明する。
図36は、急に(活性化時刻よりもM時間単位以前に)受信された動的活性化トリガの処理の一実施例を示す。
最後に配信される動的活性化トリガを示す同図は、時間ライン上の動的イベント活性化時刻及びACRインジェストモジュールがイベント活性化について知るときであるイベント活性化時刻よりも少し前の時間を示す。時間ラインの下の垂直矢印は、個別フレームの回数を表す。ACRサーバは、ACRインジェストモジュールから活性化トリガを受信し次第、(トリガの<locator_part>から確認されるように)現在活性化トリガに関係したセグメントを視聴しているすべての受信機に活性化トリガを送ることができる。各受信機に対して、トリガのevent_timeを、受信機から直近に提示された署名に対応するフレームに関係した<delay_time>に調節する。
図37は、要求/応答ACRケースにおけるACRクライアントと他のサーバとの間のシーケンスダイヤグラムを示す図である。
図37は、要求/応答モデルにおいてACRサーバ及び受信機(ACRクライアント)の動作プロトコルによって、トリガ及びTPTを効果的に送信する実施例を示すシーケンスダイヤグラムである。
以下、要求/応答の順で要求/応答モデルの動作の一例を説明する。
要求/応答ACRケースにおいて、ACRクライアントと他のサーバ間のシーケンスダイヤグラムは、ACR要求1(S37010)、ACR応答1(S37020)、ACR要求2(S37030)、ACR応答2(S37040)、HTTP要求1(S37050)、HTTP応答1(S37060)、HTTP要求2(S37070)、HTTP応答2(S37080)、ACR要求3(S37090)、ACR応答3(S37100)、ACR要求4(S37110)、及び/又はACR応答4(S37120)を含むことができる。
ACR要求1(S37010)は、受信機が現在視聴中の番組の署名をサーバに送る段階である。サーバは、前述したACRサーバであってもよい。署名は指紋署名又は透かしコードであってもよい。
ACR応答1(S37020)は、署名が認識されなかったか、又は関係した対話型サービスが存在しないとき、ACRサーバがヌルを返却する段階である。これは、ヌル応答が返却される上述したケースに該当する場合であってもよい。
ACR要求2(S37030)は、チャネル又は番組が変更されるとき、受信機が変更された番組の署名をACRサーバに送信する段階である。
ACR応答2(S37040)は、ACRサーバが該当の番組に関係した対話型サービスを取得できるアドレスを含むトリガ(例えば、xbc.com/tpt504)を返却する段階である。この段階は、ACR応答1(S37020)と違い、署名が認識され、関係した対話型サービスが存在するケースに該当できる。すなわち、トリガを利用可能である場合であってもよい。この場合、返却されるトリガは、media_timeに関する情報がない時間ベーストリガであってもよい。
HTTP要求1(S37050)は、受信機がTPTサーバ(例えば、http://xbc.com/tpt504)にhttpプロトコルを介してACR応答2(S37040)で受信したアドレスを用いて該当するTPTを提供することを要求する段階である。
HTTP応答1(S37060)は、TPTサーバが受信機の要求に応じてXMLで表したTPTを送信する段階である。
HTTP要求2(S37070)は、受信機がコンテンツサーバにhttpプロトコルを用いてTDOのようなアプリケーションを提供することを要求する段階である。受信機は、TPT内に含まれたTDO関係情報をパースすることができる。TDO関係情報は、TDOをダウンロードできるコンテンツサーバのアドレスであってもよい。コンテンツサーバのアドレスを用いて要求を送ることができる。
HTTP応答2(S37080)は、コンテンツサーバが受信機の要求に応じて該当するTDOを送信する段階である。
ACR要求3(S37090)は、受信機が現在視聴中の番組のフレームの署名をACRサーバに送る段階である。
ACR応答3(S37100)は、ACRサーバが該当の番組に関係した対話型サービスを取得できるアドレスを含むトリガ(例えば、xbc.com/tpt504)を返却する段階である。この場合、ACR応答1(S37020)と違い、署名が認識され、関係した対話型サービスが存在する。すなわち、この段階でトリガは使用可能である。
ACR要求4(S37110)は、受信機が現在視聴中の番組のフレームの署名をACRサーバに送信する段階である。
ACR応答4(S37120)は、ACRサーバが、受信機から送信された署名に関係した対話型サービスに関係した活性化トリガを送信する段階である。特定イベントが活性化トリガによって特定時間に活性化されうる。
図38は、イベント主導型ACRケースにおけるACRクライアントと他のサーバとの間のシーケンスダイヤグラムを示す図である。
図38は、イベント主導型モデルにおいてACRサーバ及び受信機(ACRクライアント)の動作プロトコルによってトリガ及びTPTを効果的に送信する実施例によるシーケンスダイヤグラムを示す。
要求、要求に対する応答、イベントの順にイベント主導型モデルの動作についての一例を説明する。
イベント主導型ACRケースにおいて、ACRクライアントと他のサーバとの間のシーケンスダイヤグラムは、ACR要求1(S38010)、ACR要求2(S38020)、ACRイベント1(S38030)、HTTP要求1(S38040)、HTTP応答1(S38050)、HTTP要求2(S38060)、HTTP応答2(S38070)、ACR要求3(S38080)、ACRイベント2(S38090)、及び/又はACR応答4(S38100)を含むことができる。
ACR要求1(S38010)は、受信機が現在視聴中の番組の署名をサーバに送る段階である。サーバは、上述したACRサーバであってもよい。署名は、指紋署名又は透かしであってもよい。ここで、署名が認識されなかったか、又は関係した対話型サービスが存在しないとき、図37のシーケンスとは違い、ACRサーバはヌルを返却せずにACR要求1に何ら応答も送らなくてもよい。
ACR要求2(S38020)は、チャネル又は番組が変更されたとき、受信機が、変更された番組の署名をACRサーバに送信する段階である。
ACRイベント1(S38030)は、ACRサーバが、該当の番組に関係した対話型サービスを取得できるアドレスを含むトリガ(例えば、xbc.com/tpt504)を返却する段階である。この段階は、署名が認識され、関係した対話型サービスが存在するケースに該当できる。すなわち、この段階でトリガは使用可能である。この場合、返却するトリガは、media_timeに関係した何らの情報も有しない時間ベーストリガであってもよい。
HTTP要求1(S38040)は、受信機がTPTサーバ(例えば、http://xbc.com/tpt504)にhttpプロトコルを介してACRイベント1(S38030)で受信したアドレスを用いて該当するTPTを提供することを要求する段階である。
HTTP応答1(S38050)は、TPTサーバが受信機の要求に応じてXMLに表したTPTを送信する段階である。
HTTP要求2(S38060)は、受信機がコンテンツサーバにhttpプロトコルを用いてTDOのようなアプリケーションを提供することを要求する段階である。受信機は、TPT内に含まれたTDO関係情報をパースすることができる。TDO関係情報は、TDOをダウンロードできるコンテンツサーバのURLであってもよい。コンテンツサーバのURLを用いて要求を送ることができる。
HTTP応答2(S38070)は、コンテンツサーバが受信機の要求に応じて該当するTDOを送信する段階である。
ACR要求3(S38080)は、受信機が現在視聴中の番組のフレームの署名をACRサーバに送る段階である。
ACRイベント2(S38090)は、ACRサーバが受信機から送信された署名に関係した対話型サービスに関係した活性化トリガを送信する段階である。特定イベントが活性化トリガによって特定時間に活性化されうる。
ACR応答4(S38100)は、受信機が現在視聴中の番組のフレームの署名をACRサーバに送る段階である。
図39は要求/応答モデルにおいて、受信機が対話型サービスを処理する方法の一実施例を示す図である。
イベント主導型モデルで受信機が対話型サービスを処理する方法の一実施例は、非圧縮オーディオコンテンツ又は非圧縮ビデオコンテンツを受信する段階(S39010)、識別子を抽出する段階(S39020)、識別子を含む要求を提示する段階(S39030)、及び/又はコンテンツに対するトリガを受信する段階(S39040)を含むことができる。
非圧縮オーディオコンテンツ又は非圧縮ビデオコンテンツを受信する段階(S39010)は、外部の復号部から、受信機が非圧縮オーディオコンテンツ又は非圧縮ビデオコンテンツを受信する段階である。
ここで、外部の復号部は、前述したSTBであってもよい。STBに関する詳細な説明は後述する。
ここで、非圧縮オーディオコンテンツ又は非圧縮ビデオコンテンツは、前述したSTB(外部の復号部)が受信機に配信するオーディオ/ビデオコンテンツであってもよい。
外部の復号部は、MVPDなどから配信されたA/Vコンテンツを復号(圧縮解除)した後、受信機に配信することができる。受信機は、外部の復号部などから非圧縮オーディオコンテンツ又は非圧縮ビデオコンテンツを受信して視聴者に見せることができる。非圧縮オーディオコンテンツ又は非圧縮ビデオコンテンツは、前述したACRインジェストモジュールによって処理されてもよい。すなわち、ACRインジェストモジュールは、指紋ACRシステムの場合、フレームの署名(指紋)を算出し、又はコードに基づく透かしACRシステムの場合、コードからなる透かしをフレームに挿入することができる。ここで、フレームは、STBによって復号/圧縮解除される前のオーディオ/ビデオコンテンツに関するものであってもよい。ACRインジェストモジュールは、他のメタデータと併せて署名又はコードに関係している各フレームのmedia_timeをデータベースに保存することができる。
識別子を抽出する段階(S39020)は、受信機が、受信された非圧縮オーディオコンテンツ又は非圧縮ビデオコンテンツの複数のフレームから周期的に識別子を抽出する段階である。
ここで、識別子は、配信されたコンテンツのフレームを識別する識別子であってもよい。この識別子は、前述した概念のうち、指紋署名又は透かしコードであってもよい。本実施例は、指紋又は透かしのいずれか一技法に限定されない。
ここでいう‘抽出’は、配信された非圧縮オーディオコンテンツ又は非圧縮ビデオコンテンツの一つのフレームから識別子を抽出することを指し、前述した‘署名算出’、‘透かし抽出’、‘署名生成’に対応できる。
ここでいう‘抽出’は、前述したACRクライアントで起きる動作であってもよい。しかし、これは一実施例に過ぎず、発明の思想はこれに限定されず、他のモジュールで起きるように設計者が設計してもよい。ACRクライアントは、受信機内に位置できる。
識別子を抽出する段階(S39020)において、一つのフレームに対応する識別子を抽出することができる。抽出は、周期的に実行することができる。前述したように、抽出された識別子はACRサーバに送ることができる。前述したように、ACRサーバは、受信された識別子とデータベースにある記録とを照合することができる。ACRサーバ及びデータベースは、上述したACRサーバ及びデータベースであってもよい。データベースにある記録は、ACRインジェストモジュールによって事前に保存された記録であってもよい。
本発明の一実施例は、識別子を抽出する周期が5秒であってもよい。これは設計者の意図によって変更可能な事項である。
識別子を含む要求を提示する段階(S39030)は、抽出された識別子を含む要求をサーバに送る段階である。
ここで、抽出した識別子は、指紋署名又は透かしコードであってもよい。本実施例は、指紋又は透かしのいずれか一技法に限定されない。
ここで、要求は、上記識別子を含むことができる。ここで、受信機はサーバに要求を周期的に送ることができる。一つの要求は一つの識別子を含むことができる。ここで、周期の長さは設計者の意図によって変更可能な事項である。
サーバは、上述したACRサーバであってもよい。サーバは要求を受信してデータベースにある記録と照合することができる。ACRサーバ及びデータベースは、上述したACRサーバ及びデータベースであってもよい。データベースにある記録は、ACRインジェストモジュールによって事前に保存された記録であってもよい。
コンテンツに対するトリガを受信する段階(S39040)は、サーバに送られた要求及び識別子が、データベースにある記録又は照合された記録に存在するトリガと一致するか否かによって、サーバからトリガが受信される段階である。
受信機は、上述した要求に対して如何なる場合にも応答を受信しない。受信機は、新しいセグメントが検出されたか、又はイベント活性化が受信機に配信される必要があるとき、トリガを受信することができる。その他の場合、受信機はトリガを受信しなくてもよい。しかし、受信機は、設計者の意図によって、前述した場合以外の場合にトリガを受信してもよい。
ここで、セグメントは、上述した対話型サービスセグメントであってもよい。
新しいセグメントは、現アプリケーションパラメータテーブル又はTPT以降に使われるセグメントを指すことができる。
ここで、「イベント活性化が受信機に配信される必要があるとき」とは、イベント活性化が予定された場合、又は活性化される必要があるイベントがまだ活性化されていない場合を意味することができる。
ここで、トリガは、先に受信機がSTBから受信したコンテンツに関するものであってもよい。
ここで、コンテンツは、前述したSTBから受信したコンテンツであってもよい。
ここで、トリガは、コンテンツの現在時刻を示し、アプリケーションパラメータテーブルで特定対話型イベントを参照するか、又は当該イベントが現在又は指定された未来の時間に実行されることを知らせることができる。
ここで、アプリケーションパラメータテーブルは、少なくとも一つのアプリケーションに関する情報を含むことができる。
ここで、サーバは、前述したACRサーバであってもよい。データベースは、前述したデータベースであってもよい。ここでいう識別子は、指紋署名又は透かしコードであってもよい。本実施例は、指紋又は透かしのいずれか一技法に限定されない。
サーバは、受信された要求/識別子をデータベースにある記録と照合することができる。要求/識別子は、ACRインジェストモジュールによってデータベースに事前に保存された記録と照合することができる。識別子がデータベースに保存された識別子と一致すると、サーバはデートベースから識別子に関係した記録を受信することができる。この場合、記録は、時間ベーストリガ又は活性化トリガを含むことができる。いかなるトリガが記録に含まれるかは、いかなるトリガがACRインジェストモジュールによって事前に記録に挿入されているかによる。データベースから記録を受信したとき、サーバは、受信された一トリガ又は複数トリガを受信機に送ることができる。ここで、サーバは、要求/応答モデルと違い、上記制限された特定の場合にだけ一トリガ又は複数トリガを送ることができる。その他の場合、サーバは受信機にいかなる応答も送信しなくてもよい。
本発明の一実施例において、トリガは、識別子が新しいセグメントに対応するとき、時間ベーストリガであってもよい。時間ベーストリガは、受信機が新しいセグメントに関係した新しいアプリケーションパラメータテーブルを取得できるようにするために用いることができる。時間ベーストリガは、上述した時間ベーストリガ動作に従うことができる。
本発明の一実施例において、トリガは、イベントが活性化される予定であるときはいつも活性化トリガとなることができ、活性化トリガは、イベントに対する活性化時刻を設定する。活性化トリガは、上述した活性化トリガ動作に従うことができる。活性化トリガは、特定時間に活性化を発生させるためにアプリケーションのイベントに適用することができる。視聴者は、イベント活性化を介して対話型サービスを受けることができる。本発明の一実施例による活性化トリガ配信の場合、対話型サービスは、上述したACR環境に、すなわち、受信機がインターネット接続を有し、放送ストリームからの非圧縮オーディオ及びビデオだけを利用できる場合に提供することができる。
本発明の一実施例において、受信機が同一のイベント活性化に対して一つよりも多い活性化トリガを受信したとき、活性化トリガは一回適用することができる。前述したように、受信機は、同一のイベント活性化に対して複数の活性化トリガを受信することができる。本発明の一実施例によれば、識別子は周期的に抽出されてサーバに送信されてもよい。ここで、複数の活性化トリガを周期的な要求に対する応答として受信することができる。この場合、活性化トリガが同一の“t=”項を有することから、受信機は、活性化トリガが重複したと認識し、前述したように一つの活性化トリガだけを適用することができる。
本発明の一実施例において、活性化トリガは、受信機が活性化トリガを適用する必要がある前に受信することができる。これによって、イベントを正しい活性化時刻に活性化させることができる。本実施例は、上述した静的活性化に該当できる。
本発明の一実施例において、活性化トリガを活性化時刻後に受信したとき、イベントを、活性化トリガを受信し次第活性化させることができる。この実施例は、上述した動的活性化に該当する。サーバが活性化を遅く認識して活性化トリガを受信機に送信できなかった場合、受信機の次の要求を待った後、次の要求に対する応答として活性化トリガを送ることができる。この場合、活性化トリガは過去の活性化時刻を示すことができる。ここで、受信機は活性化トリガを受信し次第活性化トリガを適用することができる。
本発明の一実施例において、対話型サービス処理方法は、新しいアプリケーションパラメータテーブルを直ちにダウンロードする段階を更に含むことができる。トリガが新しいアプリケーションパラメータテーブルを識別するアプリケーションパラメータテーブル識別子を含むとき、受信機は、アプリケーションパラメータテーブルと共に配信されたURL情報を用いて既に新しいアプリケーションパラメータテーブルを検索していない限り、新しいアプリケーションパラメータテーブルを直ちにダウンロードする。前述したように、受信機は、新しいアプリケーションパラメータテーブル識別子を有するトリガを受信したとき、新しいアプリケーションパラメータテーブル(例えば、TPT)をダウンロードすることによって、関係したセグメントに対して対話型サービスの提供で新しい情報を取得することができる。本発明の一実施例において、受信機は、httpプロトコルを用いて新しいアプリケーションパラメータテーブルを提供するようにアプリケーションパラメータテーブルサーバに要求し、新しいアプリケーションパラメータテーブルをダウンロードすることができる。ここで、アプリケーションパラメータテーブルは、本発明の一実施例によるXML又は二進フォーマットであってもよい。アプリケーションパラメータテーブル識別子は、上述したlocator_partであってもよい。ここで、URL情報は、上述したURLListであってもよい。
本発明の一実施例において、時間はメディア時間であってもよく、メディア時間は、コンテンツアイテムの再生中のいずれかの時点を参照するパラメータであってもよい。
本発明の一実施例において、アプリケーションは、宣言的オブジェクト、トリガされた宣言的オブジェクト、非実時間宣言的オブジェクト、又は非結合宣言的オブジェクトである。
本発明の一実施例において、要求及び応答が送信及び受信されない限り、通信セッションは閉じた状態になり得る。通信セッションは要求インスタント間では開いた状態に維持されない。受信機は、通信セッションが開いた状態に維持される時、通信セッションを介して応答を受信することができる。
本発明の一実施例において、受信機の代わりにサーバがまずメッセージを送ることもできる。すなわち、サーバ(例えば、ACRサーバ)は、いつでもメッセージをクライアント(例えば、受信機)に送信することができる。
本発明の一実施例において、サーバは必ずしも追加の知能を必要としない。サーバは単にデータベースから発見された情報を受信機(例えば、ACRクライアント)に配信することもできる。ACRインジェストモジュールが本発明の動作に対して知能の役割を担ってもよい。
図40は、本発明において、受信機の構造の一実施例を示す図である。
本発明の一実施例において、受信機は、アンテナrcvr1010、チューナrcvr1020、VSB又はDVB復調器rcvr1030、MPEG−2TSシステム復号器rcvr1040、字幕モジュールrcvr1050、トリガモジュールrcvr1060、ウェブブラウザrcvr1070、ネットワークプロトコルスタックrcvr1080、ネットワークインタフェースrcvr1090、UIモジュールrcvr1100、オーディオ復号器rcvr1110、ビデオ復号器rcvr1120、スピーカrcvr1130、表示モジュールrcvr1140、グラヒックプロセッサrcvr1150、リモコン受信器rcvr1160及び/又はリモコンrcvr1170を含むことができる。
アンテナrcvr1010は、放送ストリームによって放送信号を受信することができる。ここで、アンテナrcvr1010は、通常の技術分野で用いられるものであってもよい。
チューナrcvr1020は、受信機のチャネルを探索して合わせることができ、無線周波増幅器、局部発振器、周波数変換入力回路、探索器(seeker)などを含むことができる。チューナrcvr1020は、通常の技術分野で用いられるものであってもよい。
VSB又はDVB復調器rcvr1030は、VSB信号又はDVB信号を復調できる。VSB又はDVB復調器rcvr1030は、変調されたVSB又はDVB(例えば、OFDM変調された信号)を元の信号に復元できる。VSB又はDVB復調器rcvr1030の復調過程は、通常の技術分野で用いられるものであってもよい。
MPEG−2TSシステム復号器rcvr1040は、復調された信号のトランスポートストリーム(TS)を復号することができる。MPEG−2TSシステム復号器rcvr1040は、トランスポートストリームから字幕ストリームを得て字幕モジュールrcvr1050に配信することができる。MPEG−2TSシステム復号器rcvr1040は、復号されたオーディオ及びビデオ信号をオーディオ/ビデオ復号器rcvr1120に送ることができる。
字幕モジュールrcvr1050は、字幕ストリームを受信することができる。字幕モジュールrcvr1050は、サービス#6又は他のサービスを監視し、サービス#6又は当該トリガの送信のためのサービスが選択されてトリガモジュールrcvr1060に送られるか否か、又は字幕テキストが処理されて画面に見られるか否かを判断できる。トリガデータは、トリガモジュールrcvr1060に配信することができる。他の字幕サービスは、字幕テキスト処理をしてグラヒックプロセッサrcvr1150に送ることができる。
トリガモジュールrcvr1060は、トリガ、TPT、及び/又はAMT情報などをパースし、パースされたデータを処理できる。トリガモジュールrcvr1060は、トリガのURI情報値を用いて、ネットワークプロトコルスタックrcvr1080を介して当該ネットワークに接続することができる。URI情報値は、HTTPサーバのアドレスであってもよい。トリガモジュールrcvr1060は、TPTファイル内容を分析してTDO URLを得ることができる。また、トリガモジュールrcvr1060は、AMTをパースしてデータを処理できる。その他の情報もパースして得ることができる。AMTメッセージを受信した後には、定められた時間及び動作によって、ウェブブラウザに該当するTDO URLを配信したり、又は定められた時間に、現在動作するTDOを中断させたりすることができる。これは、TDO動作に該当する動作であって、トリガモジュールrcvr1060がウェブブラウザに命令をして動作できるようにすることができる。本発明によるトリガモジュールrcvr1060の動作についての詳細は後述する。
ウェブブラウザrcvr1070は、トリガモジュールrcvr1060が下した命令、UIモジュールrcvr1100から配信されたブラウザキーコード、リモコン受信器rcvr1160から配信されたブラウザキーコードなどを受信し、ネットワークプロトコルスタックrcvr1080と通信することができる。
ネットワークプロトコルスタックrcvr1080は、トリガモジュールrcvr1060及びウェブブラウザと通信し、ネットワークインタフェースrcvr1090を介してサーバに接続することができる。
ネットワークインタフェースrcvr1090は、他の様々な装置との共通接続又はネットワーク計算機及び外部網との接続を行う。ネットワークインタフェースはサーバに接続して、TDO、TPT、AMTなどをダウンロードすることができる。ここで、ネットワークインタフェースrcvr1090の動作は、通常の技術分野で用いられるネットワークインタフェースrcvr1090の動作であってもよい。本発明によるネットワークインタフェースrcvr1090の動作についての詳細は後述する。
UIモジュールrcvr1100は、リモコンrcvr1170を用いて視聴者が入力した情報を、リモコン受信器rcvr1160を介して受信することができる。受信した情報が、通信網を用いたサービスなどに関するものであるとき、ブラウザキーコードをウェブブラウザに配信することができる。受信した情報が現在見られているビデオに関するものであるとき、グラヒックプロセッサrcvr1150を介して表示モジュールrcvr1140に信号を配信することができる。
オーディオ復号器rcvr1110は、MPEG−2TSシステム復号器rcvr1040から配信されたオーディオ信号を復号することができる。その後、復号したオーディオ信号をスピーカに送り、視聴者に出力されるようにすることができる。ここで、オーディオ復号器rcvr1110は、通常の技術分野で用いられるオーディオ復号器であってもよい。
ビデオ復号器rcvr1120は、MPEG−2TSシステム復号器rcvr1040から配信されたビデオ信号を復号することができる。その後、復号したビデオ信号を表示モジュールrcvr1140に送り、視聴者に出力されるようにすることができる。ここで、ビデオ復号器rcvr1120は、通常の技術分野で用いられるビデオ復号器であってもよい。
スピーカrcvr1130は、オーディオ信号を視聴者に出力できる。スピーカは、通常の技術分野で用いられるスピーカであってもよい。
表示モジュールrcvr1140は、ビデオ信号を視聴者に出力できる。表示モジュールrcvr1140は、通常の技術分野で用いられる表示装置であってもよい。本発明による表示モジュールrcvr1140の動作についての詳細は後述する。
グラヒックプロセッサrcvr1150は、字幕モジュールrcvr1050から配信された字幕テキストと、UIモジュールrcvr1100から配信された視聴者の入力情報とをグラヒック処理を行うことができる。処理された情報は表示モジュールrcvr1140に配信することができる。グラヒックプロセッサrcvr1150は、通常の技術分野で用いられるグラヒックプロセッサであってもよい。
リモコン受信器rcvr1160は、リモコンrcvr1170から情報を受信することができる。このとき、キーコードはUIモジュールrcvr1100に配信し、ブラウザキーコードはウェブブラウザに配信することができる。
リモコンrcvr1170は、視聴者が入力した信号をリモコン受信器rcvr1160に配信する。リモコンrcvr1170は、視聴者が仮想チャネルを切り替えようとする入力を取得することができる。また、アプリケーションに対して視聴者が選択した情報などを取得することができる。リモコンrcvr1170は、受信した情報をリモコン受信器rcvr1160に配信することができる。このとき、赤外線(IR)を用いて当該情報を一定距離以上離れた遠隔から配信することもできる。
図41は、セットトップボックスで放送をHDMI(登録商標)又は外部入力を介して受信する場合における受信機の構造の一実施例を示す図である。
図41に示す本発明の一実施例において、受信機は、アンテナrcvr2010、チューナrcvr2020、セットトップボックスrcvr2030、VSB又はDVB復調器rcvr2040、HDMI(登録商標)rcvr2050、MPEG−2TSシステム復号器rcvr2060、字幕モジュールrcvr2070、トリガモジュールrcvr2080、ウェブブラウザrcvr2090、ネットワークプロトコルスタックrcvr2100、ネットワークインタフェースrcvr2110、UIモジュールrcvr2120、ACRモジュールrcvr2130、オーディオ復号器rcvr2140、ビデオ復号器rcvr2150、スピーカrcvr2160、表示モジュールrcvr2170、グラヒックプロセッサrcvr2180、リモコン受信器rcvr2190、リモコンrcvr2200を含むことができる。
この場合には、放送ストリームのビデオとオーディオが生データ(raw data)であるため、字幕ストリームに含まれているトリガを受信できないであろう。本発明についての詳細は後述する。
ここで、セットトップボックスrcvr2030、HDMI(登録商標)rcvr2050、ACRモジュールrcvr2130以外のモジュールは、図40の実施例で説明したモジュールと類似の役割を持つ。
セットトップボックスrcvr2030、HDMI(登録商標)rcvr2050、ACRモジュールrcvr2130に関する説明は、次のとおりである。
セットトップボックスrcvr2030は、デジタル網を介してビデオサーバから受信した圧縮信号を、元来の映像及び音声信号に復元できる。TVをインターネットユーザインタフェースとしてもよい。
HDMI(登録商標)rcvr2050は、非圧縮方式のデジタルビデオ/オーディオインタフェース規格の一つである高画質マルチメディアインタフェースであってもよい。HDMI(登録商標)rcvr2050は、セットトップボックスrcvr2030及びAV機器、すなわち、オーディオ復号器rcvr2140、ビデオ復号器rcvr2150との間にインタフェースを提供することができる。
ACRモジュールrcvr2130は、オーディオ復号器rcvr2140及びビデオ復号器rcvr2150からの放送コンテンツを自動で認識することができる。認識された現在のコンテンツに基づいて、トリガモジュールrcvr2080及びネットワークインタフェースrcvr2110を介してACRサーバに問い合わせ(query)を送り、トリガのためのTPT/AMTを受信することができる。
図42は、イベント主導型モデルにおける対話型サービス処理装置の一実施例を示す図である。
本発明によるイベント主導型モデルにおける対話型サービス処理装置の一実施例は、受信モジュール42010、識別子抽出モジュール42020、及び/又はネットワークインタフェース42030を備えることができる。
受信モジュール42010は、外部の復号部から非圧縮オーディオコンテンツ又は非圧縮ビデオコンテンツを受信する。
外部の復号部は、上述したSTBであってもよい。
非圧縮オーディオコンテンツ又は非圧縮ビデオコンテンツは、上述したSTB(外部の復号部)が受信機に配信するオーディオ/ビデオコンテンツであってもよい。
ここで、受信モジュール42010は、図41のHDMI(登録商標)に該当できる。受信モジュール42010は、図40又は図41に示していないモジュールであってもよい。受信モジュール42010は、設計者によって修正されてもよい。
外部の復号部は、MVPDなどから配信されたA/Vコンテンツを復号した後、受信モジュール42010に配信することができる。非圧縮オーディオコンテンツ又は非圧縮ビデオコンテンツは、上述したACRインジェストモジュールの動作のとおりに処理された状態であってもよい。すなわち、ACRインジェストモジュールは、指紋ACRシステムの場合にフレームの署名(指紋)を算出し、又はコードに基づく透かしACRシステムの場合に、コードからなる透かしをフレームに挿入することができる。ここで、フレームは、STBによって復号/圧縮解除される前のオーディオ/ビデオコンテンツに関するものであってもよい。ACRインジェストモジュールは、他のメタデータと共に署名又はコードに関係した各フレームのmedia_timeをデータベースに保存することができる。
識別子抽出モジュール42020は、受信モジュール42010によって受信された非圧縮オーディオコンテンツ又は非圧縮ビデオコンテンツの複数のフレームから周期的に識別子を抽出する。
識別子は、受信されたコンテンツのフレームを識別することができる。識別子は、指紋署名又は透かしコードであってもよい。本実施例は、指紋又は透かしに制限されない。
ここで、“抽出”とは、配信された非圧縮オーディオコンテンツ又は非圧縮ビデオコンテンツの複数のフレームから周期的に識別子を抽出する過程のことを指し、上述した“署名算出”、“透かし抽出”、“署名生成”に対応できる。
識別子抽出モジュール42020は、一つのフレームに対応する識別子を周期的に抽出する。抽出された識別子は、前述したように、ACRサーバに送ることができる。ACRサーバは、前述したように、受信された識別子をデータベースにある記録と照合することができる。ACRサーバ及びデータベースは、上述したACRサーバ及びデータベースであってもよい。データベースにある記録は、ACRインジェストモジュールによって事前に保存された記録であってもよい。
識別子抽出モジュール42020は、図41のACRモジュールに該当できる。又は、識別子抽出モジュール42020は、図40又は図41に示していないモジュールであってもよい。識別子抽出モジュール42020は、設計者によって修正されてもよい。
本発明の一実施例において、識別子抽出周期は5秒であってもよい。識別子抽出周期は、設計者の意図によって変更されてもよい。
ネットワークインタフェース42030は、抽出された識別子を含む要求をサーバに送り、サーバに送られた要求及び識別子がデータベースにある記録又は照合された記録に存在するトリガと一致するか否かによってサーバからトリガを受信する。ここで、ネットワークインタフェース42030は、要求に基づくトリガを受信することができる。
ネットワークインタフェース42030は、図41のネットワークインタフェースに該当できる。又は、ネットワークインタフェース42030は、図40又は図41に示していないモジュールであってもよい。ネットワークインタフェース42030は、設計者によって修正されてもよい。
抽出された識別子は、指紋署名又は透かしコードであってもよい。本実施例は、指紋又は透かしに制限されない。
ここで、要求は、識別子を含むことができる。ネットワークインタフェース42030は周期的に要求をサーバに送信することができる。一つの要求は一つの識別子を含むことができる。周期は設計者によって修正されてもよい。
サーバは、上述したACRサーバであってもよい。サーバは、要求を受信してデータベースにある記録と照合することができる。ACRサーバ及びデータベースは、上述したACRサーバ及びデータベースであってもよい。データベースにある記録は、ACRインジェストモジュールによって事前に保存された記録であってもよい。
ネットワークインタフェース42030は、上述した要求に対するいかなる場合にも応答を受信しない。ネットワークインタフェース42030は、新しいセグメントが検出されたか、又はイベント活性化が装置に配信される必要があるとき、トリガを受信することができる。その他の場合に、装置はトリガを受信しなくてもよい。しかし、装置は設計者の意図によって上述した場合以外の場合にトリガを受信してもよい。
ここで、セグメントは、上述した対話型サービスセグメントであってもよい。
新しいセグメントは、現アプリケーションパラメータテーブル又はTPT以降に使われるセグメントのことを指すこともできる。
ここで、「イベント活性化が受信機に配信される必要があるとき」とは、イベント活性化が予定された場合や活性化される必要があるイベントがまだ活性化されていない場合を意味する。
トリガは、受信モジュール42010がSTBから受信したコンテンツに関するものであってもよい。
コンテンツは、STBから配信されたコンテンツであってもよい。
ここで、トリガは、コンテンツの現在時刻を示し、アプリケーションパラメータテーブルで特定対話型イベントを参照するか、又は当該イベントが現在又は指定された未来の時間に実行されることを知らせることができる。
ここで、アプリケーションパラメータテーブルは、少なくとも一つのアプリケーションに関する情報を含むことができる。
サーバは、上述したACRサーバであってもよい。データベースは、上述したデータベースであってもよい。識別子は、指紋署名又は透かしコードであってもよい。本実施例は、指紋又は透かしに限定されない。
サーバは、受信された要求/識別子をデータベースにある記録と照合することができる。要求/識別子は、ACRインジェストモジュールによってデータベースに事前に保存された記録と照合することができる。識別子がデータベースに保存された識別子と一致すると、サーバは、デートベースから識別子に関係した記録を受信することができる。この場合、記録は、時間ベーストリガ又は活性化トリガを含むことができる。いかなるトリガが記録に含まれるかは、いかなるトリガがACRインジェストモジュールによって事前に記録に挿入されているかによる。データベースから記録を受信したとき、サーバは、受信された一トリガ又は複数トリガをネットワークインタフェース(39030)に送ることができる。
本発明の一実施例において、トリガは、識別子が新しいセグメントに対応するとき、時間ベーストリガとなり得る。時間ベーストリガは、受信機が新しいセグメントに関係した新しいアプリケーションパラメータテーブルを取得できるようにするために用いることができる。時間ベーストリガは、上述した時間ベーストリガ動作に従うことができる。
本発明の一実施例において、トリガは、イベントが活性化される予定であるときはいつも活性化トリガとなり得る。活性化トリガは、イベントに対する活性化時刻を設定する。活性化トリガは、上述した活性化トリガ動作に従うことができる。活性化トリガは、特定時間に活性化を発生させるためにアプリケーションのイベントに適用することができる。視聴者は、イベント活性化によって対話型サービスを受けることができる。本発明の一実施例による活性化トリガ配信の場合、対話型サービスは、上述したACR環境に、すなわち、受信機がインターネット接続を有し、放送ストリームからの非圧縮オーディオ及びビデオにだけ利用できる場合に提供することができる。
本発明の一実施例において、装置が同一のイベント活性化に対して一つよりも多い活性化トリガを受信したとき、活性化トリガを一回適用することができる。前述したように、装置は、同一のイベント活性化に対して複数の活性化トリガを受信することができる。本発明の一実施例によれば、識別子は周期的に抽出されてサーバに送信されうる。ここで、複数の活性化トリガを周期的な要求に対する応答として受信することができる。この場合、活性化トリガが同一の“t=”項を有するため、装置は、活性化トリガが重複したと認識し、前述したように一つの活性化トリガだけを適用することができる。
本発明の一実施例において、活性化トリガは、受信機が活性化トリガを適用する必要がある前に受信することができる。これによって、イベントを正しい活性化時刻に活性化させることができる。本実施例は、上述した静的活性化に該当できる。
本発明の一実施例において、イベントは、活性化トリガを受信次第、又は活性化トリガが活性化時刻以降に受信されたときに活性化されてもよい。この実施例は、上述した動的活性化に該当する。サーバは、活性化を認識するのが遅く、活性化トリガを装置に送信できなかった場合、装置の次の要求を待った後、次の要求に対する応答として活性化トリガを送ることができる。この場合、活性化トリガは、過去の活性化時刻を示すことができる。ここで、装置は活性化トリガを受信し次第活性化トリガを適用することができる。
本発明の一実施例において、ネットワークインタフェース42030はさらに、トリガが新しいアプリケーションパラメータテーブルを識別するアプリケーションパラメータテーブル識別子を含むとき、装置がアプリケーションパラメータテーブルと共に配信されたURL情報を用いて既に新しいアプリケーションパラメータテーブルを検索していない限り、新しいアプリケーションパラメータテーブルを直ちにダウンロードするように構成されてもよい。前述したように、装置は、新しいアプリケーションパラメータテーブル識別子を有するトリガを受信したとき、新しいアプリケーションパラメータテーブル(例えば、TPT)をダウンロードすることによって、関係したセグメントに対して対話型サービスの提供で新しい情報を取得することができる。本発明の一実施例において、装置は、httpプロトコルを用いて新しいアプリケーションパラメータテーブルを提供するようにアプリケーションパラメータテーブルサーバに要求し、新しいアプリケーションパラメータテーブルをダウンロードすることができる。ここで、アプリケーションパラメータテーブルは、本発明の一実施例によるXML又は二進フォーマットであってもよい。アプリケーションパラメータテーブル識別子は、上述したlocator_partであってもよい。ここで、URL情報は、上述したURLListであってもよい。
本発明の一実施例において、時間はメディア時間であってもよいし、メディア時間は、コンテンツアイテムの再生中のいずれかの時点を参照するパラメータであってもよい。
本発明の一実施例において、アプリケーションは、宣言的オブジェクト、トリガされた宣言的オブジェクト、非実時間宣言的オブジェクト、又は非結合宣言的オブジェクトである。
本発明の一実施例において、要求及び応答が送信及び受信されない限り、通信セッションは閉じた状態になり得る。通信セッションは、要求インスタント間には開いた状態に維持されない。受信機は、通信セッションが開いた状態に維持されるとき、通信セッションを介して応答を受信することができる。
本発明の一実施例において、受信機の代わりにサーバがまずメッセージを送ることもできる。すなわち、サーバ(例えば、ACRサーバ)はいつでもメッセージをクライアント(例えば、装置)に送信することができる。
本発明の一実施例において、サーバは追加の知能を必要としなくてもよい。サーバは単に情報をデータベースからネットワークインタフェース42030に配信してもよい。ACRインジェストモジュールが本発明の動作について知能の役割を担ってもよい。
図面を参照してそれぞれ説明した実施例を結合して、新しい実施例として実現することができる。また、当業者は、本発明の範囲から逸脱することなく、上述した実施例を実行するプログラムを記憶している、計算機で読み取り可能な記録媒体を設計することもできる。
本発明による装置及び方法は上述の実施例に制限されず、実施例は種々の方式で選択的に結合及び修正されてもよい。
一方、本発明の放送番組に関係した対話型サービスを処理する方法をネットワークデバイスに備えられた、プロセッサが読み取り可能な記録媒体に、プロセッサが読み取り可能なコードとして具現することが可能である。プロセッサが読み取り可能な記録媒体は、プロセッサが読み取り可能なデータが記憶されるいかなる種類の記録装置をも含む。プロセッサが読み取り可能な記録媒体の例には、ROM、RAM、CD−ROM、磁気テープ、フレキシブルディスク、光データ記憶装置などがあり、また、インターネットを介した送信などのような搬送波の形態で具現されるものも含む。また、プロセッサが読み取り可能な記録媒体は、ネットワークで接続された計算機システムに分散されて、分散方式でプロセッサが読み取り可能なコードが記憶されて実行されてもよい。
また、以上では本発明の好適な実施例について図示及び説明したが、本発明は、上述した特定の実施例に限定されず、特許請求の範囲で請求する本発明の要旨から逸脱することなく、本発明の属する技術の分野における通常の知識を有する者にとって様々な変形実施が可能であることはもちろんであり、このような変形実施は本発明の技術的思想又は展望から個別的に理解されてはならない。
そして、本明細書では物の発明及び方法の発明が説明されており、必要によって両発明の説明は補充的に適用されてもよい。
発明の実施例は、前述したとおり、発明を実施するための形態で詳述された。
本発明は、放送サービス提供に関係した一連の産業分野で利用可能である。