首页 / 专利库 / 广播 / 数字视频广播 / Digital video broadcasting

Digital video broadcasting

阅读:925发布:2021-08-04

专利汇可以提供Digital video broadcasting专利检索,专利查询,专利分析的服务。并且PROBLEM TO BE SOLVED: To execute the descrambling of data by a simple and inexpensive means by enabling the passing of a descrambled data part and descrambling a scrambled data part. SOLUTION: Scrambled data (m)=(k) are sent along a signal route 10 through two signal route loops (6, 7)... provided with ciphers 62 and 64 and descrambled data are supplied. Two shift registers Reg1 and Reg2 supply the data to a block cipher unit 64 by 8 bytes each, receive the data from there and supply the delay of 16 bytes. The descrambled data part (j),下面是Digital video broadcasting专利的具体信息内容。

【特許請求の範囲】
  • 【請求項1】 スクランブルされたデータとスクランブル解除されたデータとのインターリーブされた部分を含むデジタル・ビデオ放送データのストリームを処理する装置であって、 スクランブルされたデータの部分とスクランブル解除されたデータの部分との両方に提供された共通のデータ・
    フロー経路と、 前記共通のデータ・フロー経路から延長しそれに戻る1
    又は複数のデータ・フロー経路ループであって、スクランブルされたデータのスクランブル解除をイネーブルするサイファ(暗号化)手段を含む、1又は複数のデータ・フロー経路ループと、 複数の制御状態を想定できる制御手段であって、前記データ・ストリームにおける前記データ部分の相対的な位置を維持しながら、前記データ・フロー経路を介してのデータの通過を選択的に制御し、前記共通のデータ・フロー経路におけるスクランブル解除されたデータ部分の通過をイネーブルし、前記データ・フロー経路ループにおいてスクランブルされたデータ部分のスクランブル解除を行う制御手段と、 を含むことを特徴とする装置。
  • 【請求項2】 請求項1記載の装置において、 ストリーム・サイファ手段を含む第1の信号経路ループと、 ブロック・サイファ手段を含む第2の信号経路ループであって、この第2のループへの入力において前記共通のデータ・フロー経路における第1のシフト・レジスタ(Reg1)と、この第2のループの出力において前記共通データ・フロー経路における第2のシフト・レジスタ(Reg2)とを有する第2の信号経路ループと、 を含むことを特徴とする装置。
  • 【請求項3】 請求項1記載の装置において、ビデオ・
    データのパケットの受信を識別し、スクランブルされたデータとスクランブル解除されたデータとの存在を示す制御信号を前記制御手段に提供するパケット識別処理手段を含むことを特徴とする装置。
  • 【請求項4】 請求項1記載の装置において、データの入来パケットにおける命令バイトに応答して前記サイファ手段によって用いられるキー信号を発生するキー状態手段を含むことを特徴とする装置。
  • 【請求項5】 スクランブルされたデータとスクランブル解除されたデータとのインターリーブされた部分を含むデジタル・ビデオ放送データを処理する装置であって、 排他的ORゲート手段の第1の入力に結合されたデータ入力端子と、 前記データ入力端子に接続された入力を有するストリーム・サイファ手段と、 前記排他的ORゲート手段の第2の入力に接続された出力と、 前記排他的ORゲートの出力を受け取るように結合された入力と、第1及び第2の出力とを有する第1のシフト・レジスタ手段と、 前記第1のシフト・レジスタ手段の前記第1の出力に結合された第1の入力と、第2の入力と、出力とを有する第2のシフト・レジスタ手段と、 前記第1のシフト・レジスタ手段の前記第2の出力と前記第2のシフト・レジスタ手段の前記第2の入力との間に結合されたブロック・サイファ手段と、 前記データ入力端子におけるデータがスクランブルされたデータであるかスクランブル解除されたデータであるかに応答して、前記ストリーム・サイファ手段と、前記ブロック・サイファ手段と、前記第1及び第2のシフト・レジスタ手段とを選択的にイネーブルし、(a)スクランブル解除されたデータは、前記第1及び第2のシフト・レジスタ手段を直接的に通過させ、(b)スクランブルされたデータは、前記ストリーム・サイファ手段と前記ブロック・サイファ手段とを通過させる制御手段と、 を備えていることを特徴とする装置。
  • 【請求項6】 請求項5記載の装置において、スクランブルされたフィールド・データをカウントする第1及び第2のブロック・カウンタ(84、86)を含むことを特徴とする装置。
  • 【請求項7】 請求項6記載の装置において、前記第1
    のブロック・カウンタは、新たなスクランブルされたフィールドの最初からカウントし、前記第2のブロック・
    カウンタは、新たなスクランブルされたフィールドの第2のブロックの最初からカウントすることを特徴とする装置。
  • 【請求項8】 請求項5記載の装置において、パケットの開始からのバイト数をカウントするパケット・カウンタを含むことを特徴とする装置。
  • 【請求項9】 請求項2記載の装置において、前記制御ステート・マシンは、IDLE状態と、スクランブルされたデータに対する処理状態GENと、スクランブル解除されたデータに対する処理状態UNSCRと、ブロック・サイファをロード及びアンロードする処理状態BC
    LOADと、スクランブルされたフィールドの第1のブロックを用いて前記ブロック・サイファをロードする処理状態FBCLOADと、任意のスクランブルされた剰余を扱う処理状態LBCLOADと、の状態を占めることができることを特徴とする装置。
  • 【請求項10】 請求項9記載の装置において、前記制御ステート・マシンの構成は、次のプロセスの結果によって定義されることを特徴とする装置。 すなわち、 next_state_proc : process (current_state, new_byte_flag, captured, bc_busy, first_block_flag, r1_sc_full_flag, int_r1_shift, r1_full_flag, reg2_active_mode, last_block_flag, int_bc_key, common_key, pack_end_flag, if_empty) begin a_bc_key < = int_bc_key; bc_start < = NO; reg2_load_flag < = NO; a_reg2_active_mode < = reg2_active_mode; exit_state < = NO; case (current_state) is when IDLE = > if (new_byte_flag = YES and captured.sc = SCRAMBLED) then next_state < = GEN; elsif (new_byte_flag = YES and captured.sc = SCRAMBLED) then next_state < = UNSCR; elsif (pack_end_flag = YES) then next_state < = UNSCR; else next_state < = IDLE; end if; when GEN = > if (if_empty = NO) then next_state < = current_state; elsif (r1_full_flag = YES and last_block_flag = YES) then next_state < = LBCLOAD; exit_state < = YES; elsif (r1_sc_full_flag = YES) then if (first_block_flag = YES) then next_state < = FBCLOAD; a_bc_key < = common_key; exit_state < = YES; else next_state < = BCLOAD; exit_state < = YES; end if; else next_state < - IDLE; exit_state < - YES; end if; when USCR = > if (if_empty = NO) then next_state < = current_state; elsif (r1_full_flag = YES and last_block_flag = YES) then next_state < = FBCLOAD; exit_state < = YES; elsif (r1_sc_full_flag = YES and first_block_flag = YES) then next_state < = FBCLOAD; a_bc_key < = common_key; exit_state < = YES; else next_state < = IDLE; exit_state < = YES; end if; when LBCLOAD = > if (int_r1_shift = YES or bc_busy = YES) then next_state < = current_state; else next_state < = IDLE; reg2_load_flag < = YES; a_reg2_active_mode < = SAR; end if; when FBCLOAD = > if (int_r1_shift = YES or bc_busy = YES) then next_state < = current_state; else next_state < = IDLE bc_start < = YES; a_reg2_active_mode < = EAR; end if: when BCLOAD = > if (int_r1_shift = YES or bc_busy = YES) t hen next_state < = current_state; else next_state < = IDLE; bc_start < = YES; reg2_load_flag < = YES; a_reg2_acrtive_mode < = SAS; end if; when others = > next_state < = IDLE; end case; end process next_state_proc;
  • 【請求項11】 請求項1記載の装置を組み入れたことを特徴とする集積回路チップ。
  • 【請求項12】 スクランブルされたデータとスクランブル解除されたデータとのインターリーブされた部分を含むデジタル・ビデオ放送データのストリームを処理する方法であって、 スクランブルされたデータの部分とスクランブル解除されたデータの部分との両方に共通のデータ・フロー経路を提供するステップと、 前記共通のデータ・フロー経路から延長しそれに戻る1
    又は複数のデータ・フロー経路ループであって、スクランブルされたデータのスクランブル解除をイネーブルするサイファ手段を含む、1又は複数のデータ・フロー経路ループを提供するステップと、 前記データ・ストリームにおける前記スクランブルされたデータ部分と前記スクランブル解除されたデータ部分との相対的な位置を維持しながら、前記データ・フロー経路を介してのデータの通過を選択的に制御し、スクランブル解除されたデータ部分は前記共通のデータ・フロー経路を通過させ、スクランブルされたデータ部分は前記データ・フロー経路ループを通過させるステップと、 を含むことを特徴とする方法。
  • 【請求項13】 請求項12記載の方法において、 ストリーム・サイファ手段を含む第1の信号経路ループを提供するステップと、 ブロック・サイファ手段を含む第2の信号経路ループであって、この第2のループへの入力において前記共通のデータ・フロー経路における第1のシフト・レジスタ(Reg1)と、この第2のループの出力において前記共通データ・フロー経路における第2のシフト・レジスタ(Reg2)とを有する第2の信号経路ループを提供するステップと、 を含むことを特徴とする方法。
  • 【請求項14】 請求項12記載の方法において、 ビデオ・データのパケットの受信を識別するステップと、 スクランブルされたデータとスクランブル解除されたデータとの存在を、前記データ・フロー経路の制御のために識別するステップと、 を含むことを特徴とする方法。
  • 【請求項15】 請求項12記載の方法において、データをスクランブル解除するときに前記サイファ手段によって用いられるキー信号を発生するステップを含むことを特徴とする方法。
  • 【請求項16】 請求項13記載の方法において、前記処理は、IDLE状態と、スクランブルされたデータに対する処理状態GENと、スクランブル解除されたデータに対する処理状態UNSCRと、ブロック・サイファをロード及びアンロードする処理状態BCLOADと、
    スクランブルされたフィールドの第1のブロックを用いて前記ブロック・サイファをロードする処理状態FBC
    LOADと、任意のスクランブルされた剰余を扱う処理状態LBCLOADと、に分割されることを特徴とする方法。
  • 【請求項17】 請求項16記載の方法において、前記処理状態は、次のように定義されることを特徴とする方法。 すなわち、 next_state_proc : process (current_state, new_byte_flag, captured, bc_busy, first_block_flag, r1_sc_full_flag, int_r1_shift, r1_full_flag, reg2_active_mode, last_block_flag, int_bc_key, common_key, pack_end_flag, if_empty) begin a_bc_key < = int_bc_key; bc_start < = NO; reg2_load_flag < = NO; a_reg2_active_mode < = reg2_active_mode; exit_state < = NO; case (current_state) is when IDLE = > if (new_byte_flag = YES and captured.sc = SCRAMBLED) then next_state < = GEN; elsif (new_byte_flag = YES and captured.sc = SCRAMBLED) then next_state < = UNSCR; elsif (pack_end_flag = YES) then next_state < = UNSCR; else next_state < = IDLE; end if; when GEN = > if (if_empty = NO) then next_state < = current_state; elsif (r1_full_flag = YES and last_block_flag = YES) then next_state < = LBCLOAD; exit_state < = YES; elsif (r1_sc_full_flag = YES) then if (first_block_flag = YES) then next_state < = FBCLOAD; a_bc_key < = common_key; exit_state < = YES; else next_state < = BCLOAD; exit_state < = YES; end if; else next_state < - IDLE; exit_state < - YES; end if; when USCR = > if (if_empty = NO) then next_state < = current_state; elsif (r1_full_flag = YES and last_block_flag = YES) then next_state < = FBCLOAD; exit_state < = YES; elsif (r1_sc_full_flag = YES and first_block_flag = YES) then next_state < = FBCLOAD; a_bc_key < = common_key; exit_state < = YES; else next_state < = IDLE; exit_state < = YES; end if; when LBCLOAD = > if (int_r1_shift = YES or bc_busy = YES) then next_state < = current_state; else next_state < = IDLE; reg2_load_flag < = YES; a_reg2_active_mode < = SAR; end if; when FBCLOAD = > if (int_r1_shift = YES or bc_busy = YES) then next_state < = current_state; else next_state < = IDLE bc_start < = YES; a_reg2_active_mode < = EAR; end if: when BCLOAD = > if (int_r1_shift = YES or bc_busy = YES) t hen next_state < = current_state; else next_state < = IDLE; bc_start < = YES; reg2_load_flag < = YES; a_reg2_acrtive_mode < = SAS; end if; when others = > next_state < = IDLE; end case; end process next_state_proc;
  • 说明书全文

    【発明の詳細な説明】

    【0001】

    【発明の属する技術分野】本発明は、デジタル・ビデオの分野に関し、更に詳しくは、デジタル・ビデオ放送に関する。

    【0002】

    【従来の技術】スクランブル技術は、ペイメント・オン・デマンド式のケーブル・テレビなどのビデオ応用例において、広く用いられている。 アナログ・ビデオ信号をスクランブルする一般的な技術は、平同期パルスの位置をランダム化することである。 入来ビデオ信号は、スクランブルされたビデオ(映像、画像)部分とスクランブル解除されたビデオ部分とがインターリーブされている場合が多く、処理回路においてこれらを区別する必要がある。 例えば、米国特許第4926477号を参照のこと。

    【0003】デジタル放送(DVB)については、様々な標準が設定されているが、データのスクランブル及びスクランブル解除(DVBアルゴリズム)に関しては、
    特に、デジタル・ビデオ放送のための欧州プロジェクト(European Project for Digital Video Broadcastin
    g)によって策定された、共通スクランブル仕様(Commo
    n Scrambling Specifications)として知られている標準が設定されている。 DVBアルゴリズムの本質的な特性は、図1に示されている。 スクランブルされたデータのn個の連続的なブロック(8バイト)SB(n)を後に従えたヘッダ・フィールドHEADERを有するデータから成るパケット2が、共通スクランブル仕様によって定義されている形式のストリーム・サイファ(stream
    cipher)4に与えられる。 スクランブルされたデータは、ブロックごとに暗号解除されるが、その際に、第1
    のブロックSB(1)は初期化に用いられ、それぞれの後続のブロックはストリーム・サイファCBに与えられ、次に中間ブロックIB(n)としてブロック・サイファ・ユニット6に送られる。 これらはやはり、共通スクランブル仕様によって定義された形式を有する。 それぞれのブロックには、ブロック暗号解除動作BDが施され、スクランブル解除されたブロックDB(n)が出され、スクランブル解除されたパケット8となる。

    【0004】図1のスクランブル解除に関する更に詳細な構成が、図2に示されている。 そこでは、スクランブルされたデータが、ストリーム・サイファ・ユニット1
    0と排他的ORゲート12の第1の入力とに与えられる。 サイファ・ユニット10の出力がゲート12の第2
    の入力に与えられる。 ゲート12の出力は、8バイトの遅延を提供する8バイト・レジスタ14(Reg1と称する)に与えられる。 Reg1のパラレル出力は、ブロック・サイファ・ユニット16に結合される。 Reg1
    のシリアル出力は、ツーウェイ・スイッチ18を介して、(更に8バイトの遅延を提供する)8バイト・レジスタ20(Reg2と称する)と排他的ORゲート22
    の第1の入力とに結合される。 ブロック・サイファ・ユニット16はパラレル入力としてReg2に接続され、
    Reg2のシリアル出力は排他的ORゲート22の第2
    の入力に与えられる。 ゲート22の出力は、スクランブル解除されたデータを提供する。 データ経路ストリームにおける2つのレジスタReg1及びReg2の存在が実質的に16バイトの遅延を生じさせていることを理解すべきである。 図2における記号は、次の通りである。
    すなわち、kは、ストリームを通じてのスクランブルされたバイトのインデックスであり、pは、スクランブルされたフィールドの端部(end)であり、nは、スクランブルされたフィールドにおける完全な8バイト・ブロックの数であり、rは、スクランブルされたフィールドの最後の完全な8バイト・ブロックの後にそのスクランブルされたフィールドに残った剰余(residue)である。

    【0005】

    【発明が解決しようとする課題】MPEG標準に従って圧縮されている圧縮ビデオ信号に関しては、DVBスクランブル解除アルゴリズムをMPEGトランスポート・
    データ・ストリームに適用すると、受け取られたトランスポート・ストリームに含まれるスクランブルされたデータのフィールドをそのストリームから抽出し、DVB
    スクランブル解除アルゴリズムに従ってスクランブル解除し、そして、受け取られたトランスポート・ストリームの元の位置に再度挿入することが必要となる。

    【0006】よって、トランスポート・ストリームがスクランブルされたビデオとスクランブル解除されたビデオ(プレーン・テキスト)とのインターリーブされた部分を含む場合には、次の問題が生じる。 すなわち、スクランブルされた部分のスクランブル解除のために当然に時間遅延が発生し、従って、スクランブル解除された部分を、受信システムを更に修正することなくトランスポート・ストリームの元の位置に再度挿入することは不可能である。

    【0007】本発明の目的は、スクランブルされたデータとスクランブル解除されたデータとの両方の部分を含むトランスポート・ストリームにおいて、スクランブルされたデータのスクランブル解除を行う単純で安価な手段を提供することである。

    【0008】

    【発明を解決しようとする手段】本発明によって、スクランブルされたデータとスクランブル解除されたデータとのインターリーブされた部分を含むデジタル・ビデオ放送データのストリームを処理する装置が提供される。
    この装置は、(1)スクランブルされたデータの部分とスクランブル解除されたデータの部分との両者のために提供された共通のデータ・フロー経路と、(2)前記共通のデータ・フロー経路から延長しそれに戻る1又は複数のデータ・フロー経路ループであって、スクランブルされたデータのスクランブル解除を可能にする(イネーブルする)サイファ(暗号化)手段を含む、1又は複数のデータ・フロー経路ループと、(3)複数の制御状態を想定できる制御手段であって、このデータ・ストリームにおけるそれぞれのデータ部分の相対的な位置を維持しながら、前記データ・フロー経路を介してのデータの通過を選択的に制御し、前記共通のデータ・フロー経路におけるスクランブル解除されたデータ部分の通過をイネーブルし、前記データ・フロー経路ループにおいてスクランブルされたデータ部分のスクランブル解除を行う制御手段と、を含んでいる。

    【0009】本発明によると、単一のメイン・データ・
    フロー経路が提供され、このメイン・データ・フロー経路とデータ・フロー経路ループとが制御されているので、データのスクランブル解除された部分とスクランブルされた部分との通過を、スクランブル解除されたデータの再挿入と単一のデータ・ストリームの再同期化との問題が回避されるように、規制できる。

    【0010】本発明は、スクランブルされたデータとスクランブル解除されたデータとのインターリーブされた部分を含むデジタル・ビデオ放送データを処理する特定の特徴を有する装置を提供する。 この装置は、(1)排他的ORゲート手段の第1の入力に結合されたデータ入力端子と、(2)前記データ入力端子に接続された入力を有するストリーム・サイファ手段と、(3)前記排他的ORゲート手段の第2の入力に接続された出力と、
    (4)前記排他的ORゲートの出力を受け取るように結合された入力と、第1及び第2の出力とを有する第1のシフト・レジスタ手段と、(6)前記第1のシフト・レジスタ手段の前記第1の出力に結合された第1の入力と、第2の入力と、出力とを有する第2のシフト・レジスタ手段と、(7)前記第1のシフト・レジスタ手段の前記第2の出力と前記第2のシフト・レジスタ手段の前記第2の入力との間に結合されたブロック・サイファ手段と、(8)前記データ入力端子におけるデータがスクランブルされたデータであるかスクランブル解除されたデータであるかに応答して、前記ストリーム・サイファ手段と、前記ブロック・サイファ手段と、前記第1及び第2のシフト・レジスタ手段とを選択的にイネーブルし、(a)スクランブル解除されたデータは、前記第1
    及び第2のシフト・レジスタ手段を直接的に通過させ、
    (b)スクランブルされたデータは、前記ストリーム・
    サイファ手段と前記ブロック・サイファ手段とを通過させる制御手段と、を備えている。

    【0011】本発明によると、単一のデータ・フロー経路が提供されているので、より安全で信頼性が高く安価なシステムが得られる。 データをスクランブルされたデータとスクランブル解除されたデータとに対して全く別のデータ・フロー経路に分けて、それぞれのフロー経路に適切な遅延を与え、正確なタイミング関係を維持するというような別の構成も考えることはできるが、それでは、結果的に、より費用のかかるシステムとなってしまう。

    【0012】本発明による単一のデータ・ストリーム経路は、好ましくは、データのスクランブルされたバイトとスクランブルされていない(non-scrambled)データとの両方を通過させることはできず、更には、2つのシフト・レジスタ手段は連続的なデータ・フィールドの間にギャップを含まないように、構成される。 これらの2
    つの条件は、スクランブルされたフィールドとスクランブル解除されたフィールドとが、データにおいて(しかし、時間間隔においては、必ずしもそうではないが)ギャップもオーバラップもなく相互に継続することを意味し、更に、スクランブルされていないデータが、スクランブルされたデータによって用いられるのと同じ、16
    バイトの時間遅延を与えるシフト・レジスタ手段を用いるので、スクランブルされていないデータをスクランブル解除された(descrambled)データ・ストリームの中に挿入する問題が生じず自動的に解決する。

    【0013】制御手段は、好ましくは、適切な制御信号を発してデータ・ストリームを制御する多数の予め定義された状態を占める制御ステート・マシンによって、構成される。 好ましくは、スクランブル解除プロセスのためにサイファ手段に対するキーの発生を制御するキー・
    ステート・マシンが提供される。 更に、パケット・カウンタが提供され、入来データ・ストリームの現在の信号パケットのバイト数を、MPEG2によって許容されているように、最大で184バイトまでカウントする。 第1のブロック・カウンタが提供されて、新たなスクランブルされたフィールドのバイト数を、モジュロ8(modu
    lo 8)で(8を法として)カウントする。 好ましくは、
    第2のブロック・カウンタが提供され、新たなスクランブルされたフィールドの第2のブロックのバイト数を、
    モジュロ8でカウントする。 2つの連続するスクランブルされたフィールドの間のスクランブル解除されたデータが8バイトよりも少ない可能性があるので、2つのブロック・カウンタが必要となる。

    【0014】

    【発明の実施の形態】図3を参照すると、本発明によるスクランブル解除装置は、デマルチプレクス機能30とスクランブル解除機能32とを含む。 図では、これらは共に、破線で示されている。 機能30は、パケット識別プロセッサ34を含む。 機能32は、キー制御及びキー発生ユニット36と、制御ステート・マシン38と、スクランブル解除ユニット40とを含む。 マシン38は、
    後で説明するカウンタ42、44、46を含む。

    【0015】図4及び図5を参照すると、トランスポート・パケットのフォーマットが、同期バイトSBに先行されるように示され、スクランブルされたデータか、プレーン・データか、両者の混合物か、であり得る188
    バイトのデータを含む。 スクランブルされたデータが提供される場合には、先行する命令バイトIBもまた提供される。 命令バイトIBのフォーマットは、図4に示されているが、キー・インデクスであるビット0から3
    と、SC制御ビットであるビット4及び5とを含む。 パケット識別ユニット34は、pid_i_data上をマシン38
    に入来パケットを提供し、図4に示されている波形pid_
    i_decidb、pid_i_pacst、pid_i_srを生じるが、これらは、命令バイトと、同期バイトと、スクランブルされたデータ部分とに応答する波形ステップをマシン38に与える。

    【0016】図5に示されるように、スクランブル解除ユニット40は、パケットにアセンブルされたスクランブル解除データdsc_o_dataを、パケットの最初にある同期バイトに応答する信号dc_o_pacstと共に提供する。 タイミング及び確認(validation)信号であるclock、dat
    a_val、data、busyb、captured dataが示されているように提供される。

    【0017】制御ステート・マシン38は、パケットにおけるバイトをカウントするカウンタ42pack_counter
    と、8バイトのブロックをカウントするカウンタ44fi
    rst_block_countと、ブロックのバイトをカウントする第2のカウンタ46block_countとを含む。 2つのブロック・カウンタは、新たなスクランブルされたフィールドのバイト数を、モジュロ8でカウントして、ブロックを発生する。 カウンタは、8に到達すると、1に戻る。
    値がゼロであることは、そのバイトは現在スクランブル解除されている(スクランブルされていない)ことを意味する。 2つの連続するスクランブルされたフィールドの間のスクランブル解除されたデータが8バイトよりも少ない可能性があるので、2つのブロック・カウンタが必要となる。 カウンタは、図7及び図8に示されているような種々のフラグを生じて、以下で述べるようにスクランブル解除装置の動作を制御する。

    【0018】次に図6を参照すると、図3のユニット4
    0の更に詳細な図が示されており、入力ストリームib
    (m)が、データ・フロー経路(1)上を排他的ORゲート60に入力される。 図6では、kはスクランブルされたバイトのインデクスであり、jからqは、スクランブル解除されたバイトを指す。 入力ストリームはまた、
    データ経路(6)上を、ストリーム・サイファ・ユニット62に与えられ、このユニット62の出力は、データ・フロー経路(7)によって、排他的ORゲート60の第2の入力に結合されている。 排他的ORゲート60の出力は、データ・フロー経路(2)上を、第1のシフト・レジスタReg1のシリアル入力に結合される。 Re
    g1は、8バイトのシフト・レジスタであり、パラレル出力をデータ・フロー経路(8)に、シリアル出力をデータ・フロー経路(3)上に提供する。 データ・フロー経路(3)は、8バイトのシフト・レジスタReg2のシリアル入力に結合されている。 データ・フロー経路(8)は、ブロック・サイファ・ユニット64に結合され、ブロック・サイファ・ユニット64の出力は、データ・フロー経路(9)上を、Reg2のパラレル入力に結合される。 Reg2のシリアル出力は、データ・フロー経路(4)を介して、排他的ORゲート66の1つの入力に結合され、ゲート66の出力は、データ・フロー経路(5)上にスクランブル解除された出力を与える。
    別のデータ・フロー経路(10)が、Reg1の出力からゲート66の第2の入力に接続され、DVBスクランブル解除アルゴリズムを完了させている。

    【0019】使用の際には、スクランブルされたデータm=kが、サイファ62、64を含む2つの信号経路ループ(6、7)、(8、9)を介して、そして、信号経路10に沿って送られて、スクランブル解除されたデータを与える。 2つのシフト・レジスタReg1及びRe
    g2は、一度に8バイトずつブロック・サイファ・ユニット64にデータを供給し及びそこからデータを受け取り、16バイトの遅延を与える。 スクランブル解除されたデータの部分j<=m<=qは、共通のデータ・フロー経路1、2、3、4、5に沿って送られる。 共通の信号フロー経路は2つのシリアル・シフト・レジスタRe
    g1及びReg2を含むので、外部的な遅延素子を必要とせずに、自動的に16バイトの時間遅延補償が自動的に与えられ、スクランブルされたデータ部分とのタイミングが維持される。

    【0020】データ・フロー経路1、2、3、4、5
    は、図6において、mの値によって指示されるように特定され、2つの目的を達成する。 第1に、これらは、スクランブルされたバイトとスクランブル解除されたバイトとの両方を同時に通過させることは決してないし、第2に、結果的に、Reg1又はReg2において、連続するデータ・フィールドの間にギャップが生じることは決してない。 これらの2つの条件は、スクランブルされたフィールドとスクランブルされていないフィールドとが、ギャップもオーバラップもなく相互に継続することを意味し、更に、スクランブルされていないデータが、
    スクランブルされたデータによって用いられるのと同じ、16バイトの時間遅延を与える回路を用いるので、
    スクランブルされていないデータをスクランブル解除されたデータ・ストリームの中に挿入して戻す問題が生じず自動的に解決される。

    【0021】図3を、図4から図8の波形図と図9及び図10の制御動作図と共に、再び参照すると、図3及び図6に示されたユニットの機能は、次の通りである。

    【0022】パケット・カウンタ42は、最後のパケット開始からのバイト数をカウントする。 このカウンタは、パケットの最後にいつ到達するかを判断するのに用いられる(188バイト)。

    【0023】第1のブロック・カウンタ44は、新たなスクランブルされたフィールドからのバイトを、モジュロ8でカウントする。 これは、カウントが8に達すると1に戻ることを意味する。 これから、Reg1が新たなスクランブルされたフィールドからの完全なスクランブルされたブロックでいつ満たされるかを判断することが可能になる。 このカウンタは、0から8まで定義されており、0は、Reg1の第1段に現在存在するバイトがスクランブル解除されている(unscrambled)という意味を有する。 従って、スクランブルされていないフィールドはこのカウンタによっては、カウントされない。

    【0024】第2のブロック・カウンタ46は、新たなスクランブルされたフィールドの第2のブロックの最初からのバイトを、モジュロ8でカウントする。 これから、Reg1がストリーム・サイファからのスクランブルされたデータから成る新たなブロックでいつ満たされるかを判断することが可能になる。

    【0025】2つのブロック・カウンタが必要な理由は、2つの連続するスクランブルされたフィールドの間にあるスクランブルされていないデータが8バイトよりも少ない可能性があるからである。 そのような場合には、Reg1は、次のスクランブルされたフィールドの前にスクランブル解除されたデータで満たされない。 すなわち、Reg1は、直前の(最後の)スクランブルされたフィールドの最後と次のスクランブルされたフィールドの最初との両方を含む。 制御ステート・マシンは、
    最後のブロックがいつブロック・サイファから出される準備ができるかと、第1のブロックがいつReg1の最後に達したかとを知る必要がある。 従って、2つのカウンタが必要なのである。

    【0026】これらのカウンタから、図7及び図8に示される次のような一連のフラグが生じる。

    【0027】first_block_flagは、Reg1のブロックがスクランブルされたフィールドの第1のブロックであることを示す。

    【0028】last_block_flagは、ブロック・サイファのブロックが、スクランブルされたフィールドの最後のブロックであることを示す。

    【0029】rl_full_flagは、Reg1がデータの新たな8バイト(1ブロック)で満たされていることを示す。 ブロック・カウントが7であるときに設定される。

    【0030】rl_sc_full_flagは、Reg1がデータの新たなスクランブルされた8バイトで満たされていることを示す。 第1のブロック・カウンタが7であるときに設定される。

    【0031】pack_end_flagは、直前のパケット開始から188バイトがロードされたことを示す。

    【0032】制御ステート・マシン38は、信号の「現在のステート(状態)」に保持され、次のクロックの後のステートの値が、レジスタ「次のステート」に保持される。 このマシンは、6つの状態を有する。 すなわち、
    図9及び図10に示されるIDLE、GEN、UNSC
    R、BCLOAD、FBCLOAD、そしてLBCLO
    ADである。

    【0033】IDLEは、リセットの後のデフォルト状態である。 スクランブル解除装置における内部制御は、
    新たなバイトを受け入れることができるようになっている。 新たな1バイトが入手可能でありそれがスクランブルされていれば、次の状態は、GENである。 新たな1
    バイトが入手可能でありそれがスクランブル解除されていれば、次の状態は、UNSCRである。

    【0034】GENは、スクランブルされたデータのための処理状態である。 ストリーム・サイファは、それぞれのバイトを処理するのに2クロック・サイクルを必要とする。 デフォルトでは、これは、IDLEをGENに進め再びIDLEに戻ることによって生じる。 これは、
    次の場合を除けば、スクランブルされたデータに対する通常のフローである。 すなわち、Reg1が満たされておりブロック・サイファがスクランブルされたフィールドの最後のブロックを含む場合には、次の状態は、LB
    CLOADである。 Reg1がスクランブルされたフィールドからのブロックで満たされておりそれがそのフィールドの最初のブロックでもなく最後のブロックでもない場合には、次の状態はBCLOADである。 これらのいずれのケースでもない場合には、次の状態はIDLE
    である。

    【0035】UNSCRは、スクランブル解除されたデータのための処理状態である。 実際には、スクランブル解除されたデータは、処理のためには1サイクルを要するだけであるが、特別の状態を与えることには、2つの利点がある。 第1に、サイクルの振る舞いは、スクランブルされたバイトとスクランブル解除されたバイトとに対して同じである。 これにより、符号における特別の場合の要件が不可避的に減少し、従ってその信頼性が高まる。 第2に、スクランブル解除装置(descrambler)のレイテンシがスクランブルされたデータとスクランブル解除されたデータとに対して同じであり、これによって、あるシステムでは、外部インターフェースの要件が単純化され得る。 この状態では、Reg1が満たされておりスクランブルされたフィールドの最後のブロックがブロック・サイファの中にある場合には、次の状態はL
    BCLOADであり、Reg1がスクランブルされたフィールドの最初のブロックで満たされている場合には、
    次の状態はFBCLOADである。 それ以外の場合には、次の状態はIDLEである。

    【0036】BCLOADは、ブロック・サイファをロード及びアンロードするための処理状態である。 この状態は、Reg1がスクランブルされたフィールドの最初のブロックでもスクランブルされた剰余でもない新たなスクランブルされたブロックを含むときに、GENの次に生じる。 この状態は、2つの条件が真となるのを待つ。 すなわち、第1に、データにおけるシフトイン(sh
    ifting in)が終了するまで、第2に、ブロック・サイファが現在アイドルである、すなわち、前のブロックの暗号解除を終了しているまで、である。 これらが真であるときには、Reg2には、ブロック・サイファの内容がロードされており、ブロック・サイファには、Reg
    1の内容がロードされており、ブロック・サイファが開始される。 Reg2は、「スクランブルされているものとしてシフト」(Shift As Acranbled = SAS)のモードに設定される。 次の状態はIDLEである。

    【0037】FBCLOADは、ブロック・サイファにスクランブルされたフィールドの第1のブロックをロードするための処理状態である。 この状態には、Reg1
    が新たなスクランブルされたフィールドの最初のブロックでもある新たなスクランブルされたブロックを含むときに、GENから入る。 この場合には、ブロック・サイファは、現在のフィールドからのブロックを含まず、前のフィールドからの任意の最後のブロックが、LBCL
    OAD状態によってReg2に空けられる。 この方式を正確に動作させるためには、連続するスクランブルされたフィールドの間に、少なくとも1バイトのスクランブル解除されたデータを有することが必要である。 この状態は、BCLOADと同じ2つの条件が真となるのを待ち、次のことを実行する。 ブロック・サイファにはRe
    g1の内容がロードされ、ブロック・サイファが開始される。 Reg2は、「剰余として空」(Empty As Resid
    ue= EAR)のモードに設定され、ブロック・サイファ・
    キー・レジスタbc keyに、最新のcommon keyがロードされる。 次の状態は、IDLEである。

    【0038】LBCLOADは、スクランブルされたフィールドに対する任意の可能なスクランブルされた剰余を扱うための処理状態である。 この状態は、Reg1が未だ処理されていない新たな8バイトを有しこれらのバイトのすべてが現在のスクランブルされたフィールドからとは限らないときに、IDLEから入られる。 スクランブルされた剰余は、ブロック・サイファを通過するのではなく、Reg2にシリアルに送られる。 ブロック・
    サイファには、データの先のブロックが存在する。 この状態は、2つの条件が真となるのを待つ。 すなわち、第1に、データのシフトインを終了すること、第2に、ブロック・サイファが現在アイドルである、すなわち、先のブロックの暗号解除を終了していることである。 これらが真であるときには、Reg2にはブロック・サイファの内容がロードされ、Reg2は「剰余としてシフト」(Shift As Residue = SAR)のモードに設定される。 次の状態は、IDLEである。

    【0039】次に、キー・ステート・マシン36について説明する。 スクランブル解除プロセスには、共通キー(common key)の使用が必要であり、そのようなキーは多数ある可能性がある。 データ・ストリームに送られた命令バイトIB(図4)は、これらのキーのどれを用いるべきかを判断するのに必要なキー・インデクス情報を含む。 命令バイトがデータ・ストリームに現れるときには、キー・ステート・マシンは、入力インターフェースの制御を行い、キー・ロックアップ動作を実行する。

    【0040】キー・ステート・マシンは、信号key stat
    eに保持され、このマシンの次の状態は、状態next key
    stateに保持される。 デフォルト状態は、IDLEである。 現在の状態がIDLEであり命令バイトが到着する(これは、PIDプロセッサ34によって示される)場合には、次の状態進行は、KEY1であり、次にKEY2であり、次にKEY3である。 KEY1及びKEY2の間には、信号look
    up keyが1にアサートされ、これにより、キーのルックアップが2つのレジスタ値によってアドレシングされる。 これらは、命令バイトから構成されるsc bits及びk
    ey indexである。 キー・ファイルは、キー値を、バスC
    OMMON_KEY上に戻す。 これは、スクランブル解除装置40のキー・ファイルの内部に登録され、ステート・マシン38を制御する。

    【0041】制御ステート・マシン38について述べる。 制御ステート・マシンの特定の構成に関しては、ハードウェア・プログラミング言語VHDLによって書かれたソフトウェア・ルーチンの言葉でマシン構成を定義し、
    コンピュータがそのルーチンを直接的にレイアウト・ダイアグラムの組とハードワイアード・ロジック・ゲートから構成されるチップのためのチップ・マスクに翻訳するのがこの技術分野でのプラクティスであることを理解すべきである。 チップの外観は、図11に示されている。 伝統的な機能ブロック図に対応するようなものは、
    全く作成されないのが通常である。

    【0042】従って、制御ステート・マシンの構成は、
    次に示すルーチンによって定義される。

    【0043】このプロセスは、制御ステート・マシンの次の状態を計算する。 また、このプロセスは、ブロック・サイファをいつ開始させるか、Reg2をいつロードするか、そしてどのモードをReg2のために設定するかをフラグする。

    【0044】 next_state_proc : process (current_state, new_byte_flag, captured, bc_busy, first_block_flag, r1_sc_full_flag, int_r1_shift, r1_full_flag, reg2_active_mode, last_block_flag, int_bc_key, common_key, pack_end_flag, if_empty) begin a_bc_key < = int_bc_key; bc_start < = NO; reg2_load_flag < = NO; a_reg2_active_mode < = reg2_active_mode; exit_state < = NO; case (current_state) is when IDLE = > if (new_byte_flag = YES and captured.sc = SCRAMBLED) then next_state < = GEN; elsif (new_byte_flag = YES and captured.sc = SCRAMBLED) then next_state < = UNSCR; elsif (pack_end_flag = YES) then next_state < = UNSCR; else next_state < = IDLE; end if; when GEN = > if (if_empty = NO) then next_state < = current_state; elsif (r1_full_flag = YES and last_block_flag = YES) then next_state < = LBCLOAD; exit_state < = YES; elsif (r1_sc_full_flag = YES) then if (first_block_flag = YES) then next_state < = FBCLOAD; a_bc_key < = common_key; exit_state < = YES; else next_state < = BCLOAD; exit_state < = YES; end if; else next_state < - IDLE; exit_state < - YES; end if; when USCR = > if (if_empty = NO) then next_state < = current_state; elsif (r1_full_flag = YES and last_block_flag = YES) then next_state < = FBCLOAD; exit_state < = YES; elsif (r1_sc_full_flag = YES and first_block_flag = YES) then next_state < = FBCLOAD; a_bc_key < = common_key; exit_state < = YES; else next_state < = IDLE; exit_state < = YES; end if; when LBCLOAD = > if (int_r1_shift = YES or bc_busy = YES) then next_state < = current_state; else next_state < = IDLE; reg2_load_flag < = YES; a_reg2_active_mode < = SAR; end if; when FBCLOAD = > if (int_r1_shift = YES or bc_busy = YES) then next_state < = current_state; else next_state < = IDLE bc_start < = YES; a_reg2_active_mode < = EAR; end if: when BCLOAD = > if (int_r1_shift = YES or bc_busy = YES) t hen next_state < = current_state; else next_state < = IDLE; bc_start < = YES; reg2_load_flag < = YES; a_reg2_acrtive_mode < = SAS; end if; when others = > next_state < = IDLE; end case; end process next_state_proc; 制御ステート・マシン38も、本質的に同じ構成を有することを理解すべきである。 異なる用語法を用いて表現されているとしても、同等の結果を生じるアルゴリズムの変化があったり、異なるプログラム言語で表現されているとしても、これらの変更は、当業者には明らかであろう。 冒頭の特許請求の範囲は、これらすべての変更も包含するものである。

    【図面の簡単な説明】

    【図1】図1は、ETCIの共通スクランブル仕様によるスクランブル解除の概念を図解している。

    【図2】ETCIの共通スクランブル仕様によるスクランブル解除メカニズムのより詳細な構成である。

    【図3】本発明によるスクランブル解除装置の好適実施例のブロック図である。

    【図4】図3の装置の波形図である。

    【図5】図3の装置の波形図である。

    【図6】本発明によるスクランブル解除装置の好適実施例のより詳細なブロック図である。

    【図7】図3の装置におけるカウンタ及びフラグの動作を示すタイミング図である。

    【図8】図3の装置におけるカウンタ及びフラグの動作を示すタイミング図である。

    【図9】状態の間の変化(トランジション)という観点から制御ステート・マシンの動作を示す図である。

    【図10】種々の状態において行われる作用(アクション)との間の変化という観点から制御ステート・マシンの動作を示す図である。

    【図11】図3の回路を組み入れた集積回路チップの外観である。

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