JP5112333B2 - メディアコンテナファイルの管理 - Google Patents

メディアコンテナファイルの管理 Download PDF

Info

Publication number
JP5112333B2
JP5112333B2 JP2008549453A JP2008549453A JP5112333B2 JP 5112333 B2 JP5112333 B2 JP 5112333B2 JP 2008549453 A JP2008549453 A JP 2008549453A JP 2008549453 A JP2008549453 A JP 2008549453A JP 5112333 B2 JP5112333 B2 JP 5112333B2
Authority
JP
Japan
Prior art keywords
media
fec
data
file
container file
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
JP2008549453A
Other languages
English (en)
Other versions
JP2009522922A (ja
Inventor
ペル フレイェー,
トルステン ローマル,
マグヌス ウェステルルンド,
Original Assignee
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
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 テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2009522922A publication Critical patent/JP2009522922A/ja
Application granted granted Critical
Publication of JP5112333B2 publication Critical patent/JP5112333B2/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/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/64315DVB-H
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0084Formats for payload data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/66Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving data partitioning, i.e. separation of data into packets or partitions according to importance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/67Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving unequal error protection [UEP], i.e. providing protection according to the importance of the data
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [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/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/254Management at additional data server, e.g. shopping server, rights management server
    • 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/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
    • 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/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6131Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a mobile phone network
    • 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/61Network physical structure; Signal processing
    • H04N21/6156Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
    • H04N21/6181Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via a mobile phone network
    • 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6375Control signals issued by the client directed to the server or network components for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
    • 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • 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/64Addressing
    • H04N21/6405Multicasting
    • 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • 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/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1877Measures taken prior to transmission

Description

本発明は、一般に、メディア及びマルチメディアの管理に関し、特に、そのようなメディア及びマルチメディアコンテンツを含むメディアコンテナファイルの作成及び使用に関する。
メディア及びマルチメディアを種々のネットワークを介してクライアントへ提供することが過去数年で急増している。今日、例えば映像及び音声ストリーム又は映像及び音声ファイルの形式のメディアにアクセスするために及びそれらメディアをメディアサーバからダウンロードするために、多くのユーザがインターネットを採用している。このメディアの提供は、無線を使用するモバイル通信ネットワークにおいて開始された。現在、マルチメディア又はTVコンテンツに対してモバイルネットワークを使用することに非常に大きな関心がある。これは、多くの場合、従来技術においてモバイルTVと呼ばれる。今日、モバイルネットワークにおけるこのメディアの提供は、主にユニキャスト転送を介して利用可能である。しかし、現在、モバイルTVのブロードキャスト/マルチキャスト配信方法は開発中である。そのような標準化の取り組みの例は、3GPPのマルチメディアブロードキャスト/マルチキャストサービス(MBMS)及びヨーロッパ電気通信標準化協会(ETSI)のデジタルビデオブロードキャスト−ハンドヘルド(DVB−H)である。
種々の有線及び無線通信ネットワークにおけるメディア提供に対する増加する要求に応じて、要求クライアントにメディアコンテンツを提供するために無線ネットワークにおいて利用可能なストリーミングサーバ及びダウンロードサーバの開発において進行中の作業がある。透過的で柔軟性のあるストリーミング/ダウンロードサーバに向かう一般的な傾向があり、それは、基本的にはサーバが種々のメディア管理機能を実行する複数の「標準」モジュール又はプログラムから構成されるべきであることを示す。それら機能に対する入力メディアコンテンツは、モジュール/プログラムがコンテンツを処理する方法に関する命令と共に提供される。これにより、サーバにおいて固定の定義済みメディア処理を使用することと比較してより柔軟性のあるメディア提供が提供される。
柔軟性のあるストリーミング/ダウンロードサーバの開発とともに、誤り訂正をどのようにメディアストリームに導入するかという分野で開発が行われている。マルチキャスト/ブロードキャスト送信は、一方向ではなく同時に多数の受信クライアントを対象とする。自動再送要求(ARQ:Auto Repeat reQuest)等の従来のユニキャストの信頼性手法は拡張可能ではなく、マルチキャスト/ブロードキャスト送信の多数の受信者にサービスすることはできない。
したがって、マルチキャスト/ブロードキャストのメディア送信の接続における信頼性手法の導入が必要である。このような信頼性手法は、柔軟なストリーミングサーバとダウンロードサーバのソリューションの流行においても導入すべきである。
本発明は、従来の構成のそれら欠点及び他の欠点を克服する。
本発明の一般的な目的は、マルチメディアセッションにおいて使用されるメディアコンテナファイルを提供することである。
本発明の別の目的は、セッション後の修理手順においても使用されるメディアコンテナファイルを提供することである。
それら目的及び他の目的は、添付の請求の範囲により規定される本発明により達成される。
簡単に説明すると、本発明は、メディアコンテナファイルの生成及び使用を含み、そのようなコンテナファイルを生成及び使用する装置を含む。
メディアコンテナファイルを生成することは、要求クライアントに送信され且つクライアントでレンダリングされるメディアデータ又はマルチメディアデータを含む少なくとも1つのメディアソースファイルを提供することを含む。このコンテナファイルは、ソースファイルのサイズに依存して、1つ以上のメディアソースブロックから構成されると考えられる。少なくとも1つのそのようなメディアソースブロックは、ソースブロックに基づいてFEC冗長データ又は記号を計算する目的で本発明に従って処理される。従って、ソースブロックのメディアデータは、少なくとも1つのFEC記号を計算するためにFECアルゴリズムに入力される。このFEC記号の計算は、ソースファイルのメディアソースブロック毎に実行されるのが好ましい。少なくとも1つのメディアソースブロックは、メディアコンテナファイルに編成される。同様に、計算されたFECデータは、メディアコンテナファイルにおいて1つ以上のFECリザーバに編成される。そのような各FECリザーバは、特定のメディアソースブロックに対して計算されたFECデータを含む。メタデータは、メディアソースブロックとそのFECリザーバとの関係を提供するためにコンテナファイルに提供され且つ含まれる。
結果として得られるコンテナファイルは、コンテナファイル中のメタデータを使用してメディアデータ及びFECデータを含むデータパケットをコンパイルするために、メディアセッション中にメディアサーバにより採用される。FECデータの事前計算、並びに本発明のコンテナファイルへのメディアデータ及びFECデータの編成により、メディアサーバは、広範囲にわたるデータ処理及び計算量の多いFEC計算なしで要求クライアントに送信されるデータパケットにメディアデータ及びFECデータを単純な計算コストの安価な方法で挿入できる。
好適な一実施形態において、コンテナファイルは、コンテナファイルのメディアデータ及びFECデータを含むデータパケットをコンパイルする場合にメディアサーバが使用し且つ従うコンパイル命令を更に含む。そのような場合、コンテナファイルは、メディアデータが確実にクライアントに正常に転送されるのに必要とされる全てのメディアコンテンツ、保護データ及び命令を含む。
本発明のコンテナファイルは、セッション後の修理手順において使用される。セッション後の修理手順において、FEC冗長保護が送信されたデータパケットに含まれるにも関わらず、クライアントはメディアセッション中に全てのメディアデータを正常に受信できなかった。そのような場合、先行するメディアセッション中に使用された同一のコンテナファイルのコピーが修理サーバにより使用される。サーバは、クライアントからの要求に基づいてコンテナファイルの1つのFECリザーバからFEC冗長データを検索できる。このFECデータはクライアントに戻され、クライアントが全てのメディアデータを正常にレンダリングすることを可能にする。
添付の図面と共に以下の説明を参照することにより、本発明は、本発明の更なる目的及び利点と共に最もよく理解されるだろう。
図中、同一の図中符号は対応する要素又は類似する要素に対して使用される。
本発明は、一般に、メディア及びマルチメディアデータの管理に関し、特に、無線を使用する通信ネットワークにおけるストリーミングサーバ又はダウンロードサーバ等のメディアサーバと関連してコンテナファイルを作成及び利用することに関する。本発明のそれらメディアコンテナファイルは、要求クライアントに送信するメディアコンテンツと、メディアサーバにおいてメディア処理及び送信を実行するのに使用される命令とに加えて、メディアセッションに信頼性保護を提供するデータを有する。この信頼性保護は、コンテナファイルに含まれる予め生成された順方向誤り訂正(FEC)冗長データの存在によって実現可能である。
この分野で周知のように、FECは送信されたペイロードデータに冗長データを追加することを含み、それにより受信機は追加のデータを送信機に要求する必要なく誤りを検出及び訂正できる。FECの利点は、平均して必要とされる帯域幅が大きくなるが、データの再送信が回避されることが多いことである。従って、FECがメディアコンテンツのマルチキャスト/ブロードキャストによる配信に関連して使用されるのが有利であり、この場合、再送信が行なわれにくくなる。
FECは、従来技術においては通常FECコーデックである所定のアルゴリズム又は方式を使用して送信される情報に冗長性を追加することにより達成される。そのような各冗長ビットは、常に多くの元の情報又はペイロードビットの複素関数である。出力に未変更の入力を含むFECコーデックは、システムコーデックと呼ばれる。換言すると、(N,K)システムFECコーデックは、K個のソース記号又はペイロード記号を保存し、(N−K)個のFEC記号を付加する。同様に、(N,K)非システムFECコーデックは、必ずしも全てを保存されているわけではないK個のソース記号からN個の(FEC又はソース)記号を作成する。
FECコーデックには、ブロックコード及び冗長コードの2つの主な分類がある。FECブロックコーデックは、所定サイズのビット又は記号の固定サイズブロック(パケット)に対して動作し、重畳コーデックは、任意の長さのビットストリーム又は記号ストリームに対して動作する。Digital FountainのRaptor符号は、単一のソースブロックから任意の数のFEC冗長記号を作成できるFECブロックコーデックである。ソースブロックの構成を全く変更しないで様々な保護オーバヘッドの構成を生成することができるため、このことは、このFECコーデックの有利な特性である。しかし、リードソロモンは、保護オーバヘッドの種々の大きさに対してソースブロックの区分の変更を必要とする別のFECブロックコーデックである。FECブロックコーデックの他の例には、ゴレイ、BCH(Bose, Ray-Chaudhuri, Hocquenghem)及びハミングがある。本発明に関連して使用する好適なFECコーデックは、Digital Raptorコーデックである。
本発明によると、メディアデータ又はメディアコンテンツ、あるいはマルチメディアデータ又はマルチメディアコンテンツは、データのレンダリングのためにコンテンツ提供器又はサーバがクライアントに提供できる任意のデータを示す。一般的な好適な例は、映像データ及び音声データを含む。データは、事前に符号化された固定レートの音声又は映像コンテンツバージョンの形式でもよく、スケーラブルな音声又は映像コンテンツの形式でもよい。他のメディアの例としては、静止画(JPEG)、ビットマップ画像(GIF及びPNG)、ベクターグラフィックス(SVG)、並びに合成音声(SP−MIDI)及びテキスト(XHTML及びSMIL)がある。
図1は、本発明に従ってメディアコンテナファイルを生成する方法を示すフローチャートである。このメディアコンテナファイルは、メディアコンテンツを提供し、メディアデータを送信可能なデータパケットに形成するために、メディアセッション中にメディアサーバにより使用される完全な入力パッケージと考えられる。従ってコンテナファイルは、メディアコンテンツ自体に加え、処理を実行し、メディアセッション中にメディアコンテンツの送信を可能にするためにメディアサーバにより必要とされる情報及び命令を含むのが好ましい。
方法はステップS1で開始する。S1では、少なくとも1つのメディアソースブロックが編成されコンテナファイルに格納される。コンテナファイルに3つ以上のメディアソースブロックが存在する場合、それらブロックは、映像ストリーム等の同一のメディアコンテンツファイル又はストリーム、並びに/あるいは異なるメディアファイル又はストリームの個別のメディアブロックと考えられてもよい。例えば、映像ストリームのいくつかのメディアソースブロック及び対応する関連する音声ストリームのいくつかのメディアブロックと考えられてもよい。少なくとも1つのメディアソースブロックは、クライアントに送出されることが意図されるメディアデータ又は記号を含み、それらはメディアコンテンツをユーザに提示するためにレンダリングされる。メディアブロックは固定の同一サイズであってもよく、あるいは2つ以上の多い場合は、少なくともその一部分が異なるビット/記号サイズであってもよい。
ステップS1においてコンテナファイルに編成された少なくとも1つのメディアブロックは、メディアセッション中にクライアントに送信される全てのメディアコンテンツデータを一括して含むのが好ましい。換言すると、コンテナファイルはマルチメディア表現全体に対するメディアデータを含む。従って、メディアコンテンツが音楽映像を含む場合、コンテナファイルは映像データを有するメディアソースブロック及び対応する音声データを有するメディアブロックを含むのが好ましい。しかし、1つの同一のメディアコンテンツが複数の潜在的なメディアバージョンで提供されてもよいことが本発明により理解される。例えば、音楽映像の映像部分は複数の事前符号化された映像バージョンで提供され、そのような各映像バージョンは、所定の帯域幅又はビットレートレベル又は間隔に関連して使用できるように適応される。従って、所定のメディアコンテンツの複数のバージョンがコンテナファイルに存在してもよい。そのような場合、そのような各メディアバージョンは1つ以上のメディアソースブロックから構成されると考えられる。複数のメディアバージョンがコンテナファイルにおいて入手可能であってもよいが、通常は、メディアセッション中の所定の時間においてそのようなバージョンは1つのみ使用され、例えば利用可能な帯域幅のレベルの変化に基づいてセッション中にメディアバージョンの切り替えが行なわれてもよい。
コンテナファイルのメディアコンテンツに信頼性保護を提供するために、次のステップS2は、ステップS1でコンテナファイルに編成されたメディアブロックのうち少なくとも1つのメディアソースブロックに基づいてFEC冗長データを事前計算する。この計算ステップS2において、digital fountain raptorコーデック等のFECブロックコーデックが採用されるのが好ましく、それはメディアブロック毎に動作する。しかし、重畳FECコーデックが採用されてもよく、それは本発明の範囲内である。好適な一実現例において、FEC冗長記号のセットは、少なくとも1つのメディアソースブロックに対して生成される。このFEC記号セットは、メディアソースブロックのソース記号に基づいて計算された1つのFEC記号、好ましくは複数のFEC記号を含むことができる。メディアソースブロックに対して計算するFEC記号の数は、採用されるFECコーデックの制限によって規定されるか、メディアソースブロックのメディアソース記号の数の関数であるか、あるいはコンテナファイルのサイズ制限等の他の基準により制限されてもよい。それら事前計算されたFEC冗長記号の一般的な概念は、信頼性保護をメディアセッションに提供するためにメディアセッション中に入手可能であり且つメディアサーバにより使用されるFEC記号のリザーバをコンテナファイルに提供することである。従って、メディアソースブロック毎のFEC記号の数はこの基準に基づいて判定されるのが好ましい。すなわち、信頼性保護を提供できる。
ステップS2で計算されたFEC冗長記号は、信頼性保護を提供するためにメディアセッション中に有用であることに加え、セッション後の修理手順又は修理セッションにおいて使用される。あるいは、FEC冗長記号の専用のサブセットは、信頼性保護のためにメディアセッション中に利用可能であり、冗長記号の別のサブセットは、本明細書において更に詳細に説明されるセッション後の修理に専用である。従って、本発明は、同一のコンテナファイル(又はそのコピー)がメディアセッション中にメディアサーバにより使用され且つ修理セッション中に修理サーバにより使用されるという利点を有する。これは、メディア管理に関して高い柔軟性を与える。FECコーデックの更なる情報に関しては文献[1]の付録Bを参照。その付録Bの教示は参考として本明細書に取り入れられている。
次のステップS3は、ステップS2で計算されたFEC冗長データをメディアソースブロックと共にコンテナファイルに編成する。このステップS3は、メディアソースブロックのFEC冗長記号をリザーバとしてコンテナファイルに格納するのが好ましい。FEC冗長記号が信頼性保護及び修理後の目的のために生成された場合、それら記号は同一のFECリザーバに提供される。あるいは、第1のリザーバは信頼性の目的でFEC記号を含み、第2のリザーバは修理後のFEC記号を含む。
次のステップS4は、コンテナファイルに含まれるメタデータを提供する。このメタデータは、ステップS1でコンテナファイルに追加されたメディアソースブロックとステップS3でファイルに格納されたFEC冗長データとの関係を提供する。この関係は、ファイル内のメディアソースブロックの記憶場所からFECリザーバの記憶場所へのポインタ又はFECリザーバの記憶場所からメディアソースブロックの記憶場所へのポインタの形式である。従って、特定のメディアソースブロック又はコンテナファイル内のそのブロックの場所が与えられると、このメタデータはメディアソースブロックに基づいて計算された関連するFEC冗長データ又はファイル内のそのFEC冗長データの記憶場所の識別を可能にする。メディアソースブロックの識別子及び/又は関連するFECリザーバがコンテナファイルの事前定義済みの「標準」の場所に格納される場合、ポインタを採用する代わりに、メタデータはそれらメディアソースブロックの識別子及び/又は関連するFECリザーバを含むことができる。メタデータは、ファイルのメディアソースブロック及びFECリザーバの一方を識別するために使用され、その識別した場所に基づいて、メディアソースブロック及びFECリザーバのうちのもう一方が識別される。
メディアソースブロック毎の最後の2つのFECリザーバ(セッション中及びセッション後に使用するための)の場合、メタデータはメディアソースブロックと双方のFECリザーバとの関係を提供する情報を含むのが好ましい。これは、例えばセッション中のメタデータ及びセッション後のメタデータをメディアソースブロックに対するコンテナファイルにそれぞれ含むことにより実現される。
本発明の一般的な実現例において、ステップS1において、複数のメディアソースブロックがコンテナファイルに編成される。この場合、ステップS2〜ステップS4がそのような各メディアソースブロック又は少なくともメディアソースブロックの複数のグループに対して繰り返されるのが好ましい。これを線L1により概略的に示す。したがって、ステップS1においてN個のメディアソースブロックがコンテナファイルに編成される場合、ステップS2〜ステップS4はN回繰り返されるのが好ましく、これは、ソースブロックに加え、少なくともN個のFECリザーバとN個のメタデータのバージョンをコンテナファイルに編成することを示す。
本発明においては、メディアセッション全体に必要な全てのメディアデータ及びFECデータを生成されたメディアコンテナファイルが含んでもよいことが示される。しかし、メディアデータとFECデータは、実際には、複数の様々なセッションで適用してもよい。例えば、コンテナファイルは、音楽のビデオやフットボールの試合のようなメディアデータを含むことができる。このような場合、メディアデータは、必ずしも、FECリザーバに含まれる全てのメディアデータを送信する必要はなく、クライアントが要求した特定のデータだけを送信すればよい。しかし、他のメディアサーバが同じコンテナファイルのコピーを受信して、代わりに、ファイル内の他のメディアデータをクライアントに提供してもよい。
その後、方法は終了する。
図1と関連して上述したコンテナファイルの生成は、内部又は外部メディアコンテンツソースへのアクセス権を有するコンテンツ作成器又はサーバにおいて実行されるのが好ましい。生成されたコンテナファイルは、例えばローカルシステム内の転送、あるいはローカル又はグローバルネットワークを介する送信のために、コンピュータメモリ等の記憶媒体、あるいは電子信号又は無線信号等の物理信号で表されてもよい。一般的な一実施形態において、コンテナファイルは、種々のクライアントとのメディアセッションにおいて使用するためにメディアサーバに無線信号として提供される。また必要ならば、これに代えて、または、これに加えて、メディアサーバとのメディアセッションの後に、受信したメディアコンテンツをセッション後に修理するために、クライアントがアクセス可能な、修理サーバにコンテナファイルを提供することができる。
以下において、メディアコンテナファイルという用語は、本開示において、記憶媒体に格納するためのデータファイル及び転送又は配信するための信号を含むという意味を含んで使用される。
図2は、図1のコンテナファイル生成方法の追加のステップを示すフローチャートである。方法は、少なくとも1つのメディアソースファイルが提供されるステップS10において開始する。図示される本実施形態において、メディアコンテンツは、メディアデータを含むソースファイル又はストリームの形式でコンテナファイル作成器において入手可能である。このステップS10において、1つ以上のメディアソースファイルはコンテナファイルに含むために提供される。例えば、第1のメディアファイルは映像データを含むことができ、第2の関連するファイルは音声データを含む。FEC冗長データの効率的な計算及びその後のそのようなFECデータの使用を可能にするために、次のステップS11において、ステップS10で提供されるメディアソースファイルは複数のメディアブロックに分割される。このメディアソースブロックは、メディアソースファイルのセグメントとして考えられ、FECコードはそのセグメントに対して適用される。ソース記号又はデータビットでのメディアブロックのサイズは、分割に関連して事前定義されるか又は選択される。前者の場合、サイズはFEC冗長データの計算に採用される所期のFEC方式又はコードにより規定される。従って、実際のFECコーデック又はアルゴリズム、並びに/あるいは要求されるFEC保護オーバヘッドは、メディアファイル分割及びメディアブロックサイズに影響を与える可能性がある。
入力メディアソースファイルがFECコーデックにより効果的に処理される最大サイズより小さなサイズのビットサイズ又は記号サイズを有する場合、ソースファイルのメディアソースブロックへの分割は当然必要とされず、ステップS11は省略される。入力メディアソースファイルは、本発明に係るメディアソースブロックとして考えられる。
尚、好適なブロックサイズがあるが、メディアソースファイルから生成される全てのメディアソースブロックがその好適なサイズである必要はない。例えば、メディアファイルの残りの部分が好適なブロックサイズに達する程の十分なメディアデータを含まないために、最後のメディアソースブロックは、他の同一サイズのブロックと比較して小さなサイズであってもよい。
この分割ステップS11は、メディアソースファイルがコンテナファイルの別個の場所に格納される別個のメディアソースブロックに物理的に分割されることを必ずしも示さない。それとは非常に対照的に、殆どの実際的な実現例においては、メディアソースファイルは1つの連続したデータシーケンスとしてコンテナファイルに格納されるが、複数のメディアソースブロックとして考えられるか又は実質的にメディアソースブロックに分割される。例えば、ソース記号[0, N-1]が第1のソースブロックに属し、記号[N, 2N-1]が第2のソースブロックに属するように、2N個のソース記号を含むメディアソースファイルが分割される。
次に、方法は図1のステップS1に継続し、メディアソースブロックがコンテナファイルに編成される。
図3は、図1のコンテナファイル生成方法の追加のステップを示すフローチャートである。方法は、ステップS20において開始する。ステップS20において、メディアソースブロックはソース記号、すなわちいわゆるチャンクに区分される。一般に、それら記号は数百バイトで構成される。このブロックの区分は、現在のメディアソースブロックに対するFEC記号を計算するために使用されるFECコーデック/アルゴリズムの情報に少なくとも部分的に基づいて実行されるのが好ましい。上述したように、リードソロモンを使用するFECコードは、所望の保護オーバヘッドの大きさ、すなわちFEC冗長記号の数に基づいてソースブロック区分の変更を必要とする。
従って、実際のFECコーデック又はアルゴリズム、並びに/あるいは要求されるFEC保護オーバヘッドは、メディアソース区分及びメディア記号サイズに影響を与える可能性がある。更に、メディアコンテンツを送信するためにメディアサーバにより使用されるユーザデータグラムプロトコル(UDP)パケット等のデータパケットのサイズ等の他のパラメータは、このステップS20のソースブロック区分において使用される。そのような場合、少なくとも1つの完全なソース記号がUDPパケットに収まるように、ソース記号のサイズは制限される。
この区分ステップS20は、メディアソースブロックがコンテナファイルの別個の場所に格納される別個のソース記号に物理的に分割されることを必ずしも示さない。それとは非常に対照的に、殆どの実際的な実現例においては、メディアソースファイルは1つの連続したデータシーケンスとしてコンテナファイルに格納されるが、複数のメディアソースブロックとして考えられるか又は実質的にメディアソースブロックに分割され、その結果、実質的にソース記号に区分される。
次のステップS21において、区分の情報が生成される。基本的にこの情報は、データシーケンスのどの部分がメディアソースブロックのどのソース記号に属するかを特定する。区分情報は、メディアソースブロックZのビットX〜ビットYがソース記号を構成することを特定するテーブルに編成されてもよい。あるいは、情報は各ソース記号のバイトサイズを含むことができる。メディアファイルのメディアソースブロックの開始場所が分かると、種々のソース記号に属するデータ部分を判定できる。
方法は、ステップS2に継続する。ステップS2において、区分記号はFECデータを計算するためにメディアソースブロックと共に使用される。従って、区分情報により、FEC記号を生成するためにFECコーデックに入力されるべきメディアソースブロックのデータ部分の識別が可能になる。
上述したように、本発明の目的は、実際のメディアデータに加えて信頼性保護(事前計算されたFECデータ)を含むメディアコンテナファイルを提供することである。これは、ファイルからソースブロックへの分割、ブロック区分及びFEC保護の計算が「オフライン」で行なわれ且つメディアサーバにおける実際のメディア送信処理とは無関係であることを意味する。この前処理は、サーバのタスクを簡単化し、性能要求及びサーバの複雑さを軽減する。更にコンテナファイルは、メディアデータ及びFECデータを識別し且つ要求クライアントに送信されるメディアストリームに構成するためにメディアサーバにより必要とされる情報及び命令を更に含むのが好ましい。更にコンテナファイルは、メディアセッション完了後の修理後の処理において有用なFECデータを識別及び構成するために修理サーバにより必要とされる情報及び命令を含むのが好ましい。従って、コンテナファイルは、データのコンパイル及び送信のために透過的で柔軟性のあるサーバにより使用されるデータ、情報及び命令の完全なパッケージとして考えられる。
図4は、図1のコンテナファイル生成方法の追加のステップを示すフローチャートである。方法は、図1のステップS4から継続する。次のステップS30において、FEC冗長データの計算に採用される方式のFECアルゴリズムの情報が提供される。この情報は、特定のアルゴリズムの名前又は他の記述情報の形式である。別の方法において、利用可能な各FECアルゴリズムは事前定義済み識別子を有する。従って、このFEC識別子のみがステップS30において提供されてもよい。一般的な実現例において、同一のFECコーデックが、メディアソースファイルの全てのメディアソースブロックに対する冗長データを判定するのに採用された。しかし、所定のメディアソースファイルの種々のメディアソースブロック又は種々のソースファイルのメディアソースブロックに対して種々のFECコーデックを使用することが実際に可能である。従って、FEC情報は、単一のFECコーデックによりFEC記号を生成するため、あるいは種々のFECコーデックが使用されたソースブロック又はソースブロックのグループを識別するためにコンテナファイルの全てのブロックが処理されたことを特定できる。
次のステップS31において、特定のメディアソースファイル分割の情報が提供される。メディアデータパケットストリーム又はFECデータを要求クライアントに提供する場合、その情報はメディアサーバ又は修理サーバに対する関連性の情報である。
次のステップS32において、プロパティテーブルが提供されるのが好ましい。このプロパティテーブルは、2つ以上のメディアソースファイル/ストリームがコンテナファイルに含まれる場合に特に有用であるが、単一のメディアソースファイルを含む時にも有利に使用される。通常、ファイルプロパティテーブルは、好ましくはメディアの多目的インターネットメール拡張仕様(MIME)タイプであるメディアソースファイルのメディアタイプの情報を含む。従って、このMIME情報は、メディアが同期マルチメディア統合言語(SMIL)を含む音声メディア、映像メディア又は他のメディアタイプであることを特定できる。このMIMEタイプは、コンテナファイルに実際に含まれるデータタイプの情報をメディアサーバに提供する。プロパティテーブルは、gzipを含むメディアデータに対して採用される任意の符号化方式の情報を更に含むことができる。また、サイズ情報がプロパティテーブルに含まれる。このサイズ情報は、バイト数又は記号数に関する各メディアソースファイルの合計サイズ、ソースファイルのメディアソースブロックの各サイズ(基本的に、ステップS31で提供される分割情報に対応する)、データを送信する際に使用されるデータパケットに対する最大ペイロードサイズ又は対象ペイロードサイズ、メディアソース記号のサイズ(バイト)(基本的に、図3のステップS21で生成される区分情報に対応する)及び/又はFEC記号等を指定できる。ファイル名又はファイル識別子は、コンテナファイルに含まれる各メディアソースファイルに対するプロパティテーブルに含まれるのが好ましい。
コンテナファイルの各メディアソースファイルの実際の記憶場所の情報は、プロパティテーブルにおいて見つけられるのが好ましい。この場所情報は、ソースファイルの第1のメディアソースブロックの開始位置を特定でき、残りのメディアブロックはコンテナファイルのその位置以降に見つけられる。図1のステップS4で生成され且つコンテナファイルのFECリザーバとメディアソースブロックとの関係を提供するメタデータは、プロパティテーブルに更に含まれる。同様に、採用されるブロック区分の情報及びFEC冗長データ計算に採用されるFECコードは、テーブルに含まれるのが好ましい。
従って、コンテナファイルのプロパティテーブルは、メディアソースに対する単一の情報ソースとして使用され、関連するメディアソースファイル/ブロックの位置を特定し、そのソースブロックに対するFEC冗長データ及びメディアセッション中のメディアパケットのコンパイルにおいて有用な他の情報を提供する。
次のステップS33は、メディアサーバにより使用されるコンパイル命令を生成する。それら命令は、データパケットのメディアストリームを形成するために、関係するFECリザーバのFEC冗長データと、メディアソースブロックのメディアデータとのコンパイルを、FECブロックの関係を提供するメタデータに基づいて規定するのに使用される。従って、それら命令は、信頼性保護を有する送信可能なメディアパケットストリームを構成するためにコンテナファイルに含まれる(メディアおよびFEC)データを使用する方法に関する命令を提供するヒント又はメタデータとして考えられる。それら命令は、メディアセッション中に要求クライアントに送信するのに適切なパケットにメディアデータ及びFECデータをコンパイルするために関係メタデータと共に使用される。従って、命令はメディアソースデータ及びFECデータのサーバ側の送信順を記述する。しかし、通常、命令はタイムスケジュール情報、対象/ソースアドレス又はポートの情報、あるいは他のセッション特有の情報を含まない。これは、コンテナファイル及びその中のコンパイル命令は特定のセッションに透過的であり、種々の受信クライアントとの複数の種々のセッションに対する1つのメディアサーバだけでなく、種々のメディアサーバによっても実際に使用される。
コンパイル命令はメディアソースブロックとFECリザーバのサブセットに適用でき、それは、そのような複数の命令がセッション中にメディアサーバにより読み出されて使用される必要があることを示す。あるいは、コンパイル命令は、単一のメディアソースファイル又は実際にはコンテナファイルの全てのメディアソースファイルに必要とされる全ての情報を含む。
ステップS33において、コンパイル命令の2つ以上のセットが実際に生成されてもよい。そのような場合、種々の別の命令が提供されるため、メディアサーバは特定のメディアセッションに採用する特定の命令セットを判定する選択肢を有する。例えば、データ送信のために単一の送信チャネルを採用する場合、第1のコンパイル命令はメディアソースブロック及びFECデータの送信順を記述するのに使用される。第2の命令は、同一のメディアソースブロック及びFECデータに適用されるが、複数のチャネルが利用可能な場合にはコンパイル/送信順情報を提供し、これは、データが順次送信されるのではなく並列的に送信されることを示す。従って、いくつかのコンパイル命令は、種々の転送チャネル状態用の別の送信セッションを提供するために使用される。
同様に、別のコンパイル命令は、種々の信頼性保護オーバヘッドのために含まれる。例えば、第1のコンパイル命令は第1の最大保護オーバヘッドレベルに対するメディアソースブロック及びFECデータのコンパイル/送信順を記述するのに使用され、第2の命令は第2の異なるFECオーバヘッドレベルの同一のメディアソースブロックに対して使用される。この第2のFECオーバヘッドレベルが第1のレベルより高い(低い)場合、従来技術においても示されるようなより多くのFEC記号又はパリティ記号が所定の量のメディアソース記号に追加される。
ステップS33では、メディアサーバが使用するコンパイル命令に加えて、修理サーバに適用可能なコンパイル命令を生成することができる。次に、これらの修理専用命令は、FEC冗長データと可能な専用セッション後FEC冗長データとの識別を可能にするセッション後修理サーバが主に採用し、以前のメディアセッション中に受信メディアデータを正しく受信できずに全てを復号できなかった要求クライアントに送信される。
次のステップS34は、先のステップS30〜ステップS33及び好ましくは図3のステップS21において提供及び生成される情報、テーブル及び命令をコンテナファイルに編成する。コンテナファイルは、要求クライアントへの送信のためにデータを識別及び構成するために、メディアサーバまたは修理サーバが必要とする「生」メディアデータ、FECデータ及びメタデータの完全なセットを含む。その後、方法は終了する。
図11は、本発明に係るメディアコンテナファイル1を示す概略図である。上述したように、コンテナファイル1は、複数のメディアソースファイル10、12、14のメタデータを含み、そのようなM個のファイルを図示する。ここで、M≧1である。各ファイル10、12、14のメディアデータは、複数のメディアソースブロック20、22、24に分割されると考えられる。図中では、そのようなQ1個のブロック20、22、24は、第1のメディアソースファイル10に対して示されている。ここでQ1≧1である。そのような各メディアソースブロック20、22、24は、ソース記号に分割されると考えられる。
コンテナファイル1は、メディアデータを含むメディアソースブロック20、22、24に加え、信頼性保護を提供するためにメディアデータと関連して使用される予め計算されたFEC冗長データを含むFECリザーバ30、32、34を含む。好適な一実現例において、各メディアソースブロックは、少なくとも一つの専用のFECリザーバ30、32、34を含む。そのような場合、図中のFECリザーバ30、32、34の数Nは、
Figure 0005112333
である。これに代わる手法においては、各メディアソースファイル10,12,14は、少なくとも一つの専用FECリザーバを有しており、すなわちN≧Mである。このような場合、リザーバ30,32,34の個々の部分または領域は、異なるメディアソースブロック20,22,24が採用することができる。
FECリザーバ30、32、34内のFECデータを計算するときに基礎とする、メディアソースブロック20、22、24とFECリザーバ30、32、34との関係を提供する、本発明に係る関係メタデータ40は、コンテナファイル1に更に提供される。図11は、ファイル1におけるメタデータ40の複数の異なる可能な場所を示す。第1の実施形態において、メタデータは関連するメディアソースブロック20、22、24と関連して格納される。従って、ファイル中のメディアソースブロック20、22、24の識別により、ソースブロック20、22、24の各メタデータ40の識別も可能になる。あるいは又はそれに加えて、メタデータ40は各FECリザーバ30、32、34と共に格納される。したがって、各FECリザーバ30、32、34は、特定のFECリザーバ30、32、34が適用される関連するメディアソースブロック20、22、24の識別を可能にする結び付けられた関係メタデータ40を有する。コンテナファイル1が好適なファイルプロパティテーブル60を含む場合、関係メタデータ40はそのテーブルに提供される。そのような場合、メディアサーバは、ファイルプロパティテーブル60のみを調査して、メディアセッション中に使用する関連するメディアデータ及びFECデータの場所を識別してもよい。更なる可能な一実現例において、関係メタデータ40は、図中でヒントトラックと示されている、コンテナファイル1の種々のコンパイル命令50、52、54と関連して格納される。そのような場合、各ヒントトラック50、52、54は、そのヒントトラック50、52、54の命令により実現可能なメディアセッションに必要とされるメタデータ40のみを含む必要がある。それら複数の可能な記憶場所の組合せが更に可能であり、本発明の範囲内である。
本発明のオプション的だが好適な実装においては、コンテナファイル1は、修理手順の間の使用に専用のコンパイル命令70も備えており、これは図中で修理ヒントトラック70と示されている。さらに、好適には、修理手順内で使用可能なセッション後FECデータを備えるFECリザーバ30,32,34を識別するのに有用な関連メタデータ45をこのヒントトラック70は備えており、ここでさらに説明する。
本発明の特定の一実施形態によると、メディアコンテナファイル1は、インタリーブユニットであり、漸進的なダウンロード又はストリーミングに対して最適化される。それにより、マルチメディア表現全体は、いわゆる漸進的なダウンロード又はストリーミングにより要求クライアントに送信及びダウンロードされる。
ISOに基づくメディアファイル形式[2][3][4]は、本発明のメディアコンテナファイルのファイル形式として採用されるのが有利である。別のコンテナファイル形式は、MP4ファイル形式、3GPファイル形式及びQuickTime形式を含む。
ALC(Asynchronous Layered Coding)は、大規模スケーラブル高信頼コンテンツ配信プロトコルである。これは、任意のバイナリオブジェクトの高信頼マルチキャスト配信のための基本プロトコルであり、3GPP2のBCMCS(ブロードキャスト/マルチキャストサービス)及びOMA(Open Mobile Alliance)のBAC(Browser and Content)Broadcast(BCAST)ワーキンググループにおいてブロードキャスト/マルチキャストファイル配信のための必須のプロトコルとして採用された。
FLUTE(File Delivery over Unidirectional Transport)は、ファイルの単一方向配信のためのプロトコルをALCに加えて構築及び規定し、3GPPのMBMS及びDVB−HのIPデータキャスト(IPDC)においてブロードキャスト/マルチキャストファイル配信のための必須のプロトコルとして最近採用された。ALC及びFLUTEの双方は、インターネット技術標準化委員会(IETF)により規定される。
FLUTEは、ALCセッションにおいて配信されるファイルと関連付けられるメタデータを保持するFDT(File Delivery Table)を規定し、FDTの帯域内の配信及び更新に対する機構を提供する。これに対して、ALCはファイルメタデータの帯域外の配信に対する他の手段に依存する。OMAのBCASTは、通常ALCセッションの十分前にクライアントに配信される電子サービスガイド(ESG)を規定する。ファイルメタデータがACLセッション中に更新される必要がある場合、ESGのフラグメントはESG配信/更新チャネルを使用することにより更新される。
ALC又はFLUTEを介して配信されるファイルは、ISOコンテナファイルに項目として格納される。Metaボックス及びその子ボックスにより、静的メディア(画像)及びSMIL表現等の種々のデータ項目をISOに基づくメディアファイルに格納できる。それらボックスにより、ファイル名及びパスを項目に関連付けることが可能になり、ISOに基づくメディアファイルのファイルディレクトリ構造を信号で知らせることができる。
一般に、ファイルがALC/FLUTEを介して送出される前の第1のステップは、それらファイルをソースブロック及びソース記号に区分することである。また、本発明に従ってFEC符号化パリティ記号が計算される。区分は、FEC方式、対象パケットサイズ及び所望のFECオーバヘッドに依存してもよい。FEC符号化を行うソースブロック毎に、パリティ記号のリザーバが事前に計算され、FEC方式に関する情報及びソースファイル区分情報と共にISOに基づくメディアファイルに格納される。
ファイルの送信を容易にする次のステップは、ALC/FLUTEセッション(セッション記述プロトコルを使用する)及び項目をALC又はFLUTEパケットに埋め込む方法を記述するマルチキャスト/ブロードキャストサーバに対する命令をISOに基づくメディアファイルが含むようにすることである。
一方ではファイル区分及びFECリザーバ、他方ではファイルの配信に対するヒントトラックが互いに無関係に使用される。前者は、ヒントトラックの設計を助長し、例えば種々のFECオーバヘッドを有する別のヒントトラックが同一のFEC記号を再利用することを可能にする。それらは、配信後の修理のためにソース記号と追加のFEC記号に別個にアクセスする手段を更に提供し、この修理はALC/FLUTEまたは他のプロトコルを介した帯域外で実行してもよい。しかし、サーバがヒントトラック命令に従う場合の複雑さを軽減するために、ヒントトラックは、項目のデータ範囲又はヒントサンプルにコピーされたデータを直接参照する。
以下において、ISOに基づくメディアファイル形式の形態であり、ALC/FLUTEを介する送信に適応された本発明に係るコンテナファイルの更に詳細な実現例を提供する。しかし、これは本発明の単なる例示として考えられるべきであり、この例に対する明らかな変形例及び変更例は本発明の範囲内である。
(ソースファイルとFECリザーバの格納)
ALC/FLUTEを介する送信用のファイルは、コンテナファイルとして動作するISOに基づくメディアファイルの最上位のMetaボックス(「meta」)に項目として格納される。Item Locationボックス(「iloc」)は、各項目のファイルサイズと共にコンテナファイル内の各項目(メディアソースファイル)の実際の記憶場所を特定する。各項目のファイル名、コンテンツタイプ(MIMEタイプ)等は、Item Informationボックス(「iinf」)により提供される。
同様に、計算前のFECリザーバが追加項目としてメタボックスに格納される。ソースファイルが複数のソースブロックに分割された場合、好適には、各ソースブロックのFECリザーバは別個の項目として格納される。FECリザーバとオリジナルのソース項目との関係は、以下のセクションで説明するファイル配信(FD:File Delivery)Item Informationボックスに記録される。
(FD Item Informationボックス)
ソースファイルとFECリザーバの区分に関する詳細は、FD Item Informationボックス(「fiin」)において提供される。そのボックスは、FDヒントトラックを採用するファイルに使用されるのが好ましく、また1つのみがMetaボックス(「meta」)に位置付けられるのが好ましい。これは以下のように定義される:
aligned(8) class FDItemInformationBox extends FullBox('fiin', version = 0, 0)
{
unsigned int(16) entry_count;
PartitionEntry[entry_count]partition_entries;
SessionGroupBox session_info;
GroupIdToNameBox group_id_to_name;
}
FD Item Informationボックスの各PartitionEntryは、特定のメディアソースファイルに対する特定のファイル区分と、FEC符号化と、関係するFECリザーバと、メタデータとに関する詳細を提供する。別のFECリザーバ方式または区分がISOファイルにおいて使用される場合、1つのソースファイルに対して複数のエントリを提供できる。全ての区分エントリは黙示的に番号を付けられ、通常、第1のエントリは番号1を有する。
(区分エントリ)
ソースのPartition Entry(「paen」)は以下のように定義される:
aligned(8) class PartitionEntry extends Box('paen')
{
FilePartitionBox blocks_and_symbols;
FECReservoirBos FEC_symbol_locations;
}
これは、メディアソースファイルがどのようにFEC符号化されるかの全ての詳細をともに提供する2つのボックスを含むことができる。
(File Partitionボックス)
File Partitionボックス(「fpar」)は、ソースファイルを識別し、そのファイルのソースブロック及び記号への区分を提供する。定義は以下の通りである:
aligned(8) class FilePartitionBox extends FullBox('fpar', version = 0, 0)
{
unsigned int(16) item_ID;
unsigned int(16) packet_payload_size;
unsigned int(16) FEC_encoding_ID;
unsigned int(16) FEC_instance_ID;
usingned int(16) max_source_block_length;
unsigned int(16) encoding_symbol_length;
unsigned int(16) max_number_of_encoding_symbols;
string scheme_specific_info;
unsigned int(16) entry_count;
for (i=1; i <= entry_count; i++)
{
unsigned int(16) block_count;
unsigned int(32) block_size;
}
}
セマンティックス:
item_IDは、ソースファイルのitem_IDを示す。2つ以上のFile InformationエントリのFile Partitionボックスの同一のitem_IDを使用することにより、ソースファイルの別の区分とFEC符号化との少なくともいずれかを提供できる。
packet_payload_sizeは、区分アルゴリズムの対象FLUTE又はALCパケットペイロードサイズを与える。尚、UDPパケットペイロードはFLUTE又はALCヘッダを更に含むためより大きい。
FEC_encoding_IDは、FEC符号化方式を識別する。ゼロ値は、「Null-FEC」[5]としても周知の「Compact No-Code FEC方式」等のデフォルト方式に対応する。値1は、「MBMS FEC」[1]に対応するのが好ましい。
FEC_instance_IDは、Under-Specified FEC方式に使用されるFEC符号器のより特定的な識別を提供する。通常、この値はFully-Specified FEC方式に使用されない。Under-Specified FEC方式の更なる詳細は文献[5]を参照。
max_source_block_lengthは、メディアソースブロック毎のソース記号の最大数を与える。
encoding_symbol_lengthは、1つの符号化記号(ソース記号及びFECパリティ記号)のサイズ(バイト)を与える。1つの項目の全ての符号化記号は、長さが短い可能性のある最後の記号を除いて全て同一の長さを有するのが好ましい。
max_number_of_encoding_symbolsは、文献[5]に規定されるFEC符号化ID129のソースブロックに対して生成される符号化記号の最大数を与える。
scheme_specific_infoは、「FLUTEbis」における方式特有のオブジェクト転送情報(FEC−OTI方式特有の情報)のBase64で符号化されたヌルで終了する文字列である。情報の定義は、FEC符号化IDに依存する。
entry_countは、ソースファイルの区分を提供する(block_count, block_size)の対のリストのエントリ数を提供する。ファイルの先頭から開始し、各エントリは、ファイルの次のセグメントがソースブロック及びソース記号に分割される方法を示す。
block_countは、サイズblock_size(バイト)の連続するソースブロックの数を示す。記号サイズ(FEC Informationボックスで提供される)の倍数でないblock_sizeは、最後のソース記号がファイル項目に格納されていないパディングを含むことを示す。
(FECリザーバボックス)
FECリザーバボックス(「fecr」)は、メディアソースファイルと追加項目として格納されているFECリザーバとを関連づける。
aligned(8) class FECReservoirBox extends FullBox('fecr', version = 0, 0)
{
unsigned int(16) entry_count;
for (i=1; i <= entry_count; i++)
{
unsigned int(16) item_ID;
unsigned int(32) symbol_count;
}
}
セマンティクス:
entry_countは、各FECリザーバのitem_IDを提供する(item_ID, symbol_count)の組のリストのエントリ数と、それが有するソース記号の数を与える。このリストはメディアソースファイルの最初のソースブロックに関連づけられたFECリザーバから始まって、ファイルを通して連続的に継続する。
(項目情報ボックス)
ブロードキャスト/マルチキャストファイルダウンロードプロトコル(ALC/FLUTE)を使用して内部に埋め込まれた個別のメディアを送信するために、サーバはその個別のメディアに対応するメタデータを更に送信するのが好ましい。メタデータは、FLUTEがブロードキャストプロトコルとして使用される場合はFDTの一部として送出され、ALCがOMAのBCASTのESGと共に使用される場合はOMAのBCASTのESGの一部として送出される。
メタデータ情報の一部は実行中に作成されてもよいため、FLUTE及びALCの双方に共通で固定のメタデータの一部に対するテンプレート構造は、項目情報エントリの第2のバージョンとして規定される。項目情報エントリのこのバージョンは、ソースファイル区分を有する項目に対する項目情報ボックスにおいて使用される。
aligned(8) class ItemInfoEntry extends FullBox('infe', version = 1, 0)
{
unsigned int(16) item_ID;
unsigned int(16) item_protection_index;
unsigned int(32) content_length;
unsigned int(32) transfer_length;
string item_name;
string content_type;
string content_location;
string content_encoding;
string content_MD5;
unsigned int(8) entry_count;
for (i=1; i <= entry_count; i++)
{
unsigned int(32) group_id;
}
}
セマンティックス:
item_idは、プライマリリソース(例えば、「xml」ボックスに含まれる拡張マークアップ言語(XML))に対して0又は以下の情報が規定される項目のIDを含む。
item_protection_indexは、非保護項目に対して0又はこの項目に適用される保護を規定する項目保護ボックスへの1で開始する指標(項目保護ボックスの第1のボックスは指標1を有する)を含む。
content_lengthは、(非符号化)ファイルの全体の長さ(バイト)を与える。
transfer_lengthは、(符号化)ファイルの全体の長さ(バイト)を与える。尚、コンテンツ符号化が適用されていない場合、転送の長さはコンテンツの長さと等しい(以下を参照)。
item_nameは、項目の記号名、すなわち項目(ソースファイル)のファイル名を含むUTF−8の文字で書かれたヌルで終了する文字列である。
content_typeは、MIMEタイプの項目を有するUTF−8の文字で書かれたヌルで終了する文字列である。項目がコンテンツ符号化される場合(以下を参照)、MIMEタイプはコンテンツ復号化後の項目を参照する。
content_locationは、HTTP/1.1[6]に規定されるようにファイルのURIを含むUTF−8の文字で書かれたヌルで終了する文字列である。
content_encodingは、バイナリファイルが符号化され、解釈される前に復号化される必要があることを示すために使用されるUTF−8の文字で書かれたヌルで終了する文字列である。値は、HTTP/1.1のコンテンツ符号化に対して規定される通りである。いくつかの可能な値は、「gzip」、「compress」及び「deflate」である。空文字列は、コンテンツ符号化がないことを示す。尚、項目は、コンテンツ符号化が適用された後に格納される。
content_MD5は、ファイルのMD5ダイジェスト[6][7]を含むUTF−8の文字で書かれたヌルで終了する文字列である。
entry_countは、以下のリストのエントリの数を与える。
group_IDは、ファイル項目が属するファイルグループを示す。
全てのフィールドが採用されるのが好ましい。しかし、フィールドの対応する値が提供されていないことを示すために、ヌルで終了する文字列がヌルのみを含むことが可能である。ボックスへの今後の拡張により、追加のフィールドが最後に追加されてもよい。
各項目に対するFile Informationボックスで提供される情報及びヒントトラックにより使用される項目のリストを考慮することにより、FDT又はESGに必要とされるファイルエントリが構成される。
埋め込みメディアリソースのcontent_locationは、ISOに基づくメディアファイル形式[2][3]の第8.44.7節において規定されるURL(ユニバーサルリソースロケータ)形式を使用することにより参照されてもよい。
(Session Groupボックス)
FDセッションは、各々がFDヒントトラックにより記述されるいくつかのFDチャネルを介して同時に送出できる。Session Groupボックスは、セッションのリスト、並びに各セッションに属する全てのメディアファイルグループ及びヒントトラックを含む。コンテナファイルに2つ以上のFDヒントトラックが存在する場合、1つのSession GroupボックスがFD Item Informationボックスに存在するのが好ましい。
1つのセッショングループのみが随時処理されるべきである。セッショングループのリストされた第1のヒントトラックは、基本チャネルを特定する。メディアサーバがセッショングループ間の参照を有さない場合、通常、デフォルトの選択肢は第1のセッショングループである。ヒントトラックにより参照されるファイルを含む全てのファイルグループのグループIDは、ファイルグループのリストに含まれる。ファイルグループIDは、サーバによりFDTに含まれるファイルグループ名に変換される(Group ID To Nameボックスを使用して)。
aligned(8) class SessionGroupBox extends Box('segr')
{
unsigned int(16) num_session_groups;
for(i=0; i < num_session_groups; i++)
{
unsigned int(8) entry_count;
for (j=0; j < entry_count; j++)
{
unsigned int(32) group_ID;
}
unsigned int(16) num_channels_in_session_group;
for(k=0; k < num_channels_in_session_group; k++)
{
unsigned int(32) hint_track_id;
}
}
}
セマンティックス:
num_session_goupsは、セッショングループの数を特定する。
entry_countは、セッショングループが準拠する全てのファイルグループを含む以下のリスト中のエントリの数を与える。セッショングループは、各ソースファイルの項目情報エントリにより特定されるようなリストされたファイルグループに含まれる全てのファイルを含む。セッショングループに対するFDTは、この構造でリストされるそれらグループのみを含むのが好ましい。
group_IDは、セッショングループが準拠するファイルグループを示す。
num_channels_in_session_groupsは、セッショングループのチャネルの数を特定する。num_channels_in_session_groupsの値は正数である。
hint_track_IDは、特定のセッショングループに属するFDヒントトラックのトラックIDを特定する。1つのFDヒントトラックは、1つのLCT(Layered Coding Transport)チャネルに対応する。
(Group ID To Nameボックス)
Group ID To Nameボックスは、ファイルグループ名を項目情報エントリにおいて使用されるファイルグループIDに関連付ける。
aligned(8) class GroupIdToNameBox extends FullBox('gitn', version = 0, 0)
{
unsigned int(32) entry_count;
for (i=1; i<=entry_count; i++)
{
unsigned int(32) group_ID;
string group_name;
}
}
セマンティックス:
entry_countは、以下のリストのエントリの数を与える。
group_IDは、ファイルグループを示す。
group_nameは、対応するファイルグループ名を含むUTF−8の文字で書かれたヌルで終了する文字列である。
(ヒントトラックの形式)
ヒントトラック構造は、複数のデータ形式のヒントサンプルをサポートするために一般化される。ヒントトラックサンプルは、適切なタイプのパケットヘッダを構築するのに必要な任意のデータを含み、更にパケットに属するデータのメディアソースブロックへのポインタを含む。
(サンプルエントリの形式)
FDヒントトラックは、「fdp」のサンプル記述におけるエントリ形式を有するヒントトラック(メディアハンドラ「hint」)である。「fdp」は、File Delivery Protocolの省略形である。FDHintSampleEntryは、SampleDescriptionBox(「stsd」)に含まれ、以下の構文を有する。
class FDHintSampleEntry() extends SampleEntry('fdp')
{
uint(16) hinttrackversion = 1;
uint(16) highestcompatibleversion = 1;
uint(16) partition_entry_ID;
uint(16) FEC_overhead;
box additionaldata[];
}
セマンティックス:
partition_entry_IDは、FD項目情報ボックスの区分エントリを示す。ゼロ値は、例えばFDTに対するこのサンプルエントリと関連付けられる区分エントリが存在しないことを示す。
FEC_overheadは、ヒントサンプルにより使用される保護オーバヘッドの比率を示す固定の値8.8である。FEC_overheadを提供する目的は、メディアサーバがセッショングループ(及び対応するFDヒントトラック)を選択するのを助長するための特性を提供することである。
フィールド「hinttrackversion」及び「highestcompatibleversion」は、ISOに基づくメディアファイル形式[2][3]の第10.2節に説明される「RtpHintSampleEntry」と同様の解釈を有する。time_scale_entryボックスが追加のデータとして提供されてもよい。提供されない場合、パケットのタイミングに対して指示が与えられない。
FDT又はESGに必要とされるファイルエントリは、ヒントトラックの全てのサンプルエントリ及び上記item_IDにより参照される項目の対応するFile Metadata Informationボックスを確認することにより作成される。サンプルエントリがいずれのサンプルによっても参照されない場合、それらはヒントトラックに含まれない。
なお、メディアサーバは、ファイルの各再送について、さまざまなFEC記号のセットを送信することが望ましい。
(サンプルの形式)
ヒントトラックの各FDサンプルは1つ以上のFDパケットを生成する。各サンプルは、パケットを構成するための命令及びそれらパケットを送出する場合に必要とされる任意の追加のデータ(例えば、ソースファイル又はFECに対する項目に常駐するのではなく、サンプルにコピーされる符号化記号)の2つの領域を含む。尚、サンプルのサイズは、サンプルサイズテーブルから周知である。
aligned(8) class FDsample extends Box('fdsa')
{
FDPacketBox packetbox[]
ExtraDataBox extradata;
}
FDサンプルのサンプル番号は、メディアサーバにより処理される順番を規定する。同様に、各FDサンプルのFDパケットボックスは、処理される順番で現れる。Time Scale EntryボックスがFD Hint Sample Entryに存在する場合、サンプル時間は規定され、デフォルトビットレートに対するパケットの相対的な送出時間を提供する。実際の送信ビットレートに依存して、サーバは線形時間スケーリングを適用してもよい。サンプル時間は、スケジューリング処理を簡単化する可能性があるが、それはメディアサーバが時宜を得てパケットを送出することに依存する。
(パケットエントリの形式)
FDサンプルの各パケットは、以下の構造[8]〜[10]を有する:
aligned(8) class FDpacketBox extends Box('fdpa')
{
header_template LCT_header_info;
unsigned int(16) entrycount1;
dataentry header_extension_constructors[entrycount1];
unsigned int(16) entrycount2;
dataentry packet_constructors[entrycount2];
}
LCT_header_infoは、現在のFDパケットに対するLCTヘッダテンプレートを含む。
entry_count1:以下のコンストラクタの数
header_extension_constructors:LCTヘッダ拡張を構成するために使用される構造体
entry_count2:以下のコンストラクタの数
packet_constructors:FECペイロードID及びソース記号をFDパケットに構成するために使用される構造体。
(LCTヘッダテンプレートの形式)
class header_template
{
unsigned int(1) sender_current_time_present;
unsigned int(1) expected_residual_time_present;
unsigned int(1) session_close_bit;
unsigned int(1) object_close_bit;
unsigned int(4) reserved;
unsigned int(16) transport_object_identifier;
}
LCTヘッダテンプレートは、パケットのLCTヘッダを形成するためにメディアサーバにより使用される。尚、ヘッダの一部分はサーバポリシーに依存し、テンプレートに含まれない。更に、いくつかのフィールドの長さは、サーバにより割り当てられたLCTヘッダビットに依存する。サーバは、TOIの値を変更する必要がある可能性がある。
(LCTヘッダ拡張コンストラクタの形式)
尚、メディアサーバはEXT_FDTが存在するかを確認することによりFDTを含むパケットを識別できる。
aligned(8) class LCTheaderextension
{
unsigned int(8) header_extension_type;
unsigned int(8) header_extension_length;
unsigned int(8) header_extension_content[];
}
header_extension_lengthは、32ビットワードの倍数で表される。ゼロ値は、ヘッダがサーバにより生成されることを意味する。
header_extension_contentは、header_extension_lengthと等しい項目数である。
(パケットコンストラクタの形式)
種々のコンストラクタの形式が存在する。各コンストラクタは、繰り返しを容易にするために16バイトである。最初の1バイトは、結合を区別するためのものである。この構造体は、ISOに基づくメディアファイル形式[2][3]の第10.3.2節に基づく。パケットコンストラクタは、FDパケット内のソース記号とともにFECペイロードIDを含むように使用される。
aligned(8) class FDconstructor(type)
{
unsigned int(8) constructor_type = type;
}
aligned(8) class FDnoopconstructor extends FDconstructor(0)
{
unsigned int(8) pad[15];
}
aligned(8) class FDimmediateconstructor extends FDconstructor(1)
{
unsigned int(8) count;
unsigned int(8) data[count];
unsigned int(8) pad[14 - count];
}
aligned(8) class FDsampleconstructor extends FDconstructor(2)
{
signed int(8) trackrefindex;
unsigned int(16) length;
unsigned int(32) samplenumber;
unsigned int(32) sampleoffset;
unsigned int(16) bytesperblock = 1;
unsigned int(16) samplesperblock = 1;
}
aligned(8) class FDitemconstructor extends FDconstructor(3)
{
unsigned int(16) item_ID;
unsigned int(16) extent_index;
unsigned int(64) data_offset;
unsigned int(24) data_length;
}
aligned(8) class FDxmlboxconstructor extends FDconstructor(4)
{
unsigned int(64) data_offset;
unsigned int(32) data_length;
unsigned int(24) reserved;
}
(Extra Dataボックス)
FDヒントトラックの各サンプルは、Extra Dataボックスに格納された追加のデータを含んでもよい。
aligned(8) class ExtraDataBox extends Box('extr')
{
bit(8) extradata[];
}
図5は、本発明に係るメディアセッション管理方法を示すフローチャートである。このメディアセッション管理は、ストリーミングサーバ又はダウンロードサーバ等のメディアサーバにおいて実行され、本発明のメディアコンテナファイルを使用する。方法は、メディアコンテナファイルが提供されるステップS40において開始する。このファイルの提供は、メディアサーバの記憶場所からコンテナファイルを取り出すことにより実現されるが、これは、サーバがコンテンツ提供器又は作成器からファイルを事前に受信していることを示す。あるいは、メディアサーバは、メディアデータに対する要求と関連してコンテンツ提供器からのコンテナファイルを命令又は受信できる。
次のステップS41において、メディアデータパケットは、コンテナファイルのメディアソースブロックからメディアデータを抽出し、FEC冗長データをFECリザーバから抽出することによりコンパイルされる。このデータ抽出は、メディアソースブロックとFECリザーバとの関係を提供するコンテナファイル内のメタデータに基づいて実行される。したがって、メディアサーバは、メディアセッション中に送信するためにメディアデータの識別子を受信するのが好ましい。あるいは、コンテナファイルは、メディアソースの選択が必要ないように単一のメディアデータファイルのメディアデータのみを含んでもよい。いずれの場合においても、ファイルプロパティテーブル等のコンテナファイルに含まれる上述の情報は、メディアファイルの開始、すなわち送信が開始されるべき第1のメディアソースブロックを識別するために使用される。更に、コンテナファイルに含まれる更なる情報は、メディアデータ及びFECデータを組み合わせて、種々のクライアントに対する1つの無線チャネル又は複数のチャネルを介する無線送信に適応されたデータパケットに含める方法に関する命令として使用される。本発明のメタデータによれば、メディアデータが現に抽出されたメディアソースブロックが与えられた場合、パケットコンパイルステップS41でそれからFECデータを抽出すべき関連づけられたFECリザーバを識別することが可能になる。
次のステップS42において、FEC信頼性保護を有するコンパイルされたメディアデータパケットは、好ましくはブロードキャスト又はマルチキャスト技術によりクライアントに送信され、クライアントにおいてメディアデータがレンダリングされる。メディアサーバの送信バッファが所定のレベルに到達すると、通常、パケット送信は開始される。しかし、メディアセッション中、他のパケットが送信される間、新しいデータパケットがコンパイルされて送信バッファに入力される。これを線L2により概略的に示す。
メディアデータの編成及び生成されたコンテナファイル、並びに事前に計算されたFECデータの提供により、メディアセッション中のメディアサーバの処理要求が低減される。従って、これにより、サーバが実行中にソースブロック構成及びFEC符号化を高速に実行する必要がないため、サーバの複雑さが軽減され、サーバに柔軟性が与えられる。これに対して、サーバは、計算前のソースとFEC記号を抽出するためにコンテナファイル内のメタデータと命令を使用し、ヘッダ情報を追加し、得られたデータパケットをクライアントに送信する。

その後、方法は終了する。
図6は、図4のセッション管理方法の追加のステップを示すフローチャートである。方法は、図5のステップS40から継続する。次のステップS50において、メディアセッションにおいてデータを送信するために現在採用できるFECオーバヘッド容量が判定される。この容量は、メディア送信のためにサーバに割り当て可能な帯域幅レベル、このメディア送信のために採用される無線記憶媒体に対する最小及び最大のビットレートレベル等に基づいて判定又は少なくとも推定される。実際には、従来技術において周知のデータ送信と関連してそのようなオーバヘッド容量を判定する任意の技術が、ステップS50において採用されてもよい。
FECオーバヘッド容量が判定されると、次のステップS51は、判定されたオーバヘッド容量に基づいてコンパイル命令セットを選択する。メディアコンテナファイルは、所定のメディアコンテンツに使用されるコンパイル命令の複数の別のセットを含むが、種々のレベルのFECオーバヘッドを提供する。換言すると、基本的にそれら別のコンパイル命令は、メディアデータパケットをコンパイルする時にメディアデータに追加するFEC冗長データの量を規定する。許容されるFECオーバヘッドが大きくなると、より多くのFECデータが追加される。種々の別のコンパイル命令を有することにより、メディアサーバは、現在のオーバヘッドの制限を与えられる許容される最大のFEC保護を可能にするそれら命令を使用でき、それにより、単一のコンパイル命令のセットを使用する場合と比較して種々のクライアントでメディアデータを正常に受信及び復号化する機会が増加する。
方法は、図5のステップS41に継続する。ステップS32において、メディアデータパケットは、ステップS51で選択されたコンパイル命令に基づいてメディアコンテンツデータ及び関連するFECデータからコンパイルされる。
図12は、本発明の一実施形態に従って別のコンパイル命令の使用を示すために使用される本発明に係るメディアコンテナファイル1を示す概略図である。コンテナファイル1は、好ましくは複数(例えば2つ)のメディアソースブロックを含むメディアソースファイル10を含む。本実施形態において、ソースファイル10の各メディアソースブロックは、個々のソースブロックについて事前に計算されたFEC冗長データを有する関連するFECリザーバ30,32を有する。この図示される例において、コンテナファイル1は、種々のFECオーバヘッドのコンパイル命令を含む3つのヒントトラック50、52、54を更に含む。例えば、10%の冗長オーバヘッドが望ましい場合に第1のヒントトラック50が使用され、第2のヒントトラック52は約12%のFECオーバヘッドを与え、第3のヒントトラック54は14%のFECオーバヘッドを与える。図中、文献[1]の付録Bにおいて提案されるソースブロック構成アルゴリズムが採用されている。第1のヒントトラック50が選択される場合、データパケット81、82、83、84の第1のストリーム(図中、メディアソースブロック毎及びFECブロック毎に1つのデータパケットのみが示される)が生成される。しかし、第2のヒントトラック52が使用される場合、データパケット91、92、93、94の第2のストリームが生成される。第1のストリーム80と比較して、第2のストリーム90はメディアソースブロック毎により大きなFECブロック、すなわちより多くのFEC冗長データを含む。しかし、各ソースブロックは2つのストリーム80、90に同一量のメディアデータを含む。
上述したように、メディアコンテナファイルは、複数のメディアソースファイル又は種々のメディアコンテンツを保持するファイルを含むことができる。図7は、そのような複数ファイルの解決策を使用する図5のコンパイルステップ及び送信ステップの一実施形態を示すフローチャートである。方法は、図5のステップS40から継続する。次のステップS60において、第1のメディアコンテンツファイル及び第1のFECリザーバのメディアデータパケットは、メタデータ及びその特定のメディアコンテンツに専用のコンパイル命令に基づいて生成される。パケット生成の結果は、第1のFECリザーバのFECデータ及び第1のセットのメディアコンテンツを含むデータパケットのストリームとして考えられる。このデータパケットの第1のセットは、ステップS61において無線通信チャネル、好ましくはブロードキャスト又はマルチキャストチャネルを使用して要求クライアントに送信される。
しかし、現在のメディアセッションにおいて、コンテナファイルのセット又は第2のメディアソースファイルのメディアコンテンツがクライアントに送信されるべきである。その結果、第2のメディアソースファイルのメディアコンテンツデータ及び第2の関連するFECリザーバのFEC冗長データを含むデータパケットは、ステップS62でそのコンテンツと関連付けられたメタデータ及びコンパイル命令に基づいて生成される。ステップS63において、結果として得られるデータパケットは、上述のステップS61でサーバにより採用された同一の無線通信チャネルを使用して送信される。従って、2つのデータパケットセットはデータパケットの連続ストリームとして送出される。
図8は、複数ファイルの解決策を使用する図5のコンパイルステップ及び送信ステップの追加の実施形態を示すフローチャートである。方法は、図5のステップS40から継続する。次のステップS70において、メディアデータパケットは、第1のメディアソースファイルのメディアコンテンツデータ及び第1のFECリザーバのFECデータを含むように生成される。このステップS70は基本的に図7のステップS60に対応し、本明細書において更なる説明は行なわない。次のステップS71は図6のステップS61に対応し、メディアコンテンツを含むデータパケットがコンテナファイルの第2のメディアソースファイル及び第2のFECリザーバから導出される。本実施形態において、メディアサーバは、2つのクライアントグループ(IPマルチキャストグループ)を同時に管理できる。従って次のステップS72において、メディアサーバは、第1の無線通信チャネルを使用して第1のメディアグループのクライアントメンバにステップS70で生成されたデータパケットの第1のセット又はストリームを送信し、同時に又は少なくとも一部同時に第2の無線通信チャネルを使用して第2のメディアグループのクライアントメンバに第2のメディアデータパケットストリームを送信する。本実施形態において、2つのデータパケットセットは並列メディアストリームとして送出される。その後、方法は終了する。
本発明は、複数のメディアファイルのメディアデータが一括してコンパイルされ且つクライアントのグループに送信される状況を更に含む。そのような場合、複数のソースファイルのメディアデータは、メディアセッション中にメディアサーバにより共に管理される。これは特に、1つのメディアファイルが映像データを含み且つ第2のメディアファイルが関連する音声データを含む場合である。2つのファイルのメディアデータは、同一の無線通信チャネル又は異なるそのようなチャネルを使用して送信される。
図7及び図8に関連して上述した教示は、3つ以上のメディアソースファイル及びFECリザーバがコンテナファイルに含まれる場合に対処するように拡張できることが本発明により理解される。
図13は、複数のメディアソースファイル10、12、14及び複数のFECリザーバ30、32、34を有するメディアコンテナファイル1を示す概略図である。コンテナファイル1は、ソースファイル10、12、14からメディアコンテンツデータ及びリザーバ30、32、34からFECデータを抽出するのに必要とされるコンパイル命令及びメタデータを有する2つのヒントトラック50、52を更に含む。
第1のヒントトラック50は、複数のソースファイル10、12、14及びFECリザーバ30、32、34のメディアデータ及びFECデータを含むデータパケット81、82、91、92のストリームを構成する時にメディアサーバにより採用される。生成されたストリームは、無線チャネルを使用して要求クライアントに送信される(図7と比較する)。第2のヒントトラック52は、複数のメディアグループが同時に管理されるべきである場合に採用される。従って、データパケット81、82、91、92の複数の並列ストリームは、ヒントトラック52、ソースファイル10、12、14及びFECリザーバ30、32、34に基づいてメディアサーバにより生成される。
メディアコンテナファイルがファイルからブロックへの分割の情報、ブロック区分、FECアルゴリズムの情報及び/又はファイルプロパティテーブル等の追加の情報を更に含む場合、メディアサーバはデータパケットの生成及び送信の際にその追加の情報を使用できる。
例えば、ブロック区分の情報は、コンテナファイルのメディアソースファイル及びブロックからメディアデータを抽出するためにメディアサーバによりメタデータと共に使用される。このように区分情報は、サーバがコンテナファイルの所望のメディアデータの正確な記憶場所を正確に識別するのを助長する。同様に、コンテナファイルからメディアデータ及びFECデータを抽出する時、FECアルゴリズム情報はメディアサーバにとってメタデータと共に有用である。種々のFECアルゴリズムはメディアコンテンツのソース記号及びブロックへの種々の区分を必要とし、更に区分は保護オーバヘッドに依存する。従って、FECアルゴリズムの情報及びFECデータを事前計算する時に採用される他のFECパラメータはメディアサーバにより使用可能である。
追加のデータ及び好ましくはメディアサーバにとって有用なMIMEタイプの情報、任意の符号化情報、サイズ情報等は、ファイルプロパティテーブルに含まれるか又は少なくとも公表される。好適な一実現例において、このプロパティテーブルは、メディアの抽出、データパケットのコンパイル及び送信と関連して有利な又は必要とされる情報を取得するためにメディアサーバによりアクセスされる単一情報又はルックアップソースを構成する。
本発明のメディアサーバは、修理後の処理に更に採用される。そのような場合、メディアコンテンツデータ及びFECデータがクライアントに送信(マルチキャスト)された後、FEC冗長データがメディアストリームに含まれてるにも関わらず、クライアントは受信したメディア記号を正確に復号化できない可能性がある。図9は、そのような修理後の手順を規定する追加のステップを示すフローチャートである。一般にこの手順は、メディアセッション中のメディア送信が終了した後又は少なくともクライアントへのメディアデータの送信後に開始される。従って、方法は図5のステップS42から継続する。次のステップS80において、メディアサーバは、以前にサーバとのメディアセッションに関わっていたクライアントから発信されたセッション後の修理手順に対する要求を受信する。一般に、修理要求は正確に受信されたメディアデータの識別子を含む。この識別は、特定のメディアコンテンツの名前であってもよく且つ可能性としてコンテンツサーバがクライアントにより正常に受信されなかったコンテンツの部分をより詳細に識別するのを可能にする情報であってもよい。次のステップS81において、サーバは、情報に基づいて識別されたFECリザーバからFEC冗長データを抽出するためにその情報を使用する。この抽出ステップS81において、デフォルトでは、サーバは好ましくはユニキャストによるデータ送信を使用してステップS82で要求クライアントに送信される所定の数のFEC記号を抽出できる。提供されたFEC記号がメディアコンテンツを正常に復号化するのに不十分である場合、クライアントはサーバのより多くのFEC記号を要求できる。あるいは、クライアントは、クライアントにおいてメディアコンテンツを正常に復号化するのに必要とされるFEC記号の数をサーバが少なくとも推定できるようにする情報をサーバに提供する。そのような場合、サーバは抽出ステップS81でこの情報を使用するのが好ましく、抽出されたFEC記号はステップS82でクライアントに送信される。
本発明のメディアコンテナファイルは、メディアセッションにおける使用後、専用のセッション後の修理手順においても採用される。図10は、本発明のセッション後の修理方法を示すフローチャートである。方法はステップS90において開始する。ステップS90において、修理サーバは、以前にメディアセッションに関わっており且つメディアサーバからメディアデータを受信したクライアントからFEC冗長データに対する要求を受信する。ステップS90で受信された要求は、修理サーバがメディアコンテナファイルを識別するのを可能にする識別子を含む。従って、次のステップS91において、サーバは要求に基づいて関連するメディアコンテナファイル、一般には要求中の識別子を提供する。このコンテナファイルは、一般に先行するメディアセッションにおいてメディアサーバにより使用されたコンテナファイルのコピーであるため、送信されるが要求クライアントにおいて全てが正常に受信されるわけではないメディアデータ及びFECデータをそれぞれ含むメディアソースブロック及びFECリザーバを含む。コンテナファイルは、コンテンツ提供器/作成器から、あるいは先行するメディアセッションを実行するメディアサーバから実際に命令又は要求される。
修理サーバは、メタデータに基づいてステップS92においてメディアコンテナファイルからFEC冗長データを抽出するために修理要求における識別子を使用する。好適な一実現例において、識別子は正確に受信されなかったメディアコンテンツ又は更に詳細な情報を含むメディアソースファイルの名前であってもよく、失われたメディアデータを含んでいた特定のメディアソースブロックの識別を含む。コンテナファイルのメタデータは、FECデータが抽出されるべきであるコンテナファイルの少なくとも1つのFECリザーバを識別するために識別子と共に使用される。図9のステップS81と関連して上述したように、修理サーバは、正常なデータ復号化のために必要とされるFECデータ量の推定値を通知される。あるいは、修理サーバは、デフォルト数のFEC記号を抽出及び送出し、それらデフォルト数の記号が十分でない場合にクライアントがより多くのFECデータを要求することを必要とする。
好適な一実現例において、コンテナファイルはセッション後の修理命令70を含む。図11を参照。それら命令は、FECリザーバ30、32、34から抽出されたFECデータを含むデータパケットをコンパイルするために修理サーバにより使用される。図示されるように、この抽出手順においてサーバにより使用されるメタデータ45が含まれるか又はコンパイル命令70の一部を構成できる。あるいは、メタデータ45は、関連するメディアソースファイル10、12、14、FECリザーバ30、32、34と関連して提供されるか、あるいはコンテナファイル1に含まれるファイルプロパティテーブル60に提供される。
図14は、本発明のメディアコンテナファイル1を生成又は使用する要素を示す通信ネットワークの概略図である。コンテンツサーバ100は、メディアソースデータを受信するか又はメディアソースデータへのアクセス権を有し、メディアコンテナファイル1を構成するコンテンツ提供器又は作成器を表す。このコンテナファイル1のコピーは、図において移動端末により表される種々のクライアント400、410、420に送信(マルチキャスト)されるFECデータ及びメディアを含むデータパケットをコンパイルするためにメディアセッションにおいてコンテナファイル1を使用するメディアサーバ200に送出される。修理サーバ300は、メディアサーバ200とのメディアセッションの後に、モバイル端末400の一つが接続することができる。このような場合、修理サーバ300は、コンテナサーバ100からのメディアコンテナファイル1のコピーを要求し、セッション後の修理手順にそれを使用する。
図15は、本発明に係るメディアコンテンツサーバ100を示す概略ブロック図である。コンテンツサーバ100は、外部ユニットと通信するための機能性(送信機/受信機、変調器/復調器、符号器/復号器)を含むように構成される一般的な入出力(I/O)ユニット110を具備する。このI/Oユニット110は、特に入力メディアコンテンツを受信及びメディアコンテナファイルに対する要求を受信するように構成される。I/Oユニット110は、通信ネットワークにおいてそのようなコンテナファイルを他のサーバに送信する時にサーバ100により採用される。
コンテンツサーバ100は、本発明のメディアコンテナファイルを作成するように構成されるコンテナファイル作成器120を更に具備する。作成器120は、少なくとも1つのメディアソースブロックをメディアコンテナファイルに入力及び編成するように構成されるメディアブロックマネージャ130を含む。この少なくとも1つの入力ソースブロックは、コンテンツサーバ100のファイル分割器190から提供されるのが好ましい。あるいは、少なくとも1つのソースブロックは、内部データ記憶装置115から検索され、I/Oユニット110を使用して外部メディアソース500、510から提供される。
コンテンツサーバ100のFECコーデック160は、ブロックマネージャ130によりコンテナファイルに入力されたメディアソースブロックに対するFEC冗長データを計算する。このFECコーデック160は、この計算手順において上述のFECアルゴリズムのうち任意のアルゴリズムを使用できる。コーデック160は、全ての冗長データの計算に対して所定のFECアルゴリズムを使用するように設定される。あるいは、コーデック160は、複数の種々のアルゴリズムに対するアクセス権を有することができるため、実際のアルゴリズムの選択肢を有する。アルゴリズムの選択は、ファイル分割器190により行なわれる特定のブロック分割、メディアソースブロックのデータのタイプ又は他のパラメータ等の種々のパラメータに基づいて実行される。コーデック160により計算されるFECデータは、メディアセッションにおける冗長データ及びセッション後の修正手順における修正データの双方として採用される。
結果として得られる計算されたFECデータ(記号)は、ファイル作成器120のFECデータマネージャ140に入力される。このFECマネージャ140は、メディアコンテナファイルの少なくとも1つのFECリザーバに入力FECデータを編成する。好適な一実現例において、FECコーデック160及びFECマネージャ140は、ブロックマネージャ130によりファイルに編成されたソースブロック毎にFEC記号を生成し、コンテナファイルのソースブロック毎に少なくとも1つのFECリザーバを提供する。
ファイルマネージャ120のメタデータマネージャ150は、メタデータをコンテナファイルに提供する。このメタデータは、ブロックマネージャ130により編成されたメディアソースブロックとFECマネージャ140により編成されたFECリザーバとの関係を提供する。
結果として得られるメディアコンテナファイルは、データ記憶装置115に少なくとも一時的に格納されるか、あるいはI/Oユニット110によりメディアサーバ又は修正サーバに送信される。
好適な一実現例において、入力メディアコンテンツは、ファイル分割器190に提供されるメディアソースファイルの形式である。この分割器190は、ソースファイルを1つ以上のソースブロックに分割する。分割器190は、種々の情報又はパラメータに基づいてそのファイル分割を行なう。例えばファイル分割は、FECコーデック160により採用されるFECアルゴリズムに基づいて少なくとも部分的に判定される。そのような場合、ファイル分割器190は、そのようなFECアルゴリズムの情報へのアクセス権を有するのが好ましい。分割器190は、メディアソースファイルをN−1個のサイズが等しいメディアソースブロック及びN−1個のブロックより小さなサイズを有する可能性のある1つのメディアソースブロックに分割できる。
メディアファイルは、好ましくはファイル分割器によるデータの処理後にメディアデータに対して動作可能なブロック区分器195に更に入力される。この区分器195は、遅延せずに1つのメディアソースブロックに対して動作し、ブロックを所定のサイズのソース記号に区分する。このブロック区分は、FECコーデック160により採用される特定のFECアルゴリズム又は方式に基づくのが好ましい。ブロック区分器195は、メディアセッション中にメディアサーバにより採用されるデータパケットにソース記号を収めるように適応された区分を実行するように更に動作可能である。従って、UDPパケットサイズ等のパケットサイズの情報は区分器195により採用される。
更に区分器195は、結果として得られるブロック区分の情報を生成する。この情報は、FEC冗長データを生成する時に使用するためにFECコーデック160に転送される。
コンテンツサーバ100のユニット110、120、130、140、150、160、190及び195は、ソフトウェア、ハードウェア又はそれらの組合せとして実現又は提供されてもよい。ユニット110〜195が全て、通信システムの1つのネットワークノードのコンテンツサーバ100において実現されてもよい。あるいは、分散型実施形態も可能であり、本発明の範囲内である。そのような場合、コンテンツサーバ100の種々のユニット110〜195が種々のネットワークノードに配置されてもよいが、上述したような意図された動作を実行する。
図16は、図15のコンテナファイル作成器120の一実施形態を更に詳細に示す概略ブロック図である。このファイル作成器120は、種々の情報データをコンテナファイルに含み且つ編成するための情報マネージャ170を更に含む。マネージャ170は、FECコーデック160により使用されるFECアルゴリズムの情報、ファイル分割器190により使用されるファイル分割及び/又はファイルにおけるブロック区分器195のブロック区分を提供するのが好ましい。他の情報は、メディアタイプ、(ブロック及び/又は記号)サイズ情報、コンテンツ名又は識別子、場所情報、オプションの符号化情報等のメディアデータを記述するデータであってもよい。好適な一実施形態において、この情報は、可能性としてメタデータマネージャ150のメタデータと共にコンテナファイルに含まれるファイルプロパティテーブルに編成される。
ファイル作成器120の命令マネージャ180は、コンパイル命令を生成してコンテナファイルに挿入する。それら命令は、メタデータマネージャ150のメタデータに基づいて、メディアソースブロックのメディアデータ及びFECリザーバのFECデータをコンパイルするためにメディアサーバにより使用される情報を含む。マネージャ180は、ファイルのメディアコンテンツ毎に単一の命令又は命令セットを生成できる。あるいは、種々のFECオーバヘッドに適応された種々のそのような命令、種々のFECデータタイプ及び/又はメディアセッションにおいて採用される異なる数の無線通信チャネルが、マネージャ180により提供され且つコンテナファイルに編成される。
コンテナファイル作成器120のユニット130〜180は、ソフトウェア、ハードウェア又はそれらの組合せとして実現又は提供されてもよい。ユニット130〜180が全て、コンテナファイル作成器120において実現されてもよい。あるいは、分散型実施形態も可能であり、本発明の範囲内である。そのような場合、コンテナファイル作成器120の種々のユニット120〜180がコンテンツサーバ100の他の場所に配置されてもよい。
図17は、本発明に係るメディアセッションサーバ200を示す概略ブロック図である。このメディアサーバ200は、外部ユニットとの通信を実行するI/Oユニット210を具備する。このI/Oユニット210は、特にコンテンツサーバからのメディアファイルコンテナを要求及び受信するように構成される。更にI/Oユニット210は、種々のユーザクライアントからのメディアコンテンツに対する要求又は少なくともメディアコンテンツが送信されるべきクライアントの情報に対する要求を受信する。メディアサーバ200によりコンパイルされるデータパケットは、I/Oユニット210によりそれらクライアントに送信される。
サーバ200は、現在のセッションで使用するメディアコンテンツファイルを提供するメディアファイル提供器220を具備する。このファイル提供器220は、I/Oユニット210によりコンテンツ作成器に送信される特定のコンテナファイルに対する要求を生成してもよい。あるいは、提供器220は、メディアサーバ220に提供されたデータ記憶装置260から事前に受信したコンテナファイルを取り出す。
データパケットコンパイラ230は、メタデータと、好適には、提供器220からのコンテナファイルに含まれるコンパイル命令を使用して、ファイルからメディアデータ及びFECデータを抽出し、その抽出データを含むデータパケットを生成する。そのように生成されたデータパケットは、I/Oユニット210により送信される(I/Oユニット210からストリーム又はダウンロードされる)。
データパケットコンパイラ230は、このコンパイル処理中にファイルに含まれる他の情報(FECアルゴリズム情報、分割/区分情報、サイズ情報、コンテンツ名、コンテンツ記憶情報)も使用することが好ましい。したがって、実際には、メディアデータおよびFECデータとともにデータパケットを生成するのに必要な全ての命令およびデータはコンテナファイル内で提供され、これにより柔軟で効率的なメディアセッション管理が可能になる。
種々のコンパイル命令は、所定のメディアコンテンツに対するファイルに含まれる。例えば、命令はチャネルに依存するか又は容量に依存する。前者の場合、利用可能な無線チャネルの数及び送信されるべき並列メディアストリームの数により、コンパイラ230が使用する実際のコンパイル命令が判定される。後者の場合、FEC容量推定器240は、セッション中に採用されるFECオーバヘッドの最大量を推定するためにサーバ200に含まれるのが好ましい。オーバヘッド容量がセッションにわたり変化するため、推定器240により実行されるオーバヘッドの推定はセッション中に動的に更新されるのが好ましい。セット選択器250は、使用するファイルにおいて利用可能な特定のコンパイル命令又はコンパイル命令の命令セットを選択するために推定器240からの容量推定値を使用する。パケットコンパイラ230は、メタデータ及びFECデータをデータパケットにコンパイルするためにこの命令(セット)を使用する。
メディアサーバ200は、セッション後の修理手順でメディアサーバ200が使用可能なFECマネージャ270を任意に備えてもよい。このような場合、I/Oユニット210は、サーバ200が以前メディアとFECデータを送信したクライアントから発せられた修理要求を受信する。この要求は、I/Oユニット210からFECマネージャ270に転送される。マネージャ270は、例えば、データ記憶装置260に記憶されている、メディアコンテナファイルからのFEC冗長データ(記号)の識別及び抽出を行う要求を使用する。このセッション後のFEC抽出において、FECマネージャ270は、正しいFECデータを識別することと、抽出されたFECデータをデータパケットにコンパイルすることとの少なくともいずれかを行うために、コンテナファイルに含まれるセッション後修理命令を採用することができる。次に、このようにして得られたデータパケットは、I/Oユニット210によって、要求クライアントに送信される。
メディアサーバ200のユニット210、220、230、240、250及び270は、ソフトウェア、ハードウェア又はそれらの組合せとして実現又は提供されてもよい。ユニット210〜270が全て、通信システムの1つのネットワークノードのメディアサーバ200において実現されてもよい。あるいは、分散型実施形態も可能であり、本発明の範囲内である。そのような場合、メディアサーバ200の種々のユニット210〜270が種々のネットワークノードに配置されてもよいが、上述したような意図された動作を実行する。
図18は、本発明に係る修理サーバ300を模式的に示すブロック図である。サーバ300は、外部のユニットとの通信を行うように構成されたI/Oユニット310を有している。このI/Oユニット310は、クライアントからセッション後修理要求を受信し、コンテンツ生成器またはメディアセッションサーバからのメディアコンテナファイルを要求するために、特に提供される。FEC冗長データを含むデータパケットの送信も、I/Oユニット310が実行する。
修理サーバ300は、クライアントからの修理要求の受信に応じてコンテナファイルを提供するメディアファイル提供器320を備えている。この提供器320は、I/Oユニット310がファイルを提供するコンテンツ生成器に送信したコンテナ要求を作成することができる。あるいは、修理サーバ300は、以前受信したコンテナファイルを有しており、これによりファイル提供器320はデータ記憶装置340からそれを取り出す。
FECデータ抽出器330は、ファイル提供器320が提供するコンテナファイルから、修理要求に含まれる識別子に基づいてFEC冗長データを抽出するように、サーバ300の中に構成されている。この識別子は、クライアントが受信に成功しなかったメディアコンテンツの名前または他の識別子とすることができる。メディアセッションサーバの識別子とメディアコンテンツの配信時間との少なくともいずれか等の他の識別子は、修理サーバ300が、おそらくはメディアサーバに要求することによって、正しいメディアコンテンツを識別することを可能にするために使用することができる。メディアコンテンツの特定部分などより詳細な情報(誤って受信したメディアソースブロックの識別を可能にする)は、これに代えて、または、これとともに使用することができるだろう。
データ抽出器330が抽出したFECデータの量は事前に規定することができる。この事前に規定されたデフォルトのレベルよりも大きなFEC記号が要求される場合、クライアントはこれに従ってサーバ300に特に通知しなければならないか、あるいは、クライアントは、さらなるFECデータの要求を送信する必要がある。あるいは、抽出器330は、全てのメディアコンテンツの復号に成功するために必要であろうFEC記号がどのくらいの量かの見積もりをクライアントから受信する。次に、抽出器330は、この見積もりをFECデータの抽出に使用するだろう。
好適な実装において、コンテナファイルは、コンテナファイル内のFECリザーバからのFECデータの、クライアントに送信可能なデータパケットへのコンパイルを規定するセッション後修理命令を有する。このような場合、抽出器は、これらの命令を抽出及びコンパイル処理で使用する。
修理サーバ300のユニット310〜330は、ソフトウェア、ハードウェア、またはこれらの組み合わせとして実装または提供してもよい。ユニット310〜340は全て、通信システム内の単一ネットワークノードの修理サーバ300内に実装してもよい。あるいは、分散した実装も可能であり、これも本発明の技術的範囲に含まれる。このような場合、修理サーバ300の種々のユニット310〜340は種々のネットワークノード内に配置されてもよく、それでもなお、上述のように意図した動作を実行するだろう。
添付の請求の範囲に規定される本発明の範囲から逸脱せずに、本発明に対して種々の変形及び変更が行なわれてもよいことが当業者には理解されるだろう。
(参考文献)
[1]3GPP TS 26.346 V7.0.0, 3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Multimedia Broadcast/Multicast Service (MBMS); Protocols and codecs、2006年6月
[2]ISO/IEC 14496-12:2005: "ISO base media file format"
[3]ISO/IEC 15444-12:2005: "ISO base media file format"
[4]国際公開第WO2005/039131号
[5]RFC 3695; Compact Forward Error Correction (FEC) Schemes、2004年2月
[6]RFC 2616; Hypertext Transfer Protocol - HTTP/1.1、1999年6月
[7]RFC 1864; The Content-MDS Header Field、1995年10月
[8]RFC 3926; FLUTE - File Delivery over Unidirectional Transport、2004年10月
[9]RFC 3450; Asynchrononous Layered Coding (ALC) Protocol Instantiation、2002年12月
[10]REC 3451; Layered Coding Transport (LCT) Building Block、2002年12月
本発明の一面に従って、メディアコンテナファイルを生成する方法を示すフローチャートである。 図1のファイル生成方法のさらなるステップを示すフローチャートである。 図1のファイル生成方法のさらなるステップを示すフローチャートである。 図1のファイル生成方法のさらなるステップを示すフローチャートである。 本発明の他の面に係るメディアセッション管理方法を示すフローチャートである。 図5のセッション管理方法のさらなるステップを示すフローチャートである。 図5のコンパイルのステップ及び送信のステップの実施形態をより詳細に示すフローチャートである。 図5のコンパイルのステップ及び送信のステップの他の実施形態をより詳細に示すフローチャートである。 図5のセッション管理方法のさらなるステップを示すフローチャートである。 本発明のさらなる面に係るセッション後の修理方法を示すフローチャートである。 本発明のさらなる他の面に係るメディアコンテナファイルの概要を模式的に示す図である。 本発明に係るメディアコンテナファイルを使用する様々なメディアストリームのコンパイルを示す模式図である。 本発明に係るメディアコンテナファイルを使用する様々なメディアストリームのコンパイルを示す他の模式図である。 本発明に係るメディアコンテナファイルを管理するサーバを有する通信ネットワークの概略図である。 本発明のさらなる他の面に係るコンテンツサーバの模式的ブロック図である。 図15のコンテナファイル生成器の一実施形態をより詳細に示す模式的ブロック図である。 本発明のさらなる他の面に係るメディアセッションサーバの模式的ブロック図である。 本発明のさらなる他の面に係る修理サーバの模式的ブロック図である。

Claims (14)

  1. メディアコンテナファイルを生成する方法であって、
    −少なくとも1つのメディアソースブロックを前記メディアコンテナファイルに編成するステップと、
    −前記少なくとも1つのメディアソースブロックに基づいて順方向誤り訂正(FEC)冗長データを予め計算するステップと、
    −前記FEC冗長データを前記メディアコンテナファイルの少なくとも1つのFECリザーバに編成するステップと、
    −前記少なくとも1つのメディアソースブロックと前記少なくとも1つのFECリザーバとの関係を提供するメタデータを前記メディアコンテナファイルに提供するステップと、
    第1のレベルのFECリザーバ・オーバヘッドを有するファイルの単一方向配信のためのプロトコル(FLUTE)データパケットの第1の単一のメディアストリームを形成するために、前記少なくとも1つのメディアソースブロックのそれぞれからのメディアデータ、及び、関連するFECリザーバのそれぞれからのFEC冗長データ、のコンパイルを規定するコンパイル命令の第1セットを第1のヒントトラックとして前記メタデータに基づいて生成するステップと、
    前記第1レベルのFECリザーバ・オーバヘッドとは異なる第2レベルのFECリザーバ・オーバヘッドを有するFLUTEデータパケットの第2の単一のメディアストリームを形成するために、前記少なくとも1つのメディアソースブロックのそれぞれからのメディアデータ、及び、前記第1の単一のメディアストリームを形成するために使用される関連するFECリザーバのFEC冗長データと同一のFEC記号を再使用する、関連するFECリザーバのそれぞれからのFEC冗長データ、のコンパイルを規定する、コンパイル命令の前記第1セットとは異なるコンパイル命令の第2セットを、前記第1のヒントトラックとは異なる第2のヒントトラックとして、前記メタデータに基づいて生成するステップと、
    前記第1のヒントトラックと、前記第2のヒントトラックとを、前記メディアコンテナファイルに編成するステップと、
    を有する方法。
  2. −メディアソースファイルを提供するステップと、
    −前記メディアソースファイルを前記少なくとも1つのメディアソースブロックに分割するステップと、
    を更に有する請求項1記載の方法。
  3. 前記分割ステップは、前記FEC冗長データを予め計算するのに使用されるFECアルゴリズムに基づいて前記メディアソースファイルを前記少なくとも1つのメディアソースブロックに分割することを含む請求項2記載の方法。
  4. 前記計算ステップは、
    −前記FEC冗長データを予め計算するのに使用するFECアルゴリズムに基づいて前記少なくとも1つのメディアソースブロックを複数のメディア記号に区分するステップと、
    前記少なくとも1つのメディアソースブロックの何れの部分に、前記複数のメディア記号うちの所定のメディア記号が属するかを規定する、前記メディアソースブロック区分の区分情報を生成するステップと、
    −前記少なくとも1つのメディアソースブロック及び前記区分情報に基づいて前記FEC冗長データを予め計算するステップと、
    を有する請求項1から3のいずれか1項に記載の方法。
  5. −前記FECアルゴリズムの情報及び前記区分情報を前記メディアコンテナファイルに提供するステップを更に有する請求項4記載の方法。
  6. −前記メディアコンテナファイル内の前記少なくとも1つのメディアソースブロックの記憶場所情報を含むプロパティテーブルを前記メディアコンテナファイルに提供するステップを更に有する請求項1から5のいずれか1項に記載の方法。
  7. 前記FEC冗長データはメディアセッション中に使用されるFEC冗長データであり、
    −前記少なくとも1つのメディアソースブロックに基づいてセッション後の修理手順において有用なセッション後のFEC冗長データを計算するステップと、
    −前記セッション後のFEC冗長データを前記メディアコンテナファイルの少なくとも1つのFECリザーバに編成するステップと、
    −前記少なくとも1つのメディアソースブロックと関連付けられる識別子に基づいて前記少なくとも1つのFECリザーバの識別を可能にするメタデータを前記メディアコンテナファイルに提供するステップと、
    を更に有する請求項1からのいずれか1項に記載の方法。
  8. −少なくとも1つのメディアソースブロックをメディアコンテナファイルに編成するように構成されるメディアブロックマネージャと、
    −前記少なくとも1つのメディアソースブロックに基づいて順方向誤り訂正(FEC)冗長データを予め計算するように構成されるFECコーデックと、
    −前記FEC冗長データを前記メディアコンテナファイルの少なくとも1つのFECリザーバに編成するために前記FECコーデックに接続されて構成されるFECデータマネージャと、
    −前記少なくとも1つのメディアソースブロックと前記少なくとも1つのFECリザーバとの関係を提供するメタデータを前記メディアコンテナファイルに提供するように構成されるメタデータマネージャと、
    −i)第1レベルのFECリザーバ・オーバヘッドを有するファイルの単一方向配信のためのプロトコル(FLUTE)データパケットの第1の単一のメディアストリームを形成するために、前記少なくとも1つのメディアソースブロックのそれぞれからのメディアデータ、及び、関連するFECリザーバのそれぞれからのFEC冗長データ、のコンパイルを規定するコンパイル命令の第1セットを第1のヒントトラックとして前記メタデータマネージャによって提供される前記メタデータに基づいて生成し、ii)前記第1レベルのFECリザーバ・オーバヘッドとは異なる第2レベルのFECリザーバ・オーバヘッドを有するFLUTEデータパケットの第2の単一のメディアストリームを形成するために、前記少なくとも1つのメディアソースブロックのそれぞれからのメディアデータ、及び、前記第1の単一のメディアストリームを形成するために使用される関連するFECリザーバのFEC冗長データと同一のFEC記号を再使用する、関連するFECリザーバのそれぞれからのFEC冗長データ、のコンパイルを規定する、コンパイル命令の前記第1セットとは異なるコンパイル命令の第2セットを、前記第1のヒントトラックとは異なる第2のヒントトラックとして、前記メタデータマネージャによって提供される前記メタデータに基づいて生成し、iii)前記第1のヒントトラックと、前記第2のヒントトラックとを、前記メディアコンテナファイルに編成する、ように構成される命令マネージャと、
    を備えるメディアコンテンツサーバ。
  9. −メディアソースファイルを提供するように構成されるメディアソースと、
    −前記メディアソースファイルを前記少なくとも1つのメディアソースブロックに分割するために前記メディアソースに接続されて構成されるファイル分割器と、
    を更に備える請求項記載のメディアコンテンツサーバ。
  10. 前記ファイル分割器は、前記FEC冗長データを予め計算するために前記FECコーデックにより使用されるFECアルゴリズムに少なくとも部分的に基づいて前記メディアソースファイルを前記少なくとも1つのメディアソースブロックに区分するように構成される請求項記載のメディアコンテンツサーバ。
  11. −前記FECコーデックにより使用されるFECアルゴリズムに基づいて前記少なくとも1つのメディアソースブロックを複数のメディア記号に区分し、前記少なくとも1つのメディアソースブロックの何れの部分に、前記複数のメディア記号うちの所定のメディア記号が属するかを規定する、前記メディアソースブロック区分の区分情報を生成するためのブロック区分器を更に具備し、前記FECコーデックは、前記少なくとも1つのメディアソースブロック及び前記区分情報に基づいてFEC冗長データを予め計算するように構成される請求項8から10のいずれか1項に記載のメディアコンテンツサーバ。
  12. −前記FECコーデックにより使用される前記FECアルゴリズムの情報及び前記区分情報を前記メディアコンテナファイルに提供するように構成される情報マネージャを更に備える請求項11記載のメディアコンテンツサーバ。
  13. −前記メディアコンテナファイル内の前記少なくとも1つのメディアソースブロックの記憶場所情報を含むプロパティテーブルを前記メディアコンテナファイルに提供するように構成される情報マネージャを更に備える請求項8から12のいずれか1項に記載のメディアコンテンツサーバ。
  14. FECコーデックにより生成される前記FEC冗長データはメディアセッション中に使用するためのFEC冗長データであり、前記FECコーデックは前記少なくとも1つのメディアソースブロックに基づいてセッション後の修理手順において有用なセッション後のFEC冗長データを計算するように構成され、前記FECデータマネージャは前記FECコーデックにより計算される前記セッション後のFEC冗長データを前記メディアコンテナファイルの少なくとも1つのFECリザーバに編成するように構成され、前記メタデータマネージャは前記少なくとも1つのメディアソースブロックと関連付けられる識別子に基づいて前記少なくとも1つのFECリザーバの識別を可能にするメタデータを前記メディアコンテナファイルに提供する
    ように構成される請求項8から13のいずれか1項に記載のメディアコンテンツサーバ。
