説明

データ分離装置、ストリーム再生装置、およびデータ分離方法

【課題】 固定データ長のデータ群により構成される入力データのデータ分離処理を、複雑なアドレス制御を用いることなく高速化する。
【解決手段】 同容量のバッファ領域であるバッファヘッド611aおよびバッファテイル611bを備えたパックヘッダ解析用のバッファ611を用い、一方のバッファ領域に格納されたパックの解析結果に応じて、当該バッファ領域から必要なパケットおよびシステムヘッダのデータを読み出すと同時に、他方のバッファ領域に対してバッファ5からの次のパックを書き込み、かつ、バッファ5からのパックを各バッファ領域に交互に転送するように、バッファ5とバッファ611との間、およびバッファ611とバッファ612との間のDMAコントローラにそれぞれ転送先アドレス、転送元アドレスを指定してDMA転送を実行させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データストリームなどの入力データを解析して必要なデータを分離するデータ分離装置、これを備えたストリーム再生装置、およびデータ分離方法に関し、特に、入力データが固定データ長のデータ群により構成される場合に適用されるデータ分離装置、ストリーム再生装置およびデータ分離方法に関する。
【背景技術】
【0002】
近年、MPEG(Moving Picture Experts Group)方式などの画像の圧縮符号化技術の進歩などに伴い、画像信号をデジタル化して取り扱うことが一般的になっている。例えば映画などのビデオコンテンツを提供するための可搬型記録メディアとしては、従来のビデオテープに代わりDVD(Digital Versatile Disk)が一般的になりつつある。また、放送を通じて受信したコンテンツをDVDやHDD(Hard Disk Drive)にデジタル記録することが可能なビデオレコーダの普及も進んでいる。
【0003】
DVDでは、画像の符号化方式としてMPEG2方式が採用されており、ビデオやオーディオのエレメンタリストリーム(ES)がプログラムストリーム(PS)として多重化されて記録されている。そして、再生の際には、ディスクから読み出したPSからESを抽出することで、各ESを復号化することができる。PSからのESの抽出はデマルチプレクサ(DeMUX)が行い、このDeMUXの機能は、最近ではCPUによるソフトウェア処理で実現されることが多い。
【0004】
図9は、DeMUX処理時に使用される従来のバッファの構成例を示す図である。
DVDなどの記録媒体から読み出されたPSは、PS用バッファ100に一旦格納された後、DeMUX用バッファ群200に読み出される。図9に示すDeMUX用バッファ群200は、PSからビデオESおよびオーディオESを分離するものであり、そのための6個のバッファ201〜206を備えている。
【0005】
PS用バッファ100内のPSは、まずバッファ201に転送される。バッファ201ではパックヘッダの解析が行われて、このパックヘッダを除いたパケットの部分がバッファ202に転送される。バッファ202ではパケットヘッダが解析されて、ESが抽出される。ビデオESはバッファ203に、オーディオESはバッファ204にそれぞれ転送される。この後、バッファ203内のビデオESは一旦バッファ205に格納された後、ビデオデコーダに出力される。同様に、バッファ204内のオーディオESは、バッファ206に格納された後、オーディオデコーダに出力される。
【0006】
図10は、上記のDeMUX処理の流れを概略的に示す図である。
図10では例として、図9のバッファ201〜204の間での処理について示している。図10(A)に示すように、従来では、バッファ201内のパックヘッダを解析する処理(ステップS101)、解析されたパケットのデータをバッファ202に転送する処理(ステップS102)、バッファ202内のパケットヘッダを解析する処理(ステップS103)、解析されたESのデータをバッファ203あるいは204に転送する処理(ステップS104)をCPUが順次実行することで、1つのパックからESを分離していた。この手法では、ステップS102およびS104におけるバッファ間のデータ転送処理をCPUが担っているため、CPUの処理負荷が高いことが問題であった。
【0007】
そこで、メモリアクセス処理をハードウェアにより独立して行うDMAと呼ばれる手法が用いられるようになった。図10(B)に示すように、CPUによりバッファ201内のパックヘッダが解析された後(ステップS111)、DMAの制御ハードウェアによりバッファ201からバッファ202に対するパケットの転送が行われる(ステップS121)。その後、同様にCPUによってバッファ202内のパックヘッダが解析され(ステップS113)、解析されたパケットがバッファ202からバッファ203あるいは204にDMA転送される(ステップS122)。これにより、CPUは、DMAによるバッファ転送時に他の処理(図中ステップS112およびS114)を並行して行うことが可能となる。
【0008】
しかし、上記の図10(B)の手法を用いた場合にも、DMAによる転送処理を複数の階層のバッファ201および202ごとに逐次行う必要がある。このため、時間の制約があるシステムにおいては、DeMUX処理が他の処理に追いつかなくなることもあり得る。
【0009】
これに対して、各バッファ201および202におけるデータ転送を並行して行うことができれば、全体の処理速度をさらに高めることが可能である。すなわち、バッファ201からバッファ202へのパケットのデータを転送している間に、バッファ202では解析されたESをバッファ203または204に同時に転送することで、転送に要する時間を短縮できる。このような転送処理は、リング構造によりバッファを管理するリングバッファを用いることで実現することができる(例えば、特許文献1参照)。
【特許文献1】特開平5−289847号公報(段落番号〔0002〕〜〔0009〕、図10)
【発明の開示】
【発明が解決しようとする課題】
【0010】
上述したように、従来のDeMUX処理では、複数階層の各バッファのDMA転送をバッファごとの逐次処理により行っていたため、処理速度を向上させるための改善すべき欠点があったと言える。しかし、リングバッファを用いて各バッファのDMA転送を並行して行うようにすると、バッファのライトポインタとリードポインタの管理を厳密に行う必要があるために、処理が複雑になり、システム開発コストも増大してしまうという問題が生じる。
【0011】
特に、ISO/IEC(International Organization for Standardization/International Electrotechnical Commission)13818−1で規定された“The System Part of the MPEG−2 Standard”に準拠したシステムでは、2Kbyteの固定長のパックがバッファに転送される。これに対して、リングバッファは可変長のデータの書き込み・読み出しに適したバッファ管理方法であるので、上記のDeMUX処理時に用いる手法としては適当ではなかった。
【0012】
本発明はこのような点に鑑みてなされたものであり、固定データ長のデータ群により構成される入力データのデータ分離処理が、複雑なアドレス制御を用いることなく高速化されたデータ分離装置を提供することを目的とする。
【0013】
また、本発明の他の目的は、固定長のパックにより構成されるデータストリームのデータ分離処理が、複雑なアドレス制御を用いることなく高速化されたストリーム再生装置を提供することである。
【0014】
さらに、本発明の他の目的は、固定データ長のデータ群により構成される入力データのデータ分離処理時が、複雑なアドレス制御を用いることなく高速化されたデータ分離方法を提供することである。
【課題を解決するための手段】
【0015】
本発明では上記課題を解決するために、固定データ長のデータ群により構成される入力データを解析して必要なデータを分離するデータ分離装置において、それぞれ同じ記憶容量を有する2つのバッファ領域を備え、前記データ群を一時的に記憶するバッファメモリと、前記各バッファ領域に対して前記データ群をDMA転送する第1のDMA転送手段と、前記各バッファ領域からデータを読み出してDMA転送する第2のDMA転送手段と、前記各バッファ領域に記憶された前記データ群を解析するデータ解析手段と、一方の前記バッファ領域に格納された前記データ群に対する前記データ解析手段の解析結果に応じて当該バッファ領域から必要なデータを読み出すと同時に、他方の前記バッファ領域に対して次の前記データ群を書き込み、かつ、前記データ群を前記各バッファ領域に交互に転送するように、前記第1および第2のDMA転送手段にそれぞれ転送先アドレス、転送元アドレスを指定してデータ転送を実行させる転送制御手段とを有することを特徴とするデータ分離装置が提供される。
【0016】
このようなデータ分離装置では、2つのバッファ領域を備えたバッファメモリを設けて、そのデータ書き込みおよびデータ読み出しをそれぞれ第1および第2のDMA転送手段が実行する構成としたことで、一方のバッファ領域に記憶したデータ群を解析した後に、当該バッファ領域からのデータ読み出しと他方のバッファ領域へのデータ書き込みとを並行して実行することができ、データ転送に要する時間が短縮される。また、各バッファ領域は同じ記憶容量を有するので、あらかじめ決められた2つの転送先アドレスを第1のDMA転送手段に交互に指定するだけで、各バッファ領域にデータ群を交互に転送させることができ、複雑なアドレス制御が必要とならない。従って、簡単な制御でデータ分離処理が高速化される。
【0017】
また、本発明では、固定データ長のデータ群により構成される入力データを解析して必要なデータを分離するデータ分離方法において、それぞれ同じ記憶容量を有する2つのバッファ領域を備えたバッファメモリにおけるデータ書き込みおよびデータ読み出しをそれぞれ第1および第2のDMA転送手段が実行し、前記各バッファ領域に記憶された前記データ群をデータ解析手段が解析するように構成し、一方の前記バッファ領域に格納された前記データ群に対する前記データ解析手段による解析結果に応じて当該バッファ領域から必要なデータを読み出すと同時に、他方の前記バッファ領域に対して次の前記データ群を書き込み、かつ、前記データ群を前記各バッファ領域に交互に転送するように、転送制御手段が前記第1および第2のDMA転送手段にそれぞれ転送先アドレス、転送元アドレスを指定してデータ転送を実行させることを特徴とするデータ分離方法が提供される。
【0018】
このようなデータ分離方法では、2つのバッファ領域を備えたバッファメモリを設けて、そのデータ書き込みおよびデータ読み出しをそれぞれ第1および第2のDMA転送手段が実行する構成としたことで、一方のバッファ領域に記憶したデータ群を解析した後に、当該バッファ領域からのデータ読み出しと他方のバッファ領域へのデータ書き込みとを並行して実行することができ、データ転送に要する時間が短縮される。また、各バッファ領域は同じ記憶容量を有するので、あらかじめ決められた2つの転送先アドレスを第1のDMA転送手段に交互に指定するだけで、各バッファ領域にデータ群を交互に転送させることができ、複雑なアドレス制御が必要とならない。従って、簡単な制御でデータ分離処理が高速化される。
【発明の効果】
【0019】
本発明によれば、2つのバッファ領域を備えたバッファメモリを設けて、そのデータ書き込みおよびデータ読み出しをそれぞれ第1および第2のDMA転送手段が実行する構成としたことで、一方のバッファ領域に記憶したデータ群を解析した後に、当該バッファ領域からのデータ読み出しと他方のバッファ領域へのデータ書き込みとを並行して実行することができ、データ転送に要する時間を短縮できる。また、各バッファ領域は同じ記憶容量を有するので、あらかじめ決められた2つの転送先アドレスを第1のDMA転送手段に交互に指定するだけで、各バッファ領域にデータ群を交互に転送させることができ、複雑なアドレス制御が必要とならない。従って、簡単な制御でデータ分離処理を高速化でき、低コストで高性能なデータ分離装置やストリーム再生装置を実現できる。
【発明を実施するための最良の形態】
【0020】
以下、本発明の実施の形態を図面を参照して詳細に説明する。以下の説明では、ストリーム再生装置として、DVDなどの光ディスクを再生する光ディスク装置を例に挙げる。
まず、図1は、DVD−VIDEOディスクにおいて用いられているMPEG2−プログラムストリーム(PS)のデータ構造を示す図である。
【0021】
PSは、ビデオ、オーディオなどの複数の符号化ストリームを多重化して1つのプログラムを構成している。図1(A)に示すように、PSは、上位レイヤではパック(Pack)の集合体として構成され、1つのPSは、先頭パック(ナビゲーションパック)に記述されたパック開始コード(32bit)に始まり、終了コード(32bit)で終わる。
【0022】
図1(B)に示すように、ナビゲーションパックには、パックヘッダ、システムヘッダに続いて、1つ以上のパケット(Packetized Elementary Stream Packet、PESパケット)が格納される。パックヘッダの先頭には上記のパック開始コードが記述され、システムヘッダにはPS全体のパラメータ情報が記述される。パケットには、パケットヘッダに続いて、ビデオ、オーディオなどの個別ストリーム(ES)のデータが格納される。また、各パケットは、32bitのパケット開始コードにより開始され、このパケット開始コードは、24bitの固定値部分と8bitのストリームID部分とからなる。
【0023】
一方、先頭以外のパックでは、図1(C)に示すように、パックヘッダの後にパケットが格納され、システムヘッダはオプションとなっている。また、各パケットには同様に、各ESのデータが格納される。
【0024】
このように、MPEG2−PSのデータは階層構造を有しており、PSからビデオ、オーディオの各ESを分離するためには階層ごとに処理する必要がある。また、本実施の形態では特に、ISO/IEC13818−1で規定された“The System Part of the MPEG−2 Standard”に準拠した2Kbyte(2048byte)の固定長のパックによって、PSが構成されているものとする。
【0025】
図2は、実施の形態に係る光ディスク装置の全体構成を示すブロック図である。
図2に示す光ディスク再生装置は、DVDなどの光ディスク1の記録信号を再生する光ピックアップ2と、再生信号の2値化処理などを行うRF(Radio Frequency)回路3と、RF回路3からの再生データに対してエラー訂正などのデコード処理を行うECC(Error Correcting Code)デコーダ4と、ECCデコーダ4の出力段に設けられたPS格納用のバッファ5と、バッファ5からの出力データをビデオデータやオーディオデータなどに分離するDeMUXハードウェア6と、分離されたビデオES、オーディオESをそれぞれデコードするビデオデコーダ7およびオーディオデコーダ8と、デコードされたビデオデータおよびオーディオデータをそれぞれアナログ信号に変換するNTSC(National Television Standards Committee)デコーダ9およびオーディオDAC(Digital Analog Converter)10と、これらの各ブロックを統括的に制御するシステムコントローラ11を具備する。
【0026】
光ピックアップ2は、光ディスク1の記録面に対してレーザビームを照射し、その反射光に応じたRF信号を再生して、RF回路3に供給する。RF回路3は、光ピックアップ2による再生信号の波形等化や2値化、同期信号の生成などの処理を行い、デジタルデータをECCデコーダ4に供給する。
【0027】
ECCデコーダ4は、RF回路3により生成されたデジタルデータに基づき、データの復調や誤り訂正などの処理を行う。復調されたデータ(PS)は、バッファ5に一時的に格納された後、DeMUXハードウェア6に読み出され、これによりECCデコーダ4とDeMUXハードウェア6との処理速度の差が吸収される。
【0028】
なお、バッファ5としては、例えばSDRAM(Synchronous Dynamic RAM)が用いられる。また、バッファ5に対しては、この例のように光ディスク1などの記録媒体から読み出されたデータの他、テレビチューナにより受信されたデータや、外部入力からのデータ、ネットワークを通じて受信したデータなどが入力されるようにしてもよい。
【0029】
DeMUXハードウェア6は、後述するように、複数のバッファやバッファ間の転送を制御するDMAコントローラなどを具備し、システムコントローラ11の制御の下で、バッファ5からのPSをビデオESおよびオーディオESに分離し、それぞれビデオデコーダ7およびオーディオデコーダ8に供給する。
【0030】
ビデオデコーダ7およびオーディオデコーダ8は、システムコントローラ11からの基準クロック(STC:System Time Clock)に同期して、ビデオESおよびオーディオES内のタイムスタンプに従って、各ESをデコードする。
【0031】
NTSCデコーダ9は、ビデオデコーダ7によりデコードされたビデオデータを、NTSC方式のアナログテレビジョン信号に変換して出力する。また、オーディオDAC10は、オーディオデコーダ8から出力されたオーディオデータをアナログ音声データに変換して出力する。NTSCデコーダ9の出力信号をモニタなどに供給し、また、オーディオDAC10の出力信号をオーディオアンプを介してスピーカに供給することにより、光ディスク1から再生した映像および音声をユーザが視聴することが可能となる。
【0032】
システムコントローラ11は、CPUやROM、RAMなどを備え、上記各ブロックの制御を行う。このシステムコントローラ11は、操作キーやリモートコントローラなどのユーザI/F(図示せず)を通じてユーザからの操作入力を受け付け、その操作入力に応じた各ブロックの制御を行う。
【0033】
図3は、DeMUXハードウェア6の内部構成を示す図である。
図3に示すように、DeMUXハードウェア6は、PSを階層ごとに処理するためのDeMUX用バッファ群610と、それぞれ独立したデータ転送バスを用いて対応するバッファ間でデータを転送するDMAコントローラ621〜624を具備している。DeMUX用バッファ群610には、バッファ611〜616が設けられている。なお、この実施の形態では、バッファ616の領域のみ、他のバッファとは別に設けられたSDRAM内に設けられている。
【0034】
バッファ611には、バッファ5に蓄積されたPSのデータからパックが順次転送される。DMAコントローラ621は、システムコントローラ11からのコマンドに応じて、PS用のバッファ5からバッファ611に対してデータを転送する。本実施の形態では、バッファ5からバッファ611には4パックずつ転送されるものとする。
【0035】
バッファ611はパックヘッダを解析してパケットを抽出するためのものであり、バッファ611内のパックからは、パックヘッダを除いたパケットの部分のみがバッファ612に転送される。バッファ612はパケットヘッダを解析してESを抽出するためのものであり、その解析結果に応じて、バッファ612内のビデオESがバッファ613に転送され、オーディオESがバッファ614に転送される。
【0036】
これらのバッファ611および612におけるヘッダの解析は、システムコントローラ11により処理される。DMAコントローラ622は、パックヘッダの解析結果に応じたコマンドをシステムコントローラ11から受け取り、そのコマンドに応じてバッファ611からバッファ612に対してデータを転送する。同様にDMAコントローラ623は、パケットヘッダの解析結果に応じたコマンドをシステムコントローラ11から受け取り、そのコマンドに応じてバッファ612からバッファ613または614に対してデータを転送する。
【0037】
バッファ613では、バッファ612からのビデオESが1アクセスユニット分(1ピクチャ分)だけ蓄積されると、そのビデオESがバッファ616に転送される。1アクセスユニット分の蓄積の判別はシステムコントローラ11の処理により行われ、このときにシステムコントローラ11から出力されるコマンドに応じて、DMAコントローラ624がバッファ613からバッファ616に対してデータを転送する。
【0038】
バッファ614では、バッファ612からのオーディオESが1アクセスユニット分だけ蓄積されると、そのオーディオESがバッファ615に転送される。システムコントローラ11は、バッファ614に1アクセスユニット分のデータが蓄積されたことを判別して、バッファ614からバッファ615へのデータ転送を直接制御する。
【0039】
バッファ616に格納されたビデオESは、システムコントローラ11の制御の下で、アクセスユニット単位でビデオデコーダ7に転送される。同様に、バッファ615に格納されたオーディオESは、システムコントローラ11の制御の下で、アクセスユニット単位でオーディオデコーダ8に転送される。
【0040】
なお、バッファ613〜616は、いわゆるリングバッファとして構成される。システムコントローラ11は、これらのバッファ613〜616におけるアクセスユニット単位のデータの先頭位置および終端位置を示すアドレスを管理して、これらにおけるデータ書き込みおよび読み出しを制御する。
【0041】
ところで、上記の各バッファ611〜616では、これらのすべてに対するデータ転送を並行して実行することにより、処理時間を短縮することができる。このためには、各バッファにおいて、前段のバッファからのデータ書き込みと、後段のバッファへのデータ読み出しとを同時に行う必要がある。バッファ613〜616では、リングバッファの手法を用いることでこのような処理を実現している。これらのバッファ613〜616では、格納されるアクセスユニット単位のデータが可変長であるために、リングバッファの手法が適していると言える。
【0042】
しかし、バッファ611には、上述したように2Kbyteずつの固定長のパックが格納される。同様にバッファ612には、固定長のパックからヘッダを除いた2034byte単位のデータが格納される。このようなデータの性質を利用して、本実施の形態では、各バッファ611および612を、記憶容量の同じ2つのバッファ領域に分割したダブルバッファとして構成し、一方のバッファ領域にデータを書き込む間に、他方のバッファ領域のデータを後段のバッファに転送するようにして、書き込みおよび読み出しを並行して実行させる。
【0043】
すなわち、バッファ611は、それぞれ同じ記憶容量を有するバッファヘッド611aおよびバッファテイル611bの2つの領域に分割されている。同様にバッファ612は、同じ記憶容量を有するバッファヘッド612aおよびバッファテイル612bに分割されている。この例では4パック単位で処理されることから、各バッファ領域は8Kbyteの記憶容量を有している。
【0044】
データの転送先および転送元をバッファヘッド、バッファテイルのどちらにするかは、システムコントローラ11からDMAコントローラ621および622へのコマンドにおけるアドレス指定により決められる。このとき、バッファヘッド、バッファテイルともに同じ記憶容量を有することから、転送先および転送元として各バッファ領域を示す固定的なアドレスを選択的に指定するだけで、転送先および転送元をそれぞれ切り替えることができる。このため、リングバッファと比較してはるかに簡単なアドレス制御により、書き込みおよび読み出しの並行処理を行うことが可能となる。
【0045】
図4は、DMA転送のためのコマンド格納領域について概念的に示す図である。
システムコントローラ11は、バッファ5,611〜614,および616におけるデータ転送を開始させるにあたって、各DMAコントローラ621〜624に対するコマンド(DMX_CMD)をコマンド格納領域630に記述していく。コマンドには、転送元アドレス、転送先アドレス、転送バイト数などが記述される。
【0046】
コマンド格納領域630は、例えばバッファ611,612などが設定されるRAMの一部にFIFO(First In First Out)方式のメモリ領域として確保される。各DMAコントローラ621〜624は、システムコントローラ11からのデータ転送命令を受信すると、このコマンド格納領域630に設定されたコマンドをすべて読み込み、該当するデータ転送を実行する。
【0047】
図5は、DeMUX処理の概要について説明するための図である。なお、ここではバッファ5の読み出しからバッファ613および614への書き込みのシステムコントローラ11の処理について説明する。
【0048】
〔ステップS11〕バッファ5からバッファ611に対してパックを転送する際、システムコントローラ11は、4パック分のデータをバッファヘッド611aおよびバッファテイル611bにそれぞれ交互に切り替えて転送するように、DMAコントローラ621に対するコマンドを発行する。なお、この処理については後の図6において詳述する。
【0049】
〔ステップS12〕システムコントローラ11は、バッファ611に新たに書き込んだ4パック分のデータについて、パケットヘッダを解析する。具体的には、パック開始コード(0x000001BA)を検出する。
【0050】
〔ステップS13〕システムコントローラ11は、パックヘッダ(14Byte)を除いた残りのデータ(システムヘッダおよびパケット)をバッファ612に転送するように、DMAコントローラ622に対するコマンドを発行する。このとき、バッファヘッド611aからはバッファヘッド612aへ、バッファテイル611bからはバッファテイル612bに対してそれぞれデータを転送させるように制御する。
【0051】
〔ステップS14〕システムコントローラ11は、バッファ612に対して新たに書き込んだデータについて、システムヘッダおよびパケットヘッダを解析する。具体的には、システムヘッダ開始コード(0x000001BB)、ビデオパケット開始コード(0x000001E0)、オーディオパケット開始コード(0x000001C0)を検出する。ビデオパケット開始コードおよびオーディオパケット開始コードを検出した場合には、さらにそのパケットヘッダ内のパラメータを解析する。
【0052】
〔ステップS15〕ステップS14における検出結果に基づいて、パケット内のビデオESおよびオーディオESのデータのみを、それぞれバッファ613および614に転送させるように、DMAコントローラ623に対するコマンドを発行する。
【0053】
具体的には、システムヘッダを検出した場合には、その後に続くパケットがナビゲーションパック内のものであるために、これらのパケットを破棄する。また、ビデオパケット開始コードおよびオーディオパケット開始コードを検出した場合には、パケットヘッダのパラメータを解析した後、ビデオESのデータをバッファ613に転送させ、オーディオESのデータをバッファ614に転送させる。
【0054】
なお、ヘッダの解析はDMAコントローラ622および623によって行われるようにしてもよい。この場合、システムコントローラ11は、ヘッダの解析結果をDMAコントローラ622および623から受け取り、その結果に応じてアドレスやバイト数などを計算し、コマンドを発行する。
【0055】
図6は、バッファ5からバッファ611のバッファヘッド611aおよびバッファテイル611bに対する転送先切り替え処理(図5のステップS11に対応)の流れを示すフローチャートである。
【0056】
〔ステップS21〕システムコントローラ11は、PSの再生が開始されてからバッファ5からバッファ611への最初のDMA転送であるか否かを判定する。最初である場合はステップS23に進み、そうでない場合はステップS22に進む。
【0057】
〔ステップS22〕システムコントローラ11は、バッファ611に対する前回の転送でバッファヘッド611aに転送したか否かを判定する。前回バッファヘッド611aに転送した場合にはステップS24に進み、そうでない場合はステップS23に進む。
【0058】
〔ステップS23〕システムコントローラ11は、バッファ5の4パック分のデータをバッファヘッド611aに転送させるように、DMAコントローラ621に対するコマンドを発行する。
【0059】
〔ステップS24〕システムコントローラ11は、バッファ5の4パック分のデータをバッファテイル611bに転送させるように、DMAコントローラ621に対するコマンドを発行する。
【0060】
ここで、バッファヘッド611aおよびバッファテイル611bはともに同じ記憶容量を有するため、ステップS23およびS24では、転送先アドレスとしてあらかじめ決められた2つの固定的な値をコマンド発行のたびに交互に指定すればよくなる。従ってシステムコントローラ11は、複雑なアドレス管理を行うことなく、簡単な制御で転送先を切り替えることが可能となる。また、バッファ611からバッファ612に対するデータ転送でも同様に、あらかじめ決められた固定的な転送先アドレスをコマンド発行のたびに交互に指定することで、容易に転送先が切り替えられる。
【0061】
図7は、ヘッダ解析およびデータ転送の処理タイミングを示すタイミングチャートである。
図7では、図5に示したパック転送先切り替え処理(ステップS11)、パックヘッダ解析(ステップS12)、パケット転送(ステップS13)、パケットヘッダ解析(ステップS14)、およびES転送(ステップS15)までの処理を1つの単位として、n回目から(n+3)回目まで(ただし、nは1以上の整数)の処理タイミングを示している。
【0062】
図7に示すn回目の処理時には、バッファ611およびバッファ612にはそれぞれのバッファヘッド、バッファテイルのどちらかにすでにデータが格納されているものとする。このとき、システムコントローラ11は図7に示すように、まず、バッファ611についてパックヘッダの解析を行い、次にバッファ612についてパケットヘッダの解析を行う。これらの解析処理は逐次処理される。
【0063】
なお、ここまでの処理で、バッファ5からバッファ611へのパックの転送、バッファ611からバッファ612へのパケット(およびシステムヘッダ)の転送、バッファ612からバッファ613へのビデオESの転送、バッファ612からバッファ614へのオーディオESの転送をそれぞれ実行させるためのコマンドがシステムコントローラ11により発行され、コマンド格納領域630に格納されるが、図7ではこれらを省略している。
【0064】
そして次に、DMAコントローラ621〜623が、コマンド格納領域630に格納されたコマンドに基づいてデータを転送する。このとき、各DMAコントローラ621〜623は、コマンド格納領域630に格納されたコマンドを1回のキックですべて処理するので、これらのバッファ間のデータ転送は、図7に示すように同時に実行される。すなわち、バッファ611でのデータ書き込みおよびデータ読み出し、バッファ612でのデータ読み出しおよびデータ書き込みが、すべて並行して実行される。なお、これらのデータ転送はDMAコントローラ621〜623により実行されるので、この処理の間、システムコントローラ11は他の処理を実行することができる。
【0065】
以上の一連の処理が、(n+1)回目、(n+2)回目、(n+3)回目と繰り返される。ここで、バッファ611および612のそれぞれについての解析(コマンド発行を含む)に要する時間をparse_t、バッファ間のDMA転送に要する時間をdma_t、DMA転送のためのハードウェアアクセスに要するオーバヘッドの時間をoverhead_tとして、上記のn回目〜(n+3)回目までの4回の処理によって合計16パック分のデータが処理される場合の時間T1を概算すると、次の式(1)のようになる。
T1=4×(2×parse_t+dma_t+overhead_t)……(1)
また、図8には、従来の同様の処理についてのタイミングチャートを参考のために示す。この図8では、バッファ611および612がそれぞれ1つのバッファ領域を備えていた従来の構成を想定している。
【0066】
この図8に示すように、従来のn回目の処理では、バッファ5からバッファ611へのパックの転送、バッファ611についてのパックヘッダの解析、バッファ611からバッファ612へのパケットの転送、バッファ612についてのパケットヘッダの解析、バッファ612からバッファ613へのビデオESの転送、バッファ612からバッファ613へのオーディオESの転送のそれぞれの処理が逐次実行される。
【0067】
これらのうち、データ転送処理についてはDMAコントローラにより実行され、この処理中にはシステムコントローラ11は他の処理を実行することができるものの、データ転送を含むすべての処理が逐次実行されるために、全体の処理時間は長くなってしまう。図7の場合と同様に、n回目〜(n+3)回目までの処理によって16パック分のデータが処理される場合の時間T2を概算すると、次の式(2)のようになる。
T2=4×{2×parse_t+4×(dma_t+overhead_t)}
……(2)
T2−T1=12×(dma_t+overhead_t) ……(3)
従って、上式(3)に示した値だけ処理時間が短縮されていることがわかる。dma_tの値がoverhead_tの値より十分大きいことを考慮しても、従来の処理と比較して本実施の形態での処理時間は大幅に短縮されるので、1つのPSを再生する場合の処理時間の短縮効果、すなわち処理効率の向上効果は極めて大きい。
【0068】
以上説明したように、本実施の形態では、バッファ611および612を、それぞれ同じ記憶容量を有する2つのバッファ領域に分割して、交互にデータを書き込む構成としたことにより、複雑なアドレス管理を行うことなく、固定的な転送先アドレスを選択的に指定することにより、これらのバッファ611および612でデータの書き込みおよび読み出しを並行して実行することが可能となる。従って、比較的簡単な制御により、DeMUX処理に要する処理時間が大幅に短縮されるとともに、処理時の消費電力が低減される。
【0069】
また、DeMUX処理時のシステムコントローラ11の処理効率が向上することから、システムコントローラ11の処理能力を小さくしても従来と同様の処理を実行することができ、システムコントローラ11の製造コストを低減することができる。逆に、従来と同じ処理能力のシステムコントローラ11を使用した場合には、同じ装置内の他の処理を実行する余剰能力が生まれるので、コストの上昇を抑制しながらも、その装置の機能を向上させることができる。
【0070】
なお、以上の実施の形態では、本発明を光ディスク装置に適用した例について説明したが、これに限ったことでなく、本発明は、固定データ長のパックなどのデータ群を含むストリームのDeMUX処理を行う他の装置にも適用することが可能である。例えば、HDDや磁気テープ、半導体メモリなど、ストリームが記憶されたあらゆる記憶媒体からデータを読み出して再生する再生装置、テレビ放送波などから受信したストリームを再生する装置(テレビチューナ、ビデオレコーダ、テレビジョン受像機、PC用テレビチューナボードなど)、ネットワークを通じて受信したストリームを再生する装置などに適用することができる。
【0071】
さらに本発明は、ビデオやオーディオのストリームのDeMUX処理だけでなく、固定データ長のデータ群からデータを解析し、必要なデータを分離して転送する様々な処理に適用して、その処理時間を短縮させることができる。例えば、ATM(Asynchronous Transfer Mode)交換機システムにおける53byteの固定データ長セルの解析および転送時の処理や、固定長の文字データ処理などに適用することができる。
【図面の簡単な説明】
【0072】
【図1】MPEG−2プログラムストリームのデータ構造を示す図である。
【図2】実施の形態に係る光ディスク装置の全体構成を示すブロック図である。
【図3】DeMUXハードウェアの内部構成を示す図である。
【図4】DMA転送のためのコマンド格納領域について概念的に示す図である。
【図5】DeMUX処理の概要について説明するための図である。
【図6】1段目のバッファのバッファヘッドおよびバッファテイルに対する転送先切り替え処理の流れを示すフローチャートである。
【図7】本実施の形態のヘッダ解析およびデータ転送の処理タイミングを示すタイミングチャートである。
【図8】従来のヘッダ解析およびデータ転送の処理タイミングを示すタイミングチャートである。
【図9】DeMUX処理時に使用される従来のバッファの構成例を示す図である。
【図10】従来のDeMUX処理の流れを概略的に示す図である。
【符号の説明】
【0073】
1……光ディスク、2……光ピックアップ、3……RF回路、4……ECCデコーダ、5……バッファ、6……DeMUXハードウェア、7……ビデオデコーダ、8……オーディオデコーダ、9……NTSCデコーダ、10……オーディオDAC、11……システムコントローラ、610……DeMUX用バッファ群、611〜616……バッファ、611a,612a……バッファヘッド、611b,612b……バッファテイル、621〜624……DMAコントローラ

