(57)【要約】【課題】複数ストリームを処理するプロセッサベースの多重分離システムにおいて、デジタルストリームデータを複数入力した際、各データを同時処理した高処理性能を有するデコーダ機能を実現する。【解決手段】複数ストリームに対し所定の多重分離処理を行う際、各処理器の起動・終了状況をプロセッサで一括制御し、各処理器の動作状況に応じ、処理手順を動的に切替える。これにより、複数の処理器を並列動作させることにより、処理性能を向上させる。【選択図】  図１
2004289240.tif 000002
【特許請求の範囲】
【請求項１】
ＭＰＥＧシステムに用いられる、連続するトランスポートストリームデータを複数のポートから同時に受信するストリーム入力器と、入力したトランスポートストリームから所望のトランスポートパケットデータを抽出するパケット選択器と、選択したトランスポートパケットデータを所定のデータに加工、抽出する２つ以上のシンタックス処理器と、入力したトランスポートストリームとの間隔を一定に保ち入力ストリームを出力するストリーム出力器と、シンタックス処理器で処理されたデジタルデータをメモリへ出力するメインメモリ出力器と、
上記ストリーム入力器、２つ以上のシンタックス処理器、ストリーム出力器、メインメモリ出力器へのデータの転送を調停する調停器と、入力したトランスポートストリームを格納するストリームバッファと、各処理器へのデータの転送を制御するデータ転送制御器と、
上記パケット選択器、２つ以上のシンタックス処理器、ストリーム出力器、メインメモリ出力器、調停器、データ転送制御器の制御を行う制御器と、制御器が上記１つ以上のシンタックス処理器、メインメモリ出力器、ストリーム出力器をパイプラインで制御する命令コード列を格納し、制御器でパイプライン処理を行うための内容を一部記憶するパイプライン処理用記憶器を備えることを特徴とするパケットデータ処理装置。
【請求項２】
ＭＰＥＧシステムに用いられる、連続するトランスポートストリームデータを複数のポートから同時に入力し、ソフトウェア制御により、入力したトランスポートストリームから所望のトランスポートパケットデータを抽出し、選択したトランスポートパケットデータを所定のデータに加工、抽出する２つ以上のシンタックス処理を同時に行い、入力したトランスポートストリームとの間隔を一定に保ちつつ入力ストリームを出力し、シンタックス処理を行ったデジタルデータをメモリへ出力する一連のパケット処理をパイプラインで制御することを特徴とするパケットデータ処理装置。
【請求項３】
前記請求項１記載の制御器は、制御器用記録器にアドレッシングした命令により、特定の命令列を順次、処理することを特徴とするパケットデータ処理装置。
【請求項４】
前記請求項１記載の制御器は、２つ以上のスレッドで構成され、前記スレッドは特定サイクル毎に順次切替わりスレッド毎に割り当てた処理器を制御することを特徴とするパケットデータ処理装置。
【請求項５】
前記請求項１記載の制御器は、２つ以上のスレッド間で情報を共有し、各スレッドを動作させることを特徴とするパケットデータ処理装置。
【請求項６】
前記請求項２記載の制御器によるソフトウェア制御は、受信したトランスポートストリームパケットに共通した処理を１つのスレッドで制御し、受信したトランスポートストリームパケットにより、処置内容が決定される処理をもう一つのスレッドで制御することを特徴とするパケットデータ処理装置。
【請求項７】
前記請求項２記載の制御器によるソフトウェア制御は、パケットデータ処理で順次行われるパケットデータ選択処理、放送暗号の復号を行うシンタックス処理、選択したパケットデータのデータ解析を行うシンタックス処理、メインメモリに出力するメインメモリ出力処理の一連の処理に対し、パケットデータ処理装置に１つ前に格納されたパケットのパケットデータ選択処理と、放送暗号の復号処理を１段目の処理とし、２つ前に格納されたパケットのデータ解析を行うシンタックス処理を２段目の処理とし、３つ前に格納されたパケットのメインメモリへのメインメモリ出力処理を３段目の処理として、３段パイプライン処理を行うことで処理性能を向上させることを特徴とするパケットデータ処理装置。
【請求項８】
前記請求項２記載の制御器によるソフトウェア制御は、処理対象中のパケット数をカウントし、該当パケット数のカウントと、前記請求項１記載の複数のシンタックス処理器とメインメモリ出力器の処理の状況に応じて、次の処理内容を決定することを特徴とするパケットデータ処理装置。
【請求項９】
前記請求項８記載のパケットカウントによるパケットデータ処理は、パケットの入力が行われない場合に、パケットデータ処理装置内で処理途中のデータを処理途中であることを判断し、一部パイプラインを変更し、処理途中のパケット処理を行うことを特徴とするパケットデータ処理装置。
【請求項１０】
前記請求項２記載の制御器によるソフトウェア制御は、処理対象中の複数のパケットのシンタックス処理とメインメモリ出力処理の処理演算量の大小に応じて、処理演算量の大きい処理中に処理演算量の小さい処理を同時に行うことで、全体の処理性能を向上させることを特徴とするパケットデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、それぞれビットレートでの複数のトランスポートストリームを入力とし、当該入力される複数のトランスポートストリームに所望の処理を施して新たなトランスポートストリームを生成するトランスポートストリームデコーダに関する。さらに詳述すれば、本発明は、逐次入力される異なるフォーマットのトランスポートストリームを構成するパケットデータが処理対象であるかをリアルタイムに識別して、処理対象である場合には当該パケットデータに所定の処理を各処理の動作状況に応じ、動的に制御するトランスポートストリームデコーダに関する。
【０００２】
【従来の技術】
デジタルコンテンツに対して種々な処理や編集を施して副次利用する要求は、従来は放送局のようなコンテンツ制作あるいは配信元にのみ可能であった。しかしながら、近年のデジタル技術の進歩により、インフラストラクチャとしてデジタル配信システムの質および量は日々に充実している。つまり、デジタルコンテンツを提供するトランスポートストリームの充実、ユーザによる処理に必要なハードウェアの性能アップ、およびそのためのコストの低減により、従来は放送局等の施設によってのみ実施されていた、トランスポートストリームの編集や、トランスポートストリームを構成するパケットデータの編集をユーザ側で楽しむための環境条件が整いつつある。
【０００３】
しかしながら、ユーザ側においてデジタルコンテンツごとに所望の処理を施すためには、逐次入力されてくるトランスポートストリームを構成するパケットデータの個々に対して、リアルタイム選択し、さらに選択されたパケットデータに対して対応する処理あるいは加工を施すべく処理手段のアクセスを許す手段が必要である。
【０００４】
こうしたデジタルパケットデータの個々に対して、選択されたパケットデータに対して処理するトランスポートデコーダが知られている（例えば特許文献１、特許文献２参照。）。
【０００５】
以下、従来のトランスポートデコーダについて図１３を用いて説明する。
【０００６】
従来のトランスポートデコーダ（ＴＳＤ）はチューナにより復調されたトランスポートストリーム（ＴＳＩＮ）は、入力器１０に入力される。入力されたＴＳＩＮは、同期を取り正規のトランスポートストリームパケットの場合、該当パケット（ＴＳＯ）をパケット選択器２０に出力する。
【０００７】
パケット選択器２０では、入力されたパケットに対し、ユーザ側が放送を視聴するために必要なデジタルコンテンツ用パケットを選別する。パケットを選別する際、トランスポートストリームパケットの番組の種類を示す識別子となるＰＩＤ（Ｐａｃｋｅｔ  ＩＤ）を比較することにより選別が行われる。デジタル放送受信器では、ユーザ側で視聴に必要なパケットを区別するための情報は予めＴＤ制御器８０により、パケット選択器内の記録器（図示せず）に登録されている。
【０００８】
前段のパケット選別により抽出されたトランスポートストリームパケット（ＰＩＤＯ）は、デジタルコンテンツの保護の為に行われている暗号化ストリームに対し、復号処理を行う。暗号化されたパケット（ＰＩＤＯ）は次にシンタックス処理器Ａに入力され、シンタックス処理器Ａで復号処理を行う。シンタックス処理器Ａでは、ユーザに応じて入手した鍵情報を基に、暗号化を施したトランスポートストリームパケット（ＰＩＤＯ）に対して復号処理を行い、復号化したパケットデータ（ＳＰＡＯ）を出力する。デジタル放送受信機において、復号化の為の鍵情報もＴＤ制御器２０により、復号処理開始時に予め通知されている。
【０００９】
前段の復号処理により復号されたトランスポートストリームパケット（ＳＰＡＯ）は、シンタックス処理部Ｂ４０に入力される。シンタックス処理器Ｂ４０では、ＳＰＡＯとそのパケットに対応したデータ部分の処理解析を行う。さらに詳述すると、処理解析にはトランスポートストリームパケット形式からＰＥＳパケット形式に成形する処理等が該当する。
【００１０】
前段のシンタックス処理器４０により処理されたデータ（ＳＰＢＯ）は、メインメモリ出力部５０に入力される。メインメモリ出力部５０では、入力されたＳＰＢＯを外部メインメモリ７０に出力するアドレスを管理し、外部メインメモリ７０の転送単位にバッファリングして所定アドレスに出力する。メインメモリ７０に格納されたデジタルデータは後段のＡＶデコーダ（図示せず）からのデータ要求があった場合に、メインメモリ７０から再び読み出され、ＡＶデータ（ＡＶＯ）を出力する。
【００１１】
上記、シンタックス処理器４０と並行して、ＳＰＡＯはストリーム出力器６０に入力され、ＳＰＡＯを別系統の出力口ＨＳＯからＳＰＡＯを出力する。このパケットデータＨＳＯはデジタルデータを記録するためのデジタル機器への入力として使用することが可能である。
【００１２】
以上が、従来のトランスポートデコーダ（ＴＳＤ）の処理である。また、これらの処理の各処理器のデータの入出力のタイミングを図１４に示す。図１４に示す各処理器の処理時間（ＴＤ１，ＴＤ２，ＴＤ３，ＴＤ４，ＴＤ５）でパイプライン処理を行う。一例として１００ＭＨｚのクロックでの処理が６０Ｍｂｐｓの処理性能を持つ従来方式トランスポートデコーダの場合には、６０Ｍｂｐｓで入力される１８８バイト単位のトランスポートパケットはパケットが入力されてから出力されるまでの時間Ｐｔは、約３０ｕｓ程度で処理される。
【００１３】
【特許文献１】
特開平９−２４７２３７号公報
【特許文献２】
特開２０００−１５１５３８号公報
【００１４】
【発明が解決しようとする課題】
上記従来の技術のように、１系統のトランスポートストリームを扱う場合には、上記従来例が適している。しかしながら、デジタルコンテンツに対して種々な処理を行う場合、複数のストリームを同時に処理することが必要となる。こうした場合、上記従来の装置で構成した場合、上記回路が複数ストリーム分必要になり、回路規模が激増するという課題がある。
【００１５】
また、デジタルコンテンツの処理の中には、ＡＶデータの抽出の様な、ストリーム解析に処理量が少ないものや、プログラム仕様情報（ＰＳＩ：Ｐｒｏｇｒａｍ    Ｓｅｒｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ）パケット抽出の様に、ストリーム解析時に内部データの細かいパターン選別を必要とした処理量が多いものもあり、パケットの種類によりその演算量が異なるのが通常である。そのような場合、上記従来例のように、処理を一定とするパイプラインの場合は、パケットデータの内容により処理時間が異なるにも関わらず、順次前段の処理の終了を待つため、非効率となり、その結果処理性能が落ちるという課題がある。
【００１６】
本発明は、従来のこのような課題を考慮し、複数のストリームを一旦ストリームバッファに一括して蓄積し、受信したパケットの処理内容に応じて処理手順をソフトウェアにより制御手順を切りかえることにより、回路規模を激増させることなく、処理性能を高めることを目的とするものである。
【００１７】
【課題を解決するための手段】
上記課題を解決するため、請求項１記載のパケットデータ処理装置の発明は、ＭＰＥＧシステムに用いられる、連続するトランスポートストリームデータを複数のポートから同時に受信するストリーム入力器と、入力したトランスポートストリームから所望のトランスポートパケットデータを抽出するパケット選択器と、選択したトランスポートパケットデータを所定のデータに加工、抽出する２つ以上のシンタックス処理器と、入力したトランスポートストリームとの間隔を一定に保ち入力ストリームを出力するストリーム出力器と、シンタックス処理器で処理されたデジタルデータをメモリへ出力するメインメモリ出力器と、上記ストリーム入力器、シンタックス処理器、ストリーム出力器、メインメモリ出力器へのデータの転送を調停する調停器と、入力したトランスポートストリームを格納するストリームバッファと、各処理器へのデータの転送を制御するデータ転送制御器と、上記パケット選択器、２つ以上のシンタックス処理器、ストリーム出力器、メインメモリ出力器、調停器、データ転送制御器の制御を行う制御器と、制御器が行う命令コード列及び制御器で処理した内容を記憶する制御器用記憶器を備えたものである。
【００１８】
請求項２記載のパケットデータ処理装置の発明は、ＭＰＥＧシステムに用いられる、連続するトランスポートストリームデータを複数のポートから同時に入力した後、入力したトランスポートストリームから所望のトランスポートパケットデータを抽出し、選択したトランスポートパケットデータを所定のデータに加工、抽出する２つ以上のシンタックス処理を同時に行い、入力したトランスポートストリームとの間隔を一定に保ちつつ入力ストリームを出力し、シンタックス処理を行ったデジタルデータをメモリへ出力する一連のパケット処理をパイプラインで制御することを特徴としたものである。
【００１９】
請求項３記載のパケットデータ処理装置の発明は、前記請求項１記載の制御器が、制御器用記録器にアドレッシングした命令により、特定の命令列を順次、処理することを特徴とするものである。
【００２０】
請求項４記載のパケットデータ処理装置の発明は、前記請求項１記載の制御器が、２つ以上のスレッドで構成され、前記スレッドは特定サイクル毎に順次切替わることを特徴とするものである。
【００２１】
請求項５記載のパケットデータ処理装置の発明は、前記請求項１記載の制御器が、２つ以上のスレッド間で情報を共有し、当共有情報を元に各スレッドを動作させることを特徴とするものである。
【００２２】
請求項６記載のパケットデータ処理装置の発明は、前記請求項２記載の制御器によるソフトウェア制御は、受信したトランスポートストリームパケットに共通した処理を１つのタスクで制御し、受信したトランスポートストリームパケットに応じて、処理内容が決定される処理をもう一つのタスクで制御することを特徴とするものである。
【００２３】
請求項７記載のパケットデータ処理装置の発明は、前記請求項２記載の制御器によるソフトウェア制御は、パケットデータ処理で順次行われるパケットデータ選択処理、放送暗号の復号を行うシンタックス処理、選択したパケットデータのデータ解析を行うシンタックス処理、メインメモリに出力するメインメモリ出力処理の一連の処理に対し、パケットデータ処理装置に１つ前に格納されたパケットのパケットデータ選択処理と、放送暗号の復号処理を１段目の処理とし、２つ前に格納されたパケットのデータ解析を行うシンタックス処理を２段目の処理とし、３つ前に格納されたパケットのメインメモリへのメインメモリ出力処理を３段目の処理として、３段パイプライン処理を行うことで処理性能を向上させることを特徴とするものである。
【００２４】
請求項８記載のパケットデータ処理装置の発明は、前記請求項２記載の制御器によるソフトウェア制御では、処理対象中のパケット数をカウントし、該当パケット数のカウントと、前記請求項１記載の複数のシンタックス処理器とメインメモリ出力器の処理の状況に応じて、次の処理内容を決定することを特徴とするものである。
【００２５】
請求項９記載のパケットデータ処理装置の発明は、前記請求項８記載のパケットカウントによるパケットデータ処理は、パケットの入力が行われない場合に、パケットデータ処理装置内で処理途中のデータを処理途中であることを判断し、一部パイプラインを変更し、処理途中のパケット処理を行うことを特徴とするものである。
【００２６】
請求項１０記載のパケットデータ受信装置の発明は、前記請求項２記載の制御器によるソフトウェア制御は、処理対象中の複数のパケットのシンタックス処理とメインメモリ出力処理の処理演算量の大小に応じて、処理演算量の大きい処理中に処理演算量の小さい処理を同時に行うことで、全体の処理性能を向上させることを特徴とするものである。
【００２７】
【発明の実施の形態】
以下に、本発明をその実施の形態を示す図面に基づいて説明する。
【００２８】
（実施の形態１）
本発明の実施の形態１におけるパケットデータ処理装置の構成を図１に示す。
【００２９】
図１において、パケットデータ処理装置ＴＳＤは、複数のトランスポートストリームパケットないしはプログラムストリームパケットＴＳＩ１〜ＴＳＩＮを受信するストリーム入力器１００と、各処理器からのデータ入出力要求を調停する調停器１１０と、調停器１１０で調停した処理のデータを数バイト単位でストリームバッファ１３０へ書きこみ、もしくはストリームバッファ１３０からの読出しを行うデータ転送制御器１２０と、受信したストリームデータを格納するストリームバッファ１３０と、トランスポートストリームパケットをストリームパケット１３０に格納した後、格納したパケットが処理対象のパケットを選択するパケット選択器１６０と、パケット選択器１６０で選択されたパケットをストリームデータに応じて、必要な場合に加工するシンタックス処理Ａ１８０と、シンタックス処理Ａで加工したストリームデータから内部デジタルデータのフィルタリングを行い必要データのみを抽出するシンタックス処理器Ｂ１９０と、シンタックス処理器Ｂ１９０で選別されたデジタルデータをメインメモリ２２０へ出力するメインメモリ２１０と、受信したストリームデータの受信間隔を保ち、一定間隔で高速デジタル出力ポートへ出力するストリーム出力器２００と、前記パケット選択器１６０と、シンタックス処理器Ａ１８０と、シンタックス処理器Ｂ１９０と、ストリーム出力器２００と、メインメモリ出力器２１０の起動を管理し、パケットデータ処理装置ＴＳＤの処理を一括制御する制御器１４０と、制御器１４０の命令列のバイナリデータや、制御器１４０で処理した内容を記憶する読み書き可能なパイプライン処理用記憶器１５０とを備えている。
【００３０】
またパケットデータ処理装置ＴＳＤは各処理器の処理内容を決定するＴＤ制御器２３０により、動作する。
【００３１】
以上のような本発明のパケットデータ処理装置ＴＳＤの処理をストリームデータの流れに即して図１を用いて説明する。
【００３２】
入力する複数トランスポートストリームパケットＴＳ＿１〜ＴＳ＿Ｎはストリーム入力器１０５に入力される。ストリーム入力器１０５では、入力したトランスポートストリームパケットの同期信号（パケットスタート信号）を検出し、データをストリームバッファに格納するためのリクエストＴＳＩ１〜ＴＳＩＮを調停器１１０に出力する。このリクエストＴＳＩ１〜ＴＳＩＮは入力ポートに対応してそれぞれの入力に対して、独立に調停器１１０に出力する。
【００３３】
調停器１１０では、上記で発生した複数リクエストに対し、調停を行い、獲得したリクエストに対応するデータをデータ転送制御器１２０に転送し、ストリームバッファ１３０に格納する。なお調停器１１０における調停処理は後述するシンタックス処理器Ａ１８０、シンタックス処理器Ｂ１９０、ストリーム出力器２００、メインメモリ出力器２１０からのデータ転送リクエストを統括して管理し、調停を行う。
【００３４】
ストリームバッファ１３０に蓄えられたパケットデータは、次にパケットデータ処理装置ＴＳＤでの処理対象パケットかを判定する。処理対象パケットの判定には、トランスポートストリームパケット中のパケット識別子（以後ＰＩＤと記す）で識別する。受信したトランスポートストリームパケット内のＰＩＤと、ＴＤ制御器２３０により設定されている処理対象用ＰＩＤとが一致した場合は、そのパケットを取得し、以後同様にＴＤ制御器２３０から設定された処理に基づいて以後の処理を開始する。
【００３５】
上記で処理対象パケットと判定したパケットに対し、送信側で暗号化されている場合には、以後のデータ解析を行うことが不可能である。その場合には、シンタックス処理器Ａ１８０で復号処理を行う。パケットデータ処理装置ＴＳＤにおいて、受信したパケットが暗号化が施されているかの判断は、受信したトランスポートストリームパケット内のＴＳＣ（Ｔｒａｎｓｐｏｒｔ    Ｓｃｒａｍｂｌｅ    Ｃｏｎｔｒｏｌ）で判断する。受信したトランスポートストリームパケットに暗号化が施されている場合、シンタックス処理器Ａ１８０はストリームバッファからの暗号パケットデータの読出しリクエストを調停器１１０に発行する。調停器１１０は他の処理器のリクエストとの調停後、このシンタックス処理器Ａ１８０の読出しリクエストを獲得すると、読出しリクエストに対するデータ転送指示をデータ転送制御器１２０に発行する。データ転送制御器１２０は該当復号化データが格納されてあるアドレスからデータを読出し、ＳＢＩの径路にてシンタックス処理器Ａ１８０に入力される。シンタックス処理器Ａ１８０では転送単位毎にＴＤ制御器２３０で設定される復号鍵を用いて復号処理を行う。この復号化データは、ＳＡＯに径路にて、読出し時と同様に書き込み要求リクエスト信号を調停器１１０に発行し、調停器１１０でのリクエスト獲得後、データ転送制御器１２０を経由してストリームバッファ１３０に再格納する。
【００３６】
上記において復号化されたパケットデータは次にシンタックス処理器Ｂ１９０にてデータ部分の抽出を行う。デジタル放送システムにおいては、映像音声データや、番組プログラム構成を示す情報や個人情報や送信側で暗号化されたデータを復号するための鍵情報等を含んだＰＳＩ（Ｐｒｏｇｒａｍ    Ｓｅｒｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ）を多重して送信している。このシンタックス処理器Ｂ１９０では、これら多重化したデータのうち、本トランスポートストリームをデコードするのに必要なデータのみを抽出する。
【００３７】
シンタックス処理器Ｂ１９０を起動すると、前述のシンタックス処理Ａ１８０起動時同様に、ストリームバッファ１３０に格納した復号化データの読出しリクエストを調停器１１０に発行する。調停器１１０は他の処理器のリクエストとの調停の後、このシンタックス処理器Ｂ１８０のリクエストを獲得すると、読出しリクエストに対するデータ転送指示をデータ転送制御器１２０に発行する。データ転送制御器１２０は該当復号化データが格納されてあるアドレスからデータを読出し、ＳＢＩの径路にてシンタックス処理器Ｂに入力される。シンタックス処理器Ｂ１９０では転送単位毎にＴＤ制御器２３０で設定される比較データ列パターンと一致するかのマッチング処理を行う。一致した場合、次の比較フィールドまでのデータ長のデータを抽出する。一致しなかった場合は、次の比較フィールドまでのデータは破棄する。こうした処理をトランスポート中で一回以上行い、抽出されたデータに対して、ストリームバッファへの書き込み要求リクエスト信号を調停器１１０に発行し、調停器１１０でのリクエスト獲得後、データ転送制御器１２０を経由してストリームバッファ１３０に再格納する。
【００３８】
次に上記シンタックス処理器Ｂ１９０までの一連の処理において抽出・加工したストリームデータをメインメモリ出力器２１０より出力する。上記所定の処理後、メインメモリ出力器２１０からで出力すべきデータはストリームバッファ１３０に出力するデータ形式として格納されている。メインメモリへ出力すべきストリームデータがストリームバッファ１３０に格納されると、メインメモリ出力器２１０が起動する。メインメモリ出力器２１０は調停器１１０に対し、メインメモリ出力器の読出し要求を発行する。調停器１１０は他の処理器からの要求との調停を行い、この読み出し要求を獲得し、データ転送制御器１２０にデータ転送命令を発行する。データ転送制御器１２０は、ストリーム出力器２１０で読み出されるデータの格納されたメモリアドレスをデコードし、ストリームバッファから読出しを行う。この読み出しデータはメインメモリ出力器２１０に入力され、メインメモリの所定のアドレスに書き込むためのデータ転送命令とメインメモリアドレスを出力し、メインメモリに格納される。このメインメモリに格納したデータは、ＴＤ制御器や後段のＡＶデコーダで処理で使用する。
【００３９】
こうしたメインメモリに格納するまでの一連の処理と並行して、ストリームバッファ１３０に格納されたデータは、ストリーム出力器２００を経由して出力する。ストリームバッファ１３０からストリーム出力器に出力する処理について図２を用いて説明する。
【００４０】
図２において、入力器１０５、ストリーム出力器２００、ストリームバッファ１３０、制御器１４０およびストリーム径路の信号ＴＳＩ１〜ＴＳＩＮ，ＲＤＩ，ＲＤＯ，ＨＯは図１の説明したものと同一である。ストリーム出力器２００はタイマ２００１、データ出力部２００３で構成され、データ出力部はタイマ２００１の値と、データ制御部２００３で設定可能なオフセット値２００２を入力に持つ。図中のトランスポートストリームＴＳ＿Ａ，ＴＳ＿ＢはＴＳ＿Ａが先に入力する１パケット目のトランスポートストリーム、ＴＳ＿Ｂが２パケット目のトランスポートストリームとする。当トランスポートストリームの本開発トランスポートデコーダＴＳＤと入出力と時間のタイミングを図３に示す。
【００４１】
トランスポートストリームＴＳ＿Ａが入力部１０５に入力されると、入力部１０５は、ＴＳ＿Ａが入力完了した時間のタイマ値を読み、到着タイムスタンプ情報ＡＴＳとして、ストリームバッファ１３０格納時に付加する。このＴＳ＿Ａの到着時間をＡＴＳ＿ＡとするとＡＴＳ＿ＡがＴＳ＿Ａの先頭に格納される。このＴＳ＿Ａが本開発のパケットデータ処理装置に到着してから、出力するまでの時間をオフセット期間として制御器１４０で設定されたオフセット値を予め設定しておく。上記のように、該当トランスポートストリームパケットＴＳ＿Ａに対し所定の処理を施された後、データ出力部を起動すると、データ出力部は、データ出力のためのデータ読出し要求を調停器１１０に対し発行する。調停器１１０は他の処理器からの要求との調停を行い、この読み出し要求を獲得し、データ転送制御器１２０にデータ転送命令を発行する。データ転送制御器１２０は、ストリーム出力器２１０で読み出されるデータの格納されたメモリアドレスをデコードし、ストリームバッファから読出しを行う。このデータはストリームデータ出力器２００内のデータ出力部２００３に入力される。データ出力部２００３はこのデータの到着タイムスタンプ情報を受信すると制御器１４０から入力されたオフセット値２００２との加算処理を行う。この加算値が常時タイマ２００１で動作中の現在時刻になると、以降のデータ部分の読出し要求を同様に発行し、入力されたデータをストリーム出力部から逐次出力される。以降のトランスポートストリームパケットＴＳ＿Ｂに対しても同様な処理が行われ、図３に示すトランスポートストリームパケットの入力と一定間隔を保ちつつ、ストリーム出力を行う。一定間隔を保つことは、入力したＭＰＥＧ２−ＴＳ等でエンコードされたビットストリームのビットレートを変えることなく、デコードするために必要であり、この処理を前述のパケットデータ処理と同時処理で行う。このストリーム出力器２００からの出力のデータは、ＴＳプロトコル形式の処理を伝送するＩＥＥＥ１３９４規格準拠のＡＶ機器への接続等に使用可能である。
【００４２】
以上が、本発明のパケットデータ処理装置ＴＳＤの各部の一連のストリーム処理の流れである。各処理器は起動され所定のトランスポートストリームパケットもしくは、処理データが入力されて所定の処理を行うものであり、各部全体の起動制御を司るのが、本発明の主眼とする制御器１４０である。例えば、制御器１４０を介さず、順次上記処理順で行う場合には、処理が一意ではあるが、複数入力とした場合には、ストリームバッファ内のどのデータを参照すべきか等の処理以外の部分まで各部でもつ必要があり、回路規模の増大につながる。また処理器においては、１つの処理でなくパケットの種類に応じた処理が大半であり、その切替等を順次行っていたのでは、処理開始までのオーバーヘッドが大きく処理効率が悪化する。その為、こうした処理は、制御器１４０で一連管理する。制御器１４０の制御において、各処理器の制御方法による部分について述べる。
【００４３】
初めに、制御器１４０の構成について図１を用いて説明する。図１において、パケットデータ処理装置ＴＳＤ内に、制御器１４０の所定演算命令列を格納する制御器用記憶器１５０を備える。その処理命令列が制御器用記憶器１５０に格納されると、そのデータが制御器１４０起動時に命令が制御器１４０にＵＤＩを介してロードされる。制御器１４０は以後ロードした命令列に応じた処理を順次行う機構を持つ。またこの制御器用記憶器１５０は制御器１４０で処理された演算結果を一部格納及び格納データを逐次読み出す演算記憶器として使用する。この場合は、制御器１４０の格納命令演算の処理時にＵＤＬを介して、制御用記録器の所定のアドレスに格納、もしくは所定のアドレスから読出しが行われる。さらに、制御器１４０の内部には、制御器用記録器１５０以外に小量のレジスタ（図１では記載せず）を持つ構成とする。このレジスタは、逐次制御器用記録器１５０にアクセスせず、制御器内部で処理を完結するための高速化のために用いられる。また、制御器１４０は他の処理器同様、ストリームバッファ１３０に対し、データ抽出、格納可能なデータバスを複数保持している。このデータバス転送について説明する。
【００４４】
ストリームバッファ１３０に格納されたデータから所定のデータを抽出する場合、制御器１４０は調停器１１０にデータ読出し要求ＣＤＷＲを発行する。調停器１１０は他の処理器からの要求との調停を行い、この読み出し要求を獲得し、データ転送制御器１２０にデータ転送命令を発行する。データ転送制御器１２０は、制御器１４０で読み出されるデータの格納されたメモリアドレスをデコードし、ストリームバッファから読出しを行う。このデータはＣＤＲを介して制御器１４０のレジスタに格納される。制御器でデータの加工を行ったデータをストリームバッファ１３０に記述する際も読出し同様に、調停器１１０に書き込み要求ＣＤＷＲを発行する。調停器１１０は他の処理器からの要求との調停を行い、この書き込み要求を獲得し、データ転送制御器１２０にデータ転送命令を発行する。データ転送制御器１２０は、制御器１４０で書きこまれるデータの格納すべきメモリアドレスをデコードし、ストリームバッファへの書き込みを行う。このデータはＣＤＷを介して制御器１４０のレジスタからデータ転送制御器１２０へ入力されストリームバッファに格納される。
【００４５】
本発明の制御器１４０は２つ以上の処理タスクを切替えて制御を行う、マルチスレッド方式であり、前述の各処理を各スレッドに割り当てて並列処理を行う。このマルチスレットの機構について図４を用いて説明する。
【００４６】
図４において、本発明による制御器１４０の定常時の動作を示す。制御器１４０は２つ以上のスレッドを一定サイクル毎（図面では４サイクル）に切替え、割当てたスレッドで該当スレッドの処理が行われるマルチスレッドプロセッサで動作する。このマルチスレッドプロセッサでは、各スレッドの処理は独立して動作することができるメリットがあり、同時処理に適している。
【００４７】
また制御器１４０は、ストリーム加工、抽出レジスタに加え、スレッド間通信レジスタ（図中では記載せず）を備える。このスレッド間通信レジスタは、上記マルチスレッド処理において、スレッド１、スレッド２のどちらのスレッドからもアクセス可能な通信ビットを複数備えており、この通信ビットにより、スレッド１、スレッド２の両スレッドから本発明のパケットデータ処理装置ＴＳＤ全体の制御を監視する場合に使用できる。
【００４８】
以上のような構成を持つ制御器１４０により、本発明のパケットデータ処理の制御を行う。本発明のパケットデータ処理装置ＴＳＤの処理割当について図５を用いて説明する。図５においても、３つ以上のスレッド割当も可能であるが、スレッドを追加することで、制御器１４０の回路は増大するため、敢えてマルチスレッドの中で、スレッド切替の少ない２スレッドの場合においてのみ説明することとする。
【００４９】
図５において、左列は、割当スレッド番号を示す。中列は、図１にある各処理器の名称で表し、右列は、該当するパケットの処理順序を示す。本発明では、入力器１０５からトランスポートストリームパケットを受信し、パケット選択器１６０で処理パケットの抽出を行い、スクランブルストリームに関しては、シンタックス処理器Ａによりスクランブル処理を施す部分をスッド１に割当て、デスクランブルデータをストリーム出力器２００から高速出力しながら、データ抽出や編成処理をシンタックス処理器Ｂ１９０で行い、最終的にメインメモリ出力器２１０でメインメモリに出力するまでをスレッド１で行う。該当ストリームを逐次処理する場合には、図５に処理した処理手順で行い、また順序１から行う場合も可能であるが、この場合には、各処理器が終了してから次の処理器が動くため、１ストリームパケットに要する処理時間は、パケット選択器時間（Ａ）、シンタックス処理器Ａ処理時間（Ｂ）、ストリーム出力器制御時間（Ｃ）＋シンタックス処理器Ｂ処理時間（Ｄ）＋メインメモリ出力時間（Ｅ）の単純和となり、効率が悪い。また、該当パケット処理中にも、入力部１０５からは、逐次複数ポートからストリーム入力が行われるので、上記逐次処理では、他系統からの受信用のストリームバッファ１３０の容量も大規模に用意する必要がある。本発明は、これら課題を解決するための制御方法の発明であり、処理効率を短縮する制御方法の具体的内容について、図１、図６、図７、図１０を用いて説明する。
【００５０】
図６、図７において、本開発のパケットデータ処理装置の制御部１４０で制御する処理全体フローを示す。図６は上記マルチスレッドでのパケットデータ処理のスレッド１、図７はスレッド２の制御方法を示している。
【００５１】
図６において、初めに、ステップ１００で制御器１４０を起動する。制御器１４０が起動すると、スレッド１は制御器用記憶器１５０に記述され、ロードした命令コードに即した処理を１クロックに１命令行う。制御器１４０を起動すると、ステップ２００に進む。
【００５２】
ステップ２００では、本発明のパケットデータをマルチスレッドで行うスケジュールを設定する。スケジュールは使用スレッドの数、１スレッドの割当時間を設定することで、マルチスレッドで本発明のパケットデータ処理の処理サイクルを決定する。ここでは、スレッド数を２、スレッドの割合は、スレッド１、スレッド２を同等の４クロック毎割り当てる設定を行う。また、本パケットデータ処理を行う際に、制御器１４０での演算結果を１次記憶するための領域を初期化する。この領域は、制御器用記憶器の処理命令コードを格納部分以外が演算記憶領域とし、この部分を初期化する。この初期化後、ステップ３００に進む。
【００５３】
ステップ３００では、マルチスレッド動作を行うために、スレッド２を起動する。本発明の制御器は、スレッド１がメインプロセッサの役目を果たし、このメインプロセッサのみが動作する場合は、マルチスレッドの切替を行わず、シングルスレッドで処理を行うことができる。本発明では、スレーブのプロセッサであるスレッド２を起動することで、複数制御で処理を行う。以上までが本発明のパケットデータ処理装置ＴＳＤを制御器で処理するための初期設定であり、以後説明するステップ４００以降の処理は毎パケット到着毎に行われるループ処理である。そして処理はステップ４００に進む。
【００５４】
ステップ４００では、ストリームバッファ１３０へのパケットデータ格納処理を行う。上記ステップ３００まででパケット受信状態であり、パケットデータがストリームバッファへ部分的に格納途中である場合や、パケットデータのビットレートや入力データの構成上、まだパケットデータが入力されていない場合は、格納終了まで、このステップ４００でウェイト状態に入る。パケットデータが格納終了しているパケットデータが存在する場合は、その格納された順番の最も前に到着したパケットデータのパケットデータの格納してあるセル番号をデータ転送制御器１２０から読出し、該当パケットの位置を判断する。そして処理はステップ５００に進む。
【００５５】
ステップ５００では、前記ステップ４００において判断したパケットデータが以後の処理対象パケットデータであるかを判断するパケット選択処理を行う。この判断は通常、パケットデータの種類を示す、パケットＩＤ（以後ＰＩＤと記す）により判断する。この判断を行うために、制御器１４０はパケットデータのＰＩＤのあるデータ部分を抜き取るために、ストリームバッファからの読出し要求を調停器１３０に要求し、データを取得し、所定のレジスタに格納する。このレジスタ値をパケット選択器内部の参照レジスタ（図示せず）にロードし、パケット選択器を起動する。このパケット選択器１６０は、このパケット選択器１６０には、処理対象となるパケットデータのＰＩＤと各ＰＩＤのデータをどう処理するかの処理情報が予めＴＤ制御器２３０から設定されており、この設定ＰＩＤデータ列と上記参照レジスタ上のＰＩＤ値を比較する。その結果をパケット選択器１６０の結果レジスタ（図示せず）に表示する。この結果は、比較して処理対象である（比較一致）場合と、処理対象でない（比較不一致）の２つの結果である。そして処理はステップ６００に進む。
【００５６】
ステップ６００では、前記ステップ５００においてパケット選択器１６でのパケット選択器の結果、比較が一致した場合に、このパケットデータに対し、以後の処理内容情報を抽出する。この処理内容情報（以後ＰＥＴ：Ｐａｃｋｅｔ  Ｅｎｔｒｙ    Ｔａｂｌｅと記す）には、シンタックス処理Ａによるデスクランブル処理を行うか、シンタックス処理Ｂによるデータ抽出を行うか、メインメモリ出力を行うか、ストリーム出力を行うか等の以後の処理器での処理を行う情報が明記されている。制御器１４０では、この処理内容をパケット選択器１６０の内容レジスタからロードし、制御器用記憶器１５０内部のレジスタに記憶して、次のステップ７００に進む。
【００５７】
ステップ７００では、シンタックス処理器Ａを起動するかどうかを判定する。シンタックス処理器Ａで行う処理は、主に放送パケットデータや蓄積パケットデータの著作権保護の目的で施されている暗号データ部分を復号し、以後のデータ解析が行えるデータ形式に変換するものをいう。前記ステップ６００において抽出したＰＥＴにおいて、シンタックス処理Ａを行う内容であり、かつ該当パケットが暗号が施されている場合に、このシンタックス処理Ａを起動するパケットであると判断し、ステップ８００に進む。またこのパケットのうち、上記ＰＥＴでシンタックス処理器Ａを起動しない、あるいは、該当パケットデータに暗号が施されていない場合には、不要にシンタックス処理器Ａは起動せず、ステップ８００をスキップし、ステップ９００に進む。
【００５８】
ステップ８００では、シンタックス処理器Ａで処理を行う場合のみのステップであり、ここでは、シンタックス処理器Ａを制御する。ＴＤ制御器２３０により、シンタックス処理器Ａを処理するのに必要な復号化キーが制御器用記憶器１５０に設定されており、制御器１４０は、この復号化キーをシンタックス処理器Ａの復号キーレジスタ（図示せず）に設定する。設定が終了すると、次にシンタックス処理器Ａに転送する暗合データの存在するデータのアドレスとサイズを設定する。アドレスとサイズ設定が終了するとシンタックス処理器Ａを起動する。起動が開始するとシンタックス処理器Ａは前述したストリーム径路で、設定サイズの暗号化データを受け取り、逐次復号処理を行っていく。制御器１４０はこのシンタックス処理Ａの終了はここでは管理せず、別の処理を行うことで、並列処理化を行う。次に処理はステップ９００へ進む。スレッド１で行うパケットデータに関する処理は以上で終了であり、以後の処理は、マルチスレッドで並列処理を行うための制御処理に関する。
【００５９】
ステップ９００では、このスレッド１で行われたパケットデータ処理を引き続きスレッド２で行うためのスレッド２の動作状態を判定する。スレッド間の引渡し制御は、図８に情報の受け渡しを行うための制御器用記憶器の割当の構成を示す。図１０において、前記ステップ４００から８００までで行ったパケットデータ処理の結果および前記ステップ６００で抽出した処理内容情報はアドレスＡの領域に保存する。その後、スレッド２の動作が開始されており、アドレスＢの中間データ領域のデータを更新可能な状態かを判定する。判定可能な場合は、アドレスＡの内容をアドレスＢの領域にコピーする。まだ更新が可能でない状態の場合は、中間データ領域が更新可能になるまで、ウェイトする。更新が終了した場合は、ステップ１０００に進む。
【００６０】
ステップ１０００では、スレッド１でのパケットデータ処理が終了したことを通知する。通知する場合には制御器１４０内の通信レジスタにより通知する。図９に本開発のパケットデータ処理装置ＴＳＤの通信レジスタの使用方法を示す。各ビットの使用は各ステップで使用する場合に適宜説明を施す。このステップでは、ビット１のスレッド間通知ビットを使用する。前記ステップ９００ではこのビット１が０であること、すなわちスレッド２が一つ前段階で処理していたパケットの情報をすでに受けとっており、スレッド１の方法は中間データ領域にコピーしてあるので、このビット１を１に変更、すなわち、スレッド１の情報通知が完了したことをスレッド２から判定できる状態にしておく。このようにすることで、スレッド２では、スレッド１の動作状況を監視することなく、このビット１のみでスレッド１の処理を以後続けて処理することが可能となる。この処理でパケットデータ処理でのスレッド１の役割は終了し、ステップ４００に戻り、以下同様にパケットが格納されるたびに処理を行う。
【００６１】
次に、前記までの処理で行われたパケットデータをスレッド２で処理する制御方法について、図１、図７、図１０を用いて説明する。スレッド２では、スレッド１での処理が終了したパケット処理の行うが主な役割であるが、スレッド１で処理しているパケットの、２つ前までに到着しているパケットの処理を同時に行うことで、処理の高速化を図ることが本発明の特徴である。
【００６２】
図９にスレッド２における制御フローを示す。スレッド２は、スレッド１が処理順序が一意であるのに対し、処理状態に応じて４つの処理に分かれる。ステップ２０５０では、各４つの部分のどの部分を起動するかの判定を行う。判定方法を図１０に示す。図１０において、楕円の項は、スレッド２での各処理分岐ｃａｓｅ１からｃａｓｅ４を示す。判断基準は、スレッド２で処理しているパケット数（以後パケットカウントと示す）と、通信レジスタのｂｉｔ０すなわち、パケットの到着を待っている状態であるかどうかで判断する。分岐の線に記載された数字部分がパケットカウントを示し、パケットカウントのみでなくパケット到着待ちも判定条件にする場合は、括弧で記載する。図１０において、各ｃａｓｅから別のｃａｓｅに進む場合があるが、この分岐処理も実際はステップ２０５０での分岐制御で行っているが、図を簡素化するためにそのまま記す。以後各分岐におけるｃａｓｅ処理について説明する。
【００６３】
ステップ２０５０において、スレッド２で処理するパケットが無い（パケットカウント０）あるいは処理するパケットが１つまたは２つあるが現在パケットの到着が無い場合（パケットカウント１または２でｂｉｔ０＝０の場合）はｃａｓｅ１に進む。ｃａｓｅ１ではまずステップ２１００において、スレッド１からの処理内容情報の受取処理を行う。処理内容情報の受取処理は、図８における、中間データ領域にあるデータをアドレスＣあるいはアドレスＤの空き領域にコピーする。そして処理はステップ２１１０に進む。
【００６４】
ステップ２１１０では、上記ステップ２１００でスレッド１からの処理情報を受け取ったことを通知する処理を行う。前述の図１における制御器１４０の通信レジスタのｂｉｔ１を０にすることで、スレッド１の処理情報の受取が終了し、中間データを更新可能であることをスレッド１側に通知する。そして処理はステップ２１２０に進む。
【００６５】
ステップ２１２０では、スレッド１のシンタックス処理器Ａでの処理起動の終了判定のための処理を行う。この処理はスレッド１での行える処理だが、スレッド１でのシンタックス処理器Ａを起動中、制御器１４０の制御はシンタックス処理Ａの処理終了まで処理を行う必要がないため、前述のスレッド通信を前もって行っておき、スレッド通信終了後に処理終了判定を行った場合の方が、パケットデータ処理の効率が向上できる。スレッド１でシンタックス処理Ａの起動が行っていたかはスレッド１からの処理内容情報に格納されており判断できる。シンタックス処理Ａの処理が行われていない場合は、次のステップ２１３０をスキップする。シンタックス処理Ａの処理が行われている場合には、ステップ２１３０に進む。
【００６６】
ステップ２１３０では、スレッド１で行ったシンタックス処理Ａの終了処理を行う。終了処理はシンタックス処理器Ａの終了している場合には、シンタック処理器Ａをリセットするとともに、制御器１４０の通信レジスタのｂｉｔ２を０にすることで、終了処理を行うとともに、この処理を行うことで、スレッド１でパケットデータの復号時に再度起動することが可能な状態となる。終了処理が終わると次のステップ２１４０に進む。
【００６７】
ステップ２１４０では、スレッド２でスレッド１からパケットを受け取ったことを示すためのパケットカウンタを１インクリメントする。このパケットカウンタは、スレッド２で同時に複数のパケット処理を行う場合の指標となり、動作手順も現在処理しているパケットカウンタの数でストリームバッファ１３０や、制御器用記憶器１５０内部のデータが更新できない等の弊害をなくすためのメモリ管理上の情報として使用する。パケットカウンタの更新が終了すると次のステップ２１５０に進む。
【００６８】
ステップ２１５０では、ストリーム出力器によりストリーム出力を行うための制御を行う。ストリーム出力器は、このステップにくる段階で、シンタックス処理器Ａにて、復号処理が行われているのでストリーム出力可能なデータ形式への変換は終了している。制御器１４０ではストリーム出力を行うパケットは出力用ＦＩＦＯ（図示せず）にセットすることで、ストリーム出力器がパケット到着から一定の遅延時間後に出力ＦＩＦＯにセットした順にパケットを出力する。
【００６９】
以上が１つの分岐処理ｃａｓｅ１の一連の処理である。この処理が終了すると再びステップ２０５０へ戻り処理判定を行う。
【００７０】
ステップ２０５０において、ｃａｓｅ１の処理後に処理中のパケットが１つの場合（パケットカウント１）と、ｃａｓｅ３の処理後に処理中のパケットが２つの場合（パケットカウント２）のときには、ｃａｓｅ２の処理分岐の制御に進む。ｃａｓｅ２の処理はシンタックス処理器Ｂの処理起動までの処理を行う。まず初めに、ステップ２２００に進む。
【００７１】
ステップ２２００では、該当するパケットデータの処理内容で応じたデータ解析を行う。データ解析には、ＡＶデータ用パケットデータの場合は、トランスポートストリームパケットをそのまま出力、ＰＥＳ（Ｐａｃｋｅｔｉｚｅｄ  Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）ストリーム形式に変換、エレメンタリ−ストリームにまで変換して出力する場合等がある。この場合は、ストリームバッファ１３０内部のデータを解析し、該当データ内部でメインメモリに出力するデータの先頭のアドレスを記載してステップ２２１０に進む。また処理内容がＰＳＩデータの場合は、パケットデータをシンタックス処理器Ｂに転送する設定を行い、ステップ２２１０に進む。
【００７２】
ステップ２２１０では、シンタックス処理器Ｂの起動制御を行う。ここでは、初めに制御器１４０の通信レジスタのｂｉｔ３を１にセットし、これからシンタックス処理器Ｂを使用することを通知する。これにより、他の処理スレッドでシンタックス処理器Ｂの使用状態が監視できるとともに、他で不正なシンタックス処理器Ａへの制御を行うことを禁止することが可能となる。前記ステップ２２００において、決定している処理内容形式がＡＶパケットの場合は、転送されるデータをそのままメインメモリに転送できるようにストリームバッファ１３０の出力バッファ領域に格納する設定を行う。処理形式がＰＳＩデータの場合は、抽出するＰＳＩパターンとマッチングする処理モードに設定し、シンタックス処理器Ｂを起動する。起動後は、シンタックス処理器Ｂが逐次パケットデータを受け取りフォーマットに応じた処理を行うため、その間に再度ステップ２０５０に戻り処理判定を行う。
【００７３】
ステップ２０５０において、現在処理中のパケットが１つであるが到着するパケットが無い状態（パケットカウント１で到着パケットが存在なし）と、ｃａｓｅ１処理後に現在処理中のパケットが１である場合（パケットカウント１）と、ｃａｓｅ５処理後に現在処理中のパケットが２である場合（パケットカウント２）である場合は、ｃａｓｅ３の処理分岐の制御に進む。ｃａｓｅ３の処理はシンタック処理器Ｂの処理が終了した後の結果判定の処理を行う。まず初めに、ステップ２３００に進む。
【００７４】
ステップ２３００では、シンタックス処理器Ｂで終了後の処理を行う。シンタックス処理Ｂが終了する場合の終了を待ち、終了後はシンタックス処理器Ｂをリセットし、制御器１４０の通信レジスタのｂｉｔ３を０にセットする。これにより、ｃａｓｅ２の起動時にシンタックス処理器Ｂが使用可能な状態にする。その後は再度ステップ２０５０に戻り処理判定を行う。
【００７５】
ステップ２０５０において、ｃａｓｅ２処理後に現在処理中のパケット数が２である場合（パケットカウント２）と、ｃａｓｅ１処理後に現在処理中のパケット数が１である場合（パケットカウント１）の場合には、ｃａｓｅ４の分岐処理に進む。
【００７６】
ステップ２４００では、メインメモリ出力器２１０の起動までの処理を行う。このステップ２４００に到着する場合には、前記ステップ２３００までの処理を終了した、メインメモリ出力データに成形されたデータが必ずストリームバッファ１３０の１つの領域に格納されている。初めに、制御器１４０では、ストリームバッファ１３０に格納された成形データの先頭アドレスから、メインメモリへの出力へ転送する起動命令をメインメモリ出力器２１０に対して行う。
メインメモリ出力器２１０はその起動命令を受けると、格納データの先頭アドレスからのデータを逐次、ＴＤ２制御器２３０で設定されたメインメモリのアドレスに格納する。その間、制御器１４０はメインメモリ起動後は、再度ステップ２０５０に戻り処理判定を行う。
【００７７】
ステップ２０５０において、現在処理中のパケットが２の場合で、現在パケットの到着も行われている場合（パケットカウント２でｂｉｔ０＝１の場合）、もしくは、ｃａｓｅ１処理後に現在処理対象のパケットが３の場合（パケットカウント３の場合）、もしくは、ｃａｓｅ４処理後に現在処理対象のパケットが１の場合（パケットカウント１の場合）には、ｃａｓｅ５の分岐処理に進む。
【００７８】
ステップ２５００ではメインメモリ出力器２１０が終了後の処理を行う。前記ステップ２４００で起動したメインメモリ出力器２１０がメインメモリへの所定バイト数の成形データ転送が終了することを監視し、終了したら、メインメモリ出力器Ｂの転送命令をクリアし、制御器１４０の通信レジスタのｂｉｔ４を０にセットする。これにより、ｃａｓｅ４の起動時にメインメモリ出力器Ａが使用可能な状態にする。その後は再度ステップ２０５０に戻り処理判定を行う。
【００７９】
以上のように、スレッド２での処理はスレッド１からのパケットデータ入力状況や、スレッド２で起動するシンタックス処理器Ａ、メインメモリ処理器の所持時間に応じてパケット処理順序を切替る制御方法をとる。以上のように処理した場合のパケットデータの流れと時間の関係を図１１に示す。
【００８０】
図１１において、上段のＴＩＮ１〜ＴＩＮ４は図１の入力器１０５への入力が４本同時に入力された場合を示している。次の段は図１における制御器１４０で制御される処理器の動作しているタイミングを示しており、上からパケット選択器、シンタックス処理器Ａ、シンタックス処理器Ｂ、メインメモリ出力器、ストリーム出力器の起動を表す。次の段は、図９における通信ビット１のスレッドの通知のタイミングを示す。次の段は、図７のフローで示している、パケットカウントのパケットデータの入力と処理状態に応じたカウント数を示している。これまで説明した実施の形態の通り、パケット格納の管理とパケット選択器とシンタックス処理器Ａはスレッド１で制御し、シンタックス処理器Ｂとメインメモリ出力器とストリーム出力器はスレッド２で制御しており、スレッドの通知を行うことで図１１にあるように３段のパイプラインで処理を実現できる。図１１において、４本のストリームが３５Ｍｂｐｓのトランスポートストリームパケットの入力とし、２００ＭＨｚのクロックで本発明のパケットデータ処理装置が動作するとすると、図１１のＰｔＡで示す１パケットの処理時間は、約１０ｕｓ程度で処理が可能となる。比較のために同様の構成を持つパケットデータ処理装置を用いて、本発明の制御を用いない場合の処理図を図１２に示す。この場合には図１１のような一連の処理が終わってから次のパケットの処理を開始するため、パイプラインの間隔ＰｔＢが図１１の場合のＰｔＡに比べ、３倍となり、上記と同等の例ではＰＴｂは約３０ｕｓの期間を要する。これは、同一規模のバッファで構成すると処理できる処理性能は１／３に劣化する。別の考えで、同一処理性能のパケットデータ処理装置を構成しようとした場合には、１／３の処理の劣化を吸収するために３倍のバッファを用意しなければならず、回路規模が増大につながる。すなわち図１１で構成する本発明のパケットデータ処理方法では、複数のパケットを同時に処理することが可能になるとともに、最短時間で処理を行うことで、ストリームバッファに格納しておく時間を短くすることで、非常に小規模のバッファでパケットデータ処理を実現できる。
【００８１】
【発明の効果】
ディジタル放送受信器等で用いられる、パケットデータ処理装置において、デジタルコンテンツに対して種々な処理を行う際、複数のストリームを同時に処理すること場合に、一つのパケットデータ処理装置でパケットを格納することで、従来例のような回路が複数ストリーム分必要となる問題を解決し、回路規模が激増するという課題が解決できる。
【００８２】
また、従来例のように、処理を一定とするパイプラインの場合は、待ち時間が異なるにも関わらず、順次前段の処理の終了毎に次の処理に移る方法に比べ、各処理器の処理時間に応じて、次の処理内容を判断する制御方法により最もパフォーマンスの高い処理性能のパケットデータ処理装置を実現できる。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるパケットデータ処理装置の構成図
【図２】図１におけるストリーム処理器の詳細な処理図
【図３】同２におけるパケットデータ入出力と時間の相関図
【図４】図１における制御器１４０の通常状態のスレッドの切替タイミング図
【図５】本発明の実施の形態１における制御器１４０での各スレッドにおける制御対象処理器を割当図
【図６】本発明の実施の形態１における制御器１４０でのスレッド１の制御フロー図
【図７】本発明の実施の形態１における制御器１４０でのスレッド２の制御フロー図
【図８】本発明の実施の形態１における制御器１４０におけるスレッド間で通知する情報の通信方法を示す図
【図９】本発明の実施の形態１における制御器１４０における通信レジスタの情報を示す図
【図１０】本発明の実施の形態１における制御器１４０でのスレッド２の処理状態遷移図
【図１１】本発明の実施の形態１におけるパケットデータ処理装置の処理の流れを示す図
【図１２】本発明で動的制御を行わない場合の処理の流れを示す図
【図１３】従来のパケット処理装置の構成図
【図１４】従来のパケット処理装置での処理データと時間の相関図
【符号の説明】
１０５  入力部
１１０  調停器
１２０  データ転送制御部
１３０  ストリームバッファ
１４０  制御器
１５０  制御器用記憶器
１６０  パケット選択器
１８０  シンタックス処理器Ａ
１９０  シンタックス処理器Ｂ
２００  ストリーム出力器
２１０  メインメモリ出力器
２２０  メインメモリ
２３０  ＴＤ制御器
２００１  タイマ
２００２  加算オフセット値
２００３  データ出力部
２０１０  データ転送バス
１０  入力器
２０  パケット選択器
３０  シンタックス処理器Ａ
４０  シンタックス処理器Ｂ
５０  メインメモリ出力器
６０  ストリーム出力器
７０  メインメモリ
８０  ＴＤ２制御器
【図１】
2004289240.tif 000003
【図２】
2004289240.tif 000004
【図３】
2004289240.tif 000005
【図４】
2004289240.tif 000006
【図５】
2004289240.tif 000007
【図６】
2004289240.tif 000008
【図７】
2004289240.tif 000009
【図８】
2004289240.tif 000010
【図９】
2004289240.tif 000011
【図１０】
2004289240.tif 000012
【図１１】
2004289240.tif 000013
【図１２】
2004289240.tif 000014
【図１３】
2004289240.tif 000015
【図１４】
2004289240.tif 000016