(57)【特許請求の範囲】
【請求項１】
インタリーブ処理を行う複数のビットストリームの構成を示した構成情報を出力する構成情報供給手段と、
前記構成情報で示された複数のビットストリームに対して、ビットストリーム流れ方向とは逆方向にインタリーブ処理単位を確定し、該確定されたインタリーブ処理単位を前記ビットストリーム流れ方向の順に並べ替えてインタリーブ動作を確定するインタリーブ確定手段とを有する
ことを特徴とするインタリーブ処理装置。
【請求項２】
前記インタリーブ確定手段は、前記複数のビットストリームに対してそれぞれ１つのインタリーブ処理単位を設定する毎にインタリーブ処理単位を確定すると共に、前記設定されたインタリーブ処理単位に基づいて他のビットストリームに対するインタリーブ処理単位の設定を行う
ことを特徴とする請求項１記載のインタリーブ処理装置。
【請求項３】
前記インタリーブ確定手段は、前記設定されたインタリーブ処理単位に基づいて次のインタリーブ処理単位を設定する際に、残りのビットストリームがインタリーブ処理単位よりも少なくなったとき、該残りのビットストリーム分のデータ量を確定されたインタリーブ処理単位に分配する
ことを特徴とする請求項２記載のインタリーブ処理装置。
【請求項４】
前記インタリーブ確定手段は、インタリーブ処理開始時あるいは前記インタリーブ処理単位の確定毎に、インタリーブ処理単位の未確定部分の再生時間が最も短いビットストリーム、あるいは再生時間の最も短いビットストリームが複数のときにはデータ量の少ないビットストリームに対してインタリーブ処理単位を仮設定し、該インタリーブ処理単位の仮設定結果に基づいて、前記複数のビットストリームのインタリーブ処理単位を前記ビットストリーム流れ方向とは逆方向に順次設定する
ことを特徴とする請求項２記載のインタリーブ処理装置。
【請求項５】
インタリーブ処理を行う複数のビットストリームの構成を示した構成情報を生成し、
前記構成情報で示された複数のビットストリームに対して、ビットストリーム流れ方向とは逆方向にインタリーブ処理単位を確定し、該確定されたインタリーブ処理単位を前記ビットストリーム流れ方向の順に並べ替えてインタリーブ動作を確定する
ことを特徴とするインタリーブ処理方法。
【請求項６】
前記複数のビットストリームに対してそれぞれ１つのインタリーブ処理単位を設定する毎にインタリーブ処理単位を確定すると共に、前記設定されたインタリーブ処理単位に基づいて他のビットストリームに対するインタリーブ処理単位の設定を行う
ことを特徴とする請求項５記載のインタリーブ処理方法。
【請求項７】
前記設定されたインタリーブ処理単位に基づいて次のインタリーブ処理単位を設定する際に、残りのビットストリームがインタリーブ処理単位よりも少なくなったとき、該残りのビットストリーム分のデータ量を確定されたインタリーブ処理単位に分配する
ことを特徴とする請求項６記載のインタリーブ処理方法。
【請求項８】
インタリーブ処理開始時あるいは前記インタリーブ処理単位の確定毎に、インタリーブ処理単位の未確定部分の再生時間が最も短いビットストリーム、あるいは再生時間の最も短いビットストリームが複数のときにはデータ量の少ないビットストリームに対してインタリーブ処理単位を仮確定し、
前記インタリーブ処理単位の仮確定結果に基づいて、前記複数のビットストリームのインタリーブ処理単位を前記ビットストリーム流れ方向とは逆方向に順次設定する
ことを特徴とする請求項６記載のインタリーブ処理方法。
【請求項９】
コンピュータに、
インタリーブ処理を行う複数のビットストリームの構成を示した構成情報を読み込む手順と、
前記構成情報で示された複数のビットストリームに対して、ビットストリーム流れ方向とは逆方向にインタリーブ処理単位を確定する手順と、
確定されたインタリーブ処理単位を前記ビットストリーム流れ方向の順に並べ替えてインタリーブ動作を確定する手順とを実行させる
ことを特徴とするインタリーブ処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、インタリーブ処理装置とインタリーブ処理方法及びインタリーブ処理プログラムに関する。詳しくは、インタリーブ処理を行う複数のビットストリームの構成を示した構成情報を生成し、構成情報で示された複数のビットストリームに対して、ビットストリーム流れ方向とは逆方向にインタリーブ処理単位を確定し、この確定されたインタリーブ処理単位をビットストリーム流れ方向の順に並べ替えてインタリーブ動作を確定するものである。
【０００２】
【従来の技術】
画像や音声等の種々の素材を用いて所望のコンテンツの信号を生成し、このコンテンツの信号を記録媒体に記録する場合、素材のビデオ信号やオーディオ信号等を所定の標準規格の圧縮方式を用いて各々の信号を符号化すると共に、得られた符号化信号であるビットストリームデータ（以下「エレメンタリーストリーム」という）を多重化して、この多重化ビットストリームを光ディスク等の記録媒体に記録することが行われている。
【０００３】
画像や音声の信号を圧縮する際の標準規格としては、例えばＭＰＥＧ（Moving Picture Coding Experts Group ）規格を挙げることができる。このＭＰＥＧ規格では、ＭＰＥＧ１標準としてISO11172、ＭＰＥＧ２標準としてISO13818、マルチメディア多重化の項目としてISO11172-1及びISO13818-1、画像の項目としてISO11172-2及びISO13818-2が、また音声の項目としてISO11172-3及びISO13818-3がそれぞれ規格化されている。
【０００４】
このような国際標準のISO11172-2又はISO13818-2を用いてビデオ信号を圧縮し、ISO11172-3又はISO13818-3を用いてオーディオ信号を圧縮して、各々のディジタルのストリームデータを生成した後にこれらのデータを多重化すると共に、この多重データを各々のストリームデータに分離してビデオ信号とオーディオ信号等を得るＭＰＥＧシステムの概略構成を、図１５に示す。
【０００５】
図１５はＭＰＥＧシステムの概略構成の一例を示している。符号化処理装置１００には、例えばビデオ信号Ｄvとオーディオ信号Ｄa及びその他の情報信号Ｄeが供給される。ビデオ符号化部１０１ではビデオ信号Ｄvの符号化を行い、ビデオ信号のエレメンタリーストリームを生成する。オーディオ符号化部１０２ではオーディオ信号Ｄaの符号化を行い、オーディオ信号のエレメンタリーストリームを生成する。情報信号符号化部１０３では情報信号Ｄeの符号化を行い、情報信号のエレメンタリーストリームを生成する。多重化部１０４は、これらのエレメンタリーストリームを多重化して一本化したビットストリームＢＳを生成して例えば記録媒体１２０に記録する。いわゆるＭＰＥＧ１やＭＰＥＧ２において規定される方法では、この多重化の際に、画像及び音響信号の時間軸に対する同期情報も同時にサイド情報としてビットストリームＢＳ内に記録する。
【０００６】
復号化処理装置１１０の分離部１１１は、記録媒体１２０を再生して得たビットストリームＢＳから全てのエレメンタリーストリームをその同期関係を維持するように分離する。さらに分離したエレメンタリーストリームを対応する復号部に供給する。すなわちビデオ信号のエレメンタリーストリームをビデオ復号部１１２、オーディオ信号のエレメンタリーストリームをオーディオ復号部１１３、情報信号のエレメンタリーストリームを情報信号復号部１１４に供給する。ビデオ復号部１１２、オーディオ復号部１１３、情報信号復号部１１４では供給されたエレメンタリーストリームを復号化してビデオ信号Ｄvやオーディオ信号Ｄa及びその他の情報信号Ｄeを生成して出力する。
【０００７】
ここで、所望のコンテンツの画像として、シーンＡとシーンＥの間に、複数のシーン例えば異なるアングルの撮影画像や長さの異なる別ストーリーを用意する場合、いずれのシーンを選択しても、画像の途切れや一時停止等を生ずることなく再生できるものとするため、異なるシーンの信号を小さく切り分けて、交互に配置するインタリーブ処理が行われている。例えば図１６Ａに示すように、シーンＡとシーンＥの間に異なるシーンＢ，Ｃ，Ｄの信号を小さく切り分けてインタリーブ処理単位として、インタリーブ処理単位を交互に配置することが行われている。このインタリーブ処理単位は、ＤＶＤ(Digital Versatile Disk)−Ｖｉｄｅｏ規格では、インタリーブドユニット(ＩＬＶＵ:Interleaved Unit)と呼ばれており、シーンの切り換えはＩＬＶＵ単位で行われる。
【０００８】
ここで、ＩＬＶＵ-1は各シーンＢ，Ｃ，ＤのＩＬＶＵ-B1，ＩＬＶＵ-C1，ＩＬＶＵ-D1で構成される。同様にＩＬＶＵ-2，ＩＬＶＵ-3も各シーンＢ，Ｃ，ＤのＩＬＶＵで構成される。また、インタリーブが行われる範囲がインタリーブブロック(Interleaved Block)と呼ばれている。このＩＬＶＵのサイズを小さくすることで、シーンの切り換え操作を行ったときに、速やかにシーンが切り換えられることとなる。
【０００９】
インタリーブ処理が行われた信号を再生するときには、所望のシーンの信号を選択して用いることが行われる。例えば図１６Ｂに示すように、シーンＣの信号を順次選択して読み出すことで、シーンＡ，シーンＣ，シーンＥの順に再生することができる。
【００１０】
また、所望のシーンの信号を選択して用いるため、バッファメモリを設けて図１７Ｂに示すように十分な多重化ビットストリームを蓄積させて、図１７Ａに示すように所望のシーンの信号を順次読み出すために読み出し位置をジャンプ移動させても所望のシーンの信号が無くならないように制御することが行われる。このため、所望のシーンを途切れることなく再生できる。
【００１１】
さらに、異なるシーンの信号を小さく切り分けて交互に配置することにより、所望のシーンの信号を読み出すための信号読み取り位置の移動時間を短くできるので、バッファメモリの記憶容量が小さくとも再生画像が途切れてしまうことを防止できる。また、瞬時に異なるシーンに切り換えることも可能となる。
【００１２】
ここで、多重化ビットストリームをＤＶＤに記録するものとした場合、ＩＬＶＵの最少サイズＭｓや信号読み取り位置を移動する際の最大ジャンプ距離ＪＤは、光ピックアップの性能やバッファメモリへのデータ転送時間及び多重化ビットストリームの復号化速度に依存するため、ＤＶＤ−Ｖｉｄｅｏ規格によって、式（１）及び式（２）に示すように規定されている。
Ｍｓ(pack)＝Ｔjp(sec)÷ＲＴ(sec/pack)               ・・・（１）
ＪＤ      ＝規格換算表［ＩＬＶＵのデータ転送時間］  ・・・（２）
なお、Ｔjpはジャンプ必要時間、ＲＴはＩＬＶＵのデータ転送時間を示している。また、規格換算表［ＩＬＶＵのデータ転送時間ＲＴ］は、ＩＬＶＵのデータ転送時間ＲＴに応じて最大ジャンプ距離ＪＤが規定されているものである。
【００１３】
ＤＶＤにおけるビデオ信号についてのインタリーブ処理後のデータ構造は、図１８に示すように、ＩＬＶＵのビデオオブジェクト（ＶＯＢ:Video Object)がビデオオブジェクトユニット(ＶＯＢＵ：Video Object Unit)を用いて構成されると共に、ＶＯＢＵはパックを用いて構成される。パックはＭＰＥＧ規格の基本データ単位、ＶＯＢＵは特殊再生時の復号単位、ＶＯＢはシーンＡ，Ｂ，Ｃ等の１つの大きな再生単位である。
【００１４】
ＶＯＢを構成するＶＯＢＵの数やＶＯＢＵを構成するパックの数は可変である。また、インタリーブブロックを構成するＶＯＢの数も２個からインターリーブが可能な最大ＶＯＢ数（ＤＶＤ−Ｖｉｄｅｏ規格ではシームレスアングルの場合に最大「９」）までの範囲内で可変である。さらに、インタリーブブロックに属するＶＯＢ数は、各シーンで等しくされると共に、各シーンのＶＯＢは所定の順序で交互に配置される。なお、インタリーブ処理が行われていないシーンＡやシーンＥの信号部分は、コンティニアスブロック(Contiguous Block)と呼ばれる。
【００１５】
ジャンプ距離は、例えば図１８において、シーンＣを再生する場合、ＶＯＢ-Aの終わりからＶＯＢ-C1、ＶＯＢ-C1からＶＯＢ-C2、ＶＯＢ-C2からＶＯＢ-C3、ＶＯＢ-C3からＶＯＢ-Eの先頭までの距離がそれぞれジャンプ距離となる。
【００１６】
【発明が解決しようとする課題】
ところで、多重化ビットストリームに用いるエレメンタリーストリームは、符号化した信号であることから、単位時間当たりのデータ量が一定ではない。例えば動きの少ない画像ではデータ量が少なくなり、動きの多い画像ではデータ量が大きくなる。このため、ストリーム方向に順次インタリーブ処理を行う場合、時間単位でＩＬＶＵを設定しても、ジャンプ距離が判別できないと共に、ジャンプ距離が判別できないことから、再生画像が破綻しないようにバッファメモリに記憶させる多重化ビットストリームのデータ量も決めることができない。そこで、予めジャンプ距離を設定したり、ＩＬＶＵのサイズを仮定してインタリーブ処理が行われている。
【００１７】
このようなインタリーブ処理を行う場合、各ＶＯＢのデータ量が大きく異なると、あるＶＯＢに対してはジャンプ距離が適正であっても、他のＶＯＢに対してはジャンプ距離が不適正である場合が生じてしまい、再生画像が破綻してしまうおそれがある。例えばジャンプ距離がデータ量の多いＶＯＢに対して適正に設定されて大きくされている場合、データ量の少ないＶＯＢを読み出すとジャンプ途中でバッファメモリのデータが無くなり再生画像が破綻してしまうおそれがある。また、ＩＬＶＵのサイズを仮定して、このＩＬＶＵのサイズに対応させてＶＯＢのデータ量を調整するものとしても、動きの少ない場合と動きの多い場合とではデータ量が大きく異なり、動きの多い場合でのデータ量を小さくすると画質が劣化してしまう。
【００１８】
さらにフィードバック制御、すなわちジャンプ移動で再生画像の破綻等の不具合を生ずるときにはジャンプ距離やＩＬＶＵサイズを増加あるいは減少させるものとした場合、インタリーブ処理の完了までの時間が長くなってしまう。また、フィードバック制御では、例えばＩＬＶＵサイズを増加する方向にのみ調整すると、ＩＬＶＵサイズを増加あるいは減少される場合に比べて、インタリーブ処理に要する時間を短くすることができる。しかし、不具合が生ずるとＩＬＶＵのサイズが大きくなってしまい、シーンの切り換えはＩＬＶＵ単位で行われることから、速やかにシーンの切り換えを行うことができなくなってしまう。
【００１９】
そこで、この発明では、ＩＬＶＵのサイズの小さいインタリーブ処理を行うことができるインタリーブ処理装置とインタリーブ処理方法及びインタリーブ処理プログラムを提供するものである。
【００２０】
【課題を解決するための手段】
この発明に係るインタリーブ処理装置は、インタリーブ処理を行う複数のビットストリームの構成を示した構成情報を出力する構成情報供給手段と、構成情報で示された複数のビットストリームに対して、ビットストリーム流れ方向とは逆方向にインタリーブ処理単位を確定し、この確定されたインタリーブ処理単位をビットストリーム流れ方向の順に並べ替えてインタリーブ動作を確定するインタリーブ確定手段とを有するものである。
【００２１】
またインタリーブ処理方法は、インタリーブ処理を行う複数のビットストリームの構成を示した構成情報を生成し、構成情報で示された複数のビットストリームに対して、ビットストリーム流れ方向とは逆方向にインタリーブ処理単位を確定し、この確定されたインタリーブ処理単位をビットストリーム流れ方向の順に並べ替えてインタリーブ動作を確定するものである。
【００２２】
またインタリーブ処理プログラムは、コンピュータに、インタリーブ処理を行う複数のビットストリームの構成を示した構成情報を読み込む手順と、構成情報で示された複数のビットストリームに対して、ビットストリーム流れ方向とは逆方向にインタリーブ処理単位を確定する手順と、確定されたインタリーブ処理単位をビットストリーム流れ方向の順に並べ替えてインタリーブ動作を確定する手順とを実行させるものである。
【００２３】
この発明においては、インタリーブ処理を行うビットストリームの構成すなわちインタリーブ処理を行うＶＯＢの構成を示した構成情報に基づき、この構成情報で示されたＶＯＢのビットストリーム流れ方向とは逆方向にインタリーブ処理単位であるＩＬＶＵの確定が行われる。このＩＬＶＵの確定では、複数のＶＯＢに対してそれぞれ１つのＩＬＶＵを設定する毎にＩＬＶＵが確定される。ここで、ＩＬＶＵの設定は、既に設定されたＩＬＶＵに基づいて他のビットストリームに対するＩＬＶＵの設定が行われる。また、ＩＬＶＵの確定を順次行ったときに、残りのビットストリームが少なくなってＩＬＶＵを設定できないときには、残りのビットストリーム分のデータ量が確定済みのＩＬＶＵに分配される。また、インタリーブ処理開始時やＩＬＶＵの確定毎に、ＩＬＶＵの未確定部分の再生時間が最も短いビットストリーム、あるいは再生時間の最も短いビットストリームが複数のときにはデータ量の少ないビットストリームに対してＩＬＶＵが仮設定されて、この仮設定結果に基づいて、複数のビットストリームに対するＩＬＶＵの設定がビットストリーム流れ方向とは逆方向に順次行われる。
【００２４】
【発明の実施の形態】
以下、図を参照しながら、この発明の実施の一形態について説明する。信号多重化装置では、各シーンのディジタルビデオ信号やディジタルオーディオ信号及びその他の情報信号をそれぞれ符号化して各エレメンタリー・ストリームを生成する。また、符号化の過程で得られる情報から各エレメンタリー・ストリームのパケット化及びパック化を行うためのスケジュール情報を生成する。さらに、各シーンの信号をどのようにインタリーブさせるかを示すインタリーブ情報を生成する。このインタリーブ情報やスケジュール情報に基づき、シーン毎に各エレメンタリーストリームを多重化してシーン毎の多重化ビットストリームを生成して、このシーン毎の多重化ビットストリームをインタリーブ処理して、光ディスク等の記録媒体に記録するビットストリームＢＳを生成する。
【００２５】
図１は信号多重化装置の全体構成を機能ブロック的に示した概略図である。この信号多重化装置は、シーン毎に符号化処理装置１０と多重化処理装置３０を設けて、インタリーブ処理装置４０によってインタリーブ処理を制御して、複数シーンのビットストリームから１つのビットストリームＢＳを生成する場合を示している。
【００２６】
符号化処理装置１０-X（Xはシーンを示す）は、例えばビデオ符号化部１２-Xと、オーディオ符号化部１３-Xと、情報信号符号化部１４-X有している。ビデオ符号化部１２-XにはシーンＸにおける画像素材のディジタルビデオ信号Ｄv-X入力され、オーディオ符号化部１３-XにはシーンＸおける音声素材のディジタルオーディオ信号Ｄa-Xが入力され、情報信号符号化部１４-Xは、シーンＸのディジタル情報信号Ｄe-Xが入力される。
【００２７】
ビデオ符号化部１２-Xは、供給されたビデオ信号Ｄv-Xを例えばＭＰＥＧ２システムのような動画像符号化標準を利用して圧縮符号化する。このビデオ圧縮信号は、エレメンタリー・ストリームＦv-Xとしてストリーム保持部１５-Xに蓄積される。また、符号化工程で得られるアクセス・ユニットのサイズやＤＴＳ（復号の時刻管理情報），ＰＴＳ（再生出力の時刻管理情報）等の情報は、符号化付随情報Ｇv-Xとして付随情報保持部１６-Xに蓄積される。この符号化付随情報は、多重ストリームをビデオやオーディオ及び情報等のストリームに分離する際に必要とされる情報である。
【００２８】
オーディオ符号化部１３-Xは、供給されたオーディオ信号Ｄa-Xを例えばＭＰＥＧオーディオシステムのようなオーディオ符号化方式を利用して圧縮符号化する。このオーディオ圧縮信号はエレメンタリー・ストリームＦa-Xとして、ストリーム保持部１７-Xに蓄積される。また、上述のように符号化工程で得られる情報は、符号化付随情報Ｇa-Xとして付随情報保持部１８-Xに蓄積される。
【００２９】
情報信号符号化部１４-Xは、供給された情報信号Ｄe-Xを符号化する。この符号化信号はエレメンタリー・ストリームＦe-Xとしてストリーム保持部１９-Xに蓄積される。また、符号化工程で得られる情報は、符号化付随情報Ｇe-Xとして付随情報保持部２０-Xに蓄積される。
【００３０】
多重化処理装置３０-Xは、スケジューリング処理部３１-Xと参照画像位置情報生成部３２-Xと多重化部３３-Xを有している。
このスケジューリング処理部３１-Xは、付随情報保持部１６-X，１８-X，２０-Xに保持されている符号化付随情報Ｇv-X，Ｇa-X，Ｇe-Xを用いて、パケット化やパック化を行うための情報やＶＯＢＵ内のパック構成を示す情報及びＶＯＢ内のＶＯＢＵ構成等を示す情報等からなるスケジュール情報ＺＡ-Xを生成して、参照画像位置情報生成部３２-Xと多重化部３３-X及びインタリーブ処理装置４０のインタリーブ確定部４１に供給する。なお、パック化を行うため「ＳＣＲ（システム時刻基準参照値）」，「プログラム多重化レート」，「スタッフィングビット長」，「パック内のパケット個数Ｎ」等の情報を有すると共に、パケット化のため「ストリームＩＤ」（ストリーム・タイプ（エレメンタリー・ストリームの種類を表す。）とバッファ・ナンバ（同じストリームタイプをもつストリームが複数種ある時、夫々に付けられる番号）からなる。），「パケット長」，「ＰＥＳヘッダ長」，「ＰＴＳ（再生出力の時刻管理情報）」，「ＤＴＳ（復号の時刻管理情報）」等の情報を有する。
【００３１】
この符号化付随情報Ｇv-X，Ｇa-X，Ｇe-Xは、アクセス・ユニットのサイズ，ＰＴＳ，ＤＴＳ等を有するものであることから、スケジューリング処理部３１-Xは、ストリーム保持部１５-X，１７-X，１９-Xに保持されている各エレメンタリー・ストリームを分析することなく、ビデオやオーディオ及び情報のパックの長さや組み合わせ順序等を決定することが可能になる。
【００３２】
参照画像位置情報生成部３２-Xは、スケジュール情報ＺＡ-Xを用いて、参照画像位置情報ＺＢ-Xを生成して多重化部３３-Xに供給する。この参照画像位置情報ＺＢ-Xは、多重ストリームを構成する全てのパック毎に挿入する情報で、プログラム・ストリーム・マップ・パケット（ＰＳＭパケット）の情報やプログラム・ストリーム・ディレクトリ・パケット（ＰＳＤパケット）の情報である。
【００３３】
インタリーブ処理装置４０のインタリーブ確定部４１は、構成情報供給部４２が接続されている。構成情報供給部４２は、シーン毎のＶＯＢをどのように用いて所望のコンテンツのビットストリームＢＳを生成するかを示す構成情報ＺＣをインタリーブ確定部４１に供給する。図２は構成情報ＺＣの一例を示しており、例えばシーンＡとシーンＥの間に複数のシーンＢ，Ｃ，Ｄを選択可能に設ける場合を示している。ここで、ＶＯＢ-AはシーンＡに対応するものである。また、ＶＯＢ-B，ＶＯＢ-C，ＶＯＢ-D，ＶＯＢ-Eは、それぞれシーンＢ，シーンＣ，シーンＤ，シーンＥに対応するものである。
【００３４】
インタリーブ確定部４１は、シーン毎に設けたスケジューリング処理部３１で生成されたスケジュール情報ＺＡや、構成情報供給部４２で生成された構成情報ＺＣを用いて、ビットストリームＢＳを生成するために用いるＶＯＢの順序やデータ量等を示すインタリーブ情報ＺＤを生成する。このインタリーブ情報ＺＤは、シーン毎に設けた多重化部３３に供給される。
【００３５】
多重化部３３-Xは、スケジュール情報ＺＡ-Xと参照画像位置情報ＺＢ-Xに基づき、ストリーム保持部１５-X，１７-X，１９-Xに保持されている各エレメンタリー・ストリームＦv-X，Ｆa-X，Ｆe-Xのパケット化やパック化を行い、例えばＤＶＤ−Ｖｉｄｅｏ規格に応じた多重化ビットストリームをインタリーブ情報ＺＤで示されたデータ量例えばパック数分だけ順次生成する。
【００３６】
このインタリーブ情報ＺＤに基づいた順序で、シーン毎に設けた多重化部３３によって多重化ビットストリームをそれぞれ生成すると、シーン毎であると共にインタリーブ処理された多重化ビットストリームを順番に生成することができる。このため、シーン毎に設けた多重化部３３によって生成された多重化ビットストリームを１つのビットストリームとすることで、画像や音声等の種々の素材を用いた所望のコンテンツをシームレス再生できるビットストリームＢＳを得ることができる。
【００３７】
次に、インタリーブ確定部４１におけるインタリーブ情報の生成動作について説明する。図３は、ＤＶＤに記録するビットストリームＢＳを生成する場合でのインタリーブ情報の生成動作を示すフローチャートである。
【００３８】
ステップＳＴ１では、構成情報供給部４２から構成情報ＺＣを読み込む。ステップＳＴ２では読み込んだ構成情報ＺＣに基づきインタリーブ処理を行うインタリーブブロックのＶＯＢであるか否かを判別する。ここで、インタリーブ処理を行うＶＯＢでないと判別したときにはステップＳＴ３に進み、インタリーブ処理を行うＶＯＢであると判別したときにはステップＳＴ４に進む。
【００３９】
ステップＳＴ３では、ＶＯＢを連続ブロックとして処理する。すなわち、前のＶＯＢの信号に連続させて、このＶＯＢの信号を配置したのちステップＳＴ８に進む。
【００４０】
ステップＳＴ４では、シームレスアングル構成でのインタリーブ処理であるか否かを判別する。ここで、再生時間長の等しいシーン、例えば異なるアングルで撮影を行うことにより得られた再生時間長の等しい複数の信号を用いて、何れかのシーンの信号を選択することによりシームレス再生を行う場合にはステップＳＴ５に進む。また、再生時間長の異なるシーン例えばストーリーの異なる複数のシーンを用いて、何れかのシーンを選択することによりシームレス再生を行う場合にはステップＳＴ６に進む。
【００４１】
ステップＳＴ５では、読み込んだ構成情報ＺＣに基づいてシームレスアングル構成でのインタリーブ処理（以下「第１インタリーブ処理」という）を行う。図４は、第１インタリーブ処理を示すフローチャートである。ステップＳＴ１１では、インタリーブブロックを構成する全てのＶＯＢのスケジュール情報を読み込みステップＳＴ１２に進む。
【００４２】
ステップＳＴ１２では、インタリーブ処理の初期化を行う。この初期化では、複数のＶＯＢを用いてインタリーブ処理を行ったとき、ＶＯＢの順番が最後となるＶＯＢの最後の位置を、ジャンプ距離計算の最初の基準位置とする。また、順番が最後のＶＯＢをＶＯＢポインタ位置Ｐｖとすると共に、順番が最後であるＶＯＢの最後のＶＯＢＵをＶＯＢＵポインタ位置Ｐｕとする。また、初期化ではアドレスＡＤを初期値「０」に設定する。
【００４３】
ステップＳＴ１３では、全ＶＯＢに対するＩＬＶＵの確定が完了しているか否かを判別する。ここで、確定が完了していないときにはステップＳＴ１４に進み、ＩＬＶＵ確定処理を行う。
【００４４】
図５は、ＩＬＶＵ確定処理を示すフローチャートである。ステップＳＴ２１では、ＩＬＶＵ確定処理の初期化を行い、ＩＬＶＵ確定処理で用いる必要ＶＯＢＵ数Ｎｖを初期値「０」に設定する。
【００４５】
次のステップＳＴ２２では、１ＶＯＢに対するＩＬＶＵ設定処理を行う。図６は、１ＶＯＢに対するＩＬＶＵ設定処理を示すフローチャートである。ステップＳＴ３１ではＩＬＶＵ設定処理の初期化を行う。この初期化では、累積パック数Ｃｐ、データ転送時間ＲＴｓ、累積ＶＯＢＵ数Ｃｖを初期値に設定する。例えば累積パック数Ｃｐと累積ＶＯＢＵ数Ｃｖを「１」に設定すると共に、データ転送時間ＲＴｓを「０」に設定する。
【００４６】
ステップＳＴ３２では、最少ＩＬＶＵサイズＭｓを算出する。この最少ＩＬＶＵサイズＭｓの算出では、上述の式（２）から最大ジャンプ距離ＪＤを求め、式（３）に示すようにＤＶＤ−Ｖｉｄｅｏ規格に示されている規格換算表からジャンプ必要時間Ｔjpを求める。さらに、求めたジャンプ必要時間ＴjpとＶＯＢポインタ位置Ｐｖで示されたＶＯＢのデータ転送時間ＲＴを式（１）に代入して最少ＩＬＶＵサイズＭsを算出する。
Ｔjp＝規格換算表［最大ジャンプ距離ＪＤ］      ・・・（３）
なお、規格換算表［最大ジャンプ距離ＪＤ］は、最大ジャンプ距離ＪＤに応じてジャンプ必要時間Ｔjpが規定されているものである。また、データ転送時間ＲＴはＶＯＢに対応するスケジュール情報ＺＡに含まれているものである。
【００４７】
ステップＳＴ３３では、累積パック数Ｃｐの算出を行う。この累積パック数Ｃｐは、１ＶＯＢに対するＩＬＶＵ設定処理を開始したときのＶＯＢＵポインタ位置Ｐｕで示されたＶＯＢＵから、現在のＶＯＢＵポインタ位置Ｐｕで示されたＶＯＢＵまでのパック数を累積してステップＳＴ３４に進む。
【００４８】
ステップＳＴ３４では、累積パック数Ｃｐが最少ＩＬＶＵサイズＭｓのパック数以上となって、１ＩＬＶＵ分の必要パック数を確保できたか否かを判別する。ここで累積パック数Ｃｐが最少ＩＬＶＵサイズＭｓに達していないときにはステップＳＴ３５に進む。また、累積パック数Ｃｐが最少ＩＬＶＵサイズＭｓに達したときにはステップＳＴ３７に進む。
【００４９】
ステップＳＴ３５では、ＶＯＢポインタ位置Ｐｖで示されたＶＯＢにおいて、ＶＯＢＵポインタ位置Ｐｕを一つ前のＶＯＢＵの位置に進めることができるか否かを判別する。ここで、ＶＯＢＵポインタ位置Ｐｕを一つ前に進めることができるときにはステップＳＴ３６に進む。また、ＶＯＢＵポインタ位置ＰｕがＶＯＢの先頭となり一つ前に進めることができないときにはステップＳＴ３９に進む。
【００５０】
ステップＳＴ３６では、ＶＯＢＵポインタ位置Ｐｕの移動を行う。このＶＯＢＵポインタ位置Ｐｕの移動では、ＶＯＢＵポインタ位置Ｐｕを１ＶＯＢＵだけ前に進めると共に、累積ＶＯＢＵ数Ｃｖに「１」を加算する。その後、ステップＳＴ３３に戻り、新たなＶＯＢＵポインタ位置Ｐｕまでのパック数を算出する。
【００５１】
ステップＳＴ３４で累積パック数Ｃｐが最少ＩＬＶＵサイズＭｓに達したと判別されてステップＳＴ３７に進むと、ステップＳＴ３７では、累積ＶＯＢＵ数Ｃｖが必要ＶＯＢＵ数Ｎｖ以上となって、１ＩＬＶＵ分の必要ＶＯＢＵ数を確保できたか否かを判別する。ここで累積ＶＯＢＵ数Ｃｖが必要ＶＯＢＵ数Ｎｖに達していないときにはステップＳＴ３５に進む。また、累積ＶＯＢＵ数Ｃｖが必要ＶＯＢＵ数Ｎｖに達したときにはステップＳＴ３８に進む。
【００５２】
ステップＳＴ３８では、ＶＯＢＵポインタ位置Ｐｕで示されるＶＯＢＵを、ＶＯＢポインタ位置Ｐｖで示されるＶＯＢに対するＩＬＶＵの終了位置と設定してＩＬＶＵ設定処理を終了する。
【００５３】
また、ステップＳＴ３５でＶＯＢＵポインタ位置Ｐｕを一つ前に進めることができないと判別されてステップＳＴ３９に進むと、ステップＳＴ３９では、例外処理を行う。例外処理については後述する。
【００５４】
ＩＬＶＵの設定処理が終了すると、図５に示すステップＳＴ２３では、設定結果の見直し処理が必要か否かを判別する。ここで、必要ＶＯＢＵ数Ｎｖが初期値「０」であるときには、見直しが必要ないと判別して、累積ＶＯＢＵ数Ｃｖを必要ＶＯＢＵ数Ｎｖｎに設定してステップＳＴ２４に進む。また、必要ＶＯＢＵ数Ｎｖが初期値「０」でないとき、ステップＳＴ３７で用いた必要ＶＯＢＵ数Ｎｖと式（４）で決定した新たな必要ＶＯＢＵ数Ｎｖｎが等しい場合には、見直しが必要ないと判別してステップＳＴ２４に進む。また、必要ＶＯＢＵ数Ｎｖと新たな必要ＶＯＢＵ数Ｎｖｎが等しくない場合、ＩＬＶＵ設定処理で求めた設定結果を破棄すると共に、式（４）で求めた新たな必要ＶＯＢＵ数Ｎｖｎを必要ＶＯＢＵ数Ｎｖに設定して、ステップＳＴ２２に戻り、最初ＶＯＢから再度ＩＬＶＵの設定処理を行う。
Ｎｖｎ＝ｍａｘ(Ｎｖ，Ｃｖ)・・・（４）
なお、式（４）は、ステップＳＴ３７で用いた必要ＶＯＢＵ数ＮｖとＩＬＶＵ設定処理で得られた累積ＶＯＢＵ数Ｃｖのいずれか大きいものを新たな必要ＶＯＢＵ数Ｎｖｎとすることを意味している。
【００５５】
ステップＳＴ２４では、１ＶＯＢに対するＩＬＶＵ設定処理で決定された累積パック数Ｃｐに基づき、設定処理を行ったＶＯＢに対する１つのＩＬＶＵのアドレスを決定する。このアドレスの決定では、設定処理を行ったＶＯＢに対する１つのＩＬＶＵの開始アドレスＡＳ［ｊ，ｋ］（ｊはインタリーブを行うＶＯＢの種類を示し、ｋはＩＬＶＵの順序を示す）としてアドレスＡＤを用いると共に、このアドレスＡＤにＩＬＶＵ設定処理で判別された累積パック数Ｃｐを加算して終了アドレスＡＥ［ｊ，ｋ］とする。さらに、終了アドレスＡＥ［ｊ，ｋ］に「１」を加算して、このアドレスを新たにアドレスＡＤとする。
【００５６】
ステップＳＴ２５では、ＶＯＢが一巡したか、すなわち各ＶＯＢに対するＩＬＶＵの設定処理が完了したか否かを判別する。ここで、各ＶＯＢに対するＩＬＶＵの設定処理が完了していないときにはステップＳＴ２２に戻り、各ＶＯＢに対するＩＬＶＵの設定処理が完了したときには、ステップＳＴ２２の処理によって設定されているＩＬＶＵを、１つのＩＬＶＵを構成する各ＶＯＢのＩＬＶＵであると確定してＩＬＶＵ確定処理を終了してステップＳＴ１５に進む。
【００５７】
ステップＳＴ１５では、確定した各ＶＯＢのＩＬＶＵにおける開始アドレスＡＳ［ｊ，ｋ］と終了アドレスＡＥ［ｊ，ｋ］を利用してジャンプ距離を算出する。このジャンプ距離の算出では、ステップＳＴ１４で確定したＶＯＢの開始アドレスＡＳ［ｊ，ｋ］と、このＶＯＢと等しいと共に、このＩＬＶＵより１つ前のＩＬＶＵの終了アドレスＡＥ［ｊ，ｋ-1］を用いてジャンプ距離を算出する。ここで、例えばアドレス「ｎ＋ａ」とアドレス「ｎ」との距離は、アドレス「ｎ＋a」からアドレス「ｎ」を減算して得られた減算値から「１」を減算することで求めることができる。このため、ジャンプ距離ＪＷは、開始アドレスＡＳ［ｊ，ｋ］から終了アドレスＡＥ［ｊ，ｋ-1］と「１」を減算することで算出できる。また、最初に確定されたＩＬＶＵでは、開始アドレスＡＳ［ｊ，1］が算出されているが、１つ前のＩＬＶＵが存在しないことから終了アドレスＡＥ［ｊ，０］としてアドレスＡＤの初期値「０」を用いる。このステップＳＴ１５でジャンプ距離の算出が完了したときにはステップＳＴ１３に戻る。
【００５８】
このように、ＩＬＶＵ確定処理では、設定されたＩＬＶＵに基づいて次のＶＯＢに対するＩＬＶＵの設定がビットストリーム流れ方向とは逆方向に順次行われるので、既に設定あるいは確定されたＩＬＶＵに基づき、各ＶＯＢのＩＬＶＵ間のジャンプ距離を容易に判別できる。
【００５９】
ステップＳＴ１３では全ＶＯＢに対するＩＬＶＵの確定が完了したか否かを判別する。ここで、全ＶＯＢに対する確定が完了していないときには、ステップＳＴ１４に進み次のＩＬＶＵの確定を行う。
【００６０】
このようにＩＬＶＵの確定処理を繰り返し行うと、ＶＯＢＵポインタ位置Ｐｕの位置はＶＯＢの先頭側に順次移動する。その後、ＶＯＢＵポインタ位置ＰｕがＶＯＢの先頭となり、ステップＳＴ３５でＶＯＢＵポインタ位置Ｐｕを１つ前に進めることができないときにはステップＳＴ３９で例外処理を行う。
【００６１】
図７は、例外処理を示すフローチャートである。ステップＳＴ５１では、残りＶＯＢＵの加算処理を行う。すなわち、残りのビットストリームが少なくＩＬＶＵを設定できないとき、すなわちＶＯＢＵ数が少なくなったときには、対応するＶＯＢの直前に確定されたＩＬＶＵに、この残りのＶＯＢＵを分配すると共にアドレスＡＤをＶＯＢＵの加算分だけ移動する。
【００６２】
ステップＳＴ５２では、各ＶＯＢに対して残りのＶＯＢＵを分配したとき、全ＶＯＢでのジャンプ動作確認が完了したか否かを判別する。ここで、残りのＶＯＢＵを加算することでジャンプ距離ＪＷが長くなっても最大ジャンプ距離ＪＤを超えないときには、例外処理を終了して次のステップに進む。また、ジャンプ距離ＪＷが長くなったことにより最大ジャンプ距離ＪＤを超えてしまうときにはステップＳＴ５３に進む。
【００６３】
ステップＳＴ５３では、残りのＶＯＢＵを直前に確定されたＩＬＶＵに分配するとジャンプ距離ＪＷが長くなってしまうことから、残りのＶＯＢＵを確定済みの複数ＩＬＶＵに分配する処理を行う。この複数のＩＬＶＵに対する分配処理では、例えば残りのＶＯＢＵを確定済みのＩＬＶＵ数で除算して、得られた結果分だけ各ＩＬＶＵのＶＯＢＵ数を増加させることで分配を行う。また、分配後には、ＶＯＢＵの増加に伴うアドレスの再計算を行う。このようにすれば、残りのＶＯＢＵを分配してもジャンプ距離ＪＷの増加を少なくできる。また、ＩＬＶＵの確定順とは逆の順序で所定量毎にＶＯＢＵ数を分配してもよい。この場合には、ＶＯＢＵの増加分の累積量が残りのＶＯＢＵの数に達したときに処理を終了できるので、アドレスの再計算を少なくできる。
【００６４】
ステップＳＴ５４では、複数ＩＬＶＵに対する分配処理後のジャンプ動作確認が完了したか否かを判別する。ここで、複数ＩＬＶＵに対する分配処理後の各ジャンプ距離ＪＷが最大ジャンプ距離ＪＤを超えないときには、例外処理を終了して次のステップに進む。また、いずれかのジャンプ距離ＪＷが最大ジャンプ距離ＪＤよりも長いときには、正しい再生動作を保証することができないため異常終了としてインタリーブ情報ＺＤの生成動作を中止する。
【００６５】
このように例外処理を行うことで、残りＶＯＢＵ数が少なくなってＩＬＶＵを確定できないような場合が生じても、全てのＶＯＢＵを用いたＩＬＶＵの確定が可能となる。
【００６６】
第１インタリーブ処理が完了して図３のステップＳＴ７に進むと、ステップＳＴ７ではＩＬＶＵの確定が後方から行われていることから、ＩＬＶＵの並べ替えを行い、前方からの順序すなわちストリームの順序としてステップＳＴ８に進む。
【００６７】
ステップＳＴ８では、ステップＳＴ７の並べ替え結果に基づき、各ＶＯＢの信号を確定されたＩＬＶＵ毎に用いてビットストリームＢＳを生成するための情報を生成してインタリーブ情報ＺＤに追加してステップＳＴ９に進む。
【００６８】
ステップＳＴ９では、構成情報ＺＣの読み込みが完了したか否かを判別する。ここで読み込みが完了していないときにはステップＳＴ１に戻り、次の構成情報ＺＣを読み込む。また、読み込みが完了しているときにはインタリーブ情報ＺＤの生成動作を終了する。
【００６９】
図８は、再生時間長の等しい複数の画像信号例えば異なるアングルの画像信号用いて、何れかの画像信号を選択するシームレス再生を行う場合におけるインタリーブ情報ＺＤの生成動作を説明するための図である。この図において、図８ＡはＶＯＢ-B、図８ＢはＶＯＢ-C、図８ＣはＶＯＢ-Dを示しており、図８Ｄはインタリーブ処理を行ったときのデータ構造を示している。
【００７０】
ここで、読み込んだ構成情報が「ＶＯＢ-A」であるとき、ＶＯＢが１つであるため図３のステップＳＴ２からステップＳＴ３に進み、「ＶＯＢ-A」の多重化ビットストリームを前の多重化ビットストリームに連続させて配置させる情報を生成してステップＳＴ８に進み、インタリーブ情報ＺＤに追加する。
【００７１】
次に、読み込んだ構成情報が「｛ＶＯＢ-B，ＶＯＢ-C，ＶＯＢ-D｝」であるときには、ＶＯＢが複数あることからステップＳＴ４に進み、ストリーム方向の逆側から処理を開始する。すなわち、順番が最後である「ＶＯＢ-D」の最後のＶＯＢＵにおける最後のパック側から処理を開始する。
【００７２】
最初に行われた１ＶＯＢに対するＩＬＶＵ設定処理は、ＶＯＢ-Dに対してＩＬＶＵ設定処理が行われる。ここで、最少ＩＬＶＵサイズＭｓが算出されて、この最少ＩＬＶＵサイズＭｓを累積パック数Ｃｐが満足するまで、図８Ｃに示すようにＶＯＢＵポインタ位置ＰｕがＶＯＢＵ-D1からストリームの前方向に移動される。ここで、「ＶＯＢＵ-D2」で累積パック数Ｃｐが最少ＩＬＶＵサイズＭsを満足するときには、ＩＬＶＵ確定処理のステップＳＴ２３で設定結果の見直しが必要であるか否かの判別を行う。
【００７３】
最初に行われた１ＶＯＢに対するＩＬＶＵ設定処理では、必要ＶＯＢＵ数Ｎｖが初期値とされているので、累積ＶＯＢＵ数Ｃｖを必要ＶＯＢＵ数Ｎｖに設定してステップＳＴ２３からステップＳＴ２４に進む。ステップＳＴ２４では、「ＶＯＢ−D」に対する最初のＩＬＶＵ-DR1の開始アドレスＡＳ［Ｄ，１］（＝０）と終了アドレスＡＥ［Ｄ，１］（＝例えば９）を設定してステップＳＴ２５に進む。
【００７４】
ステップＳＴ２５では、「ＶＯＢ-B」「ＶＯＢ-C」に対するＩＬＶＵの設定処理が完了していないことからステップＳＴ２２に戻り、次の「ＶＯＢ-C」に対するＩＬＶＵ設定処理を行う。
【００７５】
「ＶＯＢ-C」に対して「ＶＯＢ-D」と同様なＩＬＶＵ設定処理を行い、累積ＶＯＢＵ数Ｃｖが必要ＶＯＢＵ数Ｎｖよりも大きくなってしまった場合、ＩＬＶＵの確定処理のステップＳＴ２３によって、設定結果の見直しが必要と判別される。このとき、累積ＶＯＢＵ数Ｃｖを必要ＶＯＢＵ数Ｎｖに設定して、設定結果を破棄して、最初の「ＶＯＢ-D」からＩＬＶＵの設定処理を再度行う。この場合、必要ＶＯＢＵ数Ｎｖが変更されているので、「ＶＯＢ-D」に対するＶＯＢＵポインタ位置Ｐｕは、図８Ｃに示すように、例えば「ＶＯＢＵ-D2」から「ＶＯＢＵ-D3」に変更されて、「ＶＯＢ−D」に対する最初のＩＬＶＵ-DR1の終了アドレスＡＥ［Ｄ，１］は例えば「９」から「１４」に変更される。
【００７６】
その後、「ＶＯＢ-C」に対してＩＬＶＵ設定処理を再度行い、ＩＬＶＵ確定処理のステップＳＴ２３で累積ＶＯＢＵ数Ｃｖが必要ＶＯＢＵ数Ｎｖよりも大きくなっておらず設定結果の見直しが必要ないと判別されたときには、「ＶＯＢ−C」に対する最初のＩＬＶＵ-CR1の開始アドレスＡＳ［Ｃ，１］（＝１５）と終了アドレスＡＥ［Ｃ，１］（＝例えば３４）を設定する。その後「ＶＯＢ-B」に対するＩＬＶＵ設定処理を行う。
【００７７】
この「ＶＯＢ-B」に対するＩＬＶＵ設定処理を行い、設定結果について見直しが必要ないと判別されたときには、「ＶＯＢ−B」に対する最初のＩＬＶＵ-BR1の開始アドレスＡＳ［Ｂ，１］（＝３５）と終了アドレスＡＥ［Ｂ，１］（＝例えば５２）を設定する。
【００７８】
その後、設定した各ＶＯＢのＩＬＶＵを確定してステップＳＴ１５に進み、ジャンプ距離ＪＷを算出すると、図８Ｄに示すように「ＶＯＢ-D」に対するジャンプ距離ＪＷ-DR1は、開始アドレスＡＳ［Ｄ，１］が「０」であることから「０」となる。また、「ＶＯＢ-C」に対するジャンプ距離ＪＷ-CR1は、開始アドレスＡＳ［Ｃ，１］が「１５」であることから「ＪＷ-CR1＝１５パック」となる。さらに、「ＶＯＢ-B」に対するジャンプ距離ＪＷ-BR1は、開始アドレスＡＳ［Ｂ，１］が「３５」であることから「ＪＷ-BR1＝３５パック」となる。
【００７９】
次に、ＩＬＶＵ確定処理を行って、「ＶＯＢ−D」に対する２番目のＩＬＶＵ-DR2の開始アドレスＡＳ［Ｄ，２］が「５３」、終了アドレスＡＥ［Ｄ，２］が「６６」とされたときには、このＶＯＢと等しいと共に、このＩＬＶＵ-DR2の１つ前のＩＬＶＵ-DR1の終了アドレスＡＥ［Ｄ，１］（＝１４）とＩＬＶＵ-DR2の開始アドレスＡＳ［Ｄ，２］を利用することでジャンプ距離ＪＷ-DR2を算出できる。すなわちＩＬＶＵ-DR2の開始アドレスＡＳ［Ｄ，２］（＝５３）からＩＬＶＵ-DR1の終了アドレスＡＥ［Ｄ，１］（＝１４）を減算して、さらに「１」を減算することでジャンプ距離ＪＷ-DR2（＝３８パック）を算出できる。同様に、「ＶＯＢ−C」に対する２番目のＩＬＶＵ-CR2の開始アドレスＡＳ［Ｃ，２］が「６７」であることから、このＶＯＢと等しいと共に、このＩＬＶＵの１つ前のＩＬＶＵ-CR1の終了アドレスＡＥ［Ｃ，１］（＝３４）と「１」を減算してジャンプ距離ＪＷ-CR2は「３２パック」となる。以下同様に処理することで、各ＶＯＢのＩＬＶＵを確定できると共に、ジャンプ距離ＪＷも算出できる。また、各ＶＯＢの先頭側ＶＯＢＵについては、図７に示す例外処理を行って既に確定したＩＬＶＵに分配することにより、各ＶＯＢの先頭であるＩＬＶＵ-Rkを確定すると共にジャンプ距離ＪＷ-Rkを算出する。さらに、「ＶＯＢ-B」のＩＬＶＵ-BRkの終了アドレスＡＥ［Ｂ，ｋ］、「ＶＯＢ-C」のＩＬＶＵ-CRkの終了アドレスＡＥ［Ｃ，ｋ］及び「ＶＯＢ-D」のＩＬＶＵ-DRkの終了アドレスＡＥ［Ｄ，ｋ］に基づき、ジャンプ距離ＪＷ-CR(k+1)とジャンプ距離ＪＷ-DR(k+1)も算出できる。
【００８０】
このようにして、ＩＬＶＵやジャンプ距離ＪＷが確定したときには、ストリームの流れ方向とは逆方向に順次確定したＩＬＶＵ-R1〜ＩＬＶＵ-Rkを、ストリームの流れ方向の順序ＩＬＶＵ-1〜ＩＬＶＵ-kに並べ替えると共に、この並べ替え結果に基づき、各ＶＯＢの信号をＩＬＶＵ単位で用いてビットストリームＢＳを生成するための情報をインタリーブ情報ＺＤに追加する。
【００８１】
図９は、インタリーブ情報ＺＤを例示したものである。インタリーブ情報ＺＤは、例えばＤＶＤディスクのセクタ情報とＶＯＢ及びパック数で構成される。ここで、上述のようにインタリーブ処理を行い、シーンＡ側からＶＯＢとパック数を追加すると、図９に示すようにＶＯＢ-Aに続けてＶＯＢ-B，ＶＯＢ-C，ＶＯＢ-Dがパック数と共に順次繰り返し追加されて、ｋ個のＩＬＶＵの追加が完了したときには次のシーンＥのＶＯＢ-Eが追加される。
【００８２】
ここで、パック数が図９に示す場合、セクタ「０」からの信号として、多重化部３３-AからシーンＡの信号であるＶＯＢ-Aの信号を１０００パック分用いた多重化ビットストリームを生成させてビットストリームＢＳとして出力させる。次に、セクタ「１０００」からの信号として、多重化部３３-BからシーンＢの信号であるＶＯＢ-Bを１０パック分用いた多重化ビットストリームを生成させてビットストリームＢＳとして出力させる。また、セクタ「１０１０」からの信号として、多重化部３３-CからシーンＣの信号であるＶＯＢ-Cを１０パック分用いた多重化ビットストリームを生成させてビットストリームＢＳとして出力させる。その後も、インタリーブ情報ＺＤに基づいてシーン毎に設けた多重化部３３から多重化ビットストリームを生成して出力させることで、構成情報ＺＣに基づくインタリーブ処理を行ったビットストリームＢＳを生成できる。
【００８３】
次に、再生時間長の異なる画像信号例えば別ストーリーの複数の画像信号を用いて、何れかの画像信号を選択することによりシームレス再生を行う場合の第２インタリーブ処理について説明する。この第２インタリーブ処理では、各ＶＯＢでＩＬＶＵの数を等しくすると共に、再生時間長が異なることからＩＬＶＵにおける各ＶＯＢＵ数は、各ＶＯＢのパック数に応じて調整する。また、ＩＬＶＵの数を等しくしたとき、ＶＯＢＵ数が少ないＶＯＢではＶＯＢＵ数が多いＶＯＢに比べてジャンプ動作時に再生画像の破綻が生じ易い。このため、ＶＯＢＵ数が最も少ないＶＯＢを基底ＶＯＢｙとして、このＶＯＢに対してＩＬＶＵを先に仮設定する。その後、この仮設定結果に基づいて他のＶＯＢのＩＬＶＵを順次設定して、再生動作に不具合を生じないことを確認したときに、各ＶＯＢのＩＬＶＵを確定する。
【００８４】
図１０は第２インタリーブ処理を示すフローチャートである。ステップＳＴ６１では上述のステップＳＴ１１と同様に、インタリーブブロックを構成する全てのＶＯＢのスケジュール情報を読み込みステップＳＴ６２に進む。
【００８５】
ステップＳＴ６２ではインタリーブ処理の初期化を行う。このインタリーブ処理の初期化では、各ＶＯＢの最終ＶＯＢＵをそれぞれＶＯＢＵポインタとする。また、再生時間の最も短いＶＯＢすなわちＶＯＢＵ数の最も少ないＶＯＢを基底ＶＯＢｙに設定する。なお、ＶＯＢＵ数の最も少ないＶＯＢが複数あるときには、データ量の少ないＶＯＢすなわちパック数の最も少ないＶＯＢを基底ＶＯＢｙに設定する。さらに、初期化ではアドレスＡＤを初期値「０」に設定する。
【００８６】
ステップＳＴ６３では、全ＶＯＢに対するＩＬＶＵの確定が完了しているか否かを判別する。ここで、確定が完了していないときにはステップＳＴ６４に進み、ＩＬＶＵ確定処理を行う。
【００８７】
図１１は、第２インタリーブ処理におけるＩＬＶＵ確定処理を示すフローチャートである。ステップＳＴ７１では、ステップＳＴ２１と同様にＩＬＶＵ確定処理の初期化を行い、ＩＬＶＵ確定処理で用いる必要ＶＯＢＵ数Ｎｖを初期値「０」に設定する。
【００８８】
ステップＳＴ７２では、基底ＶＯＢｙに対するＩＬＶＵ仮設定処理を行う。図１２は、基底ＶＯＢｙに対するＩＬＶＵ仮設定処理を示すフローチャートである。ステップＳＴ８１ではＩＬＶＵ仮設定処理の初期化を行う。この初期化では、基底ＶＯＢに対する累積パック数Ｃｐ-y、データ転送時間ＲＴｓ-y、累積ＶＯＢＵ数Ｃｖ-yを初期値としてステップＳＴ８２に進む。例えば累積パック数Ｃｐ-yと累積ＶＯＢＵ数Ｃｖ-yとデータ転送時間ＲＴｓ-yを「０」に設定する。
【００８９】
ステップＳＴ８２では、アドレスＡＤで示された位置から基底ＶＯＢｙのＩＬＶＵまでの距離を算出するための係数αの算出を行う。
【００９０】
ここで、アドレスＡＤで示された位置から基底ＶＯＢｙのＩＬＶＵまでの距離は、基底ＶＯＢｙの後に位置するＶＯＢのＩＬＶＵのパック数である。また、基底ＶＯＢｙと他のＶＯＢは上述したように時間長が等しくない。さらに、シームレス再生を正しく行うために、各ＶＯＢのＩＬＶＵ数は等しくしなければならない。このため、基底ＶＯＢｙのＩＬＶＵを仮設定したときに、各ＶＯＢのパック数の比率に応じて、この基底ＶＯＢｙの仮設定したＩＬＶＵのパック数から他のＶＯＢのＩＬＶＵにおけるパック数を算出するための係数αを式（５）に基づいて算出する。
0004029630.tif 000002
【００９１】
ステップＳＴ８３では、最少ＩＬＶＵサイズＭsの算出を行う。この最少ＩＬＶＵサイズＭｓの算出では、基底ＶＯＢyにおける現在のＶＯＢＵのパック数を累積パック数Ｃｐ-yに加算すると共に、累積ＶＯＢＵ数Ｃｖ-yに「１」を加算する。また、データ転送時間ＲＴｓ-yに基底ＶＯＢｙのデータ転送時間ＲＴを設定する。
【００９２】
次に、予想アドレスＡＤｐを式（６）に基づいて算出する。
ＡＤｐ＝ＡＤ＋α×Ｃｐ-y      ・・・（６）
また、式（７）で示すように、予想アドレスＡＤｐから、この基底ＶＯＢｙのＩＬＶＵより１つ前のＩＬＶＵの終了アドレスＡＥＵを減算してジャンプ距離ＪＹを算出する。なお、最初に確定されるＩＬＶＵでは、１つ前のＩＬＶＵが存在しないことからＡＥＵ＝「０」を用いる。このジャンプ距離ＪＹに対応するジャンプ必要時間Ｔjp-yを上述の式（３）から求める。さらに、求めたジャンプ必要時間Ｔjp-yと基底ＶＯＢｙのデータ転送時間ＲＴ-yを式（１）に代入して最少ＩＬＶＵサイズＭｓ-yを算出する。
ＪＹ＝ＡＤｐ−ＡＥＵ        ・・・（７）
【００９３】
ステップＳＴ８４では、累積パック数Ｃｐ-yが最少ＩＬＶＵサイズＭｓ-yのパック数以上で、１ＩＬＶＵ分の必要パック数を確保できたか否かを判別する。ここで累積パック数Ｃｐ-yが最少ＩＬＶＵサイズＭｓ-yに達していないときにはステップＳＴ８６に進む。また、累積パック数Ｃｐ-yが最少ＩＬＶＵサイズＭｓ-yに達したときにはステップＳＴ８５に進む。
【００９４】
ステップＳＴ８６では、基底ＶＯＢｙのＶＯＢＵポインタ位置Ｐｕ-yの位置を一つ前のＶＯＢＵの位置に進めることができるか否かを判別する。ここで、ＶＯＢＵポインタ位置Ｐｕ-yを一つ前に進めることができるときにはステップＳＴ８７に進む。また、ＶＯＢＵポインタ位置Ｐｕ-yが基底ＶＯＢｙの先頭となり一つ前に進めることができないときにはステップＳＴ８８に進む。
【００９５】
ステップＳＴ８７では、ＶＯＢＵポインタ位置Ｐｕ-yの移動を行う。このＶＯＢＵポインタ位置Ｐｕ-yの移動では、ＶＯＢＵポインタ位置Ｐｕ-yを１ＶＯＢＵだけ前に進めると共に、累積ＶＯＢＵ数Ｃｖ-yに「１」を加算する。その後、ステップＳＴ８３に戻り、新たなＶＯＢＵポインタ位置Ｐｕ-yまでのパック数を算出する。
【００９６】
ステップＳＴ８４で累積パック数Ｃｐ-yが最少ＩＬＶＵサイズＭｓ-yに達したと判別されてステップＳＴ８５に進むと、ステップＳＴ８５では仮設定処理でパック数を加算したＶＯＢＵを１つのＩＬＶＵと仮設定して、基底ＶＯＢｙに対するＩＬＶＵ仮設定処理を終了する。
【００９７】
基底ＶＯＢｙに対するＩＬＶＵ仮設定処理を終了すると図１１のステップＳＴ７２からステップＳＴ７３に進み、基底ＶＯＢに対するＩＬＶＵ仮設定処理の処理結果に基づいて各ＶＯＢに対するＩＬＶＵ設定処理を行う。図１３は、各ＶＯＢに対するＩＬＶＵ設定処理を示すフローチャートである。
【００９８】
ステップＳＴ９１では、順番が最後のＶＯＢをＶＯＢポインタの位置Ｐｖとして設定してステップＳＴ９２に進む。
ステップＳＴ９２では、ＶＯＢの必要パック数Ｃｑとジャンプ距離ＪＺを算出する。必要パック数Ｃｑは式（８）基づいて算出する。またジャンプ距離ＪＺは、式（９）から算出する。
Ｃｑ＝（現在のＶＯＢの残パック数÷基底ＶＯＢｙの残パック数）×Ｃｐ-y・・・（８）なお、現在のＶＯＢの残パック数と基底ＶＯＢｙの残パック数は、各ＶＯＢのＩＬＶＵを設定して確定する前の残パック数を用いる。
【００９９】
ＪＺ＝アドレスＡＤ−（現在のＶＯＢにおけるＩＬＶＵのアドレス）・・・（９）
【０１００】
ステップＳＴ９３では、ステップＳＴ９２で算出した必要パック数Ｃｑとジャンプ距離ＪＺを満たすまでＶＯＢＵを確保するものとしてＩＬＶＵ-XRnの設定を行い、ステップＳＴ９４に進む。
【０１０１】
ステップＳＴ９４では、ＶＯＢＵを確保できてＩＬＶＵ-XRnを設定できたと判別したときにはステップＳＴ９５に進む。またＩＬＶＵ-XRnが設定できていないと判別したときにはステップＳＴ１００に進む。
【０１０２】
ステップＳＴ９５は、残りのＶＯＢＵ数が規定値よりも少なくなったか否かを判別する。ここで残りが規定値未満でないときにはステップＳＴ９６に進み、残りが規定値未満であるときにはステップＳＴ９８に進む。
【０１０３】
ステップＳＴ９６ではアドレス決定処理を行う。すなわちＶＯＢポインタＰｖが設定されているＶＯＢの開始アドレスＡＳと終了アドレスＡＥを設定すると共に、アドレスＡＤに確保したＶＯＢＵのパック数を加算して新たなアドレスＡＤとする。
【０１０４】
ステップＳＴ９７は、各ＶＯＢに対するＩＬＶＵの設定が完了したか否かを判別する。ここで、設定が完了していないときには、ＶＯＢポインタＰｖを次のＶＯＢに移動してステップＳＴ９２に戻る。また、各ＶＯＢに対してＩＬＶＵ-XRnの設定が完了したときにはステップＳＴ９９に進む。
【０１０５】
ステップＳＴ９８では、各ＶＯＢのＩＬＶＵ数が等しいことから、いずれかのＶＯＢで、ＶＯＢＵ数が規定値未満となったときには全てのＶＯＢで、今回のＩＬＶＵ-XRnの設定処理を最後の処理として、全てのＶＯＢＵを使い切る処理を行いステップＳＴ９９に進む。
【０１０６】
ステップＳＴ９９では、各ＶＯＢに対して１つのＩＬＶＵを設定できたことから、このようにＩＬＶＵを設定したときにジャンプ動作が可能であるか否かの確認を行う。ここで、ジャンプ動作が可能であると確認されたとき、すなわち次のＩＬＶＵの信号を読み出すためにジャンプ動作を行っても、再生画像の途切れ等を生ずることがないことを確認できたときには、各ＶＯＢに対するＩＬＶＵ設定処理を完了すると共に、設定されているＩＬＶＵを１つのＩＬＶＵを構成する各ＶＯＢのＩＬＶＵであると確定して図１１のＩＬＶＵ確定処理を終了して図１０のステップＳＴ６５に進む。またジャンプ動作が可能であると確認できないときにはステップＳＴ１００に進む。
【０１０７】
ステップＳＴ９４あるいはステップＳＴ９９からステップＳＴ１００に進むと、ステップＳＴ１００では、上述の図７に示す例外処理を行い、例外処理で異常終了していないときには、図１０のステップＳＴ６５に進む。
【０１０８】
ステップＳＴ６５では、ステップＳＴ６４のＩＬＶＵ確定処理後における残りＶＯＢＵ数やパック数から基底ＶＯＢｙを再度決定してステップＳＴ６３に進む。
【０１０９】
このステップＳＴ６４及びステップＳＴ６５の処理を繰り返すことで、各ＶＯＢの残りパック数に応じてＩＬＶＵサイズを決定して、各ＶＯＢを等しいＩＬＶＵの数でインタリーブ処理を行うことができる。
【０１１０】
第２インタリーブ処理が完了して図３のステップＳＴ７に進むと、ステップＳＴ７ではステップＳＴ６の第２インタリーブ処理におけるＩＬＶＵの確定が後方から行われていることから、第１インタリーブ処理の場合と同様にＩＬＶＵの並べ替えを行いステップＳＴ８に進む。
【０１１１】
ステップＳＴ８では、ステップＳＴ７の並べ替え結果に基づき、各ＶＯＢの信号をＩＬＶＵ単位で用いてビットストリームＢＳを生成するための情報をインタリーブ情報ＺＤに追加してステップＳＴ９に進む。
【０１１２】
ステップＳＴ９では、構成情報ＺＣの読み込みが完了したか否かを判別する。ここで読み込みが完了していないときにはステップＳＴ１に戻り、次の構成情報ＺＣを読み込む。また、読み込みが完了しているときにはインタリーブ情報ＺＤの生成動作を終了する。
【０１１３】
このように、インタリーブ処理開始時あるいはＩＬＶＵの確定毎に、ＩＬＶＵの未確定部分の再生時間が最も短いＶＯＢ、あるいは再生時間の最も短いＶＯＢが複数のときにはデータ量の少ないＶＯＢを基底ＶＯＢｙとして、この基底ＶＯＢｙに対してＩＬＶＵを仮設定して、この仮設定結果に基づき、各ＶＯＢのＩＬＶＵが前記ビットストリーム流れ方向とは逆方向に順次設定される。すなわち、仮決定結果に基づき、再生時間長に応じた割合でＩＬＶＵのサイズの設定されて、その後設定されたインタリーブ処理単位に基づいて他のＶＯＢに対するＩＬＶＵがビットストリーム流れ方向とは逆方向に順次設定される。このため、再生時間長が異なる複数のＶＯＢを用いても、正しくインタリーブ処理を可能とするインタリーブ情報ＺＤを生成できる。
【０１１４】
図１４は、再生時間長の異なる複数の画像信号を用いて、何れかの画像信号を選択するシームレス再生を行う場合におけるインタリーブ情報ＺＤの生成動作を説明するための図である。ここで、図１４ＡはＶＯＢ-B、図１４ＢはＶＯＢ-C、図１４ＣはＶＯＢ-Dを示しており、図１４Ｄは基底ＶＯＢｙの仮設定処理を行ったときのデータ構造、図１４ＥはＩＬＶＵ確定処理が完了したときのデータ構造を示している。
【０１１５】
読み込んだ構成情報が「｛ＶＯＢ-B，ＶＯＢ-C，ＶＯＢ-D｝」であり、ステップＳＴ６２でＶＯＢ-CのＶＯＢＵ数が最もすくないと判別されたときにはＶＯＢ-Cを基底ＶＯＢｙに設定し、ステップＳＴ７２で基底ＶＯＢｙに対するＩＬＶＵ仮設定処理を行う。
【０１１６】
基底ＶＯＢｙに対するＩＬＶＵ仮設定処理では、ステップＳＴ８２で係数αを算出する。ここで基底ＶＯＢｙであるＶＯＢ-Cの全パック数が「１００」、ＶＯＢ-Cの後に位置するＶＯＢ-Dの全パック数が「４００」であるときには式（５）から係数αは「４００÷１００＝４」となる。
【０１１７】
ステップＳＴ８３，ステップＳＴ８４，ステップＳＴ８６，ステップＳＴ８７の処理を繰り返して、ＶＯＢＵポインタＰｕの位置をＶＯＢＵ-C2としたとき、ステップＳＴ８４において累積パック数Ｃｐ-yが最少ＩＬＶＵサイズＭｓ-yに達したときには、ステップＳＴ８５でＩＬＶＵを仮設定する。なお、このときの累積パック数Ｃｐ-yが１０パックであったとき、予想アドレスＡＤｐは「０＋４×１０＝４０」となる。すなわち、図８Ｄに示すように、ＶＯＢ-CのＩＬＶＵ-yR1が仮設定される。
【０１１８】
次に、ステップＳＴ７３の各ＶＯＢに対するＩＬＶＵ設定処理が行われると、ステップＳＴ９１で最後のＶＯＢ-DをＶＯＢポインタＰｖとして設定し、ステップＳＴ９２で必要パック数Ｃｑを算出すると、必要パック数Ｃｑは式（８）から「４００÷１００×１０＝４０」となる。
【０１１９】
またジャンプ距離ＪＺ-DR1は、アドレスＡＤが初期値「０」であり、ＶＯＢ-DのＩＬＶＵのアドレスは、最初のＩＬＶＵ-R1における最初のＶＯＢに対するＩＬＶＵの設定処理であることから「０」であり、「０−０＝０」となる。
【０１２０】
その後、ＶＯＢＵポインタＰｕの位置をＶＯＢＵ-D6としたとき、必要パック数Ｃｑやジャンプ距離ＪＺを満たすことができたときには、ステップＳＴ９４からステップＳＴ９５に進む。また、残りＶＯＢＵ数が規定値未満でないときにはステップＳＴ９６に進み、アドレスの決定を行い、「ＶＯＢ−D」に対する最初のＩＬＶＵ-DR1の開始アドレスＡＳ［Ｄ，１］（＝０）と終了アドレスＡＥ［Ｄ，１］（＝３９）を設定してアドレスＡＤに確保したＶＯＢＵのパック数を加算して新たなアドレスＡＤとする。すなわちアドレスＡＤの初期値「０」に確保したＶＯＢＵのパック数「４０」を加算して新たなアドレス「ＡＤ＝４０」とする。このようにして、ＶＯＢ-Dに対するＩＬＶＵ-DR1を設定する。その後ステップＳＴ９７に進むと、全ＶＯＢに対する処理が完了していないことから、ＶＯＢポインタＰｖを次のＶＯＢであるＶＯＢ−Cに設定してステップＳＴ９２戻る。
【０１２１】
ステップＳＴ９２からの処理を繰り返して行うと、ＶＯＢ-CのＩＬＶＵ-CR1を設定できる。このとき、必要パック数Ｃｑは式（８）から「１０」となる。また、アドレスＡＤが「４０」とされているので、式（９）からジャンプ距離ＪＺ-CR1は、「４０−０＝４０」となり、この必要パック数Ｃｑとジャンプ距離ＪＺ-CR1を満たすまでＶＯＢＵを確保する処理を行う。その後、ステップＳＴ９６に進むと、「ＶＯＢ−C」に対する最初のＩＬＶＵの開始アドレスＡＳ［Ｃ，１］（＝４０）と終了アドレスＡＥ［Ｃ，１］（＝４９）を設定すると共に、アドレスＡＤに必要パック数Ｃｑを加算して新たなアドレスＡＤとする。すなわちアドレスＡＤ「４０」に必要パック数「Ｃｐ＝１０」を加算して新たなアドレス「ＡＤ＝５０」とする。さらに、ステップＳＴ９７では、全ＶＯＢに対する処理が完了していないことから、ＶＯＢポインタＰｖを次のＶＯＢであるＶＯＢ−Bに設定してステップＳＴ９２戻る。
【０１２２】
ここで、ＶＯＢ-Bの残パック数が「２００」であるとき、必要パック数Ｃｑは式（８）から「２００÷１００×１０＝２０」となる。また、アドレスＡＤが「５０」とされているので、式（９）からジャンプ距離ＪＺ-BR1は、「５０−０＝５０」となり、この必要パック数Ｃｑとジャンプ距離ＪＺを満たすまでＶＯＢＵを確保する処理を行う。その後、ステップＳＴ９６に進むと、「ＶＯＢ−B」に対する最初のＩＬＶＵの開始アドレスＡＳ［Ｂ，１］（＝５０）と終了アドレスＡＥ［Ｂ，１］（＝６９）を設定すると共に、アドレスＡＤに必要パック数Ｃｑを加算して新たなアドレスＡＤとする。すなわちアドレスＡＤ「５０」に必要パック数「Ｃｑ＝２０」を加算して新たなアドレス「ＡＤ＝７０」とする。このようにして、ＶＯＢ-Bに対するＩＬＶＵ-BR1を設定する。各ＶＯＢに対する設定が完了するとステップＳＴ９８に進み、各ＶＯＢの転送時間やＩＬＶＵのパック数及びジャンプ距離ＪＺからジャンプが可能であるか否かを判別して、ジャンプが可能であるときには、各ＶＯＢのＩＬＶＵ-BR1，ＩＬＶＵ-CR1，ＩＬＶＵ-DR1がＩＬＶＵ-R1を構成するＩＬＶＵであると確定する。
【０１２３】
ＩＬＶＵ-R1が確定したときには、このＩＬＶＵ確定後のＶＯＢＵ数やパック数から基底ＶＯＢｙを再設定して、この基底ＶＯＢｙに対するＩＬＶＵ仮設定処理を再度行う。ここで、残パック数は、ＶＯＢ-Bが「２００−２０＝１８０」、ＶＯＢ-Cが「１００−１０＝９０」、ＶＯＢ-Dが「４００−４０＝３６０」であることから、ＶＯＢ-Cを再度基底ＶＯＢｙとしてＩＬＶＵ仮設定処理を行う。
【０１２４】
上述のように、基底ＶＯＢｙであるＶＯＢ-Cの残パック数は「９０」、ＶＯＢ-Cの後に位置するＶＯＢ-Dの残パック数は「３６０」であるので式（５）から係数αは「３６０÷９０＝４」となる。
【０１２５】
ステップＳＴ８３，ステップＳＴ８４，ステップＳＴ８６，ステップＳＴ８７の処理を繰り返して、ＶＯＢＵポインタＰｕの位置をＶＯＢＵ-C4としたときにステップＳＴ８４で必要パック数が確保できたときには、ステップＳＴ８５でＩＬＶＵ-yR2を仮設定する。なお、このときの累積パック数Ｃｐ-y2が１２パックであったとき、予想アドレスＡＤｐは「７０＋４×１２＝１１８」となる。なお、ジャンプ距離ＪＹ-yは、予想アドレスＡＤｐから、この基底ＶＯＢｙの前のＩＬＶＵの終了アドレスＡＥＵ「４０」と「１」を減算することにより「１１８−４９−１＝６８」となる。このようにして、図８Ｄに示すように、基底ＶＯＢyの新たなＩＬＶＵ-yR2が仮設定される。
【０１２６】
次に、ステップＳＴ７３の各ＶＯＢに対するＩＬＶＵ設定処理が再度行われると、ステップＳＴ９１で最後のＶＯＢ-DをＶＯＢポインタＰｖとしてステップＳＴ９２で必要パック数Ｃｑを算出すると、必要パック数Ｃｑは式（８）から「３６０÷９０×１２＝４８」となる。
【０１２７】
またジャンプ距離ＪＺ-DR2は、ＶＯＢ-Dにおける前のＩＬＶＵの終了アドレスＡＥが「３９」であり、ＶＯＢ-DのＩＬＶＵの開始アドレスは「７０」であることから「７０−３９−１＝３０」となる。
【０１２８】
その後、ＶＯＢＵポインタＰｕの位置をＶＯＢＵ-D6としたとき、必要パック数Ｃｑとジャンプ距離ＪＺ-DR2を満たすことができたときには、ステップＳＴ９３，ステップＳＴ９４を介してステップＳＴ９５に進む。さらに、残りＶＯＢＵ数が規定値よりも少なくないときにはステップＳＴ９６に進み、「ＶＯＢ−D」に対するＩＬＶＵ-DR2の開始アドレスＡＳ［Ｄ，２］（＝７０）と終了アドレスＡＥ［Ｄ，２］（＝１１７）を設定してアドレスＡＤに確保したＶＯＢＵのパック数を加算して新たなアドレスＡＤとする。すなわちアドレスＡＤ「７０」にパック数「４８」を加算して新たなアドレス「ＡＤ＝１１８」とする。さらに、全ＶＯＢに対する処理が完了していないことから、ＶＯＢポインタＰｖを次のＶＯＢであるＶＯＢ−Cに設定してステップＳＴ９２戻る。
【０１２９】
その後、ステップＳＴ９２からの処理を行うと、ＶＯＢ-Cに対するＩＬＶＵ-CR2の設定処理を行うことができる。このとき、必要パック数Ｃｑは式（８）から「１２」となる。また、アドレスＡＤが「１１８」とされているので、式（９）からジャンプ距離ＪＺ-CR2は、「１１８−４９−１＝６８」となり、この必要パック数Ｃｑとジャンプ距離ＪＺを満たすまでＶＯＢＵを確保する処理を行う。その後、ステップＳＴ９６に進むと、「ＶＯＢ−C」に対するＩＬＶＵ-CR2の開始アドレスＡＳ［Ｃ，２］（＝１１８）と終了アドレスＡＥ［Ｃ，２］（＝１２９）を設定すると共に、アドレスＡＤに確保したＶＯＢＵのパック数を加算して新たなアドレスＡＤとする。すなわちアドレスＡＤ「１１８」にパック数「１２」を加算して新たなアドレス「ＡＤ＝１３０」とする。さらに、全ＶＯＢに対する処理が完了していないことから、ＶＯＢポインタＰｖを次のＶＯＢであるＶＯＢ−Bに設定してステップＳＴ９２戻る。
【０１３０】
ここで、ＶＯＢ-Bの残パック数は「２００−２０＝１８０」であるので、必要パック数Ｃｑは式（８）から「１８０÷９０×１２＝２４」となる。また、アドレスＡＤが「１３０」とされているので、式（９）からジャンプ距離ＪＺ-BR2は、「１３０−６９−１＝６０」となり、この必要パック数Ｃｑとジャンプ距離ＪＺ-BR2を満たすまでＶＯＢＵを確保する処理を行う。その後、ステップＳＴ９６に進むと、「ＶＯＢ−B」に対するＩＬＶＵ-BR2の開始アドレスＡＳ［Ｂ，２］（＝１３０）と終了アドレスＡＥ［Ｂ，２］（＝１５３）を設定する（図示せず）と共に、アドレスＡＤに確保したＶＯＢＵのパック数を加算して新たなアドレスＡＤとする。すなわちアドレスＡＤ「１３０」にパック数「２４」を加算して新たなアドレス「ＡＤ＝１５４」とする。ここで、各ＶＯＢに対するＩＬＶＵの設定が完了したことからステップＳＴ９８に進み、各ＶＯＢの転送時間やＩＬＶＵのパック数及びジャンプ距離ＪＺからジャンプが可能であるか否かを判別して、ジャンプが可能でであるときには、このＩＬＶＵ-R2を確定する。以下同様に処理を行い、ＶＯＢＵポインタ位置が各ＶＯＢの先頭側に移動したときには残り少ないＶＯＢＵを使い切ることで、ＩＬＶＵ-RKまでを確定できる。また、「ＶＯＢ-B」のＩＬＶＵ-BRkの終了アドレスＡＥ［Ｂ，ｋ］、「ＶＯＢ-C」のＩＬＶＵ-CRkの終了アドレスＡＥ［Ｃ，ｋ］及び「ＶＯＢ-D」のＩＬＶＵ-DRkの終了アドレスＡＥ［Ｄ，ｋ］に基づき、ジャンプ距離ＪＺ-CR(k+1)とジャンプ距離ＪＺ-DR(k+1)を算出できる。
【０１３１】
ＩＬＶＵやジャンプ距離ＪＺが確定したときには、ストリームの流れ方向とは逆方向に順次確定したＩＬＶＵ-R1〜ＩＬＶＵ-Rkを、ストリームの流れ方向の順序ＩＬＶＵ-1〜ＩＬＶＵ-kに並べ替えると共に、この並べ替え結果に基づき、各ＶＯＢの信号をＩＬＶＵ単位で用いてビットストリームＢＳを生成するための情報をインタリーブ情報ＺＤに追加する。このようにして得られたインタリーブ情報ＺＤに基づいて上述のように多重化部３３の動作を制御すれば、ＤＶＤに記録するシームレス再生が可能なビットストリームＢＳを生成できる。
【０１３２】
また、上述のインタリーブ処理装置４０はコンピュータを用いるものとして、上述のフローチャートで示した処理を行うインタリーブ処理プログラムをコンピュータで実行する構成とすることもできる。この場合、インタリーブ処理プログラムはコンピュータに予め記憶させておくものとする。あるいはインタリーブ処理プログラムを記録媒体に記録して、この記録媒体からインタリーブ処理プログラムを読み出すものとしたり、通信回線等を介してコンピュータに供給するものとしても良い。
【０１３３】
このように、インタリーブ処理では、ストリームの流れ方向とは逆方向に順次ＩＬＶＵを確定することによりシーン毎のＩＬＶＵ間のジャンプ距離が自明となるため、ＩＬＶＵのサイズを必要最小限に抑えることができる。また、ＩＬＶＵのサイズを小さくできるので、インタリーブブロックを構成するＶＯＢ数を多く取れる。すなわち、多くのシーンのシームレス再生が可能となる。さらに、ストリームの流れ方向とは逆方向に順次ＩＬＶＵを確定することによりジャンプ距離が自明となるため、ストリーム方向に順次ＩＬＶＵを確定する場合のようにＩＬＶＵのサイズを仮定して処理を行う必要がなく、ストリーム方向にＩＬＶＵを確定する場合に比べてインタリーブ処理に要する時間を短くできる。
【０１３４】
【発明の効果】
この発明によれば、インタリーブ処理を行う複数のビットストリームの構成を示した構成情報が生成されて、この構成情報で示された複数のビットストリームに対して、ビットストリーム流れ方向とは逆方向にインタリーブ処理単位が確定されて、この確定されたインタリーブ処理単位をビットストリーム流れ方向の順に並べ替えてインタリーブ動作が確定される。このように、ストリームの流れ方向とは逆方向に順次ＩＬＶＵを確定することでインタリーブ処理単位間のジャンプ距離が自明となるため、インタリーブ処理単位のサイズを必要最小限としてインタリーブ処理単位を確定できると共に、インタリーブ処理に要する時間を短くできる。
【０１３５】
また、複数のビットストリームに対してそれぞれ１つのインタリーブ処理単位を設定する毎にインタリーブ処理単位が確定されると共に、この設定されたインタリーブ処理単位に基づいて他のビットストリームに対するインタリーブ処理単位の設定が行われる。このため、既に設定あるいは確定されたインタリーブ処理単位に基づき、インタリーブ処理単位間のジャンプ距離を容易に判別できる。
【０１３６】
また、設定されたインタリーブ処理単位に基づいて次のインタリーブ処理単位を設定する際に、残りのビットストリームがインタリーブ処理単位よりも少なくなったとき、残りのビットストリーム分のデータ量を確定されたインタリーブ処理単位に分配する処理が行われる。このため、残りビットストリームが少なくなってインタリーブ処理単位を確定できないような場合が生じても、全てのビットストリームを用いたインタリーブ処理単位の確定が可能となる。
【０１３７】
さらに、インタリーブ処理開始時あるいはインタリーブ処理単位の確定毎に、インタリーブ処理単位の未確定部分の再生時間が最も短いビットストリーム、あるいは再生時間の最も短いビットストリームが複数のときにはデータ量の少ないビットストリームに対してインタリーブ処理単位が仮設定されて、インタリーブ処理単位の仮設定結果に基づいて、前記複数のビットストリームのインタリーブ処理単位が前記ビットストリーム流れ方向とは逆方向に順次設定される。このため、複数のビットストリームの再生時間長が異なる場合であっても正しくインタリーブ処理を行うことができる。
【図面の簡単な説明】
【図１】信号多重化装置の全体構成を示す図である。
【図２】ＶＯＢ構成情報を示す図である。
【図３】インタリーブ情報の生成動作を示すフローチャートである。
【図４】第１インタリーブ処理を示すフローチャートである。
【図５】ＩＬＶＵ確定処理を示すフローチャートである。
【図６】１ＶＯＢに対するＩＬＶＵ設定処理を示すフローチャートである。
【図７】例外処理を示すフローチャートである。
【図８】第１インタリーブ処理動作を説明するための図である。
【図９】インタリーブ情報を示す図である。
【図１０】第２インタリーブ処理を示すフローチャートである。
【図１１】ＩＬＶＵ確定処理を示すフローチャートである。
【図１２】基底ＶＯＢｙに対するＩＬＶＵ仮設定処理を示すフローチャートである。
【図１３】各ＶＯＢに対するＩＬＶＵ設定処理を示すフローチャートである。
【図１４】第２インタリーブ処理動作を説明するための図である。
【図１５】ＭＰＥＧシステムの概略構成を示す図である。
【図１６】インタリーブ処理と再生動作を示す図である。
【図１７】ジャンプ動作と蓄積データ量を示す図である。
【図１８】インタリーブ処理後のデータ構造を示す図である。
【符号の説明】
１０-X，１００・・・符号化処理装置、１２-X，１０１・・・ビデオ符号化部、１３-X，１０２・・・オーディオ符号化部、１４-X，１０３・・・情報信号符号化部、１５-X，１７-X，１９-X・・・ストリーム保持部、１６-X，１８-X，２０-X・・・付随情報保持部、３０-X・・・多重化処理装置、３１-X・・・スケジューリング処理部、３２-X・・・参照画像位置情報生成部、３３-A，３３-B，３３-C，３３-X，１０４・・・多重化部、４０・・・インタリーブ処理装置、４１・・・インタリーブ確定部、４２・・・構成情報供給部、１１０・・・復号化処理装置、１１１・・・分離部、１１２・・・ビデオ復号部、１１３・・・オーディオ復号部、１１４・・・情報信号復号部
【図１】
0004029630.tif 000003
【図２】
0004029630.tif 000004
【図３】
0004029630.tif 000005
【図４】
0004029630.tif 000006
【図５】
0004029630.tif 000007
【図６】
0004029630.tif 000008
【図７】
0004029630.tif 000009
【図８】
0004029630.tif 000010
【図９】
0004029630.tif 000011
【図１０】
0004029630.tif 000012
【図１１】
0004029630.tif 000013
【図１２】
0004029630.tif 000014
【図１３】
0004029630.tif 000015
【図１４】
0004029630.tif 000016
【図１５】
0004029630.tif 000017
【図１６】
0004029630.tif 000018
【図１７】
0004029630.tif 000019
【図１８】
0004029630.tif 000020