コンテンツを保護するときに使用する方法、システムおよび媒体
本実施形態では、コンテンツを保護する際に使用する方法、システム、および媒体を提供する。一部の実施形態では、コンテンツを保護するときに使用するための、エラーデータ用に予約されたセクタを有するメディアコンテンツにアクセスし、その予約済みセクタを探索して特定し、エラーデータにアクセスし、メディアコンテンツ内の予約済みセクタの少なくとも一部分をそのエラーデータで置き換えて、そのメディアコンテンツおよびエラーデータを媒体に記録する方法を提供する。
【発明の詳細な説明】
【技術分野】
【0001】
優先権の主張
本出願は、2006年9月6日に出願された米国特許仮出願第60/824,748号明細書の利益を主張する、2007年9月4日に出願された米国特許出願第11/849,898号明細書の継続出願であり、該出願明細書の全文が参照により本明細書に組み込まれるものとする。
【0002】
本発明は一般にはデジタルコンテンツに関し、より詳細には、デジタルコンテンツの保護に関する。
【背景技術】
【0003】
デジタルデータの使用はここ2、30年の間に格段に増加し、さらに増加し続けている。あらゆる種類のデジタルデータが様々なシステム、ネットワークおよび媒体を介して伝送、伝達および/または保管される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許出願公開第2005/0193313号明細書
【特許文献2】米国特許出願公開第2005/0185926号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
多くの場合、デジタルデータは高価なデータであり、そのような高価なデータの所有者および配布者は、データの保護を利用することを好む。デジタルデータに保護を適用する方法は、暗号化、スクランブル、他の同様の保護方法を含めて多数ある。しかし、コンテンツに対する他または追加の保護方法が所望されている。
【課題を解決するための手段】
【0006】
本発明は、デジタルコンテンツに保護を与える際に使用する方法、装置、システムおよび媒体をプロビジョニングすることにより、上述の要件および他の要件に有利に対処する。
【0007】
一部の実施形態では、コンテンツを保護する際に使用するための、エラーデータ用に予約されたセクタを有するメディアコンテンツにアクセスし、その予約済みセクタを探索して特定し、エラーデータにアクセスし、メディアコンテンツ内の予約済みセクタの少なくとも一部分をそのエラーデータで置き換えて、そのメディアコンテンツおよびエラーデータを媒体に記録する方法を提供する。
【0008】
同様に、一部の実施形態では、コンテンツを保護する方法を提供する。これらの方法は、メディアコンテンツにアクセスし、そのメディアコンテンツ内の、エラーデータが組み込まれる複数のロケーションを特定し、複数の隣接セルの連結(series)を含むエラーデータを、特定されたロケーションのそれぞれに組み込み、再生デバイスに、メディアコンテンツ内に組み込まれたエラーデータの複数の隣接セルの連結のそれぞれを再生中にスキップするように指示するナビゲーションコマンドをナビゲーション内に定義し、そのメディアコンテンツ、エラーデータおよびナビゲーションを媒体に記録する。
【0009】
一部の実施形態では、コンテンツを保護する方法を提供する。これらの方法は、メディアコンテンツにアクセスすることと、そのメディアコンテンツを評価することと、そのメディアコンテンツ内の、識別子が組み込まれる複数のロケーションを特定することと、エラーデータが組み込まれてよいロケーションとして各ロケーションを指定するように構成された事前定義済み識別子を、そのメディアコンテンツ内の各特定されたロケーションに組み込むことを含むメディアコンテンツを修正することと、その修正されたメディアコンテンツを伝達することとを行う。
【0010】
さらに別の実施形態では、記録可能な媒体を作成する際に使用する方法を提供する。これらの方法は、記録可能な媒体を提供することにより媒体を作成し、その媒体上のセクタを選択し、エラーデータを受信するように構成された予約済みセクタを作成するために事前定義済みデータをその選択されたセクタに書き込み、エラーデータを受信するために予約されたセクタのマッピングを生成し、そのマッピングを媒体に書き込む。
【0011】
他の実施形態では、記録可能な媒体を提供する。これらの媒体は、メディアコンテンツを保管するように構成された媒体の第1の領域と、その第1の領域内の、複数のセクタのそれぞれを予約済みセクタと指定するように構成された事前定義済みデータが事前に記録された複数のセクタと、予約済みセクタの媒体上のロケーションを特定するマッピングとを含む。
【0012】
本発明の特徴および利点は、以下の本発明の詳細な説明、および本発明の原理が利用される例示的な実施形態を示した添付の図面を参照することにより、よりよく理解できるであろう。
【0013】
本発明の態様、特徴、および利点は、図面と関連付けて提示される、より詳細な後述の説明からさらに明らかになろう。
【図面の簡単な説明】
【0014】
【図1】一部の実施形態による、コンテンツを保護するときに使用するプロセスの単純化された流れ図である。
【図2】メディアコンテンツなどのコンテンツに保護を提供するときに使用するプロセスの単純化された流れ図である。
【図3】一部の実施態様による、エラーデータをコンテンツに組み込むプロセス例の単純化された流れ図である。
【図4】コンテンツを媒体に書き込むシステムの単純化されたブロック図である。
【図5】一部の実施形態による、コンテンツを媒体に書き込むときに図4のシステムに制御を実施するためのプロセスの単純化された流れ図である。
【図6】コンテンツを媒体に書き込むときに書き込みコマンドを受信したことに応答して書き込みドライブまたはデバイスによって使用されるプロセスの単純化された流れ図である。
【図7】1つまたは複数の識別子および/または予約済みセクタをコンテンツ内に定義および/または組み込むときに使用するプロセスの単純化された流れ図である。
【図8】光ディスクなどの媒体の単純化されたブロック図である。
【図9】媒体を製造および/または配布するときに使用するプロセスの単純化された流れ図である。
【図10】図8の媒体などの媒体にコンテンツを書き込むプロセスの単純化された流れ図である。
【発明を実施するための形態】
【0015】
図面をいくつかの視点から説明するに当たって、対応する参照文字は対応する構成要素を表す。当業者は、図面内の要素は単純かつ明快であるように示されているのであって、必ずしも縮小比に合わせて描かれているのではないことを理解できよう。例えば、図面内の一部の要素の寸法が、本発明の様々な実施形態の理解を助けるために、他の要素に比べて誇張されて大きく描かれることがある。また、一般的であるが、よく理解されている要素で、商業的に実現可能な実施形態において有用または必要な要素は、本発明の様々な実施形態が分かりにくくならないように、多くの場合、描かれない。
【0016】
本発明の一部の実施形態では、媒体に記録される、および/または記録できるコンテンツに保護を提供する。その保護は、少なくとも部分的に、コンテンツの無許可のコピーを制限、禁止および/または防止する。
【0017】
図1は、一部の実施形態による、コンテンツを保護するときに使用するプロセス120の単純化された流れ図を示している。ステップ122において、このプロセスは、マルチメディアコンテンツ、ならびに/または再生および/もしくは表示できる他のそのようなデジタルコンテンツなどのコンテンツを取り出す、または受信する。ステップ124において、そのコンテンツが評価され、そのコンテンツ内で1つまたは複数の識別子、ポイント、および/または予約済みセクタ、またはコンテンツの一部分が探索される。識別子は、実質的には、ポイント、セクタ、および/またはコンテンツの一部分を特定する任意の識別子であってよい。ステップ126において、エラーデータまたはコンテンツが取り出され、受信され、および/または生成される。ステップ130において、エラーデータが、ステップ124で探索された識別子の1つまたは複数に隣接したコンテンツ内に埋め込まれる、および/または組み込まれるか、および/またはその識別子の1つまたは複数に取って代わる。
【0018】
一部の実施形態では、多くの要因、例えば、識別子の数、エラーデータの数および/または量、受信されたコンテンツのサイズおよび/または量、コンテンツが配信された回数、および/または他の同様の要因もしくは要因の組み合わせなどに応じて、1回または複数回、ステップ124、126および130を繰り返す。一部の実施形態では、エラーデータは、光ディスクなどの媒体に書き込まれるコンテンツの一部または全部を表すイメージファイルに組み込まれる、および/または埋め込まれる。ステップ132において、エラーデータを含む修正されたコンテンツおよび/またはイメージファイルがコンピュータ可読媒体、例えば、ポータブル記憶媒体(例えば、デジタル多用途ディスク(DVD)、コンパクトディスク(CD)、および/または他のポータブル記憶媒体)、フラッシュメモリ、メモリスティックまたはカード、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、および/または他の同様のメモリもしくはメモリの組み合わせなどに書き込まれる、または記録される。
【0019】
コンテンツに組み込まれたエラーデータは、コンテンツおよび/または媒体の無許可のコピーに対して多少の保護を提供することができる。一部の実施形態では、このエラーデータは、コンテンツの誤ったコピーを作成できる、ならびに/またはエラー、および/もしくはコピーを実行するデバイスによって検出され、その結果、コピーを実行するデバイスがコピーを停止させる致命的エラーを作成することができる。例えば、一部の実施態様では、このエラーデータは、1つまたは複数の誤った、または不良エラー訂正コード(ECC)データおよび/またはブロックを変更すること、または提供することを含むことができ、修正されたコンテンツが不良または誤ったECCデータおよび/またはブロックを含むようにすることができる。不良ECCデータは、コンテンツのコピーを困難にする、および/またはコンテンツのコピーを防止する。コンテンツがコピーされないような保護を提供するために、他の同様のエラーデータをコンテンツに追加および/または代わりに組み込むことができる。
【0020】
図2は、一部の実施形態による、メディアコンテンツなどのコンテンツに保護を提供するときに使用するプロセス220の単純化された流れ図を示している。ステップ222において、コンテンツが取り出される、および/または受信される。ステップ224において、1つまたは複数の識別子および/または予約済みロケーションまたはセクタを探索するために、そのコンテンツが解析および/または検索される。ステップ226において、予約セクタおよび/または識別子がコンテンツの一部分またはセクション内にあるかが判定される。識別子または予約セクタが特定されると、オプションのステップ230に入ることができ、そこで、プロセス220は、エラーデータがコンテンツに組み込まれるべきかを判定する。オプションのステップ230は、一部の実施形態では、修正されたコンテンツ内のエラーデータの出現および/またはロケーションを変更するために実施され、その結果、一部の実施態様では、コンテンツ内のエラーデータのロケーションがランダムになる。例えば、ステップ230を組み込むことにより、プロセス220は、コンテンツおよび/またはイメージファイルにエラーデータを組み込むために識別子および/または予約済みセクタの一部をランダムに選択することができる。コンテンツストリームおよび/またはイメージファイル内のエラーデータのロケーションを変化させることにより、エラーデータが媒体上のどこにあるかを探索すること、および/または予測することが困難になり、保護されたコンテンツをコピーするときに困難さが増す。
【0021】
エラーデータが組み込まれることがステップ230で判定された場合、プロセス220はステップ232へ進み、そこでエラーデータが生成され、取り出され、および/または受信される。ステップ234において、エラーデータがコンテンツに組み込まれる、および/または埋め込まれる。ステップ236において、エラーデータがメモリまたは媒体に記録される。ステップ238において、コンテンツストリーム内および/または媒体上のロケーションが特定される。一部の実施態様では、エラーデータのロケーションはバッファまたは他の一時ストレージに記録または維持される。ステップ240において、プロセスは、さらに評価すべき、および/またはさらに書き出すべきコンテンツがあるかを判定する。コンテンツをさらに書き出さなければならない場合、プロセスはステップ224へ戻ってコンテンツの解析を続ける。あるいは、プロセスはステップ250へ進む。
【0022】
ステップ226へ戻ったとき、予約済みセクタおよび/または識別子が検出されない場合、プロセスはステップ242へ進み、そこで、コンテンツのセクタまたは一部分がメモリおよび/または媒体に記録される。ステップ242の後、プロセスはステップ240へ進み、さらに評価すべき、および/またはさらに書き込むべきコンテンツがあるかどうかを判定する。同様に、ステップ230において、エラーデータがコンテンツに組み込まれないと判定された場合、プロセス220はステップ244へ進み、そこで、該当のセクタがコンテンツストリームから除去される、または媒体に記録される。一部の実施態様では、プロセスはステップ238へ進み、コンテンツ、イメージに組み込まれた、および/または媒体に書き込まれた予約済みセクタの1つまたは複数のロケーションを書き留める、または記録する。ステップ238の後、プロセスはステップ240へ進み、さらに評価すべき、および/またはさらに書き込むべきコンテンツがあるかどうかを判定する。
【0023】
ステップ250において、プロセスは、ステップ238で特定されたロケーションを使用することにより、ファイル、ファイル構造、マッピングおよび/またはナビゲーションを生成および/または変更する。ナビゲーションは、媒体に書き込まれたコンテンツの中をナビゲートするとき、再生デバイスを部分的に援助する。ステップ252において、プロセス220はナビゲーションをイメージファイルに組み込み、および/またはナビゲーションをメモリまたは媒体に記録する。これにより、再生デバイスは、組み込まれたエラーデータを収めている媒体からコンテンツを再生するとき、媒体上のコンテンツの再生を部分的に調整するために、媒体上のナビゲーションおよび/またはマッピングにアクセスできるようになる。いくつかの例では、ナビゲーションは、エラーデータにアクセスしないようにするために、および/またはエラーデータをスキップするために再生デバイスによって使用される。一部の実施形態では、再生中にエラーデータにアクセスしないようにするために、不良ブロックを含むセルがプログラムチェーン(PGC)の先頭の近くにある場合、そのセルをスキップするために、セルリンクコマンドがPGCプリコマンドアレイに挿入される。追加または代替で、不良ブロックがPGCの末尾の近くにある場合、不良ブロックセルをスキップするために、不良ブロックセルの直前のセルにセルコマンドを追加できる。さらに、いくつかの例では、順方向へスキャンを実行する場合、または逆方向へスキャンを実行する場合にエラーデータを回避するために、エラーデータ近傍のスキャニングが使用不可にされてよいように、UOP、NAVパック内で。さらに、一部の実施態様では、余分な、ランダムな無効MPEGデータをエラーデータブロックの近傍に追加して、デコーディングまたは再エンコーディングが無効なMPEGデータで大抵は失敗するようにすることができる。他の例では、参照によって本明細書に組み込まれる特許文献1で説明されるようなDSVデータパターンがナビゲーション内で使用できる。
【0024】
一部の実施形態では、コンテンツがアクセスされている、および/または受信されている間、およびコンテンツが実際に媒体に書き込まれている間、プロセス220が実施される。媒体へのコンテンツの記録中にコンテンツにエラーデータを組み込むことにより、一部の実施形態では、部分的に、コンテンツ内および媒体上へのエラーデータの組み込みまたは配置の変更および/またはランダム化を支援することができる。したがって、異なる媒体は異なるエラーデータを含むことができ、および/またはそのエラーデータはコンテンツ内および/または媒体上の異なるロケーションに配置することができる。ナビゲーションも同様に、例えば、コンテンツストリーム内および/または媒体上のエラーデータのランダムな配置に基づいて媒体ごとに区別することができる。
【0025】
エラーデータを分散すると、保護を迂回して、正当な権限を持たずにコンテンツをコピーしようとする者は、普通は、エラーデータが組み込まれている可能性のある場所を特定するテンプレートを使用することができないので、部分的にデータの保護を強化することができる。そのため、保護されたコンテンツをコピーしようとする各人は、コピーを試みる前にエラーデータの位置を正確に突き止めるために媒体および媒体上のコンテンツを詳細に評価しなければならない。
【0026】
一部の実施態様では、エラーデータは、ビデオタイトルセットのプログラムチェーン(PGC)内に組み込まれた、複数のエラーデータセルの連結を含むことができる。セルの単一の連結またはセルの複数の連結が単一のPGCに組み込まれてよく、複数のPGCおよび/または複数のビデオタイトルセットは、それぞれ、エラーデータセルの1つまたは複数の連結を含むことができる。さらに、エラーデータは、実際の誤ったコンテンツ(例えば、不良ECCデータ)の前および/または後に遷移段階を含むことができる。遷移は、エラーデータの前および/または後にバッファまたはバッファ域を備えることができる。例えば、エラーデータは、誤ったデータの1つまたは複数のエラーセルの前にバッファデータの1つまたは複数のセルを含むことができ、いくつかの例では、その1つまたは複数のエラーセルの後にバッファデータの1つまたは複数のダミーセルまたはバッファセルを続けることができる。バッファデータは、典型的には、再生中にエラーを発生させることなく再生デバイスによってアクセスおよび/または再生できるコンテンツを含む。例えば、バッファセルは、ビデオコンテンツの1つまたは複数のブラックフレームを含むことができる。バッファセルおよびエラーセルは両方ともコンテンツナビゲーションによって参照され(例えば、それぞれがセルIDおよびビデオオブジェクトIDを割り当てられている)、ナビゲーションは、再生デバイスに、これらのセル、および/またはこれらのセルを含むセクタをスキップするようにさらに指示する。これらのバッファセルは、参照によって本明細書に組み込まれる、Basileらに帰属する特許文献2で説明されている単一のエラーデータとは区別され、さらにナビゲーションは、エラーデータを含む単一のセルにアクセスしないのではなく、エラーデータをスキップするように指示する。
【0027】
エラーセルの前および/または後にバッファセルまたはバッファデータを組み込むことにより、再生中の意図しないエラーは限られる、および/または回避ことが可能である。一部の再生デバイスは、例えば、ビデオコンテンツの再生中、順方向へスキャンし、再生されると予想されるコンテンツをキャッシュする。その結果、一部の再生デバイスは、実際には、エラーセルをスキップするコマンドを再生ナビゲーションから受信する前に、エラーセルから誤ったデータをキャッシュする可能性がある。(セルの再生に関して)エラーセルの前に1つまたは複数のバッファセルを組み込むことにより、再生装置は、エラーデータをスキップするためのスキップコマンド(1つまたは複数のバッファセルおよびエラーセルをスキップするように再生装置に指示する)を受信するための再生装置の時間を見越してバッファセルのコンテンツをキャッシュする。再生デバイスが再生デバイス内でエラーを発生させないブランクデータ(例えば、ブラックスクリーンビデオコンテンツ、セル内の1つまたは複数のスチルVOBUなど)をバッファリングしたので、再生デバイスはエラーデータをスキップすることができ、エラーを体験することはない。しかし、無許可のコピーは、上述および後述のように、バッファセルまたはエラーセルをスキップすることはなく、コンテンツをコピーするときにエラーが発生する。
【0028】
上記で紹介され、さらに以下で説明されるように、エラーデータは、コンテンツ内の多数でありうるロケーションに配置できる。さらに、エラーデータが組み込まれるコンテンツ内のロケーションは、少なくとも部分的にコンテンツの保護をさらに促進するために変更できる(例えば、ランダムな配置)。同様に、エラーセルの数および/またはエラーデータを定義するバッファセルの数も、エラーデータがセルを介して実装されるとき、変更することができる。さらに、いくつかの例では、バッファセルの数はランダムに変更することができ、エラーセルの数もランダムに変更することができる。追加または代替で、バッファセルとの相対的なエラーセルの配置が変更できる。典型的には、エラーデータはバッファデータから始まり、バッファデータで終り、誤ったデータはバッファデータ全体に配置される、および/または分散される。例えば、1つまたは複数のバッファセルが、エラーデータの連結の先頭に配置され、1つまたは複数のバッファセルがその連結の末尾に配置される。一部の実施態様では、エラーセルおよび/またはバッファセルの数に制限がある。例えば、一部の規格および/または一部の再生デバイスでは、エラーセルおよび/またはバッファセルの数は、PGCごとに255個のセルに制限される。さらに、エラーデータのランダム化は、ランダムな数のバッファスチルVOBUをバッファセル内に取り込むこと、および/または作成すること、不良ECCブロックを開始するランダムな数の開始論理ブロック番号(セクタ番号)を作成すること、ランダムな数の不良ECCブロックを1つまたは複数のエラーセル内に作成すること、1つまたは複数のエラーセルをエラーデータ内にバッファセルと相対的にランダムに位置付けること、および他の同様の変更および/または変更の組み合わせを含むことができる。使用されるバッファデータおよび/またはバッファセルの量は、エラーデータの量またはエラーセルの数、コンテンツにアクセスすると予想される再生デバイスなどの多数の要因、および/または他の同様の要因に応じて異なってよい。例として、一部の実施態様では、バッファデータはエラーデータの量の約4倍を含むことができ、いくつかの例では、再生、検索および/またはスキャン中の誤ったデータへのアクセスを制限するときに再生デバイスに保護を提供するために、エラーデータの両側、および/またはエラーデータの先頭および末尾に1メガバイトのデータを含むことができる。
【0029】
図3は、一部の実施態様による、エラーデータをコンテンツに組み込むプロセス例320の単純化された流れ図を示している。例えば、プロセス320は、図2のプロセス220のステップ232および/または234の少なくとも一部として実行できる。ステップ322において、ビデオタイトルセットが特定され、そのビデオタイトルセット内でPGCが特定される。ステップ324において、特定されたPGCに組み込む合計セルの数が特定される。セルの数は、事前定義された数であってよく、外部ソースによって指定でき、ランダムに決定でき、現在の状態および/もしくはコンテンツ、期待される1つまたは複数の再生デバイス、コンテンツが書き込まれる媒体、または他の同様の根拠に基づいて選択できる。ステップ326において、エラーデータに組み込むエラーセルの数が決定される。やはり、エラーセルの数は、事前定義することができ、外部ソースによって指定でき、ランダムに決定でき、現在の状態および/もしくはコンテンツ、期待される1つまたは複数の再生デバイス、コンテンツが書き込まれる媒体、または他の同様の根拠に基づいて選択できる。ステップ330において、エラーデータを定義するセルの合計数内の1つまたは複数のエラーセルの配置が決定される。ステップ330は、多くの実施形態で、少なくとも1つのバッファセルがエラーセルの前のエラーデータに組み込まれ、多くの場合、少なくとも1つのバッファセルがエラーセルの後に続くという事実により制限される。
【0030】
再生のためのナビゲーションは、一部の実施形態では、再生デバイスにエラーデータ、および/またはエラーデータを含むセクタをスキップさせるスキップコマンドを組み込み、それは、いくつかの例で、バッファセルおよびエラーセルのスキップを含むことができる。しかし、上で説明したように、一部の再生デバイスは、コンテンツが滑らかに再生される前にコンテンツをキャッシュする。このような再生デバイスは、スキップコマンドを受信する前に1つまたは複数のバッファセルのいくつかをキャッシュすることができるが、このキャッシュされたバッファセルのコンテンツは、スキップコマンドが受信されると、破棄できる。
【0031】
いくつかの例では、ナビゲーションは、再生の順序を定義する低レベルのナビゲーションコマンドを含む。追加または代替で、ナビゲーションは、再生デバイスにバッファセルおよびエラーセルをスキップするように、および/またはセル間にリンクを提供するように指示するセルコマンド(複数可)またはPGCコマンド(複数可)を含むことができる。これらのスキップコマンドは、ナビゲーションパターンの少なくとも一部を確立する。通常の再生中、スキップコマンドは、PGCコマンド域にセル相互間リンクコマンドを含むことができ、および/またはセルコマンド域にセル相互間リンクコマンドを含むことができる。ナビゲーションは、追加または代替で、検索、高速転送、巻き戻しなどで使用するための、ビデオ検索情報などの検索情報および/またはパラメータの中に組み込むことができる。例えば、高速転送および/または巻き戻しスキャンモードでは、ナビゲーションパック内のエラーデータの近く(例えば、エラーセルの近く)のフラグは、再生デバイスが不良ECCブロックなどのエラーデータを読み取ろうとしたり、および/またはエラーデータをキャッシュしようとしたりしないようにするために、使用不可にされる。
【0032】
多くの例で、コンテンツ中および/または媒体上でエラーデータを分散すると、さらにパターンが提供および/または定義される。このパターンは、媒体を特定するため、および/または媒体の真偽を検証するために追加で使用できる。例えば、エラーデータのパターンは、以下で説明されるように、媒体および/またはコンテンツを他の媒体および/またはコンテンツから区別するウォーターマーク(透かし)、署名、フィンガープリント、または他の識別子として判定され、使用できる。
【0033】
図4は、コンテンツを媒体422に書き込むシステム420の単純化されたブロック図である。システムは、コントローラ424、書き込みデバイスまたはドライブ426、デジタルコンテンツを保管するメモリまたはストレージ428、および通信ネットワーク430を含む。一部の実施態様では、コントローラ424、書き込みドライブ426、メモリ428および通信ネットワーク430は、コンテンツを媒体422に書き込むことができる単一の書き込みデバイス432、例えば、書き込み可能光ディスク(例えば、書き込み可能DVD)、フラッシュメモリおよび/または他の同様の媒体に組み込まれてよい。メモリ428は、内部メモリ、外部メモリ、フラッシュドライブ、または他の同様のメモリであってよい。通信ネットワーク430は、システム構成要素または他の同様の通信ネットワークを結合するシステムバスであってよい。一部の実施形態では、システム420が1つまたは複数の外部デバイスおよび/または分散ネットワーク436(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、衛星ネットワーク、イントラネット、インターネットなど)に接続して、リモートサーバ440、メモリ442および/または他のデバイスと通信できるようにする1つまたは複数のインターフェース434がさらに含まれる。
【0034】
システム420は、プログラムモジュールを採用するハードウェア、ソフトウェア、ならびに/またはハードウェアおよびソフトウェアの組み合わせを使用して実現することができる。いくつかの例では、システム420の一部または全部がコンピュータ、コンピュータシステム、サーバ、および/またはコンピュータ実行可能な命令によって実現できる。コンピュータ実行可能な命令は、単一プロセッサまたはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータのほかにパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサ系またはプログラマブル消費者電子機器なども含むが、それらに限定されない実質的に任意の構成を有する1つまたは複数のコンピュータを稼働させることができ、コンピュータのそれぞれは、1つまたは複数の関連デバイスに適切に結合されてよい。追加または代替で、システムは、一部の機能が、通信ネットワーク430および/または分散通信ネットワーク436などの1つまたは複数の通信ネットワークを介してリンクされるリモートプロセシングデバイスによって実行される分散コンピューティング環境に実装することができる。分散コンピューティング環境では、プログラムモジュール、実行可能コード、データ、コンテンツなどは、ローカルおよびリモート両方のメモリストレージデバイスに置かれてよい。
【0035】
メモリ428、442は実質的に任意のコンピュータ可読媒体および/または媒体の集合であってよく、揮発性および非揮発性媒体、取り外し可および取り外し不可媒体、および/または他のメモリのうちの1つまたは複数を含んでよい。別の例として、コンピュータ可読媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリテクノロジ、内部ハードディスク、CD−ROM、DVDまたは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、ならびに/または実質的に任意の他の媒体、もしくはコンテンツ、実行可能コードおよび/または他の所望の情報を保管するために使用できる媒体の任意の組み合わせなどがあるが、それらに限定されない。通信ネットワーク(複数可)および/または媒体430、436は、一部の実施態様では、コンピュータ可読命令、データ構造体、プログラムモジュール、および/または搬送波または他の転送メカニズムなどの変調データ信号での他のデータを含むことができるが、それらに限定されず、実質的に任意の情報配信媒体を含む。例えば、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体、音響、RF、赤外線および他の無線媒体などの無線媒体、および/またはそれらの組み合わせなどがある。
【0036】
コントローラ424はシステム420に制御を提供し、書き込みドライブ426に、コンテンツをメモリ428、442から媒体422に書き出すように指示する。コントローラは、実質的に任意のプロセッサ、デュアルマイクロプロセッサおよび/または他のマルチプロセッサアーキテクチャ、マイクロプロセッサ、コンピュータ、サーバおよび/または他の同様の制御デバイスによって実現できる。いくつかの例では、コントローラおよび/またはシステム420は、ユーザ制御および/または対話を可能にするユーザインターフェース444(例えば、キーボード、マウスまたは他のポインティングデバイス、音響入力/出力、ディスプレイ、および他のユーザインターフェース)を含む。通信ネットワーク430は、1つまたは複数の通信リンク、ならびに/またはさらに相互接続できる、および/もしくはメモリバス(メモリコントローラがある場合も、ない場合も)、周辺バス、および様々な市販のバスアーキテクチャのいずれかを使用するローカルバスを含むタイプのバス構造であってよい。インターフェース434は、有線および/または無線インターフェースであってよく、ユニバーサルシリアルバス(USB)インターフェース、IEEE 1394インターフェース、パラレルポート、シリアルポート、ゲームポート、赤外線(IR)インターフェースおよび/または他の同様のインターフェースなど、しかしそれらに限定されない実質的に任意の通信インターフェースによって実現できる。
【0037】
リモートデバイス440は、1つまたは複数のリモートサーバ、ワークステーション、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサ系娯楽機器、ピアデバイス、および/または他の一般的なネットワークノードであってよい。分散ネットワーク436による通信は、有線および/または無線(例えば、高周波(RF)、無線忠実度(wireless fidelity)(Wi−Fi)、Bluetooth、および/または他の無線テクノロジ)であってよい。
【0038】
動作時、コントローラ424は、書き込みドライブ426に、マルチメディアコンテンツなどのコンテンツをローカルストレージ428および/またはリモートストレージ442から媒体422に書き込むように指示する。コンテンツが書き出されているとき、コントローラはコンテンツをモニタし、媒体422に書き出す前に、書き込みデバイスにコンテンツを変更するように、および/またはエラーデータを媒体コンテンツに組み込むように指示する。書き込みドライブまたはデバイスは、コンテンツを媒体422に書き出すことができる実質的に任意のデバイス、例えば、記録可能なDVDユニット、記録可能なCDユニット、および/または他の同様の書き込みデバイスでよいが、それらに限定されない。一部の実施形態では、媒体422に書き込まれるコンテンツは、分散ネットワーク436を介してシステム420に配信される。さらに、コンテンツは、エラーデータが組み込まれる1つまたは複数の識別子および/または予約済みセクタとともに受信できる。追加または代替で、媒体422に書き込まれるコンテンツは、ローカルストレージ428から受信することができる。ローカルストレージは、内部メモリ、外部メモリドライブ、および/または他の同様のメモリストレージであってよい。例えば、メモリ428は、ポータブルストレージ媒体を受信するための光ストレージデバイスを含むことができて、コンテンツは、第1のポータブルストレージ媒体からポータブルストレージ媒体422にコピーできる。コンテンツをコピーするとき、いくつかの例では、コントローラ424は、コンテンツのコピーを作成する権限を、例えば、サーバ440にアクセスすることにより、取り出し済みである。
【0039】
図5は、一部の実施形態による、コンテンツを媒体422に書き込むときにシステム420に制御を実施するためのプロセス520の単純化された流れ図を示している。ステップ522において、コントローラは、メディアコンテンツを解析する、または代替の解析デバイスにメディアコンテンツを解析するように指示する。追加または代替で、一部の実施形態では、コンテンツは解析の前に保護解除される。例えば、コントローラは、リモートサーバ440にアクセスして、コンテンツにアクセスしてそのコピーを許可するための暗号化キーまたは他の権限を取り出し、そのキーおよび/または他の権限を使用してコンテンツにアクセスし、解析することができる。ステップ524において、コンテンツの一部分またはセクタが選択される。ステップ526において、コンテンツのセクタが識別子を含んでいるか、またはコンテンツの予約済みセクタとして定義されているかが判定される。コンテンツの一部分またはセクタを評価するとき、1つまたは複数のビット、または一連のビットが、事前定義済みパターンと等しいかが判定される。上記で紹介されたように、識別子は、実質的に任意の識別標識でよい。一部の実施形態では、セクタを予約済みセクタとして認識するために、事前定義された一連のビットまたはグローバル一意識別子(globally unique identifier)(GUID)がそのセクタに含まれてよい。例えば、コントローラは、セクタが事前定義済みGUIDを含むかどうかを判定することができる。
【0040】
コントローラがそのセクタは予約済みセクタであると認識すると、ステップ532に入り、そこで、そのセクタはエラーデータを含むために選択されるべきかが判定される。この選択は、特定されたGUIDまたはパターンに基づいて行うことができ、ランダムな選択は、1つまたは複数の事前定義済みパターン、または他の同様の選択に基づいて行うことができる。セクタの選択を変更することにより、例えば、エラーデータのロケーションが変わるので、エラーデータがどこにあるかを予測することがより困難になり、コンテンツに追加保護が提供される。セクタがエラーデータを含むために選択される例では、プロセスはステップ534に入り、そこで、コントローラは、書き込みドライブ426に、エラーデータをコンテンツストリームに組み込むように指示する。あるいは、ステップ536に入り、セクタは、そのまま単純に書き込まれるか、またはコンテンツストリームから除去される。一部の実施形態では、ステップ534および536は、ステップ532での判定に従って異なる書き込みを行うために、コントローラ424が書き込みドライブまたはデバイス426へ変更された書き込みコマンドまたは異なるコマンドを発行することにより、実行できる。ステップ534および536の後、プロセスはステップ542へ進む。ステップ542において、さらに解析すべき、および/または評価すべきコンテンツがあるかどうかが判定される。それ以上のコンテンツまたはセクタがない場合、プロセスは終了する。あるいは、プロセスはステップ522へ戻り、コンテンツストリームの解析および評価を続ける。
【0041】
ステップ526に戻って参照すると、1つまたは複数のビットまたは一連のビットが事前定義済みパターンと等しくないと判定されると、プロセス520はステップ540に入る。ステップ540において、セクタは、コンテンツストリームからそのまま書き出される。一部の実施形態では、ステップ540はステップ536に類似しており、コントローラが書き込みコマンド(例えば、WRITE10コマンド)を発行する。ステップ534については、書き込みドライブまたはデバイスが他の書き込みコマンド(複数可)と区別することができて、エラーデータの書き込みを正確に実施できる変更または修正された書き込みコマンドを利用することができる。代替または追加で、一部の実施形態では、一部の書き込みデバイスがエラーデータを生成するようにするデータのパターンを伴う書き込みコマンドを発行する。いくつかの例では、そのデータのパターンは、通常はその書き込みデバイスでは受信されないパターンであり、そのデータのパターンにより、書き込みデバイスはエラーを引き起こし、誤ったデータを書き込む。このデータのパターンを書き込みコマンド内で使用することは、例えば、エラーデータを書き込むように指示する特定のコマンドを認識しない可能性がある、および/または修正されたファームウェアを組み込むことができなくて、修正された書き込みコマンドを利用できない一部のレガシ書き込みデバイスで使用できる。ステップ540の後、プロセスはステップ542へ進み、さらに評価すべきデータがあるかを判定する。
【0042】
上記で紹介されたように、識別子は、認識可能なビットまたはバイトの事前定義済みパターンまたはストリング、グローバル一意識別子(GUID)、またはセクタを予約済みセクタと認識できる他の同様の識別子を含むことができる。一部の実施形態では、セクタを満杯にするためにGUIDまたは一連のビットが1回または複数回繰り返され、そのセクタが、エラーデータが組み込まれる、および/または埋め込まれる予約済みセクションとして認識されるようにする。例えば、GUIDは、エラーデータが組み込まれることを指定する識別子として認識される事前定義された値、例えば、16進形式で書かれた「4D 36 E9 65 E3 25 11 CE BF C1 08 00 2B E1 03 18」であってよい。別の例として、一部の実施形態では、セクタ用の2048バイトデータを、セクタが満杯になるまで繰り返される事前定義された128ビットGUIDまたは他のパターンであるように設定することにより、予約済みセクタを表すことができる。コンテンツストリームが2054バイトのセクタを有するイメージファイルを含むいくつかの例では、6バイトの著作権および領域管理情報(CPRMAI)ヘッダは、セクタが予約済みセクタであるかを判定するとき無視できる。
【0043】
媒体422へ書き込まれる、および/または書き込まれたコンテンツへのエラーデータの組み込みは、一部の実施形態では、書き込みドライブまたはデバイス426にエラーデータを組み込むように通知する書き込みコマンドをコントローラ424が発行することにより、実施される。一部の実施形態では、書き込みコマンドは、修正されたWrite(10)および/またはWrite(12)小型コンピュータシステムインターフェース(SCSI)コマンドであってよい。以下の表1は、書き込みドライブ426に媒体へのコンテンツの書き込みを開始するように指示できるWrite(10)コマンド記述子ブロック(CDB)の構造の例を定義している。
【0044】
【表1】
【0045】
典型的には、ストレージデバイスは、普通は用語「論理ブロックアドレス(LBA)」および他のパラメータによって参照される多数の論理ブロックから成る。典型的なLBAは、512バイトのストレージに等しく、Write(10)およびWrite(12)の場合、典型的には32ビットLBAアドレスを含む。多くのシステムにおいて、例えば、SCSIバス上の各デバイスは少なくとも1つの論理ユニット番号(LUN)を割り当てられる。単純なデバイスは1つのLUNを持つことができ、より複雑なデバイスは複数のLUNを持つことができる。バイト「1」のビット「1」は予約されており、典型的には、Write(10)および/またはWrite(12)コマンドの場合、値「0」を入れて送信されることに注意されたい。
【0046】
表2および表3は、それぞれ、修正されたWrite(l0) CDBおよび修正されたWrite(12) CDBを示している。修正された書き込みコマンドは、一部の実施形態において、エラーデータの組み込みおよび/または書き込みを開始するために使用できる例である。
【0047】
【表2】
【0048】
【表3】
【0049】
修正されたWrite(10)および修正されたWrite(12)のバイト「1」のビット「1」は、不良ECC(BE)標識ビットとして定義されることに留意されたい。BEパラメータが第1の値(例えば、値「0」)に設定されると、修正されたWrite(10)または修正されたWrite(12)は、書き込みドライブ426に標準のWrite(10)またはWrite(12)を実際に実施するように指示できる。あるいは、BEパラメータが、例えば、「1」に設定されると、修正されたWrite(10)および/または修正されたWrite(12)コマンドは、書き込みドライブに、誤った、または不良ECCデータなどのエラーデータを指定されたLBAに挿入および/または記録するように指示する。転送長は、作成するエラーデータ、および/またはコンテンツに組み込むエラーデータのブロックの量または数を示すことができる。いくつかの例では、Write(10)および/またはWrite(12)コマンドのためのデータイン(data−in)は無視される。
【0050】
一部の実施形態では、書き込みドライブまたはデバイス426および/または書き込みドライブのファームウェアも、BEビットを検出して、いつエラーデータをコンテンツに組み込むかを判定するために修正される。例えば、書き込みドライブまたはデバイス426のアプリケーションインターフェース(API)は、一部の実施形態では、修正されたWrite(10)および/またはWrite(12)コマンドを検出して、所望の書き込み機能を正確に実行するように修正できる。さらに、一部の実施態様では、コントローラ424は、書き込みドライブおよび/またはデバイスが、修正されたWrite(10)および/もしくはWrite(12)コマンドを正確に検出できるか、ならびに/またはエラーデータを、媒体に書き込まれたコンテンツストリームに組み込むことができるかを照会または判定できる。いくつかの例では、書き込みドライブ426は照会またはGET CONFIGURATIONコマンドに応答し、書き込みドライブがエラーデータを組み込み、ならびに/または修正されたWrite(10)および/もしくはWrite(12)コマンドを正確に解釈して実施する機能を有しているかを示す。
【0051】
表4は、照会またはGET CONFIGURATIONコマンドに応答して書き込みデバイスによって送信されるエラーデータ書き込み可能機能記述子の例である。
【0052】
【表4】
【0053】
エラーデータ書き込み可能機能があるということは、ドライブがエラーデータを、例えば、エラーデータの指定に従って媒体に記録する、および/または組み込むことができることを表す。機能コードは、記述子をエラーデータ機能記述子として認識するために定義できる。例えば、機能コードは、16進形式で書かれたFF54hに設定できる。「書き込み(write)」パラメータは、エラーデータを書き込むための書き込みドライブの機能を特定するために使用できる。
【0054】
例えば、書き込みパラメータが第1の値(例えば、「0」)に設定されると、書き込みドライブでエラーデータ書き込み機能は使用できない。あるいは、書き込みパラメータが第2の値(例えば、「1」)に設定されると、ドライブは、エラーデータ書き込みを行うための機能を要請する。他のパラメータは、追加または代替で、記述子に含むことができる。例えば、バージョンフィールドを含むことができる(例えば、16進形式で書かれた0hに設定できる)。パーシスタントビットを設定でき(例えば、ゼロに設定できる)、この機能はそのカレント状態を変更できることを表す。カレントビットは、例えば「0」に設定されると、この機能が現在はアクティブではなく、この機能に依存するデータは有効になれないことを表し、例えば「1」に設定されると、この機能が現在アクティブであり、この機能に依存するデータは有効であることを表すことができる。例えば、カレントフィールドが「0」に設定されると、ディスクはマウントされない、または現在マウントされているディスクはエラーデータの組み込みまたは挿入用にサポートされず、カレントフィールドが「1」に設定されると、ディスクがマウントされ、この媒体上でエラーデータを使用することが可能である。いくつかの例では、追加の長さフィールドが含まれ、このフィールドは、例えば、16進形式で書かれた04hに設定できる。
【0055】
図6は、コンテンツを媒体422に書き込むときに書き込みコマンドを受信したことに応答して書き込みドライブまたはデバイス426によって使用されるプロセス620の単純化された流れ図である。ステップ622において、書き込みコマンドが受信される。典型的には、書き込みコマンドはコントローラ424によって発行される。ステップ624において、書き込みコマンドはエラーデータを組み込むための指示を含んでいるかが判定される。一部の実施形態では、ステップ624は、書き込みコマンドが、修正されたWrite(10)コマンド、修正されたWrite(12)コマンド、および/または他のコマンドの中で事前定義された値に設定される不良ECCビット(例えば、BEは「1」に設定される)を含むかどうかを判定することを含む。書き込みコマンドが、エラーデータを組み込むための指示を含んでいない場合、ステップ626に入り、そこで、書き込みコマンドに基づいて特定されたデータが媒体に書き込まれる。
【0056】
書き込みコマンドが、エラーデータを組み込むための指示を含んでいる場合、ステップ630に入り、そこで、エラーデータが取り出される、および/または生成される。ステップ632において、エラーデータが媒体に記録される。一部の実施形態では、ステップ630および632は単一のステップとして結合することができ、結合されたステップで、以下でさらに説明されるように、媒体への記録中にエラーデータが生成される。ステップ634において、媒体上および/またはコンテンツ内のエラーデータのロケーションが特定されて、記録またはバッファリングされる。エラーデータのロケーションは、一部の実施態様では、再生デバイスで使用される再生ナビゲーションを生成するときに使用できる。
【0057】
書き込みデバイスおよび/または期待される再生デバイスの機能が、エラーデータがコンテンツおよび/またはイメージファイル内のどこに、どのように組み込まれるかを制限する可能性がある。例えば、いくつかの例および/または一部の書き込みデバイス426で、エラーデータは、例えば、媒体の0x30セクタ(例えば、DVDフォーマットに従った場合)と等価であってよい一連の連続ブロック、例えば、3個以上の連続ユニットまたは不良ECCデータの中に生成される。これにより、一部の書き込みデバイスはコンテンツの書き込みを実際に停止し、エラーデータの書き込みを開始し、エラーデータの書き込みを停止し、コンテンツの書き込みを再開できるようになる(例えば、1つのユニット中にコンテンツの書き込みを停止し、第2のユニット中にエラーデータを書き込み、第3のユニット中にエラーデータの書き込みを停止し、コンテンツの書き込みを再開する)。コンテンツの書き込みの停止および開始は、例えば、パケット書き込みモードで動作できるいくつかの書き込みデバイスで実施できる。一部の実施形態は、第1の書き込み中にコンテンツが書き込まれ、第2の書き込みでエラーデータが書き込まれる多段書き込みプロセスを、例えば、第1段階で書き込まれた、またはスキップされた部分に上書きすることにより実施する。さらに、一部の実施態様では、エラーデータは、例えば、位置がECC境界に合わされる。しかし、一部の例および/または一部の書き込みデバイスでは、エラーデータの連続ブロックおよび/または境界合わせは必要ない場合がある。追加または代替で、一部の書き込みデバイスは、エラーデータを書き込む前にキャッシュ同期化コマンドをさらに発行し、および/またはエラーデータを書き込んだ後にキャッシュ同期化コマンドを発行して、コンテンツの書き込みとエラーデータの書き込み間でより正確な遷移が行われるようにする。
【0058】
再生ナビゲーションは、再生デバイスに、再生中にエラーデータを迂回またはスキップするように指示できる。そのため、媒体上のコンテンツはエラーなしで再生できる。しかし、媒体上のコンテンツをコピーしようとするとき、多くのコピープロセスがコンテンツを分析しない、および/またはナビゲーションを使用しない。したがって、このようなコピープロセスはコンテンツをコピーしようとし、エラーデータ(例えば、不良ECCデータ)は、コピーを防止するエラーを生成し、エラーデータに応答して行われる書き込み時にコンテンツの品質を低下させ、および/またはコピーを禁止する、またはコピーを妨害しようとする他の効果を生み出す。
【0059】
再生中のエラー、グリッチ、および/もしくはユーザ検出可能な変形を制限ならびに/または回避するために、コンテンツと共にエラーデータの組み込みおよび記録がさらに実施される。一部の実施形態では、エラーデータは、コンテンツ内の、ナビゲーションに基づいて再生デバイスによってエラーデータが容易にスキップされる位置に組み込まれ、ならびに/またはエラーデータは、コンテンツ、および/もしくはコンテンツ、および/もしくは媒体の期待されるフォーマットに応じて位置合わせができる。例えば、エラーデータは、以下でさらに説明されるように、コンテンツの一部分の前または後に組み込まれてよい。しかし、他の例および/または他の再生デバイスでは、エラーデータは、イメージファイルおよび/またはコンテンツストリーム内の実質的に任意の所望の位置に組み込むことができる。
【0060】
さらに図6を参照すると、エラーデータを生成および/または受信するステップ630は、多くの方法で実施できる。例えば、エラーデータはコントローラ424または別のデバイスによって生成できて、書き込みコマンドに従って、書き込みドライブへ転送または書き込みドライブによって取り出して組み込むことができる。一部の実施態様では、書き込みドライブはECCデータをスクランブル、またはそうでない場合は変更して、スクランブルされたECCデータをコンテンツ内にエラーデータとして組み込むことができる。スクランブリングは、ECCデータがそれ以降は無効であるようにする実質的に任意のスクランブリングであってよい。エラーデータは、コンテンツが媒体に書き込まれるときに、コンテンツの変調を変更することにより生成できる。追加または代替で、コンテンツの書き込みにレーザを使用する場合、レーザの電力および/または強度は、その書き込み、リンクするブロックの作成、ボーダーゾーンの作成、および/または他の同様の方法において中断を入れるために、書き込み中に変更、停止、および開始できる。
【0061】
図7は、1つまたは複数の識別子および/または予約済みセクタをコンテンツ内に定義および/または組み込むときに使用するプロセス720の単純化された流れ図を示している。識別子および/または予約済みセクタは、コンテンツ内の、エラーデータが組み込まれてよい位置の少なくともいくつかを定義するためにコンテンツに挿入される。ステップ722において、コンテンツがアクセスされ、および/または取り出される。いくつかの例では、コンテンツは、記録デバイスから受信されたままの、例えば、非圧縮ビデオおよびオーディオなどの初期フォーマット、またはコンテンツ開発者および/または供給者によって利用される他のフォーマットになっている。
【0062】
ステップ724において、コンテンツが評価され、コンテンツの一部分が選択される。この評価および選択は、一部の実施形態では、コンテンツ内のシーンの変化、コンテンツまたはコンテンツの部分の先頭および/または末尾、シームとしての中断および他の同様のロケーションなど、コンテンツ中の遷移を特定する。例えば、コンテンツの評価は、コンテンツの末尾または先頭、シーンまたはイントラピクチャフレーム(Iフレーム)の変化、後書きまたは前書きコンテンツの末尾、特集コンテンツ(featured content)(例えば、映画)の先頭または末尾、制作スタッフ一覧(credits)の先頭、および/またはコンテンツ内の他の同様の遷移を特定することを含むことができる。さらに、媒体の、通常は読み取られない領域またはロケーションに誤ったデータを組み込むことができる。例えば、エラーデータは、他のデータを含まないディスクまたは他の関連媒体に、コンテンツが媒体を満杯にしない場合などに組み込むことができる。エラーデータは、コンテンツが記録されていないエリア、すなわち、媒体の、通常は読み取られないエリアに組み込むことができる。あるいは、コンテンツと共に余分な、またはダミーのタイトルを組み込むことができ、その場合、これらの余分なタイトルはアクセス、リンク、または参照されない。そのため、これらのタイトルは通常は再生中には読み取られず、コンテンツのコピー中にアクセスされるのが一般的である。
【0063】
ステップ726において、識別子または予約済みセクタがコンテンツ内の、ステップ724で選択されたコンテンツ部分の前に組み込まれるかが判定される。ステップ726で実行される判定は、部分的には、例えば、コンテンツの複数のバージョンが予約済みセクタおよび/または識別子がコンテンツ上の異なる場所に挿入されるように、コンテンツ内のエラーデータの配置が異なるようにし、および/またはランダム化されることを可能にする。一部の実施形態では、予約済みセクタまたは識別子がいつ組み込まれるべきかに関するステップ726での判定は、ランダムな選択、事前定義済みパターン、および/またはコンテンツを再生するために使用される再生デバイスの予想されるタイプなどの他の要因、および他の同様の要因に基づいて行うことができる。
【0064】
識別子または予約済みセクタがその部分の前に組み込まれない場合、プロセス720はステップ738へ進む。あるいは、識別子または予約済みセクタが組み込まれる場合、ステップ730に入り、識別子が生成される。いくつかの例では、その識別子はGUID、および/またはビットまたはバイトの他の識別可能なパターンである。例えば、識別子は、選択されたコンテンツ部分の前の1つまたは複数のセクタを満杯にするために複数回繰り返されるGUIDであってよい。さらに、例えば、1つまたは複数のブランクまたはブラックフレームまたはスクリーンがコンテンツおよび/または識別子と共に組み込まれる。
【0065】
ステップ732において、コンテンツは識別子を組み込むように修正され、および/または予約済みセクタがコンテンツに組み込まれ、および/またはコンテンツと共に埋め込まれる。この組み込みは、コンテンツの選択された部分の前に識別子および/または予約済みセクタを単純に挿入すること、リンキングブロック(複数可)を作成すること、ボーダーを作成すること、ゾーンを作成すること、および/または他の同様の組み込みを含んでよい。上述のように、識別子および/または予約済みセクタの組み込みおよび/または埋め込みは、識別子(複数可)および/または予約済みセクタ(複数可)を、光ディスクなどの媒体に書き出されるコンテンツの一部または全部を表すイメージファイルに埋め込むことを含んでよい。
【0066】
ステップ734において、そのコンテンツ部分および識別子が記録および/またはバッファリングされる。例えば、そのコンテンツ部分および識別子は、イメージファイルの一部としてバッファリングされ、バッファリングが完了すると、それらは、記録デバイスに伝達することができ、および/またはリモートユーザへ記録のために配布できる。ステップ734の後、プロセスはステップ744へ進む。ステップ744において、プロセスは、さらに追加および/または組み込むべきコンテンツがあるかどうかを判定する。それ以上のコンテンツがある場合、プロセスはステップ724へ戻る。一部の実施形態では、メディアコンテンツ内に、識別子が組み込まれるロケーションのマッピングがさらに提供される。あるいは、プロセスが終了し、修正されたコンテンツ(メディアコンテンツなど)が媒体に記録され、他のデバイスに記録のために伝達され、および/または1つまたは複数のリモートユーザに(例えば、分散ネットワークを介して)配布できる。例えば、識別子および/または予約済みセクタが組み込まれた修正されたメディアコンテンツを含むイメージファイルが完成する。このメディアイメージは、この後、記録および/または配布できる。
【0067】
ステップ726に戻って、識別子または予約済みセクタがその部分の前に組み込まれない場合、プロセス720はステップ738へ進み、そこで、そのコンテンツ部分が記録および/またはバッファリングされる。ステップ740において、識別子または予約済みセクタがコンテンツ内の、ステップ724で選択されたコンテンツ部分の後に組み込まれるかが判定される。識別子または予約済みセクタがその部分の後に組み込まれる場合、プロセス720はステップ742へ進み、そこで、メディアコンテンツは、識別子および/または予約セクタが生成され、コンテンツ内の選択されたコンテンツ部分の後に組み込まれるように修正される。ステップ742の後、プロセスはステップ744へ進み、さらに追加および/または組み込むべきコンテンツがあるかを判定する。ステップ740に戻って、識別子または予約済みセクタが組み込まれないと判定された場合、プロセスはステップ744へ進み、さらに追加および/または組み込むべきコンテンツがあるかを判定する。
【0068】
プロセス720は、コンテンツ所有者、供給者、および/または配布者がコンテンツ内の、エラーコンテンツが組み込まれてよい1つまたは複数の位置を定義できるようにする。予約済みセクタおよび/または識別子に基づいて、エラーデータは、コンテンツが書き込まれる時、および/または伝送される時にコンテンツへ組み込むことができる。これにより、識別子および/または予約済みセクタが組み込まれた修正されたコンテンツは、許可および/または認証された宛先へ配布できるようになる。さらに、一部の実施態様では、上述のように、エラーコンテンツは、識別子および/または予約済みセクタのそれぞれごとにコンテンツに組み込まれる必要はない。1つまたは複数の識別子および/または予約済みセクタが選択できて(例えば、ランダムに選択する)、エラーデータは、選択された1つまたは複数の予約済みセクタおよび/または識別子に応じて組み込むことができる。
【0069】
ステップ724におけるコンテンツの一部分の選択は、一部の実施形態では、重要な遷移、シーンの中断、および/または他の特殊な遷移が起こるコンテンツ部分に制限される。いくつかの例では、デジタルビデオコンテンツ(例えば、映画)については、遷移は、映画コンテンツの先頭の前、映画コンテンツの末尾の後、後書きまたは前書きコンテンツの前、後書きコンテンツの後、および/または他の同様の遷移の前または後に行われてよい。しかし、他の実施態様では、予約済みセクタおよび/または識別子を映画コンテンツ内の、例えば、シーンの変化で、イントラピクチャフレーム(Iフレーム)またはコンテンツ内の他の同様のロケーションの前に組み込むことができる。エラーデータの挿入および/またはロケーションは、一部の実施形態では、予想される再生デバイスによって少なくとも部分的に指示できる。そのため、識別子および/または予約済みセクタの選択は、期待される再生デバイスに依存する可能性があり、その場合、一部の再生デバイスは限られた機能を有する可能性があり、そのため、エラーデータは、そのようなエラーデータがコンテンツの再生を妨害しないポイントでの組み込みに制限される。
【0070】
ビデオ後書きまたはビデオ映画のタイトルなどのコンテンツの作者、配布者および/または制作者は、予約済みセクタを挿入し、および/またはエラーデータまたはブロックをビデオコンテンツに組み込んで、その予約済みセクタまたはエラーデータがコンテンツ内のメニューシステムによってアクセスされないようにすることができる。そのため、これらの部分はメニュー内で参照されないので、再生デバイスは一般的にこれらの部分にアクセスしない。追加または代替で、エラーデータまたは不良ブロックで部分的に満たした、または満杯にしたコンテンツの別の断片または部分(例えば、ビデオの一部分)を、例えば、媒体の中間にあるイメージファイルまたはコンテンツストリームに挿入することができるが、この場合、この断片または部分は、一般的には、メニューから、または再生デバイスによって直接にアクセスすることはできない。
【0071】
上記で紹介されたように、一部の実施形態では、コンテンツ提供者によって、1つまたは複数のブランクまたはブラックフレームを識別子、識別子に近いものとして、および/またはコンテンツの予約済みセクタの一部としてコンテンツストリームの中に組み込むことができる。エラーデータの組み込み時、エラーデータを組み込むときに識別子、予約済みセクタおよび/またはブラックスクリーンが使用できる。一部の実施形態では、予約済みセクタの一部または全部、または予約済みセクタ内のデータの一部または全部が、誤ったECCデータなどのエラーデータで置き換えられる。
【0072】
一部の実施形態では、エラーデータの一部または全部を媒体の事前定義された部分に組み込むことができる。媒体は、媒体の1つまたは複数の部分が、エラーデータを受信するように事前に選択された状態で、エラーデータを含んだ状態で、および/または物理的に変更された状態で製造および/または構成できる。図8は、光ディスクなど(例えば、DVD、CD、または他の同様の媒体)の媒体820の単純化されたブロック図を示している。媒体820は、コンテンツが書き込めるデータ部822、および制御エリア824を備えている。図8において、媒体820は、媒体の内側の半径に位置付けられている制御エリア824と共に示されている。しかし、制御エリアは、実質的には任意のエリアに位置付けることができ、媒体上で分散および/または分割されてよい。一部の実施形態では、制御エリアは、通常は記録デバイスによってアクセスできないエリアである。既存の媒体は、典型的には、書き込みのためにアクセスできない同様の制御エリアを有する。制御エリアは、1つまたは複数のメニュー、パラメータ、暗号鍵、許可情報、通し番号、および/または他の同様のデータを含むことができる。
【0073】
データ部822は、1つまたは複数の事前定義済みエリア826をさらに含む。これらのエリアは、エラーデータが組み込まれる部分を示し、エラーデータを、事前定義済みエリア826に隣接して、および/またはその中に組み込むことができることを表す識別子であってよく、すでにエラーデータを含んでいてよく、結果としてエラーまたは他の同様の状態、および/またはその組み合わせの状態になるように物理的に変更されてよい。1つまたは複数の事前定義済みエリア826は、一部の実施態様では、媒体が認識されるようにし、および/または、例えば、データ部822へのコンテンツのコピーを可能にするための媒体の認証で媒体が使用されるようにするパターンを定義できる。例えば、パターンは、媒体が特定され、および/または認証されるようにする媒体の署名として定義できる。
【0074】
図9は、光ディスク820および/または他の媒体などの媒体を製造および/または配布するときに使用するプロセス920の単純化された流れ図を示している。ステップ922において、識別子、エラーデータ、物理的に変更される、などを含むための媒体の1つまたは複数の部分またはエリアが選択される。一部の実施態様では、この選択は、選択されたエリアを媒体の少なくともデータ部822上でランダムに分散させるランダムな選択である。ステップ924において、媒体のマッピングが生成される。このマッピングは、少なくとも、選択されたエリアのロケーションを特定する。ステップ926において、媒体が型押しされる、または、そうでない場合、選択されたエリアを備えて作成される。ここでも、選択されたエリアは、選択されたエリアに型押しされる識別子を含むことができ、選択されたエリアに型押しされるエラーデータを含むことができ、型押し中に物理的に変更することができ(例えば、これらのエリアにデータを書き込めないようにするために)、および/または選択されたエリアを指定または定義するときに他の同様の処理が使用できる。いくつかの例では、媒体にマッピングがさらに型押しされ、データエリア822および/または制御エリア824に型押しできる。
【0075】
プロセス920によって作成された媒体はエラーデータを組み込み、および/またはエラーデータを組み込める媒体上のエリアを特定する。一部の実施形態では、製造者は単一の媒体を型押しし、その後、選択されたエリアの異なるパターンを有する別の媒体を作成するためにプロセス920を繰り返す。あるいは、製造は、同じパターンを有する複数の媒体を生成し、その後、他の媒体を作成するためにプロセス920を繰り返すこともできる。例えば、製造者は、媒体のそれぞれが選択されたエリア826の第1のパターンを有する第1の複数の媒体(例えば、第1の500個のDVD)を生成することができる。その後、製造者は、第2のパターンを生成し、第2の複数の媒体(例えば、第2の500個のDVD)を型押しし、その後、選択されたエリアの変化に合わせて第3、第4、および実質的に任意の数のパターンの生成を続けることができる。媒体を生成するために多数のパターンが使用できる。配布時、媒体は異なるエンティティに分散され、事実上、同じパターンの媒体が分散される。
【0076】
図10は、一部の実施形態による、媒体820などの媒体にコンテンツを書き込むプロセス1020の単純化された流れ図を示している。ステップ1022において、媒体がドライブに入っているか、および/またはアクセス可能であるかが判定される。媒体がアクセス可能でない場合、ステップ1024でエラーが生成される。あるいは、ステップ1026に入り、そこで、プロセスは、媒体が1つまたは複数の事前定義済みエラーまたは不良エリアを含んでいるかを判定する。一部の実施形態では、媒体は、媒体が事前定義済みエリアを含むことを示すマッピングが存在するかを判定するために評価される。追加または代替で、媒体の一部または全部が、媒体が事前定義済みエリアを含むかを判定するために評価される。媒体が事前定義済みエリアを含まない場合、コンテンツの書き込みは、1つまたは複数の他のプロセス、例えば、プロセス220に従って実施される。
【0077】
媒体が事前定義済みエリアを含む場合、プロセス1020はステップ1030へ進み、媒体のマッピングにアクセスする。ステップ1032において、1つまたは複数の事前定義済みエリアが、マッピングにより、および/または媒体を評価することにより特定される。ステップ1034において、媒体に書き込まれるコンテンツがアクセスされ、および/または受信される。ステップ1036において、書き込みデバイスは、例えば、コントローラの指示どおりにコンテンツの書き込みを開始する。一部の実施形態では、ステップ1036は、コンテンツが、エラーデータが組み込まれる1つまたは複数の識別子および/または予約済みセクタを含んでいるかを判定するためにコンテンツを、図2のプロセス220で実行されるように解析することを含む。ステップ1040において、コンテンツの媒体への書き込み中に事前定義済みエリアが検出されるかが判定される。事前定義済みエリアは、やはり、一般的にはマッピングに基づいて認識され、コンテンツの媒体への書き込み中に、事前定義済みエリアに達する前に予測できる。書き込み時、事前定義済みエリアが検出されない場合、プロセスは、ステップ1042で、媒体へのコンテンツの書き込みを続ける。ステップ1044において、さらに書き込むべきコンテンツがあるかが判定される。さらに書き込むべきコンテンツがない場合、プロセスは終了する。あるいは、さらに媒体に書き込むべきコンテンツがある場合、プロセスはステップ1040に戻る。
【0078】
ステップ1040に戻ると、媒体の事前定義済みエリアが検出される場合、ステップ1046に入り、そこでコンテンツの書き込みが中止され、事前定義済みエリアはスキップされる。あるいは、事前定義済みエリアの一部または全部にエラーデータが書き込まれる。ステップ1050において、プロセスは、事前定義済みエリアの後にコンテンツの書き込みを続ける。プロセスはステップ1044に戻り、媒体にさらに書き込むべきコンテンツがあるかを判定する。
【0079】
一部の実施形態では、例えば、無許可のコピーからコンテンツを守るための保護を提供する。さらに、一部の実施態様では、困難であるか、または多くのコピー方法で、例えば、ファイルごとのコピー、セクタごとのコピー、もしくはビットごとのコピー、および他のコンテンツのコピー方法、しかしそれらに限定されない方法ではコピーできない光ディスクなどの媒体が作成できるようになっている。一部の実施態様で提供される保護は、不良部分を作成すること、ならびに/またはエラーデータをコンテンツ内および/もしくは媒体上に組み込むことを含む。その結果、コピーが試みられると、エラーが検出され、多くの例でエラーおよび/またはコピーの失敗が発生する。
【0080】
一部の実施態様では、コンテンツ供給者は、1つまたは複数の識別子または事前定義済みセクタを含むコンテンツを媒体配布者および/または製造者に提供する。これらの識別子の使用は、実質的に任意のイメージファイルおよび/またはフォーマットで利用できる。例えば、識別子は、CDディスク、DVDディスクおよび/または他の同様のディスクで使用できる。例えば、識別子は、Blu−rayディスクおよびHD−DVDディスクおよび/または他のフォーマットで利用できるが、これらのフォーマットが一般的にDVDイメージファイルと類似のイメージファイルを有し、一般的に、より多いセクタを有したより大きいファイルであるためである。識別子に基づいて、書き込みデバイスは、書き込み中にエラーデータおよび/または不良ブロックをコンテンツ内および/または媒体上に作成するために実質的に任意の手法を用いることができる。さらに、エラーデータの組み込みは、光ディスクだけではなく、メモリスティック、フラッシュメモリ、および実質的に任意の他の関連メモリなどの他の記録可能な媒体で使用できる。
【0081】
本明細書で開示される発明は、特定の実施形態およびその応用例を用いて説明されているが、当業者は、「特許請求の範囲」に記載される本発明の範囲から逸脱することなく、そこに様々な修正および変形を行うことができる。
【技術分野】
【0001】
優先権の主張
本出願は、2006年9月6日に出願された米国特許仮出願第60/824,748号明細書の利益を主張する、2007年9月4日に出願された米国特許出願第11/849,898号明細書の継続出願であり、該出願明細書の全文が参照により本明細書に組み込まれるものとする。
【0002】
本発明は一般にはデジタルコンテンツに関し、より詳細には、デジタルコンテンツの保護に関する。
【背景技術】
【0003】
デジタルデータの使用はここ2、30年の間に格段に増加し、さらに増加し続けている。あらゆる種類のデジタルデータが様々なシステム、ネットワークおよび媒体を介して伝送、伝達および/または保管される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許出願公開第2005/0193313号明細書
【特許文献2】米国特許出願公開第2005/0185926号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
多くの場合、デジタルデータは高価なデータであり、そのような高価なデータの所有者および配布者は、データの保護を利用することを好む。デジタルデータに保護を適用する方法は、暗号化、スクランブル、他の同様の保護方法を含めて多数ある。しかし、コンテンツに対する他または追加の保護方法が所望されている。
【課題を解決するための手段】
【0006】
本発明は、デジタルコンテンツに保護を与える際に使用する方法、装置、システムおよび媒体をプロビジョニングすることにより、上述の要件および他の要件に有利に対処する。
【0007】
一部の実施形態では、コンテンツを保護する際に使用するための、エラーデータ用に予約されたセクタを有するメディアコンテンツにアクセスし、その予約済みセクタを探索して特定し、エラーデータにアクセスし、メディアコンテンツ内の予約済みセクタの少なくとも一部分をそのエラーデータで置き換えて、そのメディアコンテンツおよびエラーデータを媒体に記録する方法を提供する。
【0008】
同様に、一部の実施形態では、コンテンツを保護する方法を提供する。これらの方法は、メディアコンテンツにアクセスし、そのメディアコンテンツ内の、エラーデータが組み込まれる複数のロケーションを特定し、複数の隣接セルの連結(series)を含むエラーデータを、特定されたロケーションのそれぞれに組み込み、再生デバイスに、メディアコンテンツ内に組み込まれたエラーデータの複数の隣接セルの連結のそれぞれを再生中にスキップするように指示するナビゲーションコマンドをナビゲーション内に定義し、そのメディアコンテンツ、エラーデータおよびナビゲーションを媒体に記録する。
【0009】
一部の実施形態では、コンテンツを保護する方法を提供する。これらの方法は、メディアコンテンツにアクセスすることと、そのメディアコンテンツを評価することと、そのメディアコンテンツ内の、識別子が組み込まれる複数のロケーションを特定することと、エラーデータが組み込まれてよいロケーションとして各ロケーションを指定するように構成された事前定義済み識別子を、そのメディアコンテンツ内の各特定されたロケーションに組み込むことを含むメディアコンテンツを修正することと、その修正されたメディアコンテンツを伝達することとを行う。
【0010】
さらに別の実施形態では、記録可能な媒体を作成する際に使用する方法を提供する。これらの方法は、記録可能な媒体を提供することにより媒体を作成し、その媒体上のセクタを選択し、エラーデータを受信するように構成された予約済みセクタを作成するために事前定義済みデータをその選択されたセクタに書き込み、エラーデータを受信するために予約されたセクタのマッピングを生成し、そのマッピングを媒体に書き込む。
【0011】
他の実施形態では、記録可能な媒体を提供する。これらの媒体は、メディアコンテンツを保管するように構成された媒体の第1の領域と、その第1の領域内の、複数のセクタのそれぞれを予約済みセクタと指定するように構成された事前定義済みデータが事前に記録された複数のセクタと、予約済みセクタの媒体上のロケーションを特定するマッピングとを含む。
【0012】
本発明の特徴および利点は、以下の本発明の詳細な説明、および本発明の原理が利用される例示的な実施形態を示した添付の図面を参照することにより、よりよく理解できるであろう。
【0013】
本発明の態様、特徴、および利点は、図面と関連付けて提示される、より詳細な後述の説明からさらに明らかになろう。
【図面の簡単な説明】
【0014】
【図1】一部の実施形態による、コンテンツを保護するときに使用するプロセスの単純化された流れ図である。
【図2】メディアコンテンツなどのコンテンツに保護を提供するときに使用するプロセスの単純化された流れ図である。
【図3】一部の実施態様による、エラーデータをコンテンツに組み込むプロセス例の単純化された流れ図である。
【図4】コンテンツを媒体に書き込むシステムの単純化されたブロック図である。
【図5】一部の実施形態による、コンテンツを媒体に書き込むときに図4のシステムに制御を実施するためのプロセスの単純化された流れ図である。
【図6】コンテンツを媒体に書き込むときに書き込みコマンドを受信したことに応答して書き込みドライブまたはデバイスによって使用されるプロセスの単純化された流れ図である。
【図7】1つまたは複数の識別子および/または予約済みセクタをコンテンツ内に定義および/または組み込むときに使用するプロセスの単純化された流れ図である。
【図8】光ディスクなどの媒体の単純化されたブロック図である。
【図9】媒体を製造および/または配布するときに使用するプロセスの単純化された流れ図である。
【図10】図8の媒体などの媒体にコンテンツを書き込むプロセスの単純化された流れ図である。
【発明を実施するための形態】
【0015】
図面をいくつかの視点から説明するに当たって、対応する参照文字は対応する構成要素を表す。当業者は、図面内の要素は単純かつ明快であるように示されているのであって、必ずしも縮小比に合わせて描かれているのではないことを理解できよう。例えば、図面内の一部の要素の寸法が、本発明の様々な実施形態の理解を助けるために、他の要素に比べて誇張されて大きく描かれることがある。また、一般的であるが、よく理解されている要素で、商業的に実現可能な実施形態において有用または必要な要素は、本発明の様々な実施形態が分かりにくくならないように、多くの場合、描かれない。
【0016】
本発明の一部の実施形態では、媒体に記録される、および/または記録できるコンテンツに保護を提供する。その保護は、少なくとも部分的に、コンテンツの無許可のコピーを制限、禁止および/または防止する。
【0017】
図1は、一部の実施形態による、コンテンツを保護するときに使用するプロセス120の単純化された流れ図を示している。ステップ122において、このプロセスは、マルチメディアコンテンツ、ならびに/または再生および/もしくは表示できる他のそのようなデジタルコンテンツなどのコンテンツを取り出す、または受信する。ステップ124において、そのコンテンツが評価され、そのコンテンツ内で1つまたは複数の識別子、ポイント、および/または予約済みセクタ、またはコンテンツの一部分が探索される。識別子は、実質的には、ポイント、セクタ、および/またはコンテンツの一部分を特定する任意の識別子であってよい。ステップ126において、エラーデータまたはコンテンツが取り出され、受信され、および/または生成される。ステップ130において、エラーデータが、ステップ124で探索された識別子の1つまたは複数に隣接したコンテンツ内に埋め込まれる、および/または組み込まれるか、および/またはその識別子の1つまたは複数に取って代わる。
【0018】
一部の実施形態では、多くの要因、例えば、識別子の数、エラーデータの数および/または量、受信されたコンテンツのサイズおよび/または量、コンテンツが配信された回数、および/または他の同様の要因もしくは要因の組み合わせなどに応じて、1回または複数回、ステップ124、126および130を繰り返す。一部の実施形態では、エラーデータは、光ディスクなどの媒体に書き込まれるコンテンツの一部または全部を表すイメージファイルに組み込まれる、および/または埋め込まれる。ステップ132において、エラーデータを含む修正されたコンテンツおよび/またはイメージファイルがコンピュータ可読媒体、例えば、ポータブル記憶媒体(例えば、デジタル多用途ディスク(DVD)、コンパクトディスク(CD)、および/または他のポータブル記憶媒体)、フラッシュメモリ、メモリスティックまたはカード、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、および/または他の同様のメモリもしくはメモリの組み合わせなどに書き込まれる、または記録される。
【0019】
コンテンツに組み込まれたエラーデータは、コンテンツおよび/または媒体の無許可のコピーに対して多少の保護を提供することができる。一部の実施形態では、このエラーデータは、コンテンツの誤ったコピーを作成できる、ならびに/またはエラー、および/もしくはコピーを実行するデバイスによって検出され、その結果、コピーを実行するデバイスがコピーを停止させる致命的エラーを作成することができる。例えば、一部の実施態様では、このエラーデータは、1つまたは複数の誤った、または不良エラー訂正コード(ECC)データおよび/またはブロックを変更すること、または提供することを含むことができ、修正されたコンテンツが不良または誤ったECCデータおよび/またはブロックを含むようにすることができる。不良ECCデータは、コンテンツのコピーを困難にする、および/またはコンテンツのコピーを防止する。コンテンツがコピーされないような保護を提供するために、他の同様のエラーデータをコンテンツに追加および/または代わりに組み込むことができる。
【0020】
図2は、一部の実施形態による、メディアコンテンツなどのコンテンツに保護を提供するときに使用するプロセス220の単純化された流れ図を示している。ステップ222において、コンテンツが取り出される、および/または受信される。ステップ224において、1つまたは複数の識別子および/または予約済みロケーションまたはセクタを探索するために、そのコンテンツが解析および/または検索される。ステップ226において、予約セクタおよび/または識別子がコンテンツの一部分またはセクション内にあるかが判定される。識別子または予約セクタが特定されると、オプションのステップ230に入ることができ、そこで、プロセス220は、エラーデータがコンテンツに組み込まれるべきかを判定する。オプションのステップ230は、一部の実施形態では、修正されたコンテンツ内のエラーデータの出現および/またはロケーションを変更するために実施され、その結果、一部の実施態様では、コンテンツ内のエラーデータのロケーションがランダムになる。例えば、ステップ230を組み込むことにより、プロセス220は、コンテンツおよび/またはイメージファイルにエラーデータを組み込むために識別子および/または予約済みセクタの一部をランダムに選択することができる。コンテンツストリームおよび/またはイメージファイル内のエラーデータのロケーションを変化させることにより、エラーデータが媒体上のどこにあるかを探索すること、および/または予測することが困難になり、保護されたコンテンツをコピーするときに困難さが増す。
【0021】
エラーデータが組み込まれることがステップ230で判定された場合、プロセス220はステップ232へ進み、そこでエラーデータが生成され、取り出され、および/または受信される。ステップ234において、エラーデータがコンテンツに組み込まれる、および/または埋め込まれる。ステップ236において、エラーデータがメモリまたは媒体に記録される。ステップ238において、コンテンツストリーム内および/または媒体上のロケーションが特定される。一部の実施態様では、エラーデータのロケーションはバッファまたは他の一時ストレージに記録または維持される。ステップ240において、プロセスは、さらに評価すべき、および/またはさらに書き出すべきコンテンツがあるかを判定する。コンテンツをさらに書き出さなければならない場合、プロセスはステップ224へ戻ってコンテンツの解析を続ける。あるいは、プロセスはステップ250へ進む。
【0022】
ステップ226へ戻ったとき、予約済みセクタおよび/または識別子が検出されない場合、プロセスはステップ242へ進み、そこで、コンテンツのセクタまたは一部分がメモリおよび/または媒体に記録される。ステップ242の後、プロセスはステップ240へ進み、さらに評価すべき、および/またはさらに書き込むべきコンテンツがあるかどうかを判定する。同様に、ステップ230において、エラーデータがコンテンツに組み込まれないと判定された場合、プロセス220はステップ244へ進み、そこで、該当のセクタがコンテンツストリームから除去される、または媒体に記録される。一部の実施態様では、プロセスはステップ238へ進み、コンテンツ、イメージに組み込まれた、および/または媒体に書き込まれた予約済みセクタの1つまたは複数のロケーションを書き留める、または記録する。ステップ238の後、プロセスはステップ240へ進み、さらに評価すべき、および/またはさらに書き込むべきコンテンツがあるかどうかを判定する。
【0023】
ステップ250において、プロセスは、ステップ238で特定されたロケーションを使用することにより、ファイル、ファイル構造、マッピングおよび/またはナビゲーションを生成および/または変更する。ナビゲーションは、媒体に書き込まれたコンテンツの中をナビゲートするとき、再生デバイスを部分的に援助する。ステップ252において、プロセス220はナビゲーションをイメージファイルに組み込み、および/またはナビゲーションをメモリまたは媒体に記録する。これにより、再生デバイスは、組み込まれたエラーデータを収めている媒体からコンテンツを再生するとき、媒体上のコンテンツの再生を部分的に調整するために、媒体上のナビゲーションおよび/またはマッピングにアクセスできるようになる。いくつかの例では、ナビゲーションは、エラーデータにアクセスしないようにするために、および/またはエラーデータをスキップするために再生デバイスによって使用される。一部の実施形態では、再生中にエラーデータにアクセスしないようにするために、不良ブロックを含むセルがプログラムチェーン(PGC)の先頭の近くにある場合、そのセルをスキップするために、セルリンクコマンドがPGCプリコマンドアレイに挿入される。追加または代替で、不良ブロックがPGCの末尾の近くにある場合、不良ブロックセルをスキップするために、不良ブロックセルの直前のセルにセルコマンドを追加できる。さらに、いくつかの例では、順方向へスキャンを実行する場合、または逆方向へスキャンを実行する場合にエラーデータを回避するために、エラーデータ近傍のスキャニングが使用不可にされてよいように、UOP、NAVパック内で。さらに、一部の実施態様では、余分な、ランダムな無効MPEGデータをエラーデータブロックの近傍に追加して、デコーディングまたは再エンコーディングが無効なMPEGデータで大抵は失敗するようにすることができる。他の例では、参照によって本明細書に組み込まれる特許文献1で説明されるようなDSVデータパターンがナビゲーション内で使用できる。
【0024】
一部の実施形態では、コンテンツがアクセスされている、および/または受信されている間、およびコンテンツが実際に媒体に書き込まれている間、プロセス220が実施される。媒体へのコンテンツの記録中にコンテンツにエラーデータを組み込むことにより、一部の実施形態では、部分的に、コンテンツ内および媒体上へのエラーデータの組み込みまたは配置の変更および/またはランダム化を支援することができる。したがって、異なる媒体は異なるエラーデータを含むことができ、および/またはそのエラーデータはコンテンツ内および/または媒体上の異なるロケーションに配置することができる。ナビゲーションも同様に、例えば、コンテンツストリーム内および/または媒体上のエラーデータのランダムな配置に基づいて媒体ごとに区別することができる。
【0025】
エラーデータを分散すると、保護を迂回して、正当な権限を持たずにコンテンツをコピーしようとする者は、普通は、エラーデータが組み込まれている可能性のある場所を特定するテンプレートを使用することができないので、部分的にデータの保護を強化することができる。そのため、保護されたコンテンツをコピーしようとする各人は、コピーを試みる前にエラーデータの位置を正確に突き止めるために媒体および媒体上のコンテンツを詳細に評価しなければならない。
【0026】
一部の実施態様では、エラーデータは、ビデオタイトルセットのプログラムチェーン(PGC)内に組み込まれた、複数のエラーデータセルの連結を含むことができる。セルの単一の連結またはセルの複数の連結が単一のPGCに組み込まれてよく、複数のPGCおよび/または複数のビデオタイトルセットは、それぞれ、エラーデータセルの1つまたは複数の連結を含むことができる。さらに、エラーデータは、実際の誤ったコンテンツ(例えば、不良ECCデータ)の前および/または後に遷移段階を含むことができる。遷移は、エラーデータの前および/または後にバッファまたはバッファ域を備えることができる。例えば、エラーデータは、誤ったデータの1つまたは複数のエラーセルの前にバッファデータの1つまたは複数のセルを含むことができ、いくつかの例では、その1つまたは複数のエラーセルの後にバッファデータの1つまたは複数のダミーセルまたはバッファセルを続けることができる。バッファデータは、典型的には、再生中にエラーを発生させることなく再生デバイスによってアクセスおよび/または再生できるコンテンツを含む。例えば、バッファセルは、ビデオコンテンツの1つまたは複数のブラックフレームを含むことができる。バッファセルおよびエラーセルは両方ともコンテンツナビゲーションによって参照され(例えば、それぞれがセルIDおよびビデオオブジェクトIDを割り当てられている)、ナビゲーションは、再生デバイスに、これらのセル、および/またはこれらのセルを含むセクタをスキップするようにさらに指示する。これらのバッファセルは、参照によって本明細書に組み込まれる、Basileらに帰属する特許文献2で説明されている単一のエラーデータとは区別され、さらにナビゲーションは、エラーデータを含む単一のセルにアクセスしないのではなく、エラーデータをスキップするように指示する。
【0027】
エラーセルの前および/または後にバッファセルまたはバッファデータを組み込むことにより、再生中の意図しないエラーは限られる、および/または回避ことが可能である。一部の再生デバイスは、例えば、ビデオコンテンツの再生中、順方向へスキャンし、再生されると予想されるコンテンツをキャッシュする。その結果、一部の再生デバイスは、実際には、エラーセルをスキップするコマンドを再生ナビゲーションから受信する前に、エラーセルから誤ったデータをキャッシュする可能性がある。(セルの再生に関して)エラーセルの前に1つまたは複数のバッファセルを組み込むことにより、再生装置は、エラーデータをスキップするためのスキップコマンド(1つまたは複数のバッファセルおよびエラーセルをスキップするように再生装置に指示する)を受信するための再生装置の時間を見越してバッファセルのコンテンツをキャッシュする。再生デバイスが再生デバイス内でエラーを発生させないブランクデータ(例えば、ブラックスクリーンビデオコンテンツ、セル内の1つまたは複数のスチルVOBUなど)をバッファリングしたので、再生デバイスはエラーデータをスキップすることができ、エラーを体験することはない。しかし、無許可のコピーは、上述および後述のように、バッファセルまたはエラーセルをスキップすることはなく、コンテンツをコピーするときにエラーが発生する。
【0028】
上記で紹介され、さらに以下で説明されるように、エラーデータは、コンテンツ内の多数でありうるロケーションに配置できる。さらに、エラーデータが組み込まれるコンテンツ内のロケーションは、少なくとも部分的にコンテンツの保護をさらに促進するために変更できる(例えば、ランダムな配置)。同様に、エラーセルの数および/またはエラーデータを定義するバッファセルの数も、エラーデータがセルを介して実装されるとき、変更することができる。さらに、いくつかの例では、バッファセルの数はランダムに変更することができ、エラーセルの数もランダムに変更することができる。追加または代替で、バッファセルとの相対的なエラーセルの配置が変更できる。典型的には、エラーデータはバッファデータから始まり、バッファデータで終り、誤ったデータはバッファデータ全体に配置される、および/または分散される。例えば、1つまたは複数のバッファセルが、エラーデータの連結の先頭に配置され、1つまたは複数のバッファセルがその連結の末尾に配置される。一部の実施態様では、エラーセルおよび/またはバッファセルの数に制限がある。例えば、一部の規格および/または一部の再生デバイスでは、エラーセルおよび/またはバッファセルの数は、PGCごとに255個のセルに制限される。さらに、エラーデータのランダム化は、ランダムな数のバッファスチルVOBUをバッファセル内に取り込むこと、および/または作成すること、不良ECCブロックを開始するランダムな数の開始論理ブロック番号(セクタ番号)を作成すること、ランダムな数の不良ECCブロックを1つまたは複数のエラーセル内に作成すること、1つまたは複数のエラーセルをエラーデータ内にバッファセルと相対的にランダムに位置付けること、および他の同様の変更および/または変更の組み合わせを含むことができる。使用されるバッファデータおよび/またはバッファセルの量は、エラーデータの量またはエラーセルの数、コンテンツにアクセスすると予想される再生デバイスなどの多数の要因、および/または他の同様の要因に応じて異なってよい。例として、一部の実施態様では、バッファデータはエラーデータの量の約4倍を含むことができ、いくつかの例では、再生、検索および/またはスキャン中の誤ったデータへのアクセスを制限するときに再生デバイスに保護を提供するために、エラーデータの両側、および/またはエラーデータの先頭および末尾に1メガバイトのデータを含むことができる。
【0029】
図3は、一部の実施態様による、エラーデータをコンテンツに組み込むプロセス例320の単純化された流れ図を示している。例えば、プロセス320は、図2のプロセス220のステップ232および/または234の少なくとも一部として実行できる。ステップ322において、ビデオタイトルセットが特定され、そのビデオタイトルセット内でPGCが特定される。ステップ324において、特定されたPGCに組み込む合計セルの数が特定される。セルの数は、事前定義された数であってよく、外部ソースによって指定でき、ランダムに決定でき、現在の状態および/もしくはコンテンツ、期待される1つまたは複数の再生デバイス、コンテンツが書き込まれる媒体、または他の同様の根拠に基づいて選択できる。ステップ326において、エラーデータに組み込むエラーセルの数が決定される。やはり、エラーセルの数は、事前定義することができ、外部ソースによって指定でき、ランダムに決定でき、現在の状態および/もしくはコンテンツ、期待される1つまたは複数の再生デバイス、コンテンツが書き込まれる媒体、または他の同様の根拠に基づいて選択できる。ステップ330において、エラーデータを定義するセルの合計数内の1つまたは複数のエラーセルの配置が決定される。ステップ330は、多くの実施形態で、少なくとも1つのバッファセルがエラーセルの前のエラーデータに組み込まれ、多くの場合、少なくとも1つのバッファセルがエラーセルの後に続くという事実により制限される。
【0030】
再生のためのナビゲーションは、一部の実施形態では、再生デバイスにエラーデータ、および/またはエラーデータを含むセクタをスキップさせるスキップコマンドを組み込み、それは、いくつかの例で、バッファセルおよびエラーセルのスキップを含むことができる。しかし、上で説明したように、一部の再生デバイスは、コンテンツが滑らかに再生される前にコンテンツをキャッシュする。このような再生デバイスは、スキップコマンドを受信する前に1つまたは複数のバッファセルのいくつかをキャッシュすることができるが、このキャッシュされたバッファセルのコンテンツは、スキップコマンドが受信されると、破棄できる。
【0031】
いくつかの例では、ナビゲーションは、再生の順序を定義する低レベルのナビゲーションコマンドを含む。追加または代替で、ナビゲーションは、再生デバイスにバッファセルおよびエラーセルをスキップするように、および/またはセル間にリンクを提供するように指示するセルコマンド(複数可)またはPGCコマンド(複数可)を含むことができる。これらのスキップコマンドは、ナビゲーションパターンの少なくとも一部を確立する。通常の再生中、スキップコマンドは、PGCコマンド域にセル相互間リンクコマンドを含むことができ、および/またはセルコマンド域にセル相互間リンクコマンドを含むことができる。ナビゲーションは、追加または代替で、検索、高速転送、巻き戻しなどで使用するための、ビデオ検索情報などの検索情報および/またはパラメータの中に組み込むことができる。例えば、高速転送および/または巻き戻しスキャンモードでは、ナビゲーションパック内のエラーデータの近く(例えば、エラーセルの近く)のフラグは、再生デバイスが不良ECCブロックなどのエラーデータを読み取ろうとしたり、および/またはエラーデータをキャッシュしようとしたりしないようにするために、使用不可にされる。
【0032】
多くの例で、コンテンツ中および/または媒体上でエラーデータを分散すると、さらにパターンが提供および/または定義される。このパターンは、媒体を特定するため、および/または媒体の真偽を検証するために追加で使用できる。例えば、エラーデータのパターンは、以下で説明されるように、媒体および/またはコンテンツを他の媒体および/またはコンテンツから区別するウォーターマーク(透かし)、署名、フィンガープリント、または他の識別子として判定され、使用できる。
【0033】
図4は、コンテンツを媒体422に書き込むシステム420の単純化されたブロック図である。システムは、コントローラ424、書き込みデバイスまたはドライブ426、デジタルコンテンツを保管するメモリまたはストレージ428、および通信ネットワーク430を含む。一部の実施態様では、コントローラ424、書き込みドライブ426、メモリ428および通信ネットワーク430は、コンテンツを媒体422に書き込むことができる単一の書き込みデバイス432、例えば、書き込み可能光ディスク(例えば、書き込み可能DVD)、フラッシュメモリおよび/または他の同様の媒体に組み込まれてよい。メモリ428は、内部メモリ、外部メモリ、フラッシュドライブ、または他の同様のメモリであってよい。通信ネットワーク430は、システム構成要素または他の同様の通信ネットワークを結合するシステムバスであってよい。一部の実施形態では、システム420が1つまたは複数の外部デバイスおよび/または分散ネットワーク436(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、衛星ネットワーク、イントラネット、インターネットなど)に接続して、リモートサーバ440、メモリ442および/または他のデバイスと通信できるようにする1つまたは複数のインターフェース434がさらに含まれる。
【0034】
システム420は、プログラムモジュールを採用するハードウェア、ソフトウェア、ならびに/またはハードウェアおよびソフトウェアの組み合わせを使用して実現することができる。いくつかの例では、システム420の一部または全部がコンピュータ、コンピュータシステム、サーバ、および/またはコンピュータ実行可能な命令によって実現できる。コンピュータ実行可能な命令は、単一プロセッサまたはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータのほかにパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサ系またはプログラマブル消費者電子機器なども含むが、それらに限定されない実質的に任意の構成を有する1つまたは複数のコンピュータを稼働させることができ、コンピュータのそれぞれは、1つまたは複数の関連デバイスに適切に結合されてよい。追加または代替で、システムは、一部の機能が、通信ネットワーク430および/または分散通信ネットワーク436などの1つまたは複数の通信ネットワークを介してリンクされるリモートプロセシングデバイスによって実行される分散コンピューティング環境に実装することができる。分散コンピューティング環境では、プログラムモジュール、実行可能コード、データ、コンテンツなどは、ローカルおよびリモート両方のメモリストレージデバイスに置かれてよい。
【0035】
メモリ428、442は実質的に任意のコンピュータ可読媒体および/または媒体の集合であってよく、揮発性および非揮発性媒体、取り外し可および取り外し不可媒体、および/または他のメモリのうちの1つまたは複数を含んでよい。別の例として、コンピュータ可読媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリテクノロジ、内部ハードディスク、CD−ROM、DVDまたは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、ならびに/または実質的に任意の他の媒体、もしくはコンテンツ、実行可能コードおよび/または他の所望の情報を保管するために使用できる媒体の任意の組み合わせなどがあるが、それらに限定されない。通信ネットワーク(複数可)および/または媒体430、436は、一部の実施態様では、コンピュータ可読命令、データ構造体、プログラムモジュール、および/または搬送波または他の転送メカニズムなどの変調データ信号での他のデータを含むことができるが、それらに限定されず、実質的に任意の情報配信媒体を含む。例えば、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体、音響、RF、赤外線および他の無線媒体などの無線媒体、および/またはそれらの組み合わせなどがある。
【0036】
コントローラ424はシステム420に制御を提供し、書き込みドライブ426に、コンテンツをメモリ428、442から媒体422に書き出すように指示する。コントローラは、実質的に任意のプロセッサ、デュアルマイクロプロセッサおよび/または他のマルチプロセッサアーキテクチャ、マイクロプロセッサ、コンピュータ、サーバおよび/または他の同様の制御デバイスによって実現できる。いくつかの例では、コントローラおよび/またはシステム420は、ユーザ制御および/または対話を可能にするユーザインターフェース444(例えば、キーボード、マウスまたは他のポインティングデバイス、音響入力/出力、ディスプレイ、および他のユーザインターフェース)を含む。通信ネットワーク430は、1つまたは複数の通信リンク、ならびに/またはさらに相互接続できる、および/もしくはメモリバス(メモリコントローラがある場合も、ない場合も)、周辺バス、および様々な市販のバスアーキテクチャのいずれかを使用するローカルバスを含むタイプのバス構造であってよい。インターフェース434は、有線および/または無線インターフェースであってよく、ユニバーサルシリアルバス(USB)インターフェース、IEEE 1394インターフェース、パラレルポート、シリアルポート、ゲームポート、赤外線(IR)インターフェースおよび/または他の同様のインターフェースなど、しかしそれらに限定されない実質的に任意の通信インターフェースによって実現できる。
【0037】
リモートデバイス440は、1つまたは複数のリモートサーバ、ワークステーション、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサ系娯楽機器、ピアデバイス、および/または他の一般的なネットワークノードであってよい。分散ネットワーク436による通信は、有線および/または無線(例えば、高周波(RF)、無線忠実度(wireless fidelity)(Wi−Fi)、Bluetooth、および/または他の無線テクノロジ)であってよい。
【0038】
動作時、コントローラ424は、書き込みドライブ426に、マルチメディアコンテンツなどのコンテンツをローカルストレージ428および/またはリモートストレージ442から媒体422に書き込むように指示する。コンテンツが書き出されているとき、コントローラはコンテンツをモニタし、媒体422に書き出す前に、書き込みデバイスにコンテンツを変更するように、および/またはエラーデータを媒体コンテンツに組み込むように指示する。書き込みドライブまたはデバイスは、コンテンツを媒体422に書き出すことができる実質的に任意のデバイス、例えば、記録可能なDVDユニット、記録可能なCDユニット、および/または他の同様の書き込みデバイスでよいが、それらに限定されない。一部の実施形態では、媒体422に書き込まれるコンテンツは、分散ネットワーク436を介してシステム420に配信される。さらに、コンテンツは、エラーデータが組み込まれる1つまたは複数の識別子および/または予約済みセクタとともに受信できる。追加または代替で、媒体422に書き込まれるコンテンツは、ローカルストレージ428から受信することができる。ローカルストレージは、内部メモリ、外部メモリドライブ、および/または他の同様のメモリストレージであってよい。例えば、メモリ428は、ポータブルストレージ媒体を受信するための光ストレージデバイスを含むことができて、コンテンツは、第1のポータブルストレージ媒体からポータブルストレージ媒体422にコピーできる。コンテンツをコピーするとき、いくつかの例では、コントローラ424は、コンテンツのコピーを作成する権限を、例えば、サーバ440にアクセスすることにより、取り出し済みである。
【0039】
図5は、一部の実施形態による、コンテンツを媒体422に書き込むときにシステム420に制御を実施するためのプロセス520の単純化された流れ図を示している。ステップ522において、コントローラは、メディアコンテンツを解析する、または代替の解析デバイスにメディアコンテンツを解析するように指示する。追加または代替で、一部の実施形態では、コンテンツは解析の前に保護解除される。例えば、コントローラは、リモートサーバ440にアクセスして、コンテンツにアクセスしてそのコピーを許可するための暗号化キーまたは他の権限を取り出し、そのキーおよび/または他の権限を使用してコンテンツにアクセスし、解析することができる。ステップ524において、コンテンツの一部分またはセクタが選択される。ステップ526において、コンテンツのセクタが識別子を含んでいるか、またはコンテンツの予約済みセクタとして定義されているかが判定される。コンテンツの一部分またはセクタを評価するとき、1つまたは複数のビット、または一連のビットが、事前定義済みパターンと等しいかが判定される。上記で紹介されたように、識別子は、実質的に任意の識別標識でよい。一部の実施形態では、セクタを予約済みセクタとして認識するために、事前定義された一連のビットまたはグローバル一意識別子(globally unique identifier)(GUID)がそのセクタに含まれてよい。例えば、コントローラは、セクタが事前定義済みGUIDを含むかどうかを判定することができる。
【0040】
コントローラがそのセクタは予約済みセクタであると認識すると、ステップ532に入り、そこで、そのセクタはエラーデータを含むために選択されるべきかが判定される。この選択は、特定されたGUIDまたはパターンに基づいて行うことができ、ランダムな選択は、1つまたは複数の事前定義済みパターン、または他の同様の選択に基づいて行うことができる。セクタの選択を変更することにより、例えば、エラーデータのロケーションが変わるので、エラーデータがどこにあるかを予測することがより困難になり、コンテンツに追加保護が提供される。セクタがエラーデータを含むために選択される例では、プロセスはステップ534に入り、そこで、コントローラは、書き込みドライブ426に、エラーデータをコンテンツストリームに組み込むように指示する。あるいは、ステップ536に入り、セクタは、そのまま単純に書き込まれるか、またはコンテンツストリームから除去される。一部の実施形態では、ステップ534および536は、ステップ532での判定に従って異なる書き込みを行うために、コントローラ424が書き込みドライブまたはデバイス426へ変更された書き込みコマンドまたは異なるコマンドを発行することにより、実行できる。ステップ534および536の後、プロセスはステップ542へ進む。ステップ542において、さらに解析すべき、および/または評価すべきコンテンツがあるかどうかが判定される。それ以上のコンテンツまたはセクタがない場合、プロセスは終了する。あるいは、プロセスはステップ522へ戻り、コンテンツストリームの解析および評価を続ける。
【0041】
ステップ526に戻って参照すると、1つまたは複数のビットまたは一連のビットが事前定義済みパターンと等しくないと判定されると、プロセス520はステップ540に入る。ステップ540において、セクタは、コンテンツストリームからそのまま書き出される。一部の実施形態では、ステップ540はステップ536に類似しており、コントローラが書き込みコマンド(例えば、WRITE10コマンド)を発行する。ステップ534については、書き込みドライブまたはデバイスが他の書き込みコマンド(複数可)と区別することができて、エラーデータの書き込みを正確に実施できる変更または修正された書き込みコマンドを利用することができる。代替または追加で、一部の実施形態では、一部の書き込みデバイスがエラーデータを生成するようにするデータのパターンを伴う書き込みコマンドを発行する。いくつかの例では、そのデータのパターンは、通常はその書き込みデバイスでは受信されないパターンであり、そのデータのパターンにより、書き込みデバイスはエラーを引き起こし、誤ったデータを書き込む。このデータのパターンを書き込みコマンド内で使用することは、例えば、エラーデータを書き込むように指示する特定のコマンドを認識しない可能性がある、および/または修正されたファームウェアを組み込むことができなくて、修正された書き込みコマンドを利用できない一部のレガシ書き込みデバイスで使用できる。ステップ540の後、プロセスはステップ542へ進み、さらに評価すべきデータがあるかを判定する。
【0042】
上記で紹介されたように、識別子は、認識可能なビットまたはバイトの事前定義済みパターンまたはストリング、グローバル一意識別子(GUID)、またはセクタを予約済みセクタと認識できる他の同様の識別子を含むことができる。一部の実施形態では、セクタを満杯にするためにGUIDまたは一連のビットが1回または複数回繰り返され、そのセクタが、エラーデータが組み込まれる、および/または埋め込まれる予約済みセクションとして認識されるようにする。例えば、GUIDは、エラーデータが組み込まれることを指定する識別子として認識される事前定義された値、例えば、16進形式で書かれた「4D 36 E9 65 E3 25 11 CE BF C1 08 00 2B E1 03 18」であってよい。別の例として、一部の実施形態では、セクタ用の2048バイトデータを、セクタが満杯になるまで繰り返される事前定義された128ビットGUIDまたは他のパターンであるように設定することにより、予約済みセクタを表すことができる。コンテンツストリームが2054バイトのセクタを有するイメージファイルを含むいくつかの例では、6バイトの著作権および領域管理情報(CPRMAI)ヘッダは、セクタが予約済みセクタであるかを判定するとき無視できる。
【0043】
媒体422へ書き込まれる、および/または書き込まれたコンテンツへのエラーデータの組み込みは、一部の実施形態では、書き込みドライブまたはデバイス426にエラーデータを組み込むように通知する書き込みコマンドをコントローラ424が発行することにより、実施される。一部の実施形態では、書き込みコマンドは、修正されたWrite(10)および/またはWrite(12)小型コンピュータシステムインターフェース(SCSI)コマンドであってよい。以下の表1は、書き込みドライブ426に媒体へのコンテンツの書き込みを開始するように指示できるWrite(10)コマンド記述子ブロック(CDB)の構造の例を定義している。
【0044】
【表1】
【0045】
典型的には、ストレージデバイスは、普通は用語「論理ブロックアドレス(LBA)」および他のパラメータによって参照される多数の論理ブロックから成る。典型的なLBAは、512バイトのストレージに等しく、Write(10)およびWrite(12)の場合、典型的には32ビットLBAアドレスを含む。多くのシステムにおいて、例えば、SCSIバス上の各デバイスは少なくとも1つの論理ユニット番号(LUN)を割り当てられる。単純なデバイスは1つのLUNを持つことができ、より複雑なデバイスは複数のLUNを持つことができる。バイト「1」のビット「1」は予約されており、典型的には、Write(10)および/またはWrite(12)コマンドの場合、値「0」を入れて送信されることに注意されたい。
【0046】
表2および表3は、それぞれ、修正されたWrite(l0) CDBおよび修正されたWrite(12) CDBを示している。修正された書き込みコマンドは、一部の実施形態において、エラーデータの組み込みおよび/または書き込みを開始するために使用できる例である。
【0047】
【表2】
【0048】
【表3】
【0049】
修正されたWrite(10)および修正されたWrite(12)のバイト「1」のビット「1」は、不良ECC(BE)標識ビットとして定義されることに留意されたい。BEパラメータが第1の値(例えば、値「0」)に設定されると、修正されたWrite(10)または修正されたWrite(12)は、書き込みドライブ426に標準のWrite(10)またはWrite(12)を実際に実施するように指示できる。あるいは、BEパラメータが、例えば、「1」に設定されると、修正されたWrite(10)および/または修正されたWrite(12)コマンドは、書き込みドライブに、誤った、または不良ECCデータなどのエラーデータを指定されたLBAに挿入および/または記録するように指示する。転送長は、作成するエラーデータ、および/またはコンテンツに組み込むエラーデータのブロックの量または数を示すことができる。いくつかの例では、Write(10)および/またはWrite(12)コマンドのためのデータイン(data−in)は無視される。
【0050】
一部の実施形態では、書き込みドライブまたはデバイス426および/または書き込みドライブのファームウェアも、BEビットを検出して、いつエラーデータをコンテンツに組み込むかを判定するために修正される。例えば、書き込みドライブまたはデバイス426のアプリケーションインターフェース(API)は、一部の実施形態では、修正されたWrite(10)および/またはWrite(12)コマンドを検出して、所望の書き込み機能を正確に実行するように修正できる。さらに、一部の実施態様では、コントローラ424は、書き込みドライブおよび/またはデバイスが、修正されたWrite(10)および/もしくはWrite(12)コマンドを正確に検出できるか、ならびに/またはエラーデータを、媒体に書き込まれたコンテンツストリームに組み込むことができるかを照会または判定できる。いくつかの例では、書き込みドライブ426は照会またはGET CONFIGURATIONコマンドに応答し、書き込みドライブがエラーデータを組み込み、ならびに/または修正されたWrite(10)および/もしくはWrite(12)コマンドを正確に解釈して実施する機能を有しているかを示す。
【0051】
表4は、照会またはGET CONFIGURATIONコマンドに応答して書き込みデバイスによって送信されるエラーデータ書き込み可能機能記述子の例である。
【0052】
【表4】
【0053】
エラーデータ書き込み可能機能があるということは、ドライブがエラーデータを、例えば、エラーデータの指定に従って媒体に記録する、および/または組み込むことができることを表す。機能コードは、記述子をエラーデータ機能記述子として認識するために定義できる。例えば、機能コードは、16進形式で書かれたFF54hに設定できる。「書き込み(write)」パラメータは、エラーデータを書き込むための書き込みドライブの機能を特定するために使用できる。
【0054】
例えば、書き込みパラメータが第1の値(例えば、「0」)に設定されると、書き込みドライブでエラーデータ書き込み機能は使用できない。あるいは、書き込みパラメータが第2の値(例えば、「1」)に設定されると、ドライブは、エラーデータ書き込みを行うための機能を要請する。他のパラメータは、追加または代替で、記述子に含むことができる。例えば、バージョンフィールドを含むことができる(例えば、16進形式で書かれた0hに設定できる)。パーシスタントビットを設定でき(例えば、ゼロに設定できる)、この機能はそのカレント状態を変更できることを表す。カレントビットは、例えば「0」に設定されると、この機能が現在はアクティブではなく、この機能に依存するデータは有効になれないことを表し、例えば「1」に設定されると、この機能が現在アクティブであり、この機能に依存するデータは有効であることを表すことができる。例えば、カレントフィールドが「0」に設定されると、ディスクはマウントされない、または現在マウントされているディスクはエラーデータの組み込みまたは挿入用にサポートされず、カレントフィールドが「1」に設定されると、ディスクがマウントされ、この媒体上でエラーデータを使用することが可能である。いくつかの例では、追加の長さフィールドが含まれ、このフィールドは、例えば、16進形式で書かれた04hに設定できる。
【0055】
図6は、コンテンツを媒体422に書き込むときに書き込みコマンドを受信したことに応答して書き込みドライブまたはデバイス426によって使用されるプロセス620の単純化された流れ図である。ステップ622において、書き込みコマンドが受信される。典型的には、書き込みコマンドはコントローラ424によって発行される。ステップ624において、書き込みコマンドはエラーデータを組み込むための指示を含んでいるかが判定される。一部の実施形態では、ステップ624は、書き込みコマンドが、修正されたWrite(10)コマンド、修正されたWrite(12)コマンド、および/または他のコマンドの中で事前定義された値に設定される不良ECCビット(例えば、BEは「1」に設定される)を含むかどうかを判定することを含む。書き込みコマンドが、エラーデータを組み込むための指示を含んでいない場合、ステップ626に入り、そこで、書き込みコマンドに基づいて特定されたデータが媒体に書き込まれる。
【0056】
書き込みコマンドが、エラーデータを組み込むための指示を含んでいる場合、ステップ630に入り、そこで、エラーデータが取り出される、および/または生成される。ステップ632において、エラーデータが媒体に記録される。一部の実施形態では、ステップ630および632は単一のステップとして結合することができ、結合されたステップで、以下でさらに説明されるように、媒体への記録中にエラーデータが生成される。ステップ634において、媒体上および/またはコンテンツ内のエラーデータのロケーションが特定されて、記録またはバッファリングされる。エラーデータのロケーションは、一部の実施態様では、再生デバイスで使用される再生ナビゲーションを生成するときに使用できる。
【0057】
書き込みデバイスおよび/または期待される再生デバイスの機能が、エラーデータがコンテンツおよび/またはイメージファイル内のどこに、どのように組み込まれるかを制限する可能性がある。例えば、いくつかの例および/または一部の書き込みデバイス426で、エラーデータは、例えば、媒体の0x30セクタ(例えば、DVDフォーマットに従った場合)と等価であってよい一連の連続ブロック、例えば、3個以上の連続ユニットまたは不良ECCデータの中に生成される。これにより、一部の書き込みデバイスはコンテンツの書き込みを実際に停止し、エラーデータの書き込みを開始し、エラーデータの書き込みを停止し、コンテンツの書き込みを再開できるようになる(例えば、1つのユニット中にコンテンツの書き込みを停止し、第2のユニット中にエラーデータを書き込み、第3のユニット中にエラーデータの書き込みを停止し、コンテンツの書き込みを再開する)。コンテンツの書き込みの停止および開始は、例えば、パケット書き込みモードで動作できるいくつかの書き込みデバイスで実施できる。一部の実施形態は、第1の書き込み中にコンテンツが書き込まれ、第2の書き込みでエラーデータが書き込まれる多段書き込みプロセスを、例えば、第1段階で書き込まれた、またはスキップされた部分に上書きすることにより実施する。さらに、一部の実施態様では、エラーデータは、例えば、位置がECC境界に合わされる。しかし、一部の例および/または一部の書き込みデバイスでは、エラーデータの連続ブロックおよび/または境界合わせは必要ない場合がある。追加または代替で、一部の書き込みデバイスは、エラーデータを書き込む前にキャッシュ同期化コマンドをさらに発行し、および/またはエラーデータを書き込んだ後にキャッシュ同期化コマンドを発行して、コンテンツの書き込みとエラーデータの書き込み間でより正確な遷移が行われるようにする。
【0058】
再生ナビゲーションは、再生デバイスに、再生中にエラーデータを迂回またはスキップするように指示できる。そのため、媒体上のコンテンツはエラーなしで再生できる。しかし、媒体上のコンテンツをコピーしようとするとき、多くのコピープロセスがコンテンツを分析しない、および/またはナビゲーションを使用しない。したがって、このようなコピープロセスはコンテンツをコピーしようとし、エラーデータ(例えば、不良ECCデータ)は、コピーを防止するエラーを生成し、エラーデータに応答して行われる書き込み時にコンテンツの品質を低下させ、および/またはコピーを禁止する、またはコピーを妨害しようとする他の効果を生み出す。
【0059】
再生中のエラー、グリッチ、および/もしくはユーザ検出可能な変形を制限ならびに/または回避するために、コンテンツと共にエラーデータの組み込みおよび記録がさらに実施される。一部の実施形態では、エラーデータは、コンテンツ内の、ナビゲーションに基づいて再生デバイスによってエラーデータが容易にスキップされる位置に組み込まれ、ならびに/またはエラーデータは、コンテンツ、および/もしくはコンテンツ、および/もしくは媒体の期待されるフォーマットに応じて位置合わせができる。例えば、エラーデータは、以下でさらに説明されるように、コンテンツの一部分の前または後に組み込まれてよい。しかし、他の例および/または他の再生デバイスでは、エラーデータは、イメージファイルおよび/またはコンテンツストリーム内の実質的に任意の所望の位置に組み込むことができる。
【0060】
さらに図6を参照すると、エラーデータを生成および/または受信するステップ630は、多くの方法で実施できる。例えば、エラーデータはコントローラ424または別のデバイスによって生成できて、書き込みコマンドに従って、書き込みドライブへ転送または書き込みドライブによって取り出して組み込むことができる。一部の実施態様では、書き込みドライブはECCデータをスクランブル、またはそうでない場合は変更して、スクランブルされたECCデータをコンテンツ内にエラーデータとして組み込むことができる。スクランブリングは、ECCデータがそれ以降は無効であるようにする実質的に任意のスクランブリングであってよい。エラーデータは、コンテンツが媒体に書き込まれるときに、コンテンツの変調を変更することにより生成できる。追加または代替で、コンテンツの書き込みにレーザを使用する場合、レーザの電力および/または強度は、その書き込み、リンクするブロックの作成、ボーダーゾーンの作成、および/または他の同様の方法において中断を入れるために、書き込み中に変更、停止、および開始できる。
【0061】
図7は、1つまたは複数の識別子および/または予約済みセクタをコンテンツ内に定義および/または組み込むときに使用するプロセス720の単純化された流れ図を示している。識別子および/または予約済みセクタは、コンテンツ内の、エラーデータが組み込まれてよい位置の少なくともいくつかを定義するためにコンテンツに挿入される。ステップ722において、コンテンツがアクセスされ、および/または取り出される。いくつかの例では、コンテンツは、記録デバイスから受信されたままの、例えば、非圧縮ビデオおよびオーディオなどの初期フォーマット、またはコンテンツ開発者および/または供給者によって利用される他のフォーマットになっている。
【0062】
ステップ724において、コンテンツが評価され、コンテンツの一部分が選択される。この評価および選択は、一部の実施形態では、コンテンツ内のシーンの変化、コンテンツまたはコンテンツの部分の先頭および/または末尾、シームとしての中断および他の同様のロケーションなど、コンテンツ中の遷移を特定する。例えば、コンテンツの評価は、コンテンツの末尾または先頭、シーンまたはイントラピクチャフレーム(Iフレーム)の変化、後書きまたは前書きコンテンツの末尾、特集コンテンツ(featured content)(例えば、映画)の先頭または末尾、制作スタッフ一覧(credits)の先頭、および/またはコンテンツ内の他の同様の遷移を特定することを含むことができる。さらに、媒体の、通常は読み取られない領域またはロケーションに誤ったデータを組み込むことができる。例えば、エラーデータは、他のデータを含まないディスクまたは他の関連媒体に、コンテンツが媒体を満杯にしない場合などに組み込むことができる。エラーデータは、コンテンツが記録されていないエリア、すなわち、媒体の、通常は読み取られないエリアに組み込むことができる。あるいは、コンテンツと共に余分な、またはダミーのタイトルを組み込むことができ、その場合、これらの余分なタイトルはアクセス、リンク、または参照されない。そのため、これらのタイトルは通常は再生中には読み取られず、コンテンツのコピー中にアクセスされるのが一般的である。
【0063】
ステップ726において、識別子または予約済みセクタがコンテンツ内の、ステップ724で選択されたコンテンツ部分の前に組み込まれるかが判定される。ステップ726で実行される判定は、部分的には、例えば、コンテンツの複数のバージョンが予約済みセクタおよび/または識別子がコンテンツ上の異なる場所に挿入されるように、コンテンツ内のエラーデータの配置が異なるようにし、および/またはランダム化されることを可能にする。一部の実施形態では、予約済みセクタまたは識別子がいつ組み込まれるべきかに関するステップ726での判定は、ランダムな選択、事前定義済みパターン、および/またはコンテンツを再生するために使用される再生デバイスの予想されるタイプなどの他の要因、および他の同様の要因に基づいて行うことができる。
【0064】
識別子または予約済みセクタがその部分の前に組み込まれない場合、プロセス720はステップ738へ進む。あるいは、識別子または予約済みセクタが組み込まれる場合、ステップ730に入り、識別子が生成される。いくつかの例では、その識別子はGUID、および/またはビットまたはバイトの他の識別可能なパターンである。例えば、識別子は、選択されたコンテンツ部分の前の1つまたは複数のセクタを満杯にするために複数回繰り返されるGUIDであってよい。さらに、例えば、1つまたは複数のブランクまたはブラックフレームまたはスクリーンがコンテンツおよび/または識別子と共に組み込まれる。
【0065】
ステップ732において、コンテンツは識別子を組み込むように修正され、および/または予約済みセクタがコンテンツに組み込まれ、および/またはコンテンツと共に埋め込まれる。この組み込みは、コンテンツの選択された部分の前に識別子および/または予約済みセクタを単純に挿入すること、リンキングブロック(複数可)を作成すること、ボーダーを作成すること、ゾーンを作成すること、および/または他の同様の組み込みを含んでよい。上述のように、識別子および/または予約済みセクタの組み込みおよび/または埋め込みは、識別子(複数可)および/または予約済みセクタ(複数可)を、光ディスクなどの媒体に書き出されるコンテンツの一部または全部を表すイメージファイルに埋め込むことを含んでよい。
【0066】
ステップ734において、そのコンテンツ部分および識別子が記録および/またはバッファリングされる。例えば、そのコンテンツ部分および識別子は、イメージファイルの一部としてバッファリングされ、バッファリングが完了すると、それらは、記録デバイスに伝達することができ、および/またはリモートユーザへ記録のために配布できる。ステップ734の後、プロセスはステップ744へ進む。ステップ744において、プロセスは、さらに追加および/または組み込むべきコンテンツがあるかどうかを判定する。それ以上のコンテンツがある場合、プロセスはステップ724へ戻る。一部の実施形態では、メディアコンテンツ内に、識別子が組み込まれるロケーションのマッピングがさらに提供される。あるいは、プロセスが終了し、修正されたコンテンツ(メディアコンテンツなど)が媒体に記録され、他のデバイスに記録のために伝達され、および/または1つまたは複数のリモートユーザに(例えば、分散ネットワークを介して)配布できる。例えば、識別子および/または予約済みセクタが組み込まれた修正されたメディアコンテンツを含むイメージファイルが完成する。このメディアイメージは、この後、記録および/または配布できる。
【0067】
ステップ726に戻って、識別子または予約済みセクタがその部分の前に組み込まれない場合、プロセス720はステップ738へ進み、そこで、そのコンテンツ部分が記録および/またはバッファリングされる。ステップ740において、識別子または予約済みセクタがコンテンツ内の、ステップ724で選択されたコンテンツ部分の後に組み込まれるかが判定される。識別子または予約済みセクタがその部分の後に組み込まれる場合、プロセス720はステップ742へ進み、そこで、メディアコンテンツは、識別子および/または予約セクタが生成され、コンテンツ内の選択されたコンテンツ部分の後に組み込まれるように修正される。ステップ742の後、プロセスはステップ744へ進み、さらに追加および/または組み込むべきコンテンツがあるかを判定する。ステップ740に戻って、識別子または予約済みセクタが組み込まれないと判定された場合、プロセスはステップ744へ進み、さらに追加および/または組み込むべきコンテンツがあるかを判定する。
【0068】
プロセス720は、コンテンツ所有者、供給者、および/または配布者がコンテンツ内の、エラーコンテンツが組み込まれてよい1つまたは複数の位置を定義できるようにする。予約済みセクタおよび/または識別子に基づいて、エラーデータは、コンテンツが書き込まれる時、および/または伝送される時にコンテンツへ組み込むことができる。これにより、識別子および/または予約済みセクタが組み込まれた修正されたコンテンツは、許可および/または認証された宛先へ配布できるようになる。さらに、一部の実施態様では、上述のように、エラーコンテンツは、識別子および/または予約済みセクタのそれぞれごとにコンテンツに組み込まれる必要はない。1つまたは複数の識別子および/または予約済みセクタが選択できて(例えば、ランダムに選択する)、エラーデータは、選択された1つまたは複数の予約済みセクタおよび/または識別子に応じて組み込むことができる。
【0069】
ステップ724におけるコンテンツの一部分の選択は、一部の実施形態では、重要な遷移、シーンの中断、および/または他の特殊な遷移が起こるコンテンツ部分に制限される。いくつかの例では、デジタルビデオコンテンツ(例えば、映画)については、遷移は、映画コンテンツの先頭の前、映画コンテンツの末尾の後、後書きまたは前書きコンテンツの前、後書きコンテンツの後、および/または他の同様の遷移の前または後に行われてよい。しかし、他の実施態様では、予約済みセクタおよび/または識別子を映画コンテンツ内の、例えば、シーンの変化で、イントラピクチャフレーム(Iフレーム)またはコンテンツ内の他の同様のロケーションの前に組み込むことができる。エラーデータの挿入および/またはロケーションは、一部の実施形態では、予想される再生デバイスによって少なくとも部分的に指示できる。そのため、識別子および/または予約済みセクタの選択は、期待される再生デバイスに依存する可能性があり、その場合、一部の再生デバイスは限られた機能を有する可能性があり、そのため、エラーデータは、そのようなエラーデータがコンテンツの再生を妨害しないポイントでの組み込みに制限される。
【0070】
ビデオ後書きまたはビデオ映画のタイトルなどのコンテンツの作者、配布者および/または制作者は、予約済みセクタを挿入し、および/またはエラーデータまたはブロックをビデオコンテンツに組み込んで、その予約済みセクタまたはエラーデータがコンテンツ内のメニューシステムによってアクセスされないようにすることができる。そのため、これらの部分はメニュー内で参照されないので、再生デバイスは一般的にこれらの部分にアクセスしない。追加または代替で、エラーデータまたは不良ブロックで部分的に満たした、または満杯にしたコンテンツの別の断片または部分(例えば、ビデオの一部分)を、例えば、媒体の中間にあるイメージファイルまたはコンテンツストリームに挿入することができるが、この場合、この断片または部分は、一般的には、メニューから、または再生デバイスによって直接にアクセスすることはできない。
【0071】
上記で紹介されたように、一部の実施形態では、コンテンツ提供者によって、1つまたは複数のブランクまたはブラックフレームを識別子、識別子に近いものとして、および/またはコンテンツの予約済みセクタの一部としてコンテンツストリームの中に組み込むことができる。エラーデータの組み込み時、エラーデータを組み込むときに識別子、予約済みセクタおよび/またはブラックスクリーンが使用できる。一部の実施形態では、予約済みセクタの一部または全部、または予約済みセクタ内のデータの一部または全部が、誤ったECCデータなどのエラーデータで置き換えられる。
【0072】
一部の実施形態では、エラーデータの一部または全部を媒体の事前定義された部分に組み込むことができる。媒体は、媒体の1つまたは複数の部分が、エラーデータを受信するように事前に選択された状態で、エラーデータを含んだ状態で、および/または物理的に変更された状態で製造および/または構成できる。図8は、光ディスクなど(例えば、DVD、CD、または他の同様の媒体)の媒体820の単純化されたブロック図を示している。媒体820は、コンテンツが書き込めるデータ部822、および制御エリア824を備えている。図8において、媒体820は、媒体の内側の半径に位置付けられている制御エリア824と共に示されている。しかし、制御エリアは、実質的には任意のエリアに位置付けることができ、媒体上で分散および/または分割されてよい。一部の実施形態では、制御エリアは、通常は記録デバイスによってアクセスできないエリアである。既存の媒体は、典型的には、書き込みのためにアクセスできない同様の制御エリアを有する。制御エリアは、1つまたは複数のメニュー、パラメータ、暗号鍵、許可情報、通し番号、および/または他の同様のデータを含むことができる。
【0073】
データ部822は、1つまたは複数の事前定義済みエリア826をさらに含む。これらのエリアは、エラーデータが組み込まれる部分を示し、エラーデータを、事前定義済みエリア826に隣接して、および/またはその中に組み込むことができることを表す識別子であってよく、すでにエラーデータを含んでいてよく、結果としてエラーまたは他の同様の状態、および/またはその組み合わせの状態になるように物理的に変更されてよい。1つまたは複数の事前定義済みエリア826は、一部の実施態様では、媒体が認識されるようにし、および/または、例えば、データ部822へのコンテンツのコピーを可能にするための媒体の認証で媒体が使用されるようにするパターンを定義できる。例えば、パターンは、媒体が特定され、および/または認証されるようにする媒体の署名として定義できる。
【0074】
図9は、光ディスク820および/または他の媒体などの媒体を製造および/または配布するときに使用するプロセス920の単純化された流れ図を示している。ステップ922において、識別子、エラーデータ、物理的に変更される、などを含むための媒体の1つまたは複数の部分またはエリアが選択される。一部の実施態様では、この選択は、選択されたエリアを媒体の少なくともデータ部822上でランダムに分散させるランダムな選択である。ステップ924において、媒体のマッピングが生成される。このマッピングは、少なくとも、選択されたエリアのロケーションを特定する。ステップ926において、媒体が型押しされる、または、そうでない場合、選択されたエリアを備えて作成される。ここでも、選択されたエリアは、選択されたエリアに型押しされる識別子を含むことができ、選択されたエリアに型押しされるエラーデータを含むことができ、型押し中に物理的に変更することができ(例えば、これらのエリアにデータを書き込めないようにするために)、および/または選択されたエリアを指定または定義するときに他の同様の処理が使用できる。いくつかの例では、媒体にマッピングがさらに型押しされ、データエリア822および/または制御エリア824に型押しできる。
【0075】
プロセス920によって作成された媒体はエラーデータを組み込み、および/またはエラーデータを組み込める媒体上のエリアを特定する。一部の実施形態では、製造者は単一の媒体を型押しし、その後、選択されたエリアの異なるパターンを有する別の媒体を作成するためにプロセス920を繰り返す。あるいは、製造は、同じパターンを有する複数の媒体を生成し、その後、他の媒体を作成するためにプロセス920を繰り返すこともできる。例えば、製造者は、媒体のそれぞれが選択されたエリア826の第1のパターンを有する第1の複数の媒体(例えば、第1の500個のDVD)を生成することができる。その後、製造者は、第2のパターンを生成し、第2の複数の媒体(例えば、第2の500個のDVD)を型押しし、その後、選択されたエリアの変化に合わせて第3、第4、および実質的に任意の数のパターンの生成を続けることができる。媒体を生成するために多数のパターンが使用できる。配布時、媒体は異なるエンティティに分散され、事実上、同じパターンの媒体が分散される。
【0076】
図10は、一部の実施形態による、媒体820などの媒体にコンテンツを書き込むプロセス1020の単純化された流れ図を示している。ステップ1022において、媒体がドライブに入っているか、および/またはアクセス可能であるかが判定される。媒体がアクセス可能でない場合、ステップ1024でエラーが生成される。あるいは、ステップ1026に入り、そこで、プロセスは、媒体が1つまたは複数の事前定義済みエラーまたは不良エリアを含んでいるかを判定する。一部の実施形態では、媒体は、媒体が事前定義済みエリアを含むことを示すマッピングが存在するかを判定するために評価される。追加または代替で、媒体の一部または全部が、媒体が事前定義済みエリアを含むかを判定するために評価される。媒体が事前定義済みエリアを含まない場合、コンテンツの書き込みは、1つまたは複数の他のプロセス、例えば、プロセス220に従って実施される。
【0077】
媒体が事前定義済みエリアを含む場合、プロセス1020はステップ1030へ進み、媒体のマッピングにアクセスする。ステップ1032において、1つまたは複数の事前定義済みエリアが、マッピングにより、および/または媒体を評価することにより特定される。ステップ1034において、媒体に書き込まれるコンテンツがアクセスされ、および/または受信される。ステップ1036において、書き込みデバイスは、例えば、コントローラの指示どおりにコンテンツの書き込みを開始する。一部の実施形態では、ステップ1036は、コンテンツが、エラーデータが組み込まれる1つまたは複数の識別子および/または予約済みセクタを含んでいるかを判定するためにコンテンツを、図2のプロセス220で実行されるように解析することを含む。ステップ1040において、コンテンツの媒体への書き込み中に事前定義済みエリアが検出されるかが判定される。事前定義済みエリアは、やはり、一般的にはマッピングに基づいて認識され、コンテンツの媒体への書き込み中に、事前定義済みエリアに達する前に予測できる。書き込み時、事前定義済みエリアが検出されない場合、プロセスは、ステップ1042で、媒体へのコンテンツの書き込みを続ける。ステップ1044において、さらに書き込むべきコンテンツがあるかが判定される。さらに書き込むべきコンテンツがない場合、プロセスは終了する。あるいは、さらに媒体に書き込むべきコンテンツがある場合、プロセスはステップ1040に戻る。
【0078】
ステップ1040に戻ると、媒体の事前定義済みエリアが検出される場合、ステップ1046に入り、そこでコンテンツの書き込みが中止され、事前定義済みエリアはスキップされる。あるいは、事前定義済みエリアの一部または全部にエラーデータが書き込まれる。ステップ1050において、プロセスは、事前定義済みエリアの後にコンテンツの書き込みを続ける。プロセスはステップ1044に戻り、媒体にさらに書き込むべきコンテンツがあるかを判定する。
【0079】
一部の実施形態では、例えば、無許可のコピーからコンテンツを守るための保護を提供する。さらに、一部の実施態様では、困難であるか、または多くのコピー方法で、例えば、ファイルごとのコピー、セクタごとのコピー、もしくはビットごとのコピー、および他のコンテンツのコピー方法、しかしそれらに限定されない方法ではコピーできない光ディスクなどの媒体が作成できるようになっている。一部の実施態様で提供される保護は、不良部分を作成すること、ならびに/またはエラーデータをコンテンツ内および/もしくは媒体上に組み込むことを含む。その結果、コピーが試みられると、エラーが検出され、多くの例でエラーおよび/またはコピーの失敗が発生する。
【0080】
一部の実施態様では、コンテンツ供給者は、1つまたは複数の識別子または事前定義済みセクタを含むコンテンツを媒体配布者および/または製造者に提供する。これらの識別子の使用は、実質的に任意のイメージファイルおよび/またはフォーマットで利用できる。例えば、識別子は、CDディスク、DVDディスクおよび/または他の同様のディスクで使用できる。例えば、識別子は、Blu−rayディスクおよびHD−DVDディスクおよび/または他のフォーマットで利用できるが、これらのフォーマットが一般的にDVDイメージファイルと類似のイメージファイルを有し、一般的に、より多いセクタを有したより大きいファイルであるためである。識別子に基づいて、書き込みデバイスは、書き込み中にエラーデータおよび/または不良ブロックをコンテンツ内および/または媒体上に作成するために実質的に任意の手法を用いることができる。さらに、エラーデータの組み込みは、光ディスクだけではなく、メモリスティック、フラッシュメモリ、および実質的に任意の他の関連メモリなどの他の記録可能な媒体で使用できる。
【0081】
本明細書で開示される発明は、特定の実施形態およびその応用例を用いて説明されているが、当業者は、「特許請求の範囲」に記載される本発明の範囲から逸脱することなく、そこに様々な修正および変形を行うことができる。
【特許請求の範囲】
【請求項1】
コンテンツを保護するときに使用する方法であって、
エラーデータ用に予約されたセクタを有するメディアコンテンツにアクセスすることと、
予約済みセクタを探索して特定することと、
エラーデータにアクセスすることと、
前記メディアコンテンツ内の前記予約済みセクタの少なくとも一部分を前記エラーデータで置き換えることと、
前記メディアコンテンツおよび前記エラーデータを媒体に記録することと
を含むことを特徴とする方法。
【請求項2】
再生デバイスに前記エラーデータをスキップするように指示するナビゲーションコマンドを生成することと、
前記ナビゲーションコマンドを前記メディアコンテンツと共に前記媒体に記録することと
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記ナビゲーションコマンドを前記生成することは、セル間リンクコマンドを生成することと、前記セル間リンクコマンドを前記ナビゲーションコマンドに組み込むことを含むこととを特徴とする請求項2に記載の方法。
【請求項4】
前記ナビゲーションコマンドを前記生成することは、ナビゲーションパック内の、前記エラーデータに関するスキャンモードフラグを使用不可にすることを含むことを特徴とする請求項3に記載の方法。
【請求項5】
前記エラーデータに前記アクセスすることは、セルの連結のそれぞれが、連結のそれぞれの最初および最後のセルがバッファセルであるランダムな数のバッファセル、および前記の数のバッファセル内にランダムに位置付けられた少なくとも1つのエラーセルを含む、セルの複数の連結を生成することを含み、
前記探索して特定することは、複数の予約済みセクタを探索して特定することと、前記複数のセクタの中の複数の予約済みセクタを選択することとを含み、
前記予約済みセクタの前記少なくとも一部分を置き換えることは、前記選択された予約済みセクタのそれぞれを前記セルの複数の連結の1つで置き換えることを含む
ことを特徴とする請求項3に記載の方法。
【請求項6】
前記エラーデータを前記生成することは、エラーセルおよび複数のバッファセルを生成することを含み、前記予約済みセクタの前記少なくとも一部分を前記置き換えることは、前記予約済みセクタの前記少なくとも一部分を前記エラーセルおよび前記複数のバッファセルで置き換えることを含むことを特徴とする請求項1に記載の方法。
【請求項7】
前記複数のバッファセルを前記生成することは、ランダムな数のバッファセルを生成することと、前記エラーセルを、前記ランダムな数のバッファセル内に、前記エラーセルの前に少なくとも1つのバッファセルおよび前記エラーセルの後に少なくとも1つのバッファセルを付けてランダムに組み込むこととを含むことを特徴とする請求項6に記載の方法。
【請求項8】
前記探索して特定することは、複数の予約済みセクタを探索して特定することと、前記複数のセクタの中の複数の予約済みセクタを選択することとを含み、
前記予約済みセクタの前記少なくとも一部分を置き換えることは、前記選択された予約済みセクタのそれぞれをエラーデータで置き換えることを含む
ことを特徴とする請求項1に記載の方法。
【請求項9】
前記複数の予約済みセクタを前記選択することは、前記複数のセクタの中の前記複数の予約済みセクタをランダムに選択することを含むことを特徴とする請求項8に記載の方法。
【請求項10】
前記選択された予約済みセクタのロケーションを特定することと、
前記選択された予約済みセクタに従って前記媒体の認証を生成することと
をさらに含むことを特徴とする請求項8に記載の方法。
【請求項11】
コンテンツを保護する方法であって、
メディアコンテンツにアクセスすることと、
前記メディアコンテンツ内の、エラーデータが組み込まれる複数のロケーションを特定することと、
複数の隣接セルの連結を含む前記エラーデータを、前記特定されたロケーションのそれぞれに組み込むことと、
前記メディアコンテンツ内に組み込まれたエラーデータの前記複数の隣接セルの前記連結のそれぞれを再生中にスキップするように再生デバイスに指示するナビゲーションコマンドをナビゲーション内に定義することと、
前記メディアコンテンツ、前記エラーデータおよび前記ナビゲーションを媒体に記録することと
を含むことを特徴とする方法。
【請求項12】
前記エラーデータを前記組み込むことは、
バッファセルの数を特定することと、
エラーセルの数を特定することと、
前記エラーセルを前記特定された数のバッファセル内のどこに配置するかを判定することと、
前記メディアコンテンツ内に、前記特定された数のバッファセルと同等の数のバッファセルおよび前記特定されたエラーセルの数に等しい数のエラーセルを、前記の数のバッファセル内に前記エラーセルが分散されるように組み込むことと
を含むことを特徴とする請求項11に記載の方法。
【請求項13】
前記ナビゲーションコマンドを前記定義することは、セル間リンクコマンドを定義して組み込むことと、ナビゲーションパック内の、前記エラーデータに関するスキャンモードフラグを使用不可にすることとを含むことを特徴とする請求項12に記載の方法。
【請求項14】
前記メディアコンテンツ内の前記エラーデータの前記特定されたロケーションに基づいて前記メディアコンテンツの認証を生成することをさらに含むことを特徴とする請求項11に記載の方法。
【請求項15】
前記メディアコンテンツ内の前記複数のロケーションを前記特定することは、前記媒体を評価することと、前記媒体上のエラーデータを受信するために予約されたエリアを特定することと、前記メディアコンテンツの、前記媒体の前記特定されたエリアの隣に記録される部分を特定することとを含むことを特徴とする請求項11に記載の方法。
【請求項16】
前記媒体上の、前記エラーデータが記録される複数のロケーションを特定することと、
前記媒体上の、前記エラーデータが記録される前記特定されたロケーションに基づいて前記媒体の認証を生成することと
をさらに含むことを特徴とする請求項11に記載の方法。
【請求項17】
メディアコンテンツに保護を提供する方法であって、
メディアコンテンツにアクセスすることと、
前記メディアコンテンツを評価することと、
前記メディアコンテンツ内の、識別子が組み込まれる複数のロケーションを特定することと、
エラーデータが組み込まれてよいロケーションとして各ロケーションを指定するように構成された事前定義済み識別子を、前記メディアコンテンツ内の各特定されたロケーションに組み込むことを含むメディアコンテンツを修正することと、
前記修正されたメディアコンテンツを伝達することと
を含むことを特徴とする方法。
【請求項18】
前記メディアコンテンツを前記評価することは、前記コンテンツ内の、コンテンツ遷移が起こるロケーションを判定することを含み、
前記メディアコンテンツ内の複数のロケーションを特定することは、探索されたコンテンツ遷移のうちの2つ以上を選択することを含む
ことを特徴とする請求項17に記載の方法。
【請求項19】
前記メディアコンテンツ内に事前定義済み識別子を組み込むことは、前記コンテンツ遷移が起こる複数の前記判定されたロケーションから、前記特定された複数のロケーションをランダムに選択することを含むことを特徴とする請求項18に記載の方法。
【請求項20】
記録可能な媒体を作成するために使用する方法であって、
記録可能な媒体を提供することと、
前記媒体上のセクタを選択することと、
エラーデータ用の予約済みセクタを作成するために前記選択されたセクタに事前定義済みデータを書き込むことと、
エラーデータ用に予約された前記セクタのマッピングを生成することと、
前記媒体に前記マッピングを書き込むことと
を含むことを特徴とする方法。
【請求項21】
メディアコンテンツを保管するように構成された、媒体の第1の領域と、
前記第1の領域内の、複数のセクタのそれぞれを予約済みセクタとして指定するように構成された事前定義済みデータを事前に記録した前記複数のセクタと、
前記予約済みセクタの前記媒体上のロケーションを特定するマッピングと
を含むことを特徴とする記録可能な媒体。
【請求項1】
コンテンツを保護するときに使用する方法であって、
エラーデータ用に予約されたセクタを有するメディアコンテンツにアクセスすることと、
予約済みセクタを探索して特定することと、
エラーデータにアクセスすることと、
前記メディアコンテンツ内の前記予約済みセクタの少なくとも一部分を前記エラーデータで置き換えることと、
前記メディアコンテンツおよび前記エラーデータを媒体に記録することと
を含むことを特徴とする方法。
【請求項2】
再生デバイスに前記エラーデータをスキップするように指示するナビゲーションコマンドを生成することと、
前記ナビゲーションコマンドを前記メディアコンテンツと共に前記媒体に記録することと
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記ナビゲーションコマンドを前記生成することは、セル間リンクコマンドを生成することと、前記セル間リンクコマンドを前記ナビゲーションコマンドに組み込むことを含むこととを特徴とする請求項2に記載の方法。
【請求項4】
前記ナビゲーションコマンドを前記生成することは、ナビゲーションパック内の、前記エラーデータに関するスキャンモードフラグを使用不可にすることを含むことを特徴とする請求項3に記載の方法。
【請求項5】
前記エラーデータに前記アクセスすることは、セルの連結のそれぞれが、連結のそれぞれの最初および最後のセルがバッファセルであるランダムな数のバッファセル、および前記の数のバッファセル内にランダムに位置付けられた少なくとも1つのエラーセルを含む、セルの複数の連結を生成することを含み、
前記探索して特定することは、複数の予約済みセクタを探索して特定することと、前記複数のセクタの中の複数の予約済みセクタを選択することとを含み、
前記予約済みセクタの前記少なくとも一部分を置き換えることは、前記選択された予約済みセクタのそれぞれを前記セルの複数の連結の1つで置き換えることを含む
ことを特徴とする請求項3に記載の方法。
【請求項6】
前記エラーデータを前記生成することは、エラーセルおよび複数のバッファセルを生成することを含み、前記予約済みセクタの前記少なくとも一部分を前記置き換えることは、前記予約済みセクタの前記少なくとも一部分を前記エラーセルおよび前記複数のバッファセルで置き換えることを含むことを特徴とする請求項1に記載の方法。
【請求項7】
前記複数のバッファセルを前記生成することは、ランダムな数のバッファセルを生成することと、前記エラーセルを、前記ランダムな数のバッファセル内に、前記エラーセルの前に少なくとも1つのバッファセルおよび前記エラーセルの後に少なくとも1つのバッファセルを付けてランダムに組み込むこととを含むことを特徴とする請求項6に記載の方法。
【請求項8】
前記探索して特定することは、複数の予約済みセクタを探索して特定することと、前記複数のセクタの中の複数の予約済みセクタを選択することとを含み、
前記予約済みセクタの前記少なくとも一部分を置き換えることは、前記選択された予約済みセクタのそれぞれをエラーデータで置き換えることを含む
ことを特徴とする請求項1に記載の方法。
【請求項9】
前記複数の予約済みセクタを前記選択することは、前記複数のセクタの中の前記複数の予約済みセクタをランダムに選択することを含むことを特徴とする請求項8に記載の方法。
【請求項10】
前記選択された予約済みセクタのロケーションを特定することと、
前記選択された予約済みセクタに従って前記媒体の認証を生成することと
をさらに含むことを特徴とする請求項8に記載の方法。
【請求項11】
コンテンツを保護する方法であって、
メディアコンテンツにアクセスすることと、
前記メディアコンテンツ内の、エラーデータが組み込まれる複数のロケーションを特定することと、
複数の隣接セルの連結を含む前記エラーデータを、前記特定されたロケーションのそれぞれに組み込むことと、
前記メディアコンテンツ内に組み込まれたエラーデータの前記複数の隣接セルの前記連結のそれぞれを再生中にスキップするように再生デバイスに指示するナビゲーションコマンドをナビゲーション内に定義することと、
前記メディアコンテンツ、前記エラーデータおよび前記ナビゲーションを媒体に記録することと
を含むことを特徴とする方法。
【請求項12】
前記エラーデータを前記組み込むことは、
バッファセルの数を特定することと、
エラーセルの数を特定することと、
前記エラーセルを前記特定された数のバッファセル内のどこに配置するかを判定することと、
前記メディアコンテンツ内に、前記特定された数のバッファセルと同等の数のバッファセルおよび前記特定されたエラーセルの数に等しい数のエラーセルを、前記の数のバッファセル内に前記エラーセルが分散されるように組み込むことと
を含むことを特徴とする請求項11に記載の方法。
【請求項13】
前記ナビゲーションコマンドを前記定義することは、セル間リンクコマンドを定義して組み込むことと、ナビゲーションパック内の、前記エラーデータに関するスキャンモードフラグを使用不可にすることとを含むことを特徴とする請求項12に記載の方法。
【請求項14】
前記メディアコンテンツ内の前記エラーデータの前記特定されたロケーションに基づいて前記メディアコンテンツの認証を生成することをさらに含むことを特徴とする請求項11に記載の方法。
【請求項15】
前記メディアコンテンツ内の前記複数のロケーションを前記特定することは、前記媒体を評価することと、前記媒体上のエラーデータを受信するために予約されたエリアを特定することと、前記メディアコンテンツの、前記媒体の前記特定されたエリアの隣に記録される部分を特定することとを含むことを特徴とする請求項11に記載の方法。
【請求項16】
前記媒体上の、前記エラーデータが記録される複数のロケーションを特定することと、
前記媒体上の、前記エラーデータが記録される前記特定されたロケーションに基づいて前記媒体の認証を生成することと
をさらに含むことを特徴とする請求項11に記載の方法。
【請求項17】
メディアコンテンツに保護を提供する方法であって、
メディアコンテンツにアクセスすることと、
前記メディアコンテンツを評価することと、
前記メディアコンテンツ内の、識別子が組み込まれる複数のロケーションを特定することと、
エラーデータが組み込まれてよいロケーションとして各ロケーションを指定するように構成された事前定義済み識別子を、前記メディアコンテンツ内の各特定されたロケーションに組み込むことを含むメディアコンテンツを修正することと、
前記修正されたメディアコンテンツを伝達することと
を含むことを特徴とする方法。
【請求項18】
前記メディアコンテンツを前記評価することは、前記コンテンツ内の、コンテンツ遷移が起こるロケーションを判定することを含み、
前記メディアコンテンツ内の複数のロケーションを特定することは、探索されたコンテンツ遷移のうちの2つ以上を選択することを含む
ことを特徴とする請求項17に記載の方法。
【請求項19】
前記メディアコンテンツ内に事前定義済み識別子を組み込むことは、前記コンテンツ遷移が起こる複数の前記判定されたロケーションから、前記特定された複数のロケーションをランダムに選択することを含むことを特徴とする請求項18に記載の方法。
【請求項20】
記録可能な媒体を作成するために使用する方法であって、
記録可能な媒体を提供することと、
前記媒体上のセクタを選択することと、
エラーデータ用の予約済みセクタを作成するために前記選択されたセクタに事前定義済みデータを書き込むことと、
エラーデータ用に予約された前記セクタのマッピングを生成することと、
前記媒体に前記マッピングを書き込むことと
を含むことを特徴とする方法。
【請求項21】
メディアコンテンツを保管するように構成された、媒体の第1の領域と、
前記第1の領域内の、複数のセクタのそれぞれを予約済みセクタとして指定するように構成された事前定義済みデータを事前に記録した前記複数のセクタと、
前記予約済みセクタの前記媒体上のロケーションを特定するマッピングと
を含むことを特徴とする記録可能な媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公表番号】特表2010−503141(P2010−503141A)
【公表日】平成22年1月28日(2010.1.28)
【国際特許分類】
【出願番号】特願2009−527549(P2009−527549)
【出願日】平成19年9月5日(2007.9.5)
【国際出願番号】PCT/US2007/077675
【国際公開番号】WO2008/030900
【国際公開日】平成20年3月13日(2008.3.13)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(507272555)
【Fターム(参考)】
【公表日】平成22年1月28日(2010.1.28)
【国際特許分類】
【出願日】平成19年9月5日(2007.9.5)
【国際出願番号】PCT/US2007/077675
【国際公開番号】WO2008/030900
【国際公開日】平成20年3月13日(2008.3.13)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(507272555)
【Fターム(参考)】
[ Back to top ]