(57)【特許請求の範囲】
【請求項１】
あらかじめ定められた複数のフォーマットに基づいて生成されるとともに、それぞれを識別するパケットデータ識別情報が付与された連続する複数のパケットデータによって構成される複数のトランスポートストリームを入力とするマルチフォーマットトランスポートストリームデコーダであって、
前記複数のパケットデータのそれぞれに対してあらかじめ規定される少なくとも１つの処理シーケンスを格納するパケットデータ処理シーケンス格納手段と、
前記複数のパケットデータの内で前記ユーザが所望の処理の対象となるものと、前記処理シーケンスの内で当該所望の処理に対応するものを示す処理要求情報を入力する処理要求情報入力手段と、
前記複数のトランスポートストリームに、各トランスポートストリームに対応するフォーマットを示すフォーマット識別情報及び各トランスポートストリームを識別するトランスポートストリーム識別情報を付与する識別情報付与手段と、
前記パケットデータを個々に逐次保持するとともに、当該保持されたパケットデータから前記フォーマット識別情報と前記トランスポートストリーム識別情報および前記パケットデータ識別情報を抽出するパケットデータ保持識別手段と、
前記抽出されたトランスポートストリーム識別情報および前記パケットデータ識別情報が、前記処理要求情報を比較して、前記保持されているパケットデータがあらかじめ前記所望の処理の対象であるか否かを示す処理対象判断信号を生成する処理対象パケットデータデータ選定手段とを備える、マルチフォーマットトランスポートストリームデコーダ。
【請求項２】
前記処理要求情報は、前記パケットデータの内で前記ユーザが所望の処理の対象であるものを示す対象パケットデータ識別情報と、当該処理の対象であるパケットデータに対応する対象トランスポートストリーム識別情報と、当該処理の対象であるパケットデータに対してあらかじめ規定された処理シーケンスの内で処理に対応する処理シーケンス情報を含むことを特徴とする、請求項１に記載のマルチフォーマットトランスポートストリームデコーダ。
【請求項３】
前記処理対象パケットデータデータ選定手段は、前記抽出されたトランスポートストリーム識別情報および前記パケットデータ識別情報が、それぞれ前記対象トランスポートストリーム識別情報および対象パケットデータ識別情報および当該処理の対象であるパケットデータと一致した場合にのみ前記保持されている第１のパケットデータを前記所望の処理であることを示す処理対象判断信号を生成することを特徴とする、請求項２に記載のマルチフォーマットトランスポートストリームデコーダ。
【請求項４】
前記パケットデータ保持識別手段は、
前記パケットデータのそれぞれを、入力されてくる順番に所定時間だけ保持するパケットデータ保持手段と、
前記パケットデータ保持手段に格納されているパケットデータに前記処理シーケンス処理を施した際に生じる中間生成物を格納するための第２のパケットデータ保持手段と、
前記パケットデータに前記処理シーケンス処理を施した際に生じる最終生成物を格納するための第３のパケットデータ保持手段とを備える、請求項３に記載のマルチフォーマットトランスポートストリームデコーダ。
【請求項５】
前記処理対象判断信号が前記保持されている前記パケットデータがあらかじめ規定された処理の対象でないことを示す場合は、前記パケットデータ保持手段は、他のパケットデータの格納のために解放されることを特徴とする、請求項４に記載のマルチフォーマットトランスポートストリームデコーダ。
【請求項６】
前記処理対象判断信号が前記保持されているパケットデータがあらかじめ規定された処理の対象であることを示す場合は、当該保持されている前記パケットデータに前記処理シーケンス情報に基づいて処理を施すデータ処理手段をさらに含む、請求項４に記載のマルチフォーマットトランスポートストリームデコーダ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、それぞれ異なるフォーマットで生成された複数のトランスポートストリームを入力とし、当該入力される複数のトランスポートストリームに所望の処理を施して新たなトランスポートストリームを生成するマルチフォーマットトランスポートストリームデコーダに関する。さらに詳述すれば、本発明は、逐次入力される異なるフォーマットのトランスポートストリームを構成するパケットデータが処理対象であるかをリアルタイムに識別して、処理対象である場合には当該パケットデータに固有のフォーマットに応じて所望の処理を施すマルチフォーマットトランスポートストリームデコーダに関する。
【０００２】
【従来の技術】
デジタルコンテンツに対して種々な処理や編集を施して副次利用する要求は、従来は放送局のようなコンテンツ制作あるいは配信元にのみ可能であった。しかしながら、近年のデジタル技術の進歩により、インフラストラクチャとしてデジタル配信システムの質および量は日々に充実している。つまり、デジタルコンテンツを提供するトランスポートストリームの充実、ユーザによる処理に必要なハードウェアの性能アップ、およびそのためのコストの低減により、従来は放送局等の施設によってのみ実施されていた、トランスポートストリームの編集や、トランスポートストリームを構成するパケットデータの編集をユーザ側で楽しむための環境条件が整いつつある。
しかしながら、ユーザ側においてデジタルコンテンツごとに所望の処理を施すためには、逐次入力されてくるトランスポートストリームを構成するパケットデータの個々に対して、リアルタイム選択し、さらに選択されたパケットデータに対して対応する処理あるいは加工を施すべく処理手段のアクセスを許す手段が必要である。
【０００３】
そのような手段の一例と、図４１にトランスポートストリームを構成するパケットデータの個々をリアルタイムに識別して選択的に抽出する機能を有する従来実現されている装置を示す。同図に示すトランスポートデコーダは、複数の番組（Ｐｒｏｇｒａｍ）のそれぞれを形成するパケットデータ列から構成される単一のトランスポートストリームから特定の単一の番組を構成するパケットデータ群のみを抽出してＡＶデコーダに出力する。つまり、後述するように、同トランスポートデコーダには単一のトランスポートストリームを構成する複数のパケットデータの内で特定のパケットデータのみを選択的に抽出する手段が設けられている。
【０００４】
当該トランスポートストリームデコーダＴＤＡｃは、外部のトランスポートストリーム源（図示せず）から供給されるトランスポートストリームＴＳを受け取るストリーム入力器５００Ｃ、プログラムパケットフィルタＰＣＦ、メインメモリ制御器７００Ｃ、メインメモリ９００Ｃ、およびトランスポートストリームデコーダＴＤＡｃ全体の動作を制御するＴＤ制御器ＴＤＣｃを含む。
【０００５】
図４１に戻って、トランスポートストリームデコーダＴＤＡｃの構成要素のそれぞれについて説明する。ストリーム入力器５００Ｃは、外部のトランスポートストリーム源（図示せず）から入力されるトランスポートストリームＴＳを内部に備えた入力バッファに一時的に保持して、転送単位ＴＳｄごとにプログラムパケットフィルタＰＣＦに転送する。
【０００６】
プログラムパケットフィルタＰＣＦは、ストリーム入力器５００Ｃから転送単位ＴＳｄごとに転送されてくる全番組コンテンツパケットデータＰｃのそれぞれに付与されているパケット識別子ＰＩＤに基づいて、管理パケットデータＰｃＡのみを選択的に出力するパケットフィルタ１１００＿００と、特定の番組の番組映像コンテンツパケットデータＰｃＶのみを選択的に出力するパケットフィルタ１１００＿０１と、当該特定の番組の番組音声コンテンツパケットデータＰｃＳのみを選択的に出力するパケットフィルタ１１００＿０２との少なくとも３つを有する。なお、入力されたトランスポートストリームＴＳに含まれる全パケットデータＰから抽出された、管理パケットデータＰｃＡと特定の番組のコンテンツを形成する番組コンテンツパケットデータＰｃ（ＰｃＶ、ＰｃＡ）とを併せて選択単一番組パケットデータ列Ｐｅｓと総称する。
【０００７】
上述のように、プログラムパケットフィルタＰＣＦに含まれる管理パケットデータＰｃＡの抽出用、番組映像コンテンツパケットデータＰｃＶの抽出用、および番組音声コンテンツパケットデータＰｃＳの抽出用の３種類のパケットフィルタのそれぞれを識別する必要のある場合には、それぞれ管理パケットフィルタ１１００＿００、映像パケットフィルタ１１００＿０１および音声パケットフィルタ１１００＿０２と表し、識別する必要のない場合あるいはそれらを総称する場合には単にパケットフィルタ１１００と表する。
【０００８】
プログラムパケットフィルタＰＣＦには、抽出する１つの番組を構成するコンテンツの種類数γ（γは自然数）に応じて、つまり抽出すべき番組コンテンツパケットデータＰｃの種類数に相当するγ個のパケットフィルタ１１００＿０１〜１１００＿０γと、トランスポートストリームＴＳから管理パケットデータＰｃＡを抽出する１個の管理パケットフィルタ１１００＿００の合計γ＋１個の管理パケットフィルタ１１００＿００〜１１００＿０γが設けられる。説明の簡便化のために本例においては、管理パケットフィルタ１１００＿００、映像パケットフィルタ１１００＿０１、音声パケットフィルタ１１００＿０２の３種類のみを有する場合について述べる。
【０００９】
トランスポートストリームＴＳに含まれる複数の番組を構成する番組コンテンツパケットデータＰｃの内、管理パケットデータＰｃＡ（ＰＡＴ、ＰＭＴ１、ＰＭＴ２、ＰＭＴ３）、番組１を構成する番組映像コンテンツパケットデータＰｃＶ（Ｐｃ１０１＿１、Ｐｃ１０１＿２、・・・）および番組音声コンテンツパケットデータＰｃＳ（Ｐｃ１１１＿１、Ｐｃ１１１＿２、・・・）は、それぞれトランスポートストリームデコーダＴＤＡｃに到着した順番に映像パケットフィルタ１１００＿０１および音声パケットフィルタ１１００＿０２によって抽出される。
【００１０】
そして、抽出された番組コンテンツ管理表ＰＡＴ、番組コンテンツパケットデータ管理表ＰＭＴ１、ＰＭＴ２、およびＰＭＴ３と、番組コンテンツパケットデータＰｃ１０１＿１、Ｐｃ１１１＿１、Ｐｃ１０１＿２、Ｐｃ１１１＿２、・・・は、トランスポートストリームデコーダＴＤＡｃに到着した順番に、選択単一番組パケットデータ列Ｐｅｓとしてメインメモリ制御器７００Ｃに出力される。このように、プログラムパケットフィルタＰＣＦは、入力されるトランスポートストリームＴＳのパケットデータの個々をリアルタイムに識別して、選択的に抽出する機能を有する。
【００１１】
メインメモリ制御器７００Ｃは、プログラムパケットフィルタＰＣＦから入力される選択単一番組パケットデータ列Ｐｅｓを転送単位ＴＳｄごとに一時的に保持するとともにメインメモリ９００Ｃを制御して、メインメモリ９００Ｃのそれぞれ異なる所定の領域に、管理パケットデータＰｃＡ、単一番組映像コンテンツパケットデータ列ＰｓｓＶ、および単一番組音声コンテンツパケットデータ列ＰｓｓＳごとにメインメモリ９００Ｃの所定の領域に格納させる。
【００１２】
つまり、メインメモリ９００Ｃは、メインメモリ制御器７００Ｃを経由してプログラムパケットフィルタＰＣＦから入力される選択単一番組パケットデータ列Ｐｅｓに含まれる各パケットデータＰを、管理パケットデータＰｃＡ、番組映像コンテンツパケットデータＰｃＶおよび番組音声コンテンツパケットデータＰｃＡのいずれかに選別して、管理パケットデータＰｃＡ、単一番組映像コンテンツパケットデータ列ＰｓｓＶ、および単一番組音声コンテンツパケットデータ列ＰｓｓＳとして格納する。
【００１３】
さらに、メインメモリ制御器７００Ｃは、メインメモリ９００Ｃから単一番組映像コンテンツパケットデータ列ＰｓｓＶおよび単一番組音声コンテンツパケットデータ列ＰｓｓＳを読み出して転送単位ＴＳｄごとに一時的に保持するとともに、単一番組パケットデータ列ＰｓｓとしてＡＶデコーダ２０００Ｃに代表される外部機器に出力する。
【００１４】
なお、トランスポートストリームデコーダＴＤＡｃは、上述の各構成要素の動作状態を示す状態信号ＳｒＷＣを生成してＴＤ制御器ＴＤＣｃに出力する。ＴＤ制御器ＴＤＣｃは、状態信号ＳｒＷＣに基づいて、トランスポートストリームデコーダＴＤＡｃの各構成要素の動作を制御する制御信号ＳｃＷＣを生成して、トランスポートストリームデコーダＴＤＡｃに出力する。
【００１５】
このようにして、ＴＤ制御器ＴＤＣｃはトランスポートストリームデコーダＴＤＡｃの動作全体を制御して、トランスポートストリームデコーダＴＤＡｃに入力される単一のトランスポートストリームＴＳから単一の番組を構成する番組コンテンツパケットデータＰｃのみを入力された順番で抽出して、単一番組パケットデータ列ＰｓｓとしてＡＶデコーダ２０００Ｃなどの外部機器に出力させる。ＡＶデコーダ２０００Ｃは、入力される単一番組パケットデータ列Ｐｓｓに含まれる番組映像コンテンツパケットデータＰｃＶおよび番組音声コンテンツパケットデータＰｃＳを順番にデコードして映像音声信号Ｓａｖを生成してユーザの視聴に供する。
【００１６】
図４３に、トランスポートストリームデコーダＴＤＡｃによって、図４２に示したパケット構成を有する単一のトランスポートストリームＴＳに含まれる３つの番組から１つの番組の番組コンテンツパケットデータＰｃ（番組映像コンテンツパケットデータＰｃＶおよび番組音声コンテンツパケットデータＰｃＳ）と管理パケットデータＰｃＡ（ＰＡＴ、ＰＭＴ）のみが抽出されて構成される選択単一番組パケットデータ列Ｐｅｓの一例を示す。
【００１７】
本例においては、番組１を構成する番組コンテンツパケットデータＰｃ１０１＿１、Ｐｃ１１１＿１、Ｐｃ１０１＿２、Ｐｃ１１１＿２、・・・、およびそれらを示す番組コンテンツ管理表ＰＡＴと番組コンテンツパケットデータ管理表ＰＭＴ１のみが抽出されて抽出パケットデータ列Ｐｓｅとして、プログラムパケットフィルタＰＣＦからメインメモリ制御器７００Ｃに出力される。
【００１８】
なお、指定番組以外の番組２および番組３を示す番組コンテンツパケットデータ管理表ＰＭＴ２およびＰＭＴ３が抽出されることある。このように、入力されるトランスポートストリームＴＳに連続的に配列されたパケットデータＰから所定の番組に対応するパケットデータＰのみが離散的に抽出される。
【００１９】
図４４に、メインメモリ９００Ｃにおける選択単一番組パケットデータ列Ｐｅｓに含まれる番組コンテンツパケットデータＰｃのそれぞれの蓄積状態の一例を示す。メインメモリ９００Ｃは、番組映像コンテンツパケットデータＰｃＶである番組コンテンツパケットデータＰｃ１０１＿１、Ｐｃ１０１＿２、Ｐｃ１０１＿３、Ｐｃ１０１＿４、・・・を格納する映像パケット格納領域Ａ（ｖｉｄｅｏ）と、番組音声コンテンツパケットデータＰｃＳである番組コンテンツパケットデータＰｃ１１１＿１、Ｐｃ１１１＿２、Ｐｃ１１１＿３、Ｐｃ１１１＿４、・・・を格納する音声パケット格納領域Ａ（ａｕｄｉｏ）とを有する。
【００２０】
さらに、管理パケットデータＰｃＡの構成要素である番組コンテンツ管理表ＰＡＴの情報を格納するＰＡＴ格納領域Ａ（ＰＡＴ）、番組コンテンツパケットデータ管理表ＰＭＴの情報を格納するＰＭＴ格納領域Ａ（ＰＭＴα）を有する。具体的に言えば、番組１の番組コンテンツパケットデータ管理表ＰＭＴ１は番組コンテンツパケットデータ管理表ＰＭＴ格納領域Ａ（ＰＭＴ１）に格納される。
【００２１】
番組映像コンテンツパケットデータＰｃＶである番組コンテンツパケットデータＰｃ１０１＿１、Ｐｃ１０１＿２、Ｐｃ１０１＿３、Ｐｃ１０１＿４、・・・が、映像パケット格納領域Ａ（ｖｉｄｅｏ）内に互いに隙間なく格納されることによって、単一番組映像コンテンツパケットデータ列ＰｓｓＶが形成される。同様に、番組音声コンテンツパケットデータＰｃＳである番組コンテンツパケットデータＰｃ１１１＿１、Ｐｃ１１１＿２、Ｐｃ１１１＿３、Ｐｃ１１１＿４、・・・が音声パケット格納領域Ａ（ａｕｄｉｏ）内に互いに隙間なく格納されることによって、単一番組音声コンテンツパケットデータ列ＰｓｓＳが形成される。
【００２２】
このように、メインメモリ９００Ｃ内に構成された単一番組映像コンテンツパケットデータ列ＰｓｓＶおよび単一番組音声コンテンツパケットデータ列ＰｓｓＳが、メインメモリ制御器７００Ｃによって、図４５に例示するような単一番組パケットデータ列Ｐｓｓとして読み出されて、ＡＶデコーダ２０００Ｃに出力される。
【００２３】
なお、トランスポートストリームについては、公知の知識と推測されるが、本明細書におけるトランスポートについて、図４２を参照して以下に説明する。トランスポートストリームデコーダＴＤＡｃに入力される単一のトランスポートストリームＴＳについて説明する。トランスポートストリームＴＳは、図４２においてそれぞれが１つの枠として表示されている複数のパケットデータＰから構成される。これらのパケットデータＰにはそれぞれに固有のパケット識別子（Ｐａｃｋｅｔ  ＩＤ）ＰＩＤが付与されて、それぞれの識別に供される。また、これらのパケットデータＰは、トランスポートストリームＴＳに固有に定められたフォーマットで構成されている。
【００２４】
これらのパケットデータＰは、α種類（αは２以上の整数）の番組ごとにそのコンテンツを形成する複数の番組コンテンツパケットデータＰｃと、番組ごとにこれら番組コンテンツパケットデータＰｃのパケット識別子ＰＩＤを記述した番組コンテンツパケットデータ管理表（Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅ  ）ＰＭＴと、番組ごとに対応する番組コンテンツパケットデータ管理表ＰＭＴを記した番組コンテンツ管理表（Ｐｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅ）ＰＡＴ等に分類される。
【００２５】
これら番組コンテンツパケットデータＰｃを管理する情報を有する番組コンテンツ管理表ＰＡＴおよび番組コンテンツパケットデータ管理表ＰＭＴを、管理パケットデータＰｃＡと総称する。なお、図４２においては、少なくとも３つの異なる番組１、番組２、および番組３を提供する場合（α≧３）のトランスポートストリームＴＳの構成が例示されている。
【００２６】
番組コンテンツパケットデータＰｃ１０１＿１、Ｐｃ１０１＿２、・・・は、番組１の映像データであり、番組コンテンツパケットデータＰｃ１１１＿１、Ｐｃ１１１＿２、・・・・は番組１の音声データである。同様に、番組コンテンツパケットデータＰｃ２０１＿１、Ｐｃ２０１＿２、・・・・は、番組２の映像データであり、番組コンテンツパケットデータＰｃ２１１＿１、Ｐｃ２１１＿２、・・・・は番組２の音声データである。
【００２７】
さらに、番組コンテンツパケットデータＰｃ３０１＿１、Ｐｃ３０１＿２、・・・・は番組３の映像データであり、番組コンテンツパケットデータＰｃ３１１＿１、Ｐｃ３１１＿２、・・・・は番組３の音声データである。上述のごとく映像データを有する番組コンテンツパケットデータＰｃを番組映像コンテンツパケットデータＰｃＶと、音声データを有する番組コンテンツパケットデータＰｃを番組音声コンテンツパケットデータＰｃＳとそれぞれ総称する。
【００２８】
なお、提供できる番組数（α）は３に限定されないことは言うまでもなく、提供する番組数に対応する必要なだけの番組コンテンツパケットデータＰｃがトランスポートストリームＴＳに含まれる。さらに、番組の内容によっては、映像や音声以外の情報（例えば、文字情報）に対応する番組コンテンツパケットデータＰｃも含まれることも同様である。
【００２９】
さらに詳述すれば、トランスポートストリームＴＳは、番組コンテンツパケットデータＰｃの間に、伝送経路および処理上の要因から定められる頻度で番組コンテンツ管理表ＰＡＴと番組コンテンツパケットデータ管理表ＰＭＴが配列されて構成される。図４２において、番組１、２、および３の全３種類の番組を形成する複数の番組コンテンツパケットデータＰｃの内で、番組コンテンツパケットデータＰｃ１０１＿１、Ｐｃ１１１＿１、Ｐｃ２０１＿１、Ｐｃ２１１＿１、Ｐｃ３０１＿１、およびＰｃ３１１＿１の前に、番組ごとの番組コンテンツパケットデータＰｃのパケット識別子ＰＩＤを記した番組コンテンツパケットデータ管理表ＰＭＴ１、ＰＭＴ２、およびＰＭＴ３と、これらの番組コンテンツパケットデータ管理表ＰＭＴのそれぞれのパケット識別子ＰＩＤに対応する番組とを示す番組コンテンツ管理表ＰＡＴからなる管理パケットデータＰｃＡが配されている。
【００３０】
なお、本明細書において、同一の部材や信号は共通の数字あるいはアルファベットで構成される符号を識別子として附して表現し、同一の部材や信号であっても個々に識別を要する場合には、当該識別子にさらに数字あるいはアルファベットによる接尾辞を附して個々の識別子として表現するものとする。よって、同一部材あるいは信号において個々に識別を要しない場合には、識別子に接尾辞を附さずに表すものとする。具体的に言えば、番組コンテンツパケットデータＰｃ１０１は、番組コンテンツパケットデータＰｃ１０１＿１、Ｐｃ１０１＿２、・・・Ｐｃ１０１＿β（βは任意の自然数）の総称である。上述の番組コンテンツパケットデータＰｃ１１１、Ｐｃ２０１、Ｐｃ２１１、Ｐｃ３０１、およびＰｃ４０１についても同様である。
【００３１】
番組コンテンツ管理表ＰＡＴには、そのトランスポートストリームＴＳに含まれる全番組の番組コンテンツパケットデータ管理表ＰＭＴのパケット識別子ＰＩＤが記述されている。つまり、番組１の番組コンテンツパケットデータ管理表ＰＭＴのパケット識別子ＰＩＤは１００であり、番組２の番組コンテンツパケットデータ管理表ＰＭＴのパケット識別子ＰＩＤは２００であり、番組３の番組コンテンツパケットデータ管理表ＰＭＴのパケット識別子ＰＩＤは３００である、・・・、番組αの番組コンテンツパケットデータ管理表ＰＭＴのパケット識別子ＰＩＤはα００であると記述されている。
【００３２】
さらに、番組コンテンツパケットデータＰｃ１０１＿２、Ｐｃ１１１＿２、Ｐｃ２０１＿２、Ｐｃ２１１＿２、Ｐｃ３０１＿２、およびＰｃ３１１＿２の前には、前述の番組コンテンツパケットデータ管理表ＰＭＴ１、ＰＭＴ２、およびＰＭＴ３と番組コンテンツ管理表ＰＡＴとからなる管理パケットデータＰｃＡが再び配置されている。なお、トランスポートストリームＴＳが４以上の番組を含む（α≧４）の場合は、図４２には明示されていないが、管理パケットデータＰｃＡには、番組コンテンツパケットデータ管理表ＰＭＴ４〜ＰＭＴαが含まれ、トランスポートストリームＴＳにはそれぞれの番組に対応する番組コンテンツパケットデータＰｃが含まれることは言うまでもない。
【００３３】
トランスポートストリームＴＳに含まれるパケットデータＰの種類によって、管理パケットデータＰｃＡの配置頻度は大きく異なる。さらに管理パケットデータＰｃＡは必ずしも、図４２に例示したようにパケットデータＰの一まとまりとして配置されるとは限らない。場合によっては、管理パケットデータＰｃＡの構成単位である番組コンテンツ管理表ＰＡＴ、番組コンテンツパケットデータ管理表ＰＭＴおよび番組コンテンツパケットデータＰｃのそれぞれの間にほかのパケットデータＰが入り乱れて配されることもある。
【００３４】
【発明が解決しようとする課題】
上記のごとく構成された従来のトランスポートストリームデコーダは、入力されるトランスポートストリームが単一の場合に、当該トランスポートストリームから同時に単一の番組のみを再生してユーザに提示する用途に対しては十分である。なぜならば、ＡＶデコーダは、入力されてくる単一の番組を構成する単一番組パケットデータ列Ｐｓｓに含まれるパケットデータＰを入力されてくる順番にデコードすれば良いからである。
【００３５】
さらに、これらのパケットデータＰはすべて、入力される単一のトランスポートストリームに固有のフォーマットで構成されているため、同一のフォーマットに基づいてデコードすれば良い。しかしながら、上述のトランスポートストリームデコーダでは、以下に大別される３種類の番組の再生形態において、再生した番組を同時にユーザに提示するか否かに関わらず対応できない。
【００３６】
（再生形態１）
単一のトランスポートストリームのみの入力を許す、つまりストリーム入力器が１つだけ用意される場合であって、当該トランスポートストリームから同時に複数の番組を再生する場合。
【００３７】
（再生形態２）
複数のトランスポートストリームの入力を許す、つまり、入力されるトランスポートストリームは、それぞれに固有に定められたフォーマットで生成されたパケットデータで構成される場合。本生成形態においては、同時に入力されるトランスポートストリームが複数か単数かに関わらず、以下に分類する６種類の再生形態に細分される。
【００３８】
再生形態２−１：複数のトランスポートストリームのそれぞれから単一の番組のみを再生する場合。
再生形態２−２：複数のトランスポートストリームのそれぞれから同時に複数の番組を再生する場合。
再生形態２−３：複数のトランスポートストリームの特定の１つから単一の番組のみを再生する場合。
再生形態２−４：複数のトランスポートストリームの特定の１つから同時に複数の番組を再生する場合。
再生形態２−５：複数のトランスポートストリームの特定の幾つかから同時に複数の番組を再生する場合。
再生形態２−６：複数のトランスポートストリームの特定の幾つかから単一の番組のみを再生する場合。
【００３９】
（再生形態３）
トランスポートストリームから抽出された選択単一番組パケットデータ列Ｐｅｓに含まれるパケットデータＰ（Ｐｃ、ＰＡＴ、ＰＭＴ）の単位でのデータ処理を必要とする場合。この場合のデータ処理とは、番組コンテンツパケットデータＰｃ、番組コンテンツ管理表ＰＡＴ、あるいは番組コンテンツパケットデータ管理表ＰＭＴそのものを加工したり、パケットデータＰごとに個別に所定の処理を施す場合などが含まれる。
以下に、上述の各再生形態ごとに従来のトランスポートストリームデコーダが適用できない理由について具体的に述べる。
【００４０】
再生形態１においては、単一のトランスポートストリームＴＳから同時に再生される複数の番組の内、ユーザの所望する特定の番組をユーザの所望する方法で提示する必要がある。この場合、少なくとも、選択単一番組パケットデータ列Ｐｅｓあるいは単一番組パケットデータ列Ｐｓｓに混在する番組コンテンツパケットデータＰｃのそれぞれと対応する番組との関係が識別かつ管理されて、その識別管理結果が情報として利用できるように準備されていなければならない。
【００４１】
従来のトランスポートストリームデコーダにおいても、複数の番組の番組コンテンツパケットデータ管理表ＰＭＴを抽出することは上述のように可能であるので、単一のトランスポートストリームＴＳにどのような番組の番組コンテンツパケットデータＰｃが含まれているかを知ることはできる。しかしながら、プログラムパケットフィルタＰＣＦに入力される複数の番組コンテンツパケットデータＰｃを特定の１つの番組を構成する番組コンテンツパケットデータＰｃのパケット識別子ＰＩＤという項目だけで単純にフィルタリングして出力しているので、当該特定の番組以外の番組にそれぞれに対応する番組コンテンツパケットデータＰｃは選択単一番組パケットデータ列Ｐｅｓ内には存在しない。当然、番組コンテンツパケットデータＰｃのそれぞれと対応する番組と識別管理結果の情報は獲得されない。
【００４２】
再生形態２においては、トランスポートストリームごとに定められたフォーマットで生成されたパケットデータで構成される複数のトランスポートストリームＴＳが同時に入力され得る。つまり、複数のストリーム入力器のそれぞれには、種類、方式、あるいはサプライヤ等に代表されるフォーマットの異なるε種類のトランスポートストリームＴＳ１〜ＴＳεが供給される。
【００４３】
このような状態において、複数のトランスポートストリームＴＳ１〜ＴＳεのそれぞれから単一の番組のみを再生する再生形態２−１、複数のトランスポートストリームＴＳ１〜ＴＳεの特定の１つから単一の番組のみを再生する再生形態２−３、および複数のトランスポートストリームＴＳ１〜ＴＳεの特定の幾つかから単一の番組のみを再生する再生形態２−６のいずれにおいても、再生される番組が属するトランスポートストリームＴＳの区別と、選択単一番組パケットデータ列Ｐｅｓあるいは単一番組パケットデータ列Ｐｓｓにおける番組コンテンツパケットデータＰｃとトランスポートストリームＴＳとの関係の識別と、さらに識別されたトランスポートストリームＴＳごとのパケットデータのフォーマットの識別が必要である。しかし、従来のトランスポートストリームデコーダにそのような区別や識別ができないことは上述の通りである。
【００４４】
また、複数のトランスポートストリームＴＳ１〜ＴＳεのそれぞれから同時に複数の番組を再生する再生形態２−２、複数のトランスポートストリームＴＳ１〜ＴＳεの特定の１つから同時に複数の番組を再生する再生形態２−４、および複数のトランスポートストリームＴＳ１〜ＴＳεの特定の幾つかから同時に複数の番組を再生する再生形態２−５のいずれにおいても、再生された複数の番組の内ユーザの所望する番組を提示するためには、トランスポートストリームＴＳ１〜ＴＳεおよび番組に関して選択単一番組パケットデータ列Ｐｅｓに含まれる全パケットデータＰ間の関係および識別情報が必要である。さらに、異なるトランスポートストリームＴＳを構成するパケットデータＰ（それぞれが異なるフォーマットで構成されている）を順次、そのパケットデータＰのフォーマットに応じたパターンでデコードする必要がある。しかしながら、従来のトランスポートストリームデコーダにそのような識別ができないことは上述の通りである。
【００４５】
再生形態３に関しては、トランスポートストリームＴＳに含まれる番組に対応するパケットデータＰ（Ｐｃ、ＰＡＴ、ＰＭＴ）の個々に、ユーザの要求に応じた異なる処理を施す場合がある。例えば、ある番組はユーザに提示するために対応する番組コンテンツパケットデータＰｃを単純に順番に出力して、ＡＶデコーダ２０００Ｃにデコードさせてモニターに出力させる。別の番組は、外部の記憶装置に記憶させるために、その記憶装置および周辺機器の伝送条件にしたがって、対応する番組コンテンツパケットデータＰｃを含む新たなトランスポートストリームＴＳｒ（図示せず）を構成して出力する。
【００４６】
この場合、要求される伝送条件にしたがって、番組コンテンツパケットデータＰｃを管理して新たなトランスポートストリームＴＳｒを生成するためには、上述の識別管理情報が必要である。さらに、必要に応じて、パケットデータＰそのものに加工を施す場合にも、対象となるパケットデータＰを特定し、加工後のパケットデータＰを正しく取り扱うために上述の識別管理情報が必要である。これらの条件は、処理するパケットデータＰのフォーマットに応じて切り換える必要がある。しかし、従来のトランスポートストリームデコーダにそのような識別ができないことは上述の通りである。
【００４７】
上述のように、従来のトランスポートストリームデコーダは単一のトランスポートストリームから単一の番組を再生する用途には適している。しかしながら、単一のトランスポートストリームに含まれる複数の番組の番組コンテンツパケットデータＰｃを番組ごとに識別できない。また、単一のトランスポートストリームであっても、パケットデータ処理装置に入力されうる複数のトランスポートストリームＴＳ１〜ＴＳεのいずれが入力されているかが分からないとともに、現在入力されているトランスポートストリームＴＳを構成するパケットデータのフォーマットが分からないので、パケットデータに対して所望の処理を施すことができない。
【００４８】
複数のトランスポートストリームが入力される際には、番組ごとに番組コンテンツパケットデータＰｃを識別できないことに加えて、さらにトランスポートストリームの区別、トランスポートストリームと再生する番組の番組コンテンツパケットデータの関係を認識できない。さらに、入力されているトランスポートストリームを構成するパケットデータのフォーマットが分からないので、パケットデータに対して所望の処理を施すことができない。
【００４９】
このように、従来のトランスポートストリームデコーダにおいては、入力されるトランスポートストリームが単一あるいは複数の別に限らず、複数の番組を再生あるいは、パケットデータに対して所望の処理を施す用途には使用できない。また、複数のトランスポートストリームが入力される場合には、単一の番組を再生する用途にも使用できない。
【００５０】
さらに、上述のいずれの再生形態においても、単一および複数の別に限らず、入力されるトランスポートストリームＴＳから再生される複数の番組のそれぞれのコンテンツに応じた処理を施すためには、パケットフィルタごとにパケットデータのフォーマットに適応した処理を施す装置に対応するインターフェースを設ける必要がある。そのため、装置の規模の巨大化、構造の複雑化、処理負荷の増大、仕様あるいは要求処理の変更に対応不可、しいてはコストの増大という諸問題を招く。
【００５１】
本発明は上記の問題に鑑み、入力されてくるトランスポートストリームごとに異なるフォーマットで生成されたパケットデータの個々を所定の処理対象であるかをリアルタイムに識別して、処理対象である場合には当該パケットデータのフォーマットに適合した処理を施すマルチフォーマットパケットデータ処理装置を提供することを目的とする。
【００５２】
【課題を解決するための手段および発明の効果】
第１の発明は、あらかじめ定められた複数のフォーマットのいずれか１つに基づいて生成されるとともにそれぞれを識別するパケットデータ識別情報が付与された連続する複数の第１のパケットデータによって構成される第１のトランスポートストリームの少なくとも１つを入力として、前記第１のパケットデータに対して選択的にユーザが所望の処理を施して第２のトランスポートストリームを生成するマルチフォーマットトランスポートストリームデコーダであって、
複数第１のパケットデータのそれぞれに対してあらかじめ規定される少なくとも１つの処理シーケンスを格納するパケットデータ処理シーケンス格納器と、
第１のパケットデータの内でユーザが所望の処理の対象となるものと、処理シーケンスの内で所望の処理に対応するものを示す処理要求情報を入力する処理要求情報入力器と、
第１のトランスポートストリームに定められたフォーマットを示すトランスポートストリーム識別情報を付与するトランスポートストリーム識別情報付与器と、
第１のパケットデータを個々に逐次保持するとともに、保持された第１のパケットデータからトランスポートストリーム識別情報およびパケットデータ識別情報を抽出するパケットデータ保持識別器と、
抽出されたトランスポートストリーム識別情報およびパケットデータ識別情報が、処理要求情報を比較して、保持されている第１のパケットデータがあらかじめ所望の処理の対象であるか否かを示す処理対象判断信号を生成する処理対象パケットデータデータ選定器とを備える。
【００５３】
上記のように、第１の発明においては、入力されるトランスポートストリームに対して、それぞれに固有のフォーマットに基づいて適正にデコードできる。
【００５４】
第２の発明は、第１の発明において、処理要求情報は、第１のパケットデータの内でユーザが所望の処理の対象であるものを示す対象パケットデータ識別情報と、処理の対象である第１のパケットデータに対応する対象トランスポートストリーム識別情報と、処理の対象である第１のパケットデータに対してあらかじめ規定された処理シーケンスの内で処理に対応する処理シーケンス情報を含むことを特徴とする。
【００５５】
第３の発明は、第２の発明において、処理対象パケットデータデータ選定器は、抽出されたトランスポートストリーム識別情報およびパケットデータ識別情報が、それぞれ対象トランスポートストリーム識別情報および対象パケットデータ識別情報および処理の対象である第１のパケットデータと一致した場合にのみ保持されている第１のパケットデータを所望の処理であることを示す処理対象判断信号を生成することを特徴とする。
【００５６】
第４の発明は、第３の発明において、パケットデータ保持識別器は、
第１のパケットデータのそれぞれを、入力されてくる順番に所定時間だけ保持する第１のパケットデータ保持器と、
第１のパケットデータ保持器に格納されている第１のパケットデータに処理シーケンス処理を施した際に生じる中間生成物を格納するための第２のパケットデータ保持器と、
第１のパケットデータに処理シーケンス処理を施した際に生じる最終生成物を格納するための第３のパケットデータ保持器とを備える。
【００５７】
第５の発明は、第４の発明において、処理対象判断信号が保持されている第１のパケットデータがあらかじめ規定された処理の対象でないことを示す場合は、第１のパケットデータ保持器は、他の第１のパケットデータの格納のために解放されることを特徴とする。
【００５８】
第６の発明は、第５の発明において、処理対象判断信号が保持されている第１のパケットデータがあらかじめ規定された処理の対象であることを示す場合は、保持されている第１のパケットデータに処理シーケンス情報に基づいて処理を施すデータ処理器をさらに含む。
【００５９】
【発明の実施の形態】
図１に、本発明の実施形態例にかかるマルチフォーマットトランスポートストリームデコーダＴＤを示す。マルチフォーマットトランスポートストリームデコーダＴＤは、外部のトランスポートストリーム源（図示せず）からパケット単位で供給される複数ε（ε≧２）のトランスポートストリームＴＳ１〜ＴＳεを個別に受け取るストリーム入力器ＴＳＲ１〜ＴＳＲε、データバッファリング装置ＤＢＡ、タイマ６００、メインメモリ制御器７００、メインメモリ９００、ＴＤ制御器ＴＤＣ、および副次処理要求入力器ＡＰＲを含む。
【００６０】
図１に基づいて本発明のマルチフォーマットトランスポートストリームデコーダＴＤに入力されたトランスポートストリームの流れの概略について説明する。なお、本願の複雑な構成要素の詳細については本実施例の最後の部分で述べることとする。第１ストリーム入力器ＴＳＲ＿１〜第εストリーム入力器ＴＳＲ＿εは、それぞれ外部のトランスポートストリーム源（図示せず）からパケット単位で供給されるトランスポートストリームＴＳ１〜ＴＳεに、それぞれを個別に識別するためのＩＤであるトランスポートストリーム識別子ＴＳＩＤを付与する。このとき、ストリーム入力器ＴＳＲ＿εは、入力されるトランスポートストリーム中のパケットの大きさなどのフォーマットを識別する。
【００６１】
トランスポートストリーム識別子ＴＳＩＤは、入力される複数（１〜ε）の内任意のトランスポートストリームＴＳをｉ（１≦ｉ≦ε）として示す。この考えに基づいて、マルチフォーマットトランスポートストリームデコーダＴＤに入力される任意のトランスポートストリームＴＳを第ｉのトランスポートストリーム識別子ＴＳｉとして表すものとする。
【００６２】
そして、ストリーム入力器ＴＳＲは、トランスポートストリーム識別子ＴＳＩＤが付与されたトランスポートストリームＴＳを内部に備えた入力バッファに一時的に保持して、それぞれを所定の転送単位ＴＳｄ１〜転送単位ＴＳｄεごとにデータバッファリング装置ＤＢＡに転送する。
【００６３】
ＴＤ制御器ＴＤＣは、マルチフォーマットトランスポートストリームデコーダＴＤ全体の動作を制御する。
【００６４】
データバッファリング装置ＤＢＡは、パケットバッファリング調停器ＰＢＡ、パケット選択器４００、ストリーム出力管理器５００、中間処理用バッファセル使用メモリ５３０、パケット解析器１０００、ストリーム出力器１３００、および制御器ＰＢＡＣを含む。パケットバッファリング調停器ＰＢＡは、ストリーム入力器ＴＳＲから転送単位ＴＳｄごとに入力されるトランスポートストリームＴＳをパケットデータＰの単位で識別してバッファリングする。パケット選択器４００は、バッファリングされているパケットデータＰが所望のパケットデータＰであるかを判断する。
【００６５】
パケットバッファリング調停器ＰＢＡは、ＤＭＡバス調停器２１０、ＴＳｄ入力開始検出器２２０、バッファセル割当器２３０、バッファセル割当情報格納器２４０、書込先バッファセル指定器２５０、パケットバッファ制御器２６０、パケットバッファ２７０、蓄積完了バッファセル番号メモリ制御器２８０、蓄積完了バッファセル番号メモリ２９０、エラーフラグ設定器２９５、およびパケットアクセス器３００を含む。
【００６６】
ＤＭＡバス調停器２１０は、入力されるトランスポートストリームＴＳの数εと同じだけの入力ポート群を有する。このように、入力されるトランスポートストリームＴＳごとに入力ポート群を備えることによって、マルチフォーマットトランスポートストリームデコーダＴＤに入力される第ｉのトランスポートストリームＴＳｉを個別に識別できる。
【００６７】
さらに、ＤＭＡバス調停器２１０は、入力されるトランスポートストリームＴＳの数εに応じて用意されるストリーム入力器ＴＳＲ１〜ＴＳＲεごとにデータ有効信号Ｓｄｅ１〜Ｓｄｅεを出力する出力ポートが用意される。
【００６８】
ＤＭＡバス調停器２１０は、第ｉストリーム入力器ＴＳＲｉから入力される第ｉのパケット先頭検出信号Ｓｐｓｉおよび第ｉのリクエスト信号Ｓｒｑｉに基づいて、第ｉのパケット先頭検出信号ＳｐｓｉをＴＳｄ入力開始検出器２２０に出力する。
【００６９】
ＴＳｄ入力開始検出器２２０は、パケット先頭検出信号Ｓｐｓおよび転送単位ＴＳｄに基づいて、パケットデータＰごとに転送単位ＴＳｄの入力が開始されたことを検出するとともに、入力が開始された転送単位ＴＳｄをパケットバッファ制御器２６０に供給する。
【００７０】
パケットバッファ制御器２６０は、書込要求信号Ｓｗｄに応答して、ＴＳｄ入力開始検出器２２０から供給される転送単位ＴＳｄｉを、パケットバッファ２７０の割り当てられたバッファセルに書き込む。
【００７１】
パケットアクセス器３００は、パケットバッファ制御器２６０およびＤＭＡバス調停器２１０を経由して、パケットバッファ２７０のバッファセルに格納された直後のパケットデータＰに選択的にアクセスして、読み出し、参照、あるいは編集等の処理を施した後にＤＭＡバス調停器２１０およびパケットバッファ制御器２６０を経由して、元のパケットデータＰを上書き更新したりする。
【００７２】
データバッファリング装置ＤＢＡは、処理対象パケットデータＰに対して上記のような所望の処理を施した後に、選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍとしてメインメモリ制御器７００に出力する。
【００７３】
メインメモリ９００は、データバッファリング装置ＤＢＡから出力される第１のトランスポートストリームＴＳ１〜第εのトランスポートストリームＴＳεから抽出された選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍを格納するとともに、ＡＶデコーダに代表される外部機器（図示せず）に複数ＴＳ複数番組パケットデータ列Ｐｍｓｍとして出力する。
【００７４】
メインメモリ制御器７００は、選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍおよび複数ＴＳ複数番組パケットデータ列Ｐｍｓｍを転送単位ＴＳｄごとに一時的に保持する。メインメモリ制御器７００はさらに、メインメモリ９００の動作を制御して、一時的に保持する選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍを転送単位ＴＳｄごとにメインメモリ９００に出力するとともに、メインメモリ９００を制御してその内部に複数ＴＳ複数番組映像コンテンツパケットデータ列ＰｍｓｍＶおよび複数ＴＳ複数番組音声コンテンツパケットデータ列ＰｍｓｍＳを形成させる。
【００７５】
次に図２および３を参照して、上述のバッファセル割当情報格納器２４０、パケットバッファ２７０、および蓄積完了バッファセル番号メモリ２９０の関係について簡単に説明する。図２に示すように、パケットバッファ２７０は、大別してｍ（ｍは２ε以上の整数）個の一次バッファセルＢｃ＿Ｉ１〜Ｂｃ＿Ｉｍと、ｎ（ｎはｍ／２より大きい整数）個の二次バッファセルＢｃ＿Ｍ１〜ＢＣ＿Ｍｎと、１つ以上の三次バッファセルＢｃ＿Ｏを含む。
【００７６】
これは、入力されるトランスポートストリームＴＳごとに、パケットデータＰの蓄積用と蓄積したパケットデータＰの読み出し用に異なる一次バッファセルＢｃ＿Ｉが１つは必要であるからである。なお、第１のトランスポートストリームＴＳ１と第２のトランスポートストリームＴＳ２との２つ（ε＝２）のトランスポートストリームＴＳが入力される場合には、一次バッファセルＢｃ＿Ｉの個数ｍは４（２×２）以上の整数である。
【００７７】
また、二次バッファセルＢｃ＿Ｍは、一次バッファセルＢｃ＿Ｉの読み出し用に対応して設ければ良いので、必要数ｎはｍ／２以上の整数となる。さらに、三次バッファセルＢｃ＿０は、１つのパケットデータＰに対する処理課程の中間データを集積して完成させた後に出力すれば良いので１つ以上あれば良い。
【００７８】
一次バッファセルＢｃ＿Ｉ１〜Ｂｃ＿Ｉｍはそれぞれ、ＴＳｄ入力開始検出器２２０およびパケットバッファ制御器２６０を経由して転送単位ＴＳｄで入力されるパケットデータＰを第１の所定時間Ｔ１だけ格納して、格納したパケットデータＰに対する処理を受け付ける。パケットバッファ制御器２６０によって、一次バッファセルＢｃ＿Ｉに格納されたパケットデータＰのパケット識別子ＰＩＤおよびトランスポートストリーム識別子ＴＳＩＤが抽出パケット識別情報ＰＩＤｅおよび抽出トランスポートストリーム識別子ＴＳＩＤｅとして読み出される。
【００７９】
さらに、一次バッファセルＢｃ＿Ｉはデスクランブル器１１００およびセクションデータ選別器１２００に接続されている。そして、一次バッファセルＢｃ＿Ｉに格納されているパケットデータＰの内でスクランブルされている被スクランブルデータＤｓｄｉをデスクランブル器１１００に出力される。また、一次バッファセルＢｃ＿Ｉに格納されているパケットデータＰがセクションデータの場合は要選別セクションデータＳｓｄｉ２がセクションデータ選別器１２００に出力される。
【００８０】
デスクランブル器１１００は、一次バッファセルＢｃ＿Ｉから入力される被スクランブルデータＤｓｄｉをデスクランブルして被デスクランブルデータＤｓｄｏを生成する。セクションデータ選別器１２００は、一次バッファセルＢｃ＿Ｉから入力される要選別セクションデータＳｓｄｉ２をセクションデータ選別して被選別パケットデータＳｓｄｏを生成する。
【００８１】
二次バッファセルＢｃ＿Ｍは、デスクランブル器１１００に接続されて、被デスクランブルデータＤｓｄｏを第２の所定時間Ｔ２（Ｔ２＜Ｔ１）だけ格納する。さらに、セクションデータ選別器１２００は二次バッファセルＢｃ＿Ｍに接続されて、格納している被デスクランブルデータＤｓｄｏの内のデスクランブルされた実データを要選別セクションデータＳｓｄｉ１として読み出し、セクションデータ選別して被選別パケットデータＳｓｄｏを生成する。
【００８２】
三次バッファセルＢｃ＿０は、セクションデータ選別器１２００に接続されて、要選別セクションデータＳｓｄｉ１あるいは要選別セクションデータＳｓｄｉ２の何れかから生成された被選別パケットデータＳｓｄｏを第３の所定時間Ｔ３（Ｔ３＜Ｔ２）だけ格納する。
【００８３】
バッファセルＢｃのそれぞれは、所定のサイズのデータを一時的に蓄える、つまりバッファリングできる。そのために必要なバッファセルＢｃの容量を最低バッファ容量ＭＢＵと言う。最低バッファ容量ＭＢＵは、パケットデータＰを構成するパケットデータＰのデータサイズに応じて適宜設定される。最低バッファ容量ＭＢＵをパケットサイズに比べて小さく設定すれば、番組コンテンツパケットデータＰｃの抽出をよりきめ細やかに制御できるが、ＤＭＡバス調停器２１０における入出力調停頻度が大きくなり、そのための制御工数の増大を招き処理効率が悪くなる。
【００８４】
一方、最低バッファ容量ＭＢＵをパケットサイズに比べて大きく、例えば数倍程度に設定すれば、１つのバッファセルＢｃに複数のパケットデータＰを格納することも可能になる。しかしながらこの場合は、１つのバッファセルＢｃに格納されている複数のパケットデータＰを区別できないので、パケットデータＰ単位での制御、あるいはアクセスができない。したがって、最低バッファ容量ＭＢＵは、トランスポートストリームデコーダの内部処理速度、パケットデータＰの入力レート、パケットサイズ、およびパケットデータＰへのアクセス頻度に基づいて適切に設定されるべきものである。
【００８５】
なお、本例においては、最低バッファ容量ＭＢＵは１パケットデータＰを格納できるように定めており、具体的には１８８バイトとしている。なお、必要に応じて、パケットデータＰを識別又は管理するための所定のバイト数を有する補助データを１パケットデータＰに追加して格納できるようにしても良い。しかしながら、必要に応じて、上述のようにパケットサイズに比べて小さく設定、つまり１つのパケットを複数のバッファセルＢｃに分割して格納するようにしても良い。
【００８６】
なお、最低バッファ容量ＭＢＵは、分割の有無に関わらず格納するデータに管理情報に相当する管理バイトを足したものになる。管理情報には少なくとも、格納する分割／非分割データが入力される複数のトランスポートストリームＴＳのどれに属するかを示すトランスポートストリーム識別情報を含む。
また、パケットを分割して格納する場合には、最低バッファ容量ＭＢＵはパケットデータＰの分割後のデータの最大サイズに分割情報とトランスポートストリームパケット識別情報を含む管理データサイズの和になる。この場合、バッファセルＢｃの個数Ｎの最小値であるバッファセル最少個数Ｎｍｉｎは２εに分割数Ｄを乗じたもの（バッファセル最少個数Ｎｍｉｎは２εＤ）になる。
【００８７】
さらに、異なるパケットデータＰ間の入力レートの違いについて述べる。つまり、マルチフォーマットトランスポートストリームデコーダＴＤに入力される複数εのトランスポートストリームＴＳ１〜ＴＳεのそれぞれに含まれるパケットデータＰの入力レートは、トランスポートストリームＴＳｉごとに異なることが多い。今、２つ（ε＝２）のトランスポートストリームＴＳ１およびＴＳ２が入力される場合を例として説明する。第１のトランスポートストリームＴＳ１の番組１の番組コンテンツパケットデータＰｃ１０１およびＰｃ１１１と、第２のトランスポートストリームＴＳ２の第４の番組コンテンツパケットデータＰｃ４０１およびＰｃ４１１とをバッファリングする場合に、番組コンテンツパケットデータＰｃ４０１の入力レートが番組コンテンツパケットデータＰｃ１０１の入力レートに比べて圧倒的に大きい場合を考える。
【００８８】
この場合、番組コンテンツパケットデータＰｃ１０１とＰｃ４０１が同時にマルチフォーマットトランスポートストリームデコーダＴＤに到着したとしても、ＤＭＡバス調停器２１０ｒ調停されて、一方（例えば、番組コンテンツパケットデータＰｃ１０１）のバッファリングが他方（例えば、番組コンテンツパケットデータＰｃ４０１）より先に始まる。そして、番組コンテンツパケットデータＰｃ１０１のバッファリングの開始に引き続いて番組コンテンツパケットデータＰｃ４０１のバッファリングが開始する。しかしながら、番組コンテンツパケットデータＰｃ４０１の入力レートは番組コンテンツパケットデータＰｃ１０１の入力レートに比べて圧倒的に大きいために、番組コンテンツパケットデータＰｃ４０１のバッファリング途中で、番組コンテンツパケットデータＰｃ１０１の入力が完了してしまう。
【００８９】
このような事態に対応するべく、番組コンテンツパケットデータＰｃ１０１のバッファリング中に、後から入力される高レートの番組コンテンツパケットデータＰｃ４１１のバッファリングするためにバッファセルＢｃを用意する必要がある。この場合のバッファセル最少個数Ｎｍｉｎは、入力されるトランスポートストリームＴＳの番組コンテンツパケットデータＰｃの入力レートに基づいて決定されるが、最低バッファ容量ＭＢＵを一定とすれば、バッファセル最少個数Ｎｍｉｎは一般に入力トランスポートストリームＴＳの数に比例し、入力トランスポートストリーム間で入力レートが著しく異なる番組コンテンツパケットデータＰｃの数に応じた分だけ増加する。
【００９０】
なお、本例においては、最低バッファ容量ＭＢＵは１パケットデータＰに所定の管理データを付加したものを格納できるように定めており、具体的には１８８バイトの１パケットデータＰに４バイトの管理データを付加したものを格納できるように１９２バイトとしている。また、４バイトの管理データには、上述のトランスポートストリーム識別情報とともに、当該パケットデータＰの到着時間を示すタイムスタンプ情報も含まれている。これについては、後ほど図１６を参照して説明する。
【００９１】
なお、一次バッファセルＢｃ＿Ｉ、二次バッファセルＢｃ＿Ｍ、および三次バッファセルＢｃ＿０に格納されるデータについて、図３、図２４、図２５、図２６、および図２７を参照して説明する。図２５においては、第１のトランスポートストリームＴＳ１のパケットデータＰ１は第１のフォーマットＦＭＴ１で構成され、第２のトランスポートストリームＴＳ２のパケットデータＰ２は第２のフォーマットＦＭＴ２で構成されている場合が例示されている。
【００９２】
ちなみに、第１のフォーマットＦＭＴ１で構成されているパケットデータＰ１（ＴＳ１）は、先頭から素性管理バイトＢＭｈ、補助データＡＸＤ、実データＰＤＢ、および処理管理バイトＢＭｐの順番に配列構成されている。素性管理バイトＢＭｈ、補助データＡＸＤ、実データＰＤＢ、および処理管理バイトＢＭｐのバイトサイズをそれぞれ、Ｍ、Ｎ１、Ｒ１、およびＭとすると、このようなパケットデータＰ１（ＴＳ１：ＦＭＴ１）を格納するために、バッファセルＢｃに要求される最小容量ＭＢＵは、２Ｍ＋Ｎ１＋Ｒ１となる。
【００９３】
同様に、第２の第フォーマットＦＭＴ２で構成されているパケットデータＰ２（ＴＳ２）は、先頭から素性管理バイトＢＭｈ、実データＰＤＢ、および処理管理バイトＢＭｐの順番に配列構成されている。素性管理バイトＢＭｈ、補助データＡＸＤ、実データＰＤＢ、および処理管理バイトＢＭｐのバイトサイズをそれぞれ、Ｍ、Ｒ２、呼びＭとすると、このようなパケットデータＰ２（ＴＳ２：ＦＭＴ２）を格納するために、バッファセルＢｃに要求される最小容量ＭＢＵは、２Ｍ＋Ｒ２となる。
【００９４】
図２に戻って、奇数番の一次バッファセルＢｃ＿Ｉには第１のフォーマットＦＭＴ１のパケットデータＰが格納され、偶数番の一次バッファセルＢｃ＿Ｉには第２の第フォーマットＦＭＴ２（セクションデータ）のパケットデータＰが格納される場合を例に説明する。奇数番の一次バッファセルＢｃ＿Ｉには、処理管理バイトＢＭｐ、補助データＡＸＤ、実データＰＤ１、および素性管理バイトＢＭｈの順番に格納される。偶数番の一次バッファセルＢｃ＿Ｉには、処理管理バイトＢＭｐ、実データＰＤ２、および素性管理バイトＢＭｈの順番に格納される。
【００９５】
奇数番の一次バッファセルＢｃ＿Ｉに格納されている補助データＡＸＤと実データＰＤが第１ストリームＰｈｏ１として、ストリーム出力器１３００から出力される。偶数番の一次バッファセルＢｃ＿Ｉに格納されている実データＰＤが第２ストリームＰｈｏ２として、ストリーム出力器１３００から出力される。
【００９６】
さらに、奇数番の一次バッファセルＢｃ＿Ｉから処理管理バイトＢＭｐと補助データＡＸＤと実データＰＤが被スクランブルデータＤｓｄｉとしてデスクランブル器１１００に出力される。デスクランブル器１１００は、被スクランブルデータＤｓｄｉの補助データＡＸＤと実データＰＤをデスクランブルして、被デスクランブル補助データＡＸＤ’を生成する。そして、処理管理バイトＢＭｐと被デスクランブル補助データＡＸＤ’と被デスクランブル実データＰＤ’とを被デスクランブルデータＤｓｄｏとして二次バッファセルＢｃ＿Ｍに出力される。
【００９７】
二次バッファセルＢｃ＿Ｍにおいては、被デスクランブルデータＤｓｄｏが処理管理バイトＢＭｐ、被デスクランブル補助データＡＸＤ’、および被デスクランブル実データＰＤ’の順番に格納される。そして、二次バッファセルＢｃ＿Ｍから処理管理バイトＢＭｐ、被デスクランブル補助データＡＸＤ’、および被デスクランブル実データＰＤ’が要選別セクションデータＳｓｄｉ１としてセクションデータ選別器１２００に出力される。
【００９８】
セクションデータ選別器１２００は、要選別セクションデータＳｓｄｉ１を選別して被選別実データＰＤ”を生成して三次バッファセルＢｃ＿０に出力する。
【００９９】
偶数番の一次バッファセルＢｃ＿Ｉから処理管理バイトＢＭｐと補助データＡＸＤと実データＰＤが要選別セクションデータＳｓｄｉ２としてセクションデータ選別器１２００に出力される。セクションデータ選別器１２００は、要選別セクションデータＳｓｄｉ２を選別して被選別実データＰＤ”を生成して被選別パケットデータＳｓｄｏとして三次バッファセルＢｃ＿０に出力する。
【０１００】
このようにして、パケットデータＰのフォーマットに応じて処理された被選別実データＰＤ”が三次バッファセルＢｃ＿０に格納される。
【０１０１】
バッファセル割当情報格納器２４０は、パケットバッファ２７０の一次バッファセルＢｃ＿Ｉ１〜Ｂｃ＿Ｉｍのそれぞれに対応する一次バッファセル割当情報領域ＡＩ１〜ＡＩｍと、二次バッファセルＢｃ＿Ｍ１〜Ｂｃ＿Ｍｎのそれぞれに対応する二次バッファセル割当情報領域ＡＭ１〜ＡＭｎを有する。バッファセル割当情報格納器２４０は、バッファセル割当器２３０から供給される一次バッファセル割当情報Ｉｂａに基づいて、割り当てられた一次バッファセルＢｃ＿Ｉに対応する一次バッファセル割当情報領域ＡＩに割当の有無を示す割当識別データを書き込む。つまり、バッファセル割当情報格納器２４０には、パケットバッファ２７０の一次バッファセルＢｃ＿Ｉ１からＢｃ＿Ｉｍと同数の一次バッファセル割当情報領域ＡＩ１〜ＡＩｍが用意される。
【０１０２】
同様に、バッファセル割当情報格納器２４０は、中間処理用バッファセル使用メモリ５３０から供給される二次バッファセル割当情報ｍｒｐに基づいて、割り当てられた二次バッファセルＢｃ＿Ｍに対応する二次バッファセル割当情報領域ＡＭに割当の有無を示す割当識別データを書き込む。つまり、バッファセル割当情報格納器２４０には、パケットバッファ２７０の二次バッファセルＢｃ＿Ｍ１〜Ｂｃ＿Ｍｎと同数の二次バッファセル割当情報領域ＡＭ１〜ＡＭｎが用意される。
【０１０３】
例えば、割当識別データは１と０の二値データであり、初期値は０である。そして、一次バッファセルＢｃ＿Ｉ１が割り当てられる場合には、一次バッファセルＢｃ＿Ｉ１に対応する一次バッファセル割当情報領域ＡＩ１には、例えば１が書き込まれる。一方、一次バッファセルＢｃ＿Ｉ１に書き込まれたデータが読み出された後に、制御器ＰＢＡＣから出力される制御信号Ｓｃに基づいて一次バッファセル割当情報領域ＡＩ１に０が書き込まれて、一次バッファセルＢｃ＿Ｉ１は解放される。これは、二次バッファセルＢｃ＿Ｍに関しても同様である。
【０１０４】
このようにして、パケットバッファ２７０の各一次バッファセルＢｃ＿Ｉ１〜Ｂｃ＿Ｉｍそれぞれの割当状況が一次バッファセル割当情報領域ＡＩ１〜ＡＩｍにおける値の集合で表現されて、割当一次バッファセル情報Ｉａｂとしてバッファセル割当器２３０に供給される。同様に、二次バッファセルＢｃ＿Ｍ１〜Ｂｃ＿Ｍｎそれぞれの割当状況が二次バッファセル割当情報領域ＡＭ１〜ＡＭｎにおける値の集合で表現されて、割当二次バッファセル情報ｍｗｐとして中間処理用バッファセル使用メモリ５３０に供給される。
【０１０５】
次に、図７を参照して、上述のマルチフォーマットトランスポートストリームデコーダＴＤの主な動作について詳しく説明する。マルチフォーマットトランスポートストリームデコーダＴＤは、電源が投入されてその動作を開始する。
まず、ステップ＃１００「の初期化サブルーチン」において、蓄積完了バッファセル番号メモリ２９０のライトポインタＷＰおよびリードポインタＲＰの値が共に０にリセットを含めて、装置の初期化が行われる。そして、処理は次のステップ＃２００に進む。
【０１０６】
ステップ＃２００の「トランスポートストリームＴＳ１〜ＴＳεの提供番組および可能処理提示」サブルーチンにおいて、ＴＤ制御器ＴＤＣのメインメモリ９００のＰＡＴ格納領域Ａｒ（ＰＡＴ）およびＰＭＴ格納領域Ａｒ（ＰＭＴ）に、トランスポートストリームＴＳ１〜ＴＳεごとに個別に格納されている番組コンテンツ管理表ＰＡＴ１〜ＰＡＴεおよび番組コンテンツパケットデータ管理表ＰＭＴ１〜ＰＭＴεに基づいて、配信される番組と、マルチフォーマットトランスポートストリームデコーダＴＤがユーザに提供できる処理機能とを表す番組内容提示信号Ｓｐを生成して、副次処理要求入力器ＡＰＲに出力する。
副次処理要求入力器ＡＰＲは、番組内容提示信号Ｓｐに基づいて、ディスプレイ等の適当な表示手段を用い手配信番組と提供処理機能をユーザに一覧提示する。ユーザは、副次処理要求入力器ＡＰＲを操作して、提示された番組と処理機能の内で、所望の番組と処理機能を選択する。
【０１０７】
ステップ＃３００の「トランスポートストリームＴＳ１〜ＴＳεに対する処理要求検出」サブルーチンにおいて、副次処理要求入力器ＡＰＲは、番組内容提示信号Ｓｐに基づいて、複数のトランスポートストリームＴＳ１〜ＴＳεに対するユーザの処理要求を検出して、処理要求信号Ｓｅを生成してＴＤ制御器ＴＤＣに出力する。
【０１０８】
ステップ＃４００の「トランスポートストリームＴＳ１〜ＴＳεに対する処理内容決定」サブルーチンにおいて、ＴＤ制御器ＴＤＣは処理要求信号Ｓｅに基づいて、マルチフォーマットトランスポートストリームデコーダＴＤ側にて行うべき具体的な処理内容を決定する。具体的には、ＴＤ制御器ＴＤＣは、副次処理要求入力器ＡＰＲから入力された処理要求信号Ｓｅに基づいて、処理対象となる番組、番組に対する処理方法、および処理に要するデバイス等の手段の情報に代表される処理内容情報を生成する。処理内容情報を生成する。
【０１０９】
ステップ＃５００の「処理対象パケットデータ識別情報パケット識別子ＰＩＤｄおよびトランスポートストリーム識別子ＴＳＩＤｄ生成」サブルーチンにおいては、ＴＤ制御器ＴＤＣは、ステップ＃４００において決定された処理内容情報に基づいて処理すべきパケットデータＰを表す処理対象パケットデータ識別情報パケット識別子ＰＩＤｄと、処理すべきパケットデータＰのそれぞれが属するトランスポートストリームＴＳεを示す対象トランスポートストリーム識別情報ＴＳＩＤｄを生成して、パケット選択器４００に出力する。
【０１１０】
ステップ＃６００の「トランスポートストリームＴＳ１〜ＴＳεのパケットデータＰ蓄積」サブルーチンにおいて、マルチフォーマットトランスポートストリームデコーダＴＤに逐次入力されるε本のトランスポートストリームＴＳ１〜ＴＳεに含まれるパケットデータＰ１〜Ｐεのデータバッファリング装置ＤＢＡへのバッファリングが開始される。なお、パケットデータＰｉは、データバッファリング装置ＤＢＡの一次バッファセルＢｃ＿Ｉのそれぞれに、パケットデータＰ／ｎ単位（ｎは自然数）で格納される。本ステップにおける処理については、後ほど図８を参照して詳述する。所定数のパケットデータＰの蓄積が完了した時点で、次のステップ＃７００の処理が開始される。言い換えれば、データバッファリング装置ＤＢＡの複数の一次バッファセルＢｃ＿Ｉの内、所定数のバッファセルＢｃのそれぞれにパケットデータＰが蓄積された状態でステップ＃７００の処理が開始する。
【０１１１】
ステップ＃７００の「トランスポートストリームＴＳ１〜ＴＳεの処理対象パケットデータＰ選択」サブルーチンにおいて、データバッファリング装置ＤＢＡの一次バッファセルＢｃ＿Ｉに順次格納されるパケットデータＰの中で処理対象のものが選択される。具体的には、１つの一次バッファセルＢｃ＿Ｉに格納されているパケットデータＰがステップ＃４００で特定されたパケットデータＰであるかを、ステップ＃５００で決定されたパケット識別子ＰＩＤ（処理対象パケットデータ識別情報ＰＩＤｄ）を有するかを判断することによって、処理対象パケットデータＰとしての選択が行われる。
【０１１２】
ステップ＃８０００の「トランスポートストリームＴＳ１〜ＴＳεのパケットデータＰに要求処理実行」サブルーチンにおいて、ステップ＃７００において選択されたパケットデータＰに対して、ステップ＃４００において決定された内容のユーザ要求処理が実行される。本実施形態においては、一次バッファセルＢｃ＿Ｉに順次格納される複数のトランスポートストリームＴＳ１〜ＴＳεのパケットデータＰ１〜Ｐεの中で、ステップ＃７００で選択された特定の番組の番組コンテンツパケットデータＰのみを抽出して、選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍ（Ｐｅｍ１、Ｐｅｍ２）が抽出される例が示されているが、これについては、後ほど図２６を参照して詳述する。なお、要求処理が特定の番組を構成する番組コンテンツパケットデータＰｃの選択抽出に限らず、種々のデジタル処理の適用が可能であることは言うまでもない。
【０１１３】
＃９００の「トランスポートストリームＴＳ１〜ＴＳεの処理後パケットデータＰ蓄積」サブルーチンにおいて、ステップ＃８０００で抽出された選択複数番組パケットデータ列Ｐｅｍｍがメインメモリ制御器７００に出力されて、複数番組パケットデータ列Ｐｍｓｍが生成される。
なお、上述のようにステップ＃６００は主にハードウェアによる受動的な処理であり、ステップ＃７００〜＃９００は主にソフトウェアによる能動的な処理である。よって、ステップ＃６００とステップ＃７００〜＃９００は好ましくは並行処理として構成される。そのためには、ステップ＃７００における対象処理パケットデータＰ選択サブルーチンを開始する前に、ステップ＃６００において、適正な数だけの一次バッファセルＢｃ＿ＩにパケットデータＰが蓄積されていることが望ましい。これに付いては、後ほど図８を参照して説明する。
【０１１４】
しかしながら、本図においてはステップ＃６００、＃７００、＃８０００、および＃９００を一連の繰り返し処理としての構成を示している。このような構成における動作について簡単に説明する。ステップ＃６００の「トランスポートストリームＴＳ１〜ＴＳεのパケットデータＰ蓄積」サブルーチンを初めて行う場合は、所定数のバッファセルＢｃにパケットデータＰが蓄積されるのを待った後に、ステップ＃７００、＃８０００、および＃９００の処理を連続的に実行する。そして、２回目以降のステップ＃６００においては、所定数ではなく１つの一次バッファセルＢｃ＿ＩにパケットデータＰが格納された後に、ステップ＃７００〜＃９００の処理が実行される。
【０１１５】
次に、図９に示すフローチャートを参照して、上述のステップ＃８００におけるデータバッファリング装置ＤＢＡによる「トランスポートストリームＴＳ１〜ＴＳεのパケットデータＰに要求処理実行」の詳細について説明する。なお、本図においては、図７に関して述べたようにステップ＃６００とステップ＃７００〜＃９００とを並行処理とする場合にも、連続処理とする場合にも適用できる構成を示す。
【０１１６】
まず、ステップＳ８０２において、ＴＤ制御器ＴＤＣは蓄積完了バッファセル番号メモリ２９０から、ライトポインタＷＰおよびリードポインタＲＰのそれぞれの値を読み出す。ライトポインタＷＰは逐次入力されてくる第ｉのトランスポートストリームＴＳｉのパケットデータＰｉを書き込む一次バッファセルＢｃ＿Ｉを択一的に示すパラメータであり、リードポインタＲＰはデータを読み出す対象である一次バッファセルＢｃ＿Ｉを示すパラメータである。そして、処理は次のステップＳ８０４に進む。
【０１１７】
ステップＳ８０４において、ＴＤ制御器ＴＤＣによって、ステップＳ８０２において読み出されたライトポインタＷＰとリードポインタＲＰの値が同一であるか否かが判断される。同一の場合はＹｅｓ、つまり特定のバッファセルＢｃが現在使用中であると判断されて、処理は前述のステップＳ８０４に戻る。これは、バッファセル中に完全な形で格納されていないパケットデータＰに対するアクセスを防止するためである。
【０１１８】
一方、ステップＳ８０４において、同一でない場合はＮｏ、つまりいずれのバッファセルも使用中でないと判断される。これは、パケットデータＰを完全な形で格納されている一次バッファセルＢｃ＿Ｉがあることを意味する。言い換えると、当該パケットデータＰはユーザの要求に対する処理対象候補であるパケットデータＰが少なくとも１つはパケットバッファ２７０に蓄積されていることを意味する。そして、処理は次のステップＳ８０６に進む。
【０１１９】
ステップＳ８０６において、格納されているパケットデータＰ（この時点では処理対象候補）が実際に処理対象であるか否かを調べるためにアクセスする一次バッファセルＢｃ＿Ｉを決定する。具体的には、ＴＤ制御器ＴＤＣはリードポインタＲＰの示すバッファセル指定領域Ｒｃｍからバッファセル番号Ｎｂｃｎを読み出す。なお、後述のステップＳ８１４で処理対象であると判断された場合には、後述のステップＳ８１８において当該パケットデータＰに対してユーザの要求に基づく処理を施すために、同一次バッファセルＢｃ＿Ｉは再度アクセスされる。そして、処理は次のステップＳ８０８に進む。
【０１２０】
上述のように、ステップＳ８０４およびＳ８０６を構成することによって、ステップ＃６００とステップ＃７００〜＃９００とを並行処理とする場合にも、連続処理とする場合にも適用できる。つまり、並行処理とした場合、パケットバッファ２７０に適当数なパケットデータＰが蓄積されていない（最悪、いずれの一次バッファセルＢｃ＿Ｉにも、パケットデータＰが完全に格納されていない）とき、ユーザの要求された処理を実行しようとする事態を回避することができる。また、連続処理とする場合には、上述のようにステップ＃６００とステップ＃７００との開始時間に差を設けて所定数の一次バッファセルＢｃ＿Ｉの蓄積完了を保証するが、トランスポートストリームＴＳの伝送経路上の理由等によりパケットデータＰの蓄積に異常が生じた場合にも、アンダーフローによる処理異常を防止できる。
【０１２１】
ステップＳ８０８において、ステップＳ８０６において、読み出されたバッファセル番号Ｎｂｃｎに対応する一次バッファセルＢｃ＿Ｉに格納されているパケットデータＰから、そのパケットデータＰのパケット識別子ＰＩＤが読み出されて抽出バッファパケット識別情報ＰＩＤｅが生成される。そして、抽出バッファパケット識別情報ＰＩＤｅによって特定された一次バッファセルＢｃ＿Ｉに格納されているパケットデータＰから、そのパケットデータＰの管理情報ＩＭが読み出される。上述のステップＳ８０２〜Ｓ８０８の処理を経て、処理対象候補であるパケットデータＰを格納していると特定された一次バッファセルＢｃ＿Ｉから管理情報ＩＭが読み出されて、格納されているパケットデータＰの抽出バッファパケット識別情報ＰＩＤｅおよび抽出トランスポートストリーム識別子ＴＳＩＤｅが生成される。そして、処理は次のステップＳ８１０に進む。
【０１２２】
ステップＳ８１０において、リードポインタＲＰの示すフラグ格納領域Ｆｃから、格納されているエラーフラグ値が読み出される。そして、処理は、次のステップＳ８１２に進む。
【０１２３】
ステップＳ８１２において、読み出されたエラーフラグ値に基づいて、エラーフラグがＯＮであるか否かが判断される。Ｙｅｓ、つまり処理対象候補であるパケットデータＰはエラーを含んでいると判断される場合は、処理は上述のステップＳ８１４、＃８０００、Ｓ８１８、およびＳ８２０を迂回して、ステップＳ８２２に進み、その一次バッファセルＢｃ＿Ｉは今後入力されてくるパケットデータＰのバッファリングのために解放される。
【０１２４】
一方、ステップＳ８１２において、Ｎｏ、つまり処理対象候補であるパケットデータＰはエラーを含んでいないと判断される場合は、処理は上述のステップＳ８１４、＃８０００、Ｓ８１８、およびＳ８２０を経て、ステップＳ８２２に進む。つまり、当該処理対象候補であるパケットデータＰが実際に処理対象である場合（Ｓ８１４でＹｅｓ）には前述のステップ＃４００Ｒで決定された処理を実行し（＃８０００）、処理済みのパケットデータＰをデータバッファリング装置ＤＢＡ３から出力（Ｓ８２０）した後に、当該バッファセルＢｃを解放（Ｓ８２２）する。また、当該処理対象候補であるパケットデータＰが処理対象でない場合（Ｓ８１４でＮｏ）には、当該バッファセルＢｃは直ちに解放（Ｓ８２２）される。
【０１２５】
ステップＳ８１４において、パケット選択器４００によって、ステップＳ８０８で生成された抽出バッファパケット識別情報ＰＩＤｅおよび抽出トランスポートストリーム識別子ＴＳＩＤｅが上述のステップ＃５００で生成された処理対象パケットデータ識別情報パケット識別子ＰＩＤｄおよびトランスポートストリーム識別子ＴＳＩＤとマッチするか否かが判断される。この場合のマッチとは、抽出バッファパケット識別情報ＰＩＤｅに規定されるパケット識別子ＰＩＤが処理対象パケットデータ識別情報パケット識別子ＰＩＤｄに示されるがパケット識別子ＰＩＤに含まれているとともに、抽出トランスポートストリーム識別子ＴＳＩＤｅがトランスポートストリーム識別子ＴＳＩＤと同一であることを言う。
【０１２６】
Ｙｅｓ、つまりパケット識別子ＰＩＤとトランスポートストリーム識別子ＴＳＩＤの両方に関する同時マッチングを観ることによって、異なるトランスポートストリームＴＳに属する同一のパケット識別子ＰＩＤを有するパケットデータＰであっても、個別に識別できる。本ステップで、Ｙｅｓと判断される、つまり現在アクセス中のパケットデータＰが上述のユーザの要求に基づく処理の対象である場合には、処理は次のステップ＃８０００の「マルチフォーマットパケットデータ処理」サブルーチンに進む。
【０１２７】
ステップ＃８０００において、処理対象とする第ｉのトランスポートストリームＴＳｉごとに固有のフォーマットで構成されたパケットデータＰｉに対して、ユーザの所望する処理が行われる。そして、処理は、次のステップＳ８１８に進む。なお、本サブルーチンにおける処理については、後ほど図１０を参照して説明する。
【０１２８】
ステップＳ８１８においては、上述のステップＳ８１４およびステップ＃８０００を経て、ユーザの要求に応じて適切に処理されたパケットデータＰが、三次バッファセルＢｃ＿０から転送単位ＴＳｄごとに読み出され、パケットバッファ制御器２６０を経由して、ＤＭＡバス調停器２１０へ転送が開始される。そして、処理は次のステップＳ８２０に進む。
【０１２９】
ステップＳ８２０において、ＴＤ制御器ＴＤＣによって、ステップＳ８００で開始された転送単位ＴＳｄごとにそのビット数をカウントすることでＤＭＡバス調停器２１０へのデータ転送が完了したか否かが繰り返し判断される。なお、データ転送が完了した時点で、処理は次のステップＳ８２２に進む。このようにして、上述のステップＳ８０２〜Ｓ８２０を経て、ユーザの要求処理を１つのパケットデータＰに対して完了する。そして、処理は次のステップＳ８２２に進む。
【０１３０】
一方、上述のステップＳ８１０においてＮｏ、つまり現在アクセス中のパケットデータＰは、上述のユーザの要求に基づく処理の対象でないと判断される場合は、処理は上述のステップ＃８０００、Ｓ８１８、およびＳ８２０を迂回して直接ステップＳ８２２に進む。このように、ステップＳ８１４において、抽出バッファパケット識別情報ＰＩＤｅと処理対象パケットデータ識別情報ＰＩＤｄとのマッチングに基づいて、逐次入力されてくるトランスポートストリームＴＳに含まれる全パケットデータＰを個別に処理対象であるか識別する。そして、処理対象であるパケットデータＰのみを選択して、ステップ＃８０００においてユーザの要求に基づく処理を施して、ステップＳ８１８およびＳ８２０を経て、ステップ＃８０００の処理の結果得られるパケットデータＰをデータバッファリング装置ＤＢＡの外部に出力される。
【０１３１】
ステップＳ８２２において、ＴＤ制御器ＴＤＣは、リードポインタＲＰの示すバッファセル番号Ｎｂｃｎに相当する一次バッファセルＢｃ＿Ｉを解放する。具体的には、上述のステップＳ８０６で読み出されたバッファセル番号Ｎｂｃｎに対応する一次バッファセル割当情報領域ＡＩｎに書き込まれている割当識別データを割当無に書き直す。そして、処理は次のステップＳ８２４に進む。
【０１３２】
ステップＳ８２４において、ＴＤ制御器ＴＤＣは、リードポインタＲＰの示すフラグ格納領域Ｆｃのエラーフラグ値をローにすることによってエラーフラグをリセット（ＯＦＦ）する。そして、処理は次のステップＳ８２６に進む。
【０１３３】
ステップＳ８２６において、ＴＤ制御器ＴＤＣは蓄積完了バッファセル番号メモリ２９０におけるリードポインタＲＰの値を進る。これによって、次のパケットデータＰ（リードポインタＲＰが指し示す一次バッファセルＢｃ＿Ｉ）がユーザの要求処理対象候補として設定される。そして、処理は上述のステップＳ８０２に戻る。
【０１３４】
上述のように、逐次入力される複数のトランスポートストリームＴＳ１〜ＴＳεに含まれる複数の番組に対してユーザが選択的に所望する処理を施すためには、異なるトランスポートストリームＴＳに含まれるすべてのパケットデータＰの内で対応するパケットデータＰのみに選択的に処理を施す。しかしながら、異なるトランスポートストリームＴＳにおいては、パケットデータＰの入力レートが異なったり、同一パケット識別子ＰＩＤを有するパケットデータＰが存在したり、複数のパケットデータＰが同一に入力される。
【０１３５】
そこで、本実施形態においては、入力される複数のトランスポートストリームＴＳ１〜ＴＳεのパケットデータＰの個々に、トランスポートストリーム識別子ＴＳＩＤと、タイムスタンプＳｔとを付与することによって、パケットデータＰの１つずつをパケット識別子ＰＩＤとの組合せによって確実に識別することを可能にする。そして、ライトポインタＷＰによって、個々に識別可能にされた複数のトランスポートストリームＴＳ１〜ＴＳεのパケットデータＰのそれぞれを入力されてくる順番に、所定の時間、所定の一次バッファセルＢｃ＿Ｉに閉じ込めるという課程を管理する。そして、リードポインタＲＰによって、閉じ込めたパケットデータＰが処理対象であるかを識別し、処理対象である場合には処理を施した後に出力するという課程を管理する。
【０１３６】
つまり、二次バッファセルＢｃ＿Ｍを処理作業スペースとして利用して一次バッファセルＢｃ＿Ｉに閉じ込めたパケットデータＰに処理を施し、三次バッファセルＢｃ＿０内でパケットデータＰの処理生成物からパケットデータに再構成し、そして再構成されたパケットデータをパケットバッファ２７０の外部に出力する。これらの作業については、後ほど図１０〜図１９を参照して説明する。
【０１３７】
また、トランスポートストリームＴＳにエラーが含まれる場合には、パケットデータＰのバッファリング後の処理が破綻を来すか、マルチフォーマットトランスポートストリームデコーダＴＤ全体の動作効率の低下を招く。そこで、本実施形態においては、データエラーを含むパケットデータＰを格納した一次バッファセルＢｃ＿Ｉをソフトウェア的に管理および解放することによって、このような不都合を防止する。この一連の動作をハードウェアとソフトウェアのハイブリッドな構成によって制御保証するものである。
【０１３８】
なお、上述のごとく、入力される複数のトランスポートストリームＴＳ１〜ＴＳεはそれぞれに固有のパケット識別子ＰＩＤが付与されているパケットデータＰから構成される。このようなトランスポートストリームＴＳに関しては、本発明にかかるマルチフォーマットトランスポートストリームデコーダＴＤによって、トランスポートストリームＴＳを構成するすべてのパケットデータＰに対して、個別に異なる処理を施すことができることは上述の通りである。
しかしながら、入力される複数のトランスポートストリームＴＳ１〜ＴＳεは、図４０を参照して説明した、ＩＴＵ−Ｔ勧告Ｈ．２２０．０に代表されるトランスポートストリームＴＳのようにパケットデータグループごとに固有のパケット識別子ＰＩＤが付与される場合にも適用できる。そのようなトランスポートストリームに関しては、ＴＤ制御器ＴＤＣで生成される処理対象パケットデータ識別情報パケット識別子ＰＩＤｄも、一次バッファセルＢｃ＿Ｉ格納されているパケットデータＰから読みとられる抽出バッファパケット識別情報ＰＩＤｅも共にパケットデータグループを示している。ただし、上述のパケット選択器４００によってマッチングしていると判定された場合には、マッチしたパケット識別子ＰＩＤを有するパケットデータグループに属するすべてのパケットデータＰの内で同一のトランスポートストリームＴＳに属するもののみに対して、同一の処理が施される。
【０１３９】
これは、上述のごとく、図３６に示したパケット構成を有するトランスポートストリームＴＳのすべてのパケットデータＰのパケット識別子ＰＩＤの上位の適当な桁と属するトランスポートストリームＴＳを指定することによって、トランスポートストリームＴＳごとに指定された桁のパケット識別子ＰＩＤが同一であるパケットデータＰをグループとして、グループごとに固有の処理を施すことと実質的に同一である。
【０１４０】
次に図１０を参照して、上述の＃８０００のマルチフォーマットパケットデータ処理サブルーチンの詳細について説明する。本サブルーチンにおいては、まず、ステップ＃８２００の「パケットバッファ格納確認」サブルーチンが実行される。
ステップ＃８２００においては、パケットデータＰｉがストリーム入力器からパケット単位でパケットデータがパケットデータセルに蓄積が完了するのまで待機する。蓄積が終了すると蓄積されたバッファセルＢｃから先頭の管理バイトを読み出す。そして処理は、次のステップ＃８３００の「フォーマット解析」サブルーチンに進む。
【０１４１】
ステップ＃８３００においては、ステップ＃８２００で抽出した管理バイト内のフォーマット識別子（ＦＩＤ）を判定する。該当するフォーマットが存在したら、該当フォーマットの処理へ進む。ここではフォーマット３が該当したものとする。そして、処理は次のステップ＃８４００の「パケットデータフィルタリング制御」サブルーチンに進む。
【０１４２】
ステップ＃８４００において、上述のステップ＃８２００および＃８３００の処理の結果に基づいて、格納したパケットデータを取得するか破棄するかを選別（フィルタリング）する。  該当するパケットバッファセルに格納されたパケットデータからパケット識別子ＰＩＤを抽出する。さらに管理バイト中のトランスポートストリーム識別子ＴＳＩＤを抽出する。このトランスポートストリーム識別子ＴＳＩＤとパケット識別子ＰＩＤをパケット選択器４００に設定し、パケット選択器４００のパケットデータフィルタを起動する。
【０１４３】
なお、このトランスポートストリーム識別子ＴＳＩＤとパケット識別子ＰＩＤをまとめてパケット選択の比較パターンにするのは、マルチストリームの別のストリーム入力器からの入力において、異なる用途にパケット識別子を割り当てている場合にパケット識別子のみでフィルタリングすると取得しないものも取得することもあるので、ストリーム入力器Ｔｒからの入力に対応してパケット選択を行えるようにするためである。
【０１４４】
例えば、例：北米地上波デジタル放送（ＭＰＥＧ−ＴＳ）においては、パケット識別子ＰＩＤ＝０００はＰＡＴ（Ｐｒｏｇｒａｍ Ａｓｓｏｃｉａｔｉｏｎ Ｔａｂｌｅ）である。 ＰＡＴは、放送を受信/デコードするのに必要なパケット識別子ＰＩＤを明記したテーブルマップ（ＰＭＴ）のあるパケット識別子を明記したデータがあるセクションである。
【０１４５】
また、北米衛星デジタル放送（ＤｉｒｅｃＴＶ）においては、パケット識別子（ＳＣＩＤ）＝０００はＮｕｌｌパケットである。Ｎｕｌｌは、放送のビットレートの調整等に埋め込まれるパケットであり、情報は存在しない（ＴＤでは破棄されるパケット）。米国にての商用で地上波デジタル/衛星デジタルを同時受信するとき、マルチフォーマットトランスポートストリームデコーダＴＤにてトランスポートストリーム識別子ＴＳＩＤ＝０から北米地上波/トランスポートストリーム識別子ＴＳＩＤ＝１から北米衛星を接続し受信したときＰＡＴを取得するために、パケット識別子＝０００のみでパケット選択を行うと不要な北米衛星のＮＵＬＬパケットまで、取得してしまう。これらを避けるため、（トランスポートストリーム識別子ＴＳＩＤ/ＰＩＤ）＝（０/０００）のパターンでパケット選択を行う。）
【０１４６】
このため、制御器ＰＢＡＣはパケット選択の結果をリードし、パケット選択するものとして設定したパターンと一致したか否かを判断する。そして、処理は次のステップ＃８５００の「アクセス対象パケットに対応する処理要求テーブル解析」サブルーチンに進む。
【０１４７】
ステップ＃８５００において、ステップ＃８４００において、ＦＭＴ１のパケット選択器４００で比較一致したパケットを取得し、処理要求に応じた処理を行うための前準備を行う。パケット選択器４００で比較一致した場合、設定フィルタパターンに対応して、ＴＤ制御器ＴＤＣから設定された処理要求テーブルＰｄｔを読み出す。この処理要求テーブルＰｄｔは設定フィルタパターンごとに用意されている。制御器ＰＢＡＣでは、一致した設定パターン用の処理要求テーブルＰｄｔを読み出す。これ以後の処理は、この取り出した処理要求テーブルＰｄｔにおける各パラメータの値に基づいて行われる。そして、処理は次のステップ＃８６００の「デスクランブル制御」サブルーチンに進む。
【０１４８】
ステップ＃８６００においては、制御器ＰＢＡＣがパケットデータのスクランブル情報を示すデータであるＴＳＣ（Ｔｒａｎｓｐｏｒｔ Ｓｃｒａｍｂｌｅ Ｃｏｎｔｒｏｌｌｅｒ：【規格名を明記】）を抽出し、＃５００＿ＦＭＴで読み出した処理要求テーブルＰｄｔのパラメータを解析し、デスクランブル処理を行うかを判断する。パケットデータにスクランブルがかかっていて（ＴＳＣで判断）かつ、処理要求テーブルＰｄｔでデスクランブルを行う設定（パラメータ４とパラメータ７のいずれかが「実行」）の場合に、デスクランブル器１１００にてデスクランブル処理を起動する。それ以外の場合はデスクランブル制御器を起動せずに、処理は次のステップ＃８７００の「パケットデータパターン選別制御」サブルーチンに進む。
【０１４９】
ステップ＃８７００においては、パケットデータパターン選別を行うセクションデータ選別器１２００を制御する。セクションデータ選別器１２００は制御器ＰＢＡＣから転送されたパケットデータが、ＴＤ制御器ＴＤＣから設定された設定パターンと一致するかを比較（フィルタリング）し、その設定パターンと一致したデータだけを取得する処理を行う。セクションデータ選別器１２００からのフィルタリングの結果を制御器ＰＢＡＣが読み出し、結果に応じて一致したデータのサイズを解析し、そのデータサイズ分の取得データ情報を保持し、次のメインメモリ９００に出力するためのメインメモリ制御に進む。またセクションデータ選別器１２００で取得した結果に対し、制御器ＰＢＡＣのみで付加データを追加することも可能である。この場合はセクションデータ選別器１２００で取得したデータサイズに制御器ＰＢＡＣが付加する付加データサイズ分を加算して保持する。そして、処理は、次のステップ＃８８００の「メインメモリ制御」サブルーチンに進む。
【０１５０】
ステップ＃８８００においては、最終のメインメモリ９００に出力するためのメインメモリ制御器７００の制御を行う。前述の通り、＃８７００の「パケットデータパターン選別制御（Ｑ：「サービス情報選出制御」では？）」サブルーチンまでの処理で、最終的メインメモリ９００に出力するデータが作成される。同時に制御器ＰＢＡＣは、この時点までで、メインメモリ９００に出力するデータサイズ、データの格納されているパケットバッファのアドレスを管理している。また制御器ＰＢＡＣは処理要求テーブルＰｄｔのメインメモリ出力情報（パラメータ５）にある出力チャンネルをメインメモリ制御器７００に通知し、これらの出力データをメインメモリ制御器７００に転送する。メインメモリ制御器７００はこの情報を基に指定した出力チャンネルに出力データをメインメモリ９００に格納していく。そして、処理は次のステップ＃８９００の「ストリーム出力制御」サブルーチンに進む。
【０１５１】
ステップ＃８９００においては、マルチフォーマットトランスポートストリームデコーダＴＤからメインメモリ９００とは異なる経路からパケットデータの出力の制御が行われる。つまり、本発明にかかるマルチフォーマットトランスポートストリームデコーダＴＤでは、マルチストリーム/フォーマット処理が可能であるとともに、マルチストリーム出力も可能である。ストリーム出力器１３００はステップ＃８８００において、メインメモリ９００に格納するのと同時に別径路からパケットデータを出力するための出力手段として設けられている。
ここでは、このストリーム出力器１３００を制御してメインメモリ出力と同時に別径路からストリーム出力する制御を行う。制御器ＰＢＡＣは、処理要求テーブルＰｄｔのストリーム出力情報（パラメータ６）によりストリーム出力するかを判断する。
【０１５２】
ストリーム出力情報がアクティブでストリーム出力する場合は、ストリーム出力するパケットデータをストリーム出力器１３００に転送する。ストリーム出力器１３００に転送するデータは時間情報を含んだ管理バイトも含めて転送する。ストリーム出力器１３００は制御器ＰＢＡＣからのパケットデータを受け取り、初めに管理バイトの時間情報（ＡＴＳ）をセットする。ＴＤ制御器ＴＤＣから設定されたストリーム出力遅延値を同時にセットし、現在の時間（タイマ値）がＡＴＳ＋ストリーム出力遅延値に達した時点で、パケットデータを外部径路に出力する。このとき、管理バイトは判断基準にだけ用いられ、実パケットデータのみが出力される。
【０１５３】
制御器ＰＢＡＣはストリーム出力器１３００でのストリーム出力が終わるのを管理し、終了したのを判断すると、割り当てられていたパケットバッファセルを開放して、次の入力パケットデータに再割当が可能な状態にしておく。
【０１５４】
以上により、１つのパケットデータが１つのパケットバッファセルの割り当てられてからの一連の流れであり、この一連の処理が終了すると、再度ステップ＃８３００から次のパケットバッファセルに対して処理が行われる。
ここでは、ステップ＃８３００から＃８９００までの流れを説明したが、ステップ＃８３００から＃８９００までの処理を行っている時間内でも入力ストリームは受信された瞬間に、パケットバッファセルに逐次到着順に格納される。
【０１５５】
次に、図１１を参照して、上述のステップ＃８２００における「パケットバッファ確認」サブルーチンの詳細について述べる。
本サブルーチンが開始されると、まず、ステップＳ８２０２において、制御部自体が持つ、制御器ＰＢＡＣ用制御テーブルＣｌｔ、制御用として使用するステータス信号を初期化し、前パケットで使用した情報をいったんクリアする。そして、処理は次のステップＳ８２０４に進む。
【０１５６】
ステップＳ８２０４においては、書込先バッファセル指定器２５０よりライトポインタＷＰおよびリードポインタＲＰを読み出す。そして、読み出されたライトポインタＷＰとリードポインタＲＰが同一であるか否かが判断される。同一であると判断される場合は、処理はステップＳ９２０６に進む。一方、ＷＰとＲＰが同じでない場合には、処理はステップＳ８２０８に進む。
【０１５７】
ステップＳ８２０６においては、第ｉストリーム入力器ＴＳＲｉから入力されるパケットデータｉのパットバッファ２７０への転送が完了するまで待機する。これは、ライトポインタＷＰはパケットバッファにパケットが格納されるとハードウェアにより１インクリメントされるので、ライトポインタＷＰとリードポインタＲＰが同一の場合には制御器ＰＢＡＣで処理する対象のパケットが存在しない。そのため、パケットバッファにパケットデータが格納されるのを待つのである。そして、処理は次のステップＳ８２０８に進む。
【０１５８】
ステップＳ８２０８においては、既に、上述のステップＳ８２０４あるいはＳ８２０６を経て、処理対象候補のパケットデータを格納していることが確認されてているバッファセルＢｃを特定する。つまり、バッファセル割当情報格納器２４０より一次バッファセル割当情報Ｉｂａを読み出す。一次バッファセル割当情報Ｉｂａは、現在のＲＰの示すバッファセル番号Ｎｂｃである。この処理により、制御器ＰＢＡＣが処理するバッファセルＢｃを知る。そして、処理は次のステップＳ８２１０に進む。
【０１５９】
ステップＳ８２１０において、リードポインタＲＰを１インクリメントする。リードポインタＲＰはソフトウェアで制御する。つまり、ステップＳ８２０８において特定された処理対象パケットバッファセルを検知されたので、次のパケット入力完了時点のバッファセル番号Ｎｂｃを格納できる状態にするのである。そして、処理は次のステップＳ８２１２に進む。
【０１６０】
ステップＳ８２１２において、蓄積完了バッファセル番号メモリ２９０より、割当られたバッファセル番号Ｎｂｃが読み出される。これによって、蓄積完了バッファセル番号メモリ２９０に保持されている、ステップＳ８２１０において割り当られたバッファセルＢｃに蓄積が完了しているパケットデータの蓄積結果を知るものである。そして、処理は次のステップＳ８２１４に進む。
【０１６１】
ステップＳ８２１４において、ステップＳ８２１２において読み出したバッファセル番号Ｎｂｃを、パケット処理に必要な制御テーブルＣｌｔに保存する。制御テーブルＣｌｔのパラメータを図２８に示す。バッファセル番号Ｎｂｃは制御テーブルＣｌｔのパラメータＰＭｃ６（入力ＴＳＰ用バッファセル）に保存する。そして、処理は次のステップＳ８２１６に進む。
【０１６２】
ステップＳ８２１６において、ステップＳ８２１２に読み出された、蓄積されたパケットバッファセルにある管理バイトを抽出する。そして、処理は次のステップＳ８２１８に進む。
【０１６３】
ステップＳ８２１８において、ステップＳ８２１６において読み出された管理バイトの情報の内、ＦＩＤ値を制御テーブルＣｌｔのパラメータＰＭｃ９（フォーマット識別子）に保存する。そして、本「パケットバッファ格納確認」サブルーチンの処理を終了する。
【０１６４】
ストリーム入力器ＴＳＲはＴＤ制御器ＴＤＣより入力ストリームＴＳのフォーマット、第１〜第εストリーム入力器ＴＳＲ１〜ＴＳＲεの接続を指定した後、ストリームの供給を開始する。このときＴＤ制御器ＴＤＣにより、マルチフォーマットトランスポートストリームデコーダＴＤの動作が開始した時点から、タイマ６００により、時間をカウントする。ストリームの供給が開始され、図１のバッファセル割当器２３０によりバッファセルＢｃを割り当て、パケット入力が開始した時点のタイマ６００の値（時間情報）を管理バイトＢＭのパケット到着時間情報ＡＴＳに付加する。
【０１６５】
同様にＴＤ制御器ＴＤＣより設定されたフォーマット値をフォーマット識別子ＦＩＤに、第１〜第εストリーム入力器ＴＳＲ１〜ＴＳＲεの接続を指定で接続した第ｉストリーム入力器ＴＳＲｉの番号（ｉ）をマルチストリーム識別子トランスポートストリーム識別子ＴＳＩＤ付加して、素性管理バイトＢＭｈを構成する。
ストリーム出力設定情報ＨＳＯＵＴは、パケットデータの入力時点においては、情報は格納されていない。この管理バイトの後に実データＰＤ指定されたパケットバッファセルに実データＰＤを逐次格納する。
【０１６６】
なお、上記では実データＰＤの前に管理バイトを付加したが、図２３および図２４に示すように、実データＰＤの後に管理バイトを付加する場合も考えられる。この場合、フォーマット識別子ＦＩＤおよびトランスポートストリーム識別子ＴＳＩＤを付加する手段は上記の場合と同一である。パケット到着時間情報ＡＴＳは、図１のバッファセル割当器２３０によりバッファセルＢｃの割当が決定され、指定バッファセルＢｃに指定サイズのパケットデータの格納が終了した時点のタイマ６００の値（時間情報）が付加されて生成される。以後の処理はこの付加した管理バイト情報を利用して処理を行う。
【０１６７】
上述のステップ＃８２００における「パケットバッファ確認」サブルーチンにおいて得られたフォーマット識別子ＦＩＤにより、次のステップ＃８３００の「フォーマット解析」サブルーチンが実行されて、入力されるトランスポートストリームＴＳそれぞれに固有のフォーマットに対応するフォーマット処理が認識される。
【０１６８】
次に、図１２を参照して、ステップ＃８４００の「パケットデータフィルタリング」サブルーチンの詳細にすいて説明する。上述のステップ＃８３００における「フォーマット解析」にて得られたフォーマット識別子ＦＩＤに応じてフォーマット処理が決定する。ここではその１つのフォーマットについての処理について説明するが、トランスポートストリームＴＳごとにあらかじめ定められたフォーマットにしたがって同様に処理されることは言うまでもない。
【０１６９】
初めに、ステップＳ８４０２において、パケットデータ内のエラー情報が抽出される。例えばＭＰＥＧの場合は、ＴＥＩ（Ｔｒａｎｓｐｏｒｔ Ｅｒｒｏｒ Ｉｎｄｉｃａｔｏｒ）がエラー情報に相当する。そして、処理は次のステップＳ８４０４に進む。
【０１７０】
ステップＳ８４０４において、前記のステップＳ８２１６で抽出された管理バイトＢＭのトランスポートストリーム識別子ＴＳＩＤを制御テーブルＣｌｔのパラメータＰＭｃ８に保存する。そして、処理は次のステップＳ８４０６に進む。
【０１７１】
Ｓ８４０６において、ステップＳ８４０２で抽出されたエラー情報に基づいて、処理中のパケットデータがエラーであるか否かを判定する。ストリームが正常ストリームの場合は、処理は次のステップＳ８４０８に進む。一方、処理中のパケットデータがエラーパケットである場合には、処理はステップＳ８４１８に進む。
【０１７２】
ステップＳ８４０８において、パケットデータ内のパケット識別子ＰＩＤを抽出する。このパケット識別子ＰＤＩＤと前述のステップＳ８４０４において保存されたトランスポートストリーム識別子ＴＳＩＤをパケット選択器４００に設定してパケット選択処理を起動させる。そして、処理は次のステップＳ８４１０に進む。
【０１７３】
ステップＳ８４１０において、パケット選択器４００は、ステップＳ８４０８のパケット選択処理起動に応じて、パケット選択処理を開始する。パケット選択器４００はＴＤ制御器ＴＤＣにより設定された取得するパケットの情報と処理中のパケットのトランスポートストリーム識別子ＴＳＩＤ/パケット識別子ＰＩＤを比較（フィルタリング）する。つまり、処理対象トランスポートストリーム識別子ＴＳＩＤｄと抽出トランスポートストリーム識別子ＴＳＩＤｅとを比較し、処理対象パケットデータ識別情報ＰＩＤｄと抽出バッファパケット識別情報ＰＩＤｅとを比較する。制御器ＰＢＡＣはパケット選択器４００のパケット選択（フィルタリング）処理が終了するまで待機する。パケット選択器４００は、パケット選択処理が完了すると制御部にパケット選択処理が完了したことを通知する。そして処理は、次のステップＳ８４１２に進む。
【０１７４】
ステップＳ８４１２において、上述のステップＳ８４１０におけるパケット選択完了を認識後、パケット選択の結果をパケット選択器４００から読み出す。そして、ステップＳ８４１０における照合結果が一致であるか否かが判断される。照合結果が一致の場合には、処理は次のステップＳ８４１４に進む。一方照合結果が不一致の場合、処理は後述のステップＳ８４１６に進む。
【０１７５】
ステップＳ８４１４において、ステップＳ８４１２でのパケット選択の結果判定により比較一致した設定パターンの情報（以下：エントリと呼ぶ）を制御テーブルＣｌｔのパラメータＰＭｃ４に保存する。そして、本サブルーチンの処理を終了する。
【０１７６】
一方、ステップＳ８４１６において、上述のＳ８４１４で比較不一致との判定に応じて、制御テーブルＣｌｔのパラメータＰＭｃ１（パケット情報）を１（パケット選択不一致）に更新する。このルーチンに到達した場合、処理パケットは不要なパケットであることを示し、以後のパケット処理は不用である。よって、本サブルーチンを終了して、処理は、前述のステップ＃８５００、＃８６００、および＃８８００のサブルーチンをスキップして、ステップ＃８９００の「ストリーム出力制御」サブルーチンにおける後述の「パケットセル開放」へ進む。
【０１７７】
また、ステップＳ８４１８においては、上述のステップＳ８４０６におけるエラーパケットであるとの判定に応じて、制御テーブルＣｌｔのパラメータＰＭｃ（パケット情報）を２（入力ストリームエラー）に更新する。前述のステップＳ８４１６のパケット選択結果不一致の場合と同様に、このルーチンに到達した場合、処理パケットは不要なパケットであることを示し、以後のパケット処理は不用である。このため、本サブルーチンを終了して、処理は＃９００の「パケットセル開放」へ進む。
【０１７８】
次に、図１３を参照して、＃８５００の「アクセス対象パケットデータに対応する処理要求テーブル取得」サブルーチンの詳細について説明する。前述のステップ＃８４００の「パケットデータフィルタリング制御」サブルーチンと同様に、本サブルーチンにおいても、ステップ＃８３００の「フォーマット解析」サブルーチンで得られたフォーマット識別子ＦＩＤに応じて、トランスポートストリームＴＳのフォーマットごとに処理要求テーブルは設定される。なお、以下に、１つのフォーマットを例示して説明するが、各フォーマットごとに以下に述べる処理が適応できることは言うまでもない。なお、本サブルーチン処理は、前述のステップ＃８４００の「パケットデータフィルタリング制御」サブルーチンのパケット選択処理にて、取得すべきパケットデータであると判定された場合のみ実行されることは既に述べた通りである。
【０１７９】
本サブルーチンの処理について具体的に述べる前に、まず図２８（制御テーブル構成）および図３１（処理要求テーブル）を参照して、制御テーブルＣｌｔおおよび処理要求テーブルＰｄｔについて説明する。ステップ＃８４００におけるパケットの取得は、ＴＤ制御器ＴＤＣから設定されるパケット識別子ＰＩＤｄと入力パケットデータのパケット識別子ＰＩＤｅを比較（フィルタリング）することで判定されることは既に説明した。図１のマルチフォーマットトランスポートストリームデコーダＴＤでは、同様にＴＤ制御器ＴＤＣで設定される処理要求テーブルＰｄｔにより、取得したパケットの処理を決定する。すなわちＴＤ制御器ＴＤＣは取得パケットのパケット識別子ＰＩＤｅと取得パケットに対する処理要求テーブルＰｄｔを合わせて設定する。
【０１８０】
図３１に、処理要求テーブルＰｄｔの一例を示す。なお、処理要求テーブルＰｄｔは、制御信号ＳｃＷに含まれて、パケットバッファリング調停器ＰＢＡｃに供給される情報である。処理要求テーブルＰｄｔには、主に、デスクランブル、メインメモリ出力、ストリーム出力を行うかの指定および各処理に必要な情報が記載されている。
【０１８１】
処理要求テーブルＰｄｔは、７つのパラメータＰＭｄ１、ＰＭｄ２、ＰＭｄ３、ＰＭｄ４、ＰＭｄ５、ＰＭｄ６、およびＰＭｄ７を含む。パラメータＰＭｄ１は、０あるいは１の値で表され、処理要求テーブルＰｄｔの使用情報に対応する。つまり、パラメータＰＭｐ１が０は処理要求テーブルＰｄｔが無効であることを示し、パラメータＰＭｐ１が１は処理要求テーブルＰｄｔが有効であることを示す。
【０１８２】
パラメータＰＭｐ２は、メインメモリ９００に出力する選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍの形式を指定する出力形式情報に対応する。
パラメータＰＭｐ３は、例えばＯ〜Ｐでデスクランブルキーが格納されている番号を表すデスクランブル情報に対応する。
【０１８３】
パラメータＰＭｐ４は、０あるいは１の値で表され、デスクランブルイネーブル情報に対応する。パラメータＰＭｐ４が０はデスクランブルが未実行であることを示し、パラメータＰＭｐ４が１はデスクランブルが実行されていることを示す。
【０１８４】
パラメータＰＭｐ５は、０〜ＣＨＮ（ＣＨＮは任意の自然数）で表されるメインメモリ出力情報に対応する。０〜ＣＨＮは、メインメモリ９００に出力するときのチャンネル番号を示す。
【０１８５】
パラメータＰＭｐ６は、０あるいは１の値で表され、ストリーム出力情報に対応する。パラメータＰＭｐ６が０は、ストリーム出力に対して処理要求テーブルＰｄｔが無効であることを示す。パラメータＰＭｐ６が１は、処理要求テーブルＰｄｔがストリーム出力に対して有効であることを示す。
【０１８６】
パラメータＰＭｐ７は、０あるいは１の値で表され、ストリーム出力デスクランブルイネーブル情報に対応する。パラメータＰＭｐ７が０は、ストリーム出力の際に、デスクランブルを行わないことを示す。パラメータＰＭｐ７が１は、ストリーム出力の際に、デスクランブルを行うことをことを示す。このようにして、処理要求テーブルＰｄｔには、トランスポートストリームＴＳごとにユーザの要求に応じて処理すべき情報が記載されている。
【０１８７】
次に、図２８に、制御テーブルＣｌｔの一例を示す。なお、制御テーブルＣｌｔは、複数の信号に基づいて、制御器ＰＢＡＣによって生成される情報である。制御テーブルＣｌｔは、１０のパラメータＰＭｃ１、ＰＭｃ２、ＰＭｃ３、ＰＭｄｃ、ＰＭｃ５、ＰＭｃ６、ＰＭｃ７、ＰＭｃ８、ＰＭｃ９、およびＰＭｃ１０を含む。
【０１８８】
パラメータＰＭｄ１は、０、１、あるいは２の値で表され、パケットデータ情報に対応する。つまり、パラメータＰＭｃ１が０は、パケットデータが正常であることを示す。パラメータＰＭｃ１が１は、パケットデータ選択不一致、つまりバッファセルＢｃに格納されているパケットデータは、処理対象ではないことを示す。パラメータＰＭｃ１が２は、入力ストリームエラーを示す。
【０１８９】
パラメータＰＭｃ２は、０あるいは１で表され、スクランブル情報に対応する。パラメータＰＭｃ２が０は、パケットデータはスクランブルされていないことを示す。パラメータＰＭｃ２が１は、パケットデータはスクランブルされていることを示す。
【０１９０】
パラメータＰＭｃ３は、０あるいは１で表され、デスクランブル情報に対応する。パラメータＰＭｃ３が０は、デスクランブルが未実行であることを示す。パラメータＰＭｃ３が１は、デスクランブル実行されている（？）を示す。
【０１９１】
パラメータＰＭｃ４は、０あるいは１の値で表され、ストリーム出力デスクランブル情報に対応する。パラメータＰＭｃ４が０は、デスクランブルが未実行であることを示し、パラメータＰＭｃ４が１はデスクランブルが実行されていることを示す。
【０１９２】
パラメータＰＭｃ５は、０〜Ｎ−１（Ｎは任意の自然数）の値で表されるパケット照合結果（エントリ）情報に対応する。０〜Ｎ−１のそれぞれは、照合結果を表すエントリの番号を示す。
【０１９３】
パラメータＰＭｃ６は、０〜Ｍ（Ｍは任意の自然数）の値で表され、入力ＴＳＰ要バッファセル情報に対応する。０〜Ｍのそれぞれは、入力されたパケットデータを格納したバッファセルＢｃのバッファセル番号Ｎｂｃを示す。
【０１９４】
パラメータＰＭｃ７は、０〜Ｍ（Ｍは任意の自然数）の値で表され、デスクランブルＴＳＰ用バッファセル情報に対応する。０〜Ｍのそれぞれは、デスクランブルされたパケットデータを格納したバッファセルＢｃのバッファセル番号Ｎｂｃを示す。
【０１９５】
パラメータＰＭｃ８は、１〜εの値で表され、ストリーム入力器ＴＳＲ１〜εのそれぞれを示すストリーム識別子ＴＳＩＤに対応する。
【０１９６】
パラメータＰＭｃ９は、１〜Ｌ（Ｌは任意の自然数）の値で表され、トランスポートストリームＴＳごとに定められた所定のフォーマットを示すフォーマット識別子ＦＩＤに対応する。
【０１９７】
パラメータＰＭｃ１０は、該当パケットデータに対する処理要求一覧を記載した処理要求テーブルＰｄｔを示す。このようにして、制御テーブルＣｌｔには、処理対象であるパケットデータに対する制御情報が記載される。
【０１９８】
図１３に示すように、ステップ＃８５００の実行が開始されると、まずステップＳ８５０２において、前記パケット選択処理で取得されたパケットデータに一致したエントリに対応する処理要求テーブルＰｄｔが制御信号ＳｃＷから読み出される。つまり、制御テーブルＣｌｔのパラメータＰＭｃ１０に記載されている処理要求テーブルＰｄｔが読み出される。そして、処理は次のステップＳ８５０４に進む。
【０１９９】
ステップＳ８５０４において、読み出されたした処理要求テーブルＰｄｔにおけるパラメータＰＭｃ１〜ＰＭｃ７の値を、制御テーブルＣｌｔのパラメータＰＭｃ１〜ＰＭｃ１０の対応するものに付加するして、制御テーブルＣｌｔを生成する。これはＴＤ制御器ＴＤＣが設定する処理要求テーブルＰｄｔを読み出すだけでも対応できる。しかしながら、ＴＤ制御器ＴＤＣは動的にこの処理要求テーブルＰｄｔを更新することが可能であり、さらに、マルチフォーマットトランスポートストリームデコーダＴＤはパケット取得設定時のテーブルの情報で処理する必要あるために、制御テーブルＣｌｔで管理を行う。そして、処理は、次のステップＳ８５０６に進む。
【０２００】
ステップＳ８５０６においては、ステップＳ８５０２で取得した処理要求テーブルＰｄｔのパラメータＰＭｐ６（ストリーム出力情報）の値を処理管理バイトＢＭｐのストリーム出力要求情報ＨＳＯＵＴにセットする。これは後段のストリーム出力処理（＃８９００）において、ストリーム出力器１３００がこの処理管理バイトＢＭｐに基づいてストリーム出力を判断するためである。そして、処理は次のステップＳ８５１０に進む。
【０２０１】
ステップＳ８５１０において、ステップＳ８５０２で取得した処理要求テーブルＰｄｔのテーブル使用情報（ＰＭｐ１）により、取得した処理要求テーブルＰｄｔの情報が有効であるかを判断する。処理要求テーブルＰｄｔが有効である場合、処理要求テーブルＰｄｔの取得は終了して、本サブルーチンを終了する。一方、処理要求テーブルＰｄｔが無効である場合は、処理はステップＳ８５１２に進む。
【０２０２】
ステップＳ８５１２において、制御テーブルＣｌｔのパケット情報（ＰＭｃ１）の値を２（パケット選択不一致）に更新する。つまり、処理要求テーブルＰｄｔが無効である場合には、入力されるパケットデータがエラーであると管理する。
【０２０３】
以上がステップ＃８５００の「アクセス対象パケットデータに対応する処理要求テーブル取得」サブルーチンの詳細である。なお、図２に示したように、管理バイトＢＭが実データＰＤの先頭に付加したときの処理について説明したが、図２３および図２４に示す示すような、管理バイトＢＭが実データＰＤの後ろに付加された場合でも同一のマルチフォーマットトランスポートストリームデコーダＴＤが適用できることを、図１４に示すフローチャートを参照して説明する。
【０２０４】
管理バイトＢＭが実データＰＤの後ろに付加される場合では、図１４に示すように、パケットデータの実データＰＤの先頭に付加される場合（図１３）のフローチャートにおけいて、ステップＳ８５０６とＳ８５１０の間にステップＳ８５０８の処理が新たに設けられる。つまり、前述のステップＳ８５０８においては、処理管理バイトＢＭｐ中のストリーム出力要求情報ＨＳＯＵＴを更新した。しかしながら、管理バイトＢＭが実データＰＤの後ろに付加される場合は、図２３および図２４に示すように、ストリーム出力要求情報ＨＳＯＵＴを設定した素性管理バイトＢＭｈをバッファセルＢｃの先頭に処理管理バイトＢＭｐとして書き込む。これにより以後の処理は同一に処理することが可能となる。
【０２０５】
次に、図１５、図２８、図３１、図３２、および図３３を参照して、上述のステップ＃８６００の「デスクランブル制御」サブルーチンの詳細について説明する。上述のステップ＃８４００および＃８５００において、アクセス対象パケットデータを選択し、処理パケットデータに対する処理内容を記載した処理要求テーブルＰｄｔが取得されると、本サブルーチンが開始される。
【０２０６】
まず、ステップＳ９６０２において、処理対象のパケットデータのスクランブル判定フィールドが抽出される。トランスポートストリームＴＳがＭＰＥＧに基づく場合、ＴＳＣ（Ｔｒａｎｓｐｏｒｔ Ｓｃｒａｍｂｌｅ Ｃｏｎｔｒｏｌ）がスクランブル判定フィールドに当てはまる。このスクランブル判定フィールドによりアクセス対象パケットデータに対するスクランブルの有無を知ることができる。そして、処理は次のステップＳ８６０４に進む。
【０２０７】
ステップＳ８６０４において、前述のステップ＃８５００において取得された処理要求テーブルＰｄｔのデスクランブルイネーブル（パラメータＰＭｐ４）、ストリーム出力デスクランブルイネーブル（パラメータＰＭｐ７）を読み出す。そして、処理は次のステップＳ８６０６に進む。
【０２０８】
ステップＳ８６０６において、ステップＳ８６０２で読み出したスクランブル判定フィールドと、ステップＳ８６０４で読み出したデスクランブルイネーブル（ＰＭｐ４）およびストリーム出力デスクランブルイネーブル（ＰＭｐ７）に基づいて、スクランブル処理を実行するか否かが判断される。まずスクランブル判定フィールドでパケットデータにスクランブルがかかっていないと判断できる場合、処理はＳ８６１０Ｃに進む。スクランブル判定フィールドでパケットデータにスクランブルがかかっていると判断できる場合には、処理はステップＳ８６０８に進む。
【０２０９】
ステップＳ８６０８において、ステップＳ８６０４で読み出されたデスクランブルイネーブル（パラメータ４）およびストリーム出力デスクランブルイネーブル（パラメータ７）でデスクランブル処理を実行するかを判断する。つまり、パラメータＰＭｐ４およびパラメータＰＭｐ７の少なくともいずれかの値が１であれば、デスクランブルを実行すると判断される。そして、処理はステップＳ８６１０Ｂに進む。一方、パラメータＰＭｐ４およびパラメータＰＭｐ７の値が共に１でなければ、デスクランブルを実行しないと判断される。そして処理は、ステップＳ８６１０Ａに進む。
【０２１０】
ステップＳ８６１０Ａにおいて、上述のステップＳ８６０８におけるデスクランブルを実行しないとの判断に基づいて、制御テーブルＣｌｔのスクランブル情報（ＰＭｃ２）、デスクランブル情報（ＰＭｃ３）、およびストリーム出力デスクランブル情報（ＰＭｃ４）の値が設定される。そして、本サブルーチンの処理終了する。
【０２１１】
ステップＳ８６１０Ｃにおいては、上述のステップＳ８６０６におけるパケットデータがスクランブルされていないとの判断に基づいて、制御テーブルＣｌｔのスクランブル情報（ＰＭｃ２）、デスクランブル情報（ＰＭｃ３）、およびストリーム出力デスクランブル情報（ＰＭｃ４）の値が設定される。そして、本サブルーチンの処理終了する。
【０２１２】
ステップＳ８６１０Ｂにおいては、上述のステップＳ８６０８におけるデスクランブルを実行するとの判断に基づいて、制御テーブルＣｌｔのスクランブル情報（ＰＭｃ２）、デスクランブル情報（ＰＭｃ３）、およびストリーム出力デスクランブル情報（ＰＭｃ４）の値が設定される。そして、処理は次のステップＳ８６１２に進む。
【０２１３】
図３２を参照して、デスクランブル実行可否判定について説明する。同図において、左からスクランブル判定フィールド欄、パラメータＰＭｐ４欄、パラメータＰＭｐ７欄、デスクランブル実行欄、パラメータＰＭｃ２欄、パラメータＰＭｃ３欄、パラメータＰＭｃ４欄、および書換スクランブル判定フィールド欄が設けられている。なお、パラメータＰＭｐ４およびＰＭｐ７は処理要求テーブルＰｄｔを構成するパラメータであり、パラメータＰＭｃ２、ＰＭｃ３、およびＰＭｃ４は制御テーブルＣｌｔを構成するパラメータであることは上述の通りである。
【０２１４】
スクランブル判定フィールド欄の値は、被スクランブルデータＤｓｄｉから抽出される。パラメータＰＭｐ４およびパラメータＰＭｐ７は制御信号ＳｃＷに含まれる処理要求テーブルＰｄｔから抽出される。デスクランブル実行欄は、スクランブル判定フィールド欄、パラメータＰＭｐ４欄、およびパラメータＰＭｐ７欄の値に基づいて、未実行／実行のいずれかが格納される。
【０２１５】
パラメータＰＭｃ２は、スクランブル判定フィールドおよびパラメータＰＭｐ４の値に基づいて、０（スクランブルなし）あるいは１（スクランブル）のいずれかがセットされる。
パラメータＰＭｃ３は、パラメータＰＭｐ４およびデスクランブル実行の値に基づいて、０（デスクランブル未実行）あるいは１（デスクランブル実行）のいずれかがセットされる。
パラメータＰＭｃ４は、パラメータＰＭｐ７およびデスクランブル実行の値に基づいて、０（デスクランブル未実行）あるいは１（スクランブル実行）のいずれかがセットされる。
書換スクランブル判定フィールドは、スクランブル判定フィールドおよびパラメータＰＭｐ４の値に基づいて、０（書換）あるいは１（非書換）のいずれかがセットされる。
【０２１６】
前述のステップＳ８６０６およびＳ８６０８で設定された情報に基づき、図３２に示す関係に基づいて、制御テーブルＣｌｔのスクランブル情報（ＰＭｃ２）、デスクランブル情報（ＰＭｃ３）、およびストリーム出力デスクランブル情報（ＰＭｃ４）がセットされる。
【０２１７】
ステップＳ８６１２において、パケットデータ内のスクランブル判定フィールドの値を書き換える。ここではスクランブル有をスクランブル無に変更するように書き換える。そして、処理は次のステップＳ８６１４に進む。
【０２１８】
ステップＳ８６１４において、パケットバッファの中間処理用バッファセルイネーブルが読み出される。この中間処理用バッファセルイネーブルは中間処理用バッファセルイネーブルがイネーブルの場合、イネーブルに該当するパケットバッファセルが使用中であることを示す。そして、処理は次のステップＳ８６１６に進む。
【０２１９】
ステップＳ８６１６において、ステップＳ８６１４で読み出された中間処理用バッファセルイネーブルにより、未使用バッファセルＢｃがあるか否かが判定される。未使用パケットセルＢｃがない場合は、この部分で使用可能なバッファセルができるのまで待機する。そして、処理は次のステップＳ８６１８に進む。
【０２２０】
ステップＳ８６１８において、ステップＳ８６１６で未使用と判定されたバッファセルＢｃからデスクランブル処理の出力データを格納する中間処理用バッファセルＢｃ＿Ｍを決定する。該当する中間処理用バッファセルＢｃ＿Ｍに対応する中間処理用バッファセルイネーブルをイネーブルする。これにより中間処理用バッファセルＢｃ＿Ｍが使用中であることを示し、ディスエーブル他の処理で該当する中間処理用バッファセルＢｃ＿Ｍが使用されることを防止する。そして、処理は次のステップＳ８６２０に進む。
【０２２１】
ステップＳ８６２０において、上述のステップＳ８６１８で割り当てられた中間処理用バッファセルＢｃ＿Ｍのバッファセル番号Ｎｂｃを制御テーブルＣｌｔのデスクランブルパケットデータ用バッファセル情報（ＰＭｃ７）にセットする。そして、処理は次のステップＳ８６２２に進む。
【０２２２】
ステップＳ８６２２において、該当パケットデータＰが格納されているバッファセルＢｃから、ステップＳ８６１８で割り当てられた中間処理用バッファセルＢｃ＿Ｍにデスクランブル転送後のデータを転送する。実際、スクランブル有のパケットデータＰにおいて、スクランブルがかかっていない部分（主にヘッダ部分）とスクランブルがかかっている部分（主にペイロードと呼ばれる実データＰＤの部分）が存在する。ここではスクランブルがかからないヘッダ部分をパケットバッファＢｃから中間処理用バッファセルＢｃ＿Ｍへデータを転送（コピー）する。そのために転送元アドレス、転送先アドレス、および転送バイト数が設定された後に、転送が開始される。そして、処理は次のステップＳ８６２４に進む。（前後で、バッファセルＢｃ＿Ｉ、Ｂｃ＿Ｍ、Ｂｃ＿Ｏの定義をしておく、図２参照で）
【０２２３】
ステップＳ８６２４において、ステップＳ８６２２で転送を開始したスクランブルのかかっていない部分の転送が終了するのを待つ。そして、処理は次のステップＳ８６２６に進む。
【０２２４】
ステップＳ８６２６において、スクランブルがかかっている対象データ部分のデスクランブル処理を行う。デスクランブル処理は図１のデスクランブル器１１００が行う。以下に、図３３を参照して、デスクランブル器１１００によるデスクランブル処理に必要な設定について説明する。
【０２２５】
図１０に示すように、初めに処理パケットの処理要求テーブルＰｄｔのデスクランブル情報（ＰＭｐ３）を読み出す。デスクランブル情報にはＴＤ制御器ＴＤＣで設定したデスクランブル用のキーが格納されている場所が示されている。そして、処理は次のステップＳ８６２８に進む。
【０２２６】
ステップＳ８６２８において、上述のステップＳ８６２６で読み出されたデスクランブル情報に該当するキーデータがデスクランブル器１１００のデスクランブルキーにセットされる。そして、処理は次のステップＳ８６３０に進む。
【０２２７】
ステップＳ８６３０において、該当パケットデータＰのデスクランブル器１１００のパケットバッファ読み出しアドレス、パケットバッファ読み出し転送サイズ、パケットバッファ書き込み開始アドレス、およびパケットバッファ書き込み転送サイズが設定される。なお、図３３に例示するように、デスクランブルキー、パケットバッファ読み出しアドレス、パケットバッファ読み出し転送サイズ、パケットバッファ書き込み開始アドレス、およびパケットバッファ書き込み転送サイズはデスクランブル指示制御データＤｃｒｌとして、制御器ＰＢＡＣからパケット解析器１０００のデスクランブル器１１００に供給される。そして、デスクランブル対象データの転送のデスクランブル器１１００への開始される。処理は次のステップＳ８６３２に進む。
【０２２８】
ステップＳ８６３２において、デスクランブル器１１００に転送されるスクランブルデータのデスクランブルが開始される。そして、処理は次のステップＳ８６３４に進む。
【０２２９】
ステップＳ８６３２において、デスクランブル器１１００によるスクランブルデータのデスクランブル処理の終了を待つ。デスクランブル処理が終了するとデスクランブル器１１００はデスクランブル終了通知データＤｃｒｌｏとして転送終了通知を発行する。これにより制御器ＰＢＡＣは、デスクランブル処理が終了したと判断できる。デスクランブル処理が終了した時点でステップ＃８６００における全処理が終了する。なお、デスクランブルが終了した時点では、図２に示すように、中間処理用パケットバッファセル＿Ｍ１に、転送元で付加されていた管理バイトＢＭとデスクランブルされたパケットデータ１´が格納される。
【０２３０】
次に、図１６、図３３【セクション選別器への入力情報・出力情報】、図２８【制御テーブル構成】、図３１【処理要求テーブル構成】を参照して
を参照して、ステップ＃８７００の「パケットパターン選別処理の詳細について説明する。ステップ＃８６００の「デスクランブル制御」サブルーチンの処理後、デスクランブル処理されたパケットデータに対し、セクションデータ選別器１２００によるパケットパターン選別処理を行う。このセクションデータ選別器１２００では、主に設定されたパターンとパケットデータを比較し、パケットの取捨（フィルタリングを行う）。セクションデータ選別器１２００では規格にあるセクションデータ以外にもトランスポートストリームパケットデータ、ＰＥＳパケット、エレメンタリストリームなどの規格に適応できることは言うまでもない。ここでは一例としてセクションデータをセクションデータ選別器１２００によりパケットパターン選別する方法を説明する。
【０２３１】
まず、ステップＳ８７０２において、制御テーブルＣｌｔが読み出される。そして、処理は次のステップＳ８７０４に進む。
【０２３２】
次にステップ＃８４００の「パケットデータフィルタリング」サブルーチンで取得されたパケット識別子ＰＩＤに基づいて、フィルタリングしたエントリを抽出する。つまり、ステップ＃８４００にて制御テーブルＣｌｔに保存されたエントリを読み出す。次にエントリに対応するエントリテーブルＴＥを読み出す。
【０２３３】
なお、図６に、エントリテーブルＴＥの構成を示す。エントリテーブルＴＥは、デスクランブル終了通知データＤｃｒｌｏに基づいて、制御器ＰＢＡＣで生成される情報である。エントリテーブルＴＥには、１パケット以上にまたがるデータに対して、フィルタリングを行う場合のパケット単位での完結/継続の状態を示すステータスと、パケットを超えて継続する場合に残りの継続するバイト数の情報が記載されている。
【０２３４】
エントリテーブルＴＥは、２つのパラメータＰＭｅ１およびＰＭｅ２を含む。パラメータＰＭｅ１は、０あるいは１の値で表され、ステータス情報に対応する。つまり、パラメータＰＭｅ１が０は、当該データは１パケットで完了しており、当該パケットデータの後にまだデータはないことを示す。
【０２３５】
パラメータＰＭｅ２は、パラメータＰＭｅ１が１（続き有）の場合の、残りレングスを表す。図Ｏ７に示すように、制御器ＰＢＡＣは所定数ＭのエントリテーブルＴＥを管理する。
【０２３６】
ステップＳ８７０４において、制御器ＰＢＡＣは、該当するエントリのエントリテーブルＴＥ内のステータス値を読み出す。そして、処理は次のステップＳ８７０６に進む。
【０２３７】
ステップＳ８７０６において、ステップＳ８７０２で読み出した制御テーブルＣｌｔのパケット情報（パラメータＰＭｃ１）に基づいて、パケットデータの状態を判断する。パラメータＰＭｃが０でない、つまりバッファセルＢｃに蓄積されているパケットデータは処理対象でない（パラメータＰＭｃ１＝１、パケット選択不一致）場合、若しくは蓄積されているパケットデータにエラーがある（パラメータＰＭｃ１＝２、入力ストリームエラー）の場合には、セクション選別を行わない。この場合、処理はステップ＃８９００の「ストリーム出力制御」サブルーチンに進み、何も処理せず該当するバッファセルＢｃを開放する。この処理によりパケットが破棄され何も出力されない。一方、パケットが正常（パラメータＰＭｃ＝０）の場合には、処理は、次のステップＳ８７０８に進む。
【０２３８】
ステップＳ８７０８において、セクションフィルタ選別器１２００に転送するデータの先頭のアドレスが算出される。そして、処理は次のステップＳ８７１０に進む。
【０２３９】
ステップＳ８７１０において、処理要求テーブルＰｄｔが読み出されて、出力形式情報（パラメータＰＭｐ２）が抽出される。これにより、対象パケットデータに固有に定められたパケットフォーマットが特定される。本明細書においては、セクション出力に指定されたものを例に以後の処理を説明する。そして、処理は次のステップＳＳ８７１２に進む。
【０２４０】
ステップＳ８７１２において、ステップＳ８７０２で読み出された制御テーブルＣｌｔのスクランブル情報（パラメータＰＭｃ２）に基づいて、処理対象候補のパケットデータがスクランブル状態であるか否かが判断される。スクランブル状態（ＰＭｃ２＝１：スクランブル有）であると判断される場合は、処理はステップ＃８９００の「ストリーム出力制御」サブルーチンに進み、処理対象候補のパケットデータに対して何も処理せず該当するバッファセルＢｃを開放する。この処理により、バッファセルＢｃに格納されている対象候補のパケットデータＰは破棄されて、スクランブルデータは出力されない。
【０２４１】
一方、ステップＳ８７１２において、処理対象候補のパケットデータはスクランブルがかかっていない状態（ＰＭｃ２＝０：スクランブルなし）であると判断される場合、処理はステップＳ８７１４へ進む。なお、ここではスクランブルデータを出力しない例を示しているが、スクランブルデータも出力したい場合にはこのステップＳ８７１２をスキップして、ステップＳ８７１４に進むように構成することで、図１に示したマルチフォーマットトランスポートストリームデコーダＴＤのアーキテクチャを変更することなく容易に実現できる。
【０２４２】
ステップＳ８７１４において、エントリテーブルＴＥのパラメータＰＭｅ１に基づいて、処理対象パケットデータのステータス、つまり続きがあるのか否かが判断され得る。続きがある（ＰＭｅ１＝１）と判断される場合には、処理対象候補パケットデータの情報を読み出してから後続のパケットデータにフィルタ処理を行う必要がある。そのために、処理はステップＳ８７４０に進む。
【０２４３】
一方、ステップＳ８７１４において、このパケットデータがセクションパターンの開始である（Ｐｍｅ１＝０）と判断される場合には、当該処理対象パケットデータからセクションフィルタパターン選別を行う。そのために、処理は次のステップＳ８７１６に進む。
【０２４４】
ステップＳ８７１６において、処理対象候補のパケットデータがセクションセクションパターンの開始であるときの処理が行われる。まずパケットデータのセクションデータの長さを示すセクションレングスフィールド（ＭＰＥＧの場合はステップＳｅｃｔｉｏｎ＿ｌｅｎｇｔｈが抽出される。そして、処理は、次のステップＳ８７１８に進む。
【０２４５】
ステップＳ８７１８において、ステップＳ８７１６で抽出されたセクションデータ長を、セクションデータ選別器１２００に入力するセクションデータ長フィールド情報に設定する。そして、処理は次のステップＳ８７２０に進む。
【０２４６】
図３３に、セクションデータ選別器１２００への入力情報・出力情報に示す。制御器ＰＢＡＣは、ステップＳ８７０４で読み出したステータス（ＰＭｅ１）、ステップＳ８７０８で算出された転送データの転送アドレス、転送サイズ、および転送先アドレスがステップＳ８７１８において、セクション選別指示制御データＳｃｒｌとして設定される。転送先アドレスは図２に示す、出力用領域である三次バッファセルＢｃ＿Ｏの先頭アドレスを設定する。設定が終了するとさらに、転送起動命令をセクション選別指示制御データＳｃｒｌに含めてセクションデータ選別器１２００へ出力する。
【０２４７】
ステップＳ８７２０において、ステップＳ８７１８で出力されたセクション選別指示制御データＳｃｒｌに基づいて、セクションデータ選別器１２００が起動される。そして、処理詩次のステップＳ８７２２に進む。
【０２４８】
ステップＳ８７２２において、セクションデータ選別器１２００の選別処理が終了するまで待機する。図３３に示すように、セクションデータ選別器１２００はフィルタリング結果（ＭＰｅ１）、フィルタリング通過データサイズ、残りレングス数、および転送終了通知からなる出力セクション選別指示制御データＳｃｒｌｏを生成して、制御器ＰＢＡＣに出力する。この転送終了通知に基づいて、セクションデータ選別器１２００の選別処理終了されたことを検出する。そして、処理は次のステップＳ８７２４に進む。
【０２４９】
ステップＳ８７２４において、セクションデータ選別器１２００で選別した選別結果が読み出される。セクションデータ選別器１２００から出力される出力セクション選別終了信号Ｓｃｒｌｏから、セクション選別結果であるフィルタリング後のステータス、フィルタリング通過データサイズ、残りレングス長の情報が読み出される。そして、処理は次のステップＳ８７２６に進む。
【０２５０】
ステップＳ８７２６において、ステップＳ８７２４で読み出されたフィルタリング後のステータス（セクション選別終了信号Ｓｃｒｌｏ）に基づいて、当該処理対象候補パケットデータであるセクションデータの完結/継続の状態が判断される。継続している（ステータス＝１）と判断される場合、処理はステップＳ８７５０に進む。一方、セクションデータは完結している（ステータス＝０）と判断される場合、処理はステップＳ８７２８に進む。
【０２５１】
ステップＳ８７２８において、ステップＳ８７２６でのセクションデータ選別後パケットデータが完結したとの判断に基づいて、エントリテーブルＴＥのステータスを続きなし（ＰＭｅ１＝０）に更新する。また残りレングス数を０（ＰＭｅ２＝０）に更新する。そして、セクションデータ選別後のパケットデータが完結した場合の本サブルーチンの処理を終了する。
【０２５２】
ステップＳ８７４０においては、ステップＳ８７１４で継続していると判断されたセクションデータの処理が実行される。つまり、エントリテーブルＴＥのステータスが続き有（ＰＭｅ１＝１）を示す場合、エントリテーブルＴＥの残りレングス数（ＰＭｅ２）が読み出される。そして、処理はステップＳ８７４２に進む。
【０２５３】
ステップＳ８７４２において、既に読み出したステータス（ＰＭｅ１）を図３３に示した出力セクション選別終了信号Ｓｃｒｌｏのステータス情報に設定し、残りレングス数（ＰＭｅ２）を同様に出力セクション選別終了信号Ｓｃｒｌｏのセクションデータ長フィールド情報に設定して出力される。そして、処理は前述のステップＳ８７２０に戻り、既に説明したように、セクション選別指示制御データＳｃｒｌ信号を設定し、セクションデータ選別器１２００を起動させる。
【０２５４】
一方、ステップＳ８７５０において、ステップＳ８７２６でセクションデータ選別後にパケットデータが継続していると判断された場合の処理が実行される。つまり、図３３に示すように、出力セクション選別終了信号Ｓｃｒｌｏの残りレングス数をエントリテーブルＴＥの残りレングス数（ＰＭｅ２）に更新する。そして、処理は次のステップＳ８７５２に進む。
【０２５５】
ステップＳ８７５２において、図３３に示す出力セクション選別終了信号Ｓｃｒｌｏのフィルタリング後のステータスをエントリテーブルＴＥのステータスに更新する。この場合には続き有（ＰＭｅ１＝１）に更新される。こうしてテーブルを更新することで次にこの続きのセクションデータを処理するときに継続したパケットデータと判断できる。そして、本サブルーチンを終了する。
【０２５６】
以上のごとく、ステップ＃８７００の「セクションデータパターン選別」サブルーチンを実行された結果、出力用領域である三次バッファセルＢｃ＿Ｏに出力するデータが蓄積されている。
【０２５７】
次に図１８を参照して、ステップ＃８８００の「メインメモリ制御」サブルーチンの詳細について説明する。なお本サブルーチンは、図２にあるようなすべてのフォーマットに共通な処理である。なお、以上の説明は、入力されたパケットがパケット解析器１０００で用意されたバッファの中での終端を管理バイトＢＭｈで認識しているため、入力パケットがバッファよりも小さければその大きさに関わらず、処理することができる。
【０２５８】
次に、フォーマット３のパケットセルよりデータサイズが大きいパケットデータの処理について図２および図１７を用いて説明する。
【０２５９】
本発明のトランスポートデコーダでは、パケットセルより入力データのパケットデータが大きい場合には、パケットセルの最大バッファ容量以下のデータサイズに分割して、１つのパケットに対し、複数のパケットセルに格納する。
【０２６０】
フォーマット３のパケットデータサイズをＫとすると、Ｋ/Ｎが最大バッファセル容量以下であれば処理が可能となる。なおＮは分割数を表す。
ＴＤ制御器はこのようなＫ/Ｎのデータサイズを設定する。ここでは、具体的にＫ＝４８０、最大データ容量＝１９２、Ｎ＝３のときの例を示すが、この例以外でもパケットデータを分割して上記の制限を満たせば、同様に処理できる。
【０２６１】
ＴＤ制御器が１６０のデータサイズを設定すると、ストリーム入力器は４８０バイトの内、１６０バイトが入力した時点で、管理バイトを付加し、１６４バイト単位で、パケットバッファ制御器はパケットセルに格納終了信号を通知する。次の１６１バイト目から３２０バイトの入力、３２１バイト目から４８０バイトの入力でも同様の処理を行い、パケットセルに格納される。次にこうして格納された分割パケットデータの処理について図１７を用いて説明する。
【０２６２】
ステップＳ８７５０において、上記分割パケットデータごとのパケットセルに格納したデータ単位となる先頭データをパケットバッファセルＯ領域の先頭アドレスへ書き込む。これは後段のＡＶデータへ、この１６０バイト単位でデータの区切りを通知することで、ＡＶデコード処理の処理開始を示す信号を同時に通知する。この先頭データの書き込みが終了するとステップＳ８７５２へ進む。
【０２６３】
次にステップＳ８７５２において、格納されたパケットセルより該当する分割データをパケットバッファセルＯ領域の上記ステップＳ８７５０で書き込んだ先頭データの次アドレスに転送する。転送を開始したら、ステップＳ８７５４へ進む。
【０２６４】
ステップＳ８７５４では、ステップＳ８７５２で転送した分割パケットデータの転送の完了を待つ。転送が完了すると、該当パケットの処理を終える。
このステップＳ８７５４が終えた時点でのパケットバッファセルＯ領域では、図２の様に、先頭データと該当する１６０バイトの分割データが格納された状態になる。これを到着順に処理することで、図？？のように元のパケットデータに対し、分割境界を示す先頭データを挿入して、後段のＡＶデータに出力する。なお、ここでは特定のＡＶデコーダのインターフェースに対応した処理を示したが、他のＡＶデコーダのように入力したデータをそのまま出力するような場合には、ステップＳ８７５０の処理を省略することで、入力データを出力することにも容易に対応できることは言うまでもない。
【０２６５】
真ステップＳステップＳ８８０２において、制御テーブルＣｌｔの処理要求テーブルＰｄｔ（ＰＭｃ１０）を読み出す。そして、処理は次のステップＳ８８０４に進む。
【０２６６】
ステップＳ８８０４において、ステップＳ８８０２で読み出された処理要求テーブルＰｄｔからメインメモリ出力情報（ＰＭｐ５）を読み出す。このメインメモリ出力情報にはメインメモリ９００に出力される有限出力チャンネルが設定されており、各出力チャンネルにはスタートアドレスＳＰ、エンドアドレスＥＰでパーティショニングされている。また各チャンネルにはライトポインタＷＰｃ、リードポインタＲＰｃを持つ。このスタートアドレスＳＰ、エンドアドレスＥＰ、ライトポインタＷＰｃの初期値、およびリードポインタＲＰｃの初期値はＴＤ制御器ＴＤＣにより設定される。そして処理は次のステップＳ８８０８に進む。
【０２６７】
ステップＳ８８０８において、該当する出力チャンネルの使用可否が判断される。つまり、該当する出力チャンネルが使用許可はＴＤ制御器ＴＤＣによって指示される。制御器ＰＢＡＣは該当出力チャンネルが使用可能（転送を許可されている）であるかを判定する。処理要求テーブルＰｄｔで指定した出力チャンネルをＴＤ制御器ＴＤＣが出力許可してない場合は、制御器ＰＢＡＣは転送を行わない。この場合は＃９００のストリーム出力制御フローに進み、何も処理せず該当するパケットバッファセルを開放する。この処理により図２に示した、出力用領域（パケットセルＯ）にデータが格納されていてもパケットが破棄され何も出力しない。一方、許可されている場合には、処理はステップＳ８８１０に進む。
【０２６８】
ステップＳ８８１０において、ステップＳ８８０４で設定されたメインメモリ出力用チャンネルに対しＴＤ制御器ＴＤＣが設定するスタートアドレスＳＰが読み出される。そして、処理は次のステップＳ８８１２に進む。
【０２６９】
ステップＳ８８１２において、ステップＳ８８０４で設定されたメインメモリ出力用チャンネルに対しＴＤ制御器ＴＤＣが設定するエンドアドレスＥＰが読み出される。そして、処理は次のステップＳ８８１４に進む。
【０２７０】
ステップＳ８８１４において、ステップＳ８８１０で読み出されたＳＰを図３５に示す選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍの格納開始アドレス（スタートアドレスＳＰ）に設定する。そして、処理は次のステップＳ８８１６に進む。
【０２７１】
ステップＳ８８１６において、ステップＳ８８１２で読み出されたエンドアドレスＥＰを図３５に示す選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍの格納終了アドレス（エンドアドレスＥＰ）に設定する。そして、処理は次のステップＳ８８１８に進む。
【０２７２】
ステップＳ８８１８において、ステップＳ８８０４のメインメモリ出力用チャンネルに対してＴＤ制御器ＴＤＣが設定する書き込みアドレス（ライトポインタＷＰｃ）を読み出す。そして処理は次のステップＳ８８２０に進む。
【０２７３】
ステップＳ８８２０において、ステップＳ８８０４のメインメモリ出力用チャンネルに対しＴＤ制御器ＴＤＣが設定する読み出しアドレス（リードポインタＲＰｃ）を読み出す。そして、処理は次のステップＳ８８２２に進む。
【０２７４】
ステップＳ８８２２において、図３５に示した選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍの残りの設定を読み出す。残りの設定はパケットバッファ転送開始アドレスとパケット転送サイズである。パケットバッファ転送開始アドレスとして、図２に示した出力用領域（パケットセル＿Ｏ）の先頭のアドレスが設定される。パケット転送サイズは前述のセクションデータ選別器１２００を通過したデータサイズである。よって、図３３に示す出力セクション選別終了信号Ｓｃｒｌｏのフィルタリング通過データサイズを読み出して、パケット転送サイズが設定される。以上の設定後、転送起動命令を発行し、メインメモリ制御器７００が起動される。そして、処理は次のステップＳ８８２４に進む。
【０２７５】
ステップＳ８８２４において、ステップＳ８８２２で起動されたメインメモリ制御器７００の処理が終了するまで待機する。制御器ＰＢＡＣはメインメモリ制御器７００の処理終了を、図３５に示す出力信号Ｐｃｔｒｌｏの転送終了通知に基づいて検出する。そして、処理は次のステップＳ８８２６に進む。
【０２７６】
ステップＳ８８２６において、メインメモリ制御器７００による転送制御後に、オーバーフローが起きているか否かを図３５に示す出力信号Ｐｃｔｒｌｏのオーバーフロー情報に基づいて判断される。オーバーフローを起こす状態はパケットデータを転送してライトポインタＷＰｃが進んだ場合にリードポインタＲＰｃを追い越す場合である。オーバーフローが起きている場合、処理はステップＳ８８３４に進む。正常に転送が完了している（オーバーフロー情報でオーバーフローなし）場合、処理はステップＳ８８２８に進む。
【０２７７】
ステップＳ８８２８において、図３５に示す出力信号Ｐｃｔｒｌｏの転送後書き込みアドレス（ライトポインタＷＰｃ）が読み出される。そして処理は、次男ステップＳ８８３０に進む。
【０２７８】
ステップＳ８８３０において、ステップＳ８８２８で読み出した、転送後書き込みアドレス（ライトポインタＷＰｃ）で、該当出力チャンネルのライトポインタＷＰｃが更新される。これによりライトポインタＷＰｃが進み、メインメモリ９００にデータが蓄積されていることをＴＤ制御器ＴＤＣにしらせることが可能になる。そして、処理は次のステップＳ８８３２に進む。
【０２７９】
そして、ステップＳ８８３２において、メインメモリ９００に転送が完了したことが状態信号ＳｒＷによって通知されて、本サブルーチンの処理が終了する。
【０２８０】
ステップＳ８８３４において、ステップＳ８８２６でのオーバーフローの状態との判断に応答して、メインメモリ９００にオーバーフローになったことが状態信号ＳｒＷによって通知されて、本サブルーチンの処理を終了する。
する。
【０２８１】
次に図１、図１９、図３５、図２８、図３１を参照して上述のステップ＃８９００の「ストリーム出力制御」サブルーチンの詳細について説明する。なおストリーム出力制御もメインメモリ制御処理同様、図２に示したすべてのフォーマットに共通な処理である。ストリーム出力処理においては、これまで説明した処理のように必要パケットデータのバッファセルＢｃ間の転送処理とは別に、既に格納されたバッファセルＢｃからストリーム出力器１３００にデータが出力される。つまり、このメインメモリ９００への出力とストリーム出力は同時処理で進行する。
本発明のマルチフォーマットトランスポートストリームデコーダＴＤはマルチストリーム入力対応である。同様にストリーム出力に関してもマルチストリームを出力することが可能である。ここでは２つのトランスポートストリームＴＳ１およびＴＳ２のマルチストリーム出力する方法について説明する。
【０２８２】
まず、ステップＳ８９０２において、制御テーブルＣｌｔが読み出される。そして、処理は次のステップＳ８９０４に進む。
【０２８３】
ステップＳ８９０４において、Ｓ８９０２で読み出した制御テーブルＣｌｔのパケット情報（ＰＭｃ１）に基づいて、現在バッファセルＢｃに格納されているパケットデータがストリーム出力対象であるか否かが判断される。パケット識別子ＰＩＤによるパケットデータ選択で不一致である場合（パケットデータ情報＝１）や、入力ストリームエラーの場合、処理はステップＳ８９５８へ進みバッファセルＢｃの開放処理に移る。
【０２８４】
一方、ステップＳ８９０４において、パケットデータが正常の場合（パケットデータ情報＝０）であると判断される場合、処理はステップ＃１００００の「第１ストリーム出力設定」サブルーチンに進む。なお、ステップ＃１００００の処理について図２０を参照して後述するが、ステップ＃１００００の内部から処理が分岐してステップ＃１１０００の「第２ストリーム出力設定」サブルーチンが実行される。そして、ステップ＃１００００およびステップ＃１１０００のそれぞれの実行後に、処理は次のステップ＃１３０００の「ストリーム出力制御」サブルーチンに進み、ストリーム出力が実行される。後ほど図２１を参照して詳述するが、ステップ＃１１０００の内部から処理が分岐して、前述のステップＳ８９５８に進む。
【０２８５】
本例においては、メインメモリ９００に出力したものと同様のパケットデータをストリーム出力（図１のＰｈｏ１およびＰｈｏ２）する場合の処理を示している。しかし、出力ストリームを受け取る回路でパケットデータの判断ができる場合は、入力ストリームをそのままストリーム出力器１３００から出力するような用途も考えられる。このような用途に適応する場合には、本ステップＳ８９０４を省略することで、全パケットデータ出力に対応できる。
【０２８６】
図２０を参照して、ステップ＃１００００の「第１ストリーム出力設定」サブルーチンの詳細について説明する。上述のステップＳ８９０４において、パケットデータが正常であると判断された場合には、本サブルーチンが開始される。
まずステップＳ１０００６において、第１のストリーム出力（図１Ｐｈｏ１）のストリーム出力設定が読み出される。そして、処理は次のステップＳ１０００８に進む。なお、ストリーム出力器１３００は、ＴＤ制御器ＴＤＣが設定できるストリーム出力設定に基づいて動作する。ストリーム出力設定には、ストリーム出力情報とストリーム識別子の２つの設定がある。ストリーム出力情報とは、ストリーム出力処理のストリーム出力を行うかの否かの情報である。ストリーム識別子とは、第１〜第εストリーム入力器ＴＳＲ１〜ＴＳＲεのどのストリームデータ（ＴＳｉ）をストリーム出力器１３００に出力するかを規定する情報であり、前述の対象トランスポートストリーム識別情報ＴＳＩＤｄである。
【０２８７】
ステップＳ１０００８において、ステップＳ１０００６で読み出されたストリーム出力情報が取り出される。そして、処理は次のステップＳ１００１０に進む。
【０２８８】
ステップＳ１００１０において、ステップＳ１０００８で取り出されたＴＤ制御器ＴＤＣで設定されたストリーム出力情報において、高速出力の実行が設定されているか否かが判断される。高速出力が設定されている（ストリーム出力情報＝１）場合、処理はステップＳ１００１２へ進む。一方、高速出力がい設定されていない（ストリーム出力情報＝０）場合、処理はステップ＃１１０００の「第２ストリーム出力設定」サブルーチンに進む。
【０２８９】
ステップＳ１００１２において、ステップＳ１０００６で読み出されたストリーム識別子ＴＳＩＤｄが取り出される。そして、処理は次のステップＳ１００１４に進む。
【０２９０】
ステップＳ１００１４において、ステップＳ１０００２で読み出した制御テーブルＣｌｔの抽出トランスポートストリーム識別子ＴＳＩＤｅが読み出される。そして、処理は次のステップＳ１００１６に進む。
【０２９１】
ステップＳ１００１６において、ステップＳ１０００６で取り出された対象トランスポートストリーム識別情報ＴＳＩＤｄと、ステップＳ１００１２で取り出された抽出トランスポートストリーム識別子ＴＳＩＤｅが一致するか否かが判断される。一致と判断される場合は、処理はストリームを出力するためのステップＳ１００１８に進む。不一致と判断される場合は、ストリームはストリーム出力器１３００に出力されることなく、処理はステップＳ１００３６の「第２ストリーム出力設定」サブルーチンへ進む。
【０２９２】
ステップＳ１００１８において、制御テーブルＣｌｔのバッファセル番号（ＰＭｃ６）が読み出される。制御器ＰＢＡＣにおいてバッファセル番号はスクランブル情報（ＰＭｃ２）、ストリーム出力デスクランブル情報（ＰＭｃ４）、入力パケットデータ用バッファセル情報（ＰＭｃ６）、デスクランブルパケットデータ用バッファセル情報（ＰＭｃ７）に基づいて判断される。そして、処理は次のステップＳ１００２０に進む。
【０２９３】
ステップＳ１００２０において、ステップＳ１００１８で決定されたバッファセル番号が出力順バッファセル番号メモリ５２０に書き込まれる。そして、処理は次のステップＳ１００２２に進む。
【０２９４】
ステップＳ１００２２において、出力順バッファセル番号メモリ制御器５１０のライトポインタＷＰｃが１だけインクリメントされる。この処理によりライトポインタＷＰｃとリードポインタＲＰｃを管理することでストリーム出力が適正に行われる。リードポインタＲＰｃはストリーム出力器１３００が該当するライトポインタＷＰｃにあるパケットデータの出力が終えると、リードポインタＲＰｃが１だけインクリメントされる。このようにして、第１ストリーム出力設定が完了する。そして、処理はステップＳ１００２６に進み、第２ストリーム出力の判定が開始される。
【０２９５】
図２１を参照して、ステップ＃１１０００の「第２ストリーム出力設定」サブルーチンの詳細について説明する。本サブルーチンにおけるステップＳ１００２６〜ステップＳ１００４２の処理は、それぞれステップ＃１００００の「第１ストリーム出力設定」サブルーチンにおけるステップＳ１０００６〜Ｓ１００２２に対応する。違いは、本ステップは、第２ストリームとして高速出力に対応している点である。そのため、図２１においては、ステップＳ１００２６〜ステップＳ１００４２のそれぞれにおいて、第２ストリームの変わりに高速出力と標記されている。よって、各ステップにおける処理についての説明を省略す。
【０２９６】
ただし、ステップＳ１１０３２およびステップＳ１１０３６において、共にＮｏと判断された場合、処理はステップ＃１１００に進む。このように、「第２ストリーム出力設定」サブルーチンの後に、同様の内容の「第ｉストリーム出力設定」サブルーチンを順次追加して設けることによって、任意の数のストリーム出力を行うことができる。
【０２９７】
次に、図２２を参照して、ステップ＃１２０００の「ストリーム出力制御」サブルーチンの詳細について説明する。上述のごとく、ステップ＃１００００あるいは＃１１０００の処理が終了すると、本ステップの処理が開始する。
【０２９８】
まず、ステップＳ１２０４６において、該当バッファセルＢｃの転送設定を行う。図３５に示す転送開始アドレスあるいは転送バイト数はステップＳ１００１４あるいはステップＳ１１０３４で判断したバッファセルＢｃ番号の先頭のアドレスが指定される。格納されているパケットデータの転送バイト数は、トランスポートストリーム識別情報ＴＳＩＤｅを制御器ＰＢＡＣによって管理されているフォーマット情報と照合されたフォーマットに基づいて設定される。設定後、ストリーム出力の転送起動命令が発行されて、ストリーム出力のためのデータ転送が開始される。そして、処理は次のステップＳ１２０４８に進む。
【０２９９】
ステップＳ１２０４８において、リードポインタＲＰｃに基づいて第１ストリームのパケットデータのバッファセルからストリーム出力器１３００への転送が終了しているか否かが判断される。つまり、リードポインタＲＰｃがストリーム出力器１３００により進られれば転送終了と判断される。転送終了と判断される場合には、処理は次のステップＳ１２０５０に進む。一方、転送終了と判断されない場合は、転送終了と判断されるまで待機することなく、処理はステップＳ１２０５２に進む。
【０３００】
ステップＳ１２０５０において、ステップＳ１２０４８による第１ストリームのパケットデータの転送終了との判断に応じて、該当バッファセルが開放される。そして、処理は次のステップＳ１２０５２に進む。
【０３０１】
ステップＳ１２０５２において、上述ステップＳ１２０４８におけるのと同様に、リードポインタＲＰｃに基づいて第２ストリームのパケットデータのバッファセルからストリーム出力器１３００への転送が終了しているか否かが判断される。終了と判断されれば、処理は次のステップＳ１２０５４に進む。
【０３０２】
ステップＳ１２０５４において、ステップＳ１２０５４と同様に、該当バッファセルが開放される。そして、本サブルーチンの処理を終了する。
【０３０３】
一方、ステップＳ１２０５２において、転送終了と判断されない場合には処理は、本サブルーチンの処理を終了する。
【０３０４】
以下に、図３６、図３７、図３８、図３９、および図４０を参照して、上述のマルチフォーマットトランスポートストリームデコーダＴＤの基本概念について述べる。本実施形態においては複数のトランスポートストリームＴＳ１〜ＴＳεに含まれる複数の番組のコンテンツデータを選択的に、トランスポートストリームＴＳに固有のフォーマットに応じて加工する用途に用いられる。
【０３０５】
図３６に、本発明にかかるマルチフォーマットトランスポートストリームデコーダに入力される、それぞれが複数の番組のコンテンツを提供する２つ（ε＝２）のトランスポートストリームＴＳ１およびＴＳ２の構成について説明する。同図には、少なくとも３つの異なる番組１、番組２、番組３、・・・、番組α１を提供する第１のトランスポートストリームＴＳ１の構成例と、少なくとも６つの異なる番組１、番組２、番組３、番組４、番組５、番組６、・・・、番組α２を提供する第２のトランスポートストリームＴＳ２の構成例が示されている。
【０３０６】
なお、第２のトランスポートストリームＴＳ２における番組１、番組２、および番組３は、トランスポートストリームＴＳ１における番組１、番組２、および番組３とは基本的に異なるものであるが、同じであっても良い。なお、第２のトランスポートストリームＴＳ２のおける番組１、番組２、および番組３は、紙面の都合上図示されていない。
【０３０７】
同図においても、図４２を参照して説明したように、トランスポートストリームＴＳを構成するパケットデータＰのそれぞれが１つの枠として表示されている。個々のパケットデータＰにはそれぞれ固有のパケット識別子ＰＩＤが付与される。
【０３０８】
このように、本発明にかかるマルチフォーマットトランスポートストリームデコーダに入力される複数のトランスポートストリームＴＳのそれぞれには同一の番組番号を有する番組が重複して存在する。さらに、パケットデータＰには、トランスポートストリームＴＳごとにパケット識別子ＰＩＤが付与されるので、複数のトランスポートストリームＴＳのそれぞれには、同一のパケット識別子ＰＩＤを有するパケットデータＰが重複して存在する。
【０３０９】
第１のトランスポートストリームＴＳ１において、番組コンテンツパケットデータＰｃ１０１＿１、Ｐｃ１０１＿２、・・・は番組１を構成する映像データであり、番組コンテンツパケットデータＰｃ１１１＿１、Ｐｃ１１１＿２、・・・・は番組１を構成する音声データである。同様に、番組コンテンツパケットデータＰｃ２０１＿１、Ｐｃ２０１＿２、・・・・は番組２の映像データであり、番組コンテンツパケットデータＰｃ２１１＿１、Ｐｃ２１１＿２、・・・・は番組２の音声データである。さらに番組コンテンツパケットデータＰｃ３０１＿１、Ｐｃ３０１＿２、・・・・は番組３の映像データであり、番組コンテンツパケットデータＰｃ３１１＿１、Ｐｃ３１１＿２、・・・・は番組３の音声データである。
【０３１０】
第２のトランスポートストリームＴＳ２において、番組コンテンツパケットデータＰｃ４０１＿１、Ｐｃ４０１＿２、・・・は、番組４の映像データであり、番組コンテンツパケットデータＰｃ４１１＿１、Ｐｃ４１１＿２、・・・・は番組４の音声データである。同様に、番組コンテンツパケットデータＰｃ５０１＿１、Ｐｃ５０１＿２、・・・・は番組５の映像データであり、番組コンテンツパケットデータＰｃ５１１＿１、Ｐｃ５１１＿２、・・・・は番組５の音声データである。さらに番組コンテンツパケットデータＰｃ６０１＿１、Ｐｃ６０１＿２、・・・・は番組６の映像データであり、番組コンテンツパケットデータＰｃ６１１＿１、Ｐｃ６１１＿２、・・・・は番組６の音声データである。
【０３１１】
なお、入力されるトランスポートストリームＴＳは３以上であっても良いし、各トランスポートストリームＴＳが提供できる番組数は３以上であっても良いことは言うまでもない。また、トランスポートストリームＴＳには、提供する番組数に応じて対応する番組コンテンツパケットデータＰｃが含まれる。番組の内容によっては、映像や音声以外のデータ（例えば、文字情報）に対応する番組コンテンツパケットデータＰｃも含まれることも同様である。
【０３１２】
なお、第１のトランスポートストリームＴＳ１および第２のトランスポートストリームＴＳ２においても、番組コンテンツパケットデータＰｃの間に伝送経路および処理上の要因から定められる頻度で番組コンテンツ管理表ＰＡＴと番組コンテンツパケットデータ管理表ＰＭＴが配列されて構成される。
【０３１３】
第１のトランスポートストリームＴＳ１に関しては、番組１、２、および３の番組コンテンツの内で番組コンテンツパケットデータＰｃ１０１＿１、Ｐｃ１１１＿１、Ｐｃ２０１＿１、Ｐｃ２１１＿１、Ｐｃ３０１＿１、およびＰｃ３１１＿１の前に、全番組コンテンツのパケット識別子ＰＩＤを記した番組コンテンツパケットデータ管理表ＰＭＴ１、ＰＭＴ２、およびＰＭＴ３と、これらの番組コンテンツパケットデータ管理表ＰＭＴのそれぞれのパケット識別子ＰＩＤと対応番組とを示す番組コンテンツ管理表ＰＡＴが配されている。
【０３１４】
番組コンテンツ管理表ＰＡＴには、番組１の番組コンテンツパケットデータ管理表ＰＭＴのパケット識別子ＰＩＤは１００であり、番組２の番組コンテンツパケットデータ管理表ＰＭＴのパケット識別子ＰＩＤは２００であり、番組３の番組コンテンツパケットデータ管理表ＰＭＴのパケット識別子ＰＩＤは３００であり、・・・、番組α1 の番組コンテンツパケットデータ管理表ＰＭＴのパケット識別子ＰＩＤはα1 ００であると記述されている。
【０３１５】
第２のトランスポートストリームＴＳ２に関しては、番組４、５、および６の全３種類の番組コンテンツの内で番組コンテンツパケットデータＰｃ４０１＿１、Ｐｃ４１１＿１、Ｐｃ５０１＿１、Ｐｃ５１１＿１、Ｐｃ６０１＿１、およびＰｃ６１１＿１の前に、全番組コンテンツのパケット識別子ＰＩＤを記した番組コンテンツパケットデータ管理表ＰＭＴ１、ＰＭＴ２、およびＰＭＴ３と、これらの番組コンテンツパケットデータ管理表ＰＭＴのそれぞれのパケット識別子ＰＩＤと対応番組とを示す番組コンテンツ管理表ＰＡＴが配されている。
【０３１６】
番組コンテンツ管理表ＰＡＴには、番組４の番組コンテンツパケットデータ管理表ＰＭＴのパケット識別子ＰＩＤは４００であり、番組５の番組コンテンツパケットデータ管理表ＰＭＴのパケット識別子ＰＩＤは５００であり、番組６の番組コンテンツパケットデータ管理表ＰＭＴのパケット識別子ＰＩＤは６００であり、・・・、番組α2 の番組コンテンツパケットデータ管理表ＰＭＴはα2 ００であると記述されている。
【０３１７】
なお、トランスポートストリームＴＳに含まれるパケットデータＰの種類によって、その到着頻度は大きく異なるため、番組コンテンツ管理表ＰＡＴ、番組コンテンツパケットデータ管理表ＰＭＴ、番組コンテンツパケットデータＰｃ、およびその他のパケットが同一のトランスポートストリームＴＳの内部で入り乱れて配置されていることもあることは、単一のトランスポートストリームＴＳが入力される場合と同様である。
【０３１８】
なお、図３６においては、描画上の都合により第１のトランスポートストリームＴＳ１と第２のトランスポートストリームＴＳ２がパケット単位で同期されているように見えるが、大抵の場合は同期していない。よって、第１のトランスポートストリームＴＳ１における番組コンテンツパケットデータＰｃと、第２のトランスポートストリームＴＳ２における番組コンテンツパケットデータＰｃがマルチフォーマットトランスポートストリームデコーダＴＤに同時に入力される場合もそうでない場合ある。さらに、第１のトランスポートストリームＴＳ１および第２のトランスポートストリームＴＳ２を構成するパケットデータＰはそれぞれトランスポートストリームＴＳごとに固有のフォーマットで生成されているために、トランスポートストリームＴＳが異なればパケットデータＰのサイズも異なることも多い。
【０３１９】
図３７に、本発明にかかるマルチフォーマットトランスポートストリームデコーダによって、図３６に示したパケット構成を有する第１のトランスポートストリームＴＳ１から第１の選択複数番組パケットデータ列Ｐｅｍ１を抽出し、第２のトランスポートストリームＴＳ２から第２の選択複数番組パケットデータ列Ｐｅｍ２を抽出する様子を示す。本例においては、第１の選択複数番組パケットデータ列Ｐｅｍ１は、番組１および番組２のパケットデータＰを含み、第２の選択複数番組パケットデータ列Ｐｅｍ２は、番組３および番組４のパケットデータＰを含む。
【０３２０】
言い換えれば、第１のトランスポートストリームＴＳ１の番組１および番組２を構成するパケットデータＰのそれぞれに所望の処理を施した後に第１の選択複数番組パケットデータ列Ｐｅｍ１として抽出し、同様に第２のトランスポートストリームＴＳ２の番組３および番組４を構成するパケットデータＰのそれぞれに所望の処理を施した後に第２の選択複数番組パケットデータ列Ｐｅｍ２として抽出する。そして、第１の選択複数番組パケットデータ列Ｐｅｍ１および第２の選択複数番組パケットデータ列Ｐｅｍ２が混合されて選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍとしてメインメモリ制御器７００に出力される。
【０３２１】
メインメモリ制御器７００は、入力された選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍに含まれる複数のトランスポートストリームＴＳに属する番組コンテンツパケットデータＰｃを調停してメインメモリ９００に出力する。結果、メインメモリ９００の内部で複数ＴＳ複数番組パケットデータ列Ｐｍｓｍが形成される。これは、トランスポートストリームＴＳに含まれるパケットデータＰは、トランスポートストリームＴＳが異なれば、そのパケットデータサイズ、転送レート、および到着タイミング等が異なるため、異なるトランスポートストリームＴＳに含まれるパケットデータＰが同時に入力されることがあるからである。
【０３２２】
なお、図３６および図３７に示す例では、トランスポートストリームＴＳごとに異なる番組番号を有する番組が抽出されるため、選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍにおいて、番組番号やパケット識別子ＰＩＤが重複するパケットデータＰが存在しないように見える。しかしながら、第１のトランスポートストリームＴＳ１と第２のトランスポートストリームＴＳ２で同じ番組番号の番組を抽出する場合は、選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍにおいて同じ番組番号を有する異なる番組コンテンツパケットデータＰｃが存在する。またパケット識別子ＰＩＤに関しては、番組番号とは関係なくトランスポートストリームＴＳごとに固有にそのパケットデータＰに付与されるので、選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍにおいて同一のパケット識別子ＰＩＤを有する異なるパケットデータＰが存在する。
【０３２３】
なお、指定番組以外のトランスポートストリームＴＳ１の番組３を示す番組コンテンツパケットデータ管理表ＰＭＴ３や、第２のトランスポートストリームＴＳ２の番組６の番組コンテンツパケットデータ管理表ＰＭＴ６が抽出されることもある。このように、入力されるトランスポートストリームＴＳに連続的に配列されたパケットデータＰから所定の複数の番組に対応するパケットデータＰのみが離散的に抽出されるとともに、マルチフォーマットトランスポートストリームデコーダＴＤに到着した順番に出力される。
【０３２４】
図３８に、外部に設けられたフロントエンド部を介してマルチフォーマットトランスポートストリームデコーダＴＤに入力されたトランスポートストリームＴＳ１およびＴＳ２から抽出された選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍに含まれるパケットデータＰのそれぞれのメインメモリ９００における蓄積状態の一例を示す。なお、同図において、マルチフォーマットトランスポートストリームデコーダＴＤにおいて、メインメモリ９００以外の構成要素はＴＤ’と表示されている。
【０３２５】
メインメモリ９００は、複数ＴＳ複数番組映像コンテンツパケットデータ列ＰｍｓｍＶを構成する番組コンテンツパケットデータＰｃ１０１＿１、Ｐｃ４０１＿１、Ｐｃ２０１＿１、およびＰｃ５０１＿１、・・・を格納する映像パケット格納領域Ａ（ｖｉｄｅｏ）と、複数ＴＳ複数番組音声コンテンツパケットデータ列ＰｍｓｍＳを構成する番組コンテンツパケットデータＰｃ１１１＿１、Ｐｃ４１１＿１、Ｐｃ２１１＿１、およびＰｃ５１１＿１、・・・を格納する音声パケット格納領域Ａ（ａｕｄｉｏ）とを有する。
【０３２６】
メインメモリ９００は、さらに、番組コンテンツ管理表ＰＡＴの情報および番組コンテンツパケットデータ管理表ＰＭＴを格納するＰＡＴ格納領域Ａｒ（ＰＡＴ）を有する。しかしながら、メインメモリ９００のＰＡＴ格納領域Ａ（ＰＡＴ）とは異なり、ＰＡＴ格納領域Ａｒ（ＰＡＴ）には入力されるトランスポートストリームＴＳ１〜ＴＳεのそれぞれに専用に格納すべく細分化されている。このような構成において、メインメモリ９００は、トランスポートストリームＴＳごとに選別して番組コンテンツ管理表ＰＡＴを格納するＰＡＴ格納領域Ａｒ（ＰＡＴ）と、番組コンテンツパケットデータ管理表ＰＭＴの情報をトランスポートストリームＴＳごとに選別して格納するＰＭＴ格納領域Ａｒ（ＰＭＴ）を有する。
【０３２７】
なお、ＰＭＴ格納領域Ａｒ（ＰＭＴ）は、トランスポートストリームＴＳに含まれている番組コンテンツパケットデータ管理表ＰＭＴ（番組）の種類（α）だけ用意されることは言うまでもない。このように、構成することによって、入力されるトランスポートストリームＴＳごとに読み込んだ管理パケットデータＰｃＡを識別して管理できるので、今後配信される番組に関する情報をトランスポートストリームＴＳごとに容易に知ることができる。
【０３２８】
番組映像コンテンツパケットデータＰｃＶである番組コンテンツパケットデータＰｃ１０１＿１、Ｐｃ４０１＿１、Ｐｃ２０１＿１、Ｐｃ５０１＿１、・・・が、映像パケット格納領域Ａ（ｖｉｄｅｏ）内に互いに隙間なく格納されることによって、番組映像コンテンツパケットデータＰｃＶ（複数ＴＳ複数番組映像コンテンツパケットデータ列ＰｍｓｍＶ）が形成される。同様に、番組音声コンテンツパケットデータＰｃＳである番組コンテンツパケットデータＰｃ１１１＿１、Ｐｃ４１１＿１、Ｐｃ２１１１＿１、Ｐｃ５１１＿１、・・・が音声パケット格納領域Ａ（ａｕｄｉｏ）内に互いに隙間なく格納されることによって番組音声コンテンツパケットデータＰｃＳ（複数ＴＳ複数番組音声コンテンツパケットデータ列ＰｍｓｍＳ）が形成される。
【０３２９】
図３９に、選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍから生成される複数ＴＳ複数番組パケットデータ列Ｐｍｓｍの構成の一例を示す。本例においては、第１のトランスポートストリームＴＳ１の番組１の番組映像コンテンツパケットデータＰｃＶである番組コンテンツパケットデータＰｃ１０１＿１、Ｐｃ１０１＿２、・・・と、番組２の番組映像コンテンツパケットデータＰｃＶである番組コンテンツパケットデータＰｃ番組２０１＿１、Ｐｃ２０１＿２、・・・とが抽出される。そして、第２のトランスポートストリームＴＳ２の番組４の番組映像コンテンツパケットデータＰｃＶである番組コンテンツパケットデータＰｃ４０１＿１、Ｐｃ４０１＿２、・・・と、番組５の番組映像コンテンツパケットデータＰｃＶである番組コンテンツパケットデータＰｃ５０１＿１、Ｐｃ５０１＿２、・・・とが抽出されて、例えば番組コンテンツパケットデータＰｃ１０１＿１、Ｐｃ４０１＿１、Ｐｃ２０１＿１、Ｐｃ５０１＿１、Ｐｃ１０１＿２、Ｐｃ４０１＿２、Ｐｃ２０１＿２、Ｐｃ５０１＿２・・・の順番に複数ＴＳ複数番組映像コンテンツパケットデータ列ＰｍｓｍＶとしてメインメモリ９００に出力される。
【０３３０】
同様に、第１のトランスポートストリームＴＳ１の番組１および番組２の番組音声コンテンツパケットデータＰｃＳである番組コンテンツパケットデータＰｃ１１１＿１、Ｐｃ１１１＿２、・・・と番組コンテンツパケットデータＰｃ２１１＿１、Ｐｃ２１１＿２、・・・が抽出されるとともに、トランスポートストリームＴＳ２の番組３および番組４の番組音声コンテンツパケットデータＰｃＳである番組コンテンツパケットデータＰｃ４１１＿１、Ｐｃ４１１＿２、・・・と番組コンテンツパケットデータＰｃ５１１＿１、Ｐｃ５１１＿２、・・・が抽出されて、番組コンテンツパケットデータＰｃ１１１＿１、Ｐｃ４１１＿１、Ｐｃ２１１＿１、Ｐｃ５１１＿１、Ｐｃ１１１＿２、Ｐｃ４１１＿２、Ｐｃ２１１＿２、Ｐｃ５１１＿２、・・・の順番に複数ＴＳ複数番組音声コンテンツパケットデータ列ＰｍｓｍＳ音声ストリームとしてメインメモリ９００に出力される。
【０３３１】
今、それぞれが固有のパケット識別子ＰＩＤを有するパケットデータＰで構成トランスポートストリームＴＳの場合について説明した。しかしながら、ＩＴＵ−Ｔ勧告Ｈ．２２０．０に代表されるトランスポートストリームＴＳは、それを構成するすべてのパケットデータＰのそれぞれに固有のパケット識別子ＰＩＤが付与されていない。そのトランスポートストリームＴＳを構成するパケットデータＰの内容ごとに分類されるいわゆるパケットデータグループごとに固有のパケット識別子ＰＩＤが付与される。
【０３３２】
図４０に、そのようなパケットデータグループごとにパケット識別子ＰＩＤが付与された２つのトランスポートストリームＴＳ１およびＴＳ２のパケット構成を例示する。図３６に示した例と同様に、図４０においても、少なくとも３つの異なる番組１、番組２、番組３、・・・、番組α１ を提供する第１のトランスポートストリームＴＳ１の構成例と、少なくとも６つの異なる番組１、番組２、番組３、番組４、番組５、番組６、・・・、番組α２ を提供する第２のトランスポートストリームＴＳ２の構成例が示されている。
【０３３３】
第１のトランスポートストリームＴＳ１において、番組１の映像データは番組コンテンツパケットデータＰｃ１０１と規定され、音声データは番組コンテンツパケットデータＰｃ１１１と規定される。番組２の映像データは、番組コンテンツパケットデータＰｃ２０１と規定され、音声データは番組コンテンツパケットデータＰｃ２１１と規定される。番組３の映像データは番組コンテンツパケットデータＰｃ３０１と規定され、音声データは番組コンテンツパケットデータＰｃ３１１と規定される。
【０３３４】
第２のトランスポートストリームＴＳ２に関しても、第１のトランスポートストリームＴＳ１と同様に、番組４の映像データは番組コンテンツパケットデータＰｃ４０１と規定され、音声データは番組コンテンツパケットデータＰｃ４１１と規定される。番組５の映像データは番組コンテンツパケットデータＰｃ４０１と規定され、音声データは番組コンテンツパケットデータＰｃ５１１と規定される。番組６の映像データは番組コンテンツパケットデータＰｃ６０１と規定され、音声データは番組コンテンツパケットデータＰｃ６１１と規定される。
【０３３５】
このように、トランスポートストリームＴＳを構成するすべてのパケットデータＰのそれぞれに固有のパケット識別子ＰＩＤが付与されるのではなく、そのパケットデータＰの種類ごとに固有のパケット識別子ＰＩＤが付与されることを除いては、図４０に示すトランスポートストリームＴＳも、図３６を参照して説明したのトランスポートストリームＴＳと同様に構成される。
【０３３６】
このようなパケット構成を有する複数のトランスポートストリームＴＳ１〜ＴＳεに、上述のマルチフォーマットトランスポートストリームデコーダＴＤを適応した場合の動作について説明する。パケットデータＰの内容ごとに分類されるパケットデータグループごとに固有のパケット識別子ＰＩＤが付与されるということは、図３６に示したトランスポートストリームＴＳのパケットデータＰのパケット識別子ＰＩＤの上位３桁のみを指示することと実質的に同じである。つまり、本例においても、第１のトランスポートストリームＴＳ１から番組コンテンツパケットデータＰｃ１０１と番組コンテンツパケットデータＰｃ２０１を抽出するとともに、第２のトランスポートストリームＴＳ２から番組コンテンツパケットデータＰｃ４０１と番組コンテンツパケットデータＰｃ５０１を抽出することによって、図３８に示した番組映像コンテンツパケットデータＰｃＶと実質的に同じ番組映像コンテンツパケットデータを生成できる。
【０３３７】
同様に、パケット識別子ＰＩＤが２０１であるすべてのパケットデータＰは、番組２の映像データである番組コンテンツパケットデータＰｃ２０１と規定される。パケット識別子ＰＩＤが２１１であるすべてのパケットデータＰは、番組２の音声データである番組コンテンツパケットデータＰｃ２１１と規定される。
【０３３８】
さらに、パケット識別子ＰＩＤが３０１であるすべてのパケットデータＰは、番組３の映像データである番組コンテンツパケットデータＰｃ３０１と規定される。パケット識別子ＰＩＤが３１１であるすべてのパケットデータＰは、番組３の音声データである番組コンテンツパケットデータＰｃ３１１と規定される。
【０３３９】
このように、トランスポートストリームＴＳを構成するすべてのパケットデータＰのそれぞれに固有のパケット識別子ＰＩＤが付与されるのではなく、そのパケットデータＰの種類ごとに固有のパケット識別子ＰＩＤが付与されることを除いては、本図に示すトランスポートストリームＴＳも図３６を参照して説明したのトランスポートストリームＴＳと同様に構成される。なお、原則として、同一パケット識別子ＰＩＤを有する複数のパケットデータＰは、ストリーム作成時において、その提示の順番に配列される。その結果、受信側においては、逐次入力されるトランスポートストリームＴＳのすべてのパケットデータＰのそれぞれに対して、パケット識別子ＰＩＤごとに受信した順番に所定の処理を施すことによって、情報を抽出することができる。
【０３４０】
このようなパケット構成を有するトランスポートストリームＴＳに、上述の本発明の実施形態にかかるマルチフォーマットトランスポートストリームデコーダＴＤを適応した場合の動作について説明する。パケットデータＰの内容ごとに分類されるパケットデータグループごとに固有のパケット識別子ＰＩＤが付与されるということは、図３６に示したトランスポートストリームＴＳにパケットデータＰのパケット識別子ＰＩＤの上位３桁のみを指示することと実質的に同じである。つまり、本例においても、番組コンテンツパケットデータＰｃ１０１と番組コンテンツパケットデータＰｃ２０１の抽出することによって、図３８に示した番組映像コンテンツパケットデータＰｃＶと実質的に同じパケット構成の複数番組映像コンテンツパケットデータ列を生成できる。同様に番組コンテンツパケットデータＰｃ１１１とパケットデータＰ２１１の抽出することによって、図３８に示した番組音声コンテンツパケットデータＰｃＳと実質的に同じパケット構成の複数番組音声コンテンツパケットデータ列を生成できる。
【０３４１】
なお、第１のトランスポートストリームＴＳ１を構成するパケットデータは、第１のトランスポートストリームＴＳ１に固有に定められたフォーマットで生成されている。同様に、第２のトランスポートストリームＴＳ２を構成するパケットデータは、第２のトランスポートストリームＴＳ２に固有に定められたフォーマットで生成されている。これについては、後ほど、図５を参照して説明する。
【０３４２】
これは、上述のように、第１のトランスポートストリームＴＳ１を構成するパケットデータと、第２のトランスポートストリームＴＳ２を構成するパケットデータはそれぞれのトランスポートストリームに固有のフォーマットで構成されている。そのため、第１のトランスポートストリームＴＳ１を構成するパケットデータと第２のトランスポートストリームＴＳ２を構成するパケットデータでは、そのサイズが異なっている場合がある。また、第１のトランスポートストリームＴＳ１と第２のトランスポートストリームＴＳ２において、そのパケットサイズが同じである場合においても、それぞれのパケットデータがマルチフォーマットトランスポートストリームデコーダＴＤに同時刻に到着するとは限らないからである。
【０３４３】
つまり、トランスポートストリームＴＳが異なると、遅れて到着したパケットデータＰが先に到着したパケットデータＰを追い越して、メインメモリ９００に出力されることになる。このような場合、到着した順番に混合選択複数番組パケットデータ列Ｐｅｍｓとして出力することによって、メインメモリ９００中に正しく複数ＴＳ複数番組パケットデータ列Ｐｍｓｍを形成することは不可能である。よって、このような事態においても、複数ＴＳ複数番組パケットデータ列Ｐｍｓｍにおいて、異なるトランスポートストリームＴＳから抽出されたパケットデータＰが正しく再生できるように、トランスポートストリームＴＳにおけるパケットデータＰの時系列情報が必須である。
【０３４４】
このように、メインメモリ９００内に構成された複数ＴＳ複数番組映像コンテンツパケットデータ列ＰｍｓｍＶおよび複数ＴＳ複数番組音声コンテンツパケットデータ列ＰｍｓｍＳが、メインメモリ制御器７００によって、図３８に示す複数ＴＳ複数番組パケットデータ列Ｐｍｓｍとして読み出されて、マルチフォーマットトランスポートストリームデコーダＴＤの外部に出力される。
【０３４５】
そこで、本実施形態においては、逐次入力されてくるトランスポートストリームＴＳを構成する全パケットデータＰを個々にバッファリングするとともに、個々にバッファリングされているパケットデータＰを識別して、同パケットデータＰがユーザの所望する処理対象であるかを判断して、同パケットデータＰに対するアクセスおよび処理をリアルタイム制御するデータバッファリング機能を備える。さらに、リアルタイム処理時間内でのアクセスあるいは加工時間を保証するために、対象パケットデータをバッファセル内に所定時間だけ確保することをソフトウェア制御で保証し、それ以外の受動的処理についてはハードウェア制御に任せる。結果、パケットデータＰ単位でのより柔軟な識別管理を可能にし、識別されたパケットデータＰに対して固有のフォーマットごとに適切に処理を施す後行程に対する処理タイミング調整も容易なマルチフォーマットトランスポートストリームデコーダを提供するものである。
【０３４６】
図１に戻って、マルチフォーマットトランスポートストリームデコーダＴＤの構成要素のそれぞれについて詳しく説明する。第１ストリーム入力器ＴＳＲ＿１〜第εストリーム入力器ＴＳＲ＿εは、それぞれ外部のトランスポートストリーム源（図示せず）からパケット単位で供給されるトランスポートストリームＴＳ１〜ＴＳεに、それぞれを個別に識別するためのＩＤであるトランスポートストリーム識別子ＴＳＩＤを付与する。
【０３４７】
タイマ６００は、マルチフォーマットトランスポートストリームデコーダＴＤの起動とともに計時を開始し、各パケットデータＰの到着した時間情報ＴＴをストリーム出力器１３００およびストリーム入力器ＴＳＲに出力する。
【０３４８】
トランスポートストリーム識別子ＴＳＩＤは、入力される複数（１〜ε）の内任意のトランスポートストリームＴＳをｉ（１≦ｉ≦ε）として示す。この考えに基づいて、マルチフォーマットトランスポートストリームデコーダＴＤに入力される任意のトランスポートストリームＴＳを第ｉのトランスポートストリーム識別子ＴＳｉとして表すものとする。
【０３４９】
なお、第ｉのトランスポートストリームＴＳｉがタンスポートストリームＴＳとしては同一のフォーマットであっても、それを構成するパケットデータＰのフォーマットが異なる場合あり、そのために、さらにパケットデータＰのフォーマットをフォーマット識別子ＦＩＤによって管理するが、これに付いては後ほど図２８を参照して詳しく説明する。
【０３５０】
そして、ストリーム入力器ＴＳＲは、トランスポートストリーム識別子ＴＳＩＤが付与されたトランスポートストリームＴＳを内部に備えた入力バッファに一時的に保持して、それぞれを所定の転送単位ＴＳｄ１〜転送単位ＴＳｄεごとにデータバッファリング装置ＤＢＡに転送する。さらに、第１ストリーム入力器ＴＳＲ１ｒ〜第εストリーム入力器ＴＳＲεは、それぞれ入力されてくる第１のトランスポートストリームＴＳ１〜第εのトランスポートストリームＴＳεにデータエラーがある場合には、それを検出して第１のエラー信号Ｅ１〜第εのエラー信号Ｅεをデータバッファリング装置ＤＢＡ内のエラーフラグ設定器２９５に出力する。なお、転送単位ＴＳｄ１〜ＴＳｄεのサイズは、データバッファリング装置ＤＢＡにおける調停負荷および伝送効率を考慮して適切に定められる。
【０３５１】
データバッファリング装置ＤＢＡは、第１ストリーム入力器ＴＳＲ１〜第εストリーム入力器ＴＳＲεから供給される転送単位ＴＳｄ１〜ＴＳｄεの第１のトランスポートストリームＴＳ１〜第εのトランスポートストリームＴＳεをパケットデータＰ単位で管理蓄積して、処理対象パケットデータＰに対して所望の処理を施した後に、選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍとしてメインメモリ制御器７００に出力する。
【０３５２】
メインメモリ９００は、データバッファリング装置ＤＢＡから出力される第１のトランスポートストリームＴＳ１〜第εのトランスポートストリームＴＳεから抽出された選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍを格納するとともに、ＡＶデコーダに代表される外部機器（図示せず）に複数ＴＳ複数番組パケットデータ列Ｐｍｓｍとして出力する。
【０３５３】
メインメモリ制御器７００は、選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍおよび複数ＴＳ複数番組パケットデータ列Ｐｍｓｍを転送単位ＴＳｄごとに一時的に保持する。メインメモリ制御器７００はさらに、メインメモリ９００の動作を制御して、一時的に保持する選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍを転送単位ＴＳｄごとにメインメモリ９００に出力するとともに、メインメモリ９００を制御してその内部に複数ＴＳ複数番組映像コンテンツパケットデータ列ＰｍｓｍＶおよび複数ＴＳ複数番組音声コンテンツパケットデータ列ＰｍｓｍＳを形成させる。
【０３５４】
ＴＤ制御器ＴＤＣは、あらかじめマルチフォーマットトランスポートストリームデコーダＴＤに入力されるトランスポートストリームＴＳの種類ごとのデータ構造情報を格納している。そしてＴＤ制御器ＴＤＣは、実際に入力されるトランスポートストリームＴＳのデータ構造を示すトランスポートストリーム構造信号Ｓｔｓを生成して、ストリーム入力器ＴＳＲに出力することによって、ストリーム入力器ＴＳＲを入力されるトランスポートストリームＴＳに応じて適正に動作するように制御する。この場合、ユーザが副次処理要求入力器ＡＰＲなどを利用して、ＴＤ制御器ＴＤＣに格納されている構造情報を指示しても良い。
【０３５５】
トランスポートストリームＴＳのデータ構造情報をあらかじめＴＤ制御器ＴＤＣに格納しておく代わりに、ユーザが副次処理要求入力器ＡＰＲなどを利用して、実際に入力されるトランスポートストリームＴＳの構造情報をＴＤ制御器ＴＤＣに指示するようにしても良い。さらに、実際に入力されるトランスポートストリームＴＳを読み込んで、そのデータ構造を検出するようにマルチフォーマットトランスポートストリームデコーダＴＤを構成しても良い。
【０３５６】
ＴＤ制御器ＴＤＣは、マルチフォーマットトランスポートストリームデコーダＴＤ全体の動作を制御する。なお、マルチフォーマットトランスポートストリームデコーダＴＤは、上述の各構成要素の動作状態を示す状態信号ＳｒＷを生成してＴＤ制御器ＴＤＣに出力する。ＴＤ制御器ＴＤＣは、状態信号ＳｒＷに基づいて、マルチフォーマットトランスポートストリームデコーダＴＤの各構成要素の動作を制御する制御信号ＳｃＷを生成して、マルチフォーマットトランスポートストリームデコーダＴＤを制御する。なお、状態信号ＳｒＷおよび制御信号ＳｃＷの生成およびマルチフォーマットトランスポートストリームデコーダＴＤの制御は公知の技術であるので説明を省く。
【０３５７】
データバッファリング装置ＤＢＡは、パケットバッファリング調停器ＰＢＡ、パケット選択器４００、ストリーム出力管理器５００、中間処理用バッファセル使用メモリ５３０、パケット解析器１０００、ストリーム出力器１３００、および制御器ＰＢＡＣを含む。パケットバッファリング調停器ＰＢＡは、ストリーム入力器ＴＳＲから転送単位ＴＳｄごとに入力されるトランスポートストリームＴＳをパケットデータＰの単位で識別してバッファリングする。パケット選択器４００は、バッファリングされているパケットデータＰが所望のパケットデータＰであるかを判断する。
【０３５８】
中間処理用バッファセル使用メモリ５３０は、後述する二次バッファセル割当情報ｍｒｐに基づいて、パケットバッファ２７０の一次バッファセルＢｃ＿Ｉから読み出された後にデスクランブルされた被スクランブルデータＤｓｄｉの格納に供する二次バッファセルＢｃ＿Ｍを割り当てる。そして、割り当てた二次バッファセルＢｃ＿Ｍを示す割当二次バッファセル情報ｍｗｐして、バッファセル割当情報格納器２４０に出力する。なお、パケットバッファ２７０については、後ほど図３、図４、および図５を参照説明する。
【０３５９】
図２を参照して、主にストリーム出力管理器５００、パケット解析器１０００、およびストリーム出力器１３００について説明する。パケット解析器１０００は、デスクランブル器１１００とセクションデータ選別器１２００を含む。デスクランブル器１１００は、制御器ＰＢＡＣから入力されるデスクランブル指示制御データＤｃｒｌに基づき、ＤＭＡバス調停器２１０から入力される被スクランブルデータＤｓｄｉをデスクランブルして、被デスクランブルデータＤｓｄｏとともにデスクランブル終了通知データＤｃｒｌｏを生成する。被デスクランブルデータＤｓｄｏはＤＭＡバス調停器２１０に入力され、デスクランブル終了通知データＤｃｒｌｏは制御器ＰＢＡＣに入力される。
【０３６０】
セクションデータ選別器１２００は、ＤＭＡバス調停器２１０から入力される要選別セクションデータＳｓｄｉをセクション選別して被選別パケットデータＳｓｄｏを生成する。被選別パケットデータＳｓｄｏは、ＤＭＡバス調停器２１０に出力される。セクションデータ選別器１２００は、さらに制御器ＰＢＡＣから入力されるセクション選別指示制御データＳｃｒｌを選別してセクション選別終了信号Ｓｃｒｌｏを生成する。セクション選別終了信号ｓｃｒｌｏは、制御器ＰＢＡＣに入力される。
【０３６１】
ストリーム出力管理器５００は、出力順バッファセル番号メモリ制御器５１０と出力順バッファセル番号メモリ５２０とを含む。出力順バッファセル番号メモリ制御器５１０はパケットバッファ制御器２６０に接続されて、相互にストリーム出力管理信号Ｓｈｆを交換するとともに、ストリーム出力バッファセル決定信号Ｈｒｐを生成する。出力順バッファセル番号メモリ５２０は、出力順バッファセル番号メモリ制御器５１０から入力されるストリーム出力バッファセル決定信号Ｈｒｐに基づいて、パケットバッファ２７０のストリーム出力に使用するバッファセル番号を管理する。
【０３６２】
ストリーム出力器１３００は、タイマ６００から入力される時間情報ＴＴと、制御器ＰＢＡＣから入力されるストリーム出力指示制御データＨｃｒｌに基づいて、ＤＭＡバス調停器２１０から入力されるストリーム出力データＨｓｄｉを、第１ストリームＰｈｏ１および第２ストリームＰｈｏ２出力する。
【０３６３】
パケットバッファリング調停器ＰＢＡは、ＤＭＡバス調停器２１０、ＴＳｄ入力開始検出器２２０、バッファセル割当器２３０、バッファセル割当情報格納器２４０、書込先バッファセル指定器２５０、パケットバッファ制御器２６０、パケットバッファ２７０、蓄積完了バッファセル番号メモリ制御器２８０、蓄積完了バッファセル番号メモリ２９０、エラーフラグ設定器２９５、およびパケットアクセス器３００を含む。
【０３６４】
ＤＭＡバス調停器２１０は、第１ストリーム入力器ＴＳＲ１から出力される第１のパケット先頭検出信号Ｓｐｓ１、第１のリクエスト信号Ｓｒｑ１、および第１の転送単位ＴＳｄ１からの入力を受ける第１の入力ポート群を有する。同様に、第εストリーム入力器ＴＳＲεから出力される第εのパケット先頭検出信号Ｓｐｓε、第εのリクエスト信号Ｓｒｑε、および第εの転送単位ＴＳｄεからの入力を受ける第εの入力ポート群とを有する。つまり、ＤＭＡバス調停器２１０は、入力されるトランスポートストリームＴＳの数εと同じだけの入力ポート群を有する。このように、入力されるトランスポートストリームＴＳごとに入力ポート群を備えることによって、マルチフォーマットトランスポートストリームデコーダＴＤに入力される第ｉのトランスポートストリームＴＳｉを個別に識別できる。
【０３６５】
さらに、ＤＭＡバス調停器２１０は、第１ストリーム入力器ＴＳＲ１に第１のデータ有効信号Ｓｄｅ１を出力する第１の出力ポートとを有する。同様に、ＤＭＡバス調停器２１０は、第εストリーム入力器ＴＳＲεに第εのデータ有効信号Ｓｄｅεを出力する第εの出力ポートを有する。つまり、ＤＭＡバス調停器２１０は、入力されるトランスポートストリームＴＳの数εに応じて用意されるストリーム入力器ＴＳＲ１〜ＴＳＲεごとにデータ有効信号Ｓｄｅ１〜Ｓｄｅεを出力する出力ポートが用意される。
【０３６６】
ＤＭＡバス調停器２１０は、主に、第１ストリーム入力器ＴＳＲ１〜第εストリーム入力器ＴＳＲεとパケットバッファ制御器２６０との間での第１のトランスポートストリームＴＳ１〜第εのトランスポートストリームＴＳεの転送単位ＴＳｄ１〜ＴＳｄεでの入出力を調停する。つまり、ＤＭＡバス調停器２１０は第ｉストリーム入力器ＴＳＲｉから入力される第ｉのパケット先頭検出信号Ｓｐｓｉおよび第ｉのリクエスト信号Ｓｒｑｉに基づいて、第ｉのパケット先頭検出信号ＳｐｓｉをＴＳｄ入力開始検出器２２０に出力する。第ｉストリーム入力器ＴＳＲｉは、ＤＭＡバス調停器２１０から入力される第ｉのデータ有効信号Ｓｄｅｉに応答して、第ｉの転送単位ＴＳｄｉを供給する。さらに、ＤＭＡバス調停器２１０は、パケットバッファ制御器２６０から入力される選択複数番組パケットデータ列Ｐｅｍをメインメモリ制御器７００に出力する。
【０３６７】
ＴＳｄ入力開始検出器２２０は、パケット先頭検出信号Ｓｐｓおよび転送単位ＴＳｄに基づいて、パケットデータＰごとに転送単位ＴＳｄの入力が開始されたことを検出するとともに、入力が開始された転送単位ＴＳｄをパケットバッファ制御器２６０に供給する。さらに、ＴＳｄ入力開始検出器２２０は、入力が開始されたパケットデータＰを格納するために、パケットバッファ２７０のバッファセルＢｃの１つを割当を要求するバッファセル要求信号Ｓｂａを生成してバッファセル割当器２３０に出力する。そして、バッファセルＢｃが割り当てられれば、ＴＳｄ入力開始検出器２２０はその割り当てられてバッファセルに対して番組コンテンツパケットデータＰｃの書き込みが開始できる状態であることを示す書込許可信号Ｓｗを生成して書込先バッファセル指定器２５０に出力する。
【０３６８】
バッファセル割当器２３０は、バッファセル要求信号Ｓｂａに応答して、後述する割当一次バッファセル情報Ｉａｂに基づいて、入力が開始されたパケットデータＰの格納に供するバッファセルを割り当てる。そして、割り当てたバッファセルを示す一次バッファセル割当情報Ｉｂａを生成して、バッファセル割当情報格納器２４０に出力する。
【０３６９】
バッファセル割当情報格納器２４０は、バッファセル割当器２３０から入力される一次バッファセル割当情報Ｉｂａを格納する。さらにバッファセル割当情報格納器２４０は、同一次バッファセル割当情報Ｉｂａを書込先バッファセル指定器２５０および蓄積完了バッファセル番号メモリ制御器２８０に供給する。なお、さらにバッファセル割当情報格納器２４０は、一次バッファセル割当情報Ｉｂａに基づいて、パケットバッファ２７０を構成する各バッファセルＢｃの割当状況を示す割当一次バッファセル情報Ｉａｂを生成してバッファセル割当器２３０にフィードバックする。
【０３７０】
書込先バッファセル指定器２５０は、ＴＳｄ入力開始検出器２２０から入力される書込許可信号Ｓｗに応答して、バッファセル割当情報格納器２４０から入力される一次バッファセル割当情報Ｉｂａで示される、割り当てられたバッファセルに対する転送単位ＴＳｄの書込を指示する書込要求信号Ｓｗｄを生成して、パケットバッファ制御器２６０に出力する。
【０３７１】
パケットバッファ制御器２６０は、書込要求信号Ｓｗｄに応答して、ＴＳｄ入力開始検出器２２０から供給される転送単位ＴＳｄｉを、パケットバッファ２７０の割り当てられたバッファセルに書き込む。このとき、ＤＭＡバス調停器２１０はＴＳＲｉ１からのデータであることを、パケットバッファ制御器２６０に通知する。つまり、ＴＳｄには後に説明するが、あらかじめそれがマルチフォーマットトランスポートストリームデコーダＴＤに入力される複数εのトランスポートストリームＴＳ１〜ＴＳεのどのトランスポートストリームＴＳｉのデータであるかを示す印が付加されており、パケットバッファ制御器２６０はバッファセル中の蓄積されたデータに付加されたこれらの情報と、ＤＭＡバス調停器２１０から通知された情報とを比較することで、正しいトランスポートストリームの情報を区別しながら蓄積する。
【０３７２】
さらに、パケットバッファ制御器２６０は、割り当てられたバッファセルに書き込んだデータのバイト数をカウントすることによって、１パケットデータＰ分の転送単位ＴＳｄｉが書き込まれたことを検出して、ＤＭＡバス調停器２１０からの１パケットデータＰのデータ転送が終了したことを示す転送終了信号Ｓｔｆを生成して、蓄積完了バッファセル番号メモリ制御器２８０に出力する。なお、入力されるトランスポートストリームＴＳｉの１パケットデータＰｉのデータサイズを含む所定のフォーマット情報は、あらかじめマルチフォーマットトランスポートストリームデコーダＴＤに格納されているデータ構造情報に含まれていることは上述の通りである。
【０３７３】
蓄積完了バッファセル番号メモリ制御器２８０は、バッファセル割当情報格納器２４０から入力された一次バッファセル割当情報Ｉｂａとパケットバッファ制御器２６０から入力された転送終了信号Ｓｔｆに基づいて、１パケットデータＰが書き込まれたバッファセルを示すバッファセル番号信号Ｓｂｎと、バッファセル番号Ｎｂｃを書き込む記憶領域を示すライトポインタＷＰを１つ進るライトポイント更新信号Ｓｗｐを生成して蓄積完了バッファセル番号メモリ２９０に出力する。
【０３７４】
エラーフラグ設定器２９５は、第１ストリーム入力器ＴＳＲ１〜第２ストリーム入力器ＴＳＲεから入力される第１のエラー信号Ｅ１〜第εのエラー信号Ｅεと、パケットバッファ制御器２６０から入力される転送終了信号Ｓｔｆに基づいて、エラーフラグメモリ２９０ＥＦのエラーフラグ領域Ｆｃにデータエラーを含むパケットデータＰを格納したバッファセルＢｃｍを示すエラーフラグを立てさせるエラーフラグ信号Ｆｅを生成して、蓄積完了バッファセル番号メモリ２９０に出力する。
【０３７５】
つまり、ライトポインタＷＰが示すバッファセル指定領域Ｒｃｍにバッファセル番号信号Ｓｂｎの示すバッファセル番号Ｎｂｃを記録するとともに、ライトポインタＷＰの示すフラグ格納領域Ｆｃｍにエラーフラグ信号Ｆｅの示すフラグ値を記述する。その後、ライトポインタＷＰの位置を１つ進て、バッファセル番号Ｎｂｃを記録したバッファセル指定領域Ｒｃｍの次の領域と、フラグ値を記入したフラグ格納領域Ｆｃｍの次の領域とを同時に指し示させる。
【０３７６】
蓄積完了バッファセル番号メモリ２９０においては、バッファセル番号Ｎｂｃｎを記入すべきバッファセル指定領域Ｒｃｍと、エラーフラグ信号Ｆｅに基づいてフラグ値を書き込むべきフラグ格納領域Ｆｃｍは同一のライトポインタＷＰによって指示される。そして、記入されているバッファセル番号Ｎｂｃｎを読み出すべきバッファセル指定領域Ｒｃｍと、フラグ値を読み出すべきフラグ格納領域Ｆｃｍは同一のリードポインタＲＰによって指示される。リードポインタＲＰは制御器ＰＢＡＣから出力される制御信号Ｓｃに基づいて進られる。
【０３７７】
なお、本実施形態においては、蓄積完了バッファセル番号メモリ２９０は後ほど図３を参照して説明するように、好ましくはリングメモリで構成されるので、このようにバッファセルに書き込みを終了するごとにライトポインタＷＰを１つずつ進ることによって、蓄積完了バッファセル番号メモリ２９０の記憶領域に記憶されているバッファセル番号Ｎｂｃを適正に更新できる。
【０３７８】
なお、パケットアクセス器３００は、パケットバッファ制御器２６０およびＤＭＡバス調停器２１０を経由して、パケットバッファ２７０のバッファセルに格納された直後のパケットデータＰに選択的にアクセスして、読み出し、参照、あるいは編集等の処理を施した後にＤＭＡバス調停器２１０およびパケットバッファ制御器２６０を経由して、元のパケットデータＰを上書き更新したりする。
【０３７９】
このために、パケットバッファ制御器２６０は、後述のリードポインタＲＰが指し示すバッファセルに格納されているパケットデータＰのパケット識別子ＰＩＤを読んで、バッファパケット識別情報ＰＩＤｅを抽出するとともに、ＤＭＡバス調停器２１０に出力する。
【０３８０】
なお、パケットバッファリング調停器ＰＢＡは、上述の各構成要素の動作状態を示す状態信号Ｓｒを生成して制御器ＰＢＡＣに出力する。制御器ＰＢＡＣは、状態信号Ｓｒ基づいて、パケットバッファリング調停器ＰＢＡの各構成要素の動作を制御する制御信号Ｓｃを生成して、パケットバッファリング調停器ＰＢＡに出力する。なお、状態信号Ｓｒおよび制御信号Ｓｃ１の生成する制御器ＰＢＡＣの制御は公知の技術であるので説明を省く。
【０３８１】
パケットバッファリング調停器ＰＢＡは、第１ストリーム入力器ＴＳＲ１から転送単位ＴＳｄ１で入力されるトランスポートストリームＴＳ１〜第εストリーム入力器ＴＳＲεから転送単位ＴＳｄ２で入力されるトランスポートストリームＴＳｉをパケット、つまりパケットデータＰの単位で識別管理してバッファリングする。制御器ＰＢＡＣは、パケットバッファリング調停器ＰＢＡの動作を制御する。
【０３８２】
なお、本発明においては、トランスポートストリームＴＳに含まれるパケットデータＰを個別にバッファセルＢｃに格納するとともに、格納しているパケットデータＰの内容を識別し、当該パケットデータＰに対するアクセスおよび処理を可能ならしめ、さらに当該パケットデータＰをそのフォーマットにしたがって所望の処理を施すことができる。
【０３８３】
次に図２および３を参照して、上述のバッファセル割当情報格納器２４０、パケットバッファ２７０、および蓄積完了バッファセル番号メモリ２９０の関係について簡単に説明する。図２に示すように、パケットバッファ２７０は、大別してｍ（ｍは２ε以上の整数）個の一次バッファセルＢｃ＿Ｉ１〜Ｂｃ＿Ｉｍと、ｎ（ｎはｍ／２より大きい整数）個の二次バッファセルＢｃ＿Ｍ１〜ＢＣ＿Ｍｎと、１つ以上の三次バッファセルＢｃ＿Ｏを含む。
【０３８４】
これは、入力されるトランスポートストリームＴＳごとに、パケットデータＰの蓄積用と蓄積したパケットデータＰの読み出し用に異なる一次バッファセルＢｃ＿Ｉが１つは必要であるからである。なお、第１のトランスポートストリームＴＳ１と第２のトランスポートストリームＴＳ２との２つ（ε＝２）のトランスポートストリームＴＳが入力される場合には、一次バッファセルＢｃ＿Ｉの個数ｍは４（２×２）以上の整数である。
【０３８５】
また、二次バッファセルＢｃ＿Ｍは、一次バッファセルＢｃ＿Ｉの読み出し用に対応して設ければ良いので、必要数ｎはｍ／２以上の整数となる。さらに、三次バッファセルＢｃ＿０は、１つのパケットデータＰに対する処理課程の中間データを集積して完成させた後に出力すれば良いので１つ以上あれば良い。
【０３８６】
一次バッファセルＢｃ＿Ｉ１〜Ｂｃ＿Ｉｍはそれぞれ、ＴＳｄ入力開始検出器２２０およびパケットバッファ制御器２６０を経由して転送単位ＴＳｄで入力されるパケットデータＰを第１の所定時間Ｔ１だけ格納して、格納したパケットデータＰに対する処理を受け付ける。パケットバッファ制御器２６０によって、一次バッファセルＢｃ＿Ｉに格納されたパケットデータＰのパケット識別子ＰＩＤおよびトランスポートストリーム識別子ＴＳＩＤが抽出パケット識別情報ＰＩＤｅおよび抽出トランスポートストリーム識別子ＴＳＩＤｅとして読み出される。
【０３８７】
さらに、一次バッファセルＢｃ＿Ｉはデスクランブル器１１００およびセクションデータ選別器１２００に接続されている。そして、一次バッファセルＢｃ＿Ｉに格納されているパケットデータＰの内でスクランブルされている被スクランブルデータＤｓｄｉをデスクランブル器１１００に出力される。また、一次バッファセルＢｃ＿Ｉに格納されているパケットデータＰがセクションデータの場合は要選別セクションデータＳｓｄｉ２がセクションデータ選別器１２００に出力される。
【０３８８】
デスクランブル器１１００は、一次バッファセルＢｃ＿Ｉから入力される被スクランブルデータＤｓｄｉをデスクランブルして被デスクランブルデータＤｓｄｏを生成する。セクションデータ選別器１２００は、一次バッファセルＢｃ＿Ｉから入力される要選別セクションデータＳｓｄｉ２をセクションデータ選別して被選別パケットデータＳｓｄｏを生成する。
【０３８９】
二次バッファセルＢｃ＿Ｍは、デスクランブル器１１００に接続されて、被デスクランブルデータＤｓｄｏを第２の所定時間Ｔ２（Ｔ２＜Ｔ１）だけ格納する。さらに、セクションデータ選別器１２００は二次バッファセルＢｃ＿Ｍに接続されて、格納している被デスクランブルデータＤｓｄｏの内のデスクランブルされた実データを要選別セクションデータＳｓｄｉ１として読み出し、セクションデータ選別して被選別パケットデータＳｓｄｏを生成する。
【０３９０】
三次バッファセルＢｃ＿０は、セクションデータ選別器１２００に接続されて、要選別セクションデータＳｓｄｉ１あるいは要選別セクションデータＳｓｄｉ２の何れかから生成された被選別パケットデータＳｓｄｏを第３の所定時間Ｔ３（Ｔ３＜Ｔ２）だけ格納する。
【０３９１】
バッファセルＢｃのそれぞれは、所定のサイズのデータを一時的に蓄える、つまりバッファリングできる。そのために必要なバッファセルＢｃの容量を最低バッファ容量ＭＢＵと言う。最低バッファ容量ＭＢＵは、パケットデータＰを構成するパケットデータＰのデータサイズに応じて適宜設定される。最低バッファ容量ＭＢＵをパケットサイズに比べて小さく設定すれば、番組コンテンツパケットデータＰｃの抽出をよりきめ細やかに制御できるが、ＤＭＡバス調停器２１０における入出力調停頻度が大きくなり、そのための制御工数の増大を招き処理効率が悪くなる。
【０３９２】
一方、最低バッファ容量ＭＢＵをパケットサイズに比べて大きく、例えば数倍程度に設定すれば、１つのバッファセルＢｃに複数のパケットデータＰを格納することも可能になる。しかしながらこの場合は、１つのバッファセルＢｃに格納されている複数のパケットデータＰを区別できないので、パケットデータＰ単位での制御、あるいはアクセスができない。したがって、最低バッファ容量ＭＢＵは、トランスポートストリームデコーダの内部処理速度、パケットデータＰの入力レート、パケットサイズ、およびパケットデータＰへのアクセス頻度に基づいて適切に設定されるべきものである。
【０３９３】
なお、本例においては、最低バッファ容量ＭＢＵは１パケットデータＰを格納できるように定めており、具体的には１８８バイトとしている。なお、必要に応じて、パケットデータＰを識別又は管理するための所定のバイト数を有する補助データを１パケットデータＰに追加して格納できるようにしても良い。しかしながら、必要に応じて、上述のようにパケットサイズに比べて小さく設定、つまり１つのパケットを複数のバッファセルＢｃに分割して格納するようにしても良い。
【０３９４】
なお、最低バッファ容量ＭＢＵは、分割の有無に関わらず格納するデータに管理情報に相当する管理バイトを足したものになる。管理情報には少なくとも、格納する分割／非分割データが入力される複数のトランスポートストリームＴＳのどれに属するかを示すトランスポートストリーム識別情報を含む。
また、パケットを分割して格納する場合には、最低バッファ容量ＭＢＵはパケットデータＰの分割後のデータの最大サイズに分割情報とトランスポートストリームパケット識別情報を含む管理データサイズの和になる。この場合、バッファセルＢｃの個数Ｎの最小値であるバッファセル最少個数Ｎｍｉｎは２εに分割数Ｄを乗じたもの（バッファセル最少個数Ｎｍｉｎは２εＤ）になる。
【０３９５】
さらに、異なるパケットデータＰ間の入力レートの違いについて述べる。つまり、マルチフォーマットトランスポートストリームデコーダＴＤに入力される複数εのトランスポートストリームＴＳ１〜ＴＳεのそれぞれに含まれるパケットデータＰの入力レートは、トランスポートストリームＴＳｉごとに異なることが多い。今、２つ（ε＝２）のトランスポートストリームＴＳ１およびＴＳ２が入力される場合を例として説明する。第１のトランスポートストリームＴＳ１の番組１の番組コンテンツパケットデータＰｃ１０１およびＰｃ１１１と、第２のトランスポートストリームＴＳ２の第４の番組コンテンツパケットデータＰｃ４０１およびＰｃ４１１とをバッファリングする場合に、番組コンテンツパケットデータＰｃ４０１の入力レートが番組コンテンツパケットデータＰｃ１０１の入力レートに比べて圧倒的に大きい場合を考える。
【０３９６】
この場合、番組コンテンツパケットデータＰｃ１０１とＰｃ４０１が同時にマルチフォーマットトランスポートストリームデコーダＴＤに到着したとしても、ＤＭＡバス調停器２１０ｒ調停されて、一方（例えば、番組コンテンツパケットデータＰｃ１０１）のバッファリングが他方（例えば、番組コンテンツパケットデータＰｃ４０１）より先に始まる。そして、番組コンテンツパケットデータＰｃ１０１のバッファリングの開始に引き続いて番組コンテンツパケットデータＰｃ４０１のバッファリングが開始する。しかしながら、番組コンテンツパケットデータＰｃ４０１の入力レートは番組コンテンツパケットデータＰｃ１０１の入力レートに比べて圧倒的に大きいために、番組コンテンツパケットデータＰｃ４０１のバッファリング途中で、番組コンテンツパケットデータＰｃ１０１の入力が完了してしまう。
【０３９７】
このような事態に対応するべく、番組コンテンツパケットデータＰｃ１０１のバッファリング中に、後から入力される高レートの番組コンテンツパケットデータＰｃ４１１のバッファリングするためにバッファセルＢｃを用意する必要がある。この場合のバッファセル最少個数Ｎｍｉｎは、入力されるトランスポートストリームＴＳの番組コンテンツパケットデータＰｃの入力レートに基づいて決定されるが、最低バッファ容量ＭＢＵを一定とすれば、バッファセル最少個数Ｎｍｉｎは一般に入力トランスポートストリームＴＳの数に比例し、入力トランスポートストリーム間で入力レートが著しく異なる番組コンテンツパケットデータＰｃの数に応じた分だけ増加する。
【０３９８】
なお、本例においては、最低バッファ容量ＭＢＵは１パケットデータＰに所定の管理データを付加したものを格納できるように定めており、具体的には１８８バイトの１パケットデータＰに４バイトの管理データを付加したものを格納できるように１９２バイトとしている。また、４バイトの管理データには、上述のトランスポートストリーム識別情報とともに、当該パケットデータＰの到着時間を示すタイムスタンプ情報も含まれている。これについては、後ほど図１６を参照して説明する。
【０３９９】
なお、一次バッファセルＢｃ＿Ｉ、二次バッファセルＢｃ＿Ｍ、および三次バッファセルＢｃ＿０に格納されるデータについて、図３、図２４、図２５、図２６、および図２７を参照して説明する。図２５においては、第１のトランスポートストリームＴＳ１のパケットデータＰ１は第１のフォーマットＦＭＴ１で構成され、第２のトランスポートストリームＴＳ２のパケットデータＰ２は第２のフォーマットＦＭＴ２で構成されている場合が例示されている。
【０４００】
ちなみに、第１のフォーマットＦＭＴ１で構成されているパケットデータＰ１（ＴＳ１）は、先頭から素性管理バイトＢＭｈ、補助データＡＸＤ、実データＰＤＢ、および処理管理バイトＢＭｐの順番に配列構成されている。素性管理バイトＢＭｈ、補助データＡＸＤ、実データＰＤＢ、および処理管理バイトＢＭｐのバイトサイズをそれぞれ、Ｍ、Ｎ１、Ｒ１、およびＭとすると、このようなパケットデータＰ１（ＴＳ１：ＦＭＴ１）を格納するために、バッファセルＢｃに要求される最小容量ＭＢＵは、２Ｍ＋Ｎ１＋Ｒ１となる。
【０４０１】
同様に、第２の第フォーマットＦＭＴ２で構成されているパケットデータＰ２（ＴＳ２）は、先頭から素性管理バイトＢＭｈ、実データＰＤＢ、および処理管理バイトＢＭｐの順番に配列構成されている。素性管理バイトＢＭｈ、補助データＡＸＤ、実データＰＤＢ、および処理管理バイトＢＭｐのバイトサイズをそれぞれ、Ｍ、Ｒ２、呼びＭとすると、このようなパケットデータＰ２（ＴＳ２：ＦＭＴ２）を格納するために、バッファセルＢｃに要求される最小容量ＭＢＵは、２Ｍ＋Ｒ２となる。
【０４０２】
図２６、および図２７を参照して、管理バイトＢＭの構成について説明する。図２６に示すように、管理バイトＢＭには、素性管理バイトＢＭｈと処理管理バイトＢＭｐの２種類がある。素性管理バイトＢＭｈは、パケット到着時間情報ＡＴＳ（Ａｒｒｉｖａｌ Ｔｉｍｅ Ｓｔａｍｐ）、フォーマット識別子ＦＩＤ（Ｆｏｒｍａｔ ＩＤｅｆｉｃａｔｉｏｎ）、マルチストリーム識別子トランスポートストリーム識別子ＴＳＩＤ（ＴＳ Ｉｄｅｆｉｃａｔｉｏｎ）、およびストリーム出力要求情報格納領域ＨＳＯＵＴＲ（ＨｉＳｐｅｅｄ ＯＵＴｐｕｔ  Ｒｅｇｉｏｎ）を含む。
【０４０３】
パケット到着時間情報ＡＴＳ、フォーマット識別子ＦＩＤ、およびマルチストリーム識別子トランスポートストリーム識別子ＴＳＩＤは、ストリーム入力器ＴＳＲにより付加される。本発明にかかるマルチフォーマットトランスポートストリームデコーダＴＤでは、マルチストリーム、およびマルチフォーマットのパケットデータ制御を行うために、バッファセルＢｃにパケットデータＰを格納する際に、制御器ＰＢＡＣがパケット処理をするために必要な情報を実データＰＤに付加して格納することが可能である。
【０４０４】
図２７に示すように、補助データＡＸＤは、補助データ情報ＶＡＬＩＤ、ストリーム出力Ｉ/Ｆ用時間情報ＨＳＴＳ（ＨｉＳｐｅｅｄ Ｔｉｍｅ Ｓｔａｍｐ）、およびストリームエラー情報ＥＲＲを含む。補助データＡＸＤは、ストリーム出力部ストリーム出力器１３００から出力したデータを受ける機器との接続Ｉ/Ｆ規格に基づく処理を行う場合に必要とされる情報である。
【０４０５】
補助データ情報ＶＡＬＩＤは、現在の補助データＡＸＤが受取側の機器で使用できるか否かを表す情報であり、補助データＡＸＤが有効時にＡｃｔｉｖｅとする。ストリーム出力Ｉ/Ｆ用時間情報ＨＳＴＳは、２７ＭＨｚ系の時間情報であり、管理バイトＢＭのパケット到着時間情報ＡＴＳに基づいて、制御器ＰＢＡＣによって生成される。ストリームエラー情報ＥＲＲは、ストリーム出力した該当ストリームがエラーストリームであるか否かを示す情報であり、エラーストリーム時にＡｃｔｉｖｅとする。
【０４０６】
図２に戻って、奇数番の一次バッファセルＢｃ＿Ｉには第１のフォーマットＦＭＴ１のパケットデータＰが格納され、偶数番の一次バッファセルＢｃ＿Ｉには第２の第フォーマットＦＭＴ２（セクションデータ）のパケットデータＰが格納される場合を例に説明する。奇数番の一次バッファセルＢｃ＿Ｉには、処理管理バイトＢＭｐ、補助データＡＸＤ、実データＰＤ１、および素性管理バイトＢＭｈの順番に格納される。偶数番の一次バッファセルＢｃ＿Ｉには、処理管理バイトＢＭｐ、実データＰＤ２、および素性管理バイトＢＭｈの順番に格納される。
【０４０７】
奇数番の一次バッファセルＢｃ＿Ｉに格納されている補助データＡＸＤと実データＰＤが第１ストリームＰｈｏ１として、ストリーム出力器１３００から出力される。偶数番の一次バッファセルＢｃ＿Ｉに格納されている実データＰＤが第２ストリームＰｈｏ２として、ストリーム出力器１３００から出力される。
【０４０８】
さらに、奇数番の一次バッファセルＢｃ＿Ｉから処理管理バイトＢＭｐと補助データＡＸＤと実データＰＤが被スクランブルデータＤｓｄｉとしてデスクランブル器１１００に出力される。デスクランブル器１１００は、被スクランブルデータＤｓｄｉの補助データＡＸＤと実データＰＤをデスクランブルして、被デスクランブル補助データＡＸＤ’を生成する。そして、処理管理バイトＢＭｐと被デスクランブル補助データＡＸＤ’と被デスクランブル実データＰＤ’とを被デスクランブルデータＤｓｄｏとして二次バッファセルＢｃ＿Ｍに出力される。
【０４０９】
二次バッファセルＢｃ＿Ｍにおいては、被デスクランブルデータＤｓｄｏが処理管理バイトＢＭｐ、被デスクランブル補助データＡＸＤ’、および被デスクランブル実データＰＤ’の順番に格納される。そして、二次バッファセルＢｃ＿Ｍから処理管理バイトＢＭｐ、被デスクランブル補助データＡＸＤ’、および被デスクランブル実データＰＤ’が要選別セクションデータＳｓｄｉ１としてセクションデータ選別器１２００に出力される。
【０４１０】
セクションデータ選別器１２００は、要選別セクションデータＳｓｄｉ１を選別して被選別実データＰＤ”を生成して三次バッファセルＢｃ＿０に出力する。
【０４１１】
偶数番の一次バッファセルＢｃ＿Ｉから処理管理バイトＢＭｐと補助データＡＸＤと実データＰＤが要選別セクションデータＳｓｄｉ２としてセクションデータ選別器１２００に出力される。セクションデータ選別器１２００は、要選別セクションデータＳｓｄｉ２を選別して被選別実データＰＤ”を生成して被選別パケットデータＳｓｄｏとして三次バッファセルＢｃ＿０に出力する。
【０４１２】
このようにして、パケットデータＰのフォーマットに応じて処理された被選別実データＰＤ”が三次バッファセルＢｃ＿０に格納される。
【０４１３】
バッファセル割当情報格納器２４０は、パケットバッファ２７０の一次バッファセルＢｃ＿Ｉ１〜Ｂｃ＿Ｉｍのそれぞれに対応する一次バッファセル割当情報領域ＡＩ１〜ＡＩｍと、二次バッファセルＢｃ＿Ｍ１〜Ｂｃ＿Ｍｎのそれぞれに対応する二次バッファセル割当情報領域ＡＭ１〜ＡＭｎを有する。バッファセル割当情報格納器２４０は、バッファセル割当器２３０から供給される一次バッファセル割当情報Ｉｂａに基づいて、割り当てられた一次バッファセルＢｃ＿Ｉに対応する一次バッファセル割当情報領域ＡＩに割当の有無を示す割当識別データを書き込む。つまり、バッファセル割当情報格納器２４０には、パケットバッファ２７０の一次バッファセルＢｃ＿Ｉ１からＢｃ＿Ｉｍと同数の一次バッファセル割当情報領域ＡＩ１〜ＡＩｍが用意される。
【０４１４】
同様に、バッファセル割当情報格納器２４０は、中間処理用バッファセル使用メモリ５３０から供給される二次バッファセル割当情報ｍｒｐに基づいて、割り当てられた二次バッファセルＢｃ＿Ｍに対応する二次バッファセル割当情報領域ＡＭに割当の有無を示す割当識別データを書き込む。つまり、バッファセル割当情報格納器２４０には、パケットバッファ２７０の二次バッファセルＢｃ＿Ｍ１〜Ｂｃ＿Ｍｎと同数の二次バッファセル割当情報領域ＡＭ１〜ＡＭｎが用意される。
【０４１５】
例えば、割当識別データは１と０の二値データであり、初期値は０である。そして、一次バッファセルＢｃ＿Ｉ１が割り当てられる場合には、一次バッファセルＢｃ＿Ｉ１に対応する一次バッファセル割当情報領域ＡＩ１には、例えば１が書き込まれる。一方、一次バッファセルＢｃ＿Ｉ１に書き込まれたデータが読み出された後に、制御器ＰＢＡＣから出力される制御信号Ｓｃに基づいて一次バッファセル割当情報領域ＡＩ１に０が書き込まれて、一次バッファセルＢｃ＿Ｉ１は解放される。これは、二次バッファセルＢｃ＿Ｍに関しても同様である。
【０４１６】
このようにして、パケットバッファ２７０の各一次バッファセルＢｃ＿Ｉ１〜Ｂｃ＿Ｉｍそれぞれの割当状況が一次バッファセル割当情報領域ＡＩ１〜ＡＩｍにおける値の集合で表現されて、割当一次バッファセル情報Ｉａｂとしてバッファセル割当器２３０に供給される。同様に、二次バッファセルＢｃ＿Ｍ１〜Ｂｃ＿Ｍｎそれぞれの割当状況が二次バッファセル割当情報領域ＡＭ１〜ＡＭｎにおける値の集合で表現されて、割当二次バッファセル情報ｍｗｐとして中間処理用バッファセル使用メモリ５３０に供給される。
【０４１７】
図３に示すように、蓄積完了バッファセル番号メモリ２９０は、バッファセル番号メモリ２９０ＢＣＮとエラーフラグメモリ２９０ＥＦとを含む。バッファセル番号メモリ２９０ＢＣＮは、パケットバッファ２７０の一次バッファセルＢｃ＿Ｉ１〜Ｂｃ＿Ｉｍの特定の１つを示すバッファセル番号ＮｂｃＮを格納するバッファセル指定領域Ｒｃ（Ｒｃ１〜ＲｃＭ）を有する。なお、Ｍは２以上かつＮ以下の自然数である。蓄積完了バッファセル番号メモリ２９０は好ましくは、リングメモリで構成されてバッファセル指定領域Ｒｃ１〜ＲｃＭが連続的かつ循環的に記録される。結果、バッファセル割当情報格納器２４０の場合と異なり、バッファセル割当情報格納器２４０の一次バッファセルＢｃ＿Ｉ１〜Ｂｃ＿Ｉｍと同数だけ用意する必要はなく、Ｍ個のバッファセル指定領域Ｒｃ１〜ＲｃＭを用意すれば良い。
【０４１８】
バッファセル番号Ｎｂｃｎを記入すべきバッファセル指定領域Ｒｃｍ（ｍは１以上Ｍ以下の自然数）はライトポインタＷＰによって指示される。そして、記入されているバッファセル番号Ｎｂｃｎを読み出すべきバッファセル指定領域ＲｃｍはリードポインタＲＰによって指示される。ライトポインタＷＰはリードポインタＲＰの示す位置より１つ次か同一のバッファセル指定領域Ｒｃｍを示す。ライトポインタＷＰは、上述のように蓄積完了バッファセル番号メモリ制御器２８０から出力されるライトポイント更新信号Ｓｗｐに基づいて進られるが、リードポインタＲＰは制御器ＰＢＡＣから出力される制御信号Ｓｃに基づいて進られる。
【０４１９】
ライトポインタＷＰがリードポインタＲＰの位置より１つ進んでいる場合は、リードポインタＲＰが示すバッファセル指定領域Ｒｃｍに示されているバッファセルＢｃｎは、データを格納し終わって読み出し可の状態であることを意味している。ライトポインタＷＰとリードポインタＲＰが同位置を示している場合は、データが読み出し可の状態にあるバッファセルＢｃｎはないことを意味している。
【０４２０】
エラーフラグメモリ２９０ＥＦは、バッファセル番号メモリ２９０ＢＣＮのバッファセル指定領域Ｒｃ１〜ＲｃＭのそれぞれに対応するフラグ格納領域Ｆｃ（Ｆｃ１〜ＦｃＭ）を有する。エラーフラグメモリ２９０ＥＦは、基本的には蓄積完了バッファセル番号メモリ２９０と同様に好ましくはリングメモリで構成されて、エラーフラグ設定器２９５から入力されるエラーフラグ信号Ｆｅに基づいて、フラグ格納領域Ｆｃ１〜ＦｃＭにフラグ値が連続的かつ循環的に記録される。
【０４２１】
図４に、蓄積完了バッファセル番号メモリ２９０の変形例について説明する。本変形例における蓄積完了バッファセル番号メモリ２９０Ｒは、簡単に言うとバッファセル番号メモリ２９０ＢＣＮのバッファセル指定領域Ｒｃとエラーフラグメモリ２９０ＥＦのフラグ格納領域Ｆｃが一体化されてバッファセル属性格納領域Ｒｃｐ（Ｒｃｐ１〜ＲｃｐＭ）が構成されている。そして、バッファセル番号信号Ｓｂｎとエラーフラグ信号Ｆｅが一体的に結合されて、個々のバッファセルＢｃのデータ格納状況を表す属性データＰｂｃとして、バッファセル属性格納領域Ｒｃｐに記録される。なお、このように一次バッファセルＢｃ＿Ｉの状態を１種類のデータによって管理することによって、一次バッファセルＢｃ＿Ｉの獲得および解放処理のより一層の効率化を図ることができる。
【０４２２】
次に図５に示す波形図を参照して、２つ（ε＝２）のトランスポートストリームＴＳ１およびＴＳ２が入力される場合を例として、第１ストリーム入力器ＴＳＲ１および第２ストリーム入力器ＴＳＲ２、ＤＭＡバス調停器２１０、およびパケットバッファ制御器２６０の動作について簡単に説明する。第１ストリーム入力器ＴＳＲ１には、１３０バイトのデータで構成されるパケットデータＰ１が１バイトずつ、所定の周波数を有する第１の入力転送クロックＣｋ１に同期して入力される。同様に、第２ストリーム入力器ＴＳＲ２には、１８８バイトのデータで構成されるパケットデータＰ２から構成される第２のトランスポートストリームＴＳ２が１バイトずつ、所定の周波数を有する第２の入力転送クロックＣｋ２に同期して入力される。なお、パケットデータＰの同期を取るための同期バイトＢｓｙｎｃは、第２のトランスポートストリームＴＳ２においてはそのパケットデータＰ２の先頭に含まれるが、第１のトランスポートストリームＴＳ１においてはパケットデータＰ１には含まれていない。
【０４２３】
本例においては、第１の入力転送クロックＣｋ１と第２の入力転送クロックＣｋ２は、同一である場合が示されている。しかし、入力転送クロックＣｋの周波数は、入力されるトランスポートストリームＴＳごとに定められている。よって、第１の入力転送クロックＣｋ１と第２の入力転送クロックＣｋ２の周波数が異なる場合があることは言うまでもない。ストリーム入力器ＴＳＲには、トランスポートストリームＴＳが１ビット単位で入力される場合もあるが、処理内容は、入力データ単位に関わらず基本的に同一であるであるので、以下に１バイト単位に入力される場合についてのみ説明する。なお、同図においては、第２のトランスポートストリームＴＳ２にデータエラーが検出される一方、第１のトランスポートストリームＴＳ１にはデータエラーが検出されない場合が例示されている。
【０４２４】
第１ストリーム入力器ＴＳＲ１は、パケットデータＰ１ごとに、最初の１バイトの同期データを検出した時点でパケットデータＰ１のパケット先頭を検出する。そして、パケット先頭を検出する都度、第１のパケット先頭検出信号Ｓｐｓ１を生成してＤＭＡバス調停器２１０に出力する。
【０４２５】
第１ストリーム入力器ＴＳＲ１は、さらに、パケット先頭を検出した時点で、時間情報ＴＴに基づいて、パケットデータＰ１の到着した時刻を示すタイムスタンプＳｔとそのパケットデータＰ１が第１のトランスポートストリームＴＳ１であること示すトランスポートストリーム識別子ＴＳＩＤ（１）を生成する。なお、トランスポートストリーム識別子ＴＳＩＤは言い換えれば、そのトランスポートストリームＴＳがＤＭＡバス調停器２１０の第１の入力ポート群に入力されていることを示し、さらに第１ストリーム入力器ＴＳＲ１から入力されていることを示す。
【０４２６】
なお、タイムスタンプＳｔは、１つのトランスポートストリームＴＳに対して一次バッファセルＢｃ＿Ｉが割り当てられた時点の時間情報ＴＴは、バッファセルＢｃの先頭に格納される。さらに、設定されたサイズのパケットデータが割り当てた一次バッファセルＢｃ＿Ｉに格納終了した時点の時間ＴＴは、当該一次バッファセルＢｃ＿Ｉにおいて格納されたパケットデータＰの最後尾に格納格納される。
【０４２７】
なお、タイムスタンプＳｔのバイト数はマルチフォーマットトランスポートストリームデコーダＴＤにおける処理精度によって任意に決めることができるが、本例においては好ましくは３バイトで表現する。また、トランスポートストリーム識別子ＴＳＩＤのバイト数は、マルチフォーマットトランスポートストリームデコーダＴＤに入力されるすべてのトランスポートストリームＴＳを識別するに十分であれば良いので、本例においては１バイトで表現する。第１ストリーム入力器ＴＳＲ１は、タイムスタンプＳｔとトランスポートストリーム識別子ＴＳＩＤとを併せて管理情報ＩＭを生成して、入力されるパケットデータＰ１の先頭に付加して、第１の転送単位ＴＳｄ１を生成する。
【０４２８】
第２ストリーム入力器ＴＳＲ２も、第１ストリーム入力器ＴＳＲ１と同様に、パケットデータＰ２ごとに、最初の１バイトの同期データを検出した時点でパケットデータＰ２のパケット先頭を検出する。そして、パケット先頭を検出する都度、第２のパケット先頭検出信号Ｓｐｓ２を生成してＤＭＡバス調停器２１０に出力する。
【０４２９】
第２ストリーム入力器ＴＳＲ２は、さらに、パケット先頭を検出した時点で、パケットデータＰ２の到着した時刻を示すタイムスタンプＳｔとそのパケットデータＰ２が第２のトランスポートストリームＴＳ２であること示すトランスポートストリーム識別子ＴＳＩＤ（２）を生成する。なお、トランスポートストリーム識別子ＴＳＩＤは言い換えれば、そのトランスポートストリームＴＳがＤＭＡバス調停器２１０の第２の入力ポート群に入力されていることを示し、さらに第２ストリーム入力器ＴＳＲ２から入力されていることを示す。第２ストリーム入力器ＴＳＲ２は、タイムスタンプＳｔとトランスポートストリーム識別子ＴＳＩＤとを併せて管理情報ＩＭを生成して、入力されるパケットデータＰ２の先頭に付加して、第２の転送単位ＴＳｄ２を生成する。
【０４３０】
このように、管理情報ＩＭとしてタイムスタンプＳｔおよびトランスポートストリーム識別子ＴＳＩＤをパケットデータＰに付与することによって、それぞれ異なるトランスポートストリームＴＳに含まれるパケットデータＰを正しく識別することが可能となる。さらに、上述のように、異なるパケットデータＰ間での入力レートの違いに起因する、後で到着したパケットデータＰが先に到着したパケットデータＰが入力を完了する前に入力を完了してしまうという、いわゆる追越しパケットが生じた場合にも、管理情報ＩＭに基づいてそれらのパケットを入力した順番に正しく処理できる。
【０４３１】
第１ストリーム入力器ＴＳＲ１は、さらに、パケット先頭から数えて８バイトごとに、ＤＭＡバス調停器２１０に対して、第１の転送単位ＴＳｄ１の入力を受け付けるよう要求する第１のリクエスト信号Ｓｒｑ１を生成して、ＤＭＡバス調停器２１０に出力する。言い換えれば、第１の転送単位ＴＳｄ１は８バイトであり、各パケット（１８８バイト）に対して、８バイトごとに第１の転送単位ＴＳｄ１
転送のための第１のリクエスト信号Ｓｒｑ１が出力される。
【０４３２】
つまり、第１のトランスポートストリームＴＳ１のパケットデータＰ１の先頭を検出した時点で、３バイトのタイムスタンプＳｔと１バイトのトランスポートストリーム識別子ＴＳＩＤからなる合計４バイトの管理情報ＩＭが生成されるので、先頭から４バイトが入力された時点で、第１ストリーム入力器ＴＳＲ１は第１のリクエスト信号Ｓｒｑ１を生成する。なお、５バイト目以降については、８バイトごとに第１のリクエスト信号Ｓｒｑ１が生成される。つまり、各パケットデータＰの１番目に出力される転送単位ＴＳｄの最初の４バイトは、マルチフォーマットトランスポートストリームデコーダＴＤによって生成された管理情報ＩＭであって、トランスポートストリームＴＳのパケットデータＰそのものではない。
【０４３３】
なお、複数のトランスポートストリームＴＳ１〜ＴＳεのそれぞれを識別する必要がある場合には、タイムスタンプＳｔｉ、トランスポートストリーム識別子ＴＳＩＤｉ、および管理情報ＩＭｉと表示するものとする。ｉは、ストリーム入力器ＴＳＲ１〜ＴＳＲεのどれに入力されるトランスポートストリームＴＳかを示す自然数（１≦ｉ≦ε）である。具体的には、第１のトランスポートストリームＴＳ１に関しては、第１のパケット先頭検出信号Ｓｐｓ１、第１のリクエスト信号Ｓｒｑ１、第１のデータ有効信号Ｓｄｅ１、第１の転送単位ＴＳｄ１、タイムスタンプＳｔ１、トランスポートストリーム識別子ＴＳＩＤ１、および第１ストリーム入力器ＴＳＲ１と表現する。
【０４３４】
同様に、第２のトランスポートストリームＴＳ２に関しては、第２のパケット先頭検出信号Ｓｐｓ２、第２のリクエスト信号Ｓｒｑ２、第２のデータ有効信号Ｓｄｅ２、第２の転送単位ＴＳｄ２、タイムスタンプＳｔ２、第２のパケット先頭検出信号Ｓｐｓ２、トランスポートストリーム識別子ＴＳＩＤ２、およびストリーム入力器ＴＳＲ２と表現する。ただし、パケットデータＰ２の最初の第２の転送単位ＴＳｄ２には、パケットデータＰ１の最初の第１の転送単位ＴＳｄ１と異なり同期バイトＢｓｙｎｃが含まれている。
【０４３５】
つまり、第２のトランスポートストリームＴＳ２のパケットデータＰ２の先頭である同期バイトＢｓｙｎｃを検出した時点で、３バイトのタイムスタンプＳｔと１バイトのトランスポートストリーム識別子ＴＳＩＤからなる合計４バイトの管理情報ＩＭが生成されるので、先頭の同期バイトＢｓｙｎｃから４バイトが入力された時点で、第２ストリーム入力器ＴＳＲ２は第２のリクエスト信号Ｓｒｑ２を生成する。なお、５バイト目以降については、８バイトごとに第２のリクエスト信号Ｓｒｑ２が生成される。
【０４３６】
ＤＭＡバス調停器２１０は、第１のリクエスト信号Ｓｒｑ１に応答して、その入出力を調停して、第１ストリーム入力器ＴＳＲ１からの第１の転送単位ＴＳｄ１の入力の準備を整える。そして、準備が整った時点（第１のリクエスト信号Ｓｒｑ１より時間Ｔａ後）に、第１のデータ有効信号Ｓｄｅ１を生成して第１ストリーム入力器ＴＳＲ１に出力する。この時間Ｔａは、データバッファリング装置ＤＢＡを含めた内部処理時間に起因しておのずと決まるものであり、データバッファリング装置ＤＢＡの状態によって若干の変動が許される。
【０４３７】
図１を参照して説明したように、第１ストリーム入力器ＴＳＲ１は、第１のデータ有効信号Ｓｄｅ１に応答して、内部のバッファに蓄積されているパケットデータＰ１のデータを８バイトずつ第１の転送単位ＴＳｄ１としてＤＭＡバス調停器２１０に出力する。
【０４３８】
第１ストリーム入力器ＴＳＲ１とＤＭＡバス調停器２１０に関して説明したのと同様の方法で、第２ストリーム入力器ＴＳＲ２は第２のパケット先頭検出信号Ｓｐｓ２および第２のリクエスト信号Ｓｒｑ２を生成してＤＭＡバス調停器２１０に出力する。ＤＭＡバス調停器２１０は、第２のリクエスト信号Ｓｒｑ２に応答して第２のデータ有効信号Ｓｄｅ２を第２ストリーム入力器ＴＳＲ２に出力する。
【０４３９】
第２ストリーム入力器ＴＳＲ２は、第２の転送単位ＴＳｄ２を生成するとともに、第２のデータ有効信号Ｓｄｅ２に応答して、生成した第２の転送単位ＴＳｄ２をＤＭＡバス調停器２１０に出力する。
【０４４０】
ＤＭＡバス調停器２１０は、第１ストリーム入力器ＴＳＲ１および第２ストリーム入力器ＴＳＲ２から入力された第１のパケット先頭検出信号Ｓｐｓ１、第２のパケット先頭検出信号Ｓｐｓ２、第１の転送単位ＴＳｄ１、および第２の転送単位ＴＳｄ２をＴＳｄ入力開始検出器２２０に出力する。
【０４４１】
ＴＳｄ入力開始検出器２２０は、ＤＭＡバス調停器２１０から入力される第１のパケット先頭検出信号Ｓｐｓ１および第１の転送単位ＴＳｄ１に基づいて、パケットデータＰ１ごとに第１の転送単位ＴＳｄ１の入力が開始されたことを検出するとともに、第１の転送単位ＴＳｄ１をパケットバッファ制御器２６０に供給する。
【０４４２】
同様に、ＴＳｄ入力開始検出器２２０は、ＤＭＡバス調停器２１０から入力される第２のパケット先頭検出信号Ｓｐｓ２および第２の転送単位ＴＳｄ２に基づいて、パケットデータＰ２ごとに第２の転送単位ＴＳｄ２の入力が開始されたことを検出するとともに、第２の転送単位ＴＳｄ２をパケットバッファ制御器２６０に供給する。
【０４４３】
上述のようにして、ＴＳｄ入力開始検出器２２０は、第１の転送単位ＴＳｄ１あるいは第２の転送単位ＴＳｄ２の入力開始を検出するたびに、現在入力が開始されたパケットデータＰを格納するためにパケットバッファ２７０の一次バッファセルＢｃ＿Ｉ１〜Ｂｃ＿Ｉｍの１つの割当を要求するバッファセル要求信号Ｓｂａを生成してバッファセル割当器２３０に出力する。さらに、割り当てられたバッファセルに対する書き込みを開始できる状態であることを示す書込許可信号Ｓｗを生成して書込先バッファセル指定器２５０に出力する。
【０４４４】
パケットバッファ制御器２６０は、ＤＭＡバス調停器２１０およびＴＳｄ入力開始検出器２２０を経由して入力される第１の転送単位ＴＳｄ１および第２の転送単位ＴＳｄ２を、書込先バッファセル指定器２５０から入力される書込要求信号Ｓｗｄに基づいて、パケットバッファ２７０の割り当てられたバッファセルＢｃに書き込む。そして、１パケットデータＰ分の第１の転送単位ＴＳｄ１あるいは第２の転送単位ＴＳｄ２を書き込んだ時点で転送終了信号Ｓｔｆを生成して蓄積完了バッファセル番号メモリ制御器２８０に出力する。
【０４４５】
上述のごとく、割り当てられた一次バッファセルＢｃ＿ＩにパケットデータＰの書き込みが開始された後に、例えば、第１１バイト目に第１のトランスポートストリームＴＳ１にデータがエラーがある場合に、ストリーム入力器ＴＳＲ１は第１のエラー信号Ｅ１を生成してエラーフラグ設定器２９５に出力する。
【０４４６】
エラーフラグ設定器２９５は、第１のエラー信号Ｅ１を受領した時点で、ハイ状態になり、転送終了信号Ｓｔｆを受領した時点でロー状態になる二値信号である第１のラッチエラー信号ＬＥ１を生成する。同様に、エラーフラグ設定器２９５は、第２のエラー信号Ｅ２を受領した時点で、ハイ状態になり、転送終了信号Ｓｔｆを受領した時点でロー状態になる二値信号である第２のラッチエラー信号ＬＥ２を生成する。これらの第１のラッチエラー信号ＬＥ１および第２のラッチエラー信号ＬＥ２はエラーフラグ信号Ｆｅとして蓄積完了バッファセル番号メモリ２９０に出力される。
【０４４７】
図５に示す例においては、１３０バイトのパケットデータＰ１（ＴＳ１）と１８８バイトのパケットデータＰ２（ＴＳ２）が同時に、マルチフォーマットトランスポートストリームデコーダＴＤに入力された場合、サイズの小さいパケットデータＰ１の転送がパケットデータＰ２より先に終了しまう。結果、第２のトランスポートストリームＴＳ２の最初のパケットデータＰ２の転送が継続している間に、第１のトランスポートストリームＴＳ１の次のパケットデータＰ１がマルチフォーマットトランスポートストリームデコーダＴＤに到着して、いわゆるパケットデータの追越しが生じる。
【０４４８】
なお、この追越しは、パケットデータのサイズが同じであっても、入力転送クロックＣｋの周波数が異なる場合にも生じる。さらに入力転送クロックＣｋの周波数差が十分多ければい、サイズの大きい方のパケットデータが、サイズの小さいパケットデータを追い越すこともあり得る。
【０４４９】
次に、図７を参照して、上述のマルチフォーマットトランスポートストリームデコーダＴＤの主な動作について詳しく説明する。マルチフォーマットトランスポートストリームデコーダＴＤは、電源が投入されてその動作を開始する。
まず、ステップ＃１００「の初期化サブルーチン」において、蓄積完了バッファセル番号メモリ２９０のライトポインタＷＰおよびリードポインタＲＰの値が共に０にリセットを含めて、装置の初期化が行われる。そして、処理は次のステップ＃２００に進む。
【０４５０】
ステップ＃２００の「トランスポートストリームＴＳ１〜ＴＳεの提供番組および可能処理提示」サブルーチンにおいて、ＴＤ制御器ＴＤＣのメインメモリ９００のＰＡＴ格納領域Ａｒ（ＰＡＴ）およびＰＭＴ格納領域Ａｒ（ＰＭＴ）に、トランスポートストリームＴＳ１〜ＴＳεごとに個別に格納されている番組コンテンツ管理表ＰＡＴ１〜ＰＡＴεおよび番組コンテンツパケットデータ管理表ＰＭＴ１〜ＰＭＴεに基づいて、配信される番組と、マルチフォーマットトランスポートストリームデコーダＴＤがユーザに提供できる処理機能とを表す番組内容提示信号Ｓｐを生成して、副次処理要求入力器ＡＰＲに出力する。
副次処理要求入力器ＡＰＲは、番組内容提示信号Ｓｐに基づいて、ディスプレイ等の適当な表示手段を用い手配信番組と提供処理機能をユーザに一覧提示する。ユーザは、副次処理要求入力器ＡＰＲを操作して、提示された番組と処理機能の内で、所望の番組と処理機能を選択する。
【０４５１】
ステップ＃３００の「トランスポートストリームＴＳ１〜ＴＳεに対する処理要求検出」サブルーチンにおいて、副次処理要求入力器ＡＰＲは、番組内容提示信号Ｓｐに基づいて、複数のトランスポートストリームＴＳ１〜ＴＳεに対するユーザの処理要求を検出して、処理要求信号Ｓｅを生成してＴＤ制御器ＴＤＣに出力する。
【０４５２】
ステップ＃４００の「トランスポートストリームＴＳ１〜ＴＳεに対する処理内容決定」サブルーチンにおいて、ＴＤ制御器ＴＤＣは処理要求信号Ｓｅに基づいて、マルチフォーマットトランスポートストリームデコーダＴＤ側にて行うべき具体的な処理内容を決定する。具体的には、ＴＤ制御器ＴＤＣは、副次処理要求入力器ＡＰＲから入力された処理要求信号Ｓｅに基づいて、処理対象となる番組、番組に対する処理方法、および処理に要するデバイス等の手段の情報に代表される処理内容情報を生成する。処理内容情報を生成する。
【０４５３】
ステップ＃５００の「処理対象パケットデータ識別情報パケット識別子ＰＩＤｄおよびトランスポートストリーム識別子ＴＳＩＤｄ生成」サブルーチンにおいては、ＴＤ制御器ＴＤＣは、ステップ＃４００において決定された処理内容情報に基づいて処理すべきパケットデータＰを表す処理対象パケットデータ識別情報パケット識別子ＰＩＤｄと、処理すべきパケットデータＰのそれぞれが属するトランスポートストリームＴＳεを示す対象トランスポートストリーム識別情報ＴＳＩＤｄを生成して、パケット選択器４００に出力する。
【０４５４】
ステップ＃６００の「トランスポートストリームＴＳ１〜ＴＳεのパケットデータＰ蓄積」サブルーチンにおいて、マルチフォーマットトランスポートストリームデコーダＴＤに逐次入力されるε本のトランスポートストリームＴＳ１〜ＴＳεに含まれるパケットデータＰ１〜Ｐεのデータバッファリング装置ＤＢＡへのバッファリングが開始される。なお、パケットデータＰｉは、データバッファリング装置ＤＢＡの一次バッファセルＢｃ＿Ｉのそれぞれに、パケットデータＰ／ｎ単位（ｎは自然数）で格納される。本ステップにおける処理については、後ほど図８を参照して詳述する。所定数のパケットデータＰの蓄積が完了した時点で、次のステップ＃７００の処理が開始される。言い換えれば、データバッファリング装置ＤＢＡの複数の一次バッファセルＢｃ＿Ｉの内、所定数のバッファセルＢｃのそれぞれにパケットデータＰが蓄積された状態でステップ＃７００の処理が開始する。
【０４５５】
ステップ＃７００の「トランスポートストリームＴＳ１〜ＴＳεの処理対象パケットデータＰ選択」サブルーチンにおいて、データバッファリング装置ＤＢＡの一次バッファセルＢｃ＿Ｉに順次格納されるパケットデータＰの中で処理対象のものが選択される。具体的には、１つの一次バッファセルＢｃ＿Ｉに格納されているパケットデータＰがステップ＃４００で特定されたパケットデータＰであるかを、ステップ＃５００で決定されたパケット識別子ＰＩＤ（処理対象パケットデータ識別情報ＰＩＤｄ）を有するかを判断することによって、処理対象パケットデータＰとしての選択が行われる。
【０４５６】
ステップ＃８０００の「トランスポートストリームＴＳ１〜ＴＳεのパケットデータＰに要求処理実行」サブルーチンにおいて、ステップ＃７００において選択されたパケットデータＰに対して、ステップ＃４００において決定された内容のユーザ要求処理が実行される。本実施形態においては、一次バッファセルＢｃ＿Ｉに順次格納される複数のトランスポートストリームＴＳ１〜ＴＳεのパケットデータＰ１〜Ｐεの中で、ステップ＃７００で選択された特定の番組の番組コンテンツパケットデータＰのみを抽出して、選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍ（Ｐｅｍ１、Ｐｅｍ２）が抽出される例が示されているが、これについては、後ほど図２６を参照して詳述する。なお、要求処理が特定の番組を構成する番組コンテンツパケットデータＰｃの選択抽出に限らず、種々のデジタル処理の適用が可能であることは言うまでもない。
【０４５７】
＃９００の「トランスポートストリームＴＳ１〜ＴＳεの処理後パケットデータＰ蓄積」サブルーチンにおいて、ステップ＃８０００で抽出された選択複数番組パケットデータ列Ｐｅｍｍがメインメモリ制御器７００に出力されて、複数番組パケットデータ列Ｐｍｓｍが生成される。
【０４５８】
なお、上述のようにステップ＃６００は主にハードウェアによる受動的な処理であり、ステップ＃７００〜＃９００は主にソフトウェアによる能動的な処理である。よって、ステップ＃６００とステップ＃７００〜＃９００は好ましくは並行処理として構成される。そのためには、ステップ＃７００における対象処理パケットデータＰ選択サブルーチンを開始する前に、ステップ＃６００において、適正な数だけの一次バッファセルＢｃ＿ＩにパケットデータＰが蓄積されていることが望ましい。これに付いては、後ほど図８を参照して説明する。
【０４５９】
しかしながら、本図においてはステップ＃６００、＃７００、＃８０００、および＃９００を一連の繰り返し処理としての構成を示している。このような構成における動作について簡単に説明する。ステップ＃６００の「トランスポートストリームＴＳ１〜ＴＳεのパケットデータＰ蓄積」サブルーチンを初めて行う場合は、所定数のバッファセルＢｃにパケットデータＰが蓄積されるのを待った後に、ステップ＃７００、＃８０００、および＃９００の処理を連続的に実行する。そして、２回目以降のステップ＃６００においては、所定数ではなく１つの一次バッファセルＢｃ＿ＩにパケットデータＰが格納された後に、ステップ＃７００〜＃９００の処理が実行される。
【０４６０】
この場合の所定数とは、データバッファリング装置ＤＢＡの一連の動作速度より決まる、ソフトウェアによるステップ＃７００〜＃９００の処理に対して許容外のアンダーフローあるいはオーバーフローを起こさないように決められる。よって、所定数の最小値は１である。実際には、所定数の一次バッファセルＢｃ＿ＩにパケットデータＰが蓄積されたことの保証は、ステップ＃６００が開始してから、ステップ＃７００が開始するまでの時間で管理される。
【０４６１】
図３７に、上述のステップ＃７００の「トランスポートストリームＴＳ１〜ＴＳεの処理対象パケットデータＰ選択」サブルーチンとステップ＃８０００の「トランスポートストリームＴＳ１〜ＴＳεのパケットデータＰに対する要求処理実行」サブルーチンの関係を模式的に表す。マルチフォーマットトランスポートストリームデコーダＴＤに逐次入力されるトランスポートストリームＴＳのパケットデータＰのすべてに対して、ステップ＃７００で個別に処理対象であるかが判断される。そして、処理対象であると判断されたパケットデータＰ（図３７において、太線の矢印で表示）に対してのみ、ステップ＃８０００でユーザの要求に基づく処理が実施される。
【０４６２】
上述のように、本実施形態では、ユーザの要求に基づく処理は、第１のトランスポートストリームＴＳ１から番組１および番組２を抽出して所望の処理を施し、第２のトランスポートストリームＴＳ２から番組４および番組５を抽出して所望の処理を施すことである。よって、ステップ＃７００においては、一次バッファセルＢｃ＿Ｉに格納される全パケットデータＰの内で、第１のトランスポートストリームＴＳ１に関しては、トランスポートストリーム識別子ＴＳＩＤ（１）と１００番台および２００番台のパケット識別子ＰＩＤとを有する番組コンテンツパケットデータＰｃと、管理パケットデータＰｃＡのみが選択される。
【０４６３】
同様に、第２のトランスポートストリームＴＳ２に関してはトランスポートストリーム識別子ＴＳＩＤ（２）と４００番台および５００番台のパケット識別子ＰＩＤを有する番組コンテンツパケットデータＰｃと、管理パケットデータＰｃＡのみが選択される。そして、選択された番組コンテンツパケットデータＰｃおよび管理パケットデータＰｃＡが、ステップ＃８０００で、一次バッファセルＢｃ＿Ｉ、二次バッファセルＢｃ＿Ｍおよび三次バッファセルＢｃ＿０を利用して所望の処理が施された後にバッファセルＢｃ（三次バッファセルＢｃ＿０）からデータバッファリング装置ＤＢＡの外部へ選択複数ＴＳ複数番組パケットデータ列Ｐｅｍｍとして出力される。
【０４６４】
なお、ステップ＃８０００において、ユーザの要求処理が特定の番組の番組コンテンツパケットデータＰｃの加工であれば、上述の例においては、選択された管理パケットデータＰｃＡおよび番組コンテンツパケットデータＰｃの内で、特定の番組を形成する番組コンテンツパケットデータＰｃのみに加工が施されることになる。これについては、後ほど図１０、図１１、図１２、図１３、図１４、図１５、図１６、図１７、および図１８を参照して詳述する。
【０４６５】
次に、図８を参照して、上述のステップ＃６００の「トランスポートストリームＴＳ１〜ＴＳεのパケットデータＰ蓄積」サブルーチンにおける動作について詳細に説明する。マルチフォーマットトランスポートストリームデコーダＴＤに入力されるトランスポートストリームＴＳ１〜ＴＳεのそれぞれに対応して、ステップＳ６０２、Ｓ６０４、Ｓ６０６、Ｓ６０８、Ｓ６１０、Ｓ６１２、およびＳ６１４が１組ずつ用意される。つまり、ステップＳ６０２＿１〜Ｓ６０２＿ε、ステップＳ６０４＿１〜Ｓ６０４＿ε、ステップＳ６０６＿１〜Ｓ６０６＿ε、ステップＳ６０８＿１〜Ｓ６０８＿ε、ステップＳ６１０＿１〜Ｓ６１０＿ε、ステップＳ６１２＿１〜Ｓ６１２＿ε、およびＳ６１４＿１〜Ｓ６１４＿εが存在する。
【０４６６】
マルチフォーマットトランスポートストリームデコーダＴＤに入力される第１のトランスポートストリームＴＳ１〜第εのトランスポートストリームＴＳεを代表して、第ｉのトランスポートストリーム識別子ＴＳｉに関する動作について説明する。なお、図８にはｉが１の場合とｉがεの場合についてのみ具体的に表示されている。
【０４６７】
まず、ステップＳ６０２＿ｉにおいて、外部のトランスポートストリーム供給源から第ｉトランスポートストリームＴＳｉがストリーム入力器ＴＳＲｉに入力される。そして、処理は次のステップＳ６０４＿ｉに進む。
【０４６８】
ステップＳ６０４＿ｉにおいて、第ｉストリーム入力器ＴＳＲｉは入力された第ｉトランスポートストリームＴＳｉのパケット先頭を検出する。具体的には、第ｉストリーム入力器ＴＳＲｉはＴＤ制御器ＴＤＣから入力されたトランスポートストリーム構造信号Ｓｔｓに基づいて、入力されてくる第ｉトランスポートストリームＴＳｉの構造に基づいて、入力されてくるパケットデータＰの先頭を検出する。そして、処理は次のステップＳ６０６＿１に進む。
【０４６９】
ステップＳ６０６＿１において、第ｉストリーム入力器ＴＳＲｉは、入力されてくる第ｉトランスポートストリームＴＳｉにデータエラーが含まれていないかの検出を開始する。なお、本ステップにおいて開始したデータエラー検出は、後述のステップＳ６４４において終了されるまで、他のステップＳ６１２＿ｉ〜Ｓ６４０における処理に平行して継続実行されて、データエラーが検出された時点でデータエラーを有するトランスポートストリームＴＳを示すエラー信号Ｅｉ’（１≦ｉ’≦εで、ｉ’はｉと同一であっても良い）を生成して出力する。そして、処理はステップＳ６０８＿ｉとステップＳ６１０＿ｉに分岐する。
【０４７０】
ステップＳ６０８＿ｉにおいて、第ｉストリーム入力器ＴＳＲｉは、第ｉのパケット先頭検出信号Ｓｐｓｉを生成する。そして、処理は後述のステップＳ６２２に進む。
【０４７１】
一方、ステップＳ６１０＿ｉにおいては、第ｉストリーム入力器ＴＳＲｉは、第ｉのトランスポートストリームＴＳｉの先頭バイトを検出した時間に基づいてタイムスタンプＳｔｉを生成し、ＤＭＡバス調停器２１０の入力ポート群に関連づけられたトランスポートストリーム識別子ＴＳＩＤｉを生成し、そして、管理情報ＩＭｉを生成する。そして、処理は次のステップＳ６１２＿ｉに進む。
【０４７２】
ステップＳ６１２＿ｉにおいて、第ｉストリーム入力器ＴＳＲｉはパケット先頭以降のパケットデータを内蔵の入力バッファに蓄積する。第ｉ転送単位ＴＳｄｉ分の蓄積が完了すると、処理は次のステップＳ６１４＿ｉに進む。なお、第ｉストリーム入力器ＴＳＲｉに内蔵の入力バッファの容量は、入力パケットデータを取りこぼすことがないように、入力ストリームの伝送レート等によって適正に定められなければならない。少なくとも第ｉ転送単位ＴＳｄｉより大きい必要があるのは言うまでもない。
【０４７３】
ステップＳ６１４＿ｉにおいて、第ｉストリーム入力器ＴＳＲｉは第ｉリクエスト信号ＳｒｑｉをＤＭＡバス調停器２１０に出力する。そして、処理は次のステップＳ６１６に進む。
【０４７４】
このようにして、マルチフォーマットトランスポートストリームデコーダＴＤに入力されるすべてのトランスポートストリームＴＳ１〜ＴＳε（１≦ｉ≦ε）のそれぞれに対して、上述のＳ６０４＿ｉ、Ｓ６０６＿ｉ、Ｓ６１０＿ｉ、Ｓ６１２＿ｉ、およびＳ６１４＿ｉを１組とする処理が平行に行われる。結果、すべてのトランスポートストリームＴＳ１〜ＴＳεのパケットデータＰ１〜ＰεがマルチフォーマットトランスポートストリームデコーダＴＤに到着した時点でバッファリング対象とされる。
【０４７５】
そして、ステップＳ６１６において、ＤＭＡバス調停器２１０は第１リクエスト信号Ｓｒｑ１〜第εリクエスト信号Ｓｒｑεのそれぞれに基づいて、第１ストリーム入力器ＴＳＲ１〜第εストリーム入力器ＴＳＲεのそれぞれからの第１パケットデータＰ１〜第εトランスポートストリームＴＳεそれぞれの転送単位ＴＳｄでの入力に備えて調停を行う。そして、第１の転送単位ＴＳｄ１〜第ε転送単位ＴＳｄεの内のいずれか１つの入力を許可する。そして、処理は次のステップＳ６１８に進む。
【０４７６】
ステップＳ６１８において、ＤＭＡバス調停器２１０はステップＳ６１６における調停の結果、第ｉ転送単位ＴＳｄｉの入力を許可する第ｉデータ有効信号Ｓｄｅｉを第ｉストリーム入力器ＴＳＲｉに出力する。そして、処理は次のステップＳ６２０に進む。
【０４７７】
ステップＳ６２０において、ステップＳ６１８において出力された第ｉのデータ有効信号Ｓｄｅｉにしたがって、第ｉストリーム入力器ＴＳＲｉから第ｉの転送単位ＴＳｄｉのＤＭＡバス調停器２１０への転送が開始される。なお、第ｉの転送単位ＴＳｄｉはＤＭＡバス調停器２１０を経由して、ＴＳｄ入力開始検出器２２０に出力される。そして、処理は次のステップＳ６２２に進む。
【０４７８】
ステップＳ６２２において、ＴＳｄ入力開始検出器２２０は、ステップＳ６０８＿ｉで入力が開始された第ｉのパケット先頭検出信号Ｓｐｓｉに基づいて、第ｉの転送単位ＴＳｄｉの入力が開始されたことを検出する。ＴＳｄ入力開始検出器２２０は、前述のステップＳ６１８で出力されている第ｉのデータ有効信号Ｓｄｅｉに基づいて、１パケットデータＰ分のデータが第ｉの転送単位ＴＳｄｉで複数回に渡って入力されてくる最初のデータを検出した時点で、第ｉの転送単位ＴＳｄｉの入力開始を検出する。
【０４７９】
つまり、第１のデータ有効信号Ｓｄｅ１が出力されている状態では第１の転送単位ＴＳｄ１の入力開始を検出し、第２のデータ有効信号Ｓｄｅ２が出力された状態では第２の転送単位ＴＳｄ２の入力開始を検出する。ＴＳｄ入力開始検出器２２０は、ステップＳ６１６の調停の結果、第ｉのパケット先頭検出信号Ｓｐｓｉが入力された後に転送単位ＴＳｄが初めて入力された時点で、第ｉのストリーム入力器ＴＳＲｉから入力されてくるパケットの先頭の入力開始を検出する。そして、処理は次のステップＳ６２４に進む。
【０４８０】
ステップＳ６２４において、ＴＳｄ入力開始検出器２２０はバッファセル要求信号Ｓｂａを生成してバッファセル割当器２３０に出力するとともに、書込許可信号Ｓｗを生成して書込先バッファセル指定器２５０に出力する。そして、処理は次のステップＳ６２６に進む。
【０４８１】
ステップＳ６２６において、バッファセル割当器２３０は、バッファセル割当情報格納器２４０から供給される割当一次バッファセル情報Ｉａｂに基づいて、ステップＳ６１２＿ｉにおいて転送が開始された転送単位ＴＳｄの書き込みに供せられるバッファセルＢｃを割り当てる。そして、処理は次のステップＳ６２８に進む。
【０４８２】
ステップＳ６２８において、バッファセル割当器２３０は、ステップＳ６１２＿ｉでの割り当てた一次バッファセルＢｃ＿Ｉを示す一次バッファセル割当情報Ｉｂａを生成してバッファセル割当情報格納器２４０に出力する。そして、処理は次のステップＳ６３０に進む。
【０４８３】
ステップＳ６３０において、バッファセル割当情報格納器２４０は一次バッファセル割当情報Ｉｂａに基づいて、割当一次バッファセル情報Ｉａｂを生成して格納する。そして、処理は次のステップＳ６３２に進む。
【０４８４】
ステップＳ６３２において、バッファセル割当情報格納器２４０は、バッファセル割当器２３０から入力された一次バッファセル割当情報Ｉｂａを書込先バッファセル指定器２５０および蓄積完了バッファセル番号メモリ制御器２８０に出力する。そして、処理は次のステップＳ６３４に進む。
【０４８５】
ステップＳ６３４において、ＴＳｄ入力開始検出器２２０は、パケットバッファ２７０の一次バッファセルＢｃ＿Ｉへの転送単位ＴＳｄｉの書き込みを許可する書込許可信号Ｓｗを生成して書込先バッファセル指定器２５０に出力する。そして、処理は次のステップＳ６３６に進む。
【０４８６】
ステップＳ６３６において、書込先バッファセル指定器２５０は、書込許可信号Ｓｗに応答して、一次バッファセル割当情報Ｉｂａが指示する、割り当てられた一次バッファセルＢｃ＿Ｉに対する書き込み（蓄積）を要求する書込要求信号Ｓｗｄを生成して、パケットバッファ制御器２６０に出力する。そして、処理は次のステップＳ６３８に進む。
【０４８７】
ステップＳ６３８において、パケットバッファ制御器２６０は、ＴＳｄ入力開始検出器２２０から経由して供給される転送単位ＴＳｄｉを、書込要求信号Ｓｗｄ（一次バッファセル割当情報Ｉｂａ）およびステップＳ６１６の調停結果が指示する一次バッファセルＢｃ＿ＩへのパケットデータＰの転送単位ＴＳｄｉでの書き込み（蓄積）を行う。そして、処理は次のステップＳ６４０に進む。
【０４８８】
ステップＳ６４０において、転送単位ＴＳｄｉごとに第ｉのストリーム入力器ＴＳＲｉからＤＭＡバス調停器２１０に第ｉのリクエスト信号Ｓｒｑｉが出力される（ステップＳ６１４＿ｉ）。ＤＭＡバス調停器２１０は、第ｉのリクエスト信号Ｓｒｑｉに応答し調停を行って（ステップＳ６１６）、第ｉのデータ有効信号Ｓｄｅｉを対応する第ｉのストリーム入力器ＴＳＲｉに出力（ステップＳ６１８）する。第ｉのストリーム入力器ＴＳＲｉは、第ｉのデータ有効信号Ｓｄｅｉに応答してパケットデータＰの次の第ｉの転送単位ＴＳｄｉの転送を開始する。これらの一連の動作が、入力されるトランスポートストリームＴＳ１〜ＴＳεのそれぞれに対して繰り返される。
【０４８９】
この間、パケットバッファ制御器２６０は一次バッファセルＢｃ＿Ｉに書き込まれるデータのバイト数を、第ｉの転送単位ＴＳｄｉをｉの値が異なる（異なるトランスポートストリーム）ごとにカウントして、それぞれ１パケットデータＰ分の転送単位ＴＳｄｉのバッファセルへの蓄積が終了したことを検出する（Ｓ６４０）。今、第１のトランスポートストリームＴＳ１〜第εのトランスポートストリームＴＳεに関する動作を、第ｉのトランスポートストリームＴＳｉで代表して説明してきたが、上述のようにマルチフォーマットトランスポートストリームデコーダＴＤには複数（異なるトランスポートストリーム識別子ＴＳＩＤ）のトランスポートストリームＴＳが同時に入力される。
【０４９０】
よって、ｉの値が異なる複数の転送単位ＴＳｄｉを同時に別々の一次バッファセルＢｃ＿Ｉに格納する必要がある。よって、ステップＳ６４０においては、そのような個々の一次バッファセルＢｃ＿Ｉにおける転送単位ＴＳｄｉの蓄積完了を検出するものである。
【０４９１】
さらに、転送終了信号Ｓｔｆを生成して蓄積完了バッファセル番号メモリ制御器２８０に出力する。カウント数は、ＴＤ制御器ＴＤＣにあらかじめ格納されているトランスポートストリーム構造情報が示すトランスポートストリームＴＳのパケットデータＰのデータサイズによって求められる。そして、処理は次のステップＳ６４２に進む。
【０４９２】
ステップＳ６４２において、エラーフラグ設定器２９５はパケットバッファ制御器２６０から出力される転送終了信号Ｓｔｆに応答して、上述のステップＳ６０６＿ｉ〜Ｓ６４０の間に、第１のストリーム入力器ＴＳＲ１〜第εのストリーム入力器ＴＳＲεの何れかから出力されるエラー信号Ｅｉ'（１≦ｉ'≦εであり、ｉ'はｉと同一であってもなくても良い）に基づいてライトポインタＷＰが示しているフラグ格納領域Ｆｃｍにエラーフラグ値を書き込む。つまり、ステップＳ６０６＿ｉ〜Ｓ６４０の間に、一次バッファセルＢｃ＿Ｉに格納中のパケットデータＰにデータエラーが検出される場合には、転送終了信号Ｓｔｆが入力された時点でフラグ格納領域ＦｃｎにエラーフラグＯＮに相当する値が書き込まれる。
【０４９３】
一方、ステップＳ６０６＿ｉ〜Ｓ６４０の間に、データエラーが検出されることなく、パケットデータＰが一次バッファセルＢｃ＿Ｉに格納された場合には、ステップＳ６４４において、転送終了信号Ｓｔｆが入力された時点でフラグ格納領域ＦｃｎにエラーフラグＯＦＦに相当する値が書き込まれる。なお、フラグ格納領域Ｆｃの初期値をエラーフラグＯＦＦに設定すれば、ステップＳ６４４において、フラグ格納領域Ｆｃｎには何も書き込まれない。この場合、エラーフラグＯＮが書き込まれたフラグ格納領域Ｆｃのリセットについては、後ほど図９を参照して説明する。そして処理は、次のステップＳ６４４に進む。
【０４９４】
ステップＳ６４４において、ステップＳ６０６＿ｉにおいて開始された第ｉのストリーム入力器ＴＳＲｉによる第ｉのトランスポートストリームＴＳのデータエラー検出を終了する。そして、処理は次のステップＳ６４６に進む。
【０４９５】
ステップＳ６４６において、蓄積完了バッファセル番号メモリ制御器２８０は、転送終了信号Ｓｔｆと一次バッファセル割当情報Ｉｂａに基づいて、１パケットデータＰのデータの蓄積を完了した一次バッファセルＢｃ＿Ｉを示すバッファセル番号信号Ｓｂｎを生成する。つまり、バッファセル番号信号Ｓｂｎは、転送終了信号Ｓｔｆが入力されたときに、一次バッファセル割当情報Ｉｂａが示す一次バッファセルＢｃ＿Ｉのバッファセル番号Ｎｂｃに相当する。そして、処理は次のステップＳ６４８に進む。
【０４９６】
ステップＳ６４８において、蓄積完了バッファセル番号メモリ２９０は、バッファセル番号信号Ｓｂｎの示すバッファセル番号ＮｂｃをライトポイントＷＰの示す領域に記録する。同様に、蓄積完了バッファセル番号メモリ２９０は、エラーフラグ信号Ｆｅの示すフラグ格納領域Ｆｃｎにエラーフラグ値を書き込む。そして、処理は次のステップＳ６５０に進む。
【０４９７】
ステップＳ６５０において、蓄積完了バッファセル番号メモリ制御器２８０は、ライトポイント更新信号Ｓｗｐを蓄積完了バッファセル番号メモリ２９０に出力して、蓄積完了バッファセル番号メモリ制御器２８０のライトポインタＷＰを１つ進る。そして、本ステップ＃６００における「トランスポートストリームＴＳ１〜ＴＳεのパケットデータＰ蓄積」サブルーチンを終了する。
【０４９８】
上述のステップにより、ステップ＃６００において、マルチフォーマットトランスポートストリームデコーダＴＤに入力される複数のトランスポートストリームＴＳ１〜ＴＳεのそれぞれに含まれるパケットデータＰのそれぞれの、トランスポートストリームＴＳとの従属関係および異なるトランスポートストリームＴＳとの時間関係の情報を保持した状態で、シーケンシャルかつリアルタイムにバッファリングすることができる。
【０４９９】
なお、本のステップＳ６４４におけるエラーフラグ値の書き込みについて、図６に示す波形図を参照して、各構成要素の動作をより具体的に説明する。図６に示す例においては、第２のトランスポートストリームＴＳ２の最初のパケットデータＰの第２バイト目から第２番目のパケットデータＰの第３バイト目までの期間が、上述のステップＳ６０６＿ｉからステップＳ６４０までの期間に相当する。そして、第２ストリーム入力器ＴＳＲ１が最初のパケットデータＰ２の第１１バイト目にデータエラーを検出して、エラー信号Ｅ２（Ｉ’＝２）をエラーフラグ設定器２９５に出力する。調停期間Ｔａは変動するので、上述の期間はそれぞれパケット先頭検出信号Ｓｐｓ〜転送終了信号Ｓｔｆの発生範囲内で変動することは言うまでもない。
【０５００】
エラーフラグ設定器２９５は、エラー信号Ｅをラッチしてラッチエラー信号ＬＥを生成して、そして保持する。そして、転送終了信号Ｓｔｆが入力された時点で、ラッチエラー信号ＬＥおよび転送終了信号Ｓｔｆが共にハイであれば、蓄積完了バッファセル番号メモリ２９０のフラグ格納領域ＦｃにフラグＯＮを書き込むエラーフラグ信号Ｆｅを生成する。
【０５０１】
一方、入力されたトランスポートストリームＴＳにデータエラーが検出されない場合には、転送終了信号Ｓｔｆが入力された時点でラッチエラー信号ＬＥはローであるので、蓄積完了バッファセル番号メモリ２９０ｒａのフラグ格納領域ＦｃにフラグＯＮを書き込むエラーフラグ信号Ｆｅは生成されない。
【０５０２】
このようにして、同時に入力される任意の数のトランスポートストリームＴＳのいずれかにデータエラーが含まれている場合でも、パケットバッファ２７０の一次バッファセルＢｃ＿Ｉに格納されるパケットデータＰの単位で、データエラーの有無を識別管理できる。結果、入力されるトランスポートストリームＴＳに含まれているデータエラーの部分を捨てたりあるいは再度取得することで、トランスポートストリームＴＳが伝送する情報を正しく獲得できる。
【０５０３】
さらに、転送終了信号Ｓｔｆに応答して、蓄積完了バッファセル番号メモリ２９０のフラグ格納領域Ｆｃにエラーフラグ値の書き込みを行うのは、本実施形態のように複数のトランスポートストリームＴＳ１〜ＴＳεが同時に入力される場合である。その理由は、上述のように異なるトランスポートストリームＴＳにおけるパケットデータＰの入力レート差により、後から到着したパケットデータＰのバッファリングが、先に到着したパケットデータＰのバッファリングより早く終了するときに、本当は先に到着したパケットにデータエラーを検出したのに、後から到着して先にバッファリングを終了したパケットを格納した一次バッファセルＢｃ＿Ｉに対応するフラグ格納領域ＦｃにエラーフラグＯＮと誤記入されるのを防止するためである。
【図面の簡単な説明】
【図１】本発明の実施形態にかかる、マルチフォーマットパケットデータデータの構造を示すブロック図である。
【図２】図１に示した制御器周辺の要部詳細図である。
【図３】図１に示したバッファセル割当情報格納器およびパケットバッファの詳細を示す説明図である。
【図４】図３に示した蓄積完了バッファセル番号メモリの詳細を示す説明図である。
【図５】図４に示した蓄積完了バッファセル番号メモリの変形例を示す説明図である。
【図６】図１に示したマルチフォーマットトランスポートストリームデコーダにおける種々の信号を示す波形図である。
【図７】図１に示したマルチフォーマットトランスポートストリームデコーダの主な動作を示すフローチャートである。
【図８】図７に示したトランスポートストリームＴＳ１〜ＴＳεのパケットデータＰ蓄積サブルーチンにおける詳細な動作を示すフローチャートである。
【図９】図７に示したトランスポートストリームＴＳ１〜ＴＳεのパケットデータＰに要求処理実行サブルーチンにおける詳細な動作を示すフローチャートである。
【図１０】図９に示したマルチフォーマットパケットデータ処理サブルーチンにおける詳細な動作を示すフローチャートである。
【図１１】図１０に示したパケットバッファ確認サブルーチンにおける詳細な動作を示すフローチャートである。
【図１２】図１０に示したパケットデータフィルタリング制御サブルーチンにおける詳細な動作を示すフローチャートである。
【図１３】図１０に示したアクセス対象パケットデータに対応する処理要求テーブル取得サブルーチンにおける詳細な動作を示すフローチャートである。
【図１４】図１３に示したアクセス対象パケットデータに対応する処理要求テーブル取得サブルーチンの変形例における詳細な動作を示すフローチャートである。
【図１５】図１０に示したデスクランブル制御サブルーチンにおける詳細な動作を示すフローチャートである。
【図１６】図１０に示したパケットパターン選別制御サブルーチンにおける詳細な動作を示すフローチャートである。
【図１７】図１６に示したパケットパターン選別制御サブルーチンの変形例における詳細な動作を示すフローチャートである。
【図１８】図１０に示したメインメモリ制御サブルーチンにおける詳細な動作を示すフローチャートである。
【図１９】図１０に示したストリーム出力制御サブルーチンにおける詳細な動作を示すフローチャートである。
【図２０】図１９に示した第１ストリーム出力設定サブルーチンにおける詳細な動作を示すフローチャートである。
【図２１】図１９に示した第２ストリーム出力設定サブルーチンにおける詳細な動作を示すフローチャートである。
【図２２】図１９に示したストリーム出力制御サブルーチンにおける詳細な動作を示すフローチャートである。
【図２３】本発明におけるパケットデータに対する処理の説明図である。
【図２４】本発明におけるパケットデータに対する処理の説明図である。
【図２５】本発明におけるバッファセルの最小容量の説明図である。
【図２６】管理バイトＢＭの構成を示す説明図である。
【図２７】補助データの構成を示す説明図である。
【図２８】制御テーブルの構成を示す説明図である。
【図２９】エントリテーブルの構成を示す説明図である。
【図３０】エントリテーブルの説明図である。
【図３１】処理要求テーブルＰｄｔの構成を示す説明図である。
【図３２】デスクランブル判定パラメータの相互関係を示す説明図である。
【図３３】制御器とパケット解析器との間で交換される信号の内容を示す説明図である。
【図３４】ＤＭＡバス調停器とメインメモリ制御器との間で交換される信号の内容を示す説明図である。
【図３５】制御器とストリーム出力器との間で交換される信号の内容を示す説明図である。
【図３６】図１に示したマルチフォーマットトランスポートストリームデコーダに入力される２つのトランスポートストリームのパケット構成を示す模式図である。
【図３７】図１に示したマルチフォーマットトランスポートストリームデコーダにおいて、図３６に示した２つの入力トランスポートストリームから特定のコンテンツパケットデータを処理する様子を示した説明図である。
【図３８】図３７に示した処理において、図１に示したメインメモリに蓄積されるコンテンツパケットデータを示した説明図である。
【図３９】図３８に示したメインメモリから出力される複数ＴＳ複数番組パケットデータ列の構成を示した説明図である。
【図４０】図１に示したマルチフォーマットトランスポートストリームデコーダに入力されるＩＴＵ−Ｔ勧告Ｈ．２２０．０に規定される２つの入力トランスポートストリームの構成を示す説明図である。
【図４１】単一のトランスポートストリームから複数の番組コンテンツパケットデータデータの出力に供することできると考えられる、従来の主にハードウェアによって実現されるトランスポートストリームデコーダの構成を示すブロック図である。
【図４２】図４１に示した従来のトランスポートストリームデコーダに入力されるトランスポートストリームの構成を示す説明図である。
【図４３】図４１に示した従来のトランスポートストリームデコーダによる、単一のトランスポートストリームから抽出して構成される選択単一番組パケットデータデータ列の説明図である。
【図４４】図４１に示したメインメモリに、選択単一番組パケットデータデータ列が蓄積される状態を示す模式図である。
【図４５】図４１に示したメインメモリに入出力される単一番組パケットデータデータ列の構成を示す説明図である。
【符号の説明】
ＴＤ  マルチフォーマットトランスポートストリームデコーダ
ＴＳＲ１〜ＴＳＲε、ＴＳＲｉ  ストリーム入力器
ＤＢＡ  データバッファリング装置
ＰＢＡＣ  制御器
ＰＢＡ  パケットバッファリング調停器
ＣＦ  チャンネルパケットデータフィルタ
ＥＰＣＦ  拡張プログラムパケットデータフィルタ
２１０  ＤＭＡバス調停器
２２０  ＴＳｄ入力開始検出器
２３０  バッファセル割当器
２４０  バッファセル割当情報格納器
２５０  書込先バッファセル指定器
２６０  パケットバッファ制御器
２８０  蓄積完了バッファセル番号メモリ制御器
２９０  蓄積完了バッファセル番号メモリ
２９５  エラーフラグ設定器
３００  パケットアクセス器
４００  パケット選択器
５００  ストリーム出力管理器
５３０  中間処理用バッファセル使用メモリ
６００  タイマ
７００  メインメモリ制御器
９００  メインメモリ
１０００  パケット解析器
１３００  ストリーム出力器
ＡＩ１〜ＡＩＮ  一次バッファセル割当情報領域
ＡＭ１〜ＡＭＮ  二次バッファセル割当情報領域
Ｂｃ＿Ｉ１〜Ｂｃ＿Ｉｍ  一次バッファセル
Ｂｃ＿Ｍ１〜ＢＣ＿Ｍｎ  二次バッファセル一次バッファセル
Ｂｃ＿Ｏ  三次バッファセル
Ｎｂｃ１〜ＮｂｃＮ  バッファセル番号
ＭＢＵ  最低バッファ容量
Ｒｃ、Ｒｃ１〜ＲｃＭ  バッファセル指定領域
Ｓｂａ  バッファセル要求信号
Ｓｂｎ  バッファセル番号信号
Ｓｃ１、Ｓｃ２、Ｓｃ３  制御信号
ＳｃＷ、ＳｃＷ２、ＳｃＷ３  制御信号
Ｓｄｅ  データ有効信号
Ｓｄｅ１  第１のデータ有効信号
Ｓｄｅ２  第２のデータ有効信号
Ｓｐｓ  パケットデータ先頭検出信号
Ｓｐｓ１  第１のパケットデータ先頭検出信号
Ｓｐｓ２  第２のパケットデータ先頭検出信号
Ｓｒ  状態信号
Ｓｒｑ  リクエスト信号
Ｓｒｑ１  第１のリクエスト信号
Ｓｒｑ２  第２のリクエスト信号
ＳｒＷ、  状態信号
Ｓｔｆ  転送終了信号
Ｓｗ  書込許可信号
Ｓｗｄ  書込要求信号
Ｓｗｐ  ライトポイント更新信号
ｍｒｐ  二次バッファセル割当情報
ｍｗｐ  割当二次バッファセル情報
ＴＳｉ、ＴＳ１〜ＴＳε  トランスポートストリーム
ＴＳｄ  転送単位
ＴＳｄ１  第１の転送単位
ＴＳｄ２  第２の転送単位
【図１】
0004416361.tif 000002
【図２】
0004416361.tif 000003
【図３】
0004416361.tif 000004
【図４】
0004416361.tif 000005
【図５】
0004416361.tif 000006
【図６】
0004416361.tif 000007
【図７】
0004416361.tif 000008
【図８】
0004416361.tif 000009
【図９】
0004416361.tif 000010
【図１０】
0004416361.tif 000011
【図１１】
0004416361.tif 000012
【図１２】
0004416361.tif 000013
【図１３】
0004416361.tif 000014
【図１４】
0004416361.tif 000015
【図１５】
0004416361.tif 000016
【図１６】
0004416361.tif 000017
【図１７】
0004416361.tif 000018
【図１８】
0004416361.tif 000019
【図１９】
0004416361.tif 000020
【図２０】
0004416361.tif 000021
【図２１】
0004416361.tif 000022
【図２２】
0004416361.tif 000023
【図２３】
0004416361.tif 000024
【図２４】
0004416361.tif 000025
【図２５】
0004416361.tif 000026
【図２６】
0004416361.tif 000027
【図２７】
0004416361.tif 000028
【図２８】
0004416361.tif 000029
【図２９】
0004416361.tif 000030
【図３０】
0004416361.tif 000031
【図３１】
0004416361.tif 000032
【図３２】
0004416361.tif 000033
【図３３】
0004416361.tif 000034
【図３４】
0004416361.tif 000035
【図３５】
0004416361.tif 000036
【図３６】
0004416361.tif 000037
【図３７】
0004416361.tif 000038
【図３８】
0004416361.tif 000039
【図３９】
0004416361.tif 000040
【図４０】
0004416361.tif 000041
【図４１】
0004416361.tif 000042
【図４２】
0004416361.tif 000043
【図４３】
0004416361.tif 000044
【図４４】
0004416361.tif 000045
【図４５】
0004416361.tif 000046