(57)【特許請求の範囲】
【請求項１】
少なくとも３種類のデータが所定の長さの単位データ毎に多重化されているビットストリームを受信する受信手段と、
前記ビットストリームから、第１の種類のデータを取り出す取り出し手段と、
前記取り出し手段により取り出された前記第１の種類のデータのビットレートを変換する処理を施す処理手段と、
前記ビットストリームにおける前記第１の種類以外の種類の前記単位データの間隔の長さを、前記単位データの到達時刻に基づいて算出するとともに、前記単位データの長さおよび所望のビットストリームのビットレートに基づいて、その間に挿入できる前記単位データの量を算出する算出手段と、
前記算出手段により算出された前記単位データの量ずつ、ビットレートが変換された前記第１の種類のデータを、前記第１の種類以外の種類の前記単位データの間に挿入し、前記単位データを詰めて多重化することにより、ビットレートが変換された前記第１の種類のデータと、前記第１の種類以外の種類のデータを再多重化する再多重化手段と
を備えることを特徴とする多重化装置。
【請求項２】
ビットストリームを再多重化する多重化装置の多重化方法において、
少なくとも３種類のデータが所定の長さの単位データ毎に多重化されているビットストリームを受信する受信ステップと、
前記ビットストリームから、第１の種類のデータを取り出す取り出しステップと、
前記取り出しステップの処理で取り出された前記第１の種類のデータのビットレートを変換する処理を施す処理ステップと、
前記ビットストリームにおける前記第１の種類以外の種類の前記単位データの間隔の長さを、前記単位データの到達時刻に基づいて算出するとともに、前記単位データの長さおよび所望のビットストリームのビットレートに基づいて、その間に挿入できる前記単位データの量を算出する算出ステップと、
前記算出ステップの処理で算出された前記単位データの量ずつ、ビットレートが変換された前記第１の種類のデータを、前記第１の種類以外の種類の前記単位データの間に挿入し、前記単位データを詰めて多重化することにより、ビットレートが変換された前記第１の種類のデータと、前記第１の種類以外の種類のデータを再多重化する再多重化ステップと
を含むことを特徴とする多重化方法。
【請求項３】
ビットストリームを再多重化する多重化装置のプログラムであって、
少なくとも３種類のデータが所定の長さの単位データ毎に多重化されているビットストリームを受信する受信ステップと、
前記ビットストリームから、第１の種類のデータを取り出す取り出しステップと、
前記取り出しステップの処理で取り出された前記第１の種類のデータのビットレートを変換する処理を施す処理ステップと、
前記ビットストリームにおける前記第１の種類以外の種類の前記単位データの間隔の長さを、前記単位データの到達時刻に基づいて算出するとともに、前記単位データの長さおよび所望のビットストリームのビットレートに基づいて、その間に挿入できる前記単位データの量を算出する算出ステップと、
前記算出ステップの処理で算出された前記単位データの量ずつ、ビットレートが変換された前記第１の種類のデータを、前記第１の種類以外の種類の前記単位データの間に挿入し、前記単位データを詰めて多重化することにより、ビットレートが変換された前記第１の種類のデータと、前記第１の種類以外の種類のデータを再多重化する再多重化ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記
録媒体。
【請求項４】
ビットストリームを再多重化する多重化装置のプログラムであって、
少なくとも３種類のデータが所定の長さの単位データ毎に多重化されているビットストリームを受信する受信ステップと、
前記ビットストリームから、第１の種類のデータを取り出す取り出しステップと、
前記取り出しステップの処理で取り出された前記第１の種類のデータのビットレートを変換する処理を施す処理ステップと、
前記ビットストリームにおける前記第１の種類以外の種類の前記単位データの間隔の長さを、前記単位データの到達時刻に基づいて算出するとともに、前記単位データの長さおよび所望のビットストリームのビットレートに基づいて、その間に挿入できる前記単位データの量を算出する算出ステップと、
前記算出ステップの処理で算出された前記単位データの量ずつ、ビットレートが変換された前記第１の種類のデータを、前記第１の種類以外の種類の前記単位データの間に挿入し、前記単位データを詰めて多重化することにより、ビットレートが変換された前記第１の種類のデータと、前記第１の種類以外の種類のデータを再多重化する再多重化ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多重化装置および方法、記録媒体、並びにプログラムに関し、特に、多重化されているストリームの内容を容易に変更することができるようにした多重化装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
映像、および音声、並びにこれらに関連した字幕、静止画などの情報を、１つのストリームに多重化して記録または伝送するための規格として、MPEG（Moving Picture Experts Group）システム規格（ISO/IEC13818-1）が存在する。
【０００３】
例えば、ヨーロッパ領域で行われているDVB(Digital Video Broadcasting）、または日本国で行われているBS(Broadcasting Satellite)デジタル放送などのデジタルテレビジョン放送においては、MPEG2トランスポートストリームが用いられ、またDVD-videoフォーマット、またはDVD-VR（Video Recording)フォーマットなどの記録においては、MPEGプログラムストリームが用いられている。
【発明が解決しようとする課題】
ところで、MPEGトランスポートストリームまたはMPEGプログラムストリームに多重化されている、例えば、ビデオストリームまたはオーディオストリームのビットレートを低くする場合など、特定のストリームの内容を変更した場合、多重化されている全てのストリームを分離し、所定のストリームに処理を施し、そしてその後、全てのストリームを再多重化する必要があった。
【０００４】
通常、再多重化を行う場合、多くの演算が必要になるとともに、分離したストリームを個別に記憶するためのメモリを用意し、それを管理しなければならないので、結局、特定のストリームの内容を変更する場合、時間がかかったり、装置の構成が煩雑になる課題があった。
【０００５】
本発明はこのような状況に鑑みてなされたものであり、多重化されている所定のストリームの内容を容易に変更することができるようにするものである。
【０００６】
【課題を解決するための手段】
本発明の多重化装置は、少なくとも３種類のデータが所定の長さの単位データ毎に多重化されているビットストリームを受信する受信手段と、ビットストリームから、第１の種類のデータを取り出す取り出し手段と、取り出し手段により取り出された第１の種類のデータのビットレートを変換する処理を施す処理手段と、ビットストリームにおける第１の種類以外の種類の単位データの間隔の長さを、単位データの到達時刻に基づいて算出するとともに、単位データの長さおよび所望のビットストリームのビットレートに基づいて、その間に挿入できる単位データの量を算出する算出手段と、算出手段により算出された単位データの量ずつ、ビットレートが変換された第１の種類のデータを、第１の種類以外の種類の単位データの間に挿入し、単位データを詰めて多重化することにより、ビットレートが変換された第１の種類のデータと、第１の種類以外の種類のデータを再多重化する再多重化手段とを備えることを特徴とする。
【０００７】
本発明の多重化方法は、少なくとも３種類のデータが所定の長さの単位データ毎に多重化されているビットストリームを受信する受信ステップと、ビットストリームから、第１の種類のデータを取り出す取り出しステップと、取り出しステップの処理で取り出された第１の種類のデータのビットレートを変換する処理を施す処理ステップと、ビットストリームにおける第１の種類以外の種類の単位データの間隔の長さを、単位データの到達時刻に基づいて算出するとともに、単位データの長さおよび所望のビットストリームのビットレートに基づいて、その間に挿入できる単位データの量を算出する算出ステップと、算出ステップの処理で算出された単位データの量ずつ、ビットレートが変換された第１の種類のデータを、第１の種類以外の種類の単位データの間に挿入し、単位データを詰めて多重化することにより、ビットレートが変換された第１の種類のデータと、第１の種類以外の種類のデータを再多重化する再多重化ステップとを含むことを特徴とする。
【０００８】
本発明の記録媒体のプログラムは、少なくとも３種類のデータが所定の長さの単位データ毎に多重化されているビットストリームを受信する受信ステップと、ビットストリームから、第１の種類のデータを取り出す取り出しステップと、取り出しステップの処理で取り出された第１の種類のデータのビットレートを変換する処理を施す処理ステップと、ビットストリームにおける第１の種類以外の種類の単位データの間隔の長さを、単位データの到達時刻に基づいて算出するとともに、単位データの長さおよび所望のビットストリームのビットレートに基づいて、その間に挿入できる単位データの量を算出する算出ステップと、算出ステップの処理で算出された単位データの量ずつ、ビットレートが変換された第１の種類のデータを、第１の種類以外の種類の単位データの間に挿入し、単位データを詰めて多重化することにより、ビットレートが変換された第１の種類のデータと、第１の種類以外の種類のデータを再多重化する再多重化ステップとを含むことを特徴とする。
【０００９】
本発明のプログラムは、少なくとも３種類のデータが所定の長さの単位データ毎に多重化されているビットストリームを受信する受信ステップと、ビットストリームから、第１の種類のデータを取り出す取り出しステップと、取り出しステップの処理で取り出された第１の種類のデータのビットレートを変換する処理を施す処理ステップと、ビットストリームにおける第１の種類以外の種類の単位データの間隔の長さを、単位データの到達時刻に基づいて算出するとともに、単位データの長さおよび所望のビットストリームのビットレートに基づいて、その間に挿入できる単位データの量を算出する算出ステップと、算出ステップの処理で算出された単位データの量ずつ、ビットレートが変換された第１の種類のデータを、第１の種類以外の種類の単位データの間に挿入し、単位データを詰めて多重化することにより、ビットレートが変換された第１の種類のデータと、第１の種類以外の種類のデータを再多重化する再多重化ステップとを含むことを特徴とする。
【００１０】
本発明の第1の多重化装置および方法、並びにプログラムにおいては、少なくとも３種類のデータが所定の長さの単位データ毎に多重化されているビットストリームが受信され、ビットストリームから、第１の種類のデータが取り出され、取り出された第１の種類のデータのビットレートが変換され、ビットストリームにおける第１の種類以外の種類の単位データの間隔の長さが、単位データの到達時刻に基づいて算出されるとともに、単位データの長さおよび所望のビットストリームのビットレートに基づいて、その間に挿入できる単位データの量が算出され、算出された単位データの量ずつ、ビットレートが変換された第１の種類のデータが、第１の種類以外の種類の単位データの間に挿入され、単位データが詰めて多重化されることにより、ビットレートが変換された第１の種類のデータと、第１の種類以外の種類のデータが再多重化される。
【００１１】
【発明の実施の形態】
図１は、本発明を適用した記録装置の構成例を示している。
【００１２】
チューナ１は、受信した電波を復調し、番組選択情報により選局されたチャンネルの、MPEG（Moving Picture Experts Group）２の規格に準拠して符号化されたMPEGトランスポートストリームを、デマルチプレクサ２に出力する。
【００１３】
デマルチプレクサ２は、チューナ１から供給されたMPEGトランスポートストリームから、番組選択情報により選択された番組を構成するストリームを抽出するとともに、抽出したストリームを、PID（packet ID）に基づいてビデオストリームと、ビデオストリーム以外のストリーム（オーディオデータや制御データからなるストリーム）に分解し、ビデオストリームをビデオデコーダ３に供給し、ビデオストリーム以外のストリームを、到着時刻付加部６に供給する。
【００１４】
例えば、図２Ａに示すMPEGトランスポートストリームがデマルチプレクサ２に入力された場合、例えば、到着時刻付加部６には、図中、”Ｖ”が付されている、ビデオストリームのパケットのみが取り出された、図２Ｂに示すような、オーディオデータのパケットＰ0，Ｐ1，Ｐ3，・・・と、制御データのパケットＰ2，・・・からなるストリームが供給される。なお、このストリームにおいて、各パケットの位置（パケットの間隔）は、元のMPEGトランスポートストリームにおける状態が保持されている。
【００１５】
ビデオデコーダ３は、デマルチプレクサ２から入力されたビデオストリームを、MPEG２の規格に準拠してデコードし、その結果得られたビデオ信号をビデオエンコーダ４に供給する。ビデオデコーダ３はこのとき、ビデオストリームに組み込まれている表示時刻情報を抽出し、スケジューラ８に供給する。
【００１６】
ビデオエンコーダ４は、ビデオデコーダ３からのビデオ信号を、要求されるビットレートで（例えば、元のビットレートより低いビットレートで）、MPEG２の規格に準拠してエンコードし、その結果得られたビデオストリームを、バッファメモリ５を介してマルチプレクサ９に供給する。ビデオエンコーダ４はこのとき、例えば、Picture Coding Type、発生ビット量、Top Field First Flag、Repeat First Field Flag等のアクセスユニット情報を、スケジューラ８に供給する。
【００１７】
到着時刻付加部６は、入力された、ビデオストリーム以外のストリームを構成するパケットに、そのパケットが記録装置に到着した時刻を表す到着時刻情報を付加する。到着時刻情報が付加されたパケットは、バッファメモリ７に供給されて一時的に記憶される。
【００１８】
例えば、到着時刻付加部６に、図２Ｂに示したストリームが入力される場合、例えば、パケットＰ0の到着時刻は、時刻ｔ0であるので、パケットＰ0には、図２Ｃに示すように、時刻ｔ0を表す到着時刻情報（図中、ATSと示されている）が付加されてバッファメモリ７に記憶される。同様に、パケットＰ1には、時刻ｔ1を表す時刻情報が、パケットＰ2には、時刻ｔ2を表す時刻情報が、そしてパケットＰ3には、時刻ｔ3を表す時刻情報がそれぞれ付加されてバッファメモリ７に記憶される。
【００１９】
なお、到着時刻情報は、多重化の時間間隔を復元できるものであればよく、例えば、27MHzのクロックのカウント値などが利用される。また、図２Ｃの例では、到着時刻情報がパケットの先頭に付加されているが、後で取り除くことができれば、他の場所に付加することもできる。
【００２０】
スケジューラ８は、ビデオデコーダ３から入力される表示時刻情報、ビデオエンコーダ４から入力されるアクセスユニット情報、およびマルチプレクサ９から入力される到着時刻情報（ビデオストリーム以外のストリームを構成するパケットに付加された到着時刻情報）に基づく多重化スケジュールに従って、マルチプレクサ９の多重化を制御する。なお、多重化を制御する際、スケジューラ８は、ビデオストリームを構成するパケットに付加される到着時刻情報をマルチプレクサ９に供給する。
【００２１】
マルチプレクサ９は、バッファメモリ７に記憶されているビデオストリーム以外のストリームを構成するパケットを適宜読み出し、それに付加された到着時刻情報を読み取り、スケジューラ８に通知する。
【００２２】
マルチプレクサ９は、バッファメモリ５に記憶されているビデオストリームを構成するパケットを適宜読み出し、それに、スケジューラ８から供給される到着時刻情報を付加する。
【００２３】
マルチプレクサ９は、スケジューラ８の制御に従い、バッファメモリ７から読み出したビデオストリーム以外のストリームのパケットと、バッファメモリ５から読み出したビデオストリームのパケットを多重化し、その結果得られたMPEGトランスポートストリームを誤り訂正部１０に供給する。
【００２４】
例えば、図２Ｄに示すように多重化されたMPEGトランスポートストリームが、誤り訂正部１０に供給される。
【００２５】
誤り訂正部１０に供給されたMPEGトランスポートストリームは、そこで誤り訂正がなされ、そして変調された後、記録ヘッド１２を介して、記録媒体１３に供給されて記録される。
【００２６】
以上のように、ビデオストリームのパケット、およびビデオストリーム以外のストリームのパケットに、多重化間隔を復元するための到着時刻情報を付加したので、再多重化されたMPEGトランスポートストリームは、図２Ｅに示すように、記録時の時間間隔を保持した状態で再生される。
【００２７】
次に、ＭＰＥＧトランスポートストリームを記録する場合のスケジューラ８の動作を、図３のフローチャートを参照して説明する。
【００２８】
ステップＳ１０において、スケジューラ８は、１つのパケットを多重化する（挿入する）のに必要な時間Ｔ0を、次式に基づいて算出する。
Ｔ0（sec）＝パケット長（bit）／Ｒmux（bps）
パケット長は、MPEGトランスポートストリームでは、１８８×８ビットと一定である。Ｒmuxは、多重化レートである。
【００２９】
ここで算出された時間Ｔ0は、スケジューラ８に内蔵されるメモリに記憶される。
【００３０】
次に、ステップＳ１１において、スケジューラ８は、多重化されていないパケットが残っているか否かを判定し、残っていると判定した場合、すなわち、ストリームが終了していない場合、ステップＳ１２に進む。
【００３１】
ステップＳ１２において、スケジューラ８は、マルチプレクサ９から入力された到着時刻情報（例えば、いまマルチプレクサ９によりバッファメモリ７から読み出されたビデオストリーム以外のストリームを構成するパケットＰcurの到着時刻情報）を読み取り、それが表す時刻を時刻ｔcurとして記憶する。
【００３２】
例えば図２ＣのパケットＰ１がマルチプレクサ９に付加された到着時刻情報が読み取られ、それが表す時刻ｔ1が時刻ｔcurとして記憶される。
【００３３】
次に、ステップＳ１３において、スケジューラ８は、時刻ｔcurと、前回のここでの処理でマルチプレクサ９から入力された到着時刻情報（パケットＰcurより１つ前にマルチプレクサ９によりバッファメモリ７から読み出されたパケットＰprevの到着時刻情報）を表す時刻ｔprevを用いて、下記の式に示すように、その差分Ｔdiffを算出する。
Ｔdiff＝ｔprev−ｔcur
【００３４】
例えば、図４に示すように、例えば、図２ＢにおけるパケットＰ0（パケットＰprev）とパケットＰ1（パケットＰcur）との間隔が、Ｔdiffとして算出される。
【００３５】
スケジューラ８はその後、パケットＰcurの到着時刻情報が表す時刻ｔcur（パケットＰ1の到着時刻情報が表す時刻ｔ1）を、時刻ｔprevとして記憶する。
【００３６】
ステップＳ１４において、スケジューラ８は、ステップＳ１３で算出したＴdiffが値０より大きいか否かを判定し、大きいと判定した場合、ステップＳ１５に進み、下記の式を算出して、Ｔdiffに（パケットＰprevとパケットＰcurの間に）挿入することができるビデオストリームのパケット数Ｎを算出する。
【００３７】
Ｎ＝（Ｔdiff／Ｔ0）−１
【００３８】
例えば、図４に示すように、パケットＰ1とパケットＰ0が、パケットＰprevとパケットＰcurである場合のＴdiffに挿入することができるビデオストリームのパケット数Ｎは、３である。
【００３９】
ステップＳ１６において、スケジューラ８は、ステップＳ１５で算出したパケット数Ｎが０であるか否かを判定し、０ではないと判定した場合、ステップＳ１７に進む。
【００４０】
ステップＳ１７において、スケジューラ８は、Ｔ-STDのバッファに、１つのパケットを蓄えることができる分の空きが存在するか否かを確認し、ステップＳ１８において、その確認結果に基づいて、ビデオストリームのパケットを多重化できるか否かを判定する。なお、ステップＳ１７の処理の詳細は、後述する。
【００４１】
ステップＳ１８で、多重化できると判定された場合、ステップＳ１９に進み、スケジューラ８は、マルチプレクサ９に対して多重化を指示する。
【００４２】
次に、ステップＳ２０において、スケジューラ８は、パケット数Ｎから値１を減算するとともに、ステップＳ２１において、現在の時刻に時間Ｔ0を加算して得られた時刻を、ビデオストリームのパケットに付加される到着時刻情報として、マルチプレクサ９に供給する。
【００４３】
なお、現在の時刻および時間Ｔ0は、ともにMPEGトランスポートストリームのPCRに基づくタイムスケール上の時刻および時間であって、到着時刻付加部６でビデオストリーム以外のストリームのパケットに付加された到着時刻は、到着時刻付加部６独自のタイムスケール上の時刻であるので、互いのタイムスケールが異なるので、ビデオストリームと、ビデオストリーム以外のストリームを多重化する際においては、互いのタイムスケールを統一する必要がある。
【００４４】
タイムスケールの統一は、ビデオストリームのパケットに付加される到着時刻情報を、到着時刻付加部６のタイムスケールに変更するか、またはビデオストリーム以外のストリームのパケットに付加されている到着時刻情報を、PCRのタイムスケールに変更することにより可能となるが、いまの場合、ビデオストリームのパケットに付加される到着時刻情報（現在の時刻に時間Ｔ0を加算して得られた時刻）を、到着時刻付加部６のタイムスケールに変換するものとする。
【００４５】
その後、処理は、ステップＳ１６に戻り、それ以降の処理が行われる。
【００４６】
マルチプレクサ９は、スケジューラ８から多重化の指令を受けると（ステップＳ１９）、バッファメモリ５からビデオストリームのパケットを１つ読み出し、それにスケジューラ８から供給された到着時刻情報（ステップＳ２１）を付加するとともに、パケットＰprevから詰めて多重化する（挿入する）。なお、パケットＰprevは、前回行われた後述するステップＳ２２で多重化されている。
【００４７】
ステップＳ１８で、ビデオストリームのパケットを多重化することができないと判定された場合、ステップＳ１９の処理はスキップされ、ステップＳ２０に進む。すなわち、この場合、ステップＳ２１で到着時刻情報がマルチプレクサ９に供給されるが、多重化が指示されないので（ステップＳ１９）、ビデオストリームのパケットの多重化は行われない。
【００４８】
ステップＳ１６で、パケット数Ｎ＝０であると判定された場合、すなわち、Ｔdiffに挿入することができる数分のパケットがすべて多重化された場合、ステップＳ２２に進み、スケジューラ８は、ビデオストリーム以外のストリームのパケットの多重化を指示する。
【００４９】
マルチプレクサ９はこのとき、ビデオストリーム以外のストリームのパケットＰcurを、ステップＳ１９の処理における指示で多重化されたビデオストリームのパケットに続けて多重化（挿入）する。これにより、例えば、図２Ｄに示すように、３個のビデオストリームのパケットが、パケットＰ0とパケットＰ1の間に挿入される（多重化される）。
【００５０】
その後、ステップＳ１１に戻り、それ以降の処理が実行される。
【００５１】
ステップＳ１１において、多重化されるパケットが残っていないと判定された場合、スケジューラ８は、処理を終了させる。
【００５２】
以上のように、本発明では、その内容を変更する（例えば、ビットレートを変更する）ストリーム（例えば、ビデオストリーム）とそれ以外のストリームに分割されるので、２つのバッファを用意すればよく、装置の構成を簡単なものにすることができる。また、多重化に必要な演算は、実質、Ｔdiffの算出（ステップＳ１３）およびパケット数Ｎの算出（ステップＳ１５）だけであるので、迅速に、多重化処理を行うことができる。
【００５３】
以上においては、MPEGトランスポートストリームを記録する場合を例として説明したが、以下において、MPEGプログラムストリームを記録する場合について説明する。
【００５４】
このときデマルチプレクサ２は、チューナ１から供給されたMPEGプログラムストリームから、番組選択情報により選択された番組を構成するストリームを抽出するとともに、抽出したストリームを、ストリームＩＤに基づいてビデオストリームと、ビデオストリーム以外のストリーム（オーディオデータや制御データからなるストリーム）に分解し、ビデオストリームをビデオデコーダ３に供給し、ビデオストリーム以外のストリームを、到着時刻付加部６に供給する。
【００５５】
例えば、図５Ａに示すMPEGプログラムストリームがデマルチプレクサ２に入力された場合、例えば、到着時刻付加部６には、図中、”Ｖ”が付されている、ビデオストリームのパックのみが取り出された、図５Ｂに示すような、オーディオデータのパック（”Ａ”が付されているパック）と、制御データのパック”Ｄ”が付されているパック）からなるストリームが供給される。なお、このストリームにおいて、各パックの位置（パックの間隔）は、元のMPEGプログラムストリームにおける状態が保持されている。
【００５６】
ビデオデコーダ３は、デマルチプレクサ２から入力されたビデオストリームを、MPEG２の規格に準拠してデコードし、その結果得られたビデオ信号をビデオエンコーダ４に供給する。ビデオデコーダ３はこのとき、ビデオストリームに組み込まれている表示時刻情報を抽出し、スケジューラ８に供給する。
【００５７】
ビデオエンコーダ４は、ビデオデコーダ３からのビデオ信号を、要求されるビットレートで（例えば、元のビットレートより低いビットレートで）、MPEG２の規格に準拠してエンコードし、その結果得られたビデオストリームを、バッファメモリ５を介してマルチプレクサ９に供給する。ビデオエンコーダ４はこのとき、アクセスユニット情報をスケジューラ８に供給する。
【００５８】
例えば、到着時刻付加部６に、図２Ｂに示したストリームが入力される場合、図２Ｃに示すように、ビデオストリーム以外のストリームを構成するパックに、そのパックが記録装置に到着した時刻を表す到着時刻情報が付加されてバッファメモリ７に記憶される。
【００５９】
スケジューラ８は、ビデオデコーダ３から入力された表示時刻情報、ビデオエンコーダ４から入力されるアクセスユニット情報、およびマルチプレクサ９から入力される到着時刻情報（ビデオストリーム以外のストリームを構成するパックに付加された到着時刻情報）に基づく多重化スケジュールに従って、マルチプレクサ９の多重化を制御する。なお、多重化を制御する際、スケジューラ８は、ビデオストリームを構成するパックに付加される到着時刻情報をマルチプレクサ９に供給する。
【００６０】
マルチプレクサ９は、スケジューラ８の制御に従って多重化を行い、その結果得られた、例えば、図５Ｄに示すようなMPEGプログラムストリームを誤り訂正部１０に供給する。
【００６１】
このようにして記録されたMPEGプログラムストリームは、図５Ｅに示すように記録時の時間間隔が保持されて再生される。
【００６２】
次に、MPEGプログラムストリームを記憶する場合のスケジューラ８の動作を、図６のフローチャートを参照して説明する。
【００６３】
ステップＳ３０において、スケジューラ８は、１つのパックを多重化するのに必要な時間Ｔ0を、次式に基づいて算出する。パック長は、任意の長さに設定することができる。Ｒmuxは、多重化レートである。
Ｔ0（sec）＝パック長（bit）／Ｒmux（bps）
【００６４】
ここで算出された時間Ｔ0は、スケジューラ８に内蔵されるメモリに記憶される。
【００６５】
次に、ステップＳ３１において、スケジューラ８は、多重化されていないパックが残っているか否かを判定し、残っていると判定した場合、すなわち、ストリームが終了していない場合、ステップＳ３２に進む。
【００６６】
ステップＳ３２において、スケジューラ８は、マルチプレクサ９から供給された到着時刻情報（例えば、いまマルチプレクサ９により読み出されたビデオストリーム以外のストリームを構成するパックＰcurの到着時刻情報）を読み取り、それが表す時刻を時刻ｔcurとして記憶する。
【００６７】
次に、ステップＳ３３において、スケジューラ８は、時刻ｔcurと、前回のここでの処理でマルチプレクサ９より入力された到着時刻情報（パックＰcurより１つ前にバッファメモリ７からマルチプレクサ９により読み出されたパックＰprevの到着時刻情報）を表す時刻ｔprevを用いて、下記の式に示すように、その差分Ｔdiffを算出する。
Ｔdiff＝ｔprev−ｔcur
【００６８】
スケジューラ８はその後、パックＰcurの到着時刻情報が表す時刻ｔcurを、時刻ｔprevとして記憶する。
【００６９】
ステップＳ３４において、スケジューラ８は、ステップＳ３３で算出したＴdiffが値０より大きいか否かを判定し、大きいと判定した場合、ステップＳ３５に進み、下記の式を算出して、Ｔdiffに（パックＰprevとパックＰcurの間に）挿入することができるビデオストリームのパック数Ｎを算出する。
【００７０】
Ｎ＝（Ｔdiff／Ｔ0）−１
【００７１】
ステップＳ３６において、スケジューラ８は、ステップＳ３５で算出したパック数Ｎが０であるか否かを判定し、０ではないと判定した場合、ステップＳ３７に進む。
【００７２】
ステップＳ３７において、スケジューラ８は、Ｐ-STDのバッファに、１つのパックを蓄えることができる分の空きが存在するか否かを確認し、ステップＳ３８において、その確認結果に基づいて、ビデオストリームのパックを多重化できるか否かを判定する。なお、ステップＳ３７の処理の詳細は、後述する。
【００７３】
ステップＳ３８で、多重化できると判定された場合、ステップＳ３９に進み、スケジューラ８は、マルチプレクサ９に対して多重化を指示する。
【００７４】
次に、ステップＳ４０において、スケジューラ８は、パック数Ｎから値１を減算するとともに、ステップＳ４１において、現在の時刻に時間Ｔ0を加算して得られた時刻を、ビデオストリームのパックに付加される到着時刻情報として、マルチプレクサ９に供給する。
【００７５】
タイムスケールの統一は、ビデオストリームのパックに付加される到着時刻情報（現在の時刻に時間Ｔ0を加算して得られた時刻）を、到着時刻付加部６のタイムスケールに変換して行われる。
【００７６】
その後、処理は、ステップＳ３６に戻り、それ以降の処理が行われる。
【００７７】
マルチプレクサ９は、スケジューラ８から多重化の指令を受けると（ステップＳ３９）、バッファメモリ５からビデオストリームのパックを１つ読み出し、それにスケジューラ８から供給された到着時刻情報（ステップＳ４１）を付加するとともに、パックＰprevから詰めて多重化する（挿入する）。
【００７８】
ステップＳ３８で、ビデオストリームのパックを多重化することができないと判定された場合、ステップＳ３９の処理はスキップされ、ステップＳ４０に進む。すなわち、この場合、ステップＳ４１で到着時刻情報がマルチプレクサ９に供給されるが、多重化が指示されないので（ステップＳ３９）、ビデオストリームのパックの多重化は行われない。
【００７９】
ステップＳ３６で、パック数Ｎ＝０であると判定された場合、すなわち、Ｔdiffに挿入することができる数分のパックがすべて挿入（多重化）された場合、ステップＳ４２に進み、スケジューラ８は、ビデオストリーム以外のストリームのパックの多重化を指示する。
【００８０】
マルチプレクサ９はこのとき、ビデオストリーム以外のストリームのパックＰcurを、ステップＳ３９の処理における指示で多重化されたビデオストリームのパックに続けて多重化（挿入）する。
【００８１】
その後、ステップＳ３１に戻り、それ以降の処理が実行される。
【００８２】
ステップＳ３１において、多重化されるパックが残っていないと判定された場合、スケジューラ８は、処理を終了させる。
【００８３】
次に、図３のステップＳ１７または図６のステップＳ３７における処理について説明する。なお、ここでは、図６のステップＳ３７の処理を例として説明する。
【００８４】
図７は、P-STDの構成例を示している。
【００８５】
バッファ２１には、ビデオストリームのパックが入力され、一時的に記憶される。バッファ２１に記憶されたビデオストリームのパックは、ビデオデコーダ３から供給された表示時刻情報(DTS(Decoding Time Stamp））が示す時刻になったタイミングで、アクセスユニット（ＡＵ）（フレームまたはフィールド）単位で引き抜かれ、デコーダ２２に供給される。
【００８６】
デコーダ２２に供給されたアクセスユニットは、そこでデコードされた後、直接またはバッファ２３で並べ替えられた後出力される。
【００８７】
バッファ２４には、オーディオストリームのパックが入力され、一時的に記憶される。バッファ２４に記憶されたオーディオストリームのパックは、ビデオデコーダ３から供給された表示時刻情報が示す時刻になったタイミングで、アクセスユニット（フレーム）単位で引き抜かれ、デコーダ２５に供給される。
【００８８】
デコーダ２５に供給されたアクセスユニットは、そこでデコードされた後、出力される。
【００８９】
前述したビデオストリームのみ再エンコードする構成例では、ビデオストリームのバッファのみ考慮すればよい。
【００９０】
図８のフローチャートには、ステップＳ３７における処理の詳細が示されている。
【００９１】
ステップＳ５０において、バッファ２１に蓄えられている各アクセスユニットの表示時刻情報のうち、SCR（図６の現在時刻）以上の値であるものが存在するか否かが判定され、存在すると判定された場合、ステップＳ５１に進み、SCR以上の表示時刻情報に対応するアクセスユニット分のデータ量が、バッファ２１の占有量から減算される。
【００９２】
ステップＳ５０で、SCR以上の表示時刻情報が存在しないと判定されたとき、またはステップＳ５１で、バッファ２１の占有量が減算されたとき、ステップＳ５２に進む。
【００９３】
ステップＳ５２において、バッファ２１に１パックを蓄えることができる分の空きが存在するか否かが判定され、空きが存在しないと判定された場合、ステップＳ５３に進み、P-STDには、１つのパックを蓄えることができる分の空きが存在しない旨が確認される。
【００９４】
一方、ステップＳ５２で、空きがあると判定された場合、ステップＳ５４に進み、バッファ２１の占有量に１パック分のデータ量が加算され、その後、ステップＳ５５において、P-STDには、１つのパックを蓄えることができる分の空きが存在する旨が確認される。
【００９５】
ステップＳ５３またはステップＳ５５で、バッファ２１の空き状態が確認されたとき、処理は終了し、図６のステップＳ３８に進む。
【００９６】
図９は、本発明を適用した他の記録装置の構成例が示されている。この記録装置には、図１のビデオデコーダ３乃至バッファメモリ５が２組設けられている（ビデオデコーダ３−１乃至バッファメモリ５−１、およびビデオデコーダ３−２乃至バッファメモリ５−２が設けられている）。すなわち、この場合、２チャンネル分のMPEGトランスポートストリームまたはMPEGプログラムストリームを、上述したように記録することができる。
【００９７】
図１０は、上述のような記録再生装置として機能するコンピュータ１０１の一実施の形態の構成を示すブロック図である。CPU（Central Processing Unit）１１１にはバス１１５を介して入出力インタフェース１１６が接続されており、CPU１１１は、入出力インタフェース１１６を介して、ユーザから、キーボード、マウスなどよりなる入力部１１８から指令が入力されると、例えば、ROM１１２、ハードディスク１１４、またはドライブ１２０に装着される磁気ディスク１３１、光ディスク１３２、光磁気ディスク１３３、若しくは半導体メモリ１３４などの記録媒体に格納されているプログラムを、RAM１１３にロードして実行する。これにより、上述した各種の処理が行われる。さらに、CPU１１１は、その処理結果を、例えば、入出力インタフェース１１６を介して、LCD（Liquid Crystal Display）などよりなる出力部１１７に必要に応じて出力する。なお、プログラムは、ハードディスク１１４やROM１１２に予め記憶しておき、コンピュータ１０１と一体的にユーザに提供したり、磁気ディスク１３１、光ディスク１３２、光磁気ディスク１３３，半導体メモリ１３４等のパッケージメディアとして提供したり、衛星、ネットワーク等から通信部１１９を介してハードディスク１１４に提供することができる。
【００９８】
【発明の効果】
本発明の多重化装置および方法、並びにプログラムによれば、第１の多重化ストリームの到着時刻に基づいて、第１の多重化ストリームに挿入できるデータ量を算出し、算出されたデータ量分のデータを、第１の多重化ストリームに挿入されて、第２の多重化ストリームを多重化するようにしたので、容易に再多重化することができる。
【図面の簡単な説明】
【図１】本発明を適用した記録装置の構成例を示すブロック図である。
【図２】図１の記録装置の記録処理を説明する図である。
【図３】図１のスケジューラの動作を説明するフローチャートである。
【図４】図１のスケジューラの動作を説明する図である。
【図５】図１の記録装置の記録処理を説明する他の図である。
【図６】図１のスケジューラの他の動作を説明するフローチャートである。
【図７】  P-STDの構成例を示すブロック図である。
【図８】図６のステップＳ３７の処理を説明するフローチャートである。
【図９】本発明を適用した記録装置の他の構成例を示す図である。
【図１０】パーソナルコンピュータ１０１の構成例を示すブロック図である。
【符号の説明】
１  チューナ，  ２  デマルチプレクサ，  ３  ビデオデコーダ，  ４  ビデオエンコーダ，  ５  バッファメモリ，  ６  到着時刻付加部，  ７  バッファメモリ，  ８  スケジューラ，  ９  マルチプレクサ，  １０  誤り訂正部，  １１  変調部，  １２  記録ヘッド，  １３  記録媒体
【図１】
0004147452.tif 000002
【図２】
0004147452.tif 000003
【図３】
0004147452.tif 000004
【図４】
0004147452.tif 000005
【図５】
0004147452.tif 000006
【図６】
0004147452.tif 000007
【図７】
0004147452.tif 000008
【図８】
0004147452.tif 000009
【図９】
0004147452.tif 000010
【図１０】
0004147452.tif 000011