JP2008549453A 2006-01-05 2007-01-04 メディアコンテナファイルの管理 Expired - Fee Related JP5112333B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US74309506P 2006-01-05 2006-01-05
US60/743,095 2006-01-05
PCT/SE2007/000005 WO2007078253A2 (en) 2006-01-05 2007-01-04 Media container file management

Publications (2)

Publication Number Publication Date
JP2009522922A JP2009522922A (ja) 2009-06-11
JP5112333B2 true JP5112333B2 (ja) 2013-01-09

Family

ID=38228633

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2008549453A Expired - Fee Related JP5112333B2 (ja) 2006-01-05 2007-01-04 メディアコンテナファイルの管理
JP2008549452A Pending JP2009522921A (ja) 2006-01-05 2007-01-04 メディアコンテナファイルの管理
JP2012119049A Expired - Fee Related JP5542872B2 (ja) 2006-01-05 2012-05-24 メディアコンテナファイルの管理

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2008549452A Pending JP2009522921A (ja) 2006-01-05 2007-01-04 メディアコンテナファイルの管理
JP2012119049A Expired - Fee Related JP5542872B2 (ja) 2006-01-05 2012-05-24 メディアコンテナファイルの管理

Country Status (10)

Country Link
US (2) US8225164B2 (ja)
EP (3) EP2421265B1 (ja)
JP (3) JP5112333B2 (ja)
KR (2) KR101353620B1 (ja)
CN (2) CN101416526B (ja)
AT (1) ATE551787T1 (ja)
DK (1) DK1969857T3 (ja)
ES (2) ES2383230T3 (ja)
PL (2) PL1969857T3 (ja)
WO (2) WO2007078253A2 (ja)

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
EP2348640B1 (en) 2002-10-05 2020-07-15 QUALCOMM Incorporated Systematic encoding of chain reaction codes
US7139960B2 (en) 2003-10-06 2006-11-21 Digital Fountain, Inc. Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters
WO2005112250A2 (en) 2004-05-07 2005-11-24 Digital Fountain, Inc. File download and streaming system
US7721184B2 (en) * 2004-08-11 2010-05-18 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
US8225164B2 (en) * 2006-01-05 2012-07-17 Telefonaktiebolaget Lm Ericsson (Publ) Media container file management
US9136983B2 (en) 2006-02-13 2015-09-15 Digital Fountain, Inc. Streaming and buffering using variable FEC overhead and protection periods
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US8832043B2 (en) 2006-05-31 2014-09-09 International Business Machines Corporation Method and system for transformation of logical data objects for storage
US8769311B2 (en) 2006-05-31 2014-07-01 International Business Machines Corporation Systems and methods for transformation of logical data objects for storage
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US20100211690A1 (en) * 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
WO2008003094A2 (en) 2006-06-29 2008-01-03 Digital Fountain, Inc. Efficient representation of symbol-based transformations with application to encoding and decoding of forward error correction codes
US8010863B2 (en) * 2006-07-28 2011-08-30 Thomson Licensing Method and apparatus for synchronizing multiple multimedia streams
KR100819302B1 (ko) * 2006-12-01 2008-04-02 삼성전자주식회사 광대역 무선 접속 시스템의 멀티캐스트 및 브로드캐스트서비스를 위한 데이터 송수신 방법
US8209605B2 (en) * 2006-12-13 2012-06-26 Pado Metaware Ab Method and system for facilitating the examination of documents
US20080177782A1 (en) * 2007-01-10 2008-07-24 Pado Metaware Ab Method and system for facilitating the production of documents
WO2008135932A2 (en) * 2007-05-04 2008-11-13 Nokia Corporation Media stream recording into a reception hint track of a multimedia container file
US8010507B2 (en) * 2007-05-24 2011-08-30 Pado Metaware Ab Method and system for harmonization of variants of a sequential file
CN101359996B (zh) 2007-08-02 2012-04-04 华为技术有限公司 媒体业务呈现方法及通讯系统以及相关设备
US8085767B2 (en) * 2007-08-30 2011-12-27 General Dynamics C4 Systems, Inc. Systems and methods for reliable message delivery over digital networks
CN101802797B (zh) 2007-09-12 2013-07-17 数字方敦股份有限公司 生成和传达源标识信息以实现可靠的通信
US8849183B2 (en) 2007-10-05 2014-09-30 Qualcomm Incorporated Location and time based filtering of broadcast information
EP2225880A4 (en) * 2007-11-28 2014-04-30 Sonic Ip Inc SYSTEM AND METHOD FOR READING PARTIALLY AVAILABLE MULTIMEDIA CONTENT
CN101889425B (zh) 2007-12-14 2013-10-30 汤姆逊许可公司 通过可变带宽信道进行同播的设备和方法
US9369771B2 (en) 2007-12-18 2016-06-14 Thomson Licensing Apparatus and method for file size estimation over broadcast networks
TW200943975A (en) * 2008-01-09 2009-10-16 Nokia Corp Systems and methods for media container file generation
US20090228716A1 (en) * 2008-02-08 2009-09-10 Pado Metawsre Ab Method and system for distributed coordination of access to digital files
WO2009114111A2 (en) * 2008-03-12 2009-09-17 Packetvideo Corp. System and method for reformatting digital broadcast multimedia for a mobile device
JP5169362B2 (ja) * 2008-03-24 2013-03-27 富士通株式会社 セッション情報複製方法、前記方法を実行する呼制御サーバ及び前記方法のプログラム
EP2109293A1 (en) 2008-04-11 2009-10-14 Thomson Licensing System and method for improving the file transmission reliability
KR101367886B1 (ko) * 2008-05-07 2014-02-26 디지털 파운튼, 인크. 브로드캐스트 채널 상에서의 고속 채널 재핑 및 고품질 스트리밍 보호
US20100023842A1 (en) * 2008-07-25 2010-01-28 Nortel Networks Limited Multisegment loss protection
US8726382B2 (en) * 2008-08-20 2014-05-13 The Boeing Company Methods and systems for automated detection and tracking of network attacks
US8813220B2 (en) 2008-08-20 2014-08-19 The Boeing Company Methods and systems for internet protocol (IP) packet header collection and storage
US8762515B2 (en) * 2008-08-20 2014-06-24 The Boeing Company Methods and systems for collection, tracking, and display of near real time multicast data
WO2010021525A2 (en) * 2008-08-22 2010-02-25 Lg Electronics Inc. A method for processing a web service in an nrt service and a broadcast receiver
JP5228111B2 (ja) * 2008-09-23 2013-07-03 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 画素ブロック処理
US20100094995A1 (en) * 2008-10-14 2010-04-15 Entropic Communications, Inc. Silent Probes in a Communication Network
US8418036B2 (en) * 2008-10-16 2013-04-09 Entropic Communications, Inc. Method and apparatus for performing forward error correction in an orthogonal frequency division multiplexed communication network
US8364657B2 (en) * 2008-10-31 2013-01-29 Disney Enterprises, Inc. System and method for providing media content
US9280778B2 (en) 2008-12-15 2016-03-08 Qualcomm Incorporated Location logging and location and time based filtering
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
JP2010213150A (ja) * 2009-03-12 2010-09-24 Nec Corp 送信装置、大容量ファイル配信システム、同システムにおけるファィル再送制御方法、再送制御プログラム
JP5542912B2 (ja) * 2009-04-09 2014-07-09 テレフオンアクチーボラゲット エル エム エリクソン(パブル) メディア・コンテナ・ファイル管理
US9298722B2 (en) * 2009-07-16 2016-03-29 Novell, Inc. Optimal sequential (de)compression of digital data
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US20110096828A1 (en) * 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
WO2011045816A1 (en) * 2009-10-15 2011-04-21 Vishal Borker Method and apparatus for content delivery over internet
US9900150B2 (en) * 2009-10-30 2018-02-20 International Business Machines Corporation Dispersed storage camera device and method of operation
KR101777347B1 (ko) * 2009-11-13 2017-09-11 삼성전자주식회사 부분화에 기초한 적응적인 스트리밍 방법 및 장치
KR101786051B1 (ko) * 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치
KR101786050B1 (ko) * 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 전송 방법 및 장치
KR101750048B1 (ko) 2009-11-13 2017-07-03 삼성전자주식회사 변속 재생 서비스 제공 방법 및 장치
KR101750049B1 (ko) 2009-11-13 2017-06-22 삼성전자주식회사 적응적인 스트리밍 방법 및 장치
KR101737084B1 (ko) * 2009-12-07 2017-05-17 삼성전자주식회사 메인 콘텐트에 다른 콘텐트를 삽입하여 스트리밍하는 방법 및 장치
US8743178B2 (en) * 2010-01-05 2014-06-03 Dolby Laboratories Licensing Corporation Multi-view video format control
KR101777348B1 (ko) * 2010-02-23 2017-09-11 삼성전자주식회사 데이터 전송 방법 및 장치와 데이터 수신 방법 및 장치
US10216647B2 (en) * 2010-02-27 2019-02-26 International Business Machines Corporation Compacting dispersed storage space
US11429486B1 (en) 2010-02-27 2022-08-30 Pure Storage, Inc. Rebuilding data via locally decodable redundancy in a vast storage network
US9136981B2 (en) * 2010-03-03 2015-09-15 Qualcomm Incorporated Block aggregation of objects in a communication system
KR20110105710A (ko) * 2010-03-19 2011-09-27 삼성전자주식회사 복수의 챕터를 포함하는 콘텐트를 적응적으로 스트리밍하는 방법 및 장치
JP5174076B2 (ja) * 2010-03-30 2013-04-03 株式会社東芝 計算処理装置、受信処理装置、受信処理方法及び受信処理プログラム
KR101837687B1 (ko) 2010-06-04 2018-03-12 삼성전자주식회사 콘텐트의 품질을 결정하는 복수의 인자에 기초한 적응적인 스트리밍 방법 및 장치
US9049497B2 (en) 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
TW201222284A (en) * 2010-11-16 2012-06-01 Hon Hai Prec Ind Co Ltd Method for generating media file list
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9485108B2 (en) * 2011-03-14 2016-11-01 Qualcomm Incorporated System and apparatus for using multichannel file delivery over unidirectional transport (“FLUTE”) protocol for delivering different classes of files in a broadcast network
CN102739417B (zh) * 2011-04-01 2014-08-20 华为技术有限公司 流媒体业务处理系统及故障检测方法
WO2012148388A1 (en) * 2011-04-26 2012-11-01 Research In Motion Limited Representation grouping for http streaming
US9451401B2 (en) 2011-05-27 2016-09-20 Qualcomm Incorporated Application transport level location filtering of internet protocol multicast content delivery
US8768782B1 (en) 2011-06-10 2014-07-01 Linkedin Corporation Optimized cloud computing fact checking
US9087048B2 (en) 2011-06-10 2015-07-21 Linkedin Corporation Method of and system for validating a fact checking system
KR20120138604A (ko) * 2011-06-14 2012-12-26 삼성전자주식회사 멀티미디어 시스템에서 복합 미디어 컨텐츠를 송수신하는 방법 및 장치
US9590814B2 (en) * 2011-08-01 2017-03-07 Qualcomm Incorporated Method and apparatus for transport of dynamic adaptive streaming over HTTP (DASH) initialization segment description fragments as user service description fragments
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
KR101967884B1 (ko) * 2012-07-12 2019-04-12 삼성전자주식회사 방송 및 통신 시스템에서 패킷 송/수신 장치 및 방법
CA2874714A1 (en) * 2012-08-15 2014-02-20 Sony Corporation Broadband delivery of personalization information for advanced tv services
US9483159B2 (en) 2012-12-12 2016-11-01 Linkedin Corporation Fact checking graphical user interface including fact checking icons
KR102127685B1 (ko) 2013-04-17 2020-06-29 삼성전자주식회사 순방향 오류 정정 패킷 송수신 장치 및 방법
US9781181B2 (en) * 2013-06-17 2017-10-03 Qualcomm Incorporated Multiple file delivery over unidirectional transport protocol sessions for a service
WO2015001947A1 (ja) * 2013-07-05 2015-01-08 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
US20150095320A1 (en) * 2013-09-27 2015-04-02 Trooclick France Apparatus, systems and methods for scoring the reliability of online information
US10169424B2 (en) * 2013-09-27 2019-01-01 Lucas J. Myslinski Apparatus, systems and methods for scoring and distributing the reliability of online information
WO2015126223A1 (en) * 2014-02-24 2015-08-27 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
US8990234B1 (en) 2014-02-28 2015-03-24 Lucas J. Myslinski Efficient fact checking method and system
US9643722B1 (en) 2014-02-28 2017-05-09 Lucas J. Myslinski Drone device security system
US9972055B2 (en) 2014-02-28 2018-05-15 Lucas J. Myslinski Fact checking method and system utilizing social networking information
DE102014102898A1 (de) 2014-03-05 2015-09-10 Technische Universität München Vorrichtung und Verfahren zur Datenübertragung
JP6181876B2 (ja) * 2014-06-25 2017-08-16 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd マルチメディア情報を管理する方法、装置、及び無人航空機
US9455750B2 (en) 2014-07-28 2016-09-27 Qualcomm Incorporated Source block size selection
US9189514B1 (en) 2014-09-04 2015-11-17 Lucas J. Myslinski Optimized fact checking method and system
WO2016097482A1 (en) * 2014-12-19 2016-06-23 Nokia Technologies Oy Media encapsulating and decapsulating
US10129308B2 (en) * 2015-01-08 2018-11-13 Qualcomm Incorporated Session description information for over-the-air broadcast media data
US10136153B2 (en) * 2015-02-04 2018-11-20 Telefonaktiebolaget Lm Ericsson (Publ) DRAP identification and decoding
US9787430B2 (en) * 2015-05-01 2017-10-10 Qualcomm Incorporated Dynamic setting of FEC in eMBMS video streaming
US20160323063A1 (en) * 2015-05-01 2016-11-03 Qualcomm Incorporated Bundled Forward Error Correction (FEC) for Multiple Sequenced Flows
EP3306937A1 (en) 2016-10-05 2018-04-11 Thomson Licensing Method and apparatus for encoding and decoding a video
US10785311B2 (en) * 2016-11-08 2020-09-22 Pearson Education, Inc. Secure cloud-managed content delivery computer ecosystem
US11785094B2 (en) 2016-11-08 2023-10-10 Pearson Education, Inc. Secure content delivery computer system
US11256788B2 (en) 2017-02-13 2022-02-22 Tunego, Inc. Tokenized media content management
US10860694B2 (en) 2017-02-13 2020-12-08 Tunego, Inc. Systems and methods for content metadata management
US11687628B2 (en) 2017-02-13 2023-06-27 Tunego, Inc. Non-fungible token (NFT) authenticity protocol with fraud deterrent
US11604858B2 (en) 2017-02-13 2023-03-14 Tunego, Inc. Media content management
US11250111B2 (en) 2017-02-13 2022-02-15 Tunego, Inc. Tokenized media content management
CN107967837A (zh) * 2017-05-31 2018-04-27 常州信息职业技术学院 一种基于容器的实训平台及其实施方法
US11392637B2 (en) * 2019-07-10 2022-07-19 Tunego, Inc. Systems and methods for content metadata management
US11385923B2 (en) * 2019-07-16 2022-07-12 International Business Machines Corporation Container-based virtualization system extending kernel functionality using kernel modules compiled by a compiling container and loaded by an application container
EP4200723A1 (en) * 2020-08-20 2023-06-28 Pearson Education, Inc. Secure content delivery computer system
CN114499993B (zh) * 2021-12-30 2022-11-29 郑州大学 一种基于单向光闸的高可靠性安全传输与控制系统及方法

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516435B1 (en) * 1997-06-04 2003-02-04 Kabushiki Kaisha Toshiba Code transmission scheme for communication system using error correcting codes
JP3571918B2 (ja) * 1997-06-04 2004-09-29 株式会社東芝 符号伝送方法、送信装置、受信装置および通信システム
JPH11196072A (ja) * 1997-12-30 1999-07-21 Sony Corp 誤り訂正符号化方法及びその装置並びにデータ伝送方法
US6134243A (en) * 1998-01-15 2000-10-17 Apple Computer, Inc. Method and apparatus for media data transmission
JP2000078197A (ja) * 1998-09-03 2000-03-14 Toshiba Corp 通信ノード及びパケット転送方法
US6754277B1 (en) * 1998-10-06 2004-06-22 Texas Instruments Incorporated Error protection for compressed video
JP2000267699A (ja) 1999-03-19 2000-09-29 Nippon Telegr & Teleph Corp <Ntt> 音響信号符号化方法および装置、そのプログラム記録媒体、および音響信号復号装置
JP2001086153A (ja) * 1999-09-09 2001-03-30 Canon Inc データ通信装置、データ通信システム、データ通信方法及び記憶媒体
US6732314B1 (en) * 2000-05-26 2004-05-04 3Com Corporation Method and apparatus for L2TP forward error correction
US6990151B2 (en) * 2001-03-05 2006-01-24 Intervideo, Inc. Systems and methods for enhanced error concealment in a video decoder
US7111221B2 (en) * 2001-04-02 2006-09-19 Koninklijke Philips Electronics N.V. Digital transmission system for an enhanced ATSC 8-VSB system
KR100469721B1 (ko) * 2001-06-16 2005-02-02 삼성전자주식회사 고속순방향패킷전송 방식의 이동통신시스템에서의 사용자데이터 전송방법 및 장치
JP2003152752A (ja) * 2001-08-29 2003-05-23 Matsushita Electric Ind Co Ltd データ送受信方法
JP2004005934A (ja) 2002-04-05 2004-01-08 Matsushita Electric Ind Co Ltd 記録媒体、記録装置、再生装置、記録方法、再生方法、及びプログラム
CN1468002A (zh) * 2002-06-27 2004-01-14 上海汉唐科技有限公司 基于因特网的流媒体压缩、传输与存贮系统
JP2004088766A (ja) 2002-07-22 2004-03-18 Matsushita Electric Ind Co Ltd データ管理装置及びデータ管理システム
EP2348640B1 (en) * 2002-10-05 2020-07-15 QUALCOMM Incorporated Systematic encoding of chain reaction codes
DE60310249T2 (de) * 2002-10-15 2007-07-05 Koninklijke Philips Electronics N.V. System und verfahren zur bereitstellung von fehlerbehebung für streaming-fgs-codierte videosignale über ein ip-netzwerk
JP4250477B2 (ja) 2003-07-15 2009-04-08 キヤノン株式会社 メディアデータ記録方法、メディアデータ記録装置、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体
GB2406488A (en) * 2003-09-29 2005-03-30 Nokia Corp Sigalling in a communications network
GB2406483A (en) * 2003-09-29 2005-03-30 Nokia Corp Burst transmission
SE0302778D0 (sv) 2003-10-17 2003-10-17 Ericsson Telefon Ab L M Container format for multimedia presentations
US20050102371A1 (en) * 2003-11-07 2005-05-12 Emre Aksu Streaming from a server to a client
EP1685669B1 (en) * 2003-11-12 2012-01-11 Philips Intellectual Property & Standards GmbH Data packet transmission
KR20080066823A (ko) 2004-01-28 2008-07-16 닛본 덴끼 가부시끼가이샤 컨텐츠의 부호화, 배신 및, 수신 방법과 장치와 시스템그리고 프로그램
US8296436B2 (en) * 2004-03-22 2012-10-23 Nokia Corporation Conveying parameters for broadcast/multicast sessions via a communication protocol
US20050216472A1 (en) * 2004-03-29 2005-09-29 David Leon Efficient multicast/broadcast distribution of formatted data
GB2415873A (en) * 2004-06-30 2006-01-04 Nokia Corp Erasure information generation in Forward Error Correction decoding
US8270343B2 (en) * 2004-12-20 2012-09-18 Freescale Semiconductor, Inc. Broadcasting of textual and multimedia information
US20060291475A1 (en) * 2005-06-28 2006-12-28 Noam Cohen Selective forward error correction
US20070002852A1 (en) * 2005-06-30 2007-01-04 Nokia Corporation Fixed interleaving length for MPE-FEC
US20070186005A1 (en) * 2005-09-01 2007-08-09 Nokia Corporation Method to embedding SVG content into ISO base media file format for progressive downloading and streaming of rich media content
US8225164B2 (en) * 2006-01-05 2012-07-17 Telefonaktiebolaget Lm Ericsson (Publ) Media container file management
TW200943975A (en) * 2008-01-09 2009-10-16 Nokia Corp Systems and methods for media container file generation
US8787153B2 (en) * 2008-02-10 2014-07-22 Cisco Technology, Inc. Forward error correction based data recovery with path diversity
US7940777B2 (en) * 2008-02-26 2011-05-10 Cisco Technology, Inc. Loss-free packet networks

