JPWO2017122554A1 - 受信装置、送信装置、及び、データ処理方法 - Google Patents

受信装置、送信装置、及び、データ処理方法 Download PDF

Info

Publication number
JPWO2017122554A1
JPWO2017122554A1 JP2017561587A JP2017561587A JPWO2017122554A1 JP WO2017122554 A1 JPWO2017122554 A1 JP WO2017122554A1 JP 2017561587 A JP2017561587 A JP 2017561587A JP 2017561587 A JP2017561587 A JP 2017561587A JP WO2017122554 A1 JPWO2017122554 A1 JP WO2017122554A1
Authority
JP
Japan
Prior art keywords
application
content
unit
server
signaling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017561587A
Other languages
English (en)
Inventor
山岸 靖明
靖明 山岸
五十嵐 卓也
卓也 五十嵐
高林 和彦
和彦 高林
淳 北原
淳 北原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of JPWO2017122554A1 publication Critical patent/JPWO2017122554A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4722End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content
    • H04N21/4725End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content using interactive regions of the image, e.g. hot spots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H20/00Arrangements for broadcast or for distribution combined with broadcast
    • H04H20/86Arrangements characterised by the broadcast information itself
    • H04H20/91Arrangements characterised by the broadcast information itself broadcasting computer programmes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H20/00Arrangements for broadcast or for distribution combined with broadcast
    • H04H20/86Arrangements characterised by the broadcast information itself
    • H04H20/93Arrangements characterised by the broadcast information itself which locates resources of other pieces of information, e.g. URL [Uniform Resource Locator]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/09Arrangements for device control with a direct linkage to broadcast information or to broadcast space-time; Arrangements for control of broadcast-related services
    • H04H60/13Arrangements for device control affected by the broadcast information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/09Arrangements for device control with a direct linkage to broadcast information or to broadcast space-time; Arrangements for control of broadcast-related services
    • H04H60/14Arrangements for conditional access to broadcast information or to broadcast-related services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/09Arrangements for device control with a direct linkage to broadcast information or to broadcast space-time; Arrangements for control of broadcast-related services
    • H04H60/14Arrangements for conditional access to broadcast information or to broadcast-related services
    • H04H60/23Arrangements for conditional access to broadcast information or to broadcast-related services using cryptography, e.g. encryption, authentication, key distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4353Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving decryption of additional data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44236Monitoring of piracy processes or activities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/76Arrangements characterised by transmission systems other than for broadcast, e.g. the Internet
    • H04H60/81Arrangements characterised by transmission systems other than for broadcast, e.g. the Internet characterised by the transmission system itself
    • H04H60/82Arrangements characterised by transmission systems other than for broadcast, e.g. the Internet characterised by the transmission system itself the transmission system being the Internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Circuits Of Receivers In General (AREA)

Abstract

本技術は、コンテンツに付随するアプリケーションを用いたサービスを柔軟に運用することができるようにする受信装置、送信装置、及び、データ処理方法に関する。
受信装置は、コンテンツを受信する受信部と、前記コンテンツとともに伝送される制御情報に含まれる、前記コンテンツに付随するアプリケーションの取得先を示す取得先情報に基づいて、前記アプリケーションを取得する取得部と、取得された前記アプリケーションを即時に起動する制御部とを備える。本技術は、例えば、デジタル放送を受信可能なテレビ受像機に適用することができる。

Description

