JP2004289240A - Packet data processor - Google Patents

Packet data processor Download PDF

Info

Publication number
JP2004289240A
JP2004289240A JP2003075667A JP2003075667A JP2004289240A JP 2004289240 A JP2004289240 A JP 2004289240A JP 2003075667 A JP2003075667 A JP 2003075667A JP 2003075667 A JP2003075667 A JP 2003075667A JP 2004289240 A JP2004289240 A JP 2004289240A
Authority
JP
Japan
Prior art keywords
processing
packet
data
stream
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003075667A
Other languages
Japanese (ja)
Inventor
Akira Okamoto
暁 岡本
Shoichi Goto
昌一 後藤
Mikihiko Yamada
幹彦 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003075667A priority Critical patent/JP2004289240A/en
Publication of JP2004289240A publication Critical patent/JP2004289240A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Television Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a packet data processor capable of realizing a decoder function with high processing performance for simultaneous processing of a plurality of digital stream data in receiving the data in a processor-based demultiplexing system for processing a plurality of streams. <P>SOLUTION: The packet data processor totally controls a start / end state of each processing unit when applying prescribed demultiplexing processing to a plurality of streams and dynamically switches the processing procedure in accordance with the operating state of each processing unit. Thus, operating a plurality of the processing units in parallel enhances the processing performance. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、それぞれビットレートでの複数のトランスポートストリームを入力とし、当該入力される複数のトランスポートストリームに所望の処理を施して新たなトランスポートストリームを生成するトランスポートストリームデコーダに関する。さらに詳述すれば、本発明は、逐次入力される異なるフォーマットのトランスポートストリームを構成するパケットデータが処理対象であるかをリアルタイムに識別して、処理対象である場合には当該パケットデータに所定の処理を各処理の動作状況に応じ、動的に制御するトランスポートストリームデコーダに関する。
【0002】
【従来の技術】
デジタルコンテンツに対して種々な処理や編集を施して副次利用する要求は、従来は放送局のようなコンテンツ制作あるいは配信元にのみ可能であった。しかしながら、近年のデジタル技術の進歩により、インフラストラクチャとしてデジタル配信システムの質および量は日々に充実している。つまり、デジタルコンテンツを提供するトランスポートストリームの充実、ユーザによる処理に必要なハードウェアの性能アップ、およびそのためのコストの低減により、従来は放送局等の施設によってのみ実施されていた、トランスポートストリームの編集や、トランスポートストリームを構成するパケットデータの編集をユーザ側で楽しむための環境条件が整いつつある。
【0003】
しかしながら、ユーザ側においてデジタルコンテンツごとに所望の処理を施すためには、逐次入力されてくるトランスポートストリームを構成するパケットデータの個々に対して、リアルタイム選択し、さらに選択されたパケットデータに対して対応する処理あるいは加工を施すべく処理手段のアクセスを許す手段が必要である。
【0004】
こうしたデジタルパケットデータの個々に対して、選択されたパケットデータに対して処理するトランスポートデコーダが知られている(例えば特許文献1、特許文献2参照。)。
【0005】
以下、従来のトランスポートデコーダについて図13を用いて説明する。
【0006】
従来のトランスポートデコーダ(TSD)はチューナにより復調されたトランスポートストリーム(TSIN)は、入力器10に入力される。入力されたTSINは、同期を取り正規のトランスポートストリームパケットの場合、該当パケット(TSO)をパケット選択器20に出力する。
【0007】
パケット選択器20では、入力されたパケットに対し、ユーザ側が放送を視聴するために必要なデジタルコンテンツ用パケットを選別する。パケットを選別する際、トランスポートストリームパケットの番組の種類を示す識別子となるPID(Packet ID)を比較することにより選別が行われる。デジタル放送受信器では、ユーザ側で視聴に必要なパケットを区別するための情報は予めTD制御器80により、パケット選択器内の記録器(図示せず)に登録されている。
【0008】
前段のパケット選別により抽出されたトランスポートストリームパケット(PIDO)は、デジタルコンテンツの保護の為に行われている暗号化ストリームに対し、復号処理を行う。暗号化されたパケット(PIDO)は次にシンタックス処理器Aに入力され、シンタックス処理器Aで復号処理を行う。シンタックス処理器Aでは、ユーザに応じて入手した鍵情報を基に、暗号化を施したトランスポートストリームパケット(PIDO)に対して復号処理を行い、復号化したパケットデータ(SPAO)を出力する。デジタル放送受信機において、復号化の為の鍵情報もTD制御器20により、復号処理開始時に予め通知されている。
【0009】
前段の復号処理により復号されたトランスポートストリームパケット(SPAO)は、シンタックス処理部B40に入力される。シンタックス処理器B40では、SPAOとそのパケットに対応したデータ部分の処理解析を行う。さらに詳述すると、処理解析にはトランスポートストリームパケット形式からPESパケット形式に成形する処理等が該当する。
【0010】
前段のシンタックス処理器40により処理されたデータ(SPBO)は、メインメモリ出力部50に入力される。メインメモリ出力部50では、入力されたSPBOを外部メインメモリ70に出力するアドレスを管理し、外部メインメモリ70の転送単位にバッファリングして所定アドレスに出力する。メインメモリ70に格納されたデジタルデータは後段のAVデコーダ(図示せず)からのデータ要求があった場合に、メインメモリ70から再び読み出され、AVデータ(AVO)を出力する。
【0011】
上記、シンタックス処理器40と並行して、SPAOはストリーム出力器60に入力され、SPAOを別系統の出力口HSOからSPAOを出力する。このパケットデータHSOはデジタルデータを記録するためのデジタル機器への入力として使用することが可能である。
【0012】
以上が、従来のトランスポートデコーダ(TSD)の処理である。また、これらの処理の各処理器のデータの入出力のタイミングを図14に示す。図14に示す各処理器の処理時間(TD1,TD2,TD3,TD4,TD5)でパイプライン処理を行う。一例として100MHzのクロックでの処理が60Mbpsの処理性能を持つ従来方式トランスポートデコーダの場合には、60Mbpsで入力される188バイト単位のトランスポートパケットはパケットが入力されてから出力されるまでの時間Ptは、約30us程度で処理される。
【0013】
【特許文献1】
特開平9−247237号公報
【特許文献2】
特開2000−151538号公報
【0014】
【発明が解決しようとする課題】
上記従来の技術のように、1系統のトランスポートストリームを扱う場合には、上記従来例が適している。しかしながら、デジタルコンテンツに対して種々な処理を行う場合、複数のストリームを同時に処理することが必要となる。こうした場合、上記従来の装置で構成した場合、上記回路が複数ストリーム分必要になり、回路規模が激増するという課題がある。
【0015】
また、デジタルコンテンツの処理の中には、AVデータの抽出の様な、ストリーム解析に処理量が少ないものや、プログラム仕様情報(PSI:Program Service Information)パケット抽出の様に、ストリーム解析時に内部データの細かいパターン選別を必要とした処理量が多いものもあり、パケットの種類によりその演算量が異なるのが通常である。そのような場合、上記従来例のように、処理を一定とするパイプラインの場合は、パケットデータの内容により処理時間が異なるにも関わらず、順次前段の処理の終了を待つため、非効率となり、その結果処理性能が落ちるという課題がある。
【0016】
本発明は、従来のこのような課題を考慮し、複数のストリームを一旦ストリームバッファに一括して蓄積し、受信したパケットの処理内容に応じて処理手順をソフトウェアにより制御手順を切りかえることにより、回路規模を激増させることなく、処理性能を高めることを目的とするものである。
【0017】
【課題を解決するための手段】
上記課題を解決するため、請求項1記載のパケットデータ処理装置の発明は、MPEGシステムに用いられる、連続するトランスポートストリームデータを複数のポートから同時に受信するストリーム入力器と、入力したトランスポートストリームから所望のトランスポートパケットデータを抽出するパケット選択器と、選択したトランスポートパケットデータを所定のデータに加工、抽出する2つ以上のシンタックス処理器と、入力したトランスポートストリームとの間隔を一定に保ち入力ストリームを出力するストリーム出力器と、シンタックス処理器で処理されたデジタルデータをメモリへ出力するメインメモリ出力器と、上記ストリーム入力器、シンタックス処理器、ストリーム出力器、メインメモリ出力器へのデータの転送を調停する調停器と、入力したトランスポートストリームを格納するストリームバッファと、各処理器へのデータの転送を制御するデータ転送制御器と、上記パケット選択器、2つ以上のシンタックス処理器、ストリーム出力器、メインメモリ出力器、調停器、データ転送制御器の制御を行う制御器と、制御器が行う命令コード列及び制御器で処理した内容を記憶する制御器用記憶器を備えたものである。
【0018】
請求項2記載のパケットデータ処理装置の発明は、MPEGシステムに用いられる、連続するトランスポートストリームデータを複数のポートから同時に入力した後、入力したトランスポートストリームから所望のトランスポートパケットデータを抽出し、選択したトランスポートパケットデータを所定のデータに加工、抽出する2つ以上のシンタックス処理を同時に行い、入力したトランスポートストリームとの間隔を一定に保ちつつ入力ストリームを出力し、シンタックス処理を行ったデジタルデータをメモリへ出力する一連のパケット処理をパイプラインで制御することを特徴としたものである。
【0019】
請求項3記載のパケットデータ処理装置の発明は、前記請求項1記載の制御器が、制御器用記録器にアドレッシングした命令により、特定の命令列を順次、処理することを特徴とするものである。
【0020】
請求項4記載のパケットデータ処理装置の発明は、前記請求項1記載の制御器が、2つ以上のスレッドで構成され、前記スレッドは特定サイクル毎に順次切替わることを特徴とするものである。
【0021】
請求項5記載のパケットデータ処理装置の発明は、前記請求項1記載の制御器が、2つ以上のスレッド間で情報を共有し、当共有情報を元に各スレッドを動作させることを特徴とするものである。
【0022】
請求項6記載のパケットデータ処理装置の発明は、前記請求項2記載の制御器によるソフトウェア制御は、受信したトランスポートストリームパケットに共通した処理を1つのタスクで制御し、受信したトランスポートストリームパケットに応じて、処理内容が決定される処理をもう一つのタスクで制御することを特徴とするものである。
【0023】
請求項7記載のパケットデータ処理装置の発明は、前記請求項2記載の制御器によるソフトウェア制御は、パケットデータ処理で順次行われるパケットデータ選択処理、放送暗号の復号を行うシンタックス処理、選択したパケットデータのデータ解析を行うシンタックス処理、メインメモリに出力するメインメモリ出力処理の一連の処理に対し、パケットデータ処理装置に1つ前に格納されたパケットのパケットデータ選択処理と、放送暗号の復号処理を1段目の処理とし、2つ前に格納されたパケットのデータ解析を行うシンタックス処理を2段目の処理とし、3つ前に格納されたパケットのメインメモリへのメインメモリ出力処理を3段目の処理として、3段パイプライン処理を行うことで処理性能を向上させることを特徴とするものである。
【0024】
請求項8記載のパケットデータ処理装置の発明は、前記請求項2記載の制御器によるソフトウェア制御では、処理対象中のパケット数をカウントし、該当パケット数のカウントと、前記請求項1記載の複数のシンタックス処理器とメインメモリ出力器の処理の状況に応じて、次の処理内容を決定することを特徴とするものである。
【0025】
請求項9記載のパケットデータ処理装置の発明は、前記請求項8記載のパケットカウントによるパケットデータ処理は、パケットの入力が行われない場合に、パケットデータ処理装置内で処理途中のデータを処理途中であることを判断し、一部パイプラインを変更し、処理途中のパケット処理を行うことを特徴とするものである。
【0026】
請求項10記載のパケットデータ受信装置の発明は、前記請求項2記載の制御器によるソフトウェア制御は、処理対象中の複数のパケットのシンタックス処理とメインメモリ出力処理の処理演算量の大小に応じて、処理演算量の大きい処理中に処理演算量の小さい処理を同時に行うことで、全体の処理性能を向上させることを特徴とするものである。
【0027】
【発明の実施の形態】
以下に、本発明をその実施の形態を示す図面に基づいて説明する。
【0028】
(実施の形態1)
本発明の実施の形態1におけるパケットデータ処理装置の構成を図1に示す。
【0029】
図1において、パケットデータ処理装置TSDは、複数のトランスポートストリームパケットないしはプログラムストリームパケットTSI1〜TSINを受信するストリーム入力器100と、各処理器からのデータ入出力要求を調停する調停器110と、調停器110で調停した処理のデータを数バイト単位でストリームバッファ130へ書きこみ、もしくはストリームバッファ130からの読出しを行うデータ転送制御器120と、受信したストリームデータを格納するストリームバッファ130と、トランスポートストリームパケットをストリームパケット130に格納した後、格納したパケットが処理対象のパケットを選択するパケット選択器160と、パケット選択器160で選択されたパケットをストリームデータに応じて、必要な場合に加工するシンタックス処理A180と、シンタックス処理Aで加工したストリームデータから内部デジタルデータのフィルタリングを行い必要データのみを抽出するシンタックス処理器B190と、シンタックス処理器B190で選別されたデジタルデータをメインメモリ220へ出力するメインメモリ210と、受信したストリームデータの受信間隔を保ち、一定間隔で高速デジタル出力ポートへ出力するストリーム出力器200と、前記パケット選択器160と、シンタックス処理器A180と、シンタックス処理器B190と、ストリーム出力器200と、メインメモリ出力器210の起動を管理し、パケットデータ処理装置TSDの処理を一括制御する制御器140と、制御器140の命令列のバイナリデータや、制御器140で処理した内容を記憶する読み書き可能なパイプライン処理用記憶器150とを備えている。
【0030】
またパケットデータ処理装置TSDは各処理器の処理内容を決定するTD制御器230により、動作する。
【0031】
以上のような本発明のパケットデータ処理装置TSDの処理をストリームデータの流れに即して図1を用いて説明する。
【0032】
入力する複数トランスポートストリームパケットTS_1〜TS_Nはストリーム入力器105に入力される。ストリーム入力器105では、入力したトランスポートストリームパケットの同期信号(パケットスタート信号)を検出し、データをストリームバッファに格納するためのリクエストTSI1〜TSINを調停器110に出力する。このリクエストTSI1〜TSINは入力ポートに対応してそれぞれの入力に対して、独立に調停器110に出力する。
【0033】
調停器110では、上記で発生した複数リクエストに対し、調停を行い、獲得したリクエストに対応するデータをデータ転送制御器120に転送し、ストリームバッファ130に格納する。なお調停器110における調停処理は後述するシンタックス処理器A180、シンタックス処理器B190、ストリーム出力器200、メインメモリ出力器210からのデータ転送リクエストを統括して管理し、調停を行う。
【0034】
ストリームバッファ130に蓄えられたパケットデータは、次にパケットデータ処理装置TSDでの処理対象パケットかを判定する。処理対象パケットの判定には、トランスポートストリームパケット中のパケット識別子(以後PIDと記す)で識別する。受信したトランスポートストリームパケット内のPIDと、TD制御器230により設定されている処理対象用PIDとが一致した場合は、そのパケットを取得し、以後同様にTD制御器230から設定された処理に基づいて以後の処理を開始する。
【0035】
上記で処理対象パケットと判定したパケットに対し、送信側で暗号化されている場合には、以後のデータ解析を行うことが不可能である。その場合には、シンタックス処理器A180で復号処理を行う。パケットデータ処理装置TSDにおいて、受信したパケットが暗号化が施されているかの判断は、受信したトランスポートストリームパケット内のTSC(Transport Scramble Control)で判断する。受信したトランスポートストリームパケットに暗号化が施されている場合、シンタックス処理器A180はストリームバッファからの暗号パケットデータの読出しリクエストを調停器110に発行する。調停器110は他の処理器のリクエストとの調停後、このシンタックス処理器A180の読出しリクエストを獲得すると、読出しリクエストに対するデータ転送指示をデータ転送制御器120に発行する。データ転送制御器120は該当復号化データが格納されてあるアドレスからデータを読出し、SBIの径路にてシンタックス処理器A180に入力される。シンタックス処理器A180では転送単位毎にTD制御器230で設定される復号鍵を用いて復号処理を行う。この復号化データは、SAOに径路にて、読出し時と同様に書き込み要求リクエスト信号を調停器110に発行し、調停器110でのリクエスト獲得後、データ転送制御器120を経由してストリームバッファ130に再格納する。
【0036】
上記において復号化されたパケットデータは次にシンタックス処理器B190にてデータ部分の抽出を行う。デジタル放送システムにおいては、映像音声データや、番組プログラム構成を示す情報や個人情報や送信側で暗号化されたデータを復号するための鍵情報等を含んだPSI(Program Service Information)を多重して送信している。このシンタックス処理器B190では、これら多重化したデータのうち、本トランスポートストリームをデコードするのに必要なデータのみを抽出する。
【0037】
シンタックス処理器B190を起動すると、前述のシンタックス処理A180起動時同様に、ストリームバッファ130に格納した復号化データの読出しリクエストを調停器110に発行する。調停器110は他の処理器のリクエストとの調停の後、このシンタックス処理器B180のリクエストを獲得すると、読出しリクエストに対するデータ転送指示をデータ転送制御器120に発行する。データ転送制御器120は該当復号化データが格納されてあるアドレスからデータを読出し、SBIの径路にてシンタックス処理器Bに入力される。シンタックス処理器B190では転送単位毎にTD制御器230で設定される比較データ列パターンと一致するかのマッチング処理を行う。一致した場合、次の比較フィールドまでのデータ長のデータを抽出する。一致しなかった場合は、次の比較フィールドまでのデータは破棄する。こうした処理をトランスポート中で一回以上行い、抽出されたデータに対して、ストリームバッファへの書き込み要求リクエスト信号を調停器110に発行し、調停器110でのリクエスト獲得後、データ転送制御器120を経由してストリームバッファ130に再格納する。
【0038】
次に上記シンタックス処理器B190までの一連の処理において抽出・加工したストリームデータをメインメモリ出力器210より出力する。上記所定の処理後、メインメモリ出力器210からで出力すべきデータはストリームバッファ130に出力するデータ形式として格納されている。メインメモリへ出力すべきストリームデータがストリームバッファ130に格納されると、メインメモリ出力器210が起動する。メインメモリ出力器210は調停器110に対し、メインメモリ出力器の読出し要求を発行する。調停器110は他の処理器からの要求との調停を行い、この読み出し要求を獲得し、データ転送制御器120にデータ転送命令を発行する。データ転送制御器120は、ストリーム出力器210で読み出されるデータの格納されたメモリアドレスをデコードし、ストリームバッファから読出しを行う。この読み出しデータはメインメモリ出力器210に入力され、メインメモリの所定のアドレスに書き込むためのデータ転送命令とメインメモリアドレスを出力し、メインメモリに格納される。このメインメモリに格納したデータは、TD制御器や後段のAVデコーダで処理で使用する。
【0039】
こうしたメインメモリに格納するまでの一連の処理と並行して、ストリームバッファ130に格納されたデータは、ストリーム出力器200を経由して出力する。ストリームバッファ130からストリーム出力器に出力する処理について図2を用いて説明する。
【0040】
図2において、入力器105、ストリーム出力器200、ストリームバッファ130、制御器140およびストリーム径路の信号TSI1〜TSIN,RDI,RDO,HOは図1の説明したものと同一である。ストリーム出力器200はタイマ2001、データ出力部2003で構成され、データ出力部はタイマ2001の値と、データ制御部2003で設定可能なオフセット値2002を入力に持つ。図中のトランスポートストリームTS_A,TS_BはTS_Aが先に入力する1パケット目のトランスポートストリーム、TS_Bが2パケット目のトランスポートストリームとする。当トランスポートストリームの本開発トランスポートデコーダTSDと入出力と時間のタイミングを図3に示す。
【0041】
トランスポートストリームTS_Aが入力部105に入力されると、入力部105は、TS_Aが入力完了した時間のタイマ値を読み、到着タイムスタンプ情報ATSとして、ストリームバッファ130格納時に付加する。このTS_Aの到着時間をATS_AとするとATS_AがTS_Aの先頭に格納される。このTS_Aが本開発のパケットデータ処理装置に到着してから、出力するまでの時間をオフセット期間として制御器140で設定されたオフセット値を予め設定しておく。上記のように、該当トランスポートストリームパケットTS_Aに対し所定の処理を施された後、データ出力部を起動すると、データ出力部は、データ出力のためのデータ読出し要求を調停器110に対し発行する。調停器110は他の処理器からの要求との調停を行い、この読み出し要求を獲得し、データ転送制御器120にデータ転送命令を発行する。データ転送制御器120は、ストリーム出力器210で読み出されるデータの格納されたメモリアドレスをデコードし、ストリームバッファから読出しを行う。このデータはストリームデータ出力器200内のデータ出力部2003に入力される。データ出力部2003はこのデータの到着タイムスタンプ情報を受信すると制御器140から入力されたオフセット値2002との加算処理を行う。この加算値が常時タイマ2001で動作中の現在時刻になると、以降のデータ部分の読出し要求を同様に発行し、入力されたデータをストリーム出力部から逐次出力される。以降のトランスポートストリームパケットTS_Bに対しても同様な処理が行われ、図3に示すトランスポートストリームパケットの入力と一定間隔を保ちつつ、ストリーム出力を行う。一定間隔を保つことは、入力したMPEG2−TS等でエンコードされたビットストリームのビットレートを変えることなく、デコードするために必要であり、この処理を前述のパケットデータ処理と同時処理で行う。このストリーム出力器200からの出力のデータは、TSプロトコル形式の処理を伝送するIEEE1394規格準拠のAV機器への接続等に使用可能である。
【0042】
以上が、本発明のパケットデータ処理装置TSDの各部の一連のストリーム処理の流れである。各処理器は起動され所定のトランスポートストリームパケットもしくは、処理データが入力されて所定の処理を行うものであり、各部全体の起動制御を司るのが、本発明の主眼とする制御器140である。例えば、制御器140を介さず、順次上記処理順で行う場合には、処理が一意ではあるが、複数入力とした場合には、ストリームバッファ内のどのデータを参照すべきか等の処理以外の部分まで各部でもつ必要があり、回路規模の増大につながる。また処理器においては、1つの処理でなくパケットの種類に応じた処理が大半であり、その切替等を順次行っていたのでは、処理開始までのオーバーヘッドが大きく処理効率が悪化する。その為、こうした処理は、制御器140で一連管理する。制御器140の制御において、各処理器の制御方法による部分について述べる。
【0043】
初めに、制御器140の構成について図1を用いて説明する。図1において、パケットデータ処理装置TSD内に、制御器140の所定演算命令列を格納する制御器用記憶器150を備える。その処理命令列が制御器用記憶器150に格納されると、そのデータが制御器140起動時に命令が制御器140にUDIを介してロードされる。制御器140は以後ロードした命令列に応じた処理を順次行う機構を持つ。またこの制御器用記憶器150は制御器140で処理された演算結果を一部格納及び格納データを逐次読み出す演算記憶器として使用する。この場合は、制御器140の格納命令演算の処理時にUDLを介して、制御用記録器の所定のアドレスに格納、もしくは所定のアドレスから読出しが行われる。さらに、制御器140の内部には、制御器用記録器150以外に小量のレジスタ(図1では記載せず)を持つ構成とする。このレジスタは、逐次制御器用記録器150にアクセスせず、制御器内部で処理を完結するための高速化のために用いられる。また、制御器140は他の処理器同様、ストリームバッファ130に対し、データ抽出、格納可能なデータバスを複数保持している。このデータバス転送について説明する。
【0044】
ストリームバッファ130に格納されたデータから所定のデータを抽出する場合、制御器140は調停器110にデータ読出し要求CDWRを発行する。調停器110は他の処理器からの要求との調停を行い、この読み出し要求を獲得し、データ転送制御器120にデータ転送命令を発行する。データ転送制御器120は、制御器140で読み出されるデータの格納されたメモリアドレスをデコードし、ストリームバッファから読出しを行う。このデータはCDRを介して制御器140のレジスタに格納される。制御器でデータの加工を行ったデータをストリームバッファ130に記述する際も読出し同様に、調停器110に書き込み要求CDWRを発行する。調停器110は他の処理器からの要求との調停を行い、この書き込み要求を獲得し、データ転送制御器120にデータ転送命令を発行する。データ転送制御器120は、制御器140で書きこまれるデータの格納すべきメモリアドレスをデコードし、ストリームバッファへの書き込みを行う。このデータはCDWを介して制御器140のレジスタからデータ転送制御器120へ入力されストリームバッファに格納される。
【0045】
本発明の制御器140は2つ以上の処理タスクを切替えて制御を行う、マルチスレッド方式であり、前述の各処理を各スレッドに割り当てて並列処理を行う。このマルチスレットの機構について図4を用いて説明する。
【0046】
図4において、本発明による制御器140の定常時の動作を示す。制御器140は2つ以上のスレッドを一定サイクル毎(図面では4サイクル)に切替え、割当てたスレッドで該当スレッドの処理が行われるマルチスレッドプロセッサで動作する。このマルチスレッドプロセッサでは、各スレッドの処理は独立して動作することができるメリットがあり、同時処理に適している。
【0047】
また制御器140は、ストリーム加工、抽出レジスタに加え、スレッド間通信レジスタ(図中では記載せず)を備える。このスレッド間通信レジスタは、上記マルチスレッド処理において、スレッド1、スレッド2のどちらのスレッドからもアクセス可能な通信ビットを複数備えており、この通信ビットにより、スレッド1、スレッド2の両スレッドから本発明のパケットデータ処理装置TSD全体の制御を監視する場合に使用できる。
【0048】
以上のような構成を持つ制御器140により、本発明のパケットデータ処理の制御を行う。本発明のパケットデータ処理装置TSDの処理割当について図5を用いて説明する。図5においても、3つ以上のスレッド割当も可能であるが、スレッドを追加することで、制御器140の回路は増大するため、敢えてマルチスレッドの中で、スレッド切替の少ない2スレッドの場合においてのみ説明することとする。
【0049】
図5において、左列は、割当スレッド番号を示す。中列は、図1にある各処理器の名称で表し、右列は、該当するパケットの処理順序を示す。本発明では、入力器105からトランスポートストリームパケットを受信し、パケット選択器160で処理パケットの抽出を行い、スクランブルストリームに関しては、シンタックス処理器Aによりスクランブル処理を施す部分をスッド1に割当て、デスクランブルデータをストリーム出力器200から高速出力しながら、データ抽出や編成処理をシンタックス処理器B190で行い、最終的にメインメモリ出力器210でメインメモリに出力するまでをスレッド1で行う。該当ストリームを逐次処理する場合には、図5に処理した処理手順で行い、また順序1から行う場合も可能であるが、この場合には、各処理器が終了してから次の処理器が動くため、1ストリームパケットに要する処理時間は、パケット選択器時間(A)、シンタックス処理器A処理時間(B)、ストリーム出力器制御時間(C)+シンタックス処理器B処理時間(D)+メインメモリ出力時間(E)の単純和となり、効率が悪い。また、該当パケット処理中にも、入力部105からは、逐次複数ポートからストリーム入力が行われるので、上記逐次処理では、他系統からの受信用のストリームバッファ130の容量も大規模に用意する必要がある。本発明は、これら課題を解決するための制御方法の発明であり、処理効率を短縮する制御方法の具体的内容について、図1、図6、図7、図10を用いて説明する。
【0050】
図6、図7において、本開発のパケットデータ処理装置の制御部140で制御する処理全体フローを示す。図6は上記マルチスレッドでのパケットデータ処理のスレッド1、図7はスレッド2の制御方法を示している。
【0051】
図6において、初めに、ステップ100で制御器140を起動する。制御器140が起動すると、スレッド1は制御器用記憶器150に記述され、ロードした命令コードに即した処理を1クロックに1命令行う。制御器140を起動すると、ステップ200に進む。
【0052】
ステップ200では、本発明のパケットデータをマルチスレッドで行うスケジュールを設定する。スケジュールは使用スレッドの数、1スレッドの割当時間を設定することで、マルチスレッドで本発明のパケットデータ処理の処理サイクルを決定する。ここでは、スレッド数を2、スレッドの割合は、スレッド1、スレッド2を同等の4クロック毎割り当てる設定を行う。また、本パケットデータ処理を行う際に、制御器140での演算結果を1次記憶するための領域を初期化する。この領域は、制御器用記憶器の処理命令コードを格納部分以外が演算記憶領域とし、この部分を初期化する。この初期化後、ステップ300に進む。
【0053】
ステップ300では、マルチスレッド動作を行うために、スレッド2を起動する。本発明の制御器は、スレッド1がメインプロセッサの役目を果たし、このメインプロセッサのみが動作する場合は、マルチスレッドの切替を行わず、シングルスレッドで処理を行うことができる。本発明では、スレーブのプロセッサであるスレッド2を起動することで、複数制御で処理を行う。以上までが本発明のパケットデータ処理装置TSDを制御器で処理するための初期設定であり、以後説明するステップ400以降の処理は毎パケット到着毎に行われるループ処理である。そして処理はステップ400に進む。
【0054】
ステップ400では、ストリームバッファ130へのパケットデータ格納処理を行う。上記ステップ300まででパケット受信状態であり、パケットデータがストリームバッファへ部分的に格納途中である場合や、パケットデータのビットレートや入力データの構成上、まだパケットデータが入力されていない場合は、格納終了まで、このステップ400でウェイト状態に入る。パケットデータが格納終了しているパケットデータが存在する場合は、その格納された順番の最も前に到着したパケットデータのパケットデータの格納してあるセル番号をデータ転送制御器120から読出し、該当パケットの位置を判断する。そして処理はステップ500に進む。
【0055】
ステップ500では、前記ステップ400において判断したパケットデータが以後の処理対象パケットデータであるかを判断するパケット選択処理を行う。この判断は通常、パケットデータの種類を示す、パケットID(以後PIDと記す)により判断する。この判断を行うために、制御器140はパケットデータのPIDのあるデータ部分を抜き取るために、ストリームバッファからの読出し要求を調停器130に要求し、データを取得し、所定のレジスタに格納する。このレジスタ値をパケット選択器内部の参照レジスタ(図示せず)にロードし、パケット選択器を起動する。このパケット選択器160は、このパケット選択器160には、処理対象となるパケットデータのPIDと各PIDのデータをどう処理するかの処理情報が予めTD制御器230から設定されており、この設定PIDデータ列と上記参照レジスタ上のPID値を比較する。その結果をパケット選択器160の結果レジスタ(図示せず)に表示する。この結果は、比較して処理対象である(比較一致)場合と、処理対象でない(比較不一致)の2つの結果である。そして処理はステップ600に進む。
【0056】
ステップ600では、前記ステップ500においてパケット選択器16でのパケット選択器の結果、比較が一致した場合に、このパケットデータに対し、以後の処理内容情報を抽出する。この処理内容情報(以後PET:Packet Entry Tableと記す)には、シンタックス処理Aによるデスクランブル処理を行うか、シンタックス処理Bによるデータ抽出を行うか、メインメモリ出力を行うか、ストリーム出力を行うか等の以後の処理器での処理を行う情報が明記されている。制御器140では、この処理内容をパケット選択器160の内容レジスタからロードし、制御器用記憶器150内部のレジスタに記憶して、次のステップ700に進む。
【0057】
ステップ700では、シンタックス処理器Aを起動するかどうかを判定する。シンタックス処理器Aで行う処理は、主に放送パケットデータや蓄積パケットデータの著作権保護の目的で施されている暗号データ部分を復号し、以後のデータ解析が行えるデータ形式に変換するものをいう。前記ステップ600において抽出したPETにおいて、シンタックス処理Aを行う内容であり、かつ該当パケットが暗号が施されている場合に、このシンタックス処理Aを起動するパケットであると判断し、ステップ800に進む。またこのパケットのうち、上記PETでシンタックス処理器Aを起動しない、あるいは、該当パケットデータに暗号が施されていない場合には、不要にシンタックス処理器Aは起動せず、ステップ800をスキップし、ステップ900に進む。
【0058】
ステップ800では、シンタックス処理器Aで処理を行う場合のみのステップであり、ここでは、シンタックス処理器Aを制御する。TD制御器230により、シンタックス処理器Aを処理するのに必要な復号化キーが制御器用記憶器150に設定されており、制御器140は、この復号化キーをシンタックス処理器Aの復号キーレジスタ(図示せず)に設定する。設定が終了すると、次にシンタックス処理器Aに転送する暗合データの存在するデータのアドレスとサイズを設定する。アドレスとサイズ設定が終了するとシンタックス処理器Aを起動する。起動が開始するとシンタックス処理器Aは前述したストリーム径路で、設定サイズの暗号化データを受け取り、逐次復号処理を行っていく。制御器140はこのシンタックス処理Aの終了はここでは管理せず、別の処理を行うことで、並列処理化を行う。次に処理はステップ900へ進む。スレッド1で行うパケットデータに関する処理は以上で終了であり、以後の処理は、マルチスレッドで並列処理を行うための制御処理に関する。
【0059】
ステップ900では、このスレッド1で行われたパケットデータ処理を引き続きスレッド2で行うためのスレッド2の動作状態を判定する。スレッド間の引渡し制御は、図8に情報の受け渡しを行うための制御器用記憶器の割当の構成を示す。図10において、前記ステップ400から800までで行ったパケットデータ処理の結果および前記ステップ600で抽出した処理内容情報はアドレスAの領域に保存する。その後、スレッド2の動作が開始されており、アドレスBの中間データ領域のデータを更新可能な状態かを判定する。判定可能な場合は、アドレスAの内容をアドレスBの領域にコピーする。まだ更新が可能でない状態の場合は、中間データ領域が更新可能になるまで、ウェイトする。更新が終了した場合は、ステップ1000に進む。
【0060】
ステップ1000では、スレッド1でのパケットデータ処理が終了したことを通知する。通知する場合には制御器140内の通信レジスタにより通知する。図9に本開発のパケットデータ処理装置TSDの通信レジスタの使用方法を示す。各ビットの使用は各ステップで使用する場合に適宜説明を施す。このステップでは、ビット1のスレッド間通知ビットを使用する。前記ステップ900ではこのビット1が0であること、すなわちスレッド2が一つ前段階で処理していたパケットの情報をすでに受けとっており、スレッド1の方法は中間データ領域にコピーしてあるので、このビット1を1に変更、すなわち、スレッド1の情報通知が完了したことをスレッド2から判定できる状態にしておく。このようにすることで、スレッド2では、スレッド1の動作状況を監視することなく、このビット1のみでスレッド1の処理を以後続けて処理することが可能となる。この処理でパケットデータ処理でのスレッド1の役割は終了し、ステップ400に戻り、以下同様にパケットが格納されるたびに処理を行う。
【0061】
次に、前記までの処理で行われたパケットデータをスレッド2で処理する制御方法について、図1、図7、図10を用いて説明する。スレッド2では、スレッド1での処理が終了したパケット処理の行うが主な役割であるが、スレッド1で処理しているパケットの、2つ前までに到着しているパケットの処理を同時に行うことで、処理の高速化を図ることが本発明の特徴である。
【0062】
図9にスレッド2における制御フローを示す。スレッド2は、スレッド1が処理順序が一意であるのに対し、処理状態に応じて4つの処理に分かれる。ステップ2050では、各4つの部分のどの部分を起動するかの判定を行う。判定方法を図10に示す。図10において、楕円の項は、スレッド2での各処理分岐case1からcase4を示す。判断基準は、スレッド2で処理しているパケット数(以後パケットカウントと示す)と、通信レジスタのbit0すなわち、パケットの到着を待っている状態であるかどうかで判断する。分岐の線に記載された数字部分がパケットカウントを示し、パケットカウントのみでなくパケット到着待ちも判定条件にする場合は、括弧で記載する。図10において、各caseから別のcaseに進む場合があるが、この分岐処理も実際はステップ2050での分岐制御で行っているが、図を簡素化するためにそのまま記す。以後各分岐におけるcase処理について説明する。
【0063】
ステップ2050において、スレッド2で処理するパケットが無い(パケットカウント0)あるいは処理するパケットが1つまたは2つあるが現在パケットの到着が無い場合(パケットカウント1または2でbit0=0の場合)はcase1に進む。case1ではまずステップ2100において、スレッド1からの処理内容情報の受取処理を行う。処理内容情報の受取処理は、図8における、中間データ領域にあるデータをアドレスCあるいはアドレスDの空き領域にコピーする。そして処理はステップ2110に進む。
【0064】
ステップ2110では、上記ステップ2100でスレッド1からの処理情報を受け取ったことを通知する処理を行う。前述の図1における制御器140の通信レジスタのbit1を0にすることで、スレッド1の処理情報の受取が終了し、中間データを更新可能であることをスレッド1側に通知する。そして処理はステップ2120に進む。
【0065】
ステップ2120では、スレッド1のシンタックス処理器Aでの処理起動の終了判定のための処理を行う。この処理はスレッド1での行える処理だが、スレッド1でのシンタックス処理器Aを起動中、制御器140の制御はシンタックス処理Aの処理終了まで処理を行う必要がないため、前述のスレッド通信を前もって行っておき、スレッド通信終了後に処理終了判定を行った場合の方が、パケットデータ処理の効率が向上できる。スレッド1でシンタックス処理Aの起動が行っていたかはスレッド1からの処理内容情報に格納されており判断できる。シンタックス処理Aの処理が行われていない場合は、次のステップ2130をスキップする。シンタックス処理Aの処理が行われている場合には、ステップ2130に進む。
【0066】
ステップ2130では、スレッド1で行ったシンタックス処理Aの終了処理を行う。終了処理はシンタックス処理器Aの終了している場合には、シンタック処理器Aをリセットするとともに、制御器140の通信レジスタのbit2を0にすることで、終了処理を行うとともに、この処理を行うことで、スレッド1でパケットデータの復号時に再度起動することが可能な状態となる。終了処理が終わると次のステップ2140に進む。
【0067】
ステップ2140では、スレッド2でスレッド1からパケットを受け取ったことを示すためのパケットカウンタを1インクリメントする。このパケットカウンタは、スレッド2で同時に複数のパケット処理を行う場合の指標となり、動作手順も現在処理しているパケットカウンタの数でストリームバッファ130や、制御器用記憶器150内部のデータが更新できない等の弊害をなくすためのメモリ管理上の情報として使用する。パケットカウンタの更新が終了すると次のステップ2150に進む。
【0068】
ステップ2150では、ストリーム出力器によりストリーム出力を行うための制御を行う。ストリーム出力器は、このステップにくる段階で、シンタックス処理器Aにて、復号処理が行われているのでストリーム出力可能なデータ形式への変換は終了している。制御器140ではストリーム出力を行うパケットは出力用FIFO(図示せず)にセットすることで、ストリーム出力器がパケット到着から一定の遅延時間後に出力FIFOにセットした順にパケットを出力する。
【0069】
以上が1つの分岐処理case1の一連の処理である。この処理が終了すると再びステップ2050へ戻り処理判定を行う。
【0070】
ステップ2050において、case1の処理後に処理中のパケットが1つの場合(パケットカウント1)と、case3の処理後に処理中のパケットが2つの場合(パケットカウント2)のときには、case2の処理分岐の制御に進む。case2の処理はシンタックス処理器Bの処理起動までの処理を行う。まず初めに、ステップ2200に進む。
【0071】
ステップ2200では、該当するパケットデータの処理内容で応じたデータ解析を行う。データ解析には、AVデータ用パケットデータの場合は、トランスポートストリームパケットをそのまま出力、PES(Packetized Elementary Stream)ストリーム形式に変換、エレメンタリ−ストリームにまで変換して出力する場合等がある。この場合は、ストリームバッファ130内部のデータを解析し、該当データ内部でメインメモリに出力するデータの先頭のアドレスを記載してステップ2210に進む。また処理内容がPSIデータの場合は、パケットデータをシンタックス処理器Bに転送する設定を行い、ステップ2210に進む。
【0072】
ステップ2210では、シンタックス処理器Bの起動制御を行う。ここでは、初めに制御器140の通信レジスタのbit3を1にセットし、これからシンタックス処理器Bを使用することを通知する。これにより、他の処理スレッドでシンタックス処理器Bの使用状態が監視できるとともに、他で不正なシンタックス処理器Aへの制御を行うことを禁止することが可能となる。前記ステップ2200において、決定している処理内容形式がAVパケットの場合は、転送されるデータをそのままメインメモリに転送できるようにストリームバッファ130の出力バッファ領域に格納する設定を行う。処理形式がPSIデータの場合は、抽出するPSIパターンとマッチングする処理モードに設定し、シンタックス処理器Bを起動する。起動後は、シンタックス処理器Bが逐次パケットデータを受け取りフォーマットに応じた処理を行うため、その間に再度ステップ2050に戻り処理判定を行う。
【0073】
ステップ2050において、現在処理中のパケットが1つであるが到着するパケットが無い状態(パケットカウント1で到着パケットが存在なし)と、case1処理後に現在処理中のパケットが1である場合(パケットカウント1)と、case5処理後に現在処理中のパケットが2である場合(パケットカウント2)である場合は、case3の処理分岐の制御に進む。case3の処理はシンタック処理器Bの処理が終了した後の結果判定の処理を行う。まず初めに、ステップ2300に進む。
【0074】
ステップ2300では、シンタックス処理器Bで終了後の処理を行う。シンタックス処理Bが終了する場合の終了を待ち、終了後はシンタックス処理器Bをリセットし、制御器140の通信レジスタのbit3を0にセットする。これにより、case2の起動時にシンタックス処理器Bが使用可能な状態にする。その後は再度ステップ2050に戻り処理判定を行う。
【0075】
ステップ2050において、case2処理後に現在処理中のパケット数が2である場合(パケットカウント2)と、case1処理後に現在処理中のパケット数が1である場合(パケットカウント1)の場合には、case4の分岐処理に進む。
【0076】
ステップ2400では、メインメモリ出力器210の起動までの処理を行う。このステップ2400に到着する場合には、前記ステップ2300までの処理を終了した、メインメモリ出力データに成形されたデータが必ずストリームバッファ130の1つの領域に格納されている。初めに、制御器140では、ストリームバッファ130に格納された成形データの先頭アドレスから、メインメモリへの出力へ転送する起動命令をメインメモリ出力器210に対して行う。
メインメモリ出力器210はその起動命令を受けると、格納データの先頭アドレスからのデータを逐次、TD2制御器230で設定されたメインメモリのアドレスに格納する。その間、制御器140はメインメモリ起動後は、再度ステップ2050に戻り処理判定を行う。
【0077】
ステップ2050において、現在処理中のパケットが2の場合で、現在パケットの到着も行われている場合(パケットカウント2でbit0=1の場合)、もしくは、case1処理後に現在処理対象のパケットが3の場合(パケットカウント3の場合)、もしくは、case4処理後に現在処理対象のパケットが1の場合(パケットカウント1の場合)には、case5の分岐処理に進む。
【0078】
ステップ2500ではメインメモリ出力器210が終了後の処理を行う。前記ステップ2400で起動したメインメモリ出力器210がメインメモリへの所定バイト数の成形データ転送が終了することを監視し、終了したら、メインメモリ出力器Bの転送命令をクリアし、制御器140の通信レジスタのbit4を0にセットする。これにより、case4の起動時にメインメモリ出力器Aが使用可能な状態にする。その後は再度ステップ2050に戻り処理判定を行う。
【0079】
以上のように、スレッド2での処理はスレッド1からのパケットデータ入力状況や、スレッド2で起動するシンタックス処理器A、メインメモリ処理器の所持時間に応じてパケット処理順序を切替る制御方法をとる。以上のように処理した場合のパケットデータの流れと時間の関係を図11に示す。
【0080】
図11において、上段のTIN1〜TIN4は図1の入力器105への入力が4本同時に入力された場合を示している。次の段は図1における制御器140で制御される処理器の動作しているタイミングを示しており、上からパケット選択器、シンタックス処理器A、シンタックス処理器B、メインメモリ出力器、ストリーム出力器の起動を表す。次の段は、図9における通信ビット1のスレッドの通知のタイミングを示す。次の段は、図7のフローで示している、パケットカウントのパケットデータの入力と処理状態に応じたカウント数を示している。これまで説明した実施の形態の通り、パケット格納の管理とパケット選択器とシンタックス処理器Aはスレッド1で制御し、シンタックス処理器Bとメインメモリ出力器とストリーム出力器はスレッド2で制御しており、スレッドの通知を行うことで図11にあるように3段のパイプラインで処理を実現できる。図11において、4本のストリームが35Mbpsのトランスポートストリームパケットの入力とし、200MHzのクロックで本発明のパケットデータ処理装置が動作するとすると、図11のPtAで示す1パケットの処理時間は、約10us程度で処理が可能となる。比較のために同様の構成を持つパケットデータ処理装置を用いて、本発明の制御を用いない場合の処理図を図12に示す。この場合には図11のような一連の処理が終わってから次のパケットの処理を開始するため、パイプラインの間隔PtBが図11の場合のPtAに比べ、3倍となり、上記と同等の例ではPTbは約30usの期間を要する。これは、同一規模のバッファで構成すると処理できる処理性能は1/3に劣化する。別の考えで、同一処理性能のパケットデータ処理装置を構成しようとした場合には、1/3の処理の劣化を吸収するために3倍のバッファを用意しなければならず、回路規模が増大につながる。すなわち図11で構成する本発明のパケットデータ処理方法では、複数のパケットを同時に処理することが可能になるとともに、最短時間で処理を行うことで、ストリームバッファに格納しておく時間を短くすることで、非常に小規模のバッファでパケットデータ処理を実現できる。
【0081】
【発明の効果】
ディジタル放送受信器等で用いられる、パケットデータ処理装置において、デジタルコンテンツに対して種々な処理を行う際、複数のストリームを同時に処理すること場合に、一つのパケットデータ処理装置でパケットを格納することで、従来例のような回路が複数ストリーム分必要となる問題を解決し、回路規模が激増するという課題が解決できる。
【0082】
また、従来例のように、処理を一定とするパイプラインの場合は、待ち時間が異なるにも関わらず、順次前段の処理の終了毎に次の処理に移る方法に比べ、各処理器の処理時間に応じて、次の処理内容を判断する制御方法により最もパフォーマンスの高い処理性能のパケットデータ処理装置を実現できる。
【図面の簡単な説明】
【図1】本発明の実施の形態1におけるパケットデータ処理装置の構成図
【図2】図1におけるストリーム処理器の詳細な処理図
【図3】同2におけるパケットデータ入出力と時間の相関図
【図4】図1における制御器140の通常状態のスレッドの切替タイミング図
【図5】本発明の実施の形態1における制御器140での各スレッドにおける制御対象処理器を割当図
【図6】本発明の実施の形態1における制御器140でのスレッド1の制御フロー図
【図7】本発明の実施の形態1における制御器140でのスレッド2の制御フロー図
【図8】本発明の実施の形態1における制御器140におけるスレッド間で通知する情報の通信方法を示す図
【図9】本発明の実施の形態1における制御器140における通信レジスタの情報を示す図
【図10】本発明の実施の形態1における制御器140でのスレッド2の処理状態遷移図
【図11】本発明の実施の形態1におけるパケットデータ処理装置の処理の流れを示す図
【図12】本発明で動的制御を行わない場合の処理の流れを示す図
【図13】従来のパケット処理装置の構成図
【図14】従来のパケット処理装置での処理データと時間の相関図
【符号の説明】
105 入力部
110 調停器
120 データ転送制御部
130 ストリームバッファ
140 制御器
150 制御器用記憶器
160 パケット選択器
180 シンタックス処理器A
190 シンタックス処理器B
200 ストリーム出力器
210 メインメモリ出力器
220 メインメモリ
230 TD制御器
2001 タイマ
2002 加算オフセット値
2003 データ出力部
2010 データ転送バス
10 入力器
20 パケット選択器
30 シンタックス処理器A
40 シンタックス処理器B
50 メインメモリ出力器
60 ストリーム出力器
70 メインメモリ
80 TD2制御器
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a transport stream decoder that receives a plurality of transport streams at bit rates as input, performs desired processing on the input plurality of transport streams, and generates a new transport stream. More specifically, the present invention identifies in real time whether or not packet data constituting a sequentially input transport stream of a different format is to be processed, and if the packet data is to be processed, a predetermined The present invention relates to a transport stream decoder that dynamically controls the processing according to the operation status of each processing.
[0002]
[Prior art]
Conventionally, requests for performing various processes and editing on digital contents and making secondary use of them are possible only for content production or distribution sources such as broadcasting stations. However, due to recent advances in digital technology, the quality and quantity of digital distribution systems as infrastructure have been enhanced every day. In other words, the enhancement of the transport stream that provides digital contents, the enhancement of the performance of hardware required for processing by the user, and the reduction of the cost for the transport stream have resulted in the transport stream being conventionally implemented only by facilities such as broadcasting stations. Environmental conditions for users to enjoy the editing of packet data and the editing of packet data constituting a transport stream are being prepared.
[0003]
However, in order for the user to perform desired processing for each digital content, real-time selection is performed for each of the packet data constituting the sequentially input transport stream, and further, for the selected packet data. Means are required to permit access of the processing means to perform corresponding processing or processing.
[0004]
A transport decoder that processes individual digital packet data with respect to selected packet data is known (for example, see Patent Literature 1 and Patent Literature 2).
[0005]
Hereinafter, a conventional transport decoder will be described with reference to FIG.
[0006]
In a conventional transport decoder (TSD), a transport stream (TSIN) demodulated by a tuner is input to an input device 10. If the input TSIN is a regular transport stream packet with synchronization, the corresponding TSIN is output to the packet selector 20.
[0007]
The packet selector 20 selects digital content packets necessary for the user to view the broadcast from the input packets. When sorting packets, the sorting is performed by comparing PIDs (Packet IDs), which are identifiers indicating the types of programs of the transport stream packets. In the digital broadcast receiver, information for discriminating a packet required for viewing on the user side is registered in advance in a recorder (not shown) in the packet selector by the TD controller 80.
[0008]
The transport stream packet (PIDO) extracted by the former-stage packet selection performs a decryption process on an encrypted stream that is performed for protecting digital contents. Next, the encrypted packet (PIDO) is input to the syntax processor A, and the syntax processor A performs a decryption process. The syntax processor A performs decryption processing on the encrypted transport stream packet (PIDO) based on the key information obtained according to the user, and outputs decrypted packet data (SPAO). . In the digital broadcast receiver, key information for decryption is also notified in advance by the TD controller 20 at the start of decryption processing.
[0009]
The transport stream packet (SPAO) decoded by the preceding decoding process is input to the syntax processing unit B40. The syntax processor B40 analyzes the SPAO and the data portion corresponding to the packet. More specifically, the processing analysis corresponds to processing for forming a transport stream packet format into a PES packet format.
[0010]
The data (SPBO) processed by the preceding syntax processor 40 is input to the main memory output unit 50. The main memory output unit 50 manages an address for outputting the input SPBO to the external main memory 70, buffers the SPBO in a transfer unit of the external main memory 70, and outputs the SPBO to a predetermined address. The digital data stored in the main memory 70 is read out again from the main memory 70 when there is a data request from a subsequent AV decoder (not shown), and outputs AV data (AVO).
[0011]
In parallel with the syntax processor 40, the SPAO is input to the stream output unit 60, and outputs the SPAO from an output port HSO of another system. This packet data HSO can be used as an input to a digital device for recording digital data.
[0012]
The above is the processing of the conventional transport decoder (TSD). FIG. 14 shows the data input / output timing of each processor in these processes. The pipeline processing is performed in the processing time (TD1, TD2, TD3, TD4, TD5) of each processor shown in FIG. As an example, in the case of a conventional transport decoder in which processing with a clock of 100 MHz has a processing performance of 60 Mbps, a transport packet in units of 188 bytes input at 60 Mbps takes a time from when a packet is input to when it is output. Pt is processed in about 30 us.
[0013]
[Patent Document 1]
JP-A-9-247237
[Patent Document 2]
JP-A-2000-151538
[0014]
[Problems to be solved by the invention]
When one transport stream is handled as in the above-described conventional technique, the above-described conventional example is suitable. However, when performing various processes on digital content, it is necessary to process a plurality of streams simultaneously. In such a case, when the above-described conventional apparatus is used, the circuit is required for a plurality of streams, and there is a problem that the circuit scale is drastically increased.
[0015]
In addition, some digital content processing involves a small amount of processing for stream analysis, such as extraction of AV data, and extraction of internal data during stream analysis, such as extraction of Program Service Information (PSI) packets. In some cases, the amount of processing that requires fine pattern selection is large, and the amount of calculation usually differs depending on the type of packet. In such a case, in the case of a pipeline in which the processing is constant as in the above-described conventional example, the processing time is different depending on the contents of the packet data, but the end of the processing in the preceding stage is sequentially waited. As a result, there is a problem that the processing performance is reduced.
[0016]
The present invention has been made in consideration of the above-described conventional problems, and a method of temporarily storing a plurality of streams in a stream buffer once and switching a processing procedure by software in accordance with processing contents of a received packet, thereby realizing a circuit. The purpose is to increase the processing performance without increasing the scale drastically.
[0017]
[Means for Solving the Problems]
In order to solve the above-mentioned problem, an invention of a packet data processing apparatus according to claim 1 is a stream input device for use in an MPEG system which receives continuous transport stream data from a plurality of ports at the same time, and an input transport stream. , A packet selector for extracting desired transport packet data from the data, two or more syntax processors for processing and extracting the selected transport packet data into predetermined data, and a constant interval between input transport streams. A stream output device that outputs an input stream while keeping the data, a main memory output device that outputs digital data processed by the syntax processor to a memory, and the stream input device, syntax processor, stream output device, and main memory output. Arbitration of data transfer to the instrument Arbitrator, a stream buffer for storing an input transport stream, a data transfer controller for controlling data transfer to each processor, the packet selector, two or more syntax processors, and a stream output. A controller for controlling the device, a main memory output device, an arbitrator, and a data transfer controller; and a controller storage device for storing an instruction code sequence executed by the controller and contents processed by the controller.
[0018]
According to a second aspect of the present invention, after successive transport stream data used in an MPEG system is simultaneously input from a plurality of ports, desired transport packet data is extracted from the input transport stream. And simultaneously performing two or more syntax processes for processing and extracting the selected transport packet data into predetermined data, outputting an input stream while keeping a constant interval with the input transport stream, and performing syntax processing. A series of packet processing for outputting the performed digital data to the memory is controlled by a pipeline.
[0019]
According to a third aspect of the present invention, there is provided a packet data processing device, wherein the controller according to the first aspect sequentially processes a specific instruction sequence in accordance with an instruction addressed to a controller recorder. .
[0020]
According to a fourth aspect of the present invention, there is provided a packet data processing apparatus according to the first aspect, wherein the controller according to the first aspect includes two or more threads, and the threads are sequentially switched every specific cycle. .
[0021]
According to a fifth aspect of the present invention, the controller according to the first aspect shares information between two or more threads and operates each thread based on the shared information. Is what you do.
[0022]
According to a sixth aspect of the present invention, in the software control by the controller according to the second aspect, the processing common to the received transport stream packets is controlled by one task, and the received transport stream packets are controlled by one task. In this case, another task is used to control the processing whose processing content is determined in accordance with the task.
[0023]
According to a seventh aspect of the present invention, in the software control by the controller according to the second aspect, the packet data selection processing sequentially performed in the packet data processing, the syntax processing for decrypting the broadcast encryption, and the selected processing are performed. For a series of processing of syntax processing for analyzing data of packet data and main memory output processing for outputting to a main memory, packet data selection processing of a packet stored immediately before in a packet data processing device and broadcast encryption The decoding process is the first stage process, the syntax process for analyzing the data of the packet stored two steps before is the second stage process, and the main memory output of the packet stored three times before to the main memory. The processing performance is improved by performing a three-stage pipeline process as a third-stage process. That.
[0024]
According to an eighth aspect of the present invention, in the software control by the controller according to the second aspect, the number of packets being processed is counted, and the number of the corresponding packets is counted. The following processing contents are determined according to the processing status of the syntax processing unit and the main memory output unit.
[0025]
According to a ninth aspect of the present invention, in the packet data processing based on the packet count according to the eighth aspect, when a packet is not input, data being processed is being processed in the packet data processing apparatus. Is determined, the pipeline is partially changed, and packet processing in the middle of processing is performed.
[0026]
According to a tenth aspect of the present invention, in the software control by the controller according to the second aspect, the amount of processing operations of syntax processing and main memory output processing of a plurality of packets being processed is performed. In addition, by simultaneously performing processing with a small amount of processing during processing with a large amount of processing, the overall processing performance is improved.
[0027]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, the present invention will be described with reference to the drawings showing the embodiments.
[0028]
(Embodiment 1)
FIG. 1 shows the configuration of the packet data processing device according to the first embodiment of the present invention.
[0029]
In FIG. 1, a packet data processing device TSD includes a stream input device 100 that receives a plurality of transport stream packets or program stream packets TSI1 to TSIN, an arbiter 110 that arbitrates a data input / output request from each processor, A data transfer controller 120 for writing or reading data of the process arbitrated by the arbitrator 110 to the stream buffer 130 in units of several bytes, a stream buffer 130 for storing the received stream data, After storing the port stream packet in the stream packet 130, the packet selector 160 selects the packet to be processed by the stored packet, and the packet selected by the packet selector 160 is required according to the stream data. In this case, a syntax processing A180 for processing in such a case, a syntax processor B190 for filtering internal digital data from the stream data processed in the syntax processing A and extracting only necessary data, and a syntax processor B190 are used. A main memory 210 for outputting digital data to the main memory 220, a stream output device 200 for maintaining a reception interval of received stream data and outputting the digital data to a high-speed digital output port at regular intervals, the packet selector 160, 140 for controlling the activation of the device A 180, the syntax processor B 190, the stream output device 200, and the main memory output device 210, and collectively controlling the processing of the packet data processing device TSD; Binary data and controllers And a read-write pipeline processing storage unit 150 for storing the processed contents 40.
[0030]
The packet data processing device TSD is operated by a TD controller 230 that determines the processing content of each processor.
[0031]
The above-described processing of the packet data processing device TSD of the present invention will be described with reference to FIG. 1 in accordance with the flow of stream data.
[0032]
The input plurality of transport stream packets TS_1 to TS_N are input to the stream input unit 105. The stream input unit 105 detects a synchronization signal (packet start signal) of the input transport stream packet, and outputs requests TSI1 to TSIN for storing data in the stream buffer to the arbitrator 110. These requests TSI1 to TSIN are output to the arbitrator 110 independently for each input corresponding to the input ports.
[0033]
The arbitrator 110 arbitrates the plurality of requests generated as described above, transfers data corresponding to the acquired requests to the data transfer controller 120, and stores the data in the stream buffer 130. In the arbitration process in the arbitrator 110, a data transfer request from a syntax processor A180, a syntax processor B190, a stream output unit 200, and a main memory output unit 210, which will be described later, is managed and arbitrated.
[0034]
Next, it is determined whether the packet data stored in the stream buffer 130 is a packet to be processed by the packet data processing device TSD. The packet to be processed is identified by a packet identifier (hereinafter referred to as PID) in the transport stream packet. When the PID in the received transport stream packet and the PID for processing set by the TD controller 230 match, the packet is obtained, and thereafter, the process is similarly performed by the TD controller 230. Thereafter, the subsequent processing is started.
[0035]
If the packet determined as the packet to be processed is encrypted on the transmission side, subsequent data analysis cannot be performed. In that case, the decoding processing is performed by the syntax processor A180. In the packet data processing device TSD, whether or not the received packet has been encrypted is determined by TSC (Transport Scramble Control) in the received transport stream packet. When the received transport stream packet is encrypted, the syntax processor A 180 issues a request to read the encrypted packet data from the stream buffer to the arbiter 110. After arbitrating with a request from another processor, the arbitrator 110 obtains a read request from the syntax processor A180 and issues a data transfer instruction for the read request to the data transfer controller 120. The data transfer controller 120 reads the data from the address where the corresponding decoded data is stored, and inputs the data to the syntax processor A180 via the SBI path. The syntax processor A180 performs a decryption process using a decryption key set by the TD controller 230 for each transfer unit. The decrypted data issues a write request request signal to the arbiter 110 in the same way as when reading, to the arbiter 110 via the path to the SAO, and after the arbitrator 110 obtains the request, sends the stream buffer 130 To be stored again.
[0036]
Next, the data portion of the packet data decrypted in the above is extracted by the syntax processor B190. In a digital broadcasting system, PSI (Program Service Information) including video / audio data, information indicating a program configuration, personal information, and key information for decrypting data encrypted on the transmission side is multiplexed. Sending. The syntax processor B190 extracts only data necessary for decoding the transport stream from the multiplexed data.
[0037]
When the syntax processor B190 is activated, a request to read out the decoded data stored in the stream buffer 130 is issued to the arbitrator 110, as in the case of the activation of the syntax processing A180. After acquiring the request of the syntax processor B180 after arbitration with a request from another processor, the arbitrator 110 issues a data transfer instruction for the read request to the data transfer controller 120. The data transfer controller 120 reads data from the address where the corresponding decoded data is stored, and inputs the data to the syntax processor B via the SBI path. The syntax processor B190 performs a matching process on each transfer unit to determine whether the pattern matches the comparison data string pattern set by the TD controller 230. If they match, data of the data length up to the next comparison field is extracted. If they do not match, the data up to the next comparison field is discarded. Such processing is performed once or more in the transport, and for the extracted data, a write request request signal to the stream buffer is issued to the arbitrator 110. After the arbitrator 110 acquires the request, the data transfer controller 120 And re-stored in the stream buffer 130.
[0038]
Next, the stream data extracted and processed in a series of processes up to the syntax processor B190 is output from the main memory output unit 210. After the predetermined processing, data to be output from the main memory output device 210 is stored as a data format to be output to the stream buffer 130. When the stream data to be output to the main memory is stored in the stream buffer 130, the main memory output device 210 starts. The main memory output unit 210 issues a read request of the main memory output unit to the arbitrator 110. The arbitrator 110 arbitrates with a request from another processor, acquires this read request, and issues a data transfer instruction to the data transfer controller 120. The data transfer controller 120 decodes the memory address where the data read by the stream output unit 210 is stored, and reads the data from the stream buffer. The read data is input to the main memory output unit 210, and outputs a data transfer command for writing to a predetermined address of the main memory and a main memory address, and is stored in the main memory. The data stored in the main memory is used in processing by a TD controller or an AV decoder at a subsequent stage.
[0039]
The data stored in the stream buffer 130 is output via the stream output device 200 in parallel with a series of processing until the data is stored in the main memory. The process of outputting from the stream buffer 130 to the stream output device will be described with reference to FIG.
[0040]
2, the input device 105, the stream output device 200, the stream buffer 130, the controller 140, and the signals TSI1 to TSIN, RDI, RDO, and HO of the stream path are the same as those described in FIG. The stream output unit 200 includes a timer 2001 and a data output unit 2003. The data output unit has as inputs the value of the timer 2001 and an offset value 2002 that can be set by the data control unit 2003. The transport streams TS_A and TS_B in the figure are the first packet transport stream to which TS_A is input first and the transport stream TS_B is the second packet. FIG. 3 shows the timing of this transport stream TSD, input / output and time of this transport stream.
[0041]
When the transport stream TS_A is input to the input unit 105, the input unit 105 reads the timer value of the time when the input of TS_A has been completed, and adds the timer value as arrival time stamp information ATS when the stream buffer 130 is stored. Assuming that the arrival time of this TS_A is ATS_A, ATS_A is stored at the head of TS_A. An offset value set by the controller 140 is set in advance as an offset period from the time when the TS_A arrives at the packet data processing device of the present development to the time when it is output. As described above, when the data output unit is activated after performing a predetermined process on the corresponding transport stream packet TS_A, the data output unit issues a data read request for data output to the arbitrator 110. . The arbitrator 110 arbitrates with a request from another processor, acquires this read request, and issues a data transfer instruction to the data transfer controller 120. The data transfer controller 120 decodes the memory address where the data read by the stream output unit 210 is stored, and reads the data from the stream buffer. This data is input to the data output unit 2003 in the stream data output device 200. Upon receiving the arrival time stamp information of the data, the data output unit 2003 performs an addition process with the offset value 2002 input from the controller 140. When the added value is the current time during which the timer 2001 is constantly operating, a read request for the subsequent data portion is similarly issued, and the input data is sequentially output from the stream output unit. Similar processing is performed on the subsequent transport stream packets TS_B, and the stream is output while maintaining a constant interval from the input of the transport stream packets shown in FIG. Maintaining a constant interval is necessary for decoding without changing the bit rate of the input bit stream encoded by MPEG2-TS or the like, and this processing is performed simultaneously with the above-described packet data processing. The data output from the stream output device 200 can be used for connection to AV equipment conforming to the IEEE 1394 standard for transmitting processing in the TS protocol format.
[0042]
The above is the flow of a series of stream processing of each unit of the packet data processing device TSD of the present invention. Each processor is activated and performs a predetermined process by inputting a predetermined transport stream packet or processing data. It is the controller 140 which is the main object of the present invention that controls the activation of each unit as a whole. . For example, the processing is unique when the processing is sequentially performed in the above processing order without the intervention of the controller 140. However, when a plurality of inputs are performed, a part other than the processing such as which data in the stream buffer is to be referred to is used. It is necessary for each part to have this, leading to an increase in circuit scale. Also, most of the processing in the processor is not a single processing but a processing according to the type of the packet. If the switching is performed sequentially, the overhead until the start of the processing is large and the processing efficiency is deteriorated. Therefore, these processes are managed in series by the controller 140. In the control of the controller 140, a portion according to a control method of each processor will be described.
[0043]
First, the configuration of the controller 140 will be described with reference to FIG. In FIG. 1, a controller storage 150 for storing a predetermined operation instruction sequence of the controller 140 is provided in the packet data processing device TSD. When the processing instruction sequence is stored in the controller storage 150, the data is loaded into the controller 140 via the UDI when the controller 140 is started. The controller 140 has a mechanism for sequentially performing processing according to the loaded instruction sequence. The controller storage unit 150 is used as an operation storage unit that partially stores the operation results processed by the controller 140 and sequentially reads out stored data. In this case, at the time of processing of the storage command calculation by the controller 140, the data is stored at a predetermined address of the control recorder or read from the predetermined address via the UDL. Further, the controller 140 has a small register (not shown in FIG. 1) in addition to the controller recorder 150. This register is used for speeding up the processing inside the controller without accessing the controller recorder 150 sequentially. Further, the controller 140 has a plurality of data buses capable of extracting and storing data in the stream buffer 130, like the other processors. This data bus transfer will be described.
[0044]
When extracting predetermined data from the data stored in the stream buffer 130, the controller 140 issues a data read request CDWR to the arbitrator 110. The arbitrator 110 arbitrates with a request from another processor, acquires this read request, and issues a data transfer instruction to the data transfer controller 120. The data transfer controller 120 decodes the memory address where the data read by the controller 140 is stored, and reads the data from the stream buffer. This data is stored in a register of the controller 140 via the CDR. When the data processed by the controller is described in the stream buffer 130, a write request CDWR is issued to the arbitrator 110 in the same manner as the reading. The arbitrator 110 arbitrates with a request from another processor, acquires this write request, and issues a data transfer instruction to the data transfer controller 120. The data transfer controller 120 decodes a memory address where data written by the controller 140 is to be stored, and writes the decoded data to the stream buffer. This data is input from the register of the controller 140 to the data transfer controller 120 via the CDW and stored in the stream buffer.
[0045]
The controller 140 of the present invention is a multi-thread system that performs control by switching two or more processing tasks, and performs the parallel processing by allocating each processing described above to each thread. The mechanism of the multi-thlete will be described with reference to FIG.
[0046]
FIG. 4 shows the steady-state operation of the controller 140 according to the present invention. The controller 140 switches between two or more threads at regular intervals (four cycles in the drawing), and operates on a multi-thread processor in which the assigned thread performs processing of the thread. This multi-thread processor has the advantage that the processing of each thread can operate independently, and is suitable for simultaneous processing.
[0047]
The controller 140 includes an inter-thread communication register (not shown in the figure) in addition to the stream processing and extraction registers. The inter-thread communication register includes a plurality of communication bits that can be accessed from any of the threads 1 and 2 in the multi-thread processing. The present invention can be used to monitor the control of the entire packet data processing device TSD.
[0048]
The controller 140 having the above-described configuration controls the packet data processing of the present invention. The processing assignment of the packet data processing device TSD of the present invention will be described with reference to FIG. In FIG. 5, three or more threads can be allocated. However, the additional thread increases the circuit of the controller 140. Only the description will be given.
[0049]
In FIG. 5, the left column shows the assigned thread numbers. The middle column is represented by the name of each processor in FIG. 1, and the right column indicates the processing order of the corresponding packet. In the present invention, a transport stream packet is received from the input device 105, a processing packet is extracted by the packet selector 160, and a portion to be scrambled by the syntax processor A is assigned to the sod 1 for the scrambled stream. While descrambling data is output at high speed from the stream output unit 200, data extraction and knitting processing are performed by the syntax processing unit B190, and finally, the main memory output unit 210 outputs the data to the main memory in the thread 1. When the corresponding stream is processed sequentially, it is possible to perform the processing in accordance with the processing procedure shown in FIG. 5 and also to perform the processing from the order 1. In this case, after each processor finishes, the next processor To move, the processing time required for one stream packet is: packet selector time (A), syntax processor A processing time (B), stream output device control time (C) + syntax processor B processing time (D) + The sum of the main memory output time (E) and the efficiency is poor. Further, even during the packet processing, since the stream is sequentially input from a plurality of ports from the input unit 105, the capacity of the stream buffer 130 for reception from another system needs to be prepared on a large scale in the sequential processing. There is. The present invention is an invention of a control method for solving these problems, and specific contents of a control method for reducing processing efficiency will be described with reference to FIGS. 1, 6, 7, and 10. FIG.
[0050]
6 and 7 show an overall processing flow controlled by the control unit 140 of the packet data processing device of the present development. FIG. 6 shows a control method for the thread 1 of the multi-thread packet data processing, and FIG.
[0051]
In FIG. 6, first, at step 100, the controller 140 is activated. When the controller 140 is activated, the thread 1 is described in the controller storage 150 and performs one process per clock in accordance with the loaded instruction code. When the controller 140 is activated, the process proceeds to step 200.
[0052]
In step 200, a schedule for performing the packet data of the present invention in a multithread is set. The schedule determines the processing cycle of the packet data processing of the present invention in multiple threads by setting the number of threads used and the time allotment of one thread. Here, a setting is made such that the number of threads is 2, and the ratio of threads is such that threads 1 and 2 are equally allocated every four clocks. Further, when performing the present packet data processing, an area for temporarily storing the calculation result in the controller 140 is initialized. In this area, a part other than the part storing the processing instruction code of the controller memory is set as an operation storage area, and this part is initialized. After this initialization, the process proceeds to step 300.
[0053]
In step 300, the thread 2 is started to perform the multi-thread operation. In the controller according to the present invention, when the thread 1 serves as a main processor and only the main processor operates, processing can be performed by a single thread without switching between multi-threads. In the present invention, the process is performed by a plurality of controls by activating the thread 2 which is the slave processor. The above is the initial setting for processing the packet data processing device TSD of the present invention by the controller, and the processing from step 400 described below is a loop processing performed every time a packet arrives. Then, the process proceeds to step 400.
[0054]
In step 400, a process of storing packet data in the stream buffer 130 is performed. If the packet is in the receiving state up to step 300 and the packet data is being partially stored in the stream buffer, or if the packet data has not yet been input due to the bit rate of the packet data and the configuration of the input data, Until the storage is completed, a wait state is entered in step 400. If there is packet data for which packet data has been completely stored, the cell number storing the packet data of the packet data that has arrived first in the stored order is read from the data transfer controller 120, and the corresponding packet is read. Judge the position. Then, the process proceeds to step 500.
[0055]
In step 500, a packet selection process is performed to determine whether the packet data determined in step 400 is packet data to be processed thereafter. This determination is usually made based on a packet ID (hereinafter referred to as PID) indicating the type of packet data. To make this determination, the controller 140 requests a read request from the stream buffer to the arbiter 130 to obtain a data portion having a PID of the packet data, obtains the data, and stores the data in a predetermined register. This register value is loaded into a reference register (not shown) inside the packet selector, and the packet selector is activated. In the packet selector 160, the PID of the packet data to be processed and the processing information on how to process the data of each PID are previously set from the TD controller 230. The PID data string is compared with the PID value on the reference register. The result is displayed in a result register (not shown) of the packet selector 160. This result is two results, that is, a case where they are compared and processed (comparison match) and a case where they are not processed (comparison mismatch). Then, the process proceeds to step 600.
[0056]
In step 600, if the result of the packet selector in the packet selector 16 in step 500 is that the comparisons match, the subsequent processing content information is extracted from the packet data. The processing content information (hereinafter referred to as PET: Packet Entry Table) includes a descrambling process by syntax process A, a data extraction by syntax process B, a main memory output, and a stream output. Information for performing the subsequent processing in the processor, such as whether to perform the processing, is specified. The controller 140 loads this processing content from the content register of the packet selector 160, stores it in a register inside the controller storage 150, and proceeds to the next step 700.
[0057]
In step 700, it is determined whether to start the syntax processor A. The processing performed by the syntax processor A is mainly for decrypting an encrypted data portion of a broadcast packet data or stored packet data which is provided for the purpose of copyright protection, and converting the data into a data format which can be analyzed later. Say. In the PET extracted in the step 600, it is determined that the packet is a packet for activating the syntax processing A when the content is to perform the syntax processing A and the corresponding packet is encrypted. move on. If the packet processor does not activate the syntax processor A in the above-mentioned PET, or if the packet data is not encrypted, the syntax processor A is not activated unnecessarily and step 800 is skipped. Then, the process proceeds to step 900.
[0058]
Step 800 is a step only when the processing is performed by the syntax processor A. Here, the syntax processor A is controlled. The decryption key necessary for processing the syntax processor A is set in the controller storage 150 by the TD controller 230, and the controller 140 decodes the decryption key into the decryption key of the syntax processor A. Set in a key register (not shown). When the setting is completed, the address and size of the data including the encrypted data to be transferred to the syntax processor A are set. When the address and size settings are completed, the syntax processor A is started. When the activation is started, the syntax processor A receives the encrypted data of the set size through the stream path described above and sequentially performs the decryption processing. The controller 140 does not manage the end of the syntax processing A here, but performs another processing to perform parallel processing. Next, the process proceeds to step 900. The processing related to the packet data performed in the thread 1 is completed as described above, and the subsequent processing is related to the control processing for performing the parallel processing in the multi-thread.
[0059]
In step 900, the operation state of the thread 2 for continuing the packet data processing performed in the thread 1 by the thread 2 is determined. FIG. 8 shows the configuration of allocation of the controller storage for transferring information between threads in the transfer control between threads. 10, the result of the packet data processing performed in steps 400 to 800 and the processing content information extracted in step 600 are stored in the area of address A. Thereafter, it is determined whether the operation of the thread 2 has been started and the data in the intermediate data area at the address B can be updated. If it can be determined, the contents of address A are copied to the area of address B. If the update is not yet possible, the process waits until the intermediate data area can be updated. When the update is completed, the process proceeds to step 1000.
[0060]
In step 1000, it is notified that the packet data processing in thread 1 has been completed. When notifying, the notification is made by a communication register in the controller 140. FIG. 9 shows how to use the communication register of the packet data processing device TSD of the present development. The use of each bit will be described as appropriate when used in each step. In this step, an inter-thread notification bit of bit 1 is used. In the step 900, since this bit 1 is 0, that is, since the information of the packet that the thread 2 has processed in the previous stage has already been received, and the method of the thread 1 has been copied to the intermediate data area, The bit 1 is changed to 1, that is, the thread 2 can determine that the information notification of the thread 1 is completed. In this way, the thread 2 can continue the processing of the thread 1 only by using the bit 1 without monitoring the operation state of the thread 1. In this processing, the role of the thread 1 in the packet data processing ends, and the process returns to step 400, and the same processing is performed every time a packet is stored.
[0061]
Next, a control method for processing the packet data performed in the above processing by the thread 2 will be described with reference to FIGS. 1, 7, and 10. FIG. The main role of the thread 2 is to perform the packet processing that has been completed in the thread 1, but it is necessary to simultaneously perform the processing of the packet that has arrived up to two packets before the packet being processed in the thread 1. Thus, it is a feature of the present invention to increase the processing speed.
[0062]
FIG. 9 shows a control flow in the thread 2. Thread 2 is divided into four processes according to the processing state while thread 1 has a unique processing order. In step 2050, it is determined which of the four parts is to be activated. The determination method is shown in FIG. In FIG. 10, elliptical terms indicate processing branches case 1 to case 4 in the thread 2. The criterion is determined based on the number of packets being processed by the thread 2 (hereinafter referred to as a packet count) and whether or not bit0 of the communication register, that is, a state of waiting for the arrival of the packet. When the numeral portion described in the branch line indicates the packet count, and when not only the packet count but also the packet arrival waiting is used as the determination condition, it is described in parentheses. In FIG. 10, there is a case where the process proceeds from each case to another case. This branch processing is actually performed by the branch control in step 2050. However, it is described as it is for simplification of the drawing. Hereinafter, the case process in each branch will be described.
[0063]
In step 2050, if there is no packet to be processed by the thread 2 (packet count 0) or if there is one or two packets to be processed but there is no packet currently arrived (if the packet count is 1 or 2 and bit0 = 0) Proceed to case1. In case 1, first, in step 2100, a process of receiving process content information from the thread 1 is performed. In the processing of receiving the processing content information, the data in the intermediate data area in FIG. 8 is copied to the free area at the address C or the address D. Then, the process proceeds to step 2110.
[0064]
In step 2110, a process of notifying that the process information from the thread 1 has been received in step 2100 is performed. By setting bit1 of the communication register of the controller 140 in FIG. 1 to 0, the reception of the processing information of the thread 1 ends, and the thread 1 is notified that the intermediate data can be updated. Then, the process proceeds to step 2120.
[0065]
In step 2120, a process for determining the end of the process activation in the syntax processor A of the thread 1 is performed. This processing can be performed in the thread 1. However, while the syntax processor A in the thread 1 is running, the control of the controller 140 does not need to perform the processing until the processing of the syntax processing A is completed. Is performed in advance, and the efficiency of the packet data processing can be improved when the processing end determination is made after the end of the thread communication. Whether the syntax processing A has been activated in the thread 1 is stored in the processing content information from the thread 1 and can be determined. If the processing of the syntax processing A is not performed, the next step 2130 is skipped. If the processing of the syntax processing A is being performed, the process proceeds to step 2130.
[0066]
In step 2130, the end processing of the syntax processing A performed in the thread 1 is performed. When the syntax processor A has finished, the syntax processor A is reset, and the bit2 of the communication register of the controller 140 is set to 0, thereby performing the termination process. By doing so, it becomes possible to start again when the thread 1 decodes the packet data. Upon completion of the end processing, the flow advances to next step 2140.
[0067]
In step 2140, the packet counter for indicating that the thread 2 has received the packet from the thread 1 is incremented by one. This packet counter serves as an index when a plurality of packet processes are simultaneously performed in the thread 2, and the operation procedure cannot update the data in the stream buffer 130 or the controller storage 150 with the number of packet counters currently being processed. Is used as information on memory management for eliminating the adverse effects of the above. When the updating of the packet counter is completed, the process proceeds to the next step 2150.
[0068]
In step 2150, control for performing stream output by the stream output device is performed. At this stage of the stream output device, since the syntax processor A has performed the decoding process, the conversion to the data format that can be output as a stream has been completed. The controller 140 sets the packets for stream output in an output FIFO (not shown) so that the stream output device outputs the packets in the order set in the output FIFO after a certain delay time from the arrival of the packets.
[0069]
The above is a series of processes of one branch process case1. When this process ends, the process returns to step 2050 again to make a process determination.
[0070]
In step 2050, when the number of packets being processed after the processing of case 1 is one (packet count 1) and when the number of packets being processed is two after the processing of case 3 (packet count 2), the processing branch control of case 2 is performed. move on. The processing of case 2 performs processing up to the start of the processing of the syntax processor B. First, the process proceeds to step 2200.
[0071]
In step 2200, data analysis is performed according to the processing content of the corresponding packet data. In the data analysis, in the case of packet data for AV data, there are cases where a transport stream packet is output as it is, converted into a PES (Packetized Elementary Stream) stream format, and converted into an elementary stream and output. In this case, the data in the stream buffer 130 is analyzed, the head address of the data to be output to the main memory inside the data is described, and the process proceeds to step 2210. If the processing content is PSI data, a setting is made to transfer the packet data to the syntax processor B, and the process proceeds to step 2210.
[0072]
In step 2210, activation of the syntax processor B is controlled. Here, first, bit3 of the communication register of the controller 140 is set to 1, and it is notified that the syntax processor B is to be used. As a result, the use state of the syntax processor B can be monitored by another processing thread, and it is possible to prohibit the illegal execution of control of the syntax processor A by another. In step 2200, if the determined processing content format is an AV packet, a setting is made to store the transferred data in the output buffer area of the stream buffer 130 so that the transferred data can be transferred to the main memory as it is. If the processing format is PSI data, the processing mode is set to match the PSI pattern to be extracted, and the syntax processor B is started. After the startup, the syntax processor B sequentially receives the packet data and performs a process according to the format. During that time, the process returns to step 2050 again to determine the process.
[0073]
In step 2050, when there is only one packet currently being processed but there is no arriving packet (there is no arriving packet at packet count 1), and when the packet currently being processed is 1 after case 1 processing (packet count In the case of 1) and the case where the number of packets currently being processed after the case 5 processing is 2 (packet count 2), the process proceeds to the control of the processing branch of case 3. In the case 3 processing, a result determination processing is performed after the processing of the syntax processor B is completed. First, the process proceeds to step 2300.
[0074]
In step 2300, the processing after the end is performed by the syntax processor B. It waits for the end of the syntax processing B, and after that, resets the syntax processor B and sets bit3 of the communication register of the controller 140 to 0. As a result, when the case 2 is started, the syntax processor B is made usable. Thereafter, the process returns to step 2050 again to determine the processing.
[0075]
In step 2050, if the number of packets currently being processed after case 2 processing is 2 (packet count 2), or if the number of packets currently being processed after case 1 processing is 1 (packet count 1), case 4 The process proceeds to the branching process.
[0076]
In step 2400, processing up to activation of the main memory output device 210 is performed. When arriving at step 2400, the data formed into the main memory output data after the processing up to step 2300 has been completed is always stored in one area of the stream buffer 130. First, the controller 140 issues a start command to the main memory output unit 210 to transfer the start address of the molding data stored in the stream buffer 130 to the output to the main memory.
Upon receiving the start command, the main memory output unit 210 sequentially stores data from the head address of the stored data at the address of the main memory set by the TD2 controller 230. In the meantime, after the main memory is activated, the controller 140 returns to step 2050 again to determine the processing.
[0077]
In step 2050, if the number of packets currently being processed is 2, the current packet is also arriving (bit 0 = 1 in the packet count 2), or if the packet to be processed is 3 after case 1 processing. In this case (when the packet count is 3), or when the current packet to be processed is 1 after the case 4 processing (when the packet count is 1), the process proceeds to the case 5 branch processing.
[0078]
In step 2500, the processing after the main memory output device 210 is completed is performed. The main memory output unit 210 started in the step 2400 monitors the completion of the transfer of the molding data of a predetermined number of bytes to the main memory, and when the transfer is completed, clears the transfer instruction of the main memory output unit B and Set bit4 of the communication register to 0. As a result, the main memory output device A can be used at the time of the start of case4. Thereafter, the process returns to step 2050 again to determine the processing.
[0079]
As described above, the process in the thread 2 is a control method of switching the packet processing order according to the packet data input status from the thread 1 and the possession time of the syntax processor A and the main memory processor activated in the thread 2. Take. FIG. 11 shows the relationship between the flow of packet data and the time when the processing is performed as described above.
[0080]
In FIG. 11, TIN1 to TIN4 in the upper row show a case where four inputs to the input device 105 of FIG. 1 are simultaneously input. The next stage shows the operation timing of the processor controlled by the controller 140 in FIG. 1, and from the top, a packet selector, a syntax processor A, a syntax processor B, a main memory output device, Indicates activation of the stream output device. The next stage shows the timing of notification of the thread of the communication bit 1 in FIG. The next stage shows the input count of the packet count and the count number according to the processing state shown in the flow of FIG. As described in the embodiment described above, the packet storage management, the packet selector and the syntax processor A are controlled by the thread 1, and the syntax processor B, the main memory output device, and the stream output device are controlled by the thread 2. By performing the notification of the thread, the processing can be realized by a three-stage pipeline as shown in FIG. In FIG. 11, if four streams are input of a transport stream packet of 35 Mbps and the packet data processing device of the present invention operates at a clock of 200 MHz, the processing time of one packet indicated by PtA in FIG. The processing can be performed by the degree. For comparison, FIG. 12 shows a processing diagram when a packet data processing device having a similar configuration is used and the control of the present invention is not used. In this case, the processing of the next packet is started after a series of processing as shown in FIG. 11 is completed, so that the pipeline interval PtB is three times as large as PtA in FIG. Then, PTb requires a period of about 30 us. This means that the processing performance which can be processed by using buffers of the same scale is reduced to 1/3. According to another idea, if an attempt is made to configure a packet data processing apparatus having the same processing performance, a triple buffer must be prepared to absorb the deterioration of 1/3 of the processing, and the circuit scale increases. Leads to. That is, in the packet data processing method of the present invention configured as shown in FIG. 11, it is possible to process a plurality of packets at the same time, and to shorten the time to be stored in the stream buffer by performing the processing in the shortest time. Thus, packet data processing can be realized with a very small buffer.
[0081]
【The invention's effect】
In a packet data processing device used in a digital broadcast receiver, etc., when performing various processes on digital content and simultaneously processing a plurality of streams, storing packets in one packet data processing device Thus, the problem that a circuit as in the conventional example is required for a plurality of streams can be solved, and the problem that the circuit scale increases drastically can be solved.
[0082]
Further, in the case of a pipeline in which the processing is constant as in the conventional example, the processing of each processor is compared with the method of sequentially shifting to the next processing every time the processing of the preceding stage is completed, despite the different waiting time. A packet data processing apparatus having the highest performance can be realized by a control method of determining the next processing content according to time.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a packet data processing device according to a first embodiment of the present invention.
FIG. 2 is a detailed processing diagram of a stream processor in FIG. 1;
FIG. 3 is a correlation diagram between packet data input / output and time in the second embodiment;
FIG. 4 is a timing chart of switching a thread in a normal state of the controller 140 in FIG. 1;
FIG. 5 is an allocation diagram of control target processors in each thread in the controller 140 according to the first embodiment of the present invention.
FIG. 6 is a control flow diagram of thread 1 in controller 140 according to the first embodiment of the present invention.
FIG. 7 is a control flow chart of a thread 2 in the controller 140 according to the first embodiment of the present invention.
FIG. 8 is a diagram showing a communication method of information notified between threads in the controller 140 according to the first embodiment of the present invention.
FIG. 9 is a diagram showing information of a communication register in the controller 140 according to the first embodiment of the present invention.
FIG. 10 is a processing state transition diagram of the thread 2 in the controller 140 according to the first embodiment of the present invention.
FIG. 11 is a diagram showing a processing flow of the packet data processing device according to the first embodiment of the present invention.
FIG. 12 is a diagram showing a processing flow when dynamic control is not performed in the present invention.
FIG. 13 is a configuration diagram of a conventional packet processing device.
FIG. 14 is a correlation diagram between processing data and time in a conventional packet processing apparatus.
[Explanation of symbols]
105 Input unit
110 Arbitrator
120 Data transfer control unit
130 stream buffer
140 controller
150 Controller memory
160 packet selector
180 Syntax Processor A
190 Syntax Processor B
200 stream output device
210 Main memory output device
220 main memory
230 TD controller
2001 timer
2002 Addition offset value
2003 Data output unit
2010 data transfer bus
10 Input device
20 Packet selector
30 Syntax Processor A
40 Syntax Processor B
50 Main memory output device
60 stream output device
70 Main memory
80 TD2 controller

