JP6610555B2 - 受信装置、送信装置、およびデータ処理方法 - Google Patents

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

Info

Publication number
JP6610555B2
JP6610555B2 JP2016555190A JP2016555190A JP6610555B2 JP 6610555 B2 JP6610555 B2 JP 6610555B2 JP 2016555190 A JP2016555190 A JP 2016555190A JP 2016555190 A JP2016555190 A JP 2016555190A JP 6610555 B2 JP6610555 B2 JP 6610555B2
Authority
JP
Japan
Prior art keywords
data
application
segment
reception
processing
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.)
Expired - Fee Related
Application number
JP2016555190A
Other languages
English (en)
Other versions
JPWO2016063780A1 (ja
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 JPWO2016063780A1 publication Critical patent/JPWO2016063780A1/ja
Application granted granted Critical
Publication of JP6610555B2 publication Critical patent/JP6610555B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • 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/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • 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
    • 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/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • 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/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2668Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Marketing (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Circuits Of Receivers In General (AREA)

Description

本開示は、受信装置、送信装置、およびデータ処理方法に関する。さらに詳細には例えば放送波やネットワークを介したデータの送信または受信を実行する受信装置、送信装置、および通信データに対するデータ処理方法に関する。
放送局やコンテンツサーバ等、コンテンツを提供する送信装置から、テレビ、PC、携帯端末等の受信装置に対して、放送波等による一方向通信、あるいは、インターネット等のネットワークを介した双方向通信、一方向通信によって、放送番組等のコンテンツを送受信するシステムについての開発や規格化が、現在、盛んに進められている。
しかし、ネットワークを介したデータ送信においては、ネットワークの輻輳等により、一定のビットレートでのデータ受信が困難となる場合がある。
このような問題を解決するため、複数のビットレートのデータの細分化ファイルであるセグメントをネットワーク上に送信し、ネットワーク状況に応じてクライアント側で最適なビットレートのセグメントを選択して再生するアダプティブ(適応型)ストリーミングが提案されている。
このアダプティブ(適応型)ストリーミングの規格として、DASH(Dynamic Adaptive Streaming overHTTP)がある。DASHは、HTTP(HyperText Transfer Protocol)プロトコルを使用したアダプティブ(適応型)ストリーミング技術の標準規格である。
アダプティブ(適応型)ストリーミングでは、コンテンツ配信サーバは様々なクライアントで配信コンテンツの再生を可能とするため、複数のビットレートの動画コンテンツの細分化ファイルとこれらの属性情報やURLを記述したマニフェスト・ファイルを作成し保持する。
クライアントは、マニフェスト・ファイルをサーバから取得して、自装置の表示部のサイズや利用可能な通信帯域に応じた最適なビットレートコンテンツを選択し、選択コンテンツを受信して再生する。ネットワーク帯域の変動に応じてビットレートの動的な変更も可能であり、クライアント側では、状況に応じた最適なコンテンツを随時切り替えて受信することが可能となり、映像途切れの発生を低減した動画コンテンツ再生が実現される。なお、アダプティブ(適応型)ストリーミングについては、例えば特許文献1(特開2011−87103号公報)に記載がある。
MPEG(Moving Picture Expert Group)符号化された動画や音声データを上記のDASHに従ってストリーミング配信するための仕様を定めた規格としてMPEG−DASH規格がある。
MPEG−DASH規格には、以下の2つの規格が含まれる。
(a)動画や音声ファイルの管理情報であるメタデータを記述するためのマニフェスト・ファイル(MPD:Media Presentation Description)に関する規格。
(b)動画コンテンツ伝送用のファイル・フォーマット(セグメント・フォーマット)に関する規格。
MPEGデータをDASHに従ってストリーミング配信する場合は、このMPEG−DASH規格に従った処理が行われる。
一方、放送、インターネットからのコンテンツ配信を受信するクライアント(受信装置)には対話的サービスを行うためにHTML5ブラウザが搭載され、HTML5にて記述されたアプリテーションがクライアントで実行される。
上記アダプティブ(適応型)ストリーミングもHTML5アプリケーションのJavaScript(登録商標)によって制御が行われる。
WWW(World Wide Web)利用技術の国際的標準化団体であるW3C(World Wide Web Consortium)は、このためのAPI(Application Programming Interface)の標準規格として、MSE(Media Source Extentions)−APIを規定している。
このMSE−APIを利用することで、アダプティブストリーミングのみならず、アプリケーションがユーザの属性に合わせた広告をコンテンツに挿入を行うことも可能である。
しかし、例えば、テレビ等のクライアント(受信装置)が、放送波を介した受信データにネットワークを介して受信するデータをアプリケーションの制御により重畳、あるいは置き換えて出力しようとする場合、データ出力時間の遅延が発生するという問題がある。
これは、例えば、MSE−APIでは、アプリケーションがチューナー受信データとネットワーク受信データを処理し、さらに合成処理において実行される様々なデータ処理の処理時間に起因する。
また、広告挿入において複数のHTML5ビデオをタイミングを合わせて重畳表示する場合でも、アプリケーションの制御によって放送番組の映像、音声と広告の映像、音声の出力タイミングを正確に合わせることは難しい。
これは、HTML5ブラウザ等のアプリケーション実行環境では、アプリケーションが一秒以下の精度でタイミング合わせをするようなリアルタイム処理に適さないという問題に起因する。
さらに、放送システムの場合は、番組もしくやチャンネル毎に異なるアプリケーションを切り替えて実行するのが一般的である。従って、アプリケーションがMSE−APIを利用し放送波を介して受信した映像音声データとインターネットの映像音声データを制御するような場合は、番組の切り替え、チャンネルの切り替えで映像、音声再生の連続性が失われるという重大な問題がある。
特開2011−87103号公報
本開示は、例えば、上記問題に鑑みてなされたものであり、放送波、もしくは、ネットワークから受信した映像音声データの合成処理をアプリケーションが行うとともに、再生遅延の減少や、連続的な映像や音声データの再生を可能とする受信装置、送信装置、およびデータ処理方法を提供することを目的とする。
本開示の第1の側面は、
受信装置の受信データのバッファ処理を、受信装置が実行するアプリケーションのメディア再生の処理オブジェクトであるメディアソースオブジェクトとして開示するデータ処理部を有する受信装置にある。
さらに、本開示の第2の側面は、
受信装置において利用されるアプリケーションを送信する通信部を有し、
前記アプリケーションは、受信装置における受信データのバッファ処理を開示するメディアソースオブジェクトを利用して、受信データとアプリケーションの受信データとの合成処理を実行させるアプリケーションである送信装置にある。
さらに、本開示の第3の側面は、
受信装置において実行するデータ処理方法であり、
前記受信装置のデータ処理部が、受信データを受信装置が実行するアプリケーションのメディア再生の処理オブジェクトであるメディアソースオブジェクトに設定するデータ処理方法にある。
さらに、本開示の第4の側面は、
送信装置において実行するデータ処理方法であり、
送信装置の通信部が、受信装置において利用されるアプリケーションを送信し、
前記アプリケーションは、受信装置における受信データのバッファ処理を開示するメディアソースオブジェクトを利用して、受信データとアプリケーションの受信データとの合成処理を実行させるアプリケーションであるデータ処理方法にある。
本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本開示の一実施例の構成によれば、放送受信データとネットワーク受信データの合成処理を効率的に実行する装置、方法が実現される。
具体的には、例えば受信装置が通信部を介して受信する放送受信データの処理を、HTML5ブラウザのMSE API(Application Programming Interface)を適用して、受信装置の実行するアプリケーションの処理オブジェクトであるメディアソースオブジェクトとしてアプリケーションが制御可能なように設定する。アプリケーションは、メディアソースオブジェクトに対する処理として、放送受信データのメディアソースオブジェクトをHTML5のビデオオブジェクトに設定し、放送受信データの映像音声再生をアプリケーションから制御する。アプリケーションは放送受信データのメディアソースオブジェクトを利用して前記放送受信データと、ネットワークを介して受信するネットワーク受信データとの合成処理の制御を実行する。アプリケーションは、API適用処理によってアプリケーション時間軸と放送時間軸の時間差に相当する時間オフセットを取得し、高精度、低遅延のデータ合成処理の制御を実行する。
本構成により、放送受信データとネットワーク受信データの合成処理および出力処理を低遅延、高精度に行うことが可能となる。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
本開示の処理を実行する通信システムの一構成例について説明する図である。 送信装置の送信データについて説明する図である。 送信装置および受信装置のプロトコルスタックの例を示す図である。 サービスワーカー(SW)を利用した処理の具体例(ユースケース)について説明する図である。 サービスワーカー(SW)を利用した処理の具体例(ユースケース)について説明する図である。 サービスワーカー(SW)を利用した処理の一例を説明する図である。 放送受信コンテンツと、ネットワーク受信コンテンツとの合成表示処理例について説明する図である。 放送受信コンテンツと、ネットワーク受信コンテンツとの合成表示処理例について説明する図である。 アダプティブ(適応型)ストリーミングについて説明する図である。 アダプティブ(適応型)ストリーミングに従って、様々なビットレートのセグメントを受信して再生する受信装置の処理構成例を示す図である。 放送波とネットワークを介する2つの経路の受信データを合成して出力する場合の処理と、遅延要因について説明する図である。 本開示の受信装置(クライアント)における合成処理、すなわち放送波の受信データの一部を、ネットワーク受信データに置き換えて出力する処理を説明する図である。 放送波の受信データの一部を、ネットワーク受信データに置き換えて出力するメディアソース更新処理について説明する図である。 受信装置におけるデータ受信および合成処理に適用するハードウェア構成例について説明する図である。 受信装置の実行する全体的な処理のシーケンスを説明するフローチャートを示す図である。 受信装置のアプリケーションが実行する処理のシーケンスを説明するフローチャートを示す図である。 受信装置のアプリケーションが実行する処理のシーケンスを説明するフローチャートを示す図である。 通信装置である送信装置と受信装置の構成例について説明する図である。 通信装置である送信装置と受信装置のハードウェア構成例について説明する図である。
以下、図面を参照しながら本開示の受信装置、送信装置、およびデータ処理方法の詳細について説明する。なお、説明は以下の項目に従って行なう。
1.通信システムの構成例について
2.データ通信プロトコルFLUTE、およびROUTEについて
3.送信装置と受信装置の実行する通信処理例について
4.サービスワーカー(SW)について
5.放送波とネットワーク双方の受信データの合成処理について
6.放送波とネットワーク双方の受信データの合成処理における遅延を解消または減少させた実施例について
7.受信装置におけるデータ受信および合成処理に適用するハードウェア構成例について
8.受信装置の実行する処理のシーケンスについて
9.サービスワーカー(SW)とアプリケーションを利用した処理例について
10.送信装置と受信装置の構成例について
11.本開示の構成のまとめ
[1.通信システムの構成例について]
まず、図1を参照して本開示の処理を実行する通信システムの一構成例について説明する。
図1に示すように、通信システム10は、画像データや音声データ等のコンテンツを送信する通信装置である送信装置20と、送信装置20の送信するコンテンツを受信する通信装置である受信装置30を有する。
送信装置20は、具体的には、例えば放送局21やコンテンツサーバ22等、コンテンツを提供する側の装置である。
一方、受信装置30は、一般ユーザのクライアント装置であり、具体的には、例えばテレビ31、PC32、携帯端末33等によって構成される。
送信装置20と受信装置30間のデータ通信は、インターネット等のネットワークを介した双方向通信、一方向通信、あるいは、放送波等による一方向通信の少なくともいずれか、あるいは両者を利用した通信として行われる。
送信装置20から受信装置30に対するコンテンツ送信は、例えばアダプティブ(適応型)ストリーミング技術の規格であるMPEG−DASH規格に従って実行する。
MPEG−DASH規格には、以下の2つの規格が含まれる。
(a)動画や音声ファイルの管理情報であるメタデータを記述するためのマニフェスト・ファイル(MPD:Media Presentation Description)に関する規格、
(b)動画コンテンツ伝送用のファイル・フォーマット(セグメント・フォーマット)に関する規格、
送信装置20から、受信装置30に対するコンテンツ配信は、上記のMPEG−DASH規格に従って実行する。
送信装置20は、コンテンツデータを符号化し、符号化データおよび符号化データのメタデータを含むデータファイルを生成する。符号化処理は、例えばMPEGにおいて規定されるMP4ファイルフォーマットに従って行われる。なお、送信装置20がMP4形式のデータファイルを生成する場合の符号化データのファイルは「mdat」、メタデータは「moov」や「moof」等と呼ばれる。
送信装置20が受信装置30に提供するコンテンツは、例えば音楽データや、映画、テレビ番組、ビデオ、写真、文書、絵画および図表などの映像データや、ゲームおよびソフトウェアなど、様々なデータである。
送信装置20の送信データについて図2を参照して説明する。
MPEG−DASH規格に従ってデータ送信を実行する送信装置20は、図2に示すように、大きく分けて以下の複数種類のデータの送信を行う。
(a)シグナリングデータ50
(b)AVセグメント60
(c)その他のデータ(ESG,NRTコンテンツ等)70
AVセグメント60は、受信装置において再生する画像(Video)や、音声(Audio)データ、すなわち例えば放送局の提供する番組コンテンツ等によって構成される。例えば、上述したMP4符号化データ(mdat)や、メタデータ(moov,moof)によって構成される。
一方、シグナリングデータ50は、番組表等の番組予定情報や、番組取得に必要となるアドレス情報(URL等)、さらにコンテンツの再生処理に必要な情報、例えばコーデック情報(符号化方式など)などからなる案内情報、制御情報によって構成される。
受信装置30は、このシグナリングデータ50を、再生対象となる番組コンテンツを格納したAVセグメント60の受信に先行して受信することが必要となる。
このシグナリングデータ50は、例えばXML(Extensible Markup Language)形式のデータとして、スマホやテレビ等のユーザ端末である受信装置(クライアント)に送信される。
前述したように、シグナリングデータは、随時、繰り返し送信される。例えば100msec毎など、頻繁に繰り返し送信される。
これは、受信装置(クライアント)が、いつでも、即座にシグナリングデータを取得することを可能とするためである。
クライアント(受信装置)は、随時、受信可能なシグナリングデータに基づいて、必要な番組コンテンツのアクセス用アドレスの取得や、コーデック設定処理など、番組コンテンツの受信および再生に必要な処理を遅滞なく実行することが可能となる。
その他のデータ70は、例えばESG(Electronic Service Guide)、NRTコンテンツ等が含まれる。
ESGは、電子サービスガイド(Electronic Service Guide)であり、例えば番組表等の案内情報である。
NRTコンテンツはノンリアルタイム型のコンテンツである。
NRTコンテンツには、例えば、クライアントである受信装置30のブラウザ上で実行される様々なアプリケーションファイル、動画、静止画等のデータファイル等が含まれる。
後述するアプリケーション等の制御プログラムとして利用されるサービスワーカー(Service Worker)も、NRTコンテンツに含まれる。
図2に示す以下のデータ、すなわち、
(a)シグナリングデータ50
(b)AVセグメント60
(c)その他のデータ(ESG,NRTコンテンツ等)70
これらのデータは、例えば、データ通信プロトコル:FLUTE(File Delivery over Uni−directional Transport)に従って送信される。
[2.データ通信プロトコルFLUTE、およびROUTEについて]
データ通信プロトコル:FLUTE(File Delivery over Uni−directional Transport)はマルチキャストにより伝送するコンテンツのセッション管理を行うプロトコルである。
例えば送信装置であるサーバ側で生成されるファイル(URLとバージョンで識別される)は、FLUTEプロトコルに従って、受信装置であるクライアントに送信される。
受信装置(クライアント)30は、例えば受信装置(クライアント)30の記憶部(クライアントキャッシュ)に、受信ファイルのURLおよびバージョンとファイルを対応付けて蓄積する。
同じURLでバージョンが異なるものはファイルの中身が更新されているものとみなす。FLUTEプロトコルは一方向ファイル転送制御のみを行うもので、クライアントにおけるファイルの選択的なフィルタリング機能はないが、FLUTEで転送制御するファイルをそのファイルに紐づけられるメタデータを利用して、クライアント側で取捨選択することにより、選択的なフィルタリングを実現し、ユーザの嗜好を反映したローカルキャッシュを構成・更新管理することが可能となる。
なお、メタデータは、FLUTEプロトコルに拡張して組み込むこともできるし、別途ESG(Electronic Service Guide)等のプロトコルで記述することもできる。
なお、FLUTEは、当初マルチキャストにおけるファイル転送プロトコルとして仕様化された。FLUTEは、FDTと、ALCと呼ばれるスケーラブルなファイルオブジェクトのマルチキャストプロトコル、具体的にはそのビルディングブロックであるLCTやFECコンポーネント、の組み合わせにより構成される。
従来のFLUTEは、主に非同期型のファイル転送に利用するために開発されたが、現在、放送波およびネットワークを介したデータ配信システムに関する規格化団体であるATSC(Advanced Television System Committe)において、ブロードキャストライブストリーミングにも適用しやすくするための拡張を行っている。このFLUTEの拡張仕様がROUTE(Real−Time Object Delivery over Unidirectional Transport)と呼ばれる。
放送波およびネットワークを介したデータ配信システムに関する規格の1つとして現在、標準化が進められている規格としてATSC(Advanced Television System Committe)3.0がある。このATSC3.0は、ROUTEを従来のFLUTEプロトコルに置き換えて、シグナリングデータや、ESG、あるいは非同期ファイル、同期型ストリーム等の送信に採用したスタック構成を規定している。
[3.送信装置と受信装置の実行する通信処理例について]
次に、送信装置と受信装置の実行する通信処理例について説明する。
図3は、送信装置および受信装置のプロトコルスタックの例を示す図である。
図3に示す例は、以下の2つの通信データの処理を行なうための2つのプロトコルスタックを有する。
(a)ブロードキャスト(マルチキャストも含む)通信(例えば放送型データ配信)
(b)ユニキャスト(ブロードバンド)通信(例えばHTTP型のクライアントサーバ型通信)
図3の左側が(a)ブロードキャスト通信(例えば放送型データ配信)に対応するプロトコルスタックである。
図3の右側が、(b)ユニキャスト(ブロードバンド)通信(例えばHTTP型のクライアントサーバ型通信)に対応するプロトコルスタックである。
図3左側に示す(a)ブロードキャスト通信(例えば放送型データ配信)に対応するプロトコルスタックは、下位レイヤから順に、以下のレイヤを持つ。
(1)ブロードキャスト物理レイヤ(Broadcast PHY)
(2)IPマルチキャストレイヤ(IP Multicast)
(3)UDPレイヤ
(4)ROUTE(=拡張型FLUTE)レイヤ
(5)ESG,NRTcontent,DASH(ISO BMFF)およびVideo/Audio/CC
(6)アプリケーションレイヤ(Applications(HTML5))
なお、(2)IPマルチキャストレイヤ(IP Multicast)の上位レイヤとしてSignaling(シグナリング)レイヤが設定される。
シグナリングレイヤは、先に図2を参照して説明したシグナリングデータ50の送受信に適用されるレイヤである。シグナリングデータには、番組表等の番組予定情報や、番組取得に必要となるアドレス情報(URL等)、さらにコンテンツの再生処理に必要な情報、例えばコーデック情報(符号化方式など)などからなる案内情報、制御情報などが含まれる。
なお、(1)ブロードキャスト物理レイヤ(Broadcast PHY)の上位レイヤとして将来の新たなプロトコルの利用許容レイヤ(Future Extensibility)が設定されている。
(1)ブロードキャスト物理レイヤ(Broadcast PHY)は、ブロードキャスト通信を実行するための例えば放送系の通信部を制御する通信制御部によって構成される物理レイヤである。
(2)IPマルチキャストレイヤ(IP Multicast)は、IPマルチキャストに従ったデータ送受信処理を実行するレイヤである。
(3)UDPレイヤは、UDPパケットの生成、解析処理レイヤである。
(4)ROUTEレイヤは、拡張型FLUTEプロトコルであるROUTEプロトコルにしたがって転送データの格納や取り出しを行うレイヤである。
ROUTEは、FLUTEと同様、ALCと呼ばれるスケーラブルなファイルオブジェクトのマルチキャストプロトコルであり、具体的にはそのビルディングブロックであるLCTやFECコンポーネントの組み合わせにより構成される。
(5)ESG,NRTcontent,DASH(ISO BMFF)およびVideo/Audio/CCは、ROUTEプロトコルに従って転送されるデータである。
DASH規格に従った同報型配信サービスは、MBMS(Multimedia Broadcast Multicast Service)と呼ばれる。このMBMSをLTEで効率的に実現させる方式としてeMBMS(evolved Multimedia Broadcast Multicast Service)がある。
MBMSやeMBMSは、同報型配信サービスであり、特定のエリア内に位置する受信装置である複数のユーザ端末(UE)に対して共通のベアラで一斉に同一データ、例えば映画コンテンツなどを配信するサービスである。MBMSやeMBMSに従った同報配信により、配信サービス提供エリアに位置する多数のスマホやPC、あるいはテレビ等の受信装置に、同じコンテンツを同時に提供することができる。
MBMS、およびeMBMSは、3GPPファイルフォーマット(ISO−BMFFファイル、MP4ファイル)に従ったファイルを、転送プロトコルROUTE、またはFLUTEに従ってダウンロードする処理について規定している。
先に図2を参照して説明した以下のデータ、すなわち、
(a)シグナリングデータ50
(b)AVセグメント60
(c)その他のデータ(ESG、NTRコンテンツ等)70
これらのデータの多くはROUTEプロトコル、またはFLUTEプロトコルに従って送信される。
(5)ESG,NRTcontent,DASH(ISO BMFF)およびVideo/Audio/CCは、ROUTEプロトコルに従って転送されるデータである。
ESGは、電子サービスガイド(Electronic Service Guide)であり、例えば番組表等の案内情報である。
NRTcontentはノンリアルタイム型のコンテンツである。
前述したように、NRTコンテンツには、例えば、クライアントである受信装置のブラウザ上で実行される様々なアプリケーションファイル、動画、静止画等のデータファイル等が含まれる。さらに、後述するアプリケーション等の制御プログラムとして利用されるサービスワーカー(Service Worker(SW))も、NRTコンテンツに含まれる。
Video/Audio/CCは、DASH規格に従って配信されるビデオやオーディオ等、再生対象となる実データである。
(6)アプリケーションレイヤ(Applications(HTML5))は、ROUTEプロトコルに従って転送するデータの生成、あるいは解析、その他、様々なデータの出力制御等を実行するアプリケーションレイヤであり、例えばHTML5を適用したデータ生成、解析、出力処理等を行う。
一方、図3の右側に示す、(b)ユニキャスト(ブロードバンド)通信(例えばHTTP型のP2P通信)に対応するプロトコルスタックは、下位レイヤから順に、以下のレイヤを持つ。
(1)ブロードバンド物理レイヤ(Broaband PHY)
(2)IPユニキャストレイヤ(IP Unicast)
(3)TCPレイヤ
(4)HTTPレイヤ
(5)ESG,Signaling,NRTcontent,DASH(ISO BMFF)およびVideo/Audio/CC
(6)アプリケーションレイヤ(Applications(HTML5))
(1)ブロードバンド物理レイヤ(Broaband PHY)は、ブロードバンド通信を実行する例えばネットワークカード等の通信部を制御するデバイスドライバ等の通信制御部によって構成される物理レイヤである。
(2)IPユニキャストレイヤ(IP Unicast)は、IPユニキャスト送受信処理を実行するレイヤである。
(3)HTTPレイヤは、HTTPパケットの生成、解析処理レイヤである。
この上位レイヤは、図3左側の(a)ブロードキャスト通信(例えば放送型データ配信)のスタック構成と同様である。
なお、送信装置(サーバ)20、受信装置(クライアント)30は、図3の2つの処理系、すなわち、
(a)ブロードキャスト通信(例えば放送型データ配信)
(b)ユニキャスト(ブロードバンド)通信(例えばHTTP型のP2P通信)
これら2つの通信プロトコルスタックの少なくともいずれかに従った処理を行なう。
図3に示すプロトコルスタックにおいて、ROUTE(FLUTE)に従ってマルチキャスト転送されるファイル群の属性(ファイルの識別子であるURLを含む)は、ROUTE(FLUTE)の制御ファイル内に記述することもできれば、ファイル転送セッションを記述するシグナリング(Signaling)データ中に記述することもできる。また、ファイル転送セッションのさらなる詳細属性を(エンドユーザへの提示用途にも適用可能な)ESGにより記述することもできる。
[4.サービスワーカー(SW)について]
次に、送信装置(サーバ)20が提供し、主に受信装置(クライアント)30において利用されるサービスワーカー(SW:Service Worker)について説明する。
サービスワーカー(SW)は、放送サーバ21や、データ配信サーバ22等の送信装置20から受信装置に提供される。
サービスワーカー(SW)は、受信装置(クライアント)30において実行されるアプリケーション(=アプリケーションプログラム)や、アプリケーションの実行時に利用されるデータファイル等の取得処理や、記憶部(キャッシュ)に対する格納処理、さらに更新処理、削除処理等を実行するプログラムである。具体的には、例えばJavaScript(登録商標)によって構成される。
サービスワーカー(SW)は、例えば放送サーバ21や、データ配信サーバ22等の送信装置20が提供する放送番組(放送コンテンツ)に対応して設定され、送信装置20から受信装置30に提供されるアプリケーションの制御および管理プログラムとして、受信装置30に提供される。
サービスワーカー(SW)、アプリケーション、およびアプリケーションの実行時に利用されるデータファイル、これらは、例えば先に図2、図3を参照して説明したNRTコンテンツ(ノンリアルタイムコンテンツ)として、送信装置20から受信装置30に提供される。
あるいは、放送番組を配信するサーバとは別のデータ提供サーバが、サービスワーカー(SW)、アプリケーション、およびアプリケーションの実行時に利用されるデータファイルを受信装置30に提供する構成としてもよい。
サービスワーカー(SW)は、例えば、受信装置30においてWebページ等の閲覧処理を実行するために利用されるプログラムであるブラウザを利用して情報表示を実行するアプリケーションのリソース管理(取得、保持、更新、削除等)処理などを実行する。
サービスワーカー(SW)を利用した処理の具体例(ユースケース)について、図4、図5を参照して説明する。
図4は、受信装置30が、放送サーバ21等の送信装置20から、ある番組コンテンツを受信し、受信装置30の表示部に表示している状態を示している。
放送サーバ21等の送信装置20は、番組配信に併せて、NRTコンテンツ(ノンリアルタイムコンテンツ)として、天気情報を表示するアプリケーション、およびこの天気情報表示アプリケーションに利用される様々なデータファイル、例えば動画、静止画、音声等の様々なデータを含むデータファイルを受信装置30に提供する。
以下では、これらのアプリケーションおよびデータファイルを「リソース」と呼ぶ。
放送サーバ21は、さらに、これらの「リソース」を管理するリソース管理プログラムとして、サービスワーカー(SW)を、やはりNRTコンテンツ(ノンリアルタイムコンテンツ)として受信装置30に提供する。
受信装置30は、送信装置20から受信した「リソース」、すなわちアプリケーションおよびデータファイルを利用して、図4に示すように、番組表示に併せて、天気情報の表示を行うことができる。
このような、アプリケーションを利用したデータ表示は、これまでのデータ配信構成では、アプリケーションの提供される番組の終了とともに実行できなくなってしまう。
これは、天気情報表示アプリケーション等のリソースは、番組受信中は、受信装置30において利用可能な設定、例えば、一時記憶キャッシュに格納され、利用可能な状態に設定されるが、番組終了、あるいはユーザがチャンネルを切り替えると、これらのキャッシュデータが消去、あるいはアクセス不可能な状態に設定されてしまうためである。
サービスワーカー(SW)は、このような番組対応のアプリケーションやデータを、番組終了後や、チャンネル切り替え後、あるいは放送の非受信状態、ネットワーク非接続状態等のオフライン状態であっても利用可能とするためのリソース管理プログラムとして機能する。
図5に示すように、天気情報表示アプリケーションを、このアプリを提供した番組の終了後や、他のチャンネルに切り替え後、あるいはデータ受信を実行していないオフライン状態であっても、利用することが可能となる。すなわち天気情報を受信装置30の表示部に表示して閲覧することが可能となる。
なお、天気情報表示アプリケーションは、例えばブラウザ上で表示されるプログラムである。
この天気情報表示アプリケーションは、サービスワーカー(SW)の制御によって、受信装置30の記憶部(永続キャッシュ)に格納される。例えばユーザによる表示要求等のリクエスト(イベント)があると、サービスワーカー(SW)の制御によって、の記憶部(永続キャッシュ)から読み出され、表示部に表示される。
なお、アプリケーション等のリソースを格納する記憶部(永続キャッシュ)は、受信装置30の電源がオフとなっても格納データが消去されない不揮発性メモリとすることが好ましい。
このように、サービスワーカー(SW)を利用することで、様々な番組対応アプリケーションを、番組の表示、非表示と無関係に利用することが可能となる。
なお、サービスワーカー(SW)は、例えばある番組対応のリソース(アプリケーション、およびアプリ関連データ)単位ごとに設定され、リソースに併せて、あるいはリソース送信に前後して送信装置20から受信装置30に提供される。
サービスワーカー(SW)は、各番組対応の設定とすることもできるが、複数番組を含む特定のチャンネル対応のリソースに対して、共通に利用可能としたサービスワーカー(SW)を設定することもできる。
サービスワーカー(SW)と、サービスワーカー(SW)によって管理されるリソース(アプリケーションおよびアプリ関連データ)は、受信装置30の記憶部(永続キャッシュ)に格納される。
図6は、サービスワーカー(SW)を利用した処理の一例を説明する図である。
図6には、受信装置30が送信装置20からリソースとしてのWebページ(例えば図4、図5に示す天気情報表示ページ)を取得して受信装置30の記憶部(永続キャッシュ)に格納して利用するシーケンスの一例を示している。
なお、Webページは、所定のWebページ表示アプリケーションと、表示用データによって構成されるリソースを利用して表示される。
図6には、受信装置内表示制御部90の構成要素として表示処理部91、サービスワーカー(SW)92、キャッシュ(記憶部)93を示している。
ステップS101〜S102は、受信装置30による送信装置20に対する初回アクセス処理によるリソース(Webページ)取得処理である。
これは、例えば放送サーバ等の送信するNRTコンテンツから取得される。
この取得処理後、表示処理部91によって、Webページ95が、受信装置30の表示部に表示される。この表示は、このWebページを提供している番組に併せて表示されている状態であり、先に図3を参照して説明した表示状態に相当する。
この表示期間において、例えばユーザによる指示としてリソース(Webページ)の登録(インストール)要求がなされると、ステップS103において、サービスワーカー(SW)92が、リソース(Webページ)の登録(インストール)処理を開始する。
具体的には、ステップS104に示すようにリソースをキャッシュ93に渡し、記憶部(永続キャッシュ)に格納する処理を行なう。
その後、番組終了後、あるいはチャンネル切り替え後、あるいはオフライン設定状態において、ステップS105において、ユーザがWebペーシの閲覧要求を行う。
サービスワーカー(SW)92は、この閲覧要求の入力をフェッチイベントとして検出し、フェッチイベント検出に応じて、ステップS106において、リソース(Webページ)を記憶部(永続キャッシュ)から取得する。
表示処理部91は、ステップS107において、Webページ96を表示する。
このWebページ表示処理は、番組終了後、あるいはチャンネル切り替え後、あるいはオフライン設定状態における表示処理であり、先に図5を参照して説明した表示状態に相当する。
このように、サービスワーカー(SW)を利用することで、様々な番組対応アプリケーションを、番組の表示、非表示と無関係に利用することが可能となり、例えば、番組付属の表示情報として設定されたWebページを番組と無関係に、任意のタイミングで表示する等の処理が可能となる。
このように、サービスワーカー(SW)は、例えば、Webページ、HTMLページ、JavaScript(登録商標)等を構成要素としたアプリケーションや、アプリケーションに利用されるデータ等からなるリソースの取得、保存、更新、削除等の、リソース管理を実行する。
リソースの保存、あるいはキャッシュは、永続的なキャッシュであり、通常のローカル/テンポラリなキャッシュとは異なり、アプリケーションが稼働していなくても、データが保存される。
Webページ表示プログラムであるブラウザに一種のプロキシサーバが実装され、いつでも、必要なときにプロキシサーバ(永続キャッシュ)をアクセスしてWebページを取得して表示可能としたイメージである。
なお、サービスワーカー(SW)自身も永続キャッシュに格納(インストール)される。サービスワーカー(SW)が、受信装置にインストールされると、このサービスワーカー(SW)の管理対象とするリソースについて、様々な制御が可能となる。
例えば、リソースへのアクセスリクエスト(リソースへのフェッチリクエスト)に応じて、ブラウザ側の処理(ローカルキャッシュやネットワークからのリソースの取得)がはじまる前に、サービスワーカー(SW)の処理が開始され、永続キャッシュからのリソースの提供が行われる。
また、サービスワーカー(SW)は、JavaScirpt(登録商標)で提供されるため、さまざまな手続きを組み込むことが可能であり、永続キャッシュのリソースの一部の更新等キャッシュ制御についての柔軟な処理記述が可能となっている。
なお、サービスワーカー(SW)自身も更新可能である。サービスワーカー(SW)は、送信装置20から提供されるが、このサービスワーカー(SW)のヘッダ情報(HTTP Cache−Control)に更新日時情報や更新データのアクセス情報等、更新処理に必要となる各種情報が記録され、このヘッダ情報に基づいて更新処理が実行される。
例えば、ヘッダに設定された使用期限等に基づいて、使用期限が来ると、受信装置30は、新しいバージョンのサービスワーカ(SW)の取得処理を実行して、キャッシュに格納された旧バージョンのSWを置き換える更新処理を行なう。
[5.放送波とネットワーク双方の受信データの合成処理について]
受信装置30は、送信装置である放送サーバ21から放送波を介して番組コンテンツを受信し、さらに、データ配信サーバ22からネットワークを介して様々なコンテンツを受信することが可能である。受信装置30は、これらの2つの通信経路を併用して、2つの通信経路から受信したデータを合成して表示することができる。
例えば、受信装置において実行するアプリケーション、例えば上述したサービスワーカー(SW)の管理アプリケーション等、受信装置30において実行されるアプリケーションを適用して、2つの通信経路から受信したデータを合成する処理を実行させることが可能となる。
例えば、アプリケーションは、
(a)放送波を介して受信する番組コンテンツ
(b)ネットワークを介して受信する広告コンテンツ
これらの2つのデータを合成して表示する処理を行なう。
具体的な処理例について図7、図8を参照して説明する。
図7には、受信装置(クライアント)30の表示部に表示されるデータの時間経過に伴う推移を示している。
(1)時間t0〜t1では、放送波を介して受信する番組コンテンツを表示している。
(2)時間t1〜t2では、放送波を介して受信する番組コンテンツに、ネットワークを介して受信する広告コンテンツを重畳して表示している。
(3)時間t2〜t3では、放送波を介して受信する番組コンテンツを表示している。
(2)の時間t1〜t2においてネットワークを介して受信する広告コンテンツは、例えば特定の地域や特定のユーザを対象とした広告コンテンツ(ターゲット広告)としてユーザに提供することができる。
受信装置30が、(2)の時間t1〜t2においてネットワークを介して受信する広告コンテンツは、受信装置30においてアプリケーションを実行している場合に受信可能なコンテンツとなる。
アプリケーションを実行していない受信装置では、放送波を介して受信するデータのみが表示される。
図7に示す構成は、時間t1〜t2において、放送波の受信データにネットワーク受信データを併せて表示(並列表示)する例である。この場合は、広告コンテンツを番組コンテンツに重畳し再生するために複数の映像復号化装置が必要である。
この他、受信装置30のアプリケーションの処理態様としては、2つの受信データの並列表示ではなく、放送波を介する受信データの一部期間のデータを、ネットワーク受信データに完全に置き換えて出力する処理も可能である。この場合は、一つの映像復号化装置にて再生可能である。
この置換表示例を図8に示す。
(1)時間t0〜t1では、放送波を介して受信する番組コンテンツを表示している。
(2)時間t1〜t2では、ネットワークを介して受信する広告コンテンツを表示している。
(3)時間t2〜t3では、放送波を介して受信する番組コンテンツを表示している。
(2)の時間t1〜t2においてネットワークを介して受信する広告コンテンツは、例えば特定の地域や特定のユーザを対象とした広告コンテンツ(ターゲット広告)としてユーザに提供することができる。
受信装置30が、(2)の時間t1〜t2においてネットワークを介して受信する広告コンテンツは、受信装置30がアプリケーションを実行している場合において受信可能なコンテンツとなる。
アプリケーションを実行していない受信装置では、時間t1〜t2の間に、放送波を介して受信する不特定多数向けの広告コンテンツを受信して表示する設定とすることができる。
このように、アプリケーションの処理によって、放送受信データとネットワーク受信データとの合成表示処理が実行できる。
しかし、この、放送受信データとネットワーク受信データの合成処理の処理時間が長くなると、再生遅延を発生させてしまう場合がある。
特に、例えば図8に示すように、放送受信データをネットワーク受信データに置き換えて表示する場合、合成処理に時間を要すると、図8に示す時間t1において、広告表示が実行されず、画像が途切れてしまうとっいた事態が発生する可能性がある。
以下、この問題点について説明する。
この問題点の説明の前に、ネットワーク状況に応じてクライアント側で最適なビットレートのセグメントを選択して再生するアダプティブ(適応型)ストリーミング処理について説明する。
前述したように、ネットワークを介したデータ送信においては、ネットワークの輻輳等により、一定のビットレートでのデータ受信が困難となる場合がある。
このような問題を解決するため、複数のビットレートのデータの細分化ファイルであるセグメントをネットワーク上に送信し、ネットワーク状況に応じてクライアント側で最適なビットレートのセグメントを選択して再生するアダプティブ(適応型)ストリーミングが提案されている。
受信装置30は、ネットワーク受信データに限らず、放送受信データについてもネットワーク状況や、地震の表示装置の解像度情報に応じて最適なビットレートのデータを選択取得して出力可能な構成を持つ。
なお、受信装置30は、どのようなビットレートのデータが送信されるかについての情報を、送信装置20が提供するマニフェストファイルに基づいて取得することができる。
図9は、アダプティブ(適応型)ストリーミングについて説明する図である。
データ配信サーバ22は、配信データとして、例えばライブ映像からなるコンテンツを配信する場合、予め複数の異なるビットレートのデータを用意する。
図に示す例では、
高ビットレート(2Mbps)データ101、
中ビットレート(1.5Mbps)データ102、
低ビットレート(1Mbps)データ103、
これらのデータを配信データとする。
これらのデータは細分化されたデータであるセグメント単位でネットワークを介して受信装置30に提供される。A1〜An,B1〜Bn,C1〜Cnの各々がセグメントデータである。
A1,B1,C1はすべて同一シーンのデータであり、ビットレートが異なるデータ(セグメント)として構成されている。
各セグメントは、1つのセグメント単位で復号可能なデータ、たとえばMP4ファイルを含むセグメントである。
さらに、セグメントの属性情報やURLを記述したマニフェスト・ファイル104を、ネットワークを介して受信装置30に提供する。
受信装置(クライアント)30は、マニフェスト・ファイル104をサーバから取得して、自装置の表示部のサイズや利用可能な通信帯域に応じた最適なビットレートデータ(セグメント)を選択し、選択データを受信して再生する。ネットワーク帯域の変動に応じてビットレートの動的な変更も可能であり、クライアント側では、状況に応じた最適なデータを随時切り替えて受信することが可能となり、映像途切れの発生を低減した動画コンテンツ再生が実現される。
図に示す再生データ105が受信装置30における再生データであり、様々なビットレートのデータ(セグメント)が混在して再生される。
例えば、図7、図8を参照して説明した広告コンテンツもこのようなセグメントデータの組み合わせによって構成される。
図10は、アダプティブ(適応型)ストリーミングに従って、様々なビットレートのセグメントを受信して再生する受信装置30の処理構成例を示す図である。
図10に示す構成は、例えば受信装置30において実行されるブラウザによって利用されるAPI(Application Programming Interface)として実装可能なMSE(Media Source Extentions)−APIの処理構成である。
メディアソース110は、例えば外部サーバから受信する再生対象データを示すオブジェクトである。このオブジェクトには、複数のビットレートのセグメントデータが含まれる。
なお、オブジェクトとは、アプリケーションによる処理やアクセスが可能な要素を意味し、受信装置30の受信するデータや、記憶部に格納されるデータ、あるいは受信装置の記憶部や通信部等のハードウェアがオブジェクトに設定可能な要素となる。
メディアソース110は、例えば受信装置30の記憶部に格納されたビデオや音声データに相当する。
MSE−APIは、メディアソース110をそれぞれのビットレートのデータ(セグメント)単位で振り分け、個別のソースバッファ111〜113を設定する。
これら個別のソースバッファ111〜113は、メディアソース110の構成要素であり、いずれもアプリケーションによる処理対象となるオブジェクトである。
ソースバッファ111は、ビデオデータと2chオーディオデータの各セグメントを含むデータのソースバッファである。
ソースバッファ112は、ビデオデータのみ、ソースバッファ113はオーディオデータのみを格納するソースバッファである。
これらの各データは、それぞれ再生時間を同期させたトラックバッファ114に振り分けられ、ビデオ、オーディオ個別のデコーダ115においてデコード処理がなされた後、画像出力部117、音声出力部116に出力される。
なお、画像出力部117には、いずれか1つのビデオデコード結果が出力され、音声出力部116にはいずれか1つのオーディオデコード結果が出力される。
どのデコード結果、すなわちどのビットレートデータを選択して出力するかは、受信装置(クライアント)30側において、ネットワーク状況や受信装置の出力部機能等に応じて決定することができる。
このように、受信装置は、ネットワークを介して受信する様々なビットレートのデータを適宜、選択して出力することが可能となる。
しかし、このようなアプリケーションがMSE APIを利用してネットワーク受信データを放送波に合成して出力する処理に時間を要すると合成画像の出力に遅延が発生する場合がある。
遅延の具体的要因としては、例えば以下のような要因があると考えられる。
(A)ライブ放送での再生遅延の要因
合成処理を実行するアプリケーションは、放送波によって送信される放送ストリームを、XHR(XMLHttpRequest)によってセグメント単位で読み込む。読み込みセグメントは、図10を参照して説明したネットワーク経由の受信セグメントの格納領域を想定したオブジォェクトとしてのソースバッファに追加(Append)する。この一連の処理により遅延が生じる。
(B)番組切り替え時、チャンネル切り替え時における遅延
合成処理を実行するアプリケーションは、番組単位、あるいはチャンネル単位で設定されており、番組切り替え時、チャンネル切り替え時にはアプリケーションも切り替える必要がある。この切り替え処理によって遅延が発生し、また、連続して再生できなく映像が静止したり黒画像が挿入される問題がある。
このように、アプリケーションがネットワーク受信データを放送波に合成して出力する場合は上記のような問題がある。
図11を参照して、放送波とネットワークを介する2つの経路の受信データを合成して出力する処理と、遅延要因について説明する。
なお、以下では、放送波の受信データの一部をネットワーク受信データに置き換えて出力する場合の処理例について説明する。すなわち、図8を参照して説明したように、放送受信データの一部期間のデータをネットワーク受信データに置き換えて出力する処理例について説明する。
図11は、受信装置(クライアント)30における合成処理、すなわち放送受信データの一部を、ネットワーク受信データに置き換えて出力する処理を説明する図である。
受信装置(クライアント)30は、放送サーバ21からの放送波を、アンテナ131を介して受信する。
さらに、データ配信サーバ22からデータ受信を行う。
アンテナ131を介して受信するデータを放送受信セグメント125、
データ配信サーバ22からの受信データをネットワーク受信セグメント126とする。
放送受信セグメント125は、例えば映画等の番組コンテンツであり、ネットワーク受信セグメント126は、番組コンテンツの決められたタイミングに表示する広告コンテンツであるとする。
図に示す例では、放送受信セグメント125の一部セグメントa,b,c,d,e,fの6つのセグメントを示している。
一方、ネットワーク受信セグメント126として(c),(d)の2つのセグメントを示している。
なお、各セグメントは、各セグメント単位で復号可能な例えばMPEG圧縮されたデータ(MP4データ)である。
データの置き換えはセグメント単位で実行する。
ネットワーク受信セグメントである2つの広告セグメント(c),(d)を、放送受信セグメント125のセグメントa,b,c,d,e,f中のセグメントc,dに置き換えて出力する。
すなわち、受信装置30における出力コンテンツを以下のセグメント列とする。
a,b,(c),(d),e,f
上記セグメント列中、セグメントa,b,e,fは、放送受信セグメントであり、セグメント(c),(d)は、ネットワーク受信セグメントである。
受信装置30は、ブラウザ(HTML5ブラウザ)140を有し、ブラウザ140上でアプリケーション(Web application(JavaScript(登録商標))142を実行する。
アプリケーション142は、例えばAPI(先に説明した図10に示すMSE−API)等を利用した処理により、放送受信セグメント125と、ネットワーク受信セグメント126との合成処理を行なう、
放送受信セグメント125は、受信装置に設定されるプロキシサーバとしてのHTTPサーバ133に一旦、格納される。
HTTPサーバ133にデータを格納することで、アプリケーション142は、HTTPサーバ133から、XHR(XMLHttpRequest)141を適用してセグメント単位のデータ読み込みを行うことが可能となる。
アプリケーション142は、HTTPサーバ133に格納された放送受信セグメント125を、XHR(XMLHttpRequest)141によってセグメント単位で読み込む。
アプリケーション142によるセグメント読み込みにおいて、ネットワーク受信セグメント(c),(d)によって置き換え対象となる放送受信セグメントc,dは読み込まず、出力対象となる放送受信セグメントa,b,e,fのみの読み込み処理を行なう。
その後、アプリケーション142は、読み込んだ放送受信セグメントa,b,e,fと、データ配信サーバ22から受信した放送受信セグメント(c),(d)を合成する。
アプリケーション142は、先に図8を参照して説明した放送波として受信する番組コンテンツを非表示として、ネットワークを介して受信する広告コンテンツを番組コンテンツに置き換えたセグメント列、すなわち、
a,b,(c),(d),e,f
上記セグメント列を生成する。
アプリケーション142は、放送受信セグメント125の一部のセグメントをネットワーク受信セグメント126に置き換えたセグメント列、
a,b,(c),(d),e,f
上記セグメント列からなるメディアソース143の生成処理を実行する。
このメディアソース143は、図10に示すメディアソース110に相当する。
なお、図10に示す例では、メディアソース110には様々なビットレートのデータが混在するものとして説明したが、図11に示す例では、説明を簡略化するため、すでに出力予定の1つのビットレートが決定されており、そのビットレートのセグメントに対する処理を行うものとして説明する。
このように、アプリケーション142は、放送受信セグメント125の一部のセグメントをネットワーク受信セグメント126に置き換えたメディアソース143の生成処理を実行する。
その後、メディアソース143は、データの種類に応じて振り分けられ、画像対応ソースバッファ144と、音声対応ソースバッファ145が生成される。
画像対応ソースバッファ144は、画像デコーダ134によってデコードされ、画像表示部135に表示される。
音声対応ソースバッファ145は、音声デコーダ136によってデコードされ、音声出力部137に出力される。
この結果として再生されるセグメントが図に示す再生セグメント127であり、放送受信セグメント125の一部のセグメントがネットワーク受信セグメント126に置き換えて再生される。
例えば図8に示す時間t0〜t3の一連のデータ表示が実行される。
図11を参照して説明したアプリケーション142によって実行される放送受信セグメント125とネットワーク受信セグメント126との合成処理は、先に図10を参照して説明したMSE(Media Source Extentions)−APIを利用して実行される。
このAPIの処理アルゴリズムは例えば、以下のアルゴリズムとなる。
<script>
var video=document.getElementById('v');
var mediaSource=new MediaSource();
mediaSource.addEventListener('sourceopen',onSourceOpen.bind(this, video));
video.src=window.URL.createObjectURL(mediaSource);
var videoSourceBuffer=mediaSource.addSourceBuffer('video/mp4;codecs="avc1.4d401f"');
var audioSourceBuffer=mediaSource.addSourceBuffer('audio/mp4;codecs="mp4a.40.2"')
</script>
上記のAPIの処理の概要は以下の通りである。
(S1)新規のメディアソース143を作成する。
(S2)メディアソース143対応のビデオソースバッファ144と、オーディオソースバッファ145を追加し、HTML5のビデオオブジェクトにメディアバッファを設定する。
アプリケーション142は、これらのAPI処理によって生成されたメディアソース143、ビデオソースバッファ144、オーディオソースバッファ145に上述した合成セグメントを設定する処理を行なう。
しかし、図11を参照して説明したセグメント合成処理において、問題となるのが再生遅延である。具体的には、例えばネットワーク受信コンテンツの表示タイミングが、規定の時間より遅れてしまう場合があるということである。特にライブイベントの番組コンテンツやチャンネル切り替え場合にこの遅延の問題が大きい。
これは、図11を参照して説明した一連の合成処理に時間を要してしまうということが大きな要因である。
特に、以下の処理の処理時間が遅延の要因として考えられる。
(a)放送受信セグメント125のHTTPサーバ133に対する格納と、アプリケーション142によるHTTPサーバ133からのセグメント単位の読み込み処理
(b)アプリケーション142によるメディアソース143へセグメントデータの置き換えや追加する処理、
これらの一連の処理が遅延を発生させる大きな要因であると考えられる。
(a)の処理は、前述したように、放送受信セグメント125は、HTTPサーバ133に一旦、格納され、その後、アプリケーション142が、HTTPサーバ133に格納された放送受信セグメント125を、XHR(XMLHttpRequest)141によってセグメント単位で読み込む処理である。
(b)の処理は、アプリケーション142が、放送受信セグメント125の一部のセグメントをネットワーク受信セグメント126に置き換えてメディアソース143を生成する処理である。
これらの処理には、所定の時間を要するため、再生遅延が避けられない状況となっていると考えられる。
さらに、アプリケーション142は、番組切り替えやチャンネル切り替え時に切り替えることが必要となる場合が多く、このアプリケーション切り替え処理時間も、さらに遅延を大きくする要因となる。HTTPサーバ133の代わりに、WebSocketサーバを利用して、アプリケーション125がWeb Socket APIによってプッシュ型のデータ送受信をすることで遅延を低減する方法も考えられるが、最低でも一つのセグメントを受信して、送信するという処理に要する時間は低減することができない。
[6.放送波とネットワーク双方の受信データの合成処理における遅延を解消または減少させた実施例について]
次に、放送波とネットワーク双方の受信データの合成処理における遅延を解消または減少させた実施例について説明する。
図12は、本開示の受信装置(クライアント)30における合成処理、すなわち放送波の受信データの一部を、ネットワーク受信データに置き換えて出力する処理を説明する図である。
なお、図12に示す処理も図11と同様、放送波の受信データの一部をネットワーク受信データに置き換えて出力する場合の処理、すなわち、図8を参照して説明したデータ置き換え処理を行なう場合の処理例である。
受信装置(クライアント)30は、放送サーバ21からの放送波を、アンテナ131を介して受信する。
さらに、データ配信サーバ22からデータ受信を行う。
アンテナ131を介して受信するデータを放送受信セグメント125、
データ配信サーバ22からの受信データをネットワーク受信セグメント126とする。
放送波セグメント125は、例えば映画等の番組コンテンツであり、ネットワーク受信セグメント126は、番組コンテンツの決められたタイミングに表示する広告コンテンツであるとする。
図に示す例では、放送受信セグメント125の一部セグメントa,b,c,d,e,fの6つのセグメントを示している。
一方、ネットワーク受信セグメント126として(c),(d)の2つのセグメントを示している。
なお、各セグメントは、各セグメント単位で復号可能な例えばMPEG圧縮されたデータ(MP4データ)である。
データの置き換えはセグメント単位で実行する。
ネットワーク受信セグメントである2つの広告セグメント(c),(d)を、放送受信セグメント125のセグメントa,b,c,d,e,f中のセグメントc,dと置き換えて出力する。
すなわち、受信装置30における出力コンテンツを以下のセグメント列とする。
a,b,(c),(d),e,f
上記セグメント列中、セグメントa,b,e,fは、放送受信セグメントであり、セグメント(c),(d)は、ネットワーク受信セグメントである。
受信装置30は、ブラウザ(HTML5ブラウザ)210を有し、ブラウザ210上でアプリケーション(Web application(JavaScript(登録商標))212を実行する。
このアプリケーション212が放送受信セグメント125と、ネットワーク受信セグメント126との合成処理を行なう、
この図12に示す構成では、放送受信セグメント125は、そのままメディアソース213として構成される。
先に図11を参照して説明した構成では、放送受信セグメント125は、受信装置に設定されるプロキシサーバとしてのHTTPサーバ133に一旦、格納され、その後、アプリケーションによるサーバからのセグメント単位の読み出しが実行されていた。
この図12に示す構成では、放送受信セグメント125に対するHTTPサーバに対する格納処理や読み出し処理が実行されず、放送受信セグメント125は、そのままメディアソース213として構成される。
この時点で、メディアソース213は、図に示すセグメント列(1)のように、放送受信セグメント、a,b,c,d,e,fによって構成される。つまり、放送受信セグメントはアプリケーション212が実行されているか否かに関わらず、画像デコーダ、音声デコーダに送られ、再生されている。
その後、アプリケーション212は放送波で伝送されたシグナリングにより放送の番組に連動して起動され、ネットワーク受信セグメント126であるセグメント(c),(d)のみを取得し、このネットワーク受信セグメント(c),(d)を、放送受信セグメント、a,b,c,d,e,fのみによって構成されたメディアソース213の一部のセグメントc,dと置き換える処理を実行する。
すなわち、アプリケーション212は、放送受信セグメント、a,b,c,d,e,fのみによって構成されたメディアソース(1)更新処理を実行して、更新されたメディアソース(2)、すなわち、
a,b,(c),(d),e,f
上記セグメント列からなるメディアソース(2)となるように制御する。。
このように、アプリケーション212は、放送受信セグメント列のみからなるメディアソースの構成セグメントの一部をネットワーク受信セグメントに置き換えるメディアソース更新処理の制御を実行する。
この具体的処理については、後段で説明する。
その後、
a,b,(c),(d),e,f
上記セグメント列を有するメディアソース(2)213は、データの種類に応じて振り分けられ、画像対応ソースバッファ214と、音声対応ソースバッファ215が生成される。
画像対応ソースバッファ214は、画像デコーダ221によってデコードされ、画像表示部222に表示される。
音声対応ソースバッファ215は、音声デコーダ223によってデコードされ、音声出力部224に出力される。
この結果として再生されるセグメントが図に示す再生セグメント225であり、放送受信セグメント125の一部のセグメントがネットワーク受信セグメント126に置き換えて再生される。
例えば図8に示す時間t0〜t3の一連のデータ表示が実行される。
図12を参照して説明したアプリケーション212によって実行される放送受信セグメント125とネットワーク受信セグメント126との合成処理は、先に図10を参照して説明したMSE(Media Source Extentions)−APIをベースとして改良した新API(Application Programming Interface)を利用して実行される。
この新APIの処理アルゴリズムは例えば、以下のアルゴリズムとなる。
<script>
var video=document.getElementById('v');
var tuner=navigator.tv.currentTuner();
var mediaSource=.tuner.getMediaSource();
mediaSource.addEventListener('sourceopen',onSourceOpen.bind(this,video));
video.src=window.URL.createObjectURL(mediaSource);
var videoSourceBuffer=mediaSource.sourceBuffers[0];
var audioSourceBuffer=mediaSoorce.sourceBuffers[1];
</script>
上記の新APIの処理の概要は以下の通りである。
(S1)通信部(チューナー)202受信セグメント格納用のメディアソース213を取得し、アプリケーション142による参照を可能な設定とする。
(S2)メディアソース213対応のビデオソースバッファ214と、オーディオソースバッファ215を取得し、アプリケーション142による参照を可能な設定とする。メディアソース213は、HTML5のビデオオブジェクトに設定する。
アプリケーション142は、これらのAPI処理によって参照可能となったメディアソース212、ビデオソースバッファ214、オーディオソースバッファ215を参照して、これらのオブジェクトに格納されている通信部(チューナー)202受信セグメントに対して、ネットワーク受信セグメントによるセグメント置き換えの制御を実行する。
このように、アプリケーション142は、新APIの処理によって参照可能となった放送受信セグメント用のメディアソースと、ソースバッファに対する放送受信セグメントのデータ格納状況を確認して、置き換え対象の放送受信セグメントがバッファに格納されていることを確認すると、広告コンテンツの再生コンテンツを挿入する時間位置の放送受信セグメントをネットワーク受信セグメントに置き換える処理を実行する。
図12を参照して説明した処理例では、放送受信メディアセグメントはアプリケーションで処理されないため、先に図11を参照して説明した再生遅延の要因が解消される。
すなわち、以下の処理の処理時間が不要となるため、処理遅延が解消される。
(a)放送受信セグメントのHTTPサーバに対する格納と、アプリケーションによるHTTPサーバからのセグメント単位の読み込み処理
(b)アプリケーションによるメディアソースへの放送受信セグメントの置き換えや追加処理
図12を参照して説明した処理例では、これらの一連の遅延発生要因となる処理が不要となり、この結果再生遅延を解消することができる。
図12に示す処理構成では、放送受信セグメント125は、そのままメディアソース213として設定されるので、放送受信セグメント125のHTTPサーバへの格納処理や、アプリケーションによる読み込み処理が不要となる。また、アプリケーションによるメディアソースの生成処理も不要となる。
また、アプリケーションは、番組切り替えやチャンネル切り替え時に切り替えることが必要となるが、放送受信セグメントによって構成されるメディアソースは、アプリ切り替えと無関係に生成されるのでのアプリケーション切り替え処理時間によって、メディアソース生成の遅延や、アプリケーションの切り替え時に放送セグメントの再生が中断される問題は発生しない。
図12に示すアプリケーション212の実行するメディアソース更新処理の詳細について、図13を参照して明する。
図13には、以下の3つのデータを時系列(左から右に時間が経過)に示している。
(A)アプリケーション受信セグメント(ネットワーク受信セグメント)
(B)チューナー受信セグメント(放送受信セグメント)
(C)デコーダ入力セグメント(出力セグメント)
時間軸として、以下の2つの時間軸を示している。
下段に放送時間軸(WallClock(UTC))
上段にHTML5ビデオオブジェクト時間軸(CurrentTime)
放送時間軸(WallClock(UTC))は、放送サーバ21が、放送波を介して送信するデータの時間管理に適用する時間を示す時間軸(受信映像音声再生時間軸)である。
ここでは、いわゆる実時間情報に相当するウォールクロック(WallClock(UTC))を適用した例を示す。
放送波を介して受信する放送受信セグメントには、放送時間軸(WallClock(UTC))に従ったタイムスタンプが設定されている。
一方、HTML5ビデオ時間軸(CurrentTime)は、アプリケーション212の処理時間や、アプリケーション212による生成データの管理用の時間を規定したアプリケーション時間軸(アプリケーションメディア再生時間軸)である。
アプリケーション212は、HTML5ビデオ時間軸(CurrentTime)に従って処理を実行する。
図13において、HTML5ビデオ時間軸(CurrentTime)上の各時間t3h〜t5hは、HTML5ビデオ時間軸(CurrentTime)上の時間であることを示すため(h)を付記している。
以下、各時間軸に示すt1〜t5、t3h〜t5hにおける処理について、順次、説明する。
(時間t1)
まず、時間t1において、受信装置は、チューナー選局を行う。例えばユーザの選択した特定のチャンネルの番組の受信を開始する。
チューナーによる番組受信の開始に併せて、
(B)チューナー受信セグメント(放送受信セグメント)が、放送サーバ21から送信され、受信装置30において順次、受信される。
この時点では、アプリケーション212によるセグメントの合成処理は開始されておらず、
(B)チューナー受信セグメント(放送受信セグメント)
は、そのまま、
(C)データコーダ入力セグメント(出力セグメント)
として設定され、チューナー受信セグメント(放送受信セグメント)がデコードされて出力(表示、音声出力)される。
(時間t2)
時間t2において、チューナー受信番組に対応して設定されたアプリケーション(HTML5アプリ)212が起動する。
アプリケーション212の起動は、例えばチューナー受信番組、またはそのメタデータに含まれるトリガー情報に基づいて実行される。
ユーザによるアプリケーション起動指示に基づいて起動する設定も可能である。
(時間t3(=t3h))
時間t3は、時間t2におけるアプリケーション起動後、アプリケーション212による処理が開始可能となった時間である。
アプリケーション212は、この処理可能開始時間を、HTML5ビデオ時間軸の起点(currentTime=0)に設定され、HTML5ビデオ時間軸のCurrentTimeはチューナー受信番組の再生とともに更新される。。
アプリケーションの処理タイミングは、HTML5ビデオ時間(currentTime)に基づいて決定される。
時間t3(t3h=CurrentTime=0)において、アプリケーション212は、処理対象オブジェクトとしてメディアソースやソースバッファを確保する。
これは、先に図12を参照して説明した新APIの処理によって行われる。前述したように、新APIの処理は以下の通りである。
(S1)通信部(チューナー)202受信セグメント格納用のメディアソース213を取得し、アプリケーション142による参照を可能な設定とする。
(S2)メディアソース213対応のビデオソースバッファ214と、オーディオソースバッファ215を取得し、アプリケーション142による参照を可能な設定とする。
これらのAPI処理によって、アプリケーション212は、メディアソースやソースバッファを参照して、バッファ状況の確認に基づく処理が可能となる。
なお、図12に示すメディアソース213、ソースバッファ214,215は、アプリケーション212による処理対象となるオブジェクトであり、具体的には、受信装置30の記憶部(バッファ)に格納される放送受信セグメント列に相当する。
ビデオソースバッファ214は、受信装置30の記憶部(バッファ)に格納されるビデオデータのみからなるセグメント列に相当する。
オーディオソースバッファ215は、受信装置30の記憶部(バッファ)に格納されるオーディオデータのみからなるセグメント列に相当する。
メディアソース213は、受信装置30の記憶部(バッファ)に格納されるビデオデータとオーディオデータを含む放送受信セグメント列に相当する。
この時間t3(=t3h)以降、アプリケーション212は、メディアソース213、ソースバッファ214,215(記憶部内に格納される放送受信セグメント列)を参照し、様々な処理を行なうことが可能となる。
アプリケーションは、まず、時間t3(=t3h)以降、新たにメディアソース213に設定されたチューナー受信セグメント、すなわち、受信装置30の記憶部(バッファ)に新たに格納された放送受信セグメントに設定されたタイムスタンプを取得する。
図に示す例では、セグメント[Seg(tuner1)]が、時間t3(=t3h)以降に最初にメディアソース213に入力したチューナー受信セグメントである。
アプリケーション213は、このセグメント[Seg(tuner1)]に設定されたタイムスタンプを取得する。
放送受信セグメントには、放送時間系のタイムスタンプ、すなわちウォールクロック(WallClock(UTC))に従ったタイムスタンプが設定されている。
アプリケーションは、このタイムスタンプ(WallClock(UTC))を用いて、放送時間軸(WallClock(UTC))と、HTML5ビデオ時間軸(currentTime)との差分(時間オフセット)である放送タイムオフセット(broadcastTimeOffset)を算出する。
すなわち、時間t3(=t3h)以降に最初にメディアソース213に入力したチューナー受信セグメント[Seg(tuner1)]に設定されたタイムスタンプの示す時間を、放送タイムオフセット(broadcastTimeOffset)とする。
具体例として、セグメント[Seg(tuner1)]に設定されたタイムスタンプが、
UTC2014年10月3日午前7時3分40秒
であったとする。
この場合、アプリケーションは、放送タイムオフセット(broadcastTimeOffset)を上記時間に設定する。すなわち、
broadcastTimeOffset=UTC2014年10月3日午前7時3分40秒
とする。
この時間オフセットは、放送時間軸(WallClock(UTC))と、HTML5ビデオ時間軸(currentTime)との差分(時間オフセット)に相当する。
すなわち、時間t3(=t3h)において、
HTML5ビデオ時間:currentTime=0、
放送時間:WallClock(UTC)=014年10月3日午前7時3分40秒
であり、
時間オフセット:broadcastTimeOffset=UTC2014年10月3日午前7時3分40秒は、放送時間軸(WallClock(UTC))と、HTML5ビデオ時間軸(currentTime)との差分(時間オフセット)に相当する。
なお、上述した時間オフセット算出処理例は、アプリケーション212の処理対象オブジェクトであるメディアソース、すなわちメディアソースとしての記憶部に格納された放送受信セグメントのタイムスタンプを用いて算出する処理例であリ、前述した新API(MSE−API)によってメディアソースから取得するデータをそのまま利用することができる。
すなわち、APIによる時間オフセット情報の取得処理として実行することが可能である。
また、時間オフセット情報の取得処理は、その他のオブジェクトから取得することも可能である。例えば、メディアソース以外のアプリケーションの処理オブジェクトとして設定可能な通信部(チューナー)202や、ビデオデータ等のオブジェクトを介したオフセット情報の取得または算出を行う構成としてもよい。
(時間t4h)
その後、アプリケーションは、時間t4hにおいて、ネットワークを介した合成用セグメントの受信を開始する。すなわち、放送受信セグメントに置き換えて出力するための例えば広告コンテンツ等からなるネットワーク受信セグメントの受信処理を開始する。
なお、ネットワークを介した合成用セグメントの受信開始時間t4hは、ネットワーク受信セグメント(広告:Ad)の出力開始時間t5(BroadcastAdStartTime)(=t5h=VideoAdStartTime)から予め規定した時間[マージン(Margin)]前の時間とする。
マージンは、例えば、インターネットを介したデータ取得に必要な時間等によって決定することができる。
アプリケーション212は、ネットワークを介した合成用セグメントの受信開始時間t4hを、以下の式によって算出する。
t4h=VideoAdStartTimeBefore
=t5h−Margin
=VideoAdStarttime−Margin
=t5−broadcastTimeOffset
=BroadcastAdStartTime−broadcastTimeOffset
なお、上記式において、
t4h:VideoAdStartTimeBefore
t5h:VideoAdStarttime
Margin
これらの時間は、HTML5ビデオ時間軸(currentTime)に従った時間情報である。
t5:BroadcastAdStartTime
この時間は、放送時間軸(WallClock(UTC))に従った時間情報である。
なお、アプリケーション212は、(広告:Ad)の出力開始時間t5(BroadcastAdStartTime)について、コンテンツ(番組)の属性情報(メタデータ)から取得することが可能である。
また、
broadcastTimeOffset
は、時間t3(=t3h)において算出した時間オフセットであり、
broadcastTimeOffset=UTC2014年10月3日午前7時3分40秒
である。
アプリケーション212は、ネットワークを介した合成用セグメントの受信開始時間t4hを、これらの各データを用いて算出する。
この時間t4h以降、アプリケーション212は、ネットワークを介して、ネットワーク受信セグメント(広告:Ad)を順次、受信する。
図13に示すセグメントSa1〜Sa5である。
アプリケーションは、これらのネットワーク受信セグメントSa1〜Sa5を、チューナー受信セグメントS1〜S5の位置に設定する処理を実行する。
すなわち、チューナー受信セグメントS1〜S5をネットワーク受信セグメントSa1〜Sa5に置き換える処理を行なう。
アプリケーション212は、前述した新API(新MSE−API)の処理によって参照可能とされたメディアソース213、ソースバッファ214,215に格納された放送受信セグメントの格納状況を確認してセグメント置き換え処理を実行する。
このセグメント置き換え処理は、置き換え後のネットワーク受信セグメントの出力に間に合うように実行すればよい。
例えば、ネットワーク受信セグメントSa1は、チューナー受信セグメントS1の位置に置き換えて設定され、チューナー受信セグメントS1の出力時間(t5)に出力される。
従って、ネットワーク受信セグメントSa1の置換処理は、広告開始時間t5(=BroadcastAdStartTime=2014年10月3日午前7時16分20秒)までに完了しておくことが必要となる。
図13に示す例では、時間t5h(=t5)が、広告開始時間である。
この時間は、ソースバッファのセグメント(S1)が出力される時間であり、この時間(t5)のタイムスタンプの設定されたセグメント(S1)を置換対象セグメント列の開始位置として、ネットワーク受信セグメントSa1から順次、置き換えればよい。
アプリケーションは、この処理のために、放送時間系であるウォールクロック(WallClock(UTC))に従った広告開始時間t5(=BroadcastAdStartTime=2014年10月3日午前7時16分20秒)を、アプリケーションの時間軸[HTML5ビデオ時間軸(currentTime)]における時間t5h(VideoAdStartTime)に変換する。
変換処理は以下の式に従って実行される。
t5h(VideoAdStartTime)
=t5−(broadcastTimeOffset)
=(BroadcastAdStartTime)−(broadcastTimeOffset)
=(2014年10月3日午前7時16分20秒)−(2014年10月3日午前7時3分40秒)
=12分40秒
なお、上記式において、
t5h:VideoAdStarttime
この時間は、HTML5ビデオ時間軸(currentTime)に従った時間情報である。
t5:BroadcastAdStartTime
この時間は、放送時間軸(WallClock(UTC))に従った時間情報である。
なお、アプリケーション212は、(広告:Ad)の出力開始時間t5(BroadcastAdStartTime)について、コンテンツ(番組)の属性情報(メタデータ)から取得することが可能である。
また、記憶部(バッファ)に格納された放送受信セグメントS1のタイムスタンプから取得することも可能である。
セグメントS1には出力時間を示すタイムスタンプとして、放送時間系であるウォールクロック(WallClock(UTC))に従った広告開始時間t5(=BroadcastAdStartTime=2014年10月3日午前7時16分20秒)が設定されている。
また、上記式において、
broadcastTimeOffset
は、時間t3(=t3h)において算出した時間オフセットであり、
broadcastTimeOffset=UTC2014年10月3日午前7時3分40秒
である。
上記算出式によって算出された
12分40秒
は、HTML5ビデオ時間軸に従った時間(currentTime)、すなわちアプリケーション起動時間:t3h=0からの経過時間に相当する。
アプリケーションは、この算出時間、
currentTime=12分30秒までに、受信装置の記憶部(バッファ)に格納された放送受信セグメントS1をネットワーク受信セグメントSa1に置き換える処理を実行する。
アプリケーションは、HTML5ビデオ時間軸に従った時間(currentTime)に出力対象として設定されたソースバッファの放送受信セグメント、すなわちセグメントS1をネットワーク受信セグメントSa1に置き換える処理を実行する。
以降のセグメントS2〜S5についても、各セグメントに設定された出力時間を示すタイムスタンプの経過前に同様の処理を実行して、ネットワーク受信セグメントSa2〜Sa5に置き換える処理を実行する。
(時間t5h(=t5))
受信装置30の記憶部に格納された放送受信セグメントのセグメントS1〜S5は、アプリケーション212の処理によって、順次、ネットワーク受信セグメントSa1〜Sa5に置き換えられ、広告開始時間t5(=BroadcastAdStartTime=2014年10月3日午前7時16分20秒)以降、置き換え後のネットワーク受信セグメントSa1〜Sa5が、順次、出力される。
図13に示す(c)デコーダ入力セグメントは、置き換え後のセグメント列を示している。このセグメント列がデコーダに入力され、デコード処理後、表示部等の出力部に出力されることになる。
この処理によって、放送波受信セグメントの一部がネットワーク受信セグメントに置き換えられ、先に図8を参照して説明したようなデータ切り換え表示が可能となる。
すなわち、放送受信データである番組コンテンツを、所定タイミングでネットワーク受信データである広告コンテンツに切り替え、その後、再度、放送受信データである番組コンテンツに切り替えるデータ出力処理が可能となる。
時間t3h以後、アプリケーション212は、アプリケーション212の参照可能なオブジェクトに設定された図13(B)チューナー受信セグメント、すなわち記憶部(バッファ)に格納された放送受信セグメントを参照して、バッファされた放送受信セグメントの出力時間に相当するタイムスタンプを取得し、それぞれのタイムスタンプに至る前に、放送受信セグメントS1〜S5をネットワーク受信セグメントSa1〜Sa5に置き換える処理を完了させる。
記憶部(バッファ)に格納された放送受信セグメントは、前述の新APIの処理により、アプリケーション212による処理対象オブジェクトであるメディアソース213や、ソースバッファ214,215として設定され、アプリケーションは、バッファ状況を確認することが可能である。
アプリケーション212は、バッファされた放送受信セグメントS1〜S5のタイムスタンプを確認し、それぞれのタイムスタンブ設定時間までに、置換処理を完了させる。
なお、放送受信セグメントS1〜S5のタイムスタンプは、放送時間軸(WallClock(UTC))に従った時間情報である。
アプリケーション212は、タイムスタンブ設定時間を、前述の時間(t3h)において算出した時間オフセット:broadcastTimeOffset=UTC2014年10月3日午前7時3分40秒を考慮して、HTML5ビデオ時間軸(currentTime)に従った時間情報に変換する。
この変換処理によって、生成した時間に基づいて、各セグメントの置換処理を各セグメントの出力開始時間までに完了させる。
このように、アプリケーション212は、受信装置30の記憶部(バッファ)に格納された放送受信セグメントの一部をネットワーク受信セグメントによって置き換えるメディアソース更新処理を実行する。
この処理によって、放送波受信セグメントの一部がネットワーク受信セグメントに置き換えられ、先に図8を参照して説明したようなデータ切り換え表示が可能となる。
すなわち、放送受信データである番組コンテンツを、所定タイミングでネットワーク受信データである広告コンテンツに切り替え、その後、再度、放送受信データである番組コンテンツに切り替えるデータ出力処理が可能となる。
この実施例では、チューナー受信セグメントは、HTTPサーバへの格納、読み出し処理が行われず、直接、アプリケーション212の処理対象オブジェクトとしてのソースバッファとして設定される。
アプリケーション212は、ソースバッファのセグメントの置き換えを伴うソースバッファ更新処理によって、放送波受信セグメントのみからなるソースバッファの一部のセグメントを、ネットワーク受信セグメントに置き換える。
このソースバッファ更新処理は、HTTPサーバに対するデータ格納、読み出し処理に比較して極めて短時間の処理として実行することが可能であり、置き換えられたセグメントの出力を遅延なく実行することが可能となる。
[7.受信装置におけるデータ受信および合成処理に適用するハードウェア構成例について]
次に、図14を参照して受信装置におけるデータ受信および合成処理に適用するハードウェア構成例について説明する。
図14には、受信装置30において実行する以下の処理、すなわち、
(a)ネットワークおよび放送波を介したデータ受信処理、
(b)受信データに基づくデータ合成処理(セグメント合成処理)を実行して表示部等の出力部に出力するデータの生成処理、
これらの処理を実行する受信装置30のハードウェア構成例を示す図である。
図14に示すように、受信装置30は、
放送受信データ処理部310、ネットワーク受信データ処理部330、さらに。メタデータ(シグナリング)処理部321、バッファ管理部322、合成部341を有する。
放送受信データ処理部310は、チューナー311、記憶部(バッファ)312、デコーダ&レンダラー313を有する。
また、ネットワーク受信データ処理部330は、ネットワークI/F331、HTアプリケーション実行部(HTML5ブラウザ)332、グラフィックシステム(HTMLページ出力部)333を有する。
放送波を介して送信されるデータは、アンテナを介して放送受信データ処理部310のチューナー311によって受信される。受信データは、記憶部(バッファ)312に格納された後、デコーダ&レンダラー313において、デコード処理および描画処理がなされ、合成部341において、ネットワーク受信データ処理部の生成するHTMLページとの合成処理がなされて合成画像の出力が実行される。
ネットワークを介して送信されるデータは、ネットワーク受信データ処理部330のネットワークI/F331によって受信される。受信データは、アプリケーション実行部332に渡され、必要に応じて、前述した放送受信セグメントとの合成処理が行われる。
アプリケーション実行部332の生成したデータが、グラフィックスシステム(HTMLページ生成部)333に渡され、生成されたHTMLページが合成部341に出力される。
合成部341において、放送受信データ処理部の生成した出力データとの合成処理がなされて合成画像の出力が実行される。
ここで、アプリケーション実行部332が、前述した放送受信セグメントとネットワーク受信セグメントとの合成処理を行なう場合の処理例について説明する。
放送受信セグメントは、すべて記憶部(バッファ)312に格納される。
この記憶部(バッファ)312に格納された放送受信セグメントのバッファ格納情報は、バッファ管理部322を介してアプリケーション実行部332が取得することができる。
記憶部(バッファ)312の格納データは、図12に示すアプリケーション212の処理対象オブジェクトであるメディアソース213、ソースバッファ214,215を構成するデータである。
前述したように、アプリケーション212は、新APIの処理によって、記憶部(バッファ)312の格納データを参照することが可能となる。
図14に示すハードウェア構成では、アプリケーション実行部332は、バッファ管理部322を介してバッファ情報を取得する処理を実行する。
また、アプリケーション実行部332は、チューナー311を介して受信される各種のメタデータ(シグナリングデータ)をメタデータ(シグナリング)処理部321を介して取得することができる。
このメタデータ(シグナリング)には、例えば、先に図13を参照して説明した広告開始時間(t5)等の情報が含まれる。
アプリケーション実行部332は、バッファ管理部322を介して取得するバッファ情報、例えば、記憶部(バッファ)312に格納された放送受信セグメントのタイムスタンプ情報等を取得し、さらに、メタデータ(シグナリング)処理部321を介して例えば、先に図13を参照して説明した広告開始時間(t5)等の情報を取得する。
アプリケーション実行部212は、これらの情報を適用して、先に図13を参照して説明したセグメントの置き換え処理、すなわち、記憶部(バッファ)312に格納された放送受信セグメントの一部をネットワーク受信セグメントに置き換える処理をバッファ管理部322に指示して実行させる。
このハードウェア構成例によれば、放送受信セグメントのメディアソースのバッファリング情報はAPIとしては公開されているが、放送セグメント自体はソフトウェアで実装されたブラウザに伝送されることはなく、放送受信データ処理部で処理されるためハードウェア化できるため、ソフトウェアの負荷を低減できるため、高性能なCPUや大量のメモリを必要しない低コストな実装や低消費電力化の実装が可能である。
[8.受信装置の実行する処理のシーケンスについて]
次に、図15以下に示すフローチャートを参照して、受信装置30、および図12に示すアプリケーション212(=図14に示すアプリケーション実行部332)の実行する処理のシーケンスについて説明する。
まず、図15に示すフローチャートを参照して、受信装置30の実行する全体的な処理についてのシーケンスを説明する。
図15に示すフローは、例えば受信装置30の記憶部に記憶されたプログラムに従って、受信装置のプログラム実行機能を持つCPU等を備えたデータ処理部の制御の下に実行される。
以下、図15に示すフローの各ステップの処理について、順次、説明する。
(ステップS201)
まず、ステップS201において、受信装置30側のユーザによって受信チャンネルの選択がなされ、選択されたチャンネルのコンテンツ(番組)の受信処理と再生処理が開始される。
このコンテンツは、放送サーバ21の送信する放送波から取得される。
なお、受信装置30は、コンテンツ(番組)の受信に併せて、コンテンツ対応のアプリケーションや、コンテンツ対応の様々なメタデータを受信する。
(ステップS202)
次に、受信装置は、ステップS101において選択され、受信、再生を開始したコンテンツ(番組)に対応して設定されたアプリケーションを起動する。例えば図12に示すアプリケーション212である。
アプリケーションの起動は、例えばチューナー受信番組、またはそのメタデータに含まれるトリガー情報に基づいて実行される。
ユーザによるアプリケーション起動指示に基づいて起動する設定としてもよい。
(ステップS203)
次に、受信装置30は、起動したアプリケーションによる処理を実行する。具体的には、ネットワークを介して受信した広告コンテンツ等のネットワーク受信データを放送受信データに置き換え、あるいは重畳するデータ合成処理を実行する。
これは、先に図12〜図14を参照して説明した処理に相当する。
このステップS203のアプリケーション処理の詳細シーケンスについては、図16〜図17に示すフローチャートを参照して後段で説明する。
(ステップS204〜S205)
ステップS204は、チャンネル切り替えの有無判定処理である。
チャンネル切り替えが発生すると、ステップS205に進み、バングミ連動のアプリケーションは終了する。アプリケーション終了後、ステップS201に戻り、切り替え後のチャンネル対応のコンテンツ(番組)の受信、再生処理を開始する。
一方、ステップS204においてチャンネル切り替え無しの判定の場合は、ステップS206に進む。その他、チャンネル切り替えが発生していないい場合でも、先に示したように受信番組のメタデータに含まれるトリガー情報に基づいて、別のアプリケーションが起動される場合もある。
(ステップS206〜S207)
ステップS206は、ユーザによる受信装置30の電源オフ動作がなされたか否かの判定処理である。
電源がオフされた場合、ステップS207に進み、コンテンツ受信、再生を終了する。併せてアプリケーションの処理も終了する。
一方、電源がオフされていない場合は、ステップS203におけるアプリケーションの処理を継続して実行する。
次に、ステップS203において実行されるアプリケーション処理の詳細シーケンスについて、図16、図17に示すフローチャートを参照して説明する。
図16のフローのステップS301から、各ステップの処理の詳細について、順次、説明する。
なお、アプリケーションは、図12を参照して説明したアプリケーション212であり、具体的には、例えばブラウザ上で動作するHTML5アプリケーションである。
(ステップS301)
まず、アプリケーションは、ステップS301において、アプリケーションの処理対象(オブジェクト)としてHTML5ビデオオブジェクトを設定する。
これは、放送受信データとネットワーク受信データとの合成処理を可能とするための準備処理であり、アプリケーションの生成する合成データ用の処理オブジェクトとしてHTML5ビデオデータを設定する処理である。
(ステップS302)
次に、アプリケーションは、ステップS302において、アプリケーションの処理対象(オブジェクト)としてチューナーを設定する。図12に示す放送受信セラグメント125を受信する通信部(チューナー)202である。
これも、放送受信データとネットワーク受信データとの合成処理を可能とするための準備処理であり、放送受信データを受信する通信部(チューナー)202を処理対象(オブジェクト)に設定する処理である。CurrentTunerとあるのは、受信機が複数チューナーを搭載していた場合、テレビに表示されているチューナのオブジェクトを取得するという意味である。このチューナーオブジェクトはアプリケーションがチャンネル切り替えを指示するAPIとしても利用される。
なお、この処理は、前述した新APIを適用した処理として実行される。
前述した新API(MSE−API)の実行する処理アルゴリズム中の以下の処理に相当する。
tuner=navigator.tv.currentTuner();
(ステップS303)
次に、アプリケーションは、ステップS303において、ステップS320において処理対象オブジェクトに設定したチューナーオブジェクトから、チューナーメディアソースオブジェクトを取得する。
この処理は、図に示すメディアソース213の取得処理に相当する。
図12に示す通信部(チューナー)202は、放送サーバ21の送信する放送受信セグメント125を受信し、受信セグメントをメディアソースとして記憶部(バッファ)に格納された設定となる。ただし、ハードウェア構成として図14に示す様に、チューナーからの受信セグメントはアプリケーションの実行部に関わらず、記憶部(バッファ)312に放送受信セグメント125を格納し、デコーダ&レンダラ313を経て再生されている事になる。
アプリケーションは、この記憶部(バッファ)312に格納された放送受信セグメントのバッファリング情報を提供するアプリケーションの処理対象オブジェクトであるメディアソース、すなわち、図12に示すメディアソース213として取得する。
なお、この処理も、前述した新APIを適用した処理として実行される。
前述した新APIの実行する処理アルゴリズム中の以下の処理に相当する。
mediaSource=.tuner.getMediaSource();
(ステップS304)
次に、アプリケーションは、ステップS304において、ステップS301においてアプリケーションの処理対象オブジェクトに設定したHTML5ビデオオブジェクトに、ステップS303において取得したチューナーメディアソースオブジェクトを設定する。
すなわち、アプリケーションによる合成処理の準備処理として、放送ジュシンセグメントのみから構成されるメディアソースを、HTML5ビデオオブジェクトに設定する処理である。
これは、例えば、図13に示す(B)チューナー受信セグメントのセグメントS1等を含むセグメント列(=更新前メディアソース)をHTML5ビデオオブジェクトに設定する処理である。
なお、この処理も、前述した新APIを適用した処理として実行される。
前述した新APIの実行する処理アルゴリズム中の以下の処理に相当する。ただし、この処理は元のMSE APIで行われる処理と同じである。
video.src=window.URL.createObjectURL(mediaSource);
(ステップS305)
次に、アプリケーションは、ステップS305において、ステップS303において取得したチューナーメディアソースオブジェクトから、放送時間オフセットを取得する。
この時間オフセット取得処理は、先に図13を参照して説明した放送タイムオフセット(broadcastTimeOffset)の取得処理である。
チューナーメディアソースオブジェクトに含まれる放送受信セグメントには、放送時間系のタイムスタンプ、すなわちウォールクロック(WallClock(UTC))に従ったタイムスタンプが設定されている。
アプリケーションは、このタイムスタンプ(WallClock(UTC))を用いて、放送時間軸(WallClock(UTC))と、HTML5ビデオ時間軸(currentTime)との差分(時間オフセット)である放送タイムオフセット(broadcastTimeOffset)を決定する。
先に、図13を参照して説明したように、例えば、図13に示すセグメント[Seg(tuner1)]に設定されたタイムスタンプが、
UTC2014年10月3日午前7時3分40秒
であったとする。
この場合、アプリケーションは、放送タイムオフセット(broadcastTimeOffset)を上記時間に設定する。すなわち、
broadcastTimeOffset=UTC2014年10月3日午前7時3分40秒
とする。
この時間オフセットは、放送時間軸(WallClock(UTC))と、HTML5ビデオ時間軸(currentTime)との差分(時間オフセット)に相当する。
すなわち、時間t3(=t3h)において、
HTML5ビデオ時間:currentTime=0、
放送時間:WallClock(UTC)=014年10月3日午前7時3分40秒
であり、
時間オフセット:broadcastTimeOffset=UTC2014年10月3日午前7時3分40秒は、放送時間軸(WallClock(UTC))と、HTML5ビデオ時間軸(currentTime)との差分(時間オフセット)に相当する。
なお、上述した時間オフセット算出処理例は、アプリケーションの処理対象オブジェクトであるメディアソース、すなわちメディアソースとしての記憶部に格納された放送受信セグメントのタイムスタンプを用いて算出する処理例であリ、前述した新API(MSE−API)によってメディアソースから取得するデータをそのまま利用することができる。
すなわち、以下のAPIによる時間オフセット情報の取得処理として実行することが可能である。
broadcastTimeOffset = mediaSource.broadcastTimeOffset
また、時間オフセット情報の取得処理は、その他のオブジェクトから取得することも可能である。例えば、以下のようにメディアソース以外のアプリケーションの処理オブジェクトとして設定可能な通信部(チューナー)や、ビデオデータ等のオブジェクトを介したオフセット情報の取得または算出を行う構成としてもよい。
broadcastTimeOffset = navigator.tv.currentTuner().broadcastTimeOffset
broadcastTimeOffset = video.broadcastTimeOffset
(ステップS306)
次に、アプリケーションは、ステップS306において、ステップS303で取得したチューナーメディアソースオブジェクトから、ビデオ、オーディオの各ソースバッファを取得する。
ビデオソースバッファは、図12に示すソースバッファ214に相当し、オーディオソースバッファは、図12に示すソースバッファ215に相当する。
これらのソースバッファ214,215は、メディアソース213の一部の構成要素から構成されるオブジェクト、すなわちアプリケーションが処理可能なオブジェクトである。
これらは、受信装置30の記憶部(バッファ)に格納される放送受信セグメント列に相当する。
ビデオソースバッファ214は、図14に示す受信装置30の記憶部(バッファ)312に格納されるビデオデータのみからなるセグメント列に相当する。
オーディオソースバッファ215は、受信装置30の記憶部(バッファ)312に格納されるオーディオデータのみからなるセグメント列に相当する。
メディアソース213は、受信装置30の記憶部(バッファ)312に格納されるビデオデータとオーディオデータを含む放送受信セグメント列に相当する。
アプリケーションは、ステップS306において、ステップS303で取得したチューナーメディアソースオブジェクトから、ビデオ、オーディオの各ソースバッファを取得する。
なお、この処理も、前述した新APIを適用した処理として実行される。
前述した新APIの実行する処理アルゴリズム中の以下の処理に相当する。元のMSE APIではアプリケーションが新規にバッファを作成していたが、新APIではチューナーメディアソースオブジェクトは放送受信データに含まれるビデオ、オーディオの数やコーデックの種類に合わせてブラウザにより生成される
videoSourceBuffer=mediaSource.sourceBuffers[0];
audioSourceBuffer=mediaSoorce.sourceBuffers[1];
(ステップS307)
次に、アプリケーションは、ステップS307において、放送波を介して受信するメタデータ(シグナリングデータ)から、ネットワーク受信データ(例えばMP4広告からなるセグメント列)の挿入の開始時間(BroadcastAdStartTime)と、ネット受信セグメントファイルのURLリスト、セグメントファイルの数を取得する。
これは、図14に示すチューナー311から、メタデータ(シグナリング)処理部321を介してアプリケーション実行部332に至るデータ経路を介して実行される処理である。
放送サーバ21は、コンテンツ(番組)に併せて、様々なメタデータをシグナリングデータとして受信装置30に提供しており、受信装置30は、これらのメタデータをチューナー(図12の通信部(チューナー)202=図14のチューナー311))を介して受信する。
アプリケーションは、このメタデータ(シグナリングデータ)から、ネットワーク受信データ(例えばMP4広告からなるセグメント列)の挿入の開始時間(BroadcastAdStartTime)と、ネット受信セグメントファイルのURLリスト、セグメントファイルの数を取得する。これらの情報は、MPEG DASHのマニフェスト・ファイル(MPD:Media Presentation Description)を用いて記述することもでき、したがってアダプティブストリーミングによりコンテンツ再生することもできる。また、サービスワーカーをつかうことによって、広告コンテンツのセグメントを予め取得し、受信機の永続的キャッシュに保存しておくことで、ネットワークの帯域に影響されずに、放送番組と同等の高画質、高音質にて広告を再生することが可能である。
なお、ネットワークを介して受信し、放送データに合成するコンテンツには様々な種類があるが、例えば広告データの場合、提供地域やユーザに応じて異なる広告とする設定が可能である。いわゆるターゲット広告の設定が可能となる。
このような場合、受信装置やユーザの属性によって提供される広告動画は異なることになり、ネット受信セグメントファイルのURLリスト、セグメントファイルの数等は、受信装置毎に異なる設定となる場合がある。
(ステップS308〜S309)
次に、アプリケーションは、ステップS308において、ステップS301で処理対象として設定し、ステップS304でチューナーメディアソースを設定したHTML5ビデオオブジェクト、すなわち、放送受信セグメントのみによって構成されるHTML5ビデオオブジェクトのカレントタイム(currentTime)を取得する。カレントタイム(currentTime)は、アプリケーションの時間軸[HTML5ビデオ時間軸(currentTime)]に従った時間情報である。
さらに、ステップS309において、ネットワークを介して、ネットワーク受信セグメント、例えば広告コンテンツからなるMP4ファイルを格納したセグメントの受信を開始する。
このステップS308〜S309の処理は、先に図13を参照して説明した時間(t3h〜t4h)の処理に相当する。
すなわち、先に図13を参照して説明したように、アプリケーションは、ネットワークを介した合成用セグメントの受信開始時間t4hを、以下の式によって算出する。
t4h=VideoAdStartTimeBefore
=t5h−Margin
=VideoAdStarttime−Margin
=t5−broadcastTimeOffset
=BroadcastAdStartTime−broadcastTimeOffset
なお、上記式において、
t4h:VideoAdStartTimeBefore
t5h:VideoAdStarttime
Margin
これらの時間は、HTML5ビデオ時間軸(currentTime)に従った時間情報である。
t5:BroadcastAdStartTime
この時間は、放送時間軸(WallClock(UTC))に従った時間情報である。
なお、アプリケーションは、(広告:Ad)の出力開始時間t5(BroadcastAdStartTime)を、ステップS307においてコンテンツ(番組)の属性情報(メタデータ)から取得済みである。
また、
broadcastTimeOffset
は、ステップS305において算出した時間オフセットであり、
図13を参照して説明した例では、
broadcastTimeOffset=UTC2014年10月3日午前7時3分40秒
である。
アプリケーションは、ネットワークを介した合成用セグメントの受信開始時間(VideoAdStartTimeBefore)、すなわち、図13に示す時間t4hを、これらの各データを用いて算出する。
(ステップS310〜S311)
アプリケーションは、ステップS310において、HTML5ビデオ時間軸(currentTime)に従った時間(currentTime)が、ネットワークを介した合成用セグメントの受信開始時間(VideoAdStartTimeBefore)になったか否かを判定する。
時間になったと判定した場合は、ステップS311に進み、ネットワークを介した合成用セグメント、例えばMP4広告コンテンツを格納したセクメントの受信を開始する。
時間になっていない場合は、ステップS308に戻り、ステップS308〜S309の処理を繰り返す。
(ステップS312)
アプリケーションは、ステップS312において、ステップS311でネットワークを介して受信したネットワーク受信セグメント(例えばMP4広告)を、ビデオ、オーディオの各ソースバッファの(VideoAdStartTime)の位置に追加する処理を行なう。
アプリケーションの処理対象オブジェクトとして設定されたビデオ、オーディオの各ソースバッファに設定されたデータ(セグメント)は、すべてアプリケーションの時間軸[HTML5ビデオ時間軸(currentTime)]に従った処理を行なうオブジェクトとして設定される。
ネットワーク受信セグメントの追加位置を規定する(VideoAdStartTime)は、HTML5ビデオ時間軸(currentTime)]における時間である。これは、先に図13を参照して説明した時間(t5h)に相当する。
先に図13を参照して説明したように、時間(t5h=VideoAdStartTime)は、放送時間系であるウォールクロック(WallClock(UTC))に従った広告開始時間t5(=BroadcastAdStartTime)を利用して算出する。
算出処理は以下の式に従って実行される。図13を参照して説明した時間情報を適用して説明する。
t5h(VideoAdStartTime)
=t5−(broadcastTimeOffset)
=(BroadcastAdStartTime)−(broadcastTimeOffset)
=(2014年10月3日午前7時16分20秒)−(2014年10月3日午前7時3分40秒)
=12分40秒
なお、上記式において、
t5h:VideoAdStarttime
この時間は、HTML5ビデオ時間軸(currentTime)に従った時間情報である。
t5:BroadcastAdStartTime
この時間は、放送時間軸(WallClock(UTC))に従った時間情報である。
なお、アプリケーションは、(広告:Ad)の出力開始時間t5(BroadcastAdStartTime)をステップS307において、コンテンツ(番組)の属性情報(メタデータ)から取得済みである。
アプリケーションは、このようにして算出したHTML5ビデオ時間軸(currentTime)に従った時間情報である広告開始時間(VideoAdStartTime)の時間位置に、ステップS311でネットワークを介して受信したネットワーク受信セグメント(例えばMP4広告)を追加する処理を行なう。デコード&レンダラー313の処理による遅延のために実際はHTML5ビデオのCurrentTimeの値とチューナーのメディアソースのとのバッファに格納されているセグメントのバッファ範囲を示すBufferedプロパティーにはこの遅延分のズレが有有るので、より緻密なタイミング制御にはBufferedプロパティーの値を利用して、セグメントの置換処理を行うのが良い。
(ステップS313〜S314)
次に、アプリケーションは、ステップS313において、すべてのネットワーク受信セグメントの処理を完了したか否かを判定する。
処理が完了していない場合は、ステップS311に戻り、未処理セグメントについてステップS311以下の処理を実行する。
すべてのセグメントに対する処理が完了したと判定した場合は、ステップS314に進み、次のネット受信セグメント列(例えば次の広告)の処理のために、ステップS307に戻る。
以上、アプリケーションの実行する処理の詳細について、図16、図17に示すフローチャートを参照して説明した。
これらの説明から理解されるように、アプリケーションは、図14に示す受信装置30の記憶部(バッファ)に格納された放送受信セグメントの一部をネットワーク受信セグメントによって置き換えるメディアソース更新処理を実行する。
この処理によって、放送波受信セグメントの一部がネットワーク受信セグメントに置き換えられ、先に図8を参照して説明したようなデータ切り換え表示が可能となる。
すなわち、放送受信データである番組コンテンツを、所定タイミングでネットワーク受信データである広告コンテンツに切り替え、その後、再度、放送受信データである番組コンテンツに切り替えるデータ出力処理が可能となる。
本実施例では、チューナー受信セグメントは、先に図11を参照して説明したようなHTTPサーバへの格納、読み出し処理が行われない。
本実施例では、チューナー受信セグメントは、直接、アプリケーションの処理対象オブジェクトであるソースバッファとして設定される。
アプリケーションは、ソースバッファのセグメントの置き換えを伴うソースバッファ更新処理によって、放送波受信セグメントのみからなるソースバッファの一部のセグメントを、ネットワーク受信セグメントに置き換える。
このソースバッファ更新処理は、HTTPサーバに対するデータ格納、読み出し処理に比較して極めて短時間の処理として実行することが可能であり、置き換えられたセグメントの出力を遅延なく実行することが可能となる。
[9.サービスワーカー(SW)とアプリケーションを利用した処理例について]
上述したアプリケーションは、先に説明したサービスワーカー(SW)の管理アプリケーションとして設定することが可能となる。
サービスワーカー(SW)の管理アプリケーションとして設定することで、アプリケーションは、アプリケーションの提供されたコンテンツ(番組)終了後も、受信装置の記憶部に格納され、他の番組再生中や、ネットワークが接続されていないオフライン状態であっても任意のタイミングで実行することが可能となる。
サービスワーカー(SW)は、例えば放送波やネットワークを介して送信されるデータを選択的に取得する処理や、アプリケーションの起動タイミングを制御する処理などを実行する機能を有する。
このサービスワーカー(SW)とアプリケーションを組み合わせることで、例えば、以下のような処理を行なうことが可能となる。
(処理例1)
アプリケーションが、ユーザの視聴履歴を取得し、取得した視聴履歴情報をメタデータとしてサービスワーカー(SW)に通知する。
サービスワーカー(SW)は、メタデータ(視聴履歴情報)に基づいて、放送波によって送信される様々な種類の広告データから、ユーザの興味に適合した広告を選択取得する。
アプリケーションは、サービスワーカー(SW)がの選択的に取得した広告コンテンツの表示処理を実行する。
このような処理を行なうことで、ユーザの興味に一致した広告を集中的に提供することが可能となる。
(処理例2)
サービスワーカー(SW)が、事前に広告データと、その出力時間を記録したメタデータを取得し、受信装置の記憶部に格納しておく。
アプリケーションは、受信装置の記憶部に格納された広告データと、メタデータを取得して、メタデータに記録された出力時間に併せて取得した広告データを出力する処理を実行する。
サービスワーカー(SW)とアプリケーションを組み合わせることで、例えば、上記のような処理を行なうことが可能となる。
また、上述した実施例では、図8に示した置換表示により広告を表示する例を示したが、図7のように広告コンテンツを重畳する場合も容易に実現することが可能である。重畳表示する場合は、放送の受信データを格納したメディアソースに加え、重畳するネットワーク受信したデータを再生するメディアソースの2つのメディアソースを利用し、HTML5のビデオオブジェクトも2つ作成し、各々のメディアソースを設定する。
ネットワーク受信したデータを再生するメディアソースを通常のMSE−APIで作成する。本実施例で示したとおり、放送データのメディアソースが設定されたHTML5ビデオの時間軸と放送の時間軸を合わせることは可能であるので、ネットワーク受信のデータの再生するHTML5ビデオ時間軸を放送データのHTML5ビデオの時間軸合わせることができれば、放送時間の任意のタイミングにて広告コンテンツを重畳して表示させることが可能である。
具体的にはHTML5のビデオオブジェクトにはMediaGroupプロパティーが定義されており、複数のビデオ再生をCurrentTimeを同時に進む様に同期させることが可能である。重畳表示の場合は図16に示した設定のフローは、以下に示すJavaScript(登録商標)に従った処理として行よれる。
<script>
var videoTuner=document.getElementById('vTuner');
var tuner=navigator.tv.currentTuner();
var mediaSourceTuner=.tuner.getMediaSource();
mediaSourceTuner.addEventListener('sourceopen',onSourceOpen.bind(this,video));
videoTuner.src=window.URL.createObjectURL(mediaSourceTuner);
var videoSourceBufferTuner=mediaSourceTuner.sourceBuffers[0];
var audioSourceBufferTuner=mediaSourceTuner.sourceBuffers[1];
var videoAd=document.getElementById('vAd');
var mediaSourceAd=new MediaSource();
mediaSourceAd.addEventListener('sourceopen',onSourceOpen.bind(this, video));
videoAd.src=window.URL.createObjectURL(mediaSourceAd);
var videoSourceBufferAd=mediaSourceAd.addSourceBuffer('video/mp4;codecs="avc1.4d401f"');
var audioSourceBufferAd=mediaSourceAd.addSourceBuffer('audio/mp4;codecs="mp4a.40.2"')
videoTuner.mediaGroup = "SYNC";
videoAd.mediaGroup = "SYNC";
</script>
広告コンテンツのセグメントの追加処理は図17に示したフローは重畳表示でもほぼ、同じである。重畳表示ではアプリケーションは放送データのメディアソースではなく、ネットワークのメディアソース(mediaSourceAd)のソースバッファ(audioSourceBufferAd、videoSourceBufferAd)にネットワークから受信した広告のセグメントデータを広告開始時間の位置に挿入するのが違いである。
同じMediaGroupプロパティーの値を持つビデオオブジェクトのCurrentTimeは同期して進行し、同期しているいずれかのMediaSourceに再生位置のセグメントデータが格納されていた場合はCurrentTimeが更新され再生が継続するものとする。この場合はMediaSourceAdのソースバッファには広告区間の時間範囲のみセグメントデータを追加すれば良い。一方、MediaSoucerを設定せずにHTML5ビデオの同期をとる場合には、お互いのHTML5ビデオ時間軸の同期時間のオフセット(例、video.mediaGroupTimeOffset)を設定するようにHTML5ビデオを拡張することで実現できる。
[10.送信装置と受信装置の構成例について]
次に、通信装置である送信装置(サーバ)20と、受信装置(クライアント)30の装置構成例について、図18、図19を参照して説明する。
図18には、送信装置(サーバ)20と、受信装置(クライアント)30の構成例を示している。
送信装置(サーバ)20は、データ処理部751、通信部752、記憶部753を有する。
受信装置(クライアント)30は、データ処理部771、通信部772、記憶部773、入力部774、出力部775を有する。
データ処理部には通信データ処理部771a、再生処理部771bが含まれる。
送信装置(サーバ)20のデータ処理部751は、データ配信サービスを実行するための各種のデータ処理を実行する。例えばデータ配信サービスの構成データの生成や送信制御を行う。さらに、データ処理部751は、受信装置(クライアント)30に提供するアプリケーション、サービスワーカー(SW)、その他の様々なデータや、シグナリングデータの生成、送信処理を行う。
通信部752は、AVセグメントの他、アプリケーション、サービスワーカー(SW)、その他の様々なデータ、シグナリングデータ等の配信等の通信処理を行う。
記憶部753は配信対象とするAVセグメント、アプリケーション、サービスワーカー(SW)、アプリケーションによって利用されるデータ、シグナリングデータなどが格納される。
さらに、記憶部753は、データ処理部751の実行するデータ処理のワークエリアとして利用され、また各種パラメータの記憶領域としても利用される。
一方、受信装置(クライアント)30は、データ処理部771、通信部772、記憶部773、入力部774、出力部775を有する。
通信部772は、送信装置(サーバ)20から配信されるデータ、例えばAVセグメントやアプリケーション、サービスワーカー(SW)、アプリケーションによって利用されるデータ、シグナリングデータ等を受信する。
データ処理部771は、通信データ処理部771a、再生処理部771bを有し、例えば先に説明した実施例に従った処理等を実行する。
具体的には、アプリケーションや、API、さらに、サービスワーカー(SW)を利用したデータ処理等を実行する。
ユーザの指示コマンド、例えばチャンネル選択、アプリケーション起動、インストール等の様々なコマンドは入力部774を介して入力される。
再生データは表示部やスピーカ等の出力部775に出力される。
記憶部773はAVセグメント、サービスワーカー(SW)、アプリケーション、アプリケーションによって利用されるデータ、シグナリングデータなどが格納される。
さらに、記憶部773は、データ処理部771の実行するデータ処理のワークエリアとして利用され、また各種パラメータの記憶領域としても利用される。
図19は、送信装置20、受信装置30として適用可能な通信装置のハードウェア構成例を示している。
CPU(Central Processing Unit)801は、ROM(Read Only Memory)802、または記憶部808に記憶されているプログラムに従って各種の処理を実行するデータ処理部として機能する。例えば、上述した実施例において説明したシーケンスに従った処理を実行する。RAM(Random Access Memory)803には、CPU801が実行するプログラムやデータなどが記憶される。これらのCPU801、ROM802、およびRAM803は、バス804により相互に接続されている。
CPU801はバス804を介して入出力インタフェース805に接続され、入出力インタフェース805には、各種スイッチ、キーボード、マウス、マイクロホンなどよりなる入力部806、ディスプレイ、スピーカなどよりなる出力部807が接続されている。CPU801は、入力部806から入力される指令に対応して各種の処理を実行し、処理結果を例えば出力部807に出力する。
入出力インタフェース805に接続されている記憶部808は、例えばハードディスク等からなり、CPU801が実行するプログラムや各種のデータを記憶する。通信部809は、インターネットやローカルエリアネットワークなどのネットワークを介したデータ通信の送受信部、さらに放送波の送受信部として機能し、外部の装置と通信する。
入出力インタフェース805に接続されているドライブ810は、磁気ディスク、光ディスク、光磁気ディスク、あるいはメモリカード等の半導体メモリなどのリムーバブルメディア811を駆動し、データの記録あるいは読み取りを実行する。
なお、データの符号化あるいは復号は、データ処理部としてのCPU801の処理として実行可能であるが、符号化処理あるいは復号処理を実行するための専用ハードウェアとしてのコーデックを備えた構成としてもよい。
[11.本開示の構成のまとめ]
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、本明細書において開示した技術は、以下のような構成をとることができる。
(1) 受信装置の受信データのバッファ処理を、受信装置が実行するアプリケーションのメディア再生の処理オブジェクトであるメディアソースオブジェクトとして開示するデータ処理部を有する受信装置。
(2) 前記データ処理部は、API(Application Programming Interface)を適用して、前記受信データを前記メディアソースオブジェクトに設定し、アプリケーションが前記バッファの状態の取得やバッファに格納されている受信データの置き換え、または追加の処理を実行する(1)に記載の受信装置。
(3) 前記データ処理部は、前記アプリケーションによる処理時間を規定するアプリケーションのメディア再生時間軸と、前記受信データにおいて利用される映像音声再生時間軸の時間差に相当する時間オフセットを取得する(1)または(2)に記載の受信装置。
(4) 前記データ処理部は、前記アプリケーション、または前記APIの適用処理により、前記時間オフセットを取得する(3)に記載の受信装置。
(5) 前記アプリケーションは、
前記メディアソースオブジェクトに対する処理として、前記データ処理部に格納された受信データと、アプリケーション受信データとの合成処理を実行する(1)〜(4)いずれかに記載の受信装置。
(6) 前記アプリケーションは、
前記アプリケーションによる処理時間を規定するアプリケーションメディア再生時間軸と、前記受信データにおいて利用される映像音声再生時間軸の時間差に相当する時間オフセットを取得し、取得した時間オフセットを利用して、前記受信データに対する前記アプリケーションが受信したデータの挿入時間位置を決定する(5)に記載の受信装置。
(7) 前記アプリケーションは、
前記時間オフセットを利用して、前記アプリケーション受信データの受信開始時間を決定する(6)に記載の受信装置。
(8) 前記アプリケーションは、
前記受信データを構成するセグメントを、前記アプリケーション受信データを構成するセグメントに置き換えるセグメント置換処理を実行する(5)〜(7)いずれかに記載の受信装置。
(9) 受信装置において利用されるアプリケーションを送信する通信部を有し、
前記アプリケーションは、受信装置における受信データのバッファ処理を開示するメディアソースオブジェクトを利用して、受信データとアプリケーションの受信データとの合成処理を実行させるアプリケーションである送信装置。
(10) 前記アプリケーションを実行する受信装置は、API(Application Programming Interface)を適用して、前記受信データを前記メディアソースオブジェクトに設定する処理を実行し、
前記アプリケーションは、前記APIによって設定されたメディアソースオブジェクトを利用した処理を実行するアプリケーションである(9)に記載の送信装置。
(11) 受信装置において実行するデータ処理方法であり、
前記受信装置のデータ処理部が、受信データを受信装置が実行するアプリケーションのメディア再生の処理オブジェクトであるメディアソースオブジェクトに設定するデータ処理方法。
(12) 送信装置において実行するデータ処理方法であり、
送信装置の通信部が、受信装置において利用されるアプリケーションを送信し、
前記アプリケーションは、受信装置における受信データのバッファ処理を開示するメディアソースオブジェクトを利用して、受信データとアプリケーションの受信データとの合成処理を実行させるアプリケーションであるデータ処理方法。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
また、実施例においては放送からブロードバンド受信した番組コンテンツのセグメントにネットワークから受信した広告コンテンツのセグメントで置き換えることを示したが、受信経路については限定するものではなく、番組コンテンツ、広告コンテンツの双方をネットワーク経由で受信する場合は、もしくは、双方を放送経由で受信する場合でも適応することが可能である。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本開示の一実施例の構成によれば、放送受信データとネットワーク受信データの合成処理を効率的に実行する装置、方法が実現される。
具体的には、例えば受信装置が通信部を介して受信する放送受信データを、API(Application Programming Interface)を適用して、受信装置の実行するアプリケーションの処理オブジェクトであるメディアソースオブジェクトに設定する。アプリケーションは、メディアソースオブジェクトに対する処理として、前記放送受信データと、ネットワークを介して受信するネットワーク受信データとの合成処理を実行する。アプリケーションは、API適用処理によってアプリケーション時間軸と放送時間軸の時間差に相当する時間オフセットを取得し、高精度、低遅延のデータ合成処理を実行する。
本構成により、放送受信データとネットワーク受信データの合成処理および出力処理を低遅延、高精度に行うことが可能となる。これにより放送された番組コンテンツに対してネットワークからの広告コンテンツを挿入することが容易となり、放送サービスとインターネットサービスの融合が進むことが期待される。
10 通信システム
20 送信装置
21 放送サーバ
22 データ配信サーバ
30 受信装置
31 TV
32 PC
33 携帯端末
50 シグナリングデータ
60 AVセグメント
70 その他のデータ
90 受信装置内表示制御部
91 表示処理部
92 サービスワーカー(SW)
93 キャッシュ
95,96 Webページ
101 高ビットレートデータ
102 中ビットレートデータ
103 低ビットレートデータ
104 マニフェスト・ファイル
105 再生データ
110 メディアソース
111〜113 ソースバッファ
114 トラックバッファ
125 放送受信セグメント
126 ネットワーク受信セグメント
127 再生セグメント
131 アンテナ
132 通信部(チューナー)
133 HTTPサーバ
134 画像デコーダ
135 画像表示部
136 音声デコーダ
137 音声出力部
140 ブラウザ
141 XHR
142 アプリケーション
143 メディアソース
144,145 ソースバッファ
201 アンテナ
202 通信部(チューナー)
210 ブラウザ
212 アプリケーション
213 メディアソース
214,215 ソースバッファ
221 画像デコーダ
222 画像表示部
223 音声デコーダ
224 音声出力部
225 再生セグメント
310 放送受信データ処理部
311 チューナー
312 記憶部(バッファ)
313 デコーダ&レンダラー
321 メタデータ(シグナリング)処理部
322 バッファ管理部
330 ネットワーク受信データ処理部
331 ネットワークI/F
332 アプリケーション実行部
333 グラフィックシステム
341 合成部
751 データ処理部
752 通信部
753 記憶部
771 データ処理部
772 通信部
773 記憶部
774 入力部
775 出力部
801 CPU
802 ROM
803 RAM
804 バス
805 入出力インタフェース
806 入力部
807 出力部
808 記憶部
809 通信部
810 ドライブ
811 リムーバブルメディア

Claims (12)

  1. 受信装置の受信データを、受信装置が実行するアプリケーションの読み込み処理を経ずに、前記アプリケーションのメディア再生の処理オブジェクトであるメディアソースオブジェクトとして設定するデータ処理部を有する受信装置。
  2. 前記データ処理部は、API(Application Programming Interface)を適用して、前記受信データを前記メディアソースオブジェクトに設定し、アプリケーションは、前記受信データが記憶されたバッファの状態の取得やバッファに格納されている受信データの置き換え、または追加の処理を実行する請求項1に記載の受信装置。
  3. 前記データ処理部は、前記アプリケーションによる処理時間を規定するアプリケーションのメディア再生時間軸と、前記受信データにおいて利用される映像音声再生時間軸の時間差に相当する時間オフセットを取得する請求項1に記載の受信装置。
  4. 前記アプリケーションは、
    前記メディアソースオブジェクトに対する処理として、前記データ処理部に格納された受信データと、アプリケーション受信データとの合成処理を実行する請求項1に記載の受信装置。
  5. 前記受信データは放送コンテンツデータであり、
    前記アプリケーション受信データは通信コンテンツデータであり、
    前記データ処理部は、前記通信コンテンツデータの属性情報を記述したマニフェスト・ファイルを受信し、
    前記アプリケーションは、前記放送コンテンツデータに連動して起動され、前記マニフェスト・ファイルに基づいて、前記通信コンテンツデータをセグメント単位で受信する請求項4に記載の受信装置。
  6. 前記アプリケーションは、
    前記アプリケーションによる処理時間を規定するアプリケーションメディア再生時間軸と、前記受信データにおいて利用される映像音声再生時間軸の時間差に相当する時間オフセットを取得し、取得した時間オフセットを利用して、前記受信データに対する前記アプリケーションが受信したデータの挿入時間位置を決定する請求項4に記載の受信装置。
  7. 前記アプリケーションは、
    前記時間オフセットを利用して、前記アプリケーション受信データの受信開始時間を決定する請求項6に記載の受信装置。
  8. 前記アプリケーションは、
    前記受信データを構成するセグメントを、前記アプリケーション受信データを構成するセグメントに置き換えるセグメント置換処理を実行する請求項4に記載の受信装置。
  9. 受信装置において利用されるアプリケーションの読み込み処理を経ずに設定された、受信装置における受信データのメディアソースオブジェクトを利用して、前記受信データとアプリケーションの受信データとの合成処理を実行させるアプリケーションを生成し、
    前記アプリケーションを送信するデータ処理部を有する送信装置。
  10. 前記データ処理部は、API(Application Programming Interface)を適用して、前記受信データを前記メディアソースオブジェクトに設定する処理を実行し、
    前記アプリケーションは、前記APIによって設定されたメディアソースオブジェクトを利用した処理を実行するアプリケーションである請求項9に記載の送信装置。
  11. 受信装置において実行するデータ処理方法であり、
    前記受信装置のデータ処理部が、受信データを受信装置が実行するアプリケーションの読み込み処理を経ずに、前記アプリケーションのメディア再生の処理オブジェクトであるメディアソースオブジェクトとして設定するデータ処理方法。
  12. 送信装置において実行するデータ処理方法であり、
    受信装置において利用されるアプリケーションの読み込み処理を経ずに設定された、受信装置における受信データのメディアソースオブジェクトを利用して、前記受信データとアプリケーションの受信データとの合成処理を実行させるアプリケーションを生成し、
    前記アプリケーションを送信するデータ処理方法。
JP2016555190A 2014-10-20 2015-10-14 受信装置、送信装置、およびデータ処理方法 Expired - Fee Related JP6610555B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014213498 2014-10-20
JP2014213498 2014-10-20
PCT/JP2015/079098 WO2016063780A1 (ja) 2014-10-20 2015-10-14 受信装置、送信装置、およびデータ処理方法

Publications (2)

Publication Number Publication Date
JPWO2016063780A1 JPWO2016063780A1 (ja) 2017-07-27
JP6610555B2 true JP6610555B2 (ja) 2019-11-27

Family

ID=55760822

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016555190A Expired - Fee Related JP6610555B2 (ja) 2014-10-20 2015-10-14 受信装置、送信装置、およびデータ処理方法

Country Status (7)

Country Link
US (2) US11070872B2 (ja)
EP (1) EP3211904A4 (ja)
JP (1) JP6610555B2 (ja)
KR (1) KR102529711B1 (ja)
CA (1) CA2963765C (ja)
MX (1) MX2017004885A (ja)
WO (1) WO2016063780A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10120542B2 (en) * 2014-10-08 2018-11-06 International Business Machines Corporation Reproducing state of source environment when image was screen captured on a different computing device using resource location, resource navigation and positional metadata embedded in image
US20180097974A1 (en) * 2016-10-03 2018-04-05 App Onboard, Inc. Video-tree system for interactive media reproduction, simulation, and playback
US20180124453A1 (en) * 2016-11-01 2018-05-03 App Onboard, Inc. Dynamic graphic visualizer for application metrics
US11089381B2 (en) * 2017-01-20 2021-08-10 Hanwha Techwin Co., Ltd. Apparatus and method for simultaneous playback and backup of media in a web browser
JP6861046B2 (ja) * 2017-02-14 2021-04-21 日本放送協会 配信装置およびプログラム
EP3425865B1 (de) * 2017-07-05 2019-12-18 Siemens Mobility GmbH Verfahren und vorrichtung zur rückwirkungsfreien unidirektionalen übertragung von daten an einen abgesetzten anwendungsserver
EP3753254A1 (en) * 2018-02-15 2020-12-23 Vitec, Inc. Distribution and playback of media content
CN110545491B (zh) * 2018-05-29 2021-08-10 北京字节跳动网络技术有限公司 一种媒体文件的网络播放方法、装置及存储介质
CN110545479B (zh) * 2018-05-29 2021-07-06 北京字节跳动网络技术有限公司 媒体播放的加载控制方法、装置及存储介质
US11095944B2 (en) * 2019-08-19 2021-08-17 Roku, Inc. Content-modification system with broadcast schedule utilization feature
US11363321B2 (en) * 2019-10-31 2022-06-14 Roku, Inc. Content-modification system with delay buffer feature
CN111193798A (zh) * 2019-12-31 2020-05-22 山东公链信息科技有限公司 一种打散后加密分散存储的图片分布式存储技术
US10992401B1 (en) * 2020-03-05 2021-04-27 Rovi Guides, Inc. Systems and methods for generating playlist for a vehicle
US10972206B1 (en) 2020-03-05 2021-04-06 Rovi Guides, Inc. Systems and methods for generating playlist for a vehicle
US11805160B2 (en) 2020-03-23 2023-10-31 Rovi Guides, Inc. Systems and methods for concurrent content presentation
US11599880B2 (en) 2020-06-26 2023-03-07 Rovi Guides, Inc. Systems and methods for providing multi-factor authentication for vehicle transactions
US11790364B2 (en) 2020-06-26 2023-10-17 Rovi Guides, Inc. Systems and methods for providing multi-factor authentication for vehicle transactions
US11818189B2 (en) 2021-01-06 2023-11-14 Tencent America LLC Method and apparatus for media streaming
US11792473B2 (en) * 2021-08-06 2023-10-17 Sony Group Corporation Stream repair memory management
CN114745561B (zh) * 2022-04-06 2023-05-30 珠海格力电器股份有限公司 直播间交互方法、装置、电子设备及存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268999A (ja) 2001-03-09 2002-09-20 Toshiba Corp コンテンツ再生方法及び装置
US20030066094A1 (en) * 2001-09-29 2003-04-03 Koninklijke Philips Electronics N.V. Robust method for recovering a program time base in MPEG-2 transport streams and achieving audio/video sychronization
US7246318B2 (en) * 2002-06-28 2007-07-17 Microsoft Corporation Application programming interface for utilizing multimedia data
US7426734B2 (en) * 2003-10-24 2008-09-16 Microsoft Corporation Facilitating presentation functionality through a programming interface media namespace
US7626612B2 (en) * 2006-06-30 2009-12-01 Motorola, Inc. Methods and devices for video correction of still camera motion
US20080040743A1 (en) * 2006-07-29 2008-02-14 Srinivasa Dharmaji Micro-splicer for inserting alternate content to a content stream on a handheld device
US8612643B2 (en) * 2007-06-30 2013-12-17 Microsoft Corporation Interfaces for digital media processing
US8064343B2 (en) 2008-11-25 2011-11-22 Broadcom Corporation Utilizing a replacement pathway for lost packet delivery during media reception in a set-top box (STB)
US8755669B2 (en) * 2009-05-13 2014-06-17 Cisco Technology Inc. Splicing system
JP2011087103A (ja) 2009-10-15 2011-04-28 Sony Corp コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
US8555163B2 (en) * 2010-06-09 2013-10-08 Microsoft Corporation Smooth streaming client component
US20120095819A1 (en) * 2010-10-14 2012-04-19 Phone Through, Inc. Apparatuses, methods, and computer program products enabling association of related product data and execution of transaction
US9026671B2 (en) * 2011-04-05 2015-05-05 Qualcomm Incorporated IP broadcast streaming services distribution using file delivery methods
JP2013009332A (ja) * 2011-05-20 2013-01-10 Nippon Hoso Kyokai <Nhk> 受信機
CN103703764A (zh) 2011-05-25 2014-04-02 Lg电子株式会社 发送/接收***和处理广播信号的方法
JP6348251B2 (ja) 2012-09-13 2018-06-27 サターン ライセンシング エルエルシーSaturn Licensing LLC 端末装置、受信方法、およびプログラム
WO2014115295A1 (ja) 2013-01-25 2014-07-31 株式会社 東芝 ビデオ表示装置及びビデオ表示方法
US20140297882A1 (en) * 2013-04-01 2014-10-02 Microsoft Corporation Dynamic track switching in media streaming
JPWO2014162748A1 (ja) 2013-04-05 2017-02-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 受信装置、及び受信方法
US9332047B2 (en) * 2013-09-30 2016-05-03 Brightcove Inc. Dynamic chunk manipulation for streaming mixed live and on-demand media: dynamic permutation layer

Also Published As

Publication number Publication date
KR102529711B1 (ko) 2023-05-09
KR20170074866A (ko) 2017-06-30
EP3211904A1 (en) 2017-08-30
EP3211904A4 (en) 2018-04-25
WO2016063780A1 (ja) 2016-04-28
US11785289B2 (en) 2023-10-10
US11070872B2 (en) 2021-07-20
CA2963765C (en) 2022-12-13
JPWO2016063780A1 (ja) 2017-07-27
CA2963765A1 (en) 2016-04-28
US20210314657A1 (en) 2021-10-07
US20170289616A1 (en) 2017-10-05
MX2017004885A (es) 2017-07-05

Similar Documents

Publication Publication Date Title
JP6610555B2 (ja) 受信装置、送信装置、およびデータ処理方法
JP6462566B2 (ja) 送信装置、送信方法、受信装置および受信方法
JP6807852B2 (ja) Lctに基づくdashフォーマットを有するファイルフォーマットベースのストリーミング
US11375258B2 (en) Transitioning between broadcast and unicast streams
JP2022089899A (ja) 送信方法および受信方法
JP5903924B2 (ja) 受信装置および字幕処理方法
CN111316652A (zh) 使用对齐编码内容片段的个性化内容流
RU2646391C2 (ru) Устройство поставки контента, способ поставки контента, программа, терминальное устройство и система поставки контента
KR102499231B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
JP6630860B2 (ja) 端末装置および受信方法
JP2015012305A (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
JP2015534312A (ja) レンダリング時の制御
KR20180058219A (ko) 송신 장치, 수신 장치, 및 데이터 처리 방법
WO2016067989A1 (ja) 受信装置、送信装置、およびデータ処理方法
KR101666246B1 (ko) 메타데이터 우선제공 증강방송 장치 및 방법
KR102533674B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
JP2008016894A (ja) 送信装置及び受信装置
US11856242B1 (en) Synchronization of content during live video stream
WO2017047433A1 (ja) 送信装置、受信装置、およびデータ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190813

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191014

R151 Written notification of patent or utility model registration

Ref document number: 6610555

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees