(57)【要約】【課題】  固定データ長のデータ群により構成される入力データのデータ分離処理を、複雑なアドレス制御を用いることなく高速化する。【解決手段】  同容量のバッファ領域であるバッファヘッド６１１ａおよびバッファテイル６１１ｂを備えたパックヘッダ解析用のバッファ６１１を用い、一方のバッファ領域に格納されたパックの解析結果に応じて、当該バッファ領域から必要なパケットおよびシステムヘッダのデータを読み出すと同時に、他方のバッファ領域に対してバッファ５からの次のパックを書き込み、かつ、バッファ５からのパックを各バッファ領域に交互に転送するように、バッファ５とバッファ６１１との間、およびバッファ６１１とバッファ６１２との間のＤＭＡコントローラにそれぞれ転送先アドレス、転送元アドレスを指定してＤＭＡ転送を実行させる。【選択図】  図５
2006121184.tif 000002
【特許請求の範囲】
【請求項１】
固定データ長のデータ群により構成される入力データを解析して必要なデータを分離するデータ分離装置において、
それぞれ同じ記憶容量を有する２つのバッファ領域を備え、前記データ群を一時的に記憶するバッファメモリと、
前記各バッファ領域に対して前記データ群をＤＭＡ（Dynamic Memory Access）転送する第１のＤＭＡ転送手段と、
前記各バッファ領域からデータを読み出してＤＭＡ転送する第２のＤＭＡ転送手段と、
前記各バッファ領域に記憶された前記データ群を解析するデータ解析手段と、
一方の前記バッファ領域に格納された前記データ群に対する前記データ解析手段の解析結果に応じて当該バッファ領域から必要なデータを読み出すと同時に、他方の前記バッファ領域に対して次の前記データ群を書き込み、かつ、前記データ群を前記各バッファ領域に交互に転送するように、前記第１および第２のＤＭＡ転送手段にそれぞれ転送先アドレス、転送元アドレスを指定してデータ転送を実行させる転送制御手段と、
を有することを特徴とするデータ分離装置。
【請求項２】
前記データ群は、データストリームを構成するパックであり、
前記データ解析手段は、前記バッファ領域に格納されたパックからパックヘッダを解析し、
前記転送制御手段は、前記データ解析手段の解析結果に基づいて前記バッファ領域からパケットおよびシステムヘッダのデータのみを読み出すように前記第２のＤＭＡ転送手段を制御する、
ことを特徴とする請求項１記載のデータ分離装置。
【請求項３】
それぞれ同じ記憶容量を有する２つのバッファ領域を備え、前記第２のＤＭＡ転送手段により前記バッファメモリから転送されるパケットおよびシステムヘッダのデータを一時的に記憶するパケット解析用バッファメモリと、
前記パケット解析用バッファメモリの備える前記各バッファ領域から読み出されたビデオデータおよびオーディオデータをそれぞれ一時的に記憶するビデオ用バッファメモリおよびオーディオ用バッファメモリと、
前記パケット解析用バッファメモリから読み出したデータを前記ビデオ用バッファメモリおよび前記オーディオ用バッファメモリにＤＭＡ転送する第３のＤＭＡ転送手段と、
をさらに有し、
前記データ解析手段はさらに、前記パケット解析用バッファメモリに記憶されたデータからパケットヘッダおよびシステムヘッダを解析し、
前記転送制御手段はさらに、前記パケット解析用バッファメモリの一方の前記バッファ領域に格納された前記データ群に対する前記データ解析手段の解析結果に応じて、当該バッファ領域からビデオデータおよびオーディオデータを読み出して前記ビデオ用バッファメモリおよび前記オーディオ用バッファメモリにそれぞれ書き込むと同時に、他方の前記バッファ領域に対して前記バッファメモリから読み出した次のデータを書き込み、かつ、前記バッファメモリの前記各バッファ領域から交互に読み出したデータを前記パケット解析用バッファメモリの前記各バッファ領域に交互に書き込むように、前記第２および第３のＤＭＡ転送手段に転送元アドレスおよび転送先アドレスを指定してデータ転送を実行させる、
ことを特徴とする請求項２記載のデータ分離装置。
【請求項４】
固定データ長のパックにより構成されるデータストリームから必要なデータを分離して再生するストリーム再生装置において、
それぞれ同じ記憶容量を有する２つのバッファ領域を備え、入力データを一定数のパック単位で一時的に記憶するバッファメモリと、
前記各バッファ領域に対して前記一定数のパックをＤＭＡ転送する第１のＤＭＡ転送手段と、
前記各バッファ領域からデータを読み出してＤＭＡ転送する第２のＤＭＡ転送手段と、
前記各バッファ領域に記憶されたパックからパックヘッダを解析するデータ解析手段と、
一方の前記バッファ領域に格納された前記一定数のパックに対する前記データ解析手段の解析結果に応じて当該バッファ領域からパケットおよびシステムヘッダのデータを読み出すと同時に、他方の前記バッファ領域に対して次の前記一定数のパックを書き込み、かつ、前記一定数のパックを前記各バッファ領域に交互に転送するように、前記第１および第２のＤＭＡ転送手段にそれぞれ転送先アドレス、転送元アドレスを指定してデータ転送を実行させる転送制御手段と、
を有することを特徴とするストリーム再生装置。
【請求項５】
固定データ長のデータ群により構成される入力データを解析して必要なデータを分離するデータ分離方法において、
それぞれ同じ記憶容量を有する２つのバッファ領域を備えたバッファメモリにおけるデータ書き込みおよびデータ読み出しをそれぞれ第１および第２のＤＭＡ転送手段が実行し、前記各バッファ領域に記憶された前記データ群をデータ解析手段が解析するように構成し、
一方の前記バッファ領域に格納された前記データ群に対する前記データ解析手段による解析結果に応じて当該バッファ領域から必要なデータを読み出すと同時に、他方の前記バッファ領域に対して次の前記データ群を書き込み、かつ、前記データ群を前記各バッファ領域に交互に転送するように、転送制御手段が前記第１および第２のＤＭＡ転送手段にそれぞれ転送先アドレス、転送元アドレスを指定してデータ転送を実行させる、
ことを特徴とするデータ分離方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストリームなどの入力データを解析して必要なデータを分離するデータ分離装置、これを備えたストリーム再生装置、およびデータ分離方法に関し、特に、入力データが固定データ長のデータ群により構成される場合に適用されるデータ分離装置、ストリーム再生装置およびデータ分離方法に関する。
【背景技術】
【０００２】
近年、ＭＰＥＧ（Moving Picture Experts Group）方式などの画像の圧縮符号化技術の進歩などに伴い、画像信号をデジタル化して取り扱うことが一般的になっている。例えば映画などのビデオコンテンツを提供するための可搬型記録メディアとしては、従来のビデオテープに代わりＤＶＤ（Digital Versatile Disk）が一般的になりつつある。また、放送を通じて受信したコンテンツをＤＶＤやＨＤＤ（Hard Disk Drive）にデジタル記録することが可能なビデオレコーダの普及も進んでいる。
【０００３】
ＤＶＤでは、画像の符号化方式としてＭＰＥＧ２方式が採用されており、ビデオやオーディオのエレメンタリストリーム（ＥＳ）がプログラムストリーム（ＰＳ）として多重化されて記録されている。そして、再生の際には、ディスクから読み出したＰＳからＥＳを抽出することで、各ＥＳを復号化することができる。ＰＳからのＥＳの抽出はデマルチプレクサ（ＤｅＭＵＸ）が行い、このＤｅＭＵＸの機能は、最近ではＣＰＵによるソフトウェア処理で実現されることが多い。
【０００４】
図９は、ＤｅＭＵＸ処理時に使用される従来のバッファの構成例を示す図である。
ＤＶＤなどの記録媒体から読み出されたＰＳは、ＰＳ用バッファ１００に一旦格納された後、ＤｅＭＵＸ用バッファ群２００に読み出される。図９に示すＤｅＭＵＸ用バッファ群２００は、ＰＳからビデオＥＳおよびオーディオＥＳを分離するものであり、そのための６個のバッファ２０１〜２０６を備えている。
【０００５】
ＰＳ用バッファ１００内のＰＳは、まずバッファ２０１に転送される。バッファ２０１ではパックヘッダの解析が行われて、このパックヘッダを除いたパケットの部分がバッファ２０２に転送される。バッファ２０２ではパケットヘッダが解析されて、ＥＳが抽出される。ビデオＥＳはバッファ２０３に、オーディオＥＳはバッファ２０４にそれぞれ転送される。この後、バッファ２０３内のビデオＥＳは一旦バッファ２０５に格納された後、ビデオデコーダに出力される。同様に、バッファ２０４内のオーディオＥＳは、バッファ２０６に格納された後、オーディオデコーダに出力される。
【０００６】
図１０は、上記のＤｅＭＵＸ処理の流れを概略的に示す図である。
図１０では例として、図９のバッファ２０１〜２０４の間での処理について示している。図１０（Ａ）に示すように、従来では、バッファ２０１内のパックヘッダを解析する処理（ステップＳ１０１）、解析されたパケットのデータをバッファ２０２に転送する処理（ステップＳ１０２）、バッファ２０２内のパケットヘッダを解析する処理（ステップＳ１０３）、解析されたＥＳのデータをバッファ２０３あるいは２０４に転送する処理（ステップＳ１０４）をＣＰＵが順次実行することで、１つのパックからＥＳを分離していた。この手法では、ステップＳ１０２およびＳ１０４におけるバッファ間のデータ転送処理をＣＰＵが担っているため、ＣＰＵの処理負荷が高いことが問題であった。
【０００７】
そこで、メモリアクセス処理をハードウェアにより独立して行うＤＭＡと呼ばれる手法が用いられるようになった。図１０（Ｂ）に示すように、ＣＰＵによりバッファ２０１内のパックヘッダが解析された後（ステップＳ１１１）、ＤＭＡの制御ハードウェアによりバッファ２０１からバッファ２０２に対するパケットの転送が行われる（ステップＳ１２１）。その後、同様にＣＰＵによってバッファ２０２内のパックヘッダが解析され（ステップＳ１１３）、解析されたパケットがバッファ２０２からバッファ２０３あるいは２０４にＤＭＡ転送される（ステップＳ１２２）。これにより、ＣＰＵは、ＤＭＡによるバッファ転送時に他の処理（図中ステップＳ１１２およびＳ１１４）を並行して行うことが可能となる。
【０００８】
しかし、上記の図１０（Ｂ）の手法を用いた場合にも、ＤＭＡによる転送処理を複数の階層のバッファ２０１および２０２ごとに逐次行う必要がある。このため、時間の制約があるシステムにおいては、ＤｅＭＵＸ処理が他の処理に追いつかなくなることもあり得る。
【０００９】
これに対して、各バッファ２０１および２０２におけるデータ転送を並行して行うことができれば、全体の処理速度をさらに高めることが可能である。すなわち、バッファ２０１からバッファ２０２へのパケットのデータを転送している間に、バッファ２０２では解析されたＥＳをバッファ２０３または２０４に同時に転送することで、転送に要する時間を短縮できる。このような転送処理は、リング構造によりバッファを管理するリングバッファを用いることで実現することができる（例えば、特許文献１参照）。
【特許文献１】特開平５−２８９８４７号公報（段落番号〔０００２〕〜〔０００９〕、図１０）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述したように、従来のＤｅＭＵＸ処理では、複数階層の各バッファのＤＭＡ転送をバッファごとの逐次処理により行っていたため、処理速度を向上させるための改善すべき欠点があったと言える。しかし、リングバッファを用いて各バッファのＤＭＡ転送を並行して行うようにすると、バッファのライトポインタとリードポインタの管理を厳密に行う必要があるために、処理が複雑になり、システム開発コストも増大してしまうという問題が生じる。
【００１１】
特に、ＩＳＯ／ＩＥＣ（International Organization for Standardization／International Electrotechnical Commission）１３８１８−１で規定された“Ｔｈｅ  Ｓｙｓｔｅｍ  Ｐａｒｔ  ｏｆ  ｔｈｅ  ＭＰＥＧ−２  Ｓｔａｎｄａｒｄ”に準拠したシステムでは、２Ｋｂｙｔｅの固定長のパックがバッファに転送される。これに対して、リングバッファは可変長のデータの書き込み・読み出しに適したバッファ管理方法であるので、上記のＤｅＭＵＸ処理時に用いる手法としては適当ではなかった。
【００１２】
本発明はこのような点に鑑みてなされたものであり、固定データ長のデータ群により構成される入力データのデータ分離処理が、複雑なアドレス制御を用いることなく高速化されたデータ分離装置を提供することを目的とする。
【００１３】
また、本発明の他の目的は、固定長のパックにより構成されるデータストリームのデータ分離処理が、複雑なアドレス制御を用いることなく高速化されたストリーム再生装置を提供することである。
【００１４】
さらに、本発明の他の目的は、固定データ長のデータ群により構成される入力データのデータ分離処理時が、複雑なアドレス制御を用いることなく高速化されたデータ分離方法を提供することである。
【課題を解決するための手段】
【００１５】
本発明では上記課題を解決するために、固定データ長のデータ群により構成される入力データを解析して必要なデータを分離するデータ分離装置において、それぞれ同じ記憶容量を有する２つのバッファ領域を備え、前記データ群を一時的に記憶するバッファメモリと、前記各バッファ領域に対して前記データ群をＤＭＡ転送する第１のＤＭＡ転送手段と、前記各バッファ領域からデータを読み出してＤＭＡ転送する第２のＤＭＡ転送手段と、前記各バッファ領域に記憶された前記データ群を解析するデータ解析手段と、一方の前記バッファ領域に格納された前記データ群に対する前記データ解析手段の解析結果に応じて当該バッファ領域から必要なデータを読み出すと同時に、他方の前記バッファ領域に対して次の前記データ群を書き込み、かつ、前記データ群を前記各バッファ領域に交互に転送するように、前記第１および第２のＤＭＡ転送手段にそれぞれ転送先アドレス、転送元アドレスを指定してデータ転送を実行させる転送制御手段とを有することを特徴とするデータ分離装置が提供される。
【００１６】
このようなデータ分離装置では、２つのバッファ領域を備えたバッファメモリを設けて、そのデータ書き込みおよびデータ読み出しをそれぞれ第１および第２のＤＭＡ転送手段が実行する構成としたことで、一方のバッファ領域に記憶したデータ群を解析した後に、当該バッファ領域からのデータ読み出しと他方のバッファ領域へのデータ書き込みとを並行して実行することができ、データ転送に要する時間が短縮される。また、各バッファ領域は同じ記憶容量を有するので、あらかじめ決められた２つの転送先アドレスを第１のＤＭＡ転送手段に交互に指定するだけで、各バッファ領域にデータ群を交互に転送させることができ、複雑なアドレス制御が必要とならない。従って、簡単な制御でデータ分離処理が高速化される。
【００１７】
また、本発明では、固定データ長のデータ群により構成される入力データを解析して必要なデータを分離するデータ分離方法において、それぞれ同じ記憶容量を有する２つのバッファ領域を備えたバッファメモリにおけるデータ書き込みおよびデータ読み出しをそれぞれ第１および第２のＤＭＡ転送手段が実行し、前記各バッファ領域に記憶された前記データ群をデータ解析手段が解析するように構成し、一方の前記バッファ領域に格納された前記データ群に対する前記データ解析手段による解析結果に応じて当該バッファ領域から必要なデータを読み出すと同時に、他方の前記バッファ領域に対して次の前記データ群を書き込み、かつ、前記データ群を前記各バッファ領域に交互に転送するように、転送制御手段が前記第１および第２のＤＭＡ転送手段にそれぞれ転送先アドレス、転送元アドレスを指定してデータ転送を実行させることを特徴とするデータ分離方法が提供される。
【００１８】
このようなデータ分離方法では、２つのバッファ領域を備えたバッファメモリを設けて、そのデータ書き込みおよびデータ読み出しをそれぞれ第１および第２のＤＭＡ転送手段が実行する構成としたことで、一方のバッファ領域に記憶したデータ群を解析した後に、当該バッファ領域からのデータ読み出しと他方のバッファ領域へのデータ書き込みとを並行して実行することができ、データ転送に要する時間が短縮される。また、各バッファ領域は同じ記憶容量を有するので、あらかじめ決められた２つの転送先アドレスを第１のＤＭＡ転送手段に交互に指定するだけで、各バッファ領域にデータ群を交互に転送させることができ、複雑なアドレス制御が必要とならない。従って、簡単な制御でデータ分離処理が高速化される。
【発明の効果】
【００１９】
本発明によれば、２つのバッファ領域を備えたバッファメモリを設けて、そのデータ書き込みおよびデータ読み出しをそれぞれ第１および第２のＤＭＡ転送手段が実行する構成としたことで、一方のバッファ領域に記憶したデータ群を解析した後に、当該バッファ領域からのデータ読み出しと他方のバッファ領域へのデータ書き込みとを並行して実行することができ、データ転送に要する時間を短縮できる。また、各バッファ領域は同じ記憶容量を有するので、あらかじめ決められた２つの転送先アドレスを第１のＤＭＡ転送手段に交互に指定するだけで、各バッファ領域にデータ群を交互に転送させることができ、複雑なアドレス制御が必要とならない。従って、簡単な制御でデータ分離処理を高速化でき、低コストで高性能なデータ分離装置やストリーム再生装置を実現できる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を図面を参照して詳細に説明する。以下の説明では、ストリーム再生装置として、ＤＶＤなどの光ディスクを再生する光ディスク装置を例に挙げる。
まず、図１は、ＤＶＤ−ＶＩＤＥＯディスクにおいて用いられているＭＰＥＧ２−プログラムストリーム（ＰＳ）のデータ構造を示す図である。
【００２１】
ＰＳは、ビデオ、オーディオなどの複数の符号化ストリームを多重化して１つのプログラムを構成している。図１（Ａ）に示すように、ＰＳは、上位レイヤではパック（Pack）の集合体として構成され、１つのＰＳは、先頭パック（ナビゲーションパック）に記述されたパック開始コード（３２ｂｉｔ）に始まり、終了コード（３２ｂｉｔ）で終わる。
【００２２】
図１（Ｂ）に示すように、ナビゲーションパックには、パックヘッダ、システムヘッダに続いて、１つ以上のパケット（Packetized Elementary Stream Packet、ＰＥＳパケット）が格納される。パックヘッダの先頭には上記のパック開始コードが記述され、システムヘッダにはＰＳ全体のパラメータ情報が記述される。パケットには、パケットヘッダに続いて、ビデオ、オーディオなどの個別ストリーム（ＥＳ）のデータが格納される。また、各パケットは、３２ｂｉｔのパケット開始コードにより開始され、このパケット開始コードは、２４ｂｉｔの固定値部分と８ｂｉｔのストリームＩＤ部分とからなる。
【００２３】
一方、先頭以外のパックでは、図１（Ｃ）に示すように、パックヘッダの後にパケットが格納され、システムヘッダはオプションとなっている。また、各パケットには同様に、各ＥＳのデータが格納される。
【００２４】
このように、ＭＰＥＧ２−ＰＳのデータは階層構造を有しており、ＰＳからビデオ、オーディオの各ＥＳを分離するためには階層ごとに処理する必要がある。また、本実施の形態では特に、ＩＳＯ／ＩＥＣ１３８１８−１で規定された“Ｔｈｅ  Ｓｙｓｔｅｍ  Ｐａｒｔ  ｏｆ  ｔｈｅ  ＭＰＥＧ−２  Ｓｔａｎｄａｒｄ”に準拠した２Ｋｂｙｔｅ（２０４８ｂｙｔｅ）の固定長のパックによって、ＰＳが構成されているものとする。
【００２５】
図２は、実施の形態に係る光ディスク装置の全体構成を示すブロック図である。
図２に示す光ディスク再生装置は、ＤＶＤなどの光ディスク１の記録信号を再生する光ピックアップ２と、再生信号の２値化処理などを行うＲＦ（Radio Frequency）回路３と、ＲＦ回路３からの再生データに対してエラー訂正などのデコード処理を行うＥＣＣ（Error Correcting Code）デコーダ４と、ＥＣＣデコーダ４の出力段に設けられたＰＳ格納用のバッファ５と、バッファ５からの出力データをビデオデータやオーディオデータなどに分離するＤｅＭＵＸハードウェア６と、分離されたビデオＥＳ、オーディオＥＳをそれぞれデコードするビデオデコーダ７およびオーディオデコーダ８と、デコードされたビデオデータおよびオーディオデータをそれぞれアナログ信号に変換するＮＴＳＣ（National Television Standards Committee）デコーダ９およびオーディオＤＡＣ（Digital Analog Converter）１０と、これらの各ブロックを統括的に制御するシステムコントローラ１１を具備する。
【００２６】
光ピックアップ２は、光ディスク１の記録面に対してレーザビームを照射し、その反射光に応じたＲＦ信号を再生して、ＲＦ回路３に供給する。ＲＦ回路３は、光ピックアップ２による再生信号の波形等化や２値化、同期信号の生成などの処理を行い、デジタルデータをＥＣＣデコーダ４に供給する。
【００２７】
ＥＣＣデコーダ４は、ＲＦ回路３により生成されたデジタルデータに基づき、データの復調や誤り訂正などの処理を行う。復調されたデータ（ＰＳ）は、バッファ５に一時的に格納された後、ＤｅＭＵＸハードウェア６に読み出され、これによりＥＣＣデコーダ４とＤｅＭＵＸハードウェア６との処理速度の差が吸収される。
【００２８】
なお、バッファ５としては、例えばＳＤＲＡＭ（Synchronous Dynamic ＲＡＭ）が用いられる。また、バッファ５に対しては、この例のように光ディスク１などの記録媒体から読み出されたデータの他、テレビチューナにより受信されたデータや、外部入力からのデータ、ネットワークを通じて受信したデータなどが入力されるようにしてもよい。
【００２９】
ＤｅＭＵＸハードウェア６は、後述するように、複数のバッファやバッファ間の転送を制御するＤＭＡコントローラなどを具備し、システムコントローラ１１の制御の下で、バッファ５からのＰＳをビデオＥＳおよびオーディオＥＳに分離し、それぞれビデオデコーダ７およびオーディオデコーダ８に供給する。
【００３０】
ビデオデコーダ７およびオーディオデコーダ８は、システムコントローラ１１からの基準クロック（ＳＴＣ：System Time Clock）に同期して、ビデオＥＳおよびオーディオＥＳ内のタイムスタンプに従って、各ＥＳをデコードする。
【００３１】
ＮＴＳＣデコーダ９は、ビデオデコーダ７によりデコードされたビデオデータを、ＮＴＳＣ方式のアナログテレビジョン信号に変換して出力する。また、オーディオＤＡＣ１０は、オーディオデコーダ８から出力されたオーディオデータをアナログ音声データに変換して出力する。ＮＴＳＣデコーダ９の出力信号をモニタなどに供給し、また、オーディオＤＡＣ１０の出力信号をオーディオアンプを介してスピーカに供給することにより、光ディスク１から再生した映像および音声をユーザが視聴することが可能となる。
【００３２】
システムコントローラ１１は、ＣＰＵやＲＯＭ、ＲＡＭなどを備え、上記各ブロックの制御を行う。このシステムコントローラ１１は、操作キーやリモートコントローラなどのユーザＩ／Ｆ（図示せず）を通じてユーザからの操作入力を受け付け、その操作入力に応じた各ブロックの制御を行う。
【００３３】
図３は、ＤｅＭＵＸハードウェア６の内部構成を示す図である。
図３に示すように、ＤｅＭＵＸハードウェア６は、ＰＳを階層ごとに処理するためのＤｅＭＵＸ用バッファ群６１０と、それぞれ独立したデータ転送バスを用いて対応するバッファ間でデータを転送するＤＭＡコントローラ６２１〜６２４を具備している。ＤｅＭＵＸ用バッファ群６１０には、バッファ６１１〜６１６が設けられている。なお、この実施の形態では、バッファ６１６の領域のみ、他のバッファとは別に設けられたＳＤＲＡＭ内に設けられている。
【００３４】
バッファ６１１には、バッファ５に蓄積されたＰＳのデータからパックが順次転送される。ＤＭＡコントローラ６２１は、システムコントローラ１１からのコマンドに応じて、ＰＳ用のバッファ５からバッファ６１１に対してデータを転送する。本実施の形態では、バッファ５からバッファ６１１には４パックずつ転送されるものとする。
【００３５】
バッファ６１１はパックヘッダを解析してパケットを抽出するためのものであり、バッファ６１１内のパックからは、パックヘッダを除いたパケットの部分のみがバッファ６１２に転送される。バッファ６１２はパケットヘッダを解析してＥＳを抽出するためのものであり、その解析結果に応じて、バッファ６１２内のビデオＥＳがバッファ６１３に転送され、オーディオＥＳがバッファ６１４に転送される。
【００３６】
これらのバッファ６１１および６１２におけるヘッダの解析は、システムコントローラ１１により処理される。ＤＭＡコントローラ６２２は、パックヘッダの解析結果に応じたコマンドをシステムコントローラ１１から受け取り、そのコマンドに応じてバッファ６１１からバッファ６１２に対してデータを転送する。同様にＤＭＡコントローラ６２３は、パケットヘッダの解析結果に応じたコマンドをシステムコントローラ１１から受け取り、そのコマンドに応じてバッファ６１２からバッファ６１３または６１４に対してデータを転送する。
【００３７】
バッファ６１３では、バッファ６１２からのビデオＥＳが１アクセスユニット分（１ピクチャ分）だけ蓄積されると、そのビデオＥＳがバッファ６１６に転送される。１アクセスユニット分の蓄積の判別はシステムコントローラ１１の処理により行われ、このときにシステムコントローラ１１から出力されるコマンドに応じて、ＤＭＡコントローラ６２４がバッファ６１３からバッファ６１６に対してデータを転送する。
【００３８】
バッファ６１４では、バッファ６１２からのオーディオＥＳが１アクセスユニット分だけ蓄積されると、そのオーディオＥＳがバッファ６１５に転送される。システムコントローラ１１は、バッファ６１４に１アクセスユニット分のデータが蓄積されたことを判別して、バッファ６１４からバッファ６１５へのデータ転送を直接制御する。
【００３９】
バッファ６１６に格納されたビデオＥＳは、システムコントローラ１１の制御の下で、アクセスユニット単位でビデオデコーダ７に転送される。同様に、バッファ６１５に格納されたオーディオＥＳは、システムコントローラ１１の制御の下で、アクセスユニット単位でオーディオデコーダ８に転送される。
【００４０】
なお、バッファ６１３〜６１６は、いわゆるリングバッファとして構成される。システムコントローラ１１は、これらのバッファ６１３〜６１６におけるアクセスユニット単位のデータの先頭位置および終端位置を示すアドレスを管理して、これらにおけるデータ書き込みおよび読み出しを制御する。
【００４１】
ところで、上記の各バッファ６１１〜６１６では、これらのすべてに対するデータ転送を並行して実行することにより、処理時間を短縮することができる。このためには、各バッファにおいて、前段のバッファからのデータ書き込みと、後段のバッファへのデータ読み出しとを同時に行う必要がある。バッファ６１３〜６１６では、リングバッファの手法を用いることでこのような処理を実現している。これらのバッファ６１３〜６１６では、格納されるアクセスユニット単位のデータが可変長であるために、リングバッファの手法が適していると言える。
【００４２】
しかし、バッファ６１１には、上述したように２Ｋｂｙｔｅずつの固定長のパックが格納される。同様にバッファ６１２には、固定長のパックからヘッダを除いた２０３４ｂｙｔｅ単位のデータが格納される。このようなデータの性質を利用して、本実施の形態では、各バッファ６１１および６１２を、記憶容量の同じ２つのバッファ領域に分割したダブルバッファとして構成し、一方のバッファ領域にデータを書き込む間に、他方のバッファ領域のデータを後段のバッファに転送するようにして、書き込みおよび読み出しを並行して実行させる。
【００４３】
すなわち、バッファ６１１は、それぞれ同じ記憶容量を有するバッファヘッド６１１ａおよびバッファテイル６１１ｂの２つの領域に分割されている。同様にバッファ６１２は、同じ記憶容量を有するバッファヘッド６１２ａおよびバッファテイル６１２ｂに分割されている。この例では４パック単位で処理されることから、各バッファ領域は８Ｋｂｙｔｅの記憶容量を有している。
【００４４】
データの転送先および転送元をバッファヘッド、バッファテイルのどちらにするかは、システムコントローラ１１からＤＭＡコントローラ６２１および６２２へのコマンドにおけるアドレス指定により決められる。このとき、バッファヘッド、バッファテイルともに同じ記憶容量を有することから、転送先および転送元として各バッファ領域を示す固定的なアドレスを選択的に指定するだけで、転送先および転送元をそれぞれ切り替えることができる。このため、リングバッファと比較してはるかに簡単なアドレス制御により、書き込みおよび読み出しの並行処理を行うことが可能となる。
【００４５】
図４は、ＤＭＡ転送のためのコマンド格納領域について概念的に示す図である。
システムコントローラ１１は、バッファ５，６１１〜６１４，および６１６におけるデータ転送を開始させるにあたって、各ＤＭＡコントローラ６２１〜６２４に対するコマンド（ＤＭＸ＿ＣＭＤ）をコマンド格納領域６３０に記述していく。コマンドには、転送元アドレス、転送先アドレス、転送バイト数などが記述される。
【００４６】
コマンド格納領域６３０は、例えばバッファ６１１，６１２などが設定されるＲＡＭの一部にＦＩＦＯ（First In First Out）方式のメモリ領域として確保される。各ＤＭＡコントローラ６２１〜６２４は、システムコントローラ１１からのデータ転送命令を受信すると、このコマンド格納領域６３０に設定されたコマンドをすべて読み込み、該当するデータ転送を実行する。
【００４７】
図５は、ＤｅＭＵＸ処理の概要について説明するための図である。なお、ここではバッファ５の読み出しからバッファ６１３および６１４への書き込みのシステムコントローラ１１の処理について説明する。
【００４８】
〔ステップＳ１１〕バッファ５からバッファ６１１に対してパックを転送する際、システムコントローラ１１は、４パック分のデータをバッファヘッド６１１ａおよびバッファテイル６１１ｂにそれぞれ交互に切り替えて転送するように、ＤＭＡコントローラ６２１に対するコマンドを発行する。なお、この処理については後の図６において詳述する。
【００４９】
〔ステップＳ１２〕システムコントローラ１１は、バッファ６１１に新たに書き込んだ４パック分のデータについて、パケットヘッダを解析する。具体的には、パック開始コード（０ｘ０００００１ＢＡ）を検出する。
【００５０】
〔ステップＳ１３〕システムコントローラ１１は、パックヘッダ（１４Ｂｙｔｅ）を除いた残りのデータ（システムヘッダおよびパケット）をバッファ６１２に転送するように、ＤＭＡコントローラ６２２に対するコマンドを発行する。このとき、バッファヘッド６１１ａからはバッファヘッド６１２ａへ、バッファテイル６１１ｂからはバッファテイル６１２ｂに対してそれぞれデータを転送させるように制御する。
【００５１】
〔ステップＳ１４〕システムコントローラ１１は、バッファ６１２に対して新たに書き込んだデータについて、システムヘッダおよびパケットヘッダを解析する。具体的には、システムヘッダ開始コード（０ｘ０００００１ＢＢ）、ビデオパケット開始コード（０ｘ０００００１Ｅ０）、オーディオパケット開始コード（０ｘ０００００１Ｃ０）を検出する。ビデオパケット開始コードおよびオーディオパケット開始コードを検出した場合には、さらにそのパケットヘッダ内のパラメータを解析する。
【００５２】
〔ステップＳ１５〕ステップＳ１４における検出結果に基づいて、パケット内のビデオＥＳおよびオーディオＥＳのデータのみを、それぞれバッファ６１３および６１４に転送させるように、ＤＭＡコントローラ６２３に対するコマンドを発行する。
【００５３】
具体的には、システムヘッダを検出した場合には、その後に続くパケットがナビゲーションパック内のものであるために、これらのパケットを破棄する。また、ビデオパケット開始コードおよびオーディオパケット開始コードを検出した場合には、パケットヘッダのパラメータを解析した後、ビデオＥＳのデータをバッファ６１３に転送させ、オーディオＥＳのデータをバッファ６１４に転送させる。
【００５４】
なお、ヘッダの解析はＤＭＡコントローラ６２２および６２３によって行われるようにしてもよい。この場合、システムコントローラ１１は、ヘッダの解析結果をＤＭＡコントローラ６２２および６２３から受け取り、その結果に応じてアドレスやバイト数などを計算し、コマンドを発行する。
【００５５】
図６は、バッファ５からバッファ６１１のバッファヘッド６１１ａおよびバッファテイル６１１ｂに対する転送先切り替え処理（図５のステップＳ１１に対応）の流れを示すフローチャートである。
【００５６】
〔ステップＳ２１〕システムコントローラ１１は、ＰＳの再生が開始されてからバッファ５からバッファ６１１への最初のＤＭＡ転送であるか否かを判定する。最初である場合はステップＳ２３に進み、そうでない場合はステップＳ２２に進む。
【００５７】
〔ステップＳ２２〕システムコントローラ１１は、バッファ６１１に対する前回の転送でバッファヘッド６１１ａに転送したか否かを判定する。前回バッファヘッド６１１ａに転送した場合にはステップＳ２４に進み、そうでない場合はステップＳ２３に進む。
【００５８】
〔ステップＳ２３〕システムコントローラ１１は、バッファ５の４パック分のデータをバッファヘッド６１１ａに転送させるように、ＤＭＡコントローラ６２１に対するコマンドを発行する。
【００５９】
〔ステップＳ２４〕システムコントローラ１１は、バッファ５の４パック分のデータをバッファテイル６１１ｂに転送させるように、ＤＭＡコントローラ６２１に対するコマンドを発行する。
【００６０】
ここで、バッファヘッド６１１ａおよびバッファテイル６１１ｂはともに同じ記憶容量を有するため、ステップＳ２３およびＳ２４では、転送先アドレスとしてあらかじめ決められた２つの固定的な値をコマンド発行のたびに交互に指定すればよくなる。従ってシステムコントローラ１１は、複雑なアドレス管理を行うことなく、簡単な制御で転送先を切り替えることが可能となる。また、バッファ６１１からバッファ６１２に対するデータ転送でも同様に、あらかじめ決められた固定的な転送先アドレスをコマンド発行のたびに交互に指定することで、容易に転送先が切り替えられる。
【００６１】
図７は、ヘッダ解析およびデータ転送の処理タイミングを示すタイミングチャートである。
図７では、図５に示したパック転送先切り替え処理（ステップＳ１１）、パックヘッダ解析（ステップＳ１２）、パケット転送（ステップＳ１３）、パケットヘッダ解析（ステップＳ１４）、およびＥＳ転送（ステップＳ１５）までの処理を１つの単位として、ｎ回目から（ｎ＋３）回目まで（ただし、ｎは１以上の整数）の処理タイミングを示している。
【００６２】
図７に示すｎ回目の処理時には、バッファ６１１およびバッファ６１２にはそれぞれのバッファヘッド、バッファテイルのどちらかにすでにデータが格納されているものとする。このとき、システムコントローラ１１は図７に示すように、まず、バッファ６１１についてパックヘッダの解析を行い、次にバッファ６１２についてパケットヘッダの解析を行う。これらの解析処理は逐次処理される。
【００６３】
なお、ここまでの処理で、バッファ５からバッファ６１１へのパックの転送、バッファ６１１からバッファ６１２へのパケット（およびシステムヘッダ）の転送、バッファ６１２からバッファ６１３へのビデオＥＳの転送、バッファ６１２からバッファ６１４へのオーディオＥＳの転送をそれぞれ実行させるためのコマンドがシステムコントローラ１１により発行され、コマンド格納領域６３０に格納されるが、図７ではこれらを省略している。
【００６４】
そして次に、ＤＭＡコントローラ６２１〜６２３が、コマンド格納領域６３０に格納されたコマンドに基づいてデータを転送する。このとき、各ＤＭＡコントローラ６２１〜６２３は、コマンド格納領域６３０に格納されたコマンドを１回のキックですべて処理するので、これらのバッファ間のデータ転送は、図７に示すように同時に実行される。すなわち、バッファ６１１でのデータ書き込みおよびデータ読み出し、バッファ６１２でのデータ読み出しおよびデータ書き込みが、すべて並行して実行される。なお、これらのデータ転送はＤＭＡコントローラ６２１〜６２３により実行されるので、この処理の間、システムコントローラ１１は他の処理を実行することができる。
【００６５】
以上の一連の処理が、（ｎ＋１）回目、（ｎ＋２）回目、（ｎ＋３）回目と繰り返される。ここで、バッファ６１１および６１２のそれぞれについての解析（コマンド発行を含む）に要する時間をｐａｒｓｅ＿ｔ、バッファ間のＤＭＡ転送に要する時間をｄｍａ＿ｔ、ＤＭＡ転送のためのハードウェアアクセスに要するオーバヘッドの時間をｏｖｅｒｈｅａｄ＿ｔとして、上記のｎ回目〜（ｎ＋３）回目までの４回の処理によって合計１６パック分のデータが処理される場合の時間Ｔ１を概算すると、次の式（１）のようになる。
Ｔ１＝４×（２×ｐａｒｓｅ＿ｔ＋ｄｍａ＿ｔ＋ｏｖｅｒｈｅａｄ＿ｔ）……（１）
また、図８には、従来の同様の処理についてのタイミングチャートを参考のために示す。この図８では、バッファ６１１および６１２がそれぞれ１つのバッファ領域を備えていた従来の構成を想定している。
【００６６】
この図８に示すように、従来のｎ回目の処理では、バッファ５からバッファ６１１へのパックの転送、バッファ６１１についてのパックヘッダの解析、バッファ６１１からバッファ６１２へのパケットの転送、バッファ６１２についてのパケットヘッダの解析、バッファ６１２からバッファ６１３へのビデオＥＳの転送、バッファ６１２からバッファ６１３へのオーディオＥＳの転送のそれぞれの処理が逐次実行される。
【００６７】
これらのうち、データ転送処理についてはＤＭＡコントローラにより実行され、この処理中にはシステムコントローラ１１は他の処理を実行することができるものの、データ転送を含むすべての処理が逐次実行されるために、全体の処理時間は長くなってしまう。図７の場合と同様に、ｎ回目〜（ｎ＋３）回目までの処理によって１６パック分のデータが処理される場合の時間Ｔ２を概算すると、次の式（２）のようになる。
Ｔ２＝４×｛２×ｐａｒｓｅ＿ｔ＋４×（ｄｍａ＿ｔ＋ｏｖｅｒｈｅａｄ＿ｔ）｝
……（２）
Ｔ２−Ｔ１＝１２×（ｄｍａ＿ｔ＋ｏｖｅｒｈｅａｄ＿ｔ）            ……（３）
従って、上式（３）に示した値だけ処理時間が短縮されていることがわかる。ｄｍａ＿ｔの値がｏｖｅｒｈｅａｄ＿ｔの値より十分大きいことを考慮しても、従来の処理と比較して本実施の形態での処理時間は大幅に短縮されるので、１つのＰＳを再生する場合の処理時間の短縮効果、すなわち処理効率の向上効果は極めて大きい。
【００６８】
以上説明したように、本実施の形態では、バッファ６１１および６１２を、それぞれ同じ記憶容量を有する２つのバッファ領域に分割して、交互にデータを書き込む構成としたことにより、複雑なアドレス管理を行うことなく、固定的な転送先アドレスを選択的に指定することにより、これらのバッファ６１１および６１２でデータの書き込みおよび読み出しを並行して実行することが可能となる。従って、比較的簡単な制御により、ＤｅＭＵＸ処理に要する処理時間が大幅に短縮されるとともに、処理時の消費電力が低減される。
【００６９】
また、ＤｅＭＵＸ処理時のシステムコントローラ１１の処理効率が向上することから、システムコントローラ１１の処理能力を小さくしても従来と同様の処理を実行することができ、システムコントローラ１１の製造コストを低減することができる。逆に、従来と同じ処理能力のシステムコントローラ１１を使用した場合には、同じ装置内の他の処理を実行する余剰能力が生まれるので、コストの上昇を抑制しながらも、その装置の機能を向上させることができる。
【００７０】
なお、以上の実施の形態では、本発明を光ディスク装置に適用した例について説明したが、これに限ったことでなく、本発明は、固定データ長のパックなどのデータ群を含むストリームのＤｅＭＵＸ処理を行う他の装置にも適用することが可能である。例えば、ＨＤＤや磁気テープ、半導体メモリなど、ストリームが記憶されたあらゆる記憶媒体からデータを読み出して再生する再生装置、テレビ放送波などから受信したストリームを再生する装置（テレビチューナ、ビデオレコーダ、テレビジョン受像機、ＰＣ用テレビチューナボードなど）、ネットワークを通じて受信したストリームを再生する装置などに適用することができる。
【００７１】
さらに本発明は、ビデオやオーディオのストリームのＤｅＭＵＸ処理だけでなく、固定データ長のデータ群からデータを解析し、必要なデータを分離して転送する様々な処理に適用して、その処理時間を短縮させることができる。例えば、ＡＴＭ（Asynchronous Transfer Mode）交換機システムにおける５３ｂｙｔｅの固定データ長セルの解析および転送時の処理や、固定長の文字データ処理などに適用することができる。
【図面の簡単な説明】
【００７２】
【図１】ＭＰＥＧ−２プログラムストリームのデータ構造を示す図である。
【図２】実施の形態に係る光ディスク装置の全体構成を示すブロック図である。
【図３】ＤｅＭＵＸハードウェアの内部構成を示す図である。
【図４】ＤＭＡ転送のためのコマンド格納領域について概念的に示す図である。
【図５】ＤｅＭＵＸ処理の概要について説明するための図である。
【図６】１段目のバッファのバッファヘッドおよびバッファテイルに対する転送先切り替え処理の流れを示すフローチャートである。
【図７】本実施の形態のヘッダ解析およびデータ転送の処理タイミングを示すタイミングチャートである。
【図８】従来のヘッダ解析およびデータ転送の処理タイミングを示すタイミングチャートである。
【図９】ＤｅＭＵＸ処理時に使用される従来のバッファの構成例を示す図である。
【図１０】従来のＤｅＭＵＸ処理の流れを概略的に示す図である。
【符号の説明】
【００７３】
１……光ディスク、２……光ピックアップ、３……ＲＦ回路、４……ＥＣＣデコーダ、５……バッファ、６……ＤｅＭＵＸハードウェア、７……ビデオデコーダ、８……オーディオデコーダ、９……ＮＴＳＣデコーダ、１０……オーディオＤＡＣ、１１……システムコントローラ、６１０……ＤｅＭＵＸ用バッファ群、６１１〜６１６……バッファ、６１１ａ，６１２ａ……バッファヘッド、６１１ｂ，６１２ｂ……バッファテイル、６２１〜６２４……ＤＭＡコントローラ
【図１】
2006121184.tif 000003
【図２】
2006121184.tif 000004
【図３】
2006121184.tif 000005
【図４】
2006121184.tif 000006
【図５】
2006121184.tif 000007
【図６】
2006121184.tif 000008
【図７】
2006121184.tif 000009
【図８】
2006121184.tif 000010
【図９】
2006121184.tif 000011
【図１０】
2006121184.tif 000012