JP2004282703A - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP2004282703A
JP2004282703A JP2003375223A JP2003375223A JP2004282703A JP 2004282703 A JP2004282703 A JP 2004282703A JP 2003375223 A JP2003375223 A JP 2003375223A JP 2003375223 A JP2003375223 A JP 2003375223A JP 2004282703 A JP2004282703 A JP 2004282703A
Authority
JP
Japan
Prior art keywords
data
information
sample
frame
stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003375223A
Other languages
English (en)
Inventor
Yasuyuki Kurosawa
康行 黒澤
Yoshinori Matsui
義徳 松井
Yoji Notoya
陽司 能登屋
Tadamasa Toma
正真 遠間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003375223A priority Critical patent/JP2004282703A/ja
Publication of JP2004282703A publication Critical patent/JP2004282703A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】アクセスデータのデータサイズを低減するとともに、データストリームの復号エラーが発生してもエラーの伝播を抑えることのできるデータ構造を提供することである。
【解決手段】 本発明によるデータ記録装置は、映像信号および音声信号の少なくとも一方の信号を受け取って符号化し、映像信号に対してはピクチャデータおよび音声信号に対してはフレームデータである再生用データを複数含む符号化ストリームを生成する。さらに各再生用データを特定するための拡張情報を生成するとともに、1以上の再生用データからなるグループ単位へのアクセスデータを含む付属情報も生成する。データ記録装置は、符号化ストリームおよび拡張情報を多重化してデータストリームを生成し、そのデータストリームおよび付属情報を記録媒体(131)に記録する。
【選択図】図11

Description

