(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下で説明する
図1〜
図15と、本明細書における本開示の基本原則を説明するために用いられる多様な実施形態とは、単に例示するだけのものであり、本開示の範囲を制限する方式として理解してはいけない。当該技術分野における当業者であれば、本開示の基本原則が、適切に配列されたシステム又はデバイスにおいて実現できることを理解すべきである。
【0012】
MMTコーディング及びメディア伝送は、ここで完全に説明されるように、本開示に含まれる、以下の文献及び標準技術、MPEG-H Systems、Text of ISO/IEC 2nd CD 23008-1 MPEG Media Transportに論議される。MMTは、カプセル化(encapsulation)と、伝送(delivery)と、シグナリング(signaling)とを含む3個の機能領域を定める。カプセル化機能領域は、MMTコンプライアントエンティティ(MMT compliant entity)により処理される、メディアコンテンツと、MMTパッケージと、フォーマットデータユニットとの論理構造を規定する。MMTパッケージは、メディアコンテンツと、適応的な伝送が必要となる情報を提供するメディアコンテンツ間の関係とを含む構成要素を指定する。データユニットのフォーマットは、前記コード化されたメディアを伝送プロトコルのペイロードとして格納されるか、或いは運ばれるようにカプセル化し、格納と運搬との間で変換しやすくなるように定義される。伝送機能領域は、アプリケーション階層プロトコルと、ペイロードのフォーマットとを定める。アプリケーション階層プロトコルは、マルチメディアの伝送のための通常のアプリケーション階層プロトコルと比べて、MMTパッケージの伝送のために、多重化(multiplexing)を含む向上した特徴を提供する。ペイロードフォーマットは、特定のメディアタイプ又は符号化方式に不可知(agnostic)のコード化されたメディアデータを運搬するために定められる。シグナリング機能領域は、MMTパッケージの伝送及び消費を管理するために、メッセージのフォーマットを定める。消費管理のためのメッセージは、MMTパッケージの構造をシグナルするために用いられ、伝送管理のためのメッセージは、ペイロードフォーマットの構造及びプロトコルの構成をシグナルするために用いられる。
【0013】
MMTは、オーディオ、ビデオのような時間連続のマルチメディア及びウィジェット、ファイルなどのような他の固定コンテンツ(static content)の伝送のための新しいフレームワークを定める。MMTは、MMTパッケージを受信エンティティへ伝送するためのプロトコル(即ち、MMTP)を規定する。MMTPは、前記プロトコルヘッダの一部として、MMTPパッケージの送信時間をシグナルする。このような時間は、受信エンティティが、各入力MMTパケットの送信時間及び受信時間を検査することにより、デジッタ(de-jittering)を行うことを可能とする。
【0014】
本開示の実施形態は、新しいパケット化モード、GFDモードが、MMT伝送機能に導入されたことを認識する。GFDは、任意の一般ファイルの送信を可能にする。本開示の実施形態は、現在MMTが、4個の他のパケット化モード、メディアプロセッシングユニット(media processing unit:MPU)モード、MPUフラグメントモード、シグナリングメッセージモード、及び前方エラー訂正(forward error correction:FEC)モードを定めることを認識する。MPUモードは、完全なMPUを伝送し、トランスポート階層に分割(fragmentation)を委ねる。MPUフラグメントモードは、MPU伝送のために最適化され、メディア認識方式(media-aware manner)でパケット化が行われて、MPUフラグメントタイプ及び特性に関して受信クライアントに知らせる。FECモード及びシグナリングモードは、それぞれFECリペアパケット(FEC repair packet)及びシグナリングメッセージを伝送するためのものである。ここで、FECリペアパケットは、一つ以上の損失ソースパケットを復元するために用いられるFECリペアフローのセグメント化セットを運ぶ。
【0015】
本開示の実施形態は、全体のMPUが、何のメディア認識パケット化もなく、オブジェクト(object)として伝送されるため、MPUモードがGFDモードのサブケース(sub-case)として看做されてもよいことを認識する。MPUに関する情報は、GFDモードにおけるオブジェクトのメタデータの一部として完全に伝送されることができる。従って、本開示の実施形態は、明確性のために、MPUモードを除去し、MPUフラグメントモードを、MPUモードと新たに命名することを提供する。結果的に、MPUは、GFDモードを用いて、一般オブジェクトとして伝送されてもよく、又はMPUモードを用いて、独立的なフラグメントの集合として伝送されてもよい。
【0016】
本開示の実施形態は、現在パケットのペイロードフォーマットが、複数個の階層を介して分割されることを認識する。主なペイロードヘッダが、各ペイロードフォーマットに必要であり、MMTPプロトコルヘッダに一対一のマッピングを有する。本開示の実施形態は、一般ペイロードヘッダを、MMTPプロトコルヘッダと併合し、ペイロードタイプによって、残りのペイロードヘッダを生成することを認識する。例えば、分割及び集合(aggregation)は、また一部のペイロードタイプ、例えば、FEC及びGFDが、集合及び分割を必要としないため、ペイロードタイプに依存している。本開示の実施形態は、またシグナリングメッセージ及びアップデートの容易な識別を可能とするメッセージのシグナリングのためのペイロードタイプを提供する。また、前記ペイロードフォーマットは、シグナリングメッセージの集合及び分割を可能とする。
【0017】
図1は、本開示の多様な実施形態が実現できる送信システム100の一例を示している図面である。図示した実施形態において、無線システム100は、送信エンティティ101と、ネットワーク105と、受信エンティティ110〜116と、基地局(BS)102、基地局(BS)103、及び他の類似の基地局或いは中継局(図示せず)のような無線送信点(例えば、eNB(Evolved Node B)、ノードB)とを含む。送信エンティティ101は、例えば、インターネット、メディアブロードキャストネットワーク、或いはIP基盤の通信システムであってもよいネットワーク105を通じて、基地局102及び基地局103と通信している。受信エンティティ110〜116は、ネットワーク105及び/又は基地局102、103を介して、送信エンティティ101と通信している。例えば、受信エンティティ110〜116は、送信エンティティ101からダウンローディング及びストリーミングのために、メディアデータを受信する。多様な実施形態において、本開示の教示により、送信エンティティ101は、MMTPパケットを生成及び送信してもよく、一つ以上の受信エンティティ110〜116は、前記MMTPパケットを受信及び処理してもよい。
【0018】
基地局102は、基地局102のカバレッジ領域(coverage area)120内で、複数の第1受信エンティティ(例えば、ユーザ端末、携帯電話、移動局、加入者ステーション)に、ネットワーク105に対する無線アクセス(基地局101を介して)を提供する。複数の第1受信エンティティは、スモールビジネス(small business:SB)に位置付けられるユーザ端末111と、エンタープライズ(enterprise:E)に位置付けられるユーザ端末112と、ワイファイ(WiFi)ホットスポット(hotspot:HS)に位置付けられるユーザ端末113と、第1レジデンス(residence:R)に位置付けられるユーザ端末114と、第2レジデンス(residence:R)に位置付けられるユーザ端末115と、携帯電話、無線通信可能なラップトップ、無線通信可能なPDA、タブレットPC(tablet computer)などのようなモバイルデバイス(M)であり得るユーザ端末116とを含む。
【0019】
基地局103は、基地局103のカバレッジ領域125内で、複数の第2ユーザ端末に、ネットワーク105に対する無線アクセスを提供する。複数の第2ユーザ端末は、ユーザ端末115と、ユーザ端末116とを含む。一実施形態において、基地局101〜103は、OFDM技術或いはOFDMA技術を用いて、互いに通信してもよく、ユーザ端末111〜116と通信してもよい。
【0020】
図1には、6個のユーザ端末のみが示されているが、システム100は、追加のユーザ端末に無線広帯域及びネットワークアクセスを提供できることが分かる。ユーザ端末115及びユーザ端末116は、カバレッジ領域120及びカバレッジ領域125の両方の境界(edge)に位置する。ユーザ端末115及びユーザ端末116は、それぞれ基地局102及び基地局103の両方と通信し、当該技術分野における当業者に知られているように、ハンドオフモード(handoff mode)で操作してもよい。
【0021】
ユーザ端末111〜116は、ネットワーク105を通じて、メディアデータ音声、データ、ビデオ、ビデオ会議、及び/又は他のサービスをアクセスすることができる。一実施形態において、一つ以上のユーザ端末111〜116は、WiFi WLANのアクセスポイント(access point:AP)と関連付けられ得る。ユーザ端末116は、無線可能なラップトップコンピュータ、個人用データアシスタント、ノートパソコン(notebook)、携帯用デバイス、又は他の無線可能なデバイスを含む、多数のモバイルデバイスのうちのいずれかであってもよい。ユーザ端末114、115は、例えば、無線可能なパソナールコンピュータ(PC)、ラップトップ、ゲートウェイ(gateway)、又は他のデバイスであってもよい。
【0022】
図2は、本開示の多様な実施形態によるMMTパッケージ200及び該MMTパッケージ200の論理構造を示している図面である。
図2を参照すると、MMTパッケージ200は、一つ以上の提示情報ドキュメント(presentation information document)205と、関連するトランスポート特性215を有してもよい一つ以上のアセット210とを含む。アセット210は、同一のアセット識別子(identification:ID)を共有する一つ以上のメディアプロセッシングユニット(MPU)220の集合である。アセット210は、オーディオ或いはビデオ、又はウェブページ(web page)のような符号化メディアデータを含む。前記メディアデータは、同期型又は非同期型であり得る。
【0023】
提示情報(PI)ドキュメント205は、消費のためのアセット210のうち、空間及び時間関係を特定する情報を含む。ハイパーテキストマークアップ言語(hypertext markup language:HTML)と、構成情報(composition information:CI)ドキュメントとの組合せが、PIドキュメント205の例である。また、PIドキュメント205は、パッケージ200に含まれているアセット210の伝送順序を決めるために用いられてもよい。PIドキュメント205は、一つ以上のメッセージとして、又は完全なドキュメントとして伝送される。放送伝送の場合において、サービス提供者は、提示情報ドキュメント205を連続的に循環し、循環が行われる周波数を決める。
【0024】
アセット210は、マルチメディア提示を組み立てるために用いられるマルチメディアデータである。前述のように、アセット210は、符号化されたメディアデータを運ぶために、同一のアセットIDを共有するMPUを論理的にグルップ化したものである。アセット210の符号化されたメディアデータは、同期型データ又は非同期型データとなり得る。同期型データは、内在するタイムライン(timeline)を有し、指定時間でデータユニットの同期化された復号化及び提示を要求できる符号化されたメディアデータである。非同期型データは、サービスのコンテキスト又はユーザの指示に基づいて、任意の時間で復号化することができる他のタイプのデータである。
【0025】
単一アセット210のMPU220は、同期型又は非同期型メディアを有する。同期型メディアデータを運搬する同一のアセット210の2個のMPU220は、これらの提示時間にオーバーラップできない。提示の指示がない場合、同一のアセット210のMPU220は、これらのシーケンス番号によって順次にプレイバック(play back)してもよい。MMT受信エンティティの提示エンジンにより個別的に消費できるメディアデータのタイプは、個別アセット210として考慮してもよい。個別アセット210として考慮できるメディアデータタイプの例は、オーディオ、ビデオ、又はウェブページメディアデータタイプである。
【0026】
MPU220は、MMTエンティティにより処理し、他のMPU220から独立的に提示エンジンにより消費してもよいメディアデータアイテムである。MMTエンティティによるMPU220の処理は、カプセル化/脱カプセル化(decapsulation)及びパケット化/逆パケット化(depacketization)を含む。MPU220の消費は、メディア処理(例えば、符号化/復号化)及び提示を含む。パケット化の目的のために、MPU220は、アクセスユニット(AU)より小さくてもよいデータユニットに分割され得る。MPUのシンタックス(syntax)及びセマンティックス(semantics)は、前記MPUに運搬されるメディアデータのタイプに依存しない。
【0027】
MPU220は、他の標準、例えば、MPEG−4 AVC(advanced video coding)又はMPEG−2 TS(transport stream)によってフォーマット化されたデータの一部を含んでもよい。アセット識別子(asset_id「Y」を有するアセットに依存するasset_id「X」を有するアセットの場合、asset_id「X」を有するアセットのm番目のMPUと、asset_id「Y」を有するアセットのn番目のMPUとは、「m」が「n」と同一でない時にはいつも、即ち、asset_id「X」を有するアセットのm番目のMPUに含まれているサンプルは、asset_id「Y」を有するアセットのn番目のMPUのサンプルの境界により定められる時間間隔内に存在しない時にはいつも、オーバーラップしない。
【0028】
追加的に、セグメントインデックス(segment index:「sidx」)ボックスが存在する場合「sidx」ボックスにより定められるメディア間隔は、オーバーラップされない、即ち、MPUに含まれているk番目のメディア間隔(「sidx」boxにより定められる)に含まれているメディアサンプルが、「k」と異なる「j」について、j番目のメディア時間間隔(前記「sidx」ボックスにより定められる)のサンプル境界により定められる時間間隔の内に存在しない。「sidx」ボックスが存在しない場合、MPUメタデータなしで、asset_id「Y」を有するアセットのMPUのj番目のMPUと、 asset_id「X」を有するアセットのMPUのj番目のMPUとの間の連接(concatenation)は、有効なMPUを招く。「sidx」ボックスが存在する場合、asset_id「Y」を有するアセットのj番目のMPUのk番目のメディア間隔(「sidx」ボックスにより定められる)と、asset_id「Y」を有するMPUのメタデータに従うasset_id「X」を有するアセットのj番目のMPUのk番目のメディア間隔(「sidx」ボックスにより定められる)との連接は、有効なMPUを招く。
【0029】
単一MPUは、整数のAU或いは非同期型データを含む。即ち、同期型データの場合、単一AUは、複数のMPUに分割されない。非同期型データの場合、単一MPUは、提示エンジンにより消費される、一つ以上の非同期型アイテムを含む。MPUは、関連のasset_id及びシーケンス番号により識別される。
【0030】
同期型メディアを含むMPUは、ここで参考に含まれる、ISO/IEC14496−12のAnnexIに規定されたように、少なくとも一つのストリームアクセスポイント(SAP)を含む。MPUの第1アクセスユニットは、MMTエンティティによる処理のためのSAPである。同期型メディアの場合、MPUペイロードにおける第1AUの復号化順序が「0」であることを意味する。他の標準によりフォーマット化されたデータを含むMPUの場合、MPUペイロードはそのようなフォーマットの処理に必要な情報で開示する。例えば、MPUがビデオデータを含む場合、MPUペイロードは、一つ以上のピクチャー群と、これらの処理に要求されるデコーダ構成情報とを含む。他の例において、MPUがMPEG−2 TSパケットを含む場合、MPU MPUペイロードは、残り又は後続のTSパケットのためのプログラム関連テーブル(PAT)プログラムマップテーブル(PMT)を含むTSパケットで開始し得る。同期型メディアデータの場合、各AUの提示期間、復号化順序、及び提示順序が、MPUメタデータの一部としてシグナルされる。前記MPUは、初期提示時間を有さない。MPUにおける第1AUの提示時間は、PIドキュメントにより記述される。前記PIドキュメントは、各MPUの初期提示時間を特定する情報を含む。
【0031】
図3は、本開示の実施形態による異なるアセットからMPUの提示についてのPIドキュメントにより提供されるタイミング(timing)の一例を示している図面である。
図3を参照すると、PIドキュメントは、MMT受信エンティティが、アセット#1及びアセット#2のMPU#1を同時に提示することを指定する。以後のポイントにおいて、アセット#3からのMPU#1が提示されるとスケジュールされる。最後に、アセット#1及びアセット#2のMPU#2が、同期化されて提示される。MPUについて指定された提示時間は、MPUの第1AUの提示時間を定める。非同期型メディアデータを含むMPUは、1個のデータアイテムをエントリポイント(entry point)として指定することができる。
【0032】
MFUは、トランスポートの目的のために、MPUのメディア認識分割を可能とする。これは、MMT送信エンティティが、受信側での消費を考慮して、MPUの分割を行うことを許容する。MFUは、同期型メディアデータに対して、AUより小さくてもよいメディアデータユニットを含み、前記含まれたメディアデータは、メディアデコーダにより処理してもよい。MFUは、前記運搬されるメディアデータの境界で情報を含むMFUヘッダを含む。MFUのシンタックス及びセメンティックスは、MFUに運搬されるメディアデータのタイプとは独立的である。MFUのサイズが、リンク階層フレーム(link layer frame)のサイズより大きい場合、MFUは、複数のリンク階層フレームに分割されてもよい。MFUは、符号化されたメディアフォーマットに依存しない方式で、単一AU内のMFU同士間の関係情報のみならず、同一のMPUにおいて一つのMFUを他のMFUと区別する識別子を含む。単一AUに含まれているMFU同士間の従属関係は、複数のMFUの相対的優先順位として説明される。前記情報は、向上した伝送のために、下位伝送階層(underlying delivery layer)により使われることができる。例えば、伝送階層は、廃棄可能な複数のMFUの伝送をスキップ(skip)して、特定の環境、例えば、ネットワークの特定のリンク上の不十分な帯域幅の下で、QoS(Quality of Service)をサポートすることができる。
【0033】
本開示の多様な実施形態によると、MMTペイロードは、MMTプロトコル(MMT protocol:MMTP)を用いて、アセットと、一般オブジェクトと、MMTパッケージの消費のための他の情報とを、パケット化及び運搬するために用いられる一般ペイロードである。MMTペイロードは、複数のMPUと、一般オブジェクトと、シグナリングメッセージとをパケット化するために用いられてもよい。MMTペイロードは、複数のMPUのフラグメントと、一つ以上のシグナリングメッセージと、一つ以上の一般オブジェクト(完全なMPUを含む)と、一つ以上のリペアシンボルなどを運搬することができる。前記ペイロードのタイプは、下記の
図9でより具体的に説明する、前記MMTPパケットヘッダに含まれているタイプ(又はオブジェクトタイプ)フィールドにより指示される。各ペイロードタイプにつき、タイプ特定のペイロードヘッダのみならず、伝送のための単一データユニットが定められる。例えば、MPU(例えば、MFU)のフラグメントは、MMTペイロードが、MPUフラグメントを運搬するとき、単一データユニットとして考慮される。MMTプロトコルは、同一のデータタイプを有する複数のデータユニットを、単一ペイロードに集合することができる。また、MMTプロトコルは、単一データユニットを多数のパケットに分割することができる。
【0034】
MMTペイロードは、ペイロードヘッダ及びペイロードデータから構成される。一部のデータタイプは、単一データユニットが、多数のフラグメントに分割されるか、又はデータユニットの集合が、単一パケットに伝送される場合での分割及び集合を許容することができる。各データユニットは、ペイロードのタイプに応じて、各データユニット固有のペイロードヘッダを有してもよい。ペイロードタイプ特定のヘッダを要求しないタイプについて、何のペイロードタイプヘッダも存在せず、ペイロードデータは、MMTPヘッダに従う。MMTPパケットの一部フィールドは、ペイロードタイプに基づいて別に解釈される。このようなフィールドのセマンティックスは、使用時のペイロードタイプにより定められる。
【0035】
図4は、本開示の多様な実施形態によるストリーミングモードペイロードヘッダ400についての例示的な構造を示している図面である。
【0036】
MMTプロトコルを用いるMPUのMMT受信器への伝送は、大きなMPUの伝送を可能とするために、送信器及び受信器の各々において生じるパケット化及び逆パケット化の手続きを要求する。MPU伝送モードは、MPUの多様なサイズ変化を可能とするパケット化及び集合のために、完全なMPU又は独立的な伝送データユニットである単一MPUの特定のサブパート(subpart)を考慮する。MMTPペイロードフォーマットのストリーミングモード(例えば、MPUモード)は、単一伝送データユニットを多数のMMTPペイロードに分割して、大きなサイズを有するMPUの伝送をサポートできるようにする。また、ストリーミングモードは、同一のタイプを有する多数の伝送データユニットの単一MMTPペイロードへの集合を許容して、より小さいデータユニットを供給する。パケット化手続きは、MPUが分割される場合、MPUを各MMTPパケットに伝送されるMMTPペイロードの集合に変換してもよい。受信エンティティで、逆パケット化が行われて、元のMPUデータを復元する。
【0037】
ペイロードタイプ0x00において、MPUは、トランスポート階層が、伝送されるフラグメントの属性及び優先順位を識別することを許容するメディア認識方式で分割される。MPUのフラグメントは、例えば、MPUメタデータ、又はムービーフラグメントメタデータ、MFU、又は非同期型データアイテム(non-timed data item)となってもよい。このストリーミングモードは、またシグナリングメッセージの伝送又は復元シンボルのために用いられる。
【0038】
図4を参照すると、ストリーミングモードペイロードヘッダ400のセマンティックスと、ストリーミングモードペイロードヘッダ400の各フィールドの長さは、以下のように提供される。長さフィールド402は、16ビットの長さを有し、このフィールドを含む全体ペイロードのサイズを示す、伝送データユニットタイプ(DU_type)フィールド404が、5ビットの長さであり、例えば、下記の表1により提供されるような、ペイロードの伝送データユニットタイプを示す。
【0040】
ストリーミングモードペイロードヘッダ400のフィールドと連続して、aggregation_flag(A)フィールド406は、1ビッドの長さであり、「1」と設定される場合、1個以上の伝送データユニットが、分割指示子(fragmentation indicator)f_iフィールド408が無視されるペイロードに存在することを示す。f_iフィールド408は、2ビットの長さであり、分割識別子が、例えば、下記の表2に示されているようなペイロードに含まれているデータユニットの分割についての情報を含むことを示す。
【0042】
f_iフィールド408の値は、前記フィールド「A」の値が「1」の場合、「00」と設定されてもよい。
【0043】
ストリーミングモードペイロードヘッダ400のフィールドと連続して、カウンタ(counter)フィールド410は、16ビットであり、aggregation_flagが「0」と設定される場合、MMTペイロードに連続する同一の伝送データユニットのフラグメントを含むペイロードの個数を示し、aggregation_flagが「1」と設定される場合、ペイロードに集合されている伝送データユニットの個数を示す。DU_lengthフィールド412は、16ビットの長さを有し、DU_lengthフィールド412の次のデータの長さを示す。aggregation_flagが「0」と設定される場合、DU_lengthフィールド412は存在できない。aggregation_flagが「1」と設定される場合、DU_lengthフィールド412は、集合されたデータユニット各々の先に、「counter」フィールド410の値ほど現れ得る。DU_Headerフィールド414は、データユニットのヘッダであり、データユニットのヘッダは、以下でより具体的に説明する、伝送データユニットのタイプに依存する。aggregation_flagが「1」と設定される場合、DU_Headerフィールド414は、集合された伝送データユニット各々の先に、「counter」フィールド410の値ほど現れ得る。aggregation_flagが「0」と設定される場合、DU_Headerフィールド414は、「f_i」フィールド408の値が「01」の場合、現れ得る。
【0044】
図5は、本開示の多様な実施形態による同期型-メディアMFUヘッダ500についての例示的な構造を示している図面である。同期型-メディアMFUヘッダ500は、同期型メディアデータについての、
図4のDU_header414に含まれているような伝送データユニットヘッダの一例である。
【0045】
図5を参照すると、同期型-メディアMFUヘッダ500の各フィールドのセマンティックス及び長さは、以下のように提供される。movie_fragment_sequence_numberフィールド502は、32ビットの長さであり、MFUのメディアデータが属するムービーフラグメントのシーケンス番号を含む。sample_numberフィールド504は、32ビットの長さであり、MFUのメディアデータについてのサンプルのサンプル番号を含む。offsetフィールド506は、16ビットの長さであり、基準サンプル(referenced sample)内に当該MFUのメディアデータのオフセット(offset)を含む。subsample_priorityフィールド508は、8ビットの長さであり、同一のMPUの他のメディアデータと比べて、当該MFUにより運搬されるメディアデータの優先順位を提供する。例えば、subsample_priorityの値は、0と455との間にあってもよく、より高い優先順位を示すより高い値を有してもよい。追加的に、dependency_counterフィールド510は、8ビットの長さであり、当該MFUに含まれているメディアデータで、そのメディア処理に依存するデータユニットの個数を示す。
【0046】
図6は、本開示の多様な実施形態による非同期型MFUヘッダ600についての例示的な構造を示している図面である。非同期型MFUヘッダ600は、非同期型メディアデータについての、
図4のDU_header414に含まれているような伝送データユニットヘッダの一例である。
【0047】
図6を参照すると、非同期型MFUヘッダ600の各フィールドの前記セマンティックス及び長さは、以下のように提供される。item_IDフィールド602は、32ビットの長さであり、当該MFUの一部として運搬されるアイテムの識別子を含む。ファイルタイプ(FT)0及び1について、追加的なDUヘッダが使われることができない。MMTPヘッダのオブジェクト識別子フィールドは、データユニットが抽出されるMPUのMPU_sequence_numberに設定されてもよい。ランダムアクセスポイント(random access point:RAP)フラグは、FT値0及び1のデータユニットをマークするために設定されてもよく、同期型メディアの場合において、同期サンプル又は当該フラグメントを含むMFU、及び非同期型MPUの基本アイテムについて設定されてもよい。
【0048】
図7は、本開示の多様な実施形態によるシグナリングメッセージヘッダ700についての例示的な構造を示している図面である。シグナリングメッセージヘッダ700は、シグナリングメッセージについての、
図4のDU_header414に含まれているような伝送データユニットヘッダの一例である。
【0049】
図7を参照すると、シグナリングメッセージヘッダ700の各フィールドのセマンティックス及び長さは、以下のように提供される。message_idフィールド702は、16ビットの長さであり、シグナリングメッセージのタイプを示す。バージョンフィールドは、8ビットの長さであり、シグナリングメッセージのバージョン番号を示す。予約(reserved:RES)フィールドは、8ビットの長さであり、将来の使用のために予約され、0と設定されてもよい。
【0050】
MMTPは、また一般ファイル及びアセットの伝送をサポートし、ペイロードタイプ1を用いる。一般アセットは、論理的にグルップ化し、アプリケーション、例えば、DASH(Segments of a Dynamic Adaptive Streaming over HTTP)リ提示、MPUのシーケンスなどについて一部共通性を共有する一つ以上のファイルから構成される。
【0051】
GFDペイロードタイプモードにおいて、一般アセットは、GFDペイロードタイプを用いてMMTPを通じて伝送される。GFDは、以下で一般アセットコンテンツ及び伝送特性を説明するために論議されるGFDセッション記述(session description)を要求する。本開示の実施形態は、MMTPプロトコルを通じてGFDセッションの成立を提供する。MMTP内で伝送される場合、GFDセッションは、正確に1個のpacket_idフロー(flow)上にマップされてもよい。
【0052】
GFDセッション内で伝送される各ファイルは、トランスポート伝送情報の関連を要求する。これは、転送長(transfer length)のような情報を含むが、これに限定されない。GFDセッション内で伝送される各ファイルは、また前記ファイルの名称、識別子及び/又は位置と、メディアタイプと、ファイルのサイズと、ファイルの符号化と、ファイルのメッセージダイジェストのような関連のコンテンツ特定のパラメータを有してもよい。ここで、参考までに含まれる、IETF RFC2616に規定されているようなHTTP/1.1プロトコルに合わせて、一つの一般アセット内の各ファイルは、エンティティ体(entity-body)、即ち、伝送されたファイルについてのメタ情報を割り当てられる。GFD動作の追加的な具体事項は、以下で説明する。GFDセッションに伝送されるファイルは、例えば、プロキシキャッシュ(proxy cache)を通じて、又は他の手段によりアプリケーションに有用するようにされるべきである。その後、各オブジェクトは、前記GFDセッションを通じて伝送される。
【0053】
受信器が、GFDセッションを成立できる前に、受信器は、例えば、セッションアクセス情報と、GFDセッション情報のような、十分な情報を獲得する必要があり得る。GFDセッションについてのセッションアクセス情報は、MMTで動作する場合、ここで参考までに含まれている23008−1に定められている。GFDセッション情報は、以下でより具体的に説明する。GFDセッション記述は、RFC4566に定義されているようなセッション記述プロトコル(Session Description Protocol:SDP)、RFC3023に定義されているようなXMLメタデータ、又はRFC2616に定義されているようなHTTP/MIMEヘッダなどのような形態で存在することができ、これらのRFC標準ドキュメントは、ここで参考として明確に援用する。
【0054】
GFDセッション情報:GFDプロトコルは、ファイルを伝送する。GFDモードにおいて、各ファイルには、送信オブジェクト識別子(Transmission Object Identifier:TOI)パラメータと、コードポイント(code point:CP)パラメータが割り当てられる。TOIパラメータは、オブジェクトがGFDセッションの範囲内で固有の識別子と関連付けられることを提供する。各オブジェクトは、コードポイントと関連付けられる。コードポイントは、特定のオブジェクト及びオブジェクト伝送特性を要約する。同一のTOIを有するパケットは、前記コードポイントで同一の値を有してもよい。
【0055】
GFDテーブルは、コードポイントのリストを提供する。各コードポイントには、コードポイント値が動的に割り当てられる。前記GFDテーブルのセマンティックスは、下記の表3に提供されている。
【0057】
コードポイントは、当該コードポイントシグナリングと共に伝送されるオブジェクトの最大の伝送長さを含んでもよい。また、コードポイントは、次のような情報、オブジェクトの実際の伝送長さと、ここで参考に含まれるRFC2616の7.1節に定義されているようなエンティティヘッダに存在してもよい情報と、存在する場合TOI及びpacket_idパラメータを用いて以下で説明するようなコンテンツ−位置−テンプレート(content-location-template)と、 例えばコンテンツがどのようにパッケージ化されるかといったコンテンツについての特定の情報などのうちのいずれかを含んでもよい。TOI及びpacket_idは、各TOI及びpacket_idについてのコンテンツ-位置を生成するために用いられてもよい。上記のようなテンプレートが存在する場合、コンテンツ‐位置テンプレートについて以下で説明するような処理を用いて、コンテンツ‐位置を生成してもよく、URIの値は、エンティティ-ヘッダに含まれているコンテンツ‐位置フィールドとして取扱ってもよい。一つのセッション内で、多くて256個のコードポイントが定められてもよい。コードポイントの定義は、GFDセッション記述において動的に設定されてもよい。コードポイントについてのセマンティックスの一例が、下記の表4に提供されている。
【0059】
コードポイントは、@contentLocationTemplate属性を含んでもよい。@contentLocationTemplate属性の値は、下記の表5にリストされているような識別子のうちの一つ以上を含んでもよい。各URLにおいて、表5からの識別子は、表5に定義されているような交替(substitution)パラメータに置換されてもよい。識別子マッチングは、大文字、小文字の区別をする(case-sensitive)。URLが、有効な識別子を含まないunescaped$シンボルを含む場合、URL形成の結果は、定義されない。識別子のフォーマットは、下記の表5に指定されている。
【0061】
各識別子は、プロトタイプ(prototype):「%0[width]d」の後に「$」文字内にサフィックスされ得る。「width」パラメータは、プリントされる文字の最小個数を提供する符合なし整数(unsigned integer)である。プリントされる値が、この数より小さい場合、前記結果は、0とパディング(padding)される。前記結果がより大きくても、当該値は、切捨て(truncate)できない。@contentLocationTemplateは、交替プロセスのアプリケーションが有効なURIを招くことができるように記述され得る。識別子の外部のストリング(string)は、ここで参考までに含まれる、RFC3986によるURL内で許容される文字のみを含むことができる。
【0062】
GFDオペレーション(GFD operation):MMTPのGFDモードは、レギュラーファイル(regular file)を伝送する。レギュラーファイルを伝送する場合、オブジェクトは、ファイルを示す。GFDセッション記述に定義されているコードポイントが、エンティティヘッダフィールドを、或いは生成できるエンティティヘッダフィールドを含む場合、このようなエンティティヘッダフィールドは全て、前記伝送されたファイルに適用され得る。
【0063】
図8は、本開示の多様な実施形態によるGFDモードパケット構造800についての例示的な構造を示している図面である。MMTPを用いて送信されたペイロードパケット800は、
図8に示しているように、GFDペイロードヘッダ802〜818と、GFDペイロード820とを含む。一部の特別な場合において、GFD送信器は、何のペイロードも含まないパケットを生成する必要があり得る。これは、例えば、セッションの終了(end)をシグナルするために要求され得る。GFDペイロードヘッダ802〜818は、可変的なサイズを有する。GFDペイロードヘッダ802〜818において、全ての整数フィールドは、「big-endian」或いは「network order」フォーマット、即ち、最上位バイト(most significant byte)(オクテット)先の「big-endian」或いは「network order」フォーマットで運搬する。「padding」或いは「reserved」(r)と指定されたビットは、送信器により0と設定され、受信器により無視される。別途に説明しない限り、このような例における数値常数は、十進法の形態である(ベース10)。
【0064】
図8を参照すると、GFDモードパケット構造800の各フィールドのセマンティックス及び長さは、以下のように提供される。長さフィールド802は、16ビットを含み、このフィールドを含む全体ペイロードのサイズを示す。Sフィールド804は、1ビットの長さであり、TOIフィールドに含まれている全体32ビットワード(word)の個数を示す(TOIフィールドは、長さフィールド802において、32*S+16*Hビットであり、例えば、その長さは、0ビットであるか、16ビットであるか、32ビットであるか、又は48ビットである)。Hフィールド806は、1ビットの長さであり、start_offsetとTOIフィールドとの集合の長さが、32ビットの倍数であることを保証する間、TOIフィールドの長さが、ハーフワード(16ビット)の倍数となるように許容する。Lフィールド808は、1ビットの長さであり、これが、このオブジェクトについて最後の伝送パケットであるか否かの可否を示す。Bフィールド810は、1ビットの長さであり、このパケットが前記オブジェクトの最終バイトを含んでいるか否かの可否を示す。コードポイント(CP)フィールド812は、8ビットの長さであり、パケットペイロードに関する情報を伝送する前記パケットペイロードデコーダに伝送される不透明の識別子(opaque identifier)を含む。コードポイントと、前記実際のコーデックとの間のマッピングは、セッションベース別に定められ、前記セッション記述情報の一部として帯域外(out-of-band)通信が行われる。オブジェクトメタデータ(M)フィールド814は、1ビットの長さであり、このフラグは、前記オブジェクトメタデータが、ペイロードの一部を提供したか否かを示す。1と設定される場合、ペイロードは、MIMEエンティティであり、ここで、ヘッダは、少なくとも前記コンテンツタイプ及び前記コンテンツ位置ヘッダを含んでもよい。予約されたフィールド(RES)は、3ビットの長さであり、0に設定される。start_offsetフィールド818(16+32*O+16*H)は、オブジェクトに含まれている現在のペイロードデータの位置を示す。GFDペイロードフィールド820は、GFDペイロードを含む。
【0065】
オブジェクト識別子は、伝送中の一般オブジェクトの固有の識別子と設定され得る。オブジェクト識別子と、オブジェクト情報(URL及びMIMEタイプのような)との間のマッピングは、明示的に(explicitly)又は黙示的に(implicitly)行われてもよい。例えば、DASHセグメントのシーケンスは、オブジェクト識別子として前記セグメントインデックスを使ってもよく、packet_idとして数表現識別子(numerical representation identifier)を使ってもよい。また、このようなマッピングは、シグナリングメッセージを用いて行われてもよい。
【0066】
GFDペイロード820につき、オブジェクトのバイトは、オブジェクトの伝送長さであるTを用いて、バイト0が前記オブジェクトの開始であり、バイトT−1が、オブジェクトの最終バイトとなるように参照される。MMTPパケットのペイロードにおいて運搬されるデータは、バイトXの開始から始まり、バイトX+Yの開始で終了される前記オブジェクトの連続的な部分から構成され、ここで、Xは、GFDパケットヘッダに含まれているstart_offsetフィールドの値であり、Yはバイトで表現されるペイロードの長さである。Yはパケットで運搬できないが、フレーミング(framing)は、下位トランスポートプロトコルにより提供され得る。
【0067】
MMTプロトコル(MMTP)は、MMTパッケージを効率よく、かつ信頼性よく伝送するために設計されるアプリケーション階層トランスポートプロトコルである。MMTPは、同期型及び非同期型メディアデータの両方の伝送のために用いることができる。MMTPは、多様なタイプのコード化されたメディアデータから構成されるコンテンツを伝送するために必須的な、メディア多重化と、ネットワークジッター(network jitter)計算のようないくつかの特徴をサポートする。MMTPは、既存のプロトコル、例えば、UDP(User Datagram Protocol)及びIPの上位(top)で実行されてもよい。本開示において、MMTペイロードフォーマット以外に、フォーマット化されたデータの特定の運搬が要求される。単一MMTPパケットは、正確に一つのMMTペイロードを運搬し得る。MMTPは、送信エンティティが、輻輳制御(congestion control)を行うことを仮定し、従って輻輳制御機能は、この詳細な説明に指定されない。これは、MMTPがUDP/IPの上位で実行され、多様なアプリケーションにより用いられるために、この機能は、送信エンティティの実現に負かされる。
【0068】
MMTPは、単一MMTパケットフローを通じて、異なるアセットの多重化をサポートする。MMTPは、大きな遅延を招くか、又は大きなバッファを必要とせず、異なるタイプのメディアデータ間の同期化を助けるように受信エンティティでの消費順序通り、多数のタイプのデータを伝送する。また、MMTPは、単一パケットフロー内のメディアデータと、シグナリングメッセージとの多重化をサポートする。単一MMTペイロードは、専ら1個のMMTパケットのみで運搬されてもよい。
【0069】
MMTプロトコルは、2個のパケット化モード、GFDモード及びMPUモードを定める。GFDモード(例えば、ダウンロードモード)は、伝送されるペイロードのサイズに基づいて、メディアデータをパケット化するモードを定め、MPUモード(例えば、ストリーミングモード)は、ペイロードで運搬されるデータのタイプに基づいてメディアデータをパケット化するモードを定める。MMTプロトコルは、単一伝送セッションにおいて、2個の異なるモードを有するパケットの混合された使用をサポートする。MMTパケットの単一パケットフローは、2個のタイプを有するペイロードから任意に構成されることができる。MMTPは、データストリームについての常数遅延が成就できるように、下位伝送ネットワークにより挿入されるジッターを、計算及び除去する構造及び定義を提供する。パケットヘッダに含まれているタイムスタンプフィールドを用いることにより、ジッターは、何の追加的なシグナリング情報及びプロトコルを要求せず、正確に計算することができる。
【0070】
図9は、本開示の多様な実施形態によるMMTPパケット900についての例示的な構造を示している図面である。
図9を参照すると、MMTPパケット900の各フィールドのセマンティックス及び長さは、以下のように提供される。バージョン(V)フィールド902は、2ビットの長さであり、前記プロトコルのバージョン番号を示す。このフィールド902は、この明細書に応じて「00」と設定されてもよい。タイプフィールド(オブジェクトタイプ)904は、6ビットである。このフィールド904は、ペイロードタイプ、即ち、モードを示す。一例において、ペイロードタイプ値の少なくとも一つは、下記の表6に提供される。各ペイロードタイプの分割及び集合指示データユニットは、下記の表6に提供されている。
【0072】
MMTPパケット900の各フィールドのセマンティックス及び長さと連続して、FEC_type(FEC)フィールド906は、2ビットの長さであり、MMTパケットを保護するために用いられるFEC方式のタイプを示す。このフィールド906についての値及び関連の記述の一例は、下記の表7にリストされている。
【0074】
MMTPパケット900の各フィールドのセマンティックス及び長さと連続して、予約(RES)フィールド908は、3ビットの長さであり、将来の使用のために予約されている。packet_counter_flag(C)フィールド910は、1ビットの長さであり、「1」は、packet_counterフィールドが存在することを示す。RAP_flag(R)フィールド912は、1ビットの長さであり、「1」と設定される場合、ペイロードは、当該データタイプのデータストリームに対するランダムアクセスポイントを含むことを示す。extension_flag(X)フィールド914は、1ビットの長さであり、「1」は、header_extensionフィールドが存在することを示す。最終の(L)フィールド916は、1ビットの長さであり、「1」は、object_identifierフィールドの値と同一の値を有するパケットの最終のパケットを示す。packet_idフィールド918は、16ビットの長さであり、他のアセットから一つのアセットのパケットを区分するために、各アセットに割り当てられる整数値を含む。別途の値が、シグナリングメッセージ及びFECリペアフローに割り当てられる。packet_idは、伝送セッションの有効時間の間、同一のMMT送信エンティティにより伝送される全てのMMTフローについて固有である。packet_idとasset_idとの間のマッピングは、シグナリングメッセージの一部として、MMTパッケージ表によりシグナルされる。AL−FEC(Application Layer - Forward Error Correction)につき、packet_idとFECリペアフローとの間のマッピングが、AL−FECメッセージに提供される。packet_idは、同一のMMT送信エンティティにより伝送される全てのMMTパケットフローについて固有である。
【0075】
MMTPパケット900の各フィールドのセマンティックス及び長さと連続して、object_identifierフィールド920は、32ビットの長さであり、現在のペイロードから抽出されるアプリケーション階層オブジェクトの識別子を含む。このフィールド920の正確なセマンティックス及び使用は、ペイロードのタイプに依存し得る。packet_sequence_numberフィールド922は、32ビットの長さであり、packet_idによる範囲を有し、各MMTパケットについて1ずつ増える任意の値から始る整数値を含む。この値は、最大値に達した後、「0」に戻る。タイムスタンプフィールド924は、32ビットの長さであり、MMTパケット伝送のタイムインスタンス(time instance)を指定する。NTP時間は、ここで参考までに含まれるIETF RFC5905 NTPバージョン4の6節の「short-format」のように指定されたタイムスタンプにおいて用いられる。このタイムスタンプは、MMTパケットの第1ビットで前記時間を指定する。packet_counterフィールド926は、32ビットの長さであり、MMTパケットをカウントする整数値を含む。この値は、MMTパケットの送信により増加され、packet_idと異なる。packet_counterフィールド926は、送信される各MMTパケットについて1ずつ増える任意の値から開始される。packet_counterフィールド926の値は、最大値の後、「0」に戻る。
【0076】
extension_headerフィールド928は、ユーザ定義情報(user-defined information)を含む。ヘッダ拡張メカニズム(header extension mechanism)は、ペイロードフォーマットについての独自の拡張のために、ペイロードフォーマットヘッダで運搬される追加情報を要求するアプリケーション及びメディアタイプを可能とする。ヘッダ拡張メカニズムは、MMTペイロードの正確な処理に影響を及ぼさず、廃棄してもよい方式で設計される。extension_headerフィールド928に含まれている拡張ヘッダは、
図10に示しているようなフォーマットを含んでもよく、
図10は、本開示の多様な実施形態によるヘッダ拡張1000についての例示的な構造を示す。
【0077】
MMTPパケット900の各フィールドのセマンティックス及び長さと連続して、ペイロードデータフィールド930は、ペイロードデータを含み、ソースFECペイロードIDフィールド932は、2ビットの長さであり、FECタイプの値が「1」と設定される場合にのみ用いられてもよい。FECtype=1を有するMMTパケットは、AL−FEC保護のために用いられてもよく、AL−FEC保護の後に、このフィールドは、前記MMTパケットに追加されてもよい。
【0078】
かかる実施形態において、本開示は、分割された伝送についてのMPUの特定の部分の指示を可能とする2個の階層と、MMTPについて統一された構造を提供する。第1階層において、ペイロードタイプ(例えば、ダウンロードモード、ストリーミングモード、GPUモード、MPUモード)は、前記MMTPヘッダに含まれているタイプ(又はオブジェクトタイプ)フィールドによりシグナルされる。第2階層において、伝送データユニットタイプは、前記MPUモードペイロードヘッダに含まれているDU_typeフィールドによりシグナルされる。従って、本開示の実施形態は、MMTP内で前記GPUモードとMPUモードとを統合することにより、同一のプロトコルにおいて、ダウンローディングとストリーミングとの両方をサポートする送信プロトコルを提供する。
【0079】
図11は、本開示の多様な実施形態による同期型メディアデータのパケット化の例示的なダイアグラム1100を示している図面である。同期型メディアを含むMPUのパケット化は、MPUフォーマット認識及び/又はMPUフォーマット不可知論(agnostic)モードで行われてもよい。MPUフォーマット不可知論モードにおいて、MPUは、GFDを用いて前記下位伝送ネットワークのMTUのサイズによって、同一のサイズ(サイズが異なる最終のデータユニットは除く)又は予め定められたサイズのデータユニットにパケット化される。即ち、MPUフォーマット不可知論モードのパケット化は、当該パケットにおいて運搬されるデータのサイズを考慮するのみである。MMTPパケットヘッダについてのタイプフィールドは、パケット化が、フォーマット不可知論モードであることを示すために0x00と設定される。
【0080】
MPUフォーマット認識モードにおいて、パケット化手続きは、MPUにおける異なるタイプのデータの境界を考慮して、MPUモードを用いてパケットを生成する。生成されたパケットは、MPUメタデータ、ムービーフラグメントメタデータ、又はMFUの伝送データユニットを運搬する。前記結果、生成されたパケットは、2個以上の異なるタイプの伝送データユニットを運搬できない。MPUメタデータの伝送データユニットには、DU_type0x01が割り当てられる。MPUメタデータは、「ftyp」ボックスと、「mmpu」ボックスと、「moov」ボックス及び全体MPUに適用される他のボックスを含む。「ftyp」ボックスは、ファイルのタイプを含み、「mmpu」ボックスは、MPUの構成を含み、「moov」ボックスは、コーデック構成情報を含む。ムービーフラグメントメタデータの伝送データユニットは、「moof」ボックス及び「mdat」ボックスヘッダ(どのようなメディアデータも排除される)から構成され、ムービーフラグメントメタデータの伝送データユニットには、DU_type0x02が割り当てられる。「mdat」ボックスは、メディアデータを含み、メディアデータの情報を制御し、「moof」ボックスは、当該メディアデータのヘッダ情報を含む。メディアデータ、MPUのmdatボックスのMFUは、その後、フォーマット認識方式で、MFUの多数の伝送データユニットに分割される。例えば、これは、MMTヒントトラック(hint track)の援助により行われ得る。MFUは、1)メディアデータのみ、2)シーケンス番号を有するメディアデータと、3)一部制御情報を有するメディアデータとを含む。各MFUは、MFUヘッダの先に追加され、MFUヘッダは、前記シンタックス及びセマンティックスを有する。MFUヘッダの次に、前記MFUのメディアデータが位置する。
【0081】
図12は、本開示の多様な実施形態による非同期型メディアデータのパケット化の例示的なダイアグラム1200を示している図面である。非同期型メディアデータのパケット化は、また2個の異なるモードで行われてもよい。MPUフォーマット不可知論モードにおいて、MPUは、GFDモードを用いて前記下位伝送ネットワークのMTUのサイズによって、同一のサイズ(そのサイズが異なってもよい最終のデータユニットを除く)又は予め定められたサイズの伝送データユニットにパケット化される。MMTPパケットのタイプフィールドは、0x00と設定されて、前記パケット化が、一般的であることを示す。フォーマット不可知論モードにおいて、MPUは、MPUモードを用いてMPUメタデータ又はMFUの伝送データユニットを含むパケットにパケット化される。MPUメタデータは、前記「ftyp」ボックスと、前記「moov」ボックスと、前記「meta」ボックスと、全体MPUに適用される他のボックスを含む。MFUの各伝送データユニットは、非同期型メディアの単一アイテムを含む。そしてから、非同期型メディアの各アイテムは、MFUを生成するために用いられる。MFUは、MFUヘッダ及び非同期型MFUデータから構成される。
【0082】
逆パケット化手続きは、MMT受信器で行われて、前記送信されたMPUを獲得する。逆パケット化手続きは、必要とされるアプリケーションに基づいて、次のようなモード、MPUモードと、フラグメントモードと、メディアユニットモードとのうちの一つにおいて動作することができる。MPUモードにおいて、逆ペイロード化器(depayloadizer)は、MPUをアプリケーションにフォーワーディングする前に全体MPUを再生成する。このモードは、時間が重要でない伝送(non-time critical delivery)について適切であり、即ち、CIにより指示されるようなMPUの提示時間は、MPUの伝送時間より十分に後である。フラグメントモードにおいて、逆ペイロード化器は、フラグメントメタデータ及びメディアサンプルを有する「mdat」ボックスを含む完全なフラグメントを、アプリケーションにフォーワーディングする前に再生成する。このモードは、非同期型メディアに適用されない。このモードは、遅延時間費用(delivery time budget)が制限されているが、完全なフラグメントを復元するには十分な遅延に敏感なアプリケーション(delay-sensitive application)に適切である。メディアユニットモードにおいて、逆ペイロード化器は、可能な限り速やかにメディアユニットを抽出して、前記アプリケーションにフォーワーディングする。このモードは、非常に低い遅延メディアアプリケーションに適切である。このモードにおいて、前記MPUの復元は、要求されない。フラグメントメディアデータの処理は、要求されないが、再同期化のために行われてもよい。このモードは、メディアユニットが生成された後、生成してもよい前記フラグメントメタデータの順序から外れた伝送を容認する。このモードは、同期型及び非同期型メディアの両方に対して適用される。
【0083】
MFUシーケンス番号を使って、受信器は、欠けているパケット(missing packet)を検出し、FEC又はARQのようなエラー訂正手続きを適用して、欠けているパケットを復元することができる。ペイロードタイプは、送信器がアプリケーションについてのペイロードの重要性を決定し、適切なエラー耐性測定値(error resilience measure)を適用するために用いられてもよい。
【0084】
各GFD伝送セッションは、与えられたセッションについて局部的な(local)GFDTを有してもよい。GFDセッション内において伝送されるが、GFDTで説明されないファイルは、GFD伝送セッションに属する「ファイル」と考慮されない。マッピングされていないコードポイントと共に受信されるオブジェクトは、GFD受信器により無視されるべきである。
【0085】
GFDセッションにおけるファイルは、例えば、ここで参考までに含まれる、ISO/IEC23009−1に定義されているように、構成情報ドキュメント又はメディア提示記述において、アプリケーションに提供されなければならず、GFDオブジェクトとして、MMTPを用いて伝送されるファイルを示してもよい。前記ファイルは、コンテンツ位置から提供されるか、又は導き出される、GFDセッション記述のインバンド(in-band)で又は一部として提供されるURIを通じて参照となり得る。特定の場合、前記ファイルは、前記アプリケーションで有用性開始時間(availability start time)を有する。この場合、GFDセッションは、前記ファイルを伝送して、オブジェクトの最終のパケットが伝送されて、アプリケーションに知られているような有用性開始時間で、受信器において最も最近に有用であることができようにする。GFDモードを通じて伝送されるアプリケーションは、GFDセッション内でファイルを送信する時、追加的であり、より厳格な要求事項を導入することができる。
【0086】
セッション内で、送信器(例えば、送信エンティティ101)は、セッション内で一連のパケットを送信する。いくつかのオブジェクトは、同一のGFDセッション内で伝送してもよい。一つ以上のオブジェクトが、セッション内で伝送される場合、送信器は、TOIフィールドを用いてもよい。このようなシナリオにおいて、各オブジェクトは、セッション内の固有のTOIを用いて識別してもよく、送信器は、同一のオブジェクトに対して存在する全てのパケットについて当該TOIを用いてもよい。セッションに運搬されるTOIとファイルとの間のマッピングは、エンティティモード伝送が適用される場合、エンティティヘッダフィールドにおいてのみならず、GFDセッション記述において説明される。
【0087】
以上で説明したようなGFDヘッダが用いられることができる。GFDパケットヘッダは、前記セッションについて成立される情報についての設定を、受信器に通信するために用いられてもよく、セッションの間、変わってもよいコードポイントフィールドを含む。設定とコードポイント値との間のマッピングは、GFDセッション記述において通信される。
【0088】
例えば、T>0が、バイト単位のオブジェクトの伝送長さの場合、パケットのペイロードに運搬されるデータは、前記オブジェクトの連続した部分から構成される。その後、X+Yが最大Tである限り、任意のX及び任意のY>0につき、パケットが生成されてもよい。このような条件下で、次のことが保持され得る。(A)パケットのペイロードに運搬されるデータは、バイトX+Yの開始を通じて、バイトXから始まる前記オブジェクトの連続的な部分から構成される。(B)GFDパケットヘッダに含まれているstart_offsetフィールドは、Xと設定されても良く、ペイロードデータは、送信するパケットに追加されてもよい。(C)X+YがTと同一である場合、パケットヘッダフラグBは、1と設定してもよく、X+YがTと同一でない場合、パケットヘッダフラグBは、0と設定してもよい。
【0089】
次のような例示的な手続きは、送信器が、オブジェクトを伝送して、start_offset及び該当するペイロードデータを含むパケットを生成するように用いられてもよい。まず、送信器は、バイトオフセットカウンタXを0と設定する。その後、伝送される次のパケットは、ペイロードのバイト長さを固定値Yと設定する。ここで、Yは、a)パケットペイロードに対して適切であり(例えば、全体パケットサイズが、前記MTUを超過しないことを保証し、b)XとYの合計が最大Tであり、c)前記パケットに含まれているペイロードデータに対して適切である。次に、送信器は、以上で説明したような規則a−cによってパケットを生成する。その後、X+YがTと同一である場合、送信器は、パケットヘッダフラグBを1と設定し、X+YがTと同一でない場合、送信器は、パケットヘッダフラグBを0と設定し、X=X+Yに増やし、規則a−cによってパケットを生成するよう戻る。
【0090】
パケット伝送の順序は、任意的であってもよいが、送信器は、増加するstart_offset番号を有する他の制約伝送(constraints delivery)が存在していない場合、伝送を行ってもよい。伝送長さは、データの以前のピース(piece)を送信する前に知られることはできない。この状況で、Tは、以後に決定されてもよい。しかし、以上で説明したような送信プロセスに影響を及ぼさない。追加的なパケットが、以上で説明したような(A)−(C)形態の規則に従い送信できる。この場合、前記Bフラグは、オブジェクトの最終の部分を含むパケットについてのみ設定してもよい。
【0091】
GFDセッション記述は、異なるコードポイント値により識別される一つ以上の多数のコードポイントを含む。各パケットを受信する場合、受信器(例えば、一つ以上の受信エンティティ110〜116)は、次のようなステップを進行してもよい。第1に、受信器は、パケットヘッダを分析し、パケットヘッダが有効なヘッダであるかを確認する。パケットヘッダが、有効でない場合、パケットは、さらに処理せず、廃棄してもよい。第2に、受信器は、コードポイント値を分析し、GFDセッション記述がマッチングコードポイントを含んでいるかを確認する。それが有効でない場合、パケットは、さらに処理せず、廃棄してもよい。第3に、受信器は、パケットの残りの部分を処理し、パケットの残りの部分の処理は、他のヘッダフィールドを適切に解釈し、source_offset及びペイロードデータを用いて、次のように、当該オブジェクトを再構成することを含む。a)受信器は、セッション情報と、存在する場合、ペイロードヘッダに運搬されるTOIにより、受信されたパケットが、どのようなオブジェクトから生成されたかを決定することができる。b)オブジェクトについての第1パケットが受信される場合、受信器は、オブジェクト送信情報の一部として受信される最大伝送長さを用いて、オブジェクトの最大長さT´を決定する。c)受信器は、オブジェクトが要求できるT´バイトについての空間を割当る。d)受信器は、受信されたパケットの全体長さから、パケットヘッダの長さを減算してペイロードの長さYを演算する。e)受信器は、受信されたオブジェクトシンボルを追跡(track)ために、偽(false)と初期化される全てのTエントリー(entry)を有するBoolean array RECEIVED[0..T'-1]を割り当てる。受信器は、いまだに偽(false)と設定されている RECEIVEDに少なくとも一つのエントリーが存在する限り、又は前記アプリケーションが、このオブジェクトを放棄することと決定するまで、前記オブジェクトブロック(object block)についてパケットを持続的に受信する。f)オブジェクト(前記第1パケットを含む)に対して受信された各パケットについて、オブジェクトを復元することを助けるために取られるステップは、以下の通りである。i)XがパケットのGFDパケットヘッダに含まれているsource_offsetフィールドの値であり、受信されたパケットの全体長さから、パケットヘッダ長さを減算することにより、計算された、Yがペイロードの長さであるとする。ii)受信器は、オブジェクトについて予約された空間内で適切な場所にデータを複写し、RECEIVED[X …X+Y-1] = trueと設定する。iii)全てのTentries of RECEIVEDが、真(true)である場合、受信器は、全体オブジェクトを復元する。g)受信器が、1と設定された前記Bフラグを受信すると、受信器は、オブジェクトの伝送長さTを該当するパケットのX+Yであると決定し、Boolean array RECEIVED[0..T'-1]を、RECEIVED[0..T-1]と調整することができる。
【0092】
GFDコードポイント:GFDモードを用いて伝送されるファイルについての情報は、asset_scheme_codeが、「GeneralFile」と設定される場合、MPテーブルに指示される。GFDモードを用いて伝送される一般オブジェクトは、packet_idにより識別されるMMTPフローと共にグループ化されてもよい。GFDモードを用いて一般オブジェクトを運搬するパケットは、MMTPパケットヘッダタイプフィールドでタイプ1とマークされ得る。GFD表は、一つ又は多数のコードポイントを定める。コードポイント表は、下記の表8に提供されている。
【0094】
ここで説明する多様な実施形態は、MMTデータ通信について論議するが、本開示の多様な実施形態は、MMT通信のみに制限されることではないことに留意すべきである。例えば、固定された遅延決定及びバッファサイズ決定は、本開示の原則に従い、適切なタイプのデータ、又はメディアコンテンツ伝送及び/又は適切なタイプの送信システムに適用することができる。
【0095】
図13は、本開示の一実施形態による受信エンティティでトランスポートパケットを処理するプロセスを示している図面である。例えば、
図13に示しているようなプロセスは、
図1の前記受信エンティティ110〜116の一部又は全てにより行われてもよい。また、前記プロセスは、
図15の電子デバイス1500により実現できる。
【0096】
図13を参照すると、前記プロセスは、受信エンティティが、トランスポートパケットを受信することから始まる(ステップ1305)。そして、受信エンティティは、パケットヘッダに含まれているペイロードタイプを示すフィールドからペイロードタイプを識別する(ステップ1310)。例えば、ステップ1310において、受信エンティティは、パケットヘッダを分析して、
図9のフィールド904のような、オブジェクトタイプフィールドに含まれている値を識別して、表6により該当するペイロードタイプを識別することができる。ペイロードタイプが一般モードの場合、受信エンティティは、一般モードペイロードデータを処理する(ステップ1315)。
【0097】
ペイロードタイプが、ストリーミングモードの場合、受信エンティティは、ストリーミングモードペイロードヘッダに含まれている伝送データユニットタイプを示すフィールドから伝送データユニットタイプを識別する(ステップ1320)。例えば、ステップ1320において、受信エンティティは、MMTペイロードに含まれているデータのタイプのようなトランスポートパケットに含まれているDUデータの伝送データユニットタイプを識別することができる。
【0098】
例えば、受信エンティティは、
図4に示しているような、ストリーミングモードペイロードヘッダを分析して、DU_typeフィールド404に含まれている値を識別して、表1によって前記伝送データユニットタイプを識別することができる。例えば、DUデータは、DUタイプフィールドに含まれている値に基づいて、完全なMPU、MPUメタデータ、ムービーフラグメントメタデータ、同期型MFU、非同期型MFU、シグナリングメッセージ、又は復元シンボルのうちの一つを含んでもよい。
【0099】
従って、受信エンティティは、ストリーミングモードペイロードヘッダに含まれている分割指示子フィールドからトランスポートパケットに(複数の)MFUが存在するか否かの可否についての情報を識別する(ステップ1325)。例えば、ステップ1325において、トランスポートパケットは、MFUとして配列されたMPUの一つ以上のフラグメントを含む。トランスポートパケットは、多数の伝送データユニットを含んでもよく、各伝送データユニットは、DUヘッダと、DUデータとを含む。受信エンティティは、表2による分割指示子フィールドに含まれている値に基づいて、DUデータが、一つ以上の伝送データユニットヘッダ及び完全の伝送データユニットと、伝送データユニットヘッダ及び伝送データユニットの第1フラグメントと、第1部分でもなく、最終の部分でもない前記伝送データユニットのフラグメント、又は前記伝送データユニットの最終のフラグメントを含むか否かの可否を決定することができる。
【0100】
その後、受信エンティティは、DUデータを処理する(ステップ1330)。例えば、ステップ1330において、受信エンティティは、前記識別された伝送データユニットタイプによって、DUデータを処理することができる。受信エンティティは、DUデータを処理及び復号化して、受信エンティティと関連付けられるユーザについてのユーザインターフェース(user interface)を通じて、メディアをディスプレイする。
【0101】
図14は、本開示の一実施形態による送信エンティティにおいて、トランスポートパケットを生成するプロセスを示している図面である。例えば、
図14に示しているようなプロセスは、
図1の送信エンティティ101により行われてもよい。また、前記プロセスは、
図15の電子デバイス1500により実現できる。
【0102】
図14を参照すると、前記プロセスは、送信エンティティが、トランスポートパケットを生成することから始まる(ステップ1405)。例えば、ステップ1405において、送信エンティティは、ダウンローディング又はストリーミングデータを含むパケットを生成することができる。送信エンティティは、多数の伝送データユニットを含んでもよく、各伝送データユニットは、DUヘッダと、DUデータとを含む。
【0103】
次に、送信エンティティは、トランスポートパケットについてのパケットヘッダに含まれているペイロードタイプを示すフィールドに、ペイロードタイプの識別子を含ませる(ステップ1410)。例えば、ステップ1410において、送信エンティティは、表6でのように、オブジェクトタイプに該当する値を、
図9のフィールド904でのように、パケットヘッダのタイプフィールドに含ませてもよい。
【0104】
その後、送信エンティティは、ペイロードタイプが、ストリーミングモードペイロードタイプであるか否かの可否を決定する(ステップ1415)。ペイロードタイプが、ストリーミングモード以外のタイプである場合、例えば、一般(GFD)モードの場合、送信エンティティは、ペイロード時間によってトランスポートパケットを生成し、ステップ1430へ進んで、前記生成されたトランスポートパケットを送信する。
【0105】
しかし、ペイロードタイプが、ストリーミングモードペイロードタイプである場合、送信エンティティは、ストリーミングモードペイロードヘッダに含まれている伝送データユニットタイプを示すフィールドに、伝送データユニットタイプの識別子を含ませる(ステップ1420)。例えば、ステップ1420において、送信エンティティは、パケットについての伝送データユニットタイプによる値を、表1の伝送データユニットタイプによる
図4のストリーミングモードペイロードヘッダのDU_typeフィールド404により示されているような、ストリーミングモードペイロードヘッダに含まれているフィールドに含ませることができる。例えば、DUタイプフィールドは、前記含まれている値に基づいて、完全のMPU、MPUメタデータ、ムービーフラグメントメタデータ、同期型MFU、非同期型MFU、シグナリングメッセージ又は復元シンボルのうちの一つを含むことを示すことができる。
【0106】
従って、送信エンティティは、(複数の)MFUが、パケットに存在するか否かの可否についての情報の識別子を、前記ストリーミングモードペイロードヘッダに含まれている分割指示子フィールドに含ませる(ステップ1425)。例えば、ステップ1425において、トランスポートパケットは、MFUとして配列されたMPUの一つ以上のフラグメントを含む。送信エンティティは、表2による分割指示子フィールドに含まれている値に基づいて、DUデータが、一つ以上の伝送データユニットヘッダ及び完全の伝送データユニットと、伝送データユニットヘッダ及び伝送データユニットの第1フラグメントと、第1部分でもなく、最終の部分でもない伝送データユニットのフラグメント、又は伝送データユニットの最終のフラグメントを含むことを示すことができる。
【0107】
その後、送信エンティティは、前記生成されたトランスポートパケットを送信する(ステップ1430)。例えば、ステップ1430において、送信エンティティは、例えば、
図13に示されているようなプロセスに応じて、トランスポートパケットを、受信及び処理する受信エンティティに、前記トランスポートパケットを送信することができる。
【0108】
図13及び
図14が各々、送信エンティティ及び受信エンティティによるトランスポートパケットの処理及び生成についてのプロセスの一例を示していたとしても、多様な変形が、
図13及び
図14についてなされることができることは、当然である。例えば、連続的なステップが示されているが、各図面の多様なステップは、オーバーラップ(overlap)されてもよく、並列に生じてもよく、異なる順序で生じてもよく、又は数回生じてもよいことは、当然である。
【0109】
図15は、本開示の多様な実施形態が実現することができる例の電子デバイス1500を示している図面である。
図15を参照すると、電子デバイス1500は、制御部1504と、メモリ1506と、永久格納部1508と、通信部1510と、入力/出力部(I/O)1512と、ディスプレイ1514とを含む。この実施例において、電子デバイス1500は、また
図1の送信エンティティ101及び/又は受信エンティティ110との一例である。
【0110】
制御部1504は、少なくとも一つの動作を制御するデバイス、システム、又はその一部であり、前記デバイスは、ハードウェア、ファームウェア(firmware)又はソフトウェア、又は前記ハードウェア、ファームウェア又はソフトウェアのうちの少なくとも二つの組み合わせで実現することができる。例えば、制御部1504は、電子デバイス1500の動作を制御する、ハードウェアプロセッシングユニットと、プロセッシング回路と、メディアコーディング及び/或いはデコーディングハードウェア及び/又はソフトウェア、及/又はソフトウェアプログラムを含んでもよい。例えば、制御部1504は、メモリ1506にローディングすることができるソフトウェアに対する命令語(instruction)を処理する。制御部1504は、特定の実現に基づいて、多数のプロセッサーと、マルチプロセッサーコア、又は一部他のタイプのプロセッサーを含んでもよい。また、制御部1504は、メインプロセッサーが、単一チップにおいて、補助プロセッサーと共に存在する、多数の異種プロセッサーシステムを用いて実現することができる。他の実施例において、制御部1504は、同一のタイプの多数のプロセッサーを含む対称型多重プロセッサー(symmetric multi-processor)システムを含んでもよい。
【0111】
メモリ1506及び永久格納部1508は、格納デバイス1516の例である。格納デバイスは、臨時基盤及び/又は永久基盤で、情報、例えば、データと、機能的形態のプログラムコード、及び/又は他の適切な情報のような、これに限定されない情報を格納することができるハードウェアの一部である。このような例において、メモリ1506は、例えば、ランダムアクセスメモリ又は他の適切な揮発性又は非揮発性格納デバイスとなり得る。例えば、永久格納部1508は、一つ以上のコンポナント又はデバイスを含んでもよい。永久格納部1508は、ハードドライブ、フラッシュメモリ(flash memory)、光ディスク、又は前記ハードドライブ、フラッシュメモリ、光ディスクの一部の組合せとなってもよい。永久格納部1508により用いられるメディアは、除去可能である。例えば、除去可能なハードドライブは、永久格納部1508のために用いられてもよい。
【0112】
通信部1510は、他のデータ処理システム又はデバイスとの通信に提供する。このような例において、通信部1510は、無線(cellular、WiFiなど)送信器、受信器、及び/又は送受信器、ネットワークインターフェースカード(network interface card)、及び/又は物理又は無線通信媒体を通じて、通信を送信及び/又は受信する他の適切なハードウェアを含んでもよい。通信ユニット1510は、物理通信リンク及び無線通信リンクのうちの一つ又は全ての使用を通じて通信を提供することができる。
【0113】
入力/出力部1512は、前記電子デバイス1500又は前記電子デバイス1500の一部に連結できる他のデバイスとのデータ入力及び出力を許容する。例えば、入力/出力部1512は、タッチユーザ入力を受信するタッチパネル、オーディオ入力を受信するマイクロフォン、オーディオ出力を提供するスピカ、及び/又は触覚出力(haptic output)を提供するモータを含んでもよい。入力/出力部1512は、前記電子デバイス1500のユーザに、メディアデータ(例えば、オーディオデータ)を提供及び伝送するユーザインターフェースの一例である。他の例において、入力/出力部1512は、キーボード、マウス、外部スピカ、外部マイクロフォーン、及び/又は他の適切な入力/出力デバイスを通じて、ユーザ入力についての連結を提供することができる。また、入力/出力部1512は、プリンターに出力を送信することができる。ディスプレイ1514は、ユーザに情報をディスプレイするメカニズムを提供し、電子デバイス1500のユーザに、メディアデータ(例えば、イメージ及び/又はビデオデータ)を提供及び伝送するユーザインターフェースの一例である。
【0114】
動作システム、アプリケーション、又は他のプログラムについてのプログラムコードは、格納デバイス1516に位置することができ、格納デバイス1516は、バスシステム1502を通じて、制御部1504と通信している。一部の実施形態において、プログラムコードは、永久格納部1508において機能的形態で存在する。このような命令語は、制御部1504による処理のために、メモリ1506にローディングすることができる。異なる実施形態のプロセスは、コンピュータ実施命令語(computer-implemented instruction)を用いて、制御部1504により行われてもよく、前記コンピュータ‐実現命令語は、メモリ1506に位置してもよい。例えば、制御部1504は、以上で説明したようなモジュール及び/又はデバイスのうちの一つについてのプロセスを行ってもよい。
【0115】
一部の実施形態において、以上で説明したような多様な機能は、コンピュータ読取り可能なプログラムコードから形成され、コンピュータ読取り可能な媒体で実施されるコンピュータプログラム製品により実現又は支援される。前記コンピュータプログラム製品についてのプログラムコードは、選択的に削除可能なコンピュータ読取り可能な格納デバイスにおいて機能的形態で位置することができ、制御部1504による処理のために、電子デバイス1500にローディング又は伝送することができる。一部の実施形態において、前記プログラムコードは、電子デバイス1500内での使用のために、他のデバイス又はデータ処理システムから、ネットワークを通じて永久格納デバイス1508にダウンロードすることができる。例えば、サーバデータ処理ステムに含まれているコンピュータ読取り可能な格納媒体に格納されているプログラムコードは、ネットワークを通じて前記サーバから電子デバイス1500にダウンロードできる。プログラムコードを提供する前記データ処理システムは、サーバコンピュータ、クライアントコンピュータ、又はプログラムコードを格納及び送信できる一部の他のデバイスとなってもよい。
【0116】
一方、本開示は、実施形態について説明したが、多様な変形及び修正が可能であることは、当該技術分野における当業者には明らかである。本開示は、添付の特許請求の範囲内で、上記のような変形及び修正を含むことができる。