以下、本開示を実施するための最良の形態(以下、実施の形態と称する)について、図面を参照しながら詳細に説明する。
<1.実施の形態>
[放送システムの構成例について]
図1は、実施の形態である放送システムを示している。この放送システム10は、放送側に設けられる放送装置21およびサーバ22、並びに受信者側にそれぞれ設けられる受信装置30および外部装置40から構成される。
この放送システム10は、従来のテレビジョン放送サービスにおける番組放送サービスおよびデータ放送サービスに加えて、例えば、受信中の番組やCMに関連する情報をその進行に連動して更新、表示するような新たなサービス(以下、新情報サービスと称する)を実現するものである。新情報サービスは、受信装置30または外部装置40にて、サーバ22から供給されるアプリケーションプログラムが実行されることにより実現される。
放送装置21は、地上デジタル放送網、衛星放送網、ケーブルテレビ網などの放送網2を介してデジタル放送信号を放送する。このデジタル放送信号には、番組を構成する映像、音声、字幕などの信号、データ放送サービスのための信号が含まれる。さらにデジタル放送信号の所定の位置には、受信装置30を制御するためのアプリケーション制御記述子、コマンド情報が含まれている。なお、アプリケーション制御記述子、コマンド情報は、それぞれ同一内容のものが所定の期間繰り返し放送される。
アプリケーション制御記述子は、新情報サービスがサービス(いわゆるチャンネルのこと)単位で実行される場合には、デジタル放送信号に含まれるSDT(service description table)に含めて放送される。新情報サービスが番組単位で実行される場合には、デジタル放送信号に含まれるEIT(event information table)に含めて放送される。なお、アプリケーション制御記述子を番組のPMT(program map table)に含めて放送するようにしてもよい。
コマンド情報は、例えば、番組の映像ストリームの所定の位置に記述されて、または番組の映像にコード化されて埋め込まれて、所定の期間繰り返して放送される。
なお、アプリケーション制御記述子、およびコマンド情報の詳細については後述する。
サーバ22は、受信装置30からの要求に応じ、受信装置30にて新情報サービスを実現するためのアプリケーションプログラム(以下、新情報サービスアプリと略称する)を、インタネット3を介して受信装置30に供給する。また、サーバ22は、外部装置40からの要求に応じ、外部装置40にて新情報サービスを実現するための新情報サービスアプリを、インタネット3を介して外部装置40に供給する。
さらに、サーバ22は、受信装置30からの要求に応じ、受信装置30にて新情報サービスアプリの取得、起動、イベント発火、中断、または終了の動作を制御するために必要なアプリケーション制御データを、インタネット3を介して受信装置30に供給する。
受信装置30は、放送装置21から放送網2を介して放送されたデジタル放送信号を受信し、受信したデジタル放送信号に基づいて番組やCMの映像および音声を後段のモニタ(不図示)に出力する。また、受信装置30は、サーバ22から取得した新情報サービスアプリを実行することにより、番組やCMの映像に新情報サービスの映像を合成して表示する。受信装置30は、所定のインタフェースを介して外部装置40と接続することができる。受信装置30は、接続されている外部装置40のタイプ(後述)を識別することができる。受信装置30と外部装置40との接続は、無線LAN、Bluetooth(登録商標)、赤外線などを利用した無線接続でもいいし、有線LAN、USB、HDMI(登録商標)などを介した有線接続でもよい。
受信装置30は、単体として構成するようにしてもよいし、例えば、デジタルテレビジョン受像機やビデオレコーダなどに内蔵されているようにしてもよい。
外部装置40は、受信装置30からのコマンドに従い、サーバ22から新情報サービスアプリを取得、起動などの動作を行うことにより新情報サービスをユーザに提供する。外部装置40としては、例えば、スマートフォン、携帯情報端末、デジタルテレビジョン受像機、ビデオレコーダなどを挙げることができる。例えば、外部装置40としてのスマートフォン、携帯情報端末は、プラットフォームにアンドロイド(商標)が用いられているものを外部装置タイプ1、iOS(商標)が用いられているものを外部装置タイプ2などと分類することができる。
図2乃至図4は、放送システム10における情報の流れの概要を示している。
図2は、アプリケーション制御記述子に記述されているアプリケーション制御タイプ(図8におけるapplication_control_type)が1である場合を示している。
この場合、受信装置30は、デジタル放送信号に含まれるアプリケーション制御記述子に基づいて、新情報サービスアプリ(App)をサーバ22から取得する。外部装置40は、アプリケーション制御記述子に基づいて受信装置30で生成されたコマンドに従い、新情報サービスアプリをサーバ22から取得する。
この場合、後述するアプリケーション制御タイプが2または3である場合のように、デジタル放送信号からコマンド情報を検出したり、サーバ22からアプリケーション制御データを取得したりする必要ないので、受信装置30の処理負荷を軽減させることができる。
図3は、アプリケーション制御記述子に記述されているアプリケーション制御タイプが2である場合を示している。
この場合、受信装置30は、デジタル放送信号に含まれるコマンド情報に基づいて、新情報サービスアプリをサーバ22から取得する。外部装置40は、コマンド情報に基づいて受信装置30で生成された受信装置30からのコマンドに従い、新情報サービスアプリをサーバ22から取得する。
図4は、アプリケーション制御記述子に記述されているアプリケーション制御タイプが3である場合を示している。
この場合、受信装置30は、デジタル放送信号に含まれるアプリケーション制御記述子に基づいて、アプリケーション制御データをサーバ22から取得する。さらに、受信装置30は、アプリケーション制御データに基づいて、新情報サービスアプリをサーバ22から取得する。なお、サーバ22から取得されるアプリケーション制御データには、新情報サービスアプリの取得、起動などの動作に関するコマンドの他にメタデータ(番組に対応する字幕データなど)を含めることができる。外部装置40は、アプリケーション制御データに基づいて受信装置30で生成されたコマンドに従い、新情報サービスアプリをサーバ22から取得する。
この場合、新情報サービスアプリの動作タイミングを制御するためアプリケーション制御データを、デジタル放送信号とは異なる経路で受信装置30に供給することができる。
[受信装置30の構成例について]
図5は、受信装置30の構成例を示している。受信装置30は、チューナ61、多重分離部62、オーディオデコーダ63、音声出力部64、ビデオデコーダ65、解析部66、映像出力部67、制御部68、メモリ69、操作部70、通信I/F72、キャッシュメモリ73、アプリエンジン74、アプリ用メモリ75、および外部I/F76から構成される。
チューナ61は、ユーザによって選局されたサービス(チャンネル)に対応するデジタル放送信号を受信して復調し、その結果得られるTS(トランスポートストリーム)を多重分離部62に出力する。
多重分離部62は、チューナ61から入力されるTSからオーディオ符号化信号、およびビデオ符号化信号に分離し、オーディオ符号化信号をオーディオデコーダ63に、ビデオ符号化信号をビデオデコーダ65および解析部66に出力する。さらに、多重分離部62は、アプリケーション制御記述子が含まれ得るSDT、EITを含む制御信号をTSから分離して解析部66に出力する。
オーディオデコーダ63は、入力されたオーディオ符号化信号をデコードし、その結果得られる音声信号を音声出力部64に出力する。音声出力部64は、入力された音声信号を後段(例えば、スピーカ)に出力する。
ビデオデコーダ65は、入力されたビデオ符号化信号をデコードし、その結果得られる映像信号を解析部66および映像出力部67に出力する。
解析部66は、多重分離部62から入力されるSDT、EITに含まれているアプリケーション制御記述子を検出して解析し、解析結果に応じた処理を実行するとともに解析結果を制御部68に通知する。解析部66は、多重分離部62から入力されるビデオ符号化信号に含まれているコマンド情報を検出するか、ビデオデコーダ65から入力される映像信号にコード化されて埋め込まれているコマンド情報を検出して解析し、解析結果に応じた処理を実行するとともに解析結果を制御部68に通知する。
また、解析部66は、解析結果に応じて外部装置40に対するコマンドを生成して外部I/F76に出力する。さらに、解析部66は、通信I/F72およびインタネット3を介し、サーバ22からアプリケーション制御データを取得する。
図6は、解析部66に含まれる機能ブロックを示している。解析部66には、受信監視部81、アプリケーション制御記述子取得部82、アプリケーション制御記述子解析部83、コマンド情報検出部84、コマンド情報解析部85、外部装置コマンド生成部86、アプリケーション制御データ取得部87、セグメントデータシーケンス保持部88、およびセグメントデータ解析部89が含まれる。
受信監視部81は、選局によるサービス(チャンネル)の変更、受信中のサービスにおける番組の開始、終了を監視する。アプリケーション制御記述子取得部82は、多重分離部62から入力されるSDT,EITを保持しており、SDT,EITからアプリケーション制御記述子を取得する。アプリケーション制御記述子解析部83は、選局されたサービス、または番組に対応するアプリケーション制御記述子を解析する。
コマンド情報検出部84は、多重分離部62から入力されるビデオ符号化信号に含まれているコマンド情報を検出するか、ビデオデコーダ65から入力される映像信号にコード化されて埋め込まれているコマンド情報を検出する。コマンド情報解析部85は、検出されたコマンド情報を解析する。外部装置コマンド生成部86は、アプリケーション制御記述子、コマンド情報、またはセグメントデータの解析結果に基づき、外部装置40に対するコマンドを生成する。
アプリケーション制御データ取得部87は、選局されたサービス、または番組に対応するアプリケーション制御記述子の解析結果に基づき、サーバ22からアプリケーション制御データを取得する。セグメントデータ保持部88は、取得されたアプリケーション制御データを構成するセグメントデータシーケンスを保持する。セグメントデータ解析部89は、セグメントデータシーケンスを構成する各セグメントデータを解析する。
図5に戻る。映像出力部67は、ビデオデコーダ65から入力された映像信号を後段(例えばディスプレイ)に出力する。また、映像出力部67は、アプリエンジン74から入力される新情報サービスの映像と、ビデオデコーダ65から入力された映像信号を合成して後段に出力する。
制御部68は、メモリ69に記録されている制御用プログラムを実行することにより受信装置30の全体を制御する。また、制御部68は、解析部66から解析結果に基づき、新情報サービスアプリの取得(登録)、起動、イベント発火、中断、終了等を制御する。
メモリ69には、制御部68によって実行される制御用プログラムが記録されている。この制御用プログラムは、デジタル放送信号、またはインタネット3を介して供給される更新データに基づいて更新することができる。操作部70は、ユーザからの各種の操作を受け付けて、それに対応する操作信号を制御部68に通知する。
また、メモリ69には、ユーザによって予め入力されているユーザの年齢、性別、住所などのユーザのプロファイル情報が保持されている。
このプロファイル情報は、例えば、実行中の新情報サービスアプリにより参照され、ユーザのプロファイル情報が所定の条件を満たす場合のみ、実行中の新情報サービスアプリにおいてイベントを発火するような用途に用いることができる。
通信I/F72は、解析部66またはアプリエンジン74からの制御に従い、インタネット3を介してサーバ22に接続する。アプリエンジン74は、制御部68からの制御に従い、通信I/F72およびインタネット3を介してサーバ22から新情報サービスアプリを取得し、キャッシュメモリ73に保持させる。
アプリエンジン74は、制御部68からの制御に従い、キャッシュメモリ73に保持されている新情報サービスアプリを読み出して実行する。
アプリ用メモリ75は、ワークメモリ75Aおよび退避メモリ75Bを有する。アプリエンジン74は、実行中の新情報サービスアプリに関するデータをワークメモリ75Aに記録する。また、アプリエンジン74は、実行中の新情報サービスアプリを中断する場合、アプリ用メモリ75のワークメモリ75Aのデータを退避メモリ75Bに移動させる。そして、中断した新情報サービスアプリを再開する場合、退避メモリ75Bのデータをワークメモリ75Aに移動させて中断前の状態を復活させる。
なお、アプリ用メモリ75における同じサイズの2領域のうち、一方をワークメモリ75A、他方を退避メモリ75Bとして交互に切り替えるようにしてもよい。これにより、ワークメモリ75Aと退避メモリ75Bとの間でのデータの移動をなくすことができる。
外部I/F76は、外部装置40と無線または有線により接続を確立するとともに、外部装置40のタイプを識別して識別結果を解析部66に通知する。また、外部I/F76は、解析部66から入力される外部装置40に対するコマンドを外部装置40に送信する。
[外部装置40の構成例について]
図7は、外部装置40の構成例を示している。ただし、図7には、新情報サービスアプリの実行に関係する部位のみが示されており、新情報サービスアプリの実行に関係しない部位については適宜省略されている。
外部装置40は、外部I/F91、コマンド解析部92、制御部93、操作部94、メモリ95、アプリエンジン96、通信I/F97、および出力部98から構成される。
外部I/F91は、受信装置30の外部I/F76と無線または有線により接続し、受信装置30からのコマンドをコマンド解析部92に出力する。コマンド解析部92は、受信装置30からのコマンドを解析し、その解析結果を制御部93に出力する。
制御部93は、メモリ65に記録されている制御用プログラム(例えば、プラットフォームとしてのアンドロイド、iOSなど)を実行することにより外部装置40の全体を制御する。また、制御部93は、コマンド解析部92から解析結果に基づき、新情報サービスアプリの取得(登録)、起動、イベント発火、中断、終了等を制御する。
メモリ95には、制御部93によって実行される制御用プログラムが記録されている。操作部94は、ユーザからの各種の操作を受け付けて、それに対応する操作信号を制御部93に通知する。
アプリエンジン96は、制御部93からの制御に従い、通信I/F97およびインタネット3を介してサーバ22から新情報サービスアプリを取得して実行し、実行結果として得られる、受信装置30で受信中の番組に関連する情報の映像信号や音声信号を出力部98に出力する。する。通信I/F97は、アプリエンジン96からの制御に従い、インタネット3を介してサーバ22に接続する。
出力部98は、アプリエンジン96から入力される映像信号に対応する映像を表示し、音声信号に対応する音声を出力する。
[アプリケーション制御記述子について]
次に、デジタル放送信号に含めて放送されるアプリケーション制御記述子について説明する。アプリケーション制御記述子は、デジタル放送信号のSDTまたはEITに含めて放送される。
図8は、アプリケーション制御記述子のシンタックスの一例を示している。
全てのアプリケーション制御記述子には、対応するサービス(チャンネル)または番組を示すdescriptor_tag、当該アプリケーション制御記述子のデータ長を示すdescriptor_length、およびアプリケーション制御タイプを示すapplication_control_typeが記述される。
アプリケーション制御タイプが1である場合には、当該アプリケーション制御記述子に基づいて新情報サービスアプリを取得、実行などの動作を行う装置(記述子適用装置)を特定するためのdescriptor_device_typeが記述される。
記述子適用装置としては、当該アプリケーション制御記述子を受信した受信装置本体の他、外部装置をそのタイプを区別して指定することができる。さらに、例えば、外部装置タイプ1と外部装置タイプ2を同時に記述子適用装置に指定したり、受信装置本体と外部装置タイプ2を同時に記述子適用装置に指定したりするなど、受信装置本体、外部装置の各タイプを組み合わせて指定することも可能である。
また、アプリケーション制御記述子には、取得する新情報サービスアプリを特定するためのapplication_id、その新情報サービスアプリの取得先(サーバ22)を特定するためのURLのデータ長を示すapp_url_length、および当該URLを示すapp_url_byteが記述される。
さらに、その新情報サービスアプリの情報として、新情報サービスアプリのタイプ(例えば、HTML5,BML,Java(登録商標)など)を示すapp_type、チャンネルや番組が変更したときにおける新情報サービスアプリの動作有効範囲を示すapp_life_scope、および新情報サービスアプリの有効期限を示すapp_expire_dateが記述される。
アプリケーション制御タイプが3である場合には、アプリケーション制御データの取得先(サーバ22)を特定するためのURLのデータ長を示すapp_control_data_url_length、および当該URLを示すapp_control_data_url_byteが記述される。
[コマンド情報について]
次に、デジタル放送信号の映像ストリームなどに含めて放送されるコマンド情報について説明する。
図9は、コマンド情報に含まれる情報項目を示しており、図10は、コマンド情報のシンタックスの一例を示している。
コマンドID(command_id)は、当該コマンド情報の識別情報である。同一内容のコマンド情報が複数回送信される場合、各コマンド情報のコマンドIDは同一のものとなる。事業者ID(provide_id)は、新情報サービスアプリをユーザに提供する事業者を示す情報である。
コマンド適用装置タイプ(command_destination_device_type)は、当該コマンド情報に基づいて新情報サービスアプリに関する動作を制御する装置(コマンド適用装置)を示す。コマンド適用装置としては、当該コマンド情報を受信した受信装置本体の他、外部装置をそのタイプを区別して指定することができる。さらに、例えば、外部装置タイプ1と外部装置タイプ2を同時にコマンド装置に指定したり、受信装置本体と外部装置タイプ2を同時にコマンド適用装置に指定したりするなど、受信装置本体、外部装置の各タイプを組み合わせて指定することも可能である。
コマンドコード(command_code)は、当該コマンド情報の種類、具体的には、新情報サービスアプリの取得(登録)、起動、終了、イベント、または中断のいずれかを示す。
コマンド有効確率パラメータ(command_validity)は、複数の受信装置30からのサーバ22に対するアクセスを分散させるために、当該コマンド情報を受信した各受信装置30が当該コマンド情報に従って処理を実行すると判断するとき確率を指定するための値Nを示す。
例えば、数多く存在し得る受信装置30からのサーバ22に対するアクセスを4回に分散させるためには、同一のコマンド情報を4回送信するようにし、1回目のコマンド情報における有効確率パラメータN=4とし、2回目のコマンド情報における有効確率パラメータN=3とし、3回目のコマンド情報における有効確率パラメータN=2とし、4回目のコマンド情報における有効確率パラメータN=1とすればよい。
受信装置30に対してコマンド有効確率を通知することにより、複数の受信装置30がサーバ22にアクセスして新情報サービスアプリを取得する処理が一時期に集中しないように分散させることができる。
なお、サーバ22などへのアクセスを行わないコマンド情報の場合(コマンドコードが新情報サービスアプリの中断、終了など)、コマンド有効確率を常に1としておけばよい。
アプリID(application_id)は、当該コマンド情報に対応する新情報サービスアプリの識別情報である。アプリURL(app_url_byte)は、新情報サービスアプリの取得先(いまの場合、サーバ22)のURLである。
アプリタイプ(application_type)は、当該コマンド情報に対応する新情報サービスアプリのタイプ(例えば、HTML5,BML,Java(登録商標)など)を示す情報である。アプリ有効範囲(app_life_scope)は、チャンネルや番組が変更された場合における、実行中の新情報サービスアプリの動作を継続する範囲を示す。アプリ有効期限(app_expire_date)は、取得する新情報サービスアプリを起動可能な期間(取得する新情報サービスアプリの抹消する期限日時)を示す。
イベントID(event_id)は、当該コマンド情報のコマンドコードがイベントである場合のイベントの識別情報である。イベント付加情報(event_embedded_data_byte)は、当該イベント発火に伴って新情報サービスアプリに注入されるデータである。
図11乃至図13は、デジタル放送信号におけるコマンド情報の配置を示している。
例えば、図12および図13に示されるように、コマンド情報は、番組の映像に対応するMPEG2ビデオストリーム内のextensions_and_user_dataに配置して放送するようにする。
あるいは例えば、図14に示されるように、コマンド情報をコード化して番組の映像に埋め込んで放送するようにする。
同図Aは、コマンド情報を2次元バーコード化して、映像上の所定の位置(いまの場合、右下隅)に重畳合成する例を示している。同図Bは、コマンド情報を映像コード化して、映像の下部の数ラインに合成する例を示している。映像に合成されたコマンド情報は、受信装置30の解析部66によって検出される。
同図Aと同図Bのいずれの例においても、コマンド情報は番組の映像上に配置されているので、例えば、CATV網を利用してテレビジョン番組が再配信されるような場合においても、コマンド情報が削除されること無く受信装置30まで送信することができる。
また、同図Aと同図Bのいずれの例においても、映像上のコマンド情報は受信装置30のユーザによって視認され得るが、これが好ましくない場合、コマンド情報に相当する2次元バーコードまたは映像コードを、その周囲の画素と同じ画素によりマスクしてから表示するようにすればよい。
なお、デジタル放送信号におけるコマンド情報の配置は、図12乃至図14に示された例に限定されるものではない。
[アプリケーション制御データについて]
次に、サーバ22から受信装置30に供給されるアプリケーション制御データについて説明する。
図14は、アプリケーション制御データの構造を示している。アプリケーション制御データは、同図Aに示されるように、複数のセグメントデータにより構成されたセグメントデータシーケンスから成る。
セグメントデータは、同図Bに示されるように、セグメント有効期間として対応する番組の進行時間軸上の2点を示すstart_ptsおよびend_ptsとコマンドデータとから構成される。あるいは、セグメントデータは、同図Cに示されるように、セグメント有効期間とメタデータとから構成される。すなわち、セグメントデータには、コマンドデータまたはメタデータのいずれかが含まれており、1つのアプリケーション制御データ(セグメントデータシーケンス)に、コマンドデータを含むセグメントデータと、メタデータを含むセグメントデータを混在することができる。
図15から図20は、セグメントデータデータシーケンスのデータ構造の詳細例を示す。データ構造はXMLで表記することを想定しており、@の付く項目は上位要素に付随する属性を示し、それ以外の項目は要素を示す。
図15は、セグメントデータシーケンスのデータ構造を示している。セグメントデータシーケンス(segment_sequence)には、各セグメントデータに対して、その番号を示す@segment_number、セグメント有効期間の開始タイミングのPTS値を示すstart_pts、セグメント有効期間の終了タイミングのPTS値を示すend_ptsが記述される。なお、上記PTS値としては、ビデオストリームやオーディオストリームに埋め込まれている90KHzクロックのカウンタ値を用いることもできるが、時分秒で示す絶対時刻または番組開始からの相対時刻でもよい。さらに、コマンドデータまたはメタデータが記述される。
図16および図17は、セグメントデータにおけるコマンドデータの構造を示している。
@destinationは、当該コマンドデータに基づいて新情報サービスアプリに関する動作を制御する装置(コマンド適用装置)を示す。コマンド適用装置としては、当該コマンド情報を受信した受信装置本体の他、外部装置をそのタイプを区別して指定することができる。さらに、例えば、外部装置タイプ1と外部装置タイプ2を同時にコマンド装置に指定したり、受信装置本体と外部装置タイプ2を同時にコマンド適用装置に指定したりするなど、受信装置本体、外部装置の各タイプを組み合わせて指定することも可能である。@actionは、当該コマンドデータの種類、具体的には、新情報サービスアプリの取得、起動、終了、イベント、または中断のいずれかを示す。
diffusionは、コマンド情報におけるコマンド有効確率パラメータと同様、当該コマンドデータの適用タイミングを分散させるための情報である。diffusionは、分配数を示す@rate、最大遅延時間を示す@range、コマンド適用拡散期間を示す@periodが記述される。
applicationは、制御対象の新情報サービスアプリに関する情報であり、新情報サービスアプリの識別情報である@id、新情報サービスアプリの取得先を示す@url、新情報サービスアプリの有効期限を示す@expire_date、新情報サービスアプリの有効範囲を示す@scopeが記述される。
eventは、実行中の新情報サービスアプリにて発火されるイベントに関する情報であり、イベントの識別情報である@id、当該イベント発火に伴って新情報サービスアプリに注入されるデータを示す@related_dataが記述される。
図18は、セグメントデータにおけるメタデータの構造を示している。
@typeは、当該メタデータのタイプを示す。メタデータのタイプとしては、例えば、アプリ用データ(application_data)、テキスト字幕データ(caption)、ビットマップ字幕データ(subtitle)などを挙げることができる。@targetは、当該メタデータに対応する新情報サービスアプリの識別情報が記述される。これ以降には、メタデータのタイプ毎の情報が記述される。
図19は、メタデータタイプがビットマップ字幕データである場合の構造を示している。ビットマップ字幕データには、字幕シーケンス番号を示す@id、字幕表示領域左端位置を示す@left、字幕表示領域上端位置を示す@upper、字幕表示領域右端位置を示す@right、字幕表示領域下端位置を示す@lower、字幕の文字列に対応するビットマップデータであるbitmapが含まれる。
図20は、メタデータタイプがテキスト字幕データである場合の構造を示している。テキスト字幕データには、字幕シーケンス番号を示す@id、字幕の色を指定する@color、字幕表示開始水平位置を示す@region_left、字幕表示開始垂直位置を示す@region_upper、字幕の文字サイズを示す@size、字幕の文字フォントを示す@font、字幕の文字列であるtextが含まれる。
図21は、セグメントデータシーケンスのシンタックスの一例を示している。
同図の例では、セグメントデータシーケンスは、3つのセグメントデータから構成される。セグメント番号1のセグメントデータは、セグメント有効期間が12000乃至15000のコマンドデータであり、コマンド適用装置が受信装置本体、コマンドの種類が起動である。セグメント番号2のセグメントデータは、セグメント有効期間が13000乃至13100のコマンドデータであり、コマンド適用装置が受信装置本体、コマンドの種類がイベントである。セグメント番号3のセグメントデータは、セグメント有効期間が12000乃至20000のメタデータであり、メタデータタイプはアプリ用データである。
図22は、セグメントデータのメタデータタイプがビットマップ字幕データ(subtitle)である場合のシンタックスの一例を示している。
同図の例では、セグメント番号が10、セグメント有効期間が10000乃至12000、メタデータタイプがsubtitleとされている。また、字幕シーケンス番号が1、字幕表示領域左端位置が200、字幕表示領域上端位置が100、字幕表示領域右端位置が1400、字幕表示領域下端位置が300とされている。
同図のセグメントデータを受信した受信装置30では、例えば、図23に示すように、ビットマップによる字幕が番組の映像に合成表示される。
図24は、セグメントデータのメタデータタイプがテキスト字幕データ(caption)である場合のシンタックスの一例を示している。
同図の例では、セグメント番号が10、セグメント有効期間が10000乃至12000、メタデータタイプがcaptionとされている。また、字幕シーケンス番号が1、字幕表示開始水平位置が200、字幕表示開始垂直位置が100、文字サイズが20、字幕色がredとされている。
同図のセグメントデータを受信した受信装置30では、例えば、図25に示すように、テキストに基づく字幕が番組の映像に合成表示される。
[受信装置30の動作について]
次に、受信装置30の動作について説明する。図26は、受信装置30による新情報サービス対応処理を説明するフローチャートである。
この新情報サービス対応処理は、受信装置30が番組を受信している間、繰り返し実行されるものであり、既に受信装置30はデジタル放送信号に含まれるSDT、EITを取得、保持しているものとする。
ステップS1において、解析部66の受信監視部81は、ユーザによってサービス(チャンネル)が変更されたか否かを判定し、サービスが変更されたと判定した場合、処理をステップS2に進める。
ステップS2において、アプリケーション制御記述子取得部82は、変更後のサービスに対応するSDTにアプリケーション制御記述子が含まれているか否かを判定し、含まれている場合、ステップS3として、当該アプリケーション制御記述子を取得する。反対に、変更後のサービスに対応するSDTにアプリケーション制御記述子が含まれていないと判定された場合、処理はステップS1に戻される。
また、ステップS1において、ユーザによってサービスが変更されていないと判定された場合、処理はステップS4に進められる。ステップS4において、受信監視部81は、受信中のサービスで次の番組が開始されたか否かを判定し、次の番組が開始された場合、処理をステップS5に進める。なお、次の番組がまだ開始されない場合、処理はステップS1に戻される。
ステップS5において、アプリケーション制御記述子取得部82は、開始された番組に対応するEITにアプリケーション制御記述子が含まれているか否かを判定し、含まれている場合、ステップS6として、当該アプリケーション制御記述子を取得する。反対に、開始された番組に対応するEITにアプリケーション制御記述子が含まれていないと判定された場合、処理はステップS1に戻される。
ステップS7において、アプリケーション制御記述子解析部83は、ステップS3またはステップS6で取得されたアプリケーション制御記述子を解析し、アプリケーション制御タイプが1,2,3のいずれであるかを判定する。
ステップS7において、アプリケーション制御記述子のアプリケーション制御タイプが1であると判定された場合、処理はステップS8に進められる。ステップS8において、アプリケーション制御記述子解析部83は、アプリケーション制御記述子の解析結果に従い、記述子適用装置が受信装置本体であれば、アプリケーション制御記述子の解析結果を制御部68に通知する。アプリエンジン74は、制御部68の制御に従い、サーバ22から新情報サービスアプリを取得、起動する。なお、起動された新情報サービスアプリは、この後、アプリケーション制御記述子に含まれたapp_life_scopeが示す動作有効範囲において継続して実行される。そして、受信中のサービス、番組が動作有効範囲を超えたときに新情報サービスアプリが終了される。
以上説明したように、アプリケーション制御記述子のアプリケーション制御タイプが1である場合、アプリケーション制御記述子によって、番組やCMに連動して新情報サービスアプリを取得、起動させることができる。
ステップS7において、アプリケーション制御記述子のアプリケーション制御タイプが2であると判定された場合、処理はステップS9に進められる。ステップS9においては、放送されているコマンド情報に対応する処理(コマンド情報対応処理)が行われる。
コマンド情報対応処理について説明する。図27は、コマンド情報対応処理を詳述するフローチャートである。
ステップS11において、コマンド情報検出部84は、受信中のデジタル放送信号からコマンド情報の検出を開始し、コマンド情報を検出するまで待機する。コマンド情報が検出された場合、処理はステップS12に進められる。
ステップS12において、コマンド情報解析部85は、ステップS11で検出されたコマンド情報のコマンドIDを読み出し、当該コマンド情報に対してステップS14以降の処理を既に実行済みであるか否かを判定する。既にステップS14以降の処理を実行済みであると判定された場合、処理ステップS11に戻される。反対に、当該コマンド情報に対してステップS14以降の処理を実行していないと判定された場合、処理はステップS13に進められる。
ステップS13において、コマンド情報解析部85は、コマンド情報のコマンド有効確率パラメータNに基づき、今回の処理が有効であるか否か(処理をステップS14以降に進めるか、ステップS11に戻すか)を判定する。なお、コマンド情報にコマンド有効確率パラメータNが記述されていない場合(有効確率パラメータN=1である場合を含む)、処理はステップS14に進められる。
ステップS14において、コマンド情報解析部85は、コマンド情報のコマンド適用装置タイプを参照し、コマンド適用装置が受信装置本体であるか否かを判定し、コマンド適用装置が受信装置本体であると判定した場合、処理をステップS15に進める。
ステップS15において、コマンド情報解析部85は、コマンド情報のコマンドコードを参照し、コマンドの種類が、取得(登録)、起動、イベント、中断、または終了のいずれであるかを判別する。
ステップS16において、コマンド情報解析部85は、コマンドの種類が取得であったか否かを判断し、取得であった場合、処理はステップS17に進められる。
ステップS17において、コマンド情報解析部85は、コマンド情報を制御部68に供給する。制御部68は、アプリエンジン74を制御して、該コマンド情報のアプリIDにより特定される新情報サービスアプリを、アプリURLにより特定されるサーバ22から取得させる。取得された新情報サービスアプリは、キャッシュメモリ73に保持される。
ステップS16において、コマンドの種類が取得ではなかったと判定された場合、処理はステップS18に進められる。ステップS18において、コマンド情報解析部85は、コマンドの種類が起動であったか否かを判断し、起動であった場合、処理はステップS19に進められる。
ステップS19において、コマンド情報解析部85は、コマンド情報を制御部68に供給する。制御部68は、当該コマンド情報のアプリIDにより特定される新情報サービスアプリが中断中(サスペンド状態)であるか否かを判断する。具体的には、退避メモリ75Bに、当該新情報サービスアプリに、中断の状態を示すデータが退避されている場合に中断中であると判断する。
ステップS19において、当該新情報サービスアプリが中断中ではないと判断された場合、処理はステップS20に進められる。ステップS20において、アプリエンジン74は、制御部68からの制御に従い、コマンド情報のアプリIDにより特定される新情報サービスアプリのプログラムデータが未取得の場合(キャッシュメモリ73に保持されていない場合)にはそれを取得する。
ステップS21において、アプリエンジン74は、制御部68からの制御に従い、現在実行中の新情報サービスアプリがあるならば、それを終了させる。ステップS22において、アプリエンジン74は、制御部68からの制御に従い、コマンド情報のアプリIDにより特定される新情報サービスアプリを起動する。この後、処理はステップS11に戻り、それ以降が繰り返される。
なお、ステップS19において、アプリIDにより特定される新情報サービスアプリが中断中(サスペンド状態)であると判断された場合、処理はステップS23に進められる。ステップS23において、アプリエンジン74は、制御部68からの制御に従い、退避メモリ75Bのデータをワークメモリ75Aに移して、アプリIDにより特定される新情報サービスアプリを起動する。これにより、中断中の新情報サービスアプリが中断された状態から再開されることになる。この後、処理はステップS11に戻り、それ以降が繰り返される。
ステップS18において、コマンドの種類が起動ではなかったと判断された場合、処理はステップS24に進められる。ステップS24において、コマンド情報解析部85は、コマンドの種類がイベントであったか否かを判断し、イベントであったと判断された場合、処理はステップS25に進められる。
ステップS25において、コマンド情報解析部85は、コマンド情報を制御部68に供給する。制御部68は、当該コマンド情報のアプリIDと、動作中の新情報サービスアプリのアプリIDが一致する場合のみ、アプリエンジン74を制御して、動作中の新情報サービスアプリにおいて、コマンド情報のイベントIDに対応するイベントを発火(実行)させる。この後、処理はステップS11に戻り、それ以降が繰り返される。
ステップS24において、コマンドの種類がトイベントではなかったと判断された場合、処理はステップS26に進められる。ステップS26において、コマンド情報解析部85は、コマンドの種類が中断であるか否かを判断し、中断であると判断された場合、処理はステップS27に進められる。
ステップS27において、コマンド情報解析部85は、コマンド情報を制御部68に供給する。アプリエンジン74は、制御部68からの制御に従い、現在実行中の新情報サービスアプリの状態を示すデータ(すなわち、現在ワークメモリ75Aに書き込まれているデータ)を退避メモリ75Bに退避させた後、現在実行中の新情報サービスアプリを終了する。この後、処理はステップS11に戻り、それ以降が繰り返される。
ステップS26において、コマンドの種類が中断ではなかったと判断された場合、コマンドの種類は終了であったはずなので、処理はステップS28に進められる。ステップS28において、コマンド情報解析部85は、コマンド情報を制御部68に供給する。アプリエンジン74は、制御部68からの制御に従い、コマンド情報のアプリIDにより特定される新情報サービスアプリが実行中であれば、それを終了させる。
ステップS29において、アプリエンジン74は、制御部68からの制御に従い、アプリIDにより特定される新情報サービスアプリに関するデータを、ワークメモリ75Aおよび退避メモリ75Bから消去するとともに、新情報サービスアプリをキャッシュメモリ73から消去させる。この後、処理はステップS11に戻り、それ以降が繰り返される。
ステップS14において、コマンド適用装置が受信装置本体ではないと判定された場合、処理はステップS30に進める。
ステップS30において、コマンド情報解析部85は、外部I/F76からの通知に基づき、コマンド情報のコマンド適用装置タイプに対応する外部装置40が接続されているか否かを判定し、接続されている場合、処理はステップS31に進められる。
ステップS31において、外部装置コマンド生成部86は、コマンド情報のコマンド適用装置タイプ、コマンドコードなどに基づき、接続されている外部装置40に対するコマンドを生成する。生成されたコマンドは、外部I/F76を介して外部装置40に通知される。外部装置40では、このコマンドに応じた処理が実行される。この後、処理はステップS11に戻り、それ以降が繰り返される。
なお、ステップS30において、コマンド適用装置タイプに対応する外部装置40が接続されていないと判定された場合、ステップS31はスキップされる。
また、外部装置40に対するコマンドを生成する代わりに、コマンド情報をそのまま外部装置40に供給し、外部装置40にてコマンド情報を解析し、解析結果に応じた処理を行うようにしてもよい。
以上でコマンド情報対応処理の説明を終了する。アプリケーション制御記述子のアプリケーション制御タイプが2である場合に実行されるコマンド情報対応処理によれば、番組やCMに連動して新情報サービスアプリを取得したり、起動したり、イベントを発火させたり、終了したりすることができる。さらに、新情報サービスアプリを実行中の状態を保持したままで中断させ、中断した状態から再開することができる。
図26に戻る。ステップS7において、アプリケーション制御記述子のアプリケーション制御タイプが3であると判定された場合、処理はステップS10に進められる。ステップS10においては、サーバ22から取得されるアプリケーション制御データに対応する処理(アプリケーション制御データ対応処理)が行われる。
アプリケーション制御データ対応処理について説明する。図28は、アプリケーション制御データ対応処理を詳述するフローチャートである。
ステップS41において、アプリケーション制御データ取得部87は、アプリケーション制御記述子のapp_control_data_url_byteに特定されるサーバ22からアプリケーション制御データを取得する。取得されたアプリケーション制御データ(セグメントデータシーケンス)は、セグメントデータシーケンス保持部88に保持される。
ステップS42において、セグメントデータ解析部89は、保持されたセグメントデータシーケンスを構成するセグメントデータのうち、受信中の番組の進行タイミングと合致するものを検出する。具体的には、受信中の番組の進行位置を示すPTSが、セグメントデータのセグメント有効期間内であるものを検出する。
ステップS43において、セグメントデータ解析部89は、検出したセグメントデータにコマンドデータが含まれている場合には、上述したコマンド情報対応処理と同様の処理を行う。また、検出したセグメントデータにメタデータが含まれている場合には、メタデータに応じた処理(例えば、図19乃至図25を参照して上述したような字幕表示を行う処理など)を行う。この後、処理はステップS42に戻され、それ以降が繰り返される。
以上でアプリケーション制御データ対応処理の説明を終了する。アプリケーション制御記述子のアプリケーション制御タイプが3である場合に実行されるアプリケーション制御データ対応処理によれば、コマンド情報対応処理と同様、番組やCMに連動して新情報サービスアプリを取得したり、起動したり、イベントを発火させたり、終了したりすることができる。また、新情報サービスアプリを実行中の状態を保持したままで中断させ、中断した状態から再開することができる。さらに、アプリケーション制御データ対応処理によれば、セグメントデータに含めたメタデータを利用して番組に対応した字幕などを表示することができる。
ただし、サーバ22に対する複数の受信装置30からのアクセスタイミングを分散させる方法についてはコマンド情報対応処理と異なり、アプリケーション制御データ対応処理では、セグメントデータのコマンドデータにおけるdiffusionに基づいてサーバ22に対するアクセスタイミングを分散させる。
図29は、diffusion(分配数Rate、最大遅延時間range、およびコマンド適用拡散期間period)に基づいてサーバ22に対するアクセスタイミングを分散させる方法を示している。
アプリケーション制御データのセグメントデータに含まれるコマンドデータに従って動作する受信装置30は、0乃至rate+1の範囲で正の整数のランダムNを発生する。さらに、遅延時間d=(N−1)×range/rateを算出する。そして、同一サービスを継続して受信していた受信装置30は、当該セグメントデータのstart_PTSから遅延時間dが経過したタイミングでコマンドを実行するようにする(同図の受信装置A,B,Cの場合)。
これにより、サーバ22に対する複数の受信装置30からのアクセスタイミングをコマンド適用拡散期間内で分散させることができる。
なお、他のサービスから当該サービスに選局が変更された受信装置30は、選局タイミングがコマンド適用拡散期間内であれば、選局タイミングから遅延時間dが経過したタイミングでコマンドを実行するようにする(同図の受信装置Dの場合)。選局タイミングがコマンド適用拡散期間外であれば、選局タイミングでコマンドを実行するようにする(同図の受信装置Eの場合)。
[新情報サービスアプリの状態遷移]
図30は、受信装置30または外部装置40における新情報サービスアプリの状態遷移を示している。
同図に示すように、新情報サービスアプリは、開放状態(Released)、準備状態(Ready)、実行中状態(Active)、または中断状態(Suspended)の4種類の状態のいずれかに遷移される。
開放状態は、新情報サービスアプリが取得されていない状態を指す。準備状態は、新情報サービスアプリが取得済みであって、実行されていない状態を指す。実行中状態は、新情報サービスアプリが実行中である状態を指す。中断状態は、新情報サービスアプリの実行が中断され、その中断したときの状態を示すデータが退避メモリ75Bに保持されている状態を指す。
開放状態において、取得(登録)のコマンドに応じて新情報サービスアプリが取得されると準備状態に遷移する。
開放状態において、起動のコマンドに応じて新情報サービスアプリが取得、起動されると、実行中状態に遷移する。
準備状態において、起動のコマンドに応じて対応する新情報サービスアプリが起動されると、実行中状態に遷移する。
準備状態において、取得済みの新情報サービスアプリの有効期限が経過すると新情報サービスアプリが消去されて、開放状態に遷移する。
実行中状態において、中断のコマンドに応じて実行中の新情報サービスアプリが中断されると、中断状態に遷移する。
実行中状態において、終了のコマンドに応じて新情報サービスアプリが終了されたり、他の新情報サービスアプリが起動されたりしたときに、その有効期限が経過していなければ、準備状態に遷移する。
実行中状態において、終了のコマンドに応じて新情報サービスアプリが終了されたり、他の新情報サービスアプリが起動されたりしたときに、その有効期限が経過していると、開放状態に遷移する。
中断状態において、選局が中断されている新情報サービスアプリのアプリ有効範囲を外れると、準備状態に遷移する。
中断状態において、中断されている新情報サービスアプリの有効期限が経過すると、開放状態に遷移する。
[新情報サービスアプリの動作シナリオについて]
図31は、新情報サービスアプリの第1の動作シナリオを示している。当該第1の動作シナリオは、アプリケーション制御記述子のアプリケーション制御タイプが1である場合に対応する。
すなわち、受信装置30で受信されているサービス(チャンネル)において、番組1に引き続いて番組2が開始されると、番組2に対するEITが参照される。そのEITにアプリケーション制御記述子が含まれ、アプリケーション制御タイプが1である場合、そのアプリケーション制御記述子に基づく処理が行われる。すなわち、記述子適用装置として受信装置本体が指定されていれば、受信装置30がサーバ22から新情報サービスアプリを取得、起動する。記述子適用装置として外部装置40が指定されていれば、受信装置30が外部装置40に対するコマンドを生成して外部装置40に通知し、外部装置40がサーバ22から新情報サービスアプリを取得、実行する。
同図の場合、番組に対応するEITに含まれるアプリケーション制御記述子に基づいて新情報サービスアプリが起動されたので、起動された新情報サービスアプリは当該番組の終了とともに終了される。
アプリケーション制御記述子のアプリケーション制御タイプが1である場合、受信装置30によるコマンド情報の検出、受信、またはサーバ22からのアプリケーション制御データの取得などが必要ないので、受信装置30の処理負荷を軽減させることができる。
図32は、新情報サービスアプリの第2の動作シナリオを示している。当該第2の動作シナリオは、アプリケーション制御記述子のアプリケーション制御タイプが2である場合に対応する。
すなわち、デジタル放送信号に含めて放送されたコマンド情報を受信装置30が受信し、そのコマンド適用装置として受信装置本体が指定されていれば、受信装置30がコマンド情報のコマンドの種類に応じた動作を行う。具体的には、新情報サービスアプリの取得、起動、イベント発火、中断、実行再開(起動)、終了を行う。コマンド情報のコマンド適用装置として外部装置40が指定されていれば、受信装置30が外部装置40に対するコマンドを生成して外部装置40に通知し、外部装置40がサーバ22から新情報サービスアプリの取得、実行、終了を行う。
図33は、新情報サービスアプリの第3の動作シナリオを示している。当該第3の動作シナリオは、アプリケーション制御記述子のアプリケーション制御タイプが3である場合に対応する。
すなわち、受信装置30がサーバ22から取得したアプリケーション制御データのセグメントデータに含まれるコマンドデータのコマンド適用装置として受信装置本体が指定されていれば、受信装置30がコマンドデータのコマンドの種類に応じた動作を行う。具体的には、新情報サービスアプリの取得、起動、イベント発火、中断、実行再開(起動)、終了を行う。コマンドデータのコマンド適用装置として外部装置40が指定されていれば、受信装置30が外部装置40に対するコマンドを生成して外部装置40に通知し、外部装置40がサーバ22から新情報サービスアプリの取得、実行、終了を行う。
図34は、新情報サービスアプリの第4の動作シナリオを示している。当該第4の動作シナリオは、第3の動作シナリオと同様、アプリケーション制御記述子のアプリケーション制御タイプが3である場合に対応する。当該第4の動作シナリオでは、複数の受信装置30の動作を示している。
すなわち、同一のサービスを継続して受信している受信装置Aは、シーケンスコマンドのstart_PTSのタイミングで取得(登録)のコマンドに応じて新情報サービスアプリをサーバ22から取得(登録)する。他のサービスから当該サービスに選局が変更された受信装置Bは、選局のタイミングで取得(登録)のコマンドに応じて新情報サービスアプリをサーバ22から取得(登録)する。そして、受信装置A,Bは、シーケンスコマンドのstart_PTSのタイミングで起動のコマンドに応じて新情報サービスアプリを起動(実行)する。
さらに遅れて、他のサービスから当該サービスに選局が変更された受信装置Cは、選局のタイミングで起動のコマンドに応じて新情報サービスアプリをサーバ22から取得(登録)、起動(実行)する。
受信装置Cよりもさらに遅れて受信装置Dが他のサービスから当該サービスに選局を変更すると、すでに起動のコマンドを含んでいたセグメントデータのセグメント有効期間が経過しているので、新情報サービスアプリに関する処理は実行されない。
以上説明したように、本実施の形態である放送システム10によれば、放送側は、受信装置30だけでなく、受信装置30に接続されている外部装置40も、そのタイプを指定して番組やCMの進行に連動して制御することが可能となる。
ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図35は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
このコンピュータ100において、CPU(Central Processing Unit)101,ROM(Read Only Memory)102,RAM(Random Access Memory)103は、バス104により相互に接続されている。
バス104には、さらに、入出力インタフェース105が接続されている。入出力インタフェース105には、キーボード、マウス、マイクロホンなどよりなる入力部106、ディスプレイ、スピーカなどよりなる出力部107、ハードディスクや不揮発性のメモリなどよりなる記憶部108、ネットワークインタフェースなどよりなる通信部109、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア111を駆動するドライブ110が接続されている。
以上のように構成されるコンピュータでは、CPU101が、例えば、記憶部108に記憶されているプログラムを、入出力インタフェース105及びバス104を介して、RAM103にロードして実行することにより、上述した一連の処理が行われる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであってもよいし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
また、プログラムは、1台のコンピュータにより処理されるものであってもよいし、複数のコンピュータによって分散処理されるものであってもよい。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであってもよい。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。