【特許請求の範囲】
【請求項1】
固定データ長のデータ群により構成される入力データを解析して必要なデータを分離するデータ分離装置において、
それぞれ同じ記憶容量を有する2つのバッファ領域を備え、前記データ群を一時的に記憶するバッファメモリと、
前記各バッファ領域に対して前記データ群をDMA(Dynamic Memory Access)転送する第1のDMA転送手段と、
前記各バッファ領域からデータを読み出してDMA転送する第2のDMA転送手段と、
前記各バッファ領域に記憶された前記データ群を解析するデータ解析手段と、
一方の前記バッファ領域に格納された前記データ群に対する前記データ解析手段の解析結果に応じて当該バッファ領域から必要なデータを読み出すと同時に、他方の前記バッファ領域に対して次の前記データ群を書き込み、かつ、前記データ群を前記各バッファ領域に交互に転送するように、前記第1および第2のDMA転送手段にそれぞれ転送先アドレス、転送元アドレスを指定してデータ転送を実行させる転送制御手段と、
を有することを特徴とするデータ分離装置。
【請求項2】
前記データ群は、データストリームを構成するパックであり、
前記データ解析手段は、前記バッファ領域に格納されたパックからパックヘッダを解析し、
前記転送制御手段は、前記データ解析手段の解析結果に基づいて前記バッファ領域からパケットおよびシステムヘッダのデータのみを読み出すように前記第2のDMA転送手段を制御する、
ことを特徴とする請求項1記載のデータ分離装置。
【請求項3】
それぞれ同じ記憶容量を有する2つのバッファ領域を備え、前記第2のDMA転送手段により前記バッファメモリから転送されるパケットおよびシステムヘッダのデータを一時的に記憶するパケット解析用バッファメモリと、
前記パケット解析用バッファメモリの備える前記各バッファ領域から読み出されたビデオデータおよびオーディオデータをそれぞれ一時的に記憶するビデオ用バッファメモリおよびオーディオ用バッファメモリと、
前記パケット解析用バッファメモリから読み出したデータを前記ビデオ用バッファメモリおよび前記オーディオ用バッファメモリにDMA転送する第3のDMA転送手段と、
をさらに有し、
前記データ解析手段はさらに、前記パケット解析用バッファメモリに記憶されたデータからパケットヘッダおよびシステムヘッダを解析し、
前記転送制御手段はさらに、前記パケット解析用バッファメモリの一方の前記バッファ領域に格納された前記データ群に対する前記データ解析手段の解析結果に応じて、当該バッファ領域からビデオデータおよびオーディオデータを読み出して前記ビデオ用バッファメモリおよび前記オーディオ用バッファメモリにそれぞれ書き込むと同時に、他方の前記バッファ領域に対して前記バッファメモリから読み出した次のデータを書き込み、かつ、前記バッファメモリの前記各バッファ領域から交互に読み出したデータを前記パケット解析用バッファメモリの前記各バッファ領域に交互に書き込むように、前記第2および第3のDMA転送手段に転送元アドレスおよび転送先アドレスを指定してデータ転送を実行させる、
ことを特徴とする請求項2記載のデータ分離装置。
【請求項4】
固定データ長のパックにより構成されるデータストリームから必要なデータを分離して再生するストリーム再生装置において、
それぞれ同じ記憶容量を有する2つのバッファ領域を備え、入力データを一定数のパック単位で一時的に記憶するバッファメモリと、
前記各バッファ領域に対して前記一定数のパックをDMA転送する第1のDMA転送手段と、
前記各バッファ領域からデータを読み出してDMA転送する第2のDMA転送手段と、
前記各バッファ領域に記憶されたパックからパックヘッダを解析するデータ解析手段と、
一方の前記バッファ領域に格納された前記一定数のパックに対する前記データ解析手段の解析結果に応じて当該バッファ領域からパケットおよびシステムヘッダのデータを読み出すと同時に、他方の前記バッファ領域に対して次の前記一定数のパックを書き込み、かつ、前記一定数のパックを前記各バッファ領域に交互に転送するように、前記第1および第2のDMA転送手段にそれぞれ転送先アドレス、転送元アドレスを指定してデータ転送を実行させる転送制御手段と、
を有することを特徴とするストリーム再生装置。
【請求項5】
固定データ長のデータ群により構成される入力データを解析して必要なデータを分離するデータ分離方法において、
それぞれ同じ記憶容量を有する2つのバッファ領域を備えたバッファメモリにおけるデータ書き込みおよびデータ読み出しをそれぞれ第1および第2のDMA転送手段が実行し、前記各バッファ領域に記憶された前記データ群をデータ解析手段が解析するように構成し、
一方の前記バッファ領域に格納された前記データ群に対する前記データ解析手段による解析結果に応じて当該バッファ領域から必要なデータを読み出すと同時に、他方の前記バッファ領域に対して次の前記データ群を書き込み、かつ、前記データ群を前記各バッファ領域に交互に転送するように、転送制御手段が前記第1および第2のDMA転送手段にそれぞれ転送先アドレス、転送元アドレスを指定してデータ転送を実行させる、
ことを特徴とするデータ分離方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2006−121184(P2006−121184A)
【公開日】平成18年5月11日(2006.5.11)
【国際特許分類】
【出願番号】特願2004−304337(P2004−304337)
【出願日】平成16年10月19日(2004.10.19)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】