JP2015109131A - ファイル生成方法、再生方法、ファイル生成装置、再生装置および記録媒体 - Google Patents

ファイル生成方法、再生方法、ファイル生成装置、再生装置および記録媒体 Download PDF

Info

Publication number
JP2015109131A
JP2015109131A JP2014235068A JP2014235068A JP2015109131A JP 2015109131 A JP2015109131 A JP 2015109131A JP 2014235068 A JP2014235068 A JP 2014235068A JP 2014235068 A JP2014235068 A JP 2014235068A JP 2015109131 A JP2015109131 A JP 2015109131A
Authority
JP
Japan
Prior art keywords
file
data
information
unit
streams
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
Application number
JP2014235068A
Other languages
English (en)
Inventor
遠間 正真
Tadamasa Toma
正真 遠間
智輝 小川
Tomoteru Ogawa
智輝 小川
洋 矢羽田
Hiroshi Yabaneta
洋 矢羽田
山本 雅哉
Masaya Yamamoto
雅哉 山本
村瀬 薫
Kaoru Murase
薫 村瀬
小塚 雅之
Masayuki Kozuka
雅之 小塚
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.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
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 Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to PCT/JP2014/005963 priority Critical patent/WO2015083354A1/ja
Publication of JP2015109131A publication Critical patent/JP2015109131A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】オーバーラップの再生に適したMP4ファイルを生成することができるファイル生成方法を提供する。【解決手段】このファイル生成方法は、MP4ファイルを生成するファイル生成方法であって、2つのストリームが連続して再生されるようにその2つのストリームを統合することによって1つのMP4ファイルを生成するステップS21と、その2つのストリームのそれぞれにおいて再生のタイミングがオーバーラップする区間を示す情報を、生成されたMP4ファイルに格納するステップS22とを含む。【選択図】図22C

Description

