(57)【特許請求の範囲】
【請求項１】
異なるタイムベースに基づいた複数の多重化ストリームの所定のものを所定のタイミングで切り替えて復号装置に入力し、複数の経路再生を行う再生装置用に、データの多重化を行うデータ多重化方法において、
前記多重化ストリームの所定のものに先行する前記多重化ストリームの他の所定のものの終端部において、前記復号装置の有する前記多重化ストリームを記憶するバッファメモリの占有量を検出し、
前記占有量に基づいて、前記多重化ストリームの所定のものを記憶可能な前記バッファメモリの容量を仮想的に設定し、
仮想的に設定した前記バッファメモリの容量を越えない範囲内で、各バッファメモリに前記多重化ストリームの所定のものが供給されるように制御する
ことを特徴とするデータ多重化方法。
【請求項２】
異なるタイムベースに基づいた複数の多重化ストリームの所定のものを所定のタイミングで切り替えて復号装置に入力し、複数の経路再生を行う再生装置用に、データの多重化を行うデータ多重化方法において、
前記多重化ストリームの所定のものに先行する前記多重化ストリームの他の所定のものを構成するエレメンタリーストリームの、前記復号装置の有するバッファメモリへの供給が終了する終了時刻と、
前記多重化ストリームの他の所定のものを構成する全てのエレメンタリーストリームの最終アクセスユニットがバッファメモリから出力される第１の出力時刻と、
前記アクセスユニットの復号周期と、
前記多重化ストリームの所定のものを構成する全てのエレメンタリーストリームの最初のアクセスユニットがバッファメモリから出力される第２の出力時刻と  を検出し、
検出した前記終了時刻、第１の出力時刻、復号周期、および第２の出力時刻に基づいて、前記多重化ストリームの所定のものの多重化の初期時刻を決定する
ことを特徴とするデータ多重化方法。
【発明の詳細な説明】
【０００１】
本発明は、データ多重化方法に関し、例えば、複数の映像信号や音声信号等からなる複数の多重化ストリームを復号装置に入力し、切り替えて再生するとき、復号装置のバッファメモリが破綻を起こさないようにすることができるようにしたデータ多重化方法に関する。
【０００２】
【従来の技術】
図１２は、映像や音声等の信号を送受信する送受信システムの構成例を示している。送信側（符号化装置）においては、ビデオエンコーダ（符号化器）１は、入力された映像信号を符号化するようになされている。オーディオエンコーダ２は、入力された音声信号を符号化するようになされている。多重化器３は、ビデオエンコーダ１およびオーディオエンコーダ２より供給された符号化されたビデオデータおよびオーディオデータを多重化するようになされている。
【０００３】
多重化器３において多重化された信号は、記録可能なＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等の記録媒体４に記録されるか、または伝送路５に送出されるようになされている。
【０００４】
受信側（復号化装置）においては、分離器６は、記録媒体４または伝送路５を介して供給された符号化され、多重化されたデータを、ビデオデータやオーディオデータなどに種類別に分離するようになされている。ビデオデコーダ７は、分離器６より供給された符号化されたビデオデータを復号化した後、出力するようになされている。オーディオデコーダ８は、分離器６より供給された符号化されたオーディオデータを復号化した後、出力するようになされている。
【０００５】
例えば、送信側において、入力された映像や音声などの信号は、ビデオエンコーダ１およびオーディオエンコーダ２においてそれぞれ符号化された後、多重化器３に供給される。多重化器３に供給された符号化されたビデオデータおよびオーディオデータは、多重化（１本化）された後、記録媒体４に供給され、記録されるか、または伝送路５に送出され、受信側に伝送される。
【０００６】
受信側において、記録媒体４に記録された符号化され、多重化されたビデオデータおよびオーディオデータ、または伝送路５を介して伝送されてきた符号化され、多重化されたビデオデータおよびオーディオデータは、分離器６に供給され、映像や音声等の種類別に分離される。即ち、ビデオデータおよびオーディオデータが再構成される。再構成されたビデオデータは、ビデオデコーダ７に供給され、復号化される。また、再構成されたオーディオデータは、オーディオデコーダ８に供給され、復号化される。復号化されたビデオデータおよびオーディオデータは、同期して出力される。
【０００７】
ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）システム（ＩＳＯ／ＩＥＣ  １３８１８−１およびＩＳＯ／ＩＥＣ  １１１７２−１）は、上述したような映像や音声等の符号化データを多重および分離する方式に関する国際規格である。以下では、映像や音声等の符号化データをエレメンタリーストリームと呼ぶことにする。また、特に、映像信号の符号化データをビデオストリーム、音声信号の符号化データをオーディオストリームと呼ぶことにする。さらに、それらの複数のエレメンタリーストリームを多重化したデータを多重化ストリームと呼ぶことにする。
【０００８】
また、以下では、簡単のため、多重化ストリームとして、ＭＰＥＧ１（ＩＳＯ／ＩＥＣ１１１７２−１）システムストリーム、およびＭＰＥＧ２（ＩＳＯ／ＩＥＣ  １３８１８−１）プログラムストリームのみについてふれるが、ＭＰＥＧ２トランスポートストリームに応用することも可能である。
【０００９】
図１３は、ＭＰＥＧシステムにおいて規定される多重化ストリームの構造を示す図である。同図に示すように、多重化ストリームは複数のパックから構成される。各パックには、パックヘッダが付加され、その中には、後述するＳＣＲ（Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｒｅｆｅｒｅｎｃｅ）や多重化レート（Ｍｕｘ＿ｒａｔｅ）等の情報が記述される。各パックは複数のパケットから構成され、個々のパックの中に、ビデオやオーディオ等のエレメンタリーストリームが分割されて挿入される。各パケットにはパケットヘッダが付加され、その中には後述するタイムスタンプ等が記述される。
【００１０】
図１４は、ＭＰＥＧシステムにおいて規定される多重化ストリームの分離方法が適用される復号化装置の構成例を示している。この分離方法は、仮想的なデコーダを用いた方法であり、ＳＴＤ（Ｓｙｓｔｅｍ  Ｔａｒｇｅｔ  Ｄｅｃｏｄｅｒ）モデルと呼ばれる。以下、その動作について説明する。
【００１１】
ＳＴＤモデルにおいては、その内部に基準クロックＳＴＣ（Ｓｙｓｔｅｍ  Ｔｉｍｅ  Ｃｌｏｃｋ）１１を有しており、ＳＴＣ１１は、一定の周期で増加する。また、ＳＴＤモデルに入力される多重化ストリームの各パックヘッダには、ＳＣＲ（Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｒｅｆｅｒｅｎｃｅ）と呼ばれるシステム時刻参照値が記述されている。
【００１２】
ＳＴＤモデルへの多重化ストリームの入力は、ＳＴＣとＳＣＲによって制御される。即ち、読み込まれたＳＣＲの値がＳＴＣの値と等しくなった瞬間、そのＳＣＲがパックヘッダに記述されたパックの入力が開始される。そのときの入力速度は、多重化レートと呼ばれ、各パックヘッダ内に記述される。
【００１３】
分離器１２においては、入力された個々のパック内の複数のパケットがその種類（例えば、ビデオストリームやオーディオストリーム等）に応じて分類され、ビデオストリームはバッファ（復号バッファ）１３に、オーディオストリームはバッファ（復号バッファ）１４に供給される。
【００１４】
バッファ１３，１４に供給され、蓄積されたビデオストリームやオーディオストリーム等のデータは、アクセスユニット（Ａｃｃｅｓｓ  Ｕｎｉｔ：エレメンタリーストリームの復号単位）毎に、パケットヘッダ内に記述された時刻情報（タイムスタンプ：Ｔｉｍｅ  Ｓｔａｍｐ）に基づいて出力され、ビデオデコーダ１５およびオーディオデコーダ１６においてそれぞれ復号化され、再生出力される。以下では、ビデオデコーダ１５とオーディオデコーダ１６とを特に区別する必要がないとき、適宜、単にデコーダ１５，１６と記載することにする。
【００１５】
タイムスタンプには、ＤＴＳ（Ｄｅｃｏｄｉｎｇ  Ｔｉｍｅ−Ｓｔａｍｐ）およびＰＴＳ（Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｔｉｍｅ−Ｓｔａｍｐ）が存在し、ＤＴＳはバッファ１３，１４からアクセスユニットが出力され、デコーダ１５，１６において復号される時刻を示し、ＰＴＳは復号されたアクセスユニットが再生出力される時刻を示している。そして、復号および出力のタイミングは、ＤＴＳおよびＰＴＳの値とＳＴＣの値を比較することにより制御される。ただし、各アクセスユニットのバッファ１３，１４からの転送およびデコーダ１５，１６での復号において遅延はなく、それぞれ瞬時に行われるものとする。
【００１６】
一般に、所定のエレメンタリーストリームにおいて、ＤＴＳとＰＴＳの値が等しい場合、パケットヘッダにはＰＴＳのみが記述される。例えば、ＭＰＥＧオーディオ（ＩＳＯ／ＩＥＣ  １３８１８−３  および  ＩＳＯ／ＩＥＣ  １１１７２−３）がこれに該当する。また、ＭＰＥＧビデオ（ＩＳＯ／ＩＥＣ  １３８１８−２  および  ＩＳＯ／ＩＥＣ  １１１７２−２）は、アクセスユニットの種類により復号遅延が存在するので、その場合には、ＤＴＳおよびＰＴＳの両方のタイムスタンプが記述される。再配列バッファ１７は、ＩピクチャとＰピクチャを一時的に記憶し、遅延制御を行ってデータの再配列を行うためのバッファである。
【００１７】
ＳＣＲの値は、符号化装置（多重化器を含む）内の基準クロック（タイムベース）のサンプル値であり、これを用いて復号装置（ＳＴＤモデル）の各バッファ（この場合、バッファ１３，１４）における入出力制御が可能となる。即ち、全てのバッファにおいて、オーバーフロー（バッファに供給されるデータがバッファ容量を超過すること）およびアンダーフロー（アクセスユニットが復号されるべき時刻にバッファに全て到達していないこと）することなく、ＳＴＤモデルにおいて復号されるように、符号化装置においてＳＣＲの値を適当に設定することが要求される。
【００１８】
上述した多重化ストリームを複数個用いた応用例として、例えば「複数経路再生」が挙げられる。複数経路再生とは、例えば「Ｌａｎｇｕａｇｅ  Ｃｒｅｄｉｔ（言語に依存した映像再生）」、「Ｄｉｒｅｃｔｏｒ’ｓ  Ｃｕｔ（映画監督が指示したカット：Ｐａｒｅｎｔａｌ  Ｌｏｃｋなど）」、あるいは「Ｍｕｌｔｉ−ａｎｇｌｅｓ（複数のカメラで撮影された映像）」等を行う機能であり、単一のアプリケーションにおいて、ユーザの選択により複数の経路再生を実現するものである。
【００１９】
図１５は、複数経路再生の一例を示したものである。この例では、３種類の再生経路が存在し、図中の矢印はその中の１種類（再生経路３）を選択して再生を行う場合を示している。各再生経路は、各々独立したタイムベースに基づいて生成された複数の多重化ストリームから構成される。また、多重化ストリームＭＢａおよびＭＢｃは全ての再生経路において共通であり、その中間部においてＭＢｂ（１）乃至ＭＢｂ（３）の３つの多重化ストリームが選択可能である。例えば、再生経路１は、ＭＢａ，ＭＢｂ（１），ＭＢｃの３つの多重化ストリームの連続再生によって構成される。再生経路２および３の場合についても同様である。
【００２０】
図１５の複数経路再生における各多重化ストリームは、例えば図１６に示すような配置および順序で記録伝送される。このとき、復号化装置は、選択されている再生経路に基づいて、各多重化ストリーム単位に入力を制御する。図１６は、図１５において再生経路２が選択されたときの再生順序の例を示しており、矢印は多重化ストリーム単位でデータを読み飛ばすことを示している。
【００２１】
このように入力を制御した場合、実際に復号化装置に入力されるデータの並びは、図１７に示すように、多重化ストリームＭＢａ，ＭＢｂ（２），ＭＢｃとなる。以下、多重化ストリームと多重化ストリームの接続点を多重化ストリームの「不連続点」と呼ぶことにする。
【００２２】
上述したＳＴＤモデルにおいては、各々独立したタイムベースに基づいて生成された多重化ストリームの連続入力を想定していないため、その不連続点付近において、バッファの破綻がないように再生を行うことは不可能である。そのため、図１８に示すように、ＳＴＤモデルを拡張したＥ−ＳＴＤモデルを用いることが考えられる。
【００２３】
図１８に示したＥ−ＳＴＤモデルは、連続入力された多重化ストリームの不連続点付近における、パックの入力、各エレメンタリーストリームの復号、および出力制御において参照される基準クロックの切り替えを可能にするスイッチ２３、２７，２８，３１を、図１４に示したＳＴＤモデルに追加したものである。スイッチ２３，２７，２８，３１のそれぞれのａ端子には、基準クロックとしてＳＴＣが入力され、ｂ端子にはＳＴＣ−αが入力されるようになされている。
【００２４】
ただし、不連続点前後の各々の多重化ストリーム（ＭＢａおよびＭＢｂ）を単独で再生する場合においては、すべてのスイッチ（スイッチ２３，２７，２８，３１）はａ側に接続され、その動作はＳＴＤモデルに準じるものとする。
【００２５】
スイッチ２３，２７，２８，３１を全てｂ側に接続した場合、図１８に示したように、基準クロックとしてＳＴＣ−αの値が参照される。ここで、変数αには後述するように適当な値が設定される。
【００２６】
例えば、先行するビデオストリームＭＢａの最後のアクセスユニットの復号時刻に、その表示（出力）周期を加えた時刻と、後続のビデオストリームＭＢｂの最初のアクセスユニットの表示（出力）時刻に変数αの値を加えた時刻が一致するように変数αの値が設定される。
【００２７】
スイッチ２３は、多重化ストリームの各パックの入力制御を行うようになされている。そして、多重化ストリームの不連続点において、先行する多重化ストリームＭＢａの最後のパックが分離器２４に入力された瞬間、その接続はｂ側に切り替えられる。以降、ｂ側に入力される参照クロック値（基準クロックとしてのＳＴＣ−α）の値と、後続の多重化ストリームＭＢｂに含まれる各パックヘッダ内のＳＣＲの値を比較することにより、各パック単位の入力の制御を行う。
【００２８】
スイッチ２７は、ビデオストリームの復号制御を行うようになされている。不連続点において、先行する多重化ストリームＭＢａ内のビデオストリームの最後のアクセスユニットがビデオデコーダ２９において復号される時刻に、その復号周期を加えた時刻にｂ側に切り替えられる。以降、ｂ側に入力される参照クロック値（基準クロックとしてのＳＴＣ−α）、および後続の多重化ストリームＭＢｂに含まれるビデオストリームのＤＴＳに基づいて、復号の制御が行われる。
【００２９】
スイッチ３１は、ビデオストリームの表示制御を行うようになされている。不連続点において、先行するＭＢａ内のビデオストリームの最後のアクセスユニットが表示される時刻にその表示周期を加えた時刻にｂ側に切り替えられ、以降、ｂ側に入力される参照クロック値（基準クロックとしてのＳＴＣ−α）、および後続の多重化ストリームＭＢｂに含まれるビデオストリームのＰＴＳに基づいて表示の制御が行われる。
【００３０】
スイッチ２８は、オーディオストリームの出力を制御するようになされている。不連続点において、先行する多重化ストリームＭＢｂ内のオーディオストリームの最後のアクセスユニットが表示される時刻にその表示周期を加えた時刻に、ｂ側に切り替えられ、以降ｂ側が示す参照クロック値（基準クロックとしてのＳＴＣ−α）、および後続のＭＢｂに含まれるオーディオストリームのＰＴＳに基づいて出力の制御が行われる。
【００３１】
全てスイッチ２３，２７，２８，３１がｂ側に切り替えられた瞬間に、ｂ側に入力される参照クロック値（基準クロックとしてのＳＴＣ−α）をＳＴＣの値として再設定すると同時に、全てのスイッチ２３，２７，２８、３１がａ側に切り替えられ、以降ＳＴＤモデルの場合と同様の制御が行われる。
【００３２】
【発明が解決しようとする課題】
上記Ｅ−ＳＴＤモデルにおいては、多重化ストリームの不連続点において、Ｅ−ＳＴＤモデル内のバッファ（復号バッファ）２５またはバッファ（復号バッファ）２６が破綻する場合がある。以下、Ｅ−ＳＴＤモデル内のバッファ２５またはバッファ２６が破綻する場合の例について説明する。ただし、不連続点前後の多重化ストリームをそれぞれＭＢａおよびＭＢｂとし、それらはすでに独立したタイムベースＴＢａおよびＴＢｂに基づいてそれぞれ生成されているものとする。
【００３３】
以降において、例えば、ＴＢａ（ｉ）とは、タイムベースＴＢａに基づく時刻であり、対象となるバッファからｉ番目のアクセスユニットが出力される時刻を示すものとする。また、多重化ストリームＭＢａを単独再生した場合における全てのバッファ（この場合、バッファ２５，２６）に対するデータ供給終了時刻を、タイムベースＴＢａに基づく時刻ＴＢａ＿ｅｎｄとする。さらに、多重化ストリームＭＢｂの単独再生におけるデータ供給開始時刻を、タイムベースＴＢｂに基づく時刻ＴＢｂ＿ｓｔａｒｔとする。
【００３４】
図１９（ａ）乃至図１９（ｃ）は、Ｅ−ＳＴＤモデル内のバッファ（この場合、バッファ２５またはバッファ２６）におけるオーバーフローの例を示している。縦軸はバッファ占有量を表し、横軸は時刻を表している。図１９（ａ）および図１９（ｂ）は、Ｅ−ＳＴＤモデル内の同一のバッファに関するものであり、それぞれ多重化ストリームＭＢａおよびＭＢｂを単独再生した場合における、それぞれのタイムベースＴＢａおよびＴＢｂに基づくバッファ占有量の変化を表している。
【００３５】
ただし、図１９（ａ）においては、多重化ストリームＭＢａの終端部のみを示し、図１９（ｂ）においては、多重化ストリームＭＢｂの先頭部のみを示している。同図に示したように、各多重化ストリームは、その単独再生において、バッファが破綻することなく、データの供給が行われるように多重化されているものとする。
【００３６】
図１９（ｃ）は、多重化ストリームＭＢａおよびＭＢｂを連続再生した場合において、タイムベースＴＢａに基づくバッファの占有量の変化を表している。同図に示したように、多重化ストリームＭＢａに関する供給が終了した瞬間（時刻ＴＢａ＿ｅｎｄ）、多重化ストリームＭＢｂに関する供給が開始され、その後、タイムベースＴＢａに基づく時刻ＴＢａ＿ｏｖｅｒｆｌｏｗにおいて、バッファオーバーフローを起こす場合がある課題があった。
【００３７】
これは、多重化ストリームＭＢｂに関する供給が、多重化ストリームＭＢａの供給とは何等無関係に（独立に）計画されているためである。即ち、ＭＢｂの多重化において、先行する多重化ストリームＭＢａの供給による、特に終端部におけるバッファ占有量が全く考慮されていないためである。
【００３８】
次に、図２０を参照して、Ｅ−ＳＴＤモデル内のバッファ（この場合、バッファ２５または２６）におけるアンダーフローの例を示している。縦軸はバッファ占有量を表し、横軸は時間を表している。図２０（ａ）および図２０（ｂ）は、図１９（ａ）および図１９（ｂ）の場合と同様に、Ｅ−ＳＴＤモデル内の同一のバッファに関するものであり、それぞれ多重化ストリームＭＢａおよびＭＢｂの単独再生における、それぞれのタイムベースＴＢａおよびＴＢｂに基づくバッファ占有量の変化を表している。
【００３９】
ただし、図２０（ａ）は、多重化ストリームＭＢａの終端部のみを示し、図２０（ｂ）は、多重化ストリームＭＢｂの先頭部のみを示している。同図に示したように、各多重化ストリームＭＢａ，ＭＢｂは、単独再生を行った場合、バッファが破綻することなく、データ供給が行われるように多重化されているものとする。
【００４０】
図２０（ｃ）は、多重化ストリームＭＢａおよびＭＢｂを連続再生した場合の、タイムベースＴＢａに基づくバッファの占有量の変化を示している。同図に示すように、多重化ストリームＭＢａの供給が終了した瞬間（時刻ＴＢａ＿ｅｎｄ）、多重化ストリームＭＢｂの供給が開始される。
【００４１】
しかしながら、時刻ＴＢａ（ｎ＋１）において、次のアクセスユニット（ＡＳｂ（１）：多重化ストリームＭＢｂにおける最初のアクセスユニット）の出力が行われるとき、そのアクセスユニット（ＡＳｂ（１））の全てがまだバッファに到達していないため、同時刻において、バッファアンダーフローを起こす場合がある課題があった。
【００４２】
これは、多重化ストリームＭＢａの供給終了時刻が遅すぎたことにより、多重化ストリームＭＢｂの供給の開始時刻も遅れたため、多重化ストリームＭＢｂの最初のアクセスユニットＡＳｂ（１）の供給が間に合わなかったことによる。ただし、時刻ＴＢａ（ｎ＋１）は、多重化ストリームＭＢａの最後のアクセスユニットのバッファからの出力時刻ＴＢａ（ｎ）にその復号周期を加えたものである。
【００４３】
本発明はこのような状況に鑑みてなされたものであり、複数経路再生における多重化ストリームの不連続点において、復号バッファが破綻することがないようにするものである。
【００４５】
【課題を解決するための手段】
請求項１に記載のデータ多重化方法は、多重化ストリームの所定のものに先行する多重化ストリームの他の所定のものの終端部において、復号装置の有する多重化ストリームを記憶するバッファメモリの占有量を検出し、占有量に基づいて、多重化ストリームの所定のものを記憶可能なバッファメモリの容量を仮想的に設定し、仮想的に設定したバッファメモリの容量を越えない範囲内で、各バッファメモリに多重化ストリームの所定のものが供給されるように制御することを特徴とする。
【００４６】
請求項２に記載のデータ多重化方法は、多重化ストリームの所定のものに先行する多重化ストリームの他の所定のものを構成するエレメンタリーストリームの、復号装置の有するバッファメモリへの供給が終了する終了時刻と、多重化ストリームの他の所定のものを構成する全てのエレメンタリーストリームの最終アクセスユニットがバッファメモリから出力される第１の出力時刻と、アクセスユニットの復号周期と、多重化ストリームの所定のものを構成する全てのエレメンタリーストリームの最初のアクセスユニットがバッファメモリから出力される第２の出力時刻とを検出し、検出した終了時刻、第１の出力時刻、復号周期、および第２の出力時刻に基づいて、多重化ストリームの所定のものの多重化の初期時刻を決定することを特徴とする。
【００５１】
請求項１に記載のデータ多重化方法においては、多重化ストリームの所定のものに先行する多重化ストリームの他の所定のものの終端部において、復号装置の有する多重化ストリームを記憶するバッファメモリの占有量を検出し、占有量に基づいて、多重化ストリームの所定のものを記憶可能なバッファメモリの容量を仮想的に設定し、仮想的に設定したバッファメモリの容量を越えない範囲内で、各バッファメモリに多重化ストリームの所定のものが供給されるように制御する。
【００５２】
請求項２に記載のデータ多重化方法においては、多重化ストリームの所定のものに先行する多重化ストリームの他の所定のものを構成するエレメンタリーストリームの、復号装置の有するバッファメモリへの供給が終了する終了時刻と、多重化ストリームの他の所定のものを構成する全てのエレメンタリーストリームの最終アクセスユニットがバッファメモリから出力される第１の出力時刻と、アクセスユニットの復号周期と、多重化ストリームの所定のものを構成する全てのエレメンタリーストリームの最初のアクセスユニットがバッファメモリから出力される第２の出力時刻とを検出し、検出した終了時刻、第１の出力時刻、復号周期、および第２の出力時刻に基づいて、多重化ストリームの所定のものの多重化の初期時刻を決定する。
【００５６】
【発明の実施の形態】
図１は、本発明のデータ多重化方法を応用した符号化装置の構成例を示している。この符号化装置は、Ｎ種類の複数再生経路を可能にするアプリケーションの生成を行うものである。ここで、Ｎは任意の自然数である。即ち、図２に示すように、多重化ストリームＭｂａとＭＢｃの中間のＮ種類の多重化ストリームＭＢｂ（ｉ）（ｉ＝１，２，．．．Ｎ）のうちのいずれか１種類が選択され、所定の再生経路が構成される。各多重化ストリームは、映像信号、音声信号、およびその他の信号（例えば字幕等）を符号化したエレメンタリーストリームから構成される。
【００５７】
符号化装置を構成するビデオエンコーダ５１は、入力された映像信号（ＶＳａ）を符号化し、エレメンタリーストリーム（ＶＥＳａ）を出力するようになされている。オーディオエンコーダ５２は、入力された音響（音声）信号（ＡＳａ）を符号化し、エレメンタリーストリーム（ＡＥＳａ）を出力するようになされている。その他のエンコーダ５３は、入力されたその他の信号ＥＳａを符号化し、エレメンタリーストリーム（ＥＥＳａ）を出力するようになされている。
【００５８】
アクセスユニット検出器５４は、エレメンタリーストリーム（ＶＥＳａ）を入力し、そのアクセスユニットのサイズ、復号時刻、および表示時刻等の情報を検出するようになされている。アクセスユニット検出器５５は、エレメンタリーストリーム（ＡＥＳａ）を入力し、そのアクセスユニットのサイズ、復号時刻、および表示（出力）時刻等の情報を検出するようになされている。アクセスユニット検出器５６は、エレメンタリーストリーム（ＥＥＳａ）を入力し、そのアクセスユニットのサイズ、復号時刻、および表示（出力）時刻等の情報を検出するようになされている。
【００５９】
スケジューラ５７は、アクセスユニット５４乃至５６により検出された情報を入力し、それらの情報に基づいて、各パケットの長さ、パケットの順序、ＳＣＲの値等を決定するようになされている。これらの値は、パケット化情報ＰＩａとしてパケット化器５８に供給される。また、例えば、データ供給量の時間的な変化等のデータからなるデータ供給情報ＳＩａを出力するようになされている。パケット化器５８は、ビデオエンコーダ５１、オーディオエンコーダ５２、およびその他のエンコーダ５３より供給されるエレメンタリーストリームを、スケジューラ５７からのパケット化情報ＰＩａに基づいてパケット化およびパック化を行い、多重化ストリームＭＢａを生成するようになされている。
【００６０】
終端部占有量検出器５９は、スケジューラ５７からのデータ供給情報ＳＩａに基づいて、各エレメンタリーストリームの終端部バッファ占有情報ＶＢＩａ，ＡＢＩａ，ＥＢＩａを求めるようになされている。
【００６１】
ビデオエンコーダ６１は、入力された映像信号（ＶＳｂ（ｉ））を符号化し、エレメンタリーストリーム（ＶＥＳｂ（ｉ））を出力するようになされている。オーディオエンコーダ６２は、入力された音響（音声）信号（ＡＳｂ（ｉ））を符号化し、エレメンタリーストリーム（ＡＥＳｂ（ｉ））を出力するようになされている。その他のエンコーダ６３は、入力されたその他の信号（ＥＳｂ（ｉ））を符号化し、エレメンタリーストリーム（ＥＥＳｂ（ｉ））を出力するようになされている。
【００６２】
アクセスユニット検出器６４は、エレメンタリーストリーム（ＶＥＳｂ（ｉ））を入力し、そのアクセスユニットのサイズ、復号時刻、および表示時刻等の情報を検出するようになされている。アクセスユニット検出器６５は、エレメンタリーストリーム（ＡＥＳｂ（ｉ））を入力し、そのアクセスユニットのサイズ、復号時刻、および表示（出力）時刻等の情報を検出するようになされている。アクセスユニット検出器６６は、エレメンタリーストリーム（ＥＥＳｂ（ｉ））を入力し、そのアクセスユニットのサイズ、復号時刻、および表示（出力）時刻等の情報を検出するようになされている。
【００６３】
スケジューラ６７は、アクセスユニット６４乃至６６により検出された情報を入力し、それらの情報に基づいて、各パケットの長さ、パケットの順序、ＳＣＲの値等を決定するようになされている。これらの値は、パケット化情報ＰＩｂ（ｉ）としてパケット化器６８に出力される。また、多重化ストリームＭＢａの多重化において出力されたＭＢａの終端部バッファ占有情報に基づいて、多重化ストリームＭＢｂ（ｉ）の先頭部の疑似バッファ容量を求め、これを初期値として多重化ストリームＭＢｂ（ｉ）の多重化を行うようになされている。また、例えば、データ供給量の時間的な変化等のデータからなるデータ供給情報ＳＩｂ（ｉ）を出力するようになされている。
【００６４】
パケット化器６８は、ビデオエンコーダ６１、オーディオエンコーダ６２、およびその他のエンコーダ６３より供給されるエレメンタリーストリームを、スケジューラ６７からのパケット化情報ＰＩｂ（ｉ）に基づいてパケット化およびパック化を行い、多重化ストリームＭＢｂ（ｉ）を生成するようになされている。
【００６５】
終端部占有量検出器６９は、スケジューラ６７からのデータ供給情報ＳＩｂ（ｉ）に基づいて、各エレメンタリーストリームの終端部バッファ占有情報ＶＢＩｂ（ｉ），ＡＢＩｂ（ｉ），ＥＢＩｂ（ｉ）を求めるようになされている。
【００６６】
次に、多重化ストリームＭＢｃの多重化を行う前に、最大占有量検出器７１乃至７３は、多重化ストリームＭＢｂ（ｉ）の多重化において求められたＮ通りの終端部バッファ占有量ＶＢＩｂ（ｉ），ＡＢＩｂ（ｉ），ＥＶＢＩｂ（ｉ）（ただし、ｉは１，２，．．．Ｎ、Ｎは自然数）から、それぞれの最大占有量を検出し、各エレメンタリーストリームの終端部バッファ占有情報として、スケジューラ８７に供給するようになされている。
【００６７】
ビデオエンコーダ８１は、入力された映像信号（ＶＳｃ）を符号化し、エレメンタリーストリーム（ＶＥＳｃ）を出力するようになされている。オーディオエンコーダ８２は、入力された音響（音声）信号（ＡＳｃ）を符号化し、エレメンタリーストリーム（ＡＥＳｃ）を出力するようになされている。その他のエンコーダ８３は、入力されたその他の信号ＥＳｃを符号化し、エレメンタリーストリーム（ＥＥＳｃ）を出力するようになされている。
【００６８】
アクセスユニット検出器８４は、エレメンタリーストリーム（ＶＥＳｃ）を入力し、そのアクセスユニットのサイズ、復号時刻、および表示時刻等の情報を検出するようになされている。アクセスユニット検出器８５は、エレメンタリーストリーム（ＡＥＳｃ）を入力し、そのアクセスユニットのサイズ、復号時刻、および表示（出力）時刻等の情報を検出するようになされている。アクセスユニット検出器８６は、エレメンタリーストリーム（ＥＥＳｃ）を入力し、そのアクセスユニットのサイズ、復号時刻、および表示（出力）時刻等の情報を検出するようになされている。
【００６９】
スケジューラ８７は、最大占有量検出器７１乃至７３より供給される終端部占有情報に基づいて、多重化ストリームＭＢｃの先頭部疑似バッファ容量を求め、この先頭部疑似バッファ容量と、アクセスユニット検出器８４乃至８６からの情報に基づいて、多重化ストリームＭＢｃの多重化を行うようになされている。
【００７０】
パケット化器８８は、ビデオエンコーダ８１、オーディオエンコーダ８２、およびその他のエンコーダ８３より供給されるエレメンタリーストリームを、スケジューラ８７からのパケット化情報ＰＩｃに基づいてパケット化およびパック化を行い、多重化ストリームＭＢｃを生成するようになされている。
【００７１】
次に、その動作について説明する。最初に、多重化ストリームＭＢａが生成されるときの動作について説明する。映像信号ＶＳａがビデオエンコーダ５１に入力されると、符号化され、符号化されたデータであるエレメンタリーストリーム（ＶＥＳａ）が出力される。また、音声信号ＡＳａがオーディオエンコーダ５２に入力されると、符号化され、エレメンタリーストリーム（ＡＥＳａ）が出力される。また、その他の信号ＥＳａがその他のエンコーダ５３に入力されると、符号化され、エレメンタリーストリーム（ＥＥＳａ）が出力される。
【００７２】
エレメンタリーストリーム（ＶＥＳａ）は、アクセスユニット検出器５４に供給され、そこで、アクセスユニットのサイズ、復号時刻、および表示時刻等の情報が検出される。また、エレメンタリーストリーム（ＡＥＳａ）は、アクセスユニット検出器５５に供給され、そこで、アクセスユニットのサイズ、復号時刻、および表示時刻等の情報が検出される。また、エレメンタリーストリーム（ＥＥＳａ）は、アクセスユニット検出器５６に供給され、そこで、アクセスユニットのサイズ、復号時刻、および表示時刻等の情報が検出される。
【００７３】
アクセスユニット検出器５４乃至５６において検出されたこれらの情報は、スケジューラ５７に供給される。スケジューラ５７により、これらの情報に基づいて、ビデオデータ、オーディオデータ等のパケットの長さやパックの長さ、パケットの順序、ＳＣＲの値等が決定される。この際、後述するように、アンダーフローを回避するために、終端部の多重化において、可能な限りすべてのバッファに対するデータの供給を早めておくようにする。スケジューラ５７の詳細な動作については、図４および図６のフローチャートを参照して後述する。
【００７４】
ビデオエンコーダ５１、オーディオエンコーダ５２、およびその他のエンコーダ５３より出力された各エレメンタリーストリームＶＥＳａ，ＡＥＳａ，ＥＥＳａは、パケット化器５８に入力され、スケジューラ５７より供給されたパケット化情報ＰＩａに基づいてパケット化およびパック化が行われ、多重化ストリームＭＢａが出力される。
【００７５】
また、スケジューラ５７により、エレメンタリーストリームＶＥＳａ，ＡＥＳａ，ＥＥＳａに基づいてデータ供給情報ＳＩａが生成され、終端部占有量検出器５９に供給される。このデータ供給情報ＳＩａに基づいて、終端部占有量検出器５９において、各エレメンタリーストリーム毎に終端部のバッファ占有状況を示す終端部バッファ占有情報ＶＢＩａ，ＡＢＩａ，ＥＢＩａが求められる。
【００７６】
次に、多重化ストリームＭＢｂが生成されるときの動作について説明する。多重化ストリームＭＢｂ（ｉ）（ｉ＝１，２，．．．Ｎ）は、図２に示したように、Ｎ通り存在する。多重化ストリームＭＢｂ（ｉ）のそれぞれの多重化の処理は、基本的には多重化ストリームＭＢａが生成される場合と同様であるので、その詳細な説明は省略するが、スケジューラ６７は、多重化ストリームＭＢａが多重化されるとき出力された終端部バッファ占有情報に基づいて、多重化ストリームＭＢｂの先頭部におけるバッファ容量である先頭部疑似バッファ容量を求め、これを初期値として多重化を行う。
【００７７】
その際、多重化ストリームＭＢａの終端部時間から多重化の初期時刻を求め、これを多重化ストリームＭＢｂの最初のパックのパックヘッダにおけるＳＣＲとする。スケジューラ６７の詳細な動作については、図７および図９のフローチャートを参照して後述する。
【００７８】
多重化ストリームＭＢｃの生成の前に、多重化ストリームＭＢｂの多重化からＮ通りの終端部バッファ占有量ＶＢＩｂ（ｉ），ＡＢＩｂ（ｉ），ＥＢＩｂ（ｉ）（ｉ＝１，２，．．．Ｎ）が求められるので、最大占有量検出器７１乃至７３において、各エレメンタリーストリームの最大占有量である終端部バッファ占有情報が求められる。
【００７９】
最後に、多重化ストリームＭＢｃが生成されるときの動作について説明する。この動作も、基本的には、多重化ストリームＭＢａが生成される場合と同様であるので、その詳細な説明は省略するが、スケジューラ８７により、終端部バッファ占有情報に基づいて、各エレメンタリーストリーム毎にその対応するバッファの先頭部疑似バッファ容量が求められ、これをそれぞれのバッファの容量とみなして多重化が行われる。また、その際、多重化ストリームＭＢｂの終端時間から、多重化の初期時刻が求められ、これを多重化ストリームＭＢｃの最初のパックのパックヘッダにおけるＳＣＲとされる。スケジューラ８７の詳細な動作については、図１１のフローチャートを参照して後述する。
【００８０】
次に、バッファアンダーフローを回避する方法について説明する。図２０を参照して上述したような、バッファアンダーフローを回避するためには、Ｅ−ＳＴＤモデルにおけるすべてのバッファ（この場合、図１８に示したバッファ２５，２６）において、多重化ストリームＭＢａの供給終了時刻ＴＢａ＿ｅｎｄから、次に出力されるアクセスユニットの出力時刻ＴＢａ（ｎ＋１）までの時間が、多重化ストリームＭＢｂの供給開始時刻ＴＢｂ＿ｓｔａｒｔから最初のアクセスユニットの出力時刻ＴＢｂ（１）までの時間より大きくなる必要がある。
【００８１】
即ち、次式（１）に示すような関係が、Ｅ−ＳＴＤモデルの全てのバッファ、あるいはエレメンタリーストリームに対して成り立つように、不連続点前後の多重化ストリームを生成する必要がある。
【００８２】
ＴＢａ（ｎ＋１）−ＴＢａ＿ｅｎｄ＞ＴＢｂ（１）−ＴＢｂ＿ｓｔａｒｔ
・・・（式１）
【００８３】
上記式（１）において、ＴＢａ（ｎ＋１）およびＴＢｂ（１）を固定値とすると、先行するＭＢａの供給終了時刻ＴＢａ＿ｅｎｄが、時刻ＴＢａ（ｎ＋１）に対して値が小さい（時間的に早い）ほど、時刻ＴＢｂ（１）に対して時刻ＴＢｂ＿ｓｔａｒｔを決定する際の自由度が大きくなる。
【００８４】
即ち、後続のＭＢｂの多重化（データ供給の計画）における自由度を大きくすることが可能となる。よって、不連続点前後のそれぞれの多重化ストリームの多重化に関して、次のような条件を与えるようにする。
【００８５】
（１）先行する多重化ストリームの終端部において、全てのバッファに対して可能な限り供給を早める多重化を行う。
（２）後続の多重化ストリームの多重化において、式（１）を満足するように、時刻ＴＢｂ＿ｓｔａｒｔを決定する。
【００８６】
次に、オーバーフローを回避する方法について説明する。複数経路再生における不連続点には、単一の多重化ストリームから複数の多重化ストリームに切り替える「分岐」と、複数の多重化ストリームから単一の多重化ストリームに切り替える「合流」の２種類が存在する。複数経路再生を行うあらゆるアプリケーションは、これらの組み合わせによって実現することが可能である。よって、以下では「分岐」と「合流」の場合に分けて、Ｅ−ＳＴＤモデルにおけるバッファのオーバーフローを回避する多重化法について説明する。
【００８７】
ここでは、図２に示すような複数経路再生における個々の多重化ストリームの多重化処理の手順を説明する。図２において、多重化ストリームＭＢａは、後続の複数の多重化ストリームＭＢｂ（ｉ）（ｉ＝１，２，．．．Ｎ、Ｎは経路数）に切り替えられ、次に多重化ストリームＭＢｃに切り替えられる。
【００８８】
以下、図３のフローチャートを参照して、Ｎ個の経路再生が行われる場合の処理手順について説明する。最初、ステップＳ１において、多重化ストリームＭＢａの多重化処理が行われる。図４のフローチャートを参照して、その詳細について説明する。
【００８９】
最初に、ステップＳ１１において、データの供給を開始する時刻である供給開始時刻ＴＢａ＿ｓｔａｒｔとして、適当な値を選択する。次に、ステップＳ１２において、選択された供給開始時刻ＴＢａ＿ｓｔａｒｔを多重化ストリームＭＢａの最初のパックのＳＣＲとして設定する。次に、ステップＳ１３において、多重化処理が終了したか否かが判定される。多重化処理が終了していないと判定された場合、ステップＳ１４に進み、バッファ容量ＢＳ［ｋ］をバッファｋの容量として多重化する。ここで、変数ｋはバッファ数（Ｋ）を超えない任意の自然数とする。その後、ステップＳ１３に戻り、ステップＳ１３，Ｓ１４の処理が繰り返される。
【００９０】
一方、ステップＳ１３において、多重化処理が終了したと判定された場合、処理を終了する。
【００９１】
次に、図３のステップＳ２に進み、多重化ストリームＭＢａの後処理が行われ、ステップＳ３において、後続の多重化ストリームＭＢｂの多重化処理が行われる。即ち、ここでは、「分岐」における多重化法に基づいた処理が行われる。上述したように、分岐とは、単一の先行する多重化ストリーム（この場合、ＭＢａ）から、複数の後続の多重化ストリーム（この場合、ＭＢｂ（ｉ）（ｉ＝１，２，．．．Ｎ））に切り替える場合のことである。以下に述べる多重化方法は、後続の全ての多重化ストリームに共通しているので、後続する多重化ストリームを適宜、単にＭＢｂと表記する。
【００９２】
図５（ａ）、図５（ｂ）、および図５（ｃ）は、Ｅ−ＳＴＤモデル内の同一バッファにおける、多重化ストリームＭＢａとＭＢｂのバッファ占有量の変化を表している。従って、ここでは、バッファを特定する変数ｋを適宜省略する。それぞれ、縦軸はバッファ占有量を表し、横軸は時間を表している。ここで、先行する多重化ストリームＭＢａは、タイムベースＴＢａに基づいてすでに生成されているものとする。即ち、図５（ａ）は、多重化ストリームＭＢａの供給における、タイムベースＴＢａに基づくバッファの占有量の変化を表している。同図において、時刻ＴＢａ＿ｅｎｄは、多重化ストリームＭＢａのすべてのデータの供給が終了する供給終了時刻を表している。
【００９３】
以下、図６のフローチャートを参照して、多重化ストリームＭＢａの後処理について説明する。最初に、ステップＳ２１において、多重化ストリームＭＢａのデータ供給終了時刻ＴＢａ＿ｅｎｄの検出および記録が行われる。次に、ステップＳ２２において、最終アクセスユニットの復号終了時刻ＴＢａ［ｋ］（ｎ＋１）の検出が行われる。この復号終了時刻ＴＢａ［ｋ］（ｎ＋１）は、最終アクセスユニットの出力時刻に、その復号周期を加えたものである。
【００９４】
次に、ステップＳ２３に進み、終端部時間Ｄａ＿ｅｎｄ［ｋ］の検出および記録が行われる。終端部時間Ｄａ＿ｅｎｄ［ｋ］は、時刻ＴＢａ＿ｅｎｄから、時刻ＴＢａ［ｋ］（ｎ＋１）までの時間、即ち、（ＴＢａ［ｋ］（ｎ＋１）−ＴＢａ＿ｅｎｄ）である。ステップＳ２４においては、終端部バッファ占有情報ＢＯａ＿ｅｎｄ［ｋ］（ｔａ）、即ち、時間Ｄａ＿ｅｎｄ［ｋ］内の各時刻（ｔａ）におけるバッファｋの占有量の検出および記録が行われる。ただし、ＴＢａ＿ｅｎｄ≦ｔａ≦ＴＢａ［ｋ］（ｎ＋１）とする。
【００９５】
これらの処理は、多重化ストリームＭＢａ内の全てのエレメンタリーストリームについて行われる。
【００９６】
次に、図７のフローチャートを参照して、多重化ストリームＭＢａの後続の多重化ストリームＭＢｂを多重化する手順について説明する。ここで、多重化ストリームＭＢｂは、タイムベースＴＢｂに基づいて生成されるものとする。
【００９７】
任意のバッファｋに対する処理として、最初、ステップＳ３１において、最初のアクセスユニットの出力時刻ＴＢｂ［ｋ］（１）の検出が行われる。次に、ステップＳ３２に進み、多重化ストリームＭＢｂの供給開始時刻ＴＢｂ＿ｓｔａｒｔの算出が行われる。この時刻は、すべてのエレメンタリーストリームにおいて同値であり、時刻ＴＢｂ［ｋ］（１）から時間Ｄａ＿ｅｎｄ［ｋ］を差し引いた時刻とされる。
【００９８】
ステップＳ３３においては、供給開始時刻ＴＢｂ＿ｓｔａｒｔを多重化ストリームＭＢｂ（ｉ）の最初のパックのＳＣＲとして設定する。ただし、この時刻ＴＢｂ＿ｓｔａｒｔの値は、上記式（１）を満足する必要がある。ステップＳ３１乃至Ｓ３３の処理は、任意のエレメンタリーストリームに対して行われる。
【００９９】
次に、個々のバッファｋに対する処理として、時刻ＴＢｂ＿ｓｔａｒｔから時間Ｄａ＿ｅｎｄ後までの間の各時刻において、バッファ容量ＢＳ［ｋ］から、ＢＯａ＿ｅｎｄ［ｋ］（ｔａ）分だけ差し引いたもの、即ち、先頭部疑似バッファ容量ＢＳｂ＿ｓｔａｒｔ［ｋ］（ｔｂ）の算出が行われる。ただし、ＴＢｂ＿ｓｔａｒｔ≦ｔｂ≦ＴＢｂ＿ｓｔａｒｔ＋Ｄａ＿ｅｎｄ［ｋ］、即ち、ＴＢｂ＿ｓｔａｒｔ≦ｔｂ≦ＴＢｂ（１）とする。
【０１００】
つまり、以下の関係が成り立つ。
【０１０１】
ＢＳｂ＿ｓｔａｒｔ［ｋ］（ｔｂ）＝ＢＳ［ｋ］−ＢＯａ＿ｅｎｄ［ｋ］（ｔａ）
【０１０２】
ここで、時刻ｔｂは、タイムベースＴＢｂのサンプル値であり、
【０１０３】
ｔａ＝ｔｂ−ＴＢｂ＿ｓｔａｒｔ＋ＴＢａ＿ｅｎｄ
【０１０４】
である。上述したように、ＢＳｂ＿ｓｔａｒｔ［ｋ］（ｔｂ）をそのエレメンタリーストリームの先頭部疑似バッファ容量と呼ぶことにする。
【０１０５】
次に、ステップＳ３５において、多重化処理が終了したか否かが判定される。多重化処理が終了していないと判定された場合、ステップＳ３６に進み、ＴＢｂ＿ｓｔａｒｔ≦ｔｂ≦ＴＢｂ＿ｓｔａｒｔ＋Ｄａ＿ｅｎｄ［ｋ］の関係を満たしているか否かが判定される。ＴＢｂ＿ｓｔａｒｔ≦ｔｂ≦ＴＢｂ＿ｓｔａｒｔ＋Ｄａ＿ｅｎｄ［ｋ］の関係を満たしていると判定された場合、ステップＳ３７に進み、ステップＳ３４において求められた各エレメンタリーストリームの先頭部疑似バッファ容量ＢＳｂ＿ｓｔａｒｔ［ｋ］（ｔｂ）を、時刻ＴＢｂ＿ｓｔａｒｔから時刻ＴＢｂ＿ｓｔａｒｔ＋Ｄａ＿ｅｎｄ［ｋ］におけるバッファｋの容量とみなして、それぞれのバッファが破綻しないように多重化する。
【０１０６】
図５（ｂ）は、その一例を示したものである。ＡＳａ（ｎ−２），ＡＳａ（ｎ−１），ＡＳａ（ｎ）は、時刻ＴＢａ（ｎ−２），ＴＢａ（ｎ−１），ＴＢａ（ｎ）において出力されるアクセスユニットであり、矢印の長さはそのデータ量に対応している。多重化されるデータによるバッファ占有量が、先頭部疑似バッファ容量ＢＳｂ＿ｓｔａｒｔ（ｔｂ）を越えないように多重化ストリームＭＢｂが多重化される。
【０１０７】
そして、ステップＳ３５に戻り、ステップＳ３５より以降の処理が繰り返し実行される。
【０１０８】
一方、ＴＢｂ＿ｓｔａｒｔ≦ｔｂ≦ＴＢｂ＿ｓｔａｒｔ＋Ｄａ＿ｅｎｄ［ｋ］の関係を満たしていないと判定された場合、ステップＳ３８に進み、ＢＳ［ｋ］をバッファｋの容量とみなして多重化する。その後、ステップＳ３５に戻り、ステップＳ３５より以降の処理が繰り返し実行される。
【０１０９】
また、ステップＳ３５において、多重化処理が終了したと判定された場合、多重化ストリームＭＢｂ（ｉ）の多重化処理を終了する。
【０１１０】
図５（ｃ）は、多重化ストリームＭＢａおよびＭＢｂを連続再生した場合の同一バッファに関するものであり、タイムベースＴＢａに基づくバッファ占有量の変化を示している。上述したように、多重化ストリームＭＢｂの多重化の際、多重化ストリームＭＢａの終端部におけるバッファ占有量が考慮されているため、全てのバッファにおいてオーバーフローは生じない。
【０１１１】
次に、図３のステップＳ４に進み、多重化ストリームＭＢｂ（ｉ）の後処理が行われる。図８および図９を参照して、多重化ストリームＭＢｂ（ｉ）の後処理について説明する。
【０１１２】
この処理は、上述した「合流」における多重化方法に基づくものであり、Ｎ本の先行する多重化ストリーム（この場合、多重化ストリームＭＢｂ（ｉ）（ｉ＝１，２，．．．Ｎ））から、単一の後続の多重化ストリーム（この場合、多重化ストリームＭＢｃ）に切り替えるものである。
【０１１３】
ここでは、一般性を保つために、全ての先行する多重化ストリームの時間的な長さがそれぞれ異なるものとする。図８（ａ）乃至図８（ｃ）は、複数経路再生の合流における先行する多重化ストリームの例を示している。ここでは、簡単のため、図２に示した、多重化ストリームＭＢｂの数を３としている。それぞれ縦軸はバッファ容量を表し、横軸は時間を表している。
【０１１４】
最初に、図９のステップＳ４１において、個々の多重化ストリームＭＢｂ（ｉ）（ただし、１≦ｉ≦Ｎ）に対する処理として、データ供給終了時刻ＴＢｂ＿ｅｎｄ［ｉ］の検出および記録が行われる。
【０１１５】
次に、ステップＳ４２において、最終アクセスユニットの復号終了時刻ＴＢ［ｉ］［ｋ］（ｎ＋１）の検出が行われる。次に、ステップＳ４３において、終端部時間Ｄｂ＿ｅｎｄ［ｉ］［ｋ］の検出が行われる。図１０においては、それぞれＤｂ＿ｅｎｄ（１）、Ｄｂ＿ｅｎｄ（２）、Ｄｂ＿ｅｎｄ（３）とされる。
【０１１６】
ステップＳ４２およびＳ４３の処理は、個々のバッファｋに対して行われる。ただし、１≦ｋ≦Ｋとする。
【０１１７】
次に、ステップＳ４４において、終端部時間Ｄｂ＿ｅｎｄ［ｉ］［ｋ］のうち、最も短い最短終端時間Ｄｂ＿ｅｎｄ＿ｍｉｎ［ｋ］の検出が行われる。そして、ステップＳ４５において、最短終端時間Ｄｂ＿ｅｎｄ＿ｍｉｎ［ｋ］を、それぞれ最終アクセスユニット復号終了時刻から差し引いた時刻が求められる。図１０においては、それぞれＴＢｂ（１）（ｉ＋１）−Ｄｂ＿ｅｎｄ（１）、ＴＢｂ（２）（ｊ＋１）−Ｄｂ＿ｅｎｄ（１）、ＴＢｂ（３）（ｋ＋１）−Ｄｂ＿ｅｎｄ（１）とされる。ただし、Ｄｂ＿ｅｎｄ（１）＜Ｄｂ＿ｅｎｄ（３）＜Ｄｂ＿ｅｎｄ（２）である。そして、上記各時刻からそれぞれ最終アクセスユニットの復号終了時刻までのバッファｋの占有量が各時刻について求められる。この処理は、個々のバッファｋに対する処理として行われる。ただし、１≦ｋ≦Ｋである。
【０１１８】
さらに、ステップＳ４６において、最短終端時間Ｄｂ＿ｅｎｄ＿ｍｉｎ［ｋ］の各時刻におけるバッファ占有量の最大値の軌跡ＭａｘＢＯ＿ｅｎｄ［ｋ］の検出および記録が行われる。図１０（ｄ）は、バッファ占有量の軌跡ＭａｘＢＯ＿ｅｎｄ［ｋ］を示している。
【０１１９】
次に、図３のステップＳ５に進み、図１１のフローチャートを参照して後述するように、図９のステップＳ４３において求められた時間Ｄｂ＿ｅｎｄ［ｉ］［ｋ］を終端部時間とし、また、ステップＳ４６において求められた軌跡ＭａｘＢＯ＿ｅｎｄ［ｋ］を、終端部におけるバッファ占有量の最大値とみなして、図７のフローチャートを参照して上述した場合と基本的に同様の方法で、後続の多重化ストリームＭＢｃの多重化が行われる。
【０１２０】
以下、図１１を参照して、後続の多重化ストリームＭＢｃを多重化する手順について説明する。
【０１２１】
任意のバッファｋに対する処理として、最初、ステップＳ５１において、最初のアクセスユニットの出力時刻ＴＢｃ［ｋ］（１）の検出が行われる。次に、ステップＳ５２に進み、多重化ストリームＭＢｃの供給開始時刻ＴＢｃ＿ｓｔａｒｔの算出が行われる。この時刻は、すべてのエレメンタリーストリームにおいて同値であり、時刻ＴＢｃ［ｋ］（１）から、図９のステップＳ４４において検出された最短終端時間Ｄｂ＿ｅｎｄ＿ｍｉｎ［ｋ］を差し引いた時刻とされる。
【０１２２】
ステップＳ５３においては、供給開始時刻ＴＢｃ＿ｓｔａｒｔを多重化ストリームＭＢｃの最初のパックのＳＣＲとして設定する。ステップＳ５１乃至Ｓ５３の処理は、任意のエレメンタリーストリームに対して行われる。
【０１２３】
次に、個々のバッファｋに対する処理として、時刻ＴＢｃ＿ｓｔａｒｔから時間Ｄｂ＿ｅｎｄ＿ｍｉｎ（ｋ）後までの間の各時刻において、バッファ容量ＢＳ［ｋ］から、図９のステップＳ４６において求められたＭａｘＢＯ＿ｅｎｄ（ｔｃ）分だけ差し引いたもの、即ち、先頭部疑似バッファ容量ＢＳｃ＿ｓｔａｒｔ［ｋ］（ｔｃ）の算出が行われる。ただし、ＴＢｃ＿ｓｔａｒｔ≦ｔｃ≦ＴＢｃ＿ｓｔａｒｔ＋Ｄｂ＿ｅｎｄ＿ｍｉｎ［ｋ］とする。
【０１２４】
次に、ステップＳ５５において、多重化処理が終了したか否かが判定される。多重化処理が終了していないと判定された場合、ステップＳ５６に進み、ＴＢｃ＿ｓｔａｒｔ≦ｔｃ≦ＴＢｃ＿ｓｔａｒｔ＋Ｄｂ＿ｅｎｄ＿ｍｉｎ［ｋ］の関係を満たしているか否かが判定される。ＴＢｃ＿ｓｔａｒｔ≦ｔｃ≦ＴＢｃ＿ｓｔａｒｔ＋Ｄｂ＿ｅｎｄ＿ｍｉｎ［ｋ］の関係を満たしていると判定された場合、ステップＳ５７に進み、ステップＳ５４において求められた各エレメンタリーストリームの先頭部疑似バッファ容量ＢＳｃ＿ｓｔａｒｔ［ｋ］（ｔｃ）を、時刻ＴＢｃ＿ｓｔａｒｔから時刻ＴＢｃ＿ｓｔａｒｔ＋Ｄｂ＿ｅｎｄ＿ｍｉｎ［ｋ］におけるバッファｋの容量とみなして、それぞれのバッファが破綻しないように多重化する。
【０１２５】
そして、ステップＳ５５に戻り、ステップＳ５５より以降の処理が繰り返し実行される。
【０１２６】
一方、ＴＢｃ＿ｓｔａｒｔ≦ｔｃ≦ＴＢｃ＿ｓｔａｒｔ＋Ｄｂ＿ｅｎｄ＿ｍｉｎ［ｋ］の関係を満たしていないと判定された場合、ステップＳ５８に進み、ＢＳ［ｋ］をバッファｋの容量とみなして多重化する。その後、ステップＳ５５に戻り、ステップＳ５５より以降の処理が繰り返し実行される。
【０１２７】
また、ステップＳ５５において、多重化処理が終了したと判定された場合、多重化ストリームＭＢｃの多重化処理を終了する。
【０１２８】
このようにして多重化された複数の多重化ストリームは、例えば、記録可能なＤＶＤ（Ｄｉｇｉａｔｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等の記録媒体４の各部に記録されるようにしてもよいし、これらの複数の多重化ストリームをさらに１本のトランスポートストリームにまとめて伝送路５を介して伝送するようにすることも可能である。
【０１２９】
なお、上記実施例においては、本発明を主に記録用途のＭＰＥＧ１システムストリーム、およびＭＰＥＧ２プログラムストリームに応用する場合について説明したが、主に伝送用途に使用されるＭＰＥＧ２トランスポートストリームに応用することも可能である。
【０１３０】
トランスポートストリームにおいては、１本のストリームが複数のチャンネルで構成され、各チャンネルが単一の独立したストリームに相当する。また、各チャンネルは、それぞれ独立したタイムベースに基づいて生成される。従って、上記複数のプログラムストリームに対する方法を、そのまま各チャンネルに対して行い、１本のトランスポートストリームを構成することにより、複数のチャンネルを切り替えるときに、各チャンネルを復号装置におけるバッファが破綻しないように多重化させることが可能である。
【０１３１】
また、上記実施例においては、記録媒体として記録可能なディジタルバーサタイルディスク（ＤＶＤ：Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）を用いるようにしたが、光ディスク（Ｏｐｔｉｃａｌ  Ｄｉｓｃ）、ミニディスク（ＭＤ：Ｍｉｎｉ  Ｄｉｓｃ（商標））、光磁気ディスク（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃ  Ｄｉｓｃ）、磁気テープ等のその他の記録媒体を用いるようにすることも可能である。
【０１３２】
また、上記実施例は、映像信号および音声信号等を伝送路を介して送信側から送信し、それを受信側において受信し、対応する映像や音声を表示、または出力する、例えば、テレビ会議システム、テレビ電話システム、放送用機器等に用いることができる。
【０１３４】
【発明の効果】
請求項１に記載のデータ多重化方法によれば、多重化ストリームの所定のものに先行する多重化ストリームの他の所定のものの終端部において、復号装置の有する多重化ストリームを記憶するバッファメモリの占有量を検出し、占有量に基づいて、多重化ストリームの所定のものを記憶可能なバッファメモリの容量を仮想的に設定し、仮想的に設定したバッファメモリの容量を越えない範囲内で、各バッファメモリに多重化ストリームの所定のものが供給されるように制御するようにしたので、複数の多重化ストリームを切り替えて再生する場合におけるバッファメモリの破綻を抑制することができる。
【０１３５】
請求項２に記載のデータ多重化方法によれば、多重化ストリームの所定のものに先行する多重化ストリームの他の所定のものを構成するエレメンタリーストリームの、復号装置の有するバッファメモリへの供給が終了する終了時刻と、多重化ストリームの他の所定のものを構成する全てのエレメンタリーストリームの最終アクセスユニットがバッファメモリから出力される第１の出力時刻と、アクセスユニットの復号周期と、多重化ストリームの所定のものを構成する全てのエレメンタリーストリームの最初のアクセスユニットがバッファメモリから出力される第２の出力時刻とを検出し、検出した終了時刻、第１の出力時刻、復号周期、および第２の出力時刻に基づいて、多重化ストリームの所定のものの多重化の初期時刻を決定するようにしたので、複数の多重化ストリームを切り替えて再生する場合におけるバッファメモリの破綻を抑制することができる。
【図面の簡単な説明】
【図１】本発明を適用した符号化装置の構成例を示すブロック図である。
【図２】複数経路再生の例を示す図である。
【図３】図２に示した複数経路再生における多重化ストリームの多重化処理を説明するためのフローチャートである。
【図４】多重化ストリームＭＢａの多重化処理を説明するためのフローチャートである。
【図５】複数経路再生の分岐における多重化を説明するための図である。
【図６】多重化ストリームＭＢａの後処理を説明するためのフローチャートである。
【図７】多重化ストリームＭＢｂ（ｉ）の多重化処理を説明するためのフローチャートである。
【図８】複数経路再生の合流における先行多重化ストリームの例を示す図である。
【図９】多重化ストリームＭＢｂ（ｉ）の後処理を説明するためのフローチャートである。
【図１０】複数経路再生の合流における先行多重化ストリームの処理例を示す図である。
【図１１】多重化ストリームＭＢｃの多重化処理を説明するためのフローチャートである。
【図１２】従来の送受信システムの構成例を示すブロック図である。
【図１３】ＩＳＯ／ＩＥＣ１３８１８−１プログラムストリーム、あるいはＩＳＯ／ＩＥＣ１１１７２−１システムストリームの構造を示す図である。
【図１４】ＩＳＯ／ＩＥＣ１３８１８−１プログラムストリーム、あるいはＩＳＯ／ＩＥＣ１１１７２−１システムストリームのＳＴＤモデルを示す図である。
【図１５】複数経路再生の概念を示す図である。
【図１６】選択された再生経路番号に基づく各多重化ストリームの入力制御を説明するための図である。
【図１７】復号化装置に入力される複数の多重化ストリーム列の例を示す図である。
【図１８】本発明を適用したデコーダの構成例を示す図である。
【図１９】多重化ストリームの不連続点におけるＥ−ＳＴＤモデルのバッファの破綻例（オーバーフロー）を示す図である。
【図２０】多重化ストリームの不連続点におけるＥ−ＳＴＤモデルのバッファの破綻例（アンダーフロー）を示す図である。
【符号の説明】
１  ビデオエンコーダ，２  オーディオエンコーダ，３  多重化器，４  記録媒体，５  伝送路，６  分離器，７  ビデオデコーダ，８  オーディオデコーダ，１１  ＳＴＣ，１２  分離器，１３，１４  バッファ，１５  ビデオデコーダ，１６  オーディオデコーダ，１７  再配列バッファ，５１，６１，８１  ビデオエンコーダ，５２，６２，８２  オーディオエンコーダ，５３，６３，８３  その他のエンコーダ，５４乃至５６，６４乃至６６，８４乃至８６  アクセスユニット検出器，５７，６７，８７  スケジューラ，５８，６８，８８  パケット化器，５９，６９  終端部占有量検出器，７１乃至７３  最大占有量検出器
【図１】
0003589372.tif 000002
【図２】
0003589372.tif 000003
【図３】
0003589372.tif 000004
【図４】
0003589372.tif 000005
【図５】
0003589372.tif 000006
【図６】
0003589372.tif 000007
【図７】
0003589372.tif 000008
【図８】
0003589372.tif 000009
【図９】
0003589372.tif 000010
【図１０】
0003589372.tif 000011
【図１１】
0003589372.tif 000012
【図１２】
0003589372.tif 000013
【図１３】
0003589372.tif 000014
【図１４】
0003589372.tif 000015
【図１５】
0003589372.tif 000016
【図１６】
0003589372.tif 000017
【図１７】
0003589372.tif 000018
【図１８】
0003589372.tif 000019
【図１９】
0003589372.tif 000020
【図２０】
0003589372.tif 000021