Also Published As

Publication number Publication date
CN101366287A (zh) 2009-02-11
ATE551787T1 (de) 2012-04-15
PL1969857T3 (pl) 2012-10-31
JP5542872B2 (ja) 2014-07-09
ES2392461T3 (es) 2012-12-10
EP2421265B1 (en) 2013-10-02
US8185794B2 (en) 2012-05-22
WO2007078252A3 (en) 2008-11-27
JP2012199974A (ja) 2012-10-18
EP1969856A2 (en) 2008-09-17
US20090089535A1 (en) 2009-04-02
KR20080081954A (ko) 2008-09-10
EP1969857A2 (en) 2008-09-17
WO2007078252A2 (en) 2007-07-12
KR101274422B1 (ko) 2013-06-14
CN101416526A (zh) 2009-04-22
EP1969856B1 (en) 2012-08-15
CN101416526B (zh) 2013-06-19
EP2421265A1 (en) 2012-02-22
KR20080083299A (ko) 2008-09-17
WO2007078253A3 (en) 2007-08-30
DK1969857T3 (da) 2012-07-16
JP2009522921A (ja) 2009-06-11
PL1969856T3 (pl) 2013-01-31
EP1969857B1 (en) 2012-03-28
WO2007078253A2 (en) 2007-07-12
ES2383230T3 (es) 2012-06-19
US20100023525A1 (en) 2010-01-28
KR101353620B1 (ko) 2014-01-20
JP2009522922A (ja) 2009-06-11
CN101366287B (zh) 2011-09-21
US8225164B2 (en) 2012-07-17

Similar Documents

Publication Publication Date Title
JP5112333B2 (ja) メディアコンテナファイルの管理
US9350488B2 (en) Content delivery system with allocation of source data and repair data among HTTP servers
US20170026148A1 (en) Universal object delivery and template-based file delivery
US20090177942A1 (en) Systems and methods for media container file generation
JP5795446B2 (ja) Httpサーバの間でのソースデータおよび修復データの割り当てを伴うコンテンツ配送システム
US20070186005A1 (en) Method to embedding SVG content into ISO base media file format for progressive downloading and streaming of rich media content
CN1754370A (zh) 用于广播多媒体内容的系统
CN104040993A (zh) 用于发送相应地接收媒体流的方法
CN101243675A (zh) 用于动态丰富媒体场景的传送机制
KR102381335B1 (ko) 모바일 사용자 장치들에 컨텐츠를 전송하는 방법
EP4002857A1 (en) Method and system for customized audio and/or video content delivery
JP2010507953A (ja) 単方向データ伝送システムにおけるシーンデータの伝送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120319

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: 20121001

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121010

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5112333

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees