JP4788081B2 - Packet data output device - Google Patents

Packet data output device Download PDF

Info

Publication number
JP4788081B2
JP4788081B2 JP2001238760A JP2001238760A JP4788081B2 JP 4788081 B2 JP4788081 B2 JP 4788081B2 JP 2001238760 A JP2001238760 A JP 2001238760A JP 2001238760 A JP2001238760 A JP 2001238760A JP 4788081 B2 JP4788081 B2 JP 4788081B2
Authority
JP
Japan
Prior art keywords
packet data
output
buffer cell
packet
stream
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.)
Expired - Fee Related
Application number
JP2001238760A
Other languages
Japanese (ja)
Other versions
JP2003052026A (en
Inventor
幹彦 山田
昌一 後藤
教彦 溝端
敏宏 豊田
暁 岡本
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 Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2001238760A priority Critical patent/JP4788081B2/en
Publication of JP2003052026A publication Critical patent/JP2003052026A/en
Application granted granted Critical
Publication of JP4788081B2 publication Critical patent/JP4788081B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、入力されてくるトランスポートストリームを構成するパケットデータの個々を所定の処理対象であるかを識別して、対応する場合には当該所定の処理を行った後、所定のフォーマットで出力するパケットデータ出力装置に関し、さらに詳述すれば、トランスポートストリームデコーダに組み込まれてパケットデータ単位でのデータ出力やデータ置換、データ挿入などのデータインタフェースを提供するパケットデータ出力装置に関する。
【0002】
【従来の技術】
デジタルコンテンツに対して種々な処理や編集を施して副次利用するというような要求は、従来は放送局のようなコンテンツ制作或いは配信元にのみ限定されていた。しかしながら、近年のデジタル技術の進歩により、インフラストラクチャとしてデジタル配信システムの質および量は日々に充実している。つまり、デジタルコンテンツを提供するトランスポートストリームの充実、ユーザによる処理に必要なハードウェアの性能アップ、およびそのためのコストの低減により、従来は放送局等の施設によってのみ実施されていた、トランスポートストリームの編集や、トランスポートストリームを構成するパケットデータの編集をユーザ側で楽しむための環境条件が整いつつある。
【0003】
しかしながら、ユーザ側においてデジタルコンテンツ毎に所望の処理を施すためには、逐次入力されてくるトランスポートストリームを構成するパケットデータの個々を選択し、さらに選択されたパケットデータに対して対応する処理或いは加工を施す必要があり、さらには、所望の処理を施したデジタルコンテンツを保存するためには、処理或いは加工を施したパケットデータをトランスポートストリームとして再構成し、外部のデータ蓄積機器に出力する必要がある。
【0004】
そのような手段の一例として、図15にトランスポートストリームを構成するパケットデータの個々を識別して選択的に抽出し、出力する機能を有する従来実現されている装置を示す。同図に示すトランスポートデコーダは、複数の番組(Program)のそれぞれを形成するパケットデータ列から構成される単一のトランスポートストリームから特定の単一の番組を構成するパケットデータ群のみを抽出して出力する。つまり、後述するように、同トランスポートデコーダには単一のトランスポートストリームを構成する複数のパケットデータの内で特定のパケットデータのみを選択的に抽出し、定められたタイミングで出力する手段が設けられている。
【0005】
当該トランスポートストリームデコーダTDAcは、外部のトランスポートストリーム源(図示せず)から供給されるトランスポートストリームTSを受け取るストリーム入力器500C、プログラムパケットフィルタPCF、パケットデータ処理器650C、メインメモリ制御器700C、メインメモリ900C、トランスポートストリーム出力器850C、およびトランスポートストリームデコーダTDAc全体の動作を制御するTD制御器TDCcを含む。
【0006】
まず、図7を用いて、外部のトランスポートストリーム源(図示せず)から供給されるトランスポートストリームTSについて説明する。トランスポートストリームTSは、それぞれが1つの枠として表示されている複数のパケットデータPから構成される。これらのパケットデータPにはそれぞれに固有のパケット識別子(Packet ID)PIDが付与されて、それぞれの識別に供される。
【0007】
これらのパケットデータPは、α種類(αは1以上の整数)の番組毎にそのコンテンツを形成する複数の番組コンテンツパケットデータPcと、番組毎にこれら番組コンテンツパケットデータPcのパケット識別子PIDを記述した番組コンテンツパケットデータ管理表(Program Map Table )PMTと、番組毎に対応する番組コンテンツパケットデータ管理表PMTを記した番組コンテンツ管理表(Program Association Table)PAT等に分類される。
【0008】
これら番組コンテンツパケットデータPcを管理する情報を有する番組コンテンツ管理表PATおよび番組コンテンツパケットデータ管理表PMTを、管理パケットデータPcAと総称する。なお、図7においては、少なくとも3つの異なる番組1、番組2、および番組3を提供する場合(α≧3)のトランスポートストリームTSの構成が例示されている。
【0009】
番組コンテンツパケットデータPc101_1、Pc101_2、・・・は、番組1の映像データであり、番組コンテンツパケットデータPc111_1、Pc111_2、・・・・は番組1の音声データである。同様に、番組コンテンツパケットデータPc201_1、Pc201_2、・・・・は、番組2の映像データであり、番組コンテンツパケットデータPc211_1、Pc211_2、・・・・は番組2の音声データである。
【0010】
さらに、番組コンテンツパケットデータPc301_1、Pc301_2、・・・・は番組3の映像データであり、番組コンテンツパケットデータPc311_1、Pc311_2、・・・・は番組3の音声データである。上述の如く映像データを有する番組コンテンツパケットデータPcを番組映像コンテンツパケットデータPcVと、音声データを有する番組コンテンツパケットデータPcを番組音声コンテンツパケットデータPcSとそれぞれ総称する。
【0011】
なお、提供できる番組数(α)は3に限定されないことは言うまでも無く、提供する番組数に対応する必要なだけの番組コンテンツパケットデータPcがトランスポートストリームTSに含まれる。さらに、番組の内容によっては、映像や音声以外の情報(例えば、文字情報)に対応する番組コンテンツパケットデータPcも含まれることも同様である。
【0012】
さらに詳述すれば、トランスポートストリームTSは、番組コンテンツパケットデータPcの間に、伝送経路および処理上の要因から定められる頻度で番組コンテンツ管理表PATと番組コンテンツパケットデータ管理表PMTが配列されて構成される。図7において、番組1、2、および3の全3種類の番組を形成する複数の番組コンテンツパケットデータPcの内で、番組コンテンツパケットデータPc101_1、Pc111_1、Pc201_1、Pc211_1、Pc301_1、およびPc311_1の前に、番組毎の番組コンテンツパケットデータPcのパケット識別子PIDを記した番組コンテンツパケットデータ管理表PMT1、PMT2、およびPMT3と、これらの番組コンテンツパケットデータ管理表PMTのそれぞれのパケット識別子PIDに対応する番組とを示す番組コンテンツ管理表PATから成る管理パケットデータPcAが配されている。
【0013】
なお、本明細書において、同一の部材や信号は共通の数字或いはアルファベットで構成される符号を識別子として附して表現し、同一の部材や信号であっても個々に識別を要する場合には、当該識別子にさらに数字或いはアルファベットによる接尾辞を附して個々の識別子として表現するものとする。よって、同一部材或いは信号において個々に識別を要しない場合には、識別子に接尾辞を附さずに表すものとする。具体的に言えば、番組コンテンツパケットデータPc101は、番組コンテンツパケットデータPc101_1、Pc101_2、・・・Pc101_β(βは任意の自然数)の総称である。上述の番組コンテンツパケットデータPc111、Pc201、Pc211、Pc301、およびPc401についても同様である。
【0014】
番組コンテンツ管理表PATには、そのトランスポートストリームTSに含まれる全番組の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDが記述されている。つまり、番組1の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDは100であり、番組2の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDは200であり、番組3の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDは300である、・・・、番組αの番組コンテンツパケットデータ管理表PMTのパケット識別子PIDはα00であると記述されている。
【0015】
さらに、番組コンテンツパケットデータPc101_2、Pc111_2、Pc201_2、Pc211_2、Pc301_2、およびPc311_2の前には、前述の番組コンテンツパケットデータ管理表PMT1、PMT2、およびPMT3と番組コンテンツ管理表PATとから成る管理パケットデータPcAが再び配置されている。なお、トランスポートストリームTSが4以上の番組を含む(α≧4)の場合は、図7には明示されていないが、管理パケットデータPcAには、番組コンテンツパケットデータ管理表PMT4〜PMTαが含まれ、トランスポートストリームTSにはそれぞれの番組に対応する番組コンテンツパケットデータPcが含まれることは言うまでも無い。
【0016】
トランスポートストリームTSに含まれるパケットデータPの種類によって、管理パケットデータPcAの配置頻度は異なる。さらに管理パケットデータPcAは必ずしも、図7に例示したようにパケットデータPの一まとまりとして配置されるとは限らない。場合によっては、管理パケットデータPcAの構成単位である番組コンテンツ管理表PAT、番組コンテンツパケットデータ管理表PMTおよび番組コンテンツパケットデータPcのそれぞれの間に他のパケットデータPが入り乱れて配されることもある。
【0017】
次に、上述のトランスポートストリームTSが入力されるトランスポートストリームデコーダTDAcの構成要素のそれぞれについて図15を用いて説明する。ストリーム入力器500Cは、外部のトランスポートストリーム源(図示せず)から入力されるトランスポートストリームTSを受け取り、ストリーム内の同期バイトや同期信号によりパケットの先頭を検出し、パケットの先頭から順にプログラムパケットフィルタPCFに転送する。
【0018】
プログラムパケットフィルタPCFは、ストリーム入力器500Cから転送されてくる全番組コンテンツパケットデータPcのそれぞれに付与されているパケット識別子PIDに基づいて、特定の番組の番組映像コンテンツパケットデータPcV、当該特定の番組の番組音声コンテンツパケットデータPcSおよび当該特定の番組の管理パケットデータPcAを選択的に出力する。出力するパケットデータのパケット識別子PIDは、TD制御器TDCcによってプログラムパケットフィルタPCFに対して指示される。
【0019】
なお、入力されたトランスポートストリームTSに含まれる全パケットデータPから抽出された、管理パケットデータPcAと特定の番組のコンテンツを形成する番組コンテンツパケットデータPc(PcV、PcA)とを併せて選択単一番組パケットデータ列Pesと総称する。
【0020】
トランスポートストリームTSに含まれる複数の番組を構成する番組コンテンツパケットデータPcの内、管理パケットデータPcA(PAT、PMT1)、番組1を構成する番組映像コンテンツパケットデータPcV(Pc101_1、Pc101_2、・・・)および番組音声コンテンツパケットデータPcS(Pc111_1、Pc111_2、・・・)は、それぞれトランスポートストリームデコーダTDAcに到着した順番にプログラムパケットフィルタPCFによって抽出される。
【0021】
そして、抽出された番組コンテンツ管理表PAT、番組コンテンツパケットデータ管理表PMT1およびPMT2と、番組コンテンツパケットデータPc101_1、Pc111_1、Pc101_2、Pc111_2、・・・は、トランスポートストリームデコーダTDAcに到着した順番に、選択単一番組パケットデータ列Pesとしてパケットデータ処理器650Cに出力される。
【0022】
パケットデータ処理器650Cは、TD制御器TDCcの命令にしたがって、各パケットデータに処理や加工を施し、パケットデータ列Pesdとして出力する。処理の内容は、例えば有料放送におけるスクランブルされたデータの復号などであるが、具体的な処理内容については公知の事実であるのでここでは説明を省略する。
【0023】
メインメモリ制御器700Cは、メインメモリ900Cを制御して、パケットデータ処理器650Cから入力されるパケットデータ列Pesdを、管理パケットデータPcA、単一番組映像コンテンツパケットデータ列PssV、および単一番組音声コンテンツパケットデータ列PssS毎にメインメモリ900Cの所定の領域に格納する。
【0024】
つまり、メインメモリ900Cは、メインメモリ制御器700Cを経由してパケットデータ処理器650Cから入力されるパケットデータ列Pesdに含まれる各パケットデータPを、管理パケットデータPcA、番組映像コンテンツパケットデータPcVおよび番組音声コンテンツパケットデータPcAの何れかに選別して、管理パケットデータPcA、単一番組映像コンテンツパケットデータ列PssV、および単一番組音声コンテンツパケットデータ列PssSとして格納する。
【0025】
さらに、メインメモリ制御器700Cは、メインメモリ900Cから映像コンテンツパケットデータ列PssVおよび音声コンテンツパケットデータ列PssSを読み出してパケットデータ列PssとしてAVデコーダ2000Cに代表される外部機器に出力する。
【0026】
ストリーム出力器850Cは、パケットデータ処理器650Cから入力されるパケットデータ列Pesdをトランスポートストリームとして再構成し、外部機器(図示せず)に出力する。
【0027】
なお、トランスポートストリームデコーダTDAcは、上述の各構成要素の動作状態を示す状態信号SrWCを生成してTD制御器TDCcに出力する。TD制御器TDCcは、状態信号SrWCに基づいて、トランスポートストリームデコーダTDAcの各構成要素の動作を制御する制御信号ScWCを生成して、トランスポートストリームデコーダTDAcに出力する。
【0028】
このようにして、TD制御器TDCcはトランスポートストリームデコーダTDAcの動作全体を制御して、トランスポートストリームデコーダTDAcに入力されるトランスポートストリームTSから特定の番組を構成する番組コンテンツパケットデータPcのみを入力された順番で抽出して、番組パケットデータ列PssとしてAVデコーダ2000Cなどの外部機器に出力させる。AVデコーダ2000Cは、入力される単一番組パケットデータ列Pssに含まれる番組映像コンテンツパケットデータPcVおよび番組音声コンテンツパケットデータPcSを順番にデコードして映像音声信号Savを生成してユーザの視聴に供する。
【0029】
さらに、トランスポートストリームデコーダTDAcに入力されるトランスポートストリームTSから特定の番組を構成する番組コンテンツパケットデータPcおよびその管理パケットデータPcAを抽出し、副次利用のためトランスポートストリームHSDとして再構成した後、データ蓄積機器などの外部機器に出力させる。
【0030】
ストリーム出力器850Cが出力するトランスポートストリームについて、図11を用いて説明する。TSは入力されるトランスポートストリームであり、1つの枠はそれぞれがトランスポートストリームを構成するパケットを示している。上述のように、番組コンテンツ管理表PAT、各番組の番組コンテンツパケットデータ管理表PMT1、PMT2およびPMT3、番組1のパケットデータPc101およびPc111、番組2のパケットデータPc201およびPc211、番組3のパケットデータPc301およびPc311がそれぞれ配置されている。
【0031】
図11において、トランスポートデコーダTDAcに入力されたTSの各パケットのうち、番組1を構成するパケットおよびPMT1とPATが選択され、処理・加工された後、トランスポートストリームHSDとして出力されている。
【0032】
具体的な処理・加工の一例として、デスクランブルがある。デスクランブルとは、主に有料番組コンテンツに対して契約者だけが視聴可能となるように暗号化されたコンテンツを復号する処理を指す。
【0033】
処理・加工されたパケットは処理・加工前の表記にシングルクォート「’」を付けて示している。
【0034】
パケットデータが入力されてから出力されるまでの時間T(HSDelay)はトランスポートデコーダTDAcにおけるデータ処理時間によって決定され、すべてのパケットデータは入力後T(HSDelay)時間後に出力される。
点線で囲った枠はスタッフィングされて出力される。
【0035】
出力トランスポートストリームHSDは、入力トランスポートストリームTSに対して、番組2および番組3を構成するパケットが削除されているため、出力トランスポートストリームHSDのPAT’は入力トランスポートストリームTSのPATと内容が異なる。
【0036】
すなわち、入力トランスポートストリームTSのPATには番組1、2、3に対応したPMT1、PMT2、PMT3のPIDが記されているが、出力トランスポートストリームHSDのPAT’には番組1に対応したPMT1のPIDのみが記されていなければならない。
【0037】
このように、PATを置き換えて出力する方法について、図15に戻って説明する。TD制御器TDCcは、メインメモリ900Cに格納されたPATの情報を元にして、番組1に対応したPIDのみが記されたPAT’を生成し、メインメモリ900の別領域に保存する。
【0038】
ストリーム出力器850Cは、パケットデータ処理器650CからPATが入力された場合、このPATを出力する代わりに、メインメモリ制御器700Cに要求してメインメモリ900Cに格納されているPAT’を読み出して出力する。
【0039】
このパケットデータ置き換えはPATの置き換えに限定されず、特定のPIDのパケットデータや特定のタイミングで入力されたパケットデータをメインメモリ900Cに格納されたデータで置き換えて出力することが可能である。
【0040】
例えば、番組の切り替わり時にパケットデータ列が不連続となるが、不連続点を示すパケットデータDIT(Discontinuity Information Table)を挿入することができる。
【0041】
図8に、メインメモリ900Cにおける番組コンテンツパケットデータPcのそれぞれの蓄積状態の一例を示す。メインメモリ900Cは、番組映像コンテンツパケットデータPcVである番組コンテンツパケットデータPc101_1、Pc101_2、Pc101_3、Pc101_4、・・・を格納する映像パケット格納領域A(video)と、番組音声コンテンツパケットデータPcSである番組コンテンツパケットデータPc111_1、Pc111_2、Pc111_3、Pc111_4、・・・を格納する音声パケット格納領域A(audio)とを有する。
【0042】
さらに、番組コンテンツ管理表PATの情報を格納するPAT格納領域A(PAT)、TD制御器TDCcによって番組コンテンツ管理表PATに変更を加えた情報を格納するPAT’格納領域A(PAT’)、パケットデータ列の不連続点を示す情報を格納するDIT格納領域A(DIT)、番組コンテンツパケットデータ管理表PMTの情報を格納するPMT格納領域A(PMTα)を有する。具体的に言えば、番組1の番組コンテンツパケットデータ管理表PMT1は番組コンテンツパケットデータ管理表PMT格納領域A(PMT1)に格納される。
【0043】
番組コンテンツパケットデータPc101_1、Pc101_2、Pc101_3、Pc101_4、・・・が、映像パケット格納領域A(video)内に互いに間隙無く格納されることによって、番組映像コンテンツパケットデータ列PssVが形成される。同様に、番組コンテンツパケットデータPc111_1、Pc111_2、Pc111_3、Pc111_4、・・・が音声パケット格納領域A(audio)内に互いに隙間無く格納されることによって、番組音声コンテンツパケットデータ列PssSが形成される。
【0044】
このように、メインメモリ900C内に構成された番組映像コンテンツパケットデータ列PssVおよび番組音声コンテンツパケットデータ列PssSが、メインメモリ制御器700Cによって、図9に例示するような番組パケットデータ列Pssとして読み出されて、AVデコーダ2000Cに出力される。
【0045】
【発明が解決しようとする課題】
上記の如く構成された従来のトランスポートストリームデコーダは、入力されるトランスポートストリームが単一の場合に、当該トランスポートストリームから番組を再生してユーザに提示する、もしくはパケットデータを処理・加工して、外部のデータ蓄積機器等に出力する用途に対しては十分である。
【0046】
しかし、入力されるトランスポートストリームが複数の場合、複数のトランスポートストリームを同時に処理するためには、入力されるトランスポートストリームの数だけ上述のトランスポートデコーダが必要となり、装置の規模の巨大化、構造の複雑化、処理負荷の増大、仕様或いは要求処理の変更に対応不可、しいてはコストの増大という諸問題を招く。
【0047】
本発明は上記の問題に鑑み、入力されてくる複数のトランスポートストリームを構成するパケットデータの個々を所定の処理対象であるかを識別して、当該所定の処理を施した後出力するパケットデータ出力装置を提供することを目的とする。
【0048】
【課題を解決するための手段】
第1の発明は、それぞれに識別情報が付与された連続する複数のパケットデータによって構成されるトランスポートストリームが入力されたとき、当該トランスポートストリームに対して所定の処理を施すトランスポートストリーム処理装置に用いられ、所定の処理を施した後にトランスポートストリームとして再構成し出力するパケットデータ出力装置であって、
出力の対象となるパケットデータを識別するための出力対象パケットデータ識別情報を入力する識別情報入力手段と、
前記パケットデータのそれぞれを、入力されてくる順番に所定時間だけ保持するパケットデータ保持手段と、
前記パケットデータ保持手段に保持されているパケットデータに付与されている識別情報を読み出し、前記出力対象パケットデータ識別情報と比較して、前記保持されているパケットデータが予め規定された出力の対象であるか否かを選定する出力対象パケットデータ選定手段と、
出力対象であるパケットをトランスポートストリームとして再構成し、出力するストリーム出力手段とを備える。
【0049】
上記のように、第1の発明では、逐次入力されるトランスポートストリームのパケットデータの個々を一次的に格納して、その格納されたパケットデータに対して予め規定された処理・加工を施した後、パケットデータ単位でのストリーム出力処理を可能にする。
【0050】
第2の発明は、第1の発明において、当該出力処理完了の検出後に、当該パケットデータ保持手段は他のパケットデータの格納のために解放されることを特徴とする。
【0051】
第3の発明は、第1の発明において、当該パケットデータの出力処理前に行うべきデータ処理・加工が終了していない間は出力処理を禁止することを特徴とする。
【0052】
第4の発明は、第1の発明において、当該パケットデータの出力処理前に行うべきデータ処理・加工が終了した後に出力処理を許可することを特徴とする。
【0053】
第5の発明は、第1の発明において、複数のバッファセルの中でパケットデータを出力中のバッファセルを示す出力中バッファセルポインタを備え、バッファセル割当器は、当該出力中バッファセルポインタが示すバッファセルをパケットデータ格納に割り当てないことを特徴とする。
【0054】
第6の発明は、前記連続するパケットデータのそれぞれの入力が開始された時刻情報を生成するタイマと、前記時刻情報をパケットデータとともにバッファセルに蓄積する前記パケットデータ保持手段と、前記パケットデータ保持手段から読み出した前記時刻情報をもとにストリームの出力を開始するタイミングを決定する出力開始指示手段と、パケットデータをトランスポートストリームとして再構成し出力するストリーム出力手段とを備える。
【0055】
上記のように、第6の発明では、前記時刻情報に対して一定時間の遅延後にパケットデータを出力することによって、入力されるそれぞれのパケットデータの時間間隔を保って出力することを特徴とする。
【0056】
第7の発明は、前記連続するパケットデータのそれぞれの末尾が入力された時刻情報を生成するタイマと、前記時刻情報をパケットデータとともにバッファセルに蓄積する前記パケットデータ保持手段と、前記パケットデータ保持手段から読み出した前記時刻情報をもとにストリームの出力を開始するタイミングを決定する出力開始指示手段と、パケットデータをトランスポートストリームとして再構成し出力するストリーム出力手段とを備える。
【0057】
上記のように、第7の発明では、前記時刻情報に対して一定時間の遅延後にパケットデータを出力することによって、入力のビットレートに依存せずに前記一定の遅延値を定めることができることを特徴とする。
【0058】
【発明の実施の形態】
(実施形態の1)
以下に、図1、図2、図3、図4、図5、図7および図8を参照して、本発明の第1の実施形態にかかる本発明にかかるパケットデータ処理装置について説明する。
【0059】
なお、本発明にかかるパケットデータ処理装置は、本実施形態においては単一のトランスポートストリームTSに含まれる複数の番組のコンテンツデータを選択的に抽出し出力するトランスポートストリームデコーダに用いられるデータ出力装置として構成される。
【0060】
本実施形態においては、逐次入力されてくるトランスポートストリームTSを構成する全パケットデータPを個々にバッファリングすると共に、個々にバッファリングされているパケットデータPを識別して、同パケットデータPに対してユーザの所望する処理を施した後出力する機能を備えたパケットデータ処理装置を新たに考案する。
【0061】
図1に、本例にかかるパケットデータ処理装置DBA1を組み込んだトランスポートストリームデコーダTD1を示す。トランスポートストリームデコーダTD1は、外部のトランスポートストリーム源(図示せず)からパケット単位で供給されるトランスポートストリームTSを受け取るストリーム入力器TSR、パケットデータ処理装置DBA1、メインメモリ制御器700、メインメモリ900、タイマ510、制御器PBAC1を含む。
【0062】
ストリーム入力器TSRは、外部のトランスポートストリーム源(図示せず)からパケット単位で供給されるトランスポートストリームTSを内部に備えた入力バッファに一時的に保持して、所定の転送単位TSd毎にパケットデータ処理装置DBA1に転送する。なお、本例においては、転送単位TSdは8バイトに設定されているが、パケットデータ処理装置DBA1における調停負荷および伝送効率を考慮して任意に定めることができる。
【0063】
パケット先頭を検出した時点で、パケットデータPの到着した時刻を示すタイムスタンプStとそのパケットデータPが第1のトランスポートストリームTSであること示すトランスポートストリーム識別子TSiを生成する。
【0064】
パケットデータ処理装置DBA1は、ストリーム入力器TSRから逐次供給される転送単位TSdのトランスポートストリームTSをパケットデータP単位で管理蓄積すると共に、トランスポートストリームTSに含まれる番組コンテンツパケットデータPcをリアルタイムに個別選択的に出力する。なお、本実施形態においては、3つの番組を含むトランスポートストリームTSから、1つの番組の番組コンテンツパケットデータPcのみを抽出して選択複数番組パケットデータ列Pemとして出力される例について述べる。
【0065】
メインメモリ900は、メインメモリ制御器700を経由して、パケットデータ処理装置DBA1から出力される番組パケットデータ列Pemを一時的に格納し、番組パケットデータ列Pms(番組映像コンテンツパケットデータ列PmsV、番組音声コンテンツパケットデータ列PmsS)をAVデコーダに代表される外部機器(図示せず)に出力する。
【0066】
また、メインメモリ制御器700を経由して、TD制御器TDC1から入力される置き換えパケットデータRDを一時的に格納し、ストリーム出力器500に出力する。
【0067】
メインメモリ制御器700は、パケットデータ処理装置DBA1から入力される番組パケットデータ列Pemを一時的に保持し、メインメモリ900の動作を制御して、一時的に保持する番組パケットデータ列Pemをメインメモリ900に出力すると共に、メインメモリ900を制御してその内部に番組映像コンテンツパケットデータ列PmsVおよび番組音声コンテンツパケットデータ列PmsSを形成させる。
【0068】
また、メインメモリ制御器700は、TD制御器TDC1から入力されるデータを一時的に保持し、メインメモリ900の動作を制御して、一時的に保持するデータをメインメモリ900に出力すると共に、メインメモリ900を制御してその内部に置き換えパケットデータRDを形成させる。
【0069】
タイマ510は、時刻情報Stを出力する。具体的には、所定の時間が経過するとインクリメントされるカウンタで構成され、そのカウント値を出力する。上記の所定の時間は、求められる時刻情報の精度によって定められる。また、最大カウント値は時刻情報の一意性を確保するのに十分な大きさを有している。
【0070】
TD制御器TDC1は、予めトランスポートストリームデコーダTD1に入力されるトランスポートストリームTSの種類毎のデータ構造情報を格納している。そしてTD制御器TDC1は、実際に入力されるトランスポートストリームTSのデータ構造を示すトランスポートストリーム構造信号STSを生成して、ストリーム入力器TSRに出力することによって、入力されるトランスポートストリームTSに応じてストリーム入力器TSRを適正に動作するように制御する。この場合、ユーザが副次処理要求入力器APRなどを利用して、TD制御器TDC1に格納されている構造情報を指示しても良い。
【0071】
トランスポートストリームTSのデータ構造情報を予めTD制御器TDC1に格納しておく代わりに、ユーザが副次処理要求入力器APRなどを利用して、実際に入力されるトランスポートストリームTSの構造情報をTD制御器TDC1に指示するようにしても良い。さらに、実際に入力されるトランスポートストリームTSを読み込んで、そのデータ構造を検出するようにトランスポートストリームデコーダTD1を構成しても良い。
【0072】
TD制御器TDC1は、トランスポートストリームデコーダTD1全体の動作を制御する。なお、トランスポートストリームデコーダTD1は、上述の各構成要素の動作状態を示す状態信号SrWを生成してTD制御器TDC1に出力する。TD制御器TDC1は、状態信号SrWに基づいて、トランスポートストリームデコーダTD1の各構成要素の動作を制御する制御信号ScWを生成して、トランスポートストリームデコーダTD1に出力する。なお、状態信号SrWおよび制御信号ScWの生成およびトランスポートストリームデコーダTD1の制御は公知の技術であるので説明を省く。
【0073】
パケットデータ処理装置DBA1は、DMAバス調停器210、パケット入力開始検出器220、バッファセル割当器230、バッファセル割当情報格納器240、書込先バッファセル指定器250、パケットバッファ制御器260、パケットバッファ270、蓄積完了バッファセル番号メモリ制御器280、蓄積完了バッファセル番号メモリ290、パケットアクセス器300、パケットデータ処理器410、出力順バッファセル番号メモリ制御器530、出力順バッファセル番号メモリ540、ストリーム出力器500およびバッファリングされているパケットデータPが所望のパケットデータPであるかを判断するパケット選択器400を含む。
【0074】
DMAバス調停器210は、ストリーム入力器TSR、パケットバッファ制御器260、パケット選択器400、パケットデータ処理器410、ストリーム出力器500とメインメモリ制御器700との間でのパケットデータPの入出力を調停する。
【0075】
つまり、DMAバス調停器210はパケットバッファ制御器260を経由したパケットバッファ270へのデータアクセスを調停する。具体的には、
ストリーム入力器TSRからパケットバッファ270へのデータ転送、パケットバッファ270からパケット選択器400へのデータ転送、パケットバッファ270からパケットデータ処理器410へのデータ転送、パケットデータ処理器410からパケットバッファ270へのデータ転送、パケットバッファ270からストリーム出力器500へのデータ転送、パケットバッファ270からメインメモリ制御器700へのデータ転送を調停する。
【0076】
DMAバス調停器210は、ストリーム入力器TSRから入力されるリクエスト信号Srqを調停によって選択した場合、パケット入力開始検出器220にパケット先頭検出信号Spsおよび転送単位TSdを供給する。
【0077】
パケット入力開始検出器220は、パケット先頭検出信号Spsおよび転送単位TSdに基づいて、パケットデータP毎に転送単位TSdの入力が開始されたことを検出すると共に、入力された転送単位TSdをパケットバッファ制御器260に供給する。そして、パケット入力開始検出器220は、その転送単位TSdでの入力が開始されたパケットデータPを格納するために、パケットバッファ270を構成する複数のバッファセルの1つを割り当てるよう要求するバッファセル要求信号Sbaを生成してバッファセル割当器230に出力する。さらに、バッファセルBcが割り当てられれば、そのバッファセルに対して番組コンテンツパケットデータPcの書込が開始できる状態であることを示す書込許可信号Swを生成して書込先バッファセル指定器250に出力する。
【0078】
バッファセル割当器230は、バッファセル要求信号Sbaに応答して、後述する割当バッファセル情報Iabに基づいて、入力が開始されたパケットデータPの格納に供するバッファセルを割り当てる。そして、割り当てたバッファセルを示すバッファセル割当情報Ibaを生成して、バッファセル割当情報格納器240に出力する。
【0079】
バッファセル割当情報格納器240は、バッファセル割当器230から入力されるバッファセル割当情報Ibaを格納する。さらにバッファセル割当情報格納器240は、同バッファセル割当情報Ibaを書込先バッファセル指定器250および蓄積完了バッファセル番号メモリ制御器280に供給する。なお、さらにバッファセル割当情報格納器240は、バッファセル割当情報Ibaに基づいて、パケットバッファ270を構成する各バッファセルBcの割当状況を示す割当バッファセル情報Iabを生成してバッファセル割当器230にフィードバックする。
【0080】
書込先バッファセル指定器250は、パケット入力開始検出器220から入力される書込許可信号Swに応答して、バッファセル割当情報格納器240から入力されるバッファセル割当情報Ibaで示される、割り当てられたバッファセルに対する転送単位TSdの書込を指示する書込要求信号Swdを生成して、パケットバッファ制御器260に出力する。
【0081】
パケットバッファ制御器260は、書込要求信号Swdに応答して、パケット入力開始検出器220から供給される転送単位TSdを、パケットバッファ270の割り当てられたバッファセルに書き込む。さらに、パケットバッファ制御器260は、割り当てられたバッファセルに書き込んだデータのバイト数をカウントすることによって、1パケットデータP分のデータが書き込まれたことを検出して、1パケットデータPをパケットバッファ270に対して蓄積し終えたことを示す転送終了信号Stfを生成して、蓄積完了バッファセル番号メモリ制御器280に出力する。なお、入力されるトランスポートストリームTSの1パケットデータPのデータサイズは、予めトランスポートストリームデコーダTD1に格納されているデータ構造情報に含まれていることは上述の通りである。
【0082】
蓄積完了バッファセル番号メモリ制御器280は、バッファセル割当情報格納器240から入力されたバッファセル割当情報Ibaとパケットバッファ制御器260から入力された転送終了信号Stfに基づいて、1パケット分のパケットデータPが書き込まれたバッファセルを示すバッファセル番号信号Sbnと、バッファセル番号Nbcを書き込む記憶領域を示すライトポインタPWPを1つ進めるライトポイント更新信号Swpを生成して蓄積完了バッファセル番号メモリ290に出力する。
【0083】
蓄積完了バッファセル番号メモリ290は、ライトポインタPWPが示す記憶領域に、バッファセル番号信号Sbnの示すバッファセル番号Nbcを記録した後に、蓄積完了バッファセル番号メモリのライトポインタPWPの位置を1つ進めて、バッファセル番号Nbcを記録した領域の次の領域を指し示させる。なお、本実施形態においては、蓄積完了バッファセル番号メモリ290は後ほど図2を参照して説明するように、好ましくはリングメモリで構成されるので、このようにバッファセルに書込を終了する毎に蓄積完了バッファセル番号メモリのライトポインタPWPを1つずつ進めることによって、蓄積完了バッファセル番号メモリ290の記憶領域に記憶されているバッファセル番号Nbcを適正に更新できる。
【0084】
パケットアクセス器300は、パケットバッファ制御器260およびDMAバス調停器210を経由して、パケットバッファ270のバッファセルに格納されたパケットデータPに選択的にアクセスして、読み出し、参照、あるいは編集等の処理を施した後にDMAバス調停器210およびパケットバッファ制御器260を経由して、元のパケットデータPを上書き更新したりする。
【0085】
パケットバッファ制御器260は、後述のリードポインタPRPが指し示すバッファセルに格納されているパケットデータPのパケット識別子PIDを読んで、バッファパケット識別情報PIDeを抽出すると共に、DMAバス調停器210を経由して、パケット選択器400に出力する。
【0086】
パケットデータ処理器410は、パケットバッファ制御器260およびDMAバス調停器210を経由して、パケットバッファ270に格納されたパケットデータPが転送単位TSd毎に入力され、入力されたデータに対して所定のデータ処理を施す。また、所定の処理を施した後のデータをパケットバッファ270の所定の領域に書き戻す。
【0087】
例えば、有料放送においてパケットデータのスクランブルを解くなどの処理であるが、公知の技術であるので詳細な説明は省略する。
【0088】
パケットデータ処理装置DBA1は、上述の各構成要素の動作状態を示す状態信号Srを生成して制御器PBAC1に出力する。制御器PBAC1は、状態信号Sr1に基づいて、パケットデータ処理装置DBA1の各構成要素の動作を制御する制御信号Scを生成して、パケットデータ処理装置DBA1に出力する。なお、状態信号Srおよび制御信号Scの生成する制御器PBAC1の制御は公知の技術であるので説明を省く。
【0089】
次にストリーム出力について、図14を用いて説明する。
【0090】
TSは入力されるトランスポートストリームであり、1つの枠はトランスポートストリームを構成するパケットを示している。
【0091】
パケットpacket1の入力が開始された時刻にタイマ510が生成する時刻情報TS1は、ストリーム識別子TSiとともに管理情報IMとして、ストリーム入力部TSR_1によってバッファセル内にパケットデータとともに格納される。
【0092】
制御器PBAC1は、パケット選択器400において当該パケットが処理対象であることが判明した場合、当該パケットに対して施すべき処理の内容を調べる。その結果、当該パケットをトランスポートストリームとして出力する場合、制御器PBAC1はパケット出力順バッファセル番号メモリ制御器530に対して、当該パケットが格納されているバッファセル番号Hbnとバッファセル番号Hbnを書き込むパケット出力順バッファセル番号メモリ540の記憶領域を示すライトポインタHWPを出力するとともに、パケット出力順バッファセル番号メモリ540の記憶領域を示すライトポインタHWPを1進めて、バッファセル番号Hbnを記録した領域の次の領域を指し示させる。なお、パケット出力順バッファセル番号メモリ540は好ましくは、リングメモリで構成されてバッファセル指定領域Hc1〜HcMが連続的かつ循環的に記録される。
【0093】
パケット出力順バッファセル番号メモリ制御器530は、パケット出力順バッファセル番号メモリ540に対して、バッファセル番号Hbnおよびパケット出力順バッファセル番号メモリ540のライトポインタHWPを出力する。また、ライトポインタHWPに1を加算し、次のバッファセル番号を書き込む領域を指し示させる。
【0094】
パケット出力順バッファセル番号メモリ540は、バッファセル番号HbnをライトポインタHWPが示す記憶領域に書き込む。また、出力順バッファセル番号メモリ540のリードポインタHRPが示す記録領域に書き込まれているバッファセル番号SHrをストリーム出力器500に出力する。
【0095】
パケットバッファ制御器260は、パケットバッファ270からストリーム出力器500に出力されるバイト数をカウントすることによって、1パケット分のパケットデータPの転送が終了したことを検出し、パケットバッファ270からストリーム出力器500へのデータ転送が終了したことを示す転送終了信号Shfをパケット出力順バッファセル番号メモリ制御器530に出力する。
【0096】
パケット出力順バッファセル番号メモリ制御器530は、転送終了信号Shfを受け取るとリードポインタHRPに1を加算し、次に出力するバッファセル番号を記録した記録領域を指し示させる。
【0097】
なお、1パケットデータPのデータサイズは、予めトランスポートストリームデコーダTD1に格納されているデータ構造情報に含まれていることは上述の通りである。
【0098】
ストリーム出力器500は、トランスポートストリーム出力するパケットのバッファ番号SHrを受け取ると、DMAバス調停器210に対してバッファ番号SHrのパケットデータを要求するデータ信号Prqを出力する。これに対して、DMAバス調停器210はパケットバッファ制御器260を経由してパケットバッファ270のバッファ番号SHrのデータPDを転送単位TSd毎にストリーム出力器500に対して出力する。
【0099】
ストリーム出力器500は、受け取ったパケットデータのうち、管理情報IMを出力開始指示器520に出力する。
【0100】
出力開始指示器520は、タイマ510が示す時刻が管理情報IMから抽出したタイムスタンプStにTD制御器TDC1が設定する時間T(HSDelay)を加算した値と等しくなった場合に出力開始指示信号ReqSTを出力する。
【0101】
ストリーム出力器500は、出力開始指示信号ReqSTを受信するとストリームHSDの出力を開始する。ストリーム出力器500は出力するデータを得るため、DMAバス調停器210に対してパケットデータを要求するデータ信号Prqを出力する。これに対して、DMAバス調停器210はパケットバッファ制御器260を経由してパケットバッファ270のバッファ番号SHrのデータPDを転送単位TSd毎にストリーム出力器500に対して出力する。
【0102】
以降、1パケット分のストリーム出力を完了するまで、同様の処理が続く。
【0103】
次に図2を参照して、上述のバッファセル割当情報格納器240、パケットバッファ270、蓄積完了バッファセル番号メモリ290および出力順バッファセル番号メモリ540の関係について簡単に説明する。パケットバッファ270は、パケット入力開始検出器220を経由して入力されるパケットデータPを一時的に蓄えるためのN個のバッファセルBc1〜BcN(Nは2以上の自然数)を含む。これは、パケットデータPの蓄積用と、蓄積したパケットデータPの読み出し用にそれぞれ異なるバッファセルBcが1つは必要であるからである。
【0104】
バッファセルBcのそれぞれは、所定のサイズのデータを一時的に蓄える、つまりバッファリングできる。そのために必要なバッファセルBcの容量を最低バッファ容量MBUと言う。最低バッファ容量MBUは、パケットデータPを構成するパケットデータPのデータサイズに応じて適宜設定される。最低バッファ容量MBUをパケットサイズに比べて小さく設定すれば、番組コンテンツパケットデータPcの抽出をよりきめ細やかに制御できるが、DMAバス調停器210における入出力調停頻度が大きくなり、そのための制御工数の増大を招き処理効率が悪くなる。
【0105】
一方、最低バッファ容量MBUをパケットサイズに比べて大きく、例えば数倍程度に設定すれば、1つのバッファセルBcに複数のパケットデータPを格納することも可能になる。しかしながらこの場合は、1つのバッファセルBcに格納されている複数のパケットデータPを区別できないので、パケットデータP単位での制御、或いはアクセスができない。
【0106】
従って、最低バッファ容量MBUは、トランスポートストリームデコーダの内部処理速度、パケットデータPの入力レート、パケットサイズ、およびパケットデータPへのアクセス頻度に基づいて適切に設定されるべきものである。なお、本例においては、最低バッファ容量MBUは1パケットデータPを格納できるように定めており、具体的には188バイトとしている。なお、必要に応じて、パケットデータPを識別または管理するための所定のバイト数を有する補助データを1パケットデータPに追加して格納できるようにしても良い。
【0107】
しかしながら、必要に応じて、上述のようにパケットサイズに比べて小さく設定、つまり1つのパケットを複数のバッファセルBcに分割して格納するようにしても良い。この場合、最低バッファ容量MBUはパケットデータPの分割後のデータの最大サイズに、分割状態を表す分割情報等を記録管理するための管理情報に相当する管理バイトを足したものになる。
【0108】
バッファセル割当情報格納器240は、パケットバッファ270のバッファセルBc1〜BcNのそれぞれに対応するバッファセル割当情報領域Ac1〜AcNを有する。バッファセル割当情報格納器240は、バッファセル割当器230kら供給されるバッファセル割当情報Ibaに基づいて、割り当てられたバッファセルBcn(nは1以上、N以下の自然数)に対応するバッファセル割当情報領域Acnに割当の有無を示す割当識別データを書き込む。つまり、バッファセル割当情報格納器240は、パケットバッファ270のバッファセルBc1〜BcNと同数のバッファセル割当情報領域Ac1〜AcNが用意される。
【0109】
例えば、割当識別データは1と0の二値データであり、初期値は0である。そして、バッファセルBc1が割り当てられる場合には、バッファセルBc1に対応するバッファセル割当情報領域Ac1には、1が書き込まれる。一方、バッファセルBc1に書き込まれたデータが読み出された後に、制御器PBAC1から出力される制御信号Scに基づいてバッファセル割当情報領域Ac1に0が書き込まれて、バッファセルBc1は解放される。このようにして、パケットバッファ270の各バッファセルBc1〜BcNのそれぞれの割当状況がバッファセル割当情報領域Ac1〜AcNにおける値の集合で表現されて、割当バッファセル情報Iabとしてバッファセル割当器230に供給される。
【0110】
蓄積完了バッファセル番号メモリ290は、パケットバッファ270のバッファセルBc1〜BcNの特定の1つを示すバッファセル番号Nbcnを格納するバッファセル指定領域Rc(Rc1〜RcM)を有する。なお、Mは2以上かつN以下の自然数である。蓄積完了バッファセル番号メモリ290は好ましくは、リングメモリで構成されてバッファセル指定領域Rc1〜RcMが連続的かつ循環的に記録される。結果、バッファセル割当情報格納器240の場合と異なり、バッファセル割当情報格納器240のバッファセルBc1〜BcNと同数だけ用意する必要は無く、M個のバッファセル指定領域Rc1〜RcMを用意すれば良い。
【0111】
バッファセル番号Nbcnを記入すべきバッファセル指定領域Rcm(mは1以上M以下の自然数)は蓄積完了バッファセル番号メモリのライトポインタPWPによって指示される。そして、記入されているバッファセル番号Nbcnを読み出すべきバッファセル指定領域RcmはリードポインタPRPによって指示される。蓄積完了バッファセル番号メモリのライトポインタPWPは、上述のように蓄積完了バッファセル番号メモリ制御器280から出力されるライトポイント更新信号Swpに基づいて進められるが、リードポインタPRPは制御器PBAC1から出力される制御信号Scに基づいて進められる。
【0112】
蓄積完了バッファセル番号メモリのライトポインタPWPがリードポインタPRPの位置より進んでいる場合は、リードポインタPRPが示すバッファセル指定領域Rcmに示されているバッファセルBcnは、データを格納し終わって読み出し可の状態であることを意味している。蓄積完了バッファセル番号メモリのライトポインタPWPとリードポインタPRPが同位置を示している場合は、データが読み出し可の状態にあるバッファセルBcnは無いことを意味している。
【0113】
出力順バッファセル番号メモリ540は、パケットバッファ270のバッファセルBc1〜BcNの特定の1つを示すバッファセル番号Nbcnを格納するバッファセル指定領域Hc(Hc1〜HcL)を有する。なお、Lは2以上かつN以下の自然数である。出力順バッファセル番号メモリ540は好ましくは、リングメモリで構成されてバッファセル指定領域Hc1〜HcLが連続的かつ循環的に記録される。結果、バッファセル割当情報格納器240の場合と異なり、バッファセル割当情報格納器240のバッファセルBc1〜BcNと同数だけ用意する必要は無く、L個のバッファセル指定領域Hc1〜HcLを用意すれば良い。
【0114】
バッファセル番号Nbcnを記入すべきバッファセル指定領域Lcl(lは1以上L以下の自然数)は出力順バッファセル番号メモリのライトポインタHWPによって指示される。そして、記入されているバッファセル番号Nbcnを読み出すべきバッファセル指定領域HclはリードポインタHRPによって指示される。出力順バッファセル番号メモリのリードポインタHRPは、上述のように出力順バッファセル番号メモリ制御器530から出力されるリードポインタ更新信号Hrpに基づいて進められるが、ライトポインタHWPは制御器PBAC1から出力される制御信号Scに基づいて進められる。
【0115】
出力順バッファセル番号メモリ540のライトポインタHWPがリードポインタHRPの位置より進んでいる場合は、リードポインタHRPが示すバッファセル指定領域Hclに示されているバッファセルBcnは、ストリーム出力すべきパケットデータが存在している状態であることを意味している。出力順バッファセル番号メモリのライトポインタHWPとリードポインタHRPが同位置を示している場合は、ストリーム出力すべきパケットデータが存在しないことを意味している。
【0116】
次に図3に示す波形図を参照して、ストリーム入力器TSR、DMAバス調停器210、およびパケットバッファ制御器260の動作について簡単に説明する。図3に示すように、それぞれが188バイトのデータで構成されるパケットデータPから成るトランスポートストリームTSは、外部のトランスポートストリーム源から1バイトづつ、入力転送クロックCkに同期してストリーム入力器TSRに順次入力される。なお、1バイト単位の代わりに1ビット単位で入力される場合もあるが、処理内容は、入力データ単位に関わらず基本的に同一であるであるので、以下に1バイト単位に入力される場合についてのみ説明する。
【0117】
ストリーム入力器TSRは、パケットデータP毎に、最初の1バイトの同期データを検出した時点でパケットデータPのパケット先頭を検出する。そして、パケット先頭を検出する都度、パケット先頭検出信号Spsを生成してDMAバス調停器210に出力する。
【0118】
第1ストリーム入力器TSRは、さらに、パケット先頭を検出した時点で、パケットデータPの到着した時刻を示すタイムスタンプStとそのパケットデータPが第1のトランスポートストリームTSであること示すトランスポートストリーム識別子TSiを生成する。なお、トランスポートストリーム識別子TSiは言い換えれば、そのトランスポートストリームTSがDMAバス調停器210rの第1の入力ポート群に入力されていることを示し、さらに第1ストリーム入力器TSR_1から入力されていることを示す。
【0119】
なお、タイムスタンプStのバイト数はトランスポートストリームデコーダTD1において要求される時刻の精度によって任意に決めることができるが、本例においては好ましくは3バイトで表現する。また、トランスポートストリーム識別子TSiのバイト数は、トランスポートストリームデコーダTD1に入力される全てのトランスポートストリームTSを識別するに十分であれば良いので、本例においては1バイトで表現する。第1ストリーム入力器TSR_1は、タイムスタンプStとトランスポートストリーム識別子TSiとを併せて管理情報IMを生成して、入力されるパケットデータPの先頭に付加する。
【0120】
このように、管理情報IMとしてタイムスタンプStおよびトランスポートストリーム識別子TSiをパケットデータPに付与することによって、それぞれ異なるトランスポートストリームTSに含まれるパケットデータPをパケットバッファ270に格納された後でも正しく識別することが可能となる。
【0121】
なお、複数のトランスポートストリームTSのそれぞれを識別する必要がある場合には、タイムスタンプStε、トランスポートストリーム識別子TSiε、および管理情報IMεと表示するもとのする。εは、ストリーム入力器TSRに入力される複数のトランスポートストリームTSの何番目かを示す自然数である。具体的には、第1のトランスポートストリームTS1に関しては、第1のパケット先頭検出信号Sps1、第1のリクエスト信号Srq1、第1のデータ有効信号Sde1、第1の転送単位TSd1、タイムスタンプSt1、トランスポートストリーム識別子TSi1、および第1ストリーム入力器TSR_1と表現する。
【0122】
同様に、第2のトランスポートストリームTS2に関しては、第2のパケット先頭検出信号Sps2、第2のリクエスト信号Srq2、第2のデータ有効信号Sde2、第2の転送単位TSd2、タイムスタンプSt2、第2のパケット先頭検出信号Sps2、トランスポートストリーム識別子TSi2、およびストリーム入力器TSR_2と表現する。
【0123】
ストリーム入力器TSRは、さらに、パケット先頭から数えて転送単位TSd毎に、DMAバス調停器210に対して、入力を受け付けるよう要求するリクエスト信号Srqを生成して、DMAバス調停器210に出力する。
【0124】
DMAバス調停器210は、リクエスト信号Srqに応答して、その入出力を調停して、ストリーム入力器TSRからの転送単位TSdの入力の準備を整える。準備が整った時点、つまりリクエスト信号Srqより所定の時間Ta後に、データ有効信号Sdeを生成してストリーム入力器TSRに出力する。この時間Taは、パケットデータ処理装置DBA1を含めた内部処理時間に起因して自ずと決まるものであり、パケットデータ処理装置DBA1の状態によって若干の変動が許される。
【0125】
ストリーム入力器TSRは、データ有効信号Sdeに応答して、内部のバッファに蓄積されているパケットデータPのデータを転送単位TSd毎にDMAバス調停器210に出力する。
【0126】
パケットバッファ制御器260は、DMAバス調停器210およびパケット入力開始検出器220を経由して入力される転送単位TSdを、書込要求信号Swdに基づいて、パケットバッファ270の割り当てられたバッファセルBcに書き込む。そして、1パケット分のパケットデータPを書き込んだ時点で転送終了信号Stfを生成して蓄積完了バッファセル番号メモリ制御器280に出力する。
【0127】
次に、図4、図5、および図6を参照して、上述のトランスポートストリームデコーダTD1の動作について詳しく説明する。図4にメインフローを示すように、トランスポートストリームデコーダTD1は、電源が投入されてその動作を開始する。
【0128】
先ず、ステップ#100の初期化サブルーチンにおいて、蓄積完了バッファセル番号メモリ290のライトポインタPWPおよびリードポインタPRPの値が共に0にセットされる。
また、出力順バッファセル番号メモリ540のライトポインタHWPおよびリードポインタHRPの値が共に0にセットされる。
【0129】
ステップ#200の「トランスポートストリームTSの提供番組および可能処理提示」サブルーチンにおいて、配信される番組と、それぞれの番組に対して可能な処理がユーザに対して提示される。後ほど詳しく述べるが、TD制御器TDC1はメインメモリ900のPAT格納領域A(PAT)に格納されている番組コンテンツ管理表PATを読んで、配信される番組と、トランスポートストリームデコーダTD1がユーザに提供できる処理機能とを表す番組内容提示信号Spを生成して、副次処理要求入力器APRに出力する。副次処理要求入力器APRは、番組内容提示信号Sp1に基づいて、ディスプレイ等の適当な表示手段を用いて配信番組と提供処理機能をユーザに一覧提示する。ユーザは、副次処理要求入力器APRを操作して、提示された番組と処理機能の内で、所望の番組と処理機能を選択する。
【0130】
ステップ#300の「トランスポートストリームTSに対する処理要求検出」サブルーチンにおいて、副次処理要求入力器APRは、ユーザの処理要求を検出する。具体的には、副次処理要求入力器APRはユーザの操作に基づいて、ユーザの選択内容を表す処理要求信号Se1を生成してTD制御器TDC1に出力する。
【0131】
ステップ#400の「トランスポートストリームTSに対する処理内容決定」サブルーチンにおいて、ユーザの処理要求に応えて、トランスポートストリームデコーダTD1側にて行うべき具体的な処理内容を決定する。具体的には、TD制御器TDC1は、副次処理要求入力器APRから入力された処理要求信号Seに基づいて、処理対象となる番組、番組に対する処理方法、および処理に要するデバイス等の手段の情報に代表される処理内容情報を生成する。
【0132】
本ステップにおいて、ストリーム出力を行うか否かを決定する。
【0133】
ステップ#500の「処理対象パケットデータ識別情報PIDd生成」サブルーチンにおいて、処理すべきパケットデータPを表す処理対象パケットデータ識別情報PIDdを生成する。具体的には、TD制御器TDC1は、ステップ#400において決定された処理内容情報に基づいて、選択された番組を構成するパケットデータPの内で実際に処理を施すべきパケットデータPのパケット識別子PIDを特定して、処理対象パケットデータ識別情報PIDdを生成する。
【0134】
ステップ#600の「トランスポートストリームTSのパケットデータP蓄積」サブルーチンにおいて、トランスポートストリームデコーダTD1に逐次入力されるトランスポートストリームTSに含まれるパケットデータPのパケットデータ処理装置DBA1へのバッファリングが開始される。なお、パケットデータPは、パケットデータ処理装置DBA1のバッファセルBcのそれぞれに、パケットデータP/n単位(nは自然数)で格納される。
【0135】
なお、本ステップにおける処理については、後ほど図5を参照して詳述する。所定数のパケットデータPの蓄積が完了した時点で、次のステップ#700の処理が開始される。言い換えれば、データバッファリング装置DBA1の複数のバッファセルBcの内、所定数のバッファセルBcのそれぞれにパケットデータPが蓄積された状態でステップ#700の処理が開始する。
【0136】
ステップ#700の「トランスポートストリームTSの処理対象パケットデータP選択」サブルーチンにおいて、パケットデータ処理装置DBA1のバッファセルBcに順次格納されるパケットデータPの中で処理対象のものを選択する。具体的には、1つのバッファセルBcに格納されているパケットデータPがステップ#400で特定されたパケットデータPであるかを、ステップ#500で決定されたパケット識別子PIDを有するかを判断することによって、処理対象パケットデータPとしての選択が行われる。なお、本ステップにおける処理については、後ほど図6を参照して詳述する。
【0137】
ステップ#800の「トランスポートストリームTSのパケットデータPに要求処理実行」サブルーチンにおいて、ステップ#700において選択されたパケットデータPに対して、ステップ#400において決定された内容のユーザの要求処理が実行される。本実施形態においては、バッファセルBcに順次格納されるトランスポートストリームTSのパケットデータPの中で、ステップ#700で選択された特定の番組の番組コンテンツパケットデータPcのみを抽出して、ストリーム出力される例が示されているが、これについては、後ほど図7を参照して詳述する。なお、要求処理が特定の番組を構成する番組コンテンツパケットデータPcの選択抽出に限らず、種々のデジタル処理の適用が可能であることは言うまでも無い。
【0138】
#900の「処理後パケットデータPのストリーム出力」サブルーチンにおいて、ステップ#800で処理されたパケットデータPがトランスポートストリームとして出力される。
【0139】
なお、上述のようにステップ#600は主にハードウェアによる受動的な処理であり、ステップ#700〜#900は主にソフトウェアによる能動的な処理である。よって、ステップ#600とステップ#700〜#900は好ましくは並行処理として構成される。そのためには、ステップ#700における対象処理パケットデータP選択サブルーチンを開始する前に、ステップ#600において、適正な数だけのバッファセルBcにパケットデータPが蓄積されていることが望ましい。これに付いては、後ほど図6を参照して説明する。
【0140】
上述のように、本実施形態では、バッファセルBcに格納される全パケットデータPの内100番台のパケット識別子PIDを有する番組コンテンツパケットデータPcと、管理パケットデータPcAのみが、ステップ#700で選択される。そして、選択された番組コンテンツパケットデータPcおよび管理パケットデータPcAが、ステップ#800でそのままバッファセルBcからパケットデータ処理装置DBA1の外部へ選択番組パケットデータ列Pemとして出力される。
【0141】
また、ストリーム出力器500においてバッファセルBcから読み出されたデータPDがトランスポートストリームとして再構成され、トランスポートストリーム出力HSDとして出力される。
【0142】
ユーザの要求処理が特定の番組コンテンツパケットデータPcの加工であれば、上述の例においては、選択された管理パケットデータPcAおよび番組コンテンツパケットデータPcの内で、特定の番組を形成する番組コンテンツパケットデータPcのみに加工が施されることになる。これについては、後ほど図6を参照して簡単に述べる。
【0143】
次に、図5を参照して、上述のステップ#600におけるパケットバッファ270によるトランスポートストリームTSのパケットデータP蓄積動作の詳細について説明する。
【0144】
先ず、ステップS602において、外部のトランスポートストリーム供給源からトランスポートストリームTSがストリーム入力器TSRに入力される。そして、処理は次のステップS604に進む。
【0145】
ステップS604において、ストリーム入力器TSRは入力されたトランスポートストリームTSのパケット先頭を検出する。具体的には、ストリーム入力器TSRはTD制御器TDC1から入力されたトランスポートストリーム構造信号STSに基づいて、入力されてくるトランスポートストリームTSの構造に基づいて、入力されてくるパケットデータPの先頭を検出する。そして、処理は次のステップS606に進む。
【0146】
ステップS606において、ストリーム入力器TSRはパケット先頭検出信号Spsとリクエスト信号SrqをDMAバス調停器210に出力する。なお、パケット先頭検出信号Spsは、DMAバス調停器210を経由してパケット入力開始検出器220に出力される。そして、処理は次のステップS608に進む。
【0147】
ステップS608において、DMAバス調停器210はリクエスト信号Srqに基づいて、ストリーム入力器TSRからのパケットデータPの転送単位TSdでの入力に備えて調停を行う。そして、処理は次のステップS610に進む。
【0148】
ステップS610において、DMAバス調停器210はデータ有効信号Sdeをストリーム入力器TSRに出力する。そして、処理は次のステップS612に進む。
【0149】
ステップS612において、データ有効信号Sdeに応答して、パケットデータPのストリーム入力器TSRからDMAバス調停器210への転送単位TSdでの転送が開始する。なお、転送単位TSdはDMAバス調停器210を経由して、パケット入力開始検出器220に出力される。そして、処理は次のステップS614に進む。
【0150】
ステップS614において、パケット入力開始検出器220は、ステップS606で入力されたパケット先頭検出信号Spsに基づいて、転送単位TSdの入力が開始されたことを検出する。つまり、パケットバッファ270に1パケットデータP分のデータを転送単位TSd毎に複数回に渡って、ストリーム入力器TSRから転送されるので、パケット先頭検出信号Spsの入力後に入力される転送単位TSdを検出することで、パケットの入力開始を検出する。そして、処理は次のステップS616に進む。
【0151】
ステップS616において、パケット入力開始検出器220はバッファセル要求信号Sbaを生成してバッファセル割当器230に出力すると共に、書込許可信号Swを生成して書込先バッファセル指定器250に出力する。そして、処理は次のステップS618に進む。
【0152】
ステップS618において、バッファセル割当器230は、バッファセル割当情報格納器240から供給される割当バッファセル情報Iabに基づいて、ステップS612において転送が開始された転送単位TSdの書込に供せられるバッファセルBcを割り当てる。そして、処理は次のステップS620に進む。
【0153】
ステップS620において、バッファセル割当器230は、ステップS612での割り当てたバッファセルBcを示すバッファセル割当情報Ibaを生成してバッファセル割当情報格納器240に出力する。そして、処理は次のステップS622に進む。
【0154】
ステップS622において、バッファセル割当情報格納器240はバッファセル割当情報Ibaに基づいて、割当バッファセル情報Iabを生成して格納する。そして、処理は次のステップS624に進む。
【0155】
ステップS624において、バッファセル割当情報格納器240は、バッファセル割当器230から入力されたバッファセル割当情報Ibaを書込先バッファセル指定器250および蓄積完了バッファセル番号メモリ制御器280に出力する。そして、処理は次のステップS626に進む。
【0156】
ステップS626において、パケット入力開始検出器220は、パケットバッファ270のバッファセルBcにへの転送単位TSdの書込を許可する書込許可信号Swを生成して書込先バッファセル指定器250に出力する。そして、処理は次のステップS628に進む。
【0157】
ステップS628において、書込先バッファセル指定器250は、書込許可信号Swに応答して、バッファセル割当情報Ibaが指示する、割り当てられたバッファセルBcに対する書込(蓄積)を要求する書込要求信号Swdを生成して、パケットバッファ制御器260に出力する。そして、処理は次のステップS630に進む。
【0158】
ステップS630において、パケットバッファ制御器260は、パケット入力開始検出器220から経由して供給される転送単位TSdを、書込要求信号Swd(バッファセル割当情報Iba)の指示するバッファセルBcへのパケットデータPの転送単位TSdでの書込(蓄積)を開始させる。そして、処理は次のステップS632に進む。
【0159】
ステップS632において、転送単位TSd毎にストリーム入力器TSRからDMAバス調停器210にリクエスト信号Srqが出力され(ステップS606)、DMAバス調停器210はリクエスト信号Srqに応答して調停を行い(ステップS608)、データ有効信号Sdeをストリーム入力器TSRに出力し(ステップS610)、ストリーム入力器TSRはデータ有効信号Sdeに応答してパケットデータPの次の転送単位TSdの転送を開始する(ステップS614)という、上述の動作が繰り返される。
【0160】
この間、パケットバッファ制御器260はバッファセルBcに書き込まれるデータのバイト数をカウントして、1パケット分のパケットデータPのバッファセルへの蓄積が終了したことを検出する。さらに、転送終了信号Stfを生成して蓄積完了バッファセル番号メモリ制御器280に出力する。カウント数は、TD制御器TDC1に予め格納されているトランスポートストリーム構造情報が示す入力されるトランスポートストリームTSのパケットデータPのデータサイズによって求められる。パケットバッファ制御器260は、そして、処理は次のステップS634に進む。
【0161】
ステップS634において、蓄積完了バッファセル番号メモリ制御器280は、転送終了信号Stfとバッファセル割当情報Ibaに基づいて、1パケット分のパケットデータPの蓄積を完了したバッファセルBcを示すバッファセル番号信号Sbnを生成する。つまり、バッファセル番号信号Sbnは、転送終了信号Stfが入力された時に、バッファセル割当情報Ibaが示すバッファセルBcのバッファセル番号Nbcに相当する。そして、処理は次のステップS636に進む。
【0162】
ステップS636において、蓄積完了バッファセル番号メモリ290は、バッファセル番号信号Sbnの示すバッファセル番号NbcをライトポイントWPの示す領域に記録する。そして、処理は次のステップS638に進む。
【0163】
ステップS638において、蓄積完了バッファセル番号メモリ制御器280は、ライトポイント更新信号Swpを蓄積完了バッファセル番号メモリ制御器280に出力して、蓄積完了バッファセル番号メモリ制御器280のライトポインタPWPを1つ進める。
【0164】
次に、図6に示すフローチャートを参照して、上述のステップ#800におけるパケットデータ処理装置DBA1による要求処理実行の詳細について説明する。なお、本図においては、図4に関して述べたようにステップ#600とステップ#700〜#900とを並行処理とする場合にも、連続処理とする場合にも適用できる構成を示す。
【0165】
先ず、ステップS802において、TD制御器TDC1は蓄積完了バッファセル番号メモリ290から、ライトポインタPWPおよびリードポインタPRPのそれぞれの値を読み出す。蓄積完了バッファセル番号メモリのライトポインタPWPは逐次入力されてくるトランスポートストリームTSのパケットデータPを書き込むバッファセルBcを択一的に示すパラメータであり、リードポインタPRPはデータを読み出す対象であるバッファセルを示すパラメータである。そして、処理は次のステップS804に進む。
【0166】
ステップS804において、TD制御器TDC1によって、ステップS802において読み出された蓄積完了バッファセル番号メモリのライトポインタPWPとリードポインタPRPの値が同一であるか否かが判断される。同一の場合はYes、つまり1パケット分のパケットデータの蓄積が完了したバッファセルBcがないと判断されて、処理は前述のステップS804に戻る。これは、バッファセル中に完全な形で格納されていないパケットデータPに対するアクセスを防止するためである。
【0167】
一方、ステップS804において、同一でない場合はNo、つまりパケットデータPを完全な形で格納されているバッファセルBcがあることを意味する。言い換えると、当該パケットデータPはユーザの要求に対する処理対象候補であるパケットデータPが少なくとも1つはパケットバッファ270に蓄積されていることを意味する。そして、処理は次のステップS806に進む。
【0168】
このように、パケットバッファ270に適当数なパケットデータPが蓄積されていない(最悪、何れのバッファセルBcにも、パケットデータPが完全に格納されていない)時に、ユーザの要求された処理を実行しようとする事態を回避することができる。また、トランスポートストリームTSの伝送経路上の理由等によりパケットデータPの蓄積に異常が生じた場合にも、アンダーフローによる処理異常を防止できる。
【0169】
ステップS806において、格納されている処理対象候補のパケットデータPが実際に処理対象であるか否かを調べるためにアクセスするバッファセルBcを決定する。具体的には、TD制御器TDC1はリードポインタPRPの示すバッファセル指定領域Rcからバッファセル番号Nbcnを読み出す。なお、後述のステップS810で処理対象であると判断された場合には、後述のステップS814において当該パケットデータPに対してユーザの要求に基づく処理を施すために、同バッファセルBcは再度アクセスされる。そして、処理は次のステップS808に進む。
【0170】
ステップS808において、ステップS806で読み出されたバッファセル番号Nbcnに対応するバッファセルBcn(パケットバッファ270)に格納されているパケットデータPから、そのパケットデータPのパケット識別子PIDが読み出されてバッファパケット識別情報PIDeが生成される。そして、処理は次のステップS810に進む。
【0171】
ステップS810において、ステップS808で生成されたバッファパケット識別情報PIDeが上述のステップ#500で生成された処理対象パケットデータ識別情報PIDdとマッチし、かつトランスポートストリーム識別情報TSieが処理対象トランスポートストリーム識別情報TSidとマッチするか否かが判断される。
【0172】
この場合のマッチとは、バッファパケット識別情報PIDeに規定されるパケット識別子PIDが処理対象パケットデータ識別情報PIDdに示されるがパケット識別子PIDに含まれていることを言う。
【0173】
また、Yes、つまり現在アクセス中のパケットデータPは、上述のユーザの要求に基づく処理の対象である場合には、処理は次のステップS812に進む。この時点で、同バッファセルBcに格納されているパケットデータPが処理対象候補から処理対象候補と確認される。
【0174】
ステップS812において、上述のステップ#400で決定された処理が現在アクセス中のパケットデータPに対して実施される。そして、処理は次のステップS814に進む。
【0175】
ステップS814においては、上述のステップS810およびステップS812を経て、ユーザの要求に応じて適切に処理されたパケットデータPが、バッファセルBcNから転送単位TSd毎に読み出され、パケットバッファ制御器260を経由して、DMAバス調停器210へ転送が開始される。そして、処理は次のステップS816に進む。
【0176】
ステップS816において、TD制御器TDC1によって、ステップS800で開始された転送単位TSd毎にそのビット数をカウントすることでDMAバス調停器210へのデータ転送が完了したか否かが繰り返し判断される。なお、データ転送が完了した時点で、処理は次のステップS818に進む。このようにして、上述のステップS802〜S816を経て、ユーザの要求処理を1つのパケットデータPに対して完了する。そして、処理は次のステップS818に進む。
【0177】
ステップS818においては、上述の図4のステップ#400においてストリーム出力を行うかどうか決定した結果を参照し、ストリーム出力を行うかどうかの判断を行う。
【0178】
ストリーム出力を行う場合、つまりYESの場合、処理はステップS820に進む。
【0179】
また、ストリーム出力を行わない場合、つまりNOの場合、処理はステップS820およびS822をスキップし、次のステップS824進む。
【0180】
ステップS820においては、前記ステップS818においてストリーム出力を行うと決定したパケットをストリーム出力対象のパケットであると指定する。すなわち、該当パケットのバッファセル番号を、出力順バッファセル番号メモリ540のライトポインタHWPが示す領域に書き込むとともに、ライトポインタHWPに1を加算し、次の出力順バッファセル番号メモリ540への書き込みに備える。そして、処理は次のステップS826に進む。
【0181】
一方、上述のステップS810においてNo、つまり現在アクセス中のパケットデータPは、上述のユーザの要求に基づく処理の対象でないと判断される場合は、処理は上述のステップS812、S814、S816、S818およびS820を迂回して直接ステップS824に進む。このように、ステップS810において、バッファパケット識別情報PIDeと処理対象パケットデータ識別情報PIDdとのマッチングに基づいて、逐次入力されてくるトランスポートストリームTSに含まれる全パケットデータPを個別に処理対象であるか識別する。そして、処理対象であるパケットデータPのみを選択して、ステップS812においてユーザの要求に基づく処理を施して、ステップS814およびS816において処理の結果得られるパケットデータPをパケットデータ処理装置DBA1の外部に出力する。
【0182】
ステップS824において、TD制御器TDC1は、リードポインタPRPの示すバッファセル番号Nbcnに相当するバッファセルを解放する。具体的には、上述のステップS806で読み出されたバッファセル番号Nbcnに対応するバッファセル割当情報領域Acnに書き込まれている割当識別データを割当無に書き直す。そして、処理は次のステップS826に進む。
【0183】
ステップS826において、TD制御器TDC1は蓄積完了バッファセル番号メモリ290におけるリードポインタPRPの値を進める。これによって、次のパケットデータPがユーザの要求処理対象候補として設定される。
【0184】
上述のように、逐次入力されるトランスポートストリームTSに含まれる番組に対してユーザが選択的に所望する処理を施すためには、当該トランスポートストリームTSに含まれる全てのパケットデータPの内で対応するパケットデータPのみに選択的に処理を施す。そのためには、逐次入力されるパケットデータPのそれぞれに対して、所定の時間だけ処理を施すことを保証する必要がある。そこで、本実施形態においては、蓄積完了バッファセル番号メモリのライトポインタPWPによって、各パケットデータPを入力されてくる順番に、所定の時間、所定のバッファセルBcに閉じ込めると言う課程を管理する。
【0185】
そして、リードポインタPRPによって、閉じ込めたパケットデータPが処理対象であるかを識別し、処理対象である場合には処理を施した後に出力するという課程を管理する。この一連の動作をハードウェアとソフトウェアのハイブリッドな構成によって制御保証するものである。
【0186】
次に、図10に示すフローチャートを参照して、上述のステップ#900におけるストリーム出力器500によるストリーム出力の詳細について説明する。
【0187】
まず、ステップ902において、
出力順バッファセル番号メモリのライトポインタHWPとリードポインタHRPの値が同一であるか否かが判断される。同一の場合はYes、つまり1パケット分のパケットデータの処理・加工が完了したバッファセルBcがないと判断されて、処理は前述のステップS902に戻る。これは、バッファセル中に完全な形で処理・加工がなされていないパケットデータPに対するアクセスを防止するためである。
【0188】
一方、ステップS902において、同一でない場合はNo、つまりパケットデータPを完全な形で処理・加工がなされているバッファセルBcがあることを意味する。言い換えると、ユーザの要求に対するストリーム出力処理対象候補であるパケットデータPが少なくとも1つはパケットバッファ270に存在していることを意味する。そして、処理は次のステップS904に進む。
【0189】
このように、パケットバッファ270に適当数なパケットデータPが存在していない(最悪、何れのバッファセルBcも、パケットデータPが完全に処理・加工されていない)時に、ストリーム出力を実行しようとする事態を回避することができる。
【0190】
ステップS904において、格納されているストリーム出力対象候補のパケットデータPにアクセスするためにバッファセルBcを決定する。具体的には、ストリーム出力器500はリードポインタHRPの示すバッファセル指定領域Hcからバッファセル番号Nbcnを読み出す。
そして、処理は次のステップS906に進む。
【0191】
ステップS906において、ステップS904で読み出されたバッファセル番号Nbcnに対応するバッファセルBcn(パケットバッファ270)に格納されているパケットデータPの所定の位置から、ストリーム出力器500が管理情報IMを読み出し、出力開始指示器520に送る。
【0192】
そして、処理は次のステップS908に進む。
【0193】
ステップS908において、出力開始指示器520では管理情報IMの中から時刻情報Stを抽出し、TD制御器TDC1から指示された一定時間の遅延T(HSDelay)と加算して、ストリーム出力を開始する時刻情報を生成し、保持する。前記一定時間の遅延T(HSDelay)は、パケットデータの処理・加工等、パケットデータ出力装置TD1における処理時間によって定められる値である。
【0194】
そして、処理は次のステップS910に進む。
【0195】
ステップS910において、出力開始指示器520は前記ストリーム出力を開始する時刻情報とタイマ510の示す現在時刻情報とを比較する。
【0196】
現在時刻情報がストリーム出力開始時刻情報と一致しない間は、何もせず一致するまで待ち続ける。現在時刻情報がストリーム出力開始時刻情報と一致した場合は、ストリーム出力器500に対して出力開始指示信号ReqSTを生成し、ストリーム出力開始を指示する。
【0197】
そして、処理は次のステップS912に進む。
【0198】
ステップS912において、ストリーム出力器500はパケットバッファ260に格納されているストリーム出力するデータを読み出すため、DMAバス調停器210に対してデータ要求信号Prq1を出力する。DMAバス調停器210はデータ要求に応じて、バスの調停を行い、バッファセルBcNからパケットバッファ制御器260を経由してストリーム出力するデータを転送単位TSd毎に読み出し、ストリーム出力器500に対して、データPDをデータアクナリッジ信号Pdeとともに出力する。
【0199】
ストリーム出力器500においては、データアクナリッジ信号Pdeがアクティブの場合にストリーム出力データPDを取り込む。
【0200】
つまり、ストリーム出力器500が受け取るデータは離散的であるため、いったん内部のバッファに蓄えた後、一定間隔で読み出すスムージングを行ってトランスポートストリームHSDを出力する。
【0201】
そして、処理は次のステップS914に進む。
【0202】
ステップS914において、パケットバッファ制御器260で転送ビット数をカウントすることで、ストリーム出力器500へのデータ転送が完了したか否かが判断される。なお、データ転送が完了した時点で、処理は次のステップS916に進む。
【0203】
ステップS916において、出力順バッファセル番号メモリ540におけるリードポインタHRPの値を進める。これによって、リードポインタHRPが指し示す出力順バッファセル番号メモリ540の領域に書き込まれているバッファセル番号が次のストリーム出力対象パケットとして設定される。
【0204】
そして、処理は次のステップS918に進む。
【0205】
ステップS918において、制御器PBAC1は、リードポインタHRPの示すバッファセル番号Nbcnに相当するバッファセルを解放する。具体的には、上述のステップS904で読み出されたバッファセル番号Nbcnに対応するバッファセル割当情報領域Acnに書き込まれている割当識別データを割当無に書き直す。
【0206】
(第2の実施形態)
以下に、図12、図13を用いて本発明の第2の実施形態にかかるパケットデータ出力装置について説明する。本実施形態においては、第1の実施形態と同様に、入力される複数のトランスポートストリームTS1〜TSεのパケットデータPのそれぞれに個別的に特定の処理を施した後、トランスポートストリームとして再構成し出力することに加えて、パケットバッファ容量を小さくすることによってコスト低減を図る対策を講じたものである。
【0207】
よって、以下に述べる点を除いて、図1に示したトランスポートストリームデコーダTD1と基本的に同一の構造を有する。
【0208】
つまり、本実施形態においては、図13に図示するように、パケットに付与するタイムスタンプTS’をパケットの後端が到着した時刻のタイムスタンプとした点だけが異なる。
【0209】
図12を用いて、パケットの後端が到着した時刻のタイムスタンプを用いる場合が、パケットの先端が到着した時刻のタイムスタンプを用いる場合よりも有利な点を説明する。
【0210】
図12は、図11に対して、入力されるストリームの入力レートが遅い場合のタイミング図である。このように入力レートが遅い場合、1パケット分のパケットデータをパケットバッファに格納するのに必要な時間と、該当パケットに必要な処理・加工を行うのに必要な時間(T(TP))を加えた値よりT(HSDelay)の値を大きく設定しなければならない。
【0211】
T(HSDelay)の値がこれより小さいと、必要な処理・加工が終わる前の不正なデータを出力してしまうからである。つまり、T(HSDelay)の値は、ストリームの入力レートおよび本発明のストリーム出力装置における処理・加工に必要な時間で決定される。
【0212】
したがって、入力レートの変動に対して必要な処理・加工を行った後で正しくストリーム出力するためには、T(HSDelay)の値を入力レートの変動幅に対して十分に大きく設定する必要がある。
【0213】
ところが、T(HSDelay)の値を大きくすればバッファセルを解放するタイミングが遅くなり、バッファセルの使用数が多くなる。このため、パケットバッファがオーバーフローしないようにバッファセルの数Nを多くする必要があり、コストアップにつながる。
【0214】
これに対して、パケットの後端が到着した時刻のタイムスタンプを用いる場合、T(HSDelay)の値は、ストリームの入力レートに依存せず、本発明のストリーム出力装置における処理・加工に必要な時間のみで決定される。
【0215】
したがって、バッファセルの数Nを多くすることなく、入力レートの変動に対応できる。
【0216】
【発明の効果】
本発明は、それぞれに識別情報が付与された連続する複数のパケットデータによって構成されるトランスポートストリームが入力されたとき、当該トランスポートストリームに対して所定の処理を施すトランスポートストリーム処理装置に用いられ、所定の処理を施した後にトランスポートストリームとして再構成し出力するパケットデータ出力装置であって、出力の対象となるパケットデータを識別するための出力対象パケットデータ識別情報を入力する識別情報入力手段と、前記パケットデータのそれぞれを、入力されてくる順番に所定時間だけ保持するパケットデータ保持手段と、前記パケットデータ保持手段に保持されているパケットデータに付与されている識別情報を読み出し、前記出力対象パケットデータ識別情報と比較して、前記保持されているパケットデータが予め規定された出力の対象であるか否かを選定する出力対象パケットデータ選定手段と、出力対象であるパケットをトランスポートストリームとして再構成し、出力するストリーム出力手段とを備えることとした。
【0217】
上記の構成によって、逐次入力されるトランスポートストリームのパケットデータの個々を一次的に格納して、その格納されたパケットデータに対して予め規定された処理・加工を施した後、パケットデータ単位でのストリーム出力処理を可能にするという効果を奏する。
【図面の簡単な説明】
【図1】本発明の第1の実施形態にかかる、パケットデータ出力装置を組み込んだトランスポートストリームデコーダ装置の構造を示すブロック図
【図2】図1に示したバッファセル割当情報格納器、パケットバッファ、蓄積完了バッファセル番号メモリおよび出力順バッファセル番号メモリの相互関係を示す説明図
【図3】図1に示したトランスポートストリームデコーダにおける種々の信号を示す波形図
【図4】図1に示したトランスポートストリームデコーダの主な動作を示すフローチャート
【図5】図4に示したトランスポートストリームTSのパケットデータP蓄積サブルーチンにおける詳細な動作を示すフローチャート
【図6】図4に示したトランスポートストリームTSの処理対象パケットデータP選択サブルーチンにおける詳細な動作を示すフローチャート
【図7】図1に示したトランスポートストリームデコーダに入力されるトランスポートストリームの構成を示す説明図
【図8】図1に示したメインメモリに入出力されるパケットデータ列の一例を示す模式図
【図9】図1に示したメインメモリからメインメモリ制御器を経由して出力される単一番組パケットデータ列の構成を示す説明図
【図10】図4に示した処理後パケットデータPのストリーム出力における詳細な動作を示すフローチャート
【図11】図1に示したストリーム出力HSDの構成を示す説明図
【図12】図11に示したストリーム出力HSDの構成に対して、入力されるトランスポートストリームTSのビットレートが遅い場合のストリーム出力HSDの構成を示す説明図
【図13】図3に示した波形図に対して、管理情報IMに付与される時刻情報タイムスタンプTSがパケットデータ末尾の到着時刻である場合の波形図
【図14】図11に示したストリーム出力HSDの構成に対して、ストリーム出力器における種々の信号を示す波形図
【図15】従来のトランスポートストリームデコーダの構成の一例を示すブロック図
【符号の説明】
TD1,TDAc トランスポートストリームデコーダ
TSR_1 ストリーム入力器
DBA1 パケットデータ処理装置
PBAC1 制御器
PCF パケットフィルタ
210 DMAバス調停器
220 TSd入力開始検出器
230 バッファセル割当器
240 バッファセル割当情報格納器
250 書込先バッファセル指定器
260 パケットバッファ制御器
270 パケットバッファ
280 蓄積完了バッファセル番号メモリ制御器
290 蓄積完了バッファセル番号メモリ
300 パケットアクセス器
500 ストリーム出力器
510 タイマ
520 出力開始指示器
700 メインメモリ制御器
900 メインメモリ
TDC1 TD制御器
Ac1〜AcN バッファセル割当情報領域
Bc1〜BcN バッファセル
Nbc1〜NbcN バッファセル番号
MBU 最低バッファ容量
Rc,Rc1〜RcM バッファセル指定領域
ReqST 出力開始指示信号
Sbn バッファセル番号信号
Sc 制御信号
ScW 制御信号
Sde データ有効信号
Sps パケット先頭検出信号
Sr 状態信号
Srq リクエスト信号
SrW 状態信号
Stf 転送終了信号
Shf ストリーム出力終了信号
Sw 書込許可信号
Swd 書込要求信号
Swp ライトポイント更新信号
TS1 トランスポートストリーム
TSd 転送単位
[0001]
BACKGROUND OF THE INVENTION
The present invention identifies whether each piece of packet data constituting an input transport stream is a predetermined processing target, and if corresponding, performs the predetermined processing and then outputs the data in a predetermined format. More particularly, the present invention relates to a packet data output device that is incorporated in a transport stream decoder and provides a data interface such as data output, data replacement, and data insertion in units of packet data.
[0002]
[Prior art]
Conventionally, a request for performing secondary processing by performing various processes and editing on digital content has been limited only to 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 is enriched every day. In other words, a transport stream that has been implemented only by a broadcasting station or the like in the past due to the enhancement of the transport stream that provides digital content, the improvement of the hardware performance necessary for processing by the user, and the reduction of the cost. Environmental conditions are being prepared for users to enjoy editing and editing of packet data constituting a transport stream.
[0003]
However, in order to perform desired processing for each digital content on the user side, individual packet data constituting a transport stream that is sequentially input is selected, and further, processing corresponding to the selected packet data or In order to store digital content that has undergone desired processing, the packet data that has undergone processing or processing is reconstructed as a transport stream and output to an external data storage device. There is a need.
[0004]
As an example of such means, FIG. 15 shows a conventionally implemented device having a function of identifying, selectively extracting and outputting individual packet data constituting a transport stream. The transport decoder shown in the figure extracts only a packet data group constituting a specific single program from a single transport stream composed of packet data sequences forming each of a plurality of programs (Program). Output. In other words, as will be described later, the transport decoder has means for selectively extracting only specific packet data from a plurality of packet data constituting a single transport stream and outputting it at a predetermined timing. Is provided.
[0005]
The transport stream decoder TDAc includes a stream input device 500C that receives a transport stream TS supplied from an external transport stream source (not shown), a program packet filter PCF, a packet data processor 650C, and a main memory controller 700C. , A main memory 900C, a transport stream output unit 850C, and a TD controller TDCc that controls the operation of the entire transport stream decoder TDAc.
[0006]
First, the transport stream TS supplied from an external transport stream source (not shown) will be described with reference to FIG. The transport stream TS is composed of a plurality of packet data P each displayed as one frame. Each of these packet data P is given a unique packet identifier (Packet ID) PID and used for identification.
[0007]
These packet data P describe a plurality of program content packet data Pc forming the content for each α type program (α is an integer of 1 or more), and a packet identifier PID of the program content packet data Pc for each program. The program content packet data management table (Program Map Table) PMT, the program content packet data management table PMT corresponding to each program, and the program content management table (Program Association Table) PAT.
[0008]
The program content management table PAT and the program content packet data management table PMT having information for managing the program content packet data Pc are collectively referred to as management packet data PcA. FIG. 7 illustrates the configuration of the transport stream TS when at least three different programs 1, 2 and 3 are provided (α ≧ 3).
[0009]
Program content packet data Pc101_1, Pc101_2,... Is video data of program 1, and program content packet data Pc111_1, Pc111_2,. Similarly, program content packet data Pc201_1, Pc201_2,... Is video data of program 2, and program content packet data Pc211_1, Pc211_2,.
[0010]
Further, program content packet data Pc301_1, Pc301_2,... Are video data of program 3, and program content packet data Pc311_1, Pc311_2,. As described above, program content packet data Pc having video data is generically referred to as program video content packet data PcV, and program content packet data Pc having audio data is collectively referred to as program audio content packet data PcS.
[0011]
Needless to say, the number of programs (α) that can be provided is not limited to 3, and the transport stream TS includes only the necessary program content packet data Pc corresponding to the number of programs to be provided. Furthermore, depending on the contents of the program, program content packet data Pc corresponding to information (for example, character information) other than video and audio is also included.
[0012]
More specifically, in the transport stream TS, a program content management table PAT and a program content packet data management table PMT are arranged between the program content packet data Pc at a frequency determined from the transmission path and processing factors. Composed. In FIG. 7, among a plurality of program content packet data Pc forming all three types of programs 1, 2, and 3, program content packet data Pc101_1, Pc111_1, Pc201_1, Pc211_1, Pc301_1, and Pc311_1 are preceded. The program content packet data management tables PMT1, PMT2, and PMT3 in which the packet identifier PID of the program content packet data Pc for each program is described, and the programs corresponding to the respective packet identifiers PID of these program content packet data management tables PMT Management packet data PcA consisting of a program content management table PAT showing
[0013]
In this specification, the same member or signal is expressed by adding a common numeral or alphabetical code as an identifier, and even if the same member or signal is individually identified, The identifier is further expressed with a numerical or alphabetic suffix as an individual identifier. Therefore, when it is not necessary to individually identify the same member or signal, the identifier is represented without a suffix. Specifically, the program content packet data Pc101 is a general term for the program content packet data Pc101_1, Pc101_2,... Pc101_β (β is an arbitrary natural number). The same applies to the above-mentioned program content packet data Pc111, Pc201, Pc211, Pc301, and Pc401.
[0014]
The program content management table PAT describes packet identifiers PID of the program content packet data management table PMT for all programs included in the transport stream TS. That is, the packet identifier PID of the program content packet data management table PMT of program 1 is 100, the packet identifier PID of the program content packet data management table PMT of program 2 is 200, and the program content packet data management table PMT of program 3 The packet identifier PID is 300,..., And the packet identifier PID of the program content packet data management table PMT of the program α is described as α00.
[0015]
Further, before the program content packet data Pc101_2, Pc111_2, Pc201_2, Pc211_2, Pc301_2, and Pc311_2, the management packet data PcA composed of the above-mentioned program content packet data management tables PMT1, PMT2, and PMT3 and the program content management table PAT Has been placed again. If the transport stream TS includes four or more programs (α ≧ 4), the management packet data PcA includes program content packet data management tables PMT4 to PMTα, which are not clearly shown in FIG. Needless to say, the transport stream TS includes program content packet data Pc corresponding to each program.
[0016]
The arrangement frequency of the management packet data PcA varies depending on the type of packet data P included in the transport stream TS. Furthermore, the management packet data PcA is not necessarily arranged as a group of packet data P as illustrated in FIG. In some cases, other packet data P may be confused between the program content management table PAT, the program content packet data management table PMT, and the program content packet data Pc, which are constituent units of the management packet data PcA. is there.
[0017]
Next, each component of the transport stream decoder TDAc to which the above-described transport stream TS is input will be described with reference to FIG. The stream input device 500C receives a transport stream TS input from an external transport stream source (not shown), detects the head of the packet based on a synchronization byte or a synchronization signal in the stream, and programs the program sequentially from the head of the packet. Transfer to packet filter PCF.
[0018]
The program packet filter PCF, based on the packet identifier PID assigned to each of all the program content packet data Pc transferred from the stream input device 500C, the program video content packet data PcV of the specific program, the specific program The program audio content packet data PcS and the management packet data PcA of the specific program are selectively output. The packet identifier PID of the packet data to be output is instructed to the program packet filter PCF by the TD controller TDCc.
[0019]
The management packet data PcA extracted from all packet data P included in the input transport stream TS and the program content packet data Pc (PcV, PcA) forming the content of a specific program are selected together. Collectively called one program packet data string Pes.
[0020]
Among the program content packet data Pc constituting a plurality of programs included in the transport stream TS, management packet data PcA (PAT, PMT1), program video content packet data PcV constituting the program 1 (Pc101_1, Pc101_2,... ) And program audio content packet data PcS (Pc111_1, Pc111_2,...) Are extracted by the program packet filter PCF in the order of arrival at the transport stream decoder TDAc.
[0021]
The extracted program content management table PAT, program content packet data management tables PMT1 and PMT2, and program content packet data Pc101_1, Pc111_1, Pc101_2, Pc111_2,... Are in the order of arrival at the transport stream decoder TDAc. The selected single program packet data string Pes is output to the packet data processor 650C.
[0022]
The packet data processor 650C processes and processes each packet data in accordance with an instruction from the TD controller TDCc, and outputs the packet data string Pesd. The content of the processing is, for example, decoding of scrambled data in pay broadcasting, but the specific processing content is a known fact and will not be described here.
[0023]
The main memory controller 700C controls the main memory 900C to change the packet data string Pesd input from the packet data processor 650C into the management packet data PcA, the single program video content packet data string PssV, and the single program audio. Each content packet data string PssS is stored in a predetermined area of the main memory 900C.
[0024]
That is, the main memory 900C converts the packet data P included in the packet data string Pesd input from the packet data processor 650C via the main memory controller 700C into the management packet data PcA, the program video content packet data PcV, and Any one of the program audio content packet data PcA is selected and stored as management packet data PcA, single program video content packet data sequence PssV, and single program audio content packet data sequence PssS.
[0025]
Further, the main memory controller 700C reads out the video content packet data string PssV and the audio content packet data string PssS from the main memory 900C, and outputs them to the external device represented by the AV decoder 2000C as the packet data string Pss.
[0026]
The stream output unit 850C reconfigures the packet data string Pesd input from the packet data processor 650C as a transport stream, and outputs it to an external device (not shown).
[0027]
Note that the transport stream decoder TDAc generates a state signal SrWC indicating the operation state of each of the above-described components and outputs the state signal SrWC to the TD controller TDCc. Based on the status signal SrWC, the TD controller TDCc generates a control signal ScWC that controls the operation of each component of the transport stream decoder TDAc, and outputs the control signal ScWC to the transport stream decoder TDAc.
[0028]
In this way, the TD controller TDCc controls the entire operation of the transport stream decoder TDAc, and only the program content packet data Pc constituting a specific program from the transport stream TS input to the transport stream decoder TDAc. The data is extracted in the input order and output to an external device such as the AV decoder 2000C as the program packet data string Pss. The AV decoder 2000C sequentially decodes the program video content packet data PcV and the program audio content packet data PcS included in the input single program packet data sequence Pss to generate a video / audio signal Sav for viewing by the user. .
[0029]
Further, program content packet data Pc and management packet data PcA constituting a specific program are extracted from the transport stream TS input to the transport stream decoder TDAc, and reconfigured as a transport stream HSD for secondary use. Thereafter, the data is output to an external device such as a data storage device.
[0030]
The transport stream output from the stream output unit 850C will be described with reference to FIG. TS is an input transport stream, and each frame indicates a packet constituting the transport stream. As described above, the program content management table PAT, the program content packet data management tables PMT1, PMT2 and PMT3 for each program, the packet data Pc101 and Pc111 for program 1, the packet data Pc201 and Pc211 for program 2, and the packet data Pc301 for program 3 And Pc311 are arranged.
[0031]
In FIG. 11, among TS packets input to the transport decoder TDAc, packets constituting the program 1 and PMT1 and PAT are selected, processed and processed, and then output as a transport stream HSD.
[0032]
A specific example of processing / processing is descrambling. Descrambling refers to a process of decrypting content that has been encrypted so that only contracted subscribers can view paid program content.
[0033]
Packets that have been processed / processed are shown with a single quote “′” in the notation before processing / processing.
[0034]
The time T (HSDelay) from when packet data is input until it is output is determined by the data processing time in the transport decoder TDAc, and all packet data is output after T (HSDelay) time after input.
The frame enclosed by the dotted line is stuffed and output.
[0035]
In the output transport stream HSD, since the packets constituting the program 2 and the program 3 are deleted from the input transport stream TS, the PAT ′ of the output transport stream HSD is the same as the PAT of the input transport stream TS. Is different.
[0036]
That is, the PAT of PMT1, PMT2, and PMT3 corresponding to programs 1, 2, and 3 is written in the PAT of the input transport stream TS, but PMT1 corresponding to program 1 is written in the PAT 'of the output transport stream HSD. Only the PID must be listed.
[0037]
In this way, a method of outputting by replacing the PAT will be described with reference to FIG. Based on the PAT information stored in the main memory 900C, the TD controller TDCc generates a PAT ′ in which only the PID corresponding to the program 1 is written, and stores it in another area of the main memory 900.
[0038]
When the PAT is input from the packet data processor 650C, the stream output unit 850C requests the main memory controller 700C to read out the PAT ′ stored in the main memory 900C and output it instead of outputting the PAT. To do.
[0039]
This packet data replacement is not limited to PAT replacement, and packet data of a specific PID or packet data input at a specific timing can be replaced with data stored in the main memory 900C and output.
[0040]
For example, although the packet data string becomes discontinuous when the program is switched, packet data DIT (Discontinuity Information Table) indicating the discontinuity point can be inserted.
[0041]
FIG. 8 shows an example of the storage state of each program content packet data Pc in the main memory 900C. The main memory 900C has a video packet storage area A (video) for storing program content packet data Pc101_1, Pc101_2, Pc101_3, Pc101_4,... Which are program video content packet data PcV, and a program which is program audio content packet data PcS. And an audio packet storage area A (audio) for storing content packet data Pc111_1, Pc111_2, Pc111_3, Pc111_4,.
[0042]
Further, a PAT storage area A (PAT) for storing information of the program content management table PAT, a PAT 'storage area A (PAT') for storing information obtained by changing the program content management table PAT by the TD controller TDCc, a packet It has a DIT storage area A (DIT) for storing information indicating discontinuous points of the data string, and a PMT storage area A (PMTα) for storing information of the program content packet data management table PMT. Specifically, the program content packet data management table PMT1 for program 1 is stored in the program content packet data management table PMT storage area A (PMT1).
[0043]
The program content packet data Pc101_1, Pc101_2, Pc101_3, Pc101_4,... Are stored in the video packet storage area A (video) without any gap, thereby forming the program video content packet data string PssV. Similarly, the program content packet data Pc111_1, Pc111_2, Pc111_3, Pc111_4,... Are stored in the audio packet storage area A (audio) without any gap, thereby forming the program audio content packet data sequence PssS.
[0044]
As described above, the program video content packet data sequence PssV and the program audio content packet data sequence PssS configured in the main memory 900C are read as the program packet data sequence Pss as illustrated in FIG. 9 by the main memory controller 700C. And output to the AV decoder 2000C.
[0045]
[Problems to be solved by the invention]
The conventional transport stream decoder configured as described above, when a single transport stream is input, reproduces a program from the transport stream and presents it to the user, or processes and processes packet data. Therefore, it is sufficient for the purpose of outputting to an external data storage device or the like.
[0046]
However, in the case where a plurality of transport streams are input, in order to process a plurality of transport streams at the same time, the number of transport decoders described above is required as many as the number of input transport streams, which increases the scale of the apparatus. In other words, the structure becomes complicated, the processing load increases, the specification or the required processing cannot be changed, and the cost increases.
[0047]
The present invention is input in view of the above problems. plural It is an object of the present invention to provide a packet data output device that identifies whether each piece of packet data constituting a transport stream is a predetermined processing target, and outputs the packet data after performing the predetermined processing.
[0048]
[Means for Solving the Problems]
A first invention is a transport stream processing device that performs predetermined processing on a transport stream when a transport stream composed of a plurality of continuous packet data each having identification information attached thereto is input A packet data output device that is reconfigured and output as a transport stream after being subjected to predetermined processing,
Identification information input means for inputting output target packet data identification information for identifying packet data to be output;
Packet data holding means for holding each of the packet data for a predetermined time in the order of input;
The identification information given to the packet data held in the packet data holding means is read, and compared with the output target packet data identification information, the held packet data is the target of the output specified in advance. Output target packet data selection means for selecting whether there is,
A stream output unit configured to reconfigure and output a packet to be output as a transport stream.
[0049]
As described above, in the first invention, each packet data of the transport stream that is sequentially input is temporarily stored, and the stored packet data is subjected to predetermined processing / processing. Thereafter, stream output processing in units of packet data is enabled.
[0050]
A second invention is characterized in that, in the first invention, after the completion of the output process is detected, the packet data holding means is released for storing other packet data.
[0051]
According to a third aspect, in the first aspect, output processing is prohibited while data processing / processing to be performed before output processing of the packet data is not completed.
[0052]
A fourth invention is characterized in that, in the first invention, output processing is permitted after completion of data processing / processing to be performed before output processing of the packet data.
[0053]
In a fifth aspect based on the first aspect, the present invention further comprises an output buffer cell pointer indicating a buffer cell that is outputting packet data among the plurality of buffer cells, and the buffer cell allocator includes: The buffer cell shown is not assigned to packet data storage.
[0054]
A sixth invention includes a timer for generating time information when each input of the continuous packet data is started, the packet data holding means for storing the time information in a buffer cell together with packet data, and the packet data holding Output start instructing means for determining the timing to start outputting the stream based on the time information read from the means, and stream output means for reconfiguring and outputting the packet data as a transport stream.
[0055]
As described above, the sixth invention is characterized in that the packet data is output after a delay of a predetermined time with respect to the time information, so that the time interval of each input packet data is maintained and output. .
[0056]
A seventh aspect of the invention is a timer for generating time information when the end of each successive packet data is input, the packet data holding means for storing the time information in a buffer cell together with packet data, and the packet data holding Output start instructing means for determining the timing to start outputting the stream based on the time information read from the means, and stream output means for reconfiguring and outputting the packet data as a transport stream.
[0057]
As described above, in the seventh invention, by outputting packet data after a delay of a predetermined time with respect to the time information, the fixed delay value can be determined without depending on the input bit rate. Features.
[0058]
DETAILED DESCRIPTION OF THE INVENTION
(First Embodiment)
The packet data processing apparatus according to the first embodiment of the present invention will be described below with reference to FIGS. 1, 2, 3, 4, 5, 7, and 8. FIG.
[0059]
The packet data processing apparatus according to the present invention is a data output used in a transport stream decoder that selectively extracts and outputs content data of a plurality of programs included in a single transport stream TS in this embodiment. Configured as a device.
[0060]
In the present embodiment, all the packet data P constituting the transport stream TS that is sequentially input are individually buffered, and the individually buffered packet data P is identified, and the packet data P is identified. On the other hand, a packet data processing device having a function of outputting after processing desired by a user is newly devised.
[0061]
FIG. 1 shows a transport stream decoder TD1 incorporating the packet data processing apparatus DBA1 according to this example. The transport stream decoder TD1 includes a stream input unit TSR that receives a transport stream TS supplied in units of packets from an external transport stream source (not shown), a packet data processing device DBA1, a main memory controller 700, and a main memory. 900, a timer 510, and a controller PBAC1.
[0062]
The stream input unit TSR temporarily holds a transport stream TS supplied in units of packets from an external transport stream source (not shown) in an input buffer provided therein, and for each predetermined transfer unit TSd. Transfer to the packet data processing device DBA1. In this example, the transfer unit TSd is set to 8 bytes, but can be arbitrarily determined in consideration of the arbitration load and transmission efficiency in the packet data processing device DBA1.
[0063]
When the packet head is detected, a time stamp St indicating the arrival time of the packet data P and a transport stream identifier TSi indicating that the packet data P is the first transport stream TS are generated.
[0064]
The packet data processing device DBA1 manages and accumulates the transport stream TS of the transfer unit TSd sequentially supplied from the stream input device TSR in units of packet data P, and at the same time the program content packet data Pc included in the transport stream TS. Output individually and selectively. In the present embodiment, an example in which only the program content packet data Pc of one program is extracted from the transport stream TS including three programs and output as the selected multiple program packet data string Pem will be described.
[0065]
The main memory 900 temporarily stores the program packet data string Pem output from the packet data processing device DBA1 via the main memory controller 700, and stores the program packet data string Pms (program video content packet data string PmsV, The program audio content packet data string PmsS) is output to an external device (not shown) typified by an AV decoder.
[0066]
Also, the replacement packet data RD input from the TD controller TDC1 is temporarily stored via the main memory controller 700 and output to the stream output device 500.
[0067]
The main memory controller 700 temporarily holds the program packet data string Pem input from the packet data processing apparatus DBA1, controls the operation of the main memory 900, and stores the temporarily held program packet data string Pem as the main. In addition to outputting to the memory 900, the main memory 900 is controlled to form a program video content packet data string PmsV and a program audio content packet data string PmsS therein.
[0068]
The main memory controller 700 temporarily holds the data input from the TD controller TDC1, controls the operation of the main memory 900, outputs the temporarily held data to the main memory 900, and The main memory 900 is controlled to form replacement packet data RD therein.
[0069]
The timer 510 outputs time information St. Specifically, the counter is incremented when a predetermined time elapses, and the count value is output. The predetermined time is determined by the accuracy of the required time information. The maximum count value is large enough to ensure the uniqueness of time information.
[0070]
The TD controller TDC1 stores data structure information for each type of transport stream TS input to the transport stream decoder TD1 in advance. The TD controller TDC1 generates a transport stream structure signal STS indicating the data structure of the transport stream TS that is actually input, and outputs the transport stream structure signal STS to the stream input device TSR. Accordingly, the stream input device TSR is controlled to operate properly. In this case, the user may instruct the structure information stored in the TD controller TDC1 using the secondary processing request input device APR or the like.
[0071]
Instead of storing the data structure information of the transport stream TS in the TD controller TDC1 in advance, the user can use the secondary processing request input device APR to store the structure information of the transport stream TS that is actually input. You may make it instruct | indicate to TD controller TDC1. Further, the transport stream decoder TD1 may be configured to read the actually input transport stream TS and detect the data structure.
[0072]
The TD controller TDC1 controls the operation of the entire transport stream decoder TD1. The transport stream decoder TD1 generates a state signal SrW indicating the operation state of each component described above and outputs it to the TD controller TDC1. The TD controller TDC1 generates a control signal ScW for controlling the operation of each component of the transport stream decoder TD1 based on the state signal SrW, and outputs the control signal ScW to the transport stream decoder TD1. The generation of the status signal SrW and the control signal ScW and the control of the transport stream decoder TD1 are well-known techniques and will not be described.
[0073]
The packet data processor DBA1 includes a DMA bus arbitrator 210, a packet input start detector 220, a buffer cell allocator 230, a buffer cell allocation information storage 240, a write destination buffer cell designator 250, a packet buffer controller 260, a packet Buffer 270, storage completion buffer cell number memory controller 280, storage completion buffer cell number memory 290, packet access device 300, packet data processor 410, output order buffer cell number memory controller 530, output order buffer cell number memory 540, A stream output unit 500 and a packet selector 400 that determines whether the buffered packet data P is the desired packet data P are included.
[0074]
The DMA bus arbitrator 210 inputs / outputs packet data P between the stream input device TSR, the packet buffer controller 260, the packet selector 400, the packet data processor 410, the stream output device 500, and the main memory controller 700. Mediate.
[0075]
That is, the DMA bus arbitrator 210 arbitrates data access to the packet buffer 270 via the packet buffer controller 260. In particular,
Data transfer from the stream input device TSR to the packet buffer 270, data transfer from the packet buffer 270 to the packet selector 400, data transfer from the packet buffer 270 to the packet data processor 410, and from the packet data processor 410 to the packet buffer 270 The data transfer from the packet buffer 270 to the stream output device 500 and the data transfer from the packet buffer 270 to the main memory controller 700 are arbitrated.
[0076]
When the request signal Srq input from the stream input unit TSR is selected by arbitration, the DMA bus arbitrator 210 supplies the packet input start detector 220 with the packet head detection signal Sps and the transfer unit TSd.
[0077]
The packet input start detector 220 detects that the input of the transfer unit TSd is started for each packet data P based on the packet head detection signal Sps and the transfer unit TSd, and the input transfer unit TSd is stored in the packet buffer. This is supplied to the controller 260. Then, the packet input start detector 220 requests to allocate one of a plurality of buffer cells constituting the packet buffer 270 in order to store the packet data P that has been input in the transfer unit TSd. A request signal Sba is generated and output to the buffer cell allocator 230. Further, if buffer cell Bc is allocated, a write permission signal Sw is generated to indicate that writing of program content packet data Pc can be started with respect to the buffer cell, and write destination buffer cell designator 250 is designated. Output to.
[0078]
In response to the buffer cell request signal Sba, the buffer cell allocator 230 allocates a buffer cell to be used for storing packet data P that has been input based on allocation buffer cell information Iab described later. Then, buffer cell allocation information Iba indicating the allocated buffer cell is generated and output to the buffer cell allocation information storage 240.
[0079]
The buffer cell allocation information storage 240 stores the buffer cell allocation information Iba input from the buffer cell allocation unit 230. Further, the buffer cell allocation information storage unit 240 supplies the buffer cell allocation information Iba to the write destination buffer cell designator 250 and the storage completion buffer cell number memory controller 280. Further, the buffer cell allocation information storage unit 240 generates allocation buffer cell information Iab indicating the allocation status of each buffer cell Bc constituting the packet buffer 270 based on the buffer cell allocation information Iba and generates the buffer cell allocation unit 230. To give feedback.
[0080]
The write destination buffer cell designator 250 is indicated by buffer cell allocation information Iba input from the buffer cell allocation information storage 240 in response to the write permission signal Sw input from the packet input start detector 220. A write request signal Swd for instructing writing of the transfer unit TSd to the assigned buffer cell is generated and output to the packet buffer controller 260.
[0081]
The packet buffer controller 260 writes the transfer unit TSd supplied from the packet input start detector 220 in the buffer cell to which the packet buffer 270 is allocated in response to the write request signal Swd. Further, the packet buffer controller 260 detects that data for one packet data P has been written by counting the number of bytes of data written to the allocated buffer cell, and packetizes the one packet data P. A transfer end signal Stf indicating completion of accumulation in the buffer 270 is generated and output to the accumulation completion buffer cell number memory controller 280. As described above, the data size of one packet data P of the input transport stream TS is included in the data structure information stored in advance in the transport stream decoder TD1.
[0082]
Based on the buffer cell allocation information Iba input from the buffer cell allocation information storage 240 and the transfer end signal Stf input from the packet buffer controller 260, the accumulation completion buffer cell number memory controller 280 The buffer cell number signal Sbn indicating the buffer cell to which the data P has been written and the write point update signal Swp for advancing the write pointer PWP indicating the storage area to which the buffer cell number Nbc is written by one are generated, and the accumulation completion buffer cell number memory 290 is generated. Output to.
[0083]
The accumulation completion buffer cell number memory 290 records the buffer cell number Nbc indicated by the buffer cell number signal Sbn in the storage area indicated by the write pointer PWP, and then advances the position of the write pointer PWP in the accumulation completion buffer cell number memory by one. Thus, the area next to the area where the buffer cell number Nbc is recorded is indicated. In the present embodiment, the accumulation completion buffer cell number memory 290 is preferably composed of a ring memory, as will be described later with reference to FIG. 2, so that each time writing to the buffer cell is completed in this way. Then, the buffer cell number Nbc stored in the storage area of the accumulation completion buffer cell number memory 290 can be appropriately updated by advancing the write pointer PWP of the accumulation completion buffer cell number memory one by one.
[0084]
The packet access device 300 selectively accesses the packet data P stored in the buffer cell of the packet buffer 270 via the packet buffer controller 260 and the DMA bus arbitrator 210, and reads, references, edits, etc. After the above processing is performed, the original packet data P is overwritten and updated via the DMA bus arbitrator 210 and the packet buffer controller 260.
[0085]
The packet buffer controller 260 reads a packet identifier PID of packet data P stored in a buffer cell indicated by a read pointer PRP described later, extracts buffer packet identification information PIDe, and passes through the DMA bus arbitrator 210. To the packet selector 400.
[0086]
The packet data processor 410 receives the packet data P stored in the packet buffer 270 for each transfer unit TSd via the packet buffer controller 260 and the DMA bus arbitrator 210, and performs a predetermined process on the input data. Data processing is performed. Further, the data after the predetermined processing is written back to a predetermined area of the packet buffer 270.
[0087]
For example, processing such as descrambling of packet data in pay broadcasting is a known technique, and detailed description thereof is omitted.
[0088]
The packet data processing device DBA1 generates a state signal Sr indicating the operation state of each component described above and outputs it to the controller PBAC1. The controller PBAC1 generates a control signal Sc for controlling the operation of each component of the packet data processing device DBA1 based on the state signal Sr1, and outputs the control signal Sc to the packet data processing device DBA1. The control of the controller PBAC1 generated by the status signal Sr and the control signal Sc is a known technique and will not be described.
[0089]
Next, stream output will be described with reference to FIG.
[0090]
TS is an input transport stream, and one frame indicates a packet constituting the transport stream.
[0091]
The time information TS1 generated by the timer 510 at the time when the input of the packet packet1 is started is stored as the management information IM together with the stream identifier TSi together with the packet data in the buffer cell by the stream input unit TSR_1.
[0092]
When the packet selector 400 determines that the packet is a processing target, the controller PBAC1 checks the content of processing to be performed on the packet. As a result, when outputting the packet as a transport stream, the controller PBAC1 writes the buffer cell number Hbn and the buffer cell number Hbn in which the packet is stored in the packet output order buffer cell number memory controller 530. An area where the write pointer HWP indicating the storage area of the packet output order buffer cell number memory 540 is output and the write pointer HWP indicating the storage area of the packet output order buffer cell number memory 540 is advanced by 1 to record the buffer cell number Hbn Point to the next area. Note that the packet output order buffer cell number memory 540 is preferably formed of a ring memory, and buffer cell designation areas Hc1 to HcM are recorded continuously and cyclically.
[0093]
The packet output order buffer cell number memory controller 530 outputs the buffer cell number Hbn and the write pointer HWP of the packet output order buffer cell number memory 540 to the packet output order buffer cell number memory 540. Also, 1 is added to the write pointer HWP to indicate the area where the next buffer cell number is written.
[0094]
The packet output order buffer cell number memory 540 writes the buffer cell number Hbn to the storage area indicated by the write pointer HWP. Further, the buffer cell number SHr written in the recording area indicated by the read pointer HRP of the output order buffer cell number memory 540 is output to the stream output device 500.
[0095]
The packet buffer controller 260 detects the end of the transfer of the packet data P for one packet by counting the number of bytes output from the packet buffer 270 to the stream output device 500, and outputs the stream from the packet buffer 270. A transfer end signal Shf indicating that data transfer to the device 500 has been completed is output to the packet output order buffer cell number memory controller 530.
[0096]
When receiving the transfer end signal Shf, the packet output order buffer cell number memory controller 530 adds 1 to the read pointer HRP, and points to the recording area in which the buffer cell number to be output next is recorded.
[0097]
As described above, the data size of one packet data P is included in the data structure information stored in advance in the transport stream decoder TD1.
[0098]
When the stream output unit 500 receives the buffer number SHr of the packet output from the transport stream, the stream output unit 500 outputs a data signal Prq for requesting the packet data of the buffer number SHr to the DMA bus arbitrator 210. On the other hand, the DMA bus arbitrator 210 outputs the data PD of the buffer number SHr of the packet buffer 270 to the stream output device 500 for each transfer unit TSd via the packet buffer controller 260.
[0099]
The stream output device 500 outputs the management information IM of the received packet data to the output start instruction device 520.
[0100]
The output start instruction device 520 outputs the output start instruction signal ReqST when the time indicated by the timer 510 becomes equal to the value obtained by adding the time T (HSDelay) set by the TD controller TDC1 to the time stamp St extracted from the management information IM. Is output.
[0101]
When receiving the output start instruction signal ReqST, the stream output device 500 starts outputting the stream HSD. The stream output unit 500 outputs a data signal Prq for requesting packet data to the DMA bus arbiter 210 in order to obtain output data. On the other hand, the DMA bus arbitrator 210 outputs the data PD of the buffer number SHr of the packet buffer 270 to the stream output device 500 for each transfer unit TSd via the packet buffer controller 260.
[0102]
Thereafter, similar processing continues until the stream output for one packet is completed.
[0103]
Next, with reference to FIG. 2, the relationship among the buffer cell allocation information storage 240, the packet buffer 270, the accumulation completion buffer cell number memory 290, and the output order buffer cell number memory 540 will be briefly described. The packet buffer 270 includes N buffer cells Bc1 to BcN (N is a natural number of 2 or more) for temporarily storing the packet data P input via the packet input start detector 220. This is because one different buffer cell Bc is required for storing the packet data P and for reading the stored packet data P.
[0104]
Each of the buffer cells Bc can temporarily store, that is, buffer, data of a predetermined size. The capacity of the buffer cell Bc necessary for this is called the minimum buffer capacity MBU. The minimum buffer capacity MBU is appropriately set according to the data size of the packet data P constituting the packet data P. If the minimum buffer capacity MBU is set smaller than the packet size, the extraction of the program content packet data Pc can be controlled more finely. Increases the processing efficiency.
[0105]
On the other hand, if the minimum buffer capacity MBU is set larger than the packet size, for example, about several times, a plurality of packet data P can be stored in one buffer cell Bc. However, in this case, since a plurality of packet data P stored in one buffer cell Bc cannot be distinguished, control or access in units of packet data P cannot be performed.
[0106]
Therefore, the minimum buffer capacity MBU should be appropriately set based on the internal processing speed of the transport stream decoder, the input rate of the packet data P, the packet size, and the access frequency to the packet data P. In this example, the minimum buffer capacity MBU is determined so that one packet data P can be stored, and is specifically 188 bytes. If necessary, auxiliary data having a predetermined number of bytes for identifying or managing the packet data P may be added to the one packet data P and stored.
[0107]
However, if necessary, it may be set smaller than the packet size as described above, that is, one packet may be divided into a plurality of buffer cells Bc and stored. In this case, the minimum buffer capacity MBU is obtained by adding the management bytes corresponding to the management information for recording and managing the division information indicating the division state to the maximum data size after the division of the packet data P.
[0108]
The buffer cell allocation information storage 240 has buffer cell allocation information areas Ac1 to AcN corresponding to the buffer cells Bc1 to BcN of the packet buffer 270, respectively. The buffer cell allocation information storage 240 is based on the buffer cell allocation information Iba supplied from the buffer cell allocator 230k, and the buffer cell allocation corresponding to the allocated buffer cell Bcn (n is a natural number of 1 or more and N or less). Allocation identification data indicating the presence / absence of allocation is written in the information area Acn. That is, the buffer cell allocation information storage 240 is prepared with the same number of buffer cell allocation information areas Ac1 to AcN as the buffer cells Bc1 to BcN of the packet buffer 270.
[0109]
For example, the assignment identification data is binary data of 1 and 0, and the initial value is 0. When the buffer cell Bc1 is allocated, 1 is written in the buffer cell allocation information area Ac1 corresponding to the buffer cell Bc1. On the other hand, after the data written in the buffer cell Bc1 is read, 0 is written in the buffer cell allocation information area Ac1 based on the control signal Sc output from the controller PBAC1, and the buffer cell Bc1 is released. . In this way, the allocation status of each of the buffer cells Bc1 to BcN of the packet buffer 270 is expressed as a set of values in the buffer cell allocation information areas Ac1 to AcN, and is assigned to the buffer cell allocator 230 as allocation buffer cell information Iab. Supplied.
[0110]
The accumulation completion buffer cell number memory 290 has a buffer cell designation region Rc (Rc1 to RcM) for storing a buffer cell number Nbcn indicating a specific one of the buffer cells Bc1 to BcN of the packet buffer 270. Note that M is a natural number of 2 or more and N or less. Accumulation completion buffer cell number memory 290 is preferably formed of a ring memory, and buffer cell designation areas Rc1 to RcM are recorded continuously and cyclically. As a result, unlike the buffer cell allocation information storage unit 240, it is not necessary to prepare the same number of buffer cells Bc1 to BcN of the buffer cell allocation information storage unit 240. If M buffer cell designation areas Rc1 to RcM are prepared, good.
[0111]
The buffer cell designation region Rcm (m is a natural number between 1 and M) in which the buffer cell number Nbcn is to be written is indicated by the write pointer PWP of the storage completion buffer cell number memory. The buffer cell designation area Rcm from which the entered buffer cell number Nbcn is to be read is indicated by the read pointer PRP. The write pointer PWP of the storage completion buffer cell number memory is advanced based on the write point update signal Swp output from the storage completion buffer cell number memory controller 280 as described above, but the read pointer PRP is output from the controller PBAC1. On the basis of the control signal Sc.
[0112]
When the write pointer PWP of the accumulation completion buffer cell number memory has advanced from the position of the read pointer PRP, the buffer cell Bcn indicated in the buffer cell designation area Rcm indicated by the read pointer PRP has finished storing data and read it. It means that it is possible. When the write pointer PWP and the read pointer PRP of the storage completion buffer cell number memory indicate the same position, it means that there is no buffer cell Bcn in which data can be read.
[0113]
The output order buffer cell number memory 540 has a buffer cell designation area Hc (Hc1 to HcL) for storing a buffer cell number Nbcn indicating a specific one of the buffer cells Bc1 to BcN of the packet buffer 270. Note that L is a natural number of 2 or more and N or less. The output order buffer cell number memory 540 is preferably formed of a ring memory, and the buffer cell designation areas Hc1 to HcL are recorded continuously and cyclically. As a result, unlike the buffer cell allocation information storage unit 240, it is not necessary to prepare the same number of buffer cells Bc1 to BcN of the buffer cell allocation information storage unit 240. If L buffer cell designation areas Hc1 to HcL are prepared, good.
[0114]
The buffer cell designation region Lcl (l is a natural number between 1 and L) in which the buffer cell number Nbcn is to be written is indicated by the write pointer HWP of the output order buffer cell number memory. The buffer cell designation area Hcl from which the entered buffer cell number Nbcn is to be read is indicated by the read pointer HRP. The read pointer HRP of the output order buffer cell number memory is advanced based on the read pointer update signal Hrp output from the output order buffer cell number memory controller 530 as described above, but the write pointer HWP is output from the controller PBAC1. On the basis of the control signal Sc.
[0115]
When the write pointer HWP of the output order buffer cell number memory 540 is advanced from the position of the read pointer HRP, the buffer cell Bcn indicated in the buffer cell designation area Hcl indicated by the read pointer HRP is packet data to be output as a stream. Is in a state that exists. When the write pointer HWP and the read pointer HRP in the output order buffer cell number memory indicate the same position, it means that there is no packet data to be output as a stream.
[0116]
Next, operations of the stream input device TSR, the DMA bus arbitrator 210, and the packet buffer controller 260 will be briefly described with reference to the waveform diagram shown in FIG. As shown in FIG. 3, a transport stream TS made up of packet data P each consisting of 188 bytes of data is streamed from the external transport stream source one byte at a time in synchronization with the input transfer clock Ck. It is sequentially input to the TSR. In some cases, input is performed in 1-bit units instead of 1-byte units. However, since the processing contents are basically the same regardless of the input data units, the following is input in 1-byte units. Only will be described.
[0117]
The stream input unit TSR detects, for each packet data P, the packet head of the packet data P when the first 1-byte synchronous data is detected. Each time the head of the packet is detected, a packet head detection signal Sps is generated and output to the DMA bus arbitrator 210.
[0118]
The first stream input unit TSR further detects the time stamp St indicating the arrival time of the packet data P and the transport stream indicating that the packet data P is the first transport stream TS when the head of the packet is detected. An identifier TSi is generated. In other words, the transport stream identifier TSi indicates that the transport stream TS is input to the first input port group of the DMA bus arbitrator 210r, and is further input from the first stream input device TSR_1. It shows that.
[0119]
Note that the number of bytes of the time stamp St can be arbitrarily determined according to the accuracy of the time required in the transport stream decoder TD1, but in this example, it is preferably expressed by 3 bytes. Further, the number of bytes of the transport stream identifier TSi only needs to be sufficient to identify all the transport streams TS input to the transport stream decoder TD1, and is represented by 1 byte in this example. The first stream input device TSR_1 generates the management information IM by combining the time stamp St and the transport stream identifier TSi, and adds it to the head of the input packet data P.
[0120]
As described above, by assigning the time stamp St and the transport stream identifier TSi to the packet data P as the management information IM, the packet data P included in each different transport stream TS is correctly stored even after being stored in the packet buffer 270. It becomes possible to identify.
[0121]
If it is necessary to identify each of the plurality of transport streams TS, the time stamp Stε, the transport stream identifier TSiε, and the management information IMε are displayed. ε is a natural number indicating the number of the plurality of transport streams TS input to the stream input device TSR. Specifically, for the first transport stream TS1, the first packet head detection signal Sps1, the first request signal Srq1, the first data valid signal Sde1, the first transfer unit TSd1, the time stamp St1, It is expressed as a transport stream identifier TSi1 and a first stream input device TSR_1.
[0122]
Similarly, for the second transport stream TS2, the second packet head detection signal Sps2, the second request signal Srq2, the second data valid signal Sde2, the second transfer unit TSd2, the time stamp St2, the second Are expressed as a packet head detection signal Sps2, a transport stream identifier TSi2, and a stream input device TSR_2.
[0123]
Further, the stream input unit TSR generates a request signal Srq for requesting the DMA bus arbiter 210 to accept an input for each transfer unit TSd counting from the head of the packet, and outputs the request signal Srq to the DMA bus arbiter 210. .
[0124]
In response to the request signal Srq, the DMA bus arbitrator 210 arbitrates its input / output to prepare for input of the transfer unit TSd from the stream input unit TSR. When the preparation is completed, that is, after a predetermined time Ta from the request signal Srq, a data valid signal Sde is generated and output to the stream input device TSR. This time Ta is naturally determined due to the internal processing time including the packet data processing device DBA1, and some variation is allowed depending on the state of the packet data processing device DBA1.
[0125]
In response to the data valid signal Sde, the stream input unit TSR outputs the data of the packet data P stored in the internal buffer to the DMA bus arbitrator 210 for each transfer unit TSd.
[0126]
The packet buffer controller 260 converts the transfer unit TSd input via the DMA bus arbitrator 210 and the packet input start detector 220 based on the write request signal Swd to the buffer cell Bc to which the packet buffer 270 is assigned. Write to. When the packet data P for one packet is written, a transfer end signal Stf is generated and output to the storage completion buffer cell number memory controller 280.
[0127]
Next, the operation of the above-described transport stream decoder TD1 will be described in detail with reference to FIG. 4, FIG. 5, and FIG. As shown in the main flow in FIG. 4, the transport stream decoder TD1 starts its operation when the power is turned on.
[0128]
First, in the initialization subroutine of step # 100, the values of the write pointer PWP and the read pointer PRP in the accumulation completion buffer cell number memory 290 are both set to zero.
Further, the values of the write pointer HWP and the read pointer HRP in the output order buffer cell number memory 540 are both set to 0.
[0129]
In the “provide program and possible processing presentation of transport stream TS” subroutine at step # 200, the distributed program and the possible processing for each program are presented to the user. As will be described in detail later, the TD controller TDC1 reads the program content management table PAT stored in the PAT storage area A (PAT) of the main memory 900, and the program to be distributed and the transport stream decoder TD1 provide to the user A program content presentation signal Sp representing a processing function that can be generated is generated and output to the secondary processing request input unit APR. The secondary processing request input unit APR displays a list of distribution programs and provided processing functions to the user using appropriate display means such as a display based on the program content presentation signal Sp1. The user operates the secondary processing request input unit APR to select a desired program and processing function among the presented programs and processing functions.
[0130]
In the “process request detection for transport stream TS” subroutine at step # 300, the subsidiary process request input unit APR detects a user process request. Specifically, the secondary processing request input unit APR generates a processing request signal Se1 representing the user's selection contents based on the user's operation and outputs the processing request signal Se1 to the TD controller TDC1.
[0131]
In the “determination of processing contents for transport stream TS” subroutine at step # 400, specific processing contents to be performed on the transport stream decoder TD1 side are determined in response to a user processing request. Specifically, the TD controller TDC1 determines the program to be processed, the processing method for the program, the device required for the processing, and the like based on the processing request signal Se input from the secondary processing request input unit APR. Processing content information represented by information is generated.
[0132]
In this step, it is determined whether or not to perform stream output.
[0133]
In the “generate target packet data identification information PIDd” subroutine of step # 500, the target packet data identification information PIDd representing the packet data P to be processed is generated. Specifically, the TD controller TDC1 determines the packet identifier of the packet data P to be actually processed among the packet data P constituting the selected program based on the processing content information determined in step # 400. The PID is specified, and the processing target packet data identification information PIDd is generated.
[0134]
In step # 600, “packet data P accumulation of transport stream TS” subroutine, buffering of packet data P included in transport stream TS sequentially input to transport stream decoder TD1 to packet data processing apparatus DBA1 is started. Is done. The packet data P is stored in each packet data P / n unit (n is a natural number) in each of the buffer cells Bc of the packet data processing apparatus DBA1.
[0135]
The processing in this step will be described in detail later with reference to FIG. When the accumulation of the predetermined number of packet data P is completed, the processing of the next step # 700 is started. In other words, the process of step # 700 starts with the packet data P being accumulated in each of the predetermined number of buffer cells Bc among the plurality of buffer cells Bc of the data buffering device DBA1.
[0136]
In the “select packet data P to be processed in transport stream TS” subroutine at step # 700, the packet data P sequentially stored in the buffer cell Bc of the packet data processing apparatus DBA1 is selected. Specifically, it is determined whether the packet data P stored in one buffer cell Bc is the packet data P specified in step # 400 or whether it has the packet identifier PID determined in step # 500. Thus, selection as the processing target packet data P is performed. The processing in this step will be described in detail later with reference to FIG.
[0137]
In the “execute request processing for packet data P of transport stream TS” subroutine in step # 800, the user request processing of the content determined in step # 400 is executed for the packet data P selected in step # 700. Is done. In the present embodiment, only the program content packet data Pc of the specific program selected in step # 700 is extracted from the packet data P of the transport stream TS sequentially stored in the buffer cell Bc, and the stream is output. An example is shown, which will be described in detail later with reference to FIG. Needless to say, the request processing is not limited to the selective extraction of the program content packet data Pc constituting a specific program, and various digital processing can be applied.
[0138]
In the “stream output of post-process packet data P” subroutine of # 900, the packet data P processed in step # 800 is output as a transport stream.
[0139]
As described above, step # 600 is mainly passive processing by hardware, and steps # 700 to # 900 are mainly active processing by software. Therefore, step # 600 and steps # 700 to # 900 are preferably configured as parallel processing. For this purpose, it is desirable that the packet data P is stored in an appropriate number of buffer cells Bc in step # 600 before starting the target processing packet data P selection subroutine in step # 700. This will be described later with reference to FIG.
[0140]
As described above, in the present embodiment, only the program content packet data Pc having the packet identifier PID in the 100s out of all the packet data P stored in the buffer cell Bc and the management packet data PcA are selected in step # 700. Is done. In step # 800, the selected program content packet data Pc and management packet data PcA are directly output from the buffer cell Bc to the outside of the packet data processing device DBA1 as a selected program packet data string Pem.
[0141]
In addition, the data PD read from the buffer cell Bc in the stream output device 500 is reconstructed as a transport stream and output as a transport stream output HSD.
[0142]
If the user request processing is processing of specific program content packet data Pc, in the above-described example, the program content packet that forms a specific program among the selected management packet data PcA and program content packet data Pc. Only the data Pc is processed. This will be briefly described later with reference to FIG.
[0143]
Next, with reference to FIG. 5, the details of the packet data P accumulation operation of the transport stream TS by the packet buffer 270 in step # 600 will be described.
[0144]
First, in step S602, the transport stream TS is input from the external transport stream supply source to the stream input unit TSR. Then, the process proceeds to the next step S604.
[0145]
In step S604, the stream input device TSR detects the packet head of the input transport stream TS. Specifically, the stream input device TSR is based on the transport stream structure signal STS input from the TD controller TDC1, and based on the structure of the input transport stream TS, Detect the beginning. Then, the process proceeds to the next step S606.
[0146]
In step S606, the stream input unit TSR outputs the packet head detection signal Sps and the request signal Srq to the DMA bus arbitrator 210. The packet head detection signal Sps is output to the packet input start detector 220 via the DMA bus arbiter 210. Then, the process proceeds to the next step S608.
[0147]
In step S608, the DMA bus arbitrator 210 performs arbitration in preparation for input of the packet data P from the stream input unit TSR in the transfer unit TSd based on the request signal Srq. Then, the process proceeds to the next step S610.
[0148]
In step S610, the DMA bus arbitrator 210 outputs the data valid signal Sde to the stream input unit TSR. Then, the process proceeds to the next step S612.
[0149]
In step S612, in response to the data valid signal Sde, transfer of the packet data P from the stream input unit TSR to the DMA bus arbitrator 210 in the transfer unit TSd is started. The transfer unit TSd is output to the packet input start detector 220 via the DMA bus arbiter 210. Then, the process proceeds to the next step S614.
[0150]
In step S614, the packet input start detector 220 detects that the input of the transfer unit TSd is started based on the packet head detection signal Sps input in step S606. That is, since the data for one packet data P is transferred to the packet buffer 270 from the stream input device TSR a plurality of times for each transfer unit TSd, the transfer unit TSd input after the input of the packet head detection signal Sps is changed. By detecting this, the start of packet input is detected. Then, the process proceeds to the next step S616.
[0151]
In step S616, the packet input start detector 220 generates a buffer cell request signal Sba and outputs it to the buffer cell allocator 230, and also generates a write enable signal Sw and outputs it to the write destination buffer cell designator 250. . Then, the process proceeds to the next step S618.
[0152]
In step S618, the buffer cell allocator 230 uses the buffer cell information Iab supplied from the buffer cell allocation information storage 240 to buffer the transfer unit TSd for which the transfer has been started in step S612. Cell Bc is assigned. Then, the process proceeds to the next step S620.
[0153]
In step S620, the buffer cell allocator 230 generates buffer cell allocation information Iba indicating the buffer cell Bc allocated in step S612, and outputs it to the buffer cell allocation information storage 240. Then, the process proceeds to the next step S622.
[0154]
In step S622, the buffer cell allocation information storage unit 240 generates and stores allocation buffer cell information Iab based on the buffer cell allocation information Iba. Then, the process proceeds to the next step S624.
[0155]
In step S624, the buffer cell allocation information storage unit 240 outputs the buffer cell allocation information Iba input from the buffer cell allocation unit 230 to the write destination buffer cell designator 250 and the storage completion buffer cell number memory controller 280. Then, the process proceeds to the next step S626.
[0156]
In step S 626, the packet input start detector 220 generates a write permission signal Sw that permits writing of the transfer unit TSd to the buffer cell Bc of the packet buffer 270 and outputs it to the write destination buffer cell designator 250. To do. Then, the process proceeds to the next step S628.
[0157]
In step S628, in response to the write permission signal Sw, the write destination buffer cell designator 250 requests writing (accumulation) for the allocated buffer cell Bc indicated by the buffer cell allocation information Iba. A request signal Swd is generated and output to the packet buffer controller 260. Then, the process proceeds to the next step S630.
[0158]
In step S630, the packet buffer controller 260 converts the transfer unit TSd supplied from the packet input start detector 220 into a packet to the buffer cell Bc indicated by the write request signal Swd (buffer cell allocation information Iba). Writing (accumulation) of data P in the transfer unit TSd is started. Then, the process proceeds to the next step S632.
[0159]
In step S632, the request signal Srq is output from the stream input unit TSR to the DMA bus arbitrator 210 for each transfer unit TSd (step S606), and the DMA bus arbitrator 210 performs arbitration in response to the request signal Srq (step S608). The data valid signal Sde is output to the stream input device TSR (step S610), and the stream input device TSR starts transferring the next transfer unit TSd of the packet data P in response to the data valid signal Sde (step S614). The above-described operation is repeated.
[0160]
During this time, the packet buffer controller 260 counts the number of bytes of data written to the buffer cell Bc, and detects that the accumulation of the packet data P for one packet in the buffer cell has been completed. Further, a transfer end signal Stf is generated and output to the storage completion buffer cell number memory controller 280. The count number is obtained from the data size of the packet data P of the input transport stream TS indicated by the transport stream structure information stored in advance in the TD controller TDC1. The packet buffer controller 260 then proceeds to the next step S634.
[0161]
In step S634, the storage completion buffer cell number memory controller 280, based on the transfer end signal Stf and the buffer cell allocation information Iba, stores the buffer cell number signal indicating the buffer cell Bc that has completed storing the packet data P for one packet. Sbn is generated. That is, the buffer cell number signal Sbn corresponds to the buffer cell number Nbc of the buffer cell Bc indicated by the buffer cell allocation information Iba when the transfer end signal Stf is input. Then, the process proceeds to the next step S636.
[0162]
In step S636, the accumulation completion buffer cell number memory 290 records the buffer cell number Nbc indicated by the buffer cell number signal Sbn in the area indicated by the write point WP. Then, the process proceeds to the next step S638.
[0163]
In step S638, the accumulation completion buffer cell number memory controller 280 outputs the write point update signal Swp to the accumulation completion buffer cell number memory controller 280, and sets the write pointer PWP of the accumulation completion buffer cell number memory controller 280 to 1. Go forward.
[0164]
Next, details of request processing execution by the packet data processing apparatus DBA1 in step # 800 will be described with reference to the flowchart shown in FIG. In addition, in this figure, as described with reference to FIG. 4, a configuration that can be applied to the case where step # 600 and steps # 700 to # 900 are parallel processing or continuous processing is shown.
[0165]
First, in step S802, the TD controller TDC1 reads the values of the write pointer PWP and the read pointer PRP from the accumulation completion buffer cell number memory 290. The write pointer PWP of the storage completion buffer cell number memory is a parameter that alternatively indicates a buffer cell Bc to which the packet data P of the transport stream TS that is sequentially input is written, and the read pointer PRP is a buffer from which data is to be read. This is a parameter indicating a cell. Then, the process proceeds to the next step S804.
[0166]
In step S804, the TD controller TDC1 determines whether or not the values of the write pointer PWP and the read pointer PRP of the storage completion buffer cell number memory read in step S802 are the same. If they are the same, it is determined that there is no buffer cell Bc in which the accumulation of packet data for one packet has been completed, and the process returns to step S804 described above. This is to prevent access to the packet data P not completely stored in the buffer cell.
[0167]
On the other hand, if they are not identical in step S804, it means No, that is, there is a buffer cell Bc in which the packet data P is stored in a complete form. In other words, the packet data P means that at least one packet data P that is a candidate for processing for a user request is stored in the packet buffer 270. Then, the process proceeds to the next step S806.
[0168]
As described above, when the appropriate number of packet data P is not accumulated in the packet buffer 270 (worst, the packet data P is not completely stored in any buffer cell Bc), the processing requested by the user is performed. It is possible to avoid the situation of trying to execute. In addition, when an abnormality occurs in the accumulation of packet data P due to a reason on the transmission path of the transport stream TS, it is possible to prevent a processing abnormality due to an underflow.
[0169]
In step S806, a buffer cell Bc to be accessed is determined in order to check whether or not the stored packet data P as a processing target is actually a processing target. Specifically, the TD controller TDC1 reads the buffer cell number Nbcn from the buffer cell designation area Rc indicated by the read pointer PRP. If it is determined in step S810 to be processed later, the buffer cell Bc is accessed again in order to perform processing based on the user's request for the packet data P in later-described step S814. The Then, the process proceeds to the next step S808.
[0170]
In step S808, the packet identifier PID of the packet data P is read out from the packet data P stored in the buffer cell Bcn (packet buffer 270) corresponding to the buffer cell number Nbcn read out in step S806 and buffered. Packet identification information PIDe is generated. Then, the process proceeds to the next step S810.
[0171]
In step S810, the buffer packet identification information PIDe generated in step S808 matches the processing target packet data identification information PIDd generated in step # 500, and the transport stream identification information TSie is the processing target transport stream identification. It is determined whether or not the information TSid matches.
[0172]
The match in this case means that the packet identifier PID defined in the buffer packet identification information PIDe is indicated in the processing target packet data identification information PIDd but is included in the packet identifier PID.
[0173]
On the other hand, if Yes, that is, the currently accessed packet data P is a target of processing based on the above-described user request, the processing proceeds to the next step S812. At this time, the packet data P stored in the buffer cell Bc is confirmed as a processing target candidate from the processing target candidates.
[0174]
In step S812, the process determined in step # 400 described above is performed on the currently accessed packet data P. Then, the process proceeds to the next step S814.
[0175]
In step S814, the packet data P appropriately processed according to the user's request through the above-described steps S810 and S812 is read from the buffer cell BcN for each transfer unit TSd, and the packet buffer controller 260 is read. Via, the transfer to the DMA bus arbiter 210 is started. Then, the process proceeds to the next step S816.
[0176]
In step S816, the TD controller TDC1 repeatedly determines whether or not the data transfer to the DMA bus arbitrator 210 has been completed by counting the number of bits for each transfer unit TSd started in step S800. Note that when the data transfer is completed, the process proceeds to the next step S818. In this way, the user's request processing is completed for one packet data P through the above-described steps S802 to S816. Then, the process proceeds to the next step S818.
[0177]
In step S818, it is determined whether to perform stream output with reference to the result of determining whether to perform stream output in step # 400 of FIG. 4 described above.
[0178]
If stream output is to be performed, that is, if YES, the process proceeds to step S820.
[0179]
If stream output is not performed, that is, if NO, the process skips steps S820 and S822 and proceeds to the next step S824.
[0180]
In step S820, the packet determined to be stream output in step S818 is designated as a stream output target packet. That is, the buffer cell number of the corresponding packet is written in the area indicated by the write pointer HWP of the output order buffer cell number memory 540, and 1 is added to the write pointer HWP to write to the next output order buffer cell number memory 540. Prepare. Then, the process proceeds to the next step S826.
[0181]
On the other hand, if it is determined that the packet data P currently being accessed is No in step S810 described above, that is, if it is determined that the packet data P currently being accessed is not a target of processing based on the above-described user request, the processing is performed in the above-described steps Go directly to step S824, bypassing S820. As described above, in step S810, all the packet data P included in the sequentially input transport stream TS are individually processed based on matching between the buffer packet identification information PIDe and the processing target packet data identification information PIDd. Identify if there is. Then, only the packet data P to be processed is selected, the process based on the user's request is performed in step S812, and the packet data P obtained as a result of the process in steps S814 and S816 is outside the packet data processing apparatus DBA1. Output.
[0182]
In step S824, the TD controller TDC1 releases the buffer cell corresponding to the buffer cell number Nbcn indicated by the read pointer PRP. Specifically, the allocation identification data written in the buffer cell allocation information area Acn corresponding to the buffer cell number Nbcn read in step S806 is rewritten without allocation. Then, the process proceeds to the next step S826.
[0183]
In step S826, the TD controller TDC1 advances the value of the read pointer PRP in the accumulation completion buffer cell number memory 290. As a result, the next packet data P is set as a request processing candidate for the user.
[0184]
As described above, in order to selectively perform a desired process on a program included in a transport stream TS that is sequentially input, among all packet data P included in the transport stream TS, Only the corresponding packet data P is selectively processed. For this purpose, it is necessary to guarantee that the processing is performed for a predetermined time with respect to each packet data P that is sequentially input. Therefore, in the present embodiment, the process of confining the packet data P in a predetermined buffer cell Bc for a predetermined time is managed in the order in which each packet data P is input by the write pointer PWP of the storage completion buffer cell number memory.
[0185]
Then, the process of identifying whether the confined packet data P is a processing target by using the read pointer PRP and managing the process after being processed is managed. This series of operations is controlled and guaranteed by a hybrid configuration of hardware and software.
[0186]
Next, the details of the stream output by the stream output device 500 in step # 900 described above will be described with reference to the flowchart shown in FIG.
[0187]
First, in step 902,
It is determined whether or not the values of the write pointer HWP and the read pointer HRP in the output order buffer cell number memory are the same. If they are identical, it is determined that there is no buffer cell Bc in which processing and processing of packet data for one packet has been completed, and the processing returns to step S902 described above. This is to prevent access to the packet data P that has not been processed and processed completely in the buffer cell.
[0188]
On the other hand, if they are not identical in step S902, it means No, that is, there is a buffer cell Bc in which the packet data P is processed and processed in a complete form. In other words, it means that at least one packet data P which is a stream output processing target candidate for the user request exists in the packet buffer 270. Then, the process proceeds to the next step S904.
[0189]
As described above, when there is no appropriate number of packet data P in the packet buffer 270 (worst case, the packet data P is not completely processed or processed in any buffer cell Bc), the stream output is to be executed. You can avoid the situation.
[0190]
In step S904, the buffer cell Bc is determined in order to access the stored packet data P of the stream output target candidate. Specifically, the stream output device 500 reads the buffer cell number Nbcn from the buffer cell designation area Hc indicated by the read pointer HRP.
Then, the process proceeds to the next step S906.
[0191]
In step S906, the stream output device 500 reads the management information IM from the predetermined position of the packet data P stored in the buffer cell Bcn (packet buffer 270) corresponding to the buffer cell number Nbcn read in step S904. To the output start indicator 520.
[0192]
Then, the process proceeds to the next step S908.
[0193]
In step S908, the output start indicator 520 extracts time information St from the management information IM, adds the time information St to the delay T (HSDelay) instructed from the TD controller TDC1, and starts the stream output. Generate and maintain information. The predetermined time delay T (HSDelay) is a value determined by the processing time in the packet data output device TD1, such as processing / processing of packet data.
[0194]
Then, the process proceeds to the next step S910.
[0195]
In step S910, the output start indicator 520 compares the time information for starting the stream output with the current time information indicated by the timer 510.
[0196]
While the current time information does not match the stream output start time information, nothing is done and the process waits until they match. If the current time information matches the stream output start time information, the output start instruction signal ReqST is generated for the stream output device 500 to instruct the start of stream output.
[0197]
Then, the process proceeds to the next step S912.
[0198]
In step S912, the stream output device 500 outputs a data request signal Prq1 to the DMA bus arbitrator 210 in order to read out the data to be output from the stream stored in the packet buffer 260. The DMA bus arbitrator 210 performs bus arbitration in response to a data request, reads out data stream-outputted from the buffer cell BcN via the packet buffer controller 260 for each transfer unit TSd, and sends it to the stream output device 500. The data PD is output together with the data acknowledge signal Pde.
[0199]
The stream output device 500 takes in the stream output data PD when the data acknowledge signal Pde is active.
[0200]
That is, since the data received by the stream output device 500 is discrete, the data is stored once in an internal buffer, and then smoothed for reading at a predetermined interval to output the transport stream HSD.
[0201]
Then, the process proceeds to the next step S914.
[0202]
In step S914, the packet buffer controller 260 counts the number of transfer bits to determine whether or not the data transfer to the stream output device 500 has been completed. Note that when the data transfer is completed, the process proceeds to the next step S916.
[0203]
In step S916, the value of the read pointer HRP in the output order buffer cell number memory 540 is advanced. As a result, the buffer cell number written in the area of the output order buffer cell number memory 540 indicated by the read pointer HRP is set as the next stream output target packet.
[0204]
Then, the process proceeds to the next step S918.
[0205]
In step S918, the controller PBAC1 releases the buffer cell corresponding to the buffer cell number Nbcn indicated by the read pointer HRP. Specifically, the allocation identification data written in the buffer cell allocation information area Acn corresponding to the buffer cell number Nbcn read in step S904 is rewritten without allocation.
[0206]
(Second Embodiment)
A packet data output apparatus according to the second embodiment of the present invention will be described below with reference to FIGS. In the present embodiment, as in the first embodiment, the packet data P of the plurality of input transport streams TS1 to TSε is individually subjected to specific processing, and then reconfigured as a transport stream. In addition to the output, measures are taken to reduce costs by reducing the packet buffer capacity.
[0207]
Therefore, except for the points described below, it has basically the same structure as the transport stream decoder TD1 shown in FIG.
[0208]
That is, in this embodiment, as shown in FIG. 13, the only difference is that the time stamp TS ′ added to the packet is a time stamp at the time when the rear end of the packet arrived.
[0209]
The advantage of using the time stamp at the time when the rear end of the packet arrives will be described with reference to FIG. 12 over the case of using the time stamp at the time when the front end of the packet arrived.
[0210]
FIG. 12 is a timing chart in the case where the input rate of the input stream is slower than that in FIG. When the input rate is low in this way, the time required to store packet data for one packet in the packet buffer and the time required to perform processing / processing required for the packet (T (TP)) The value of T (HSDelay) must be set larger than the added value.
[0211]
This is because if the value of T (HSDelay) is smaller than this, invalid data before necessary processing / processing is output. That is, the value of T (HSDelay) is determined by the stream input rate and the time required for processing and processing in the stream output apparatus of the present invention.
[0212]
Therefore, in order to correctly output a stream after performing processing and processing necessary for fluctuations in the input rate, it is necessary to set the value of T (HSDelay) sufficiently large with respect to the fluctuation range of the input rate. .
[0213]
However, if the value of T (HSDelay) is increased, the timing for releasing the buffer cell is delayed, and the number of buffer cells used increases. For this reason, it is necessary to increase the number N of buffer cells so that the packet buffer does not overflow, leading to an increase in cost.
[0214]
On the other hand, when the time stamp at the time when the rear end of the packet arrives is used, the value of T (HSDelay) does not depend on the input rate of the stream and is necessary for processing / processing in the stream output device of the present invention. It is determined only by time.
[0215]
Therefore, it is possible to cope with a change in input rate without increasing the number N of buffer cells.
[0216]
【The invention's effect】
The present invention is used for a transport stream processing apparatus that performs predetermined processing on a transport stream when a transport stream composed of a plurality of continuous packet data each having identification information attached thereto is input. Is a packet data output device that is reconfigured and output as a transport stream after being subjected to predetermined processing, and is input identification information for inputting output target packet data identification information for identifying packet data to be output Means, a packet data holding means for holding each of the packet data for a predetermined time in the order of input, and reading identification information given to the packet data held in the packet data holding means, Compared with output target packet data identification information, Output packet data selecting means for selecting whether or not the stored packet data is a predetermined output target, and stream output means for reconfiguring and outputting the packet to be output as a transport stream It was decided to prepare.
[0217]
With the above configuration, each piece of packet data of a transport stream that is sequentially input is temporarily stored, and after processing and processing prescribed in advance for the stored packet data, The stream output process can be performed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing the structure of a transport stream decoder device incorporating a packet data output device according to a first embodiment of the present invention.
FIG. 2 is an explanatory diagram showing the interrelationship between the buffer cell allocation information storage, the packet buffer, the storage completion buffer cell number memory, and the output order buffer cell number memory shown in FIG.
FIG. 3 is a waveform diagram showing various signals in the transport stream decoder shown in FIG. 1;
FIG. 4 is a flowchart showing main operations of the transport stream decoder shown in FIG. 1;
FIG. 5 is a flowchart showing detailed operations in the packet data P accumulation subroutine of the transport stream TS shown in FIG. 4;
6 is a flowchart showing detailed operations in a processing target packet data P selection subroutine of the transport stream TS shown in FIG. 4;
7 is an explanatory diagram showing a configuration of a transport stream input to the transport stream decoder shown in FIG.
8 is a schematic diagram showing an example of a packet data string input / output to / from the main memory shown in FIG.
FIG. 9 is an explanatory diagram showing a configuration of a single program packet data string output from the main memory shown in FIG. 1 via the main memory controller.
10 is a flowchart showing detailed operations in the stream output of post-process packet data P shown in FIG. 4;
11 is an explanatory diagram showing the configuration of the stream output HSD shown in FIG.
12 is an explanatory diagram showing the configuration of the stream output HSD when the bit rate of the input transport stream TS is slow compared to the configuration of the stream output HSD shown in FIG.
13 is a waveform diagram in the case where the time information time stamp TS given to the management information IM is the arrival time at the end of the packet data with respect to the waveform diagram shown in FIG.
14 is a waveform diagram showing various signals in the stream output device for the configuration of the stream output HSD shown in FIG.
FIG. 15 is a block diagram showing an example of the configuration of a conventional transport stream decoder
[Explanation of symbols]
TD1, TDAc transport stream decoder
TSR_1 Stream input device
DBA1 packet data processing device
PBAC1 controller
PCF packet filter
210 DMA bus arbiter
220 TSd input start detector
230 Buffer cell allocator
240 Buffer cell allocation information storage
250 Destination buffer cell designator
260 Packet buffer controller
270 packet buffer
280 Storage completion buffer cell number memory controller
290 Accumulation completion buffer cell number memory
300 packet access device
500 stream output device
510 timer
520 Output start indicator
700 Main memory controller
900 Main memory
TDC1 TD controller
Ac1 to AcN Buffer cell allocation information area
Bc1 to BcN buffer cells
Nbc1 to NbcN Buffer cell number
MBU Minimum buffer capacity
Rc, Rc1 to RcM Buffer cell designation area
ReqST output start instruction signal
Sbn Buffer cell number signal
Sc control signal
ScW control signal
Sde data valid signal
Sps packet head detection signal
Sr status signal
Srq request signal
SrW status signal
Stf Transfer end signal
Shf stream output end signal
Sw Write enable signal
Swd write request signal
Swp light point update signal
TS1 transport stream
TSd Transfer unit

