メディアファイル修復方法、メディアファイル作成方法及びメディアファイル再生方法並びに装置
【課題】作成時にエラーが生じたメディアファイルを再生可能に修復できるメディアファイル修復方法を提供する。
【解決手段】MDATデータを解析してメディアデータのサイズを示すメディアサイズデータを生成し、MOOVに格納される基本情報のうち、メディアデータのサイズから導き出せる情報に生じた破損を、メディアサイズデータを用いて復元して、MDATデータと復元したMOOVデータとからMP4ファイルを作成する。
【解決手段】MDATデータを解析してメディアデータのサイズを示すメディアサイズデータを生成し、MOOVに格納される基本情報のうち、メディアデータのサイズから導き出せる情報に生じた破損を、メディアサイズデータを用いて復元して、MDATデータと復元したMOOVデータとからMP4ファイルを作成する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、エラーにより破損したメディアファイルを修復するメディアファイル修復方法、エラーに対する耐性を有したメディアファイルを作成するメディアファイル作成方法、及びメディアファイルを再生するメディアファイル再生方法並びにこれら方法の処理を実行する装置に関するものである。
【背景技術】
【0002】
映像や音声等のメディアファイルをデジタルデータとして扱う際、ランダムアクセス性の確保や、映像と音声との同期をとるため、メディアファイルフォーマット(以下、単にファイルフォーマットと呼ぶ)を利用して、メディアデータを格納したり多重化する場合が多い。例えば、MPEG−4(Moving Picture Expert Group)形式のフォーマット(以下、MP4と呼ぶ)は、ファイルフォーマットの代表的なものである。
【0003】
MP4形式のファイルフォーマットは、ISO(国際標準化機構)にて規格化されており、後述するボックスと呼ばれるデータ構造を有する。MP4では、ボックスの名称によってボックス内のデータ内容が定められている。例えば、MOOVボックスには、画像のサイズや再生時の表示時刻が記録されている。また、MDATボックスには、メディアデータが記録されている。
【0004】
メディアデータを多重化し、ファイルフォーマットに準拠したメディアファイルを作成するにあたり、停電や作成装置からメディア記憶媒体が取り出される等の事故によって、メディアファイルの作成に失敗した場合、このメディアファイルには、メディアデータが正常なファイルフォーマットの形式で記録されていない可能性がある。この場合、正常にメディアデータを再生できないため、メディアファイル作成を最初からやり直す必要がある。
【0005】
上記の不具合を解消しようとする従来の技術として、特許文献1に開示される記録装置がある。この装置では、MDATボックスとMOOVボックスの両方を不揮発性記録媒体に書き込むことにより、メディアファイル作成時に上記の事故が発生しても、再生可能なメディアファイルを作成することができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−281772号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1では、MDATボックスとMOOVボックスとの両方の記録に成功すれば、メディアファイル作成時に事故が発生しても再生可能なメディアファイルを作成することができる。しかしながら、上記の事故でMOOVボックスの記録に失敗すると、MDATボックスの記録に成功しても、再生可能なメディアファイルを作成することができないという課題があった。
【0008】
この発明は、上記のような課題を解決するためになされたもので、作成時にエラーが生じたメディアファイルを再生可能に修復できるメディアファイル修復方法、エラーに対して復元ポイントを有するメディアファイルを作成するメディアファイル作成方法、及びメディアファイルを再生するメディアファイル再生方法並びにこれら方法を実現する装置を得ることを目的とする。
【課題を解決するための手段】
【0009】
この発明に係るメディアファイル修復方法は、圧縮されたメディアデータを格納する第1のボックスと、メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを修復するメディアファイル修復方法において、第1のボックスを解析してメディアデータのサイズを示すサイズデータを生成するステップと、第2のボックスに格納される基本情報のうち、メディアデータのサイズから導き出せる情報に生じた破損を、サイズデータを用いて復元するステップと、第1のボックスと復元した第2のボックスからメディアファイルフォーマットに準拠したメディアファイルを作成するステップとを備えるものである。
【発明の効果】
【0010】
この発明によれば、第1のボックスを解析してメディアデータのサイズを示すサイズデータを生成し、第2のボックスに格納される基本情報のうち、メディアデータのサイズから導き出せる情報に生じた破損を、サイズデータを用いて復元して、第1のボックスと復元した第2のボックスからメディアファイルフォーマットに準拠したメディアファイルを作成する。このようにすることで、作成時にエラーが生じたメディアファイルを再生可能に修復できるという効果がある。
【図面の簡単な説明】
【0011】
【図1】MP4ファイルフォーマットのボックス構造を示す図である。
【図2】MP4ファイルの構造を示す図である。
【図3】MDATボックス中のメディア構造を示す図である。
【図4】この発明の実施の形態1によるメディアファイル修復装置の構成を示すブロック図である。
【図5】H.264ビデオESバイトストリームを示す図である。
【図6】NALユニットのサイズを説明する図である。
【図7】H.264ビデオをMDATに格納する構造を示す図である。
【図8】H.264ビデオESがAUデリミタによって区切られることを説明する図である。
【図9】この発明の実施の形態2によるメディアファイル再生装置の構成を示すブロック図である。
【図10】実施の形態1と実施の形態2の構成を組み合わせたメディアファイル修復/再生装置の構成を示すブロック図である。
【図11】この発明の実施の形態3によるメディアファイル作成装置の構成を示すブロック図である。
【図12】実施の形態3で作成されるMDATボックスの構造を示す図である。
【図13】実施の形態3によるメディアファイル修復装置の構成を示すブロック図である。
【図14】この発明の実施の形態4によるメディアファイル再生装置の構成を示すブロック図である。
【図15】実施の形態3と実施の形態4の構成を組み合わせたメディアファイル修復/再生装置の構成を示すブロック図である。
【図16】この発明の実施の形態5によるメディアファイル作成装置の構成を示すブロック図である。
【図17】実施の形態5で作成されるMDATボックスの構造を示す図である。
【図18】実施の形態5によるメディアファイル再生装置の構成を示すブロック図である。
【図19】この発明の実施の形態6によるメディアファイル作成装置の構成を示すブロック図である。
【図20】実施の形態6によるMDATボックスの構造を示す図である。
【図21】実施の形態6によるメディアファイル再生装置の構成を示すブロック図である。
【図22】この発明の実施の形態7によるメディアファイル作成装置の構成を示すブロック図である。
【図23】メディアデータ構造を示す図である。
【図24】実施の形態7による暗号化されたMDATボックスの構造を示す図である。
【図25】この発明の実施の形態7によるメディアファイル再生装置の構成を示すブロック図である。
【発明を実施するための形態】
【0012】
実施の形態1.
先ず、この発明で取り扱うMP4形式のファイルフォーマットについて説明する。
図1は、MP4形式のフィイルフォーマットのボックス構造を示す図である。図1に示すように、MP4形式のフィイルフォーマットのボックス構造は、ボックス長(4バイト)、ボックス名称(4バイト)、データ(データサイズで示された長さ−8バイト)からなる。各ボックスは、そのボックス名称によってデータ部分のフォーマット及び内容が決められる。また、ボックスは入れ子になる場合もある。MP4形式のファイルフォーマットは、図1に示すボックスを複数有するメディア多重化ファイルフォーマットである。
【0013】
図2は、MP4形式メディアファイルのデータ構造の一例を示す図である。図2では、MP4形式の最も単純なファイル構成を示しており、FTYP(ファイルタイプ)ボックス、MOOV(ムービー)ボックス、MDAT(メディアデータ)ボックスからなる。
ただし、MOOVボックスは、内部に複数のボックスが入れ子になって形成されたツリー構造を有する。また、MOOVボックス及びMDATボックスは逆の順序で記録されることもある。
【0014】
MOOVボックスには、メディアファイルの基本的な情報が記録される。例えば、画像の長さ、幅、高さ、音声のサンプリング周波数などである。これ以外にも、MP4ファイルには、どのようなメディアデータがどの大きさ(サイズ)で多重化されているかが記録されている。
【0015】
次に、MOOVボックス内に入れ子になっているボックスについて説明し、上述の情報がどのように記録されるかを述べる。
MOOVボックス内には、STSZ(もしくはSTZ2、以下STSZについて述べるときはSTZ2と置き換えてもよい)というボックスが存在する。このSTSZボックスには、サンプルのサイズが記録される。ここで、サンプルのサイズとは、メディアデータが映像データであれば、各フレームのサイズが記録される。また、メディアデータが音声データであれば、決められた時間単位のデータのサイズが記録される。従って、このSTSZボックスの内容から、各メディアデータのファイル中のサイズを知ることができる。
【0016】
この他、MOOVボックス内には、STCO(もしくはCO64、以下STCOについて述べるときはCO64と置き換えてもよい)というボックスが存在する。このSTCOボックスにはファイル内におけるチャンクの位置が記録される。チャンクとは、一つ以上のサンプルをまとめたものである。メディアデータが映像データであれば、一つ以上の映像フレームを一まとめにしたものであり、メディアデータが音声データであれば、一つ以上の決められた時間単位のデータをまとめたものである。
【0017】
さらに、MOOVボックス内には、STSCというボックスが存在する。このSTSCボックスには、チャンクにおけるサンプル数が記録される。従って、STSZボックス、STCOボックス及びSTSCボックスの内容から、各サンプルの位置とサイズを求めることができる。もし、STSZボックス、STCOボックス及びSTSCボックスから、各サンプルの位置とサイズがわからなければ、MP4ファイルのメディアデータは再生できない。またMOOVボックスが存在していても、STSZボックス、STCOボックス及びSTSCボックスのデータが存在しない、もしくは壊れている場合、MP4ファイルのメディアデータは再生できない。
【0018】
なお、MOOVボックス中には、STSZボックス、STCOボックス、STSCボックス以外の重要なデータとして、各フレームの表示時間を示すSTTSボックスや参照元ピクチャの情報を示すSTSSボックスがある。
【0019】
MDATボックスは、映像や音声など実際のメディアデータを多重化しているボックスである。図3に映像と音声とを多重化した例を示す。図3に示すように、メディアデータは、前述のチャンク単位に分割され、交互に配置されることが多い。これは、再生時の映像と音声の同期やランダムアクセス性能を向上させるためである。
【0020】
上述した通り、MP4ファイルでは、MOOVボックスにMDATボックス内のメディアデータの情報が記録される。このため、MOOVボックスの一部又は全部に異常があった場合、MP4ファイルのメディアデータを再生できない。
【0021】
次に、実施の形態1によるMP4ファイル修復方法について述べる。
何らかの事故でMP4ファイルにMOOVボックスが存在しない場合には、MOOVボックスを作成する必要がある。このとき、MOOVボックス中のデータを何らかの方法で推測して作成しなければならない。
MOOVボックスには、多くのデータがあり、一部のデータが誤っていても再生可能なこともあるが、前述のSTSZボックス、STCOボックス及びSTSCボックスのデータが誤っていると、再生は不可能である。これらのデータが推測できれば、MOOVボックスデータを推測して復元し、メディアデータが再生可能なMP4ファイルフォーマットを修復できる。
なお、この実施の形態1においては、MP4ファイルに格納されるメディアデータは、H.264ビデオES(Elementary Stream)バイトストリームとする。H.264は、ビデオデータを圧縮する方式の一つである。
【0022】
図4は、この発明の実施の形態1によるメディアファイル修復装置の構成を示すブロック図である。図4において、実施の形態1によるメディアファイル修復装置は、MDAT解析部101、MOOV作成部102及びMP4ファイル作成部103を備える。MDAT解析部101は、入力されたMDATデータを解析してメディアサイズデータを作成する構成部である。
また、MOOV作成部102は、SPS(Sequential Parameter Set)データ、PPS(Picture Parameter Set)データ及びメディアサイズデータからMOOVデータを作成する構成部である。MP4ファイル作成部103は、MOOVデータとMDATデータからMP4ファイルを作成する構成部である。
なお、SPSデータには、全てのピクチャを復号するために共通に参照される情報として、プロファイル、最大参照可能ピクチャ数、画像サイズ等が含まれる。
PPSデータには、ピクチャごとにそのピクチャを復号するために参照される情報として、可変長符号化のタイプ、量子化ステップの初期値、参照ピクチャ数等が含まれる。
【0023】
MDAT解析部101、MOOV作成部102、及びMP4ファイル作成部103は、この発明の趣旨に従うメディアファイル修復用プログラムをコンピュータに読み込ませ、そのCPUに実行させることによって、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0024】
次に動作について説明する。
先ず、MDAT解析部101によるMDATデータの解析方法とメディアサイズの取得方法について説明する。
H.264ビデオESバイトストリームは、NAL(Network Abstraction Layer)ユニットから構成される。H.264ビデオESバイトストリーム中のNALユニットは、図5に示すスタートコード、NALヘッダ、RBSP(Raw Byte Sequence Payload)、RBSPトレイリングビットからなる。このうち、スタートコードは、24ビット以上の決められたデータである。NALヘッダは、nal_ref_idcとnal_unit_typeからなり、NALユニットのデータ種類などが記録されている。RBSPは、実際のNALユニット中のデータである。RBSPトレイリングビットは、バイトアライメント用のデータである。
【0025】
H.264ビデオESバイトストリームをMP4のMDATデータにする場合、図6に示すようにスタートコード部分を取り除き、代わりにNALヘッダ、RBSP、RBSPトレイリングビットの合計サイズ(以下、NALユニットサイズと呼ぶ)を先頭部分に記録する。従って、MDATデータは、図7に示すように、MDATのボックス長と、ボックス名称(MDAT)、NALユニットサイズ及びNALユニットデータの繰り返しから構成される。
【0026】
MDAT解析部101では、このMDATデータ中のNALヘッダのデータ及びNALユニットサイズを利用してピクチャのサイズ及び位置を算出する。具体的には、NALヘッダ中のnal_unit_typeを参照し、AU(Access Unit)デリミタを探す。このAUデリミタは、H.264ビデオESバイトストリームにおいて多くの場合に存在するピクチャ間の区切りを表すデータである。
従って、図8に示すように、AUデリミタを探すことにより、各NALユニットがどのピクチャのデータに対応するかが分かり、NALユニットのサイズも既知であるために、MDATデータ内のピクチャの枚数及び各ピクチャのサイズが分かる。このピクチャの枚数及びサイズを、メディアサイズデータとしてMDAT解析部101からMOOV作成部102へ出力する。
【0027】
MOOV作成部102の動作について説明する。
SPSデータ及びPPSデータとメディアサイズデータが入力データとなる。ここで、SPSデータとPPSデータを取得する方法としては、MOOVボックスの一部が残っていればそれを用いる、あるいは、SPSデータ及びPPSデータだけは、元のH.264ビデオESバイトストリームから再度取得する、といった方法が挙げられる。
なお、本発明では、上記データの取得方法の詳細について問わないものとする。また、メディアサイズデータの取得方法は既に述べた通りである。
【0028】
MP4のMOOVボックスにおいて映像の再生に関わる必要最低限のデータとしては、以下が挙げられる。
(1)MVHDボックスのtime_scaleとduration
(2)TKHDボックスのduration、track_widthとtrack_height
(3)MDHDボックスのtime_scaleとduration
(4)STSDボックスのwidth、heightとSPSデータ、PPSデータ
(5)STTSボックスのentry_countとsample_count、sample_delta
(6)STSCボックスのentry_countとfirst_chunk、samples_per_chunk、sample_description_index
(7)STSZボックスのsample_sizeとsample_count、entry_size
(8)STCOボックスのentry_countとchunk_offset
【0029】
以下、順番に(1)〜(8)のデータ修復方法を説明する。
上記(1)のtime_scaleとdurationで、コンテンツの総再生時間が決まる。コンテンツの総再生時間は、duration/time_scale(秒)である。time_scaleが大きい程大きなフレームレートにも対応できるが、オーバーフローを起こし易くなる欠点がある。一般には30000程度でよいと思われる。
ここで、durationは、MDATデータ内のピクチャ枚数及び予想されるフレームレートから決定する。つまり、duration=time_scale/(フレームレート)×(ピクチャの枚数)である。
例えば、time_scaleを30000とし、ピクチャの枚数を1000枚とし、予想されるフレームレートを30fpsとした場合には、duration=time_scale/30×1000=1000000である。
【0030】
上記(2)のTKHDボックス内のdurationは、上記(1)のdurationと同じ値を用いる。track_width及びtrack_heightのデータについては、それぞれSPSデータ中のpic_width_in_mbs_minus1及びpic_height_in_mbs_minus1の値から、下記式を用いて算出する。なお、実際のMP4ファイルのtrack_widthとtrack_heightは、整数部及び小数点部がそれぞれ16ビットの計32ビットの符号無し固定小数点型で記録される。
track_width
=(pic_width_in_mbs_minus1+1)×16
track_height
=(pic_height_in_mbs_minus1+1)×16
【0031】
上記(3)のMDHDボックス内のtime_scale及びdurationの値はいずれも上記(1)と同様の処理で求める。
上記(4)のSTSDボックス内のwidth及びheightの値については、上記(2)のtrack_width及びtrack_heightと同じ値を用いる。
ただし、width及びheightは、16ビットの符号無し整数型である。SPSデータ、PPSデータは、取得したデータをそのまま利用すればよい。
【0032】
上記(5)のSTTSボックスにおいてentry_count=1とする。sample_countには、ピクチャの枚数をそのまま利用する。sample_deltaは、上記(1)のtime_scale及びフレームレートから算出する。具体的には、sample_delta=time_scale/(フレームレート)とすればよい。
【0033】
上記(6)のSTSCボックスは、チャンクの構造を示すボックスである。この実施の形態1では、最も単純な例としてチャンクに含まれるピクチャの枚数を固定とした場合を例に挙げる。この場合、entry_count=1となる。
次に、first_chunkはチャンクの数と同じとなる。samples_per_chunkは、チャンクに含まれるピクチャの枚数となる。sample_description_indexは、「1」である。
【0034】
ピクチャの枚数を1000枚、チャンクに含まれるピクチャの枚数を10枚とした例では、entry_count=1、first_chunk=1000/10=100、sample_per_chunk=10、sample_description_index=1となる。
チャンクに含まれるピクチャの枚数は、IDR(Instantaneous Decoding Refresh)ピクチャ間隔で同一にするとよい。また、この実施の形態1では、説明の簡単のために最も単純な例を示したが、チャンクごとにピクチャの枚数を変えてもよい。
【0035】
上記(7)のSTSZボックスのsample_sizeは0である。sample_coutnは、ピクチャの枚数と同じである。entry_sizeは、メディアサイズデータから取得される各ピクチャのサイズのデータとなる。
【0036】
上記(8)のSTCOボックスのentry_countは、チャンクの個数となる。chunk_offsetには、各チャンクのファイル中の先頭位置を示す値が設定される。これは、メディアサイズデータから算出する。ここで、ピクチャの枚数をNumpic枚として、その値域を1≦k≦Numpicとする。また、チャンクの数をNumchunkとして、値域を1≦j≦Numchunkとする。さらに、1つのチャンクにNumPPC枚のピクチャが含まれている場合、j番目のチャンクの先頭位置を示すchunk_offset(j)は、下記式(1)で表される。ここで、pic_size(k)は、k番目のピクチャのサイズである。また、offsetdefaultは、FTYPボックス又はMDATボックスのサイズ、ボックス名称等からなるオフセット分である。
【0037】
MDATボックスがMOOVボックスより後にくる場合、MOOVボックスのサイズも考慮する必要がある。
前述の方法によれば、SPSデータとPPSデータ、MDATボックスデータから得られたメディアサイズデータによりMOOVボックスデータを復元できる。このようにして復元されたMOOVデータは、MP4ファイル作成部103に出力される。
【0038】
また、MDATデータは、MDAT解析部101とMP4ファイル作成部103に入力されており、同一内容のデータがMDAT解析部101とMP4ファイル作成部103にそれぞれ入力される。
MP4ファイル作成部103は、当該MDATデータを入力し、MOOV作成部102からMOOVデータを入力すると、これらMDATデータ及びMOOVデータからMP4ファイルを作成する。具体的には、FTYPボックスを先頭とし、続いてMOOVデータとMDATデータを加える。
なお、FTYPボックスは、準拠している規格を示すデータを記録するボックスであるので、実際に使用する規格に合わせて作成すればよい。
【0039】
以上のように、この実施の形態1によれば、MDATデータを解析してメディアデータのサイズを示すメディアサイズデータを生成し、MOOVに格納される基本情報のうち、メディアデータのサイズから導き出せる情報に生じた破損を、メディアサイズデータを用いて復元して、MDATデータと復元したMOOVデータとからMP4ファイルを作成する。このようにすることで、MP4ファイル作成中の何らかの事故によってMDATデータのみしか残っていない場合であってもMOOVデータを修復してメディアデータが再生可能なMP4ファイルを作成できる。
【0040】
実施の形態2.
上記実施の形態1は、H.264ビデオESを格納するMP4ファイル作成において、事故が発生してMOOVデータが破損もしくは失われたMP4ファイルの修復方法について開示した。この実施の形態2では、MOOVデータが破損もしくは失われたMP4ファイルのメディアデータを再生する方法及び装置について説明する。
【0041】
図9は、この発明の実施の形態2によるメディアファイル再生装置の構成を示すブロック図である。図9において、実施の形態2によるメディアファイル再生装置は、MDAT解析部101、メディアデータ取得部104、及びメディア伸張部105を備える。MDAT解析部101は、入力したMDATデータを解析してメディアサイズデータを作成する構成部である。また、メディアデータ取得部104は、メディアサイズデータとMDATデータからメディアデータを取得する構成部である。メディア伸張部105は、メディアデータを伸張して伸張済みメディアデータを作成する構成部である。
【0042】
MDAT解析部101、メディアデータ取得部104、及びメディア伸張部105は、この発明の趣旨に従うメディアファイル再生用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0043】
次に動作について説明する。
ここで、MDAT解析部101による動作は、上記実施の形態1と同一であるので説明を省略する。MDATデータは、MDAT解析部101とメディアデータ取得部104に入力されており、同一内容のデータがMDAT解析部101とメディアデータ取得部104にそれぞれ入力される。
【0044】
メディアデータ取得部104は、当該MDATデータを入力し、MDAT解析部101からメディアサイズデータを入力すると、このメディアサイズデータを利用してMDATデータ中からNALユニット(NALヘッダ、RBSP.RBSPトレイリングビット)を抜き出し、メディア伸張部105に順次出力する。なお、NALユニットの先頭部分にスタートコードを付加した上で出力してもよい。
【0045】
メディア伸張部105は、メディアデータ取得部104からメディアデータとして出力されたNALユニットと、入力したSPSデータ及びPPSデータから、メディアデータの伸張を行い、伸張済みメディアデータとして上位のシステムに出力する。なお、SPSデータ及びPPSデータの取得方法は、上記実施の形態1と同様である。
【0046】
以上のように、この実施の形態2によれば、MDATデータを解析してメディアデータのサイズを示すメディアサイズデータを生成し、メディアサイズデータを用いて、MDATデータからメディアデータを取得して伸張する。このようにすることで、MP4ファイル作成中の事故でMDATデータのみとなった場合であっても、MP4ファイルのメディアデータの再生が可能である。
【0047】
なお、上記実施の形態1と上記実施の形態2の構成を組み合わせた装置とすることで、MP4ファイルを修復しながら、このMP4ファイルのメディアデータを再生することができる。
図10は、上記実施の形態1と上記実施の形態2の構成を組み合わせたメディアファイル修復/再生装置の構成を示すブロック図である。図10に示すメディアファイル修復/再生装置は、図4に示した修復装置と図9に示した再生装置を組み合わせたものである。この装置では、共通のMDATデータとSPSデータ及びPPSデータを用いて、MP4ファイルの修復とそのメディアデータの再生を同時に行うことが可能である。
【0048】
実施の形態3.
上記実施の形態1は、MP4ファイル作成中に発生した事故によってMOOVボックスデータが失われた場合、MDATデータのみからMOOVデータを復元してMP4ファイルを修復する方法を示した。
実施の形態1では、H.264ビデオデータを前提として、H.264ビデオデータ中のNALユニットのサイズデータをMDATデータ内に記録することにより、H.264ビデオデータからMDATデータを作成している。しかしながら、MDATデータへの記録方法はメディアデータごとに異なり、必ずしもサイズのデータをMDATデータに記録するわけではない。
【0049】
そこで、この実施の形態3は、MOOVデータを復元してMP4ファイルの修復が可能であり、かつ従来のMP4ファイルと互換性を有するMDATデータを、あらゆるメディアデータから作成する方法と、作成したMDATデータからMOOVデータを復元してMP4ファイルを修復する方法及びこれらの方法を実行する装置について述べる。
【0050】
図11は、この発明の実施の形態3によるメディアファイル作成装置の構成を示すブロック図であり、メディアデータからMDATデータを作成する装置について示している。図11において、実施の形態3によるメディアファイル作成装置は、サイズ解析部106、ユニークコード定義部107及びMDAT作成部108を備える。サイズ解析部106は、メディアデータのサイズを解析する構成部である。ユニークコード定義部107は、メディアデータからユニークコードを定義する構成部である。MDAT作成部108は、メディアデータ、メディアサイズデータ、及びユニークコード情報から、MDATデータを作成する構成部である。
【0051】
サイズ解析部106、ユニークコード定義部107及びMDAT作成部108は、この発明の趣旨に従うメディアファイル作成用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアとが協働した具体的な手段として当該コンピュータ上で実現することができる。
【0052】
次に動作について説明する。
メディアデータは、サイズ解析部106、ユニークコード定義部107及びMDAT作成部108に入力されており、同一内容のデータがサイズ解析部106、ユニークコード定義部107及びMDAT作成部108にそれぞれ入力される。
サイズ解析部106は、当該メディアデータを入力すると、メディアデータのサイズを解析する。例えば、メディアデータが画像であれば、ピクチャごとのサイズを調べ、その情報をメディアサイズデータとして出力する。
また、リニアPCM(Pulse Code Modulation)音声のようなデータであれば、適当な位置で区切りを入れ、その区切り位置を示す情報を出力する。なお、位置の区切り方は、単純に時間で区切る方法等が挙げられる。
【0053】
ユニークコード定義部107は、上記メディアデータを入力すると、メディアデータに基づいてユニークコードを定義する動作を行う。
なお、メディアデータの種類によっては、ユニークコードに相当するコードが予め設定されている場合がある。例えば、MPEG−2(Moving Picture Experts Group-2)は、「000000000000000000000001」という、24ビットのデータに続く8ビットのデータを合わせた32ビットのデータを、スタートコードと呼び、データの区切り目の判別などに利用している。
また、MPEG−2は、画像を符号化する際に「000000000000000000000001」という24ビットのデータになることを避けるように設計されている。
この24ビットのデータに続く8ビットのデータによってデータの種類が判別される。8ビットでは256種類を表すことができるが、8ビットのデータの全てが判別に利用されているわけでなく、データの種類の判別に使われていない値もある。
【0054】
ユニークコード定義部107は、データ種類の判別に使われていない8ビットのデータを上記24ビットのデータと合わせた32ビットのデータを、ユニークコードとして定義する。このように、ユニークコード定義部107では、メディアデータに対応する特殊なコードが予め設定されている場合には、これを利用してユニークコードを定義する。このユニークコードとそのサイズを示すユニークコード情報は、ユニークコード定義部107からMDAT作成部108へ出力される。
【0055】
一方、リニアPCM音声データのように、予め規格に定められたユニークコードが存在しないメディアデータもある。この場合には、ユニークコード定義部107が、メディアデータ全体を参照して他に存在しない特有な値のビット列を探索し、この探索の結果として得られたビット列をユニークコードと定義し、このユニークコードとそのサイズを示すユニークコード情報をMDAT作成部108へ出力する。
なお、データ量が大きい場合は、データを分割した上で上記探索を行っても構わない。この場合、ユニークコード、そのサイズ及びメディアデータの分割位置を示す情報が、ユニークコード情報としてMDAT作成部108へ出力される。
【0056】
続いて、MDAT作成部108による動作を説明する。
MDAT作成部108では、上記のメディアデータを入力し、サイズ解析部106からメディアサイズデータを入力し、ユニークコード定義部107からユニークコード情報を入力すると、これらメディアデータ、メディアサイズデータ、ユニークコード情報から、図12に示すような形式のMDATデータを作成する。
【0057】
ここで、図12に示す形式のMDATデータの特徴は、ボックス名称の直後にユニークコード情報が記録され、またメディアデータの前にユニークコード及びメディアデータのサイズが記録されている点である。これらの情報は、MOOVボックスのSTCO作成時に参照しないことにより、従来のMP4ファイルと互換性を保ち、一般的なMP4プレーヤで再生可能となる。
【0058】
なお、図12は、MDATデータ形式の一例を示したものであり、同様の情報が他の形式で記録されてもよい。また、図12の例では、ユニークコードが1種類のみであるが、複数のユニークコードがある場合は、それらをMDATデータに記録してもよい。
【0059】
この他、図12に示す「他のデータ」として、必要に応じてMOOVデータを復元する際に有用なデータをMDATデータに記録しても構わない。例えば、メディアデータが映像であれば、圧縮形式、映像の幅や高さとフレームレートがMOOVデータを復元する際に有用なデータである。また、リニアPCM音声データの場合には、チャンネル数やサンプリングレート、サンプルあたりの量子化ビット数などがMOOVデータを復元する際に有用なデータとなる。さらに、圧縮音源であれば、圧縮形式を示すデータを追加するとよい。
【0060】
次に、上述のようにして作成したMDATデータからMOOVデータを復元してMP4ファイルを修復する方法について述べる。
図13は、実施の形態3によるメディアファイル修復装置の構成を示すブロック図である。図13において、実施の形態3によるメディアファイル修復装置は、MDAT解析部109、MOOV作成部110及びMP4ファイル作成部103を備える。MDAT解析部109は、入力したMDATデータを解析してメディアサイズデータとメディア基本情報とを出力する構成部である。MOOV作成部110は、メディアサイズデータ及びメディア基本情報からMOOVデータを作成する構成部である。MP4ファイル作成部103は、MOOVデータとMDATデータからMP4ファイルを作成する構成部である。
【0061】
MDAT解析部109、MOOV作成部110、及びMP4ファイル作成部103は、この発明の趣旨に従うメディアファイル修復用プログラムをコンピュータに読み込ませ、そのCPUに実行させることによって、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0062】
次に動作について説明する。
図11に示すメディアファイル作成装置で作成されたMDATデータは、MDAT解析部109及びMP4ファイル作成部103へ入力されており、同一内容のデータがMDAT解析部109とMP4ファイル作成部103にそれぞれ入力される。
MDAT解析部109は、上記MDATデータを入力すると、このMDATデータからメディアデータのサイズ情報を取得する。このMDATデータは、上述の図12で示したデータであるので、MDAT解析部109は、先ず、MDATボックス名称の直後にあるユニークコードを特定する。
続いて、MDAT解析部109は、以降のデータにおけるユニークコードを探索して、さらにユニークコードの直後にあるメディアデータのサイズ情報を取得し、サイズ情報の直後にあるメディアデータの位置情報を取得する。
このように、図12に示されたMDAT形式を利用することで、簡単にメディアデータのサイズと位置情報を得ることができる。メディアデータのサイズと位置を示すメディアサイズデータは、MDAT解析部109からMOOV作成部110へ出力される。
また、MDAT解析部109は、図12に示す「他のデータ」をメディア基本情報としてMOOV作成部110へ出力する。
【0063】
MOOV作成部110は、MDAT解析部109からメディアサイズデータを入力すると、このメディアサイズデータからMOOVデータを作成する。大まかな動作は、上記実施の形態1で示した方法と同様であるが、実施の形態3では、リニアPCMのような音声データも対象としているため、MOOVデータの復元に不要なデータ、逆に必要となるデータがある。
【0064】
MP4ファイルのMOOVボックスにおいて、メディアデータの再生に関わる必要最低限のデータとしては、以下が挙げられる。
(1a)MVHDボックスのtime_scaleとduration
(2a)TKHDボックスのduration、メディアデータが映像の場合には、track_widthとtrack_heightも必要
(3a)MDHDボックスのtime_scaleとduration
(4a)STSDボックス
(5a)STTSボックスのentry_countとsample_count、sample_delta
(6a)STSCボックスのentry_countとfirst_chunk、samples_per_chunk、sample_description_index
(7a)STSZボックスのsample_sizeとsample_count、entry_size
(8a)STCOボックスのentry_countとchunk_offset
【0065】
以下、順番に(1a)〜(8a)のデータ修復方法を説明する。
上記(1a)のMVHDボックスのtime_scaleは、メディアデータが映像の場合、上記実施の形態1と同様の処理で求める。一方、メディアデータが音声の場合は、サンプリングレートを用いる。ここで、durationは、映像と同様にduration=(音声のサンプル数)/time_scaleの関係から求める。
【0066】
上記(2a)のTKHDボックスのdurationは、メディアデータが映像及び音声のいずれの場合であっても、上記(1a)のMVHDボックスのdurationと同様である。さらに映像であれば、track_widthとtrack_heightも必要であるが、これは上記実施の形態1と同様にして求める。
【0067】
上記(3a)のMDHDボックスのtime_scaleとdurationは、メディアデータが映像及び音声のいずれの場合であっても、上記(1a)のMVHDボックスと同様の処理で求める。
【0068】
上記(4a)のSTSDボックスのデータは、メディアデータが映像であるか音声であるか、さらにメディアフォーマットによっても異なる。メディアデータが映像であれば、メディア基本情報から作成した圧縮形式、映像の幅や高さを示す情報、特にH.264であれば、SPSデータ及びPPSデータを用いて、上記実施の形態1と同様にSTSDボックスデータを求める。また、メディアデータが音声であれば、メディア基本情報からサンプリングレートやチャンネル数、サンプルの量子化ビット数、圧縮音源であれば、圧縮形式を作成し、これらの情報を用いてSTSDボックスデータを作成する。
【0069】
上記(5a)のSTTSボックスのentry_countとsample_count、sample_deltaは、メディアデータが映像の場合は、上記実施の形態1と同様の処理で求める。メディアデータが音声の場合には、entry_count=1とし、sample_countを音声のサンプル数として、sample_delta=time_scale×(サンプリング周波数)の関係から求める。
【0070】
上記(6a)のSTSCボックスのentry_countとfirst_chunk、samples_per_chunk、sample_description_indexについては、メディアデータが映像の場合、上記実施の形態1と同様の処理で求める。メディアデータが音声の場合についても、単純に時間でチャンクを区切るものと仮定して映像の場合と同様な処理で求める。
【0071】
上記(7a)のSTSZボックスのsample_sizeとsample_count、entry_sizeの値は、メディアデータが映像の場合、上記実施の形態1と同様の処理(1)で求める。メディアデータが音声の場合には、リニアPCMのようにサンプルごとのデータ量が一定である場合、sample_sizeの値をサンプルの大きさとする。このとき、MP4ファイルフォーマットでは、sample_count、entry_sizeは存在しないことになる。メディアデータが圧縮音声データであると、データサイズが可変となるため映像の場合と同様に処理して値を求めればよい。
【0072】
上記(8a)のSTCOボックスのentry_count及びchunk_offsetの値は、メディアデータが映像の場合は、上記実施の形態1と同様の処理で求める。ただし、この実施の形態3では、ユニークコード情報の分のオフセットや、メディアデータの先頭に記録されるユニークコード分を考慮して計算する必要がある。
メディアデータが音声の場合も同様であり、チャンクに含まれるサンプルの個数を決定してentry_countの値とし、chunk_offsetには、上記実施の形態1と同様の処理によってファイルの先頭からの位置を算出する。これにより、MOOVデータボックスが作成可能である。
【0073】
MP4ファイル作成部103は、MOOV作成部110により作成された上記MOOVデータを入力し、このMOOVデータを用いて、上記実施の形態1と同様にしてFTYPボックスを作成し、MDATデータ及びMOOVデータをつなげてMP4ファイルを作成する。
【0074】
以上のように、この実施の形態3によれば、メディアデータを解析して当該メディアデータのサイズを示すメディアサイズデータを生成し、メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中のユニークコードの位置を示すユニークコード情報を生成して、メディアデータ、サイズデータ及びユニークコード情報を用いて、ユニークコードが挿入されたMDATデータを作成する。
このMDATデータのユニークコードを探索してユニークコードごとに特定されるメディアデータのサイズデータを生成し、MOOVデータに格納される基本情報のうち、メディアデータのサイズから導き出せる情報に生じた破損を、メディアサイズデータを用いて復元して、MDATデータと復元したMOOVデータからMP4ファイルを作成する。
このようにすることで、H.264ビデオES以外のメディアデータのMP4ファイル作成時に事故が発生して、MOOVボックスデータが失われても、MDATデータのみからMOOVボックスデータを復元し、再生可能なMP4ファイルの作成が可能である。
また、MDATデータ内のユニークコードやメディアデータのサイズ情報は、通常のプレーヤによる再生時には参照されないため、MOOVデータが正常に作成されていれば、通常のMP4プレーヤで再生も可能である。
【0075】
実施の形態4.
上記実施の形態3は、MOOVデータが破損した場合であっても、MDATデータからMOOVデータを復元しMP4ファイルを修復する方法及び装置を示した。
この実施の形態4では、MOOVデータが破損したMP4ファイルのメディアデータを再生する方法及び装置について説明する。
【0076】
図14は、この発明の実施の形態4によるメディアファイル再生装置の構成を示すブロック図である。図14において、実施の形態4によるメディアファイル再生装置は、MDAT解析部109、メディアデータ取得部111及びメディア伸張部112を備える。
MDAT解析部109は、入力したMDATデータを解析してメディアサイズデータを作成する構成部である。メディアデータ取得部111は、メディアサイズデータとMDATデータからメディアデータを取得する構成部である。メディア伸張部112は、メディアデータを伸張して伸張済みメディアデータを作成する構成部である。
【0077】
MDAT解析部109、メディアデータ取得部111、及びメディア伸張部112は、この発明の趣旨に従うメディアファイル再生用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0078】
次に動作について説明する。
ここで、MDAT解析部109の動作は、上記実施の形態3と同一であるので説明を省略する。
メディアデータ取得部111は、MDAT解析部109から入力したメディアサイズデータを用いてMDATデータ中からメディアデータを抜き出し、メディア伸張部112に順次出力する。また、ここでは、図12で示した「他のデータ」としてメディアデータの圧縮形式などの情報がMDATデータに記録されているものとする。この場合、MDAT解析部109は、MDATデータから上記データを抽出すると、これをメディア基本情報としてメディア伸張部112へ出力する。
【0079】
メディア伸張部112は、メディアデータ取得部111から入力したメディアデータをその形式に合わせて伸張し、伸張済みメディアデータとして上位のシステムに出力する。このとき、メディア伸張部112は、MDAT解析部109から入力したメディア基本情報を利用して、当該メディアデータの圧縮フォーマットに対応した伸張を実行する。
【0080】
以上のように、この実施の形態4によれば、上記実施の形態3のメディアファイル作成方法で作成したMP4ファイルを再生するにあたり、MDATデータのユニークコードを探索してユニークコードごとに特定されるメディアデータのメディアサイズデータを生成し、このメディアサイズデータを用いてMDATデータからメディアデータを取得して伸張する。このようにすることで、上記実施の形態3で示した方法により作成されたMP4ファイルであれば、何らかの事故によってMOOVデータが破損し、MDATデータのみしか残っていない場合であっても、MP4ファイルの再生が可能である。
【0081】
なお、上記実施の形態3と上記実施の形態4の構成を組み合わせた装置とすることで、MP4ファイルを修復しながら、このMP4ファイルのメディアデータを再生できる。
図15は、上記実施の形態3と上記実施の形態4の構成を組み合わせたメディアファイル修復/再生装置の構成を示すブロック図である。図15に示すメディアファイル修復/再生装置は、図13に示した修復装置と図14に示した再生装置を組み合わせたものである。この装置では、共通のMDATデータ及びメディア基本情報を用いて、MP4ファイルの修復とそのメディアデータの再生を同時に行うことが可能である。
【0082】
実施の形態5.
この実施の形態5では、MDATデータへのユニークコードの挿入位置を工夫することで、MDATデータ内にランダムアクセスポイントを作成する。このMDATデータを基に作成したMP4ファイルでは、MOOVデータが破損した場合であっても破損した部分以外の再生が可能になる。
【0083】
図16は、この発明の実施の形態5によるメディアファイル作成装置の構成を示すブロック図であり、メディアデータからMDATデータを作成する装置について示している。図16において、実施の形態5によるメディアファイル作成装置は、サイズ解析部106、ユニークコード定義部107、ランダムアクセスポイント探索部113及びMDAT作成部114を備える。
【0084】
サイズ解析部106は、メディアデータのサイズを解析する構成部である。ユニークコード定義部107は、メディアデータからユニークコードを定義する構成部である。ランダムアクセスポイント探索部113は、メディアデータからランダムアクセスポイントを探索する構成部である。MDAT作成部114は、メディアデータ、メディアサイズデータ、ランダムアクセスポイント情報、及びユニークコード情報から、MDATデータを作成する構成部である。
【0085】
なお、サイズ解析部106、ユニークコード定義部107、ランダムアクセスポイント探索部113及びMDAT作成部114は、この発明の趣旨に従うメディアファイルフォーマット作成用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアとが協働した具体的な手段として当該コンピュータ上で実現することができる。
【0086】
次に動作について説明する。
なお、以降では、メディアデータとしてH.264ビデオESを例に説明する。
メディアデータは、サイズ解析部106、ユニークコード定義部107、ランダムアクセスポイント探索部113及びMDAT作成部114に入力されており、同一内容のデータがサイズ解析部106、ユニークコード定義部107、ランダムアクセスポイント探索部113及びMDAT作成部114にそれぞれ入力される。
【0087】
サイズ解析部106は、入力した上記メディアデータのサイズを解析し、上記メディアデータのサイズを示すメディアサイズデータをMDAT作成部114に出力する。動作の詳細は、上記実施の形態3と同様であるので省略する。
【0088】
ランダムアクセスポイント探索部113は、メディアデータにおけるランダムアクセスポイントを探索する。H.264ビデオESには、IDRピクチャと呼ばれるピクチャが存在し、このIDRピクチャが出現すると、それ以前のピクチャはそれ以降のピクチャを参照しないことになっている。従って、IDRピクチャは確実なランダムアクセスポイントである。IDRピクチャはnal_unit_typeで判別可能であり、NALヘッダを調べることでわかる。ランダムアクセスポイント探索部113は、探索したランダムアクセスポイントの位置を示すランダムアクセスポイント情報をMDAT作成部114へ出力する。
【0089】
ユニークコード定義部107は、上記メディアデータを入力すると、メディアデータに基づいてユニークコードを定義し、定義したユニークコードを示すユニークコード情報をMDAT作成部114へ出力する。動作の詳細は、上記実施の形態3と同様であるので省略する。
【0090】
続いて、MDAT作成部114による動作を説明する。
MDAT作成部114では、上記のメディアデータを入力し、サイズ解析部106からメディアサイズデータを入力し、ランダムアクセスポイント探索部113からランダムアクセスポイント情報を入力し、ユニークコード定義部107からユニークコード情報を入力すると、これらメディアデータ、メディアサイズデータ、ランダムアクセスポイント情報、ユニークコード情報から、図17に示すような形式のMDATデータを作成する。
【0091】
ここで、図17に示す形式のMDATデータの特徴は、ボックス名称の直後にユニークコード情報とそのサイズが記録され、またIDRピクチャの直前にユニークコードが存在し、IDRピクチャ以外のメディアデータの前にはユニークコードがない点である。
なお、ここで追加したユニークコード部分は、MOOVデータの作成時に参照しないようにする。
【0092】
次に、上述のようにして作成したMDATデータを含むMP4ファイル(以下、MP4データと呼ぶ)のメディアデータを再生する方法について述べる。
図18は、実施の形態5によるメディアファイル再生装置の構成を示すブロック図である。図18において、実施の形態5によるメディアファイル再生装置は、データ分離部115、MOOV解析部116、メディア伸張部117、及びMDAT解析部118を備える。
【0093】
データ分離部115は、入力したMP4データをMDATデータとMOOVデータとに分離して出力する構成部である。MOOV解析部116は、MOOVデータを解析して、メディアデータを規定する情報を抽出しMOOV解析結果として出力する構成部である。メディア伸張部117は、圧縮されたメディアデータを伸張して伸張済みメディアデータを作成する構成部である。
また、メディア伸張部117では、MOOVデータに誤りがあった場合、MDATデータのどの位置で伸張に失敗したかを特定し、誤り位置情報としてMDAT解析部118へ出力する。MDAT解析部118は、誤り位置情報とMDATデータから誤り位置情報以降の最初のユニークコードを探索し、探索結果のユニークコードの位置を復帰位置情報としてメディア伸張部113に出力する構成部である。
【0094】
データ分離部115、MOOV解析部116、メディア伸張部117及びMDAT解析部118は、この発明の趣旨に従うメディアファイル再生用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0095】
次に動作について説明する。
データ分離部115は、入力したMP4データをMOOVデータとMDATデータとに分離する。MP4データは、上記実施の形態1で図1及び図2を用いて説明したように、ボックスごとにデータサイズが容易にわかる構造をしており、分離も可能である。MP4データから分離されたMOOVデータはMOOV解析部116に入力され、MDATデータは、メディア伸張部117及びMDAT解析部118にそれぞれ入力される。
【0096】
MOOV解析部116は、データ分離部115によってMP4データから分離されたMOOVデータを入力すると、このMOOVデータ内のメディアデータの圧縮形式(ここでは、H.264ビデオ)や、画像の幅及び高さ、画像に関する情報(STSDボックスに記録)、チャンクの構造情報(STSCボックスに記録)、チャンクの位置情報(STCOボックスに記録)、サンプルのサイズ情報(STSZボックスに記録)、再生時刻情報(STTSボックスに記録)を解析し、MOOV解析結果としてメディア伸張部117に出力する。この段階では、MOOVの情報が正しいかどうかは不明である。
【0097】
メディア伸張部117は、データ分離部115でMP4データから分離されたMDATデータを入力すると、このMDATデータから圧縮されたメディアデータを抽出し、メディアデータの伸張を行う。
この実施の形態5は、メディアデータとして、H.264ビデオを例としているので、H.264ビデオESの伸張を行い、画像データが得られる。正常にメディアデータが得られた場合、メディア伸張部117は、伸張済みメディアデータを上位のシステムへ出力する。ここで、MOOVデータに誤りがあれば、H.264ビデオの復号に失敗することになる。このとき、メディア伸張部117は、MDATデータ内のどの位置で復号が失敗したかを特定し、誤り位置情報としてMDAT解析部118に出力する。
【0098】
MDAT解析部118は、データ分離部115でMP4データから分離されたMDATデータを入力し、メディア伸張部117から誤り位置情報を入力すると、誤り位置情報とMDATデータから、誤り位置情報で示される位置以降に最初に存在するユニークコードを探索する。ユニークコードは、IDRピクチャの直前に存在するので、ユニークコード以降のデータは、ユニークコード以前のデータの影響を受けずに再生可能である。
【0099】
MDAT解析部118は、探索した結果のユニークコードの位置を復帰位置情報としてメディア伸張部117に出力する。メディア伸張部117は、MDAT解析部118からの復帰位置情報を受けると、MOOV解析部116からのMOOV解析結果のうち、この復帰位置情報で示される位置以降に関連するMOOV解析結果を選別するとともに、この復帰位置情報で示される位置以降のMDATデータの伸張を行い、選別したMOOV解析結果及びMDATデータ伸張の結果を、伸張済みメディアデータとして上位のシステムへ出力する。
【0100】
以上のように、この実施の形態5によれば、メディアデータを解析して当該メディアデータのメディアサイズデータを生成し、メディアデータでランダムなアクセスが可能なデータ部分を示すランダムアクセスポイントを探索し、当該メディアデータ中のランダムアクセスポイントの位置を示すランダムアクセスポイント情報を生成し、メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中のユニークコードの位置を示すユニークコード情報を生成し、メディアデータ、サイズデータ、ユニークコード情報及びランダムアクセスポイント情報を用いて、メディアデータ中のランダムアクセスポイントにユニークコードが挿入されたMDATデータを作成する。
このMP4ファイルを再生するにあたり、上記MP4ファイルからMDAT及びMOOVのデータを分離し、MOOVデータを解析して基本情報を取得し、この基本情報を用いてMDATデータから取得したメディアデータを伸張し、当該メディアデータに誤りがあると、MDATのユニークコードを探索して当該メディアデータ中のランダムアクセスポイントを特定し、ランダムアクセスポイント以降のメディアデータを伸張する。
このようにMDATデータのIDRピクチャ(ランダムアクセスポイント)の前にユニークコードを追加することで、MP4ファイル作成時の事故によって誤ったMOOVデータが作成された場合であっても、誤り位置の次のIDRピクチャから再生が可能になる。
【0101】
なお、上記実施の形態5では、メディアデータとしてH.264ビデオを例としたが、これ以外のビデオ、オーディオデータに対しても適用可能である。
【0102】
実施の形態6.
この実施の形態6では、上記実施の形態3で図12を用いて説明したユニークコードとMDATデータ中の通常は参照されないデータ領域とを利用して、メディアデータの特殊再生を実現する。この特殊再生として、実施の形態6では、メディア中の注目シーンのみを順次再生する場合を例に挙げる。
【0103】
図19は、この発明の実施の形態6によるメディアファイル作成装置の構成を示すブロック図である。図19において、実施の形態6によるメディアファイル作成装置は、サイズ解析部106、ユニークコード定義部107、特殊再生データ作成部119及びMDAT作成部120を備える。
【0104】
サイズ解析部106は、メディアデータのサイズを解析する構成部である。ユニークコード定義部107は、メディアデータからユニークコードを定義する構成部である。特殊再生データ作成部119は、メディアデータから特殊再生情報を作成する構成部である。MDAT作成部120は、メディアデータ、メディアサイズデータ、特殊再生情報、及びユニークコード情報から、MDATデータを作成する構成部である。
【0105】
サイズ解析部106、ユニークコード定義部107、特殊再生データ作成部119及びMDAT作成部120は、この発明の趣旨に従うメディアファイル作成用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアとが協働した具体的な手段として当該コンピュータ上で実現することができる。
【0106】
次に動作について説明する。
メディアデータは、サイズ解析部106、ユニークコード定義部107、特殊再生データ作成部119及びMDAT作成部120に入力されており、同一内容のデータがサイズ解析部106、ユニークコード定義部107、特殊再生データ作成部119及びMDAT作成部120にそれぞれ入力される。
【0107】
サイズ解析部106は、入力した上記メディアデータのサイズを解析し、上記メディアデータのサイズを示すメディアサイズデータをMDAT作成部120に出力する。また、ユニークコード定義部107は、上記メディアデータを入力すると、メディアデータに基づいてユニークコードを定義し、定義したユニークコードを示すユニークコード情報をMDAT作成部114へ出力する。サイズ解析部106及びユニークコード定義部107の動作の詳細は、上記実施の形態3と同様であるので省略する。
【0108】
特殊再生データ作成部119は、入力したメディアデータから注目シーンを探索して、特殊再生情報としてMDAT作成部120に出力する。注目シーンを探す方法は、多くの方法が提案されており、本発明では注目シーンを探す方法は問わない。
【0109】
MDAT作成部120は、上記のメディアデータを入力し、サイズ解析部106からメディアサイズデータを入力し、特殊再生データ作成部119から特殊再生情報を入力し、ユニークコード定義部107からユニークコード情報を入力すると、これらメディアデータ、メディアサイズデータ、特殊再生情報、ユニークコード情報から、MDATデータを作成する。
【0110】
このとき、MDAT作成部120によって作成されるMDATデータを図20に示す。図20に示すMDATデータの特徴は、注目シーンの前にユニークコードを挿入し、注目シーンでない場合にはユニークコードを挿入しない。つまり、MDATデータ中の注目シーンの前に存在する通常は参照されないデータ領域にユニークコードを記録することにより、ユニークコードを特殊再生する注目シーン画像の識別に利用する。
【0111】
次に、上述のようにして作成したMDATデータを含むMP4データのメディアデータを再生する方法について述べる。
図21は、実施の形態6によるメディアファイル再生装置の構成を示すブロック図である。図21において、実施の形態6によるメディアファイル再生装置は、データ分離部115、MOOV解析部116、特殊再生情報取得部121及びメディア伸張部122を備える。
【0112】
データ分離部115は、入力したMP4データをMDATデータとMOOVデータとに分離して出力する構成部である。MOOV解析部116は、MOOVデータを解析して、メディアデータを規定する情報を抽出しMOOV解析結果として出力する構成部である。特殊再生情報取得部121は、入力したMDATデータから特殊再生情報を取得する構成部である。メディア伸張部122は、圧縮されたメディアデータを伸張して伸張済みメディアデータを作成する構成部である。また、メディア伸張部122は、特殊再生情報取得部121から特殊再生情報を受けると、当該特殊再生情報が示す注目シーンの画像データのみを伸張して出力する。
【0113】
データ分離部115、MOOV解析部116、特殊再生情報取得部121及びメディア伸張部122は、この発明の趣旨に従うメディアファイル再生用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0114】
次に動作について説明する。
データ分離部115は、入力したMP4データをMOOVデータとMDATデータとに分離する。MP4データから分離されたMOOVデータは、MOOV解析部116に入力され、MDATデータは、特殊再生情報取得部121及びメディア伸張部122にそれぞれ入力される。
【0115】
MOOV解析部116は、データ分離部115によってMP4データから分離されたMOOVデータを入力すると、このMOOVデータ内のメディアデータの圧縮形式や、画像の幅及び高さ、画像に関する情報(STSDボックスに記録)、チャンクの構造情報(STSCボックスに記録)、チャンクの位置情報(STCOボックスに記録)、サンプルのサイズ情報(STSZボックスに記録)、再生時刻情報(STTSボックスに記録)を解析し、MOOV解析結果としてメディア伸張部122に出力する。
【0116】
特殊再生情報取得部121は、データ分離部115でMP4データから分離されたMDATデータを入力すると、このMDATデータからユニークコードを探索し、探索結果のユニークコードの位置を示す特殊再生情報をメディア伸張部122へ出力する。
【0117】
メディア伸張部122では、データ分離部115でMP4データから分離されたMDATデータを入力すると、このMDATデータから圧縮されたメディアデータを抽出し、メディアデータの伸張を行う。このとき、特殊再生情報取得部121から特殊再生情報を入力していれば、メディア伸張部122は、特殊再生情報で示されるユニークコードの位置から注目シーンの情報を特定し、この注目シーンのみの画像データを伸張して上位のシステムへ出力する。
【0118】
以上のように、この実施の形態6によれば、メディアデータを解析して当該メディアデータのサイズを示すメディアサイズデータを生成し、メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中のユニークコードの位置を示すユニークコード情報を生成し、メディアデータを解析して特殊再生をすべきデータ部分を特定し、当該データ部分の位置を示す特殊再生情報を生成し、メディアデータ、サイズデータ、ユニークコード情報及び特殊再生情報を用いて、メディアデータ中の特殊再生をすべきデータ部分の位置にユニークコードが挿入されたMDATデータを作成する。
このMDATデータを含むMP4ファイルを再生するにあたり、メディアファイルからMDAT及びMOOVのデータを分離し、MOOVデータを解析して基本情報を取得し、この基本情報を用いてMDATデータから取得したメディアデータを伸張するとともに、MDATデータのユニークコードを探索して当該特殊再生をすべきデータ部分を特定して、特殊再生をすべきデータ部分のメディアデータを伸張する。
このようにMDATデータに注目シーン等の特殊再生情報を格納することで、通常のMP4プレーヤでは通常再生、特殊再生に対応しているプレーヤについては特殊再生が可能なMP4ファイルを作成できる。
【0119】
実施の形態7.
この実施の形態7では、上記実施の形態6で示したMDATデータ内の通常の再生時に参照されないデータ領域を利用して、メディアデータを2種類の暗号で暗号化することにより、メディアの視聴制限を設ける方法について述べる。これにより、例えば、コンテンツを通常購入した顧客には、通常の映像のみを視聴可能とし、追加料金を払った顧客は、通常の映像の他に特典映像も視聴可能にする、といった利用方法を実現できる。
【0120】
図22は、この発明の実施の形態7によるメディアファイル作成装置の構成を示すブロック図である。図22において、実施の形態7によるメディアファイル作成装置は、サイズ解析部106、ユニークコード定義部107、メディア暗号化部123及びMDAT作成部124を備える。
【0121】
サイズ解析部106は、メディアデータのサイズを解析する構成部である。ユニークコード定義部107は、メディアデータからユニークコードを定義する構成部である。メディア暗号化部123は、暗号情報に基づいてメディアデータを暗号化して暗号化メディアを作成する構成部である。MDAT作成部124は、メディアデータ、メディアサイズデータ、暗号情報、暗号化メディア、及びユニークコード情報から、MDATデータを作成する構成部である。
【0122】
なお、サイズ解析部106、ユニークコード定義部107、メディア暗号化部123及びMDAT作成部124は、この発明の趣旨に従うメディアファイル作成用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアとが協働した具体的な手段として当該コンピュータ上で実現することができる。
【0123】
次に動作について説明する。
メディアデータは、サイズ解析部106、ユニークコード定義部107及びメディア暗号化部123に入力されており、同一内容のデータがサイズ解析部106、ユニークコード定義部107及びメディア暗号化部123にそれぞれ入力される。また、暗号情報は、メディア暗号化部123及びMDAT作成部124にそれぞれ入力される。
【0124】
サイズ解析部106は、入力した上記メディアデータのサイズを解析し、上記メディアデータのサイズを示すメディアサイズデータをMDAT作成部120に出力する。サイズ解析部106の動作の詳細は、上記実施の形態3と同様であるので省略する。
また、ユニークコード定義部107は、上記メディアデータを入力すると、メディアデータに基づいてユニークコードを定義し、定義したユニークコードを示すユニークコード情報をMDAT作成部114へ出力する。ユニークコード定義部107の動作の詳細も、上記実施の形態3と同様であるが、この実施の形態7では、ユニークコードを2種類以上定義して出力する。以降の説明では、2種類のユニークコードを定義する場合を例に挙げる。
【0125】
メディア暗号化部123は、入力した暗号情報を用いて、上記メディアデータを暗号化する。ここで取り扱われるメディアデータには、図23に示すようにレベル1で暗号化すべきデータ部分とレベル2で暗号化すべきデータ部分が混在しているものとする。なお、レベル1,2では異なる暗号化が行われ、例えばレベル1ではメディアコンテンツを通常購入した顧客のみが復号でき、レベル2はさらに追加料金を支払ってメディアコンテンツを購入した顧客が復号できる。
【0126】
レベル1の暗号化を施すべきメディアデータか、レベル2の暗号化を施すべきメディアデータかの区別は、メディアデータ中の時間情報等を利用して、暗号情報で予め定められているものとする。例えば、0:00から0:16までのメディアデータはレベル1、0:16から0:24までのメディアデータはレベル2の設定で暗号化を行う。さらに、暗号情報には、レベル1のパスワードのハッシュ値(以下、パスワードハッシュ1と呼ぶ)と、レベル2のパスワードのハッシュ値(以下、パスワードハッシュ2と呼ぶ)とを含むものとする。なお、ハッシュのアルゴリズムについては特に限定しない。
【0127】
ここで、実際のメディア暗号化を説明する。
メディア暗号化部123は、入力した暗号情報から、各メディアデータをレベル1、レベル2のいずれかで暗号化すべきかを認識し、さらにはサイズ解析部106から入力したメディアサイズデータから、各メディアデータのサイズを認識する。
この後、メディア暗号化部123は、認識したデータサイズを示すバイナリデータと、各メディアデータの暗号化レベルに対応するパスワードハッシュ1もしくはパスワードハッシュ2と、のXOR(排他的論理和)を演算する。
このXOR値をメディアごとの暗号鍵として、メディア暗号化部123は、各メディアデータを暗号化し、暗号化メディアデータとしてMDAT作成部124に出力する。
【0128】
MDAT作成部124は、上記メディアデータ及び暗号情報を入力し、サイズ解析部106からメディアサイズデータを入力し、メディア暗号化部123から暗号化メディアデータを入力し、ユニークコード定義部107からユニークコード情報を入力すると、これらメディアデータ、メディアサイズデータ、暗号情報、ユニークコード情報、暗号化メディアデータから、暗号化MDATデータを作成する。
先ず、MDAT作成部124は、ユニークコード情報で示される2種類のユニークコードのうち、どちらをレベル1、レベル2にするかを割り振る。ここでは、レベル1に割り振られたものをユニークコード1とし、レベル2に割り振られたものをユニークコード2とする。
図24は、MDAT作成部124によって作成される暗号化MDATデータを示す図である。図24に示すように、暗号化MDATデータでは、ボックス名称の直後に暗号情報のサイズ、レベル1,2のそれぞれのパスワードハッシュとユニークコードが存在する。また、暗号化されたメディアデータは、暗号化のレベルに応じたユニークコードをその先頭位置に有する。つまり、MDATデータ中の暗号化メディアデータの前に存在する通常は参照されないデータ領域にユニークコードを記録することで、ユニークコードによって暗号化メディアデータの暗号化レベルを識別できる。
【0129】
次に、上述のようにして作成したMDATデータを含むMP4データのメディアデータを再生する方法について述べる。
図25は、実施の形態7によるメディアファイル再生装置の構成を示すブロック図である。図25において、実施の形態7によるメディアファイル再生装置は、データ分離部115、MOOV解析部116、暗号復号部125及びメディア伸張部126を備える。
【0130】
データ分離部115は、入力したMP4データを暗号化MDATデータとMOOVデータとに分離して出力する構成部である。MOOV解析部116は、MOOVデータを解析して、メディアデータを規定する情報を抽出しMOOV解析結果として出力する構成部である。暗号復号部125は、入力した暗号化MDATデータを復号して復号MDATデータを取得する構成部である。メディア伸張部126は、復号MDATデータから抽出したメディアデータを伸張して伸張済みメディアデータを作成する構成部である。
【0131】
データ分離部115、MOOV解析部116、暗号復号部125及びメディア伸張部126は、この発明の趣旨に従うメディアファイル再生用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0132】
次に動作について説明する。
データ分離部115は、入力したMP4データをMOOVデータと暗号化MDATデータとに分離する。MP4データから分離されたMOOVデータは、MOOV解析部116に入力され、暗号化MDATデータは暗号復号部125に入力される。また、暗号復号部125には、復号に用いるパスワードも入力される。
なお、サイズ解析部106及びMOOV解析部116の動作の詳細は、上記実施の形態5と同様であるので省略する。特に、データ分離部115は、MP4データから暗号化MDATデータを分離するが、MDATデータとMOOVデータのサイズの違いを利用して分離する点など、動作は全く同一である。
【0133】
暗号復号部125は、データ分離部115によってMP4データから分離されたMOOVデータを入力し、パスワードを入力すると、先ず、入力されたパスワードのハッシュ値を取得する。ここでは、暗号復号部125が、入力されたパスワードのハッシュ値と、暗号化MDATデータ中のパスワードハッシュ1,2の各値とを比較する。
このとき、入力されたパスワードのハッシュ値が、パスワードハッシュ1,2の両方と異なっていれば、このパスワードは間違っている。このため、暗号復号部125は、復号処理を中止する。パスワードハッシュ1と同一であれば、暗号復号部125は、レベル1のMDATデータのメディアデータの復号処理を開始する。また、パスワードハッシュ2と同一であれば、暗号復号部125は、レベル1、レベル2両方のMDATデータのメディアデータの復号処理を開始する。
【0134】
図22に示す装置は、上述したようにパスワードハッシュ1もしくはパスワードハッシュ2と、各メディアデータのサイズを示すバイナリ値とのXOR値を暗号鍵としている。パスワードハッシュは、図24に示すように暗号化MDATデータ内に存在する。
また、暗号化MDATデータ内の各メディアデータはユニークコードによって区切られていることから、暗号復号部125は、容易に各メディアデータのサイズを取得できる。
このようにして、暗号復号部125は、入力されたパスワードの暗号化レベルに応じてメディアデータを復号し、復号MDATデータとしてメディア伸張部126に出力する。
【0135】
メディア伸張部117は、暗号復号部125で復号された復号MDATデータを入力すると、復号MDATデータから圧縮したメディアデータを抽出して、MOOV解析結果を用いてメディアデータの伸張を行う。メディア伸張部117による動作の詳細は、上記実施の形態5と同様である。
【0136】
以上のように、この実施の形態7によれば、メディアデータを解析して当該メディアデータのサイズを示すメディアサイズデータを生成し、メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中のユニークコードの位置を示すユニークコード情報を生成し、メディアデータの再生を制限するレベルを規定する暗号情報、当該レベル情報で規定されるレベルに応じた暗号化に用いるパスワード、メディアデータ及びメディアサイズデータを用いて、当該レベル情報で規定されるレベルに応じてデータが暗号化された暗号化メディアデータを生成し、暗号情報、暗号化メディアデータ、ユニークコード情報及びメディアサイズデータを用いて、レベルごとの暗号化メディアデータにユニークコードが挿入されたMDATのデータを作成する。
このMDATデータを用いたMP4ファイルを再生するにあたり、メディアファイルからMDAT及びMOOVのデータを分離し、MOOVデータを解析して基本情報を取得するとともに、メディアデータの再生を制限するレベルに応じたパスワードに基づいて、MDATの暗号化メディアデータを復号し復号メディアデータを生成し、得られた基本情報を用いて復号メディアデータを伸張する。
このようにMDATデータ内に暗号化情報を入れることで、ユーザの持つ権限ごとにコンテンツの視聴範囲を制限することが可能である。
【0137】
なお、上記実施の形態7では、暗号化レベルを1と2の2段階としたが、より細かい設定にしてもよい。
【符号の説明】
【0138】
101,109,118 MDAT解析部、102,110 MOOV作成部、103 MP4ファイル作成部、104 メディアデータ取得部、105,112,117,122,126 メディア伸張部、106 サイズ解析部、107 ユニークコード定義部、108,114,120,124 MDAT作成部、111 メディアデータ取得部、113 ランダムアクセスポイント探索部、115 データ分離部、116 MOOV解析部、119 特殊再生データ作成部、121 特殊再生情報取得部、123 メディア暗号化部、125 暗号復号部。
【技術分野】
【0001】
この発明は、エラーにより破損したメディアファイルを修復するメディアファイル修復方法、エラーに対する耐性を有したメディアファイルを作成するメディアファイル作成方法、及びメディアファイルを再生するメディアファイル再生方法並びにこれら方法の処理を実行する装置に関するものである。
【背景技術】
【0002】
映像や音声等のメディアファイルをデジタルデータとして扱う際、ランダムアクセス性の確保や、映像と音声との同期をとるため、メディアファイルフォーマット(以下、単にファイルフォーマットと呼ぶ)を利用して、メディアデータを格納したり多重化する場合が多い。例えば、MPEG−4(Moving Picture Expert Group)形式のフォーマット(以下、MP4と呼ぶ)は、ファイルフォーマットの代表的なものである。
【0003】
MP4形式のファイルフォーマットは、ISO(国際標準化機構)にて規格化されており、後述するボックスと呼ばれるデータ構造を有する。MP4では、ボックスの名称によってボックス内のデータ内容が定められている。例えば、MOOVボックスには、画像のサイズや再生時の表示時刻が記録されている。また、MDATボックスには、メディアデータが記録されている。
【0004】
メディアデータを多重化し、ファイルフォーマットに準拠したメディアファイルを作成するにあたり、停電や作成装置からメディア記憶媒体が取り出される等の事故によって、メディアファイルの作成に失敗した場合、このメディアファイルには、メディアデータが正常なファイルフォーマットの形式で記録されていない可能性がある。この場合、正常にメディアデータを再生できないため、メディアファイル作成を最初からやり直す必要がある。
【0005】
上記の不具合を解消しようとする従来の技術として、特許文献1に開示される記録装置がある。この装置では、MDATボックスとMOOVボックスの両方を不揮発性記録媒体に書き込むことにより、メディアファイル作成時に上記の事故が発生しても、再生可能なメディアファイルを作成することができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−281772号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1では、MDATボックスとMOOVボックスとの両方の記録に成功すれば、メディアファイル作成時に事故が発生しても再生可能なメディアファイルを作成することができる。しかしながら、上記の事故でMOOVボックスの記録に失敗すると、MDATボックスの記録に成功しても、再生可能なメディアファイルを作成することができないという課題があった。
【0008】
この発明は、上記のような課題を解決するためになされたもので、作成時にエラーが生じたメディアファイルを再生可能に修復できるメディアファイル修復方法、エラーに対して復元ポイントを有するメディアファイルを作成するメディアファイル作成方法、及びメディアファイルを再生するメディアファイル再生方法並びにこれら方法を実現する装置を得ることを目的とする。
【課題を解決するための手段】
【0009】
この発明に係るメディアファイル修復方法は、圧縮されたメディアデータを格納する第1のボックスと、メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを修復するメディアファイル修復方法において、第1のボックスを解析してメディアデータのサイズを示すサイズデータを生成するステップと、第2のボックスに格納される基本情報のうち、メディアデータのサイズから導き出せる情報に生じた破損を、サイズデータを用いて復元するステップと、第1のボックスと復元した第2のボックスからメディアファイルフォーマットに準拠したメディアファイルを作成するステップとを備えるものである。
【発明の効果】
【0010】
この発明によれば、第1のボックスを解析してメディアデータのサイズを示すサイズデータを生成し、第2のボックスに格納される基本情報のうち、メディアデータのサイズから導き出せる情報に生じた破損を、サイズデータを用いて復元して、第1のボックスと復元した第2のボックスからメディアファイルフォーマットに準拠したメディアファイルを作成する。このようにすることで、作成時にエラーが生じたメディアファイルを再生可能に修復できるという効果がある。
【図面の簡単な説明】
【0011】
【図1】MP4ファイルフォーマットのボックス構造を示す図である。
【図2】MP4ファイルの構造を示す図である。
【図3】MDATボックス中のメディア構造を示す図である。
【図4】この発明の実施の形態1によるメディアファイル修復装置の構成を示すブロック図である。
【図5】H.264ビデオESバイトストリームを示す図である。
【図6】NALユニットのサイズを説明する図である。
【図7】H.264ビデオをMDATに格納する構造を示す図である。
【図8】H.264ビデオESがAUデリミタによって区切られることを説明する図である。
【図9】この発明の実施の形態2によるメディアファイル再生装置の構成を示すブロック図である。
【図10】実施の形態1と実施の形態2の構成を組み合わせたメディアファイル修復/再生装置の構成を示すブロック図である。
【図11】この発明の実施の形態3によるメディアファイル作成装置の構成を示すブロック図である。
【図12】実施の形態3で作成されるMDATボックスの構造を示す図である。
【図13】実施の形態3によるメディアファイル修復装置の構成を示すブロック図である。
【図14】この発明の実施の形態4によるメディアファイル再生装置の構成を示すブロック図である。
【図15】実施の形態3と実施の形態4の構成を組み合わせたメディアファイル修復/再生装置の構成を示すブロック図である。
【図16】この発明の実施の形態5によるメディアファイル作成装置の構成を示すブロック図である。
【図17】実施の形態5で作成されるMDATボックスの構造を示す図である。
【図18】実施の形態5によるメディアファイル再生装置の構成を示すブロック図である。
【図19】この発明の実施の形態6によるメディアファイル作成装置の構成を示すブロック図である。
【図20】実施の形態6によるMDATボックスの構造を示す図である。
【図21】実施の形態6によるメディアファイル再生装置の構成を示すブロック図である。
【図22】この発明の実施の形態7によるメディアファイル作成装置の構成を示すブロック図である。
【図23】メディアデータ構造を示す図である。
【図24】実施の形態7による暗号化されたMDATボックスの構造を示す図である。
【図25】この発明の実施の形態7によるメディアファイル再生装置の構成を示すブロック図である。
【発明を実施するための形態】
【0012】
実施の形態1.
先ず、この発明で取り扱うMP4形式のファイルフォーマットについて説明する。
図1は、MP4形式のフィイルフォーマットのボックス構造を示す図である。図1に示すように、MP4形式のフィイルフォーマットのボックス構造は、ボックス長(4バイト)、ボックス名称(4バイト)、データ(データサイズで示された長さ−8バイト)からなる。各ボックスは、そのボックス名称によってデータ部分のフォーマット及び内容が決められる。また、ボックスは入れ子になる場合もある。MP4形式のファイルフォーマットは、図1に示すボックスを複数有するメディア多重化ファイルフォーマットである。
【0013】
図2は、MP4形式メディアファイルのデータ構造の一例を示す図である。図2では、MP4形式の最も単純なファイル構成を示しており、FTYP(ファイルタイプ)ボックス、MOOV(ムービー)ボックス、MDAT(メディアデータ)ボックスからなる。
ただし、MOOVボックスは、内部に複数のボックスが入れ子になって形成されたツリー構造を有する。また、MOOVボックス及びMDATボックスは逆の順序で記録されることもある。
【0014】
MOOVボックスには、メディアファイルの基本的な情報が記録される。例えば、画像の長さ、幅、高さ、音声のサンプリング周波数などである。これ以外にも、MP4ファイルには、どのようなメディアデータがどの大きさ(サイズ)で多重化されているかが記録されている。
【0015】
次に、MOOVボックス内に入れ子になっているボックスについて説明し、上述の情報がどのように記録されるかを述べる。
MOOVボックス内には、STSZ(もしくはSTZ2、以下STSZについて述べるときはSTZ2と置き換えてもよい)というボックスが存在する。このSTSZボックスには、サンプルのサイズが記録される。ここで、サンプルのサイズとは、メディアデータが映像データであれば、各フレームのサイズが記録される。また、メディアデータが音声データであれば、決められた時間単位のデータのサイズが記録される。従って、このSTSZボックスの内容から、各メディアデータのファイル中のサイズを知ることができる。
【0016】
この他、MOOVボックス内には、STCO(もしくはCO64、以下STCOについて述べるときはCO64と置き換えてもよい)というボックスが存在する。このSTCOボックスにはファイル内におけるチャンクの位置が記録される。チャンクとは、一つ以上のサンプルをまとめたものである。メディアデータが映像データであれば、一つ以上の映像フレームを一まとめにしたものであり、メディアデータが音声データであれば、一つ以上の決められた時間単位のデータをまとめたものである。
【0017】
さらに、MOOVボックス内には、STSCというボックスが存在する。このSTSCボックスには、チャンクにおけるサンプル数が記録される。従って、STSZボックス、STCOボックス及びSTSCボックスの内容から、各サンプルの位置とサイズを求めることができる。もし、STSZボックス、STCOボックス及びSTSCボックスから、各サンプルの位置とサイズがわからなければ、MP4ファイルのメディアデータは再生できない。またMOOVボックスが存在していても、STSZボックス、STCOボックス及びSTSCボックスのデータが存在しない、もしくは壊れている場合、MP4ファイルのメディアデータは再生できない。
【0018】
なお、MOOVボックス中には、STSZボックス、STCOボックス、STSCボックス以外の重要なデータとして、各フレームの表示時間を示すSTTSボックスや参照元ピクチャの情報を示すSTSSボックスがある。
【0019】
MDATボックスは、映像や音声など実際のメディアデータを多重化しているボックスである。図3に映像と音声とを多重化した例を示す。図3に示すように、メディアデータは、前述のチャンク単位に分割され、交互に配置されることが多い。これは、再生時の映像と音声の同期やランダムアクセス性能を向上させるためである。
【0020】
上述した通り、MP4ファイルでは、MOOVボックスにMDATボックス内のメディアデータの情報が記録される。このため、MOOVボックスの一部又は全部に異常があった場合、MP4ファイルのメディアデータを再生できない。
【0021】
次に、実施の形態1によるMP4ファイル修復方法について述べる。
何らかの事故でMP4ファイルにMOOVボックスが存在しない場合には、MOOVボックスを作成する必要がある。このとき、MOOVボックス中のデータを何らかの方法で推測して作成しなければならない。
MOOVボックスには、多くのデータがあり、一部のデータが誤っていても再生可能なこともあるが、前述のSTSZボックス、STCOボックス及びSTSCボックスのデータが誤っていると、再生は不可能である。これらのデータが推測できれば、MOOVボックスデータを推測して復元し、メディアデータが再生可能なMP4ファイルフォーマットを修復できる。
なお、この実施の形態1においては、MP4ファイルに格納されるメディアデータは、H.264ビデオES(Elementary Stream)バイトストリームとする。H.264は、ビデオデータを圧縮する方式の一つである。
【0022】
図4は、この発明の実施の形態1によるメディアファイル修復装置の構成を示すブロック図である。図4において、実施の形態1によるメディアファイル修復装置は、MDAT解析部101、MOOV作成部102及びMP4ファイル作成部103を備える。MDAT解析部101は、入力されたMDATデータを解析してメディアサイズデータを作成する構成部である。
また、MOOV作成部102は、SPS(Sequential Parameter Set)データ、PPS(Picture Parameter Set)データ及びメディアサイズデータからMOOVデータを作成する構成部である。MP4ファイル作成部103は、MOOVデータとMDATデータからMP4ファイルを作成する構成部である。
なお、SPSデータには、全てのピクチャを復号するために共通に参照される情報として、プロファイル、最大参照可能ピクチャ数、画像サイズ等が含まれる。
PPSデータには、ピクチャごとにそのピクチャを復号するために参照される情報として、可変長符号化のタイプ、量子化ステップの初期値、参照ピクチャ数等が含まれる。
【0023】
MDAT解析部101、MOOV作成部102、及びMP4ファイル作成部103は、この発明の趣旨に従うメディアファイル修復用プログラムをコンピュータに読み込ませ、そのCPUに実行させることによって、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0024】
次に動作について説明する。
先ず、MDAT解析部101によるMDATデータの解析方法とメディアサイズの取得方法について説明する。
H.264ビデオESバイトストリームは、NAL(Network Abstraction Layer)ユニットから構成される。H.264ビデオESバイトストリーム中のNALユニットは、図5に示すスタートコード、NALヘッダ、RBSP(Raw Byte Sequence Payload)、RBSPトレイリングビットからなる。このうち、スタートコードは、24ビット以上の決められたデータである。NALヘッダは、nal_ref_idcとnal_unit_typeからなり、NALユニットのデータ種類などが記録されている。RBSPは、実際のNALユニット中のデータである。RBSPトレイリングビットは、バイトアライメント用のデータである。
【0025】
H.264ビデオESバイトストリームをMP4のMDATデータにする場合、図6に示すようにスタートコード部分を取り除き、代わりにNALヘッダ、RBSP、RBSPトレイリングビットの合計サイズ(以下、NALユニットサイズと呼ぶ)を先頭部分に記録する。従って、MDATデータは、図7に示すように、MDATのボックス長と、ボックス名称(MDAT)、NALユニットサイズ及びNALユニットデータの繰り返しから構成される。
【0026】
MDAT解析部101では、このMDATデータ中のNALヘッダのデータ及びNALユニットサイズを利用してピクチャのサイズ及び位置を算出する。具体的には、NALヘッダ中のnal_unit_typeを参照し、AU(Access Unit)デリミタを探す。このAUデリミタは、H.264ビデオESバイトストリームにおいて多くの場合に存在するピクチャ間の区切りを表すデータである。
従って、図8に示すように、AUデリミタを探すことにより、各NALユニットがどのピクチャのデータに対応するかが分かり、NALユニットのサイズも既知であるために、MDATデータ内のピクチャの枚数及び各ピクチャのサイズが分かる。このピクチャの枚数及びサイズを、メディアサイズデータとしてMDAT解析部101からMOOV作成部102へ出力する。
【0027】
MOOV作成部102の動作について説明する。
SPSデータ及びPPSデータとメディアサイズデータが入力データとなる。ここで、SPSデータとPPSデータを取得する方法としては、MOOVボックスの一部が残っていればそれを用いる、あるいは、SPSデータ及びPPSデータだけは、元のH.264ビデオESバイトストリームから再度取得する、といった方法が挙げられる。
なお、本発明では、上記データの取得方法の詳細について問わないものとする。また、メディアサイズデータの取得方法は既に述べた通りである。
【0028】
MP4のMOOVボックスにおいて映像の再生に関わる必要最低限のデータとしては、以下が挙げられる。
(1)MVHDボックスのtime_scaleとduration
(2)TKHDボックスのduration、track_widthとtrack_height
(3)MDHDボックスのtime_scaleとduration
(4)STSDボックスのwidth、heightとSPSデータ、PPSデータ
(5)STTSボックスのentry_countとsample_count、sample_delta
(6)STSCボックスのentry_countとfirst_chunk、samples_per_chunk、sample_description_index
(7)STSZボックスのsample_sizeとsample_count、entry_size
(8)STCOボックスのentry_countとchunk_offset
【0029】
以下、順番に(1)〜(8)のデータ修復方法を説明する。
上記(1)のtime_scaleとdurationで、コンテンツの総再生時間が決まる。コンテンツの総再生時間は、duration/time_scale(秒)である。time_scaleが大きい程大きなフレームレートにも対応できるが、オーバーフローを起こし易くなる欠点がある。一般には30000程度でよいと思われる。
ここで、durationは、MDATデータ内のピクチャ枚数及び予想されるフレームレートから決定する。つまり、duration=time_scale/(フレームレート)×(ピクチャの枚数)である。
例えば、time_scaleを30000とし、ピクチャの枚数を1000枚とし、予想されるフレームレートを30fpsとした場合には、duration=time_scale/30×1000=1000000である。
【0030】
上記(2)のTKHDボックス内のdurationは、上記(1)のdurationと同じ値を用いる。track_width及びtrack_heightのデータについては、それぞれSPSデータ中のpic_width_in_mbs_minus1及びpic_height_in_mbs_minus1の値から、下記式を用いて算出する。なお、実際のMP4ファイルのtrack_widthとtrack_heightは、整数部及び小数点部がそれぞれ16ビットの計32ビットの符号無し固定小数点型で記録される。
track_width
=(pic_width_in_mbs_minus1+1)×16
track_height
=(pic_height_in_mbs_minus1+1)×16
【0031】
上記(3)のMDHDボックス内のtime_scale及びdurationの値はいずれも上記(1)と同様の処理で求める。
上記(4)のSTSDボックス内のwidth及びheightの値については、上記(2)のtrack_width及びtrack_heightと同じ値を用いる。
ただし、width及びheightは、16ビットの符号無し整数型である。SPSデータ、PPSデータは、取得したデータをそのまま利用すればよい。
【0032】
上記(5)のSTTSボックスにおいてentry_count=1とする。sample_countには、ピクチャの枚数をそのまま利用する。sample_deltaは、上記(1)のtime_scale及びフレームレートから算出する。具体的には、sample_delta=time_scale/(フレームレート)とすればよい。
【0033】
上記(6)のSTSCボックスは、チャンクの構造を示すボックスである。この実施の形態1では、最も単純な例としてチャンクに含まれるピクチャの枚数を固定とした場合を例に挙げる。この場合、entry_count=1となる。
次に、first_chunkはチャンクの数と同じとなる。samples_per_chunkは、チャンクに含まれるピクチャの枚数となる。sample_description_indexは、「1」である。
【0034】
ピクチャの枚数を1000枚、チャンクに含まれるピクチャの枚数を10枚とした例では、entry_count=1、first_chunk=1000/10=100、sample_per_chunk=10、sample_description_index=1となる。
チャンクに含まれるピクチャの枚数は、IDR(Instantaneous Decoding Refresh)ピクチャ間隔で同一にするとよい。また、この実施の形態1では、説明の簡単のために最も単純な例を示したが、チャンクごとにピクチャの枚数を変えてもよい。
【0035】
上記(7)のSTSZボックスのsample_sizeは0である。sample_coutnは、ピクチャの枚数と同じである。entry_sizeは、メディアサイズデータから取得される各ピクチャのサイズのデータとなる。
【0036】
上記(8)のSTCOボックスのentry_countは、チャンクの個数となる。chunk_offsetには、各チャンクのファイル中の先頭位置を示す値が設定される。これは、メディアサイズデータから算出する。ここで、ピクチャの枚数をNumpic枚として、その値域を1≦k≦Numpicとする。また、チャンクの数をNumchunkとして、値域を1≦j≦Numchunkとする。さらに、1つのチャンクにNumPPC枚のピクチャが含まれている場合、j番目のチャンクの先頭位置を示すchunk_offset(j)は、下記式(1)で表される。ここで、pic_size(k)は、k番目のピクチャのサイズである。また、offsetdefaultは、FTYPボックス又はMDATボックスのサイズ、ボックス名称等からなるオフセット分である。
【0037】
MDATボックスがMOOVボックスより後にくる場合、MOOVボックスのサイズも考慮する必要がある。
前述の方法によれば、SPSデータとPPSデータ、MDATボックスデータから得られたメディアサイズデータによりMOOVボックスデータを復元できる。このようにして復元されたMOOVデータは、MP4ファイル作成部103に出力される。
【0038】
また、MDATデータは、MDAT解析部101とMP4ファイル作成部103に入力されており、同一内容のデータがMDAT解析部101とMP4ファイル作成部103にそれぞれ入力される。
MP4ファイル作成部103は、当該MDATデータを入力し、MOOV作成部102からMOOVデータを入力すると、これらMDATデータ及びMOOVデータからMP4ファイルを作成する。具体的には、FTYPボックスを先頭とし、続いてMOOVデータとMDATデータを加える。
なお、FTYPボックスは、準拠している規格を示すデータを記録するボックスであるので、実際に使用する規格に合わせて作成すればよい。
【0039】
以上のように、この実施の形態1によれば、MDATデータを解析してメディアデータのサイズを示すメディアサイズデータを生成し、MOOVに格納される基本情報のうち、メディアデータのサイズから導き出せる情報に生じた破損を、メディアサイズデータを用いて復元して、MDATデータと復元したMOOVデータとからMP4ファイルを作成する。このようにすることで、MP4ファイル作成中の何らかの事故によってMDATデータのみしか残っていない場合であってもMOOVデータを修復してメディアデータが再生可能なMP4ファイルを作成できる。
【0040】
実施の形態2.
上記実施の形態1は、H.264ビデオESを格納するMP4ファイル作成において、事故が発生してMOOVデータが破損もしくは失われたMP4ファイルの修復方法について開示した。この実施の形態2では、MOOVデータが破損もしくは失われたMP4ファイルのメディアデータを再生する方法及び装置について説明する。
【0041】
図9は、この発明の実施の形態2によるメディアファイル再生装置の構成を示すブロック図である。図9において、実施の形態2によるメディアファイル再生装置は、MDAT解析部101、メディアデータ取得部104、及びメディア伸張部105を備える。MDAT解析部101は、入力したMDATデータを解析してメディアサイズデータを作成する構成部である。また、メディアデータ取得部104は、メディアサイズデータとMDATデータからメディアデータを取得する構成部である。メディア伸張部105は、メディアデータを伸張して伸張済みメディアデータを作成する構成部である。
【0042】
MDAT解析部101、メディアデータ取得部104、及びメディア伸張部105は、この発明の趣旨に従うメディアファイル再生用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0043】
次に動作について説明する。
ここで、MDAT解析部101による動作は、上記実施の形態1と同一であるので説明を省略する。MDATデータは、MDAT解析部101とメディアデータ取得部104に入力されており、同一内容のデータがMDAT解析部101とメディアデータ取得部104にそれぞれ入力される。
【0044】
メディアデータ取得部104は、当該MDATデータを入力し、MDAT解析部101からメディアサイズデータを入力すると、このメディアサイズデータを利用してMDATデータ中からNALユニット(NALヘッダ、RBSP.RBSPトレイリングビット)を抜き出し、メディア伸張部105に順次出力する。なお、NALユニットの先頭部分にスタートコードを付加した上で出力してもよい。
【0045】
メディア伸張部105は、メディアデータ取得部104からメディアデータとして出力されたNALユニットと、入力したSPSデータ及びPPSデータから、メディアデータの伸張を行い、伸張済みメディアデータとして上位のシステムに出力する。なお、SPSデータ及びPPSデータの取得方法は、上記実施の形態1と同様である。
【0046】
以上のように、この実施の形態2によれば、MDATデータを解析してメディアデータのサイズを示すメディアサイズデータを生成し、メディアサイズデータを用いて、MDATデータからメディアデータを取得して伸張する。このようにすることで、MP4ファイル作成中の事故でMDATデータのみとなった場合であっても、MP4ファイルのメディアデータの再生が可能である。
【0047】
なお、上記実施の形態1と上記実施の形態2の構成を組み合わせた装置とすることで、MP4ファイルを修復しながら、このMP4ファイルのメディアデータを再生することができる。
図10は、上記実施の形態1と上記実施の形態2の構成を組み合わせたメディアファイル修復/再生装置の構成を示すブロック図である。図10に示すメディアファイル修復/再生装置は、図4に示した修復装置と図9に示した再生装置を組み合わせたものである。この装置では、共通のMDATデータとSPSデータ及びPPSデータを用いて、MP4ファイルの修復とそのメディアデータの再生を同時に行うことが可能である。
【0048】
実施の形態3.
上記実施の形態1は、MP4ファイル作成中に発生した事故によってMOOVボックスデータが失われた場合、MDATデータのみからMOOVデータを復元してMP4ファイルを修復する方法を示した。
実施の形態1では、H.264ビデオデータを前提として、H.264ビデオデータ中のNALユニットのサイズデータをMDATデータ内に記録することにより、H.264ビデオデータからMDATデータを作成している。しかしながら、MDATデータへの記録方法はメディアデータごとに異なり、必ずしもサイズのデータをMDATデータに記録するわけではない。
【0049】
そこで、この実施の形態3は、MOOVデータを復元してMP4ファイルの修復が可能であり、かつ従来のMP4ファイルと互換性を有するMDATデータを、あらゆるメディアデータから作成する方法と、作成したMDATデータからMOOVデータを復元してMP4ファイルを修復する方法及びこれらの方法を実行する装置について述べる。
【0050】
図11は、この発明の実施の形態3によるメディアファイル作成装置の構成を示すブロック図であり、メディアデータからMDATデータを作成する装置について示している。図11において、実施の形態3によるメディアファイル作成装置は、サイズ解析部106、ユニークコード定義部107及びMDAT作成部108を備える。サイズ解析部106は、メディアデータのサイズを解析する構成部である。ユニークコード定義部107は、メディアデータからユニークコードを定義する構成部である。MDAT作成部108は、メディアデータ、メディアサイズデータ、及びユニークコード情報から、MDATデータを作成する構成部である。
【0051】
サイズ解析部106、ユニークコード定義部107及びMDAT作成部108は、この発明の趣旨に従うメディアファイル作成用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアとが協働した具体的な手段として当該コンピュータ上で実現することができる。
【0052】
次に動作について説明する。
メディアデータは、サイズ解析部106、ユニークコード定義部107及びMDAT作成部108に入力されており、同一内容のデータがサイズ解析部106、ユニークコード定義部107及びMDAT作成部108にそれぞれ入力される。
サイズ解析部106は、当該メディアデータを入力すると、メディアデータのサイズを解析する。例えば、メディアデータが画像であれば、ピクチャごとのサイズを調べ、その情報をメディアサイズデータとして出力する。
また、リニアPCM(Pulse Code Modulation)音声のようなデータであれば、適当な位置で区切りを入れ、その区切り位置を示す情報を出力する。なお、位置の区切り方は、単純に時間で区切る方法等が挙げられる。
【0053】
ユニークコード定義部107は、上記メディアデータを入力すると、メディアデータに基づいてユニークコードを定義する動作を行う。
なお、メディアデータの種類によっては、ユニークコードに相当するコードが予め設定されている場合がある。例えば、MPEG−2(Moving Picture Experts Group-2)は、「000000000000000000000001」という、24ビットのデータに続く8ビットのデータを合わせた32ビットのデータを、スタートコードと呼び、データの区切り目の判別などに利用している。
また、MPEG−2は、画像を符号化する際に「000000000000000000000001」という24ビットのデータになることを避けるように設計されている。
この24ビットのデータに続く8ビットのデータによってデータの種類が判別される。8ビットでは256種類を表すことができるが、8ビットのデータの全てが判別に利用されているわけでなく、データの種類の判別に使われていない値もある。
【0054】
ユニークコード定義部107は、データ種類の判別に使われていない8ビットのデータを上記24ビットのデータと合わせた32ビットのデータを、ユニークコードとして定義する。このように、ユニークコード定義部107では、メディアデータに対応する特殊なコードが予め設定されている場合には、これを利用してユニークコードを定義する。このユニークコードとそのサイズを示すユニークコード情報は、ユニークコード定義部107からMDAT作成部108へ出力される。
【0055】
一方、リニアPCM音声データのように、予め規格に定められたユニークコードが存在しないメディアデータもある。この場合には、ユニークコード定義部107が、メディアデータ全体を参照して他に存在しない特有な値のビット列を探索し、この探索の結果として得られたビット列をユニークコードと定義し、このユニークコードとそのサイズを示すユニークコード情報をMDAT作成部108へ出力する。
なお、データ量が大きい場合は、データを分割した上で上記探索を行っても構わない。この場合、ユニークコード、そのサイズ及びメディアデータの分割位置を示す情報が、ユニークコード情報としてMDAT作成部108へ出力される。
【0056】
続いて、MDAT作成部108による動作を説明する。
MDAT作成部108では、上記のメディアデータを入力し、サイズ解析部106からメディアサイズデータを入力し、ユニークコード定義部107からユニークコード情報を入力すると、これらメディアデータ、メディアサイズデータ、ユニークコード情報から、図12に示すような形式のMDATデータを作成する。
【0057】
ここで、図12に示す形式のMDATデータの特徴は、ボックス名称の直後にユニークコード情報が記録され、またメディアデータの前にユニークコード及びメディアデータのサイズが記録されている点である。これらの情報は、MOOVボックスのSTCO作成時に参照しないことにより、従来のMP4ファイルと互換性を保ち、一般的なMP4プレーヤで再生可能となる。
【0058】
なお、図12は、MDATデータ形式の一例を示したものであり、同様の情報が他の形式で記録されてもよい。また、図12の例では、ユニークコードが1種類のみであるが、複数のユニークコードがある場合は、それらをMDATデータに記録してもよい。
【0059】
この他、図12に示す「他のデータ」として、必要に応じてMOOVデータを復元する際に有用なデータをMDATデータに記録しても構わない。例えば、メディアデータが映像であれば、圧縮形式、映像の幅や高さとフレームレートがMOOVデータを復元する際に有用なデータである。また、リニアPCM音声データの場合には、チャンネル数やサンプリングレート、サンプルあたりの量子化ビット数などがMOOVデータを復元する際に有用なデータとなる。さらに、圧縮音源であれば、圧縮形式を示すデータを追加するとよい。
【0060】
次に、上述のようにして作成したMDATデータからMOOVデータを復元してMP4ファイルを修復する方法について述べる。
図13は、実施の形態3によるメディアファイル修復装置の構成を示すブロック図である。図13において、実施の形態3によるメディアファイル修復装置は、MDAT解析部109、MOOV作成部110及びMP4ファイル作成部103を備える。MDAT解析部109は、入力したMDATデータを解析してメディアサイズデータとメディア基本情報とを出力する構成部である。MOOV作成部110は、メディアサイズデータ及びメディア基本情報からMOOVデータを作成する構成部である。MP4ファイル作成部103は、MOOVデータとMDATデータからMP4ファイルを作成する構成部である。
【0061】
MDAT解析部109、MOOV作成部110、及びMP4ファイル作成部103は、この発明の趣旨に従うメディアファイル修復用プログラムをコンピュータに読み込ませ、そのCPUに実行させることによって、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0062】
次に動作について説明する。
図11に示すメディアファイル作成装置で作成されたMDATデータは、MDAT解析部109及びMP4ファイル作成部103へ入力されており、同一内容のデータがMDAT解析部109とMP4ファイル作成部103にそれぞれ入力される。
MDAT解析部109は、上記MDATデータを入力すると、このMDATデータからメディアデータのサイズ情報を取得する。このMDATデータは、上述の図12で示したデータであるので、MDAT解析部109は、先ず、MDATボックス名称の直後にあるユニークコードを特定する。
続いて、MDAT解析部109は、以降のデータにおけるユニークコードを探索して、さらにユニークコードの直後にあるメディアデータのサイズ情報を取得し、サイズ情報の直後にあるメディアデータの位置情報を取得する。
このように、図12に示されたMDAT形式を利用することで、簡単にメディアデータのサイズと位置情報を得ることができる。メディアデータのサイズと位置を示すメディアサイズデータは、MDAT解析部109からMOOV作成部110へ出力される。
また、MDAT解析部109は、図12に示す「他のデータ」をメディア基本情報としてMOOV作成部110へ出力する。
【0063】
MOOV作成部110は、MDAT解析部109からメディアサイズデータを入力すると、このメディアサイズデータからMOOVデータを作成する。大まかな動作は、上記実施の形態1で示した方法と同様であるが、実施の形態3では、リニアPCMのような音声データも対象としているため、MOOVデータの復元に不要なデータ、逆に必要となるデータがある。
【0064】
MP4ファイルのMOOVボックスにおいて、メディアデータの再生に関わる必要最低限のデータとしては、以下が挙げられる。
(1a)MVHDボックスのtime_scaleとduration
(2a)TKHDボックスのduration、メディアデータが映像の場合には、track_widthとtrack_heightも必要
(3a)MDHDボックスのtime_scaleとduration
(4a)STSDボックス
(5a)STTSボックスのentry_countとsample_count、sample_delta
(6a)STSCボックスのentry_countとfirst_chunk、samples_per_chunk、sample_description_index
(7a)STSZボックスのsample_sizeとsample_count、entry_size
(8a)STCOボックスのentry_countとchunk_offset
【0065】
以下、順番に(1a)〜(8a)のデータ修復方法を説明する。
上記(1a)のMVHDボックスのtime_scaleは、メディアデータが映像の場合、上記実施の形態1と同様の処理で求める。一方、メディアデータが音声の場合は、サンプリングレートを用いる。ここで、durationは、映像と同様にduration=(音声のサンプル数)/time_scaleの関係から求める。
【0066】
上記(2a)のTKHDボックスのdurationは、メディアデータが映像及び音声のいずれの場合であっても、上記(1a)のMVHDボックスのdurationと同様である。さらに映像であれば、track_widthとtrack_heightも必要であるが、これは上記実施の形態1と同様にして求める。
【0067】
上記(3a)のMDHDボックスのtime_scaleとdurationは、メディアデータが映像及び音声のいずれの場合であっても、上記(1a)のMVHDボックスと同様の処理で求める。
【0068】
上記(4a)のSTSDボックスのデータは、メディアデータが映像であるか音声であるか、さらにメディアフォーマットによっても異なる。メディアデータが映像であれば、メディア基本情報から作成した圧縮形式、映像の幅や高さを示す情報、特にH.264であれば、SPSデータ及びPPSデータを用いて、上記実施の形態1と同様にSTSDボックスデータを求める。また、メディアデータが音声であれば、メディア基本情報からサンプリングレートやチャンネル数、サンプルの量子化ビット数、圧縮音源であれば、圧縮形式を作成し、これらの情報を用いてSTSDボックスデータを作成する。
【0069】
上記(5a)のSTTSボックスのentry_countとsample_count、sample_deltaは、メディアデータが映像の場合は、上記実施の形態1と同様の処理で求める。メディアデータが音声の場合には、entry_count=1とし、sample_countを音声のサンプル数として、sample_delta=time_scale×(サンプリング周波数)の関係から求める。
【0070】
上記(6a)のSTSCボックスのentry_countとfirst_chunk、samples_per_chunk、sample_description_indexについては、メディアデータが映像の場合、上記実施の形態1と同様の処理で求める。メディアデータが音声の場合についても、単純に時間でチャンクを区切るものと仮定して映像の場合と同様な処理で求める。
【0071】
上記(7a)のSTSZボックスのsample_sizeとsample_count、entry_sizeの値は、メディアデータが映像の場合、上記実施の形態1と同様の処理(1)で求める。メディアデータが音声の場合には、リニアPCMのようにサンプルごとのデータ量が一定である場合、sample_sizeの値をサンプルの大きさとする。このとき、MP4ファイルフォーマットでは、sample_count、entry_sizeは存在しないことになる。メディアデータが圧縮音声データであると、データサイズが可変となるため映像の場合と同様に処理して値を求めればよい。
【0072】
上記(8a)のSTCOボックスのentry_count及びchunk_offsetの値は、メディアデータが映像の場合は、上記実施の形態1と同様の処理で求める。ただし、この実施の形態3では、ユニークコード情報の分のオフセットや、メディアデータの先頭に記録されるユニークコード分を考慮して計算する必要がある。
メディアデータが音声の場合も同様であり、チャンクに含まれるサンプルの個数を決定してentry_countの値とし、chunk_offsetには、上記実施の形態1と同様の処理によってファイルの先頭からの位置を算出する。これにより、MOOVデータボックスが作成可能である。
【0073】
MP4ファイル作成部103は、MOOV作成部110により作成された上記MOOVデータを入力し、このMOOVデータを用いて、上記実施の形態1と同様にしてFTYPボックスを作成し、MDATデータ及びMOOVデータをつなげてMP4ファイルを作成する。
【0074】
以上のように、この実施の形態3によれば、メディアデータを解析して当該メディアデータのサイズを示すメディアサイズデータを生成し、メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中のユニークコードの位置を示すユニークコード情報を生成して、メディアデータ、サイズデータ及びユニークコード情報を用いて、ユニークコードが挿入されたMDATデータを作成する。
このMDATデータのユニークコードを探索してユニークコードごとに特定されるメディアデータのサイズデータを生成し、MOOVデータに格納される基本情報のうち、メディアデータのサイズから導き出せる情報に生じた破損を、メディアサイズデータを用いて復元して、MDATデータと復元したMOOVデータからMP4ファイルを作成する。
このようにすることで、H.264ビデオES以外のメディアデータのMP4ファイル作成時に事故が発生して、MOOVボックスデータが失われても、MDATデータのみからMOOVボックスデータを復元し、再生可能なMP4ファイルの作成が可能である。
また、MDATデータ内のユニークコードやメディアデータのサイズ情報は、通常のプレーヤによる再生時には参照されないため、MOOVデータが正常に作成されていれば、通常のMP4プレーヤで再生も可能である。
【0075】
実施の形態4.
上記実施の形態3は、MOOVデータが破損した場合であっても、MDATデータからMOOVデータを復元しMP4ファイルを修復する方法及び装置を示した。
この実施の形態4では、MOOVデータが破損したMP4ファイルのメディアデータを再生する方法及び装置について説明する。
【0076】
図14は、この発明の実施の形態4によるメディアファイル再生装置の構成を示すブロック図である。図14において、実施の形態4によるメディアファイル再生装置は、MDAT解析部109、メディアデータ取得部111及びメディア伸張部112を備える。
MDAT解析部109は、入力したMDATデータを解析してメディアサイズデータを作成する構成部である。メディアデータ取得部111は、メディアサイズデータとMDATデータからメディアデータを取得する構成部である。メディア伸張部112は、メディアデータを伸張して伸張済みメディアデータを作成する構成部である。
【0077】
MDAT解析部109、メディアデータ取得部111、及びメディア伸張部112は、この発明の趣旨に従うメディアファイル再生用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0078】
次に動作について説明する。
ここで、MDAT解析部109の動作は、上記実施の形態3と同一であるので説明を省略する。
メディアデータ取得部111は、MDAT解析部109から入力したメディアサイズデータを用いてMDATデータ中からメディアデータを抜き出し、メディア伸張部112に順次出力する。また、ここでは、図12で示した「他のデータ」としてメディアデータの圧縮形式などの情報がMDATデータに記録されているものとする。この場合、MDAT解析部109は、MDATデータから上記データを抽出すると、これをメディア基本情報としてメディア伸張部112へ出力する。
【0079】
メディア伸張部112は、メディアデータ取得部111から入力したメディアデータをその形式に合わせて伸張し、伸張済みメディアデータとして上位のシステムに出力する。このとき、メディア伸張部112は、MDAT解析部109から入力したメディア基本情報を利用して、当該メディアデータの圧縮フォーマットに対応した伸張を実行する。
【0080】
以上のように、この実施の形態4によれば、上記実施の形態3のメディアファイル作成方法で作成したMP4ファイルを再生するにあたり、MDATデータのユニークコードを探索してユニークコードごとに特定されるメディアデータのメディアサイズデータを生成し、このメディアサイズデータを用いてMDATデータからメディアデータを取得して伸張する。このようにすることで、上記実施の形態3で示した方法により作成されたMP4ファイルであれば、何らかの事故によってMOOVデータが破損し、MDATデータのみしか残っていない場合であっても、MP4ファイルの再生が可能である。
【0081】
なお、上記実施の形態3と上記実施の形態4の構成を組み合わせた装置とすることで、MP4ファイルを修復しながら、このMP4ファイルのメディアデータを再生できる。
図15は、上記実施の形態3と上記実施の形態4の構成を組み合わせたメディアファイル修復/再生装置の構成を示すブロック図である。図15に示すメディアファイル修復/再生装置は、図13に示した修復装置と図14に示した再生装置を組み合わせたものである。この装置では、共通のMDATデータ及びメディア基本情報を用いて、MP4ファイルの修復とそのメディアデータの再生を同時に行うことが可能である。
【0082】
実施の形態5.
この実施の形態5では、MDATデータへのユニークコードの挿入位置を工夫することで、MDATデータ内にランダムアクセスポイントを作成する。このMDATデータを基に作成したMP4ファイルでは、MOOVデータが破損した場合であっても破損した部分以外の再生が可能になる。
【0083】
図16は、この発明の実施の形態5によるメディアファイル作成装置の構成を示すブロック図であり、メディアデータからMDATデータを作成する装置について示している。図16において、実施の形態5によるメディアファイル作成装置は、サイズ解析部106、ユニークコード定義部107、ランダムアクセスポイント探索部113及びMDAT作成部114を備える。
【0084】
サイズ解析部106は、メディアデータのサイズを解析する構成部である。ユニークコード定義部107は、メディアデータからユニークコードを定義する構成部である。ランダムアクセスポイント探索部113は、メディアデータからランダムアクセスポイントを探索する構成部である。MDAT作成部114は、メディアデータ、メディアサイズデータ、ランダムアクセスポイント情報、及びユニークコード情報から、MDATデータを作成する構成部である。
【0085】
なお、サイズ解析部106、ユニークコード定義部107、ランダムアクセスポイント探索部113及びMDAT作成部114は、この発明の趣旨に従うメディアファイルフォーマット作成用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアとが協働した具体的な手段として当該コンピュータ上で実現することができる。
【0086】
次に動作について説明する。
なお、以降では、メディアデータとしてH.264ビデオESを例に説明する。
メディアデータは、サイズ解析部106、ユニークコード定義部107、ランダムアクセスポイント探索部113及びMDAT作成部114に入力されており、同一内容のデータがサイズ解析部106、ユニークコード定義部107、ランダムアクセスポイント探索部113及びMDAT作成部114にそれぞれ入力される。
【0087】
サイズ解析部106は、入力した上記メディアデータのサイズを解析し、上記メディアデータのサイズを示すメディアサイズデータをMDAT作成部114に出力する。動作の詳細は、上記実施の形態3と同様であるので省略する。
【0088】
ランダムアクセスポイント探索部113は、メディアデータにおけるランダムアクセスポイントを探索する。H.264ビデオESには、IDRピクチャと呼ばれるピクチャが存在し、このIDRピクチャが出現すると、それ以前のピクチャはそれ以降のピクチャを参照しないことになっている。従って、IDRピクチャは確実なランダムアクセスポイントである。IDRピクチャはnal_unit_typeで判別可能であり、NALヘッダを調べることでわかる。ランダムアクセスポイント探索部113は、探索したランダムアクセスポイントの位置を示すランダムアクセスポイント情報をMDAT作成部114へ出力する。
【0089】
ユニークコード定義部107は、上記メディアデータを入力すると、メディアデータに基づいてユニークコードを定義し、定義したユニークコードを示すユニークコード情報をMDAT作成部114へ出力する。動作の詳細は、上記実施の形態3と同様であるので省略する。
【0090】
続いて、MDAT作成部114による動作を説明する。
MDAT作成部114では、上記のメディアデータを入力し、サイズ解析部106からメディアサイズデータを入力し、ランダムアクセスポイント探索部113からランダムアクセスポイント情報を入力し、ユニークコード定義部107からユニークコード情報を入力すると、これらメディアデータ、メディアサイズデータ、ランダムアクセスポイント情報、ユニークコード情報から、図17に示すような形式のMDATデータを作成する。
【0091】
ここで、図17に示す形式のMDATデータの特徴は、ボックス名称の直後にユニークコード情報とそのサイズが記録され、またIDRピクチャの直前にユニークコードが存在し、IDRピクチャ以外のメディアデータの前にはユニークコードがない点である。
なお、ここで追加したユニークコード部分は、MOOVデータの作成時に参照しないようにする。
【0092】
次に、上述のようにして作成したMDATデータを含むMP4ファイル(以下、MP4データと呼ぶ)のメディアデータを再生する方法について述べる。
図18は、実施の形態5によるメディアファイル再生装置の構成を示すブロック図である。図18において、実施の形態5によるメディアファイル再生装置は、データ分離部115、MOOV解析部116、メディア伸張部117、及びMDAT解析部118を備える。
【0093】
データ分離部115は、入力したMP4データをMDATデータとMOOVデータとに分離して出力する構成部である。MOOV解析部116は、MOOVデータを解析して、メディアデータを規定する情報を抽出しMOOV解析結果として出力する構成部である。メディア伸張部117は、圧縮されたメディアデータを伸張して伸張済みメディアデータを作成する構成部である。
また、メディア伸張部117では、MOOVデータに誤りがあった場合、MDATデータのどの位置で伸張に失敗したかを特定し、誤り位置情報としてMDAT解析部118へ出力する。MDAT解析部118は、誤り位置情報とMDATデータから誤り位置情報以降の最初のユニークコードを探索し、探索結果のユニークコードの位置を復帰位置情報としてメディア伸張部113に出力する構成部である。
【0094】
データ分離部115、MOOV解析部116、メディア伸張部117及びMDAT解析部118は、この発明の趣旨に従うメディアファイル再生用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0095】
次に動作について説明する。
データ分離部115は、入力したMP4データをMOOVデータとMDATデータとに分離する。MP4データは、上記実施の形態1で図1及び図2を用いて説明したように、ボックスごとにデータサイズが容易にわかる構造をしており、分離も可能である。MP4データから分離されたMOOVデータはMOOV解析部116に入力され、MDATデータは、メディア伸張部117及びMDAT解析部118にそれぞれ入力される。
【0096】
MOOV解析部116は、データ分離部115によってMP4データから分離されたMOOVデータを入力すると、このMOOVデータ内のメディアデータの圧縮形式(ここでは、H.264ビデオ)や、画像の幅及び高さ、画像に関する情報(STSDボックスに記録)、チャンクの構造情報(STSCボックスに記録)、チャンクの位置情報(STCOボックスに記録)、サンプルのサイズ情報(STSZボックスに記録)、再生時刻情報(STTSボックスに記録)を解析し、MOOV解析結果としてメディア伸張部117に出力する。この段階では、MOOVの情報が正しいかどうかは不明である。
【0097】
メディア伸張部117は、データ分離部115でMP4データから分離されたMDATデータを入力すると、このMDATデータから圧縮されたメディアデータを抽出し、メディアデータの伸張を行う。
この実施の形態5は、メディアデータとして、H.264ビデオを例としているので、H.264ビデオESの伸張を行い、画像データが得られる。正常にメディアデータが得られた場合、メディア伸張部117は、伸張済みメディアデータを上位のシステムへ出力する。ここで、MOOVデータに誤りがあれば、H.264ビデオの復号に失敗することになる。このとき、メディア伸張部117は、MDATデータ内のどの位置で復号が失敗したかを特定し、誤り位置情報としてMDAT解析部118に出力する。
【0098】
MDAT解析部118は、データ分離部115でMP4データから分離されたMDATデータを入力し、メディア伸張部117から誤り位置情報を入力すると、誤り位置情報とMDATデータから、誤り位置情報で示される位置以降に最初に存在するユニークコードを探索する。ユニークコードは、IDRピクチャの直前に存在するので、ユニークコード以降のデータは、ユニークコード以前のデータの影響を受けずに再生可能である。
【0099】
MDAT解析部118は、探索した結果のユニークコードの位置を復帰位置情報としてメディア伸張部117に出力する。メディア伸張部117は、MDAT解析部118からの復帰位置情報を受けると、MOOV解析部116からのMOOV解析結果のうち、この復帰位置情報で示される位置以降に関連するMOOV解析結果を選別するとともに、この復帰位置情報で示される位置以降のMDATデータの伸張を行い、選別したMOOV解析結果及びMDATデータ伸張の結果を、伸張済みメディアデータとして上位のシステムへ出力する。
【0100】
以上のように、この実施の形態5によれば、メディアデータを解析して当該メディアデータのメディアサイズデータを生成し、メディアデータでランダムなアクセスが可能なデータ部分を示すランダムアクセスポイントを探索し、当該メディアデータ中のランダムアクセスポイントの位置を示すランダムアクセスポイント情報を生成し、メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中のユニークコードの位置を示すユニークコード情報を生成し、メディアデータ、サイズデータ、ユニークコード情報及びランダムアクセスポイント情報を用いて、メディアデータ中のランダムアクセスポイントにユニークコードが挿入されたMDATデータを作成する。
このMP4ファイルを再生するにあたり、上記MP4ファイルからMDAT及びMOOVのデータを分離し、MOOVデータを解析して基本情報を取得し、この基本情報を用いてMDATデータから取得したメディアデータを伸張し、当該メディアデータに誤りがあると、MDATのユニークコードを探索して当該メディアデータ中のランダムアクセスポイントを特定し、ランダムアクセスポイント以降のメディアデータを伸張する。
このようにMDATデータのIDRピクチャ(ランダムアクセスポイント)の前にユニークコードを追加することで、MP4ファイル作成時の事故によって誤ったMOOVデータが作成された場合であっても、誤り位置の次のIDRピクチャから再生が可能になる。
【0101】
なお、上記実施の形態5では、メディアデータとしてH.264ビデオを例としたが、これ以外のビデオ、オーディオデータに対しても適用可能である。
【0102】
実施の形態6.
この実施の形態6では、上記実施の形態3で図12を用いて説明したユニークコードとMDATデータ中の通常は参照されないデータ領域とを利用して、メディアデータの特殊再生を実現する。この特殊再生として、実施の形態6では、メディア中の注目シーンのみを順次再生する場合を例に挙げる。
【0103】
図19は、この発明の実施の形態6によるメディアファイル作成装置の構成を示すブロック図である。図19において、実施の形態6によるメディアファイル作成装置は、サイズ解析部106、ユニークコード定義部107、特殊再生データ作成部119及びMDAT作成部120を備える。
【0104】
サイズ解析部106は、メディアデータのサイズを解析する構成部である。ユニークコード定義部107は、メディアデータからユニークコードを定義する構成部である。特殊再生データ作成部119は、メディアデータから特殊再生情報を作成する構成部である。MDAT作成部120は、メディアデータ、メディアサイズデータ、特殊再生情報、及びユニークコード情報から、MDATデータを作成する構成部である。
【0105】
サイズ解析部106、ユニークコード定義部107、特殊再生データ作成部119及びMDAT作成部120は、この発明の趣旨に従うメディアファイル作成用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアとが協働した具体的な手段として当該コンピュータ上で実現することができる。
【0106】
次に動作について説明する。
メディアデータは、サイズ解析部106、ユニークコード定義部107、特殊再生データ作成部119及びMDAT作成部120に入力されており、同一内容のデータがサイズ解析部106、ユニークコード定義部107、特殊再生データ作成部119及びMDAT作成部120にそれぞれ入力される。
【0107】
サイズ解析部106は、入力した上記メディアデータのサイズを解析し、上記メディアデータのサイズを示すメディアサイズデータをMDAT作成部120に出力する。また、ユニークコード定義部107は、上記メディアデータを入力すると、メディアデータに基づいてユニークコードを定義し、定義したユニークコードを示すユニークコード情報をMDAT作成部114へ出力する。サイズ解析部106及びユニークコード定義部107の動作の詳細は、上記実施の形態3と同様であるので省略する。
【0108】
特殊再生データ作成部119は、入力したメディアデータから注目シーンを探索して、特殊再生情報としてMDAT作成部120に出力する。注目シーンを探す方法は、多くの方法が提案されており、本発明では注目シーンを探す方法は問わない。
【0109】
MDAT作成部120は、上記のメディアデータを入力し、サイズ解析部106からメディアサイズデータを入力し、特殊再生データ作成部119から特殊再生情報を入力し、ユニークコード定義部107からユニークコード情報を入力すると、これらメディアデータ、メディアサイズデータ、特殊再生情報、ユニークコード情報から、MDATデータを作成する。
【0110】
このとき、MDAT作成部120によって作成されるMDATデータを図20に示す。図20に示すMDATデータの特徴は、注目シーンの前にユニークコードを挿入し、注目シーンでない場合にはユニークコードを挿入しない。つまり、MDATデータ中の注目シーンの前に存在する通常は参照されないデータ領域にユニークコードを記録することにより、ユニークコードを特殊再生する注目シーン画像の識別に利用する。
【0111】
次に、上述のようにして作成したMDATデータを含むMP4データのメディアデータを再生する方法について述べる。
図21は、実施の形態6によるメディアファイル再生装置の構成を示すブロック図である。図21において、実施の形態6によるメディアファイル再生装置は、データ分離部115、MOOV解析部116、特殊再生情報取得部121及びメディア伸張部122を備える。
【0112】
データ分離部115は、入力したMP4データをMDATデータとMOOVデータとに分離して出力する構成部である。MOOV解析部116は、MOOVデータを解析して、メディアデータを規定する情報を抽出しMOOV解析結果として出力する構成部である。特殊再生情報取得部121は、入力したMDATデータから特殊再生情報を取得する構成部である。メディア伸張部122は、圧縮されたメディアデータを伸張して伸張済みメディアデータを作成する構成部である。また、メディア伸張部122は、特殊再生情報取得部121から特殊再生情報を受けると、当該特殊再生情報が示す注目シーンの画像データのみを伸張して出力する。
【0113】
データ分離部115、MOOV解析部116、特殊再生情報取得部121及びメディア伸張部122は、この発明の趣旨に従うメディアファイル再生用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0114】
次に動作について説明する。
データ分離部115は、入力したMP4データをMOOVデータとMDATデータとに分離する。MP4データから分離されたMOOVデータは、MOOV解析部116に入力され、MDATデータは、特殊再生情報取得部121及びメディア伸張部122にそれぞれ入力される。
【0115】
MOOV解析部116は、データ分離部115によってMP4データから分離されたMOOVデータを入力すると、このMOOVデータ内のメディアデータの圧縮形式や、画像の幅及び高さ、画像に関する情報(STSDボックスに記録)、チャンクの構造情報(STSCボックスに記録)、チャンクの位置情報(STCOボックスに記録)、サンプルのサイズ情報(STSZボックスに記録)、再生時刻情報(STTSボックスに記録)を解析し、MOOV解析結果としてメディア伸張部122に出力する。
【0116】
特殊再生情報取得部121は、データ分離部115でMP4データから分離されたMDATデータを入力すると、このMDATデータからユニークコードを探索し、探索結果のユニークコードの位置を示す特殊再生情報をメディア伸張部122へ出力する。
【0117】
メディア伸張部122では、データ分離部115でMP4データから分離されたMDATデータを入力すると、このMDATデータから圧縮されたメディアデータを抽出し、メディアデータの伸張を行う。このとき、特殊再生情報取得部121から特殊再生情報を入力していれば、メディア伸張部122は、特殊再生情報で示されるユニークコードの位置から注目シーンの情報を特定し、この注目シーンのみの画像データを伸張して上位のシステムへ出力する。
【0118】
以上のように、この実施の形態6によれば、メディアデータを解析して当該メディアデータのサイズを示すメディアサイズデータを生成し、メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中のユニークコードの位置を示すユニークコード情報を生成し、メディアデータを解析して特殊再生をすべきデータ部分を特定し、当該データ部分の位置を示す特殊再生情報を生成し、メディアデータ、サイズデータ、ユニークコード情報及び特殊再生情報を用いて、メディアデータ中の特殊再生をすべきデータ部分の位置にユニークコードが挿入されたMDATデータを作成する。
このMDATデータを含むMP4ファイルを再生するにあたり、メディアファイルからMDAT及びMOOVのデータを分離し、MOOVデータを解析して基本情報を取得し、この基本情報を用いてMDATデータから取得したメディアデータを伸張するとともに、MDATデータのユニークコードを探索して当該特殊再生をすべきデータ部分を特定して、特殊再生をすべきデータ部分のメディアデータを伸張する。
このようにMDATデータに注目シーン等の特殊再生情報を格納することで、通常のMP4プレーヤでは通常再生、特殊再生に対応しているプレーヤについては特殊再生が可能なMP4ファイルを作成できる。
【0119】
実施の形態7.
この実施の形態7では、上記実施の形態6で示したMDATデータ内の通常の再生時に参照されないデータ領域を利用して、メディアデータを2種類の暗号で暗号化することにより、メディアの視聴制限を設ける方法について述べる。これにより、例えば、コンテンツを通常購入した顧客には、通常の映像のみを視聴可能とし、追加料金を払った顧客は、通常の映像の他に特典映像も視聴可能にする、といった利用方法を実現できる。
【0120】
図22は、この発明の実施の形態7によるメディアファイル作成装置の構成を示すブロック図である。図22において、実施の形態7によるメディアファイル作成装置は、サイズ解析部106、ユニークコード定義部107、メディア暗号化部123及びMDAT作成部124を備える。
【0121】
サイズ解析部106は、メディアデータのサイズを解析する構成部である。ユニークコード定義部107は、メディアデータからユニークコードを定義する構成部である。メディア暗号化部123は、暗号情報に基づいてメディアデータを暗号化して暗号化メディアを作成する構成部である。MDAT作成部124は、メディアデータ、メディアサイズデータ、暗号情報、暗号化メディア、及びユニークコード情報から、MDATデータを作成する構成部である。
【0122】
なお、サイズ解析部106、ユニークコード定義部107、メディア暗号化部123及びMDAT作成部124は、この発明の趣旨に従うメディアファイル作成用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアとが協働した具体的な手段として当該コンピュータ上で実現することができる。
【0123】
次に動作について説明する。
メディアデータは、サイズ解析部106、ユニークコード定義部107及びメディア暗号化部123に入力されており、同一内容のデータがサイズ解析部106、ユニークコード定義部107及びメディア暗号化部123にそれぞれ入力される。また、暗号情報は、メディア暗号化部123及びMDAT作成部124にそれぞれ入力される。
【0124】
サイズ解析部106は、入力した上記メディアデータのサイズを解析し、上記メディアデータのサイズを示すメディアサイズデータをMDAT作成部120に出力する。サイズ解析部106の動作の詳細は、上記実施の形態3と同様であるので省略する。
また、ユニークコード定義部107は、上記メディアデータを入力すると、メディアデータに基づいてユニークコードを定義し、定義したユニークコードを示すユニークコード情報をMDAT作成部114へ出力する。ユニークコード定義部107の動作の詳細も、上記実施の形態3と同様であるが、この実施の形態7では、ユニークコードを2種類以上定義して出力する。以降の説明では、2種類のユニークコードを定義する場合を例に挙げる。
【0125】
メディア暗号化部123は、入力した暗号情報を用いて、上記メディアデータを暗号化する。ここで取り扱われるメディアデータには、図23に示すようにレベル1で暗号化すべきデータ部分とレベル2で暗号化すべきデータ部分が混在しているものとする。なお、レベル1,2では異なる暗号化が行われ、例えばレベル1ではメディアコンテンツを通常購入した顧客のみが復号でき、レベル2はさらに追加料金を支払ってメディアコンテンツを購入した顧客が復号できる。
【0126】
レベル1の暗号化を施すべきメディアデータか、レベル2の暗号化を施すべきメディアデータかの区別は、メディアデータ中の時間情報等を利用して、暗号情報で予め定められているものとする。例えば、0:00から0:16までのメディアデータはレベル1、0:16から0:24までのメディアデータはレベル2の設定で暗号化を行う。さらに、暗号情報には、レベル1のパスワードのハッシュ値(以下、パスワードハッシュ1と呼ぶ)と、レベル2のパスワードのハッシュ値(以下、パスワードハッシュ2と呼ぶ)とを含むものとする。なお、ハッシュのアルゴリズムについては特に限定しない。
【0127】
ここで、実際のメディア暗号化を説明する。
メディア暗号化部123は、入力した暗号情報から、各メディアデータをレベル1、レベル2のいずれかで暗号化すべきかを認識し、さらにはサイズ解析部106から入力したメディアサイズデータから、各メディアデータのサイズを認識する。
この後、メディア暗号化部123は、認識したデータサイズを示すバイナリデータと、各メディアデータの暗号化レベルに対応するパスワードハッシュ1もしくはパスワードハッシュ2と、のXOR(排他的論理和)を演算する。
このXOR値をメディアごとの暗号鍵として、メディア暗号化部123は、各メディアデータを暗号化し、暗号化メディアデータとしてMDAT作成部124に出力する。
【0128】
MDAT作成部124は、上記メディアデータ及び暗号情報を入力し、サイズ解析部106からメディアサイズデータを入力し、メディア暗号化部123から暗号化メディアデータを入力し、ユニークコード定義部107からユニークコード情報を入力すると、これらメディアデータ、メディアサイズデータ、暗号情報、ユニークコード情報、暗号化メディアデータから、暗号化MDATデータを作成する。
先ず、MDAT作成部124は、ユニークコード情報で示される2種類のユニークコードのうち、どちらをレベル1、レベル2にするかを割り振る。ここでは、レベル1に割り振られたものをユニークコード1とし、レベル2に割り振られたものをユニークコード2とする。
図24は、MDAT作成部124によって作成される暗号化MDATデータを示す図である。図24に示すように、暗号化MDATデータでは、ボックス名称の直後に暗号情報のサイズ、レベル1,2のそれぞれのパスワードハッシュとユニークコードが存在する。また、暗号化されたメディアデータは、暗号化のレベルに応じたユニークコードをその先頭位置に有する。つまり、MDATデータ中の暗号化メディアデータの前に存在する通常は参照されないデータ領域にユニークコードを記録することで、ユニークコードによって暗号化メディアデータの暗号化レベルを識別できる。
【0129】
次に、上述のようにして作成したMDATデータを含むMP4データのメディアデータを再生する方法について述べる。
図25は、実施の形態7によるメディアファイル再生装置の構成を示すブロック図である。図25において、実施の形態7によるメディアファイル再生装置は、データ分離部115、MOOV解析部116、暗号復号部125及びメディア伸張部126を備える。
【0130】
データ分離部115は、入力したMP4データを暗号化MDATデータとMOOVデータとに分離して出力する構成部である。MOOV解析部116は、MOOVデータを解析して、メディアデータを規定する情報を抽出しMOOV解析結果として出力する構成部である。暗号復号部125は、入力した暗号化MDATデータを復号して復号MDATデータを取得する構成部である。メディア伸張部126は、復号MDATデータから抽出したメディアデータを伸張して伸張済みメディアデータを作成する構成部である。
【0131】
データ分離部115、MOOV解析部116、暗号復号部125及びメディア伸張部126は、この発明の趣旨に従うメディアファイル再生用プログラムをコンピュータに読み込ませ、そのCPUに実行させることにより、ハードウエアとソフトウエアが協働した具体的な手段として、当該コンピュータ上で実現することができる。
【0132】
次に動作について説明する。
データ分離部115は、入力したMP4データをMOOVデータと暗号化MDATデータとに分離する。MP4データから分離されたMOOVデータは、MOOV解析部116に入力され、暗号化MDATデータは暗号復号部125に入力される。また、暗号復号部125には、復号に用いるパスワードも入力される。
なお、サイズ解析部106及びMOOV解析部116の動作の詳細は、上記実施の形態5と同様であるので省略する。特に、データ分離部115は、MP4データから暗号化MDATデータを分離するが、MDATデータとMOOVデータのサイズの違いを利用して分離する点など、動作は全く同一である。
【0133】
暗号復号部125は、データ分離部115によってMP4データから分離されたMOOVデータを入力し、パスワードを入力すると、先ず、入力されたパスワードのハッシュ値を取得する。ここでは、暗号復号部125が、入力されたパスワードのハッシュ値と、暗号化MDATデータ中のパスワードハッシュ1,2の各値とを比較する。
このとき、入力されたパスワードのハッシュ値が、パスワードハッシュ1,2の両方と異なっていれば、このパスワードは間違っている。このため、暗号復号部125は、復号処理を中止する。パスワードハッシュ1と同一であれば、暗号復号部125は、レベル1のMDATデータのメディアデータの復号処理を開始する。また、パスワードハッシュ2と同一であれば、暗号復号部125は、レベル1、レベル2両方のMDATデータのメディアデータの復号処理を開始する。
【0134】
図22に示す装置は、上述したようにパスワードハッシュ1もしくはパスワードハッシュ2と、各メディアデータのサイズを示すバイナリ値とのXOR値を暗号鍵としている。パスワードハッシュは、図24に示すように暗号化MDATデータ内に存在する。
また、暗号化MDATデータ内の各メディアデータはユニークコードによって区切られていることから、暗号復号部125は、容易に各メディアデータのサイズを取得できる。
このようにして、暗号復号部125は、入力されたパスワードの暗号化レベルに応じてメディアデータを復号し、復号MDATデータとしてメディア伸張部126に出力する。
【0135】
メディア伸張部117は、暗号復号部125で復号された復号MDATデータを入力すると、復号MDATデータから圧縮したメディアデータを抽出して、MOOV解析結果を用いてメディアデータの伸張を行う。メディア伸張部117による動作の詳細は、上記実施の形態5と同様である。
【0136】
以上のように、この実施の形態7によれば、メディアデータを解析して当該メディアデータのサイズを示すメディアサイズデータを生成し、メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中のユニークコードの位置を示すユニークコード情報を生成し、メディアデータの再生を制限するレベルを規定する暗号情報、当該レベル情報で規定されるレベルに応じた暗号化に用いるパスワード、メディアデータ及びメディアサイズデータを用いて、当該レベル情報で規定されるレベルに応じてデータが暗号化された暗号化メディアデータを生成し、暗号情報、暗号化メディアデータ、ユニークコード情報及びメディアサイズデータを用いて、レベルごとの暗号化メディアデータにユニークコードが挿入されたMDATのデータを作成する。
このMDATデータを用いたMP4ファイルを再生するにあたり、メディアファイルからMDAT及びMOOVのデータを分離し、MOOVデータを解析して基本情報を取得するとともに、メディアデータの再生を制限するレベルに応じたパスワードに基づいて、MDATの暗号化メディアデータを復号し復号メディアデータを生成し、得られた基本情報を用いて復号メディアデータを伸張する。
このようにMDATデータ内に暗号化情報を入れることで、ユーザの持つ権限ごとにコンテンツの視聴範囲を制限することが可能である。
【0137】
なお、上記実施の形態7では、暗号化レベルを1と2の2段階としたが、より細かい設定にしてもよい。
【符号の説明】
【0138】
101,109,118 MDAT解析部、102,110 MOOV作成部、103 MP4ファイル作成部、104 メディアデータ取得部、105,112,117,122,126 メディア伸張部、106 サイズ解析部、107 ユニークコード定義部、108,114,120,124 MDAT作成部、111 メディアデータ取得部、113 ランダムアクセスポイント探索部、115 データ分離部、116 MOOV解析部、119 特殊再生データ作成部、121 特殊再生情報取得部、123 メディア暗号化部、125 暗号復号部。
【特許請求の範囲】
【請求項1】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを修復するメディアファイル修復方法において、
前記第1のボックスを解析して前記メディアデータのサイズを示すサイズデータを生成するステップと、
前記第2のボックスに格納される基本情報のうち、前記メディアデータのサイズから導き出せる情報に生じた破損を、前記サイズデータを用いて復元するステップと、
前記第1のボックスと前記復元した第2のボックスから前記メディアファイルフォーマットに準拠したメディアファイルを作成するステップとを備えたことを特徴とするメディアファイル修復方法。
【請求項2】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを再生するメディアファイル再生方法において、
前記第1のボックスを解析して前記メディアデータのサイズを示すサイズデータを生成するステップと、
前記サイズデータを用いて、前記第1のボックスから前記メディアデータを取得するステップと、
前記取得されたメディアデータを伸張するステップとを備えたことを特徴とするメディアファイル再生方法。
【請求項3】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成方法において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成するステップと、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成するステップと、
前記メディアデータ、前記サイズデータ及び前記ユニークコード情報を用いて、前記ユニークコードが挿入された前記第1のボックスのデータを作成するステップとを備えたことを特徴とするメディアファイル作成方法。
【請求項4】
請求項3記載のメディアファイル作成方法で作成したメディアファイルを修復するメディアファイル修復方法において、
前記第1のボックスのユニークコードを探索して前記ユニークコードごとに特定される前記メディアデータのサイズデータを生成するステップと、
前記第2のボックスに格納される基本情報のうち、前記メディアデータのサイズから導き出せる情報に生じた破損を、前記サイズデータを用いて復元するステップと、
前記第1のボックスと前記復元した第2のボックスから前記メディアファイルフォーマットに準拠したメディアファイルを作成するステップとを備えたことを特徴とするメディアファイル修復方法。
【請求項5】
請求項3記載のメディアファイル作成方法で作成したメディアファイルを再生するメディアファイル再生方法において、
前記第1のボックスのユニークコードを探索して前記ユニークコードごとに特定される前記メディアデータのサイズデータを生成するステップと、
前記サイズデータを用いて、前記第1のボックスから前記メディアデータを取得するステップと、
前記取得されたメディアデータを伸張するステップとを備えたことを特徴とするメディアファイル再生方法。
【請求項6】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成方法において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成するステップと、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成するステップと、
前記メディアデータでランダムなアクセスが可能なデータ部分を示すランダムアクセスポイントを探索し、当該メディアデータ中の前記ランダムアクセスポイントの位置を示すランダムアクセスポイント情報を生成するステップと、
前記メディアデータ、前記サイズデータ、前記ユニークコード情報及び前記ランダムアクセスポイント情報を用いて、前記メディアデータ中の前記ランダムアクセスポイントに前記ユニークコードが挿入された前記第1のボックスのデータを作成するステップとを備えたことを特徴とするメディアファイル作成方法。
【請求項7】
請求項6記載のメディアファイル作成方法で作成したメディアファイルを再生するメディアファイル再生方法において、
前記メディアファイルから第1のボックス及び第2のボックスのデータを分離するステップと、
前記第2のボックスを解析して基本情報を取得するステップと、
前記ステップで得られた基本情報を用いて、前記第1のボックスから取得したメディアデータを伸張するステップと、
前記ステップでメディアデータを伸張するにあたり、当該メディアデータに誤りがあると、前記第1のボックスのユニークコードを探索して当該メディアデータ中のランダムアクセスポイントを特定するステップとを備え、
前記ステップで特定されたランダムアクセスポイント以降のメディアデータを伸張することを特徴とするメディアファイル再生方法。
【請求項8】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成方法において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成するステップと、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成するステップと、
前記メディアデータを解析して特殊再生をすべきデータ部分を特定し、当該データ部分の位置を示す特殊再生情報を生成するステップと、
前記メディアデータ、前記サイズデータ、前記ユニークコード情報及び前記特殊再生情報を用いて、前記メディアデータ中の前記特殊再生をすべきデータ部分の位置に前記ユニークコードが挿入された前記第1のボックスのデータを作成するステップとを備えたことを特徴とするメディアファイル作成方法。
【請求項9】
請求項8記載のメディアファイル作成方法で作成したメディアファイルを再生するメディアファイル再生方法において、
前記メディアファイルから第1のボックス及び第2のボックスのデータを分離するステップと、
前記第2のボックスを解析して基本情報を取得するステップと、
前記ステップで得られた基本情報を用いて、前記第1のボックスから取得したメディアデータを伸張するステップと、
前記第1のボックスのユニークコードを探索して当該特殊再生をすべきデータ部分を特定するステップとを備え、
前記ステップで特定された特殊再生をすべきデータ部分のメディアデータを伸張することを特徴とするメディアファイル再生方法。
【請求項10】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成方法において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成するステップと、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成するステップと、
前記メディアデータの再生を制限するレベルを規定するレベル情報、当該レベル情報で規定されるレベルに応じた暗号化に用いるパスワード、前記メディアデータ及び前記サイズデータを用いて、当該レベル情報で規定されるレベルに応じてデータが暗号化された暗号化メディアデータを生成するステップと、
前記レベル情報、前記暗号化メディアデータ、前記ユニークコード情報及び前記サイズデータを用いて、前記レベルごとの暗号化メディアデータに前記ユニークコードが挿入された前記第1のボックスのデータを作成するステップとを備えたことを特徴とするメディアファイル作成方法。
【請求項11】
請求項10記載のメディアファイル作成方法で作成したメディアファイルを再生するメディアファイル再生方法において、
前記メディアファイルから第1のボックス及び第2のボックスのデータを分離するステップと、
前記第2のボックスを解析して基本情報を取得するステップと、
前記メディアデータの再生を制限するレベルに応じたパスワードに基づいて、前記第1のボックスの暗号化メディアデータを復号し復号メディアデータを生成するステップと、
前記ステップで得られた基本情報を用いて前記復号メディアデータを伸張するステップとを備えたことを特徴とするメディアファイル再生方法。
【請求項12】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを修復するメディアファイル修復装置において、
前記第1のボックスを解析して前記メディアデータのサイズを示すサイズデータを生成する解析部と、
前記第2のボックスに格納される基本情報のうち、前記メディアデータのサイズから導き出せる情報に生じた破損を、前記サイズデータを用いて復元する復元部と、
前記第1のボックスと前記復元した第2のボックスから前記メディアファイルフォーマットに準拠したメディアファイルを作成するファイル作成部とを備えたことを特徴とするメディアファイル修復装置。
【請求項13】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを再生するメディアファイル再生装置において、
前記第1のボックスを解析して前記メディアデータのサイズを示すサイズデータを生成する解析部と、
前記サイズデータを用いて、前記第1のボックスから前記メディアデータを取得する取得部と、
前記取得部により取得されたメディアデータを伸張する伸張部とを備えたことを特徴とするメディアファイル再生装置。
【請求項14】
請求項12記載のメディアファイル修復装置と、
請求項13記載のメディアファイル再生装置とを備え、
前記メディアファイル修復装置によって第2のボックスが破損したメディアファイルを修復しながら、修復されたメディアファイルを前記メディアファイル再生装置で再生するメディアファイル修復/再生装置。
【請求項15】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成装置において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成する解析部と、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成する定義部と、
前記メディアデータ、前記サイズデータ及び前記ユニークコード情報を用いて、前記ユニークコードが挿入された前記第1のボックスのデータを作成する作成部とを備えたことを特徴とするメディアファイル作成装置。
【請求項16】
請求項15記載のメディアファイル作成装置で作成されたメディアファイルを修復するメディアファイル修復装置において、
前記第1のボックスのユニークコードを探索して前記ユニークコードごとに特定される前記メディアデータのサイズデータを生成する解析部と、
前記第2のボックスに格納される基本情報のうち、前記メディアデータのサイズから導き出せる情報に生じた破損を、前記サイズデータを用いて復元する復元部と、
前記第1のボックスと前記復元した第2のボックスから前記メディアファイルフォーマットに準拠したメディアファイルを作成する作成部とを備えたことを特徴とするメディアファイル修復装置。
【請求項17】
請求項15記載のメディアファイル作成装置で作成されたメディアファイルを再生するメディアファイル再生装置において、
前記第1のボックスのユニークコードを探索して前記ユニークコードごとに特定される前記メディアデータのサイズデータを生成する解析部と、
前記サイズデータを用いて、前記第1のボックスから前記メディアデータを取得する取得部と、
前記取得部により取得されたメディアデータを伸張する伸張部とを備えたことを特徴とするメディアファイル再生装置。
【請求項18】
請求項16記載のメディアファイル修復装置と、
請求項17記載のメディアファイル再生装置とを備え、
前記メディアファイル修復装置によって第2のボックスが破損したメディアファイルを修復しながら、修復されたメディアファイルを前記メディアファイル再生装置で再生するメディアファイル修復/再生装置。
【請求項19】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成装置において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成する解析部と、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成する定義部と、
前記メディアデータでランダムなアクセスが可能なデータ部分を示すランダムアクセスポイントを探索し、当該メディアデータ中の前記ランダムアクセスポイントの位置を示すランダムアクセスポイント情報を生成する探索部と、
前記メディアデータ、前記サイズデータ、前記ユニークコード情報及び前記ランダムアクセスポイント情報を用いて、前記メディアデータ中の前記ランダムアクセスポイントに前記ユニークコードが挿入された前記第1のボックスのデータを作成する作成部とを備えたことを特徴とするメディアファイル作成装置。
【請求項20】
請求項19記載のメディアファイル作成装置で作成されたメディアファイルを再生するメディアファイル再生装置において、
前記メディアファイルから第1のボックス及び第2のボックスのデータを分離する分離部と、
前記第2のボックスを解析して基本情報を取得する第1の解析部と、
前記第1の解析部により得られた基本情報を用いて、前記第1のボックスから取得したメディアデータを伸張する伸張部と、
前記伸張部でメディアデータを伸張するにあたり、当該メディアデータに誤りがあると、前記第1のボックスのユニークコードを探索して当該メディアデータ中のランダムアクセスポイントを特定する第2の解析部とを備え、
前記伸張部は、前記第2の解析部により特定されたランダムアクセスポイント以降のメディアデータを伸張することを特徴とするメディアファイル再生装置。
【請求項21】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成装置において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成する解析部と、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成する定義部と、
前記メディアデータを解析して特殊再生をすべきデータ部分を特定し、当該データ部分の位置を示す特殊再生情報を生成する特殊再生データ作成部と、
前記メディアデータ、前記サイズデータ、前記ユニークコード情報及び前記特殊再生情報を用いて、前記メディアデータ中の前記特殊再生をすべきデータ部分の位置に前記ユニークコードが挿入された前記第1のボックスのデータを作成する作成部とを備えたことを特徴とするメディアファイル作成装置。
【請求項22】
請求項21記載のメディアファイル作成装置で作成されたメディアファイルを再生するメディアファイル再生装置において、
前記メディアファイルから第1のボックス及び第2のボックスのデータを分離する分離部と、
前記第2のボックスを解析して基本情報を取得する第1の解析部と、
前記第1の解析部により得られた基本情報を用いて、前記第1のボックスから取得したメディアデータを伸張する伸張部と、
前記第1のボックスのユニークコードを探索して当該特殊再生をすべきデータ部分を特定する特殊再生情報取得部とを備え、
前記伸張部は、前記特殊再生情報取得部により特定された特殊再生をすべきデータ部分のメディアデータを伸張することを特徴とするメディアファイル再生装置。
【請求項23】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成装置において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成する解析部と、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成する定義部と、
前記メディアデータの再生を制限するレベルを規定するレベル情報、当該レベル情報で規定されるレベルに応じた暗号化に用いるパスワード、前記メディアデータ及び前記サイズデータを用いて、当該レベル情報で規定されるレベルに応じてデータが暗号化された暗号化メディアデータを生成する暗号化部と、
前記レベル情報、前記暗号化メディアデータ、前記ユニークコード情報及び前記サイズデータを用いて、前記レベルごとの暗号化メディアデータに前記ユニークコードが挿入された前記第1のボックスのデータを作成する作成部とを備えたことを特徴とするメディアファイル作成装置。
【請求項24】
請求項23記載のメディアファイル作成装置で作成されたメディアファイルを再生するメディアファイル再生装置において、
前記メディアファイルから第1のボックス及び第2のボックスのデータを分離する分離部と、
前記第2のボックスを解析して基本情報を取得する第1の解析部と、
前記メディアデータの再生を制限するレベルに応じたパスワードに基づいて、前記第1のボックスの暗号化メディアデータを復号し復号メディアデータを生成する復号部と、
前記第1の解析部により得られた基本情報を用いて前記復号メディアデータを伸張する伸張部とを備えたことを特徴とするメディアファイル再生装置。
【請求項1】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを修復するメディアファイル修復方法において、
前記第1のボックスを解析して前記メディアデータのサイズを示すサイズデータを生成するステップと、
前記第2のボックスに格納される基本情報のうち、前記メディアデータのサイズから導き出せる情報に生じた破損を、前記サイズデータを用いて復元するステップと、
前記第1のボックスと前記復元した第2のボックスから前記メディアファイルフォーマットに準拠したメディアファイルを作成するステップとを備えたことを特徴とするメディアファイル修復方法。
【請求項2】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを再生するメディアファイル再生方法において、
前記第1のボックスを解析して前記メディアデータのサイズを示すサイズデータを生成するステップと、
前記サイズデータを用いて、前記第1のボックスから前記メディアデータを取得するステップと、
前記取得されたメディアデータを伸張するステップとを備えたことを特徴とするメディアファイル再生方法。
【請求項3】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成方法において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成するステップと、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成するステップと、
前記メディアデータ、前記サイズデータ及び前記ユニークコード情報を用いて、前記ユニークコードが挿入された前記第1のボックスのデータを作成するステップとを備えたことを特徴とするメディアファイル作成方法。
【請求項4】
請求項3記載のメディアファイル作成方法で作成したメディアファイルを修復するメディアファイル修復方法において、
前記第1のボックスのユニークコードを探索して前記ユニークコードごとに特定される前記メディアデータのサイズデータを生成するステップと、
前記第2のボックスに格納される基本情報のうち、前記メディアデータのサイズから導き出せる情報に生じた破損を、前記サイズデータを用いて復元するステップと、
前記第1のボックスと前記復元した第2のボックスから前記メディアファイルフォーマットに準拠したメディアファイルを作成するステップとを備えたことを特徴とするメディアファイル修復方法。
【請求項5】
請求項3記載のメディアファイル作成方法で作成したメディアファイルを再生するメディアファイル再生方法において、
前記第1のボックスのユニークコードを探索して前記ユニークコードごとに特定される前記メディアデータのサイズデータを生成するステップと、
前記サイズデータを用いて、前記第1のボックスから前記メディアデータを取得するステップと、
前記取得されたメディアデータを伸張するステップとを備えたことを特徴とするメディアファイル再生方法。
【請求項6】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成方法において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成するステップと、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成するステップと、
前記メディアデータでランダムなアクセスが可能なデータ部分を示すランダムアクセスポイントを探索し、当該メディアデータ中の前記ランダムアクセスポイントの位置を示すランダムアクセスポイント情報を生成するステップと、
前記メディアデータ、前記サイズデータ、前記ユニークコード情報及び前記ランダムアクセスポイント情報を用いて、前記メディアデータ中の前記ランダムアクセスポイントに前記ユニークコードが挿入された前記第1のボックスのデータを作成するステップとを備えたことを特徴とするメディアファイル作成方法。
【請求項7】
請求項6記載のメディアファイル作成方法で作成したメディアファイルを再生するメディアファイル再生方法において、
前記メディアファイルから第1のボックス及び第2のボックスのデータを分離するステップと、
前記第2のボックスを解析して基本情報を取得するステップと、
前記ステップで得られた基本情報を用いて、前記第1のボックスから取得したメディアデータを伸張するステップと、
前記ステップでメディアデータを伸張するにあたり、当該メディアデータに誤りがあると、前記第1のボックスのユニークコードを探索して当該メディアデータ中のランダムアクセスポイントを特定するステップとを備え、
前記ステップで特定されたランダムアクセスポイント以降のメディアデータを伸張することを特徴とするメディアファイル再生方法。
【請求項8】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成方法において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成するステップと、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成するステップと、
前記メディアデータを解析して特殊再生をすべきデータ部分を特定し、当該データ部分の位置を示す特殊再生情報を生成するステップと、
前記メディアデータ、前記サイズデータ、前記ユニークコード情報及び前記特殊再生情報を用いて、前記メディアデータ中の前記特殊再生をすべきデータ部分の位置に前記ユニークコードが挿入された前記第1のボックスのデータを作成するステップとを備えたことを特徴とするメディアファイル作成方法。
【請求項9】
請求項8記載のメディアファイル作成方法で作成したメディアファイルを再生するメディアファイル再生方法において、
前記メディアファイルから第1のボックス及び第2のボックスのデータを分離するステップと、
前記第2のボックスを解析して基本情報を取得するステップと、
前記ステップで得られた基本情報を用いて、前記第1のボックスから取得したメディアデータを伸張するステップと、
前記第1のボックスのユニークコードを探索して当該特殊再生をすべきデータ部分を特定するステップとを備え、
前記ステップで特定された特殊再生をすべきデータ部分のメディアデータを伸張することを特徴とするメディアファイル再生方法。
【請求項10】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成方法において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成するステップと、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成するステップと、
前記メディアデータの再生を制限するレベルを規定するレベル情報、当該レベル情報で規定されるレベルに応じた暗号化に用いるパスワード、前記メディアデータ及び前記サイズデータを用いて、当該レベル情報で規定されるレベルに応じてデータが暗号化された暗号化メディアデータを生成するステップと、
前記レベル情報、前記暗号化メディアデータ、前記ユニークコード情報及び前記サイズデータを用いて、前記レベルごとの暗号化メディアデータに前記ユニークコードが挿入された前記第1のボックスのデータを作成するステップとを備えたことを特徴とするメディアファイル作成方法。
【請求項11】
請求項10記載のメディアファイル作成方法で作成したメディアファイルを再生するメディアファイル再生方法において、
前記メディアファイルから第1のボックス及び第2のボックスのデータを分離するステップと、
前記第2のボックスを解析して基本情報を取得するステップと、
前記メディアデータの再生を制限するレベルに応じたパスワードに基づいて、前記第1のボックスの暗号化メディアデータを復号し復号メディアデータを生成するステップと、
前記ステップで得られた基本情報を用いて前記復号メディアデータを伸張するステップとを備えたことを特徴とするメディアファイル再生方法。
【請求項12】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを修復するメディアファイル修復装置において、
前記第1のボックスを解析して前記メディアデータのサイズを示すサイズデータを生成する解析部と、
前記第2のボックスに格納される基本情報のうち、前記メディアデータのサイズから導き出せる情報に生じた破損を、前記サイズデータを用いて復元する復元部と、
前記第1のボックスと前記復元した第2のボックスから前記メディアファイルフォーマットに準拠したメディアファイルを作成するファイル作成部とを備えたことを特徴とするメディアファイル修復装置。
【請求項13】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを再生するメディアファイル再生装置において、
前記第1のボックスを解析して前記メディアデータのサイズを示すサイズデータを生成する解析部と、
前記サイズデータを用いて、前記第1のボックスから前記メディアデータを取得する取得部と、
前記取得部により取得されたメディアデータを伸張する伸張部とを備えたことを特徴とするメディアファイル再生装置。
【請求項14】
請求項12記載のメディアファイル修復装置と、
請求項13記載のメディアファイル再生装置とを備え、
前記メディアファイル修復装置によって第2のボックスが破損したメディアファイルを修復しながら、修復されたメディアファイルを前記メディアファイル再生装置で再生するメディアファイル修復/再生装置。
【請求項15】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成装置において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成する解析部と、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成する定義部と、
前記メディアデータ、前記サイズデータ及び前記ユニークコード情報を用いて、前記ユニークコードが挿入された前記第1のボックスのデータを作成する作成部とを備えたことを特徴とするメディアファイル作成装置。
【請求項16】
請求項15記載のメディアファイル作成装置で作成されたメディアファイルを修復するメディアファイル修復装置において、
前記第1のボックスのユニークコードを探索して前記ユニークコードごとに特定される前記メディアデータのサイズデータを生成する解析部と、
前記第2のボックスに格納される基本情報のうち、前記メディアデータのサイズから導き出せる情報に生じた破損を、前記サイズデータを用いて復元する復元部と、
前記第1のボックスと前記復元した第2のボックスから前記メディアファイルフォーマットに準拠したメディアファイルを作成する作成部とを備えたことを特徴とするメディアファイル修復装置。
【請求項17】
請求項15記載のメディアファイル作成装置で作成されたメディアファイルを再生するメディアファイル再生装置において、
前記第1のボックスのユニークコードを探索して前記ユニークコードごとに特定される前記メディアデータのサイズデータを生成する解析部と、
前記サイズデータを用いて、前記第1のボックスから前記メディアデータを取得する取得部と、
前記取得部により取得されたメディアデータを伸張する伸張部とを備えたことを特徴とするメディアファイル再生装置。
【請求項18】
請求項16記載のメディアファイル修復装置と、
請求項17記載のメディアファイル再生装置とを備え、
前記メディアファイル修復装置によって第2のボックスが破損したメディアファイルを修復しながら、修復されたメディアファイルを前記メディアファイル再生装置で再生するメディアファイル修復/再生装置。
【請求項19】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成装置において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成する解析部と、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成する定義部と、
前記メディアデータでランダムなアクセスが可能なデータ部分を示すランダムアクセスポイントを探索し、当該メディアデータ中の前記ランダムアクセスポイントの位置を示すランダムアクセスポイント情報を生成する探索部と、
前記メディアデータ、前記サイズデータ、前記ユニークコード情報及び前記ランダムアクセスポイント情報を用いて、前記メディアデータ中の前記ランダムアクセスポイントに前記ユニークコードが挿入された前記第1のボックスのデータを作成する作成部とを備えたことを特徴とするメディアファイル作成装置。
【請求項20】
請求項19記載のメディアファイル作成装置で作成されたメディアファイルを再生するメディアファイル再生装置において、
前記メディアファイルから第1のボックス及び第2のボックスのデータを分離する分離部と、
前記第2のボックスを解析して基本情報を取得する第1の解析部と、
前記第1の解析部により得られた基本情報を用いて、前記第1のボックスから取得したメディアデータを伸張する伸張部と、
前記伸張部でメディアデータを伸張するにあたり、当該メディアデータに誤りがあると、前記第1のボックスのユニークコードを探索して当該メディアデータ中のランダムアクセスポイントを特定する第2の解析部とを備え、
前記伸張部は、前記第2の解析部により特定されたランダムアクセスポイント以降のメディアデータを伸張することを特徴とするメディアファイル再生装置。
【請求項21】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成装置において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成する解析部と、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成する定義部と、
前記メディアデータを解析して特殊再生をすべきデータ部分を特定し、当該データ部分の位置を示す特殊再生情報を生成する特殊再生データ作成部と、
前記メディアデータ、前記サイズデータ、前記ユニークコード情報及び前記特殊再生情報を用いて、前記メディアデータ中の前記特殊再生をすべきデータ部分の位置に前記ユニークコードが挿入された前記第1のボックスのデータを作成する作成部とを備えたことを特徴とするメディアファイル作成装置。
【請求項22】
請求項21記載のメディアファイル作成装置で作成されたメディアファイルを再生するメディアファイル再生装置において、
前記メディアファイルから第1のボックス及び第2のボックスのデータを分離する分離部と、
前記第2のボックスを解析して基本情報を取得する第1の解析部と、
前記第1の解析部により得られた基本情報を用いて、前記第1のボックスから取得したメディアデータを伸張する伸張部と、
前記第1のボックスのユニークコードを探索して当該特殊再生をすべきデータ部分を特定する特殊再生情報取得部とを備え、
前記伸張部は、前記特殊再生情報取得部により特定された特殊再生をすべきデータ部分のメディアデータを伸張することを特徴とするメディアファイル再生装置。
【請求項23】
圧縮されたメディアデータを格納する第1のボックスと、前記メディアデータに関する基本情報を格納する第2のボックスとを有するメディアファイルフォーマットに準拠したメディアファイルを作成するメディアファイル作成装置において、
前記メディアデータを解析して当該メディアデータのサイズを示すサイズデータを生成する解析部と、
前記メディアデータを構成するコード情報のうちからユニークコードを定義し、当該メディアデータ中の前記ユニークコードの位置を示すユニークコード情報を生成する定義部と、
前記メディアデータの再生を制限するレベルを規定するレベル情報、当該レベル情報で規定されるレベルに応じた暗号化に用いるパスワード、前記メディアデータ及び前記サイズデータを用いて、当該レベル情報で規定されるレベルに応じてデータが暗号化された暗号化メディアデータを生成する暗号化部と、
前記レベル情報、前記暗号化メディアデータ、前記ユニークコード情報及び前記サイズデータを用いて、前記レベルごとの暗号化メディアデータに前記ユニークコードが挿入された前記第1のボックスのデータを作成する作成部とを備えたことを特徴とするメディアファイル作成装置。
【請求項24】
請求項23記載のメディアファイル作成装置で作成されたメディアファイルを再生するメディアファイル再生装置において、
前記メディアファイルから第1のボックス及び第2のボックスのデータを分離する分離部と、
前記第2のボックスを解析して基本情報を取得する第1の解析部と、
前記メディアデータの再生を制限するレベルに応じたパスワードに基づいて、前記第1のボックスの暗号化メディアデータを復号し復号メディアデータを生成する復号部と、
前記第1の解析部により得られた基本情報を用いて前記復号メディアデータを伸張する伸張部とを備えたことを特徴とするメディアファイル再生装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【公開番号】特開2011−61281(P2011−61281A)
【公開日】平成23年3月24日(2011.3.24)
【国際特許分類】
【出願番号】特願2009−205744(P2009−205744)
【出願日】平成21年9月7日(2009.9.7)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
【公開日】平成23年3月24日(2011.3.24)
【国際特許分類】
【出願日】平成21年9月7日(2009.9.7)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
[ Back to top ]