本発明は、MP4ファイルを生成するファイル生成方法などに関する。
従来の光ディスクで利用されているファイルフォーマットは、ISO/IEC 138181−1で規定されるMPEG2−TS(MPEG−2 Transport Stream)方式である。以下、MPEG2−TS方式を単にMPEG2−TSと称する。つまり、映像ストリーム、音声ストリーム、および字幕ストリームをMPEG2−TSのファイルフォーマットで多重化することによって構成されるファイルが、光ディスクに記録されている。具体的には、MPEG2−TSでは、映像ストリーム、音声ストリーム、および字幕ストリームなどは、それぞれ188Bytesの複数のTSパケットに分割された上で多重化され、光ディスクに記録される。このMPEG2−TSは、前からシーケンシャルに読み込まれて処理されるデータを伝送または記録する、放送または光ディスクのようなメディアに対して最適化されている。したがって、比較的バッファ容量の少ない民生機でも、効率的にストリームを読み込んで復号して再生することが可能である。
これに対して、昨今のネットワークでのコンテンツ配信において利用されつつあるファイルフォーマットは、ISO/IEC 14496−12で規定されるMP4方式である。以下、MP4方式を単にMP4と称する。MP4は、HDD(Hard Disk Drive)やフラッシュメモリのようなランダムアクセス可能なメディアへの適用を前提に、極めて柔軟なデータ構造を採用している。このMP4の一般的な利用形態では、映像ストリーム、音声ストリーム、および字幕ストリームなどのストリームが、数秒程度のフラグメントという単位に分割され、これらのフラグメントが順次並べられることによって、一つのファイルが構成される。
今後、普及が見込まれる4Kなどの高品質なコンテンツを配布するためのメディアとしては、ビット単価の問題からまだまだ光ディスクを活用することが多いと考えられている。一方、スマートフォンまたはタブレットは、光ディスクドライブを持たないが、その携帯性の高さ、または昨今の大画面化および高精細化を活かして、ネットワークでのコンテンツ配信の受信および再生用の端末として利用されている。このため、スマートフォンまたはタブレットでは、MP4に対応する機能および処理が多く、MPEG2−TSへの適用はあまり進んでいない。
したがって、光ディスクで配布されたMPEG2−TSのファイルであるコンテンツをスマートフォンまたはタブレットにコピーする際には、そのコンテンツのファイルフォーマットをMP4に変換することがある(例えば、特許文献1参照)。このような変換によって、MP4のファイルであるMP4ファイルが生成される。
特開2012−175608号公報
しかしながら、上記特許文献1のファイル生成方法では、オーバーラップの再生に適したMP4ファイルを生成することができないという問題がある。
そこで、本発明は、オーバーラップの再生に適したMP4ファイルを生成可能なファイル生成方法を提供する。
本発明の一態様に係るファイル生成方法は、MP4ファイルを生成するファイル生成方法であって、2つのストリームが連続して再生されるように前記2つのストリームを統合することによって1つのMP4ファイルを生成し、前記2つのストリームのそれぞれにおいて再生のタイミングがオーバーラップする区間を示す情報を、生成された前記MP4ファイルに格納する。
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
本発明のファイル生成方法は、オーバーラップの再生に適したMP4ファイルを生成することができる。
図1は、光ディスクに格納されているMPEG2−TSのコンテンツの構造の一例を模式的に示す図である。 図2は、Aligned Unitの復号方法を説明するための図である。 図3は、平文の状態のAligned Unitの内部構造を示す図である。 図4は、複数のTS Payloadから実際のElementary Streamを作成する方法を示す図である。 図5は、実施の形態1におけるファイル生成装置の構成を示すブロック図である。 図6は、実施の形態1における、MPEG2−TSのストリームファイル、差分ファイルおよびコピーマニフェストファイルから、MP4のストリームファイルを生成する方法を説明するための図である。 図7は、実施の形態1における、差分ファイルおよびコピーマニフェストファイルを生成する方法を説明するための図である。 図8は、実施の形態1におけるファイル生成方法のフローチャートである。 図9は、実施の形態1の変形例1におけるファイル生成方法を説明するための図である。 図10Aは、実施の形態1の変形例1における、AES−CTRモードによるデータの暗号化を説明するための図である。 図10Bは、実施の形態1の変形例1における、AES−CTRモードによるデータの復号を説明するための図である。 図11は、実施の形態1の変形例2における、トランスポートストリームに格納されるMPEG−4 AACのアクセスユニットをMP4ファイルに格納する例を示す図である。 図12は、実施の形態1の変形例2における、トランスポートストリームに格納されるMPEG−4 AVCのアクセスユニットをMP4に格納する例を示す図である。 図13Aは、実施の形態1の変形例2における、LATMヘッダとLATMペイロードとのTSパケットへの格納例を示す図である。 図13Bは、実施の形態1の変形例2におけるAU_infoテーブルのシンタックスの一例を示す図である。 図13Cは、実施の形態1の変形例2におけるAU_infoテーブルのシンタックスの他の例を示す図である。 図14は、実施の形態1の変形例2におけるファイル生成装置の構成を示すブロック図である。 図15Aは、実施の形態1の変形例2における、NALユニットの概略構造を示す図である。 図15Bは、実施の形態1の変形例2における、MPEG2−TSにおけるNALユニットの格納フォーマットの例を示す図である。 図15Cは、実施の形態1の変形例2における、MP4におけるNALユニットの格納フォーマットの例を示す図である。 図16Aは、実施の形態1の変形例2におけるトランスポートストリームにおけるアクセスユニットの構成例を示す図である。 図16Bは、実施の形態1の変形例2における、サイズ情報NALユニットに含まれるサイズ情報のシンタックスの一例を示す図である。 図16Cは、実施の形態1の変形例2における、サイズ情報NALユニットに含まれるサイズ情報のシンタックスの他の例を示す図である。 図17は、実施の形態1の変形例2におけるファイル生成装置がMP4ファイルを生成する処理動作を示すフローチャートである。 図18は、実施の形態1の変形例3における、モード2を使用した場合のアドレス指定の具体例を示す図である。 図19は、実施の形態1の変形例3における、コピーサイズの上限値を超える連続領域を読み出す例を示す図である。 図20は、実施の形態1の変形例3における、エレメンタリーストリームからデータをコピーしてMP4ファイルを生成する処理を説明するための図である。 図21は、実施の形態2における、連続して再生される2つのMP4ファイルのオーディオとビデオの再生区間の例を示す図である。 図22Aは、実施の形態2における、再生区間を統合して1つのMP4ファイルを生成する方法を説明するための図である。 図22Bは、実施の形態2におけるファイル生成装置のブロック図である。 図22Cは、実施の形態2におけるファイル生成方法のフローチャートである。 図22Dは、実施の形態2における再生装置のブロック図である。 図22Eは、実施の形態2における再生方法のフローチャートである。 図23Aは、実施の形態3における、光ディスクに格納されたコンテンツからMP4ファイルを生成する場合のメニュー画面の一例を示す図である。 図23Bは、実施の形態3における、光ディスクおよびネットワークを利用したMP4ファイルの生成方法を説明するための図である。 図24は、実施の形態3における、NALユニットのサイズ、PTSおよびDTSを示すコピーマニフェストの一例を示す図である。 図25は、実施の形態3における、MP4ファイルの末尾に格納されている字幕データの一例を示す図である。 図26は、実施の形態3における、2Kの解像度の字幕を4Kにスケーリングして表示するケースを示す図である。
(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した上記特許文献1のファイル生成方法に関し、以下の問題が生じることを見出した。
上記特許文献1のファイル生成方法では、MPEG2−TSで多重化されたコンテンツを、一度、映像ストリーム、音声ストリーム、または字幕ストリームなどの各ストリームに戻した上で、そのコンテンツのファイルフォーマットをMP4に変換する必要がある。また、一般的に、光ディスクで配布される商用コンテンツは暗号化されている。したがって、変換の際には、一旦、暗号を解いてからファイルフォーマットを変換し、その後に、再度暗号化を行う必要がある。以下、MPEG2−TSのコンテンツの構造などについて詳細に説明する。
図1は、光ディスクに格納されているMPEG2−TSのコンテンツの構造の一例を模式的に示す図である。光ディスクには、コンテンツとしてStream Fileが格納される。図1に示す例では、光ディスクにはStream Fileが1つしか格納されていないが、複数格納されていてもよい。またここでは、Stream FileはXXXXX.M2TSというファイル名で記録されている。XXXXXには、番号が記載される。複数のコンテンツが格納される場合には、この番号によって、それらのコンテンツを個別に管理することが可能である。
Stream Fileは、それぞれ6144BytesのAligned Unitと呼ばれる複数の単位に区分される。Aligned Unitは暗号化の単位である。なお、Stream Fileのデータ量は、必ずしも6144Bytesの倍数にならない可能性がある。6144Bytesの倍数にならない場合には、コンテンツの末尾にNULL Dataを格納する等の方法によって、Stream Fileのデータ量を6144Bytesの倍数にすることが望ましい。
図2は、Aligned Unitの復号方法を説明するための図である。
光ディスク上のコンテンツは、データであるユニット鍵Kuを用いて暗号化されている。暗号化の際には、Aligned Unitに含まれる6144Bytesのデータは、先頭の16Bytesのデータと、残る6128Bytesのデータとに分離され、その残りの6128Bytesのデータが暗号化される。
Aligned Unitの復号の際には、AES_Eは、まず、先頭の16Bytesのデータに対して、ユニット鍵Kuを用いたAES(Advanced Encryption Standard)暗号方式の暗号化を行う。次に、この暗号化によって得られたデータと、先頭の16Bytesのデータとの排他的論理和の演算が行われる。AES_DCBCは、この排他的論理和の演算の結果を鍵として利用し、残る6128BytesのデータをAES−CBC(Cipher Block Chaining)モードで復号する。この復号によって得られる平文のデータに、先頭の16Bytesのデータが付け加えられる。その結果、Aligned Unitに対応する6144Bytesの平文が得られる。
図3は、平文の状態のAligned Unitの内部構造を示す図である。
Aligned Unitは、それぞれ192Bytesの32個のSource Packetから構成される。各Source Packetは、4BytesのヘッダであるTP_extra_headerと、TSパケットである188BytesのTransport Packetとから構成される。さらに188BytesのTransport Packetは、4BytesのTS Headerと、184BytesのTS Payloadとから構成される。TS Headerには、TS Payloadの属性を示す情報が記載されている。具体的には、TS Headerは、sync_byte(8bits)、transport_error_indicator(1bit)、payload_unit_start_indicator(1bit)、transport_priority(1bit)、PID(13bits)、transport_scrambling_control(2bits)、adaptation_field_control(2bits)、およびcontinuity_counter(4bits)から構成される。ここで、PIDは、TS Payload内に格納されるエレメンタリーストリームの種別、例えばビデオまたは音声などを識別するための情報である。また、音声が複数種類ある場合でも、このPIDによって、エレメンタリーストリームの音声の種類を識別することができる。
図4は、複数のTS Payloadから実際のElementary Streamを作成する方法を示す図である。同じPIDが割り当てられた複数のTS Payloadをつなぎ合わせることによって、PES_HeaderとElementary Streamが構成される。ここで、複数のTS Payloadのうちの最初のTS Payloadは、PES_Headerを含むように構成されている。なお、PES_HeaderとElementary Streamの少なくとも一部とからPES(Packetized Elementary Stream)またはPESパケットが構成される。
以上のように、MPEG2−TSのファイル(Stream File)は、Aligned Unitごとに暗号化されている。したがって、そのファイルをMP4のファイルに変換するためには、上述のような復号が行われ、さらに再暗号化が行われる。スマートフォンまたはタブレットなどの変換機器では、この復号および暗号化に時間がかかるという問題がある。さらに、一旦、平文のコンテンツを作成することとなるため、セキュリティ上の問題もある。
このような問題を解決するために、本発明の一態様に係るファイル生成方法は、MP4ファイルを生成するファイル生成方法であって、MP4と異なるファイルフォーマットで構成されている元ファイルを取得し、前記元ファイルに含まれていないデータを含む差分ファイルを取得し、前記MP4ファイルを生成するための手順を示す手順ファイルを取得し、前記手順ファイルに示される手順にしたがって、前記差分ファイルに含まれるデータと、前記元ファイルに含まれるデータとを組み合わせることによって、前記MP4ファイルを生成する。例えば、前記元ファイルの取得では、MPEG2−TSのファイルフォーマットで構成されている前記元ファイルを取得する。
これにより、予め定められた手順にしたがって、差分ファイルに含まれるデータと、元ファイルに含まれるデータとを組み合わせることによってMP4ファイルが生成される。したがって、MPEG2−TSなどのファイルフォーマットによって構成される元ファイルを、映像ストリームまたは音声ストリームなどの各ストリームに戻すことなく、MP4ファイルを簡単に生成することができる。また、元ファイルが暗号化されていてもそれを復号して再暗号化する必要がない。したがって、MP4ファイルを生成するための処理負荷を抑えることができる。
また、前記元ファイル、前記差分ファイルおよび前記手順ファイルの取得では、光ディスクから前記元ファイル、前記差分ファイルおよび前記手順ファイルを読み出すことによって取得してもよい。
これにより、MP4ファイルの生成に必要となる全てのファイルが1つの光ディスクから取得されるため、それらのファイルを探す手間を省くことができ、MP4ファイルをより簡単に生成することができる。
また、前記手順ファイルには、前記差分ファイルに含まれる部分の範囲と、前記元ファイルに含まれる部分の範囲とが交互に配列されるように、前記差分ファイルに含まれる複数の部分のそれぞれの範囲と、前記元ファイルに含まれる複数の部分のそれぞれの範囲とが記述され、前記MP4ファイルの生成では、前記手順ファイルに記述されている各範囲の順に、前記各範囲によって示される部分を組み合わせることによって、前記MP4ファイルを生成してもよい。
これにより、MP4ファイルに含まれる各部分をそのMP4ファイルの先頭側から順に生成することができ、後戻りすることがないため、MP4ファイルをより簡単に生成することができる。
また、前記差分ファイルに含まれる複数の部分のそれぞれの範囲は、データサイズによって前記手順ファイルに記述され、前記元ファイルに含まれる複数の部分のそれぞれの範囲は、当該部分の開始位置とデータサイズとによって前記手順ファイルに記述されていてもよい。
これにより、手順ファイルの記述に基づいて、差分ファイルおよび元ファイルから適切な部分をコピーまたは取得して組み合わせることができる。また、差分ファイルに含まれる部分の範囲の記述に開始位置が用いられないため、手順ファイルのデータサイズを抑えることができる。
また、前記手順ファイルには前記MP4ファイルのデータサイズが記述されてあり、前記ファイル生成方法は、さらに、前記手順ファイルに記述されている前記MP4ファイルのデータサイズに基づいて、前記MP4ファイルを記録するだけの空き容量がメディアにあるか否かを判定してもよい。
これにより、メディアにMP4ファイルを記録するだけの空き容量があるか否かが判定されるため、空き容量がない場合には、そのMP4ファイルの生成を事前に中止するなどの処理を行うことができる。つまり、エラーの発生を未然に防ぐことができる。
また、前記手順ファイルには前記MP4ファイルの属性が記述されてあり、前記ファイル生成方法は、さらに、前記手順ファイルに記述されている前記属性を読み出してもよい。
これにより、MP4ファイルの生成前にMP4ファイルの属性を手順ファイルから読み出せば、所望のMP4ファイルが生成されるか否かを事前に判断することができる。
また、前記手順ファイルには前記MP4ファイルの再生に必要なバッファサイズが記述されてあり、前記ファイル生成方法は、さらに、前記手順ファイルに記述されている前記バッファサイズを読み出してもよい。
これにより、MP4ファイルの再生に必要なバッファサイズを手順ファイルから読み出せば、MP4ファイルを解析することなく、そのMP4ファイルが再生可能か否かを簡単に判断することができる。
また、前記手順ファイルには、前記元ファイルの名称である第1のファイル名と前記差分ファイルの名称である第2のファイル名とが記述されてあり、前記ファイル生成方法は、さらに、前記手順ファイルに記述されている第1のファイル名のファイルを前記元ファイルとして特定し、前記手順ファイルに記述されている第2のファイル名のファイルを前記差分ファイルとして特定してもよい。
これにより、MP4ファイルの生成に用いられる元ファイルおよび差分ファイルを適切に取得することができる。
また、前記MP4ファイルの生成では、前記差分ファイルに含まれるデータであるMP4に対応するヘッダ情報を、前記元ファイルに含まれるデータと組み合わせてもよい。
これにより、MP4の適切なヘッダ情報を有するMP4ファイルを簡単に生成することができる。
また、前記元ファイルの取得では、平文の状態の前記元ファイルを取得し、前記MP4ファイルの生成では、生成された前記MP4ファイルを暗号化してもよい。
これにより、MP4への変換後に元ファイルを削除しておけば、その元ファイルに含まれていたデータをMP4ファイルとして残しておきながら、そのデータの秘匿性を確保することができる。
また、前記MP4ファイルの生成では、前記元ファイルを構成する部分が取得されるごとに、当該部分に対応する前記MP4ファイルの部分を生成して暗号化し、前記MP4ファイルを構成する部分が暗号化されるごとに、当該部分に対応する前記元ファイルの部分を削除してもよい。
これにより、平文の元ファイルに含まれる全てのデータが一時的にも記憶領域に格納されることを防ぐことができ、そのデータの秘匿性をより確実に確保することができる。
さらに、上記特許文献1のファイル生成方法では、2つのストリームを連続して再生することが考慮されていない。さらに、その2つのストリームのそれぞれの一部の再生のタイミングをオーバーラップさせことも考慮されていない。したがって、オーバーラップの再生に適したMP4ファイルを生成することができない。
このような問題を解決するために、本発明の一態様に係るファイル生成方法は、MP4ファイルを生成するファイル生成方法であって、2つのストリームが連続して再生されるように前記2つのストリームを統合することによって1つのMP4ファイルを生成し、前記2つのストリームのそれぞれにおいて再生のタイミングがオーバーラップする区間を示す情報を、生成された前記MP4ファイルに格納する。例えば、前記2つのストリームの統合では、それぞれMP4のファイルフォーマットで構成されている元ファイルの少なくとも一部である前記2つのストリームを統合する。また、例えば、前記2つのストリームの統合では、それぞれオーディオのデータを含む前記2つのストリームを統合する。
これにより、MP4ファイルには、オーバーラップの区間を示す情報が格納されている。したがって、そのMP4ファイルを再生する再生装置は、その情報を用いて、MP4ファイルから、オーバーラップの区間のデータを容易に特定することができる。その結果、再生装置は、そのオーバーラップの区間のデータを合成するなどによってそのデータを適切に再生することができる。つまり、オーバーラップの再生に適したMP4ファイルを生成することができる。
また、前記2つのストリームの統合では、前記2つのストリームのうちの何れか一方のストリームに含まれる複数のサンプルにわたって前記区間が存在する場合、前記複数のサンプルのうちの少なくとも1つを削除した後に、前記2つのストリームを統合してもよい。
これにより、サンプルが削除されるため、オーバーラップの区間を短くすることができる。その結果、オーバーラップの区間に対する再生装置による特別な処理の負担を軽減することができる。
また、前記情報の格納では、前記区間の時間長を示す時間情報を前記情報として前記MP4ファイルに格納してもよい。
これにより、MP4ファイルを再生する再生装置は、その情報を用いて、オーバーラップの区間の時間長を容易に特定することができる。その結果、再生装置は、そのオーバーラップの区間のデータを合成するなどによって、特定された時間長内でそのデータを適切に再生することができる。
また、前記情報の格納では、前記MP4ファイルにおけるmoof内のtrafに前記時間情報を格納してもよい。
これにより、再生装置は、格納されている時間情報を適切に取得することができる。
また、前記ファイル生成方法では、前記情報を保持している装置または光ディスクから前記情報を取得してもよい。
これにより、わざわざオーバーラップの区間を示す情報を生成することなく、MP4ファイルにその情報を簡単に格納することができる。
また、本発明の一態様に係る再生方法は、MP4ファイルを再生する再生方法であって、再生対象のコンテンツにおいて再生のタイミングがオーバーラップする2つの区間を示す情報を前記MP4ファイルから抽出し、抽出された前記情報に基づいて前記コンテンツにおける前記2つの区間を特定し、当該2つの区間のそれぞれのデータに対する復号結果を合成して出力する。
これにより、再生装置は、MP4ファイルから、オーバーラップの区間のデータを容易に特定することができる。その結果、再生装置は、そのオーバーラップの区間のデータを適切に再生することができる。
また、本発明の一態様に係る記録媒体は、MP4ファイルを記録している記録媒体であって、前記MP4ファイルは、コンピュータに読み出されて再生されるコンテンツと、前記コンテンツにおいて再生のタイミングがオーバーラップする2つの区間を示す情報とを含む。
これにより、記録媒体からそのMP4ファイルを読み出して再生する再生装置は、その情報を用いて、MP4ファイルから上述の2つの区間のデータを容易に特定することができる。その結果、再生装置は、それらの区間のデータを合成するなどによってそのデータを適切に再生することができる。
以下、実施の形態について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
図5は、本実施の形態におけるファイル生成装置の構成を示すブロック図である。
本実施の形態におけるファイル生成装置10は、MP4ファイルを生成する装置であって、元ファイル取得部11と、差分ファイル取得部12と、手順ファイル取得部13と、生成部14とを備える。元ファイル取得部11は、MP4と異なるファイルフォーマットで構成されている元ファイルを取得する。差分ファイル取得部12は、その元ファイルに含まれていないデータを含む差分ファイルを取得する。手順ファイル取得部13は、MP4ファイルを生成するための手順を示す手順ファイルを取得する。生成部14は、その手順ファイルに示される手順にしたがって、差分ファイルに含まれるデータと、元ファイルに含まれるデータとを組み合わせることによって、MP4ファイルを生成する。言い換えれば、生成部14は、元ファイルをMP4ファイルに変換する。
以下、このファイル生成装置10による処理動作について詳細に説明する。
図6は、MPEG2−TSのストリームファイル、差分ファイルおよびコピーマニフェストファイルから、MP4のストリームファイルを生成する方法を説明するための図である。
本実施の形態では、例えば、光ディスク(例えばBlu−ray(登録商標)ディスク)に、上述の元ファイルであるストリームファイルA(XXXXX.M2TS)と、上述の手順ファイルであるコピーマニフェストファイル(XXXXX.CMNF)と、上述の差分ファイル(XXXXX.DMP4)とが記録されている。コピーマニフェストファイル(XXXXX.CMNF)には、この元ファイルをどのように処理してMP4ファイルに変換するのかの変換手順が記述されている。差分ファイル(XXXXX.DMP4)は、MP4ファイルへ変換するために必要となるデータを格納している。
生成部14は、MPEG2−TSのストリームファイルA(XXXXX.M2TS)を変換する際には、コピーマニフェストファイル(XXXXX.CMNF)の記述に従って、ストリームファイルA(XXXXX.M2TS)のデータと差分ファイル(XXXXX.DMP4)のデータとを交互に組み合わせることにより、MP4ファイルであるストリームファイルB(XXXXX.MP4)を生成する。言い換えれば、生成部14は、ストリームファイルA(XXXXX.M2TS)をストリームファイルB(XXXXX.MP4)に変換する。
これにより、元ファイルを音声または映像のエレメンタリーストリーム(例えば、HE−AACまたはMPEG−4 AVCのストリーム)に復元することなく、その変換を行うことができる。また、元ファイルが暗号化されていれば、その暗号化も解くことなく、元ファイルからMP4ファイルへの変換が簡単にできる。
このコピーマニフェストファイル(XXXXX.CMNF)は、“Input File A”、“Input File B”、“Output File”、“Output File Size”、“ATTRIBUTE”、“MP4 DECODER BUFFER SIZE”、および“COPY MANIFEST”を含む。“Input File A”および“Input File B”は、入力される2つのファイルのファイル名を示す。“Input File A”によって示されるファイルの先頭部分のコピーから変換処理が始められる。“Output File”は、出力されるファイル、つまり生成されるMP4ファイルのファイル名を示す。“Output File Size”は、その出力されるMP4ファイルのデータサイズを示す。このデータサイズは、バイト精度で記述されている。このデータサイズを確認することで、出力されるMP4ファイルが記録されるメディアに、十分な空き容量があるか否かを変換処理の前に確認することができる。“ATTRIBUTE”は、各ファイルの属性を示し、具体的には、どのようなエレメンタリーストリームが変換されてどのようなファイルが生成されるのかを示す。図6に示す例では、“ATTRIBUTE”は、変換後のMP4ファイルが、HEVC(High Efficiency Video Coding)で圧縮された4K映像と、AAC(Advanced Audio Coding)の5.1ch英語音声とを含んでいることを示す。これによって、変換処理の前に、このコピーマニフェストファイルに従って変換した際に得られる変換後のファイルがどのようなファイルかを事前に確認することができる。また、“ATTRIBUTE”は、MP4ファイルのデータ構造などを示してもよく、MP4ファイルの“ftyp”に格納されるMP4のブランド(つまり種類)を示してもよい。
また、“MP4 DECODER BUFFER SIZE”は、出力されるMP4ファイルである変換後のストリームファイルB(XXXXX.MP4)を再生するために、最低必要となるバッファサイズを示す。このバッファサイズは、変換後のストリームファイルBであるMP4ファイルにおいて、どのような多重化規則で映像と音声などが多重化されているかに依存する量である。“MP4 DECODER BUFFER SIZE”は、バッファサイズ以外にも、変換後のストリームファイルBを再生するために、どのようなデコーダリソース(メモリ量やデータ転送速度)が必要かを示してもよい。
“COPY MANIFEST”は、“Input File A”によって示されるファイルの各部分の範囲と、“Input File B”によって示されるファイルの各部分の範囲とを示す。これの各部分は、“Output File”によって示されるMP4ファイルを生成するために順次コピーして貼り付けられる部分である。また、それぞれの部分の範囲は、コピー開始位置とコピーサイズとによって、またはコピーサイズのみによって示される。また、“COPY MANIFEST”は、“Input File A”によって示されるファイルの部分と、“Input File B”によって示されるファイルの部分とが交互に繰り返しコピーおよび貼り付けられるように、それらのファイルの各部分の範囲を示す。
差分ファイル(XXXXX.DMP4)は、その差分ファイルの先頭から、指定のサイズの部分ごとに、コピーされて貼り付けられる。したがって、“COPY MANIFEST”では、差分ファイル(XXXXX.DMP4)の各部分を示すために、コピー開始位置を指定する必要がない。つまり、コピー開始位置を用いずに、コピーサイズ(データサイズ)のみによって、差分ファイルの各部分の範囲が示される。
一方、ストリームファイルA(XXXXX.M2TS)は、変換後のストリームファイルB(XXXXX.MP4)に必要のないデータを含む。したがって、“COPY MANIFEST”では、元ファイルであるストリームファイルAの各部分を示すために、コピー開始位置およびコピーサイズによって、その各部分の範囲が示される。コピー開始位置は、ファイルの先頭からのバイト位置であり、コピーサイズはバイト単位のデータサイズである。
生成部14は、コピーマニフェストファイルにしたがって、“COPY MANIFEST”によって示される、元ファイルに含まれる部分と、差分ファイルに含まれる部分とを、交互にコピーして貼り付けることを繰り返す。つまり、生成部14は、“COPY MANIFEST”によって示される、元ファイルに含まれる部分と、差分ファイルに含まれる部分とを、交互に組み合わせることを繰り返す。これにより、変換後のストリームファイルBであるMP4ファイルが生成される。
したがって、コピーマニフェストファイルにしたがえば、どのような機器で元ファイルを変換したとしても、同一の変換後のストリームファイルB(XXXXX.MP4)を生成することが可能となる。つまり、変換後のストリームファイルBを、どのような機器においても不具合無く再生することが容易となる。
なお、ファイル生成装置10は、差分ファイル(XXXXX.DMP4)とコピーマニフェストファイル(XXXXX.CMNF)を、Blu−rayディスクなどの光ディスクから取得してもよく、これらの両方もしくは片方のファイルをインターネット経由で取得してもよい。この場合は、元ファイルを、最新のファイルフォーマットのファイル、または別の映像および音声を含むMP4ファイルなどへ変換するなどの様々な選択をユーザーに提示することが、ファイル生成装置10に特段の変更を要することなく可能となる。
また、ファイル生成装置10は、元ファイルであるストリームファイルAが暗号化されたままの状態で変換を行ってもよく、元ファイルの暗号を解いた後に、MP4ファイルへの変換を行い、生成されたMP4ファイルを再び暗号化してもよい。また、元ファイルであるファイルストリーム(XXXXX.M2TS)は平文であってもよい。なお、差分ファイルは、ヘッダ情報から構成されるため、差分ファイルの暗号化は不要である。ただし、元ファイルであるストリームファイルA(XXXXX.M2TS)、あるいは、MP4ファイルであるストリームファイルB(XXXXX.MP4)が平文である場合に、ファイル全体をメモリに展開する、あるいは、ハードディスクに一旦保存するなどの動作は、セキュリティ面から許容されないことがある。
したがって、ファイル生成装置10は、平文の元ファイルであるストリームファイルA(XXXXX.M2TS)のうち、MP4ファイルへの変換が終了した領域から順に、その領域を削除してもよい。また、ファイル生成装置10は、MP4ファイルであるストリームファイルB(XXXXXX.MP4)を暗号化するときには、そのMP4ファイルに含まれる“Movie fragment”、あるいは、所定の数のMP4サンプルなどの部分が生成される度に、その生成された部分を順に暗号化してもよい。なお、暗号化の前後でデータサイズが変化しないような暗号化方式を用いれば、暗号化の有無に関わらず、コピーされるデータの領域は変化しない。
また、コピーマニフェストファイルは、元ファイルであるストリームファイルA(XXXXX.M2TS)が暗号化されているかどうかを示してもよい。あるいは、コピーマニフェストファイルは、そのストリームファイルAに多重化された符号化データを暗号化されたまま変換するのか、その暗号化された符号化データを平文にしてからMP4ファイルに変換した後に再び暗号化するのかなどを示してもよい。
図7は、差分ファイルおよびコピーマニフェストファイルを生成する方法を説明するための図である。
差分ファイル(XXXXX.DMP4)とコピーマニフェストファイル(XXXXX.CMNF)は次のようにして生成することが可能である。オーサリングの段階で、元ファイルであるストリームファイルA(XXXXX.M2TS)をフォーマット変換することにより、MP4ファイルである変換後のストリームファイルB(XXXXX.MP4)を生成する。次に、元ファイルであるストリームファイルAと、ストリームファイルBとのそれぞれの間で、互いに一致するデータを含む少なくとも1つの部分を検索する。このとき、それぞれの部分のデータサイズが最も大きくなるように検索する。次に、ストリームファイルBに含まれる、上述のように検索された部分以外の残りの部分のそれぞれを、ストリームファイルBに含まれている順番にしたがって連結することにより、差分ファイルを生成する。このときの、各ファイルの相関関係結果を、“COPY MANIFEST”としてコピーマニフェストファイルに記録する。
なお、上述の検索は、ストリームファイルAとストリームファイルBとのそれぞれに含まれるデータを、それぞれのファイルの先頭から後方へ向かう方向に順次取得し、それらのデータを比較することによって行われる。そして、その比較は、上述の方向と逆方向に戻ることなく行われる。これにより、上述の変換処理(コピー処理)を、シーケンシャルに、つまり1つの連続した処理によって行うことが可能となり、高速化または少メモリ化を実現することができる。
なお、ビデオおよびオーディオをMPEG2−TSで多重化する際には、Iピクチャなど符号量の大きいピクチャのデータがアンダーフローしないように、ビデオに含まれる所定のPTS(Presentation TimeStamp)のピクチャが、オーディオに含まれるその所定のPTSと同一のPTSのフレームに比べて時間的に前に多重化されることがある。一方で、ビデオおよびオーディオをMP4で多重化する際には、“Movie fragment”におけるビデオの先頭ピクチャのPTSとオーディオの先頭フレームのPTSとが一致、あるいは近傍となるように、多重化されることが一般的である。
このように、ストリームファイルAとストリームファイルBにおいて、オーディオ、ビデオ、またはテキストの多重化単位が異なると、変換処理をシーケンシャルに行うことができないことがある。その結果、読出し、あるいは、書き込みのポインタを順次、前後に移動させながら変換することも生じる。したがって、変換処理が1つの連続した処理で行えるかどうか、あるいは、1つの連続した処理で行えない場合に、後戻りが必要な最大データサイズなどを、コピーマニフェストファイルに登録してもよい。
なお、ストリームファイルAとストリームファイルBとに対して行われる、一致するデータを含む部分の検索が、小さいデータの単位で行われると、コピーマニフェストファイルのデータサイズが大きくなったり、変換処理が煩雑になる。このため、特定の閾値を設けてもよい。例えば、互いに8バイト以上一致するデータを含む部分のみをコピーマニフェストファイルに登録する。ストリームファイルBに含まれる、その部分以外の残りの部分のそれぞれが、ストリームファイルAのデータと一致する8バイト未満のデータを含んでいても、それらの残りの部分に含まれるデータは差分ファイルに格納される。また、この閾値を、コピーマニフェストファイルに“MIN COPY SIZE: 8 bytes”のように記述しても良い。
また、差分ファイルを用いずに、MP4ファイルにおける多重化単位を示すコピーマニフェストファイルを用いて、MPEG−2TSのファイルをMP4のファイルに変換してもよい。例えば、MP4では、オーディオ、ビデオ、あるいは、テキストがそれぞれ異なる“Movie fragment”として多重化される。このとき、復号順で“Movie fragment”の先頭および最終となるオーディオフレームおよびビデオピクチャのそれぞれのDTS、あるいは、MPEG−2TSのファイルの先頭からのバイトオフセット値などを、メディアの識別情報と共に登録してもよい。なお、“Movie fragment”の登録順は、MP4のファイルにおける“Movie fragment”の出現順と一致するものとする。
図8は、本実施の形態におけるファイル生成方法のフローチャートである。
本実施の形態におけるファイル生成方法は、ファイル生成装置10がMP4ファイルを生成する方法である。このファイル生成方法では、まず、ファイル生成装置10の元ファイル取得部11は、MP4と異なるファイルフォーマットで構成されている元ファイルを取得する(ステップS11)。次に、差分ファイル取得部12は、その元ファイルに含まれていないデータを含む差分ファイルを取得する(ステップS12)。次に、手順ファイル取得部13は、MP4ファイルを生成するための手順を示す手順ファイルを取得する(ステップS13)。そして、生成部14は、その手順ファイルに示される手順にしたがって、差分ファイルに含まれるデータと、元ファイルに含まれるデータとを組み合わせることによって、上述のMP4ファイルを生成する(ステップS14)。例えば、ステップS11では、元ファイル取得部11は、MPEG2−TSのファイルフォーマットで構成されている元ファイルを取得する。
これにより、予め定められた手順にしたがって、差分ファイルに含まれるデータと、元ファイルに含まれるデータとを組み合わせることによってMP4ファイルが生成される。したがって、MPEG2−TSなどのファイルフォーマットによって構成される元ファイルを、映像ストリームまたは音声ストリームなどの各ストリームに戻すことなく、MP4ファイルを簡単に生成することができる。また、元ファイルが暗号化されていてもそれを復号して再暗号化する必要がない。したがって、MP4ファイルを生成するための処理負荷を抑えることができる。
また、ステップS11〜S13では、元ファイル取得部11、差分ファイル取得部12、および手順ファイル取得部13はそれぞれ、光ディスクから元ファイル、差分ファイルおよび手順ファイルを読み出すことによってそれらのファイルを取得する。これにより、MP4ファイルの生成に必要となる全てのファイルが1つの光ディスクから取得されるため、それらのファイルを探す手間を省くことができ、MP4ファイルをより簡単に生成することができる。
ここで、手順ファイルには、差分ファイルに含まれる部分の範囲と、元ファイルに含まれる部分の範囲とが交互に配列されるように、差分ファイルに含まれる複数の部分のそれぞれの範囲と、元ファイルに含まれる複数の部分のそれぞれの範囲とが記述されている。そこで、ステップS14では、生成部14は、手順ファイルに記述されている各範囲の順に、その各範囲によって示される部分を組み合わせることによって、MP4ファイルを生成する。これにより、MP4ファイルに含まれる各部分をそのMP4ファイルの先頭側から順に生成することができ、後戻りすることがないため、MP4ファイルをより簡単に生成することができる。
また、差分ファイルに含まれる複数の部分のそれぞれの範囲は、データサイズによって手順ファイルに記述されている。一方、元ファイルに含まれる複数の部分のそれぞれの範囲は、その部分の開始位置とデータサイズとによって手順ファイルに記述されている。これにより、手順ファイルの記述に基づいて、差分ファイルおよび元ファイルから適切な部分をコピーまたは取得して組み合わせることができる。また、差分ファイルに含まれる部分の範囲の記述に開始位置が用いられないため、手順ファイルのデータサイズを抑えることができる。
また、手順ファイルにはMP4ファイルのデータサイズが記述されている。そこで、ステップS14では、さらに、生成部14は、手順ファイルに記述されているMP4ファイルのデータサイズに基づいて、そのMP4ファイルを記録するだけの空き容量がメディアにあるか否かを判定してもよい。これにより、メディアにMP4ファイルを記録するだけの空き容量があるか否かが判定されるため、空き容量がない場合には、そのMP4ファイルの生成を事前に中止するなどの処理を行うことができる。つまり、エラーの発生を未然に防ぐことができる。
また、手順ファイルにはMP4ファイルの属性が記述されている。そこで、ファイル生成装置10は、さらに、手順ファイルに記述されているその属性を読み出してもよい。
これにより、MP4ファイルの生成前にMP4ファイルの属性を手順ファイルから読み出せば、所望のMP4ファイルが生成されるか否かを事前に判断することができる。
また、手順ファイルにはMP4ファイルの再生に必要なバッファサイズが記述されている。そこで、ファイル生成装置10は、さらに、手順ファイルに記述されているそのバッファサイズを読み出してもよい。これにより、MP4ファイルの再生に必要なバッファサイズを手順ファイルから読み出せば、MP4ファイルを解析することなく、そのMP4ファイルが再生可能か否かを簡単に判断することができる。
また、手順ファイルには、元ファイルの名称である第1のファイル名と差分ファイルの名称である第2のファイル名とが記述されている。そこで、ファイル生成装置10は、さらに、手順ファイルに記述されている第1のファイル名のファイルを元ファイルとして特定し、手順ファイルに記述されている第2のファイル名のファイルを差分ファイルとして特定してもよい。これにより、MP4ファイルの生成に用いられる元ファイルおよび差分ファイルを適切に取得することができる。
また、ステップS14では、生成部14は、差分ファイルに含まれるデータであるMP4に対応するヘッダ情報を、元ファイルに含まれるデータと組み合わせる。これにより、MP4の適切なヘッダ情報を有するMP4ファイルを簡単に生成することができる。
また、ステップS11では、元ファイル取得部11は、平文の状態の元ファイルを取得し、ステップS14では、生成部14は、生成されたMP4ファイルを暗号化してもよい。これにより、MP4への変換後に元ファイルを削除しておけば、その元ファイルに含まれていたデータをMP4ファイルとして残しておきながら、そのデータの秘匿性を確保することができる。
ここで、ステップS14では、生成部14は、元ファイルを構成する部分が取得されるごとに、その部分に対応するMP4ファイルの部分を生成して暗号化し、MP4ファイルを構成する部分が暗号化されるごとに、その部分に対応する元ファイルの部分を削除してもよい。これにより、平文の元ファイルに含まれる全てのデータが一時的にも記憶領域に格納されることを防ぐことができ、そのデータの秘匿性をより確実に確保することができる。
(変形例1)
上記実施の形態では、差分ファイルおよびコピーマニフェストファイルを用いてMP4ファイルを生成したが、これらのファイルを用いずにMP4ファイルを生成してもよい。本変形例に係るファイル生成方法では、それぞれ平文のヘッダを有する複数のSource PacketからなるMPEG2−TSのストリームファイルを、カウンタを用いてMP4のストリームファイルに変換する。これにより、MP4のストリームファイルが生成される。なお、MPEG2−TSのストリームファイルは元ファイルであり、MP4のストリームファイルはMP4ファイルである。
図9は、本変形例におけるファイル生成方法を説明するための図である。
MPEG2−TSのストリームファイル(つまりコンテンツ)は、上述のように複数のSource Packetから構成されている。なお、図9において、Source Packetは、SPと略して示されている。
本変形例におけるMPEG2−TSのストリームファイルに含まれる各Source Packetでは、Source Packetに含まれるデータのうち、TS Payload部分のみが暗号化されている。つまり、Source Packetに含まれるデータのうち、TS_extra_headerと、TS Headerとは暗号化されておらず、平文である。
暗号化には、AES−CTR(CounTeR)モードが用いられる。なお、AES−CTRモードでは、カウンタの値を使った暗号化および復号が行われる。図9に示すように、ビデオ用のカウンタ(AES Counter for Video)の値を用いて、それぞれビデオのデータを含む複数のTS Payloadが暗号化され、オーディオ用のカウンタ(AES Counter for Audio)の値を用いて、それぞれオーディオのデータを含む複数のTS Payloadが暗号化される。ビデオ用のカウンタは、図9に示す矢印にしたがってカウント値が増加するように、ビデオのSource Packetのデータのみをカウントする。オーディオ用のカウンタは、図9に示す矢印にしたがってカウント値が増加するように、オーディオのSource Packetのデータのみをカウントする。なお、AES−CTRモードでの暗号化の詳細については後述する。
ファイル生成装置は、MPEG2−TSのストリームファイルに含まれる複数のSource Packetのそれぞれのうち、TS Payloadのみを取り出すことによって、MPEG2−TSのストリームファイルを、MP4のストリームファイルに簡単に変換することができる。
図10Aは、AES−CTRモードによるデータの暗号化を説明するための図である。
暗号化の際には、鍵と初期値であるIV(Initial Vector)とが用いられる。まず、鍵を用いてIVを暗号化する。この暗号化によって得られた値と、暗号化対象のデータの先頭の16Bytes(図10Aに示すm1)との排他的論理和の演算によって、その先頭の16Bytesに対応する暗号文c1が生成される。暗号化対象のデータに含まれる次の16Bytes(図10Aに示すm2)のデータ(ブロック)に対しては、IV=IV+1のように、IVを更新した後に、上述の先頭の16Bytesに対する処理と同じ処理を行う。これにより、次の16Bytesのデータに対応する暗号文c2が生成される。上述のように更新されるIVは上述のカウンタ値であって、図9に示すビデオ用のカウンタおよびオーディオ用のカウンタはそれぞれIV=IV+1の演算を行う。
このような処理を連続して行うことで、16Bytes以上の長いデータに対しても暗号文を作成することができる。なお、暗号化対象のデータの長さが16Bytesの倍数になっていない場合には、末尾のブロックにおいて、排他的論理和をビット単位で行うことによって暗号文が生成される。
図10Bは、AES−CTRモードによるデータの復号を説明するための図である。
復号の際には、復号対象のデータに対して、暗号化の場合と全く同じ処理が行われる。つまり、復号の際にも、鍵を用いてIVを暗号化する処理が行われる。
このように、本変形例に係るファイル生成方法は、MP4ファイルを生成するファイル生成方法であって、複数のパケットからなる元ファイルを取得し、前記元ファイルに含まれるパケットごとに、当該パケットのうち、平文の状態にあるヘッダ情報を除く、残りの暗号化されているペイロード部分のみを取得して組み合わせてMP4ファイルを生成する。例えば、前記元ファイルの取得では、MPEG2−TSのファイルフォーマットで構成されている前記元ファイルを取得する。これにより、MPEG2−TSなどのファイルフォーマットによって構成される元ファイルを、映像ストリームまたは音声ストリームなどの各ストリームに戻すことなく、MP4ファイルを簡単に生成することができる。また、元ファイルを復号して再暗号化する必要がない。したがって、MP4ファイルを生成するための処理負荷を抑えることができる。
ここで、前記元ファイルに含まれる前記複数のパケットのうち、ビデオのデータを含む複数のパケットのそれぞれのペイロードは、ビデオ用の第1のカウンタのカウンタ値を用いて暗号化され、オーディオのデータを含む複数のパケットのそれぞれのペイロードは、前記第1のカウンタと異なるオーディオ用の第2のカウンタのカウンタ値を用いて暗号化されている。前記第1のカウンタは、前記元ファイルの先頭から後に向かって、ビデオに対応する複数のパケットのそれぞれに含まれるデータのみをカウントし、前記第2のカウンタは、前記元ファイルの先頭から後に向かって、オーディオに対応する複数のパケットのそれぞれに含まれるデータのみをカウントする。これにより、第1のカウンタがビデオ専用のカウンタとして用いられるため、MP4ファイルにおいて、ビデオに対応する複数のパケットのそれぞれのペイロードが組み合わされて構成されるビデオエレメンタリーを、簡単に復号することができる。同様に、第2のカウンタがオーディオ専用のカウンタとして用いられるため、MP4ファイルにおいて、オーディオに対応する複数のパケットのそれぞれのペイロードが組み合わされて構成されるオーディオエレメンタリーを、簡単に復号することができる。
なお、前記元ファイルは複数のAligned Unitからなり、前記複数のAligned Unitのそれぞれは複数のSource Packetからなる。前記元ファイルに含まれる前記複数のパケットは、前記複数のAligned Unitのそれぞれに含まれる複数のSource Packetである。また、前記ペイロードはTS Payloadであり、前記ヘッダ情報は、TP_extra_headerおよびTS
Headerからなる。
(変形例2)
上記実施の形態では、差分ファイルおよびコピーマニフェストファイルを用いてMP4ファイルを生成したが、これらのファイルを用いずにMP4ファイルを生成してもよい。本変形例に係るファイル生成方法では、補助情報を含むMPEG2−TSのストリームファイルを、その補助情報を用いてMP4のストリームファイルに変換する。これにより、MP4のストリームファイルが生成される。
MPEG2−TSとMP4においては、アクセスユニットのデータの多重化方法が一部異なるため、MPEG2−TSのデータをMP4ファイルに格納する際には、アクセスユニットを複数の部分に分離してそれらの部分を別々に格納する必要がある。基本的には、MPEG2−TSにおけるアクセスユニットは、ビデオのピクチャまたはオーディオのフレームの復号に必須となる初期化情報と、ピクチャまたはフレームの符号化データとを共に含む。一方、MP4ファイルにおけるアクセスユニット(MP4では、サンプルまたはMP4サンプルと呼ばれる)は、ピクチャまたはフレームの符号化データのみから構成され、復号に必要な初期化情報は、MP4ファイルのヘッダ情報として符号化データとは別に格納される。
以下に、MPEG2−TSによって多重化された符号化データをMP4ファイルに変換する際に、変換に係る処理量を低減させるための補助情報、および、補助情報を使用した多重化フォーマットの変換方法について説明する。特に、符号化データが暗号化されている場合には、暗号化を解いて再暗号化する際の処理量が大きい。本変形例では、符号化データの暗号化を解かずに、データのコピーのみでMP4ファイルへの変換を行うことができる。
なお、変換前の元ファイルであるMPEG2−TSのストリームファイルは、他のTS(トランスポートストリーム)であってもよい。つまり、元ファイルは、MPEG−2システムで規定されたTSだけでなく、TSパケットに所定のバイト数のヘッダ情報を付加したTS(例えばBlu−ray discまたは映像配信などで使用されるTS)であってもよい。また、変換によって生成されるMP4ファイルは、“Movie fragment”を使用したMP4ファイルであってもよく、“Movie fragment”を使用しないMP4ファイルであってもよい。さらに、変換によって生成されるファイルのフォーマットは、MP4をベースに拡張されたDECE(Digital Entertainment Content Ecosystem)のCFF(Common File Format)、またはMPEG−DASH(Dynamic Adaptive Streaming over HTTP)などであってもよい。以下では、元ファイルをトランスポートストリームとして説明する。
図11は、トランスポートストリームに格納されるMPEG−4 AACのアクセスユニットをMP4ファイルに格納する例を示す図である。
トランスポートストリームにおけるMPEG−4 AACのアクセスユニットは、LATM(Low Overhead Audio Transport Multiplex)ヘッダ、PayloadLengthInfo()、および、PayloadMux()の3種類のデータから構成される。LATMヘッダには、チャネル数およびサンプリング周波数などの、MPEG−4 AACの符号化データ(AACデータともいう)の復号に必要な初期化情報が含まれる。より詳細には、LATMヘッダ内のAudioSpecificConfig()に、その初期化情報が格納される。PayloadLengthInfo()には、PayloadMux()のサイズが格納され、PayloadMux()に、AACデータが格納される。
このアクセスユニットのデータをMP4ファイルに格納する際には、LATMヘッダ内のAudioSpecificConfig()が、MP4ファイルのmoov内のstsdにおけるサンプルエントリに格納される。さらに、PayloadLengthInfo()とPayloadMux()とが、サンプルデータとしてmdatに格納される。なお、サンプルデータはサンプルに格納されるデータである。また、mdat内のサンプルデータはmoovから参照される、あるいは、“Movie fragment”を使用する場合には、mdat内のサンプルデータはmoofから参照される。MPEG−2 AACでは、LATMヘッダではなくADTS(Audio Data Transport Stream)ヘッダが用いられ、アクセスユニットは、ADTSヘッダとAACデータ(raw_data_block()と呼ばれる)から構成される。このときも、ADTSヘッダがアクセスユニットから分離され、ADTSヘッダに含まれるデータのうち、少なくともadts_fixed_header()は、サンプルエントリに格納される。さらに、AACデータがサンプルデータとしてmdatに格納される。
図12は、トランスポートストリームに格納されるMPEG−4 AVC(Advanced Video Coding)のアクセスユニットをMP4に格納する例を示す図である。
MPEG−4 AACの場合と同様に、トランスポートストリームでは、Sequence Parameter Set(SPS)およびPicture Parameter Set(PPS)などの、復号時に必要となる初期化情報は、アクセスユニットの一部として格納される。一方、MP4ファイルでは、これらの初期化情報は、MP4ファイルのヘッダ情報として格納される。図12に示すアクセスユニットは、IDR(Instantaneous Decoder Refresh)ピクチャを構成する。SPSおよびPPSのそれぞれのNAL(Network Adaptation Layer)ユニットは、アクセスユニットから分離されて、MP4ファイルのmoov内のstsdにおけるサンプルエントリに格納される。アクセスユニットに含まれるその他のデータは、サンプルデータとしてmdatに格納される。
なお、MP4では、MPEG−4 AVCのサンプルデータに、SPSおよびPPSなどの初期化情報を含めることが可能なモードを選択することができる。モードは、サンプルエントリの識別情報によって示される。識別情報が“avc1”または“avc2”の場合には、初期化情報をサンプルデータに含めることは禁止される。一方、識別情報が“avc3”または“avc4”の場合には、初期化情報をサンプルデータに含めることが許可される。したがって、トランスポートストリームをMP4ファイルに変換する際に、MP4ファイルにおける上述の識別情報を“avc1”または“avc2”に設定する場合には、トランスポートストリームにおけるアクセスユニットからmdatに格納されるデータの中から、SPSおよびPPSのNALユニット、あるいは、スタッフィング用に用いるFillerDataのNALユニットは削除される。また、識別情報を“avc3”または“avc4”に設定する場合には、SPSまたはPPSのNALユニットを削除しなくてもよい。したがって、MP4ファイルにおける識別情報の設定値に応じて、SPSおよびPPSを削除するかどうかを切替えてもよい。
また、次世代の動画像符号化方式であるHEVC(High Efficiency Video Coding)のデータは、MPEG−4 AVCと同様に、NALユニットによって構造され、SPSおよびPPSなどの初期化情報を有する。HEVCのデータをMP4ファイルに格納する際には、初期化情報をサンプルデータに含めてもよい。したがって、トランスポートストリームをMP4ファイルに変換する際に、トランスポートストリームにおけるアクセスユニットからmdatに格納されるデータのうち、初期化情報を削除するかどうかを、符号化方式の種類に応じて判定し、その判定結果に応じて処理してもよい。
上述のように、MPEG−4 AACの符号化データをMP4ファイルに格納する際には、LATMヘッダはアクセスユニットから分離される。さらに、PayloadLengthInfo()およびPayloadMux()のみがサンプルデータとしてmdatに格納される。以降、PayloadLengthInfo()とPayloadMux()とを合わせて、LATMペイロードと呼ぶ。
そこで、本変形例では、MPEG−4 AACのアクセスユニットのデータを複数のTSパケットに格納する際には、LATMヘッダとLATMペイロードとを別々のTSパケットに格納する。これにより、LATMヘッダを容易に分離することができる。
図13Aは、LATMヘッダとLATMペイロードとのTSパケットへの格納例を示す図である。LATMヘッダとLATMペイロードとのそれぞれのデータが同一TSパケットのペイロード内に混在しないように、必要に応じてスタッフィングが行われる。例えば、アクセスユニット1のLATMヘッダが先頭のTSパケットのペイロードに格納される。このとき、LATMヘッダのサイズがTSペイロードのサイズに満たない場合には、TSペイロードの残りの領域に対してスタッフィングが行われる。なお、図13Aに示す例では、PESパケットは記載されていないが、実際には、アクセスユニットのデータはPESパケットのペイロードに格納され、PESパケットのデータがTSパケットのペイロードに格納される。
次に、LATMヘッダが格納されたTSパケットと、LATMペイロードが格納されたTSパケットの識別方法について説明する。1アクセスユニットを1PESパケットとして格納する際には、PESパケットの先頭データを含むTSパケットにおいて、TSヘッダのpayload_unit_start_indicatorが1にセットされる。payload_unit_start_indicatorが1にセットされたTSパケットのペイロードにLATMヘッダが含まれることを保証すれば、payload_unit_start_indicatorの値に基づいて、TSパケット内にLATMヘッダが含まれるかどうかを判定することができる。複数のアクセスユニットを1つのPESパケットに格納する際には、補助情報であるAU_infoテーブルをPESパケットのペイロードの先頭に配置してもよい。このAU_infoテーブルは、PESパケットのペイロード内に含まれるアクセスユニットの個数と、各アクセスユニットにおけるLATMヘッダとLATMペイロードのサイズとを含む。
図13Bは、AU_infoテーブルのシンタックスの一例を示す図である。
AU_infoテーブルは、AU_info_identification_codeと、アクセスユニットの個数を示すnumber_of_AUと、アクセスユニットにおけるLATMヘッダとLATMペイロードのサイズを示すsize_of_LengthInfoとを含む。AU_info_identification_codeは、AU_infoテーブルに固有のビット列である。本コードをサーチすることで、AU_infoテーブルが存在するかどうかを判定することができる。あるいは、MP4のBox構造のように、AU_infoテーブルを、BoxのデータサイズとBoxのタイプとを組み合わせたデータ構造としてもよい。ただし、トランスポートストリームにおけるデスクリプタ、あるいは、トランスポートストリームとは別に用意されたMP4ファイルへの変換用の補助データなどによって、AU_infoテーブルの存在がシグナリングされる場合には、上述のコードを省略してもよい。また、1アクセスユニットを1PESパケットに格納する際にも、AU_infoテーブルを使用してもよい。
このようなアクセスユニット内の各構成要素のサイズまたはデータオフセットを示すことにより、MP4ファイルへの変換のために分離されるデータを特定する手法を、MPEG−4 AVCの符号化データに対して適用してもよい。つまり、MPEG−4 AVCの符号化データをMP4ファイルに格納する際に、SPSおよびPPSのそれぞれのNALユニットを分離するために、上述の手法を適用してもよい。
図13Cは、アクセスユニット内の構成要素毎に、MP4ファイルのサンプルデータからその構成要素を除外する必要があるかどうかを示すためのAU_infoテーブルのシンタックスの一例を示す図である。
AU_infoテーブルは、AU_info_identification_codeと、number_of_data_unitと、size_of_data_unitと、conversion_modeとを含む。number_of_data_unitは、アクセスユニットに含まれるデータユニットの個数を示す。size_of_data_unitは、データユニットのサイズを示す。conversion_modeは、MP4ファイルへの変換時におけるデータユニットの扱い方を示す変換モードである。conversion_modeが0であれば、そのconversion_modeは、MP4ファイルのサンプルデータとしてデータユニットをコピーすることを示す。また、conversion_modeが1であれば、そのconversion_modeは、サンプルデータからデータユニットを除外すること、つまりサンプルデータとしてデータユニットをコピーしないことを示す。
なお、conversion_modeが1である場合には、そのconversion_modeは、データユニットを除外した後のそのデータユニットの取り扱いを示してもよい。例えば、そのconversion_modeは、サンプルデータからデータユニットを除外したうえで、そのデータユニットをサンプルエントリに格納することなどを示す。
また、複数のデータユニットのそれぞれの情報は復号順で昇順となるように格納される。例えば、MPEG−4 AVCの1アクセスユニットを1PESパケットとして格納する場合には、データユニットがNALユニットに相当し、アクセスユニットを構成するNALユニットの個数がnum_of_data_unitによって示される。そして、SPSおよびPPSのそれぞれのNALユニットに対して、conversion_modeが1にセットされる。また、LATMヘッダとLATMペイロードのそれぞれをデータユニットとみなしてもよい。この場合、LATMヘッダに対応するデータユニットに対して、conversion_modeを1にセットすることで、このAU_infoテーブルをMPEG−4 AACに対しても適用することができる。PESパケット内に複数のアクセスユニットを格納する場合には、number_of_data_unitは、PESパケット内の全アクセスユニットに含まれるデータユニットの総数を示す。
なお、PESパケットの開始部分を含むTSパケットのヘッダ(図3のTS Header)のadaptation_field内に、AU_infoテーブルを格納してもよい。MPEG−4 AVCまたはHEVCにおけるNALユニットあるいはSEI(Supplemental Enhancement Information)などの符号化データの一部として、AU_infoテーブルを格納してもよい。AU_infoテーブルを符号化データの一部として格納する際には、アクセスユニット毎あるいはランダムアクセス毎にAU_infoテーブルを格納することができる。また、AU_infoテーブルをTSパケットまたはPESパケットに格納する場合にも、PESパケット毎にAU_infoテーブルを格納してもよく、ランダムアクセスユニット内の復号順で先頭となるアクセスユニットを含むPESパケットにのみAU_infoテーブルを格納してもよい。ランダムアクセスユニット毎にAU_infoテーブルを格納する場合には、AU_infoテーブルには、ランダムアクセスユニットを構成する全てのアクセスユニットに関する情報が格納される。
図14は、本変形例に係るファイル生成装置の構成を示すブロック図である。
本変形例に係るファイル生成装置100は、AU_infoテーブルを含むトランスポートストリームをMP4ファイルに変換することによって、そのMP4ファイルを生成する。このファイル生成装置100は、補助情報サーチ部101と、補助情報解析部103と、生成部104とを備える。補助情報サーチ部101は、トランスポートストリームから補助情報であるAU_infoテーブルをサーチする。補助情報解析部103は、そのサーチ結果に基づいて、AU_infoテーブルが存在するか否かを判定する。さらに、補助情報解析部103は、AU_infoテーブルが存在すると判定すると、そのAU_infoテーブルを解析する。生成部104は、補助情報解析部103による解析結果に基づいてMP4ファイルを生成する。
生成部104は、具体的には、サンプル生成部104aとサンプルエントリ生成部104bとを備える。サンプル生成部104aは、LATMペイロードのデータ、またはSPSおよびPPS以外のNALユニットなどを、サンプルデータとしてMP4ファイルのmdatに格納する。サンプルエントリ生成部104bは、LATMヘッダのデータ、またはSPSおよびPPSのそれぞれのNALユニットなどを、MP4ファイルのmoov内のstsdにおけるサンプルエントリに格納する。
このようなファイル生成装置100によって、上述のAU_infoテーブルを含むトランスポートストリームをMP4ファイルに簡単に変換することができる。
上述のように、MPEG2−TSとMP4とでは、オーディオまたはビデオの符号化データを格納する際に、復号時に必要となる初期化情報の格納場所が異なる。さらに、MPEG2−TSとMP4とでは、MPEG−4 AVCまたはHEVCにおけるNALユニットの格納フォーマットが異なる。したがって、トランスポートストリームからMP4ファイルへの変換には、格納フォーマットの変換が必要である。以下、図15Aから図15Cを用いて、MPEG2−TSとMP4におけるNALユニットの格納フォーマットについて説明する。
図15Aは、NALユニットの概略構造を示す図である。
NALユニットは、ヘッダとペイロードとから構成される。そのヘッダには、ペイロードに格納されるデータの種別を示すタイプ情報が格納されている。
図15Bは、MPEG2−TSにおけるNALユニットの格納フォーマットの例を示す図である。MPEG2−TSにおいては、NALユニットの境界を識別するために、スタートコードと呼ばれる固有のビット列が識別情報としてNALユニットに付加される(以降、このような識別情報の形式をスタートコード形式と呼ぶ)。復号装置などは、そのスタートコード、及び、NALユニットのヘッダに格納されているタイプ情報をサーチすることで、所望のNALユニットを分離することができる。
図15Cは、MP4におけるNALユニットの格納フォーマットの例を示す図である。MP4においては、NALユニットの境界を識別するために、NALユニットのデータサイズを識別情報として示すフィールドがNALユニットに付加される(以降、このような識別情報の形式をNALサイズ形式と呼ぶ)。ここで、データサイズを示すフィールドのフィールド長は、サンプルエントリ内におけるAVCDecoderConfigurationRecordの中に格納される。AVCDecoderConfigurationRecordは、復号時の初期化情報などが格納される領域である。復号装置などは、NALユニットのデータサイズに基づいて所望のNALユニットを分離することができる。
以上のように、MPEG2−TSとMP4とでは、NALユニットの境界を示す識別情報の形式が、スタートコード形式であるか、NALサイズ形式であるかという点についても異なる。したがって、トランスポートストリームをMP4ファイルへ変換する際には、NALユニットの境界を示す識別情報を変換する必要がある。なお、NALユニットの格納フォーマットは符号化方式毎に規定されるため、オーディオまたはビデオの符号化方式を参照して、MP4ファイルへの変換の動作を切替えればよい。
MP4ファイルに変換する際に、NALサイズ形式の符号化方式のデータを扱う場合には、NALユニットのデータサイズが必要となる。したがって、アクセスユニットを構成するNALユニットのデータサイズが予め取得できることが望ましい。こうすることで、スタートコード形式のアクセスユニットにおいてスタートコードをサーチし、NALユニット境界を検出することによって、NALユニットのデータサイズを決定する際の処理量を削減することができる。
つまり、本変形例におけるトランスポートストリームにおけるアクセスユニットの先頭には、そのアクセスユニットに含まれる各NALユニットのデータサイズを示すサイズ情報が格納されている。
図16Aは、本変形例に係るトランスポートストリームにおけるアクセスユニットの構成例を示す図である。この図16Aに示すように、トランスポートストリームに多重化されるアクセスユニットを構成する各NALユニットのデータサイズを示すサイズ情報が、アクセスユニットの先頭に格納されている。例えば、このサイズ情報は、新規に定義されたサイズ情報NALユニットに格納される。NALユニットのタイプには、プライベート用およびユーザーデータ用が存在する。そこで、これらの中からいずれかのタイプを選択し、その選択されたタイプのNALユニットをサイズ情報NALユニットとして使用する。サイズ情報については暗号化の必要がないため、このサイズ情報NALユニットは平文で格納される。
図16Bは、サイズ情報NALユニットに含まれるサイズ情報のシンタックスの一例を示す図である。サイズ情報は、number_of_naluおよびnal_sizeを含む。number_of_naluはアクセスユニットを構成するNALユニットの個数を示し、nal_sizeによって各NALユニットのデータサイズが示される。サイズ情報NALユニットはMP4ファイルには格納されないため、サイズ情報は、サイズ情報NALユニット自体のデータサイズを示さなくてもよい。なお、図16Aに示す例では、サイズ情報NALユニットは、Access Unit Delimiter(AUD)と呼ばれるアクセスユニットの先頭をシグナリングするためのNALユニットの前に配置されているが、AUDの直後に配置されてもよい。AUDの直後にサイズ情報NALユニットを配置する場合には、サイズ情報NALユニットのサイズ情報は、AUDの後の各NALユニットのサイズを示す。そのため、サイズ情報はAUDのデータサイズを示さない。しかし、AUDのデータサイズは固定であるため、ファイル生成装置100はそのデータサイズを予め記憶しておけばよい。また、AU_infoテーブルと同様に、サイズ情報をPESパケットのペイロードの先頭に配置してもよい。
図16Cは、サイズ情報NALユニットに含まれるサイズ情報のシンタックスの他の例を示す図である。
図16Aに示すように、トランスポートストリームにおけるNALユニットの前には、スタートコードに加えて、zero_byteなど可変長のコードが含まれることがある。したがって、図16Cに示すように、NALユニットのスタートコードを含む識別情報のデータサイズ(図16Cに示すprefix_size)をサイズ情報に格納してもよい。なお、識別情報のデータサイズが固定であれば、MPEG2−TSのデスクリプタ、またはMP4ファイルへの変換時の補助データに、その識別情報のデータサイズを格納してもよい。さらに、NALサイズ形式では、MP4ファイルへの変換後のNALユニットのデータサイズを示すフィールドのフィールド長も示してもよい。
また、識別情報をデータユニットとみなし、AU_infoテーブルによってNal_size_infoの内容を示してもよい。このとき、conversion_modeを多値とすることにより、データユニットを削除する、そのまま残す、の2つの動作に加えて、データユニットのデータ構造を変換するというモードを追加してもよい。さらに、AU_infoテーブルに、データユニットの種類を識別するための識別情報を追加してもよい。例えば、このような識別情報によって、MPEG−4 AVCまたはHEVCにおけるSPSのNALユニット、PPSのNALユニットあるいはスライスのNALユニットなど、NALユニットのタイプを判別することができる。あるいは、MPEG−4 AACのLATMヘッダまたはLATMペイロードなどを判別することなどが可能である。さらに、データユニットが暗号化されているかどうかを示すフィールドを別途設けてもよい。
conversion_modeが異なるデータユニットを、異なるTSパケットに格納してもよい。また、conversion_modeが2である場合に、ヘッダ情報としてサンプルエントリに格納されるデータユニットを平文としてTSパケットに格納しておいてもよい。
暗号化については、スライスデータのNALユニットのみを暗号化し、それ以外の部分は平文としてもよい。暗号化はTSパケット単位で行われるため、TSパケットのペイロードにおいて平文と暗号化部分とは混在できず、AUDなどはデータサイズが小さく、AUDを独立したパケットとして格納するとスタッフィングが増加して多重化効率が低下するためである。また、暗号化されたスライスのNALユニットデータの境界がTSパケットのペイロードの終端にアラインされない場合には、スタッフィングが必要となる。スタッフィングを行う場合には、TSパケットヘッダのadaptation_fieldを用いるか、符号化データに、Filler Data NALユニット、またはFiller Data用のSEIなどを挿入する方法がある。TSパケットヘッダのadaptation_fieldを用いる場合には、adaptation_fieldは平文にする必要があるが、可変長の領域に対して暗号化するか否かの処理を切替えることは負荷が高い。したがって、スタッフィングを行う際には、符号化データにおけるスタッフィング用のデータ構造を用いて、NALユニットデータの境界がTSパケットのペイロード終端にアラインさせることが望ましい。
また、TSパケットのAdaptation field、あるいは、アクセスユニット内に、ユーザーデータ格納用のSEI(User unregistered SEI)を挿入して、そのSEIにサイズ情報を格納してもよい。MP4ファイルに変換する際には、これらのいずれか1つ以上の方法により格納されたNALユニットのサイズ情報に基づいて、スタートコード形式をNALサイズ形式に変換することができる。また、サイズ情報が格納されているかどうかを示す情報を、MPEG2−TSにおけるデスクリプタなどを用いて格納してもよい。
図17は、本変形例に係るファイル生成装置100がMP4ファイルを生成する処理動作を示すフローチャートである。具体的には、このフローチャートは、図13Cに示すAU_infoテーブルを参照してトランスポートストリームをMP4ファイルに変化する処理動作の例を示す。
ファイル生成装置100の補助情報サーチ部101は、PESパケットのペイロードの先頭などに配置されるAU_infoテーブルをサーチする(ステップS101)。次に、補助情報解析部103は、そのサーチの結果に基づいて、AU_infoテーブルが存在するかどうかを判定する(ステップS102)。ここで、AU_infoテーブルが存在すると判定されると(ステップS102の「はい」)、補助情報解析部103は、AU_infoテーブルに含まれている、各データユニットのデータサイズと、その各データユニットの変換モードとを取得する(ステップS103)。一方、AU_infoテーブルが存在しないと判定されると(ステップS102の「いいえ」)、生成部104のサンプル生成部104aは、PESパケットから分離されたアクセスユニットをデータユニットとみなし、そのデータユニットをサンプルデータとしてコピーしてmdatに貼り付ける(ステップS105)。1アクセスユニットが1PESパケットに格納されている場合には、サンプル生成部104aは、PESパケットのペイロードを1アクセスユニット分のデータとみなして分離する。複数アクセスユニットが1PESパケットに格納されている場合、あるいは、アクセスユニットがフラグメント化されてPESパケットに格納されている場合には、サンプル生成部104aは、符号化データにおける各アクセスユニットの境界をサーチしてそれらのアクセスユニットを分離する。
ステップS103の後、補助情報解析部103は、変換モードが0であるか否かを判定する(ステップS104)。変換モードが0であると判定されると(ステップS104の「はい」)、サンプル生成部104aは、その変換モードに対応するデータユニットをサンプルデータとしてコピーしてmdatに貼り付ける(ステップS105)。一方、変換モードが0ではないと判定されると(ステップS104の「いいえ」)、補助情報解析部103は、その変換モードが1であるか否かを判定する(ステップS106)。ここで、変換モードが1であると判定されると(ステップS106の「はい」)、サンプル生成部104aは、その変換モードに対応するデータユニットのデータ構造を変換し、変換後のデータ構造を有するデータユニットをサンプルデータとしてmdatに格納する(ステップS107)。例えば、サンプル生成部104aは、NALユニット境界の識別情報の形式をスタートコード形式からNALサイズ形式に変換する。一方、変換モードが1ではなく2であると判定されると(ステップS106の「いいえ」)、サンプルエントリ生成部104bは、その変換モードに対応するデータユニットをmdatに格納することなく、データユニットの少なくとも一部のデータをサンプルエントリに格納する(ステップS108)。例えば、サンプルエントリ生成部104bは、MPEG−4 AVCにおけるSPSおよびPPSのそれぞれのNALユニットをサンプルエントリに格納する。あるいは、サンプルエントリ生成部104bは、MPEG−4 AACのLATMヘッダからAudioSpecificConfig()を分離してサンプルエントリに格納する。データユニットのデータのうち、サンプルエントリに格納される部分については、符号化方式に予め規定されるが、サンプルエントリへの格納部分を特定するための補助データをAU_infoテーブル内に示してもよい。
(変形例3)
上記実施の形態におけるコピーマニフェストファイルに記述される、ストリームファイルのコピー開始位置を示すアドレスは、ストリームファイルの先頭からの絶対値ではなくてもよい。例えば、コピー開始位置を示すアドレスは、直前のエントリのコピー開始位置を示すアドレスからの差分値であってもよい。
図7に示すストリームファイルAに含まれる2番目のエントリは、(コピー開始位置のアドレス,コピーサイズ)=(577,180)ではなく、(コピー開始位置のアドレス,コピーサイズ)=(367,180)のように記述される。また、コピー開始位置のアドレスとコピーサイズの記述方法としては、例えば以下の3通り(モード1〜3)が可能である。
モード1では、ストリームファイルと差分ファイルから交互にデータをコピーする。例えば、コピーされるデータの範囲は(コピー開始位置のアドレス,コピーサイズ)として記述され、各フィールドのビット長は例えば(int32,int8)である。
モード2では、コピーサイズが0である場合には、コピーをスキップする。同一ファイルから連続してデータをコピーできるため、モード1と比較してアドレスのデータ長を短くすることができる。例えば、コピーされるデータの範囲は、(コピー開始位置のアドレス,コピーサイズ)として記述され、各フィールドのビット長は例えば(int16,int8)である。
モード3では、モード2においてコピーサイズを明示的に示すのではなく、アドレスによって示されるTSパケットのペイロードの最終までのデータをコピーする。コピーサイズのフィールドは省略される。また、アドレスを指定する代わりに、ストリームファイルにおけるTSパケットのインデックス番号の差分値を用いてもよい。例えば、コピーされるデータの範囲は、(パケット番号、コピーモード)として記述され、各フィールドのビット長は例えば(int7,int1)である。コピーモードは、コピーをスキップするかどうかを示す。
図18は、モード2を使用した場合のアドレス指定の具体例を示す図である。
図18に示すように、コピー開始位置である開始位置1と開始位置2はそれぞれ210バイト目と91428バイト目である。アドレスの差分値のフィールド長を16bitとすると、フィールド長の最大値は65535であるため、そのアドレスの差分値を1つのエントリでは表現できない。そこで、開始位置1から開始位置2までジャンプする場合には、(65535,0)と(25683,180)の2つのエントリを用いる。こうすることで、開始位置2までジャンプしてから180バイトのデータを取得することができる。
図19は、コピーサイズの上限値を超える連続領域を読み出す例を示す図である。
この場合は、(255),(0,0),(182)のように記述することで、差分ファイルにおける領域1と領域2を連続的にコピーすることができる。
なお、コピー開始位置を示すアドレスまたはコピーサイズは、1バイト単位ではなく、4バイト単位で記述してもよい。また、各エントリにおいて、差分ファイルとストリームファイルとのどちらのファイルからコピーするかを示す識別情報を別途設けることで、両ファイルのエントリを交互に記述するのではなく、一方のファイルに対するエントリを連続して記述できるようにしてもよい。
ここまでは、MPEG2−TSのファイルからデータをコピーしてMP4ファイルを生成する処理を説明したが、TSパケットに多重化されたPESパケットのペイロードから分離されたエレメンタリーストリームに基づいてデータをコピーしてもよい。
図20は、エレメンタリーストリームからデータをコピーしてMP4ファイルを生成する処理を説明するための図である。
MPEG2−TSのファイルでは、188バイト、あるいは、BD(Blu−rayディスク)などにおいて用いられるタイムスタンプ付TSの192バイトのパケット毎に、コピー情報が必要になる。したがって、ビットレートが高いコンテンツでは、TSパケットの数が増大し、コピーマニフェストファイルのサイズが増加する。そこで、MPEG2−TSのファイルから分離されたエレメンタリーストリームを用いることにより、フレーム単位、あるいは、HEVCまたはAVCにおけるNALユニットなどの単位で、データのコピーが可能となる。その結果、コピーマニフェストファイルの“COPY MANIFEST”に含まれるエントリ数を大幅に削減することができる。例えば、ビデオを多重化したMPEG2−TSのファイルのサイズが10GBであり、TSパケットのサイズが192バイトである場合、パケット数は55924053個となり、同数のエントリが必要となる。一方で、このビデオの再生時間長が2時間で、フレームレートが30Hzであれば、フレームの総数は216000枚となる。したがって、フレームごとにエントリを生成する場合には、パケットごとにエントリを生成する場合に比べてエントリ数を大幅に低減できる。また、MPEG2−TSのファイルがAACS(Advanced Access Content System)とBD+によって2重に暗号化されており、BD+によってデータがインタリーブして再配置されるようなケースがある。このようなケースにおいても、暗号化を解いて符号化ストリームを分離した後であれば符号化ストリームを構成するデータの順序は一意に決定できるため、本手法によるコピー動作が可能である。
エレメンタリーストリームからデータをコピーする場合、エレメンタリーストリームは複数存在するため、それらの識別情報が必要となる。“COPY MANIFEST”では、上述のモード1またはモード2に対応して以下のような記述が可能である。ここで、コピー開始位置のアドレスは、直前のエントリからの差分値によって示される。
モード1では、エントリは(ファイルID,コピー開始位置のアドレス,コピーサイズ)から構成される。各フィールドのビット長は例えば(int4,1バイト単位でint22,int22)である。ファイルIDは、コピーされるデータを含むファイルの識別情報であり、例えば、ファイルIDとして0が差分ファイルに割り当てられ、1以上の値がエレメンタリーストリームのファイルに割り当てられる。解像度が4KのHEVCまたはAVCの符号化データにおいては、Minimum Compression Ratioを4とすると1フレームの最大サイズは約4Mバイトである。符号化ストリームからデータをコピーする場合、コピー開始位置のアドレスの差分値の最大値は1フレームの最大サイズとしてもよく、4Mバイトは22ビットで表現できる。このとき、コピーサイズとしても1フレームの最大サイズを表現するために22ビットとしている。
モード2では、エントリは(ファイルID、コピー開始位置のアドレス、コピーサイズ)から構成される。各フィールドのビット長は例えば(int4、1バイト単位でint12、int16)である。なお、AVCまたはHEVCでは、NALユニットのヘッダをスタートコード形式からNALサイズ形式に変換する必要があり、NALユニットのペイロード単位でデータをコピーする必要がある。そのため、コピー開始位置のアドレスのフィールドが設けられているが、TS内のエレメンタリーストリームをそのままコピーできる場合には、コピー開始位置のアドレスのフィールドを省略してもよい。あるいは、1つのエントリがNALユニット全体を示すこととし、コピー後にNALユニットのヘッダをNALサイズ形式に変換してもよい。このときも、データを連続的に読み出すことができるため、コピー開始位置のアドレスは不要である。
(実施の形態2)
BD−ROM規格では、複数のMPEG2−TSのファイルをプレイリストから参照して連続的に再生することができ、ファイルの境界におけるストリームの制約条件なども規定されている。例えば、複数のファイルあるいは再生区間がシームレスに接続される場合には、接続対象となる2本のオーディオの再生区間をオーバーラップさせてもよい。
MP4においても、プレイリストを用いて連続再生される複数のMP4ファイルを指定することは可能であり、また、同様の制約条件を加えることが想定される。
図21は、連続して再生される2つのMP4ファイルにおけるオーディオとビデオの再生区間の例を示す図である。この図21に示すように、オーディオの再生区間はオーバーラップする。しかしながら、MP4におけるDTS(Decode TimeStamp)またはPTSは、ファイル内の先頭サンプルのDTSを基準(=0)とした相対時刻によって表現され、絶対時刻で表現できない。したがって、再生区間が互いにオーバーラップする2つのMP4ファイル(XXX1.MP4とXXX2.MP4)を連続して再生すると、XXX1.MP4の最終サンプルの直後にXXX2.MP4の先頭サンプルが再生される。その結果として、それぞれのオーバーラップ部分が連続して再生されることになる。
そのため、本実施の形態では、XXX1.MP4とXXX2.MP4の再生区間がオーバーラップしているかどうか、あるいは、オーバーラップしている再生区間を示す情報をプレイリスト、あるいは、MP4ファイル内に格納する。図21に示す例では、プレイリスト内のプレイアイテムが参照するMP4ファイルにおけるオーディオとビデオのそれぞれの先頭サンプルのPTSと最終サンプルの再生終了時刻とが記述される。また、MP4ファイルのmoov内に、MP4ファイルの先頭サンプルのDTSまたはPTSの絶対時刻を格納してもよい。あるいは、moofまたはtrafに、Movie fragmentの先頭サンプルまたはMovie fragment内のトラック毎の先頭サンプルの、DTSまたはPTSの絶対時刻を格納してもよい。
例えば、XXX1.MP4とXXX2.MP4において、ビデオの再生区間はオーバーラップもギャップも無く、PTSが連続することが保証される。この場合、オーディオあるいはテキストについてのみ、オーバーラップに関する情報を示せばよい。XXX2.MP4のビデオの先頭サンプルのPTSをT0とすると、XXX2.MP4におけるオーディオの先頭サンプルのPTSとT0とのオフセット値、あるいは、XXX1.MP4のオーディオの最終サンプルの再生終了時刻とT0とのオフセット値を格納してもよい。また、XXX1.MP4の最終オーディオサンプルの再生終了時刻とXXX2.MP4の先頭サンプルのPTSとのオフセット値をXXX2.MP4に格納してもよい。再生装置は、オーバーラップに関するこれらの情報に基づいて、出力するオーディオサンプルの選択や合成などを行う。なお、ビデオの再生区間をオーバーラップさせてもよいし、オーディオまたはビデオの再生区間をオーバーラップさせるのではなく、ギャップを設けてもよい。
図21に示す例では、プレイリストを用いて複数のファイルが連続再生されるが、本実施の形態では、連続して再生される再生区間を統合して1つのMP4ファイルを生成してもよい。
図22Aは、再生区間を統合して1つのMP4ファイルを生成する方法を説明するための図である。
本実施の形態では、図22Aに示すように、例えば再生区間1と再生区間2を統合してXXX3.MP4を生成する。再生区間1のオーディオは、例えば、サンプル1−1からサンプル1−100までの100個のサンプルから構成される。再生区間2のオーディオは、例えば、サンプル2−1からサンプル2−100までの100個のサンプルから構成される。以下、オーディオを例に説明する。
まず、再生区間1と再生区間2のそれぞれの再生区間にオーバーラップもギャップも存在しなければ、XXX3.MP4のオーディオトラックには、サンプル1−1からサンプル1−100に続いて、サンプル2−1からサンプル2−100が格納され、再生時には、各サンプルが順に再生される。次に、サンプル1−100とサンプル2−1の再生区間がオーバーラップする場合について説明する。サンプル1−100とサンプル2−1の再生区間(開始時刻:PTS、終了時刻:PTS+再生時間長)が同一である場合には、サンプル2−1を削除してXXX3.MP4のオーディオトラックを構成する。これにより、サンプル間のオーバーラップは解消される。これは、再生区間1に含まれる複数のサンプルの再生区間と、再生区間2に含まれる複数のサンプルの再生区間とがオーバーラップする場合も同様である。
一方、サンプル1−100とサンプル2−1の再生区間がオーバーラップし、かつ、それぞれのサンプルの再生区間が同一ではない場合には、サンプルの削除によっては対応できない。
そこで、オーバーラップがある場合、XXX3.MP4のオーディオトラックにはサンプル1−100とサンプル2−1を共に格納した上で、オーバーラップした再生区間を示す情報を格納する。オーバーラップしている再生区間の時間長をΔTとする。この場合、例えば、再生区間1の最終サンプルと再生区間2の先頭サンプルが互いに異なるムービーフラグメントとされ、ΔTをmoofのtraf内などに格納する。このΔTは、再生区間2に含まれるムービーフラグメントにおけるオーディオトラックの先頭からΔTの再生区間が、直前のムービーフラグメントのオーディオトラックの再生区間とオーバーラップすることを示す。
ギャップが存在する場合には、MP4におけるエディットリストの機能または、ムービーフラグメントにおけるduration−is−empty flagのセットなどによって、ギャップ区間に対応する無再生区間を生成する。
また、オーバーラップ区間(オーバーラップしている再生区間)またはギャップ区間(ギャップが存在する区間)を、MP4ヘッダにおけるメタデータまたは外部ファイルに示してもよい。なお、オーバーラップ区間を含むMP4よりも、ギャップ区間を含むMP4のほうが、従来のMP4との親和性が高い。したがって、互いにオーバーラップ区間を含む再生区間を統合してMP4ファイルを生成する際には、例えば、図22Aの再生区間2において、オーバーラップ区間の少なくとも一部を含むサンプルを削除する。その上で、ギャップが発生した場合には、無再生区間を生成する。この方法は、オーディオだけでなく、ビデオや字幕などに対しても適用できる。また、削除が必要であるかどうか、及び、削除が必要なサンプル、削除した結果発生するギャップの時間長などを示す情報を、コピーマニフェストなどの補助情報として格納してもよい。
このようなMP4ファイルを再生する再生装置は、MP4ファイル内に含まれるオーバーラップ区間などの情報に基づいて、そのオーバーラップ区間のオーディオデータを再生する。つまり、再生装置は、再生対象のオーディオデータがオーバーラップ区間のデータであれば、例えば、オーバーラップしているそれぞれの再生区間のデータを含むオーディオサンプルの復号結果を合成する。そして、再生装置は、その合成された復号結果を出力する。また、連続して再生される再生区間を統合する際には、統合対象の再生区間においてオーバーラップ区間やギャップ区間が存在するかどうかを識別する必要がある。そこで、オーバーラップ区間などの有無、及び、その時間長を示す情報を、補助情報として光ディスク内、あるいは、インターネットなどから取得してもよい。
図22Bは、本実施の形態におけるファイル生成装置のブロック図である。
本実施の形態におけるファイル生成装置20は、MP4ファイルを生成するファイル生成装置であって、統合部21および格納部22を備えている。統合部21は、2つのストリームが連続して再生されるようにその2つのストリームを統合することによって1つのMP4ファイルを生成する。格納部22は、その2つのストリームのそれぞれにおいて再生のタイミングがオーバーラップする区間を示す情報を、生成されたMP4ファイルに格納する。例えば、上述の2つのストリームは、図22Aに示す再生区間1および再生区間2であって、生成されるMP4ファイルは、図22Aに示す“XXX3.MP4”のファイルである。さらに、2つのストリームのそれぞれにおいて再生のタイミングがオーバーラップする区間は、例えば、図22Aに示すΔTの区間である。
図22Cは、本実施の形態におけるファイル生成方法のフローチャートである。
本実施の形態におけるファイル生成方法は、MP4ファイルを生成するファイル生成方法であって、ステップS21およびステップS22を含む。ステップS21では、2つのストリームが連続して再生されるようにその2つのストリームを統合することによって1つのMP4ファイルを生成する。次に、ステップS21では、その2つのストリームのそれぞれにおいて再生のタイミングがオーバーラップする区間を示す情報を、生成されたMP4ファイルに格納する。ここで、ステップS21では、それぞれMP4のファイルフォーマットで構成されている元ファイルの少なくとも一部である2つのストリームを統合する。また、ステップS21では、それぞれオーディオのデータを含む2つのストリームを統合する。
これにより、本実施の形態では、MP4ファイルには、オーバーラップの区間を示す情報が格納されている。したがって、そのMP4ファイルを再生する再生装置は、その情報を用いて、MP4ファイルから、オーバーラップの区間のデータを容易に特定することができる。その結果、再生装置は、そのオーバーラップの区間のデータを合成するなどによってそのデータを適切に再生することができる。つまり、オーバーラップの再生に適したMP4ファイルを生成することができる。
また、ステップS21では、2つのストリームのうちの何れか一方のストリームに含まれる複数のサンプルにわたって上述の区間が存在する場合、その複数のサンプルのうちの少なくとも1つを削除した後に、2つのストリームを統合する。これにより、サンプルが削除されるため、オーバーラップの区間を短くすることができる。その結果、オーバーラップの区間に対する再生装置による特別な処理の負担を軽減することができる。
また、ステップS22では、上述の区間の時間長を示す時間情報を上述の情報としてMP4ファイルに格納する。つまり、上述のΔTを示す時間情報をMP4ファイルに格納する。これにより、MP4ファイルを再生する再生装置は、その情報を用いて、オーバーラップの区間の時間長を容易に特定することができる。その結果、再生装置は、そのオーバーラップの区間のデータを合成するなどによって、特定された時間長内でそのデータを適切に再生することができる。
また、ステップS22では、MP4ファイルにおけるmoof内のtrafにその時間情報を格納する。これにより、再生装置は、格納されている時間情報を適切に取得することができる。
また、本実施の形態におけるファイル生成方法では、上述の情報を保持している装置から、インターネットなどの通信ネットワークを介してその情報を取得してもよい。あるいは、上述の情報を記録している光ディスクからその情報を取得してもよい。これにより、わざわざオーバーラップの区間を示す情報を生成することなく、MP4ファイルにその情報を簡単に格納することができる。
図22Dは、本実施の形態における再生装置のブロック図である。
本実施の形態における再生装置30は、MP4ファイルを再生する再生装置であって、抽出部31および合成部32を備えている。抽出部31は、再生対象のコンテンツ(例えばオーディオトラック)において再生のタイミングがオーバーラップする2つの区間を示す情報をMP4ファイルから抽出する。合成部32は、抽出された情報に基づいてそのコンテンツにおける2つの区間を特定し、その2つの区間のそれぞれのデータに対する復号結果を合成して出力する。
図22Eは、本実施の形態における再生方法のフローチャートである。
本実施の形態における再生方法は、MP4ファイルを再生する再生方法であって、ステップS31およびステップS32を含む。ステップS31では、再生対象のコンテンツ(例えばオーディオトラック)において再生のタイミングがオーバーラップする2つの区間を示す情報をMP4ファイルから抽出する。次に、ステップS32では、抽出された情報に基づいてそのコンテンツにおける2つの区間を特定し、その2つの区間のそれぞれのデータに対する復号結果を合成して出力する。
これにより、再生装置は、MP4ファイルから、オーバーラップの区間のデータを容易に特定することができる。その結果、再生装置は、そのオーバーラップの区間のデータを適切に再生することができる。
また、本実施の形態における記録媒体は、MP4ファイルを記録している記録媒体である。そのMP4ファイルは、コンピュータに読み出されて再生されるコンテンツ(例えばオーディオトラック)と、そのコンテンツにおいて再生のタイミングがオーバーラップする2つの区間を示す情報とを含む。これにより、記録媒体からそのMP4ファイルを読み出して再生する再生装置は、その情報を用いて、MP4ファイルから上述の2つの区間のデータを容易に特定することができる。その結果、再生装置は、それらの区間のデータを合成するなどによってそのデータを適切に再生することができる。
(実施の形態3)
図23Aは、光ディスクに格納されたコンテンツからMP4ファイルを生成する場合のメニュー画面の一例を示す図である。図23Bは、光ディスクおよびネットワークを利用したMP4ファイルの生成方法を説明するための図である。
光ディスク内には、複数言語のオーディオや字幕が格納されており、MP4ファイルの生成時には、MP4ファイルに格納する言語を選択することができる。本例においては、ディスク内に格納される日本語、英語、スペイン語、および中国語から、オーディオ、字幕のそれぞれに対して、日本語と英語とが選択されている。ここで、オーディオあるいは字幕におけるサンプルのサイズが言語毎に異なると、コピーマニフェストファイルの内容はサンプルのサイズに依存する。このため、オーディオまたは字幕における選択言語の組合せに比例してコピーマニフェストファイルの種類が増加する。したがって、MP4ファイルには、常に全言語のオーディオと字幕のデータを格納して、ユーザーが選択した言語を示す情報をさらに格納しておき、再生時には、ユーザーの所望の言語を選択可能としてもよい。こうすることで、コピーマニフェストファイルは選択言語に依らず同一にすることができる。あるいは、各言語の1つだけを格納するケース、及び、全言語を格納するケースの2つのケースに対応するコピーマニフェストファイルを用意しておいてもよい。また、MP4ファイルを再生する機器におけるサポートの有無などに応じて、AACまたはAC3などのオーディオの符号化方式を選択できるようにしてもよい。あるいは、全ての符号化方式のオーディオデータをMP4ファイルに格納してもよい。全ての符号化方式のオーディオデータを格納する場合、再生時には、ユーザーの選択操作、あるいは、再生装置のプリセット情報などに基づいて、符号化方式が選択される。
あるいは、MP4ファイルの生成時には言語の選択を行わずに、全ての言語のオーディオと字幕を格納しておき、再生時にユーザーが選択してもよい。また、図23Bに示すように、コピーマニフェストファイルをネットワーク経由で取得できるようにしておけば、コピーマニフェストファイルを光ディスクに格納する必要がない。特に、任意の言語を選択可能とするなどのために、コピーマニフェストファイルの個数が増加する場合において、ネットワーク経由での取得は有効である。デフォルトの言語組合せに対応するコピーマニフェストファイルのみ光ディスクに格納しておき、その他の組合せに対応するコピーマニフェストファイルはサーバーからダウンロードしてもよい。また、光ディスク、あるいは、ネットワークから取得可能な言語のオーディオまたは字幕と、MP4ファイル内に含まれるオーディオまたは字幕の言語とを、それぞれ取得しておき、MP4ファイル内に含まれない言語のうち、外部から取得可能な言語をユーザーが選択して取得してもよい。
あるいは、外部から取得可能なオーディオのリストをMP4ファイル内などに格納しておく。そして、MP4ファイルの再生時に、再生装置がMP4ファイル内のオーディオの符号化方式を復号できない場合には、再生装置がサポートする符号化方式のオーディオを選択して、外部から取得してもよい。このとき、外部から取得するデータは、字幕またはオーディオのみを含む符号化データ、あるいは、MP4ファイルであってもよい。このとき、再生時には元々のMP4ファイルに含まれるビデオなどと、新規に取得したデータとを同期再生する。または、ビデオ、オーディオ、および字幕を全て含む完全なMP4ファイルを外部から取得してもよい。
また、光ディスクに格納されるコンテンツがMPEG2−TSのファイルではなく、MP4ファイルであってもよい。この場合には、変換処理を行わずに、光ディスク内に格納されたMP4ファイルのデータを、デバイスバインドあるいはメディアバインドされた記録媒体または機器に対して、そのままコピー、あるいは、エクスポートしてもよい。コピーあるいはエクスポート時には、コンテンツを暗号化する鍵を変更してもよい。BDプレーヤなどのMP4ファイルを生成する機器では、光ディスク内のコンテンツがMPEG2ーTS形式あるいはMP4形式のどちらであるかを、データ形式の識別情報などに基づいて判断することによって、MP4ファイルに変換する必要があるかどうかを判定して、MP4ファイルを生成してもよい。あるいは、コピーマニフェストファイルなどの補助情報において、MP4への変換が必要であるかどうかを示す情報を示してもよい。また、光ディスクに格納されるコンテンツがMP4形式であっても、コンテンツ内の特定言語のオーディオまたは字幕、あるいは、劇場公開版またはディレクターズカット版などの種別をユーザーが選択してもよい。そして、選択結果に基づいて光ディスク内のMP4ファイルから選択されたデータのみを抽出してMP4ファイルを生成してもよい。
ここで、図7を用いて説明したように、出力されるMP4ファイルの多重化単位を特定するための情報をコピーマニフェストファイルに示すことによっても、ファイルサイズを削減でき、コピーマニフェストファイルの個数が多い場合には有効である。このとき、コピーマニフェストに示される情報としては、MP4ファイルにおけるムービーフラグメントの単位を一意に決定でき、かつ、言語に依存しない情報を用いることができる。その情報は、例えば、ムービーフラグメントの先頭となるサンプルのPTSあるいはDTS、または、サンプルデータが取得されるMPEG2−TSのファイルの識別情報などである。ここで、MP4ファイルのサンプルのサイズが異なると、MP4ファイルのヘッダ情報のうち、moov内のstbl内に含まれるBox、またはmoof内のtrunなどの内容が異なる。このため、異なる言語に対して共通に用いることができるコピーマニフェストファイルにおいては、MP4ファイルのヘッダ情報を含めることができない。したがって、MP4ファイルに変換する際には、コピーマニフェストファイルに基づいてムービーフラグメントの単位を決定すると共に、MP4ファイルのヘッダ情報を、サンプル毎のPTSあるいはDTS、または、サンプルのサイズなどに基づいて生成する。
サンプル毎のPTS、DTSまたはサイズを取得する際には、MPEG2−TSに多重化された、あるいは、多重化されずに別領域に格納されたオーディオ、ビデオまたは字幕などのデータから、アクセスユニットの境界をサーチする必要がある。または、PESパケットヘッダを解析するなどの処理が必要となる。これらの必要とされる処理負荷は、ビットレートの高いビデオに対しては高い。従って、少なくともビデオに対しては、アクセスユニット(MP4ファイルのサンプルに相当)を構成するNALユニットのサイズ、及び、PTSまたはDTSを示す情報をコピーマニフェストに格納してもよい。
図24は、NALユニットのサイズ、PTSおよびDTSを示すコピーマニフェストの一例を示す図である。
コピーマニフェストには、アクセスユニットごとに、そのアクセスユニットを構成する各NALユニットのサイズ、PTSおよびDTSを示す情報が格納されている。これらの情報により、ビデオストリームをサーチする処理を大幅に低減することができる。さらに、サイズ情報を用いて、MPEG2−TSのスタートコード形式をMP4のNALサイズ形式に変換できるという利点もある。サイズ情報は、スタートコード部分のサイズとNALユニット部分のサイズとを別々に示してもよい。NALユニットのサイズを示すフィールドのバイト長とNALサイズ形式におけるサイズ部分のバイト長とを同一としてもよい。これにより、スタートコード部分のデータをNALユニット部分のサイズを示すデータで置き換えることにより、NALサイズ形式に変換できる。なお、このスタートコードは、図15Bに示す識別情報に相当し、zero_byteを含む。
また、スタートコード部分のサイズが全て同一である場合には、デフォルト値のみを設定してもよい。また、PTSまたはDTSは、MPEG2−TSのPESヘッダにおけるPTSまたはDTSの値で表現されるのではなく、MP4のヘッダにおいて使用されるデータ形式で表現されてもよい。例えば、DTSについては、復号順で連続する2つのサンプルのDTSの差分値を示し、PTSについては、DTSとPTSの差分値を示すことができる。これらの情報のタイムスケールを、MP4におけるタイムスケールに変換しておいてもよい。さらに、先頭サンプルのPTSまたはDTSの絶対値を示す情報を格納しておいてもよい。また、MP4ファイルへの変換時に削除するNALユニットを識別するための情報を追加してもよい。また、AACの符号化ストリームに対して同様の補助情報を格納する場合には、ADTSやLATMなどのヘッダ情報はサンプルデータから削除される。しかし、これらヘッダ情報のサイズが固定であれば、ヘッダ情報とペイロードデータのサイズの合計値、および、ペイロードデータのサイズのうちのいずれか一方のみを示してもよい。また、オーディオの場合は、固定フレームレートとなるため、DTS情報はデフォルト値のみ示してもよい。
なお、オーディオの符号化方式が異なると、サンプル毎の再生時間長も異なることがある。結果として、サンプル毎のPTSまたはDTSも異なるため、オーディオの符号化方式毎にコピーマニフェストファイルを用意してもよい。
ここで、MP4ファイルに字幕データを格納する場合には、字幕データをファイルの末尾にまとめて格納してもよい。
図25は、MP4ファイルの末尾に格納されている字幕データの一例を示す図である。
この場合、字幕データの言語を変更しても、AV(Advanced Video)データのムービーフラグメントは同一である。一方で、ビデオまたはオーディオのムービーフラグメントと字幕のムービーフラグメントとをインタリーブして格納すると、moofの内容を変更する必要がある。これは、字幕データのサイズが変化するとAVデータのムービーフラグメントの位置が変化するためである。また、字幕データはAVデータと比較してサイズが小さい。したがって、コンテンツ全体の字幕データ、あるいは、コンテンツを分割したチャプターなどの単位に含まれる字幕データを、一括してメモリに展開して再生することも可能である。この時、ファイルの末尾にまとめて字幕データが格納されていると、その字幕データを取得し易いという利点もある。
ここで字幕データは、テキストフォントに基づくものであってもよいし、PNG(Portable Network Graphics)形式などの画像データであってもよい。画像データの場合にはテキスト形式よりもデータサイズが大きくなるため、チャプターなどの単位毎にtrunを生成して、所定の単位に含まれる字幕データへのアクセス性を高めるなどしてもよい。あるいは、再生時にテキストデータを保持するバッファサイズに応じて、trunを構成する字幕データのサイズがバッファサイズ以下となるようにtrunを生成してもよい。
さらに、複数言語の字幕データを格納する際には、各言語を異なるムービーフラグメントに格納することで、特定言語の字幕データを容易に取得できる。このとき、ムービーフラグメントに格納される言語を特定するための情報が必要である。そこで、例えば、各言語を異なるトラックとして扱い、トラックのIDと言語とを対応付けてもよい。トラックのIDは、traf内のBoxにより示される。なお、トラックのIDと言語を対応付ける情報は、MP4におけるメタデータ格納用のBoxなどに格納してもよいし、MP4ファイルとは異なる管理情報としてもよい。また、言語とムービーフラグメントとの対応付けは、オーディオに対しても適用できる。
ビデオ、オーディオあるいは字幕におけるランダムアクセス可能なサンプルは、mfraによって示される。ここで、互いに連続するビデオとオーディオのムービーフラグメントの再生区間が整合する場合には、ビデオのランダムアクセスポイントのみを示せばよい。この場合、PTSが同一、直前または直後となるオーディオのサンプルを、直後のムービーフラグメントから取得することができる。例えば、図25において、ビデオ(V−1)の先頭サンプルと、オーディオ(A−1)の先頭サンプルのPTSが整合する。一方、テキストをファイル末尾に格納する場合には、テキストに対しては独立にランダムアクセスポイントを示す必要がある。
また、光ディスクのコンテンツにおける全ての言語のオーディオまたは字幕のデータがMP4ファイルに格納される。ここで、MP4ファイルの生成時にユーザーが所望の言語を選択している場合には、選択された言語に対応するトラックについてのみ、mfraにおいてランダムアクセスポイントを示してもよい。
ここで、光ディスクに格納されるコンテンツでは、ビデオとグラフィクスの解像度が異なることが想定される。例えば、ビデオの解像度は4Kであり、字幕などのグラフィックスの解像度は処理量を抑えるために2Kとされる。
図26は、2Kの解像度の字幕を4Kにスケーリングして表示するケースを示す図である。字幕の表示にあたっては、字幕データ及びその解像度と共に、字幕の表示領域を指定するための情報が必要である。表示領域は、例えば、矩形の表示領域のサイズ及び表示位置を用いて指定される。例えば、トラックの解像度を示す情報は、字幕のトラックが2Kであり、ビデオのトラックが4Kであることを示すことができる。また、SMPTE(Society of Motion Picture and Television Engineers)またはW3C(World Wide Web Consortium)のTimed Textなどでは、Timed Textを構成するXML(extensible markup language)データの一部として表示領域の情報を記述してもよいし、MP4ファイル内のメタデータを示すBoxに格納してもよい。
MP4ファイルを再生する際には、ビデオと字幕の解像度を取得して、両者の解像度が異なる場合には、ビデオの解像度と一致するように字幕をスケーリングして表示する。このとき、字幕が画像データであれば、画像データを拡大するなどし、テキストデータであれば、ビデオの解像度と整合するサイズを選択する。表示領域についても、スケーリングの係数などに応じて計算して決定する。なお、ビデオの解像度に合わせてスケーリングした後の表示領域を示す情報を格納してもよい。
なお、上記実施の形態および各変形例において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記実施の形態および各変形例におけるファイル生成装置などを実現するソフトウェアは、図8または図17などに示すフローチャートに含まれる各ステップを、コンピュータに実行させる。
以上、一つまたは複数の態様に係るファイル生成装置および再生装置について、各実施の形態および各変形例に基づいて説明したが、本発明は、これらの実施の形態および各変形例に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を各実施の形態および各変形例に施したものや、各実施の形態および各変形例における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
例えば、実施の形態1およびその変形例では、MPEG2−TSによって構成されたファイルを元ファイルとして用いた。しかし、元ファイルは、MP4と異なるファイルフォーマットによって構成されているファイルであれば、MPEG2−TSのファイル以外のどのようなファイルまたはトランスポートストリームであってもよい。
また、実施の形態2では、図22Aに示すように、再生区間1と再生区間2とを統合したが、これらの再生区間のそれぞれはMP4ファイルのムービーフラグメントであっても、それ以外の他のストリームであってもよい。
また、以下のような場合も本発明に含まれてもよい。
(1)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(2)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
(3)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
以上、本発明の一つまたは複数の態様に係るデータ送信方法およびデータ再生方法などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つまたは複数の態様の範囲内に含まれてもよい。
本発明は、処理負荷を抑えることができるという効果を奏し、例えば、ファイルフォーマットをMPEG2−TSからMP4に変換する装置に適用することができ、例えばスマートフォンまたはタブレットなどの機器に利用可能である。
10,20,100 ファイル生成装置
11 元ファイル取得部
12 差分ファイル取得部
13 手順ファイル取得部
14,104 生成部
21 統合部
22 格納部
30 再生装置
31 抽出部
32 合成部
101 補助情報サーチ部
103 補助情報解析部
104a サンプル生成部
104b サンプルエントリ生成部

Claims (11)

  1. MP4ファイルを生成するファイル生成方法であって、
    2つのストリームが連続して再生されるように前記2つのストリームを統合することによって1つのMP4ファイルを生成し、
    前記2つのストリームのそれぞれにおいて再生のタイミングがオーバーラップする区間を示す情報を、生成された前記MP4ファイルに格納する
    ファイル生成方法。
  2. 前記2つのストリームの統合では、
    それぞれMP4のファイルフォーマットで構成されている元ファイルの少なくとも一部である前記2つのストリームを統合する
    請求項1に記載のファイル生成方法。
  3. 前記2つのストリームの統合では、
    前記2つのストリームのうちの何れか一方のストリームに含まれる複数のサンプルにわたって前記区間が存在する場合、
    前記複数のサンプルのうちの少なくとも1つを削除した後に、前記2つのストリームを統合する
    請求項2に記載のファイル生成方法。
  4. 前記情報の格納では、
    前記区間の時間長を示す時間情報を前記情報として前記MP4ファイルに格納する
    請求項1〜3の何れか1項に記載のファイル生成方法。
  5. 前記情報の格納では、
    前記MP4ファイルにおけるmoof内のtrafに前記時間情報を格納する
    請求項4に記載のファイル生成方法。
  6. 前記ファイル生成方法では、
    前記情報を保持している装置または光ディスクから前記情報を取得する
    請求項1〜5の何れか1項に記載のファイル生成方法。
  7. 前記2つのストリームの統合では、
    それぞれオーディオのデータを含む前記2つのストリームを統合する
    請求項1〜6の何れか1項に記載のファイル生成方法。
  8. MP4ファイルを再生する再生方法であって、
    再生対象のコンテンツにおいて再生のタイミングがオーバーラップする2つの区間を示す情報を前記MP4ファイルから抽出し、
    抽出された前記情報に基づいて前記コンテンツにおける前記2つの区間を特定し、当該2つの区間のそれぞれのデータに対する復号結果を合成して出力する
    再生方法。
  9. MP4ファイルを生成するファイル生成装置であって、
    2つのストリームが連続して再生されるように前記2つのストリームを統合することによって1つのMP4ファイルを生成する統合部と、
    前記2つのストリームのそれぞれにおいて再生のタイミングがオーバーラップする区間を示す情報を、生成された前記MP4ファイルに格納する格納部と
    を備えるファイル生成装置。
  10. MP4ファイルを再生する再生装置であって、
    再生対象のコンテンツにおいて再生のタイミングがオーバーラップする2つの区間を示す情報を前記MP4ファイルから抽出する抽出部と、
    抽出された前記情報に基づいて前記コンテンツにおける前記2つの区間を特定し、当該2つの区間のそれぞれのデータに対する復号結果を合成して出力する合成部と
    を備える再生装置。
  11. MP4ファイルを記録している記録媒体であって、
    前記MP4ファイルは、コンピュータに読み出されて再生されるコンテンツと、前記コンテンツにおいて再生のタイミングがオーバーラップする2つの区間を示す情報とを含む
    記録媒体。
JP2014235068A 2013-12-03 2014-11-19 ファイル生成方法、再生方法、ファイル生成装置、再生装置および記録媒体 Pending JP2015109131A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/005963 WO2015083354A1 (ja) 2013-12-03 2014-11-28 ファイル生成方法、再生方法、ファイル生成装置、再生装置および記録媒体

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361911006P 2013-12-03 2013-12-03
US61/911,006 2013-12-03
US201361918131P 2013-12-19 2013-12-19
US61/918,131 2013-12-19

Publications (1)

Publication Number Publication Date
JP2015109131A true JP2015109131A (ja) 2015-06-11

Family

ID=53439367

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014235068A Pending JP2015109131A (ja) 2013-12-03 2014-11-19 ファイル生成方法、再生方法、ファイル生成装置、再生装置および記録媒体

Country Status (1)

Country Link
JP (1) JP2015109131A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018097192A (ja) * 2016-12-14 2018-06-21 Kddi株式会社 ストリーム暗号における内部状態の初期化装置、方法及びプログラム
JP2020184784A (ja) * 2015-09-29 2020-11-12 日本放送協会 受信装置およびプログラム
US11290785B2 (en) * 2016-01-19 2022-03-29 Sony Corporation Transmission apparatus, transmission method, reception apparatus, and reception method for transmitting subtitle text information

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020184784A (ja) * 2015-09-29 2020-11-12 日本放送協会 受信装置およびプログラム
US11290785B2 (en) * 2016-01-19 2022-03-29 Sony Corporation Transmission apparatus, transmission method, reception apparatus, and reception method for transmitting subtitle text information
JP2018097192A (ja) * 2016-12-14 2018-06-21 Kddi株式会社 ストリーム暗号における内部状態の初期化装置、方法及びプログラム

Similar Documents

Publication Publication Date Title
JP6467680B2 (ja) ファイル生成方法およびファイル生成装置
WO2016027579A1 (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにプログラム
JP2019024229A (ja) ファイル生成方法およびファイル生成装置
JP2013093755A (ja) 映像記録装置及び映像記録方法
JP7052733B2 (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにプログラム
JP2015109131A (ja) ファイル生成方法、再生方法、ファイル生成装置、再生装置および記録媒体
JP2017183762A (ja) 映像ストリーム生成方法、再生装置及び記録媒体
JP6500895B2 (ja) 情報処理装置、情報生成装置、情報記録媒体、および情報処理方法、並びにプログラム
WO2015083354A1 (ja) ファイル生成方法、再生方法、ファイル生成装置、再生装置および記録媒体
JP7215415B2 (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにプログラム
JP7024787B2 (ja) 情報処理装置、および情報処理方法、並びにプログラム
WO2015105037A1 (ja) ファイル生成方法、ファイル生成装置および記録媒体
WO2016027426A1 (ja) 映像ストリーム生成方法、再生装置及び記録媒体
CN110462735B (zh) 信息处理设备、信息记录介质、信息处理方法和程序
JP6982829B2 (ja) 記録装置、記録方法および記録媒体
WO2016002127A1 (en) Mpeg-2-ts to mp4 format conversion without decryption
WO2015072127A1 (ja) ファイル生成方法およびファイル生成装置
WO2015186479A1 (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにプログラム