JP2022550528A - 適応ビットレートマルチキャストのための修復機構 - Google Patents
適応ビットレートマルチキャストのための修復機構 Download PDFInfo
- Publication number
- JP2022550528A JP2022550528A JP2022519195A JP2022519195A JP2022550528A JP 2022550528 A JP2022550528 A JP 2022550528A JP 2022519195 A JP2022519195 A JP 2022519195A JP 2022519195 A JP2022519195 A JP 2022519195A JP 2022550528 A JP2022550528 A JP 2022550528A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- data
- header
- media
- media data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000003044 adaptive effect Effects 0.000 title description 3
- 230000008263 repair mechanism Effects 0.000 title 1
- 230000007727 signaling mechanism Effects 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims description 82
- 238000003860 storage Methods 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 27
- 230000011664 signaling Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 8
- 239000012634 fragment Substances 0.000 description 38
- 230000000875 corresponding effect Effects 0.000 description 24
- 238000005538 encapsulation Methods 0.000 description 23
- 230000007246 mechanism Effects 0.000 description 23
- 230000006978 adaptation Effects 0.000 description 22
- 238000001514 detection method Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 13
- 230000002123 temporal effect Effects 0.000 description 12
- 230000008439 repair process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000012546 transfer Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 101100412093 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rec16 gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- FMYKJLXRRQTBOR-UBFHEZILSA-N (2s)-2-acetamido-4-methyl-n-[4-methyl-1-oxo-1-[[(2s)-1-oxohexan-2-yl]amino]pentan-2-yl]pentanamide Chemical group CCCC[C@@H](C=O)NC(=O)C(CC(C)C)NC(=O)[C@H](CC(C)C)NC(C)=O FMYKJLXRRQTBOR-UBFHEZILSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64746—Control signals issued by the network directed to the server or the client
- H04N21/64761—Control signals issued by the network directed to the server or the client directed to the server
- H04N21/64776—Control signals issued by the network directed to the server or the client directed to the server for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/08—Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
- H04L43/0835—One way packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/087—Jitter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/232—Content retrieval operation locally within server, e.g. reading video streams from disk arrays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/262—Content 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/26208—Content 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/26233—Content 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 content or additional data duration or size, e.g. length of a movie, size of an executable file
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/64—Addressing
- H04N21/6405—Multicasting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/64—Addressing
- H04N21/6408—Unicasting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/643—Communication protocols
- H04N21/64322—IP
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
メディアデータを取り出すための例示的なデバイスが、メディアデータを記憶するように構成されたメモリと、回路中に実装された1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、パケット損失シグナリング機構を示すデータを受信することと、パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つを備え;パケット損失シグナリング機構のうちの少なくとも1つを使用してパケットの損失を検出することと、損失したパケットは、消失したメディアデータを含み;ファイル配信ヘッダの情報を使用して、消失したメディアデータについてのバイト範囲要求を生成することと;適切なメディアオブジェクトをメディアアプリケーションに配信することと、を行うように構成される。【選択図】図6
Description
[0001]本出願は、各々の内容全体が参照により本明細書に組み込まれる、2020年9月30日に出願された米国出願第17/039,442号、および2019年10月1日に出願された米国仮出願第62/908,949号の利益を主張する。
[0002]本開示は、メディアデータのトランスポートに関する。
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するための、MPEG-2、MPEG-4、ITU-T H.263またはITU-T H.264/MPEG-4,Part10,アドバンストビデオコーディング(AVC)、(高効率ビデオコーディング(HEVC)とも呼ばれる)ITU-T H.265によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
[0004]ビデオデータが符号化された後に、ビデオデータは送信または記憶のためにパケット化され得る。ビデオデータは、国際標準化機構(ISO)ベースメディアファイルフォーマットおよびそれの拡張など、様々な規格のいずれかに準拠するビデオファイルにアセンブルされ得る。
[0005]概して、本開示は、パケット損失を検出し、損失したメディアデータを取り出すための技法について説明する。特に、本開示の技法によれば、サーバデバイスが、ストリーミングされたメディアビットストリームについてのパケット損失を検出するためにクライアントデバイスによって使用されるべきパケット損失シグナリング機構(mechanism)をシグナリングし得る。パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本ユニフォームリソースロケータ(URL)、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイント、のうちの1つまたは複数であり得る。クライアントデバイスは、ストリーミングされたメディアビットストリーム中の損失したパケットを検出するために(1つまたは複数の)パケット損失シグナリング機構を使用し得る。損失したパケットを検出したことに応答して、クライアントデバイスは、損失したパケット中に含まれるメディアデータを含むメディアファイルの一部分(たとえば、セグメント)を指定するバイト範囲要求を使用して、損失したパケットの一部または全部の(some or all)消失したメディアデータを取り出し得る。このようにして、クライアントデバイスは適切なメディアオブジェクトを取得し得、ここで、適切なメディアオブジェクトは、依然として、消失したメディアデータの一部を消失していることがあるが、適切なメディアオブジェクトが適切にパースされ、復号され、提示され得るようにフォーマットされ得る。
[0006]一例では、メディアデータを取り出す方法は、パケット損失シグナリング機構を示すデータを受信することと、パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイント、のうちの少なくとも1つを備え;パケット損失シグナリング機構のうちの少なくとも1つを使用してパケットの損失を検出することと、損失したパケットは、消失したメディアデータを含み;ファイル配信ヘッダの情報を使用して、消失したメディアデータについてのバイト範囲要求を生成することと;適切なメディアオブジェクトをメディアアプリケーションに配信することと、を含む。
[0007]別の例では、メディアデータを取り出すためのデバイスは、メディアデータを記憶するように構成されたメモリと、回路中に実装された1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、パケット損失シグナリング機構を示すデータを受信することと、パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイント、のうちの少なくとも1つを備え;パケット損失シグナリング機構のうちの少なくとも1つを使用してパケットの損失を検出することと、損失したパケットが、消失したメディアデータを含み;ファイル配信ヘッダの情報を使用して、消失したメディアデータについてのバイト範囲要求を生成することと;適切なメディアオブジェクトをメディアアプリケーションに配信することと、を行うように構成される。
[0008]別の例では、命令が記憶されたコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、プロセッサに、パケット損失シグナリング機構を示すデータを受信することと、パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイント、のうちの少なくとも1つを備え;パケット損失シグナリング機構のうちの少なくとも1つを使用してパケットの損失を検出することと、損失したパケットは、消失したメディアデータを含み;ファイル配信ヘッダの情報を使用して、消失したメディアデータについてのバイト範囲要求を生成することと;適切なメディアオブジェクトをメディアアプリケーションに配信することと、を行わせる。
[0009]別の例では、メディアデータを取り出すためのデバイスが、パケット損失シグナリング機構を示すデータを受信するための手段と、パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイント、のうちの少なくとも1つを備え;パケット損失シグナリング機構のうちの少なくとも1つを使用してパケットの損失を検出するための手段と、損失したパケットが、消失したメディアデータを含み;ファイル配信ヘッダの情報を使用して、消失したメディアデータについてのバイト範囲要求を生成するための手段と;適切なメディアオブジェクトをメディアアプリケーションに配信するための手段と、を含む。
[0010]別の例では、メディアデータを送出する方法が、パケット損失シグナリング機構を示すデータを送出することと、パケット損失シグナリング機構が、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイント、のうちの少なくとも1つを備え;ブロードキャストまたはマルチキャストプロトコルを介してメディアデータを含む1つまたは複数のパケットを送出することと;損失したパケットのうちの1つのメディアデータを示すバイト範囲要求を、ユニキャストプロトコルを介してクライアントデバイスから受信することと;バイト範囲要求に応答して、ユニキャストプロトコルを介してクライアントデバイスにバイト範囲のメディアデータを送出することと、を含む。
[0011]別の例では、メディアデータを送出するためのデバイスが、ビデオデータを記憶するように構成されたメモリと、回路中に実装された1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、パケット損失シグナリング機構を示すデータを送出することと、パケット損失シグナリング機構が、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイント、のうちの少なくとも1つを備え;ブロードキャストまたはマルチキャストプロトコルを介してメディアデータを含む1つまたは複数のパケットを送出することと;損失したパケットのうちの1つのメディアデータを示すバイト範囲要求を、ユニキャストプロトコルを介してクライアントデバイスから受信することと;バイト範囲要求に応答して、ユニキャストプロトコルを介してクライアントデバイスにバイト範囲のメディアデータを送出することと、を行うように構成される。
[0012]別の例では、命令が記憶されたコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、プロセッサに、パケット損失シグナリング機構を示すデータを送出することと、パケット損失シグナリング機構が、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイント、のうちの少なくとも1つを備え;ブロードキャストまたはマルチキャストプロトコルを介してメディアデータを含む1つまたは複数のパケットを送出することと;損失したパケットのうちの1つのメディアデータを示すバイト範囲要求を、ユニキャストプロトコルを介してクライアントデバイスから受信することと;バイト範囲要求に応答して、ユニキャストプロトコルを介してクライアントデバイスにバイト範囲のメディアデータを送出することと、を行わせる。
[0013]別の例では、メディアデータを送出するためのデバイスが、パケット損失シグナリング機構を示すデータを送出するための手段と、パケット損失シグナリング機構が、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイント、のうちの少なくとも1つを備え;ブロードキャストまたはマルチキャストプロトコルを介してメディアデータを含む1つまたは複数のパケットを送出するための手段と;損失したパケットのうちの1つのメディアデータを示すバイト範囲要求を、ユニキャストプロトコルを介してクライアントデバイスから受信するための手段と;バイト範囲要求に応答して、ユニキャストプロトコルを介してクライアントデバイスにバイト範囲のメディアデータを送出するための手段と、を含む。
[0014]1つまたは複数の例の詳細が添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
[0021]tools.ietf.org/html/rfc6726において入手可能な、T.Pailaら、「FLUTE-File Delivery over Unidirectional Transport」、ネットワークワーキンググループ、RFC6726、2012年11月に記載されている、ファイル配信オーバー単方向トランスポート(FLUTE:File Delivery over Unidirectional Transport)、およびROUTEのような、単方向コンテンツ配信プロトコルは、マルチキャストプロトコルの様々なレベルでのパケット損失の検出のための様々な機構を指定する。この損失検出は、トランスポートオブジェクト全体がパケットの損失により損失しないように、修復プロシージャをトリガすることを可能にする。修復は、一般に、バイト範囲要求として始動され、したがって、受信機は、そのような要求を始動するために十分な情報を有する必要がある。
[0022]プロシージャは、以下のようなセットアップであり得る。送出機は、損失したパケットを識別し、修復プロシージャを可能にするために、コンテンツ配信プロトコルセットアップにおいて、および個々のパケット中で情報(たとえば、必要とされる情報)を与える。受信機は、その情報を使用して、一般にユニキャストバイト範囲要求によって、その情報を修復するか、あるいは、それらが利用可能でないかもしくは不成功であるか、または遅れている場合、損失は、HTTPインターフェースを通してシグナリングされ得るか、のいずれかである。
[0023]損失検出シグナリング機構は、以下を含み得る。最も低いレベルでは、損失したパケットの検出は、トランスポートパケットのヘッダ中で直接シグナリングすることによって可能にされ得る。たとえば、ROUTEでは、オブジェクトならびにオブジェクト内のパケットがシーケンス順序で送出されるモードが使用されるとき、LCTパケットヘッダ中のstart_offsetフィールドおよびBフラグ、EXT_TOL LCT拡張ヘッダ、ならびにトランスポートオブジェクト識別子(TOI)フィールドが使用され得る。start_offsetフィールドは、配信オブジェクトの最初のバイトに対する、現在のパケット中のデータの開始バイト位置を示す。ここで、パケットは、配信オブジェクトの隣接する(複数の)データ部分からなる。したがって、受信機は、最後のパケットのstart_offsetおよびペイロードのサイズに一致しないstart_offsetをもつパケットを受信すると、損失したパケットを検出することができる。bフラグは、配信オブジェクトの最後のパケット中で設定され得る。これは、(トランスポートオブジェクトの長さをシグナリングする)EXT_TOL LCTヘッダ拡張および/またはTOIフィールドとともに、パケットの損失を検出するために使用され得る。たとえば、設定されたBフラグをもつパケットを受信することなしでの新しいTOIをもつパケットの受信の開始は、損失したパケットを示し得る。
[0024]修復シグナリング機構は、以下を含み得る。ROUTEでは、上記のように、パケットのstart_offsetおよびサイズが、配信オブジェクト中の消失したバイト範囲を決定するために使用され得る。したがって、受信されたパケットiに後続し、受信されたパケットkに先行する消失したパケットjの場合、消失したデータのバイト範囲は、「消失したデータバイト範囲=start_offset(i)+サイズ(i)~start_offset(k)-1」である。消失したパケットが配信オブジェクトの最後のパケットである場合、厳密なサイズはこのようにして決定され得ず、受信機は、配信オブジェクトの終了まですべてのバイトを要求しなければならないことになる。
[0025]FLUTEとROUTEの両方が、それぞれ、ファイル配信テーブル(FDT)および拡張FDT(EFDT)インスタンスのための満了時間機構を与える。これはまた、このFDTまたはEFDTインスタンスによってシグナリングされたマルチキャストパケットが上記のタイムアウト後に予想されないことがあることを暗黙的にシグナリングする。FDT/EFDTにおいてAlternate-Content-Location-1要素およびAlternate-Content-Location-2要素をシグナリングすることは、ゲートウェイが、ユニキャストを介して同じオブジェクトにアクセスするためのロケーションを見つけることを可能にする。また、FDT/EFDTインスタンスにおけるオブジェクトメタデータ満了タイムアウトが、上記で説明されたシグナリングと連携して、またはそれの代わりに、サービス/セッションメタデータシグナリングにおいて制御プレーン中でシグナリングされ得る。制御プレーンは、ユニキャストを介して同じコンテンツのロケーションの再構築を可能にするために基本URLを搬送し得る。
[0026]マルチキャストゲートウェイとDASHプレーヤとの間のシグナリングは、以下を含み得る。マルチキャストゲートウェイがDASHプレーヤへのエラーのないコンテンツの配信を保証することができない場合、そのような場合を扱うために、マルチキャストゲートウェイとDASHプレーヤとの間の特殊シグナリングが必要とされ得る。
[0027]TS26.346、節7.9.2によれば、ストリーミングアプリケーションは部分ファイルを受け付けることができる。ファイルを取り出すためにHTTP GET要求を使用するアプリケーションは、新しい3GPP(登録商標)定義メディアタイプ「application/3gpp-partial」とともに、RFC7231において定義されている「受付(Accept)」要求ヘッダを、HTTP GET要求中に含め得る。ファイルを取り出すためにHTTP GET要求を使用するアプリケーションは、新しい3GPP定義メディアタイプ「application/3gpp-partial」とともに、RFC7231において定義されている「受付」要求ヘッダを、GET要求中に含め得る。このヘッダを与え、そのような部分ファイル受付要求を発行することによって、アプリケーションは、それが部分ファイル応答を受信することが可能であることをシグナリングする。
[0028]そのような受付ヘッダの使用の一例は、以下の通りである。
Accept:*/*,application/3gpp-partial
[0029]この例では、アプリケーションは、それが、応答中のすべてのメディアタイプ、ならびにapplication/3gpp-partialによって指定された特定の「不完全な」タイプを受け付けることを示す。
Accept:*/*,application/3gpp-partial
[0029]この例では、アプリケーションは、それが、応答中のすべてのメディアタイプ、ならびにapplication/3gpp-partialによって指定された特定の「不完全な」タイプを受け付けることを示す。
[0030]MBMSクライアントが、メディアタイプ「application/3gpp-partial」とともに「受付」要求を含む通常HTTP GET要求、すなわち、部分ファイル受付要求を受信し、MBMSクライアントが少なくとも1つのバイトをもつ部分ファイルを受信した場合、MBMSクライアントは、TS26.346に従って以下のように定義される部分ファイル応答で応答し得る。
・ 応答コードは200 OKに設定される
・ Content-Typeヘッダは、application/3gpp-partialに設定されるものとする。
・ Content-Typeヘッダは、application/3gpp-partialに設定されるものとする。
・ メッセージ本文は、マルチパートメッセージ本文であり、RFC7233、アネックスAに記載されているmultipart/byterangesメディアタイプと同じフォーマットであり得る。multipart/byterangesメディアタイプは、各々が、返されている部分ファイルの(1つまたは複数の)バイト範囲を伝達するための手段としてそれ自体のContent-TypeフィールドおよびContent-Rangeフィールドをもつ、1つまたは複数の本文部分を含む。各Content-Typeヘッダは、このファイルについてFDTインスタンスにおいて与えられるContent-Typeの値に設定される。ファイルのContent-Typeに割り当てられたハンドラがファイルにアクセスし得るバイト位置を与える拡張ヘッダ(たとえば、3gpp-access-position)が追加され得る。値は、存在する場合、mbms2015:IndependentUnitPositionsから作成され得る。
・ 中間プロキシが不完全なファイルを記憶し、それを別のアプリケーションにサービスするのを防ぐために、キャッシュディレクティブ(cache directive)が応答中に含められるべきである。そのようなキャッシュディレクティブについての例は、「Cache-Control:max-age=0」または「Cache-Control:no-cache」である。
[0031]MBMSクライアントが部分ファイル受付要求を受信し、MBMSクライアントがバイトをもたない部分ファイルを受信した(すなわち、ファイルメタデータを記述するFDTインスタンスのみが受信された)場合、MBMSクライアントは、以下のように定義される部分ファイル応答で応答し得る。
・ 応答コードは、416 Requested Range Not Satisfiableに設定される
・ Content-Typeヘッダは、このファイルについてFDTインスタンスにおいて与えられるContent-Typeの値に設定される。
・ Content-Typeヘッダは、このファイルについてFDTインスタンスにおいて与えられるContent-Typeの値に設定される。
・ Content-Rangeはbytes */Content-Lengthに設定され、Content-Length属性Content-Lengthの値は、このファイルについてFDTインスタンスにおいて与えられる。
[0032]これについての例は、TS26.346、節7.9.2.3において与えられている。
[0033]本開示の技法は、ISOベースメディアファイルフォーマット、スケーラブルビデオコーディング(SVC)ファイルフォーマット、アドバンストビデオコーディング(AVC)ファイルフォーマット、第3世代パートナーシッププロジェクト(3GPP)ファイルフォーマット、および/またはマルチビュービデオコーディング(MVC)ファイルフォーマット、あるいは他の同様のビデオファイルフォーマットのいずれかに従ってカプセル化されたビデオデータに準拠するビデオファイルに適用され得る。
[0034]HTTPストリーミングでは、頻繁に使用される動作は、HEADと、GETと、部分GETとを含む。HEAD動作は、所与のユニフォームリソースロケータ(URL)またはユニフォームリソースネーム(URN)に関連付けられたファイルのヘッダを、URLまたはURNに関連付けられたペイロードを取り出すことなしに取り出す。GET動作は、所与のURLまたはURNに関連付けられたファイル全体を取り出す。部分GET動作は、入力パラメータとしてバイト範囲を受信し、ファイルの連続するいくつかのバイトを取り出し、ここで、バイトの数は、受信されたバイト範囲に対応する。したがって、部分GET動作は1つまたは複数の個々のムービーフラグメントを得ることができるので、HTTPストリーミングのためのムービーフラグメントが与えられ得る。ムービーフラグメント中に、異なるトラックのいくつかのトラックフラグメントがあり得る。HTTPストリーミングでは、メディアプレゼンテーションは、クライアントにとってアクセス可能であるデータの構造化された集合であり得る。クライアントは、ストリーミングサービスをユーザに提示するために、メディアデータ情報を要求し、ダウンロードし得る。
[0035]HTTPストリーミングを使用して3GPPデータをストリーミングする例では、マルチメディアコンテンツのビデオおよび/またはオーディオデータのための複数の表現があり得る。以下で説明されるように、異なる表現は、異なるコーディング特性(たとえば、ビデオコーディング規格の異なるプロファイルまたはレベル)、異なるコーディング規格または(マルチビューおよび/またはスケーラブル拡張などの)コーディング規格の拡張、あるいは異なるビットレートに対応し得る。そのような表現のマニフェストは、メディアプレゼンテーション記述(MPD)データ構造において定義され得る。メディアプレゼンテーションは、HTTPストリーミングクライアントデバイスにとってアクセス可能であるデータの構造化された集合に対応し得る。HTTPストリーミングクライアントデバイスは、ストリーミングサービスをクライアントデバイスのユーザに提示するために、メディアデータ情報を要求し、ダウンロードし得る。メディアプレゼンテーションは、MPDの更新を含み得るMPDデータ構造中に記述され得る。
[0036]メディアプレゼンテーションは、1つまたは複数の期間のシーケンスを含んでいることがある。各期間は、次の期間の開始まで、または最後の期間の場合、メディアプレゼンテーションの終了まで継続し得る。各期間は、同じメディアコンテンツについて1つまたは複数の表現を含んでいることがある。表現は、オーディオ、ビデオ、タイムドテキスト、または他のそのようなデータのいくつかの代替符号化バージョンのうちの1つであり得る。表現は、符号化タイプによって、たとえば、ビデオデータの場合、ビットレート、解像度、および/またはコーデックによって、ならびに、オーディオデータの場合、ビットレート、言語、および/またはコーデックによって異なり得る。表現という用語は、マルチメディアコンテンツの特定の期間に対応し、特定の方法で符号化された符号化オーディオまたはビデオデータのセクションを指すために使用され得る。
[0037]特定の期間の表現は、それらの表現が属する適応セットを示すMPDにおける属性によって示されるグループに割り当てられ得る。同じ適応セット中の表現は、概して、たとえば帯域幅適応を実施するために、クライアントデバイスがこれらの表現間で動的におよびシームレスに切り替えることができるという点で、互いに対する代替と見なされる。たとえば、特定の期間についてのビデオデータの各表現は、表現のいずれかが、対応する期間についてのマルチメディアコンテンツの、ビデオデータまたはオーディオデータなど、メディアデータを提示するための復号のために選択され得るように、同じ適応セットに割り当てられ得る。ある期間内のメディアコンテンツは、いくつかの例では、存在する場合、グループ0からの1つの表現か、または各非ゼログループからの多くとも1つの表現の組合せのいずれかによって表され得る。期間の各表現についてのタイミングデータは、期間の開始時間に対して表現され得る。
[0038]表現は1つまたは複数のセグメントを含み得る。各表現が初期化セグメントを含み得るか、または表現の各セグメントが自己初期化していることがある。存在するとき、初期化セグメントは、表現にアクセスするための初期化情報を含んでいることがある。概して、初期化セグメントはメディアデータを含んでいない。セグメントは、ユニフォームリソースロケータ(URL)、ユニフォームリソースネーム(URN)、またはユニフォームリソース識別子(URI)などの識別子によって一意に参照され得る。MPDは各セグメントに識別子を与え得る。いくつかの例では、MPDはまた、URL、URN、またはURIによってアクセス可能なファイル内のセグメントのためのデータに対応し得るバイト範囲をrange属性の形態で与え得る。
[0039]異なるタイプのメディアデータについての実質的に同時の取出しのために、異なる表現が選択され得る。たとえば、クライアントデバイスが、セグメントをそこから取り出すべきオーディオ表現、ビデオ表現、およびタイムドテキスト表現を選択し得る。いくつかの例では、クライアントデバイスは、帯域幅適応を実施するための特定の適応セットを選択し得る。すなわち、クライアントデバイスは、ビデオ表現を含む適応セット、オーディオ表現を含む適応セット、および/またはタイムドテキストを含む適応セットを選択し得る。代替的に、クライアントデバイスは、いくつかのタイプのメディア(たとえば、ビデオ)のための適応セットを選択し、他のタイプのメディア(たとえば、オーディオおよび/またはタイムドテキスト)のための表現を直接選択し得る。
[0040]図1は、ネットワークを介してメディアデータをストリーミングするための技法を実装する例示的なシステム10を示すブロック図である。この例では、システム10は、コンテンツ作成(content preparation)デバイス20と、サーバデバイス60と、クライアントデバイス40とを含む。クライアントデバイス40およびサーバデバイス60は、インターネットを備え得るネットワーク74によって通信可能に結合される。いくつかの例では、コンテンツ作成デバイス20およびサーバデバイス60も、ネットワーク74または別のネットワークによって結合され得るか、あるいは直接通信可能に結合され得る。いくつかの例では、コンテンツ作成デバイス20およびサーバデバイス60は同じデバイスを備え得る。
[0041]コンテンツ作成デバイス20は、図1の例では、オーディオソース22とビデオソース24とを備える。オーディオソース22は、たとえば、オーディオエンコーダ26によって符号化されるべき、キャプチャされたオーディオデータを表す電気信号を生成するマイクロフォンを備え得る。代替的に、オーディオソース22は、前に記録されたオーディオデータを記憶する記憶媒体、コンピュータ化シンセサイザなどのオーディオデータ生成器、またはオーディオデータの任意の他のソースを備え得る。ビデオソース24は、ビデオエンコーダ28によって符号化されるべきビデオデータを生成するビデオカメラ、前に記録されたビデオデータで符号化された記憶媒体、コンピュータグラフィックスソースなどのビデオデータ生成ユニット、またはビデオデータの任意の他のソースを備え得る。コンテンツ作成デバイス20は、必ずしもすべての例においてサーバデバイス60に通信可能に結合されるとは限らないが、サーバデバイス60によって読み取られる別個の媒体にマルチメディアコンテンツを記憶し得る。
[0042]未加工(raw)オーディオおよびビデオデータは、アナログまたはデジタルデータを備え得る。アナログデータは、オーディオエンコーダ26および/またはビデオエンコーダ28によって符号化される前にデジタル化され得る。オーディオソース22は、通話参加者が話している間、通話参加者からオーディオデータを取得し得、同時に、ビデオソース24は、通話参加者のビデオデータを取得し得る。他の例では、オーディオソース22は、記憶されたオーディオデータを備えるコンピュータ可読記憶媒体を備え得、ビデオソース24は、記憶されたビデオデータを備えるコンピュータ可読記憶媒体を備え得る。このようにして、本開示で説明される技法は、ライブ、ストリーミング、リアルタイムオーディオおよびビデオデータ、またはアーカイブされた、あらかじめ記録されたオーディオおよびビデオデータに適用され得る。
[0043]ビデオフレームに対応するオーディオフレームは、概して、ビデオフレーム内に含まれているビデオソース24によってキャプチャされた(または生成された)ビデオデータと同時に、オーディオソース22によってキャプチャされた(または生成された)オーディオデータを含んでいるオーディオフレームである。たとえば、通話参加者が概して話すことによってオーディオデータを生成する間、オーディオソース22はオーディオデータをキャプチャし、同時に、すなわちオーディオソース22がオーディオデータをキャプチャしている間、ビデオソース24は通話参加者のビデオデータをキャプチャする。したがって、オーディオフレームは、1つまたは複数の特定のビデオフレームに時間的に対応し得る。したがって、ビデオフレームに対応するオーディオフレームは、概して、オーディオデータとビデオデータとが同時にキャプチャされた状況、およびオーディオフレームとビデオフレームとが、それぞれ、同時にキャプチャされたオーディオデータとビデオデータとを備える状況に対応する。
[0044]いくつかの例では、オーディオエンコーダ26は、符号化オーディオフレームについてのオーディオデータが記録された時間を表す、各符号化オーディオフレームにおけるタイムスタンプを符号化し得、同様に、ビデオエンコーダ28は、符号化ビデオフレームについてのビデオデータが記録された時間を表す、各符号化ビデオフレームにおけるタイムスタンプを符号化し得る。そのような例では、ビデオフレームに対応するオーディオフレームは、タイムスタンプを備えるオーディオフレームと、同じタイムスタンプを備えるビデオフレームとを備え得る。コンテンツ作成デバイス20は、オーディオエンコーダ26および/またはビデオエンコーダ28がそこからタイムスタンプを生成し得るか、あるいはオーディオソース22およびビデオソース24がオーディオデータとビデオデータとをそれぞれタイムスタンプに関連付けるために使用し得る、内部クロックを含み得る。
[0045]いくつかの例では、オーディオソース22は、オーディオデータが記録された時間に対応するデータをオーディオエンコーダ26に送出し得、ビデオソース24は、ビデオデータが記録された時間に対応するデータをビデオエンコーダ28に送出し得る。いくつかの例では、オーディオエンコーダ26は、必ずしもオーディオデータが記録された絶対時間を示すことなしに、符号化オーディオデータの相対時間的順序を示すために、符号化オーディオデータ中のシーケンス識別子を符号化し得、同様に、ビデオエンコーダ28も、符号化ビデオデータの相対時間的順序を示すためにシーケンス識別子を使用し得る。同様に、いくつかの例では、シーケンス識別子は、タイムスタンプでマッピングされるか、またはさもなければタイムスタンプと相関させられ得る。
[0046]オーディオエンコーダ26は概して符号化オーディオデータのストリームを生成し、ビデオエンコーダ28は符号化ビデオデータのストリームを生成する。データの各個々のストリームは(オーディオかビデオかにかかわらず)エレメンタリストリームと呼ばれることがある。エレメンタリストリームは、表現のデジタル的にコード化された(場合によっては圧縮された)単一の成分である。たとえば、表現のコード化ビデオまたはオーディオ部分はエレメンタリストリームであり得る。エレメンタリストリームは、ビデオファイル内にカプセル化される前に、パケット化エレメンタリストリーム(PES)に変換され得る。同じ表現内では、1つのエレメンタリストリームに属するPESパケットを他のものから区別するためにストリームIDが使用され得る。エレメンタリストリームの基本データ単位はパケット化エレメンタリストリーム(PES)パケットである。したがって、コード化ビデオデータは概してエレメンタリビデオストリームに対応する。同様に、オーディオデータは1つまたは複数のそれぞれのエレメンタリストリームに対応する。
[0047]ITU-T H.264/AVCおよび来るべき高効率ビデオコーディング(HEVC)規格など、多くのビデオコーディング規格は、シンタックスと、セマンティクスと、エラーのないビットストリームのための復号プロセスとを定義し、これらのいずれも、あるプロファイルまたはレベルに準拠する。ビデオコーディング規格は、一般に、エンコーダを指定しないが、エンコーダは、生成されたビットストリームがデコーダについて規格に準拠することを保証するというタスクを与えられる。ビデオコーディング規格のコンテキストでは、「プロファイル」は、アルゴリズム、特徴、またはツール、およびそれらに適用される制約のサブセットに対応する。たとえば、H.264規格によって定義される「プロファイル」は、H.264規格によって指定されたビットストリームシンタックス全体のサブセットである。「レベル」は、たとえば、ピクチャの解像度、ビットレート、およびブロック処理レートに関係するデコーダメモリおよび計算など、デコーダリソース消費の制限に対応する。プロファイルはprofile_idc(プロファイルインジケータ)値でシグナリングされ得るが、レベルはlevel_idc(レベルインジケータ)値でシグナリングされ得る。
[0048]H.264規格は、たとえば、所与のプロファイルのシンタックスによって課される限界内で、復号ピクチャの指定されたサイズなど、ビットストリーム中のシンタックス要素によってとられる値に応じて、エンコーダおよびデコーダのパフォーマンスの大きい変動を必要とする可能性が依然としてあることを認識している。H.264規格は、多くの適用例において、特定のプロファイル内でシンタックスのすべての仮定的使用に対処することが可能なデコーダを実装することが実際的でもなく、経済的でもないことをさらに認識している。したがって、H.264規格は、ビットストリーム中のシンタックス要素の値に課された制約の指定されたセットとして「レベル」を定義する。これらの制約は、値に関する単純な制限であり得る。代替的に、これらの制約は、値の演算の組合せ(たとえば、ピクチャの幅×ピクチャの高さ×毎秒復号されるピクチャの数)に関する制約の形態をとり得る。H.264規格は、個々の実装形態が、サポートされるプロファイルごとに異なるレベルをサポートし得ることをさらに規定する。
[0049]プロファイルに準拠するデコーダは、通常、プロファイル中で定義されたすべての特徴をサポートする。たとえば、コーディング特徴として、Bピクチャコーディングは、H.264/AVCのベースラインプロファイルではサポートされないが、H.264/AVCの他のプロファイルではサポートされる。レベルに準拠するデコーダは、レベルにおいて定義された制限を超えてリソースを必要としない任意のビットストリームを復号することが可能であるべきである。プロファイルおよびレベルの定義は、説明可能性のために役立ち得る。たとえば、ビデオ送信中に、プロファイル定義とレベル定義のペアが全送信セッションについてネゴシエートされ、同意され得る。より具体的には、H.264/AVCでは、レベルは、処理される必要があるマクロブロックの数に関する制限と、復号ピクチャバッファ(DPB)サイズと、コード化ピクチャバッファ(CPB)サイズと、垂直動きベクトル範囲と、2つの連続するMBごとの動きベクトルの最大数と、Bブロックが8×8ピクセル未満のサブマクロブロック区分を有することができるかどうかとを定義し得る。このようにして、デコーダは、デコーダがビットストリームを適切に復号することが可能であるかどうかを決定し得る。
[0050]図1の例では、コンテンツ作成デバイス20のカプセル化ユニット30は、ビデオエンコーダ28からのコード化ビデオデータを備えるエレメンタリストリームと、オーディオエンコーダ26からのコード化オーディオデータを備えるエレメンタリストリームとを受信する。いくつかの例では、ビデオエンコーダ28およびオーディオエンコーダ26は各々、符号化データからPESパケットを形成するためのパケッタイザを含み得る。他の例では、ビデオエンコーダ28およびオーディオエンコーダ26は各々、符号化データからPESパケットを形成するためのそれぞれのパケッタイザとインターフェースし得る。さらに他の例では、カプセル化ユニット30は、符号化オーディオデータと符号化ビデオデータとからPESパケットを形成するためのパケッタイザを含み得る。
[0051]ビデオエンコーダ28は、様々なビットレートにおいて、ならびにピクセル解像度、フレームレート、様々なコーディング規格への準拠、様々なコーディング規格のための様々なプロファイルおよび/またはプロファイルのレベルへの準拠、(たとえば、2次元または3次元再生のための)1つまたは複数のビューを有する表現、あるいは他のそのような特性などの様々な特性を用いてマルチメディアコンテンツの異なる表現を生成するために、様々な方法でマルチメディアコンテンツのビデオデータを符号化し得る。本開示で使用される、表現は、オーディオデータ、ビデオデータ、(たとえば、字幕のための)テキストデータ、または他のそのようなデータのうちの1つを備え得る。表現は、オーディオエレメンタリストリームまたはビデオエレメンタリストリームなど、エレメンタリストリームを含み得る。各PESパケットは、PESパケットが属するエレメンタリストリームを識別するstream_idを含み得る。カプセル化ユニット30は、エレメンタリストリームを様々な表現のビデオファイル(たとえば、セグメント)にアセンブルすることを担う。
[0052]カプセル化ユニット30は、オーディオエンコーダ26とビデオエンコーダ28とから表現のエレメンタリストリームのためのPESパケットを受信し、PESパケットから対応するネットワークアブストラクションレイヤ(NAL)ユニットを形成する。コード化ビデオセグメントは、ビデオテレフォニー、記憶、ブロードキャスト、またはストリーミングなどのアプリケーションに対処する「ネットワークフレンドリ」なビデオ表現を与える、NALユニットに編成され得る。NALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと非VCL NALユニットとに分類され得る。VCLユニットは、コア圧縮エンジンを含んでいることがあり、ブロック、マクロブロック、および/またはスライスレベルデータを含み得る。他のNALユニットは非VCL NALユニットであり得る。いくつかの例では、通常は1次コード化ピクチャとして提示される、1つの時間インスタンス中のコード化ピクチャは、1つまたは複数のNALユニットを含み得るアクセスユニット中に含まれていることがある。
[0053]非VCL NALユニットは、特に、パラメータセットNALユニットとSEI NALユニットとを含み得る。パラメータセットは、(シーケンスパラメータセット(SPS)中の)シーケンスレベルヘッダ情報と、(ピクチャパラメータセット(PPS)中の)まれに変化するピクチャレベルヘッダ情報とを含んでいることがある。パラメータセット(たとえば、PPSおよびSPS)がある場合、まれに変化する情報がシーケンスごとまたはピクチャごとに繰り返される必要はなく、したがって、コーディング効率が改善され得る。さらに、パラメータセットの使用は、重要なヘッダ情報の帯域外送信を可能にし、誤り耐性のための冗長送信の必要を回避し得る。帯域外送信の例では、SEI NALユニットなど、他のNALユニットとは異なるチャネル上でパラメータセットNALユニットが送信され得る。
[0054]補足エンハンスメント情報(SEI)は、VCL NALユニットからのコード化ピクチャサンプルを復号するためには必要でないが、復号、表示、誤り耐性、および他の目的に関係するプロセスを支援し得る情報を含んでいることがある。SEIメッセージは、非VCL NALユニット中に含まれていることがある。SEIメッセージは、一部の規格仕様の規範的部分であり、したがって、規格に準拠するデコーダ実装のために常に必須であるとは限らない。SEIメッセージは、シーケンスレベルSEIメッセージまたはピクチャレベルSEIメッセージであり得る。SVCの例におけるスケーラビリティ情報SEIメッセージ、およびMVCにおけるビュースケーラビリティ情報SEIメッセージなどのSEIメッセージ中に、何らかのシーケンスレベル情報が含まれていることがある。これらの例示的なSEIメッセージは、たとえば、動作点の抽出およびそれらの動作点の特性に関する情報を伝達し得る。さらに、カプセル化ユニット30は、表現の特性を記述するメディアプレゼンテーション記述子(MPD)など、マニフェストファイルを形成し得る。カプセル化ユニット30は、拡張可能マークアップ言語(XML)に従ってMPDをフォーマットし得る。
[0055]カプセル化ユニット30は、マニフェストファイル(たとえば、MPD)とともに、マルチメディアコンテンツの1つまたは複数の表現についてのデータを出力インターフェース32に与え得る。出力インターフェース32は、ユニバーサルシリアルバス(USB)インターフェース、CDまたはDVDライターまたはバーナーなど、記憶媒体に書き込むためのネットワークインターフェースまたはインターフェース、磁気またはフラッシュ記憶媒体へのインターフェース、あるいはメディアデータを記憶または送信するための他のインターフェースを備え得る。カプセル化ユニット30は、マルチメディアコンテンツの表現の各々のデータを出力インターフェース32に与え得、出力インターフェース32は、ネットワーク送信または記憶媒体を介してそのデータをサーバデバイス60に送出し得る。図1の例では、サーバデバイス60は、各々がそれぞれのマニフェストファイル66と1つまたは複数の表現68A~68N(表現68)とを含む、様々なマルチメディアコンテンツ64を記憶する記憶媒体62を含む。いくつかの例では、出力インターフェース32はまた、データをネットワーク74に直接送出し得る。
[0056]いくつかの例では、表現68は適応セットに分離され得る。すなわち、表現68の様々なサブセットは、コーデック、プロファイルおよびレベル、解像度、ビューの数、セグメントのためのファイルフォーマット、表現を用いて表示されるべきテキストおよび/または復号され、たとえばスピーカーによって提示されるべきオーディオデータの言語または他の特性を識別し得るテキストタイプ情報、適応セット中の表現のためのシーンのカメラアングルまたは現実世界のカメラパースペクティブを記述し得るカメラアングル情報、特定の視聴者についてのコンテンツ適合性を記述するレーティング情報など、特性のそれぞれの共通セットを含み得る。
[0057]マニフェストファイル66は、特定の適応セットに対応する表現68のサブセットを示すデータ、ならびに適応セットについての共通の特性を含み得る。マニフェストファイル66はまた、ビットレートなど、適応セットの個々の表現についての個々の特性を表すデータを含み得る。このようにして、適応セットは、簡略化されたネットワーク帯域幅適応を可能にし得る。適応セット中の表現は、マニフェストファイル66の適応セット要素の子要素を使用して示され得る。
[0058]サーバデバイス60は、要求処理ユニット70とネットワークインターフェース72とを含む。いくつかの例では、サーバデバイス60は複数のネットワークインターフェースを含み得る。さらに、サーバデバイス60の特徴のうちのいずれかまたはすべてが、ルータ、ブリッジ、プロキシデバイス、スイッチ、または他のデバイスなど、コンテンツ配信ネットワークの他のデバイス上で実装され得る。いくつかの例では、コンテンツ配信ネットワークの中間デバイスは、マルチメディアコンテンツ64のデータをキャッシュし、サーバデバイス60の構成要素に実質的に準拠する構成要素を含み得る。概して、ネットワークインターフェース72は、ネットワーク74を介してデータを送出し、受信するように構成される。
[0059]要求処理ユニット70は、クライアントデバイス40などのクライアントデバイスから、記憶媒体62のデータについてのネットワーク要求を受信するように構成される。たとえば、要求処理ユニット70は、R.Fieldingらによる、RFC2616、「Hypertext Transfer Protocol - HTTP/1.1」、ネットワークワーキンググループ、IETF、1999年6月に記載されている、ハイパーテキスト転送プロトコル(HTTP)バージョン1.1を実装し得る。すなわち、要求処理ユニット70は、HTTP GET要求または部分GET要求を受信し、これらの要求に応答してマルチメディアコンテンツ64のデータを与えるように構成され得る。要求は、たとえば、セグメントのURLを使用して、表現68のうちの1つのセグメントを指定し得る。いくつかの例では、要求はまた、セグメントの1つまたは複数のバイト範囲を指定し、したがって部分GET要求を備え得る。要求処理ユニット70は、表現68のうちの1つのセグメントのヘッダデータを与えるためのHTTP HEAD要求をサービスするようにさらに構成され得る。いずれの場合も、要求処理ユニット70は、要求されたデータをクライアントデバイス40などの要求元デバイスに与えるために要求を処理するように構成され得る。
[0060]追加または代替として、要求処理ユニット70は、eMBMSなどのブロードキャストまたはマルチキャストプロトコルを介してメディアデータを配信するように構成され得る。コンテンツ作成デバイス20は、説明された方法と実質的に同じ方法でDASHセグメントおよび/またはサブセグメントを作成し得るが、サーバデバイス60は、eMBMSあるいは別のブロードキャストまたはマルチキャストネットワークトランスポートプロトコルを使用して、これらのセグメントまたはサブセグメントを配信し得る。たとえば、要求処理ユニット70は、クライアントデバイス40からマルチキャストグループ加入要求を受信するように構成され得る。すなわち、サーバデバイス60は、マルチキャストグループに関連付けられたインターネットプロトコル(IP)アドレスを、クライアントデバイス40を含む、特定のメディアコンテンツ(たとえば、ライブイベントのブロードキャスト)に関連付けられたクライアントデバイスに広告し得る。クライアントデバイス40は、マルチキャストグループに加入するための要求をサブミットし得る。この要求は、ネットワーク74、たとえば、ネットワーク74を構成するルータ全体にわたって伝搬され得、その結果、ルータは、マルチキャストグループに関連付けられたIPアドレスに宛てられたトラフィックを、クライアントデバイス40など、サブスクライブするクライアントデバイスに向けさせられる。
[0061]図1の例に示されているように、マルチメディアコンテンツ64は、メディアプレゼンテーション記述(MPD)に対応し得るマニフェストファイル66を含む。マニフェストファイル66は、異なる代替表現68(たとえば、異なる品質をもつビデオサービス)の記述を含んでいることがあり、その記述は、たとえば、表現68のコーデック情報、プロファイル値、レベル値、ビットレート、および他の記述特性を含み得る。クライアントデバイス40は、表現68のセグメントにどのようにアクセスすべきかを決定するためにメディアプレゼンテーションのMPDを取り出し得る。
[0062]特に、取出しユニット52は、ビデオデコーダ48の復号能力とビデオ出力44のレンダリング能力とを決定するために、クライアントデバイス40の構成データ(図示せず)を取り出し得る。構成データはまた、クライアントデバイス40のユーザによって選択された言語の選好、クライアントデバイス40のユーザによって設定された深度の選好に対応する1つまたは複数のカメラパースペクティブ、および/またはクライアントデバイス40のユーザによって選択されたレーティングの選好のうちのいずれかまたはすべてを含み得る。取出しユニット52は、たとえば、HTTP GET要求と部分GET要求とをサブミットするように構成されたウェブブラウザまたはメディアクライアントを備え得る。取出しユニット52は、クライアントデバイス40の1つまたは複数のプロセッサまたは処理ユニット(図示せず)によって実行されるソフトウェア命令に対応し得る。いくつかの例では、取出しユニット52に関して説明される機能のすべてまたは部分が、ハードウェア、あるいはハードウェア、ソフトウェア、および/またはファームウェアの組合せで実装され得、ソフトウェアまたはファームウェアのための命令を実行するために、必須のハードウェアが与えられ得る。
[0063]取出しユニット52は、クライアントデバイス40の復号能力およびレンダリング能力を、マニフェストファイル66の情報によって示される表現68の特性と比較し得る。取出しユニット52は、最初に、表現68の特性を決定するためにマニフェストファイル66の少なくとも一部分を取り出し得る。たとえば、取出しユニット52は、1つまたは複数の適応セットの特性を記述するマニフェストファイル66の一部分を要求し得る。取出しユニット52は、クライアントデバイス40のコーディング能力およびレンダリング能力によって満たされ得る特性を有する表現68のサブセット(たとえば、適応セット)を選択し得る。次いで、取出しユニット52は、適応セット中の表現のためのビットレートを決定し、ネットワーク帯域幅の現在利用可能な量を決定し、ネットワーク帯域幅によって満たされ得るビットレートを有する表現のうちの1つからセグメントを取り出し得る。
[0064]概して、より高いビットレート表現はより高品質のビデオ再生を生じ得、より低いビットレート表現は、利用可能なネットワーク帯域幅が減少したとき、十分な品質のビデオ再生を与え得る。したがって、利用可能なネットワーク帯域幅が比較的高いとき、取出しユニット52は比較的高いビットレート表現からデータを取り出し得るが、利用可能なネットワーク帯域幅が低いとき、取出しユニット52は比較的低いビットレート表現からデータを取り出し得る。このようにして、クライアントデバイス40は、ネットワーク74を介してマルチメディアデータをストリーミングしながら、ネットワーク74の変化するネットワーク帯域幅利用可能性にも適応し得る。
[0065]追加または代替として、取出しユニット52は、eMBMSまたはIPマルチキャストなどのブロードキャストまたはマルチキャストネットワークプロトコルに従ってデータを受信するように構成され得る。そのような例では、取出しユニット52は、特定のメディアコンテンツに関連付けられたマルチキャストネットワークグループに加入するための要求をサブミットし得る。マルチキャストグループに加入した後に、取出しユニット52は、サーバデバイス60またはコンテンツ作成デバイス20に発行されるさらなる要求なしに、マルチキャストグループのデータを受信し得る。取出しユニット52は、マルチキャストグループのデータがもはや必要とされないときに、たとえば、再生を停止するために、またはチャネルを異なるマルチキャストグループに変更するために、マルチキャストグループを離れるための要求をサブミットし得る。
[0066]ネットワークインターフェース54は、選択された表現のセグメントのデータを受信し、取出しユニット52に与え得、取出しユニット52は、そのセグメントをカプセル化解除ユニット50に与え得る。カプセル化解除ユニット50は、ビデオファイルの要素を構成PESストリームにカプセル化解除し、符号化データを取り出すためにPESストリームをパケット化解除し、たとえば、ストリームのPESパケットヘッダによって示されるように、符号化データがオーディオストリームの一部であるのかビデオストリームの一部であるのかに応じて、符号化データをオーディオデコーダ46またはビデオデコーダ48のいずれかに送出し得る。オーディオデコーダ46は、符号化オーディオデータを復号し、復号オーディオデータをオーディオ出力42に送出し、ビデオデコーダ48は、符号化ビデオデータを復号し、ストリームの複数のビューを含み得る復号ビデオデータをビデオ出力44に送出する。
[0067]ビデオエンコーダ28、ビデオデコーダ48、オーディオエンコーダ26、オーディオデコーダ46、カプセル化ユニット30、取出しユニット52、およびカプセル化解除ユニット50は各々、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な好適な処理回路のいずれかとして実装され得る。ビデオエンコーダ28およびビデオデコーダ48の各々は、1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。同様に、オーディオエンコーダ26およびオーディオデコーダ46の各々は、1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合コーデックの一部として統合され得る。ビデオエンコーダ28、ビデオデコーダ48、オーディオエンコーダ26、オーディオデコーダ46、カプセル化ユニット30、取出しユニット52、および/またはカプセル化解除ユニット50を含む装置は、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
[0068]クライアントデバイス40、サーバデバイス60、および/またはコンテンツ作成デバイス20は、本開示の技法に従って動作するように構成され得る。例として、本開示は、クライアントデバイス40およびサーバデバイス60に関して、これらの技法について説明する。しかしながら、コンテンツ作成デバイス20は、サーバデバイス60の代わりに(またはそれに加えて)これらの技法を実施するように構成され得ることを理解されたい。
[0069]カプセル化ユニット30は、NALユニットが属するプログラムを識別するヘッダ、ならびにペイロード、たとえば、オーディオデータ、ビデオデータ、あるいはNALユニットが対応するトランスポートまたはプログラムストリームを記述するデータを備える、NALユニットを形成し得る。たとえば、H.264/AVCでは、NALユニットは、1バイトのヘッダと、変動するサイズのペイロードとを含む。それのペイロード中にビデオデータを含むNALユニットは、様々なグラニュラリティレベルのビデオデータを備え得る。たとえば、NALユニットは、ビデオデータのブロック、複数のブロック、ビデオデータのスライス、またはビデオデータのピクチャ全体を備え得る。カプセル化ユニット30は、エレメンタリストリームのPESパケットの形態でビデオエンコーダ28から符号化ビデオデータを受信し得る。カプセル化ユニット30は、各エレメンタリストリームを対応するプログラムに関連付け得る。
[0070]カプセル化ユニット30はまた、複数のNALユニットからアクセスユニットをアセンブルし得る。概して、アクセスユニットは、ビデオデータのフレーム、ならびにそのフレームに対応するオーディオデータが利用可能であるとき、そのようなオーディオデータを表すための1つまたは複数のNALユニットを備え得る。アクセスユニットは、概して、1つの出力時間インスタンスについてのすべてのNALユニット、たとえば1つの時間インスタンスについてのすべてのオーディオおよびビデオデータを含む。たとえば、各ビューが20フレーム毎秒(fps)のフレームレートを有する場合、各時間インスタンスは0.05秒の時間間隔に対応し得る。この時間間隔中に、同じアクセスユニット(同じ時間インスタンス)のすべてのビューの特定のフレームは同時にレンダリングされ得る。一例では、アクセスユニットは、1次コード化ピクチャとして提示され得る、1つの時間インスタンス中のコード化ピクチャを備え得る。
[0071]したがって、アクセスユニットは、共通の時間インスタンスのすべてのオーディオおよびビデオフレーム、たとえば、時間Xに対応するすべてのビューを備え得る。本開示はまた、特定のビューの符号化ピクチャを「ビュー構成要素」と呼ぶ。すなわち、ビュー構成要素は、特定の時間における特定のビューのための符号化ピクチャ(またはフレーム)を備え得る。したがって、アクセスユニットは、共通の時間インスタンスのすべてのビュー構成要素を備えるものとして定義され得る。アクセスユニットの復号順序は、必ずしも出力または表示順序と同じである必要があるとは限らない。
[0072]メディアプレゼンテーションは、異なる代替表現(たとえば、異なる品質をもつビデオサービス)の記述を含んでいることがあるメディアプレゼンテーション記述(MPD)を含み得、その記述は、たとえば、コーデック情報と、プロファイル値と、レベル値とを含み得る。MPDは、マニフェストファイル66などのマニフェストファイルの一例である。クライアントデバイス40は、様々なプレゼンテーションのムービーフラグメントにどのようにアクセスすべきかを決定するためにメディアプレゼンテーションのMPDを取り出し得る。ムービーフラグメントは、ビデオファイルのムービーフラグメントボックス(moofボックス)中にあり得る。
[0073](たとえば、MPDを備え得る)マニフェストファイル66は、表現68のセグメントの利用可能性を広告し得る。すなわち、MPDは、表現68のうちの1つの第1のセグメントが利用可能になる壁時計時間(wall-clock time)を示す情報、ならびに表現68内のセグメントの持続時間を示す情報を含み得る。このようにして、クライアントデバイス40の取出しユニット52は、開始時間、ならびに特定のセグメントに先行するセグメントの持続時間に基づいて、各セグメントがいつ利用可能であるかを決定し得る。
[0074]カプセル化ユニット30が、受信されたデータに基づいてNALユニットおよび/またはアクセスユニットをビデオファイルにアセンブルした後に、カプセル化ユニット30は、ビデオファイルを出力のために出力インターフェース32に渡す。いくつかの例では、カプセル化ユニット30は、ビデオファイルをローカルに記憶するか、または、ビデオファイルをクライアントデバイス40に直接送出するのではなく、出力インターフェース32を介してビデオファイルをリモートサーバに送出し得る。出力インターフェース32は、たとえば、送信機、トランシーバ、たとえば、オプティカルドライブ、磁気メディアドライブ(たとえば、フロッピー(登録商標)ドライブ)など、コンピュータ可読媒体にデータを書き込むためのデバイス、ユニバーサルシリアルバス(USB)ポート、ネットワークインターフェース、または他の出力インターフェースを備え得る。出力インターフェース32は、ビデオファイルを、たとえば、送信信号、磁気媒体、光媒体、メモリ、フラッシュドライブ、または他のコンピュータ可読媒体など、コンピュータ可読媒体に出力する。
[0075]ネットワークインターフェース54は、ネットワーク74を介してNALユニットまたはアクセスユニットを受信し、取出しユニット52を介してNALユニットまたはアクセスユニットをカプセル化解除ユニット50に与え得る。カプセル化解除ユニット50は、ビデオファイルの要素を構成PESストリームにカプセル化解除し、符号化データを取り出すためにPESストリームをパケット化解除し、たとえば、ストリームのPESパケットヘッダによって示されるように、符号化データがオーディオストリームの一部であるのかビデオストリームの一部であるのかに応じて、符号化データをオーディオデコーダ46またはビデオデコーダ48のいずれかに送出し得る。オーディオデコーダ46は、符号化オーディオデータを復号し、復号オーディオデータをオーディオ出力42に送出し、ビデオデコーダ48は、符号化ビデオデータを復号し、ストリームの複数のビューを含み得る復号ビデオデータをビデオ出力44に送出する。
[0076]本開示の技法によれば、サーバデバイス60(またはコンテンツ作成デバイス20)は、クライアントデバイス40にパケット損失検出機構をシグナリングし得る。たとえば、サーバデバイス60は、サーバデバイス60とクライアントデバイス40との間の制御チャネルを介してパケット損失検出機構をシグナリングし得る。パケット損失検出機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中に設定される特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの1つまたは複数を含み得る。
[0077]クライアントデバイス40は、次いで、サーバデバイス60からのブロードキャストまたはマルチキャストストリーム中のパケットが損失したかどうかを決定するために、(1つまたは複数の)シグナリングされたパケット損失検出機構を実施し得る。1つまたは複数のパケットが損失したと決定したことに応答して、取出しユニット52は、損失したパケットのメディアデータを含むセグメントの(1つまたは複数の)バイト範囲を指定する1つまたは複数のバイト範囲要求(すなわち、HTTP部分Get要求)を形成し得る。取出しユニット52は、次いで、ユニキャストプロトコル、たとえばHTTPを介して、損失したメディアデータを取り出すことを試みるために、これらのバイト範囲要求をサーバデバイス60にサブミットし得る。
[0078]いくつかの例では、サーバデバイス60は、パケット間タイムアウト値をシグナリングし得る。クライアントデバイス40(および特に、取出しユニット52)は、パケット間タイムアウト値を使用して、パケットが損失したかどうかを決定し得る、たとえば、パケットが、メディアストリームの前のパケットの受信以来、パケット間タイムアウト間隔内に受信されなかった場合。パケット間タイムアウト値は、公称共通メディアアプリケーションフォーマット(CMAF)チャンク持続時間に対応し得る。サーバデバイス60は、たとえば、ファイル配信テーブル(FDT)、拡張FDT(eFDT)において、あるいは制御プレーンサービスまたはセッションメタデータ中で、パケット間タイムアウト値をシグナリングし得る。したがって、クライアントデバイス40は、このデータからパケット間タイムアウト値を抽出し得る。
[0079]損失したメディアデータが受信されたか否かにかかわらず、取出しユニット52は、カプセル化解除ユニット50に配信されるべき、および、最終的に、オーディオデコーダ46および/またはビデオデコーダ48に配信されるべき適切なメディアオブジェクトを形成し得る。適切なメディアオブジェクトは、概して、カプセル化解除ユニット50、オーディオデコーダ46、およびビデオデコーダ48によってパース可能(parseable)および復号可能であり得る。適切なメディアオブジェクトは、依然として、(1つまたは複数の)損失したパケットのメディアデータの一部を消失していることがあるが、それにもかかわらず、パース可能および復号可能であり得る。
[0080]図2は、図1の取出しユニット52の構成要素の例示的なセットをより詳細に示すブロック図である。この例では、取出しユニット52は、eMBMSミドルウェアユニット100と、DASHクライアント110と、メディアアプリケーション112とを含む。
[0081]この例では、eMBMSミドルウェアユニット100は、eMBMS受信ユニット106と、キャッシュ104と、プロキシサーバユニット102とをさらに含む。この例では、eMBMS受信ユニット106は、たとえば、FLUTEに従って、eMBMSを介してデータを受信するように構成される。すなわち、eMBMS受信ユニット106は、たとえば、ブロードキャスト/マルチキャストサービスセンター(BM-SC)として働き得るサーバデバイス60から、ブロードキャストを介してファイルを受信し得る。
[0082]eMBMSミドルウェアユニット100がファイルについてのデータを受信したとき、eMBMSミドルウェアユニットは、受信されたデータをキャッシュ104に記憶し得る。キャッシュ104は、フラッシュメモリ、ハードディスク、RAM、または任意の他の好適な記憶媒体など、コンピュータ可読記憶媒体を備え得る。
[0083]プロキシサーバユニット102は、DASHクライアント110のためのサーバとして働き得る。たとえば、プロキシサーバユニット102は、DASHクライアント110にMPDファイルまたは他のマニフェストファイルを与え得る。プロキシサーバユニット102は、MPDファイル中のセグメントのための利用可能性時間、ならびにセグメントがそこから取り出され得るハイパーリンクを広告し得る。これらのハイパーリンクは、クライアントデバイス40に対応するローカルホストアドレスプレフィックス(たとえば、IPv4についての127.0.0.1)を含み得る。このようにして、DASHクライアント110は、HTTP GET要求または部分GET要求を使用してプロキシサーバユニット102にセグメントを要求し得る。たとえば、リンクhttp://127.0.0.1/rep1/seg3から入手可能なセグメントの場合、DASHクライアント110は、http://127.0.0.1/rep1/seg3についての要求を含むHTTP GET要求を構築し、その要求をプロキシサーバユニット102にサブミットし得る。プロキシサーバユニット102は、要求されたデータをキャッシュ104から取り出し、そのデータを、そのような要求に応答してDASHクライアント110に与え得る。
[0084]図3は、例示的なマルチメディアコンテンツ120の要素を示す概念図である。マルチメディアコンテンツ120は、マルチメディアコンテンツ64(図1)、または記憶媒体62に記憶された別のマルチメディアコンテンツに対応し得る。図3の例では、マルチメディアコンテンツ120は、メディアプレゼンテーション記述(MPD)と複数の表現(presentation)124A~124N(表現124)とを含む。表現124Aは、随意のヘッダデータ126とセグメント128A~128N(セグメント128)とを含み、表現124Nは、随意のヘッダデータ130とセグメント132A~132N(セグメント132)とを含む。文字Nは、便宜上、表現124の各々中の最後のムービーフラグメントを指定するために使用される。いくつかの例では、表現124間に異なる数のムービーフラグメントがあり得る。
[0085]MPD122は、表現124とは別個のデータ構造を備え得る。MPD122は図1のマニフェストファイル66に対応し得る。同様に、表現124は図1の表現68に対応し得る。概して、MPD122は、コーディング特性およびレンダリング特性、適応セット、MPD122が対応するプロファイル、テキストタイプ情報、カメラアングル情報、レーティング情報、トリックモード情報(たとえば、時間サブシーケンスを含む表現を示す情報)、ならびに/または(たとえば、再生中のメディアコンテンツへのターゲット広告挿入のための)リモート期間を取り出すための情報など、表現124の特性を概して記述するデータを含み得る。
[0086]ヘッダデータ126は、存在するとき、セグメント128の特性、たとえば、ランダムアクセスポイント(RAP、ストリームアクセスポイント(SAP)とも呼ばれる)の時間ロケーションを記述し得、セグメント128のランダムアクセスポイントは、ランダムアクセスポイント、セグメント128内のランダムアクセスポイントへのバイトオフセット、セグメント128のユニフォームリソースロケータ(URL)、またはセグメント128の他の態様を含む。ヘッダデータ130は、存在するとき、セグメント132についての同様の特性を記述し得る。追加または代替として、そのような特性はMPD122内に完全に含まれ得る。
[0087]セグメント128、132は1つまたは複数のコード化ビデオサンプルを含み、コード化ビデオサンプルの各々はビデオデータのフレームまたはスライスを含み得る。セグメント128のコード化ビデオサンプルの各々は、同様の特性、たとえば、高さ、幅、および帯域幅の要件を有し得る。そのような特性はMPD122のデータによって記述され得るが、そのようなデータは図3の例に示されていない。MPD122は、本開示で説明されるシグナリングされた情報のいずれかまたはすべての追加を伴う、3GPP仕様によって記述される特性を含み得る。
[0088]セグメント128、132の各々は、一意のユニフォームリソースロケータ(URL)に関連付けられ得る。したがって、セグメント128、132の各々は、DASHなどのストリーミングネットワークプロトコルを使用して独立して取出し可能であり得る。このようにして、クライアントデバイス40などの宛先デバイスは、セグメント128または132を取り出すためにHTTP GET要求を使用し得る。いくつかの例では、クライアントデバイス40は、セグメント128または132の特定のバイト範囲を取り出すためにHTTP部分GET要求を使用し得る。
[0089]図4は、図3のセグメント128、132のうちの1つなど、表現のセグメントに対応し得る、例示的なビデオファイル150の要素を示すブロック図である。セグメント128、132の各々は、図4の例に示されているデータの構成に実質的に準拠するデータを含み得る。ビデオファイル150は、セグメントをカプセル化すると言われることがある。上記で説明されたように、ISOベースメディアファイルフォーマットおよびそれの拡張によるビデオファイルは、データを「ボックス」と呼ばれる一連のオブジェクトに記憶する。図4の例では、ビデオファイル150は、ファイルタイプ(FTYP)ボックス152と、ムービー(MOOV)ボックス154と、セグメントインデックス(sidx)ボックス162と、ムービーフラグメント(MOOF)ボックス164と、ムービーフラグメントランダムアクセス(MFRA)ボックス166とを含む。図4はビデオファイルの一例を表しているが、他のメディアファイルは、ISOベースメディアファイルフォーマットおよびそれの拡張に従って、ビデオファイル150のデータと同様に構造化された他のタイプのメディアデータ(たとえば、オーディオデータ、タイムドテキストデータなど)を含み得ることを理解されたい。
[0090]ファイルタイプ(FTYP)ボックス152は、概して、ビデオファイル150のためのファイルタイプを記述する。ファイルタイプボックス152は、ビデオファイル150の最良の使用法を記述する仕様を識別するデータを含み得る。ファイルタイプボックス152は、代替的に、MOOVボックス154、ムービーフラグメントボックス164、および/またはMFRAボックス166の前に配置され得る。
[0091]いくつかの例では、ビデオファイル150など、セグメントは、FTYPボックス152の前にMPD更新ボックス(図示せず)を含み得る。MPD更新ボックスは、MPDを更新するための情報とともに、ビデオファイル150を含む表現に対応するMPDが更新されるべきであることを示す情報を含み得る。たとえば、MPD更新ボックスは、MPDを更新するために使用されるべきリソースについてのURIまたはURLを与え得る。別の例として、MPD更新ボックスは、MPDを更新するためのデータを含み得る。いくつかの例では、MPD更新ボックスは、ビデオファイル150のセグメントタイプ(STYP)ボックス(図示せず)の直後にくることがあり、ここで、STYPボックスは、ビデオファイル150のためのセグメントタイプを定義し得る。
[0092]MOOVボックス154は、図4の例では、ムービーヘッダ(MVHD)ボックス156と、トラック(TRAK)ボックス158と、1つまたは複数のムービー拡張(MVEX)ボックス160とを含む。概して、MVHDボックス156はビデオファイル150の一般的な特性を記述し得る。たとえば、MVHDボックス156は、ビデオファイル150が最初に作成されたとき、ビデオファイル150が最後に変更されたときを記述するデータ、ビデオファイル150についての時間スケール、ビデオファイル150についての再生の持続時間、またはビデオファイル150を概して記述する他のデータを含み得る。
[0093]TRAKボックス158は、ビデオファイル150のトラックについてのデータを含み得る。TRAKボックス158は、TRAKボックス158に対応するトラックの特性を記述するトラックヘッダ(TKHD)ボックスを含み得る。いくつかの例では、TRAKボックス158はコード化ビデオピクチャを含み得、他の例では、トラックのコード化ビデオピクチャは、TRAKボックス158および/またはsidxボックス162のデータによって参照され得るムービーフラグメント164中に含まれ得る。
[0094]いくつかの例では、ビデオファイル150は2つ以上のトラックを含み得る。したがって、MOOVボックス154は、ビデオファイル150中のトラックの数に等しいいくつかのTRAKボックスを含み得る。TRAKボックス158は、ビデオファイル150の対応するトラックの特性を記述し得る。たとえば、TRAKボックス158は、対応するトラックについての時間および/または空間情報を記述し得る。カプセル化ユニット30(図3)が、ビデオファイル150などのビデオファイル中にパラメータセットトラックを含むとき、MOOVボックス154のTRAKボックス158と同様のTRAKボックスは、パラメータセットトラックの特性を記述し得る。カプセル化ユニット30は、パラメータセットトラックを記述するTRAKボックス内のパラメータセットトラック中のシーケンスレベルSEIメッセージの存在をシグナリングし得る。
[0095]MVEXボックス160は、たとえば、もしあれば、MOOVボックス154内に含まれるビデオデータに加えて、ムービーフラグメント164をビデオファイル150が含むことをシグナリングするように、対応するムービーフラグメント164の特性を記述し得る。ビデオデータをストリーミングするコンテキストでは、コード化ビデオピクチャは、MOOVボックス154中ではなくムービーフラグメント164中に含まれ得る。したがって、すべてのコード化ビデオサンプルは、MOOVボックス154中ではなくムービーフラグメント164中に含まれ得る。
[0096]MOOVボックス154は、ビデオファイル150中のムービーフラグメント164の数に等しいいくつかのMVEXボックス160を含み得る。MVEXボックス160の各々は、ムービーフラグメント164のうちの対応する1つの特性を記述し得る。たとえば、各MVEXボックスは、ムービーフラグメント164のうちの対応する1つについての持続時間を記述するムービー拡張ヘッダボックス(MEHD)ボックスを含み得る。
[0097]上述のように、カプセル化ユニット30は、シーケンスデータセットを、実際のコード化ビデオデータを含まないビデオサンプルに記憶し得る。ビデオサンプルは、概して、特定の時間インスタンスにおけるコード化ピクチャの表現である、アクセスユニットに対応し得る。AVCのコンテキストでは、コード化ピクチャは、アクセスユニットのすべてのピクセルを構築するための情報を含んでいる1つまたは複数のVCL NALユニットと、SEIメッセージなどの他の関連する非VCL NALユニットとを含む。したがって、カプセル化ユニット30は、ムービーフラグメント164のうちの1つ中に、シーケンスレベルSEIメッセージを含み得る、シーケンスデータセットを含み得る。カプセル化ユニット30はさらに、シーケンスデータセットおよび/またはシーケンスレベルSEIメッセージの存在を、ムービーフラグメント164のうちの1つに対応するMVEXボックス160のうちの1つ内のムービーフラグメント164のうちの1つ中に存在するものとしてシグナリングし得る。
[0098]SIDXボックス162は、ビデオファイル150の随意の要素である。すなわち、3GPPファイルフォーマット、または他のそのようなファイルフォーマットに準拠するビデオファイルは、必ずしもSIDXボックス162を含むとは限らない。3GPPファイルフォーマットの例によれば、SIDXボックスは、セグメント(たとえば、ビデオファイル150内に含まれているセグメント)のサブセグメントを識別するために使用され得る。3GPPファイルフォーマットは、サブセグメントを、「対応する(1つまたは複数の)メディアデータボックスと、ムービーフラグメントボックスによって参照されるデータを含んでいるメディアデータボックスとをもつ、1つまたは複数の連続するムービーフラグメントボックスの独立型セットは、そのムービーフラグメントボックスに後続し、同じトラックに関する情報を含んでいる次のムービーフラグメントボックスに先行しなければならない」と定義している。3GPPファイルフォーマットはまた、SIDXボックスが、「ボックスによってドキュメント化される(サブ)セグメントのサブセグメントへの参照のシーケンスを含んでいる。参照されるサブセグメントはプレゼンテーション時間において隣接する。同様に、セグメントインデックスボックスによって参照されるバイトは常にセグメント内で隣接する。参照されるサイズは、参照される材料中のバイト数のカウントを与える」ことを示している。
[0099]SIDXボックス162は、概して、ビデオファイル150中に含まれるセグメントの1つまたは複数のサブセグメントを表す情報を与える。たとえば、そのような情報は、サブセグメントが開始および/または終了する再生時間、サブセグメントについてのバイトオフセット、サブセグメントがストリームアクセスポイント(SAP)を含む(たとえば、それで開始する)かどうか、SAPのためのタイプ(たとえば、SAPが瞬時デコーダリフレッシュ(IDR)ピクチャであるのか、クリーンランダムアクセス(CRA)ピクチャであるのか、切断リンクアクセス(BLA)ピクチャであるのかなど)、サブセグメント中の(再生時間および/またはバイトオフセットに関する)SAPの位置などを含み得る。
[0100]ムービーフラグメント164は、1つまたは複数のコード化ビデオピクチャを含み得る。いくつかの例では、ムービーフラグメント164は1つまたは複数のピクチャグループ(GOP)を含み得、GOPの各々は、いくつかのコード化ビデオピクチャ、たとえば、フレームまたはピクチャを含み得る。さらに、上記で説明されたように、ムービーフラグメント164は、いくつかの例では、シーケンスデータセットを含み得る。ムービーフラグメント164の各々は、ムービーフラグメントヘッダボックス(MFHD、図4に図示せず)を含み得る。MFHDボックスは、ムービーフラグメントについてのシーケンス番号など、対応するムービーフラグメントの特性を記述し得る。ムービーフラグメント164は、ビデオファイル150中のシーケンス番号の順に含まれ得る。
[0101]MFRAボックス166は、ビデオファイル150のムービーフラグメント164内のランダムアクセスポイントを記述し得る。これは、ビデオファイル150によってカプセル化されたセグメント内の特定の時間ロケーション(すなわち、再生時間)へのシークを実施することなど、トリックモードを実施するのを支援し得る。MFRAボックス166は、概して随意であり、いくつかの例では、ビデオファイル中に含まれる必要がない。同様に、クライアントデバイス40などのクライアントデバイスは、ビデオファイル150のビデオデータを正しく復号し、表示するために、必ずしもMFRAボックス166を参照する必要があるとは限らない。MFRAボックス166は、ビデオファイル150のトラックの数に等しいか、またはいくつかの例では、ビデオファイル150のメディアトラック(たとえば、非ヒントトラック)の数に等しい、いくつかのトラックフラグメントランダムアクセス(TFRA)ボックス(図示せず)を含み得る。
[0102]いくつかの例では、ムービーフラグメント164は、IDRピクチャなど、1つまたは複数のストリームアクセスポイント(SAP)を含み得る。同様に、MFRAボックス166は、SAPのビデオファイル150内のロケーションの指示を与え得る。したがって、ビデオファイル150のSAPからビデオファイル150の時間サブシーケンスが形成され得る。時間サブシーケンスはまた、SAPに従属するPフレームおよび/またはBフレームなど、他のピクチャを含み得る。時間サブシーケンスのフレームおよび/またはスライスは、サブシーケンスの他のフレーム/スライスに依存する時間サブシーケンスのフレーム/スライスが適切に復号され得るように、セグメント内に構成され得る。たとえば、データの階層構成において、他のデータの予測のために使用されるデータも時間サブシーケンス中に含まれ得る。
[0103]図5は、本開示の技法による、送出機と受信機とを含む例示的なシステムを示す概念図である。図5の送出機は、概して、メディアエンコーダ200と、CMAF/ファイルフォーマット(FF)パッケージャ202と、DASHパッケージャ204と、ROUTE送出機206と、CDNオリジンサーバ208とを含む。メディアエンコーダ200は、オーディオまたはビデオデータなど、メディアデータを符号化する。メディアエンコーダ200は、図1のオーディオエンコーダ26またはビデオエンコーダ28に対応し得る。CMAF/FFパッケージャ202とDASHパッケージャ204とは、図1のカプセル化ユニット30に対応し得る。ROUTE送出機206およびCDNオリジンサーバ208は、図1の要求処理ユニット70およびサーバデバイス60に対応し得る。
[0104]図5の受信機は、概して、ROUTE受信機210と、DASHクライアント212と、CMAF/FFパーサ214と、メディアデコーダ216とを含む。ROUTE受信機210およびDASHクライアント212は、図1の取出しユニット52に対応し得る。CMAF/FFパーサ214は、図1のカプセル化解除ユニット50に対応し得る。メディアデコーダ216は、オーディオデコーダ46とビデオデコーダ48とのいずれかまたは両方に対応し得る。
[0105]メディアエンコーダ200は、符号化メディアデータをCMAF/FFパッケージャ202に与え、CMAF/FFパッケージャ202は、CMAF、およびISO BMFFまたはそれの拡張など、特定のファイルフォーマットに従って、符号化メディアデータをファイルにフォーマットする。CMAF/FFパッケージャ202は、これらのファイル(たとえば、チャンク)をDASHパッケージャ204に与え、DASHパッケージャ204は、ファイル/チャンクをDASHセグメントにアグリゲートする。DASHパッケージャ204はまた、ファイル/チャンク/セグメントを記述するデータを含む、MPDなど、マニフェストファイルを形成し得る。さらに、本開示の技法によれば、ROTUE送出機206および/またはCDNオリジンサーバ208は、パケット損失を検出するために、たとえば、ROUTE受信機210および/またはDASHクライアント212によって使用されるべき1つまたは複数のパケット損失検出機構をシグナリングし得る。
[0106]DASHパッケージャ204は、MPDとともに、セグメントをROUTE送出機206およびCDNオリジンサーバ208に与える。ROUTE送出機206およびCDNオリジンサーバ208は、図1のサーバデバイス60または図5のCDN220に対応し得る。概して、ROUTE送出機206は、この例では、ROUTEに従ってROUTE受信機210にメディアデータを送出し得る。他の例では、FLUTEなど、他のファイルベース配信プロトコルが、ブロードキャストまたはマルチキャストのために使用され得る。追加または代替として、CDNオリジンサーバ208は、たとえば、HTTPに従って、ROUTE受信機210に、および/またはDASHクライアント212に直接、メディアデータを送出し得る。
[0107]ROUTE受信機210は、図2のeMBMSミドルウェアユニット100など、ミドルウェア中で実装され得る。ROUTE受信機210は、たとえば、図2に示されているキャッシュ104中で、受信されたメディアデータをバッファし得る。(図2のDASHクライアント110に対応し得る)DASHクライアント212は、HTTPを使用して、キャッシュされたメディアデータをROUTE受信機210から取り出し得る。代替的に、DASHクライアント212は、上記で説明されたように、HTTPに従って、CDNオリジンサーバ208からメディアデータを直接取り出し得る。
[0108]さらに、本開示の技法によれば、ROUTE受信機210は、たとえば、パケット損失が、たとえばメディアデータのブロードキャストまたはマルチキャストストリーミングセッション中に発生したと決定するために、1つまたは複数のシグナリングされたパケット損失検出機構を使用し得る。応答して、ROUTE受信機210は、パケット損失が発生したことを示すデータをDASHクライアント212に与え得る。追加または代替として、DASHクライアント212は、シグナリングされたパケット損失検出機構のうちの1つまたは複数を使用して、パケット損失が発生したと決定し得る。いずれの場合も、DASHクライアント212は、損失したパケット中に含まれるメディアデータに対応するメディアデータをCDNオリジンサーバ208から取り出すために、たとえば、HTTP部分Get要求を使用して、バイト範囲要求を形成し得る。このようにして、図5の受信機は、概して、ブロードキャストまたはマルチキャストを介してメディアデータを受信し得るが、メディアデータの一部が損失したとき、DASHクライアント212は、ユニキャスト、たとえばHTTPを使用して、損失したメディアデータを取り出し得る。
[0109]本開示は、データがどのように分配されるかに関するプロパティをシグナリングするためのROUTE送出、ならびにメディアデータが部分的に損失していることがある場合、ROUTE受信機210からDASHクライアント212へのインターフェースに主に焦点を当てる。
[0110]現在のデジタルビデオブロードキャスティング(DVB)適応ビットレート(ABR)仕様は、低レイテンシモードでのマルチキャスト配信を可能にするが、上記で説明された従来の機構はこの低レイテンシモードのために調整されず、これは、それらの制限を生じる。これらの制限は、特に低レイテンシストリームの場合、再生の望ましくないストール(stall)を引き起こし得る。
[0111]本開示は、以下で説明されるように、従来の技法に関して生じ得るいくつかの問題を認識している。
[0112]DVB ABR仕様の節1.3および1.4における機構は、早くとも、受信機側における全配信オブジェクトの公称受信持続時間の後にのみ、損失を検出するために動作し得る。たとえば、2秒の公称セグメント持続時間をもつDASH表現をマルチキャストする場合、この検出は、早くとも、オブジェクトの受信の開始から2秒後に起こることになる。これは、パケットの損失により、著しく長い再生ストールにつながり得る。
[0113]DVB ABR仕様の節1.2の機構は、後続のパケット(損失したパケットの後に受信されたパケット)の受信の後にのみ動作し得る。そのような受信は、一般に、たとえば、パケット受信が突然および長い時間期間の間停止する不良なチャネル状態の下で、長時間遅延される。この場合の下では、受信機は、節1.3および1.4の機構にデフォルト設定される。
[0114]DVB ABR仕様の節1.2における機構はまた、順序が狂ったパケット配信に対してロバストでない。
[0115]DVB ABR仕様の節1.5における機構は、完全オブジェクト受信についてのみ定義され、低レイテンシの場合について定義されない。
[0116]したがって全体的に、DVB ABR仕様の節1.3によれば、従来の機構を使用して、パケット損失の最も早期の検出は、一般に、公称DASHセグメント持続時間程度のものである時間の後に行われる。
[0117]本開示は、上記で説明された問題に対処し得る技法について説明する。ソースデバイス60およびクライアントデバイス40など、送出機および受信機は、以下のように、制御チャネル上でデータをシグナリングし得る。
1. セグメントがチャンクで送出されることを制御チャネル中でシグナリングする。チャンクが送出機において完了されると、送出が開始する。これは、2つのパケットを送出することの間の間隔が、せいぜい、ある持続時間であることを示すために、シグナリングを送出することが抽出され得ること(can be abstracted)を意味する(この信号は、チャンク持続時間が決定されたとき、セットアップにおいて追加され得る)。送出間隔は、せいぜい、チャンク持続時間であり得る。
2. TOIが連続であることを制御チャネル中でシグナリングする。
3. TOIに割り当てられたオブジェクトの最後のパケットが、パケットヘッダ中に設定された特定のフラグを有することを、制御チャネル上でシグナリングする。
4. 受信されたFLUTE/ROUTEオブジェクトのTOIに基づいて、同じオブジェクトがHTTPを通してユニキャストにおいて要求され得るURLの生成を可能にするテンプレート基本URLを、制御チャネル中でシグナリングする。
5. パケットが部分である場合でも、それらがアプリケーションクライアントに与えられるまで、パケットについての最大レイテンシをシグナリングする。
6. ROUTEヘッダ、すなわち、チャンク境界上で、バイト範囲レベルでのISO BMFF同期ポイントをシグナリングすること。
[0118]図1のクライアントデバイス40、ROUTE受信機210、または他の受信機は、以下を行うために、シグナリングされた情報を利用し得る。
1. シグナリング機構のうちの1つまたは複数によって十分に早期に、配信時の1つまたはいくつかのパケットの損失を検出する。
2. ROUTE/FLUTEヘッダ中の情報、すなわち、TOIおよびstart_offsetを使用して、消失したデータについての適切なバイト範囲要求を生成する。
3. 時間内に適切なオブジェクトをアプリケーションクライアント(たとえば、図2のDASHクライアント110またはメディアアプリケーション112)に配信する。
a. ゲートウェイは、たとえば、HTTP504コードを用いて転送を中断し、DASHプレーヤは、そのようなイベントを扱うように対応させられる。または、
b. 応答は、それが部分である場合でも送出される。部分応答は、正しく受信されたオブジェクトのバイト範囲ならびにバイトストリームレベルでの再同期ポイントを含む。
b. 応答は、それが部分である場合でも送出される。部分応答は、正しく受信されたオブジェクトのバイト範囲ならびにバイトストリームレベルでの再同期ポイントを含む。
[0119]アプリケーション(たとえば、図2のメディアアプリケーション112)は、時間内に受信されたすべての使用可能情報を使用することによって最良の品質を提示するために、この情報を利用し得る。アプリケーションは、再同期ポイントをもつ部分データを受け付け得る。
[0120]チャンク持続時間シグナリングの詳細は、以下を含み得る。トランスポートパケットの損失の早期検出は、パケット間タイムアウトのシグナリングによって可能にされ得る。そのようなタイムアウトは、トランスポートされているストリームの公称CMAFチャンク持続時間に従って設定され得る。シグナリングは、マルチキャストトランスポートパケットヘッダ中で、またはマルチキャストオブジェクトメタデータ(FDT/eFDT)中で、あるいは制御プレーン(サービス/セッションメタデータ)中で行われ得る。シグナリングは、最大予想パケット到着ジッタを考慮に入れ得る。シグナリングがこれを考慮に入れない場合、受信機実装形態は、それの経験されるパケット受信ジッタを使用し得る。受信機(たとえば、クライアントデバイス40)は、上記のパケット間タイムアウトの満了時に、再生が最小限にストールされることを保証するために、ユニキャストを介してデータを要求し得る。受信機は、それが要求する必要があるバイト範囲の開始のみを決定し、それがどのくらいのデータを必要とするかを決定しないので、それは、HTTPチャンクモード(HTTP chunked mode)を介してデータを得ることがあり、ここで、それは、適度に大きい量のデータ(たとえば、公称セグメントサイズ)を要求し得、マルチキャスト受信が再開すると受信を取り消すことができる。
[0121]このソリューションは、概して、CMAFチャンク持続時間程度の持続時間、たとえば、100~200ミリ秒以内のパケット損失の検出を可能にし得、それに対して、現況技術は、そのような検出のために約1~2秒かかり得る。そのような早期検出は、早期修復試行をトリガすることを可能にし、そのような場合にストールの持続時間を最小限に抑え得る。
[0122]いくつかの例では、DASHクライアント212は、トランスポートパケット損失を修復するためにバイト範囲要求を行い得る。上記で説明されたパケット損失の検出の後に、DASHクライアント212は、ユニキャストバイト範囲要求を形成し得る。消失したデータのバイト範囲決定は、上記で説明された。修復データのアドレスを取り出すための機構は、www.dvb.org/resources/restricted/members/documents/TM-IPI/ABR%20Multicast/TM-IPI3626r4_ABR-Multicast-taskforce---Unicast-repair-draft-specification.docxにおいて入手可能な、DVBワーキングドラフト 節9、TM-IPI3626r4:ABRマルチキャストタスクフォース-ユニキャスト修復ドラフト仕様においてドキュメント化されている。
[0123]DASHクライアント212および/またはROUTE受信機210はまた、パケット修復失敗を扱い得る。最終的に、パケット修復試行が失敗するかまたは時間内に完了されない可能性がある。この場合、マルチキャストゲートウェイは、この問題をDASHクライアント212にシグナリングし得る。この状況に対処するための2つの可能性がある。
1. ゲートウェイは、たとえばHTTP504コードを用いて転送を中断し、DASHプレーヤは、そのようなイベントを扱うように対応させられる。
2. 追加または代替として、応答は、上記で説明されたように部分ファイルシグナリング機構を使用してパケットが部分的に受信される場合でも送出される。この機構によれば、アプリケーションは、それのHTTP GET要求において部分ファイルを受け付けるそれの能力を示す。部分応答は、正しく受信されたオブジェクトのバイト範囲ならびにバイトストリームレベルでの再同期ポイントを含む。
[0124]DASHクライアント212および/またはROUTE受信機210はまた、トランスポートオブジェクト損失を扱い得る。1つまたは複数のトランスポートオブジェクトおよびそれらの関連するメタデータ(たとえば、FDT)の完全な損失を扱うための1つの機構は、ユニキャスト接続の利用可能性に依拠することである。マルチキャストゲートウェイは、HTTPリバースプロキシとして構成され得、たとえば、損失したオブジェクトに対する要求がプレーヤによって行われたとき、そのオブジェクトをフェッチするために、ユニキャスト接続を使用し得る。ゲートウェイは、ユニキャストを介して同じコンテンツを復元するために、上記で説明されたように、要求されたオブジェクトのURLと、ユニキャストコンテンツロケーションのシグナリングとを使用し得る。
[0125]図6は、本開示の技法による、例示的な方法を示すフローチャートである。図6の方法は、図1のサーバデバイス60およびクライアントデバイス40に関して説明される。図5の送出機デバイスおよび受信機デバイスなど、他のデバイスが、このまたは同様の方法を実施するように構成され得る。
[0126]最初に、サーバデバイス60は、1つまたは複数のパケット損失検出機構(packet loss detection mechanisms)をシグナリングする(250)。これらの機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの1つまたは複数を含み得る。クライアントデバイス40はまた、パケット損失検出機構を表すシグナリングされたデータを受信し得る(252)。
[0127]サーバデバイス60はまた、ストリーミングプロトコルを介してメディアデータを送出し得る(254)。たとえば、サーバデバイス60は、FLUTE、ROUTE、あるいは、DVBなど、他のネットワークまたはオーバージエア(OTA)ブロードキャスト規格を介して、メディアデータを送出し得る。クライアントデバイス40は、次いで、メディアデータの少なくとも一部を受信し得る(256)。クライアントデバイス40は、さらに、(1つまたは複数の)パケット損失検出機構を使用して、1つまたは複数のパケットが損失したかどうかを決定し得る(258)。パケットが損失していない(258の「いいえ」分岐)場合、クライアントデバイス40は、メディアオブジェクト、たとえば、オーディオおよび/またはビデオデータを提示すること(272)に進み得る。
[0128]一方、少なくとも1つのパケットが損失した(258の「はい」分岐)場合、クライアントデバイス40は、損失したパケット中に含まれたメディアデータと、セグメントにおけるそのパケットのメディアデータの対応する位置とを決定し得る。たとえば、クライアントデバイス40は、セグメントにおけるメディアデータの開始バイト位置を決定するために、トランスポートオブジェクト識別子(TOI)とstart_offsetとを使用し得る。クライアントデバイス40は、たとえば、シグナリングされたチャンク持続時間を使用して、損失したパケットのメディアデータの終了バイト位置をさらに決定し得る。クライアントデバイス40は、次いで、バイト範囲を指定するHTTP部分Get要求など、損失したパケットの損失したメディアデータについてのバイト範囲要求を形成し得る(260)。
[0129]クライアントデバイス40は、次いで、サーバデバイス60にバイト範囲要求を送出し得る(262)。バイト範囲要求を受信したこと(264)に応答して、サーバデバイス60は、たとえば、HTTPなど、ユニキャストプロトコルに従って、要求されたバイト範囲をクライアントデバイス40に送出し得る(266)。クライアントデバイス40は、次いで、要求されたバイト範囲を受信し(268)、適切なメディアオブジェクトを形成し得る(270)。クライアントデバイス40は、さらに、メディアオブジェクトを提示し得る(272)。
[0130]このようにして、図6の方法は、パケット損失シグナリング機構を示すデータを受信することと、パケット損失シグナリング機構が、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つを備え;パケット損失シグナリング機構のうちの少なくとも1つを使用してパケットの損失を検出することと、損失したパケットが、消失したメディアデータを含み;ファイル配信ヘッダの情報を使用して、消失したメディアデータについてのバイト範囲要求を生成することと;適切なメディアオブジェクトをメディアアプリケーションに配信することと、を含む、メディアデータを取り出す方法の一例を表す。
[0131]図6の方法はまた、パケット損失シグナリング機構を示すデータを送出することと、パケット損失シグナリング機構が、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイント、のうちの少なくとも1つを備え;ブロードキャストまたはマルチキャストプロトコルを介してメディアデータを含む1つまたは複数のパケットを送出することと;損失したパケットのうちの1つのメディアデータを示すバイト範囲要求を、ユニキャストプロトコルを介してクライアントデバイスから受信することと;バイト範囲要求に応答して、ユニキャストプロトコルを介してクライアントデバイスにバイト範囲のメディアデータを送出することと、を含む、メディアデータを送出する方法の一例を表す。
[0132]本開示のいくつかの技法は、以下の例において要約される。
[0133]例1:メディアデータを取り出す方法であって、本方法は、パケット損失シグナリング機構を示すデータを受信することと、データが、セグメントがチャンクで送出されること、TOIが連続であること、TOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つの指示を備え;パケット損失シグナリング機構のうちの少なくとも1つを使用してパケットの損失を検出することと、損失したパケットが、消失したメディアデータを含み;ファイル配信ヘッダの情報を使用して、消失したメディアデータについてのバイト範囲要求を生成することと;適切なメディアオブジェクトをメディアアプリケーションに配信することと、を備える、方法。
[0134]例2:ファイル配信ヘッダがROUTEヘッダまたはFLUTEヘッダを備える、例1に記載の方法。
[0135]例3:ファイル配信ヘッダの情報が、TOIとstart_offset値とを備える、例1および2のいずれかに記載の方法。
[0136]例4:適切なメディアオブジェクトが、消失したメディアデータの少なくとも一部を消失している部分メディアオブジェクトである、例1~3のいずれかに記載の方法。
[0137]例5:適切なメディアオブジェクトを配信することが、メディアオブジェクトについての予想配信時間までに適切なメディアオブジェクトを配信することを備える、例1~4のいずれかに記載の方法。
[0138]例6:パケットの損失を検出することが、シグナリングされたパケット間タイムアウトを使用してパケットの損失を検出することを備える、例1~5のいずれかに記載の方法。
[0139]例7:パケット間タイムアウトが、公称CMAFチャンク持続時間に従ってシグナリングされる、例6に記載の方法。
[0140]例8:マルチキャストトランスポートパケットヘッダ、ファイル配信テーブル(FDT)または拡張FDT(EFDT)におけるマルチキャストオブジェクトメタデータから、あるいは制御プレーンサービスまたはセッションメタデータ中で、チャンク持続時間を決定することをさらに備える、例6および7のいずれかに記載の方法。
[0141]例9:チャンク持続時間シグナリングが最大予想パケット到着ジッタ考慮するかどうかを決定することをさらに備える、例6~8のいずれかに記載の方法。
[0142]例10:チャンク持続時間シグナリングが最大予想パケット到着ジッタを考慮しないとき、経験されるパケット受信ジッタに従ってチャンク持続時間シグナリングを決定する、例9に記載の方法。
[0143]例11:バイト範囲要求を生成することが、パケット間タイムアウトの満了後にバイト範囲要求を生成することを備える、例6~10のいずれかに記載の方法。
[0144]例12:ユニキャストプロトコルを介してバイト範囲要求をサブミットすることをさらに備える、例1~11のいずれかに記載の方法。
[0145]例13:ユニキャストプロトコルがHTTPを備える、例12に記載の方法。
[0146]例14:メディアデータを取り出すためのデバイスであって、本デバイスが、例1~13のいずれかに記載の方法を実施するための1つまたは複数の手段を備える、デバイス。
[0147]例15:1つまたは複数の手段が、回路中に実装された1つまたは複数のプロセッサを備える、例14に記載のデバイス。
[0148]例16:本デバイスが、集積回路、マイクロプロセッサ、またはワイヤレス通信デバイスのうちの少なくとも1つを備える、例14に記載のデバイス。
[0149]例17:実行されたとき、プロセッサに、例1~13のいずれかに記載の方法を実施させる命令を記憶したコンピュータ可読記憶媒体。
[0150]例18:メディアデータを取り出すためのデバイスであって、本デバイスは、パケット損失シグナリング機構を示すデータを受信するための手段と、データが、セグメントがチャンクで送出されること、TOIが連続であること、TOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つの指示を備え;パケット損失シグナリング機構のうちの少なくとも1つを使用してパケットの損失を検出するための手段と、損失したパケットが、消失したメディアデータを含み;ファイル配信ヘッダの情報を使用して、消失したメディアデータについてのバイト範囲要求を生成するための手段と;適切なメディアオブジェクトをメディアアプリケーションに配信するための手段と、を備える、デバイス。
[0151]例19:メディアデータを送出する方法であって、本方法は、パケット損失シグナリング機構を示すデータを送出することと、データは、セグメントがチャンクで送出されること、TOIが連続であること、TOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つの指示を備え;ブロードキャストまたはマルチキャストプロトコルを介してメディアデータを含む1つまたは複数のパケットを送出することと;損失したパケットのうちの1つのメディアデータを示すバイト範囲要求を、ユニキャストプロトコルを介してクライアントデバイスから受信することと、バイト範囲要求に応答して、ユニキャストプロトコルを介してクライアントデバイスにバイト範囲のメディアデータを送出することとを備える、方法。
[0152]例20:メディアデータを送出するためのデバイスであって、本デバイスが、例19に記載の方法を実施するための1つまたは複数の手段を備える、デバイス。
[0153]例21:本デバイスが、集積回路、マイクロプロセッサ、またはワイヤレス通信デバイスのうちの少なくとも1つを備える、例20に記載のデバイス。
[0154]例22:実行されたとき、プロセッサに、例19に記載の方法を実施させる命令を記憶したコンピュータ可読記憶媒体。
[0155]例23:メディアデータを送出するためのデバイスであって、本デバイスは、パケット損失シグナリング機構を示すデータを送出するための手段と、データは、セグメントがチャンクで送出されること、TOIが連続であること、TOIに割り当てられたオブジェクトの最後のパケットが、最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つを備え;ブロードキャストまたはマルチキャストプロトコルを介してメディアデータを含む1つまたは複数のパケットを送出するための手段と;損失したパケットのうちの1つのメディアデータを示すバイト範囲要求を、ユニキャストプロトコルを介してクライアントデバイスから受信するための手段と;バイト範囲要求に応答して、ユニキャストプロトコルを介してクライアントデバイスにバイト範囲のメディアデータを送出するための手段と、を備えるデバイス。
[0156]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベース処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実装のための命令、コード、および/またはデータ構造を取り出すために1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0157]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびBlu-ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0158]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または、本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
[0159]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
[0160]様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内に入る。
Claims (41)
- メディアデータを取り出す方法であって、
パケット損失シグナリング機構を示すデータを受信することと、前記パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、前記最後のパケットのヘッダ中に設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つを備え、
前記パケット損失シグナリング機構のうちの前記少なくとも1つを使用してパケットの損失を検出することと、前記損失したパケットは、消失したメディアデータを含み、
前記ファイル配信ヘッダの情報を使用して、前記消失したメディアデータについてのバイト範囲要求を生成することと、
適切なメディアオブジェクトをメディアアプリケーションに配信することと、
を備える、方法。 - 前記パケットの前記損失を検出することは、シグナリングされたパケット間タイムアウト値を使用して前記パケットの前記損失を検出することを備える、請求項1に記載の方法。
- 前記パケット間タイムアウト値は、公称共通メディアアプリケーションフォーマット(CMAF)チャンク持続時間に従ってシグナリングされる、請求項2に記載の方法。
- マルチキャストトランスポートパケットヘッダ、ファイル配信テーブル(FDT)または拡張FDT(EFDT)におけるマルチキャストオブジェクトメタデータから、あるいは制御プレーンサービスまたはセッションメタデータ中で、チャンク持続時間を決定することをさらに備える、請求項2に記載の方法。
- チャンク持続時間シグナリングが最大予想パケット到着ジッタを考慮するかどうかを決定することをさらに備える、請求項2に記載の方法。
- 前記チャンク持続時間シグナリングが前記最大予想パケット到着ジッタを考慮しないとき、経験されるパケット受信ジッタに従って前記チャンク持続時間シグナリングを決定する、請求項5に記載の方法。
- 前記バイト範囲要求を生成することは、前記パケット間タイムアウト値の満了後に前記バイト範囲要求を生成することを備える、請求項6に記載の方法。
- 前記ファイル配信ヘッダはROUTEヘッダまたはFLUTEヘッダを備える、請求項1に記載の方法。
- 前記ファイル配信ヘッダの前記情報は、TOIとstart_offset値とを備える、請求項1に記載の方法。
- 前記適切なメディアオブジェクトは、前記消失したメディアデータの少なくとも一部を消失している部分メディアオブジェクトである、請求項1に記載の方法。
- 前記適切なメディアオブジェクトを配信することは、前記メディアオブジェクトについての予想配信時間までに前記適切なメディアオブジェクトを配信することを備える、請求項1に記載の方法。
- ユニキャストプロトコルを介して前記バイト範囲要求をサブミットすることをさらに備える、請求項1に記載の方法。
- 前記ユニキャストプロトコルがHTTPを備える、請求項12に記載の方法。
- メディアデータを取り出すためのデバイスであって、前記デバイスが、
メディアデータを記憶するように構成されたメモリと、
回路中に実装された1つまたは複数のプロセッサと、を備え、前記1つまたは複数のプロセッサは、
パケット損失シグナリング機構を示すデータを受信することと、前記パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、前記最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つを備え、
前記パケット損失シグナリング機構のうちの前記少なくとも1つを使用してパケットの損失を検出することと、前記損失したパケットは、消失したメディアデータを含み、
前記ファイル配信ヘッダの情報を使用して、前記消失したメディアデータについてのバイト範囲要求を生成することと、
適切なメディアオブジェクトをメディアアプリケーションに配信することと、
を行うように構成された、デバイス。 - 前記1つまたは複数のプロセッサは、シグナリングされたパケット間タイムアウト値を使用して前記パケットの前記損失を検出するように構成された、請求項14に記載のデバイス。
- 前記パケット間タイムアウト値は、公称共通メディアアプリケーションフォーマット(CMAF)チャンク持続時間に従ってシグナリングされる、請求項15に記載のデバイス。
- 前記1つまたは複数のプロセッサは、マルチキャストトランスポートパケットヘッダ、ファイル配信テーブル(FDT)または拡張FDT(EFDT)におけるマルチキャストオブジェクトメタデータから、あるいは制御プレーンサービスまたはセッションメタデータ中で、チャンク持続時間を決定するようにさらに構成された、請求項15に記載のデバイス。
- 前記1つまたは複数のプロセッサは、チャンク持続時間シグナリングが最大予想パケット到着ジッタを考慮するかどうかを決定するようにさらに構成された、請求項15に記載のデバイス。
- 前記ファイル配信ヘッダはROUTEヘッダまたはFLUTEヘッダを備える、請求項14に記載のデバイス。
- 前記ファイル配信ヘッダの前記情報は、TOIとstart_offset値とを備える、請求項14に記載のデバイス。
- 前記1つまたは複数のプロセッサは、ユニキャストプロトコルを介して前記バイト範囲要求をサブミットするようにさらに構成された、請求項14に記載のデバイス。
- 前記デバイスは、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイス、
のうちの少なくとも1つを備える、請求項14に記載のデバイス。 - 命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、プロセッサに、
パケット損失シグナリング機構を示すデータを受信することと、前記パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、前記最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つを備え、
前記パケット損失シグナリング機構のうちの前記少なくとも1つを使用してパケットの損失を検出することと、前記損失したパケットが、消失したメディアデータを含み、
前記ファイル配信ヘッダの情報を使用して、前記消失したメディアデータについてのバイト範囲要求を生成することと、
適切なメディアオブジェクトをメディアアプリケーションに配信することと、
を行わせる、コンピュータ可読記憶媒体。 - メディアデータを取り出すためのデバイスであって、
パケット損失シグナリング機構を示すデータを受信するための手段と、前記パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、前記最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つを備え、
前記パケット損失シグナリング機構のうちの前記少なくとも1つを使用してパケットの損失を検出するための手段と、前記損失したパケットは、消失したメディアデータを含み、
前記ファイル配信ヘッダの情報を使用して、前記消失したメディアデータについてのバイト範囲要求を生成するための手段と、
適切なメディアオブジェクトをメディアアプリケーションに配信するための手段と、
を備える、デバイス。 - メディアデータを送出する方法であって、
パケット損失シグナリング機構を示すデータを送出することと、前記パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、前記最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つを備え、
ブロードキャストまたはマルチキャストプロトコルを介してメディアデータを含む1つまたは複数のパケットを送出することと、
損失した前記パケットのうちの1つのメディアデータを示すバイト範囲要求を、ユニキャストプロトコルを介してクライアントデバイスから受信することと、
前記バイト範囲要求に応答して、前記ユニキャストプロトコルを介して前記クライアントデバイスに前記バイト範囲の前記メディアデータを送出することと、
を備える、方法。 - パケット損失シグナリング方法を示す前記データを送出することは、パケット間タイムアウト値を表すデータを送出することをさらに備える、請求項25に記載の方法。
- 前記パケット間タイムアウト値を表す前記データを送出することは、公称共通メディアアプリケーションフォーマット(CMAF)チャンク持続時間に従って前記パケット間タイムアウト値をシグナリングすることを備える、請求項26に記載の方法。
- マルチキャストトランスポートパケットヘッダ、ファイル配信テーブル(FDT)または拡張FDT(EFDT)におけるマルチキャストオブジェクトメタデータ中で、あるいは制御プレーンサービスまたはセッションメタデータ中で、チャンク持続時間を表すデータをシグナリングすることをさらに備える、請求項26に記載の方法。
- 前記ファイル配信ヘッダはROUTEヘッダまたはFLUTEヘッダを備える、請求項25に記載の方法。
- 前記ファイル配信ヘッダの前記情報は、TOIとstart_offset値とを備える、請求項25に記載の方法。
- 前記ユニキャストプロトコルはHTTPを備える、請求項25に記載の方法。
- メディアデータを送出するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
回路中に実装された1つまたは複数のプロセッサと、を備え、前記1つまたは複数のプロセッサは、
パケット損失シグナリング機構を示すデータを送出することと、前記パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、前記最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つを備え、
ブロードキャストまたはマルチキャストプロトコルを介してメディアデータを含む1つまたは複数のパケットを送出することと、
損失した前記パケットのうちの1つのメディアデータを示すバイト範囲要求を、ユニキャストプロトコルを介してクライアントデバイスから受信することと、
前記バイト範囲要求に応答して、前記ユニキャストプロトコルを介して前記クライアントデバイスに前記バイト範囲の前記メディアデータを送出することと、
を行うように構成された、デバイス。 - 前記1つまたは複数のプロセッサは、パケット間タイムアウト値を表すデータを送出するようにさらに構成された、請求項32に記載のデバイス。
- 前記1つまたは複数のプロセッサは、公称共通メディアアプリケーションフォーマット(CMAF)チャンク持続時間に従って前記パケット間タイムアウト値をシグナリングするように構成された、請求項33に記載のデバイス。
- 前記1つまたは複数のプロセッサは、マルチキャストトランスポートパケットヘッダ、ファイル配信テーブル(FDT)または拡張FDT(EFDT)におけるマルチキャストオブジェクトメタデータ中で、あるいは制御プレーンサービスまたはセッションメタデータ中で、チャンク持続時間を表すデータをシグナリングするようにさらに構成された、請求項33に記載のデバイス。
- 前記ファイル配信ヘッダはROUTEヘッダまたはFLUTEヘッダを備える、請求項32に記載のデバイス。
- 前記ファイル配信ヘッダの前記情報は、TOIとstart_offset値とを備える、請求項32に記載のデバイス。
- 前記ユニキャストプロトコルはHTTPを備える、請求項32に記載のデバイス。
- 前記デバイスは、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイス、
のうちの少なくとも1つを備える、請求項32に記載のデバイス。 - 命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、プロセッサに、
パケット損失シグナリング機構を示すデータを送出することと、前記パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、前記最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つを備え、
ブロードキャストまたはマルチキャストプロトコルを介してメディアデータを含む1つまたは複数のパケットを送出することと、
損失した前記パケットのうちの1つのメディアデータを示すバイト範囲要求を、ユニキャストプロトコルを介してクライアントデバイスから受信することと、
前記バイト範囲要求に応答して、前記ユニキャストプロトコルを介して前記クライアントデバイスに前記バイト範囲の前記メディアデータを送出することと、
を行わせる、コンピュータ可読記憶媒体。 - メディアデータを送出するためのデバイスであって、
パケット損失シグナリング機構を示すデータを送出するための手段と、前記パケット損失シグナリング機構は、セグメントがチャンクで送出されること、トランスポートオブジェクト識別子(TOI)が連続であること、またはTOIに割り当てられたオブジェクトの最後のパケットが、前記最後のパケットのヘッダ中で設定された特定のフラグを有すること、基本URL、最大レイテンシ、またはファイル配信ヘッダ中の同期ポイントのうちの少なくとも1つを備え、
ブロードキャストまたはマルチキャストプロトコルを介してメディアデータを含む1つまたは複数のパケットを送出するための手段と、
損失した前記パケットのうちの1つのメディアデータを示すバイト範囲要求を、ユニキャストプロトコルを介してクライアントデバイスから受信するための手段と、
前記バイト範囲要求に応答して、前記ユニキャストプロトコルを介して前記クライアントデバイスに前記バイト範囲の前記メディアデータを送出するための手段と、
を備える、デバイス。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962908949P | 2019-10-01 | 2019-10-01 | |
US62/908,949 | 2019-10-01 | ||
US17/039,442 US11582125B2 (en) | 2019-10-01 | 2020-09-30 | Repair mechanism for adaptive bit rate multicast |
US17/039,442 | 2020-09-30 | ||
PCT/US2020/053766 WO2021067578A1 (en) | 2019-10-01 | 2020-10-01 | Repair mechanism for adaptive bit rate multicast |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022550528A true JP2022550528A (ja) | 2022-12-02 |
JPWO2021067578A5 JPWO2021067578A5 (ja) | 2023-09-13 |
Family
ID=75162533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022519195A Pending JP2022550528A (ja) | 2019-10-01 | 2020-10-01 | 適応ビットレートマルチキャストのための修復機構 |
Country Status (10)
Country | Link |
---|---|
US (1) | US11582125B2 (ja) |
EP (1) | EP4038889A1 (ja) |
JP (1) | JP2022550528A (ja) |
KR (1) | KR20220075325A (ja) |
CN (1) | CN114430909A (ja) |
CL (1) | CL2022000778A1 (ja) |
CO (1) | CO2022003857A2 (ja) |
IL (1) | IL290683A (ja) |
TW (1) | TW202215853A (ja) |
WO (1) | WO2021067578A1 (ja) |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2122874A1 (en) * | 2007-01-09 | 2009-11-25 | Nokia Corporation | Method for supporting file versioning in mbms file repair |
US9654601B2 (en) * | 2011-03-14 | 2017-05-16 | Verizon Digital Media Services Inc. | Network connection hand-off and hand-back |
EP2774347A2 (en) | 2011-11-01 | 2014-09-10 | Qualcomm Incorporated | Content delivery system with allocation of source data and repair data among http servers |
US9900166B2 (en) * | 2013-04-12 | 2018-02-20 | Qualcomm Incorporated | Methods for delivery of flows of objects over broadcast/multicast enabled networks |
US9258747B2 (en) * | 2013-09-17 | 2016-02-09 | Intel IP Corporation | User equipment and methods for fast handover failure recovery in 3GPP LTE network |
GB2521845B (en) * | 2014-01-03 | 2021-07-07 | British Broadcasting Corp | Content delivery |
WO2015167200A1 (ko) * | 2014-04-30 | 2015-11-05 | 엘지전자 주식회사 | 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 |
US20170055046A1 (en) * | 2014-05-21 | 2017-02-23 | Lg Electronics Inc. | Broadcast signal transmitting/receiving method and device |
US20160164943A1 (en) * | 2014-12-05 | 2016-06-09 | Qualcomm Incorporated | Transport interface for multimedia and file transport |
US9621618B2 (en) * | 2014-12-22 | 2017-04-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Packet analyzer device and method to measure a video quality of transmitted IP multicast media |
US10749930B2 (en) * | 2015-03-02 | 2020-08-18 | Qualcomm Incorporated | Indication for partial segment |
US11805467B2 (en) * | 2015-03-25 | 2023-10-31 | Comcast Cable Communications, Llc | Distributed content delivery for moving devices |
BR112019024070A2 (pt) * | 2017-05-16 | 2020-06-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Método de ingestão e de distribuição de mídia, aparelho empacotador de mídia, servidor de origem, nó de ponto terminal, e, rede de transmissão contínua em mídia |
US10904313B2 (en) * | 2017-06-20 | 2021-01-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Apparatuses, methods, computer programs, and computer program products for live uplink adaptive streaming |
GB201721847D0 (en) | 2017-12-22 | 2018-02-07 | Telecom Paris Tech | Priority map for media files |
EP3522498B1 (en) * | 2018-02-01 | 2020-08-26 | Broadpeak | A method for streaming an audio video content |
US10721287B2 (en) * | 2018-03-23 | 2020-07-21 | Verizon Patent And Licensing, Inc. | Real-time file repair |
WO2020104012A1 (en) * | 2018-11-19 | 2020-05-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Segment routing network |
-
2020
- 2020-09-30 US US17/039,442 patent/US11582125B2/en active Active
- 2020-10-01 EP EP20793888.7A patent/EP4038889A1/en active Pending
- 2020-10-01 JP JP2022519195A patent/JP2022550528A/ja active Pending
- 2020-10-01 KR KR1020227009781A patent/KR20220075325A/ko active Search and Examination
- 2020-10-01 CN CN202080067719.0A patent/CN114430909A/zh active Pending
- 2020-10-01 WO PCT/US2020/053766 patent/WO2021067578A1/en active Application Filing
- 2020-10-05 TW TW109134480A patent/TW202215853A/zh unknown
-
2022
- 2022-02-17 IL IL290683A patent/IL290683A/en unknown
- 2022-03-29 CL CL2022000778A patent/CL2022000778A1/es unknown
- 2022-03-30 CO CONC2022/0003857A patent/CO2022003857A2/es unknown
Also Published As
Publication number | Publication date |
---|---|
US11582125B2 (en) | 2023-02-14 |
KR20220075325A (ko) | 2022-06-08 |
CN114430909A (zh) | 2022-05-03 |
TW202215853A (zh) | 2022-04-16 |
EP4038889A1 (en) | 2022-08-10 |
US20210099371A1 (en) | 2021-04-01 |
CO2022003857A2 (es) | 2022-04-19 |
IL290683A (en) | 2022-04-01 |
CL2022000778A1 (es) | 2023-01-20 |
WO2021067578A1 (en) | 2021-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6770000B2 (ja) | DASHクライアントQoEメトリックのミドルウェア配信 | |
CN107810624B (zh) | 用于检索媒体数据的方法、设备和计算机可读存储介质 | |
US20160337424A1 (en) | Transferring media data using a websocket subprotocol | |
US20180176278A1 (en) | Detecting and signaling new initialization segments during manifest-file-free media streaming | |
EP3791601A1 (en) | Signaling, in a media segment, missing sections of media data for network streaming | |
US11843840B2 (en) | Random access at resync points of DASH segments | |
US11184665B2 (en) | Initialization set for network streaming of media data | |
US20210306703A1 (en) | Determination of availability of chunks of data for network streaming media data | |
US11582125B2 (en) | Repair mechanism for adaptive bit rate multicast | |
US11943501B2 (en) | Dynamic resolution change hints for adaptive streaming | |
US20210344992A1 (en) | Calculating start time availability for streamed media data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20230104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230904 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230904 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20241001 |