[go: up one dir, main page]

JP4416361B2 - マルチフォーマットトランスポートストリームデコーダ - Google Patents

マルチフォーマットトランスポートストリームデコーダ Download PDF

Info

Publication number
JP4416361B2
JP4416361B2 JP2001280375A JP2001280375A JP4416361B2 JP 4416361 B2 JP4416361 B2 JP 4416361B2 JP 2001280375 A JP2001280375 A JP 2001280375A JP 2001280375 A JP2001280375 A JP 2001280375A JP 4416361 B2 JP4416361 B2 JP 4416361B2
Authority
JP
Japan
Prior art keywords
packet data
packet
data
transport stream
processing
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
JP2001280375A
Other languages
English (en)
Other versions
JP2003087323A (ja
JP2003087323A5 (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
Priority to JP2001280375A priority Critical patent/JP4416361B2/ja
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to KR20037011770A priority patent/KR100898690B1/ko
Priority to EP02767930A priority patent/EP1365560A4/en
Priority to CNA028068629A priority patent/CN1625884A/zh
Priority to US10/468,678 priority patent/US7280566B2/en
Priority to PCT/JP2002/009211 priority patent/WO2003026254A1/ja
Publication of JP2003087323A publication Critical patent/JP2003087323A/ja
Publication of JP2003087323A5 publication Critical patent/JP2003087323A5/ja
Application granted granted Critical
Publication of JP4416361B2 publication Critical patent/JP4416361B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1033Signalling gateways
    • H04L65/104Signalling gateways in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1023Media gateways
    • H04L65/103Media gateways in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1106Call signalling protocols; H.323 and related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4385Multiplex stream processing, e.g. multiplex stream decrypting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4385Multiplex stream processing, e.g. multiplex stream decrypting
    • H04N21/43853Multiplex stream processing, e.g. multiplex stream decrypting involving multiplex stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Systems (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、それぞれ異なるフォーマットで生成された複数のトランスポートストリームを入力とし、当該入力される複数のトランスポートストリームに所望の処理を施して新たなトランスポートストリームを生成するマルチフォーマットトランスポートストリームデコーダに関する。さらに詳述すれば、本発明は、逐次入力される異なるフォーマットのトランスポートストリームを構成するパケットデータが処理対象であるかをリアルタイムに識別して、処理対象である場合には当該パケットデータに固有のフォーマットに応じて所望の処理を施すマルチフォーマットトランスポートストリームデコーダに関する。
【0002】
【従来の技術】
デジタルコンテンツに対して種々な処理や編集を施して副次利用する要求は、従来は放送局のようなコンテンツ制作あるいは配信元にのみ可能であった。しかしながら、近年のデジタル技術の進歩により、インフラストラクチャとしてデジタル配信システムの質および量は日々に充実している。つまり、デジタルコンテンツを提供するトランスポートストリームの充実、ユーザによる処理に必要なハードウェアの性能アップ、およびそのためのコストの低減により、従来は放送局等の施設によってのみ実施されていた、トランスポートストリームの編集や、トランスポートストリームを構成するパケットデータの編集をユーザ側で楽しむための環境条件が整いつつある。
しかしながら、ユーザ側においてデジタルコンテンツごとに所望の処理を施すためには、逐次入力されてくるトランスポートストリームを構成するパケットデータの個々に対して、リアルタイム選択し、さらに選択されたパケットデータに対して対応する処理あるいは加工を施すべく処理手段のアクセスを許す手段が必要である。
【0003】
そのような手段の一例と、図41にトランスポートストリームを構成するパケットデータの個々をリアルタイムに識別して選択的に抽出する機能を有する従来実現されている装置を示す。同図に示すトランスポートデコーダは、複数の番組(Program)のそれぞれを形成するパケットデータ列から構成される単一のトランスポートストリームから特定の単一の番組を構成するパケットデータ群のみを抽出してAVデコーダに出力する。つまり、後述するように、同トランスポートデコーダには単一のトランスポートストリームを構成する複数のパケットデータの内で特定のパケットデータのみを選択的に抽出する手段が設けられている。
【0004】
当該トランスポートストリームデコーダTDAcは、外部のトランスポートストリーム源(図示せず)から供給されるトランスポートストリームTSを受け取るストリーム入力器500C、プログラムパケットフィルタPCF、メインメモリ制御器700C、メインメモリ900C、およびトランスポートストリームデコーダTDAc全体の動作を制御するTD制御器TDCcを含む。
【0005】
図41に戻って、トランスポートストリームデコーダTDAcの構成要素のそれぞれについて説明する。ストリーム入力器500Cは、外部のトランスポートストリーム源(図示せず)から入力されるトランスポートストリームTSを内部に備えた入力バッファに一時的に保持して、転送単位TSdごとにプログラムパケットフィルタPCFに転送する。
【0006】
プログラムパケットフィルタPCFは、ストリーム入力器500Cから転送単位TSdごとに転送されてくる全番組コンテンツパケットデータPcのそれぞれに付与されているパケット識別子PIDに基づいて、管理パケットデータPcAのみを選択的に出力するパケットフィルタ1100_00と、特定の番組の番組映像コンテンツパケットデータPcVのみを選択的に出力するパケットフィルタ1100_01と、当該特定の番組の番組音声コンテンツパケットデータPcSのみを選択的に出力するパケットフィルタ1100_02との少なくとも3つを有する。なお、入力されたトランスポートストリームTSに含まれる全パケットデータPから抽出された、管理パケットデータPcAと特定の番組のコンテンツを形成する番組コンテンツパケットデータPc(PcV、PcA)とを併せて選択単一番組パケットデータ列Pesと総称する。
【0007】
上述のように、プログラムパケットフィルタPCFに含まれる管理パケットデータPcAの抽出用、番組映像コンテンツパケットデータPcVの抽出用、および番組音声コンテンツパケットデータPcSの抽出用の3種類のパケットフィルタのそれぞれを識別する必要のある場合には、それぞれ管理パケットフィルタ1100_00、映像パケットフィルタ1100_01および音声パケットフィルタ1100_02と表し、識別する必要のない場合あるいはそれらを総称する場合には単にパケットフィルタ1100と表する。
【0008】
プログラムパケットフィルタPCFには、抽出する1つの番組を構成するコンテンツの種類数γ(γは自然数)に応じて、つまり抽出すべき番組コンテンツパケットデータPcの種類数に相当するγ個のパケットフィルタ1100_01〜1100_0γと、トランスポートストリームTSから管理パケットデータPcAを抽出する1個の管理パケットフィルタ1100_00の合計γ+1個の管理パケットフィルタ1100_00〜1100_0γが設けられる。説明の簡便化のために本例においては、管理パケットフィルタ1100_00、映像パケットフィルタ1100_01、音声パケットフィルタ1100_02の3種類のみを有する場合について述べる。
【0009】
トランスポートストリームTSに含まれる複数の番組を構成する番組コンテンツパケットデータPcの内、管理パケットデータPcA(PAT、PMT1、PMT2、PMT3)、番組1を構成する番組映像コンテンツパケットデータPcV(Pc101_1、Pc101_2、・・・)および番組音声コンテンツパケットデータPcS(Pc111_1、Pc111_2、・・・)は、それぞれトランスポートストリームデコーダTDAcに到着した順番に映像パケットフィルタ1100_01および音声パケットフィルタ1100_02によって抽出される。
【0010】
そして、抽出された番組コンテンツ管理表PAT、番組コンテンツパケットデータ管理表PMT1、PMT2、およびPMT3と、番組コンテンツパケットデータPc101_1、Pc111_1、Pc101_2、Pc111_2、・・・は、トランスポートストリームデコーダTDAcに到着した順番に、選択単一番組パケットデータ列Pesとしてメインメモリ制御器700Cに出力される。このように、プログラムパケットフィルタPCFは、入力されるトランスポートストリームTSのパケットデータの個々をリアルタイムに識別して、選択的に抽出する機能を有する。
【0011】
メインメモリ制御器700Cは、プログラムパケットフィルタPCFから入力される選択単一番組パケットデータ列Pesを転送単位TSdごとに一時的に保持するとともにメインメモリ900Cを制御して、メインメモリ900Cのそれぞれ異なる所定の領域に、管理パケットデータPcA、単一番組映像コンテンツパケットデータ列PssV、および単一番組音声コンテンツパケットデータ列PssSごとにメインメモリ900Cの所定の領域に格納させる。
【0012】
つまり、メインメモリ900Cは、メインメモリ制御器700Cを経由してプログラムパケットフィルタPCFから入力される選択単一番組パケットデータ列Pesに含まれる各パケットデータPを、管理パケットデータPcA、番組映像コンテンツパケットデータPcVおよび番組音声コンテンツパケットデータPcAのいずれかに選別して、管理パケットデータPcA、単一番組映像コンテンツパケットデータ列PssV、および単一番組音声コンテンツパケットデータ列PssSとして格納する。
【0013】
さらに、メインメモリ制御器700Cは、メインメモリ900Cから単一番組映像コンテンツパケットデータ列PssVおよび単一番組音声コンテンツパケットデータ列PssSを読み出して転送単位TSdごとに一時的に保持するとともに、単一番組パケットデータ列PssとしてAVデコーダ2000Cに代表される外部機器に出力する。
【0014】
なお、トランスポートストリームデコーダTDAcは、上述の各構成要素の動作状態を示す状態信号SrWCを生成してTD制御器TDCcに出力する。TD制御器TDCcは、状態信号SrWCに基づいて、トランスポートストリームデコーダTDAcの各構成要素の動作を制御する制御信号ScWCを生成して、トランスポートストリームデコーダTDAcに出力する。
【0015】
このようにして、TD制御器TDCcはトランスポートストリームデコーダTDAcの動作全体を制御して、トランスポートストリームデコーダTDAcに入力される単一のトランスポートストリームTSから単一の番組を構成する番組コンテンツパケットデータPcのみを入力された順番で抽出して、単一番組パケットデータ列PssとしてAVデコーダ2000Cなどの外部機器に出力させる。AVデコーダ2000Cは、入力される単一番組パケットデータ列Pssに含まれる番組映像コンテンツパケットデータPcVおよび番組音声コンテンツパケットデータPcSを順番にデコードして映像音声信号Savを生成してユーザの視聴に供する。
【0016】
図43に、トランスポートストリームデコーダTDAcによって、図42に示したパケット構成を有する単一のトランスポートストリームTSに含まれる3つの番組から1つの番組の番組コンテンツパケットデータPc(番組映像コンテンツパケットデータPcVおよび番組音声コンテンツパケットデータPcS)と管理パケットデータPcA(PAT、PMT)のみが抽出されて構成される選択単一番組パケットデータ列Pesの一例を示す。
【0017】
本例においては、番組1を構成する番組コンテンツパケットデータPc101_1、Pc111_1、Pc101_2、Pc111_2、・・・、およびそれらを示す番組コンテンツ管理表PATと番組コンテンツパケットデータ管理表PMT1のみが抽出されて抽出パケットデータ列Pseとして、プログラムパケットフィルタPCFからメインメモリ制御器700Cに出力される。
【0018】
なお、指定番組以外の番組2および番組3を示す番組コンテンツパケットデータ管理表PMT2およびPMT3が抽出されることある。このように、入力されるトランスポートストリームTSに連続的に配列されたパケットデータPから所定の番組に対応するパケットデータPのみが離散的に抽出される。
【0019】
図44に、メインメモリ900Cにおける選択単一番組パケットデータ列Pesに含まれる番組コンテンツパケットデータPcのそれぞれの蓄積状態の一例を示す。メインメモリ900Cは、番組映像コンテンツパケットデータPcVである番組コンテンツパケットデータPc101_1、Pc101_2、Pc101_3、Pc101_4、・・・を格納する映像パケット格納領域A(video)と、番組音声コンテンツパケットデータPcSである番組コンテンツパケットデータPc111_1、Pc111_2、Pc111_3、Pc111_4、・・・を格納する音声パケット格納領域A(audio)とを有する。
【0020】
さらに、管理パケットデータPcAの構成要素である番組コンテンツ管理表PATの情報を格納するPAT格納領域A(PAT)、番組コンテンツパケットデータ管理表PMTの情報を格納するPMT格納領域A(PMTα)を有する。具体的に言えば、番組1の番組コンテンツパケットデータ管理表PMT1は番組コンテンツパケットデータ管理表PMT格納領域A(PMT1)に格納される。
【0021】
番組映像コンテンツパケットデータPcVである番組コンテンツパケットデータPc101_1、Pc101_2、Pc101_3、Pc101_4、・・・が、映像パケット格納領域A(video)内に互いに隙間なく格納されることによって、単一番組映像コンテンツパケットデータ列PssVが形成される。同様に、番組音声コンテンツパケットデータPcSである番組コンテンツパケットデータPc111_1、Pc111_2、Pc111_3、Pc111_4、・・・が音声パケット格納領域A(audio)内に互いに隙間なく格納されることによって、単一番組音声コンテンツパケットデータ列PssSが形成される。
【0022】
このように、メインメモリ900C内に構成された単一番組映像コンテンツパケットデータ列PssVおよび単一番組音声コンテンツパケットデータ列PssSが、メインメモリ制御器700Cによって、図45に例示するような単一番組パケットデータ列Pssとして読み出されて、AVデコーダ2000Cに出力される。
【0023】
なお、トランスポートストリームについては、公知の知識と推測されるが、本明細書におけるトランスポートについて、図42を参照して以下に説明する。トランスポートストリームデコーダTDAcに入力される単一のトランスポートストリームTSについて説明する。トランスポートストリームTSは、図42においてそれぞれが1つの枠として表示されている複数のパケットデータPから構成される。これらのパケットデータPにはそれぞれに固有のパケット識別子(Packet ID)PIDが付与されて、それぞれの識別に供される。また、これらのパケットデータPは、トランスポートストリームTSに固有に定められたフォーマットで構成されている。
【0024】
これらのパケットデータPは、α種類(αは2以上の整数)の番組ごとにそのコンテンツを形成する複数の番組コンテンツパケットデータPcと、番組ごとにこれら番組コンテンツパケットデータPcのパケット識別子PIDを記述した番組コンテンツパケットデータ管理表(Program Map Table )PMTと、番組ごとに対応する番組コンテンツパケットデータ管理表PMTを記した番組コンテンツ管理表(Program Association Table)PAT等に分類される。
【0025】
これら番組コンテンツパケットデータPcを管理する情報を有する番組コンテンツ管理表PATおよび番組コンテンツパケットデータ管理表PMTを、管理パケットデータPcAと総称する。なお、図42においては、少なくとも3つの異なる番組1、番組2、および番組3を提供する場合(α≧3)のトランスポートストリームTSの構成が例示されている。
【0026】
番組コンテンツパケットデータPc101_1、Pc101_2、・・・は、番組1の映像データであり、番組コンテンツパケットデータPc111_1、Pc111_2、・・・・は番組1の音声データである。同様に、番組コンテンツパケットデータPc201_1、Pc201_2、・・・・は、番組2の映像データであり、番組コンテンツパケットデータPc211_1、Pc211_2、・・・・は番組2の音声データである。
【0027】
さらに、番組コンテンツパケットデータPc301_1、Pc301_2、・・・・は番組3の映像データであり、番組コンテンツパケットデータPc311_1、Pc311_2、・・・・は番組3の音声データである。上述のごとく映像データを有する番組コンテンツパケットデータPcを番組映像コンテンツパケットデータPcVと、音声データを有する番組コンテンツパケットデータPcを番組音声コンテンツパケットデータPcSとそれぞれ総称する。
【0028】
なお、提供できる番組数(α)は3に限定されないことは言うまでもなく、提供する番組数に対応する必要なだけの番組コンテンツパケットデータPcがトランスポートストリームTSに含まれる。さらに、番組の内容によっては、映像や音声以外の情報(例えば、文字情報)に対応する番組コンテンツパケットデータPcも含まれることも同様である。
【0029】
さらに詳述すれば、トランスポートストリームTSは、番組コンテンツパケットデータPcの間に、伝送経路および処理上の要因から定められる頻度で番組コンテンツ管理表PATと番組コンテンツパケットデータ管理表PMTが配列されて構成される。図42において、番組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が配されている。
【0030】
なお、本明細書において、同一の部材や信号は共通の数字あるいはアルファベットで構成される符号を識別子として附して表現し、同一の部材や信号であっても個々に識別を要する場合には、当該識別子にさらに数字あるいはアルファベットによる接尾辞を附して個々の識別子として表現するものとする。よって、同一部材あるいは信号において個々に識別を要しない場合には、識別子に接尾辞を附さずに表すものとする。具体的に言えば、番組コンテンツパケットデータPc101は、番組コンテンツパケットデータPc101_1、Pc101_2、・・・Pc101_β(βは任意の自然数)の総称である。上述の番組コンテンツパケットデータPc111、Pc201、Pc211、Pc301、およびPc401についても同様である。
【0031】
番組コンテンツ管理表PATには、そのトランスポートストリームTSに含まれる全番組の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDが記述されている。つまり、番組1の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDは100であり、番組2の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDは200であり、番組3の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDは300である、・・・、番組αの番組コンテンツパケットデータ管理表PMTのパケット識別子PIDはα00であると記述されている。
【0032】
さらに、番組コンテンツパケットデータPc101_2、Pc111_2、Pc201_2、Pc211_2、Pc301_2、およびPc311_2の前には、前述の番組コンテンツパケットデータ管理表PMT1、PMT2、およびPMT3と番組コンテンツ管理表PATとからなる管理パケットデータPcAが再び配置されている。なお、トランスポートストリームTSが4以上の番組を含む(α≧4)の場合は、図42には明示されていないが、管理パケットデータPcAには、番組コンテンツパケットデータ管理表PMT4〜PMTαが含まれ、トランスポートストリームTSにはそれぞれの番組に対応する番組コンテンツパケットデータPcが含まれることは言うまでもない。
【0033】
トランスポートストリームTSに含まれるパケットデータPの種類によって、管理パケットデータPcAの配置頻度は大きく異なる。さらに管理パケットデータPcAは必ずしも、図42に例示したようにパケットデータPの一まとまりとして配置されるとは限らない。場合によっては、管理パケットデータPcAの構成単位である番組コンテンツ管理表PAT、番組コンテンツパケットデータ管理表PMTおよび番組コンテンツパケットデータPcのそれぞれの間にほかのパケットデータPが入り乱れて配されることもある。
【0034】
【発明が解決しようとする課題】
上記のごとく構成された従来のトランスポートストリームデコーダは、入力されるトランスポートストリームが単一の場合に、当該トランスポートストリームから同時に単一の番組のみを再生してユーザに提示する用途に対しては十分である。なぜならば、AVデコーダは、入力されてくる単一の番組を構成する単一番組パケットデータ列Pssに含まれるパケットデータPを入力されてくる順番にデコードすれば良いからである。
【0035】
さらに、これらのパケットデータPはすべて、入力される単一のトランスポートストリームに固有のフォーマットで構成されているため、同一のフォーマットに基づいてデコードすれば良い。しかしながら、上述のトランスポートストリームデコーダでは、以下に大別される3種類の番組の再生形態において、再生した番組を同時にユーザに提示するか否かに関わらず対応できない。
【0036】
(再生形態1)
単一のトランスポートストリームのみの入力を許す、つまりストリーム入力器が1つだけ用意される場合であって、当該トランスポートストリームから同時に複数の番組を再生する場合。
【0037】
(再生形態2)
複数のトランスポートストリームの入力を許す、つまり、入力されるトランスポートストリームは、それぞれに固有に定められたフォーマットで生成されたパケットデータで構成される場合。本生成形態においては、同時に入力されるトランスポートストリームが複数か単数かに関わらず、以下に分類する6種類の再生形態に細分される。
【0038】
再生形態2−1:複数のトランスポートストリームのそれぞれから単一の番組のみを再生する場合。
再生形態2−2:複数のトランスポートストリームのそれぞれから同時に複数の番組を再生する場合。
再生形態2−3:複数のトランスポートストリームの特定の1つから単一の番組のみを再生する場合。
再生形態2−4:複数のトランスポートストリームの特定の1つから同時に複数の番組を再生する場合。
再生形態2−5:複数のトランスポートストリームの特定の幾つかから同時に複数の番組を再生する場合。
再生形態2−6:複数のトランスポートストリームの特定の幾つかから単一の番組のみを再生する場合。
【0039】
(再生形態3)
トランスポートストリームから抽出された選択単一番組パケットデータ列Pesに含まれるパケットデータP(Pc、PAT、PMT)の単位でのデータ処理を必要とする場合。この場合のデータ処理とは、番組コンテンツパケットデータPc、番組コンテンツ管理表PAT、あるいは番組コンテンツパケットデータ管理表PMTそのものを加工したり、パケットデータPごとに個別に所定の処理を施す場合などが含まれる。
以下に、上述の各再生形態ごとに従来のトランスポートストリームデコーダが適用できない理由について具体的に述べる。
【0040】
再生形態1においては、単一のトランスポートストリームTSから同時に再生される複数の番組の内、ユーザの所望する特定の番組をユーザの所望する方法で提示する必要がある。この場合、少なくとも、選択単一番組パケットデータ列Pesあるいは単一番組パケットデータ列Pssに混在する番組コンテンツパケットデータPcのそれぞれと対応する番組との関係が識別かつ管理されて、その識別管理結果が情報として利用できるように準備されていなければならない。
【0041】
従来のトランスポートストリームデコーダにおいても、複数の番組の番組コンテンツパケットデータ管理表PMTを抽出することは上述のように可能であるので、単一のトランスポートストリームTSにどのような番組の番組コンテンツパケットデータPcが含まれているかを知ることはできる。しかしながら、プログラムパケットフィルタPCFに入力される複数の番組コンテンツパケットデータPcを特定の1つの番組を構成する番組コンテンツパケットデータPcのパケット識別子PIDという項目だけで単純にフィルタリングして出力しているので、当該特定の番組以外の番組にそれぞれに対応する番組コンテンツパケットデータPcは選択単一番組パケットデータ列Pes内には存在しない。当然、番組コンテンツパケットデータPcのそれぞれと対応する番組と識別管理結果の情報は獲得されない。
【0042】
再生形態2においては、トランスポートストリームごとに定められたフォーマットで生成されたパケットデータで構成される複数のトランスポートストリームTSが同時に入力され得る。つまり、複数のストリーム入力器のそれぞれには、種類、方式、あるいはサプライヤ等に代表されるフォーマットの異なるε種類のトランスポートストリームTS1〜TSεが供給される。
【0043】
このような状態において、複数のトランスポートストリームTS1〜TSεのそれぞれから単一の番組のみを再生する再生形態2−1、複数のトランスポートストリームTS1〜TSεの特定の1つから単一の番組のみを再生する再生形態2−3、および複数のトランスポートストリームTS1〜TSεの特定の幾つかから単一の番組のみを再生する再生形態2−6のいずれにおいても、再生される番組が属するトランスポートストリームTSの区別と、選択単一番組パケットデータ列Pesあるいは単一番組パケットデータ列Pssにおける番組コンテンツパケットデータPcとトランスポートストリームTSとの関係の識別と、さらに識別されたトランスポートストリームTSごとのパケットデータのフォーマットの識別が必要である。しかし、従来のトランスポートストリームデコーダにそのような区別や識別ができないことは上述の通りである。
【0044】
また、複数のトランスポートストリームTS1〜TSεのそれぞれから同時に複数の番組を再生する再生形態2−2、複数のトランスポートストリームTS1〜TSεの特定の1つから同時に複数の番組を再生する再生形態2−4、および複数のトランスポートストリームTS1〜TSεの特定の幾つかから同時に複数の番組を再生する再生形態2−5のいずれにおいても、再生された複数の番組の内ユーザの所望する番組を提示するためには、トランスポートストリームTS1〜TSεおよび番組に関して選択単一番組パケットデータ列Pesに含まれる全パケットデータP間の関係および識別情報が必要である。さらに、異なるトランスポートストリームTSを構成するパケットデータP(それぞれが異なるフォーマットで構成されている)を順次、そのパケットデータPのフォーマットに応じたパターンでデコードする必要がある。しかしながら、従来のトランスポートストリームデコーダにそのような識別ができないことは上述の通りである。
【0045】
再生形態3に関しては、トランスポートストリームTSに含まれる番組に対応するパケットデータP(Pc、PAT、PMT)の個々に、ユーザの要求に応じた異なる処理を施す場合がある。例えば、ある番組はユーザに提示するために対応する番組コンテンツパケットデータPcを単純に順番に出力して、AVデコーダ2000Cにデコードさせてモニターに出力させる。別の番組は、外部の記憶装置に記憶させるために、その記憶装置および周辺機器の伝送条件にしたがって、対応する番組コンテンツパケットデータPcを含む新たなトランスポートストリームTSr(図示せず)を構成して出力する。
【0046】
この場合、要求される伝送条件にしたがって、番組コンテンツパケットデータPcを管理して新たなトランスポートストリームTSrを生成するためには、上述の識別管理情報が必要である。さらに、必要に応じて、パケットデータPそのものに加工を施す場合にも、対象となるパケットデータPを特定し、加工後のパケットデータPを正しく取り扱うために上述の識別管理情報が必要である。これらの条件は、処理するパケットデータPのフォーマットに応じて切り換える必要がある。しかし、従来のトランスポートストリームデコーダにそのような識別ができないことは上述の通りである。
【0047】
上述のように、従来のトランスポートストリームデコーダは単一のトランスポートストリームから単一の番組を再生する用途には適している。しかしながら、単一のトランスポートストリームに含まれる複数の番組の番組コンテンツパケットデータPcを番組ごとに識別できない。また、単一のトランスポートストリームであっても、パケットデータ処理装置に入力されうる複数のトランスポートストリームTS1〜TSεのいずれが入力されているかが分からないとともに、現在入力されているトランスポートストリームTSを構成するパケットデータのフォーマットが分からないので、パケットデータに対して所望の処理を施すことができない。
【0048】
複数のトランスポートストリームが入力される際には、番組ごとに番組コンテンツパケットデータPcを識別できないことに加えて、さらにトランスポートストリームの区別、トランスポートストリームと再生する番組の番組コンテンツパケットデータの関係を認識できない。さらに、入力されているトランスポートストリームを構成するパケットデータのフォーマットが分からないので、パケットデータに対して所望の処理を施すことができない。
【0049】
このように、従来のトランスポートストリームデコーダにおいては、入力されるトランスポートストリームが単一あるいは複数の別に限らず、複数の番組を再生あるいは、パケットデータに対して所望の処理を施す用途には使用できない。また、複数のトランスポートストリームが入力される場合には、単一の番組を再生する用途にも使用できない。
【0050】
さらに、上述のいずれの再生形態においても、単一および複数の別に限らず、入力されるトランスポートストリームTSから再生される複数の番組のそれぞれのコンテンツに応じた処理を施すためには、パケットフィルタごとにパケットデータのフォーマットに適応した処理を施す装置に対応するインターフェースを設ける必要がある。そのため、装置の規模の巨大化、構造の複雑化、処理負荷の増大、仕様あるいは要求処理の変更に対応不可、しいてはコストの増大という諸問題を招く。
【0051】
本発明は上記の問題に鑑み、入力されてくるトランスポートストリームごとに異なるフォーマットで生成されたパケットデータの個々を所定の処理対象であるかをリアルタイムに識別して、処理対象である場合には当該パケットデータのフォーマットに適合した処理を施すマルチフォーマットパケットデータ処理装置を提供することを目的とする。
【0052】
【課題を解決するための手段および発明の効果】
第1の発明は、あらかじめ定められた複数のフォーマットのいずれか1つに基づいて生成されるとともにそれぞれを識別するパケットデータ識別情報が付与された連続する複数の第1のパケットデータによって構成される第1のトランスポートストリームの少なくとも1つを入力として、前記第1のパケットデータに対して選択的にユーザが所望の処理を施して第2のトランスポートストリームを生成するマルチフォーマットトランスポートストリームデコーダであって、
複数第1のパケットデータのそれぞれに対してあらかじめ規定される少なくとも1つの処理シーケンスを格納するパケットデータ処理シーケンス格納器と、
第1のパケットデータの内でユーザが所望の処理の対象となるものと、処理シーケンスの内で所望の処理に対応するものを示す処理要求情報を入力する処理要求情報入力器と、
第1のトランスポートストリームに定められたフォーマットを示すトランスポートストリーム識別情報を付与するトランスポートストリーム識別情報付与器と、
第1のパケットデータを個々に逐次保持するとともに、保持された第1のパケットデータからトランスポートストリーム識別情報およびパケットデータ識別情報を抽出するパケットデータ保持識別器と、
抽出されたトランスポートストリーム識別情報およびパケットデータ識別情報が、処理要求情報を比較して、保持されている第1のパケットデータがあらかじめ所望の処理の対象であるか否かを示す処理対象判断信号を生成する処理対象パケットデータデータ選定器とを備える。
【0053】
上記のように、第1の発明においては、入力されるトランスポートストリームに対して、それぞれに固有のフォーマットに基づいて適正にデコードできる。
【0054】
第2の発明は、第1の発明において、処理要求情報は、第1のパケットデータの内でユーザが所望の処理の対象であるものを示す対象パケットデータ識別情報と、処理の対象である第1のパケットデータに対応する対象トランスポートストリーム識別情報と、処理の対象である第1のパケットデータに対してあらかじめ規定された処理シーケンスの内で処理に対応する処理シーケンス情報を含むことを特徴とする。
【0055】
第3の発明は、第2の発明において、処理対象パケットデータデータ選定器は、抽出されたトランスポートストリーム識別情報およびパケットデータ識別情報が、それぞれ対象トランスポートストリーム識別情報および対象パケットデータ識別情報および処理の対象である第1のパケットデータと一致した場合にのみ保持されている第1のパケットデータを所望の処理であることを示す処理対象判断信号を生成することを特徴とする。
【0056】
第4の発明は、第3の発明において、パケットデータ保持識別器は、
第1のパケットデータのそれぞれを、入力されてくる順番に所定時間だけ保持する第1のパケットデータ保持器と、
第1のパケットデータ保持器に格納されている第1のパケットデータに処理シーケンス処理を施した際に生じる中間生成物を格納するための第2のパケットデータ保持器と、
第1のパケットデータに処理シーケンス処理を施した際に生じる最終生成物を格納するための第3のパケットデータ保持器とを備える。
【0057】
第5の発明は、第4の発明において、処理対象判断信号が保持されている第1のパケットデータがあらかじめ規定された処理の対象でないことを示す場合は、第1のパケットデータ保持器は、他の第1のパケットデータの格納のために解放されることを特徴とする。
【0058】
第6の発明は、第5の発明において、処理対象判断信号が保持されている第1のパケットデータがあらかじめ規定された処理の対象であることを示す場合は、保持されている第1のパケットデータに処理シーケンス情報に基づいて処理を施すデータ処理器をさらに含む。
【0059】
【発明の実施の形態】
図1に、本発明の実施形態例にかかるマルチフォーマットトランスポートストリームデコーダTDを示す。マルチフォーマットトランスポートストリームデコーダTDは、外部のトランスポートストリーム源(図示せず)からパケット単位で供給される複数ε(ε≧2)のトランスポートストリームTS1〜TSεを個別に受け取るストリーム入力器TSR1〜TSRε、データバッファリング装置DBA、タイマ600、メインメモリ制御器700、メインメモリ900、TD制御器TDC、および副次処理要求入力器APRを含む。
【0060】
図1に基づいて本発明のマルチフォーマットトランスポートストリームデコーダTDに入力されたトランスポートストリームの流れの概略について説明する。なお、本願の複雑な構成要素の詳細については本実施例の最後の部分で述べることとする。第1ストリーム入力器TSR_1〜第εストリーム入力器TSR_εは、それぞれ外部のトランスポートストリーム源(図示せず)からパケット単位で供給されるトランスポートストリームTS1〜TSεに、それぞれを個別に識別するためのIDであるトランスポートストリーム識別子TSIDを付与する。このとき、ストリーム入力器TSR_εは、入力されるトランスポートストリーム中のパケットの大きさなどのフォーマットを識別する
【0061】
トランスポートストリーム識別子TSIDは、入力される複数(1〜ε)の内任意のトランスポートストリームTSをi(1≦i≦ε)として示す。この考えに基づいて、マルチフォーマットトランスポートストリームデコーダTDに入力される任意のトランスポートストリームTSを第iのトランスポートストリーム識別子TSiとして表すものとする。
【0062】
そして、ストリーム入力器TSRは、トランスポートストリーム識別子TSIDが付与されたトランスポートストリームTSを内部に備えた入力バッファに一時的に保持して、それぞれを所定の転送単位TSd1〜転送単位TSdεごとにデータバッファリング装置DBAに転送する。
【0063】
TD制御器TDCは、マルチフォーマットトランスポートストリームデコーダTD全体の動作を制御する。
【0064】
データバッファリング装置DBAは、パケットバッファリング調停器PBA、パケット選択器400、ストリーム出力管理器500、中間処理用バッファセル使用メモリ530、パケット解析器1000、ストリーム出力器1300、および制御器PBACを含む。パケットバッファリング調停器PBAは、ストリーム入力器TSRから転送単位TSdごとに入力されるトランスポートストリームTSをパケットデータPの単位で識別してバッファリングする。パケット選択器400は、バッファリングされているパケットデータPが所望のパケットデータPであるかを判断する。
【0065】
パケットバッファリング調停器PBAは、DMAバス調停器210、TSd入力開始検出器220、バッファセル割当器230、バッファセル割当情報格納器240、書込先バッファセル指定器250、パケットバッファ制御器260、パケットバッファ270、蓄積完了バッファセル番号メモリ制御器280、蓄積完了バッファセル番号メモリ290、エラーフラグ設定器295、およびパケットアクセス器300を含む。
【0066】
DMAバス調停器210は、入力されるトランスポートストリームTSの数εと同じだけの入力ポート群を有する。このように、入力されるトランスポートストリームTSごとに入力ポート群を備えることによって、マルチフォーマットトランスポートストリームデコーダTDに入力される第iのトランスポートストリームTSiを個別に識別できる。
【0067】
さらに、DMAバス調停器210は、入力されるトランスポートストリームTSの数εに応じて用意されるストリーム入力器TSR1〜TSRεごとにデータ有効信号Sde1〜Sdeεを出力する出力ポートが用意される。
【0068】
DMAバス調停器210は、第iストリーム入力器TSRiから入力される第iのパケット先頭検出信号Spsiおよび第iのリクエスト信号Srqiに基づいて、第iのパケット先頭検出信号SpsiをTSd入力開始検出器220に出力する。
【0069】
TSd入力開始検出器220は、パケット先頭検出信号Spsおよび転送単位TSdに基づいて、パケットデータPごとに転送単位TSdの入力が開始されたことを検出するとともに、入力が開始された転送単位TSdをパケットバッファ制御器260に供給する。
【0070】
パケットバッファ制御器260は、書込要求信号Swdに応答して、TSd入力開始検出器220から供給される転送単位TSdiを、パケットバッファ270の割り当てられたバッファセルに書き込む。
【0071】
パケットアクセス器300は、パケットバッファ制御器260およびDMAバス調停器210を経由して、パケットバッファ270のバッファセルに格納された直後のパケットデータPに選択的にアクセスして、読み出し、参照、あるいは編集等の処理を施した後にDMAバス調停器210およびパケットバッファ制御器260を経由して、元のパケットデータPを上書き更新したりする。
【0072】
データバッファリング装置DBAは、処理対象パケットデータPに対して上記のような所望の処理を施した後に、選択複数TS複数番組パケットデータ列Pemmとしてメインメモリ制御器700に出力する。
【0073】
メインメモリ900は、データバッファリング装置DBAから出力される第1のトランスポートストリームTS1〜第εのトランスポートストリームTSεから抽出された選択複数TS複数番組パケットデータ列Pemmを格納するとともに、AVデコーダに代表される外部機器(図示せず)に複数TS複数番組パケットデータ列Pmsmとして出力する。
【0074】
メインメモリ制御器700は、選択複数TS複数番組パケットデータ列Pemmおよび複数TS複数番組パケットデータ列Pmsmを転送単位TSdごとに一時的に保持する。メインメモリ制御器700はさらに、メインメモリ900の動作を制御して、一時的に保持する選択複数TS複数番組パケットデータ列Pemmを転送単位TSdごとにメインメモリ900に出力するとともに、メインメモリ900を制御してその内部に複数TS複数番組映像コンテンツパケットデータ列PmsmVおよび複数TS複数番組音声コンテンツパケットデータ列PmsmSを形成させる。
【0075】
次に図2および3を参照して、上述のバッファセル割当情報格納器240、パケットバッファ270、および蓄積完了バッファセル番号メモリ290の関係について簡単に説明する。図2に示すように、パケットバッファ270は、大別してm(mは2ε以上の整数)個の一次バッファセルBc_I1〜Bc_Imと、n(nはm/2より大きい整数)個の二次バッファセルBc_M1〜BC_Mnと、1つ以上の三次バッファセルBc_Oを含む。
【0076】
これは、入力されるトランスポートストリームTSごとに、パケットデータPの蓄積用と蓄積したパケットデータPの読み出し用に異なる一次バッファセルBc_Iが1つは必要であるからである。なお、第1のトランスポートストリームTS1と第2のトランスポートストリームTS2との2つ(ε=2)のトランスポートストリームTSが入力される場合には、一次バッファセルBc_Iの個数mは4(2×2)以上の整数である。
【0077】
また、二次バッファセルBc_Mは、一次バッファセルBc_Iの読み出し用に対応して設ければ良いので、必要数nはm/2以上の整数となる。さらに、三次バッファセルBc_0は、1つのパケットデータPに対する処理課程の中間データを集積して完成させた後に出力すれば良いので1つ以上あれば良い。
【0078】
一次バッファセルBc_I1〜Bc_Imはそれぞれ、TSd入力開始検出器220およびパケットバッファ制御器260を経由して転送単位TSdで入力されるパケットデータPを第1の所定時間T1だけ格納して、格納したパケットデータPに対する処理を受け付ける。パケットバッファ制御器260によって、一次バッファセルBc_Iに格納されたパケットデータPのパケット識別子PIDおよびトランスポートストリーム識別子TSIDが抽出パケット識別情報PIDeおよび抽出トランスポートストリーム識別子TSIDeとして読み出される。
【0079】
さらに、一次バッファセルBc_Iはデスクランブル器1100およびセクションデータ選別器1200に接続されている。そして、一次バッファセルBc_Iに格納されているパケットデータPの内でスクランブルされている被スクランブルデータDsdiをデスクランブル器1100に出力される。また、一次バッファセルBc_Iに格納されているパケットデータPがセクションデータの場合は要選別セクションデータSsdi2がセクションデータ選別器1200に出力される。
【0080】
デスクランブル器1100は、一次バッファセルBc_Iから入力される被スクランブルデータDsdiをデスクランブルして被デスクランブルデータDsdoを生成する。セクションデータ選別器1200は、一次バッファセルBc_Iから入力される要選別セクションデータSsdi2をセクションデータ選別して被選別パケットデータSsdoを生成する。
【0081】
二次バッファセルBc_Mは、デスクランブル器1100に接続されて、被デスクランブルデータDsdoを第2の所定時間T2(T2<T1)だけ格納する。さらに、セクションデータ選別器1200は二次バッファセルBc_Mに接続されて、格納している被デスクランブルデータDsdoの内のデスクランブルされた実データを要選別セクションデータSsdi1として読み出し、セクションデータ選別して被選別パケットデータSsdoを生成する。
【0082】
三次バッファセルBc_0は、セクションデータ選別器1200に接続されて、要選別セクションデータSsdi1あるいは要選別セクションデータSsdi2の何れかから生成された被選別パケットデータSsdoを第3の所定時間T3(T3<T2)だけ格納する。
【0083】
バッファセルBcのそれぞれは、所定のサイズのデータを一時的に蓄える、つまりバッファリングできる。そのために必要なバッファセルBcの容量を最低バッファ容量MBUと言う。最低バッファ容量MBUは、パケットデータPを構成するパケットデータPのデータサイズに応じて適宜設定される。最低バッファ容量MBUをパケットサイズに比べて小さく設定すれば、番組コンテンツパケットデータPcの抽出をよりきめ細やかに制御できるが、DMAバス調停器210における入出力調停頻度が大きくなり、そのための制御工数の増大を招き処理効率が悪くなる。
【0084】
一方、最低バッファ容量MBUをパケットサイズに比べて大きく、例えば数倍程度に設定すれば、1つのバッファセルBcに複数のパケットデータPを格納することも可能になる。しかしながらこの場合は、1つのバッファセルBcに格納されている複数のパケットデータPを区別できないので、パケットデータP単位での制御、あるいはアクセスができない。したがって、最低バッファ容量MBUは、トランスポートストリームデコーダの内部処理速度、パケットデータPの入力レート、パケットサイズ、およびパケットデータPへのアクセス頻度に基づいて適切に設定されるべきものである。
【0085】
なお、本例においては、最低バッファ容量MBUは1パケットデータPを格納できるように定めており、具体的には188バイトとしている。なお、必要に応じて、パケットデータPを識別又は管理するための所定のバイト数を有する補助データを1パケットデータPに追加して格納できるようにしても良い。しかしながら、必要に応じて、上述のようにパケットサイズに比べて小さく設定、つまり1つのパケットを複数のバッファセルBcに分割して格納するようにしても良い。
【0086】
なお、最低バッファ容量MBUは、分割の有無に関わらず格納するデータに管理情報に相当する管理バイトを足したものになる。管理情報には少なくとも、格納する分割/非分割データが入力される複数のトランスポートストリームTSのどれに属するかを示すトランスポートストリーム識別情報を含む。
また、パケットを分割して格納する場合には、最低バッファ容量MBUはパケットデータPの分割後のデータの最大サイズに分割情報とトランスポートストリームパケット識別情報を含む管理データサイズの和になる。この場合、バッファセルBcの個数Nの最小値であるバッファセル最少個数Nminは2εに分割数Dを乗じたもの(バッファセル最少個数Nminは2εD)になる。
【0087】
さらに、異なるパケットデータP間の入力レートの違いについて述べる。つまり、マルチフォーマットトランスポートストリームデコーダTDに入力される複数εのトランスポートストリームTS1〜TSεのそれぞれに含まれるパケットデータPの入力レートは、トランスポートストリームTSiごとに異なることが多い。今、2つ(ε=2)のトランスポートストリームTS1およびTS2が入力される場合を例として説明する。第1のトランスポートストリームTS1の番組1の番組コンテンツパケットデータPc101およびPc111と、第2のトランスポートストリームTS2の第4の番組コンテンツパケットデータPc401およびPc411とをバッファリングする場合に、番組コンテンツパケットデータPc401の入力レートが番組コンテンツパケットデータPc101の入力レートに比べて圧倒的に大きい場合を考える。
【0088】
この場合、番組コンテンツパケットデータPc101とPc401が同時にマルチフォーマットトランスポートストリームデコーダTDに到着したとしても、DMAバス調停器210r調停されて、一方(例えば、番組コンテンツパケットデータPc101)のバッファリングが他方(例えば、番組コンテンツパケットデータPc401)より先に始まる。そして、番組コンテンツパケットデータPc101のバッファリングの開始に引き続いて番組コンテンツパケットデータPc401のバッファリングが開始する。しかしながら、番組コンテンツパケットデータPc401の入力レートは番組コンテンツパケットデータPc101の入力レートに比べて圧倒的に大きいために、番組コンテンツパケットデータPc401のバッファリング途中で、番組コンテンツパケットデータPc101の入力が完了してしまう。
【0089】
このような事態に対応するべく、番組コンテンツパケットデータPc101のバッファリング中に、後から入力される高レートの番組コンテンツパケットデータPc411のバッファリングするためにバッファセルBcを用意する必要がある。この場合のバッファセル最少個数Nminは、入力されるトランスポートストリームTSの番組コンテンツパケットデータPcの入力レートに基づいて決定されるが、最低バッファ容量MBUを一定とすれば、バッファセル最少個数Nminは一般に入力トランスポートストリームTSの数に比例し、入力トランスポートストリーム間で入力レートが著しく異なる番組コンテンツパケットデータPcの数に応じた分だけ増加する。
【0090】
なお、本例においては、最低バッファ容量MBUは1パケットデータPに所定の管理データを付加したものを格納できるように定めており、具体的には188バイトの1パケットデータPに4バイトの管理データを付加したものを格納できるように192バイトとしている。また、4バイトの管理データには、上述のトランスポートストリーム識別情報とともに、当該パケットデータPの到着時間を示すタイムスタンプ情報も含まれている。これについては、後ほど図16を参照して説明する。
【0091】
なお、一次バッファセルBc_I、二次バッファセルBc_M、および三次バッファセルBc_0に格納されるデータについて、図3、図24、図25、図26、および図27を参照して説明する。図25においては、第1のトランスポートストリームTS1のパケットデータP1は第1のフォーマットFMT1で構成され、第2のトランスポートストリームTS2のパケットデータP2は第2のフォーマットFMT2で構成されている場合が例示されている。
【0092】
ちなみに、第1のフォーマットFMT1で構成されているパケットデータP1(TS1)は、先頭から素性管理バイトBMh、補助データAXD、実データPDB、および処理管理バイトBMpの順番に配列構成されている。素性管理バイトBMh、補助データAXD、実データPDB、および処理管理バイトBMpのバイトサイズをそれぞれ、M、N1、R1、およびMとすると、このようなパケットデータP1(TS1:FMT1)を格納するために、バッファセルBcに要求される最小容量MBUは、2M+N1+R1となる。
【0093】
同様に、第2の第フォーマットFMT2で構成されているパケットデータP2(TS2)は、先頭から素性管理バイトBMh、実データPDB、および処理管理バイトBMpの順番に配列構成されている。素性管理バイトBMh、補助データAXD、実データPDB、および処理管理バイトBMpのバイトサイズをそれぞれ、M、R2、呼びMとすると、このようなパケットデータP2(TS2:FMT2)を格納するために、バッファセルBcに要求される最小容量MBUは、2M+R2となる。
【0094】
図2に戻って、奇数番の一次バッファセルBc_Iには第1のフォーマットFMT1のパケットデータPが格納され、偶数番の一次バッファセルBc_Iには第2の第フォーマットFMT2(セクションデータ)のパケットデータPが格納される場合を例に説明する。奇数番の一次バッファセルBc_Iには、処理管理バイトBMp、補助データAXD、実データPD1、および素性管理バイトBMhの順番に格納される。偶数番の一次バッファセルBc_Iには、処理管理バイトBMp、実データPD2、および素性管理バイトBMhの順番に格納される。
【0095】
奇数番の一次バッファセルBc_Iに格納されている補助データAXDと実データPDが第1ストリームPho1として、ストリーム出力器1300から出力される。偶数番の一次バッファセルBc_Iに格納されている実データPDが第2ストリームPho2として、ストリーム出力器1300から出力される。
【0096】
さらに、奇数番の一次バッファセルBc_Iから処理管理バイトBMpと補助データAXDと実データPDが被スクランブルデータDsdiとしてデスクランブル器1100に出力される。デスクランブル器1100は、被スクランブルデータDsdiの補助データAXDと実データPDをデスクランブルして、被デスクランブル補助データAXD’を生成する。そして、処理管理バイトBMpと被デスクランブル補助データAXD’と被デスクランブル実データPD’とを被デスクランブルデータDsdoとして二次バッファセルBc_Mに出力される。
【0097】
二次バッファセルBc_Mにおいては、被デスクランブルデータDsdoが処理管理バイトBMp、被デスクランブル補助データAXD’、および被デスクランブル実データPD’の順番に格納される。そして、二次バッファセルBc_Mから処理管理バイトBMp、被デスクランブル補助データAXD’、および被デスクランブル実データPD’が要選別セクションデータSsdi1としてセクションデータ選別器1200に出力される。
【0098】
セクションデータ選別器1200は、要選別セクションデータSsdi1を選別して被選別実データPD”を生成して三次バッファセルBc_0に出力する。
【0099】
偶数番の一次バッファセルBc_Iから処理管理バイトBMpと補助データAXDと実データPDが要選別セクションデータSsdi2としてセクションデータ選別器1200に出力される。セクションデータ選別器1200は、要選別セクションデータSsdi2を選別して被選別実データPD”を生成して被選別パケットデータSsdoとして三次バッファセルBc_0に出力する。
【0100】
このようにして、パケットデータPのフォーマットに応じて処理された被選別実データPD”が三次バッファセルBc_0に格納される。
【0101】
バッファセル割当情報格納器240は、パケットバッファ270の一次バッファセルBc_I1〜Bc_Imのそれぞれに対応する一次バッファセル割当情報領域AI1〜AImと、二次バッファセルBc_M1〜Bc_Mnのそれぞれに対応する二次バッファセル割当情報領域AM1〜AMnを有する。バッファセル割当情報格納器240は、バッファセル割当器230から供給される一次バッファセル割当情報Ibaに基づいて、割り当てられた一次バッファセルBc_Iに対応する一次バッファセル割当情報領域AIに割当の有無を示す割当識別データを書き込む。つまり、バッファセル割当情報格納器240には、パケットバッファ270の一次バッファセルBc_I1からBc_Imと同数の一次バッファセル割当情報領域AI1〜AImが用意される。
【0102】
同様に、バッファセル割当情報格納器240は、中間処理用バッファセル使用メモリ530から供給される二次バッファセル割当情報mrpに基づいて、割り当てられた二次バッファセルBc_Mに対応する二次バッファセル割当情報領域AMに割当の有無を示す割当識別データを書き込む。つまり、バッファセル割当情報格納器240には、パケットバッファ270の二次バッファセルBc_M1〜Bc_Mnと同数の二次バッファセル割当情報領域AM1〜AMnが用意される。
【0103】
例えば、割当識別データは1と0の二値データであり、初期値は0である。そして、一次バッファセルBc_I1が割り当てられる場合には、一次バッファセルBc_I1に対応する一次バッファセル割当情報領域AI1には、例えば1が書き込まれる。一方、一次バッファセルBc_I1に書き込まれたデータが読み出された後に、制御器PBACから出力される制御信号Scに基づいて一次バッファセル割当情報領域AI1に0が書き込まれて、一次バッファセルBc_I1は解放される。これは、二次バッファセルBc_Mに関しても同様である。
【0104】
このようにして、パケットバッファ270の各一次バッファセルBc_I1〜Bc_Imそれぞれの割当状況が一次バッファセル割当情報領域AI1〜AImにおける値の集合で表現されて、割当一次バッファセル情報Iabとしてバッファセル割当器230に供給される。同様に、二次バッファセルBc_M1〜Bc_Mnそれぞれの割当状況が二次バッファセル割当情報領域AM1〜AMnにおける値の集合で表現されて、割当二次バッファセル情報mwpとして中間処理用バッファセル使用メモリ530に供給される。
【0105】
次に、図7を参照して、上述のマルチフォーマットトランスポートストリームデコーダTDの主な動作について詳しく説明する。マルチフォーマットトランスポートストリームデコーダTDは、電源が投入されてその動作を開始する。
まず、ステップ#100「の初期化サブルーチン」において、蓄積完了バッファセル番号メモリ290のライトポインタWPおよびリードポインタRPの値が共に0にリセットを含めて、装置の初期化が行われる。そして、処理は次のステップ#200に進む。
【0106】
ステップ#200の「トランスポートストリームTS1〜TSεの提供番組および可能処理提示」サブルーチンにおいて、TD制御器TDCのメインメモリ900のPAT格納領域Ar(PAT)およびPMT格納領域Ar(PMT)に、トランスポートストリームTS1〜TSεごとに個別に格納されている番組コンテンツ管理表PAT1〜PATεおよび番組コンテンツパケットデータ管理表PMT1〜PMTεに基づいて、配信される番組と、マルチフォーマットトランスポートストリームデコーダTDがユーザに提供できる処理機能とを表す番組内容提示信号Spを生成して、副次処理要求入力器APRに出力する。
副次処理要求入力器APRは、番組内容提示信号Spに基づいて、ディスプレイ等の適当な表示手段を用い手配信番組と提供処理機能をユーザに一覧提示する。ユーザは、副次処理要求入力器APRを操作して、提示された番組と処理機能の内で、所望の番組と処理機能を選択する。
【0107】
ステップ#300の「トランスポートストリームTS1〜TSεに対する処理要求検出」サブルーチンにおいて、副次処理要求入力器APRは、番組内容提示信号Spに基づいて、複数のトランスポートストリームTS1〜TSεに対するユーザの処理要求を検出して、処理要求信号Seを生成してTD制御器TDCに出力する。
【0108】
ステップ#400の「トランスポートストリームTS1〜TSεに対する処理内容決定」サブルーチンにおいて、TD制御器TDCは処理要求信号Seに基づいて、マルチフォーマットトランスポートストリームデコーダTD側にて行うべき具体的な処理内容を決定する。具体的には、TD制御器TDCは、副次処理要求入力器APRから入力された処理要求信号Seに基づいて、処理対象となる番組、番組に対する処理方法、および処理に要するデバイス等の手段の情報に代表される処理内容情報を生成する。処理内容情報を生成する。
【0109】
ステップ#500の「処理対象パケットデータ識別情報パケット識別子PIDdおよびトランスポートストリーム識別子TSIDd生成」サブルーチンにおいては、TD制御器TDCは、ステップ#400において決定された処理内容情報に基づいて処理すべきパケットデータPを表す処理対象パケットデータ識別情報パケット識別子PIDdと、処理すべきパケットデータPのそれぞれが属するトランスポートストリームTSεを示す対象トランスポートストリーム識別情報TSIDdを生成して、パケット選択器400に出力する。
【0110】
ステップ#600の「トランスポートストリームTS1〜TSεのパケットデータP蓄積」サブルーチンにおいて、マルチフォーマットトランスポートストリームデコーダTDに逐次入力されるε本のトランスポートストリームTS1〜TSεに含まれるパケットデータP1〜Pεのデータバッファリング装置DBAへのバッファリングが開始される。なお、パケットデータPiは、データバッファリング装置DBAの一次バッファセルBc_Iのそれぞれに、パケットデータP/n単位(nは自然数)で格納される。本ステップにおける処理については、後ほど図8を参照して詳述する。所定数のパケットデータPの蓄積が完了した時点で、次のステップ#700の処理が開始される。言い換えれば、データバッファリング装置DBAの複数の一次バッファセルBc_Iの内、所定数のバッファセルBcのそれぞれにパケットデータPが蓄積された状態でステップ#700の処理が開始する。
【0111】
ステップ#700の「トランスポートストリームTS1〜TSεの処理対象パケットデータP選択」サブルーチンにおいて、データバッファリング装置DBAの一次バッファセルBc_Iに順次格納されるパケットデータPの中で処理対象のものが選択される。具体的には、1つの一次バッファセルBc_Iに格納されているパケットデータPがステップ#400で特定されたパケットデータPであるかを、ステップ#500で決定されたパケット識別子PID(処理対象パケットデータ識別情報PIDd)を有するかを判断することによって、処理対象パケットデータPとしての選択が行われる。
【0112】
ステップ#8000の「トランスポートストリームTS1〜TSεのパケットデータPに要求処理実行」サブルーチンにおいて、ステップ#700において選択されたパケットデータPに対して、ステップ#400において決定された内容のユーザ要求処理が実行される。本実施形態においては、一次バッファセルBc_Iに順次格納される複数のトランスポートストリームTS1〜TSεのパケットデータP1〜Pεの中で、ステップ#700で選択された特定の番組の番組コンテンツパケットデータPのみを抽出して、選択複数TS複数番組パケットデータ列Pemm(Pem1、Pem2)が抽出される例が示されているが、これについては、後ほど図26を参照して詳述する。なお、要求処理が特定の番組を構成する番組コンテンツパケットデータPcの選択抽出に限らず、種々のデジタル処理の適用が可能であることは言うまでもない。
【0113】
#900の「トランスポートストリームTS1〜TSεの処理後パケットデータP蓄積」サブルーチンにおいて、ステップ#8000で抽出された選択複数番組パケットデータ列Pemmがメインメモリ制御器700に出力されて、複数番組パケットデータ列Pmsmが生成される。
なお、上述のようにステップ#600は主にハードウェアによる受動的な処理であり、ステップ#700〜#900は主にソフトウェアによる能動的な処理である。よって、ステップ#600とステップ#700〜#900は好ましくは並行処理として構成される。そのためには、ステップ#700における対象処理パケットデータP選択サブルーチンを開始する前に、ステップ#600において、適正な数だけの一次バッファセルBc_IにパケットデータPが蓄積されていることが望ましい。これに付いては、後ほど図8を参照して説明する。
【0114】
しかしながら、本図においてはステップ#600、#700、#8000、および#900を一連の繰り返し処理としての構成を示している。このような構成における動作について簡単に説明する。ステップ#600の「トランスポートストリームTS1〜TSεのパケットデータP蓄積」サブルーチンを初めて行う場合は、所定数のバッファセルBcにパケットデータPが蓄積されるのを待った後に、ステップ#700、#8000、および#900の処理を連続的に実行する。そして、2回目以降のステップ#600においては、所定数ではなく1つの一次バッファセルBc_IにパケットデータPが格納された後に、ステップ#700〜#900の処理が実行される。
【0115】
次に、図9に示すフローチャートを参照して、上述のステップ#800におけるデータバッファリング装置DBAによる「トランスポートストリームTS1〜TSεのパケットデータPに要求処理実行」の詳細について説明する。なお、本図においては、図7に関して述べたようにステップ#600とステップ#700〜#900とを並行処理とする場合にも、連続処理とする場合にも適用できる構成を示す。
【0116】
まず、ステップS802において、TD制御器TDCは蓄積完了バッファセル番号メモリ290から、ライトポインタWPおよびリードポインタRPのそれぞれの値を読み出す。ライトポインタWPは逐次入力されてくる第iのトランスポートストリームTSiのパケットデータPiを書き込む一次バッファセルBc_Iを択一的に示すパラメータであり、リードポインタRPはデータを読み出す対象である一次バッファセルBc_Iを示すパラメータである。そして、処理は次のステップS804に進む。
【0117】
ステップS804において、TD制御器TDCによって、ステップS802において読み出されたライトポインタWPとリードポインタRPの値が同一であるか否かが判断される。同一の場合はYes、つまり特定のバッファセルBcが現在使用中であると判断されて、処理は前述のステップS804に戻る。これは、バッファセル中に完全な形で格納されていないパケットデータPに対するアクセスを防止するためである。
【0118】
一方、ステップS804において、同一でない場合はNo、つまりいずれのバッファセルも使用中でないと判断される。これは、パケットデータPを完全な形で格納されている一次バッファセルBc_Iがあることを意味する。言い換えると、当該パケットデータPはユーザの要求に対する処理対象候補であるパケットデータPが少なくとも1つはパケットバッファ270に蓄積されていることを意味する。そして、処理は次のステップS806に進む。
【0119】
ステップS806において、格納されているパケットデータP(この時点では処理対象候補)が実際に処理対象であるか否かを調べるためにアクセスする一次バッファセルBc_Iを決定する。具体的には、TD制御器TDCはリードポインタRPの示すバッファセル指定領域Rcmからバッファセル番号Nbcnを読み出す。なお、後述のステップS814で処理対象であると判断された場合には、後述のステップS818において当該パケットデータPに対してユーザの要求に基づく処理を施すために、同一次バッファセルBc_Iは再度アクセスされる。そして、処理は次のステップS808に進む。
【0120】
上述のように、ステップS804およびS806を構成することによって、ステップ#600とステップ#700〜#900とを並行処理とする場合にも、連続処理とする場合にも適用できる。つまり、並行処理とした場合、パケットバッファ270に適当数なパケットデータPが蓄積されていない(最悪、いずれの一次バッファセルBc_Iにも、パケットデータPが完全に格納されていない)とき、ユーザの要求された処理を実行しようとする事態を回避することができる。また、連続処理とする場合には、上述のようにステップ#600とステップ#700との開始時間に差を設けて所定数の一次バッファセルBc_Iの蓄積完了を保証するが、トランスポートストリームTSの伝送経路上の理由等によりパケットデータPの蓄積に異常が生じた場合にも、アンダーフローによる処理異常を防止できる。
【0121】
ステップS808において、ステップS806において、読み出されたバッファセル番号Nbcnに対応する一次バッファセルBc_Iに格納されているパケットデータPから、そのパケットデータPのパケット識別子PIDが読み出されて抽出バッファパケット識別情報PIDeが生成される。そして、抽出バッファパケット識別情報PIDeによって特定された一次バッファセルBc_Iに格納されているパケットデータPから、そのパケットデータPの管理情報IMが読み出される。上述のステップS802〜S808の処理を経て、処理対象候補であるパケットデータPを格納していると特定された一次バッファセルBc_Iから管理情報IMが読み出されて、格納されているパケットデータPの抽出バッファパケット識別情報PIDeおよび抽出トランスポートストリーム識別子TSIDeが生成される。そして、処理は次のステップS810に進む。
【0122】
ステップS810において、リードポインタRPの示すフラグ格納領域Fcから、格納されているエラーフラグ値が読み出される。そして、処理は、次のステップS812に進む。
【0123】
ステップS812において、読み出されたエラーフラグ値に基づいて、エラーフラグがONであるか否かが判断される。Yes、つまり処理対象候補であるパケットデータPはエラーを含んでいると判断される場合は、処理は上述のステップS814、#8000、S818、およびS820を迂回して、ステップS822に進み、その一次バッファセルBc_Iは今後入力されてくるパケットデータPのバッファリングのために解放される。
【0124】
一方、ステップS812において、No、つまり処理対象候補であるパケットデータPはエラーを含んでいないと判断される場合は、処理は上述のステップS814、#8000、S818、およびS820を経て、ステップS822に進む。つまり、当該処理対象候補であるパケットデータPが実際に処理対象である場合(S814でYes)には前述のステップ#400Rで決定された処理を実行し(#8000)、処理済みのパケットデータPをデータバッファリング装置DBA3から出力(S820)した後に、当該バッファセルBcを解放(S822)する。また、当該処理対象候補であるパケットデータPが処理対象でない場合(S814でNo)には、当該バッファセルBcは直ちに解放(S822)される。
【0125】
ステップS814において、パケット選択器400によって、ステップS808で生成された抽出バッファパケット識別情報PIDeおよび抽出トランスポートストリーム識別子TSIDeが上述のステップ#500で生成された処理対象パケットデータ識別情報パケット識別子PIDdおよびトランスポートストリーム識別子TSIDとマッチするか否かが判断される。この場合のマッチとは、抽出バッファパケット識別情報PIDeに規定されるパケット識別子PIDが処理対象パケットデータ識別情報パケット識別子PIDdに示されるがパケット識別子PIDに含まれているとともに、抽出トランスポートストリーム識別子TSIDeがトランスポートストリーム識別子TSIDと同一であることを言う。
【0126】
Yes、つまりパケット識別子PIDとトランスポートストリーム識別子TSIDの両方に関する同時マッチングを観ることによって、異なるトランスポートストリームTSに属する同一のパケット識別子PIDを有するパケットデータPであっても、個別に識別できる。本ステップで、Yesと判断される、つまり現在アクセス中のパケットデータPが上述のユーザの要求に基づく処理の対象である場合には、処理は次のステップ#8000の「マルチフォーマットパケットデータ処理」サブルーチンに進む。
【0127】
ステップ#8000において、処理対象とする第iのトランスポートストリームTSiごとに固有のフォーマットで構成されたパケットデータPiに対して、ユーザの所望する処理が行われる。そして、処理は、次のステップS818に進む。なお、本サブルーチンにおける処理については、後ほど図10を参照して説明する。
【0128】
ステップS818においては、上述のステップS814およびステップ#8000を経て、ユーザの要求に応じて適切に処理されたパケットデータPが、三次バッファセルBc_0から転送単位TSdごとに読み出され、パケットバッファ制御器260を経由して、DMAバス調停器210へ転送が開始される。そして、処理は次のステップS820に進む。
【0129】
ステップS820において、TD制御器TDCによって、ステップS800で開始された転送単位TSdごとにそのビット数をカウントすることでDMAバス調停器210へのデータ転送が完了したか否かが繰り返し判断される。なお、データ転送が完了した時点で、処理は次のステップS822に進む。このようにして、上述のステップS802〜S820を経て、ユーザの要求処理を1つのパケットデータPに対して完了する。そして、処理は次のステップS822に進む。
【0130】
一方、上述のステップS810においてNo、つまり現在アクセス中のパケットデータPは、上述のユーザの要求に基づく処理の対象でないと判断される場合は、処理は上述のステップ#8000、S818、およびS820を迂回して直接ステップS822に進む。このように、ステップS814において、抽出バッファパケット識別情報PIDeと処理対象パケットデータ識別情報PIDdとのマッチングに基づいて、逐次入力されてくるトランスポートストリームTSに含まれる全パケットデータPを個別に処理対象であるか識別する。そして、処理対象であるパケットデータPのみを選択して、ステップ#8000においてユーザの要求に基づく処理を施して、ステップS818およびS820を経て、ステップ#8000の処理の結果得られるパケットデータPをデータバッファリング装置DBAの外部に出力される。
【0131】
ステップS822において、TD制御器TDCは、リードポインタRPの示すバッファセル番号Nbcnに相当する一次バッファセルBc_Iを解放する。具体的には、上述のステップS806で読み出されたバッファセル番号Nbcnに対応する一次バッファセル割当情報領域AInに書き込まれている割当識別データを割当無に書き直す。そして、処理は次のステップS824に進む。
【0132】
ステップS824において、TD制御器TDCは、リードポインタRPの示すフラグ格納領域Fcのエラーフラグ値をローにすることによってエラーフラグをリセット(OFF)する。そして、処理は次のステップS826に進む。
【0133】
ステップS826において、TD制御器TDCは蓄積完了バッファセル番号メモリ290におけるリードポインタRPの値を進る。これによって、次のパケットデータP(リードポインタRPが指し示す一次バッファセルBc_I)がユーザの要求処理対象候補として設定される。そして、処理は上述のステップS802に戻る。
【0134】
上述のように、逐次入力される複数のトランスポートストリームTS1〜TSεに含まれる複数の番組に対してユーザが選択的に所望する処理を施すためには、異なるトランスポートストリームTSに含まれるすべてのパケットデータPの内で対応するパケットデータPのみに選択的に処理を施す。しかしながら、異なるトランスポートストリームTSにおいては、パケットデータPの入力レートが異なったり、同一パケット識別子PIDを有するパケットデータPが存在したり、複数のパケットデータPが同一に入力される。
【0135】
そこで、本実施形態においては、入力される複数のトランスポートストリームTS1〜TSεのパケットデータPの個々に、トランスポートストリーム識別子TSIDと、タイムスタンプStとを付与することによって、パケットデータPの1つずつをパケット識別子PIDとの組合せによって確実に識別することを可能にする。そして、ライトポインタWPによって、個々に識別可能にされた複数のトランスポートストリームTS1〜TSεのパケットデータPのそれぞれを入力されてくる順番に、所定の時間、所定の一次バッファセルBc_Iに閉じ込めるという課程を管理する。そして、リードポインタRPによって、閉じ込めたパケットデータPが処理対象であるかを識別し、処理対象である場合には処理を施した後に出力するという課程を管理する。
【0136】
つまり、二次バッファセルBc_Mを処理作業スペースとして利用して一次バッファセルBc_Iに閉じ込めたパケットデータPに処理を施し、三次バッファセルBc_0内でパケットデータPの処理生成物からパケットデータに再構成し、そして再構成されたパケットデータをパケットバッファ270の外部に出力する。これらの作業については、後ほど図10〜図19を参照して説明する。
【0137】
また、トランスポートストリームTSにエラーが含まれる場合には、パケットデータPのバッファリング後の処理が破綻を来すか、マルチフォーマットトランスポートストリームデコーダTD全体の動作効率の低下を招く。そこで、本実施形態においては、データエラーを含むパケットデータPを格納した一次バッファセルBc_Iをソフトウェア的に管理および解放することによって、このような不都合を防止する。この一連の動作をハードウェアとソフトウェアのハイブリッドな構成によって制御保証するものである。
【0138】
なお、上述のごとく、入力される複数のトランスポートストリームTS1〜TSεはそれぞれに固有のパケット識別子PIDが付与されているパケットデータPから構成される。このようなトランスポートストリームTSに関しては、本発明にかかるマルチフォーマットトランスポートストリームデコーダTDによって、トランスポートストリームTSを構成するすべてのパケットデータPに対して、個別に異なる処理を施すことができることは上述の通りである。
しかしながら、入力される複数のトランスポートストリームTS1〜TSεは、図40を参照して説明した、ITU−T勧告H.220.0に代表されるトランスポートストリームTSのようにパケットデータグループごとに固有のパケット識別子PIDが付与される場合にも適用できる。そのようなトランスポートストリームに関しては、TD制御器TDCで生成される処理対象パケットデータ識別情報パケット識別子PIDdも、一次バッファセルBc_I格納されているパケットデータPから読みとられる抽出バッファパケット識別情報PIDeも共にパケットデータグループを示している。ただし、上述のパケット選択器400によってマッチングしていると判定された場合には、マッチしたパケット識別子PIDを有するパケットデータグループに属するすべてのパケットデータPの内で同一のトランスポートストリームTSに属するもののみに対して、同一の処理が施される。
【0139】
これは、上述のごとく、図36に示したパケット構成を有するトランスポートストリームTSのすべてのパケットデータPのパケット識別子PIDの上位の適当な桁と属するトランスポートストリームTSを指定することによって、トランスポートストリームTSごとに指定された桁のパケット識別子PIDが同一であるパケットデータPをグループとして、グループごとに固有の処理を施すことと実質的に同一である。
【0140】
次に図10を参照して、上述の#8000のマルチフォーマットパケットデータ処理サブルーチンの詳細について説明する。本サブルーチンにおいては、まず、ステップ#8200の「パケットバッファ格納確認」サブルーチンが実行される。
ステップ#8200においては、パケットデータPiがストリーム入力器からパケット単位でパケットデータがパケットデータセルに蓄積が完了するのまで待機する。蓄積が終了すると蓄積されたバッファセルBcから先頭の管理バイトを読み出す。そして処理は、次のステップ#8300の「フォーマット解析」サブルーチンに進む。
【0141】
ステップ#8300においては、ステップ#8200で抽出した管理バイト内のフォーマット識別子(FID)を判定する。該当するフォーマットが存在したら、該当フォーマットの処理へ進む。ここではフォーマット3が該当したものとする。そして、処理は次のステップ#8400の「パケットデータフィルタリング制御」サブルーチンに進む。
【0142】
ステップ#8400において、上述のステップ#8200および#8300の処理の結果に基づいて、格納したパケットデータを取得するか破棄するかを選別(フィルタリング)する。 該当するパケットバッファセルに格納されたパケットデータからパケット識別子PIDを抽出する。さらに管理バイト中のトランスポートストリーム識別子TSIDを抽出する。このトランスポートストリーム識別子TSIDとパケット識別子PIDをパケット選択器400に設定し、パケット選択器400のパケットデータフィルタを起動する。
【0143】
なお、このトランスポートストリーム識別子TSIDとパケット識別子PIDをまとめてパケット選択の比較パターンにするのは、マルチストリームの別のストリーム入力器からの入力において、異なる用途にパケット識別子を割り当てている場合にパケット識別子のみでフィルタリングすると取得しないものも取得することもあるので、ストリーム入力器Trからの入力に対応してパケット選択を行えるようにするためである。
【0144】
例えば、例:北米地上波デジタル放送(MPEG−TS)においては、パケット識別子PID=000はPAT(Program Association Table)である。 PATは、放送を受信/デコードするのに必要なパケット識別子PIDを明記したテーブルマップ(PMT)のあるパケット識別子を明記したデータがあるセクションである。
【0145】
また、北米衛星デジタル放送(DirecTV)においては、パケット識別子(SCID)=000はNullパケットである。Nullは、放送のビットレートの調整等に埋め込まれるパケットであり、情報は存在しない(TDでは破棄されるパケット)。米国にての商用で地上波デジタル/衛星デジタルを同時受信するとき、マルチフォーマットトランスポートストリームデコーダTDにてトランスポートストリーム識別子TSID=0から北米地上波/トランスポートストリーム識別子TSID=1から北米衛星を接続し受信したときPATを取得するために、パケット識別子=000のみでパケット選択を行うと不要な北米衛星のNULLパケットまで、取得してしまう。これらを避けるため、(トランスポートストリーム識別子TSID/PID)=(0/000)のパターンでパケット選択を行う。)
【0146】
このため、制御器PBACはパケット選択の結果をリードし、パケット選択するものとして設定したパターンと一致したか否かを判断する。そして、処理は次のステップ#8500の「アクセス対象パケットに対応する処理要求テーブル解析」サブルーチンに進む。
【0147】
ステップ#8500において、ステップ#8400において、FMT1のパケット選択器400で比較一致したパケットを取得し、処理要求に応じた処理を行うための前準備を行う。パケット選択器400で比較一致した場合、設定フィルタパターンに対応して、TD制御器TDCから設定された処理要求テーブルPdtを読み出す。この処理要求テーブルPdtは設定フィルタパターンごとに用意されている。制御器PBACでは、一致した設定パターン用の処理要求テーブルPdtを読み出す。これ以後の処理は、この取り出した処理要求テーブルPdtにおける各パラメータの値に基づいて行われる。そして、処理は次のステップ#8600の「デスクランブル制御」サブルーチンに進む。
【0148】
ステップ#8600においては、制御器PBACがパケットデータのスクランブル情報を示すデータであるTSC(Transport Scramble Controller:【規格名を明記】)を抽出し、#500_FMTで読み出した処理要求テーブルPdtのパラメータを解析し、デスクランブル処理を行うかを判断する。パケットデータにスクランブルがかかっていて(TSCで判断)かつ、処理要求テーブルPdtでデスクランブルを行う設定(パラメータ4とパラメータ7のいずれかが「実行」)の場合に、デスクランブル器1100にてデスクランブル処理を起動する。それ以外の場合はデスクランブル制御器を起動せずに、処理は次のステップ#8700の「パケットデータパターン選別制御」サブルーチンに進む。
【0149】
ステップ#8700においては、パケットデータパターン選別を行うセクションデータ選別器1200を制御する。セクションデータ選別器1200は制御器PBACから転送されたパケットデータが、TD制御器TDCから設定された設定パターンと一致するかを比較(フィルタリング)し、その設定パターンと一致したデータだけを取得する処理を行う。セクションデータ選別器1200からのフィルタリングの結果を制御器PBACが読み出し、結果に応じて一致したデータのサイズを解析し、そのデータサイズ分の取得データ情報を保持し、次のメインメモリ900に出力するためのメインメモリ制御に進む。またセクションデータ選別器1200で取得した結果に対し、制御器PBACのみで付加データを追加することも可能である。この場合はセクションデータ選別器1200で取得したデータサイズに制御器PBACが付加する付加データサイズ分を加算して保持する。そして、処理は、次のステップ#8800の「メインメモリ制御」サブルーチンに進む。
【0150】
ステップ#8800においては、最終のメインメモリ900に出力するためのメインメモリ制御器700の制御を行う。前述の通り、#8700の「パケットデータパターン選別制御(Q:「サービス情報選出制御」では?)」サブルーチンまでの処理で、最終的メインメモリ900に出力するデータが作成される。同時に制御器PBACは、この時点までで、メインメモリ900に出力するデータサイズ、データの格納されているパケットバッファのアドレスを管理している。また制御器PBACは処理要求テーブルPdtのメインメモリ出力情報(パラメータ5)にある出力チャンネルをメインメモリ制御器700に通知し、これらの出力データをメインメモリ制御器700に転送する。メインメモリ制御器700はこの情報を基に指定した出力チャンネルに出力データをメインメモリ900に格納していく。そして、処理は次のステップ#8900の「ストリーム出力制御」サブルーチンに進む。
【0151】
ステップ#8900においては、マルチフォーマットトランスポートストリームデコーダTDからメインメモリ900とは異なる経路からパケットデータの出力の制御が行われる。つまり、本発明にかかるマルチフォーマットトランスポートストリームデコーダTDでは、マルチストリーム/フォーマット処理が可能であるとともに、マルチストリーム出力も可能である。ストリーム出力器1300はステップ#8800において、メインメモリ900に格納するのと同時に別径路からパケットデータを出力するための出力手段として設けられている。
ここでは、このストリーム出力器1300を制御してメインメモリ出力と同時に別径路からストリーム出力する制御を行う。制御器PBACは、処理要求テーブルPdtのストリーム出力情報(パラメータ6)によりストリーム出力するかを判断する。
【0152】
ストリーム出力情報がアクティブでストリーム出力する場合は、ストリーム出力するパケットデータをストリーム出力器1300に転送する。ストリーム出力器1300に転送するデータは時間情報を含んだ管理バイトも含めて転送する。ストリーム出力器1300は制御器PBACからのパケットデータを受け取り、初めに管理バイトの時間情報(ATS)をセットする。TD制御器TDCから設定されたストリーム出力遅延値を同時にセットし、現在の時間(タイマ値)がATS+ストリーム出力遅延値に達した時点で、パケットデータを外部径路に出力する。このとき、管理バイトは判断基準にだけ用いられ、実パケットデータのみが出力される。
【0153】
制御器PBACはストリーム出力器1300でのストリーム出力が終わるのを管理し、終了したのを判断すると、割り当てられていたパケットバッファセルを開放して、次の入力パケットデータに再割当が可能な状態にしておく。
【0154】
以上により、1つのパケットデータが1つのパケットバッファセルの割り当てられてからの一連の流れであり、この一連の処理が終了すると、再度ステップ#8300から次のパケットバッファセルに対して処理が行われる。
ここでは、ステップ#8300から#8900までの流れを説明したが、ステップ#8300から#8900までの処理を行っている時間内でも入力ストリームは受信された瞬間に、パケットバッファセルに逐次到着順に格納される。
【0155】
次に、図11を参照して、上述のステップ#8200における「パケットバッファ確認」サブルーチンの詳細について述べる。
本サブルーチンが開始されると、まず、ステップS8202において、制御部自体が持つ、制御器PBAC用制御テーブルClt、制御用として使用するステータス信号を初期化し、前パケットで使用した情報をいったんクリアする。そして、処理は次のステップS8204に進む。
【0156】
ステップS8204においては、書込先バッファセル指定器250よりライトポインタWPおよびリードポインタRPを読み出す。そして、読み出されたライトポインタWPとリードポインタRPが同一であるか否かが判断される。同一であると判断される場合は、処理はステップS9206に進む。一方、WPとRPが同じでない場合には、処理はステップS8208に進む。
【0157】
ステップS8206においては、第iストリーム入力器TSRiから入力されるパケットデータiのパットバッファ270への転送が完了するまで待機する。これは、ライトポインタWPはパケットバッファにパケットが格納されるとハードウェアにより1インクリメントされるので、ライトポインタWPとリードポインタRPが同一の場合には制御器PBACで処理する対象のパケットが存在しない。そのため、パケットバッファにパケットデータが格納されるのを待つのである。そして、処理は次のステップS8208に進む。
【0158】
ステップS8208においては、既に、上述のステップS8204あるいはS8206を経て、処理対象候補のパケットデータを格納していることが確認されてているバッファセルBcを特定する。つまり、バッファセル割当情報格納器240より一次バッファセル割当情報Ibaを読み出す。一次バッファセル割当情報Ibaは、現在のRPの示すバッファセル番号Nbcである。この処理により、制御器PBACが処理するバッファセルBcを知る。そして、処理は次のステップS8210に進む。
【0159】
ステップS8210において、リードポインタRPを1インクリメントする。リードポインタRPはソフトウェアで制御する。つまり、ステップS8208において特定された処理対象パケットバッファセルを検知されたので、次のパケット入力完了時点のバッファセル番号Nbcを格納できる状態にするのである。そして、処理は次のステップS8212に進む。
【0160】
ステップS8212において、蓄積完了バッファセル番号メモリ290より、割当られたバッファセル番号Nbcが読み出される。これによって、蓄積完了バッファセル番号メモリ290に保持されている、ステップS8210において割り当られたバッファセルBcに蓄積が完了しているパケットデータの蓄積結果を知るものである。そして、処理は次のステップS8214に進む。
【0161】
ステップS8214において、ステップS8212において読み出したバッファセル番号Nbcを、パケット処理に必要な制御テーブルCltに保存する。制御テーブルCltのパラメータを図28に示す。バッファセル番号Nbcは制御テーブルCltのパラメータPMc6(入力TSP用バッファセル)に保存する。そして、処理は次のステップS8216に進む。
【0162】
ステップS8216において、ステップS8212に読み出された、蓄積されたパケットバッファセルにある管理バイトを抽出する。そして、処理は次のステップS8218に進む。
【0163】
ステップS8218において、ステップS8216において読み出された管理バイトの情報の内、FID値を制御テーブルCltのパラメータPMc9(フォーマット識別子)に保存する。そして、本「パケットバッファ格納確認」サブルーチンの処理を終了する。
【0164】
ストリーム入力器TSRはTD制御器TDCより入力ストリームTSのフォーマット、第1〜第εストリーム入力器TSR1〜TSRεの接続を指定した後、ストリームの供給を開始する。このときTD制御器TDCにより、マルチフォーマットトランスポートストリームデコーダTDの動作が開始した時点から、タイマ600により、時間をカウントする。ストリームの供給が開始され、図1のバッファセル割当器230によりバッファセルBcを割り当て、パケット入力が開始した時点のタイマ600の値(時間情報)を管理バイトBMのパケット到着時間情報ATSに付加する。
【0165】
同様にTD制御器TDCより設定されたフォーマット値をフォーマット識別子FIDに、第1〜第εストリーム入力器TSR1〜TSRεの接続を指定で接続した第iストリーム入力器TSRiの番号(i)をマルチストリーム識別子トランスポートストリーム識別子TSID付加して、素性管理バイトBMhを構成する。
ストリーム出力設定情報HSOUTは、パケットデータの入力時点においては、情報は格納されていない。この管理バイトの後に実データPD指定されたパケットバッファセルに実データPDを逐次格納する。
【0166】
なお、上記では実データPDの前に管理バイトを付加したが、図23および図24に示すように、実データPDの後に管理バイトを付加する場合も考えられる。この場合、フォーマット識別子FIDおよびトランスポートストリーム識別子TSIDを付加する手段は上記の場合と同一である。パケット到着時間情報ATSは、図1のバッファセル割当器230によりバッファセルBcの割当が決定され、指定バッファセルBcに指定サイズのパケットデータの格納が終了した時点のタイマ600の値(時間情報)が付加されて生成される。以後の処理はこの付加した管理バイト情報を利用して処理を行う。
【0167】
上述のステップ#8200における「パケットバッファ確認」サブルーチンにおいて得られたフォーマット識別子FIDにより、次のステップ#8300の「フォーマット解析」サブルーチンが実行されて、入力されるトランスポートストリームTSそれぞれに固有のフォーマットに対応するフォーマット処理が認識される。
【0168】
次に、図12を参照して、ステップ#8400の「パケットデータフィルタリング」サブルーチンの詳細にすいて説明する。上述のステップ#8300における「フォーマット解析」にて得られたフォーマット識別子FIDに応じてフォーマット処理が決定する。ここではその1つのフォーマットについての処理について説明するが、トランスポートストリームTSごとにあらかじめ定められたフォーマットにしたがって同様に処理されることは言うまでもない。
【0169】
初めに、ステップS8402において、パケットデータ内のエラー情報が抽出される。例えばMPEGの場合は、TEI(Transport Error Indicator)がエラー情報に相当する。そして、処理は次のステップS8404に進む。
【0170】
ステップS8404において、前記のステップS8216で抽出された管理バイトBMのトランスポートストリーム識別子TSIDを制御テーブルCltのパラメータPMc8に保存する。そして、処理は次のステップS8406に進む。
【0171】
S8406において、ステップS8402で抽出されたエラー情報に基づいて、処理中のパケットデータがエラーであるか否かを判定する。ストリームが正常ストリームの場合は、処理は次のステップS8408に進む。一方、処理中のパケットデータがエラーパケットである場合には、処理はステップS8418に進む。
【0172】
ステップS8408において、パケットデータ内のパケット識別子PIDを抽出する。このパケット識別子PDIDと前述のステップS8404において保存されたトランスポートストリーム識別子TSIDをパケット選択器400に設定してパケット選択処理を起動させる。そして、処理は次のステップS8410に進む。
【0173】
ステップS8410において、パケット選択器400は、ステップS8408のパケット選択処理起動に応じて、パケット選択処理を開始する。パケット選択器400はTD制御器TDCにより設定された取得するパケットの情報と処理中のパケットのトランスポートストリーム識別子TSID/パケット識別子PIDを比較(フィルタリング)する。つまり、処理対象トランスポートストリーム識別子TSIDdと抽出トランスポートストリーム識別子TSIDeとを比較し、処理対象パケットデータ識別情報PIDdと抽出バッファパケット識別情報PIDeとを比較する。制御器PBACはパケット選択器400のパケット選択(フィルタリング)処理が終了するまで待機する。パケット選択器400は、パケット選択処理が完了すると制御部にパケット選択処理が完了したことを通知する。そして処理は、次のステップS8412に進む。
【0174】
ステップS8412において、上述のステップS8410におけるパケット選択完了を認識後、パケット選択の結果をパケット選択器400から読み出す。そして、ステップS8410における照合結果が一致であるか否かが判断される。照合結果が一致の場合には、処理は次のステップS8414に進む。一方照合結果が不一致の場合、処理は後述のステップS8416に進む。
【0175】
ステップS8414において、ステップS8412でのパケット選択の結果判定により比較一致した設定パターンの情報(以下:エントリと呼ぶ)を制御テーブルCltのパラメータPMc4に保存する。そして、本サブルーチンの処理を終了する。
【0176】
一方、ステップS8416において、上述のS8414で比較不一致との判定に応じて、制御テーブルCltのパラメータPMc1(パケット情報)を1(パケット選択不一致)に更新する。このルーチンに到達した場合、処理パケットは不要なパケットであることを示し、以後のパケット処理は不用である。よって、本サブルーチンを終了して、処理は、前述のステップ#8500、#8600、および#8800のサブルーチンをスキップして、ステップ#8900の「ストリーム出力制御」サブルーチンにおける後述の「パケットセル開放」へ進む。
【0177】
また、ステップS8418においては、上述のステップS8406におけるエラーパケットであるとの判定に応じて、制御テーブルCltのパラメータPMc(パケット情報)を2(入力ストリームエラー)に更新する。前述のステップS8416のパケット選択結果不一致の場合と同様に、このルーチンに到達した場合、処理パケットは不要なパケットであることを示し、以後のパケット処理は不用である。このため、本サブルーチンを終了して、処理は#900の「パケットセル開放」へ進む。
【0178】
次に、図13を参照して、#8500の「アクセス対象パケットデータに対応する処理要求テーブル取得」サブルーチンの詳細について説明する。前述のステップ#8400の「パケットデータフィルタリング制御」サブルーチンと同様に、本サブルーチンにおいても、ステップ#8300の「フォーマット解析」サブルーチンで得られたフォーマット識別子FIDに応じて、トランスポートストリームTSのフォーマットごとに処理要求テーブルは設定される。なお、以下に、1つのフォーマットを例示して説明するが、各フォーマットごとに以下に述べる処理が適応できることは言うまでもない。なお、本サブルーチン処理は、前述のステップ#8400の「パケットデータフィルタリング制御」サブルーチンのパケット選択処理にて、取得すべきパケットデータであると判定された場合のみ実行されることは既に述べた通りである。
【0179】
本サブルーチンの処理について具体的に述べる前に、まず図28(制御テーブル構成)および図31(処理要求テーブル)を参照して、制御テーブルCltおおよび処理要求テーブルPdtについて説明する。ステップ#8400におけるパケットの取得は、TD制御器TDCから設定されるパケット識別子PIDdと入力パケットデータのパケット識別子PIDeを比較(フィルタリング)することで判定されることは既に説明した。図1のマルチフォーマットトランスポートストリームデコーダTDでは、同様にTD制御器TDCで設定される処理要求テーブルPdtにより、取得したパケットの処理を決定する。すなわちTD制御器TDCは取得パケットのパケット識別子PIDeと取得パケットに対する処理要求テーブルPdtを合わせて設定する。
【0180】
図31に、処理要求テーブルPdtの一例を示す。なお、処理要求テーブルPdtは、制御信号ScWに含まれて、パケットバッファリング調停器PBAcに供給される情報である。処理要求テーブルPdtには、主に、デスクランブル、メインメモリ出力、ストリーム出力を行うかの指定および各処理に必要な情報が記載されている。
【0181】
処理要求テーブルPdtは、7つのパラメータPMd1、PMd2、PMd3、PMd4、PMd5、PMd6、およびPMd7を含む。パラメータPMd1は、0あるいは1の値で表され、処理要求テーブルPdtの使用情報に対応する。つまり、パラメータPMp1が0は処理要求テーブルPdtが無効であることを示し、パラメータPMp1が1は処理要求テーブルPdtが有効であることを示す。
【0182】
パラメータPMp2は、メインメモリ900に出力する選択複数TS複数番組パケットデータ列Pemmの形式を指定する出力形式情報に対応する。
パラメータPMp3は、例えばO〜Pでデスクランブルキーが格納されている番号を表すデスクランブル情報に対応する。
【0183】
パラメータPMp4は、0あるいは1の値で表され、デスクランブルイネーブル情報に対応する。パラメータPMp4が0はデスクランブルが未実行であることを示し、パラメータPMp4が1はデスクランブルが実行されていることを示す。
【0184】
パラメータPMp5は、0〜CHN(CHNは任意の自然数)で表されるメインメモリ出力情報に対応する。0〜CHNは、メインメモリ900に出力するときのチャンネル番号を示す。
【0185】
パラメータPMp6は、0あるいは1の値で表され、ストリーム出力情報に対応する。パラメータPMp6が0は、ストリーム出力に対して処理要求テーブルPdtが無効であることを示す。パラメータPMp6が1は、処理要求テーブルPdtがストリーム出力に対して有効であることを示す。
【0186】
パラメータPMp7は、0あるいは1の値で表され、ストリーム出力デスクランブルイネーブル情報に対応する。パラメータPMp7が0は、ストリーム出力の際に、デスクランブルを行わないことを示す。パラメータPMp7が1は、ストリーム出力の際に、デスクランブルを行うことをことを示す。このようにして、処理要求テーブルPdtには、トランスポートストリームTSごとにユーザの要求に応じて処理すべき情報が記載されている。
【0187】
次に、図28に、制御テーブルCltの一例を示す。なお、制御テーブルCltは、複数の信号に基づいて、制御器PBACによって生成される情報である。制御テーブルCltは、10のパラメータPMc1、PMc2、PMc3、PMdc、PMc5、PMc6、PMc7、PMc8、PMc9、およびPMc10を含む。
【0188】
パラメータPMd1は、0、1、あるいは2の値で表され、パケットデータ情報に対応する。つまり、パラメータPMc1が0は、パケットデータが正常であることを示す。パラメータPMc1が1は、パケットデータ選択不一致、つまりバッファセルBcに格納されているパケットデータは、処理対象ではないことを示す。パラメータPMc1が2は、入力ストリームエラーを示す。
【0189】
パラメータPMc2は、0あるいは1で表され、スクランブル情報に対応する。パラメータPMc2が0は、パケットデータはスクランブルされていないことを示す。パラメータPMc2が1は、パケットデータはスクランブルされていることを示す。
【0190】
パラメータPMc3は、0あるいは1で表され、デスクランブル情報に対応する。パラメータPMc3が0は、デスクランブルが未実行であることを示す。パラメータPMc3が1は、デスクランブル実行されている(?)を示す。
【0191】
パラメータPMc4は、0あるいは1の値で表され、ストリーム出力デスクランブル情報に対応する。パラメータPMc4が0は、デスクランブルが未実行であることを示し、パラメータPMc4が1はデスクランブルが実行されていることを示す。
【0192】
パラメータPMc5は、0〜N−1(Nは任意の自然数)の値で表されるパケット照合結果(エントリ)情報に対応する。0〜N−1のそれぞれは、照合結果を表すエントリの番号を示す。
【0193】
パラメータPMc6は、0〜M(Mは任意の自然数)の値で表され、入力TSP要バッファセル情報に対応する。0〜Mのそれぞれは、入力されたパケットデータを格納したバッファセルBcのバッファセル番号Nbcを示す。
【0194】
パラメータPMc7は、0〜M(Mは任意の自然数)の値で表され、デスクランブルTSP用バッファセル情報に対応する。0〜Mのそれぞれは、デスクランブルされたパケットデータを格納したバッファセルBcのバッファセル番号Nbcを示す。
【0195】
パラメータPMc8は、1〜εの値で表され、ストリーム入力器TSR1〜εのそれぞれを示すストリーム識別子TSIDに対応する。
【0196】
パラメータPMc9は、1〜L(Lは任意の自然数)の値で表され、トランスポートストリームTSごとに定められた所定のフォーマットを示すフォーマット識別子FIDに対応する。
【0197】
パラメータPMc10は、該当パケットデータに対する処理要求一覧を記載した処理要求テーブルPdtを示す。このようにして、制御テーブルCltには、処理対象であるパケットデータに対する制御情報が記載される。
【0198】
図13に示すように、ステップ#8500の実行が開始されると、まずステップS8502において、前記パケット選択処理で取得されたパケットデータに一致したエントリに対応する処理要求テーブルPdtが制御信号ScWから読み出される。つまり、制御テーブルCltのパラメータPMc10に記載されている処理要求テーブルPdtが読み出される。そして、処理は次のステップS8504に進む。
【0199】
ステップS8504において、読み出されたした処理要求テーブルPdtにおけるパラメータPMc1〜PMc7の値を、制御テーブルCltのパラメータPMc1〜PMc10の対応するものに付加するして、制御テーブルCltを生成する。これはTD制御器TDCが設定する処理要求テーブルPdtを読み出すだけでも対応できる。しかしながら、TD制御器TDCは動的にこの処理要求テーブルPdtを更新することが可能であり、さらに、マルチフォーマットトランスポートストリームデコーダTDはパケット取得設定時のテーブルの情報で処理する必要あるために、制御テーブルCltで管理を行う。そして、処理は、次のステップS8506に進む。
【0200】
ステップS8506においては、ステップS8502で取得した処理要求テーブルPdtのパラメータPMp6(ストリーム出力情報)の値を処理管理バイトBMpのストリーム出力要求情報HSOUTにセットする。これは後段のストリーム出力処理(#8900)において、ストリーム出力器1300がこの処理管理バイトBMpに基づいてストリーム出力を判断するためである。そして、処理は次のステップS8510に進む。
【0201】
ステップS8510において、ステップS8502で取得した処理要求テーブルPdtのテーブル使用情報(PMp1)により、取得した処理要求テーブルPdtの情報が有効であるかを判断する。処理要求テーブルPdtが有効である場合、処理要求テーブルPdtの取得は終了して、本サブルーチンを終了する。一方、処理要求テーブルPdtが無効である場合は、処理はステップS8512に進む。
【0202】
ステップS8512において、制御テーブルCltのパケット情報(PMc1)の値を2(パケット選択不一致)に更新する。つまり、処理要求テーブルPdtが無効である場合には、入力されるパケットデータがエラーであると管理する。
【0203】
以上がステップ#8500の「アクセス対象パケットデータに対応する処理要求テーブル取得」サブルーチンの詳細である。なお、図2に示したように、管理バイトBMが実データPDの先頭に付加したときの処理について説明したが、図23および図24に示す示すような、管理バイトBMが実データPDの後ろに付加された場合でも同一のマルチフォーマットトランスポートストリームデコーダTDが適用できることを、図14に示すフローチャートを参照して説明する。
【0204】
管理バイトBMが実データPDの後ろに付加される場合では、図14に示すように、パケットデータの実データPDの先頭に付加される場合(図13)のフローチャートにおけいて、ステップS8506とS8510の間にステップS8508の処理が新たに設けられる。つまり、前述のステップS8508においては、処理管理バイトBMp中のストリーム出力要求情報HSOUTを更新した。しかしながら、管理バイトBMが実データPDの後ろに付加される場合は、図23および図24に示すように、ストリーム出力要求情報HSOUTを設定した素性管理バイトBMhをバッファセルBcの先頭に処理管理バイトBMpとして書き込む。これにより以後の処理は同一に処理することが可能となる。
【0205】
次に、図15、図28、図31、図32、および図33を参照して、上述のステップ#8600の「デスクランブル制御」サブルーチンの詳細について説明する。上述のステップ#8400および#8500において、アクセス対象パケットデータを選択し、処理パケットデータに対する処理内容を記載した処理要求テーブルPdtが取得されると、本サブルーチンが開始される。
【0206】
まず、ステップS9602において、処理対象のパケットデータのスクランブル判定フィールドが抽出される。トランスポートストリームTSがMPEGに基づく場合、TSC(Transport Scramble Control)がスクランブル判定フィールドに当てはまる。このスクランブル判定フィールドによりアクセス対象パケットデータに対するスクランブルの有無を知ることができる。そして、処理は次のステップS8604に進む。
【0207】
ステップS8604において、前述のステップ#8500において取得された処理要求テーブルPdtのデスクランブルイネーブル(パラメータPMp4)、ストリーム出力デスクランブルイネーブル(パラメータPMp7)を読み出す。そして、処理は次のステップS8606に進む。
【0208】
ステップS8606において、ステップS8602で読み出したスクランブル判定フィールドと、ステップS8604で読み出したデスクランブルイネーブル(PMp4)およびストリーム出力デスクランブルイネーブル(PMp7)に基づいて、スクランブル処理を実行するか否かが判断される。まずスクランブル判定フィールドでパケットデータにスクランブルがかかっていないと判断できる場合、処理はS8610Cに進む。スクランブル判定フィールドでパケットデータにスクランブルがかかっていると判断できる場合には、処理はステップS8608に進む。
【0209】
ステップS8608において、ステップS8604で読み出されたデスクランブルイネーブル(パラメータ4)およびストリーム出力デスクランブルイネーブル(パラメータ7)でデスクランブル処理を実行するかを判断する。つまり、パラメータPMp4およびパラメータPMp7の少なくともいずれかの値が1であれば、デスクランブルを実行すると判断される。そして、処理はステップS8610Bに進む。一方、パラメータPMp4およびパラメータPMp7の値が共に1でなければ、デスクランブルを実行しないと判断される。そして処理は、ステップS8610Aに進む。
【0210】
ステップS8610Aにおいて、上述のステップS8608におけるデスクランブルを実行しないとの判断に基づいて、制御テーブルCltのスクランブル情報(PMc2)、デスクランブル情報(PMc3)、およびストリーム出力デスクランブル情報(PMc4)の値が設定される。そして、本サブルーチンの処理終了する。
【0211】
ステップS8610Cにおいては、上述のステップS8606におけるパケットデータがスクランブルされていないとの判断に基づいて、制御テーブルCltのスクランブル情報(PMc2)、デスクランブル情報(PMc3)、およびストリーム出力デスクランブル情報(PMc4)の値が設定される。そして、本サブルーチンの処理終了する。
【0212】
ステップS8610Bにおいては、上述のステップS8608におけるデスクランブルを実行するとの判断に基づいて、制御テーブルCltのスクランブル情報(PMc2)、デスクランブル情報(PMc3)、およびストリーム出力デスクランブル情報(PMc4)の値が設定される。そして、処理は次のステップS8612に進む。
【0213】
図32を参照して、デスクランブル実行可否判定について説明する。同図において、左からスクランブル判定フィールド欄、パラメータPMp4欄、パラメータPMp7欄、デスクランブル実行欄、パラメータPMc2欄、パラメータPMc3欄、パラメータPMc4欄、および書換スクランブル判定フィールド欄が設けられている。なお、パラメータPMp4およびPMp7は処理要求テーブルPdtを構成するパラメータであり、パラメータPMc2、PMc3、およびPMc4は制御テーブルCltを構成するパラメータであることは上述の通りである。
【0214】
スクランブル判定フィールド欄の値は、被スクランブルデータDsdiから抽出される。パラメータPMp4およびパラメータPMp7は制御信号ScWに含まれる処理要求テーブルPdtから抽出される。デスクランブル実行欄は、スクランブル判定フィールド欄、パラメータPMp4欄、およびパラメータPMp7欄の値に基づいて、未実行/実行のいずれかが格納される。
【0215】
パラメータPMc2は、スクランブル判定フィールドおよびパラメータPMp4の値に基づいて、0(スクランブルなし)あるいは1(スクランブル)のいずれかがセットされる。
パラメータPMc3は、パラメータPMp4およびデスクランブル実行の値に基づいて、0(デスクランブル未実行)あるいは1(デスクランブル実行)のいずれかがセットされる。
パラメータPMc4は、パラメータPMp7およびデスクランブル実行の値に基づいて、0(デスクランブル未実行)あるいは1(スクランブル実行)のいずれかがセットされる。
書換スクランブル判定フィールドは、スクランブル判定フィールドおよびパラメータPMp4の値に基づいて、0(書換)あるいは1(非書換)のいずれかがセットされる。
【0216】
前述のステップS8606およびS8608で設定された情報に基づき、図32に示す関係に基づいて、制御テーブルCltのスクランブル情報(PMc2)、デスクランブル情報(PMc3)、およびストリーム出力デスクランブル情報(PMc4)がセットされる。
【0217】
ステップS8612において、パケットデータ内のスクランブル判定フィールドの値を書き換える。ここではスクランブル有をスクランブル無に変更するように書き換える。そして、処理は次のステップS8614に進む。
【0218】
ステップS8614において、パケットバッファの中間処理用バッファセルイネーブルが読み出される。この中間処理用バッファセルイネーブルは中間処理用バッファセルイネーブルがイネーブルの場合、イネーブルに該当するパケットバッファセルが使用中であることを示す。そして、処理は次のステップS8616に進む。
【0219】
ステップS8616において、ステップS8614で読み出された中間処理用バッファセルイネーブルにより、未使用バッファセルBcがあるか否かが判定される。未使用パケットセルBcがない場合は、この部分で使用可能なバッファセルができるのまで待機する。そして、処理は次のステップS8618に進む。
【0220】
ステップS8618において、ステップS8616で未使用と判定されたバッファセルBcからデスクランブル処理の出力データを格納する中間処理用バッファセルBc_Mを決定する。該当する中間処理用バッファセルBc_Mに対応する中間処理用バッファセルイネーブルをイネーブルする。これにより中間処理用バッファセルBc_Mが使用中であることを示し、ディスエーブル他の処理で該当する中間処理用バッファセルBc_Mが使用されることを防止する。そして、処理は次のステップS8620に進む。
【0221】
ステップS8620において、上述のステップS8618で割り当てられた中間処理用バッファセルBc_Mのバッファセル番号Nbcを制御テーブルCltのデスクランブルパケットデータ用バッファセル情報(PMc7)にセットする。そして、処理は次のステップS8622に進む。
【0222】
ステップS8622において、該当パケットデータPが格納されているバッファセルBcから、ステップS8618で割り当てられた中間処理用バッファセルBc_Mにデスクランブル転送後のデータを転送する。実際、スクランブル有のパケットデータPにおいて、スクランブルがかかっていない部分(主にヘッダ部分)とスクランブルがかかっている部分(主にペイロードと呼ばれる実データPDの部分)が存在する。ここではスクランブルがかからないヘッダ部分をパケットバッファBcから中間処理用バッファセルBc_Mへデータを転送(コピー)する。そのために転送元アドレス、転送先アドレス、および転送バイト数が設定された後に、転送が開始される。そして、処理は次のステップS8624に進む。(前後で、バッファセルBc_I、Bc_M、Bc_Oの定義をしておく、図2参照で)
【0223】
ステップS8624において、ステップS8622で転送を開始したスクランブルのかかっていない部分の転送が終了するのを待つ。そして、処理は次のステップS8626に進む。
【0224】
ステップS8626において、スクランブルがかかっている対象データ部分のデスクランブル処理を行う。デスクランブル処理は図1のデスクランブル器1100が行う。以下に、図33を参照して、デスクランブル器1100によるデスクランブル処理に必要な設定について説明する。
【0225】
図10に示すように、初めに処理パケットの処理要求テーブルPdtのデスクランブル情報(PMp3)を読み出す。デスクランブル情報にはTD制御器TDCで設定したデスクランブル用のキーが格納されている場所が示されている。そして、処理は次のステップS8628に進む。
【0226】
ステップS8628において、上述のステップS8626で読み出されたデスクランブル情報に該当するキーデータがデスクランブル器1100のデスクランブルキーにセットされる。そして、処理は次のステップS8630に進む。
【0227】
ステップS8630において、該当パケットデータPのデスクランブル器1100のパケットバッファ読み出しアドレス、パケットバッファ読み出し転送サイズ、パケットバッファ書き込み開始アドレス、およびパケットバッファ書き込み転送サイズが設定される。なお、図33に例示するように、デスクランブルキー、パケットバッファ読み出しアドレス、パケットバッファ読み出し転送サイズ、パケットバッファ書き込み開始アドレス、およびパケットバッファ書き込み転送サイズはデスクランブル指示制御データDcrlとして、制御器PBACからパケット解析器1000のデスクランブル器1100に供給される。そして、デスクランブル対象データの転送のデスクランブル器1100への開始される。処理は次のステップS8632に進む。
【0228】
ステップS8632において、デスクランブル器1100に転送されるスクランブルデータのデスクランブルが開始される。そして、処理は次のステップS8634に進む。
【0229】
ステップS8632において、デスクランブル器1100によるスクランブルデータのデスクランブル処理の終了を待つ。デスクランブル処理が終了するとデスクランブル器1100はデスクランブル終了通知データDcrloとして転送終了通知を発行する。これにより制御器PBACは、デスクランブル処理が終了したと判断できる。デスクランブル処理が終了した時点でステップ#8600における全処理が終了する。なお、デスクランブルが終了した時点では、図2に示すように、中間処理用パケットバッファセル_M1に、転送元で付加されていた管理バイトBMとデスクランブルされたパケットデータ1´が格納される。
【0230】
次に、図16、図33【セクション選別器への入力情報・出力情報】、図28【制御テーブル構成】、図31【処理要求テーブル構成】を参照して
を参照して、ステップ#8700の「パケットパターン選別処理の詳細について説明する。ステップ#8600の「デスクランブル制御」サブルーチンの処理後、デスクランブル処理されたパケットデータに対し、セクションデータ選別器1200によるパケットパターン選別処理を行う。このセクションデータ選別器1200では、主に設定されたパターンとパケットデータを比較し、パケットの取捨(フィルタリングを行う)。セクションデータ選別器1200では規格にあるセクションデータ以外にもトランスポートストリームパケットデータ、PESパケット、エレメンタリストリームなどの規格に適応できることは言うまでもない。ここでは一例としてセクションデータをセクションデータ選別器1200によりパケットパターン選別する方法を説明する。
【0231】
まず、ステップS8702において、制御テーブルCltが読み出される。そして、処理は次のステップS8704に進む。
【0232】
次にステップ#8400の「パケットデータフィルタリング」サブルーチンで取得されたパケット識別子PIDに基づいて、フィルタリングしたエントリを抽出する。つまり、ステップ#8400にて制御テーブルCltに保存されたエントリを読み出す。次にエントリに対応するエントリテーブルTEを読み出す。
【0233】
なお、図6に、エントリテーブルTEの構成を示す。エントリテーブルTEは、デスクランブル終了通知データDcrloに基づいて、制御器PBACで生成される情報である。エントリテーブルTEには、1パケット以上にまたがるデータに対して、フィルタリングを行う場合のパケット単位での完結/継続の状態を示すステータスと、パケットを超えて継続する場合に残りの継続するバイト数の情報が記載されている。
【0234】
エントリテーブルTEは、2つのパラメータPMe1およびPMe2を含む。パラメータPMe1は、0あるいは1の値で表され、ステータス情報に対応する。つまり、パラメータPMe1が0は、当該データは1パケットで完了しており、当該パケットデータの後にまだデータはないことを示す。
【0235】
パラメータPMe2は、パラメータPMe1が1(続き有)の場合の、残りレングスを表す。図O7に示すように、制御器PBACは所定数MのエントリテーブルTEを管理する。
【0236】
ステップS8704において、制御器PBACは、該当するエントリのエントリテーブルTE内のステータス値を読み出す。そして、処理は次のステップS8706に進む。
【0237】
ステップS8706において、ステップS8702で読み出した制御テーブルCltのパケット情報(パラメータPMc1)に基づいて、パケットデータの状態を判断する。パラメータPMcが0でない、つまりバッファセルBcに蓄積されているパケットデータは処理対象でない(パラメータPMc1=1、パケット選択不一致)場合、若しくは蓄積されているパケットデータにエラーがある(パラメータPMc1=2、入力ストリームエラー)の場合には、セクション選別を行わない。この場合、処理はステップ#8900の「ストリーム出力制御」サブルーチンに進み、何も処理せず該当するバッファセルBcを開放する。この処理によりパケットが破棄され何も出力されない。一方、パケットが正常(パラメータPMc=0)の場合には、処理は、次のステップS8708に進む。
【0238】
ステップS8708において、セクションフィルタ選別器100に転送するデータの先頭のアドレスが算出される。そして、処理は次のステップS8710に進む。
【0239】
ステップS8710において、処理要求テーブルPdtが読み出されて、出力形式情報(パラメータPMp2)が抽出される。これにより、対象パケットデータに固有に定められたパケットフォーマットが特定される。本明細書においては、セクション出力に指定されたものを例に以後の処理を説明する。そして、処理は次のステップSS8712に進む。
【0240】
ステップS8712において、ステップS8702で読み出された制御テーブルCltのスクランブル情報(パラメータPMc2)に基づいて、処理対象候補のパケットデータがスクランブル状態であるか否かが判断される。スクランブル状態(PMc2=1:スクランブル有)であると判断される場合は、処理はステップ#8900の「ストリーム出力制御」サブルーチンに進み、処理対象候補のパケットデータに対して何も処理せず該当するバッファセルBcを開放する。この処理により、バッファセルBcに格納されている対象候補のパケットデータPは破棄されて、スクランブルデータは出力されない。
【0241】
一方、ステップS8712において、処理対象候補のパケットデータはスクランブルがかかっていない状態(PMc2=0:スクランブルなし)であると判断される場合、処理はステップS8714へ進む。なお、ここではスクランブルデータを出力しない例を示しているが、スクランブルデータも出力したい場合にはこのステップS8712をスキップして、ステップS8714に進むように構成することで、図1に示したマルチフォーマットトランスポートストリームデコーダTDのアーキテクチャを変更することなく容易に実現できる。
【0242】
ステップS8714において、エントリテーブルTEのパラメータPMe1に基づいて、処理対象パケットデータのステータス、つまり続きがあるのか否かが判断され得る。続きがある(PMe1=1)と判断される場合には、処理対象候補パケットデータの情報を読み出してから後続のパケットデータにフィルタ処理を行う必要がある。そのために、処理はステップS8740に進む。
【0243】
一方、ステップS8714において、このパケットデータがセクションパターンの開始である(Pme1=0)と判断される場合には、当該処理対象パケットデータからセクションフィルタパターン選別を行う。そのために、処理は次のステップS8716に進む。
【0244】
ステップS8716において、処理対象候補のパケットデータがセクションセクションパターンの開始であるときの処理が行われる。まずパケットデータのセクションデータの長さを示すセクションレングスフィールド(MPEGの場合はステップSection_lengthが抽出される。そして、処理は、次のステップS8718に進む。
【0245】
ステップS8718において、ステップS8716で抽出されたセクションデータ長を、セクションデータ選別器1200に入力するセクションデータ長フィールド情報に設定する。そして、処理は次のステップS8720に進む。
【0246】
図33に、セクションデータ選別器1200への入力情報・出力情報に示す。制御器PBACは、ステップS8704で読み出したステータス(PMe1)、ステップS8708で算出された転送データの転送アドレス、転送サイズ、および転送先アドレスがステップS8718において、セクション選別指示制御データScrlとして設定される。転送先アドレスは図2に示す、出力用領域である三次バッファセルBc_Oの先頭アドレスを設定する。設定が終了するとさらに、転送起動命令をセクション選別指示制御データScrlに含めてセクションデータ選別器1200へ出力する。
【0247】
ステップS8720において、ステップS8718で出力されたセクション選別指示制御データScrlに基づいて、セクションデータ選別器1200が起動される。そして、処理詩次のステップS8722に進む。
【0248】
ステップS8722において、セクションデータ選別器1200の選別処理が終了するまで待機する。図33に示すように、セクションデータ選別器1200はフィルタリング結果(MPe1)、フィルタリング通過データサイズ、残りレングス数、および転送終了通知からなる出力セクション選別指示制御データScrloを生成して、制御器PBACに出力する。この転送終了通知に基づいて、セクションデータ選別器1200の選別処理終了されたことを検出する。そして、処理は次のステップS8724に進む。
【0249】
ステップS8724において、セクションデータ選別器1200で選別した選別結果が読み出される。セクションデータ選別器1200から出力される出力セクション選別終了信号Scrloから、セクション選別結果であるフィルタリング後のステータス、フィルタリング通過データサイズ、残りレングス長の情報が読み出される。そして、処理は次のステップS8726に進む。
【0250】
ステップS8726において、ステップS8724で読み出されたフィルタリング後のステータス(セクション選別終了信号Scrlo)に基づいて、当該処理対象候補パケットデータであるセクションデータの完結/継続の状態が判断される。継続している(ステータス=1)と判断される場合、処理はステップS8750に進む。一方、セクションデータは完結している(ステータス=0)と判断される場合、処理はステップS8728に進む。
【0251】
ステップS8728において、ステップS8726でのセクションデータ選別後パケットデータが完結したとの判断に基づいて、エントリテーブルTEのステータスを続きなし(PMe1=0)に更新する。また残りレングス数を0(PMe2=0)に更新する。そして、セクションデータ選別後のパケットデータが完結した場合の本サブルーチンの処理を終了する。
【0252】
ステップS8740においては、ステップS8714で継続していると判断されたセクションデータの処理が実行される。つまり、エントリテーブルTEのステータスが続き有(PMe1=1)を示す場合、エントリテーブルTEの残りレングス数(PMe2)が読み出される。そして、処理はステップS8742に進む。
【0253】
ステップS8742において、既に読み出したステータス(PMe1)を図33に示した出力セクション選別終了信号Scrloのステータス情報に設定し、残りレングス数(PMe2)を同様に出力セクション選別終了信号Scrloのセクションデータ長フィールド情報に設定して出力される。そして、処理は前述のステップS8720に戻り、既に説明したように、セクション選別指示制御データScrl信号を設定し、セクションデータ選別器1200を起動させる。
【0254】
一方、ステップS8750において、ステップS8726でセクションデータ選別後にパケットデータが継続していると判断された場合の処理が実行される。つまり、図33に示すように、出力セクション選別終了信号Scrloの残りレングス数をエントリテーブルTEの残りレングス数(PMe2)に更新する。そして、処理は次のステップS8752に進む。
【0255】
ステップS8752において、図33に示す出力セクション選別終了信号Scrloのフィルタリング後のステータスをエントリテーブルTEのステータスに更新する。この場合には続き有(PMe1=1)に更新される。こうしてテーブルを更新することで次にこの続きのセクションデータを処理するときに継続したパケットデータと判断できる。そして、本サブルーチンを終了する。
【0256】
以上のごとく、ステップ#8700の「セクションデータパターン選別」サブルーチンを実行された結果、出力用領域である三次バッファセルBc_Oに出力するデータが蓄積されている。
【0257】
次に図18を参照して、ステップ#8800の「メインメモリ制御」サブルーチンの詳細について説明する。なお本サブルーチンは、図2にあるようなすべてのフォーマットに共通な処理である。なお、以上の説明は、入力されたパケットがパケット解析器1000で用意されたバッファの中での終端を管理バイトBMhで認識しているため、入力パケットがバッファよりも小さければその大きさに関わらず、処理することができる。
【0258】
次に、フォーマット3のパケットセルよりデータサイズが大きいパケットデータの処理について図2および図17を用いて説明する。
【0259】
本発明のトランスポートデコーダでは、パケットセルより入力データのパケットデータが大きい場合には、パケットセルの最大バッファ容量以下のデータサイズに分割して、1つのパケットに対し、複数のパケットセルに格納する。
【0260】
フォーマット3のパケットデータサイズをKとすると、K/Nが最大バッファセル容量以下であれば処理が可能となる。なおNは分割数を表す。
TD制御器はこのようなK/Nのデータサイズを設定する。ここでは、具体的にK=480、最大データ容量=192、N=3のときの例を示すが、この例以外でもパケットデータを分割して上記の制限を満たせば、同様に処理できる。
【0261】
TD制御器が160のデータサイズを設定すると、ストリーム入力器は480バイトの内、160バイトが入力した時点で、管理バイトを付加し、164バイト単位で、パケットバッファ制御器はパケットセルに格納終了信号を通知する。次の161バイト目から320バイトの入力、321バイト目から480バイトの入力でも同様の処理を行い、パケットセルに格納される。次にこうして格納された分割パケットデータの処理について図17を用いて説明する。
【0262】
ステップS8750において、上記分割パケットデータごとのパケットセルに格納したデータ単位となる先頭データをパケットバッファセルO領域の先頭アドレスへ書き込む。これは後段のAVデータへ、この160バイト単位でデータの区切りを通知することで、AVデコード処理の処理開始を示す信号を同時に通知する。この先頭データの書き込みが終了するとステップS8752へ進む。
【0263】
次にステップS8752において、格納されたパケットセルより該当する分割データをパケットバッファセルO領域の上記ステップS8750で書き込んだ先頭データの次アドレスに転送する。転送を開始したら、ステップS8754へ進む。
【0264】
ステップS8754では、ステップS8752で転送した分割パケットデータの転送の完了を待つ。転送が完了すると、該当パケットの処理を終える。
このステップS8754が終えた時点でのパケットバッファセルO領域では、図2の様に、先頭データと該当する160バイトの分割データが格納された状態になる。これを到着順に処理することで、図??のように元のパケットデータに対し、分割境界を示す先頭データを挿入して、後段のAVデータに出力する。なお、ここでは特定のAVデコーダのインターフェースに対応した処理を示したが、他のAVデコーダのように入力したデータをそのまま出力するような場合には、ステップS8750の処理を省略することで、入力データを出力することにも容易に対応できることは言うまでもない。
【0265】
真ステップSステップS8802において、制御テーブルCltの処理要求テーブルPdt(PMc10)を読み出す。そして、処理は次のステップS8804に進む。
【0266】
ステップS8804において、ステップS8802で読み出された処理要求テーブルPdtからメインメモリ出力情報(PMp5)を読み出す。このメインメモリ出力情報にはメインメモリ900に出力される有限出力チャンネルが設定されており、各出力チャンネルにはスタートアドレスSP、エンドアドレスEPでパーティショニングされている。また各チャンネルにはライトポインタWPc、リードポインタRPcを持つ。このスタートアドレスSP、エンドアドレスEP、ライトポインタWPcの初期値、およびリードポインタRPcの初期値はTD制御器TDCにより設定される。そして処理は次のステップS8808に進む。
【0267】
ステップS8808において、該当する出力チャンネルの使用可否が判断される。つまり、該当する出力チャンネルが使用許可はTD制御器TDCによって指示される。制御器PBACは該当出力チャンネルが使用可能(転送を許可されている)であるかを判定する。処理要求テーブルPdtで指定した出力チャンネルをTD制御器TDCが出力許可してない場合は、制御器PBACは転送を行わない。この場合は#900のストリーム出力制御フローに進み、何も処理せず該当するパケットバッファセルを開放する。この処理により図2に示した、出力用領域(パケットセルO)にデータが格納されていてもパケットが破棄され何も出力しない。一方、許可されている場合には、処理はステップS8810に進む。
【0268】
ステップS8810において、ステップS8804で設定されたメインメモリ出力用チャンネルに対しTD制御器TDCが設定するスタートアドレスSPが読み出される。そして、処理は次のステップS8812に進む。
【0269】
ステップS8812において、ステップS8804で設定されたメインメモリ出力用チャンネルに対しTD制御器TDCが設定するエンドアドレスEPが読み出される。そして、処理は次のステップS8814に進む。
【0270】
ステップS8814において、ステップS8810で読み出されたSPを図35に示す選択複数TS複数番組パケットデータ列Pemmの格納開始アドレス(スタートアドレスSP)に設定する。そして、処理は次のステップS8816に進む。
【0271】
ステップS8816において、ステップS8812で読み出されたエンドアドレスEPを図35に示す選択複数TS複数番組パケットデータ列Pemmの格納終了アドレス(エンドアドレスEP)に設定する。そして、処理は次のステップS8818に進む。
【0272】
ステップS8818において、ステップS8804のメインメモリ出力用チャンネルに対してTD制御器TDCが設定する書き込みアドレス(ライトポインタWPc)を読み出す。そして処理は次のステップS8820に進む。
【0273】
ステップS8820において、ステップS8804のメインメモリ出力用チャンネルに対しTD制御器TDCが設定する読み出しアドレス(リードポインタRPc)を読み出す。そして、処理は次のステップS8822に進む。
【0274】
ステップS8822において、図35に示した選択複数TS複数番組パケットデータ列Pemmの残りの設定を読み出す。残りの設定はパケットバッファ転送開始アドレスとパケット転送サイズである。パケットバッファ転送開始アドレスとして、図2に示した出力用領域(パケットセル_O)の先頭のアドレスが設定される。パケット転送サイズは前述のセクションデータ選別器1200を通過したデータサイズである。よって、図33に示す出力セクション選別終了信号Scrloのフィルタリング通過データサイズを読み出して、パケット転送サイズが設定される。以上の設定後、転送起動命令を発行し、メインメモリ制御器700が起動される。そして、処理は次のステップS8824に進む。
【0275】
ステップS8824において、ステップS8822で起動されたメインメモリ制御器700の処理が終了するまで待機する。制御器PBACはメインメモリ制御器700の処理終了を、図35に示す出力信号Pctrloの転送終了通知に基づいて検出する。そして、処理は次のステップS8826に進む。
【0276】
ステップS8826において、メインメモリ制御器700による転送制御後に、オーバーフローが起きているか否かを図35に示す出力信号Pctrloのオーバーフロー情報に基づいて判断される。オーバーフローを起こす状態はパケットデータを転送してライトポインタWPcが進んだ場合にリードポインタRPcを追い越す場合である。オーバーフローが起きている場合、処理はステップS8834に進む。正常に転送が完了している(オーバーフロー情報でオーバーフローなし)場合、処理はステップS8828に進む。
【0277】
ステップS8828において、図35に示す出力信号Pctrloの転送後書き込みアドレス(ライトポインタWPc)が読み出される。そして処理は、次男ステップS8830に進む。
【0278】
ステップS8830において、ステップS8828で読み出した、転送後書き込みアドレス(ライトポインタWPc)で、該当出力チャンネルのライトポインタWPcが更新される。これによりライトポインタWPcが進み、メインメモリ900にデータが蓄積されていることをTD制御器TDCにしらせることが可能になる。そして、処理は次のステップS8832に進む。
【0279】
そして、ステップS8832において、メインメモリ900に転送が完了したことが状態信号SrWによって通知されて、本サブルーチンの処理が終了する。
【0280】
ステップS8834において、ステップS8826でのオーバーフローの状態との判断に応答して、メインメモリ900にオーバーフローになったことが状態信号SrWによって通知されて、本サブルーチンの処理を終了する。
する。
【0281】
次に図1、図19、図35、図28、図31を参照して上述のステップ#8900の「ストリーム出力制御」サブルーチンの詳細について説明する。なおストリーム出力制御もメインメモリ制御処理同様、図2に示したすべてのフォーマットに共通な処理である。ストリーム出力処理においては、これまで説明した処理のように必要パケットデータのバッファセルBc間の転送処理とは別に、既に格納されたバッファセルBcからストリーム出力器1300にデータが出力される。つまり、このメインメモリ900への出力とストリーム出力は同時処理で進行する。
本発明のマルチフォーマットトランスポートストリームデコーダTDはマルチストリーム入力対応である。同様にストリーム出力に関してもマルチストリームを出力することが可能である。ここでは2つのトランスポートストリームTS1およびTS2のマルチストリーム出力する方法について説明する。
【0282】
まず、ステップS8902において、制御テーブルCltが読み出される。そして、処理は次のステップS8904に進む。
【0283】
ステップS8904において、S8902で読み出した制御テーブルCltのパケット情報(PMc1)に基づいて、現在バッファセルBcに格納されているパケットデータがストリーム出力対象であるか否かが判断される。パケット識別子PIDによるパケットデータ選択で不一致である場合(パケットデータ情報=1)や、入力ストリームエラーの場合、処理はステップS8958へ進みバッファセルBcの開放処理に移る。
【0284】
一方、ステップS8904において、パケットデータが正常の場合(パケットデータ情報=0)であると判断される場合、処理はステップ#10000の「第1ストリーム出力設定」サブルーチンに進む。なお、ステップ#10000の処理について図20を参照して後述するが、ステップ#10000の内部から処理が分岐してステップ#11000の「第2ストリーム出力設定」サブルーチンが実行される。そして、ステップ#10000およびステップ#11000のそれぞれの実行後に、処理は次のステップ#13000の「ストリーム出力制御」サブルーチンに進み、ストリーム出力が実行される。後ほど図21を参照して詳述するが、ステップ#11000の内部から処理が分岐して、前述のステップS8958に進む。
【0285】
本例においては、メインメモリ900に出力したものと同様のパケットデータをストリーム出力(図1のPho1およびPho2)する場合の処理を示している。しかし、出力ストリームを受け取る回路でパケットデータの判断ができる場合は、入力ストリームをそのままストリーム出力器1300から出力するような用途も考えられる。このような用途に適応する場合には、本ステップS8904を省略することで、全パケットデータ出力に対応できる。
【0286】
図20を参照して、ステップ#10000の「第1ストリーム出力設定」サブルーチンの詳細について説明する。上述のステップS8904において、パケットデータが正常であると判断された場合には、本サブルーチンが開始される。
まずステップS10006において、第1のストリーム出力(図1Pho1)のストリーム出力設定が読み出される。そして、処理は次のステップS10008に進む。なお、ストリーム出力器1300は、TD制御器TDCが設定できるストリーム出力設定に基づいて動作する。ストリーム出力設定には、ストリーム出力情報とストリーム識別子の2つの設定がある。ストリーム出力情報とは、ストリーム出力処理のストリーム出力を行うかの否かの情報である。ストリーム識別子とは、第1〜第εストリーム入力器TSR1〜TSRεのどのストリームデータ(TSi)をストリーム出力器1300に出力するかを規定する情報であり、前述の対象トランスポートストリーム識別情報TSIDdである。
【0287】
ステップS10008において、ステップS10006で読み出されたストリーム出力情報が取り出される。そして、処理は次のステップS10010に進む。
【0288】
ステップS10010において、ステップS10008で取り出されたTD制御器TDCで設定されたストリーム出力情報において、高速出力の実行が設定されているか否かが判断される。高速出力が設定されている(ストリーム出力情報=1)場合、処理はステップS10012へ進む。一方、高速出力がい設定されていない(ストリーム出力情報=0)場合、処理はステップ#11000の「第2ストリーム出力設定」サブルーチンに進む。
【0289】
ステップS10012において、ステップS10006で読み出されたストリーム識別子TSIDdが取り出される。そして、処理は次のステップS10014に進む。
【0290】
ステップS10014において、ステップS10002で読み出した制御テーブルCltの抽出トランスポートストリーム識別子TSIDeが読み出される。そして、処理は次のステップS10016に進む。
【0291】
ステップS10016において、ステップS10006で取り出された対象トランスポートストリーム識別情報TSIDdと、ステップS10012で取り出された抽出トランスポートストリーム識別子TSIDeが一致するか否かが判断される。一致と判断される場合は、処理はストリームを出力するためのステップS10018に進む。不一致と判断される場合は、ストリームはストリーム出力器1300に出力されることなく、処理はステップS10036の「第2ストリーム出力設定」サブルーチンへ進む。
【0292】
ステップS10018において、制御テーブルCltのバッファセル番号(PMc6)が読み出される。制御器PBACにおいてバッファセル番号はスクランブル情報(PMc2)、ストリーム出力デスクランブル情報(PMc4)、入力パケットデータ用バッファセル情報(PMc6)、デスクランブルパケットデータ用バッファセル情報(PMc7)に基づいて判断される。そして、処理は次のステップS10020に進む。
【0293】
ステップS10020において、ステップS10018で決定されたバッファセル番号が出力順バッファセル番号メモリ520に書き込まれる。そして、処理は次のステップS10022に進む。
【0294】
ステップS10022において、出力順バッファセル番号メモリ制御器510のライトポインタWPcが1だけインクリメントされる。この処理によりライトポインタWPcとリードポインタRPcを管理することでストリーム出力が適正に行われる。リードポインタRPcはストリーム出力器1300が該当するライトポインタWPcにあるパケットデータの出力が終えると、リードポインタRPcが1だけインクリメントされる。このようにして、第1ストリーム出力設定が完了する。そして、処理はステップS10026に進み、第2ストリーム出力の判定が開始される。
【0295】
図21を参照して、ステップ#11000の「第2ストリーム出力設定」サブルーチンの詳細について説明する。本サブルーチンにおけるステップS10026〜ステップS10042の処理は、それぞれステップ#10000の「第1ストリーム出力設定」サブルーチンにおけるステップS10006〜S10022に対応する。違いは、本ステップは、第2ストリームとして高速出力に対応している点である。そのため、図21においては、ステップS10026〜ステップS10042のそれぞれにおいて、第2ストリームの変わりに高速出力と標記されている。よって、各ステップにおける処理についての説明を省略す。
【0296】
ただし、ステップS11032およびステップS11036において、共にNoと判断された場合、処理はステップ#1100に進む。このように、「第2ストリーム出力設定」サブルーチンの後に、同様の内容の「第iストリーム出力設定」サブルーチンを順次追加して設けることによって、任意の数のストリーム出力を行うことができる。
【0297】
次に、図22を参照して、ステップ#12000の「ストリーム出力制御」サブルーチンの詳細について説明する。上述のごとく、ステップ#10000あるいは#11000の処理が終了すると、本ステップの処理が開始する。
【0298】
まず、ステップS12046において、該当バッファセルBcの転送設定を行う。図35に示す転送開始アドレスあるいは転送バイト数はステップS10014あるいはステップS11034で判断したバッファセルBc番号の先頭のアドレスが指定される。格納されているパケットデータの転送バイト数は、トランスポートストリーム識別情報TSIDeを制御器PBACによって管理されているフォーマット情報と照合されたフォーマットに基づいて設定される。設定後、ストリーム出力の転送起動命令が発行されて、ストリーム出力のためのデータ転送が開始される。そして、処理は次のステップS12048に進む。
【0299】
ステップS12048において、リードポインタRPcに基づいて第1ストリームのパケットデータのバッファセルからストリーム出力器1300への転送が終了しているか否かが判断される。つまり、リードポインタRPcがストリーム出力器1300により進られれば転送終了と判断される。転送終了と判断される場合には、処理は次のステップS12050に進む。一方、転送終了と判断されない場合は、転送終了と判断されるまで待機することなく、処理はステップS12052に進む。
【0300】
ステップS12050において、ステップS12048による第1ストリームのパケットデータの転送終了との判断に応じて、該当バッファセルが開放される。そして、処理は次のステップS12052に進む。
【0301】
ステップS12052において、上述ステップS12048におけるのと同様に、リードポインタRPcに基づいて第2ストリームのパケットデータのバッファセルからストリーム出力器1300への転送が終了しているか否かが判断される。終了と判断されれば、処理は次のステップS12054に進む。
【0302】
ステップS12054において、ステップS12054と同様に、該当バッファセルが開放される。そして、本サブルーチンの処理を終了する。
【0303】
一方、ステップS12052において、転送終了と判断されない場合には処理は、本サブルーチンの処理を終了する。
【0304】
以下に、図36、図37、図38、図39、および図40を参照して、上述のマルチフォーマットトランスポートストリームデコーダTDの基本概念について述べる。本実施形態においては複数のトランスポートストリームTS1〜TSεに含まれる複数の番組のコンテンツデータを選択的に、トランスポートストリームTSに固有のフォーマットに応じて加工する用途に用いられる。
【0305】
図36に、本発明にかかるマルチフォーマットトランスポートストリームデコーダに入力される、それぞれが複数の番組のコンテンツを提供する2つ(ε=2)のトランスポートストリームTS1およびTS2の構成について説明する。同図には、少なくとも3つの異なる番組1、番組2、番組3、・・・、番組α1を提供する第1のトランスポートストリームTS1の構成例と、少なくとも6つの異なる番組1、番組2、番組3、番組4、番組5、番組6、・・・、番組α2を提供する第2のトランスポートストリームTS2の構成例が示されている。
【0306】
なお、第2のトランスポートストリームTS2における番組1、番組2、および番組3は、トランスポートストリームTS1における番組1、番組2、および番組3とは基本的に異なるものであるが、同じであっても良い。なお、第2のトランスポートストリームTS2のおける番組1、番組2、および番組3は、紙面の都合上図示されていない。
【0307】
同図においても、図42を参照して説明したように、トランスポートストリームTSを構成するパケットデータPのそれぞれが1つの枠として表示されている。個々のパケットデータPにはそれぞれ固有のパケット識別子PIDが付与される。
【0308】
このように、本発明にかかるマルチフォーマットトランスポートストリームデコーダに入力される複数のトランスポートストリームTSのそれぞれには同一の番組番号を有する番組が重複して存在する。さらに、パケットデータPには、トランスポートストリームTSごとにパケット識別子PIDが付与されるので、複数のトランスポートストリームTSのそれぞれには、同一のパケット識別子PIDを有するパケットデータPが重複して存在する。
【0309】
第1のトランスポートストリームTS1において、番組コンテンツパケットデータPc101_1、Pc101_2、・・・は番組1を構成する映像データであり、番組コンテンツパケットデータPc111_1、Pc111_2、・・・・は番組1を構成する音声データである。同様に、番組コンテンツパケットデータPc201_1、Pc201_2、・・・・は番組2の映像データであり、番組コンテンツパケットデータPc211_1、Pc211_2、・・・・は番組2の音声データである。さらに番組コンテンツパケットデータPc301_1、Pc301_2、・・・・は番組3の映像データであり、番組コンテンツパケットデータPc311_1、Pc311_2、・・・・は番組3の音声データである。
【0310】
第2のトランスポートストリームTS2において、番組コンテンツパケットデータPc401_1、Pc401_2、・・・は、番組4の映像データであり、番組コンテンツパケットデータPc411_1、Pc411_2、・・・・は番組4の音声データである。同様に、番組コンテンツパケットデータPc501_1、Pc501_2、・・・・は番組5の映像データであり、番組コンテンツパケットデータPc511_1、Pc511_2、・・・・は番組5の音声データである。さらに番組コンテンツパケットデータPc601_1、Pc601_2、・・・・は番組6の映像データであり、番組コンテンツパケットデータPc611_1、Pc611_2、・・・・は番組6の音声データである。
【0311】
なお、入力されるトランスポートストリームTSは3以上であっても良いし、各トランスポートストリームTSが提供できる番組数は3以上であっても良いことは言うまでもない。また、トランスポートストリームTSには、提供する番組数に応じて対応する番組コンテンツパケットデータPcが含まれる。番組の内容によっては、映像や音声以外のデータ(例えば、文字情報)に対応する番組コンテンツパケットデータPcも含まれることも同様である。
【0312】
なお、第1のトランスポートストリームTS1および第2のトランスポートストリームTS2においても、番組コンテンツパケットデータPcの間に伝送経路および処理上の要因から定められる頻度で番組コンテンツ管理表PATと番組コンテンツパケットデータ管理表PMTが配列されて構成される。
【0313】
第1のトランスポートストリームTS1に関しては、番組1、2、および3の番組コンテンツの内で番組コンテンツパケットデータPc101_1、Pc111_1、Pc201_1、Pc211_1、Pc301_1、およびPc311_1の前に、全番組コンテンツのパケット識別子PIDを記した番組コンテンツパケットデータ管理表PMT1、PMT2、およびPMT3と、これらの番組コンテンツパケットデータ管理表PMTのそれぞれのパケット識別子PIDと対応番組とを示す番組コンテンツ管理表PATが配されている。
【0314】
番組コンテンツ管理表PATには、番組1の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDは100であり、番組2の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDは200であり、番組3の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDは300であり、・・・、番組α1 の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDはα1 00であると記述されている。
【0315】
第2のトランスポートストリームTS2に関しては、番組4、5、および6の全3種類の番組コンテンツの内で番組コンテンツパケットデータPc401_1、Pc411_1、Pc501_1、Pc511_1、Pc601_1、およびPc611_1の前に、全番組コンテンツのパケット識別子PIDを記した番組コンテンツパケットデータ管理表PMT1、PMT2、およびPMT3と、これらの番組コンテンツパケットデータ管理表PMTのそれぞれのパケット識別子PIDと対応番組とを示す番組コンテンツ管理表PATが配されている。
【0316】
番組コンテンツ管理表PATには、番組4の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDは400であり、番組5の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDは500であり、番組6の番組コンテンツパケットデータ管理表PMTのパケット識別子PIDは600であり、・・・、番組α2 の番組コンテンツパケットデータ管理表PMTはα2 00であると記述されている。
【0317】
なお、トランスポートストリームTSに含まれるパケットデータPの種類によって、その到着頻度は大きく異なるため、番組コンテンツ管理表PAT、番組コンテンツパケットデータ管理表PMT、番組コンテンツパケットデータPc、およびその他のパケットが同一のトランスポートストリームTSの内部で入り乱れて配置されていることもあることは、単一のトランスポートストリームTSが入力される場合と同様である。
【0318】
なお、図36においては、描画上の都合により第1のトランスポートストリームTS1と第2のトランスポートストリームTS2がパケット単位で同期されているように見えるが、大抵の場合は同期していない。よって、第1のトランスポートストリームTS1における番組コンテンツパケットデータPcと、第2のトランスポートストリームTS2における番組コンテンツパケットデータPcがマルチフォーマットトランスポートストリームデコーダTDに同時に入力される場合もそうでない場合ある。さらに、第1のトランスポートストリームTS1および第2のトランスポートストリームTS2を構成するパケットデータPはそれぞれトランスポートストリームTSごとに固有のフォーマットで生成されているために、トランスポートストリームTSが異なればパケットデータPのサイズも異なることも多い。
【0319】
図37に、本発明にかかるマルチフォーマットトランスポートストリームデコーダによって、図36に示したパケット構成を有する第1のトランスポートストリームTS1から第1の選択複数番組パケットデータ列Pem1を抽出し、第2のトランスポートストリームTS2から第2の選択複数番組パケットデータ列Pem2を抽出する様子を示す。本例においては、第1の選択複数番組パケットデータ列Pem1は、番組1および番組2のパケットデータPを含み、第2の選択複数番組パケットデータ列Pem2は、番組3および番組4のパケットデータPを含む。
【0320】
言い換えれば、第1のトランスポートストリームTS1の番組1および番組2を構成するパケットデータPのそれぞれに所望の処理を施した後に第1の選択複数番組パケットデータ列Pem1として抽出し、同様に第2のトランスポートストリームTS2の番組3および番組4を構成するパケットデータPのそれぞれに所望の処理を施した後に第2の選択複数番組パケットデータ列Pem2として抽出する。そして、第1の選択複数番組パケットデータ列Pem1および第2の選択複数番組パケットデータ列Pem2が混合されて選択複数TS複数番組パケットデータ列Pemmとしてメインメモリ制御器700に出力される。
【0321】
メインメモリ制御器700は、入力された選択複数TS複数番組パケットデータ列Pemmに含まれる複数のトランスポートストリームTSに属する番組コンテンツパケットデータPcを調停してメインメモリ900に出力する。結果、メインメモリ900の内部で複数TS複数番組パケットデータ列Pmsmが形成される。これは、トランスポートストリームTSに含まれるパケットデータPは、トランスポートストリームTSが異なれば、そのパケットデータサイズ、転送レート、および到着タイミング等が異なるため、異なるトランスポートストリームTSに含まれるパケットデータPが同時に入力されることがあるからである。
【0322】
なお、図36および図37に示す例では、トランスポートストリームTSごとに異なる番組番号を有する番組が抽出されるため、選択複数TS複数番組パケットデータ列Pemmにおいて、番組番号やパケット識別子PIDが重複するパケットデータPが存在しないように見える。しかしながら、第1のトランスポートストリームTS1と第2のトランスポートストリームTS2で同じ番組番号の番組を抽出する場合は、選択複数TS複数番組パケットデータ列Pemmにおいて同じ番組番号を有する異なる番組コンテンツパケットデータPcが存在する。またパケット識別子PIDに関しては、番組番号とは関係なくトランスポートストリームTSごとに固有にそのパケットデータPに付与されるので、選択複数TS複数番組パケットデータ列Pemmにおいて同一のパケット識別子PIDを有する異なるパケットデータPが存在する。
【0323】
なお、指定番組以外のトランスポートストリームTS1の番組3を示す番組コンテンツパケットデータ管理表PMT3や、第2のトランスポートストリームTS2の番組6の番組コンテンツパケットデータ管理表PMT6が抽出されることもある。このように、入力されるトランスポートストリームTSに連続的に配列されたパケットデータPから所定の複数の番組に対応するパケットデータPのみが離散的に抽出されるとともに、マルチフォーマットトランスポートストリームデコーダTDに到着した順番に出力される。
【0324】
図38に、外部に設けられたフロントエンド部を介してマルチフォーマットトランスポートストリームデコーダTDに入力されたトランスポートストリームTS1およびTS2から抽出された選択複数TS複数番組パケットデータ列Pemmに含まれるパケットデータPのそれぞれのメインメモリ900における蓄積状態の一例を示す。なお、同図において、マルチフォーマットトランスポートストリームデコーダTDにおいて、メインメモリ900以外の構成要素はTD’と表示されている。
【0325】
メインメモリ900は、複数TS複数番組映像コンテンツパケットデータ列PmsmVを構成する番組コンテンツパケットデータPc101_1、Pc401_1、Pc201_1、およびPc501_1、・・・を格納する映像パケット格納領域A(video)と、複数TS複数番組音声コンテンツパケットデータ列PmsmSを構成する番組コンテンツパケットデータPc111_1、Pc411_1、Pc211_1、およびPc511_1、・・・を格納する音声パケット格納領域A(audio)とを有する。
【0326】
メインメモリ900は、さらに、番組コンテンツ管理表PATの情報および番組コンテンツパケットデータ管理表PMTを格納するPAT格納領域Ar(PAT)を有する。しかしながら、メインメモリ900のPAT格納領域A(PAT)とは異なり、PAT格納領域Ar(PAT)には入力されるトランスポートストリームTS1〜TSεのそれぞれに専用に格納すべく細分化されている。このような構成において、メインメモリ900は、トランスポートストリームTSごとに選別して番組コンテンツ管理表PATを格納するPAT格納領域Ar(PAT)と、番組コンテンツパケットデータ管理表PMTの情報をトランスポートストリームTSごとに選別して格納するPMT格納領域Ar(PMT)を有する。
【0327】
なお、PMT格納領域Ar(PMT)は、トランスポートストリームTSに含まれている番組コンテンツパケットデータ管理表PMT(番組)の種類(α)だけ用意されることは言うまでもない。このように、構成することによって、入力されるトランスポートストリームTSごとに読み込んだ管理パケットデータPcAを識別して管理できるので、今後配信される番組に関する情報をトランスポートストリームTSごとに容易に知ることができる。
【0328】
番組映像コンテンツパケットデータPcVである番組コンテンツパケットデータPc101_1、Pc401_1、Pc201_1、Pc501_1、・・・が、映像パケット格納領域A(video)内に互いに隙間なく格納されることによって、番組映像コンテンツパケットデータPcV(複数TS複数番組映像コンテンツパケットデータ列PmsmV)が形成される。同様に、番組音声コンテンツパケットデータPcSである番組コンテンツパケットデータPc111_1、Pc411_1、Pc2111_1、Pc511_1、・・・が音声パケット格納領域A(audio)内に互いに隙間なく格納されることによって番組音声コンテンツパケットデータPcS(複数TS複数番組音声コンテンツパケットデータ列PmsmS)が形成される。
【0329】
図39に、選択複数TS複数番組パケットデータ列Pemmから生成される複数TS複数番組パケットデータ列Pmsmの構成の一例を示す。本例においては、第1のトランスポートストリームTS1の番組1の番組映像コンテンツパケットデータPcVである番組コンテンツパケットデータPc101_1、Pc101_2、・・・と、番組2の番組映像コンテンツパケットデータPcVである番組コンテンツパケットデータPc番組201_1、Pc201_2、・・・とが抽出される。そして、第2のトランスポートストリームTS2の番組4の番組映像コンテンツパケットデータPcVである番組コンテンツパケットデータPc401_1、Pc401_2、・・・と、番組5の番組映像コンテンツパケットデータPcVである番組コンテンツパケットデータPc501_1、Pc501_2、・・・とが抽出されて、例えば番組コンテンツパケットデータPc101_1、Pc401_1、Pc201_1、Pc501_1、Pc101_2、Pc401_2、Pc201_2、Pc501_2・・・の順番に複数TS複数番組映像コンテンツパケットデータ列PmsmVとしてメインメモリ900に出力される。
【0330】
同様に、第1のトランスポートストリームTS1の番組1および番組2の番組音声コンテンツパケットデータPcSである番組コンテンツパケットデータPc111_1、Pc111_2、・・・と番組コンテンツパケットデータPc211_1、Pc211_2、・・・が抽出されるとともに、トランスポートストリームTS2の番組3および番組4の番組音声コンテンツパケットデータPcSである番組コンテンツパケットデータPc411_1、Pc411_2、・・・と番組コンテンツパケットデータPc511_1、Pc511_2、・・・が抽出されて、番組コンテンツパケットデータPc111_1、Pc411_1、Pc211_1、Pc511_1、Pc111_2、Pc411_2、Pc211_2、Pc511_2、・・・の順番に複数TS複数番組音声コンテンツパケットデータ列PmsmS音声ストリームとしてメインメモリ900に出力される。
【0331】
今、それぞれが固有のパケット識別子PIDを有するパケットデータPで構成トランスポートストリームTSの場合について説明した。しかしながら、ITU−T勧告H.220.0に代表されるトランスポートストリームTSは、それを構成するすべてのパケットデータPのそれぞれに固有のパケット識別子PIDが付与されていない。そのトランスポートストリームTSを構成するパケットデータPの内容ごとに分類されるいわゆるパケットデータグループごとに固有のパケット識別子PIDが付与される。
【0332】
図40に、そのようなパケットデータグループごとにパケット識別子PIDが付与された2つのトランスポートストリームTS1およびTS2のパケット構成を例示する。図36に示した例と同様に、図40においても、少なくとも3つの異なる番組1、番組2、番組3、・・・、番組α1 を提供する第1のトランスポートストリームTS1の構成例と、少なくとも6つの異なる番組1、番組2、番組3、番組4、番組5、番組6、・・・、番組α2 を提供する第2のトランスポートストリームTS2の構成例が示されている。
【0333】
第1のトランスポートストリームTS1において、番組1の映像データは番組コンテンツパケットデータPc101と規定され、音声データは番組コンテンツパケットデータPc111と規定される。番組2の映像データは、番組コンテンツパケットデータPc201と規定され、音声データは番組コンテンツパケットデータPc211と規定される。番組3の映像データは番組コンテンツパケットデータPc301と規定され、音声データは番組コンテンツパケットデータPc311と規定される。
【0334】
第2のトランスポートストリームTS2に関しても、第1のトランスポートストリームTS1と同様に、番組4の映像データは番組コンテンツパケットデータPc401と規定され、音声データは番組コンテンツパケットデータPc411と規定される。番組5の映像データは番組コンテンツパケットデータPc401と規定され、音声データは番組コンテンツパケットデータPc511と規定される。番組6の映像データは番組コンテンツパケットデータPc601と規定され、音声データは番組コンテンツパケットデータPc611と規定される。
【0335】
このように、トランスポートストリームTSを構成するすべてのパケットデータPのそれぞれに固有のパケット識別子PIDが付与されるのではなく、そのパケットデータPの種類ごとに固有のパケット識別子PIDが付与されることを除いては、図40に示すトランスポートストリームTSも、図36を参照して説明したのトランスポートストリームTSと同様に構成される。
【0336】
このようなパケット構成を有する複数のトランスポートストリームTS1〜TSεに、上述のマルチフォーマットトランスポートストリームデコーダTDを適応した場合の動作について説明する。パケットデータPの内容ごとに分類されるパケットデータグループごとに固有のパケット識別子PIDが付与されるということは、図36に示したトランスポートストリームTSのパケットデータPのパケット識別子PIDの上位3桁のみを指示することと実質的に同じである。つまり、本例においても、第1のトランスポートストリームTS1から番組コンテンツパケットデータPc101と番組コンテンツパケットデータPc201を抽出するとともに、第2のトランスポートストリームTS2から番組コンテンツパケットデータPc401と番組コンテンツパケットデータPc501を抽出することによって、図38に示した番組映像コンテンツパケットデータPcVと実質的に同じ番組映像コンテンツパケットデータを生成できる。
【0337】
同様に、パケット識別子PIDが201であるすべてのパケットデータPは、番組2の映像データである番組コンテンツパケットデータPc201と規定される。パケット識別子PIDが211であるすべてのパケットデータPは、番組2の音声データである番組コンテンツパケットデータPc211と規定される。
【0338】
さらに、パケット識別子PIDが301であるすべてのパケットデータPは、番組3の映像データである番組コンテンツパケットデータPc301と規定される。パケット識別子PIDが311であるすべてのパケットデータPは、番組3の音声データである番組コンテンツパケットデータPc311と規定される。
【0339】
このように、トランスポートストリームTSを構成するすべてのパケットデータPのそれぞれに固有のパケット識別子PIDが付与されるのではなく、そのパケットデータPの種類ごとに固有のパケット識別子PIDが付与されることを除いては、本図に示すトランスポートストリームTSも図36を参照して説明したのトランスポートストリームTSと同様に構成される。なお、原則として、同一パケット識別子PIDを有する複数のパケットデータPは、ストリーム作成時において、その提示の順番に配列される。その結果、受信側においては、逐次入力されるトランスポートストリームTSのすべてのパケットデータPのそれぞれに対して、パケット識別子PIDごとに受信した順番に所定の処理を施すことによって、情報を抽出することができる。
【0340】
このようなパケット構成を有するトランスポートストリームTSに、上述の本発明の実施形態にかかるマルチフォーマットトランスポートストリームデコーダTDを適応した場合の動作について説明する。パケットデータPの内容ごとに分類されるパケットデータグループごとに固有のパケット識別子PIDが付与されるということは、図36に示したトランスポートストリームTSにパケットデータPのパケット識別子PIDの上位3桁のみを指示することと実質的に同じである。つまり、本例においても、番組コンテンツパケットデータPc101と番組コンテンツパケットデータPc201の抽出することによって、図38に示した番組映像コンテンツパケットデータPcVと実質的に同じパケット構成の複数番組映像コンテンツパケットデータ列を生成できる。同様に番組コンテンツパケットデータPc111とパケットデータP211の抽出することによって、図38に示した番組音声コンテンツパケットデータPcSと実質的に同じパケット構成の複数番組音声コンテンツパケットデータ列を生成できる。
【0341】
なお、第1のトランスポートストリームTS1を構成するパケットデータは、第1のトランスポートストリームTS1に固有に定められたフォーマットで生成されている。同様に、第2のトランスポートストリームTS2を構成するパケットデータは、第2のトランスポートストリームTS2に固有に定められたフォーマットで生成されている。これについては、後ほど、図5を参照して説明する。
【0342】
これは、上述のように、第1のトランスポートストリームTS1を構成するパケットデータと、第2のトランスポートストリームTS2を構成するパケットデータはそれぞれのトランスポートストリームに固有のフォーマットで構成されている。そのため、第1のトランスポートストリームTS1を構成するパケットデータと第2のトランスポートストリームTS2を構成するパケットデータでは、そのサイズが異なっている場合がある。また、第1のトランスポートストリームTS1と第2のトランスポートストリームTS2において、そのパケットサイズが同じである場合においても、それぞれのパケットデータがマルチフォーマットトランスポートストリームデコーダTDに同時刻に到着するとは限らないからである。
【0343】
つまり、トランスポートストリームTSが異なると、遅れて到着したパケットデータPが先に到着したパケットデータPを追い越して、メインメモリ900に出力されることになる。このような場合、到着した順番に混合選択複数番組パケットデータ列Pemsとして出力することによって、メインメモリ900中に正しく複数TS複数番組パケットデータ列Pmsmを形成することは不可能である。よって、このような事態においても、複数TS複数番組パケットデータ列Pmsmにおいて、異なるトランスポートストリームTSから抽出されたパケットデータPが正しく再生できるように、トランスポートストリームTSにおけるパケットデータPの時系列情報が必須である。
【0344】
このように、メインメモリ900内に構成された複数TS複数番組映像コンテンツパケットデータ列PmsmVおよび複数TS複数番組音声コンテンツパケットデータ列PmsmSが、メインメモリ制御器700によって、図38に示す複数TS複数番組パケットデータ列Pmsmとして読み出されて、マルチフォーマットトランスポートストリームデコーダTDの外部に出力される。
【0345】
そこで、本実施形態においては、逐次入力されてくるトランスポートストリームTSを構成する全パケットデータPを個々にバッファリングするとともに、個々にバッファリングされているパケットデータPを識別して、同パケットデータPがユーザの所望する処理対象であるかを判断して、同パケットデータPに対するアクセスおよび処理をリアルタイム制御するデータバッファリング機能を備える。さらに、リアルタイム処理時間内でのアクセスあるいは加工時間を保証するために、対象パケットデータをバッファセル内に所定時間だけ確保することをソフトウェア制御で保証し、それ以外の受動的処理についてはハードウェア制御に任せる。結果、パケットデータP単位でのより柔軟な識別管理を可能にし、識別されたパケットデータPに対して固有のフォーマットごとに適切に処理を施す後行程に対する処理タイミング調整も容易なマルチフォーマットトランスポートストリームデコーダを提供するものである。
【0346】
図1に戻って、マルチフォーマットトランスポートストリームデコーダTDの構成要素のそれぞれについて詳しく説明する。第1ストリーム入力器TSR_1〜第εストリーム入力器TSR_εは、それぞれ外部のトランスポートストリーム源(図示せず)からパケット単位で供給されるトランスポートストリームTS1〜TSεに、それぞれを個別に識別するためのIDであるトランスポートストリーム識別子TSIDを付与する。
【0347】
タイマ600は、マルチフォーマットトランスポートストリームデコーダTDの起動とともに計時を開始し、各パケットデータPの到着した時間情報TTをストリーム出力器1300およびストリーム入力器TSRに出力する。
【0348】
トランスポートストリーム識別子TSIDは、入力される複数(1〜ε)の内任意のトランスポートストリームTSをi(1≦i≦ε)として示す。この考えに基づいて、マルチフォーマットトランスポートストリームデコーダTDに入力される任意のトランスポートストリームTSを第iのトランスポートストリーム識別子TSiとして表すものとする。
【0349】
なお、第iのトランスポートストリームTSiがタンスポートストリームTSとしては同一のフォーマットであっても、それを構成するパケットデータPのフォーマットが異なる場合あり、そのために、さらにパケットデータPのフォーマットをフォーマット識別子FIDによって管理するが、これに付いては後ほど図28を参照して詳しく説明する。
【0350】
そして、ストリーム入力器TSRは、トランスポートストリーム識別子TSIDが付与されたトランスポートストリームTSを内部に備えた入力バッファに一時的に保持して、それぞれを所定の転送単位TSd1〜転送単位TSdεごとにデータバッファリング装置DBAに転送する。さらに、第1ストリーム入力器TSR1r〜第εストリーム入力器TSRεは、それぞれ入力されてくる第1のトランスポートストリームTS1〜第εのトランスポートストリームTSεにデータエラーがある場合には、それを検出して第1のエラー信号E1〜第εのエラー信号Eεをデータバッファリング装置DBA内のエラーフラグ設定器295に出力する。なお、転送単位TSd1〜TSdεのサイズは、データバッファリング装置DBAにおける調停負荷および伝送効率を考慮して適切に定められる。
【0351】
データバッファリング装置DBAは、第1ストリーム入力器TSR1〜第εストリーム入力器TSRεから供給される転送単位TSd1〜TSdεの第1のトランスポートストリームTS1〜第εのトランスポートストリームTSεをパケットデータP単位で管理蓄積して、処理対象パケットデータPに対して所望の処理を施した後に、選択複数TS複数番組パケットデータ列Pemmとしてメインメモリ制御器700に出力する。
【0352】
メインメモリ900は、データバッファリング装置DBAから出力される第1のトランスポートストリームTS1〜第εのトランスポートストリームTSεから抽出された選択複数TS複数番組パケットデータ列Pemmを格納するとともに、AVデコーダに代表される外部機器(図示せず)に複数TS複数番組パケットデータ列Pmsmとして出力する。
【0353】
メインメモリ制御器700は、選択複数TS複数番組パケットデータ列Pemmおよび複数TS複数番組パケットデータ列Pmsmを転送単位TSdごとに一時的に保持する。メインメモリ制御器700はさらに、メインメモリ900の動作を制御して、一時的に保持する選択複数TS複数番組パケットデータ列Pemmを転送単位TSdごとにメインメモリ900に出力するとともに、メインメモリ900を制御してその内部に複数TS複数番組映像コンテンツパケットデータ列PmsmVおよび複数TS複数番組音声コンテンツパケットデータ列PmsmSを形成させる。
【0354】
TD制御器TDCは、あらかじめマルチフォーマットトランスポートストリームデコーダTDに入力されるトランスポートストリームTSの種類ごとのデータ構造情報を格納している。そしてTD制御器TDCは、実際に入力されるトランスポートストリームTSのデータ構造を示すトランスポートストリーム構造信号Stsを生成して、ストリーム入力器TSRに出力することによって、ストリーム入力器TSRを入力されるトランスポートストリームTSに応じて適正に動作するように制御する。この場合、ユーザが副次処理要求入力器APRなどを利用して、TD制御器TDCに格納されている構造情報を指示しても良い。
【0355】
トランスポートストリームTSのデータ構造情報をあらかじめTD制御器TDCに格納しておく代わりに、ユーザが副次処理要求入力器APRなどを利用して、実際に入力されるトランスポートストリームTSの構造情報をTD制御器TDCに指示するようにしても良い。さらに、実際に入力されるトランスポートストリームTSを読み込んで、そのデータ構造を検出するようにマルチフォーマットトランスポートストリームデコーダTDを構成しても良い。
【0356】
TD制御器TDCは、マルチフォーマットトランスポートストリームデコーダTD全体の動作を制御する。なお、マルチフォーマットトランスポートストリームデコーダTDは、上述の各構成要素の動作状態を示す状態信号SrWを生成してTD制御器TDCに出力する。TD制御器TDCは、状態信号SrWに基づいて、マルチフォーマットトランスポートストリームデコーダTDの各構成要素の動作を制御する制御信号ScWを生成して、マルチフォーマットトランスポートストリームデコーダTDを制御する。なお、状態信号SrWおよび制御信号ScWの生成およびマルチフォーマットトランスポートストリームデコーダTDの制御は公知の技術であるので説明を省く。
【0357】
データバッファリング装置DBAは、パケットバッファリング調停器PBA、パケット選択器400、ストリーム出力管理器500、中間処理用バッファセル使用メモリ530、パケット解析器1000、ストリーム出力器1300、および制御器PBACを含む。パケットバッファリング調停器PBAは、ストリーム入力器TSRから転送単位TSdごとに入力されるトランスポートストリームTSをパケットデータPの単位で識別してバッファリングする。パケット選択器400は、バッファリングされているパケットデータPが所望のパケットデータPであるかを判断する。
【0358】
中間処理用バッファセル使用メモリ530は、後述する二次バッファセル割当情報mrpに基づいて、パケットバッファ270の一次バッファセルBc_Iから読み出された後にデスクランブルされた被スクランブルデータDsdiの格納に供する二次バッファセルBc_Mを割り当てる。そして、割り当てた二次バッファセルBc_Mを示す割当二次バッファセル情報mwpして、バッファセル割当情報格納器240に出力する。なお、パケットバッファ270については、後ほど図3、図4、および図5を参照説明する。
【0359】
図2を参照して、主にストリーム出力管理器500、パケット解析器1000、およびストリーム出力器1300について説明する。パケット解析器1000は、デスクランブル器1100とセクションデータ選別器1200を含む。デスクランブル器1100は、制御器PBACから入力されるデスクランブル指示制御データDcrlに基づき、DMAバス調停器210から入力される被スクランブルデータDsdiをデスクランブルして、被デスクランブルデータDsdoとともにデスクランブル終了通知データDcrloを生成する。被デスクランブルデータDsdoはDMAバス調停器210に入力され、デスクランブル終了通知データDcrloは制御器PBACに入力される。
【0360】
セクションデータ選別器1200は、DMAバス調停器210から入力される要選別セクションデータSsdiをセクション選別して被選別パケットデータSsdoを生成する。被選別パケットデータSsdoは、DMAバス調停器210に出力される。セクションデータ選別器1200は、さらに制御器PBACから入力されるセクション選別指示制御データScrlを選別してセクション選別終了信号Scrloを生成する。セクション選別終了信号scrloは、制御器PBACに入力される。
【0361】
ストリーム出力管理器500は、出力順バッファセル番号メモリ制御器510と出力順バッファセル番号メモリ520とを含む。出力順バッファセル番号メモリ制御器510はパケットバッファ制御器260に接続されて、相互にストリーム出力管理信号Shfを交換するとともに、ストリーム出力バッファセル決定信号Hrpを生成する。出力順バッファセル番号メモリ520は、出力順バッファセル番号メモリ制御器510から入力されるストリーム出力バッファセル決定信号Hrpに基づいて、パケットバッファ270のストリーム出力に使用するバッファセル番号を管理する。
【0362】
ストリーム出力器1300は、タイマ600から入力される時間情報TTと、制御器PBACから入力されるストリーム出力指示制御データHcrlに基づいて、DMAバス調停器210から入力されるストリーム出力データHsdiを、第1ストリームPho1および第2ストリームPho2出力する。
【0363】
パケットバッファリング調停器PBAは、DMAバス調停器210、TSd入力開始検出器220、バッファセル割当器230、バッファセル割当情報格納器240、書込先バッファセル指定器250、パケットバッファ制御器260、パケットバッファ270、蓄積完了バッファセル番号メモリ制御器280、蓄積完了バッファセル番号メモリ290、エラーフラグ設定器295、およびパケットアクセス器300を含む。
【0364】
DMAバス調停器210は、第1ストリーム入力器TSR1から出力される第1のパケット先頭検出信号Sps1、第1のリクエスト信号Srq1、および第1の転送単位TSd1からの入力を受ける第1の入力ポート群を有する。同様に、第εストリーム入力器TSRεから出力される第εのパケット先頭検出信号Spsε、第εのリクエスト信号Srqε、および第εの転送単位TSdεからの入力を受ける第εの入力ポート群とを有する。つまり、DMAバス調停器210は、入力されるトランスポートストリームTSの数εと同じだけの入力ポート群を有する。このように、入力されるトランスポートストリームTSごとに入力ポート群を備えることによって、マルチフォーマットトランスポートストリームデコーダTDに入力される第iのトランスポートストリームTSiを個別に識別できる。
【0365】
さらに、DMAバス調停器210は、第1ストリーム入力器TSR1に第1のデータ有効信号Sde1を出力する第1の出力ポートとを有する。同様に、DMAバス調停器210は、第εストリーム入力器TSRεに第εのデータ有効信号Sdeεを出力する第εの出力ポートを有する。つまり、DMAバス調停器210は、入力されるトランスポートストリームTSの数εに応じて用意されるストリーム入力器TSR1〜TSRεごとにデータ有効信号Sde1〜Sdeεを出力する出力ポートが用意される。
【0366】
DMAバス調停器210は、主に、第1ストリーム入力器TSR1〜第εストリーム入力器TSRεとパケットバッファ制御器260との間での第1のトランスポートストリームTS1〜第εのトランスポートストリームTSεの転送単位TSd1〜TSdεでの入出力を調停する。つまり、DMAバス調停器210は第iストリーム入力器TSRiから入力される第iのパケット先頭検出信号Spsiおよび第iのリクエスト信号Srqiに基づいて、第iのパケット先頭検出信号SpsiをTSd入力開始検出器220に出力する。第iストリーム入力器TSRiは、DMAバス調停器210から入力される第iのデータ有効信号Sdeiに応答して、第iの転送単位TSdiを供給する。さらに、DMAバス調停器210は、パケットバッファ制御器260から入力される選択複数番組パケットデータ列Pemをメインメモリ制御器700に出力する。
【0367】
TSd入力開始検出器220は、パケット先頭検出信号Spsおよび転送単位TSdに基づいて、パケットデータPごとに転送単位TSdの入力が開始されたことを検出するとともに、入力が開始された転送単位TSdをパケットバッファ制御器260に供給する。さらに、TSd入力開始検出器220は、入力が開始されたパケットデータPを格納するために、パケットバッファ270のバッファセルBcの1つを割当を要求するバッファセル要求信号Sbaを生成してバッファセル割当器230に出力する。そして、バッファセルBcが割り当てられれば、TSd入力開始検出器220はその割り当てられてバッファセルに対して番組コンテンツパケットデータPcの書き込みが開始できる状態であることを示す書込許可信号Swを生成して書込先バッファセル指定器250に出力する。
【0368】
バッファセル割当器230は、バッファセル要求信号Sbaに応答して、後述する割当一次バッファセル情報Iabに基づいて、入力が開始されたパケットデータPの格納に供するバッファセルを割り当てる。そして、割り当てたバッファセルを示す一次バッファセル割当情報Ibaを生成して、バッファセル割当情報格納器240に出力する。
【0369】
バッファセル割当情報格納器240は、バッファセル割当器230から入力される一次バッファセル割当情報Ibaを格納する。さらにバッファセル割当情報格納器240は、同一次バッファセル割当情報Ibaを書込先バッファセル指定器250および蓄積完了バッファセル番号メモリ制御器280に供給する。なお、さらにバッファセル割当情報格納器240は、一次バッファセル割当情報Ibaに基づいて、パケットバッファ270を構成する各バッファセルBcの割当状況を示す割当一次バッファセル情報Iabを生成してバッファセル割当器230にフィードバックする。
【0370】
書込先バッファセル指定器250は、TSd入力開始検出器220から入力される書込許可信号Swに応答して、バッファセル割当情報格納器240から入力される一次バッファセル割当情報Ibaで示される、割り当てられたバッファセルに対する転送単位TSdの書込を指示する書込要求信号Swdを生成して、パケットバッファ制御器260に出力する。
【0371】
パケットバッファ制御器260は、書込要求信号Swdに応答して、TSd入力開始検出器220から供給される転送単位TSdiを、パケットバッファ270の割り当てられたバッファセルに書き込む。このとき、DMAバス調停器210はTSRi1からのデータであることを、パケットバッファ制御器260に通知する。つまり、TSdには後に説明するが、あらかじめそれがマルチフォーマットトランスポートストリームデコーダTDに入力される複数εのトランスポートストリームTS1〜TSεのどのトランスポートストリームTSiのデータであるかを示す印が付加されており、パケットバッファ制御器260はバッファセル中の蓄積されたデータに付加されたこれらの情報と、DMAバス調停器210から通知された情報とを比較することで、正しいトランスポートストリームの情報を区別しながら蓄積する。
【0372】
さらに、パケットバッファ制御器260は、割り当てられたバッファセルに書き込んだデータのバイト数をカウントすることによって、1パケットデータP分の転送単位TSdiが書き込まれたことを検出して、DMAバス調停器210からの1パケットデータPのデータ転送が終了したことを示す転送終了信号Stfを生成して、蓄積完了バッファセル番号メモリ制御器280に出力する。なお、入力されるトランスポートストリームTSiの1パケットデータPiのデータサイズを含む所定のフォーマット情報は、あらかじめマルチフォーマットトランスポートストリームデコーダTDに格納されているデータ構造情報に含まれていることは上述の通りである。
【0373】
蓄積完了バッファセル番号メモリ制御器280は、バッファセル割当情報格納器240から入力された一次バッファセル割当情報Ibaとパケットバッファ制御器260から入力された転送終了信号Stfに基づいて、1パケットデータPが書き込まれたバッファセルを示すバッファセル番号信号Sbnと、バッファセル番号Nbcを書き込む記憶領域を示すライトポインタWPを1つ進るライトポイント更新信号Swpを生成して蓄積完了バッファセル番号メモリ290に出力する。
【0374】
エラーフラグ設定器295は、第1ストリーム入力器TSR1〜第2ストリーム入力器TSRεから入力される第1のエラー信号E1〜第εのエラー信号Eεと、パケットバッファ制御器260から入力される転送終了信号Stfに基づいて、エラーフラグメモリ290EFのエラーフラグ領域Fcにデータエラーを含むパケットデータPを格納したバッファセルBcmを示すエラーフラグを立てさせるエラーフラグ信号Feを生成して、蓄積完了バッファセル番号メモリ290に出力する。
【0375】
つまり、ライトポインタWPが示すバッファセル指定領域Rcmにバッファセル番号信号Sbnの示すバッファセル番号Nbcを記録するとともに、ライトポインタWPの示すフラグ格納領域Fcmにエラーフラグ信号Feの示すフラグ値を記述する。その後、ライトポインタWPの位置を1つ進て、バッファセル番号Nbcを記録したバッファセル指定領域Rcmの次の領域と、フラグ値を記入したフラグ格納領域Fcmの次の領域とを同時に指し示させる。
【0376】
蓄積完了バッファセル番号メモリ290においては、バッファセル番号Nbcnを記入すべきバッファセル指定領域Rcmと、エラーフラグ信号Feに基づいてフラグ値を書き込むべきフラグ格納領域Fcmは同一のライトポインタWPによって指示される。そして、記入されているバッファセル番号Nbcnを読み出すべきバッファセル指定領域Rcmと、フラグ値を読み出すべきフラグ格納領域Fcmは同一のリードポインタRPによって指示される。リードポインタRPは制御器PBACから出力される制御信号Scに基づいて進られる。
【0377】
なお、本実施形態においては、蓄積完了バッファセル番号メモリ290は後ほど図3を参照して説明するように、好ましくはリングメモリで構成されるので、このようにバッファセルに書き込みを終了するごとにライトポインタWPを1つずつ進ることによって、蓄積完了バッファセル番号メモリ290の記憶領域に記憶されているバッファセル番号Nbcを適正に更新できる。
【0378】
なお、パケットアクセス器300は、パケットバッファ制御器260およびDMAバス調停器210を経由して、パケットバッファ270のバッファセルに格納された直後のパケットデータPに選択的にアクセスして、読み出し、参照、あるいは編集等の処理を施した後にDMAバス調停器210およびパケットバッファ制御器260を経由して、元のパケットデータPを上書き更新したりする。
【0379】
このために、パケットバッファ制御器260は、後述のリードポインタRPが指し示すバッファセルに格納されているパケットデータPのパケット識別子PIDを読んで、バッファパケット識別情報PIDeを抽出するとともに、DMAバス調停器210に出力する。
【0380】
なお、パケットバッファリング調停器PBAは、上述の各構成要素の動作状態を示す状態信号Srを生成して制御器PBACに出力する。制御器PBACは、状態信号Sr基づいて、パケットバッファリング調停器PBAの各構成要素の動作を制御する制御信号Scを生成して、パケットバッファリング調停器PBAに出力する。なお、状態信号Srおよび制御信号Sc1の生成する制御器PBACの制御は公知の技術であるので説明を省く。
【0381】
パケットバッファリング調停器PBAは、第1ストリーム入力器TSR1から転送単位TSd1で入力されるトランスポートストリームTS1〜第εストリーム入力器TSRεから転送単位TSd2で入力されるトランスポートストリームTSiをパケット、つまりパケットデータPの単位で識別管理してバッファリングする。制御器PBACは、パケットバッファリング調停器PBAの動作を制御する。
【0382】
なお、本発明においては、トランスポートストリームTSに含まれるパケットデータPを個別にバッファセルBcに格納するとともに、格納しているパケットデータPの内容を識別し、当該パケットデータPに対するアクセスおよび処理を可能ならしめ、さらに当該パケットデータPをそのフォーマットにしたがって所望の処理を施すことができる。
【0383】
次に図2および3を参照して、上述のバッファセル割当情報格納器240、パケットバッファ270、および蓄積完了バッファセル番号メモリ290の関係について簡単に説明する。図2に示すように、パケットバッファ270は、大別してm(mは2ε以上の整数)個の一次バッファセルBc_I1〜Bc_Imと、n(nはm/2より大きい整数)個の二次バッファセルBc_M1〜BC_Mnと、1つ以上の三次バッファセルBc_Oを含む。
【0384】
これは、入力されるトランスポートストリームTSごとに、パケットデータPの蓄積用と蓄積したパケットデータPの読み出し用に異なる一次バッファセルBc_Iが1つは必要であるからである。なお、第1のトランスポートストリームTS1と第2のトランスポートストリームTS2との2つ(ε=2)のトランスポートストリームTSが入力される場合には、一次バッファセルBc_Iの個数mは4(2×2)以上の整数である。
【0385】
また、二次バッファセルBc_Mは、一次バッファセルBc_Iの読み出し用に対応して設ければ良いので、必要数nはm/2以上の整数となる。さらに、三次バッファセルBc_0は、1つのパケットデータPに対する処理課程の中間データを集積して完成させた後に出力すれば良いので1つ以上あれば良い。
【0386】
一次バッファセルBc_I1〜Bc_Imはそれぞれ、TSd入力開始検出器220およびパケットバッファ制御器260を経由して転送単位TSdで入力されるパケットデータPを第1の所定時間T1だけ格納して、格納したパケットデータPに対する処理を受け付ける。パケットバッファ制御器260によって、一次バッファセルBc_Iに格納されたパケットデータPのパケット識別子PIDおよびトランスポートストリーム識別子TSIDが抽出パケット識別情報PIDeおよび抽出トランスポートストリーム識別子TSIDeとして読み出される。
【0387】
さらに、一次バッファセルBc_Iはデスクランブル器1100およびセクションデータ選別器1200に接続されている。そして、一次バッファセルBc_Iに格納されているパケットデータPの内でスクランブルされている被スクランブルデータDsdiをデスクランブル器1100に出力される。また、一次バッファセルBc_Iに格納されているパケットデータPがセクションデータの場合は要選別セクションデータSsdi2がセクションデータ選別器1200に出力される。
【0388】
デスクランブル器1100は、一次バッファセルBc_Iから入力される被スクランブルデータDsdiをデスクランブルして被デスクランブルデータDsdoを生成する。セクションデータ選別器1200は、一次バッファセルBc_Iから入力される要選別セクションデータSsdi2をセクションデータ選別して被選別パケットデータSsdoを生成する。
【0389】
二次バッファセルBc_Mは、デスクランブル器1100に接続されて、被デスクランブルデータDsdoを第2の所定時間T2(T2<T1)だけ格納する。さらに、セクションデータ選別器1200は二次バッファセルBc_Mに接続されて、格納している被デスクランブルデータDsdoの内のデスクランブルされた実データを要選別セクションデータSsdi1として読み出し、セクションデータ選別して被選別パケットデータSsdoを生成する。
【0390】
三次バッファセルBc_0は、セクションデータ選別器1200に接続されて、要選別セクションデータSsdi1あるいは要選別セクションデータSsdi2の何れかから生成された被選別パケットデータSsdoを第3の所定時間T3(T3<T2)だけ格納する。
【0391】
バッファセルBcのそれぞれは、所定のサイズのデータを一時的に蓄える、つまりバッファリングできる。そのために必要なバッファセルBcの容量を最低バッファ容量MBUと言う。最低バッファ容量MBUは、パケットデータPを構成するパケットデータPのデータサイズに応じて適宜設定される。最低バッファ容量MBUをパケットサイズに比べて小さく設定すれば、番組コンテンツパケットデータPcの抽出をよりきめ細やかに制御できるが、DMAバス調停器210における入出力調停頻度が大きくなり、そのための制御工数の増大を招き処理効率が悪くなる。
【0392】
一方、最低バッファ容量MBUをパケットサイズに比べて大きく、例えば数倍程度に設定すれば、1つのバッファセルBcに複数のパケットデータPを格納することも可能になる。しかしながらこの場合は、1つのバッファセルBcに格納されている複数のパケットデータPを区別できないので、パケットデータP単位での制御、あるいはアクセスができない。したがって、最低バッファ容量MBUは、トランスポートストリームデコーダの内部処理速度、パケットデータPの入力レート、パケットサイズ、およびパケットデータPへのアクセス頻度に基づいて適切に設定されるべきものである。
【0393】
なお、本例においては、最低バッファ容量MBUは1パケットデータPを格納できるように定めており、具体的には188バイトとしている。なお、必要に応じて、パケットデータPを識別又は管理するための所定のバイト数を有する補助データを1パケットデータPに追加して格納できるようにしても良い。しかしながら、必要に応じて、上述のようにパケットサイズに比べて小さく設定、つまり1つのパケットを複数のバッファセルBcに分割して格納するようにしても良い。
【0394】
なお、最低バッファ容量MBUは、分割の有無に関わらず格納するデータに管理情報に相当する管理バイトを足したものになる。管理情報には少なくとも、格納する分割/非分割データが入力される複数のトランスポートストリームTSのどれに属するかを示すトランスポートストリーム識別情報を含む。
また、パケットを分割して格納する場合には、最低バッファ容量MBUはパケットデータPの分割後のデータの最大サイズに分割情報とトランスポートストリームパケット識別情報を含む管理データサイズの和になる。この場合、バッファセルBcの個数Nの最小値であるバッファセル最少個数Nminは2εに分割数Dを乗じたもの(バッファセル最少個数Nminは2εD)になる。
【0395】
さらに、異なるパケットデータP間の入力レートの違いについて述べる。つまり、マルチフォーマットトランスポートストリームデコーダTDに入力される複数εのトランスポートストリームTS1〜TSεのそれぞれに含まれるパケットデータPの入力レートは、トランスポートストリームTSiごとに異なることが多い。今、2つ(ε=2)のトランスポートストリームTS1およびTS2が入力される場合を例として説明する。第1のトランスポートストリームTS1の番組1の番組コンテンツパケットデータPc101およびPc111と、第2のトランスポートストリームTS2の第4の番組コンテンツパケットデータPc401およびPc411とをバッファリングする場合に、番組コンテンツパケットデータPc401の入力レートが番組コンテンツパケットデータPc101の入力レートに比べて圧倒的に大きい場合を考える。
【0396】
この場合、番組コンテンツパケットデータPc101とPc401が同時にマルチフォーマットトランスポートストリームデコーダTDに到着したとしても、DMAバス調停器210r調停されて、一方(例えば、番組コンテンツパケットデータPc101)のバッファリングが他方(例えば、番組コンテンツパケットデータPc401)より先に始まる。そして、番組コンテンツパケットデータPc101のバッファリングの開始に引き続いて番組コンテンツパケットデータPc401のバッファリングが開始する。しかしながら、番組コンテンツパケットデータPc401の入力レートは番組コンテンツパケットデータPc101の入力レートに比べて圧倒的に大きいために、番組コンテンツパケットデータPc401のバッファリング途中で、番組コンテンツパケットデータPc101の入力が完了してしまう。
【0397】
このような事態に対応するべく、番組コンテンツパケットデータPc101のバッファリング中に、後から入力される高レートの番組コンテンツパケットデータPc411のバッファリングするためにバッファセルBcを用意する必要がある。この場合のバッファセル最少個数Nminは、入力されるトランスポートストリームTSの番組コンテンツパケットデータPcの入力レートに基づいて決定されるが、最低バッファ容量MBUを一定とすれば、バッファセル最少個数Nminは一般に入力トランスポートストリームTSの数に比例し、入力トランスポートストリーム間で入力レートが著しく異なる番組コンテンツパケットデータPcの数に応じた分だけ増加する。
【0398】
なお、本例においては、最低バッファ容量MBUは1パケットデータPに所定の管理データを付加したものを格納できるように定めており、具体的には188バイトの1パケットデータPに4バイトの管理データを付加したものを格納できるように192バイトとしている。また、4バイトの管理データには、上述のトランスポートストリーム識別情報とともに、当該パケットデータPの到着時間を示すタイムスタンプ情報も含まれている。これについては、後ほど図16を参照して説明する。
【0399】
なお、一次バッファセルBc_I、二次バッファセルBc_M、および三次バッファセルBc_0に格納されるデータについて、図3、図24、図25、図26、および図27を参照して説明する。図25においては、第1のトランスポートストリームTS1のパケットデータP1は第1のフォーマットFMT1で構成され、第2のトランスポートストリームTS2のパケットデータP2は第2のフォーマットFMT2で構成されている場合が例示されている。
【0400】
ちなみに、第1のフォーマットFMT1で構成されているパケットデータP1(TS1)は、先頭から素性管理バイトBMh、補助データAXD、実データPDB、および処理管理バイトBMpの順番に配列構成されている。素性管理バイトBMh、補助データAXD、実データPDB、および処理管理バイトBMpのバイトサイズをそれぞれ、M、N1、R1、およびMとすると、このようなパケットデータP1(TS1:FMT1)を格納するために、バッファセルBcに要求される最小容量MBUは、2M+N1+R1となる。
【0401】
同様に、第2の第フォーマットFMT2で構成されているパケットデータP2(TS2)は、先頭から素性管理バイトBMh、実データPDB、および処理管理バイトBMpの順番に配列構成されている。素性管理バイトBMh、補助データAXD、実データPDB、および処理管理バイトBMpのバイトサイズをそれぞれ、M、R2、呼びMとすると、このようなパケットデータP2(TS2:FMT2)を格納するために、バッファセルBcに要求される最小容量MBUは、2M+R2となる。
【0402】
図26、および図27を参照して、管理バイトBMの構成について説明する。図26に示すように、管理バイトBMには、素性管理バイトBMhと処理管理バイトBMpの2種類がある。素性管理バイトBMhは、パケット到着時間情報ATS(Arrival Time Stamp)、フォーマット識別子FID(Format IDefication)、マルチストリーム識別子トランスポートストリーム識別子TSID(TS Idefication)、およびストリーム出力要求情報格納領域HSOUTR(HiSpeed OUTput Region)を含む。
【0403】
パケット到着時間情報ATS、フォーマット識別子FID、およびマルチストリーム識別子トランスポートストリーム識別子TSIDは、ストリーム入力器TSRにより付加される。本発明にかかるマルチフォーマットトランスポートストリームデコーダTDでは、マルチストリーム、およびマルチフォーマットのパケットデータ制御を行うために、バッファセルBcにパケットデータPを格納する際に、制御器PBACがパケット処理をするために必要な情報を実データPDに付加して格納することが可能である。
【0404】
図27に示すように、補助データAXDは、補助データ情報VALID、ストリーム出力I/F用時間情報HSTS(HiSpeed Time Stamp)、およびストリームエラー情報ERRを含む。補助データAXDは、ストリーム出力部ストリーム出力器1300から出力したデータを受ける機器との接続I/F規格に基づく処理を行う場合に必要とされる情報である。
【0405】
補助データ情報VALIDは、現在の補助データAXDが受取側の機器で使用できるか否かを表す情報であり、補助データAXDが有効時にActiveとする。ストリーム出力I/F用時間情報HSTSは、27MHz系の時間情報であり、管理バイトBMのパケット到着時間情報ATSに基づいて、制御器PBACによって生成される。ストリームエラー情報ERRは、ストリーム出力した該当ストリームがエラーストリームであるか否かを示す情報であり、エラーストリーム時にActiveとする。
【0406】
図2に戻って、奇数番の一次バッファセルBc_Iには第1のフォーマットFMT1のパケットデータPが格納され、偶数番の一次バッファセルBc_Iには第2の第フォーマットFMT2(セクションデータ)のパケットデータPが格納される場合を例に説明する。奇数番の一次バッファセルBc_Iには、処理管理バイトBMp、補助データAXD、実データPD1、および素性管理バイトBMhの順番に格納される。偶数番の一次バッファセルBc_Iには、処理管理バイトBMp、実データPD2、および素性管理バイトBMhの順番に格納される。
【0407】
奇数番の一次バッファセルBc_Iに格納されている補助データAXDと実データPDが第1ストリームPho1として、ストリーム出力器1300から出力される。偶数番の一次バッファセルBc_Iに格納されている実データPDが第2ストリームPho2として、ストリーム出力器1300から出力される。
【0408】
さらに、奇数番の一次バッファセルBc_Iから処理管理バイトBMpと補助データAXDと実データPDが被スクランブルデータDsdiとしてデスクランブル器1100に出力される。デスクランブル器1100は、被スクランブルデータDsdiの補助データAXDと実データPDをデスクランブルして、被デスクランブル補助データAXD’を生成する。そして、処理管理バイトBMpと被デスクランブル補助データAXD’と被デスクランブル実データPD’とを被デスクランブルデータDsdoとして二次バッファセルBc_Mに出力される。
【0409】
二次バッファセルBc_Mにおいては、被デスクランブルデータDsdoが処理管理バイトBMp、被デスクランブル補助データAXD’、および被デスクランブル実データPD’の順番に格納される。そして、二次バッファセルBc_Mから処理管理バイトBMp、被デスクランブル補助データAXD’、および被デスクランブル実データPD’が要選別セクションデータSsdi1としてセクションデータ選別器1200に出力される。
【0410】
セクションデータ選別器1200は、要選別セクションデータSsdi1を選別して被選別実データPD”を生成して三次バッファセルBc_0に出力する。
【0411】
偶数番の一次バッファセルBc_Iから処理管理バイトBMpと補助データAXDと実データPDが要選別セクションデータSsdi2としてセクションデータ選別器1200に出力される。セクションデータ選別器1200は、要選別セクションデータSsdi2を選別して被選別実データPD”を生成して被選別パケットデータSsdoとして三次バッファセルBc_0に出力する。
【0412】
このようにして、パケットデータPのフォーマットに応じて処理された被選別実データPD”が三次バッファセルBc_0に格納される。
【0413】
バッファセル割当情報格納器240は、パケットバッファ270の一次バッファセルBc_I1〜Bc_Imのそれぞれに対応する一次バッファセル割当情報領域AI1〜AImと、二次バッファセルBc_M1〜Bc_Mnのそれぞれに対応する二次バッファセル割当情報領域AM1〜AMnを有する。バッファセル割当情報格納器240は、バッファセル割当器230から供給される一次バッファセル割当情報Ibaに基づいて、割り当てられた一次バッファセルBc_Iに対応する一次バッファセル割当情報領域AIに割当の有無を示す割当識別データを書き込む。つまり、バッファセル割当情報格納器240には、パケットバッファ270の一次バッファセルBc_I1からBc_Imと同数の一次バッファセル割当情報領域AI1〜AImが用意される。
【0414】
同様に、バッファセル割当情報格納器240は、中間処理用バッファセル使用メモリ530から供給される二次バッファセル割当情報mrpに基づいて、割り当てられた二次バッファセルBc_Mに対応する二次バッファセル割当情報領域AMに割当の有無を示す割当識別データを書き込む。つまり、バッファセル割当情報格納器240には、パケットバッファ270の二次バッファセルBc_M1〜Bc_Mnと同数の二次バッファセル割当情報領域AM1〜AMnが用意される。
【0415】
例えば、割当識別データは1と0の二値データであり、初期値は0である。そして、一次バッファセルBc_I1が割り当てられる場合には、一次バッファセルBc_I1に対応する一次バッファセル割当情報領域AI1には、例えば1が書き込まれる。一方、一次バッファセルBc_I1に書き込まれたデータが読み出された後に、制御器PBACから出力される制御信号Scに基づいて一次バッファセル割当情報領域AI1に0が書き込まれて、一次バッファセルBc_I1は解放される。これは、二次バッファセルBc_Mに関しても同様である。
【0416】
このようにして、パケットバッファ270の各一次バッファセルBc_I1〜Bc_Imそれぞれの割当状況が一次バッファセル割当情報領域AI1〜AImにおける値の集合で表現されて、割当一次バッファセル情報Iabとしてバッファセル割当器230に供給される。同様に、二次バッファセルBc_M1〜Bc_Mnそれぞれの割当状況が二次バッファセル割当情報領域AM1〜AMnにおける値の集合で表現されて、割当二次バッファセル情報mwpとして中間処理用バッファセル使用メモリ530に供給される。
【0417】
図3に示すように、蓄積完了バッファセル番号メモリ290は、バッファセル番号メモリ290BCNとエラーフラグメモリ290EFとを含む。バッファセル番号メモリ290BCNは、パケットバッファ270の一次バッファセルBc_I1〜Bc_Imの特定の1つを示すバッファセル番号NbcNを格納するバッファセル指定領域Rc(Rc1〜RcM)を有する。なお、Mは2以上かつN以下の自然数である。蓄積完了バッファセル番号メモリ290は好ましくは、リングメモリで構成されてバッファセル指定領域Rc1〜RcMが連続的かつ循環的に記録される。結果、バッファセル割当情報格納器240の場合と異なり、バッファセル割当情報格納器240の一次バッファセルBc_I1〜Bc_Imと同数だけ用意する必要はなく、M個のバッファセル指定領域Rc1〜RcMを用意すれば良い。
【0418】
バッファセル番号Nbcnを記入すべきバッファセル指定領域Rcm(mは1以上M以下の自然数)はライトポインタWPによって指示される。そして、記入されているバッファセル番号Nbcnを読み出すべきバッファセル指定領域RcmはリードポインタRPによって指示される。ライトポインタWPはリードポインタRPの示す位置より1つ次か同一のバッファセル指定領域Rcmを示す。ライトポインタWPは、上述のように蓄積完了バッファセル番号メモリ制御器280から出力されるライトポイント更新信号Swpに基づいて進られるが、リードポインタRPは制御器PBACから出力される制御信号Scに基づいて進られる。
【0419】
ライトポインタWPがリードポインタRPの位置より1つ進んでいる場合は、リードポインタRPが示すバッファセル指定領域Rcmに示されているバッファセルBcnは、データを格納し終わって読み出し可の状態であることを意味している。ライトポインタWPとリードポインタRPが同位置を示している場合は、データが読み出し可の状態にあるバッファセルBcnはないことを意味している。
【0420】
エラーフラグメモリ290EFは、バッファセル番号メモリ290BCNのバッファセル指定領域Rc1〜RcMのそれぞれに対応するフラグ格納領域Fc(Fc1〜FcM)を有する。エラーフラグメモリ290EFは、基本的には蓄積完了バッファセル番号メモリ290と同様に好ましくはリングメモリで構成されて、エラーフラグ設定器295から入力されるエラーフラグ信号Feに基づいて、フラグ格納領域Fc1〜FcMにフラグ値が連続的かつ循環的に記録される。
【0421】
図4に、蓄積完了バッファセル番号メモリ290の変形例について説明する。本変形例における蓄積完了バッファセル番号メモリ290Rは、簡単に言うとバッファセル番号メモリ290BCNのバッファセル指定領域Rcとエラーフラグメモリ290EFのフラグ格納領域Fcが一体化されてバッファセル属性格納領域Rcp(Rcp1〜RcpM)が構成されている。そして、バッファセル番号信号Sbnとエラーフラグ信号Feが一体的に結合されて、個々のバッファセルBcのデータ格納状況を表す属性データPbcとして、バッファセル属性格納領域Rcpに記録される。なお、このように一次バッファセルBc_Iの状態を1種類のデータによって管理することによって、一次バッファセルBc_Iの獲得および解放処理のより一層の効率化を図ることができる。
【0422】
次に図5に示す波形図を参照して、2つ(ε=2)のトランスポートストリームTS1およびTS2が入力される場合を例として、第1ストリーム入力器TSR1および第2ストリーム入力器TSR2、DMAバス調停器210、およびパケットバッファ制御器260の動作について簡単に説明する。第1ストリーム入力器TSR1には、130バイトのデータで構成されるパケットデータP1が1バイトずつ、所定の周波数を有する第1の入力転送クロックCk1に同期して入力される。同様に、第2ストリーム入力器TSR2には、188バイトのデータで構成されるパケットデータP2から構成される第2のトランスポートストリームTS2が1バイトずつ、所定の周波数を有する第2の入力転送クロックCk2に同期して入力される。なお、パケットデータPの同期を取るための同期バイトBsyncは、第2のトランスポートストリームTS2においてはそのパケットデータP2の先頭に含まれるが、第1のトランスポートストリームTS1においてはパケットデータP1には含まれていない。
【0423】
本例においては、第1の入力転送クロックCk1と第2の入力転送クロックCk2は、同一である場合が示されている。しかし、入力転送クロックCkの周波数は、入力されるトランスポートストリームTSごとに定められている。よって、第1の入力転送クロックCk1と第2の入力転送クロックCk2の周波数が異なる場合があることは言うまでもない。ストリーム入力器TSRには、トランスポートストリームTSが1ビット単位で入力される場合もあるが、処理内容は、入力データ単位に関わらず基本的に同一であるであるので、以下に1バイト単位に入力される場合についてのみ説明する。なお、同図においては、第2のトランスポートストリームTS2にデータエラーが検出される一方、第1のトランスポートストリームTS1にはデータエラーが検出されない場合が例示されている。
【0424】
第1ストリーム入力器TSR1は、パケットデータP1ごとに、最初の1バイトの同期データを検出した時点でパケットデータP1のパケット先頭を検出する。そして、パケット先頭を検出する都度、第1のパケット先頭検出信号Sps1を生成してDMAバス調停器210に出力する。
【0425】
第1ストリーム入力器TSR1は、さらに、パケット先頭を検出した時点で、時間情報TTに基づいて、パケットデータP1の到着した時刻を示すタイムスタンプStとそのパケットデータP1が第1のトランスポートストリームTS1であること示すトランスポートストリーム識別子TSID(1)を生成する。なお、トランスポートストリーム識別子TSIDは言い換えれば、そのトランスポートストリームTSがDMAバス調停器210の第1の入力ポート群に入力されていることを示し、さらに第1ストリーム入力器TSR1から入力されていることを示す。
【0426】
なお、タイムスタンプStは、1つのトランスポートストリームTSに対して一次バッファセルBc_Iが割り当てられた時点の時間情報TTは、バッファセルBcの先頭に格納される。さらに、設定されたサイズのパケットデータが割り当てた一次バッファセルBc_Iに格納終了した時点の時間TTは、当該一次バッファセルBc_Iにおいて格納されたパケットデータPの最後尾に格納格納される。
【0427】
なお、タイムスタンプStのバイト数はマルチフォーマットトランスポートストリームデコーダTDにおける処理精度によって任意に決めることができるが、本例においては好ましくは3バイトで表現する。また、トランスポートストリーム識別子TSIDのバイト数は、マルチフォーマットトランスポートストリームデコーダTDに入力されるすべてのトランスポートストリームTSを識別するに十分であれば良いので、本例においては1バイトで表現する。第1ストリーム入力器TSR1は、タイムスタンプStとトランスポートストリーム識別子TSIDとを併せて管理情報IMを生成して、入力されるパケットデータP1の先頭に付加して、第1の転送単位TSd1を生成する。
【0428】
第2ストリーム入力器TSR2も、第1ストリーム入力器TSR1と同様に、パケットデータP2ごとに、最初の1バイトの同期データを検出した時点でパケットデータP2のパケット先頭を検出する。そして、パケット先頭を検出する都度、第2のパケット先頭検出信号Sps2を生成してDMAバス調停器210に出力する。
【0429】
第2ストリーム入力器TSR2は、さらに、パケット先頭を検出した時点で、パケットデータP2の到着した時刻を示すタイムスタンプStとそのパケットデータP2が第2のトランスポートストリームTS2であること示すトランスポートストリーム識別子TSID(2)を生成する。なお、トランスポートストリーム識別子TSIDは言い換えれば、そのトランスポートストリームTSがDMAバス調停器210の第2の入力ポート群に入力されていることを示し、さらに第2ストリーム入力器TSR2から入力されていることを示す。第2ストリーム入力器TSR2は、タイムスタンプStとトランスポートストリーム識別子TSIDとを併せて管理情報IMを生成して、入力されるパケットデータP2の先頭に付加して、第2の転送単位TSd2を生成する。
【0430】
このように、管理情報IMとしてタイムスタンプStおよびトランスポートストリーム識別子TSIDをパケットデータPに付与することによって、それぞれ異なるトランスポートストリームTSに含まれるパケットデータPを正しく識別することが可能となる。さらに、上述のように、異なるパケットデータP間での入力レートの違いに起因する、後で到着したパケットデータPが先に到着したパケットデータPが入力を完了する前に入力を完了してしまうという、いわゆる追越しパケットが生じた場合にも、管理情報IMに基づいてそれらのパケットを入力した順番に正しく処理できる。
【0431】
第1ストリーム入力器TSR1は、さらに、パケット先頭から数えて8バイトごとに、DMAバス調停器210に対して、第1の転送単位TSd1の入力を受け付けるよう要求する第1のリクエスト信号Srq1を生成して、DMAバス調停器210に出力する。言い換えれば、第1の転送単位TSd1は8バイトであり、各パケット(188バイト)に対して、8バイトごとに第1の転送単位TSd1
転送のための第1のリクエスト信号Srq1が出力される。
【0432】
つまり、第1のトランスポートストリームTS1のパケットデータP1の先頭を検出した時点で、3バイトのタイムスタンプStと1バイトのトランスポートストリーム識別子TSIDからなる合計4バイトの管理情報IMが生成されるので、先頭から4バイトが入力された時点で、第1ストリーム入力器TSR1は第1のリクエスト信号Srq1を生成する。なお、5バイト目以降については、8バイトごとに第1のリクエスト信号Srq1が生成される。つまり、各パケットデータPの1番目に出力される転送単位TSdの最初の4バイトは、マルチフォーマットトランスポートストリームデコーダTDによって生成された管理情報IMであって、トランスポートストリームTSのパケットデータPそのものではない。
【0433】
なお、複数のトランスポートストリームTS1〜TSεのそれぞれを識別する必要がある場合には、タイムスタンプSti、トランスポートストリーム識別子TSIDi、および管理情報IMiと表示するものとする。iは、ストリーム入力器TSR1〜TSRεのどれに入力されるトランスポートストリームTSかを示す自然数(1≦i≦ε)である。具体的には、第1のトランスポートストリームTS1に関しては、第1のパケット先頭検出信号Sps1、第1のリクエスト信号Srq1、第1のデータ有効信号Sde1、第1の転送単位TSd1、タイムスタンプSt1、トランスポートストリーム識別子TSID1、および第1ストリーム入力器TSR1と表現する。
【0434】
同様に、第2のトランスポートストリームTS2に関しては、第2のパケット先頭検出信号Sps2、第2のリクエスト信号Srq2、第2のデータ有効信号Sde2、第2の転送単位TSd2、タイムスタンプSt2、第2のパケット先頭検出信号Sps2、トランスポートストリーム識別子TSID2、およびストリーム入力器TSR2と表現する。ただし、パケットデータP2の最初の第2の転送単位TSd2には、パケットデータP1の最初の第1の転送単位TSd1と異なり同期バイトBsyncが含まれている。
【0435】
つまり、第2のトランスポートストリームTS2のパケットデータP2の先頭である同期バイトBsyncを検出した時点で、3バイトのタイムスタンプStと1バイトのトランスポートストリーム識別子TSIDからなる合計4バイトの管理情報IMが生成されるので、先頭の同期バイトBsyncから4バイトが入力された時点で、第2ストリーム入力器TSR2は第2のリクエスト信号Srq2を生成する。なお、5バイト目以降については、8バイトごとに第2のリクエスト信号Srq2が生成される。
【0436】
DMAバス調停器210は、第1のリクエスト信号Srq1に応答して、その入出力を調停して、第1ストリーム入力器TSR1からの第1の転送単位TSd1の入力の準備を整える。そして、準備が整った時点(第1のリクエスト信号Srq1より時間Ta後)に、第1のデータ有効信号Sde1を生成して第1ストリーム入力器TSR1に出力する。この時間Taは、データバッファリング装置DBAを含めた内部処理時間に起因しておのずと決まるものであり、データバッファリング装置DBAの状態によって若干の変動が許される。
【0437】
図1を参照して説明したように、第1ストリーム入力器TSR1は、第1のデータ有効信号Sde1に応答して、内部のバッファに蓄積されているパケットデータP1のデータを8バイトずつ第1の転送単位TSd1としてDMAバス調停器210に出力する。
【0438】
第1ストリーム入力器TSR1とDMAバス調停器210に関して説明したのと同様の方法で、第2ストリーム入力器TSR2は第2のパケット先頭検出信号Sps2および第2のリクエスト信号Srq2を生成してDMAバス調停器210に出力する。DMAバス調停器210は、第2のリクエスト信号Srq2に応答して第2のデータ有効信号Sde2を第2ストリーム入力器TSR2に出力する。
【0439】
第2ストリーム入力器TSR2は、第2の転送単位TSd2を生成するとともに、第2のデータ有効信号Sde2に応答して、生成した第2の転送単位TSd2をDMAバス調停器210に出力する。
【0440】
DMAバス調停器210は、第1ストリーム入力器TSR1および第2ストリーム入力器TSR2から入力された第1のパケット先頭検出信号Sps1、第2のパケット先頭検出信号Sps2、第1の転送単位TSd1、および第2の転送単位TSd2をTSd入力開始検出器220に出力する。
【0441】
TSd入力開始検出器220は、DMAバス調停器210から入力される第1のパケット先頭検出信号Sps1および第1の転送単位TSd1に基づいて、パケットデータP1ごとに第1の転送単位TSd1の入力が開始されたことを検出するとともに、第1の転送単位TSd1をパケットバッファ制御器260に供給する。
【0442】
同様に、TSd入力開始検出器220は、DMAバス調停器210から入力される第2のパケット先頭検出信号Sps2および第2の転送単位TSd2に基づいて、パケットデータP2ごとに第2の転送単位TSd2の入力が開始されたことを検出するとともに、第2の転送単位TSd2をパケットバッファ制御器260に供給する。
【0443】
上述のようにして、TSd入力開始検出器220は、第1の転送単位TSd1あるいは第2の転送単位TSd2の入力開始を検出するたびに、現在入力が開始されたパケットデータPを格納するためにパケットバッファ270の一次バッファセルBc_I1〜Bc_Imの1つの割当を要求するバッファセル要求信号Sbaを生成してバッファセル割当器230に出力する。さらに、割り当てられたバッファセルに対する書き込みを開始できる状態であることを示す書込許可信号Swを生成して書込先バッファセル指定器250に出力する。
【0444】
パケットバッファ制御器260は、DMAバス調停器210およびTSd入力開始検出器220を経由して入力される第1の転送単位TSd1および第2の転送単位TSd2を、書込先バッファセル指定器250から入力される書込要求信号Swdに基づいて、パケットバッファ270の割り当てられたバッファセルBcに書き込む。そして、1パケットデータP分の第1の転送単位TSd1あるいは第2の転送単位TSd2を書き込んだ時点で転送終了信号Stfを生成して蓄積完了バッファセル番号メモリ制御器280に出力する。
【0445】
上述のごとく、割り当てられた一次バッファセルBc_IにパケットデータPの書き込みが開始された後に、例えば、第11バイト目に第1のトランスポートストリームTS1にデータがエラーがある場合に、ストリーム入力器TSR1は第1のエラー信号E1を生成してエラーフラグ設定器295に出力する。
【0446】
エラーフラグ設定器295は、第1のエラー信号E1を受領した時点で、ハイ状態になり、転送終了信号Stfを受領した時点でロー状態になる二値信号である第1のラッチエラー信号LE1を生成する。同様に、エラーフラグ設定器295は、第2のエラー信号E2を受領した時点で、ハイ状態になり、転送終了信号Stfを受領した時点でロー状態になる二値信号である第2のラッチエラー信号LE2を生成する。これらの第1のラッチエラー信号LE1および第2のラッチエラー信号LE2はエラーフラグ信号Feとして蓄積完了バッファセル番号メモリ290に出力される。
【0447】
図5に示す例においては、130バイトのパケットデータP1(TS1)と188バイトのパケットデータP2(TS2)が同時に、マルチフォーマットトランスポートストリームデコーダTDに入力された場合、サイズの小さいパケットデータP1の転送がパケットデータP2より先に終了しまう。結果、第2のトランスポートストリームTS2の最初のパケットデータP2の転送が継続している間に、第1のトランスポートストリームTS1の次のパケットデータP1がマルチフォーマットトランスポートストリームデコーダTDに到着して、いわゆるパケットデータの追越しが生じる。
【0448】
なお、この追越しは、パケットデータのサイズが同じであっても、入力転送クロックCkの周波数が異なる場合にも生じる。さらに入力転送クロックCkの周波数差が十分多ければい、サイズの大きい方のパケットデータが、サイズの小さいパケットデータを追い越すこともあり得る。
【0449】
次に、図7を参照して、上述のマルチフォーマットトランスポートストリームデコーダTDの主な動作について詳しく説明する。マルチフォーマットトランスポートストリームデコーダTDは、電源が投入されてその動作を開始する。
まず、ステップ#100「の初期化サブルーチン」において、蓄積完了バッファセル番号メモリ290のライトポインタWPおよびリードポインタRPの値が共に0にリセットを含めて、装置の初期化が行われる。そして、処理は次のステップ#200に進む。
【0450】
ステップ#200の「トランスポートストリームTS1〜TSεの提供番組および可能処理提示」サブルーチンにおいて、TD制御器TDCのメインメモリ900のPAT格納領域Ar(PAT)およびPMT格納領域Ar(PMT)に、トランスポートストリームTS1〜TSεごとに個別に格納されている番組コンテンツ管理表PAT1〜PATεおよび番組コンテンツパケットデータ管理表PMT1〜PMTεに基づいて、配信される番組と、マルチフォーマットトランスポートストリームデコーダTDがユーザに提供できる処理機能とを表す番組内容提示信号Spを生成して、副次処理要求入力器APRに出力する。
副次処理要求入力器APRは、番組内容提示信号Spに基づいて、ディスプレイ等の適当な表示手段を用い手配信番組と提供処理機能をユーザに一覧提示する。ユーザは、副次処理要求入力器APRを操作して、提示された番組と処理機能の内で、所望の番組と処理機能を選択する。
【0451】
ステップ#300の「トランスポートストリームTS1〜TSεに対する処理要求検出」サブルーチンにおいて、副次処理要求入力器APRは、番組内容提示信号Spに基づいて、複数のトランスポートストリームTS1〜TSεに対するユーザの処理要求を検出して、処理要求信号Seを生成してTD制御器TDCに出力する。
【0452】
ステップ#400の「トランスポートストリームTS1〜TSεに対する処理内容決定」サブルーチンにおいて、TD制御器TDCは処理要求信号Seに基づいて、マルチフォーマットトランスポートストリームデコーダTD側にて行うべき具体的な処理内容を決定する。具体的には、TD制御器TDCは、副次処理要求入力器APRから入力された処理要求信号Seに基づいて、処理対象となる番組、番組に対する処理方法、および処理に要するデバイス等の手段の情報に代表される処理内容情報を生成する。処理内容情報を生成する。
【0453】
ステップ#500の「処理対象パケットデータ識別情報パケット識別子PIDdおよびトランスポートストリーム識別子TSIDd生成」サブルーチンにおいては、TD制御器TDCは、ステップ#400において決定された処理内容情報に基づいて処理すべきパケットデータPを表す処理対象パケットデータ識別情報パケット識別子PIDdと、処理すべきパケットデータPのそれぞれが属するトランスポートストリームTSεを示す対象トランスポートストリーム識別情報TSIDdを生成して、パケット選択器400に出力する。
【0454】
ステップ#600の「トランスポートストリームTS1〜TSεのパケットデータP蓄積」サブルーチンにおいて、マルチフォーマットトランスポートストリームデコーダTDに逐次入力されるε本のトランスポートストリームTS1〜TSεに含まれるパケットデータP1〜Pεのデータバッファリング装置DBAへのバッファリングが開始される。なお、パケットデータPiは、データバッファリング装置DBAの一次バッファセルBc_Iのそれぞれに、パケットデータP/n単位(nは自然数)で格納される。本ステップにおける処理については、後ほど図8を参照して詳述する。所定数のパケットデータPの蓄積が完了した時点で、次のステップ#700の処理が開始される。言い換えれば、データバッファリング装置DBAの複数の一次バッファセルBc_Iの内、所定数のバッファセルBcのそれぞれにパケットデータPが蓄積された状態でステップ#700の処理が開始する。
【0455】
ステップ#700の「トランスポートストリームTS1〜TSεの処理対象パケットデータP選択」サブルーチンにおいて、データバッファリング装置DBAの一次バッファセルBc_Iに順次格納されるパケットデータPの中で処理対象のものが選択される。具体的には、1つの一次バッファセルBc_Iに格納されているパケットデータPがステップ#400で特定されたパケットデータPであるかを、ステップ#500で決定されたパケット識別子PID(処理対象パケットデータ識別情報PIDd)を有するかを判断することによって、処理対象パケットデータPとしての選択が行われる。
【0456】
ステップ#8000の「トランスポートストリームTS1〜TSεのパケットデータPに要求処理実行」サブルーチンにおいて、ステップ#700において選択されたパケットデータPに対して、ステップ#400において決定された内容のユーザ要求処理が実行される。本実施形態においては、一次バッファセルBc_Iに順次格納される複数のトランスポートストリームTS1〜TSεのパケットデータP1〜Pεの中で、ステップ#700で選択された特定の番組の番組コンテンツパケットデータPのみを抽出して、選択複数TS複数番組パケットデータ列Pemm(Pem1、Pem2)が抽出される例が示されているが、これについては、後ほど図26を参照して詳述する。なお、要求処理が特定の番組を構成する番組コンテンツパケットデータPcの選択抽出に限らず、種々のデジタル処理の適用が可能であることは言うまでもない。
【0457】
#900の「トランスポートストリームTS1〜TSεの処理後パケットデータP蓄積」サブルーチンにおいて、ステップ#8000で抽出された選択複数番組パケットデータ列Pemmがメインメモリ制御器700に出力されて、複数番組パケットデータ列Pmsmが生成される。
【0458】
なお、上述のようにステップ#600は主にハードウェアによる受動的な処理であり、ステップ#700〜#900は主にソフトウェアによる能動的な処理である。よって、ステップ#600とステップ#700〜#900は好ましくは並行処理として構成される。そのためには、ステップ#700における対象処理パケットデータP選択サブルーチンを開始する前に、ステップ#600において、適正な数だけの一次バッファセルBc_IにパケットデータPが蓄積されていることが望ましい。これに付いては、後ほど図8を参照して説明する。
【0459】
しかしながら、本図においてはステップ#600、#700、#8000、および#900を一連の繰り返し処理としての構成を示している。このような構成における動作について簡単に説明する。ステップ#600の「トランスポートストリームTS1〜TSεのパケットデータP蓄積」サブルーチンを初めて行う場合は、所定数のバッファセルBcにパケットデータPが蓄積されるのを待った後に、ステップ#700、#8000、および#900の処理を連続的に実行する。そして、2回目以降のステップ#600においては、所定数ではなく1つの一次バッファセルBc_IにパケットデータPが格納された後に、ステップ#700〜#900の処理が実行される。
【0460】
この場合の所定数とは、データバッファリング装置DBAの一連の動作速度より決まる、ソフトウェアによるステップ#700〜#900の処理に対して許容外のアンダーフローあるいはオーバーフローを起こさないように決められる。よって、所定数の最小値は1である。実際には、所定数の一次バッファセルBc_IにパケットデータPが蓄積されたことの保証は、ステップ#600が開始してから、ステップ#700が開始するまでの時間で管理される。
【0461】
図37に、上述のステップ#700の「トランスポートストリームTS1〜TSεの処理対象パケットデータP選択」サブルーチンとステップ#8000の「トランスポートストリームTS1〜TSεのパケットデータPに対する要求処理実行」サブルーチンの関係を模式的に表す。マルチフォーマットトランスポートストリームデコーダTDに逐次入力されるトランスポートストリームTSのパケットデータPのすべてに対して、ステップ#700で個別に処理対象であるかが判断される。そして、処理対象であると判断されたパケットデータP(図37において、太線の矢印で表示)に対してのみ、ステップ#8000でユーザの要求に基づく処理が実施される。
【0462】
上述のように、本実施形態では、ユーザの要求に基づく処理は、第1のトランスポートストリームTS1から番組1および番組2を抽出して所望の処理を施し、第2のトランスポートストリームTS2から番組4および番組5を抽出して所望の処理を施すことである。よって、ステップ#700においては、一次バッファセルBc_Iに格納される全パケットデータPの内で、第1のトランスポートストリームTS1に関しては、トランスポートストリーム識別子TSID(1)と100番台および200番台のパケット識別子PIDとを有する番組コンテンツパケットデータPcと、管理パケットデータPcAのみが選択される。
【0463】
同様に、第2のトランスポートストリームTS2に関してはトランスポートストリーム識別子TSID(2)と400番台および500番台のパケット識別子PIDを有する番組コンテンツパケットデータPcと、管理パケットデータPcAのみが選択される。そして、選択された番組コンテンツパケットデータPcおよび管理パケットデータPcAが、ステップ#8000で、一次バッファセルBc_I、二次バッファセルBc_Mおよび三次バッファセルBc_0を利用して所望の処理が施された後にバッファセルBc(三次バッファセルBc_0)からデータバッファリング装置DBAの外部へ選択複数TS複数番組パケットデータ列Pemmとして出力される。
【0464】
なお、ステップ#8000において、ユーザの要求処理が特定の番組の番組コンテンツパケットデータPcの加工であれば、上述の例においては、選択された管理パケットデータPcAおよび番組コンテンツパケットデータPcの内で、特定の番組を形成する番組コンテンツパケットデータPcのみに加工が施されることになる。これについては、後ほど図10、図11、図12、図13、図14、図15、図16、図17、および図18を参照して詳述する。
【0465】
次に、図8を参照して、上述のステップ#600の「トランスポートストリームTS1〜TSεのパケットデータP蓄積」サブルーチンにおける動作について詳細に説明する。マルチフォーマットトランスポートストリームデコーダTDに入力されるトランスポートストリームTS1〜TSεのそれぞれに対応して、ステップS602、S604、S606、S608、S610、S612、およびS614が1組ずつ用意される。つまり、ステップS602_1〜S602_ε、ステップS604_1〜S604_ε、ステップS606_1〜S606_ε、ステップS608_1〜S608_ε、ステップS610_1〜S610_ε、ステップS612_1〜S612_ε、およびS614_1〜S614_εが存在する。
【0466】
マルチフォーマットトランスポートストリームデコーダTDに入力される第1のトランスポートストリームTS1〜第εのトランスポートストリームTSεを代表して、第iのトランスポートストリーム識別子TSiに関する動作について説明する。なお、図8にはiが1の場合とiがεの場合についてのみ具体的に表示されている。
【0467】
まず、ステップS602_iにおいて、外部のトランスポートストリーム供給源から第iトランスポートストリームTSiがストリーム入力器TSRiに入力される。そして、処理は次のステップS604_iに進む。
【0468】
ステップS604_iにおいて、第iストリーム入力器TSRiは入力された第iトランスポートストリームTSiのパケット先頭を検出する。具体的には、第iストリーム入力器TSRiはTD制御器TDCから入力されたトランスポートストリーム構造信号Stsに基づいて、入力されてくる第iトランスポートストリームTSiの構造に基づいて、入力されてくるパケットデータPの先頭を検出する。そして、処理は次のステップS606_1に進む。
【0469】
ステップS606_1において、第iストリーム入力器TSRiは、入力されてくる第iトランスポートストリームTSiにデータエラーが含まれていないかの検出を開始する。なお、本ステップにおいて開始したデータエラー検出は、後述のステップS644において終了されるまで、他のステップS612_i〜S640における処理に平行して継続実行されて、データエラーが検出された時点でデータエラーを有するトランスポートストリームTSを示すエラー信号Ei’(1≦i’≦εで、i’はiと同一であっても良い)を生成して出力する。そして、処理はステップS608_iとステップS610_iに分岐する。
【0470】
ステップS608_iにおいて、第iストリーム入力器TSRiは、第iのパケット先頭検出信号Spsiを生成する。そして、処理は後述のステップS622に進む。
【0471】
一方、ステップS610_iにおいては、第iストリーム入力器TSRiは、第iのトランスポートストリームTSiの先頭バイトを検出した時間に基づいてタイムスタンプStiを生成し、DMAバス調停器210の入力ポート群に関連づけられたトランスポートストリーム識別子TSIDiを生成し、そして、管理情報IMiを生成する。そして、処理は次のステップS612_iに進む。
【0472】
ステップS612_iにおいて、第iストリーム入力器TSRiはパケット先頭以降のパケットデータを内蔵の入力バッファに蓄積する。第i転送単位TSdi分の蓄積が完了すると、処理は次のステップS614_iに進む。なお、第iストリーム入力器TSRiに内蔵の入力バッファの容量は、入力パケットデータを取りこぼすことがないように、入力ストリームの伝送レート等によって適正に定められなければならない。少なくとも第i転送単位TSdiより大きい必要があるのは言うまでもない。
【0473】
ステップS614_iにおいて、第iストリーム入力器TSRiは第iリクエスト信号SrqiをDMAバス調停器210に出力する。そして、処理は次のステップS616に進む。
【0474】
このようにして、マルチフォーマットトランスポートストリームデコーダTDに入力されるすべてのトランスポートストリームTS1〜TSε(1≦i≦ε)のそれぞれに対して、上述のS604_i、S606_i、S610_i、S612_i、およびS614_iを1組とする処理が平行に行われる。結果、すべてのトランスポートストリームTS1〜TSεのパケットデータP1〜PεがマルチフォーマットトランスポートストリームデコーダTDに到着した時点でバッファリング対象とされる。
【0475】
そして、ステップS616において、DMAバス調停器210は第1リクエスト信号Srq1〜第εリクエスト信号Srqεのそれぞれに基づいて、第1ストリーム入力器TSR1〜第εストリーム入力器TSRεのそれぞれからの第1パケットデータP1〜第εトランスポートストリームTSεそれぞれの転送単位TSdでの入力に備えて調停を行う。そして、第1の転送単位TSd1〜第ε転送単位TSdεの内のいずれか1つの入力を許可する。そして、処理は次のステップS618に進む。
【0476】
ステップS618において、DMAバス調停器210はステップS616における調停の結果、第i転送単位TSdiの入力を許可する第iデータ有効信号Sdeiを第iストリーム入力器TSRiに出力する。そして、処理は次のステップS620に進む。
【0477】
ステップS620において、ステップS618において出力された第iのデータ有効信号Sdeiにしたがって、第iストリーム入力器TSRiから第iの転送単位TSdiのDMAバス調停器210への転送が開始される。なお、第iの転送単位TSdiはDMAバス調停器210を経由して、TSd入力開始検出器220に出力される。そして、処理は次のステップS622に進む。
【0478】
ステップS622において、TSd入力開始検出器220は、ステップS608_iで入力が開始された第iのパケット先頭検出信号Spsiに基づいて、第iの転送単位TSdiの入力が開始されたことを検出する。TSd入力開始検出器220は、前述のステップS618で出力されている第iのデータ有効信号Sdeiに基づいて、1パケットデータP分のデータが第iの転送単位TSdiで複数回に渡って入力されてくる最初のデータを検出した時点で、第iの転送単位TSdiの入力開始を検出する。
【0479】
つまり、第1のデータ有効信号Sde1が出力されている状態では第1の転送単位TSd1の入力開始を検出し、第2のデータ有効信号Sde2が出力された状態では第2の転送単位TSd2の入力開始を検出する。TSd入力開始検出器220は、ステップS616の調停の結果、第iのパケット先頭検出信号Spsiが入力された後に転送単位TSdが初めて入力された時点で、第iのストリーム入力器TSRiから入力されてくるパケットの先頭の入力開始を検出する。そして、処理は次のステップS624に進む。
【0480】
ステップS624において、TSd入力開始検出器220はバッファセル要求信号Sbaを生成してバッファセル割当器230に出力するとともに、書込許可信号Swを生成して書込先バッファセル指定器250に出力する。そして、処理は次のステップS626に進む。
【0481】
ステップS626において、バッファセル割当器230は、バッファセル割当情報格納器240から供給される割当一次バッファセル情報Iabに基づいて、ステップS612_iにおいて転送が開始された転送単位TSdの書き込みに供せられるバッファセルBcを割り当てる。そして、処理は次のステップS628に進む。
【0482】
ステップS628において、バッファセル割当器230は、ステップS612_iでの割り当てた一次バッファセルBc_Iを示す一次バッファセル割当情報Ibaを生成してバッファセル割当情報格納器240に出力する。そして、処理は次のステップS630に進む。
【0483】
ステップS630において、バッファセル割当情報格納器240は一次バッファセル割当情報Ibaに基づいて、割当一次バッファセル情報Iabを生成して格納する。そして、処理は次のステップS632に進む。
【0484】
ステップS632において、バッファセル割当情報格納器240は、バッファセル割当器230から入力された一次バッファセル割当情報Ibaを書込先バッファセル指定器250および蓄積完了バッファセル番号メモリ制御器280に出力する。そして、処理は次のステップS634に進む。
【0485】
ステップS634において、TSd入力開始検出器220は、パケットバッファ270の一次バッファセルBc_Iへの転送単位TSdiの書き込みを許可する書込許可信号Swを生成して書込先バッファセル指定器250に出力する。そして、処理は次のステップS636に進む。
【0486】
ステップS636において、書込先バッファセル指定器250は、書込許可信号Swに応答して、一次バッファセル割当情報Ibaが指示する、割り当てられた一次バッファセルBc_Iに対する書き込み(蓄積)を要求する書込要求信号Swdを生成して、パケットバッファ制御器260に出力する。そして、処理は次のステップS638に進む。
【0487】
ステップS638において、パケットバッファ制御器260は、TSd入力開始検出器220から経由して供給される転送単位TSdiを、書込要求信号Swd(一次バッファセル割当情報Iba)およびステップS616の調停結果が指示する一次バッファセルBc_IへのパケットデータPの転送単位TSdiでの書き込み(蓄積)を行う。そして、処理は次のステップS640に進む。
【0488】
ステップS640において、転送単位TSdiごとに第iのストリーム入力器TSRiからDMAバス調停器210に第iのリクエスト信号Srqiが出力される(ステップS614_i)。DMAバス調停器210は、第iのリクエスト信号Srqiに応答し調停を行って(ステップS616)、第iのデータ有効信号Sdeiを対応する第iのストリーム入力器TSRiに出力(ステップS618)する。第iのストリーム入力器TSRiは、第iのデータ有効信号Sdeiに応答してパケットデータPの次の第iの転送単位TSdiの転送を開始する。これらの一連の動作が、入力されるトランスポートストリームTS1〜TSεのそれぞれに対して繰り返される。
【0489】
この間、パケットバッファ制御器260は一次バッファセルBc_Iに書き込まれるデータのバイト数を、第iの転送単位TSdiをiの値が異なる(異なるトランスポートストリーム)ごとにカウントして、それぞれ1パケットデータP分の転送単位TSdiのバッファセルへの蓄積が終了したことを検出する(S640)。今、第1のトランスポートストリームTS1〜第εのトランスポートストリームTSεに関する動作を、第iのトランスポートストリームTSiで代表して説明してきたが、上述のようにマルチフォーマットトランスポートストリームデコーダTDには複数(異なるトランスポートストリーム識別子TSID)のトランスポートストリームTSが同時に入力される。
【0490】
よって、iの値が異なる複数の転送単位TSdiを同時に別々の一次バッファセルBc_Iに格納する必要がある。よって、ステップS640においては、そのような個々の一次バッファセルBc_Iにおける転送単位TSdiの蓄積完了を検出するものである。
【0491】
さらに、転送終了信号Stfを生成して蓄積完了バッファセル番号メモリ制御器280に出力する。カウント数は、TD制御器TDCにあらかじめ格納されているトランスポートストリーム構造情報が示すトランスポートストリームTSのパケットデータPのデータサイズによって求められる。そして、処理は次のステップS642に進む。
【0492】
ステップS642において、エラーフラグ設定器295はパケットバッファ制御器260から出力される転送終了信号Stfに応答して、上述のステップS606_i〜S640の間に、第1のストリーム入力器TSR1〜第εのストリーム入力器TSRεの何れかから出力されるエラー信号Ei'(1≦i'≦εであり、i'はiと同一であってもなくても良い)に基づいてライトポインタWPが示しているフラグ格納領域Fcmにエラーフラグ値を書き込む。つまり、ステップS606_i〜S640の間に、一次バッファセルBc_Iに格納中のパケットデータPにデータエラーが検出される場合には、転送終了信号Stfが入力された時点でフラグ格納領域FcnにエラーフラグONに相当する値が書き込まれる。
【0493】
一方、ステップS606_i〜S640の間に、データエラーが検出されることなく、パケットデータPが一次バッファセルBc_Iに格納された場合には、ステップS644において、転送終了信号Stfが入力された時点でフラグ格納領域FcnにエラーフラグOFFに相当する値が書き込まれる。なお、フラグ格納領域Fcの初期値をエラーフラグOFFに設定すれば、ステップS644において、フラグ格納領域Fcnには何も書き込まれない。この場合、エラーフラグONが書き込まれたフラグ格納領域Fcのリセットについては、後ほど図9を参照して説明する。そして処理は、次のステップS644に進む。
【0494】
ステップS644において、ステップS606_iにおいて開始された第iのストリーム入力器TSRiによる第iのトランスポートストリームTSのデータエラー検出を終了する。そして、処理は次のステップS646に進む。
【0495】
ステップS646において、蓄積完了バッファセル番号メモリ制御器280は、転送終了信号Stfと一次バッファセル割当情報Ibaに基づいて、1パケットデータPのデータの蓄積を完了した一次バッファセルBc_Iを示すバッファセル番号信号Sbnを生成する。つまり、バッファセル番号信号Sbnは、転送終了信号Stfが入力されたときに、一次バッファセル割当情報Ibaが示す一次バッファセルBc_Iのバッファセル番号Nbcに相当する。そして、処理は次のステップS648に進む。
【0496】
ステップS648において、蓄積完了バッファセル番号メモリ290は、バッファセル番号信号Sbnの示すバッファセル番号NbcをライトポイントWPの示す領域に記録する。同様に、蓄積完了バッファセル番号メモリ290は、エラーフラグ信号Feの示すフラグ格納領域Fcnにエラーフラグ値を書き込む。そして、処理は次のステップS650に進む。
【0497】
ステップS650において、蓄積完了バッファセル番号メモリ制御器280は、ライトポイント更新信号Swpを蓄積完了バッファセル番号メモリ290に出力して、蓄積完了バッファセル番号メモリ制御器280のライトポインタWPを1つ進る。そして、本ステップ#600における「トランスポートストリームTS1〜TSεのパケットデータP蓄積」サブルーチンを終了する。
【0498】
上述のステップにより、ステップ#600において、マルチフォーマットトランスポートストリームデコーダTDに入力される複数のトランスポートストリームTS1〜TSεのそれぞれに含まれるパケットデータPのそれぞれの、トランスポートストリームTSとの従属関係および異なるトランスポートストリームTSとの時間関係の情報を保持した状態で、シーケンシャルかつリアルタイムにバッファリングすることができる。
【0499】
なお、本のステップS644におけるエラーフラグ値の書き込みについて、図6に示す波形図を参照して、各構成要素の動作をより具体的に説明する。図6に示す例においては、第2のトランスポートストリームTS2の最初のパケットデータPの第2バイト目から第2番目のパケットデータPの第3バイト目までの期間が、上述のステップS606_iからステップS640までの期間に相当する。そして、第2ストリーム入力器TSR1が最初のパケットデータP2の第11バイト目にデータエラーを検出して、エラー信号E2(I’=2)をエラーフラグ設定器295に出力する。調停期間Taは変動するので、上述の期間はそれぞれパケット先頭検出信号Sps〜転送終了信号Stfの発生範囲内で変動することは言うまでもない。
【0500】
エラーフラグ設定器295は、エラー信号Eをラッチしてラッチエラー信号LEを生成して、そして保持する。そして、転送終了信号Stfが入力された時点で、ラッチエラー信号LEおよび転送終了信号Stfが共にハイであれば、蓄積完了バッファセル番号メモリ290のフラグ格納領域FcにフラグONを書き込むエラーフラグ信号Feを生成する。
【0501】
一方、入力されたトランスポートストリームTSにデータエラーが検出されない場合には、転送終了信号Stfが入力された時点でラッチエラー信号LEはローであるので、蓄積完了バッファセル番号メモリ290raのフラグ格納領域FcにフラグONを書き込むエラーフラグ信号Feは生成されない。
【0502】
このようにして、同時に入力される任意の数のトランスポートストリームTSのいずれかにデータエラーが含まれている場合でも、パケットバッファ270の一次バッファセルBc_Iに格納されるパケットデータPの単位で、データエラーの有無を識別管理できる。結果、入力されるトランスポートストリームTSに含まれているデータエラーの部分を捨てたりあるいは再度取得することで、トランスポートストリームTSが伝送する情報を正しく獲得できる。
【0503】
さらに、転送終了信号Stfに応答して、蓄積完了バッファセル番号メモリ290のフラグ格納領域Fcにエラーフラグ値の書き込みを行うのは、本実施形態のように複数のトランスポートストリームTS1〜TSεが同時に入力される場合である。その理由は、上述のように異なるトランスポートストリームTSにおけるパケットデータPの入力レート差により、後から到着したパケットデータPのバッファリングが、先に到着したパケットデータPのバッファリングより早く終了するときに、本当は先に到着したパケットにデータエラーを検出したのに、後から到着して先にバッファリングを終了したパケットを格納した一次バッファセルBc_Iに対応するフラグ格納領域FcにエラーフラグONと誤記入されるのを防止するためである。
【図面の簡単な説明】
【図1】本発明の実施形態にかかる、マルチフォーマットパケットデータデータの構造を示すブロック図である。
【図2】図1に示した制御器周辺の要部詳細図である。
【図3】図1に示したバッファセル割当情報格納器およびパケットバッファの詳細を示す説明図である。
【図4】図3に示した蓄積完了バッファセル番号メモリの詳細を示す説明図である。
【図5】図4に示した蓄積完了バッファセル番号メモリの変形例を示す説明図である。
【図6】図1に示したマルチフォーマットトランスポートストリームデコーダにおける種々の信号を示す波形図である。
【図7】図1に示したマルチフォーマットトランスポートストリームデコーダの主な動作を示すフローチャートである。
【図8】図7に示したトランスポートストリームTS1〜TSεのパケットデータP蓄積サブルーチンにおける詳細な動作を示すフローチャートである。
【図9】図7に示したトランスポートストリームTS1〜TSεのパケットデータPに要求処理実行サブルーチンにおける詳細な動作を示すフローチャートである。
【図10】図9に示したマルチフォーマットパケットデータ処理サブルーチンにおける詳細な動作を示すフローチャートである。
【図11】図10に示したパケットバッファ確認サブルーチンにおける詳細な動作を示すフローチャートである。
【図12】図10に示したパケットデータフィルタリング制御サブルーチンにおける詳細な動作を示すフローチャートである。
【図13】図10に示したアクセス対象パケットデータに対応する処理要求テーブル取得サブルーチンにおける詳細な動作を示すフローチャートである。
【図14】図13に示したアクセス対象パケットデータに対応する処理要求テーブル取得サブルーチンの変形例における詳細な動作を示すフローチャートである。
【図15】図10に示したデスクランブル制御サブルーチンにおける詳細な動作を示すフローチャートである。
【図16】図10に示したパケットパターン選別制御サブルーチンにおける詳細な動作を示すフローチャートである。
【図17】図16に示したパケットパターン選別制御サブルーチンの変形例における詳細な動作を示すフローチャートである。
【図18】図10に示したメインメモリ制御サブルーチンにおける詳細な動作を示すフローチャートである。
【図19】図10に示したストリーム出力制御サブルーチンにおける詳細な動作を示すフローチャートである。
【図20】図19に示した第1ストリーム出力設定サブルーチンにおける詳細な動作を示すフローチャートである。
【図21】図19に示した第2ストリーム出力設定サブルーチンにおける詳細な動作を示すフローチャートである。
【図22】図19に示したストリーム出力制御サブルーチンにおける詳細な動作を示すフローチャートである。
【図23】本発明におけるパケットデータに対する処理の説明図である。
【図24】本発明におけるパケットデータに対する処理の説明図である。
【図25】本発明におけるバッファセルの最小容量の説明図である。
【図26】管理バイトBMの構成を示す説明図である。
【図27】補助データの構成を示す説明図である。
【図28】制御テーブルの構成を示す説明図である。
【図29】エントリテーブルの構成を示す説明図である。
【図30】エントリテーブルの説明図である。
【図31】処理要求テーブルPdtの構成を示す説明図である。
【図32】デスクランブル判定パラメータの相互関係を示す説明図である。
【図33】制御器とパケット解析器との間で交換される信号の内容を示す説明図である。
【図34】DMAバス調停器とメインメモリ制御器との間で交換される信号の内容を示す説明図である。
【図35】制御器とストリーム出力器との間で交換される信号の内容を示す説明図である。
【図36】図1に示したマルチフォーマットトランスポートストリームデコーダに入力される2つのトランスポートストリームのパケット構成を示す模式図である。
【図37】図1に示したマルチフォーマットトランスポートストリームデコーダにおいて、図36に示した2つの入力トランスポートストリームから特定のコンテンツパケットデータを処理する様子を示した説明図である。
【図38】図37に示した処理において、図1に示したメインメモリに蓄積されるコンテンツパケットデータを示した説明図である。
【図39】図38に示したメインメモリから出力される複数TS複数番組パケットデータ列の構成を示した説明図である。
【図40】図1に示したマルチフォーマットトランスポートストリームデコーダに入力されるITU−T勧告H.220.0に規定される2つの入力トランスポートストリームの構成を示す説明図である。
【図41】単一のトランスポートストリームから複数の番組コンテンツパケットデータデータの出力に供することできると考えられる、従来の主にハードウェアによって実現されるトランスポートストリームデコーダの構成を示すブロック図である。
【図42】図41に示した従来のトランスポートストリームデコーダに入力されるトランスポートストリームの構成を示す説明図である。
【図43】図41に示した従来のトランスポートストリームデコーダによる、単一のトランスポートストリームから抽出して構成される選択単一番組パケットデータデータ列の説明図である。
【図44】図41に示したメインメモリに、選択単一番組パケットデータデータ列が蓄積される状態を示す模式図である。
【図45】図41に示したメインメモリに入出力される単一番組パケットデータデータ列の構成を示す説明図である。
【符号の説明】
TD マルチフォーマットトランスポートストリームデコーダ
TSR1〜TSRε、TSRi ストリーム入力器
DBA データバッファリング装置
PBAC 制御器
PBA パケットバッファリング調停器
CF チャンネルパケットデータフィルタ
EPCF 拡張プログラムパケットデータフィルタ
210 DMAバス調停器
220 TSd入力開始検出器
230 バッファセル割当器
240 バッファセル割当情報格納器
250 書込先バッファセル指定器
260 パケットバッファ制御器
280 蓄積完了バッファセル番号メモリ制御器
290 蓄積完了バッファセル番号メモリ
295 エラーフラグ設定器
300 パケットアクセス器
400 パケット選択器
500 ストリーム出力管理器
530 中間処理用バッファセル使用メモリ
600 タイマ
700 メインメモリ制御器
900 メインメモリ
1000 パケット解析器
1300 ストリーム出力器
AI1〜AIN 一次バッファセル割当情報領域
AM1〜AMN 二次バッファセル割当情報領域
Bc_I1〜Bc_Im 一次バッファセル
Bc_M1〜BC_Mn 二次バッファセル一次バッファセル
Bc_O 三次バッファセル
Nbc1〜NbcN バッファセル番号
MBU 最低バッファ容量
Rc、Rc1〜RcM バッファセル指定領域
Sba バッファセル要求信号
Sbn バッファセル番号信号
Sc1、Sc2、Sc3 制御信号
ScW、ScW2、ScW3 制御信号
Sde データ有効信号
Sde1 第1のデータ有効信号
Sde2 第2のデータ有効信号
Sps パケットデータ先頭検出信号
Sps1 第1のパケットデータ先頭検出信号
Sps2 第2のパケットデータ先頭検出信号
Sr 状態信号
Srq リクエスト信号
Srq1 第1のリクエスト信号
Srq2 第2のリクエスト信号
SrW、 状態信号
Stf 転送終了信号
Sw 書込許可信号
Swd 書込要求信号
Swp ライトポイント更新信号
mrp 二次バッファセル割当情報
mwp 割当二次バッファセル情報
TSi、TS1〜TSε トランスポートストリーム
TSd 転送単位
TSd1 第1の転送単位
TSd2 第2の転送単位

Claims (6)

  1. あらかじめ定められた複数のフォーマットに基づいて生成されるとともにそれぞれを識別するパケットデータ識別情報が付与された連続する複数のパケットデータによって構成される複数のトランスポートストリームを入力とするマルチフォーマットトランスポートストリームデコーダであって、
    前記複数のパケットデータのそれぞれに対してあらかじめ規定される少なくとも1つの処理シーケンスを格納するパケットデータ処理シーケンス格納手段と、
    前記複数のパケットデータの内で前記ユーザが所望の処理の対象となるものと、前記処理シーケンスの内で当該所望の処理に対応するものを示す処理要求情報を入力する処理要求情報入力手段と、
    前記複数のトランスポートストリームに、各トランスポートストリームに対応するフォーマットを示すフォーマット識別情報及び各トランスポートストリームを識別するトランスポートストリーム識別情報を付与する識別情報付与手段と、
    記パケットデータを個々に逐次保持するとともに、当該保持されたパケットデータから前記フォーマット識別情報と前記トランスポートストリーム識別情報および前記パケットデータ識別情報を抽出するパケットデータ保持識別手段と、
    前記抽出されたトランスポートストリーム識別情報および前記パケットデータ識別情報が、前記処理要求情報を比較して、前記保持されているパケットデータがあらかじめ前記所望の処理の対象であるか否かを示す処理対象判断信号を生成する処理対象パケットデータデータ選定手段とを備える、マルチフォーマットトランスポートストリームデコーダ。
  2. 前記処理要求情報は、前記パケットデータの内で前記ユーザが所望の処理の対象であるものを示す対象パケットデータ識別情報と、当該処理の対象であるパケットデータに対応する対象トランスポートストリーム識別情報と、当該処理の対象であるパケットデータに対してあらかじめ規定された処理シーケンスの内で処理に対応する処理シーケンス情報を含むことを特徴とする、請求項1に記載のマルチフォーマットトランスポートストリームデコーダ。
  3. 前記処理対象パケットデータデータ選定手段は、前記抽出されたトランスポートストリーム識別情報および前記パケットデータ識別情報が、それぞれ前記対象トランスポートストリーム識別情報および対象パケットデータ識別情報および当該処理の対象であるパケットデータと一致した場合にのみ前記保持されている第1のパケットデータを前記所望の処理であることを示す処理対象判断信号を生成することを特徴とする、請求項2に記載のマルチフォーマットトランスポートストリームデコーダ。
  4. 前記パケットデータ保持識別手段は、
    記パケットデータのそれぞれを、入力されてくる順番に所定時間だけ保持するパケットデータ保持手段と、
    記パケットデータ保持手段に格納されているパケットデータに前記処理シーケンス処理を施した際に生じる中間生成物を格納するための第2のパケットデータ保持手段と、
    記パケットデータに前記処理シーケンス処理を施した際に生じる最終生成物を格納するための第3のパケットデータ保持手段とを備える、請求項3に記載のマルチフォーマットトランスポートストリームデコーダ。
  5. 前記処理対象判断信号が前記保持されている前記パケットデータがあらかじめ規定された処理の対象でないことを示す場合は、前記パケットデータ保持手段は、他のパケットデータの格納のために解放されることを特徴とする、請求項4に記載のマルチフォーマットトランスポートストリームデコーダ。
  6. 前記処理対象判断信号が前記保持されているパケットデータがあらかじめ規定された処理の対象であることを示す場合は、当該保持されている前記パケットデータに前記処理シーケンス情報に基づいて処理を施すデータ処理手段をさらに含む、請求項4に記載のマルチフォーマットトランスポートストリームデコーダ。
JP2001280375A 2001-09-14 2001-09-14 マルチフォーマットトランスポートストリームデコーダ Expired - Fee Related JP4416361B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2001280375A JP4416361B2 (ja) 2001-09-14 2001-09-14 マルチフォーマットトランスポートストリームデコーダ
EP02767930A EP1365560A4 (en) 2001-09-14 2002-09-10 TRANSPORT DRY DECODER FOR MULTIPLE FORMATS
CNA028068629A CN1625884A (zh) 2001-09-14 2002-09-10 多格式传输流解码器
US10/468,678 US7280566B2 (en) 2001-09-14 2002-09-10 Multi-format transport stream decoder
KR20037011770A KR100898690B1 (ko) 2001-09-14 2002-09-10 멀티포맷 트랜스포트 스트림 디코더
PCT/JP2002/009211 WO2003026254A1 (en) 2001-09-14 2002-09-10 Multi-format transport stream decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001280375A JP4416361B2 (ja) 2001-09-14 2001-09-14 マルチフォーマットトランスポートストリームデコーダ

Publications (3)

Publication Number Publication Date
JP2003087323A JP2003087323A (ja) 2003-03-20
JP2003087323A5 JP2003087323A5 (ja) 2007-08-16
JP4416361B2 true JP4416361B2 (ja) 2010-02-17

Family

ID=19104385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001280375A Expired - Fee Related JP4416361B2 (ja) 2001-09-14 2001-09-14 マルチフォーマットトランスポートストリームデコーダ

Country Status (6)

Country Link
US (1) US7280566B2 (ja)
EP (1) EP1365560A4 (ja)
JP (1) JP4416361B2 (ja)
KR (1) KR100898690B1 (ja)
CN (1) CN1625884A (ja)
WO (1) WO2003026254A1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003319339A (ja) * 2002-04-24 2003-11-07 Pioneer Electronic Corp 情報記録媒体、情報記録装置及び方法、情報再生装置及び方法、情報記録再生装置及び方法、記録又は再生制御用のコンピュータプログラム、並びに制御信号を含むデータ構造
US20040179485A1 (en) * 2003-03-12 2004-09-16 Terrier Carl M. Method of transmitting and receiving two-way serial digital signals in a wireless network utilizing a simplified baseband processor
US7688736B1 (en) 2003-05-05 2010-03-30 Marvell International Ltd Network switch with quality of service flow control
US7334132B1 (en) * 2003-06-27 2008-02-19 Zoran Corporation Flexible and scalable architecture for transport processing
US7349428B2 (en) * 2003-06-30 2008-03-25 Broadcom Corporation Data alignment of the packetized elementary streams in the coded data buffer for dual decode
US20060200711A1 (en) * 2005-02-01 2006-09-07 Schondelmayer Adam H Network diagnostic systems and methods for processing network messages
US20060198312A1 (en) * 2005-02-01 2006-09-07 Schondelmayer Adam H Network diagnostic systems and methods for altering the format and bandwidth of network messages
US20060198318A1 (en) * 2005-02-01 2006-09-07 Schondelmayer Adam H Network diagnostic systems and methods for statistical triggering
WO2006083959A2 (en) * 2005-02-01 2006-08-10 Finisar Corporation Network diagnostic system and methods for aggregated links
US20070038880A1 (en) * 2005-08-15 2007-02-15 Noble Gayle L Network diagnostic systems and methods for accessing storage devices
US20070211697A1 (en) * 2006-03-13 2007-09-13 Finisar Corporation Method of analyzing network with generated traffic
US20080075103A1 (en) * 2005-05-20 2008-03-27 Finisar Corporation Diagnostic device
US20060264178A1 (en) * 2005-05-20 2006-11-23 Noble Gayle L Wireless diagnostic systems
US20070211696A1 (en) * 2006-03-13 2007-09-13 Finisar Corporation Method of generating network traffic
US20070260728A1 (en) * 2006-05-08 2007-11-08 Finisar Corporation Systems and methods for generating network diagnostic statistics
US8107822B2 (en) 2005-05-20 2012-01-31 Finisar Corporation Protocols for out-of-band communication
US7899057B2 (en) * 2006-04-28 2011-03-01 Jds Uniphase Corporation Systems for ordering network packets
KR100724980B1 (ko) * 2005-06-28 2007-06-04 삼성전자주식회사 위성 dmb와 지상파 dmb를 동시에 수신할 수 있는듀얼 모드 dmb 단말기
US20070002871A1 (en) * 2005-06-30 2007-01-04 Nokia Corporation Padding time-slice frames with useful data
KR100736618B1 (ko) * 2005-10-10 2007-07-09 엘지전자 주식회사 Tsid 검출 방법
KR101215615B1 (ko) * 2006-01-10 2012-12-26 삼성전자주식회사 동일 채널 내에서 서로 다른 코덱을 이용하여 부호화된 비디오 및 오디오 데이터 스트림의 재생을 위한 코덱 변경 방법 및 장치
DE102006012449A1 (de) * 2006-03-17 2007-09-20 Benq Mobile Gmbh & Co. Ohg Verfahren zum Dekodieren eines Datenstroms und Empfänger
JP4864499B2 (ja) * 2006-03-20 2012-02-01 株式会社東芝 局間伝送システム、送信装置、受信装置、及び局間伝送方法
KR101419287B1 (ko) * 2006-07-07 2014-07-14 삼성전자주식회사 Ipdc 서비스를 제공하는 장치 및 방법 및 ipdc서비스를 처리하는 장치 및 방법
US8213333B2 (en) 2006-07-12 2012-07-03 Chip Greel Identifying and resolving problems in wireless device configurations
US8526821B2 (en) * 2006-12-29 2013-09-03 Finisar Corporation Transceivers for testing networks and adapting to device changes
KR100901124B1 (ko) * 2007-02-27 2009-06-08 삼성전자주식회사 디지털 멀티미디어 방송의 전계 판단 방법 및 이를이용하는 휴대 단말기
GB0823702D0 (en) * 2008-12-31 2009-02-04 St Microelectronics Res & Dev Processing packet streams
GB2466651A (en) * 2008-12-31 2010-07-07 St Microelectronics Security co-processor architecture for decrypting packet streams
JP2010232861A (ja) * 2009-03-26 2010-10-14 Sony Corp 情報処理装置、音声信号処理方法、およびプログラム
KR20100124966A (ko) * 2009-05-20 2010-11-30 삼성전자주식회사 복수의 형식을 가지는 디지털 방송 송수신 방법 및 장치
RU2608586C2 (ru) * 2012-02-07 2017-01-23 Сони Корпорейшн Передающее устройство, способ передачи, приемное устройство, способ приема, программа и электронное устройство
CN104272662A (zh) * 2012-05-09 2015-01-07 高通股份有限公司 使用时分双工在同轴链路上进行全双工以太网通信
JP5970957B2 (ja) * 2012-05-18 2016-08-17 ソニー株式会社 送信装置、送信方法、受信装置、受信方法、プログラムおよび電子機器
KR101908377B1 (ko) * 2016-09-27 2018-10-17 한국전력공사 계량데이터 관리 시스템 및 컴퓨터 판독가능 기록 매체
KR20240119772A (ko) * 2023-01-30 2024-08-06 에스케이하이닉스 주식회사 필터링 회로를 포함하는 메모리 장치 및 이를 포함하는 메모리 시스템

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5159447A (en) * 1991-05-23 1992-10-27 At&T Bell Laboratories Buffer control for variable bit-rate channel
JP3128058B2 (ja) 1996-03-05 2001-01-29 日本電信電話株式会社 プロトコル処理装置
JP3787411B2 (ja) * 1997-05-15 2006-06-21 キヤノン株式会社 情報処理装置及び方法並びに情報処理プログラムが記録されたコンピュータ可読記録媒体
JP3965539B2 (ja) * 1998-04-23 2007-08-29 ソニー株式会社 デジタル画像復号装置及び方法、並びに記録媒体
JP3573977B2 (ja) 1998-11-05 2004-10-06 株式会社東芝 通信装置及び通信方法
JP2000209557A (ja) * 1999-01-08 2000-07-28 Nec Corp トランスポ―トストリ―ム切り替え装置及びトランスポ―トストリ―ム切り替え方法
JP2000209521A (ja) * 1999-01-14 2000-07-28 Matsushita Electric Ind Co Ltd 複数番組表示処理装置
CA2329926C (en) * 1999-02-25 2005-12-20 Matsushita Electric Industrial Co., Ltd. Nonlinear editing device and nonlinear editing method
JP4256546B2 (ja) * 1999-08-24 2009-04-22 パナソニック株式会社 ストリーム多重分離装置
JP4374107B2 (ja) * 1999-10-01 2009-12-02 パナソニック株式会社 Ts多重化送信装置および受信装置並びに伝送システム
KR100749070B1 (ko) * 2000-07-14 2007-08-13 삼성전자주식회사 트랜스포트스트림을 역다중화하는 장치
JP2002320180A (ja) * 2001-04-24 2002-10-31 Alpine Electronics Inc 車載用ディジタル放送受信装置

Also Published As

Publication number Publication date
JP2003087323A (ja) 2003-03-20
EP1365560A8 (en) 2004-07-14
EP1365560A4 (en) 2010-06-23
KR100898690B1 (ko) 2009-05-22
CN1625884A (zh) 2005-06-08
WO2003026254A1 (en) 2003-03-27
EP1365560A1 (en) 2003-11-26
US7280566B2 (en) 2007-10-09
US20040076194A1 (en) 2004-04-22
KR20040028727A (ko) 2004-04-03

Similar Documents

Publication Publication Date Title
JP4416361B2 (ja) マルチフォーマットトランスポートストリームデコーダ
US5742361A (en) Data demultiplexer
KR100226528B1 (ko) 다중화 압축화상/음성데이타의 복호장치
US7463586B2 (en) Data transfer device to transfer repeat data from an upper station to a lower station
JP3636307B2 (ja) パケットデータ処理決定装置
CN101978691A (zh) 用于暂停多频道广播的系统、方法和装置
US7149230B2 (en) Transport processor for processing multiple transport streams
US20050152546A1 (en) Digital video broadcasting receiver
JP2001069106A (ja) ストリーム多重分離装置
US7248602B2 (en) Flexible filtering
US7489685B2 (en) Digital broadcast receiving apparatus
JP3382021B2 (ja) 番組探索装置および方式
US20030031211A1 (en) Demultiplexing devices and process for at least two transport streams and a corresponding digital stream
EP1039750A2 (en) Video storage and retrieval apparatus
US7478415B1 (en) Digital broadcast receiving system
EP1703733B1 (en) System for processing of television data streams and method for processing of television data streams
US7990390B2 (en) Multi-pass system and method supporting multiple streams of video
US20050008039A1 (en) Digital-broadcast receiving apparatus and method
US7385996B2 (en) Data distribution apparatus and method
US20070143386A1 (en) Method and system for reconfigurable pattern filtering engine
JP4788081B2 (ja) パケットデータ出力装置
JP5013009B2 (ja) トランスポートストリーム再配送システム
JP2004112316A (ja) デジタル放送信号送出処理装置
JPH10290207A (ja) 多重化データ分離装置
JP2000134259A (ja) 伝送方法及び伝送装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070704

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090930

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: 20091102

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: 20091124

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4416361

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121204

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131204

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees