(本発明の基礎となった知見)
従来、MMT/TLV方式等で多重化されているコンテンツを受信して記録媒体に記録する記録装置などについては十分に考慮されておらず、例えば、コンテンツを再生するために利用するコンテンツと共に送信される基準時刻情報を記録せずに記録媒体に記録する場合があった。このため、再生装置は、記録媒体に記録されたコンテンツを再生することが難しい場合があった。
以下、具体的に説明する。
デジタル放送やコンテンツ配信では、従来のStandard Definition(SD)画質やHigh Definition(HD)のコンテンツにおいては、伝送および蓄積の際の多重化フォーマットとしてMPEG2−TS方式が利用されることが一般的であった。
多重化フォーマットとは、AVコンテンツを構成するビデオ信号およびオーディオ信号を一つのデジタルデータとして扱うためのフォーマットである。多重化フォーマットにおけるデジタルデータは、例えば、MPEG4−AVC方式で符号化されたビデオ信号と、MPEG2−AAC方式で符号化されたオーディオ信号とを適切なサイズに細分化し、これらの細分化されたデータを再生に必要となる順番で並べ直すとともに、制御用の情報が付与されたデータである。
MPEG2−TS方式を用いている日本の地上デジタル放送またはBS/CSデジタル放送におけるデジタルデータは、固定長である188バイトのサイズのデータを一つの単位として、ビデオ信号およびオーディオ信号を格納している。ここで、一単位のデータは、パケットと呼ばれ、MPEG2−TS方式ではTSパケットと呼ばれる。
TSパケットは制御情報を格納するTSヘッダと、実際のビデオ信号またはオーディオ信号を格納するTSペイロードとから構成される。
日本の地上デジタル放送またはBS/CSデジタル放送では、TSヘッダは4バイトの固定長であり、TSペイロードは原則として184バイトの固定長である。なお、TSペイロードの一部は、Adaptation Fieldと呼ばれる追加の制御情報を格納するために利用されることもある。
また、Blu−ray(登録商標) Disc(以下、「BDディスク」と記す)では、TSパケットは、更に光ディスクからの読み出し時刻を指示する4バイトのタイムスタンプが先頭に付与され、192バイトの固定長のデータを一つの単位として、光ディスクにビデオ信号およびオーディオ信号を格納している。BDディスクで用いられる方式は、TSパケットがタイムスタンプ付きであることから、Time Stamped TS方式、またはTTS方式と呼ばれ、一単位のデータはTTSパケットと呼ばれる。
昨今、新たな高画質のコンテンツとして4Kコンテンツが注目されている。従来のHigh Definition(HD)コンテンツは2Kコンテンツとも呼ばれ、その画素数は縦1920×横1080であったが、4Kコンテンツは、2Kコンテンツを縦横各々2倍として、画素数を縦3840×横2160とするものである。
4Kコンテンツは従来の2Kコンテンツと単純比較して4倍の容量が必要となるが、昨今の動画圧縮技術の進展により、おおよそ2倍程度の容量で記録することが可能であると言われている。
また、更なる高画質なコンテンツとして画素数を縦7680、横4320とする8Kコンテンツも検討されている。
4Kコンテンツまたは8Kコンテンツを放送波で伝送するために、新たに高度BSデジタル放送および高度広帯域CSデジタル放送の開発が進められている。
これらの放送では、4Kの場合には35Mbps(1秒間に35Mビット)、8Kの場合には100Mbps(1秒間に100Mビット)の伝送帯域が想定されている。また、これらの放送を格納するための光ディスクも検討されている。
また、高度BSデジタル放送および高度広帯域CSデジタル放送では、通信による伝送との連携を強化するために、新たな多重化フォーマットとしてMMT/TLV方式が採用される。
MMT/TLV方式におけるデジタルデータは、従来のMPEG2−TS方式と同様にビデオ信号およびオーディオ信号を適切なサイズに細分化し、これら細分化されたデータを再生に必要となる順番で並べ直すとともに、制御用の情報が付与されたデータである。
従来のMPEG2−TS方式との大きな相違点は、この際の細分化のサイズが必ずしも固定ではなく、可変長となっていることである。つまり、MMT/TLV方式での細分化のサイズは、MPEG2−TS方式のような一定のサイズではなく、それぞれ異なるサイズとなっている。
さらに、MMT/TLV方式では従来のMPEG2−TS方式と異なり、実際のデータが格納されている領域にアクセスするまでに、4階層のデータ構造を処理する必要がある。
MMT/TLV方式では、TLVパケットを受信した受信装置は、最初にTLV方式のTLVパケットからヘッダ部分を処理してIPパケットが格納されたTLVペイロードを取得する。次に、受信装置は、TLVペイロードに格納されているIPパケットのヘッダ部分を処理してUDPパケットが格納されたIPペイロードを取得する。さらに、受信装置は、IPペイロードに格納されているUDPパケットのヘッダ部分を処理してMMTPパケットが格納されたUDPペイロードを取得する。そして最後に受信装置は、MMTPパケットのヘッダ部分を処理することで、実際のデータが格納されている領域にアクセスすることができる。
TLVパケット、IPパケット、およびUDPパケットの各ヘッダは放送での伝送の際には必要となる情報であるが、光ディスクへの録画の際には不要であるため、データ量削減の観点からは、これらの情報は削除したうえで記録されることが望ましい。
しかしながら、MMT/TLV方式では、コンテンツ全体の基準となる時刻情報はTLVパケットとして格納されるNTPパケットに記録されており、MMTPパケットとしてコンテンツを記録する場合には、基準となる時刻情報はコンテンツから欠落する。このために、正しく時刻同期して再生処理ができないという課題があった。
このような課題を解決するために、本開示の一態様に係る記録装置は、少なくとも1つが基準時刻情報を含む複数の第1パケットであって、それぞれが複数階層の可変長パケット構造を有する複数の第1パケットにより構成されるコンテンツを受信する受信部と、受信した前記コンテンツを記録媒体に記録する記録部と、を備える。
このため、記録媒体に記録したコンテンツを適切に時刻同期して再生装置に再生させることができる。
また、前記記録部は、(i)前記複数の第1パケットに含まれる1以上の基準時刻情報のうちの最初の基準時刻情報を前記コンテンツの管理情報に含まれる前記コンテンツの基準時刻および前記コンテンツの再生開始時刻として記録し、(ii)前記再生開始時刻に前記コンテンツの再生時間を加算することにより算出される時刻を前記管理情報に含まれる前記コンテンツの再生終了時刻として記録してもよい。
このため、記録媒体に記録したコンテンツを適切に時刻同期して再生装置に再生させることができる。
また、前記記録部は、(i)前記コンテンツの前記記録媒体における再生開始位置を示す開始位置情報を前記再生開始時刻に対応付けて前記管理情報において記録し、(ii)前記コンテンツの前記記録媒体における再生終了位置を示す終了位置情報を前記再生終了時刻に対応付けて前記管理情報において記録してもよい。
このため、容易に記録媒体に記録したコンテンツの記録位置を再生装置に特定させることが容易にできる。よって、適切に時刻同期して再生装置に再生させることができる。
また、前記複数の第1パケットのそれぞれは、MMT/TLV方式により多重化されたTLVパケットであり、前記基準時刻情報は、NTP(Network Time Protocol)に基づく時刻を示す時刻情報であってもよい。
このため、MMT/TLV方式で多重化されたコンテンツを受信した場合であっても、当該コンテンツを基準時刻情報と共に記録媒体に記録するため、記録媒体に記録したコンテンツを適切に時刻同期して再生装置に再生させることができる。
また、前記記録部は、(i)前記受信部により受信された前記コンテンツが有する前記複数の第1パケットから、前記第1パケットよりも上位層の複数の第2パケットと、前記基準時刻情報とを抽出し、(ii)抽出した前記複数の第2パケットと、前記基準時刻情報とを記録してもよい。
これによれば、記録媒体に記録するデータ量を削減しても、基準時刻情報を記録媒体に記録するため、記録媒体に記録したコンテンツを適切に時刻同期して再生装置に再生させることができる。
また、前記複数の第1パケットのそれぞれは、MMT/TLV方式により多重化されたTLVパケットであり、前記複数の第2パケットのそれぞれは、MMTP(MPEG Media Transport Protocol)パケットであり、前記基準時刻情報は、NTP(Network Time Protocol)に基づく時刻を示す時刻情報であってもよい。
このため、MMT/TLV方式で多重化されたコンテンツを受信した場合であっても、当該コンテンツを基準時刻情報と共に記録媒体に記録するため、記録媒体に記録したコンテンツを適切に時刻同期して再生装置に再生させることができる。
また、本開示の一態様に係る記録方法は、少なくとも1つが基準時刻情報を含む複数の第1パケットであって、それぞれが複数階層の可変長パケット構造を有する複数の第1パケットにより構成されるコンテンツを受信し、受信した前記コンテンツを記録媒体に記録する。
また、本開示の一態様に係る記録媒体は、少なくとも1つが基準時刻情報を含む複数の第1パケットであって、それぞれが複数階層の可変長パケット構造を有する複数の第1パケットにより構成されるコンテンツが記録されている。
ここでは、本発明に係る実施の形態について、図面を参照しながら説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
なお、発明者は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
(実施の形態1)
(1)BDディスクの構成
図1は、BDディスクの構成の一例を示す図である。
本図では、第4段目にBDディスク101を示し、第3段目にBDディスク上のトラック102を示す。本図のトラック102は、BDディスク101の内周から外周にかけて螺旋状に形成されているトラック102を横方向に引き伸ばして描画している。
BDディスク101は、他の光ディスク、例えばDVDやCDなどと同様にその内周から外周に向けてらせん状の記録領域を有する。BDディスク101は、内周のリードインと外周のリードアウトとの間に論理データを記録できるボリューム領域を有する。
ボリューム領域には、先頭から光ディスクをアクセスする単位で通し番号が振られており、この番号は、論理アドレスと呼ばれる。光ディスクからのデータの読み出しは、論理アドレスが指定されることで行われる。
ここでは論理アドレスは、光ディスク上の物理的な配置においても、連続していると定義する。すなわち、論理アドレスが連続しているデータは、シークを行わずに読み出すことが可能である。
また、BDディスク101のリードインの内側には、BCA(Burst Cutting Area)と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、例えば著作権保護技術などに利用される。
ボリューム領域には、先頭からファイルシステムのボリューム情報が記録され、続いて映像データなどのアプリケーションデータが記録されている。
ファイルシステムとはディスク上のデータをディレクトリまたはファイルと呼ばれる単位で表現する仕組みである。BDディスク101の場合では、ファイルシステムとして、例えばUDF(Universal Disc Format)が用いられる。日常使っているPC(パーソナルコンピュータ)の場合でも、FAT(File Allocation Tables)またはNTFS(NT File System)と呼ばれるファイルシステムにより、ディレクトリまたはファイルという構造でハードディスクに記録されたデータがコンピュータ上で表現され、ユーザビリティを高めている。
このファイルシステムにより、通常のPCと同じように記録されている論理データをディレクトリまたはファイル構造を使って読み出しする事が可能になっている。
BDディスク101上のディレクトリまたはファイル構造では、ルートディレクトリ(ROOT)直下にBDAVディレクトリが置かれている。BDAVディレクトリは、BDディスク101で扱うAVコンテンツや管理情報などのデータが記録されているディレクトリである。BDAVディレクトリの配下には、ディスクに記録されているプレイリストを管理するテーブルが定義されたINFOファイル、PLAYLISTディレクトリ、CLIPINFOディレクトリ、およびSTREAMディレクトリが存在する。
また、映像および音声といったAVコンテンツが多重化され格納されたAVクリップ(ZZZ.M2TS、AAA.MMTS)、AVクリップの管理情報を格納したクリップ情報ファイル(ZZZ.CLPI、AAA.CLPI)、および、AVクリップの論理的な再生経路を定義したプレイリストファイル(XXX.RPLS、YYY.VPLS)は、それぞれ前述のSTREAMディレクトリ、CLIPINFディレクトリ、及び、PLAYLISTディレクトリの下に配置される。
以下に、BDAVディレクトリ配下に置かれる各ファイルのデータ構造について説明する。
(2)INFOファイルの内部構成
まずINFOファイルについて説明する。
図2は、INFOファイルの内部構成の一例を示す図である。
INFOファイルは、図2で示すディスク情報とプレイリストテーブルとから構成される。
ディスク情報は、ディスク名、記録保護フラグ、PINコードなどを含む。ディスク情報では、ディスク名、記録保護フラグ、PINコードなどのBDディスクに記録されるコンテンツに係る情報が定義される。
ディスク名は、ディスクの名称を示す。
記録保護フラグは、ユーザがディスクに記録したコンテンツを誤って編集したり、削除したりしてしまうことを避けるためのフラグであり、編集禁止を示す。
また、PINコードは、ディスクに記録されているコンテンツが他人などに不用意に視聴されることを避けるために視聴可能なユーザを認証するために使用することができる4桁の数字である。
プレイリストテーブルは、BDディスクに格納されるすべてのプレイリストを定義するテーブルである。このテーブルには、プレイリスト番号が指定されている。BDディスクの再生装置は、BDディスクを再生する場合、プレイリストテーブルにあるプレイリストをプログラムメニューとして一覧化して表示させることに使用することができる。
(3)プレイリストファイルの内部構成
次に、プレイリストファイル(XXX.RPLS、YYY.VPLS)について説明する。
図3は、プレイリストファイルの内部構成の一例を示す図である。
プレイリストは、AVクリップの再生経路を示すものである。図3に示すように、プレイリストは1つ以上のプレイアイテム1201から構成される。各プレイアイテム1201は、AVクリップ1204に対する再生区間を示すクリップ情報ファイル1203を参照する。クリップ情報ファイル1203は、AVクリップ1204の再生区間の再生開始時刻および再生終了時刻を示すと共に、エントリマップによって再生時刻に対応するアドレス情報を有している。エントリマップの詳細の説明は後述する。各プレイアイテムは、参照するクリップ情報ファイルが示す再生区間の範囲内で、再生経路として指定される区間の開始時刻および終了時刻を指し示す。各プレイアイテム1201は、それぞれプレイアイテムIDで識別され、プレイリスト内で再生されるべき順序で記述されている。
また、プレイリストは、再生開始点を示すエントリマーク1202を含んでいる。エントリマーク1202は、プレイアイテムで定義される再生区間内に対して付与され、図3に示すように、プレイアイテムに対して再生開始点となりうる位置に付けられ、頭出し再生に利用される。なお、一連のプレイアイテムの再生経路をメインパス1205とここでは定義する。
ここで、プレイリストファイルには2種類のファイルが存在する。一つはリアルプレイリスト(XXX.RPLS)である。リアルプレイリストは、BDディスクに記録されているAVクリップを管理するために使用される。
BDディスクに記録されるAVクリップのすべての区間はリアルプレイリストのプレイアイテムと1対1で対応づけられている。よって再生装置は、リアルプレイリストを参照することでBDディスクに記録されるAVクリップすべてを再生することが可能である。またリアルプレイリストは削除されると、当該リアルプレイリストに対応付けられているAVクリップもまた削除されることになる。
もう一つはバーチャルプレイリスト(YYY.VPLS)である。バーチャルプレイリストを用いることで、ユーザは、AVクリップの再生経路を自由に編集することができる。バーチャルプレイリストでは、AVクリップの一部を参照してもよいし、AVクリップを重複して参照してもよい。また、バーチャルプレイリストは削除されても、バーチャルプレイリストで参照されているAVクリップは削除されることはない。
リアルプレイリストとバーチャルプレイリストとは拡張子によって区別することができる。また、リアルプレイリストとバーチャルプレイリストとのプレイリスト番号(XXXとYYY)は重複して存在してはいけない。
(4)プレイアイテムの内部構成
図4は、プレイアイテムの内部構成の一例を示す図である。
プレイアイテムの構成について図4を用いて説明する。
プレイアイテムには、再生するAVクリップを示す参照情報1301と、接続条件1302と、再生開始時刻1303と、再生終了時刻1304とが含まれている。
再生開始時刻1303および再生終了時刻1304は時間情報である。このため、再生装置は、クリップ情報ファイルのエントリマップを参照し、プレイアイテムにおいて指定された再生開始時刻1303および再生終了時刻1304に対応するクリップ内の位置情報を取得し、読み出し開始位置を特定して再生処理を行う。
接続条件1302は、前方プレイアイテムとの接続タイプを示している。
プレイアイテムの接続条件1302が「1」または「2」であることは、プレイアイテムが指し示すAVクリップは、そのプレイアイテムの前のプレイアイテムが指し示すAVクリップとシームレス接続が保証されないことを示す。プレイアイテムの接続条件1302が「1」であることと「2」であることとの違いは前方のプレイアイテムと現在のプレイアイテムとが参照するクリップが、同一のクリップ内で連続するSTCシーケンスであるか否かの違いである。
プレイアイテムの接続条件1302が「3」または「4」であることは、プレイアイテムが指し示すAVクリップは、そのプレイアイテムの前のプレイアイテムが指し示すAVクリップとシームレスに接続されることが保証されることを示す。
接続条件1302が「4」であることは、前方プレイアイテムが参照するAVクリップがシームレス接続が可能な条件にて終端処理が実施された状態であることを示す。一方、接続条件1302が「3」であることは、前方プレイアイテムが参照するAVクリップがシームレス接続が可能な条件にて終端処理が実施されていない状態の場合に、接続点付近を一部切り出して終端処理を施したブリッジクリップを介することにより、シームレス接続を保証していることを示す。
(5)クリップ情報ファイルの内部構成
図5は、クリップ情報ファイルの内部構成の一例を示す図である。
続いて、クリップ情報ファイル(ZZZ.CLPI)について、図5を用いて説明する。
クリップ情報ファイルは、AVクリップの管理情報であり、AVクリップと1対1に対応している。クリップ情報ファイルは、クリップ情報、ストリーム属性情報、およびエントリマップから構成される。
クリップ情報は、システムレート、再生開始時刻、および再生終了時刻から構成されている。システムレートは、AVクリップの、後述するシステムターゲットデコーダのPID(Packet ID)フィルタへの最大転送レートを示す。再生開始時刻は、AVクリップの先頭のビデオフレームの表示時刻(PTS)である。再生終了時刻は、AVクリップの終端のビデオフレームの表示時刻(PTS)に1フレーム分の再生間隔が加算された時刻である。
(6)ストリーム属性情報の内部構成
図6は、ストリーム属性情報の内部構成の一例を示す図である。
ストリーム属性情報は、図6に示すように、AVクリップに含まれる1以上のストリームのそれぞれの属性情報を含む。ストリーム属性情報に含まれる1以上の属性情報は、それぞれ、1以上のストリームのPIDに対応している。1以上の属性情報は、ビデオストリーム(映像ストリーム)、オーディオストリーム(音声ストリーム)、および字幕ストリームのそれぞれに対応しており、互いに異なる。
ビデオストリームの属性情報は、対応するビデオストリームが圧縮された圧縮コーデック、ビデオストリームを構成する個々のピクチャデータの解像度、当該ピクチャデータのアスペクト比、ビデオストリームのフレームレートなどの情報を含む。
オーディオストリームの属性情報は、対応するオーディオストリームが圧縮された圧縮コーデック、対応するオーディオストリームに含まれるチャンネル数、当該オーディオストリームのサンプリング周波数などの情報を含む。
これらの情報は、再生装置が再生する前に行われる再生装置のデコーダの初期化などに利用される。
(7)エントリマップの内部構成
図7は、エントリマップの内部構成の一例を示す図である。
エントリマップは、図7の(a)に示すように、エントリマップヘッダ情報1101と、AVクリップ内に含まれるビデオストリームの各Iピクチャの表示時刻を示す時刻情報と各Iピクチャが開始するAVクリップの位置情報が記載されたテーブル情報である。AVクリップの位置情報は、MPEG−2 TS方式の場合はSPN(Source Packet Number)で示され、MMT方式の場合はAVクリップの先頭からのバイト数で示される。
ここではテーブルの1つの行で示される対となる時刻情報と位置情報をエントリポイントと呼ぶことにする。また先頭を0としてエントリポイント毎にインクリメントした値をエントリポイントID(以下、「EP_ID」という。)と呼ぶことにする。このエントリマップを利用することにより、再生装置はビデオストリームの時間軸上の任意の地点に対応するAVクリップのファイル位置を特定することができるようになる。例えば、早送り、巻戻しなどの特殊再生の際には、エントリマップに登録されるIピクチャを特定し、特定したIピクチャから再生することによりAVクリップを解析することなく効率的に処理を行うことができる。また、エントリマップは、AVクリップ内に多重化されるビデオストリーム毎に作られ、PIDで管理される。また、エントリマップには、先頭にエントリマップヘッダ情報1101が格納される。エントリマップヘッダ情報1101には、該当エントリマップが指すビデオストリームのPID、エントリポイント数などの情報が格納される。
続いて、AVクリップ(ZZZ.M2TS、AAA.MMTS)について説明する。
AVクリップの方式には、MPEG−2 TS方式のデジタルストリーム(ZZZ.M2TS)と、MMT/TLV方式のデジタルストリーム(AAA.MMTS)との2種類の方式がある。MPEG−2 TS方式のAVクリップか、MMT/TLV方式のAVクリップかは、それぞれの拡張子によって判別することができる。なお、ストリーム番号(ZZZおよびAAA)は、重複して存在してはいけない。
まずは、MPEG−2 TS方式のAVクリップについて説明する。
(8)TSパケットおよびソースパケットの構成
図8は、AVクリップにおけるTSパケットおよびソースパケットの構成の一例を示す図である。
図8に示すように、TSパケット列は、複数のTSパケットを有する。複数のTSパケットのそれぞれは、ストリームを識別するPIDなどの情報を持つ4ByteのTSヘッダと、データを格納する184ByteのTSペイロードとから構成される188Byte固定長のパケットであり、前述で説明したPESパケットは分割されTSペイロードに格納される。BDの場合、TSパケットに、4ByteのTP_Extra_Headerが付与されることで192Byteのソースパケットが構成され、各ソースパケットがAVクリップに書き込まれる。TP_Extra_Headerには、ATS(Arrival_Time_Stamp)などの情報が記載される。ATSは、当該TSパケットの、後述するシステムターゲットデコーダ1503のPIDフィルタへの転送開始時刻を示す。AVクリップは、図8の下段に示すように複数のソースパケットが並んで構成される。AVクリップの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
また、AVクリップに含まれるTSパケットには、映像、音声、字幕などの各ストリーム以外にもPAT(Program Association Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などが含まれる。PATは、AVクリップ中に利用されるPMTのPIDが何であるかを示す。PAT自身のPIDは0である。PMTは、AVクリップ中に含まれる映像、音声、字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を有する。また、PMTは、AVクリップに関する各種ディスクリプタを有する。ディスクリプタには、AVクリップのコピーを許可または不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(Arrival Time Clock)と、PTSおよびDTSの時間軸であるSTC(System Time Clock)との同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を有する。
(9)PMTのデータ構造
図9はPMTのデータ構造の一例を示す図である。
PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、AVクリップに関するディスクリプタが複数配置される。前述したコピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、AVクリップに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタはAVクリップに存在するストリームの数だけ存在する。
(10)再生装置の構成
続いて、MPEG−2 TS方式のAVクリップを格納しているBDディスクを再生する再生装置について説明する。
図10は、再生装置の構成の一例を示すブロック図である。
再生装置1500は、BDドライブ1501、リードバッファ1502、システムターゲットデコーダ1503、管理情報メモリ1505、再生制御部1507、ユーザイベント処理部1509、およびプレーン加算部1510から構成されている。
BDドライブ1501は、再生制御部1507からの要求を元にBDディスクからデータを読み出す。BDディスクから読み出されたAVクリップは、リードバッファ1502に、BDディスクから読み出されたINFOファイル、プレイリストファイル、およびクリップ情報ファイルは、管理情報メモリ1505に、それぞれ転送される。
リードバッファ1502は、BDドライブ1501によりBDディスクから読み出されたデータを格納するメモリ等で構成されたバッファである。管理情報メモリ1505は、BDドライブ1501によりBDディスクから読み出されたINFOファイル、プレイリストファイル、およびクリップ情報ファイルの管理情報を格納するメモリ等で構成されたバッファである。
システムターゲットデコーダ1503は、リードバッファ1502に記憶されたソースパケットに対して多重分離処理を行い、ストリームのデコード処理を行う。AVクリップに含まれるストリームのデコードに必要な、コーデック種類やストリーム属性などの情報は、再生制御部1507から転送される。システムターゲットデコーダ1503は、デコードした主映像ビデオストリームおよび字幕ストリームを、それぞれのプレーンメモリである主映像プレーンおよび字幕プレーンに書き出す。またシステムターゲットデコーダ1503は、デコードした主音声ストリームをスピーカなどに出力する。システムターゲットデコーダ1503の詳細については後述する。
ユーザイベント処理部1509は、リモコンに入力されたユーザ操作を受け付けて、再生制御部1507にユーザ操作に応じた処理の実行を依頼する。例えば、リモコンで早送りボタンまたは巻戻しボタンが押された場合には、ユーザイベント処理部1509は、早送りボタンまたは巻き戻しボタンに対応するコマンドによる処理(つまり、早送り処理または巻き戻し処理)を実行するように再生制御部1507に依頼することで、現在再生しているプレイリストのAVクリップに対する早送り処理または巻戻し処理の実行を命令する。
再生制御部1507は、BDドライブ1501およびシステムターゲットデコーダ1503を制御して、AVクリップの再生を制御する。再生制御部1507は、ユーザイベント処理部1509からの命令に基づき、プレイリスト情報を解釈してAVクリップの再生を制御する。
プレーン加算部1510は、主映像プレーンと字幕プレーンとを重畳し、重畳することにより得られた映像をTVなどの画面に表示する。
(11)システムターゲットデコーダの構成
図11は、システムターゲットデコーダの内部構成の一例を示すブロック図である。
システムターゲットデコーダ1503は、ソースデパケッタイザ1503a、PIDフィルタ1503b、ビデオデコーダ1700、字幕デコーダ1710、およびオーディオデコーダ1720を有する。
ソースデパケッタイザ1503aは、システムターゲットデコーダ1503に転送されるソースパケットを解釈することでTSパケットを取り出し、取り出したTSパケットをPIDフィルタ1503bに送出する。ソースデパケッタイザ1503aは、TSパケットの送出にあたって、各ソースパケットのATSに応じてデコーダへの入力時刻を調整する。ソースデパケッタイザ1503aは、具体的には、ATCカウンタが生成するATCの値と、ソースパケットのATS値とが同一になった瞬間に、AVクリップの記録レートにしたがって、そのTSパケットだけをPIDフィルタに転送する。
PIDフィルタ1503bは、ソースデパケッタイザ1503aから出力されたTSパケットのうち、TSパケットのPIDが再生に必要とされるPIDに一致するものを、PIDにしたがって、ビデオデコーダ1700、字幕デコーダ1710、およびオーディオデコーダ1720に転送する。
ビデオデコーダ1700は、TB(TransportStreamBuffer)1701、MB(Multiplexing Buffer)1702、EB(ElementaryStreamBuffer)1703、圧縮映像デコーダ1704、およびDPB(Decoded Picture Buffer)1705から構成される。
TB1701は、ビデオストリームを含むTSパケットがPIDフィルタ1503bから出力された際、出力されたTSパケットをそのまま一時的に蓄積するためのバッファである。
MB1702は、TB1701からEB1703にビデオストリームを出力するにあたって、一時的にPESパケットを蓄積するためのバッファである。TB1701からMB1702にデータが転送される際に、TSパケットのTSヘッダは、取り除かれる。
EB1703は、符号化状態にあるピクチャ(Iピクチャ、BピクチャおよびPピクチャ)を格納するバッファである。MB1702からEB1703にデータが転送される際に、PESパケットのPESヘッダは、取り除かれる。
圧縮映像デコーダ1704は、ビデオエレメンタリストリームの個々のビデオアクセスユニットを所定の復号時刻(DTS)ごとにデコードすることによりフレーム/フィールド画像を作成する。AVクリップに多重化されるビデオストリームの圧縮符号化形式にはMPEG−2、MPEG−4 AVC、HEVC、VC1などがあるため、圧縮映像デコーダ1704は、ストリームの属性に応じてデコード方法を切り替える。圧縮映像デコーダ1704は、デコードされたフレーム/フィールド画像をDPB1705に転送し、表示時刻(PTS)のタイミングで対応するフレーム/フィールド画像を主映像プレーンに書き出す。
DPB1705は、復号されたフレーム/フィールド画像を一時的に保持しておくバッファである。圧縮映像デコーダ1704は、ピクチャ間予測符号化されたPピクチャ、Bピクチャなどのビデオアクセスユニットをデコードする際に、既にデコードされDPB1705に一時的に保持されたピクチャを参照する。
字幕デコーダ1710は、ソースデパケッタイザ1503aから入力されるTSパケットから字幕ストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻(PTS)のタイミングで字幕プレーンに書き出す。
オーディオデコーダ1720は、緩衝バッファを有し、緩衝バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いくことで音声ストリームのデコード処理を行う。そして、オーディオデコーダ1720は、デコード処理により得られた非圧縮のLPCM状態のオーディオデータを表示時刻(PTS)のタイミングで音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式には。AC3、DTS、MPEG−4 AACなどがあるため、オーディオデコーダ1720は、オーディオストリームの属性に応じて圧縮音声の復号化方式を切り替える。
続いて、MMT/TLV方式のAVクリップについて説明する。
(12)MMT/TLV方式のストリームの構成
図12は、MMT/TLV方式のストリームの構成の一例を模式的に示す図である。
MMT/TLV方式のストリームは、TLVパケット、IPパケット、UDPパケット、およびMMTPパケットの四層の構造で構成されている。つまり、MMT/TLV方式は、複数階層の構造で構成されている。
当該ストリームは、1以上の可変長のTLVパケットから構成される。1以上のTLVパケットのそれぞれは、TLVヘッダとTLVペイロードとから構成される。TLVペイロードは可変長であり、ここには可変長のIPパケットが格納される。
IPパケットは、IPヘッダとIPペイロードとから構成されている。ここで、IPヘッダは基本的には固定長であるが、オプションデータが有る際には可変長であることもありえる。
また、4K/8K放送コンテンツで用いられるMMT/TLV方式では、IPヘッダとして圧縮形式を用いるケースもある。これは、IPヘッダに記載されるサイズやアドレスなどの情報が、放送の場合にはほぼ変化がないことを利用し、一部のIPパケットでのみ全ての情報を記録し、それ以外のIPパケットでは「前と同じ」として記録する情報のサイズを減らすものである。この場合には、通常のIPヘッダとは長さが異なる。なお、IPペイロードは可変長である。
さらにIPペイロードには、可変長のUDPパケットが格納される。UDPパケットはUDPヘッダとUDPペイロードとから構成される。なお、UDPヘッダはIPヘッダとあわせて圧縮されるケースもある。
最後にUDPペイロードには、可変長のMMTPパケットが格納される。MMTパケットは、MMTPヘッダとMMTPペイロードとから構成される。MMTPヘッダは、少なくともMMTP基本ヘッダを含む。MMTP基本ヘッダは、基本的には固定長であるが、オプションデータがある際には可変長であることもありえる。また、MMTPヘッダは、MMTP基本ヘッダのあとにMMTP拡張ヘッダを有していることもある。MMTP拡張ヘッダには、たとえば暗号処理の制御に関する情報などが格納される。MMTP拡張ヘッダは、固定長のものもあれば、可変長のものもある。MMTPヘッダのあとに、MMTPペイロードが続く。MMTPペイロードには、分割されたビデオ信号、オーディオ信号などが格納される。
(13)TLVパケットの構成
図13は、TLVパケットの構成の一例を示す図である。
先述したとおり、TLVパケットは、TLVヘッダとTLVペイロードとから構成される。TLVヘッダの先頭には、先頭を示すデリミタとして常に二進数で01という値が2ビット分記載される。TLVヘッダには、このデリミタに引き続いて6ビットの将来拡張用フィールドが用意される。現時点ではこのフィールドは全て1の値が設定されるが、将来何らかの理由で拡張が必要となった場合には、ここにゼロの値が記載されることもありえる。
次に、TLVヘッダには、TLVパケットのペイロード内に格納されるデータの種別を示す8ビットのpacket_typeが格納される。
TLVペイロードの中身は、先述したとおり原則としてIPパケットであるが、IPv4パケットが格納されるケースとIPv6パケットが格納されるケースとがある。また、放送の場合にはIPパケット内のIPヘッダの値がほぼ一定の値となることから、IPヘッダを圧縮形式で記載する圧縮IPパケットもあり得る。また、IPパケットのかわりに、放送伝送路に多重化されたIPパケットを受信機が多重解除するための制御情報であるTLV−SI(Service Information)をTLVペイロードに格納することもある。さらには、リアルタイムで伝送される放送では、必ずしも全ての時間で意味のあるデータを送信しているわけではないことから、その間を埋めるためのヌルパケットをTLVペイロードに格納することもありえる。先述したpacket_typeには、これらIPパケット、圧縮IPパケット、TLV−SI、ヌルパケットのいずれかがTLVペイロードに格納されているかを示すために用いられる。
ここで、後述する図19に示すTLV/IP処理モジュール203は、TLVペイロードに格納されているデータがTLV−SIであった場合には、これを制御用の情報として、制御モジュール204に出力する。
なお、TLV−SIは平文で伝送されるため、特に復号処理などを行う必要はない。制御モジュール204ではTLV−SIに記載された制御情報に従って、TLV/IP処理モジュール203、後述するMMT処理・復号モジュール205、またはデマルチ・デコードモジュール306の動作を制御する。
また、TLV/IP処理モジュール203は、TLVペイロードに格納されているデータがヌルパケットであった場合には、単にこれを無視する。これに対して、TLV/IP処理モジュール203は、TLVペイロード内の情報がIPパケットや圧縮IPパケットであった場合には、更にIPパケットに関する処理を継続する。
(14)IPパケットの構造
図14は、IPパケットの構成の一例を示す図である。
図14では非圧縮のIPv6パケットの場合のみを代表事例として示す。圧縮形式であった場合またはIPv4であった場合には異なる挙動となるが、本願の趣旨には無関係であるため説明を割愛する。
IPパケットは、先述したとおりIPヘッダとIPペイロードとから構成されている。図14に示すとおり、IPヘッダの先頭にはバージョンを示す4ビットのversionが記載される。IPヘッダの先頭にはIPv6であれば6が指定される。
続く8ビットのtraffic_classは、当該IPパケットの取り扱いに関する優先順位を規定するフィールドである。traffic_classは、放送の場合には常に0として優先順位の規定なく運用される。
続く20ビットのflow_labelは、通信の制御に関する情報を格納可能である。flow_labelは、放送の場合にはやはり常に0として運用される。
続く16ビットのpayload_lengthは、IPペイロードのバイト長を示す情報である。payload_lengthは、可変長のIPペイロードを取り扱うことを示すためのフィールドである。
続く8ビットのnext_headerは、IPヘッダに続くヘッダを示すものである。next_headerは、放送の場合には必ず次にUDPヘッダがくるため、固定値である「0001 0001」が記載される。
そして、ルータによる中継可能な上限数を示す8ビットのhop_limit、配信元のIPアドレスを示す128ビットのsource_address、配信先のIPアドレスを示す128ビットのdestination_addressがこれに続く。hop_limit、source_addressおよびdestination_addressは、本願の趣旨には無関係であるため、詳細な説明を割愛する。
次にIPヘッダの直後には図14に示すとおりUDPパケットのUDPヘッダが続く。
UDPヘッダは、各16ビットのsource_port、destination_port、length、およびcheck_sumのフィールドから構成される。このうちで、lengthは、このUDPヘッダと以降に続くUDPペイロードとを合計したサイズをバイト単位で示したものである。なお、source_port、destination_port、およびcheck_sumの各項目については、本願の趣旨には無関係であるため、説明を割愛する。
UDPヘッダのあとには可変長のUDPペイロードが続く。
このUDPペイロードには、可変長のMMTパケットが通常は格納される。ここで通常と書いたのは、MMTパケット以外に受信装置に時刻を出力するためのNTP形式のUDPパケットが出力されることがあるためである。IPv6の場合において、宛先IPアドレスとしてFF02::101が指定されている場合には、このIPペイロードに含まれるのはNTPの情報である。なお、NTP形式のIPパケットについても平文で伝送されるため、特に復号処理などを行う必要はない。
これまで説明してきたTLVパケット内のTLVヘッダ、IPパケット内のIPヘッダ、およびUDPパケット内のUDPヘッダを後述するTLV/IP処理モジュール203で処理することにより得られたMMT暗号ストリームは、MMT処理・復号モジュール205に出力される。
(15)MMTPパケットの構成
図15は、MMTPパケットの構成の一例を示す図である。
MMTPパケットは、MMTヘッダとMMTPペイロードとから構成される。MMTPパケットには少なくともMMTP基本パケットが含まれる。
MMTP基本パケットは、まず2ビットのversionから始まる。versionは、MMTプロトコルのバージョン番号を示し、このフィールドには00が指定される。
次の1ビットのpacket_counter_flagには、後述するpacket_counterフィールドが存在するか否かが指定される。packet_counter_flagは、存在する場合は「1」となり、存在しない場合には「0」となる。packet_counter_flagの値によって、MMTP基本ヘッダのサイズが変わることとなる。なお、packet_counter_flagは、日本の4K/8K放送の場合には、常に「0」が指定され、packet_counterフィールドは運用されない。
1ビットのextention_flagは、MMTP拡張ヘッダが存在するか否かを指定する1ビットのフラグである。extention_flagは、MMTP拡張ヘッダが存在する場合には「1」となり、MMTP拡張ヘッダが存在しない場合には「0」となる。extention_flagは、その値によって、MMTPヘッダ全体のサイズとMMTPパケット全体のサイズが変わることとなる。
6ビットのpayload_typeは、MMTPペイロードの、特にヘッダ部分のデータ構造を示すフラグである。payload_typeは、ビデオ、オーディオなどの実コンテンツを格納するMMTPペイロードの場合には「0」が指定され、制御情報であるMMT−SIを格納するMMTPペイロードの場合には「2」が指定される。
16ビットのpacket_idは、対応するMMTPペイロードに格納されるデータの種別を識別するための情報である。このpacket_idは、その値によって、ペイロードに格納されているデータがビデオ信号であるか、オーディオ信号であるか、制御用の情報(MMT−SI)であるかなどを示すことが可能である。
ここで、MMTPペイロードに格納されているデータがMMT−SIであった場合には、さらにそのMMT−SIの中身が識別され、必要に応じて図19で示す制御モジュール204、またはCASモジュール206に出力される。ここで、CASモジュール206に出力する必要がある情報は、加入者毎の契約情報や共通情報の暗号を解くためのワーク鍵などを含むEMM(Entitlement Management Message)、または、番組に関する情報と復号に必要となる鍵などを含むECM(Entitlement Control Message)である。これ以外の情報は、制御モジュール204へ出力され、制御モジュール204はその内容に応じて、MMT処理・復号モジュール205およびMMT暗号モジュール207を制御するために利用される。なお、MMT−SIは、基本的には平文で、MMT処理・復号モジュール205で復号処理が行われる必要はない。ただし、EMMまたはECMは別の方式によって暗号化が行われているが、この復号はCASモジュール206によって実行される。このため、EMMまたはECMの復号は、MMT処理・復号モジュール205で行われない。
続く16ビットのtimestampには、このMMTパケットの先頭バイトが図19で示す放送局201から送出される時刻が示され、短形式NTPタイムスタンプで記載される。なお、FEC_type(2ビット)、RAP_flag(1ビット)、packet_sequence_number(32ビット)、およびpacket_counter(32ビット、オプション)の各項目については、本願の趣旨には無関係であるため、説明を割愛する。
先述したように、extention_flagに1が指定されていた場合には、MMTPヘッダは、MMTP基本ヘッダに続いてMMTP拡張ヘッダを含むこととなる。
MMTP拡張ヘッダは、一つのMMTPパケットに複数記載されることがあるが、図15では一つのMMTP拡張ヘッダが記載された例を示している。なお、MMTPヘッダは、MMTP拡張ヘッダを有していないケースもありえる。
MMTP拡張ヘッダが存在する場合、MMTP拡張ヘッダは、その先頭16ビットのextension_typeにおいて、マルチタイプヘッダー拡張を示す「0x0000」が指定される。
さらに、続く16ビットのextention_lengthは、この情報以降に引き続くMMTP拡張ヘッダのサイズがバイト単位で記載される。
次の1ビットのマルチヘッダー拡張終了フラグは、このMMTP拡張ヘッダが最後のものであるか否かを示す。マルチヘッダー拡張終了フラグは、複数のMMTP拡張ヘッダを記載する場合には、「0」が指定される。
続く15ビットのマルチヘッダー拡張タイプは、このMMTP拡張ヘッダに含まれる情報の種別が記載される。MMTPペイロードに暗号化の対象となるビデオ信号やオーディオ信号が格納される場合、MMTP拡張ヘッダに暗号の制御に関する情報が格納される。この場合には、マルチヘッダー拡張タイプには、「0x0001」が設定される。
次に16ビットの拡張領域長フィールドには、このMMTP拡張ヘッダのサイズがバイト単位で記載される。
次の3ビットのリザーブ領域を飛ばして、続く2ビットのMMTスクランブル制御ビットは、MMTPペイロードに格納されるビデオ信号またはオーディオ信号が暗号化されているか否かを示し、ビデオ信号またはオーディオ信号が暗号化されている場合にはイーブン鍵およびオッド鍵のどちらを用いるかを示すこととなる。
次の1ビットのスクランブル方式識別制御ビットは、後述するスクランブル方式識別子が記録されているか否かを示す。1ビットのMMTスクランブル初期値制御ビットは、後述するMMTスクランブル初期値情報が記載されているか否かを示す。なお、1ビットのメッセージ認証制御ビットは本願の趣旨との関係が薄いため、説明を割愛する。
先述したスクランブル方式識別制御ビットは、「1」である場合、8ビットのスクランブル方式識別子が記載され、スクランブル方式識別子を用いて実際に利用される暗号化方式が判定される。スクランブル方式識別子が「0x01」である場合、広く利用されている鍵長128bitsのAES暗号化方式が利用されていることが示される。
続く16ビットのペイロード長には、後述するMMTスクランブル初期値情報の長さがバイト単位で指定される。ここでMMTスクランブル初期値情報の長さは、16バイトであるため、このペイロード長には「0x0010」が指定される。
最後にMMTスクランブル初期値情報には、AES暗号化方式を利用する場合の初期値であるカウンタ情報が記載される。なお、MMTスクランブル初期値制御ビットが0である場合、カウンタ情報としてMMTペイロードスクランブル初期値情報に記載される値ではなく、packet_sequence_numberまたはpacket_idの値を用いて計算される値が利用されることとなる。
(16)MMT−SIが格納される場合のMMTPペイロードの構成
図16は、MMT−SIが格納される場合のMMTPペイロードの構成の一例を示す図である。
MMTPペイロードは、更に、ヘッダ領域とペイロード領域とを有する。
ヘッダ領域の先頭には、MMTPペイロードに格納すべきMMT−SIが分割されて記録されているか否かを示す2ビットのfragmentation_indicatorが格納される。
通常、一つのMMTPパケットは、1500バイト前後のサイズであるが、MMT−SIとして記録すべき制御情報はこれ以上のサイズとなる可能性がある。このような場合、MMT−SIは、分割されて、複数のMMTPパケットに格納される。
fragmentation_indicatorは、分割されずに一つのMMTPパケットに格納されているか、分割されたMMT−SIの先頭部分を含むか、分割されたMMT−SIの中間部分を含むか、分割されたMMT−SIの末尾部分を含むかを示す。fragmentation_indicatorは、二進数で「00」である場合、分割されずに一つのMMTPパケットに格納されていることを示す。fragmentation_indicatorは、二進数で「01」である場合、分割されたMMT−SIの先頭部分を含むことを示す。fragmentation_indicatorは、二進数で「10」である場合、分割されたMMT−SIの中間部分を含むことを示す。fragmentation_indicatorは、二進数で「11」である場合、分割されたMMT−SIの末尾部分を含むことを示す。
なお、日本の4K/8K放送の場合には、最大でも三分割までとの規定があるため、中間部分の場合には分割の2番目であり、末尾部分の場合には分割の3番目(先行する分割が先頭部分の場合には2番目)であることが保証される。
なお、1ビットのlength_extention_flag、1ビットのaggregation_counter、および8ビットのfragment_counterについては本願の趣旨とは無関係なため、詳細な説明を割愛する。
(17)MMT−SIがMMTPペイロードのペイロード領域に格納される場合の構成
図17は、MMTPペイロードのペイロード領域にMMT−SIが格納される場合の構成の一例を示す図である。
ペイロード領域の先頭にはMMT−SIの種別を示す16ビットのmessage_idが格納される。MMT−SIには、スクランブルの制御に関するECM/EMM、ビデオまたはオーディオのストリームとMMTPパケット群との対応関係を示すMPT/PLTなどがあり、それぞれのMMT−SIに対してmessage_idが付与されている。
続く8ビットのversionは、MMT−SIのバージョンを示す。次の32ビットのlengthは、MMT−SIのバイト数を示す。ここで示されるバイト数は、当該MMTPパケットに格納されるMMT−SIのバイト数ではなく、分割前のMMT−SIのバイト数である。
先述したようにMMT−SIが最大3分割して格納される場合、lengthフィールドは、分割された複数のMMTPパケットのうち先頭のMMTPパケットのみに格納される。
(18)MMT−SIが複数に分割されて格納される場合の構成
図18は、MMT−SIが複数に分割されて格納される場合の複数に分割されたMMT−SIと複数のMMT−SIを格納する複数のMMTPパケットとの関係の一例を示す図である。
一つのMMT−SIは、先頭部分に配置されるmessage_id、versionおよびlengthを含むヘッダ領域と、ヘッダ領域の後に配置される実際のmessage部とから構成される。MMT−SIは、複数(図18では3つ)に分割される場合、このデータ構造のままで分割される。よって、MMT−SIのヘッダ領域のlengthのフィールドは、先頭のMMTPパケットのみに格納される。
ここで、これまで図15および図17で説明したとおり、MMTPパケット自身には、MMT−SIの先頭に記載されるlengthの情報を除いてMMTPパケットまたはMMTPパケットのペイロードに関する長さを示す情報が存在しないことに注意する必要がある。なお、MMTPパケットにMMT−SIではなくA/Vデータが格納される場合のMMTPペイロードの先頭領域には、当該MMTPパケットに格納されるA/Vデータのサイズが格納されるため、この問題は発生しない。
こうして得られたMMT−SIは、先述したmessage_idの値に応じて制御モジュール204またはCASモジュール206に出力され、各々適切な処理が行われる。
なお、先述したとおり、MMT−SIが分割されている場合には、MMT処理・復号モジュール205自身ではMMTPパケットの長さを判断することはできない。しかしながら、TLV/IP処理モジュール203から各MMTPパケットの長さに関する情報をあわせて取得することにより、MMT処理・復号モジュール205では適切な処理が可能である。
(19)記録装置の構成
図19は、実施の形態に係る記録装置の構成の一例を示すブロック図である。
記録装置202は、TLV/IP処理モジュール203、制御モジュール204、MMT処理・復号モジュール205、CASモジュール206、MMT暗号モジュール207、記録モジュール208および記録媒体209を備える。
AVコンテンツは、MMT/TLV方式で多重化された暗号ストリームとして放送局201から記録装置202へと伝送される。記録装置202は、例えば、Blu−ray(登録商標)レコーダである。また、記録装置202は、USB接続されるHDDを外付けすることで、テレビ受信機、セットトップボックス(STB)などであってもよい。
放送局201から受信した放送波は、チューナー(図示しない)でアナログ信号からデジタル信号へと変換され、MMT/TLV方式の暗号ストリームとしてTLV/IP処理モジュール203へと送られる。
TLV/IP処理モジュール203は、受信したMMT/TLV方式のストリームを、必要に応じてTLV−SIまたはNTPの処理を行いながら、TLVヘッダ、IPヘッダ、UDPヘッダを除去し、さらにTLV−NULLを廃棄する処理を行う。TLV/IP処理モジュール203は、上記処理により得られたMMT暗号ストリームをMMT処理・復号モジュール205に出力する。
こうしてMMT処理・復号モジュール205に出力されたMMT暗号ストリームは、MMT処理・復号モジュール205によって一旦復号化される。MMT処理・復号モジュール205によって復号化されることで得られた整形MMT平文ストリームは、MMT暗号モジュールに出力され、MMT暗号モジュール207により再度暗号化されることによって録画対象のデータとなる。録画対象のデータは、記録モジュール208を介して記録媒体209に記録される。
(20)MMT/TLV方式の放送コンテンツの録画する部分
図20は、MMT/TLV方式の放送コンテンツのうちの録画する部分を説明するための図である。
図20に示すように、受信したMMT/TLV方式の放送コンテンツのデータのうち、灰色で示された部分のみが録画の対象となる。
MMT/TLV方式の放送コンテンツのデータには、TLV−NULLのように明らかに録画時には廃棄しても問題がないデータに加えて、伝送制御のために必要となるTLV−SI、端末の時刻あわせのために必要となるNTPも含まれる。つまり、TLV−NULL、TLV−SI、NTPなどのデータは、録画したコンテンツを再生するためには必要のないデータであり、録画領域を効率的に利用するためには、廃棄しても良い。
TLVヘッダ、IPv6ヘッダ、UDPヘッダ、圧縮IPヘッダなどの各ヘッダも、すべて伝送制御のために各MMTPパケットに付与された情報であり、録画した後で再生を行うにあたっては不要なデータであるので、これらのデータは、録画領域の効率活用のために廃棄してもよい。
結果として、記録すべきデータは、MMT−SIを含むMMTPパケット、および、A/Vデータを含むMMTPパケットのみとなる。
なお、MMT−SIは、ECM/EMMのように、スクランブルされた放送を復号する際には利用するが、いったん平文として再度別の鍵情報を用いて再暗号化した上で録画したコンテンツを再生する場合には利用しないデータを含む。このため、MMT−SIに含まれるデータであっても、コンテンツを再生する場合には利用しないデータについては記録しなくてもよく、録画領域の効率活用のために廃棄しても良い。
また、A/Vデータも必ずしも全てが記録される必要はない。A/Vデータのうちたとえば副音声用のオーディオデータについては録画せずに廃棄してもよいし、データ放送用コンテンツなどの付加的なコンテンツデータも録画せずに廃棄してもよい。
このように、不要なデータを削除した上でMMT処理・復号モジュール205に送付されたMMTPパケット群は、AES−CTRモードを用いて復号される。
さて、ここで先述したとおり、A/Vデータの場合にはMMTPペイロードに格納されるデータのサイズは必ずMMTPペイロード先頭の領域に記録される。このため、記録装置202は、ひとつのMMTPパケットから正しくA/Vデータを取り出し、次のMMTPパケットの先頭位置を特定することが可能である。同様にMMT−SIを格納するMMTPパケットについても、MMT−SIが分割記録されていなければ、記録装置202は、正しくMMT−SIのメッセージを取り出し、次のMMTPパケットの先頭位置を特定することが可能である。しかしながら、MMT−SIが2分割、または3分割されている場合には、これが実現できなくなる。
(21)MMT−SIが分割格納される例
図21は、MMT−SIが複数のMMTPパケットに分割して格納される場合を説明するための図である。なお、以降では、分割されたMMT−SIを分割MMT−SIとも言う。
図21の例では、一つのMMT−SIメッセージが二つのMMTPパケットに分割されて記録されている。このケースでは、packet_counterを運用しないことにより固定長となるMMTP基本ヘッダと、固定サイズの領域と長さ指定つきの領域を持つMMTP拡張ヘッダとにより、記録装置202は、一つ目のMMTPパケットの先頭から、順にMMTP拡張ヘッダの先頭、MMTPペイロードの先頭へとアクセスすることが可能である。記録装置202は、一つ目のMMTPペイロードの中でも、fagmentation_indicatorなどから構成され、必ず固定長である先頭のヘッダ領域を識別して、MMT−SIが格納された領域の先頭までアクセスすることも可能である。記録装置202は、さらにMMT−SIの先頭に記載されたmessage_id、version、およびlengthも取得可能である。しかしながら、ここで取得できるlengthは、一つ目のMMTPパケットのMMTPペイロードの長さではなく、分割される前のMMT−SIメッセージの長さを示している。このため、記録装置202は、lengthを取得できても、MMTPペイロードがどこで終わるかを判断することができず、次のMMTP基本ヘッダの冒頭位置も識別ができない。
このような問題を解決するために、本実施の形態に係る記録装置202は、分割されたMMT−SIを再統合したうえでMMTPパケットに格納する。
(22)分割MMT−SIの再構成する例
図22は、分割MMT−SIを再構成する場合の一例を説明するための図である。
図22の例では、一つのMMT−SIメッセージが三つのMMTPパケットに分割されて記録されている。一つ目と三つ目のMMTPパケットは、MMTP基本ヘッダに加えてMMTP拡張ヘッダが記録されており、二つ目のMMTPパケットにはMMTP基本ヘッダのみが記録されている。このようなケースにおいて、MMT処理・復号モジュール205は、各MMTPペイロードに格納された部分的なMMT−SIメッセージを取得し、これを再構成して一つのMMT−SIメッセージとする。そして、MMT処理・復号モジュール205は、一つのMMT−SIメッセージを一つのMMTPパケットに格納する。なお、図22では、MMTP拡張ヘッダを持たないMMTPパケットとして再構成しているが、MMTP拡張ヘッダを含めて再構成しても良い。また、先に述べたようにMMTPパケット群となった状態では、既に分割されたMMT−SIメッセージを格納した各MMTPパケットの長さがわからないが、これは各MMTPパケットのサイズ情報をTLV/IP処理モジュール203から入手することで処理可能である。
(23)分割MMT−SIを再構成する別の例
図23は、分割MMT−SIを再構成する場合の別の一例を説明するための図である。
場合によっては、再構成前のMMTPパケット群と再構成後のMMTPパケット群とのサイズが変わらないことが望ましい場合もある。これは、後述するタイムサーチマップを作成する際に再生時間(ビデオのフレーム数)とストリーム内でのアドレス(先頭からのバイト数)とが必要となるためである。この処理は、リアルタイムに行う必要があり、通常MMT処理・復号モジュール205で、MMT−SIの再構成処理を行う前に処理される。このため、データサイズが処理前と処理後とで変わることは好ましくない。この問題を解決するために、図23で示すように再構成前のMMTPパケット群と長さを合わせるためにNULLデータを含むMMTPパケットを挿入してもよい。なお、分割されたMMTPパケット群の場合には少なくとも余分なMMTP基本ヘッダがあるため、NULLデータを含むMMTPパケットを挿入したとしても、挿入後のほうが長くなることはない。
(24)MMTPパケットの再構成処理
図24は、MMTPパケットの再構成処理の一例を示すフローチャートである。
最初に、記録装置202のMMT処理・復号モジュール205は、ステップS1501において、処理対象となるMMTPパケットのデータをひとつ読み出す。なお、本フローチャートでは示していないが、放送録画の終了時点では、MMTPパケットのデータが読み出せなくなるため、フローチャートのループを抜け出すことになる。
MMT処理・復号モジュール205は、ステップS1502において、ステップS1501で読み出したMMTPパケットについて、分割MMT−SIを含むMMTPパケットか否かを判定する。
MMT処理・復号モジュール205は、MMTPパケットに分割MMT−SIが含まれないと判定した場合、つまりステップS1502においてNoの場合、ステップS1503に進む。具体的には、MMT処理・復号モジュール205は、MMTPパケットが、通常のA/Vデータを含むパケットである場合、または、MMT−SIを含むMMTPパケットであったとしても分割MMT−SIではない場合、ステップS1503を行う。
MMT処理・復号モジュール205は、ステップS1503において、対象となったMMTPパケットを特に加工せずにそのまま、後工程であるMMT暗号モジュール207に送信する。
一方で、MMT処理・復号モジュール205は、MMTPパケットに分割MMT−SIが含まれると判定した場合、つまりステップS1502においてYesの場合、ステップS1504に進む。
MMT処理・復号モジュール205は、ステップS1504において、当該MMTPパケットが末尾のMMT−SIを含むか否かを判定する。先述したとおり、この判定はfragmentation_indicatorを参照することによって可能である。MMT処理・復号モジュール205は、ここで末尾ではないと判定した場合、つまり、ステップS1504でNoの場合、ステップS1505に進む。
MMT処理・復号モジュール205は、ステップS1505において、当該MMTPパケットの中で部分的に記録されているMMT−SIメッセージをバッファに保持させる。この場合は、MMT処理・復号モジュール205は、当該MMTPパケットを出力せずに一旦破棄する。なお、MMT処理・復号モジュール205は、MMT−SIメッセージの部分をバッファに蓄積するとしたが、当該MMTPパケットがMMT−SIメッセージの先頭を含む場合には、MMTP基本ヘッダを含めてバッファに格納しても良い。これは、後ほどステップS1506にてMMTPパケットを出力する際に、ここで格納しておいたMMTP基本ヘッダを利用するためである。また、MMT処理・復号モジュール205は、異なるmessage_idを持ったMMT−SIメッセージを、当該MMT−SIメッセージが各々分割された上で入り混じった状態で、ステップS1501において取得するケースもありえる。この場合、MMT処理・復号モジュール205は、S1505で述べたバッファに、互いに異なるmessege_idを有する複数のMMT−SIを保持させる。
最後に、MMT処理・復号モジュール205は、MMTPパケットが末尾のMMT−SIを含むMMTPパケットであると判定した場合、つまりステップS1504でYesの場合、ステップS1506に進む。MMT処理・復号モジュール205は、ステップS1506において、MMTPパケットを再構成し、再構成したMMTPパケットを出力する。再構成については先に図22で示したとおり、それまでにステップS1505で示すバッファに格納されたMMT−SIのメッセージに、さらに末尾のMMT−SIのメッセージを付加することにより得られた一つのMMTPパケットを、後工程であるMMT暗号モジュール207に出力する。なお、ステップS1501で取得された当該MMTPパケットはここで破棄される。また、MMT暗号モジュール207に出力されるMMTPパケットのMMTP基本ヘッダには、ステップS1501で取得された当該MMTPパケットのMMTP基本ヘッダが利用されるか、先にステップS1505でバッファに保持しておいたMMT−SIの先頭を含むMMTPパケットのMMTP基本ヘッダが利用される。また、先に図23で示したとおり、更に、再構成したMMTPパケットの後にNULLデータを含むMMTPパケットを出力しても良い。なお、この際にはMMT−SIメッセージとして出力したMMTPパケットのMMTP基本ヘッダと同様のMMTP基本ヘッダを利用するのが基本であるが、そのtimestampだけは調整する必要がある。つまり、timestampには、先行するMMTPパケットのサイズと転送レートに応じて適切な値が記録される。
こうして、整形された平文のMMTストリームは、図19で示すMMT暗号モジュール207に出力される。MMT暗号モジュール207は、このMMTストリームを6144バイト単位のAligned Unitで暗号化する。
(25)Aligned Unitの暗号方法
図25は、Aligned Unit単位での暗号方法を説明するための図である。
録画対象のコンテンツは、MMT暗号モジュール207において、タイトル鍵(図ではKtと記載)と呼ぶデータを用いて暗号化される。MMT暗号モジュール207は、各6144バイトのデータを、先頭の16バイトと残る6128バイトとに分離する。MMT暗号モジュール207は、先頭の16バイトを対象として、先述したタイトル鍵を用いてAES暗号方式の暗号処理であるAES_Eで処理する。MMT暗号モジュール207は、こうして得られたデータをさらに先頭16バイトのデータとXORしたうえで、これを鍵として残る6128バイト分のデータをAES−CBCモードで暗号化する。MMT暗号モジュール207は、こうして得られた暗号文のデータに先頭16バイトのデータを付け加えることで、6144バイト分の暗号文を得る。この方式は、Blu−ray(登録商標) Discの著作権保護方式であるAACSにて採用されている方式であり、既に様々なLSIで実装されている。つまり、暗号方式に、上記方式を用いることで新たな開発を行うことなく、暗号化の適用が可能である。なお、本願では過去の実装を活用するという目的でAligned Unit単位での暗号化を行うと記載したが、本願としてはこれに限定するものではない。例えば、光ディスクの一般的なセクタサイズである2048バイト単位、あるいは光ディスク上のエラー訂正符号ブロック(ECCブロック)のサイズである64Kバイト単位でAES−CBCモードを用いて暗号化するという方法なども想定されうる。
こうして得られた記録用MMT暗号ストリームは、暗号化の際に用いたタイトル鍵とともに記録モジュール208に出力される。記録モジュール208は、タイトル鍵と記録用MMT暗号化ストリームとをあわせて記録媒体209に記録する。ここで、記録媒体209は、Blu−ray(登録商標) Discなどの光ディスクを想定するが、これに限るものではない。記録装置202がテレビである場合には、記録媒体209は、外付けのUSB HDDであってもよい。また、記録装置202がレコーダである場合にも、記録媒体209は、必ずしも可搬型の光ディスクではなく、機器に内蔵されたHDDであってもよい。
また、図19では、単純化のためにタイトル鍵がそのまま記録媒体に格納されるかのように記載したが、セキュリティ観点では、タイトル鍵は更なる保護を加えた上で記録媒体209に記録されるべきである。例えば、記録媒体209が内蔵HDDの場合には、機器が持つデバイス鍵を用いて暗号化されたタイトル鍵が記録されることが望ましい。また、記録媒体209がBlu−ray(登録商標) Discをはじめとする光ディスクの場合には、メディアごとに付与された固有のメディア鍵で暗号化されたタイトル鍵が記録されることが望ましい。
(26)光ディスク上でのコンテンツの構成
図26は、光ディスク上での記録用MMT暗号ストリームの記録形態を示す図である。
光ディスク上では、記録用MMT暗号ストリームは、ストリーム毎に固有の番号を付与され、ストリームファイルとして例えば「XXXXX.MMTS」というファイル名で記録される。ここで「XXXXX」は5桁の番号であり、この番号で各ファイルが識別されうる。ストリームファイルは、先述したような6144バイト単位のAligned Unitに分割されており、分割された複数のAligned Unitの各々が図25で示した暗号方式で暗号化されている。なお、図示はしていないが、各ストリームファイルに対応するタイトル鍵も同様に当該光ディスクに記録されている。当該タイトル鍵も先述したとおり、当該メディアに付与されたメディア鍵で暗号化された上で、暗号化タイトル鍵として記録されていることが望ましい。
また、当該ストリームファイルを先頭からリアルタイムに通常再生していく場合には不要であるが、早送り、巻き戻し、時間指定位置からの再生などの特殊再生を行う場合にはタイムサーチマップと呼ぶデータ構造をあわせて光ディスクに格納しておくことが好ましい。タイムサーチマップでは、圧縮符号化されたビデオストリームにおける圧縮単位(GOP:Group of Pictureなどと呼ぶ)ごとに、ファイル先頭からの記録位置とフレーム数とが対応付けて記録される。これによって、再生装置は、記録媒体における、たとえば先頭から1000フレーム目の記録位置を瞬時に識別し、1000フレーム目から再生することが容易にできる。
なお、従来一般的に利用されていた多重化方式であるMPEG2−TS方式では、タイムスタンプつきの場合には192バイト単位のデータ構造となっている。ここでの記録位置は、このタイムスタンプ付TSパケットの単位で指定することができる。MPEG2−TSでは、この単位を用いて、50GBの光ディスクでも、32ビットで十分に記録位置を表現することができる。
一方、多重化方式としてMMT/TLV方式を用いる場合には、MMTPパケットが可変長の構造となっているため、パケット単位で記録位置を指定することは難しい。よって、ファイルの記録位置は、バイト単位で指定される。このため50GBの光ディスクでは、ファイルの記録位置を32ビットで表現することが難しく、たとえば40ビットで表現することが必要となる。ただし、32ビットでの表現でもカウンタをサイクリック表現にするなどの工夫を行えば、ファイルの記録位置をバイト単位で表現することが可能となる。
(27)再生装置の構成
図27は、実施の形態に係る再生装置の構成の一例を示すブロック図である。
再生装置302は、記録媒体209に格納された記録用MMT暗号ストリームをタイトル鍵を用いて復号しながら再生する。
最初に再生装置302は、記録媒体209からタイトル鍵を読み出し、読み出したタイトル鍵をMMT処理・復号モジュール305にセットする。この鍵が、記録装置202におけるスクランブル鍵の代わりとなる。
次に再生装置302は、記録媒体209から記録用MMT暗号ストリームを読み出し、MMT処理・復号モジュール305に出力する。ここでMMT処理・復号モジュール305は、セットされたタイトル鍵を用いてAligned Unit単位で暗号化されている記録用MMT暗号ストリームを復号する。
なお、再生装置302のMMT処理・復号モジュール305は、記録装置202のMMT処理・復号モジュール205と同様の構成である。MMT処理・復号モジュール305において復号されたMMT平文ストリームは、デマルチ・デコードモジュール306に出力される。
(28)Aligned Unitの復号方法
図28は、Aligned Unit単位での復号方法を説明するための図である。
録画対象のコンテンツは、タイトル鍵(図ではKtと記載)と呼ぶデータを用いて暗号化されている。MMT処理・復号モジュール305は、各6144バイトのデータを先頭の16バイトと残る6128バイトとに分離する。MMT処理・復号モジュール305は、先頭の16バイトを対象として、先述したタイトル鍵を用いてAES暗号方式の暗号処理であるAES_Eで処理する。MMT処理・復号モジュール305は、こうして得られたデータをさらに先頭16バイトのデータとXORしたうえで、これを鍵として残る6128バイト分のデータをAES−CBCモードで復号する。MMT処理・復号モジュール305は、こうして得られた平文のデータに先頭16バイトのデータを付け加えることで、6144バイト分の平文を得る。
こうして得られた平文のMMTストリームは、MMT処理・復号モジュール305で処理される。記録装置202の場合には、特に分割されたMMT−SIを含むMMTPパケットを正しく処理するために、各MMTPパケットのサイズについてTLV/IP処理モジュール203からの情報が必要であった。これに対して、再生装置302で扱う記録用MMT暗号ストリームの場合には、各MMTPパケットにおいてペイロードのサイズに関する情報が必ず存在していることが保証される。これにより、MMT処理・復号モジュール305は、正しくMMS−SIを取り出して制御モジュール304に出力すること、または、残るA/Vデータを含むMMT平文ストリームをデマルチ・デコードモジュール306に出力することが可能である。こうして通知されたA/Vデータは、デマルチ・デコードモジュール306で復号され、表示モジュール307で表示される。
(29)混在フラグ
以上で説明したように、MPEG−2 TS方式のAVクリップとMMT/TLV方式のAVクリップとでは、記録するデータ構造から再生するための復号処理方法までの差異が種々存在する。
AVクリップと1対1対応で管理するリアルプレイリストにおいては、同一プレイリスト内でMMT/TLV方式とMPEG−2 TS方式とが混在して管理されることはない。一方のユーザの編集により作成されるバーチャルプレイリストでは、MPEG−2 TS方式のAVクリップとMMT/TLV方式のAVクリップとが混在するように作成してもよい。
図3で説明したように各プレイアイテムは、いずれかのAVクリップを参照するが、バーチャルプレイリストの再生では、バーチャルプレイリストに記載されるプレイアイテムが順次連続して再生される。このため、バーチャルプレイリストに記載されるプレイアイテムが切り替わるところでAVクリップの記録方式が別の記録方式に変化したとき、再生装置は、その復号処理を切り替えなければ、切り替わった後のAVクリップを正しく再生することができない。したがって、再生装置は、多重化方式の異なるAVクリップが混在しているバーチャルプレイリストによる再生を行う場合、あらかじめ混在することを知る必要がある。
そこで、図29に示すようにバーチャルプレイリストファイルの中にプレイリスト情報としてTS/MMT混在フラグを設ける。図29は、MPEG−2TS方式とMMT/TLV方式とが混在する場合のプレイリストの内部構成の一例を示す図である。TS/MMT混在フラグが真(TRUE)を示すならば、当該バーチャルプレイリストの中にMPEG−2 TS方式のAVクリップとMMT/TLV方式のAVクリップとの両方が存在することを表す。このため、再生装置は、両方の方式のAVクリップを再生するための復号処理をあらかじめ準備することに役立つ。また、再生装置によっては、MPEG−2 TS方式のみ、MMT/TLV方式のみしか再生できないケースもありうる。このような再生装置では、前記混在フラグを確認することにより、当該バーチャルプレイリストを再生候補として提示しないという方法も取ることが可能となる。
(30)混在フラグによる再生処理
図30は、TS/MMT混在フラグによる再生装置の再生処理の一例を示すフローチャートである。
再生装置は、ステップS3001において、プレイリスト情報を取得する。
再生装置は、ステップS3002において、取得したプレイリスト情報からTS/MMT混在フラグの値を取得し、TS/MMT混在フラグが真であるか否かを判定することで、これから再生を開始するプレイリストに多重化方式が混在するか否かを判定する。
再生装置は、TS/MMT混在フラグの値が真(TRUE)である場合、つまりステップS3002においてYesである場合、バーチャルプレイリストにはMPEG−2 TS方式のAVクリップとMMT/TLV方式のAVクリップとの両方が存在するため、再生開始時に両方のデコーダの起動をスタンバイする(S3003)。
その後、再生装置は、ステップS3004において、バーチャルプレイリストの再生開始にあたり、各プレイアイテムが参照するAVクリップがいずれの多重化方式であるかをチェックし、AVクリップが対応する多重化方式に応じてデコーダを切替えて再生する。
一方、再生装置は、TS/MMT混在フラグの値が偽(FALSE)である場合、つまりステップS3002においてNoである場合、バーチャルプレイリストにはMPEG−2 TS方式のAVクリップおよびMMT/TLV方式のAVクリップの一方だけであると判断できる。このため、再生装置は、ステップS3005において、バーチャルプレイリストの再生開始にあたり、先頭のプレイアイテムが参照するAVクリップの多重化方式をチェックし、当該AVクリップの多重化方式に応じたデコーダを起動する。再生装置は、2番目以降のプレイアイテムの再生においては、先頭のプレイアイテムで用いたのと同じ多重化方式と同じであるので、混在時のようにプレイアイテムの切り替わりの度に多重化方式をチェックする必要はなくなる。
なお、先に述べた混在のケースは、多重化方式の他にも、異なるビデオ解像度のAVクリップが混在するケースにも利用できる。ビデオ解像度が異なる大きさに変化する場合にも、復号処理に大きく影響を及ぼすことがあるためである。
従来の2Kコンテンツに比べ、4K、8K解像度のビデオコンテンツを再生するときには、復号されるピクチャを格納するのに、それぞれ4倍、16倍のメモリサイズが必要となる。
8Kビデオを復号できる再生装置では、8K解像度のピクチャを格納するメモリサイズを確保されるが、8Kコンテンツを含まないプレイリストを再生するのに、常時8K解像度のピクチャに必要なメモリサイズを確保する必要はなく、結果としてプレイリストで再生される最も大きい解像度のビデオを再生するのに必要なメモリサイズさえ確保されればよい。したがって、プレイリスト情報に、どの解像度のビデオコンテンツが存在するかを示す情報を記載することにより、再生装置は、あらかじめ適切なメモリサイズを設定することが可能となる。
この場合、プレイリスト情報には、例えば2Kコンテンツ存在フラグ、4Kコンテンツ存在フラグ、8Kコンテンツ存在フラグ、として記載され、それぞれ2K解像度のビデオコンテンツを含むならば2Kコンテンツ存在フラグは真(TRUE)を示し、4K解像度のビデオコンテンツを含むならば4Kコンテンツ存在フラグは真(TRUE)を示し、8K解像度のビデオコンテンツを含むならば8Kコンテンツ存在フラグは真(TRUE)を示す。なお、プレイリスト情報には前述のフラグ形式に限定されることはなく、例えばプレイリストに含まれるビデオ解像度の中で最も大きい解像度を記載することでもよい。
(31)MMTの時間表現
MPEG−2 TS方式のAVクリップでは、再生時間は、AVクリップ内に格納されるPCRに記述されるシステム時間を基点とするSTCによって表現される。
一方、MMT/TLV方式では、MMTPパケットにtimestampが短形式NTPタイムスタンプで記載される。また、MMT/TLV方式では、MPEG−2 TS方式のPCRに相当する基軸時間は、MMTPパケットとは別に受信されるNTPパケットに記述される時刻であり、それはすなわちUTC時間を基軸としている。
AVクリップとしてMMTPパケット以下のみを記録する場合、AVクリップ内から基軸となる時間を取得することができないことになる。
図5にて説明したクリップ情報ファイルには、AVクリップの再生開始時刻および再生終了時刻が記述される。従来のMPEG−2 TS方式では、再生開始時刻と再生終了時刻とはSTC時間を基軸としたビデオフレームの表示時刻により再生開始時刻と再生終了時刻とを定義することができた。
しかしながら、MMT/TLV方式においては、基軸となる時間を取得できない場合が存在し得る。NTPパケットは、TLVパケット階層以下にあり、MMTPパケット階層の上位に含まれる。このため、AVクリップとしてMMTPパケット以上を記録する場合には、NTPパケットが廃棄されるため、基軸となる時間を取得できない。
そのため、AVクリップとしてMMTPパケット以上のみを記録する場合、NTPパケットの起点となる時刻をクリップ情報ファイルの中に記載することでAVクリップのSTC時間として規定することができる。
図31は、MMT/TLV方式におけるクリップ情報ファイルの内部構成の一例を示す図である。
図31に示すNTP基準時刻は、受信したMMT/TLVストリームに対し、記録装置が記録開始をした時点から最初に出現したNTPパケットに記載される時刻を示す。
AVクリップがMMTPパケット以上のみで記録されている場合、AVクリップから起点となる時刻を取得できないので、AVクリップの再生開始時刻は、このNTP基準時刻を起点として設定する。再生開始時刻には、NTP基準時刻を45kHz系の時刻に換算した時刻が設定される。再生終了時刻には、再生開始時刻にAVクリップに含まれるビデオストリームの再生時間を加算した時刻が設定される。すなわち、AVクリップがMMTPパケット以上で記録される場合、基準時刻情報、再生開始時刻および再生終了時刻は、以下に示す関係で表される。
NTP基準時刻 = [記録開始時に最初に出現したNTPパケットに記載の時刻]
再生開始時刻 = [NTP基準時刻]
再生終了時刻 = [再生開始時刻] + [AVクリップ内のビデオの再生時間]
AVクリップがTLVパケット以上で記録されている場合、AVクリップ内にNTPパケットが存在するので、記録されたAVクリップ内で最初に見つかったNTPパケットからNTP基準時刻を取得できる。このため、クリップ情報の中に特に何も記載していなくてもよい。このとき再生開始時刻は、例えば0を起点としてもよい。再生終了時刻には、再生開始時刻にAVクリップに含まれるビデオストリームの再生時間を加算した時刻が設定される。
すなわち、AVクリップがTLVパケット以下で記録される場合、基準時刻情報、再生開始時刻および再生終了時刻は、以下に示す関係で表される。
NTP基準時刻 = 0
再生開始時刻 = 0
再生終了時刻 = [AVクリップ内のビデオの再生時間]
なお、再生開始時刻は、0を起点としているが、0でなくてもよく任意の値であればよい。
上記のようにMMT/TLV方式の放送コンテンツを受信し、受信した放送コンテンツを記録する記録装置について図32を用いて説明する。
図32は、実施の形態に係る記録装置の機能的な構成の一例を示すブロック図である。
記録装置202は、コンテンツを受信する受信部121と、受信したコンテンツを記録媒体209に記録する記録部122とを備える。受信部121は、例えば、放送波を受信する受信アンテナおよびチューナにより実現される。記録部122は、例えば、専用回路により実現されてもよいし、プログラムを格納しているメモリおよびメモリを用いた処理を行うプロセッサにより実現されてもよい。記録部122は、図19におけるTLV/IP処理モジュール203、制御モジュール204、CASモジュール206、MMT暗号モジュール207および記録モジュール208により構成されていてもよい。
コンテンツは、具体的には、MMT/TLV方式で多重化されている暗号ストリームである。つまり、コンテンツは、複数の第1パケットにより構成される。複数の第1パケットのそれぞれは、複数階層の可変長パケット構造を有する。複数の第1パケットのそれぞれは、MMT/TLV方式により多重化されたTLVパケットである。また、複数の第1パケットの少なくとも1つは、基準時刻情報を含む。基準時刻情報は、NTPに基づく時刻を示す時刻情報である。基準時刻情報は、NTPパケットに含まれる。
記録部122は、複数の第1パケットに含まれる1以上の基準時刻情報のうちの最初の基準時刻情報をコンテンツの管理情報に含まれるコンテンツの基準時刻(NTP基準時刻)およびコンテンツの再生開始時刻として記録してもよい。また、記録部122は、再生開始時刻にコンテンツの再生時間を加算することにより算出される時刻をコンテンツの生成終了時刻として記録媒体209に記録してもよい。コンテンツの管理情報は、例えばクリップ情報ファイルのクリップ情報である。
また、記録部122は、コンテンツの記録媒体209における再生開始位置を示す開始位置情報を再生開始時刻に対応付けて管理情報において記録してもよい。また、記録部122は、コンテンツの記録媒体209における再生終了位置を示す終了位置情報を再生終了時刻に対応付けて管理情報において記録してもよい。
また、記録部122は、受信部121により受信されたコンテンツが有する複数の第1パケットから、第1パケットよりも上位層の複数の第2パケットと、基準時刻情報とを抽出し、抽出した複数の第2パケットと、基準時刻情報とを記録してもよい。この場合、複数の第2パケットのそれぞれは、MMTP(MPEG Media Transport Protocol)パケットである。
図33は、実施の形態に係る記録装置による記録方法の一例を示すフローチャートである。
記録装置202の受信部121は、コンテンツを受信する(S3301)。
次に、記録部122は、受信部121が受信したコンテンツを記録媒体209に記録する(S3302)。
(32)エントリポイントのバイト表現について
図34は、エントリマップのEPコースおよびEPファインを説明するための図である。
図7で説明した、MPEG−2 TS方式のAVクリップにおけるエントリマップでは、エントリポイントが示す時間情報は33ビットで表され、位置情報は32ビットで表される。また、当該エントリマップでは、隣接するエントリポイントの位置の差は、通常32ビットよりも十分小さいビット数によって表現することができる。時間情報についても同様に、隣接するエントリポイントの時間差は、33ビットよりも十分小さいビット数によって表現可能である。
そこで、各エントリポイントの時間情報と位置情報とは、それぞれの差分が表現できるだけの下位ビット分で記述する、例えば位置情報は下位17ビット、時間情報は下位20ビットのうち9ビット分を除いた11ビットで記述することとし、これをEPファインと呼ぶ。また、EPファインの時間情報および位置情報が桁あふれする位置においては、時間情報および位置情報の上位ビットを記述することとし、これをEPコースと呼ぶ。つまり、EPファインおよびEPコースのような2階層構造によりエントリポイントが表現されてもよい。
この位置情報の表現方法によりエントリマップのデータ量を削減するとともに、エントリポイントへの探索処理を向上が図られる。
MMT/TLV方式のエントリマップについても、MPEG−2TS方式と同様にEPコースおよびEPファインの2段階構造のエントリマップで構成される。このエントリマップで管理する時間情報と位置情報とは、MPEG−2TS方式のAVクリップとは記録対象が異なる。
AVクリップがMPEG−2 TS方式のストリームである場合、時刻情報はPCRパケットに記述されるシステム時間を基準とする時刻を示し、位置情報はソースパケット番号を示す。一方、AVクリップがMMT/TLV方式のストリームである場合、時刻情報はNTPパケットに記述されるUTC時間を基準とする時刻を示し、位置情報はクリップ先頭からのバイト数を示す。
位置情報を表現するのに、MPEG−2 TS方式ではタイムスタンプつきの場合には、192バイト単位のデータ構造となっている。このため、MPEG−2 TS方式では、記録位置をタイムスタンプ付TSパケットの単位で指定することができた。よって、タイムスタンプ付TSパケット単位を用いて、100GBの光ディスクでも、32ビットで十分に記録位置を表現することができた。
一方で、MMT/TLV方式の場合にはMMTPパケットが可変長の構造となっているため、パケット単位で位置情報を指定することはできないため、ファイルの記録位置をバイト単位で指定する必要がある。
しかしながら100GBの光ディスクでは、32ビットでの表現では不十分であり、たとえば37ビットでの表現が必要となる。ただし、32ビットでもカウンタをサイクリック表現にするなどの工夫を行えば、記録位置をバイト単位で表現することが可能となる。
さらに、EPファインで表現される位置情報についてもまた、従来のMPEG−2 TS方式ではパケット単位で指定していた。一方で、MMT/TLV方式では、バイト単位で指定すると、MPEG−2 TS方式で表現可能な分解能を十分得ることができないので、MPEG−2 TS方式の分解能相当を表現するためには、1バイト分多くデータ量が必要である。
EPコースで粗い間隔の位置情報を従来のMPEG−2 TS方式では32ビット分すべて記述していた。一方で、MMT/TLV方式のバイト単位で表現する場合、位置情報の37ビットのうちその上位16ビットだけを表現するとしてもよい。この場合、下位ビットを表現するEPファインの値との合算によって37ビット分を表現することができるため、EPコースのデータ量を削減することができ、エントリマップ全体でのデータ量の増加を軽減できる。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の記録装置、記録方法などを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、少なくとも1つが基準時刻情報を含む複数の第1パケットであって、それぞれが複数階層の可変長パケット構造を有する複数の第1パケットにより構成されるコンテンツを受信し、受信した前記コンテンツを記録媒体に記録する記録方法を実行させる。
以上、本発明の一つまたは複数の態様に係る記録装置、記録方法および記録媒体について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つまたは複数の態様の範囲内に含まれてもよい。