JP2009077110A - メディアファイル復旧装置及びメディアファイル復旧方法 - Google Patents
メディアファイル復旧装置及びメディアファイル復旧方法 Download PDFInfo
- Publication number
- JP2009077110A JP2009077110A JP2007243473A JP2007243473A JP2009077110A JP 2009077110 A JP2009077110 A JP 2009077110A JP 2007243473 A JP2007243473 A JP 2007243473A JP 2007243473 A JP2007243473 A JP 2007243473A JP 2009077110 A JP2009077110 A JP 2009077110A
- Authority
- JP
- Japan
- Prior art keywords
- data
- encoded data
- length field
- unit
- media file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
【課題】本発明の課題は、H.264規格のビデオデータが多重化されているとして長さフィールドを用いて復旧に係る処理負荷を大幅に改善したメディアファイル復旧装置及びメディアファイル復旧方法を提供すことを目的とする。
【解決手段】上記課題は、メディアファイルに格納される、長さフィールドと符号化部とで成る第一符号化データと第一符号化データとは異なる形式の第二符号化データとが多重化されたストリームの先頭のデータをその長さフィールドと仮定する長さフィールド仮定手段と、長さフィールドでポイントした次のデータが第一符号化データである場合に取り得る値範囲を用いて第一符号化データの妥当性を判断する第一符号化データ判断手段と、第一符号化データの妥当性が判断された場合、第一符号化データをデコードして成功したときに第一符号化データであると判定する第一デコード判定手段とを備えるメディアファイル復旧装置により達成される。
【選択図】図8
【解決手段】上記課題は、メディアファイルに格納される、長さフィールドと符号化部とで成る第一符号化データと第一符号化データとは異なる形式の第二符号化データとが多重化されたストリームの先頭のデータをその長さフィールドと仮定する長さフィールド仮定手段と、長さフィールドでポイントした次のデータが第一符号化データである場合に取り得る値範囲を用いて第一符号化データの妥当性を判断する第一符号化データ判断手段と、第一符号化データの妥当性が判断された場合、第一符号化データをデコードして成功したときに第一符号化データであると判定する第一デコード判定手段とを備えるメディアファイル復旧装置により達成される。
【選択図】図8
Description
本発明は、H.264規格のビデオデータが多重化されていると仮定して長さフィールドを用いることによって復旧に係る処理負荷を大幅に改善させることができるメディアファイル復旧装置及びメディアファイル復旧方法に関する。
近年、リアルタイムで動画及び音声をデジタル録画したり、インターネットを介して所望の音声付き動画をダウンロードすることが広く普及してきている。このようにデジタル録画したりダウンロードした動画は、情報処理端末で手軽に再生することができるようになった。また、高圧縮率と高品質なマルチメディアを提供できると言う点において、ビデオとオーディオを多重化して格納したMP4ファイルが主流となってきている。
インターネットを介してMP4ファイルをダウンロード中の利便性を高めるため、基本コンテンツと拡張コンテンツとでMP4ファイルが構成される場合、基本コンテンツの総時間長と拡張コンテンツの総時間長とを合算してコンテンツの総時間長として、ダウンロード中の情報処理端末に表示させることを提案している(例えば、特許文献1参照)。
また、TCP基盤のダウンロード方式において、QoSを保障しつつマルチメディアコンテンツファイルを再生するために、クライアント側でメディアデータ(mdat)を蓄積するデコーダバッファを備えるようにし、メディアデータを再生中にストリーミングを順次行うことによって、再生までの待機時間を改善することを提案している(例えば、特許文献2参照)。
特開2004−7610号公報
特開2005−110244号公報
MP4ファイルにはMPEG4又はH.264形式の動画とAAC(Advanced Audio Coding)形式の音声などが多重化して格納されるため、どのような形式のデータの組み合わせが入っているかは内部を解析して判断される。MP4ファイルフォーマットでは、主に、オーディオとビデオの多重化された領域(mdat box)とそれぞれのフレーム位置や属性を示すメタ情報を記録した領域(moov box)から構成される。
各フレームのファイル中の位置情報を記録した領域(stbl box)の情報が損失すると再生装置では、オーディオとビデオを分離できずに再生困難な状況になってしまう。リアルタイムでMP4ファイルに録画していく場合、通常、録画が終了した場合にメタ情報を書き込む時に予期せぬ電源停止が発生すると正常に多重分離に必要な位置情報が記録されず、録画データを認識することが困難となってしまう。
また、ネットワーク等からダウンロードしようとしているMP4ファイルで、トラブル等による回線接続の切断等により位置情報とビットストリーム部分の不一致等のデータ障害が起こった状態になると再生困難になる。更に、記録した記憶装置の障害によりストリームの位置情報とビットストリームの不一致が起こった場合にも再生困難となってしまう。
折角記憶させたMP4ファイルを再生したいと願うユーザーにとって、MP4の前半部分でも、音声の再生が不可能であったとしても動画又は静止画だけでも、或いは動画の再生が不可能であったとしても音声だけでも再生できないものかと思うものである。しかし、上記従来技術では、全体が記憶されていない不完全なMP4ファイル又はデータが損傷しているMP4ファイルを部分的にでも再生することはできない。
よって、本発明の目的は、H.264規格のビデオデータが多重化されていると仮定して長さフィールドを用いることによって復旧に係る処理負荷を大幅に改善させることができるメディアファイル復旧装置及びメディアファイル復旧方法を提供することである。
上記課題を解決するため、本発明は、メディアファイルを復旧するメディアファイル復旧装置であって、前記メディアファイルに格納される、長さフィールドと符号化部とで成る第一符号化データと該第一符号化データとは符号化の異なる形式による第二符号化データとが多重化されたストリームの先頭のデータを、該第一符号化データの長さフィールドと仮定する長さフィールド仮定手段と、該長さフィールドを用いてポイントした次のデータが、該第一符号化データである場合に取り得る値範囲を用いて該第一符号化データであることの妥当性を判断する第一符号化データ判断手段と、前記第一符号化データ判断手段によって前記第一符号化データの妥当性が判断された場合、該第一符号化データをデコードして成功したときに該第一符号化データであると判定する第一デコード判定手段とを備えることを有するように構成される。
前記第一符号化データは、例えばH.264規格のビデオデータであり、前記第二符号化データは、例えばAAC規格のオーディオデータである。このようなメディアファイル復旧装置では、メディアファイル(MP4ファイル)形式においてサンプルの位置情報を含むメタ情報(moov情報)を得ることができない状況においても、H.264規格のビデオデータのNALユニットには長さフィールドが付加されていることに着目して、その長さフィールドを用いることでデータ容量の大きいビデオデータをストリーム内のオーディオデータと容易に分離させることができる。従って、同期コードを用いてオーディオデータを識別する場合に比べて、復旧に係る処理負荷を大幅に改善することができる。
上記手段を機能としてコンピュータに実行させるためのプログラム、そのプログラムを記憶したコンピュータ読み取り可能な記憶媒体、及び、上記手段を機能としてコンピュータが処理する方法とすることもできる。
本願発明は、不測の事態によりメタ情報を損失したため再生困難になったメディアファイルを復旧することができる。
以下、本発明の実施の形態を図面に基づいて説明する。
図1は、MP4ファイルフォーマットの構成を示す図である。MP4ファイルは、主に、互換性情報を格納したftyp領域と、ヘッダー情報を格納したmoov領域と、ビデオデータとオーディオデータとを多重化して格納したmdat領域とで構成される。
図1(A)は、ftyp領域、moov領域、そしてmdat領域の順でメディアデータを構成したフォーマットの例を示し、moov領域はmdat領域より前に位置する。一方で、図1(B)は、ftyp領域、mdat領域、そしてmoov領域の順でメディアデータを構成したフォーマットの例を示し、moov領域はmdat領域の後に位置する。moov領域には、ビデオとオーディオのサンプルの位置情報等によるメタ情報が格納されるため、mdat領域の内容が決定してmoov領域の内容が作成されることによる。
図1(A)及び図1(B)に示すMP4のフォーマットの例において、moov領域には、メディアオブジェクト個々の符号化ビットストリームで成るエレメンタリストリームのコンフィグ情報が格納されている。
本発明の原理は、MP4ファイルのようなメディアファイルのmdat領域にH.264形式のビデオデータがオーディオデータと多重化されて格納されている場合、1フレームのピクチャを構成する複数のNAL(Network Abstraction Layer)ユニットの各先頭にNALの長さを示す長さフィールド(NAL unit length)が設定されていることに着目して、MP4ファイルを復旧するというものである。
図2は、mdat領域に格納されるエレメンタリストリームの多重化例を示す図である。図2に示すエレメンタリストリームは、H.264形式のビデオデータとAAC(Advanced Audio Coding)のオーディオデータとを多重化した例を示している。エンコードされたビデオデータ自体は分割されて、NALユニットのVCL(Video Coding Layer)に夫々格納される。このエンコードされたビデオデータをデコードするためのパラメータを含むSEI(Supplemental Enhancement Information)が1つのNALユニットに格納され、続いてVCLを含むNALユニットが順次出現する。各NALユニット内にはNALヘッダーが存在する。図2に示すように、NALユニット間にオーディオデータのフレームが挿入されている場合がある。
本発明では、moov領域が損傷しているストリームがH.264形式であると仮定して、ビデオデータの各NALユニットの直前に付加されているNALの長さフィールドを用いてNALユニットの終了位置を特定し、オーディオデータの各フレームの先頭の所定ビットからオーディオデータであることを判定してフレーム長を取得してフレームの終了位置を特定する試みを行う。そして、終了位置が特定できたと思われるNALユニット毎にビデオデコードを試みる。同様にして、終了位置が特定できたと思われるオーディオデータのフレーム毎にオーディオデコードを試みる。H.264形式であると仮定しデコードを完了できた場合にmoov領域の内容を作成し、可能な限り修復できた時点でストリームを完成させる。
図3は、本発明の一実施例に係るメディアデータ復旧装置のハードウェア構成を示す図である。図3において、メディアデータ復旧装置100は、CPU(Central Processing Unit)11と、メモリユニット12と、表示ユニット13と、入力ユニット14と、通信ユニット15と、ビデオ再生ユニット16aと、オーディオ再生ユニット16bと、音声出力ユニット17と、記憶装置18と、ドライバ19とを有し、システムバスBで相互に接続される。
CPU11は、メモリユニット12に格納されたプログラムに従ってメディアデータ復旧装置100を制御する。メモリユニット12は、RAM(Random Access Memory)及びROM(Read-Only Memory)等にて構成され、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、メモリユニット12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。
表示ユニット13は、CPU11の制御のもとに必要な各種情報を表示する。ユーザーからの指示に応じて各種情報を出力するためにプリンタ等を有するようにしてもよい。入力ユニット14は、マウス、キーボード等を有し、メディアデータ復旧装置100が処理を行なうための必要な各種情報をユーザーが入力するために用いられる。通信ユニット15は、メディアデータ復旧装置100が例えばインターネット、LAN(Local Area Network)等を介して他装置と接続する場合に、他装置との間の通信制御をするための装置である。
ビデオ再生ユニット16aは、CPU11の制御のもとに、NALユニットから取り出されたエンコードされたビデオデータをデコードしてピクチャ再生して表示ユニット13に表示する。オーディオ再生ユニット16bは、CPU11の制御のもとに、フレーム毎にオーディオデータをデコードして音声出力ユニット17から出力する。音声出力ユニット17は、例えばスピーカ又はイヤフォーンジャックなどである。
記憶装置18は、例えば、ハードディスクユニットにて構成され、各種処理を実行するプログラム等のデータを格納する。
メディアデータ復旧装置100よって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体20によってメディアデータ復旧装置100に提供される。即ち、プログラムが保存された記憶媒体20がドライバ19にセットされると、ドライバ19が記憶媒体20からプログラムを読み出し、その読み出されたプログラムがシステムバスBを介して記憶装置18にインストールされる。そして、プログラムが起動されると、記憶装置18にインストールされたプログラムに従ってCPU11がその処理を開始する。尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。本発明に係る処理を実現するプログラムは、通信ユニット15によってネットワークを介してダウンロードし、記憶装置18にインストールするようにしても良い
更に、ビデオ再生ユニット16aにビデオ録画機能を備え、オーディオ再生ユニット16bにオーディオ録音機能を備えて、カメラやマイクを備えるようにしてもよい。
更に、ビデオ再生ユニット16aにビデオ録画機能を備え、オーディオ再生ユニット16bにオーディオ録音機能を備えて、カメラやマイクを備えるようにしてもよい。
図4は、メディアデータ復旧装置の機能構成を示す図である。図4において、メディアデータ復旧装置100は、表示制御部23と、入力制御部24と、通信制御部25と、音声出力制御部27と、インストーラ29と、復旧処理部30と、ビデオ再生部41と、オーディオ再生部42と、記憶領域50とを有する。
表示制御部23は、表示データを制御して表示ユニット13への表示制御を行う。入力制御部24は、入力ユニット14から入力されたデータの入力制御を行う。通信制御部25は、通信ユニット15を介して行われるデータの送受信及び通信制御を行う。音声出力制御部27は、音声出力ユニット17へのデコードされたオーディオデータの出力制御を行う。
インストーラ29は、メディアデータ復旧装置100に本発明に係る復旧処理部30を構成するためのプログラムを記憶した記憶媒体20からそのプログラムを記憶装置18にロードして、メディアデータ復旧装置100にインストールする。インストールされたプログラムは、CPU11の制御によってメモリユニット12に読み出され、CPU11はメモリユニット12に読み出したプログラムのコードに従って処理を行うことによって、復旧処理部30を実現する。
CPU11がプログラムを実行することによって実現される復旧処理部30は、ストリーム解析部31と、ストリーム再構成部32と、パラメータ設定部33と、ビデオデコード検証部34と、オーディオデコード検証部35とを有する。
ストリーム解析部31は、記憶領域50に格納されている損傷したMP4ファイルのビデオデータとオーディオデータとが多重化されたストリーム(以下、損傷ストリームという)を解析して、損傷ストリーム内のビデオデータとオーディオデータとを識別する。ストリーム再構成部32は、ストリーム解析部31の処理結果を用いてMP4ファイルのフォーマットを完成させてストリームを再構成する。パラメータ設定部33は、ビデオデータとオーディオデータとを再生するためのパラメータをユーザーに設定させるための処理部である。
ビデオデコード検証部34は、ビデオ再生ユニット16aを利用して、NALユニット毎にエンコードされたビデオデータをデコードし、デコードが正常に終了するか否かを検証する処理部であり、ビデオ再生ユニット16aによってデコードされたビデオデータが表示ユニット13に表示されることはない。
オーディオデコード検証部35は、オーディオ再生ユニット16bを利用して、フレーム毎にエンコードされたオーディオデータをデコードし、デコードが正常に終了するか否かを検証する処理部であり、オーディオ再生ユニット16bによってデコードされたオーディオデータが音声出力ユニット17から出力されることはない。
ビデオ再生部41とオーディオ再生部42とは、ユーザーが動画(映像)又は静止画や音声(又は楽曲)を鑑賞するための処理部である。ビデオ再生部41は、ビデオ再生ユニット16aを制御してエンコードされたビデオデータをデコードし、デコードされたビデオデータを表示制御して動画又は静止画を表示ユニットに表示させる。オーディオ再生部42は、オーディオ再生ユニット16bを制御してエンコードされたオーディオデータをデコードし、デコードされたオーディオデータを出力制御して音声(又は楽曲)を音声出力ユニット17から出力させる。
記憶領域50は、復旧処理部30で処理されるデータ、その処理によって生成されるデータ等を記憶する領域であり、メモリユニット12や記憶装置18の所定記憶領域を示している。記憶領域50には、損傷ストリーム51と、ビデオ作業領域52と、オーディオ作業領域53と、復旧moov情報54と、再構成ストリーム51とが格納される。
損傷ストリーム51は、MP4ファイルのフォーマット形式のエンコードされたビデオデータとオーディオデータとが多重化されたストリームであるが、ストリーム内に損傷があり、鑑賞するために実行されるビデオ再生部41及びオーディオ再生部42では再生不可能なストリームである。損傷ストリーム51は、復旧処理部30による復旧処理の対象となるストリームである。
ビデオ作業領域52は、ストリーム解析部31が判別したNALユニット毎のビデオデータに関するデータを一時的に格納する領域である。ストリーム解析部31は、例えば、判別されたNALユニット毎にビデオデータを、損傷ストリーム51に出現した順番に格納するためのバッファ領域として使用したり、或いは、NALユニット毎にピクチャ情報を対応させたテーブルを格納するために使用したりする。
オーディオ作業領域53は、ストリーム解析部31が判別したフレーム毎のオーディオデータに関するデータを一時的に格納する領域である。ストリーム解析部31は、例えば、判別されたフレーム毎にオーディオデータを、損傷ストリーム51に出現した順番に格納するためのバッファ領域として使用したり、或いは、フレーム毎にオーディオデータのフレーム情報を対応させたテーブルを格納するために使用したりする。
復旧moov情報54は、ストリーム解析部31によって作成されるストリームのメタ情報を示すmoov情報であり、ストリーム再構成部32によって利用され損傷のないMP4ファイルが再構成される。再構成ストリーム55は、ビデオ再生部41及びオーディオ再生部42によって再生可能なMP4ファイルのフォーマットに損傷ストリーム51が再構成されたストリームである。
以下、復旧処理部30による復旧処理について説明する。先ず、NALユニットの次のデータがビデオであるのかオーディオであるのかを判別する方法について図5で説明する。図5は、ビデオとオーディオの境界判別方法を説明するための図である。本発明では、NALユニットの長さフィールド(Length)を用いてNALユニットの終了をポイントし、続くデータが長さフィールド(Length)を先頭に付加したNALユニットである、つまりビデオデータであると仮定する(図5(a))。そして、長さフィールド(Length)を含めて更にNALユニットの先頭からの所定ビットまでの簡易チェック領域8を、ビデオデータであるとの仮定の下に解析できた場合には、続くデータはビデオデータであると判別する。
一方、ビデオデータであると仮定の下に解析した場合に矛盾が検出されれば、オーディオデータであると仮定する(図5(b))。オーディオデータのシンタックスを、オーディオデータであるとの仮定の下に解析できた場合には、続くデータはオーディオデータであると判別する。オーディオデータのシンタックスの解析に失敗した場合、つまり、ビデオデータであるともオーディオデータであるとも判別できない場合であるので、エラー処理を実行し、MP4ファイルの復旧ができなかったことを示すメッセージを表示ユニット13に表示してユーザーに通知する。
図6は、ビデオデータの判別方法を説明するための図である。図6において、ビデオデータを格納するNALユニットは、NALヘッダー8bとVCLに基づく動画像の圧縮データで成るRBSP(Raw Byte Sequence Payload)8cとで構成される。NALヘッダー8bは、常にゼロを示す固定ビット(1ビット)、NALユニットの復号でリファレンスピクチャの完全性の要否を示すnal_ref_idc(2ビット)、NALユニットのペイロードタイプを示すnal_unit_type(5ビット)で構成される。そして、NALユニットの開始直前には長さフィールド(Length)8aが付加されている。
本発明では、長さフィールド8aとNALヘッダー8bとを簡易チェック領域8とし、簡易チェック領域8の解析が成功した場合、ビデオデータであると判定する。
損傷ストリーム51の読み取り位置をビデオのサンプルと仮定して、NALユニットの長さフィールド8aを読み取り位置から後方へ4バイト、2バイト、1バイトの順に読み取って次のNALユニットの長さフィールド8aへポイントし、次の長さフィールド8aの値の妥当性を判断する。NALユニットの長さフィールド8aの値の妥当性の判断は、H.264で規定された必要ビット数以上かつNALユニットの最大ビット数以下を示すことを確認し、更に、ファイルサイズ以下であることを確認する。
図7は、H.264で規定されたNALユニットの長さの例を示す図である。図7に示すように、少なくとも、H.264の規格レベル1.3の必要ビット数以上かつ規格レベル3.2のNALユニットの最大ビット数(又はNALユニットの最大バイト数)以下であることを確認すればよい。この場合、19ビット以上かつ2000×1200ビット(3000000バイト)以下を確認する。
NALユニットの長さフィールド8aの値の妥当性が判断できたら、NALヘッダー8bの先頭の固定ビット(1ビット)が「0」であること、及び、nal_unit_type(5ビット)の位置の値が規定されているNALタイプを示しているか否かを判定する。H.264では、"13..23:Researved 24..31:Unspecified"と定義されていることにより、nal_unit_type(5ビット)の位置の値が13から31を示していないことを確認する。nal_unit_type(5ビット)の位置の値が13から31のいずれかを示す場合、NALユニット(ビデオ)ではないと判断し、オーディオであると仮定する。
このようなビデオ判定方法において、NALタイプ、SEIの内容を取得して、フレームレート、同期コードを取得する。取得したこれら情報は、例えば、ビデオデコード検証部34に格納され、復旧moov情報54を作成する際に参照される。
オーディオの仮判定として、AACサンプル(raw_data_block)の先頭から所定数ビット分がトラック中で一定の値を示すことを利用して判定を行うことにより、簡単な方法でオーディオデータの判定を行うことができる(オーディオの簡易シンタックスチェック)。この所定数ビット分の一定値の例として、メディアデータ復旧装置100がオーディオ録音機能を備えている場合、オーディオ録画機能が録音する際に設定する値を優先的に比較して判定を行う。或いは、予め想定される所定数ビット分の値を候補として保持し順次比較するようにしてもよい。この場合、位置する候補を比較値として定義し、以後この比較値を用いてオーディオデータであるか否かを判断するようにする。
オーディオの可能性が高いと判断した場合、オーディオデコード検証部35を実行してオーディオデータとしてデコードすることによってシンタックスのチェックを行う。また、デコードによりサンプリングサイズを取得する。
このようなオーディオ判定方法において、取得したサンプリングサイズは、例えば、デコードしたオーディオデータのフレームに対応させてオーディオ作業領域53に格納され、復旧moov情報54を作成する際に参照される。
更に、MP4ファイルに必要なオフセット位置、同期サンプル位置、表示位置等を取得できた場合、MP4ファイルのフォーマットを完成させる。
しかしながら、H.264のPPS(Picture Parameter Set)及びSPS(Sequence Parameter Set)やAACの再生時に参照されるパラメータ等を含むaudio_specific_info等が取得不可である場合、ビデオデータとオーディオデータとが多重化されているエレメンタリストリームからビデオデータとオーディオデータとを分離させて、パラメータ設定部33によって、暫定的なPPS及びSPSフィールド値、audio_specific_infoの値をユーザーに何度か試行変更させて、ユーザーによる目視確認、音声確認ができるフィールド値を推定する。
初期の暫定的なPPS及びSPSフィールド値は、エンコーダーが同一、また、録画条件が同じ場合は、殆ど同じもので代替可能である。メディアデータ復旧装置100がビデオ録画機能を備えている場合、ビデオ録画機能が録画する際に設定する値を優先的に設定してもよい。また、予め想定されるフィールド値を候補として保持し順次設定しては再生し、目視確認をするようにしてユーザーによって妥当な値を設定する。この値は、復旧moov情報54の所定位置に設定される。
初期の暫定的なaudio_specific_infoの値は、オーディオの仮判定の際と同様に、オーディオ録画機能が録音する際に設定する値を優先的に設定してユーザーに視聴させる。或いは、予め想定される所定数ビット分の値を候補として保持し順次設定してユーザーに視聴させるようにして妥当な値を設定するようにする。また、AACの場合、audio_specific_infoの所定数ビットは2バイト程となる。ユーザーによって確認された値は、復旧moov情報54の所定位置に設定される。
ストリーム再構成部32は、記憶領域50に格納されている損傷ストリーム51,ビデオ作業領域52、オーディオ作業領域53、復旧moov情報54のデータを用いてストリームを再構成して、再構成ストリーム55として記憶領域50に出力する。
上述した方法に基づいて、ビデオデータ及びオーディオデータを判別して分離するための基本的な処理フローについて図8で説明する。図8は、ビデオデータ及びオーディオデータの分離処理を説明するための図である。
図8において、ストリーム解析部31は、損傷ストリーム51のmdatフィールドの先頭からビデオのサンプルが格納されていると仮定して、NALユニットの長さフィールドの値を確認し、その値でポイントされた次のデータを参照する(ステップS51)。
ストリーム解析部31は、ポイントされた次のデータの読み取り位置をビデオのサンプルと仮定して、再度、NALユニットの長さフィールドと仮定して値の妥当性を判断する(ステップS52)。値の妥当性の判断は、図6で説明した方法で判断する。例えば、H.264の規格レベル3.2のSD相当であるとして、必要ビット数「22」ビット以上かつNALユニットの最大ビット数「20000×1200」ビット(3000000バイト)以下であることを確認し、更に、損傷ストリーム51のファイルサイズ以下であることを確認する。
ステップS52において長さフィールドの値が妥当でないと判断した(NALユニットでないらしい)場合、ステップS54へと進み、オーディオである可能性を判断する。一方で、ステップS52において長さフィールドの値が妥当であると判断した(NALユニットらしい)場合、長さフィールドに続くデータをNALヘッダーと仮定して妥当性を確認する(ステップS53)。
ステップS53においてNALヘッダーと仮定し、先頭ビットが固定ビット(1ビット)を示す「0」以外である、又は、NALタイプを示す所定位置の値がH.264で規定されていない値を示す場合、NALユニット(ビデオ)ではないと判断し、オーディオデータであると仮定して、ステップS55へと進み、オーディオデコード検証部30によってオーディオデータとしてデコードを試みる。一方で、ステップS53においてNALヘッダーと仮定し、先頭ビットが固定ビット(1ビット)を示す「0」であり、かつ、NALタイプを示す所定位置の値がH.264で規定されている値を示す場合、オーディオの簡易シンタックスチェックを行うためステップS54へと進む。
ストリーム解析部31は、オーディオデータと仮定して、AACサンプルのraw_data_blockの先頭部分の所定数ビット分がチャンネル構成、サンプリングレート等の情報を示すためトラック中では同じ値となることを利用して、この所定数ビット分をチェックする(簡易シンタックスチェック)(ステップS54)。この簡易シンタックスチェックによってオーディオでないと判断した場合、ステップS57へ進み、再度ビデオデータであると仮定して、ビデオデコード検証部34によってデータをデコードしてみる。
一方、ステップS54において、この簡易シンタックスチェックによってオーディオらしいと判断した場合、オーディオデコード検証部35によって試しにオーディオデータとしてデコードしてみる(ステップS55)。
ストリーム解析部31は、オーディオデコード検証部35によるデコードが成功したか否かを判断する(ステップS56)。デコードが成功した場合、オーディオデータであると判定して、フレームの位置情報、フレームの長さ等のフレーム情報を記憶する(ステップS59−2)。そして、ストリーム解析部31は、損傷ストリーム51における読み取り位置を更新し(ステップS63)、更新された読み取り位置が損傷ストリーム51の終了位置を示すか否かを判断する(ステップS64)。終了位置を示す場合、ストリーム解析部31によるビデオデータ及びオーディオデータの分離処理を終了する。一方、終了位置に到達していない場合、ステップS52へ戻り、上述した同様の処理を繰り返す。
一方、ステップS56においてオーディオデコード検証部35によるデコードが失敗した場合、ストリーム解析部31は、ビデオデコード検証部34によってデコードしてみる(ステップS57)。
ステップS57においてビデオデコード検証部34によるデコードが成功したか否かを判断する(ステップS58)。デコードが成功した場合、ビデオデータであると判定して、ストリーム解析部31は、NALタイプを記憶しておくと共に、NALタイプがSEIを示す場合、NALユニットからSEIの内容からフレームレート、同期コードを取得し記憶しておく(ステップS59)。そして、ストリーム解析部31は、損傷ストリーム51における読み取り位置を更新し(ステップS63)、更新された読み取り位置が損傷ストリーム51の終了位置を示すか否かを判断する(ステップS64)。終了位置を示す場合、ストリーム解析部31によるビデオデータ及びオーディオデータの分離処理を終了する。一方、終了位置に到達していない場合、ステップS52へ戻り、上述した同様の処理を繰り返す。
ステップS58においてビデオデコード検証部34によるデコードが失敗した場合、オーディオデコード済みであるか否かを判断する(ステップS60)。オーディオデコード済みである場合、ビデオデータであるともオーディオデータであるとも判断できなかったことになるため、エラー処理を実行して(ステップS62−2)、ストリーム解析部31によるビデオデータ及びオーディオデータの分離処理を終了する。
ステップS62−2におけるエラー処理では、パラメータ設定部33によってユーザーによるパラメータの設定を行わせるようにしてもよい。
一方、ステップS60にてオーディオデコードがなされていないと判断した場合、ストリーム解析部31は、オーディオデコード検証部35によるデコードを実行する(ステップS61)。そして、ストリーム解析部31は、オーディオデコード検証部35によるデコードが成功したか否かを判断する(ステップS62)。オーディオデコード検証部35によるデコードが失敗した場合、エラー処理を実行して(ステップS62−2)、ストリーム解析部31によるビデオデータ及びオーディオデータの分離処理を終了する。
一方、ステップS61においけるオーディオデコード検証部35によるデコードが成功した場合、オーディオデータであると判定してステップS59−2へと進み、フレームの位置情報、フレームの長さ等のフレーム情報を記憶する(ステップS59−2)。そして、ストリーム解析部31は、損傷ストリーム51における読み取り位置を更新し(ステップS63)、更新された読み取り位置が損傷ストリーム51の終了位置を示すか否かを判断する(ステップS64)。終了位置を示す場合、ストリーム解析部31によるビデオデータ及びオーディオデータの分離処理を終了する。一方、終了位置に到達していない場合、ステップS52へ戻り、上述した同様の処理を繰り返す。
次に、上述した基本の処理フローに基づいて損傷ストリーム51から分離されたビデオデータとオーディオデータの状態例について図9及び図10で説明する。図9は、バッファを用いて分離した状態例を示す図である。図9に示す分離状態例では、例えば、ビデオ作業領域52をビデオバッファとして、オーディオ作業領域53をオーディオバッファとして利用した場合を例示している。
ストリーム解析部31での処理でビデオデコード検証部34によってデコードが成功したビデオデータがビデオバッファに出力される。図8のステップS59にてビデオデータと判定した際の処理において、ビデオ作業領域52のビデオバッファにビデオデータが追加される。その際、各NALユニット(各ピクチャ)のサイズ情報もビデオ作業領域52に損傷ストリーム51内の出現順に対応させて出力しておく。また、ストリーム解析部31での処理中に取得したフレームレート、同期コード等を含む録画パラメータ等もビデオ作業領域52の所定領域に格納しておく。
また、ストリーム解析部31での処理でオーディオデコード検証部35によってデコードが成功したオーディオデータがオーディオバッファに出力される。図8のステップS59−2にてオーディオデータと判定した際の処理において、オーディオ作業領域53のオーディオバッファにオーディオデータが追加される。その際、各フレームのサイズ情報もオーディオ作業領域53に損傷ストリーム51内の出現順に対応させて出力しておく。
ストリーム解析部31は、ビデオ作業領域52に格納されている録画パラメータ又は類推したパラメータと、NALユニットのサイズ情報と、ビデオバッファの先頭アドレスと、オーディオデータの各フレームのサイズ情報とを入力値としてストリーム再構成部32に与える。
ストリーム再構成部32は、入力値を用いてビデオバッファ内に格納されているNALユニットとオーディオバッファ内に格納されているオーディオデータのフレームとを損傷ストリーム51内での出現順に再構成して再構成ストリーム55を作成する。再構成するときには、ストリーム形式に従ったmoov情報を復旧moov情報54として完成させて再構成ストリーム55に付加し、更に、ファイルタイプを示すftypフィールドを先頭に付加する。
更に、パラメータ設定部33によりユーザーによる目視確認、音声確認をして再構成ストリーム55を完成させる。この時、パラメータ設定部33が取得したユーザーが所望するストリーム形式へ、ストリーム再構成部32によって再構成ストリーム55を変更してもよい。ストリーム形式として、MP4、MPEG−2 TS、MPEG−2 PS、ASF等が考えられる。
図10は、テーブルを用いて分離した状態例を示す図である。図10に示す分離状態例では、例えば、ビデオ作業領域52にピクチャ情報リスト52aを格納し、オーディオ作業領域53にフレーム情報リスト53aを格納した場合を例示している。ピクチャ情報リスト52a及びフレーム情報リスト53aを用いて、ビデオデータとオーディオデータとを分けて管理することによって、図9に示すデータそのものを格納するバッファと比べると記憶領域50の使用領域を削減することができる。
ピクチャ情報リスト52aには、損傷ストリーム51における出現順に対応させて、損傷ストリーム51の先頭からのNALユニットの前に付加される長さフィールドへの相対アドレスで示されるオフセット位置と、NALユニットのサイズを示すサイズ情報とが格納され管理される。図8のステップS59にてビデオデータと判定した際の処理において、ピクチャ情報リスト52aにデータが追加される。また、ストリーム解析部31での処理中に取得したフレームレート、同期コード等を含む録画パラメータ等もビデオ作業領域52の所定領域に格納される。
フレーム情報リスト53aには、損傷ストリーム51における出現順に対応させて、損傷ストリーム51の先頭からのオーディオデータ(AAC)のフレームへの相対アドレスで示されるオフセット位置と、フレームのサイズを示すサイズ情報とが格納され管理される。図8のステップS59−2にてオーディオデータと判定した際の処理において、フレーム情報リスト53aにデータが追加される。
ストリーム解析部31は、ビデオ作業領域52に格納されている録画パラメータ又は類推したパラメータと、ピクチャ情報リスト52aの先頭アドレスと、フレーム情報リスト53aの先頭アドレスとを入力値としてストリーム再構成部32に与える。
ストリーム再構成部32及びパラメータ設定部33については、図9での説明と同様である。
図10及び図9において、復旧moov情報54には、ビデオのサンプルの位置情報及びオーディオのサンプルの位置情報が、ビデオ作業領域52及びオーディオ作業領域53を用いて格納される。また、復旧moov情報54内のビデオデータとオーディオデータの構成に関するconfig情報には、ビデオ特定情報(audio_specific_info)、オーディオ特定情報(audio_specific_info)、H.264のSPS及びPPSの情報を含むビデオ構成情報AVC_Config等が再構築される。
図11は、復旧されたMP4ファイルの構成例を示す図である。図11に示す復旧されたMP4ファイルでは、H.264規格のビデオデータとAAC規格のオーディオデータとが多重化されたストリームの例が示されている。再構成ストリーム55から位置情報3−1、3−2、3−3、・・・が取得され格納された復旧moov情報54が再構成ストリーム55のmoov情報54aとして付加されている。
上述したように、本発明では、MP4ファイル形式においてサンプルの位置情報を示すmoov情報を得ることができない状況においても、H.264規格のビデオデータが多重化されていると仮定することによって、ブロードバンドの普及によって映像配信で広く採用されるようになったH.264規格のビデオデータが多重化されているMP4ファイルを復旧させることができる。
また、H.264規格のビデオデータが多重化されていると仮定し、NALユニットの直前に付加されている長さフィールドを参照して次のデータの先頭をポイントして、そのポイントされたデータがビデオデータらしいか又はオーディオデータらしいかを判定するため、他規格で定義されているような同期コードでストリームの先頭からビット単位でずらして一致を確認する処理に比べると相当に処理能力を改善することができる。このことは、例えば、図7に示すH.264のレベル3.2で規定されるNALユニットの最大ビット数(20000×1200ビット)を参照することによって、本発明によってMP4ファイルを復旧するための処理能力が相当に改善されることは容易に理解できることである。また、H.264規格のビデオデータが多重化されているMP4ファイルを可能な限り修復し認識できるレベルまで再生可能な状態とすることができる。
以上の説明に関し、更に以下の項を開示する。
(付記1)
メディアファイルを復旧するメディアファイル復旧装置であって、
前記メディアファイルに格納される、長さフィールドと符号化部とで成る第一符号化データと該第一符号化データとは符号化の異なる形式による第二符号化データとが多重化されたストリームの先頭のデータを、該第一符号化データの長さフィールドと仮定する長さフィールド仮定手段と、
該長さフィールドを用いてポイントした次のデータが、該第一符号化データである場合に取り得る値範囲を用いて該第一符号化データであることの妥当性を判断する第一符号化データ判断手段と、
前記第一符号化データ判断手段によって前記第一符号化データの妥当性が判断された場合、該第一符号化データをデコードして成功したときに該第一符号化データであると判定する第一デコード判定手段とを備えることを特徴とするメディアファイル復旧装置。
(付記2)
前記長さフィールドの値が前記第一符号化データであり得るための最小サイズ以上かつ最大サイズ以下であり、かつ、前記メディアファイルのサイズ以下であることを確認する長さ確認手段を備え、
前記長さフィールド仮定手段は、前記長さ確認手段によって前記長さフィールドの値を確認できた場合、前記第一符号化データの長さフィールドと仮定することを特徴とする付記1記載のメディアファイル復旧装置。
(付記3)
前記第一符号化データ判断手段は、
前記次のデータが該第一符号化データであると仮定して、該次のデータでの長さフィールドの値を前記長さ確認手段によって確認し、
前記長さフィールドに続くデータを前記第一符号化データにおける前記符号化データのヘッダーと仮定して、該ヘッダーが取り得る値範囲を用いて該第一符号化データの妥当性を判断することを特徴とする付記2記載のメディアファイル復旧装置。
(付記4)
前記第一符号化データ判断手段は、更に、
前記次のデータにおいて前記第一符号化データの長さフィールドを確認できなかった場合、又は、前記長さフィールドに続くデータを前記第一符号化データにおける前記符号化データのヘッダーと仮定することによる該第一符号化データの妥当性を判断できなかった場合、該次のデータの先頭データ部が前記第二符号化データの先頭データ部が取り得る値範囲を示すかを確認することによって、該第二符号化データの妥当性を判断する第二符号化データ判断手段を備えることを特徴とする付記3記載のメディアファイル復旧装置。
(付記5)
前記第一符号化データ判断手段によって前記次のデータが前記第一符号化データでないと判断された場合、前記次データを前記第二符号化データであると仮定してデコードして成功したときに該第二符号化データであると判定する第二デコード判定手段を備えることを特徴とする付記3又は付記4記載のメディアファイル復旧装置。
(付記6)
前記第二符号化データ判断手段によって前記第二符号化データの妥当性を判断できなかった場合、又は、前記第二デコード判定手段によってデコードが失敗した場合、前記第一符号化データであると仮定してデコードする第一デコード手段を備えることを特徴とする付記4又は付記5記載のメディアファイル復旧装置。
(付記7)
前記第一デコード手段によるデコードが失敗した場合、第二符号化データであると仮定してデコードする失敗後デコード手段と、
前記失敗後デコード手段によるデコードが失敗した場合、エラー処理を実行するエラー手段とを備えることを特徴とする付記6記載のメディアファイル復旧装置。
(付記8)
前記第一デコード判定手段によって前記第一符号化データであると判定された次のデータを順次格納する第一バッファと、
前記第二符号化データ判断手段によって前記第二符号化データであると判定された次のデータを順次格納する第二バッファとを備えることを特徴とする付記4乃至7のいずれか一項記載のメディアファイル復旧装置。
(付記9)
前記第一デコード判定手段によって前記第一符号化データであると判定された次のデータの前記ストリーム内でのオフセット値とサイズ情報とを順次格納する第一リストと、
前記第二デコード判定手段によって前記第二符号化データであると判定された次のデータの前記ストリーム内でのオフセット値とサイズ情報とを順次格納する第二リストとを備えることを特徴とする付記4乃至7のいずれか一項記載のメディアファイル復旧装置。
(付記10)
前記第一デコード判定手段及び/又は前記第二デコード判定手段によるデコードが成功した前記次データを用いて前記メディアファイルを再構成する再構成手段を備えることを特徴とする付記4乃至9のいずれか一項記載のメディアファイル復旧装置。
(付記11)
前記再構成されたメディアファイルをユーザーからの入力に応じて所望のファイル形式に変更する手段を備えることを特徴とする付記10記載のメディアファイル復旧装置。
(付記12)
メディアファイルを復旧するメディアファイル復旧装置におけるメディアファイル復旧方法であって、該メディアファイル復旧装置が、
前記メディアファイルに格納される、長さフィールドと符号化部とで成る第一符号化データと該第一符号化データとは符号化の異なる形式による第二符号化データとが多重化されたストリームの先頭のデータを、該第一符号化データの長さフィールドと仮定する長さフィールド仮定手順と、
該長さフィールドを用いてポイントした次のデータが、該第一符号化データである場合に取り得る値範囲を用いて該第一符号化データであることの妥当性を判断する第一符号化データ判断手順と、
前記第一符号化データ判断手順によって前記第一符号化データの妥当性が判断された場合、該第一符号化データをデコードして成功したときに該第一符号化データであると判定する第一デコード判定手順とを実行することを特徴とするメディアファイル復旧方法。
(付記13)
メディアファイルを復旧するメディアファイル復旧装置としてコンピュータを機能させるプログラムであって、該コンピュータを、
前記メディアファイルに格納される、長さフィールドと符号化部とで成る第一符号化データと該第一符号化データとは符号化の異なる形式による第二符号化データとが多重化されたストリームの先頭のデータを、該第一符号化データの長さフィールドと仮定する長さフィールド仮定手段と、
該長さフィールドを用いてポイントした次のデータが、該第一符号化データである場合に取り得る値範囲を用いて該第一符号化データであることの妥当性を判断する第一符号化データ判断手段と、
前記第一符号化データ判断手段によって前記第一符号化データの妥当性が判断された場合、該第一符号化データをデコードして成功したときに該第一符号化データであると判定する第一デコード判定手段として機能させることを特徴とするコンピュータ実行可能なプログラム。
(付記1)
メディアファイルを復旧するメディアファイル復旧装置であって、
前記メディアファイルに格納される、長さフィールドと符号化部とで成る第一符号化データと該第一符号化データとは符号化の異なる形式による第二符号化データとが多重化されたストリームの先頭のデータを、該第一符号化データの長さフィールドと仮定する長さフィールド仮定手段と、
該長さフィールドを用いてポイントした次のデータが、該第一符号化データである場合に取り得る値範囲を用いて該第一符号化データであることの妥当性を判断する第一符号化データ判断手段と、
前記第一符号化データ判断手段によって前記第一符号化データの妥当性が判断された場合、該第一符号化データをデコードして成功したときに該第一符号化データであると判定する第一デコード判定手段とを備えることを特徴とするメディアファイル復旧装置。
(付記2)
前記長さフィールドの値が前記第一符号化データであり得るための最小サイズ以上かつ最大サイズ以下であり、かつ、前記メディアファイルのサイズ以下であることを確認する長さ確認手段を備え、
前記長さフィールド仮定手段は、前記長さ確認手段によって前記長さフィールドの値を確認できた場合、前記第一符号化データの長さフィールドと仮定することを特徴とする付記1記載のメディアファイル復旧装置。
(付記3)
前記第一符号化データ判断手段は、
前記次のデータが該第一符号化データであると仮定して、該次のデータでの長さフィールドの値を前記長さ確認手段によって確認し、
前記長さフィールドに続くデータを前記第一符号化データにおける前記符号化データのヘッダーと仮定して、該ヘッダーが取り得る値範囲を用いて該第一符号化データの妥当性を判断することを特徴とする付記2記載のメディアファイル復旧装置。
(付記4)
前記第一符号化データ判断手段は、更に、
前記次のデータにおいて前記第一符号化データの長さフィールドを確認できなかった場合、又は、前記長さフィールドに続くデータを前記第一符号化データにおける前記符号化データのヘッダーと仮定することによる該第一符号化データの妥当性を判断できなかった場合、該次のデータの先頭データ部が前記第二符号化データの先頭データ部が取り得る値範囲を示すかを確認することによって、該第二符号化データの妥当性を判断する第二符号化データ判断手段を備えることを特徴とする付記3記載のメディアファイル復旧装置。
(付記5)
前記第一符号化データ判断手段によって前記次のデータが前記第一符号化データでないと判断された場合、前記次データを前記第二符号化データであると仮定してデコードして成功したときに該第二符号化データであると判定する第二デコード判定手段を備えることを特徴とする付記3又は付記4記載のメディアファイル復旧装置。
(付記6)
前記第二符号化データ判断手段によって前記第二符号化データの妥当性を判断できなかった場合、又は、前記第二デコード判定手段によってデコードが失敗した場合、前記第一符号化データであると仮定してデコードする第一デコード手段を備えることを特徴とする付記4又は付記5記載のメディアファイル復旧装置。
(付記7)
前記第一デコード手段によるデコードが失敗した場合、第二符号化データであると仮定してデコードする失敗後デコード手段と、
前記失敗後デコード手段によるデコードが失敗した場合、エラー処理を実行するエラー手段とを備えることを特徴とする付記6記載のメディアファイル復旧装置。
(付記8)
前記第一デコード判定手段によって前記第一符号化データであると判定された次のデータを順次格納する第一バッファと、
前記第二符号化データ判断手段によって前記第二符号化データであると判定された次のデータを順次格納する第二バッファとを備えることを特徴とする付記4乃至7のいずれか一項記載のメディアファイル復旧装置。
(付記9)
前記第一デコード判定手段によって前記第一符号化データであると判定された次のデータの前記ストリーム内でのオフセット値とサイズ情報とを順次格納する第一リストと、
前記第二デコード判定手段によって前記第二符号化データであると判定された次のデータの前記ストリーム内でのオフセット値とサイズ情報とを順次格納する第二リストとを備えることを特徴とする付記4乃至7のいずれか一項記載のメディアファイル復旧装置。
(付記10)
前記第一デコード判定手段及び/又は前記第二デコード判定手段によるデコードが成功した前記次データを用いて前記メディアファイルを再構成する再構成手段を備えることを特徴とする付記4乃至9のいずれか一項記載のメディアファイル復旧装置。
(付記11)
前記再構成されたメディアファイルをユーザーからの入力に応じて所望のファイル形式に変更する手段を備えることを特徴とする付記10記載のメディアファイル復旧装置。
(付記12)
メディアファイルを復旧するメディアファイル復旧装置におけるメディアファイル復旧方法であって、該メディアファイル復旧装置が、
前記メディアファイルに格納される、長さフィールドと符号化部とで成る第一符号化データと該第一符号化データとは符号化の異なる形式による第二符号化データとが多重化されたストリームの先頭のデータを、該第一符号化データの長さフィールドと仮定する長さフィールド仮定手順と、
該長さフィールドを用いてポイントした次のデータが、該第一符号化データである場合に取り得る値範囲を用いて該第一符号化データであることの妥当性を判断する第一符号化データ判断手順と、
前記第一符号化データ判断手順によって前記第一符号化データの妥当性が判断された場合、該第一符号化データをデコードして成功したときに該第一符号化データであると判定する第一デコード判定手順とを実行することを特徴とするメディアファイル復旧方法。
(付記13)
メディアファイルを復旧するメディアファイル復旧装置としてコンピュータを機能させるプログラムであって、該コンピュータを、
前記メディアファイルに格納される、長さフィールドと符号化部とで成る第一符号化データと該第一符号化データとは符号化の異なる形式による第二符号化データとが多重化されたストリームの先頭のデータを、該第一符号化データの長さフィールドと仮定する長さフィールド仮定手段と、
該長さフィールドを用いてポイントした次のデータが、該第一符号化データである場合に取り得る値範囲を用いて該第一符号化データであることの妥当性を判断する第一符号化データ判断手段と、
前記第一符号化データ判断手段によって前記第一符号化データの妥当性が判断された場合、該第一符号化データをデコードして成功したときに該第一符号化データであると判定する第一デコード判定手段として機能させることを特徴とするコンピュータ実行可能なプログラム。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
8 簡易チェック領域
8a 長さフィールド
8b NALヘッダー
8c RBSP
11 CPU
12 メモリユニット
13 表示ユニット
14 入力ユニット
15 通信ユニット
16a ビデオ再生ユニット
16b オーディオ再生ユニット
17 音声出力ユニット
18 記憶装置
19 ドライバ
20 記憶媒体
23 表示制御部
24 入力制御部
25 通信制御部
27 音声出力制御部
29 インストーラ
30 復旧処理部
31 ストリーム解析部
32 ストリーム再構成部
33 パラメータ設定部
34 ビデオデコード検証部
35 オーディオデコード検証部
41 ビデオ再生部
42 オーディオ再生部
50 記憶領域
51 損傷ストリーム
52 ビデオ作業域
52a ピクチャ情報リスト
53 オーディオ作業域
53a フレーム情報リスト
54 復旧moov情報
55 再構成ストリーム
8a 長さフィールド
8b NALヘッダー
8c RBSP
11 CPU
12 メモリユニット
13 表示ユニット
14 入力ユニット
15 通信ユニット
16a ビデオ再生ユニット
16b オーディオ再生ユニット
17 音声出力ユニット
18 記憶装置
19 ドライバ
20 記憶媒体
23 表示制御部
24 入力制御部
25 通信制御部
27 音声出力制御部
29 インストーラ
30 復旧処理部
31 ストリーム解析部
32 ストリーム再構成部
33 パラメータ設定部
34 ビデオデコード検証部
35 オーディオデコード検証部
41 ビデオ再生部
42 オーディオ再生部
50 記憶領域
51 損傷ストリーム
52 ビデオ作業域
52a ピクチャ情報リスト
53 オーディオ作業域
53a フレーム情報リスト
54 復旧moov情報
55 再構成ストリーム
Claims (5)
- メディアファイルを復旧するメディアファイル復旧装置であって、
前記メディアファイルに格納される、長さフィールドと符号化部とで成る第一符号化データと該第一符号化データとは符号化の異なる形式による第二符号化データとが多重化されたストリームの先頭のデータを、該第一符号化データの長さフィールドと仮定する長さフィールド仮定手段と、
該長さフィールドを用いてポイントした次のデータが、該第一符号化データである場合に取り得る値範囲を用いて該第一符号化データであることの妥当性を判断する第一符号化データ判断手段と、
前記第一符号化データ判断手段によって前記第一符号化データの妥当性が判断された場合、該第一符号化データをデコードして成功したときに該第一符号化データであると判定する第一デコード判定手段とを備えることを特徴とするメディアファイル復旧装置。 - 前記長さフィールドの値が前記第一符号化データであり得るための最小サイズ以上かつ最大サイズ以下であり、かつ、前記メディアファイルのサイズ以下であることを確認する長さ確認手段を備え、
前記長さフィールド仮定手段は、前記長さ確認手段によって前記長さフィールドの値を確認できた場合、前記第一符号化データの長さフィールドと仮定することを特徴とする請求項1記載のメディアファイル復旧装置。 - 前記第一符号化データ判断手段は、
前記次のデータが該第一符号化データであると仮定して、該次のデータでの長さフィールドの値を前記長さ確認手段によって確認し、
前記長さフィールドに続くデータを前記第一符号化データにおける前記符号化データのヘッダーと仮定して、該ヘッダーが取り得る値範囲を用いて該第一符号化データの妥当性を判断することを特徴とする請求項2記載のメディアファイル復旧装置。 - 前記第一符号化データ判断手段は、更に、
前記次のデータにおいて前記第一符号化データの長さフィールドを確認できなかった場合、又は、前記長さフィールドに続くデータを前記第一符号化データにおける前記符号化データのヘッダーと仮定することによる該第一符号化データの妥当性を判断できなかった場合、該次のデータの先頭データ部が前記第二符号化データの先頭データ部が取り得る値範囲を示すかを確認することによって、該第二符号化データの妥当性を判断する第二符号化データ判断手段を備えることを特徴とする請求項3記載のメディアファイル復旧装置。 - メディアファイルを復旧するメディアファイル復旧装置におけるメディアファイル復旧方法であって、該メディアファイル復旧装置が、
前記メディアファイルに格納される、長さフィールドと符号化部とで成る第一符号化データと該第一符号化データとは符号化の異なる形式による第二符号化データとが多重化されたストリームの先頭のデータを、該第一符号化データの長さフィールドと仮定する長さフィールド仮定手順と、
該長さフィールドを用いてポイントした次のデータが、該第一符号化データである場合に取り得る値範囲を用いて該第一符号化データであることの妥当性を判断する第一符号化データ判断手順と、
前記第一符号化データ判断手順によって前記第一符号化データの妥当性が判断された場合、該第一符号化データをデコードして成功したときに該第一符号化データであると判定する第一デコード判定手順とを実行することを特徴とするメディアファイル復旧方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007243473A JP2009077110A (ja) | 2007-09-20 | 2007-09-20 | メディアファイル復旧装置及びメディアファイル復旧方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007243473A JP2009077110A (ja) | 2007-09-20 | 2007-09-20 | メディアファイル復旧装置及びメディアファイル復旧方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009077110A true JP2009077110A (ja) | 2009-04-09 |
Family
ID=40611675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007243473A Pending JP2009077110A (ja) | 2007-09-20 | 2007-09-20 | メディアファイル復旧装置及びメディアファイル復旧方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009077110A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011061281A (ja) * | 2009-09-07 | 2011-03-24 | Mitsubishi Electric Corp | メディアファイル修復方法、メディアファイル作成方法及びメディアファイル再生方法並びに装置 |
CN114125469A (zh) * | 2021-11-08 | 2022-03-01 | 北京天宇威视科技股份有限公司 | Mp4文件修复方法、装置、电子设备及存储介质 |
-
2007
- 2007-09-20 JP JP2007243473A patent/JP2009077110A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011061281A (ja) * | 2009-09-07 | 2011-03-24 | Mitsubishi Electric Corp | メディアファイル修復方法、メディアファイル作成方法及びメディアファイル再生方法並びに装置 |
CN114125469A (zh) * | 2021-11-08 | 2022-03-01 | 北京天宇威视科技股份有限公司 | Mp4文件修复方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5288710B2 (ja) | マルチメディアデータを記録した情報保存媒体、その再生方法及び再生装置 | |
KR101316579B1 (ko) | Mp4 파일 구성 장치 및 복구 장치, mp4 파일 구성 방법 및 복구 방법 | |
KR100983173B1 (ko) | 데이터 다중화/분리 장치 | |
JP2006115457A (ja) | マルチメディア編集情報をマルチメディアビットストリームに埋め込むシステムおよびその方法 | |
CN114339408A (zh) | 一种视频解码方法 | |
JP5161549B2 (ja) | 映像記録装置及び映像再生装置とその制御方法 | |
JP2009077110A (ja) | メディアファイル復旧装置及びメディアファイル復旧方法 | |
JP4719506B2 (ja) | 端末装置、コンテンツ再生方法、及びコンピュータプログラム | |
JP4262139B2 (ja) | 信号処理装置 | |
US20070003229A1 (en) | Content recording apparatus, content reproducing apparatus, and method for recording parameter information | |
JP4354402B2 (ja) | Avデータ変換装置および方法 | |
JP5954489B2 (ja) | 動画データ編集装置、動画データ編集方法、再生装置、再生方法及びプログラム | |
JP4254297B2 (ja) | 画像処理装置及びその方法並びにそれを用いた画像処理システム及びプログラム | |
US7505669B2 (en) | Content reproduction apparatus | |
JP4750759B2 (ja) | 映像音声再生装置 | |
JP5191294B2 (ja) | 情報処理装置及びプログラム | |
JP4736918B2 (ja) | デジタル再生装置または再生プログラム | |
KR101729765B1 (ko) | 실시간 리먹싱 시스템, 송신 방법 및 수신 방법 | |
JP2007142811A (ja) | データ受信装置 | |
KR101499194B1 (ko) | 적응형 스트리밍 방법 | |
JP4383721B2 (ja) | 多重化分離装置 | |
WO2021002303A1 (ja) | 情報処理装置、情報処理方法、再生処理装置及び再生処理方法 | |
JP3897783B2 (ja) | 画像処理装置及びその制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 | |
JP2008099027A (ja) | 信号処理装置、撮像装置、及び信号処理方法 | |
JP2013258655A (ja) | 情報処理装置、動画生成装置、制御方法、プログラム、及び修復方法、 |