[go: up one dir, main page]

JP4788081B2 - パケットデータ出力装置 - Google Patents

パケットデータ出力装置 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
English (en)
Other versions
JP2003052026A (ja
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/ja
Publication of JP2003052026A publication Critical patent/JP2003052026A/ja
Application granted granted Critical
Publication of JP4788081B2 publication Critical patent/JP4788081B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

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 転送単位

Claims (3)

  1. 識別情報が付与された連続する複数のパケットデータによって構成される複数のトランスポートストリームから出力の対象となるパケットデータを識別するための出力対象パケットデータ識別情報を入力する識別情報入力手段と、
    前記複数のトランスポートストリームを構成するパケットデータを個別に格納する複数のバッファセルと、前記複数のバッファセルの中で後述する出力対象パケットデータ選定手段によって出力対象であると選定されたバッファセルを示す出力選定バッファセルポインタと、前記複数のバッファセルの中で出力中のバッファセルを示す出力対象バッファセルポインタとを備え、前記出力選定バッファセルポインタが前記出力対象バッファセルポインタと同じバッファセルを示す間は当該バッファセルに対する後述するストリーム出力手段によるアクセスを禁止し、前記出力選定バッファセルポインタが前記出力対象バッファセルポインタと異なるバッファセルを示す場合は当該バッファセルに対する後述するストリーム出力手段によるアクセスを許可し、
    後述するタイマの出力である時刻情報を対応するパケットデータとともに前記バッファセルに蓄積し、
    後述する規定出力処理完了検出手段が出力処理の完了を検出した後に他のパケットデータの格納のために当該バッファセルを解放するパケットデータ保持手段と、
    前記パケットデータ保持手段に保持されているパケットデータに付与されている識別情報を読み出し、前記識別情報入力手段の出力である出力対象パケットデータ識別情報と比較して、前記保持されているパケットデータが予め規定された出力の対象であるか否かを選定する出力対象パケットデータ選定手段と、
    前記連続するパケットデータのそれぞれが入力された時刻情報を生成するタイマと、
    前記パケットデータ保持手段から読み出した前記時刻情報に基づいてストリームの出力を開始するタイミングを決定する出力開始指示手段と、
    前記パケットデータ保持手段にアクセスして出力対象であるパケットデータを再構成トランスポートストリームとして再構成し、前記出力開始指示手段の出力である出力開始指示信号に基づいて前記再構成トランスポートストリームを出力するストリーム出力手段と
    前記パケットデータ保持手段に保存されたパケットデータに対して実行される前記規定された出力処理の完了を検出する規定出力処理完了検出手段と
    を有するパケットデータ出力装置。
  2. 前記タイマは、前記連続するパケットデータのそれぞれの先端が入力された時刻情報を生成し、
    前記出力開始指示手段は、前記パケットデータ保持手段から読み出した前記時刻情報に対してストリームの入力レートおよびストリーム出力手段における処理・加工に必要な時間に基づいて決定される時間の遅延後にストリームの出力を開始させる指示信号を出力することを特徴とする請求項1に記載のパケットデータ出力装置。
  3. 前記タイマは、前記連続するパケットデータのそれぞれの後端が入力された時刻情報を生成し、
    前記出力開始指示手段は、前記パケットデータ保持手段から読み出した前記時刻情報に対してストリーム出力手段における処理・加工に必要な時間に基づいて決定される時間の遅延後にストリームの出力を開始させる指示信号を出力することを特徴とする請求項1に記載のパケットデータ出力装置。
JP2001238760A 2001-08-07 2001-08-07 パケットデータ出力装置 Expired - Fee Related JP4788081B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001238760A JP4788081B2 (ja) 2001-08-07 2001-08-07 パケットデータ出力装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001238760A JP4788081B2 (ja) 2001-08-07 2001-08-07 パケットデータ出力装置

Publications (2)

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

Family

ID=19069625

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001238760A Expired - Fee Related JP4788081B2 (ja) 2001-08-07 2001-08-07 パケットデータ出力装置

Country Status (1)

Country Link
JP (1) JP4788081B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU761704B2 (en) * 1998-01-14 2003-06-05 Skystream Corporation Video program bearing transport stream remultiplexer
JP2001197387A (ja) * 2000-01-07 2001-07-19 Hitachi Ltd 受信機
JP3636307B2 (ja) * 2001-03-30 2005-04-06 松下電器産業株式会社 パケットデータ処理決定装置
JP2003032298A (ja) * 2001-07-13 2003-01-31 Sharp Corp ストリーム選別装置及びストリーム入力装置

Also Published As

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

Similar Documents

Publication Publication Date Title
CN101287111B (zh) 带有视频程序的传输流再分多路复用器
KR100248456B1 (ko) 전달 디코더 시스템용 프로그램 카운터 기준 수신 조절 방법과, 불연속 표시자 수신 조절 장치 및 방법
JP3808394B2 (ja) ストリームデータ処理装置、ストリームデータ処理方法、プログラム、及び、媒体
US20190007718A1 (en) Method and apparatus for decoding metadata including multiple segments of an audiovisual stream
US6831892B2 (en) Bandwidth optimization of video program bearing transport streams
US6351474B1 (en) Network distributed remultiplexer for video program bearing transport streams
JP3636307B2 (ja) パケットデータ処理決定装置
US6292490B1 (en) Receipts and dispatch timing of transport packets in a video program bearing stream remultiplexer
CN100380853C (zh) 带有视频程序的传输流再分多路复用器
US20130003757A1 (en) Syntonized communication system
KR20040028727A (ko) 멀티포맷 트랜스포트 스트림 디코더
JP3666625B2 (ja) データ記録方法およびデータ記録装置
CN101076852B (zh) 信息处理、发送、或多路复用的设备和方法
US6577813B1 (en) Transmitting system and transmitting apparatus
CN115529481B (zh) 基于融合信号源的视频同步显示系统、方法及输入设备
TW201229751A (en) Direct memory access engine physical memory descriptors for multi-media demultiplexing operations
JP4788081B2 (ja) パケットデータ出力装置
US7385996B2 (en) Data distribution apparatus and method
CN110856046B (zh) 一种ts流媒体文件定位的方法、装置、终端设备及介质
US20070223538A1 (en) System and method for using generic comparators with firmware interface to assist video/audio decoders in achieving frame sync
JP2000201125A (ja) ディジタル放送受信装置
US20110119465A1 (en) Data processing system
US8264960B2 (en) Method and system for sharing AV/record resources in a programmable transport demultiplexer and PVR engine
JP3416498B2 (ja) サーバ装置およびその制御方法並びにサーバ装置制御プログラムを記録した記録媒体
US20070248318A1 (en) System and method for flexible mapping of AV vs record channels in a programmable transport demultiplexer/PVR engine

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