JP2016522601A - コンテナフォーマットでのメディアファイルの構文を意識した操作 - Google Patents

コンテナフォーマットでのメディアファイルの構文を意識した操作 Download PDF

Info

Publication number
JP2016522601A
JP2016522601A JP2016506305A JP2016506305A JP2016522601A JP 2016522601 A JP2016522601 A JP 2016522601A JP 2016506305 A JP2016506305 A JP 2016506305A JP 2016506305 A JP2016506305 A JP 2016506305A JP 2016522601 A JP2016522601 A JP 2016522601A
Authority
JP
Japan
Prior art keywords
container format
media file
format
syntax
syntax elements
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.)
Granted
Application number
JP2016506305A
Other languages
English (en)
Other versions
JP2016522601A5 (ja
JP6475228B2 (ja
Inventor
ダラル,フィロズ
ウー,ヨンジュン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2016522601A publication Critical patent/JP2016522601A/ja
Publication of JP2016522601A5 publication Critical patent/JP2016522601A5/ja
Application granted granted Critical
Publication of JP6475228B2 publication Critical patent/JP6475228B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/36Monitoring, i.e. supervising the progress of recording or reproducing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Library & Information Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Transfer Between Computers (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

【課題】階層的に編成された構文要素の構文を意識した操作を行う方法を提供する。【解決手段】コンテナフォーマット処理ツールは、メディアファイルにおけるコンテナフォーマットによって定義される階層的に編成された構文要素の構文を意識した操作を行う。例えばコンテナフォーマット検証器は、コンテナフォーマットに対するメディアファイルの適合性をチェックし、これはメディアコンテンツの多様なソース、および再生機器の間の相互運用性を保証するのに役立つことができる。適合性検証は、個々の構文要素の検証、相互検証、必須の構文要素が存在することの検証、および/または同期の検証を含むことができる。【選択図】図4

Description

[0001] 技術者は、圧縮(ソースコーディングまたはソースエンコーディングとも呼ばれる)を用いてデジタルメディアコンテンツのビットレートを低減する。圧縮は、情報をより低いビットレート形式に変換することによって、メディア情報の記憶および送信のコストを低減する。解凍(デコーディングとも呼ばれる)は、圧縮された形式からもとの情報のバージョンを再構築する。「コーデック」はエンコーダ/デコーダシステムである。過去20年にわたって様々なビデオコーデック標準およびフォーマットが採用されてきており、様々なオーディオコーデック標準およびフォーマットが採用されてきた。コーデック標準またはフォーマットは通常、エンコードされたメディアビットストリームの構文に対する選択肢(時には基本メディアビットストリームと呼ばれる)を定義し、特定の特徴がエンコーディングおよびデコーディングに用いられる時の基本メディアビットストリームにおけるパラメータを詳述する。多くの場合、コーデック標準またはフォーマットはまた、デコーディングにおいて正しい結果を得るためにデコーダが行うべきデコーディング動作についての詳細をもたらす。
[0002] メディアコンテナフォーマットは、記憶、送信などのためにどのようにエンコードされたメディアコンテンツを編成するかを規定する。メディアコンテナフォーマットは、エンコードされたメディアコンテンツ、タイミング情報、デジタル著作権管理情報、エラー訂正情報、または他の情報についてのメタデータを規定することができる。MPEG−2 TS/PS、Advanced Systems Format(「ASF」)(以前はAdvanced Streaming Format)、ISO/IEC 14496−12(ISOベースメディアファイルフォーマット)において規定されるMPEG−4(「MP4」)、14496−14(MP4ファイルフォーマット)および14496−15(AVCファイルフォーマット)、Common File Format(「CFF」)、およびMatroska Video Format(「MKV」)を含むマルチメディアコンテンツのための様々なコンテナフォーマットが公表されてきた。MP4またはCFFなどのコンテナフォーマットに対する仕様は、メディアファイルがコンテナフォーマットに適合するように、どのようにエンコードされたメディアコンテンツを編成し、エンコードされたメディアコンテンツのためのメタデータを追加するかを規定する。コンテナフォーマット仕様は通常、コンテナフォーマットでのメディアファイルの構文に対する選択肢を規定し、特定の機能が用いられるときのメディアファイルにおけるパラメータの意味および編成を詳述する。いくつかの場合、コンテナフォーマット仕様はまた、コンテナフォーマットシンクまたはコンテナフォーマットソースによって行われるべき動作についての詳細をもたらす。コンテナフォーマットシンクは、基本メディアビットストリームにおけるエンコードされたメディアコンテンツを(例えばオーディオエンコーダまたはビデオエンコーダなどのメディアエンコーダから)、コンテナフォーマットに従ってメディアファイルの中に入れる。コンテナフォーマットソースは、コンテナフォーマットでのメディアファイルを構文解析し、基本メディアビットストリームをデコーディングのためにメディアデコーダに供給する。
[0003] 毎日、コンテナフォーマットでの数百万個のメディアファイルが、多様なソースによって生成される。コンテナフォーマットでのさらに多くのメディアファイルが、多彩な活動を通して種々のユーザによって消費される。いくつかの場合にはコンテナフォーマットでのメディアファイルは、ストリーミングまたは会議の間にランダムビットフリップにより破損される。あるいはメディアファイルは、ストレージ故障により、スマートフォンを用いた不適切な記録により、または別の理由で破損され得る。しかし多くの最近のコンテナフォーマットに対して、既存のツールは、メディアファイルのコンテナフォーマットに対する適合性を検証する、または少なくとも破損したファイルコンテナを識別するための十分な手段をもたらさず、またはメディアファイル内のエラーに対する再生機器の回復力を試験するためにメディアファイルの要素を改変する十分な手段をもたらすこともない。
[0004] 要約すると、本明細書で述べられる革新は、メディアファイルにおけるコンテナフォーマットによって定義される階層的に編成された構文要素の構文を意識した操作を行う方法をもたらす。例えばコンテナフォーマット検証器は、コンテナフォーマットに対するメディアファイルの適合性をチェックし、これはメディアコンテンツの多様なソース、および再生機器の間の相互運用性を保証するのに役立つことができる。またはコンテナフォーマット「ファザー」は、メディアファイルの破損をシミュレートし、これはメディアファイル内のエラーに対する再生機器の回復力を試験するのに役立つことができる。またはコンテナフォーマットエディタは、等価なメディアファイルを生成し、これはメディアファイル内の新しいオブジェクトを試験するのに役立つことができる。
[0005] 本明細書で述べられる1組の革新によれば、コンテナフォーマット処理ツールは、オーディオコンテンツ、画像コンテンツ、および/またはビデオコンテンツを含む、プレゼンテーションのためのコンテナフォーマットでのメディアファイルを受け取る。コンテナフォーマットは、メディアファイルがコンテナフォーマットに従って規定される階層的に編成された構文要素を含むように、ツリー構造である。例えば、コンテナフォーマットに従って規定される階層的に編成された構文要素は、コンテナフォーマットに従って階層内にネストされたオブジェクトおよびオブジェクトの属性である。コンテナフォーマット処理ツールは、メディアファイルにおけるコンテナフォーマットに従って規定される階層的に編成された構文要素の少なくともいくつかの、構文を意識した操作を行う。
[0006] 例えば構文を意識した操作の一部として、コンテナフォーマット検証器は、メディアファイルのコンテナフォーマットに対する適合性をチェックする。検証は、コンテナフォーマット検証器が、所与の構文要素の値がコンテナフォーマットに従った所与の構文要素に対する1つまたは複数の制約条件を満たすことをチェックする、単一要素検証を含むことができる。あるいは検証は、コンテナフォーマット検証器が、所与の構文要素の値がコンテナフォーマットに従って規定される1つまたは複数の他の構文要素の値と矛盾しないことをチェックする、相互検証を含むことができる。さらに検証は、プレゼンテーションにおけるオーディオサンプルとビデオサンプルの間の同期をチェックすること、またはコンテナフォーマットに従って規定される必須の構文要素の存在に対してチェックすることを含むことができる。
[0007] あるいは構文を意識した操作の一部として、コンテナフォーマットファザーは、コンテナフォーマットでのメディアファイルの破損をシミュレートする。メディアファイルの破損をシミュレートするために、コンテナフォーマットファザーは、コンテナフォーマットでのメディアファイルに対するファイルフォーマット構造を維持しながら、コンテナフォーマットに従って規定される構文要素1つまたは複数に対して、有効な値を他の値に置き換えることができる。あるいはコンテナフォーマットファザーは、所与の構文要素の値を改変することによって、ランダムビットフリップをシミュレートすることができる。さらにコンテナフォーマットファザーは、オーディオ記録障害(例えば、コンテナフォーマットでのメディアファイルのオーディオトラックからオーディオデータを除去することによって)、または記録の不正な終了(例えば、コンテナフォーマットでのメディアファイルのオブジェクトに、コンテナフォーマットに従って規定される無関係な構文要素を追加することによって)をシミュレートすることができる。
[0008] あるいは構文を意識した操作の一部として、コンテナフォーマットエディタは、他のやり方でメディアファイルを編集することができる。例えばコンテナフォーマットでの別のメディアファイルに関連する問題をモデル化するために、コンテナフォーマットエディタは、コンテナフォーマットに従って規定される新しい構文要素をメディアファイルに挿入することができる。あるいはコンテナフォーマットエディタは、コンテナフォーマットに従って規定される構文要素の中で、1つまたは複数の破損した値を検出し、1つまたは複数の破損した値を訂正することができる。
[0009] メディアファイルにおけるコンテナフォーマットに従って規定される構文要素の構文を意識した操作は、方法の一部として、方法を行うように構成されたコンピューティングシステムの一部として、または、コンピューティングシステムに方法を行わせるためのコンピュータ実行可能命令を記憶した有形のコンピュータ可読媒体の一部として実現することができる。
[0010] 本発明の上記およびその他の目的、特徴、および利点は、添付の図を参照して進められる、以下のより詳しい記述からより明らかになるであろう。
[0011]いくつかの述べられる実施形態を実現することができる、例示のコンピューティングシステムの図である。 [0012]いくつかの述べられる実施形態を実現することができる、例示のネットワーク環境の図である。 いくつかの述べられる実施形態を実現することができる、例示のネットワーク環境の図である。 [0013]いくつかの述べられる実施形態を実現することができる、例示のメディア処理システムの図である。 [0014]いくつかの述べられる実施形態をそれと併せて実現することができる、コンテナフォーマット処理ツールの図である。 [0015]メディアファイルにおけるコンテナフォーマットに従って規定される階層的に編成された構文要素の図である。 [0016]メディアファイルにおけるコンテナフォーマットに従って規定される階層的に編成された構文要素の、構文を意識した操作のための一般化された技法を示すフローチャートである。 [0017]コンテナフォーマットに対するメディアファイルの適合性を検証するための技法を示すフローチャートである。 [0018]メディアファイルにおけるコンテナフォーマットに従って規定される構文要素の相互検証を示す図である。 [0019]コンテナフォーマットでのメディアファイルの破損をシミュレートするための技法を示すフローチャートである。 [0020]メディアファイルの破損をシミュレートするためにランダム値で置き換えられた、メディアファイルにおけるコンテナフォーマットに従って規定される選択された構文要素の値を示す、プロパティエクスプローラの画面を示すチャートである。
[0021] 詳細な説明は、コンテナフォーマットでのメディアファイルの構文を意識した操作のための様々な革新を示す。革新は、メディアファイルに対する適合性検証、メディアファイルの破損のシミュレーション、および他のメディアファイルの編集のための動作を含むことができる。
[0022] 種々のソースによって生成されたメディアファイルが、所与のコンテナフォーマットに適合することを検証することは、再生機器の相互運用性を保証するのに役立つ。本明細書で述べられる革新の一態様によれば、構文を意識したコンテナフォーマット検証器は、所与のコンテナフォーマットに対するメディアファイルの適合性をチェックする。メディアファイルは、サンプル(例えばビデオのフレーム)に対するタイムスタンプ、サンプルに対するエンコードされたコンテンツのチャンクのサイズ、エンコードされたコンテンツのチャンクのオフセットまたは位置、トラック情報または他の情報を示す、コンテナフォーマット構文要素を含むことができる。コンテナフォーマット検証器は、コンテナフォーマットに対するこのような構文要素の適合性を、コンテナフォーマット仕様に規定された制約条件に対する個々の構文要素の評価、構文要素の値がコンテナフォーマットに従って規定される他の関係する構文要素の値と矛盾しないことの相互検証、およびコンテナフォーマットに従って規定される必須の構文要素が存在することの検証を含む、いくつかの方法で検証することができる。
[0023] メディアファイルの破損をシミュレートすることは、コンテナフォーマットソースの能力を試験するのに役立つことができる。本明細書で述べられる革新の他の態様によれば、構文を意識したコンテナフォーマットファザーは、メディアファイルのファイルフォーマット構造をそのままに保ちながら、メディアファイルにおけるコンテナフォーマットに従って規定される構文要素の破損のいくつかのタイプのいずれかをシミュレートする。コンテナフォーマットでのメディアファイルを構文解析し消費するコンテナフォーマットソースは、メディアファイル内のエラーを受けやすくなり得る。最下層の構文解析動作時に種々のタイプの破損したメディアファイルに直面したときの、コンテナフォーマットソースのパフォーマンスを評価することは、エラーの検出、エラーに対する保護、エラーの隠蔽、およびエラーからの回復における改善に繋がり得る。このようにしてコンテナフォーマットソースは、コンテナフォーマットソースが再生を停止すべき状況をより正確に識別しながら、コンテナフォーマットソースがそれらから回復できる(一定の種類のエラーを隠蔽し、単に再生を停止するのではなく再生を回復する)破損に対してよりロバストにされ得る。
[0024] 本明細書で述べられる革新の他の態様によれば、構文を意識したコンテナフォーマットエディタは、コンテナフォーマットでのメディアファイルを編集し、これは望ましい特性を有するメディアファイルの評価および共有を容易にする。例えばコンテナフォーマットエディタは、メディアファイル内の破損を検出し訂正する。あるいは別の例としてコンテナフォーマットエディタは、別のメディアファイルで見られる問題をモデル化するために、コンテナフォーマットに従って規定される新しい構文要素を挿入することによってメディアファイルを作成する。このようにしてコンテナフィーマットでの所与のメディアファイルに対して、コンテナフォーマットエディタは、著作権の問題またはデジタル著作権管理によりアクセス制限を有するエンコードされたメディアコンテンツを使用することなく、別のメディアファイルにおいて特定された問題を実証するために、コンテナフォーマットに従って規定される構文要素の異なる組み合わせを発生することができる。
[0025] 本明細書で述べられる動作は、所々においてコンテナフォーマットシンクまたはコンテナフォーマットソースに関連するコンテナフォーマット処理ツールによって行われるように述べられるが、多くの場合は動作は、代替として他のタイプのコンテナフォーマット処理ツールによって行われ得る。本明細書で述べられるいくつかの例はビデオコンテンツに関係する。より一般的には、本明細書で述べられる革新は、画像コンテンツ(例えば一般の静止画像コンテンツ、医療スキャンコンテンツ、マルチスペクトル画像コンテンツ)、オーディオコンテンツ、または他のタイプのメディアコンテンツに応用することができる。
[0026] 本明細書で述べられる革新のいくつかは、MP4またはCFFコンテナフォーマットに特有な構文要素および動作に関連して示される。本明細書で述べられる革新はまた、ASF、MPEG−2 TS/PS、およびKMVなどの他のコンテナフォーマットに対して実施することができる。
[0027] より一般的には、本明細書で述べられる例に対する様々な代替形態が可能である。例えば本明細書で述べられる方法のいくつかは、述べられる方法動作の順序付けを変えることによって、一定の方法動作を分割する、繰り返す、または省くことなどによって変更され得る。開示される技術の様々な態様は、組み合わせて、または別々に用いることができる。種々の実施形態は、述べられる革新の1つまたは複数を用いる。本明細書で述べられる革新のいくつかは、背景において注目される問題の1つまたは複数に対処する。通常は所与の技法/ツールは、すべてのこのような問題を解決しない。
I.例示のコンピューティングシステム
[0028] 図1は、述べられる革新のいくつかを実現することができる、適切なコンピューティングシステム(100)の一般化された例を示す。コンピューティングシステム(100)は、革新は多様な汎用または専用コンピューティングシステムにおいて実現され得るので、使用または機能の範囲に関して何ら限定を示唆するものではない。
[0029] 図1を参照するとコンピューティングシステム(100)は、1つまたは複数の処理装置(110,115)、およびメモリ(120,125)を含む。処理装置(110,115)はコンピュータ実行可能命令を実行する。処理装置は、汎用中央処理装置(「CPU」)、特定用途向け集積回路(「ASIC」)内のプロセッサ、または任意の他のタイプのプロセッサとすることができる。多重処理システムにおいては処理能力を増大するために、複数の処理装置がコンピュータ実行可能命令を実行する。例えば図1は中央処理装置(110)、ならびにグラフィックス処理装置またはコプロセシング装置(115)を示す。有形のメモリ(120,125)は、処理装置によってアクセス可能な揮発性メモリ(例えばレジスタ、キャッシュ、RAM)、不揮発性メモリ(例えばROM、EEPROM、フラッシュメモリなど)、または両方の何らかの組み合わせとすることができる。メモリ(120,125)は、処理装置による実行に適したコンピュータ実行可能命令の形で、メディアファイルにおけるコンテナフォーマットに従って規定される階層的に編成された構文要素の構文を意識した操作のための1つまたは複数の革新を実現するソフトウェア(180)を記憶する。
[0030] コンピューティングシステムはさらなる特徴を有し得る。例えばコンピューティングシステム(100)は、ストレージ(140)、1つまたは複数の入力デバイス(150)、1つまたは複数の出力デバイス(160)、および1つまたは複数の通信接続(170)を有する。バス、コントローラ、またはネットワークなどの相互接続機構(図示せず)は、コンピューティングシステム(100)の構成要素を相互接続する。典型的にはオペレーティングシステムソフトウェア(図示せず)は、コンピューティングシステム(100)において実行する他のソフトウェアのための動作環境をもたらし、コンピューティングシステム(100)の構成要素の活動を協調させる。
[0031] 有形のストレージ(140)(コンピュータ可読ストレージとも呼ばれる)は、リムーバブルまたは非リムーバブルとすることができ、磁気ディスク、磁気テープまたはカセット、CD−ROM、DVD、または情報を記憶するために用いることができ、コンピューティングシステム(100)内でアクセスされ得る任意の他の媒体を含む。ストレージ(140)は、メディアファイルにおけるコンテナフォーマットに従って規定される階層的に編成された構文要素の構文を意識した操作のための1つまたは複数の革新を実現するソフトウェア(180)のための命令を記憶する。
[0032] 入力デバイス(150)は、キーボード、マウス、ペン、またはトラックボールなどのタッチ入力デバイス、音声入力デバイス、ジェスチャ入力を受け取るためのタッチスクリーン、スキャンデバイス、またはコンピューティングシステム(100)に入力を供給する他のデバイスとすることができる。ビデオに対しては入力デバイス(150)は、カメラ、ビデオカード、テレビチューナカード、またはアナログもしくはデジタル形式でビデオ入力を受け入れる同様なデバイス、またはビデオサンプルをコンピューティングシステム(100)に読み込むCD−ROMもしくはCD−RWとすることができる。オーディオに対しては入力デバイス(150)は、アナログもしくはデジタル形式でオーディオ入力を受け入れるマイクまたは同様なデバイス、またはオーディオサンプルをコンピューティングシステム(100)に読み込むCD−ROMもしくはCD−RWとすることができる。出力デバイス(160)は、ディスプレイ、プリンタ、スピーカ、CD−ライタ、またはコンピューティングシステム(100)から出力を生じる他のデバイスとすることができる。
[0033] 通信接続(170)は、他のコンピューティングエンティティへの通信媒体を通して通信を可能にする。通信媒体は、コンピュータ実行可能命令、オーディオもしくはビデオ入力または出力、または変調されたデータ信号での他のデータなどの情報を伝達する。変調されたデータ信号は、特徴のうちの1つまたは複数が信号における情報をエンコードするようなやり方で設定または変更された信号である。例としておよび非限定的に、通信媒体は、電気、光、RF、または他のキャリアを用いることができる。
[0034] 革新は、コンピュータ可読媒体との一般的な関連において述べることができる。コンピュータ可読媒体は、コンピューティング環境内でアクセス可能な、任意の利用可能な有形の媒体である。例としておよび非限定的に、コンピューティングシステム(100)に関連してコンピュータ可読媒体は、メモリ(120,125)、ストレージ(140)、および上記のいずれかの組み合わせを含む。
[0035] 革新は、プログラムモジュール(コンピュータプログラム製品とも呼ばれる)に含まれターゲットの実または仮想プロセッサ上のコンピューティングシステムにおいて実行されるものなど、コンピュータ実行可能命令(マシン可読命令とも呼ばれる)との一般的な関連において述べることができる。一般にプログラムモジュールは、特定のタスクを実行するまたは特定の抽象データタイプを実装する、ルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造体などを含む。プログラムモジュールの機能は、様々な実施形態において必要に応じてプログラムモジュールの間において組み合わせるまたは分割することができる。プログラムモジュールのためのコンピュータ実行可能命令は、ローカルまたは分散型コンピューティングシステム内で実行され得る。
[0036] 「システム」および「デバイス」という用語は、本明細書では同義的に用いられる。文脈がそうでないことを明らかに示さない限り、いずれの用語もコンピューティングシステムまたはコンピューティングデバイスのタイプについての何らの限定も意味しない。一般にコンピューティングシステムまたはコンピューティングデバイスは、ローカルまたは分散型とすることができ、本明細書で述べられる機能を実現するソフトウェアを有する、専用ハードウェアおよび/または汎用ハードウェアの任意の組み合わせを含むことができる。
[0037] 開示される方法はまた、開示される方法のいずれかを行うように構成された、専門のコンピューティングハードウェアを用いて実現され得る。例えば開示される方法は、開示される方法のいずれかを実現するように特別に設計または構成された集積回路によって実現され得る(例えばASICデジタル信号処理装置などのASIC、グラフィックス処理装置、またはフィールドプログラマブルゲートアレイなどのプログラマブルロジックデバイス)。
[0038] 説明のために、詳細な記述は、コンピューティングシステムにおけるコンピュータ動作を述べるために「決定する」、「もたらす」、および「用いる」などの用語を用いる。これらの用語は、コンピュータによって行われる動作に対する高レベルの抽象化であり、人間によって行われる動作と混同されるべきではない。これらの用語に対応する実際のコンピュータ動作は、実装形態に応じて変わる。本明細書で用いられる「によってもたらされる」という用語は、エンティティから直接の、またはエンティティから1つまたは複数の中間物を通して間接の、任意の形の引き渡しを意味する。
II.例示のネットワーク環境
[0039] 図2aおよび2bは、メディアエンコーダ(220)およびメディアデコーダ(270)を含む、例示のネットワーク環境(201、202)を示す。エンコーダ(220)およびデコーダ(270)は、適切な通信プロトコルを用いてネットワーク(250)を通して接続される。ネットワーク(250)は、インターネットまたは他のコンピュータネットワークを含むことができる。
[0040] 図2aに示されるネットワーク環境(201)では、各リアルタイム通信(「RTC」)ツール(210)は、双方向通信のための1つまたは複数のエンコーダ(220)、および1つまたは複数のデコーダ(270)、ならびにコンテナフォーマットシンクおよびソースツール(図示せず)を含む。ビデオに対しては所与のエンコーダ(220)は、SMPTE 421M標準、ISO/IEC 14496−10標準(H.264またはAVCとしても知られる)、HEVC標準、他の標準、または独自開発フォーマットに適合する出力を生成することができ、対応するデコーダ(270)はエンコーダ(220)からエンコードされたデータを受け入れる。オーディオに対しては所与のエンコーダ(220)は、HE AAC標準、AAC標準、Windows(登録商標) Media Audio(「WMA」)フォーマット、または他の独自開発フォーマットに適合する出力を生成することができ、対応するデコーダ(270)はエンコーダ(220)からエンコードされたデータを受け入れる。コンテナフォーマットシンクはコンテナフォーマットに従って外向きのメディアコンテンツを処理し、コンテナフォーマットソースはコンテナフォーマットに従って内向きのメディアコンテンツを処理する。双方向通信は、テレビ会議、テレビ電話コール、または他の二当事者通信シナリオの一部とすることができる。図2aのネットワーク環境(201)は2つのリアルタイム通信ツール(210)を含むが、代わりにネットワーク環境(201)は複数当事者通信に参加する3つ以上のリアルタイム通信ツール(210)を含むことができる。
[0041] リアルタイム通信ツール(210)は、エンコーダ(220)によるエンコーディングを管理する。図3は(上側半分に)、リアルタイム通信ツール(210)に含まれ得るコンテナフォーマットシンクを含む、例示のエンコーダシステムを示す。代替としてリアルタイム通信ツール(210)は別のエンコーダシステムを用いる。リアルタイム通信ツール(210)はまた、デコーダ(270)によるデコーディングを管理する。図3はまた(下側半分に)、リアルタイム通信ツール(210)に含まれ得るコンテナフォーマットソースを含む、例示のデコーダシステムを示す。代替としてリアルタイム通信ツール(210)は別のデコーダシステムを用いる。
[0042] 図2bに示されるネットワーク環境(202)では、エンコーディングツール(212)は、デコーダ(270)を含む複数の再生ツール(214)への配信のためにメディアをエンコードする、1つまたは複数のエンコーダ(220)を含む。エンコーディングツール(212)ではコンテナフォーマットシンク(図示せず)は、コンテナフォーマットに従って外向きのメディアコンテンツを処理する。再生ツール(214)ではコンテナフォーマットソース(図示せず)は、コンテナフォーマットに従って内向きのメディアコンテンツを処理する。ビデオ監視システム、ウェブカメラモニタリングシステム、リモートデスクトップ会議プレゼンテーション、またはメディアがエンコードされ1つの位置から1つまたは複数の他の位置に送られる他のシナリオのために、一方向通信がもたらされる。図2bのネットワーク環境(202)は2つの再生ツール(214)を含むが、ネットワーク環境(202)はより多いまたは少ない再生ツール(214)を含むことができる。一般に再生ツール(214)はエンコーディングツール(212)と通信して、受け取るべき再生ツール(214)のためのメディアのストリームを決定する。再生ツール(214)はストリームを受け取り、受け取ったエンコードされたデータを適切な期間の間バッファし、デコーディングおよび再生を開始する。
[0043] 図3は(上側半分に)、エンコーディングツール(212)に含められ得るコンテナフォーマットシンクを含む、例示のエンコーダシステムを示す。代替としてエンコーディングツール(212)は別のエンコーダシステムを用いる。エンコーディングツール(212)はまた、1つまたは複数の再生ツール(214)との接続を管理するためのサーバ側制御ロジックを含むことができる。図3はまた(下側半分に)、再生ツール(214)に含められ得るコンテナフォーマットソースを含む、例示のデコーダシステムを示す。代替として再生ツール(214)は別のデコーダシステムを用いる。再生ツール(214)はまた、エンコーディングツール(212)との接続を管理するためのクライアント側管理ロジックを含むことができる。
[0044] 図2aに示されるネットワーク環境(201)は、複数のエンコーダを有する複数のRTCツールを含むことができる。図2bに示されるネットワーク環境(202)は、複数のエンコーダを有する複数のエンコーディングツールを含むことができる。このような諸エンコーダは、スプライシングツールによって単一のビットストリームにスプライスされる、複数の出力ビットストリームを生成することができる。あるいは単一のエンコーダは、スプライシングツールによって単一のビットストリームにスプライスされる、複数のビットストリームを生成することができる。
III.例示のコンテナフォーマット処理ツールおよびコンテナフォーマット
[0045] 図3は、それと併せていくつかの述べられる実施形態を実現することができる、例示のメディア処理システム(300)のブロック図である。エンコーダ側ではシステム(300)は、1つまたは複数のメディアソース(310)、オーディオエンコーダ(321)、ビデオエンコーダ(322)、およびコンテナフォーマットシンク(330)を含む。デコーダ側ではシステム(300)は、コンテナフォーマットソース(360)、オーディオデコーダ(371)、ビデオデコーダ(372)、およびレンダリングエンジン(381、382)を含む。
[0046] メディアソース(310)はメディアコンテンツを供給する。ビデオに対してはメディアソース(310)は、カメラ、チューナカード、記憶媒体、スクリーンキャプチャモジュール、アニメーション出力、または他のビデオソースとすることができる。ビデオソースは通常、ビデオフレームのシーケンスを生成する。コンテナフォーマット処理の目的に対しては、ビデオの「サンプル」は通常は時間インスタンスに関連するビデオフレームであるが、代わりに、所与の時点でのビデオオブジェクトを表す、インターレースされたビデオフィールドまたはビデオオブジェクトプレーンとすることができる。画像コンテンツに対してはメディアソース(310)は、グラフィックス出力、スキャナ、医用画像ツール、または他のデジタル画像ソースとすることができ、サンプルは通常は画像である。オーディオコンテンツに対してはメディアソース(310)は、マイク、他の音声入力デバイス、記憶媒体、または他のオーディオソースとすることができる。コンテナフォーマット処理の目的に対しては、オーディオの「サンプル」は通常は、所与の時間または時間スパンに関連する振幅値のフレームである。
[0047] エンコーダ(321、322)の前にシステム(300)は、メディアコンテンツを記憶するためのバッファ、およびエンコーディングの前のメディアコンテンツの前処理(例えばフィルタリング)を行うプリプロセッサを含むことができる。画像またはビデオコンテンツに対しては、例えば前処理はまた、色空間変換、色範囲スケーリング、および/または他の処理を含むことができる。
[0048] 一般にエンコーダ(オーディオエンコーダ(321)、ビデオエンコーダ(322)であろうと、他のエンコーダであろうと)は、メディアソース(310)によって供給されるメディアコンテンツを受け取り、コンテナフォーマットシンク(330)への出力として、基本メディアビットストリームにおいてエンコードされたメディアコンテンツを生成する。エンコーダ(321、322)は、リアルタイム通信のための低待ち時間エンコーディングモード、コード変換モード、およびファイルまたはストリームからのメディア再生のための通常のエンコーディングモードなどの、複数のエンコーディングモードのいずれかにおいて動作することができる汎用エンコーディングツールとすることができ、または1つのこのようなエンコーディングモードに適合された専用エンコーディングツールとすることができる。エンコーダ(321、322)は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、スタンドアロンアプリケーションの一部として、または専用ハードウェアを用いて実現され得る。
[0049] 一般にエンコーダ(321、322)は、予測、周波数変換、量子化、およびエントロピー符号化などのエンコーディングタスクを行う複数のエンコーディングモジュールを含む。エンコーダ(321、322)によって行われる正確な動作は、コーデックフォーマットに応じて変わり得る。ビデオに対しては、出力のエンコードされたビデオコンテンツのフォーマットは、Windows(登録商標) Media Videoフォーマット、VC−1フォーマット、MPEG−xフォーマット、(例えばMPEG−1、MPEG−2、またはMPEG−4)、H.26xフォーマット(例えばH.261、H.262、H.263、H.264)、HEVCフォーマット、VPxフォーマット、または他のフォーマットとすることができる。画像に対しては、出力のエンコードされた画像コンテンツのフォーマットは、JPEGフォーマット、JPEG−XRフォーマット、または他のフォーマットとすることができる。オーディオに対しては、エンコードされたオーディオコンテンツのフォーマットは、AACフォーマット(例えばHE AAC)、WMAフォーマット、または他のフォーマットとすることができる。
[0050] 基本メディアビットストリームにおけるエンコードされたメディアコンテンツは、集められ、一時的なコード化されたデータ領域にバッファされる。集められたエンコードされたメディアコンテンツは、それぞれの基本メディアビットストリームの構文の一部として、エンコードされたメディアコンテンツに関するメディアメタデータを含むことができる。
[0051] コンテナフォーマットシンク(330)は、基本ビットストリームでのエンコードされたメディアコンテンツを受け取る。コンテナフォーマットシンク(330)は、メディアファイル内のエンコードされたメディアコンテンツを、MP4(ISO/IEC 14496−12、−14、または−15)、CFF、ASF、または他のコンテナフォーマットなどに従って編成する。例示の実装形態ではコンテナフォーマットシンク(330)は、MP4シンクまたはCFFシンクである。実装形態に応じてコンテナフォーマットシンク(330)は、送信のためにメディアストリームとして、あるいはストレージのためにコンテナフォーマットに従ったファイルとして、エンコードされたメディアコンテンツをパケット化することができ、この場合はコンテナフォーマットシンク(330)はメディアファイルの構文の一部として要素を追加する。またはより一般的にコンテナフォーマットシンク(330)は、1つまたは複数のメディアシステム多重化プロトコル、またはコンテナフォーマットのためのトランスポートプロトコルを実装することができる。コンテナフォーマットシンク(330)は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、スタンドアロンアプリケーションの一部として、または専用ハードウェアを用いて実現され得る。
[0052] コンテナフォーマットシンク(330)は、チャネル(350)への出力のためにコンテナフォーマットでのメディアファイルを供給することができる。チャネル(350)は、ストレージ、通信接続(例えばインターネットを通した)、または出力のための他のチャネルを表す。
[0053] あるいはコンテナフォーマットシンク(330)は、コンテナフォーマット構文要素の構文を意識した操作を行うコンテナフォーマット処理ツール(340)に、コンテナフォーマットでのメディアファイルを供給することができる。コンテナフォーマット処理ツール(340)は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、スタンドアロンアプリケーションの一部として、または専用ハードウェアを用いて実現され得る。図3は、コンテナフォーマットシンク(330)からメディアファイルを受け取り、出力をチャネル(350)に供給するコンテナフォーマット処理ツール(340)を示すが、代替としてコンテナフォーマット処理ツール(340)は、システム(300)内の別の場所に配置される。例えばコンテナフォーマット処理ツール(340)は、チャネル(350)からメディアファイルを受け取り、調整されたメディアファイルをチャネル(350)に、またはコンテナフォーマットソース(360)に戻すことができる。あるいはコンテナフォーマット処理ツール(340)の1つまたは複数のモジュールは、例えば適合性検証のために、コンテナフォーマットシンク(330)内に直接実装され得る。
[0054] 図4は、コンテナフォーマット処理ツール(340)のための例示のアーキテクチャを示す。コンテナフォーマット処理ツール(340)は、コンテナフォーマットでの入力メディアファイル(405)を受け入れ、コンテナフォーマットでの出力メディアファイル(495)を生成する。コンテナフォーマット処理ツール(340)は、コンテナフォーマット検証器(410)、コンテナフォーマットファザー(420)、およびコンテナフォーマットエディタ(430)を含む。コンテナフォーマット処理ツール(340)はまた、入力メディアファイル(405)を一時的に記憶するためのバッファ(図示せず)、および出力メディアファイル(495)を一時的に記憶するためのバッファ(図示せず)を含む。
[0055] コンテナフォーマット検証器(410)は、メディアファイルがコンテナフォーマットに適合することを検証するための、1つまたは複数のタイプの動作を行うように構成される。例えばコンテナフォーマット検証器(410)は、セクションIV.で述べられるように単一要素検証、相互検証、同期チェック、および/または必須のコンテナフォーマット構文要素があることの検証を行うように構成される。代替としてコンテナフォーマット検証器(410)は、他のおよび/または追加のタイプの動作を行ってコンテナフォーマットへの適合性を検証するように構成される。
[0056] コンテナフォーマットファザーは、1つまたは複数のタイプの動作を行って、コンテナフォーマットでのメディアファイルの破損をシミュレートするように構成される。例えばコンテナフォーマットファザー(420)は、セクションIVで述べられるように、コンテナフォーマット構文要素の有効な値をランダム値で置き換える、オーディオ記録障害をシミュレートする、および/または記録の不正な終了をシミュレートするように構成される。代替としてコンテナフォーマットファザー(420)は、他のおよび/または追加のタイプの動作を行ってメディアファイルの破損をシミュレートするように構成される。
[0057] コンテナフォーマットエディタ(430)は、1つまたは複数のタイプの動作を行って別のやり方でコンテナフォーマットでのメディアファイルを編集するように構成される。例えばコンテナフォーマットエディタ(430)は、セクションIVで述べられるように、コンテナフォーマットに従って規定される新しい構文要素をメディアファイルに挿入するように構成される。代替としてコンテナフォーマットエディタ(430)は、他のおよび/または追加のタイプの編集動作を行うように構成される。
[0058] コンテナフォーマット処理ツール(340)は、コンテナフォーマット検証器(410)、ファザー(420)、およびエディタ(430)の1つまたは複数を省くことができる。代替としてコンテナフォーマット処理ツール(340)は、他のおよび/または追加のモジュールを含むことができる。
[0059] 図5はコンテナフォーマットでの例示のメディアファイル(500)を示す。メディアファイル(500)はツリー構造、または階層的に編成され、他のオブジェクトおよび/またはコンテナフォーマット属性を含んだオブジェクト(時には「ボックス」と呼ばれる)を含む。オブジェクト(ボックス)は通常、サイズ(すなわち長さ)値、およびボックスに対するタイプ値を含み、その後に他の属性および/または含まれたオブジェクトが続く。「コンテナ」は、1組の他のオブジェクトを含むおよびグループ化するオブジェクトであるが、通常はそれ自体は属性(サイズおよびタイプ値は別として)を含まない。コンテナフォーマット構文要素は、オブジェクト(ボックス)または属性とすることができる。
[0060] メディアファイル(500)は、オーディオコンテンツ、ビデオコンテンツ、画像コンテンツ、および/または他のコンテンツによるプレゼンテーションのためのメタデータを含む。プレゼンテーションは、ビデオトラックおよびオーディオトラックなどのトラックに、論理的に分割される。トラックに対して、各タイミング設定されたユニットはサンプルである(例えばビデオのフレーム、オーディオのフレーム)。トラック内のサンプルは番号が付けられる。トラックはまた、1つまたは複数のサンプル記述を有する。トラック内のサンプルは、参照によって記述に関係付けられ、サンプルに対する記述はサンプルがどのようにデコードされ得るかを示す。
[0061] メディアファイル(500)に対して、ファイル(500)の物理構造は、メディアコンテンツの物理構造および編成に関係付けられない。すなわちサンプルについてのヘッダ情報および他のメタデータは、メディアファイル(500)内のサンプルに対するエンコードされたメディアコンテンツに付加される必要はない。さらにメディアファイル(500)の物理構造も、エンコードされたメディアコンテンツのレイアウトも、メディアサンプルの時間的順序付けのために関係付けられない。代わりに、コンテナフォーマットに従って規定されるファイル構造および他の構文要素は、例えばタイムスタンプによってメディアサンプルの配置およびタイミングを指定する。これは、シーク動作およびランダムアクセスを容易にする。
[0062] 図5でメディアファイル(500)は、ファイルタイプ(502)、メタデータ用のコンテナ(510)、およびメディアデータ用のコンテナ(590)を含む。ファイルタイプ(502)は、それにメディアファイル(500)が適合する、コンテナフォーマット仕様を表す。メタデータ用のコンテナ(510)はプレゼンテーションのためのメタデータを含み、メディアデータ用のコンテナ(590)は、例えばビデオのサンプルおよびオーディオのサンプルに対するエンコードされたメディアコンテンツを含む。代替として、エンコードされたメディアコンテンツは、エンコードされたメディアコンテンツのための位置を表すメディアファイル(500)内の参照によって、メディアファイル(500)と離れて記憶され得る。
[0063] メタデータ用のコンテナ(510)は、ムービーヘッダ(520)および2つのトラック用のコンテナ(531、532)を含む。ムービーヘッダ(520)は、持続時間、時間スケール、好ましい再生速度、および好ましい音量などのプレゼンテーション全体に関係のある構文要素を含む。各トラックコンテナ(531、532)は、トラックヘッダ(541、542)、およびメディア情報用のコンテナ(551、552)を含む。トラックヘッダ(541、542)は、トラック識別子、持続時間、および(ビデオ用の)幅、高さ、およびレイヤなどのトラックに関係のある構文要素を含む。メディア情報用のコンテナ(551、552)は、メディアヘッダ(561、562)、サンプルのタイミング、サンプル記述、サンプルのためのエンコードされたメディアコンテンツのチャンクの場所などに対する追加情報(571、572)を含む。例示のコンテナフォーマットにおける構文要素についてのさらなる詳細は、例えばISO/IEC 14496−12,−14および−15、またはCFF仕様を参照されたい。
[0064] 代替としてメディアファイルは、他のおよび/または追加のコンテナフォーマット構文要素を含む。
[0065] 図3に戻ると、コンテナフォーマットソース(360)は、コンテナフォーマットでのメディアファイルを受け取り、処理する。コンテナフォーマットソース(360)は、MP4、ASF、WebM、または他のコンテナフォーマットなどのコンテナフォーマットに従ってメディアファイル内に編成されたエンコードされたメディアコンテンツを取り除く。例示的実装形態ではコンテナフォーマットソース(360)は、MP4ソースまたはCFFソースである。コンテナフォーマットソース(360)は、セクションIVで説明されるようにコンテナフォーマット構文要素に関連する一定のタイプの問題を検出し訂正することができる。
[0066] 実装形態に応じてコンテナフォーマットソース(360)は、メディアストリームとして送信するため、またはコンテナフォーマットに従ってファイルとして記憶するために集められた、エンコードされたメディアコンテンツをパケット化解除することができ、この場合はコンテナフォーマットソース(360)は、メディアファイルの構文の一部として追加された構文要素を構文解析する。あるいはより一般的にはコンテナフォーマットソース(360)は、1つまたは複数のメディアシステム逆多重化プロトコル、またはコンテナフォーマットに対するトランスポートプロトコルを実装することができる。コンテナフォーマットソース(360)は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、スタンドアロンアプリケーションの一部として、または専用ハードウェアを用いて実現され得る。
[0067] コンテナフォーマットソース(360)から出力されたエンコードされたメディアコンテンツ(1つまたは複数の基本メディアビットストリームとして)は、十分な量のこのようなデータが受け取られるまで、一時的なコード化されたデータ領域に記憶される。バッファされるエンコードされたメディアコンテンツは、基本メディアビットストリームの構文の一部として、エンコードされたメディアコンテンツに関するメディアメタデータを含むことができる。
[0068] 一般にデコーダ(オーディオデコーダ(371)、ビデオデコーダ(372)であろうと、他のデコーダであろうと)は、基本メディアビットストリームにおいてコンテナフォーマットソース(360)によって供給されるエンコードされたメディアコンテンツを受け取り、再構築されたメディアコンテンツを生成する。デコーダ(371,372)は、リアルタイム通信のための低待ち時間デコーディングモード、およびファイルまたはストリームからのメディア再生のための通常のデコーディングモードなどの、複数のデコーディングモードのいずれかにおいて動作することができる汎用デコーディングツールとすることができ、またはこのような1つのデコーディングモードに適合された専用デコーディングツールとすることができる。デコーダ(371,372)は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、スタンドアロンアプリケーションの一部として、または専用ハードウェアを用いて実現され得る。
[0069] 一般にデコーダ(371,372)は、エントロピー復号、逆量子化、逆周波数変換、および予測などのデコーディングタスクを行う複数のデコーディングモジュールを含む。デコーダ(371,372)によって行われる正確な動作は、コーデックフォーマットに応じて変わり得る。ビデオに対しては、エンコードされたビデオコンテンツのフォーマットは、Windows(登録商標) Media Videoフォーマット、VC−1フォーマット、MPEG−xフォーマット、(例えばMPEG−1、MPEG−2、またはMPEG−4)、H.26xフォーマット(例えばH.261、H.262、H.263、H.264)、HEVCフォーマット、VPxフォーマット、または他のフォーマットとすることができる。画像に対しては、エンコードされた画像コンテンツのフォーマットは、JPEGフォーマット、JPEG−XRフォーマット、または他のフォーマットとすることができる。オーディオに対しては、エンコードされたオーディオコンテンツのフォーマットは、AACフォーマット(例えばHE AAC)、WMAフォーマット、または他のフォーマットとすることができる。
[0070] デコードされたフレームの一時的メモリ記憶領域は、再構築されたメディアコンテンツのための複数フレームのバッファ記憶領域を含むことができる。レンダリングエンジン(381、382)は、再構築されたメディアコンテンツを出力のために処理する。オーディオレンダリングエンジン(381)は再構築されたオーディオを出力のために処理し、ビデオレンダリングエンジン(382)は再構築されたビデオを出力のために処理する。例示的実装形態ではビデオレンダリングエンジン(382)は、色変換器およびディスプレイモジュールを含む。
IV.コンテナフォーマット構文要素の構文を意識した操作
[0071] 本明細書で述べられる革新は、メディアファイルにおけるコンテナフォーマットに従って規定される階層的に編成された構文要素の構文を意識した操作を行う方法をもたらす。
[0072] 図6は、メディアファイルにおけるコンテナフォーマットに従って規定される階層的に編成された構文要素の構文を意識した操作のための一般化された技法(600)を示す。図3を参照して述べられたものなどのコンテナフォーマット処理ツールは、技法(600)を行う。
[0073] コンテナフォーマット処理ツールは、プレゼンテーションのためのコンテナフォーマットでのメディアファイルを受け取る(610)。プレゼンテーションはオーディオコンテンツ、画像コンテンツ、および/またはビデオコンテンツを含む。コンテナフォーマットは、メディアファイルがコンテナフォーマットに従って規定される階層的に編成された構文要素を含むように、ツリー構造である。例えばコンテナフォーマットはMP4、CFF、または他のコンテナフォーマットである。より一般的にはコンテナフォーマットに従って規定される階層的に編成された構文要素は、コンテナフォーマットに従って階層内にネストされたオブジェクトおよびオブジェクトの属性である。
[0074] コンテナフォーマット処理ツールは、メディアファイルにおけるコンテナフォーマットに従って規定される階層的に編成された構文要素の少なくともいくつかの、構文を意識した操作を行う(620)。例えば構文を意識した操作は、適合性検証(セクションIV.A)、メディアファイルの破損のシミュレーション(セクションIV.B)、および/またはメディアファイルの他の編集(セクションIV.C)を含むことができる。
A.適合性検証
[0075] 適合性検証のために、コンテナフォーマット処理ツールのコンテナフォーマット検証器は、メディアファイルのコンテナフォーマット構文要素がコンテナフォーマット仕様に適合することをチェックする。これは多様なソースによって生成されるメディアファイルに対する相互運用性を保証するのに役立つことができる。
[0076] 図7は、コンテナフォーマットでのメディアファイルの適合性を検証するための技法(700)を示す。図3を参照して述べられたものなどのコンテナフォーマット処理ツールは、技法(700)を行う。
[0077] 図7は、適合性検証のための4つの主要な動作の段階を示す。代替としてコンテナフォーマット処理ツールは、適合性検証の一部として他のおよび/または異なる動作を行う。特に、ツールは図7に示される動作のすべてを行う必要はない。
[0078] 図7に示される技法(700)によればツールは、個々に取り込まれたコンテナフォーマット構文要素を検証する(710)。例えばコンテナフォーマットに従って規定される階層的に編成された構文要素に対するこのような単一要素検証の一部として、所与の構文要素に対してツールは、構文要素の値が、構文要素に対する1つまたは複数の制約条件を満たすことをチェックする。通常は制約条件は、関連のあるコンテナフォーマット仕様における構文要素に対して規定される。ツールは、メディアファイル内のすべての構文要素(ボックス、属性)をチェックすることができ、または構文要素のサブセットをチェックすることができる。ツールは単一要素検証を、コンテナフォーマット仕様に従ってメディアファイルの構文要素を構文解析する間に、またはより後の段階で行うことができる。
[0079] コンテナフォーマット処理ツールはまた、選択されたコンテナフォーマット構文要素の値を相互検証する(720)。例えばコンテナフォーマットに従って規定される1組の階層的に編成された構文要素に対するこのような相互検証の一部として、所与の構文要素に対してツールは、構文要素の値が、階層的に編成された構文要素の中での1つまたは複数の他の構文要素の値と矛盾しないことをチェックする。これは所与の構文要素とメディアファイル内の他の構文要素の間の相互の影響が有効であることを検証する。表1は、例示的実装形態でのいくつかのMP4構文要素に対する相互検証のインスタンスを記述する。
Figure 2016522601
Figure 2016522601
Figure 2016522601
[0080] 代替としてコンテナフォーマット処理ツールは、相互検証の他のおよび/または追加のインスタンスをチェックする。
[0081] 図8は、相互検証の一般化された例を示す。図8ではコンテナ(571)は、サンプルのタイミング、サンプル記述、およびサンプルに対するエンコードされたメディアコンテンツのチャンクの位置についての情報を有する。コンテナ(571)は、ビデオの使用についての属性を有するビデオヘッダ(810)、サンプルのチャンクの位置についての属性を有するメディアデータソース(820)オブジェクト、およびサンプルのタイミング、サンプル記述などについての情報を有するオブジェクト(840、850、860)を含むコンテナ(830)を含む。相互検証のためにツールは、オブジェクト1(840)の属性2の値が、オブジェクト2(850)の属性3およびオブジェクト3(860)の属性1の値と矛盾しないことを検証する。
[0082] 図7に戻るとコンテナフォーマット処理ツールは、コンテナフォーマットに従って規定される階層的に編成された構文要素の中での、必須の構文要素の存在も検証する(730)。例えばツールは、いずれかのメディアファイルのために必要な、いずれのコンテナフォーマット構文要素も存在することをチェックする。また、所与のメディアファイルのために用いられる機能(例えばムービーフラグメントに対するランダムアクセス)を考慮すると、ツールは機能をサポートするコンテナフォーマット構文要素の存在をチェックすることができる。(これは相互検証のケースと見なされ得る。)
[0083] 最後にコンテナフォーマット処理ツールは同期を検証する(740)。例えばプレゼンテーションにおけるオーディオサンプルとビデオサンプルの間の同期をチェックするために、ツールは、オーディオサンプルの1つに対するタイムスタンプが、ビデオサンプルの対応する1つに対するタイムスタンプと十分に近い(例えば所定の閾値に従って)ことをチェックする。このようにしてツールは、タイムスタンプが離れ過ぎていないことを検証する。タイムスタンプが離れ過ぎている場合は、ツールはタイムスタンプを調整する、同期を改善するようにフレーム(例えばビデオフレーム)を省く、または再生を失敗させることができる。
B.破損をシミュレートする
[0084] コンテナフォーマット処理ツールはまた、コンテナフォーマットでのメディアファイルの破損をシミュレートすることができる。破損したメディアファイルは、構文解析時にコンテナフォーマットソースをクラッシュさせ得る、あるいはサービス拒否を引き起こし得る。メディアファイルの破損をシミュレートすることによって、ツールはコンテナフォーマットソースの能力の試験を容易にする。
[0085] コンテナフォーマット処理ツールは、メディアファイルに対する様々な種類の破損をシミュレートするために、様々な方法でメディアファイルを改変することができる。いくつかの場合は、コンテナフォーマットでのメディアファイルは、ストリーミングまたは会議時のランダムビットフリップにより破損される。コンテナフォーマットツールは、図9に示される技法(900)を用いてこのような破損をシミュレートすることができる。図3を参照して述べられたものなどのコンテナフォーマット処理ツールは、技法(900)を行う。
[0086] コンテナフォーマット処理ツールは、メディアファイルにおいて改変すべき次のコンテナフォーマット構文要素を入手する(910)。例えばツールは、メディアファイル内、またはメディアファイル内のオブジェクト内を前方にスキップして、改変すべき次のコンテナフォーマット構文要素を識別する。あるいはツールは、改変のためにユーザによって選択されたタイプの、次のコンテナフォーマット構文要素を識別する。
[0087] ツールは、コンテナフォーマット構文要素の値を別の値と置き換える(920)。例えばツールは、構文要素の値を置き換えたときは、1つまたは複数のランダムビットフリップをシミュレートする。代替としてツールは、何らかの他の方法で値を置き換える。
[0088] ツールは、これ以上のコンテナフォーマット構文要素を改変すべきかどうかをチェックし(930)、そうであれば改変すべき次のコンテナフォーマット構文要素を入手する(910)。このようにしてツールは、メディアファイル内の1つまたは複数のコンテナフォーマット構文要素を改変することができる。
[0089] 従って図9に示される技法(900)によりコンテナフォーマット処理ツールは、コンテナフォーマットに従って規定される階層的に編成された構文要素の少なくともいくつかに対して、有効な値を他の値(例えばランダム値)に置き換える。しかし同時にツールは、コンテナフォーマットでのメディアファイルのためのファイルフォーマット構造を維持する。最下層の構文解析動作時に種々のタイプのエラーに直面したときの、コンテナフォーマットソースのパフォーマンスを評価することは、エラーの検出、エラーに対する保護、エラーの隠蔽、およびエラーからの回復における改善に繋がり得る。
[0090] 図10はプロパティエクスプローラの画面(1000)を示し、メディアファイルの破損をシミュレートするためにランダム値で置き換えられた、メディアファイル内の選択されたMP4構文要素の値を示す。メディアファイルのファイルフォーマット構造はそのままに保たれるが、「(合成)時間対サンプル」ボックス内のいくつかのsample_offset構文要素の値が改変されている。
[0091] メディアファイルは他のやり方で破損され得る。いくつかの場合、コンテナフォーマットでのメディアファイルは、オーディオ記録障害により破損される。例えばスマートフォンまたはその他における記録システムは、オーディオとビデオの両方を記録するように初期化され得るが、何らかの理由によりオーディオデータが受け取られない。結果としてのメディアファイルは、意味のある構造がない空のオーディオトラックを有する。コンテナフォーマット処理ツールは、コンテナフォーマットでのメディアファイルのオーディオトラックからオーディオデータを除去することによって、このようなオーディオ記録障害をシミュレートすることができる。さらに他の場合には、コンテナフォーマットでのメディアファイルは、記録の不正な終了により破損される。例えばスマートフォンまたはその他における記録システムは、記録の終わりでの無効なデータをメディアファイルのボックスに伝搬させ得る。コンテナフォーマット処理ツールは、コンテナフォーマットでのメディアファイルのオブジェクトに、コンテナフォーマットに従って規定される無関係な構文要素を追加することによって、このような記録の不正な終了をシミュレートすることができる。
[0092] コンテナフォーマットソースは、それがメディアファイルを構文解析し消費するときに、種々の方法でメディアファイル内のエラーに反応することができる。いくつかのタイプのエラーに対して、例えば構文解析が不合格になったときに、コンテナフォーマットソースは再生を終了する。他のタイプのエラーに対してコンテナフォーマットソースは、エラーを無視して、またはエラーを訂正もしくは隠蔽することを試みて、続行できる場合がある。
[0093] 一般にコンテナフォーマットソースは、メディアファイル内のエラーを検出し、破損したメディアファイルに直面したときに、より良いユーザエクスペリエンスをもたらすように、少なくともいくつかのタイプのエラーを隠蔽するまたはそれから回復する能力を有する。例えばコンテナフォーマット処理ツールは、コンテナフォーマット構文要素における一定のタイプのエラーを検出し、他の値からの推論に基づいてエラーを訂正することができる。以下はいくつかの特定の例である。
・持続時間値は、内部的に他の持続時間値と矛盾しないように訂正することができる。
・サンプルに対する再生は、そのサンプルサイズがサイズ閾値(他のサンプルに対するサンプルサイズの値に基づいて設定された、または所定の閾値に設定された)を超える場合は、スキップすることができる。
・ムービーフラグメントランダムアクセスオフセット(mfro)ボックス内のサイズフィールドが不正(例えばそれが親ムービーフラグメントランダムアクセス(mfra)ボックスに対して指定されたサイズ値と一致しないので)である場合は、シーケンシャル再生のみがイネーブルされるように、メディアファイルのランダムアクセス能力をディスエーブルすることができる。
・トラックラン内のサンプルに対するサンプルサイズの合計(トラックフラグメントラン(trun)ボックス内に示される)が、メディアデータ(mdat)ボックスのサイズより大きい場合は、それに対するオフセットがmdatボックスの外側を指し示すサンプルはスキップすることができる。
・同様に、ファイルサイズより大きなオフセットを有するチャンクはスキップすることができる。
[0094] 代替としてコンテナフォーマット処理ツールは、コンテナフォーマット構文要素における他のおよび/または追加のタイプのエラーを、検出し訂正することができる。
C.他の編集
[0095] コンテナフォーマット処理ツールは、他のやり方でコンテナフォーマットでのメディアファイルを編集することができる。このような編集はいくつかのシナリオにおいて有用である。
[0096] いくつかのビデオファイルは、例えば著作権の問題により、アクセスおよび分配に対して制限を有する。あるコンテナフォーマット構文要素、またはコンテナフォーマット構文要素の関心のある組み合わせが、著作権保護されたコンテンツを有するメディアファイル内にのみ存在す場合は、メディアファイルの配布は制限される場合があり、コンテナフォーマットソースを試験することによって達成され得る改善の妨げとなる可能性がある。この状況に対処するためにコンテナフォーマット処理ツールは、異なるエンコードされたメディアコンテンツを含んだ別のメディアファイルを作成するときに、新しいコンテナフォーマット構文要素を挿入することができる。すなわち自由に分配可能なメディアコンテンツを有する所与のメディアファイルに対して、コンテナフォーマット処理ツールは、著作権の問題により潜在的なアクセス制限を有し得る特定のビデオファイルを必要とせずに、メディアファイルに対するコンテナフォーマット構文要素の種々の組み合わせを発生することができる。発生されたコンテナフォーマット構文要素の組み合わせは、コンテナフォーマットでの別のメディアファイルに関連する問題(例えば自由に分配できないメディアファイルに関連する問題)をモデル化する、または試験目的のためのシナリオをモデル化することができる。
[0097] あるいは別の例として、コンテナフォーマット処理ツールは、コンテナフォーマットソースへのメディアファイルのさらなる分配の前に問題を解決するように、メディアファイル内のエラーを検出し訂正することができる。例えばコンテナフォーマットでのメディアファイルの構文解析時に、コンテナフォーマット処理ツールは、コンテナフォーマットに従って規定される階層的に編成された構文要素の中で、1つまたは複数の破損した値を検出する。次いでコンテナフォーマット処理ツールは、例えば例示のコンテナフォーマットソースを参照して上述されたように、1つまたは複数の破損した値を訂正する。
[0098] 開示された本発明の原理を応用することができる多くの可能な実施形態に鑑みて、例示された実施形態は本発明の好ましい実施例のみであり、本発明の範囲を限定するものと解釈されるべきではないことが認識されるべきである。むしろ本発明の範囲は、添付の特許請求の範囲によって定義される。従って我々は、これらの特許請求の範囲および趣旨に包含されるすべてを我々の発明として請求するものである。

Claims (10)

  1. オーディオコンテンツ、画像コンテンツ、およびビデオコンテンツの1つまたは複数を含む、プレゼンテーションのためのコンテナフォーマットでのメディアファイルを受け取るステップであって、前記コンテナフォーマットは、前記メディアファイルが、前記コンテナフォーマットに従って規定される階層的に編成された構文要素を含むように、ツリー構造である、ステップと、
    前記メディアファイルにおける前記コンテナフォーマットに従って規定される前記階層的に編成された構文要素の少なくともいくつかの、構文を意識した操作を行うステップと
    を含む、コンピューティングシステムにおける方法。
  2. 構文を意識した操作を行う前記ステップが、前記メディアファイルの前記コンテナフォーマットに対する適合性を検証するステップを含む、請求項1に記載の方法。
  3. 適合性を検証する前記ステップが、
    前記コンテナフォーマットに従って規定される前記階層的に編成された構文要素の前記少なくともいくつかに対して、単一要素検証を行うステップと、
    前記コンテナフォーマットに従って規定される前記階層的に編成された構文要素の前記少なくともいくつかに対して、相互検証を行うステップと、
    前記プレゼンテーションにおけるオーディオサンプルとビデオサンプルの間の同期をチェックするステップと、
    前記コンテナフォーマットに従って規定される前記階層的に編成された構文要素の中で、必須の構文要素の存在に対してチェックするステップと
    を含む、請求項2に記載の方法。
  4. 構文を意識した操作を行う前記ステップが、前記コンテナフォーマットでの前記メディアファイルの破損をシミュレートするステップを含む、請求項1に記載の方法。
  5. 破損をシミュレートする前記ステップが、
    前記コンテナフォーマットでの前記メディアファイルに対するファイルフォーマット構造を維持しながら、前記コンテナフォーマットに従って規定される前記階層的に編成された構文要素の前記少なくともいくつかの1つまたは複数に対して、有効な値を他の値に置き換えるステップと、
    前記コンテナフォーマットに従って規定される前記階層的に編成された構文要素の所与の構文要素に対して、前記所与の構文要素の値を改変することによってランダムビットフリップをシミュレートするステップと、
    前記コンテナフォーマットでの前記メディアファイルのオーディオトラックからオーディオデータを除去することによってオーディオ記録障害をシミュレートするステップと、
    前記コンテナフォーマットでの前記メディアファイルのオブジェクトに、前記コンテナフォーマットに従って規定される無関係な構文要素を追加することによって、記録の不正な終了をシミュレートするステップと
    の1つまたは複数を含む、請求項4に記載の方法。
  6. 構文を意識した操作を行う前記ステップが、
    前記コンテナフォーマットに従って規定される前記階層的に編成された構文要素の中で、1つまたは複数の破損した値を検出するステップと、
    前記1つまたは複数の破損した値を訂正するステップと
    を含む、請求項1に記載の方法。
  7. 構文を意識した操作を行う前記ステップが、前記コンテナフォーマットでの別のメディアファイルに関連する問題をモデル化するために、前記コンテナフォーマットでの前記メディアファイルに、前記コンテナフォーマットに従って規定される新しい階層的に編成された構文要素を挿入するステップを含む、請求項1に記載の方法。
  8. 前記コンテナフォーマットに従って規定される前記階層的に編成された構文要素が、前記コンテナフォーマットに従って階層にネストされたオブジェクト、およびオブジェクトの属性である、請求項1に記載の方法。
  9. オーディオコンテンツ、画像コンテンツ、およびビデオコンテンツの1つまたは複数を含む、プレゼンテーションのためのコンテナフォーマットでのメディアファイルを記憶するためのバッファであって、前記コンテナフォーマットは、前記メディアファイルが、前記コンテナフォーマットに従って規定される階層的に編成された構文要素を含むように、ツリー構造である、バッファと、
    前記メディアファイルにおける前記コンテナフォーマットに従って規定される前記階層的に編成された構文要素の少なくともいくつかの、構文を意識した操作を行うように構成された構文操作ツールと
    を備えるコンピューティングシステム。
  10. オーディオコンテンツ、画像コンテンツ、およびビデオコンテンツの1つまたは複数を含む、プレゼンテーションのためのコンテナフォーマットでのメディアファイルを受け取るステップであって、前記コンテナフォーマットは、前記メディアファイルが、前記コンテナフォーマットに従って規定される階層的に編成された構文要素を含むように、ツリー構造である、ステップと、
    前記メディアファイルにおける前記コンテナフォーマットに従って規定される前記階層的に編成された構文要素の少なくともいくつかの、構文を意識した操作を行うステップであって、前記構文を意識した操作は、
    前記コンテナフォーマットに従って規定される前記階層的に編成された構文要素の中で、必須の構文要素の存在に対してチェックし、
    前記コンテナフォーマットに従って規定される前記階層的に編成された構文要素の前記少なくともいくつかのそれぞれに対して、単一要素検証を行い、
    前記コンテナフォーマットに従って規定される前記階層的に編成された構文要素の前記少なくともいくつかのいくつかに対して、相互検証を行う
    ことによって前記メディアファイルの前記コンテナフォーマットに対する適合性を検証することを含む、ステップと
    を含む方法を、コンピュータ実行可能命令によってプログラムされたコンピューティングシステムに行わせるように、前記コンピュータ実行可能命令を記憶した、1つまたは複数のコンピュータ可読媒体。
JP2016506305A 2013-04-05 2013-09-13 コンテナフォーマットでのメディアファイルの構文を意識した操作 Active JP6475228B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/857,975 US9262419B2 (en) 2013-04-05 2013-04-05 Syntax-aware manipulation of media files in a container format
US13/857,975 2013-04-05
PCT/US2013/059564 WO2014163663A1 (en) 2013-04-05 2013-09-13 Syntax-aware manipulation of media files in a container format

Publications (3)

Publication Number Publication Date
JP2016522601A true JP2016522601A (ja) 2016-07-28
JP2016522601A5 JP2016522601A5 (ja) 2016-09-29
JP6475228B2 JP6475228B2 (ja) 2019-02-27

Family

ID=49274864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016506305A Active JP6475228B2 (ja) 2013-04-05 2013-09-13 コンテナフォーマットでのメディアファイルの構文を意識した操作

Country Status (6)

Country Link
US (1) US9262419B2 (ja)
EP (1) EP2981964A1 (ja)
JP (1) JP6475228B2 (ja)
KR (1) KR102122628B1 (ja)
CN (1) CN105122370B (ja)
WO (1) WO2014163663A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9215471B2 (en) 2010-11-12 2015-12-15 Microsoft Technology Licensing, Llc Bitstream manipulation and verification of encoded digital media data
ES2613978T3 (es) * 2013-12-26 2017-05-29 Telefonica Digital España, S.L.U. Un método y un sistema para la transmisión por secuencias suave de contenidos de medios en una red de entrega de contenidos distribuida
US10776419B2 (en) 2014-05-16 2020-09-15 Gracenote Digital Ventures, Llc Audio file quality and accuracy assessment
CN104683810B (zh) * 2015-02-28 2019-09-06 武汉烽火众智数字技术有限责任公司 一种基于特征分析的动态解码方法和装置
CN104735426A (zh) * 2015-04-07 2015-06-24 中国工商银行股份有限公司 多输入和多输出的视频处理装置及方法
US10165310B2 (en) 2016-06-10 2018-12-25 Affirmed Networks, Inc. Transcoding using time stamps
US10432686B1 (en) * 2016-06-13 2019-10-01 Amazon Technologies, Inc. Streaming media file management
KR102059781B1 (ko) 2016-10-21 2019-12-26 어펌드 네트웍스, 인크. 적응형 콘텐트 최적화
US10509766B2 (en) * 2016-11-07 2019-12-17 International Business Machines Corporation Storing and retrieving restricted datasets to and from a cloud network with non-restricted datasets
CN110351492B (zh) * 2018-04-06 2021-11-19 中兴通讯股份有限公司 一种视频数据处理方法、装置及介质
CN108683901B (zh) * 2018-05-10 2020-11-03 Oppo广东移动通信有限公司 一种数据处理方法、mec服务器及计算机可读存储介质
CA3146035A1 (en) 2019-08-12 2021-02-18 Audio Visual Preservation Solutions, Inc. Source identifying forensics system, device, and method for multimedia files

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006238003A (ja) * 2005-02-24 2006-09-07 Matsushita Electric Ind Co Ltd 逆多重化装置
JP2010539834A (ja) * 2007-09-19 2010-12-16 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン メディアデータコンテナとメタデータコンテナとを有するファイルを格納し読み取るための装置及び方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763392B1 (en) 2000-09-29 2004-07-13 Microsoft Corporation Media streaming methods and arrangements
US7076392B1 (en) 2000-10-06 2006-07-11 Arm Limited Test bit-stream generator and method for decoders
US6957343B2 (en) * 2001-03-30 2005-10-18 Intel Corporation Validating keying material by using a validation area of read-only media to prevent playback of unauthorized copies of content stored on the media
US6946715B2 (en) * 2003-02-19 2005-09-20 Micron Technology, Inc. CMOS image sensor and method of fabrication
US7827116B2 (en) * 2002-08-20 2010-11-02 Piccionelli Gregory A Methods of producing and transmitting content based on compliance
TW591952B (en) 2003-03-14 2004-06-11 Cyberlink Corp Intelligent video stream processing method and system thereof
US20040243882A1 (en) * 2003-05-27 2004-12-02 Sun Microsystems, Inc. System and method for fault injection and monitoring
US20060126725A1 (en) 2004-12-10 2006-06-15 Weimin Zeng Automated test vector generation for complicated video system verification
US20070047411A1 (en) * 2005-08-30 2007-03-01 Manuel Rivera Method and system for verifying media compliance
US20070168591A1 (en) 2005-12-08 2007-07-19 Inter-Tel, Inc. System and method for validating codec software
JP2007179435A (ja) * 2005-12-28 2007-07-12 Sony Corp 情報処理装置、情報処理方法、プログラム
US20080071617A1 (en) * 2006-06-29 2008-03-20 Lance Ware Apparatus and methods for validating media
CN101578884B (zh) * 2007-01-08 2015-03-04 诺基亚公司 提供和使用译码的媒体流的互操作点的预定信令的系统和方法
US8001486B2 (en) * 2007-05-29 2011-08-16 Interra Systems, Inc Method for verification of file-based media content
FR2923923B1 (fr) * 2007-11-19 2009-12-04 St Microelectronics Sa Verification de donnees lues en memoire
US8073668B2 (en) * 2008-01-30 2011-12-06 International Business Machines Corporation Method and apparatus for testing a full system integrated circuit design by statistical fault injection using hardware-based simulation
US8296739B2 (en) * 2008-03-31 2012-10-23 International Business Machines Corporation Testing soft error rate of an application program
US8793498B2 (en) * 2008-08-11 2014-07-29 Nbcuniversal Media, Llc System and method for forensic analysis of media works
US9049477B2 (en) * 2008-11-13 2015-06-02 At&T Intellectual Property I, Lp Apparatus and method for managing media content
US9253496B2 (en) 2008-12-12 2016-02-02 Qualcomm Incorporated Intelligent decoded picture buffering
US8843787B1 (en) * 2009-12-16 2014-09-23 Kip Cr P1 Lp System and method for archive verification according to policies
US9215471B2 (en) 2010-11-12 2015-12-15 Microsoft Technology Licensing, Llc Bitstream manipulation and verification of encoded digital media data
US20120275511A1 (en) * 2011-04-29 2012-11-01 Google Inc. System and method for providing content aware video adaptation
US8930794B2 (en) * 2012-05-30 2015-01-06 Lsi Corporation Error injection for LDPC retry validation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006238003A (ja) * 2005-02-24 2006-09-07 Matsushita Electric Ind Co Ltd 逆多重化装置
JP2010539834A (ja) * 2007-09-19 2010-12-16 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン メディアデータコンテナとメタデータコンテナとを有するファイルを格納し読み取るための装置及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MPEG TEST SYSTEMS MTS4SA DATA SHEET, JPN7017002915, 2 October 2011 (2011-10-02), US, pages 1 - 16, ISSN: 0003804113 *

Also Published As

Publication number Publication date
WO2014163663A1 (en) 2014-10-09
KR102122628B1 (ko) 2020-06-12
EP2981964A1 (en) 2016-02-10
CN105122370A (zh) 2015-12-02
US9262419B2 (en) 2016-02-16
CN105122370B (zh) 2018-03-30
KR20150139595A (ko) 2015-12-11
US20140304303A1 (en) 2014-10-09
JP6475228B2 (ja) 2019-02-27

Similar Documents

Publication Publication Date Title
JP6475228B2 (ja) コンテナフォーマットでのメディアファイルの構文を意識した操作
US10798145B1 (en) Analyzing data streams
KR20170065568A (ko) 샘플 메타데이터와 미디어 샘플들의 결합
US9924164B2 (en) Efficient re-transcoding of key-frame-aligned unencrypted assets
US20170078705A1 (en) Verification of error recovery with long term reference pictures for video coding
US11838602B2 (en) MPD chaining in a live CMAF/DASH player using W3C media source and encrypted extensions
US11973820B2 (en) Method and apparatus for mpeg dash to support preroll and midroll content during media playback
US11799943B2 (en) Method and apparatus for supporting preroll and midroll during media streaming and playback
US11588870B2 (en) W3C media extensions for processing DASH and CMAF inband events along with media using process@append and process@play mode
US20230224557A1 (en) Auxiliary mpds for mpeg dash to support prerolls, midrolls and endrolls with stacking properties
CN109495793B (zh) 一种弹幕写入方法、装置、设备及介质
US11882170B2 (en) Extended W3C media extensions for processing dash and CMAF inband events
US20240129537A1 (en) Method and apparatus for signaling cmaf switching sets in isobmff

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160812

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180821

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190131

R150 Certificate of patent or registration of utility model

Ref document number: 6475228

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250