以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.DSDロスレスストリームのMP4ファイル化
2.第1の実施の形態(配信システム:サンプルとブロックの対応付け)
3.第2の実施の形態(配信システム:パラメータセットとエレメンタリストリームの分離)
4.第3の実施の形態(配信システム:オーディオサンプルエントリの設定)
5.第4の実施の形態(配信システム:拡張ボックスの設定)
6.その他
<1.DSDロスレスストリームのMP4ファイル化>
<映像や音声の配信>
近年、映像と音楽を消費者に届ける手段として、インターネットを介したストリーミング配信が期待されている。しかしながら、伝送手段としてのインターネットは、放送や光ディスクと比べて伝送が不安定である。まずユーザの環境によって伝送帯域の最高レートが大きく変わる。さらに同一ユーザであっても常に一定の伝送帯域が確保されていることはなく、時間の経過で変動する。また伝送帯域が変動するということは、クライアントからの要求に対する応答時間が一定ではないということでもある。
このようなインターネットを介した伝送のための規格として、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)が開発されている。サーバ側にデータサイズが異なる複数のファイルを置いておき、クライアントがMPD(Media Presentation Description)を参照して最適なファイルを選択するというプル型のモデルである。特殊なプロトコルを使わずhttpを用いることで、一般的なHTTP(HyperText Transfer Protocol)サーバが利用できる。ファイル形式は、MPEG-TS(Moving Picture Experts Group - Transport Stream)だけでなく、ISOBMFF(International Organization for Standardization Base Media File Format)形式のファイルが使われている。
<MPEG-DASH>
MPEG-DASHを用いたデータ伝送の様子の例を図1に示す。図1の情報処理システム1において、ファイル生成装置2は、動画コンテンツとして、ビデオデータやオーディオデータを生成し、符号化し、伝送用のファイルフォーマットでファイル化する。例えば、ファイル生成装置2は、これらのデータを10秒程度の時間毎にファイル化する(セグメント化する)。ファイル生成装置2は、生成したセグメントファイルを、Webサーバ3にアップロードする。また、ファイル生成装置2は、動画コンテンツを管理するMPDファイル(管理ファイル)を生成し、それをWebサーバ3にアップロードする。
DASHサーバとしてのWebサーバ3は、ファイル生成装置2により生成された動画コンテンツのファイルを、MPEG−DASHに準ずる方式で、インターネット4を介して再生端末5にライブ配信する。例えば、Webサーバ3は、ファイル生成装置2からアップロードされたセグメントファイルやMPDファイルを格納する。また、Webサーバ3は、再生端末5からの要求に応じて、格納しているセグメントファイルやMPDファイルを再生端末5に送信する。
再生端末5(再生装置)は、ストリーミングデータの制御用ソフトウエア(以下、制御用ソフトウエアとも称する)6、動画再生ソフトウエア7、HTTPアクセス用のクライアント・ソフトウエア(以下、アクセス用ソフトウエアという)8等を実行する。
制御用ソフトウエア6は、Webサーバ3からストリーミングするデータを制御するソフトウエアである。例えば、制御用ソフトウエア6は、Webサーバ3からMPDファイルを取得する。また、制御用ソフトウエア6は、例えば、そのMPDファイルや動画再生ソフトウエア7により指定される再生時刻等を表す再生時刻情報、およびインターネット4のネットワーク帯域に基づいて、再生対象のセグメントファイルの送信要求を、アクセス用ソフトウエア8に指令する。
動画再生ソフトウエア7は、インターネット4を介してWebサーバ3から取得された符号化ストリームを再生するソフトウエアである。例えば、動画再生ソフトウエア7は、再生時刻情報を制御用ソフトウエア6に指定する。また、動画再生ソフトウエア7は、アクセス用ソフトウエア8から受信開始の通知を取得すると、アクセス用ソフトウエア8から供給される符号化ストリームを復号する。動画再生ソフトウエア7は、復号の結果得られるビデオデータやオーディオデータを出力する。
アクセス用ソフトウエア8は、HTTPを用いたWebサーバ3との通信を制御するソフトウエアである。例えば、アクセス用ソフトウエア8は、受信開始の通知を動画再生ソフトウエア7に供給する。また、アクセス用ソフトウエア8は、制御用ソフトウエア6の指令に応じて、再生対象のセグメントファイルの符号化ストリームの送信要求をWebサーバ3に送信する。さらに、アクセス用ソフトウエア8は、その送信要求に応じてWebサーバ3から送信されてくる、通信環境等に応じたビットレートのセグメントファイルを受信する。そして、アクセス用ソフトウエア8は、その受信したファイルから符号化ストリームを抽出し、動画再生ソフトウエア7に供給する。
<DSD>
ところで、映像や音楽のデータは高品質化が進み、それとともに、配信においてもより高品質なデータの配信が求められている。例えば、音声信号の高品位な変調方式としてDSD(Direct Stream Digital)が知られている(図2)。図2に示されるように、PCM(Pulse Code Modulation)の場合、オーディオアナログ信号の各サンプリング時刻の信号値が固定数ビットのデジタルデータに変換されるのに対して、DSDの場合、オーディオアナログ信号がΔΣ変調され、1ビットのデジタルデータに変換される。
DSDの場合、サンプリング周波数が例えば2.8MHz、5.6MHz、11.2MHzと高いため、ビットレートも2chでそれぞれ、5.6Mbps、11.2Mbps、22.4Mbps になる。そこで、このような高レートのDSDデータをロスレスで圧縮する方式が考案された。
<DST>
例えば、DSDデータの可逆圧縮符号化方式として、SACD(Super Audio Compact Disc)向けに開発しMPEG4 AAC(Advanced Audio Coding)(IEC/ISO(International Organization for Standardization / International Electrotechnical Commission) 14496-3)で規格化されているDST(Direct Stream Transfer)がある。しかしながら、このDSTは負荷が大き過ぎて、ソフトウエアでの処理には適さない。
<新たなDSD可逆圧縮符号化方式>
そこで、DSTとは異なる手法で、組み込み系プロセッサでのソフトウエア処理でも実現できる新たなDSD可逆圧縮符号化方式が開発された。この新たなDSD可逆圧縮符号化方式で生成したDSDロスレスストリームを配信に用いることで、伝送に必要な帯域を抑えることが可能になるとともに、PCやモバイル端末のようなクライアントでのソフトウエア処理でのリアルタイムデコードが期待できる。
例えば、図3のAに示されるように、オーディオデータの符号化方式にAACを用いる通常のライブストリーミングの場合、ビットレートが一定であるので、ビデオデータは、伝送路の帯域変動に応じてビットレートを選択する。これに対して、オーディオデータの符号化方式にDSDの可逆符号化方式を採用したライブストリーミング(4K+DSD)の場合、図3のBに示されるように、DSDロスレスストリームは、局所的なレート変動が大きい。つまり、このレート変動により生じる帯域の余裕をビデオデータの伝送に割り当てることができ、より高品位なビデオデータ伝送を可能にする。
<圧縮符号化装置の構成例>
このような新たなDSD可逆圧縮符号化方式に対応する圧縮符号化装置の主な構成例を図4に示す。図4に示される圧縮符号化装置10は、アナログのオーディオ信号をΣ△(シグマデルタ)変調によりデジタル信号に変換し、変換後のオーディオ信号を圧縮符号化して出力する装置である。つまり、圧縮符号化装置10は、オーディオ信号をDSD方式で変調してデジタル化し、そのデジタルデータ(DSDデータ)を上述した新たなDSD可逆圧縮符号化方式で符号化し、DSDロスレスストリームを生成する装置である。
アナログのオーディオ信号は、入力部11から入力されて、ADC(Analog Digital Converter)12へ供給される。ADC12は、供給されたアナログのオーディオ信号を、ΣΔ変調によりデジタル化して、入力バッファ13に出力する。
ADC12は、加算器21、積分器22、比較器23、1サンプル遅延回路24、及び、1ビットDAC(Digital Analog Converter)25により構成される。入力部11から供給されたオーディオ信号は、加算器21に供給される。加算器21は、1ビットDAC25から供給された1サンプル期間前のアナログのオーディオ信号と、入力部11からのオーディオ信号を加算して、積分器22に出力する。積分器22は、加算器21からのオーディオ信号を積分して比較器23に出力する。比較器23は、入力オーディオ信号の中点電位と比較されて1サンプル期間ごとに1ビット量子化する。サンプル期間の周波数(サンプリング周波数)は、従来の48kHz、44.1kHzに対して、その64倍あるいは128倍の周波数が用いられる。比較器23は、1ビット量子化したオーディオ信号を、入力バッファ13に出力するとともに、1サンプル遅延回路24に供給する。1サンプル遅延回路24は、比較器23からのオーディオ信号を1サンプル期間分遅延させて1ビットDAC25に出力する。1ビットDAC25は、1サンプル遅延回路24からのデジタル信号をアナログ信号に変換して加算器21に出力する。
以上のように構成されるADC12は、入力部11から供給されたオーディオ信号を、1ビットのデジタル信号に変換(A/D変換)して、入力バッファ13に出力する。このΣΔ変調のA/D変換によれば、サンプル期間の周波数(サンプリング周波数)を充分高くすることによって、例えば1ビットの少ないビット数でも広いダイナミックレンジのデジタル音声信号を得ることができる。例えば、ADC12には、入力部11からステレオ(2チャンネル)のオーディオ信号が入力され、ADC12は、それを44.1kHzの128倍のサンプリング周波数で1ビットの信号にAD変換して入力バッファ13に出力する。なお、ΣΔ変調では、量子化のビット数を2ビットあるいは4ビットとすることもできる。
入力バッファ13は、ADC12から供給される1ビットデジタルのオーディオ信号を、一時蓄積し、1フレーム単位で後段の制御部14、エンコード部15、及び、データ量比較部17に供給する。ここで、1フレームとは、オーディオ信号を所定の時間(期間)に区切って1まとまりとみなす単位である。例えば3秒を1フレームとしてもよい。換言するに、入力バッファ13は、オーディオ信号を、3秒単位で、制御部14、エンコード部15、及び、データ量比較部17に供給する。上述したように、入力部11から入力されるオーディオ信号は、ステレオ(2チャンネル)の信号であり、44.1kHzの128倍のサンプリング周波数で1ビットの信号にA/D変換するため、1フレーム当たりのデータ量は、44100(Hz)*128*2(ch)*3(sec)=5.6Mビットとなる。以下においては、入力バッファ13から供給される△Σ変調されたデジタル信号を、DSDデータとも称する。
制御部14は、圧縮符号化装置10全体の動作を制御する。また、制御部14は、エンコード部15が圧縮符号化を行うために必要となる変換テーブルtable1を作成して、エンコード部15に供給する機能を有する。例えば、制御部14は、入力バッファ13から供給される1フレームのDSDデータを用いて、データ発生カウントテーブルpretableを作成し、データ発生カウントテーブルpretableからさらに変換テーブルtable1を作成する。制御部14は、作成した変換テーブルtable1を、エンコード部15とデータ送信部18に供給する。変換テーブルtable1は、1フレーム単位で作成(更新)され、エンコード部15に供給される。
エンコード部15は、制御部14から供給された変換テーブルtable1を用いて、入力バッファ13から供給されるDSDデータを4ビット単位で圧縮符号化する。したがって、エンコード部15には入力バッファ13から、制御部14に供給されるタイミングと同時にDSDデータが供給されるが、エンコード部15では、制御部14から変換テーブルが供給されるまで処理は待機される。エンコード部15は、4ビットのDSDデータを、2ビットのデータに符号化するか、または、6ビットのデータに符号化して、符号化データバッファ16に出力する。
符号化データバッファ16は、エンコード部15で圧縮符号化されたDSDデータである圧縮データを一時的にバッファリングし、データ量比較部17とデータ送信部18に供給する。
データ量比較部17は、入力バッファ13から供給されるDSDデータ(以下、非圧縮データともいう。)と、符号化データバッファ16から供給される圧縮データのデータ量を、フレーム単位で比較する。エンコード部15は、上述したように、4ビットのDSDデータを、2ビットのデータか、または6ビットのデータに符号化するため、アルゴリズム上、圧縮後のデータ量が、圧縮前のデータ量を超えてしまう場合もあり得るためである。そこで、データ量比較部17は、圧縮データと非圧縮データのデータ量を比較して、データ量の少ない方を選択し、どちらを選択したかを示す選択制御データをデータ送信部18に供給する。なお、データ量比較部17は、非圧縮データを選択したことを示す選択制御データをデータ送信部18に供給する場合には、非圧縮データもデータ送信部18に供給する。選択制御データは、送信データを受け取る受信側の装置から見れば、データ送信部18から送信されてくるオーディオデータが、エンコード部15で圧縮符号化されたデータか否かを表すフラグであるといえる。
データ送信部18は、データ量比較部17から供給される選択制御データに基づいて、符号化データバッファ16から供給される圧縮データか、または、データ量比較部17から供給される非圧縮データのどちらかを選択し、選択制御データとともに、出力部19を介して相手装置に送信する。また、データ送信部18は、圧縮データを送信する場合には、制御部14から供給される変換テーブルtable1のデータも、圧縮データに付加して相手装置に送信する。データ送信部18は、送信データとして、所定数のサンプルごとのデジタル信号に同期信号と誤り訂正符号(ECC)を付加して送信することができる。
<データ発生カウントテーブルの作成方法>
次に、制御部14によるデータ発生カウントテーブルpretableの作成方法について説明する。
制御部14は、1フレームのDSDデータに対して、データ発生カウントテーブルpretableを作成するが、入力バッファ13から供給されるDSDデータを、4ビット単位で以下のように表す。
...D4[n-3],D4[n-2],D4[n-1],D4[n],D4[n+1],D4[n+2],D4[n+3],...
ここで、D4[n]は、4ビットの連続データを表し、以下では、D4データともいう(n>3)。
制御部14は、過去の3つのD4データ(過去の12ビットデータ)の次のD4データの発生回数をカウントし、図5に示されるデータ発生カウントテーブルpretable[4096][16]を作成する。ここで、データ発生カウントテーブルpretable[4096][16]の[4096]と[16]は、データ発生カウントテーブルが4096行16列のテーブル(行列)であることを表し、[0]乃至[4095]の各行は、過去の3つのD4データがとり得る値(過去のビットパターン)に対応し、[0]乃至[15]の各列は、次のD4データがとり得る値に対応する。
例えば、データ発生カウントテーブルpretableの1行目であるpretable[0][0]乃至[0][15]は、過去の3つのD4データD4[n-3],D4[n-2],D4[n-1]が“0”={0000,0000,0000}だった時の次のデータの発生回数を示しており、過去3つのデータが“0”だった次の4ビットは“0”であった回数が369a(HEX表記)であって、他のデータはなかったことを示している。データ発生カウントテーブルpretableの2行目であるpretable[1][0]乃至[1][15]は、過去の3つのD4データD4[n-3],D4[n-2],D4[n-1]が“1”={0000,0000,0001}だった時の次のデータの発生回数を示している。データ発生カウントテーブルpretableの2行目の全ての要素が“0”であるのは、過去データとして3つのD4データが“1”となるデータが、この1フレーム内に存在しなかったことを示している。また、図5では、データ発生カウントテーブルpretableの118行目であるpretable[117][0]乃至[117][15]は、過去の3つのD4データD4[n-3],D4[n-2],D4[n-1]が“117”={0000,0111,0101}だった時の次のデータの発生回数を示している。このデータでは、過去3つのデータが“117”だった次の4ビットが“0”であった回数が0回であり、“1”であった回数が1回であり、“2”であった回数が10回であり、“3”であった回数が18回であり、“4”であった回数が20回であり、“5”であった回数が31回であり、“6”であった回数が11回であり、“7”であった回数が0回であり、“8”であった回数が4回であり、“9”であった回数が12回であり、“10”であった回数が5回であり、“11”乃至“15”であった回数が0回であったことを示している。
制御部14は、以上のようにして、1フレームのDSDデータに対して、過去の3つのD4データ(過去の12ビットデータ)の次のD4データの発生回数をカウントし、データ発生カウントテーブルpretableを作成する。
<変換テーブルの作成方法>
次に、制御部14による変換テーブルtable1の作成方法について説明する。
制御部14は、先に作成したデータ発生カウントテーブルpretableに基づいて、4096行3列の変換テーブルtable1[4096][3]を作成する。ここで、変換テーブルtable1[4096][3]の各行[0]乃至[4095]は、過去の3つのD4データがとり得る値に対応し、各列[0]乃至[2]には、次のD4データがとり得る16個の値のうち、発生頻度が大きかった3つの値が格納される。変換テーブルtable1[4096][3]の第1列[0]には、発生頻度が最も大きい(1番目の)値が格納され、第2列[1]には、発生頻度が2番目の値が格納され、第3列[2]には、発生頻度が3番目の値が格納される。
図6は、図5に示したデータ発生カウントテーブルpretableに対応する変換テーブルtable1[4096][3]の例を示している。変換テーブルtable1[4096][3]の118行目であるtable1[117][0]乃至[117][2]は、{05,04,03}となっている。これは、図5のデータ発生カウントテーブルpretableの118行目のpretable[117][0]乃至[117][15]の内容と対応している。図5におけるデータ発生カウントテーブルpretableの118行目のpretable[117][0]乃至[117][15]では、発生頻度が最も大きい(1番目の)値は、31回発生した“5”であり、発生頻度が2番目の値は、20回発生した“4”であり、発生頻度が3番目の値は、18回発生した“3”である。これにより、変換テーブルtable1[4096][3]の第118行第1列table1[117][0]には、{05}が格納され、第118行第2列table1[117][1]には、{04}が格納され、第118行第3列table1[117][2]には、{03}が格納されている。同様に、変換テーブルtable1[4096][3]の1行目のtable1[0][0]乃至[0][2]は、図5のデータ発生カウントテーブルpretableの1行目のpretable[0][0]乃至[0][15]の内容と対応している。
図5のデータ発生カウントテーブルpretableの1行目のpretable[0][0]乃至[0][15]では、発生頻度が最も大きい(1番目の)値は、369a(HEX表記)回発生した“0”であり、それ以外の値は発生していない。そこで、変換テーブルtable1[4096][3]の第1行第1列table1[0][0]には、{00}が格納され、第1行第2列table1[0][1]と第1行第3列table1[0][2]には、データが存在しないことを表す{ff}が格納されている。データが存在しないことを表す値は、{ff}に限られず、適宜決定することができる。変換テーブルtable1の各要素に格納される値は、“0”から“15”までのいずれかであるので、4ビットで表現できるが、コンピュータ処理上、扱いを容易にするために8ビットで表現されている。
以上のようにして、先に作成したデータ発生カウントテーブルpretableに基づいて、4096行3列の変換テーブルtable1[4096][3]が作成され、エンコード部15に供給される。
<エンコード部15による圧縮符号化方法>
次に、エンコード部15による、変換テーブルtable1を用いた圧縮符号化方法について説明する。例えば、入力バッファ13から供給されるDSDデータ
...D4[n-3],D4[n-2],D4[n-1],D4[n],D4[n+1],D4[n+2],D4[n+3],...
のうち、エンコード部15が、D4[n]を符号化する場合について説明する。
D4[n]を符号化する場合、エンコード部15は、その直前の過去の12ビットのデータであるD4[n-3],D4[n-2],D4[n-1]を一塊の12ビットのデータとみなして、変換テーブルtable1[4096][3]の、D4[n-3],D4[n-2],D4[n-1]が示すアドレス(行)の3つの値、table1[D4[n-3],D4[n-2],D4[n-1]][0],table1[D4[n-3],D4[n-2],D4[n-1]][1],table1[D4[n-3],D4[n-2],D4[n-1]][2]を検索する。
エンコード部15は、変換テーブルtable1[4096][3]の、D4[n-3],D4[n-2],D4[n-1]が示すアドレス(行)の3つの値、table1[D4[n-3],D4[n-2],D4[n-1]][0],table1[D4[n-3],D4[n-2],D4[n-1]][1],table1[D4[n-3],D4[n-2],D4[n-1]][2]のなかにD4[n]と同じものがあり、table1[D4[n-3],D4[n-2],D4[n-1]][0]と同じ場合は、D4[n]を“01b”と2ビットに変換し、table1[D4[n-3],D4[n-2],D4[n-1]][1]と同じ場合は、D4[n]を“10b”と2ビットに変換し、table1[D4[n-3],D4[n-2],D4[n-1]][2]と同じ場合は、D4[n]を“11b”と2ビットに変換する。また、エンコード部15は、変換テーブルtable1[4096][3]の、D4[n-3],D4[n-2],D4[n-1]が示すアドレス(行)の3つの値のなかに同じものが無ければ、“00b+ D4[n]”のように、D4[n]の前に“00b”をつけて6ビットに変換する。ここで、“01b”、“10b”、“11b”、“00b+ D4[n]”のbは、2進表記であることを表す。
以上のようにして、エンコード部15は、変換テーブルtable1を用いて、4ビットのDSDデータD4[n]を、2ビットのデータ“01b”、“10b”若しくは“11b”に変換するか、または、6ビットのデータ“00b+D4[n]”に変換して、符号化データバッファ16に出力する。
<エンコード部15の詳細構成>
図7は、上述した圧縮符号化を行うエンコード部15の構成例を示す図である。
入力バッファ13から供給された4ビットのDSDデータ(例えば、D4[n])は、4ビットを格納するレジスタ51に記憶される。また、レジスタ51の出力は、セレクタ55の1つの入力端子56aと、12ビットを格納するレジスタ52とつながっており、レジスタ52には、レジスタ51に記憶されている4ビットのDSDデータの直前の過去の12ビットのデータ(例えば、D4[n-3],D4[n-2],D4[n-1])が格納されている。
変換テーブル処理部53は、制御部14から供給された変換テーブルtable1を有している。変換テーブル処理部53は、レジスタ52に格納されている12ビットのデータ(例えば、D4[n-3],D4[n-2],D4[n-1])が示すアドレスの3つの値、table1[D4[n-3],D4[n-2],D4[n-1]][0],table1[D4[n-3],D4[n-2],D4[n-1]][1],table1[D4[n-3],D4[n-2],D4[n-1]][2]のなかに、レジスタ51に格納されている4ビットのデータ(例えば、D4[n])があるか否かを検索し、ある場合には、同じ値が格納されている列に対応する値、即ち、“01b”、“10b”、または“11b”のいずれかを、2ビットのレジスタ54に記憶させる。2ビットのレジスタ54に記憶されたデータは、セレクタ55の1つの入力端子56cに供給される。また、変換テーブル処理部53は、レジスタ52に格納されている12ビットのデータ(例えば、D4[n-3],D4[n-2],D4[n-1])が示すアドレスの3つの値のなかに、レジスタ51に格納されている4ビットのデータ(例えば、D4[n])がない場合には、変換をしないことを示す信号(以下、変換無信号という。)を、セレクタ55に出力する。
セレクタ55は、3つの入力端子56a乃至56cのなかの1つを選択し、その選択された入力端子56から取得されるデータを出力端子57から出力する。入力端子56aには、レジスタ51に記憶された4ビットのDSDデータ(例えば、D4[n])が供給され、入力端子56bには、“00b”が供給され、入力端子56cには、レジスタ54に記憶された2ビットの変換データが供給される。セレクタ55は、変換テーブル処理部53から、変換しないことを示す変換無信号が供給された場合には、入力端子56bを選択して“00b”を出力端子57から出力した後、入力端子56aを選択して、レジスタ51に記憶された4ビットのDSDデータ(例えば、D4[n])を出力端子57から出力する。これにより、変換テーブルtable1にD4[n]と同じものがない場合に出力される6ビット“00b+ D4[n]”が出力端子57から出力される。また、変換しないことを示す変換無信号が供給されない場合(変換したことを示す変換有信号が供給された場合)には、セレクタ55は、入力端子56cを選択して、レジスタ54から供給された2ビットの変換データを出力端子57から出力する。これにより、変換テーブルtable1にD4[n]と同じものがあった場合に出力される2ビット、即ち、“01b”、“10b”、または“11b”のいずれかが出力端子57から出力される。
<圧縮符号化処理フロー>
図8のフローチャートを参照して、圧縮符号化装置10による圧縮符号化処理について説明する。
なお、図8の処理フローでは、ADC12の処理は省略されており、ADC12で△Σ変調された1フレームのDSDデータが入力バッファ13から出力された後の処理について説明する。
初めに、ステップS1において、制御部14は、1フレームのDSDデータに対して、過去の3つのD4データ(過去の12ビットデータ)の次のD4データの発生回数をカウントし、データ発生カウントテーブルpretableを作成する。
ステップS2において、制御部14は、作成したデータ発生カウントテーブルpretableに基づいて、4096行3列の変換テーブルtable1を作成する。制御部14は、作成した変換テーブルtable1を、エンコード部15とデータ送信部18に供給する。
ステップS3において、エンコード部15は、1フレーム期間のDSDデータに対して、変換テーブルtable1を用いて、圧縮符号化を実行する。具体的には、エンコード部15は、4ビットのDSDデータD4[n]を、2ビットのデータ“01b”、“10b”若しくは“11b”に変換するか、または、6ビットのデータ“00b+D4[n]”に変換する処理を1フレーム期間のDSDデータに対して行う。圧縮符号化されて得られた圧縮データは、符号化データバッファ16とデータ量比較部17に供給される。
ステップS4において、データ量比較部17は、入力バッファ13から供給された1フレームの非圧縮データと、符号化データバッファ16から供給された1フレームの圧縮データのデータ量を比較し、データ量が圧縮前よりも削減されたかを判定する。
ステップS4で、データ量が圧縮前よりも削減されたと判定された場合、処理はステップS5に進み、データ量比較部17は、圧縮データを選択したことを示す選択制御データをデータ送信部18に供給する。
ステップS6において、データ送信部18は、圧縮データを選択したことを示す選択制御データ(圧縮符号化されたデータを示すフラグ)と、エンコード部15から供給された圧縮データに、制御部14から供給された変換テーブルtable1のデータ(変換テーブルデータ)を付加して、相手装置に送信する。
また、ステップS4で、データ量が圧縮前よりも削減されていないと判定された場合、処理はステップS7に進み、データ量比較部17は、非圧縮データを選択したことを示す選択制御データを、非圧縮データとともにデータ送信部18に供給する。
ステップS8において、データ送信部18は、非圧縮データを選択したことを示す選択制御データ(圧縮符号化されていないデータを示すフラグ)と、非圧縮データを、相手装置に送信する。
以上で、1フレームのDSDデータの圧縮符号化処理は終了する。上述したステップS1乃至S8の処理は、入力バッファ13から順次供給される1フレーム単位のDSDデータに対して繰り返し実行される。
<復号装置の構成例>
図9は、上述した新たなDSD可逆圧縮符号化方式に対応する復号装置の主な構成例を示している。図9の復号装置70は、図4の圧縮符号化装置10が圧縮符号化して送信したオーディオ信号を受信して伸長処理(可逆復号)する装置である。
図4の圧縮符号化装置10が圧縮符号化して送信したオーディオ信号は、不図示のネットワーク(例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、電話回線網、衛星通信網などの公衆回線網など)を経由して、復号装置70の入力部71で受信され、データ受信部72に供給される。
データ受信部72は、受信データに含まれる同期信号を分離するとともに、ネットワーク伝送中に発生した伝送誤りを検出して訂正する。そして、データ受信部72は、受信データに含まれる、オーディオ信号が圧縮符号化されているか否かを示す選択制御データに基づいて、オーディオ信号が圧縮符号化されているか否かを判定する。そして、オーディオ信号が圧縮符号化されている場合には、データ受信部72は、受信した圧縮データを、符号化データバッファ73に供給する。また、オーディオ信号が圧縮符号化されていない場合には、データ受信部72は、受信した非圧縮データを、出力バッファ76に供給する。さらに、データ受信部72は、受信データに含まれる、変換テーブルtable1のデータ(変換テーブルデータ)を、テーブル記憶部75に供給する。テーブル記憶部75は、データ受信部72から供給された変換テーブルtable1を記憶し、必要に応じてデコード部74に供給する。
符号化データバッファ73は、データ受信部72から供給される圧縮データを一時蓄積し、所定のタイミングで後段のデコード部74に供給する。
デコード部74は、圧縮データを圧縮前の状態に復号(可逆復号)して、出力バッファ76に供給する。
<復号方法の詳細>
デコード部74による復号方法について説明する。圧縮符号化装置10で圧縮符号化されて送信されてきた圧縮データを、2ビット単位で以下のように表し、E2[n]を復号する場合について説明する。
...E2[n-3],E2[n-2],E2[n-1],E2[n],E2[n+1],E2[n+2],E2[n+3],...
ここで、E2[n]は、2ビットの連続データを表し、E2データともいう。
デコード部74は、まず、E2[n]の値を判定する。E2[n]が“00b”である場合、受信された変換テーブルtable1[4096][3]に搭載されてないデータであるので、E2[n]の次の4ビットのデータ“E2[n+1]+E2[n+2]”が復号すべきデータとなる。また、E2[n]が“01b”、“10b”、または“11b”である場合、受信された変換テーブルtable1[4096][3]に搭載されているデータであるので、その直前に復号した12ビットのD4データD4[n-3],D4[n-2],D4[n-1]を使って、変換テーブルtable1[4096][3]を参照し、復号すべきデータを検索する。復号すべきデータは、“table1[D4[n-3],D4[n-2],D4[n-1]][ E2[n]-1]”に格納されているデータとなる。以上のようにして、デコード部74は、圧縮データを圧縮前の状態に復号(可逆復号)することができる。デコード部74は、図9に示されるように、2ビットのレジスタ91、12ビットのレジスタ92、変換テーブル処理部93、4ビットのレジスタ94、及び、セレクタ95により構成される。
符号化データバッファ73から供給された2ビットのE2データ(例えば、E2[n])は、レジスタ91に記憶される。12ビットのレジスタ92には、セレクタ95の出力が供給されるようになっており、レジスタ92は、レジスタ91に記憶されている2ビットのE2データ(例えば、E2[n])の直前に復号した12ビットのデータ(例えば、D4[n-3],D4[n-2],D4[n-1])が格納されている。レジスタ91に記憶されている2ビットのE2データ(例えば、E2[n])が“00b”である場合、セレクタ95は、入力端子96aを選択し、E2[n]の次の4ビットのデータ“E2[n+1]+E2[n+2]”を復号結果として、出力端子97から出力する。レジスタ91に記憶されている2ビットのE2データ(例えば、E2[n])が“01b”、“10b”、または“11b” である場合、変換テーブル処理部93は、テーブル記憶部75から供給された変換テーブルtable1の“table1[D4[n-3],D4[n-2],D4[n-1]][ E2[n]-1]”に格納されている4ビットのデータをレジスタ94に記憶させる。セレクタ95は、入力端子96bを選択し、レジスタ94に記憶されているデータを復号結果として、出力端子97から出力する。
出力バッファ76は、データ受信部72から供給された非圧縮データ、または、デコード部74から供給された復号後のデータのいずれかを適宜選択して、アナログフィルタ77に供給する。
アナログフィルタ77は、出力バッファ76から供給された復号後のデータに対して、ローパスフィルタ、バンドパスフィルタ等の所定のフィルタ処理を実行し、出力部78から出力させる。
<復号処理フロー>
図10のフローチャートを参照して、復号装置70の復号処理についてさらに説明する。
初めに、ステップS21において、データ受信部72は、受信データに含まれる選択制御データに基づいて、受信したデータが圧縮符号化された圧縮データであるかを判定する。
ステップS21で、受信したデータが圧縮データであると判定された場合、処理はステップS22に進み、データ受信部72は、受信データに含まれていた変換テーブルデータをテーブル記憶部75に供給する。変換テーブル処理部93は、テーブル記憶部75を介して、受信された変換テーブルtable1を取得する。またステップS22では、受信データに含まれていた圧縮データが、符号化データバッファ73に供給される。
ステップS23において、デコード部74は、変換テーブルtable1を用いて、符号化データバッファ73から供給された圧縮データを復号し、出力バッファ76に供給する。即ち、デコード部74は、2ビットのE2データ(例えば、E2[n])が“00b”である場合、E2[n]の次の4ビットのデータ“E2[n+1]+E2[n+2]”を復号結果として出力バッファ76に供給し、2ビットのE2データ(例えば、E2[n])が“01b”、“10b”、または“11b” である場合、変換テーブルtable1の“table1[D4[n-3],D4[n-2],D4[n-1]][ E2[n]-1]”に格納されている4ビットのデータを復号結果として出力バッファ76に供給する。
また、ステップS21で、受信したデータが圧縮データではない、即ち非圧縮データであると判定された場合、処理はステップS24に進み、データ受信部72は、受信データに含まれていた非圧縮データを取得し、出力バッファ76に供給する。
以上までの処理により、非圧縮データか、または、デコード部74によって復号されたデータが、出力バッファ76に供給され、出力バッファ76に供給されたデータが、アナログフィルタ77に出力される。
ステップS25において、アナログフィルタ77は、出力バッファ76を介して供給されたデータに対して所定のフィルタ処理を実行する。フィルタ処理後のオーディオ信号が出力部78から出力される。
1フレーム単位のオーディオ信号に対して、以上の処理が繰り返し実行される。
<DSDロスレスストリームの構造>
上述の新たなDSD可逆圧縮符号化方式において、DSDデータは、1chあたり固定長(4096x32=131072ビット)のブロック(Block)に分割されて圧縮される。圧縮後、連続する10ブロック分の圧縮データにヘッダを付けてGOB(Group of Blocks)が構成される。さらにそのGOBの先頭にコンフィギュレーション情報(configuration)を付加した単位が、DSDロスレスペイロード(DSD_lossless_payload())となる。ブロックの伸長に必要な情報(code book;参照テーブル)は、GOBヘッダ(GOB header)とGOBデータ(GOB data)に格納される。AACとのストリームスイッチングも考慮し、ブロック(Block(audio frame))の時間長はAACと同程度に設定されている。
DSDロスレスストリームの基本的な構造の例を図11に示す。図11の一番上の段に示されるように、DSDロスレスストリーム(DSD lossless stream)は、複数のDSDロスレスペイロード(DSD_lossless_payload())により構成される。
図11の上から2段目に示されるように、1つのDSDロスレスペイロードは、フォーマットバージョン(format version)、GOBコンフィグ(GOB config)、およびGOBにより構成される。
図11の上から3段目に示されるように、GOBは、GOBヘッダ(GOB header)、GOBデータ(GOB data)、10個のブロック(Block1乃至Block10)よりなる。GOBヘッダおよびGOBデータは、このGOBの復号に利用されるGOBイニシャライザ(GOB initializer)とも称する。GOBイニシャライザには、復号に用いられるデコーダコンフィギュレーション情報(decoder configration)、メタデータ(metadata)、コードブック(code book)等が含まれる。
図11の一番下の段に示されるように、ブロック(Block)は、ブロックヘッダ(Block header)、左チャンネルのオーディオデータ(L)、右チャンネルのオーディオデータ(R)、およびバイトアライン(byte align)により構成される(DSDデータが左右2chの場合)。
1ブロック(Block)は、fsに依らず、1chあたり圧縮前のDSDデータで4096x32=131072ビット分のデータが格納される。つまり、1ブロックの長さ(ブロック長)は、サンプリング周波数が2.8MHzの場合、約46msecとなり、サンプリング周波数が5.6MHzの場合、約23msecとなり、サンプリング周波数が11.2MHzの場合、約12msecとなる。例えば、サンプリング周波数が2.8MHzの場合、1GOBには、再生時間で約468msec分のデータが格納される。
<シンタクス>
DSDロスレスペイロードのシンタクスの例を図12のAに示す。図12のAに示されるように、DSDロスレスペイロード(DSD_lossless_payload())には、例えば、format version、DSD_lossless_gob_configuration()、DSD_lossless_gob(number_of_audio_data)等が格納される。このformat versionは、図11のフォーマットバージョン(format version)に相当する。また、DSD_lossless_gob_configuration()は、図11のGOBコンフィグ(GOB config)に相当する。また、DSD_lossless_gob()は、図11のGOBに相当する。
DSD_lossless_gob_configuration()のシンタクスの例を図12のBに示す。図12のBに示されるように、DSD_lossless_gob_configuration()には、例えば、channel_configuration、number of blocks、sampling_frequency、comment_flag、comment_size、comment_byte等が格納される。
DSD_lossless_gob()のシンタクスの例を図12のCに示す。図12のCに示されるように、DSD_lossless_gob()には、例えば、DSD_lossless_gob_header()、DSD_lossless_gob_data()、DSD_lossless_block()、byte_align()等が格納される。このDSD_lossless_gob_header()は、図11のGOBヘッダ(GOB header)に相当する。DSD_lossless_gob_data()は、図11のGOBデータ(GOB data)に相当する。DSD_lossless_block()は、図11の各ブロック(Block1乃至Block10)に相当する。
DSD_lossless_gob_header()のシンタクスの例を図12のDに示す。図12のDに示されるように、DSD_lossless_gob_header()には、例えば、DSD_lossless_block_info等が格納される。
DSD_lossless_gob_data()のシンタクスの例を図12のDに示す。図12のDに示されるように、DSD_lossless_gob_data()には、例えば、gob_codebook_length、gob_codebook[i]等が格納される。gob_codebook[i]は、図11のコードブック(code book)に相当する。
<復号>
上述した新たなDSD可逆圧縮符号化方式のDSDロスレスストリームの復号の様子の例について説明する。DSDロスレスストリームにおいては、上述したように、所定の時間分のデータがGOBとしてまとめて管理される。すなわち、DSDロスレスストリームは、図13のAに示されるように、GOBイニシャライザと所定数のブロック(例えば10ブロック)とが連続する構成となる。GOBイニシャライザは再生時間が0であるので単体でアクセス単位とすると再生時刻の管理が複雑になる。そこで、GOBイニシャライザは、そのGOBの先頭のブロックであるブロック1に付加し、GOBイニシャライザとブロック1とを1つのアクセス単位とするものとする。
DSDロスレスストリームのデコーダ(DSDロスレスデコーダ)は、GOBイニシャライザに含まれるデコーダコンフィギュレーション情報を用いて各ブロックを展開し、復号する。そのため、GOBの各ブロックを復号するために、最初にGOBイニシャライザをDSDロスレスデコーダに読み込ませる必要がある。例えばGOBの最初のブロック(ブロック1)から各ブロックを順に復号する場合(順次デコードの場合)、図13のBに示されるように、GOBイニシャライザはブロック1に付加されているので、各ブロックを順次DSDロスレスデコーダに入力すればよい。
GOBの途中のブロックから再生を開始する場合(例えばランダムアクセスの場合)も、GOBイニシャライザを最初にDSDロスレスデコーダに入力する必要がある。例えば、ブロック6から再生を開始する場合、図13のCに示されるように、GOBイニシャライザが付加されたブロック1を最初にDSDロスレスデコーダに入力し、その後、ブロック6以降を入力するようにすればよい。この場合、DSDロスレスレコーダは、ブロック1のデコード結果は破棄して、次のブロック6のデコード結果から出力する。
なお、DSDロスレスストリームからGOBイニシャライザをブロック1と分離して読み出せる場合は、図13のDに示されるように、最初に、GOBイニシャライザを読み出し、ブロック6に付加してDSDロスレスデコーダに入力するようにしてもよい。この場合、不要なブロックの復号を省略することができる。
<MP4化の流れ>
MPEG-DASHにおいて、高品位な映像と音楽をユーザに送る手段として、ISO/IEC14496-12で規定されたISOBMFF形式のファイルを用いることが考えられた。例えば、ISOBMFF形式の派生フォーマットである、MPEG-4の第14部(ISO/IEC 14496-14:2003)で規定されているファイルフォーマット(以下MP4とも称する)のファイル(以下、MP4ファイルとも称する)を用いることが考えられた。
映像や音声のデータのMP4ファイル化は、図14の例のように行えばよい。例えば映像の場合、非圧縮のビデオ素材(ビデオデータ)は、画像形式変換され、AVC(Advanced Video Coding)エンコーダやHEVC(High Efficiency Video Coding)エンコーダ等により符号化され、拡張子「bsf」のファイル(.bsfファイル)が生成される。.bsfファイルは、符号化されたストリームを格納するファイルである。
音声の場合、DSD音声素材(DSDデータ)は、例えば、DSDロスレスエンコーダにより、上述した新たなDSD可逆圧縮符号化方式により符号化され、拡張子「enc」のファイル(.encファイル)、拡張子「afr」のファイル(.afrファイル)、拡張子「esd」のファイル(.esdファイル)等が生成される。.encファイルは、符号化されたDSDロスレスストリームを格納するファイルである。.afrファイルは、MP4ファイルに格納する際のサンプルテーブル作成を補助するメタデータを格納するファイルである。.esdファイルは、デコーダコンフィギュレーションのためのメタデータを格納するファイルである。
なお、DSD音声素材は、例えば、DSD-PCM変換によりPCMデータに変換され、AACエンコーダによって符号化され、拡張子「aac」のファイル(.aacファイル)、.afrファイル、.esdファイル等が生成されるようにしてもよい。.aacファイルは、符号化されたaacストリームを格納するファイルである。
これらのファイルに格納される情報が多重化されてMP4ファイルが生成される。
<MP4ファイルフォーマット>
MP4ファイルの主な構成例を、図15のAに示す。MP4ファイルは、ボックスと称する階層構造を有する。例えば、MP4ファイルは、図15のAに示されるように、ファイルタイプコンパチビリティボックス(Flie Type Compatibility Box(ftyp))、ムービーボックス(Movie Box(moov))、メディアデータボックス(Media Data Box(mdat))を有する。ファイルタイプコンパチビリティボックス(ftyp)は、ファイルの先頭を表し、ファイルフォーマットの種別を識別する情報を格納する。ムービーボックス(moov)は、コンテンツのメタデータ等を格納する。メディアデータボックス(mdat)は、実際のAVデータ(actual data)を格納する。
例えば、ムービーボックス(moov)は、ムービーヘッダボックス(Movie Header Box)や、トラックボックス(Track Box(track))等を有する。ムービーヘッダボックスには、例えば、ムービー時間軸の設定情報や、拡大/縮小、回転、再生速度の情報等が格納される。トラックボックス(track)は、トラック毎に生成される。トラックボックス(track)には、例えば、そのトラックに関する情報が格納される。
例えば、トラックボックス(track)は、トラックヘッダボックス(Track Header Box)、エディットボックス(Edit Box)、メディアボックス(Media Box(mdia))等を有する。トラックヘッダボックスは、例えば、空間位置、サイズ、拡大/縮小、レイヤ等の画面合成に関する情報やトラック間の関連付けに関する情報等が格納される。エディットボックスには、例えば、時間位置や再生速度等のAV同期に関する情報が格納される。メディアボックス(mdia)には、例えば、AVデータに関する情報が格納される。
例えば、メディアボックス(mdia)は、メディアヘッダボックス(Media Header Box)、メディアハンドラーボックス(Media Handler Box)、メディアインフォメーションボックス(Media Information Box(minf))等を有する。メディアヘッダボックスやメディアハンドラーボックスには、例えば、AVデータの種類、メディア時間軸の設定、言語設定等に関する情報が格納される。メディアインフォメーションボックス(minf)には、例えば、データやサンプルに関する情報が格納される。
例えば、メディアインフォメーションボックス(minf)は、データインフォメーションボックス(Data Information Box)やサンプルテーブルボックス(Sample Table Box)等を有する。データインフォメーションボックスには、例えば、データの格納場所や参照方法等、データの参照に関する情報が格納される。サンプルテーブルボックスには、例えば、データの時間やアドレス情報等、サンプルの管理に関する情報が格納される。
<サンプルテーブルボックス>
サンプルとは、MP4ファイルフォーマットにおける最小アクセス単位である。サンプルテーブルボックスの主な構成例を図15のBに示す。図15のBに示されるように、例えば、サンプルテーブルボックス(stbl)は、サンプルディスクリプションボックス(Sample Description Box)、タイムトゥーサンプルボックス(Time To Sample Box)、サンプルサイズボックス(Sample Size Box)、サンプルトゥーチャンクボックス(Sample To Chunk Box)、チャンクオフセットボックス(Chunk Offset Box)、シンクサンプルボックス(Sync Sample Box)、サブサンプルインフォメーションボックス(Subsample Information Box)を有する。
サンプルディスクリプションボックスには、例えば、コーデックや画サイズ等に関する情報が格納される。例えば、サンプルディスクリプションボックスには、サンプルに関する情報が格納されるサンプルエントリ(sample entry)が格納される。デコードコンフィギュレーション情報は、このサンプルエントリに格納される。タイムトゥーサンプルボックスには、例えば、サンプルの時刻に関する情報が格納される。サンプルサイズボックスには、例えば、サンプルのサイズに関する情報が格納される。サンプルトゥーチャンクボックスには、例えば、サンプルのデータの位置に関する情報が格納される。チャンクオフセットボックスには、例えば、データのオフセットに関する情報が格納される。
シンクサンプルボックスには、例えば、シンクサンプルに関する情報が格納される。シンクサンプル(Sync Sample)とは、ランダムアクセスが可能なサンプル、すなわち、デコードの開始点とすることができるサンプルである。すなわち、シンクサンプルボックスには、デコードを開始するのに必要な情報(例えば、デコードに必要な情報、デコードの開始点を示す情報等)が格納される。シンクサンプルの定義(Definition)の例を図16のAに示す。シンクサンプルのシンタクス(Syntax)の例を図16のBに示す。シンクサンプルのセマンティクス(Semantics)の例を図16のCに示す。
サブサンプルインフォメーションボックスには、例えば、サブサンプルに関する情報が格納される。サブサンプル(Sub-sample)とは、サンプル(sample)が指すバイト範囲の一部を表す単位である。つまり、サンプルが指すバイト範囲を複数のサブサンプルに分割することができる。換言するに、サンプル内に複数のサブサンプルを設定することができる。サブサンプルのシンタクス(Syntax)の例を図17のAに示す。サブサンプルのセマンティクス(Semantics)の例を図17のBに示す。
<DSDロスレスストリームのMP4ファイル化>
以上のように、高品質なDSDデータを新たなDSD可逆圧縮符号化方式で符号化したDSDロスレスストリームをMP4ファイル化し、MPEG-DASHを用いてストリーム配信することにより、より高品質なデータの配信が可能になる。しかしながら、このDSDロスレスストリームをMP4ファイルに格納する方法はまだ考えられていなかった。例えば、原則通りにエレメンタリストリームにおける1オーディオサンプル(1量子化サンプル)をMP4システム層の1つのMP4サンプルに割り当てると、MP4サンプル数が膨大になる。例えば2.8MHzのDSDデータの場合、1秒で280万個のMP4サンプルが作られることになる。これは1つのMP4サンプルごとに処理を行うシステムにおいては非常に高負荷・非効率であり、実現は困難である。したがって、DSDロスレスストリームをMPEG-DASHにより配信することができなかった。そのため、より高品質な音声データを伝送することができなかった。
そこで、ある時間内の複数量子化サンプルをまとめたオーディオアクセスユニット(オーディオフレーム)を構成し、1MP4サンプルに対応付けるようにする。このように、実装負荷を考慮しよりデータサイズが大きいアクセスユニット単位で扱うことで、処理負荷を低減させることができる。特にサンプル毎にループを回しているような処理の回数を大幅に低減させることができる。
<2.第1の実施の形態>
<配信システム>
以下に、本技術のより詳細について説明する。なお、以下においては、本技術に関連する音声データ(オーディオデータ)の配信について説明する。図18は、本技術を適用した情報処理システムの一態様である配信システムの構成の一例を示すブロック図である。図18に示される配信システム100は、画像や音声などのデータ(コンテンツ)を配信するシステムである。配信システム100において、ファイル生成装置101、配信サーバ102、および再生端末103は、ネットワーク104を介して互いに通信可能に接続されている。
ファイル生成装置101は、音声データを格納するMP4ファイルの生成に関する処理を行う。例えば、ファイル生成装置101は、音声データを生成し、生成した音声データを格納するMP4ファイルを生成し、生成したMP4ファイルを配信サーバ102に供給する。配信サーバ102は、MP4ファイルの配信に関する処理を行う。例えば、配信サーバ102は、ファイル生成装置101から供給されたMP4ファイルを取得して管理し、MPEG-DASHを用いた配信サービスを提供する。例えば、配信サーバ102は、再生端末103からの要求に応じて、そのMP4ファイルを再生端末103に供給する。再生端末103は、音声データの再生に関する処理を行う。例えば、再生端末103は、MPEG-DASHに従って配信サーバ102に対してMP4ファイルの配信を要求し、その要求に応じて供給されたMP4ファイルを取得する。再生端末103は、そのMP4ファイルをデコードし、音声データを再生する。
ネットワーク104は、任意の通信網であり、有線通信の通信網であってもよいし、無線通信の通信網であってもよいし、それらの両方により構成されるようにしてもよい。また、ネットワーク104が、1の通信網により構成されるようにしてもよいし、複数の通信網により構成されるようにしてもよい。例えば、インターネット、公衆電話回線網、所謂3G回線や4G回線等の無線移動体用の広域通信網、WAN(Wide Area Network)、LAN(Local Area Network)、Bluetooth(登録商標)規格に準拠した通信を行う無線通信網、NFC(Near Field Communication)等の近距離無線通信の通信路、赤外線通信の通信路、HDMI(登録商標)(High-Definition Multimedia Interface)やUSB(Universal Serial Bus)等の規格に準拠した有線通信の通信網等、任意の通信規格の通信網や通信路がネットワーク104に含まれるようにしてもよい。
ファイル生成装置101、配信サーバ102、再生端末103は、それぞれ、ネットワーク104に通信可能に接続されており、このネットワーク104を介して互いに情報の授受を行うことができる。ファイル生成装置101、配信サーバ102、再生端末103は、ネットワーク104に対して、有線通信により接続されるようにしてもよいし、無線通信により接続されるようにしてもよいし、その両方により接続されるようにしてもよい。
なお、図18において、配信サーバ100の構成として、ファイル生成装置101、配信サーバ102、および再生端末103は、1台ずつ示されているが、これらの数は、それぞれ任意であり、互いに同一でなくてもよい。例えば、配信サーバ100において、ファイル生成装置101、配信サーバ102、再生端末103は、それぞれ、単数であってもよいし、複数であってもよい。
<ファイル生成装置>
図19は、ファイル生成装置101の主な構成例を示すブロック図である。図19に示されるように、ファイル生成装置101は、DSD生成部111、DSD符号化部112、MP4ファイル生成部113、および設定部114を有する。
DSD生成部111は、DSDデータの生成に関する処理を行う。例えば、DSD生成部111は、入力された音声信号(オーディオアナログ信号)をΔΣ変調し、1ビットのデジタルデータであるDSDデータに変換する。また、DSD生成部111は、例えば、その生成したDSDデータをDSD符号化部112に供給する。
DSD符号化部112は、DSDデータの符号化に関する処理を行う。例えば、DSD符号化部112は、DSD生成部111から供給されたDSDデータを、上述した新たなDSD可逆圧縮符号化方式で符号化し、DSDロスレスストリームを生成する。また、DSD符号化部112は、例えば、その生成したDSDロスレスストリームをMP4ファイル生成部113に供給する。
MP4ファイル生成部113は、MP4ファイルの生成に関する処理を行う。例えば、MP4ファイル生成部113は、DSD符号化部112から供給されたDSDロスレスストリームを取得し、そのDSDロスレスストリームを格納するMP4ファイルを生成する。例えば、MP4ファイル生成部113は、設定部114による設定に従ってそのMP4ファイルの生成を行う。また、MP4ファイル生成部113は、例えば、生成したMP4ファイルを、ファイル生成装置101の外部に出力する。例えば、MP4ファイル生成部113は、そのMP4ファイルを、ネットワーク104を介して配信サーバ102に供給する。
設定部114は、MP4ファイル生成部113によるMP4ファイルの生成についての設定に関する処理を行う。例えば、設定部114は、MP4ファイルの生成に関する設定を生成し、その設定をMP4ファイル生成部113にセットする。例えば、設定部114は、サンプルテーブルボックス設定部121、サンプルエントリ設定部122、シンクサンプルボックス設定部123、およびサブサンプルインフォメーションボックス設定部124を有する。サンプルテーブルボックス設定部121は、サンプルテーブルボックスの設定に関する処理を行う。サンプルエントリ設定部122は、サンプルエントリの設定に関する処理を行う。シンクサンプルボックス設定部123は、シンクサンプルボックスの設定に関する処理を行う。サブサンプルインフォメーションボックス設定部124は、サブサンプルインフォメーションボックスの設定に関する処理を行う。
なお、MP4ファイル生成部113および設定部114を1つの装置(MP4ファイル生成装置131)としてもよい。このMP4ファイル生成装置131は、入力されたDSDロスレスストリームを格納するMP4ファイルを生成し、出力する。また、そのMP4ファイル生成装置131の構成にDSD符号化部112を加えて1つの装置(MP4ファイル生成装置132)としてもよい。このMP4ファイル生成装置132は、入力されたDSDデータを可逆符号化してDSDロスレスストリームを生成し、さらにそのDSDロスレスストリームを格納するMP4ファイルを生成し、出力する。
<再生端末>
図20は、再生端末103の主な構成例を示すブロック図である。図20に示されるように、再生端末103は、MP4ファイル取得部141、DSD復号部142、出力制御部143、出力部144、および制御部145を有する。
MP4ファイル取得部141は、MP4ファイルの取得に関する処理を行う。例えば、MP4ファイル取得部141は、MPEG-DASHに従って、配信サーバ102にコンテンツの配信を要求し、その要求に応じて供給されるそのコンテンツのMP4ファイルを取得する。また、例えば、MP4ファイル取得部141は、取得したMP4ファイルからDSDロスレスストリーム等を抽出し、それをDSD復号部142に供給する。また、例えば、MP4ファイル取得部141は、取得したMP4ファイルから制御情報等を抽出し、それを制御部145に供給する。
DSD復号部142は、DSDロスレスストリームの復号に関する処理を行う。例えば、DSD復号部142は、上述した新たなDSD可逆圧縮符号化方式に対応する復号方式でDSDロスレスストリームを復号し、DSDデータを復元する。なお、DSD復号部142は、例えば、制御部145の制御に基づいて、この復号を行う。また、例えば、DSD復号部142は、復元したDSDデータを出力制御部143に供給する。
出力制御部143は、DSDデータの出力の制御に関する処理を行う。例えば、出力制御部143は、DSD復号部142から供給されるDSDデータを破棄したり、出力部144に供給したりして、DSDデータの出力を制御する。なお、出力制御部143は、例えば、制御部145の制御に基づいて、この出力制御を行う。
出力部144は、DSDデータの出力に関する処理を行う。例えば、出力部144は、スピーカ等を有し、出力制御部143から供給されるDSDデータを音声信号(オーディオアナログ信号)に変換し、その音声信号をそのスピーカ等から出力する。なお、出力部144が、例えば出力端子等を備え、音声信号やDSDデータを再生端末103の外部に出力する(他の装置に供給する)ようにしてもよい。出力部144の構成は任意であり、上述した以外のデバイスを有するようにしてもよい。
制御部145は、DSDロスレスストリームの復号の制御やDSDデータの出力の制御に関する処理を行う。例えば、制御部145は、DSD復号部142を制御し、DSDロスレスストリームの復号を制御する。また、例えば、制御部145は、出力制御部143を制御し、DSDデータの出力を制御する。制御部145は、例えば、MP4ファイル取得部141から制御情報を取得し、その制御情報に基づいてこれらの制御を行う。
例えば、制御部145は、サンプルテーブルボックス解析部151、サブサンプルインフォメーションボックス解析部152、シンクサンプルボックス解析部153、サンプルエントリ解析部154、デコーダコンフィギュレーション情報設定部155、および再生制御部156を有する。
サンプルテーブルボックス解析部151は、サンプルテーブルボックスの解析に関する処理を行う。サブサンプルインフォメーションボックス解析部152は、サブサンプルインフォメーションボックスの解析に関する処理を行う。シンクサンプルボックス解析部153は、シンクサンプルボックスの解析に関する処理を行う。サンプルエントリ解析部154は、サンプルエントリの解析に関する処理を行う。デコーダコンフィギュレーション情報設定部155は、デコーダコンフィギュレーション情報の解析に関する処理を行う。再生制御部156は、DSDデータの再生制御に関する処理を行う。
なお、MP4ファイル取得部113、DSD復号部142、出力制御部143、および制御部145を1つの装置(MP4ファイル再生装置161)としてもよい。このMP4ファイル再生装置161は、入力されたMP4ファイルからDSDロスレスストリームを抽出し、そのDSDロスレスストリームを復号して、DSDデータを生成する。さらに、MP4ファイル再生装置161は、生成したDSDデータの所望の範囲(所望の位置から所望の位置まで)を出力する。
<MP4サンプルの設定>
上述のように、高品質なDSDデータを新たなDSD可逆圧縮符号化方式で符号化したDSDロスレスストリームをMP4ファイル化に格納する方法はまだ考えられていなかった。例えば、MP4ファイルのサンプルにどのようなデータを割り当てるかが定められていなかった。
そこで、音声データの符号化データであって、その符号化データのアクセス単位であるブロックが所定数毎にグループ化される構造を有する符号化データを格納する所定のファイルフォーマットのファイルに、そのファイルにおける最小アクセス単位であるサンプルとして、ブロックのグループの復号に利用されるイニシャライズ情報を含むサンプルを設定するようにする。
ここで、符号化データは、例えば、上述したDSDロスレスストリーム(DSDデータを上述した新たなDSD可逆圧縮符号化方式で符号化したストリーム)としてもよい。また、ブロックは、そのDSDロスレスストリームにおけるブロックとし、ブロックのグループは、GOBとし、イニシャライズ情報は、GOBイニシャライザとしてもよい。また、所定のファイルフォーマットは、上述したMP4ファイルフォーマット(ISO/IEC14496に準拠したファイルフォーマット)とし、サンプルは、そのMP4ファイルにおけるサンプルとしてもよい。すなわち、例えば、MP4ファイルに、DSDロスレスストリームのGOBイニシャライザを含むサンプルを設定するようにしてもよい。例えば、サンプルエントリ設定部122が、このようなGOBイニシャライザを含むサンプルを設定するようにする。
このようにすることにより、そのイニシャライザ情報を用いて各ブロックのデコードを行うことができるようになる。つまり、DSDロスレスストリームをMP4ファイルに格納することができるようになる。したがって、MPEG-DASHを用いたDSDロスレスストリームのストリーミング配信が可能になり、より高品質な音声データを伝送することができる。
<ブロック毎のサンプル化>
DSDロスレスストリームの各ブロックを互いに異なるサンプルに割り当てるようにしてもよい。すなわち、MP4ファイルの1サンプルに1ブロックを割り当てるようにしてもよい。例えば、図21に示されるように、1GOB(10ブロック)分のDSDロスレスストリーム171に対して、両矢印172で示されるようにサンプルを設定するようにしてもよい。両矢印172は、サンプルの範囲を示す。
例えば、(A−1)に示されるように、さらに、ブロック毎のサンプルが設定されるようにしてもよい。この場合、DSDロスレスストリーム171に対して、GOBイニシャライザを含むサンプルと、ブロック毎のサンプルとの合計11個のサンプルが設定される。例えば、サンプルエントリ設定部122がGOBイニシャライザを含むサンプルの他に、さらに、このようなブロック毎のサンプルを設定するようにする。
また、(A−2)に示されるように、(A−1)のように設定したサンプルの内、GOBイニシャライザを含むサンプルをシンクサンプル(Sync Sample)に設定するようにしてもよい。図21において、楕円173は、そのサンプルがシンクサンプルであることを示している。例えば、シンクサンプルボックス設定部123が、GOBイニシャライザを含むサンプルをシンクサンプルに設定するようにする。この場合、シンクサンプルは、GOBイニシャライザを含むものの、ブロックを含まないので、このサンプルの再生時間は0とする。
また、(A−3)に示されるように、GOBイニシャライザを含むサンプルにGOBの先頭のブロック(ブロック1)も含め、GOBの2番目以降のブロックを、それぞれサンプルに割り当てるようにしてもよい。この場合、DSDロスレスストリーム171に対して、GOBイニシャライザとブロック1とを含むサンプルと、ブロック2乃至ブロック10の各サンプルとの合計10個のサンプルが設定される。例えば、サンプルエントリ設定部122がGOBイニシャライザおよびブロック1を含むサンプルを設定し、さらに、ブロック2乃至ブロック10について、ブロック毎のサンプルを設定するようにする。
また、(A−4)に示されるように、(A−3)のように設定したサンプルの内、GOBイニシャライザおよびブロック1を含むサンプルをシンクサンプル(Sync Sample)に設定するようにしてもよい。例えば、シンクサンプルボックス設定部123が、GOBイニシャライザおよびブロック1を含むサンプルをシンクサンプルに設定するようにする。
また、(A−5)に示されるように、(A−3)のように設定したサンプルの内、GOBイニシャライザおよびブロック1を含むサンプルに対して、GOBイニシャライザの部分とブロック1の部分とのそれぞれをサブサンプルとして設定するようにしてもよい。図21において点線両矢印174は、サブサンプルの範囲を示す。つまり、この場合、GOBイニシャライザおよびブロック1を含むサンプルに、GOBイニシャライザを含むサブサンプルと、ブロック1を含むサブサンプルとが設定されている。例えば、サブサンプルインフォメーションボックス設定部124が、このようなサブサンプルを設定するようにする。
また、(A−6)に示されるように、(A−5)のように設定したサンプルの内、GOBイニシャライザおよびブロック1を含むサンプルをシンクサンプル(Sync Sample)に設定するようにしてもよい。例えば、シンクサンプルボックス設定部123が、GOBイニシャライザおよびブロック1を含むサンプルをシンクサンプルに設定するようにする。つまり、この場合、シンクサンプルとサブサンプルの両方が設定されている。
なお、(A−2)の場合、1GOB分のサンプルが11個であるので、シンクサンプルボックス(SyncSampleBox(stss))において、サンプルナンバー(sample number)が図22のAのように設定される。これに対して、(A−4)や(A−6)の場合、1GOB分のサンプルが10個であるので、シンクサンプルボックス(stss)において、サンプルナンバーが図22のBのように設定される。
また、(A−5)や(A−6)の場合、サブサンプルインフォメーションボックスにおいて、サンプルデルタ(sample_delta)、サブサンプルカウント(subsample_count)、サブサンプルサイズ(subsample_size_1, subsample_size_2)等のパラメータが図22のCのように設定される。サンプルデルタは、サブサンプルを設定するサンプルの位置(番号)を示す(識別する)パラメータである。サブサンプルカウントは、設定されたサブサンプルの数を示すパラメータである。サブサンプルサイズは、各サブサンプルのサイズを示すパラメータである。例えば、サブサンプルサイズ1(subsample_size_1)は、GOBイニシャライザを含むサブサンプルのサイズを示し、その値は25バイト(byte)である。また、サブサンプルサイズ2(subsample_size_2)は、ブロック1を含むサブサンプルのサイズを示し、その値は各サブサンプルによる(例えば、x01, x02, x03, ...)。
もちろん、これらの値は一例であり、各パラメータの値は、図22の例に限定されない。なお、サブサンプル毎のフィールド(field)、サブサンプルプライオリティ(subsample_priority)、ディスカーダブル(discardable)、コーデックスペシフィックパラメーターズ(codec_specific_parameters)等のパラメータは運用しなくてもよい。
(A−1)のようにサンプルを設定することにより、ブロック単位でデコードを制御することができる。これにより、量子化サンプル毎にサンプル化する場合よりも、負荷の増大を抑制することができる。また、この場合、GOB毎にGOBイニシャライザを含むサンプルが設定されるので、最初にGOBの先頭のサンプルにアクセスするように制御すれば、ブロック単位のランダムアクセスが可能になる。例えば、GOBの途中のブロックにアクセスする場合も、最初にGOBイニシャライザを読み込めば、その途中のブロックからデコードを開始する(そのブロックよりも前のブロックのデコードを省略する)ことができる。
また、(A−2)のようにサンプルを設定することにより、GOBイニシャライザを含むサンプルをシンクサンプルに設定することができる。したがって、より容易にGOBイニシャライザを含むサンプルにアクセスすることができ、そのGOB内の任意のブロックへのアクセスが可能になる。つまり、ブロック単位でのランダムアクセスが可能になる。また、GOBイニシャライザが、ブロックと異なるサンプルに格納されるので、GOBイニシャライザを、ブロックのデコードを必要とせずに読み出すことができる。従って、GOBイニシャライザをより高速に読み出すことができる。
また、(A−3)のようにサンプルを設定することにより、再生時間0のサンプルが無くなるので、サンプル数と再生時刻との対応をとり易くすることができる。
また、(A−4)のようにサンプルを設定することにより、GOBイニシャライザおよびブロック1を含むサンプルをシンクサンプルに設定することができる。したがって、ブロック単位でのランダムアクセスが可能になる。
また、(A−5)のようにサンプルを設定することにより、サブサンプルとしてGOBイニシャライザを抽出することができるので、GOBイニシャライザのより高速な読み出しを可能にする。
また、(A−6)のようにサンプルを設定することにより、サンプル数と再生時刻との対応をとるのがより容易になり、GOBイニシャライザのより高速な読み出しを可能にするとともに、ブロック単位でのランダムアクセスが可能になる。
<GOB毎のサンプル化>
DSDロスレスストリームの各ブロックを1つのサンプルに割り当てるようにしてもよい。すなわち、MP4ファイルの1サンプルに1GOBを割り当てるようにしてもよい。例えば、図23に示されるように、1GOB(10ブロック)分のDSDロスレスストリーム171に対して、両矢印172で示されるようにサンプルを設定するようにしてもよい。
例えば、(B−1)に示されるように、GOB全体、すなわち、GOBイニシャライザおよびブロック1乃至ブロック10を含むサンプルが設定されるようにしてもよい。この場合、DSDロスレスストリーム171に対して、1個のサンプルが設定される。例えば、サンプルエントリ設定部122がこのGOBイニシャライザおよび全ブロックを含むサンプルを設定するようにする。
また、(B−2)に示されるように、(B−1)のように設定したGOB全体を含むサンプルをシンクサンプルに設定するようにしてもよい。図23においても楕円173は、シンクサンプルを示す。例えば、シンクサンプルボックス設定部123が、このようにシンクサンプルを設定するようにする。
また、(B−3)に示されるように、(B−1)のように設定したサンプルに対して、GOBイニシャライザおよびブロック1の部分とブロック2乃至ブロック10の各ブロックの部分とのそれぞれをサブサンプルとして設定するようにしてもよい。図23においても点線両矢印174は、サブサンプルの範囲を示す。つまり、この場合、GOB全体を含むサンプルに、GOBイニシャライザおよびブロック1を含むサブサンプル、ブロック2を含むサブサンプル、ブロック3を含むサブサンプル、...、およびブロック10を含むサブサンプルの、合計10個のサブサンプルが設定されている。例えば、サブサンプルインフォメーションボックス設定部124が、このようなサブサンプルを設定するようにする。
また、(B−4)において点線両矢印174で示されるように、(B−1)のように設定したサンプルに対して、GOBイニシャライザの部分とブロック1乃至ブロック10の各ブロックの部分とのそれぞれをサブサンプルとして設定するようにしてもよい。つまり、この場合、GOB全体を含むサンプルに、GOBイニシャライザを含むサブサンプル、ブロック1を含むサブサンプル、ブロック2を含むサブサンプル、...、およびブロック10を含むサブサンプルの、合計11個のサブサンプルが設定されている。例えば、サブサンプルインフォメーションボックス設定部124が、このようなサブサンプルを設定するようにする。
また、(B−5)に示されるように、(B−3)のようにサブサンプルが設定された、GOB全体を含むサンプルをシンクサンプルに設定するようにしてもよい。例えば、シンクサンプルボックス設定部123が、このようにシンクサンプルを設定するようにする。
また、(B−6)に示されるように、(B−4)のようにサブサンプルが設定された、GOB全体を含むサンプルをシンクサンプルに設定するようにしてもよい。例えば、シンクサンプルボックス設定部123が、このようにシンクサンプルを設定するようにする。
なお、ISO/IEC 14496-12(2015)の8.6.2.1には、”If the sync sample box is not present, every sample is a sync sample.”とある。つまり、このルールに従うと、シンクサンプルを設定しなくても(シンクサンプルボックスを設定しなくても)全てのサンプルがランダムアクセス点になる。したがって、上述の(B−2)、(B−5)、および(B−6)は、それぞれ、(B−1)、(B−3)、および(B−4)と実質的に同一である。したがってこれらのケースは省略することができる。
また、(B−3)の場合((B−5)の場合)、サブサンプルインフォメーションボックスにおいて、サンプルデルタ(sample_delta)、サブサンプルカウント(subsample_count)、サブサンプルサイズ(subsample_size_1, ... ,subsample_size_10)等のパラメータが図24のAのように設定される。この場合、各GOBのサンプル数が1であるので、サンプルデルタの値は「1」に設定される。また、各サンプルには10個のサブサンプルが設定されているのでサブサンプルカウントの値は「10」に設定される。また、各サブサンプルサイズは、それぞれのサブサンプルのサイズが設定される(例えば、x11, ... ,x110、y11, ... ,y110、z11, ... ,z110)。
また、(B−4)の場合((B−6)の場合)、サブサンプルインフォメーションボックスにおいて、サンプルデルタ(sample_delta)、サブサンプルカウント(subsample_count)、サブサンプルサイズ(subsample_size_1, ... ,subsample_size_11)等のパラメータが図24のBのように設定される。この場合、各GOBのサンプル数が1であるので、サンプルデルタの値は「1」に設定される。また、各サンプルには11個のサブサンプルが設定されているのでサブサンプルカウントの値は「11」に設定される。また、サブサンプル1(subsample_size_1)は、GOBイニシャライザを含むサブサンプルのサイズを示し、その値は「25」(バイト(byte))に設定される。サブサンプル2以降の各サブサンプルサイズは、それぞれのサブサンプルのサイズが設定される(例えば、x21, ... ,x210、y21, ... ,y210、z21, ... ,z210)。
もちろん、これらの値は一例であり、各パラメータの値は、図24の例に限定されない。なお、サブサンプル毎のフィールド(field)、サブサンプルプライオリティ(subsample_priority)、ディスカーダブル(discardable)、コーデックスペシフィックパラメーターズ(codec_specific_parameters)等のパラメータは運用しなくてもよい。
(B−1)のように((B−2)のように)サンプルを設定することにより、GOB単位でデコードを制御することができる。これにより、量子化サンプル毎にサンプル化する場合よりも、負荷の増大を抑制することができる。また、この場合、GOB毎にGOBイニシャライザを含むサンプルが設定されており、各サンプルは自動的にシンクサンプルに設定されるので、少なくともGOB単位でランダムアクセスが可能である。なお、GOBの途中のブロックへのアクセスは、ブロック1から順次デコードしていき、出力制御において、所望のブロックより前のデコード結果を破棄するようにすればよい。
また、(B−3)のように((B−5)のように)サンプルを設定することにより、サブサンプルとしてGOBイニシャライザおよびブロック1、並びに、ブロック2乃至ブロック10のそれぞれを抽出することができるので、サブサンプル数と再生時刻との対応をとるのがより容易になり、ブロック単位でのランダムアクセスが可能になる。
また、(B−4)のように((B−6)のように)サンプルを設定することにより、サブサンプルとしてGOBイニシャライザ、並びに、ブロック1乃至ブロック10をそれぞれ抽出することができるので、GOBイニシャライザのより高速な読み出しを可能にし、ブロック単位でのランダムアクセスが可能になる。
<GOBイニシャライザとブロックとを分けたサンプル化>
DSDロスレスストリームのGOBに対して、GOBイニシャライザを含むサンプルと、GOBイニシャライザを含まないサンプル(ブロックのみを含むサンプル)との、2つのサンプルを設定するようにしてもよい。すなわち、MP4ファイルの1サンプルにGOBイニシャライザ若しくはブロック群を割り当てるようにしてもよい。例えば、図25に示されるように、1GOB(10ブロック)分のDSDロスレスストリーム171に対して、両矢印172で示されるようにサンプルを設定するようにしてもよい。
例えば、(C−1)に示されるように、GOBイニシャライザを含むサンプルの他に、さらに、そのGOB内の全ブロックを含むサンプルが設定されるようにしてもよい。この場合、DSDロスレスストリーム171に対して、GOBイニシャライザを含むサンプルと、そのGOB内の全ブロックを含むサンプルとの合計2個のサンプルが設定される。例えば、サンプルエントリ設定部122がGOBイニシャライザを含むサンプルの他に、さらに、このようなGOB内の全ブロックを含むサンプルを設定するようにする。
また、(C−2)に示されるように、(C−1)のように設定したサンプルの内、GOBイニシャライザを含むサンプルをシンクサンプルに設定するようにしてもよい。図25においても、楕円173はシンクサンプルを示している。例えば、シンクサンプルボックス設定部123が、GOBイニシャライザを含むサンプルをシンクサンプルに設定するようにする。この場合、シンクサンプルは、GOBイニシャライザを含むものの、ブロックを含まないので、このサンプルの再生時間は0とする。
また、(C−3)において点線両矢印174で示されるように、(C−1)のように設定されたGOB内の全ブロックを含むサンプルに対して、ブロック1乃至ブロック10の各ブロックの部分をサブサンプルとして設定するようにしてもよい。つまり、この場合、GOB内の全ブロックを含むサンプルに、ブロック1を含むサブサンプル、ブロック2を含むサブサンプル、...、およびブロック10を含むサブサンプルの、合計10個のサブサンプルが設定されている。例えば、サブサンプルインフォメーションボックス設定部124が、このようなサブサンプルを設定するようにする。
また、(C−4)に示されるように、(C−3)のようにサブサンプルが設定されたGOB内の全ブロックを含むサンプルとは異なる、GOBイニシャライザを含むサンプルをシンクサンプルに設定するようにしてもよい。例えば、シンクサンプルボックス設定部123が、このようにシンクサンプルを設定するようにする。
なお、サンプルの設定において、(C−1)のように設定する代わりに、例えば、(C−5)に示されるように、GOBイニシャライザおよびブロック1を含むサンプルと、ブロック2乃至ブロック10を含むサンプルとが設定されるようにしてもよい。この場合、DSDロスレスストリーム171に対して、GOBイニシャライザおよびブロック1を含むサンプルと、ブロック2乃至ブロック10を含むサンプルとの合計2個のサンプルが設定される。例えば、サンプルエントリ設定部122がこのような2つのサンプルを設定するようにする。
また、(C−6)に示されるように、(C−5)のように設定したサンプルの内、GOBイニシャライザおよびブロック1を含むサンプルをシンクサンプルに設定するようにしてもよい。例えば、シンクサンプルボックス設定部123が、GOBイニシャライザおよびブロック1を含むサンプルをシンクサンプルに設定するようにする。この場合、シンクサンプルは、GOBイニシャライザおよびブロック1を含むので、このサンプルの再生時間はブロック1の再生時間となる。
また、(C−7)において点線両矢印174で示されるように、(C−5)のように設定されたブロック2乃至ブロック10を含むサンプルに対して、ブロック2乃至ブロック10の各ブロックの部分をサブサンプルとして設定するようにしてもよい。つまり、この場合、ブロック2乃至ブロック10を含むサンプルに、ブロック2を含むサブサンプル、ブロック3を含むサブサンプル、...、およびブロック10を含むサブサンプルの、合計9個のサブサンプルが設定されている。例えば、サブサンプルインフォメーションボックス設定部124が、このようなサブサンプルを設定するようにする。
さらに、(C−8)において点線両矢印174で示されるように、(C−7)のように設定されたサブサンプルに加え、GOBイニシャライザおよびブロック1を含むサンプルに対して、GOBイニシャライザの部分とブロック1の部分とのそれぞれをサブサンプルとして設定してもよい。つまり、この場合、GOBイニシャライザを含むサブサンプルと、ブロック1を含むサブサンプル、ブロック2を含むサブサンプル、...、およびブロック10を含むサブサンプルの、合計11個のサブサンプルが設定されている。例えば、サブサンプルインフォメーションボックス設定部124が、このようなサブサンプルを設定するようにする。
また、(C−9)に示されるように、(C−7)のようにサブサンプルが設定されたブロック2乃至ブロック10を含むサンプルではなく、GOBイニシャライザおよびブロック1を含むサンプルをシンクサンプルに設定するようにしてもよい。例えば、シンクサンプルボックス設定部123が、このようにシンクサンプルを設定するようにする。
また、(C−10)に示されるように、(C−8)のようにサブサンプルが設定されたGOBイニシャライザおよびブロック1を含むサンプルをシンクサンプルに設定するようにしてもよい。例えば、シンクサンプルボックス設定部123が、このようにシンクサンプルを設定するようにする。
なお、ISO/IEC 14496-12(2015)の場合、上述したように、シンクサンプルを設定しなくても全てのサンプルがランダムアクセス点になる。したがって、上述の(C−1)、(C−3)、(C−5)、(C−7)、および(C−8)の場合、ブロックのみのサンプルがシンクサンプルになる可能性がある。したがって、これらのケースは禁止とするようにしてもよい。
なお、(C−2)、(C−4)、(C−6)、(C−9)、(C−10)の場合、1GOB分のサンプルが2個であるので、シンクサンプルボックス(stss)において、サンプルナンバーが図26のAのように設定される。
また、(C−4)の場合、サブサンプルインフォメーションボックスにおいて、サンプルデルタ(sample_delta)、サブサンプルカウント(subsample_count)、サブサンプルサイズ(subsample_size_1, ... ,subsample_size_10)等のパラメータが図26のBのように設定される。この場合、各GOBのサンプル数が2であるので、サンプルデルタの値は「2」に設定される。また、ブロック1乃至ブロック10を含むサンプルには10個のサブサンプルが設定されているのでサブサンプルカウントの値は「10」に設定される。また、各サブサンプルサイズは、それぞれのサブサンプルのサイズが設定される(例えば、x31, ... ,x310、y31, ... ,y310、z31, ... ,z310)。
また、(C−9)の場合、サブサンプルインフォメーションボックスにおいて、サンプルデルタ(sample_delta)、サブサンプルカウント(subsample_count)、サブサンプルサイズ(subsample_size_1, ... ,subsample_size_9)等のパラメータが図26のCのように設定される。この場合、各GOBのサンプル数が2であるので、サンプルデルタの値は「2」に設定される。また、ブロック2乃至ブロック10を含むサンプルには9個のサブサンプルが設定されているのでサブサンプルカウントの値は「9」に設定される。また、各サブサンプルサイズは、それぞれのサブサンプルのサイズが設定される(例えば、x41, ... ,x49、y41, ... ,y49、z41, ... ,z49)。
また、(C−10)の場合、サブサンプルインフォメーションボックスにおいて、サンプルデルタ(sample_delta)、サブサンプルカウント(subsample_count)、サブサンプルサイズ(subsample_size_1, ... ,subsample_size_9)等のパラメータが図27のように設定される。この場合、各GOBの全サンプルにサブサンプルが設定されているので、サンプルデルタの値は「1」に設定される。また、GOBイニシャライザおよびブロック1を含むサンプルには2個のサブサンプルが設定され、ブロック2乃至ブロック10を含むサンプルには9個のサブサンプルが設定されているのでサブサンプルカウントの値は「2」または「9」に設定される。また、各サブサンプルサイズは、それぞれのサブサンプルのサイズが設定される(例えば、25,x41、y51, ... ,y59、25,z51)。
もちろん、これらの値は一例であり、各パラメータの値は、図26および図27の例に限定されない。なお、サブサンプル毎のフィールド(field)、サブサンプルプライオリティ(subsample_priority)、ディスカーダブル(discardable)、コーデックスペシフィックパラメーターズ(codec_specific_parameters)等のパラメータは運用しなくてもよい。
(C−2)のようにサンプルを設定することにより、GOB単位でデコードを制御することができる。これにより、量子化サンプル毎にサンプル化する場合よりも、負荷の増大を抑制することができる。また、この場合、GOB毎にGOBイニシャライザを含むサンプルが設定されるので、少なくともGOB単位でランダムアクセスが可能である。なお、GOBの途中のブロックへのアクセスは、ブロック1から順次デコードしていき、出力制御において、所望のブロックより前のデコード結果を破棄するようにすればよい。
また、(C−4)のようにサンプルを設定することにより、ブロック1乃至ブロック10のそれぞれをサブブロックとして抽出することができるので、ブロック単位でのランダムアクセスが可能になる。
また、(C−6)のようにサンプルを設定することにより、GOBイニシャライザがブロック1に付加されているので、サブサンプル数と再生時刻との対応をとるのがより容易になる。
さらに、(C−9)のようにサンプルを設定することにより、ブロック単位でのランダムアクセスが可能になるとともに、サブサンプル数と再生時刻との対応をとるのがより容易になる。
さらに、(C−10)のようにサンプルを設定することにより、ブロック単位でのランダムアクセスが可能になり、サブサンプル数と再生時刻との対応をとるのがより容易になるだけでなく、サブサンプルとしてGOBイニシャライザ、並びに、ブロック1乃至ブロック10をそれぞれ抽出することができるので、GOBイニシャライザのより高速な読み出しを可能にし、ブロック単位でのランダムアクセスが可能になる。
以上のようにサンプルを設定することにより、DSDロスレスストリームをMP4ファイルに格納することができ、より高品質な音声データを伝送することができる。
<配信用データ生成処理の流れ>
次に、配信システム100の各装置において実行される処理について説明する。最初に、ファイル生成装置101において実行される配信用データ生成処理の流れの例を、図28のフローチャートを参照して説明する。ファイル生成装置101は、音声データのMP4ファイルを生成する際に、この配信用データ生成処理を行う。
配信用データ生成処理が開始されると、ファイル生成装置101のDSD生成部111は、ステップS101において、オーディアナログ信号をΔΣ変調し、DSDデータを生成する。ステップS102において、DSD符号化部112は、ステップS101において生成されたDSDデータを、上述した新たなDSD可逆圧縮符号化方式で符号化し、DSDロスレスストリームを生成する。ステップS103において、MP4ファイル生成装置131(すなわち、MP4ファイル生成部113および設定部114)は、MP4ファイル生成処理を実行することにより、ステップS102において生成されたDSDロスレスストリームを格納するMP4ファイルを生成する。このMP4ファイル生成処理については後述する。MP4ファイルが生成されると、MP4ファイル生成部113は、ステップS104において、その生成したMP4ファイルを配信サーバ102に提供する。ステップS104の処理が終了すると、配信用データ生成処理が終了する。
<MP4ファイル生成処理の流れ>
次に、この配信用データ生成処理のステップS103において実行されるMP4ファイル生成処理の流れの例を、図29のフローチャートを参照して説明する。
MP4ファイル生成処理が開始されると、サンプルテーブルボックス設定部121は、ステップS111において、サンプルテーブルボックスを設定する。ステップS112において、サンプルエントリ設定部122は、サンプルエントリを設定する。
ステップS113において、サンプルエントリ設定部122は、.afrファイルを参照して、サンプルに区切るバイト位置(samplesize)を設定する。つまり、サンプルエントリ設定部122は、.afrファイルに基づいて、各ブロックをサンプルに割り当てる。この割り当て方法として、サンプルエントリ設定部122は、例えば上述した(A−1)乃至(A−6)、(B−1)乃至(B−6)、並びに(C−1)乃至(C−10)の内のいずれかの方法を適用する。
ステップS114において、サンプルエントリ設定部122は、.esdファイルを参照して、当該GOBの復号に必要な情報であるデコーダコンフィギュレーション情報をサンプルエントリに格納する。つまり、サンプルエントリ設定部122は、.esdファイルに基づいて、デコーダコンフィギュレーション情報を含むGOBイニシャライザを設定し、サンプルに割り当てる。この割り当て方法として、サンプルエントリ設定部122は、例えば上述した(A−1)乃至(A−6)、(B−1)乃至(B−6)、並びに(C−1)乃至(C−10)の内のいずれかの方法を適用する。
ステップS115において、シンクサンプルボックス設定部123は、.afrファイルを参照して、GOBイニシャライザが含まれるサンプルのリストを作り、そのリストを格納するシンクサンプルボックスを設定する。
ステップS116において、サブサンプルインフォメーションボックス設定部124は、サブサンプルを運用する場合、各サンプルの中のGOBイニシャライザの範囲やブロックの境界等を調べ、それらの情報に基づいて、サブサンプルインフォメーションボックスを設定し、サンプルデルタ、サブサンプルカウント、サブサンプルサイズ等の各種パラメータを設定する。
ステップS117において、設定部114は、ファイルタイプコンパチビリティボックス(ftyp)を生成する。ステップS118において、設定部114は、設定に応じてムービーボックスを生成する。すなわち、設定部114は、上述したように設定したサンプルテーブルボックスを格納するムービーボックス(moov)を生成する。ステップS119において、設定部114は、メディアデータボックス(mdat)を生成し、DSDロスレスストリームを格納する。
以上のようにしてMP4ファイルが生成されると、MP4ファイル生成処理が終了し、処理は図28に戻る。
以上のように各処理を実行することにより、DSDロスレスストリームをMP4ファイルに格納することができ、MPEG-DASHを用いて、より高品質な音声データを伝送することができる。
<再生処理の流れ>
次に、MP4ファイルの再生(復号)について説明する。なお、以下においては、図30に示されるようなランダム再生のケースについて説明する。すなわち、シンクサンプル(Sync sample)に格納されるデコーダコンフィギュレーション情報を読み込み、そのデコーダコンフィギュレーション情報に基づいて、そのシンクサンプルと同じGOBのサンプル(sample)の途中のブロックからの再生を開始するものとする。この場合、図30に示されるように、再生開始時刻は、そのサンプルの途中のブロック(つまりサンプルの途中)に指定され、デコード開始時刻は、そのサンプルの先頭に指定される。
再生端末103は、配信サーバ102からMP4ファイルを取得し、再生処理を実行してMP4ファイルの再生を行い、音声データを出力する。この再生処理の流れの例を、図31のフローチャートを参照して説明する。
再生処理が開始されると、再生端末103のMP4ファイル取得部141は、ステップS131において、配信サーバ102から配信されるMP4ファイルを取得する。ステップS132において、MP4ファイル再生装置161(例えば、DSD復号部142、出力制御部143、制御部145)は、復号処理を行い、MP4ファイルからDSDロスレスストリームを抽出して復号し、得られたDSDデータの再生開始時刻から出力を開始する。
ステップS133において、出力部144は、ステップS132の処理により再生された音声(オーディオアナログ信号)を出力する。
<復号処理の流れ>
次に、図32のフローチャートを参照して、再生処理のステップS132において実行される復号処理の流れの例を、図33のフローチャートを参照して説明する。
復号処理が開始されると、サンプルテーブルボックス解析部151は、ステップS141において、MP4ファイル取得部141が取得したMP4ファイルのサンプルテーブルボックスを参照して、再生開始時刻に対応するDSDロスレストラックのチャンク、シンクサンプル、デコード開始サンプルのバイト位置等を特定する。
ステップS142において、サンプルエントリ解析部154は、サンプルエントリを参照する。
ステップS143において、サンプルエントリ解析部154は、デコーダコンフィギュレーション情報が存在しないか否かを判定する。存在しないと判定された場合、処理はステップS144に進む。
この場合、サンプルエントリ解析部154は、ステップS144において、シンクサンプルが指し示すサンプルのデータをMP4ファイルから読み出してGOBイニシャライザを取得する。GOBイニシャライザを取得すると、処理はステップS145に進む。また、ステップS143において、デコーダコンフィギュレーション情報が存在すると判定された場合、ステップS144の処理が省略され、処理はステップS145に進む。
ステップS145において、デコーダコンフィギュレーション情報設定部155は、MP4ファイルに含まれるデコーダコンフィギュレーション情報をデコーダに設定する。
ステップS146において、DSD復号部142は、そのデコーダコンフィギュレーション情報に基づいて、MP4ファイル取得部141が取得したMP4ファイルの、デコード開始サンプルの開始バイト位置からデータ(DSDロスレスストリーム)を読み出す。
ステップS147において、DSD復号部142は、その読み出したデータに対して、デコードを開始する。
ステップS148において、再生制御部156は、出力制御部143に対して再生開始時刻を指定する。出力制御部143は、その指定された時刻から、ステップS147の処理により得られたDSDデータの出力を開始する。
ステップS148の処理が終了すると、復号処理が終了し、処理は図31に戻る。
以上のように各処理を実行することにより、MP4ファイルに格納されて伝送されるDSDロスレスストリームを復号し、音声データを出力することができる。つまり、MPEG-DASHを用いて、より高品質な音声データを伝送することができる。
なお、フラグメンテドムービー(fragmented movie)を構成する場合、フラグメント(fragment)の境界をいずれかのGOB境界に一致させるようにしてもよい。その場合、フラグメント(fragment)の先頭をGOB先頭とする。また、1フラグメントに複数GOBが格納されるようにしてもよい。
<3.第2の実施の形態>
<パラメータセットとエレメンタリストリームの分離>
なお、デコードに必要なGOBイニシャライザ(のサンプル)を、ブロック(のサンプル)を格納するトラック(track)と異なるトラックに格納するようにしてもよい。
デコードに必要なパラメータセットであるGOBイニシャライザは、各GOBの先頭にあり、時間的に変化していく。このパラメータセットの部分を1つの トラック として構成することで、パラメータセットへのアクセス、読み出しをより容易にすることができる。
なお、トラック(track)は、サンプル(sample(またはチャンク(chunk)))の連なりである。上述のように、各GOBのGOBイニシャライザ(header, config, GOB data(code book))の部分を1トラックに格納する。この場合、サンプルデュレイション(sample duration)は、1GOBの再生時間になる。
例えば、DSDロスレスストリームのGOBが、図33のAに示されるような構造を有するとする。すなわち、1GOB分のDSDロスレスストリーム171は、GOBイニシャライザと、10個のブロック(Blook1乃至Blook10)を有する。このようなDSDロスレスストリーム171を格納するMP4ファイルの例を図33のBに示す。
図33のBに示されるように、この場合、MP4ファイル181のメディアデータボックス(mdat)には、DSDロスレスストリーム171のGOBイニシャライザや各ブロックのデータが格納される。また、ムービーボックス(moov)には、DSDロスレスパラメータセットトラック(DSD lossless parameter set track)と、DSDロスレスエレメンタリストリームトラック(DSD lossless elementary stream track)の2つのトラックが形成される。DSDロスレスパラメータセットトラックは、DSDロスレスストリームのデコードに必要なパラメータセットの管理情報を格納するトラックである。DSDロスレスエレメンタリストリームトラックは、DSDロスレスストリームのブロックのデータの管理情報を格納するトラックである。
DSDロスレスパラメータセットトラックのサンプルディスクリプションボックス(stsd)に形成されるサンプルエントリ(dsdp)には、DSDロスレスストリームのパラメータセットの管理情報が格納される。つまり、メディアデータボックス(mdat)の各GOBイニシャライザに関する情報がこのサンプルエントリ(dsdp)に格納される。
また、DSDロスレスエレメンタリストリームトラックのサンプルディスクリプションボックス(stsd)に形成されるサンプルエントリ(dsde)には、DSDロスレスストリームのエレメンタリストリームの管理情報が格納される。つまり、メディアデータボックス(mdat)の各ブロックに関する情報がこのサンプルエントリ(dsde)に格納される。
なお、DSDロスレスエレメンタリストリームトラックにおけるサンプルの割り当て方は、図21乃至図27を参照して上述した方法のいずれかを適用すればよい。つまり、図33のBの例においては、1サンプルが1ブロックに割り当てられているが、サンプルの割り当て方はこの例に限定されない。
このような構成にすることにより、デコーダコンフィギュレーション情報(デコードに必要な設定情報。デコード開始前にデコーダにセットする)をより高速に取得することができる。特に、ランダムアクセス時のヘッダ情報の取得が高速に行えるようになる。したがって、再生開始までの時間短縮、ストリーム切り替えの高速化が期待できる。GOBイニシャライザのサンプルは再生時間0のサンプルである。このような再生時間0のサンプルを別トラックとして分離することで、トラックの中にブロックを指すサンプル以外のサンプルを含めないようにすることができる。つまり、異なる性質のサンプルを1トラック内に混在させないようにすることができ、情報の管理をより容易化することができる。
なお、DSDロスレスエレメンタリトラックのサンプルは、GOBイニシャライザとブロック1(先頭のブロック)を含むようにしてもよい。つまり、DSDロスレスエレメンタリトラックにおいては、GOBの先頭のブロック(ブロック1)に、GOBイニシャライザを付加するようにしてもよい。
例えば、DSDロスレスストリームのGOBが、図34のAに示されるような構造を有するとする。すなわち、1GOB分のDSDロスレスストリーム171は、GOBイニシャライザと、10個のブロック(Blook1乃至Blook10)を有する。このようなDSDロスレスストリーム171を格納するMP4ファイルの例を図34のBに示す。
図34のBに示されるMP4ファイル182の構成例は、図33のBのMP4ファイル181の場合と基本的に同様であるが、DSDロスレスエレメンタリトラックにおいては、四角183で示されるように、GOBの先頭のブロック(ブロック1)に、GOBイニシャライザが付加されている。各トラックが参照するメディアデータボックスのデータは、重複してもよいので、このようなサンプルの割り当て方も可能である。このような割り当て方にすることにより、DSDロスレスエレメンタリトラックのサンプルの情報のみでデコードすることも可能になる。
<MP4ファイル生成処理の流れ>
この場合も配信用データ生成処理は、図28のフローチャートを参照して上述した場合と基本的に同様の流れで行うことができる。この場合のMP4ファイル生成処理の流れの例を、図35のフローチャートを参照して説明する。
MP4ファイル生成処理が開始されると、サンプルテーブルボックス設定部121は、ステップS161において、サンプルテーブルボックスを設定し、パラメータセットのトラック(DSDロスレスパラメータセットトラック)とエレメンタリストリームのトラック(DSDロスレスエレメンタリストリームトラック)を生成する。ステップS162において、サンプルエントリ設定部122は、各トラックにサンプルエントリ('dsdp'および'dsde')を設定する。
ステップS163において、サンプルエントリ設定部122は、.afrファイルを参照して、サンプルに区切るバイト位置(samplesize)を設定する。つまり、サンプルエントリ設定部122は、.afrファイルに基づいて、各ブロックを、DSDロスレスエレメンタリストリームトラックのサンプルに割り当てる。この割り当て方法として、サンプルエントリ設定部122は、例えば上述した(A−1)乃至(A−6)、(B−1)乃至(B−6)、並びに(C−1)乃至(C−10)の内のいずれかの方法を適用する。
ステップS164において、サンプルエントリ設定部122は、.esdファイルを参照して、デコーダコンフィギュレーション情報をDSDロスレスパラメータセットトラックのサンプルエントリ('dsdp')に格納する。つまり、サンプルエントリ設定部122は、.esdファイルに基づいて、デコーダコンフィギュレーション情報を含むGOBイニシャライザを、DSDロスレスパラメータセットトラックのサンプルに割り当てる。この割り当て方法として、サンプルエントリ設定部122は、例えば上述した(A−1)乃至(A−6)、(B−1)乃至(B−6)、並びに(C−1)乃至(C−10)の内のいずれかの方法を適用する。
ステップS165乃至ステップS169の各処理は、図29のステップS115乃至ステップS119の各処理と同様に実行される。ステップS169の処理が終了すると、MP4ファイル生成処理が終了し、処理は図28に戻る。以上のように各処理を実行することにより、DSDロスレスストリームをMP4ファイルに格納することができ、MPEG-DASHを用いて、より高品質な音声データを伝送することができる。
<復号処理の流れ>
この場合も再生処理は、図31のフローチャートを参照して上述した場合と基本的に同様の流れで行うことができる。この場合の復号処理の流れの例を、図36のフローチャートを参照して説明する。
復号処理が開始されると、サンプルテーブルボックス解析部151は、ステップS181において、MP4ファイル取得部141が取得したMP4ファイルの、DSDロスレスエレメンタリストリームトラックのサンプルテーブルボックスを参照して、再生開始時刻に対応するDSDロスレストラックのチャンク、シンクサンプル、デコード開始サンプルのバイト位置等を特定する。
ステップS182において、サンプルエントリ解析部154は、DSDロスレスパラメータセットトラックのサンプルエントリ('dedp')を参照する。
ステップS183において、サンプルエントリ解析部154は、デコーダコンフィギュレーション情報が存在しないか否かを判定する。存在しないと判定された場合、処理はステップS184に進む。この場合、サンプルエントリ解析部154は、ステップS184において、DSDロスレスパラメータセットトラックのサンプルエントリ('dedp')から、シンクサンプルが指し示すサンプルのデータを読み出してGOBイニシャライザを取得する。GOBイニシャライザを取得すると、処理はステップS185に進む。また、ステップS183において、デコーダコンフィギュレーション情報が存在すると判定された場合、ステップS184の処理が省略され、処理はステップS185に進む。
ステップS185乃至ステップS188の各処理は、図32のステップS145乃至ステップS148の各処理と同様に実行される。ステップS188の処理が終了すると、復号処理が終了し、処理は図31に戻る。以上のように各処理を実行することにより、MP4ファイルに格納されて伝送されるDSDロスレスストリームを復号し、音声データを出力することができる。つまり、MPEG-DASHを用いて、より高品質な音声データを伝送することができる。
<DRM>
なお、上述したDSDロスレスパラメータセットトラックとDSDロスレスエレメンタリストリームトラックとを互いに異なるファイルとしてもよい。
例えば、非圧縮のDSDデータをDSD可逆符号化したDSDロスレスストリームは、GOBイニシャライザがないとデコードできない。この性質を利用し、 DSDロスレスストリームを暗号化ストリームとみなし、GOBイニシャライザが含まれるMP4ファイルを復号鍵情報として、DRM(Digital Rights Management)システムに本技術を適用するようにしてもよい。
例えば、コンテンツ配信において、DRMによって再生を管理をする方法が考えられる。このようなDRMシステムにおいて、GOBイニシャライザとブロックを互いに異なるMP4ファイルに格納し、GOBイニシャライザが格納されたMP4ファイルを、ブロックが格納されたMP4ファイルをデコードするために必要な復号鍵情報として、別途配信するようにしてもよい。
例えば、ブロックのみが格納されたMP4ファイルは、共通化し広く配布できるようにする。例えば複製も許可するようにしてもよい。ただし、このMP4ファイルには、GOBイニシャライザが含まれないため、このMP4ファイル単体でコンテンツを再生することはできない。
そして、正当なユーザ(例えば、代金を支払ったユーザ等)に対してのみ、GOBイニシャライザが格納されたMP4ファイルを提供するようにする。このようにすることにより、正しい復号鍵(GOBイニシャライザが格納されたMP4ファイル)入手した正当なユーザのみが、コンテンツ(ブロックのみが格納されたMP4ファイル)を再生することができる。つまり、本技術を用いてDRMシステムを構築することができ、より安全な配信を実現することができる。換言するに、コンテンツの配信において、ユーザ限定等の多機能化を実現することができる。
より具体的に説明すると、このDRMシステムにおいては、ブロックが格納されたMP4ファイルと、そのブロックのデコードに必要なGOBイニシャライザが格納されたMP4ファイルとの対応関係を明確にする必要がある。つまり、正しい復号鍵情報を特定する必要がある。このような対応関係は、例えば、サンプルエントリにプロテクションスキームインフォボックス(Protection Scheme Info Box(sinf))を設け、このボックス内に記述するようにしてもよい。
例えば、プロテクションスキームインフォボックス(sinf)は、図37のAに示されるように、サンプルエントリ内に設けられる。プロテクションスキームインフォボックス(sinf)には、例えば、オリジナルフォーマットボックス(Original Format Box)、スキームタイプボックス(Scheme Type Box)等のボックスが設けられる。図37のBに、プロテクションスキームインフォボックス、オリジナルフォーマットボックス、スキームタイプボックスのそれぞれのシンタクス(syntax)の例を示す。
オリジナルフォーマットボックスには、暗号化前のストリームに関する情報が格納される。例えば、非圧縮のDSDデータをこの暗号化前のストリームとみなす。この場合、例えば、暗号化前のストリームのデータ形式を示すパラメータoriginal_formatの値が'dsd0'(非圧縮のDSDデータ)に設定される。
スキームタイプボックスには、暗号化後のストリームの復号に関する情報が格納される。例えば、DSDデータを新たなDSD可逆符号化方式で符号化したDSDロスレスストリームを暗号化後のストリームとみなす。この場合、例えば、暗号化方式(符号化方式)を示すパラメータsheme_typeの値が'dsde'(新たなDSD可逆圧縮方式)に設定される。
また、スキームタイプボックスには、ライセンスファイルへのリンク情報が格納される。ライセンスファイルの仕様は任意であるが、例えば、復号鍵であるGOBイニシャライザへのリンク情報等が記述されている。
従って、図38に示されるように、ブロックのみが格納されたMP4ファイル201を取得したユーザは、例えば対価を払う等して、そのコンテンツを再生可能な正当なユーザとなり、そのMP4ファイル201のDSDロスレスエレメンタリストリームトラックのプロテクションスキームインフォボックス(sinf)内の情報に基づいて、ライセンスファイル202を取得する。そして、そのライセンスファイル202の情報に基づいて、MP4ファイル201に対応するGOBイニシャライザが格納されるMP4ファイル203を取得する。ユーザは、このMP4ファイル203を用いて、MP4ファイル201を再生し、コンテンツを視聴することができる。
以上のように、本技術を適用して、GOBイニシャライザとブロックとを互いに異なるMP4ファイルに格納することにより、DRMシステムを構築することができる。
なお、MP4ファイル201とMP4ファイル203との対応関係を、ライセンスファイル202を介して表すようにすることにより、例えばその対応関係の更新等を行う際に、その更新をより容易に行うようにすることができる。つまり、対応関係の管理がより容易になる。
なお、GOBイニシャライザとブロックとが別ファイルに分離されるため、あるブロックの再生に必要なGOBイニシャライザがどれかを対応付ける必要がある。 GOBイニシャライザを含むファイルはMP4ファイルに限らないが、MP4ファイルにしておけばサンプルテーブルボックス以下の情報で、ファイル先頭からの時刻がわかり、プレーヤは GOBイニシャライザとブロックを対応付けることができる。
<4.第3の実施の形態>
<オーディオサンプルエントリの設定>
なお、DSDロスレスストリームの管理情報を、オーディオサンプルエントリ(AudioSampleEntryV1)に格納するようにしてもよい。図39にオーディオサンプルエントリのシンタクスの例を示す。オーディオサンプルエントリを利用する場合、各パラメータを以下のように設定する。
コーディングネーム(codingname)には、オーディオフォーマット(audioformat)の識別子を設定する。例えばDSDデータの場合、DSDデータであることを示す識別子’dsd1’を設定する。チャンネルカウント(channelcount)には、チャンネル数を設定する。例えばDSDデータが2チャンネルの場合、このパラメータに値「2」を設定する。サンプルサイズ(samplesize)には、音声データのビット深度を設定する。例えばDSDデータの場合、DSDデータのビット深度は1ビットであるので、このパラメータに値「1」を設定する。サンプルレート(samplerate)には、固定値「44.1kHz」を示す値「AC44 0000h」を設定する。なお、この値はダミー値であり、後述する拡張したボックスにおいて正しい値を設定する。
サンプリングレート(sampling_rate)は拡張ボックスであるサンプリングレートボックス(SamplingRateBox)にセットされるパラメータである。DSDデータのサンプリング周波数は、サンプルレート(samplerate)に正しい値を設定することができないので、このサンプリングレート(sampling_rate)に正しい値を設定する。例えば、DSDデータのサンプリング周波数が2.8MHzの場合、このパラメータに値「00 2b 11 00h」(2822400Hz)を設定する。また例えばDSDデータのサンプリング周波数が5.6MHzの場合、このパラメータに値「00 56 22 00h」(564480000Hz)を設定する。さらに例えばDSDデータのサンプリング周波数が11.2MHzの場合、このパラメータに値「00 AC 44 00h」(11289600Hz)を設定する。なお、メディアタイムスケール(media timescale)は、このサンプリングレート(sampling_rate)またはサンプルレート(samplerate)と同じ値にする。
<ファイル生成装置>
図40は、この場合のファイル生成装置101の主な構成例を示すブロック図である。図40に示されるように、この場合のファイル生成装置101は、図19を参照して説明した構成に加え、オーディオサンプルエントリ設定部211を有する。オーディオサンプルエントリ設定部211は、オーディオサンプルエントリの設定に関する処理を行う。
<MP4ファイル生成処理の流れ>
この場合も配信用データ生成処理は、図28のフローチャートを参照して説明した場合と基本的に同様に行われる。
図41のフローチャートを参照して、この場合のMP4ファイル生成処理の流れの例について説明する。MP4ファイル生成処理が開始されると、サンプルテーブルボックス設定部121は、ステップS201において、サンプルテーブルボックスを設定する。ステップS202において、オーディオサンプルエントリ設定部211は、オーディオサンプルエントリを設定する。
ステップS203において、オーディオサンプルエントリ設定部211は、.afrファイルを参照して、サンプルに区切るバイト位置(samplesize)を設定する。つまり、オーディオサンプルエントリ設定部211は、.afrファイルに基づいて、各ブロックをサンプルに割り当てる。この割り当て方法として、オーディオサンプルエントリ設定部211は、例えば上述した(A−1)乃至(A−6)、(B−1)乃至(B−6)、並びに(C−1)乃至(C−10)の内のいずれかの方法を適用する。
ステップS204において、オーディオサンプルエントリ設定部211は、.esdファイルを参照して、当該GOBの復号に必要な情報であるデコーダコンフィギュレーション情報をオーディオサンプルエントリに格納する。つまり、オーディオサンプルエントリ設定部211は、.esdファイルに基づいて、デコーダコンフィギュレーション情報を含むGOBイニシャライザを設定し、サンプルに割り当てる。この割り当て方法として、オーディオサンプルエントリ設定部211は、例えば上述した(A−1)乃至(A−6)、(B−1)乃至(B−6)、並びに(C−1)乃至(C−10)の内のいずれかの方法を適用する。
ステップS205乃至ステップS209の各処理は、図29のステップS115乃至ステップS119の各処理と同様に実行される。以上のようにしてMP4ファイルが生成されると、MP4ファイル生成処理が終了し、処理は図28に戻る。
以上のように各処理を実行することにより、DSDロスレスストリームをMP4ファイルに格納することができ、DSDロスレスストリームに関する情報(管理情報)を、オーディオサンプルエントリ(AudioSampleEntryV1)に格納することができる。したがって、MPEG-DASHを用いて、より高品質な音声データを伝送することができる。
<再生端末>
図42は、この場合の再生端末103の主な構成例を示すブロック図である。図42に示されるように、この場合の再生端末103は、図20を参照して説明した構成に加え、オーディオサンプルエントリ解析部221を有する。オーディオサンプルエントリ解析部221は、オーディオサンプルエントリの解析に関する処理を行う。
<復号処理の流れ>
この場合も再生処理は、図31のフローチャートを参照して説明した場合と基本的に同様に行われる。
図43のフローチャートを参照して、この場合の復号処理の流れの例について説明する。復号処理が開始されると、サンプルテーブルボックス解析部151は、ステップS231において、MP4ファイル取得部141が取得したMP4ファイルのサンプルテーブルボックスを参照して、再生開始時刻に対応するDSDロスレストラックのチャンク、シンクサンプル、デコード開始サンプルのバイト位置等を特定する。ステップS232において、オーディオサンプルエントリ解析部221は、オーディオサンプルエントリ(AudioSampleEntryV1)を参照する。
ステップS233において、オーディオサンプルエントリ解析部221は、デコーダコンフィギュレーション情報が存在しないか否かを判定する。存在しないと判定された場合、処理はステップS234に進む。
この場合、オーディオサンプルエントリ解析部221は、ステップS234において、シンクサンプルが指し示すサンプルのデータをMP4ファイルから読み出してGOBイニシャライザを取得する。GOBイニシャライザを取得すると、処理はステップS235に進む。また、ステップS233において、デコーダコンフィギュレーション情報が存在すると判定された場合、ステップS234の処理が省略され、処理はステップS235に進む。
ステップS235乃至ステップS238の各処理は、図32のステップS145乃至ステップS148の各処理と同様に実行される。ステップS238の処理が終了すると、復号処理が終了し、処理は図31に戻る。
以上のように各処理を実行することにより、オーディオサンプルエントリ(AudioSampleEntryV1)に格納されているDSDロスレスストリームに関する情報(管理情報)を用いて、MP4ファイルに格納されて伝送されるDSDロスレスストリームを復号し、音声データを出力することができる。つまり、MPEG-DASHを用いて、より高品質な音声データを伝送することができる。
<5.第4の実施の形態>
<拡張ボックスの設定>
なお、オーディオサンプルエントリ(AudioSampleEntryV1)に拡張ボックスを新たに定義し、その拡張ボックスにDSD可逆符号化方式固有の情報(config情報)を格納するようにしてもよい。これにより、メディアデータボックス(mdat)の中をアクセスしなくても、ストリームの属性(デコーダコンフィギュレーション情報)を知ることができるようになり、ランダムアクセス時等での再生処理の高速化が期待できる。
その場合のオーディオサンプルエントリ(DSDAudioSampleEntryV1)のシンタクスの例を図44のAに示す。図44のAに示されるように、最後の行に拡張ボックス(DSDSpecificBox())が定義されている。
<共通情報の格納>
この拡張ボックス(DSDSpecificBox())のシンタクスの例を図44のBに示す。図44のBに示されるように、この拡張ボックス(DSDSpecificBox())には、例えば、ストリーム内で共通の基本的なデコーダコンフィギュレーション情報が格納されるようにしてもよい。例えば、DSDロスレスストリームのDSDロスレスペイロード(DSD_lossless_payload())から、format_versionと、DSD_lossless_gob_configuration()とが読み出され、それらが、この拡張ボックス(DSDSpecificBox())に格納されるようにしてもよい。
この場合、図45のAに示されるような構成のDSDロスレスストリーム171に対して、図45のBに示されるような構成のMP4ファイル231が生成される。図45のBに示されるように、DSDオーディオサンプルエントリ(DSDAudioSampleEntryV1)('dsd1')内に拡張ボックス('dsc1')が設けられており、この拡張ボックス('dsc1')に、ストリームに共通な基本パラメータのみがコピーされる。
したがって、この拡張ボックス('dsc1')を参照することにより、ストリームの基本的な属性をシステム層のみで知ることができる。なお、各GOBのデコードには、そのGOB用のDSD_lossless_gob_data()が必要なので、再生開始前にGOBイニシャライザへのアクセスが必要である。ただし、この場合、サンプルエントリ数が1で済むので、データ量の増大を抑制することができる。
<個別情報の格納>
なお、この拡張ボックス(DSDSpecificBox())にGOB固有の情報を格納するようにしてもよい。この場合の拡張ボックス(DSDSpecificBox())のシンタクスの例を図46のAに示す。図46のAに示されるように、例えば、DSD_lossless_gob_header() と DSD_lossless_gob_data()(codebook)も読み出して、この拡張ボックス(DSDSpecificBox())に格納するようにしてもよい。上述したように、DSD_lossless_gob_header()とDSD_lossless_gob_data()は、DSD_lossless_gob()から読み出される。つまり、これらの情報は、GOBイニシャライザに含まれる情報であり、当該GOB固有の情報が含まれる。
この場合、図45のAに示されるような構成のDSDロスレスストリーム171に対して、図46のBに示されるような構成のMP4ファイル232が生成される。図46のBに示されるように、DSDオーディオサンプルエントリ(DSDAudioSampleEntryV1)('dsd1')内に拡張ボックス('dsc2')が複数設けられており、各拡張ボックス('dsc2')に、自身が対応するGOBのデコードに必要な情報(デコーダコンフィギュレーション情報)が格納される。
したがって、この拡張ボックス('dsc2')を参照することにより、その拡張ボックスに対応するGOBを復号することができる。すなわち、GOBイニシャライザを参照せずにGOBを復号することができ、より高速に処理を行うことができる。
<ファイル生成装置>
図47は、この場合のファイル生成装置101の主な構成例を示すブロック図である。図47に示されるように、この場合のファイル生成装置101は、図19を参照して説明した構成に加え、DSDオーディオサンプルエントリ設定部241を有する。DSDオーディオサンプルエントリ設定部241は、オーディオサンプルエントリの設定や拡張ボックスの設定等に関する処理を行う。
<MP4ファイル生成処理の流れ>
この場合も配信用データ生成処理は、図28のフローチャートを参照して説明した場合と基本的に同様に行われる。
図48のフローチャートを参照して、この場合のMP4ファイル生成処理の流れの例について説明する。MP4ファイル生成処理が開始されると、サンプルテーブルボックス設定部121は、ステップS251において、サンプルテーブルボックスを設定する。ステップS252において、DSDオーディオサンプルエントリ設定部241は、DSDオーディオサンプルエントリを設定し、さらにその内部に、拡張ボックス(DSDSpecificBox)を設定する。
ステップS253において、DSDオーディオサンプルエントリ設定部241は、.afrファイルを参照して、サンプルに区切るバイト位置(samplesize)を設定する。つまり、DSDオーディオサンプルエントリ設定部241は、.afrファイルに基づいて、各ブロックをサンプルに割り当てる。この割り当て方法として、DSDオーディオサンプルエントリ設定部241は、例えば上述した(A−1)乃至(A−6)、(B−1)乃至(B−6)、並びに(C−1)乃至(C−10)の内のいずれかの方法を適用する。
ステップS254において、DSDオーディオサンプルエントリ設定部241は、.esdファイルを参照して、デコーダコンフィギュレーション情報をDSDオーディオサンプルエントリの拡張ボックス(DSDSpecificBox)に格納する。つまり、DSDオーディオサンプルエントリ設定部241は、.esdファイルに基づいて、デコーダコンフィギュレーション情報を含むGOBイニシャライザを設定し、サンプルに割り当てる。この割り当て方法として、DSDオーディオサンプルエントリ設定部241は、例えば上述した(A−1)乃至(A−6)、(B−1)乃至(B−6)、並びに(C−1)乃至(C−10)の内のいずれかの方法を適用する。
ステップS255乃至ステップS259の各処理は、図29のステップS115乃至ステップS119の各処理と同様に実行される。以上のようにしてMP4ファイルが生成されると、MP4ファイル生成処理が終了し、処理は図28に戻る。
以上のように各処理を実行することにより、DSDロスレスストリームをMP4ファイルに格納することができ、DSDロスレスストリームに関する情報(管理情報)を、DSDオーディオサンプルエントリ(DSDAudioSampleEntryV1)の拡張ボックス(DSDSpecificBox)に格納することができる。したがって、MPEG-DASHを用いて、より高品質な音声データを伝送することができる。
<再生端末>
図49は、この場合の再生端末103の主な構成例を示すブロック図である。図49に示されるように、この場合の再生端末103は、図20を参照して説明した構成に加え、DSDオーディオサンプルエントリ解析部251を有する。DSDオーディオサンプルエントリ解析部251は、オーディオサンプルエントリの解析や拡張ボックスの解析等に関する処理を行う。
<復号処理の流れ>
この場合も再生処理は、図31のフローチャートを参照して説明した場合と基本的に同様に行われる。
図50のフローチャートを参照して、この場合の復号処理の流れの例について説明する。復号処理が開始されると、サンプルテーブルボックス解析部151は、ステップS271において、MP4ファイル取得部141が取得したMP4ファイルのサンプルテーブルボックスを参照して、再生開始時刻に対応するDSDロスレストラックのチャンク、シンクサンプル、デコード開始サンプルのバイト位置等を特定する。ステップS232において、DSDオーディオサンプルエントリ解析部251は、DSDオーディオサンプルエントリ(DSDAudioSampleEntryV1)を参照し、さらに、その拡張ボックス(DSDSpecificBox)を参照する。
ステップS273において、DSDオーディオサンプルエントリ解析部251は、拡張ボックス(DSDSpecificBox)に格納されているデコーダコンフィギュレーション情報をデコーダに設定する。
ステップS274乃至ステップS276の各処理は、図32のステップS146乃至ステップS148の各処理と同様に実行される。ステップS276の処理が終了すると、復号処理が終了し、処理は図31に戻る。
以上のように各処理を実行することにより、DSDオーディオサンプルエントリ(DSDAudioSampleEntryV1)の拡張ボックス(DSDSpecificBox)に格納されているデコーダコンフィギュレーション情報を用いて、そのGOBを復号し、音声データを出力することができる。つまり、MPEG-DASHを用いて、より高品質な音声データを伝送することができる。
<6.その他>
<規格>
以上においては、DSDロスレスストリームをMP4ファイルに格納し、MPEG-DASHを利用して配信する場合について説明したが、本技術はこれ以外の例にも適用することができる。例えば、本技術は、DSDロスレスストリーム以外の任意のデータにも適用することができる。また、本技術は、MP4ファイル以外の任意のファイルフォーマットに格納する場合にも適用することができる。さらに、本技術は、MPEG-DASH以外の任意の規格のデータ配信にも適用することができる。
<本技術の適用分野>
本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。
例えば、本技術は、鑑賞の用に供される画像を伝送するシステムやデバイスにも適用することができる。また、例えば、本技術は、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、農業の用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、畜産業の用に供されるシステムやデバイスにも適用することができる。さらに、本技術は、例えば火山、森林、海洋等の自然の状態を監視するシステムやデバイスにも適用することができる。また、本技術は、例えば天気、気温、湿度、風速、日照時間等を観測する気象観測システムや気象観測装置に適用することができる。さらに、本技術は、例えば鳥類、魚類、ハ虫類、両生類、哺乳類、昆虫、植物等の野生生物の生態を観測するシステムやデバイス等にも適用することができる。
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
図51は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
図51に示されるコンピュータ900において、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903は、バス904を介して相互に接続されている。
バス904にはまた、入出力インタフェース910も接続されている。入出力インタフェース910には、入力部911、出力部912、記憶部913、通信部914、およびドライブ915が接続されている。
入力部911は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部912は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部913は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部914は、例えば、ネットワークインタフェースよりなる。ドライブ915は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア921を駆動する。
以上のように構成されるコンピュータ900では、CPU901が、例えば、記憶部913に記憶されているプログラムを、入出力インタフェース910およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
コンピュータ900が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。
その他、このプログラムは、ROM902や記憶部913等に、あらかじめインストールしておくこともできる。
<その他>
なお、本明細書では、各種情報が、符号化データ(ビットストリーム)に多重化されて、符号化側から復号側へ伝送される例について説明したが、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化データに多重化されることなく、符号化データと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、例えば、符号化データに含まれる画像(スライスまたはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、この符号化データ(画像)に関連付けられた情報は、符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、この符号化データ(画像)に関連付けられた情報は、符号化データ(画像)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。さらに、画像とその画像に対応する情報とが、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
また、上述したように、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術を、他の実施の形態において説明した本技術と組み合わせて実施することもできる。また、上述した任意の本技術を、上述していない他の技術と併用して実施することもできる。
なお、本技術は以下のような構成も取ることができる。
(1) 音声データの符号化データであって、前記符号化データのアクセス単位であるブロックが所定数毎にグループ化される構造を有する前記符号化データを格納する所定のファイルフォーマットのファイルに、前記ファイルにおける最小アクセス単位であるサンプルとして、前記ブロックのグループの復号に利用されるイニシャライズ情報を含むサンプルを設定するサンプル設定部
を備える情報処理装置。
(2) 前記サンプル設定部は、さらに、前記ブロック毎にサンプルを設定する
(1)に記載の情報処理装置。
(3) 前記サンプル設定部により設定された、前記イニシャライズ情報を含むサンプルを、復号の開始に必要な情報を含むシンクサンプルに設定するシンクサンプル設定部をさらに備える
(1)または(2)に記載の情報処理装置。
(4) 前記サンプル設定部は、前記イニシャライズ情報と前記グループの先頭のブロックとを含むサンプルと、前記グループの前記他のブロックの前記ブロック毎のサンプルとを設定する
(1)乃至(3)のいずれかに記載の情報処理装置。
(5) 前記サンプル設定部により設定された、前記イニシャライズ情報と前記グループの先頭のブロックとを含むサンプルを、復号の開始に必要な情報を含むシンクサンプルに設定するシンクサンプル設定部をさらに備える
(1)乃至(4)のいずれかに記載の情報処理装置。
(6) 前記サンプル設定部により設定された、前記イニシャライズ情報と前記グループの先頭のブロックとを含むサンプルに、前記イニシャライズ情報を含むサブサンプルと、前記グループの先頭のブロックを含むサブサンプルとを設定するサブサンプル設定部をさらに備える
(1)乃至(5)のいずれかに記載の情報処理装置。
(7) 前記サンプル設定部により設定された、前記イニシャライズ情報と前記グループの先頭のブロックとを含むサンプルを、復号の開始に必要な情報を含むシンクサンプルに設定するシンクサンプル設定部をさらに備える
(1)乃至(6)のいずれかに記載の情報処理装置。
(8) 前記サンプル設定部は、前記イニシャライズ情報と前記グループの全ブロックとを含むサンプルを設定する
(1)乃至(7)のいずれかに記載の情報処理装置。
(9) 前記サンプル設定部により設定された、前記イニシャライズ情報と前記グループの全ブロックとを含むサンプルに、前記イニシャライズ情報と前記グループの先頭のブロックとを含むサブサンプルと、前記グループの前記ブロック毎のサブサンプルとを設定するサブサンプル設定部をさらに備える
(1)乃至(8)のいずれかに記載の情報処理装置。
(10) 前記サンプル設定部により設定された、前記イニシャライズ情報と前記グループの全ブロックとを含むサンプルに、前記イニシャライズ情報を含むサブサンプル、前記グループの先頭のブロックを含むサブサンプル、並びに、前記グループの前記ブロック毎のサブサンプルを設定するサブサンプル設定部をさらに備える
(1)乃至(9)のいずれかに記載の情報処理装置。
(11) 前記サンプル設定部により設定された全サンプルが、復号の開始に必要な情報を含むシンクサンプルとされる
(1)乃至(10)のいずれかに記載の情報処理装置。
(12) 前記サンプル設定部により設定された、前記イニシャライズ情報を含むサンプルを、復号の開始に必要な情報を含むシンクサンプルに設定するシンクサンプル設定部をさらに備え、
前記サンプル設定部は、さらに、前記グループの全ブロックを含むサンプルを設定するように構成される
(1)乃至(11)のいずれかに記載の情報処理装置。
(13) 前記サンプル設定部により設定された、前記グループの全ブロックを含むサンプルに、前記ブロック毎のサブサンプルを設定するサブサンプル設定部をさらに備える
(1)乃至(12)のいずれかに記載の情報処理装置。
(14) 前記サンプル設定部は、前記イニシャライズ情報と前記グループの先頭のブロックとを含むサンプルと、前記グループの他のブロックを全て含むサンプルを設定するように構成され、
前記サンプル設定部により設定された、前記イニシャライズ情報と前記グループの先頭のブロックとを含むサンプルを、復号の開始に必要な情報を含むシンクサンプルに設定するシンクサンプル設定部をさらに備える
(1)乃至(13)のいずれかに記載の情報処理装置。
(15) 前記サンプル設定部により設定された、前記グループの前記他のブロックを全て含むサンプルに、前記ブロック毎のサブサンプルを設定するサブサンプル設定部をさらに備える
(1)乃至(14)のいずれかに記載の情報処理装置。
(16) 前記サブサンプル設定部は、さらに、前記サンプル設定部により設定された、前記イニシャライズ情報と前記グループの先頭のブロックとを含むサンプルに、前記イニシャライズ情報を含むサブサンプルと、前記グループの先頭のブロックを含むサブサンプルとを設定する
(1)乃至(15)のいずれかに記載の情報処理装置。
(17) 前記サンプル設定部は、さらに、前記ブロック毎のサンプルを、前記イニシャライズ情報を含むサンプルを設定したトラックとは異なるトラックに設定する
(1)乃至(16)のいずれかに記載の情報処理装置。
(18) 前記サンプル設定部は、さらに、前記イニシャライズ情報と前記グループの先頭のブロックとを含むサンプルと、前記グループの他の前記ブロックの前記ブロック毎のサンプルとを、前記イニシャライズ情報を含むサンプルを設定したトラックとは異なるトラックに設定する
(1)乃至(17)のいずれかに記載の情報処理装置。
(19) 前記サンプル設定部は、さらに、前記ブロック毎のサンプルを、前記イニシャライズ情報を含むサンプルを設定したファイルとは異なるファイルに設定する
(1)乃至(18)のいずれかに記載の情報処理装置。
(20) 前記サンプル設定部は、さらに、DRM(Digital Rights Management)に関する情報を格納するプロテクションスキームインフォボックスを設定する
(1)乃至(19)のいずれかに記載の情報処理装置。
(21) 前記音声データに関する情報をオーディオサンプルエントリに設定するオーディオサンプルエントリ設定部をさらに備える
(1)乃至(20)のいずれかに記載の情報処理装置。
(22) 前記オーディオサンプルエントリ設定部は、フィールドcodingnameに、前記音声データのフォーマットを示す所定の値を設定する
(1)乃至(21)のいずれかに記載の情報処理装置。
(23) 前記オーディオサンプルエントリ設定部は、フィールドchannelcountに、値「2」を設定する
(1)乃至(22)のいずれかに記載の情報処理装置。
(24) 前記オーディオサンプルエントリ設定部は、フィールドsamplesizeに、値「1」を設定する
(1)乃至(23)のいずれかに記載の情報処理装置。
(25) 前記オーディオサンプルエントリ設定部は、フィールドsamplerateに、「44.1KHz」を示す値を設定する
(1)乃至(24)のいずれかに記載の情報処理装置。
(26) 前記オーディオサンプルエントリ設定部は、フィールドsampling_rateに、サンプリングレートボックスのsampling_rateと同じ値を設定する
(1)乃至(25)のいずれかに記載の情報処理装置。
(27) 前記音声データに関する情報をオーディオサンプルエントリの拡張ボックスに設定する拡張ボックス設定部をさらに備える
(1)乃至(26)のいずれかに記載の情報処理装置。
(28) 前記拡張ボックス設定部は、前記拡張ボックスに、前記符号化データの符号化方式固有の情報を格納させる
(1)乃至(27)のいずれかに記載の情報処理装置。
(29) 前記拡張ボックス設定部は、前記拡張ボックスに、DSD_lossless_gob_configurationを格納させる
(1)乃至(28)のいずれかに記載の情報処理装置。
(30) 前記拡張ボックス設定部は、前記拡張ボックスに、さらに、DSD_lossless_gob_headerとDSD_lossless_gob_dataとを格納させる
(1)乃至(29)のいずれかに記載の情報処理装置。
(31) 前記イニシャライズ情報は、前記符号化データの復号に利用されるデコーダコンフィギュレーション情報を含む
(1)乃至(30)のいずれかに記載の情報処理装置。
(32) 前記イニシャライズ情報は、フラグメントの境界に関する情報を含む
(1)乃至(31)のいずれかに記載の情報処理装置。
(33) 前記音声データはDSD(Direct Stream Digital)データであり、前記符号化データは、前記DSDデータが可逆符号化されて得られたものである
(1)乃至(32)のいずれかに記載の情報処理装置。
(34) 前記ファイルフォーマットは、ISO/IEC14496に準拠したファイルフォーマットである
(1)乃至(33)のいずれかに記載の情報処理装置。
(35) 前記サンプル設定部の設定に基づいて前記ファイルを生成するファイル生成部をさらに備える
(1)乃至(34)のいずれかに記載の情報処理装置。
(36) 前記音声データ可逆符号化して前記符号化データを生成する符号化部をさらに備える
(1)乃至(35)のいずれかに記載の情報処理装置。
(37) 前記音声データを生成する音声データ生成部をさらに備える
(1)乃至(36)のいずれかに記載の情報処理装置。
(38) 音声データの符号化データであって、前記符号化データのアクセス単位であるブロックが所定数毎にグループ化される構造を有する前記符号化データを格納する所定のファイルフォーマットのファイルに、前記ファイルにおける最小アクセス単位であるサンプルとして、前記ブロックのグループの復号に利用されるイニシャライズ情報を含むサンプルを設定する
情報処理方法。
(39) 音声データの符号化データを格納する所定のファイルフォーマットのファイルの、前記ファイルにおける最小アクセス単位であり、前記ブロックのグループの復号に利用されるイニシャライズ情報を含むサンプルを解析し、解析結果に基づいて前記符号化データの復号に利用されるデコーダコンフィギュレーション情報を取得するサンプル解析部と、
前記サンプル解析部により取得された前記デコーダコンフィギュレーション情報を設定する設定部と、
前記設定部により設定された前記デコーダコンフィギュレーション情報を用いて前記符号化データを復号する復号部と
を備える情報処理装置。
(40) 音声データの符号化データを格納する所定のファイルフォーマットのファイルの、前記ファイルにおける最小アクセス単位であり、前記ブロックのグループの復号に利用されるイニシャライズ情報を含むサンプルを解析し、
解析結果に基づいて前記符号化データの復号に利用されるデコーダコンフィギュレーション情報を取得し、
取得された前記デコーダコンフィギュレーション情報を設定し、
設定された前記デコーダコンフィギュレーション情報を用いて前記符号化データを復号する
情報処理方法。