(57)【要約】【課題】蓄積媒体に蓄積されたビデオエレメンタリーストリームを多重化する、従来の映像多重化方法は、特にＶＢＲのビデオエレメンタリーストリームの多重化では、最適なトランスポートレートで多重化できないという課題があった。【解決手段】ビデオエレメンタリーストリームに対する最適ビットレート算出処理１００は、ビットレートＢの初期値算出処理１１０と、ビットレートＢを変化させて設定する処理１３０と、全フレームに対してビットレートＢに基づいたバッファシミュレーションを行うＶＢＶバッファシミュレーション処理１３１と、バッファ破綻の状況により繰り返し処理を行うための判定処理１３３と、最適ビットレートＢｐを算出する処理１４０とを有する。【選択図】　図１
2004072299.tif 000002
【特許請求の範囲】
【請求項１】
１個のビデオエレメンタリーストリームをトランスポートストリームに多重化する映像多重化方法であって、ビデオエレメンタリーストリームのビットレートの初期値算出ステップと、前記ビットレートを変化させて設定するステップと、前記ビデオエレメンタリーストリームの全フレームに対して、前記ビットレートに基づいたＶＢＶバッファ占有度の追跡を行うＶＢＶバッファシミュレーションステップと、前記バッファ破綻の状況により繰り返し処理を行うための判定ステップと、最適なビットレートを算出する最適ビットレート算出ステップとを有することを特徴とする映像多重化方法。
【請求項２】
参照するフレームがビデオエレメンタリーストリームに存在しない無効フレームを除去する、無効フレーム除去ステップを有することを特徴とする請求項１に記載の映像多重化方法。
【請求項３】
Ｍ（Ｍ＞１、Ｍは整数）個のビデオエレメンタリーストリームを直列に接続してトランスポートストリームに多重化する映像多重化方法であって、Ｍ個のビデオエレメンタリーストリームを直列に接続する、複数個のビデオエレメンタリーストリームの接続ステップを有することを特徴とする請求項１に記載の映像多重化方法。
【請求項４】
前記複数個のビデオエレメンタリーストリームの接続ステップは、参照するフレームが前記ビデオエレメンタリーストリームに存在しない無効フレームを除去する、無効フレーム除去ステップを有することを特徴とする請求項３に記載の映像多重化方法。
【請求項５】
前記最適ビットレート算出ステップは、算出された最適ビットレートをビデオエレメンタリーストリームの対応する全てのヘッダに書き込むビットレート値書換え処理を有することを特徴とする請求項１から４のいずれかに記載の映像多重化方法。
【請求項６】
請求項１から５のいずれかに記載の映像多重化方法を用いて生成したストリームを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＤＶＤ等の映像ソースから取り込んだ複数のＭＰＥＧ２ビデオコンテンツを編集して、送出または蓄積媒体への記録を目的として、１つのトランスポートストリームに多重化する映像多重化方法において、伝送帯域または蓄積媒体の容量を効率的に利用するための最適なビットレートを算出して多重化する映像多重化方法に関する。
【０００２】
【従来の技術】
ＤＶＤ−Ｖｉｄｅｏ規格に基づくオーサリングシステムでは、デジタル化した映像を情報圧縮し、シーンに応じた適切なビットレートで記録することで、限られたディスク容量を最大限に利用し、高画質なコンテンツを制作することを可能にしている。これを可能にした映像圧縮技術は、ビットストリーム及び復号化方法を規定したＭＰＥＧ２のビデオ規格（ＩＳＯ／ＩＥＣ１３８１８−２）である。
【０００３】
ＭＰＥＧ２の映像符号化（以下、エンコードと記述する）では、各ピクチャに異なった符号量を割り当てることで、オリジナルの映像に比べて多くのビットレートを削減しながら、高画質を実現している。このピクチャ単位で異なるレートを一定にして、ビデオエレメンタリーストリーム（Ｖｉｄｅｏ　Ｅｌｅｍｅｎｔａｒｙ　Ｓｔｒｅａｍ　、以下ビデオＥＳ）と呼ばれる固定レートの出力ビットストリームを得るために、出力時にバッファを用いている。このバッファは、ＶＢＶ（Ｖｉｄｅｏ　Ｂｕｆｆｅｒｉｎｇ　Ｖｅｒｉｆｉｅｒ）と呼ばれ、デコーダでビットストリームの復号をする際の検証モデルとなる。ＶＢＶバッファでバッファ占有度の遷移を計算することを、ＶＢＶバッファシミュレーションと呼ぶ。
【０００４】
図１１にＶＢＶバッファシミュレーションを説明するブロック図を示す。ビデオエンコーダ２００は、入力映像２１０をＭＰＥＧ２でエンコードするエンコード部２２０と、出力バッファ２３０から成っている。エンコードが終了すると、出力としてビデオＥＳ２４０が得られる。次にこのビデオＥＳを再生する場合には、入力されるビデオＥＳ２４０をバッファリングするデコーダバッファ２６０と、バッファから映像をデコードするデコード部２７０から成るビデオデコーダ２５０を用いて、出力デコード映像２９０を得ることができる。
【０００５】
バッファ２６０が破綻せず、正常な連続した出力デコード映像２９０を得るには、ビデオＥＳ２４０は、デコーダバッファの占有度を前もって検証されたストリームでなくてはならない。そこでエンコーダのバッファ２３０でＶＢＶバッファシミュレーション３００を行い、デコーダバッファが破綻しないことを保証することが必要となる。
【０００６】
図１２にＶＢＶバッファシミュレーションの動作を説明する図を示す。横軸に時間３２０、縦軸にバッファ占有度３１０を取る。ＶＢＶバッファサイズ３１１がバッファの容量（単位：ビット）を表す。ストリームは一定レートでデコーダに入力されるため、一定の傾き３１３がビットレートＢを表す。まず、最初にＶＢＶバッファ初期値３１２まで、バッファにデータが蓄積される。ピクチャデータの蓄積が開始されてから、１番目のピクチャのｖｂｖ＿ｄｅｌａｙ値、ｖｂｖ＿ｄｅｌａｙ（１）３２３の時間が経過すると、ピクチャのデコード時刻になり、１番目のピクチャがデコードされ、バッファからデータが抜き取られる。ｎ番目のピクチャのデコード時刻ｔ（ｎ）３２１が到着すると、ｎ番目のピクチャがデコードされ、ピクチャ符号量Ｄ（ｎ）３１４がバッファから抜き取られる。また、ピクチャｎがデコードされてから、次のピクチャｎ＋１がデコードされるまでの時間間隔を、ピクチャのデコード間隔Ｔ（ｎ）３２２とする。
【０００７】
デコーダバッファの破綻は、２つの種類がある。バッファサイズ３１１を超えてデータが入力された場合は、オーバーフロー３３０が起こる。逆にバッファからピクチャデータを抜き取る際、バッファに全てのピクチャデータが存在しない場合は、アンダーフロー３３１が発生する。図１１のＶＢＶバッファシミュレーション３００をエンコーダ側で行うことで、このバッファの破綻が起こらないようなビデオＥＳを生成するようにエンコード部２２０を制御する。これをレート制御という。
【０００８】
オーバーフローとアンダーフローの両方を許容せず、オーバーフローをスタッフィングで回避するバッファモデルは、ＣＢＲ（Ｃｏｎｓｔａｎｔ　Ｂｉｔ　Ｒａｔｅ　）と呼ばれる。オーバーフローを許容し、アンダーフローは許容しないバッファモデルは、ＶＢＲ（Ｖａｒｉａｂｌｅ　Ｂｉｔ　Ｒａｔｅ　）と呼ばれる。
【０００９】
放送では、固定の帯域幅において、常にデータが一定レートでデコーダに入力されてくるため、ＣＢＲ（Ｃｏｎｓｔａｎｔ　Ｂｉｔ　Ｒａｔｅ　）の符号化モデルを使う方が帯域を有効に利用できる。一方、ＤＶＤーＶｉｄｅｏ等の蓄積媒体では、間欠転送により可変レート入力が実現可能なことと、記憶容量を有効に利用する目的から、ＶＢＲ（Ｖａｒｉａｂｌｅ　Ｂｉｔ　Ｒａｔｅ　）の符号化モデルを使うことが多い。
【００１０】
主にディジタルＴＶ放送などの送出用に用いられる形式であるトランスポートストリームは、ＭＰＥＧ２のシステム規格（ＩＳＯ／ＩＥＣ１３８１８−１）で規定される。多重化では、映像・音声やデータの入力から、それらをパケット化し、一定の伝送速度であるトランスポートレートで伝送できるよう、一本のトランスポートストリームに多重化する。
【００１１】
トランスポートストリームは、送出用として多く用いられてきたが、ＴＶ放送を家庭のセットトップボックス（ＳＴＢ）等の受信端末で記録するといったニーズや、タイムスタンプとパケットの位置関係が線形であるため扱い易いといった利点のため、蓄積媒体で利用する機器も増えてきている。また、近年のコンピュータの性能の向上によりコンピュータ上で映像が扱えるようになり、多様な映像コンテンツやフォーマットが流通してきている。そういった背景の中で、トランスポートストリームの効率的な生成や編集を行えるシステムが望まれている。
【００１２】
トランスポートストリームの利用効率を向上するという観点では、従来、特開平１１−１７７５１５のように無効データを利用するものなどがあった。また、トランスポートストリームの編集という観点では、特開平１１−２２０６５５号公報や特開平１１−８３６９１２号公報のように、放送におけるスプライシングまたはトランスコーディングという技術があった。
【００１３】
【発明が解決しようとする課題】
ＤＶＤ−ＶｉｄｅｏなどＭＰＥＧ２のＶＢＲで符号化された複数のビデオコンテンツを編集して１本のトランスポートストリームに多重化する際に、ヘッダに記述された最高ビットレートと実際のビットレートとが大きく異なる場合がある。しかし、ヘッダのビットレートを読み取ったり外部から固定のレートを与えたりする従来の多重化方法では、トランスポートストリームに多くの無効なデータが多重化され、ストリームを送出する際の帯域や蓄積媒体に記録する際の記憶容量を効率的に利用できていなかった。
【００１４】
本発明は上記従来の問題点を解決するもので、複数のビデオエレメンタリーストリームを編集して接続し、一つのトランスポートストリームに多重化する映像多重化方法において、ビデオエレメンタリーストリームを正常に多重化しつつもレートを最小にした最適なビットレートを算出し、得られた最適なビットレートに基づいて最適なトランスポートを算出してトランスポートストリームに多重化する、効率的な多重化方法を得ることを目的とする。
【００１５】
【課題を解決するための手段】
上記目的を達成するために、本発明の映像多重化方法は、映像及び音声をトランスポートストリームに多重化する前のビデオエレメンタリーストリームに対し、ビットレートの初期値算出処理と、ビットレートを変化させて設定する処理と、全シーケンスに対してビットレートに基づいたバッファシミュレーションを行うＶＢＶバッファシミュレーション処理と、バッファ破綻の状況により繰り返し処理を行うための判定処理と、最適なビットレートを算出する処理を行うことで、ビデオエレメンタリーストリームに対する最適なビットレートを算出し、最適なトランスポートレートを算出するものである。
【００１６】
また、複数のビデオエレメンタリーストリームを接続し、一つのトランスポートストリームに多重化する場合には、それら複数のビデオエレメンタリーストリームの無効フレームを除去して直列に接続し、接続された１個のビデオエレメンタリーストリームに対して最適なビットレートを算出することで、最適なトランスポートレートを算出するものである。
【００１７】
【発明の実施の形態】
本発明の第１の発明は、少なくとも１個のビデオエレメンタリーストリームをトランスポートストリームに多重化する映像多重化方法であって、トランスポートストリーム多重化ステップの前段で行われるビデオエレメンタリーストリームの最適ビットレート算出ステップは、ビットレートの初期値算出ステップと、ビットレートを変化させて設定するステップと、全シーケンスに対してビットレートに基づいたバッファシミュレーションを行うＶＢＶバッファシミュレーションステップと、バッファ破綻の状況により繰り返し処理を行うための判定ステップと、最適なビットレートを算出するステップとを有することを特徴とする映像多重化方法であり、ビデオエレメンタリーストリームに対する最適なビットレートを算出し、最適なトランスポートレートを算出することで、トランスポートストリームを送出する際の帯域または蓄積媒体に記録する際の記憶容量を効率的に利用することを可能とする。
【００１８】
本発明の第２の発明は、Ｍ個（Ｍ＞１、Ｍは整数）のビデオエレメンタリーストリームを直列に接続してトランスポートストリームに多重化する映像多重化方法であって、Ｍ個のビデオエレメンタリーストリームを直列に接続する複数個のビデオエレメンタリーストリームの接続ステップと、接続されたビデオエレメンタリーストリームに対して第１の発明におけるビデオエレメンタリーストリームの最適ビットレート算出ステップを行うステップとを有することを特徴とする映像多重化方法であり、複数個のビデオエレメンタリーストリームを接続する際に対する最適なビットレートを算出し、最適なトランスポートレートを算出することで、トランスポートストリームを送出する際の帯域または蓄積媒体に記録する際の記憶容量を効率的に利用することを可能とする。
【００１９】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００２０】
（実施の形態１）
本実施の形態では、少なくとも１個のビデオＥＳをトランスポートストリームに多重化する映像多重化方法であって、トランスポートストリーム多重化処理の前段で行われる映像解析処理において、ビットレートの初期値を算出し、ビットレートを変化させて設定し、全シーケンスに対してビットレートに基づいたＶＢＶバッファシミュレーション処理を行い、バッファ破綻の状況により繰り返し処理を行うための判定処理を行い、最適なビットレートを算出する処理を行うことを特徴とする映像多重化方法を説明する。
【００２１】
実施の形態１における映像多重化方法は、ハードウェア上に搭載されたソフトウェアの形式、例えば図２に示したようなコンピュータ４００上で動作するプログラムとして実現することができる。図２において、４１０はデータを移動させるための通信路であるバス、４１１はデータに対して演算処理を行うためのＣＰＵ、４１２はデータの記憶を行うためのメモリ、４１３はデータを外部と通信するための通信インターフェース、４２１はデータをユーザに表示するための表示デバイス、４２２はユーザからデータの入力を受けるための入力デバイス、４２３はデータを２次記憶するためのハードディスクドライブ、４２４は光ディスクメディアにデータを読み書きするための光ディスクドライブである。
【００２２】
コンピュータ４００にて、映像多重化を実現する方法について説明する。まず、本発明による映像多重化を行うためのプログラムを、ハードディスク４２３に蓄積しておく。次に、通信インターフェース４１３又は光ディスクドライブ４２４を通して、ビデオＥＳ及び必要に応じてそれに付随したオーディオＥＳやデータを読み込み、ハードディスクドライブ４２３に蓄積する。ここで、通信インターフェース４１３や光ディスクドライブ４２４から読込むストリームは、エレメンタリーストリームに限らず、トランスポートストリームやＭＰＥＧプログラムストリームなどのビデオＥＳをシステム化したストリームであっても良い。この場合は、ハードディスクドライブ４２３に、対応するストリームをデコードするプログラムを格納しておくか、デコーダデバイスをコンピュータに接続しておけば、ビデオＥＳを得ることができる。
【００２３】
次に、映像多重化を行うためのプログラムを起動する。プログラムは起動されると、ハードディスクドライブ４２３からメモリ４１２上にロードされ、表示デバイス４２１を通して、例えば図３のようなグラフィカルユーザインターフェースの画面が表示される。図３において、ボックス４３１と４３２に、ビデオＥＳ名とオーディオＥＳ名を入力する。次にボックス４３３にトランスポートストリーム名を入力する。これらのストリーム名は、ハードディスクドライブ４２３や光ディスクドライブ４２４におけるファイル名で指定される。必要であればＰＩＤ等のストリーム付加情報をボックス４３４、４３５、４３６に入力する。開始ボタン４３７を押すと、映像多重化の本体のプログラムが実行される。
【００２４】
実施の形態１における映像多重化方法は、図４に示した映像多重化処理において、ビデオＥＳの最適ビットレート算出処理１００として図１に示すフローチャートを用いるものである。
【００２５】
図１において、１１０はビットレートの初期値算出ステップ、１１１は平均ビットレート算出ステップ、１１２はピクチャ符号量等のＶＢＶ情報を記憶するステップ、１２０はビットレートの初期値代入ステップ、１２１はビットレートの初期値に対するＶＢＶバッファシミュレーションステップ、１２２はバッファ破綻の判定ステップ、１３０はビットレートを変化させて設定するステップ、１３１は全シーケンスに対してビットレートに基づいたバッファシミュレーションを行うＶＢＶバッファシミュレーションステップ、１３２はバッファ破綻の判定ステップ、１３３はバッファ破綻の状況により繰り返し処理を行うための判定ステップ、１４０は最適なビットレートを算出するステップである。
【００２６】
以上のように構成されたビデオＥＳの最適ビットレート算出処理について、以下その動作について説明する。
【００２７】
まずビデオＥＳの総ビット量Ｖｓに対して、実際の平均ビットレートＡｖｇ（Ｖｓ）を算出するステップ１１１を行う。これは、ビデオＥＳのヘッダから読み取ったフレームレート（ピクチャレート）をｆ（Ｈｚ）、ビデオＥＳに含まれる総ピクチャ数をＮとすると、（数１）で計算される。
【００２８】
【数１】
2004072299.tif 000003
【００２９】
ここで、ＶｓやＮには、後の多重化ステップ５１０において多重化されない無効フレームの値は含まれないものとする。
【００３０】
次にステップ１２０にて、算出された値Ａｖｇ（Ｖｓ）をビットレートＢの初期値として代入し、ステップ１２１にて、ビットレートＢに対するＶＢＶバッファシミュレーションを行う。ＶＢＶバッファシミュレーションの動作は、図１５を用いて説明した通りである。バッファシミュレーションの方法はＣＢＲとＶＢＲの２種類があるが、本発明では、ＣＢＲとＶＢＲの両方に適用できるＶＢＲを利用する。但しＶＢＶバッファ初期値３１２は、ＣＢＲの場合はビデオＥＳから読み取ったｖｂｖ＿ｄｅｌａｙ値、ＶＢＲの場合はＶＢＶバッファサイズ値にする。まず、最初のピクチャから最後のピクチャまで順にバッファ占有度を追跡する。アンダーフローが起きた場合は、変数ａ＝＋１とし、起きなかった場合は、変数ａ＝−１とする。この変数ａは、今後ビットレートを増加させるか減少させるかを意味している。ここで、少なくとも得られたピクチャ符号量Ｄ（ｎ）（ｎ＝１，２，．．，Ｎ）の列とｔｏｐ＿ｆｉｅｌｄ＿ｆｉｒｓｔフラグ、ｒｅｐｅａｔ＿ｆｉｒｓｔ＿ｆｉｅｌｄフラグの列を含むＶＢＶ情報を、図２におけるメモリ４１２等に記憶する。以上でビットレートの初期値算出ステップ１１０を終了する。
【００３１】
次にビットレートＢを変化させて最適なビットレートを探す繰り返し処理を行う。まずビットレートを変化させて設定するステップ１３０において、ビットレートＢをＢ＋ａ×ΔＢに更新する。ここでΔＢは固定のステップ幅であり、例えばΔＢ＝０．１（Ｍｂｐｓ）と定義することができる。また、今回のａの値をａ＿ｐｒｅに保存する。ステップ１３１で更新されたビットレートＢに対するＶＢＶバッファシミュレーションを行う。この際、ステップ１１２にて記憶されたＶＢＶ情報を利用することで、ビデオＥＳを再び解析するための不要な計算量を削減できる。ステップ１３２でバッファ破綻が起こったかどうかが判定され、前回の破綻状況と変化がない場合つまりａ＝ａ＿ｐｒｅなら、再びステップ１３０に戻ってやり直す。破綻状況に変化があった場合は、そのビットレートＢの近辺が最適ビットレートとなるため、ステップ１４０に進む。ステップ１４０では、最適ビットレートＢｐを（数２）で与える。
【００３２】
【数２】
2004072299.tif 000004
【００３３】
この式は、今回初めて破綻した場合つまりａ＝＋１の場合は、前回のビットレートＢｐ＝Ｂ＋ΔＢが最適値となり、今回初めて破綻しなかった場合つまりａ＝−１の場合は、今回のビットレートＢｐ＝Ｂが最適値となることを意味している。以上のようにして、ビデオＥＳのバッファを保証できかつ最小のレートである最適ビットレートＢｐが算出され、ステップ１９０でビデオＥＳの最適ビットレート算出処理１００を終了する。
【００３４】
次にトランスポートストリーム多重化処理５１０を行う。ここでは、算出されたビデオＥＳの最適ビットレートに基づいて、最適なトランスポートレートを算出し、それに基づいて多重化処理を行う。
【００３５】
図５に最適なトランスポートレートの算出の過程を説明する図を示す。ビデオやオーディオのＥＳは、規定されたデータ単位毎にＰＥＳヘッダを加算され、ＰＥＳパケットにされる。次に、ＰＥＳパケットを区切り、ＴＳヘッダを付けてトランスポートパケットにする。ビデオの場合では、１個のＰＥＳパケットにされるＥＳのデータはピクチャ１個分と規定されている。あるピクチャｎのデータバイト数をＤ↓Ｖ（ｎ）バイト、ビデオＥＳからＴＳパケットにする際に増加する総ヘッダバイト数をＡ↓Ｖ（ｎ）、ある１ＰＥＳパケット分のオーディオユニットｎのデータバイト数をＤ↓Ａ（ｎ）バイト、オーディオＥＳからＴＳパケットにする際に増加する総ヘッダバイト数をＡ↓Ａ（ｎ）、オーディオのビットレートをＢ↓Ａ、ＰＡＴ（Ｐｒｏｇｒａｍ　Ａｓｓｏｃｉａｔｉｏｎ　Ｔａｂｌｅ　）のパケットレートをＢ↓ＰＡＴ、ＰＭＴ（Ｐｒｏｇｒａｍ　Ｍａｐ　Ｔａｂｌｅ　）のパケットレートをＢ↓ＰＭＴ、それ以外のＰＩＤを持つパケットのレートをＢ↓Ｏｔｈｅｒとすると、最適トランスポートレートＢ↓ＴＳは、（数３）で与えられる。
【００３６】
【数３】
2004072299.tif 000005
【００３７】
ΣはＥＳの全てのデータをｎについて加算することを示している。また（数３）では全てのデータに対してΣ計算を行っているが、系列の代表値や経験値を用いることもできる。
【００３８】
（数３）に用いられる全ての変数は、ＥＳ、ＰＥＳヘッダのシンタックス、ＴＳヘッダのシンタックス、ＰＡＴの多重化頻度、ＰＭＴの多重化頻度、ＰＣＲ（Ｐｒｏｇｒａｍ　Ｃｌｏｃｋ　Ｒｅｆｅｒｅｎｃｅ　）をビデオ上に挿入するか又は独立パケットとするか、ＰＣＲの多重化頻度、若干の余裕を持たせるためのＮＵＬＬパケットのレート等のパラメータを決定することで値が算出でき、最適なトランスポートレートＢ↓ＴＳを算出することができる。
【００３９】
なお、以上の説明では、最適ビットレート算出処理において、ビットレートの平均値を初期値として処理を行う例を示したが、ビットレートを変化させてバッファの破綻の状況を調べる方法であれば、その他の方法も可能であることは言うまでもない。また、本実施の形態のプログラムを実行するためのハードウェアの例としてコンピュータを示したが、少なくともビデオエレメンタリーストリームの任意の部分を任意の時間にアクセスできる状態にすることができ、オーディオエレメンタリーストリームやその他の多重化情報を取得してソフトウェア又はハードウェアによりトランスポートストリームへと多重化が行えるハードウェアであれば、これに限定するものではない。
【００４０】
本実施の形態の利点は、１つのビデオＥＳに対する最適なビットレートを算出し、最適なトランスポートレートを算出することで、トランスポートストリームを送出する際の帯域または蓄積媒体に記録する際の記憶容量を効率的に利用することを可能とする。
【００４１】
（実施の形態２）
本実施の形態では、Ｍ個（Ｍ＞１、Ｍは整数）のビデオエレメンタリーストリームを直列に接続してトランスポートストリームに多重化する映像多重化方法であって、Ｍ個のビデオエレメンタリーストリームを直列に接続し、接続されたビデオエレメンタリーストリームに対して実施の形態１におけるビデオエレメンタリーストリームの最適ビットレート算出処理を行うことを特徴とする映像多重化方法を説明する。
【００４２】
実施の形態２における映像多重化方法は、例えば図２に示したようなコンピュータ４００上で動作するプログラムとして実現することができる。図２での本発明の実現方法は、実施の形態１において説明した通りである。
【００４３】
実施の形態２における映像多重化方法は、図６に示した映像多重化処理において、複数個のビデオＥＳの接続処理５２０として図７に示すフローチャートを、接続されたビデオＥＳの最適ビットレート算出処理１０１として、図８に示すフローチャートを用いるものである。
【００４４】
図７において、５３１は繰り返し回数ｋを初期化するステップ、５４０はｋ番目のビデオＥＳの無効フレームを除去するステップ、５３２は繰り返し回数ｋを１増加させるステップ、５３３は繰り返しするかどうかを判定するステップ、５５０はＭ個のビデオＥＳを直列に接続するステップ、１９０は終了である。
【００４５】
以上のように構成されたＭ個（Ｍ＞１、Ｍは整数）のビデオＥＳの接続処理について、以下その動作について説明する。
【００４６】
まずステップ５３１にて、ビデオＥＳのインデックスを示す繰り返し回数ｋを０に初期化する。次にステップ５４０にて、ｋ番目のビデオＥＳの無効フレームを除去する処理を行う。図９に無効フレームを説明する図を示す。ビデオＥＳのデータがオリジナルのビデオＥＳから切り出された際にＧＯＰ（Ｇｒｏｕｐ　Ｏｆ　Ｐｉｃｔｕｒｅｓ）単位で切り出されていない場合は、ビデオＥＳの先頭や末尾に、参照フレームがストリーム中に存在しない無効なフレームが存在する。無効フレームが存在すると、ストリームを直列に接続する際に誤ったフレーム参照により正しくないストリームを生成してしまう。この現象を防止するため、ステップ５４０にて無効フレームを除去する。
【００４７】
次にステップ５３２にてｋを１増加させる。ステップ５３３において、ｋがＭに達したかどうかを判定し、ｋ＜Ｍなら、ステップ５４０に戻る。ｋ＝Ｍなら、ステップ５５０にて、Ｍ個のビデオＥＳを直列に接続し、ステップ５２９で終了する。ここで、Ｍ個のビデオＥＳを直列に接続することの意味を、図１０にて説明する。図１０のように、ビデオＥＳ＃０からビデオＥＳ＃Ｍ−１までのＭ個のＥＳを直列に接続すると、接続点におけるバッファ占有度を合致させることになる。但し、この時点ではビットレートも決定していない上、バッファが破綻しないかどうかも保証されない。
【００４８】
Ｍ個のビデオＥＳが１つに接続されると、図８の接続されたビデオＥＳの最適ビットレート算出処理１０１を行う。まず、実施の形態１の図１で示した処理である、ビデオＥＳの最適ビットレート算出処理１００を行う。この算出処理１００では、接続されたビデオＥＳの全てのフレームに対して図１のフローチャートによる１回の処理を行うことになる。この処理を行うと、全てのバッファが正常であることを保証する最適ビットレートが算出される。次に、接続されたビデオＥＳのビットレート値書換え処理１５０を行う。接続されたビデオＥＳは、接続前の部分により異なるビットレート値が書き込まれている可能性がある。そのため、最適ビットレートを全てのヘッダ（シーケンスヘッダとシーケンスエクステンション）に書き込む処理を行う。
【００４９】
以上のようにして複数個のビデオＥＳを接続して最適ビットレートを算出すると、最後にトランスポートストリーム多重化処理５１０を行う。この処理は、実施の形態１にて説明したのと同様である。
【００５０】
本実施の形態の利点は、複数個のビデオエレメンタリーストリームに対する最適なビットレートを算出し、最適なトランスポートレートを算出することで、トランスポートストリームを送出する際の帯域または蓄積媒体に記録する際の記憶容量を効率的に利用することを可能とする。
【００５１】
【発明の効果】
以上の説明から明らかなように、本発明によれば、画質の保証された１つ又は複数のビデオエレメンタリーストリームを用いて、オフラインでトランスポートストリーム形式のコンテンツを制作するための映像多重化方法において、最適なビットレートのトランスポートストリームを得ることができ、送出時の帯域または蓄積媒体に記録時の記憶容量を効率的に利用することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるビデオエレメンタリーストリームの最適ビットレート算出処理を示すフローチャート
【図２】同プログラムを実行するためのハードウェアの一例であるコンピュータを示す図
【図３】同プログラムの画面の一例を示す図
【図４】同映像多重化処理を示すフローチャート
【図５】同最適なトランスポートレートの算出の過程を説明する図
【図６】本発明の実施の形態２における映像多重化処理を示すフローチャート
【図７】同複数個のビデオエレメンタリーストリームの最適ビットレート算出処理を示すフローチャート
【図８】同接続されたビデオエレメンタリーストリームの最適ビットレート算出処理を示すフローチャート
【図９】同ビデオエレメンタリーストリームを接続する際の無効フレームを説明する図
【図１０】同ビデオエレメンタリーストリームを接続する際のバッファを説明する図
【図１１】ＶＢＶバッファシミュレーションの位置付けを示すブロック図
【図１２】ＶＢＶバッファシミュレーションを説明する図
【符号の説明】
１００　ビデオエレメンタリーストリームの最適ビットレート算出処理
１０１　接続されたビデオエレメンタリーストリームの最適ビットレート算出処理
１１０　ビットレートの初期値算出ステップ
１１１　平均ビットレート算出ステップ
１１２　ＶＢＶ情報を記憶するステップ
１２０　ビットレートの初期値代入ステップ
１２１　初期値に対するＶＢＶバッファシミュレーションステップ
１２２　バッファ破綻の判定ステップ
１３０　ビットレートを変化させて設定するステップ
１３１　ＶＢＶバッファシミュレーションステップ
１３２　バッファ破綻の判定ステップ
１３３　繰り返し処理を行うための判定ステップ
１４０　最適ビットレートを算出するステップ
４００　コンピュータ
４１０　バス
４１１　ＣＰＵ
４１２　メモリ
４１３　通信インターフェース
４２１　表示デバイス
４２２　入力デバイス
４２３　ハードディスクドライブ
４２４　光ディスクドライブ
５００　映像多重化処理
５０１　映像多重化処理
５１０　トランスポートストリーム多重化処理
５２０　複数個のビデオエレメンタリーストリームの接続処理
【図１】
2004072299.tif 000006
【図２】
2004072299.tif 000007
【図３】
2004072299.tif 000008
【図４】
2004072299.tif 000009
【図５】
2004072299.tif 000010
【図６】
2004072299.tif 000011
【図７】
2004072299.tif 000012
【図８】
2004072299.tif 000013
【図９】
2004072299.tif 000014
【図１０】
2004072299.tif 000015
【図１１】
2004072299.tif 000016
【図１２】
2004072299.tif 000017