(57)【要約】【課題】スプライシング時にオーディオデータがビデオデータと同期しなくなるのを防止する。【解決手段】第１のプログラムのビデオストリームの最後のGOP８１に対して、第２のプログラムのビデオストリームの先頭のGOP８２をスプライシングし、かつ、第１のプログラムのオーディオストリームの最後のGOP９１に対して、第２のプログラムのオーディオストリームの先頭のGOP９２をスプライシングする場合において、スプライシング後のビデオデータとオーディオデータとが同期するのに必要なずれ量PTS_FSが、各GOP毎に演算され、記録媒体に記録される。スプライシング処理する場合、GOP９２をGOP９１にそのままスプライシングした場合におけるずれ量PTS_FS_SPLYCEと読み出されたPTS_FSが利用される。本発明は、ビデオサーバに適用することができる。【選択図】図６
2007195208.tif 000002
【特許請求の範囲】
【請求項１】
処理単位毎の入力ビデオデータと、処理単位の大きさが前記入力ビデオデータと異なる処理単位毎の入力オーディオデータを処理する情報処理装置において、
前記処理単位毎の入力ビデオデータと、前記処理単位毎の入力オーディオデータから、前記入力ビデオデータの処理単位の最終時刻情報、及び、前記入力オーディオデータの処理単位の最終時刻情報を算出する最終時刻情報算出手段と、
先行する処理単位に対して、前記処理単位の入力ビデオデータと前記処理単位の入力オーディオデータが直接繋がれた場合において、前記処理単位の入力ビデオデータと前記処理単位の入力オーディオデータが同期するための、前記処理単位の入力ビデオデータと前記処理単位の入力オーディオデータのずれ量を示す第1のずれ量情報を、前記処理単位毎に算出する第1のずれ量情報算出手段と、
前記処理単位の入力オーディオデータが、前記処理単位の入力ビデオデータと同期するための、前記先行する処理単位のビデオデータの最終時刻情報に対する、前記処理単位の入力オーディオデータのずれ量を示す第２のずれ量情報を前記処理単位毎に算出する第２のずれ量情報算出手段と、
前記第２のずれ量が前記第１のずれ量よりも大きい時に、前記処理単位毎に、無音を示す無音情報を前記先行するオーディオデータと前記入力オーディオデータとの間に挿入する無音データ挿入手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記第１のずれ量情報の値が、前記第２のずれ量の値より大きく、かつ、前記第１のずれ量情報の値と前記第２のずれ量の値の差が、前記オーディオデータの１符号化単位以上であるか否かを判断する判断手段と、
前記判断手段により、前記第１のずれ量情報の値が、前記第２のずれ量の値より大きく、かつ、その差が前記オーディオデータの１符号化単位以上であると判断された場合、前記第１のずれ量情報の値と、前記第２のずれ量の値の差が、前記オーディオデータの１符号化単位より小さくなるように、前記先行する処理単位の前記オーディオデータを、前記オーディオデータの前記処理単位を構成する符号化単位で削除する削除手段と
をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
処理単位毎の入力ビデオデータと、処理単位の大きさが前記入力ビデオデータと異なる処理単位毎の入力オーディオデータを処理する情報処理装置の情報処理方法において、
前記処理単位毎の入力ビデオデータと、前記処理単位毎の入力オーディオデータから、前記入力ビデオデータの処理単位の最終時刻情報、及び、前記入力オーディオデータの処理単位の最終時刻情報を算出する最終時刻情報算出ステップと、
先行する処理単位に対して、前記処理単位の入力ビデオデータと前記処理単位の入力オーディオデータが直接繋がれた場合において、前記処理単位の入力ビデオデータと前記処理単位の入力オーディオデータが同期するための、前記処理単位の入力ビデオデータと前記処理単位の入力オーディオデータのずれ量を示す第1のずれ量情報を、前記処理単位毎に算出する第1のずれ量情報算出ステップと、
前記処理単位の入力オーディオデータが、前記処理単位の入力ビデオデータと同期するための、前記先行する処理単位のビデオデータの最終時刻情報に対する、前記処理単位の入力オーディオデータのずれ量を示す第２のずれ量情報を前記処理単位毎に算出する第２のずれ量情報算出ステップと、
前記第２のずれ量が前記第１のずれ量よりも大きい時に、前記処理単位毎に、無音を示す無音情報を前記先行するオーディオデータと前記入力オーディオデータとの間に挿入する無音データ挿入ステップと
を含むことを特徴とする情報処理方法。
【請求項４】
処理単位毎の入力ビデオデータと、処理単位の大きさが前記入力ビデオデータと異なる処理単位毎の入力オーディオデータを処理するプログラムであって、
前記処理単位毎の入力ビデオデータと、前記処理単位毎の入力オーディオデータから、前記入力ビデオデータの処理単位の最終時刻情報、及び、前記入力オーディオデータの処理単位の最終時刻情報を算出する最終時刻情報算出ステップと、
先行する処理単位に対して、前記処理単位の入力ビデオデータと前記処理単位の入力オーディオデータが直接繋がれた場合において、前記処理単位の入力ビデオデータと前記処理単位の入力オーディオデータが同期するための、前記処理単位の入力ビデオデータと前記処理単位の入力オーディオデータのずれ量を示す第1のずれ量情報を、前記処理単位毎に算出する第1のずれ量情報算出ステップと、
前記処理単位の入力オーディオデータが、前記処理単位の入力ビデオデータと同期するための、前記先行する処理単位のビデオデータの最終時刻情報に対する、前記処理単位の入力オーディオデータのずれ量を示す第２のずれ量情報を前記処理単位毎に算出する第２のずれ量情報算出ステップと、
前記第２のずれ量が前記第１のずれ量よりも大きい時に、前記処理単位毎に、無音を示す無音情報を前記先行するオーディオデータと前記入力オーディオデータとの間に挿入する無音データ挿入ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項５】
処理単位毎の入力ビデオデータと、処理単位の大きさが前記入力ビデオデータと異なる処理単位毎の入力オーディオデータを処理するプログラムであって、
前記処理単位毎の入力ビデオデータと、前記処理単位毎の入力オーディオデータから、前記入力ビデオデータの処理単位の最終時刻情報、及び、前記入力オーディオデータの処理単位の最終時刻情報を算出する最終時刻情報算出ステップと、
先行する処理単位に対して、前記処理単位の入力ビデオデータと前記処理単位の入力オーディオデータが直接繋がれた場合において、前記処理単位の入力ビデオデータと前記処理単位の入力オーディオデータが同期するための、前記処理単位の入力ビデオデータと前記処理単位の入力オーディオデータのずれ量を示す第1のずれ量情報を、前記処理単位毎に算出する第1のずれ量情報算出ステップと、
前記処理単位の入力オーディオデータが、前記処理単位の入力ビデオデータと同期するための、前記先行する処理単位のビデオデータの最終時刻情報に対する、前記処理単位の入力オーディオデータのずれ量を示す第２のずれ量情報を前記処理単位毎に算出する第２のずれ量情報算出ステップと、
前記第２のずれ量が前記第１のずれ量よりも大きい時に、前記処理単位毎に、無音を示す無音情報を前記先行するオーディオデータと前記入力オーディオデータとの間に挿入する無音データ挿入ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項６】
処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理する情報処理装置において、
前記オーディオデータと前記ビデオデータの処理単位毎の同期のずれ量を検出する検出手段と、
先行する処理単位に対して、前記処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をした場合に、前記オーディオデータと前記ビデオデータが同期するためのずれ量を示す第１のずれ量を、前記検出手段により検出された前記同期のずれ量に基づいて演算する第１のずれ量演算手段と、
前記第１のずれ量を含む、前記処理単位毎のヘッダを生成する第１の生成手段と、
前記オーディオデータと前記ビデオデータを含む前記処理単位のブロックを生成し、前記第１の生成手段により生成された前記ヘッダを付加する第２の生成手段と
を備えることを特徴とする情報処理装置。
【請求項７】
前記同期のずれ量が、前記ビデオデータの前記処理単位を構成する符号化単位の長さより長いか否かを判定する判定手段と、
前記判定手段により、前記同期のずれ量が、前記符号化単位の長さより長いと判定された場合、前記同期のずれ量から、前記符号化単位の長さに対応する分を減算することで前記同期のずれを補正する補正手段をさらに備え、
前記第１のずれ量演算手段は、前記補正手段により補正された前記ずれ量に基づいて、前記第１のずれ量を演算する
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記処理単位は、前記ビデオデータのグループオブピクチャであり、
前記符号化単位は、ビデオフレームである
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記第２の生成手段により前記ヘッダが付加された前記オーディオデータと前記ビデオデータを含む前記ブロックを出力する出力手段
をさらに備えることを特徴とする請求項６に記載の情報処理装置。
【請求項１０】
前記出力手段は、前記処理単位を記録媒体に供給し、記録させる
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
入力されたデータから、前記各ブロックの前記ヘッダに含まれる前記第１のずれ量を抽出する抽出手段と、
先行する処理単位に対して、前記オーディオデータと前記ビデオデータの前記処理単位を繋ぐ処理をした場合における、前記オーディオデータと前記ビデオデータの前記処理単位の同期のずれ量に対応する第２のずれ量を、前記ブロック毎に演算する第２のずれ量演算手段と、
前記抽出手段により抽出された前記第１のずれ量と、前記第２のずれ量演算手段により演算された前記第２のずれ量に基づいて、前記処理単位毎にずれ量を補正するずれ量補正手段と
をさらに備えることを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記第２のずれ量演算手段は、前記処理単位毎に演算される前記先行する処理単位のタイムスタンプと、前記処理単位の長さに基づいて、
前記第２のずれ量を演算する
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記第２のずれ量演算手段は、前記先行する処理単位のオーディオデータのプレゼンテーションタイムスタンプに、前記処理単位のオーディオデータの長さを加算した値と、前記先行する処理単位のビデオデータのデコーディングタイムスタンプに、前記処理単位のビデオデータの長さを加算した値との差に基づいて、前記第２のずれ量を演算する
ことを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記第１のずれ量が、前記第２のずれ量より大きいか否かを判断する判断手段と、
前記判断手段により、前記第１のずれ量が、前記第２のずれ量より大きいと判断された場合、前記先行する処理単位の前記オーディオデータに、１つの符号化単位の無音のデータを挿入する挿入手段と
をさらに備えることを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記第２のずれ量が、前記第１のずれ量より大きく、かつ、前記第２のずれ量と前記第１のずれ量の差が、前記オーディオデータの１符号化単位以上であるか否かを判断する判断手段と、
前記判断手段により、前記第２のずれ量が、前記第１のずれ量より大きく、かつ、その差が前記オーディオデータの１符号化単位以上であると判断された場合、前記第２のずれ量と、前記第１のずれ量の差が、前記オーディオデータの１符号化単位より小さくなるように、前記先行する処理単位の前記オーディオデータを、前記オーディオデータの前記処理単位を構成する符号化単位で削除する削除手段と
をさらに備えることを特徴とする請求項１３に記載の情報処理装置。
【請求項１６】
前記オーディオデータのチャンネル数が、扱える前記チャンネル数の最大値よりも少ないか否かを判断する判断手段をさらに備え、
前記出力手段は、前記判断手段により、前記オーディオデータのチャンネル数が、前記最大値よりも少ないと判断された場合、前記チャンネル数が、前記最大値と等しくなるようにチャンネル数を増加し、増加した前記チャンネルに対して無音のデータを付加して出力する
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１７】
処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理する情報処理装置の情報処理方法において、
前記オーディオデータと前記ビデオデータの処理単位毎の同期のずれ量を検出する検出ステップと、
先行する処理単位に対して、前記処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をした場合に、前記オーディオデータと前記ビデオデータが同期するためのずれ量を示す第１のずれ量を、前記検出ステップの処理により検出された前記同期のずれ量に基づいて演算する第１のずれ量演算ステップと、
前記第１のずれ量を含む、前記処理単位毎のヘッダを生成する第１の生成ステップと、
前記オーディオデータと前記ビデオデータを含む前記処理単位のブロックを生成し、前記第１の生成ステップの処理により生成された前記ヘッダを付加する第２の生成ステップと
を含むことを特徴とする情報処理方法。
【請求項１８】
処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、
前記オーディオデータと前記ビデオデータの処理単位毎の同期のずれ量を検出する検出ステップと、
先行する処理単位に対して、前記処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をした場合に、前記オーディオデータと前記ビデオデータが同期するためのずれ量を示す第１のずれ量を、前記検出ステップの処理により検出された前記同期のずれ量に基づいて演算する第１のずれ量演算ステップと、
前記第１のずれ量を含む、前記処理単位毎のヘッダを生成する第１の生成ステップと、
前記オーディオデータと前記ビデオデータを含む前記処理単位のブロックを生成し、前記第１の生成ステップの処理により生成された前記ヘッダを付加する第２の生成ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１９】
処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、
前記オーディオデータと前記ビデオデータの処理単位毎の同期のずれ量を検出する検出ステップと、
先行する処理単位に対して、前記処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をした場合に、前記オーディオデータと前記ビデオデータが同期するためのずれ量を示す第１のずれ量を、前記検出ステップの処理により検出された前記同期のずれ量に基づいて演算する第１のずれ量演算ステップと、
前記第１のずれ量を含む、前記処理単位毎のヘッダを生成する第１の生成ステップと、
前記オーディオデータと前記ビデオデータを含む前記処理単位のブロックを生成し、前記第１の生成ステップの処理により生成された前記ヘッダを付加する第２の生成ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項２０】
処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理する情報処理装置において、
入力されたデータから、オーディオデータとビデオデータを含む前記処理単位の各ブロックを抽出し、前記各ブロックに含まれるヘッダから、先行する処理単位に対して、前記処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をした場合に、前記オーディオデータと前記ビデオデータが同期するためのずれ量に対応する第１のずれ量を抽出する抽出手段と、
先行する処理単位に対して、前記オーディオデータと前記ビデオデータの前記処理単位を繋ぐ処理をした場合における、前記オーディオデータと前記ビデオデータの前記処理単位の同期のずれ量に対応する第２のずれ量を、前記各ブロック毎に演算する演算手段と、
前記第１のずれ量と、前記第２のずれ量に基づいて、前記処理単位で繋ぐ処理を行う繋ぎ手段と
を備えることを特徴とする情報処理装置。
【請求項２１】
前記演算手段は、前記処理単位毎に演算される前記先行する処理単位のタイムスタンプと、前記処理単位の長さに基づいて、前記第２のずれ量を演算する
ことを特徴とする請求項２０に記載の情報処理装置。
【請求項２２】
前記演算手段は、前記先行する処理単位のオーディオデータのプレゼンテーションタイムスタンプに、前記処理単位のオーディオデータの長さを加算した値と、前記先行する処理単位のビデオデータのデコーディングタイムスタンプに、前記処理単位のビデオデータの長さを加算した値との差に基づいて、前記第２のずれ量を演算する
ことを特徴とする請求項２１に記載の情報処理装置。
【請求項２３】
前記第１のずれ量が、前記第２のずれ量より大きいか否かを判断する判断手段と、
前記判断手段により、前記第１のずれ量が、前記第２のずれ量より大きいと判断された場合、前記先行する処理単位の前記オーディオデータに、１つの符号化単位の無音のデータを挿入する挿入手段と
をさらに備えることを特徴とする請求項２２に記載の情報処理装置。
【請求項２４】
前記第２のずれ量が、前記第１のずれ量より大きく、かつ、前記第２のずれ量と前記第１のずれ量の差が、前記オーディオデータの１符号化単位以上であるか否かを判断する判断手段と、
前記判断手段により、前記第２のずれ量が、前記第１のずれ量より大きく、かつ、その差が前記オーディオデータの１符号化単位以上であると判断された場合、前記第２のずれ量と、前記第１のずれ量の差が、前記オーディオデータの１符号化単位より小さくなるように、前記先行する処理単位の前記オーディオデータを、前記オーディオデータの前記処理単位を構成する符号化単位で削除する削除手段と
をさらに備えることを特徴とする請求項２２に記載の情報処理装置。
【請求項２５】
前記オーディオデータのチャンネル数が、扱える前記チャンネル数の最大値よりも少ないか否かを判断する判断手段と、
前記判断手段により、前記オーディオデータのチャンネル数が、前記最大値よりも少ないと判断された場合、前記チャンネル数が、前記最大値と等しくなるようにチャンネル数を増加し、増加した前記チャンネルに対して無音のデータを付加して出力する出力手段と
をさらに備えることを特徴とする請求項２０に記載の情報処理装置。
【請求項２６】
処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理する情報処理装置の情報処理方法において、
入力されたデータから、オーディオデータとビデオデータを含む前記処理単位の各ブロックを抽出し、前記各ブロックに含まれるヘッダから、先行する処理単位に対して、前記処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をした場合に、前記オーディオデータと前記ビデオデータが同期するためのずれ量に対応する第１のずれ量を抽出する抽出ステップと、
先行する処理単位に対して、前記オーディオデータと前記ビデオデータの前記処理単位を繋ぐ処理をした場合における、前記オーディオデータと前記ビデオデータの前記処理単位の同期のずれ量に対応する第２のずれ量を、前記各ブロック毎に演算する演算ステップと、
前記第１のずれ量と、前記第２のずれ量に基づいて、前記処理単位で繋ぐ処理を行う繋ぎステップと
を含むことを特徴とする情報処理方法。
【請求項２７】
処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、
入力されたデータから、オーディオデータとビデオデータを含む前記処理単位の各ブロックを抽出し、前記各ブロックに含まれるヘッダから、先行する処理単位に対して、前記処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をした場合に、前記オーディオデータと前記ビデオデータが同期するためのずれ量に対応する第１のずれ量を抽出する抽出ステップと、
先行する処理単位に対して、前記オーディオデータと前記ビデオデータの前記処理単位を繋ぐ処理をした場合における、前記オーディオデータと前記ビデオデータの前記処理単位の同期のずれ量に対応する第２のずれ量を、前記各ブロック毎に演算する演算ステップと、
前記第１のずれ量と、前記第２のずれ量に基づいて、前記処理単位で繋ぐ処理を行う繋ぎステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項２８】
処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、
入力されたデータから、オーディオデータとビデオデータを含む前記処理単位の各ブロックを抽出し、前記各ブロックに含まれるヘッダから、先行する処理単位に対して、前記処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をした場合に、前記オーディオデータと前記ビデオデータが同期するためのずれ量に対応する第１のずれ量を抽出する抽出ステップと、
先行する処理単位に対して、前記オーディオデータと前記ビデオデータの前記処理単位を繋ぐ処理をした場合における、前記オーディオデータと前記ビデオデータの前記処理単位の同期のずれ量に対応する第２のずれ量を、前記各ブロック毎に演算する演算ステップと、
前記第１のずれ量と、前記第２のずれ量に基づいて、前記処理単位で繋ぐ処理を行う繋ぎステップと
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置に関し、特に、デジタル放送において、ストリームを結合する際に、ビデオストリームとオーディオストリームの処理単位の大きさの違いによって生じるずれの蓄積を抑制する際に用いて好適な情報処理装置に関する。
【背景技術】
【０００２】
デジタルで番組を放送するデジタル放送が普及しつつある。デジタル放送における番組は、１つ以上のプログラムにより構成され、各プログラムは、例えば、MPEG（Moving Picture Expert Group）２方式によるトランスポートストリームが用いられて送受信が行われる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、デジタル放送においては、時間帯により異なる番組が放送されるため、トランスポートストリームをエレメンタリストリームに変換した後、あるタイミングで、ある番組（プログラム）から次の番組（プログラム）へと切り換える必要がある。また、ある１つの番組内においても、本編（プログラム）に対してコマーシャル（プログラム）を挿入する必要がある場合などが存在する。この番組から番組への切り換え、あるいは、本編からコマーシャルへの切り換えなどのとき、それらの本編やコマーシャルに対応するエレメンタリストリームを繋ぎ合わせる（スプライスする）という処理が必要である。
【０００４】
エレメンタリストリームに多重化されているビデオストリームとオーディオストリームの符号化単位（それぞれ、ビデオフレームまたはオーディオフレーム）は、互いに異なる時間間隔とされている。図１は、プログラムを構成するビデオストリームとオーディオストリームの長さの違いについて説明する図である。図１に示されるように、ビデオストリームの１フレーム（ビデオフレーム）は、NTSC方式の場合、３３ｍｓであり、オーディオストリームの１フレーム（オーディオフレーム）は、２４ｍｓである。従って、ビデオストリームのビデオフレームとオーディオストリームのオーディオフレームは、プログラムの先頭で同期させたとしても、２番目以降のビデオフレームとオーディオフレームのタイミングは一致せず、時間的にずれ（ギャップ）が生じる。
【０００５】
符号化単位がフレームであるため、ある番組のプログラムの最後で、ビデオストリームの最後とオーディオストリームの最後に、無視できないずれが生じてしまう可能性が高い。すなわち、ビデオストリームのスプライスポイント（あるプログラムに対する異なるプログラムのビデオストリームの繋ぎ目）に、オーディオストリームのフレームの切れ目が丁度位置すること、すなわち、ビデオストリームとのずれが生じないといったことが起こる可能性は低い。
【０００６】
プログラムの最後のフレームにおいて、ビデオストリームとオーディオストリームが、図１に示されるように、時間的にずれている状態で、スプライシングを行うと、スプライシングにより生成されたプログラムは、ビデオフレームとオーディオフレームの同期がずれてしまうことになる。その結果、スプライシングを繰り返すと、そのずれ量は蓄積され、次第に大きくなってしまう。
【０００７】
また、スプライシングする２つのプログラム間で、オーディオのチャンネル数が異なる場合、その異なるチャンネル数のオーディオストリームがスプライシングされたエレメンタリストリームを変換して生成されたトランスポートストリームを処理するデコーダによっては、プログラムの繋ぎ目で、ストリームを先頭から正確に再生することができなくなってしまう時がある。
【０００８】
例えば、オーディオのチャンネル数が４チャンネルである１つ目のプログラムに対して、オーディオのチャンネル数が２チャンネルである２つ目のプログラムをスプライシングした場合、そのプログラムのトランスポートストリームを受信したデコーダは、スプライシングの位置以降、デコードしていたオーディオのあるチャンネルが存在しなくなったと判断し、ビデオストリームとオーディオストリームがそろってから処理を開始する為のリセットの処理を実行してしまう可能性がある。
【０００９】
さらに、オーディオのチャンネル数が２チャンネルである１つ目のプログラムに、オーディオのチャンネル数が４チャンネルである２つ目のプログラムをスプライシングした場合、そのプログラムのトランスポートストリームを受信したデコーダは、スプライシングされた位置以降、１つ目のプログラムでは存在しなかった４チャンネルのオーディオが存在する２つ目のプログラムについて、増加したオーディオチャンネルのオーディオを先頭から再生できない可能性があるといった課題があった。
【００１０】
本発明はこのような状況に鑑みてなされたものであり、スプライシング処理によりビデオフレームに対するオーディオフレームのずれが蓄積するのを抑制することを目的とする。また、オーディオデータを確実に再生できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の第１の情報処理装置は、処理単位毎の入力ビデオデータと、処理単位毎の入力オーディオデータから、入力ビデオデータの処理単位の最終時刻情報、及び、入力オーディオデータの処理単位の最終時刻情報を算出する最終時刻情報算出手段と、先行する処理単位に対して、処理単位の入力ビデオデータと処理単位の入力オーディオデータが直接繋がれた場合において、処理単位の入力ビデオデータと処理単位の入力オーディオデータが同期するための、処理単位の入力ビデオデータと処理単位の入力オーディオデータのずれ量を示す第1のずれ量情報を、処理単位毎に算出する第1のずれ量情報算出手段と、処理単位の入力オーディオデータが、前記処理単位の入力ビデオデータと同期するための、前記先行する処理単位のビデオデータの最終時刻情報に対する、前記処理単位の入力オーディオデータのずれ量を示す第２のずれ量情報を前記処理単位毎に算出する第２のずれ量情報算出手段と、第２のずれ量が第１のずれ量よりも大きい時に、処理単位毎に、無音を示す無音情報を先行するオーディオデータと入力オーディオデータとの間に挿入する無音データ挿入手段とを備えることを特徴とする。
【００１２】
前記第１のずれ量情報の値が、第２のずれ量の値より大きく、かつ、第１のずれ量情報の値と第２のずれ量の値の差が、オーディオデータの１符号化単位以上であるか否かを判断する判断手段と、判断手段により、第１のずれ量情報の値が、第２のずれ量の値より大きく、かつ、その差がオーディオデータの１符号化単位以上であると判断された場合、第１のずれ量情報の値と、第２のずれ量の値の差が、オーディオデータの１符号化単位より小さくなるように、先行する処理単位のオーディオデータを、オーディオデータの処理単位を構成する符号化単位で削除する削除手段とをさらに備えることができる。
【００１３】
本発明の第１の情報処理方法は、処理単位毎の入力ビデオデータと、処理単位毎の入力オーディオデータから、入力ビデオデータの処理単位の最終時刻情報、及び、入力オーディオデータの処理単位の最終時刻情報を算出する最終時刻情報算出ステップと、先行する処理単位に対して、処理単位の入力ビデオデータと処理単位の入力オーディオデータが直接繋がれた場合において、処理単位の入力ビデオデータと処理単位の入力オーディオデータが同期するための、処理単位の入力ビデオデータと処理単位の入力オーディオデータのずれ量を示す第1のずれ量情報を、処理単位毎に算出する第1のずれ量情報算出ステップと、処理単位の入力オーディオデータが、処理単位の入力ビデオデータと同期するための、先行する処理単位のビデオデータの最終時刻情報に対する、処理単位の入力オーディオデータのずれ量を示す第２のずれ量情報を処理単位毎に算出する第２のずれ量情報算出ステップと、第２のずれ量が第１のずれ量よりも大きい時に、処理単位毎に、無音を示す無音情報を先行するオーディオデータと入力オーディオデータとの間に挿入する無音データ挿入ステップとを含むことを特徴とする。
【００１４】
本発明の第１の記録媒体のプログラムは、処理単位毎の入力ビデオデータと、処理単位の大きさが入力ビデオデータと異なる処理単位毎の入力オーディオデータを処理するプログラムであって、処理単位毎の入力ビデオデータと、処理単位毎の入力オーディオデータから、入力ビデオデータの処理単位の最終時刻情報、及び、入力オーディオデータの処理単位の最終時刻情報を算出する最終時刻情報算出ステップと、先行する処理単位に対して、処理単位の入力ビデオデータと処理単位の入力オーディオデータが直接繋がれた場合において、処理単位の入力ビデオデータと処理単位の入力オーディオデータが同期するための、処理単位の入力ビデオデータと処理単位の入力オーディオデータのずれ量を示す第1のずれ量情報を、処理単位毎に算出する第1のずれ量情報算出ステップと、処理単位の入力オーディオデータが、処理単位の入力ビデオデータと同期するための、先行する処理単位のビデオデータの最終時刻情報に対する、処理単位の入力オーディオデータのずれ量を示す第２のずれ量情報を処理単位毎に算出する第２のずれ量情報算出ステップと、第２のずれ量が第１のずれ量よりも大きい時に、処理単位毎に、無音を示す無音情報を先行するオーディオデータと入力オーディオデータとの間に挿入する無音データ挿入ステップとを含むことを特徴とする。
【００１５】
本発明の第１のプログラムは、処理単位毎の入力ビデオデータと、処理単位の大きさが前記入力ビデオデータと異なる処理単位毎の入力オーディオデータを処理するプログラムであって、処理単位毎の入力ビデオデータと、処理単位毎の入力オーディオデータから、入力ビデオデータの処理単位の最終時刻情報、及び、入力オーディオデータの処理単位の最終時刻情報を算出する最終時刻情報算出ステップと、先行する処理単位に対して、処理単位の入力ビデオデータと処理単位の入力オーディオデータが直接繋がれた場合において、処理単位の入力ビデオデータと処理単位の入力オーディオデータが同期するための、処理単位の入力ビデオデータと処理単位の入力オーディオデータのずれ量を示す第1のずれ量情報を、処理単位毎に算出する第1のずれ量情報算出ステップと、処理単位の入力オーディオデータが、処理単位の入力ビデオデータと同期するための、先行する処理単位のビデオデータの最終時刻情報に対する、処理単位の入力オーディオデータのずれ量を示す第２のずれ量情報を処理単位毎に算出する第２のずれ量情報算出ステップと、第２のずれ量が第１のずれ量よりも大きい時に、処理単位毎に、無音を示す無音情報を先行するオーディオデータと入力オーディオデータとの間に挿入する無音データ挿入ステップとをコンピュータに実行させることを特徴とする。
【００１６】
本発明の第２の情報処理装置は、オーディオデータとビデオデータの処理単位毎の同期のずれ量を検出する検出手段と、先行する処理単位に対して、処理単位のオーディオデータとビデオデータを繋ぐ処理をした場合に、オーディオデータとビデオデータが同期するためのずれ量を示す第１のずれ量を、検出手段により検出された同期のずれ量に基づいて演算する第１のずれ量演算手段と、第１のずれ量を含む、処理単位毎のヘッダを生成する第１の生成手段と、オーディオデータとビデオデータを含む処理単位のブロックを生成し、第１の生成手段により生成されたヘッダを付加する第２の生成手段とを備えることを特徴とする。
【００１７】
前記同期のずれ量が、ビデオデータの処理単位を構成する符号化単位の長さより長いか否かを判定する判定手段と、判定手段により、同期のずれ量が、符号化単位の長さより長いと判定された場合、同期のずれ量から、符号化単位の長さに対応する分を減算することで同期のずれを補正する補正手段をさらに備え、第１のずれ量演算手段は、補正手段により補正されたずれ量に基づいて、第１のずれ量を演算することができる。
【００１８】
前記処理単位は、ビデオデータのグループオブピクチャであり、符号化単位は、ビデオフレームであるようにすることができる。
【００１９】
前記第２の生成手段によりヘッダが付加されたオーディオデータとビデオデータを含むブロックを出力する出力手段をさらに備えることができる。
【００２０】
前記出力手段は、処理単位を記録媒体に供給し、記録させるようにすることができる。
【００２１】
入力されたデータから、各ブロックのヘッダに含まれる第１のずれ量を抽出する抽出手段と、先行する処理単位に対して、オーディオデータとビデオデータの処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位の同期のずれ量に対応する第２のずれ量を、ブロック毎に演算する第２のずれ量演算手段と、抽出手段により抽出された第１のずれ量と、第２のずれ量演算手段により演算された第２のずれ量に基づいて、処理単位毎にずれ量を補正するずれ量補正手段とをさらに備えることができる。
【００２２】
前記第２のずれ量演算手段は、処理単位毎に演算される先行する処理単位のタイムスタンプと、処理単位の長さに基づいて、第２のずれ量を演算することができる。
【００２３】
前記第２のずれ量演算手段は、先行する処理単位のオーディオデータのプレゼンテーションタイムスタンプに、処理単位のオーディオデータの長さを加算した値と、先行する処理単位のビデオデータのデコーディングタイムスタンプに、処理単位のビデオデータの長さを加算した値との差に基づいて、第２のずれ量を演算することができる。
【００２４】
前記第１のずれ量が、第２のずれ量より大きいか否かを判断する判断手段と、判断手段により、第１のずれ量が、第２のずれ量より大きいと判断された場合、先行する処理単位のオーディオデータに、１つの符号化単位の無音のデータを挿入する挿入手段とをさらに備えることができる。
【００２５】
前記第２のずれ量が、第１のずれ量より大きく、かつ、第２のずれ量と第１のずれ量の差が、オーディオデータの１符号化単位以上であるか否かを判断する判断手段と、判断手段により、第２のずれ量が、第１のずれ量より大きく、かつ、その差がオーディオデータの１符号化単位以上であると判断された場合、第２のずれ量と、第１のずれ量の差が、オーディオデータの１符号化単位より小さくなるように、先行する処理単位のオーディオデータを、オーディオデータの処理単位を構成する符号化単位で削除する削除手段とをさらに備えることができる。
【００２６】
前記オーディオデータのチャンネル数が、扱えるチャンネル数の最大値よりも少ないか否かを判断する判断手段をさらに備え、出力手段は、判断手段により、オーディオデータのチャンネル数が、最大値よりも少ないと判断された場合、チャンネル数が、最大値と等しくなるようにチャンネル数を増加し、増加したチャンネルに対して無音のデータを付加して出力することができる。
【００２７】
本発明の第２の情報処理方法は、オーディオデータとビデオデータの処理単位毎の同期のずれ量を検出する検出ステップと、先行する処理単位に対して、処理単位のオーディオデータとビデオデータを繋ぐ処理をした場合に、オーディオデータとビデオデータが同期するためのずれ量を示す第１のずれ量を、検出ステップの処理により検出された同期のずれ量に基づいて演算する第１のずれ量演算ステップと、第１のずれ量を含む、処理単位毎のヘッダを生成する第１の生成ステップと、オーディオデータとビデオデータを含む処理単位のブロックを生成し、第１の生成ステップの処理により生成されたヘッダを付加する第２の生成ステップとを含むことを特徴とする。
【００２８】
本発明の第２の記録媒体のプログラムは、処理単位毎のビデオデータと、処理単位の大きさがビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、オーディオデータとビデオデータの処理単位毎の同期のずれ量を検出する検出ステップと、先行する処理単位に対して、処理単位のオーディオデータとビデオデータを繋ぐ処理をした場合に、オーディオデータとビデオデータが同期するためのずれ量を示す第１のずれ量を、検出ステップの処理により検出された同期のずれ量に基づいて演算する第１のずれ量演算ステップと、第１のずれ量を含む、処理単位毎のヘッダを生成する第１の生成ステップと、オーディオデータとビデオデータを含む処理単位のブロックを生成し、第１の生成ステップの処理により生成されたヘッダを付加する第２の生成ステップとを含むことを特徴とする。
【００２９】
本発明の第２のプログラムは、処理単位毎のビデオデータと、処理単位の大きさがビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、オーディオデータとビデオデータの処理単位毎の同期のずれ量を検出する検出ステップと、先行する処理単位に対して、処理単位のオーディオデータとビデオデータを繋ぐ処理をした場合に、オーディオデータとビデオデータが同期するためのずれ量を示す第１のずれ量を、検出ステップの処理により検出された同期のずれ量に基づいて演算する第１のずれ量演算ステップと、第１のずれ量を含む、処理単位毎のヘッダを生成する第１の生成ステップと、オーディオデータとビデオデータを含む処理単位のブロックを生成し、第１の生成ステップの処理により生成されたヘッダを付加する第２の生成ステップとをコンピュータに実行させることを特徴とする。
【００３０】
本発明の第３の情報処理装置は、入力されたデータから、オーディオデータとビデオデータを含む処理単位の各ブロックを抽出し、各ブロックに含まれるヘッダから、先行する処理単位に対して、処理単位のオーディオデータとビデオデータを繋ぐ処理をした場合に、オーディオデータとビデオデータが同期するためのずれ量に対応する第１のずれ量を抽出する抽出手段と、先行する処理単位に対して、オーディオデータとビデオデータの処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位の同期のずれ量に対応する第２のずれ量を、各ブロック毎に演算する演算手段と、第１のずれ量と、第２のずれ量に基づいて、処理単位で繋ぐ処理を行う繋ぎ手段とを備えることを特徴とする。
【００３１】
前記演算手段は、処理単位毎に演算される先行する処理単位のタイムスタンプと、処理単位の長さに基づいて、第２のずれ量を演算することができる。
【００３２】
前記演算手段は、先行する処理単位のオーディオデータのプレゼンテーションタイムスタンプに、処理単位のオーディオデータの長さを加算した値と、先行する処理単位のビデオデータのデコーディングタイムスタンプに、処理単位のビデオデータの長さを加算した値との差に基づいて、第２のずれ量を演算することができる。
【００３３】
前記第１のずれ量が、第２のずれ量より大きいか否かを判断する判断手段と、判断手段により、第１のずれ量が、第２のずれ量より大きいと判断された場合、先行する処理単位のオーディオデータに、１つの符号化単位の無音のデータを挿入する挿入手段とをさらに備えることができる。
【００３４】
前記第２のずれ量が、第１のずれ量より大きく、かつ、第２のずれ量と第１のずれ量の差が、オーディオデータの１符号化単位以上であるか否かを判断する判断手段と、判断手段により、第２のずれ量が、第１のずれ量より大きく、かつ、その差がオーディオデータの１符号化単位以上であると判断された場合、第２のずれ量と、第１のずれ量の差が、オーディオデータの１符号化単位より小さくなるように、先行する処理単位のオーディオデータを、オーディオデータの処理単位を構成する符号化単位で削除する削除手段とをさらに備えることができる。
【００３５】
前記オーディオデータのチャンネル数が、扱えるチャンネル数の最大値よりも少ないか否かを判断する判断手段と、判断手段により、オーディオデータのチャンネル数が、最大値よりも少ないと判断された場合、チャンネル数が、最大値と等しくなるようにチャンネル数を増加し、増加したチャンネルに対して無音のデータを付加して出力する出力手段とをさらに備えることができる。
【００３６】
本発明の第３の情報処理方法は、入力されたデータから、オーディオデータとビデオデータを含む処理単位の各ブロックを抽出し、各ブロックに含まれるヘッダから、先行する処理単位に対して、処理単位のオーディオデータとビデオデータを繋ぐ処理をした場合に、オーディオデータとビデオデータが同期するためのずれ量に対応する第１のずれ量を抽出する抽出ステップと、先行する処理単位に対して、オーディオデータとビデオデータの処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位の同期のずれ量に対応する第２のずれ量を、各ブロック毎に演算する演算ステップと、第１のずれ量と、第２のずれ量に基づいて、処理単位で繋ぐ処理を行う繋ぎステップとを含むことを特徴とする。
【００３７】
本発明の第３の記録媒体のプログラムは、処理単位毎のビデオデータと、処理単位の大きさがビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、入力されたデータから、オーディオデータとビデオデータを含む処理単位の各ブロックを抽出し、各ブロックに含まれるヘッダから、先行する処理単位に対して、処理単位のオーディオデータとビデオデータを繋ぐ処理をした場合に、オーディオデータとビデオデータが同期するためのずれ量に対応する第１のずれ量を抽出する抽出ステップと、先行する処理単位に対して、オーディオデータとビデオデータの処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位の同期のずれ量に対応する第２のずれ量を、各ブロック毎に演算する演算ステップと、第１のずれ量と、第２のずれ量に基づいて、処理単位で繋ぐ処理を行う繋ぎステップとを含むことを特徴とする。
【００３８】
本発明の第３のプログラムは、処理単位毎のビデオデータと、処理単位の大きさがビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、入力されたデータから、オーディオデータとビデオデータを含む処理単位の各ブロックを抽出し、各ブロックに含まれるヘッダから、先行する処理単位に対して、処理単位のオーディオデータとビデオデータを繋ぐ処理をした場合に、オーディオデータとビデオデータが同期するためのずれ量に対応する第１のずれ量を抽出する抽出ステップと、先行する処理単位に対して、オーディオデータとビデオデータの処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位の同期のずれ量に対応する第２のずれ量を、各ブロック毎に演算する演算ステップと、第１のずれ量と、第２のずれ量に基づいて、処理単位で繋ぐ処理を行う繋ぎステップとをコンピュータに実行させることを特徴とする。
【００３９】
第１の本発明においては、第１のずれ量情報と第２のずれ量情報が算出される。第２のずれ量が第１のずれ量より大きいとき、先行するオーディオデータと入力オーディオデータとの間に、無音情報が挿入される。
【００４０】
第２の本発明においては、オーディオデータとビデオデータの処理単位毎の同期のずれ量に対応する第１のずれ量が演算され、演算された第１のずれ量を含む、処理単位毎のヘッダが生成され、生成されたヘッダが、オーディオデータとビデオデータを含むブロックに付加される。
【００４１】
第３の本発明においては、ヘッダから、オーディオデータとビデオデータの処理単位毎の同期のずれ量に対応する第１のずれ量が抽出され、第１の処理単位に対して、第２の処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位毎の同期のずれ量を表す第２のずれ量が演算され、第１のずれ量と第２のずれ量に基づいて、繋ぐ処理が行われる。
【発明の効果】
【００４２】
第１の本発明によれば、オーディオデータをビデオデータに同期させることが可能となる。特に、オーディオデータとビデオデータを、先行するオーディオデータとビデオデータの関係に関わらず、確実に、繋ぎ、同期させることが可能となる。また、同期ずれのずれ量が、視聴者に違和感を感じさせる程度以上に蓄積するのを抑制することができる。
【００４３】
第２の本発明によれば、オーディオデータをビデオデータに同期させるための第１のずれ量を提供することが可能となる。特に、繋ぎ処理時に、複雑な計算をせずとも、簡単且つ確実に、ビデオデータとオーディオデータを、先行するビデオデータとオーディオデータの同期関係に関わらず、繋ぎ、同期させることが可能となる。
【００４４】
第３の本発明によれば、オーディオデータとビデオデータを同期させることが可能となる。特に、オーディオデータとビデオデータを、先行するオーディオデータとビデオデータの関係に関わらず、確実に、繋ぎ、同期させることが可能となる。また、記録媒体から読み出されたオーディオデータとビデオデータを、簡単且つ確実に、同期させることが可能となる。
【発明を実施するための最良の形態】
【００４５】
以下に、本発明の実施の形態について図面を参照して説明する。図２は、本発明を適用したビデオサーバ１の一実施の形態の構成を示す図である。ビデオサーバ１は、例えば、異なる番組のプログラムを繋ぎ合わせたり、放送される番組中にコマーシャルを挿入する際などに用いられる装置である。
【００４６】
ビデオサーバ１には、エンコーダ２とデコーダ３が接続されている。エンコーダ２により、例えば、MPEG２等の符号化方式によりエンコードされたビデオデータやオーディオデータは、トランスポートストリームの形式で、DVB-ASI（Digital Video Broadcasting-Asynchronous Serial Interface）ボード４に入力される。DVB-ASIボード４は、DVB-ASIインタフェース１０、スプライシングIC（Integrated Circuit）１１、PCI（Peripheral Component Interconnect）インタフェース１２、CPU（Central Processing Unit）１３、および、スイッチ１４から構成されている。
【００４７】
DVB-ASIインタフェース１０は、エンコーダ２とスプライシングIC１１との間のインタフェース処理、並びに、スプライシングIC１１とデコーダ３との間のインタフェース処理を実行する。スプライシングIC１１は、プログラムを、GOP（Group Of Picture）を処理単位として繋ぎ合わせる処理（スプライシング処理）を行い、その際、ビデオストリームとオーディオストリームに、無視できないずれが発生しないような処理（詳細は後述する）を行う。
【００４８】
PCIインタフェース１２は、ビデオサーバ１におけるバス５を介する他の部分、例えば、HDD（Hard Disk Drive）６とのデータの通信を制御する。CPU１３は、DVB-ASIボード４の制御を行う。HDD６に記憶されているプログラムは、必要に応じて読み出され、DVB-ASIボード４により処理され、デコーダ３に供給され、デコードされ、後段に接続されている装置（不図示）に出力される。スイッチ１４は、CPU１３により制御され、スプライシングIC１１の出力をPCIインタフェース１２に出力するとき（記録モード時）、接点R側に切り替えられ、PCIインタフェース１２の出力をDVB-ASIインタフェース１０に供給するとき（再生モード時）、接点P側に切り替えられる。
【００４９】
ビデオサーバ１におけるバス５には、SDI（Serial Digital Interface）エンコードボード７も接続されている。SDIエンコードボード７は、シリアルデータを入力するインタフェースを備え、入力されたデータをデコードするSDIデコーダ２１、SDIデコーダ２１から出力されたビデオデータをエンコードするビデオエンコーダ２２、SDIデコーダ２１から出力されたオーディオデータをエンコードするオーディオエンコーダ２３、それらのエンコーダから出力されたデータをHDD６に供給するための制御を行うPCIインタフェース２４、SDIエンコードボード７の各部を制御するCPU２５、および、これらの各部を相互に接続するバス２６から構成されている。
【００５０】
図３は、スプライシングIC１１の内部の構成を示す図である。バッファ４１は、DVB-ASIインタフェース１０を介して入力されるエンコーダ２またはPCIインタフェース１２からのデータを一旦記憶し、その記憶したデータをBAC（Bus Arbitration Control Module）４２に出力する。BAC４２は、SDRAM（Synchronous Dynamic Random Access Memory）４３とのデータの通信を制御する。SDRAM４３に記憶されたデータは、パケット生成部４４にBAC４２を介して供給される。
【００５１】
パケット生成部４４によりローカルフォーマット化されたデータは、BAC４２を介してバッファ４６に供給される。バッファ４６に供給されたデータは、必要に応じて、スイッチ１４とPCIインタフェース１２を介して、HDD６に供給されるか（記録モード時）、または、DVB-ASIインタフェース１０を介してデコーダ３に供給される（再生モード時）。
【００５２】
このような構成を有するビデオサーバ１の動作について説明する前に、以下の説明において必要となるMPEG２のエレメンタリストリームについて説明する。図４は、MPEG２のエレメンタリストリームにおけるデータの階層構造を示している。データは、GOP（Group Of Picture）が符号化の単位とされ、各GOPの先頭には、シーケンスヘッダが配置されている。１GOPは、Ｎ個（Ｎは正の整数であり、通常、Ｎ＝１５とされる）のビデオフレームで構成される。１ビデオフレームは、NTSC方式の場合、３３msの長さとなる。
【００５３】
１GOPのビデオデータの中に、少なくとも１フレームは、前後のフレームに依存されずに再生できるフレーム（Ｉピクチャ）を含む必要がある。１GOP中の再生は、このＩピクチャを基にして行われる。そして、再生は、１GOPが最小単位となる。スプライシング処理は、GOPを処理単位として実行される。従って、スプライシングするプログラムの長さも、１GOPを単位とし、その整数倍となる。
【００５４】
また、オーディオデータについては、１GOPのビデオデータに同期するオーディオデータが１GOPとして扱われる。オーディオデータも、２４msの長さのフレーム（オーディオフレーム）が単位とされ、１GOPのオーディオフレーム数は、Ｍ個とされる（Ｍは整数であり、通常Ｍ＝２１とされる）。
【００５５】
図５と図６は、ビデオフレームとオーディオフレームの同期ずれに関して説明する図である。図５に示されるように、オーディオデータがビデオデータと同期して出力される為に、GOPの先頭において、オーディオフレームがビデオフレームに対して有している必要があるずれ量を、PTS_FSとする。ここで、同期とは、１つのGOPのオーディオデータが、対応するGOPのビデオデータと同時に出力されることを意味する。なお、図５には、１GOP分の１５個のビデオフレーム（Video1,Video2,・・・Video15）と、１GOP分の２１個のオーディオフレーム（AAU1,AAU2,・・・AAU21）が示されている。点ＰVSは１GOP分のビデオデータの先頭の位置（ビデオフレームVideo1の先頭の位置）を表し、点ＰASは１GOP分のオーディオデータの先頭の位置（オーディオフレームAAU1の先頭の位置）を表している。従って、点ＰASと点ＰVSの時間軸上の差（点ＰASの時刻から点ＰVSの時刻を減算し得られる位相差）が、そのGOPにおけるオーディオフレームとビデオフレームのずれ量となる。
【００５６】
PTS_FSは、先頭のオーディオフレームの先頭の位置の時刻から、先頭のビデオフレームの先頭の位置の時刻を減算して求められるずれ量のうちの本来のずれ量、すなわち、そのずれ量が存在することにより、ビデオデータとオーディオデータが同期して再生されるずれ量である。換言すれば、GOPの先頭において、オーディオフレームがビデオフレームに対してPTS_FSだけずれている場合、オーディオデータはビデオデータと同期して再生され、ずれ量が、PTS_FSではない場合、オーディオデータはビデオデータと同期して再生されない。
【００５７】
図１を参照して説明したように、オーディオフレームとビデオフレームはその長さがお互いに異なっているため、プログラムの先頭でビデオデータとオーディオデータの同期（以下、適宜、AV同期と記述する）がとられていたとしても（オーディオデータがビデオデータと同時に出力されるようにタイミングが調整されていたとしても）、プログラムの最後で、ビデオデータとオーディオデータの間に、ずれが存在する可能性がある。そのようなビデオデータとオーディオデータのずれを含むプログラム（以下、第１のプログラムと称する）の後に、別のプログラム（以下、第２のプログラムと称する）をスプライシングした場合、そのずれが第２のプログラムに影響する。
【００５８】
本発明においては、ビデオデータとオーディオデータを、それぞれ、GOP単位で順次繋ぐ処理が繰り返し行われ、ビデオデータとオーディオデータが連続的に出力されるが、このとき、次に処理されるGOPが、先行するGOPと同一のプログラムのものであるのか否かは判定されず、次に処理されるGOPが、先行するGOPと同一のプログラムのGOPであっても、異なるプログラムのGOPであっても、全く同様に処理される。
【００５９】
次に処理されるGOPが、先行するGOPと同一のプログラムのGOPである場合、一般的には、オーディオフレームは、ビデオフレームと同期するように、すなわち、ずれがPTS_FSとなるように調整されている。しかしながら、次に処理されるGOPが、先行するGOPと異なるプログラムのGOPである場合、一般的には、図６に示されるように、オーディオフレームはビデオフレームと同期しなくなる。
【００６０】
本発明では、図６に示されるように、先行するGOPに対して次のGOPを、そのままスプライシングした場合（ビデオデータに対するオーディオデータのずれ量を変更、調整することなくスプライシングした場合）における、ビデオデータの次のGOP８２と、オーディオデータの次のGOP９２に発生するずれ量を、PTS_FS_SPLYCEとする。
【００６１】
なお、図６において、ハッチングを施さずに示されているビデオフレームVideo1(P1)乃至Video15(P1)は、先行するGOP８１のビデオフレーム（スプライシングされるGOPのビデオフレーム）を表しており、ハッチングを施して示されているビデオフレームVideo1(P2)乃至Video15(P2)は、次のGOP８２のビデオフレーム（スプライシングするGOPのビデオフレーム）を表している。
【００６２】
また、ハッチングを施さずに示されているオーディオフレームAAU1(P1)乃至AAU21(P1)は、先行するGOP９１のオーディオフレーム（スプライシングされるGOPのオーディオフレーム）を表しており、ハッチングを施して示されているオーディオフレームAAU1(P2)乃至AAU21(P2)は、次のGOP９２のオーディオフレーム（スプライシングするGOPのオーディオフレーム）を表している。
【００６３】
さらに、図６に示されるように、先行するGOPに対して次のGOPを、そのままスプライシングした場合における次のGOP８２の最後のビデオフレームVideo15(P2)の最後部の位置を、PTS_VIDEO_LASTとし、次のGOP９２の最後のオーディオフレームの最後部の位置を、PTS_AUDIO_LASTとする。次のGOP９２のオーディオフレームの、次のGOP８２のビデオフレームに対するずれ量がPTS_FSである場合、即ち、第１のプログラムと第２のプログラムが同期している場合（GOP９２のオーディオフレームがGOP８２のビデオフレームに同期している場合）、におけるPTS_AUDIO_LASTは、PTS_FS_ORGとなる。
【００６４】
ずれ量PTS_FSとずれ量PTS_FS_SPLYCEは、GOP毎に変化する。図６のずれ量は、第１のプログラムの最後のGOP８１，GOP９１を基準とするものであるので、ずれ量PTS_FSとずれ量PTS_FS_SPLYCEは、それぞれ、ずれ量PTS_FS(P1)またはずれ量PTS_FS_SPLYCE(P1)として示されている。ここで、PTS_FS(P1)は、GOP８１のビデオフレームのデータとGOP９１のオーディオフレームのデータが、VIDEO/AUDIOデータ６４として含まれるGOPのAudio_Header６３（後述する図７）に格納される。
【００６５】
スプライシングIC１１のCPU４５は、エンコーダ２より入力されたデータをHDD６に記憶するとき、データをローカルフォーマットのデータに変換する。このローカルフォーマットにおいては、データは、図７に示されるように、１GOP単位でブロック化されて記録される（記録処理の詳細は、図８のフローチャートを参照して後述する）。各ブロックには、デコードに必要な情報を含むローカルヘッダが付加される。図７に示されるように、１GOPのデータは、ローカルヘッダ６０と、VIDEO/AUDIOデータ６４から構成される。ローカルヘッダ６０は、System_Header６１、Video_Header６２、およびAudio_Header６３により構成されている。
【００６６】
System_Header６１には、Video_Header６２、Audio_Header６３、およびVIDEO/AUDIOデータ６４の、このブロックにおける位置を表す位置情報や、このRecording Unitの再生時間といった情報が含まれる。
【００６７】
Video_Header６２には、その1GOP分のビデオフレームのPTS(Presentation Time Stamp)を表す情報（Video_ PTS）、DTS（Decording Time Stamp）（Video_ DTS）を表す情報、各種のVideoエンコードに関わるパラメータなどの情報が含まれる。なお、PTSとDTSとしては、記録時に、先頭のビデオフレームを初期値０とするSTC(System Time Clock)をカウントした値が格納される。Audio_Header６３には、その1GOP分のオーディオフレームのAudio_PTSを表す情報、PTS_FSを表す情報、各種のAudioのエンコードに関わるパラメータ（例えば、サンプリング周波数、チャンネル数）に関する情報などが含まれる。なお、オーディオデータの場合、プレゼンテーションタイムスタンプは、デコーディングタイムスタンプと等しいので、Audio_PTSは、Audio_DTSでもある。なお、このAudio_PTSとしては、記録時に、先頭のオーディオフレームを初期値０とするSTCをカウントした値が格納される。
【００６８】
VIDEO/AUDIOデータ６４には、実際にエンコードされたビデオデータとオーディオデータが含まれる。
【００６９】
次に、図８のフローチャートを参照してエンコーダ２によりエンコードされたデータをＨＤＤ６に記録する場合のスプライシングIC１１の動作について説明する。
【００７０】
ステップＳ１において、スプライシングIC１１のCPU４５は、トランスポートストリームを取り込む処理を実行する。すなわち、エンコーダ２は、例えば、MPEG２方式で、エンコードしたビデオデータとオーディオデータを含むトランスポートストリームを、DVB-ASIボード４に出力する。DVB-ASIボード４のDVB-ASIインタフェース１０は、エンコーダ２より入力されたトランスポートストリームをスプライシングIC１１に供給する。スプライシングIC１１は、このトランスポートストリームを取り込む。
【００７１】
スプライシングIC１１のバッファ４１は、DVB-ASIインタフェース１０を介してエンコーダ２より供給されたデータを一時的に蓄積した後、BAC４２に供給する。BAC４２は、このデータをSDRAM４３に供給し、記憶させる。CPU４５は、SDRAM４３に記述されたデータを読み込み、トランスポートストリームをエレメンタリストリームに変換する。
【００７２】
次に、ステップＳ２において、CPU４５は、ステップＳ１の処理で変換されたエレメンタリストリームのGOPのタイムスタンプAudio_PTSとVideo_DTSを演算する。具体的には、CPU４５は、ビデオストリームの先頭のビデオフレームからGOPの数を計数し、最初のGOPの先頭のビデオフレームの先頭の位置を初期値０として、STC(System Time Clock)をカウントして得られた値をタイムスタンプVideo_DTSに設定する。従って、最初のGOPの処理の時、このタイムスタンプVideo_DTSの値は、０となる。
【００７３】
同様に、CPU４５は、オーディオストリームの先頭のオーディオフレームからGOPの数を計数し、最初のGOPの先頭のオーディオフレームの先頭の位置を初期値０として、STCをカウントして得られた値をタイムスタンプAudio_PTSに設定する。従って、最初のGOPの処理の時、このタイムスタンプAudio_PTSは、０となる。
【００７４】
次に、ステップＳ３において、CPU４５は、ステップＳ２の処理で演算したタイムスタンプに基づいて、オーディオデータのビデオデータに対するずれ量ａを次式に基づいて演算する。
【００７５】
ａ＝Audio_PTS−Video_DTS・・・（１）
【００７６】
処理対象とされているGOPのずれ量ａがステップＳ３の処理で演算された後、ステップＳ４において、CPU４５は、ステップＳ３の処理で演算して求めたずれ量ａが、１ビデオフレーム（符号化単位）の長さより長いか否かを判定する。１ビデオフレームの長さは、９０kHzの周波数のSTC(System Time Clock)のカウント値で、３００３（＝９００００／２９．９７）とされる。ステップＳ３で求めたずれ量が１ビデオフレームの長さ（３００３）より長い場合には、ステップＳ５に進み、CPU４５は、ステップＳ３の処理で求めたずれ量ａから、１ビデオフレーム分の長さを次式に基づいて演算することで、ずれ量ａを補正する。
【００７７】
ａ＝a−３００３・・・（２）
【００７８】
このようにして、オーディオフレームから見て、同期をとるためのビデオフレームが探索される。すなわち、オーディオフレームから見て、１ビデオフレーム以上離れているビデオフレームは、同期をとる対象のビデオフレームではないものとするために（離れている距離が１ビデオフレーム未満であるビデーフレームを同期対象のビデオフレームとするために）、ずれ量ａが補正される。
【００７９】
ステップＳ４において、ステップＳ３の処理で求めたずれ量ａが、１ビデオフレームの長さより長くないと判定された場合、ステップＳ５の処理はスキップされる。すなわち、この場合には、ステップＳ３の処理で演算されたずれ量ａが次式で示されるように、そのままずれ量を表す値として保持される。
【００８０】
ａ＝Audio_PTS−Video_DTS・・・（３）
【００８１】
次に、ステップＳ６において、CPU４５は、次式に基づいて、ずれ量PTS_FSを演算する。
【００８２】
PTS_FS＝（（ａ×４８０００）／９００００）＆０ｘ７ｆｆ・・・（４）
【００８３】
上記式において、９００００は、STCの周波数であり、この値で割算することにより、ずれ量ａが秒に換算される。そして、秒に換算された値に４８０００を乗算することにより、ずれ量をオーディオのサンプリングクロックに対応する値に換算する。なお、この４８０００の値は、オーディオデータのサンプリング周波数に対応する値であり、トランスポートストリームを解析した結果、オーディオデータのサンプリング周波数が他の周波数である場合には、その値が使用される。
【００８４】
「＆０ｘ７ｆｆ」は、マスクをかけて有効桁だけを取り出す処理を意味する。この例の場合、下位１１ビットのデータだけが取り出される。これは、ずれ量が最大でも１１ビット以下で表すことができるためである。これにより、位相ずれを表すパラメータのビット数が必要以上に大きくなることが防止される。
【００８５】
ステップＳ７において、CPU４５は、トランスポートストリームを解析し、その他のローカルヘッダの情報を得る。すなわち、図７に示したSystem_Header６１、Video_Header６２、およびAudio_Header６３に記録するために必要なデータを取得する。この場合において、Audio_Header６３の各種オーディオエンコードパラメータの１つとして、CPU４５は、オーディオデータのサンプリング周波数（いまの例の場合、４８kHz）を取得する。
【００８６】
ステップＳ８において、CPU４５は、それまでの処理で生成して得られたパラメータをパケット生成部４４に転送し、ローカルヘッダ６０を生成させる。すなわち、図７におけるSystem_Header６１、Video_Header６２、およびAudio_Header６３が生成される。
【００８７】
ステップＳ９において、CPU４５は、１GOP分のエレメンタリストリームが揃ったか否かを判定し、揃っていない場合には、揃うまで待機する。
【００８８】
ステップＳ９において、１GOP分のエレメンタリストリームが揃ったと判定された場合、ステップＳ１０に進み、CPU４５は、そのデータをパケット生成部４４に供給する。パケット生成部４４は、供給されてきたデータを、VIDEO/AUDIOデータ６４に格納し、１GOP分のブロックを生成し、そのブロックにステップＳ８の処理で生成したローカルヘッダを付加する。
【００８９】
ステップＳ１１において、CPU４５は、ステップＳ１０の処理でパケット生成部４４により生成された、ローカルヘッダ６０を付加した１GOP分のブロックのデータを、バッファ４６に転送する。
【００９０】
バッファ４６は、パケット生成部４４より転送されてきた１GOP分のブロックのデータを受信すると、これを一時的に記憶した後、出力する。
【００９１】
バッファ４６より出力されたデータは、このとき、CPU１３により、接点Ｒ側に切り替えられているスイッチ１４を介して、PCIインタフェース１２に供給される。PCIインタフェース１２は、スイッチ１４より入力されたデータをバス５を介して、HDD６に転送し、記録させる。
【００９２】
次に、ステップＳ１２において、CPU４５は、ユーザから記録処理の終了が指示されたか否かを判定し、指示されていない場合、ステップＳ２に戻り、次のGOPを取得し、そのGOPについて、同様の処理を実行する。ステップＳ１２において、ユーザから記録処理の終了が指示されたと判定された場合、CPU４５は、処理を終了する。
【００９３】
以上のようにして、データがGOP単位で、図７に示されるようなローカルフォーマットの記録単位としてのブロック（ローカルブロック）にブロック化され、HDD６に記録される。
【００９４】
以上のようにして、HDD６に記録されたデータは、その後、ユーザにより指示されたとき、HDD６から読み出され、DVB-ASIボード４によりスプライシング処理がなされた後、エレメンタリストリームからトランスポートストリームに変換される。そして、そのトランスポートストリームは、デコーダ３に供給され、デコードされ、図示せぬ装置に出力される。
【００９５】
すなわち、ビデオサーバ１の図示せぬコントローラは、ユーザにより指定されたプログラムが再生順序に沿って並べられたプレイリストを受け取ると、そのプレイリストに従って、各プログラムのデータをHDD６から順次読み出し、1GOP毎に、スプライシングIC１１に転送する。スプライシングIC１１はスプライシング処理を実行する。
【００９６】
次に、スプライシングIC１１（図２と図３）において行われるスプライシング処理について、図９のフローチャートを参照して説明する。なお、この処理は、GOP単位で実行される。
【００９７】
ステップＳ３１において、１GOP分（図７に示される１ブロック分）のMPEG２のデータが、HDD６から読み出され、バス５を介してPCIインタフェース１２に入力される。PCIインタフェース１２は、入力されたデータを、このときCPU１３により接点P側に切り替えられているスイッチ１４を介してDVB-ASIインタフェース１０に出力する。DVB-ASIインタフェース１０は、スイッチ１４より入力されたデータを、スプライシングIC１１に供給する。スプライシングIC１１においては、バッファ４１に１GOP分のMPEG２のデータが蓄積される。CPU４５は、この蓄積されたデータを、バッファ４１からBAC４２を介してSDRAM４３に記憶させる。CPU４５は、SDRAM４３に記憶されたブロックのローカルヘッダ６０のAudio_Heder６３から、そのGOPのずれ量PTS_FSを抽出する。このずれ量PTS_FSは、図８のステップＳ６の処理で演算され、ステップＳ１０の処理でAudio_Heder６３に格納されたものである。
【００９８】
ステップＳ３２において、CPU４５は、SDRAM４３に記憶されたデータから、ビデオデータのPTS_VIDEO_LAST（図６）を次式に基づいて算出する。
【００９９】
PTS_VIDEO_LAST＝Video_DTS＋Ｎ×３００３・・・（５）
【０１００】
なお、上記式におけるＮは、１GOPを構成するビデオフレームの数（通常Ｎ＝１５であり、その値はVideo_Header６２の各種ビデオエンコードパラメータ（図７）の１つとして記述されている）を表す。３００３は、１ビデオフレームの長さであり、その値も、Video_Header６２の各種ビデオエンコードパラメータ（図７）の１つとして記述されている。
【０１０１】
スプライシング処理が開始されたとき、CPU４５は、最初に入力されたビデオデータの先頭から、初期値０として、GOPの数をカウントし、それまでにカウントしたGOPの数に対応するSTCの値をタイムスタンプVideo_DTSとしている。従って、タイムスタンプVideo_DTSは、先行するGOPの最後のビデオフレームの最後尾の位置を表していることになる。PTS_VIDEO_LASTは、先行するGOPに引き続き、次のGOPがそのまま出力されたときの出力終了時刻を表す。
【０１０２】
ステップＳ３３において、CPU４５は、次式に基づいてPTS_AUDIO_LAST（図６）を算出する。
【０１０３】
PTS_AUDIO_LAST＝Audio_PTS＋Ｍ×１１５２・・・（６）
【０１０４】
なお、上記式において、Ｍは、１GOPを構成するオーディオフレームの数を表し、いまの場合、Ｍ＝２１となる。また、１１５２は、１オーディオフレームのサンプリング周波数で係数した長さを表す。すなわち、１オーディオフレームの長さは２４msecであるため、４８kHzのサンプリング周波数でその長さを計数すると、２４msec×４８kHz＝１１５２となる。これらのＭと１１５２の値は、Audio_Header６３の各種オーディオエンコードパラメータ（図７）の１つとして記述されている。
【０１０５】
このタイムスタンプAudio_PTSも、スプライシング処理が開始されたとき、CPU４５が、最初に入力されたプログラムのオーディオデータの最初から、初期値０として、GOP（ビデオデータのGOPに対応するGOP）の数をカウントし、それまでにカウントしたGOPの数に対応するSTCの値をタイムスタンプAudio_PTSとしている。従って、タイムスタンプAudio_PTSは、先行するGOPの最後のオーディオフレームの最後尾の位置を表していることになる。 PTS_AUDIO_LASTは、先行するGOPに引き続き、次のGOPがそのまま出力されたときの出力終了時刻を表す。
【０１０６】
CPU４５は、ステップＳ３２とステップＳ３３において、それぞれ算出した値を用いて、ステップＳ３４において、次式に基づいて、ずれ量PTS_FS_SPLYCE（図６）を算出する。
【０１０７】
PTS_FS_SPLYCE＝PTS_AUDIO_LAST−PTS_VIDEO_LAST・・・（７）このPTS_FS_SPLYCEは、図５と図６を参照して説明したように、先行するGOPに対して次のGOPを、そのままスプライシングした場合における、先行するGOPの最後のフレームでの、ビデオフレームとオーディオフレームの最後尾でのずれ量を示す値である。
【０１０８】
この式により求められたずれ量PTS_FS_SPLYCEの値が用いられて、以下の判断が行われる。すなわち、ステップＳ３５において、CPU４５は、ステップＳ３１で抽出したずれ量PTS_FSが、ステップＳ３４の処理で演算したずれ量PTS_FS_SPLYCEより大きいか否かを判断する。
【０１０９】
この判断について図１０を参照して説明する。なお、ずれ量PTS_FSは、上述したように、第２のプログラムの最初のGOPの先頭でビデオフレームとオーディオフレームが同期するために必要なずれ量である。
【０１１０】
図１０において、ハッチングを施さずに示す４角形のブロックは、前のプログラム（第１のプログラム）を構成する最後のGOP（先行するGOP）８１のビデオフレーム（Video1(P1)乃至Video15(P1)）（図１０Ａ）、または前のプログラム（第１のプログラム）を構成する最後のGOP（先行するGOP）９１のオーディオフレーム（AAU1(P1)乃至AAU21(P1)）（図１０Ｂ）を示す。ハッチングを施して示される４角形のブロックは、次のプログラム（第２のプログラム）を構成する先頭のGOP（先行するGOPの次のGOP）８２の先頭のビデオフレーム（Video2(P2)）（図１０Ａ）、または次のプログラム（第２のプログラム）を構成する先頭のGOP（先行するGOPの次のGOP）９２の先頭のオーディオフレーム（AAU1(P2)）（図１０Ｂ）を示す。
【０１１１】
スプライシングの結果、次のプログラム（第２のプログラム）を構成する先頭のGOP９２の先頭のオーディオフレーム（AAU1(P2)）が、図１０Ｃに示される位置に位置するとき、すなわち、ずれ量PTS_FS_SPLYCEが、ずれ量PTS_FSと等しいとき、オーディオフレームはビデオフレームと同期がとれる状態になる。
【０１１２】
図１０Ｄに示したように、スプライシングの結果、オーディオフレームが、ビデオフレームに対して、同期がとれている状態の位置より、時間的に前に位置するようになると（位相が進んだ状態になると）、対応する映像と音声を同時に視聴した人間は、違和感を感じるようになる。
【０１１３】
これに対して、図１０Ｂに示されるように、オーディオフレームがビデオフレームに対して、同期がとれている状態（図１０Ｃ）より、時間的に後の位置に位置している場合（位相が遅れた状態になると）、時間的に前に位置する場合に比べて、人間は、違和感を感じないことが知られている。
【０１１４】
ステップＳ３５の処理は、オーディオフレームがビデオフレームに対して、同期している状態より時間的に前に位置している（音が映像に対して先行している状態）か、後に位置している（音が映像に対して遅れている状態）かを判断する処理である。
【０１１５】
ステップＳ３５において、ずれ量PTS_FS_SPLYCEが、ずれ量PTS_FSより小さいと判断された場合、すなわち、図１０Ｄのような状態（音が映像に対して先行している状態）であると判断された場合、ステップＳ３７に進み、CPU４５は、オーディオフレームに対して１フレーム分の無音フレーム（無音のAAU）を挿入（付加）し、その後に、本来のオーディオフレームをスプライシングする。なお、無音フレームは、無音のオーディオフレームを予め作成しておくか、または作成せずとも、予め取得しておき、その無音のオーディオフレームをスプライシングIC１１で保持しておき、必要に応じて、その保持されている無音フレームを読み出すようにすればよい。
【０１１６】
一方、ステップＳ３５において、ずれ量PTS_FS_SPLYCEが、ずれ量PTS_FSより小さくないと判断された場合、すなわち、図１０Ｂに示されるような状態であると判断された場合（音が映像に対して遅れている状態の場合）、ステップＳ３６に進む。ステップＳ３６において、CPU４５は、オーディオフレームを、そのまま（無音フレームを挿入することなく）出力する。
【０１１７】
ステップＳ３６またはステップＳ３７の処理の後、ステップＳ３８に処理が進む。ステップＳ３８において、CPU４５は、ずれ量PTS_FS_SPLYCEが、１個のオーディオフレーム（符号化単位）の長さAAU_SIZEと、ずれ量PTS_FSの和より大きいか否か（ずれ量PTS_FS_SPLYCEが、ずれ量PTS_FSより大きく、かつ、その差が、１個のオーディオフレームの長さAAU_SIZEより大きいか否か）を判断する。
【０１１８】
ステップＳ３８における判断について、図１１を参照して説明する。図１０と同様に、ハッチングを施していない４角形のブロックは、前のプログラム（第１のプログラム）を構成する最後のGOP（先行するGOP）８１のビデオフレーム（Video1(P1)乃至Video15(P1)）（図１１Ａ）、または前のプログラム（第１のプログラム）を構成する最後のGOP（先行するGOP）９１のオーディオフレーム（AAU1(P1)乃至AAU21(P1)）（図１１Ｂ）を示す。ハッチングを施して示される４角形のブロックは、次のプログラム（第２のプログラム）を構成する先頭のGOP（先行するGOPの次のGOP）８２の先頭のビデオフレーム（Video2(P2)）（図１１Ａ）、または次のプログラム（第２のプログラム）を構成する先頭のGOP（先行するGOPの次のGOP）９２の先頭のオーディオフレーム（AAU1(P2)）（図１１Ｂ）を示す。
【０１１９】
スプライシングの結果、次のGOP９２の先頭のオーディオフレーム（AAU1(P2)）が、図１１Ｃに示される位置に位置するとき、すなわち、ずれ量PTS_FS_SPLYCEが、ずれ量PTS_FSと等しいとき、オーディオフレームはビデオフレームと同期がとれた状態になる。
【０１２０】
図１１Ｂに示されるように、先行するGOP９１の最後のフレームとの関係で、オーディオフレームとビデオフレームが同期された状態（図１１Ｃ）からのずれ量が、１オーディオフレーム以上の長さになることがある。ビデオフレームに対するオーディオフレームの遅れが、１オーディオフレーム以上の長さになると、人間は、その遅れを認識し、違和感を覚えるようになる。
【０１２１】
そこで、ステップＳ３８において、ずれ量PTS_FS_SPLYCEが、１個のオーディオフレームの長さAAU_SIZEと、ずれ量PTS_FSの和より大きいと判断された場合、すなわち、図１１Ｂに示されるように、ずれ量の差が、１オーディオフレーム以上の長さであると判断された場合、ステップＳ３９に進み、CPU４５は、１GOPのうち、Ｄ個（ずれ量が、１オーディオフレーム未満になる数）のオーディオフレームを削除する。Ｄの値は、次式で演算される。  INT(Ｄ)＝PTS_FS_SPLYCE / AAU_SIZE・・・（８）なお、INT(Ｄ)は、Ｄの値のうちの整数部の値を表す。
【０１２２】
一方、ステップＳ３８において、ずれ量PTS_FS_SPLYCEが、１個のオーディオフレームの長さAAU_SIZEと、ずれ量PTS_FSの和より大きくはないと判断された場合、ステップＳ３９の処理はスキップされる。
【０１２３】
なお、ステップＳ３８，Ｓ３９の処理は、オプションであり、省略することも可能である。ただし、ステップＳ３８，Ｓ３９の処理も実行した方が、それだけずれ量の蓄積を抑制することができるので好ましいことはいうまでもない。
【０１２４】
以上により、１GOP分のスプライシング処理が完了したことになる。スプライシング処理が完了した１GOP分のデータは、CPU４５により、エレメンタリストリームからトランスポートストリームに変換された後、パケット生成部４４によりパケット化され、バッファ４６を介して、DVB-ASIインタフェース１０により、DVB-ASIフォーマットに変換されて、デコーダ３に出力される。デコーダ３は、入力されたデータをデコードし、図示せぬ装置に出力する。
【０１２５】
図９には、1GOP分の処理のみが示されているが、以上の処理が、１GOP毎に繰り返し行われる。従って、スプライシングIC１１は、プログラムの変化を意識することなく（第１のプログラムから、それと異なる第２のプログラムに変化したことを検出したりする処理を行うことなく）、効率的に、スプライシング処理を実行することができる。
【０１２６】
オーディオフレームが、ビデオフレームに対して、同期の位置より前の位置にずれている（時間的に先行している）と判断された場合、無音の１オーディオフレームを挿入し、オーディオフレームが、ビデオフレームに対して、同期の位置より後の位置にずれており、かつ、そのずれ量がオーディオデータの１符号化単位（１オーディオフレーム）以上であると判断された場合、ずれ量が、オーディオデータの１符号化単位未満になるように、オーディオデータを符号化単位で削除するようにすることで、オーディオフレームとビデオフレームのずれ量が、視聴者により認識されてしまう量になるようなことを抑制することが可能となる。
【０１２７】
次に、繋ぎ合わせる（スプライシングする）前後のプログラムで、オーディオのチャンネル数が異なる場合の処理について説明する。なお、以下に説明するオーディオのチャンネル数が異なる場合の処理は、以上に説明した記録処理またはスプライシング処理と平行して実施することができるが、それらの処理とは独立して、単独の処理としても実行することができる。
【０１２８】
図１２は、トランスポートストリームの階層データ構造について説明する図である。トランスポートストリームには、複数のプログラムが多重化されている。１つのプログラムにおいても同様に、ビデオストリームとオーディオストリームが多重化されている。
【０１２９】
多重化は、ビデオストリームとオーディオストリームをそれぞれパケット化することで行われる。
【０１３０】
トランスポートストリームには、また、プログラムアソシエーションテーブル(PAT)を含むパケットが所定の周期で伝送される。図１２の例では、このプログラムアソシエーションテーブルのプログラムID(PID)は０とされている。プログラムアソシエーションテーブルには、プログラムマップテーブル(PMT)のPIDが記述されている。図１２の例では、ＭｉとＭｊのPIDがプログラムアソシエーションテーブルに記述されている。
【０１３１】
このプログラムマップテーブルを含むパケットも所定の周期でトランスポートストリーム中に配置される。このプログラムマップテーブルには、対応するプログラムを構成するストリームのPIDが記述される。
【０１３２】
図１２の例では、PIDがＭｉのプログラムマップテーブルには、ＶｉのビデオストリームのPIDと、ＡｉのオーディオストリームのPIDが記述されている。PIDがＡｉのプログラムのチャンネル数は２（１つのブロックが２チャンネル（左右のステレオ信号に対応する）とされている。これに対して、PIDがＭｊのプログラムマップテーブルには、ＶｊのビデオストリームのPIDが記述されているとともに、Ａ１ｊのオーディオストリームのPIDと、Ａ２ｊのオーディオストリームのPIDが記述されている。PIDがＶｊのビデオストリームに対応するオーディオストリームは、PIDがＡ１ｊ，Ａ２ｊのオーディオストリームとなるので、合計のチャンネル数は４とされている。
【０１３３】
トランスポートストリームは、図１３に示されるように、予め決められたサイズ（１８８バイト）の複数のパケットが多重化されて構成されるストリームである。そのため、MPEG２のデータであるビデオデータやオーディオデータは、パケットサイズに分割され、その単位で多重化される。図１３において、Ｖ１，Ｖ２などは、パケットサイズに分割されたビデオデータを示し、Ａ１，Ａ２などは、パケットサイズに分割されたオーディオデータを示す。PAT，PMTは、それぞれ、図１２におけるプログラムアソシエーションテーブル記述したパケット（PID＝０のパケット）、またはプログラムマップテーブルを記述したパケット（PID＝Ｍｉ，Ｍｊのパケット）を表す。NULLは、パケットのタイミングを調整するために挿入されたパケットであり、ダミーのデータが格納されている。
【０１３４】
これらのパケットの、どの種類のパケットが伝送されるかは、伝送される各データのデータ量に応じて、エンコーダ２により適宜決定される。すなわち、その時点において、伝送するビデオデータのデータ量が多ければ、ビデオパケットの数が増加され、オーディオデータのデータ量が多ければ、オーディオデータのパケットが増加される。
【０１３５】
次に、図１４を参照して、スプライシングIC１１が、オーディオチャンネル数が異なるプログラムをスプライシングする場合について説明する。オーディオチャンネル数が、異なる２つのプログラムがスプライシングされた場合、スプライシング後の１つのプログラムのPIDが、途中で（スプライシング点を境にして）変化することになる。
【０１３６】
図１４の例においては、スプライシングされるプログラム１は、PIDがViのビデオストリームと、PIDがAiのオーディオストリームにより構成されている。すなわち、プログラム１のオーディオストリームのチャンネル数は２とされている。
【０１３７】
これに対して、プログラム１に対してスプライシングするプログラム２は、PIDがVjのビデオストリームにより構成される他、PIDがＡ１ｊのオーディオストリームと、PIDがＡ２ｊのオーディオストリームとにより構成されている。すなわち、プログラム２のオーディオストリームのチャンネル数は４とされている。
【０１３８】
従って、プログラム１に対して、プログラム２をスプライシング処理すると、オーディオチャンネル数が途中で２チャンネル分だけ増加することになる。
【０１３９】
オーディオチャンネル数が増加するか、または、減少することにより、PID数が変化すると、トランスポートストリームを処理するデコーダによっては、PIDの変化を認識するタイミングにより、先頭から再生できないチャンネルが発生してしまう場合がある。
【０１４０】
そこで、CPU４５は、自分自身が処理可能な最大のオーディオチャンネルの数より、入力された信号のオーディオチャンネルの数が少ない場合、オーディオチャンネルのチャンネル数が、自分自身が処理可能な最大のオーディオチャンネルの数に等しくなるようにチャンネル数を増加し、増加したチャンネルに対して無音のパケットを出力する。これにより、チャンネル数の増減がないので、デコーダは、全てのチャンネルのオーディオデータを、先頭から正しく再生することが可能となる。
【０１４１】
次に、図１５を参照して、スプライシングIC１１において行われる、スプライシング処理時に、スプライシングの前後でオーディオチャンネル数が変化する場合のチャンネル数調整処理について説明する。この処理は、図９のスプライシング処理と平行して実行される。そして、この処理は、HDD６から読み出され、バス５を介してPCIインタフェース１２に入力され、そこからさらにスイッチ１４の接点P、およびDVB-ASIインタフェース１０を介してスプライシングIC１１にデータが入力されたとき開始される。
【０１４２】
ステップＳ５１において、CPU４５は、ローカルフォーマット（Local Format）のHDD６から読み取られたデータを、バッファ４１とBAC４２を介してSDRAM４３に取り込む。図８を参照して説明したように、CPU４５は、データをHDD６に記録するとき、データを、図７に示されるようなブロック単位で構成されるローカルフォーマットのデータに変換するので、このとき取り込まれるデータは、ローカルフォーマットのデータとなっている。
【０１４３】
ステップＳ５２において、CPU４５は、ローカルヘッダ６０（図７）の解析を行う。ステップＳ５２においては主に、オーディオのチャンネル数がチェックされる。上述したように、ローカルヘッダ６０のAudio_Header６３には、各種Audioエンコードパラメータの１つとして、オーディオデータのチャンネル数が記述されている。CPU４５は、このAudio_Header６３に記述されているオーディオチャンネル数を読み出し、P_CHに設定する。
【０１４４】
ステップＳ５３において、CPU４５は、自分自身（ビデオサーバ１）が扱うことが可能な最大のオーディオのチャンネル数MuxCHから、ステップＳ５２の処理で設定されたオーディオチャンネル数P_CHを減算して得られた差MuteCH_NUMが、０であるか否かを判断する。
【０１４５】
ステップＳ５３において、差MuteCH_NUMが０ではないと判断された場合、処理はステップＳ５４に進む。ステップＳ５４において、CPU４５は、MuxCH−P_CHにより算出されたチャンネル数、すなわち、最大のオーディオのチャンネル数MuxCHと、ヘッダ解析によるその時点で使われているオーディオのチャンネル数P_CHとの差MuteCH_NUMの分だけチャンネル数を増加し、増加したチャンネルに対して、無音のオーディオパケットを付加し、トランスポートストリームに変換してデコーダ３に送信する。例えば、図１４の例では、プログラム１に、無音データのオーディオチャンネルが２チャンネル分だけ付加される。
【０１４６】
このように、無音のオーディオパケットを送信して、常に最大のチャンネル数を用いている状態にすることにより、オーディオデータ（または、オーディオデータが揃うまで待機されるビデオデータ）を先頭から再生できないといったような状態が発生するようなことを防ぐことが可能となる。
【０１４７】
一方、ステップＳ５３において、差MuteCH_NUMが０であると判断された場合、すなわち、最大のオーディオチャンネル数MuxCHと、ヘッダ解析結果によるオーディオチャンネル数P_CHが等しい場合、無音のデータを出力するチャンネル（MuteCH_NUM）は必要ないと判断され、ステップＳ５４の処理はスキップされる。
【０１４８】
図１５のチャンネル数調整処理は、HDD６からの再生データに対して行うようにしたが、エンコーダ２、その他の装置からDVB-ASIインタフェース１０を介して入力されたデータをHDD６に記録する場合に行うようにしても良い。ただし、HDD６からの再生データに対して行うようにした方が、記憶領域に実質的に無効なデータを記録しないで済む。
【０１４９】
一方、SDIエンコードボード７（図２）は、ビデオ信号とオーディオ信号を受け付けると、ローカルヘッダを付加して、HDD６に記録する処理を実行する。すなわち、SDIエンコードボード７には、シリアルなデータが入力される。そのシリアルなデータは、SDIデコーダ２１においてデコードされた後、ビデオデータは、ビデオエンコーダ２２で、オーディオデータは、オーディオエンコーダ２３で、それぞれエンコードされる。
【０１５０】
SDIエンコードボード７のCPU２５は、ローカルヘッダ６０（図７）を作成し、その作成したローカルヘッダ６０をPCIインタフェース２４とバス５を介して、HDD６に記憶させる。そのような処理を行う一方で、CPU２５は、作成したローカルヘッダのフォーマットに従って、ビデオエレメンタリーストリームと、オーディオエレメンタリーストリームを並べ、順次、HDD６に記憶させる。
【０１５１】
このように、スプライシングを行う際、無音のオーディオフレームを挿入したり、１オーディオフレーム以上のずれを発生するオーディオフレームを削除することにより、視聴者に違和感を感じさせるような同期のずれの発生を防ぐことが可能となる。また、スプライシングポイントの前後で、オーディオチャンネルの数に変化があるような場合でも、上述したように、無音のオーディオパケットを出力するようにすることにより、デコーダにおいて、オーディオのデータを最初から再生できないといったような不都合の発生を防ぐことが可能となる。
【０１５２】
また、上述した処理は、プログラムの繋ぎ目であるか否かを判断する必要がないため、ソースコードを単純化することが可能となる。
【０１５３】
以上においては、処理単位をGOPとしたが、複数の所定の数のパケットを処理単位とするなどしてもよい。
【０１５４】
上述した一連の処理は、ハードウェアにより実行させることもできるし、上述したようにソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体等からインストールされる。
【０１５５】
図１６は、このような処理を実行するパーソナルコンピュータの内部構成例を示す図である。パーソナルコンピュータのCPU（Central Processing Unit）１０１は、ROM（Read Only Memory）１０２に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）１０３には、CPU１０１が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。入出力インタフェース１０５は、キーボードやマウスから構成される入力部１０６が接続され、入力部１０６に入力された信号をCPU１０１に出力する。また、入出力インタフェース１０５には、ディスプレイやスピーカなどから構成される出力部１０７も接続されている。
【０１５６】
さらに、入出力インタフェース１０５には、ハードディスクなどから構成される記憶部１０８、および、インターネットなどのネットワークを介して他の装置とデータの通信を行う通信部１０９も接続されている。ドライブ１１０は、磁気ディスク１２１、光ディスク１２２、光磁気ディスク１２３、半導体メモリ１２４などの記録媒体からデータを読み出したり、データを書き込んだりするときに用いられる。
【０１５７】
記録媒体は、図１６に示されるように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク１２１（フレキシブルディスクを含む）、光ディスク１２２（CD-ROM（Compact Disc-Read Only Memory），DVD（Digital Versatile Disc）を含む）、光磁気ディスク１２３（MD（Mini-Disc）（登録商標）を含む）、若しくは半導体メモリ１２４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているROM１０２や記憶部１０８が含まれるハードディスクなどで構成される。
【０１５８】
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０１５９】
【図１】ビデオストリームとオーディオストリームのフレーム長の違いによるずれ量について説明する図である。
【図２】本発明を適用したビデオサーバの一実施の形態の構成を示すブロック図である。
【図３】図２のスプライシングＩＣの内部構成例を示すブロック図である。
【図４】GOPについて説明する図である。
【図５】スプライシング時の、ビデオフレームとオーディオフレームのずれ量について説明するための図である。
【図６】スプライシング時の各フレームについて説明するための図である。
【図７】ローカルヘッダの構成について説明する図である。
【図８】記録時の処理について説明するフローチャートである。
【図９】スプライシング処理について説明するフローチャートである。
【図１０】図９のステップＳ３５において行われる処理について説明する図である。
【図１１】図９のステップＳ３８において行われる処理について説明する図である。
【図１２】トランスポートストリームの階層データ構造について説明する図である。
【図１３】トランスポートストリームの多重化について説明する図である。
【図１４】オーディオチャンネル数が異なるプログラムのスプライシングについて説明する図である。
【図１５】オーディオチャンネル数が異なるプログラムのスプライシング時のチャンネル数調整処理について説明するフローチャートである。
【図１６】媒体を説明する図である。
【符号の説明】
【０１６０】
１  ビデオサーバ，  ２  エンコーダ，  ３  デコーダ，  ４  DVB−ASIボード，  ５  バス，  ６  HDD，  ７  SDIエンコードボード，  １１  スプライシングIC，  １２  PCIインタフェース，  １３  CPU，  ２１  SDIデコーダ，  ２２  ビデオエンコーダ，  ２３  オーディオエンコーダ，  ２４  PCIインタフェース，  ２５  CPU，  ２６  バス，  ４１  バッファ，  ４２  BAC，  ４３  SDRAM，  ４４  パケット生成部，  ４５  CPU
【図１】
2007195208.tif 000003
【図２】
2007195208.tif 000004
【図３】
2007195208.tif 000005
【図４】
2007195208.tif 000006
【図５】
2007195208.tif 000007
【図６】
2007195208.tif 000008
【図７】
2007195208.tif 000009
【図８】
2007195208.tif 000010
【図９】
2007195208.tif 000011
【図１０】
2007195208.tif 000012
【図１１】
2007195208.tif 000013
【図１２】
2007195208.tif 000014
【図１３】
2007195208.tif 000015
【図１４】
2007195208.tif 000016
【図１５】
2007195208.tif 000017
【図１６】
2007195208.tif 000018
【手続補正書】
【提出日】平成19年3月22日(2007.3.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオストリームとオーディオストリームとを含むストリームをスプライシングする情報処理装置において、
前記オーディオストリームと前記ビデオストリームが同期するための処理単位の先頭におけるずれ量を、第１のずれ量として算出する第１のずれ量算出手段と、
所定の処理単位を注目処理単位として、複数の前記ストリームを所定の順番でスプライシングしたときの再生順序において前記注目処理単位に先行する先行処理単位に対して、前記注目処理単位の前記オーディオストリームと前記ビデオストリームの最後尾におけるずれ量を、第２のずれ量として算出する第２のずれ量算出手段と、
前記第２のずれ量算出手段により算出された前記注目処理単位の前記第２のずれ量と、複数の前記ストリームを所定の順番で接続したときの再生順序において前記注目処理単位に続く処理単位である後続処理単位における前記第１のずれ量とに基づいて、前記後続処理単位のずれ量を補正するずれ量補正手段と
を備える情報処理装置。
【請求項２】
前記第２のずれ量算出手段は、前記処理単位毎に算出される前記先行する処理単位のタイムスタンプと、前記処理単位の長さに基づいて、前記第２のずれ量を算出する
請求項１に記載の情報処理装置。
【請求項３】
前記第２のずれ量算出手段は、前記先行する処理単位のオーディオストリームのプレゼンテーションタイムスタンプに、前記処理単位のオーディオストリームの長さを加算した値と、前記先行する処理単位のビデオストリームのデコーディングタイムスタンプに、前記処理単位のビデオストリームの長さを加算した値との差に基づいて、前記第２のずれ量を算出する
請求項２に記載の情報処理装置。
【請求項４】
前記第１のずれ量が前記第２のずれ量より大きい場合に、前記先行する処理単位の前記オーディオストリームに、１つの符号化単位の無音のデータを挿入する挿入手段
をさらに備える請求項３に記載の情報処理装置。
【請求項５】
前記第２のずれ量が前記第１のずれ量より大きく、かつ、前記第２のずれ量と前記第１のずれ量の差が前記オーディオストリームの１符号化単位以上である場合に、前記第２のずれ量と前記第１のずれ量との差が、前記オーディオストリームの１符号化単位より小さくなるように、前記先行する処理単位の前記オーディオストリームを、前記オーディオストリームの前記処理単位を構成する符号化単位で削除する削除手段と
をさらに備える請求項３に記載の情報処理装置。
【請求項６】
前記オーディオストリームのチャンネル数が、扱える前記チャンネル数の最大値よりも少ない場合に、前記チャンネル数が前記最大値と等しくなるようにチャンネル数を増加し、増加した前記チャンネルに対して無音のデータを挿入する挿入手段を更に備える
請求項３に記載の情報処理装置。
【請求項７】
前記ストリームは、MPEG2規格のトランスポートストリームである
請求項１に記載の情報処理装置。
【請求項８】
ビデオストリームとオーディオストリームとを含むストリームをスプライシングする情報処理装置の情報処理方法において、
前記オーディオストリームと前記ビデオストリームが同期するための処理単位の先頭におけるずれ量を、第１のずれ量として算出する第１のずれ量算出ステップと、
所定の処理単位を注目処理単位として、複数の前記ストリームを所定の順番でスプライシングしたときの再生順序において前記注目処理単位に先行する先行処理単位に対して、前記注目処理単位の前記オーディオストリームと前記ビデオストリームの最後尾におけるずれ量を、第２のずれ量として算出する第２のずれ量算出ステップと、
前記第２のずれ量算出ステップの処理により算出された前記注目処理単位の前記第２のずれ量と、複数の前記ストリームを所定の順番で接続したときの再生順序において前記注目処理単位に続く処理単位である後続処理単位における前記第１のずれ量とに基づいて、前記後続処理単位のずれ量を補正するずれ量補正ステップと
を含む情報処理方法。
【請求項９】
ビデオストリームとオーディオストリームとを含むストリームをスプライシングする処理をコンピュータに実行させるプログラムであって、
前記オーディオストリームと前記ビデオストリームが同期するための処理単位の先頭におけるずれ量を、第１のずれ量として算出する第１のずれ量算出ステップと、
所定の処理単位を注目処理単位として、複数の前記ストリームを所定の順番でスプライシングしたときの再生順序において前記注目処理単位に先行する先行処理単位に対して、前記注目処理単位の前記オーディオストリームと前記ビデオストリームの最後尾におけるずれ量を、第２のずれ量として算出する第２のずれ量算出ステップと、
前記第２のずれ量算出ステップの処理により算出された前記注目処理単位の前記第２のずれ量と、複数の前記ストリームを所定の順番で接続したときの再生順序において前記注目処理単位に続く処理単位である後続処理単位における前記第１のずれ量とに基づいて、前記後続処理単位のずれ量を補正するずれ量補正ステップと
を含む処理をコンピュータに実行させるプログラム。
【請求項１０】
ビデオストリームとオーディオストリームとを含むストリームをスプライシングする処理をコンピュータに実行させるプログラムであって、
前記オーディオストリームと前記ビデオストリームが同期するための処理単位の先頭におけるずれ量を、第１のずれ量として算出する第１のずれ量算出ステップと、
所定の処理単位を注目処理単位として、複数の前記ストリームを所定の順番でスプライシングしたときの再生順序において前記注目処理単位に先行する先行処理単位に対して、前記注目処理単位の前記オーディオストリームと前記ビデオストリームの最後尾におけるずれ量を、第２のずれ量として算出する第２のずれ量算出ステップと、
前記第２のずれ量算出ステップの処理により算出された前記注目処理単位の前記第２のずれ量と、複数の前記ストリームを所定の順番で接続したときの再生順序において前記注目処理単位に続く処理単位である後続処理単位における前記第１のずれ量とに基づいて、前記後続処理単位のずれ量を補正するずれ量補正ステップと
を含む処理をコンピュータに実行させるプログラムが記録された記録媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
本発明の第１の情報処理装置は、ビデオストリームとオーディオストリームとを含むストリームをスプライシングする情報処理装置であって、オーディオストリームとビデオストリームが同期するための処理単位の先頭におけるずれ量を、第１のずれ量として算出する第１のずれ量算出手段と、所定の処理単位を注目処理単位として、複数のストリームを所定の順番でスプライシングしたときの再生順序において注目処理単位に先行する先行処理単位に対して、注目処理単位のオーディオストリームとビデオストリームの最後尾におけるずれ量を、第２のずれ量として算出する第２のずれ量算出手段と、第２のずれ量算出手段により算出された注目処理単位の第２のずれ量と、複数のストリームを所定の順番で接続したときの再生順序において注目処理単位に続く処理単位である後続処理単位における第１のずれ量とに基づいて、後続処理単位のずれ量を補正するずれ量補正手段とを備える。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】削除
【補正の内容】
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】削除
【補正の内容】
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】削除
【補正の内容】
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】削除
【補正の内容】
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】削除
【補正の内容】
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】削除
【補正の内容】
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】削除
【補正の内容】
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
前記第２のずれ量算出手段は、処理単位毎に算出される先行する処理単位のタイムスタンプと、処理単位の長さに基づいて、第２のずれ量を算出することができる。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
前記第２のずれ量算出手段は、先行する処理単位のオーディオストリームのプレゼンテーションタイムスタンプに、処理単位のオーディオストリームの長さを加算した値と、先行する処理単位のビデオストリームのデコーディングタイムスタンプに、処理単位のビデオストリームの長さを加算した値との差に基づいて、第２のずれ量を算出することができる。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
第１のずれ量が、第２のずれ量より大きい場合に、先行する処理単位のオーディオストリームに、１つの符号化単位の無音のデータを挿入する挿入手段をさらに備えることができる。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
第２のずれ量が、第１のずれ量より大きく、かつ、第２のずれ量と第１のずれ量の差がオーディオストリームの１符号化単位以上であると判断された場合、第２のずれ量と、第１のずれ量の差が、オーディオストリームの１符号化単位より小さくなるように、先行する処理単位のオーディオストリームを、オーディオストリームの処理単位を構成する符号化単位で削除する削除手段とをさらに備えることができる。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
前記オーディオストリームのチャンネル数が、扱えるチャンネル数の最大値よりも少ない場合に、チャンネル数が、最大値と等しくなるようにチャンネル数を増加し、増加したチャンネルに対して無音のデータを挿入する挿入手段を更に備えることができる。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
ストリームは、MPEG2規格のトランスポートストリームであるものとすることができる。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
本発明の第1の情報処理方法は、ビデオストリームとオーディオストリームとを含むストリームをスプライシングする情報処理装置の情報処理方法であって、オーディオストリームとビデオストリームが同期するための処理単位の先頭におけるずれ量を、第１のずれ量として算出する第１のずれ量算出ステップと、所定の処理単位を注目処理単位として、複数のストリームを所定の順番でスプライシングしたときの再生順序において注目処理単位に先行する先行処理単位に対して、注目処理単位のオーディオストリームとビデオストリームの最後尾におけるずれ量を、第２のずれ量として算出する第２のずれ量算出ステップと、第２のずれ量算出ステップの処理により算出された注目処理単位の第２のずれ量と、複数のストリームを所定の順番で接続したときの再生順序において注目処理単位に続く処理単位である後続処理単位における第１のずれ量とに基づいて、後続処理単位のずれ量を補正するずれ量補正ステップとを含む。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００２９
【補正方法】変更
【補正の内容】
【００２９】
本発明の第1のプログラムおよび記録媒体に記録されているプログラムは、ビデオストリームとオーディオストリームとを含むストリームをスプライシングする処理をコンピュータに実行させるプログラムであって、オーディオストリームとビデオストリームが同期するための処理単位の先頭におけるずれ量を、第１のずれ量として算出する第１のずれ量算出ステップと、所定の処理単位を注目処理単位として、複数のストリームを所定の順番でスプライシングしたときの再生順序において注目処理単位に先行する先行処理単位に対して、注目処理単位のオーディオストリームとビデオストリームの最後尾におけるずれ量を、第２のずれ量として算出する第２のずれ量算出ステップと、第２のずれ量算出ステップの処理により算出された注目処理単位の第２のずれ量と、複数のストリームを所定の順番で接続したときの再生順序において注目処理単位に続く処理単位である後続処理単位における第１のずれ量とに基づいて、後続処理単位のずれ量を補正するずれ量補正ステップとを含む処理をコンピュータに実行させる。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
本発明においては、オーディオストリームとビデオストリームが同期するための処理単位の先頭におけるずれ量が、第１のずれ量として算出され、所定の処理単位を注目処理単位として、複数のストリームを所定の順番でスプライシングしたときの再生順序において注目処理単位に先行する先行処理単位に対して、注目処理単位のオーディオストリームとビデオストリームの最後尾におけるずれ量が、第２のずれ量として算出され、算出された注目処理単位の第２のずれ量と、複数のストリームを所定の順番で接続したときの再生順序において注目処理単位に続く処理単位である後続処理単位における第１のずれ量とに基づいて、後続処理単位のずれ量が補正される。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】削除
【補正の内容】
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】削除
【補正の内容】
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】削除
【補正の内容】
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】削除
【補正の内容】
【手続補正２６】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】削除
【補正の内容】
【手続補正２７】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】削除
【補正の内容】
【手続補正２８】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】削除
【補正の内容】
【手続補正２９】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】削除
【補正の内容】
【手続補正３０】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】削除
【補正の内容】
【手続補正３１】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】削除
【補正の内容】
【手続補正３２】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】削除
【補正の内容】
【手続補正３３】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】削除
【補正の内容】
【手続補正３４】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】削除
【補正の内容】