以下、図面を参照して本発明の実施形態を詳細に説明する。
図1は、トランスポート・プロセッサのデータ・パック器12およびパック・データワード制御器10のブロック図である。前述のように、トランスポート・プロセッサの主な機能は、可変長のコードワードデータを固定長(例えば32ビット)データ・ワードにパックすることである。累積された30個のデータ・ワードは、データ・パケットを構成し、最後にそのデータ・パケットの前にトランスポート・ヘッダが付加される。図19に関して後述するように、そのようなトランスポート・プロセッサは、MPEG形式の圧縮ビデオ信号を処理するシステムに用いられる。MPEG形式のフォーマット化および処理の別の特徴については、図20、図21および図22に関連して後述する。
制御器10は、パケット整列フラグ(Packet Alignment Flag)PAFとの関係で長さ(Length)のデータ・ワードの累積値を監視し、可変長コードワードのストリームから組み立てられた32ビットのデータ・ワードの完全性(完成)960ビット長データ・パケットの完全性(完成)とを確認する。長さデータ Length は、可変長コードワードの長さに合致する並列6ビットのワードであって、可変長コードワードの長さを規定している。長さのワードLengthの2進値は、トランスポート(伝送)されるMPEG形式のコードワードを実際に表す可変長コードワードの長さに一致するビット数を示す。各可変長のコードワードは、32ビット幅のバス上に現れ、MPEG形式のコードを表す可変数の有効ビット(1〜32)を有する。
PAFは、入力プロセッサ14によって発生されて、画面群(Group of Pictures)の開始点におけるMPEG形“I”(イントラ符号化)フレームのピクチャ開始コードワードPS(Picture Start codeword)の1コードワード前に出現するようになっている。PAFは、ディジタル比較器によってIフレーム・ピクチャ開始コードワードPSの存在を検出して発生される。また、入力プロセッサ14のユニットは、ピクチャ開始コードワードPSおよびPAFを処理するための信号遅延回路を含んでおり、これによってPAFがIフレーム・ピクチャ開始コードワードPSの直前のコードワードのクロック周期に発生するようになっている。また、その遅延回路によって、パック・ワード制御器10およびデータ・パック器12の各ユニットに供給される出力信号が確実に適正な時間的同期関係になるようにする。
ワードアドレス Word Address がデータ・パック器12に送られ、データ・パック器12はパックする可変長コードワードVLCを受け取って、入力可変長コードワードの適正な連結を確実に行う。また、ワード制御信号 Word Control がパック器12に送られて、短いワードの存在を示し、パケット中の最終ワードをマーク(表示)して、関連するトランスポート・ヘッダが付加された適正な整列位置の30個のパック・データワードのシーケンス(列)が得られるようにする。制御器10は、長さワード Length の2進値を累積することによりパケットの完全化(完成)を追跡・監視する。各長さの値は、関連するコードワード中の有効ビット数を表す。1つのパケットは、960ビットが累積されたときに完全(完成された状態)となる。この計数値(カウント)の開始点設定または初期化がPAFの出現によって行われ、PAFは制御器10内の内部アキュムレータをリセットするようにする。
データ・パック器12は32ビットの並列データバスを介して可変長コードワード(VLC)を受け取る。有効ビットは、制御器10から供給される監視制御信号に従って32ビットのワードにパックされる。また、最終的なMPEG形ビット直列伝送順序を受け入れるように連結が行われる。データ・パック器12のユニットから供給されるパック・データは可変ワード・レート(速度)でデータおよびヘッダ合成器15の入力FIFOデータ・バッファ(データFIFO)16に転送される。また、合成器15はデータ・パック器12からデータ書き込みイネーブル信号 Data Write Enable を受け取り、データ・パック器12は合成器15中のFIFOデータ・バッファ16をイネーブルしてFIFOデータ・バッファ16に有効データが書き込まれるようにする。データ・パケットは、PAFが強制的に短いパケットを指示しない限りは、そのような30個のワードの転送が完了したときにパケット完全の状態となる。パック器12により供給される最終ワード・インジケータ Last Word Indicator は、この例における通常のパケット中の30番目のワードをマークし、またはPAFの出現によって短縮されるパケット中の最終ワードをマークする。
処理可能なパック・データワードが存在する限り、パック・データワードはデータ/ヘッダ合成器15に転送される。同様に、処理可能なトランスポート・ヘッダが存在する限り、トランスポート・ヘッダはヘッダ発生器18から合成器15の入力FIFOヘッダ・バッファ(ヘッダFIFO)17に送られる。ヘッダ発生器18がヘッダを形成するのに使用する情報は、入力プロセッサ14およびワード制御器10から得られる。ヘッダ書き込みイネーブル信号 Header Write Enable は処理可能なヘッダが存在することを示し、ヘッダがFIFO17に書き込まれるようにFIFO17をイネーブルする。合成器15は、各パック・データ・ペイロードの前にヘッダを付加し、その結果得られるトランスポート・パケットまたはブロックを図19に示されるように出力レートバッハに送る。また、合成器15は、パック・データワードまたはトランスポート・ヘッダが送出レディ(送出可能)状態になっていることを示す出力データレディ Data Ready 信号を供給する。ヘッダ・インジケータ信号 Header Indicator は、ヘッダが送出されるときのクロック周期を示す。この信号は、トランスポート・パケット境界のマーカー (marker)として機能して、前進型誤り訂正 (Forward Error Correction:FEC)等のその後のオペレーションがトランスポート・セルに適正に供給されるようにする。
各ヘッダは、そのヘッダに関連するデータ・パケット中のデータに関する情報を含んでいる。ヘッダ情報によって、受信機におけるデータ組立ておよび同期化が行われる。ヘッダ情報には、例えばサービス・タイプ(例、オーディオ、ビデオ、データ)、フレーム・タイプ、フレーム番号およびスライス番号などの情報が含まれている。この種のヘッダおよびその処理については、アカンポーラ氏外の米国特許第5,168,356号においてMPEG形信号符号化を用いるHDTVディジタル信号処理システムとの関係で記載されている。
データ・パケットは、この例においては、30個未満のパック・データワード、即ち1〜29個のワードを含んでいることがある。入力プロセッサ14により供給されるPAFは、図20乃至図22との関連で後述するように、GOPが開始するときにイントラ符号化Iフレームのピクチャ開始コードワードPSの直前に出現する。イントラ符号化フレーム用のピクチャ開始コードワードPSによっていつも新パケットが開始され、その直ぐ前を先行するPAFがデータ・パケットの終了と新パケットの開始を示す。このピクチャ開始コードワードPSによるパケット整列または同期(alignment)は、受信機におけるデータストリームの高速捕捉を行うのに役立つ。PAFが固定長ワードの形成中に発生すると、短縮データ・パケットが形成されることになる。組立て中のパック・ワードにおける残りのビットにはデータ・パック器12において複数の“ゼロ値ビット“(1〜31)が充填される。さらに、データ・パケット中の残りのワードにも合成器15において同様に複数の“ゼロ値ワード”(1〜29)が充填され、トランスポート・パケットのサイズが所定長に維持される。このような“ゼロワード・フィル ”(充足ワード)の要求は、30個のデータ・ワードが合成器15に転送されてしまう前に最終ワード・インジケータLast Word Indicator の発生によって示される。
データ・パケット中の最終ワードLast Word の適正な識別を行うことは重要である。最終ワードLast Word によって、これに関連するトランスポート・ヘッダを用いて組み立てられたパケットが適正に記録(収容)されていることが確認される。また、最終ワードLast Word は、MPEG形式の画面群GOPの境界(即ち、イントラ符号化フレーム)に充填されたパケットの存在を示す。GOPの境界は、例えばチャンネル変更の後のテレビジョン受像機/復合器における再同期化を行うために重要である。最終ワードLast Word を決定することは決して些細なことではない。例えばパケットがいつ完全になったか(完成したか)、および完全になったときは次のパケットへのデータ・セグメント化またはデータ区分化(segment) が行われているか否か等のパケットの状態の特定情報に応じて最終ワードLast Word の決定が行われる。最終ワードには、最終ワードLast Word が現在のクロック期間中に形成されたワードである場合の状態と、最終ワードLast Word が次のクロック期間中に形成されるべきワードである場合の状態とが存在する。
最終ワードLast Word の形成に関するいくつかの具体例を次ぎに挙げる。パケットが完全になったときにPAFが存在しなければ、最終ワード(この例では30番目のワード)は最後のワードであり、最終ワード・インジケータ Last Word Indicator によって最終ワードであることがマークされる。これは“真”の最終ワード Last Word の例である。PAFは、パケットが次のパケットにセグメント化すべきビットを持っていないとき、即ちワードが正確にパケット境界で終了したときに発生する。完全化されたパケットの最終ワードは、実際に最終ワードであるので、最終ワードLast Word とマークされる。これは“真“の最終ワード Last Word の別の例である。また、PAFは、残りの数ビットが次のパケットの1番目のワードにセグメント化される状態でパケットが完全になったときにも発生する。この場合は、2個の連続する最終ワード Last Word が形成され、そのようにマークされる。まず完全になったパケットの最終ワードが最終 Last (“真の最終ワードLast Word )とマークされる。次いで、次のパケットの1番目のワードは、PAFによってパケットが強制的に短縮されるので、最終ワード Last Word としてマークされる。後者のような短縮パケットの場合は、30個のワードが伝送完了する前に最終ワードLast Word が出現し、次いでそのパケットを完全パケットにするために“ゼロ・ワード“が充填される。次に、最終ワード Last Word の他の例を挙げる。PAFは、パケットが組み立て中の不完全パケットの状態であるときにも発生する。残り数ビットが次のワードへセグメント化される状態で内部ワードがワード完全になった場合は、その部分ワードが最終ワード Last Wordとなる。特に、パケットが組み立て中の不完全パケットの状態で、かつ内部ワードが次のワードへセグメント化されるビットがない状態で完全になったときは、困難な状況が生じる。即ち、後のデータ(即ち、PAFの出現)によってこのワードが最終ワードであることが示される前に、内部ワードがデータ/ヘッダ合成器に送られてしまうと、このワードが最終ワードであることを適正にマークするのには既に手遅れとなってしまう。この場合は、1つの“擬似”最終ワードと呼ばれるゼロ・ワードが生成されて、最終ワードとして表示される。そのような擬似最終ワードは全体が0のビットで構成される。これは、例えばセグメント化された(不完全)最終ワードの一部が0ビットで詰められるのとは異なる。以上の例または他の例を図5乃至図16を参照して説明する。
以下の説明において開示するシステムの重要な特徴の中には、長さが0(ゼロ)のPAFの生成がある。この長さが0(ゼロ)のPAFによって、GOPの開始が直ぐ後に出現することが示され、データ・パケット中で最終ワード Last Wordを生成してマークし、必要に応じて擬似最終ワード Pseudo Last Word を生成し、また、最終ワード Last Word の発生の種々の状態に関連して特定の信号を容易に生成することができる。
図2Aは、図1の制御器10の詳細を示す。制御器10は、モジュロ960回路22を有する帰還回路中にアキュムレータ20を含んでいる。その帰還路にはバッファレジスタ23が含まれていて、各長さ Length 入力サイクルの終わりに新しく累積された値を保持する。入力のPAFワードおよび長さワード Length は入力レジスタ24を介してモジュロユニット22とアキュムレータ20にそれぞれ送られる。長さワード Length の値はアキュムレータ20のユニットにより順次連続的に累積されて、アキュムレータ20とモジュロ960ユニット22の帰還合成によってパケット長を960ビットに設定する。バッファレジスタ23から供給されるアキュムレータ出力は、パケット内のビット位置を表し、パケット状態制御器25に送られる。
また、パケット状態制御器25は入力バッファレジスタ24からPAFを受け取り、ワード状態制御器26において書き込み指令を生成するのに必要な出力信号を供給(発生)する。アキュムレータ・ビットカウント(ビット計数値)が960以上になったときに、パケット完全出力信号 Packet Complete がワード状態制御器26に対して供給される。アキュムレータ・ビットカウントがワード境界を示していないときには(即ち、ビットカウントが32の整数倍に等しくないときに)、制御器25によって出力の残余信号 Remnant が発生される。アキュムレータ・ビットカウントが0であるときには、真ゼロ出力信号 True Zero が供給される。この真ゼロ出力信号は、PAFが存在するときにのみ最終ワードの正確な生成の決定を行うための重要な信号となる。これらの信号を生成する論理回路が、以下説明するように図2Bに示されている。
長さがゼロの空コードワード、即ちノー・オペレーション(NO−OP)コードワードの存在を示す値0の長さワード Length が受け取られたときは、アキュムレータ20はアイドル状態となり、最終ビットカウントを保持する。この規則には例外が存在して、PAFによってビットカウントに関係なく常にアキュムレータ値が強制的に0にされる場合がある。また、別の例外は、パケットが正確にパケット境界(即ち、アキュムレータ計数値が960)の位置で完全パケットを形成する場合である。そして、次のクロック周期において、アキュムレータ・カウントがモジュロ960ユニット22を介して次の長さワード Length の2進値に訂正される。アキュムレータ・カウントが960以上になったときに、パケットが完全になる。
図2Bにおいて、累積された長さを表す10ビット・アキュムレータ出力がI0〜I9に割り当てられる。パケット・コードワードの累積された長さが960以上になった場合に、パケットが完全になる。アキュムレータの4つの上位(MSB)ビットI6〜I9が論理1の状態であるときに、その状態が示され、その4つのビットが論理積ゲートAND30に供給される。全てのアキュムレータの10個のビットが論理0の状態にあるときに、真ゼロ True Zero が表示され、その10個のビットが論理和ゲートOR31に供給される。アキュムレータの5つの下位(LSB)のビットI0〜I4が論理0(ゼロ)状態にあるときに“残余無し“状態が示され、その5つのビットが論理和ゲートOR32に供給される。データ・パック器のワード アドレス Word Address がアキュムレータの6つの下位のビットI0〜I5に応答して生成される。論理積(AND)ゲートアレー34は、パケット整列フラグ(PAF)が出現したときにワードアドレス Word Address を強制的に論理0の状態にする。
図2Cは、図1のデータ・パック器12の詳細を示している。可変長コードワードがデータシフタ35に送られる。データシフタ35として、テキサス・インスツルメンツ社製の型式74AS8838のようなバレル・シフタを用いることができる。連結しようとする可変長コードワードの有効ビットの適正位置を定めるために、長さアキュムレータ出力の下位ビット(LSB)の部分が、パケット状態制御器25から発生して(図2Aおよび図2B参照)、ワードアドレス Word Addressとしてデータシフタ35に送られる。32ビットのワードが可変長コードワードの連結によって形成されたときに、パックされたワードが保持レジスタ36に転送される。処理可能なパック・データが存在するか否かを示すフラグが、レジスタ36より供給されるワードレディ信号 Word Readyによって与えられて、そのワードがデータ組立て回路37に転送される。データ組立て回路37は、パック・ワード制御器10(図1)から供給される制御信号W EN1,W EN2およびW ZEROを用いて、データ書き込みイネーブル Data Write Enable および最終ワード・フラグ(インジケータ) Last Word Flag とともにパック・データを、図1のデータおよびヘッダ合成器15内のFIFOデータ・バッファ16に対して供給する。
次のパケットのヘッダが現在のパケットの最終ワードの後に挿入されるように、パケット中の最終ワードを伝送した後で、それに続いてその結合されたデータストリーム中に次のトランスポート・ヘッダが挿入される。ヘッダ制御器は、アキュムレータ出力 Accumulator Output (図2A)を用いて、パケット中の或るコードワードの位置を示して、その各位置がヘッダ中のエントリ点のフィールドにおいて記述されるようにされる。ワード状態制御器26およびデータ組立て回路37に関連する論理アレーによって、最終ワード・インジケータ Last Word Indicator とデータ・ワードをFIFOバッファに書き込むようにイネーブルするフラグとが生成される。次の表1は、論理アレーへの入力であるPAF(Packet Alignment Flag)、PC(Packet Complete)、TZ(True Zero)およびREM(Remnant ワード・セグメント化インジケータ)に応じて最終ワードを生成するためのアクション状態を示している。制御器26の出力信号がバッファレジスタ28を介して供給されると、データ組み立て回路37から出力信号が生成される。これらの信号は、次のクロック周期に出現する最終ワードを示す書き込みイネーブル信号W EN1、現在のクロック周期に出現する最終ワードを示す書き込みイネーブル信号W EN2、および擬似最終ワード Psuedo Last Word を生成する書き込みゼロ信号W ZEROを含んでいる。この擬似最終ワード Psuedo Last Wordは、PAFの発生が不完全パケットの内部コードワードデータ境界に位置したパケット形成時点と一致したときに発生する。
注1:現在のワード上の最終ワード・フラグLast Word Flagは、書き込みイネーブル Write Enable 2によって示される。
注2:次のクロックにおけるワード上の最終ワード・フラグ Last Word Flag は、書き込みイネーブル Write Enable 1によって示される。
注3:擬似ワードの生成は、書き込みゼロ Write Zero によって示され、書き込みイネーブル Write Enable 1によってフラグが立てられる。
動作状態の種々の例(表1のケース1〜6)に関するW EN1、W EN2およびW ZEROを生成するための真理表が、図3に示されている。これについては図5乃至図16との関連で後述する。表1用のアルゴリズムが付録Aに記載されている。制御器26の出力信号は、出力ワード制御信号として図4に示されるデータ組み立て回路に供給される前に、出力バッファレジスタ28に供給される。
図4のデータ組立て回路は、図1のデータ・パック器12の出力回路を構成している。即ち、データ組立て回路は、図示のような回路構成で、論理積ゲートAND42および44、論理和ゲートOR46およびD型フリップフロップ(D F/F)43および45を具えている。32ビット幅のパック・データワード Packed Data Word が論理積ゲートAND42を介してデータFIFOに送られ、前段のパック器回路から供給されるワードレディ信号 Word Ready が、論理積ゲートAND44を介して送られ、図1のデータFIFO16用のデータ書き込みイネーブル信号 Data Write Enable になる。パック・ワード状態制御器26から供給されるデータ書き込み制御信号W EN1、W EN2およびW ZERO(図2A)が図示のようにフリップフロップ43と45および論理ゲート46に供給される。W EN2は現在のワードに関連する最終ワード・フラグ Last Word Flagを示し、W EN1は次のクロック・サイクルにおけるワードに関連する最終ワード・フラグ Last Word Flagを示す。W ZERO制御は、W EN1によって最終ワードのフラグが立てられる擬似最終ワード Pseudo Last Word の生成を示す(表1のケース4)。このケース4においては、擬似最終ワードと呼ばれる全ZEROのワードがパック・データワードストリーム Packed Data に挿入され、データFIFO16に書き込まれる。組立て回路のゲートAND44へのワードレディ入力信号 Word Ready が保持レジスタ36(図2C)によって供給されて、処理可能なパックされた32ビットが存在することを示す。
次に、図5乃至図16に例示された最終ワードの発生の例について説明する。これらの例のあるものは、PAFの前後の位置に存在する長さがゼロのNO−OPワードの作用を示している。
図5および図6は表1のケース5に該当する相異なる例を示している。図5においては、パケットは次のパケットへのセグメント化を行って(即ち、アキュムレータのビット値が960より大きい)完全パケットを形成している。図6においては、パケットは正確にパケットの境界の位置で完全パケットを形成し(即ち、アキュムレータのビット値が960に等しい)、次のパケットへのセグメント化を行うことなくまたは残余データを生じることなく完全パケットを形成している。このいずれのケースにおいても最終ワード・フラグ Last Word Flag はパケット完全 Packet Complete の発生と同時に発生する。この最終ワード・フラグ Last Word Flag は、PAFが存在しないときは真ゼロ True Zero および残余 Remnant の各表示を考慮せずに独立に発生される。一方、PAFが存在する場合は、最終ワード・フラグ LAST Word Flag は真ゼロ True Zero および残余 Remnant の各表示を考慮して発生される。
図7および図8は、表1のケース2を例示している。図7において、パケットが完全になった直後にセグメント化を行わずにPAFが発生し、その後に32ビットのピクチャ開始コードワードPSが続く。図8は、挿入された3個の長さゼロのノー・オペレーション(NO−OP)コードワードがピクチャ開始コードワードPSに先行して存在することを除けば、図7と同様である。図7および図8において、PAFはパケット完全信号 Packet Complete と時間的位置が一致して発生し、パケットは次のパケットに残余データのセグメント化を生じることなく終了する。図7は、32ビット長のピクチャ開始コードワードPSが直後に続いている、より一般なケースを示す。図8は、NO−OPワードが挿入されることが許容されることを示している。
図9は表1のケース6aに関係する図であり、この図においてPAFはパケット完全信号 Packet Complete と位置が一致せずにずれて発生している。PAFは、セグメント化を伴わずにパケットが完全になった後のNO−OPワードの後に生じ、その後にピクチャ開始コードワードPSが続く。このケースにおいては、最終ワード表示(フラグ) Last Word Indicatation がパケット完全信号 Packet Complete と関連して発生するが、アキュムレータ状態が0(ゼロ)の値でアイドル状態になっていて真ゼロ表示 True Zero が存在することになるので、最終ワード表示(フラグ) Last Word Indication はPAFと関連して発生することはない。
図10および図11は表1のケース1を例示す。図10において、PAFは、パケットが完全になった直後にセグメント化が生じた状態で発生し、その後にピクチャ開始コードワードPSが続く。図11は、挿入NO−OPワードがピクチャ開始コードワードPSに先行して存在することを除けば、図10と同様である。この場合、セグメント化される残余データが存在するので、2つの最終ワード・インジケータ(フラグ) Last Word Indivator が必要になる。その中の一方の最終ワード・インジケータ(フラグ)Last Word Indivator がパケット完全 Packet Completeの期間に生じ、そのうちの他方の最終ワード・インジケータ(フラグ) Last Word Indication は、セグメント化が生じたためにPAFの1クロック期間後に生じる。
図12、図13および図14は表1のケース3を例示す。これらの例においては、PAFは、パケット形成期間中のある位置で発生するが、ワード境界上では発生せず(即ち、次のワードへのセグメント化が生じる)、パケット完全表示 Packet Completeとは位置が一致しない。次いで、ワードが部分的に開始された結果(セグメント化による)、最終ワード信号 Last Word は、通常、PAFの後にくる次のクロック期間に発生する。図12において、PAFは、パケットがセグメント化を行った状態で完全になった後の数個のNO−OPワード後に発生し、その後にピクチャ開始コードワードPSが続く。図13において、PAFは、ワードが完全になると同時にセグメント化が生じた状態で発生し、その後にピクチャ開始コードワードPSが続く。図14において、PAFは、ワードが完全になった後で、かつ数個のコードワードによってセグメント化が生じた後に発生する。
図15および図16は、表1のケース4を例示し、特別な種類の最終ワードである擬似最終ワード Pseudo Last Wordを生成することの必要性を説明するための図である。このケースにおいて、PAFは、1つのワードがセグメント化を生じることなく、即ち32の倍数のワード境界上でワードが完全になった直後(図15)またはその少し後の時間(図16)に発生する。このケースにおいて、完全ワードは、それが最終ワードであったという情報が得られる前に(PAFの後に供給される)既に供給されていることを前提にしている。その場合は、全ゼロ擬似最終ワード Pseudo Last Word が形成され、供給される。これが許容される理由は、MPEGでは、開始コードワードの前に任意の数のゼロ(0)が先行して続くことを許容し、PAFの発生によりピクチャ開始コードワードPSが次ぎに来ることが保証されているためである。さらに、これらのケースでは、パケットの不足分を、データ/ヘッダ合成器によってゼロ値ビット(空)・ワードで補填している。1つのゼロ・ワードが発行されて、それを最終ワードとして擬似的にマークするので、このケースにおいて、合成器は1つの少ないワードを供給することになる。図15において、PAFは、ワードが完全になると直ぐに発生し(セグメント化が生じない状態で)、その後にピクチャ開始コードワードPSが続く。図16においては、ワードが完全となった(セグメント化を生じない状態で)後に、挿入NO−OPワードが続く。その後に、PAFが発生し、さらにその後にピクチャ開始コードワードPSが続く。
図17は、データ/ヘッダ合成器15(図1)の詳細な構成を示す。ヘッダ成分は、ヘッダがヘッダ発生器18によって生成されたときは常に、ヘッダ書き込みイネーブル信号 Header Write Enableに応答して、ヘッダFIFO70に書き込まれる。同様に、パック・データワードは、そのワードがデータ・パック器12によって生成されたときに、データ書き込みイネーブル信号 Data Write Enableに応答して、データFIFO72に書き込まれる。データ・パック処理によって生成された最終ワード・インジケータ Last Word Indicator は、その最終ワードが30番目のワードであるか否かとは関係なく、パケット中に最終ワードを伴って生じる。ヘッダFIFO70およびデータFIFO72の各ユニットのヘッダ出力およびデータ出力が多重化器(マルチプレクサ)76によって共通バス上に多重化されて供給され、さらに出力レジスタ78に供給される。図19に示されているように、出力レジスタ78は、データレディ信号 Data Ready、パケットデータ Packet Data、ヘッダ Header、およびヘッダ・インジケータ Header Indicator をレートバッファ713および714に供給する。多重化器76は、FIFO状態制御器74から供給されたゼロ発行信号 Issue Zero に応答して、命令(コマンド)に従ってゼロ・ワードを発行することができる。
2つのFIFO70および72の両方のユニット、多重化器76および出力レジスタ78は、ステート・マシン(状態マシン)である制御器74の指示を受ける。パワーオン(電源オン)または同様に作用する動作の再開の後で、制御器74は処理可能なヘッダが現れるのを待つ。処理可能なヘッダは、データレディ・インジケータ Data Ready Indicator およびヘッダ・インジケータ Header Indicator と共に多重化器76の出力バスに送られる。次いで、制御器74は、最終ワード・インジケータ Last Word Indicator が出現するまで、処理可能なデータが存在する限りそのデータを抽出してデータFIFO72の状態を制御する。伝送された各データはデータレディ・インジケータ Data Ready Indicator を伴い、そのデータレディ・インジケータ Data Ready Indicator は出力レジスタ78に送られる。最終ワード・インジケータ Last Word Indicator が出現した時に、既に30個のデータ・ワードが供給されていたことが判明すれば、制御器74はさらに処理可能な情報が存在するか否かについてヘッダFIFO70を再検査する。30個未満のデータ・ワードが供給されたときは、制御器74は、ゼロ発行命令 Issue Zero を用いて多重化器76に指令して、パケットの不足分を補うためにゼロ・ワードを発行させる。そのようなゼロ・ワードは、全てデータレディ・インジケータ Data Ready Indicator を伴って供給される。伝送すべきヘッダとデータがない場合は、制御器74は、多重化器76に指令して、処理可能なデータが存在しない期間、データレディ・インジケータ Data Ready Indicator なしでゼロ・ワードを発行させる。上述のようなステートマシンで駆動される合成器15の動作を表すフローチャート(状態遷移図)が図18に示されている。データレディ・インジケータ Data Ready Indicator およびヘッダ・インジケータ Header Indicator は、出力レジスタ78を通して図19のレートバッファ713および714に送られる。これらのインジケータは、バス上にデータおよびヘッダ情報が存在することをレートバッファに伝え、ヘッダ/データ記録(registration)を維持してレートバッファの後段で前進型誤り訂正(FEC)符号化およびデータ・インターリーブ(間挿)を行わせる。このシステム(図19)において、FEC処理およびインターリーブ処理を行うには、ヘッダによって表されるデータ・パケットが送られる前に、最初にヘッダを送る、即ち1つのヘッダを送ってレートバッファへの伝送を開始する必要がある。ヘッダFIFO70およびデータFIFO72から送られた空きフラグ信号 Empty Flag は、ヘッダおよびデータ・ワードがそれぞれ存在しない(空である)ことを示し、これによってステートマシンである状態制御器74がアイドル状態になる。この状態が図18に、状態0および状態1における“ヘッダなし“および“ワードなし“の状態として示されている。関連する読みとりイネーブル信号 Read Enable がヘッダFIFO70またはデータFIFO72にそれぞれ送られると、制御器74から供給されるヘッダ/データ選択信号 Header/Data Select が多重化器76に指令して、ヘッダFIFO70のユニットのヘッダ出力 Header Output またはデータFIFO72のユニットのデータ出力 Data Output のいずれかを出力レジスタ78の入力側の信号バスに切り換え接続される。不完全な短縮パケットにはゼロ・ワードを付加して所定の30個のワードのデータ・パケットが生成され、そのデータ・パケットが出力バッファ78に供給される。この出力バッファ78の容量は、前段のヘッダ・バッファ70およびデータ・バッファ72の容量よりもかなり大きい。これらのバッファは、割り込みを受けずに効率的にデータを受け取り、処理する。このような割り込みを受けない動作構成とすることによって、タイミングおよび同期化の機能が大幅に簡単になる。その機能は、例えば、クロック停止/開始における難しい同期化処理を不要にすることにより簡単にできる。
所定長の完全パケットは、上述のように必要数の空ワードを付加することによって適正に利用できるようになる。このような完全パケットを使用することによって、例えば可変長コードワード・システム等における任意のデータ状態においてもデータのサーチおよび同期化が可能になる。開始コードワード、特にIフレーム開始コードワードは、MPEGと互換性(相互運用性)のあるデータストリームにおける固有の再同期化点となる。開始コードワードはパケット境界に出現する。本明細書に記載したシステムにおけるゼロ値ビットの空ワードを用いて、切り捨てられたデータ・パケットをパケット完全化し、パケット境界を決定することによって、そのようなパケット境界の処理を行うことができる。MPEG標準では、開始コードワードの前に任意の数のゼロ・ワードが来ることを許容しており、受信機/デコーダはゼロ値ビットの空ワードを無視するようになっている。この例において、出力バッファ78は、その容量が大きく、時間的耐性(連続同一値に対する耐性)が高く、従って空ワードパック動作を実行するのに適した手段を構成している。ここで、パケット境界におけるパケット整列フラグPAFの出現とピクチャ開始コードワードPSの出現との間において空ワードをパックするために利用できる時間は僅かしかない(例えば1クロック・サイクル)ことに留意すべきである。
図19は、トランスポート・プロセッサ部において本発明に従う装置を用いた高解像度テレビジョン(HDTV)符号化システムを例示している。図19は、単一のビデオ入力信号を処理するシステムを示す。但し、輝度(ルミナンス)成分およびクロミナンス成分は別々に処理され、輝度の動きベクトルを用いて圧縮クロミナンス成分が生成されることが分かる。圧縮された輝度成分およびクロミナンス成分は、コードワード優先度をパース(構文解析)する前に、インターリーブされてマクロブロックが形成される。図19のシステムに関する別の情報が、アカンポーラ氏外の米国特許第5,168,356号に記載されている。図20Aに示された画像フィールド/フレームのシーケンス(列)は、図20Bに従うフィールド/フレームを再配列する回路705に供給される。その再配列されたシーケンスは圧縮器710に供給される。この圧縮器710は、MPEG形式のフォーマットに従って符号化された圧縮されたフレームのシーケンスを生成する。そのフォーマットは階層構造になっており、それが図22に簡略形式で例示されている。MPEG形式の階層構造フォーマットは、各別のヘッダ情報をそれぞれ有する複数の階層からなる。各ヘッダは、開始コードワード、各階層に関連するデータおよびヘッダ拡張を行うための項目(プロビジョン)を正規のヘッダ形式として含んでいる。
このシステムによって生成されるMPEG形式の信号について説明すると、(a)ビデオ信号の連続的画像フィールド/フレームがI,P,B符号化シーケンスに従って符号化され、(b)画面レベルで符号化されたデータはMPEG形式のスライスまたはブロック群の形式で符号化される。その場合、各フィールド/フレーム当たりのスライス数は種々の値をとり、各スライス当たりのマクロブロック数も種々の値をとる。I符号化フレームは、画像再生を行うときにIフレーム圧縮データだけを用いて処理できるようにフレーム内圧縮されている。P符号化フレームは前方動き補償予測法に従って符号化されており、Pフレーム符号化データは、現在のフレーム、および現在のフレームの前に発生するIまたはPフレームから生成される。B符号化フレームは、双方向動き補償予測法に従って符号化される。B符号化フレームデータは、現在のフレーム、および現在のフレームの前および後に発生するIおよびPフレームから生成される。
現在のシステムの符号化出力信号は、フィールド/フレーム群、またはボックスL2行(図22)に例示されている画像群(GOP)にセグメント化される。各GOP(L2)はヘッダを含んでおり、ヘッダの後には画像データのセグメントが続く。GOPヘッダは、水平方向および垂直方向の画面サイズ、アスペクト比、フィールド/フレーム・レート、ビット・レート、などに関連するデータを含んでいる。
各画像フィールド/フレームに対応する画像データ(L3)は、ピクチャヘッドを含んでいて、ピクチャヘッダの後にはスライスデータ(L4)が続く。ピクチャヘッドはフィールド/フレーム数およびピクチャ・コード・タイプを含んでいる。各スライス(L4)は、スライスヘッダを含んでいて、スライスヘッダの後には複数のデータ・ブロックMBiが続く。スライスヘッダは、群番号および量子化パラメータを含んでいる。
各ブロックMBi(L5)は、マクロブロックを表し、ヘッダを含んでおり、ヘッダの後に動きベクトル(MV)および符号化係数が続く。MBiヘッダは、マクロブロック・アドレス、マクロブロック・タイプおよび量子化パラメータを含んでいる。符号化係数は階層L6に例示されている。各マクロブロックは、4つの輝度ブロック、1つのUクロミナンスブロックおよび1つのVクロミナンスブロックからなる合計6個のブロックを含んでいる(図21参照)。1つのブロックは、ピクセルのマトリックス、例えば8×8のマトリックスを表していて、このマトリックスに対して離散コサイン変換(DCT)が実行される。その4つの輝度ブロックは、例えば16×16のピクセル・マトリックスを表す2×2の隣接輝度ブロックのマトリックスである。クロミナンス(UおよびV)ブロックは、4つの輝度ブロックの領域全体と同じ領域を表している。すなわち、圧縮の前に、クロミナンス信号は、輝度に対して水平方向および垂直方向に2つの係数(1/2)でダブサンプル(subsample)される。1つのスライスのデータは、隣接したマクロブロック群として表される領域に対応する画像中の長方形部分を表すデータに対応する。1つのフレームは、360個のスライス、すなわち垂直方向の60スライス×水平方向の6スライスからなる。
ブロック係数は、DCTによって1回につき1ブロック分供給される。まずDC係数が発生し、DC係数の後にその相対的重要度順に各DCT AC係数が続く。ブロック終了コードEOB(end-of-block)が、連続的に発生するデータの各ブロックの最後に付加される。
図19において、圧縮器710から供給されるデータは、データを高優先度(HP)成分と標準優先度(SP)成分とにセグメント化するトランスポート・プロセッサ712に供給される前に、優先度プロセッサ711により処理される。これらの成分は、レートバッファ713および714を介して各前進型誤り訂正符号化ユニット715および716に結合される。レートバッファは一時的にパック・データおよびヘッダを記憶し、その後FEC誤り訂正符号化回路はそのパック・データおよびヘッダを抽出する。レート(rate)制御器718は、バッファ713、714と協働して、圧縮器710から供給されるデータの平均データ・レートを調整する。その後、信号が伝送モデム717に結合され、そのHPおよびSPデータは、標準6MHzのNTSC方式のテレビジョン・チャンネル内の各搬送波を直交振幅変調する。