PIDマッピングによるマクロブロックベースのコンテンツ置換
本発明に基づくコンテンツ差替処理は、広告の差替、複数のプロット、複数のエンディング、複数の視点の提供及びこの他の様々な用途に応用することができる。本発明に基づくコンテンツ差替のための方法及び装置は、コンテンツの第1のマクロブロック及び第2のマクロブロックに関連する少なくとも第1及び第2のパケット識別子(PID)を有するビデオコンテンツを表すデータを受け取るステップを有する。第1のPIDを有するコンテンツをデータストリームに挿入する。更に、PIDマッピング処理の開始を指示する開始フラグを受け取る。次に、第1のPIDを有するマクロブロックを第2のPIDを有するマクロブロックに差し替える。次に、PIDマッピング処理の終了を指示する終了フラグを受け取り、この時点で、処理は、第1のPIDを有するコンテンツをデータストリームに挿入する処理に戻る。他の実施形態は、この要約に開示した要素より多く又は少ない、又はこれらと異なる要素を含んでいてもよく、したがって、この要約は限定的に解釈されない。
【発明の詳細な説明】
【関連出願】
【0001】
この出願は、2003年11月12日に出願された米国仮特許出願番号60/519,472号の優先権の利益を主張し、2002年9月9日に出願された米国仮特許出願番号60/409,675号及び以下、全てが2002年1月2日に出願された米国特許出願番号10/038,217号、米国特許出願番号10/038,032号、米国特許出願番号10/037,914号、米国特許出願番号10/037,499号及び米国特許出願番号10/037,498号の一部継続出願である2002年4月16日に出願された米国仮特許出願番号60/372,870号の優先権の利益を主張する2002年12月13日に出願された米国特許出願番号10/319,066号の一部継続出願である。これらの特許出願は、全て、引用により本願に援用される。
【0002】
また、本出願は、2003年9月22日に出願された米国特許出願番号10/667,614号、2002年10月18日に出願された米国特許出願番号10/273,905号、2002年10月18日に出願された米国特許出願番号10/273,903号、2002年10月18日に出願された米国特許出願番号10/274,084号、2002年10月18日に出願された米国特許出願番号10/274,019号に関連し、これらの特許出願は、全て、引用により本願に援用される。
【著作権表示】
【0003】
この明細書の開示内容の一部は、著作権保護の対象となる資料を含んでいる。著作権者は、この明細書が特許商標庁への特許出願又は記録であると認められる複製又は特許開示に対しては異議を唱えないが、それ以外のあらゆる全ての著作権を保有する。
【背景技術】
【0004】
MPEGビデオ等の従来のデジタルビデオコンテンツは、単一の番組、映画又は他のコンテンツの形式を有し、サービスプロバイダ又はユーザは、代替のコンテンツを選択して視聴体験を変更することはできない。対話型のコンテンツを提供するための様々なメカニズムが提案されているが、このような提案は、実現が高価であり、広い帯域幅を必要とし、また、多くは、サーバを含む高価な特別の設備及び/又はこの他のサポート設備を必要としている。したがって、ビデオコンテンツのエンドユーザが自らコンテンツをカスタマイズし及び操作できる「対話型」アプリケーションの需要があるにもかかわらず、このようなシステムは未だに市販されていない。
【発明を実施するための最良の形態】
【0005】
本発明は、数多くの異なる構成の実施例があるが、図面を参照して詳細に説明する特定の実施例は、開示内容が本発明の趣旨の一例とみなされるものであり、本発明をその特定の実施例に限定するものではない。後述する実施例において、類似の参照番号は、複数の図面における同じ、類似、又は対応する部分には、同じ参照番号を付している。
【0006】
用語「スクランブル(scramble)」、「暗号化(encrypt)」及びその活用形は、ここでは同義で用いられている。また、用語「ビデオ(video)」は、真の視覚的情報のみではなく、日常会話的な意味(例えば、「ビデオテープレコーダ」)も含み、ビデオ信号のみではなく、関連するオーディオ信号及びデータ信号も包含する。この明細書では、「デュアル選択的暗号化」の実施例を用いて本発明を説明するが、本発明から逸脱することなく、複数の部分暗号化を用いて本発明を実現できることは、当業者にとって明らかである。用語「部分暗号化」及び「選択的暗号化」は、ここでは同義で用いられている。また、用語「番組(program)」、「テレビジョン番組(television program)」及び類似の用語は、日常会話に使用する意味とともに、テレビジョン受信機又は同様のモニタ装置に表示することができるA/Vコンテンツのいずれかのセグメントの意味にもなる。用語「レガシー」とは、既存のケーブルシステム及び衛星システムにおいて用いられている既存の技術を意味する。ここに開示された例示的な実施例では、データは、テレビジョンのセットトップボックス(STB)によって復号されるが、このような技術は、全ての種類のテレビジョン受像機に組み込んでもよく、この場合、テレビジョン受像機の筐体内に組み込んでもよく、独立した筐体内に組み込んでもよく、記録及び/又は再生装置に関連付けてもよく、又は、限定受信(Conditional Access:CA)復号モジュール又はテレビジョンセット自体の中に設けてもよい。この明細書では、「デュアル部分暗号化」の実施例を用いて本発明を説明するが、本発明を逸脱することなく、複数の部分暗号化を用いて本発明を実現してもよいことは当業者にとって明らかである。ここに用いられる用語「パッケージ媒体」及び同様の用語は、電子的にダウンロード可能なデータストリームとは異なり、例えば、デジタルバーサタイルディスク(DVD)、コンパクトディスク(CD)又はこの他の磁気記録媒体、光記録媒体又はこの他の種類の記録媒体等、一般に、電子ストレージ媒体を含むパッケージとして、取引され、小売の商品として販売されるあらゆる記録媒体を包含するものとする。用語「マクロブロック」は、ビデオ画像を生成するために用いられる1つ以上のブロックの集合として構成されるオブジェクトを意味する。この用語は、様々なモーションピクチャエキスパートグループ(Moving Pictures Expert Group:MPEG)ビデオ規格及びアドバンスドビデオコーディング(Advanced Video Coding:AVC)において使用される用語に一致するが、本発明はこれらの規格に制限されるものではない。
【0007】
出願人が共通の上述した特許文献には、ここでは、包括的に部分暗号化又は選択暗号化と呼ぶ技術の様々な側面に関連する発明が開示されている。詳しくは、これらの特許文献には、2つ(又は3つ以上)の暗号化方式を用いて、デジタルコンテンツの特定のセレクションの選択された部分を暗号化するとともに、コンテンツの他の部分を暗号化しないまま残す手法が開示されている。暗号化された部分は、複数のパケット識別子を用いて特定され、互いに区別される。暗号化すべき部分を適切に選択することによって、コンテンツの全体を選択して暗号化することなく、複数の復号方式を用いてコンテンツを効果的に暗号化できる。幾つかの実施例では、複数の暗号化システムを用いてコンテンツを効果的に暗号化するために必要なデータオーバヘッドは、数パーセント程度である。これにより、ケーブルシステム又はサテライトシステムは、単一のシステムにおいて、複数の製造業者からのセットトップボックス又は限定受信(CA)を実現するこの他の機器を利用でき、この結果、ケーブル放送業者又は衛星放送業者は、セットトップボックスの提供業者との契約について競争する必要がなくなる。
【0008】
上述した特許出願に開示されている部分暗号化処理では、適切な如何なる暗号化法を利用してもよい。但し、これらの暗号化方式は、データストリームの全体を暗号化するのではなく、上述の特許出願において開示されている技術を用いて、データストリームに選択的に適用される。本発明を限定するわけではないが、包括的に言えば、選択的暗号化処理では、番組の全体をデュアル暗号化する必要がなくなるように、暗号化する情報をインテリジェントに選択する。暗号化すべきデータを適切に選択することにより、番組のマテリアルを効果的にスクランブルすることができ、システムをハッキングし、料金を支払うことなく不正に商用コンテンツを復元しようとする者から番組のマテリアルを保護することができる。オーディオデータ及びビデオデータを表現するのに用いられるMPEGデータ(又は同様のフォーマットのデータ)は、フレーム間の情報の冗長性に対して高い依存率を有し、これを利用している。ある種のデータは、色差及び輝度のデータを表す「アンカ」データとして伝送することができる。このデータは、ブロックの動きを記述する動きベクトルを伝送することによって、画面上を単に移動し、これにより次のフレームが生成される。また、色差及び輝度のデータにおける変化は、絶対アンカデータ(absolute anchor data)ではなく、変化を表す情報として符号化される。したがって、このアンカデータ又は例えば他の重要なデータを暗号化することにより、ビデオを効果的に視聴できなくすることができる。
【0009】
上述の発明のある実施例においては、暗号化するよう選択されるビデオデータは、次に示すデータのうちの個々のデータ又はこれらの組合せであってもよい(詳細については、上述した特許文献に開示されている)。すなわち、暗号化するよう選択されるデータとしては、例えば、ビデオフレームのアクティブ領域に出現するビデオスライスヘッダ、ビデオフレームのアクティブ領域を表すデータ、ビデオフレーム内の星形パターンのデータ、シーン変化を表すデータ、Iフレームパケット、Iフレームに続く第1のPフレームに動きベクトルを含むパケット、イントラスライスフラグインジケータの組を有するパケット、イントラスライスインジケータの組を有するパケット、イントラ符号化されたマクロブロックを含むパケット、イントラ符号化されたマクロブロックを含むスライスのためのデータ、ビデオスライスヘッダに続く第1のマクロブロックからのデータ、パケットを含むビデオスライスヘッダ、アンカデータ、プログレッシブに更新されるビデオデータのためのPフレームデータ、ビデオフレーム上の垂直及び/又は水平モートパターン内に配置されたデータ、及びビデオ及び/又はオーディオの利用を困難にするために選択されるこの他のデータがある。上述の特許文献では、他の手法とともに、これらの手法の幾つかが開示されており、本発明では、これらのいずれかの技術(又はこの他の技術)を用いて、コンテンツの一部のみを暗号化することができる。
【0010】
上述の発明に基づいて、複数の暗号化アルゴリズムを用いて暗号化された2つ以上のデジタルテレビジョン信号を区別するために、複数のパケット識別子(packet identifier:以下、PIDという。)が利用されている。通常、特定のテレビジョン番組を特定するために、パケット識別子の単一の組が使用されている。上述した特許文献において開示されている複数の選択的な暗号化構成の下でテレビジョン信号を暗号化する場合、クリアなコンテンツには、一方のPIDの組が割り当てられ、暗号化されたコンテンツの各組には、他方のPIDの組が割り当てられる(ある実施例では、一組の暗号化されたコンテンツは、同じPIDを暗号化されていないコンテンツと共有できる)。データを受信するSTBは、再生のために、全ての適切なコンテンツを単一のPIDに再マッピングする。この処理は、上述した特許文献において詳細に説明されている。
【0011】
本発明のある実施形態では、コンテンツ差替(content substitution)を提供するメカニズムとしてコンテンツの単一のアイテムに関連付けられた複数のPIDを利用する。コンテンツ差替により、様々な手法で、テレビジョン番組を高度にカスタマイズすることができる。例えば、コンテンツ差替により、ある広告を他の広告に差し替えることによって、視聴者のターゲットを絞った広告を実現できる。また、コンテンツ差替を用いることにより、番組のエンディング、プロット又はこの他のセグメントを複数個提供でき、又はスポーツニュース又は他の番組において、複数の視点を提供できる。本発明に基づくコンテンツ差替の他の応用例については、以下の記述において随時説明する。これらの各応用例及びこの他の応用例は、本発明を用いることにより、帯域幅を大幅に増加させることなく、妥当なハードウェアのコストで、容易に実現することができる。
【0012】
本発明の実施例として、図1に全体を示すコンテンツ差替処理100は、ステップ104において開始される。次に、ステップ108において、コンテンツに関する複数の可能性(例えば、複数の広告、ロゴ、プロット、エンディング、登場人物等)を表す複数のPID(例えば、この実施例におけるPID_A及びPID_B)によって特定された部分を有するコンテンツを受け取る。このコンテンツは、(ケーブル放送や衛星テレビジョン放送等の場合)コンテンツのストリームとして受信してもよく、或いはパッケージ化された媒体又はダウンロードされたファイルを介して受け取ってもよい。どのような場合でも、ステップ112において、通常、特定のパケット識別子(例えば、PID_A)によって指定されたコンテンツのメインの部分を用いて、処理動作(例えば、コンテンツの再生又は伝送等)が開始される。ステップ116では、コンテンツを調べ、所定の差替基準(substitution criterion)が満たされているか否かを判定する。このような評価基準は、例えば、ローカルのコンテンツ配信業者が、ローカルな、すなわち地方向けの広告、ウォータマーク又はロゴに差し替えることを望んでいる全国向けの広告、ウォータマーク又はロゴの存在であってもよく、又は、このような評価基準は、エンドユーザによる特定のプロット、登場人物、エンディングの選択を含んでいてもよい。
【0013】
ステップ116において、評価基準が満たされていないと判定された場合、メインのコンテンツ(PID_A)の処理は、ステップ120に移行する。一方、ステップ116において、評価基準が満たされていると判定された場合、処理は、ステップ120に移行し、(例えば、PID_Aを有するコンテンツをPID_Bを有するコンテンツに差し替え、又は、これらに限定されるものではないが、一対一の差し替え、一対一の挿入、多対一の挿入/削除を含む、ここに説明する他のコンテンツ差替動作のいずれかを行うことによって)コンテンツ差替を実行する。このような差替は、デコーダ又は他のプロセッサが同じPIDを有するコンテンツに対する処理を継続できるようにするための、PID値の再マッピングを伴っていてもよい。これに代えて、コンテンツが差し替えられている場合、デコーダがメインのコンテンツに優先して差し替えられたコンテンツを選択するようデコーダをプログラミングしてもよい。処理は、ステップ120又はステップ124からステップ128に移行し、ここで、コンテンツを調べ、コンテンツの最後の部分に到達したか否かが判定される。コンテンツの最後の部分に到達していない場合、処理はステップ116に戻る。一方、コンテンツの最後の部分に到達した場合、処理はステップ132において終了する。好適な実施形態では、コンテンツの置換は、ビデオのマクロブロックの置換によって実現される。
【0014】
このように、本発明に基づくコンテンツ差替方法では、コンテンツの第1及び第2の部分に関連付けられた少なくとも第1及び第2のパケット識別子(PID)を有するデータであって、コンテンツを表すデータを受け取り、第1のPIDを有するコンテンツを再生し、差替基準が満たされたことを判定し、第1のPIDを有するコンテンツを第2のPIDを有するコンテンツに差し替える。
【0015】
この処理では、例えば、ローカルのケーブル放送オペレータは、複数の広告(コマーシャル)の組を含む番組を受け取ることができる。ローカルのケーブル放送オペレータの地理的な位置に応じて、複数のローカル広告のうち、ローカルのケーブル放送オペレータの地理的な位置又は市場により適切である広告と共にメインのコンテンツを再送してもよい。別の実施例では、ケーブル放送オペレータは、加入者に対し、選択可能な複数のエンディングを有する映画を放送することもできる。加入者は、映画を観る前又は後に、どのエンディングが好ましいかを判断し、好みのエンディングを選択することができる。加入者は、STBにコマンドを送り、STBは、特定のPIDに関連付けられているエンディングを選択することによって、自らが好む差替可能なエンディングを選択し、このPIDをメインの番組のPIDに再マッピングする。この開示から、当業者は、他の様々な実施例を想到することができる。
【0016】
図2は、例示的なケーブルシステム200の構成を示している。このケーブルシステム200において、衛星アンテナ204は、ヘッドエンドインザスカイ(Headend In The Sky:以下、HITS(商標)という。)放送等の衛星通信放送から、多重化されたコンテンツのストリームを受信する。コンテンツのストリームは、衛星電波受信装置208において、受信され、復調され、復号され、差替可能な情報を有するコンテンツは、PIDマッパ/フラグ挿入器212に供給される。このPIDマッパ/フラグ挿入器212の動作は、以下の説明によって明らかとなる。ローカルコンテンツデータベース216又は他のコンテンツのソースから、更なるコンテンツを読み出してもよい。これに代えて複数のPIDを有するコンテンツの符号化された差替可能な部分は、直接、衛星システムから受信してもよい。一実施例においては、PIDマッパ/フラグ挿入器212は、何らかのソースからの入力コンテンツにおけるメインのコンテンツをメインのPIDの組にマッピングし、差替可能なコンテンツをセカンダリ又はシャドウPIDの組にマッピングする。受信データが既に複数のPIDを有する符号化コンテンツを含んでいる他の実施例においては、PIDマッパ/フラグ挿入器212に対し、所望のコンテンツのみを選択するためにPIDを再マッピングするよう指示してもよい。また、PIDマッパ/フラグ挿入器212によって、コンテンツの差替を開始し、及び終了する位置を特定するためのフラグをコンテンツに挿入してもよい。
【0017】
コンテンツは、PSI/PMT挿入器220に供給され、PSI/PMT挿入器220は、プログラミングを復号する際に復号側で用いられるプログラム固有情報(Program Specific Information:PSIという。)及びプログラムマップテーブル(Program Map Tables:以下、PMTという。)をコンテンツのストリームに挿入する。コンテンツが暗号化すべきコンテンツであれば、そのコンテンツは、暗号化器224において暗号化された後、変調器(例えば、直交振幅変調変調器)230に供給され、変調される。変調されたコンテンツのストリームは、ケーブルプラント236を介して、セットトップボックス240、244等のデコーダボックスを有するエンドユーザに送信される。以下に限定されるものではないが、コンテンツ差替のためのPIDマッピングを含むケーブルヘッドエンドの動作は、制御コンピュータ300の制御の下で行われる。
【0018】
このようなシステムにより、本発明のある実施例に基づいてメインのコンテンツ及び差替コンテンツを表す入力データが供給されるコンテンツ差替エンコーダを構成することができる。パケット識別子(PID)マッパは、プライマリPIDをメインのコンテンツに割り当て、セカンダリPIDを差替コンテンツに割り当てる。プライベートデータ生成器は、ユーザプライベートデータを生成するプライマリPIDによってメインのコンテンツを特定し、セカンダリPIDによって差替コンテンツを特定する。そして、これらのプライベートデータ、プライマリPIDにマッピングされたメインのコンテンツ及びセカンダリPIDにマッピングされた差替コンテンツを組み立てて、データストリームが生成される。
【0019】
図1に示すコンテンツ差替処理100は、図2〜図3に示す制御コンピュータ300として動作する適切にプログラミングされた何らかの汎用コンピュータによって行われる。制御コンピュータ300は、1つ以上の中央演算処理装置(central processor unit:以下、CPUという)310を備え、CPU310は、周知の手法により、1つ以上のバス314を介して、ランダムアクセスメモリ318及び不揮発性メモリ322に接続されている。ディスプレイやプリンタ等である出力装置326は、多チャンネル運営事業者(multiple service operator:MSO)で使用するために、出力情報を表示及び/又は印刷するとともに、例えば、グラフィカルユーザインタフェース(Graphical User Interface:以下、GUIという。)等のユーザインタフェースを提供する。同様に、キーボードや、マウスやリムーバブル媒体読取装置等の入力装置330により、オペレータは、情報を入力することができる。また、制御コンピュータ300は、以下に限定されるものではないが、オペレーティングシステム及びコンテンツ、並びにコンテンツ差替処理プログラム(ローカルコンテンツデータベース216等の大規模な付属ストレージ装置に保存される場合が多い)を含む大量の情報を保存するための内部の及び/又は外部の付属ディスク又はこの他の大容量記憶媒体334(例えば、磁気ディスク及び/又は光ディスク)を備える。また、制御コンピュータ300は、ケーブルシステムのヘッドエンドにおける被制御の機器に接続するためのインタフェース338を備えている。ここでは、単一のコンピュータを示しているが、デジタルコンテンツプロバイダは、相互にリンクされた複数のコンピュータを用いて、ここに説明する機能を実現してもよい。
【0020】
上の説明では、主に、差替可能なコンテンツがケーブルシステムのヘッドエンドで挿入されると仮定しているが、様々な手法で、複数の目的に応じて、複数のレベルでコンテンツ差替を行うことによって本発明に基づくコンテンツ差替の概念を実現できることは、当業者にとって明らかである。例えば、ケーブルテレビジョンの視聴者が対話型のテレビジョン番組を視聴している場合、視聴者の選択(例えば、リモートコントローラによる)に基づいて、特定の差替基準(例えば、エンディングの選択)を確立することができる。なお、ケーブルヘッドエンドは、本発明の実施例に基づいて、例えば、全国的広告をローカル広告に差し替えることにより、又は、全国的ロゴをローカルチャンネルロゴに差し替える(又は追加する)ことによってコンテンツ差替を行うこともできる。
【0021】
この差替は、元のコンテンツのビデオデータのマクロブロックを代替ビデオデータを含むマクロブロックに置換することによって実現される。マクロブロックの大部分は、置換されるビデオ画像の所望の領域と重複しているため、差替ビデオデータの幾つか又は全ては、元のデータと同じであってもよい。
【0022】
以下、例えば、ケーブルテレビジョンジョンシステムにおいて、幾つかの視聴者のグループに対し、コンテンツプロバイダが差替可能な広告を提供する本発明の実施例について説明する。この実施例では、例えば、ケーブルシステムのヘッドエンドに保存された視聴者プロファイルに基づいて、有線テレビジョンジョンの視聴者を3つのカテゴリに区別できると仮定する。図4は、例示的なテレビジョン番組350と、これに関連する3個の個別の広告354、356、358を示している。ここでは、3つの広告を区別するために、3個の異なるPIDの組を用いている(説明を簡潔にするために、1つの広告について1つのPIDが対応すると仮定する)。一組の視聴者向けのメインの広告354については、広告354は、プログラムコンテンツと同じPID(例えば、PID100)を共有できる。
【0023】
第1の代替的な広告356は、代替的なPID(例えば、PID101)によって特定され、第2の代替的な広告は、別の代替的なPID(例えば、PID102)によって特定される。したがって、メインの広告を表示する場合、このメインの広告は、プログラムコンテンツとPIDを共有し、デフォルトで表示される設定になっているので、デコーダ(例えば、テレビジョンのSTB)には、如何なる特別な指示を与える必要もない。代替的な広告356を復号すべきデコーダに対しては、このデコーダが、PID101に対応するデータを検出したときは、常に、PID100に対応するコンテンツをこのPID101に対応するコンテンツに差し替えるように、ケーブルシステムのヘッドエンドから命令を送信する。同様に、代替的な広告358を復号すべきデコーダに対しては、このデコーダが、PID102に対応するデータを検出したときは、常に、PID100に対応するコンテンツをこのPID102に対応するコンテンツに差し替えるように、ケーブルシステムのヘッドエンドから命令を送信する。一実施例では、PID100を有するパケット化された各ビデオデータは、PID101及びPID102にそれぞれ対応するパケットを含んでいる。他の実施例においては、必ずしも一対一の関係は要求されない。いずれの場合も、デコーダにおいて、パケットが適切な順序で処理されるように、パケットカウント値を維持する必要がある。
【0024】
この実施例では、この処理の本質である直接的な差替を示すためにコンテンツを並べて示している。なお、図4に示すように、メインのコンテンツ、第1の差替コンテンツ、第2の差替コンテンツを順次表示するシーケンスを繰り返すように、パケットの系統的なシーケンスとしてコンテンツを構成してもよい。様々な実施例として、プライマリPID及びセカンダリPIDに対応するパケットが、プライマリの後にセカンダリ、又はセカンダリの後にプライマリの順序で出現するようにパケットを配置してもよい。パケットを交互に設けることにより、パケットの受信における不要な遅延を回避し、パケットの順序を維持することができる。プライマリパケットとセカンダリパケットの間に一対一の関係が存在する場合、プライマリパケット及びセカンダリパケットのそれぞれは、表示の順序を決定するために用いられるパケット番号を有することができる。このような番号は、復号処理において、受信したコンテンツの順序を維持するために変更してもよい。また、本発明の範囲を逸脱することなく、他の実施例も可能である。
【0025】
ケーブルシステムのMSOによって、視聴者の組に対し、ターゲットを絞った広告を提供することに加えて、同様の技術によって、ネットワークにおいて、例えば、単一のデータストリームに複数の地方広告を埋め込み、ローカルネットワーク又はケーブルオペレータにおいてPIDの再マッピングを行って、各地域に適切な広告を選択することにより、地域毎に異なる広告を提供することができる。すなわち、図4に示す3つの広告は、例えば、米国の東海岸、米国の中部、米国の西海岸の3つの地方向けの広告を表していてもよく、或いは、他の任意の区域について、差し替えられる広告を幾つ設けてもよい。
【0026】
図5は、コンテンツ差替によって、映画のプロットとエンディングを差し替えることができる例示的な実施例を示している。この映画を表すデータは、パッケージングされた媒体コンテンツ(例えば、デジタルバーサタイルディスク(DVD))として保存してもよく、有線テレビジョンジョンのMSO等のコンテンツプロバイダから放送してもよい。この実施例では、メインの映画360例えば、メインのPID110を用いて伝送又は保存される。この映画では、例えば、映画の再生の間に視聴者が選択操作を行うことにより、又は映画の再生の間に周期的な決定を行うことにより、3つのプロットと3つのエンディングを選択できる。第1のプロットA362は、映画のメインの部分及びメインのエンディングA364と同じPID110に対応している。視聴者が(個別に又はまとめて)プロットAとエンディングAとを選択した場合、テレビジョンSTB内のデコーダは、映画の全体についてPID110を選択する。同様に、プロットB368は、エンディングB372と同じPID111に関連付けられている。同様に、プロットC376は、エンディングC380と同じPID112に関連付けられている。視聴者がプロットB及び/又はエンディングBを選択した場合、STBデコーダは、PID100をPID111に差し替えるように指示され、これにより、代替的なプロットB及び/又はエンディングBが選択される。同様に、視聴者がプロットC及び/又はエンディングCを選択した場合、STBデコーダは、PID100をPID112に差し替えるように指示され、これにより、代替的なプロットC及び/又はエンディングCが選択される。
【0027】
図6に示す具体例では、特定のPID、例えばPID120を用いるプログラム384は、マーカPID392として機能する情報の代替的な部分を含むPID120を有するブランク部分388を含んでいる。
【0028】
上述した代替的なPIDを用いるコンテンツ差替は、いろいろな目的に利用できる。図7は、本発明に基づくコンテンツ差替技術を用いた、広告バナーの置換及びロゴ又はウォータマークの追加を説明する図である。この実施例では、メインのコンテンツのセグメントは、情報がMPEGデジタル符号化を用いて符号化された、水平なスライスに分割されるテレビジョンの画面400として示されている。第1の広告、例えば、全国的な広告404は、スクリーンの左上の付近において、連続する幾つかの画像のスライスに表示される。ロゴ又はウォータマーク408は、画面400の右下の付近において、1つのスライスに表示される。ここで、コンテンツ差替を用いて、新しい画面を生成できる。広告404を含むパケットは、ローカルな又は他の代替的な広告バナー412を含むパケットに置換できる。同様に、ウォータマーク408は、ビデオ画像のスライス内のあるパケットにコンテンツ差替を適用することによって、置換又は追加することができる。この実施例では、追加的なロゴを含むパケットの差替によって、ネットワークロゴであるウォータマーク408に他のロゴ(例えば、ローカルチャンネル又は他のロゴ)416を追加してもよい。
【0029】
図8は、ビデオフレーム420を構成するマクロブロックの構造を示している。ある標準解像度のMPEG規格に準拠するビデオデータでは、フレームは、30個のビデオスライスから構成され、各ビデオスライスは、それぞれスライスヘッダ422(図8のSH1〜SH30)に関連付けられている。各スライスは、33個のマクロブロック424(図8のMB1〜MB33)に分割される。MPEG又は他のビデオフォーマットを用いる他の実施形態(例えば、高精細度)では、スライスの数及び/又はスライス1つあたりのマクロブロックの数は、これより多くても少なくてもよい。いずれの場合も、画像は、マクロブロックの集合として構成され、この具体例では、1フレームあたり990個のマクロブロックから構成される。これに対応する一実施形態では、元の画像内の1又は2つ以上のマクロブロックを差し替え、マクロブロックベースで新たな画像を生成することができる。
【0030】
図9は、ある具体例を簡略化して示している。この具体例では、画像の一部は、6つの連続するマクロブロックから構成されている。説明を明瞭にするために、それぞれ実線の直線で示す垂直線432及び水平線434は、マクロブロックの境界を表している。左の画像では、6つのマクロブロック435、436、437、438、439、440から構成される星形の図形を示している。ある実施形態では、これらのマクロブロックを構成するビデオデータには、第1のPID(例えば、PID A)を関連付ける。差替コンテンツは、6つの差替マクロブロック442、443、444、445、446、447の形式で提供できる。これら差替マクロブロックを定義するビデオデータは、第2の(代替の)のPID(例えば、PID B)を用いて特定できる。そして、コンテンツ差替処理を行うために、所望の位置に出現するPID Aに関連付けられたマクロブロックを、PID Bを有するマクロブロックに置換する。
【0031】
これらは、本発明に基づくPIDマッピング技術を用いて実現される様々な種類のコンテンツ処理の幾つかの例示に過ぎない。以下の表は、他の幾つかの実施例を示している。なお、当業者は、ここでの説明に基づいて、この他の多数の実施例を容易に想到できる。
【0032】
【表1】
【0033】
図10は、本発明に基づく複数のPIDを有するトランスポートストリームを復号するデコーダを実現するためのメカニズムを示す状態図である。この状態図における番号が付されたパスを説明する表を以下に示す。
【0034】
【表2】
【0035】
セカンダリPIDパケットによってプライマリPIDパケットを置換するモードは、「差替モード」と呼ばれる。セカンダリPIDパケットは、プライマリPIDパケットを置換することなくストリームに挿入してもよい。このモードは、「挿入モード」と呼ばれる。また、デコーダは、両方の動作が同時にアクティブであるモードで動作してもよい。これは、「挿入及び削除モード」と呼ばれる。これらの3つの個々のデコーダモードは、全て互いに排他的であり、各モードは、各モードに固有の一連の状態遷移に従って移行する。アクティブなモードは、デコーダ固有の可変モードを介してシグナリングされる。モードの値がゼロに設定された場合、復号は、イネーブルにされず、トランスポートデコーダ状態マシンは、バイパスされる。モードの値が無効である(特別に定義された状態でない)場合、モードがゼロに設定されている場合と同じような動作が行われ、すなわち、トランスポートデコーダ状態マシンは、バイパスされる。以下、各モードへの状態遷移の定義について説明する。
【0036】
符号化されたトランスポートストリームを復号するためのアルゴリズムは、図10に示す状態マシンによって説明される。状態を示すペトリネット(Petri net)及び状態方程式/動作は、上述の状態テーブル及び図10から導き出すことができる。このアルゴリズムは、4つの動作状態があり、基本的には、状態1が優勢に維持される。状態2は、パケットがシャドウPID(メインのPIDでない)を含む場合にのみ移行される。ヘッドエンドからのPSIにおけるメッセージングによって設定されたシステムモードに応じて、2つの完全に異なる第2の状態への異なるパスを選択することができる。
【0037】
集積回路製造業者のデバイスアーキテクチャよって、ハードウェア又はソフトウェアのいずれかで状態マシンを実現することができる。これは、多くの場合、プログラミングされたプロセッサ上のソフトウェアとして実現した方が、設計の柔軟性が高まると考えられる。
【0038】
エラーの状態(規則外の状態遷移)も定義されている。このエラーは、連続カウンタ等のMPEGトランスポート層におけるエラー、トランスポートエラーを始めとする固有のエラー(unique error)である。エラー_IRQnは、レガシーパケットが介在しない連続する2つのシャドウパケットの検出を意味し、nは、特定のデコーダの番号を表していている。
【0039】
エラーに関するデコーダ固有の可変キューの設定により、2つの異なる動作を実行できる。変数が真に設定されている場合、デコーダは、第2のシャドウパケット(PID=B)をエラーがない場合と同様に処理する。変数が偽に設定されている場合、第2のシャドウパケットは、削除される。
【0040】
パケットが挿入又は削除される場合、プライマリストリーム(PID=A)の連続カウンタ(CC)は、CCを適切に調整することによって維持される。復号RSTn変数は、構成レジスタを介して設定でき、又はデコーダ状態マシンnを既知の状態に強制的に遷移させる他の関数によってアクセスできる非ラッチ型ビットである。
【0041】
デコーダトランスポート処理アルゴリズムの動作のモードの1つは、差替モードと呼ばれる。このモードを図11に示す。このモードでは、パケット502、504、506等のPID_Bを有するパケットは、PID_BをPID_Aに置換して、パケット512、514、516を生成することによってトランスポートストリームに挿入され、これにより、Aに一致するPIDフィールドを含んでいる所望のコンテンツパケットを有する、MPEGに準拠するトランスポートストリームが生成される。ここで、Aは、デコーダの構成レジスタによって先に定義されている13ビットの値である。PID_Aパケットについては、「ノンオペレーション」が実行される。「ホーム」状態である状態1において、パケット508等のパケットは、パケット510等のパケットに変換され、A/V伸張や表示等の更なる処理のためにトランスポートフィルタ出力キューに送られる。モード1では、デコーダ状態マシンは、差替フラグ520を受け取った後に、Bに一致するPIDフィールドを有するMPEGパケットを受け取ると、状態1から状態2Aに遷移する。Bは、デコーダの構成レジスタによって先に定義されている13ビットの値である。Bは、Aに一致するPIDを有する次に出現するレガシーパケットに差し替えるためのセカンダリ又は「シャドウ」パケットを表す。BパケットのPID値は、ストリームに挿入する前にAに変更される。状態2Aへの遷移に応じて、Bパケットコンテンツがトランスポートフィルタ出力キューに送られるために、この差替処理が行われる。
【0042】
次にPID_Aのパケットが受信されると、状態は状態1に戻る。この場合、このPIDはキューに送られず、ヌル(0x1fff)PID値に変換され、物理的にパケットを削除した場合のようなストリームの全体的なタイミングの変更を生じさせることなく、ストリームからこのパケットを実質的に除外することができる。また、置換モードの終了を示す別の差替フラグ524の受信によっても状態を状態1に戻すことができる。
【0043】
この他のデコーダトランスポート処理アルゴリズムの動作のモードの1つとして、図12に示す挿入モードと呼ばれるモードがある。このモードでは、Aに一致するPIDフィールドを含んでいる所望のコンテンツパケットを有する、MPEGに準拠するトランスポートストリームが生成される。ここで、Aは、デコーダの構成レジスタによって先に定義されている13ビットの値である。「ホーム」状態である状態1において、PID_Aを有するパケットは、例えばA/V伸張や表示等の更なる処理のためにトランスポートフィルタ出力キューに送られる。モード2では、デコーダ状態マシンは、状態1から遷移することはない。デコーダの構成レジスタによって先に定義された13ビットの値であるBに一致するPIDフィールドを有するMPEGパケットを受け取った場合、このBは、PID値をA変更して、ストリームに挿入するべき第2の又は「シャドウ」パケットを示している。このモードでは、挿入フラグ530が受け取られると状態が状態1から状態2Bに遷移する。パケット534、536等のPID_Bパケットは、パケット538、540等のPID_Aパケットとしてトランスポートストリームに挿入される。挿入モードは、次の挿入フラグ544の受信によって終了させることができる。
【0044】
図13は、デコーダトランスポート処理アルゴリズムAに一致するPIDフィールドを含んでいる所望のコンテンツパケットを含むMPEGに準拠するトランスポートストリームを生成するための挿入/削除モードを示している。ここで、Aは、デコーダの構成レジスタによって先に定義されている13ビットの値である。「ホーム」状態である状態1において、パケット508等のパケットは、パケット510等のパケットに変換され、A/V伸張や表示等の更なる処理のためにトランスポートフィルタ出力キューに送られる。モード1では、デコーダ状態マシンは、Bに一致するPIDフィールドを有するMPEGパケットを受け取ると、状態1から状態2Bに遷移する。ここで、Bは、デコーダの構成レジスタによって先に定義されている13ビットの値である。状態2Bにおいて、Aに一致するPID値を有するパケットが受け取られると、状態は状態3に遷移し、パケットPIDはヌルに変更され、これによりこのパケットは、事実上、トランスポートストリームから除外される。状態3において、Aに一致するPID値を有するパケットが受け取られると、パケットPIDはヌルに変更され、例えば、パケット550、552、554、566は、ヌルパケット560、562、564、566に変更される。状態1への遷移及び状態1からの遷移は、それぞれ挿入/削除フラグ570、574によって開始及び終了される。状態3では、PID_Bを有するパケット580、582等のパケットは、パケット586、588等のPID_Aを有するパケットに変換される。
【0045】
次にPID_Bを有するパケットが受信され、これがキューに送られ、PID_Aを有するパケットに変換されると、状態は状態2Bに戻る。また、状態2Bから状態1への遷移は、次にPID_Bを有するパケットが受信されときに行われ、このパケットもキューに送られ、PID値は、PID_Aに変換される。
【0046】
本発明に基づく方法では、プライベートシグナリング(private signaling)を用いて、プライマリPIDを有するコンテンツを受け取りながら、セカンダリPIDを有するコンテンツのユニットを選択することができる。これに代えて、プライベートシグナリングを用いて、セカンダリPIDを有するコンテンツの複数のユニットを選択するとともに、プライマリPIDを有するコンテンツのユニットを削除してもよい。同様に、プライベートシグナリングを用いて、プライマリPIDを有するコンテンツのユニットを受け取りながら、セカンダリPIDを有するコンテンツの複数のユニットを選択してもよい。更に、プライベートシグナリングを用いて、セカンダリPIDを有するコンテンツの複数のユニットを選択するとともに、プライマリPIDを有するコンテンツのユニットを削除するモードから、プライマリPIDを有するコンテンツのユニットを受け取りながら、セカンダリPIDを有するコンテンツの複数のユニットを選択するモードへの切換を行ってもよい。更に、プライベートシグナリングを用いて、プライマリPIDを有するコンテンツのユニットを受け取りながら、セカンダリPIDを有するコンテンツの複数のユニットを選択するモードから、セカンダリPIDを有するコンテンツの複数のユニットを選択するとともに、プライマリPIDを有するコンテンツのユニットを削除するモードへの切換を行ってもよい。
【0047】
セカンダリPIDを有するコンテンツのユニットは、プライマリPIDを有する対応するコンテンツのユニットの前又は後に送信してもよい。差替は、データストリーム内のパケットの適応層の一部を形成するプライベートシグナリングによって、開始され及び終了される。適応層は、第2のPIDを有するパケット、第1のPIDを有するパケット及び他のPIDを有するパケットのいずれに設けてもよい。
【0048】
参考のために、それぞれ、MPEGトランスポートパケットに用いられる構文と、MPEGトランスポートストリーム適応フィールドに用いられる構文と示す2つの表を以下に示す。
【0049】
【表3】
【0050】
【表4】
【0051】
デコーダモジュールを構成し、制御するために用いられる情報の多くは、トランスポートストリームに含まれ、STBミドルウェアによって復号されるMPEG PSIデータに由来する。構成と制御は、現在のデコーダの要求に応じて、MPEG−PSI仕様書を拡張することによって実現できる。本発明に基づくある実施例において用いられる拡張及びプライベートデータ構文を定義する表を以下に示す。
【0052】
【表5】
【0053】
「ペイロードなしの適応化(adaptation and no payload)」及び「ペイロードありの適応化(adaptation with payload)」のいずれを用いて、状態間の遷移をシグナリングしてもよい。適応フィールドでは、A、B又はCのみを「ヌル」、例えばNOPにでき、或いはストリーム内に単に残すことができる。
【0054】
本明細書ではハードウェアとして実現できる「レジスタ」の表現は、ソフトウェア又はマイクロコードによって実現される「変数」に置き換えることができる。いずれの場合も、共通のデコーダモジュールコマンド/制御構造及びインタフェースは、様々なアーキテクチャ及び能力を有する様々なSTBプラットフォームに亘って、ミドルウェアの互換性を実現することが望ましい。
【0055】
ある好適な実現例では、各デコーダモジュールは、19個のレジスタ(又は変数)を含んでいる。特に言及する場合を除き、全てのレジスタは、読出/書込レジスタであり、すなわち、書込を行うために用いたインタフェースと同じインタフェースを用いて、現在の値を読み出すことができる。全てのレジスタは、共通のベース値(原点)から連続してオフセットされている。この仕様におけるアドレスは、全てこのベース値との相対的な関係を表す値(オフセット値)である。レジスタは、以下の表に示すようにマッピングすることができる。
【0056】
【表6】
【0057】
状態レジスタを以下の表に示す(割込ソースレジスタ(読出専用)のアドレスを0x00とする)。
【0058】
【表7】
【0059】
割込が呼び出された場合、関連するビットは、「1」に設定される。同時に2つ以上のビットをアサートしてもよい。何らかのビットが設定されると、デコーダは、マスクレジスタの値に基づいて、ホストコントローラに割込をかける。ソースレジスタのコンテンツは、マスクレジスタによって、ビット毎に論理積演算し、この結果を論理和演算することにより、単一のIRQ出力が生成される。割込条件は、以下のようにまとめられる。
Decode_n_ERROR
Set on:レガシーパケットが介在することなく隣接する2つのシャドウパケットの検出
Reset on:割込状態レジスタの読出
読出専用の割込マスクレジスタのアドレスは、0x00である。割込マスクレジスタビットが「1」である場合、関連する割込はマスクされておらず、「0」である場合、関連する割込はマスクされている。マスクされた割込は、ホストプロセッサに割込出力を供給しない。マスクされた割込の割込フラグビットは、割込レジスタにおいて有効なままである。デフォルトのパワーアップ条件は、全ての割込がマスクされる(全ての割込マスクレジスタビットが「0」に設定される)ことである。
【0060】
【表8】
【0061】
構成レジスタは上述の通りである。
【0062】
デコーダ1のプライマリPIDレジスタ(読出/書込)は、アドレス0x01に設けられ、以下のように構成される。
【0063】
【表9】
【0064】
このプライマリPIDは、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0065】
デコーダ1のセカンダリPIDレジスタ(読出/書込)は、アドレス0x02に設けられ、以下のように構成される。
【0066】
【表10】
【0067】
このセカンダリPIDは、上述と同様、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0068】
デコーダ2のプライマリPIDレジスタ(読出/書込)は、アドレス0x03に設けられ、以下のように構成される。
【0069】
【表11】
【0070】
このプライマリPIDは、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0071】
デコーダ2のセカンダリPIDレジスタ(読出/書込)は、アドレス0x04に設けられ、以下のように構成される。
【0072】
【表12】
【0073】
このセカンダリPIDは、上述と同様、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0074】
デコーダ3のプライマリPIDレジスタ(読出/書込)は、アドレス0x05に設けられ、以下のように構成される。
【0075】
【表13】
【0076】
このプライマリPIDは、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0077】
デコーダ3のセカンダリPIDレジスタ(読出/書込)は、アドレス0x06に設けられ、以下のように構成される。
【0078】
【表14】
【0079】
このセカンダリPIDは、上述と同様、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0080】
デコーダ4のプライマリPIDレジスタ(読出/書込)は、アドレス0x07に設けられ、以下のように構成される。
【0081】
【表15】
【0082】
このプライマリPIDは、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0083】
デコーダ4のセカンダリPIDレジスタ(読出/書込)は、アドレス0x08に設けられ、以下のように構成される。
【0084】
【表16】
【0085】
このセカンダリPIDは、上述と同様、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0086】
デコーダ5のプライマリPIDレジスタ(読出/書込)は、アドレス0x09に設けられ、以下のように構成される。
【0087】
【表17】
【0088】
このプライマリPIDは、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0089】
デコーダ5のセカンダリPIDレジスタ(読出/書込)は、アドレス0x0Aに設けられ、以下のように構成される。
【0090】
【表18】
【0091】
このセカンダリPIDは、上述と同様、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0092】
デコーダ6のプライマリPIDレジスタ(読出/書込)は、アドレス0x0Bに設けられ、以下のように構成される。
【0093】
【表19】
【0094】
このプライマリPIDは、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0095】
デコーダ6のセカンダリPIDレジスタ(読出/書込)は、アドレス0x0Cに設けられ、以下のように構成される。
【0096】
【表20】
【0097】
このセカンダリPIDは、上述と同様、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0098】
デコーダ1のモードレジスタ(読出/書込)は、アドレス0x0Dに設けられ、以下のように構成される。
【0099】
【表21】
【0100】
モードの定義は以下の通りである。
0:全ての復号処理をバイパス、状態マシンをディスエーブル
1:差替モード
2:挿入モード
4:挿入及び削除モード
他の全ての値:全ての復号処理をバイパス、状態マシンをディスエーブル
デコーダ2のモードレジスタ(読出/書込)は、アドレス0x0Eに設けられ、以下のように構成される。
【0101】
【表22】
【0102】
モードの定義は以下の通りである。
0:全ての復号処理をバイパス、状態マシンをディスエーブル
1:差替モード
2:挿入モード
4:挿入及び削除モード
他の全ての値:全ての復号処理をバイパス、状態マシンをディスエーブル
デコーダ3のモードレジスタ(読出/書込)は、アドレス0x0Fに設けられ、以下のように構成される。
【0103】
【表23】
【0104】
モードの定義は以下の通りである。
0:全ての復号処理をバイパス、状態マシンをディスエーブル
1:差替モード
2:挿入モード
4:挿入及び削除モード
他の全ての値:全ての復号処理をバイパス、状態マシンをディスエーブル
デコーダ4のモードレジスタ(読出/書込)は、アドレス0x10に設けられ、以下のように構成される。
【0105】
【表24】
【0106】
モードの定義は以下の通りである。
0:全ての復号処理をバイパス、状態マシンをディスエーブル
1:差替モード
2:挿入モード
4:挿入及び削除モード
他の全ての値:全ての復号処理をバイパス、状態マシンをディスエーブル
デコーダ5のモードレジスタ(読出/書込)は、アドレス0x11に設けられ、以下のように構成される。
【0107】
【表25】
【0108】
モードの定義は以下の通りである。
0:全ての復号処理をバイパス、状態マシンをディスエーブル
1:差替モード
2:挿入モード
4:挿入及び削除モード
他の全ての値:全ての復号処理をバイパス、状態マシンをディスエーブル
デコーダ6のモードレジスタ(読出/書込)は、アドレス0x12に設けられ、以下のように構成される。
【0109】
【表26】
【0110】
モードの定義は以下の通りである。
0:全ての復号処理をバイパス、状態マシンをディスエーブル
1:差替モード
2:挿入モード
4:挿入及び削除モード
他の全ての値:全ての復号処理をバイパス、状態マシンをディスエーブル
デコーダリセットレジスタ(書込)は、アドレス0x13に設けられ、以下のように構成される。
【0111】
【表27】
【0112】
エラーの状態(規則外の状態遷移)も定義されている。このエラーは、連続カウンタ等のMPEGトランスポート層におけるエラー、トランスポートエラーを始めとする固有のエラー(unique error)である。ERROR_IRQnは、レガシーパケットが介在しない連続する2つのシャドウパケットの検出を意味し、nは、特定のデコーダの番号を表していている。エラーに関するデコーダ固有の可変キューの設定により、2つの異なる動作を実行できる。変数が真に設定されている場合、デコーダは、第2のシャドウパケット(PID=B)をエラーがない場合と同様に処理する。変数が偽に設定されている場合、第2のシャドウパケットは、削除される。
【0113】
幾つかの具体例では、置換すべきコンテンツは、パケット境界にある。幾つかの情報は、パケットの境界内に都合良く納まらないので、パケットを満たすために、不要なコンテンツを複製する必要がある場合も生じる。他の実施例として、単にパケットをヌルバイト(全て0)で埋めてもよい。典型的なビデオスライスは、イントラ符号化されたデータがどれ程存在しているかに応じて、約3〜8個のパケットを含んでいる。なお、MPEG−2仕様書では許可されているが、単一のビデオラインに複数のスライスがある場合、幾つかのデコーダでは、このようなスライスを処理することが困難である。
【0114】
更に、差し替えられたコンテンツが将来のフレームから参照される場合、エンディング問題(ending problems)が生じることもある。しかしながらこの問題は、差し替えられたコンテンツは、過去のフレームによって参照することができないという規則を設けることによって解決できる。視聴者又はセットトップボックスによる選択に応じて、コンテンツが異なるものとなる可能性のためである。将来のフレームへの参照は、参照情報の全てが差替コンテンツ内に含まれている場合、許可してもよい。またエンコーダは、量子化テーブルの特定の組を用いるので、差替コンテンツは、正しい復号を行うために、同じ量子化テーブルを用いて処理する必要がある。
【0115】
本発明に基づくコンテンツ差替は、アプリケーションに応じて、オンラインでもオフラインでも制限なく実行することができる。
【0116】
上述のようなデコーダは、テレビジョンSTBや他のテレビジョン受信機に組み込むことができ、これを用いて、ユーザ又はMSOによって制御されるコンテンツ差替能力をエンドユーザに提供できる。図14は、デジタルテレビジョンジョンのセットトップボックス600の構成例を示している。このようなSTBは、様々な構成を有することができ、ここに示すSTBは、様々なSTB構成のうちの1つを例示的に示したものである。この例示的なセットトップボックスでは、同軸ケーブル等の伝送媒体604は、適切なインタフェースによってチューナ608に接続される。チューナ608は、例えば、ビデオコンテンツを受け取るための放送帯域内チューナを含んでいてもよい。従来の高周波放送テレビジョンチャンネルからのデータを受信するために、独立したチューナ(図示せず)を設けてもよい。フォーマットされた変調された情報、例えば、MPEG−2情報は、復調器610において復調される。復調器610から出力される復調された情報は、PIDデコーダ/デマルチプレクサ/デスクランブラ回路614に供給され、ここで、情報は、番組の離散的チャンネル(discrete channels of programming)に分離される。プログラミングは、それぞれが特定の番組に関する特定の種類のデータ(例えば、オーディオ、ビデオ、データ)を含むパケットを特定するPIDを有するパケットに分割される。また、PIDデコーダ/復調/デスクランブラ回路614は、例えば、プログラミングコンテンツへの不正アクセスを防ぐために平文化アルゴリズムに従って暗号化された情報を復号する。PIDデコーダ/復調/デスクランブラ回路614のPIDデコーダ部分は、プログラムによる制御の下、図10を用いて説明したデコーダと同様に動作し、後述するように、特定のPIDを有するコンテンツを選択する。
【0117】
デマルチプレクサ614からのオーディオのパケット(オーディオPIDによって特定される)は、平文化され、オーディオデコーダ618に供給されて、スピーカシステム(例えば、ステレオ又はホームシアターマルチチャンネルオーディオシステム)又は、他のオーディオシステム622(例えば、ステレオ又はホームシアターマルチチャンネル増幅器及びスピーカシステム)を駆動するためのアナログオーディオ信号に変換され、或いは、単に、オーディオ出力626から復号されたオーディオデータが出力される。デマルチプレクサ614からのビデオパケット(ビデオPIDによって特定される)は、平文化され、ビデオデコーダ630に供給される。同様に、デマルチプレクサ614からのデータパケット(データPIDによって特定される)は、平文化され、データデコーダ634に供給される。
【0118】
データデコーダ634からの復号されたデータパケットは、システムバス638を介してセットトップボックスのコンピュータシステムに供給される。これにより、制御コンピュータ644は、システムバス638を介してデータデコーダ634からの復号されたデータにアクセスでき、同様に、メモリ646におけるプログラム及びデータにアクセスできる。ビデオデコーダ630によって復号されたビデオデータは、グラフィックプロセッサ648に供給され、グラフィックプロセッサ648は、コンピュータによって最適化され、グラフィック情報を高速に処理する。グラフィックプロセッサ648は、特に、インターネットの閲覧、ゲーム、マルチメディアハイパーメディア情報符号化エキスパートグループ(Multimedia and Hypermedia information coding Experts Group:MHEG)セットトップボックスアプリケーション等のマルチメディアアプリケーションに関連する画像処理に負担がかかるデータ(graphics intensive data)の処理に有用である。なお、グラフィックプロセッサ648の機能は、能力が低いセットトップボックス設計では不要であり、復号されたビデオデータがデマルチプレクサ614からビデオエンコーダに直接渡される幾つかのアプリケーションでは、グラフィックプロセッサ648の機能は、制御コンピュータ644によって制御してもよい。また、グラフィックプロセッサ648は、システムバス638に接続され、制御コンピュータ644の制御の下で動作する。
【0119】
STB600等の多くのセットトップボックスは、限定受信モジュール(Conditional Access Module:以下、CAMという。)として機能する、所謂「スマートカード(smart card)」と通信するために、スマートカードリーダ140を備えていてもよい。CAMは、多くの場合、関連するRAMとROMとともに、それ自身の央演算処理装置を備えている。このようなスマートカードを用いたCAMは、従来から、ユーザの認証、ユーザによって行われる取引の認証、並びにサービスの許可及び認証された暗号キーの保存等に用いられている。例えば、CAMを用いて、ユーザが受信することが認められているとCAMが判断したコンテンツに関する入力暗号データを復号するためのキーを提供することができる。
【0120】
STB600は、双方向通信モードで動作でき、これによりデータ及び他の情報は、システムのヘッドエンドだけからいずれかのエンドユーザ、又はサービスプロバイダからSTB600のエンドユーザだけではなく、帯域外チャンネルを用いるアップストリームのエンドユーザからも送信することができる。一実施例では、このようなデータは、システムバス638を介して、変調器652に供給された後、伝送媒体604の一部を構成するダイプレクサを介して、伝送媒体604から外部に送信される。この能力により、STB600及び/又はそのユーザは、情報(例えば、サービス要求又は変更、登録情報等)をヘッドエンドに送信でき、及び、ヘッドエンドがユーザに提供しているインターネット又は他のサービスとの高速な外部通信を行うことができる。
【0121】
セットトップボックス600は、セットトップボックス600と入出力機器とを相互に接続するための、入出力インタフェース656として表される複数の入出力(I/O)インタフェースいずれかを含んでいてもよい。一例としてこれに限定するものではないが、STB600の内部のソフトウェアによってサポートされている適切なシリアル機器との相互接続を実現するために、シリアルRS−232ポートを設けてもよい。同様に、適切な互換性がある機器との通信は、イーサネット(登録商標)ポート、汎用シリアルバス(Universal Serial Bus:以下、USBという。)ポート、(所謂ファイアワイヤ(商標)又はi−Link(商標))、IEEE1394ワイドポート又はS−ビデオポート等を介して行ってもよい。赤外線インタフェース660は、リモートコントローラ666との通信に用いられる。このようなインタフェースを用いて、STB600と、ストレージ装置、オーディオビジュアル機器、ゲーム機器(図示せず)インターネット接続専用端末28等の様々なアクセサリ機器のいずれかとを相互接続することができる。
【0122】
また、入出力インタフェース656は、モデムポートを有するモデム(ダイヤルアップモデム、ケーブルモデム、デジタル加入者回線モデム又は他の技術に基づくモデムのいずれであってもよい。)を含んでいてもよく、これにより、インターネット又は他のデータ通信機能への高速又は代替的アクセスを実現することができる。1つの好適な実施例では、モデムポート162は、DOCSIS(Data Over Cable System Interface Specification)に準拠するケーブルモデムであり、これにより、ケーブルシステムを介した高速ネットワークアクセスが実現され、ポートは、同軸ケーブルとして実現された伝送媒体604に適切に接続される。これにより、STB600は、DOCSISケーブルモデムを介して、固有のIPアドレスによって特定されるSTB600と双方向通信を行うことができる。DOCSIS仕様書は、公開されている。
【0123】
STB600にデータを入力するために、PS/2又はこの他のキーボード/マウス/ジョイスティックインタフェースを設けてもよい。このような入力装置により、ユーザは、データを容易に入力でき及び/又はポインティング装置を用いて情報をナビゲートすることができる。マウスやジョイスティック等のポインティング装置は、ゲームアプリケーションにおいて用いることもできる。
【0124】
もちろんSTB600は、IEEE1394接続に代えて(又はこれに加えて)、テレビジョンセットへの直接接続に用いることができる基本的なビデオ出力を備えていてもよい。一実施例でビデオ出力は、NTSC(米国テレビジョンシステム委員会:National Television System Committee)ビデオデータとしてフォーマットされたコンポジットビデオデータを出力する。幾つかの実施例では、例示的なブロック図に示すように、システムバス638を介するのではなく、グラフィックプロセッサ648又はデマルチプレクサ/デスクランブラ614への直接接続によってビデオ出力を提供できる。同様に、他の実施例では、必要に応じて、システムバス130を介することなくSビデオ信号を出力してもよい。
【0125】
赤外線インタフェース660は、赤外線のリモートコントローラ666、赤外線キーボード又はこの他の赤外線の制御装置からコマンドを受け取る。図示はしないが、幾つかの実施例では、インタフェースの1つとして提供されたフロントパネル制御インタフェースを介して、フロントパネル操作子を用いて、STB600の動作を直接制御できる。STB600には、必要又は要望に応じて、上述したインタフェース及びこの他のインタフェースを様々に組み合わせて設けることができる。
【0126】
本発明に基づく例示的な一実施例では、STB600を用いて、例えば、複数のエンディングから1つのエンディングを選択する等、複数のコンテンツを制御できる。このような場合、番組の終わりに近づくまでは、指定されたPIDの組を有するメインのプログラムコンテンツが通常の手法で再生される。番組の終わりに近づくと、複数のエンディングのうちからいずれかのエンディングを選択するためのメニューが視聴者に表示される。単純な具体例として、3つのPIDのそれぞれに関連付けられた、以下のような3つのエンディングがあるとする。(1)男が女を助ける。善玉が勝つ。(2)女が死ぬ。善玉が勝つ。(3)女が死ぬ。悪役が勝つ。
【0127】
視聴者は、リモートコントローラ666又は他の何らかの適切なメカニズムを用いて、可能なエンディングのうち、希望するエンディングを選択する。この選択のために、デフォルトで設定されているエンディングを再生する前に、一定の時間を視聴者に提供してもよい(例えば、エンディングを選択させるために、コンテンツを2分間中断する)。ユーザの選択に応じて、制御コンピュータ644は、ユーザが選択したエンディングを選択するためにPIDデコーダ614をプログラミングする。この期間が終了すると、PIDデコーダ614は、番組の復号を再開し、選択されたエンディングを再生するためのオーディオデータとビデオを生成するために、適切なPID再マッピングを行う。すなわち、番組が、通常、PID_Aに関連付けられており、ユーザが第3のエンディングを選択した場合、PID_Cに対応するパケットがPID_Aに再マッピングされ、再生される。このように、この具体例では、ユーザは、通常のコンテンツに差し替えられるコンテンツの特定のセグメントを再生されるための選択を行うことができる。
【0128】
したがって、本発明の実施例に基づくデコーダは、コンテンツの第1及び第2の部分に関連付けられる少なくとも第1及び第2のパケット識別子(PID)を有する、コンテンツを表すデータを受け取る受信機を備えている。コンテンツデコーダは、第1のPIDを有するコンテンツを再生するように構成されている。コントローラは、差替基準が満たされたことを判定し、PIDマッパは、第2PIDを有するコンテンツを第1のPIDにマッピングし、これにより、第2のPIDを有していたコンテンツが再生される。
【0129】
このように、本発明の一実施形態に基づくコンテンツ差替のための方法及び装置は、コンテンツの第1及び第2の部分に関連付けられた少なくとも第1及び第2のパケット識別子(PID)を有するデータであって、コンテンツを表すデータを受け取る。第1のPIDを有するコンテンツがデータストリームに挿入される。更に、PIDマッピング処理の開始を指示する開始フラグが受け取られる。次に、セカンダリPIDを有するコンテンツをプライマリPIDにマッピングし、このマッピングされたコンテンツをデータストリーム内に挿入する。次に、PIDマッピング処理の終了を指示する終了フラグが受け取られ、この時点で、処理は、第1のPIDを有するコンテンツをデータストリームに挿入する処理に戻る。コンテンツ差替処理は、広告の差替、検閲コンテンツの差替、複数のプロット、複数のエンディング、複数の視点の提供及びこの他の様々な用途に応用することができる。
【0130】
また、上述した本発明の例示的な実施例は、プログラミングされたプロセッサ(例えば、制御コンピュータ300)を用いて実現されることは、当業者に明らかである。なお、本発明は、このようなソフトウェアによる実現に限定されるものではなく、上述し、及び請求の範囲に定義した本発明に等価な特定用途のハードウェア及び/又は専用プロセッサ等を用いて実現してもよい。同様に、本発明は、汎用コンピュータ、マイクロプロセッサを用いたコンピュータ、マイクロコントローラ、光コンピュータ、アナログコンピュータ、専用プロセッサ、及び/又は専用ハードウェアワイヤードロジックを用いて実現してもよい。
【0131】
また、再生メカニズムを提供する汎用パーソナルコンピュータを例示して本発明を説明したが、本発明の主旨から逸脱することなく、専用のマシンによってこの再生を行ってもよい。
【0132】
一方、本発明に基づくデコーダについては、状態マシンを用いて説明したが、このような状態マシンは、ハードウェア又はソフトウェアのいずれに基づく状態マシンとして実現してもよい。更に、上述の例示的な実施例に関して説明した、レジスタ構成、PIDプロトコル及びこの他の詳細は、本発明を例示的に説明するためのものであり、本発明を制限するものではないことは、当業者にとって明らかである。
【0133】
また、上述の実施例を実現するためのプログラミングのステップ及びこれらに関連するデータは、本発明の範囲を逸脱することなく、読出専用メモリ(Read Only Memory:ROM)素子、ランダムアクセスメモリ(Random Access Memory:RAM)素子、光ストレージ装置、磁気ストレージ装置、光磁気ストレージ装置、フラッシュメモリ、コアメモリ、及び/又はこの他の同等のストレージ技術を用いても実現できる。これらと同様のストレージ装置は、等価物とみなすことができる。
【0134】
本発明は、先にフローチャートを用いて広く説明し、適切な電子ストレージ媒体に格納でき、又は適切な電子通信媒体を介して伝送できるプログラミング命令を実行するプログラミングされたプロセッサを用いて実現することができる。なお、上述した処理は、本発明の範囲を逸脱することなく様々に変形でき、様々な適切なプログラミング言語を用いて記述できることは当業者にとって明らかである。例えば、本発明の範囲から逸脱することなく、実行される動作の順序を変更でき、他の動作を加えることも幾つかの動作を省略することもできる。また、本発明の範囲を逸脱することなく、エラー修正処理を追加及び/又は拡張してもよく、ユーザインタフェース及び表示される情報を様々に変更してもよい。これらの変形も等価であるとみなされる。
【0135】
本発明のある側面を具体化するソフトウェアコード及び/又はデータは、コンピュータによって読取可能な如何なる媒体に存在してもよく、例えば、伝送媒体、記憶媒体及び伝播媒体のいずれに存在してもよい。これらの媒体としては、以下に限定されるものではないが、例えば、上述した電子記憶装置、搬送波、電子信号、データ構造(例えば、ツリー、リンクされたリスト、テーブル、パケット、フレーム等)、光信号伝播信号、放送信号、伝送媒体(例えば、回路接続、ケーブル、ツイストペアケーブル、光ファイバ、導波管、アンテナ等)、コード及び/又はデータを保存し、搬送し、伝送するこの他の媒体が含まれる。このような媒体は、ソフトウェアコード及び/又はデータを保存するために用いてもよく、或いは、コード及び/又はデータをある場所から他の場所に伝送するために用いてもよい。ここに示した例示的な実施例では、MPEGに準拠したパケット、スライス、テーブル、この他のデータ構造を用いているが、これらは本発明を制限するものではなく、本発明から逸脱することなく、この他のデータ構造を用いてもよい。
【0136】
本発明を特定の具体例を用いて説明してきたが、当業者は、上述の説明から多くの代替例、修正例、変更例、変形例を想到することができる。これらの代替例、修正例、変更例、変形例は、本発明の範囲内にある。
【図面の簡単な説明】
【0137】
【図1】本発明のある実施例におけるコンテンツ差替のための処理を示すフローチャートである。
【図2】本発明のある実施例におけるケーブルシステムのブロック図である。
【図3】本発明のある実施例における制御コンピュータのブロック図である。
【図4】本発明のある実施例における差替広告を示す図である。
【図5】本発明のある実施例における複数のプロット及び複数のエンディングを有する映画を示す図である。
【図6】本発明のある実施例におけるマーカを示す図である。
【図7】本発明のある実施例における、ローカルのバナー広告の差替及びロゴの追加を説明する図である。
【図8】ビデオフレームを構成するマクロブロックの構造を示す図である。
【図9】マクロブロックレベルにおける差替コンテンツを示す図である。
【図10】本発明のある実施例におけるデコーダ状態マシンの状態図である。
【図11】本発明のある実施例における差替モードを説明する図である。
【図12】本発明のある実施例における挿入モードを説明する図である。
【図13】本発明のある実施例における挿入/削除モードを説明する図である。
【図14】本発明のある実施例におけるデジタルテレビジョンジョンセットトップボックスの例示的なシステム構成を示す図である。
【関連出願】
【0001】
この出願は、2003年11月12日に出願された米国仮特許出願番号60/519,472号の優先権の利益を主張し、2002年9月9日に出願された米国仮特許出願番号60/409,675号及び以下、全てが2002年1月2日に出願された米国特許出願番号10/038,217号、米国特許出願番号10/038,032号、米国特許出願番号10/037,914号、米国特許出願番号10/037,499号及び米国特許出願番号10/037,498号の一部継続出願である2002年4月16日に出願された米国仮特許出願番号60/372,870号の優先権の利益を主張する2002年12月13日に出願された米国特許出願番号10/319,066号の一部継続出願である。これらの特許出願は、全て、引用により本願に援用される。
【0002】
また、本出願は、2003年9月22日に出願された米国特許出願番号10/667,614号、2002年10月18日に出願された米国特許出願番号10/273,905号、2002年10月18日に出願された米国特許出願番号10/273,903号、2002年10月18日に出願された米国特許出願番号10/274,084号、2002年10月18日に出願された米国特許出願番号10/274,019号に関連し、これらの特許出願は、全て、引用により本願に援用される。
【著作権表示】
【0003】
この明細書の開示内容の一部は、著作権保護の対象となる資料を含んでいる。著作権者は、この明細書が特許商標庁への特許出願又は記録であると認められる複製又は特許開示に対しては異議を唱えないが、それ以外のあらゆる全ての著作権を保有する。
【背景技術】
【0004】
MPEGビデオ等の従来のデジタルビデオコンテンツは、単一の番組、映画又は他のコンテンツの形式を有し、サービスプロバイダ又はユーザは、代替のコンテンツを選択して視聴体験を変更することはできない。対話型のコンテンツを提供するための様々なメカニズムが提案されているが、このような提案は、実現が高価であり、広い帯域幅を必要とし、また、多くは、サーバを含む高価な特別の設備及び/又はこの他のサポート設備を必要としている。したがって、ビデオコンテンツのエンドユーザが自らコンテンツをカスタマイズし及び操作できる「対話型」アプリケーションの需要があるにもかかわらず、このようなシステムは未だに市販されていない。
【発明を実施するための最良の形態】
【0005】
本発明は、数多くの異なる構成の実施例があるが、図面を参照して詳細に説明する特定の実施例は、開示内容が本発明の趣旨の一例とみなされるものであり、本発明をその特定の実施例に限定するものではない。後述する実施例において、類似の参照番号は、複数の図面における同じ、類似、又は対応する部分には、同じ参照番号を付している。
【0006】
用語「スクランブル(scramble)」、「暗号化(encrypt)」及びその活用形は、ここでは同義で用いられている。また、用語「ビデオ(video)」は、真の視覚的情報のみではなく、日常会話的な意味(例えば、「ビデオテープレコーダ」)も含み、ビデオ信号のみではなく、関連するオーディオ信号及びデータ信号も包含する。この明細書では、「デュアル選択的暗号化」の実施例を用いて本発明を説明するが、本発明から逸脱することなく、複数の部分暗号化を用いて本発明を実現できることは、当業者にとって明らかである。用語「部分暗号化」及び「選択的暗号化」は、ここでは同義で用いられている。また、用語「番組(program)」、「テレビジョン番組(television program)」及び類似の用語は、日常会話に使用する意味とともに、テレビジョン受信機又は同様のモニタ装置に表示することができるA/Vコンテンツのいずれかのセグメントの意味にもなる。用語「レガシー」とは、既存のケーブルシステム及び衛星システムにおいて用いられている既存の技術を意味する。ここに開示された例示的な実施例では、データは、テレビジョンのセットトップボックス(STB)によって復号されるが、このような技術は、全ての種類のテレビジョン受像機に組み込んでもよく、この場合、テレビジョン受像機の筐体内に組み込んでもよく、独立した筐体内に組み込んでもよく、記録及び/又は再生装置に関連付けてもよく、又は、限定受信(Conditional Access:CA)復号モジュール又はテレビジョンセット自体の中に設けてもよい。この明細書では、「デュアル部分暗号化」の実施例を用いて本発明を説明するが、本発明を逸脱することなく、複数の部分暗号化を用いて本発明を実現してもよいことは当業者にとって明らかである。ここに用いられる用語「パッケージ媒体」及び同様の用語は、電子的にダウンロード可能なデータストリームとは異なり、例えば、デジタルバーサタイルディスク(DVD)、コンパクトディスク(CD)又はこの他の磁気記録媒体、光記録媒体又はこの他の種類の記録媒体等、一般に、電子ストレージ媒体を含むパッケージとして、取引され、小売の商品として販売されるあらゆる記録媒体を包含するものとする。用語「マクロブロック」は、ビデオ画像を生成するために用いられる1つ以上のブロックの集合として構成されるオブジェクトを意味する。この用語は、様々なモーションピクチャエキスパートグループ(Moving Pictures Expert Group:MPEG)ビデオ規格及びアドバンスドビデオコーディング(Advanced Video Coding:AVC)において使用される用語に一致するが、本発明はこれらの規格に制限されるものではない。
【0007】
出願人が共通の上述した特許文献には、ここでは、包括的に部分暗号化又は選択暗号化と呼ぶ技術の様々な側面に関連する発明が開示されている。詳しくは、これらの特許文献には、2つ(又は3つ以上)の暗号化方式を用いて、デジタルコンテンツの特定のセレクションの選択された部分を暗号化するとともに、コンテンツの他の部分を暗号化しないまま残す手法が開示されている。暗号化された部分は、複数のパケット識別子を用いて特定され、互いに区別される。暗号化すべき部分を適切に選択することによって、コンテンツの全体を選択して暗号化することなく、複数の復号方式を用いてコンテンツを効果的に暗号化できる。幾つかの実施例では、複数の暗号化システムを用いてコンテンツを効果的に暗号化するために必要なデータオーバヘッドは、数パーセント程度である。これにより、ケーブルシステム又はサテライトシステムは、単一のシステムにおいて、複数の製造業者からのセットトップボックス又は限定受信(CA)を実現するこの他の機器を利用でき、この結果、ケーブル放送業者又は衛星放送業者は、セットトップボックスの提供業者との契約について競争する必要がなくなる。
【0008】
上述した特許出願に開示されている部分暗号化処理では、適切な如何なる暗号化法を利用してもよい。但し、これらの暗号化方式は、データストリームの全体を暗号化するのではなく、上述の特許出願において開示されている技術を用いて、データストリームに選択的に適用される。本発明を限定するわけではないが、包括的に言えば、選択的暗号化処理では、番組の全体をデュアル暗号化する必要がなくなるように、暗号化する情報をインテリジェントに選択する。暗号化すべきデータを適切に選択することにより、番組のマテリアルを効果的にスクランブルすることができ、システムをハッキングし、料金を支払うことなく不正に商用コンテンツを復元しようとする者から番組のマテリアルを保護することができる。オーディオデータ及びビデオデータを表現するのに用いられるMPEGデータ(又は同様のフォーマットのデータ)は、フレーム間の情報の冗長性に対して高い依存率を有し、これを利用している。ある種のデータは、色差及び輝度のデータを表す「アンカ」データとして伝送することができる。このデータは、ブロックの動きを記述する動きベクトルを伝送することによって、画面上を単に移動し、これにより次のフレームが生成される。また、色差及び輝度のデータにおける変化は、絶対アンカデータ(absolute anchor data)ではなく、変化を表す情報として符号化される。したがって、このアンカデータ又は例えば他の重要なデータを暗号化することにより、ビデオを効果的に視聴できなくすることができる。
【0009】
上述の発明のある実施例においては、暗号化するよう選択されるビデオデータは、次に示すデータのうちの個々のデータ又はこれらの組合せであってもよい(詳細については、上述した特許文献に開示されている)。すなわち、暗号化するよう選択されるデータとしては、例えば、ビデオフレームのアクティブ領域に出現するビデオスライスヘッダ、ビデオフレームのアクティブ領域を表すデータ、ビデオフレーム内の星形パターンのデータ、シーン変化を表すデータ、Iフレームパケット、Iフレームに続く第1のPフレームに動きベクトルを含むパケット、イントラスライスフラグインジケータの組を有するパケット、イントラスライスインジケータの組を有するパケット、イントラ符号化されたマクロブロックを含むパケット、イントラ符号化されたマクロブロックを含むスライスのためのデータ、ビデオスライスヘッダに続く第1のマクロブロックからのデータ、パケットを含むビデオスライスヘッダ、アンカデータ、プログレッシブに更新されるビデオデータのためのPフレームデータ、ビデオフレーム上の垂直及び/又は水平モートパターン内に配置されたデータ、及びビデオ及び/又はオーディオの利用を困難にするために選択されるこの他のデータがある。上述の特許文献では、他の手法とともに、これらの手法の幾つかが開示されており、本発明では、これらのいずれかの技術(又はこの他の技術)を用いて、コンテンツの一部のみを暗号化することができる。
【0010】
上述の発明に基づいて、複数の暗号化アルゴリズムを用いて暗号化された2つ以上のデジタルテレビジョン信号を区別するために、複数のパケット識別子(packet identifier:以下、PIDという。)が利用されている。通常、特定のテレビジョン番組を特定するために、パケット識別子の単一の組が使用されている。上述した特許文献において開示されている複数の選択的な暗号化構成の下でテレビジョン信号を暗号化する場合、クリアなコンテンツには、一方のPIDの組が割り当てられ、暗号化されたコンテンツの各組には、他方のPIDの組が割り当てられる(ある実施例では、一組の暗号化されたコンテンツは、同じPIDを暗号化されていないコンテンツと共有できる)。データを受信するSTBは、再生のために、全ての適切なコンテンツを単一のPIDに再マッピングする。この処理は、上述した特許文献において詳細に説明されている。
【0011】
本発明のある実施形態では、コンテンツ差替(content substitution)を提供するメカニズムとしてコンテンツの単一のアイテムに関連付けられた複数のPIDを利用する。コンテンツ差替により、様々な手法で、テレビジョン番組を高度にカスタマイズすることができる。例えば、コンテンツ差替により、ある広告を他の広告に差し替えることによって、視聴者のターゲットを絞った広告を実現できる。また、コンテンツ差替を用いることにより、番組のエンディング、プロット又はこの他のセグメントを複数個提供でき、又はスポーツニュース又は他の番組において、複数の視点を提供できる。本発明に基づくコンテンツ差替の他の応用例については、以下の記述において随時説明する。これらの各応用例及びこの他の応用例は、本発明を用いることにより、帯域幅を大幅に増加させることなく、妥当なハードウェアのコストで、容易に実現することができる。
【0012】
本発明の実施例として、図1に全体を示すコンテンツ差替処理100は、ステップ104において開始される。次に、ステップ108において、コンテンツに関する複数の可能性(例えば、複数の広告、ロゴ、プロット、エンディング、登場人物等)を表す複数のPID(例えば、この実施例におけるPID_A及びPID_B)によって特定された部分を有するコンテンツを受け取る。このコンテンツは、(ケーブル放送や衛星テレビジョン放送等の場合)コンテンツのストリームとして受信してもよく、或いはパッケージ化された媒体又はダウンロードされたファイルを介して受け取ってもよい。どのような場合でも、ステップ112において、通常、特定のパケット識別子(例えば、PID_A)によって指定されたコンテンツのメインの部分を用いて、処理動作(例えば、コンテンツの再生又は伝送等)が開始される。ステップ116では、コンテンツを調べ、所定の差替基準(substitution criterion)が満たされているか否かを判定する。このような評価基準は、例えば、ローカルのコンテンツ配信業者が、ローカルな、すなわち地方向けの広告、ウォータマーク又はロゴに差し替えることを望んでいる全国向けの広告、ウォータマーク又はロゴの存在であってもよく、又は、このような評価基準は、エンドユーザによる特定のプロット、登場人物、エンディングの選択を含んでいてもよい。
【0013】
ステップ116において、評価基準が満たされていないと判定された場合、メインのコンテンツ(PID_A)の処理は、ステップ120に移行する。一方、ステップ116において、評価基準が満たされていると判定された場合、処理は、ステップ120に移行し、(例えば、PID_Aを有するコンテンツをPID_Bを有するコンテンツに差し替え、又は、これらに限定されるものではないが、一対一の差し替え、一対一の挿入、多対一の挿入/削除を含む、ここに説明する他のコンテンツ差替動作のいずれかを行うことによって)コンテンツ差替を実行する。このような差替は、デコーダ又は他のプロセッサが同じPIDを有するコンテンツに対する処理を継続できるようにするための、PID値の再マッピングを伴っていてもよい。これに代えて、コンテンツが差し替えられている場合、デコーダがメインのコンテンツに優先して差し替えられたコンテンツを選択するようデコーダをプログラミングしてもよい。処理は、ステップ120又はステップ124からステップ128に移行し、ここで、コンテンツを調べ、コンテンツの最後の部分に到達したか否かが判定される。コンテンツの最後の部分に到達していない場合、処理はステップ116に戻る。一方、コンテンツの最後の部分に到達した場合、処理はステップ132において終了する。好適な実施形態では、コンテンツの置換は、ビデオのマクロブロックの置換によって実現される。
【0014】
このように、本発明に基づくコンテンツ差替方法では、コンテンツの第1及び第2の部分に関連付けられた少なくとも第1及び第2のパケット識別子(PID)を有するデータであって、コンテンツを表すデータを受け取り、第1のPIDを有するコンテンツを再生し、差替基準が満たされたことを判定し、第1のPIDを有するコンテンツを第2のPIDを有するコンテンツに差し替える。
【0015】
この処理では、例えば、ローカルのケーブル放送オペレータは、複数の広告(コマーシャル)の組を含む番組を受け取ることができる。ローカルのケーブル放送オペレータの地理的な位置に応じて、複数のローカル広告のうち、ローカルのケーブル放送オペレータの地理的な位置又は市場により適切である広告と共にメインのコンテンツを再送してもよい。別の実施例では、ケーブル放送オペレータは、加入者に対し、選択可能な複数のエンディングを有する映画を放送することもできる。加入者は、映画を観る前又は後に、どのエンディングが好ましいかを判断し、好みのエンディングを選択することができる。加入者は、STBにコマンドを送り、STBは、特定のPIDに関連付けられているエンディングを選択することによって、自らが好む差替可能なエンディングを選択し、このPIDをメインの番組のPIDに再マッピングする。この開示から、当業者は、他の様々な実施例を想到することができる。
【0016】
図2は、例示的なケーブルシステム200の構成を示している。このケーブルシステム200において、衛星アンテナ204は、ヘッドエンドインザスカイ(Headend In The Sky:以下、HITS(商標)という。)放送等の衛星通信放送から、多重化されたコンテンツのストリームを受信する。コンテンツのストリームは、衛星電波受信装置208において、受信され、復調され、復号され、差替可能な情報を有するコンテンツは、PIDマッパ/フラグ挿入器212に供給される。このPIDマッパ/フラグ挿入器212の動作は、以下の説明によって明らかとなる。ローカルコンテンツデータベース216又は他のコンテンツのソースから、更なるコンテンツを読み出してもよい。これに代えて複数のPIDを有するコンテンツの符号化された差替可能な部分は、直接、衛星システムから受信してもよい。一実施例においては、PIDマッパ/フラグ挿入器212は、何らかのソースからの入力コンテンツにおけるメインのコンテンツをメインのPIDの組にマッピングし、差替可能なコンテンツをセカンダリ又はシャドウPIDの組にマッピングする。受信データが既に複数のPIDを有する符号化コンテンツを含んでいる他の実施例においては、PIDマッパ/フラグ挿入器212に対し、所望のコンテンツのみを選択するためにPIDを再マッピングするよう指示してもよい。また、PIDマッパ/フラグ挿入器212によって、コンテンツの差替を開始し、及び終了する位置を特定するためのフラグをコンテンツに挿入してもよい。
【0017】
コンテンツは、PSI/PMT挿入器220に供給され、PSI/PMT挿入器220は、プログラミングを復号する際に復号側で用いられるプログラム固有情報(Program Specific Information:PSIという。)及びプログラムマップテーブル(Program Map Tables:以下、PMTという。)をコンテンツのストリームに挿入する。コンテンツが暗号化すべきコンテンツであれば、そのコンテンツは、暗号化器224において暗号化された後、変調器(例えば、直交振幅変調変調器)230に供給され、変調される。変調されたコンテンツのストリームは、ケーブルプラント236を介して、セットトップボックス240、244等のデコーダボックスを有するエンドユーザに送信される。以下に限定されるものではないが、コンテンツ差替のためのPIDマッピングを含むケーブルヘッドエンドの動作は、制御コンピュータ300の制御の下で行われる。
【0018】
このようなシステムにより、本発明のある実施例に基づいてメインのコンテンツ及び差替コンテンツを表す入力データが供給されるコンテンツ差替エンコーダを構成することができる。パケット識別子(PID)マッパは、プライマリPIDをメインのコンテンツに割り当て、セカンダリPIDを差替コンテンツに割り当てる。プライベートデータ生成器は、ユーザプライベートデータを生成するプライマリPIDによってメインのコンテンツを特定し、セカンダリPIDによって差替コンテンツを特定する。そして、これらのプライベートデータ、プライマリPIDにマッピングされたメインのコンテンツ及びセカンダリPIDにマッピングされた差替コンテンツを組み立てて、データストリームが生成される。
【0019】
図1に示すコンテンツ差替処理100は、図2〜図3に示す制御コンピュータ300として動作する適切にプログラミングされた何らかの汎用コンピュータによって行われる。制御コンピュータ300は、1つ以上の中央演算処理装置(central processor unit:以下、CPUという)310を備え、CPU310は、周知の手法により、1つ以上のバス314を介して、ランダムアクセスメモリ318及び不揮発性メモリ322に接続されている。ディスプレイやプリンタ等である出力装置326は、多チャンネル運営事業者(multiple service operator:MSO)で使用するために、出力情報を表示及び/又は印刷するとともに、例えば、グラフィカルユーザインタフェース(Graphical User Interface:以下、GUIという。)等のユーザインタフェースを提供する。同様に、キーボードや、マウスやリムーバブル媒体読取装置等の入力装置330により、オペレータは、情報を入力することができる。また、制御コンピュータ300は、以下に限定されるものではないが、オペレーティングシステム及びコンテンツ、並びにコンテンツ差替処理プログラム(ローカルコンテンツデータベース216等の大規模な付属ストレージ装置に保存される場合が多い)を含む大量の情報を保存するための内部の及び/又は外部の付属ディスク又はこの他の大容量記憶媒体334(例えば、磁気ディスク及び/又は光ディスク)を備える。また、制御コンピュータ300は、ケーブルシステムのヘッドエンドにおける被制御の機器に接続するためのインタフェース338を備えている。ここでは、単一のコンピュータを示しているが、デジタルコンテンツプロバイダは、相互にリンクされた複数のコンピュータを用いて、ここに説明する機能を実現してもよい。
【0020】
上の説明では、主に、差替可能なコンテンツがケーブルシステムのヘッドエンドで挿入されると仮定しているが、様々な手法で、複数の目的に応じて、複数のレベルでコンテンツ差替を行うことによって本発明に基づくコンテンツ差替の概念を実現できることは、当業者にとって明らかである。例えば、ケーブルテレビジョンの視聴者が対話型のテレビジョン番組を視聴している場合、視聴者の選択(例えば、リモートコントローラによる)に基づいて、特定の差替基準(例えば、エンディングの選択)を確立することができる。なお、ケーブルヘッドエンドは、本発明の実施例に基づいて、例えば、全国的広告をローカル広告に差し替えることにより、又は、全国的ロゴをローカルチャンネルロゴに差し替える(又は追加する)ことによってコンテンツ差替を行うこともできる。
【0021】
この差替は、元のコンテンツのビデオデータのマクロブロックを代替ビデオデータを含むマクロブロックに置換することによって実現される。マクロブロックの大部分は、置換されるビデオ画像の所望の領域と重複しているため、差替ビデオデータの幾つか又は全ては、元のデータと同じであってもよい。
【0022】
以下、例えば、ケーブルテレビジョンジョンシステムにおいて、幾つかの視聴者のグループに対し、コンテンツプロバイダが差替可能な広告を提供する本発明の実施例について説明する。この実施例では、例えば、ケーブルシステムのヘッドエンドに保存された視聴者プロファイルに基づいて、有線テレビジョンジョンの視聴者を3つのカテゴリに区別できると仮定する。図4は、例示的なテレビジョン番組350と、これに関連する3個の個別の広告354、356、358を示している。ここでは、3つの広告を区別するために、3個の異なるPIDの組を用いている(説明を簡潔にするために、1つの広告について1つのPIDが対応すると仮定する)。一組の視聴者向けのメインの広告354については、広告354は、プログラムコンテンツと同じPID(例えば、PID100)を共有できる。
【0023】
第1の代替的な広告356は、代替的なPID(例えば、PID101)によって特定され、第2の代替的な広告は、別の代替的なPID(例えば、PID102)によって特定される。したがって、メインの広告を表示する場合、このメインの広告は、プログラムコンテンツとPIDを共有し、デフォルトで表示される設定になっているので、デコーダ(例えば、テレビジョンのSTB)には、如何なる特別な指示を与える必要もない。代替的な広告356を復号すべきデコーダに対しては、このデコーダが、PID101に対応するデータを検出したときは、常に、PID100に対応するコンテンツをこのPID101に対応するコンテンツに差し替えるように、ケーブルシステムのヘッドエンドから命令を送信する。同様に、代替的な広告358を復号すべきデコーダに対しては、このデコーダが、PID102に対応するデータを検出したときは、常に、PID100に対応するコンテンツをこのPID102に対応するコンテンツに差し替えるように、ケーブルシステムのヘッドエンドから命令を送信する。一実施例では、PID100を有するパケット化された各ビデオデータは、PID101及びPID102にそれぞれ対応するパケットを含んでいる。他の実施例においては、必ずしも一対一の関係は要求されない。いずれの場合も、デコーダにおいて、パケットが適切な順序で処理されるように、パケットカウント値を維持する必要がある。
【0024】
この実施例では、この処理の本質である直接的な差替を示すためにコンテンツを並べて示している。なお、図4に示すように、メインのコンテンツ、第1の差替コンテンツ、第2の差替コンテンツを順次表示するシーケンスを繰り返すように、パケットの系統的なシーケンスとしてコンテンツを構成してもよい。様々な実施例として、プライマリPID及びセカンダリPIDに対応するパケットが、プライマリの後にセカンダリ、又はセカンダリの後にプライマリの順序で出現するようにパケットを配置してもよい。パケットを交互に設けることにより、パケットの受信における不要な遅延を回避し、パケットの順序を維持することができる。プライマリパケットとセカンダリパケットの間に一対一の関係が存在する場合、プライマリパケット及びセカンダリパケットのそれぞれは、表示の順序を決定するために用いられるパケット番号を有することができる。このような番号は、復号処理において、受信したコンテンツの順序を維持するために変更してもよい。また、本発明の範囲を逸脱することなく、他の実施例も可能である。
【0025】
ケーブルシステムのMSOによって、視聴者の組に対し、ターゲットを絞った広告を提供することに加えて、同様の技術によって、ネットワークにおいて、例えば、単一のデータストリームに複数の地方広告を埋め込み、ローカルネットワーク又はケーブルオペレータにおいてPIDの再マッピングを行って、各地域に適切な広告を選択することにより、地域毎に異なる広告を提供することができる。すなわち、図4に示す3つの広告は、例えば、米国の東海岸、米国の中部、米国の西海岸の3つの地方向けの広告を表していてもよく、或いは、他の任意の区域について、差し替えられる広告を幾つ設けてもよい。
【0026】
図5は、コンテンツ差替によって、映画のプロットとエンディングを差し替えることができる例示的な実施例を示している。この映画を表すデータは、パッケージングされた媒体コンテンツ(例えば、デジタルバーサタイルディスク(DVD))として保存してもよく、有線テレビジョンジョンのMSO等のコンテンツプロバイダから放送してもよい。この実施例では、メインの映画360例えば、メインのPID110を用いて伝送又は保存される。この映画では、例えば、映画の再生の間に視聴者が選択操作を行うことにより、又は映画の再生の間に周期的な決定を行うことにより、3つのプロットと3つのエンディングを選択できる。第1のプロットA362は、映画のメインの部分及びメインのエンディングA364と同じPID110に対応している。視聴者が(個別に又はまとめて)プロットAとエンディングAとを選択した場合、テレビジョンSTB内のデコーダは、映画の全体についてPID110を選択する。同様に、プロットB368は、エンディングB372と同じPID111に関連付けられている。同様に、プロットC376は、エンディングC380と同じPID112に関連付けられている。視聴者がプロットB及び/又はエンディングBを選択した場合、STBデコーダは、PID100をPID111に差し替えるように指示され、これにより、代替的なプロットB及び/又はエンディングBが選択される。同様に、視聴者がプロットC及び/又はエンディングCを選択した場合、STBデコーダは、PID100をPID112に差し替えるように指示され、これにより、代替的なプロットC及び/又はエンディングCが選択される。
【0027】
図6に示す具体例では、特定のPID、例えばPID120を用いるプログラム384は、マーカPID392として機能する情報の代替的な部分を含むPID120を有するブランク部分388を含んでいる。
【0028】
上述した代替的なPIDを用いるコンテンツ差替は、いろいろな目的に利用できる。図7は、本発明に基づくコンテンツ差替技術を用いた、広告バナーの置換及びロゴ又はウォータマークの追加を説明する図である。この実施例では、メインのコンテンツのセグメントは、情報がMPEGデジタル符号化を用いて符号化された、水平なスライスに分割されるテレビジョンの画面400として示されている。第1の広告、例えば、全国的な広告404は、スクリーンの左上の付近において、連続する幾つかの画像のスライスに表示される。ロゴ又はウォータマーク408は、画面400の右下の付近において、1つのスライスに表示される。ここで、コンテンツ差替を用いて、新しい画面を生成できる。広告404を含むパケットは、ローカルな又は他の代替的な広告バナー412を含むパケットに置換できる。同様に、ウォータマーク408は、ビデオ画像のスライス内のあるパケットにコンテンツ差替を適用することによって、置換又は追加することができる。この実施例では、追加的なロゴを含むパケットの差替によって、ネットワークロゴであるウォータマーク408に他のロゴ(例えば、ローカルチャンネル又は他のロゴ)416を追加してもよい。
【0029】
図8は、ビデオフレーム420を構成するマクロブロックの構造を示している。ある標準解像度のMPEG規格に準拠するビデオデータでは、フレームは、30個のビデオスライスから構成され、各ビデオスライスは、それぞれスライスヘッダ422(図8のSH1〜SH30)に関連付けられている。各スライスは、33個のマクロブロック424(図8のMB1〜MB33)に分割される。MPEG又は他のビデオフォーマットを用いる他の実施形態(例えば、高精細度)では、スライスの数及び/又はスライス1つあたりのマクロブロックの数は、これより多くても少なくてもよい。いずれの場合も、画像は、マクロブロックの集合として構成され、この具体例では、1フレームあたり990個のマクロブロックから構成される。これに対応する一実施形態では、元の画像内の1又は2つ以上のマクロブロックを差し替え、マクロブロックベースで新たな画像を生成することができる。
【0030】
図9は、ある具体例を簡略化して示している。この具体例では、画像の一部は、6つの連続するマクロブロックから構成されている。説明を明瞭にするために、それぞれ実線の直線で示す垂直線432及び水平線434は、マクロブロックの境界を表している。左の画像では、6つのマクロブロック435、436、437、438、439、440から構成される星形の図形を示している。ある実施形態では、これらのマクロブロックを構成するビデオデータには、第1のPID(例えば、PID A)を関連付ける。差替コンテンツは、6つの差替マクロブロック442、443、444、445、446、447の形式で提供できる。これら差替マクロブロックを定義するビデオデータは、第2の(代替の)のPID(例えば、PID B)を用いて特定できる。そして、コンテンツ差替処理を行うために、所望の位置に出現するPID Aに関連付けられたマクロブロックを、PID Bを有するマクロブロックに置換する。
【0031】
これらは、本発明に基づくPIDマッピング技術を用いて実現される様々な種類のコンテンツ処理の幾つかの例示に過ぎない。以下の表は、他の幾つかの実施例を示している。なお、当業者は、ここでの説明に基づいて、この他の多数の実施例を容易に想到できる。
【0032】
【表1】
【0033】
図10は、本発明に基づく複数のPIDを有するトランスポートストリームを復号するデコーダを実現するためのメカニズムを示す状態図である。この状態図における番号が付されたパスを説明する表を以下に示す。
【0034】
【表2】
【0035】
セカンダリPIDパケットによってプライマリPIDパケットを置換するモードは、「差替モード」と呼ばれる。セカンダリPIDパケットは、プライマリPIDパケットを置換することなくストリームに挿入してもよい。このモードは、「挿入モード」と呼ばれる。また、デコーダは、両方の動作が同時にアクティブであるモードで動作してもよい。これは、「挿入及び削除モード」と呼ばれる。これらの3つの個々のデコーダモードは、全て互いに排他的であり、各モードは、各モードに固有の一連の状態遷移に従って移行する。アクティブなモードは、デコーダ固有の可変モードを介してシグナリングされる。モードの値がゼロに設定された場合、復号は、イネーブルにされず、トランスポートデコーダ状態マシンは、バイパスされる。モードの値が無効である(特別に定義された状態でない)場合、モードがゼロに設定されている場合と同じような動作が行われ、すなわち、トランスポートデコーダ状態マシンは、バイパスされる。以下、各モードへの状態遷移の定義について説明する。
【0036】
符号化されたトランスポートストリームを復号するためのアルゴリズムは、図10に示す状態マシンによって説明される。状態を示すペトリネット(Petri net)及び状態方程式/動作は、上述の状態テーブル及び図10から導き出すことができる。このアルゴリズムは、4つの動作状態があり、基本的には、状態1が優勢に維持される。状態2は、パケットがシャドウPID(メインのPIDでない)を含む場合にのみ移行される。ヘッドエンドからのPSIにおけるメッセージングによって設定されたシステムモードに応じて、2つの完全に異なる第2の状態への異なるパスを選択することができる。
【0037】
集積回路製造業者のデバイスアーキテクチャよって、ハードウェア又はソフトウェアのいずれかで状態マシンを実現することができる。これは、多くの場合、プログラミングされたプロセッサ上のソフトウェアとして実現した方が、設計の柔軟性が高まると考えられる。
【0038】
エラーの状態(規則外の状態遷移)も定義されている。このエラーは、連続カウンタ等のMPEGトランスポート層におけるエラー、トランスポートエラーを始めとする固有のエラー(unique error)である。エラー_IRQnは、レガシーパケットが介在しない連続する2つのシャドウパケットの検出を意味し、nは、特定のデコーダの番号を表していている。
【0039】
エラーに関するデコーダ固有の可変キューの設定により、2つの異なる動作を実行できる。変数が真に設定されている場合、デコーダは、第2のシャドウパケット(PID=B)をエラーがない場合と同様に処理する。変数が偽に設定されている場合、第2のシャドウパケットは、削除される。
【0040】
パケットが挿入又は削除される場合、プライマリストリーム(PID=A)の連続カウンタ(CC)は、CCを適切に調整することによって維持される。復号RSTn変数は、構成レジスタを介して設定でき、又はデコーダ状態マシンnを既知の状態に強制的に遷移させる他の関数によってアクセスできる非ラッチ型ビットである。
【0041】
デコーダトランスポート処理アルゴリズムの動作のモードの1つは、差替モードと呼ばれる。このモードを図11に示す。このモードでは、パケット502、504、506等のPID_Bを有するパケットは、PID_BをPID_Aに置換して、パケット512、514、516を生成することによってトランスポートストリームに挿入され、これにより、Aに一致するPIDフィールドを含んでいる所望のコンテンツパケットを有する、MPEGに準拠するトランスポートストリームが生成される。ここで、Aは、デコーダの構成レジスタによって先に定義されている13ビットの値である。PID_Aパケットについては、「ノンオペレーション」が実行される。「ホーム」状態である状態1において、パケット508等のパケットは、パケット510等のパケットに変換され、A/V伸張や表示等の更なる処理のためにトランスポートフィルタ出力キューに送られる。モード1では、デコーダ状態マシンは、差替フラグ520を受け取った後に、Bに一致するPIDフィールドを有するMPEGパケットを受け取ると、状態1から状態2Aに遷移する。Bは、デコーダの構成レジスタによって先に定義されている13ビットの値である。Bは、Aに一致するPIDを有する次に出現するレガシーパケットに差し替えるためのセカンダリ又は「シャドウ」パケットを表す。BパケットのPID値は、ストリームに挿入する前にAに変更される。状態2Aへの遷移に応じて、Bパケットコンテンツがトランスポートフィルタ出力キューに送られるために、この差替処理が行われる。
【0042】
次にPID_Aのパケットが受信されると、状態は状態1に戻る。この場合、このPIDはキューに送られず、ヌル(0x1fff)PID値に変換され、物理的にパケットを削除した場合のようなストリームの全体的なタイミングの変更を生じさせることなく、ストリームからこのパケットを実質的に除外することができる。また、置換モードの終了を示す別の差替フラグ524の受信によっても状態を状態1に戻すことができる。
【0043】
この他のデコーダトランスポート処理アルゴリズムの動作のモードの1つとして、図12に示す挿入モードと呼ばれるモードがある。このモードでは、Aに一致するPIDフィールドを含んでいる所望のコンテンツパケットを有する、MPEGに準拠するトランスポートストリームが生成される。ここで、Aは、デコーダの構成レジスタによって先に定義されている13ビットの値である。「ホーム」状態である状態1において、PID_Aを有するパケットは、例えばA/V伸張や表示等の更なる処理のためにトランスポートフィルタ出力キューに送られる。モード2では、デコーダ状態マシンは、状態1から遷移することはない。デコーダの構成レジスタによって先に定義された13ビットの値であるBに一致するPIDフィールドを有するMPEGパケットを受け取った場合、このBは、PID値をA変更して、ストリームに挿入するべき第2の又は「シャドウ」パケットを示している。このモードでは、挿入フラグ530が受け取られると状態が状態1から状態2Bに遷移する。パケット534、536等のPID_Bパケットは、パケット538、540等のPID_Aパケットとしてトランスポートストリームに挿入される。挿入モードは、次の挿入フラグ544の受信によって終了させることができる。
【0044】
図13は、デコーダトランスポート処理アルゴリズムAに一致するPIDフィールドを含んでいる所望のコンテンツパケットを含むMPEGに準拠するトランスポートストリームを生成するための挿入/削除モードを示している。ここで、Aは、デコーダの構成レジスタによって先に定義されている13ビットの値である。「ホーム」状態である状態1において、パケット508等のパケットは、パケット510等のパケットに変換され、A/V伸張や表示等の更なる処理のためにトランスポートフィルタ出力キューに送られる。モード1では、デコーダ状態マシンは、Bに一致するPIDフィールドを有するMPEGパケットを受け取ると、状態1から状態2Bに遷移する。ここで、Bは、デコーダの構成レジスタによって先に定義されている13ビットの値である。状態2Bにおいて、Aに一致するPID値を有するパケットが受け取られると、状態は状態3に遷移し、パケットPIDはヌルに変更され、これによりこのパケットは、事実上、トランスポートストリームから除外される。状態3において、Aに一致するPID値を有するパケットが受け取られると、パケットPIDはヌルに変更され、例えば、パケット550、552、554、566は、ヌルパケット560、562、564、566に変更される。状態1への遷移及び状態1からの遷移は、それぞれ挿入/削除フラグ570、574によって開始及び終了される。状態3では、PID_Bを有するパケット580、582等のパケットは、パケット586、588等のPID_Aを有するパケットに変換される。
【0045】
次にPID_Bを有するパケットが受信され、これがキューに送られ、PID_Aを有するパケットに変換されると、状態は状態2Bに戻る。また、状態2Bから状態1への遷移は、次にPID_Bを有するパケットが受信されときに行われ、このパケットもキューに送られ、PID値は、PID_Aに変換される。
【0046】
本発明に基づく方法では、プライベートシグナリング(private signaling)を用いて、プライマリPIDを有するコンテンツを受け取りながら、セカンダリPIDを有するコンテンツのユニットを選択することができる。これに代えて、プライベートシグナリングを用いて、セカンダリPIDを有するコンテンツの複数のユニットを選択するとともに、プライマリPIDを有するコンテンツのユニットを削除してもよい。同様に、プライベートシグナリングを用いて、プライマリPIDを有するコンテンツのユニットを受け取りながら、セカンダリPIDを有するコンテンツの複数のユニットを選択してもよい。更に、プライベートシグナリングを用いて、セカンダリPIDを有するコンテンツの複数のユニットを選択するとともに、プライマリPIDを有するコンテンツのユニットを削除するモードから、プライマリPIDを有するコンテンツのユニットを受け取りながら、セカンダリPIDを有するコンテンツの複数のユニットを選択するモードへの切換を行ってもよい。更に、プライベートシグナリングを用いて、プライマリPIDを有するコンテンツのユニットを受け取りながら、セカンダリPIDを有するコンテンツの複数のユニットを選択するモードから、セカンダリPIDを有するコンテンツの複数のユニットを選択するとともに、プライマリPIDを有するコンテンツのユニットを削除するモードへの切換を行ってもよい。
【0047】
セカンダリPIDを有するコンテンツのユニットは、プライマリPIDを有する対応するコンテンツのユニットの前又は後に送信してもよい。差替は、データストリーム内のパケットの適応層の一部を形成するプライベートシグナリングによって、開始され及び終了される。適応層は、第2のPIDを有するパケット、第1のPIDを有するパケット及び他のPIDを有するパケットのいずれに設けてもよい。
【0048】
参考のために、それぞれ、MPEGトランスポートパケットに用いられる構文と、MPEGトランスポートストリーム適応フィールドに用いられる構文と示す2つの表を以下に示す。
【0049】
【表3】
【0050】
【表4】
【0051】
デコーダモジュールを構成し、制御するために用いられる情報の多くは、トランスポートストリームに含まれ、STBミドルウェアによって復号されるMPEG PSIデータに由来する。構成と制御は、現在のデコーダの要求に応じて、MPEG−PSI仕様書を拡張することによって実現できる。本発明に基づくある実施例において用いられる拡張及びプライベートデータ構文を定義する表を以下に示す。
【0052】
【表5】
【0053】
「ペイロードなしの適応化(adaptation and no payload)」及び「ペイロードありの適応化(adaptation with payload)」のいずれを用いて、状態間の遷移をシグナリングしてもよい。適応フィールドでは、A、B又はCのみを「ヌル」、例えばNOPにでき、或いはストリーム内に単に残すことができる。
【0054】
本明細書ではハードウェアとして実現できる「レジスタ」の表現は、ソフトウェア又はマイクロコードによって実現される「変数」に置き換えることができる。いずれの場合も、共通のデコーダモジュールコマンド/制御構造及びインタフェースは、様々なアーキテクチャ及び能力を有する様々なSTBプラットフォームに亘って、ミドルウェアの互換性を実現することが望ましい。
【0055】
ある好適な実現例では、各デコーダモジュールは、19個のレジスタ(又は変数)を含んでいる。特に言及する場合を除き、全てのレジスタは、読出/書込レジスタであり、すなわち、書込を行うために用いたインタフェースと同じインタフェースを用いて、現在の値を読み出すことができる。全てのレジスタは、共通のベース値(原点)から連続してオフセットされている。この仕様におけるアドレスは、全てこのベース値との相対的な関係を表す値(オフセット値)である。レジスタは、以下の表に示すようにマッピングすることができる。
【0056】
【表6】
【0057】
状態レジスタを以下の表に示す(割込ソースレジスタ(読出専用)のアドレスを0x00とする)。
【0058】
【表7】
【0059】
割込が呼び出された場合、関連するビットは、「1」に設定される。同時に2つ以上のビットをアサートしてもよい。何らかのビットが設定されると、デコーダは、マスクレジスタの値に基づいて、ホストコントローラに割込をかける。ソースレジスタのコンテンツは、マスクレジスタによって、ビット毎に論理積演算し、この結果を論理和演算することにより、単一のIRQ出力が生成される。割込条件は、以下のようにまとめられる。
Decode_n_ERROR
Set on:レガシーパケットが介在することなく隣接する2つのシャドウパケットの検出
Reset on:割込状態レジスタの読出
読出専用の割込マスクレジスタのアドレスは、0x00である。割込マスクレジスタビットが「1」である場合、関連する割込はマスクされておらず、「0」である場合、関連する割込はマスクされている。マスクされた割込は、ホストプロセッサに割込出力を供給しない。マスクされた割込の割込フラグビットは、割込レジスタにおいて有効なままである。デフォルトのパワーアップ条件は、全ての割込がマスクされる(全ての割込マスクレジスタビットが「0」に設定される)ことである。
【0060】
【表8】
【0061】
構成レジスタは上述の通りである。
【0062】
デコーダ1のプライマリPIDレジスタ(読出/書込)は、アドレス0x01に設けられ、以下のように構成される。
【0063】
【表9】
【0064】
このプライマリPIDは、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0065】
デコーダ1のセカンダリPIDレジスタ(読出/書込)は、アドレス0x02に設けられ、以下のように構成される。
【0066】
【表10】
【0067】
このセカンダリPIDは、上述と同様、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0068】
デコーダ2のプライマリPIDレジスタ(読出/書込)は、アドレス0x03に設けられ、以下のように構成される。
【0069】
【表11】
【0070】
このプライマリPIDは、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0071】
デコーダ2のセカンダリPIDレジスタ(読出/書込)は、アドレス0x04に設けられ、以下のように構成される。
【0072】
【表12】
【0073】
このセカンダリPIDは、上述と同様、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0074】
デコーダ3のプライマリPIDレジスタ(読出/書込)は、アドレス0x05に設けられ、以下のように構成される。
【0075】
【表13】
【0076】
このプライマリPIDは、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0077】
デコーダ3のセカンダリPIDレジスタ(読出/書込)は、アドレス0x06に設けられ、以下のように構成される。
【0078】
【表14】
【0079】
このセカンダリPIDは、上述と同様、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0080】
デコーダ4のプライマリPIDレジスタ(読出/書込)は、アドレス0x07に設けられ、以下のように構成される。
【0081】
【表15】
【0082】
このプライマリPIDは、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0083】
デコーダ4のセカンダリPIDレジスタ(読出/書込)は、アドレス0x08に設けられ、以下のように構成される。
【0084】
【表16】
【0085】
このセカンダリPIDは、上述と同様、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0086】
デコーダ5のプライマリPIDレジスタ(読出/書込)は、アドレス0x09に設けられ、以下のように構成される。
【0087】
【表17】
【0088】
このプライマリPIDは、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0089】
デコーダ5のセカンダリPIDレジスタ(読出/書込)は、アドレス0x0Aに設けられ、以下のように構成される。
【0090】
【表18】
【0091】
このセカンダリPIDは、上述と同様、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0092】
デコーダ6のプライマリPIDレジスタ(読出/書込)は、アドレス0x0Bに設けられ、以下のように構成される。
【0093】
【表19】
【0094】
このプライマリPIDは、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0095】
デコーダ6のセカンダリPIDレジスタ(読出/書込)は、アドレス0x0Cに設けられ、以下のように構成される。
【0096】
【表20】
【0097】
このセカンダリPIDは、上述と同様、13ビットの値であり、ビッグエンディアン(ビット12のMSB)値として右詰めで保存される。
【0098】
デコーダ1のモードレジスタ(読出/書込)は、アドレス0x0Dに設けられ、以下のように構成される。
【0099】
【表21】
【0100】
モードの定義は以下の通りである。
0:全ての復号処理をバイパス、状態マシンをディスエーブル
1:差替モード
2:挿入モード
4:挿入及び削除モード
他の全ての値:全ての復号処理をバイパス、状態マシンをディスエーブル
デコーダ2のモードレジスタ(読出/書込)は、アドレス0x0Eに設けられ、以下のように構成される。
【0101】
【表22】
【0102】
モードの定義は以下の通りである。
0:全ての復号処理をバイパス、状態マシンをディスエーブル
1:差替モード
2:挿入モード
4:挿入及び削除モード
他の全ての値:全ての復号処理をバイパス、状態マシンをディスエーブル
デコーダ3のモードレジスタ(読出/書込)は、アドレス0x0Fに設けられ、以下のように構成される。
【0103】
【表23】
【0104】
モードの定義は以下の通りである。
0:全ての復号処理をバイパス、状態マシンをディスエーブル
1:差替モード
2:挿入モード
4:挿入及び削除モード
他の全ての値:全ての復号処理をバイパス、状態マシンをディスエーブル
デコーダ4のモードレジスタ(読出/書込)は、アドレス0x10に設けられ、以下のように構成される。
【0105】
【表24】
【0106】
モードの定義は以下の通りである。
0:全ての復号処理をバイパス、状態マシンをディスエーブル
1:差替モード
2:挿入モード
4:挿入及び削除モード
他の全ての値:全ての復号処理をバイパス、状態マシンをディスエーブル
デコーダ5のモードレジスタ(読出/書込)は、アドレス0x11に設けられ、以下のように構成される。
【0107】
【表25】
【0108】
モードの定義は以下の通りである。
0:全ての復号処理をバイパス、状態マシンをディスエーブル
1:差替モード
2:挿入モード
4:挿入及び削除モード
他の全ての値:全ての復号処理をバイパス、状態マシンをディスエーブル
デコーダ6のモードレジスタ(読出/書込)は、アドレス0x12に設けられ、以下のように構成される。
【0109】
【表26】
【0110】
モードの定義は以下の通りである。
0:全ての復号処理をバイパス、状態マシンをディスエーブル
1:差替モード
2:挿入モード
4:挿入及び削除モード
他の全ての値:全ての復号処理をバイパス、状態マシンをディスエーブル
デコーダリセットレジスタ(書込)は、アドレス0x13に設けられ、以下のように構成される。
【0111】
【表27】
【0112】
エラーの状態(規則外の状態遷移)も定義されている。このエラーは、連続カウンタ等のMPEGトランスポート層におけるエラー、トランスポートエラーを始めとする固有のエラー(unique error)である。ERROR_IRQnは、レガシーパケットが介在しない連続する2つのシャドウパケットの検出を意味し、nは、特定のデコーダの番号を表していている。エラーに関するデコーダ固有の可変キューの設定により、2つの異なる動作を実行できる。変数が真に設定されている場合、デコーダは、第2のシャドウパケット(PID=B)をエラーがない場合と同様に処理する。変数が偽に設定されている場合、第2のシャドウパケットは、削除される。
【0113】
幾つかの具体例では、置換すべきコンテンツは、パケット境界にある。幾つかの情報は、パケットの境界内に都合良く納まらないので、パケットを満たすために、不要なコンテンツを複製する必要がある場合も生じる。他の実施例として、単にパケットをヌルバイト(全て0)で埋めてもよい。典型的なビデオスライスは、イントラ符号化されたデータがどれ程存在しているかに応じて、約3〜8個のパケットを含んでいる。なお、MPEG−2仕様書では許可されているが、単一のビデオラインに複数のスライスがある場合、幾つかのデコーダでは、このようなスライスを処理することが困難である。
【0114】
更に、差し替えられたコンテンツが将来のフレームから参照される場合、エンディング問題(ending problems)が生じることもある。しかしながらこの問題は、差し替えられたコンテンツは、過去のフレームによって参照することができないという規則を設けることによって解決できる。視聴者又はセットトップボックスによる選択に応じて、コンテンツが異なるものとなる可能性のためである。将来のフレームへの参照は、参照情報の全てが差替コンテンツ内に含まれている場合、許可してもよい。またエンコーダは、量子化テーブルの特定の組を用いるので、差替コンテンツは、正しい復号を行うために、同じ量子化テーブルを用いて処理する必要がある。
【0115】
本発明に基づくコンテンツ差替は、アプリケーションに応じて、オンラインでもオフラインでも制限なく実行することができる。
【0116】
上述のようなデコーダは、テレビジョンSTBや他のテレビジョン受信機に組み込むことができ、これを用いて、ユーザ又はMSOによって制御されるコンテンツ差替能力をエンドユーザに提供できる。図14は、デジタルテレビジョンジョンのセットトップボックス600の構成例を示している。このようなSTBは、様々な構成を有することができ、ここに示すSTBは、様々なSTB構成のうちの1つを例示的に示したものである。この例示的なセットトップボックスでは、同軸ケーブル等の伝送媒体604は、適切なインタフェースによってチューナ608に接続される。チューナ608は、例えば、ビデオコンテンツを受け取るための放送帯域内チューナを含んでいてもよい。従来の高周波放送テレビジョンチャンネルからのデータを受信するために、独立したチューナ(図示せず)を設けてもよい。フォーマットされた変調された情報、例えば、MPEG−2情報は、復調器610において復調される。復調器610から出力される復調された情報は、PIDデコーダ/デマルチプレクサ/デスクランブラ回路614に供給され、ここで、情報は、番組の離散的チャンネル(discrete channels of programming)に分離される。プログラミングは、それぞれが特定の番組に関する特定の種類のデータ(例えば、オーディオ、ビデオ、データ)を含むパケットを特定するPIDを有するパケットに分割される。また、PIDデコーダ/復調/デスクランブラ回路614は、例えば、プログラミングコンテンツへの不正アクセスを防ぐために平文化アルゴリズムに従って暗号化された情報を復号する。PIDデコーダ/復調/デスクランブラ回路614のPIDデコーダ部分は、プログラムによる制御の下、図10を用いて説明したデコーダと同様に動作し、後述するように、特定のPIDを有するコンテンツを選択する。
【0117】
デマルチプレクサ614からのオーディオのパケット(オーディオPIDによって特定される)は、平文化され、オーディオデコーダ618に供給されて、スピーカシステム(例えば、ステレオ又はホームシアターマルチチャンネルオーディオシステム)又は、他のオーディオシステム622(例えば、ステレオ又はホームシアターマルチチャンネル増幅器及びスピーカシステム)を駆動するためのアナログオーディオ信号に変換され、或いは、単に、オーディオ出力626から復号されたオーディオデータが出力される。デマルチプレクサ614からのビデオパケット(ビデオPIDによって特定される)は、平文化され、ビデオデコーダ630に供給される。同様に、デマルチプレクサ614からのデータパケット(データPIDによって特定される)は、平文化され、データデコーダ634に供給される。
【0118】
データデコーダ634からの復号されたデータパケットは、システムバス638を介してセットトップボックスのコンピュータシステムに供給される。これにより、制御コンピュータ644は、システムバス638を介してデータデコーダ634からの復号されたデータにアクセスでき、同様に、メモリ646におけるプログラム及びデータにアクセスできる。ビデオデコーダ630によって復号されたビデオデータは、グラフィックプロセッサ648に供給され、グラフィックプロセッサ648は、コンピュータによって最適化され、グラフィック情報を高速に処理する。グラフィックプロセッサ648は、特に、インターネットの閲覧、ゲーム、マルチメディアハイパーメディア情報符号化エキスパートグループ(Multimedia and Hypermedia information coding Experts Group:MHEG)セットトップボックスアプリケーション等のマルチメディアアプリケーションに関連する画像処理に負担がかかるデータ(graphics intensive data)の処理に有用である。なお、グラフィックプロセッサ648の機能は、能力が低いセットトップボックス設計では不要であり、復号されたビデオデータがデマルチプレクサ614からビデオエンコーダに直接渡される幾つかのアプリケーションでは、グラフィックプロセッサ648の機能は、制御コンピュータ644によって制御してもよい。また、グラフィックプロセッサ648は、システムバス638に接続され、制御コンピュータ644の制御の下で動作する。
【0119】
STB600等の多くのセットトップボックスは、限定受信モジュール(Conditional Access Module:以下、CAMという。)として機能する、所謂「スマートカード(smart card)」と通信するために、スマートカードリーダ140を備えていてもよい。CAMは、多くの場合、関連するRAMとROMとともに、それ自身の央演算処理装置を備えている。このようなスマートカードを用いたCAMは、従来から、ユーザの認証、ユーザによって行われる取引の認証、並びにサービスの許可及び認証された暗号キーの保存等に用いられている。例えば、CAMを用いて、ユーザが受信することが認められているとCAMが判断したコンテンツに関する入力暗号データを復号するためのキーを提供することができる。
【0120】
STB600は、双方向通信モードで動作でき、これによりデータ及び他の情報は、システムのヘッドエンドだけからいずれかのエンドユーザ、又はサービスプロバイダからSTB600のエンドユーザだけではなく、帯域外チャンネルを用いるアップストリームのエンドユーザからも送信することができる。一実施例では、このようなデータは、システムバス638を介して、変調器652に供給された後、伝送媒体604の一部を構成するダイプレクサを介して、伝送媒体604から外部に送信される。この能力により、STB600及び/又はそのユーザは、情報(例えば、サービス要求又は変更、登録情報等)をヘッドエンドに送信でき、及び、ヘッドエンドがユーザに提供しているインターネット又は他のサービスとの高速な外部通信を行うことができる。
【0121】
セットトップボックス600は、セットトップボックス600と入出力機器とを相互に接続するための、入出力インタフェース656として表される複数の入出力(I/O)インタフェースいずれかを含んでいてもよい。一例としてこれに限定するものではないが、STB600の内部のソフトウェアによってサポートされている適切なシリアル機器との相互接続を実現するために、シリアルRS−232ポートを設けてもよい。同様に、適切な互換性がある機器との通信は、イーサネット(登録商標)ポート、汎用シリアルバス(Universal Serial Bus:以下、USBという。)ポート、(所謂ファイアワイヤ(商標)又はi−Link(商標))、IEEE1394ワイドポート又はS−ビデオポート等を介して行ってもよい。赤外線インタフェース660は、リモートコントローラ666との通信に用いられる。このようなインタフェースを用いて、STB600と、ストレージ装置、オーディオビジュアル機器、ゲーム機器(図示せず)インターネット接続専用端末28等の様々なアクセサリ機器のいずれかとを相互接続することができる。
【0122】
また、入出力インタフェース656は、モデムポートを有するモデム(ダイヤルアップモデム、ケーブルモデム、デジタル加入者回線モデム又は他の技術に基づくモデムのいずれであってもよい。)を含んでいてもよく、これにより、インターネット又は他のデータ通信機能への高速又は代替的アクセスを実現することができる。1つの好適な実施例では、モデムポート162は、DOCSIS(Data Over Cable System Interface Specification)に準拠するケーブルモデムであり、これにより、ケーブルシステムを介した高速ネットワークアクセスが実現され、ポートは、同軸ケーブルとして実現された伝送媒体604に適切に接続される。これにより、STB600は、DOCSISケーブルモデムを介して、固有のIPアドレスによって特定されるSTB600と双方向通信を行うことができる。DOCSIS仕様書は、公開されている。
【0123】
STB600にデータを入力するために、PS/2又はこの他のキーボード/マウス/ジョイスティックインタフェースを設けてもよい。このような入力装置により、ユーザは、データを容易に入力でき及び/又はポインティング装置を用いて情報をナビゲートすることができる。マウスやジョイスティック等のポインティング装置は、ゲームアプリケーションにおいて用いることもできる。
【0124】
もちろんSTB600は、IEEE1394接続に代えて(又はこれに加えて)、テレビジョンセットへの直接接続に用いることができる基本的なビデオ出力を備えていてもよい。一実施例でビデオ出力は、NTSC(米国テレビジョンシステム委員会:National Television System Committee)ビデオデータとしてフォーマットされたコンポジットビデオデータを出力する。幾つかの実施例では、例示的なブロック図に示すように、システムバス638を介するのではなく、グラフィックプロセッサ648又はデマルチプレクサ/デスクランブラ614への直接接続によってビデオ出力を提供できる。同様に、他の実施例では、必要に応じて、システムバス130を介することなくSビデオ信号を出力してもよい。
【0125】
赤外線インタフェース660は、赤外線のリモートコントローラ666、赤外線キーボード又はこの他の赤外線の制御装置からコマンドを受け取る。図示はしないが、幾つかの実施例では、インタフェースの1つとして提供されたフロントパネル制御インタフェースを介して、フロントパネル操作子を用いて、STB600の動作を直接制御できる。STB600には、必要又は要望に応じて、上述したインタフェース及びこの他のインタフェースを様々に組み合わせて設けることができる。
【0126】
本発明に基づく例示的な一実施例では、STB600を用いて、例えば、複数のエンディングから1つのエンディングを選択する等、複数のコンテンツを制御できる。このような場合、番組の終わりに近づくまでは、指定されたPIDの組を有するメインのプログラムコンテンツが通常の手法で再生される。番組の終わりに近づくと、複数のエンディングのうちからいずれかのエンディングを選択するためのメニューが視聴者に表示される。単純な具体例として、3つのPIDのそれぞれに関連付けられた、以下のような3つのエンディングがあるとする。(1)男が女を助ける。善玉が勝つ。(2)女が死ぬ。善玉が勝つ。(3)女が死ぬ。悪役が勝つ。
【0127】
視聴者は、リモートコントローラ666又は他の何らかの適切なメカニズムを用いて、可能なエンディングのうち、希望するエンディングを選択する。この選択のために、デフォルトで設定されているエンディングを再生する前に、一定の時間を視聴者に提供してもよい(例えば、エンディングを選択させるために、コンテンツを2分間中断する)。ユーザの選択に応じて、制御コンピュータ644は、ユーザが選択したエンディングを選択するためにPIDデコーダ614をプログラミングする。この期間が終了すると、PIDデコーダ614は、番組の復号を再開し、選択されたエンディングを再生するためのオーディオデータとビデオを生成するために、適切なPID再マッピングを行う。すなわち、番組が、通常、PID_Aに関連付けられており、ユーザが第3のエンディングを選択した場合、PID_Cに対応するパケットがPID_Aに再マッピングされ、再生される。このように、この具体例では、ユーザは、通常のコンテンツに差し替えられるコンテンツの特定のセグメントを再生されるための選択を行うことができる。
【0128】
したがって、本発明の実施例に基づくデコーダは、コンテンツの第1及び第2の部分に関連付けられる少なくとも第1及び第2のパケット識別子(PID)を有する、コンテンツを表すデータを受け取る受信機を備えている。コンテンツデコーダは、第1のPIDを有するコンテンツを再生するように構成されている。コントローラは、差替基準が満たされたことを判定し、PIDマッパは、第2PIDを有するコンテンツを第1のPIDにマッピングし、これにより、第2のPIDを有していたコンテンツが再生される。
【0129】
このように、本発明の一実施形態に基づくコンテンツ差替のための方法及び装置は、コンテンツの第1及び第2の部分に関連付けられた少なくとも第1及び第2のパケット識別子(PID)を有するデータであって、コンテンツを表すデータを受け取る。第1のPIDを有するコンテンツがデータストリームに挿入される。更に、PIDマッピング処理の開始を指示する開始フラグが受け取られる。次に、セカンダリPIDを有するコンテンツをプライマリPIDにマッピングし、このマッピングされたコンテンツをデータストリーム内に挿入する。次に、PIDマッピング処理の終了を指示する終了フラグが受け取られ、この時点で、処理は、第1のPIDを有するコンテンツをデータストリームに挿入する処理に戻る。コンテンツ差替処理は、広告の差替、検閲コンテンツの差替、複数のプロット、複数のエンディング、複数の視点の提供及びこの他の様々な用途に応用することができる。
【0130】
また、上述した本発明の例示的な実施例は、プログラミングされたプロセッサ(例えば、制御コンピュータ300)を用いて実現されることは、当業者に明らかである。なお、本発明は、このようなソフトウェアによる実現に限定されるものではなく、上述し、及び請求の範囲に定義した本発明に等価な特定用途のハードウェア及び/又は専用プロセッサ等を用いて実現してもよい。同様に、本発明は、汎用コンピュータ、マイクロプロセッサを用いたコンピュータ、マイクロコントローラ、光コンピュータ、アナログコンピュータ、専用プロセッサ、及び/又は専用ハードウェアワイヤードロジックを用いて実現してもよい。
【0131】
また、再生メカニズムを提供する汎用パーソナルコンピュータを例示して本発明を説明したが、本発明の主旨から逸脱することなく、専用のマシンによってこの再生を行ってもよい。
【0132】
一方、本発明に基づくデコーダについては、状態マシンを用いて説明したが、このような状態マシンは、ハードウェア又はソフトウェアのいずれに基づく状態マシンとして実現してもよい。更に、上述の例示的な実施例に関して説明した、レジスタ構成、PIDプロトコル及びこの他の詳細は、本発明を例示的に説明するためのものであり、本発明を制限するものではないことは、当業者にとって明らかである。
【0133】
また、上述の実施例を実現するためのプログラミングのステップ及びこれらに関連するデータは、本発明の範囲を逸脱することなく、読出専用メモリ(Read Only Memory:ROM)素子、ランダムアクセスメモリ(Random Access Memory:RAM)素子、光ストレージ装置、磁気ストレージ装置、光磁気ストレージ装置、フラッシュメモリ、コアメモリ、及び/又はこの他の同等のストレージ技術を用いても実現できる。これらと同様のストレージ装置は、等価物とみなすことができる。
【0134】
本発明は、先にフローチャートを用いて広く説明し、適切な電子ストレージ媒体に格納でき、又は適切な電子通信媒体を介して伝送できるプログラミング命令を実行するプログラミングされたプロセッサを用いて実現することができる。なお、上述した処理は、本発明の範囲を逸脱することなく様々に変形でき、様々な適切なプログラミング言語を用いて記述できることは当業者にとって明らかである。例えば、本発明の範囲から逸脱することなく、実行される動作の順序を変更でき、他の動作を加えることも幾つかの動作を省略することもできる。また、本発明の範囲を逸脱することなく、エラー修正処理を追加及び/又は拡張してもよく、ユーザインタフェース及び表示される情報を様々に変更してもよい。これらの変形も等価であるとみなされる。
【0135】
本発明のある側面を具体化するソフトウェアコード及び/又はデータは、コンピュータによって読取可能な如何なる媒体に存在してもよく、例えば、伝送媒体、記憶媒体及び伝播媒体のいずれに存在してもよい。これらの媒体としては、以下に限定されるものではないが、例えば、上述した電子記憶装置、搬送波、電子信号、データ構造(例えば、ツリー、リンクされたリスト、テーブル、パケット、フレーム等)、光信号伝播信号、放送信号、伝送媒体(例えば、回路接続、ケーブル、ツイストペアケーブル、光ファイバ、導波管、アンテナ等)、コード及び/又はデータを保存し、搬送し、伝送するこの他の媒体が含まれる。このような媒体は、ソフトウェアコード及び/又はデータを保存するために用いてもよく、或いは、コード及び/又はデータをある場所から他の場所に伝送するために用いてもよい。ここに示した例示的な実施例では、MPEGに準拠したパケット、スライス、テーブル、この他のデータ構造を用いているが、これらは本発明を制限するものではなく、本発明から逸脱することなく、この他のデータ構造を用いてもよい。
【0136】
本発明を特定の具体例を用いて説明してきたが、当業者は、上述の説明から多くの代替例、修正例、変更例、変形例を想到することができる。これらの代替例、修正例、変更例、変形例は、本発明の範囲内にある。
【図面の簡単な説明】
【0137】
【図1】本発明のある実施例におけるコンテンツ差替のための処理を示すフローチャートである。
【図2】本発明のある実施例におけるケーブルシステムのブロック図である。
【図3】本発明のある実施例における制御コンピュータのブロック図である。
【図4】本発明のある実施例における差替広告を示す図である。
【図5】本発明のある実施例における複数のプロット及び複数のエンディングを有する映画を示す図である。
【図6】本発明のある実施例におけるマーカを示す図である。
【図7】本発明のある実施例における、ローカルのバナー広告の差替及びロゴの追加を説明する図である。
【図8】ビデオフレームを構成するマクロブロックの構造を示す図である。
【図9】マクロブロックレベルにおける差替コンテンツを示す図である。
【図10】本発明のある実施例におけるデコーダ状態マシンの状態図である。
【図11】本発明のある実施例における差替モードを説明する図である。
【図12】本発明のある実施例における挿入モードを説明する図である。
【図13】本発明のある実施例における挿入/削除モードを説明する図である。
【図14】本発明のある実施例におけるデジタルテレビジョンジョンセットトップボックスの例示的なシステム構成を示す図である。
【特許請求の範囲】
【請求項1】
コンテンツを差し替えるコンテンツ差替方法において、
上記コンテンツの第1のマクロブロック及び第2のマクロブロックに関連する少なくとも第1及び第2のパケット識別子(PID)を有するビデオコンテンツを表すデータを受け取るステップと、
上記第1のPIDを有するコンテンツの処理を開始するステップと、
差替基準が満たされたことを判定するステップと、
第1のPIDを有するマクロブロックを第2のPIDを有するマクロブロックに差し替えるステップと、
上記差し替えられたコンテンツを処理するステップとを有するコンテンツ差替方法。
【請求項2】
テレビジョンセットトップボックスの一部を構成するデコーダにおいて実行されることを特徴とする請求項1記載のコンテンツ差替方法。
【請求項3】
ハードウェア状態マシンにおいて実行されることを特徴とする請求項1記載の差替方法。
【請求項4】
プログラミングされたプロセッサにおいて実行されることを特徴とする請求項1記載のコンテンツ差替方法。
【請求項5】
上記差替基準は、フラグの受信によって満たされることを特徴とする請求項1記載のコンテンツ差替方法。
【請求項6】
上記差替基準は、オペレータの入力に基づいて満たされることを特徴とする請求項1記載のコンテンツ差替方法。
【請求項7】
上記処理は、コンテンツの再生を含むことを特徴とする請求項1記載のコンテンツ差替方法。
【請求項8】
上記差替は、プライベートシグナリングを用いて、第2のPIDを有するコンテンツのマクロブロックを選択するステップと、第1のPIDを有するコンテンツのマクロブロックを削除するステップとを有することを特徴とする請求項1記載のコンテンツ差替方法。
【請求項9】
上記差替は、プライベートシグナリングを用いて、第1のPIDを有するコンテンツを受け取りながら、第2のPIDを有するコンテンツのユニットを選択するステップを有することを特徴とする請求項1記載のコンテンツ差替方法。
【請求項10】
上記差替は、データストリーム内のパケットの適応層の一部を形成するプライベートシグナリングによって、開始され及び終了されることを特徴とする請求項1記載のコンテンツ差替方法。
【請求項11】
上記適応層は、上記第2のPIDを有するパケット内にあることを特徴とする請求項10記載のコンテンツ差替方法。
【請求項12】
上記適応層は、上記第1のPIDを有するパケット内にあることを特徴とする請求項10記載のコンテンツ差替方法。
【請求項13】
上記適応層は、上記第2のPID及び第1のPIDのいずれも有さないパケット内にあることを特徴とする請求項10記載のコンテンツ差替方法。
【請求項14】
プログラミングされたプロセッサによって実行されて、請求項1記載のコンテンツ差替方法を実行する命令を格納するコンピュータにより読取可能な媒体。
【請求項15】
コンテンツを差し替えるコンテンツ差替方法において、
上記コンテンツの第1のマクロブロック及び第2のマクロブロックに関連する少なくとも第1及び第2のパケット識別子(PID)を有するビデオコンテンツを表すデータを受け取るステップと、
上記プライマリPIDを有するコンテンツをデータストリームに挿入するステップと、
PIDマッピング処理の開始を指示する開始フラグを受け取るステップと、
セカンダリPIDを有するコンテンツをプライマリPIDにマッピングし、該マッピングされたコンテンツをデータストリーム内に挿入するステップと、
PIDマッピング処理の終了を指示する終了フラグを受け取るステップと、
上記プライマリPIDを有するコンテンツのデータストリームへの挿入を再開するステップとを有するコンテンツ差替方法。
【請求項16】
テレビジョンセットトップボックスの一部を構成するデコーダにおいて実行されることを特徴とする請求項15記載のコンテンツ差替方法。
【請求項17】
ハードウェア状態マシンにおいて実行されることを特徴とする請求項15記載のコンテンツ差替方法。
【請求項18】
プログラミングされたプロセッサにおいて実行されることを特徴とする請求項15記載のコンテンツ差替方法。
【請求項19】
上記差替基準は、フラグの受信によって満たされることを特徴とする請求項15記載のコンテンツ差替方法。
【請求項20】
上記差替基準は、オペレータの入力に基づいて満たされることを特徴とする請求項15記載のコンテンツ差替方法。
【請求項21】
上記差替は、プライベートシグナリングを用いて、第2のPIDを有するコンテンツのマクロブロックを選択するステップと、第1のPIDを有するコンテンツのマクロブロックを削除するステップとを有することを特徴とする請求項15記載のコンテンツ差替方法。
【請求項22】
上記差替は、データストリーム内のパケットの適応層の一部を形成するプライベートシグナリングによって、開始され及び終了されることを特徴とする請求項15記載のコンテンツ差替方法。
【請求項23】
上記適応層は、上記第1のPIDを有するパケット及び上記第2のPIDを有するパケットのいずれかの内にあることを特徴とする請求項22記載のコンテンツ差替方法。
【請求項24】
上記適応層は、上記第2のPID及び第1のPIDのいずれも有さないパケット内にあることを特徴とする請求項22記載のコンテンツ差替方法。
【請求項25】
プログラミングされたプロセッサによって実行されて、請求項15記載のコンテンツ差替方法を実行する命令を格納するコンピュータにより読取可能な媒体。
【請求項26】
メインのコンテンツの少なくとも1つのマクロブロックを表す入力データを受信するメインコンテンツ受信手段と、
差替コンテンツの少なくとも1つのマクロブロックを表す入力データを受信する差替コンテンツ受信手段と、
上記メインのコンテンツにプライマリPIDを割り当て、上記差替コンテンツにセカンダリPIDを割り当てるパケット識別子(PID)マッパと、
上記プライマリPIDによって上記メインのコンテンツを特定し、上記セカンダリPIDによって上記差替コンテンツを特定することによってユーザプライベートデータを生成するプライベートデータ生成器と、
上記プライベートデータと、上記プライマリPIDにマッピングされたメインのコンテンツと、上記セカンダリPIDにマッピングされた差替コンテンツとをデータストリームとして組み立てる組立手段とを備えるコンテンツ差替エンコーダ。
【請求項27】
プログラミングされたコンピュータによって実現されることを特徴とする請求項26記載のコンテンツ差替エンコーダ。
【請求項28】
コンテンツの第1のマクロブロック及び第2のマクロブロックに関連する少なくとも第1及び第2のパケット識別子(PID)を有するコンテンツを表すデータを受信する受信機と、
上記第1のPIDを有するコンテンツを再生するコンテンツデコーダと、
差替基準が満たされたことを判定するコントローラと、
第2のPIDを有するコンテンツを第1のPIDにマッピングし、該第2のPIDを有していたコンテンツが再生されるようにするPIDマッパとを備えるデコード装置。
【請求項29】
当該デコード装置は、テレビジョンセットトップボックス内に配設されていることを特徴とする請求項28記載のデコード装置。
【請求項1】
コンテンツを差し替えるコンテンツ差替方法において、
上記コンテンツの第1のマクロブロック及び第2のマクロブロックに関連する少なくとも第1及び第2のパケット識別子(PID)を有するビデオコンテンツを表すデータを受け取るステップと、
上記第1のPIDを有するコンテンツの処理を開始するステップと、
差替基準が満たされたことを判定するステップと、
第1のPIDを有するマクロブロックを第2のPIDを有するマクロブロックに差し替えるステップと、
上記差し替えられたコンテンツを処理するステップとを有するコンテンツ差替方法。
【請求項2】
テレビジョンセットトップボックスの一部を構成するデコーダにおいて実行されることを特徴とする請求項1記載のコンテンツ差替方法。
【請求項3】
ハードウェア状態マシンにおいて実行されることを特徴とする請求項1記載の差替方法。
【請求項4】
プログラミングされたプロセッサにおいて実行されることを特徴とする請求項1記載のコンテンツ差替方法。
【請求項5】
上記差替基準は、フラグの受信によって満たされることを特徴とする請求項1記載のコンテンツ差替方法。
【請求項6】
上記差替基準は、オペレータの入力に基づいて満たされることを特徴とする請求項1記載のコンテンツ差替方法。
【請求項7】
上記処理は、コンテンツの再生を含むことを特徴とする請求項1記載のコンテンツ差替方法。
【請求項8】
上記差替は、プライベートシグナリングを用いて、第2のPIDを有するコンテンツのマクロブロックを選択するステップと、第1のPIDを有するコンテンツのマクロブロックを削除するステップとを有することを特徴とする請求項1記載のコンテンツ差替方法。
【請求項9】
上記差替は、プライベートシグナリングを用いて、第1のPIDを有するコンテンツを受け取りながら、第2のPIDを有するコンテンツのユニットを選択するステップを有することを特徴とする請求項1記載のコンテンツ差替方法。
【請求項10】
上記差替は、データストリーム内のパケットの適応層の一部を形成するプライベートシグナリングによって、開始され及び終了されることを特徴とする請求項1記載のコンテンツ差替方法。
【請求項11】
上記適応層は、上記第2のPIDを有するパケット内にあることを特徴とする請求項10記載のコンテンツ差替方法。
【請求項12】
上記適応層は、上記第1のPIDを有するパケット内にあることを特徴とする請求項10記載のコンテンツ差替方法。
【請求項13】
上記適応層は、上記第2のPID及び第1のPIDのいずれも有さないパケット内にあることを特徴とする請求項10記載のコンテンツ差替方法。
【請求項14】
プログラミングされたプロセッサによって実行されて、請求項1記載のコンテンツ差替方法を実行する命令を格納するコンピュータにより読取可能な媒体。
【請求項15】
コンテンツを差し替えるコンテンツ差替方法において、
上記コンテンツの第1のマクロブロック及び第2のマクロブロックに関連する少なくとも第1及び第2のパケット識別子(PID)を有するビデオコンテンツを表すデータを受け取るステップと、
上記プライマリPIDを有するコンテンツをデータストリームに挿入するステップと、
PIDマッピング処理の開始を指示する開始フラグを受け取るステップと、
セカンダリPIDを有するコンテンツをプライマリPIDにマッピングし、該マッピングされたコンテンツをデータストリーム内に挿入するステップと、
PIDマッピング処理の終了を指示する終了フラグを受け取るステップと、
上記プライマリPIDを有するコンテンツのデータストリームへの挿入を再開するステップとを有するコンテンツ差替方法。
【請求項16】
テレビジョンセットトップボックスの一部を構成するデコーダにおいて実行されることを特徴とする請求項15記載のコンテンツ差替方法。
【請求項17】
ハードウェア状態マシンにおいて実行されることを特徴とする請求項15記載のコンテンツ差替方法。
【請求項18】
プログラミングされたプロセッサにおいて実行されることを特徴とする請求項15記載のコンテンツ差替方法。
【請求項19】
上記差替基準は、フラグの受信によって満たされることを特徴とする請求項15記載のコンテンツ差替方法。
【請求項20】
上記差替基準は、オペレータの入力に基づいて満たされることを特徴とする請求項15記載のコンテンツ差替方法。
【請求項21】
上記差替は、プライベートシグナリングを用いて、第2のPIDを有するコンテンツのマクロブロックを選択するステップと、第1のPIDを有するコンテンツのマクロブロックを削除するステップとを有することを特徴とする請求項15記載のコンテンツ差替方法。
【請求項22】
上記差替は、データストリーム内のパケットの適応層の一部を形成するプライベートシグナリングによって、開始され及び終了されることを特徴とする請求項15記載のコンテンツ差替方法。
【請求項23】
上記適応層は、上記第1のPIDを有するパケット及び上記第2のPIDを有するパケットのいずれかの内にあることを特徴とする請求項22記載のコンテンツ差替方法。
【請求項24】
上記適応層は、上記第2のPID及び第1のPIDのいずれも有さないパケット内にあることを特徴とする請求項22記載のコンテンツ差替方法。
【請求項25】
プログラミングされたプロセッサによって実行されて、請求項15記載のコンテンツ差替方法を実行する命令を格納するコンピュータにより読取可能な媒体。
【請求項26】
メインのコンテンツの少なくとも1つのマクロブロックを表す入力データを受信するメインコンテンツ受信手段と、
差替コンテンツの少なくとも1つのマクロブロックを表す入力データを受信する差替コンテンツ受信手段と、
上記メインのコンテンツにプライマリPIDを割り当て、上記差替コンテンツにセカンダリPIDを割り当てるパケット識別子(PID)マッパと、
上記プライマリPIDによって上記メインのコンテンツを特定し、上記セカンダリPIDによって上記差替コンテンツを特定することによってユーザプライベートデータを生成するプライベートデータ生成器と、
上記プライベートデータと、上記プライマリPIDにマッピングされたメインのコンテンツと、上記セカンダリPIDにマッピングされた差替コンテンツとをデータストリームとして組み立てる組立手段とを備えるコンテンツ差替エンコーダ。
【請求項27】
プログラミングされたコンピュータによって実現されることを特徴とする請求項26記載のコンテンツ差替エンコーダ。
【請求項28】
コンテンツの第1のマクロブロック及び第2のマクロブロックに関連する少なくとも第1及び第2のパケット識別子(PID)を有するコンテンツを表すデータを受信する受信機と、
上記第1のPIDを有するコンテンツを再生するコンテンツデコーダと、
差替基準が満たされたことを判定するコントローラと、
第2のPIDを有するコンテンツを第1のPIDにマッピングし、該第2のPIDを有していたコンテンツが再生されるようにするPIDマッパとを備えるデコード装置。
【請求項29】
当該デコード装置は、テレビジョンセットトップボックス内に配設されていることを特徴とする請求項28記載のデコード装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公表番号】特表2007−516664(P2007−516664A)
【公表日】平成19年6月21日(2007.6.21)
【国際特許分類】
【出願番号】特願2006−539484(P2006−539484)
【出願日】平成16年9月30日(2004.9.30)
【国際出願番号】PCT/US2004/032252
【国際公開番号】WO2005/053301
【国際公開日】平成17年6月9日(2005.6.9)
【出願人】(593181638)ソニー エレクトロニクス インク (371)
【Fターム(参考)】
【公表日】平成19年6月21日(2007.6.21)
【国際特許分類】
【出願日】平成16年9月30日(2004.9.30)
【国際出願番号】PCT/US2004/032252
【国際公開番号】WO2005/053301
【国際公開日】平成17年6月9日(2005.6.9)
【出願人】(593181638)ソニー エレクトロニクス インク (371)
【Fターム(参考)】
[ Back to top ]