(57)【要約】【課題】小さいバッファサイズで、同時刻に再生すべきストリームデータを整列させて多重化する。【解決手段】バッファメモリに蓄積された第１ストリームデータは、第１、第２ストリームデータの比較用時刻が比較されて（Ｓ１１３）、第１ストリームデータの方が早ければ、多重化される（Ｓ１１４）一方、遅ければ多重化は待機される。上記比較用時刻は、各ストリームデータがバッファメモリに蓄積されている場合には、それらのストリームデータに含まれる時間情報等に基づいて得られた、そのストリームデータの再生タイミングを示す多重化基準時刻が用いられる一方（Ｓ１１６）、蓄積されていない場合には、次に蓄積されるストリームデータの多重化基準時刻として予測される多重化予測時刻が用いられる（Ｓ１１７）。【選択図】図３
2009188530.tif 000002
【特許請求の範囲】
【請求項１】
複数種類のストリームデータを多重化する多重化装置であって、
それぞれ、各ストリームデータを一旦蓄積するバッファメモリと、
各バッファメモリに蓄積されたストリームデータを多重化する多重化部と、
多重化するストリームデータを制御する多重化制御部と、
を備え、
上記多重化制御部は、
バッファメモリに蓄積されたストリームデータに含まれる時間情報に基づいて求められた多重化基準時刻と、
ストリームデータが蓄積されていないバッファメモリがある場合に、後にそのバッファメモリに蓄積されるストリームデータの多重化基準時刻として予測される多重化予測時刻と
に基づいて、多重化するストリームデータを制御することを特徴とする多重化装置。
【請求項２】
請求項１の多重化装置であって、
上記多重化部は、各バッファメモリに蓄積されたストリームデータを固定長のデータ単位で多重化することを特徴とする多重化装置。
【請求項３】
請求項１の多重化装置であって、
上記バッファメモリに蓄積されるストリームデータは、平均的に一定のレートで与えられることを特徴とする多重化装置。
【請求項４】
請求項１の多重化装置であって、
上記多重化制御部は、第１および第２のストリームデータがバッファメモリに蓄積されている場合に、多重化基準時刻が早い方の第１のストリームデータを多重化させることを特徴とする多重化装置。
【請求項５】
請求項４の多重化装置であって、
上記多重化制御部は、バッファメモリに蓄積されている第１のストリームデータの多重化基準時刻が、バッファメモリに蓄積されていない第２のストリームデータについて予測される多重化予測時刻よりも早い場合に、第１のストリームデータを多重化させることを特徴とする多重化装置。
【請求項６】
請求項４および請求項５の何れか１項の多重化装置であって、
上記多重化制御部は、さらに、上記多重化基準時刻どうし、または多重化基準時刻と多重化予測時刻との差が、あらかじめ設定された所定の範囲内である場合に、第１のストリームデータを多重化させることを特徴とする多重化装置。
【請求項７】
請求項１の多重化装置であって、
上記多重化制御部は、バッファメモリが空になる際に多重化されたストリームデータの多重化基準時刻に所定の加算時間を加算して、上記多重化予測時刻を更新することを特徴とする多重化装置。
【請求項８】
請求項７の多重化装置であって、
上記所定の加算時間は、ストリームデータの蓄積周期であることを特徴とする多重化装置。
【請求項９】
請求項１の多重化装置であって、
上記多重化制御部は、さらに、上記複数種類のストリームデータごとの優先度に基づいて、ストリームデータを多重化させることを特徴とする多重化装置。
【請求項１０】
請求項１の多重化装置であって、
上記多重化制御部は、空のバッファメモリに蓄積されることが予定されるストリームデータに欠落が生じた場合に、上記多重化予測時刻を更新することを特徴とする多重化装置。
【請求項１１】
請求項１の多重化装置であって、
上記多重化制御部は、バッファメモリの蓄積量が、あらかじめ設定された所定量に達した場合に、他の空のバッファメモリに対応するストリームデータの多重化予測時刻を更新することを特徴とする多重化装置。
【請求項１２】
請求項１の多重化装置であって、
上記多重化制御部は、空のバッファメモリにストリームデータの蓄積されない時間が、あらかじめ設定された所定の時間に達した場合に、上記多重化予測時刻を更新することを特徴とする多重化装置。
【請求項１３】
複数種類のストリームデータを多重化する多重化方法であって、
多重化するストリームデータを決定する多重化制御ステップと、
多重化制御ステップの決定に従って、バッファメモリに蓄積されたストリームデータを多重化する多重化ステップと、
を有し、
上記多重化制御ステップは、
バッファメモリに蓄積されたストリームデータに含まれる時間情報に基づいて求められた多重化基準時刻と、
ストリームデータが蓄積されていないバッファメモリがある場合に、後にそのバッファメモリに蓄積されるストリームデータの多重化基準時刻として予測される多重化予測時刻と
に基づいて、多重化するストリームデータを決定することを特徴とする多重化方法。
【請求項１４】
請求項１３の多重化方法であって、
上記多重化制御ステップは、さらに、上記複数種類のストリームデータごとの優先度に基づいて、多重化するストリームデータを決定することを特徴とする多重化方法。
【請求項１５】
請求項１３の多重化方法であって、
上記多重化制御ステップは、空のバッファメモリに蓄積されることが予定されるストリームデータに欠落が生じた場合に、上記多重化予測時刻を更新することを特徴とする多重化方法。
【請求項１６】
請求項１３の多重化方法であって、
上記多重化制御ステップは、バッファメモリの蓄積量が、あらかじめ設定された所定量に達した場合に、他の空のバッファメモリに対応するストリームデータの多重化予測時刻を更新することを特徴とする多重化方法。
【請求項１７】
請求項１３の多重化方法であって、
上記多重化制御ステップは、空のバッファメモリにストリームデータの蓄積されない時間が、あらかじめ設定された所定の時間に達した場合に、上記多重化予測時刻を更新することを特徴とする多重化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば動画データや音声データ等の複数種類のストリームデータを多重化する多重化装置および多重化方法に関するものである。
【背景技術】
【０００２】
例えば、ディジタルカメラなどでは、動画データや音声データ等の複数種類のストリームデータがディスクなどの記録媒体に記録されたり、伝送路上に送り出されたりする際には、多重化が行われる。
【０００３】
従来の多重化装置としては、例えば、生成（符号化）されたり伝送されたりして入力されたストリームデータを一旦蓄積するバッファを備え、各ストリームデータがそれぞれ多重化可能な量だけ蓄積されるごとに多重化するものがある。
【０００４】
また、別の多重化装置としては、第１ストリームデータ（例えば動画データ）については、多重化可能な量だけバッファに蓄積されるごとに多重化する一方、第２のストリームデータ（例えば音声データ）は、多重化可能な量だけ蓄積されても直ちには多重化せず、第１ストリームデータを多重化する時点で、その第１ストリームデータに対応する（同時刻に再生されるべき）第２ストリームデータを多重化するものがある。
【０００５】
さらに、ストリームデータがバースト的に入力される場合でも、ストリームデータの符号化レート等に基づく演算によって仮想的なバッファ充足量を求め、これに基づいて多重化のタイミングを制御する技術が提案されている（例えば、特許文献１参照。）。
【特許文献１】特開平９−１３９７２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、各ストリームデータがそれぞれ多重化可能な量だけ蓄積されるごとに多重化する多重化装置では、その多重化装置に必要とされるバッファのサイズを小さく抑えることはできるが、多重化データにおける、同時刻に再生すべき動画データと音声データ等の多重化位置が離れがちになる。そのため、多重化されたデータを再生する再生装置に必要なバッファのサイズが大きくなる。
【０００７】
一方、第１ストリームデータの多重化時点まで第２ストリームデータの多重化を待つ装置では、第２ストリームデータをバッファリングするバッファのサイズを大きくする必要がある。特に、第１ストリームデータが多重化される時点の間隔が長くなるほど、バッファサイズを大きくする必要がある。
【０００８】
また、仮想的なバッファ充足量に基づいて多重化のタイミングを制御する装置では、ストリームデータがバースト的に入力されて実際のバッファ充足量が多くなっても、仮想的なバッファ充足量が少なければ多重化されないことになり、実際のバッファ充足量が増加し続けるため、必ずしもバッファサイズを小さくできるとは限らない。
【０００９】
本発明は、上記の点に鑑みてなされたものであり、バッファサイズを小さく抑え、しかも、多重化データにおける、同時刻に再生すべきストリームデータの多重化位置を近づけることなどが容易にできるようにすることを目的としている。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、
第１の発明は、
複数種類のストリームデータを多重化する多重化装置であって、
それぞれ、各ストリームデータを一旦蓄積するバッファメモリと、
各バッファメモリに蓄積されたストリームデータを多重化する多重化部と、
多重化するストリームデータを制御する多重化制御部と、
を備え、
上記多重化制御部は、
バッファメモリに蓄積されたストリームデータに含まれる時間情報に基づいて求められた多重化基準時刻と、
ストリームデータが蓄積されていないバッファメモリがある場合に、後にそのバッファメモリに蓄積されるストリームデータの多重化基準時刻として予測される多重化予測時刻と
に基づいて、多重化するストリームデータを制御することを特徴とする。
【００１１】
また、請求項２の発明は、
請求項１の多重化装置であって、
上記多重化部は、各バッファメモリに蓄積されたストリームデータを固定長のデータ単位で多重化することを特徴とする。
【００１２】
また、請求項３の発明は、
請求項１の多重化装置であって、
上記バッファメモリに蓄積されるストリームデータは、平均的に一定のレートで与えられることを特徴とする。
【００１３】
また、請求項４の発明は、
請求項１の多重化装置であって、
上記多重化制御部は、第１および第２のストリームデータがバッファメモリに蓄積されている場合に、多重化基準時刻が早い方の第１のストリームデータを多重化させることを特徴とする。
【００１４】
また、請求項５の発明は、
請求項４の多重化装置であって、
上記多重化制御部は、バッファメモリに蓄積されている第１のストリームデータの多重化基準時刻が、バッファメモリに蓄積されていない第２のストリームデータについて予測される多重化予測時刻よりも早い場合に、第１のストリームデータを多重化させることを特徴とする。
【００１５】
また、請求項６の発明は、
請求項４および請求項５の何れか１項の多重化装置であって、
上記多重化制御部は、さらに、上記多重化基準時刻どうし、または多重化基準時刻と多重化予測時刻との差が、あらかじめ設定された所定の範囲内である場合に、第１のストリームデータを多重化させることを特徴とする。
【００１６】
また、請求項７の発明は、
請求項１の多重化装置であって、
上記多重化制御部は、バッファメモリが空になる際に多重化されたストリームデータの多重化基準時刻に所定の加算時間を加算して、上記多重化予測時刻を更新することを特徴とする。
【００１７】
また、請求項８の発明は、
請求項７の多重化装置であって、
上記所定の加算時間は、ストリームデータの蓄積周期であることを特徴とする。
【００１８】
また、請求項９の発明は、
請求項１の多重化装置であって、
上記多重化制御部は、さらに、上記複数種類のストリームデータごとの優先度に基づいて、ストリームデータを多重化させることを特徴とする。
【００１９】
また、請求項１０の発明は、
請求項１の多重化装置であって、
上記多重化制御部は、空のバッファメモリに蓄積されることが予定されるストリームデータに欠落が生じた場合に、上記多重化予測時刻を更新することを特徴とする。
【００２０】
また、請求項１１の発明は、
請求項１の多重化装置であって、
上記多重化制御部は、バッファメモリの蓄積量が、あらかじめ設定された所定量に達した場合に、他の空のバッファメモリに対応するストリームデータの多重化予測時刻を更新することを特徴とする。
【００２１】
また、請求項１２の発明は、
請求項１の多重化装置であって、
上記多重化制御部は、空のバッファメモリにストリームデータの蓄積されない時間が、あらかじめ設定された所定の時間に達した場合に、上記多重化予測時刻を更新することを特徴とする。
【００２２】
これらにより、例えば、多重化基準時刻が比較されて、多重化されるストリームデータが決定されることにより、多重化されるストリームデータを整列されやすくなる。また、多重化基準時刻と多重化予測時刻とが比較されて多重化されるストリームデータが決定されることにより、蓄積されていないストリームデータがある場合でも、多重化するストリームデータを決定することができ、迅速に多重化を進めることができる。
【発明の効果】
【００２３】
本発明によれば、バッファサイズを小さく抑え、しかも、多重化データにおける、同時刻に再生すべきストリームデータの多重化位置を近づけることなどが容易にできる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施形態を図面に基づいて詳細に説明する。なお、以下の各実施形態において、他の実施形態と同様の機能を有する構成要素については同一の符号を付して説明を省略する。
【００２５】
《発明の実施形態１》
図１は、本発明に係る実施形態１の多重化装置の構成を示すブロック図である。説明簡略化のため、以下の例では多重化されるストリームデータが、例えば音声データと映像データなどであり、その数（種類）が２つであるとして説明する。
【００２６】
この多重化装置は、第１、第２ストリームデータ生成部１０１，１１１と、バッファメモリ１０２，１１２と、多重化制御部１０３と、多重化部１０４と、セレクタ１０５とを備えている。
【００２７】
第１、第２ストリームデータ生成部１０１，１１１は、音声や映像等のアナログ信号を符号化してストリームデータを生成するものである。なお、新たなストリームデータを生成して出力するのに限らず、放送やネットワークなどで伝送されたストリームデータを受信して出力するものなどが用いられてもよい。また、第１、第２ストリームデータ生成部１０１，１１１は必ずしも多重化装置に備えられなくてもよく、ストリームデータが外部から直接入力されるなどしてもよい。
【００２８】
バッファメモリ１０２，１１２は、第１、第２ストリームデータ生成部１０１，１１１から入力されたストリームデータを一旦蓄積するものである。セレクタ１０５は、バッファメモリ１０２，１１２の一方に蓄積されているストリームデータを選択するものである。多重化部１０４は、セレクタ１０５によって選択されたストリームデータを多重化して、例えば固定長のパケットから成る多重化データを出力するものである。
【００２９】
多重化制御部１０３は、上記セレクタ１０５による選択、および多重化部１０４による多重化動作を制御するようになっている。より詳しくは、バッファメモリ１０２に蓄積されているストリームデータに含まれる、例えばストリームデータのタイムスタンプや、再生時刻を同期させるためのＰＣＲ（Program Clock Reference）などの時間情報によって示される多重化基準時刻を比較用時刻として、この比較用時刻の順に、すなわち、再生すべきタイミングの順に、第１または第２ストリームデータが選択されて多重化されるように制御する。また、バッファメモリ１０２が空の場合には、次に蓄積されるストリームデータの多重化基準時刻として予測される多重化予測時刻を求め、これを上記比較用時刻として多重化されるストリームデータを決定するようになっている。
【００３０】
上記多重化予測時刻は、例えば、最後に多重化したストリームデータの多重化基準時刻に、多重化可能な量の第１、第２ストリームデータがバッファメモリ１０２，１１２に蓄積されるのに要する平均時間（蓄積開始周期や蓄積完了周期等の蓄積周期）を加算して求められる。また、上記蓄積周期は、例えば、第１、第２ストリームデータが平均的に一定のレート（例えば符号化レート）でバッファメモリ１０２，１１２に蓄積され、多重化データが固定長のパケットから成るとすると、パケット長／符号化レートとして求めることなどができる。
【００３１】
すなわち、蓄積されている第１、第２ストリームデータ（それぞれ複数蓄積されているときは先頭のストリームデータ）の多重化基準時刻が比較用時刻として保持され、これらが比較されて、その順に多重化される。これにより、同時刻に再生すべき第１、第２のストリームデータの多重化位置が互いに近くなるように多重化できる。
【００３２】
また、例えば第２ストリームデータの方はバッファメモリ１１２に蓄積されていない場合には、第２ストリームデータについては多重化予測時刻が比較用時刻として保持され、これよりも第１ストリームデータの多重化基準時刻の方が早い場合には、第１ストリームデータが多重化される一方、遅い場合には、多重化が待機される。これにより、前者の場合には、実際に第２ストリームデータが蓄積されるまで待つことなく第１ストリームデータが多重化される一方、後者の場合には、第２ストリームデータが蓄積されて多重化された後に、第１ストリームデータが多重化される。それゆえ、バッファメモリ１０２，１１２の容量を小さく抑えつつ、多重化順序の逆転を防止したり、逆転する場合でも多重化位置のずれを小さく抑えたりするなど、同時刻のパケットをより整列させて多重化することができる。
【００３３】
次に、上記のような制御のための具体的な処理内容の例を図２、図３に基づいて説明する。これらの処理は、ストリームデータごとに、繰り返し実行されるが、以下では、主として第１ストリームデータに対して実行される場合として説明する。
【００３４】
（バッファ蓄積監視）
（Ｓ１０１）  まず、第１ストリームデータ生成部１０１により生成された第１ストリームデータが、多重化可能な量だけバッファメモリ１０２に格納されたかどうかが判定され、格納されていなければ、この監視が繰り返される。
【００３５】
（Ｓ１０２）  バッファメモリ１０２に多重化可能な量だけのストリームデータが格納されると、その蓄積前にバッファメモリ１０２が空だったかどうかが判定され、空でなければ、比較用時刻としては、既に蓄積されている先頭のストリームデータについての多重化基準時刻をそのまま比較に用いればよいので、上記（Ｓ１０１）に戻り、さらに監視が繰り返される。
【００３６】
（Ｓ１０３）  一方、上記蓄積前にバッファメモリ１０２が空だった場合には、比較用時刻として保持されていたのは多重化予測時刻なので、これを更新すべく、新たに蓄積されたストリームデータに含まれる時間情報に基づいて多重化基準時刻が求められる。
【００３７】
（Ｓ１０４）  比較用時刻として保持されていた多重化予測時刻が、上記求められた多重化基準時刻に更新される。以下、上記（Ｓ１０１）以降の処理が繰り返される。
【００３８】
同じ処理は第２ストリームデータに対しても行われ、バッファメモリ１１２への蓄積の監視、比較用時刻の更新が行われる。
【００３９】
（多重化制御）
（Ｓ１１１）  まず、バッファメモリ１０２に第１ストリームデータが多重化可能な量だけ蓄積されているかどうかが判定され、蓄積されていなければ、多重化可能になるまで監視が繰り返される。
【００４０】
（Ｓ１１２）  一方、蓄積されていれば、次に、何れかのストリームデータについて、バッファメモリ１０２，１１２が空の状態から多重可能な量だけの蓄積が完了したか、または後述する多重化が完了したかどうかが判定され、何れもなされていなければ、（Ｓ１１１）に戻ってバッファメモリ１０２への蓄積の監視が繰り返される。一方、何れかがなされていれば、以下の処理が行われる。すなわち、何れかがなされている場合には、そのストリームデータについての比較用時刻が更新されるので、これに対して以下の比較（Ｓ１１３）が行われる。なお、必ずしも、このような判定が行われるようにするのに限らず、例えば、各バッファメモリ１０２，１１２にストリームデータが蓄積されている場合には常に（Ｓ１１３）の比較が行われるようにしたりしてもよい。
【００４１】
（Ｓ１１３）  第１、第２ストリームデータの比較用時刻が比較され、第１ストリームデータの比較用時刻の方が早ければ、第１ストリームデータを多重化すべく（Ｓ１１４）に移行する一方、遅ければ、多重化を待機すべく（Ｓ１１１）に戻る。すなわち、比較用時刻がより早いストリームデータの多重化を優先させる。ここで、第１、第２ストリームデータの比較用時刻が互いに等しい場合には、例えば、あらかじめ設定されたストリームデータごとの優先度に従って第１ストリームデータの方が先に多重化される。なお、これに限らず、先に（Ｓ１１３）の判定処理が実行された方が多重化されるようにしたりしてもよい。
【００４２】
（Ｓ１１４）  セレクタ１０５によって第１ストリームデータが選択され、多重化部１０４によって多重化される。
【００４３】
（Ｓ１１５）  上記多重化後、バッファメモリ１０２に、さらに多重化可能な量の第１ストリームデータが残っているかどうかが判定され、残っていれば（Ｓ１１６）に移行する一方、残っていなければ（Ｓ１１７）に移行する。
【００４４】
（Ｓ１１６）  バッファメモリ１０２に多重化可能な量の第１ストリームデータが残っていれば、その（複数回多重化可能であれば先頭の）第１ストリームデータに含まれる時間情報に基づいて多重化基準時刻が求められ、これによって比較用時刻が更新された後、（Ｓ１１２）以降の処理が繰り返される。すなわち、実際に蓄積されている第１ストリームデータの多重化基準時刻によって、その第１ストリームデータを多重化するかどうかの判定がなされる。
【００４５】
（Ｓ１１７）  一方、バッファメモリ１０２が空になれば、前記のように多重化予測時刻が求められ、これによって比較時刻が更新された後、（Ｓ１１２）以降の処理が繰り返される。すなわち、実際に第１ストリームデータが蓄積されていない場合でも、他のストリームデータの多重化をすべきかどうかの判定が多重化予測時刻に基づいてなされる。
【００４６】
同じ処理は第２ストリームデータに対しても行われ、比較用時刻の比較、更新されつつ、多重化が行われる。
【００４７】
上記のような制御によって行われる多重化の具体的な例を図４に基づいて説明する。この例では、第１ストリームデータの蓄積周期を１０、第２ストリームデータの蓄積周期を４として説明する。また、図４および以下でストリームデータの名称に付した括弧内の数字は、各ストリームデータの基準時刻を示す（例えば第１ストリームデータ（０）の“０”など）。
【００４８】
まず、時刻ｔ０で、第１、第２ストリームデータ（０）の蓄積が共に完了したとすると、これらの多重化基準時刻“０”が、それぞれのストリームデータのバッファ蓄積監視処理（図２）で比較用時刻として保持される（Ｓ１０１〜Ｓ１０４）。
【００４９】
また、それぞれのストリームデータの多重化制御処理で、各ストリームデータの蓄積の有無の確認等が行われた後（Ｓ１１１〜Ｓ１１２）、それぞれの比較時刻（多重化予測時刻）が比較される（Ｓ１１３）。そこで、第１、第２ストリームデータの比較用時刻が共に“０”で等しいことから、前述のとおり、第１ストリームデータ（０）が多重化される一方（Ｓ１１４）、第２ストリームデータ（０）についての多重化は待機される。第１ストリームデータの多重化が完了するとバッファメモリ１０２は空になるので（Ｓ１１５）、多重化が完了した第１ストリームデータ（０）の多重化基準時刻“０”と蓄積周期“１０”とが加算された多重化予測時刻“０＋１０＝１０”が比較用時刻として保持される（Ｓ１１７）。
【００５０】
第１ストリームデータ（０）の多重化完了後、第２ストリームデータの多重化制御処理においては、第２ストリームデータ（０）の比較用時刻“０”の方が第１ストリームデータの比較用時刻“１０”より早くなるため（Ｓ１１３）、第２ストリームデータ（０）が多重化される（Ｓ１１４）。第２ストリームデータ（０）の多重化が完了すると、新たな多重化予測時刻“０＋４＝４”が比較用時刻として保持される（Ｓ１１７）。
【００５１】
その後、時刻ｔ４で、次の第２ストリームデータ（４）の蓄積が完了すると、その多重化基準時刻“４”が比較用時刻として保持される（この例では結果の数値は同じ。）（Ｓ１０１〜Ｓ１０４）。この場合には、上記第２ストリームデータの比較用時刻“４”の方が第１ストリームデータの比較用時刻“１０”より早いので（Ｓ１１１〜Ｓ１１３）、次の第１ストリームデータが蓄積されるのを待つことなく、第２ストリームデータ（４）が多重化される（Ｓ１１４）。多重化後、多重化予測時刻“４＋４＝８”が第２ストリームデータの比較用時刻として保持される（Ｓ１１７）。
【００５２】
以下、同様にして第１、第２ストリームデータが多重化される。
【００５３】
なお、上記の例ではストリームデータが２種類の多重化装置を示したが、これに限らず３種類以上の多重化装置を構成してもよい。具体的には、例えば図３の（Ｓ１１２）において、全てのストリームデータのうちの何れかに対して、バッファがメモリが空の状態からの蓄積が完了したか多重化が完了したかが判定されればよい。また、（Ｓ１１３）においては、各ストリームデータの比較用時刻と、それぞれ他の全てのストリームデータの比較用時刻とが比較されるようにしたり、または少なくとも更新された比較用時刻が他のストリームデータの比較用時刻と比較されるようにすればよい。
【００５４】
また、上記の例では第１、第２ストリームデータの比較用時刻が等しい場合に、あらかじめ設定された優先度に従って多重化されるストリームデータが決定される例を示したが、比較用時刻が等しい場合に限らず、優先度に応じて、一方のストリームデータは、比較用時刻が遅くても差が所定の範囲内であれば多重化される一方、他方のストリームデータは比較用時刻が早くても差が所定の範囲内であれば多重化が待機されるようにしてもよい。また、比較対象の比較用時刻が多重化予測時刻である場合に、上記差が所定の範囲内であれば多重化されるようにしたり、比較対象の比較用時刻が多重化予測時刻であるかどうかに応じて上記所定の範囲を異ならせたりしてもよく、また、そのような制御と優先度に応じた制御とを組み合わせたりしてもよい。さらに、バッファの容量や蓄積量、ストリームデータの種類などにも基づいて、多重化されるかどうかが制御されるようにしてもよい。
【００５５】
また、通常行われるバッファ制御等、例えばオーバフロー時のデータ破棄やアンダフロー時のスタッフィングなども、論理的に矛盾しない限り、種々適用してもよい。
【００５６】
《発明の実施形態２》
図５は、本発明に係る実施形態２の多重化装置の構成を示すブロック図であり、図１の構成とは、主としてスキップ判断部２０１，２１１を有している点で異なっている。この多重化装置では、第１、第２ストリームデータ生成部１０１，１１１において何らかの理由でストリームデータが生成できなかった場合は、スキップ判断部２０１，２１１がスキップが発生したと判断し、その発生を多重化制御部１０３に伝える。多重化制御部１０３はこれを受けて、スキップが発生した方のストリームデータの多重化基準時刻を、例えば蓄積周期を加算した次の多重化予測時刻に強制的に更新して、比較用時刻とする。
【００５７】
そこで、他方のストリームデータは、その比較用時刻が上記スキップが発生した方のストリームデータにおける更新前の比較用時刻と比べれば遅かったとしても、更新後の比較用時刻よりも早ければ、多重化される。このように速やかな多重化が行われることによって、バッファメモリ１０２，１１２のバッファリング量を減少させることができる。したがって、バッファメモリ１０２，１１２の容量を小さく抑えることができる。
【００５８】
《発明の実施形態３》
図６は、本発明に係る実施形態３の多重化装置の構成を示すブロック図であり、図１の構成とは、主としてバッファ監視部３０１，３１１を有している点で異なっている。この多重化装置では、バッファ監視部３０１，３１１は、バッファメモリ１０２，１１２の蓄積量が所定の閾値に達したかどうか監視し、達した場合に、多重化制御部１０３が他方のストリームデータの比較用時刻を例えば蓄積周期を加算した次の比較用時刻に強制的に更新するようになっている。
【００５９】
具体的な動作の例を図７に基づいて説明する。ここで、バッファ監視部３０１，３１１における上記蓄積量の閾値は多重化２回分であるとする。
【００６０】
この例では、第２ストリームデータ（０）（４）（８）については、実施形態１（図１）の具体例で説明したのと同様に順次バッファメモリ１１２に蓄積され、多重化される。一方、第１ストリームデータは、ｔ１０の時点でスキップの発生等によって入力されずバッファメモリ１０２に蓄積されなかったとする。その場合、第１ストリームデータの比較用時刻は多重化予測時刻“１０”のまま更新されないことになる。
【００６１】
そこで、ｔ１２の時点で次の第２ストリームデータ（１２）が入力されて蓄積されても、その場合の比較用時刻“１２”は第１ストリームデータの比較用時刻“１０”よりも遅いので、第２ストリームデータの多重化は行われず、バッファメモリ１１２に蓄積されたままの状態となる。
【００６２】
次に、ｔ１６の時点で第２ストリームデータ（１６）が入力されて蓄積されると、蓄積量が多重化２回分に達することになるので、バッファ監視部３１１は蓄積量が閾値に達したことを多重化制御部１０３に伝える。そこで、第１ストリームデータの比較用時刻は例えば蓄積周期を加算された“１０＋１０＝２０”に更新される。この場合、バッファメモリ１１２に蓄積されている第２ストリームデータ（１２）（１６）の多重化基準時刻（順次比較用時刻にされる値）は何れも上記更新された比較用基準時刻よりも早いことになるので、実際に第１ストリームデータ（１０）が入力されるのを待つことなく、順次多重化される。
【００６３】
上記のように、例えば、第１ストリームデータの生成がスキップされるなどによりバッファメモリ１０２に到着しない状態が続いたり、第２ストリームデータがバースト的に到着するなどして、バッファメモリ１１２の蓄積量が多くなった場合などでも、実施形態２で説明したのと同様に、蓄積量が閾値を超えるなどした第２ストリームデータを速やかに多重化させることができるので、やはり、バッファメモリ１０２，１１２の容量を容易に小さく抑えることができる。
【００６４】
なお、上記の例では、バッファ監視部３０１，３１１を設けてバッファメモリ１０２，１１２の蓄積量が何れも監視される例を示したが、これに限らず、ストリームデータの種類やバッファの容量などに応じて、何れかのバッファだけが監視されるようにしたりしてもよい。
【００６５】
また、バッファごとに蓄積量の閾値は同一に限らず種々設定可能である。
【００６６】
また、強制的に比較用時刻を更新する際の加算値は、上記のような蓄積周期に限らず、少なくともバッファの蓄積量を減少させ得る値であればよい。
【００６７】
《発明の実施形態４》
図８は、本発明に係る実施形態４の多重化装置の構成を示すブロック図であり、図１の構成とは、主として、タイマ監視部４０１，４１１を有している点で異なっている。この多重化装置では、タイマ監視部４０１，４１１は、タイマを内蔵し、各バッファメモリ１０２，１１２にストリームデータが一定期間以上到着しなかった場合、多重化制御部１０３にストリームデータ未着を通知する。多重化制御部１０３は、これを受けて、未着のストリームデータの比較用時刻を、次の比較用時刻に強制的に更新させる。これにより、やはり他方のバッファメモリ１０２，１１２に蓄積されているストリームデータを速やかに多重化させることができる。
【００６８】
なお、本実施形態４においても、未着の監視は、何れかのバッファに対してだけ行われるようにしたりしてもよい。
【００６９】
また、各実施形態や変形例で説明した構成要素は、論理的に可能な限り、種々組み合わせてもよい。具体的には、例えば、ストリームデータ生成のスキップ、バッファメモリ蓄積量増大、ストリームデータ未着の何れが生じた場合でも、比較用時刻の更新が行われるようにしたりしてもよい。
【００７０】
また、多重化基準時刻や多重化予測時刻は、比較用時刻として保持されるのに限らず、例えば必要に応じて求められたり蓄積されているストリームデータから参照されたりするようにしてもよい。
【産業上の利用可能性】
【００７１】
本発明にかかる多重化装置および多重化方法は、バッファサイズを小さく抑え、しかも、多重化データにおける、同時刻に再生すべきストリームデータの多重化位置を近づけることなどが容易にできる効果を有し、例えば動画データや音声データ等の複数種類のストリームデータを多重化する多重化装置および多重化方法等として有用である。
【図面の簡単な説明】
【００７２】
【図１】実施形態１の多重化装置の構成を示すブロック図である。
【図２】同、バッファ蓄積監視処理を示すフローチャートである。
【図３】同、多重化制御処理を示すフローチャートである。
【図４】同、多重化の具体例を示す説明図である。
【図５】実施形態２の多重化装置の構成を示すブロック図
【図６】実施形態３の多重化装置の構成を示すブロック図
【図７】同、多重化の具体例を示す説明図である。
【図８】実施形態４の多重化装置の構成を示すブロック図
【符号の説明】
【００７３】
１０１，１１１    第１、第２ストリームデータ生成部
１０２，１１２    バッファメモリ
１０３            多重化制御部
１０４            多重化部
１０５            セレクタ
２０１，２１１    スキップ判断部
３０１，３１１    バッファ監視部
４０１，４１１    タイマ監視部
【図１】
2009188530.tif 000003
【図２】
2009188530.tif 000004
【図３】
2009188530.tif 000005
【図４】
2009188530.tif 000006
【図５】
2009188530.tif 000007
【図６】
2009188530.tif 000008
【図７】
2009188530.tif 000009
【図８】
2009188530.tif 000010