Claims (10)

MPEGシステムに用いられる、連続するトランスポートストリームデータを複数のポートから同時に受信するストリーム入力器と、入力したトランスポートストリームから所望のトランスポートパケットデータを抽出するパケット選択器と、選択したトランスポートパケットデータを所定のデータに加工、抽出する2つ以上のシンタックス処理器と、入力したトランスポートストリームとの間隔を一定に保ち入力ストリームを出力するストリーム出力器と、シンタックス処理器で処理されたデジタルデータをメモリへ出力するメインメモリ出力器と、
上記ストリーム入力器、2つ以上のシンタックス処理器、ストリーム出力器、メインメモリ出力器へのデータの転送を調停する調停器と、入力したトランスポートストリームを格納するストリームバッファと、各処理器へのデータの転送を制御するデータ転送制御器と、
上記パケット選択器、2つ以上のシンタックス処理器、ストリーム出力器、メインメモリ出力器、調停器、データ転送制御器の制御を行う制御器と、制御器が上記1つ以上のシンタックス処理器、メインメモリ出力器、ストリーム出力器をパイプラインで制御する命令コード列を格納し、制御器でパイプライン処理を行うための内容を一部記憶するパイプライン処理用記憶器を備えることを特徴とするパケットデータ処理装置。
A stream input unit for receiving continuous transport stream data from a plurality of ports simultaneously, a packet selector for extracting desired transport packet data from an input transport stream, and a selected transport packet used in an MPEG system Two or more syntax processors for processing and extracting data into predetermined data, a stream output unit for outputting an input stream while keeping a constant interval between input transport streams, and a syntax processor A main memory output device for outputting digital data to a memory,
To the stream input device, two or more syntax processors, a stream output device, an arbiter for arbitrating the transfer of data to the main memory output device, a stream buffer for storing the input transport stream, and A data transfer controller for controlling data transfer of the
A controller for controlling the packet selector, two or more syntax processors, a stream output device, a main memory output device, an arbitrator, and a data transfer controller; and the controller is the one or more syntax processors. A main memory output device, a stream processing device for storing an instruction code sequence for controlling the stream output device by a pipeline, and a pipeline processing storage device for partially storing contents for performing a pipeline process by the controller. Packet data processing device.
MPEGシステムに用いられる、連続するトランスポートストリームデータを複数のポートから同時に入力し、ソフトウェア制御により、入力したトランスポートストリームから所望のトランスポートパケットデータを抽出し、選択したトランスポートパケットデータを所定のデータに加工、抽出する2つ以上のシンタックス処理を同時に行い、入力したトランスポートストリームとの間隔を一定に保ちつつ入力ストリームを出力し、シンタックス処理を行ったデジタルデータをメモリへ出力する一連のパケット処理をパイプラインで制御することを特徴とするパケットデータ処理装置。Continuous transport stream data used in the MPEG system is simultaneously input from a plurality of ports, desired transport packet data is extracted from the input transport stream by software control, and the selected transport packet data is converted into a predetermined transport packet data. A series of processes in which two or more syntax processes for processing and extracting data are simultaneously performed, an input stream is output while maintaining a constant interval from an input transport stream, and the digital data subjected to the syntax process is output to a memory. A packet data processing apparatus characterized in that packet processing is controlled by a pipeline. 前記請求項1記載の制御器は、制御器用記録器にアドレッシングした命令により、特定の命令列を順次、処理することを特徴とするパケットデータ処理装置。2. The packet data processing apparatus according to claim 1, wherein the controller sequentially processes a specific instruction sequence in accordance with an instruction addressed to the controller recorder. 前記請求項1記載の制御器は、2つ以上のスレッドで構成され、前記スレッドは特定サイクル毎に順次切替わりスレッド毎に割り当てた処理器を制御することを特徴とするパケットデータ処理装置。2. The packet data processing device according to claim 1, wherein the controller comprises two or more threads, and the threads are sequentially switched every specific cycle to control a processor assigned to each thread. 前記請求項1記載の制御器は、2つ以上のスレッド間で情報を共有し、各スレッドを動作させることを特徴とするパケットデータ処理装置。2. The packet data processing device according to claim 1, wherein the controller shares information between two or more threads and operates each thread. 前記請求項2記載の制御器によるソフトウェア制御は、受信したトランスポートストリームパケットに共通した処理を1つのスレッドで制御し、受信したトランスポートストリームパケットにより、処置内容が決定される処理をもう一つのスレッドで制御することを特徴とするパケットデータ処理装置。The software control by the controller according to claim 2, wherein a process common to the received transport stream packet is controlled by one thread, and a process in which the processing content is determined by the received transport stream packet is another process. A packet data processing device controlled by a thread. 前記請求項2記載の制御器によるソフトウェア制御は、パケットデータ処理で順次行われるパケットデータ選択処理、放送暗号の復号を行うシンタックス処理、選択したパケットデータのデータ解析を行うシンタックス処理、メインメモリに出力するメインメモリ出力処理の一連の処理に対し、パケットデータ処理装置に1つ前に格納されたパケットのパケットデータ選択処理と、放送暗号の復号処理を1段目の処理とし、2つ前に格納されたパケットのデータ解析を行うシンタックス処理を2段目の処理とし、3つ前に格納されたパケットのメインメモリへのメインメモリ出力処理を3段目の処理として、3段パイプライン処理を行うことで処理性能を向上させることを特徴とするパケットデータ処理装置。3. The software control by the controller according to claim 2, wherein a packet data selection process sequentially performed in the packet data process, a syntax process for decrypting the broadcast encryption, a syntax process for analyzing data of the selected packet data, and a main memory. The packet data selection processing of the packet stored immediately before in the packet data processing device and the decryption processing of the broadcast cipher are set as the first stage processing in the series of the main memory output processing to be output to the The second stage is a syntax process for analyzing data of a packet stored in the first stage, and the third stage is a process for outputting a main memory of a packet stored three times before to a main memory. A packet data processing apparatus characterized by improving processing performance by performing processing. 前記請求項2記載の制御器によるソフトウェア制御は、処理対象中のパケット数をカウントし、該当パケット数のカウントと、前記請求項1記載の複数のシンタックス処理器とメインメモリ出力器の処理の状況に応じて、次の処理内容を決定することを特徴とするパケットデータ処理装置。The software control by the controller according to claim 2 counts the number of packets being processed, counts the number of packets, and processes the plurality of syntax processors and the main memory output device according to claim 1. A packet data processing device that determines the next processing content according to a situation. 前記請求項8記載のパケットカウントによるパケットデータ処理は、パケットの入力が行われない場合に、パケットデータ処理装置内で処理途中のデータを処理途中であることを判断し、一部パイプラインを変更し、処理途中のパケット処理を行うことを特徴とするパケットデータ処理装置。In the packet data processing based on the packet count according to claim 8, when a packet is not input, it is determined that data being processed is being processed in the packet data processing apparatus, and a partial pipeline is changed. A packet data processing apparatus for performing packet processing during processing. 前記請求項2記載の制御器によるソフトウェア制御は、処理対象中の複数のパケットのシンタックス処理とメインメモリ出力処理の処理演算量の大小に応じて、処理演算量の大きい処理中に処理演算量の小さい処理を同時に行うことで、全体の処理性能を向上させることを特徴とするパケットデータ処理装置。3. The software control by the controller according to claim 2, wherein the amount of processing operation is large during the processing with a large amount of processing according to the amount of processing of syntax processing and main memory output processing of a plurality of packets being processed. A packet data processing apparatus characterized in that overall processing performance is improved by simultaneously performing processes having a small size.
JP2003075667A 2003-03-19 2003-03-19 Packet data processor Pending JP2004289240A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003075667A JP2004289240A (en) 2003-03-19 2003-03-19 Packet data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003075667A JP2004289240A (en) 2003-03-19 2003-03-19 Packet data processor

