特許第5774983号(P5774983)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トムソン ライセンシングの特許一覧

特許5774983少なくとも一つのヘッダ・セクション、及び対応するデータ構造を含むフレームベースのビットストリーム・フォーマット・ファイルを生成、カット又は変更するための方法と装置
<>
  • 特許5774983-少なくとも一つのヘッダ・セクション、及び対応するデータ構造を含むフレームベースのビットストリーム・フォーマット・ファイルを生成、カット又は変更するための方法と装置 図000006
  • 特許5774983-少なくとも一つのヘッダ・セクション、及び対応するデータ構造を含むフレームベースのビットストリーム・フォーマット・ファイルを生成、カット又は変更するための方法と装置 図000007
  • 特許5774983-少なくとも一つのヘッダ・セクション、及び対応するデータ構造を含むフレームベースのビットストリーム・フォーマット・ファイルを生成、カット又は変更するための方法と装置 図000008
  • 特許5774983-少なくとも一つのヘッダ・セクション、及び対応するデータ構造を含むフレームベースのビットストリーム・フォーマット・ファイルを生成、カット又は変更するための方法と装置 図000009
  • 特許5774983-少なくとも一つのヘッダ・セクション、及び対応するデータ構造を含むフレームベースのビットストリーム・フォーマット・ファイルを生成、カット又は変更するための方法と装置 図000010
  • 特許5774983-少なくとも一つのヘッダ・セクション、及び対応するデータ構造を含むフレームベースのビットストリーム・フォーマット・ファイルを生成、カット又は変更するための方法と装置 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5774983
(24)【登録日】2015年7月10日
(45)【発行日】2015年9月9日
(54)【発明の名称】少なくとも一つのヘッダ・セクション、及び対応するデータ構造を含むフレームベースのビットストリーム・フォーマット・ファイルを生成、カット又は変更するための方法と装置
(51)【国際特許分類】
   G10L 19/00 20130101AFI20150820BHJP
   G10L 19/035 20130101ALI20150820BHJP
【FI】
   G10L19/00 330A
   G10L19/035