本技術は、受信装置、送信装置、及び、データ処理方法に関し、特に、コンテンツに付随するアプリケーションを用いたサービスを柔軟に運用することができるようにした受信装置、送信装置、及び、データ処理方法に関する。
番組やCM等のコンテンツに付随するアプリケーション(以下、単にアプリケーションという)の配信のライフサイクルコントロールに、AIT(Application Information Table)等のアプリケーション制御情報を用いることが知られている。このアプリケーション制御情報によって、アプリケーションの起動や終了の動作を制御することができる。
一方で、アプリケーションが、いわゆる電波ジャック(放送信号割り込み:Broadcast signal intrusion)などの不正行為により、コンテンツの提供者の意図しない悪意のあるアプリケーションに置き換えられる可能性が問題視されている。
この種の問題の解決策としては、PKI(Public Key Infrastructure)等を利用した本格的なアプリケーション認証のプラットフォームを構築する方法も考えられるが、アプリケーション認証のためだけに、本格的なプラットフォームを構築することは、コストの面から現実的ではない。また、コンテンツの著作権を保護するための仕組みとして、デジタル著作権管理(DRM:Digital Rights Management)が知られている(例えば、特許文献1参照)。
WO 2014/080783 A1
ところで、アプリケーションのライフサイクルコントロールを簡素化する一方で、アプリケーションを低コストでセキュアに提供して、コンテンツに付随するアプリケーションを用いたサービスを柔軟に運用するための提案が要請されていた。
本技術はこのような状況に鑑みてなされたものであり、コンテンツに付随するアプリケーションを用いたサービスを柔軟に運用することができるようにするものである。
本技術の第1の側面の受信装置は、コンテンツを受信する受信部と、前記コンテンツとともに伝送される制御情報に含まれる、前記コンテンツに付随するアプリケーションの取得先を示す取得先情報に基づいて、前記アプリケーションを取得する取得部と、取得された前記アプリケーションを即時に起動する制御部とを備える受信装置である。
本技術の第1の側面の受信装置は、独立した装置であってもよいし、1つの装置を構成している内部ブロックであってもよい。また、本技術の第1の側面のデータ処理方法は、上述した本技術の第1の側面の受信装置に対応するデータ処理方法である。
本技術の第1の側面の受信装置、及び、データ処理方法においては、コンテンツが受信され、前記コンテンツとともに伝送される制御情報に含まれる、前記コンテンツに付随するアプリケーションの取得先を示す取得先情報に基づいて、前記アプリケーションが取得され、取得された前記アプリケーションが即時に起動される。
本技術の第2の側面の送信装置は、コンテンツに付随するアプリケーションの取得先を示す取得先情報であって、取得された前記アプリケーションを即時に起動させるための前記取得先情報を含む制御情報を生成する生成部と、前記コンテンツとともに、前記制御情報を送信する送信部とを備える送信装置である。
本技術の第2の側面の送信装置は、独立した装置であってもよいし、1つの装置を構成している内部ブロックであってもよい。また、本技術の第2の側面のデータ処理方法は、上述した本技術の第2の側面の送信装置に対応するデータ処理方法である。
本技術の第2の側面の送信装置、及び、データ処理方法においては、コンテンツに付随するアプリケーションの取得先を示す取得先情報であって、取得された前記アプリケーションを即時に起動させるための前記取得先情報を含む制御情報が生成され、前記コンテンツとともに、前記制御情報が送信される。
本技術の第3の側面の受信装置は、コンテンツを受信する受信部と、前記コンテンツに付随するアプリケーションであって、前記コンテンツのDRM(Digital Rights Management)により保護された前記アプリケーションを取得する取得部と、取得された前記アプリケーションが、正当なアプリケーションであるかどうかを検証する検証部と、前記アプリケーションが正当なアプリケーションであると認められた場合に、当該アプリケーションを起動する制御部とを備える受信装置である。
本技術の第3の側面の受信装置は、独立した装置であってもよいし、1つの装置を構成している内部ブロックであってもよい。また、本技術の第3の側面のデータ処理方法は、上述した本技術の第3の側面の受信装置に対応するデータ処理方法である。
本技術の第3の側面の受信装置、及び、データ処理方法においては、コンテンツが受信され、前記コンテンツに付随するアプリケーションであって、前記コンテンツのDRM(Digital Rights Management)により保護された前記アプリケーションが取得され、取得された前記アプリケーションが、正当なアプリケーションであるかどうかが検証され、前記アプリケーションが正当なアプリケーションであると認められた場合に、当該アプリケーションが起動される。
本技術の第4の側面の送信装置は、コンテンツに付随するアプリケーションを、前記コンテンツのDRM(Digital Rights Management)により保護する保護部と、共通のDRM(Digital Rights Management)により保護された前記コンテンツ及び前記アプリケーションを送信する送信部とを備える送信装置である。
本技術の第4の側面の送信装置は、独立した装置であってもよいし、1つの装置を構成している内部ブロックであってもよい。また、本技術の第4の側面のデータ処理方法は、上述した本技術の第4の側面の送信装置に対応するデータ処理方法である。
本技術の第4の側面の送信装置、及び、データ処理方法においては、コンテンツに付随するアプリケーションが、前記コンテンツのDRM(Digital Rights Management)により保護され、共通のDRM(Digital Rights Management)により保護された前記コンテンツ及び前記アプリケーションが送信される。
本技術の第1の側面乃至第4の側面によれば、コンテンツに付随するアプリケーションを用いたサービスを柔軟に運用することができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
第1の実施の形態の伝送システムの構成例を示す図である。 DASHサーバの構成例を示す図である。 シグナリングサーバの構成例を示す図である。 アプリケーションサーバの構成例を示す図である。 放送サーバの構成例を示す図である。 クライアント装置の構成例を示す図である。 アプリURLに応じたアプリケーション制御の概要を示す図である。 アプリURLに応じたアプリケーション制御を行う場合の送信側の処理の流れを説明するフローチャートである。 アプリURLに応じたアプリケーション制御を行う場合の受信側の処理の流れを説明するフローチャートである。 MPDイベント方式のMPDメタデータの記述例を示す図である。 MPDイベント方式のイベントによるアプリケーション制御を行う場合の送信側の処理の流れを説明するフローチャートである。 MPDイベント方式のイベントによるアプリケーション制御を行う場合の受信側の処理の流れを説明するフローチャートである。 インバンドイベント方式のDASHEventMessageBoxの配置例を示す図である。 インバンドイベント方式のイベントによるアプリケーション制御を行う場合の送信側の処理の流れを説明するフローチャートである。 インバンドイベント方式のイベントによるアプリケーション制御を行う場合の受信側の処理の流れを説明するフローチャートである。 第2の実施の形態の伝送システムの構成例を示す図である。 ストリームサーバの構成例を示す図である。 DASHサーバの構成例を示す図である。 アプリケーションサーバの構成例を示す図である。 クライアント装置の構成例を示す図である。 アプリダイジェストの概要を示す図である。 アプリダイジェストのシンタックスの例を示す図である。 digest_typeの例を示す図である。 ISOBMFFに対応したセグメントのデータ形式の例を示す図である。 ウォータマーク格納方式の概要を説明する図である。 ビデオウォータマークを利用したアプリダイジェストの格納方法を示す図である。 ウォータマークペイロードのシンタックスの例を示す図である。 WMメッセージブロックのシンタックスの例を示す図である。 WMメッセージIDの例を示す図である。 ウォータマーク格納方式を採用した場合の送信側の処理の流れを説明するフローチャートである。 ウォータマーク格納方式を採用した場合の受信側の処理の流れを説明するフローチャートである。 非VCL-NALユニット格納方式の概要を説明する図である。 非VCL-NALユニット格納方式を採用した場合の送信側の処理の流れを説明するフローチャートである。 非VCL-NALユニット格納方式を採用した場合の受信側の処理の流れを説明するフローチャートである。 SLTのフォーマットの例を示す図である。 USDのフォーマットの例を示す図である。 S-TSIDのフォーマットの例を示す図である。 MPDメタデータのapplicationUrl要素の拡張の例を示す図である。 S-TSIDのフォーマットの例を示す図である。 SrcFlowのフォーマットの例を示す図である。 EFDTのフォーマットの例を示す図である。 EFDT-Instance要素又はFile要素の拡張の例を示す図である。 コンピュータの構成例を示す図である。
以下、図面を参照しながら本技術の実施の形態について説明する。なお、説明は以下の順序で行うものとする。
1.第1の実施の形態:アプリケーションのライフサイクルコントロール
(1)システムの構成
(2)アプリURLに応じたアプリケーション制御
(3)アプリ制御イベントに応じたアプリケーション制御
(A)MPDイベント方式
(B)インバンドイベント方式
2.第2の実施の形態:アプリケーションのセキュアな提供
(1)システムの構成
(2)アプリダイジェストの概要
(3)アプリダイジェストの伝送方式
(A)ウォータマーク格納方式
(B)非VCL-NALユニット格納方式
3.シグナリングの例
4.変形例
5.コンピュータの構成
<1.第1の実施の形態:アプリケーションのライフサイクルコントロール>
ところで、番組やCM等のコンテンツに付随するアプリケーションを用いたサービスを提供するに際し、アプリケーションの制御モデルをシンプルに実装する提案が要請されている。例えば、現在策定が進められている米国の次世代放送規格であるATSC(Advanced Television Systems Committee)3.0では、アプリケーションの配信のライフサイクルコントロールに、AST(Application Signaling Table)を用いることが検討されているが、ASTを利用する以外に、よりアプリケーションの制御モデルをシンプルに実装することが求められている。
そこで、本技術では、シグナリングに、コンテンツに付随して起動するアプリケーションのURL(以下、アプリURL(Uniform Resource Locator)という)のみを記述して、サービス(チャンネル)が選局された場合には、直ちにそのシグナリングに記述されたアプリURLに従い、アプリケーションを取得して、取得されたアプリケーションが即時に起動されるようにする。
すなわち、本技術では、ASTやAIT等のアプリケーション制御情報により制御される個別のアプリケーションのライフサイクルコントロールは行わずに、サービス(チャンネル)そのもの、あるいは、サービス(チャンネル)の特定の時間帯(例えば番組枠やCM枠)にバインドされた1又は複数のアプリURLが、シグナリングに記述されるようにしておくことで、シグナリングにアプリURLが記述される場合には、対象のアプリケーションを取得して、即時に起動されるようにしている。
以下、第1の実施の形態として、アプリURLを利用したアプリケーションのライフサイクルコントロールの簡素化について説明する。
(1)システムの構成
(伝送システムの構成)
図1は、本技術を適用した伝送システムの一実施の形態(第1の実施の形態)の構成例を示す図である。なお、システムとは、複数の装置が論理的に集合したものをいう。
図1において、伝送システム1は、送信側システム5と、受信側のクラインと装置60から構成される。伝送システム1においては、送信側システム5から送信されるデータが、伝送路80又はインターネット90を介してクライアント装置60により受信される。
例えば、伝送システム1では、ATSC3.0等の所定の規格に準拠したデータ伝送が行われる。なお、ATSC3.0では、伝送方式として、現在広く普及しているMPEG2-TS(Transport Stream)方式ではなく、通信の分野で用いられているIP(Internet Protocol)パケットをデジタル放送に用いたIP伝送方式を導入することで、より高度なサービスを提供することが想定されている。
送信側システム5は、例えば、ATSC3.0等の所定の規格に準拠したデータを送信するための処理を行う。送信側システム5は、DASHサーバ10、シグナリングサーバ20、アプリケーションサーバ30、放送サーバ40、及び、通信サーバ50から構成される。
DASHサーバ10は、MPEG-DASH(Dynamic Adaptive Streaming over HTTP)に対応した配信サービスを行うためのサーバである。ここで、MPEG-DASHは、OTT-V(Over The Top Video)に従ったストリーミング配信規格であって、HTTP(Hypertext Transfer Protocol)をベースとしたストリーミングプロトコルを用いたアダプティブストリーミング配信に関する規格である。
このMPEG-DASHの規格では、動画や音声のファイルの管理情報であるメタデータを記述するためのマニフェストファイルと、動画のコンテンツを伝送するためのファイルフォーマットが規定されている。なお、前者のマニフェストファイルは、MPD(Media Presentation Description)と称される。また、後者のファイルフォーマットは、セグメントフォーマットとも称される。
DASHサーバ10は、外部からMPDメタデータを生成するためのデータや、コンテンツのデータなどを受信する。DASHサーバ10は、外部からのデータに基づいて、MPDメタデータを生成し、シグナリングサーバ20に送信する。また、DASHサーバ10は、外部からのデータに基づいて、番組やCM等のコンテンツのセグメント(以下、DASHセグメントともいう)のファイルを生成し、放送サーバ40又は通信サーバ50に送信する。
アプリケーションサーバ30は、外部からアプリケーションを生成するためのデータなどを受信する。アプリケーションサーバ30は、外部からのデータに基づいて、アプリケーションの取得先を示すアプリURLを生成し、シグナリングサーバ20に送信する。また、アプリケーションサーバ30は、外部からのデータに基づいて、アプリURLで識別されるアプリケーションを生成し、放送サーバ40又は通信サーバ50に送信する。
なお、アプリケーションは、番組やCM等のコンテンツに付随するアプリケーションである。また、コンテンツに付随するアプリケーションとしては、例えば、HTML5(HyperText Markup Language 5)等のマークアップ言語や、JavaScript(登録商標)等のスクリプト言語で開発されたアプリケーションを用いることができる。
また、アプリケーションサーバ30は、アプリケーションの動作を制御するためのイベント(以下、アプリ制御イベントという)を生成し、DASHサーバ10に送信する。DASHサーバ10は、アプリケーションサーバ30から送信されてくるアプリ制御イベントを、MPDメタデータ又はDASHセグメントに格納することができる。
シグナリングサーバ20は、外部からシグナリングを生成するためのデータを受信する。また、シグナリングサーバ20は、DASHサーバ10からのMPDメタデータと、アプリケーションサーバ30からのアプリURLを受信する。シグナリングサーバ20は、外部からのデータや、MPDメタデータ、アプリURLに基づいて、シグナリングを生成し、放送サーバ40又は通信サーバ50に送信する。
ここで、例えば、ATSC3.0では、シグナリングとして、LLS(Link Layer Signaling)シグナリングとSLS(Service Layer Signaling)シグナリングを用いることが想定されている。LLSシグナリングは、SLSシグナリングに先行して取得されるシグナリングであって、LLSシグナリングに含まれる情報に従い、SLSシグナリングが取得される。SLSシグナリングは、サービス単位のシグナリングである。
LLSシグナリングは、SLT(Service List Table)等のメタデータを含む。SLTメタデータは、サービスの選局に必要な情報(選局情報)など、放送ネットワークにおけるストリームやサービスの構成を示す基本情報を含んでいる。
SLSシグナリングは、USD(User Service Description),S-TSID(Service-based Transport Session Instance Description),MPD(Media Presentation Description)等のメタデータを含む。USDメタデータは、他のメタデータの取得先などの情報を含む。ただし、USDは、USBD(User Service Bundle Description)と称されることがある。
S-TSIDメタデータは、LSID(LCT Session Instance Description)をATSC3.0向けに拡張したものであって、ROUTE(Real-time Object Delivery over Unidirectional Transport)プロトコルの制御情報である。なお、ROUTEは、ストリーミングファイル転送用のプロトコルであって、FLUTE(File Delivery over Unidirectional Transport)を拡張したものである。
MPDメタデータは、上述したように、ストリーミング配信される動画や音声のファイルの管理情報である。なお、SLT,USD,S-TSID,MPD等のメタデータは、例えば、XML(Extensible Markup Language)等のマークアップ言語により記述することができる。
シグナリングサーバ20は、SLTメタデータを含むLLSシグナリングと、USDメタデータ、S-TSIDメタデータ、及びMPDメタデータを含むSLSシグナリングを生成する。ただし、シグナリングサーバ20は、DASHサーバ10により生成されたMPDメタデータを、SLSシグナリングとして処理する。また、シグナリングサーバ20は、アプリケーションサーバ30により生成されたアプリURLを、SLT,USD,S-TSID,MPD等のメタデータに含める。
放送サーバ40は、ATSC3.0等のデジタル放送の規格に準拠したデータ伝送を行うことが可能な送信機である。
放送サーバ40は、DASHサーバ10から送信されてくるDASHセグメント、シグナリングサーバ20から送信されてくるシグナリング、及び、アプリケーションサーバ30から送信されるアプリケーション(のファイル)を受信する。放送サーバ40は、DASHセグメント、シグナリング、及び、アプリケーション(のファイル)を処理し、伝送路80を介して送信(一斉同報配信)する。
また、放送サーバ40には、LCC(Locally Cached Content)コンテンツが入力される。LCCコンテンツは、クライアント装置60のストレージに一旦蓄積された後で再生が行われるコンテンツである。放送サーバ40は、そこに入力されるLCCコンテンツ(のファイル)を処理し、伝送路80を介して送信(一斉同報配信)する。
通信サーバ50は、インターネット90に接続されたクライアント装置60からの要求に応じて、インターネット90を介して各種のデータを提供するサーバである。
通信サーバ50は、DASHサーバ10から送信されてくるDASHセグメント、シグナリングサーバ20から送信されてくるシグナリング、及び、アプリケーションサーバ30から送信されるアプリケーション(のファイル)を受信する。通信サーバ50は、DASHセグメント、シグナリング、及び、アプリケーション(のファイル)を処理する。そして、通信サーバ50は、クライアント装置60からの要求に応じて、インターネット90を介して、各種のファイルを送信する。
クライアント装置60は、ATSC3.0等のデジタル放送の規格に準拠した伝送データを受信可能な受信機である。例えば、クライアント装置60は、テレビ受像機やセットトップボックスなどの固定受信機、あるいは、スマートフォンや携帯電話機、タブレット型コンピュータなどのモバイル受信機である。また、クライアント装置60は、例えば車載テレビなどの自動車に搭載される機器であってもよい。
クライアント装置60は、放送サーバ40から伝送路80を介して送信(一斉同報配信)されてくる、DASHセグメント、シグナリング、LCCコンテンツなどのファイルを受信して処理することで、放送番組などのコンテンツの映像や音声を出力する。
また、クライアント装置60は、通信機能を有する場合、インターネット90を介して、通信サーバ50にアクセスし、各種のファイルを取得することができる。例えば、クライアント装置60は、通信サーバ50からインターネット90を介して送信(適応的にストリーミング配信)される、DASHセグメントやMPDメタデータ等のファイルを受信して処理することで、VOD(Video On Demand)番組などのコンテンツの映像や音声を出力する。
また、クライアント装置60は、放送サーバ40又は通信サーバ50から送信されるシグナリングに含まれるアプリURLに基づいて、放送サーバ40又は通信サーバ50から配信されるアプリケーションを取得し、取得されたアプリケーションを即時に起動する。
これにより、クライアント装置60では、放送経由又は通信経由で取得されたコンテンツに付随して、放送経由又は通信経由で取得されたアプリケーションが実行される。ただし、アプリケーションは、何らかの情報を明示的に表示するだけでなく、非表示で(バックグラウンドで)動作する場合もある(ユーザに認識されずに起動することがある)。
さらに、クライアント装置60は、MPDメタデータ又はDASHセグメントにアプリ制御イベントが格納されている場合、当該アプリ制御イベントに応じて、アプリケーションの動作を制御する。
なお、伝送システム1において、伝送路80は、地上波(地上波放送)のほか、例えば、放送衛星(BS:Broadcasting Satellite)や通信衛星(CS:Communications Satellite)を利用した衛星放送、あるいは、ケーブルを用いた有線放送(CATV)などであってもよい。
ここで、図1の伝送システム1においては、説明を簡単にするために、クライアント装置60を1つだけ図示しているが、クライアント装置60は複数設けることができ、送信側システム5が送信(一斉同報配信)するデジタル放送信号は、伝送路80を介して複数のクライアント装置60で同時に受信することができる。
また、送信側システム5も複数設けることができる。複数の送信側システム5のそれぞれでは、別個のチャンネルとしての、例えば、別個の周波数帯域で、放送ストリームを含むデジタル放送信号を送信し、クライアント装置60では、複数の送信側システム5のそれぞれのチャンネルの中から、放送ストリームを受信するチャンネルを選択することができる。
次に、図2乃至図6を参照して、図1の伝送システム1における、送信側システム5のDASHサーバ10、シグナリングサーバ20、アプリケーションサーバ30、及び、放送サーバ40と、クライアント装置60の構成について説明する。なお、ここでは、通信サーバ50の詳細な構成は省略するが、通信サーバ50は、通信機能を有する一般的なサーバと同様の構成を有している。
(DASHサーバの構成)
図2は、図1のDASHサーバ10の構成例を示す図である。
図2において、DASHサーバ10は、受信部101、処理部102、及び、送信部103から構成される。
受信部101は、外部のサーバ(不図示)などからストリーミング配信用のデータを受信し、処理部102に供給する。また、受信部201は、アプリケーションサーバ30から、アプリ制御イベントを受信した場合、アプリ制御イベントを、処理部102に供給する。なお、アプリ制御イベントの詳細については後述する。
処理部102は、受信部101から供給されるデータを処理し、送信部103に供給する。また、処理部102は、MPD生成部111及びDASHセグメント生成部112を含んでいる。
MPD生成部111は、受信部101から供給されるデータに基づいて、MPDメタデータを生成する。また、MPD生成部111は、受信部201からアプリ制御イベントが供給された場合(後述するMPDイベント方式を採用した場合)、当該アプリ制御イベントを、MPDメタデータに格納する。
DASHセグメント生成部112は、受信部101から供給されるデータに基づいて、DASHセグメントを生成する。なお、DASHセグメントは、ISOBMFF(ISO Base Media File Format)に準じている。また、DASHセグメント生成部112は、受信部201からアプリ制御イベントが供給された場合(後述するインバンドイベント方式を採用した場合)、当該アプリ制御イベントを、DASHセグメントに格納する。ただし、詳細は、図10乃至図15を参照して後述するが、アプリ制御イベントは、MPDメタデータ又はDASHセグメントのいずれか一方に格納されるようにすればよい。
ここで、DASHセグメントは、中継場所から伝送路や通信回線を介して送られてくるライブコンテンツ(例えば、スポーツ中継等の生放送番組)や、ストレージに蓄積された収録済みのコンテンツ(例えば、ドラマ等の事前収録番組)などのコンテンツを処理して得られるセグメントファイルである。
送信部103は、処理部102から供給されるデータのうち、MPDメタデータを、シグナリングサーバ20に送信し、DASHセグメントを、放送サーバ40又は通信サーバ50に送信する。なお、ここでは、DASHセグメントが放送経由で配信される場合には、そのデータが放送サーバ40に送信され、DASHセグメントが通信経由で配信される場合には、そのデータが通信サーバ50に送信される。
DASHサーバ10は、以上のように構成される。
(シグナリングサーバの構成)
図3は、図1のシグナリングサーバ20の構成例を示す図である。
図3において、シグナリングサーバ20は、受信部201、処理部202、及び、送信部203から構成される。
受信部201は、外部のサーバ(不図示)などからシグナリング生成用のデータを受信し、処理部202に供給する。また、受信部201は、DASHサーバ10から送信されてくるMPDメタデータと、アプリケーションサーバ30から送信されてくるアプリURLを受信し、処理部202に供給する。
処理部202は、受信部201から供給されるデータを処理し、送信部203に供給する。また、処理部202は、シグナリング生成部211を含んでいる。
シグナリング生成部211は、受信部201から供給されるデータに基づいて、SLTメタデータを含むLLSシグナリングと、USDメタデータ、S-TSIDメタデータ、及びMPDメタデータを含むSLSシグナリングを生成する。ただし、SLTメタデータ、USDメタデータ、S-TSIDメタデータ、及びMPDメタデータのうち、いずれかのメタデータには、アプリケーションサーバ30により生成されたアプリURLが含められる。
送信部203は、処理部202(のシグナリング生成部211)から供給されるシグナリングを、放送サーバ40又は通信サーバ50に送信する。なお、ここでは、シグナリングが放送経由で配信される場合には、そのデータが放送サーバ40に送信され、シグナリングが通信経由で配信される場合には、そのデータが通信サーバ50に送信される。
シグナリングサーバ20は、以上のように構成される。
(アプリケーションサーバの構成)
図4は、図1のアプリケーションサーバ30の構成例を示す図である。
図4において、アプリケーションサーバ30は、受信部301、処理部302、及び、送信部303から構成される。
受信部301は、外部のサーバ(不図示)などからアプリケーション用のデータを受信し、処理部302に供給する。処理部302は、受信部301から供給されるデータを処理し、送信部303に供給する。また、処理部302は、アプリURL生成部311、アプリケーション生成部312、及び、アプリ制御イベント生成部313を含んでいる。
アプリURL生成部311は、受信部301から供給されるデータに基づいて、アプリケーションの取得先を示すアプリURLを生成する。アプリケーション生成部312は、受信部301から供給されるデータに基づいて、アプリURLで識別されるアプリケーションを生成する。
アプリ制御イベント生成部313は、アプリケーションに対して所定の動作をさせる所定のタイミングになったとき、アプリケーションの動作を制御するためのイベント(アプリ動作イベント)を生成する。
送信部303は、処理部302から供給されるデータのうち、アプリURLを、シグナリングサーバ20に送信し、アプリケーションを、放送サーバ40又は通信サーバ50に送信する。なお、ここでは、アプリケーションが放送経由で配信される場合には、そのデータが放送サーバ40に送信され、アプリケーションが通信経由で配信される場合には、そのデータが通信サーバ50に送信される。
また、送信部303は、処理部302(のアプリ制御イベント生成部313)からアプリ動作イベントが供給された場合、当該アプリ動作イベントを、DASHサーバ10に供給する。
アプリケーションサーバ30は、以上のように構成される。
(放送サーバの構成)
図5は、図1の放送サーバ40の構成例を示す図である。
図5において、放送サーバ40は、受信部401、処理部402、及び、送信部403から構成される。
受信部401は、DASHサーバ10から送信されてくるDASHセグメントと、シグナリングサーバ20から送信されてくるシグナリングと、アプリケーションサーバ30から送信されてくるアプリケーションを受信し、処理部402に供給する。
処理部402は、受信部401から供給されるDASHセグメント、シグナリング、及び、アプリケーションに対して必要な処理を施し、送信部403に供給する。ここでは、例えば、DASHセグメント、SLSシグナリング、及びアプリケーションを含むLCTセッションのデータをペイロードに格納したIP/UDPパケットや、LLSシグナリングのデータをペイロードに格納したIP/UDPパケットを生成するための処理などが行われる。
送信部403は、処理部402から供給されるデータを含む放送波(デジタル放送信号)を、アンテナ421によって、伝送路80を介して送信(一斉同報配信)する。
放送サーバ40は、以上のように構成される。
(クライアント装置の構成)
図6は、図1のクライアント装置60の構成例を示す図である。
図6において、クライアント装置60は、処理部601、入力部602、受信部603、放送ミドルウェア604、DASHクライアント605、デコーダ606、出力部607、及び、通信部608から構成される。
処理部601は、クライアント装置60の各部の動作を制御する処理など行う。
入力部602は、ユーザの操作に応じた操作信号を処理部601に供給する。処理部601は、入力部602から供給される操作信号に基づいて、クライアント装置60の各部の動作を制御する。
受信部603は、アンテナ621によって、放送サーバ40から伝送路80を介して送信(一斉同報配信)されてくる放送波(デジタル放送信号)を受信して処理し、それにより得られるデータを、放送ミドルウェア604に供給する。なお、受信部603は、チューナなどから構成される。
放送ミドルウェア604は、受信部603から供給されるデータを処理し、処理部601又はDASHクライアント605に供給する。ここで、処理対象のデータのうち、MPDメタデータ及びDASHセグメントは、DASHクライアント605に供給され、アプリケーションやシグナリング等のデータは、処理部601に供給される。
DASHクライアント605には、放送ミドルウェア604からMPDメタデータ及びDASHセグメントが供給される。DASHクライアント605は、MPDメタデータに基づいて、DASHセグメントを処理する。このDASHセグメントを処理して得られるビデオとオーディオのデータは、デコーダ606に供給される。
デコーダ606は、所定の復号方式(例えばHEVC(High Efficiency Video Coding)やAAC(Advanced Audio Coding)等)に従い、DASHクライアント605から供給されるビデオとオーディオのデータのデコードを行う。このデコードにより得られるビデオとオーディオのデータは、出力部607に供給される。
出力部607は、デコーダ606から供給されるビデオとオーディオのデータを出力する。これにより、クライアント装置60では、番組やCM等のコンテンツが再生され、その映像や音声が出力されることになる。
通信部608は、処理部601からの制御に従い、インターネット90を介して、通信サーバ50とデータのやりとりを行う。通信部608により受信されるデータのうち、MPDメタデータ及びDASHセグメントは、DASHクライアント605に供給され、アプリケーション及びシグナリング等のデータは、処理部601に供給される。これらの通信経由で取得されたデータに対する処理は、上述した放送経由で取得されたデータと同様であるため、ここでは、その説明は省略する。
また、処理部601は、アプリケーション制御部611及びレンダリングエンジン612を含んで構成される。アプリケーション制御部611は、放送ミドルウェア604又は通信部608から供給されるアプリケーションの動作を制御する。レンダリングエンジン612は、出力部607を制御して、ビデオやオーディオ、アプリケーションのデータをレンダリングすることで、映像や音声などを生成する。
クライアント装置60は、以上のように構成される。
(2)アプリURLに応じたアプリケーション制御
上述したように、番組やCM等のコンテンツに付随するアプリケーションの制御モデルをシンプルに実装する提案が要請されている。第1の実施の形態では、コンテンツに付随して起動するアプリケーションのアプリURLを、シグナリング(例えばSLT,USD,S-TSID,MPD等のメタデータ)に記述することで、クライアント装置60において、サービスが選局された場合には、直ちにそのシグナリングに記述されたアプリURLに従い、アプリケーションを取得して即時に起動されるようにする。
ここで、図7の左側に示すように、送信側の送信側システム5においては、アプリケーションサーバ30のアプリURL生成部311により、アプリURLが生成される。また、アプリケーションサーバ30のアプリケーション生成部312により、アプリケーションが生成される。
ここで、例えば、アプリケーションは、HTML5等のマークアップ言語や、JavaScript(登録商標)等のスクリプト言語で開発され、HTML文書ファイルや画像ファイルなど、複数のファイルから構成されている。また、アプリケーションのエントリ(例えば、index.html)は、アプリURLにより識別される。ただし、エントリとは、アプリケーションにおいて、最初に起動されるページを意味している。
送信側の送信側システム5においては、放送サーバ40(又は通信サーバ50)によって、アプリケーションサーバ30により生成されたアプリケーションが、伝送路80(又はインターネット90)を介して受信側のクライアント装置60に送信される。
また、送信側の送信側システム5において、シグナリングサーバ20(のシグナリング生成部211)により生成される、SLTメタデータ、又はSLSシグナリング(例えば、USD,S-TSID,MPD等のメタデータ)には、アプリケーションサーバ30により生成されたアプリURLが含められる。
送信側の送信側システム5においては、放送サーバ40(又は通信サーバ50)によって、シグナリングサーバ20により生成されたシグナリングが、伝送路80(又はインターネット90)を介して受信側のクライアント装置60に送信される。
一方で、図7の右側に示すように、受信側のクライアント装置60においては、送信側の送信側システム5から送信されるシグナリングが受信され、処理される。このシグナリングには、SLTメタデータ、又はSLSシグナリング(例えば、USD,S-TSID,MPD等のメタデータ)に、アプリURLが含まれている。
受信側のクライアント装置60は、SLTメタデータ、又はSLSシグナリングに含まれるアプリURLに従い、放送サーバ40(又は通信サーバ50)から送信されるアプリケーションを受信する。そして、受信側のクライアント装置60は、受信されたアプリケーションを即時に起動する。
ここで、起動されたアプリケーションは、何らかの情報を明示的に表示する場合もあれば、バックグラウンドを透明にして起動される場合(何も表示せずに起動され、起動されていることをユーザに認識させない場合)もある。
また、起動中のアプリケーションを停止するタイミングであるが、例えば、ユーザの操作(例えば、リモートコントローラによるサービスの切り替え操作)を契機として、あるいは、クライアント装置60で実行されるネイティブアプリケーション(組み込みアプリケーション)の制御を契機として、他のサービスに切り替える際に停止することができる。
ただし、他のサービスに切り替える場合でも、当該他のサービスのSLSメタデータ、又はSLSシグナリングに、同一のアプリURLが含まれていれば、起動中のアプリケーションは停止させずに、そのまま起動が継続されるようにする。この場合には、切り替え先のサービスのサービスID又はメジャーチャンネル番号が、起動中のアプリケーションに通知されるようにして、サービスの切り替えが起こったことが、起動中のアプリケーションにより検知されるようにする。
なお、シグナリングにおいて、アプリURLは、1つ又は複数をリストとして記述することができる。アプリURLをリストとして記述した場合には、例えば、クライアント装置60の実行環境などに応じて、それらのアプリURLに応じたアプリケーションの起動優先度の制御や、起動選択制御などが行われる。
以上のように、第1の実施の形態におけるアプリURLに応じたアプリケーション制御では、SLTメタデータ、又はSLSシグナリング(例えば、USD,S-TSID,MPD等のメタデータ)に含まれるアプリURLに従い、アプリケーションが取得され、即時に起動されるため、アプリケーションの配信ライフサイクルコントロールに、ASTやAIT等のアプリケーション制御情報を利用した場合と比べて、アプリケーションの制御モデルをシンプルに実装することが可能となる。
次に、図8及び図9のフローチャートを参照して、アプリURLに応じたアプリケーション制御を行う場合における伝送システム1(図1)の各装置で実行される処理の流れを説明する。
(送信側の処理の流れ)
まず、図8のフローチャートを参照して、アプリURLに応じたアプリケーション制御を行う場合の送信側の処理の流れを説明する。
図8のステップS101乃至S103の処理は、DASHサーバ10により実行される。ステップS101において、MPD生成部111は、MPDメタデータを生成する。また、ステップS102において、DASHセグメント生成部112は、番組等のコンテンツ(のデータ)を処理することで、ステップS101の処理で生成されたMPDメタデータにより再生が管理されるDASHセグメントを生成する。
ステップS103において、送信部103は、ステップS101の処理で生成されたMPDメタデータを、シグナリングサーバ20に送信し、ステップS102の処理で生成されたDASHセグメントを放送サーバ40に送信する。
図8のステップS301乃至S303の処理は、アプリケーションサーバ30により実行される。ステップS301において、アプリURL生成部311は、アプリURLを生成する。ステップS302において、アプリケーション生成部312は、ステップS301の処理で生成されたアプリURLにより識別されるアプリケーションを生成する。
ステップS303において、送信部303は、ステップS301の処理で生成されたアプリURLを、シグナリングサーバ20に送信し、ステップS302の処理で生成されたアプリケーションを、放送サーバ40に送信する。
図8のステップS201乃至S202の処理は、シグナリングサーバ20により実行される。また、シグナリングサーバ20においては、ステップS103の処理で送信されたMPDメタデータと、ステップS303の処理で送信されたアプリURLが受信される。
ステップS201において、シグナリング生成部211は、シグナリングを生成する。ここで、シグナリングとしては、SLTメタデータを含むLLSシグナリングと、USDメタデータ、S-TSIDメタデータ、及びMPDメタデータを含むSLSシグナリングが生成される。また、SLTメタデータ、又はSLSシグナリング(例えば、USD,S-TSID,MPD等のメタデータ)には、アプリケーションサーバ30により生成されたアプリURLが記述される。
ステップS202において、送信部203は、ステップS201の処理で生成されたシグナリングを、放送サーバ40に送信する。
図8のステップS401乃至S403の処理は、放送サーバ40により実行される。また、放送サーバ40においては、ステップS103の処理で送信されたDASHセグメント、ステップS202の処理で送信されたシグナリング、及び、ステップS303の処理で送信されたアプリケーションが受信される。
送信部403は、アプリケーションサーバ30により生成されたアプリケーション、シグナリングサーバ20により生成されたシグナリング、及び、DASHサーバ10により生成されたDASHセグメントを、伝送路80を介して送信(一斉同報配信)する(S401乃至S403)。
以上、送信側の処理の流れについて説明した。
なお、図8の送信側の処理では、アプリケーション、シグナリング、及びDASHセグメントが、放送サーバ40により放送経由で配信される場合を説明したが、アプリケーション、シグナリング、及びDASHセグメントの全部又はその一部のデータが、通信サーバ50により通信経由で配信されるようにしてもよい。ただし、以下の説明においても、アプリケーション、シグナリング、及びDASHセグメント等のデータは、放送サーバ40により放送経由で配信される場合を中心に説明する。
(受信側の処理の流れ)
次に、図9のフローチャートを参照して、アプリURLに応じたアプリケーション制御を行う場合の受信側の処理の流れを説明する。
図9に示した処理は、クライアント装置60により実行される。なお、図9においては、放送ミドルウェア604により実行される処理のほか、DASHクライアント605やデコーダ606、レンダリングエンジン612等により実行されるビデオ・オーディオ対応処理と、アプリケーション制御部611やレンダリングエンジン612等により実行されるアプリケーション対応処理の流れが示されている。
ただし、ビデオ・オーディオ対応処理は、コンテンツのビデオやオーディオのデータに関する処理を表し、アプリケーション対応処理は、アプリケーションのデータに関する処理を表している。
クライアント装置60においては、コンテンツの視聴を行うユーザにより、起動操作が行われた場合(S1)、処理部601や放送ミドルウェア604、DASHクライアント605、デコーダ606などの各部が起動される(S601,S621,S631)。
ステップS602において、放送ミドルウェア604は、受信部603を介して、放送サーバ40から送信されてくるシグナリングを受信する。ステップS603において、放送ミドルウェア604は、ステップS602の処理で受信されたシグナリングを処理する。
ここで、シグナリングとしては、SLTメタデータを含むLLSシグナリングと、USDメタデータ、S-TSIDメタデータ、及びMPDメタデータを含むSLSシグナリングが処理される。また、コンテンツに付随するアプリケーションが存在する場合、SLTメタデータ、又はSLSシグナリング(例えば、USD,S-TSID,MPD等のメタデータ)に、アプリURLが記述されている。
ステップS604において、放送ミドルウェア604は、ステップS603の処理で取得されたMPDメタデータを、DASHクライアント605に通知する。ステップS622において、DASHクライアント605は、ステップS604の処理で通知されたMPDメタデータを処理する。
ステップS605において、放送ミドルウェア604は、受信部603を介して、放送サーバ40から送信されてくるDASHセグメントを受信する。ステップS606において、放送ミドルウェア604は、ステップS605の処理で受信されたDASHセグメントを、DASHクライアント605に転送する。
ステップS623において、DASHクライアント605は、ステップS622のMPDメタデータの処理結果に基づいて、ステップS606の処理で転送されたDASHセグメントを処理する。また、ステップS624において、デコーダ606は、ステップS623の処理で得られるビデオとオーディオのデータのデコードを行う。
ステップS625において、レンダリングエンジン612は、ステップS624の処理で得られるビデオとオーディオのデータのレンダリングを行う。これにより、クライアント装置60においては、出力部607を介して、番組等のコンテンツの映像が表示されるとともにその音声が出力される。
このように、クライアント装置60においては、DASHクライアント605、デコーダ606、及びレンダリングエンジン612によって、ステップS622乃至S625の処理が行われることで、選局された番組等のコンテンツが再生されることになる。
また、ステップS607において、放送ミドルウェア604は、ステップS603のシグナリングの処理結果に基づいて、SLTメタデータ、又はSLSシグナリング(例えば、USD,S-TSID,MPD等のメタデータ)等のシグナリングに、アプリURLが記述されているかどうかを判定する。
ステップS607において、シグナリングに、アプリURLが記述されていると判定された場合、処理は、ステップS608に進められる。ステップS608において、放送ミドルウェア604は、アプリケーション制御部611からの制御に従い、シグナリングに記述されたアプリURLに基づいて、受信部603を介して、放送サーバ40から送信されてくるアプリケーションを受信する。
ステップS609において、放送ミドルウェア604は、ステップS608の処理で受信されたアプリケーションを、アプリケーション制御部611に転送する。
ステップS632において、アプリケーション制御部611は、ステップS609の処理で転送されたアプリケーションを即時に起動する。また、ステップS633において、レンダリングエンジン612は、ステップS632の処理で起動されたアプリケーションのデータのレンダリングを行う。これにより、クライアント装置60においては、番組等のコンテンツに付随したアプリケーションの映像が表示される。
このように、クライアント装置60においては、アプリケーション制御部611及びレンダリングエンジン612によって、ステップS632乃至633の処理が行われることで、アプリケーションが起動されることになる。ただし、アプリケーションは、番組等のコンテンツの映像とともに、画面上に表示されるようにすることは勿論、非表示としてバックグラウンドで実行されるようにしてもよい。
なお、ステップS607において、シグナリングに、アプリURLが記述されていないと判定された場合、ステップS608乃至S609の処理はスキップされる。すなわち、この場合、コンテンツに付随したアプリケーションは、未起動とされる。
その後、例えば、クライアント装置60において、コンテンツを視聴しているユーザにより、サービスの切り替え操作が行われた場合(S2)、放送ミドルウェア604は、受信部603を介して、放送サーバ40から送信されてくる、切り替え先のサービスのシグナリングを受信して処理する(S610)。
なお、ここでは、繰り返しになるのでその詳細な説明は省略するが、サービスの切り替え操作が行われた場合には、上述したステップS604乃至S606の処理、及び、ステップS622乃至S625の処理と同様の処理が行われ、切り替え先の番組のコンテンツが再生されることになる。
また、ステップS611において、放送ミドルウェア604は、ステップS610のシグナリングの処理結果に基づいて、SLTメタデータ等のシグナリングに、アプリURLが記述されている場合に、そのアプリURLが、起動中のアプリケーションのアプリURLと同一であるかどうかを判定する。
ステップS611において、シグナリングに記述されたアプリURLが、起動中のアプリケーションのアプリURLと異なっていると判定された場合、処理は、ステップS612に進められる。ステップS612において、放送ミドルウェア604は、アプリケーション制御部611からの制御に従い、シグナリングに記述されたアプリURLに基づいて、受信部603を介して、放送サーバ40から送信されてくるアプリケーションを受信する。
ステップS613において、放送ミドルウェア604は、ステップS612の処理で受信されたアプリケーションを、アプリケーション制御部611に転送する。
ステップS634において、アプリケーション制御部611は、ステップS632の処理で起動済みのアプリケーションを停止(終了)する。
ステップS635において、アプリケーション制御部611は、ステップS613の処理で転送された新たなアプリケーションを即時に起動する。また、ステップS636において、レンダリングエンジン612は、ステップS635の処理で起動された新たなアプリケーションのデータのレンダリングを行う。これにより、クライアント装置60においては、ステップS632の処理で起動されたアプリケーションの映像の代わりに、ステップS635の処理で起動された新たなアプリケーションの映像が表示される。
一方で、ステップS611において、シグナリングにアプリURLが記述されている場合に、起動中のアプリケーションのアプリURLと同一であると判定された場合、処理は、ステップS614に進められる。
ステップS614において、放送ミドルウェア604は、切り替え先のサービスのサービスID又はチャンネル番号(メジャーチャンネル番号)を、アプリケーション制御部611に通知する。これにより、アプリケーション制御部611は、ステップS632の処理で起動済みのアプリケーションに対して、切り替え先のサービスのサービスID又はチャンネル番号を認識させて、サービスの切り替えが起こったことを、当該アプリケーションが検知できるようにする。
なお、ステップS611において、シグナリングにアプリURLが記述されていないと判定された場合には、ステップS612乃至S614の処理はスキップされる。
以上、受信側の処理の流れについて説明した。
(3)アプリ制御イベントに応じたアプリケーション制御
ところで、アプリケーション自身が、ユーザとのインタラクションやその他のイベントにより、能動的にサービスの切り替えを行うようにしてもよい。この場合には、アプリケーションが、サービスの切り替えのAPI(Application Programming Interface)などをコールすることになる。また、クライアント装置60において、あるサービスのコンテンツを再生している場合に、明示的にアプリケーションを停止するときには、MPEG-DASHで規定されているDASHイベントを利用して、対象のアプリケーションが解釈できる制御コマンドにより、当該アプリケーションを停止するといったことも可能である。
ここで、MPEG-DASHでは、DASHイベントと称されるイベント通知機構が定義され、2種類のイベントの転送方法が規定されている。すなわち、1つ目の転送方法は、MPDイベントであり、2つ目の転送方法は、インバンドイベント(インバンドイベントシグナリング)である。第1の実施の形態では、これらのMPDイベントとインバンドイベントを利用して、アプリケーションの動作を制御する。
なお、DASHイベントを利用する場合の制御コマンドであるが、対象のアプリケーションが解釈できる制御コマンドであればよいため、そのフォーマットや意味などのコマンドの内容については、特に標準化して規定する必要はない。よって、第1の実施の形態では、新たなイベントの種類を定義するSchemIdUriとして、schemIdUri = "urn:atsc:applicationPrivateEvent"を定義することで、送信側システム5とクライアント装置60とが共通に理解できるプロトコルプリミティブを運ぶためのDASHイベントを導入するものとする。
以下、MPDイベントを用いてアプリケーションの動作を制御する方式を、MPDイベント方式と称するとともに、インバンドイベント(インバンドイベントシグナリング)を用いてアプリケーションの動作を制御する方式を、インバンドイベント方式と称して、それらの方式の詳細な内容を順に説明する。
(A)MPDイベント方式
MPDイベント方式では、MPDメタデータにおいて、ピリオド単位で、EventStream要素が追加され、そこにイベントに関する情報が記述される。すなわち、MPDメタデータ内に、ピリオド単位でイベントの発火スケジュールと、各イベントの発火のタイミングでのクライアント装置60が処理すべきイベントデータが記述される。これにより、クライアント装置60においては、MPDメタデータを解析することで、所定のイベントの発火のタイミングで、イベントデータを用いた処理が行われることになる。
(MPDの記述例)
図10は、MPDイベント方式のMPDメタデータの記述例を示す図である。
なお、XML形式のMPDメタデータでは、Period要素、AdaptationSet要素、及び、Representation要素が階層構造で記述されている。Period要素は、コンテンツ等のサービスの構成を記述する単位となる。また、AdaptationSet要素と、Representation要素は、ビデオやオーディオ、字幕等のサービスコンポーネントのストリームごとに利用され、それぞれのストリームの属性を記述できるようになっている。
図10において、ルート要素であるMPD要素のavailabilityStartTime属性は、最初のPeriod要素の開始のUTC時刻を表している。また、Period要素のstartTime属性は、MPD要素のavailabilityStartTime属性からのオフセット時間を表している。
ここで、Period要素には、ビデオやオーディオ等のサービスコンポーネントのストリームごとの情報が記述されるAdaptationSet要素やRepresentation要素のほかに、EventStream要素が追加されている。すなわち、このEventStream要素で指定されるイベントが、AdaptationSet要素で指定されるサービスコンポーネントのストリームと関連付けられている。
このEventStream要素により、Period要素の単位でのイベント発火スケジュールと、各イベント発火のタイミングでのクライアント装置60が処理すべき(クライアント装置60で起動(稼働)しているアプリケーションに渡すべき)イベント関連データを記述することができる。
図10のMPDメタデータの記述例では、EventStream要素のschemeIdUri属性により、イベントの種類を定義し、EventStream要素のEvent要素のコンテンツパートに、イベント関連データを記述することができる。つまり、このEvent要素のコンテンツパートに格納されるイベント関連データのフォーマット(何を格納すべきか)については、schemeIdUri属性の値(この例では"urn:xxx")により定義(特定)される。
なお、EventStream要素のtimescale属性として、"1000"が指定されているが、これは、Event要素のpresentationTime属性の値の単位時間が、1/1000秒となることを表している。
また、図10のEventStream要素において、1つ目のEvent要素のコンテンツパートに、例えば、イベント関連データ−1を記述することで、presentationTime属性で指定される"0"である発火時刻から、duration属性で指定される"1000"である単位時間だけ継続するイベントで、起動中のアプリケーションに対し、イベント関連データ−1を渡すことができる。
また、2つ目のEvent要素のコンテンツパートに、例えば、イベント関連データ−2を記述することで、presentationTime属性で指定される"1000"である発火時刻から、duration属性で指定される"4000"である単位時間だけ継続するイベントで、起動中のアプリケーションに対し、イベント関連データ−2を渡すことができる。
ここでは、EventStream要素のschemeIdUri属性の値として、例えば、"urn:atsc:applicationPrivateEvent"を定義することで、図1の送信側システム5とクライアント装置60とが共通に理解できる独自プロトコルの処理を実現することができる。このような独自プロトコルの処理としては、例えば、クライアント装置60で実行されているアプリケーションの表示内容の変更やその実行の停止などの処理が該当する。
なお、MPDイベント方式は、送信側システム5において、MPDメタデータの送出前に、MPDメタデータ内に記述されるPeriod要素の内容が確定できる場合にのみ適用可能となる。
次に、図11及び図12のフローチャートを参照して、MPDイベント方式のイベントによるアプリケーション制御を行う場合における伝送システム1(図1)の各装置で実行される処理の流れを説明する。ただし、このMPDイベント方式のイベントによるアプリケーション制御が行われる前提として、上述した図8及び図9に示した処理によって、クライアント装置60においてアプリケーションが既に起動中であるものとする。
(送信側の処理の流れ)
まず、図11のフローチャートを参照して、MPDイベント方式のイベントによるアプリケーション制御を行う場合の送信側の処理の流れを説明する。
図11のステップS311乃至S312の処理は、アプリケーションサーバ30により実行される。ステップS311において、アプリ制御イベント生成部313は、アプリ制御イベントを生成する。ステップS312において、送信部303は、ステップS311の処理で生成されたアプリ制御イベントを、DASHサーバ10に送信する。
図11のステップS111乃至S113の処理は、DASHサーバ10により実行される。また、DASHサーバ10においては、ステップS312の処理で送信されたアプリ制御イベントが受信される。
ステップS111において、MPD生成部111は、MPDメタデータを生成するに際して、アプリケーションサーバ30により生成されたアプリ制御イベントを、MPDイベントとして、MPDメタデータに格納する。
すなわち、MPDメタデータにおいては、Period要素に、EventStream要素が記述され、そのイベント関連データとして、アプリケーションサーバ30により生成されたアプリ制御イベントが記述される。なお、このとき、EventStream要素のschemeIdUri属性には、"urn:atsc:applicationPrivateEvent"が指定されている。
ステップS112において、DASHセグメント生成部112は、番組等のコンテンツを処理することで、ステップS111の処理で生成されたMPDメタデータにより再生が管理されるDASHセグメントを生成する。
ステップS113において、送信部103は、ステップS111の処理で生成されたMPDメタデータを、シグナリングサーバ20に送信し、ステップS112の処理で生成されたDASHセグメントを放送サーバ40に送信する。
図11のステップS211乃至S212の処理は、シグナリングサーバ20により実行される。また、シグナリングサーバ20においては、ステップS113の処理で送信されたMPDメタデータが受信される。
ステップS211において、シグナリング生成部211は、シグナリングを生成する。ここで、シグナリングとしては、SLTメタデータを含むLLSシグナリングと、USDメタデータ、S-TSIDメタデータ、及びMPDメタデータを含むSLSシグナリングが生成される。ただし、MPDメタデータには、MPDイベント(アプリ制御イベント)が含まれている。
ステップS212において、送信部203は、ステップS211の処理で生成されたシグナリングを、放送サーバ40に送信する。
図11のステップS411乃至S412の処理は、放送サーバ40により実行される。また、放送サーバ40においては、ステップS113の処理で送信されたDASHセグメント、及び、ステップS212の処理で送信されたシグナリングが受信される。
送信部403は、シグナリングサーバ20により生成されたシグナリング、及び、DASHサーバ10により生成されたDASHセグメントを、伝送路80を介して送信(一斉同報配信)する(S411乃至S412)。
以上、送信側の処理の流れについて説明した。
なお、図11の送信側の処理では、アプリ制御イベントが、アプリケーションサーバ30により生成される場合を説明したが、アプリ制御イベントの生成を行う専用のイベントサーバを設けるようにしてもよい。また、シグナリング又はDASHセグメントは、通信サーバ50により通信経由で配信されるようにしてもよい。
(受信側の処理の流れ)
次に、図12のフローチャートを参照して、MPDイベント方式のイベントによるアプリケーション制御を行う場合の受信側の処理の流れを説明する。
ステップS641乃至S643においては、図9のステップS602乃至S604と同様に、放送ミドルウェア604によって、放送サーバ40からのシグナリングが受信されて処理され、MPDメタデータが、DASHクライアント605に通知される。
ステップS651において、DASHクライアント605は、ステップS643の処理で通知されたMPDメタデータを処理する。また、ステップS652において、DASHクライアント605は、ステップS651のMPDメタデータの処理結果に基づいて、MPDメタデータから、MPDイベントとして格納されたアプリ制御イベントを抽出する。
すなわち、MPDメタデータにおいては、Period要素に、EventStream要素が記述され、そのイベント関連データとして、アプリ制御イベントが記述されているので、そこから、アプリ制御イベントが抽出される。なお、このとき、EventStream要素のschemeIdUri属性には、"urn:atsc:applicationPrivateEvent"が指定されている。
ステップS653において、DASHクライアント605は、ステップS652の処理で抽出されたアプリ制御イベントを、アプリケーション制御部611に通知する。
ステップS661において、アプリケーション制御部611は、ステップS653の処理で通知されたアプリ制御イベントを受け取る。ステップS662において、アプリケーション制御部611は、ステップS661の処理で取得したアプリ制御イベントに応じて、独自プロトコルの処理を行う。ここで、独自プロトコルの処理としては、送信側システム5とクライアント装置60とが共通に理解できる処理であって、例えば、起動中のアプリケーションの表示内容の変更やその実行の停止などの処理が行われる。
なお、ステップS644乃至S645においては、図9のステップS605乃至S606と同様に、放送ミドルウェア604によって、DASHセグメントが受信され、DASHクライアント605に転送される。また、ステップS654乃至S656においては、図9のステップS623乃至S625と同様に、DASHクライアント605、デコーダ606、及びレンダリングエンジン612によって、コンテンツのビデオやオーディオのデータに関する処理が行われることで、番組等のコンテンツの映像が表示されるとともにその音声が出力される。
以上、受信側の処理の流れについて説明した。
なお、クライアント装置60においては、図12の受信側の処理が行われることで、ステップS662の処理によって、アプリ制御イベントに応じて、起動中のアプリケーションを停止(終了)させることができるが、アプリケーションがいったん停止した後は、同一のサービスのSLSシグナリング(又はSLTメタデータの当該サービスのエントリ)に、停止したアプリケーションのアプリURLと異なるアプリURLが指定されるまでは、アプリケーションが起動されないようにする。このような制御モデルの簡略化によって、アプリケーションのライフサイクルコントロールを簡素化することができるため、例えば、クライアント装置60の実装やテストを容易にし、導入コストを低減することが可能となる。
(B)インバンドイベント方式
インバンドイベント方式では、MP4のブランド名として"emsg"であるbox_typeを有するDASHEventMessageBoxと称されるMP4 boxを、DASHセグメントに挿入することで、セグメントのストリームの中で、アプリ制御イベントが伝送されるようにする。なお、以下の説明では、DASHEventMessageBoxのうち、"emsg"であるbox_typeを有するDASHEventMessageBoxを、emsgボックスとも称している。
(DASHEventMessageBoxの配置例)
図13は、インバンドイベント方式のDASHEventMessageBoxの配置例を示す図である。
図13の例では、box_typeのフィールドに、"emsg"が配置されている。また、scheme_id_uriのフィールドには、イベントの種類が定義され、message_dataのフィールドには、イベント関連データが配置されている。
ここでは、scheme_id_uriのフィールドに、"urn:atsc:applicationPrivateEvent"を定義することで、図1の送信側システム5とクライアント装置60とが共通に理解できる独自プロトコルの処理を実現することができる。
また、図13のAにおいて、message_dataのフィールドに、イベント関連データ−1を配置することで、presentation_time_deltaのフィールドに配置される"0"である発火時刻(DASHセグメントの一番早いプレゼンテーションタイムから0 x 1/1000秒後)から、event_durationのフィールドに配置される"0xFFFF"である単位時間だけ継続するイベントで、起動中のアプリケーションに対し、イベント関連データ−1を渡すことができる。
一方で、図13のBにおいて、message_dataのフィールドに、イベント関連データ−2を配置することで、presentation_time_deltaのフィールドに配置される"500"である発火時刻(DASHセグメントの一番早いプレゼンテーションタイムから500 x 1/1000秒後)から、event_durationのフィールドに配置される"0xFFFF"である単位時間だけ継続するイベントで、起動中のアプリケーションに対し、イベント関連データ−2を渡すことができる。
このように、scheme_id_uriのフィールドに、"urn:atsc:applicationPrivateEvent"を定義するとともに、message_dataのフィールドに、イベント関連データ−1やイベント関連データ−2を配置することで、例えば、クライアント装置60で実行されているアプリケーションの表示内容を変更したり、その実行を停止したりすることができる。
次に、図14及び図15のフローチャートを参照して、インバンドイベント方式のイベントによるアプリケーション制御を行う場合における伝送システム1(図1)の各装置で実行される処理の流れを説明する。
(送信側の処理の流れ)
まず、図14のフローチャートを参照して、インバンドイベント方式のイベントによるアプリケーション制御を行う場合の送信側の処理の流れを説明する。
図14のステップS321乃至S322においては、図11のステップS311乃至S312と同様に、アプリケーションサーバ30のアプリ制御イベント生成部313によって、アプリ制御イベントが生成され、DASHサーバ10に送信される。
図14のステップS121乃至S123は、DASHサーバ10により実行される。また、DASHサーバ10においては、ステップS322の処理で送信されたアプリ制御イベントが受信される。ステップS121において、MPD生成部111は、MPDメタデータを生成する。
ステップS122において、DASHセグメント生成部112は、DASHセグメントを生成するに際して、アプリ制御イベントを、インバンドイベントとして、emsgボックス(DASHEventMessageBox)に格納して、DASHセグメント(のbox構造)に挿入する。
すなわち、emsgボックス(DASHEventMessageBox)において、scheme_id_uriのフィールドに、"urn:atsc:applicationPrivateEvent"が定義されるとともに、message_dataのフィールドに、イベント関連データとして、アプリケーションサーバ30により生成されたアプリ制御イベントが配置される。
ステップS123において、送信部103は、ステップS121の処理で生成されたMPDメタデータを、シグナリングサーバ20に送信し、ステップS122の処理で生成されたDASHセグメントを放送サーバ40に送信する。
図14のステップS221乃至S222においては、図11のステップS211乃至S212と同様に、シグナリングサーバ20のシグナリング生成部211によって、LLSシグナリングとSLSシグナリングが生成され、放送サーバ40に送信される。
図14のステップS421乃至S422においては、図11のステップS411乃至S412と同様に、放送サーバ40の送信部403によって、シグナリングサーバ20により生成されたシグナリングと、DASHサーバ10により生成されたDASHセグメントが、伝送路80を介して送信される。
以上、送信側の処理の流れについて説明した。
なお、図14の送信側の処理では、図11の送信側の処理と同様に、アプリ制御イベントが、アプリケーションサーバ30により生成される場合を説明したが、アプリ制御イベントの生成を行う専用のイベントサーバを設けるようにしてもよい。また、シグナリング又はDASHセグメントは、通信サーバ50により通信経由で配信されるようにしてもよい。
(受信側の処理の流れ)
次に、図15のフローチャートを参照して、インバンドイベント方式のイベントによるアプリケーション制御を行う場合の受信側の処理の流れを説明する。
ステップS671乃至S673においては、図12のステップS641乃至S643と同様に、放送ミドルウェア604によって、放送サーバ40からのシグナリングが受信されて処理され、MPDメタデータが、DASHクライアント605に通知される。
ステップS681において、DASHクライアント605は、ステップS673の処理で通知されたMPDメタデータを処理する。
ステップS674乃至S675においては、図12のステップS644乃至S645と同様に、放送ミドルウェア604によって、放送サーバ40からのDASHセグメントが受信され、DASHクライアント605に転送される。
ステップS682において、DASHクライアント605は、ステップS681のMPDメタデータの処理結果に基づいて、ステップS675の処理で転送されたDASHセグメントを処理する。また、ステップS683において、DASHクライアント605は、ステップS682の処理結果に基づいて、DASHセグメント(のbox構造)に挿入されたemsgボックス(DASHEventMessageBox)から、インバンドイベントとして格納されたアプリ制御イベントを抽出する。
すなわち、emsgボックス(DASHEventMessageBox)においては、scheme_id_uriのフィールドに、"urn:atsc:applicationPrivateEvent"が定義されるとともに、message_dataのフィールドに、イベント関連データとして、アプリ制御イベントが配置されているので、そこから、アプリ制御イベントが抽出される。
ステップS684において、DASHクライアント605は、ステップS683の処理で抽出されたアプリ制御イベントを、アプリケーション制御部611に通知する。
ステップS691乃至S692においては、図12のステップS661乃至S662と同様に、アプリケーション制御部611によって、アプリ制御イベントに応じた独自プロトコルの処理が行われる。ここで、独自プロトコルの処理としては、送信側システム5とクライアント装置60とが共通に理解できる処理であって、例えば、起動中のアプリケーションの表示内容の変更やその実行の停止などの処理が行われる。
なお、ステップS685乃至S686においては、図12のステップS655乃至S656と同様に、デコーダ606、及び、レンダリングエンジン612によって、コンテンツのビデオやオーディオのデータに関する処理が行われることで、番組等のコンテンツの映像が表示されるとともにその音声が出力される。
以上、受信側の処理の流れについて説明した。
なお、クライアント装置60においては、図15の受信側の処理が行われることで、ステップS692の処理によって、アプリ制御イベントに応じて、起動中のアプリケーションを停止(終了)させることができるが、アプリケーションがいったん停止した後は、同一のサービスのSLSシグナリング(又はSLTメタデータの当該サービスのエントリ)に、停止したアプリケーションのアプリURLと異なるアプリURLが指定されるまでは、アプリケーションが起動されないようにする。このような制御モデルの簡略化によって、アプリケーションのライフサイクルコントロールを簡素化することができるため、例えば、クライアント装置60の実装やテストを容易にし、導入コストを低減することが可能となる。
<2.第2の実施の形態:アプリケーションのセキュアな提供>
ところで、番組やCM等のコンテンツに付随するアプリケーションは、いわゆる電波ジャックなどの不正行為により、番組等のコンテンツの提供者(例えば放送局)の意図しない悪意のあるアプリケーションに置き換えられる可能性が問題視されている。この種の問題の解決策としては、PKI(Public Key Infrastructure)等を利用した本格的なアプリケーション認証のプラットフォームを構築する方法も考えられるが、アプリケーション認証のためだけに、本格的なプラットフォームを構築することは、コストの面から現実的ではない。
一方で、アプリケーションが付随する番組等のコンテンツは、デジタル著作権管理(DRM:Digital Rights Management)によって、不正な利用から保護するという運用が想定されるが、本技術では、このDRMのコンテンツ保護の仕組みを利用して、コンテンツに付随するアプリケーションがセキュアに提供されるようにする。
以下、第2の実施の形態として、DRMのコンテンツ保護の仕組みを利用したアプリケーションのセキュアな提供について説明する。ただし、第2の実施の形態においても、上述した第1の実施の形態と同様に、セキュアに提供されるアプリケーションのライフサイクルコントロールが、簡素化されているものとする。
また、第2の実施の形態においては、DRMのコンテンツ保護の仕組みを利用して、アプリケーションから一定の計算手順(アルゴリズム)により求められたダイジェスト値(ハッシュ値)を含むアプリダイジェスト(後述する図22のアプリダイジェスト(app_digest_message))が、次の2つの方式により格納されるようにする。
すなわち、第1の方式としては、アプリダイジェストを、ウォータマーク(Watermark)として、ビデオ符号化データに挿入してから、VCL-NAL(Video Coding Layer - Network Abstraction Layer)ユニットとして、ISOBMFF(ISO Base Media File Format)のfragmented mp4のmdat内のサンプルとして伝送されるようにする。以下、この第1の方式のことを、ウォータマーク格納方式と称して説明する。
また、第2の方式としては、アプリダイジェストを、非VCL-NAL(Non Video Coding Layer - Network Abstraction Layer)ユニットに直接格納して、ISOBMFFのfragmented mp4のmdat内のサンプルとして伝送されるようにする。以下、この第2の方式のことを、非VCL-NALユニット格納方式と称して説明する。
なお、NAL(Network Abstraction Layer)とは、例えばHEVC(High Efficiency Video Coding)等において、ビデオ符号化処理そのものを扱うVCL(Video Coding Layer)と、符号化された情報(符号列)を伝送・蓄積する下位システムとの間に設けられた層(ネットワーク抽象レイヤ)である。したがって、VCLとNALとは、分離された構造となっている。
(1)システムの構成
(伝送システムの構成)
図16は、本技術を適用した伝送システムの一実施の形態(第2の実施の形態)の構成例を示す図である。
図16において、伝送システム2は、送信側システム7と、受信側のクライアント装置60から構成される。なお、図16の伝送システム2において、図1の伝送システム1と対応する部分には同一の符号が付してあり、繰り返しになる部分の説明は適宜省略するものとする。
図16において、送信側システム7は、図1の送信側システム5と比べて、DASHサーバ10乃至通信サーバ50に加えて、ストリームサーバ70が新たに設けられている点が異なっている。
アプリケーションサーバ30は、アプリダイジェストを生成する。なお、詳細は、図22等を参照して後述するが、アプリダイジェストには、アプリケーションのアプリURLと、当該アプリケーションに対して所定のアルゴリズムを適用することで生成されたダイジェスト値(ハッシュ値)が含まれる。
アプリケーションサーバ30は、ウォータマーク格納方式を採用した場合には、アプリダイジェストを、ストリームサーバ70に送信し、非VCL-NALユニット格納方式を採用した場合には、アプリダイジェストを、DASHサーバ10に送信する。
ストリームサーバ70は、番組等のコンテンツ(のデータ)を処理することで、ストリーム(ベースバンドフレームシーケンス)を生成する。また、ストリームサーバ70は、ストリームのベースバンドフレームをエンコードすることで、VCL-NALユニットを生成する。
ただし、ストリームサーバ70は、ウォータマーク格納方式を採用した場合、ストリームのベースバンドフレームに挿入されるウォータマークに、アプリケーションサーバ30により生成されたアプリダイジェストを格納する。
DASHサーバ10は、ストリームサーバ70から送信されてくるストリームのデータを処理して、DASHセグメントを生成し、放送サーバ40又は通信サーバ50に送信する。
ただし、DASHサーバ10は、ウォータマーク格納方式を採用した場合、アプリケーションサーバ30により生成されたアプリダイジェストを格納したウォータマークを含むVCL-NALユニットを暗号化して得られるDRM保護ファイルを処理することで、DASHセグメントを生成する。
一方で、DASHサーバ10は、非VCL-NALユニット格納方式を採用した場合、アプリケーションサーバ30により生成されたアプリダイジェストを格納した非VCL-NALユニットを生成し、VCL-NALユニットと非VCL-NALユニットを暗号化して得られるDRM保護ファイルを処理することで、DASHセグメントを生成する。
放送サーバ40又は通信サーバ50は、DASHサーバ10により生成されたDASHセグメント、シグナリングサーバ20により生成されたシグナリング、及び、アプリケーションサーバ30により生成されたアプリケーションを、伝送路80又はインターネット90を介して配信する。
クライアント装置60は、図1のクライアント装置60と同様に、コンテンツを再生したり、当該コンテンツに付随したアプリケーションを実行したりする。また、クライアント装置60は、図1のクライアント装置60と比べて、アプリダイジェストを用いてアプリケーションの検証処理を行う点が異なっている。
すなわち、クライアント装置60は、ウォータマーク格納方式を採用した場合、DRM保護ファイルに含まれるウォータマークに格納されたアプリダイジェストを抽出し、当該アプリダイジェストを用いて、アプリケーションの検証処理を行う。一方で、クライアント装置60は、非VCL-NALユニット格納方式を採用した場合、DRM保護ファイルに含まれる非VCL-NALユニットに格納されたアプリダイジェストを抽出し、当該アプリダイジェストを用いて、アプリケーションの検証処理を行う。
なお、図16の伝送システム2の構成は一例であって、他の構成を採用してもよい。例えば、アプリダイジェストは、アプリケーションサーバ30ではなく、専用のサーバが生成するようにしてもよい。また、例えば、ウォータマーク格納方式を採用した場合のウォータマークに関する処理などを、専用のサーバが行うようにしてもよい。
次に、図17乃至図20を参照して、図16の伝送システム2における、送信側システム7のストリームサーバ70、DASHサーバ10、及び、アプリケーションサーバ30と、クライアント装置60の構成について説明する。なお、シグナリングサーバ20は、図3に示した構成と同一であるため、その説明は省略する。また、通信サーバ50についても、上述した構成と同一の構成を有している。
(ストリームサーバの構成)
図17は、図16のストリームサーバ70の構成例を示す図である。
図17において、ストリームサーバ70は、受信部701、処理部702、及び、送信部703から構成される。また、処理部702は、ストリーム生成部711、ウォータマークインサータ712、及び、エンコーダ713を含んでいる。
受信部701は、外部のサーバ(不図示)などから、番組やCM等のコンテンツ(のデータ)を受信し、処理部702に供給する。なお、この例では、番組やCM等のコンテンツ(のデータ)が、外部から提供される場合を説明するが、番組やCM等のコンテンツ(のデータ)は、ストリームサーバ70により蓄積されるようにしてもよい。
また、受信部701は、ウォータマーク格納方式を採用した場合、アプリケーションサーバ30から送信されてくるアプリダイジェストを受信し、処理部702(のウォータマークインサータ712)に供給する。
処理部702は、受信部701から供給される番組等のコンテンツ(のデータ)を処理し、送信部703に供給する。また、処理部702は、ストリーム生成部711、ウォータマークインサータ712、及び、エンコーダ713から供給される。
ストリーム生成部711は、受信部701から供給される番組等のコンテンツ(のデータ)を処理することで、ビデオのストリーム(ベースバンドフレームシーケンス)を生成する。なお、ここでは詳細な説明は省略するが、ストリーム生成部711はコンテンツ(のデータ)を処理することで、オーディオのストリームも生成している。
ウォータマークインサータ712は、ウォータマーク格納方式を採用した場合、ストリーム生成部711により生成されたストリームのベースバンドフレームに挿入されるウォータマーク(ウォータマークペイロード)に、アプリケーションサーバ30により生成されるアプリダイジェストを格納する。
ただし、ウォータマークインサータ712は、ウォータマーク格納方式を採用した場合にのみ動作するものであって、非VCL-NALユニット格納方式を採用した場合、ストリームサーバ70において、ウォータマークインサータ712を動作させる必要はない(設ける必要はない)。
エンコーダ713は、所定の符号化方式(例えばHEVC等)に従い、ストリーム生成部711により生成されたビデオのストリームのベースバンドフレームをエンコードし、VCL-NALユニットを生成する。なお、ここでは詳細な説明は省略するが、エンコーダ713は、ストリーム生成部711により生成されたオーディオのストリームについても、所定の符号化方式(例えばAAC等)に従い、エンコードすることになる。
送信部703は、処理部702(のエンコーダ713)から供給されるVCL-NALユニット(とオーディオのデータ)を含むストリームのデータを、DASHサーバ10に送信する。
ストリームサーバ70は、以上のように構成される。
(DASHサーバの構成)
図18は、図16のDASHサーバ10の構成例を示す図である。なお、図18のDASHサーバ10において、図2のDASHサーバ10と対応する部分には同一の符号が付してあり、その説明は適宜省略する。
図18において、DASHサーバ10は、受信部101、処理部102、及び、送信部103から構成される。また、処理部102は、MPD生成部111、及び、DASHセグメント生成部112に加えて、暗号化部113、DRM保護ファイル生成部114、及び、非VCL-NALユニット生成部115を含んでいる。
受信部101は、ストリームサーバ70から送信されてくるストリームのデータを受信し、処理部102に供給する。処理部102は、受信部101から供給されるストリームのデータを処理し、DASHセグメントを生成し、送信部103に供給する。送信部103は、処理部102から供給されるDASHセグメントを、放送サーバ40又は通信サーバ50に送信する。
より具体的には、ウォータマーク格納方式を採用した場合には、次のようにしてDASHセグメントが生成される。すなわち、暗号化部113は、所定の暗号化方式に従い、ストリームサーバ70により生成されたVCL-NALユニットを暗号化する。
続いて、DRM保護ファイル生成部114は、暗号化部113により暗号化されたVCL-NALユニットを処理して、DRM保護ファイルを生成する。ここでは、例えば、PlayReady(登録商標)等のDRMの方式に従い、DRM保護ファイルは保護される。そして、DASHセグメント生成部112は、DRM保護ファイル生成部114により生成されたDRM保護ファイルを処理して、DASHセグメントを生成する。
一方で、非VCL-NALユニット格納方式を採用した場合には、次のようにしてDASHセグメントが生成される。すなわち、非VCL-NALユニット生成部115は、アプリケーションサーバ30により生成されたアプリダイジェストを格納した非VCL-NALユニットを生成する。また、暗号化部113は、所定の暗号化方式に従い、ストリームサーバ70により生成されたVCL-NALユニットと、非VCL-NALユニット生成部115により生成された非VCL-NALユニットを暗号化する。
続いて、DRM保護ファイル生成部114は、暗号化部113により暗号化されたVCL-NALユニットと非VCL-NALユニットを処理して、DRM保護ファイルを生成する。ここでは、例えば、PlayReady(登録商標)等のDRMの方式に従い、DRM保護ファイルは保護される。そして、DASHセグメント生成部112は、DRM保護ファイル生成部114により生成されたDRM保護ファイルを処理して、DASHセグメントを生成する。ただし、非VCL-NALユニット生成部115は、非VCL-NALユニット格納方式を採用した場合にのみ動作するものであって、ウォータマーク格納方式を採用した場合、DASHサーバ10において、非VCL-NALユニット生成部115を動作させる必要はない(設ける必要はない)。
DASHサーバ10は、以上のように構成される。
(アプリケーションサーバの構成)
図19は、図16のアプリケーションサーバ30の構成例を示す図である。なお、図19のアプリケーションサーバ30において、図4のアプリケーションサーバ30と対応する部分には同一の符号が付してあり、その説明は適宜省略する。
図19において、アプリケーションサーバ30は、受信部301、処理部302、及び、送信部303から構成される。また、処理部302は、アプリURL生成部311、アプリケーション生成部312、及び、アプリ制御イベント生成部313に加えて、アプリダイジェスト生成部314を含んでいる。
アプリダイジェスト生成部314は、アプリケーション生成部312により生成されたアプリケーションから一定の計算手順(アルゴリズム)により求められたダイジェスト値(ハッシュ値)を含むアプリダイジェストを生成し、送信部303に供給する。なお、アプリダイジェストの詳細な内容は、図22等を参照して後述する。
送信部303は、アプリダイジェスト生成部314から供給されるアプリダイジェストを、DASHサーバ10又はストリームサーバ70に送信する。
なお、ここでは、ウォータマーク格納方式を採用した場合、アプリダイジェストは、ストリームサーバ70に送信される。一方で、非VCL-NALユニット格納方式を採用した場合、アプリダイジェストは、DASHサーバ10に送信される。
アプリケーションサーバ30は、以上のように構成される。
(クライアント装置の構成)
図20は、図16のクライアント装置60の構成例を示す図である。なお、図20のクライアント装置60において、図6のクライアント装置60と対応する部分には同一の符号が付してあり、その説明は適宜省略する。
図20において、クライアント装置60は、処理部601、入力部602、受信部603、放送ミドルウェア604、DASHクライアント605、デコーダ606、出力部607、及び、通信部608から構成される。また、処理部601は、図6の処理部601と比べて、アプリケーション制御部611及びレンダリングエンジン612に加えて、ウォータマークイクストラクタ613及びアプリダイジェストバリデータ614を有している。
図16のクライアント装置60では、図6のクライアント装置60と比べて、アプリダイジェストを用いてアプリケーションの検証処理を行う点が異なっている。
より具体的には、ウォータマーク格納方式を採用した場合には、次のようにして、アプリダイジェストを用いたアプリケーションの検証処理が行われる。すなわち、DASHクライアント605(のDRM保護ファイル処理部)は、DASHセグメントを処理することで得られるDRM保護ファイルのアンパッケージングを行う。また、DASHクライアント605(の復号部)は、所定の復号方式に従い、DRM保護ファイルのアンパッケージングを行うことで得られる暗号化されたVCL-NALユニットを復号する。
続いて、デコーダ606は、所定の復号方式(例えばHEVC等)に従い、DASHクライアント605により処理されたVCL-NALユニットをデコードする。このとき、ウォータマークイクストラクタ613は、VCL-NALユニットをデコードすることで得られるベースバンドフレームに挿入されているウォータマークを抽出する。アプリダイジェストバリデータ614は、ウォータマークイクストラクタ613により抽出されたウォータマークに格納されたアプリダイジェストを抽出する。
そして、アプリダイジェストバリデータ614は、ウォータマークに格納されたアプリダイジェストと、放送ミドルウェア604からのアプリケーションに応じたアプリダイジェストとを比較して、比較対象のアプリダイジェストが一致する場合には、放送ミドルウェア604からのアプリケーションを(即時に)起動する。
一方で、非VCL-NALユニット格納方式を採用した場合には、次のようにして、アプリダイジェストを用いたアプリケーションの検証処理が行われる。すなわち、DASHクライアント605(のDRM保護ファイル処理部)は、DASHセグメントを処理することで得られるDRM保護ファイルのアンパッケージングを行う。また、DASHクライアント605(の復号部)は、所定の復号方式に従い、DRM保護ファイルのアンパッケージングを行うことで得られる暗号化された非VCL-NALユニットを復号する。
続いて、アプリダイジェストバリデータ614は、DASHクライアント605(の復号部)により復号された非VCL-NALユニットに格納されたアプリダイジェストを抽出する。
そして、アプリダイジェストバリデータ614は、非VCL-NALユニットに格納されたアプリダイジェストと、放送ミドルウェア604からのアプリケーションに応じたアプリダイジェストとを比較して、比較対象のアプリダイジェストが一致する場合には、放送ミドルウェア604からのアプリケーションを(即時に)起動する。
このようにして、クライアント装置60では、ウォータマーク格納方式又は非VCL-NALユニット格納方式によって、アプリダイジェストを用いたアプリケーションの検証処理が行われる。ただし、ウォータマークイクストラクタ613は、ウォータマーク格納方式を採用した場合にのみ動作するものであって、非VCL-NALユニット格納方式を採用した場合、クライアント装置60において、ウォータマークイクストラクタ613を動作させる必要はない(設ける必要はない)。
クライアント装置60は、以上のように構成される。
(2)アプリダイジェストの概要
上述した第1の実施の形態においては、コンテンツに付随するアプリケーションのライフサイクルコントロールとして、アプリケーションの起動制御を行う場合に、アプリケーションのアプリURLを、クライアント装置60に通知することで、クライアント装置60では、当該アプリURLで識別されるアプリケーション(アプリケーションパッケージ)が取得され、即時に起動されることになる。
このとき、アプリケーションは、放送経由又は通信経由で取得されることになるが、放送の伝送経路上で、アプリURL又はアプリケーションそのもののすげ替えや改ざんなどの不正行為が行われる危険性がある場合には、これを保護する必要がある。
このような保護の方法の1つとして、例えば、アプリURLを含むSLTメタデータやSLSシグナリング(のメタデータ)を伝送するセッション、さらには、アプリケーションを伝送するセッションそのものを、しかるべきトランスポート/ネットワークのセキュリティ技術(例えば、IPSec(Security Architecture for Internet Protocol)など)を利用して、暗号化する方法が想定される。
しかしながら、この種の暗号化や改ざんなどの検出のためのシステムを構築するにはコストが問題となることがあり、コストを最小限に抑えて、より容易に、アプリURLやアプリケーションのすげ替えや改ざんなどの不正行為の危険性から保護するための仕組みが求められている。
そこで、第2の実施の形態では、アプリケーションのすげ替えや改ざんなどの不正行為を検出するために、送信側システム7で、ハッシュ関数のアルゴリズムにより計算されるアプリケーション自身のダイジェスト値(ハッシュ値)が、アプリダイジェストとして、クライアント装置60に通知されるようにする。そして、クライアント装置60では、送信側システム7から通知されるアプリダイジェスト(アプリケーション自身のダイジェスト値)を用い、アプリケーションに対し、すげ替えや改ざんなどの不正行為が行われているか否かを検証することになる。
例えば、アプリケーションが、HTML文書ファイル等の複数のファイル群から構成される場合に、当該アプリケーションを構成するファイル群をまとめて署名する方式としては、XML署名(XML Signature)により規定された方式を用いることができる。なお、XML署名は、W3C(World Wide Web Consortium)によって、デジタル署名のためのXML構文を規定するものとして勧告されている。
ここで、図21の左側に示すように、送信側の送信側システム7においては、アプリケーションサーバ30のアプリダイジェスト生成部314により、クライアント装置60に配信されるアプリケーションに対して、所定のアルゴリズムを適用することで生成されたダイジェスト値(ハッシュ値)を含むアプリダイジェストが生成される。このアプリダイジェストとしては、例えば、対象のアプリケーションのアプリURLと、そのアプリURLに、MD5(Message Digest Algorithm 5)やSHA-1,SHA-256などの所定のアルゴリズムを適用することで得られるダイジェスト値が含まれるようにすることができる。
送信側の送信側システム7においては、放送サーバ40(又は通信サーバ50)によって、アプリケーションサーバ30により生成されたアプリケーションが、伝送路80(又はインターネット90)を介して、受信側のクライアント装置60に送信される。
また、送信側の送信側システム7においては、放送サーバ40(又は通信サーバ50)によって、アプリケーションサーバ30により生成されたアプリダイジェストが、ウォータマーク格納方式又は非VCL-NALユニット格納方式により保護された状態で、伝送路80(又はインターネット90)を介して、受信側のクライアント装置60に送信される。
一方で、受信側のクライアント装置60においては、送信側の送信側システム7から送信されるアプリケーションが受信される。受信側のクライアント装置60は、送信側の送信側システム7から配信(受信)されたアプリケーションに対して、送信側の送信側システム7と同一のアルゴリズムを適用して、アプリダイジェスト(ダイジェスト値)を生成する。ここでは、例えば、対象のアプリケーションのアプリURLに、MD5やSHA-1,SHA-256などの所定のアルゴリズムを適用することで、ダイジェスト値が求められる。
また、受信側のクライアント装置60においては、送信側の送信側システム7から送信されるアプリダイジェストであって、ウォータマーク格納方式又は非VCL-NALユニット格納方式により保護されたアプリダイジェストが受信される。
そして、受信側のクライアント装置60は、ウォータマーク格納方式又は非VCL-NALユニット格納方式により保護されたアプリダイジェスト(ダイジェスト値)と、自身が送信側と同一のアルゴリズムを適用することで求めたアプリダイジェスト(ダイジェスト値)とを比較して、それらのアプリダイジェスト(ダイジェスト値)が一致するかどうかを判定する。
受信側のクライアント装置60は、アプリダイジェスト(ダイジェスト値)が一致すると判定した場合には、送信側の送信側システム7から配信されたアプリケーションを、例えば、即時に起動するなど、正当なアプリケーションとして処理する。一方で、受信側のクライアント装置60は、アプリダイジェスト(ダイジェスト値)が一致しないと判定した場合には、送信側の送信側システム7から配信されたアプリケーションを、例えば、未起動とするなど、不当なアプリケーションとして処理する。
ところで、アプリケーションが付随するコンテンツは、デジタル著作権管理(DRM)によって、不正な利用から保護するという運用が想定される。特に、ATSC3.0では、番組等のコンテンツ(のストリーム)の保護が要件となっており、何らかのDRMが導入される可能性が高い。第2の実施の形態では、このコンテンツを保護するためのDRMを利用して、送信側システム7からクライアント装置60に、アプリダイジェストを通知することで、正当なアプリケーションであるかどうかを検証できるようにしている。
また、DRMを利用することにより、保護対象となるコンテンツ(のストリーム)と、それに付随するアプリケーションとのバインディング(関連付け)をも検証することができる。
ここで、DRMとしては、例えば、PlayReady(登録商標),Marlin,Widevine,Verimatrix等の方式を適用することができるが、いずれの方式にも共通に適用可能なアプリケーションバインディング保護のための各種のフォーマットを仕様化しておくようにする。これにより、クライアント装置60では、DRMとして、いずれの方式が適用された場合でも、各方式の違いによらずに、正当なアプリケーションとのバインディングであるかどうかを検証することができる。
(アプリダイジェストのシンタックスの例)
図22は、アプリダイジェスト(app_digest_message)のシンタックスの例を示す図である。
8ビットのuri_strlenは、対象のアプリケーションを識別するURL(アプリURL)の長さを表している。8×uri_strlenビットのuri_string()は、対象のアプリケーションを識別するURL(アプリURL)を表している。
8ビットのdigest_typeは、暗号学的ハッシュ関数のアルゴリズムの種別を示す。例えば、図23に示すように、digest_typeとして"0x01"が指定された場合、アルゴリズムは、MD5(Message Digest Algorithm 5)であることを表している。また、例えば、digest_typeとして、"0x02"が指定された場合には、SHA-1,"0x03"が指定された場合には、SHA-256が、アルゴリズムとして指定されることになる。なお、SHAは、Secure Hash Algorithmの略である。また、0x00,0x04〜0xFFは、将来の拡張のために予約された値(reserved)とされる。
図22の説明に戻り、8ビットのdigest_lenは、対象のアプリケーションのダイジェスト値のバイト長を表している。8×digest_lenビットのdigest_valueは、対象のアプリケーションのダイジェスト値を表している。
そして、第2の実施の形態では、図22のアプリダイジェスト(app_digest_message)が、上述したウォータマーク格納方式、又は非VCL-NALユニット格納方式に応じて格納されることになる。
すなわち、ウォータマーク格納方式では、アプリダイジェストを、ウォータマークとして、ビデオ符号化データに挿入してから、VCL-NALユニットとして、ISOBMFFのfragmented mp4のmdat内のサンプルとして伝送されるようにしている。また、非VCL-NALユニット格納方式では、アプリダイジェストを、非VCL-NALユニットに直接格納して、ISOBMFFのfragmented mp4のmdat内のサンプルとして伝送されるようにしている。
なお、図24には、ISOBMFFに対応したセグメントのデータ形式の例を示しているが、ウォータマーク格納方式、又は非VCL-NALユニット格納方式を採用した場合には、メディアセグメント(Media Segment)において、サブセグメント(Sub Segment)のMovie fragmentを構成するmoofとmdatのうち、mdat内に、アプリダイジェストが格納されることになる。
(3)アプリダイジェストの伝送方式
次に、ウォータマーク格納方式と、非VCL-NALユニット格納方式の詳細な内容について説明する。
(A)ウォータマーク格納方式
(ウォータマーク格納方式の概要)
図25は、ウォータマーク格納方式の概要を説明する図である。
図25においては、送信側システム7の放送サーバ40から、伝送路80を介してクライアント装置60に伝送される放送ストリームを模式的に表している。この放送ストリームには、DRMにより暗号化されている部分(暗号化パイプ(Encrypted Pipe))と、暗号化されていない部分(非暗号化パイプ(Clear Pipe))がある。
ウォータマーク格納方式では、暗号化パイプで、アプリケーション(App)を検証するためのアプリダイジェスト(App Digest)を、ウォータマーク(Watermark)に格納することで、当該アプリダイジェストが保護されるようにする。ただし、このアプリダイジェストには、図22に示したように、アプリケーションの識別情報(例えばアプリURL)と、アプリケーションのダイジェスト値が含まれている。
クライアント装置60では、番組等のコンテンツの再生中にDRMを解くことで、ウォータマークに格納されたアプリケーションのアプリURLとダイジェスト値を抽出し、ダイジェスト値を用いて、アプリURLにより特定されるアプリケーションが、正当なアプリケーションであるかどうかの検証を行う。ここでは、ウォータマークに格納されたダイジェスト値と、アプリURLに従って取得されるアプリケーションに応じたダイジェスト値とを比較することで検証を行い、これらのダイジェスト値が一致する場合には、アプリURLにより特定されるアプリケーションは、正当なアプリケーションであると判定する。
例えば、IP伝送方式を採用するATSC3.0において、番組等のコンテンツのビデオとオーディオのストリームは、DRMによるセキュアな暗号化パイプで伝送されて保護されるが、IP/UDP上のROUTEセッションで伝送される(コンテンツの)DASHセグメントのファイル(DASHセグメント MP4フラグメントファイル)を構成するメディアセグメントのMovie fragmentのmdatに格納されるVCL-NALユニットには、アプリダイジェストを含むウォータマークが格納されている。そして、このウォータマークの構造として、アプリケーションのアプリURLとダイジェスト値を含むアプリダイジェストのフィールドが定義されているのである。
このように、ウォータマーク格納方式を採用することで、番組等のコンテンツの保護のためのDRMによるセキュアな暗号化パイプを、アプリダイジェストの伝送に流用することで、エンドツーエンドのセキュリティが保証され、例えば、アプリケーションのすげ替えや改ざん、コンテンツとアプリケーションとの関連付けの改ざんなど、悪意のある第三者による不正(攻撃)を回避することができる。
また、ウォータマーク格納方式によれば、PKI等を利用した本格的なアプリケーション認証のためのプラットフォーム(インフラストラクチャ)を構築することなく、既存のDRMを流用してアプリケーション認証を行うことが可能となるため、コストの軽減を担保することができる。
(ウォータマークペイロードの構造)
図26は、ビデオウォータマーク(ウォータマーク)を利用したアプリダイジェストの格納方法を示す図である。
図26に示すように、1ビデオフレームにおいては、映像表示領域の上側の所定のライン(例えば2ライン)をビデオウォータマークとして利用することができる。このビデオウォータマークで利用されるラインでは、例えば、1ブロックごとに、1ビットや2ビットの情報量を伝送することができる。そして、ビデオウォータマークでは、ビデオ符号化データの所定のライン(例えば2ライン)を用い、ウォータマークペイロード(Watermark payload)を伝送することができる。
このウォータマークペイロードには、WMメッセージ(wm_message())として、図22に示したアプリダイジェストメッセージ(app_digest_message())を配置することができる。このアプリダイジェストメッセージには、アプリURLを格納したuri_string()と、ダイジェスト値を格納したdigest_valueが含まれる。以下、図27乃至図29を参照して、ウォータマークペイロードのシンタックスについて説明する。
(ウォータマークペイロードのシンタックス)
図27は、ウォータマークペイロード(Watermark payload)のシンタックスの例を示す図である。
16ビットのrun_in_patternには、ビデオウォータマークの伝送パターンと、白から黒までの範囲で表される1領域の分解能が指定される。この伝送パターンとしては、例えば、1ライン又は2ラインが指定される。また、1領域の分解能としては、例えば、8ビット〜12ビットが指定される。
wm_message_block()は、ウォータマークのメッセージ領域を表している。8ビットのzero_padは、ゼロパディングを表している。
(WMメッセージブロックのシンタックス)
図28は、図27のWMメッセージブロック(wm_message_block())のシンタックスの例を示す図である。
8ビットのwm_message_idには、WMメッセージIDが指定される。8ビットのwm_message_block_lengthには、WMメッセージブロック長が指定される。
4ビットのwm_message_versionには、WMメッセージのバージョンが指定される。2ビットのfragment_numberと、2ビットのlast_fragmentには、フラグメントに関する情報が指定される。
ここで、wm_message()には、WMメッセージIDに指定される値に応じたWMメッセージが指定される。例えば、図29に示すように、WMメッセージIDとして、"0x08"が指定された場合、WMメッセージとして、アプリダイジェストメッセージ(app_digest_message())が配置される。なお、WMメッセージには、message_CRC_32やCRC_32などの誤り検出符号が含まれる。
次に、図30及び図31のフローチャートを参照して、ウォータマーク格納方式を採用した場合における伝送システム2(図16)の各装置で実行される処理の流れを説明する。
(送信側の処理の流れ)
まず、図30のフローチャートを参照して、ウォータマーク格納方式を採用した場合の送信側の処理の流れを説明する。なお、この送信側の処理では、アプリダイジェストがビデオウォータマークに格納される場合を説明するため、ビデオのデータに対する処理を中心に説明し、オーディオのデータに対する処理の説明については適宜省略する。
図30のステップS351乃至S355の処理は、アプリケーションサーバ30により実行される。ステップS351において、アプリURL生成部311は、アプリURLを生成する。ステップS352において、アプリケーション生成部312は、ステップS351の処理で生成されたアプリURLにより識別されるアプリケーションを生成する。
ステップS353において、送信部303は、ステップS351の処理で生成されたアプリURLを、シグナリングサーバ20に送信し、ステップS352の処理で生成されたアプリケーションを、放送サーバ40に送信する。
ステップS354において、アプリダイジェスト生成部314は、アプリダイジェストを生成する。このアプリダイジェストには、例えば、ステップS351の処理で生成されたアプリURLと、ステップS352の処理で生成されたアプリケーションに対して、所定のアルゴリズム(例えば、MD5など)を適用することで生成されたダイジェスト値(ハッシュ値)が含まれる。
ステップS355において、送信部303は、ステップS354の処理で生成されたアプリダイジェストを、ストリームサーバ70に送信する。
図30のステップS701乃至S704の処理は、ストリームサーバ70により実行される。また、ストリームサーバ70においては、ステップS355の処理で送信されたアプリダイジェストが受信される。
ステップS701において、ストリーム生成部711は、受信部701に蓄積された番組等のコンテンツ(のデータ)を処理することで、ストリーム(ベースバンドフレームシーケンス)を生成する。
ステップS702において、ウォータマークインサータ712は、ステップS701の処理で生成されたストリームのベースバンドフレームに挿入されるウォータマーク(ウォータマークペイロード)に、アプリケーションサーバ30により生成されたアプリダイジェストを格納する。
ステップS703において、エンコーダ713は、所定の符号化方式(例えばHEVC等)に従い、ステップS702で処理されたベースバンドフレームをエンコードし、VCL-NALユニットを生成する。ステップS704において、送信部703は、ステップS703の処理で生成されたVCL-NALユニットを、DASHサーバ10に送信する。
図30のステップS151乃至S156の処理は、DASHサーバ10により実行される。また、DASHサーバ10においては、ステップS704の処理で送信されたVCL-NALユニットが受信される。
ステップS151において、MPD生成部111は、MPDメタデータを生成する。また、ステップS152において、送信部103は、ステップS151の処理で生成されたMPDメタデータを、シグナリングサーバ20に送信する。
ステップS153において、暗号化部113は、所定の暗号化方式に従い、ストリームサーバ70により生成されたVCL-NALユニットを暗号化する。ステップS154において、DRM保護ファイル生成部114は、ステップS153の処理で暗号化されたVCL-NALユニットを処理して、DRM保護ファイルを生成する。
ステップS155において、DASHセグメント生成部112は、ステップS154の処理で生成されたDRM保護ファイルを処理して、DASHセグメントを生成する。ステップS156において、送信部103は、ステップS155の処理で生成されたDASHセグメントを、放送サーバ40に送信する。
図30のステップS251乃至S252の処理は、シグナリングサーバ20により実行される。また、シグナリングサーバ20においては、ステップS152の処理で送信されたMPDメタデータと、ステップS353の処理で送信されたアプリURLが受信される。
ステップS251において、シグナリング生成部211は、シグナリングを生成する。ここで、シグナリングとしては、SLTメタデータを含むLLSシグナリングと、USDメタデータ、S-TSIDメタデータ、及びMPDメタデータを含むSLSシグナリングが生成される。また、SLTメタデータ、又はSLSシグナリング(例えば、USD,S-TSID,MPD等のメタデータ)には、アプリケーションサーバ30により生成されたアプリURLが記述される。
ステップS252において、送信部203は、ステップS251の処理で生成されたシグナリングを、放送サーバ40に送信する。
図30のステップS451乃至S453の処理は、放送サーバ40により実行される。また、放送サーバ40においては、ステップS156の処理で送信されたDASHセグメント、ステップS252の処理で送信されたシグナリング、及び、ステップS353の処理で送信されたアプリケーションが受信される。
送信部403は、アプリケーションサーバ30により生成されたアプリケーション、シグナリングサーバ20により生成されたシグナリング、及び、DASHサーバ10により生成されたDASHセグメントを、伝送路80を介して送信(一斉同報配信)する(S451乃至S453)。
以上、送信側の処理の流れについて説明した。
(受信側の処理の流れ)
次に、図31のフローチャートを参照して、ウォータマーク格納方式を採用した場合の受信側の処理の流れを説明する。なお、この受信側の処理では、アプリダイジェストがビデオウォータマークに格納されている場合を説明するため、ビデオのデータに対する処理を中心に説明し、オーディオのデータに対する処理の説明については適宜省略する。
図31においては、放送ミドルウェア604とDASHクライアント605により実行される処理のほか、デコーダ606やレンダリングエンジン612、ウォータマークイクストラクタ613等により実行されるビデオ・オーディオ対応処理と、アプリケーション制御部611やレンダリングエンジン612、アプリダイジェストバリデータ614等により実行されるアプリケーション対応処理の流れが示されている。
ただし、図9等と同様に、ビデオ・オーディオ対応処理は、コンテンツのビデオやオーディオのデータに関する処理を表し、アプリケーション対応処理は、アプリケーションのデータに関する処理を表している。
ステップS801において、放送ミドルウェア604は、受信部603を介して、放送サーバ40から送信されてくるシグナリングを受信する。ステップS802において、放送ミドルウェア604は、ステップS801の処理で受信されたシグナリングを処理する。
ここで、シグナリングとしては、SLTメタデータを含むLLSシグナリングと、USDメタデータ、S-TSIDメタデータ、及びMPDメタデータを含むSLSシグナリングが処理される。また、SLTメタデータ、又はSLSシグナリング(例えば、USD,S-TSID,MPD等のメタデータ)には、アプリケーションサーバ30により生成されたアプリURLが記述される。
ステップS803において、放送ミドルウェア604は、ステップS802の処理で取得されたMPDメタデータを、DASHクライアント605に通知するとともに、ステップS802の処理で取得されたアプリURLを、アプリケーション制御部611に通知する。
ステップS804において、放送ミドルウェア604は、アプリケーション制御部611からの制御に従い、シグナリングに記述されたアプリURLに基づいて、受信部603を介して、放送サーバ40から送信されてくるアプリケーションを受信する。ステップS805において、放送ミドルウェア604は、ステップS804の処理で受信されたアプリケーションを、アプリケーション制御部611に転送する。
ステップS831において、アプリケーション制御部611は、ステップS805の処理で転送されたアプリケーションを取得する。また、ステップS832において、アプリダイジェストバリデータ614は、ステップS831の処理で取得されたアプリケーションに応じたアプリダイジェストを生成する。
このステップS832の処理では、ステップS831の処理で取得されたアプリケーションに対して、送信側システム7のステップS354(図30)の処理と同一のアルゴリズム(例えば、MD5など)を適用することで、ダイジェスト値(ハッシュ値)が生成される。
ステップS806において、放送ミドルウェア604は、受信部603を介して、放送サーバ40から送信されてくるDASHセグメントを受信する。ステップS807において、放送ミドルウェア604は、ステップS806の処理で受信されたDASHセグメントを、DASHクライアント605に転送する。
ステップS812において、DASHクライアント605は、ステップS811のMPDメタデータの処理結果に基づいて、ステップS807の処理で転送されたDASHセグメントを処理する。ステップS813において、DASHクライアント605(のDRM保護ファイル処理部)は、ステップS812の処理で得られるDRM保護ファイルを処理して、当該DRM保護ファイルのアンパッケージングを行う。
ステップS814において、DASHクライアント605(の復号部)は、所定の復号方式に従い、ステップS814の処理で得られる暗号化されたVCL-NALユニットを復号する。ステップS815において、DASHクライアント605は、ステップS814の処理で復号されたVCL-NALユニットを、デコーダ606に転送する。
ステップS821において、デコーダ606は、所定の復号方式(例えばHEVC等)に従い、ステップS815の処理で転送されたVCL-NALユニットをデコードする。ステップS822において、ウォータマークイクストラクタ613は、ステップS821の処理で得られるベースバンドフレームに挿入されたウォータマーク(ビデオウォータマーク)を抽出する。
ステップS823において、アプリダイジェストバリデータ614は、ステップS822の処理で抽出されたウォータマーク(ウォータマークペイロード)に格納されたアプリダイジェストを抽出する。なお、上述した場合と同様に、クライアント装置60では、レンダリングエンジン612によって、ステップS821の処理で得られるビデオとオーディオのデータのレンダリングが行われることで、番組等のコンテンツの映像と音声が出力される(S824)。
ステップS833において、アプリダイジェストバリデータ614は、ステップS832の処理で生成されたアプリダイジェストと、ステップS823の処理で抽出されたアプリダイジェストとを比較することで、アプリダイジェストを検証する。ステップS834において、アプリダイジェストバリデータ614は、ステップS833の検証結果に基づいて、比較対象のアプリダイジェストが一致するかどうかを判定する。
ここで、ステップS823の処理で抽出されたアプリダイジェスト(ダイジェスト値)は、送信側システム7の(アプリケーションサーバ30による)ステップS354(図30)の処理で生成されたものであって、ステップS832の処理で生成されたアプリダイジェスト(ダイジェスト値)と同一のアルゴリズム(例えば、MD5など)を適用して生成されたものとなる。したがって、ステップS834の判定処理の比較対象のアプリダイジェスト(ダイジェスト値)が一致すれば、対象のアプリケーションは、正当なアプリケーションであるとみなすことができる。
ステップS834において、比較対象のアプリダイジェストが一致すると判定された場合、処理は、ステップS835に進められる。ステップS835において、アプリケーション制御部611は、ステップS831の処理で取得されたアプリケーションを(即時に)起動する。すなわち、この場合、クライアント装置60では、受信されたアプリケーションが、正当なアプリケーションであるとみなして、その起動を許可している。
ステップS836において、レンダリングエンジン612は、ステップS835の処理で起動されたアプリケーションのデータのレンダリングを行う。これにより、例えば、クライアント装置60においては、番組等のコンテンツに付随したアプリケーションの映像が表示される。
一方で、ステップS834において、比較対象のアプリダイジェストが一致しないと判定された場合、ステップS835乃至S836の処理はスキップされる。すなわち、この場合、クライアント装置60では、受信されたアプリケーションが、不当なアプリケーションであるとみなして、その起動を拒否している。なお、このような不当なアプリケーションが検出された場合には、例えば、ユーザや関連する放送局に通知するなど、他の動作が行われるようにしてもよい。
以上、受信側の処理の流れについて説明した。
(B)非VCL-NALユニット格納方式
(非VCL-NALユニット格納方式の概要)
図32は、非VCL-NALユニット格納方式の概要を説明する図である。
図32においては、図25と同様に、放送サーバ40から、伝送路80を介してクライアント装置60に伝送される放送ストリームを模式的に表している。この放送ストリームには、DRMにより暗号化されている部分(暗号化パイプ(Encrypted Pipe))と、暗号化されていない部分(非暗号化パイプ(Clear Pipe))がある。
非VCL-NALユニット格納方式では、暗号化パイプで、アプリケーション(App)を検証するためのアプリダイジェスト(App Digest)を、NALユニットに格納されるVideo-SEIに格納することで、当該アプリダイジェストが保護されるようにする。
ここで、NAL(Network Abstraction Layer)ユニットは、様々なデータを含んでおり、大きく分けると、VCL(Video Coding Layer:ビデオ符号化階層)と、非VCL(Non Video Coding Layer)とに分類することができる。VCL-NALユニットは、圧縮されたビデオのスライスデータ(符号化データ)である。
一方で、非VCL-NALユニットは、その他の補助的な情報を格納するためのものである。例えば、非VCL-NALユニットには、VPS(Video Parameter Set),SPS(Sequence Parameter Set),PPS(Picture Parameter Set),SEI(Supplemental Enhancement Information)などがある。特に、SEIメッセージは、VCLの復号に必須ではない付加情報を格納するためのものであって、ユーザが独自に定義する情報(User data unregistered)を含めることができるので、そこに、アプリダイジェストを格納することができる。
ただし、非VCL-NALユニット格納方式では、VCL-NALユニットのみならず、アプリダイジェストを含むSEIメッセージが格納されるNALユニット(非VCL-NALユニット)も合わせてDRMの暗号化の対象とする必要がある。また、このアプリダイジェストには、図22に示したように、アプリケーションの識別情報(例えばアプリURL)と、アプリケーションのダイジェスト値が含まれている。
クライアント装置60では、番組等のコンテンツの再生中にDRMを解くことで、非VCL-NALユニット(SEIメッセージ)に格納されたアプリケーションのアプリURLとダイジェスト値を抽出し、ダイジェスト値を用いて、アプリURLにより特定されるアプリケーションが、正当なアプリケーションであるかどうかの検証を行う。ここでは、非VCL-NALユニット(SEIメッセージ)に格納されたダイジェスト値と、アプリURLに従って取得されるアプリケーションに応じたダイジェスト値とを比較することで検証を行い、これらのダイジェスト値が一致する場合には、アプリURLにより特定されるアプリケーションは、正当なアプリケーションであると判定する。
このように、非VCL-NALユニット格納方式を採用することで、番組等のコンテンツの保護のためのDRMによるセキュアな暗号化パイプを、アプリダイジェストの伝送に流用することで、エンドツーエンドのセキュリティが保証され、アプリケーションのすげ替えや改ざん、コンテンツとアプリケーションとの関連付けの改ざんなど、悪意のある第三者による不正(攻撃)を回避することができる。
また、非VCL-NALユニット格納方式によれば、PKI等を利用した本格的なアプリケーション認証のためのプラットフォーム(インフラストラクチャ)を構築することなく、既存のDRMを流用してアプリケーション認証を行うことが可能となるため、コストの軽減を担保することができる。
さらに、クライアント装置60においては、ウォータマーク格納方式を採用した場合、ウォータマークに格納されたアプリダイジェストを抽出するために、常時、ウォータマークイクストラクタ613(図20)を起動しておく必要がある一方で、非VCL-NALユニット格納方式を採用した場合には、ウォータマークイクストラクタ613を起動することなく(設けることなく)、アプリダイジェストを抽出することができる。
次に、図33及び図34のフローチャートを参照して、非VCL-NALユニット格納方式を採用した場合における伝送システム2(図16)の各装置で実行される処理の流れを説明する。
(送信側の処理の流れ)
まず、図33のフローチャートを参照して、非VCL-NALユニット格納方式を採用した場合の送信側の処理の流れを説明する。なお、この送信側の処理では、アプリダイジェストが非VCL-NALユニットに格納される場合を説明するため、ビデオのデータに対する処理を中心に説明し、オーディオのデータに対する処理の説明については適宜省略する。
図33のステップS361乃至S365の処理は、アプリケーションサーバ30により実行される。ステップS361乃至S365においては、図30のステップS351乃至S355と同様に、アプリURL、アプリケーション、及び、アプリダイジェストが生成され、対象のサーバに送信される。
ただし、非VCL-NALユニット格納方式を採用した場合、アプリダイジェストは、ストリームサーバ70ではなく、DASHサーバ10に送信される。また、アプリダイジェストには、例えば、ステップS361の処理で生成されたアプリURLと、ステップS362の処理で生成されたアプリケーションに対して、所定のアルゴリズム(例えば、MD5など)を適用することで生成されたダイジェスト値(ハッシュ値)が含まれる。
図33のステップS711乃至S713の処理は、ストリームサーバ70により実行される。ステップS711においては、図30のステップS701と同様に、ストリーム(ベースバンドフレームシーケンス)が生成される。
ステップS712において、エンコーダ713は、所定の符号化方式(例えばHEVC等)に従い、ステップS711の処理で生成されたベースバンドフレームをエンコードし、VCL-NALユニットを生成する。ステップS713において、送信部703は、ステップS712の処理で生成されたVCL-NALユニットを、DASHサーバ10に送信する。
図33のステップS161乃至S167の処理は、DASHサーバ10により実行される。また、DASHサーバ10においては、ステップS713の処理で送信されたVCL-NALユニットのほかに、ステップS365の処理で送信されたアプリダイジェストが受信される。
図33のステップS161乃至S162においては、図30のステップS151乃至S152と同様に、MPDメタデータが生成され、シグナリングサーバ20に送信される。
ステップS163において、非VCL-NALユニット生成部115は、アプリケーションサーバ30により生成されたアプリダイジェストを格納した非VCL-NALユニットを生成する。ここでは、非VCL-NALユニットとして、ユーザが独自に定義することができるSEIメッセージを用いることができる。
ステップS164において、暗号化部113は、所定の暗号化方式に従い、ストリームサーバ70により生成されたVCL-NALユニットと、ステップS163の処理で生成された非VCL-NALユニットを暗号化する。ステップS165において、DRM保護ファイル生成部114は、ステップS164の処理で暗号化されたVCL-NALユニットと非VCL-NALユニットを処理して、DRM保護ファイルを生成する。
ステップS166において、DASHセグメント生成部112は、ステップS165の処理で生成されたDRM保護ファイルを処理して、DASHセグメントを生成する。ステップS167において、送信部103は、ステップS166の処理で生成されたDASHセグメントを、放送サーバ40に送信する。
図33のステップS261乃至S262の処理は、シグナリングサーバ20により実行される。ステップS261乃至S262においては、図30のステップS251乃至S252と同様に、シグナリングが生成され、放送サーバ40に送信される。
図33のステップS461乃至S463の処理は、放送サーバ40により実行される。ステップS461乃至S463においては、図30のステップS451乃至S453と同様に、送信部403によって、アプリケーション、シグナリング、及び、DASHセグメントが、伝送路80を介して送信(一斉同報配信)される。
以上、送信側の処理の流れについて説明した。
(受信側の処理の流れ)
次に、図34のフローチャートを参照して、非VCL-NALユニット格納方式を採用した場合の受信側の処理の流れを説明する。なお、この受信側の処理では、アプリダイジェストが非VCL-NALユニットに格納されている場合を説明するため、ビデオのデータに対する処理を中心に説明し、オーディオのデータに対する処理の説明については適宜省略する。
ステップS841乃至S847においては、図31のステップS801乃至S807と同様に、放送ミドルウェア604によって、放送サーバ40から送信されてくるシグナリング、アプリケーション、及びDASHセグメントが受信され、処理される。
また、ステップS851においては、図31のステップS811と同様に、DASHクライアント605によって、MPDメタデータが処理される。さらに、ステップS871乃至S872においては、図31のステップS831乃至S832と同様に、アプリケーション制御部611によって、アプリURLに対応したアプリケーションが取得されるとともに、アプリダイジェストバリデータ614によって、当該アプリケーションに応じたアプリダイジェストが生成される。
このステップS832の処理では、ステップS871の処理で取得されたアプリケーションに対して、送信側システム7のステップS364(図33)の処理と同一のアルゴリズム(例えば、MD5など)を適用することで、ダイジェスト値(ハッシュ値)が生成される。
ステップS852において、DASHクライアント605は、ステップS851のMPDメタデータの処理結果に基づいて、ステップS847の処理で転送されたDASHセグメントを処理する。ステップS853において、DASHクライアント605(のDRM保護ファイル処理部)は、ステップS852の処理で得られるDRM保護ファイルを処理して、当該DRM保護ファイルのアンパッケージングを行う。
ステップS854において、DASHクライアント605(の復号部)は、所定の復号方式に従い、ステップS853の処理で得られる暗号化されたVCL-NALユニットを復号する。ステップS855において、DASHクライアント605は、ステップS854の処理で復号されたVCL-NALユニットを、デコーダ606に転送する。
ステップS861において、デコーダ606は、所定の復号方式(例えばHEVC等)に従い、ステップS855の処理で転送されたVCL-NALユニットをデコードする。また、ステップS862において、レンダリングエンジン612は、ステップS861の処理で得られるビデオとオーディオのデータのレンダリングを行う。これにより、クライアント装置60では、番組等のコンテンツの映像と音声が出力されることになる。
また、ステップS856において、DASHクライアント605(の復号部)は、所定の復号方式に従い、ステップS853の処理で得られる暗号化された非VCL-NALユニットを復号する。ステップS857において、アプリダイジェストバリデータ614は、ステップS856の処理で復号された非VCL-NALユニットに格納されたアプリダイジェストを抽出する。
ステップS873において、アプリダイジェストバリデータ614は、ステップS872の処理で生成されたアプリダイジェストと、ステップS857の処理で抽出されたアプリダイジェストとを比較することで、アプリダイジェストを検証する。ステップS874において、アプリダイジェストバリデータ614は、ステップS873の検証結果に基づいて、比較対象のアプリダイジェストが一致するかどうかを判定する。
ここで、ステップS857の処理で抽出されたアプリダイジェスト(ダイジェスト値)は、送信側システム7の(アプリケーションサーバ30による)ステップS364(図33)の処理で生成されたものであって、ステップS872の処理で生成されたアプリダイジェスト(ダイジェスト値)と同一のアルゴリズム(例えば、MD5など)を適用して生成されたものとなる。したがって、ステップS874の判定処理の比較対象のアプリダイジェスト(ダイジェスト値)が一致すれば、対象のアプリケーションは、正当なアプリケーションであるとみなすことができる。
ステップS874において、比較対象のアプリダイジェストが一致すると判定された場合、処理は、ステップS875に進められる。ステップS875乃至S876においては、図31のステップS835乃至S836と同様に、受信されたアプリケーションが正当なアプリケーションであるとみなされ、当該アプリケーションが(即時に)起動され、その映像が表示されることになる。
一方で、ステップS874において、比較対象のアプリダイジェストが一致しないと判定された場合、受信されたアプリケーションが、不当なアプリケーションであるとみなして、当該アプリケーションは未起動とされる。
以上、受信側の処理の流れについて説明した。
<3.シグナリングの例>
次に、図35乃至図42を参照して、アプリケーションの取得先を示す取得先情報(例えばURL)を伝送するシグナリングのフォーマットの例を説明する。
(SLTのフォーマット)
図35は、XML形式のSLTメタデータのフォーマットの例を示す図である。なお、図35において、要素と属性のうち、属性には「@」が付されている。また、インデントされた要素と属性は、その上位の要素に対して指定されたものとなる。これらの関係は、後述する他のシグナリングのフォーマットでも同様とされる。
SLT要素は、ルート要素であって、bsid属性、sltCapabilities属性、sltInetUrl要素、及び、Service要素の上位要素となる。
bsid属性には、ブロードキャストストリームIDが指定される。sltCapabilities属性には、必要とされる機能に関する情報が指定される。
sltInetUrl要素には、ESG(Electronic Service Guide)やSLSシグナリングを取得するためのベースURLが指定される。sltInetUrl要素は、urlType属性の上位要素となる。urlType属性には、ベースURLで利用可能なファイルの種類が指定される。
Service要素には、1又は複数のサービスに関する情報が指定される。Service要素は、serviceId属性、sltSvcSeqNum属性、protected属性、majorChannelNo属性、minorChannelNo属性、serviceCategory属性、shortServiceName属性、hidden属性、broadbandAccessRequired属性、svcCapabilities属性、applicationUrl属性、BroadcastSvcSignaling要素、及び、svcInetUrl要素の上位要素となる。
serviceId属性には、サービスIDが指定される。sltSvcSeqNum属性には、SLTメタデータのバージョンに関する情報が指定される。protected属性には、サービスの保護を示す暗号化情報が指定される。
majorChannelNo属性には、メジャーチャンネル番号が指定される。minorChannelNo属性には、マイナーチャンネル番号が指定される。serviceCategory属性には、サービスのカテゴリが指定される。shortServiceName属性には、ショートサービス名が指定される。
hidden属性には、サービスが、隠されたサービスであるかどうかが指定される。broadbandAccessRequired属性には、インターネット90等の通信回線にアクセスする必要があるかどうかが指定される。svcCapabilities属性には、デコードに必要な機能などの情報が指定される。
applicationUrl属性には、アプリケーションの取得先を示すURL(アプリURL)が指定される。このアプリURLは、例えば、アプリケーションが、HTML文書ファイルや画像ファイルなど、複数のファイルから構成されている場合に、そのエントリ(例えば、index.html)を識別するための情報とされる。また、このSLTメタデータを受信したクライアント装置60においては、アプリURLに応じてアプリケーションが取得され、即時に起動されることになる。
BroadcastSvcSignaling要素には、SLSシグナリングが放送経由で取得される場合に、当該SLSシグナリングの取得先に関する情報が指定される。BroadcastSvcSignaling要素は、slsProtocol属性、slsMajorProtocolVersion属性、slsMinorProtocolVersion属性、slsPlpId属性、slsDestinationIpAddress属性、slsDestinationUdpPort属性、及び、slsSourceIpAddress属性の上位要素となる。
slsProtocol属性には、SLSシグナリングのプロトコルに関する情報が指定される。slsMajorProtocolVersion属性には、SLSシグナリングのプロトコルのメジャーバージョン番号が指定される。slsMinorProtocolVersion属性には、SLSシグナリングのプロトコルのマイナーバージョン番号が指定される。
slsPlpId属性には、SLSシグナリングが伝送されるPLP(Physical Layer Pipe)のIDが指定される。slsDestinationIpAddress属性には、SLSシグナリングの宛先(destination)のIPアドレスが指定される。slsDestinationUdpPort属性には、SLSシグナリングの宛先(destination)のポート番号が指定される。slsSourceIpAddress属性には、SLSシグナリングの送信元(source)のIPアドレスが指定される。
svcInetUrl要素には、SLSシグナリングが通信経由で取得される場合に、当該SLSシグナリングの取得先のURLが指定される。svcInetUrl要素は、urlType属性の上位要素となる。urlType属性には、このURLで利用可能なファイルの種類が指定される。
なお、図35において、出現数(Use)であるが、"1"が指定された場合にはその要素又は属性は必ず1つだけ指定され、"0..1"が指定された場合には、その要素又は属性を指定するかどうかは任意である。また、"1..N"が指定された場合には、その要素又は属性は1以上指定され、"0..N"が指定された場合には、その要素又は属性を1以上指定するかどうかは任意である。
また、Data Typeとして、"unsignedShort"又は"unsignedByte"が指定された場合、その要素又は属性の値が、整数型であることを示している。Data Typeとして、"string"が指定された場合には、その要素又は属性の値が、文字列型であることを示し、"anyURI"が指定された場合、その要素又は属性の値が、URIの形式をした文字列であることを示している。Data Typeとして、"boolean"が指定された場合には、その要素又は属性がブール型であることを示している。なお、Data Typeとして、"language"が指定された場合、その要素又は属性の値が、xml:lang属性の値として有効なものであることを示し、"dateTime"が指定された場合、その要素又は属性の値が、特定の日時であることを示すものとする。
(USDのフォーマット)
図36は、XML形式のUSDメタデータ(USBDメタデータ)のフォーマットの例を示す図である。
bundleDescription要素は、ルート要素であって、userServiceDescription要素(USD要素)の上位要素となる。このuserServiceDescription要素は、globalServiceID属性、serviceId属性、serviceStatus属性、fullMPDUri属性、sTSIDUri属性、applicationUrl属性、name要素、serviceLanguage要素、capabilityCode要素、及び、deliveryMethod要素の上位要素となる。
globalServiceID属性には、グローバルサービスIDが指定される。serviceId属性には、サービスIDが指定される。serviceStatus属性には、サービスのステータスに関する情報が指定される。fullMPDUri属性には、MPDメタデータを参照するためのURIが指定される。sTSIDUri属性には、S-TSIDメタデータを参照するためのURIが指定される。
applicationUrl属性には、アプリケーションの取得先を示すURL(アプリURL)が指定される。このアプリURLは、例えば、アプリケーションが、HTML文書ファイルや画像ファイルなど、複数のファイルから構成されている場合に、そのエントリ(例えば、index.html)を識別するための情報とされる。また、このUSDメタデータを受信したクライアント装置60においては、アプリURLに応じてアプリケーションが取得され、即時に起動されることになる。
name要素には、ATSC3.0のサービスの名称が指定される。name要素は、lang属性の上位要素となる。lang属性には、ATSC3.0のサービスの名称の言語が指定される。serviceLanguage要素には、ATSC3.0のサービスで利用できる言語が指定される。capabilityCode要素には、機能に関するコードが指定される。
deliveryMethod要素には、データの配信方法に関する情報が指定される。deliveryMethod要素は、broadcastAppService要素及びunicastAppService要素の上位要素となる。broadcastAppService要素は、basePattern要素の上位要素であって、放送経由での配信に関する情報が指定される。unicastAppService要素は、basePattern要素の上位要素であって、通信経由での配信に関する情報が指定される。
(S-TSIDのフォーマット)
図37は、S-TSIDメタデータのフォーマットの例を示す図である。
S-TSID要素は、ルート要素であって、serviceId属性、applicationUrl属性、及び、RS要素の上位要素となる。serviceId属性には、サービスIDが指定される。
applicationUrl属性には、アプリケーションの取得先を示すURL(アプリURL)が指定される。このアプリURLは、例えば、アプリケーションが、HTML文書ファイルや画像ファイルなど、複数のファイルから構成されている場合に、そのエントリ(例えば、index.html)を識別するための情報とされる。また、このS-TSIDメタデータを受信したクライアント装置60においては、アプリURLに応じてアプリケーションが取得され、即時に起動されることになる。
RS要素には、ROUTEセッションに関する情報が指定される。RS要素は、bsid属性、sIpAddr属性、dIpAddr属性、dport属性、PLPID属性、及び、LS要素の上位要素となる。
bsid属性には、ブロードキャストストリームIDが指定される。sIpAddr属性には、送信元(source)のIPアドレスが指定される。dIpAddr属性には、宛先(destination)のIPアドレスが指定される。dport属性には、宛先(destination)のポート番号が指定される。PLPID属性には、ROUTEセッションのPLPのIDが指定される。
LS要素には、LCTセッションに関する情報が指定される。LS要素は、tsi属性、PLPID属性、bw属性、startTime属性、endTime属性、SrcFlow要素、及び、RprFlow要素の上位要素となる。
tsi属性には、TSIが指定される。PLPID属性には、PLPのIDが指定される。bw属性には、帯域幅が指定される。startTime属性とendTime属性には、開始日時と終了日時が指定される。SrcFlow要素には、ソースフロー情報が指定される。
(MPDのフォーマット)
図38は、MPDメタデータのフォーマットの例を示す図である。
図38において、"attributes"の枠内には、ルート要素であるMPD要素の配下に規定される属性が列挙され、"attributes"の枠外には、MPD要素の配下に規定される要素が列挙されている。MPD要素に規定されている属性又は要素のうち、"any ##other"は、自由に拡張可能な領域であることを表しており、ここに、applicationUrl属性又はapplicationUrl要素が定義されるようにする。
このapplicationUrl属性又はapplicationUrl要素には、アプリケーションの取得先を示すURL(アプリURL)が指定される。このアプリURLは、例えば、アプリケーションが、HTML文書ファイルや画像ファイルなど、複数のファイルから構成されている場合に、そのエントリ(例えば、index.html)を識別するための情報とされる。また、このMPDメタデータを受信したクライアント装置60においては、アプリURLに応じてアプリケーションが取得され、即時に起動されることになる。
ここで、例えば、applicationUrl要素を用いて、アプリURLを記述する場合には、以下のような構造で記述することができる。つまり、この例では、コンテンツパートに、アプリURLをそのまま格納している場合を示している。
<ApplicationUrl>http://xxx.com/app.html</ApplicationUrl>
(S-TSIDにアプリケーションのエントリを明示する場合のメタデータの構造)
次に、図39乃至図42を参照して、S-TSIDにアプリケーションのエントリを明示する場合のメタデータの構造について説明する。
図39は、S-TSIDメタデータのフォーマットの例を示す図である。
図39のS-TSIDメタデータは、図37のS-TSIDメタデータと比べて、applicationUrl属性が除かれている点が異なっている。ここで、図40には、図39のS-TSIDメタデータに含まれるSrcFlow要素のフォーマットが示されている。
図40のSrcFlow要素は、rt属性、minBuffSize属性、EFDT要素、ContentInfo要素、及び、Payload要素の上位要素となる。
minBuffSize属性には、クライアント装置40が必要とする最小バッファサイズが指定される。EFDT要素には、拡張されたFDT(Extended FDT)に関する情報が指定される。ContentInfo要素には、コンテンツに関する情報が指定される。
Payload要素は、codePoint属性、formatID属性、frag属性、order属性、srcFecPayloadID属性、及び、FECParams属性の上位要素であって、ソースフローのオブジェクトを格納するROUTEパケットのペイロードに関する情報が指定される。
ここで、図41には、図40のSrcFlow要素に含まれるEFDT要素のフォーマットが示されている。図41のEFDT要素は、tsi属性、idRef属性、version属性、maxExpiresDelta属性、maxTransportSize属性、FileTemplate属性、及び、FDTParameters属性の上位要素となる。
FDTParameters属性には、IETF(Internet Engineering Task Force)で定義されているFDTのルート要素であるFDT-Instanceと同じ型が定義される。図42には、FDT-Instance要素の構造が示されている。すなわち、FDT-Instance要素に規定されている属性のうち、"any"("any ##other")は、自由に拡張可能な領域であることを表しており、ここに、ApplicationEntry属性を定義することができる。このApplicationEntry属性には、アプリケーションのエントリ用のファイルのURLであるファイルURL(つまり、アプリURL)が記述される。
また、FDT-Instance要素の配下には、File要素が定義されているが、このFile要素の属性又は要素のうち、"any"("any ##other")は、自由に拡張可能な領域であることを表しており、ここに、ApplicationEntry属性又はApplicationEntry要素が定義されるようにする。
ただし、File要素に、ApplicationEntry属性を定義した場合には、この属性(ブーリアン値は"ture")を持つFile要素のContent-Location属性(ファイルURL(アプリURL))で示されるファイルが、アプリケーションのエントリであることを示している。また、File要素に、ApplicationEntry要素を定義した場合には、この要素が存在するFile要素のContent-Location属性(ファイルURL(アプリURL))で示されるファイルが、アプリケーションのエントリであることを示している。
なお、図42において、FDT-Instance要素に定義可能なApplicationEntry属性と、FDT-Instance要素の配下のFile要素に定義可能なApplicationEntry属性又はApplicationEntry要素は、いずれか一方が定義されることになる。
<4.変形例>
上述した説明としては、デジタル放送の規格として、米国等で採用されている方式であるATSC(特に、ATSC3.0)を説明したが、本技術は、日本等が採用する方式であるISDB(Integrated Services Digital Broadcasting)や、欧州の各国等が採用する方式であるDVB(Digital Video Broadcasting)などに適用するようにしてもよい。また、上述した説明では、IP伝送方式が採用されるATSC3.0を例にして説明したが、IP伝送方式に限らず、例えば、MPEG2-TS(Transport Stream)方式等の他の方式に適用するようにしてもよい。
また、デジタル放送としては、地上波放送のほか、放送衛星(BS:Broadcasting Satellite)や通信衛星(CS:Communications Satellite)等を利用した衛星放送や、ケーブルテレビ(CATV)等の有線放送などに適用することができる。
また、上述したシグナリングなどの名称は、一例であって、他の名称が用いられる場合がある。ただし、これらの名称の違いは、形式的な違いであって、対象のシグナリングなどの実質的な内容が異なるものではない。例えば、AST(Application Signaling Table)は、AIT(Application Information Table)などと称され、LCC(Locally Cached Content)は、NRT(Non Real Time)などと称される場合がある。さらに、シグナリングがXML等のマークアップ言語により記述される場合において、それらの要素や属性の名称は一例であって、他の名称が採用されるようにしてもよい。ただし、これらの名称の違いは、形式的な違いであって、それらの要素や属性の実質的な内容が異なるものではない。
また、上述した説明では、LLSシグナリングとして、SLTメタデータを説明したが、LLSシグナリングには、EAT(Emergency Alerting Table)やRRT(Region Rating Table)などのメタデータが含まれるようにしてもよい。EATメタデータは、緊急に告知する必要がある緊急情報に関する情報を含む。RRTメタデータは、レーティングに関する情報を含む。
なお、アプリケーションは、HTML5等のマークアップ言語やJavaScript(登録商標)等のスクリプト言語で開発されたアプリケーションに限らず、例えば、Java(登録商標)などのプログラミング言語で開発されたアプリケーションであってもよい。また、上述したコンテンツには、動画や広告のほか、例えば、電子書籍やゲーム、音楽など、あらゆるコンテンツを含めることができる。
また、本技術は、伝送路として、放送網以外の伝送路、すなわち、例えば、インターネットや電話網等の通信回線(通信網)などを利用することを想定して規定されている所定の規格(デジタル放送の規格以外の規格)などにも適用することができる。
<5.コンピュータの構成>
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。図43は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示す図である。
コンピュータ1000において、CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003は、バス1004により相互に接続されている。バス1004には、さらに、入出力インターフェース1005が接続されている。入出力インターフェース1005には、入力部1006、出力部1007、記録部1008、通信部1009、及び、ドライブ1010が接続されている。
入力部1006は、キーボード、マウス、マイクロフォンなどよりなる。出力部1007は、ディスプレイ、スピーカなどよりなる。記録部1008は、ハードディスクや不揮発性のメモリなどよりなる。通信部1009は、ネットワークインターフェースなどよりなる。ドライブ1010は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア1011を駆動する。
以上のように構成されるコンピュータ1000では、CPU1001が、ROM1002や記録部1008に記録されているプログラムを、入出力インターフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ1000(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線又は無線の伝送媒体を介して提供することができる。
コンピュータ1000では、プログラムは、リムーバブルメディア1011をドライブ1010に装着することにより、入出力インターフェース1005を介して、記録部1008にインストールすることができる。また、プログラムは、有線又は無線の伝送媒体を介して、通信部1009で受信し、記録部1008にインストールすることができる。その他、プログラムは、ROM1002や記録部1008に、あらかじめインストールしておくことができる。
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであってもよいし、複数のコンピュータによって分散処理されるものであってもよい。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
また、本技術は、以下のような構成をとることができる。
(1)
コンテンツを受信する受信部と、
前記コンテンツとともに伝送される制御情報に含まれる、前記コンテンツに付随するアプリケーションの取得先を示す取得先情報に基づいて、前記アプリケーションを取得する取得部と、
取得された前記アプリケーションを即時に起動する制御部と
を備える受信装置。
(2)
前記コンテンツ及び前記制御情報は、放送波により伝送され、
前記制御情報は、デジタル放送のサービスを提供するためのシグナリングであり、
前記取得先情報は、URL(Uniform Resource Locator)である
(1)に記載の受信装置。
(3)
前記制御部は、前記コンテンツ又は前記制御情報とともに伝送されるイベントに従い、前記アプリケーションの動作を制御する
(2)に記載の受信装置。
(4)
前記取得部は、前記コンテンツのDRM(Digital Rights Management)により保護された前記アプリケーションを取得し、
前記受信装置は、取得された前記アプリケーションが、正当なアプリケーションであるかどうかを検証する検証部をさらに備え、
前記制御部は、前記アプリケーションが正当なアプリケーションであると認められた場合に、当該アプリケーションを起動する
(1)乃至(3)のいずれかに記載の受信装置。
(5)
前記検証部は、
前記コンテンツのストリームに含まれる、前記アプリケーションに応じた第1のダイジェスト値を抽出し、
取得された前記アプリケーションに応じた第2のダイジェスト値を生成し、
前記第1のダイジェスト値と、前記第2のダイジェスト値とを比較することで、取得された前記アプリケーションが、正当なアプリケーションであるかどうかを検証する
(4)に記載の受信装置。
(6)
前記コンテンツのビデオデータは、所定の符号化方式に従い、符号化されており、
前記第1のダイジェスト値は、暗号化されたVCL-NAL(Video Coding Layer - Network Abstraction Layer)ユニットに含まれるベースバンドフレームに挿入されるウォータマークに格納される
(5)に記載の受信装置。
(7)
前記コンテンツのビデオデータは、所定の符号化方式に従い、符号化されており、
前記第1のダイジェスト値は、暗号化された非VCL-NAL(Non Video Coding Layer - Network Abstraction Layer)ユニットに格納される
(5)に記載の受信装置。
(8)
受信装置のデータ処理方法において、
前記受信装置が、
コンテンツを受信し、
前記コンテンツとともに伝送される制御情報に含まれる、前記コンテンツに付随するアプリケーションの取得先を示す取得先情報に基づいて、前記アプリケーションを取得し、
取得された前記アプリケーションを即時に起動する
ステップを含むデータ処理方法。
(9)
コンテンツに付随するアプリケーションの取得先を示す取得先情報であって、取得された前記アプリケーションを即時に起動させるための前記取得先情報を含む制御情報を生成する生成部と、
前記コンテンツとともに、前記制御情報を送信する送信部と
を備える送信装置。
(10)
送信装置のデータ処理方法において、
前記送信装置が、
コンテンツに付随するアプリケーションの取得先を示す取得先情報であって、取得された前記アプリケーションを即時に起動させるための前記取得先情報を含む制御情報を生成し、
前記コンテンツとともに、前記制御情報を送信する
ステップを含むデータ処理方法。
(11)
コンテンツを受信する受信部と、
前記コンテンツに付随するアプリケーションであって、前記コンテンツのDRM(Digital Rights Management)により保護された前記アプリケーションを取得する取得部と、
取得された前記アプリケーションが、正当なアプリケーションであるかどうかを検証する検証部と、
前記アプリケーションが正当なアプリケーションであると認められた場合に、当該アプリケーションを起動する制御部と
を備える受信装置。
(12)
前記検証部は、
前記コンテンツのストリームに含まれる、前記アプリケーションに応じた第1のダイジェスト値を抽出し、
取得された前記アプリケーションに応じた第2のダイジェスト値を生成し、
前記第1のダイジェスト値と、前記第2のダイジェスト値とを比較することで、取得された前記アプリケーションが、正当なアプリケーションであるかどうかを検証する
(11)に記載の受信装置。
(13)
前記コンテンツのビデオデータは、所定の符号化方式に従い、符号化されており、
前記第1のダイジェスト値は、暗号化されたVCL-NAL(Video Coding Layer - Network Abstraction Layer)ユニットに含まれるベースバンドフレームに挿入されるウォータマークに格納される
(12)に記載の受信装置。
(14)
前記コンテンツのビデオデータは、所定の符号化方式に従い、符号化されており、
前記第1のダイジェスト値は、暗号化された非VCL-NAL(Non Video Coding Layer - Network Abstraction Layer)ユニットに格納される
(12)に記載の受信装置。
(15)
前記第1のダイジェスト値は、前記アプリケーションを識別するための識別情報とともに、メッセージに含めて伝送される
(12)に記載の受信装置。
(16)
前記取得部は、前記コンテンツとともに伝送される制御情報に含まれる、前記アプリケーションの取得先を示す取得先情報に基づいて、前記アプリケーションを取得し、
前記制御部は、取得された前記アプリケーションが正当なアプリケーションであると認められた場合、当該アプリケーションを即時に起動する
(11)乃至(15)のいずれかに記載の受信装置。
(17)
前記コンテンツ及び前記制御情報は、放送波により伝送され、
前記制御情報は、デジタル放送のサービスを提供するためのシグナリングであり、
前記取得先情報は、URL(Uniform Resource Locator)である
(16)に記載の受信装置。
(18)
受信装置のデータ処理方法において、
前記受信装置が、
コンテンツを受信し、
前記コンテンツに付随するアプリケーションであって、前記コンテンツのDRM(Digital Rights Management)により保護された前記アプリケーションを取得し、
取得された前記アプリケーションが、正当なアプリケーションであるかどうかを検証する検証部と、
前記アプリケーションが正当なアプリケーションであると認められた場合、当該アプリケーションを起動する
ステップを含むデータ処理方法。
(19)
コンテンツに付随するアプリケーションを、前記コンテンツのDRM(Digital Rights Management)により保護する保護部と、
共通のDRM(Digital Rights Management)により保護された前記コンテンツ及び前記アプリケーションを送信する送信部と
を備える送信装置。
(20)
送信装置のデータ処理方法において、
前記送信装置が、
コンテンツに付随するアプリケーションを、前記コンテンツのDRM(Digital Rights Management)により保護し、
共通のDRM(Digital Rights Management)により保護された前記コンテンツ及び前記アプリケーションを送信する
ステップを含むデータ処理方法。
1,2 伝送システム, 5,7 送信側システム, 10 DASHサーバ, 20 シグナリングサーバ, 30 アプリケーションサーバ, 40 放送サーバ, 50 通信サーバ, 60 クライアント装置, 70 ストリームサーバ, 80 伝送路, 90 インターネット, 101 受信部, 102 処理部, 103 送信部, 111 MPD生成部, 112 DASHセグメント生成部, 113 暗号化部, 114 DRM保護ファイル生成部, 115 非VCL-NALユニット生成部, 201 受信部, 202 処理部, 203 送信部, 211 シグナリング生成部, 301 受信部, 302 処理部, 303 送信部, 311 アプリURL生成部, 312 アプリケーション生成部, 313 アプリ制御イベント生成部, 314 アプリダイジェスト生成部, 401 受信部, 402 処理部, 403 送信部, 601 処理部, 602 入力部, 603 受信部, 604 放送ミドルウェア, 605 DASHクライアント, 606 デコーダ, 607 出力部, 608 通信部, 611 アプリケーション制御部, 612 レンダリングエンジン, 613 ウォータマークイクストラクタ, 614 アプリダイジェストバリデータ, 701 受信部, 702 処理部, 703 送信部, 711 ストリーム生成部, 712 ウォータマークインサータ, 713 エンコーダ, 1000 コンピュータ, 1001 CPU

Claims (20)

  1. コンテンツを受信する受信部と、
    前記コンテンツとともに伝送される制御情報に含まれる、前記コンテンツに付随するアプリケーションの取得先を示す取得先情報に基づいて、前記アプリケーションを取得する取得部と、
    取得された前記アプリケーションを即時に起動する制御部と
    を備える受信装置。
  2. 前記コンテンツ及び前記制御情報は、放送波により伝送され、
    前記制御情報は、デジタル放送のサービスを提供するためのシグナリングであり、
    前記取得先情報は、URL(Uniform Resource Locator)である
    請求項1に記載の受信装置。
  3. 前記制御部は、前記コンテンツ又は前記制御情報とともに伝送されるイベントに従い、前記アプリケーションの動作を制御する
    請求項2に記載の受信装置。
  4. 前記取得部は、前記コンテンツのDRM(Digital Rights Management)により保護された前記アプリケーションを取得し、
    前記受信装置は、取得された前記アプリケーションが、正当なアプリケーションであるかどうかを検証する検証部をさらに備え、
    前記制御部は、前記アプリケーションが正当なアプリケーションであると認められた場合に、当該アプリケーションを起動する
    請求項1に記載の受信装置。
  5. 前記検証部は、
    前記コンテンツのストリームに含まれる、前記アプリケーションに応じた第1のダイジェスト値を抽出し、
    取得された前記アプリケーションに応じた第2のダイジェスト値を生成し、
    前記第1のダイジェスト値と、前記第2のダイジェスト値とを比較することで、取得された前記アプリケーションが、正当なアプリケーションであるかどうかを検証する
    請求項4に記載の受信装置。
  6. 前記コンテンツのビデオデータは、所定の符号化方式に従い、符号化されており、
    前記第1のダイジェスト値は、暗号化されたVCL-NAL(Video Coding Layer - Network Abstraction Layer)ユニットに含まれるベースバンドフレームに挿入されるウォータマークに格納される
    請求項5に記載の受信装置。
  7. 前記コンテンツのビデオデータは、所定の符号化方式に従い、符号化されており、
    前記第1のダイジェスト値は、暗号化された非VCL-NAL(Non Video Coding Layer - Network Abstraction Layer)ユニットに格納される
    請求項5に記載の受信装置。
  8. 受信装置のデータ処理方法において、
    前記受信装置が、
    コンテンツを受信し、
    前記コンテンツとともに伝送される制御情報に含まれる、前記コンテンツに付随するアプリケーションの取得先を示す取得先情報に基づいて、前記アプリケーションを取得し、
    取得された前記アプリケーションを即時に起動する
    ステップを含むデータ処理方法。
  9. コンテンツに付随するアプリケーションの取得先を示す取得先情報であって、取得された前記アプリケーションを即時に起動させるための前記取得先情報を含む制御情報を生成する生成部と、
    前記コンテンツとともに、前記制御情報を送信する送信部と
    を備える送信装置。
  10. 送信装置のデータ処理方法において、
    前記送信装置が、
    コンテンツに付随するアプリケーションの取得先を示す取得先情報であって、取得された前記アプリケーションを即時に起動させるための前記取得先情報を含む制御情報を生成し、
    前記コンテンツとともに、前記制御情報を送信する
    ステップを含むデータ処理方法。
  11. コンテンツを受信する受信部と、
    前記コンテンツに付随するアプリケーションであって、前記コンテンツのDRM(Digital Rights Management)により保護された前記アプリケーションを取得する取得部と、
    取得された前記アプリケーションが、正当なアプリケーションであるかどうかを検証する検証部と、
    前記アプリケーションが正当なアプリケーションであると認められた場合に、当該アプリケーションを起動する制御部と
    を備える受信装置。
  12. 前記検証部は、
    前記コンテンツのストリームに含まれる、前記アプリケーションに応じた第1のダイジェスト値を抽出し、
    取得された前記アプリケーションに応じた第2のダイジェスト値を生成し、
    前記第1のダイジェスト値と、前記第2のダイジェスト値とを比較することで、取得された前記アプリケーションが、正当なアプリケーションであるかどうかを検証する
    請求項11に記載の受信装置。
  13. 前記コンテンツのビデオデータは、所定の符号化方式に従い、符号化されており、
    前記第1のダイジェスト値は、暗号化されたVCL-NAL(Video Coding Layer - Network Abstraction Layer)ユニットに含まれるベースバンドフレームに挿入されるウォータマークに格納される
    請求項12に記載の受信装置。
  14. 前記コンテンツのビデオデータは、所定の符号化方式に従い、符号化されており、
    前記第1のダイジェスト値は、暗号化された非VCL-NAL(Non Video Coding Layer - Network Abstraction Layer)ユニットに格納される
    請求項12に記載の受信装置。
  15. 前記第1のダイジェスト値は、前記アプリケーションを識別するための識別情報とともに、メッセージに含めて伝送される
    請求項12に記載の受信装置。
  16. 前記取得部は、前記コンテンツとともに伝送される制御情報に含まれる、前記アプリケーションの取得先を示す取得先情報に基づいて、前記アプリケーションを取得し、
    前記制御部は、取得された前記アプリケーションが正当なアプリケーションであると認められた場合、当該アプリケーションを即時に起動する
    請求項11に記載の受信装置。
  17. 前記コンテンツ及び前記制御情報は、放送波により伝送され、
    前記制御情報は、デジタル放送のサービスを提供するためのシグナリングであり、
    前記取得先情報は、URL(Uniform Resource Locator)である
    請求項16に記載の受信装置。
  18. 受信装置のデータ処理方法において、
    前記受信装置が、
    コンテンツを受信し、
    前記コンテンツに付随するアプリケーションであって、前記コンテンツのDRM(Digital Rights Management)により保護された前記アプリケーションを取得し、
    取得された前記アプリケーションが、正当なアプリケーションであるかどうかを検証する検証部と、
    前記アプリケーションが正当なアプリケーションであると認められた場合、当該アプリケーションを起動する
    ステップを含むデータ処理方法。
  19. コンテンツに付随するアプリケーションを、前記コンテンツのDRM(Digital Rights Management)により保護する保護部と、
    共通のDRM(Digital Rights Management)により保護された前記コンテンツ及び前記アプリケーションを送信する送信部と
    を備える送信装置。
  20. 送信装置のデータ処理方法において、
    前記送信装置が、
    コンテンツに付随するアプリケーションを、前記コンテンツのDRM(Digital Rights Management)により保護し、
    共通のDRM(Digital Rights Management)により保護された前記コンテンツ及び前記アプリケーションを送信する
    ステップを含むデータ処理方法。
JP2017561587A 2016-01-15 2017-01-04 受信装置、送信装置、及び、データ処理方法 Pending JPWO2017122554A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016006375 2016-01-15
JP2016006375 2016-01-15
PCT/JP2017/000012 WO2017122554A1 (ja) 2016-01-15 2017-01-04 受信装置、送信装置、及び、データ処理方法

Publications (1)

Publication Number Publication Date
JPWO2017122554A1 true JPWO2017122554A1 (ja) 2018-11-01

Family

ID=59310968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017561587A Pending JPWO2017122554A1 (ja) 2016-01-15 2017-01-04 受信装置、送信装置、及び、データ処理方法

Country Status (7)

Country Link
US (2) US11449583B2 (ja)
EP (1) EP3404924B1 (ja)
JP (1) JPWO2017122554A1 (ja)
KR (1) KR102653289B1 (ja)
CA (1) CA3010777C (ja)
MX (1) MX2018008395A (ja)
WO (1) WO2017122554A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2016017451A1 (ja) * 2014-08-01 2017-05-18 ソニー株式会社 受信装置、受信方法、送信装置、及び、送信方法
CA3071560C (en) * 2017-08-10 2024-01-23 Sony Corporation Transmission apparatus, transmission method, reception apparatus, and reception method
US11310540B2 (en) * 2017-11-10 2022-04-19 Qualcomm Incorporated Interfaces between dash aware application and dash client for service interactivity support
KR102642928B1 (ko) * 2019-03-26 2024-03-04 삼성전자주식회사 방송 수신 장치 및 그 동작 방법
JP7390816B2 (ja) * 2019-08-02 2023-12-04 日本放送協会 配信システム、受信装置およびプログラム
US11303688B2 (en) * 2019-09-30 2022-04-12 Tencent America LLC Methods and apparatuses for dynamic adaptive streaming over HTTP
KR102302755B1 (ko) * 2019-12-30 2021-09-16 재단법인 경주스마트미디어센터 Drm 콘텐츠 병렬 패키징 장치 및 이를 포함하는 drm 콘텐츠 병렬 패키징 시스템 및 drm 콘텐츠 병렬 패키징 방법
WO2021137633A2 (ko) * 2019-12-30 2021-07-08 재단법인 경주스마트미디어센터 Drm 콘텐츠 병렬 패키징 장치 및 이를 포함하는 drm 콘텐츠 병렬 패키징 시스템 및 drm 콘텐츠 병렬 패키징 방법
US11941092B2 (en) * 2020-02-06 2024-03-26 Saturn Licensing Llc Techniques for launching applications based on partial signature validation
JP7523279B2 (ja) 2020-08-06 2024-07-26 日本放送協会 メタデータ挿入装置およびプログラム
KR102711122B1 (ko) * 2021-11-11 2024-09-30 주식회사 엘지유플러스 Drm 컨텐트 재생을 위한 미디어 sdk 및 그 제어 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243480B1 (en) * 1998-04-30 2001-06-05 Jian Zhao Digital authentication with analog documents
US6487301B1 (en) * 1998-04-30 2002-11-26 Mediasec Technologies Llc Digital authentication with digital and analog documents
US20030217369A1 (en) * 2002-05-17 2003-11-20 Heredia Edwin Arturo Flexible application information formulation
US8869289B2 (en) 2009-01-28 2014-10-21 Microsoft Corporation Software application verification
JP6053323B2 (ja) * 2011-05-20 2016-12-27 日本放送協会 放送送信装置、放送通信連携受信装置およびそのプログラム、ならびに、放送通信連携システム
US20130042100A1 (en) * 2011-08-09 2013-02-14 Nokia Corporation Method and apparatus for forced playback in http streaming
TWI528749B (zh) 2011-09-06 2016-04-01 Sony Corp A signal receiving device, a signal receiving method, an information processing program and an information processing system
KR101654439B1 (ko) * 2011-09-23 2016-09-12 엘지전자 주식회사 방송 서비스 수신 방법 및 그 수신 장치
IN2014MN00981A (ja) * 2011-12-21 2015-04-24 Sony Corp
CN106452759B (zh) * 2012-04-27 2019-11-19 华为技术有限公司 用于在模板模式下有效支持短加密区间的系统和方法
US9883247B2 (en) * 2012-08-13 2018-01-30 Saturn Licensing Llc Reception apparatus, reception method, transmission apparatus, and transmission method
EP2925007B1 (en) 2012-11-23 2019-06-26 Saturn Licensing LLC Information processing device and information processing method
ES2645101T3 (es) * 2013-01-17 2017-12-04 Intel IP Corporation Autentificación de URL de contenidos para dash
KR20160142327A (ko) * 2014-04-30 2016-12-12 엘지전자 주식회사 방송 전송 장치, 방송 수신 장치, 방송 전송 장치의 동작 방법 및 방송 수신 장치의 동작 방법
WO2015182490A1 (ja) * 2014-05-30 2015-12-03 ソニー株式会社 受信装置、受信方法、送信装置、及び、送信方法

Also Published As

Publication number Publication date
CA3010777C (en) 2024-06-04
EP3404924A1 (en) 2018-11-21
CA3010777A1 (en) 2017-07-20
WO2017122554A1 (ja) 2017-07-20
KR20180105641A (ko) 2018-09-28
US12045325B2 (en) 2024-07-23
EP3404924B1 (en) 2023-04-26
US20190026444A1 (en) 2019-01-24
EP3404924A4 (en) 2019-05-01
US11449583B2 (en) 2022-09-20
MX2018008395A (es) 2018-08-15
KR102653289B1 (ko) 2024-04-02
US20230099480A1 (en) 2023-03-30

Similar Documents

Publication Publication Date Title
KR102653289B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
US11368766B2 (en) System and method for signaling security and database population
EP2925007B1 (en) Information processing device and information processing method
WO2012157756A1 (ja) 受信機
KR20180088383A (ko) 수신 장치, 송신 장치, 및 데이터 처리 방법
JP6973454B2 (ja) 情報処理システムおよび送受信方法
JP6423067B2 (ja) 放送通信連携受信装置及び放送通信連携システム
JP2013009344A (ja) 受信機
US8850590B2 (en) Systems and methods for using transport stream splicing for programming information security
KR102586630B1 (ko) 수신 장치, 송신 장치, 및 데이터 처리 방법
JPWO2012157718A1 (ja) 受信機および受信方法
JP6018798B2 (ja) 受信機
JP5350021B2 (ja) ファイル生成装置、ファイル再生装置およびコンピュータプログラム
US20220201372A1 (en) Live video streaming architecture with real-time frame and subframe level live watermarking
JP2012257229A (ja) 受信機
JP2005269412A (ja) コンテンツ配信システムおよび視聴者端末装置