本発明は、映像および音声に関する動画ストリームを光ディスク等の記録媒体に記録し、記録媒体に記録された動画ストリームを再生する装置および方法等に関する。
ストリームデータを扱うことが可能であり、かつ、PCとの親和性の高いファイルフォーマットとして、MPEG4システム規格(ISO/IEC 14496−1)において規定されるMP4ファイルフォーマットが広く知られている。MPEG4システム規格では、MPEG2映像またはMPEG4映像を含むシステムストリームおよび付属情報のデータ構造がMP4ファイルとして規定されている。なお、MP4ファイルフォーマットはApple(登録商標)社のQuickTime(TM)ファイルフォーマットをベースにして規定され、近年、様々なPCアプリケーションでサポートされている点において将来性のあるフォーマットである。ベースにされたQuickTimeファイルフォーマットは、現在、PCアプリケーションの分野で映像および音声を扱うファイルフォーマットとして幅広く使われている。
図1は、MP4ファイル1の構成を示す。MP4ファイル1は、付属情報2と動画ストリームデータ3とを含んでいる。動画ストリームデータ3は、MPEG2映像またはMPEG4映像等の符号化されたビデオデータおよびオーディオデータである。これらは、1つ以上のフレームを単位として配置されている。付属情報2は、動画ストリームデータ3において規定される映像および音声の各フレームのデータサイズ(以下「フレームサイズ」と称する)、データの格納先アドレス、フレーム単位の再生時間等の情報である。データ再生装置は、付属情報2に基づいて動画ストリーム3の格納位置等を特定し、動画ストリームデータ3を読み出し、再生することができる。
図2は、MP4ファイルの他の構成を示す。MP4ファイルの付属情報2と動画ストリーム3とはそれぞれ別のファイルとして構成されている。このようなMP4ファイルでは、付属情報2は、動画ストリーム3の読み出しを制御するリンク情報Lを含んでいる。QuickTimeファイルフォーマット規格においても、図1および2に示すMP4規格と同じファイル構成をとることができる。以下では、MP4ファイルに関する説明は特に限定しない限りQuickTimeファイルに対しても同様に適用可能であって、MP4ファイルに限定されるものではない。
以下、図1に示すMP4ファイル1を例にして、MP4ファイル1のより具体的な構成を説明する。図3は、MP4ファイル1の具体的なデータ構造を示す。まず、動画ストリーム部分を説明する。MP4ファイル1では、動画ストリーム中のデータをサンプル(sample)およびチャンク(chunk)単位で管理する。「サンプル(sample)」とは、MP4ファイルにおけるストリーム管理の最小単位であり、例えば、ビデオフレームの符号化されたフレームデータおよびオーディオフレームの符号化されたフレームデータに対応する。図にはビデオフレームのフレームデータを表すビデオサンプル(Video Sample)4およびオーディオフレームのフレームデータを表すオーディオサンプル(Audio Sample)5を示す。一方、「チャンク(chunk)」とは、1以上のサンプルの集合を表す。チャンク内にサンプルが1つしか存在しないときでも、そのサンプルのみを含む1つのチャンクとしてデータが管理される。
付属情報では、ビデオサンプルに関する情報とオーディオサンプルに関する情報は、それぞれトラック単位で管理される。図3には、オーディオトラック6およびビデオトラック7を示している。トラック6および7には、各サンプルのサイズとその表示時間、各チャンクの先頭位置およびそのチャンクに含まれるサンプルの数等の情報が記述される。データ再生装置は、付属情報の各トラックを読み出して全てのサンプルへアクセスすることができ、また、サンプルおよびチャンク毎に読み出し等の制御が可能である。なお、MP4ファイルの付属情報中に規定される、各サンプルおよび各チャンクを特定するための格納位置情報は「アクセスデータ」とも称される。
しかしながら、アクセスデータが詳細に記述されているという理由から、付属情報全体のデータサイズ非常に大きく、動画ストリーム1時間当たり約1MByteに達してしまう。一方、例えば非特許文献1によれば、DVDビデオレコーディング規格のアクセスデータに必要なデータサイズは1時間当たり約70キロバイトである。すなわち、DVDビデオレコーディング規格のアクセスデータのサイズは、MP4ファイルの付属情報に含まれるアクセスデータのサイズの10分の1以下である。
図4は、従来の再生装置400の機能ブロックの構成を示す。再生装置400は、DVD−RAMディスク131に記録された動画ストリーム(ビデオストリーム、オーディオストリーム、またはビデオストリームとオーディオストリームとが多重されたストリーム等)を再生する。この動画ストリームは、例えば図1から図3を参照しながら説明したMP4ファイルを構成する動画データである。
再生装置400において行われる動画ストリームの再生処理を具体的に説明すると、まず、動画ストリームのストリームデータは、ピックアップ407および再生部404を介して、再生信号としてDVD−RAMディスク131から読み出される。一連の読み出し処理は、制御部(図示せず)による読み出し位置の指定、再生信号の生成等に基づいて行われる。そして、再生信号は動画ストリーム復号部403において映像信号と音声信号に復号され、映像信号出力部401および音声信号出力部402へと出力される。
また、DVD−RAMディスクにはプレイリスト情報が記録されている場合もある。再生装置400は、プレイリスト情報に従って所定の順序で動画ストリームを再生するプレイリスト再生機能を有する。ここで、「プレイリスト情報」とは、1以上の動画ストリームの一部または全部の再生順序を規定した情報である。プレイリスト情報は、ユーザが任意の位置および区間等を指定することによって記録装置において生成される。
先に説明したMP4ファイルフォーマットでは、プレイリスト情報によって指定される動画ストリームを特定するためのアクセスデータを付属情報に格納することができる。そのときには、再生装置400は、MP4ファイルの付属情報を予め読み出し、付属情報保持メモリ406に保持しておく。これにより、再生装置400はプレイリスト情報に従って動画ストリームを連続的に再生することができる。プレイリスト再生機能は、DVD−RAMディスク131にプレイリスト情報が記録されている場合に利用することができ、ランダムアクセスが可能なDVD−RAMディスクの特徴を活かした機能といえる。
さらに、DVD−RAMディスク131に格納されている全てのMP4ファイルの付属情報を、可能な限り早く付属情報保持メモリ406に格納するためには、付属情報はDVD−RAMディスク131上でまとめて配置されていることが望ましい。
図5は、MP4ファイル1が記録されるDVD−RAMディスク131の領域132、133を示す。DVD−RAMディスク131の記録領域は、管理情報領域132とAVデータ領域133とに分けて管理されている。通常は、MP4ファイル1の付属情報2は管理情報領域132に記録され、動画ストリーム3はAVストリーム領域133に記録される。DVD−RAMディスク131の管理情報領域132に、MP4ファイルの全ての付属情報をまとめて配置することにより、再生装置400は高速に全ての付属情報を読み出し、付属情報保持メモリ406に保存することができる。
ただし、付属情報のアクセスデータのデータサイズが非常に大きいため、MP4ファイルに対応する再生装置は大きい容量の付属情報保持メモリ406を備える必要がある。特に、DVD−RAMディスク131の管理情報領域132に多くの管理情報が記録されているときには、相当に大きな容量の付属情報保持メモリ406が必要になる。
そこで、MP4ファイルの付属情報のデータサイズを小さくするために、例えば、特許文献1に記載された技術が知られている。図6は、複数フレーム(例えばGOP(Group Of Picture)14)を1サンプルに対応させたMP4ファイル11のデータ構造を示す。付属情報12において、各ビデオサンプルを特定するためのアクセスデータが記述される点は先の例と同じであるが、各ビデオサンプルはGOP14を構成する複数のビデオフレームに対応付けられている。このようなデータ構造を採用することにより、ビデオサンプルの総数が減るので、アクセスデータのデータサイズを低減することができる。よって、動画ストリーム1時間当たりの付属情報を、先の例の約1/10に削減することが可能である。
MP4ファイルの付属情報のデータサイズを小さくするために、さらに他の技術が知られている。当該他の技術では、1チャンクを複数のフレームに対応させ、アクセスデータとして、サンプルのサイズではなくチャンクのサイズのみを格納する。これにより、付属情報サイズを削減することができる。
上述した技術では、映像データは以下のように配列され、映像ストリームを構成していた。図7(a)〜(d)は、MPEG2映像ストリームの階層化されたデータ構造を示す。図7(a)は階層構造の最上位であるシーケンスを示す。シーケンスは少なくとも1つ以上のGOPを格納する。図7(b)は各GOPのデータ構造を示す。図6の例ではビデオサンプルに対応する。GOPは1つ以上のフレームデータを含んでおり、例えば1つのIフレームとそのIフレームを参照フレームとして必要とするPフレームおよびBフレームが格納される。図7(c)は各フレーム(または「ピクチャ」ともいう)のデータ構造を示す。各フレームは、複数のスライスを含む。図7(d)は各スライスのデータ構造を示す。各スライスはMPEG2映像の符号化単位であるマクロブロックの集合であり、MPEG2映像ストリームはスライス単位でバイトアラインされている。
MPEG2ストリームの階層構造を構成するシーケンス、GOP、フレーム、スライスの先頭には、それぞれ32ビットのスタートコードが付される。具体的には、シーケンスの先頭にはシーケンスヘッダコード(Sequence Header Code)1301、GOPの先頭にはGOPスタートコード(GOP Start Code)1302、フレームの先頭にはピクチャスタートコード(Picture Start Code)1303、スライスの先頭にはスライススタートコード(Slice Start Code)1304がそれぞれ設けられる。
スタートコードは、24ビットのスタートコードプリフィックスと、8ビットのスタートコードIDで構成されている。スタートコードプリフィックスは全てのスタートコードで共通であるが、スタートコードIDはそれぞれの種類別に固有のIDが規定されている。また、スタートコードは、MPEG2映像ストリーム中で一意であることが規定されており、例えばストリーム中の32ビットの値がピクチャスタートコード1303の値に一致したら、即座にそれがフレームの先頭であると解釈することができる。以下では、ストリーム中で一意なコードを「ユニークコード」と称する。
図8(a)〜(d)は、MPEG2映像ストリームでエラーが発生したときのエラー伝播の様子を示している。MPEG2映像ストリームは可変長符号で構成されているため、例えば、スライススタートコード1304−1が付されたスライスデータにおいてエラーが発生すると、それ以降のストリームが正しく復号できなくなってしまう。しかし、次のスライススタートコード1304−2を検出してストリームの同期を取ることにより、以降のストリームの復号が可能になる。このようにMPEG2映像ストリームではユニークコードを用いることにより、復号時にストリーム中にエラーがあった場合のエラーの伝播範囲を抑制している。
日本国特開2001−94933号公報 「リライタブル/再記録可能なディスクのためのDVD規格 パート3 ビデオレコーディング規格 バージョン1.1」,DVDフォーラム発行,VR4,p.31−35
上述のユニークコードは、エラーからの回復に役立つ反面、符号化効率という観点からは冗長度を上げる要因になる。今後、符号化効率を上げるためにユニークコードを持たないストリームが登場することも予測され、そのようなストリームを従来の方式で記録すると、以下のような問題が発生する。
図9(a)〜(d)は、ユニークコードを持たない動画ストリームにおいて復号エラーが発生したときのエラー伝播の様子を示している。この動画ストリームは、図6に示すように複数フレーム(例えばGOP)を1サンプルに対応させてアクセスデータが設けられており、付属情報のデータサイズが削減されている。
各スライス、フレームおよびGOPにはユニークコードが存在しないため、スライス90において復号エラーが発生すると、そのエラーはスライス90の次のスライス91以降に伝播し、フレーム92内の最終スライスまで復号ができない。さらにエラーは、そのフレーム92の次のフレーム93にも伝播し、フレーム92を含むGOP94の最後のフレームまで復号ができなくなる。この説明から理解されるように、ユニークコードを持たないストリームで一度エラーが発生すると、ストリーム中の情報だけでは復号可能な状態に戻すことができないため、付属情報に格納しているアクセスデータによってデータ位置を特定できる次のGOP95の先頭までエラーが伝播してしまう。
続いて、1サンプルを複数のフレームによって構成することに起因するさらに別の問題を説明する。付属情報には、各サンプルのアクセスデータのみならず、各サンプルの復号時間、表示時間等の情報も記述されている。しかし、1サンプルを複数のフレームによって構成すると、付属情報には、動画ストリームの再生に必要な各フレームの復号時間、表示時間、フレーム単位のデータ等が記述されていない。そこで、再生装置はそれらの情報を計算によって求める必要がある。例えば、再生装置400は、あるサンプルの復号時間と次のサンプルの復号時間の差分値を求め、その差分値をサンプル内のフレーム数によって除算する。再生装置400は、得られた除算値を、1フレームあたりの復号時間の差分値として採用する。
しかし、動画ストリームによっては、再生装置400に予め設定された計算手順では各フレームの正しい復号時間、表示時間、フレーム単位のデータ等が取得できない場合がある。
ここで、図10を参照しながら、全てのフレームにおいて復号時間と表示開始時間が等しい場合の問題点を説明する。図10(a)は、フレームスキップが発生したサンプル(GOP)を模式的に示す。フレームスキップはフレーム2の後で発生している。各フレームの表示時間長を1秒とする。本来、このサンプルではフレーム1からフレーム5までの5枚のフレーム(表示時間長:5秒)から構成されるはずであるが、実際にサンプルに含まれるのはフレーム1からフレーム4までの4枚である。一方、付属情報に基づいて得られる1サンプルの表示時間差分値は5sである。その結果、再生装置400は、通常、各フレームの表示時間長を、5秒/4フレーム=1.25秒と計算する。図10(b)は、サンプルの表示時間長に対して均等に割り当てられた各フレームの表示時間長を示す。
ところが、この場合における正しい表示時間は、スキップされたフレームの表示時間を加味するためにフレーム2のみが2秒になり、他のフレームは1秒になる。図10(c)は、サンプルの表示時間長に対する各フレームの正しい表示時間長を示す。
このように、記録時において動画ストリームにフレームスキップ等が発生して、あるフレームとその次フレームとの表示時間の差分値が一定でなくなると、再生装置はサンプルに含まれるフレームの表示時間が正しく取得できないという問題が生じる。この問題は、1サンプルを複数のフレームによって構成して記録した結果、各フレームの表示時間長等が記録されないという記録装置の処理にも起因して発生しているといえる。
次に、サンプルに含まれるフレームが双方向予測を用いたフレームから構成されており、各フレームの復号時間と表示開始時間とが異なる場合の問題点を説明する。双方向予測に基づく符号化が行われると、各フレームの表示開始時間は、サンプルの復号時間または表示開始時間から算出することができない。その結果、先に説明した再生装置400の表示時間の計算方法では、各フレームの表示時間が取得できないという問題が生じる。
さらに、動画ストリームに各フレームの開始または終了を識別するための情報(ユニークコード)が含まれない場合には、フレームごとにそのデータを取得できないという問題も存在する。例えば、MPEG−4 Visualでは、動画ストリーム内のスタートコードと呼ばれる識別子によってフレームの境界を検出できるが、MPEG−4 AVC(Advanced Video Coding)では、MP4ファイルに格納する際には、フレーム境界を識別するための情報が動画ストリーム内のフレームデータに含まれない。このため、MPEG−4 AVCで符号化された2枚以上のフレームを1サンプルに格納すると、フレームの境界が検出できず、各フレームのデータを取得することができない。
本発明の目的は、アクセスデータのデータサイズを低減するとともに、動画ストリームの復号エラーが発生してもエラーの伝播を抑えることのできるデータ構造を提供することである。本発明の他の目的は、動画ストリームのフレームを複数まとめて1サンプルとして扱う際に、サンプル毎の復号時間、表示時間、フレーム単位のデータを確実に取得できるようにすることである。
本発明によるデータ記録装置は、映像信号および音声信号の少なくとも一方の信号を受け取る受信部と、前記信号を所定の符号化形式で符号化して、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリームを生成するストリーム生成部と、各再生用データを特定するための拡張情報を生成する拡張情報生成部と、1以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成する付属情報生成部と、前記符号化ストリームおよび前記拡張情報を多重化してデータストリームを生成する多重化部と、前記データストリームおよび前記付属情報を記録媒体に記録する記録部とを有する。
前記付属情報生成部は、さらに、複数の再生用データからなるグループ単位にアクセスするためのアクセスデータを生成してもよい。
前記付属情報生成部は、前記グループ単位を第1サンプルとしたときの前記第1サンプルごとのアクセスデータを生成し、かつ、前記拡張情報を第2サンプルとしたときの前記第2サンプルごとのアクセスデータを生成してもよい。
前記多重化部は、前記符号化ストリームおよび前記拡張情報を、前記第1サンプルごとおよび前記第2サンプルごとに多重化して前記データストリームを生成してもよい。
前記付属情報生成部は、前記グループ単位と、前記グループに含まれる1以上の再生用データに関する前記拡張情報とを1サンプルとしたときの、前記サンプルごとのアクセスデータを生成してもよい。
前記多重化部は、前記符号化ストリームおよび前記拡張情報を、前記サンプルごとに多重化して前記データストリームを生成してもよい。
前記受信部は、映像信号および音声信号を受け取り、前記ストリーム生成部は、前記映像信号および前記音声信号をそれぞれ所定の符号化形式で符号化して、複数の映像のピクチャデータおよび複数の音声フレームのフレームデータを含む符号化ストリームを生成し、前記拡張情報生成部は、少なくとも各ピクチャデータを特定するための拡張情報を生成し、前記付属情報生成部は、前記ピクチャデータ、前記複数の音声フレームのフレームデータおよび前記拡張情報の各々について、少なくとも2以上のピクチャデータからなるグループ単位にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成してもよい。
前記拡張情報生成部は、さらに前記複数の音声フレームの各フレームデータを特定するための拡張情報を生成してもよい。
前記記録部は、前記データストリームおよび前記付属情報を1つのデータファイルとして前記記録媒体に記録してもよい。
前記拡張情報生成部は、前記各再生用データのデータサイズ、表示時間、復号時間を示す情報の少なくとも1つを前記拡張情報として生成してもよい。
前記付属情報生成部は、前記拡張情報の既定値をさらに含む前記付属情報を生成し、前記拡張情報生成部は、前記既定値と異なる値を有する前記拡張情報を生成してもよい。
前記拡張情報生成部は、前記映像信号の各ピクチャデータを復号するために参照される参照先ピクチャデータを特定するための拡張情報を生成してもよい。
前記付属情報生成部は、リンク情報をさらに含む前記付属情報を生成し、前記記録部は、前記前記データストリームを、前記リンク情報によって指定される第1データファイルとして前記記録媒体に記録し、前記付属情報を第2データファイルとして前記記録媒体に記録してもよい。
本発明によるデータ記録方法は、映像信号および音声信号の少なくとも一方の信号を受け取るステップと、前記信号を所定の符号化形式で符号化して、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリームを生成するステップと、各再生用データを特定するための拡張情報を生成するステップと、1以上の再生用データからなるグループ単位 にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成するステップと、前記符号化ストリームおよび前記拡張情報を多重化してデータストリームを生成するステップと、前記データストリームおよび前記付属情報を記録媒体に記録するステップとを包含する。
前記付属情報を生成するステップは、さらに、複数の再生用データからなるグループ単位にアクセスするためのアクセスデータを生成してもよい。
前記付属情報を生成するステップは、前記グループ単位を第1サンプルとしたときの前記第1サンプルごとのアクセスデータを生成し、かつ、前記拡張情報を第2サンプルとしたときの前記第2サンプルごとのアクセスデータを生成してもよい。
前記データストリームを生成するステップは、前記符号化ストリームおよび前記拡張情報を、前記第1サンプルごとおよび前記第2サンプルごとに多重化して前記データストリームを生成してもよい。
前記付属情報を生成するステップは、前記グループ単位と、前記グループに含まれる1以上の再生用データに関する前記拡張情報とを1サンプルとしたときの、前記サンプルごとのアクセスデータを生成してもよい。
前記データストリームを生成するステップは、前記符号化ストリームおよび前記拡張情報を、前記サンプルごとに多重化して前記データストリームを生成してもよい。
前記受信するステップは、映像信号および音声信号を受け取り、前記符号化ストリームを生成するステップは、前記映像信号および前記音声信号をそれぞれ所定の符号化形式で符号化して、複数の映像のピクチャデータおよび複数の音声フレームのフレームデータを含む符号化ストリームを生成し、前記拡張情報を生成するステップは、少なくとも各ピクチャデータを特定するための拡張情報を生成し、前記付属情報を生成するステップは、前記ピクチャデータ、前記複数の音声フレームのフレームデータおよび前記拡張情報の各々について、少なくとも2以上のピクチャデータからなるグループ単位にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成してもよい。
前記拡張情報を生成するステップは、さらに前記複数の音声フレームの各フレームデータを特定するための拡張情報を生成してもよい。
前記記録するステップは、前記データストリームおよび前記付属情報を1つのデータファイルとして前記記録媒体に記録してもよい。
前記拡張情報を生成するステップは、前記各再生用データのデータサイズ、表示時間、復号時間を示す情報の少なくとも1つを前記拡張情報として生成してもよい。
前記付属情報を生成するステップは、前記拡張情報の既定値をさらに含む前記付属情報を生成し、前記拡張情報を生成するステップは、前記既定値と異なる値を有する前記拡張情報を生成してもよい。
前記拡張情報を生成するステップは、前記映像信号の各ピクチャデータを復号するために参照される参照先ピクチャデータを特定するための拡張情報を生成してもよい。
前記付属情報を生成するステップは、リンク情報をさらに含む前記付属情報を生成し、前記記録するステップは、前記前記データストリームを、前記リンク情報によって指定される第1データファイルとして前記記録媒体に記録し、前記付属情報を第2データファイルとして前記記録媒体に記録してもよい。
本発明によるデータ再生装置は、記録媒体に記録されたデータを再生する。
前記記録媒体には、データストリームおよび付属情報が記録されている。前記データストリームは、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリーム、および、各再生用データを特定するための拡張情報が多重化されている。前記付属情報は、1以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含んでいる。前記データ再生装置は、前記記録媒体から前記データストリームおよび前記付属情報を読み出して、前記データストリームを前記符号化ストリームと前記拡張情報とに分離する再生部と、前記符号化ストリームを復号化するストリーム復号部とを有する。前記ストリーム復号部は、前記付属情報のアクセスデータを解析して前記グループ単位を特定し、前記拡張情報に基づいて、前記グループ単位の各ピクチャデータを特定する解析部と、特定された前記各再生用データを復号する復号部とを備えている。
本発明によるデータ再生方法は、記録媒体に記録されたデータを再生する。前記記録媒体には、データストリームおよび付属情報が記録されている。前記データストリームは、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリーム、および、各再生用データを特定するための拡張情報が多重化されている。前記付属情報は、1以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含んでいる。前記データ再生方法は、前記記録媒体から前記データストリームおよび前記付属情報を読み出して、前記データストリームを前記符号化ストリームと前記拡張情報とに分離するステップと、前記符号化ストリームを復号化するステップとを有する。前記符号化ストリームを復号化するステップは、前記付属情報のアクセスデータを解析して前記グループ単位を特定するステップと、前記拡張情報に基づいて、前記グループ単位の各再生用データを特定するステップと、特定された前記各再生用データを復号するステップとを包含している。
本発明によるデータ構造は、データ再生装置の再生部によって分離されるデータストリームおよび付属情報を規定する。前記データストリームは、前記データ再生装置のストリーム復号部によって復号化される符号化ストリーム、および、拡張情報が多重化されている。前記符号化ストリームは、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含み、前記拡張情報は各再生用データを特定するための情報である。前記付属情報は、前記データ処理装置の解析部によって解析され、1以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含む。
本発明による記録媒体は、データ再生装置の再生部によって分離されるデータストリームおよび付属情報が記録されている。前記データストリームは、前記データ再生装置のストリーム復号部によって復号化される符号化ストリーム、および、拡張情報が多重化されている。前記符号化ストリームは、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含み、前記拡張情報は各再生用データを特定するための情報である。前記付属情報は、前記データ処理装置の解析部によって解析され、1以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含む。
本発明によれば、再生用データを複数含む符号化ストリームおよび各再生用データを特定するための拡張情報を多重化したデータストリームとともに、1以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含む付属情報を記録媒体に記録する。これにより、エラーが発生した場合でもエラーの伝播を抑制できるデータ構造が提供される。さらに、2以上の再生用データからなるグループ単位(サンプル単位)を構成したときには、動画ストリーム中の映像ストリームの1フレームと1ビデオサンプルを対応させた場合と比較して、付属情報のサイズを小さくすることができる。
以下、添付の図面を参照しながら、本発明によるデータ処理装置の実施形態を説明する。
(実施形態1)
図11は、本実施形態によるデータ処理装置10の機能ブロックの構成を示す。本明細書では、データ処理装置10はMP4ファイルの記録機能と再生機能の両方を有するとして説明する。MP4ファイルは、MPEG4システム規格(ISO/IEC 14496−1)形式のファイルであるとする。データ処理装置10は、MP4ファイルを生成して記録媒体131に書き込むことができ、かつ、記録媒体131に書き込まれたMP4ストリームを再生することができる。記録媒体131は例えばDVD−RAMディスクである(以下、「DVD−RAMディスク131」と称する)。データ処理装置10は、例えばDVDレコーダとして実現される。なお、MP4ファイルのデータ構造は、図12を参照しながら後に説明する。
以下、データ処理装置10の記録機能に関連する構成要素および動作を説明し、その後、再生機能に関連する構成要素および動作を説明する。
まず、データ処理装置10のMP4ファイルの記録機能を説明する。この機能に関連する構成要素として、データ処理装置10は、映像信号受信部100と、動画ストリーム生成部101と、音声信号受信部102と、付属情報生成部103と、拡張情報生成部104と、多重化部105と、記録部120と、光ピックアップ130とを備えている。
映像信号受信部100は映像信号入力端子であり、映像データを表す映像信号を受け取る。音声信号受信部102は音声信号入力端子であり、音声データを表す音声信号を受け取る。例えば、映像信号受信部100および音声信号受信部102は、放送電波を受信するチューナ部(図示せず)の映像出力部および音声出力部と接続され、それぞれから映像信号および音声信号を受け取る。
動画ストリーム生成部101は、映像信号および音声信号を受け取り、例えばMPEG2や、MPEG4(MPEG−4 Visual、MPEG−4 AVC(Advanced Video Coding)等の規格に基づいた符号化を行い、動画ストリーム(符号化ストリーム)を生成する。
付属情報生成部103は、MP4ファイル規格の付属情報を生成する。付属情報は、符号化ストリームのサンプル単位にアクセスするためのアクセスデータを含む。「サンプル」とは、付属情報における最小管理単位であり、サンプルごとのデータサイズ、復号時間、再生時間等の情報を記録している。1サンプルは、ランダムにアクセスすることが可能なデータ単位である。付属情報のより詳しい内容は後述する。
拡張情報生成部104は、サンプル内の各フレームデータを特定するための属性を示す拡張情報を生成する。ここでいう「属性」とは、例えば各フレームデータのデータサイズ、復号時間、表示時間を表す。サンプルは、ビデオフレームのフレームデータを表すビデオサンプル(Video Sample)であってもよいし、オーディオフレームのフレームデータを表すオーディオサンプル(Audio Sample)であってもよい。
多重化部105は、符号化ストリームおよび拡張情報を多重化して動画ストリームを生成する。このストリームには、映像ストリームおよび/または音声ストリーム、および、拡張情報生成部104で生成された拡張情報が格納されている。
記録部120は、ピックアップ130を制御し、DVD-RAMディスク131の特定の位置(アドレス)にデータを記録する。より具体的には、記録部120は、多重化部105において生成された動画ストリームをMP4ファイルとしてAVデータ領域133に記録し、付属情報生成部103において生成された付属情報をMP4ファイルとして管理情報領域132に記録する。
なお、記録部120は、動画ストリームおよび付属情報を別個のMP4ファイルではなく、1つのMP4ファイルにしてDVD−RAMディスク131に記録してもよい。また、記録部120は付属情報をAVデータ領域133に記録してもよい。
図12は、データ処理装置10によって記録されるMP4ファイル21の構成を示す。MP4ファイル21は、付属情報22および動画ストリーム23を含んでいる。
付属情報22は、動画ストリーム23内の所定数のビデオフレームデータおよび/またはオーディオフレームデータのまとまり(集合)を1サンプルとしたときの、各サンプルのサイズ、格納先アドレス、再生時間等の情報である。
動画ストリーム23は、複数のビデオサンプル(video sample)および複数のビデオサイズサンプル(video size sample)を含む。
ビデオサンプルは、複数のビデオフレームデータの集合として付属情報22によって規定されている。本実施形態では例として1ビデオサンプル(video sample)を1つのグループオブピクチャ(Group Of Picture;GOP)25に一致させているが、GOP構造の有無とは無関係に、所定のフレームデータの集合を1ビデオサンプルにしてもよい。
ビデオサイズサンプルは、対応するビデオサンプルに対する拡張情報を含んでいる。図12では、0番目のビデオサイズサンプル24に規定される拡張情報として、ビデオサンプル#0の各ビデオフレーム#0〜#Mのフレームサイズが記述されている。
なお、図12では、ビデオサイズサンプルに続いてそれに対応するビデオサンプルが記録されているが、これは例であり、他の配置をとることもできる。また、ここでは1サンプル=1チャンク(図3)としているため、特にチャンクには言及しない。しかし、従来のMP4ファイルのような複数のサンプルを1チャンクとして取り扱うことは可能である。例えば、チャンク内のサンプルは復号時間に関して昇順に、かつ、連続的に格納することができる。このときでも、本実施形態によるデータ構造を有するMP4ファイルの記録および再生は制限されることはない。
本実施形態の主要な特徴の一つは、複数のビデオフレームデータを1ビデオサンプルとして管理するとともに、サンプル内の各フレームデータを特定するための属性(フレームサイズ、表示持続期間等)を示す拡張情報を、別個のサンプルとして動画ストリーム中に設けたことにある。付属情報22には、ビデオサンプルのアクセスデータとともに、拡張情報を記述したサンプルも個別にアクセスデータが付属情報22において管理され、それぞれに対するランダムアクセスが可能になる。
以下、ビデオサンプルおよびビデオサイズサンプルの関係をより詳しく説明する。図12において動画ストリームの最初のビデオサンプル(video sample#0)には(M+1)個のビデオフレームデータが格納されている。動画ストリームの最初のビデオサイズサンプル(video size sample#0)には、最初のビデオサンプルと同じ数である(M+1)個のフレームサイズの情報が格納されている。同様に動画ストリームの先頭から数えて(N+1)番目のビデオサンプル(video sample#N)には(L+1)個のビデオフレームデータが格納されている。動画ストリームの先頭から数えて(N+1)番目のビデオサイズサンプル(video size sample#N)には(L+1)個のフレームサイズの情報が格納されている。
上述のように、動画ストリーム中にビデオサンプルとビデオサイズサンプルを同じ数だけ配置し、それぞれビデオフレームに対するフレームデータとフレームサイズ情報とを同じ数だけ格納することにより、フレームサイズ情報とそれに対応するビデオフレームの関連付けが容易に実現できる。また、付属情報のビデオトラックには各ビデオサンプルに対するアクセスデータが格納され、ビデオサイズトラックには各ビデオサイズサンプルに対するアクセスデータが格納される。従って、付属情報とビデオサイズサンプルに含まれる拡張情報とを利用して、再生時に特定のビデオフレームのフレームサイズ情報を動画ストリームから取得することができる。
なお、説明を簡単にするため映像に関する説明に限っているが、サンプル内にはオーディオフレームデータを格納することもできる。このときも同様に、所定数のオーディオフレームデータの集合を1オーディオサンプルとして取り扱えばよい。付属情報22には、各オーディオサンプルのアクセスデータを記述したオーディオトラックと、各オーディオサイズサンプルに対するアクセスデータを規定するオーディオサイズトラックとが記述される。オーディオサイズサンプルには、各オーディオフレームのフレームサイズが記述される。
次に、図13を参照しながら、データ処理装置10の記録動作を説明する。以下の記録動作によって、上述のデータ構造を有するMP4ファイル21がDVD−RAMディスク131に記録される。
図13は、データ処理装置10の記録処理の手順を示す。まず、ステップS11において、映像信号が受信されると、動画ストリーム生成部101は映像の各フレームを所定の符号化手順によって符号化する。ステップS12では、拡張情報生成部104は、符号化された各フレームのフレームサイズを示す拡張情報を生成する。符号化は動画ストリーム生成部101によって実行されるため、拡張情報生成部104は、動画ストリーム生成部101の符号化結果を利用して、各フレームサイズ等の情報を拡張情報として生成する。
ステップS13では、付属情報生成部103が、1GOPを構成するフレームデータを1ビデオサンプルに対応させることを決定すると、その決定に基づいて、多重化部105はビデオサンプル単位の拡張情報(ビデオサイズサンプル)を取得する。そしてステップS14において、多重化部105は、各ビデオサンプルおよび対応する各拡張情報を多重化して動画ストリームデータを生成する。次に、付属情報生成部103は、各ビデオサイズサンプルへのアクセスデータと、各ビデオサンプルへのアクセスデータとを含む付属情報を生成する。そして、記録部120は、符号化ストリームデータおよび付属情報に基づいて動画ストリームを生成し、MP4ファイルとしてDVD−RAMディスク131に記録する。
再び図11を参照しながら、次に、データ処理装置10の再生機能を説明する。DVD−RAMディスク131には、上述したMP4ファイル21が記録されているとする。データ処理装置10は、ユーザの指示により、DVD−RAMディスク131に記録された動画ストリームを再生し、復号化することができる。
再生機能に関連する構成要素として、データ処理装置10は、映像信号出力部110と、動画ストリーム復号部111と、音声信号出力部112と、再生部113と、付属情報保持メモリ118と、ピックアップ130とを備えている。
まず、再生部113はピックアップ130の動作を制御し、DVD-RAMディスク131の管理情報領域132から付属情報22を読み出して付属情報を取得する。再生部113は、取得した付属情報22を付属情報保持メモリ118に出力して保持させる。また、再生部113は、DVD−RAMディスク131のAVデータ領域133からビデオサンプルと拡張情報(ビデオサイズサンプル)とを含む動画ストリーム23を読み出す。なお、データ処理装置10はネットワークを介して動画ストリームを取得することも可能である。このとき、図11におけるピックアップ130と再生部113とを結ぶ信号線がネットワーク回線に相当する。再生部113は、遠隔のサーバの記録媒体131に記録された動画ストリーム23を、ネットワーク回線という伝送媒体を介して取得し、データ処理装置10において再生することができる。
動画ストリーム復号部111は、動画ストリーム23を受け取って、付属情報保持メモリ118に保持されている付属情報22のビデオサイズトラックを参照して、各サンプルのアクセスデータ、データサイズ、復号時間、再生時間等の情報を取得する。そして動画ストリーム復号部111は、それらの情報に基づいて動画ストリームから各ビデオサンプルおよび各ビデオサイズサンプルを抽出する。さらに、付属情報にオーディオトラックが存在する場合は、そのアクセスデータを使用して動画ストリームからオーディオサンプルを抽出する。そして、動画ストリーム復号部111は映像データおよび音声データを復号する。
映像信号出力部110は映像信号出力端子であり、復号化された映像データを映像信号として出力する。音声信号出力部112は音声信号出力端子であり、復号化された音声データを音声信号として出力する。
データ処理装置10は、DVD−RAMディスク131に記録されたMP4ファイルを再生することができる。以下、データ処理装置10の基本的な再生処理を説明する。再生の開始前に、再生部113は、DVD−RAMディスク131の管理情報領域132に記録された付属情報を読み出し、付属情報保持メモリ118に格納する。次に、再生部113は、付属情報保持メモリ118に格納された付属情報を参照しながら、DVD−RAMディスク131のAVデータ領域133からピックアップ130を介して動画ストリームを読み出す。付属情報には動画ストリームの各サンプルにアクセスするためのアクセスデータが格納されているので、そのアクセスデータに基づいて、再生部113は任意のサンプルにアクセスできる。動画ストリーム復号部111は、読み出された動画ストリームを映像信号および/または音声信号に復号し、映像信号出力部110および/または音声信号出力部112へと出力する。
次に、図14を参照しながら、データ処理装置10のより具体的な再生処理を説明する。上述のデータ構造を採用した利点を説明するため、動画ストリーム中に復号エラーが発生した場合を想定する。
図14(a)〜(d)は、MP4ファイル21を構成する動画ストリームにおいて、復号エラーが発生したときのエラー伝播の様子を示している。なお、この動画ストリームは、ストリーム中で一意なコード(ユニークコード)を持っていなくてもよい。図12の各ビデオサンプルは、図14(a)のシーケンス中の各GOPに対応する。付属情報22のビデオトラックには、図14(a)の各GOPに対するアクセスデータが格納されている。
いま、動画ストリーム復号部111が、ビデオサンプル#X(video sample ♯X)中のビデオフレーム#Y(video frame ♯Y)を再生している途中でエラーを検出したとする。すると動画ストリーム復号部111は、再生部113にエラー発生を通知する。
再生部113は、付属情報保持メモリ118に格納された付属情報22のビデオサイズトラックのアクセスデータを読み出して、DVD−RAMディスク131のAVデータ領域133から動画ストリーム中のビデオサイズサンプル#X(video size sample♯X)を読み出す。そして、動画ストリーム復号部111は読み出されたビデオサイズサンプル#Xを参照して、そのサンプル#Xの先頭フレーム#0からエラー発生フレーム#Yまでのフレームサイズ情報を抽出して、次のビデオフレーム#(Y+1)(video frame ♯(Y+1))の先頭位置を特定してその位置から復号を再開する。次のY番目のビデオフレームの先頭位置は、先頭フレーム#0からエラー発生フレーム#Yまでのフレームサイズの和を計算することによって得られる。その後、再生部113は、格納位置を特定した次のビデオフレーム#(Y+1)(video frame ♯(Y+1))のフレームデータから順次動画ストリームデータを読み出し、再生を継続する。
上述のように、ビデオサイズサンプルに各フレームデータのサイズが格納されているので、ビデオサイズサンプルを参照すると映像ストリームの各フレームのサイズを取得することができる。これにより、ユニークコードを持たない映像ストリーム中にエラーが発生しても、その次のフレームの先頭位置を容易に特定することが可能になり、それによりエラー伝播の範囲をエラーが存在するフレーム内で完結させることができる。
なお、本実施形態による再生動作は、エラーが発生するか否かにかかわらず適用可能である。例えば、複数のGOPを1サンプルとして管理している場合であっても、各フレームへのランダムアクセスが可能になる。各フレームの格納位置は、再生部113が先頭から所望のフレームの直前のフレームまでのフレームサイズを合計することによって特定することができる。なお、そのとき、図12に示すようにビデオサンプルとそれに対応するビデオサイズサンプルとが連続的に配置されていると、ピックアップ130の余分なシーク動作を減らすことが可能である。その理由は、再生部113がビデオトラックおよびビデオサイズトラック両方のアクセスデータを参照して、連続配置されたビデオサンプルとビデオサイズサンプルをDVD−RAMディスク131から一度に読み出すことができるからである。
本実施形態によれば、動画ストリーム中の映像ストリームの1フレームをビデオサンプルに対応させた場合と比較して付属情報のデータサイズを小さくすることが可能である。これによりMP4ファイルを再生する際にも、付属情報を保持するためのメモリサイズの増大を防ぐことが可能になる。例えば、GOPとビデオサンプルを対応させ、さらにビデオサイズサンプルを含む動画ストリームを1時間記録したときの付属情報(ビデオトラックおよびビデオサイズトラックを含む)のデータサイズは約100キロバイト程度である。これに対し、1フレームとビデオサンプルを対応させて動画ストリームを1時間記録したときの付属情報のデータサイズは約1メガバイトである。よって本実施形態によれば、付属情報を保持するためのメモリサイズを大幅に低減できる。換言すれば、本実施形態によれば、同じメモリサイズに従来の10倍程度の付属情報を格納する余裕ができる。
なお、図12に示すMP4ファイル21のデータ構造は、本実施形態による独自の構造を規定している。しかし、本実施形態によるデータ構造に対応していない再生装置であっても、ビデオトラックおよびビデオサンプルは通常通り再生可能である。その理由は、MPEG4システム規格では付属情報中の各トラックの先頭にそのトラックのデータサイズを記述することが規定されているため、処理ができないビデオサイズトラックを読み飛ばすことができるからである。
本実施形態による処理は、上述の動画ストリームが、フレーム間圧縮を用いない符号化方式によって符号化された映像ストリームを含んでいても適用可能である。ただし、1つのビデオサンプルに対応させるフレームの数が少なくなるほど、付属情報のビデオトラックで保持すべきビデオサンプルのアクセスデータ数が増加するので、付属情報のデータサイズが大きくなる点に留意が必要である。
上述の説明では、各ビデオフレームのフレームサイズの情報を格納したビデオサイズサンプルが拡張情報であるとしたが、拡張情報はこれに限られない。図15は、各ビデオフレームを構成するスライスの数および各スライスのデータサイズの情報を記述した拡張情報の例を示す。このように構成することにより、上述と同様の演算によって各スライスのデータ格納位置が特定できるので、任意のスライスにアクセスすることが可能になるとともに、エラーが発生したときのエラー伝播の影響をより小さくすることができる。図16(a)〜(d)は、動画ストリームにおいて復号エラーが発生したときの、エラー伝播がスライス内で収まる様子を示す。スライスのデータサイズの情報を記述した拡張情報を規定することにより、エラーが発生してもその次のスライスから復号が可能になるので、エラーの伝播をスライス内に抑えることができる。
また、図17は、各ビデオフレームの表示持続時間を記述した拡張情報の例を示す。動画ストリーム33は、ビデオデュレーションサンプル36およびビデオサンプル37を複数含んでいる。ビデオデュレーションサンプル36は、対応するビデオサンプルの各フレームの表示時間情報(frame duration)を拡張情報として格納している。ビデオデュレーションサンプル36のアクセスデータは付属情報32のビデオデュレーショントラック34において管理されている。ビデオサンプル37のアクセスデータが付属情報32のビデオトラック35において管理される点は先の例と同じである。
図17に示す構成を採用する利点は以下のとおりである。まず、動画ストリームの記録時にフレームスキップが発生していないときは、ビデオデュレーションサンプルにはすべてのフレームに対して同じ時間ΔTを表す情報が記述される。ここで、図18(a)に示すような1フレーム分のフレームスキップが発生した場合を考える。
図18(a)は、フレームスキップが発生したビデオフレーム群を模式的に示す。フレームスキップが発生したときは、その直前のフレームの表示時間を2倍に指定する表示時間情報を生成する。すなわち図18(a)の例では、その直前のフレーム#4(frame♯4)の表示時間をΔ2Tに設定し、他のフレームの表示時間はΔTに設定するように、ビデオデュレーションサンプル36の各フレームデュレーションの値が記述される。その結果、この動画ストリームを再生する時には、フレーム#4を除いては記録時と同じタイミングで各フレームを表示することができる。一方、図18(b)は表示時間をすべてのフレームで均一に設定したときのビデオフレーム群を模式的に示す。図18(b)に示すように各フレームの表示時間を設定すると、動画ストリームの各フレームは、記録時とは違うタイミングで表示されるという不具合が生じる。
なお、各フレームの表示時間情報および各フレームサイズ情報を同じサンプルに格納して、付属情報内の1つのトラックのアクセスデータから参照する構成をとることもできる。このように構成すると、アクセスデータサイズを増加することなく両方の情報を管理することができる。
本実施形態では、ビデオサンプル内の映像フレーム数とそれに対応するビデオサイズサンプル内のフレームサイズ情報数が同じであるとして説明したが、同じでなくてもよい。それらの数が異なる場合でも、ビデオサンプルとビデオサイズサンプルとの対応関係を示す情報が付属情報等に格納され、最終的に特定のビデオフレームとそのフレームサイズ情報とを対応させることが可能であればよい。
なお、本実施形態では、MP4ファイル形式を例に説明を行ったが、本発明はこれに限定するものではなく、動画ストリームと付属情報から構成され、付属情報に動画ストリーム中の映像ストリームへのアクセスデータが格納されているような構成であれば他のファイル形式にも適用可能である。他のファイル形式の一例としては、MP4ファイル形式のベースとなったクイックタイムファイル形式が該当する。
本実施の形態では、記録媒体がDVD−RAMディスクであるとして説明したが、特にこれに限定されることはない。例えば記録媒体として、MO、DVD−R、DVD−RW、DVD+RW、CD−R、CD−RW等の光記録媒体やハードディスク等の磁性記録媒体、半導体メモリ等の半導体記録媒体であってもよい。
(実施形態2)
上述の第1の実施形態では、フレームサイズ等に関する情報をビデオサンプルとは独立した他のサンプル(ビデオサイズサンプル)に格納するとした。
本発明の第2の実施形態以降では、フレームサイズ等に関する情報をビデオサンプル内に格納する例を説明する。以下では、まず本実施形態に関連するデータ構造を説明し、その後、本実施形態によるデータ処理装置の構成および動作を説明する。
本発明の背景技術としても説明したように、近年、通信ネットワークの大容量化および伝送技術の進歩により、インターネット上でのPC向け動画配信サービスが普及してきている。さらに、無線端末上での動画配信に関しても、無線網における受信端末の規格を定める国際標準化団体である3GPP(Third Generation Partnership Project)における規格としてTS26.234(Transparent end-to-end packet switched streaming service)が定められるなど、携帯端末においても動画配信サービスの拡大が見込まれる。
音声、動画、静止画およびテキストなどのメディアデータを蓄積し、配信する際には、メディアデータの再生に必要なヘッダ情報とメディアデータとを多重化することが一般的である。第1の実施形態に関連して言及したMP4は、多重化を実現するための多重化ファイルフォーマットであり、ISO/IEC JTC1/SC29/WG 11 (International Standardisation Organization/International Engineering Consortium)において標準化されている。そして、3GPPのTS26.234においても採用されていることから、今後普及していくと考えられる。
ここで、MP4ファイルのデータ構造を説明する。MP4ファイルでは、ヘッダ情報やメディアデータはボックス(Box)と呼ばれるオブジェクト単位で格納される。図19は、ボックス40のデータ構造を示す。ボックス40は、サイズ(size)フィールド41、タイプ(type)フィールド42、バージョン(version)フィールド43、フラグ(flags)フィールド44およびデータフィールド45を有する。各フィールドに格納される情報の内容は以下のとおりである。
サイズ(size)フィールド:サイズフィールドも含めたボックス全体のサイズ
タイプ(type)フィールド:ボックスの識別子であり、通常はアルファベット4文字で表される。フィールド長は4バイトであり、連続する4バイト分のデータがタイプフィールドの識別子と一致するか否かを判定することにより、MP4ファイル内でボックスを検索することが可能になる。
バージョン(version)フィールド:ボックスのバージョン番号
フラグ(flags)フィールド:ボックス毎に設定されるフラグ情報
データ:ヘッダ情報、メディアデータ等
なお、バージョンフィールドおよびフラグフィールドは必須ではないため、これらのフィールドが存在しないボックスも存在する。
本明細書では、ボックスの参照にはタイプフィールドの識別子を使用するとし、例えばタイプが"moov"であるボックスは、"moov"または"ボックスmoov"などと称する。
MP4では、ファイル内に含まれることが必須である基本部に加えて拡張部を使用することができる。
以下では、まず基本部の構造を説明する。図20(a)は、基本部50のデータ構造を示す。MP4ファイルは、基本ヘッダであるftyp51およびmoov52と、メディアデータを格納するmdat53の3つの基本ボックスから構成される。ftyp51はMP4ファイルの先頭に配置される。ftyp51は、MP4ファイルを識別するための情報を含む。mdat53には、サンプルと呼ばれる単位でメディアデータが格納される。サンプルとは、MP4でメディアデータを扱う際の最小単位であり、1つ以上のオーディオフレームまたはMPEG−4 VisualのVOP(Video Object Plane)に相当する。
MP4ファイルフォーマットはオーディオまたはビデオフレームのデータをmdat53に格納する際の形式を規定しており、フレームデータはそれらの形式に従って格納される。mdat53に含まれる各メディアのデータはトラックと呼ばれ、各トラックはトラックIDにより識別される。
図20(b)は、moov52のデータ構造を示す。MP4ファイルではmoovは必須のボックスであり、その個数は1つである。moov52内ではボックスが階層的に配置されており、mdat53に含まれるサンプルのヘッダ情報が格納される。このヘッダ情報は、実施形態1における付属情報に対応する。換言すれば、moov52には、実施形態1による付属情報が格納される。
ファイル全体に共通なヘッダ情報はmvhdに格納される。また、オーディオ、ビデオなど各トラックのヘッダ情報はそれぞれ別々のtrak53に格納される。なお、trak53がどのトラックに対する情報を含むかは、trak53内のボックスtkhd(図示せず)に示されるトラックIDによって識別される。MP4ファイルにおいて拡張部が使用される際には、mvexが存在する。mvexは拡張部使用時にのみ存在し、基本部50のあとに拡張部が格納されていることを示す。mvexにはtrexが含まれ、拡張部におけるヘッダ情報のデフォルト値をトラック毎に設定する。
図21(a)は、trak53のデータ構造を示す。trak53はstbl54を含み、さらにstbl54はボックスstts55、stsd56、stsc57を含む。stbl54内のボックスには、サンプルの復号時間、表示開始時間、サイズ等の情報が格納される。
まず、サンプルの復号時間はstts55に格納される。stts55には、連続する2つのサンプル間における復号時間の差分値が格納されている。よってこの差分値を積算することにより、各サンプルの復号時間を取得することができる。なお、復号時間と表示開始時間が異なる際には、ボックスctts(図示せず)に復号時間と表示開始時間との差分の情報が格納される。例えば、双方向予測を用いて符号化されたフレームでは復号時間と表示開始時間が異なるため、表示開始時間を求めるためにcttsが使用される。サンプルのサイズはstsz(図示せず)と呼ばれるボックスに格納される。
次に、ボックスstsd56およびstsc57を説明する。stsd56には、トラックデータの復号に必要な初期化情報やトラックの表示サイズ等がエントリーとして格納される。エントリーの内容は各サンプルのデコード時に参照される。エントリーは複数存在してもよく、例えばトラックの途中で表示サイズを変更する際には、変更前と変更後2つのエントリーが用意される。
第1の実施形態に関連して説明したように、一般に、アクセスデータのサイズは1サンプルに含まれるフレーム数に応じて変化するため、複数のビデオフレームをまとめて1サンプルとすることにより付属情報のデータサイズ、すなわちボックスmoovのデータサイズを低減できる。そこで、1サンプルに含まれるフレーム数を示すフィールドframe_countがボックスstsd56のエントリー内に導入されている。図21(b)は、ボックスstsd56内の複数のエントリーに設定されたフィールドframe_countを示す。図21(b)に示すように、stsdには10個のエントリー1〜10が存在する。先頭エントリーはframe_countが10であるため、1サンプルに10枚のフレームが含まれることを示す。同様に、2番目、3番目のエントリーはそれぞれ1サンプルあたり9、8枚のフレームを含むことを示している。
さらに、MP4ファイルを復号または再生する際には、stsc57によって各サンプルに何枚のフレームが含まれるかが示される。再生装置は、各サンプルの復号時にstsc57を参照することにより、stsd56内の何番目のエントリーを参照するのかを知ることができる。例えば、stsc57において、1番目のサンプルはstsd56のエントリー1に対応することが示されると、再生装置は、1番目のサンプルが10枚のフレームを含むことを把握できる。
基本部のみから構成されるトラックにおいては、トラック全体に対するヘッダ情報がmoovにまとめて格納される。一方、トラックを分割し、分割した単位毎にヘッダ情報を付加するための手段として、拡張部が規格化された。拡張部においては、トラックを分割したそれぞれの単位に対してヘッダ情報が付加される。ただし、拡張部を使用する際にもftypとmoovは必須であり、サンプルの復号に必要な情報など、トラック内の全てのサンプルにおいて共通に使用される情報は必ずmoovに格納される。
図22は、基本部50と拡張部60とを含むMP4ファイルのデータ構造を示す。拡張部60では、分割された単位に含まれるサンプルのヘッダ情報は拡張ヘッダ61(moof)に格納され、moofにヘッダ情報が格納されているサンプルのデータは、サンプルデータ62(mdat)に格納される。なお、拡張部60が存在するため、基本部50のボックスmoovにはボックスmvexが存在する。
図23は、moof61のデータ構造を示す。moovと同様に、moof61においてもボックスが階層的に配置され、moof直下にはmoofのインデックス情報を格納するmfhdと、ヘッダ情報をトラック単位で格納する1つ以上のtraf62とが配置される。traf62は、moovにおけるtrakと同様に、復号時間の早いサンプルから順に各トラックに含まれるサンプルのヘッダ情報を格納する。なお、各トラックに関するヘッダ情報は、複数のtraf62を使用して格納してもよい。traf62は、tfhd63と1つ以上のtrun64を含む。trun64は、サンプルのサイズや再生時間長などサンプル単位のヘッダ情報が格納される。Tfhd63は、traf62が情報を格納しているトラックのトラックID(track_ID)、traf62に含まれるサンプルをデコードする際にstsd56内の何番目のエントリーを参照するか等の情報を格納する。上述した説明では、moovとmdatが同一ファイル内に存在することとしたが、mdatをmoovとは異なるデータファイルとして格納し、moovからmdatのデータファイルを参照することもできる。
以下、図24および図25を参照しながら、本実施形態によるデータ処理装置がMP4ファイルを生成する基本的な動作を説明する。
図24は、本実施形態によるデータ処理装置170の記録機能のブロックの構成を示す。データ処理装置170は、映像信号を受け取り、ビデオデータ、ヘッダデータ等を多重化してMP4ファイルを生成することができる。
データ処理装置170は、符号化部171と、メモリ172、174と、解析部173と、ヘッダ生成部175と、データ生成部176と、連結部177とを備えている。
各構成要素の機能は以下のとおりである。符号化部171は、映像信号を受け取って所定の符号化形式で符号化し、符号化データを出力する。例えば、映像はフレーム単位またはフィールド単位で符号化される。本明細書では、「フレーム」および「フィールド」の両方を包含する概念として、「ピクチャ」という語が用いられる。
メモリ172および174は、符号化データ、解析情報等を格納する記録媒体であり、例えば半導体メモリ、光ディスク、ハードディスクである。両者は同じ種類の記録媒体でなくてもよい。
解析部173は、符号化データを取得して、符号化データに関する解析情報、例えば、1以上のピクチャデータや音声フレームデータを含むサンプルごとのデータサイズ、表示開始時間あるいは復号時間を示す情報、符号化データの復号に必要な初期化情報等を取得する。また、解析部173は、上述したボックスmoovの生成を指示するmoov生成信号を出力する。
ヘッダ生成部175は、moov生成信号に基づいて、符号化データの解析情報を取得してボックスmoovを生成する。さらに、ヘッダ生成部175は、mdat内におけるサンプルデータの配置に関する配置情報を出力する。
データ生成部176は、符号化データおよび配置情報に基づいて、MP4規格で規定された形式に従ってmdatを作成する。
連結部177は、ボックスmoovとMP4規格で規定されたデータmdatとを連結または多重化してMP4ファイルを生成する。
以下、データ処理装置170の動作を説明する。まず、符号化部171は、入力された映像信号を符号化し、符号化データd102をメモリ172に格納する。次に、解析部173は、メモリ172より符号化データd103を取得し、フレームサイズ、表示開始時間または復号時間などサンプル単位の情報、および符号化データの復号に必要な初期化情報を取得する。その後、解析部173は、解析結果d105をメモリ174に格納する。moovの生成に必要な情報が揃うと、解析部173は、moov生成信号d104をヘッダ生成部175に送る。
ヘッダ生成部175は、moov生成信号d104をトリガとしてmoovの生成を開始する。このとき、ヘッダ生成部175はメモリ174からの解析情報d106を取得し、moov内に各ボックスを生成する。moov作成終了後、ヘッダ生成部175は、mdat内におけるサンプルデータの配置情報d107をデータ生成部176に入力し、作成したmoovのデータd109を連結部177に入力する。データ生成部176は、メモリ172から入力ビデオデータd108を取得し、配置情報d107およびMP4規格で規定された形式に従ってmdatを作成する。そして、データ生成部176は、生成したデータd107(mdat)を連結部177に入力する。最後に、連結部177は、データd109(moov)とデータd107(mdat)とを連結してMP4ファイルd110を出力する。なお、出力されたMP4ファイルは、例えばドライブ装置(図示せず)等によって光ディスク、ハードディスク等に記録され、または、PCカードスロットを介して半導体メモリカード等に記録される。
図25は、ヘッダ生成部175が復号開始時間の差分値、および、サンプルを構成するフレーム数の決定手順を示す。この決定は、解析結果d106に基づいて行われる。復号開始時間の差分値とは、各サンプルの復号開始時間と、その次のサンプルの復号開始時間との差分値を表している。本実施形態のデータ処理装置170も、複数のビデオフレームを1サンプルとして取り扱うとする。
以下では、MPEG−2 Visualのデータが入力された際に1GOPを1サンプルとして格納する動作を説明する。この動作に際し、ヘッダ生成部175は、1GOPに含まれるフレームの再生時間長の総和に関する情報を予め取得しているとする。なお、以下の説明および図面では、"sample_dur"、"num_frame"および"i"は、それぞれ、i番目のサンプルとi+1番目のサンプルにおける復号時間の差分値、i番目サンプルに含まれるフレーム数、およびサンプル番号を示すものとし、sample_dur、およびnum_frameの初期値は0、iの初期値は1とする。
まず、ヘッダ生成部175は、ステップS21において1フレーム分の解析結果を入力し、続いてステップS22で次フレームと現フレームとの復号時間の差分値であるframe_durを取得する。ステップS23において、sample_durにframe_durを加算し、num_frameに1を加算する。
次に、ヘッダ生成部175は、sample♯durとGOPの再生時間長とを比較することにより、ステップS24において処理したフレームがGOPの最終フレームであるか否かを判定し、最終フレームでない場合には、ステップS21に戻り、GOPに含まれる最終サンプルの処理が完了するまでステップS21からステップS24の処理を繰り返す。1GOP分のフレームの処理が完了すると、ステップS25においてi番目サンプルとi+1番目サンプルの復号時間の差分値を示すsample_durと、i番目サンプルに含まれるフレーム数を示すnum_frameとを解析結果のテーブルに格納する。次に、ヘッダ生成部175は、ステップS26において、i番目のGOPが入力データにおける最終GOPであるか否かを判定する。判定の結果、最終GOPでない場合には、ヘッダ生成部175は、ステップS27においてiに1を加算し、sample_durとframe_durを0にセットした後にステップS21からステップS26までの処理を繰り返す。この処理は、最終GOPに達するまで継続される。以上、データ処理装置170がMP4ファイルを生成する際の基本的な動作を説明した。
次に、データ処理装置170がMP4ファイルを生成する際のさらに他の動作を説明し、生成されたMP4ファイルのデータ構造を説明する。得られたMP4ファイルを用いることにより、符号化データにおける各フレームの表示時間長が一定でない際にも、サンプルに含まれる複数のフレームの復号時間を正しく示すことができる。なお、映像信号の符号化方式は、MPEG−2 Visualであるとして説明するが、例えばMPEG−4 AVC、MPEG−4 Visualであってもよいし、ビデオデータのみならずオーディオ、テキスト等のデータを含んでいてもよい。
まず、本実施形態によるデータ処理装置170の特徴的な動作を説明する。この動作と図25に示す動作とを比較すると、ヘッダ生成部175においてサンプルを構成するフレームを決定する手順が相違する。したがって、以下ではその相違する処理を説明する。
ヘッダ生成部175がサンプルを決定する基準は、連続する2枚のフレーム間で復号時間の差分値が一定であるか否かである。ヘッダ生成部175は、差分値が一定であればそれらのフレームが同じサンプルに属すると決定し、一定でなければそのそれらのフレームを異なるサンプルに属すると決定する。
なお、本実施形態においては、フレームスキップが発生していない場合には差分値が全て一定になり、1GOPの全てのフレームは1サンプルとして管理される。一方、フレームスキップの発生等により差分値が一定でない場合には1GOPのフレームは複数のサンプルとして管理される。ただし、目標とするサンプルの生成単位は、MPEG−4 VisualにおけるグループオブVOP(Group of VOP (Video Object Plane);GOP)またはMPEG−4 AVCにおけるサブシーケンスであってもよい。または、MPEG−4 VisualにおけるI(画面内符号化)フレームから、次のIフレームの直前のフレームまでとしてもよいし、MPEG−4 AVCにおけるIDR(Instantaneous decoder refresh)ピクチャから、次のIDRピクチャの直前のピクチャまでとしてもよい。なお、サンプルに含まれるビデオデータは、フレーム構造のデータに限定されるものではなく、フィールド構造のデータであってもよい。
図26は、ヘッダ生成部175における、サンプルを構成するフレームの決定手順を示す。ヘッダ生成部175は、まず、ステップS31において符号化データの先頭フレームの表示開始時間CTS(1)および復号時間DTS(1)を取得し、変数iを1にセットする。このとき、表示開始時間の取得には、フレームデータ内の“Temporal Reference”の値が使用され、復号時間はGOPを構成するフレームのタイプ(I、P、Bフレーム)および配置順に従って表示開始時間から計算される。
次にステップS32において、ヘッダ生成部175は(i+1)および(i+2)番目フレームの表示開始時間CTS(i+1)およびCTS(i+2)を取得する。続いて、ヘッダ生成部175は、ステップS33において、取得したCTS(i+1)およびCTS(i+2)の値から(i+1)および(i+2)番目フレームの復号時間DTS(i+1)およびDTS(i+2)の値を算出し、次のステップS34では、DTS(i)、DTS(i+1)、DTS(i+2)の値からdelta(i)、およびdelta(i+1)を計算する。なお、ここではi番目フレームと(i+1)番目フレームの復号時間の差分値をdelta(i)と表記している。
ヘッダ生成部175は、ステップS35において、delta(i)とdelta(i+1)が等しいか否かを判定する。等しくないときはステップS37に進み、等しいときはステップS36に進む。ここで、jの初期値は1とする。ステップS37において、ヘッダ生成部175は、j番目サンプルを構成するフレームを決定し、jに1を加算する。このとき、j番目のサンプルの先頭フレームは、(j-1)番目のサンプルにおける最終フレームの直後のフレームとし、最終フレームをi番目フレームとする。ただし、先頭サンプル(j=1)は符号化データの先頭フレームから開始するとしている。このように、delta(i)に不連続が生じた際には新たなサンプルを作成することにより、サンプルを構成する各フレームにおいて、次フレームと現フレームとの復号時間の差分値を等しくすることができる。
次に、ステップS36において、ヘッダ生成部175は、i番目フレームがGOPの最終フレームであるか否かを判定する。最終フレームではないときはステップS39に進み、最終フレームであるときは上述のステップS37に進む。
ステップS39では、ヘッダ生成部175は(i+2)番目フレームが符号化データの最終フレームであるか否かを判定する。最終フレームでないときにはステップS40に進み、最終フレームであるときは、j番目サンプルを決定して処理を終了する。ステップS40において、ヘッダ生成部175はiに1を加算して、ステップS32からステップS36までの処理を繰り返す。ここで、j番目サンプルの先頭フレームは、(j-1)番目サンプルにおける最終フレームの直後のフレームとし、最終フレームは(i+2)番目フレームとする。ステップS36において、i番目フレームがGOPの最終フレームであると判定された際には、ステップS37の処理を行う。
続いて、ヘッダ生成部175は、ステップS38において、(i+2)番目フレームが符号化データの最終フレームであるか否かを判定し、最終フレームではない場合にはステップS40においてiに1を加算し、ステップS32からステップS38までの処理を繰り返す。この処理は、最終フレームであると判定されるまで繰り返される。ステップS38において、最終フレームであると判定された際には、j番目サンプルの先頭フレームを(j-1)番目サンプルにおける最終フレームの直後のフレームとし、最終フレームを(i+2)番目フレームと決定し、処理を終了する。
図27は、決定されたサンプルとフレームとの関係を示す。このGOPでは復号時間順に1枚のIフレームと9枚のP(順方向予測)フレームが配列されている。図において、“I”はIフレーム、“P”はPフレームを示す。各フレームの表示開始時間には、"Temporal Reference"の値が使用される。なお、ここではフレームの表示開始時間に基づいて復号時間を計算する例を説明したが、ビデオの符号化データ内に各フレームの復号時間を示す情報が含まれる場合には、その情報を使用してもよい。
図27に示すGOPは、IフレームとPフレームのみから構成されるため、全てのフレームの表示開始時間と復号時間とは等しい。ここで、フレームP−8の表示開始時間と復号時間とが一時的に変更された場合を考える。例えば、他のフレーム間では復号時間の差分値は全て1であるのに対し、フレームP−7とフレームP−8の復号時間の差分値は2にされているとする。すると、ヘッダ生成部175は、フレームI−1からフレームP−6までのサンプル1、フレームP−7のみを含むサンプル2およびフレームP−8からフレームP−10までのサンプル3を生成する。
図28は、決定されたサンプルとフレームとの関係を示す他の例を示す。このGOPでは復号時間順にIBBPBBPBBP・・の順序で各フレームが配列されている。BはB(双方向予測)フレームを示す。この例では、IおよびPフレームの復号時間は、表示開始時間から3を減算することにより計算され、Bフレームの復号時間は表示開始時間と等しい。ここで、符号化時にフレームB−5の部分でフレームスキップが発生した場合を考える。すると、フレームP−4において次フレームと現フレームとの復号時間の差分値が不連続になる。そこで、ヘッダ生成部175は、フレームI−1からフレームB−3までのサンプル1、フレームP−4のみを含むサンプル2およびフレームB−6からフレームP−10までのサンプル3を生成する。
上述の処理によってサンプルを構成するフレームを決定し、それらのフレームを含むサンプルを生成することにより以下の利点がある。すなわち、再生装置側では、連続する2つのサンプルの復号時間の差分値を、サンプルを構成するフレーム数で除算することにより、サンプルデータを解析することなしに、現フレームを復号してから次フレームを復号するまでの時間を画一的な計算によって取得することができる。なお、MP4では、サンプルを構成するフレーム数は、図21(a)および(b)に記載されたstsd56のエントリー中のframe_countフィールドによって特定される。含まれるフレームの数が異なるサンプルは、それぞれ対応するframe_count値を持った異なるstsdエントリーを参照する。例えば、サンプルを構成するフレーム数が5,6,7の3種類である場合には、frame_count値がそれぞれ5,6,7である3つのエントリーをstsd56に生成し、参照すればよい。なお、必要となりそうなframe_count値を予め予想し、それらのframe_count値を網羅したstsdエントリー群を予め生成しておいてもよい。
(実施形態3)
第3の実施形態によるデータ処理装置は、ビデオデータを受け取ってMPEG−2 Visualに従って符号化する。データ処理装置は、符号化データにおいて連続する2つのフレームの復号時間の差分値が不連続となったときには、各サンプルが含むフレーム数を可能な限り一定に保つことにより、サンプルが参照するstsdのエントリーが頻繁に切り替わることを防止するMP4ファイルを生成する。なお、本データ処理装置が処理するビデオデータは、MPEG−4 AVCまたはMPEG−4 Visualであってもよい。なお、サンプルに含まれるビデオデータは、フレーム構造のデータに限定されるものではなく、フィールド構造のデータであってもよい。
本実施形態によるデータ処理装置の構成は、実施形態2にかかるデータ処理装置の構成と同一であり、ヘッダ生成部175以外の各構成要素の動作は同一である。よって、以下ではデータ処理装置の各構成要素の説明は省略し、ヘッダ生成部175の動作を説明する。
図29は、ヘッダ生成部175によって実行される、符号化データ内のフレームをサンプルに多重化する手順を示す。サンプル単位の決定は、1サンプルが1GOP内の全てのフレームを含むようにすることを目標として行う。図29では、iはサンプル番号を表し、sample_durはi番目と(i+1)番目のサンプルの復号時間の差分値を表し、num_frameはi番目サンプルに含まれるフレーム数を表すとする。sample_dur、およびnum_frameの初期値は0、iの初期値は1とする。
ステップS41において、ヘッダ生成部175は、Temporal Referenceの値に基づいて現フレームおよび次フレームの表示時間を取得し、それぞれのフレームの復号時間を算出した後に、現フレームと次フレームの復号時間の差分値を計算する。
次に、ステップS42において、ヘッダ生成部175は、sample_durにframe_durを加算し、num_frameに1を加算する。その後、ヘッダ生成部175は、ステップS43において現フレームのframe_durと符号化時のフレームレートから算出した表示時間長とを比較し、フレームスキップが発生しているか否かを判定する。フレームスキップが発生したことを判定すると、ステップS44において、ヘッダ生成部175はスキップしたフレーム数分だけnum_frameに値を加算する。例えば、符号化データのフレームレートが10Hzである場合、各フレームにおける復号時間の差分値は100msとなる。ここで、N番目フレームのframe_durが300msであるとすると、N+1番目、N+2番目の2枚のフレームはスキップされたと判定できるため、ヘッダ生成部175はnum_frameに2を加算する。続いて、ヘッダ生成部175は、ステップS45において現フレームがGOPの最終フレームであるか否かを判定する。最終フレームでない場合には、ヘッダ生成部175はステップS41に戻り、GOPに含まれる最終サンプルの処理が完了するまでステップS41からステップS45の処理を繰り返す。1GOP分のフレームの処理が完了すると、ステップS46においてi番目およびi+1番目サンプルの復号時間の差分値を示すsample_dur、および、i番目サンプルに含まれるフレーム数を示すnum_frameを取得する。
次に、ステップS47において、ヘッダ生成部175は、現フレームが符号化データの最終フレームであるか否かを判定する。最終フレームでない場合には、ステップS48においてiに1を加算し、sample_durとframe_durを0にセットした後にステップS41からステップS47までの処理を繰り返し、最終フレームに達した時点で処理を終了する。なお、フレームスキップの頻度が、ある一定値以上に達した際には、ステップS44におけるnum_frameの加算処理を行わないとしてもよい。
図30は、GOP内のフレームが格納されたサンプルを示す。この例では、GOP1とGOP2の2つのGOPを構成するフレームをサンプル1および2に格納する。まず、GOP1に含まれるフレーム1からフレーム5までの5枚のフレームをサンプル1にマッピングする。次に、GOP2に含まれる4枚のフレームを処理する。GOP2では、フレーム7においてフレームスキップが発生し、フレーム7の表示時間長が他のフレームの2倍となっている。このフレームの処理において、ヘッダ生成部175は、ステップS43においてフレームが1枚分スキップされたと判定し、ステップS44に進んで、num_frameに1を加算する。その結果、フレーム7の処理終了時点でnum_frameの値は3となり、フレームスキップが発生していない場合と同一の値をとる。すなわち、サンプル2に対応するframe_countは4ではなく、サンプル1と同様に5となる。
MP4ファイルのmoov52では、サンプルが参照するstsd56のエントリー(図21(b))はstsc57によって示される。stsc57には、サンプルが参照するstsdのエントリーが切り替わるたびに、stsc内のデータテーブルのエントリーが追加される。
本実施形態によれば、フレームスキップが発生した際にもframe_countが一定に保たれるので、参照するstsdのエントリーの切り替わり頻度が減少し、データ処理装置の再生負荷も削減できる。さらに、MP4の拡張部を使用する際にも、参照するエントリーが切り替わらないので、サンプル情報を格納するtrafを切り替える必要はなく、オーバーヘッドの増大は発生しない。
本実施形態では、1サンプルが1GOP内の全てのフレームを含むことを目標としてサンプルの単位を決定した。しかし、サンプルの単位は、MPEG−4 VisualにおけるGOVまたはMPEG−4 AVCにおけるサブシーケンスであってもよい。または、MPEG−4 VisualにおけるIフレームから、次のIフレームの直前のフレームまでとしてもよいし、MPEG−4 AVCにおけるIDR(Instantaneous decoder refresh)ピクチャから、次のIDRピクチャの直前のピクチャまでとしてもよい。
(実施形態4)
第4の実施形態によるデータ処理装置は、図29に示す手順によって生成されたMP4ファイルを受け取って解析し、符号化データを復号して表示する。本実施形態における「ビデオデータ」は符号化方式に依存しない映像のデータであるとする。例えば、「ビデオデータ」はMPEG−4 AVC、MPEG−4 VisualまたはMPEG−2 Visualである。ただし、双方向予測を用いた符号化は行わないとする。
図31は、本実施形態によるデータ処理装置200の機能ブロックの構成を示す。動画ストリーム復号部200は、いわゆる逆多重化処理を行って、符号化ストリームを復号化する。データ処理装置200は、受信部201と、メモリ202、204、205と、分離部203と、解析部206と、復号表示部207とを有する。
以下、データ処理装置200の各構成要素を説明しながらデータ処理装置200の処理の流れを説明する。例えばMP4ファイルがCD−ROMに記録されているとすると、受信部201は、ピックアップ130を介して読み出されたMP4ファイルデータを受け取って、MP4ファイルデータd202としてメモリ202に入力する。このとき、受信部201は、光ディスクドライブ(図示せず)との接続を確保するインターフェース部である。分離部203は、メモリ202からMP4ファイルデータd203を取得し、moovまたはmoofから構成されるMP4のヘッダ部分と、mdatから成るMP4のデータ部分とを分離し、ヘッダ部分のデータd204をメモリ204に入力し、データ部分のデータd205をメモリ205に入力する。ここで、メモリ205は半導体メモリであってもよいし、ハードディスクや光ディスク等の記録媒体を備えたドライブ装置であってもよい。
解析部206は、メモリ204よりヘッダ部データd206を取得し、解析してサンプル、または、サンプルに含まれるフレームのサイズ、復号時間、格納場所等に関する情報を取得した後、解析結果をデータd207として復号表示部207に入力する。復号表示部207は、解析結果データd207を元に、メモリ205からサンプルデータを取得し、サンプルに含まれるフレームを取り出した後、復号して表示する。なお、ビデオデータは、フレーム単位で構成されていなくてもよく、フィールド単位で構成されていてもよい。
次に、解析部206が、サンプルに含まれる各フレームの復号時間を求める方法を説明する。入力されるMP4ファイルは、第3の実施形態による処理に基づいて生成されたとする。すなわち、サンプル内でフレームスキップが発生しているときであっても、そのframe_countの値は、フレームスキップが発生していないときのサンプルと同一のframe_countの値と同じである。いま、サンプルには1からN番目までのフレームが含まれ、各フレームにおいて復号時間と表示時間は等しいとする。
まず、解析部206は、1からN−1番目のフレームについて、連続する2フレーム間の復号時間の差分値を計算する。具体的には、解析部206は、現サンプルと次サンプルとの復号時間の差分値をstts55またはtrun64から取得し、frame_countで除算することにより、連続する2フレーム間の復号時間の差分値を計算する。
次に、解析部206は、N番目フレームと次フレームとの復号時間の差分値を計算する。すなわち、解析部206は、1番目フレームからN−1番目フレームまでの復号時間差分値の総和を、サンプルの復号時間差分値から減算して、復号時間の差分値を求める。この計算によれば、フレームスキップ発生時には最終フレームおよびスキップが発生しているフレームの復号時間差分値は正確に得られないが、それら以外のフレームに対しては正確な復号時間差分値を取得することができる。
図32(a)〜(c)は、符号化データを構成するフレームデータとその復号時間の関係を示す。図32(a)は、符号化データに含まれるフレームと復号時間との関係を示す。サンプルには、フレーム1,フレーム2、フレーム3、フレーム4の4枚のフレームが含まれており、フレーム2においてスキップが発生したため、フレーム2の復号時間の差分値が2秒、他のフレームは1秒となっている。
次に、解析部206により得られる各フレームの復号時間の差分値を説明する。図32(b)は、解析部206により得られるフレームの復号時間を示す。フレーム1、フレーム2、フレーム3の復号時間差分値は、そのサンプルと次のサンプルとの復号時間の差分値をframe_countで除算して得られる。図32(b)の例では、サンプルの復号時間差分値は5秒、frame_count値は5である。よって、これら3枚のフレームの復号時間差分値は1秒である。一方、サンプルの最終フレームであるフレーム4の復号時間差分値は、サンプルの復号時間差分値から、フレーム1からフレーム3までの復号時間差分値の総和を減算することにより、2秒と求められる。
なお、図32(c)に示すように、解析部206は、sttsまたはtrunから得られるサンプルの復号時間差分値をframe_countで除算することにより2番目からN番目フレームの表示時間長を計算し、1番目のフレームの復号時間差分値をサンプルの復号時間差分値から、2番目からN番目フレームの復号時間差分値の総和を減算することにより計算してもよい。
(実施形態5)
第5の実施形態によるデータ処理装置は、1サンプルに複数ビデオフレームが含まれるMP4ファイルを受け取って解析し、符号化データを復号して表示する。本データ処理装置が処理するビデオデータは、MPEG−4 AVCであるとするが、処理するビデオデータは、MPEG−4 VisualまたはMPEG−2 Visualであってもよい。
1サンプルに複数ビデオフレームが含まれる際には、各フレームにおいて復号時間と表示開始時間が異なると、moovまたはmoofにはフレーム単位の時間情報が含まれないため、各フレームの表示開始時間を取得することができない。
そこで、本実施形態によるデータ処理装置に入力されるMP4ファイルには拡張したサンプル構造を採用し、サンプルを構成するフレームまたはフィールドの表示開始時間を取得できるようにした。
MP4では、ビデオやオーディオのフレームまたはフィールドのデータをサンプル内に格納するための形式が規定されており、その形式にしたがう限り、フレームまたはフィールドのデータをサンプル内に格納することが可能である。しかしその形式によっては、フレームデータまたはフィールドデータがそのままサンプルに格納されるとは限らない。例えば、MPEG−4 AVCの符号化データをMP4ファイルに格納する際には、NAL(Network Adaptation Layer)ユニットに、NALユニットのサイズを付加して格納することが提案されており、フレームデータ等がそのまま連続的に格納されていない。
図33(a)〜(c)は、逆多重化処理を行う対象となるMP4ファイルのサンプル構造を示す。図33(a)は、N枚(N:2以上の整数)のフレームが1サンプルに含まれるときのサンプルの構造を示し、各アクセスユニットの前に表示時間情報が付与される。
「アクセスユニット」とは、この例では1フレームのデータをMP4における格納形式に変換した後のデータを表す。より一般的にいえば、「アクセスユニット」とは、1フレームまたは1フィールドを表す1ピクチャのデータを格納する単位である。
MPEG−4 AVCを使用する際には、表示時間情報としてPOC(Picture Order Count)の値を使用する。ここで、POCとは、フレームの表示順序を示すパラメータである。
表示時間情報のフィールド長は、stsdのエントリー内に新たにフィールドを設けることにより定義する。ただし、新たに設けられるフィールドは、frame_countが1より大きい場合にのみ存在するとする。なお、表示時間情報のフィールド長としては固定値を使用してもよいし、フレーム毎に指定してもよい。
図33(a)に示すデータ構造では、1以上のフレームのデータを表すアクセスユニットおよびそのフレームの表示時間を表す表示時間情報が、交互に1つのサンプル内に設けられている。
一方、図33(b)は、1フレーム分のアクセスユニットが格納されたサンプルを示す。サンプル内に1フレーム分のアクセスユニットが格納される際には、図33(b)に示すように、従来通りアクセスユニットのみが格納される。図33(c)はサンプル構造のシンタックス例を示す。
なお、FrameCount、TimeInfo、access_unit_data[]はそれぞれstsdのエントリーにおけるframe_count値と、表示時間情報、アクセスユニットのデータを示し、LengthSizeは、表示時間情報のフィールド長を表し、stsdのエントリーにおいて新たに定義したフィールドにより示される。
なお、図33(a)に示したサンプル構造では表示時間情報とアクセスユニットを対にして格納したが、表示時間およびアクセスユニットをそれぞれまとめて格納することもできる。図34(a)は、表示時間およびアクセスユニットをまとめて格納したサンプルを示す。図34(b)は、図34(a)のサンプル構造を実現するシンタックス例を示す。
さらに、第1の実施形態と同様、表示時間情報とともに、または、表示時間情報に代えて、アクセスユニットのデータサイズを表す情報をデータストリームに含めることも可能である。図34(c)は、表示時間情報の次にアクセスユニットのサイズを示すフィールドを追加した例を示す。サイズフィールドの有無、およびフィールド長の設定方法に関しては、表示時間情報と同様の方法を使用することができる。表示時間およびデータサイズの情報は、いずれも各フレームを特定するための属性を示している。
図35は、本実施形態によるデータ処理装置300の機能ブロックの構成を示す。動画ストリーム復号部200は、いわゆる逆多重化処理を行って、符号化ストリームを復号化する。データ処理装置300は、受信部301と、メモリ302、304、305と、分離部303と、解析部306と、サンプル解析部307と、復号表示部308とを有する。
データ処理装置300と、図11に示すデータ処理装置10との対応関係は、以下のとおりである。すなわち、受信部301、メモリ302および分離部303は、データ処理装置10の再生部113に相当する。メモリ304は、付属情報保持メモリ118に相当するメモリ305、解析部306、サンプル解析部307、復号表示部308は、データ処理装置10の動画ストリーム復号部111に相当する。なお、復号表示部308における表示機能は、データ処理装置10の映像信号出力部110に相当する。
以下、データ処理装置300の各構成要素を説明する。受信部301は、入力されるMP4ファイルデータを、MP4ファイルデータd302としてメモリ302に入力する。分離部303は、メモリ302からMP4ファイルデータd303を取得し、moovまたはmoofから構成されるMP4のヘッダ部分と、mdatから構成されるMP4のデータ部分とを分離し、ヘッダ部分のデータd304をメモリ304に入力し、データ部分のデータd305をメモリ305に入力する。ここで、メモリ305はハードディスクや光ディスクなどの記録手段であってもよい。
解析部306は、メモリ304よりヘッダ部データd306を取得し、解析してサンプルのサイズ、復号時間、格納場所等の情報を取得した後、解析結果をデータd307としてサンプル解析部307に入力する。サンプル解析部307は、解析結果d307を元に、メモリ305からサンプルデータを取得し、サンプルからピクチャデータd309を取得し、復号表示部308に入力する。復号表示部308は、入力されたピクチャデータd309を復号し、表示する。
図36は、サンプル解析部307がサンプルからピクチャデータを取得する処理の手順を示す。ここで、field_length、AU_sizeは、それぞれ表示時間情報のフィールド長、アクセスユニットのサイズを示す。変数i、データ読み出しポインタptrの初期値はともに0とする。まず、ステップS51において、サンプルに対応するstsdのエントリー番号を取得し、ステップS52において、ステップS51で取得したエントリー番号をもつエントリーのframe_countを取得する。ここで、frame_countが1より大きい場合には、field_lengthも取得する。
次に、ステップS53において、取得したframe_count値が1より大きいか否かを判定し、1より大きい場合にはステップS54において、表示時間情報を取得して、読み出しポインタをfield_lengthバイト分進める。次に、ステップS55において、アクセスユニットデータを取得し、読み出しポインタをAU_size分進める。続いて、ステップS56においてアクセスユニットデータから、MP4のアクセスユニット構造に基づいてピクチャデータを取得する。ステップS57ではiに1を加算し、ステップS58において、iがframe_countより小さいか否かを判定し、小さい場合には、ステップS53からステップS58の処理を繰り返す。
本実施形態では、表示時間情報としてPOCを利用して説明した。しかし、表示開始時間を直接指定してもよいし、表示開始時間と復号時間との差分値、または、サンプル内における先頭フレームの復号時間と各フレームの表示開始時間との差分値を指定してもよい。さらに、各アクセスユニットのデータサイズを指定してもよい。または、復号時間および表示開始時間、または、復号時間と表示開始時間との差分値および復号時間を指定してもよいし、各フレームの復号時間のみを指定してもよい。
なお、MPEG−4 Visual規格では、“Modulo Time Base”の値および“VOP Time Increment”の値からフレームの表示時間を取得できる。よって表示時間の指定または表示開始時間と復号時間との差分値などを用いることができる。
(実施形態6)
第6の実施形態によるデータ処理装置は、1サンプルに複数ビデオフレームまたはフィールドが含まれるMP4ファイルを受け取って解析し、符号化データを復号して表示する。以下の説明は、フレームおよびフィールドのいずれにも適用できるので、これらを含む概念として「ピクチャ」という語を用いて説明する。異なる2つのビデオピクチャでは、表示時間、復号時間の少なくとも一方が異なるとする。
なお、本データ処理装置が処理するビデオデータは、MPEG−4 AVC形式で符号化されているとするが、他にMPEG−4 Visual、MPEG−2 VisualまたはH.263であってもよい。また、オーディオまたはテキストデータの複数フレームを1サンプルに格納してもよい。
1サンプルに複数ビデオピクチャが含まれる際には、moovおよびmoofはサンプル単位の情報しか含まれないため、ピクチャ単位の復号時間または表示開始時間を取得するには、ピクチャデータを解析しなければならない。また、MPEG−4 AVCをMP4に格納する際には、スタートコードを使用しないため、ピクチャの境界を取得する際にもピクチャデータの解析が必要になるばかりでなく、サンプルデータにビット誤りが発生した際には、サンプルにおいて、誤り発生位置以降に格納されるピクチャデータを取得できなくなる可能性がある。
そこで、逆多重化処理を行う本実施形態によるデータ処理装置に入力されるMP4ファイルには拡張したサンプル構造を採用し、ピクチャデータを解析することなしに、サンプルを構成するピクチャの復号、表示時間、およびサイズを取得できるようにした。例えば、MPEG-2におけるGOP(Group of Picture)のようにランダムアクセス可能な単位をサンプルとすることができる。つまり、本MP4ファイルでは、サンプル単位と、サンプルを構成するアクセスユニット単位のそれぞれのヘッダ情報を格納する。このように、ヘッダ情報を階層的にもつことで、サンプルよりも細かい単位についてヘッダ情報を効率的に格納することができる。
MP4では、ビデオやオーディオのフレームデータをサンプルとして格納する際の形式を規定している。MPEG−4 AVCを格納する際には、MPEG−4 AVCにおけるNAL(Network Adaptation Layer)ユニットに、NALユニットのサイズを付加した形式とすることが提案されている。ここで、1ピクチャのデータをMP4において規定された格納形式に変換した後のデータ単位は、アクセスユニットと呼ばれる。
図37は、アクセスユニットのデータ構造を示す。まず、アクセスユニットはN個のNALユニットを含む。さらに、アクセスユニットの最後にはユーザーが自由に使用できる拡張領域を格納することが可能である。拡張領域が存在するか否かは、NALユニットのサイズフィールドが0であるか否かによって判定することができる。NALユニットのサイズフィールドが0であれば、サンプル内の以降の領域にはユーザーの定義した独自データが含まれることを示す。NALユニットのサイズフィールドが0でなければ、そのNALユニットにはアクセスユニットが格納されている。図37では、NALユニット1、2、Nのサイズフィールド“length”(=L1、L2、Ln)は0ではない。
次に、図38(a)および(b)を参照しながら、本実施形態による逆多重化処理を行うデータ処理装置に入力されるMP4ファイルのデータ構造を説明する。このMP4ファイルでは、2つ以上のアクセスユニットを格納したサンプルが規定されている。
図38(a)に示されるように、サンプルにはN(Nは2以上の整数)個のアクセスユニットに加えて、サンプル内の各アクセスユニットの復号時間、表示時間、サイズ等に関する属性を示す情報(第1の実施形態による拡張情報に相当する)を示すヘッダが付加される。以下、本明細書ではこのヘッダをサンプルヘッダと呼ぶ。サンプルヘッダはボックス構造を有しており、本明細書ではその最上位のボックスをマルチAUヘッダボックス(Multi AU header Box;'mahd')と呼ぶ。
第1の実施形態においては、1以上のフレームデータを1つのサンプルとし、各フレームデータのサイズ等を示す拡張情報を別のサンプルとして規定した。一方、本実施形態においては、1以上のフレームデータ(アクセスユニット)と、その拡張情報(サンプルヘッダ内の情報)とを同一サンプルに格納している。そして、各サンプルに対しては、第1の実施形態において説明したアクセスデータが設定される。
図38(b)は、サンプルヘッダのデータ構造を示す。復号時間、表示時間、およびサイズ情報は、それぞれ別々に、mahd内のボックスに格納される。復号時間はMulti Decoding Time To AU Box('mdta')、表示時間はMulti Composition Time To AU Box('mcta')、サイズはMultiAUSizeBox('mtsz')に格納される。ここで、mdta、mcta、およびmtszは、それぞれ復号時間、表示時間、およびサイズが既定のデフォルト値と異なる場合にのみ存在し、それぞれのボックスに示される値がデフォルト値に上書きされる。デフォルト値が設定されていない場合には、サンプルヘッダにおいて必ず必要な情報を設定するとする。
ここで、デフォルト値、および各ボックスに含まれるフィールドのサイズは、サンプルヘッダの初期値設定部分で設定する。なお、サンプル情報の初期値設定部分は後述する。例えば、mahdにmtszが存在しなければ、サンプル内のアクセスユニットのサイズはデフォルト値と一致することを示し、存在する際には、mtszに示される値を参照して各アクセスユニットのサイズを取得する。なお、上記のボックス以外にも、ランダムアクセス可能なアクセスユニットを示す情報や、アクセスユニットに含まれるデータの復号に必要な情報または復号に必要な情報の識別子を格納するためのボックスを追加してもよい。例えば、倍速再生などの特殊再生時に使用する情報を格納するボックスを追加することができ、以下のような情報を格納できる。
(1)N(Nは1以上の整数)倍速再生など、特定の再生条件時に復号化するアクセスユニットまたは表示するアクセスユニットのインデックス番号を格納する。ここで、インデックス番号とは、サンプル内でのアクセスユニットの復号時間順などアクセスユニットの識別番号を示す。なお、アクセスユニットに複数ピクチャのデータが格納される際には、そのうちの1つのみを復号化し、表示する。なお、サンプルヘッダを使わずに、moovまたはmoofが参照するビデオトラック全体に関して、アクセスユニットにおける特定再生条件時の情報をmoovまたはmoofに格納することもできる。
(2)サンプル内の各アクセスユニットの優先度情報を格納する。例えば、優先度が1からNまで指定されているとき、優先度i(iは1以上N以下の整数)のアクセスユニットを復号するには、優先度がi以下のアクセスユニットを復号化しなければならないことを示す。なお、サンプルヘッダを使わずに、moovまたはmoofが参照するビデオトラック全体のアクセスユニットに関する優先度情報を格納するボックスを、moovまたはmoofに配置することもできる。
(3)ランダムアクセス可能な単位を構成するアクセスユニットの符号化タイプの並びを格納する。例えば、ランダムアクセス可能な単位をMPEG−2におけるGOPとし、GOPがI、B、B、P、B、B、P、B、B・・である15枚のアクセスユニットから構成される際に、GOPを構成する15枚のアクセスユニットの符号化タイプを格納する。ここで、アクセスユニットに複数のピクチャデータが含まれる際には、アクセスユニット内のピクチャの符号化タイプは全て同一であるとする。これにより、Iのみの再生、IおよびPのみの再生、または、I、B、P全てのピクチャの再生に際して参照するアクセスユニットを決定できる。
図38(a)ではサンプルヘッダをサンプルの先頭に配置する例を示しているが、サンプル内の最終アクセスユニットの後に配置してもよいし、サンプル内の最終データとして配置してもよい。図39は、サンプルヘッダをサンプル内の最終データとして配置する際の例を示す。サンプルはアクセスユニットのみから構成されている。サンプルはN個のアクセスユニットから構成される。ここで、サンプル内の最終アクセスユニットにはM個のNALユニットに加えて、拡張領域が含まれ、サンプルヘッダは拡張領域に格納される。このように、サンプルと、サンプルに含まれるアクセスユニットのそれぞれに対してヘッダ情報を作成し、アクセスユニットに関するヘッダ情報をサンプルの一部としてmdatに格納することにより、moov内に全てのアクセスユニットに関するヘッダ情報を格納する場合に比べて、moovのサイズを削減できるという効果もある。
また、サンプルヘッダはサンプルを構成する全てのアクセスユニットに関する復号時間、表示時間、サイズに関する情報等をまとめて格納するのではなく、1つ以上のアクセスユニットに関する情報を格納してもよい。例えば、サンプルヘッダはアクセスユニット毎に付加されてもよい。なお、GOPなどランダムアクセス可能な単位の構造に関する情報は、サンプルヘッダを使用しない場合にも有効であり、例えばstsdのエントリー内に示すとしてもよい。
サンプルヘッダをサンプル内の最終アクセスユニットの拡張領域に格納するときは、mahd内に、mahdのサイズを示すためのサイズ指定用ボックスを設けてもよい。サイズ指定用ボックスを次のように使用することにより、mahdの開始位置を容易に取得できる。すなわち、サンプルの終端から、サンプルの先頭に向かってサイズ指定用ボックスを検索する。サイズ指定用ボックスが見つかれば、mahdのサイズを取得できるため、サンプル終端からmahdのサイズ分だけ移動することにより、mahdの開始位置が取得できる。
次に、マルチAUヘッダボックス(mahd)に格納される各ボックスのデータ構造を説明する。図40(a)はmtszのデータ構造を示し、図40(b)はmdtaのデータ構造を示し、図40(c)はmctaのデータ構造を示す。なお、ボックスのサイズ、タイプ、バージョン、フラグ情報は全てのボックスに共通に設けられるため、いずれの図にも示していない。図40(a)に示すように、mtszは、stbl内のstszと同様の構造をもち、以下の3つのフィールドから構成される。
AU_DefaultSizeフィールド:mtszによりサイズ情報が示される全てのアクセスユニットのサイズが等しければ、そのサイズを示す。その他の場合は0とする。
AU_countフィールド:mtszによりサイズ情報が示されるアクセスユニットの数を示す。mtszがサンプル内の全てのアクセスユニットのサイズを示す際には、本フィールド値はframe_count値と等しくなる。また、mtszがアクセスユニット毎のサイズを示す際には本フィールド値は1となる。
テーブルフィールド:AU_DefaultSizeが0である場合にのみ存在する。テーブルには、AU_countで示される数のエントリーが含まれ、エントリー名はAU_sizeとする。各エントリーには、アクセスユニットのサイズが復号時間順に格納される。サンプル内のi番目アクセスユニットのサイズは、AU_DefaultSizeが0でなければAU_DefaultSizeにより示され、0である際には、i番目エントリーのAU_sizeにより示される。
なお、ここではアクセスユニットのサイズを直接格納するとしたが、ストリーム単位またはサンプル単位でアクセスユニットサイズのデフォルト値を設定し、デフォルト値と実際のサイズとの差分値を格納することによりテーブルサイズを削減してもよい。また、アクセスユニットのサイズが予め設定した定数の整数倍となるように符号化し、サイズが設定値の何倍であるかをサイズ情報として格納してもテーブルサイズが削減できる。例えば、設定値を4とする。このとき、サイズがそれぞれ12バイト、16バイト、20バイトである3つのアクセスユニットがあるとすると、それぞれのサイズを4で割った値である3、4、5を各アクセスユニットのサイズ情報として使用する。
なお、これらのテーブルサイズ削減方法はサンプルサイズを格納するテーブルのサイズを削減する際にも有効である。例えば、後者の削減方法を使用する際には、符号化時にはアクセスユニットのサイズを考慮せずに、サンプル全体としてのサイズが設定値の整数倍となるようにサンプルに対してバイトスタッフィングを行うとしてもよい。図40(b)に示すように、mdtaはstbl内のsttsと同様の構造をもち、entry_countフィールドとテーブルフィールドとから構成される。
entry_countフィールド:テーブルに含まれるエントリーの数を示す。
テーブルフィールド:復号時間に関連するアクセスユニットごとのデータを示す。テーブルの各エントリーは、AU_countとDecodingTimeDeltaフィールドから構成される。DecodingTimeDeltaはi番目(iは正の整数)とi+1番目アクセスユニットの復号時間の差分値を示す。AU_countは、DecodingTimeDeltaフィールドに示される復号時間の差分値をもつ、連続したアクセスユニットの数を示す。つまり、復号時間の差分値が異なるアクセスユニットが現れるたびに、新規エントリーが追加される。
ここで、復号時間、および表示時間の取得方法を説明する。MPEG−4 AVCにおいては、ビデオデータのストリーム内に、SEI(Supplemental Enhancement Information)と呼ばれる復号化のための補助情報を入れることができる。SEIとは、復号化において直接必要はないが、復号化を行う際の手助けとなる情報を示すものであり、復号時間、および表示時間情報もPictre timing SEIと呼ばれるSEIを用いて示すことができる。本SEIがビデオデータ内に存在しない際には、POC(Picture Order Count)と呼ばれるピクチャ毎の表示順序を示すパラメータから時間情報を取得するとしてもよいし、ビデオデータとは別に提供される時間情報を使用してもよい。なお、復号時間の差分値を直接格納せずに、MPEG−2 VisualのTemporal Referenceのように、差分値の相対的な値を格納するとしてもよい。
次に、mctaは、stbl内のcttsと同様の構造をもち、以下のフィールドから構成される。
entry_count:テーブルに含まれるエントリーの数を示す。
テーブルの各エントリーは、AU_countとCompositionTimeOffsetフィールドから構成される。CompositionTimeOffsetは、アクセスユニットの復号時間と表示時間の差分値を示す。つまり、復号時間にCompositionTimeOffsetの値を加算することにより、表示時間が取得できる。AU_countは、同一のCompositionTimeOffsetをもつ連続したアクセスユニットの数を示す。mdtaと同様に、異なるCompositionTimeOffsetをもつアクセスユニットが現れるたびに、新規エントリーが追加される。ここで、サンプル内の全てのアクセスユニットにおいて復号時間と表示時間が等しい際には、mctaは存在しない。
ここで、サンプルヘッダは、1サンプルに2つ以上のアクセスユニットから構成される場合にのみ存在する。1サンプルに格納されるアクセスユニット数の取得は、次のように行う。まず、stscを参照して、サンプルに対応するstsdのエントリーのインデックス番号を取得し、次に、取得したインデックス番号に対応するstsdエントリーのframe_count値を取得する。つまり、サンプルに対応するframe_count値が1より大きい場合にのみ、サンプルヘッダが存在する。なお、frame_countが1である際も、サンプル内のデータとしてヘッダ情報を示すことが有効である際には、サンプルヘッダを使用するとしてもよい。
次に、サンプルヘッダの初期値設定部分を説明する。初期値設定部分は、stsdのエントリー内のframe_count値が1より大きい場合にのみ、stsdのエントリー内に格納される。初期値設定部分では、mahdに含まれる各ボックス内のフィールド長、およびサンプルヘッダのデフォルト値が設定され、以下のフィールドから構成される。
AUSizeLengthMinusOne:mtsz内のAU_sizeフィールドのサイズを示す。
DecodingTimeCountLengthMinusOne:mtdaのAU_countフィールドのサイズを示す。
DecodingTimeDeltaLengthMinusOne:mtdaのDecodingTimeDeltaフィールドのサイズを示す。
CompositionTimeCountLengthMinusOne:ctdaのAU_countフィールドのサイズを示す。
CompositionTimeOffsetLengthMinusOne:ctdaのCompositionTimeOffsetフィールドのサイズを示す。
DefaultHeaderBox:サンプルヘッダのデフォルト値を示すためのmahdを格納する。
なお、上記フィールドのサイズは固定として、上記フィールドを省略してもよい。また、mtsz、mdta、およびmctaは、必ずしも存在する必要はなく、存在しない場合には、デフォルト値が設定されていないとする。なお、frame_countが1である際にもサンプルヘッダを使用する際には、frame_countが1であっても初期値設定部分を格納するとしてもよい。
さらに、mtsz、mtda、ctda以外のボックスをmahdに格納する際には、新規に追加したボックスのフィールドサイズを示すフィールドを追加してもよい。なお、全てのサンプルにおいて、サンプルを構成するアクセスユニットの情報が初期値(デフォルト値)と同一である際には、mahd内に格納されるボックスが存在しないため、各サンプルにおいてmahdを格納しないとしてもよい。ここで、mahdがサンプルヘッダに含まれるか否かはサンプルヘッダの初期値設定部分またはstsdのエントリ内にフラグ情報を設定することにより判別する。
なお、フラグ情報はmoov内の他の部分において設定してもよい。フラグがセットされている際にはサンプル内にサンプルヘッダ、つまりmahdが含まれることを示し、フラグがセットされていない際には、mahdが含まれないことを示す。例えば、MPEG−4 AVCにおいてもMPEG-2のGOPのようなランダムアクセス可能な単位を規定し、規定した単位毎に1サンプルとする際にはサンプルにmahdを含めないとしてもよい。なお、ボックスの有無をフラグ情報として使用するとしてもよく、初期値設定部分をボックスにより実現するとし、初期値設定部分のボックスが存在するかしないかによりmahdの使用有無を識別できる。
図41(a)は、ボックスを使用したときのサンプルヘッダの初期値設定部分のシンタックス例を示し、図41(b)はボックスを使用しないときのサンプルヘッダの初期値設定部分のシンタックス例を示す。また、図42(a)〜(d)は、それぞれmahd、mtsz、mdta、およびmctaの各シンタックスの例を示す。
次に、図43(a)〜(c)は、サンプルヘッダにデータを格納するための第1の例を示す。第1の例では、サンプルが、復号時間順にIBBPBBPBB・・と連続する15個のアクセスユニットから構成される。ここで、I、P、BはそれぞれI―ピクチャ、P−ピクチャ、B−ピクチャのアクセスユニットを示し、各アクセスユニットの復号時間、表示時間、およびサイズは図43(a)に示すとおりである。
まず、サンプルヘッダの初期値設定部分におけるDefaultHeaderBoxには、図43(b)に示すようにmdtaとmctaが存在する。アクセスユニット毎のサイズがランダムであり、サイズ情報のデフォルト値は設定しないとしたため、mtszは存在しない。
次に、サンプルヘッダを設定する。図43(c)は、サンプルヘッダに格納されるデータを示す。まず、復号時間情報を説明すると、サンプル内の連続する2つのアクセスユニットにおける復号時間の差分値は全て100msであり、デフォルト値をそのまま使用できるため、mdtaは必要ない。ここで、最終アクセスユニットであるB−15に関しても、次アクセスユニットとの復号時間の差分値は100msであるとする。次に、表示時間は、IおよびP−ピクチャのアクセスユニットは復号時間と表示時間の差分値が300msであり、B−ピクチャは復号時間と表示時間とが一致する。よって、表示時間情報としても、デフォルト値がそのまま使用できるため、cdtaも必要ない。
ピクチャのレートが固定である際には、サンプルに含まれるピクチャの復号時間情報としてデフォルト値を使用することができる。例えば、トラックに含まれる全ピクチャのレートが一定であれば、復号時間情報としてはデフォルト値のみを設定すればよく、サンプルヘッダ内でmdtaにより復号時間情報を示す必要がなくなる。
また、MPEG−2におけるGOPのようなランダムアクセス可能な単位をサンプルとして扱う際には、固定ピクチャレート、かつGOP構造が固定であれば、サンプル内のピクチャに関する表示時間情報としてもデフォルト値のみを設定すればよいことになる。例えば、ビデオの符号化データが3つの異なるGOP構造のみから構成される際には、stsdのエントリーを3つ用意してそれぞれのGOP構造に対応する表示時間情報のデフォルト値を設定し、サンプル毎に参照するstsdのエントリーを変更するとすれば、サンプルヘッダ内でmctaにより表示時間情報を示す必要がなくなる。
ここで、GOP構造とは、GOPを構成するピクチャの枚数、および各ピクチャの符号化タイプ(I, B, Pのいずれのピクチャであるか)を示すものである。最後に、サイズ情報を説明する。サイズ情報にはデフォルト値が設定されていないため、mtszを使用してサンプルに含まれる15個のアクセスユニットのサイズを格納する。結局、サンプルヘッダは、サイズ情報を格納するためのmtszのみを含み、復号時間と表示時間はデフォルト値を使用するため、mdtaとmctaは含まない。
図44(a)および(b)は、サンプルヘッダにデータを格納するための第2の例を示す。以下に説明するように、サンプルヘッダには、mdta、mcta、およびmtszの3つのボックスが格納される。サンプルヘッダのデフォルト値は図43(b)に示す第1の例と同一であるとする。
図44(a)に示すように、サンプル内のアクセスユニットの構成は第1の例(図43(a))と同じである。図44(a)に示すように、12番目のアクセスユニットであるB−12においてフレームスキップが発生している。よって、復号時間、表示時間ともにデフォルト値は使用できないため、サンプルヘッダにおいてmdta、mctaを設定する必要がある。
まず、復号時間情報の設定を行う。図44(b)の(1)に示すように、I−1からB−11までの11個のアクセスユニットに関しては次のアクセスユニットとの復号時間の差分値は100msであり、B−12のみ差分値が200msである。そして、P−13からB−15までは再び100msになることから、mdtaには3つのエントリーが必要になる。
次に、表示時間を説明する。表示時間は、P−10において復号時間との差分値が400msとなる他はデフォルト値と同一である。従って、サンプルヘッダにおいて設定するmctaの各エントリーは、図44(b)の(2)に示すように設定される。
最後に、mtszを説明する。図44(b)の(3)に示すように、mtszは第1の例と同じである。
以上の説明では、サンプルヘッダがサンプル内に1つだけ存在し、1つのサンプルヘッダ内にサンプルを構成する全てのアクセスユニットの情報を格納するとした。しかし、サンプルヘッダはサンプル内に複数存在してもよい。その理由の1つは、サンプルデータの記録方法によっては、サンプル内のアクセスユニットの情報をまとめて記録するよりもアクセスユニット毎の情報を順次記録するほうが効率的であることがあるためである。その一例として、サンプルデータをリアルタイムで光ディスクに記録する場合を説明する。
サンプル内の全てのアクセスユニットの情報を1つのサンプルヘッダにまとめて格納する際には、サンプル内の全てのアクセスユニットに関する情報を取得しなければサンプルヘッダが完成しない。サンプルヘッダをサンプルの先頭に配置すると仮定すると、サンプルヘッダが完成してからサンプルデータを光ディスクに書き込むことになり、サンプル内の最後のアクセスユニットの情報を取得するまで書き込みを開始できない。
また、サンプル内のアクセスユニットデータを一時的に記憶しておくためのメモリが必要になる。例えば、GOPのようなランダムアクセス可能な単位を1サンプルとする際には、ランダムアクセス可能な単位に含まれる全アクセスユニットを保持できるだけのメモリが必要になる。一方、サンプルヘッダにアクセスユニット毎の情報を格納するとすれば、1アクセスユニット分の情報が取得できればサンプルヘッダが完成するため、順次サンプルデータの書き込みを行うことができ、リアルタイム性に優れると共に,アクセスユニットを保持するために必要なメモリサイズも削減できる。
以下に、サンプル内の1つまたは複数のアクセスユニットに対してサンプルヘッダが付加される際のサンプル構造を説明する。ここで、サンプルヘッダがサンプル内に1つ存在するか複数存在するか否かは、サンプルヘッダ内の各ボックスによりヘッダ情報が示されるアクセスユニットの個数により判別する。サンプルヘッダ内にボックスが存在しない際には、サンプルヘッダの初期値設定部分に定義されたデフォルトのボックスを参照することにより判定する。サンプル内で先頭のサンプルヘッダによりヘッダ情報が示されるアクセスユニットの個数がframe_count値と一致する際には、先頭のサンプルヘッダにより、サンプル内の全アクセスユニットのヘッダ情報が示されるため、サンプルヘッダは1つのみである。
一方、先頭のサンプルヘッダによりヘッダ情報が示されるアクセスユニットの個数がframe_countよりも小さければ、残りのアクセスユニットのヘッダ情報を示すため、1つ以上のサンプルヘッダがサンプル内に別途格納される。
図45(a)および(b)を参照しながら、その例を説明する。本例では、1サンプルがN個(Nは1以上の整数)のアクセスユニットから構成される。図45(a)は、1サンプル内のアクセスユニットの各々にサンプルヘッダを付加した例を示す。1番目のアクセスユニットのヘッダ情報はサンプルヘッダ1に格納され、サンプルヘッダ1にはmdtaとmtszが格納される。ここで、mdtaでは、entry_countに1が設定されているため、このmdtaはアクセスユニット1に関する情報であることを示す。また、エントリのAU_countに1が設定されることにより、このmdtaは1つのユニットに関する情報であることを示す。その結果、このmdtaはアクセスユニット1に関する情報のみを示している。
同様に、mtszにおいても、AU_countが1であるためmtszがアクセスユニット1に関する情報のみを示す。同様に、後続のサンプルヘッダもまた、i(iはN以下の整数)番目のサンプルヘッダがi番目のアクセスユニットのヘッダ情報を示すことが分かる。
図45(b)は、N未満の複数のアクセスユニットに1つのサンプルヘッダを付加した例を示す。ここでは、サンプルヘッダ1は、1番目から3番目までのアクセスユニットの情報を示し、サンプルヘッダ2は、4番目と5番目のアクセスユニット、サンプルヘッダM(MはN未満の整数)はN番目のアクセスユニットの情報を示す。サンプルヘッダ1では、mdtaのentry_countに1が設定され、エントリのAU_countに3が設定されることにより、mdtaは1番目から3番目の3つのアクセスユニットの情報を示す。
同様に、mtszのAU_countに3が設定されて、mtszが1番目から3番目のアクセスユニットに関する情報であることを示している。次に、サンプルヘッダ2におけるmtszとmdtaから、サンプルヘッダ2が4番目と5番目のアクセスユニットの情報を示すことが分かる。mtsz、mdtaまたはmctaがサンプルヘッダ内に存在しない際には、サンプルヘッダの初期値設定部分において設定されたデフォルトのボックスを使用する。なお、サンプルヘッダ内に、次のサンプルヘッダの格納位置を示す情報を付加することにより、アクセスユニットのサイズを加算することなしに、次のサンプルヘッダの開始位置を取得できるとしてもよい。また、サンプル内に存在するサンプルヘッダが1つであるか複数であるかを判別するためのフラグ情報を、サンプルヘッダの初期値設定部分に設定するとしてもよいし、サンプルヘッダはアクセスユニット毎に付加するとしてもよい。
さらに、サンプルヘッダはボックス構造を有するとしたが、ボックス構造を用いずに、必要なフィールドを順に格納してもよい。このとき、サンプルヘッダは、サイズ、復号時間、表示時間の各情報が設定されているか否かを示すフィールド、および各情報を設定するためのフィールドから構成される。図46(a)および(b)は、ボックス構造を用いないときのサンプル構造およびシンタックス例を示す。図46(a)ではマルチAUヘッダ(Multi−AU header)がサンプルヘッダに相当する。このデータ構造は、1以上のフレームデータ(アクセスユニット)と、その拡張情報(サンプルヘッダ内の情報)とを1つのサンプルとして規定している点において、図38(a)に示すデータ構造と同じである。
図46(b)はマルチAUヘッダのシンタックス例を示す。図46(b)における、AUSizePresentフィールド、DecodingTimeDeltaPresentフィールドおよびCompositionTimeOffsetフィールドは、それぞれ“AUSize”、“DecodingTimeDelta”、“CompositionTimeOffset”の各フィールドが存在するか否かを示すフラグ情報であり、frame_countフィールドは、サンプルが参照するstsd内のエントリーに示されるframe_count値と等しい。
また、“AUSize”、“DecodingTimeDelta”、“CompositionTimeOffset”の定義は図40(a)〜(c)の場合と同じである。この例では、“DecodingTimeDelta”および“CompositionTimeOffset”が同一のアクセスユニットが連続するときも、各アクセスユニットに関して“DecodingTimeDelta”および“CompositionTimeOffset”を格納するとしている。しかし、ボックス構造使用時と同様に、同一の値が連続する際には、連続するアクセスユニットの個数を示すことにより、フィールド値を省略するとしてもよい。また、サンプルヘッダの初期値設定部分ではAUSize、DecodingTimeDelta、およびCompositionTimeOffsetの各フィールドのサイズを示す情報、およびサンプルヘッダのデフォルト値を設定する。初期値設定部分のシンタックス例を図41(b)に示す。
このように、サンプルヘッダを使用することにより、アクセスユニットのデータを解析することなしに、アクセスユニットの復号時間、表示時間、およびサイズを取得することができる。また、MPEG−4 AVCのように、MP4格納時にはアクセスユニットにスタートコードを含まない符号化方式においても、サンプルヘッダを参照することにより容易にアクセスユニットの境界を取得することができる。
以下、本実施形態によるデータ処理装置を説明する。本実施形態によるデータ処理装置の構成は、図35に示すデータ処理装置の構成と同じであり、その基本的な動作もまた既に説明したとおりである。よって以下では本実施形態による処理に関連する構成を説明する。
図35に示す解析部306は、メモリ304よりヘッダ部データd306を取得し、解析することによりサンプルのサイズ、復号時間、格納場所等の情報を取得した後、解析結果をデータd307としてサンプル解析部307に入力する。サンプル解析部307は、解析結果d307を元に、メモリ305からサンプルデータd308を取得し、サンプルからピクチャデータd309を取得し、復号表示部308に入力する。復号表示部308は、入力されたピクチャデータd309を復号し、表示する。
図47は、サンプル解析部307がサンプルからピクチャデータを取得する処理の手順を示す。変数iの初期値は0とする。まず、ステップS61において、サンプルに対応するstsdのエントリーのframe_count値を取得する。frame_countが1より大きければ、stsdのエントリー内に含まれるサンプルヘッダの初期値設定部分から、サイズ、復号時間または表示時間情報のデフォルト値を取得するとともに、サンプルヘッダ内のボックスにおけるフィールドのサイズを取得する。ここで、stsdのエントリー番号と、エントリー番号に対応するframe_countおよびサンプルヘッダの初期値情報を予め記憶しておけば、ステップS61においてサンプル毎に初期値情報を取得しなくてもよい。
次に、ステップS62においてframe_countが1より大きいか否かを判定し、1より大きい場合には、サンプルヘッダが存在するため、ステップS63においてサンプルヘッダを解析する。サンプルヘッダ解析時には、mahd内にmtsz、mtdaまたはmctaの各ボックスが存在するか否かを検索し、ボックスが存在する際には、その内容を取得してデフォルト値に上書きして、アクセスユニットのサイズ、復号時間または表示時間情報を取得する。frame_countが1である際には、ステップS62に続いて、ステップS64の処理を行う。ステップS64では、ステップS63から得られたアクセスユニットのサイズを元に、サンプルからアクセスユニットのデータを取得し、ステップS65においてアクセスユニットからピクチャデータを分離する。
なお、ステップS63で取得した復号時間、および表示時間は、図35の復号表示部308においてピクチャデータを復号、表示する際に使用される。また、トラックの途中から再生を開始する場合に、サンプル内のアクセスユニットの表示時間を取得して、再生を開始するアクセスユニットを決定する際に使用してもよい。ステップS66ではiに1を加算し、ステップS67において、iがframe_countより小さいか否かを判定し、小さい場合には、ステップS63からステップS67の処理を繰り返す。
次に、ステップS63においてアクセスユニットのサイズ情報を取得する手順の例を詳しく説明する。図48は、サンプルを構成するアクセスユニットのサイズを取得する手順を示す。ここで、変数 i、およびデータ読み出しポインタdata_ptrの初期値はともに0とする。また、mtszにおけるAU_sizeフィールド長のバイト数は、FieldSizeであるとする。
まず、ステップS71において、mahd内でボックスのタイプが'mtsz'であるボックスを検索する。ステップS72において検索結果を判定し、mtszが存在する際には、ステップS73において、データ読み出しポインタdata_ptrを、サンプルヘッダ内のmtszにおけるAU_DefaultSizeフィールドの開始位置にセットする。ステップS72において、mahd内にmtszが存在しないと判定された際には、ステップS74において、サンプルヘッダの初期値設定部分に含まれるデフォルトのmtszを取得して、データ読み出しポインタdata_ptrを、デフォルトmtszにおけるAU_DefaultSizeフィールドの開始位置にセットする。ステップS75において、AU_DefaultSizeの値を取得し、データ読み出しポインタdata_ptrに4を加算する。
続いて、ステップS76においてAU_DefaultSizeが0であるか否かを判定し、0でない際には、ステップS78において、サンプルを構成する全てのアクセスユニットのサイズとして、AU_DefaultSizeに示されるサイズを設定する。0である際には、テーブルのエントリーからAU_sizeを取得することにより、各アクセスユニットのサイズを取得する。まず、ステップS77において、AU_countの値を取得し、データ読み出しポインタdata_ptrに4を加算する。ここで、AU_countの値は、サンプルに含まれるアクセスユニットの数を示す。
次に、ステップS79において、サンプル内のi+1番目アクセスユニットのサイズを取得し、データ読み出しポインタに4を加算した後に、ステップS810においてiに1を加算する。ステップS811において、iとAU_countを比較し、iがAU_countより小さい場合には、ステップS79、S80およびステップS81までの処理を繰り返すことにより、サンプルを構成する全てのアクセスユニットのサイズを取得することができる。
(実施形態7)
第7の実施形態によるデータ処理装置は、1サンプルに複数ビデオピクチャが含まれるMP4ファイルを受け取って解析し、符号化データを復号して表示する。ここで、異なる2つのビデオピクチャにおいては、表示時間、復号時間の少なくとも一方が異なるとする。本実施形態においては、倍速再生などの特殊再生を効率よく行うことを目的としたMP4データ構造およびその逆多重化処理を提供する。
なお、本実施形態によるデータ処理装置の構成は、実施形態6におけるデータ処理装置の構成と同じである。ビデオデータは、MPEG−4 AVC形式で符号化されているとするが、他にMPEG−4 Visual、MPEG−2 VisualまたはH.263であってもよい。また、オーディオまたはテキストデータの複数フレームを1サンプルに格納してもよい。なお、1サンプルに複数のピクチャが含まれる際には、実施形態6において説明したサンプルヘッダを使用するとする。
MPEG−4 AVCでは、ビデオストリームを構成するピクチャ間の参照関係を柔軟に設定できる反面、倍速再生など特定のピクチャを選択的に再生する際には復号化するピクチャを決定することが困難である。ここで、図49を参照しながらピクチャ間の参照関係を説明する。図49は、一連のピクチャと各ピクチャの符号化タイプを示す。図49に示すように、ピクチャの符号化タイプは復号順にI−3、B−1、B−2、P−6、B−4、B−5、P−9、B−7、B−8・・であるものとし、各ピクチャの符号化タイプに付加された数字は表示順を示す。例えば、このような一連のピクチャを3倍速で再生するためには、I−1、P−6、P−9というようにIおよびPピクチャを再生すればよい。このとき、P−6がI−1のみを参照し、P−9がP−6のみを参照して復号化することができれば問題ない。しかし、MPEG−4 AVCでは、B−2を参照してP−6を復号する場合がある。そのため、予めピクチャ間の参照関係が既知でなければ、倍速再生時に復号化が必要なピクチャを決定することができない。各ピクチャがどのピクチャを参照しているかは、ピクチャを構成する全てのスライスついて、スライスヘッダを解析することにより取得できる。しかし、特殊再生時に全スライスを解析するのでは効率が悪い。
本実施形態におけるMP4ファイルでは、ピクチャ間の参照関係を示すために、(1)MPEG−4 AVC のSEI(Supplemental Enhancement Information)を使用する。または、(2)サンプルヘッダ内に、サンプルを構成するピクチャ間の参照関係を記述する。
ここで、ピクチャ間の参照関係を示すためにサブシーケンス、およびレイヤと呼ばれる構造を使用する。従来のMP4ファイルではstbl内のサンプルツーグループボックス(Sample To Group Box;sbgp)を用いてこれらの構造を記述するが、サブシーケンスおよびレイヤ構造をsbgpにより記述すると、sbgpのサイズが非常に大きくなり、結果としてmoovのサイズも増大するという問題がある。以下に説明する本実施形態によれば、MP4ファイルを使用することによりこの課題も解決される。
まず、SEIを使用してピクチャ間の参照関係を示す方法を説明する。SEIとは、ピクチャを復号化する際の利便性を向上させる目的で導入された付加情報であり、ピクチャデータに付加することにより使用する。ただし、SEIは復号化動作に直接関係するものではなく、SEIがなくてもピクチャデータを復号化することは可能である。MPEG−4 AVCでは、時間的なスケーラビリティを実現するために、サブシーケンス、およびレイヤと呼ばれる概念が導入され、そのためのSEIが用意されている。
最初に、図50(a)〜(c)を例に、サブシーケンスおよびレイヤを説明する。図50(a)〜(c)は、ビデオストリームとビデオストリームを構成するレイヤ0および1を示す。図50(a)は、ビデオストリームを構成する15枚のピクチャを示す。各ピクチャにはデコード順に1から15までの番号が付与されている。ビデオストリームはレイヤ0とレイヤ1の2つのレイヤに分けられている。図50(b)はビデオストリームのレイヤ0を示し、図50(c)はビデオストリームのレイヤ1を示す。レイヤ0は独立に復号化することができ、レイヤ1はレイヤ0またはレイヤ1のピクチャを参照して復号化される。さらに、各レイヤはサブシーケンスと呼ばれる単位に分割され、レイヤ0とレイヤ1は図示するようにそれぞれ2つのサブシーケンスに分割される。このように、N番目(Nは1以上の整数)のレイヤに属するサブシーケンス内のピクチャは、N番目以下のレイヤのサブシーケンスに属するピクチャのみを参照できる。
サブシーケンス、レイヤ関連SEIには、ピクチャが属するレイヤ番号、レイヤ内においてどのサブシーケンスに属するかを示す番号、およびピクチャが属するサブシーケンスの復号化時に参照されるサブシーケンスを示される。ストリームにおいては、ピクチャ毎にサブシーケンス、レイヤ関連のSEIを付加することにより、ピクチャが属するサブシーケンスのデータを復号化する際に、どのサブシーケンスを参照すればよいかが示される。例えば、レイヤ0とレイヤ1を共に復号化した際のフレームレートが30Hz、レイヤ0のみ復号化した際のフレームレートが15Hzであるとすると、ビットレートを低く抑えたいような場合にはレイヤ0のみ復号化して15Hz再生し、ビットレートの制約がない場合にはレイヤ0とレイヤ1を共に復号化して30Hzで再生するようなことができる。図51(a)〜(c)は、サブシーケンス、レイヤ関連SEIのシンタックスを示す。サブシーケンス、レイヤ関連のSEIとして、サブシーケンス情報(Sub-sequence information;SSI) SEI、サブシーケンスレイヤ特性(Sub-sequence layer characteristics;SSL)SEI、サブシーケンス特性(Sub-sequence characteristics;SSC) SEIの3つが定義されている。以下に、各SEIにおける主要なフィールドを説明する。
(1)SSI SEI
ピクチャが属するレイヤ、およびサブシーケンスを示す。
sub_seq_layer_num:サブシーケンスが属するレイヤの番号。
sub_seq_id:レイヤ内でのサブシーケンスのインデックス番号。
(2)SSL SEI
複数レイヤの各々の情報を示す。
num_sub_seq_layers_minus1:ストリームを構成するレイヤの個数。
average_bit_rate:レイヤの平均ビットレート。
average_frame_rate:レイヤの平均フレームレート。
(3)SSC SEI
サブシーケンス毎の情報を示す。
sub_seq_layer_num:サブシーケンスが属するレイヤの番号。
sub_seq_id:レイヤ内でのサブシーケンスのインデックス番号。
average_bit_rate:サブシーケンスの平均ビットレート。
average_frame_rate:サブシーケンスの平均フレームレート。
num_referenced_subseqs:参照するサブシーケンスの個数。
ref_sub_seq_layer_num:sub_seq_layer_num およびsub_seq_idにより示されるサブシーケンスを構成するピクチャの参照先ピクチャが含まれるレイヤ番号。
ref_sub_seq_id:sub_seq_layer_num およびsub_seq_idにより示されるサブシーケンスを構成するピクチャの参照先ピクチャが含まれるサブシーケンスのインデックス番号。なお、本フィールドにより示されるサブシーケンスが属するレイヤは、ref_sub_seq_layer_numにより示される。
ref_sub_seq_direction:参照先のサブシーケンスが、デコード順で参照元サブシーケンスより前にあるか後にあるかを示すフラグ情報。
ここで、従来の一般的なMP4ファイルにおいてサブシーケンスおよびレイヤ構造を記述する方法を説明する。まず、従来のMP4ファイルにおいては、サブシーケンスおよびレイヤ関連のSEIをビデオトラックのデータとして格納することは禁止されており、stbl内のボックスを使用してこれらSEIの情報を格納していた。
次に、SSL SEIとSSC SEIにより示される情報は、stbl内のサンプルグループ記述ボックス(Sample Group Description Box;sgpd)内に格納される。sgpdの構造はstsdの構造と類似しており、ビデオデータの復号時に必要となるデコーダの初期化情報がstsd内のエントリーに格納されるように、各SEIの情報がsgpd内のエントリーに格納される。SSL SEIのビットレートおよびフレームレート情報は、AVCLayerEntryと呼ばれるエントリーに格納される。AVCLayerEntryは1レイヤの情報を含むため、全てのレイヤの情報を設定するにはレイヤの個数分のAVCLayerEntryが必要となり、各エントリーは出現順序により決定されるエントリーのインデックス番号により記述される。
これらの内容は、stsd内のエントリーと同一である。同様に、SSC SEIの内容は、AVCSubSequenceEntryに格納されるため、結局AVCLayerEntry用とAVCSubSequenceEntry用の2つのsgpdが必要となる。さらに、AVCLayerEntry、およびAVCSubSequenceEntryとサンプルとを関連付けるために、Sample To Group Box('sbgp')を使用する。sbgpは、サンプルが参照するsgpd内のエントリーを示すフィールドを持つが、1つのsbgpあたり1種類のエントリーしか参照できない。このため、AVCLayerEntryおよびAVCSubSequenceEntryとサンプルを関連付けるには、2つのsbgp Boxを使用することになる。
図52および図53を参照しながら、サブシーケンス関連ボックスを使用した際のオーバーヘッドの見積もりを説明する。図52(a)〜(d)は、ビデオストリームとビデオストリームを構成するレイヤ0、1、2を示す。図52(a)はビデオストリームを構成する15枚のピクチャを示しており、復号順に符号化タイプはI、B、B、P、B、B、P、・・・、P、B、Bである。全てのピクチャを復号化した際のフレームレートは30Hzである。なお、符号化タイプの後に付加されている数字は、表示時間の順序を示している。15枚のピクチャは、符号化タイプにより3つのレイヤに分割されている。図52(b)はビデオストリームのレイヤ0を示し、図52(c)はビデオストリームのレイヤ1を示し、図52(d)はビデオストリームのレイヤ2を示す。レイヤ0はIピクチャ、レイヤ1はPピクチャ、レイヤ2はBピクチャから構成される。
レイヤ0からレイヤ2に属するピクチャは、それぞれサブシーケンス0−1、サブシーケンス1−1、サブシーケンス2−1に格納される。ここで、サブシーケンス0−1は単独で復号化され、サブシーケンス1−1はサブシーケンス0−1を参照して復号化され、サブシーケンス2−1はサブシーケンス0−1およびサブシーケンス1−1を参照して復号化される。なお、ビデオシーケンスは、これら15枚のピクチャと同一の構造が繰り返されたものであるとする。次に、図52(a)に示すビデオシーケンスをMP4ファイルに格納したときのオーバーヘッドを計算する。レイヤ0からレイヤ2までのレイヤに関する情報は、それぞれAVCLayerEntry用sgpd内の1から3番目のAVCLayerEntryに格納される。
また、サブシーケンス0−1、サブシーケンス1−1、およびサブシーケンス2−1の3つのサブシーケンスに関する情報は、それぞれAVCSubSequenceEntry用sgpdの1から3番目のAVCSubSequenceEntryに格納される。図53(a)はレイヤ用sbgpのテーブルデータを示し、図53(b)はサブシーケンス用sbgpのテーブルデータを示す。ここで、レイヤ用sbgpのindexはAVCLayerEntry用sgpdにおけるエントリー番号を示し、サブシーケンス用sbgpのindexはAVCSubSequenceEntry用sgpdにおけるインデックス番号を示す。sample_countは、同一のindex値をもつ連続したサンプルの個数を示す。レイヤ、サブシーケンス用のテーブルともに、エントリーの更新が頻繁に発生するため、サイズが大きくなる。
また、同一の構造をもつエントリーが繰り返されるため、テーブルが冗長となっている。sample_countとindexフィールドのサイズは共に4バイトであるため、図52に示した15枚のピクチャ(0.5秒分)に関する情報を示すためのデータサイズは、レイヤ用spgp、サブシーケンス用sbgp共に8*2*10 = 160バイトとなる。例えば、1時間分のデータを記録する場合には、2つのsbgp Boxを合わせたサイズは、2*160*(1/0.5)*3600 = 2304000バイトにも達する。sbgpはmoovに含まれるため、結果としてmoovのサイズが非常に大きくなってしまい、MP4ファイル再生時に必要なメモリのサイズが増大するという問題がある。また、sbgpを用いた従来の方法ではサブシーケンスおよびレイヤに関する情報をサンプル単位でしか記述できないため、サンプルに複数ピクチャのデータが格納される際には、ピクチャ毎のサブシーケンス関連情報を記述できないという問題もある。
本実施形態によるMP4ファイルは、上述のサブシーケンス、レイヤ構造を、特殊再生時に必要となるピクチャ間の参照関係を示すために使用される。さらに、ビデオトラックのデータとしてサブシーケンス、レイヤ関連SEIを使用できるものとし,sbgpを用いてサブシーケンス、レイヤ関連情報を示すことはしないとする。以下に、各SEIの使用方法を説明する。本MP4ファイルでは、ビデオストリームをランダムアクセス可能な複数の単位に分割し、ランダムアクセス可能な単位(以降、AVC-GOPと呼ぶ。)に基づいてピクチャ間の参照関係を示すとする。なお、以下では、1アクセスユニットは1ピクチャのデータから構成されるとして説明するが、1アクセスユニットが複数ピクチャのデータから構成されていてもよく、そのときも後述する構造と同じ構造を採用できる。
図54(a)〜(c)はAVC-GOPの構造を示す。AVC-GOPにおいては、先頭ピクチャは独立に復号化できるとする。AVC-GOPは、L(Lは1以上の整数)個のレイヤ、M(Mは1以上の整数)枚のピクチャ、各ピクチャはN(Nは1以上の整数)個のスライスから構成され、AVC-GOP内では1レイヤあたり1つのサブシーケンスを持つとする。先頭に配置されるSSL SEIは、ビデオストリームを構成するL個のレイヤ等の情報を示し、続いて配置されるL個のSSC SEIはレイヤ毎の情報を示し、その後にM枚分のピクチャデータが続く。各ピクチャデータの先頭にはSSI SEIが配置され、その後にN個のスライスデータが格納される。なお、ここではAVC-GOP内の各レイヤは1つのサブシーケンスから構成されるとしているが、各レイヤが複数のサブシーケンスから構成されていてもよく、そのときは、レイヤ内の全てまたは必要なサブシーケンスに関してのSSC SEIを配置すればよい。
なお、SSL、SSC、SSIの各SEIの配置順、および配置位置は図49(a)の構造に限るものではない。また、SSC SEIは、予めサブシーケンス間の参照関係を規定しておくことにより省略するとしてもよい。例えば、AVC-GOP内の各レイヤが1つのサブシーケンスから構成される際に、レイヤNに含まれるピクチャは、同一AVC-GOP内のN番目以下のレイヤに属するピクチャを参照すると規定しておけば、SSC SEIを省略することができる。また、本AVC−GOP構造はサブシーケンス、レイヤ関連SEI以外のSEIの使用を制限するものではなく、例えば、Random access point SEIをAVC-GOPの先頭に配置するとしてもよい。さらに、SSL SEIは全てのAVC-GOPに付与せずに、ビデオストリームにおける先頭GOPにのみ付加するものとしてもよいし、周期的に付加するものとしてもよい。
また、独立に復号化できるピクチャをAVC-GOPの先頭以外のピクチャとして配置するとしてもよい。また、AVC-GOP構造の使用はMP4に制限されるものではなく、MPEG−2 TS(Transport Stream)やPS(Program Stream)など他の多重化フォーマットにおいて使用してもよい。また、ランダムアクセス可能な単位毎でなくても、ピクチャ毎にSSL SEIおよびSSC SEIを付加するとしてもよい。また、AVC-GOPという単位を設定せずに任意の位置でSSL,SSC,SSIを使用して参照関係を示すとしてもよい。
図54(b)および(c)は、サブシーケンス、レイヤ関連SEIを利用して規定したサンプル構造を示す。各サンプルにはサンプルヘッダも付加されるが、ここでは省略している。frame_countが1である際は、1サンプルに1ピクチャ分のデータが格納されるため、図54(b)に示される構造にしたがってサンプルが決定される。サンプル1は、AVC-GOPにおける先頭ピクチャのデータを格納するサンプルであり、AVC-GOP内でのサブシーケンス、および、レイヤ情報を示すSEIであるSSL SEIとSSC SEIも同時に格納する。AVC-GOP内での2番目からM番目までのピクチャのデータは、それぞれサンプル2からサンプルMに格納される。
frame_countが1より大きい際には、1サンプルにはAVC-GOPを構成する全てのピクチャのデータを格納するとし、サンプルは図54(c)に示すように、AVC-GOPと同一の構造をとる。なお、frame_countが1より大きい際にも、AVC-GOPのデータを複数のサンプルに分割して格納するとしてもよい。
以下に、MPEG−4 AVCのストリームに対してサブシーケンス、およびレイヤを適用する際の具体例を示す。図55(a)〜(d)は、ビデオストリームとビデオストリームを構成するレイヤ0、1、2を示す。この図55(a)〜(d)は、AVC-GOP内でどのようにサブシーケンス、およびレイヤが使用されるかを示している。図55(a)は、ビデオストリームを構成するAVC-GOP内の15枚のピクチャを示しており、復号順に符号化タイプはI、B、B、P、B、B、P、・・・、P、B、Bである。全てのピクチャを復号化した際のフレームレートは30Hzである。
15枚のピクチャは、符号化タイプにより3つのレイヤに分割されている。図55(b)はビデオストリームのレイヤ0を示し、図55(c)はビデオストリームのレイヤ1を示し、図55(d)はビデオストリームのレイヤ2を示す。レイヤ0はIピクチャ、レイヤ1はPピクチャ、レイヤ2はBピクチャから構成される。
AVC-GOP内のレイヤ0からレイヤ2に属するピクチャは、それぞれサブシーケンス0−1、サブシーケンス1−1、サブシーケンス2−1に格納される。ここで、サブシーケンス0−1は単独で復号化され、サブシーケンス1−1はサブシーケンス0−1を参照して復号化され、サブシーケンス2−1はサブシーケンス0−1およびサブシーケンス1−1を参照して復号化される。
各ピクチャの表示時間間隔は固定であるため、レイヤ0のみ復号化する際のフレームレートは2Hz、レイヤ0とレイヤ1を復号化する際のフレームレートは10Hz、レイヤ0からレイヤ2まで全てを復号化する際のフレームレートは30Hzになる。ビットレートは、レイヤ0のみでは64kbps、レイヤ0とレイヤ1の合計で96kbps、レイヤ0からレイヤ2までの合計で128kbpsとする。図56(a)〜(c)は、図55(a)に示すAVC-GOPに格納されるSSL、SSC、SSIの各SEIのフィールド値を示す。図56(a)は、N(Nは0から2までの整数)番目レイヤに関して、N番目までの全てのレイヤを合計した際の平均ビットレート、および平均フレームレートを格納するSSL SEIを示す。
次に、図56(b)は、N(Nは0から2までの整数)番目レイヤに含まれるサブシーケンスが参照するサブシーケンスの情報が格納されるSSC SEIを示す。例えば、レイヤ2のサブシーケンス1は、レイヤ0のサブシーケンス1、およびレイヤ1のサブシーケンス1を参照することが示される。さらに、図56(c)は、ピクチャ毎に付加されるSSI SEIを示す。SSI SEIには、各ピクチャが属するレイヤ、およびサブシーケンスの情報が格納される。例えば、ピクチャI−3はレイヤ0のサブシーケンス1に、ピクチャB−4は、レイヤ2のサブシーケンス1に含まれることが示される。
上述の説明は、レイヤ、サブシーケンスの設定例であり、レイヤとサブシーケンスの定義を満たしていれば自由に設定することができる。続いて、図57(a)および(b)は、図55のAVC-GOPデータをMP4サンプルに格納したときのサンプル構造を示す。まず、frame_countが1であるとき、すなわち1サンプルに1ピクチャのデータが含まれるときは、ピクチャI−3のデータを含むサンプルにSSL SEI、SSC SEIが設けられ、それ以降のサンプルはピクチャデータのみを含む。また、frame_countが1より大きいとき、すなわち1サンプルに複数ピクチャのデータが含まれるときは、AVC-GOPの全てのデータが1サンプルに格納される。なお、SSI SEIは各ピクチャデータに含まれるとする。
次に、サンプルヘッダを利用して、サンプルを構成するピクチャ間の参照関係を記述する例を説明する。実施形態6では、サンプルヘッダ内に新たなボックスを導入して新規の情報を追加できることを説明した。本実施形態においては、サブシーケンスとレイヤに関する情報を格納するためにサンプル・ツー・レイヤ・サブシーケンスボックス(SampleToLayerSubSequenceBox;stls)を新たに追加して使用する。stlsは、サンプル内のピクチャが参照するAVCLayerEntryとAVCSubSequenceEntryを示しており、オーバーヘッドを削減するために両エントリへの参照情報は同一のボックスに格納される。
なお、AVCLayerEntryとAVCSubSequenceEntryは従来のMP4と同様に、stbl内のsgpdに格納される。図58(a)は、サンプル・ツー・レイヤ・サブシーケンスボックスstlsのシンタックス例を示す。図58(a)において、layer_description_indexとsub-sequence_description_indexは、それぞれピクチャが参照するAVCLayerEntryとAVCSubSequenceEntryのエントリー番号を示し、picture_countは同一のAVCLayerEntryとAVCSubSequenceEntryを参照する連続したピクチャの個数を示す。picture_count, layer_description_index, およびsub_sequence_description_indexフィールドをまとめてピクチャレベルエントリと称すると、同一のサブシーケンス、レイヤ関連情報をもつピクチャが周期的に現れるような場合には、同一のピクチャレベルエントリが周期的に繰り返す。このため、ピクチャレベルエントリが周期構造をもつときは、entry_countを用いて同一の周期構造が連続する個数を示すことにより、テーブルサイズを削減する。
図58(b)は、図55のAVC-GOPを1サンプルに格納したときのstlsのテーブル構造を示す。4枚目以降のピクチャの情報には周期性があるため、entry_countを使用することによってテーブルサイズが大幅に削減されている。なお、各フィールドのビット数およびフィールドの並びは例であり、異なるビット数やフィールドの並びを使用してもよい。
なお、サブシーケンスまたはレイヤに限定せずに、ピクチャと、ピクチャの属する複数のグループとの関係を記述できるボックスを定義してもよい。複数のグループにはそれぞれ独立のstsdが存在し、ピクチャはこれらstsd内エントリと関連付けられる。本明細書では、そのようなボックスをサンプル・ツー・マルチグループボックス(SampleToMultiGroupBox;stmg)として定義する。図58(c)は、サンプル・ツー・マルチグループボックス(SampleToMultiGroupBox;stmg)のシンタックス例を示す。num_of_related_grouping_typeは、ピクチャと関連付けられるグループの個数を示す。grouping_typeはグループの識別子であり、例えばサブシーケンスやレイヤを示す識別子が格納される。total_entry_count, entry_count, およびpicture_countの定義は、stlsと同様である。picture_indexフィールドには、ピクチャが属するグループ全てに関し、ピクチャが参照するstsd内のエントリーのインデックス番号が格納される。例えば、stmgを用いてレイヤとサブシーケンスの情報を格納する際には、num_of_related_grouping_typeが2となり、grouping_typeには、それぞれの識別子を順に格納する。
さらに、grouping_indexフィールドには、ピクチャが参照するAVCLayerEntryとAVCSubSequenceEntryのインデックス番号を順に格納する。また、stlsにも、サンプルヘッダにおける他のボックスと同様に、サンプルヘッダの初期値設定部分においてデフォルト値を設定することができるため、stlsの内容がデフォルト値と同一であれば、サンプル内のサンプルヘッダにおいてはstlsを設定しなくてもよい。また、entry_countフィールドなどを用いて周期構造を表現せずに各ピクチャの情報を順次格納するとしてもよい。また、サブシーケンスとレイヤの情報を別々の独立したボックスを使用して格納するとしてもよい。なお、stlsおよびstmgはサンプルヘッダ内における使用に限定されるものではなく、moovまたはmoof内で使用するとしてもよい。
続いて、ピクチャ間の参照関係を記述するときの、(1)SEIの使用と(2)サンプルヘッダのstlsの使用とを使い分ける基準を説明する。
使い分けは、stsdのエントリ内に新規に定義するフラグにより行う。本明細書では、このフラグをsubseq_flagと称する。subseq_flagがセットされているときは、ビデオトラック内に設定されるサブシーケンスおよびレイヤ関連SEIを用いてピクチャ間の参照関係を示す。サンプルヘッダのstlsは使用されない。次に、subseq_flagがセットされていないときは、サンプルヘッダのstlsを使用する。一方、サブシーケンス、およびレイヤ関連SEIをビデオトラック内に含めることは禁止される。すなわち、ピクチャ間の参照関係を取得する際にはまずsubseq_flagの値を調べる。そして、subseq_flagがセットされていればサンプル内のピクチャデータに付加されたSSL, SSC, およびSSIの各SEIから参照関係を取得し、subseq_flagがセットされていなければサンプルヘッダのstlsからピクチャの参照関係を取得する。なお、subseq_flagはmoov内であればstsdのエントリ以外の場所で設定するとしてもよいし、フラグとする代わりにボックス構造を用いるとしてもよい。
subseq_flagがセットされていないときであっても、サブシーケンス、レイヤ関連SEIをビデオトラック内に含めることを禁止しないとしてもよい。これにより、MP4ファイルのビデオトラックに格納されたMPEG−4 AVCデータを取り出して、トランスポートストリーム(TS)等の異なるフォーマットに変換するときに、変換後のフォーマットにおいてサブシーケンス、レイヤ関連SEIを使用するような場合においても、ビデオトラックのデータをそのまま利用できる。
また、subseq_flagを使用せずにframe_countの値によって使い分けるとしてもよい。例えば、frame_countが1より大きい際にはサンプルヘッダが使用されるため、参照関係もstlsを用いて設定するとし、frame_countが1である際にはSEIを用いるとしてもよい。さらに、subseq_flagが設定されている際にはSEIを用いるとし、設定されていない際には従来通りsbgpを用いて参照関係を示すとしてもよい。また、サブシーケンス、レイヤ関連SEIは使用せずに、従来通りのsbgpを用いる方法と、サンプルヘッダのstlsを用いる方法をsubseq_flagの値により切り替えるとしてもよい。さらにまた、予めサブシーケンス、レイヤ関連SEI、または、stlsのどちらか一方を使用するとしてもよい。
以上説明したように、本実施形態のMP4ファイルを使用することにより、ビデオトラック内のピクチャの参照関係を容易に取得できる。よって、倍速再生等の特殊再生時に復号または表示するピクチャを効率的に決定できる。また、frame_count値が1より大きく、1サンプルに複数ピクチャが含まれる際にもピクチャ単位での参照関係を示すことできる。さらに、ピクチャの参照関係に関する情報をサンプルヘッダまたはSEIを使用してmdat内に格納することができるため、moovのサイズを削減できる。
以下、本実施形態によるデータ処理装置を説明する。本実施形態によるデータ処理装置の構成は、図35に示すデータ処理装置の構成と同じであり、その基本的な動作もまた既に説明したとおりである。よって、以下では本実施形態によるデータ処理装置の動作、具体的には、特殊再生時における、サンプル解析部307および復号表示部308の動作を説明する。データ処理装置は、特殊再生時には選択したピクチャのみを表示するが、再生するピクチャを復号化するためには選択したピクチャ以外のピクチャの復号化が必要になることがある。よって、データ処理装置は、復号のみ行うピクチャと復号および表示の両方を行うピクチャとを区別しなければならない。そこで、以下、データ処理装置の特殊再生時の動作を説明する。
サンプル解析部307は、ビデオトラックに含まれるピクチャ間の参照関係を取得し、復号化するピクチャ、および表示するピクチャを決定する。その後、サンプル解析部307は、ピクチャデータd309とともに、ピクチャデータd309を復号化して表示するのか、または、復号のみ行うのかを識別するための識別信号を復号表示部308に出力する。復号表示部308は、ピクチャデータd309を復号化し、受け取った識別信号によって表示が指示されているときは表示を行い、指示されていないときは表示を行わない。
図59は、選択したピクチャのみを再生する際のサンプル解析部307および復号表示部308の処理の手順を示す。
まず、ステップS91において、stsdのエントリー内に格納されたsubseq_flagの値を取得する。subseq_flagがセットされていれば、ピクチャの参照関係はビデオトラックのデータに含まれるサブシーケンス、レイヤ関連SEIから取得し、セットされていなければ、サンプルヘッダ内のstlsから取得することが決定される。続いて、ステップS92において、レイヤのフレームレートやビットレート、またはサブシーケンスの参照関係に基づいて、表示するサブシーケンスを決定する。
なお、サブシーケンスに含まれるピクチャの全てを表示せずに、特定のピクチャのみを表示するとしてもよい。ステップS93においては、ステップS92において表示すると決定したサブシーケンスのピクチャを復号化する際に参照するサブシーケンスを特定し、ステップS94において、これら参照先サブシーケンスに含まれるピクチャを復号化する。最後に、ステップS95において、表示するピクチャを復号化して表示する。ここで、ステップS91からステップS93までの処理がサンプル解析部307において行われ、以降の処理は復号表示部308において行われる。
本明細書で説明した各実施形態によるデータ処理装置の多重化処理および逆多重化処理は、そのような処理の手順を規定するコンピュータプログラムに基づいて実現される。コンピュータプログラムは、フレキシブルディスク、CD−ROM等の記録媒体に記録して市場に流通させ、または、インターネット等の電気通信回線を通じて伝送することにより、例えば、コンピュータシステムを記録装置および/または再生装置として動作させることができる。
図60(a)は、記録媒体の例としてフレキシブルディスク(FD)の物理フォーマットの例を示す。フレキシブルディスクFDの表面には、同心円状に外周からは内周に向かって複数のトラックTrが形成され、各トラックは角度方向に16のセクタSeに分割されている。上述のプログラムは、フレキシブルディスクFD上に割り当てられた所定の領域に記録されている。図60(b)は、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示す。フレキシブルディスクFDはケースF内に内蔵されている。
また、図60(c)は、フレキシブルディスクFDにプログラムの書き込みおよび読み出しを行うための機器構成を示す。データ処理装置における多重化処理および/または逆多重化処理を実現するプログラムは、コンピュータシステムCsから転送され、フレキシブルディスクドライブ(FDD)によってフレキシブルディスクFDに書き込まれる。また、プログラムが格納されたフレキシブルディスクFDがFDDに装填されると、コンピュータシステムCsはそのプログラムを読み出して実行し、多重化処理および/または逆多重化処理を実現することができる。
なお、記録媒体はフレキシブルディスクに限らず、CD−ROM等の光ディスク、ICカード、ROMカセット等の半導体記録媒体等であってもよい。
本発明の各実施形態においては、主としてMP4ファイルに関して説明した。しかし、MP4規格の大部分の仕様はApple(登録商標)社のQuickTime(TM)ファイルフォーマットをベースにして規定され、一部において規定、名称が異なるが、その仕様の内容は両者の間でほぼ同様である。上述の説明は、一般的には、フィールド名に付される"Box"(ボックス)を"Atom"(アトム)に置換することによって、QuickTime規格に対応できる。
本発明のデータ処理装置によれば、現サンプルと次サンプルにおける復号開始時間の差分値を、サンプルを構成するフレーム数で割ることにより、各フレームの復号時間が得られる。また、サンプルを構成するアクセスユニットの復号時間と表示開始時間が異なる場合や、アクセスユニットにスタートコードが含まれない場合にも、データ処理装置は、アクセスユニットを解析せずに、高速にかつ低負荷でアクセスユニット毎の時間情報やサイズを取得することができる。
また、上述のデータ構造によれば、サンプルを構成するアクセスユニットの復号、表示時間情報、あるいはサイズを、アクセスユニットとは別の情報としてサンプル内に格納するため、アクセスユニットを解析せずにアクセスユニット単位の情報を取得できる。また、各フレームにおいて復号時間と表示開始時間とが異なる際にも、フレームの正しい表示時間を取得することができる。また、サンプルを構成するフレームの表示時間情報として、符号化データ内の時間情報をそのまま使用することができるので、時間情報を取得するためのデータ処理装置の負荷が削減できる。
さらに、上述のデータ構造によれば、動画像データのフレームレートが固定である際には、サンプルの復号時間情報としてデフォルト値のみを設定することにより、サンプルを構成するフレームの復号時間情報が容易に取得できるとともに、オーバーヘッドも削減できる。また、1GOPを1サンプルとするなどサンプルの構造が既知である際には、サンプル内の符号化データから、サンプルを構成する各フレームの情報を取得することにより、サンプルにおけるオーバーヘッドを削減できる。また、サンプルを構成するフレームに関する情報がデフォルト値と異なる際にのみ、フレームに関する情報をサンプル内に格納することにより、フレームに関する情報を効率よく格納できる。
さらに、上述のデータ構造によれば、サンプルを構成するフレームが復号時に参照する参照先フレームを特定するために必要な情報をサンプルヘッダが含むことにより、倍速再生などの特殊再生時に、復号する必要のあるフレームを容易に特定できる。サンプルを構成するフレームが復号時に参照する参照先フレームを特定するために必要な情報を、ビデオストリーム自体が含んでいるので、倍速再生などの特殊再生時に、復号する必要のあるフレームを容易に特定できるという効果が得られる。サンプルを構成するフレームが復号時に参照する参照先フレームを特定するために必要な情報が格納される場所を示す識別情報を含むことにより、特殊再生時に使用するフレーム間の参照関係に関する情報の格納場所を特定できる。
本発明によれば、例えば、動画ストリーム中の映像ストリームの1フレームと1ビデオサンプルを対応させた場合と比較して、付属情報のサイズを小さくすることができ、かつ、エラーが発生した場合でもエラーの伝播を抑制できるデータ構造が提供される。
MP4ファイル1の構成を示す図である。 MP4ファイルの他の構成を示す図である。 MP4ファイル1のデータ構造を示す図である。 従来の再生装置400のブロック図である。 MP4ファイル1が記録されるDVD−RAMディスク131の領域132、133を示す図である。 複数フレームのGOP14を1サンプルに対応させたMP4ファイル11のデータ構造を示す図である。 (a)〜(d)は、MPEG2映像ストリームの階層化されたデータ構造を示す図である。 (a)〜(d)は、MPEG2映像ストリームでエラーが発生したときのエラー伝播の様子を示す図である。 (a)〜(d)は、ユニークコードを持たない動画ストリームにおいて復号エラーが発生したときのエラー伝播の様子を示す図である。 (a)はフレームスキップが発生したサンプル(GOP)を模式的に示す図であり、(b)はサンプルの表示時間長に対して均等に割り当てられた各フレームの表示時間長を示す図であり、(c)はサンプルの表示時間長に対する各フレームの正しい表示時間長を示す図である。 実施形態1によるデータ処理装置10のブロック図である。 データ処理装置10によって記録されるMP4ファイル21の構成を示す図である。 データ処理装置10の記録処理の手順を示すフローチャートである。 (a)〜(d)は、MP4ファイル21を構成する動画ストリームにおいて、復号エラーが発生したときのエラー伝播の様子を示す図である。 各ビデオフレームを構成するスライスの数および各スライスのデータサイズの情報を記述した拡張情報の例を示す図である。 (a)〜(d)は、動画ストリームにおいて復号エラーが発生したときのエラー伝播がスライス内で収まる様子を示す図である。 各ビデオフレームの表示持続時間を記述した拡張情報の例を示す図である。 (a)はフレームスキップが発生したビデオフレーム群を模式的に示す図であり、(b)は表示時間をすべてのフレームで均一に設定したときのビデオフレーム群を模式的に示す図である。 ボックス40のデータ構造を示す図である。 (a)は基本部50のデータ構造を示す図であり、(b)はmoov52のデータ構造を示す図である。 (a)はtrak53のデータ構造を示す図であり、(b)はボックスstsd56内の複数のエントリーに設定されたフィールドframe_countを示す図である。 基本部50と拡張部60とを含むMP4ファイルのデータ構造を示す図である。 moof61のデータ構造を示す図である。 実施形態2によるデータ処理装置170の記録機能に関するブロック図である。 ヘッダ生成部175が復号開始時間の差分値、および、サンプルを構成するフレーム数の決定手順を示すフローチャートである。 ヘッダ生成部175における、サンプルを構成するフレームの決定手順を示すフローチャートである。 決定されたサンプルとフレームとの関係を示す図である。 決定されたサンプルとフレームとの関係を示す他の例を示す図である。 符号化データ内のフレームをサンプルに多重化する手順を示すフローチャートである。 GOP内のフレームが格納されたサンプルを示す図である。 実施形態4によるデータ処理装置200のブロック図である。 (a)〜(c)は、サンプルの構造、およびサンプルに含まれる各フレームに関しての、次フレームとの復号時間の差分値の例を示す図である。 (a)〜(c)は、MP4ファイルのサンプル構造を示す図である。 (a)は表示時間およびアクセスユニットをまとめて格納したサンプルを示す図であり、(b)は(a)のサンプル構造を実現するシンタックス例を示す図であり、(c)は表示時間情報の次にアクセスユニットのサイズを示すフィールドを追加した例を示す図である。 第5の実施形態によるデータ処理装置300の構成を示すブロック図である。 サンプル解析部307がサンプルからピクチャデータを取得する処理の手順を示すフローチャートである。 アクセスユニットのデータ構造を示す図である。 (a)はマルチAUヘッダボックス(Multi AU header Box)および複数のアクセスユニットを格納したサンプルのデータ構造を示す図であり、(b)はサンプルヘッダのデータ構造を示す図である。 サンプルヘッダをサンプル内の最終データとして配置する際の例を示す図である。 (a)はmtszのデータ構造を示す図であり、(b)はmdtaのデータ構造を示す図であり、(c)はmctaのデータ構造を示す図である。 (a)はボックスを使用したときのサンプルヘッダの初期値設定部分のシンタックス例を示す図であり、(b)はボックスを使用しないときのサンプルヘッダの初期値設定部分のシンタックス例を示す図である。 (a)〜(d)は、それぞれmahd、mtsz、mdta、およびmctaの各シンタックスの例を示す図である。 (a)〜(c)は、サンプルヘッダにデータを格納するための第1の例を示す図である。 (a)および(b)は、サンプルヘッダにデータを格納するための第2の例を示す図である。 (a)は1サンプル内のアクセスユニットの各々にサンプルヘッダを付加した例を示す図であり、(b)はN未満の複数のアクセスユニットに1つのサンプルヘッダを付加した例を示す図である。 (a)および(b)は、ボックス構造を用いないときのサンプル構造およびシンタックス例を示す図である。 サンプル解析部307がサンプルからピクチャデータを取得する処理の手順を示すフローチャートである。 サンプルを構成するアクセスユニットのサイズを取得する動作を示すフローチャートである。 一連のピクチャと各ピクチャの符号化タイプを示す図である。 (a)〜(c)は、ビデオストリームとビデオストリームを構成するレイヤ0および1を示す図である。 (a)〜(c)は、サブシーケンス、レイヤ関連SEIのシンタックスを示す図である。 (a)〜(d)は、ビデオストリームとビデオストリームを構成するレイヤ0、1、2を示す図である。 (a)はレイヤ用sbgpのテーブルデータを示す図であり、図53(b)はサブシーケンス用sbgpのテーブルデータを示す図である。 (a)〜(c)は、AVC-GOPの構造を示す図である。 (a)〜(d)は、ビデオストリームとビデオストリームを構成するレイヤ0、1、2を示す図である。 (a)〜(c)は、図55(a)に示すAVC-GOPに格納されるSSL、SSC、SSIの各SEIのフィールド値を示す図である。 (a)および(b)は、図55のAVC-GOPデータをMP4サンプルに格納したときのサンプル構造を示す図である。 (a)はサンプル・ツー・レイヤ・サブシーケンスボックスstlsのシンタックス例を示す図であり、(b)は図55のAVC-GOPを1サンプルに格納したときのstlsのテーブル構造を示す図であり、(c)は、サンプル・ツー・マルチグループボックスstmgのシンタックス例を示す図である。 選択したピクチャのみを再生する際のサンプル解析部307および復号表示部308の処理の手順を示すフローチャートである。 (a)は記録媒体の例としてフレキシブルディスク(FD)の物理フォーマットの例を示す図であり、(b)はフレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示す図であり、(c)はフレキシブルディスクFDにプログラムの書き込みおよび読み出しを行うための機器構成を示す図である。
符号の説明
10 データ処理装置
100 映像信号受信部
101 動画ストリーム生成部
102 音声信号受信部
103 付属情報生成部
104 拡張情報生成部
105 多重化部
110 映像信号出力部
111 動画ストリーム復号部
112 音声信号出力部
113 再生部
118 付属情報保持メモリ
120 記録部
130 光ピックアップ

Claims (30)

  1. 映像信号および音声信号の少なくとも一方の信号を受け取る受信部と、
    前記信号を所定の符号化形式で符号化して、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリームを生成するストリーム生成部と、
    各再生用データを特定するための拡張情報を生成する拡張情報生成部と、
    1以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成する付属情報生成部と、
    前記符号化ストリームおよび前記拡張情報を多重化してデータストリームを生成する多重化部と、
    前記データストリームおよび前記付属情報を記録媒体に記録する記録部と
    を備えたデータ記録装置。
  2. 前記付属情報生成部は、さらに、複数の再生用データからなるグループ単位にアクセスするためのアクセスデータを生成する、請求項1に記載のデータ記録装置。
  3. 前記付属情報生成部は、前記グループ単位を第1サンプルとしたときの前記第1サンプルごとのアクセスデータを生成し、かつ、前記拡張情報を第2サンプルとしたときの前記第2サンプルごとのアクセスデータを生成する、請求項1に記載のデータ記録装置。
  4. 前記多重化部は、前記符号化ストリームおよび前記拡張情報を、前記第1サンプルごとおよび前記第2サンプルごとに多重化して前記データストリームを生成する、請求項3に記載のデータ記録装置。
  5. 前記付属情報生成部は、前記グループ単位と、前記グループに含まれる1以上の再生用データに関する前記拡張情報とを1サンプルとしたときの、前記サンプルごとのアクセスデータを生成する、請求項1に記載のデータ記録装置。
  6. 前記多重化部は、前記符号化ストリームおよび前記拡張情報を、前記サンプルごとに多重化して前記データストリームを生成する、請求項5に記載のデータ記録装置。
  7. 前記受信部は、映像信号および音声信号を受け取り、
    前記ストリーム生成部は、前記映像信号および前記音声信号をそれぞれ所定の符号化形式で符号化して、複数の映像のピクチャデータおよび複数の音声フレームのフレームデータを含む符号化ストリームを生成し、
    前記拡張情報生成部は、少なくとも各ピクチャデータを特定するための拡張情報を生成し、
    前記付属情報生成部は、前記ピクチャデータ、前記複数の音声フレームのフレームデータおよび前記拡張情報の各々について、少なくとも2以上のピクチャデータからなるグループ単位にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成する、請求項1に記載のデータ記録装置。
  8. 前記拡張情報生成部は、さらに前記複数の音声フレームの各フレームデータを特定するための拡張情報を生成する、請求項7に記載のデータ記録装置。
  9. 前記記録部は、前記データストリームおよび前記付属情報を1つのデータファイルとして前記記録媒体に記録する、請求項1に記載のデータ記録装置。
  10. 前記拡張情報生成部は、前記各再生用データのデータサイズ、表示時間、復号時間を示す情報の少なくとも1つを前記拡張情報として生成する、請求項1に記載のデータ記録装置。
  11. 前記付属情報生成部は、前記拡張情報の既定値をさらに含む前記付属情報を生成し、
    前記拡張情報生成部は、前記既定値と異なる値を有する前記拡張情報を生成する、請求項1に記載のデータ記録装置。
  12. 前記拡張情報生成部は、前記映像信号の各ピクチャデータを復号するために参照される参照先ピクチャデータを特定するための拡張情報を生成する、請求項1に記載のデータ記録装置。
  13. 前記付属情報生成部は、リンク情報をさらに含む前記付属情報を生成し、
    前記記録部は、前記前記データストリームを、前記リンク情報によって指定される第1データファイルとして前記記録媒体に記録し、前記付属情報を第2データファイルとして前記記録媒体に記録する、請求項1に記載のデータ記録装置。
  14. 映像信号および音声信号の少なくとも一方の信号を受け取るステップと、
    前記信号を所定の符号化形式で符号化して、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリームを生成するステップと、
    各再生用データを特定するための拡張情報を生成するステップと、
    1以上の再生用データからなるグループ単位 にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成するステップと、
    前記符号化ストリームおよび前記拡張情報を多重化してデータストリームを生成するステップと、
    前記データストリームおよび前記付属情報を記録媒体に記録するステップと
    を包含するデータ記録方法。
  15. 前記付属情報を生成するステップは、さらに、複数の再生用データからなるグループ単位にアクセスするためのアクセスデータを生成する、請求項14に記載のデータ記録方法。
  16. 前記付属情報を生成するステップは、前記グループ単位を第1サンプルとしたときの前記第1サンプルごとのアクセスデータを生成し、かつ、前記拡張情報を第2サンプルとしたときの前記第2サンプルごとのアクセスデータを生成する、請求項14に記載のデータ記録方法。
  17. 前記データストリームを生成するステップは、前記符号化ストリームおよび前記拡張情報を、前記第1サンプルごとおよび前記第2サンプルごとに多重化して前記データストリームを生成する、請求項16に記載のデータ記録方法。
  18. 前記付属情報を生成するステップは、前記グループ単位と、前記グループに含まれる1以上の再生用データに関する前記拡張情報とを1サンプルとしたときの、前記サンプルごとのアクセスデータを生成する、請求項14に記載のデータ記録方法。
  19. 前記データストリームを生成するステップは、前記符号化ストリームおよび前記拡張情報を、前記サンプルごとに多重化して前記データストリームを生成する、請求項18に記載のデータ記録方法。
  20. 前記受信するステップは、映像信号および音声信号を受け取り、
    前記符号化ストリームを生成するステップは、前記映像信号および前記音声信号をそれぞれ所定の符号化形式で符号化して、複数の映像のピクチャデータおよび複数の音声フレームのフレームデータを含む符号化ストリームを生成し、
    前記拡張情報を生成するステップは、少なくとも各ピクチャデータを特定するための拡張情報を生成し、
    前記付属情報を生成するステップは、前記ピクチャデータ、前記複数の音声フレームのフレームデータおよび前記拡張情報の各々について、少なくとも2以上のピクチャデータからなるグループ単位にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成する、請求項14に記載のデータ記録方法。
  21. 前記拡張情報を生成するステップは、さらに前記複数の音声フレームの各フレームデータを特定するための拡張情報を生成する、請求項20に記載のデータ記録方法。
  22. 前記記録するステップは、前記データストリームおよび前記付属情報を1つのデータファイルとして前記記録媒体に記録する、請求項14に記載のデータ記録方法。
  23. 前記拡張情報を生成するステップは、前記各再生用データのデータサイズ、表示時間、復号時間を示す情報の少なくとも1つを前記拡張情報として生成する、請求項14に記載のデータ記録方法。
  24. 前記付属情報を生成するステップは、前記拡張情報の既定値をさらに含む前記付属情報を生成し、
    前記拡張情報を生成するステップは、前記既定値と異なる値を有する前記拡張情報を生成する、請求項14に記載のデータ記録方法。
  25. 前記拡張情報を生成するステップは、前記映像信号の各ピクチャデータを復号するために参照される参照先ピクチャデータを特定するための拡張情報を生成する、請求項14に記載のデータ記録方法。
  26. 前記付属情報を生成するステップは、リンク情報をさらに含む前記付属情報を生成し、
    前記記録するステップは、前記前記データストリームを、前記リンク情報によって指定される第1データファイルとして前記記録媒体に記録し、前記付属情報を第2データファイルとして前記記録媒体に記録する、請求項14に記載のデータ記録方法。
  27. 記録媒体に記録されたデータを再生するデータ再生装置であって、
    前記記録媒体には、データストリームおよび付属情報が記録されており、
    前記データストリームには、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリーム、および、各再生用データを特定するための拡張情報が多重化されており、
    前記付属情報には、1以上の再生用データからなるグループ単位にアクセスするためのアクセスデータが含まれており、
    前記記録媒体から前記データストリームおよび前記付属情報を読み出して、前記データストリームを前記符号化ストリームと前記拡張情報とに分離する再生部と、
    前記符号化ストリームを復号化するストリーム復号部であって、前記付属情報のアクセスデータを解析して前記グループ単位を特定し、前記拡張情報に基づいて、前記グループ単位の各ピクチャデータを特定する解析部、および、特定された前記各再生用データを復号する復号部を備えたデータ再生装置。
  28. 記録媒体に記録されたデータを再生するデータ再生方法であって、
    前記記録媒体には、データストリームおよび付属情報が記録されており、
    前記データストリームには、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリーム、および、各再生用データを特定するための拡張情報が多重化されており、
    前記付属情報には、1以上の再生用データからなるグループ単位にアクセスするためのアクセスデータが含まれており、
    前記記録媒体から前記データストリームおよび前記付属情報を読み出すステップと、
    前記データストリームを前記符号化ストリームと前記拡張情報とに分離するステップと、
    前記付属情報のアクセスデータを解析して前記グループ単位を特定するステップと、
    前記拡張情報に基づいて、前記グループ単位の各再生用データを特定するステップと、
    特定された前記各再生用データを復号化するステップと
    を包含するデータ再生方法。
  29. データ再生装置の再生部によって分離されるデータストリームおよび付属情報が規定されたデータ構造であって、
    前記データストリームは、前記データ再生装置のストリーム復号部によって復号化される符号化ストリーム、および、拡張情報が多重化されており、
    前記符号化ストリームは、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含み、
    前記拡張情報は各再生用データを特定するための情報であり、
    前記付属情報は、前記データ処理装置の解析部によって解析され、1以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含む、データ構造。
  30. データ再生装置の再生部によって分離されるデータストリームおよび付属情報が記録された記録媒体であって、
    前記データストリームは、前記データ再生装置のストリーム復号部によって復号化される符号化ストリーム、および、拡張情報が多重化されており、
    前記符号化ストリームは、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含み、
    前記拡張情報は各再生用データを特定するための情報であり、
    前記付属情報は、前記データ処理装置の解析部によって解析され、1以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含む、記録媒体。
JP2003375223A 2002-11-05 2003-11-05 データ処理装置 Pending JP2004282703A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003375223A JP2004282703A (ja) 2002-11-05 2003-11-05 データ処理装置

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2002320909 2002-11-05
JP2002321462 2002-11-05
JP2002348331 2002-11-29
JP2003014889 2003-01-23
JP2003048169 2003-02-25
JP2003375223A JP2004282703A (ja) 2002-11-05 2003-11-05 データ処理装置

Publications (1)

Publication Number Publication Date
JP2004282703A true JP2004282703A (ja) 2004-10-07

Family

ID=33304223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003375223A Pending JP2004282703A (ja) 2002-11-05 2003-11-05 データ処理装置

Country Status (1)

Country Link
JP (1) JP2004282703A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006270740A (ja) * 2005-03-25 2006-10-05 Clarion Co Ltd 動画像データ生成装置、動画像データ生成方法および表示装置
JP2007159058A (ja) * 2005-12-08 2007-06-21 Canon Inc 記録装置及び記録方法、並びに再生装置及び再生方法
JP2007166597A (ja) * 2005-11-15 2007-06-28 Seiko Epson Corp 情報再生装置及び電子機器
JP2008516514A (ja) * 2004-10-07 2008-05-15 松下電器産業株式会社 画像符号化装置および画像復号化装置
JP2009506626A (ja) * 2005-08-26 2009-02-12 トムソン ライセンシング 時間的レイヤー化を使ったトリック再生
JP2012182827A (ja) * 2005-07-14 2012-09-20 Qualcomm Inc ランダムアクセスを可能にするためにマルチメディアコンテンツを暗号化/解読する方法および装置
JP2013126097A (ja) * 2011-12-14 2013-06-24 Canon Inc 記録装置
JP2015524598A (ja) * 2012-11-30 2015-08-24 サムスン エレクトロニクス カンパニー リミテッド コンテンツを保存した情報記録媒体、コンテンツ提供方法、コンテンツ再生方法及びその装置
US9454995B2 (en) 2012-11-30 2016-09-27 Samsung Electronics Co., Ltd. Information storage medium storing content, content providing method, content reproducing method and apparatus therefor

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4838253B2 (ja) * 2004-10-07 2011-12-14 パナソニック株式会社 画像符号化装置、画像符号化方法、画像復号化装置、画像復号化方法、および記録方法
US8514938B2 (en) 2004-10-07 2013-08-20 Hewlett-Packard Development Company L.P. Picture coding apparatus for a still picture sequence and picture decoding apparatus for a still picture sequence
JP2008516514A (ja) * 2004-10-07 2008-05-15 松下電器産業株式会社 画像符号化装置および画像復号化装置
JP2006270740A (ja) * 2005-03-25 2006-10-05 Clarion Co Ltd 動画像データ生成装置、動画像データ生成方法および表示装置
JP2012182827A (ja) * 2005-07-14 2012-09-20 Qualcomm Inc ランダムアクセスを可能にするためにマルチメディアコンテンツを暗号化/解読する方法および装置
US8677504B2 (en) 2005-07-14 2014-03-18 Qualcomm Incorporated Method and apparatus for encrypting/decrypting multimedia content to allow random access
US9167280B2 (en) 2005-07-14 2015-10-20 Qualcomm Incorporated Method and apparatus for encrypting/decrypting multimedia content to allow random access
US8194739B2 (en) 2005-08-26 2012-06-05 Thomson Licensing Trick play using temporal layering
JP2009506626A (ja) * 2005-08-26 2009-02-12 トムソン ライセンシング 時間的レイヤー化を使ったトリック再生
JP2007166597A (ja) * 2005-11-15 2007-06-28 Seiko Epson Corp 情報再生装置及び電子機器
JP4630805B2 (ja) * 2005-12-08 2011-02-09 キヤノン株式会社 記録装置及び記録方法
JP2007159058A (ja) * 2005-12-08 2007-06-21 Canon Inc 記録装置及び記録方法、並びに再生装置及び再生方法
JP2013126097A (ja) * 2011-12-14 2013-06-24 Canon Inc 記録装置
JP2015524598A (ja) * 2012-11-30 2015-08-24 サムスン エレクトロニクス カンパニー リミテッド コンテンツを保存した情報記録媒体、コンテンツ提供方法、コンテンツ再生方法及びその装置
US9454995B2 (en) 2012-11-30 2016-09-27 Samsung Electronics Co., Ltd. Information storage medium storing content, content providing method, content reproducing method and apparatus therefor

Similar Documents

Publication Publication Date Title
JP4614991B2 (ja) 動画像ストリーム生成装置、動画像ストリーム生成方法、動画像復号化装置、動画像復号化方法および記録方法
EP2533522B1 (en) Data reproduction device, method, and program
KR101073777B1 (ko) 다중화 방식 변환 장치
US8442382B2 (en) Stream generation apparatus, stream generation method, coding apparatus, coding method, recording medium and program thereof
JP4211999B2 (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、記録方法、および画像復号化システム
JP4071812B2 (ja) 多重化装置および逆多重化装置
JP4541962B2 (ja) 多重化装置、再生装置
JP2005229587A (ja) 多重化方式変換装置
JP2004282703A (ja) データ処理装置
WO2004043065A1 (ja) データ処理装置
JP5120322B2 (ja) データ信号記録装置およびデータ信号再生装置
JP5120479B2 (ja) データ信号記録装置およびデータ信号再生装置
JP2004350250A (ja) 多重化装置および逆多重化装置