Publications (1)

Publication Number Publication Date
JP2004289240A true JP2004289240A (en) 2004-10-14

Family

ID=33290926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003075667A Pending JP2004289240A (en) 2003-03-19 2003-03-19 Packet data processor

Country Status (1)

Country Link
JP (1) JP2004289240A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006254039A (en) * 2005-03-10 2006-09-21 Renesas Technology Corp System decoder

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006254039A (en) * 2005-03-10 2006-09-21 Renesas Technology Corp System decoder

Similar Documents

Publication Publication Date Title
JP3561326B2 (en) Packet program component detection apparatus and method
JP4416361B2 (en) Multi-format transport stream decoder
KR100564610B1 (en) Demultiplexer and demultiplexing method of the digital broadcasting receiver capable of demultiplexing several broadcasting channel signals
US6359911B1 (en) MPEG-2 transport demultiplexor architecture with non-time-critical post-processing of packet information
US6859850B1 (en) Controller for controlling direct memory access
CN101911696B (en) Packet comparator
US9026790B2 (en) Processing packet streams
US20050044175A1 (en) Transport processor
JP2001069106A (en) Stream multiplexing/demultiplexing device
JP3919860B2 (en) Demultiplexer
JPH1198098A (en) Data separating device
US7149230B2 (en) Transport processor for processing multiple transport streams
EP2204996B1 (en) Processing packet streams
US7113546B1 (en) System for handling compressed video data and method thereof
US7359441B2 (en) Packet data processing determination apparatus
EP0940756B1 (en) Shared memory access
JP2004289240A (en) Packet data processor
US7730515B1 (en) Digital receiver demultiplexer
US20080317119A1 (en) Av Renderer Peripheral with Dual Inerrupt Lines for Staggered Interrupts
US20090238069A1 (en) Device and method for controlling program stream flow
CN108737886B (en) System and method for quickly switching digital programs and digital set top box
EP1267568A1 (en) A method and circuitry for processing data
JP4788081B2 (en) Packet data output device
JPH10290207A (en) Multiplexed data separating device
CN117596441A (en) Multiplexing and demultiplexing architecture for multiplexing transport stream of digital television broadcasting system