Claims (3)

識別情報が付与された連続する複数のパケットデータによって構成される複数のトランスポートストリームから出力の対象となるパケットデータを識別するための出力対象パケットデータ識別情報を入力する識別情報入力手段と、
前記複数のトランスポートストリームを構成するパケットデータを個別に格納する複数のバッファセルと、前記複数のバッファセルの中で後述する出力対象パケットデータ選定手段によって出力対象であると選定されたバッファセルを示す出力選定バッファセルポインタと、前記複数のバッファセルの中で出力中のバッファセルを示す出力対象バッファセルポインタとを備え、前記出力選定バッファセルポインタが前記出力対象バッファセルポインタと同じバッファセルを示す間は当該バッファセルに対する後述するストリーム出力手段によるアクセスを禁止し、前記出力選定バッファセルポインタが前記出力対象バッファセルポインタと異なるバッファセルを示す場合は当該バッファセルに対する後述するストリーム出力手段によるアクセスを許可し、
後述するタイマの出力である時刻情報を対応するパケットデータとともに前記バッファセルに蓄積し、
後述する規定出力処理完了検出手段が出力処理の完了を検出した後に他のパケットデータの格納のために当該バッファセルを解放するパケットデータ保持手段と、
前記パケットデータ保持手段に保持されているパケットデータに付与されている識別情報を読み出し、前記識別情報入力手段の出力である出力対象パケットデータ識別情報と比較して、前記保持されているパケットデータが予め規定された出力の対象であるか否かを選定する出力対象パケットデータ選定手段と、
前記連続するパケットデータのそれぞれが入力された時刻情報を生成するタイマと、
前記パケットデータ保持手段から読み出した前記時刻情報に基づいてストリームの出力を開始するタイミングを決定する出力開始指示手段と、
前記パケットデータ保持手段にアクセスして出力対象であるパケットデータを再構成トランスポートストリームとして再構成し、前記出力開始指示手段の出力である出力開始指示信号に基づいて前記再構成トランスポートストリームを出力するストリーム出力手段と
前記パケットデータ保持手段に保存されたパケットデータに対して実行される前記規定された出力処理の完了を検出する規定出力処理完了検出手段と
を有するパケットデータ出力装置。
Identification information input means for inputting output target packet data identification information for identifying packet data to be output from a plurality of transport streams constituted by a plurality of continuous packet data to which identification information is assigned ;
A plurality of buffer cells for individually storing packet data constituting the plurality of transport streams, and a buffer cell selected as an output target by the output target packet data selection means to be described later in the plurality of buffer cells; And an output target buffer cell pointer indicating a buffer cell being output among the plurality of buffer cells, and the output selection buffer cell pointer has the same buffer cell as the output target buffer cell pointer. While the data is shown, access to the buffer cell by the stream output means to be described later is prohibited. When the output selection buffer cell pointer indicates a buffer cell different from the output target buffer cell pointer, access to the buffer cell by the stream output means to be described later is performed. Allow,
Accumulated in the buffer cell together with corresponding packet data time information that is output of a timer described later
A packet data holding means for releasing the buffer cell for storing other packet data after a prescribed output process completion detecting means described later detects the completion of the output process ;
The identification information given to the packet data held in the packet data holding means is read, and compared with the output target packet data identification information that is the output of the identification information input means , the held packet data is Output target packet data selection means for selecting whether or not the output target is defined in advance;
A timer for generating time information when each of the continuous packet data is input;
An output start instruction means for determining a timing for starting output of a stream based on the time information read from the packet data holding means;
The packet data holding means is accessed to reconstruct the packet data to be output as a reconstructed transport stream, and the reconstructed transport stream is output based on the output start instruction signal output from the output start instruction means and stream output means for
Prescribed output processing completion detection means for detecting completion of the prescribed output processing executed on the packet data stored in the packet data holding means ;
A packet data output device.
前記タイマは、前記連続するパケットデータのそれぞれの先端が入力された時刻情報を生成し、
前記出力開始指示手段は、前記パケットデータ保持手段から読み出した前記時刻情報に対してストリームの入力レートおよびストリーム出力手段における処理・加工に必要な時間に基づいて決定される時間の遅延後にストリームの出力を開始させる指示信号を出力することを特徴とする請求項1に記載のパケットデータ出力装置。
The timer generates time information when each leading edge of the continuous packet data is input,
The output start instruction means outputs the stream after a time delay determined based on the stream input rate and the time required for processing and processing in the stream output means for the time information read from the packet data holding means. The packet data output device according to claim 1, wherein an instruction signal for starting is output .
前記タイマは、前記連続するパケットデータのそれぞれの後端が入力された時刻情報を生成し、
前記出力開始指示手段は、前記パケットデータ保持手段から読み出した前記時刻情報に対してストリーム出力手段における処理・加工に必要な時間に基づいて決定される時間の遅延後にストリームの出力を開始させる指示信号を出力することを特徴とする請求項1に記載のパケットデータ出力装置。
The timer generates time information when each trailing end of the continuous packet data is input,
The output start instruction means is an instruction signal for starting output of a stream after a time delay determined based on a time required for processing and processing in the stream output means with respect to the time information read from the packet data holding means The packet data output device according to claim 1, wherein:
JP2001238760A 2001-08-07 2001-08-07 Packet data output device Expired - Fee Related JP4788081B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001238760A JP4788081B2 (en) 2001-08-07 2001-08-07 Packet data output device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001238760A JP4788081B2 (en) 2001-08-07 2001-08-07 Packet data output device

