(実施の形態の概要)
複数の動作モード間でシームレスにスイッチングする適応型トレリス・デコーダ(24)を実現するために、このトレリス・デコーダは入力インタリーブ化パケット・データ内のコードを検出するコード・シーケンス検出システム(40)含んでいる。コード・シーケンス検出システムは、符号化されたデータの入力とデコードされたデータの出力との間の遅延(レイテンシィ)を減少させる。このコード・シーケンス検出システムは、インタリーブされたトレリス符号化データ・パケット群の形態になっているビデオ・データを処理し、ステート遷移トレリスに従って、先行トレリス・ステートのシーケンスを識別するトレースバック・ネットワーク(47)を含んでいる。このトレースバック・ネットワークは、トレリス・ステート遷移に関連する決定データに応答して、コロケート(配置)されたインタリーブ化パケットの先行ステートを識別する。出力トレリス・デコード化データは識別された先行トレリス・ステートのシーケンスに応答して得られる。このデコーダは、また、複数のトレリス・デコード化データ・シーケンスを出力する。デコード化データ・シーケンスは、ステート・シーケンス・トレリスに従って、遅延された決定データで対応する先行トレリス・ステート・シーケンスを識別することによって得られる。デコード化データ・シーケンスの1つは、先行トレリス・ステートを決定データで識別することにより更新されたポインタで識別される。
以下、図面を参照して、本発明の実施の形態の一例を詳細に説明する。
図1は、例えば、HDTV標準に準拠して符号化されたデータのような、複数のインタリーブ化(interleaved) データストリームを復号(decoding)するための、本発明によるビデオ受信機のトレリス・デコーダ・システムを示す図である。このシステムは、複数のフォーマット(例えば、通常の8レベル・フォーマットおよび部分応答(partial response)15レベル・フォーマット)に前処理されたデータストリームだけでなく、複数のモード(フィルタ処理モードまたは非フィルタ処理モード)の1つにおいて前処理されたデータストリームも、適応的に復号化する。このシステムは、また、フィルタ処理(filtered)データ・モードと非フィルタ処理(non-filtered)データ・モードとの間でシームレス・ビタビ・デコーダ(Viterbi decoder) ・スイッチングを行う。さらに、図1のデコーダ24は、HDTV標準に規定されているような複数の並列トレリス・デコーダではなく、単一の適応型トレリス・デコーダ機能を使用している。
開示されているシステムはHDTV受信システムを例に挙げて説明しているが、これは単なる例示にすぎない。開示されているシステムは、他のタイプのコミュニケーション・システムで使用することも可能である。このシステムは、他のタイプの前処理モードおよび機能、他のタイプのフィルタ機能、および、種々のデータ・インタリービング手法が係りをもつ他のタイプの動作モードでも、また、信号ノイズ耐性(immunity)を向上させる他の方法でも使用することが可能である。
まず、図1を参照して概要を説明すると、デモジュレータ(図示せず)からのトレリス符号化(encoded) 入力データDATA1は同期コントロール・ユニット10に入力される。DATA1は、公知のようにデータ・シンボルのバイナリ・データ・シーケンスの形態になっており、そこでは各シンボルは割り当てられたディジタル値で表されている。シンボルの集合は、公知のように、信号コンステレーション(signal constellation)と呼ばれるポイント集合として複素平面(complex plane) に表される。ユニット10はDATA1内のフィールドおよびセグメント同期信号を検出する。データ・フィールドは複数のセグメントを含んでおり、その各々は複数のデータ・パケットを収容している。これらの同期信号は、セクション10.2.3.9〜10.2.3.13 およびセクション4.2.6 〜4.2.7 においてHDTV標準により定義されている(附属書D)。ユニット10はこれらの検出同期信号を使用してDATA1を並べ替え(re-align)、並べ替えられた出力データをブランチ・メトリック・コンピュータ(branch metric computer - BMC)30とディレイ・ユニット70に供給している。同期コントロール・ユニット10はレジスタ・リセットおよびレジスタ・イネーブル信号R/Eも生成し、これは、パワーオン時、同期外れ(out of sync) 状態が現われたとき、または例えば、グローバル・システム・リセットといった、別の入力に応答して、図1のデコーダ24をリセットし、同期をとるために使用される。ユニット10は、後に説明するように、同期モニタ80からの同期外れ信号に応答してR/E信号も生成する。さらに、入力信号CONFは、図1のシステム・エレメントがフィルタ処理または非フィルタ処理データを復号化するように構成するために使用される。CONF信号は、DATA1がNTSC同一チャネル干渉除去フィルタによってプリ・フィルタ処理されていたかどうかを示している。CONF信号は、図1のエレメントと通信して全システム機能を制御するコントロール・プロセッサ(図面を簡略化するため図示せず)から得ることも、例えば、フィルタの存在を示すソースからのディスクリート信号として得ることも可能である。除去フィルタ(rejection filter)の使用については、図12を参照して以下で詳しく説明する。
ブランチ・メトリック・コンピュータ30は、各受信データ・シンボルごとに値の集合(メトリックス)を計算する。メトリックス(metrics) は、受信したシンボルがシンボル・コンステレーションを含む集合内で他のポイントにどれだけ近接しているかを表している。計算されたメトリックスは、公知のビタビ復号化アルゴリズムを採用しているコード・シーケンス検出システム40に出力される。このコード・シーケンス検出システムは、加算−比較−選択(Add-Compare-Select - ACS)ユニット43およびトレースバック(traceback) ・コントロール・ユニット47を用いて実現されているビタビ復号化システムを例にして説明する。ACSユニット43は、ユニット30からのメトリックスを使用して一連の反復的加算−比較−選択オペレーション(演算)を実行して、決定ビット(decision bits) のシーケンスをトレースバック・コントロール・ユニット47およびユニット30に供給する。ACSユニット43から出力される決定ビットは、ユニット30からのメトリックスに行なった加算−比較−選択オペレーションの結果を示している。トレースバック・ユニット47はユニット43からの決定ビットを使用して、受信したデータ・シンボルに最も近似していて、エンコーダによって符号化されているはずの対応する最適ビット・シーケンスを決定する。さらに、ユニット43からの入力決定ビットはフィルタ処理(filtered)モードで使用されて、ユニット30のアーキテクチャ内のブランチ・メトリック計算信号パスを選択する。同期モニタ80は、ユニット10からの並べ替えられたデータ出力が正しく同期されているかどうかを、ACSユニット43内の加算−比較−選択計算ユニットの1つからのメトリック値を評価することによって決定する。モニタ80は、ユニット10と他の受信機エレメントによって使用される同期乱れ信号を、このメトリック値の評価に基づいて生成する。
トレースバック・ユニット47は、トレリス復号化決定ビットのシーケンスをトレリス・デマッパ(trellis demapper)60とリ・エンコーダ(re-encoder)50に出力する。ユニット50はユニット47からのビット・シーケンスを再符号化し、再符号化ビット・シーケンスをデマッパ60に出力する。さらに、ユニット10からの並べ替えられたデータは、ユニット70によって遅延されて、トレリス・デマッパ60に送られる。トレリス・デマッパ60はユニット47,50および70からの入力データを使用して、送信データ・シンボルを識別すると共に対応するオリジナル符号化データを回復する。デマッパ60からの得られた回復オリジナル・データはアセンブラ90によってデータ・バイトに組み立てられ、必要に応じて他の受信機エレメントに出力される。
次に、図1に示したトレリス・デコーダ24のオペレーションについて詳しく説明する。なお、この点に関して、ビタビ復号化、ブランチ・メトリック計算およびトレリス符号化は公知であり、その概要は、例えば、参考文献「ディジタル・コミュニケーション(Digital Communication) 」、Lee およびMesserschmidt (Kluwer Academic Press, Boston, MA, USA, 1988)に記載されている。
トレリス・デコーダ24へのDATA1入力信号は、図2に示す符号化機能を用いて、HDTV標準(附属書Dのセクション4.2.5および他のセクション)に従って符号化される。図2に示すように、2つの入力データ・ビットX1とX2は3ビットZ2,Z1およびZ0として符号化される。各3ビット・ワードはRの8シンボルの1つに対応している。この目的のために、X2はフィルタ・コンポーネントである加算器100とレジスタ105を備えたプリ・コーダ(pre-coder) 102によって処理され、公知のように符号化ビットZ2が得られる。X1は、加算器115とレジスタ110,120を備えたトレリス・エンコーダ103によって、公知のように2ビットZ1とZ0として符号化される。図2のエンコーダ機能からの出力データ・ワードは、図2のマッパ125に示すように、10進値のデータ・ワードまたはシンボルRのシーケンスにマッピングされる。図2に示したエンコーダのオペレーションは、図3のステート遷移テーブルに示されている。
図2のエンコーダからのデータ出力Rは、8ポイントまたはレベルを有するシンボル・コンステレーションを4コセット(coset) で表わしている。これらのコセット値は、コセットA=(A−,A+)=(−7,+1)、コセットB=(B−,B+)=(−5,+3)、コセットC=(C−,C+)=(−3,+5)、およびコセットD(D−,D+)=(−1,+7)である。このマッピングは任意的である。HDTV標準のセクション5.1 にケーブル・オペレーションに関して言及されている16レベル・マッピングなどの、他のマッピングを使用することも可能である。この形式で符号化されたデータは、変調されて搬送波に乗せられ、HDTV受信機へ伝送される。
図12に示すようなHDTV受信機の状況では、残留側帯波 (Vestigial Side Band - VSB)変調された符号化データは入力プロセッサ・デモジュレータ・ユニット750に入力されているが、これについては後述する。復調されたデータはNTSC同一チャネル干渉除去フィルタ(co-channel interference rejection filter)22とマルチプレクサ(mux) 28を備えたプリ・プロセッサ27によって前処理されてから、トレリス復号化(デコード化)される。図12のプリ・プロセッサ27では、ユニット750からの復調されたデータ、または、NTSC除去フィルタ22によってフィルタ処理されたユニット750からの復調データのどちらかが、CONF信号に応答してmux28によって選択される。mux28からの選択されたデータはトレリス・デコーダ24によって復号化される。トレリス復号化の前にユニット22によって事前にフィルタ処理されなかったデータは、公知のように、通信過程で発生したノイズや干渉によってさらに変更(modify)された8符号化レベルを含むデータ・フォーマットになっている。しかし、トレリス復号化の前にユニット22によって事前にフィルタ処理されたデータは、これも、公知のように、通信過程で発生したノイズや干渉によって変更された15符号化レベルを含むデータ・フォーマットになっている。
除去フィルタ22が使用されるフィルタ処理モード(filtered mode) では、8ステート・トレリス・デコーダが必要であり、フィルタ22が使用されない非フィルタ処理モード(non-filtered mode) では、4ステート・トレリス・デコーダが必要であるが、これは公知である。トレリス・デコーダ・システム24(図1)は、単一の8ステート・トレリス・アーキテクチャを都合よく具現化したものであって、モード間でシームレスなスイッチングを行う。デコーダ24によれば、オプショナルなフィルタ・モードの場合も、例えばプログラム変更や他のタイプの遷移によって起こるデータ中断の場合も、シームレスにスイッチングを行うことができる。デコーダ24から出力された、トレリス復号化およびイントラセグメント(intrasegment:セグメント内)シンボル・デインタリーブ化(deinterleaved) データはユニット760に送られる。デコーダ24からのシンボル・デインタリーブ化データは、次に、出力プロセス760によって別の処理を受けてから、他のHDTV受信機エレメントへ渡され、処理されたあと表示される。なお、これについては後述する。
トレリス・デコーダ24のシームレス・スイッチング能力は、デコーダ・アーキテクチャと個々のデコーダ・エレメントの設計の両方に由来するものである。デコーダ24のアーキテクチャの主要特徴は、デコーダがフィルタ処理あるいは非フィルタ処理されたどちらのデータ入力モードの場合も、単一の8ステートACSユニット(ユニット43)を組み込んでいることである。これにより、ビタビ・デコーダ40が、CONF構成(configuration) 信号のステートに関係なく、フィルタ処理または非フィルタ処理されたデータを透過的に復号化することを可能にしている。本願の発明者は、8ステートACSユニットを使用すると、非フィルタ処理モードの場合に要求される4ステートACSアーキテクチャに似た働きをすることを認識した。これは、BMCユニット30が並列等価計算を行って、複製したブランチ・メトリック値を非フィルタ処理モードでACSユニット43に渡すからである。開示されたACS構造は、入力複製値が与えられたとき所望の4ステートACSアーキテクチャをエミュレートするだけでなく、ACSユニット43がフィルタ処理モードでも、非フィルタ処理モードでも同じように動作することを可能にしている。デコーダ24のもう1つの特徴は、デコーダが入力構成信号CONFに応答する適応型アーキテクチャを採用していることである。CONF信号は、デコーダ24の入力データがNTSC除去フィルタによってフィルタ処理されているかどうかを示している。これらの特徴により、デコーダ24はNTSCフィルタのオプショナルな使い方に関連するフィルタ処理モードと非フィルタ処理モードとの間で、シームレスに動作することを可能にしている。
コントロール・ユニット10は、入力DATA1の中からHDTV標準に準拠(compatible)しているフィールドおよびセグメント同期信号を検出する。このフィールドおよびセグメント同期信号は、トレリス符号化またはプリ符号化されていない。従って、これらの同期信号は、HDTV標準のセクション10.2.3.9および10.3.2-10.3.3.3 に記載されている公知の手法を使用して検出することができる。これらの同期信号はDATA1に含まれるデータをバッファリングして並べ替えるために、さらには、同期情報が除かれた並び替えられたデータ・セグメントをBMCユニット30とディレイ・ユニット70に出力するために、ユニット10内で使用される。このデータは、データをバッファ・レジスタまたは同等のメモリに順番にストアしたあとで、非データ同期パケットが取り除かれた形でレジスタからデータを取り出すことによって並べ替えられる。非データ・パケットはストア前に取り除くことも、ストア後に取り除くことも可能である。ユニット10から出力された符号化並び替えデータは、連続するセグメントの形態になっている。各セグメントは、12個のインタリーブされたデータストリームの連続順次パケット(SP1〜SP12)を収容している。各パケットは、HDTV標準に定義されているように1個の符号化データ・シンボルを収容している。連続セグメントと連続パケットのどちらも、間に介在する(intervening) 同期インターバルを含んでいない。上記とは別のデータ並び替え手法を用いることも可能である。例えば、同期インターバルを検出して、除去する代わりに、デコーダ24は同期インターバルを検出し、その同期インターバルが持続している間に、リセット信号とレジスタ・イネーブル信号を使用してデコーダ24の機能の働きを禁止したり、その機能を既知のステートにホールドしたりすることが可能である。
コントロール・ユニット10はReset (リセット)/Enable (イネーブル)信号R/Eも生成し、この信号はデコーダ24をリセットし、同期をとるために使用される。R/E信号は、パワーオン時と、同期乱れデータ状態を示す同期モニタ80からの信号に応答して生成される。R/E信号は、例えば、グローバル・システム・リセットまたはプログラム変更表示信号などの、外部入力信号に応答して生成することもできる。デコーダ24のアーキテクチャによれば、トレリス復号化オペレーションをR/E信号に応答して再同期化することができる。この再同期化能力により、デコーダ24の単一トレリス復号化機能は、オプショナルなフィルタ・モードの場合も、データ中断が起こった場合も、シームレスなスイッチング、つまり、視聴者に見苦しくないスイッチングを行うことができる。
コントロール・ユニット10はフィルタ処理データ・モードもCONF信号を使用して検出し、このモードは、NTSC除去フィルタが原因で起こったデータ乱れ(data corruption) を補正する別の機能を内蔵している。このデータ乱れは、セグメント同期信号の後に12シンボル・インタバールを生じさせる4つのシンボル・パケット中に発生する。フィルタ処理データ・モードにおいて、同一チャネル除去フィルタは先行(previous)データ・セグメントの符号化データ・シンボルを、現データ・セグメントのコロケート(collocated)された(つまり、同一相対(relative)シンボル・パケット)符号化データ・シンボルから減算する。このオペレーションでは、部分応答(partial response)入力データが得られることになる(HDTV標準のセクション10.2.3.8および10.2.3.9)。しかし、同期インターバル(持続時間が4シンボル)が12シンボル・インターバルだけ4シンボル・パケットに先行するときは、減算が乱れる(corrupted) ことになる。これは、同期値およびコロケートされていないシンボル値が、これらの4シンボル・パケットから減算されるからである。従って、ユニット10は、フィルタ処理データ・モードでは、セグメント同期インターバルの後に12シンボルを生じされる4シンボル・パケットを識別する。さらに、ユニット10は除去フィルタで減算されたストア同期値(stored sync values)を加算して元に戻し、ストアされた正しいシンボル・パケット・データ(セグメント同期に先行する4つのコロケートされたシンボル・パケット)を減算する。このようにして、ユニット10は訂正された部分応答並び替えデータ出力を、フィルタ処理データ・モードにて、ユニット30と70に渡している。部分応答データを訂正する同様な方法は、HDTV標準のセクション10.2.3.9および図10,図12に提案されている。
ブランチ・メトリック・コンピュータ30は、ユニット10から受信した各符号化インタリーブ化並び替えシンボル(interleaved re-aligned symbol) ごとに、値(メトリックス)を計算する。計算されたメトリックスは加算−比較−選択(Add-Compare-Select - ACS)ユニット43とトレースバック・コントロール・ユニット47を内蔵するユニット40によってビタビ復号化される。図6は、図1に示したブランチ・メトリック・コンピュータ(BMC)ユニット30のアーキテクチャを示す図である。図7は、図6に示した個々のBMCユニットのアーキテクチャを示す図であり、BMU1〜BMU8ユニット(ユニット600〜635)の各々を表している。図6のユニットBMU1〜BMU8のS入力端に入力される入力データは、ユニット10からのインタリーブ化シンボル・データとACSユニット43からの入力を含んでいる(図1参照)。このシンボル・データとACS入力(ACSI)は、それぞれユニット700と730への入力として図7に別々に示されている。
図7のBMCユニットは、ユニット10からの符号化されたインタリーブ化シンボル・シーケンスを順次に処理していく。CONF信号によって選択された非フィルタ処理データ・モードにおいて、ユニット10からのデータに含まれる1番目のインタリーブ化シンボルの入力データは加算器700から未変更のままパスされる。このモードでは、マルチプレクサ(mux)705はゼロ値を加算器700に出力する。第1および第2距離コンピュータ710,715は、それぞれ第1および第2コセットからの符号化入力シンボルのユークリッド幾何距離を計算し、2つの対応するメトリック値の出力として、ブランチ・メトリック・データ1とブランチ・メトリック・データ2を出力する。次に示す表1は、各BMUユニット距離コンピュータによって実行されるコセット計算を定義している。例えば、MBU1では、それぞれコセットAとBにどれだけ近接しているかが計算される。また、第1と第2距離コンピュータ710,715は各々が出力ビットCとDをレジスタ740,735を通して出力する。ビットCとDは、入力シンボルが第1と第2コセットのうちの2値のどちらに最も近接しているかを示している。レジスタ740と735の各々は、直列に接続された個別1ビット・レジスタを備え、このレジスタを通してビットCとDがそれぞれ循環的にシフト(桁送り)される。このようにして、ユニット10(図1)からの12インタリーブ化シンボルの各々について、出力ビットCとDがレジスタ740と735から順次に出力されていく。距離コンピュータはルックアップ・テーブルを使用して実現されているのが典型的であるが、例えば、減算、絶対値および比較演算で距離を計算するといったように、他の方法で実現することも可能である。
フィルタ処理データ・オペレーティング・モードにおいて、ユニット10からのデータに含まれる第1インタリーブ化シンボルの入力シンボル・データは、mux725,705介してユニット720から入力されたコセット値W+またはコセット値W−と加算器700によって加算される。加算されたデータは前述したように距離コンピュータ710,715によって処理される。コセット値W+とW−は、先に定義した4つのコセットA〜Dの1つに属している。個々のBMUユニットで使用される特定のW+とW−コセット値は、表1に定義されているように、その特定のBMUユニット用の4つの定義されたコセットから選択される。W+コセットとW−コセットは、ユニット10からの修正された(modified)入力シンボル・データを、距離コンピュータ710と715によって処理できるシンボル・データに復元するように選択される。このオペレーションがフィルタ処理モードで要求されるのは、インタリービングと同一チャネル除去フィルタリングを組み合わせると、前述したように部分応答入力データが得られ、非フィルタ処理モード(HDTV標準のセクション10.2.3.8および10.2.3.9)で生じていた通常(normal)シンボル・データが得られないためである。mux730を介してA,B,ACSIの各信号を入力することにより、W+またはW−のどちらが、修正された入力データと加算器700で加算されるかを、ACSユニット43からのACSI入力決定ビットのステートとビット入力信号AおよびBのステートとに基づいて決定する。ユニット43からのACSI入力決定ビットは、入力Aまたは入力Bが加算器700によって加算されたW+値とW−値のどちらを選択しているかを決定する。例えば、ASCI=1ならば、入力Bがmux730によって選択され、B=1ならば、W+がmux725によって選択され、mux730を介して加算器700で加算される。AとBの入力相互接続は図6に示されており、例えば、ユニットBMU4の場合のAとBは、それぞれBMU5とBMU8から得られる(図6)。図7のBMCユニットのフィルタ処理モードでの、その他のオペレーションは、非フィルタ処理モードに関して説明されているオペレーションと同じである。
図1のBMCユニット30は、ユニット10からの並べ替えられたデータ・セグメントの残余(remaining) インタリーブ化シンボルを同じように順次に処理していく。並べ替えられたデータ・セグメントの処理を完了すると、BMCユニット30は上述してきたプロセスを、ユニット10からの次の並び替えられたデータ・セグメントの第1インタリーブ化データ・シンボル・パケットから始まって、繰り返していく。
個々の同一構造のBMUユニット(BMU1〜BMU8)の相互接続は、図6のBMCアーキテクチャ全体図に示されている。ユニット10からのインタリーブ化シンボル・データはユニットBMU1〜BMU8のS入力端に入力され、図7に例示したユニットに関して上述したように、これらの相互接続されたユニットの各々によって処理される。ユニットBMU1〜BMU8の端子V0とV1に出力された、処理結果のブランチ・メトリック・データ1とブランチ・メトリック・データ2はACSユニット43(図1)に渡される。図1のACSユニット43は、ユニット30のBMUユニットの各々からのブランチ・メトリック・データ1出力とブランチ・メトリック・データ2出力を使用して一連の反復的加算−比較−選択オペレーション(演算)を実行する。
図9は、図1に示したユニット43のACSアーキテクチャ全体に含まれる個別ACSユニット相互間の接続を示す図である。図9に示すように、単一の8ステートACSアーキテクチャが、フィルタ処理データ入力モードと非フィルタ処理データ入力モードの両方で使用される。図9のACSアーキテクチャは、図5のフィルタ処理モードの8ステート遷移図(diagram) を実行する。各ACSユニット(ユニット900〜935)はトレリス・ステート (000...111)と関連づけられている。図4の4ステート遷移図は、非フィルタ処理モードの場合の等価トレリス・ステート遷移を示している。図5のステート遷移図に示されているステートを整理(re-order)すると、図9に示す相互接続はもっと分かりやすくなる。
図8は、図9に示したACSユニット(ユニット900〜935)の各々を代表する個別ACSユニットのアーキテクチャを示す図である。図9のACSアーキテクチャは、ユニット30(図1)からの個別インタリーブ化データ・シンボルのブランチ・メトリック・データを順次に処理していく。図8の加算器805と810は、他のACSユニットから得られた入力パス・メトリック・データ1および入力パス・メトリック・データ2を、BMUユニット30(図1)からのインタリーブ化データ・シンボルのブランチ・メトリック・データ1出力およびブランチ・メトリック・データ2出力と加算する。ユニット805と810から結果として得られた2つのデータ和は、ユニット815によって比較される。2つの和のどちらが小さいかを示している単一決定ビット出力は、ユニット815によってレジスタ800とmux820に出力される。mux820は、ユニット805と810の出力から、小さい方の和を選択する。この選択された和は、レジスタ825の出力端から出力パス・メトリック・データとして現れる。
レジスタ800は12個の直列接続された個別1ビット・レジスタから構成され、これらのレジスタを通してユニット815からの決定ビット出力は循環的にシフトされる。ACSI出力としてユニット30(図1)に渡される決定ビット出力は、レジスタ800による12サイクルの遅延に続いている。トレースバック・コントロール・ユニット47(図1)に渡される決定ビット出力は、レジスタ800による単一サイクル遅延に続いている。このようにして、12インタリーブ化シンボルの各々に関連する各単一決定ビット出力は、レジスタ800から順次に出力されていく。同様に、レジスタ825は直列接続された個別レジスタから構成され、これらのレジスタを通してユニット820からの出力パス・メトリック・データは循環的にシフトされる。このようにして、12インタリーブ化シンボルの各々に関連する出力パス・メトリック・データはレジスタ825から順次に出力される。ユニット825内の直列接続されたレジスタのビット幅は、ACSユニットの処理解像度要求に従って選択される。
レジスタ825からの出力パス・メトリック・データは図9の相互接続図に従って2つの他のACSユニットに渡される。例えば、図9のACSユニット900からの出力パス・メトリック・データは、ACSユニット910と915の入力パス・メトリック・データ1,V2の入力に供給される。同様に、図8の加算器805と810に渡される入力パス・メトリック・データ1と入力パス・メトリック・データ2は、図9の相互接続図に従って、2つの他のACSユニットに与えられる。例えば、ACSユニット900の入力パス・メトリック・データ1,V2の入力はACSユニット905によって与えられ、ACSユニット900の入力パス・メトリック・データ2,V3の入力はACSユニット925によって与えられる。ユニット30(図1)からのメトリックに関して一連の加算−比較−選択演算の結果を示す決定ビットのシーケンスは、単一サイクルの遅延に続いて図8のレジスタ800からトレースバック・コントロール・ユニット47に渡され、また、12サイクルの遅延に続いてユニット30(図1)に渡される。ユニット43の8個のACSユニットの各々からは、一連の決定ビットがユニット47と30に与えられる。8個の決定ビットは、ユニット10から与えられたインタリーブ化シンボル・パケットの各々ごとに、ユニット43からユニット47および30へ循環的に並列形式で出力されていく。BMCユニット30およびACSユニット43(図1)は、次の表2に示すように相互接続されている。ユニット30と43は、それぞれ、図6と図9に示されている。
非フィルタ処理モードにおいて、受信された非フィルタ処理シンボルが与えれているとき、離散(distinct)ブランチ・メトリック値は最大4個ある。また、このモードでは、BMCユニット30は16回の並列計算を行って、16個のブランチ・メトリック値をACSユニット43に渡し、そして、1つの計算が4回繰り返される。従って、ユニット43に渡される16個の値は4個の離散ブランチ・メトリック値の複製(replication) を含んでいる。ユニット43に入力されるブランチ・メトリック値を反復することにより、ACSユニット43(図9)のアーキテクチャが図4の所望の4ステートACSトレリスをエミュレートすることを可能にしている。なお、実際には、ブランチ・メトリック値がBMCユニット30によって反復されるのは、システムにノイズがあるため、完全ではなく、実質的なものである。
フィルタ処理モードでは、BMCユニット30(図1)は各入力シンボルごとに最大15個の離散ブランチ・メトリック値を生成し、図5の8ステートACSトレリスに従って動作する。フィルタ処理入力モードと非フィルタ処理入力モードのどちらにも、図9に示すように、単一の8ステートACSアーキテクチャを使用しているので、トレリス・デコーダ24をモード間でシームレスにかつ透過的(transparent) に遷移することが容易である。
また、ACSユニット(図9のユニット900〜935)の1つのレジスタ825(図8)から出力される出力パス・メトリック・データの最上位ビット(Most Significant Bit - MSB)は、同期モニタ80(図1)に供給される。同期モニタ80は、プログラムされたタイム・インターバル中にレジスタ825から出力されるMSBの中で、反転(inversion) の個数をカウントし、そのカウント値とプログラムされたしきい値とを比較する。プログラムされた値はコントロール・プロセッサ(図示せず)から得ることも、あるいはユニット80にストアしておくことも可能である。もし、そのカウント値がしきい値を越えていれば、同期乱れ(out-of-sync) 表示信号が生成され、同期コントロール・ユニット10(図1)に供給される。ユニット80から同期乱れ(out-of-sync) 信号を受信すると、ユニット10はリセット信号をユニット80へ送り、別の同期乱れ状態を検出できるように同期モニタをリセットする。モニタ80は、異なるパラメータに応答するように構成することも可能である。
ACSユニット43のアーキテクチャは、インタリーブ化データ・シンボルとACSユニット・トレリス・ステートとによって編成された決定ビット・データをトレースバック・ユニット47(図1)へ送る。トレースバック・ユニット47は、ユニット10から与えられた符号化インタリーブ化シンボルの各々について、ユニット43の対応する8つのACSユニットから8個の決定ビット(B1〜B8、1つの8ビット・ワード)を並列に循環的に受信する。1つの8ビット・ワードはインタリーブ化シンボルごとに循環的に受信される。受信された決定ワードは、ユニット43の対応する8つのACSユニットからの8個の決定ビット・シーケンスを表している。ユニット47は、個別インタリーブ化データ・シンボルに関連するユニット43からの各決定ワードを順次に処理していく。決定ワードはユニット47によって使用され、送信側で先に符号化されたインタリーブ化シンボル・シーケンスを表している、最も近似しているZ1ビット・シーケンスが得られる。各決定ビットは、2つの取り得るステート遷移パスのどちらがACSユニット・ステートに通じているかを示している。
図10は、トレースバック・コントロール・ユニット47(図1)のアーキテクチャを示している。以下、トレースバック・ユニット47のオペレーションを、ACSユニット43から出力される符号化インタリーブ化シンボルのシーケンスに関連する決定ワードについて説明する。図10のトレースバック・アーキテクチャは、図15に示すトレリス復号化プロセスを実行する。図15のステップ443において、ステップ440でスタートしたあと、ACSユニット43(図1)からの決定ワードは8個の決定ビット・シーケンスの形でACSユニット43(図1)から循環的に入力される。入力決定ワードはフォワードトレース・ユニット160(図10)に供給され、ステップ445で、バッファ・メモリ140(図10)にストアされて、遅延される。ステップ450で、図10のトレースバック選択ユニット145は、ユニット140にストアされた決定ビット・シーケンスから8個のトレリス復号化ビット・シーケンスを取り出す。これらのトレリス復号化ビット・シーケンスは、符号化インタリーブ化データ・シンボルに対応する、最も近似した符号化Z1ビット・シーケンスの候補となるものである。
図15のステップ450において、ユニット145(図10)は、トレースバック・プロセスでステート遷移トレリス・パスを決定することにより、候補となる復号化Z1ビット・シーケンスを取り出す。このプロセスで、初期先行トレリス・ステートは、8個の決定ビット入力シーケンスの1つの現在ステートについて識別される。この初期ステートは、ACSユニット43(図1)からの入力シーケンス内の決定ビットを、先行遷移パスのインジケータとして使用することによって識別される。この初期先行ステートから、他の先行ステートは、ACSユニット43からの決定ビットを使用してトレリス・ステート遷移図を逆方向にトラバースすることによって識別され、これは先行ステートのシーケンスが識別されるまで続けられる。この先行ステート・シーケンスから、対応するトレリス復号化ビット・シーケンスが決定される。これらのステップは、バッファ140(図10)にストアされた残りの決定ビット・シーケンスの各々ごとに繰り返される。このトレースバック・プロセスの背景にある理論は公知であり、G. Feygin 他著「ビタビ・デコーダにおけるサバイバ・シーケンス・メモリ管理のアーキテクチャ上のトレードオフ(Architectural Tradeoffs for Survivor Sequence Memory Management in Viterbi Decoders) 」(発行 IEEE Transactions on Communications, vol. 41, No. 3, March 1993) に、他の異なるトレースバック手法と一緒に説明されている。
上述したトレースバック・プロセスは、トレースバックの深さである、あらかじめ決めた深さTまで実行されて、あらかじめ決めた個数の先行ステートを識別する。この公知の理論によれば、トレーバックのインターバルTは、実際には、マージされた(merged)または収束された(converged) ステートを識別するのに十分なトレースバックのインターバルとして採用されている(Lee および Mseerschmidt 、セクション7.4.3 )。マージされたステート(merged state)とは、任意の初期先行トレリス・ステートからのトレースバックに続いて到達する可能性のあるステートのことである。マージされたステートは、真の符号化Z1データとなる最大の可能性をもつデータ・シーケンスを識別する。従って、マージされたステートは、候補シーケンスから出力されるトレリス復号化データ・シーケンスを示している。トレースバック・プロセスは、この実施の形態では、エポック(Epoch) と呼ばれ、T/2に等しいトレースバック・インターバルについて、2ステージで実行される。このエポックを選択するか、サブトレースバック・インターバルを選択するかは任意であり、システム設計者の選択事項である。
候補となる復号化トレリス・シーケンスを識別するために、トレースバックは、連続する並び替えデータ・セグメントのコロケートされたインタリーブ化シンボル・パケットについて行われる。12個のインタリーブ化シンボル・パケットの1つ、例えば、パケット7(SP7)のトレースバックは、対応する先行の(この例では、SP7)、インタリーブ化シンボル・パケットに含まれるシンボル・データの先行ステートを識別するために行われる。
単一トレリス・パス上のトレースバックは公知であるが、開示されているシステムでは、インタリーブ化データと複数の候補決定ビット・シーケンスのトレースバックを含むように、トレースバック・プロセスが拡張されているという利点がある。この拡張されたトレースバック・プロセスは、図10のユニット145によって実現されている図13の方法を使用して、エポック単位でエポックに対して行われる。図13のステップ645では、ステップ640でスタートしたあとに続いて、トレースバック選択ユニット145内の内部記憶レジスタは、コントロール・ユニット165(図10)からの制御信号に応答してエポック・データ境界で初期化される。インタリーブ化シンボル・パケット、例えば、SP1の決定ワードは、ステップ650でバッファ140(図10)から循環的に入力される。先行ステートは、ステップ650で入力された決定ワードの決定ビット、例えば、B1を使用して、前述したトレースバック・プロセスを適用することによってステップ655で現ステートから識別される。このプロセスの主要特徴は、先行ステートが連続データ・セグメントのコロケートされたインタリーブ化パケットのシンボル・データについて識別(identify)されることである。例えば、データ・セグメントの7番目のインタリーブ化シンボル・パケット(SP7)の場合は、対応する7番目のインタリーブ化シンボル・パケット決定ビットが使用されて、先行ステートが特定される。ステップ655において、インタリーブ化シンボルの識別された先行ステートに対応するトレリス復号化ビットはユニット145(図10)によってメモリ150にストアされる。
ステップ660では、ステップ655ついて、インタリーブ化シンボルの8トレリス復号化ビットがメモリ150(図10)にストアされるまで、入力決定ワードの残りの決定ビット (この例では、B2〜B8)の各々について繰り返される。ステップ665において、ステップ650〜660については、並び替えられたデータ・セグメントの残りの12個のインタリーブ化シンボル(この例では、SP2〜SP12)の各々について繰り返される。同様に、ステップ650〜665については、エポック・インターバルを構成する並び替えデータ・セグメントの数だけステップ670で繰り返される。ステップ675において、入力インタリーブ化シンボルについて結果として生じた8個の候補トレリス復号化ビット・シーケンスは、ユニット145から図10のメモリ150へ送られる。1つのエポック・インターバルに対するトレースバック・プロセスの上記繰返しは図13のステップ680で終了し、図15に示した包括プロセスのステップ450が完了する。
図15のステップ460および465において、フォワード・トレース・ユニット160(図10)は、符号化されて受信側へ送信されたシーケンスに最も近似して対応している8候補シーケンスに含まれるトレリス復号化ビット・シーケンスを識別する。ステップ470において、その結果として識別されたトレリス復号化シーケンスは、遅延されたあとで、トレース・ユニット160からの選択信号に応答してメモリ150からmux155経由でトレリス・デマッパ60とリ・エンコーダ50(図1)へ送られる。
図15のステップ460および465において、トレース・ユニット160はマージされたステートと、送信されたインタリーブ化シンボル・パケット・シーケンスに最も近似して対応しているトレリス復号化ビット・シーケンスを識別する。トレース・ユニット160は、図14に示すフォワード・トレース・プロセスを使用して、エポックのトレリス復号化ビット・シーケンスをエポック単位で識別する。フォワード・トレース手法はデータ復号化遅延(レイテンシィ)を減少するコスト効率的な方法である。
図15のステップ460において、図14のフォワードトレース・プロセスは入力データのエポック・インターバルの期間に行われ、8データ・シーケンスの各々について2つのポインタ、pointer1とpointer2を更新する。これらのポインタは、トレリス復号化ビット・シーケンスを識別するために使用される。
図14のステップ843において、ステップ840でスタートしたあとに続いて、pointer2の8個のインジケータは対応するpointer1のインジケータ値で更新される。これらのポインタはユニット160内にストアされる。ステップ845において、ユニット160内の内部記憶レジスタは、コントロール・ユニット165(図10)からの制御信号に応答してエポック・データ境界で初期化される。コントロール・ユニット165はユニット10(図10)からのR/E入力信号に応答して制御信号を出力し、エポック境界でトレースを開始するように両方のトレース・ユニット145と160を同期させる。インタリーブ化シンボル・パケット、例えば、SP1の非遅延決定ワードは、ステップ850でACSユニット43(図1)から循環的に入力される。
ステップ855において、3ステージ・プロシージャは、入力決定ワードの8データ・シーケンスに関連づけられた8個の別々のpointer1インジケータの1つを更新するために使用される。入力された非遅延ワードの決定ビット、例えば、B1は、前述したトレースバック・プロセスを適用することによって、現ステートから先行ステートを識別するために使用される。先行ステートは、ユニット145のトレースバック・プロセスで説明したように先行データ・セグメントのコロケートされたインタリーブ化シンボル・パケット(この例では、SP1)のシンボル・パケット・データについて識別される。識別された先行ステートは、入力決定ワードの8データ・シーケンスに関連づけられた8個の別々のpointer1インジケータの1つを選択するために使用される。インタリーブ化シンボル(この例では、SP1)の選択されたpointer1で示されたステートは、決定ビット・シーケンス(この例では、B1のシーケンス)に関連するpointer1インジケータにストアされ、以前のpointer1の内容はオーバライトされる。
ステップ860では、ステップ855を繰り返す。すなわち、8データ・シーケンスの個々のpointer1インジケータがインタリーブ化シンボル(SP1)についてユニット160にストアされるまで、入力決定ワード(この例では、B2〜B8)の残りの決定ビットの各々について繰り返される。ステップ865において、ステップ850〜860は12個のシンボル並び替えデータ・セグメントの残りのインタリーブ化シンボル(この例では、シンボルSP2〜SP12)について繰り返される。同様に、ステップ870は、ステップ850〜865を繰り返す。すなわち、エポック・インターバル(T/2)を構成する個数の並び替えデータ・セグメントが処理されるまで繰り返される。フォワード・トレース・プロセスの上記繰返しは図14のステップ880で終了し、図15に示した包括プロセスのステップ460が完了する。
図15のステップ465において、更新されたポインタ、pointer1とpointer2はマージされたステートを識別するために使用される。トレースバック・インターバルTに続いて、定常状態で動作しているとき、特定のデータ・シーケンスのpointer1とpointer2は、どちらも、1エポック前に現れた先行ステートを示している。pointer1は現エポック・ポインタであり、pointer2は直前のエポック・ポインタである。pointer1とpointer2は一緒になって、1トレースバック・インターバルだけ戻って収束またはマージされた先行ステートを指している。8データ・セグメントすべてのpointer1とpointer2は、エラーがなければ、同一のマージされたステートを示しているので、従って、メモリ150からリリースするために同じデータ・シーケンスを識別する。8データ・シーケンスのpointer1インジケータの1つが選択され、8個のpointer2インジケータの1つを識別するために使用される。この識別されたpointer2インジケータは、マージされたステートを識別するために使用される。従って、8個のpointer1インジケータの1つと8個のpointer2インジケータの1つとが一緒に使用されて識別が行われる。但し、これらのポインタを平均化するか、多数またはその他を基準にして選択すると、マージされたステート選択の信頼度を向上させることも可能である。
ステップ465で決定されたマージされたステートは、ステップ470で使用され、8個の候補トレリス復号化ビット・シーケンスのどれがmux155(図10)を経由してメモリ150からリリースされるかを示す。選択された符号化データ・シーケンスは、送信された符号化インタリーブ化シンボル・シーケンスに最も近似して対応しているデータである。
結果として決定されたトレリス復号化シーケンスは、遅延されたあとで、トレース・ユニット160からの選択信号に応答して、メモリ150によって、トレリス・デマッパ60とリ・エンコーダ50(図1)に向けてmux155(図10)を経由してリリースされる。mux155からトレリス・デマッパ60とリ・エンコーダ50(図1)に出力された解放(released)トレリス復号化シーケンスは、図2のエンコーダによって符号化されたインタリーブ化シンボルのX1ビットのオリジナル・シーケンスを再現する。なお、X1ビット・シーケンスは、図2に示すようにZ1ビット・シーケンスに等しくなっていることは勿論である。図15のプロセスのステップは、利用可能な入力決定データが存在する限り間繰り返される。存在しなければ、プロセスはステップ480で終了する。
ユニット50(図1)は、ユニット47(および図10のmux155)からのインタリーブ化Z1ビット・シーケンスを順次に再符号化して、再符号化Z0ビット・シーケンスをデマッパ60へ与える。Z1からZ0を得るために使用される再符号化機能は、図2に示すように送信前にエンコーダで行われる等価機能を複製する。さらに、ユニット10からの並び替えられたインタリーブ化シンボル・データは、ユニット70によって遅延され、ユニット47の出力と同期がとられて、トレリス・デマッパ60へ送られる。
図11はトレリス・デマッパ60(図1)のアーキテクチャを示す図である。トレリス・デマッパ60はユニット47,50および70(図1)からの同期化インタリーブ化データ・シーケンスを順次に処理していく。CONF信号によって選択された非フィルタ処理データ・モードにおいて、ユニット70からの第1インタリーブ化シンボルの入力遅延シンボル・データは図11に示したデマッパ・ユニットの加算器950によって未変更のまま通過される。このモードでは、mux955はゼロ値を出力する。
第1インタリーブ化シンボルについてのユニット50と70からの入力再符号化データZ1とZ0は、図2のシンボル・マッパ・テーブル125に示すように、前述した4つのコセットの1つをユニークに定義している。例えば、Z1=1、Z0=0はコセット・ポイントC(−3, +5)を定義している。図11のルックアップ・テーブル機能960は、加算器950から出力された入力シンボルを、入力Z1とZ0で定義されたコセット内の2コンステレーション・ポイントの各々と比較する。受信された遅延シンボル・ポイントに最も近いコンステレーション・ポイントが決定され、このコンステレーション・ポイントのZ2値が第1インタリーブ化シンボルの復号化Z2値としてポスト・コーダ(post-coder)977に与えられる。ポスト・コーダ977は加算器980とレジスタ975を使用して、図2のプリ・コーダ102とは逆の働きをし、Z2値を復号化して第1インタリーブ化シンボルのX2ビットを得る。デマッパ60は、ユニット47と50からの同期化関連シンボル・データを使用して、ユニット70から受信された各インタリーブ化シンボル・パケットごとにこのプロセスを繰り返す。このようにして、デコーダ24に入力されたインタリーブ化シンボルに対応する、ユニット70からのインタリーブ化シンボルのX2ビット・シーケンスが加算器980から順次に出力されていく。
フィルタ処理データ・モードでは、ユニット70(図1)からの第1インタリーブ化シンボルの、変更・遅延されたシンボル・パケット・データは図11の加算器950によって、mux955および970経由でユニット985から供給された8コンステレーション・ポイント(シンボル)値の1つと加算される。加算されたデータは、前述したようにルックアップ・テーブル960によって処理される。ユニット985から選択されたコンステレーション・ポイント値が選択されて、加算器950に入力されたシンボル・データを、ユニット960によって処理できるシンボル・データに復元する。このオペレーションがフィルタ処理モードで要求されるのは、前述したように、インタリービングと除去フィルタリングを併用すると、部分応答入力データが得られるからである(HDTV標準のセクション10.2.3.9)。mux955を介してmux970は、レジスタ965によって遅延されたZ0とZ1データのステートおよびレジスタ965によって遅延された機能960から出力されたZ2のステートに基づいて、コンステレーション・ポイント(A−...D+)を選択する。その他の場合は、デマッパ60のフィルタ処理モード・オペレーションは非フィルタ処理モードに関して説明したものと同じである。
デマッパ60(図1)は、その結果として回復したX2データを同期化X1データと一緒にアセンブラ90へ送る。デコーダ24に入力された各インタリーブ化データ・シンボルに対応するX1ビットとX2ビットは、ユニット60からアセンブラ90へ順次に渡されていく。X1とX2ビットの各ペアは、シンボル・パケットのトレリス復号化データである。アセンブラ90は、連続データ・セグメントのコロケートされたインタリーブ化パケットについて4つのX1、X2ビット・ペアを、1つの8ビット・バイトにアセンブルする。ユニット90は、12個のインタリーブ化シンボル・パケットの各々ごとに、このようにしてデータ・バイトをアセンブルしていく。ユニット90はこれらのバイトを、12個のインタリーブ化シンボル・パケット・ストリームの各々ごとに、バイト単位で(on a byte by byte basis) 出力していく。このようにして、ユニット90はイントラセグメント・シンボルのデインタリーブされた出力データを出力し、他の受信機エレメントで使用できるようにする。
図12に一部だけが示されているHDTV受信システムの例では、符号化データはプロセッサおよびデモジュレータ750によって処理され、そして復調される。ユニット750は入力チャネル・チューナ、RF増幅器、IF(中間周波数)増幅器およびミキサ・ステージを具備し、変調された信号を以後の処理に適したより低い周波数バンドにダウン・コンバートする。入力プロセッサ750は、また、自動利得制御回路、アナログ・ディジタル・コンバータ、タイミングおよび搬送波回復回路も備えている。受信された信号は、ユニット750内の搬送波回復回路によってベースバンドに復調される。この搬送波回復回路は、イコライザ(等化器)、ローテータ、スライサおよび位相誤差検出回路のほかに、公知の如く、イコライザとローテータの動作を制御する位相コントローラを用いることも可能である。
復調されたデータまたはNTSC除去フィルタ22によって処理された復調されたデータのどちらかが、CONF信号に応答してmux28によって選択され、本発明に従ってデコーダ24により復号化される。トレリス復号化され、そしてイントラセグメント・シンボル・デインタリーブされたデータはデコーダ24から出力されて、ユニット760へ送られる。デコーダ24からのシンボル・デインタリーブ化データは、出力プロセッサ760によってコンボルーショナルにインターセグメント・デインタリーブされ、リード・ソロモン復号化されてから、以後の処理と表示のために他のHDTV受信機エレメントに送られる。トレリス・コーディングに関連したイントラセグメント・デインタリービング・プロセスは独特のもので、インターセグメント・デインタリービング・プロセス(HDTV標準のセクション10.2.3.9および10.2.3.10 )とは異なるものである。ユニット750と760に関して説明した機能は、例えば、冒頭に引用したLee およびMesserschmidt の文献に記載されている。
図1から図15までに関連して説明してきたアーキテクチャは、これだけに限定されるものではない。本発明の原理によれば、他のアーキテクチャを採用しても、同じ目標を達成することが可能である。例えば、単一のトレリス・デコーダを使用してN個の入力データ・パケットを復号化することも、あるいは、特定システムの要件に応じて2つ以上のトレリス・デコーダ(たとえば、N個より少ない)を使用することも可能である。さらに、トレリス遷移ステート数が異なるごとに、異なるアーキテクチャを採用することも可能である。本発明の原理は上述した8ステート・アーキテクチャに限定されるものではない。さらに、さまざまなアーキテクチャのエレメントの機能は、全体的にも、部分的にも、マイクロプロセッサのプログラムされた命令で実現することが可能である。