【請求項の数】13
【全頁数】27
(21)【出願番号】特願2011-510935(P2011-510935)
(86)(22)【出願日】2009年5月11日
(65)【公表番号】特表2011-523090(P2011-523090A)
(43)【公表日】2011年8月4日
(86)【国際出願番号】EP2009055663
(87)【国際公開番号】WO2009146998
(87)【国際公開日】20091210
【審査請求日】2012年5月1日
(31)【優先権主張番号】08157417.0
(32)【優先日】2008年6月2日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】501263810
【氏名又は名称】トムソン ライセンシング
【氏名又は名称原語表記】Thomson Licensing
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100159547
【弁理士】
【氏名又は名称】鶴谷 裕二
(72)【発明者】
【氏名】コルドン,スヴェン
(72)【発明者】
【氏名】ヤクス,ペーター
(72)【発明者】
【氏名】ベーム,ヨーハネス
【審査官】 五貫 昭一
(56)【参考文献】
【文献】 特表2004−516505(JP,A)
【文献】 特表2006−528368(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 19/00
G10L 19/035
(57)【特許請求の範囲】
【請求項1】
少なくとも一つのビットストリーム・ヘッダ・セクションを含むフレームベースのオーディオビットストリーム・フォーマット・ファイルを生成するための方法であって、前記フレームは、エンコードされた信号データを含み、現在のフレームのデータのデコーディング又は評価のために必要なデータが、一つ以上の先行フレームに含まれ、前記ヘッダに情報アイテムを配置することによって実行される方法であって:
前記情報アイテムは:
− 前記ファイルのチャネル毎のサンプルの総数と;
− 前記ファイルの「アーカイブモード」又は「ストリーミングモード」と;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの最初のフレームで始めることができるか否かと;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの前記最初のフレームで始まることになっていない場合、デコーディング状態を初期化する際にミュートする先頭部分のフレーム数、及び、サンプルに忠実にカットする機能が存在する場合、対応する前記フレームのミュートするサンプル数と;
− 前記ストリーミングモードにおいて、整合性チェックのための、前のスーパーフレームを特定するための値と;
を表し、
前記アーカイブモードにおいて、前記ファイルは、シングル・ビットストリーム・ヘッダ・セクションと、前記フレームの連続したフレームとを含み、かつ、前記エンコードされた信号データのデコーディングは、前記フレームの前記最初のフレームから始まり、かつ、
前記ストリーミングモードにおいて、前記ビットストリームは、1つ以上のスーパーフレームを含み、前記スーパーフレームのそれぞれは、シングル・ビットストリーム・ヘッダ・セクションから始まり、幾つかの前記フレームが続き、かつ、前記エンコードされた信号データのデコーディングは、前記スーパーフレームのそれぞれで初期化され、かつ、
ミュートする先頭部分のフレームの数に関する前記情報アイテムは、現在のスーパーフレームに続くフレームからエンコードされた信号データのデコーディングを実際に開始する前に前記信号データのデコーディングの状態を初期化するためのデータを確立するために、現在のスーパーフレームの幾つの先頭部分のフレームが必要かの信号を作るのに使用され、前記先頭部分のフレームは、前記先頭部分のフレームに含まれた前記エンコードされた信号データのデコーディングのために使用されず、かつ前記先頭部分のフレームに含まれた前記エンコードされた信号データはデコードされない、
方法。
【請求項2】
少なくとも一つのビットストリーム・ヘッダ・セクションを含むフレームベースのオーディオビットストリーム・フォーマット・ファイルのデータ構造であって、前記フレームは、エンコードされた信号データを含み、現在のフレームのデータのデコーディング又は評価のために必要なデータが、一つ以上の先行フレームに含まれ、前記ヘッダに情報アイテムを持つデータ構造であって:
前記情報アイテムは:
− 前記ファイルのチャネル毎のサンプルの総数と;
− 前記ファイルの「アーカイブモード」又は「ストリーミングモード」と;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの最初のフレームで始めることができるか否かと;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの前記最初のフレームで始まることになっていない場合、デコーディング状態を初期化する際にミュートする先頭部分のフレーム数、及び、サンプルに忠実にカットする機能が存在する場合、対応する前記フレームのミュートするサンプル数と;
− 前記ストリーミングモードにおいて、整合性チェックのための、前のスーパーフレームを特定するための値と;
を表し、
前記アーカイブモードにおいて、前記ファイルは、シングル・ビットストリーム・ヘッダ・セクションと、前記フレームの連続したフレームとを含み、かつ、前記エンコードされた信号データのデコーディングは、前記フレームの前記最初のフレームから始まり、かつ、
前記ストリーミングモードにおいて、前記ビットストリームは、1つ以上のスーパーフレームを含み、前記スーパーフレームのそれぞれは、シングル・ビットストリーム・ヘッダ・セクションから始まり、幾つかの前記フレームが続き、かつ、前記エンコードされた信号データのデコーディングは、前記スーパーフレームのそれぞれで初期化され、かつ、
ミュートする先頭部分のフレームの数に関する前記情報アイテムは、現在のスーパーフレームに続くフレームからエンコードされた信号データのデコーディングを実際に開始する前に前記信号データのデコーディングの状態を初期化するためのデータを確立するために、現在のスーパーフレームの幾つの先頭部分のフレームが必要かの信号を作るのに使用され、前記先頭部分のフレームは、前記先頭部分のフレームに含まれた前記エンコードされた信号データのデコーディングのために使用されず、かつ前記先頭部分のフレームに含まれた前記エンコードされた信号データはデコードされない、
データ構造。
【請求項3】
ヘッダ・セクションを含むフレームベースのオーディオビットストリーム・ファイル・フォーマットを変更するための方法であって、前記フレームは、エンコードされた信号データを含み、現在のフレームのデータのデコーディング又は評価のために必要なデータが、一つ以上の先行フレームに含まれ、かつ、前記ヘッダは、情報アイテムを含む方法であって、
前記情報アイテムは:
− 前記ファイルのチャネル毎のサンプルの総数と;
− 前記ファイルの「アーカイブモード」と;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの最初のフレームで始まることと;
を表し、
前記アーカイブモードにおいて、前記ファイルは、シングル・ビットストリーム・ヘッダ・セクションと、前記フレームの連続したフレームとを含み、当該方法は、前記アーカイブモード・ファイルから前記必要なフレームデータを取ることによって、前記アーカイブモード・ファイルのあらゆる連続したグループのフレームから、ストリーミングモード・ビットストリームのスーパーフレームを生成することによって、前記アーカイブモード・ファイルから「ストリーミングモード」ビットストリームを生成するステップと、各スーパーフレームの始まりにおいて、スーパーフレーム・ヘッダを配置するステップと、を含み、これらの前記スーパーフレーム・ヘッダは、前記ヘッダから得られ、かつ、前記スーパーフレーム・ヘッダの最初のスーパーフレーム・ヘッダにおいて:
− 前記ファイルのチャネル毎のサンプルの総数は、第1の適合されたチャネル毎のサンプル数に置き換えられ;
− 「アーカイブモード」のための情報アイテムは、「ストリーミングモード」のための情報アイテムと置き換えられ;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの前記最初のフレームで開始することに関する前記情報アイテムは、保たれ;
かつ、前記スーパーフレーム・ヘッダの後続のスーパーフレーム・ヘッダにおいて、
− 前記ファイルの前記チャネル毎のサンプルの総数は、第2の適合されたチャネル毎のサンプル数に置き換えられ;
− 「アーカイブモード」のための前記情報アイテムは、「ストリーミングモード」のための情報アイテムと置き換えられ;
− 前記エンコードされた信号データのデコーディングが前記ファイルの前記最初のフレームで始まることに関する前記情報アイテムは、前記エンコードされた信号データのデコーディングが前記最初のフレームで始まらないことに関する情報アイテム、に置き換えられ;
− デコーディング状態が初期化される間に、ミュートする先頭部分のフレームの数に関する情報アイテムが追加され;
− 前記エンコードされた信号データのデコーディングが開始することになっているフレームにおいて、ミュートするサンプル数に関する情報アイテム(ミュートするサンプル数は「0」である)が追加され得;
− 整合性チェックデータであって、その値は前のスーパーフレームの前記データから得られる整合性チェックデータに関する情報アイテムが追加される;
方法。
【請求項4】
ヘッダ・セクションを含むフレームベースのオーディオビットストリーム・ファイル・フォーマットを変更するための装置であって、前記フレームは、エンコードされた信号データを含み、現在のフレームのデータのデコーディング又は評価のために必要なデータが、一つ以上の先行フレームに含まれ、かつ、前記ヘッダは、情報アイテムを含む装置であって、
前記情報アイテムは:
− 前記ファイルのチャネル毎のサンプルの総数と;
− 前記ファイルの「アーカイブモード」と;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの最初のフレームで始まることと;
を表し、
前記アーカイブモードにおいて、前記ファイルは、シングル・ビットストリーム・ヘッダ・セクションと、前記フレームの連続したフレームとを含み、当該装置は、前記アーカイブモード・ファイルから前記必要なフレームデータを取ることによって、前記アーカイブモード・ファイルのあらゆる連続したグループのフレームから、ストリーミングモード・ビットストリームのスーパーフレームを生成することによって、前記アーカイブモード・ファイルから「ストリーミングモード」ビットストリームを生成し、各スーパーフレームの始まりにおいて、スーパーフレーム・ヘッダを配置し、これらの前記スーパーフレーム・ヘッダは、前記ヘッダから得られ、かつ、前記スーパーフレーム・ヘッダの最初のスーパーフレーム・ヘッダにおいて:
− 前記ファイルのチャネル毎のサンプルの総数は、第1の適合されたチャネル毎のサンプル数に置き換えられ;
− 「アーカイブモード」のための情報アイテムは、「ストリーミングモード」のための情報アイテムと置き換えられ;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの前記最初のフレームで開始することに関する前記情報アイテムは、保たれ;
かつ、前記スーパーフレーム・ヘッダの後続のスーパーフレーム・ヘッダにおいて、
− 前記ファイルの前記チャネル毎のサンプルの総数は、第2の適合されたチャネル毎のサンプル数に置き換えられ;
− 「アーカイブモード」のための前記情報アイテムは、「ストリーミングモード」のための情報アイテムと置き換えられ;
− 前記エンコードされた信号データのデコーディングが前記ファイルの前記最初のフレームで始まることに関する前記情報アイテムは、前記エンコードされた信号データのデコーディングが前記最初のフレームで始まらないことに関する情報アイテム、に置き換えられ;
− デコーディング状態が初期化される間に、ミュートする先頭部分のフレームの数に関する情報アイテムが追加され;
− 前記エンコードされた信号データのデコーディングが開始することになっているフレームにおいて、ミュートするサンプル数に関する情報アイテム(ミュートするサンプル数は「0」である)が追加され得;
− 整合性チェックデータであって、その値は前のスーパーフレームの前記データから得られる整合性チェックデータに関する情報アイテムが追加される;
装置。
【請求項5】
前記第1の適合されたチャネル毎のサンプル数OFLは、OFL=Mmean*Lであり、ここで、Lはフレーム毎のデコードされたサンプル数であり、OFLorigは、チャネル毎の前記ファイルのサンプルの全長であり、Mは、M<=ceil(OFLorig/L)及びMmean=ceil(OFLorig/(M*L))を満たすスーパーフレームの数である、
請求項3記載の方法。
【請求項6】
「m」は、現在のスーパーフレームの番号であり、第2の適合されたチャネル毎のサンプル数OFLは、OFL=min((Mmean*L)、(OFLorig−m*L*Mmean))である、
請求項5記載の方法。
【請求項7】
整合性チェックデータに関する前記情報アイテムは、前記前のスーパーフレームのあらかじめ定められたセクションの前記CRCチェックサムである、
請求項6記載の方法。
【請求項8】
整合性チェックデータに関する前記情報アイテムは、前記前のスーパーフレームの最後フレームのハッシュ値である、
請求項6記載の方法。
【請求項9】
前記第1の適合されたチャネル毎のサンプル数OFLは、OFL=Mmean*Lであり、ここで、Lはフレーム毎のデコードされたサンプル数であり、OFLorigは、チャネル毎の前記ファイルのサンプルの全長であり、Mは、M<=ceil(OFLorig/L)及びMmean=ceil(OFLorig/(M*L))を満たすスーパーフレームの数である、
請求項4記載の装置。
【請求項10】
「m」は、現在のスーパーフレームの番号であり、第2の適合されたチャネル毎のサンプル数OFLは、OFL=min((Mmean*L)、(OFLorig−m*L*Mmean))である、
請求項9記載の装置。
【請求項11】
整合性チェックデータに関する前記情報アイテムは、前記前のスーパーフレームのあらかじめ定められたセクションの前記CRCチェックサムである、
請求項10記載の装置。
【請求項12】
整合性チェックデータに関する前記情報アイテムは、前記前のスーパーフレームの最後フレームのハッシュ値である、
請求項10記載の装置。
【請求項13】
請求項3、5、及び6のうちいずれか1項記載の方法を実行する、ストリーミングモード・ビットストリームのデコーディングのための方法であって:
− 最初のスーパーフレーム・ヘッダを有する最初のスーパーフレームにおいて、前記ストリーミングモード・ビットストリームのデコーディングを始めるとき、デフォルトのデコーダ状態を使用して、そのスーパーフレームの最初のフレームで、前記エンコードされた信号データのデコーディングを開始するステップと;
− 前記ストリーミングモード・ビットストリームのデコーディングを、前記最初のスーパーフレームで開始しないとき、デコーディング初期化又はリセットに続いて、ミュートする先頭部分のフレームの数に関する前記情報アイテムに対応する「muteFrames」における数のフレームが前記デコーディング状態を初期化するために使用され、かつ、エンコードされた信号データのデコーディングは、これらのデコーディング状態を使用して、現在のスーパーフレームのフレーム番号muteFrames+1から始めるステップと;
− 前記ストリーミングモード・ビットストリームのデコーディングを、前記最初のスーパーフレームで開始せず、かつ、前記前のスーパーフレーム・データから算出された整合性チェックデータが、前記現在のスーパーフレームから算出される対応する整合性チェックデータと整合していないとき、デコーディング状態の再初期化のために、後続するスーパーフレームの、「muteFrames」における数の、フレームを使用して、その後続するスーパーフレームの「muteFrames」+1のフレーム番号のエンコードされた信号データのデコーディングを、これらのデコーディング状態を使用して、開始するステップと;
− 前記ストリーミングモード・ビットストリームのデコーディングを、前記最初のスーパーフレームで開始せず、かつ、スーパーフレームが以前にデコードされており、かつ、前記整合性チェックデータが有効であるとき、前記現在のスーパーフレームの前記フレームの前記エンコードされた信号データをデコードするために、前記以前にデコードされたスーパーフレームのデコーダ状態を使用するステップと;
を有する方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は可変フォーマットを有するフレームベースのデータフォーマットに関する。このフレームは、現在のフレームのデコーディングのために、前のフレームデータにアクセスすることが要求される、エンコードされた信号データを含むものである。
【背景技術】
【0002】
[背景]
フレームベースのビットストリーム・フォーマットにおいて、現在のフレームをデコードするために必要なデータは、通常そのフレームのデータセクションの中に記憶される。例外は、そのビットリザーバ(reservoir)技術を有するMPEG1オーディオ・レイヤ IIIビットストリームである。現在のフレームのためのデータは、先行フレームで記憶される。データの位置は、バイト単位で、先行フレームのメインデータの始まりの位置へのポインタによって、ビットストリームに示される。デコーダが必要な先行フレームを受信しない場合、現在のMP3フレームのデコーディングはスキップされる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
[発明]
MPEG1オーディオ・レイヤIIIビットストリームは、サンプルの忠実なカット(sample−exact cut)を可能にするためのビットストリーム・ヘッダフィールドを有しない。本発明は、エクステンション・データストリームが、ロッシー(lossy)ベースのレイヤデータストリームのためのロスレス(lossless)・エクステンションを提供するデータフォーマット又は構造に適用できる。例えば、オーディオ信号、例えば、mp3ビットストリームのロスレス・エクステンションのhd3オーディオ・ファイル・フォーマットが挙げられる。この場合、フレームのデコーディングにおいて、1つ以上の先行するフレームを必要とし、ビットストリーム・フォーマットがアーカイブモード及びストリーミングモード、及びビットストリームをサンプルに忠実にカットする機能を提供する。
【0004】
「アーカイブモード」とは、ファイルが、シングル・ビットストリーム・ヘッダ、及びその次に来るエンコード又はデコードされた信号サンプル又は係数(特にオーディオサンプル)を含むことを意味する。これによって、デコーディングは、ファイルの最初から始まらなければならない。すなわち、ビットストリーム・ヘッダの後にフレームが来る。
【0005】
「ストリーミングモード」とは、整合性のある(coherent)ビットストリームが、データの複数のパッケージに分けられることを意味する。各々のパッケージは、シングル・ビットストリーム・ヘッダから始まり、いくつかのフレームが続く。これによって、デコーディングは、各々のパッケージから始めることができる。
【0006】
サンプルに忠実にカットする手段とは、新しいビットストリームとして、既存のビットストリームから、部分的なセクションを生成することを意味する。これによって、この既存のビットストリームのサンプルのサブセットのみをエンコーディング又はデコーディングする。ここで、最初と最後のデコーディング可能なサンプルは、任意に選択することができる。
【0007】
本発明が解決しようとする課題は、カットされたファイル又はストリーミング・パッケージの最初に、デコーダ状態の初期化を容易にするビットストリーム・フォーマットを達成することである。フレームに依存して、デコーダの状態を回復するための先行フレームの数は異なる。ストリーミングモード・ファイル又はカットされたファイルは、各々のフレームで開始するため、デコーダの状態の回復に必要な先行フレームの数は無くなる。この課題は、請求項1、及び3に係る方法によって、及び請求項2に係るデータ構造によって解決される。請求項3の方法を利用する装置は、請求項4において開示される。
【課題を解決するための手段】
【0008】
本発明のビットストリーム・フォーマットは、デコーダ側及びエンコーダ側で、生成され使用される。デコーダ側において、本発明は、対応するデコーダ処理、及びカットされたファイル又はストリーム・パッケージの始めにデコーダ状態を初期化するために必要なビットストリーム・ヘッダフィールドに関連している。
【0009】
本発明によれば、どれくらいのフレームがデコーダ状態を初期化するために必要かが、ビットストリームによって送信される。このことは、ビットストリーム・ヘッダ内で、デコーダ状態の回復のために必要なフレームの数を、信号として送ることによって、明確に実行される。これらのフレームは、デコーダ初期化のために使用され、サンプル又は係数のデコーディングのためには使用されない。サンプルの忠実なカットのために、カットがなされるフレームに対して、ミュートされるサンプルまたは係数の数が、ビットストリーム・ヘッダに示され、フレーム境界を越えるサンプルに忠実なカットが可能とされる。
【0010】
本発明は、2ビットストリーム・モード、及びビットストリームのサンプルの忠実なカットを可能とするために、例えばhd3エンコーダにおいて使用することができる。これは特定の解決案である。その理由は、hd3エンコーダビットストリームの第2のレイヤーのフレームのデコーディングは、最初のレイヤーの1つ以上のデコードされたフレームを必要とするからである。これに対して、大部分の周知のフレームベースのオーディオ・フォーマットにおいて、各々のフレームは、他のフレームから独立して、デコードすることができる。後方適応予測(backward adaptive prediction)を利用する符号器(coder)の技術は、本発明の処理には利用できない。なぜなら、これは、予測状態を回復するために、先行してデコードされたサンプルが既知であることを必要とするからである。したがって、この種の周知のビットストリームは、定められた数のエンコードされたサンプルの後であれば、デコーダの初期化のための予測状態を含む。それは本発明のために当てはまらない。
【0011】
基本的に、発明の方法は、少なくとも一つのビットストリーム・ヘッダ・セクションを含むフレームベースのビットストリーム・フォーマット・ファイルを生成するための方法であって、前記フレームは、エンコードされた信号データを含み、現在のフレームのデータのデコーディング又は評価のために必要なデータが、一つ以上の先行フレームに含まれ、前記ヘッダに情報アイテムを配置することによって実行される方法であって:
前記情報アイテムは:
− 前記ファイルのチャネル毎のサンプルの総数と;
− 前記ファイルの「アーカイブモード」又は「ストリーミングモード」と;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの最初のフレームで始めることができるか否かと;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの前記最初のフレームで始まることになっていない場合、デコーディング状態を初期化する際にミュートする先頭部分のフレーム数、及び、任意的に、サンプルに忠実にカットする機能のための、対応する前記フレームのミュートするサンプル数と;
− 前記ストリーミングモードにおいて、整合性チェックのための、前のスーパーフレームを特定するための値と;
を表し、
前記アーカイブモードにおいて、前記ファイルは、シングル・ビットストリーム・ヘッダ・セクションと、前記フレームの連続したフレームとを含み、かつ、前記エンコードされた信号データのデコーディングは、前記フレームの前記最初のフレームから始まり、かつ、
前記ストリーミングモードにおいて、前記ビットストリームは、1つ以上のスーパーフレームを含み、前記スーパーフレームのそれぞれは、シングル・ビットストリーム・ヘッダ・セクションから始まり、幾つかの前記フレームが続き、かつ、前記エンコードされた信号データのデコーディングは、前記スーパーフレームのそれぞれで初期化され、かつ、
ミュートする先頭部分のフレームの数に関する前記情報アイテムは、現在のスーパーフレームに続くフレームからエンコードされた信号データのデコーディングを実際に開始する前に前記信号データのデコーディングの状態を初期化するためのデータを確立するために、現在のスーパーフレームの幾つの先頭部分のフレームが必要かの信号を作るのに使用され、前記先頭部分のフレームは、前記先頭部分のフレームに含まれた前記エンコードされた信号データのデコーディングのために使用されない、
方法に適している。
【0012】
基本的に、発明のデータ構造は、少なくとも一つのビットストリーム・ヘッダ・セクションを含むフレームベースのビットストリーム・フォーマット・ファイルのデータ構造であって、前記フレームは、エンコードされた信号データを含み、現在のフレームのデータのデコーディング又は評価のために必要なデータが、一つ以上の先行フレームに含まれ、前記ヘッダに情報アイテムを持つデータ構造であって:
前記情報アイテムは:
− 前記ファイルのチャネル毎のサンプルの総数と;
− 前記ファイルの「アーカイブモード」又は「ストリーミングモード」と;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの最初のフレームで始めることができるか否かと;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの前記最初のフレームで始まることになっていない場合、デコーディング状態を初期化する際にミュートする先頭部分のフレーム数、及び、任意的に、サンプルに忠実にカットする機能のための、対応する前記フレームのミュートするサンプル数と;
− 前記ストリーミングモードにおいて、整合性チェックのための、前のスーパーフレームを特定するための値と;
を表し、
前記アーカイブモードにおいて、前記ファイルは、シングル・ビットストリーム・ヘッダ・セクションと、前記フレームの連続したフレームとを含み、かつ、前記エンコードされた信号データのデコーディングは、前記フレームの前記最初のフレームから始まり、かつ、
前記ストリーミングモードにおいて、前記ビットストリームは、1つ以上のスーパーフレームを含み、前記スーパーフレームのそれぞれは、シングル・ビットストリーム・ヘッダ・セクションから始まり、幾つかの前記フレームが続き、かつ、前記エンコードされた信号データのデコーディングは、前記スーパーフレームのそれぞれで初期化され、かつ、
ミュートする先頭部分のフレームの数に関する前記情報アイテムは、現在のスーパーフレームに続くフレームからエンコードされた信号データのデコーディングを実際に開始する前に前記信号データのデコーディングの状態を初期化するためのデータを確立するために、現在のスーパーフレームの幾つの先頭部分のフレームが必要かの信号を作るのに使用され、前記先頭部分のフレームは、前記先頭部分のフレームに含まれた前記エンコードされた信号データのデコーディングのために使用されない、
データ構造に適している。
【0013】
基本的に、1つの発明の方法は、ビットストリーム・ヘッダ・セクションを含むフレームベースのビットストリーム・フォーマット・ファイルからセクションをカットするための方法であって、前記フレームは、エンコードされた信号データを含み、現在のフレームのデータのデコーディング又は評価のために必要なデータが、一つ以上の先行フレームに含まれ、かつ、前記ヘッダは、情報アイテムを含む方法であって、
前記情報アイテムは:
− 前記ファイルのチャネル毎のサンプルの総数と;
− 前記ファイルの「アーカイブモード」と;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの最初のフレームで始まることと;
を表し、
前記アーカイブモードにおいて、前記ファイルは、シングル・ビットストリーム・ヘッダ・セクションと、前記フレームの連続したフレームとを含み、当該方法は、前記ビットストリームから必要なフレームデータを取ることによって、カットされたファイルを生成するステップと、これらのフレームデータの前にカットヘッダを配置するステップと、を含み、前記カットヘッダは、前記ヘッダから得られ、かつ、
前記カットヘッダにおいて:
− 前記ファイルのチャネル毎の前記サンプルの総数は、前記カットされたファイルのチャネル毎のサンプル数に置き換えられ、
− 前記アーカイブモードは、保たれ;
− 前記エンコードされた信号データのデコーディングが前記ファイルの前記最初のフレームで開始することに関する前記情報アイテムは、前記エンコードされた信号データのデコーディングが前記ファイルの後続で開始することに変更され;
− デコーディング状態が初期化される間にミュートする先頭部分のフレームの数に関する情報アイテムが加えられる;
方法に適している。
【0014】
基本的に、1つの発明の装置は、ビットストリーム・ヘッダ・セクションを含むフレームベースのビットストリーム・フォーマット・ファイルからセクションをカットするための装置であって、前記フレームは、エンコードされた信号データを含み、現在のフレームのデータのデコーディング又は評価のために必要なデータが、一つ以上の先行フレームに含まれ、かつ、前記ヘッダは、情報アイテムを含む装置であって、
前記情報アイテムは:
− 前記ファイルのチャネル毎のサンプルの総数と;
− 前記ファイルの「アーカイブモード」と;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの最初のフレームで始まることと;
を表し、
前記アーカイブモードにおいて、前記ファイルは、シングル・ビットストリーム・ヘッダ・セクションと、前記フレームの連続したフレームとを含み、前記装置は、前記ビットストリームから必要なフレームデータを取ることによって、カットされたファイルを生成する手段と、これらのフレームデータの前にカットヘッダを配置する手段と、を含み、前記カットヘッダは、前記ヘッダから得られ、かつ、
前記カットヘッダにおいて:
− 前記ファイルのチャネル毎の前記サンプルの総数は、前記カットされたファイルのチャネル毎のサンプル数に置き換えられ、
− 前記アーカイブモードは、保たれ;
− 前記エンコードされた信号データのデコーディングが前記ファイルの前記最初のフレームで開始することに関する前記情報アイテムは、前記エンコードされた信号データのデコーディングが前記ファイルの後続で開始することに変更され;
− デコーディング状態が初期化される間にミュートする先頭部分のフレームの数に関する情報アイテムが加えられる;
装置に適している
【0015】
基本的に、1つの発明の方法は、フレームベースのビットストリーム・ファイルフォーマットを変更するための方法であって、前記ビットストリームはヘッダ・セクションを含み、前記フレームはエンコードされた信号データを含み、現在のフレームのデータのデコーディング又は評価のために必要なデータが、一つ以上の先行フレームに含まれ、前記ヘッダを含む方法であって、
前記情報アイテムは:
− 前記ファイルのチャネル毎のサンプルの総数と;
− 前記ファイルの「アーカイブモード」と;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの最初のフレームで始まることと;
を表し、
前記アーカイブモードにおいて、前記ファイルは、シングル・ビットストリーム・ヘッダ・セクションと、前記フレームの連続したフレームとを含み、当該方法は、前記アーカイブモード・ファイルから前記必要なフレームデータを取ることによって、前記アーカイブモード・ファイルのあらゆる連続したグループのフレームから、前記ストリーミングモード・ビットストリームのスーパーフレームを生成することによって、前記アーカイブモード・ファイルから「ストリーミングモード」ビットストリームを生成するステップと、各スーパーフレームの始まりにおいて、スーパーフレーム・ヘッダを配置するステップと、を含み、これらの前記スーパーフレーム・ヘッダは、前記ヘッダから得られ、かつ、前記スーパーフレーム・ヘッダの最初のスーパーフレーム・ヘッダにおいて:
− 前記ファイルのチャネル毎のサンプルの総数は、第1の適合されたチャネル毎のサンプル数に置き換えられ;
− 「アーカイブモード」のための情報アイテムは、その代わりに「ストリーミングモード」が与えられ;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの前記最初のフレームで開始することに関する前記情報アイテムは、保たれ;
かつ、前記スーパーフレーム・ヘッダの後続のスーパーフレーム・ヘッダにおいて、
− 前記ファイルの前記チャネル毎のサンプルの総数は、第2の適合されたチャネル毎のサンプル数に置き換えられ;
− 「アーカイブモード」のための前記情報アイテムは、「ストリーミングモード」のための情報アイテムと置き換えられ;
− 前記エンコードされた信号データのデコーディングが前記ファイルの前記最初のフレームで始まることに関する前記情報アイテムは、前記エンコードされた信号データのデコーディングが前記最初のフレームで始まらないことに関する情報アイテム、に置き換えられ;
− デコーディング状態が初期化される間に、ミュートする先頭部分のフレームの数に関する情報アイテムが追加され;
− 任意に、前記エンコードされた信号データのデコーディングが開始することになっているフレームにおいて、ミュートするサンプル数に関する情報アイテム(この数字は「0」である)が追加され;
− 整合性チェックデータであって、その値は前のスーパーフレームの前記データから得られる整合性チェックデータに関する情報アイテムが追加される;
方法に適している。
【0016】
基本的に、1つの発明の装置は、フレームベースのビットストリーム・ファイルフォーマットを変更するための装置であって、前記ビットストリームはヘッダ・セクションを含み、前記フレームはエンコードされた信号データを含み、現在のフレームのデータのデコーディング又は評価のために必要なデータが、一つ以上の先行フレームに含まれ、前記ヘッダを含む装置であって、
前記情報アイテムは:
− 前記ファイルのチャネル毎のサンプルの総数と;
− 前記ファイルの「アーカイブモード」と;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの最初のフレームで始まることと;
を表し、
前記アーカイブモードにおいて、前記ファイルは、シングル・ビットストリーム・ヘッダ・セクションと、前記フレームの連続したフレームとを含み、前記装置は、前記アーカイブモード・ファイルから前記必要なフレームデータを取ることによって、前記アーカイブモード・ファイルのあらゆる連続したグループのフレームから、前記ストリーミングモード・ビットストリームのスーパーフレームを生成することによって、前記アーカイブモード・ファイルから「ストリーミングモード」ビットストリームを生成する手段と、各スーパーフレームの始まりにおいて、スーパーフレーム・ヘッダを配置する手段と、を含み、これらの前記スーパーフレーム・ヘッダは、前記ヘッダから得られ、かつ、前記スーパーフレーム・ヘッダの最初のスーパーフレーム・ヘッダにおいて:
− 前記ファイルのチャネル毎のサンプルの総数は、第1の適合されたチャネル毎のサンプル数に置き換えられ;
− 「アーカイブモード」のための情報アイテムは、その代わりに「ストリーミングモード」が与えられ;
− 前記エンコードされた信号データのデコーディングが、前記ファイルの前記最初のフレームで開始することに関する前記情報アイテムは、保たれ;
かつ、前記スーパーフレーム・ヘッダの後続のスーパーフレーム・ヘッダにおいて、
− 前記ファイルの前記チャネル毎のサンプルの総数は、第2の適合されたチャネル毎のサンプル数に置き換えられ;
− 「アーカイブモード」のための前記情報アイテムは、「ストリーミングモード」のための情報アイテムと置き換えられ;
− 前記エンコードされた信号データのデコーディングが前記ファイルの前記最初のフレームで始まることに関する前記情報アイテムは、前記エンコードされた信号データのデコーディングが前記最初のフレームで始まらないことに関する情報アイテム、に置き換えられ;
− デコーディング状態が初期化される間に、ミュートする先頭部分のフレームの数に関する情報アイテムが追加され;
− 任意に、前記エンコードされた信号データのデコーディングが開始することになっているフレームにおいて、ミュートするサンプル数に関する情報アイテム(この数字は「0」である)が追加され;
− 整合性チェックデータであって、その値は前のスーパーフレームの前記データから得られる整合性チェックデータに関する情報アイテムが追加される;
装置に適している。
【0017】
基本的に、上記最後の方法の使用は、前記ストリーミングモード・ビットストリームのデコーディングのための方法の使用であって、
− 前記最初のスーパーフレームにおいて、前記ストリーミングモード・ビットストリームのデコーディングを始めるとき、デフォルトのデコーダ状態を使用して、そのスーパーフレームの最初のフレームで、前記エンコードされた信号データのデコーディングを開始するステップと;
− 前記ストリーミングモード・ビットストリームのデコーディングを、前記最初のスーパーフレームで開始しないとき、デコーディング初期化又はリセットに続いて、ミュートする先頭部分のフレームの数に関する前記情報アイテムに対応する「muteFrames」における数のフレームが前記デコーディング状態を初期化するために使用され、かつ、エンコードされた信号データのデコーディングは、これらのデコーディング状態を使用して、前記現在のスーパーフレームのフレーム番号muteFrames+1から始めるステップと;
− 前記ストリーミングモード・ビットストリームのデコーディングを、前記最初のスーパーフレームで開始せず、かつ、前記前のスーパーフレーム・データから算出された整合性チェックデータが、前記現在のスーパーフレームから算出される対応する整合性チェックデータと整合していないとき、デコーディング状態の再初期化のために、後続するスーパーフレームの、「muteFrames」における数の、フレームを使用して、その後続するスーパーフレームの「muteFrames」+1のフレーム番号のエンコードされた信号データのデコーディングを、これらのデコーディング状態を使用して、開始するステップと;
− 前記ストリーミングモード・ビットストリームのデコーディングを、前記最初のスーパーフレームで開始せず、かつ、スーパーフレームが以前にデコードされており、かつ、前記整合性チェックデータが有効であるとき、前記現在のスーパーフレームの前記フレームの前記エンコードされた信号データをデコードするために、前記以前にデコードされたスーパーフレームのデコーダ状態を使用するステップと;
を更に有する。
【0018】
本発明の有利な付加的な実施例は、それぞれの従属クレームにおいて開示される。
【0019】
以下の説明は、対応するビットストリーム情報、及びデコーダ処理を提供する。これは、アーカイブモード及びストリーミングモードをサポートし、かつ、サンプルに忠実なカットを容易にする1つのビットストリーム・フォーマットを有する。
【0020】
説明する本発明の実施例は、図面を参照しながら記載する。
【図面の簡単な説明】
【0021】
図1】アーカイブモード・ビットストリームの構造を示す図である。
図2】カットされたアーカイブモードのビットストリームの構造を示す図である。
図3】ストリーミングモードのビットストリームの構造を示す図である。
図4】n番目のフレームの依存を示す。この場合、framen_4フレームのデコーディングには、保存された先行するスーパーフレームを必要とする。したがって、スタンドアローンでのスーパーフレームのデコーディングは無効である。Framen_3、framen_2、及びframen_1のフレームが、frameのデコーダ状態を初期化するために必要である。
図5】アーカイブモード、カットモード、及びストリーミングモードの本発明のビットストリーム・フォーマットの処理のためのデコーダのフローチャートである。
図6】単純化したHD3ファイルフォーマットである。
【発明を実施するための形態】
【0022】
[例示的実施形態]
本発明は、hd3コーデックの開発においてなされた。したがって、説明は、現行のhd3ビットストリーム・フォーマットに適用できる。しかしながら、本発明は、フレームのデコーディングのために多く数の先行フレームについての情報を必要とする全てのフレームベースのファイルフォーマットに適用することができる。ここで、この数は、デコーダの状態を初期化するために、ビットストリームのヘッダに書かれている。あるいは、サンプルに忠実にカットするためには、デコードされたフレームをミュートするためのサンプル数を表示する。
【0023】
hd3コーデック処理は、mp3ファイルとエクステンションデータを単一ファイルで、mp3のソースに対し、ビットに忠実な表現(representation)を可能とする。hd3ビットストリーム・フォーマットの最初のバージョンは、図1に示すように、アーカイブのフォーマットであり、1つのファイルヘッダ、及び連続したデータフレームFrame、Frame、...Frameである。より容易な理解のために、hd3コーデックの異なるレイヤーはここに表されていない。そして、示された符号化器(coder)は、現在のフレームをデコードするために、先行する多くのデコードされたフレームを必要とすると仮定する。
【0024】
異なるアプリケーションのために、デコーダ側でアーカイブのフォーマットをストリーミング・フォーマットに変換することが有用である。また、アーカイブフォーマットから短いシーケンスに切ることが有用である。例えば、カットすることは、短いプレビューを迅速に生成することを可能とし、完全なファイルを受信することなく、ストリーミング・フォーマットのデコードを開始することができる。しかしながら、サンプルに忠実なカットに対し、かつ、ストリーミングモード及びアーカイブモードにおけるオペレーションに対する解決すべき課題としては、先行するフレームが見つからない場合におけるデコーダの状態の初期化である。以下に、必要なビットストリーム情報、及びデコーダ処理を説明する。
【実施例】
【0025】
[アーカイブモード]
図1に示すアーカイブモード・ビットストリームは、ファイルの始めに、1つのファイルヘッダを有する。その後に、フレームに分割された信号データが続く。ここで、各々のフレームは、L個のエンコードされた信号サンプル又は係数のセグメントを表すコードを示す。
【0026】
アーカイブモード・ビットストリームのデコーディングは、最初のフレームのみから開始することができる。なぜなら、その場合にのみ、デコーダの状態が既知であるからである(これらは、それぞれのデコーディング標準で定められる)。例えば、後述するMP3のMain_Data_Begin_Pointerは、最初のフレームに対してゼロに設定される。連続的に以降のフレームをデコードすることによって、デコーダ状態は初期化され、かつ、サンプルの正しいデコーディング結果が取得される。示されているフォーマットの主要な特徴は、全てではなく、k(0<k<=K)個の先行するデコードされたフレームだけで、正確な結果が得られることである。ここで、Kは、デコードされたフレームの最大の数であり、かつ、Kは、エンコーダ及びデコーダにおいて既知の定数値である。しかしながら、他のフレームについての情報なしに先行フレームからの必要な情報によってデコーディングが可能であるということが必要となる。
【0027】
hd3コーデックは、独立にデコーディング可能なMP3フレームによって、このような特徴を提供する。しかしながら、欧州特許出願明細書EP08102308.7に説明されているように、ビット毎に忠実な複製の復元(すなわちロスレス復元)は、マッピング処理ステータスのため、3つの先行するデコードされたMP3フレームからの情報を必要とする。
【0028】
さらにまた、MPEG1オーディオ・レイヤIII標準ISO/IEC11172−3は、上述のビットリザーバ技術を含み、先行フレームのメインデータの記憶を可能とする。先行フレームに位置するメインデータの開始を指し示すメインデータ開始ポインタが利用される。したがって、一つのMP3フレームのデコーディングは、同様に先行フレームからの情報を必要とする。
【0029】
これらの問題は、先行フレームからの必要な情報が、ストリーミングモード・ファイル又はカットされたファイルの始めに存在しないため、上述のビットストリーム・フォーマットをカットすること、あるいは、ストリーミングすることを難しくしている。図4は、デコーディング側でのカット、又はエンコード側での(又は、伝送された、記録された、又はオリジナルの)アーカイブのフォーマットのストリーミングに影響を及ぼす、関連する問題を示している。Framen_5からのデータのないビットストリームのヘッダでデコーディングを始めた場合、Framen_4は、デコードすることができない。なぜなら、Main_Data_Begin_Pointerの指すFramen_5データが利用できないからである。同様に、フレームn−3からn−1も、正確にデコードすることができない。なぜなら、先行するフレームからのデータが無いため、それらのデコーダの状態が正確にイニシャライズされていないからである。しかしながら、フレームn−3からn−1までのフレームはデコードされないが、3つの先行するフレームからのデータ(例えばスペクトル値(spectral values))が利用可能となれば、デコーダ状態イニシャライズステップ/ステージDSIにおいて、EP08102308.7.に記載されているマッピング処理を実行することにより、その後続のフレームのデコーダ状態は再構築することができる。正しく初期化されたデコーダ状態となる最初のフレームは、Frameである。
【0030】
これらの課題を解決するために、本発明によれば、以下のテーブルに示されるビットストリーム・ヘッダに、一部の追加(extra)情報アイテムが付加される。これらの追加情報アイテムに基づいて、デコーダは、処理が既知のデフォルト・デコーダ状態によって開始されるか、未知のデコーダ状態によって開始されるかどうかを決めることができる。
【0031】
【表1】
ビットストリーム・ヘッダのこの‘MuteIfFirstSuperFrame’のフィールドは、その後続のフレームのデコーディングが、デコーダ状態の付加的な初期化を必要とするか否かを示す。これが真であれば、(すなわち、フラグがセットされている場合)、更なる情報アイテムがビットストリーム・ヘッダに挿入されることを示す。これについては、カット及びストリーミングの以下の実施例によって説明する。
【0032】
アーカイブモードのビットストリーム・ヘッダは、「OFL」、「FileMode」及び「MutelfFirstSuperFrame」データフィールドだけを使用する。ここで、「FileMode」、及び「MuteIfFirstSuperFrame」の値は、ゼロにセットされる(又は、対応するフラグがクリアされる)。これは、カットされていないアーカイブファイルを示す。
【0033】
[アーカイブモード・ビットストリームのカット]
カットは、デコーディング側で利用される。受信された、あるいは、リプレイされたアーカイブモードの整合性の取れた完全なビットストリームから、短いサブセクションを切り離すために利用される。カットされたファイルのビットストリーム・モードは、アーカイブモード・フォーマットのそれに等しい。図2は、図1に示されたアーカイブモード・ファイルフォーマットから生成されたカットされたファイルを表す。例えば、カットは、完全なファイルから短いプレビューを得るために使用することができる。所望のセクションをデコードして、かつ新しくエンコードする代わりに、必要なフレームは単に入力ファイルから切り取られ、かつ、新しいヘッダがこれらのカットされたデータフレームの前に挿入される。
【0034】
カットに関する課題は、プレビュー又はカットされたセクションが、それぞれ、完全なビットストリームの初めから始まらない場合、カットされたデータフレームの最初のフレームでデコーディングするために、必要な先行フレームからのデータが無くなっているということである。したがって、カットされたファイルは、最初のフレームの処理が単にデコーダ状態を初期化するだけであり、かつ、これらのフレームのデコードされたサンプルがミュートされることになっていることを示す、ビットストリーム・ヘッダの「MuteIfFirstSuperFrame」データフィールドを評価する。ミュートされるフレームの数は、ビットストリーム・ヘッダの「muteFrames」フィールドに示される。そして、ミュートされるサンプルの数「muteSamples」が、ヘッダに示される。これによって、フレームに忠実なカットではなく、サンプルに忠実なカットが可能となる。
【0035】
以下の例を用いて、更に詳細にどのようにアーカイブファイルからカットされたファイルを作成するかについて示す。

****
与えられる値
L:フレーム毎のデコードされたサンプル数
OFLorig:チャネル毎のサンプル内の入力ファイルの全長
start:カットされたファイルをデコードするための、アーカイブファイルの最初のサンプルの番号
end:カットされたファイルをデコードするための、アーカイブファイルの最後のサンプルの番号

決定されるべき値
OFLcut:チャネル毎のサンプル単位のカットされたファイルの全長
Framevaild:既知のデコーダ状態によって、最初のデコーディング可能なフレーム
Framestart:カットされたファイルのデコードされた最初のフレーム
Frameend:カットされたファイルのデコードされた最後のフレーム
mapping:マッピング状態の初期化のために必要なフレームの数、すなわち、Framevaildのデコーダ状態の回復(recover)に必要なフレーム数
mp3:無効なmp3フレームの数

必要とする先行するフレームの数
Framevaild=floor(Xstart/L)
mappingを取得する(これは、フレーム番号Framevaildをデコードするための先行するフレームの数、この数は、既知であるが、フレーム毎に異なり得る)、そして、(mp3−)フレーム番号FramevaildのMain_Data_Begin_Pointerを読み出す。kmp3を、有効なMain_Data_Begin_Pointerを取得するために、加えるべきフレーム数に等しく設定する。例えば、Main_Data_Begin_Pointerが、Framevaildの前のフレームをポイントしている場合、kmp3を「1」に設定する。

ヘッダの値の計算
muteFrames=kmp3+kmapping
OFLcut=Xend−Xstart+1+L*muteFrames
Framestart=max(0,Framevaild−muteFrames)
Frameend=min(ceil(OFLorig/L)、ceil(Xend/L))−1
MuteSamples=Xstart−L*Framestart
ここで、
「floor」は、10進数を負の方向に探索したときの最大の整数に丸めることを意味し、ceilは、ceil関数の引数と等しいか大きい最小の整数値を示す値を返す。

以下のように、対応するヘッダを生成する。
【0036】
【表2】
カットされたファイルの生成
ヘッダをコピーし、その後にFramestartからFrameendまでを付加する。
****

カットされたアーカイブモード・ファイルの識別のために、「FileMode」は「0」にセットされる。そして、「MutelfFirstSuperFrame」は「1」にセットされる。これらの特性(properties)は、デコーダ状態が「muteFrame」の示す数の複数フレームの最初のパラメータを使用して初期化されることをデコーダに示す。したがって、これらのフレームのデコードされたサンプルは無効であることをデコーダに知らせる。
【0037】
いくつかのフレームに従属する値は、アーカイブ・ビットストリーム・モードのファイルのカットを実行するために見つけ出す必要がある。しかしながら、最初のステップは、カットされたファイルの最初のサンプルが記憶されるフレーム「Framevaild」を捜し出すことである。その最初のフレームの計算のために、コア−コーデック(core−codec)処理の対応する遅れが導入されてもよい。より容易な理解のため、実施例においては考慮しない。次に、デコーダ状態を回復するために必要な先行フレームの数が取得されることである。したがって、カットされたファイルは、「Framevaild」のデコーダ状態の回復に関連する最初のフレームから開始される。取得された先行フレームの数は、ビットストリーム・ヘッダの「muteFrame」のフィールドに書きこまれる。これによって、デコーダは、これらのフレームは、デコーダ状態の初期化にのみ使用され、サンプルのデコーディングには用いられないことを認識する。
【0038】
サンプルに忠実なカットを可能にするために、付加的な数として、「ミュートするチャネル毎のサンプル(sample per channel to mute)」(「muteSamples」)も、ヘッダに示すことができる。これらのサンプルは、デコーダによって正しくデコードされるが、ユーザに示されない。したがって、デコードされ、示される信号は、ファイルの最初のフレームからではなくて、ファイル途中のいずれかの部分からのものである。
【0039】
いずれの場合においても、「OFL」は、既知のデコーダ状態によってデコードすることができるチャネル毎のサンプル数である。これは、以下のストリーミング・ビットストリーム・モードの項において更に詳細に説明する。したがって、初期化フレームのサンプルは、カットされたファイルの実際のサンプル数に加えられることになる。デコーダは、これらの追加サンプルをデコーダ処理の「OFL」値から、自動的に減算する。更なる詳細は、デコーディング処理の項で述べる。
【0040】
[ストリーミングモード]
表1に示したビットストリーム・ヘッダの情報アイテムを使用して、アーカイブ・ビットストリーム・モードは、デコーディング側でストリーミングビットストリームモードに変換され得る。「ストリーミングモード」とは、アーカイブのビットストリームのフレームが連続したパッケージに分けられることを意味する。それによって、これらのそれぞれのパッケージは、「スーパーフレーム」(SF)と呼ばれ、そしてアーカイブのビットストリームと同じ構造を持つ。スーパーフレームは、対応するビットストリーム・セクションヘッダ(すなわちスーパーフレーム・ヘッダ)から開始される。その後、フレームのデータが続く。すなわち、アーカイブモードと比較すると、ストリーミングモードで、スーパーフレームは各々1つずつヘッダを有し、ビット列に繰り返し配置される。この種のストリーミングモード・ビットストリームの実施例は、図3に示されている。
【0041】
各々のスーパーフレームのビットストリーム・ヘッダの「FileMode」データフィールドは、ストリーミングモードを示す値「1」となっている。この場合、デコーダは、エンコードされたファイルの全てのサンプルを再構築するために、いくつかの連続したスーパーフレームをデコードしなければならない。最初のスーパーフレームのストリーミングモードのストリームは、基本的にアーカイブモード・ファイルの始まりと同一であるが、ビットストリーム・ヘッダにおいて、「FileMode」及び「OFL」のデータフィールドは、アーカイブモード・ヘッダと異なる値を持つ。デコーダが最初のスーパーフレームのデコーディングを始めると、デフォルト・デコーダ状態が使用され、かつ最初のフレームはいかなる追加的な情報アイテムも必要とせずに直接デコードすることができる。しかしながら、ストリーミングモード・ビットストリームは、それぞれのスーパーフレームの始まりからリプレイ又はデコードすることができる。しかし、その場合、デコーダ状態を初期化するための先行フレームからの必要なデータは、無くなっている。したがって、最初のスーパーフレーム以外のストリームの全てのスーパーフレームは、「MutelfFirstSuperFrame」のデータフィールドの、最初の「muteFrames」にデコーダ状態回復の用途にだけに使用されるフレーム数を示さなければならない。
【0042】
ストリーミングモードにおいては、デコーディングフェーズからはデコーディング状態が既知ではない場合と、デコーディング状態が前にデコードされたスーパーフレームから既知である場合とで、デコーディング初期化フェーズを区別しなければならない。対応するタイプのフェーズは、スーパーフレームのヘッダ情報を使用して、各々のスーパーフレームの始めに取得される。両フェーズのためのヘッダ特性は、以下のように示される。
【0043】
[デコーディング初期化フェーズ]
FileMode=1
MuteIfFirstSuperFrame=0
かつ、デコーディングは、ストリーミングモードの新規な整合性(consistency)のあるビットストリームの最初から始まる。
デフォルトのデコーダ状態が使用され、かつサンプルのデコーディングは、スーパーフレームの最初のフレームで直接始めることができる。

FileMode=1
MuteIfFirstSuperFrame=1
かつ、これは、デコーダの初期化又はリセットに続いてデコードする最初のスーパーフレームである。
かつ、これは、現在のスーパーフレームの最初の「muteFrame」の数のフレームが、デコーダ状態を初期化することに使用される。そして、サンプルのデコーディングは、(「muteFrames」+1)のフレーム番号から始めることができる。

FileMode=1
MuteIfFirstSuperFrame=1
かつ、これは、デコードされた最初のスーパーフレームではなく、かつ、先行するスーパーフレームおよび現在のスーパーフレームの整合性のチェックが失敗に終わった。

整合性のチェックのために、ヘッダの「StreamingCheckSum」データフィールドが使用される。その値は、前のスーパーフレームのデータから取得され、かつ、その後続のスーパーフレーム「StreamingCheckSum」のデータフィールドに書き込まれる。これによって、連続したスーパーフレームを特定することができる。例えば、フレームの巡回冗長検査(CRC)又はハッシュ値、例えば、最後のフレームで、その前のスーパーフレームが利用され得る。デコーダは、前のスーパーフレームのCRCを計算して、かつ、それを現在のスーパーフレームのヘッダに記憶される値と比較する。この比較が失敗した場合、現在のデコーダ状態は次のスーパーフレームのデコーディングにあてはまらない。したがって、デコーダ状態は、次のスーパーフレームの最初の「muteFrames」の数のフレームを使用して再初期化されることになる。サンプルのデコーディングは、フレーム番号(「muteFrames」+1)から始まる。「StreamingCheckSum」データフィールドは、整合性のあるストリーミングモード・ビットストリームの最初のスーパーフレームにおいて使用されない。なぜなら、先行フレームが必要なく、したがって、整合性チェックは余分であるからである。

[デコーディングフェーズ]
FileMode=1
MuteIfFirstSuperFrame=1
かつ、スーパーフレームは以前にデコードされており、かつ、整合性チェックも有効である。
したがって、先行して検出されたスーパーフレームのデコーダ状態が、次のスーパーフレームのフレームのデコードのために利用することができる。

典型的なストリーミング処理は、初期化フェーズから始まり、いくつかのデコーディングフェーズが続く。デコーディングフェーズにおいて「muteFrame」情報は使用されない。なぜなら、先行するスーパーフレームから対応するデータによってデコーダ状態が正しく初期化され、「Main_Data_Begin_Pointer」が指し示すデータは、前のスーパーフレームから利用できるからである。新規な整合性のあるビットストリームが始まる場合(MutelfFirstSuperFrame=0)、又は、「StreamingCheckSum」が誤っている場合、デコーダは初期化フェーズに戻るだけである。いずれの場合においても、デコーダ状態は、無効になり、かつ、再びイニシャライズされることになる。
【0044】
以下の例は、すでに既存のアーカイブモード・ビットストリームからストリーミングモード・ビットストリームを作成する方法を示す。

****
与えられる値
L:フレーム毎のデコードされたサンプルの数
OFLorig:チャネル毎の入力ファイルのサンプルの全長
M:M<=ceil(OFLorig/L)を満たすスーパーフレームの数

決定されるべき値
NumFrames:フレームの合計数
mean:スーパーフレーム毎のフレームの平均数
Framestart:スーパーフレームの最初のフレーム
Frameend:スーパーフレームの最後のフレーム
muteFramesSF:スーパーフレームのデコーダ状態の初期化のためのフレームの数
StreamingCheckSumSF:スーパーフレームの整合性チェックのための値
m:現在書かれているスーパーフレームの数、0<=m<M

フレームの合計数の計算
NumFrames=ceil(OFLorig/L)、ここで、ceilは、ceil関数の引数と等しいか大きい最小の整数値を示す値を返す。

スーパーフレーム毎のフレーム数の計算
mean=ceil(OFLorig/(M*L))

最初のスーパーフレームの生成(m=0)
以下のように、対応するヘッダを生成する。
【0045】
【表3】
フレーム数(number)「0」を「Mmean*L」にコピーする。

以下のスーパーフレームを生成する(1<=m<M)
「StreamingCheckSum」の計算:定義された部分の先行するスーパーフレームのCRCを計算し、その結果をStreamingCheckSumSFのフィールドに記憶する。

「muteFrames」の取得:無効なMain_Data_Begin_Pointer(現在のスーパーフレームに存在しないデータを指し示しているもの)を有する全てのフレームを探す。デコーダ状態を回復するため、そのフレーム数を加算する。その結果の合計を「muteFramesSF」にセットする。

以下のように、対応するヘッダを生成する。
【0046】
【表4】
フレーム数を(m*Mmean)からmin(((m+1)*Mmean)−1,NumFrames−1)、にコピーする。ここでmin関数は、最後のスーパーフレームで必要とされる。なぜなら、最後のスーパーフレームは、異なる数のフレーム数及びサンプル数を持ち得るからである。
****

[ファイル又はビットストリームのためのデコーディング処理]
図5のデコーディング処理のフローチャートは、アーカイブモード・ファイルのための、及びストリーミングモード・ビットストリームのためのデコーディング方法を示している。デコーディング処理の始めに、デコーダ状態は、それらのデフォルト値に(例えば、マッピング・バッファはゼロに、そして、前にデコードされた値はゼロに)セットされる。ステップ/ステージ1において、入力ファイル又はビットストリームは、必要なデータを読み込むために利用できる。ステップ/ステージ2において、ファイル又はビットストリームの最初のヘッダを探し、読み込む。すなわち、表1のヘッダ情報アイテムがセットされ、記憶され、又は、ロードされる。ステップ/ステージ3では、変数「SamplesToMute」をそのデフォルト値0にセットする。
【0047】
ステップ/ステージ4において、ファイル又はビットストリーム・ヘッダの「MuteIfFirstSuperFrame」データフィールドが、チェックされる。このチェックによって、デコーダ状態が既知か(MutelfFirstSuperFrame=0)、又は、デコーダ状態が、再度初期化され、多くのサンプルが無視されるか、が検知される。ステップ/ステージ5において、無視された(ミュートされた)サンプルの数が、SamplesToMute=muteFrames*L+muteSamples、として計算される。これは、ファイル又はビットストリームのヘッダからの、「muteFrames」におけるミュートされるフレームの数、及び、「muteSamples」におけるミュートされるサンプルの数から計算される。「L」は1つのフレームからデコードされるサンプル数である。これは既知のデコーダ定数である。ステップ/ステージ6は、全ての受信されたフレームをデコードする。これは、最初の、「muteFrames」の数の複数のフレームを含む。それゆえに、「OFL」で示される数のデコードされた複数のサンプルは、次のステップ/ステージを通過する。最初の「SamplesToMute」の数のサンプルは無効であるが、それらはデコーダ状態を初期化するために使用される。それゆえに、フェーズ/フェーズ7は、無効な「SamplesToMute」の数のサンプルを取り除いて、残りのサンプルだけにして、ステップ/ステージ8に戻る。残りのサンプルの数は、値「SamplesToMute」と、デコードされたサンプルの合計数であるOFLとの差である。「SamplesToMute」がOFLより大きい場合には、サンプル数ゼロがステップ/ステージ8に返される。これは、スーパーフレーム毎のフレームの数がミュートするフレームの数より少ない場合に、ストリーミングモードで起こり得る。
【0048】
したがって、残りの遅延は、次のスーパーフレームに伝送される。対応する変数MuteNextSF=SamplesToMute−OFLが、次のスーパーフレームでミュートするサンプル数を記憶するために、ステップ/ステージ9において算出される。
【0049】
ステップ/ステージ10で、アーカイブモード・ファイル又はビットストリーム又はカットされたファイル・ビットストリームのデコーディング処理は、11で終了する。なぜなら、ファイルの全てのOFLサンプルがデコードされたからである。したがって、ステップ/ステージ10は、「FileMode」をチェックし、かつ、アーカイブモードデコーディング処理を停止するため、終了ステップ11へ進む。それ以外は、ストリーミングモード・ビットストリームのデコーディングが継続される。
【0050】
したがって、「StreamingCheckSum」(例えばCRC)が、ステップ/ステージ12で、現在デコードされたフレームのフレームデータから計算される。「StreamingCheckSum」計算のために使用される処理、及びデータは、同一の結果をエンコーダ、及びデコーダで生成しなければならない。さらに、「StreamingCheckSum」は、現在のフレームの明確な識別を示さなければならない。なぜなら、これは、次のスーパーフレームのデコーダ状態の整合性を検査するために使用されるからである。したがって、使用されるデータは、スーパーフレーム毎に多様であり、かつ、スーパーフレームのエンコードされたデータを示さなければならない。
【0051】
次のスーパーフレームに切り替わると、ステップ/ステージ13で、次のスーパーフレームのヘッダを検索し、読み込む。このステップ/ステージで、全てのストリーム・ヘッダ変数を再度イニシャライズするため、以前のヘッダ情報は失われる。ファイルの終わりに達した場合、あるいは、有効なビットストリーム・ヘッダが見つからなかった場合、デコーダはステップ11へ進み、かつデコーディングを停止する。
【0052】
それ以外は、次のスーパーフレームをデコードするために、現在のデコーダ状態は有効かどうかがチェックされる。ストリーミングモード・ビットストリーム・ファイルは、2つ以上の連続した整合性のあるビットストリームを含む。したがって、次のスーパーフレームが、新規な整合性のあるビットストリームの最初のスーパーフレームであるかチェックされる。なぜなら、このような場合、現在のデコーダ状態は、異なるビットストリームに属しており、デフォルト値にリセットされる必要があるからである。整合性のあるビットストリームの最初のスーパーフレームでは、「MuteIfFirstSuperFrame」はゼロの値を有する。したがって、「MuteIfFirstSuperFrame」値は、ステップ/ステージ14において反転され、かつ、変数「FirstSuperFrame」に割り当てられる(すなわちFirstSuperFrame=NOT(MutelfFirstSuperFrame))。
【0053】
ステップ/ステージ15において、新規な整合性のあるビットストリームが始まっているかどうか、変数「FirstSuperFrame」をチェックする。真であるならば、ステップ/ステージ17で、デコーダ状態をリセットして、かつステップ/ステージ3で次のスーパーフレームのデコーディングを始める。これは、新規なファイルのデコーディングを始めることと同一で、かつ、この説明のストリーミングモードのアイテムのデコーダ初期化フェーズ1と同一である。それ以外は、次のスーパーフレームは同じ整合性のあるビットストリームに帰属し、かつ、処理はステップ/ステージ16で続けられる。
【0054】
この場合に、現在のスーパーフレーム・ビットストリームヘッダの「StreamingCheckSum」値と、ステップ/ステージ12で前のスーパーフレーム・データから計算した「StreamingCheckSum」の値とが比較される。すなわち、CRC==ストリーミングCRCであるかがチェックされる。上記の点は、必要である。なぜなら、整合性のあるビットストリームのスーパーフレームが消失している場合があり、あるいは、新規な整合性のあるビットストリームが開始されているが、最初のスーパーフレームでない場合があり得るからである。ステップ/ステージ16の整合性チェックが失敗した場合には、ステップ/ステージ17が使用されデコーダ状態がリセットされ、ステップ/ステージ3で、次のスーパーフレームのデコーディングが開始される。したがって、処理はこの説明のストリーミングモードのアイテムのデコーダ初期化フェーズ3となる。そして、デコーディングはデフォルト・デコーダ状態で始められる。これは結果としてステップ/ステージ4のデコーダ初期化フェーズ2に続く。
【0055】
それ以外は、現在のデコーダ状態は、現在のスーパーフレームのデコーディングのために有効である。そして、現在の処理は、この説明のストリーミングモード・セクションのデコーディングフェーズ1となる。その結果として、現在のビットストリーム・ヘッダの「muteFrames」値は、評価しなくてよい。このことは、ステップ/ステージ18で「MuteIfFirstSuperFrame」変数をゼロに設定することによって、確実になされる。したがって、ステップ/ステージ4は、結果としてステップ/ステージ8に到達せず、かつ、現在のスーパーフレームの「muteFrames」値は使用されない。
【0056】
ステップ/ステージ19の決定は、前のスーパーフレームの残りの遅延を、現在のスーパーフレームに、伝送(transfer)するために行われる。「MuteNextSF」>0である場合、前のスーパーフレームでミュートするサンプル数が、前のスーパーフレームの「OFL」値より大きいことになる。その結果として、現在のスーパーフレームでミュートするサンプルの数「SamplesToMute」は、前のスーパーフレームの中でミュートするサンプルの残りの数「MuteNextSF」に等しい。したがって、ステップ/ステージ20は、SamplesToMute=MuteNextSFとする。
【0057】
したがって、現在のスーパーフレームのデコーディングは、ステップ/ステージ3の「SamplesToMute」の再初期化を省略するために、ステップ/ステージ4から始まらなければならない。
【0058】
ステップ/ステージ19において、パラメータMuteNextSF<=0である場合、ミュートする残りのサンプルが無く、かつ、デコーダ状態は正しく、かつ、現在のスーパーフレームのデコーディングは、最初のフレームで直接始めることができる。ミュートするサンプルの数は、ステップ/ステージ3でゼロにセットされる。
【0059】
ストリーミングモードにおいて、ステップ/ステージ13がビットストリーム・ヘッダをこれ以上見つけなくなるまで、連続したスーパーフレームのデコーディングは繰り返される。そして、デコーディング処理はステップ11で停止する。
【0060】
したがって、本発明は、アーカイブモード・ビットストリーム又はストリーミングモード・ビットストリームのフレームベースのビットストリーム・フォーマットの処理を容易にし、かつ、一つのフレームのデコーディングが、先行フレームからの情報を必要とする場合であっても、アーカイブモード・ビットストリームのサンプルの忠実なカットを可能にする。
【0061】
上述したように、発明のデコーディング処理は、hd3デコーダ・インプリメンテーションにおいて使用され、かつテストは成功している。
【0062】
HD3の単純なファイルフォーマットは、図6に示すように、3つの必要不可欠なデータセクションを持っている。そして、最大4つの任意のデータセクションを持っている。必要不可欠なhd3IDデータセクションは、ファイルモード、長さ、及びCRC情報を提供する。このhd3IDセクションは、MP3フレームの補助データセクション(サイレンスPCM)にカプセル化される。MP3フレームのこの種の補助データセクションは、また、hd3ID情報の前にXing−又はVBRi−準拠の可変ビットレート・ヘッダを含んでもよい。必要不可欠なmp3−dataセクションは、MP3データストリーム又はその部分をカプセル化する。MP3ストリームのシンクロナイゼーションワードは、スクランブルされてもよい。
【0063】
必要不可欠なcd−dataセクションは、1又は2個のオーディオチャンネルを有するオリジナル曲の数学的にロスレス・コピーを再構築するため、MP3データにロスレス・エクステンションを提供する。このオーディオチャネルは、32kHz、44.1kHz又は48kHzに対応する時間軸分解度を有し、かつ16ビット/サンプルの振幅解像度を有する。MP3同期ヘッダの発生を回避する非同期化方式を使用することができる。
【0064】
任意のhd−dataセクション(不図示)は、最高24ビット/サンプル及び192kHzのサンプリングレートを有する高解像度スタジオ・フォーマットのロスレス復元を可能にする。
【0065】
任意のID3/ID3v2データセクションは、埋め込み(embedded)MP3エンコードされかつロスレス復元エンコードされた音楽に関するメタデータを記憶する。任意のID3v1タグが、また、HD3ファイルの終わりに置かれてもよい(不図示)。
【0066】
本発明はまた、AACのような他のコーデック又はビットストリームのために、及び付加的なデータ(例えばヘッダ)がMP3補助データフィールドに配置されるMP3において使用することができる。そして、対応するMP3デコーダが、これらを評価することができる。
図1
図2
図3
図4
図5
図6