(57)【要約】【課題】DMA待ちをせずにパケット処理をすることが可能なトランスポートストリーム処理装置を提供する。【解決手段】  トランスポートストリーム処理装置１は、複数のパケットデータをパケット毎に記憶するポート別記憶部１２Aと、複数のパケットデータを番組毎に記憶するパケット記憶部３Aと、転送元アドレスと転送サイズと転送先アドレスとを含むDMA情報を記憶するDMA情報記憶部１２Bと、番組毎にDMAを行う指示を示すDMAコマンドを保持するコマンドレジスタ３４と、複数のパケットデータのそれぞれについて、対応する番組を判別し、ポート別記憶部１２Aに記憶された各パケットデータのアドレスを転送元アドレスとし、その各パケットデータのデータサイズを転送サイズとし、DMA情報記憶部１２BにDMA情報を書き込み、かつ番組に対応させてコマンドレジスタ３４にDMAコマンドを書き込むプロセッサ１１とを有する。【選択図】図５
2008118175.tif 000002
【特許請求の範囲】
【請求項１】
複数の番組のデータがパケット単位で多重された１以上のトランスポートストリームにおける複数のパケットデータをパケット毎に記憶する第１の記憶部と、
前記複数のパケットデータを前記番組毎に記憶する第２の記憶部と、
DMAのための、１以上の転送元アドレスと、１以上の転送サイズと、前記番組毎に設定された転送先アドレスとを含むDMA情報を記憶するDMA情報記憶部と、
前記番組毎に、前記第１の記憶部に記憶された前記パケットデータについてDMAを行う指示を示すDMA指示情報を保持するDMA指示情報記憶部と、
前記第１の記憶部に記憶された前記複数のパケットデータのそれぞれについて、対応する番組を判別し、判別された前記番組に対応させて、前記第１の記憶部に記憶された各パケットデータのアドレスを前記転送元アドレスとし、記憶された前記各パケットデータのデータサイズを前記転送サイズとし、前記DMA情報記憶部に前記DMA情報を書き込み、かつ判別された前記番組に対応させて前記DMA指示情報記憶部に前記DMA指示情報を書き込む書込部と、
前記DMA指示情報記憶部中の前記DMA指示情報を検出し、検出された前記DMA指示情報に対応する前記番組の前記パケットデータについて前記DMAを行って、前記第２の記憶部へ転送するDMA部と、
前記パケットデータの前記DMAの終了後、前記DMA情報記憶部に記憶されている、前記パケットデータの前記番組に対応する前記転送先アドレスを前記データサイズ分だけ加算して更新する転送先アドレス更新部と、
を有することを特徴とするトランスポートストリーム処理装置。
【請求項２】
前記第２の記憶部は、前記１以上のトランスポートストリームを記憶し、
前記DMA部は、前記第２の記憶部に記憶された前記１以上のトランスポートストリームを転送して前記第１の記憶部へ記憶させることを特徴とする請求項１記載のトランスポートストリーム処理装置。
【請求項３】
前記第１の記憶部と前記DMA情報記憶部は、物理的に同一の記憶装置内の異なる記憶領域であることを特徴とする請求項１又は２に記載のトランスポートストリーム処理装置。
【請求項４】
前記DMA指示情報記憶部は、前記DMA指示情報をフラグデータ形式で保持することを特徴とする請求項１から３のいずれか１つに記載のトランスポートストリーム処理装置。
【請求項５】
ユーザの前記番組についての視聴又は録画の指示情報を記憶するユーザ指示情報記憶部をさらに有し、
前記書込部は、前記視聴又は録画の指示情報のある前記番組についてのみ、前記DMA指示情報記憶部に前記DMA指示情報を書き込むことを特徴とする請求項１から４のいずれか１つに記載のトランスポートストリーム処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランスポートストリーム処理装置に関し、特に、デジタル放送におけるトランスポートストリームを処理するトランスポートストリーム処理装置に関する。
【背景技術】
【０００２】
従来より、デジタル放送を視聴、録画等するための、デジタル放送対応の各種装置、例えばテレビ（以下、TVと略す）受像機、ハードディスクドライブ（以下、HDDと略す）レコーダ、セットトップボックス等が広く普及している。特に、コンテンツすなわち番組のデータは、国際標準規格であるMPEG2システム規格に規定されたトランスポートストリームのデータ形式に準拠しており、これらの機器では、そのトランスポートストリームが処理されて、番組の表示、録画等が行われる。そして、そのトランスポートストリームのDMA（Direct Memory Access）処理を行う装置についても、種々の提案がされている（例えば、特許文献１、特許文献２参照）。
【０００３】
例えば、TV受像機においては、複数の番組の情報がパケット単位で多重化されたデータであるトランスポートストリームは、入力されると一旦ローカルメモリなどに保存される。通常、このローカルメモリとして、データ用のRAM（以下、DataRAMという）が使用されることが多い。プロセッサは、このローカルメモリからトランスポートストリームのパケット識別子（以下、PIDという）を参照し、予め設定されている抽出用のPIDと比較して、そのトランスポートストリームが抽出すべきパケットであるか否かを判定し、そのトランスポートストリームが抽出すべきパケットであれば、そのパケットをDMAにより、メインメモリへ転送する。
【０００４】
トランスポートストリームは、一般的には、複数番組のビデオ及びオーディオのパケット、さらに複数の番組選択用のセクション情報のパケット等が、時分割多重されて、TV受像機等に入力される。また、TV受像機等においては、そのトランスポートストリームが１ポートだけから入力されるのではなく、複数のポートのそれぞれにトランスポートストリームが入力されるのが一般的である。例えば、地上波デジタル放送を視聴している間に、BSデジタル放送を、いわゆる裏番組としえ録画等できるのは、TV受像機、HDDレコーダ等に複数のポートが設けられているからである。
【０００５】
このような場合、これら複数チャンネルの複数種類のパケットは、PIDによって識別され、プロセッサは、ユーザが視聴等のために選択した１以上の番組のPIDに基づいて、抽出すべきパケットを検出し、それぞれのパケットをメインメモリ上のそれぞれの対応する所定の領域に保存する。このため、このような処理を、１つのトランスポートストリーム処理用のプロセッサで行う場合、通常は、プロセッサは、１つのパケット処理を行った後、次のパケット処理を行うように、複数のパケットについて１つ１つ順次行っていく。メインメモリへパケットを転送するDMAも、同様に1つのパケットのDMAを行った後に次のパケットのDMAが行われるように、複数のパケットについて１つ１つ順次行われていく。また、メインメモリ上に転送される複数のパケットは、パケットのPIDに基づいてコンテンツ毎に所定の記憶領域にそれぞれ連続して書き込まれるため、プロセッサは、メインメモリへの転送先アドレスを順次更新していく必要がある。これらの処理動作は、複数種類のパケットに対して時分割で処理される。具体的には、複数のポートからの複数のパケットがDataRAM内のそれぞれの所定の記憶領域に所定数だけ記憶されると、プロセッサは、DMAコントローラ（以下、DMACという）に対して、メインメモリへのDMA転送を依頼する。
【０００６】
このとき、コンテンツ毎の記憶領域は、有限であるため、あるコンテンツに対応する記憶領域に所定数のパケットが記憶されると、プロセッサは、DMACに対して、その記憶領域からメインメモリの所定の記憶領域への転送を行うように指示する。その結果、各コンテンツに対応する記憶領域には、次々とパケットが記憶され、例えば、記憶されたパケット数が所定量に達すると、メインメモリへ転送される。
【０００７】
しかし、近年は、各ポートに入力されるトランスポートストリームのデータ量が増えてきており、さらに、メインメモリの接続されたバスのトラフィックも増えているため、DMAによりメインメモリへ転送するための、プロセッサのDMA待ち時間が増える傾向にある。  
具体的には、各ポートに入力される、セクション情報等のデータ量が増えてきているため、メインメモリへのDMA転送の発生頻度が多くなることもある。さらに、TV受像機等の機能アップに伴い、サムネール画像、グラフィック画像等の生成のための画像処理等も増えてきているため、メインメモリへのアクセスが増えて、結果としてバストラフィックが増えて、メインメモリへのDMA転送のタイミングが遅延する傾向がある。
【０００８】
そして、DMA転送は、パケット単位で行われるので、その前に設定されたパケットがDMA転送されない限り、次のパケットをDMA転送できないため、プロセッサは、前のパケットのDMA転送が終了して次のパケット転送ができるようになるまで、DMA転送の依頼ができず、DMA待ちの状態となる。
【０００９】
このとき、DMAを制御するプロセッサは、DMAができるようになるまでただずっと待っているわけではなく、前のパケットのDMAが終了するのを待ちながら、別の処理を実行する。特に、通常メインメモリのバスは他のモジュールと共用している場合が多く、メインメモリのバスのトラフィックが混雑している時はDMA待ち時間が長くなる場合がしばしば生じる。そして、プロセッサにおける、このDMA待ちのためのオーバーヘッドは大きい。
【００１０】
さらに、DMA待ち時間が１パケットの入力時間よりも大きくなる場合等は、この待ち時間の影響でプロセッサにおけるDMA処理が切迫してしまうなど、DMA待ちにかかるオーバーヘッドは無視できない量になるという問題がある。
【００１１】
コンテンツ毎の記憶領域では、パケットは上書きされるため、万一、DMA転送の遅延によって、DMA転送されないパケットが上書きされてしまうと、メインメモリには連続したパケットが記憶されないため、番組の画像が正しく再生されないことになってしまう。
【特許文献１】特開2005-210586号公報
【特許文献２】特開2004-40576号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明は、このような問題に鑑みてなされたものであり、DMA待ちをせずにパケット処理をすることが可能なトランスポートストリーム処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一態様によれば、複数の番組のデータがパケット単位で多重された１以上のトランスポートストリームにおける複数のパケットデータをパケット毎に記憶する第１の記憶部と、前記複数のパケットデータを前記番組毎に記憶する第２の記憶部と、DMAのための、１以上の転送元アドレスと、１以上の転送サイズと、前記番組毎に設定された転送先アドレスとを含むDMA情報を記憶するDMA情報記憶部と、前記番組毎に、前記第１の記憶部に記憶された前記パケットデータについてDMAを行う指示を示すDMA指示情報を保持するDMA指示情報記憶部と、前記第１の記憶部に記憶された前記複数のパケットデータのそれぞれについて、対応する番組を判別し、判別された前記番組に対応させて、前記第１の記憶部に記憶された各パケットデータのアドレスを前記転送元アドレスとし、記憶された前記各パケットデータのデータサイズを前記転送サイズとし、前記DMA情報記憶部に前記DMA情報を書き込み、かつ判別された前記番組に対応させて前記DMA指示情報記憶部に前記DMA指示情報を書き込む書込部と、前記DMA指示情報記憶部中の前記DMA指示情報を検出し、検出された前記DMA指示情報に対応する前記番組の前記パケットデータについて前記DMAを行って、前記第２の記憶部へ転送するDMA部と、前記パケットデータの前記DMAの終了後、前記DMA情報記憶部に記憶されている、前記パケットデータの前記番組に対応する前記転送先アドレスを前記データサイズ分だけ加算して更新する転送先アドレス更新部と、を有するトランスポートストリーム処理装置を提供することができる。
【発明の効果】
【００１４】
本発明によれば、DMA待ちをせずにパケット処理をすることが可能なトランスポートストリーム処理装置を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して本発明の実施の形態を説明する。  
まず図１に基づき、本実施の形態に係わるトランスポートストリーム処理装置の構成を説明する。  
（装置構成）  
図１は、本実施の形態に係わるトランスポートストリーム処理装置の構成を示す構成図である。図１は、トランスポートストリーム処理装置としてのTV受像機の一部の構成を示す。本実施の形態では、トランスポートストリーム処理装置として、例としてTV受像機１を示すが、HDDレコーダ、セットトップボックス等であってもよい。  
TV受像機１は、トランスポートストリーム処理部２、メインメモリとしてのSDRAM３、デコーダ４、出力部５、およびホスト６を含んで構成されている。トランスポートストリーム処理部２、SDRAM３、デコーダ４、出力部５、およびホスト６は、互いにメインバスとしてのバス７を介して接続されている。トランスポートストリーム処理部２、SDRAM３、デコーダ４、出力部５、およびホスト６を含む部分は、例えば、１チップの半導体装置として実現されている。
【００１６】
TV受像機１は、図示しない他の構成部も含み、放送受信用アンテナ、通信回線等を介してトランスポートストリーム(TS)を受信し、例えば、トランスポートストリーム中のパケットデータ（以下、パケットという）の中からユーザによって選択された１以上のTV番組のパケットだけが抽出され、その抽出されたパケットは、トランスポートストリーム処理部２を介して、記憶部であるSDRAM３の所定の記憶領域すなわちパケット記憶部３Aに蓄積される。蓄積されたパケットをビデオ信号に変換することによって、TV受像機１は、図示しない液晶表示装置（LCD）等の表示パネルに、ユーザの選択したTV番組を表示する。
【００１７】
そのために、まず、トランスポートストリームは、トランスポートストリーム処理部２に入力される。トランスポートストリーム処理部２は、番組毎のデータとしてSDRAM３のパケット記憶部３Aに、トランスポートストリームから分離したパケットを蓄積する。蓄積されたトランスポートストリームから分離されたパケットは、デコーダ４によって、表示装置に表示可能なビデオデータ等に変換される。その変換されたデータは、SDRAM３の出力データ記憶部３Bに蓄積される。出力データ記憶部３Bに蓄積されたデータは、出力データとして出力部５を介して、表示パネル、スピーカ等からユーザが視聴可能なように出力される。トランスポートストリーム処理部２の構成については、後述する。  
SDRAM３は、上述したように、トランスポートストリームのパケットを番組等別に記憶するパケット記憶部３Aと、デコーダ４によってデコードされて得られたビデオデータ、オーディオデータを記憶する出力データ記憶部３B、等も有するメインメモリである。言い換えると、記憶部としてのSDRAM３は、物理的には１つの記憶装置であり、２つの記憶領域３A,３Bを含むものである。
【００１８】
デコーダ４は、パケットが入力されると、ビデオデータ、オーディオデータ等に変換する回路である。デコーダ４は、ホスト６からの指示により、パケット記憶部３Aからパケットを読み出して、パケットをビデオデータ等に変換し、その変換したビデオデータ等を、出力データ記憶部３Bに記憶する。
【００１９】
出力部５は、ビデオ記憶部３Bからのビデオデータを入力して、表示装置（図示せず）に画像を表示できるように出力するための回路である。  
ホスト６は、インターフェース６ａを介して、バス７に接続され、ユーザからの指示に応じて、種々の機能を実行するためのプロセッサである。ユーザは、図示しないリモコン等を用いて、視聴したい番組の選択を行うことができ、そのユーザの選択したコマンドは、ホスト６に入力される。ホスト６は、ユーザの番組についての視聴又は録画の指示情報を記憶するユーザ指示情報記憶部を構成し、後述するように、その視聴又は録画の指示情報のある番組のパケットについてのみ、DMAが行われる。
【００２０】
回路間でのパケット及びビデオデータの入出力は、バス７を介して行われるが、図示しない調停回路によって、各回路のバス７の使用権が調停される。
【００２１】
トランスポートストリーム処理部２は、プロセッサ１１と、DataRAM１２と、入力インターフェース部１３と、DMAC１４とを含む。プロセッサ１１と、DataRAM１２と、入出力インターフェース部１３と、DMAC１４とは、互いに、ローカルバスとしてのバス１５を介して接続されている。  
入力インターフェース部１３は、ここでは、４つのDMAC１３ａ，１３ｂ，１３ｃ，１３ｄを含んで構成される。本実施の形態では、４つの入力ポート（以下、ポートという）から、それぞれ、例えば地上波デジタル放送、BSデジタル放送、CSデジタル放送等のトランスポートストリームが入力される。４つのDMAC１３ａ，１３ｂ，１３ｃ，１３ｄは、それぞれ、４つのポートに対応して設けられている。
【００２２】
本実施の形態では、４つのポートから入力されるトランスポートストリームに含まれる全番組、すなわち全コンテンツの総数は、３１である。例えば、ビデオデータの番組が１１個、オーディオデータの番組が１０個、セクション情報が１０個である。
【００２３】
図２は、受信するトランスポートストリームのパケットの例を示す図である。図２は、４つのポートから入力される４つのトランスポートストリームのパケットの例を示す。図２では、矢印で示すように、図面に向かって左から右へ、時間（ｔ）が進んでいる。各トランスポートストリームは、複数の番組のデータがパケット単位で多重されている。
【００２４】
ポート0からトランスポートストリーム0(以下TS0)が入力され、ポート1からトランスポートストリーム1(以下TS1)が入力され、ポート2からトランスポートストリーム2(以下TS2)が入力され、ポート3からトランスポートストリーム3(以下TS3)が入力される。すなわち、トランスポートストリームTSi（iは、ポートの番号を示し、ここでは、0から3のいずれかである）が、ポートiから入力される。
【００２５】
ビデオ、オーディオ又はセクション情報の各パケットは、ポート毎に、コンテンツすなわち番組の識別子を含む。例えば、ビデオのパケット（Video1_2）であれば、番組の識別子が「１」であることを意味する。同様に、オーディオのパケット（Audio4_0）であれば、番組の識別子が「４」であることを意味する。さらに、セクション情報のパケット（Section4_1）は、セクション情報の識別子が「４」であることを意味する。以下の説明では、番組k（kは、番組の識別子を示し、ここでは、0から31のいずれかである）のビデオ、オーディオ、セクション情報の各パケットは、それぞれVideok_n, Audiok_n, Sectionk_n（nは、各パケットの時間順を示し、0,1,2..である)として標記される。
【００２６】
図２に示すように、トランスポートストリームTS0は、ビデオのパケット（Video0_0）に続いてオーディオのパケット（Audio0_0）が入力されている。さらに、その後、ビデオのパケット（Video1_0）が入力され、続いてオーディオのパケット（Audio1_0）、ビデオのパケット（Video0_1）、ビデオのパケット（Video0_2）が続く。その後、２つのセクション情報のパケット（Section0_0）、（Section0_1）が入力されている。他のポートに入力されるトランスポートストリームも、同様に、ビデオ、オーディオ、セクションのパケットを含んでいる。セクションの情報は、各コンテンツと、PIDとの対応関係の情報等である。  
トランスポートストリームTS0からTS3はほぼ同時に入力され、プロセッサ１１は、それぞれのトランスポートストリームを、時分割で順次処理する。
【００２７】
図２に示すように、各番組のパケットは、時間順に受信されるが、各トランスポートストリームには、各番組のパケットが混在している。そして、図２に示す、４つのトランスポートストリームが、それぞれ対応するDMAC１３ａ，１３ｂ，１３ｃ，１３ｄによって、DataRAM１２に転送されて蓄積される。  
図３は、DataRAM１２のポート別バッファ、すなわちポート別記憶部１２Aの構成を説明するための図である。DataRAM１２は、ポート毎の記憶領域を含むポート別記憶部１２Aを有する。具体的には、ポート別記憶部１２Aは、複数のポート別記憶領域PR0,PR11,PR2,PR3を含む。ポート0にパケットが入力される度に、DMAC１３ａによって、記憶領域PR0に、ポート0からのトランスポートストリームTS0のパケットが蓄積される。同様に、ポート1,2,3のそれぞれにパケットが入力される度に、それぞれ、DMAC１３ａ，１３ｂ，１３ｃによって、ポート別記憶領域PR1,PR2,PR3にポート1,2,3からのトランスポートストリームTS1,TS2,TS3のパケットが蓄積される。
【００２８】
図３に示すように、例えば、ポート別記憶領域PR0には、ビデオのパケット（Video0_0）が最初に記憶され、その次にオーディオのパケット（Audio0_0）が記憶され、さらにその次にビデオのパケット（Video1_0）が記憶され、さらにその次にオーディオのパケット（Audio1_0）が記憶されている。同様に、ポート別記憶領域PR1には、ビデオのパケット（Video3_0）が最初に記憶され、その次にビデオのパケット（Video3_1）が記憶され、さらにその次にオーディオのパケット（Audio3_0）が記憶され、さらにその次にビデオのパケット（Video4_0）が記憶されている。
【００２９】
各ポート別記憶領域PRには、パケットが記憶領域の先頭から順番にパケット毎に記憶されていく。各ポート別記憶領域PRの記憶容量は、所定の大きさしか、例えばパケット８つ分の記憶容量しかないため、トランスポートストリーム毎にパケットが記憶されていき、そのポート別記憶領域が満杯になると、再びその記憶領域の先頭から記憶していく。すなわち、ポート別記憶領域PRのそれぞれには、パケットは、矢印A1で示すように先頭から順に記憶されていき、かつ矢印A2で示すように循環しながら上書きして記憶されていく。
【００３０】
後述するように、複数のポート別記憶領域PR のそれぞれにパケットが記憶され、そのパケットがユーザの視聴、録画等している番組の場合に、プロセッサ１１は、DMAC１４により、SDRAM３へその記憶されたパケットをDMAにより転送する。具体的には、プロセッサ１１は、複数のポート別記憶領域PR のそれぞれにパケットが記憶されるかを監視する。パケットが記憶されると、プロセッサ１１は、DataRAM１２のDMA情報記憶部１２BへDMA情報を書き込み、かつユーザが視聴している等の番組の場合には、プロセッサ１１は、DMA指示情報記憶部（具体的には、後述するコマンドレジスタ３４）へのDMA指示情報（具体的には、後述するフラグデータ形式の「１」ビットデータ）の書き込みを行うことによって、ポート別記憶領域PRに記憶されたパケットをSDRAM３に転送する。
【００３１】
なお、複数のポート別記憶領域PR のそれぞれに記憶されたパケットの量が所定量だけ記憶され、それらのパケットがユーザの視聴、録画等している番組の場合に、プロセッサ１１は、DMAC１４により、SDRAM３へその記憶されたパケットをDMAにより転送するように、DMA情報記憶部１２BへのDMA情報の書き込み、及びDMA指示情報記憶部へのDMA指示情報の書き込みを行うようにしてもよい。具体的には、プロセッサ１１は、複数のポート別記憶領域PR のそれぞれに記憶されたパケット数を監視する。パケット数が所定数以上になると、プロセッサ１１は、DMA情報記憶部１２BへDMA情報を書き込み、かつそれらのパケットがユーザの視聴、録画等している番組の場合に、DMA指示情報記憶部へDMA指示情報の書き込みを行うことによって、パケット数が所定数以上になったポート別記憶領域PRに記憶されたパケットをSDRAM３に転送するようにしてもよい。
【００３２】
図４は、SDRAM３内のパケット記憶部３Aに記憶されるパケットを説明するための図である。SDRAM３のパケット記憶部３Aは、番組毎にパケットを記憶する複数の記憶領域、すなわち複数のパケット記憶領域を含む。図４に示すように、Video0により特定されるビデオ番組のパケットは、パケット記憶部３A内の対応する記憶領域２１に、時間順に記憶される。同様に、Video3により特定される番組のパケットは、パケット記憶部３A内の対応する記憶領域２３に、時間順に記憶される。また、図４に示すように、Audio0により特定されるオーディオ番組のパケットは、パケット記憶部３A内の対応する記憶領域２２に、時間順に記憶される。同様に、Audio3により特定される番組のパケットは、パケット記憶部３A内の対応する記憶領域２４に、時間順に記憶される。
【００３３】
DMA部を構成するDMAC１４は、DMAによって、ポート別記憶部１２Aから、PIDにより指定された番組に対応するパケット記憶部３A内の対応するパケット記憶領域に、パケットを転送する。従って、SDRAM３内では、複数のパケットが、番組別に、かつ時間順に記憶される。  
また、一つのパケットは、例えば１８８バイトのデータ長を有するが、PID等の部分のデータ長は変化するので、パケット中のビデオデータあるいはオーディオデータの有効部分のデータ長は、変化する。例えば、PIDを含むヘッダー部分が４バイトであれば、有効部分は１８４バイトになるが、ヘッダー部分が１０バイトであれば、有効部分は１７８バイトとなる。従って、図４に示すように、各パケット記憶領域には、各番組の符号化されたビデオデータあるいはオーディオデータの有効部分のデータのみが、時間順に記憶されていくので、デコーダ４は、各パケット記憶領域から読み出したデータをそのまま、表示装置等で表示できる形式のビデオデータ等にデコードすることができる。
【００３４】
（トランスポートストリーム処理部の構成）  
次に、トランスポートストリーム処理部２の構成について説明する。図５は、トランスポートストリーム処理部２の構成を示すブロック図である。  
図５に示すように、DMAC１４は、DMA情報保持レジスタ３１と、リードライト制御部３２と、コマンド検出部３３と、DMA指示情報記憶部としてのコマンドレジスタ３４を含む。
【００３５】
トランスポートストリーム処理部２において、プロセッサ１１，DataRAM１２、入力I/F１３、及びDMAC１４は、バス１５を介して互いに接続されている。バス１５は、制御信号の送受信を行うための制御バス１５ａと、データ信号を送受信するためのメモリバス１５ｂからなる。
【００３６】
DMA情報保持レジスタ３１は、転送元アドレスレジスタ３１ａと、転送サイズレジスタ３１ｂと、転送先アドレスレジスタ３１ｃを含む。  
DMA情報保持レジスタ３１には、後述するDMA情報記憶部１２Bから読み出されたDMA情報が保持される。転送元アドレスレジスタ３１ａには、読み出された転送データの転送元のアドレスが設定されて記憶される。転送サイズレジスタ３１ｂには、読み出された転送データのデータ量すなわちデータサイズが設定されて記憶される。転送先アドレスレジスタ３１ｃには、読み出された転送データの転送先のアドレスが設定されて記憶される。転送元アドレス、転送サイズ及び転送先アドレスがDMA情報保持レジスタ３１に設定されると、その設定された情報に基づいてDMAC１４はDMAを実行することができる。
【００３７】
リード／ライト制御部３２は、後述するコマンド検出部３３によりDMA指示情報の検出された番組（コマンドレジスタ３４において「１」ビットがある番組）のパケットの転送元アドレスと、転送サイズと、転送先アドレスとを、DMA情報記憶部１２Bから読み出して、それぞれをDMAC１４内の転送元アドレスレジスタ３１ａと、転送サイズレジスタ３１ｂと、転送先アドレスレジスタ３１ｃに書き込む機能を有する回路である。  
また、リード／ライト制御部３２は、DMA情報保持レジスタ３１に記憶された情報に基づいて、DMA転送するパケットを読み出してDMA転送処理を行う機能を有する回路である。
【００３８】
さらに、リード／ライト制御部３２は、DMAが終了すると、DataRAM１２中の、その終了したDMA情報記憶部１２B中の番組の転送先アドレスの更新を行う機能を有する回路である。言い換えると、リード／ライト制御部３２は、パケットのDMAの終了後、DMA情報記憶部１２Bに記憶されている、そのパケットの番組に対応する転送先アドレスをデータサイズ分だけ加算して更新する転送先アドレス更新部を構成する。
【００３９】
コマンド検出部３３は、後述するコマンドレジスタ３４の中に、所定の情報、ここではDMA指示情報を意味する「１」ビットがあるか、否かを検出する回路である。ある番組に「１」が立っているということは、ユーザが視聴又は録画をする番組のパケットが入力あるいは受信されたことを意味する。
【００４０】
コマンドレジスタ３４は、番組毎に、所定の情報、ここでは「１」ビットを記憶するためのレジスタ回路である。言い換えると、コマンドレジスタ３４は、番組毎に、ポート別記憶部１２Aに記憶されたパケットについてDMAを行う指示を示すDMA指示情報を保持するDMA指示情報記憶部を構成する。
【００４１】
次に、DMA情報について説明する。図６は、DataRAM１２のDMA情報記憶部１２Bの構成を説明するための図である。DMA情報記憶部１２B は、DataRAM１２中に設けられる。DMA情報記憶部１２Bは、番組別の複数のDMA情報記憶領域を含む。具体的には、DMA情報記憶部１２Bは、３１個の番組について番組別に、１以上のDMA情報を記憶する、複数のDMA情報記憶領域0,1,2,3,〜,31を含む。DMA情報記憶領域k（k=0,1,2,3,〜,31）には、プロセッサ１１によって、各番組について１以上のDMA情報が設定されて記憶され得る。本実施の形態では、図６に示すように、DMA情報記憶領域0には、番組0について、４つのDMA情報が設定されて記憶される。同様に、DMA情報記憶領域1,2,3から31には、番組1,2,3,〜,31について、それぞれ４つのDMA情報がそれぞれ設定されて記憶される。具体的には、各DMA情報記憶領域は、４つの転送元アドレスのデータ、４つの転送サイズのデータ、一つの転送先アドレスのデータを記憶する領域を有する。
【００４２】
すなわち、DataRAM１２には複数のDMA情報記憶領域が、抽出可能な全トランスポートストリームのパケット種類の数だけある。本実施の形態では、その数は0〜31であるが、任意の数で良い。各DMA情報記憶領域は、抽出可能な全トランスポートストリームの全パケット種類に一対一に対応している。また、上述したように、一つのDMA情報記憶領域内には、本実施の形態では、それぞれが0〜3の、複数の転送元アドレスと複数の転送サイズと、一つの転送先アドレスとを含む。この0〜3は、各種類においてパケットが送られてくるパケットの順番に対応し、時間順は0から3の順に対応し、3まで行ったら0に戻るものとする。なお、この0〜3も任意の数で良い。
【００４３】
このように、DMA情報記憶部１２Bは、全ての番組、すなわち全ての種類について別々にDMA情報を保持でき、更に、DMA情報記憶部１２Bには、各番組について複数の、ここでは４つのDMA情報をスタックできるように記憶領域が確保されている。
【００４４】
図７は、DMAC１４内のコマンドレジスタ３４のデータ構造を説明するための図である。DMA指示情報記憶部としてのコマンドレジスタ３４は、表形式のデータを記憶するレジスタである。図面に向かって横方向に並んだ列番号は、番組（あるいはパケットの種類）の識別子に対応し、縦方向に並んだ行番号0〜3は、各番組のDMA情報記憶領域kの0〜3に対応する。後述するように、コマンドレジスタ３４は、DMA転送が必要な番組のパケットがあるか否かを示すコマンド情報、言い換えるとパケットのDMA指示情報を保持するレジスタということができる。
【００４５】
より具体的に説明すれば、DMAC１４内のコマンドレジスタ３４は、DMA情報記憶部１２Bにおける0〜3、及び0〜31に対応して、それぞれ0〜3行、及び0〜31列になっている。この行の番号は、各DMA情報記憶領域k内の転送元アドレスの番号と転送サイズの番号に対応している。この列の番号は、DataRAM１２内のDMA情報記憶領域kの番号に対応している。またこのコマンドレジスタ３４は、各チャンネルすなわち各番組に対して１ビットで良く、本実施の形態では、１２８（＝３２×４）ビットのレジスタにすぎない。１ビットデータの有無のチェックは、時間的にも速くできるというメリットがある。
【００４６】
DMAの実行順は、コマンドレジスタ３４のフラグデータである１ビットデータのチェック順となる。後述するように、そのチェック、すなわちフラグビットの検出の順序は、0〜3行については0から3の順で、0〜31列については0から31の順である。つまり、フラグビットの検出は、全体としては、0行目について0列から31列まで行い、その次に、1行目の0列から31列まで行い、次に2行目の0列から31列まで行い、そして、3行目の0列から31列まで行い、次は、0行目に戻り、0行目の0列から31列まで行い、以下は、上記と同様の繰り返しとなる。
【００４７】
図８は、図６のDMA情報記憶部１２BにおけるDMA情報記憶領域と、パケットのPIDにより特定される番組との対応関係の情報が登録されたDMA情報記憶領域／番組対応テーブル１２Cの例を示す図である。DMA情報記憶領域／番組対応テーブル１２Cは、DataRAM１２内に記憶される。プロセッサ１１は、図８のDMA情報記憶領域／番組対応テーブル１２Cを参照して、読み出したパケットのPIDに基づいて、図６のDMA情報記憶部１２Bの、どのDMA情報記憶領域にDMA情報を書き込むか決定することができる。言い換えると、プロセッサ１１は、ポート別記憶部１２Aに記憶された複数のパケットデータのそれぞれについて、対応する番組を判別する判別部を構成する。
【００４８】
（動作）  
次に、上述した構成に係るTV受像機１の動作を説明する。図９は、パケットを受信したときのプロセッサ１１の処理の状態の遷移を示す図である。  
図３のポート別記憶部１２A内の各ポート別記憶領域PR0,PR1,PR2,PR3には、入力I/F１３から次々と受信したパケットがポート別に記憶されていく。プロセッサ１１は、各ポート別記憶領域PR0,PR1,PR2,PR3を監視し、新たにパケットが受信されると、そのパケットのPIDを読み込む状態４１にある。プロセッサ１１は、読み込んだPIDから番組すなわちパケット種類を判別することができるので、図８のDMA情報領域／番組対応テーブル１２Cを参照して、その判別した番組に対応するDMA情報記憶部１２B内のDMA情報記憶領域を特定することができる。
【００４９】
プロセッサ１１は、状態４１においてパケットを受信してPIDを読み込むと、特定したDMA情報記憶領域に、DMA情報を書き込み、設定する処理の状態４２に遷移する。書き込まれるDMA情報は、転送元アドレスと転送サイズの情報である。転送元アドレスは、ポート別記憶部１２Aに記憶されたパケットのアドレスであり、転送サイズは、受信したパケットのヘッダー部分に含まれるデータサイズのデータである。
【００５０】
さらに、プロセッサ１１は、状態４２においてDMA情報を書き込む設定処理が終了すると、コマンドレジスタ３４の対応する位置にフラグ情報としての「１」を書き込んで設定する処理の状態４３に遷移する。
【００５１】
すなわち、プロセッサ１１は、ポート別記憶部１２Aに記憶された各パケットのアドレスを転送元アドレスとし、記憶された各パケットタのデータサイズを転送サイズとし、DMA情報記憶部１２BにDMA情報を書き込み、かつ判別された番組に対応させてコマンドレジスタ３４に「１」ビットを書き込む書込部を構成する。
【００５２】
例を挙げて説明すれば、ポート0にパケット（Video0_0）が入力された場合、プロセッサ１１は、DMA情報領域／番組対応テーブル１２Cを参照することにより、読み出したPIDから、番組に対応するDMA情報記憶領域がDMA情報記憶部１２B内のDMA情報記憶領域0であることを決定することができる。  
そして、プロセッサ１１は、ポート別記憶部１２Aに保持されているパケット（Video0_0）のアドレスを、DMA情報記憶部１２BのDMA情報記憶領域0の転送元アドレス0に書き込み、その受信したパケット（Video0_0）のデータサイズを、DMA情報記憶領域0の転送サイズ0に書き込む。  
さらに、プロセッサ１１は、そのパケット（Video0_0）の番組がユーザがTV受像機１によって視聴あるいは録画等の対象となっている場合、コマンドレジスタ３４中においてその番組に対応するDMA情報記憶領域0の位置に「１」ビットを設定する。すなわち、コマンドレジスタ３４の0行0列目に、DMAコマンドを示す「１」ビットを書き込む。
【００５３】
そのパケット（Video0_0）の番組がユーザがTV受像機１によって視聴あるいは録画等の対象となっているか否かは、ユーザがリモコン等により視聴コマンド、録画コマンド等の指示を行うことによって、ホスト６に指示情報が記憶されている。よって、プロセッサ１１は、ユーザ指示情報記憶部あるいはユーザ指示情報管理部としてのホスト６からユーザの指示情報を得ることによって、そのパケットの番組がユーザがTV受像機１によって視聴あるいは録画等の対象となっているか否かを判定することができる。
【００５４】
次に、プロセッサ１１は、ポート1に同時に入力されたパケット（Video3_0）のPID検出を行い、DMA情報領域／番組対応テーブル１２Cを参照することにより、読み出したPIDから、番組に対応するDMA情報記憶領域がDMA情報記憶部１２B内のDMA情報記憶領域3であることを決定することができる。  
そして、プロセッサ１１は、ポート別記憶部１２Aに保持されているパケット（Video3_0）のアドレスを、DMA情報記憶部１２BのDMA情報記憶領域3の転送元アドレス0に書き込み、その受信したパケット（Video3_0）のデータサイズを、DMA情報記憶領域3の転送サイズ0に書き込む。  
そして、プロセッサ１１は、そのパケット（Video3_0）の番組がユーザの視聴対象である場合には、コマンドレジスタ３４中においてその番組に対応するDMA情報記憶領域3の位置に「１」を設定する。すなわち、コマンドレジスタ３４の0行3列目に、DMAコマンドを示す「１」ビットを書き込む。
【００５５】
以下同様に、プロセッサ１１は、順次、受信したパケットについて上述した処理を行う。番組すなわちパケットの種類は、DMA情報記憶部１２BのDMA情報記憶領域の番号と、コマンドレジスタ３４の列方向の番号に対応する。さらに、同一の番組に関しては、各パケットは時間順に区別される。
【００５６】
例えば、Video0の番組に注目して、時間順について説明すると、トランスポートストリームTS0のあるパケットのPIDを検出した結果、そのパケットがパケット（Video0_1）と分かると、プロセッサ１１は、DMA情報記憶領域0の転送元アドレス1と転送サイズ1にそれぞれの情報を書き込む。この時、転送先アドレスは何もせずそのままで良い。次にプロセッサ１１は、コマンドレジスタ３４の1行0列目に「１」ビットを書き込む。他の番組についても、パケットの時間順はDMA情報記憶領域内の転送元アドレスの番号と転送サイズの番号に対応し、DMA情報記憶領域内の転送元アドレスの番号と転送サイズの番号は、コマンドレジスタ３４の行方向の番号に対応する。
【００５７】
そして、図６の例では、各DMA情報記憶領域は、上述したように４つの転送元アドレスと、４つの転送サイズを記憶できるように構成されている。よって、上述したように、最初に、受信したパケット（Video0_0）を受信し、そのパケット（Video0_0）を受信した後にパケット（Video0_1）を受信したときは、転送元アドレスは、DMA情報記憶領域0の転送元アドレス1に書き込み、その受信したパケット（Video0_1）のデータサイズを、転送サイズ1に書き込む。同様に、３つ目のパケット（Video0_2）、４つ目のパケット（Video0_3）が受信されると、それぞれ転送元アドレスは、DMA情報記憶領域0の転送元アドレス2,3に書き込み、その受信したパケットのデータサイズを、転送サイズ2,3に書き込む。
【００５８】
さらに、５つ目のパケット（Video0_4）と６つ目のパケット（Video0_5）が受信されると、それぞれ、それぞれ転送元アドレスは、DMA情報記憶領域0の転送元アドレス0,1に書き込み、その受信したパケットのデータサイズを、転送サイズ0,1に書き込む、というように、DMA情報記憶領域0の複数の転送元アドレスと複数の転送サイズは、循環して上書きされるように、書き込みの制御が行われる。  
以上のようにして、DMA情報と、DMAすべきパケットの有無の情報が、トランスポートストリームを処理するプロセッサ１１によって設定される。
【００５９】
転送先アドレスには、最初のパケット（Video0_0）が受信されるまでは、SDRAM３のパケット記憶部３Aにおける、パケット（Video0_0）に対応する記憶領域２１の先頭アドレスが設定される。後述するように、その後は、受信したパケットの有効部分のデータ長だけ加算されたアドレスが設定される。なお、最初の各転送先アドレスは、ホスト６から与えられて設定される。
【００６０】
次に、DMAC１４の動作について説明する。図１０は、DMAC１４における処理の状態の遷移を示す図である。  
DMAC１４は、初期状態として、コマンド検出部３３は、コマンドレジスタ３４のビットデータを、上述した順番にチェックし、「１」であるか否かを判定する状態５１にある。「１」で無ければ、DMAC１４は状態５１にあるが、チェックしたデータが「１」であれば、DMA情報記憶部１２Bの対応するDMA情報記憶領域からDMA情報を読み出す処理を行う状態５２に遷移する。
【００６１】
状態５２において、リード／ライト制御部３２によるDMA情報の読み出し処理が終了すると、リード／ライト制御部３２は、その読み出したDMA情報を、DMA情報保持レジスタ３１に書き込む処理を行う状態５３に遷移する。状態５３において、DMA情報の書き込み処理が終了すると、DMAC１４のリード／ライト制御部３２は、DMA転送の処理を行う状態５４に遷移する。
【００６２】
状態５４においてDMA転送が終了すると、DMAC１４のリード／ライト制御部３２は、転送先アドレスを更新するための転送先アドレスの計算処理を行う状態５５に遷移する。状態５５において転送先アドレスの計算が終了すると、DMAC１４のリード／ライト制御部３２は、計算して得られた転送先アドレスを、DMA情報記憶部１２Bの対応する領域に書き込む状態５６に遷移する。その状態５６における転送先アドレスの書き戻し処理が終了すると、DMAC１４は、初期状態５１に戻る。
【００６３】
具体的に説明すれば、まず、コマンド検出部３３が、コマンドレジスタ３４の行列を順に確認する。0行0列目に「１」ビットがあると、リード／ライト制御部３２は、DataRAM１２のDMA情報領域0から、転送元アドレス0と転送サイズ0と転送先アドレスのそれぞれのデータを取得して、DMA情報保持レジスタ３１に書き込む。転送元アドレスは入力されたパケットが保持されている記憶領域の開始アドレスを示し、転送サイズはそのパケットの有効部分のデータサイズが設定されている。リード／ライト制御部３２は、そのDMA情報保持レジスタ３１のDMA情報に基づいて、DataRAM１２のポート別記憶領域１２Aに格納されているパケットを読み出す。そのパケットの読み出しが終了すると、リード／ライト制御部３２は、転送先アドレスで示されているSDRAM３のパケット記憶部３AのVideo0に対応する記憶領域２１にバス７を通じて書き込むことにより、SDRAM３へのDMA転送を行うことができる。リード／ライト制御部３２は、このDMAが終了すると、転送先アドレスにデータサイズ分を加算した値を、DataRAM３のDMA情報領域0の転送先アドレスに書き込み、転送先アドレスを更新する。そして、リード／ライト制御部３２は、コマンドレジスタ３４の0行0列目のデータを「０」に書き込み、変更してDMAが終了したことを示すようにする。  
以上の動作により、パケット（Video0_0）が転送される。
【００６４】
本実施の形態では、入力されるトランスポートストリームのパケットを保持する記憶領域と、DMA情報を保持する記憶領域は、同じ記憶装置すなわちDataRAM１２内の異なる記憶領域にあるため、DataRAM１２に対するDMA情報のリードとライトは、パケットのリードとライトの経路と同一になっている。
【００６５】
次に、DMAC１４は、0行1列、0行2列、・・と順に、「１」ビットの有無を確認するが「１」ビットがなければ、行列のその要素については何の処理もしない。次に0行3列の要素を確認してして「１」ビットがあれば、その要素について、上述したパケット（Video0_0）の時と同様にDMA転送を行い、パケット（Video3_0）をSDRAM３の対応する記憶領域に書き込む。以下、同様にして、順に0行31列まで同様の処理が行われていく。次に、1行0列目の「１」ビットを確認すると「１」ビットが立っているので、DataRAM１２内のDMA情報領域0のDMA情報を読み出す。そのとき、転送元アドレスは転送元アドレス1を、転送サイズは転送サイズ1のそれぞれのデータが読み出される。それ以外の動作は0行目のDMA処理を実行するのと同様である。以下、このような処理が順次行われいく。
【００６６】
このように処理をしていくと、コマンドレジスタ３４の列方向は抽出するべき全種類のパケットに対応しているので、プロセッサ１１が、設定すべきDMA情報を設定できない状態がない。また、コマンドレジスタ３４の行方向は、パケット時間順に対応しているので、例えばVideo0ではVideo0_0, Video0_1, Video0_2, 及びVideo0_3の４つ「１」ビット、すなわち４つのDMAコマンドが保持されている。従って、本実施の形態では、Video0のパケットが連続して入力されても4パケット時間まで、プロセッサ１１は、DMA待ちをしなくて良い。
【００６７】
なお、プロセッサ１１が「１」ビットのDMAコマンドを書き込もうとしたときに、前のDMAが終了せず「１」ビットのままであれば、割込みを発生して通知するようにしても良い。
【００６８】
また、DataRAM１２内のDMA情報は、従来からプロセッサ１１が処理するためにほぼ同数のDMA情報を保持しているので、本実施の形態の構成をとることによりDataRAM１２の容量が従来に比べて大きくなるということはない。
【００６９】
なお、以上の実施の形態では、入力されるトランスポートストリームは、複数のポートから入力されていたが、変形例として、トランスポートストリームがメインメモリのSDRAM３に入力される場合にも、上述した構成は適用できる。
【００７０】
例えば、トランスポートストリームが、図示しないネットワークを介してTV受像機１に入力される場合、トランスポートストリームは、バス７を介してSDRAM３内の、パケットバッファとしての別の記憶領域３C（図１参照）に記憶される。その別の記憶領域３Cにポート別記憶部を設け、そのポート別記憶部に、ポート別にトランスポートストリームが記憶される。各トランスポートストリームを、DMAC１４によるDMA転送により、プロセッサ１１のDataRAM１２中のポート別記憶部１２Aに移動して記憶する。そして、上述した実施の形態と同様に、プロセッサ１１がそのDataRAM１２中のポート別記憶部１２A内のパケットを読み出してPID検出を行い、DMA転送すべき番組のパケットであれば、そのパケットは、SDRAM３中のトランスポートストリームの上述した別の記憶領域３Cとは異なる、それぞれのパケット記憶領域に書き込まれる。  
その場合、SDRAM３からDataRAM１２へ読み出すトランスポートストリームの数だけDMA情報領域の数は増加され、かつ、そのDMAの転送方向が逆になる。
【００７１】
さらに、その場合、DMAC１４においては、転送先アドレスは上述した転送元アドレスになり、転送元アドレスは、SDRAM３側のアドレスである。また転送元アドレスは上述した転送先アドレスになり、転送先アドレスは、DataRAM１２側のアドレスである。このようにしても、上述した実施の形態と同様に、プロセッサ１１は、DMA待ちをしなくてもよい。
【００７２】
以上のように、本実施の形態のトランスポートストリーム処理装置は、トランスポートストリーム処理をするチャンネル毎に、すなわち番組毎に、DMA指示情報を保持するコマンドレジスタと、プロセッサ１１に関わるローカルメモリであるDataRAM１２内に設けられ、転送元アドレスと転送サイズと転送先アドレスを含むDMA情報とを保持するDMA情報記憶領域とを備え、DMA指示情報に対応する番組パケットを、DMA情報に基づいて、メインメモリであるSDRAM３へDMAにより転送する。
【００７３】
DMA終了後はローカルメモリ内の転送先アドレスをデータサイズ分だけ加算して更新することで、トランスポートストリームのパケットをSDRAM３へ転送するときにプロセッサ１１のDMA待ちを必要としないトランスポートストリーム処理装置を構成することができる。
【００７４】
また、ユーザの視聴等する番組の場合だけ、コマンドレジスタに「１」ビットを立てるようにしたので、DMAのバストラフィックへの影響を少なくすることができる。  
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００７５】
【図１】本発明の実施の形態に係わるトランスポートストリーム処理装置の構成を示す構成図である。
【図２】本発明の実施の形態に係わるトランスポートストリームのパケットの例を示す図である。
【図３】本発明の実施の形態に係わるポート別記憶部の構成を説明するための図である。
【図４】本発明の実施の形態に係わる、パケット記憶部３Aに記憶されるパケットを説明するための図である。
【図５】本発明の実施の形態に係わるトランスポートストリーム処理部の構成を示すブロック図である。
【図６】本発明の実施の形態に係わるDMA情報記憶部の構成を説明するための図である。
【図７】本発明の実施の形態に係わるコマンドレジスタのデータ構造を説明するための図である。
【図８】本発明の実施の形態に係わるDMA情報記憶領域／番組対応テーブルの例を示す図である。
【図９】本発明の実施の形態に係わる、パケットを受信したときのプロセッサの処理の状態の遷移を示す図である。
【図１０】本発明の実施の形態に係わる、DMACにおける処理の状態の遷移を示す図である。
【符号の説明】
【００７６】
１  TV受像機、２  トランスポートストリーム処理部、３  SDRAM、４  デコーダ、５  出力部、６  ホスト、７，１５  バス、１４  DMAC、１５ａ  制御バス、１５ｂ  メモリバス
【図１】
2008118175.tif 000003
【図２】
2008118175.tif 000004
【図３】
2008118175.tif 000005
【図４】
2008118175.tif 000006
【図５】
2008118175.tif 000007
【図６】
2008118175.tif 000008
【図７】
2008118175.tif 000009
【図８】
2008118175.tif 000010
【図９】
2008118175.tif 000011
【図１０】
2008118175.tif 000012