Publications (2)

Publication Number Publication Date
JP2003052026A JP2003052026A (en) 2003-02-21
JP4788081B2 true JP4788081B2 (en) 2011-10-05

Family

ID=19069625

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001238760A Expired - Fee Related JP4788081B2 (en) 2001-08-07 2001-08-07 Packet data output device

Country Status (1)

Country Link
JP (1) JP4788081B2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100380853C (en) * 1998-01-14 2008-04-09 天溪有限公司 Video profram bearing transport stream remultiplexer
JP2001197387A (en) * 2000-01-07 2001-07-19 Hitachi Ltd Receiver
JP3636307B2 (en) * 2001-03-30 2005-04-06 松下電器産業株式会社 Packet data processing decision device
JP2003032298A (en) * 2001-07-13 2003-01-31 Sharp Corp Stream-selecting device and stream input device

Also Published As

Publication number Publication date
JP2003052026A (en) 2003-02-21

Similar Documents

Publication Publication Date Title
JP4416361B2 (en) Multi-format transport stream decoder
US20190007718A1 (en) Method and apparatus for decoding metadata including multiple segments of an audiovisual stream
KR100248456B1 (en) System and method for updating a system time constant counter following a discontinuity in an mpeg-2 transport data stream
US6831892B2 (en) Bandwidth optimization of video program bearing transport streams
CN101299813B (en) Video program bearing transport stream remultiplexer
US6351474B1 (en) Network distributed remultiplexer for video program bearing transport streams
CN100380853C (en) Video profram bearing transport stream remultiplexer
US20130003757A1 (en) Syntonized communication system
JP3636307B2 (en) Packet data processing decision device
CN101505417B (en) Time-stamp addition apparatus and time-stamp addition method
JP2003298661A (en) Stream data processing equipment, method therefor, program and medium
WO2006040917A1 (en) Data structure, information processing device, information processing method, transmission device, transmission method, multiplexing device, multiplexing method, and program
US6577813B1 (en) Transmitting system and transmitting apparatus
CN100380959C (en) Information processing device and method, program, and recording medium
US20070223538A1 (en) System and method for using generic comparators with firmware interface to assist video/audio decoders in achieving frame sync
JP2008245050A (en) Pcr correction circuit
TW201229751A (en) Direct memory access engine physical memory descriptors for multi-media demultiplexing operations
JP4788081B2 (en) Packet data output device
US7385996B2 (en) Data distribution apparatus and method
US8264960B2 (en) Method and system for sharing AV/record resources in a programmable transport demultiplexer and PVR engine
CN110856046B (en) Method, device, terminal equipment and medium for positioning TS streaming media file
US20110119465A1 (en) Data processing system
US20070248318A1 (en) System and method for flexible mapping of AV vs record channels in a programmable transport demultiplexer/PVR engine
JP3416498B2 (en) Server device, control method therefor, and recording medium storing server device control program
JPH1028100A (en) Data multiplexer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071012

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20071113

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20091119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110325

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110621

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110704

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4788081

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees