本発明の態様は、トランスポートパケットストリームを処理する一般的なMPEGテーブルプロセッサに関する。本発明は、特にデジタルテレビシステムで使用するためのデジタル伝送システム用の受信機/デコーダに適している。
ここで使用されるように用語「デジタルテレビシステム」は、例えば任意の衛星システム、地上システム及びケーブルシステムまたは他のシステムを含む。
ここで使用される用語「受信機/デコーダ」は、なんらかの他の手段によって一斉送信または送信されてよい、例えばテレビ信号及び/無線信号などの符号化されている信号または符号化されていない信号のどちらかを受信する受信機を暗示してよい。用語は、受信された信号を復号するデコーダも暗示してよい。このような受信機/デコーダの実施形態は、物理的に別個の受信機と組み合わせて機能するデコーダのような、あるいはウェブブラウザ、ビデオレコーダ、またはテレビなどの追加機能を含むこのようなデコーダなどの、例えば「セットトップボックス」内で受信された信号を復号する受信機と一体化されたデコーダを含んでよい。
用語MPEGは、国際標準化機構作業グループ「エムペグ(MOTION PICTURES EXPERT GROUP)」によって開発されたデータ伝送規格を指し、特にではあるがデジタルテレビ用途のために開発され、文書ISO 13818−1、ISO 13818−2、ISO 13818−3、ISO 13818−4に説かれるMPEG−2規格に限られない。本特許願書の文脈においては、用語はデジタルデータ伝送に適用可能なMPEGフォーマットのすべての変形、変型及び開発物を含む。
本発明の第1の態様に従って、データ部分を含むMPEGプライベートテーブルセクションのためのデータ構造が提供され、該データ構造は該セクションまたは該データ部分のサイズの基準を指定するサイズ指定子を備え、該データ部分は少なくとも1つのブロックを備え、該ブロックまたは各ブロックはそのブロックのサイズの基準を指定する追加のサイズ指定子を含む。
テーブルセクションで従来提供される指定子に加えて追加のサイズ指定子を有することにより、その追加サイズ指定子は特定のデータブロックのサイズの基準を指定し、一般的なデータ構造を定義できるため、MPEGプライベートテーブルセクションのそれぞれの使用に別の構造を提供するニーズを排除することができる。さらに、従来のサイズ指定子を保持できるため、テーブルセクションは下位互換性である場合がある。
前記に参照されるMPEG規格サイズ指定子は、サイズ指定子の後のセクションの残りバイト数という点でセクションのサイズを指定する。ただし、該セクションまたは該データ部分のサイズの他の基準は本発明の範囲内に該当する。
特に、さらに複雑なデータ構造を達成するために、データ部分は、好ましくは、それぞれがこのような追加のサイズ指定子のそれぞれ1つを含む複数のデータブロックを備える。
本発明の追加の態様に従って、データ部分を含むMPEGプライベートテーブルセクションのためのデータ構造が提供され、該データ部分は、それぞれのブロックがそのそれぞれのブロックのサイズの基準を指定するサイズ指定子を含む複数のデータブロックを備える。
構造は好ましくはさらにブロックのリストを備える。
これによりなおさらに複雑なデータ構造が可能になる。リストはブロックを含まなくてよいか、1つのブロックまたは複数の(あるいは事実上非常に多数の)ブロックを含んでよい。
好ましくは、このようなリストはリスト中のブロックの全体的なサイズの基準を指定するリスト指定子を含む。これにより、データ構造は構文解析可能のままとなる。リスト指定子は、例えば、関連ブロック数またはその長さ全体を指定してよい。
まださらに複雑なデータ構造のために、構造は、好ましくは複数のこのようなリストを備える。
構造は、好ましくはさらに、このような複数のリストに共通なデータを有する少なくとも1つのブロックを備える。これによりデータ構造の汎用性を高めることができる。
同じ理由から、このようなリストの中の該ブロックまたは各ブロックは、その特定のリストに特定的なデータを有する。
言うまでもなく、これに関連して、リストに対する参照がそのリストが表現するコンテンツに対する参照を含むことが理解されるだろう。
構造は、好ましくはこのようなリストの中の複数のブロックを備える。
データ構造にさらに多くの機能性を与えるために、構造は、好ましくはさらにそれぞれのリストのコンテンツを表す識別子を備える。
データ構造の構文解析を容易にするために、サイズ指定子はブロックのヘッダ部分に位置している。
好ましくは、少なくとも1つのこのようなブロックはそのコンテンツを表すタグを含む。
したがって、必要とされるデータのあるブロックを検索またはフィルタリングできる。要件に応じて、タグはブロックのコンテンツに関連する情報を含んでよい。
MPEGプライベートテーブルのデータ構造の好適実施形態は、前述されたようにただ1つの構造を備える。
MPEGプライベートテーブルのデータ構造の好適実施形態は、前述されたように複数の構造を備える。
したがって、それぞれが単一の全体的な構造を有することがある2つの一般的なデータ構造を定義することができる。これらの2つの一般的な構造は状況に応じて使用できる。
構造は、好ましくはMPEG標準ヘッダ及び追加ヘッダを含む。
好ましくは、追加ヘッダはデータの変換の状態を表すフラグを含む。例えば、フラグはデータの圧縮または暗号化の状態を表してよい。
代わりに、または加えて、追加ヘッダはデータ部分に適用された変換のタイプを表すフラグを含んでよい。
本発明の追加の態様は、データ部分を提供することと、データ部分の変換の状態またはタイプを表すフラグを追加することとを備えるMPEGポータブルテーブルをアセンブルする方法を提供する。
前述されたフラグは、そのとき、変換の状態またはタイプを決定するために(受信機/デコーダなどの)以後のプロセッサで使用できる。例えば、フラグは圧縮されたテーブルと圧縮され宛て以内テーブルを区別するために、あるいは暗号化されたテーブルと暗号化されていないテーブルを区別するために使用されてよい。フラグを使用することにより、複数の異なる変換アルゴリズムも使用できる。これにより、例えばさまざまな種類のデータでさまざまなアルゴリズムを使用できるようにするなどの、さらに大きな柔軟性が生まれる。
好ましくはデータ部分は、圧縮または暗号化などの変換を受けた。好ましくは、標準ヘッダ及び追加ヘッダは圧縮されておらず、暗号化されていない。これにより既存のシステムハードウェアとソフトウェアとの互換性が保証される。
好ましくは、追加ヘッダは、フィルタ指定子及び/または構文解析ツールタイプを指定するフィールド及び/またはプライベートテーブルセクションが処理される優先順位を指定するためのフィールドを含む。通常、構文解析タイプフィールドが追加ヘッダの最初のフィールドである。
本発明の追加の態様に従って、MPEG標準ヘッダ、追加ヘッダ、及びデータ部分を備えるMPEGプライベートテーブルセクションのためのデータ構造が提供される。
MPEG標準ヘッダの存在は、既存のプライベートテーブルセクションとの互換性を可能にするが、追加ヘッダの存在は追加の機能性をテーブルセクションに組み込むことを可能にする。
追加ヘッダは、好ましくはデータ部分に適用される変換の状態またはタイプを表すフラグを含む。
追加ヘッダは、好ましくはデータの圧縮の状態を表すフラグを含む。したがって、必要とされる帯域幅はさらに少なくなる。好ましくは、標準ヘッダ及び追加ヘッダは圧縮された形式ではない。
追加ヘッダは、データの暗号化の状態を表すフラグも含んでよい。したがって、プライベートテーブルセクションは暗号化コードのあるものによってだけ読み取られてよい。好ましくは標準ヘッダ及び追加ヘッダは暗号化された形式ではない。
追加ヘッダは、好ましくはフィルタ指定子も含む。したがって、強化された機能性をデータのフィルタリングに与えることができる。
追加ヘッダは好ましくは構文解析ツールタイプのフィールドを備える。これはさらに大きな汎用性を与えることができる。
構文解析を容易にするために、構文解析ツールタイプのフィールドは追加ヘッダの第1のヘッダである。
再び追加の機能性のために、追加ヘッダが、プライベートテーブルセクションが処理される優先順位を指定するフィールドを備える。例えば、同じ種類の複数のテーブルが同時に受信される場合、優先順位フィールドは、それらが処理される順序を決定するために使用されてよい。
本発明の追加の態様はMPEGプライベートテーブルで変換を実行する方法を提供し、該テーブルはデータ部分を備え、該方法は変換済みのデータ部分を形成できるように該データ部分を圧縮することを備える。
本発明の追加の態様はMPEGプライベートテーブルで変換を実行する方法を提供し、該テーブルはデータ部分を備え、該方法は変換済みのデータ部分を形成できるように該データ部分を解凍することを備える。
本発明の追加の態様はMPEGプライベートテーブルで変換を実行する方法を提供し、該テーブルはデータ部分を備え、該方法は変換済みのデータ部分を形成できるようにデータ部分を暗号化することを備える。
本発明の追加の態様はMPEGプライベートテーブルでの変換を実行する方法を提供し、該テーブルはデータ部分を備え、該方法は変換済みのデータ部分を形成できるように該データ部分を復号化することを備える。
該方法は、好ましくは変換済みのデータ部分で実行された変換の状態またはタイプを表すフラグを追加することをさらに備える。
発明の追加の態様は、中間ブロックを形成するためにデータブロックをアセンブルすることと、変換済みのブロックを形成するために該中間ブロックで変換を実行することとを備える、複数のデータブロックで変換を実行する方法を提供する。
個々に、且つ別個に各データブロックを変換する代わりに、本発明の本態様に従ってデータブロックは中間ブロックという形で大量に処理される。これにより処理のオーバヘッドは削減できる。典型的な変換プロセスの例は、圧縮、解凍、暗号化及び復号化を含む。
好ましくは、変換は1つのブロックを複数のサブブロックに分割し、要すればサブブロックごとに変換の状態及び/またはタイプを表すフラグを追加することを備える。
変換済みのブロックは受取人に送信される、及びまたは送信機から受信されてよい。
通常、方法は変換済みのブロックで追加変換、つまり通常は前記変換の逆を実行することをさらに備える。
追加変換を実行することは、通常、追加の中間部ロックを形成するためにサブブロックをアセンブルすることと、追加の中間部ロックで追加の変換を実行することを備える。
標準ヘッダは各サブブロックに追加されてよい。
通常、アセンブルするステップが、それぞれがそれぞれのデータブロックのサイズを指定するサイズ指定子を中間部ロックの中に含むことを備える。これにより、以後の処理ステップ中間ブロックからでデータブロックを抽出できる。各指定子はそのそれぞれのデータブロックに先行してよい、あるいはなんらかの他の方法でそのそれぞれのデータブロックと関連付けられてよい。
代わりに、変換済みのサイズ指定子は、ブロックがサブブロックにどのようにして分割されなければならないのかを決定するために検査されてよい。これによってデータブロック構造を作り直すことができる。
変換は圧縮、解凍、暗号化または復号化であってよい。
通常、前記複数のデータブロックはMPEGプライベートテーブルのデータ部分である。
変換済みのブロックは、通常、変換済みのMPEGプライベートテーブルの部分を形成するためにも使用される。
通常、MPEGプライベートテーブルは、それぞれが標準ヘッダとデータ部分を含む複数のテーブルセクションを備え、変換済みのMPEGプライベートテーブルは、それぞれが標準ヘッダと変換済みのブロックによって提供される変換済みのデータ部分を含む複数のテーブルセクションを備える。
変換済みのMPEGプライベートテーブルの中のヘッダの少なくとも一部は、MPEGプライベートテーブルの中の標準ヘッダの一部に実質的に同一であってよい。
方法は、変換のタイプ及び/または状態を指定する変換済みのMPEGプライベートテーブルの中に値を含むことをさらに備えてよい。
方法は、好ましくはデータの意図されている受取人である受信機/デコーダまたは受信機/デコーダのグループを識別するターゲット情報を追加するステップを備える。
ターゲット情報は、例えば識別された受信機/デコーダのスマートカード数(複数の場合がある)を一覧表示することによって、ある特定の受信機/デコーダまたはグループまたは複数の受信機/デコーダを直接的に識別してよい。代わりに、ターゲット情報は、例えばソフトウェアまたはハードウェアプラットホームを識別することによってなど、なんらかの間接的な方法で受信機/デコーダ(複数の場合がある)を識別してよい。
本発明の追加の態様は、複数の圧縮済みのデータブロックを備えるデータ構造を提供し、圧縮済みのデータは複数の解凍済みのデータブロックを提供するために解凍でき、それぞれの解凍済みのデータブロックはデータ部分と、該データ部分のサイズを指定するサイズ指定子を含む。
通常、解凍済みのデータブロックの数は、圧縮済みのデータブロックの数より多い。これにより処理のオーバヘッドが削減する。
通常、データ構造はそれぞれの圧縮済みのデータブロックと関連付けられるヘッダをさらに備える。
本発明の追加の態様は、複数の暗号化済みのデータブロックを備えるデータ構造を提供し、該暗号化済みのデータブロックは、複数の復号化済みのデータブロックを提供するために復号化することができ、それぞれの復号化済みのデータブロックは、データ部分と該データ部分のサイズを指定するサイズ指定子を含む。
通常、データ構造は、それぞれの復号化済みのデータブロックと関連付けられるヘッダをさらに備える。
通常、ヘッダは標準MPEGヘッダである。
本発明の追加の態様は、圧縮済みのMPEGプライベートテーブルセクション及び/または圧縮済みのMPEGプライベートテーブルを提供する。標準MPEGプライベートテーブルの圧縮は、記憶装置の空間及び帯域幅を節約する。
本発明の追加の態様は暗号化されたMPEGプライベートテーブルセクション及び/または暗号化されたMPEGプライベートテーブルを提供する。
本発明の追加の態様は、MPEGプライベートテーブルセクションの意図された受取人である受信機/デコーダまたは受信機/デコーダのグループを識別するターゲット情報を備えるMPEGプライベートテーブルセクションまたはMPEGプライベートテーブルを提供する。
ターゲット情報は、例えば識別された受信機/デコーダのスマートカード数(複数の場合がある)を一覧表示することによってある特定の受信機/デコーダまたは受信機/デコーダのグループを直接的に識別してよい。代わりに、ターゲット情報は、例えばソフトウェアハードウェアプラットホームを識別することによってなんらかの間接的な方法で受信機/デコーダ(複数の場合がある)を識別してよい。
本発明の追加の態様は、MPEGプライベートテーブルセクションをアセンブルする方法を提供し、該方法はMPEGプライベートテーブルセクションの意図された受取人である受信機/デコーダまたは受信機/デコーダのグループを識別するターゲット情報を挿入することを備える。
本発明の追加の態様は、変換を受けた変換済みのデータ部分を提供する手段と、変換のタイプを表すフラグを追加する手段とを備える、MPEGプライベートテーブルをアセブルする装置を備える。
本発明の追加の態様は、MPEGプライベートテーブルで変型を実行する装置を提供し、該テーブルはデータ部分を備え、該装置は変換済みのデータ部分を形成するために該データ部分を圧縮、解凍、暗号化及び/復号化する手段を備える。
本発明の追加の態様は、中間ブロックを形成するためにデータブロックをアセンブルする手段と、変換済みのブロックを形成するために該中間ブロックで変換を実行する手段とを備える、複数のデータブロックで変換を実行する装置を提供する。
本発明の追加の態様は、MPEGプライベートテーブルセクションをアセンブルする装置を提供し、該装置は、MPEGプライベートテーブルセクションの意図される受けと炉委任である受信機/デコーダまたは受信機/デコーダのグループを識別するターゲット情報を挿入する手段を備える。
本発明の追加の態様に従って、データ部分を含むMPEGプライベートテーブルセクションを構文解析する構文解析ツールが提供され、該データ部分のセクションのサイズの基準を指定するサイズ指定子を備えるフォーマットでデータを構文解析する(例えば関連付けられたメモリを備えるプロセッサの形の)手段を備え、該データ部分は少なくとも1つのデータブロックを備え、該ブロックまたは各ブロックはそのブロックのサイズの基準を指定する追加のサイズ指定子を含む。
好ましくは、構文解析ツールは、データ部分が複数のデータブロックを備え、それぞれがこのような追加サイズ指定子のそれぞれ1つを含むフォーマットでデータを構文解析するように適応される。
本発明の追加の態様においては、データ部分を含むMPEGプライベートテーブルセクションを構文解析する構文解析ツールが提供され、該データ部分は複数のデータブロックを備え、各ブロックはそのそれぞれのブロックのサイズの基準を指定するサイズ指定子を含む。
好ましくは、構文解析ツールはさらにブロックのリストを備えるフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールは、このようなリストがリストの中のブロックの全体的なサイズの基準を指定するリスト指定子を含むフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールは、複数のこのようなリストを備えるフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールは、このような複数のリストに共通なデータを有する少なくとも1つのブロックをさらに備えるフォーマットでデータを解析するように適応される。
好ましくは、構文解析ツールは、このような特定のデータがこのような共通のデータを無効にするようにデータを構文解析するように適応される。
好ましくは、構文解析ツールは、このようなリストの中の複数のブロックを備えるフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールは、それぞれのリストのコンテンツを表す識別子をさらに備えるフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールは、サイズ指定子がブロックのヘッダ部分に位置するフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールは、少なくとも1つのこのようなブロックがそのコンテンツを表すタグを含むフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールはただ1つのMPEGセクションを備えるフォーマットでデータを構文解析するように適応される。
代わりに、構文解析ツールは複数のMPEGセクションを備えるフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールはMPEG標準ヘッダ及び追加ヘッダを含むフォーマットでデータを構文解析するように適応される。
本発明の追加の態様に従って、MPEG標準ヘッダ、追加ヘッダ、及びデータ部分を備えるフォーマットでデータを解析する(例えば、関連メモリを備えたプロセッサの形の)手段を備える、MPEGプライベートテーブルセクションを構文解析する構文解析ツールが提供される。
好ましくは、構文解析ツールは、追加ヘッダが変換の状態またはタイプを表すフラグを含むフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールは、追加ヘッダがデータの圧縮の状態を表すフラグを含むフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールは、追加ヘッダがデータの暗号化の状態を表すフラグを含むフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールは、追加ヘッダがフィルタ指定子を含むフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールは、追加ヘッダが構文解析ツールタイプを指定するフィールドを備えるフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールは、構文解析ツールタイプフィールドが追加ヘッダの第1のフィールドであるフォーマットでデータを構文解析するように適応される。
好ましくは、構文解析ツールは、追加ヘッダがプライベートテーブルセクションが処理される優先順位を指定するためのフィールドを備えるフォーマットでデータを構文解析するように適応される。
本発明の追加の態様に従って、MPEG標準ヘッダとデータ部分を備えるMPEGプライベートテーブルセクションを構文解析するための構文解析ツールが提供され、TID拡張フィールドの値を出力する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段を備え、該MPEG標準ヘッダがTID拡張フィールドを含む。過去において、TID拡張フィールドは無視されていた。
本発明の追加の態様に従って、このようなデータを、指定フォーマットと、ここに説明するようなデータ構造のフォーマットのデータの間で変換する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段を備えるデータを処理する装置が提供される。
本発明の追加の態様に従って、データ部分を提供する(例えば、関連付けられたメモリを備えるプロセッサの形の)手段と、データ部分の変換の状態またはタイプを表すフラグを追加する(例えば、関連付けられたメモリを備えたプロセッサの形の)手段とを備える、MPEGプライベートテーブルをアセンブルする装置が提供される。
好ましくは、データ部分は、変換を受けた変換済みのデータ部分である。
本発明の追加態様に従って、MPEGプライベートテーブルで変換を実行する装置が提供され、該テーブルはデータ部分を備え、該装置は変換済みのデータ部分を形成するために該データ部分を圧縮、解凍、暗号化または復号化する(例えば、関連付けられたメモリを備えたプロセッサの形の)手段を備える。
好ましくは、装置は、さらに変換済みのデータ部分の変換の状態を表すフラグを追加する(例えば、関連付けられたメモリを備えたプロセッサの形を取る)手段をさらに備える。
好ましくは、装置は、データ部分で実行された変換のタイプを表すフラグを追加する(例えば、関連付けられたメモリを備えたプロセッサの形を取る)手段をさらに備える。
本発明の追加の態様に従って、複数のデータブロックで変換を実行する装置が提供され、中間ブロックを形成するためにデータブロックをアセンブルする(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段と、変換済みのブロックを形成するために中間ブロックで変換を実行する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段とを備える。
好ましくは、実行する手段は、1つのブロックを複数のサブブロックに分割するために(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段を備える。
好ましくは、装置は、データのサブブロックへの変換の状態を表すフラグを追加する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段をさらに備える。
好ましくは、装置は、サブブロックへの変換のタイプを表すフラグを追加する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段をさらに備える。
好ましくは、装置は、変換済みのブロックを受取人に送信する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段をさらに備える。
好ましくは、装置は、変換済みのブロックを受信する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段をさらに備える。
好ましくは、装置は、変換済みのブロックで追加のブロックを実行する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段をさらに備える。
好ましくは、前記追加の変換は前記変換の逆である。
好ましくは、装置は、追加の中間ブロックを形成するためにサブブロックをアセンブルする(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段と、該追加の中間ブロックで追加の変換を実行する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段とをさらに備える。
好ましくは、装置は、標準ヘッダを各サブアブロックに追加する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段をさらに備える。
好ましくは、それぞれがそれぞれのデータブロックのサイズを指定するサイズ指定子を中間ブロックの中に含む(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段をさらに備える。
好ましくは、装置は、ブロックがどのようにサブブロックに分割されなければならないのかを決定するためにブロックの中のサイズ指定子を検査する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段をさらに備える。
好ましくは、変換は圧縮、解凍、暗号化または復号化である。
好ましくは、装置は、変換されたブロックによって提供される少なくとも1つの変換済みのデータ部分を有する変換済みのMPEGプライベートテーブルを形成する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段をさらに備える。
好ましくは、装置は変換のタイプを指定する変換済みのMPEGプライベートテーブルに値を含める(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段をさらに備える。
好ましくは、変換済みのデータ部分の変換の状態を指定する変換済みのMPEGプライベートテーブルに値を含める(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段をさらに備える。
好ましくは、前述されたような構文解析ツールを含む受信機/デコーダが提供される。しかしながら、本発明は受信機/デコーダに制限されず、例えばPCの中で実現できる。
データは放送ストリームで送信されてよい。データは、それから放送ストリームから受信機端部で抽出できる。
好適実施形態では、方法はデジタル放送センタ、及び複数の受信機/デコーダを含むシステムで利用される。
次に、データは、多様なタスクで利用できる。例えば、それは受信機/デコーダの機能を制御するアクション通知データを含んでよい。代わりに、データは、条件付きアクセスシステムへのアクセスを獲得するために受信機/デコーダによって使用するためのキーデータを含んでよい。
代わりに、データはビデオオンデマンドシステムで使用するための番組情報を含んでよい。
好ましくは、データ部分またはブロックは、指定されたカテゴリの少なくとも1つのアセットに対する番組情報を含み、データ部分またはブロックは前記カテゴリを識別するカテゴリ識別子を含むフィルタ指定子を伴なう。アセットは、好ましくはテレビ番組またはビデオオンデマンドシステムを通して使用可能な他の提供物であり、複数のアセットは好ましくはそれらのコンテンツに応じて分類される。例えば、スポーツカテゴリ、映画カテゴリ等がある場合がある。また、サブカテゴリがある場合もある。このようにして、フィルタリングはカテゴリ識別子に対して実行され、所望されるカテゴリの中のアセットに関する情報をさらに容易に検索できるようにしてよい。
代わりに、またはさらに、データ部分またはブロックはアセットに対する番組情報を含み、データ部分またはブロックは前記アセットを識別するアセット識別子を含むフィルタ指定子を伴なう。これにより、ある特定のアセットに関する情報をさらに容易に検索できる。
好ましくは、フィルタ指定子はMPEGテーブルセクションのTID拡張フィールドである。多くの受信機/デコーダは、TID拡張フィールドを含む多くのヘッダフィールドに従ってMPEGテーブルセクションをフィルタリングする機能を提供し、このような機能は多くの場合ハードウェアで提供されるので、情報は、TID拡張フィールドがこのように使用されるときにこのようなデコーダによってさらに容易に且つ迅速に検索されてよい。
受信機/デコーダは、好ましくは、TID拡張フィールドの値を受信し、このような値を処理する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段を含む。
受信及び処理手段は、好ましくは受信機/デコーダのユーザへの通知としてこのような値を処理するように適応される。
受信及び処理手段は、好ましくは受信機/デコーダによって受信されるコンテンツに関するデータとしてこのような値を処理するように適応される。
好ましくは、前述した、あるいは前述したようにアセンブルされ、処理され、あるいは変換されたデータ構造でデータを受信及び/または復号するように適応される受信機/デコーダが提供される。
送信機は、前述したような、あるいは前述したようにアセンブル、処理または変換されたデータ構造の中のデータを送信するように適応される。
受信機/デコーダ及び前述した送信機を組み込む放送システムがさらに提供される。
放送システムの中のデータは、好ましくは条件付きアクセスデータであり、システムは別個のチャネルデこのようなデータを送受するように適応されている。
指定されたフォーマットと、前述したようなデータ構造のフォーマットのデータの間でこのようなデータを変換することを備えるデータを処理する方法も提供される。指定されるフォーマットは、それに、及びそれから、それが前述されたようなデータ構造のフォーマットからデータが変換される任意のフォーマットであってよい。
本発明の追加の態様に従って、ここに前述された方法を使用してMPEGプライベートテーブルで変換を実行することと、変換済みのテーブルを送信することを備える、MPEGプライベートテーブルを送信する方法が提供される。
追加の態様は、MPEGプライベートテーブルを受信することと、ここに前述した方法を使用して受信したテーブルで変換を実行することとを備える、MPEGプライベートテーブルを受信する方法を提供する。
好ましくは、データ部分またはブロックは、受信機/デコーダによる受信のため、及び受信機/デコーダの機能を制御するためのアクション通知データを含む。
好ましくは、データ部分またはブロックは、ビデオオンデマンドシステムで使用するための番組情報を含む。
好ましくは、データ部分またはブロックは指定されたカテゴリの少なくとも1つのアセットのための番組情報を含み、該データ部分またはブロックは前記カテゴリを識別するカテゴリ識別子を含むフィルタ指定子を伴なう。
好ましくは、データ部分またはブロックはアセットのための番組情報を含み、データ部分またはブロックは前記アセットを識別するアセット識別子を含むフィルタ指定子を伴なう。
好ましくは、フィルタ指定子はMPEGテーブルセクションのTID拡張フィールドである。
好ましくは、データ部分またはブロックは、条件付きアクセスシステムに対するアクセスを獲得するために受信機/デコーダが使用するためのキーデータを含む。
本発明の追加の態様は、ここに説明されるようなMPEGプライベートテーブルまたはテーブルセクションを構文解析する、あるいはここに説明されるデータ構造を有するデータを構文解析する、あるいはここに説明される方法により処理、アセンブルまたは変換されるデータを構文解析する(例えば、関連付けられたメモリを備えるプロセッサの形を取る)手段を提供する。
本発明の追加の態様は、ここに説明されるような、あるいはここに説明されるような方法で処理、アセンブル、あるいは変換されたMPEGプライベートテーブルまたはテーブルセクションを送信するように適応される送信機を提供される。
本発明の追加の態様はここに説明されるような方法を実行するように適応される構文解析ツールを提供する。
本発明は、添付図面に関して実質的にここに説明される方法、及び実質的に添付図面に関してここに説明され、添付図面に図解されるような装置も提供する。
本発明は前述されたように方法を実行するように適応されたコンピュータプログラム製品に及ぶ。
本発明は、さらに、前述されたように構文解析ツールまたは装置を実現するコンピュータ読み取り可能媒体に及ぶ。
本発明は、前述されたように構文解析ツールまたは装置を有形で実現する信号になおさらに及ぶ。
本発明は、ここに説明される方法のどれかを実施するため、及び/またはここに説明される装置機能のどれかを実現するためのコンピュータプログラム及びコンピュータプログラム製品、ならびにここに説明される方法のどれかを実施するため、及び/またはここに説明される装置機能のどれかを実現するためのプログラムをその上に記憶するコンピュータ読み取り可能媒体も提供する。
本発明は、ここに説明される方法のどれかを実施するため、及び/またはここに説明される装置機能のどれかを実現するためのコンピュータプログラムを実現する信号、このような信号を送信する方法、ならびにここに説明される方法のどれかを実施するため、及び/またはここに説明される装置機能のどれかを実現するためのコンピュータプログラムをサポートするオペレーティングシステムを有するコンピュータ製品も提供する。
ハードウェアで実現される機能は、通常ソフトウェアで実現されてよく、逆もまた同様である。ここのソフトウェア機能とハードウェア機能に対するあらゆる参照は相応して解釈されるべきである。
本発明のある態様の任意の態様は、任意の適切な組み合わせで本発明の他の態様に適用されてよい。特に方法の態様は装置の態様に適用されてよく、逆もまた同様である。
本発明の好適機能はここで添付図面に関して純粋に例証として説明される。
システム概要
デジタルテレビシステム1の概要は図1に図示されている。本発明は、既知のMPEG−2圧縮システムを使用し、圧縮済みのデジタル信号を送信するおもに従来のデジタルテレビシステム2を含む。さらに詳細には、放送センタ内のMPEG−2圧縮器3がデジタル信号ストリーム(通常はビデオ信号のストリーム)を受信する。圧縮器3はリンケージ5によってマルチプレクサ及びスクランブラ4に接続される。
マルチプレクサ4は複数の追加入力信号を受信し、トランスポートストリームをアセンブルし、電気通信リンクを含む、言うまでもなく多岐に渡る形式を取ることがあるリンケージ7を介して圧縮済みのデジタル信号を放送センタの送信機6に送信する。送信機6は、信号が電子的に処理され、概念上のダウンリンク10を介して従来はエンドユーザによって所有または借りられている地上受信機12に一斉送信される衛星トランスポンダ9に向かってアップリンク8を介して電磁信号を送信する。言うまでもなく、地上放送、ケーブル伝送、衛星/ケーブル結合リンク、電話網等のデータの伝送用の他のトランスポートチャネルも考えられる。
受信機12によって受信される信号は、エンドユーザによって所有される、または借りられ、エンドユーザのテレビ受像機14に接続されている統合型受信機/デコーダ13に伝送される。受信機/デコーダ13は圧縮されたMPEG−2信号をテレビ受像機14用のテレビ信号に復号する。別個の受信機/デコーダが図1に図示されているが、該受信機/デコーダも統合型デジタルテレビの一部であってよい。ここに使用されるように、用語「受信機/デコーダ」は、セットトップボックスなどの別個の受信機/デコーダ、及びそれと統合される受信機/デコーダを有するテレビを含む。
マルチチャネルシステムにおいては、マルチプレクサ4が数多くの並列ソースから受信される音声情報とビデオ情報を処理し、送信機6と対話し、情報を対応する数のチャネルに沿って一斉送信する。視聴覚情報に加えて、メッセージまたはアプリケーションまたは他の種類のデジタルデータが、送信されたデジタル音声情報及びビデオ情報とインタレースされるこれらのチャネルのいくつかまたはすべてで導入されてよい。
条件付きシステム15はマルチプレクサ4及び受信機/デコーダ13に接続され、部分的に放送センタ内に、及び部分的に受信機/デコーダ内に位置する。それにより、エンドユーザは1つまたは複数の放送供給業者からのデジタルテレビ放送にアクセスできるようになる。商業的なオファー(すなわち放送供給業者によって販売される1つまたは複数のテレビ番組)に関するメッセージを解読できるスマートカードを受信機/デコーダ13の中に差し込むことができる。受信機/デコーダ13及びスマートカードを使用して、エンドユーザは加入モードまたはペイパービューモードのどちらかで商業的なオファーを購入してよい。
前述されたように、システムによって送信される番組はマルチプレクサ4でスクランブルされ、指定される伝送に適用される条件鍵及び暗号化鍵はアクセスコントロールシステム15によって決定される。このようにしてスクランブルされたデータの伝送は、ペイテレビシステムの分野では周知である。通常、スクランブルされたデータは、データをデスクランブルするコントロールワードとともに送信され、該コントロールワード自体がいわゆるエクスプロイテーションキーによって暗号化され、暗号化された形式で送信される。
それからスクランブルされたデータ及び暗号化されたコントロールワードは、暗号化されたコントロールワードを復号化し、それ以後送信されたデータをデスクランブルするために受信機/デコーダに挿入されるスマートカード上に記憶されるエクスプロイテーションキーの同等物にアクセスしている受信機/デコーダ13によって受信される。支払い済みの加入者は、例えば、放送月次EMM(エンタイトルメント管理メッセージ)の中で伝送の視聴を可能とするように暗号化されたコントロールワードを復号化するために必要なエクスプロイテーションキーを受信するだろう。
やはりマルチプレクサ4及び受信機/デコーダ13に接続され、再び部分的に放送センタ内にあり、部分的に受信機/デコーダ内にある対話型システム16は、エンドユーザがバックチャネル17を介して多様なアプリケーションと対話できるようにする。該バックチャネルは、例えば、公衆電話交換網(PSTN)チャネル(例えばモデム付きバックチャネル)またはアウトオブバンド(OOB)チャネルであってよい。バックチャネルは条件付きアクセスシステム15内で使用される通信にも使用されてよい。
条件付きアクセスシステム
図2を参照すると、概要において、条件付きアクセスシステム15は、加入者許可システム(SAS)30を含んでいる。SAS 30は1つまたは複数の加入者管理システム(SMS)32、放送供給者ごとに1つのSMSに、TCP−IPリンクまたは他の種類のリンクであってよいリンク34によって接続される。代わりに、1つのSMSは2つの商業的な事業者の間で共用されるか、あるいは1つの事業者が2つのSMSを使用することがあるだろう。
「マザー」スマートカード38を活用する暗号装置36の形を取る第1の暗号化装置は、リンケージ40によってSASに接続される。再びマザースマートカード44を活用する暗号装置42の形を取る第2の暗号化装置は、リンケージ46によってマルチプレクサ4に接続される。受信機/デコーダ13は「ドーター」スマートカード48を受け入れる。受信機/デコーダは、通信サーバ50及びモデム付きバックチャネル17を介してSAS 30に直接的に接続される。SASは、要求がありしだい、とりわけ加入権をドータースマートカードに送信する。
スマートカードは、1つまたは複数の商業的な事業者からの秘密の情報を含んでいる。「マザー」スマートカードはさまざまな種類のメッセージを暗号化し、「ドーター」スマートカードは、それらがそうする権利を有している場合にはメッセージを復号化する。
図2に関して、放送センタでは、デジタルビデオ信号がMPEG−2圧縮器3を使用して最初に圧縮される(つまりビットレート削減される)。それから、この圧縮された信号は、他の圧縮データなどの他のデータと多重化されるために、マルチプレクサ及びスクランブラ4に伝送される。
スクランブラは、スクランブルプロセスで使用され、マルチプレクサ4でMPEG−2ストリームに含まれるコントロールワードを作成する。コントロールワードは内部で作成され、エンドユーザの統合型受信機/デコーダ13が番組をデスクランブルできるようにする。
番組がどのようにして商品化されているのかを示すアクセス基準もMPEG−2ストリームに追加される。番組は、数多くの「加入」モードの1つ及び/または数多くの「ペイパービュー」(PPV)モードまたはイベント1つのどちらかで商品化されてよい。加入モードでは、エンドユーザは1つまたは複数の商業的なオファー、つまり「ブーケ」に加入し、このようにしてそれらのブーケの中のあらゆるチャネルを見る権利を獲得する。ペイパービューモードでは、エンドユーザは、自分が希望するようにイベントを購入する機能を与えられる。
コントロールワードとアクセス基準の両方ともエンタイトルメントコントロールメッセージ(ECM)を構築するのに使用される。これは、1つのスクランブルされた番組に関して送信されるメッセージであり、該メッセージは(番組のデスクランブルを可能にする)コントロールワード及び放送番組のアクセス基準を含む。アクセス基準とコントロールワードはリンケージ46を介して第2の暗号化装置42に送信される。この装置では、ECMが生成され、暗号化され、マルチプレクサとスクランブラ4に送信される。
放送供給業者によってデータストリームの中で一斉送信される各サービスは、数多くの別個の成分を備える。例えば、テレビ番組は、ビデオ成分、音声成分、字幕成分等を含んでいる。サービスのこれらの成分のそれぞれが個別にスクランブルされ、以後の放送のために暗号化される。サービスのそれぞれのスクランブルされた成分に関して、別個のECMが必要とされる。
マルチプレクサ4は、SAS 30からの暗号化されたEMM、第2の暗号化装置42からの暗号化されたECM、及び圧縮器3からの圧縮済み番組を備える電気信号を受信する。マルチプレクサ4は番組をスクランブルし、スクランブルされた番組、暗号化されたEMM、及び暗号化されたECMを電気信号として、例えば図1に図示されるような衛星システム、または他の放送システムであってよい放送システム54に送信する。受信機/デコーダ13は信号を逆多重化し、暗号化されたEMMと暗号化されたECMとともに、スクランブルされた番組を取得する。
受信機/デコーダは放送信号を受信し、MPEG−2データストリームを抽出する。番組がスクランブルされている場合、受信機/デコーダ13は、MPEG−2ストリームから対応するECMを抽出し、エンドユーザの「ドーター」スマートカード48に該ECMを渡す。これは受信機/デコーダ13内のハウジングに組み込まれる。ドータースマートカード48は、エンドユーザがECMを復号化し、番組にアクセスする権利を有するかどうかを制御する。ない場合には、否定的なステータスは受信機/デコーダ13に渡され、番組をデスクランブルできないことを示す。エンドユーザが権利を有する場合には、ECMは復号化され、コントロールワードが抽出される。デコーダ13は、それからこのコントロールワードを使用して番組をデスクランブルする。MPEG−2ストリームは解凍され、テレビ受像機14に対する前進伝送のためにビデオ信号に変換される。
番組がスクランブルされていない場合、ECMはMPEG−2ストリームとともに送信されず、受信機/デコーダ13はデータを解凍し、テレビ受像機14への伝送のために信号をビデオ信号に変換する。
加入者管理システム(SMS)30は、とりわけエンドユーザファイル、(料金表及び宣伝などの)商業的なオファー、加入、PPV詳細、及びエンドユーザの消費と許可に関するデータを管理するデータベース52を含んでいる。SMSはSASから物理的に遠くてよい。
SMS 32は、エンドユーザに送信されるエンタイトルメント管理メッセージ(EMM)に対する修正またはその作成を暗示するSAS 30にメッセージを送信する。SMS 32は、EMMの修正や作成を暗示しないが、(製品を注文するときにエンドユーザに付与される許可、またはエンドユーザが請求される金額に関する)エンドユーザの状態の変更だけを暗示するSAS 30にもメッセージを送信する。SAS 30は(通常、コールバック情報または料金請求書作成発行情報などの情報を要求する)メッセージもSMS 32に送信し、その結果2つの間の通信が双方向であることは明らかになるだろう。
エンタイトルメント管理メッセージ(EMM)
1つのスクランブルされた番組だけ、あるいは同じ商業的なオファーの一部の場合スクランブルされた番組の集合専用であるECMとは対照的に、EMMは、個別エンドユーザ(加入者)専用、またはエンドユーザのグループだけに対するメッセージである。
多様な特定のタイプのEMMが考えられる。ここのEMMはここの加入者専用であり、通常はペイパービューサービスの提供で使用される。これらはグループ識別子及びそのグループ内での加入者の位置を含んでいる。いわゆる「グループ」加入EMMは、例えば256人の個人ユーザのグループ専用であり、通常、いくつかの加入サービスの管理に使用される。視聴者EMMは視聴者全体専用である。「視聴者」とは同じオペレータ識別子(OPI)が付いたスマートカードを持つ加入者の全体のことである。最後に「固有の」EMMはスマートカードの固有の識別子にアドレス指定されている。
好適実施形態で使用されるEMMの一般的な形式を、ここで図3に関して説明する。基本的には、一連のデジタルデータビットとして実現されるEMMは、ヘッダ60、EMMプロパー(proper)62、及びシグネチャ64を備える。ヘッダ60は、代わりにEMMの種類を識別するためのタイプ識別子66、EMMの長さを示す長さ識別子68、EMMのためのオプションのアドレス70、オペレータ識別子72、及びキー識別子74を備える。最後に、やはりオプションであるシグネチャ64がEMMの中に残っているデータの破壊に対するチェックの数を提供する。ヘッダの中のタイプ識別子はメッセージをEMMとして識別する。
加入者許可システム(SAS)
SMS 32によって作成されるメッセージは、リンケージ34を介して、代わりにSMS 32によって作成されるメッセージの受信を肯定応答するメッセージを作成し、これらの肯定応答をSMS 32に渡す加入者管理システム(SAS)30に渡される。SASに渡されてよいメッセージには、例えば未払いのための加入者差し止め、例えば特定の商業的なオファーを追加または削除するための加入者修正があり、例えばPPVモードでの特定のイベントなどの権利を提供する。
SAS 30はSMS 32によって宣言される全加入者のステータスを記憶するデータベースを管理する。ステータス及びSMSによって送信される多様なメッセージに従って、SASは加入者のスマートカードのためのEMMを作成する。該EMMはSAS暗号装置36によって暗号にされ、マルチプレクサ4に送信される。EMMが加入者によって受信されることを確実にするために、SASはこれらのメッセージを周期的に送信する。サイクルは、EMMのタイプによるが、通常30秒と30分の間である。
SAS 30の通常の構成が図4に図示されている。概要では、SAS 30は、加入モードに対する権利を与え、毎月自動的に該権利を更新するための加入チェーン領域100、PPVイベントの権利を与えるためのペイパービュー(PPV)チェーン領域102、及び加入チェーン領域及びPPVチェーン領域によって作成されるEMMをマルチプレクサとスクランブラ4に渡し、したがってMPEGストリームにEMMを供給するためのEMMインジェクタ104を備えている。コンピュータソフトウェアをユーザのパーソナルコンピュータにダウンロードするケースでのペイパーファイル(PPF)権利などの他の権利が許可される場合には、他の類似する領域も提供される。
SAS 30の1つの機能とは、加入モードで商業的なオファーとして入手可能である、あるいはさまざまな商業化のモード(予約モード、インパルスモード)に従ってPPVイベントとして販売されるテレビ番組に対するアクセス権を管理することである。SAS 30は、それらの権利とSMS 32から受信される情報に従って、加入者にEMMを作成する。
加入チェーン領域100は、コマンドインタフェース(CI)106、加入者技術管理(SATM)サーバ108、メッセージジェネレータ(MG)110、及び暗号装置36を備える。PPVチェーン領域102は、許可サーバ(AS)112、エンドユーザの関連する詳細を記憶するためのリレーショナルデータベースを含むデータベースサーバ114、116、注文集中サーバ(OCS)118、番組放送局用サーバ(SPB)120、その機能が基本的に加入チェーン領域のものと同じであるメッセージジェネレータ(MG)122、及び暗号装置36を備える。
EMMインジェクタ104は複数のメッセージエミッタ(ME)124、126、128及び130、及びソフトウェアマルチプレクサ(SMUX)132と134を備える。好適実施形態においては、メッセージジェネレータ132用に2つのME、124と126があり、メッセージジェネレータ134用には他の2つのME、128と130がある。ME 124と126はSMUX 132と接続されるが、ME 128と130はSMUX 134に接続される。
メッセージジェネレータ110と122は、それぞれSTM 108及びOCS 118によって発行されるコマンドをEMMに変換する。MGはEMMの期間とエミッションの率を決定する。MGは、専用の暗号装置を使用してEMMも暗号にする。それらは、次に暗号にしたEMMを、EMMを周期的に送信するそれぞれのMEに渡す。図4に図示されるように、単一のMGに複数のMEを接続することができ、適切なMEはEMMの中で参照されるオペレータに従ってMGによって決定される。指定されたEMMの有効期間中、MGは独自のデータベースの中にそれを記憶する。EMMは、そのエミッション期間が期限切れになるとすぐにデータベースから消去される。このデータベースは、MGとMEの一貫性を確実にする。
メッセージエミッタ124、126、128、130は、それぞれのMGから放送開始日、放送停止日、及び放送サイクルなどの複数のパラメータとともにEMMを受信する。それから、MGは指定されたパラメータに従ってEMMの一斉送信を管理する。
受信機/デコーダ
図5を参照すると、受信機/デコーダ13の多様な要素をここで機能ブロックという点で説明する。
例えばデジタルセットトップボックス(STB)であってよい受信機/デコーダは、関連付けられたメモリ素子を含み、シリアルインタフェース221、パラレルインタフェース222、(図1のモデムバックチャネル17に接続される)モデム223から入力データを受信するように適応された中央処理装置220、及びデコーダのフロントパネル上のスイッチ接点224を備える。
受信機/デコーダは、さらに、赤外線リモコン225からコントロールユニット226を介して入力を受信するように適応され、それぞれ銀行スマートカードと加入スマートカード242、240を読み取るように適応される2台のスマートカード読取装置227、228も所有している。加入スマートカード読取装置228は挿入された加入カード240と、及び条件付きアクセス装置229と係合し、必要なコントロールワードをデマルチプレクサ/デスクランブラ/リマルチプレクサ装置230に供給し、暗号化された放送信号をデスクランブルできるようにする。デコーダは、装置230によってフィルタリングされ、逆多重化される前に衛星伝送を受信、復調するために従来のチューナ231と復調器232も含む。
本説明で使用されるように、好ましくはアプリケーションは、好ましくは受信機/デコーダ13の高水準機能を制御する1個のコンピュータコードである。例えば、エンドユーザがリモコン225のフォーカスをテレビ受像機14の画面に表示されるボタンオブジェクトの上に配置し、確証キーを押すと、該ボタンに関連付けられる命令シーケンスが実行される。
対話型アプリケーションはメニューを提案し、エンドユーザの要求によりコマンドを実行し、アプリケーションの目的に関するデータを提供する。アプリケーションは、常駐アプリケーション、つまり受信機/デコーダ2000のROM(またはFLASHまたは他の不揮発性メモリ)に記憶されているか、あるいは受信機/デコーダ2000のRAM、またはFLASHメモリに一斉送信され、ダウンロードされてよい。
アプリケーションは受信機/デコーダ13の中のメモリロケーションに記憶され、リソースファイルとして表現される。該リソースファイルは、前述された特許明細書に詳細に説明されるように、グラフィックオブジェクト記述単位ファイル、変数ブロック単位ファイル、命令シーケンスファイル、アプリケーションファイル、及びデータファイルを備える。
受信機/デコーダは、RAMボリューム、FLASHボリューム及びROMボリュームに分割されるメモリを含むが、この物理的な編成は論理的な編成とは異なる。メモリは、多様なインタフェースと関連付けられるメモリボリュームにさらに分割されてよい。ある視点からは、メモリはハードウェアの一部と見なすことができる。別の視点からは、メモリは、ハードウェアの他に示されるシステムの全体をサポートする、または含むと見なすことができる。
受信機/デコーダのアーキテクチャ
受信機/デコーダは、ソフトウェアを受信機/デコーダの中で、及び任意のオペレーティングシステムとともに実現できるように編成される5つのソフトウェア層を含む。図6を参照すると、多様なソフトウェア層とはアプリケーション層250、アプリケーションプログラミングインタフェース(API)層252、仮想機械層254、デバイス層256、及びシステムソフトウェア/ハードウェア層258である。
アプリケーション層250は受信機/デコーダに常駐しているか、あるいはダウンロードされるアプリケーションを包含する。それらはカスタマによって使用され、例えばJava(登録商標)、HTML、MHEG−5または他の言語によって作成される対話型アプリケーションであってよいか、あるいはそれらはこのような対話型アプリケーションを実行するために受信機/デコーダによって使用されるアプリケーションであってよい。この層は、仮想機械層によって提供されるオープンなアプリケーションプログラミングインタフェース(API)の集合に基づいている。このシステムによって、進行中にあるいはオンデマンドで、アプリケーションを受信機/デコーダのフラッシュメモリ、またはRAMメモリにダウンロードできる。アプリケーションコードは、データストレージメディアコマンドアンドコントロール(Data Storage Media Command And Control)(DSMCC)、ネットワークファイルサーバ(Network File Server)(NFS)または他のプロトコルなどのプロトコルを使用して圧縮フォーマットまたは未圧縮フォーマットで送信できる。
対話型アプリケーションは、ユーザが、例えば電子番組表、テレバンキングアプリケーション及びゲームなどの製品とサービスを獲得するために対話するアプリケーションである。次に示す常駐アプリケーションが、対話型アプリケーションを管理するために使用される。
・ブート。ブートアプリケーション260は受信機/デコーダの電源が投入されたときに起動される最初のアプリケーションである。ブートアプリケーションは仮想機械の中でさまざまな「マネージャ」を起動し、最初がアプリケーションマネージャ262である。
・アプリケーションマネージャ。アプリケーションマネージャ262は、受信機/デコーダ内で実行する対話型アプリケーションを管理する。すなわち、それはイベントを起動、停止、中断、再開、処理し、アプリケーション間の通信に対処する。それは複数のアプリケーションを一度に実行できるようにし、したがってそれらの間でのリソースの割り当てに関与している。このアプリケーションはユーザにとって完全にトランスペアレントである。
・セットアップ(SETUP)。セットアップアプリケーション264の目的は、受信機/デコーダを、おもに初めてそれが使用されるときに構成することである。それは、テレビチャネルの走査、日付と時刻の設定、ユーザ優先順位の確立等のアクションを実行する。しかし、セットアップアプリケーションは、受信機/デコーダの構成を変更するためにユーザがいつでも使用できる。
・ザッピング。ザッピングアプリケーション268はProgram−upキー、Program−downキー、及び数値キーを使用してチャネルを変更するために使用される。例えばバナー(パイロット)アプリケーションを通してなど、別の形式のザッピングが使用されるとき、ザッピングアプリケーションは停止される。
・コールバック。コールバックアプリケーションは、受信機/デコーダのメモリに記憶されている多様なパラメータの値を抽出し、これらの値をモデム付きバックチャネル17を介して、あるいは他の手段によって戻すために使用される。
API層252は対話型アプリケーション開発に高水準のユーティリティを与える。それは、この高水準APIを構成する複数のパッケージを含む。該パッケージは対話型アプリケーションを実行するために必要なすべての機能性を提供する。パッケージはアプリケーションによってアクセス可能である。
好適実施形態においては、APIはJava(登録商標)で作成されるアプリケーションに適応されている。さらに、それはHTML、及びMHEG-5などの他のフォーマットを解釈できる。これらのインタプリタに加えて、それは、要件が決定つけるように分離可能且つ拡張可能である他のパッケージ及びサービスモジュールも含む。
仮想機械層254は、言語インタプリタ及び多様なモジュールとシステムから構成される。それは、対話型アプリケーションを受信機/デコーダで受信、実行するために必要なあらゆるものから構成される。
デバイスインタフェース層256は、デバイスマネージャとデバイスを含む。デバイスは外部イベントと物理インタフェースの管理に必要な論理リソースから構成されるソフトウェアモジュールである。デバイス層はドライバとアプリケーション間の通信チャネルを管理し、強化されたエラー例外チェックを提供する。管理されているデバイスのいくつかの例は、カード読取装置、モデム、ネットワーク、PCMCIA(PCメモリカード国際協会)、LEDディスプレイ等である。API層が上からデバイスを制御するため、プログラマがこの層に直接的に処理する必要はない。
システムソフトウェア/ハードウェア層258は、受信機/デコーダのメーカによって提供される。システムのモジュール方式のため、及び(イベントスケジューリング及びメモリ管理などの)OSによって供給されるサービスが仮想機械の一部であるため、さらに高い層は特定のリアルタイムオペレーティングシステム(RTOS)または特定のプロセッサに結び付けられていない。
MPEGシステム
従来のデジタルテレビ放送システムは、離散トランスポートストリームパケットまたはトランスポートパケットの形でデータを送信し、各パケットは所定の長さであり、ヘッダと本体を含む。MPEG規格はこのドメインで現在好まれている規格であり、とりわけこのようなパケットの所定のフォーマットである。
パケットヘッダはパケットに関する一般的な記述データを備えるが、本体は受信機/デコーダで処理されるデータを備える。パケットヘッダは、少なくともパケットを識別するパケットIDつまりPIDを含む。パケットの本体は、アプリケーションデータ、または特に条件付きアクセスシステムデータなどの音声データ、ビデオデータ、または他のデータを含んでよい。
従来、入信データストリームは、各パケットのPIDに従って受信機/デコーダによってフィルタリングされる。音声データまたは画像データなどの即時処理を必要とするデータは、従来パケット化された流線、つまりPESとして従来既知であるものの形で適切なプロセッサに通信される。トランスポートパケットの本体をアセンブルすることにより形成されるこの連続的なデータの流れは、それ自体パケットのシーケンスを備え、各パケットはパケットヘッダ及び本体を備える。
即時処理を必要としない他のデータもトランスポートパケットの本体の中でカプセル化されてよい。リアルタイム出力を作成するためにプロセッサによってただちに処理されるPESデータとは異なり、この種のデータは通常受信機/デコーダプロセッサによって非同期で処理される。このケースでは、データは単一のテーブルまたはそれぞれがヘッダと本体を含む、テーブルの一連のセクションでフォーマットされ、セクションまたはテーブルのヘッダはテーブルIDつまりTIDを含む。
従来のMPEGデータストリームの多様な態様は、ここで本願に引用して援用するWO第98/43431号にも記載される図7A、図7B、及び図7Cに関して説明される。
図7Aを参照すると、既知のように、MPEG−2ビットストリームは、ゼロのパケット識別(「PID」)を有する番組アクセステーブル(「PAT」)310を含む。PATは、多くの番組の番組マップテーブル(「PMT」)312のPIDに対する参照を含む。各PMTは、その番組の音声MPEGテーブル314とビデオMPEGテーブル316のストリームのPIDに対する参照を含む。番組アクセステーブル310であるゼロのPIDを有するパケットは、すべてのMPEGアクセスにエントリポイントを提供する。
アプリケーション及びそれらのデータをダウンロードするために、2つの新しいストリームタイプが定義され、関連するPMTは、アプリケーションテーブル318(またはそれらのセクション)とデータMPEGテーブル320(またはそれらのセクション)のストリームのPIDに対する参照も含む。
図7Bを参照すると、アプリケーション322をダウンロードするために、アプリケーションは、そのいくつかが単一のセクション318によって構成され、その他が複数のセクション318によって構成されてよい、それぞれがMPEGテーブルによって形成されるモジュール324に分割される。典型的なセクション318は、1バイトのテーブル識別(「TID」)328を含むヘッダ326、テーブル内のそのセクションのセクション番号330、そのテーブル内のセクションの総数332、及び2バイトのTID拡張334を有する。各セッションはデータ部336とCFC 338も含む。ある特定のモジュール/テーブル324の場合、そのテーブル324を構成するセクション318のすべてが同じTID328と同じTID拡張334を有する。ある特定のアプリケーション322の場合、そのアプリケーション322を構成するテーブル324のすべては同じTID328であるが、異なるそれぞれのTID拡張を有する。
アプリケーション322ごとに、ディレクトリとして使用され、図7Cにさらに詳細に図示される単一のこのようなMPEGテーブル324がある。ディレクトリテーブル340はヘッダ326、ディレクトリ部342、キー識別344、暗号化されたシグネチャ346、及びCRC 338を含む。前記から、ディレクトリテーブル340が、そのヘッダ326の中にアプリケーションを構成する他のモジュール/テーブル324と同じTID328を有することが理解されるだろう。しかしながら、ディレクトリテーブルは、ゼロという所定のTID拡張334を有し、他のモジュール324のすべては非ゼロTID拡張を有する。ヘッダは、ディレクトリテーブル340のバージョン番号348も含む。ディレクトリ部342は、アプリケーション332を構成する他のモジュール/テーブル324のそれぞれに、そのモジュールの名称350、そのモジュールのTID拡張334、及びそのモジュールのシグネチャ352を含む。ディレクトリ部342は、他のモジュール/テーブル324のそれぞれに、そのモジュールの長さとそのモジュールのバージョン番号も含んでよい。
図7Aを参照し直すと、動作中、PAT 310、PMP 312及びアプリケーションとデータストリーム構成要素318,320が周期的に伝送され、必要に応じて更新される。送信される各アプリケーションは、それぞれの所定のTID 328を有する。アプリケーションをダウンロードするために、適切なTIDとゼロというTID拡張を有するMPEGテーブルは受信機/デコーダ13にダウンロードされる。したがって、これは必要とされるアプリケーションのディレクトリテーブル40である。次に、ディレクトリ内のデータは、必要とされるアプリケーションを構成するモジュールテーブルのTID拡張334を求めるために受信機/デコーダ13によって処理され、それからディレクトリテーブルと同じTID及びディレクトリから求められたTID拡張を有する任意の必要とされるモジュールテーブルをダウンロードできる。
受信機/デコーダ13は、その更新のためにディレクトリテーブルをチェックするように装置される。これは、例えば30秒、または1分または5分ごとなど再び周期的にディレクトリテーブルをダウンロードし、新たにダウンロードされるディレクトリテーブルのバージョン番号を前にダウンロードされたディレクトリテーブルのバージョン番号と比較することによって達成されてよい。新たにダウンロードされたバージョン番号が未定である場合、過去のディレクトリテーブルに関連付けられたモジュール、または後のバージョン番号があるこのようなモデルはマウントされておらず、後のモジュールがダウンロードされ、マウントされる。代替の装置では、入信ビットストリームがTID、TID拡張及びバージョン番号に対応するマスクを使用してフィルタリングされ、値がアプリケーションのTID、ゼロというTID拡張、及び現在ダウンロードされたディレクトリのバージョン番号より1大きなバージョン番号に設定される。したがって、バージョン番号の増分を検出することができ、前述されたように、いったん検出されたディレクトリがダウンロードされ、アプリケーションが更新される。このようなフィルタリングの追加の説明は特許出願WO第98/43415号に記載されている。アプリケーションを終了する場合には、次のバージョン番号が付いた空のディレクトリが送信されるが、ディレクトリにリストされているモジュールはない。このような空のディレクトリの受信に応えて、受信機/デコーダ13はアプリケーションをアンマウントするようにプログラミングされる。
例えばペイテレビシステムにおいてなど、伝送に対するアクセスが制限されなければならないケースでは、条件付きアクセスデータが伝送とともにトランスポートストリームの中で一斉送信されるテーブルまたはセクションに含まれてよい。この条件付きアクセスデータはデコーダによってフィルタリングされ、デコーダに差し込まれているスマートカードなどの携帯セキュリティモジュールに渡される。それから、データは、例えば伝送をデスクランブルするためにデコーダによって後に使用されるコントロールワードを生成するために、スマートカードによって処理される。
1つの問題は、デコーダによって受信、処理されるデータのボリューム、特にセキュリティモジュールに最終的に転送される条件付きアクセスデータのボリュームにある。特に、セキュリティモジュールプロセッサの処理機能及びデコーダとセキュリティモジュール間の通信チャネルの容量は指定される量のメッセージを処理するには不十分である可能性がある。この問題は、番組が、さまざまなオペレータが同じ番組(例えば、サッカーの試合または主題テレビチャネル)にアクセスできるようにする複数の条件付きアクセスメッセージとともに送信される傾向が強まることによって悪化する。したがって、やがて、一斉送信される情報を減らす、あるいは少なくともさらによく管理する方法が調査されるだろう。
プライベートMPEGテーブルセクションは表1に示されている。このフォーマットは、未処理のデータをMPEGセクションに変換するために固有に使用される。セクションの最大数はSection_Syntax_Indicatorに依存している。
表1は、IF/ELSE構文によって表現される変形データ構造として、長いテーブルデータ構造と短いテーブルセクション構造の両方を表している。言い換えると、Section_Syntax_Indicatorが0に等しい場合には、表は短いテーブルデータ構造を有し、それ以外の場合、テーブルは長いテーブルデータ構造を有するだろう。短いテーブルは、単一のセクションだけで構成されているが、長いテーブルは複数のセクションから構成されてよい。
後述される本発明の2つの実施形態においては、構造化された情報が、長いテーブルセクションデータ構造と短いテーブルセクションデータ構造の両方の未処理データ部分を置換し、両方の新しいデータフォーマットを生じさせる。未処理データ部分は、Private_Data_Typeフィールドのループによって表1に表現されており、セクション本体とも呼ばれるだろう。これらの実施形態の構造は、図8に一般的なデータ構造として図示される。
データ構造は従来のMPEGプライベートテーブルセクションヘッダ400を備える。従来のヘッダ400のTable_id_extensionフィールド402は、アプリケーションに特殊なフィルタリング機能を提供するためにいくつかの実施形態で使用される。例えば、それはハードウェアフィルタリングを使用してそのコンテンツの高速検索を可能にするためにテーブルコンテンツの識別子として使用されてよい。従来のCRC情報420が保持される。
標準MPEGプライベートデータセクションの未処理データ部分(つまり本体)は、追加のヘッダフィールド、さらに構造化されたデータ部分を備える追加ヘッダ404によって置換される。追加ヘッダ404の中の追加のヘッダフィールドはテーブルの圧縮と暗号化、優先順位、構文解析フォーマット及びフィルタ拡張フィールドに関する情報を含む。それらは、共通属性リスト408のサイズを指定するフィールドも含む。共通属性リスト408はデータ項目リスト410の中の全データ項目412に共通である属性406を備える。構造化されたデータ部分は、さらにデータ項目412の可変長リスト410を備え、それぞれが汎用データ項目識別子と、そのデータ項目に特定の属性416の可変長リスト414を含む。特定的な属性リスト414の長さはデータ項目412で指定される。項目に特定的な属性リスト414の中の属性は共通属性リスト408の中の同じ共通属性406を無効にしてよい。
この構造により、全データ項目に共通の属性を一度だけ含むことができる。さらにいくつかのデータ項目に共通の属性は共通属性リストに表示されてよく、それらのデータ項目は特定の属性を無効にすることを含む、これらの共通属性にとって異なる値を備えている。これにより、フォーマットされたデータによって必要とされる空間を最小限に保つことができる。
属性は、以下においてMPEG規格用語に基づいて記述子とも呼ばれるだろう。ループコンストラクトが後述される特定のテーブルフォーマット定義のリストを定義する上で形式論として使用されるため、リストは同様にループとも呼ばれるだろう。したがって、属性リスト408と414は、それぞれ記述子ループまたは共通及び特定記述子ループとも呼ばれるだろう。ループ410は識別子ループとも呼ばれるだろう。
特定的な例は、データ構造要素のどれかに特定的な名称を与えてもよい。
記述子は本来表現される属性に応じた任意のデータ構造であってよい。好ましくは、それは記述子の自動的な構文解析を可能にするために記述子タグ及び記述子サイズを含む簡略なヘッダを含むだろう。
構造化されたデータだけではなく追加ヘッダを表1の既存のテーブル構造の未処理データ部分または本体の中でカプセル化することによって、既存の構造との互換性が維持される。これは、既存のMPEGテーブル処理ハードウェア及びソフトウェアとの互換性も提供する。
プライベートテーブルセクションは、通常、情報が前述された構造に従ってフォーマットされる放送センタで生成される。データ構造は、放送センタのメモリでいったんアセンブルされると、それらはMPEGストリームの中に挿入され、受信機/デコーダに一斉送信される。それから、受信機/デコーダはMPEGストリームから情報を検索し、後述されるようにそれらを追加処理のために構文解析ツールに渡す前にそのメモリ内でデータ構造を作り直してよい。
長いプライベートテーブルセクションの特定の例は、以下の表2および表3(なお、表2および表3は一続きのものである。)によって示される。このようなテーブルは最高256のセクションから構成されてよい。表はフィールド名、ビット単位のフィールドサイズ、バイナリデータフォーマット及びデフォルト値を示す。バイナリデータフォーマットは、MPEG規格で定義されるニーモニックを使用して示される。
セクションの最大数:256
各セクションの最大サイズ:4098
last_section_numberとCRC_32の間であるが、それらを除くフィールドが、表1の既存のテーブルフォーマットの未処理のフォーマットされていないデータ構造を置換する。新しいフィールドが、予約されているフィールドという例外とともにここで説明される。
Private_Filter_extension:ハードウェアフィルタの使用を最適化するために、この16ビットのフィールドは、例えばMLOAD_table呼び出し、MLOAD_group呼び出し、及びMLOAD_section呼び出しを用いてハードウェアフィルタリングが実行されるヘッダの部分に追加基準を含むことによってプライベートフィルタリングを拡張するために使用されてよい。
Data_Parsing_Format:この8ビットフィールドは、テーブルの中の以下のデータのデータ構文解析フォーマットを示す。これは、以下のデータが将来のバージョンで変更される場合に自動構文解析を補助する。このフィールドは、256を超える構文解析フォーマットが必要とされる場合に、256を法としてテーブルフォーマットバージョン番号に同等であるとして解釈できる。その場合、構文解析フォーマットを指定する目的で追加のヘッダフィールドが新しいテーブルフォーマットで導入されてよい。
Data_Cyphered_flag:このフラグは、データ部分または本文中のデータ、すなわち追加ヘッダとCRC_32フィールドの間であるがそれらを含まないデータが暗号化されているかどうかを示す。データが暗号化されている場合には、暗号アルゴリズムの選択がData_Cyphering_Algorithmフィールドを用いて行われる。
Data_Compressed_flag:このフラグは、データ部分または本文中のデータ、すなわち追加ヘッダとCRC_32フィールドの間であるがそれらを含まないデータが圧縮されているかどうかを示す。データが圧縮されている場合には、圧縮アルゴリズムの選択がData_Compressing_Algorithmフィールドを用いて行われる。
Data_Cyphered_FlagとData_Compressed_Flagの両方ともセットされている場合には、暗号化はデータの圧縮後に実行される。受信側では、受信機/デコーダ13が解凍の前に解読する。
Data_Cyphering_Algorithm:この2ビットフィールドは、4つの異なるアルゴリズムの1つをセクション本体のデータの暗号化/解読で使用するために指定できるようにする。
Data_Compressing_Algorithm:この2ビットフィールドは、4つの異なるアルゴリズムの1つをセクション本体のデータの圧縮に指定できるようにする。
Priority:優先順位レベルをプライベートデータと関連付けることができるようにするこの2ビットフィールドで4つの優先順位レベルの1つが指定されてよい。値0は最高の優先順位レベルを表し、3が最低の優先順位レベルを表す。
Common_Descriptor_info_lenght:これは、(要素の数も長さを指定するために使用できるが)バイト単位のサイズとして以下の共通記述子リストの長さを指定する。
記述子リスト:これは記述子要素のリストである。記述子要素は変化する内部構造であってよく、データ要素属性を表す。リストはループ構成によって表2に表示されている。
付加的な識別子リスト:このリストはループ構成によって表2および表3に表されている。このリストはゼロまたは複数の付加的な識別子を含んでよく、それぞれが記述子リストを備える。付加的な識別子の各要素は以下のフィールドを備える。
Extra_Identifier_Length:この8ビットフィールドは、可変長Extra_identifierフィールドに使用されるバイトの数(N)を指定する。
Extra_identifier:この8*Nビットフィールドは、続く付加的な識別子記述子ループを記述する識別子または識別子のグループを指定する。
付加的な識別子記述子ループ:これは記述子要素のリストである。記述子要素は変化する内部構造であってよく、データ要素属性を表す。このリストはループ構成によって表2および表3に表されている。
前記表1では、フィールドprivate_section_lengthが、次のフィールドからセクションの最後までのプライベートセクションの残りの部分のサイズを指定している。同じ機能は表2のSection_lengthフィールドによって実行される。表2および表3においては、(記述子の数も使用できるだろうが、バイト単位のサイズとしての)2つの記述子ループの長さが、さらにフィールドCommon_Descriptor_info_length(デフォルト値N1)とExtra_Identifier_descriptor_length(デフォルト値N3)によって指定される。
短いプライベートテーブルの形を取る実施形態が以下の表4および表5(なお、表4および表5は一続きのものである。)に示されている。短いプライベートテーブルは、ただ1つのセクションだけから構成される。
最大セクション数: 1
各セクションの最大サイズ: 4096
Section_lengthとCRC_32の間であるがそれらを含まないフィールドは、既存のテーブルフォーマットの未処理のフォーマットされていないデータ部分―本体―を置換する。新しいフィールドが、予約フィールドの例外及び表2および表3に関して前述されたフィールドとともにここで説明される。
Private_Filter_Extension:ハードウェアフィルタの使用を最適化するために、この56ビットのフィールドは、ハードウェアフィルタリングがMLOAD_table呼び出し、MLOAD_group呼び出しまたはMLOAD_section呼び出しを用いて実行されるヘッダの部分に追加の基準を含めることによってプライベートフィルタリングを拡張するために使用されてよい。このフィルタ拡張フィールドは、短長(short long)フォーマット(表2および表3を参照のこと)の同等なフィールドより長い。これは、両方のフォーマットのヘッダを等しいサイズにし、テーブルの構文解析をさらに容易にするためである。
Priority:4つの優先順位レベルの1つがこの2ビットフィールドに指定されてよく、優先順位レベルをプライベートデータに関連付けることができるようにする。値0は最高の優先順位レベルを表し、値3が最低の優先順位レベルを表す。
Common_Descriptor_info_length:(長さを指定するためには、要素数も使用できるだろうが)これはバイト単位でのサイズとして以下の共通記述子リストの長さを指定する。
記述子リスト:これは記述子要素のリストである。記述子要素は変化する内部構造であってよく、データ要素属性を表す。リストは、ループ構成によって表4および表5に表されている。
付加的な識別子リスト:このリストは、ループ構成によって表4および表5に表されている。このリストはゼロまたは複数の付加的な識別子を含んでよく、それぞれに記述子リストがある。付加的な識別子の各要素は以下のフィールドを備える。
Extra_Identifier_Length:これは、可変長Extra_Identifierフィールドのために使用されるバイト数を指定する。
Extra_Identifier:これは以下の記述子ループを記述する記述子または記述子のグループを指定する。
付加的な識別子記述子ループ:これは記述子要素のリストである。記述子要素は変化する内部構造であってよく、データ要素を表す。このリストは、ループ構成によって表4および表5に表現される。
長いセクションフォーマットと短いセクションフォーマット両方の前記例は、圧縮と暗号化に関する追加のヘッダフィールドを提供する。これらは、フォーマットされたデータ部分及び追加ヘッダ情報の部分を暗号化する能力と圧縮する能力の両方を提供する。セクション本体の圧縮と暗号化の記述は以下に示される。また、Pirorityフィールドは、プライベートテーブルセクションに含まれる情報の優先順位付与を可能にするために提供される。
記述されたプライベートテーブルフォーマットは、例えばセットトップボックスに命令を渡すために、ビデオオンデマンドアプリケーションにおいて、あるいは条件付きアクセスシステムにおいてなど多くのさまざまなアプリケーションで使用されてよい。これらの例のいくつかがさらに詳しく後述される。
構文解析ツール
前述された一般的なテーブル構造を解釈するために、構文解析ツールはセットトップボックスのオペレーティングソフトウェアの一部として提供される。定義されたデータ構造が与えられたこのような構文解析ツールの構築は、当業者によって容易に実施できる。したがって、ここではいくつかの基本的な要件だけが概略される。
構文解析ツールの役割は図9に示されている。構文解析ツールを備える構文解析ツール層506は、アプリケーション層508とMPEGテーブル受信フィルタリング層504の間に、データストリーム502を介して放送システム500によって送信される情報を抽出する抽象化の層を設ける。
この抽象化の効果とは、さまざまなアプリケーションが、それらが処理するさまざまな種類のデータの多数の異なったテーブルフォーマットに特に適応する必要がないという点である。構文解析ツールは受信されたテーブルセクションを処理し、関連する情報を抽出し、それをアプリケーション層のアプリケーションに渡す。
前述された一般的なテーブルフォーマットは、さまざまなタイプのデータを同じテーブル構造の中で編成できるようにする。共通の、及び特定の属性記述子の集合体としてテーブルセクションに記憶される個々のデータ項目は、アプリケーションによって必要とされる情報を含む。記述子フォーマットは変化してよい。例えば、情報のタイプ及びサイズ属性を指定するタグを備える前記の例の簡略なヘッダは、構文解析ツールが情報を正確に抽出し、それをアプリケーションに渡すことができるようにするために設けられている。
さらに、記述子リストのサイズは、構文解析ツールがそれらを正確に抽出できるようにするためにCommon_Descriptor_info_lengthフィールドとExtra_Identifier_descriptor_lengthフィールドの形で提供される。構文解析ツールはそれ自体を個々のデータ項目の意味または機能と関係させる必要はない。つまり、それは単にデータをアプリケーションに渡すだけである。したがって、構文解析ツールはそれが受信する可能性のある情報のさまざまなタイプを認識する必要はない。情報の解釈はアプリケーションによって実行される。構文解析ツールはヘッダに含まれる伝送関連の情報を単に剥ぎ取り(STRIPS)、テーブルの実際のデータコンテンツを適切で一般的な形式のアプリケーションに渡すにすぎない。
このようにして、構文解析ツールはさまざまなタイプの可変長のテーブルを処理できる。構文解析ツールの設計は、さまざまなアプリケーションによって使用されるさまざまのタイプの情報によってではなく、汎用テーブルの設計によってのみ決定される。
追加のテーブルセクションフォーマットを可能にするために、カレントフォーマットは構文解析フォーマットフィールド(Data_Parsing_Format)を提供する。このフィールドの前のヘッダセクションは、それがプライベートテーブルセクションのフォーマットを決定し、このようにしてそれを構文解析するための適切な戦略を選ぶために使用するフィールドを、構文解析ツールが正しく識別できるようにすべてのテーブルフォーマットにおいて一定のサイズのままとなる。
プライベートテーブルの圧縮及び暗号化
前述されたテーブルフォーマットは、圧縮済みの、及びまたは暗号化済みのプライベートテーブルにも備える。プライベートテーブルの圧縮は、テーブルが、ビデオオンデマンドアプリケーションでの番組カタログなどの大量の情報をトランスポートするために使用されるときに有効である可能性がある。デジタル放送システムは多くの場合高価であるため、必要とされる帯域幅の削減は利益になる場合がある。テーブルに記憶されている情報が、条件付きアクセス情報など機密の性質である場合にはテーブルの暗号化が有効となる可能性がある。
プライベートテーブルの圧縮をここで説明する。
前記に(表2および表3を参照すること)定義された追加ヘッダは2つの圧縮関連フィールドを含む。Data_Compressed_Flagフラグは、プライベートテーブルセクションの中のデータが圧縮されているかどうかを示すために使用される。さらに、追加ヘッダの中のData_Compressing_Algorighmフィールドは、圧縮のために使用されるアルゴリズムを指定できるようにする。したがって、システムは同時に多くのさまざまな圧縮アルゴリズムを使用できる。表2および表3に記述される実施形態では、これは2ビットのフィールドである。従って4つのアルゴリズムが指定されてよい。
後述される好適実施形態では、前記に指定されるフィールドを含む追加ヘッダだけではなく標準ヘッダ及びフッタも圧縮されておらず、その結果圧縮されたテーブルは標準MPEGハードウェア及びソフトウェアを使用して処理、送信されてよく、その結果受信機はテーブルが圧縮されているかどうか、あるいはそれを圧縮するためにどのアルゴリズムが使用されたのかを判断できる。MPEGプライベートテーブルの本体(つまりデータ部分)だけが圧縮される。他の例では、追加ヘッダ内のいくつかのフィールドを含む、追加ヘッダの圧縮関連フィールドとフッタの間(であるがそれらを除く)のすべてが圧縮される。
いくつかの実施形態では、セクション本体は単に個別に圧縮されるにすぎない。その場合、全体としてのテーブルは圧縮後のセクションと同じ数を保持する。
しかしながら、好適実施形態では、すべてのテーブルセクションのセクション本体は、テーブルセクションから抽出され、1つの大きなデータブロックを形成するためにアセンブルされる。元のテーブルセクションを解凍後に作り直すことができるようにするために、ブロックの中の各本体の前にはその長さを指定する指定子が先行する。
次に、それらのそれぞれの長さとともにすべてのセクションを備えるこの即時データブロックが、新しい圧縮されたデータブロックを与えるために圧縮される。したがって、新しいプライベートMPEGテーブルはこのブロックから、それを多くのセグメントに分けることによって作成され、そのそれぞれは新しいテーブルのセクションの本体に置かれる。これらのフラグとセッション番号とサイズに関するフィールドとは別に、MPEG標準ヘッダ及び追加ヘッダは、それ以外の場合もとのテーブルの中で同じままとなる。したがって、圧縮されたテーブルは元の未圧縮テーブルと同じように処理できる。
送信されるデータの量が圧縮により削減されたため、圧縮済みのテーブルは通常(達成された圧縮率に応じて)もトンテーブルより少ないセクションを含むだろう。
この圧縮済みのプライベートテーブルは次に通常のチャネルを介して送信される。受信時、Data_Compressed_Flagがテーブルが圧縮されていることを示すがData_Compressing_Algorighmは圧縮に使用されたアルゴリズムを示し、このようにして受信機/デコーダに解凍にどのアルゴリズムを使用する必要があるのかを示す。
受信機/デコーダは圧縮済みのテーブルセクションのそれぞれから本体を抽出し、それをアセンブルし直し、元の圧縮済みのデータブロックを形成する。これは解凍されてから、長さ指定子を用いてその構成のセクション本体に逆アセンブルされる。これらの解凍された本体は、次に元のプライベートテーブルセクション、したがって元のプライベートテーブルを作り直すために使用される。
各セクション本体を個々に圧縮するのではなく、すべてのセクション本体から構築されるデータの大きなブロックを圧縮する優位点とは、さらに高い圧縮率を達成できるという点である。また、送信されるセクション数も削減できる。したがって、圧縮済みのプライベートテーブルの伝送に必要とされる帯域幅と計算オーバヘッドも削減される。
圧縮及び解凍は、ここで図11Aと図11Bに関してさらに詳細に説明される。
まず図11Aを参照すると、プライベートMPEGテーブル700はN個のプライベートテーブルセクション702から704を備えている。各テーブルセクションは標準MPEGプライベートテーブルセクションヘッダA、追加ヘッダB、本体C1からCN、及びフッタDを備える。いくつかの実施形態では、他の特定的な構造が考えられるが、テーブルセクション構造は表2および表3または表4および表5に前記に定義されるとおりである。他の例では、追加のヘッダが、表2および表3と表4および表5に指定されるフィールドに加えて、または代わりに他のフィールドを含むか、あるいはこのようなフィールドを省略する。また、長いテーブルフォーマットの実施形態にでは、フッタはCRCチェックサムを提供する。短いテーブルフォーマットの実施形態では、フッタは省略される。
テーブル700を圧縮するために、セクション本体C1からCNがテーブルセクション1〜Nから抽出される。各本体の長さが求められ、データブロック706が本体をアセンブルし、各本体をその本体の長さを指定するサイズ指定子で選考することによって作成される。次にデータブロックは、セクションC1からCNを備え、それぞれがそれらのそれぞれのサイズ指定子C1 LengthからCN Lengthによって先行される。サイズ指定子を包含することにより、解凍後にセクション本体を正しく抽出できる。(それぞれ表2および表3と表4および表5に前述されたような)長いテーブルフォーマットと短いテーブルフォーマットの両方におけるセクション長フィールドは12ビットフィールドであるので、この例では2バイト長の指定子で十分である。各2バイト長指定子の4つの未使用ビットが1に設定される。
それからデータブロック706は、任意の適切な圧縮アルゴリズムを使用して圧縮される。この結果圧縮済みのブロック708が生じる。
次に解凍済みのMPEGプライベートテーブル710が、以下のようにして圧縮済みのデータブロック708から作成される。圧縮済みのブロック708は多くのセグメントC’1からC’Pに分けられる。それから、各セグメントはセクション本体としてテーブル710のセクションに置かれる。圧縮済みのテーブル710は次に圧縮済みのデータブロック708のセグメントC’1からC’pを含むP個のテーブルセクション712から714を備える。
圧縮済みのテーブル710は、それから送信または記憶されてよい。圧縮されたテーブルは、前述したように、MPEG標準プライベートテーブルとだけではなく、一般的なプライベートテーブルフォーマットと互換性があるため、同じように処理することができる。
圧縮済みのテーブルに記憶されるデータの量は圧縮を通して削減されているため、圧縮済みのテーブル710は、通常(ではあるが、必ずではない)元の圧縮されていないテーブル700より少ないセクションを有するだろう。それから、圧縮済みのデータは好ましくは均等に再配分される。したがって、テーブルの伝送は、送信されるデータの総量を削減することによってだけではなく、送信されるテーブルセクションの数を削減することによってもさらに効率化される。また、個別にではなくすべてのセクション本体をともに圧縮することにより、さらに高い圧縮率を達成できる。
ここで図11Bを参照すると、圧縮済みのMPEGプライベートテーブル710は次のように解凍される。セクション本体C’1からC’pは、次に適切な解凍アルゴリズムを使用して解凍される圧縮済みのデータブロック716を提供するために抽出され、アセンブルされる。この結果、そのそれぞれのサイズ指定子とともに、元のセクション本体C1からCnを備える元の圧縮されていないデータブロック718が生じる。サイズ指定子を使用して、データブロック718は、次にその元の構成要素、つまりセクション本体C1からCnに分けられ、テーブルセクション722から724を有する元の圧縮されていないプライベートMPEGテーブル720がこれらのセクション本体から再構築される。
テーブルの圧縮について前述されたのと同じ手順が、プライベートテーブルを暗号化するために使用される。この目的のため、追加のヘッダは2つのフィールドData_Cyphered_FlagとData_Cyphering_Algorighmを提供する。これらは同様の名前の圧縮関連フィールドに類似している。最初は、テーブルが暗号化されているかどうかを示すフラグであるが、2つ目は使用されている暗号化アルゴリズム、及び復号化に必要とされる復号化アルゴリズムを指定するためにオプションで使用されてよい(他の例では、このフィールドは複数の暗号化鍵の内の1つを指定するためにも使用でき、それらの鍵は前に受信機に伝達されていた)例えば、DESまたはRSAなどの任意の適当な暗号化アルゴリズムが使用されてよい。圧縮の場合と同様に、いくつかの実施形態では、暗号化はテーブルセクションで個別に実行されるが、ここで説明した好適実施形態では、サイズ指定子とともにすべてのテーブルセクション本体を備えるデータブロック上で実行される。この後者の技法は、テーブル構造が保持されていないためにセキュリティの強化を実現できる。したがって、テーブルを暗号化するための手順は前述した圧縮方法に類似している。事実上、技法は任意の演算または変換で使用されてよい。圧縮及び暗号化の形を取る変換は、例としてここに説明された。
さらに、テーブルは暗号化され、圧縮された。このケースでは、図11Aに図示されるデータブロック706が最初に圧縮されてから、暗号化される。受信機では、圧縮済み、暗号化済みのテーブルが最初に復号化されてから、解凍される(別の例では、テーブルは最初に暗号化されてから圧縮され、受信機で暗号化済み、圧縮済みのテーブルは最初に解凍されてから復号化される)。
受信機/デコーダでは、解凍及び復号化は構文解析ツールモジュールによって第1段階として実行される。代替実施形態においては、それらは別々に、テーブルが構文解析ツールに渡される前に実行される。解凍と復号化の結果、送信された圧縮済みの、及び/または暗号化済みのプライベートテーブルから第2のプライベートテーブルが作成されるため、圧縮済みの/暗号化済みのテーブルが必要とされなくなるので、送信されたテーブルによって占有されるメモリは、いったん解凍/復号化されたテーブルが作成されるとリリースされる。受信機/デコーダは、テーブル構造及びテーブルセクションに対するポインタに関する情報を備えるテーブルが受信されるとテーブル記述子を作成する。テーブル記述子は、メモリから圧縮済みの/暗号化済みのテーブルを削除するために使用される。それから、新しいテーブル記述子が、例えば解凍済みの/復号化済みのテーブルにアクセスできるようにするために別のソフトウェアモジュールに渡されてよい解凍済みの/復号化済みのテーブルについて、該ソフトウェアモジュールが作成される。
解凍/復号化モジュールは、Data_Compressed_FlagとData_Cyphered_Flagを検査することによって、テーブルが圧縮されている、及び/または暗号化されているかどうかを検出する。これらのどちらかがセットされている場合、適切な解凍及び/または復号化アルゴリズムがData_Compressing_AlgorighmフィールドとData_Cyphering_Algorighmフィールドの値に基づいて選択される。それから、圧縮及び/または復号化は、追加の構文解析が発生する前に実行される。
したがって、テーブルの圧縮と暗号化はアプリケーションにとって、及び完全にではない場合も大体において構文解析ツールにとってトランスペアレントである。MPEG標準ヘッダは圧縮済みの及び/または暗号化済みのテーブルで未変更のままであり、したがって標準MPEGプライベートテーブルセクション構造が保持されているので、圧縮/暗号化は、MPEGテーブルの送信、受信、及びフィルタリングに関わるさらに低いレベルのMPEGに準拠するモジュールにもトランスペアレントである。受信機/デコーダでは、例えばテーブルIDフィールドとテーブルID抽出フィールドでフィルタリングすることによってなど、圧縮済みの及び/または暗号化済みのテーブルは標準フィルタリング方法を使用して、入信ストリームから検索される。したがて、MPEGストリームの中の圧縮済みの/暗号化済みの情報へのアクセスの容易さは維持される。
圧縮/暗号化技法はここでは、表2および表3と表4および表5に前述され、例証された一般的なMPEGプライベートテーブル構造に関連して説明されてきた。しかしながら、それは、同じ技法を使用して圧縮、暗号化されてよい標準MPEGプライベートテーブルにも適用可能である。いくつかのこのような例では、説明された属性のようなフラグ属性は、プライベートテーブルセクション本体の開始時に追加されるだけである。他の例では、送信者と受信者の間にプライベートテーブルセクション本体の圧縮済みの状態または暗号化済みの状態に関して過去の合意が存在する場合にはこのようなフラグは必要とされない。技法はMPEGプライベートテーブルではない他の類似したデータにも適用可能である。
アプリケーションの例
前述された実施形態は、数多くのさまざまなアプリケーションで使用されてよい。このようなアプリケーションのいくつかの例をここに示す。
第1の例は、セットトップボックスによって実施されるアクションをセットトップボックスに知らせる手段を提供する。
アプリケーションの例:アクション通知テーブル
アクション通知テーブル(ANT)は、前述した汎用テーブル構造に基づいている。それはセットトップボックスまたはセットトップボックスのグループにある特定のアクションを実施するように命令するために使用されてよい。
受信機/デコーダによって実施されるアクションの例は、ソフトウェアのダウンロード、自動チャネル走査、受信機/デコーダのリブート、(ビデオオンデマンドカタログなどの)番組のカタログのリフレッシュ、及びセットトップボックスのユーザに対するメッセージの表示(視聴者メッセージング)を含む。テーブルID拡張フィールドは必要とされるアクションを識別するためにANTで使用される。
ANTは(例えば、ある特定のメーカの)ある特定の種類のセットトップボックス、あるいはターゲット記述子によって個別のセットトップボックスも目標にしてよい。これらは、例えば、ANTテーブルの共通記述子ループに入れられてよい。共通記述子ループの中のターゲット記述子を処理することにより、セットトップボックスは、アクションがそのセットトップボックスによって実施される必要があるかどうかを決定してよい。このターゲット及びアクション情報の処理は、例えば、セットトップボックスで実行中のアプリケーションプログラミングによって実施されてよい。
ANTは、任意のタイプのアクションと選択基準をサポートするために記述子とループのリストを記載するテーブルである。新しい記述子を作成することに対する制限はない。したがって、このアプローチは任意の新しい進化にとって開かれている。下記のセクションでは、基本的なダウンロード目的に必要とされるいくつかの基本的な記述子だけではなくANTテーブルの基本的な構造も説明されている。
マルチセクションテーブルに対処する追加ヘッダフィールドのある長いテーブルと、単一セクションテーブルを可能にする短いバージョンの2つのテーブルフォーマットが使用できる。これらは前述されたように本発明の実施形態に従う。長いテーブルフォーマットは、以下に表6および表7(なお、表6および表7は一続きのものである。)に示されている。
Action_Identifier:テーブル識別子拡張フィールド(Tid_ext)は、ここで別の目的に、つまりアクションを識別するために使用される。アクション及びその符号化の例は、以下の表8に示されている。
Filter_Extension:このフィールドの意味はAction_Identifierフィールドの値に依存する。考えられる値と意味の例は、以下の表9に示される。
短いテーブルフォーマットアクション通知テーブルが、前述した短いテーブルフォーマットに基づいて同様に構築されてよい。
基本的な記述子のいくつかの例は、表10から表17に関して後述される。
Code_Download_descriptor
使用可能なコードローダごとに1つの記述子が提供される。
記述子はANTテーブルの内側の項目ループに置かれ、コードダウンロードスケジューリングを定義する。
フィールドの説明
Download_Flag
Type:このフィールドは、ダウンロードプロセス開始時のSTBの動作を定義する。
予定されたアクションにより、STBは、この演算が成功するまで自動ソフトウェアダウンロードを(例えば、1ヶ月の間午前3時に一日に一度など)周期的にプログラムすることができる。
Periodicity:このフィールドは、ダウンロードプロセスが予定されたアクションについて開始したときのSTB動作を定義します。この周期性は、予定されたアクションについてUTC_date_time_startとUTC_date_time_estimated_stopの間で使用できるだけである。
UTC_date_time_start:このフィールドは、STBの強制リブートが発生する予定される日付と時刻を示す。それは、TDTテーブルとTOTテーブルの中でDVBによって指定されるのと同じフォーマットでUTCで符号化される。
UTC_date_time_estimated_stop:このフィールドは、コードダウンロードの可用性の日付けを示す。
ANT拡張
ANTは、他のタイプのイベント通知のために使用できる。制限はない。つまり以下の例は、この解決策を別の目的でどのように使用するのかを説明する。
Scanning_Descriptor
この記述子を使用して、セットトップボックスは走査を実施するように命令されてよい。これは、例えば使用可能なチャネルに関する情報を含むサービスマップを獲得することを含む。走査はただちに、あるいは予定に基づいて必要とされる可能性がある。
フィールドの説明
Service_map_version_number:このフィールドは使用されるサービスマップのバージョン番号を識別する。
Original_network_id, Transport_stream_id:これらのDVB値は、走査情報が放送されるトランスポートストリームを識別する。
Scanning_Flag:
Type:このフィールドは、走査プロセス開始時のSTBの動作を定義する。
予定されたアクションにより、この動作が成功するまで自動走査を周期的に(例えば、1月の間一日に一度午前3時に)プログラムすることが可能になる。
Periodicity:このフィールドは、予定されたアクションについて走査プロセスが開始したときのSTBの動作を定義する。この周期性は、予定されているアクションについてUTC_date_time_startとUTC_date_time_estimated_stopの間だけで使用できる。
UTC_date_time_start:このフィールドは、STBの強制リブートが発生するときの予定された日付けと時刻を示す。それはTDTテーブルとTOTテーブルの中のDVBによって指定されるのと同じフォーマットでUTCで符号化される。
UTC_date_time_estimated_stop:このフィールドは、走査サービスマップ情報の可用性の日付を示す。
アクション通知テーブル(ANT)は、例えば、情報をダウンロードするようにセットトップボックスに命令するために使用されてよい。
データのダウンロードには、シグナリング機構、ダウンロード機構、及びブートストラップ機構の3つの機構が必要となる。以下の説明では、シグナリング機構はNIT(ネットワーク情報テーブル)またはBATからPMT内のリンケージ記述子の使用に基づいている。(図7aで前記に紹介された)PMTはデータダウンロードに必要なすべての情報を記載し、ダウンロードストリームの場所を識別するテーブルである。
ダウンロードプロセスは、どの事業者、ネットワーク及びセットトップボックス(STB)メーカが使用されるのかに応じて多岐に渡るさまざまなタイプの情報を必要とする可能性がある。したがって、非常にオープン且つ柔軟なテーブルの概念が必要とされる。
プラットホームは、OUI識別子によって第1のレベルで識別される。OUI識別子は、特定のSTBメーカを示す。第2のレベルでは、シリアルナンバー、マックアドレス、CAS_IDにリンクされるスマートカード番号等の「多様なパラメータを使用するために、正確な目標設定は未決のままとされる。追加のハードウェアまたはソフトウェアのバージョン及びサブバージョンが許される。後述される解決策により、フィルタリングに任意のタイプの弁別記述子を使用できる。
図10に図示されるように、ダウンロードサービスのシグナリングはNIT内またはBAT 602からPMT 606へのリンケージ記述子に基づいている。NITのserver_list_descriptorだけではなくSDT(サービス記述テーブル)のservice_descriptorでも、サービスタイプ「DOWNLOAD」がこの特定のサービスを宣言するために(ダウンロードサービスが画面上でプログラムとして表示されるのを回避する目的で)定義される。
PMT 606はストリーム型「NOTIFICATION」を定義することによりANT(アクション通知テーブル)608を参照する。複数のANTテーブルをサポートすることができるため、OUIセレクタは、ANTテーブル608の第1の選択を使用できるようにするためにPMT 606で使用される。受信機/デコーダ13が正しいOUIと対応するANTを発見すると、それはANT 608の中で記述子が別の選択基準に適合するかをチェックし、データカルーセルのエントリポイントを獲得する。
PMT 606は、ANT 608がサービスまたは任意の他の通知記述子を記載しているかどうかを即時に表示できるためにAITテーブルに類似した選択記述子を記載する。
OUIに対するフィルタリングはこのレベルで実行される。OUIの予約される値は、任意のメーカSTBを選択できるように定義される。
OUIデータ構造は、以下の表16に示される。
Action_Identifierフィールドは、ANTのアクションコード値、つまりANTのTID_Extに等しい。
すべてのテーブルはバージョン番号を含むため、PMTバージョン番号変更をフィルタリングすることにより、ANTバージョン番号が変化したかどうか、及び各ANTを別々にチェックしなくてもどのバージョン番号かが分かる。
NITまたはBATリンケージ記述子は表17に示される構造を有する。
このリンケージ記述子は、PMTが1つまたは複数のANT構成要素を参照するダウンロードサービスを指す。
第1のステップでは、目標は、使用可能な通知のすべての記述を搬送するサービスに達することである。第2のステップでは、このサービスのPMTの分析が実行される。各通知テーブルは必要とされるSTBだけに影響を及ぼすために特定のセレクタを含む特定のアクションについて作成される。したがって、OUIフィルタリングを可能とするために、各ANT PIDの元のAction_Notification_List_Descriptorの存在は必須である。ANT PIDは同じOUIプロバイダからさまざまなアクション通知に対応する複数のANT sub_TABLEを搬送できる。各ANTはSONOTID_Extensionフィールドとは異なる。「ダウンロード」が考えられるアクションとして記述され、OUIコードが受信機と一致する場合には、ANTはSTBによってダウンロードされる。いったんロードされると、ANTの分析はさらに正確に時間内に使用できる一致するダウンロードを記述するのに役立つ。プログラミング時にストリーム内に存在するダウンロードコードを使用しない将来のダウンロードの参照及びプログラミングが実現可能となるように、スケジューリングが可能である。
異なる使用可能な記述されたコードの中でダウンロード記述とSTB特性の間に一致が発見されると、STBは、association_tag 610によって記述されるダウンロードコードentry_pointにジャンプできるか、あるいは別のサービス場合にはdeffered_association_tag 612によって、あるいはコードが使用できない場合には、開始時間とロケーションはSTBによって記憶されなければならない。その後、記憶されているentry_point(ON_ID、TS_ID、SV_ID及びassociation_tag)によって指されるデータを分析、使用するのはSTBプロバイダの責任である。ダウンロードされたデータのフォーマットは、プロバイダが望む任意のフォーマットである場合がある。
それにもかかわらず、データは以下のように命令されるものとする。
・第1のフィルタリングによっても、STB特性とダウンロードコードのチェックはダウンロードを実行するために行われなければ成らない→コードの明確なアイデンティティが定義されなければならない。
・複数のダウンロードコードを搬送するための同じデータPID内の機能――例えばハードウェアバージョンごとに1つ――は現在のデータの全体的な集合の中のバージョンごとに区別する方法を意味する(data_carouselでのモジュールの選択)。
ANTと関連する機構は、新しいローダバージョンが発見できる、つまり新しくダウンロード可能なバージョントランスポートストリームまたは別のトランスポートストリーム内の場所を1つまたは複数のセットトップボックスに示す従来のシグナリング方法の拡張を提供する。
前述されたテーブル構造は、特に予定されたダウンロードのケースで有効である。
アプリケーションの例:ターッゲットされたテーブル
ANTテーブルについて前述されたように、テーブルの目標設定は、ターゲット記述子を記述子ループの含むことによって可能である。第1のTarget_RSM_Descriptorは、特定のスマートカードを目標とするために使用される。第2のTarget_Platform_Descriptorは、特定的なハードウェア及び/またはソフトウェアプラットホームを目標にするために使用される。
Target_RSM_Descriptor
以下の表18に記述されるこの記述子は、スマートカード識別子のリストについて動作を実施できるようになり、ANTテーブルの共通記述子ループに置かれる。複数の連続記述子が表中に表示されてよい。
フィールドの記述
Number_of_tester:この数は、ダウンロードによって影響されるRSMの数を識別する。
RSM_Serial−Number:Qui Etes Vous(メディアガードスマートカードに使用可能)
QEV:Qui Etes Vous(メディアガードスマートカードに使用可能)
Target_Platform_Descriptor
以下の表19に記述される記述子は、プラットホーム識別子のリストについてアクションを実行できるようにする。それは、ANTテーブルの共通記述子ループに置かれる。複数の連続記述子は、プラットホームあたり1つ、表の中に表示されてよい。
フィールドの記述
Hardware_version_number:この数は1つのメーカの中のハードウェアプラットホームを特定する。
Number_of_versions_concerned:この数はダウンロードによって影響を受けるソフトウェアプラットホームの数を識別する。
Global_soft_id:このフィールドは、コードダウンロードによって影響を受けるSTBのソフトウェアバージョンを、ハードウェアプラットホームごとに識別する。
Target_RSM_Descriptor(表18)とTarget_Platform_Descriptor(表19)は、特定のスマートカード及び/またはプラットホームにテーブルとテーブルセクションを向けるために使用される。したがって、それらは前述されたアクション通知テーブル、及び後述されるビデオオンデマンドアプリケーション以外のアプリケーションで使用されてよい。この目標設定機能は、アプリケーション及び関連情報をテストデバイスの定義された集合に向けることによって新しいアプライケーションを試験するのに特に有効である場合がある。後述のビデオオンデマンドアプリケーションでは、目標設定は、例えば異なる言語または異なる価格を異なるカスタマに提供するために使用されてもよい。複数の言語を提供するために目標設定記述子を使用することによって、番組の音声成分だけが複製される必要があるため、伝送帯域幅は節約されてよい。ピクチャ構成要素は言語に関係なく同じままである。目標設定記述子は、本来、通常のテーブルフィルタリング方法への拡張を提供する。
目標設定記述子は共通の、及び特定の記述子のループの両方に置かれてよい。第1の共通記述子ループを使用すると、すべての考えられるフィルタに適用可能な共通フィルタリングパラメータを指定する第1レベルのフィルタが提供される。このテーブルについての他の共通情報は、この共通記述子ループに含まれてよい。
識別子ループは、OR条件として解釈できるが、内側の特定の記述子ループはAND条件を提出する。例えば、それぞれが2つのリンクされた状態を有する3つのフィルタが宣言される場合、識別子ループはそれぞれ2つの記述子を含む3つの項目を含むだろう。
アプリケーションの例:ビデオオンデマンドアプリケーション
第2のアプリケーションの例では、長いテーブルセクションフォーマットと短いテーブルセクションフォーマットが、ビデオオンデマンド提供品に関する情報を受信機/デコーダに送信するために使用される。
ビデオオンデマンド(VoD)アプリケーションの関連では、アセットカタログ(アセットとは、例えば映画などのある特定のVOD提供品である)はメタデータから構成されている。このメタデータはコンテンツプロバイダから(XMLフォーマットで)供給され、MPEGプライベートセクションの中に入れられる。STBに送信されるそれらのセクションがカルーセルモードで一斉送信される。
VODシステムを通して提供される多数のアセットがある可能性がある。したがって、例えば数万または数十万などの多数のアセットに使用できるデータフォーマットが提供されなければならない。
各アセットのサイズを考慮すると、以下の2つのレベルの情報が提供される。
第1のレベル:アセットのタイトル、レーティング及びカテゴリを提供する。
第2のレベル:要約、俳優のリスト、言語及び字幕情報、ならびに他の番組に関連した情報を提供する。
第1のレベルでは、テーブルの集合に、例えばテレビ番組などのリスティングアセットが提供されてよい。テーブルに容易にアクセスするために、これらのテーブルには同じテーブルIDが付いているが、別のテーブルID拡張子が付いている。テーブルID拡張子はアセットを分類するために使用される。例えば、あるテーブルは映画を一覧表示する可能性があるが、別のテーブルはスポーツイベントと一覧表示する。これにより、ハードウェアのフィルタリングを通して、必要なカテゴリのアセットに関するテーブルをMPEGストリームから容易に抽出できるようになる。ユーザは、例えば、スポーツ番組のリストを見ることを要求してよい。アセットテーブルのテーブルIDをテーブルID拡張フィールドのスポーツ番組に対するカテゴリコードに結合することによって、正しいアセットテーブルが容易に検索できる。
このテーブルにはそのカテゴリ内のすべてのアセット、つまりこの例ではすべてのスポーツ番組のリストが含まれている。次にこのリストがユーザに表示されてよい。ユーザがこれらの番組の1つに関して追加情報を要求すると、番組のコスト及びコンテンツの説明などのこの特定のアセットに関する追加情報を含む第2レベルのテーブルが検索される。ここでは、アセット識別子がテーブル識別子拡張として使用され、アセット識別子に対するハードウェアフィルタリング、ひいては関連アセット情報の高速検索を可能にする。
考えられる使用可能なカテゴリは、別のMPEGプライベートデータテーブルでも送信される。
使用可能なアセットのリストは番組カタログを構成する。追加のテーブルは、後述されるようにカタログの更新に提供される。
以下のフォーマットは、構文解析モジュールの再利用を確実にするためにプライベートテーブルの前記一般的なフォーマット記述に基づいている。これらのフォーマットは、デコーダの中のセクションフィルタリングモジュールがハードウェア8バイトマスク(tid_extを含む、table_id+tid_extフィールドからの7バイト)に基づいているという事実を利用している。
以下のテーブルのカテゴリとアセットの優先順位が、情報がtid_extフィールドで並べ替えられるときに、最高の優先順位のデータが最初に検索されるように、低い方の値により高い優先順位が設定されて並べられるものとすることに注意する。
Categories_Description_Table
(以下に表20および表21(なお、表20および表21は一続きのものである。)に示される)Categories_Description_Tableは、入信ストリームから検出される第1のテーブルであり、使用可能なカテゴリのリストを提供する。テーブルは、前述された一般的に長いテーブルセクションに基づいている。Category_idは、追加情報が以下の記述子リストで提供されるカテゴリを識別する2バイトフィールドである。Category_idの値の範囲が、以下にさらに詳しく説明されるように、カテゴリ定義とサブカテゴリ定義の使用を可能にする。
Category_idの高い方のバイトはカテゴリを定義する。Category_idの低い方のバイトはサブカテゴリを定義する。したがって、例えばCategory_id 0x1200はカテゴリ0x12とサブカテゴリ0x00を定義する。同様に、Category_id 0x1234は同じカテゴリ0X12であるが別のサブカテゴリ0x34を定義する。
例えば、Category_id 0x1200に続くCategory_name_Descriptorは、カテゴリの視覚的な名称を表している可能性があり、Category_id 0x1234に続くCategory_name_Descriptorは同じカテゴリの別のサブカテゴリの名前を表している可能性がある。
カテゴリ0X00は、一般的なsub_category定義をしようできるようにする予約値である。例えば、すべての考えられるカテゴリの中で一般的なsub_category 「live_event」をサブカテゴリID 0x01で定義することが必要である場合には、0x0001値をCategory_idとして、「live_event」が設定された記述子をテキストコンテンツとして定義することが可能である。
category_descriptor_loopに記憶される記述子は、表22に示されている。
Category_name_descriptor
アセットテーブル
アセット情報の第1のレベルは、プライベートセクション(Section_syntax_indicator=1)の長いフォーマット構文に基づいている。
各テーブルはそれらのそれぞれの識別子によって識別される特定のcategoryとsub_categoryに対応する。テーブルは、それぞれ4バイトの256個のセクションから構成できるため、10000より多いアセットを記述できる。
(tid_extフィールドを置換する)categoryとsub_categoryレーティングは、レーティング基準に基づいたアセットのグループの高速フィルタリングを確実にするためにハードウェアフィルタ深度にある。レーティングは、例えば、通常のペイパービューアプリケーションで使用されるDVB parental_rating_Descriptorと一貫するために8ビットで符号化される。
各テーブルはasset_idループから構成されている。第1の記述子ループは、すべてのasset_idに適用する共通属性を持つ。
第2の記述子ループは、ある特定のアセットに適用する特定の属性を持つ。属性が第1のループと第2のループで定義されると、第2の定義が共通定義を無効にする。
アセット情報テーブルセクションの構造は表23および表24(なお、表23および表24は一続きのものである。)に示される。
Asset_id_length:値フィールドを定義するために使用されるバイト数
Asset_id:続く記述子ループを記述する識別子または識別子のグループ
アセット情報の第2レベルは、プライベートセクション(Section_syntax_indicator=0)の短いフォーマット構文に基づいている。
ハードウェアフィルタ深度のため、特定のasset_idにアクセスするためにフィルタをセットアップすることができる。24ビットの予約フィールドは短いセクション構文の一般的なフォーマットと一貫するように定義される。それは実際にはハードウェアフィルタマスクを補足する。
記述子ループは、アセットに関係する属性を符号化するために使用される。
テーブルセクション構造が表25に記述される。
Asset_information_sectionまたはAsset_more_information_sectionのどちらかの記述子ループに含むために考えられるいくつかの記述子がここで説明される。
ASSET_name_Descriptor
この記述子はアセット情報テーブルのアセットループに置かれる。その構造は表26に示される。
以下の記述子は、通常、Asset_more_information_tableに置かれる。しかしながら、これらのいくつかはAsset_information_tableの属性としても使用されてよい。
source_descriptor
下記の表27に定義されているこの記述子は、アセットの提示フォーマットの態様について情報を提供する。
Asset_more_info_descriptor
以下の表28に定義されるこの記述子は、アセットについてその他の情報を提供する。
Asset_Description_descriptor
以下の表29に定義されるこの記述子は、アセットのテキスト記述を提供する。
Actors_descriptor
以下の表30に定義されるこの記述子は、映画などのアセットに出演する俳優についての情報を提供する。
Package_descriptor
以下の表31に定義されるこの記述子は、アセットのパッケージに関する情報を提供する。
以下の記述子はすべてのアセットに適用するため、それらはアセット情報テーブルの共通記述子ループに位置する必要があるか、あるいは特定のアセットを無効にする必要がある場合には、それはasset_loopで反復できる。
Checkout_Length_descriptor
以下の表32に定義されるこの記述子は、チェックアウト長についての情報を提供する。それは、VODサーバへの接続をタイムアウトにする機構を提供する。
Stream_control_descriptor
以下の表33に定義されるこの記述子は、ストリーム制御情報を提供する。それは、IF高分を使用する変形データ構造として以下に定義される。
CONTROL_FlagS属性は以下の表34に記述される。
カタログ更新
VODアプリケーションが起動されると、使用可能なセットを表示するためにアセット情報テーブルがロードされる(カテゴリレーティングは、未許可映画でカテゴリを非表示にするために考慮に入れられる)。
加入者がある特定のアセットについて追加の情報を必要とする場合、それは対応するAsset_more_information_tableをロードする。
さらに、アセット情報を更新するためには、表35に説明される以下の更新する必要のあるカテゴリとサブカテゴリを示すCatalog_Update_tableが一斉送信されてよい。
update_counter:このカウンタは、カタログが完全に更新されるたびに1増分される。いくつかの修正だけが発生した場合、このカウンタは1増分される。Update_Counterフィールドの第1の値は0である。データベースエクストラクタがリセットされると、このカウンタは値0にリセットされてよいが、Current_Action_Flagsフィールドは0001にセットされ、完全なデータベースの完全な更新を示すものとする。フィールドのサイズは8ビットに制限されているため、値はSTBによって256を方として表現されると理解される。更新カウンタは、STBが新規情報をいつダウンロードする必要があるのかを決定できるようにする。
category_counter_descriptor:カウンタ記述子は、アセット情報テーブルのバージョンカウンタを識別する。それは、STBが、それが最新の情報をダウンロードできるように、アセット情報がいつ更新されたのかを決定できるようにする。
Current_action_flags:多様なフラグは、内側ループの使用可能なcategory_descriptorSに対応して同時に立てられてよい。個々のフラグは表36に一覧表示されている。
Catalog_update_sectionの記述子ループに表示されることがあるいくつかの記述子がここで説明される。
Category_Counter_descriptor
以下に表37に定義されるこの記述子は、カテゴリ/サブカテゴリ更新カウンタを提供する。
counter:この8ビットフィールドは、ある特定のカテゴリとサブカテゴリについて、Asset_information_tableと関連するAsset_more_information_tableの更新をカウントする。
Category_Action_Descriptor
以下に表38に定義されるこの記述子は、指定されたカテゴリとサブカテゴリの組み合わせに必要とされる更新の種類に関する情報を提供する。
Action:この8ビットフィールドは、ループに含まれるカテゴリとサブカテゴリのリストに対するカタログ更新の間に実行されるアクションを指定する。考えられるアクションは表39に示されている。
Plant_id機構
Plant_id機構は、選択されたサーバとのVODセッション接続を確立するために使用される。最初に、受信機/デコーダ13は表40に以下に定義される初期化ファイルを検索し、走査された周波数の1つに同調できるまで、表42に示されるlookup_frequency_list_descriptorループの中で使用可能なすべての周波数を走査する。1つの周波数が検出されると、正しいserver_Group_Idを検索するためにTIDEXTが(つねに同じ記述子の中にある)Plant_id_selectionフィールドに等しいPlant_id定義テーブルを、この同じ記述子に記述されるPIDでフィルタリングすることが必要になる。同時に、アプリケーションは、VODサーバのIPアドレスを検索するためにVOD_initialization_tableのcommon_descriptor_loopで使用可能なROUTING_IP記述子を使用してHTTPサーバに接続する。
VOD_initialization_sectionの構文は、以下の表40に示される。
Private_Filtering_Extension:ハードウェアフィルタの使用を最適化するために、この56_BITフィールドはMLOAD_table呼び出し、MLOAD_group呼び出しまたはMLOAD_section呼び出しでプライベートフィルタリングを拡張するために使用されてよい。
Plant_id_length:Extra_Identifierフィールドを定義するために使用されるバイト数
Plant_id:続く記述子ループによって記述される1つの識別子または識別子のグループ
表40のVOD_initialization_sectionで使用される記述子は以下に説明される。
Cable_delivery_system_descriptor
以下に表41に定義されるCable_delivery_system_descriptorは、frequency_fieldが0000.0000MHZに設定されるcommon_descriptor_loopに位置してよい。それは、すべての以下の周波数のデフォルト偏重パラメータを示すのに役立つ。
plant_id_descriptor_loopの考えられる記述子は以下のとおりである。
lookup_frequency_list_descriptor
この記述子は表42に定義される。
Frequency:これは、周波数値の8文字を指定する4ビットのBCD値を示す32ビットのフィールドである。周波数は、4番目の文字の後に小数が発生するMHZでコーディングされている。
Plant_Id_PID:受信機/デコーダ13がplant_IDファイルを検出する場合のPID値
Plant_id_Selection:この16ビットのフィールドは、PIDでフィルタリングされるTID_EXT値であってよいが、TID値は正しいplant_id_definition_TABLEを検索するために静的である。このフィールドは将来の拡張だけにオプションである。オプションである場合、その値は0XFFFFに設定されるものとする。
追加の例では、予約されたフィールドとplant_id_PIDフィールドは、実際のPID値を検出するのに役立つ関連タグ値を示すためにマージされてよいが、静的なデータPID参照でシステムを利用するのはつねに困難である。
これらの以下の3つの記述子はHttp ODAサーバとして共通記述子ループに設定されなければならない。
Connection_data_descriptor
この記述子は表43に定義される。
Routing_IPV4_Descriptor
この記述子は表44に定義される。
Component_tagフィールドはこの例では使用されていない。その値は0に設定される。
Routing_IPV6_descriptor
この記述子は表45に定義される。
Component_tagフィールドはこの例では使用されていない。その値は0に設定される。
表46は、plant_id_definition_sectionの構文を定義する。
VOD_Service_Group_Descriptor
以下の表47に記述される記述子はplant_id_definition_sectionの中で使用される。
VOD信号の送信
以下の項では、標準信号送信及びプライベートC+信号送信を使用し、専用VODテーブルをストリームから検索する方法を説明する。
最初に、VODポータルサービスを宣言することが必要である。これは、このサービスがVODサービスであることを示すプライベート値0XD0に等しいサービスタイプを用いて行われる。このサービスタイプはCNITのService_list_descriptorで、及びSNT(サービスネットワークテーブル)のservice_descriptorで報告されなければならない。
このサービスは、VODアプリケーションを起動するために必要な宣言を発見する必要がある。VODサービスタイプ宣言がこれを達成するのに十分である場合がある。
次に、このサービスに属するPMTの構成要素ループでは、stream_type 0XC1と添付PIDとともにプライベートデータ基本ストリームのループが発見される。このstream_typeの各ストリームはこれらのデータのどれがこのPIDを使用して一斉送信されるのかを定義するためにappli_list_descriptorを含むものとする。
appli_list_descriptorの構文は以下の表48に示される。
Appli_nameは(8文字に制限される)以下の値をとってよい。
□VOD_Initialization_Tableに関してVOD_INIT
□Asset_Information_Tableに関してASSET(名前は最高8文字の空間で充填されるものとする。)
□Asset_More_Information_Tableに関してDETAILS
□Categories_Definition_Tableに関してcategory
□Catalog_Update_Tableに関してUPDATE(名前は最高8文字の空間で充填されるものとする。)
放送のために、将来の分割を容易にするために2つのappli_list_descriptorSがこのPIDの元に存在するように、ASSETとCATEGORYが同じPIDの中に入れられてよいことに注意する。
データの量及び循環期間のために、DETAILSはASSETとCATEGORYに対して別のPIDの中になければならない。
起動時、VODアプリケーションは最初にカテゴリを表示し、ユーザが必要とする場合にはASSETテーブルに存在する詳細を示す。いったんデータのPIDが定義されると、情報へのアクセスを加速するために完全なDMT機構の代わりにフィルタリングを行うために直接割り当てられたTID値を使用することが許される(DMTはいずれにせよ一斉送信され、TIDと――appli_list_descriptor内と同じ――table_nameの間の解像度を示すものとする)。
カタログの構文解析中、UPDATEテーブルは、カテゴリまたはアセットに変更が発生すると監視されるものとする。
したがって、いったんユーザが選択を行うと、VODアプリケーションはそのハブ周波数を走査するためにVOD_INTデータを使用する。詳細については、前記PLANT_ID_MECHANISMを参照すること。
いったん正しい周波数が検索され、同調が可能になると、少なくとも1つのPlant_Id_Definiton_Tableがトランスポートストリームの最初のPMTに定義されるPIDで一斉送信されなければならない。第1PMTによって、これが、appli_List_Descriptorがその中にPlant_Id名を含むsteam_type 0XC1の1つの基本ストリームを含む必要があるPAT内で宣言される最初のサービスであることが意味される。このPIDは、この周波数についてVOD_initialization_tableのlookup_frequency_list_descriptorにも説明されるPID値である。この機構は、DVB準拠であるために、及びゴーストPIDを有さないように確立される。
それから、このPIDでPlant_Id_Definiton_Tableが一斉送信され、TIDEXT値は、現在同調している周波数についてVOD_initialization_tableのlookup_frequency_list_descriptorに既に定義されているPlant_Id_Selection値に等しい。このフィルタリングが一致しない場合には、別の周波数に対する試行が行われる。さらに指定の周波数についてPlant_Id_Definiton_Tableを検索するためのタイムアウトは、VOD_initialization_tableの現在のlookup_frequency_list_descriptorの中で次に説明される周波数へのジャンプを暗示するものとする。
一致なしで完全なループが行われる場合には、明示的なエラーが表示されるか、あるいは使用可能な完全な周波数リストについて新しい試行が行われる。
明示的なエラーは、以下の可能性の1つを意味する。
・周波数が検出されない。
・同調している周波数についてPLANT_IDテーブルが検出されない。
・検出された周波数についてPAT信号送信がない。
・検出された周波数についてPMT信号送信がない。
それ以外の場合は、VODセッションコネクションを確立するために、VOD_initialization_tableのIP_Descriptorsを用いてサーバのアドレスが検出される。
前記説明は、以下のアプローチに基づいたプライベートテーブル構造を定義した。
・短いセクションのためのモデル
・長いセクションのためのモデル、及び
・アプリケーション−コンテキストに依存した記述子の例
前述されたこのシステムは以下の戦略的な優位点を提供する。
・それによりさらに効率的な開発を可能になる。
・それにより、受信機/デコーダ13のメーカ、及び条件付きアクセスシステムのメーカとは無関係にアプリケーションインプリメンテーションの作成が可能になる。
・コストを増加させずに使用できるデータ量の増加――これはデータ圧縮を介して行われる、及び
・製品更新の容易な開発
システムは、アプリケーション一斉送信に以下の優位点も提供する。
・一般的なテーブル構文解析ツールの提供
・構文解析ツールに対する変更は既存のアプリケーションに対して大きな影響を及ぼさない。
・プライベートテーブルの定義の正規化
・開発者はデータフィルタリング及び必要とされる特定の記述子に集中できる。
・テーブルコンテンツのさらに容易な処理
・データの抽出は構文解析ツールによって実行される。
・データフォーマットとの下位互換性を維持する。
・既存のフォーマットとの統合――プライベートセクションは、DVBテーブルがプライベート記述子を使用できる一方で既存のDVB記述子を使用できる。
・後退しないこと(NON-REGRESSION)の保証
・オブジェクトメソッドの記述子との関連付け
・単一の試験と統合の助長
・(ライブ放送に悪影響を及ぼさない、サイトにおける)操作統合の助長、及び
・アプリケーションを開発するために必要とされる時間の縮小
本発明が、純粋に例証として説明されてきたこと、及び詳細の変型を本発明の範囲内で加えることができることが理解されるだろう。
説明、及び(適切な場合には)請求項と図面の中に開示されたそれぞれの特徴は、個別に、あるいは任意の適切な組み合わせで実現されてよい。