(57)【特許請求の範囲】
【請求項１】
１つのプログラムを基本的なパケットに多重化して時分割伝送する方式のプログラムストリームと、マルチプログラム対応の多重・分離方式のトランスポートストリームとのいずれかからデータであるエレメンタリストリームを抽出するＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）ビデオエレメンタリストリーム抽出装置であって、
入力されるストリームから前記トランスポートストリームにおいて所定長毎に現れる同期バイトを検出して当該トランスポートストリームのパケットの先頭を示す信号を生成する同期バイト検出手段と、
前記入力されるストリームと前記同期バイト検出手段で生成された信号とから前記トランスポートストリーム中の前記エレメンタリストリームのヘッダ検出信号と前記トランスポートストリームのデータ検出信号とを生成するトランスポートストリームヘッダ処理手段と、
前記入力されるストリームから前記プログラムストリーム中の前記エレメンタリストリームのヘッダ検出信号を生成するプログラムストリームヘッダ処理手段と、
前記同期バイト検出手段は、前記エレメンタリストリームが含まれているＰＩＤ（Ｐａｃｋｅｔ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を検出する手段と、前記ＰＩＤを格納する手段と、前記トランスポートストリームの先頭の同期バイトの位置情報を検出する手段と、
前記入力されるストリームと前記トランスポートストリームヘッダ処理手段で生成された信号と前記プログラムストリームヘッダ処理手段で生成された信号とから前記エレメンタリストリーム中のデータ検出信号を生成するエレメンタリストリームデータ処理手段と、
前記トランスポートストリームヘッダ処理手段の処理と前記プログラムストリームヘッダ処理手段の処理と前記エレメンタリストリームデータ処理手段の処理とを行うために前記入力されるストリームを３クロック遅延する手段とを含むことを特徴とするＭＰＥＧビデオエレメンタリストリーム抽出装置。
【請求項２】
前記エレメンタリストリームデータ処理手段は、前記入力されたストリームをそのまま出力する際に現在出力中のデータが前記エレメンタリストリームであるか及び前記エレメンタリストリーム以外のストリームであるかのいずれかを示す信号を付加して外部に通知するようにしたことを特徴とする請求項１記載のＭＰＥＧビデオエレメンタリストリーム抽出装置。
【請求項３】
１つのプログラムを基本的なパケットに多重化して時分割伝送する方式のプログラムストリームと、マルチプログラム対応の多重・分離方式のトランスポートストリームとのいずれかからデータであるエレメンタリストリームを抽出するＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）ビデオエレメンタリストリーム抽出装置のエレメンタリストリーム抽出方法であって、
前記ＭＰＥＧビデオエレメンタリストリーム抽出装置が、入力されるストリームから前記トランスポートストリームにおいて所定長毎に現れる同期バイトを検出して当該トランスポートストリームのパケットの先頭を示す信号を生成する同期バイト検出処理と、前記入力されるストリームと前記同期バイト検出手段で生成された信号とから前記トランスポートストリーム中の前記エレメンタリストリームのヘッダ検出信号と前記トランスポートストリームのデータ検出信号とを生成するトランスポートストリームヘッダ処理と、前記入力されるストリームから前記プログラムストリーム中の前記エレメンタリストリームのヘッダ検出信号を生成するプログラムストリームヘッダ処理とを実行し、
前記同期バイト検出処理は、前記エレメンタリストリームが含まれているＰＩＤ（Ｐａｃｋｅｔ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を検出するステップと、前記ＰＩＤを格納するステップと、前記トランスポートストリームの先頭の同期バイトの位置情報を検出するステップとを含み、
前記入力されるストリームと前記トランスポートストリームヘッダ処理手段で生成された信号と前記プログラムストリームヘッダ処理手段で生成された信号とから前記エレメンタリストリーム中のデータ検出信号を生成するエレメンタリストリームデータ処理を実行し、前記トランスポートストリームヘッダ処理と前記プログラムストリームヘッダ処理と前記エレメンタリストリームデータ処理とを行うために前記入力されるストリームを３クロック遅延することを特徴とするエレメンタリストリーム抽出方法。
【請求項４】
前記エレメンタリストリームデータ処理は、前記入力されたストリームをそのまま出力する際に現在出力中のデータが前記エレメンタリストリームであるか及び前記エレメンタリストリーム以外のストリームであるかのいずれかを示す信号を付加して外部に通知するようにしたことを特徴とする請求項３記載のエレメンタリストリーム抽出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＭＰＥＧビデオエレメンタリストリーム抽出装置及びそれに用いるエレメンタリストリーム抽出方法に関し、特にＰＳ（Ｐｒｏｇｒａｍ  Ｓｔｒｅａｍ）からＥＳ（Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）を抽出したり、ＴＳ（Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ）からＥＳを抽出したりする回路に関する。
【０００２】
【従来の技術】
ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）システムストリームには、１つのプログラム（映画や番組等）を基本的なパケットに多重化して時分割伝送する方式のＰＳと、マルチプログラム対応の多重・分離方式のＴＳとの二種が存在する。
【０００３】
電子透かし挿入／検出器のようなＭＰＥＧストリームとして圧縮されたままの画像情報を扱うシステムでは、ＴＳ／ＰＳに含まれるデータであるＶ−ＥＳ（Ｖｉｄｅｏ−Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）を抽出する必要がある。
【０００４】
ＰＳからＥＳを抽出したり、ＴＳからＥＳを抽出したりする回路としては、いわゆるデマックス（ＤＥＭＵＸ）と呼ばれる回路が存在する。この回路ではＰＳ入力用の回路とＴＳ入力用の回路とが別の回路として存在するか、ＰＳ処理部とＴＳ処理部との両方を独立して内包し、どちらかの回路を動作させることによって切替えて使用している。
【０００５】
また、一般のデマックス回路では、例えばＴＳを入力してＶ−ＥＳを出力するシステムでは、Ｖ−ＥＳのみが出力され、その他のデータの一部または全部が出力されず、内部で廃棄する処理を行っている。
【０００６】
【発明が解決しようとする課題】
上述した従来のＰＳからＥＳを抽出したり、ＴＳからＥＳを抽出したりする回路では、ＰＳ入力用の回路とＴＳ入力用の回路とを切替えて使用する場合、入力するストリームがＴＳであるか、ＰＳであるかを予め情報として切替え回路に供給する必要がある。
【０００７】
また、内部で廃棄する処理を行う場合には、再び元のＴＳストリームに戻す際に、Ｖ−ＥＳと他のデータとをあらためて結合し、ＴＳストリームを作り直す必要がある。
【０００８】
そこで、本発明の目的は上記の問題点を解消し、一旦、ビデオストリームを抽出した後にそのビデオストリームデータの一部を変更して元のストリーム構造に容易に戻すことができるＭＰＥＧビデオエレメンタリストリーム抽出装置及びそれに用いるエレメンタリストリーム抽出方法を提供することにある。
【０００９】
【課題を解決するための手段】
本発明によるＭＰＥＧビデオエレメンタリストリーム抽出装置は、１つのプログラムを基本的なパケットに多重化して時分割伝送する方式のプログラムストリームと、マルチプログラム対応の多重・分離方式のトランスポートストリームとのいずれかからデータであるエレメンタリストリームを抽出するＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）ビデオエレメンタリストリーム抽出装置であって、
入力されるストリームから前記トランスポートストリームにおいて所定長毎に現れる同期バイトを検出して当該トランスポートストリームのパケットの先頭を示す信号を生成する同期バイト検出手段と、
前記入力されるストリームと前記同期バイト検出手段で生成された信号とから前記トランスポートストリーム中の前記エレメンタリストリームのヘッダ検出信号と前記トランスポートストリームのデータ検出信号とを生成するトランスポートストリームヘッダ処理手段と、
前記入力されるストリームから前記プログラムストリーム中の前記エレメンタリストリームのヘッダ検出信号を生成するプログラムストリームヘッダ処理手段と、
前記同期バイト検出手段は、前記エレメンタリストリームが含まれているＰＩＤ（Ｐａｃｋｅｔ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を検出する手段と、前記ＰＩＤを格納する手段と、前記トランスポートストリームの先頭の同期バイトの位置情報を検出する手段と、
前記入力されるストリームと前記トランスポートストリームヘッダ処理手段で生成された信号と前記プログラムストリームヘッダ処理手段で生成された信号とから前記エレメンタリストリーム中のデータ検出信号を生成するエレメンタリストリームデータ処理手段と、
前記トランスポートストリームヘッダ処理手段の処理と前記プログラムストリームヘッダ処理手段の処理と前記エレメンタリストリームデータ処理手段の処理とを行うために前記入力されるストリームを３クロック遅延する手段とを含む。
【００１０】
本発明によるエレメンタリストリーム抽出方法は、１つのプログラムを基本的なパケットに多重化して時分割伝送する方式のプログラムストリームと、マルチプログラム対応の多重・分離方式のトランスポートストリームとのいずれかからデータであるエレメンタリストリームを抽出するＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）ビデオエレメンタリストリーム抽出装置のエレメンタリストリーム抽出方法であって、
前記ＭＰＥＧビデオエレメンタリストリーム抽出装置が、入力されるストリームから前記トランスポートストリームにおいて所定長毎に現れる同期バイトを検出して当該トランスポートストリームのパケットの先頭を示す信号を生成する同期バイト検出処理と、前記入力されるストリームと前記同期バイト検出手段で生成された信号とから前記トランスポートストリーム中の前記エレメンタリストリームのヘッダ検出信号と前記トランスポートストリームのデータ検出信号とを生成するトランスポートストリームヘッダ処理と、前記入力されるストリームから前記プログラムストリーム中の前記エレメンタリストリームのヘッダ検出信号を生成するプログラムストリームヘッダ処理とを実行し、
前記同期バイト検出処理は、前記エレメンタリストリームが含まれているＰＩＤ（Ｐａｃｋｅｔ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を検出するステップと、前記トランスポートストリームの先頭の同期バイトの位置情報を検出するステップとを含み、
前記入力されるストリームと前記トランスポートストリームヘッダ処理手段で生成された信号と前記プログラムストリームヘッダ処理手段で生成された信号とから前記エレメンタリストリーム中のデータ検出信号を生成するエレメンタリストリームデータ処理を実行し、前記トランスポートストリームヘッダ処理と前記プログラムストリームヘッダ処理と前記エレメンタリストリームデータ処理とを行うために前記入力されるストリームを３クロック遅延する。
【００１１】
すなわち、本発明のＭＰＥＧビデオエレメンタリストリーム抽出装置は、入力されるストリームがＴＳまたはＰＳのどちらであってもそれを自動的に判定し、正しくＥＳを抽出可能とすることを特徴とする。
【００１２】
ＴＳではＶ−ＥＳ以外に、ＰＡＴ（Ｐｒｏｇｒａｍ  ＡｓｓｏｃｉａｔｉｏｎＴａｂｌｅ）やＣＡＴ（Ｃｏｎｄｉｔｉｏｎａｌ  Ａｃｃｅｓｓ  Ｔａｂｌｅ）等のストリームも伝送されるため、ＴＳ内に含まれるＶ−ＥＳを的確に抽出するために、一般に、抽出回路の外部からＶ−ＥＳが含まれているＰＩＤ（Ｐａｃｋｅｔ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を指定して抽出を行っている。これに対し、本発明ではＶ−ＥＳの含まれるＰＩＤを自動的に検出して抽出作業を行う。また、ＴＳストリームの先頭の同期バイトの位置情報を別途供給するシステムが一般的であるが、この点も、本発明では同期バイト検出部にて解決している。
【００１３】
さらに、電子透かし挿入器のようにＭＰＥＧストリームの一部を情報刷り込みのために変更し、再び、元のＴＳまたはＰＳストリーム仕様に準拠したストリームを出力するためには、一般のデマックス処理のように、Ｖ−ＥＳ以外のデータを廃棄する方法で抽出を行うことができない。
【００１４】
本発明では入力ストリームがそのまま出力ストリームとして出力され、出力される際に１ビットの信号を付加し、その信号のレベルによって現在出力中のデータがＶ−ＥＳであるか、Ｖ−ＥＳ以外のストリームであるかを示す。また、本動作をクロック同期回路で構成し、常に３クロック分のデータ遅延を発生させ、その間に本動作を行っている。
【００１５】
これによって、ＴＳとＰＳとの種別を自動的に判断し、そのストリームの全体を出力しつつ、Ｖ−ＥＳの部分であるかを示す信号を出力する。よって、本発明では入力ストリームをそのまま出力する構造のため、一旦、ビデオストリームを抽出した後に、ビデオストリームデータの一部を変更し、元のストリーム構造に戻すシステムが容易に実現可能となる。
【００１６】
【発明の実施の形態】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の一実施例によるＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）ビデオエレメンタリストリーム抽出装置の構成を示すブロック図である。図１において、本発明の一実施例は入力したＭＰＥＧデータを３クロック間蓄積するデータ蓄積部としてデータ蓄積部（Ａ）１とデータ蓄積部（Ｂ）２とデータ蓄積部（Ｃ）３とを備えている。
【００１７】
また、本発明の一実施例では他の構成として、ＴＳ（Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ）入力時に同期バイト（４７ｈ）を検出する同期バイト検出部４と、ＴＳ入力時にＴＳヘッダを処理するＴＳヘッダ処理部５と、ＰＳ（Ｐｒｏｇｒａｍ  Ｓｔｒｅａｍ）入力時にＰＳヘッダを処理するＰＳヘッダ処理部６と、ＴＳ及びＰＳに含まれるＰＥＳ（Ｐａｃｋｅｔｉｚｅｄ  Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）データを処理するＰＥＳデータ処理部７とを備えている。
【００１８】
この図１を参照して本発明の一実施例によるデータ蓄積部の動作について説明する。データ蓄積部（Ａ）１への入力信号ＭＰＥＧストリームデータ入力イネーブル１０２は８Ｂｉｔ幅で入力され、ＭＰＥＧストリームデータ１０１は図示せぬシステムクロックに同期して変化する。ＭＰＥＧストリームデータ入力イネーブル１０２は、ＭＰＥＧストリームデータ１０１が現在のクロックで有効であるか、あるいは無効であるかを示している。
【００１９】
データ蓄積部（Ａ）１は９個のフリップフロップ（以下、Ｆ／Ｆとする）から構成されている。これらのＦ／Ｆのうちの８個はクロックに同期してＭＰＥＧストリームデータ１０１を保持し、データ蓄積部（Ａ）データ出力１１１として出力される。残りの１個はクロックに同期してＭＰＥＧストリームデータ入力イネーブル１０２を保持し、データ蓄積部（Ａ）データ出力イネーブル１１２として出力される。
【００２０】
これによって、データ蓄積部（Ａ）データ出力イネーブル１１２はデータ蓄積部（Ａ）データ出力１１１が有効であるか、あるいは無効であるかを示すことになる。
【００２１】
データ蓄積部（Ｂ）２及びデータ蓄積部（Ｃ）３も、上記のデータ蓄積部（Ａ）１と同様にして動作し、データ蓄積部（Ｃ）データ出力イネーブル１３２はデータ蓄積部（Ｃ）データ出力１３１が有効であるか、あるいは無効であるかを示す。
【００２２】
これによって、３つのデータ蓄積部（Ａ）１、データ蓄積部（Ｂ）２、データ蓄積部（Ｃ）３によって、ＭＰＥＧストリームデータ１０１及びＭＰＥＧストリームデータ入力イネーブル１０２は３クロック遅れる形で、データ蓄積部（Ｃ）データ出力１３１及びデータ蓄積部（Ｃ）データ出力イネーブル１３２として出力される。
【００２３】
図２は図１の同期バイト検出部４の内部動作を示すフローチャートである。この図２を参照して同期バイト検出部４の動作について説明する。ここで、同期バイト検出部４はＭＰＥＧストリームデータ入力イネーブル１０２とＭＰＥＧストリームデータ１０１とを入力信号とし、同期バイト検出信号１４１を生成する。
【００２４】
図２においてはステートＳ１にて、ＭＰＥＧストリームデータ入力イネーブル１０２が入力イネーブル状態になるのを待つ。ＭＰＥＧストリームデータ入力イネーブル１０２がイネーブル状態を示すと、そのクロックにて、ステートＳ２で示されるように、ＭＰＥＧストリームデータ１０１のデータが４７ｈ（１６進数で４７であることを示す）であるかどうかを確認する。
【００２５】
ＭＰＥＧストリームデータ１０１のデータが４７ｈで無ければ、ステートＳ１に遷移し、４７ｈが入力されるのを待つ。４７ｈが入力されると、ステートＳ３に遷移し、続く１８７バイト（Ｂｙｔｅ）のデータが入力されるのを待つ。
【００２６】
１８８バイト目のデータが入力されると、ステートＳ４に遷移し、その時のＭＰＥＧストリームデータ１０１のデータが４７ｈであるかどうかを確認する。４７ｈで無ければ、ステートＳ１に遷移する。４７ｈであれば、ステートＳ５に遷移する。ステートＳ５ではステートＳ３と同様の動作をする。また、ステートＳ６ではステートＳ４と同様の動作をする。
【００２７】
ステートＳ４で４７ｈに一致した場合にはステートＳ７に遷移する。この時、同期バイト４７ｈがデータ蓄積部（Ａ）１から出力されるタイミングで、同期バイト検出信号１４１が１クロック間、アクティブとなる。
【００２８】
ステートＳ７では続く１８８バイト毎にステートＳ８に遷移する。ステートＳ８で、その時のＭＰＥＧストリームデータ１０１のデータが４７ｈに一致するかどうかを確認し、一致すれば、同期バイト４７ｈがデータ蓄積部（Ａ）１から出力されるタイミングで、同期バイト検出信号１４１が１クロック間、アクティブとなる。その後、ステートＳ７に遷移して、引き続き動作を続ける。一致しなかった場合には同期バイト検出信号１４１をアクティブとせず、ステートＳ１に遷移して上記の動作を繰り返す。
【００２９】
この同期バイト検出部４ではＴＳにて同期バイト（４７ｈ）が１８８バイト毎に現れることを利用し、ＴＳパケット（１８８バイトのパケット）の先頭を示す信号を生成している。
【００３０】
この例では、１８８バイト毎に連続する３回の同期バイトを検出し、同期バイト検出信号１４１を生成しているが、より多くの回数によって判断することで、より確実にＴＳパケットの先頭を検出することができる。実際の動作としては、同期バイト検出信号１４１がアサートされるのがデータ蓄積部（Ａ）データ出力１１１とデータ蓄積部（Ａ）データ出力イネーブル１１２と同期した形となり、データ蓄積部（Ａ）データ出力１１１にて４７ｈが出力されているタイミングと同期バイト検出信号１４１がアサートされるタイミングとが一致する。
【００３１】
図３及び図４は図１のＴＳヘッダ処理部５の内部動作を示すフローチャートである。これら図３及び図４を参照してＴＳヘッダ処理部５の動作について説明する。ここで、ＴＳヘッダ処理部５はデータ蓄積部（Ａ）１から出力されるデータ蓄積部（Ａ）データ出力１１１と、データ蓄積部（Ａ）データ出力イネーブル１１２及び同期バイト処理部４から出力される同期バイト検出信号１４１とを入力し、これらの信号からＴＳ中のＰＥＳヘッダ検出信号１５１とＴＳデータ検出信号１５２とを生成する。
【００３２】
図３及び図４においてはステートＳ１１にて、同期バイト検出信号１４１がアクティブでかつデータ蓄積部（Ａ）データ出力イネーブル１１２がイネーブルであるクロックを待つ。上記の条件が成立すると、ステートＳ１２に遷移する。
【００３３】
ステートＳ１２では４７ｈに続く３バイトのデータからＩＳＯ−１３８１８−１にて定義される１ビットのＰＵＳＩ（ｐａｙｌｏａｄ  ｕｎｉｔ  ｓｔａｒｔｉｎｄｉｃａｔｏｒ）と１３ビットのＰＩＤと２ビットのＡＦＣ（ａｄａｐｔａｔｉｏｎ  ｆｉｅｌｄ  ｃｏｎｔｒｏｌ）とを抽出する。
【００３４】
この時、１パケット毎に数値が増加する４ビットのｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒを確認することで、連送パケット（連続するパケットのｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒが同一の場合）や、パケットの非連続性（連続するパケット間でｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒが１増加しない場合）を確認し、処理を中断する等の例外的処理を行うことができる。しかしながら、本実施例ではこの処理についての説明を省略する。ＰＵＳＩ、ＰＩＤ、ＡＦＣの格納が完了すると、ステートＳ１３に遷移する。
【００３５】
ステートＳ１３ではＰＵＳＩが１であるかどうかを確認する。ＰＵＳＩが０の場合にはステートＳ１１に遷移する。ＰＵＳＩが１の場合にはステートＳ１４に遷移する。ステートＳ１４ではＡＦＣの２ビットのうちの上位ビットが１であるかどうかを確認する。
【００３６】
上位ビットが０である場合にはステートＳ１８に遷移する。上位ビットが１である場合にはステートＳ１５に遷移する。ステートＳ１５では、次に続く１バイトのデータをＡＦ＿ＬＥＮ（ａｄａｐｔａｔｉｏｎ  ｆｉｅｌｄ＿ｌｅｎｇｔｈ）として保持し、ステートＳ１６に遷移する。
【００３７】
ステートＳ１６ではＡＦ＿ＬＥＮが０であるかどうかを確認し、ＡＦ＿ＬＥＮが０の場合にはステートＳ１８に遷移する。ＡＦ＿ＬＥＮが０より大きな値の場合にはステートＳ１７に遷移する。ステートＳ１７ではＡＦ＿ＬＥＮで示されるデータ数が入力されるのを確認し、データ入力完了後にステートＳ１８に遷移する。
【００３８】
ステートＳ１８ではＡＦＣの２ビットのうちの下位ビットが１であるかどうかを確認する。下位ビットが０である場合にはステートＳ１１に遷移する。下位ビットが１である場合にはステートＳ１９に遷移する。ステートＳ１９では次のデータが入力されるのを待ち、データが入力されるとステートＳ２０に遷移する。
【００３９】
ステートＳ２０では入力されたデータが００ｈであるかどうかを確認する。データが００ｈでない場合にはステートＳ１１に遷移する。ステートＳ２１では次のデータが入力されるのを待ち、データが入力されるとステートＳ２２に遷移する。ステートＳ２２では入力されたデータが００ｈであるかどうかを確認する。データが００ｈでない場合にはステートＳ１１に遷移する。
【００４０】
ステートＳ２３では次のデータが入力されるのを待ち、データが入力されるとステートＳ２４に遷移する。ステートＳ２４では入力されたデータが００ｈであるかどうかを確認する。データが００ｈである場合にはステートＳ２３に遷移する。データが００ｈでない場合にはステートＳ２５に遷移する。
【００４１】
ステートＳ２５では入力されたデータが０１ｈであるかどうかを確認する。データが０１ｈである場合にはステートＳ２６に遷移する。データが０１ｈでない場合にはステートＳ１１に遷移する。
【００４２】
ステートＳ２６では次のデータが入力されるのを待ち、データが入力されるとステートＳ２７に遷移する。ステートＳ２７では入力されたデータの上位４ビットがＥｈであるかどうかを確認する。この場合、下位４ビットは問わない。上位４ビットがＥｈである場合にはステートＳ２８に遷移する。上位４ビットがＥｈでない場合にはステートＳ１１に遷移する。
【００４３】
ステートＳ２８では先に一時的に保存したＰＩＤを別のターゲットＰＩＤ格納部（図示せず）に保存する。ステートＳ２８では別途準備された手段（図示せず）によって、同期バイト検出信号１４１から１パケット分の１８８バイトの入力が完了したことを示すと、ステートＳ２９に遷移する。この間、先のＥｈを含むデータを出力するタイミングで、ＰＥＳヘッダ検出信号１５１を１クロック間、アクティブとする。
【００４４】
また、先のＥｈを含むデータの次に続くデータを出力するタイミングから、別途準備された手段（図示せず）によって、同期バイト検出信号１４１から１パケット分の１８８バイトの入力が完了したことを示し、ステートＳ２９に遷移する直前まで、ＴＳデータ検出信号１５２をアクティブとする。
【００４５】
ステートＳ２９では続くデータ入力時に同期バイト検出信号１４１がアクティブとなるかどうかを確認する。同期バイト検出信号１４１がアクティブとならなかった場合には、先の同期バイト検出部４で継続して同期バイトが検出されなかったことを示すため、ステートＳ１１に遷移する。
【００４６】
ステートＳ３０ではステートＳ１２と同様に、ＰＵＳＩ，ＰＩＤ，ＡＦＣを一時保存し、ステートＳ３１に遷移する。ステートＳ３１ではステートＳ２８で保存したのターゲットＰＩＤ格納部のデータとＰＩＤとを比較する。これらが一致しなければ、ステートＳ３８に遷移する。これらが一致すれば、ステートＳ３２に遷移する。
【００４７】
ステートＳ３８では別途準備された手段（図示せず）によって、同期バイト検出信号１４１から１パケット分の１８８バイトの入力が完了したことを示すと、ステートＳ２９に遷移する。
【００４８】
ステートＳ３２ではステートＳ１３と同様に、ＰＵＳＩを確認する。ＰＵＳＩが１の場合にはステートＳ１４に遷移する。ＰＵＳＩが０の場合にはステートＳ３３に遷移する。ステートＳ３３ではステートＳ１４と同様の処理を行う。また、ステートＳ３４〜ステートＳ３７はステートＳ１４〜ステートＳ１８と同様の処理を行う。
【００４９】
ステートＳ３７ではＡＦＣの２ビットのうちの下位ビットが１であるかどうかを確認する。下位ビットが１であればステートＳ３９に遷移し、下位ビットが０であればステートＳ３８に遷移する。
【００５０】
ステートＳ３９では別途準備された手段（図示せず）によって、同期バイト検出信号１４１から１パケット分の１８８バイトの入力が完了したことを示すと、ステートＳ２９に遷移する。
【００５１】
ＴＳヘッダ処理部５は別途準備された手段によって同期バイト検出信号１４１から１パケット分の１８８バイトの入力が完了したことを示し、ステートＳ２９に遷移する直前まで、ＴＳデータ検出信号１５２をアクティブとする。このようにして、ＴＳ中のＰＥＳヘッダ検出信号１５１を００ｈ  ００ｈ  ０１ｈ  Ｅｘｈ（ｘは０ｈ〜Ｆｈ）のＥｘｈを出力するタイミングで１クロック間、アクティブとする。
【００５２】
また、ＴＳデータ検出信号１５２を、００ｈ  ００ｈ  ０１ｈ  Ｅｘｈ（ｘは０ｈ〜Ｆｈ）の次のデータから、ＴＳヘッダとＡＦとを除く区間でアクティブとする。実際の動作としては、ＴＳ中のＰＥＳヘッダ検出信号１５１とＴＳデータ検出信号１５２とは、データ蓄積部（Ｂ）データ出力１２１とデータ蓄積部（Ｂ）データ出力イネーブル１２２とに同期する。
【００５３】
図５及び図６は図１のＰＳヘッダ処理部６の内部動作を示すフローチャートである。これら図５及び図６を参照してＰＳヘッダ処理部６の動作について説明する。ここで、ＰＳヘッダ処理部６はデータ蓄積部（Ａ）１から出力されるデータ蓄積部（Ａ）データ出力１１１とデータ蓄積部（Ａ）データ出力イネーブル１１２とを入力し、これらの信号からＰＳ中のＰＥＳヘッダ検出信号１６１を生成する。
【００５４】
本実施例では、ＰＳヘッダ処理部６がデータ蓄積部（Ａ）１から出力されるデータ蓄積部（Ａ）データ出力１１１とデータ蓄積部（Ａ）データ出力イネーブル１１２とを入力しているが、ＭＰＥＧストリームデータ入力イネーブル１０２とＭＰＥＧストリームデータ１０１とを利用してＰＳ中のＰＥＳヘッダ検出信号１６１を生成し、１クロック分遅らせる回路を後段に配置してその出力をＰＥＳデータ処理部７に供給することでも実現することができる。
【００５５】
図５及び図６においてはステートＳ４１にてデータ蓄積部（Ａ）データ出力イネーブル１１２がイネーブル状態になり、データが入力されるのを待ち、データが入力されるとステートＳ４２に遷移する。ステートＳ４２ではデータ蓄積部（Ａ）データ出力１１１からの入力データが００ｈでなかったら、ステートＳ４１に遷移する。入力データが００ｈであったら、ステートＳ４３に遷移する。
【００５６】
ステートＳ４３ではデータが入力されるのを待ち、データが入力されるとステートＳ４４に遷移する。ステートＳ４４では入力データが００ｈでなかったら、ステートＳ４１に遷移する。入力データが００ｈであったら、ステートＳ４５に遷移する。ステートＳ４５ではデータが入力されるのを待ち、データが入力されるとステートＳ４６に遷移する。
【００５７】
ステートＳ４６では入力データが００ｈでなかったら、ステートＳ４７に遷移する。入力データが００ｈであったら、ステートＳ４５に遷移する。ステートＳ４７では入力データが０１ｈでなかったら、ステートＳ４１に遷移する。入力データが０１ｈであったら、ステートＳ４８に遷移する。
【００５８】
ステートＳ４８ではデータが入力されるのを待ち、データが入力されるとステートＳ４９に遷移する。ステートＳ４９では入力データがＢＡｈでなかったら、ステートＳ４１に遷移する。入力データがＢＡｈであったら、ステートＳ５０に遷移する。ステートＳ５０では９バイト分のデータが入力されるのを待ち、データが入力されるとステートＳ５１に遷移する。
【００５９】
ステートＳ５１ではデータが入力されるのを待ち、データが入力されるとステートＳ５２に遷移すると同時に、Ｓｔｕｆｆ  Ｌｅｎｇｔｈ（ｐａｃｋ  ｓｔｕｆｆｉｎｇ  ｌｅｎｇｔｈ）を保存する。ステートＳ５２ではＳｔｕｆｆ  Ｌｅｎｇｔｈ相当分のデータが入力されるのを待ち、ステートＳ５３に遷移する。この時、Ｓｔｕｆｆ  Ｌｅｎｇｔｈが０であれば、データ入力を待たずにステートＳ５３に遷移する。
【００６０】
ステートＳ５３ではデータが入力されるのを待ち、データが入力されるとステートＳ５４に遷移する。ステートＳ５４では入力データが００ｈでなかったら、ステートＳ４１に遷移する。入力データが００ｈであったら、ステートＳ５５に遷移する。
【００６１】
ステートＳ５５ではデータが入力されるのを待ち、データが入力されるとステートＳ５６に遷移する。ステートＳ５６では入力データが００ｈでなかったら、ステートＳ４１に遷移する。入力データが００ｈであったら、ステートＳ５７に遷移する。
【００６２】
ステートＳ５７ではデータが入力されるのを待ち、データが入力されるとステートＳ５８に遷移する。ステートＳ５８では入力データが００ｈでなかったら、ステートＳ５９に遷移する。入力データが００ｈであったら、ステートＳ５７に遷移する。
【００６３】
ステートＳ５９では入力データが０１ｈでなかったら、ステートＳ４１に遷移する。入力データが０１ｈであったら、ステートＳ６０に遷移する。ステートＳ６０ではデータが入力されるのを待ち、データが入力されるとステートＳ６１に遷移する。
【００６４】
ステートＳ６１では入力データがＢＡｈでなかったら、ステートＳ６２に遷移する。入力データがＢＡｈであったら、ステートＳ５０に遷移する。ステートＳ６２では入力データがＢＢｈでなかったら、ステートＳ６５に遷移する。入力データがＢＢｈであったら、ステートＳ６３に遷移する。
【００６５】
ステートＳ６５では入力データの上位４ビットがＥｈであるかを確認する。上位４ビットがＥｈであれば、ステートＳ６６に遷移し、Ｅｈを出力するタイミングで、ＰＳ中のＰＥＳヘッダ検出信号１６１を１クロック間、アクティブとする。上位４ビットがＥｈでなければ、ステートＳ４１に遷移する。
【００６６】
ステートＳ６３では２バイトデータが入力されるのを待つ。このデータをＨｅａｄｅｒ  Ｌｅｎｇｔｈとして保存した後に、ステートＳ６４に遷移する。ステートＳ６４ではＨｅａｄｅｒ  Ｌｅｎｇｔｈ相当分のデータが入力されるのを待ち、その後、ステートＳ５３に遷移する。
【００６７】
ステートＳ６６では２バイトデータが入力されるのを待ち、このデータをＨｅａｄｅｒ  Ｌｅｎｇｔｈとして保存した後に、ステートＳ６７に遷移する。ステートＳ６７ではＨｅａｄｅｒ  Ｌｅｎｇｔｈ相当分のデータが入力されるのを待ち、その後、ステートＳ５３に遷移する。
【００６８】
このようにして、ＰＳ中のＰＥＳヘッダ検出信号１６１を００ｈ  ００ｈ  ０１ｈ  Ｅｘｈ（ｘは０ｈ〜Ｆｈ）のＥｘｈを出力するタイミングで、１クロック間、アクティブとする。
【００６９】
実際の動作としては、ＰＳ中のＰＥＳヘッダ検出信号１６１がデータ蓄積部（Ｂ）データ出力１２１とデータ蓄積部（Ｂ）データ出力イネーブル１２２とに同期し、データ蓄積部（Ｂ）データ出力１２１がＥｘｈを出力するタイミングでアサートされる。
【００７０】
図７は図１のＰＥＳデータ処理部７の内部動作を示すフローチャートである。この図７を参照してＰＥＳデータ処理部７の動作について説明する。ここで、ＰＥＳデータ処理部７はデータ蓄積部（Ｂ）２から出力されるデータ蓄積部（Ｂ）データ出力１２１及びデータ蓄積部（Ｂ）データ出力イネーブル１２２とＴＳヘッダ処理部５から出力されるＰＥＳヘッダ検出信号１５１及びＴＳデータ検出信号１５２とＰＳヘッダ処理部６から出力されるＰＥＳヘッダ検出信号１６１とを入力し、これらの信号からＰＥＳ中のＥＳデータ検出信号１７１を生成する。
【００７１】
図７において、ステートＳ７１ではＴＳヘッダ中のＰＥＳヘッダ検出信号１５１かＰＳヘッダ中のＰＥＳヘッダ検出信号１６１かのいずれかがアクティブになるのを待ち、どちらかがアクティブになるとステートＳ７２に遷移する。この時、ＴＳヘッダ中のＰＥＳヘッダ検出信号１５１がアクティブになったことによる遷移の場合には、図示せぬ手段であるＴＳヘッダフラグにその旨を保存しておく。
【００７２】
また、この時、Ｅｘｈ（ｘは、０ｈ〜Ｆｈ）のデータが入力されており、ｘ部はＳｔｒｅａｍ  ＩＤと呼ばれ、ストリームの種類を示す。このＳｔｒｅａｍ  ＩＤを保存し、次以降にステートＳ７１からステートＳ７２に遷移する際に先に保存したＳｔｒｅａｍ  ＩＤと現在のＳｔｒｅａｍ  ＩＤとを比較し、一致しなければ、ステートＳ７２に移行しないことで、ＰＥＳ層でＶｉｄｅｏ  ＥＳが多重化されたデータも処理が可能である。
【００７３】
ステートＳ７２では２バイトのデータの入力を待ち、その内容をＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈとして保存し、ステートＳ７３に遷移する。ステートＳ７２〜ステートＳ７５では上記のＴＳヘッダフラグによってデータの入力と判定するタイミングが異なる。ＴＳヘッダフラグが、ＴＳヘッダ中のＰＥＳヘッダ検出信号１５１がアクティブになったことを示している場合には、データ蓄積部（Ｂ）データ出力イネーブル１２２がアクティブかつＴＳデータ検出信号１５２がアクティブの時をデータの入力と認識する。ＴＳヘッダフラグが、ＴＳヘッダ中のＰＥＳヘッダ検出信号１５１がアクティブになったことを示さない場合には、データ蓄積部（Ｂ）データ出力イネーブル１２２がアクティブの時をデータの入力と認識する。
【００７４】
ステートＳ７３では２バイトのデータの入力を待ち、ステートＳ７４に遷移する。ステートＳ７４ではデータ入力を待ち、そのデータをＰＥＳ  ＨｅａｄｅｒＬｅｎｇｔｈとして保存し、ステートＳ７５に遷移する。ステートＳ７５では、ＰＥＳ  Ｈｅａｄｅｒ  Ｌｅｎｇｔｈ相当分のデータが入力されるのを待ち、ステートＳ７６に遷移する。
【００７５】
ステートＳ７６ではステートＳ７２で保存したＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈが０であるかを判定する。ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈが０の場合にはステートＳ７８に遷移する。ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈが０でない場合には、ステートＳ７７に遷移する。
【００７６】
ステートＳ７７ではデータの入力を待ち、ＰＥＳ中のＥＳデータ検出信号１７１をアクティブとする。これはステートＳ７７で入力されたデータがデータ蓄積部（Ｃ）データ出力１３１が出力されるタイミングで、データ蓄積部（Ｃ）データ出力イネーブル１３２と同期して、１バイト分のデータについて、ＰＥＳ中のＥＳデータ検出信号１７１をアクティブとすることを意味する。このステートＳ７７にとどまっている間、上記と同じ処理が行われる。
【００７７】
また、ステートＳ７７ではＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈ相当分のデータが入力されたかを確認する。ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈ相当分のデータが入力されていない場合には、ステートＳ７７にとどまって処理を継続する。ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈ相当分のデータが入力された場合には、ステートＳ７１に遷移する。
【００７８】
この時、ＰＥＳ  Ｐａｃｋｅｔ  ＬｅｎｇｔｈにはステートＳ７３〜ステートＳ７５で処理されたデータ数も含まれているため、その分は引いた上で、ＰＥＳＰａｃｋｅｔ  Ｌｅｎｇｔｈ相当分のデータが入力されたのを確認する。
【００７９】
ステートＳ７８ではデータが入力されるのを待ち、ＴＳデータ検出信号１５２がアクティブであるかを確認する。ＴＳデータ検出信号１５２がアクティブの場合には、ＰＥＳ中のＥＳデータ検出信号１７１をアクティブとする。これはステートＳ７８で入力されたデータがデータ蓄積部（Ｃ）データ出力１３１が出力されるタイミングで、データ蓄積部（Ｃ）データ出力イネーブル１３２と同期して、１バイト分のデータについて、ＰＥＳ中のＥＳデータ検出信号１７１をアクティブとすることを意味する。その後に、ステートＳ７９に遷移する。
【００８０】
ステートＳ７９ではＴＳヘッダ中のＰＥＳヘッダ検出信号１５１か、ＰＳヘッダ中のＰＥＳヘッダ検出信号１６１かのいずれかがアクティブの場合に、ステートＳ７２に遷移する。いずれの信号もアクティブでない場合には、ステートＳ７８に戻って処理を継続する。
【００８１】
ステートＳ７２への遷移時に、ＴＳヘッダ中のＰＥＳヘッダ検出信号１５１がアクティブになったことによる遷移の場合には、図示せぬ手段であるＴＳヘッダフラグにその旨を保存しておく。ＰＳヘッダ中のＰＥＳヘッダ検出信号１６１がアクティブになったことによる遷移の場合には、ＴＳヘッダフラグをクリアしておく。
【００８２】
このように、ＴＳ及びＰＳの種別を自動的に判断し、そのストリームの全体を出力しつつ、ビデオエレメンタリストリームの部分であるかを示す信号を出力することによって、入力ストリームをそのまま出力する構造のため、一旦、ビデオストリームを抽出した後に、ビデオストリームデータの一部を変更し、元のストリーム構造に戻すシステムを容易に実現することができる。
【００８３】
図８は本発明の他の実施例によるＭＰＥＧビデオエレメンタリストリーム抽出装置の構成を示すブロック図である。図８において、本発明の他の実施例はＰＥＳヘッダ処理部８を追加し、ＰＥＳからＶ−ＥＳを抽出することを可能とした以外は図１に示す本発明の一実施例と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の一実施例と同様である。
【００８４】
本発明の一実施例では入力データがＴＳまたはＰＳに限られたが、本発明の他の実施例ではこれに加え、ＰＥＳからＶ−ＥＳを抽出することを可能としている。上記のＰＥＳヘッダ処理部８を追加し、ＰＥＳ中のＰＥＳヘッダ検出信号１８１を新設することで、ＰＥＳデータ処理部９ではＰＥＳデータ処理部７に加えて、ＰＥＳ中のＰＥＳヘッダ検出信号１８１を入力するように変更となり、ＰＥＳ中のＥＳデータ検出信号１９１はＰＥＳ中のＥＳデータ検出信号１７１と同様に、データ蓄積部（Ｃ）３から出力されるデータがＶ−ＥＳにあるかどうかを示すこととなる。
【００８５】
図９は図８のＰＥＳヘッダ処理部８の内部動作を示すフローチャートである。この図９を参照してＰＥＳヘッダ処理部８の動作について説明する。ここで、ＰＥＳヘッダ処理部８はデータ蓄積部（Ａ）１から出力されるデータ蓄積部（Ａ）データ出力１１１とデータ蓄積部（Ａ）データ出力イネーブル１１２とを入力し、これらの信号からＰＥＳ中のＰＥＳヘッダ検出信号１８１を生成する。
【００８６】
この実施例ではＰＥＳヘッダ処理部８がデータ蓄積部（Ａ）１から出力されるデータ蓄積部（Ａ）データ出力１１１とデータ蓄積部（Ａ）データ出力イネーブル１１２とを入力しているが、ＭＰＥＧストリームデータ入力イネーブル１０２とＭＰＥＧストリームデータ１０１とを利用してＰＥＳ中のＰＥＳヘッダ検出信号１８１を生成し、１クロック分遅らせる回路を後段に配置してその出力をＰＥＳデータ処理部９に供給することでも実現することができる。
【００８７】
図９において、ステートＳ８１ではデータが入力されるのを待ち、データが入力されるとステートＳ８２に遷移する。ステートＳ８２では入力データが００ｈでなかったら、ステートＳ８１に遷移する。入力データが００ｈであったら、ステートＳ８３に遷移する。
【００８８】
ステートＳ８３ではデータが入力されるのを待ち、データが入力されるとステートＳ８４に遷移する。ステートＳ８４では入力データが００ｈでなかったら、ステートＳ８１に遷移する。入力データが００ｈであったら、ステートＳ８５に遷移する。
【００８９】
ステートＳ８５ではデータが入力されるのを待ち、データが入力されるとステートＳ８６に遷移する。ステートＳ８６では入力データが００ｈでなかったら、ステートＳ８７に遷移する。入力データが００ｈであったら、ステートＳ８５に遷移する。ステートＳ８７では入力データが０１ｈでなかったら、ステートＳ８１に遷移する。入力データが０１ｈであったらステートＳ８８に遷移する。
【００９０】
ステートＳ８８ではデータが入力されるのを待ち、データが入力されるとステートＳ８９に遷移する。ステートＳ８９では入力データの上位４ビットがＥｈであるかどうかを確認する。上位４ビットがＥｈであれば、ステートＳ９０に遷移し、Ｅｈを出力するタイミングでＰＥＳ中のＰＥＳヘッダ検出信号１８１を１クロック間、アクティブとする。上位４ビットがＥｈでなければ、ステートＳ８１に遷移する。
【００９１】
ステートＳ９０では２バイトデータが入力されるのを待ち、このデータをＨｅａｄｅｒ  Ｌｅｎｇｔｈとして保存した後に、ステートＳ９１に遷移する。ステートＳ９１ではＨｅａｄｅｒ  Ｌｅｎｇｔｈが０であるかどうかを確認する。Ｈｅａｄｅｒ  Ｌｅｎｇｔｈが０である場合にはステートＳ８１に遷移する。Ｈｅａｄｅｒ  Ｌｅｎｇｔｈが０でない場合にはステートＳ９２に遷移する。ステートＳ９２ではＨｅａｄｅｒ  Ｌｅｎｇｔｈ相当分のデータが入力されるのを待ち、その後、ステートＳ８１に遷移する。
【００９２】
図１０及び図１１は図８のＰＥＳデータ処理部９の内部動作を示すフローチャートである。これら図１０及び図１１を参照してＰＥＳデータ処理部９の動作について説明する。ここで、ＰＥＳデータ処理部９はデータ蓄積部（Ｂ）２から出力されるデータ蓄積部（Ｂ）データ出力１２１と、データ蓄積部（Ｂ）データ出力イネーブル１２２を入力し、これらの信号からＰＥＳ中のＥＳデータ検出信号１９１を生成する。
【００９３】
図１０及び図１１において、ステートＳ１０１ではＴＳヘッダ中のＰＥＳヘッダ検出信号１５１か、ＰＳヘッダ中のＰＥＳヘッダ検出信号１６１か、ＰＥＳヘッダ中のＰＥＳヘッダ検出信号１８１かのいずれかがアクティブになるのを待ち、それらの信号のいずれかがアクティブになると、ステートＳ１０２に遷移する。
【００９４】
この時、ＴＳヘッダ中のＰＥＳヘッダ検出信号１５１がアクティブになったことによる遷移の場合には、図示せぬ手段であるＴＳヘッダフラグにその旨を保存しておく。また、この時、Ｅｘｈ（ｘは、０ｈ〜Ｆｈ）のデータが入力されている。ｘ部は、Ｓｔｒｅａｍ  ＩＤと呼ばれ、ストリームの種類を示す。このＳｔｒｅａｍ  ＩＤを保存し、次以降にステートＳ１０１からステートＳ１０２に遷移する際に、先に保存したＳｔｒｅａｍ  ＩＤと現在のＳｔｒｅａｍ  ＩＤとを比較し、一致しなければステートＳ１０２に移行しないことで、ＰＥＳ層でＶｉｄｅｏ  ＥＳが多重化されたデータも処理することが可能である。
【００９５】
ステートＳ１０２ではＴＳヘッダ中のＰＥＳヘッダ検出信号１５１か、ＰＳヘッダ中のＰＥＳヘッダ検出信号１６１かのいずれかがアクティブであるかを確認する。双方がアクティブでない場合には、ＰＥＳヘッダ中のＰＥＳヘッダ検出信号１８１のみがアクティブの場合であり、ステートＳ１１５に遷移する。
【００９６】
ステートＳ１０３では２バイトのデータの入力を待ち、その内容をＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈとして保存し、ステートＳ１０４に遷移する。ステート１０３〜ステートＳ１０６では上記のＴＳヘッダフラグによってデータの入力と判定するタイミングが異なる。
【００９７】
ＴＳヘッダフラグが、ＴＳヘッダ中のＰＥＳヘッダ検出信号１５１がアクティブになったことを示している場合には、データ蓄積部（Ｂ）データ出力イネーブル１２２がアクティブかつＴＳデータ検出信号１５２がアクティブの時をデータの入力と認識する。ＴＳヘッダフラグが、ＴＳヘッダ中のＰＥＳヘッダ検出信号１５１がアクティブになったことを示さない場合には、データ蓄積部（Ｂ）データ出力イネーブル１２２がアクティブの時をデータの入力と認識する。
【００９８】
ステートＳ１０４では２バイトのデータの入力を待ち、ステートＳ１０５に遷移する。ステートＳ１０５ではデータ入力を待ち、そのデータをＰＥＳ  Ｈｅａｄｅｒ  Ｌｅｎｇｔｈとして保存し、ステートＳ１０６に遷移する。ステートＳ１０６ではＰＥＳ  Ｈｅａｄｅｒ  Ｌｅｎｇｔｈ相当分のデータが入力されるのを待ち、ステートＳ１０７に遷移する。
【００９９】
ステートＳ１０７ではステートＳ１０３で保存したＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈが０であるかどうかを判定する。ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈが０の場合にはステートＳ１１１に遷移する。ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈが０でない場合にはステートＳ１０８に遷移する。
【０１００】
ステートＳ１０８ではデータの入力を待ち、ステートＳ１０９に遷移する。ステートＳ１０９ではＰＥＳ中のＥＳデータ検出信号１９１をアクティブとする。これはステートＳ１０８で入力されたデータが、データ蓄積部（Ｃ）データ出力１３１から出力されるタイミングで、データ蓄積部（Ｃ）データ出力イネーブル１３２と同期して、１バイト分のデータについてＰＥＳ中のＥＳデータ検出信号１９１をアクティブとすることを意味する。その後、ステートＳ１１０に遷移する。
【０１０１】
ステートＳ１１０ではＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈ相当分のデータが入力されたかどうかを確認する。ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈ相当分のデータが入力された場合には、ステートＳ１０１に遷移する。ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈ相当分のデータが入力されていない場合には、ステートＳ１０８に遷移する。この時、ＰＥＳ  Ｐａｃｋｅｔ  ＬｅｎｇｔｈにはステートＳ１０４〜ステートＳ１０６で処理されたデータ数も含まれているため、その分は引いた上で、データ入力を待つ。
【０１０２】
ステートＳ１１１ではデータが入力されるのを待ち、ステートＳ１１２に遷移する。ステートＳ１１２ではＴＳヘッダ中のＰＥＳヘッダ検出信号１５１か、ＰＳヘッダ中のＰＥＳヘッダ検出信号１６１かのいずれかがアクティブである場合に、ステートＳ１０３に遷移する。
【０１０３】
ＰＥＳヘッダ検出信号１６１がアクティブでない場合には、ステートＳ１１３に遷移する。この時、ＴＳヘッダ中のＰＥＳヘッダ検出信号１５１がアクティブになったことによる遷移の場合には、図示せぬ手段であるＴＳヘッダフラグにその旨を保存しておく。
【０１０４】
ステートＳ１１３ではＴＳデータ検出信号１５２がアクティブであるかどうかを確認する。ＴＳデータ検出信号１５２がアクティブの場合には、ステートＳ１１４に遷移する。ＴＳデータ検出信号１５２がアクティブでない場合には、ステートＳ１１１に遷移する。
【０１０５】
ステートＳ１１４ではＰＥＳ中のＥＳデータ検出信号１９１をアクティブとする。これはステートＳ１１１で入力されたデータが、データ蓄積部（Ｃ）データ出力１３１が出力されるタイミングで、データ蓄積部（Ｃ）データ出力イネーブル３２と同期して、１バイト分のデータについてＰＥＳ中のＥＳデータ検出信号１９１をアクティブとすることを意味する。その後、ステートＳ１１１に遷移する。
【０１０６】
ステートＳ１１５では２バイトのデータの入力を待ち、その内容をＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈとして保存し、ステートＳ１１６に遷移する。ステートＳ１１６では２バイトのデータの入力を待ち、ステートＳ１１７に遷移する。ステートＳ１１７ではデータ入力を待ち、そのデータをＰＥＳ  Ｈｅａｄｅｒ  Ｌｅｎｇｔｈとして保存し、ステートＳ１１８に遷移する。
【０１０７】
ステートＳ１１８ではＰＥＳ  Ｈｅａｄｅｒ  Ｌｅｎｇｔｈ相当分のデータが入力されるのを待ち、ステートＳ１１９に遷移する。ステートＳ１１９ではステートＳ１１５で保存したＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈが０であるかどうかを判定する。ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈが０の場合には、ステートＳ１０１に遷移する。ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈが０でない場合には、ステートＳ１２０に遷移する。
【０１０８】
ステートＳ１２０ではデータの入力を待ち、ステートＳ１２１に遷移する。ステートＳ１２１ではＴＳヘッダ中のＰＥＳヘッダ検出信号１５１か、ＰＳヘッダ中のＰＥＳヘッダ検出信号１６１かのいずれかがアクティブの場合に、ステートＳ１０３に遷移する。それらの信号のいずれかがアクティブでない場合には、ステートＳ１２２に遷移する。
【０１０９】
ステートＳ１２２ではＰＥＳ中のＥＳデータ検出信号１９１をアクティブとする。これはステートＳ１２０で入力されたデータが、データ蓄積部（Ｃ）データ出力１３１が出力されるタイミングで、データ蓄積部（Ｃ）データ出力イネーブル１３２と同期して、１バイト分のデータについてＰＥＳ中のＥＳデータ検出信号１９１をアクティブとすることを意味する。その後、ステートＳ１２３に遷移する。
【０１１０】
ステートＳ１２３ではＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈ相当分のデータが入力されたかどうかを確認する。ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈ相当分のデータが入力された場合には、ステートＳ１０１に遷移する。ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈ相当分のデータが入力されていない場合には、ステートＳ１２０に遷移する。この時、ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈには、ステートＳ１１６〜ステートＳ１１８で処理されたデータ数も含まれているため、その分は引いた上で、分岐を行う。
【０１１１】
この方法で、ＰＥＳからＶ−ＥＳを抽出することができる。しかしながら、ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈが０を示しているＰＥＳでは処理を行わない。
【０１１２】
図１２及び図１３は本発明の別の実施例によるＰＥＳデータ処理部９の内部動作を示すフローチャートである。これら図１２及び図１３において、本発明の別の実施例はステートＳ１２４〜Ｓ１２７を追加した以外は図１０及び図１１に示す本発明の他の実施例と同様に動作する。
【０１１３】
図１２及び図１３には本発明の別の実施例におけるＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈが０を示しているＰＥＳでの処理方法を示しているが、この方法では正確にエレメンタリストリームを抽出することができない。それはＰＥＳパケットが連続する場合に、２つ目移行のＰＥＳパケットの先頭で、００ｈ  ００ｈ  ０１ｈの３バイトでＰＥＳ中のＥＳデータ検出信号１９１をアクティブにするためである。
【０１１４】
よって、図８に示す構成においてＰＥＳデータ処理部９の後段に図示せぬ回路を挿入し、同データでＰＥＳ中のＥＳデータ検出信号１９１をアクティブにしない手段が必要である。以下に、本発明の別の実施例の本発明の他の実施例との差分についてのみ説明する。
【０１１５】
図１２及び図１３において、ステートＳ１１９ではステートＳ１１５で保存したＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈが０であるかどうかを判定する。ＰＥＳＰａｃｋｅｔ  Ｌｅｎｇｔｈが０の場合には、ステートＳ１２４に遷移する。ＰＥＳ  Ｐａｃｋｅｔ  Ｌｅｎｇｔｈが０でない場合には、ステートＳ１２０に遷移する。
【０１１６】
ステートＳ１２４ではデータが入力されるのを待ち、ステートＳ１２５に遷移する。ステートＳ１２５ではＴＳヘッダ中のＰＥＳヘッダ検出信号１５１か、ＰＳヘッダ中のＰＥＳヘッダ検出信号１６１かのいずれかがアクティブ場合に、ステートＳ１０３に遷移する。これらの信号のいずれかがアクティブでない場合には、ステートＳ１２６に遷移する。この時、ＴＳヘッダ中のＰＥＳヘッダ検出信号１５１がアクティブになったことによる遷移の場合には、図示せぬ手段であるＴＳヘッダフラグにその旨を保存しておく。
【０１１７】
ステートＳ１２６ではＰＥＳ中のＰＥＳヘッダ検出信号１８１がアクティブであるかどうかを確認する。ＰＥＳヘッダ検出信号１８１がアクティブの場合には、ステートＳ１１５に遷移する。ＰＥＳヘッダ検出信号１８１がアクティブでない場合には、ステートＳ１２７に遷移する。
【０１１８】
ステートＳ１２７ではＰＥＳ中のＥＳデータ検出信号１９１をアクティブとする。これはステートＳ１２４で入力されたデータが、データ蓄積部（Ｃ）データ出力１３１から出力されるタイミングで、データ蓄積部（Ｃ）データ出力イネーブル１３２と同期して、１バイト分のデータについてＰＥＳ中のＥＳデータ検出信号１９１をアクティブとすることを意味する。その後、ステートＳ１２４に遷移する。
【０１１９】
【発明の効果】
以上説明したように本発明によれば、１つのプログラムを基本的なパケットに多重化して時分割伝送する方式のプログラムストリームと、マルチプログラム対応の多重・分離方式のトランスポートストリームとのいずれかからデータであるエレメンタリストリームを抽出するＭＰＥＧビデオエレメンタリストリーム抽出装置において、入力されるストリームがプログラムストリームとトランスポートストリームとのいずれであるかを判定する判定手段と、判定手段の判定結果に基づいてエレメンタリストリームを抽出可能とする手段とを備えることによって、一旦、ビデオストリームを抽出した後にそのビデオストリームデータの一部を変更して元のストリーム構造に容易に戻すことができるという効果がある。
【図面の簡単な説明】
【図１】本発明の一実施例によるＭＰＥＧビデオエレメンタリストリーム抽出装置の構成を示すブロック図である。
【図２】図１の同期バイト検出部の内部動作を示すフローチャートである。
【図３】図１のＴＳヘッダ処理部の内部動作を示すフローチャートである。
【図４】図１のＴＳヘッダ処理部の内部動作を示すフローチャートである。
【図５】図１のＰＳヘッダ処理部の内部動作を示すフローチャートである。
【図６】図１のＰＳヘッダ処理部の内部動作を示すフローチャートである。
【図７】図１のＰＥＳデータ処理部の内部動作を示すフローチャートである。
【図８】本発明の他の実施例によるＭＰＥＧビデオエレメンタリストリーム抽出装置の構成を示すブロック図である。
【図９】図８のＰＥＳヘッダ処理部の内部動作を示すフローチャートである。
【図１０】図６のＰＥＳデータ処理部の内部動作を示すフローチャートである。
【図１１】図６のＰＥＳデータ処理部の内部動作を示すフローチャートである。
【図１２】本発明の別の実施例によるＰＥＳデータ処理部の内部動作を示すフローチャートである。
【図１３】本発明の別の実施例によるＰＥＳデータ処理部の内部動作を示すフローチャートである。
【符号の説明】
１  データ蓄積部（Ａ）
２  データ蓄積部（Ｂ）
３  データ蓄積部（Ｃ）
４  同期バイト検出部
５  ＴＳヘッダ処理部
６  ＰＳヘッダ処理部
７  ＰＥＳデータ処理部
８  ＰＥＳヘッダ処理部
９  ＰＥＳデータ処理部
１０１  ＭＰＥＧストリームデータ
１０２  ＭＰＥＧストリームデータ入力イネーブル
１１１  データ蓄積部（Ａ）データ出力
１１２  データ蓄積部（Ａ）データ出力イネーブル
１２１  データ蓄積部（Ｂ）データ出力
１２２  データ蓄積部（Ｂ）データ出力イネーブル
１３１  データ蓄積部（Ｃ）データ出力
１３２  データ蓄積部（Ｃ）データ出力イネーブル
１４１  同期バイト検出信号
１５１  ＴＳ中のＰＥＳヘッダ検出信号
１５２  ＴＳデータ検出信号
１６１  ＰＳ中のＰＥＳヘッダ検出信号
１７１  ＰＥＳ中のＥＳデータ検出信号
１８１  ＰＥＳ中のＰＥＳヘッダ検出信号
１９１  ＰＥＳ中のＥＳデータ検出信号
【図１】
0003896768.tif 000002
【図２】
0003896768.tif 000003
【図３】
0003896768.tif 000004
【図４】
0003896768.tif 000005
【図５】
0003896768.tif 000006
【図６】
0003896768.tif 000007
【図７】
0003896768.tif 000008
【図８】
0003896768.tif 000009
【図９】
0003896768.tif 000010
【図１０】
0003896768.tif 000011
【図１１】
0003896768.tif 000012
【図１２】
0003896768.tif 000013
【図１３】
0003896768.tif 000014