JP3944845B2 - 情報処理装置および方法、記録媒体、並びにプログラム - Google Patents
情報処理装置および方法、記録媒体、並びにプログラム Download PDFInfo
- Publication number
- JP3944845B2 JP3944845B2 JP2002277992A JP2002277992A JP3944845B2 JP 3944845 B2 JP3944845 B2 JP 3944845B2 JP 2002277992 A JP2002277992 A JP 2002277992A JP 2002277992 A JP2002277992 A JP 2002277992A JP 3944845 B2 JP3944845 B2 JP 3944845B2
- Authority
- JP
- Japan
- Prior art keywords
- processing unit
- audio data
- video data
- shift amount
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Television Receiver Circuits (AREA)
- Television Signal Processing For Recording (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
Description
【発明の属する技術分野】
本発明は情報処理装置に関し、特に、デジタル放送において、ストリームを結合する際に、ビデオストリームとオーディオストリームの処理単位の大きさの違いによって生じるずれの蓄積を抑制する際に用いて好適な情報処理装置に関する。
【0002】
【従来の技術】
デジタルで番組を放送するデジタル放送が普及しつつある。デジタル放送における番組は、1つ以上のプログラムにより構成され、各プログラムは、例えば、MPEG(Moving Picture Expert Group)2方式によるトランスポートストリームが用いられて送受信が行われる(特許文献1参照)。
【特許文献1】
特開平11−112944号公報
【0003】
【発明が解決しようとする課題】
ところで、デジタル放送においては、時間帯により異なる番組が放送されるため、トランスポートストリームをエレメンタリストリームに変換した後、あるタイミングで、ある番組(プログラム)から次の番組(プログラム)へと切り換える必要がある。また、ある1つの番組内においても、本編(プログラム)に対してコマーシャル(プログラム)を挿入する必要がある場合などが存在する。この番組から番組への切り換え、あるいは、本編からコマーシャルへの切り換えなどのとき、それらの本編やコマーシャルに対応するエレメンタリストリームを繋ぎ合わせる(スプライスする)という処理が必要である。
【0004】
エレメンタリストリームに多重化されているビデオストリームとオーディオストリームの符号化単位(それぞれ、ビデオフレームまたはオーディオフレーム)は、互いに異なる時間間隔とされている。図1は、プログラムを構成するビデオストリームとオーディオストリームの長さの違いについて説明する図である。図1に示されるように、ビデオストリームの1フレーム(ビデオフレーム)は、NTSC方式の場合、33msであり、オーディオストリームの1フレーム(オーディオフレーム)は、24msである。従って、ビデオストリームのビデオフレームとオーディオストリームのオーディオフレームは、プログラムの先頭で同期させたとしても、2番目以降のビデオフレームとオーディオフレームのタイミングは一致せず、時間的にずれ(ギャップ)が生じる。
【0005】
符号化単位がフレームであるため、ある番組のプログラムの最後で、ビデオストリームの最後とオーディオストリームの最後に、無視できないずれが生じてしまう可能性が高い。すなわち、ビデオストリームのスプライスポイント(あるプログラムに対する異なるプログラムのビデオストリームの繋ぎ目)に、オーディオストリームのフレームの切れ目が丁度位置すること、すなわち、ビデオストリームとのずれが生じないといったことが起こる可能性は低い。
【0006】
プログラムの最後のフレームにおいて、ビデオストリームとオーディオストリームが、図1に示されるように、時間的にずれている状態で、スプライシングを行うと、スプライシングにより生成されたプログラムは、ビデオフレームとオーディオフレームの同期がずれてしまうことになる。その結果、スプライシングを繰り返すと、そのずれ量は蓄積され、次第に大きくなってしまう。
【0007】
また、スプライシングする2つのプログラム間で、オーディオのチャンネル数が異なる場合、その異なるチャンネル数のオーディオストリームがスプライシングされたエレメンタリストリームを変換して生成されたトランスポートストリームを処理するデコーダによっては、プログラムの繋ぎ目で、ストリームを先頭から正確に再生することができなくなってしまう時がある。
【0008】
例えば、オーディオのチャンネル数が4チャンネルである1つ目のプログラムに対して、オーディオのチャンネル数が2チャンネルである2つ目のプログラムをスプライシングした場合、そのプログラムのトランスポートストリームを受信したデコーダは、スプライシングの位置以降、デコードしていたオーディオのあるチャンネルが存在しなくなったと判断し、ビデオストリームとオーディオストリームがそろってから処理を開始する為のリセットの処理を実行してしまう可能性がある。
【0009】
さらに、オーディオのチャンネル数が2チャンネルである1つ目のプログラムに、オーディオのチャンネル数が4チャンネルである2つ目のプログラムをスプライシングした場合、そのプログラムのトランスポートストリームを受信したデコーダは、スプライシングされた位置以降、1つ目のプログラムでは存在しなかった4チャンネルのオーディオが存在する2つ目のプログラムについて、増加したオーディオチャンネルのオーディオを先頭から再生できない可能性があるといった課題があった。
【0010】
本発明はこのような状況に鑑みてなされたものであり、スプライシング処理によりビデオフレームに対するオーディオフレームのずれが蓄積するのを抑制することを目的とする。また、オーディオデータを確実に再生できるようにすることを目的とする。
【0016】
【課題を解決するための手段】
本発明の第1の情報処理装置は、オーディオデータとビデオデータの処理単位毎の同期のずれ量を検出する検出手段と、先行する他の処理単位に対して、処理単位のオーディオデータとビデオデータを繋ぐ処理をした場合でもオーディオデータとビデオデータが同期するためのずれ量を示す第1のずれ量を、検出手段により検出された同期のずれ量に基づいて演算する第1のずれ量演算手段と、第1のずれ量を含む、処理単位毎のヘッダを生成する第1の生成手段と、オーディオデータとビデオデータを含む処理単位のブロックを生成し、第1の生成手段により生成されたヘッダを付加する第2の生成手段と、第2の生成手段によりヘッダが付加されたオーディオデータとビデオデータを含むブロックを出力し、処理単位を記録媒体に供給し、記録させる出力手段と、1つまたは複数の処理単位のオーディオデータとビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って記録媒体から読み出されたプログラムのデータから、複数のプログラムを構成する処理単位に対応する各ブロックのヘッダに含まれる第1のずれ量を抽出する抽出手段と、複数のプログラムを所定の順番で接続したときの再生順序において先行する処理単位に対して、オーディオデータとビデオデータの処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位の同期のずれ量に対応する第2のずれ量を、ブロック毎に演算する第2のずれ量演算手段と、抽出手段により抽出された第1のずれ量と、第2のずれ量演算手段により演算された第2のずれ量に基づいて、処理単位毎にずれ量を補正するずれ量補正手段とを備えることを特徴とする。
【0022】
前記第2のずれ量演算手段は、処理単位毎に演算される先行する処理単位のタイムスタンプと、処理単位の長さに基づいて、第2のずれ量を演算することができる。
【0023】
前記第2のずれ量演算手段は、先行する処理単位のオーディオデータのプレゼンテーションタイムスタンプに、処理単位のオーディオデータの長さを加算した値と、先行する処理単位のビデオデータのデコーディングタイムスタンプに、処理単位のビデオデータの長さを加算した値との差に基づいて、第2のずれ量を演算することができる。
【0024】
前記第1のずれ量が、第2のずれ量より大きいか否かを判断する判断手段と、判断手段により、第1のずれ量が、第2のずれ量より大きいと判断された場合、先行する処理単位のオーディオデータに、1つの符号化単位の無音のデータを挿入する挿入手段とをさらに備えることができる。
【0025】
前記第2のずれ量が、第1のずれ量より大きく、かつ、第2のずれ量と第1のずれ量の差が、オーディオデータの1符号化単位以上であるか否かを判断する判断手段と、判断手段により、第2のずれ量が、第1のずれ量より大きく、かつ、その差がオーディオデータの1符号化単位以上であると判断された場合、第2のずれ量と、第1のずれ量の差が、オーディオデータの1符号化単位より小さくなるように、先行する処理単位のオーディオデータを、オーディオデータの処理単位を構成する符号化単位で削除する削除手段とをさらに備えることができる。
【0026】
前記オーディオデータのチャンネル数が、扱えるチャンネル数の最大値よりも少ないか否かを判断する判断手段をさらに備え、出力手段は、判断手段により、オーディオデータのチャンネル数が、最大値よりも少ないと判断された場合、チャンネル数が、最大値と等しくなるようにチャンネル数を増加し、増加したチャンネルに対して無音のデータを付加して出力することができる。
【0027】
本発明の第1の情報処理方法は、オーディオデータとビデオデータの処理単位毎の同期のずれ量を検出する検出ステップと、先行する他の処理単位に対して、処理単位のオーディオデータとビデオデータを繋ぐ処理をした場合でもオーディオデータとビデオデータが同期するためのずれ量を示す第1のずれ量を、検出ステップの処理により検出された同期のずれ量に基づいて演算する第1のずれ量演算ステップと、第1のずれ量を含む、処理単位毎のヘッダを生成する第1の生成ステップと、オーディオデータとビデオデータを含む処理単位のブロックを生成し、第1の生成ステップの処理により生成されたヘッダを付加する第2の生成ステップと、第2の生成ステップの処理によりヘッダが付加されたオーディオデータとビデオデータを含むブロックを出力し、処理単位を記録媒体に供給し、記録させる出力ステップと、1つまたは複数の処理単位のオーディオデータとビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って記録媒体から読み出されたプログラムのデータから、複数のプログラムを構成する処理単位に対応する各ブロックのヘッダに含まれる第1のずれ量を抽出する抽出ステップと、複数のプログラムを所定の順番で接続したときの再生順序において先行する処理単位に対して、オーディオデータとビデオデータの処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位の同期のずれ量に対応する第2のずれ量を、ブロック毎に演算する第2のずれ量演算ステップと、抽出ステップの処理により抽出された第1のずれ量と、第2のずれ量演算ステップにより演算された第2のずれ量に基づいて、処理単位毎にずれ量を補正するずれ量補正ステップとを含むことを特徴とする。
【0028】
本発明の第1の記録媒体のプログラムは、処理単位毎のビデオデータと、処理単位の大きさがビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、オーディオデータとビデオデータの処理単位毎の同期のずれ量を検出する検出ステップと、先行する他の処理単位に対して、処理単位のオーディオデータとビデオデータを繋ぐ処理をした場合でもオーディオデータとビデオデータが同期するためのずれ量を示す第1のずれ量を、検出ステップの処理により検出された同期のずれ量に基づいて演算する第1のずれ量演算ステップと、第1のずれ量を含む、処理単位毎のヘッダを生成する第1の生成ステップと、オーディオデータとビデオデータを含む処理単位のブロックを生成し、第1の生成ステップの処理により生成されたヘッダを付加する第2の生成ステップと、第2の生成ステップの処理によりヘッダが付加されたオーディオデータとビデオデータを含むブロックの出力を制御し、処理単位の記録媒体への供給と記録を制御する出力制御ステップと、1つまたは複数の処理単位のオーディオデータとビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って記録媒体から読み出されたプログラムのデータから、複数のプログラムを構成する処理単位に対応する各ブロックのヘッダに含まれる第1のずれ量を抽出する抽出ステップと、複数のプログラムを所定の順番で接続したときの再生順序において先行する処理単位に対して、オーディオデータとビデオデータの処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位の同期のずれ量に対応する第2のずれ量を、ブロック毎に演算する第2のずれ量演算ステップと、抽出ステップの処理により抽出された第1のずれ量と、第2のずれ量演算ステップにより演算された第2のずれ量に基づいて、処理単位毎にずれ量を補正するずれ量補正ステップとを含むことを特徴とする。
【0029】
本発明の第1のプログラムは、処理単位毎のビデオデータと、処理単位の大きさがビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、オーディオデータとビデオデータの処理単位毎の同期のずれ量を検出する検出ステップと、先行する他の処理単位に対して、処理単位のオーディオデータとビデオデータを繋ぐ処理をした場合でもオーディオデータとビデオデータが同期するためのずれ量を示す第1のずれ量を、検出ステップの処理により検出された同期のずれ量に基づいて演算する第1のずれ量演算ステップと、第1のずれ量を含む、処理単位毎のヘッダを生成する第1の生成ステップと、オーディオデータとビデオデータを含む処理単位のブロックを生成し、第1の生成ステップの処理により生成されたヘッダを付加する第2の生成ステップと、第2の生成ステップの処理によりヘッダが付加されたオーディオデータとビデオデータを含むブロックの出力を制御し、処理単位の記録媒体への供給と記録を制御する出力制御ステップと、1つまたは複数の処理単位のオーディオデータとビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って記録媒体から読み出されたプログラムのデータから、複数のプログラムを構成する処理単位に対応する各ブロックのヘッダに含まれる第1のずれ量を抽出する抽出ステップと、複数のプログラムを所定の順番で接続したときの再生順序において先行する処理単位に対して、オーディオデータとビデオデータの処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位の同期のずれ量に対応する第2のずれ量を、ブロック毎に演算する第2のずれ量演算ステップと、抽出ステップの処理により抽出された第1のずれ量と、第2のずれ量演算ステップにより演算された第2のずれ量に基づいて、処理単位毎にずれ量を補正するずれ量補正ステップとをコンピュータに実行させることを特徴とする。
【0030】
本発明の第2の情報処理装置は、1つまたは複数の処理単位のオーディオデータとビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って読み出されたプログラムのデータから、複数のプログラムを構成する処理単位に対応するオーディオデータとビデオデータを含む処理単位の各ブロックを抽出し、各ブロックに含まれるヘッダから、オーディオデータとビデオデータが同期するためのずれ量に対応する第1のずれ量を抽出する抽出手段と、複数のプログラムを所定の順番で接続したときに先行する処理単位に対して、オーディオデータとビデオデータの処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位の同期のずれ量に対応する第2のずれ量を、各ブロック毎に演算する演算手段と、第1のずれ量と、第2のずれ量に基づいて、複数のプログラムを所定の順番で接続したときの再生順序で、処理単位ごとに、オーディオデータとビデオデータを繋ぐ処理を行う繋ぎ手段とを備えることを特徴とする。
【0031】
前記演算手段は、処理単位毎に演算される先行する処理単位のタイムスタンプと、処理単位の長さに基づいて、第2のずれ量を演算することができる。
【0032】
前記演算手段は、先行する処理単位のオーディオデータのプレゼンテーションタイムスタンプに、処理単位のオーディオデータの長さを加算した値と、先行する処理単位のビデオデータのデコーディングタイムスタンプに、処理単位のビデオデータの長さを加算した値との差に基づいて、第2のずれ量を演算することができる。
【0033】
前記第1のずれ量が、第2のずれ量より大きいか否かを判断する判断手段と、判断手段により、第1のずれ量が、第2のずれ量より大きいと判断された場合、先行する処理単位のオーディオデータに、1つの符号化単位の無音のデータを挿入する挿入手段とをさらに備えることができる。
【0034】
前記第2のずれ量が、第1のずれ量より大きく、かつ、第2のずれ量と第1のずれ量の差が、オーディオデータの1符号化単位以上であるか否かを判断する判断手段と、判断手段により、第2のずれ量が、第1のずれ量より大きく、かつ、その差がオーディオデータの1符号化単位以上であると判断された場合、第2のずれ量と、第1のずれ量の差が、オーディオデータの1符号化単位より小さくなるように、先行する処理単位のオーディオデータを、オーディオデータの処理単位を構成する符号化単位で削除する削除手段とをさらに備えることができる。
【0035】
前記オーディオデータのチャンネル数が、扱えるチャンネル数の最大値よりも少ないか否かを判断する判断手段と、判断手段により、オーディオデータのチャンネル数が、最大値よりも少ないと判断された場合、チャンネル数が、最大値と等しくなるようにチャンネル数を増加し、増加したチャンネルに対して無音のデータを付加して出力する出力手段とをさらに備えることができる。
【0036】
本発明の第2の情報処理方法は、1つまたは複数の処理単位のオーディオデータとビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って読み出されたプログラムのデータから、複数のプログラムを構成する処理単位に対応するオーディオデータとビデオデータを含む処理単位の各ブロックを抽出し、各ブロックに含まれるヘッダから、オーディオデータとビデオデータが同期するためのずれ量に対応する第1のずれ量を抽出する抽出ステップと、複数のプログラムを所定の順番で接続したときに先行する処理単位に対して、オーディオデータとビデオデータの処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位の同期のずれ量に対応する第2のずれ量を、各ブロック毎に演算する演算ステップと、第1のずれ量と、第2のずれ量に基づいて、複数のプログラムを所定の順番で接続したときの再生順序で、処理単位ごとに、オーディオデータとビデオデータを繋ぐ処理を行う繋ぎステップとを含むことを特徴とする。
【0037】
本発明の第2の記録媒体のプログラムは、処理単位毎のビデオデータと、処理単位の大きさがビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、1つまたは複数の処理単位のオーディオデータとビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って読み出されたプログラムのデータから、複数のプログラムを構成する処理単位に対応するオーディオデータとビデオデータを含む処理単位の各ブロックを抽出し、各ブロックに含まれるヘッダから、オーディオデータとビデオデータが同期するためのずれ量に対応する第1のずれ量を抽出する抽出ステップと、複数のプログラムを所定の順番で接続したときに先行する処理単位に対して、オーディオデータとビデオデータの処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位の同期のずれ量に対応する第2のずれ量を、各ブロック毎に演算する演算ステップと、第1のずれ量と、第2のずれ量に基づいて、複数のプログラムを所定の順番で接続したときの再生順序で、処理単位ごとに、オーディオデータとビデオデータを繋ぐ処理を行う繋ぎステップとを含むことを特徴とする。
【0038】
本発明の第2のプログラムは、処理単位毎のビデオデータと、処理単位の大きさがビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、1つまたは複数の処理単位のオーディオデータとビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って読み出されたプログラムのデータから、複数のプログラムを構成する処理単位に対応するオーディオデータとビデオデータを含む処理単位の各ブロックを抽出し、各ブロックに含まれるヘッダから、オーディオデータとビデオデータが同期するためのずれ量に対応する第1のずれ量を抽出する抽出ステップと、複数のプログラムを所定の順番で接続したときに先行する処理単位に対して、オーディオデータとビデオデータの処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位の同期のずれ量に対応する第2のずれ量を、各ブロック毎に演算する演算ステップと、第1のずれ量と、第2のずれ量に基づいて、複数のプログラムを所定の順番で接続したときの再生順序で、処理単位ごとに、オーディオデータとビデオデータを繋ぐ処理を行う繋ぎステップとをコンピュータに実行させることを特徴とする。
【0039】
第1の本発明においては、第1のずれ量情報と第2のずれ量情報が算出される。第2のずれ量が第1のずれ量より大きいとき、先行するオーディオデータと入力オーディオデータとの間に、無音情報が挿入される。
【0040】
第2の本発明においては、オーディオデータとビデオデータの処理単位毎の同期のずれ量に対応する第1のずれ量が演算され、演算された第1のずれ量を含む、処理単位毎のヘッダが生成され、生成されたヘッダが、オーディオデータとビデオデータを含むブロックに付加される。
【0041】
第3の本発明においては、ヘッダから、オーディオデータとビデオデータの処理単位毎の同期のずれ量に対応する第1のずれ量が抽出され、第1の処理単位に対して、第2の処理単位を繋ぐ処理をした場合における、オーディオデータとビデオデータの処理単位毎の同期のずれ量を表す第2のずれ量が演算され、第1のずれ量と第2のずれ量に基づいて、繋ぐ処理が行われる。
【0042】
【発明の実施の形態】
以下に、本発明の実施の形態について図面を参照して説明する。図2は、本発明を適用したビデオサーバ1の一実施の形態の構成を示す図である。ビデオサーバ1は、例えば、異なる番組のプログラムを繋ぎ合わせたり、放送される番組中にコマーシャルを挿入する際などに用いられる装置である。
【0043】
ビデオサーバ1には、エンコーダ2とデコーダ3が接続されている。エンコーダ2により、例えば、MPEG2等の符号化方式によりエンコードされたビデオデータやオーディオデータは、トランスポートストリームの形式で、DVB-ASI(Digital Video Broadcasting-Asynchronous Serial Interface)ボード4に入力される。DVB-ASIボード4は、DVB-ASIインタフェース10、スプライシングIC(Integrated Circuit)11、PCI(Peripheral Component Interconnect)インタフェース12、CPU(Central Processing Unit)13、および、スイッチ14から構成されている。
【0044】
DVB-ASIインタフェース10は、エンコーダ2とスプライシングIC11との間のインタフェース処理、並びに、スプライシングIC11とデコーダ3との間のインタフェース処理を実行する。スプライシングIC11は、プログラムを、GOP(Group Of Picture)を処理単位として繋ぎ合わせる処理(スプライシング処理)を行い、その際、ビデオストリームとオーディオストリームに、無視できないずれが発生しないような処理(詳細は後述する)を行う。
【0045】
PCIインタフェース12は、ビデオサーバ1におけるバス5を介する他の部分、例えば、HDD(Hard Disk Drive)6とのデータの通信を制御する。CPU13は、DVB-ASIボード4の制御を行う。HDD6に記憶されているプログラムは、必要に応じて読み出され、DVB-ASIボード4により処理され、デコーダ3に供給され、デコードされ、後段に接続されている装置(不図示)に出力される。スイッチ14は、CPU13により制御され、スプライシングIC11の出力をPCIインタフェース12に出力するとき(記録モード時)、接点R側に切り替えられ、PCIインタフェース12の出力をDVB-ASIインタフェース10に供給するとき(再生モード時)、接点P側に切り替えられる。
【0046】
ビデオサーバ1におけるバス5には、SDI(Serial Digital Interface)エンコードボード7も接続されている。SDIエンコードボード7は、シリアルデータを入力するインタフェースを備え、入力されたデータをデコードするSDIデコーダ21、SDIデコーダ21から出力されたビデオデータをエンコードするビデオエンコーダ22、SDIデコーダ21から出力されたオーディオデータをエンコードするオーディオエンコーダ23、それらのエンコーダから出力されたデータをHDD6に供給するための制御を行うPCIインタフェース24、SDIエンコードボード7の各部を制御するCPU25、および、これらの各部を相互に接続するバス26から構成されている。
【0047】
図3は、スプライシングIC11の内部の構成を示す図である。バッファ41は、DVB-ASIインタフェース10を介して入力されるエンコーダ2またはPCIインタフェース12からのデータを一旦記憶し、その記憶したデータをBAC(Bus Arbitration Control Module)42に出力する。BAC42は、SDRAM(Synchronous Dynamic Random Access Memory)43とのデータの通信を制御する。SDRAM43に記憶されたデータは、パケット生成部44にBAC42を介して供給される。
【0048】
パケット生成部44によりローカルフォーマット化されたデータは、BAC42を介してバッファ46に供給される。バッファ46に供給されたデータは、必要に応じて、スイッチ14とPCIインタフェース12を介して、HDD6に供給されるか(記録モード時)、または、DVB-ASIインタフェース10を介してデコーダ3に供給される(再生モード時)。
【0049】
このような構成を有するビデオサーバ1の動作について説明する前に、以下の説明において必要となるMPEG2のエレメンタリストリームについて説明する。図4は、MPEG2のエレメンタリストリームにおけるデータの階層構造を示している。データは、GOP(Group Of Picture)が符号化の単位とされ、各GOPの先頭には、シーケンスヘッダが配置されている。1GOPは、N個(Nは正の整数であり、通常、N=15とされる)のビデオフレームで構成される。1ビデオフレームは、NTSC方式の場合、33msの長さとなる。
【0050】
1GOPのビデオデータの中に、少なくとも1フレームは、前後のフレームに依存されずに再生できるフレーム(Iピクチャ)を含む必要がある。1GOP中の再生は、このIピクチャを基にして行われる。そして、再生は、1GOPが最小単位となる。スプライシング処理は、GOPを処理単位として実行される。従って、スプライシングするプログラムの長さも、1GOPを単位とし、その整数倍となる。
【0051】
また、オーディオデータについては、1GOPのビデオデータに同期するオーディオデータが1GOPとして扱われる。オーディオデータも、24msの長さのフレーム(オーディオフレーム)が単位とされ、1GOPのオーディオフレーム数は、M個とされる(Mは整数であり、通常M=21とされる)。
【0052】
図5と図6は、ビデオフレームとオーディオフレームの同期ずれに関して説明する図である。図5に示されるように、オーディオデータがビデオデータと同期して出力される為に、GOPの先頭において、オーディオフレームがビデオフレームに対して有している必要があるずれ量を、PTS_FSとする。ここで、同期とは、1つのGOPのオーディオデータが、対応するGOPのビデオデータと同時に出力されることを意味する。なお、図5には、1GOP分の15個のビデオフレーム(Video1,Video2,・・・Video15)と、1GOP分の21個のオーディオフレーム(AAU1,AAU2,・・・AAU21)が示されている。点PVSは1GOP分のビデオデータの先頭の位置(ビデオフレームVideo1の先頭の位置)を表し、点PASは1GOP分のオーディオデータの先頭の位置(オーディオフレームAAU1の先頭の位置)を表している。従って、点PASと点PVSの時間軸上の差(点PASの時刻から点PVSの時刻を減算し得られる位相差)が、そのGOPにおけるオーディオフレームとビデオフレームのずれ量となる。
【0053】
PTS_FSは、先頭のオーディオフレームの先頭の位置の時刻から、先頭のビデオフレームの先頭の位置の時刻を減算して求められるずれ量のうちの本来のずれ量、すなわち、そのずれ量が存在することにより、ビデオデータとオーディオデータが同期して再生されるずれ量である。換言すれば、GOPの先頭において、オーディオフレームがビデオフレームに対してPTS_FSだけずれている場合、オーディオデータはビデオデータと同期して再生され、ずれ量が、PTS_FSではない場合、オーディオデータはビデオデータと同期して再生されない。
【0054】
図1を参照して説明したように、オーディオフレームとビデオフレームはその長さがお互いに異なっているため、プログラムの先頭でビデオデータとオーディオデータの同期(以下、適宜、AV同期と記述する)がとられていたとしても(オーディオデータがビデオデータと同時に出力されるようにタイミングが調整されていたとしても)、プログラムの最後で、ビデオデータとオーディオデータの間に、ずれが存在する可能性がある。そのようなビデオデータとオーディオデータのずれを含むプログラム(以下、第1のプログラムと称する)の後に、別のプログラム(以下、第2のプログラムと称する)をスプライシングした場合、そのずれが第2のプログラムに影響する。
【0055】
本発明においては、ビデオデータとオーディオデータを、それぞれ、GOP単位で順次繋ぐ処理が繰り返し行われ、ビデオデータとオーディオデータが連続的に出力されるが、このとき、次に処理されるGOPが、先行するGOPと同一のプログラムのものであるのか否かは判定されず、次に処理されるGOPが、先行するGOPと同一のプログラムのGOPであっても、異なるプログラムのGOPであっても、全く同様に処理される。
【0056】
次に処理されるGOPが、先行するGOPと同一のプログラムのGOPである場合、一般的には、オーディオフレームは、ビデオフレームと同期するように、すなわち、ずれがPTS_FSとなるように調整されている。しかしながら、次に処理されるGOPが、先行するGOPと異なるプログラムのGOPである場合、一般的には、図6に示されるように、オーディオフレームはビデオフレームと同期しなくなる。
【0057】
本発明では、図6に示されるように、先行するGOPに対して次のGOPを、そのままスプライシングした場合(ビデオデータに対するオーディオデータのずれ量を変更、調整することなくスプライシングした場合)における、ビデオデータの次のGOP82と、オーディオデータの次のGOP92に発生するずれ量を、PTS_FS_SPLYCEとする。
【0058】
なお、図6において、ハッチングを施さずに示されているビデオフレームVideo1(P1)乃至Video15(P1)は、先行するGOP81のビデオフレーム(スプライシングされるGOPのビデオフレーム)を表しており、ハッチングを施して示されているビデオフレームVideo1(P2)乃至Video15(P2)は、次のGOP82のビデオフレーム(スプライシングするGOPのビデオフレーム)を表している。
【0059】
また、ハッチングを施さずに示されているオーディオフレームAAU1(P1)乃至AAU21(P1)は、先行するGOP91のオーディオフレーム(スプライシングされるGOPのオーディオフレーム)を表しており、ハッチングを施して示されているオーディオフレームAAU1(P2)乃至AAU21(P2)は、次のGOP92のオーディオフレーム(スプライシングするGOPのオーディオフレーム)を表している。
【0060】
さらに、図6に示されるように、先行するGOPに対して次のGOPを、そのままスプライシングした場合における次のGOP82の最後のビデオフレームVideo15(P2)の最後部の位置を、PTS_VIDEO_LASTとし、次のGOP92の最後のオーディオフレームの最後部の位置を、PTS_AUDIO_LASTとする。次のGOP92のオーディオフレームの、次のGOP82のビデオフレームに対するずれ量がPTS_FSである場合、即ち、第1のプログラムと第2のプログラムが同期している場合(GOP92のオーディオフレームがGOP82のビデオフレームに同期している場合)、におけるPTS_AUDIO_LASTは、PTS_FS_ORGとなる。
【0061】
ずれ量PTS_FSとずれ量PTS_FS_SPLYCEは、GOP毎に変化する。図6のずれ量は、第1のプログラムの最後のGOP81,GOP91を基準とするものであるので、ずれ量PTS_FSとずれ量PTS_FS_SPLYCEは、それぞれ、ずれ量PTS_FS(P1)またはずれ量PTS_FS_SPLYCE(P1)として示されている。ここで、PTS_FS(P1)は、GOP81のビデオフレームのデータとGOP91のオーディオフレームのデータが、VIDEO/AUDIOデータ64として含まれるGOPのAudio_Header63(後述する図7)に格納される。
【0062】
スプライシングIC11のCPU45は、エンコーダ2より入力されたデータをHDD6に記憶するとき、データをローカルフォーマットのデータに変換する。このローカルフォーマットにおいては、データは、図7に示されるように、1GOP単位でブロック化されて記録される(記録処理の詳細は、図8のフローチャートを参照して後述する)。各ブロックには、デコードに必要な情報を含むローカルヘッダが付加される。図7に示されるように、1GOPのデータは、ローカルヘッダ60と、VIDEO/AUDIOデータ64から構成される。ローカルヘッダ60は、System_Header61、Video_Header62、およびAudio_Header63により構成されている。
【0063】
System_Header61には、Video_Header62、Audio_Header63、およびVIDEO/AUDIOデータ64の、このブロックにおける位置を表す位置情報や、このRecording Unitの再生時間といった情報が含まれる。
【0064】
Video_Header62には、その1GOP分のビデオフレームのPTS(Presentation Time Stamp)を表す情報(Video_ PTS)、DTS(Decording Time Stamp)(Video_ DTS)を表す情報、各種のVideoエンコードに関わるパラメータなどの情報が含まれる。なお、PTSとDTSとしては、記録時に、先頭のビデオフレームを初期値0とするSTC(System Time Clock)をカウントした値が格納される。Audio_Header63には、その1GOP分のオーディオフレームのAudio_PTSを表す情報、PTS_FSを表す情報、各種のAudioのエンコードに関わるパラメータ(例えば、サンプリング周波数、チャンネル数)に関する情報などが含まれる。なお、オーディオデータの場合、プレゼンテーションタイムスタンプは、デコーディングタイムスタンプと等しいので、Audio_PTSは、Audio_DTSでもある。なお、このAudio_PTSとしては、記録時に、先頭のオーディオフレームを初期値0とするSTCをカウントした値が格納される。
【0065】
VIDEO/AUDIOデータ64には、実際にエンコードされたビデオデータとオーディオデータが含まれる。
【0066】
次に、図8のフローチャートを参照してエンコーダ2によりエンコードされたデータをHDD6に記録する場合のスプライシングIC11の動作について説明する。
【0067】
ステップS1において、スプライシングIC11のCPU45は、トランスポートストリームを取り込む処理を実行する。すなわち、エンコーダ2は、例えば、MPEG2方式で、エンコードしたビデオデータとオーディオデータを含むトランスポートストリームを、DVB-ASIボード4に出力する。DVB-ASIボード4のDVB-ASIインタフェース10は、エンコーダ2より入力されたトランスポートストリームをスプライシングIC11に供給する。スプライシングIC11は、このトランスポートストリームを取り込む。
【0068】
スプライシングIC11のバッファ41は、DVB-ASIインタフェース10を介してエンコーダ2より供給されたデータを一時的に蓄積した後、BAC42に供給する。BAC42は、このデータをSDRAM43に供給し、記憶させる。CPU45は、SDRAM43に記述されたデータを読み込み、トランスポートストリームをエレメンタリストリームに変換する。
【0069】
次に、ステップS2において、CPU45は、ステップS1の処理で変換されたエレメンタリストリームのGOPのタイムスタンプAudio_PTSとVideo_DTSを演算する。具体的には、CPU45は、ビデオストリームの先頭のビデオフレームからGOPの数を計数し、最初のGOPの先頭のビデオフレームの先頭の位置を初期値0として、STC(System Time Clock)をカウントして得られた値をタイムスタンプVideo_DTSに設定する。従って、最初のGOPの処理の時、このタイムスタンプVideo_DTSの値は、0となる。
【0070】
同様に、CPU45は、オーディオストリームの先頭のオーディオフレームからGOPの数を計数し、最初のGOPの先頭のオーディオフレームの先頭の位置を初期値0として、STCをカウントして得られた値をタイムスタンプAudio_PTSに設定する。従って、最初のGOPの処理の時、このタイムスタンプAudio_PTSは、0となる。
【0071】
次に、ステップS3において、CPU45は、ステップS2の処理で演算したタイムスタンプに基づいて、オーディオデータのビデオデータに対するずれ量aを次式に基づいて演算する。
【0072】
a=Audio_PTS−Video_DTS・・・(1)
【0073】
処理対象とされているGOPのずれ量aがステップS3の処理で演算された後、ステップS4において、CPU45は、ステップS3の処理で演算して求めたずれ量aが、1ビデオフレーム(符号化単位)の長さより長いか否かを判定する。1ビデオフレームの長さは、90kHzの周波数のSTC(System Time Clock)のカウント値で、3003(=90000/29.97)とされる。ステップS3で求めたずれ量が1ビデオフレームの長さ(3003)より長い場合には、ステップS5に進み、CPU45は、ステップS3の処理で求めたずれ量aから、1ビデオフレーム分の長さを次式に基づいて演算することで、ずれ量aを補正する。
【0074】
a=a−3003・・・(2)
【0075】
このようにして、オーディオフレームから見て、同期をとるためのビデオフレームが探索される。すなわち、オーディオフレームから見て、1ビデオフレーム以上離れているビデオフレームは、同期をとる対象のビデオフレームではないものとするために(離れている距離が1ビデオフレーム未満であるビデーフレームを同期対象のビデオフレームとするために)、ずれ量aが補正される。
【0076】
ステップS4において、ステップS3の処理で求めたずれ量aが、1ビデオフレームの長さより長くないと判定された場合、ステップS5の処理はスキップされる。すなわち、この場合には、ステップS3の処理で演算されたずれ量aが次式で示されるように、そのままずれ量を表す値として保持される。
【0077】
a=Audio_PTS−Video_DTS・・・(3)
【0078】
次に、ステップS6において、CPU45は、次式に基づいて、ずれ量PTS_FSを演算する。
【0079】
PTS_FS=((a×48000)/90000)&0x7ff・・・(4)
【0080】
上記式において、90000は、STCの周波数であり、この値で割算することにより、ずれ量aが秒に換算される。そして、秒に換算された値に48000を乗算することにより、ずれ量をオーディオのサンプリングクロックに対応する値に換算する。なお、この48000の値は、オーディオデータのサンプリング周波数に対応する値であり、トランスポートストリームを解析した結果、オーディオデータのサンプリング周波数が他の周波数である場合には、その値が使用される。
【0081】
「&0x7ff」は、マスクをかけて有効桁だけを取り出す処理を意味する。この例の場合、下位11ビットのデータだけが取り出される。これは、ずれ量が最大でも11ビット以下で表すことができるためである。これにより、位相ずれを表すパラメータのビット数が必要以上に大きくなることが防止される。
【0082】
ステップS7において、CPU45は、トランスポートストリームを解析し、その他のローカルヘッダの情報を得る。すなわち、図7に示したSystem_Header61、Video_Header62、およびAudio_Header63に記録するために必要なデータを取得する。この場合において、Audio_Header63の各種オーディオエンコードパラメータの1つとして、CPU45は、オーディオデータのサンプリング周波数(いまの例の場合、48kHz)を取得する。
【0083】
ステップS8において、CPU45は、それまでの処理で生成して得られたパラメータをパケット生成部44に転送し、ローカルヘッダ60を生成させる。すなわち、図7におけるSystem_Header61、Video_Header62、およびAudio_Header63が生成される。
【0084】
ステップS9において、CPU45は、1GOP分のエレメンタリストリームが揃ったか否かを判定し、揃っていない場合には、揃うまで待機する。
【0085】
ステップS9において、1GOP分のエレメンタリストリームが揃ったと判定された場合、ステップS10に進み、CPU45は、そのデータをパケット生成部44に供給する。パケット生成部44は、供給されてきたデータを、VIDEO/AUDIOデータ64に格納し、1GOP分のブロックを生成し、そのブロックにステップS8の処理で生成したローカルヘッダを付加する。
【0086】
ステップS11において、CPU45は、ステップS10の処理でパケット生成部44により生成された、ローカルヘッダ60を付加した1GOP分のブロックのデータを、バッファ46に転送する。
【0087】
バッファ46は、パケット生成部44より転送されてきた1GOP分のブロックのデータを受信すると、これを一時的に記憶した後、出力する。
【0088】
バッファ46より出力されたデータは、このとき、CPU13により、接点R側に切り替えられているスイッチ14を介して、PCIインタフェース12に供給される。PCIインタフェース12は、スイッチ14より入力されたデータをバス5を介して、HDD6に転送し、記録させる。
【0089】
次に、ステップS12において、CPU45は、ユーザから記録処理の終了が指示されたか否かを判定し、指示されていない場合、ステップS2に戻り、次のGOPを取得し、そのGOPについて、同様の処理を実行する。ステップS12において、ユーザから記録処理の終了が指示されたと判定された場合、CPU45は、処理を終了する。
【0090】
以上のようにして、データがGOP単位で、図7に示されるようなローカルフォーマットの記録単位としてのブロック(ローカルブロック)にブロック化され、HDD6に記録される。
【0091】
以上のようにして、HDD6に記録されたデータは、その後、ユーザにより指示されたとき、HDD6から読み出され、DVB-ASIボード4によりスプライシング処理がなされた後、エレメンタリストリームからトランスポートストリームに変換される。そして、そのトランスポートストリームは、デコーダ3に供給され、デコードされ、図示せぬ装置に出力される。
【0092】
すなわち、ビデオサーバ1の図示せぬコントローラは、ユーザにより指定されたプログラムが再生順序に沿って並べられたプレイリストを受け取ると、そのプレイリストに従って、各プログラムのデータをHDD6から順次読み出し、1GOP毎に、スプライシングIC11に転送する。スプライシングIC11はスプライシング処理を実行する。
【0093】
次に、スプライシングIC11(図2と図3)において行われるスプライシング処理について、図9のフローチャートを参照して説明する。なお、この処理は、GOP単位で実行される。
【0094】
ステップS31において、1GOP分(図7に示される1ブロック分)のMPEG2のデータが、HDD6から読み出され、バス5を介してPCIインタフェース12に入力される。PCIインタフェース12は、入力されたデータを、このときCPU13により接点P側に切り替えられているスイッチ14を介してDVB-ASIインタフェース10に出力する。DVB-ASIインタフェース10は、スイッチ14より入力されたデータを、スプライシングIC11に供給する。スプライシングIC11においては、バッファ41に1GOP分のMPEG2のデータが蓄積される。CPU45は、この蓄積されたデータを、バッファ41からBAC42を介してSDRAM43に記憶させる。CPU45は、SDRAM43に記憶されたブロックのローカルヘッダ60のAudio_Heder63から、そのGOPのずれ量PTS_FSを抽出する。このずれ量PTS_FSは、図8のステップS6の処理で演算され、ステップS10の処理でAudio_Heder63に格納されたものである。
【0095】
ステップS32において、CPU45は、SDRAM43に記憶されたデータから、ビデオデータのPTS_VIDEO_LAST(図6)を次式に基づいて算出する。
【0096】
PTS_VIDEO_LAST=Video_DTS+N×3003・・・(5)
【0097】
なお、上記式におけるNは、1GOPを構成するビデオフレームの数(通常N=15であり、その値はVideo_Header62の各種ビデオエンコードパラメータ(図7)の1つとして記述されている)を表す。3003は、1ビデオフレームの長さであり、その値も、Video_Header62の各種ビデオエンコードパラメータ(図7)の1つとして記述されている。
【0098】
スプライシング処理が開始されたとき、CPU45は、最初に入力されたビデオデータの先頭から、初期値0として、GOPの数をカウントし、それまでにカウントしたGOPの数に対応するSTCの値をタイムスタンプVideo_DTSとしている。従って、タイムスタンプVideo_DTSは、先行するGOPの最後のビデオフレームの最後尾の位置を表していることになる。PTS_VIDEO_LASTは、先行するGOPに引き続き、次のGOPがそのまま出力されたときの出力終了時刻を表す。
【0099】
ステップS33において、CPU45は、次式に基づいてPTS_AUDIO_LAST(図6)を算出する。
【0100】
PTS_AUDIO_LAST=Audio_PTS+M×1152・・・(6)
【0101】
なお、上記式において、Mは、1GOPを構成するオーディオフレームの数を表し、いまの場合、M=21となる。また、1152は、1オーディオフレームのサンプリング周波数で係数した長さを表す。すなわち、1オーディオフレームの長さは24msecであるため、48kHzのサンプリング周波数でその長さを計数すると、24msec×48kHz=1152となる。これらのMと1152の値は、Audio_Header63の各種オーディオエンコードパラメータ(図7)の1つとして記述されている。
【0102】
このタイムスタンプAudio_PTSも、スプライシング処理が開始されたとき、CPU45が、最初に入力されたプログラムのオーディオデータの最初から、初期値0として、GOP(ビデオデータのGOPに対応するGOP)の数をカウントし、それまでにカウントしたGOPの数に対応するSTCの値をタイムスタンプAudio_PTSとしている。従って、タイムスタンプAudio_PTSは、先行するGOPの最後のオーディオフレームの最後尾の位置を表していることになる。 PTS_AUDIO_LASTは、先行するGOPに引き続き、次のGOPがそのまま出力されたときの出力終了時刻を表す。
【0103】
CPU45は、ステップS32とステップS33において、それぞれ算出した値を用いて、ステップS34において、次式に基づいて、ずれ量PTS_FS_SPLYCE(図6)を算出する。
【0104】
PTS_FS_SPLYCE=PTS_AUDIO_LAST−PTS_VIDEO_LAST・・・(7)
このPTS_FS_SPLYCEは、図5と図6を参照して説明したように、先行するGOPに対して次のGOPを、そのままスプライシングした場合における、先行するGOPの最後のフレームでの、ビデオフレームとオーディオフレームの最後尾でのずれ量を示す値である。
【0105】
この式により求められたずれ量PTS_FS_SPLYCEの値が用いられて、以下の判断が行われる。すなわち、ステップS35において、CPU45は、ステップS31で抽出したずれ量PTS_FSが、ステップS34の処理で演算したずれ量PTS_FS_SPLYCEより大きいか否かを判断する。
【0106】
この判断について図10を参照して説明する。なお、ずれ量PTS_FSは、上述したように、第2のプログラムの最初のGOPの先頭でビデオフレームとオーディオフレームが同期するために必要なずれ量である。
【0107】
図10において、ハッチングを施さずに示す4角形のブロックは、前のプログラム(第1のプログラム)を構成する最後のGOP(先行するGOP)81のビデオフレーム(Video1(P1)乃至Video15(P1))(図10A)、または前のプログラム(第1のプログラム)を構成する最後のGOP(先行するGOP)91のオーディオフレーム(AAU1(P1)乃至AAU21(P1))(図10B)を示す。ハッチングを施して示される4角形のブロックは、次のプログラム(第2のプログラム)を構成する先頭のGOP(先行するGOPの次のGOP)82の先頭のビデオフレーム(Video2(P2))(図10A)、または次のプログラム(第2のプログラム)を構成する先頭のGOP(先行するGOPの次のGOP)92の先頭のオーディオフレーム(AAU1(P2))(図10B)を示す。
【0108】
スプライシングの結果、次のプログラム(第2のプログラム)を構成する先頭のGOP92の先頭のオーディオフレーム(AAU1(P2))が、図10Cに示される位置に位置するとき、すなわち、ずれ量PTS_FS_SPLYCEが、ずれ量PTS_FSと等しいとき、オーディオフレームはビデオフレームと同期がとれる状態になる。
【0109】
図10Dに示したように、スプライシングの結果、オーディオフレームが、ビデオフレームに対して、同期がとれている状態の位置より、時間的に前に位置するようになると(位相が進んだ状態になると)、対応する映像と音声を同時に視聴した人間は、違和感を感じるようになる。
【0110】
これに対して、図10Bに示されるように、オーディオフレームがビデオフレームに対して、同期がとれている状態(図10C)より、時間的に後の位置に位置している場合(位相が遅れた状態になると)、時間的に前に位置する場合に比べて、人間は、違和感を感じないことが知られている。
【0111】
ステップS35の処理は、オーディオフレームがビデオフレームに対して、同期している状態より時間的に前に位置している(音が映像に対して先行している状態)か、後に位置している(音が映像に対して遅れている状態)かを判断する処理である。
【0112】
ステップS35において、ずれ量PTS_FS_SPLYCEが、ずれ量PTS_FSより小さいと判断された場合、すなわち、図10Dのような状態(音が映像に対して先行している状態)であると判断された場合、ステップS37に進み、CPU45は、オーディオフレームに対して1フレーム分の無音フレーム(無音のAAU)を挿入(付加)し、その後に、本来のオーディオフレームをスプライシングする。なお、無音フレームは、無音のオーディオフレームを予め作成しておくか、または作成せずとも、予め取得しておき、その無音のオーディオフレームをスプライシングIC11で保持しておき、必要に応じて、その保持されている無音フレームを読み出すようにすればよい。
【0113】
一方、ステップS35において、ずれ量PTS_FS_SPLYCEが、ずれ量PTS_FSより小さくないと判断された場合、すなわち、図10Bに示されるような状態であると判断された場合(音が映像に対して遅れている状態の場合)、ステップS36に進む。ステップS36において、CPU45は、オーディオフレームを、そのまま(無音フレームを挿入することなく)出力する。
【0114】
ステップS36またはステップS37の処理の後、ステップS38に処理が進む。ステップS38において、CPU45は、ずれ量PTS_FS_SPLYCEが、1個のオーディオフレーム(符号化単位)の長さAAU_SIZEと、ずれ量PTS_FSの和より大きいか否か(ずれ量PTS_FS_SPLYCEが、ずれ量PTS_FSより大きく、かつ、その差が、1個のオーディオフレームの長さAAU_SIZEより大きいか否か)を判断する。
【0115】
ステップS38における判断について、図11を参照して説明する。図10と同様に、ハッチングを施していない4角形のブロックは、前のプログラム(第1のプログラム)を構成する最後のGOP(先行するGOP)81のビデオフレーム(Video1(P1)乃至Video15(P1))(図11A)、または前のプログラム(第1のプログラム)を構成する最後のGOP(先行するGOP)91のオーディオフレーム(AAU1(P1)乃至AAU21(P1))(図11B)を示す。ハッチングを施して示される4角形のブロックは、次のプログラム(第2のプログラム)を構成する先頭のGOP(先行するGOPの次のGOP)82の先頭のビデオフレーム(Video2(P2))(図11A)、または次のプログラム(第2のプログラム)を構成する先頭のGOP(先行するGOPの次のGOP)92の先頭のオーディオフレーム(AAU1(P2))(図11B)を示す。
【0116】
スプライシングの結果、次のGOP92の先頭のオーディオフレーム(AAU1(P2))が、図11Cに示される位置に位置するとき、すなわち、ずれ量PTS_FS_SPLYCEが、ずれ量PTS_FSと等しいとき、オーディオフレームはビデオフレームと同期がとれた状態になる。
【0117】
図11Bに示されるように、先行するGOP91の最後のフレームとの関係で、オーディオフレームとビデオフレームが同期された状態(図11C)からのずれ量が、1オーディオフレーム以上の長さになることがある。ビデオフレームに対するオーディオフレームの遅れが、1オーディオフレーム以上の長さになると、人間は、その遅れを認識し、違和感を覚えるようになる。
【0118】
そこで、ステップS38において、ずれ量PTS_FS_SPLYCEが、1個のオーディオフレームの長さAAU_SIZEと、ずれ量PTS_FSの和より大きいと判断された場合、すなわち、図11Bに示されるように、ずれ量の差が、1オーディオフレーム以上の長さであると判断された場合、ステップS39に進み、CPU45は、1GOPのうち、D個(ずれ量が、1オーディオフレーム未満になる数)のオーディオフレームを削除する。Dの値は、次式で演算される。
INT(D)=PTS_FS_SPLYCE / AAU_SIZE・・・(8)
なお、INT(D)は、Dの値のうちの整数部の値を表す。
【0119】
一方、ステップS38において、ずれ量PTS_FS_SPLYCEが、1個のオーディオフレームの長さAAU_SIZEと、ずれ量PTS_FSの和より大きくはないと判断された場合、ステップS39の処理はスキップされる。
【0120】
なお、ステップS38,S39の処理は、オプションであり、省略することも可能である。ただし、ステップS38,S39の処理も実行した方が、それだけずれ量の蓄積を抑制することができるので好ましいことはいうまでもない。
【0121】
以上により、1GOP分のスプライシング処理が完了したことになる。スプライシング処理が完了した1GOP分のデータは、CPU45により、エレメンタリストリームからトランスポートストリームに変換された後、パケット生成部44によりパケット化され、バッファ46を介して、DVB-ASIインタフェース10により、DVB-ASIフォーマットに変換されて、デコーダ3に出力される。デコーダ3は、入力されたデータをデコードし、図示せぬ装置に出力する。
【0122】
図9には、1GOP分の処理のみが示されているが、以上の処理が、1GOP毎に繰り返し行われる。従って、スプライシングIC11は、プログラムの変化を意識することなく(第1のプログラムから、それと異なる第2のプログラムに変化したことを検出したりする処理を行うことなく)、効率的に、スプライシング処理を実行することができる。
【0123】
オーディオフレームが、ビデオフレームに対して、同期の位置より前の位置にずれている(時間的に先行している)と判断された場合、無音の1オーディオフレームを挿入し、オーディオフレームが、ビデオフレームに対して、同期の位置より後の位置にずれており、かつ、そのずれ量がオーディオデータの1符号化単位(1オーディオフレーム)以上であると判断された場合、ずれ量が、オーディオデータの1符号化単位未満になるように、オーディオデータを符号化単位で削除するようにすることで、オーディオフレームとビデオフレームのずれ量が、視聴者により認識されてしまう量になるようなことを抑制することが可能となる。
【0124】
次に、繋ぎ合わせる(スプライシングする)前後のプログラムで、オーディオのチャンネル数が異なる場合の処理について説明する。なお、以下に説明するオーディオのチャンネル数が異なる場合の処理は、以上に説明した記録処理またはスプライシング処理と平行して実施することができるが、それらの処理とは独立して、単独の処理としても実行することができる。
【0125】
図12は、トランスポートストリームの階層データ構造について説明する図である。トランスポートストリームには、複数のプログラムが多重化されている。1つのプログラムにおいても同様に、ビデオストリームとオーディオストリームが多重化されている。
【0126】
多重化は、ビデオストリームとオーディオストリームをそれぞれパケット化することで行われる。
【0127】
トランスポートストリームには、また、プログラムアソシエーションテーブル(PAT)を含むパケットが所定の周期で伝送される。図12の例では、このプログラムアソシエーションテーブルのプログラムID(PID)は0とされている。プログラムアソシエーションテーブルには、プログラムマップテーブル(PMT)のPIDが記述されている。図12の例では、MiとMjのPIDがプログラムアソシエーションテーブルに記述されている。
【0128】
このプログラムマップテーブルを含むパケットも所定の周期でトランスポートストリーム中に配置される。このプログラムマップテーブルには、対応するプログラムを構成するストリームのPIDが記述される。
【0129】
図12の例では、PIDがMiのプログラムマップテーブルには、ViのビデオストリームのPIDと、AiのオーディオストリームのPIDが記述されている。PIDがAiのプログラムのチャンネル数は2(1つのブロックが2チャンネル(左右のステレオ信号に対応する)とされている。これに対して、PIDがMjのプログラムマップテーブルには、VjのビデオストリームのPIDが記述されているとともに、A1jのオーディオストリームのPIDと、A2jのオーディオストリームのPIDが記述されている。PIDがVjのビデオストリームに対応するオーディオストリームは、PIDがA1j,A2jのオーディオストリームとなるので、合計のチャンネル数は4とされている。
【0130】
トランスポートストリームは、図13に示されるように、予め決められたサイズ(188バイト)の複数のパケットが多重化されて構成されるストリームである。そのため、MPEG2のデータであるビデオデータやオーディオデータは、パケットサイズに分割され、その単位で多重化される。図13において、V1,V2などは、パケットサイズに分割されたビデオデータを示し、A1,A2などは、パケットサイズに分割されたオーディオデータを示す。PAT,PMTは、それぞれ、図12におけるプログラムアソシエーションテーブル記述したパケット(PID=0のパケット)、またはプログラムマップテーブルを記述したパケット(PID=Mi,Mjのパケット)を表す。NULLは、パケットのタイミングを調整するために挿入されたパケットであり、ダミーのデータが格納されている。
【0131】
これらのパケットの、どの種類のパケットが伝送されるかは、伝送される各データのデータ量に応じて、エンコーダ2により適宜決定される。すなわち、その時点において、伝送するビデオデータのデータ量が多ければ、ビデオパケットの数が増加され、オーディオデータのデータ量が多ければ、オーディオデータのパケットが増加される。
【0132】
次に、図14を参照して、スプライシングIC11が、オーディオチャンネル数が異なるプログラムをスプライシングする場合について説明する。オーディオチャンネル数が、異なる2つのプログラムがスプライシングされた場合、スプライシング後の1つのプログラムのPIDが、途中で(スプライシング点を境にして)変化することになる。
【0133】
図14の例においては、スプライシングされるプログラム1は、PIDがViのビデオストリームと、PIDがAiのオーディオストリームにより構成されている。すなわち、プログラム1のオーディオストリームのチャンネル数は2とされている。
【0134】
これに対して、プログラム1に対してスプライシングするプログラム2は、PIDがVjのビデオストリームにより構成される他、PIDがA1jのオーディオストリームと、PIDがA2jのオーディオストリームとにより構成されている。すなわち、プログラム2のオーディオストリームのチャンネル数は4とされている。
【0135】
従って、プログラム1に対して、プログラム2をスプライシング処理すると、オーディオチャンネル数が途中で2チャンネル分だけ増加することになる。
【0136】
オーディオチャンネル数が増加するか、または、減少することにより、PID数が変化すると、トランスポートストリームを処理するデコーダによっては、PIDの変化を認識するタイミングにより、先頭から再生できないチャンネルが発生してしまう場合がある。
【0137】
そこで、CPU45は、自分自身が処理可能な最大のオーディオチャンネルの数より、入力された信号のオーディオチャンネルの数が少ない場合、オーディオチャンネルのチャンネル数が、自分自身が処理可能な最大のオーディオチャンネルの数に等しくなるようにチャンネル数を増加し、増加したチャンネルに対して無音のパケットを出力する。これにより、チャンネル数の増減がないので、デコーダは、全てのチャンネルのオーディオデータを、先頭から正しく再生することが可能となる。
【0138】
次に、図15を参照して、スプライシングIC11において行われる、スプライシング処理時に、スプライシングの前後でオーディオチャンネル数が変化する場合のチャンネル数調整処理について説明する。この処理は、図9のスプライシング処理と平行して実行される。そして、この処理は、HDD6から読み出され、バス5を介してPCIインタフェース12に入力され、そこからさらにスイッチ14の接点P、およびDVB-ASIインタフェース10を介してスプライシングIC11にデータが入力されたとき開始される。
【0139】
ステップS51において、CPU45は、ローカルフォーマット(Local Format)のHDD6から読み取られたデータを、バッファ41とBAC42を介してSDRAM43に取り込む。図8を参照して説明したように、CPU45は、データをHDD6に記録するとき、データを、図7に示されるようなブロック単位で構成されるローカルフォーマットのデータに変換するので、このとき取り込まれるデータは、ローカルフォーマットのデータとなっている。
【0140】
ステップS52において、CPU45は、ローカルヘッダ60(図7)の解析を行う。ステップS52においては主に、オーディオのチャンネル数がチェックされる。上述したように、ローカルヘッダ60のAudio_Header63には、各種Audioエンコードパラメータの1つとして、オーディオデータのチャンネル数が記述されている。CPU45は、このAudio_Header63に記述されているオーディオチャンネル数を読み出し、P_CHに設定する。
【0141】
ステップS53において、CPU45は、自分自身(ビデオサーバ1)が扱うことが可能な最大のオーディオのチャンネル数MuxCHから、ステップS52の処理で設定されたオーディオチャンネル数P_CHを減算して得られた差MuteCH_NUMが、0であるか否かを判断する。
【0142】
ステップS53において、差MuteCH_NUMが0ではないと判断された場合、処理はステップS54に進む。ステップS54において、CPU45は、MuxCH−P_CHにより算出されたチャンネル数、すなわち、最大のオーディオのチャンネル数MuxCHと、ヘッダ解析によるその時点で使われているオーディオのチャンネル数P_CHとの差MuteCH_NUMの分だけチャンネル数を増加し、増加したチャンネルに対して、無音のオーディオパケットを付加し、トランスポートストリームに変換してデコーダ3に送信する。例えば、図14の例では、プログラム1に、無音データのオーディオチャンネルが2チャンネル分だけ付加される。
【0143】
このように、無音のオーディオパケットを送信して、常に最大のチャンネル数を用いている状態にすることにより、オーディオデータ(または、オーディオデータが揃うまで待機されるビデオデータ)を先頭から再生できないといったような状態が発生するようなことを防ぐことが可能となる。
【0144】
一方、ステップS53において、差MuteCH_NUMが0であると判断された場合、すなわち、最大のオーディオチャンネル数MuxCHと、ヘッダ解析結果によるオーディオチャンネル数P_CHが等しい場合、無音のデータを出力するチャンネル(MuteCH_NUM)は必要ないと判断され、ステップS54の処理はスキップされる。
【0145】
図15のチャンネル数調整処理は、HDD6からの再生データに対して行うようにしたが、エンコーダ2、その他の装置からDVB-ASIインタフェース10を介して入力されたデータをHDD6に記録する場合に行うようにしても良い。ただし、HDD6からの再生データに対して行うようにした方が、記憶領域に実質的に無効なデータを記録しないで済む。
【0146】
一方、SDIエンコードボード7(図2)は、ビデオ信号とオーディオ信号を受け付けると、ローカルヘッダを付加して、HDD6に記録する処理を実行する。すなわち、SDIエンコードボード7には、シリアルなデータが入力される。そのシリアルなデータは、SDIデコーダ21においてデコードされた後、ビデオデータは、ビデオエンコーダ22で、オーディオデータは、オーディオエンコーダ23で、それぞれエンコードされる。
【0147】
SDIエンコードボード7のCPU25は、ローカルヘッダ60(図7)を作成し、その作成したローカルヘッダ60をPCIインタフェース24とバス5を介して、HDD6に記憶させる。そのような処理を行う一方で、CPU25は、作成したローカルヘッダのフォーマットに従って、ビデオエレメンタリーストリームと、オーディオエレメンタリーストリームを並べ、順次、HDD6に記憶させる。
【0148】
このように、スプライシングを行う際、無音のオーディオフレームを挿入したり、1オーディオフレーム以上のずれを発生するオーディオフレームを削除することにより、視聴者に違和感を感じさせるような同期のずれの発生を防ぐことが可能となる。また、スプライシングポイントの前後で、オーディオチャンネルの数に変化があるような場合でも、上述したように、無音のオーディオパケットを出力するようにすることにより、デコーダにおいて、オーディオのデータを最初から再生できないといったような不都合の発生を防ぐことが可能となる。
【0149】
また、上述した処理は、プログラムの繋ぎ目であるか否かを判断する必要がないため、ソースコードを単純化することが可能となる。
【0150】
以上においては、処理単位をGOPとしたが、複数の所定の数のパケットを処理単位とするなどしてもよい。
【0151】
上述した一連の処理は、ハードウェアにより実行させることもできるし、上述したようにソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体等からインストールされる。
【0152】
図16は、このような処理を実行するパーソナルコンピュータの内部構成例を示す図である。パーソナルコンピュータのCPU(Central Processing Unit)
101は、ROM(Read Only Memory)102に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)103には、CPU101が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。入出力インタフェース105は、キーボードやマウスから構成される入力部106が接続され、入力部106に入力された信号をCPU101に出力する。また、入出力インタフェース105には、ディスプレイやスピーカなどから構成される出力部107も接続されている。
【0153】
さらに、入出力インタフェース105には、ハードディスクなどから構成される記憶部108、および、インターネットなどのネットワークを介して他の装置とデータの通信を行う通信部109も接続されている。ドライブ110は、磁気ディスク121、光ディスク122、光磁気ディスク123、半導体メモリ124などの記録媒体からデータを読み出したり、データを書き込んだりするときに用いられる。
【0154】
記録媒体は、図16に示されるように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク121(フレキシブルディスクを含む)、光ディスク122(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク123(MD(Mini-Disc)(登録商標)を含む)、若しくは半導体メモリ124などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているROM102や記憶部108が含まれるハードディスクなどで構成される。
【0155】
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0157】
【発明の効果】
第1の本発明によれば、オーディオデータをビデオデータに同期させるための第1のずれ量を提供することが可能となる。特に、繋ぎ処理時に、複雑な計算をせずとも、簡単且つ確実に、ビデオデータとオーディオデータを、先行するビデオデータとオーディオデータの同期関係に関わらず、繋ぎ、同期させることが可能となる。
【0158】
第2の本発明によれば、オーディオデータとビデオデータを同期させることが可能となる。特に、オーディオデータとビデオデータを、先行するオーディオデータとビデオデータの関係に関わらず、確実に、繋ぎ、同期させることが可能となる。また、記録媒体から読み出されたオーディオデータとビデオデータを、簡単且つ確実に、同期させることが可能となる。
【図面の簡単な説明】
【図1】ビデオストリームとオーディオストリームのフレーム長の違いによるずれ量について説明する図である。
【図2】本発明を適用したビデオサーバの一実施の形態の構成を示すブロック図である。
【図3】図2のスプライシングICの内部構成例を示すブロック図である。
【図4】 GOPについて説明する図である。
【図5】スプライシング時の、ビデオフレームとオーディオフレームのずれ量について説明するための図である。
【図6】スプライシング時の各フレームについて説明するための図である。
【図7】ローカルヘッダの構成について説明する図である。
【図8】記録時の処理について説明するフローチャートである。
【図9】スプライシング処理について説明するフローチャートである。
【図10】図9のステップS35において行われる処理について説明する図である。
【図11】図9のステップS38において行われる処理について説明する図である。
【図12】トランスポートストリームの階層データ構造について説明する図である。
【図13】トランスポートストリームの多重化について説明する図である。
【図14】オーディオチャンネル数が異なるプログラムのスプライシングについて説明する図である。
【図15】オーディオチャンネル数が異なるプログラムのスプライシング時のチャンネル数調整処理について説明するフローチャートである。
【図16】媒体を説明する図である。
【符号の説明】
1 ビデオサーバ, 2 エンコーダ, 3 デコーダ, 4 DVB−ASIボード, 5 バス, 6 HDD, 7 SDIエンコードボード, 11 スプライシングIC, 12 PCIインタフェース, 13 CPU, 21 SDIデコーダ, 22 ビデオエンコーダ, 23 オーディオエンコーダ, 24 PCIインタフェース, 25 CPU, 26 バス, 41 バッファ, 42 BAC, 43 SDRAM, 44 パケット生成部, 45 CPU
Claims (18)
- 処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理する情報処理装置において、
前記オーディオデータと前記ビデオデータの処理単位毎の同期のずれ量を検出する検出手段と、
先行する他の処理単位に対し、前記処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をする場合に、前記オーディオデータと前記ビデオデータが同期するための前記処理単位の先頭におけるずれ量を示す第1のずれ量を、前記検出手段により検出された前記同期のずれ量に基づいて演算する第1のずれ量演算手段と、
前記第1のずれ量を含む、前記処理単位毎のヘッダを生成する第1の生成手段と、
前記オーディオデータと前記ビデオデータを含む前記処理単位のブロックを生成し、前記第1の生成手段により生成された前記ヘッダを付加する第2の生成手段と、
前記第2の生成手段により前記ヘッダが付加された前記オーディオデータと前記ビデオデータを含む前記ブロックを出力し、前記処理単位を記録媒体に供給し、記録させる出力手段と、
1つまたは複数の前記処理単位の前記オーディオデータと前記ビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って前記記録媒体から読み出された前記プログラムのデータから、複数の前記プログラムを構成する前記処理単位に対応する前記各ブロックの前記ヘッダに含まれる前記第1のずれ量を抽出する抽出手段と、
複数の前記プログラムを構成する前記処理単位に含まれる所定の処理単位を注目処理単位としたとき、複数の前記プログラムを所定の順番で接続したときの再生順序において前記注目処理単位に先行する先行処理単位に対して、前記注目処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をする場合における、前記注目処理単位の前記オーディオデータと前記ビデオデータの最後尾におけるずれ量に対応する第2のずれ量を、前記ブロック毎に演算する第2のずれ量演算手段と、
前記第2のずれ量演算手段により演算された前記注目処理単位の前記第2のずれ量と、前記抽出手段により抽出された、複数の前記プログラムを所定の順番で接続したときの再生順序において前記注目処理単位に続く処理単位である後続処理単位における前記第1のずれ量とに基づいて、前記後続処理単位のずれ量を補正する処理を、前記ブロック毎に実行するずれ量補正手段と
を備えることを特徴とする情報処理装置。 - 前記第2のずれ量演算手段は、前記処理単位毎に演算される前記先行する処理単位のタイムスタンプと、前記処理単位の長さに基づいて、前記第2のずれ量を演算する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記第2のずれ量演算手段は、前記先行する処理単位のオーディオデータのプレゼンテーションタイムスタンプに、前記処理単位のオーディオデータの長さを加算した値と、前記先行する処理単位のビデオデータのデコーディングタイムスタンプに、前記処理単位のビデオデータの長さを加算した値との差に基づいて、前記第2のずれ量を演算する
ことを特徴とする請求項2に記載の情報処理装置。 - 前記第1のずれ量が、前記第2のずれ量より大きいか否かを判断する判断手段と、
前記判断手段により、前記第1のずれ量が、前記第2のずれ量より大きいと判断された場合、前記先行する処理単位の前記オーディオデータに、1つの符号化単位の無音のデータを挿入する挿入手段と
をさらに備えることを特徴とする請求項3に記載の情報処理装置。 - 前記第2のずれ量が、前記第1のずれ量より大きく、かつ、前記第2のずれ量と前記第1のずれ量の差が、前記オーディオデータの1符号化単位以上であるか否かを判断する判断手段と、
前記判断手段により、前記第2のずれ量が、前記第1のずれ量より大きく、かつ、その差が前記オーディオデータの1符号化単位以上であると判断された場合、前記第2のずれ量と、前記第1のずれ量の差が、前記オーディオデータの1符号化単位より小さくなるように、前記先行する処理単位の前記オーディオデータを、前記オーディオデータの前記処理単位を構成する符号化単位で削除する削除手段と
をさらに備えることを特徴とする請求項3に記載の情報処理装置。 - 前記オーディオデータのチャンネル数が、扱える前記チャンネル数の最大値よりも少ないか否かを判断する判断手段をさらに備え、
前記出力手段は、前記判断手段により、前記オーディオデータのチャンネル数が、前記最大値よりも少ないと判断された場合、前記チャンネル数が、前記最大値と等しくなるようにチャンネル数を増加し、増加した前記チャンネルに対して無音のデータを付加して出力する
ことを特徴とする請求項1に記載の情報処理装置。 - 処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理する情報処理装置の情報処理方法において、
前記オーディオデータと前記ビデオデータの処理単位毎の同期のずれ量を検出する検出ステップと、
先行する他の処理単位に対し、前記処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をする場合に、前記オーディオデータと前記ビデオデータが同期するための前記処理単位の先頭におけるずれ量を示す第1のずれ量を、前記検出ステップの処理により検出された前記同期のずれ量に基づいて演算する第1のずれ量演算ステップと、
前記第1のずれ量を含む、前記処理単位毎のヘッダを生成する第1の生成ステップと、
前記オーディオデータと前記ビデオデータを含む前記処理単位のブロックを生成し、前記第1の生成ステップの処理により生成された前記ヘッダを付加する第2の生成ステップと、
前記第2の生成ステップの処理により前記ヘッダが付加された前記オーディオデータと前記ビデオデータを含む前記ブロックを出力し、前記処理単位を記録媒体に供給し、記録させる出力ステップと、
1つまたは複数の前記処理単位の前記オーディオデータと前記ビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って前記記録媒体から読み出された前記プログラムのデータから、複数の前記プログラムを構成する前記処理単位に対応する前記各ブロックの前記ヘッダに含まれる前記第1のずれ量を抽出する抽出ステップと、
複数の前記プログラムを構成する前記処理単位に含まれる所定の処理単位を注目処理単位としたとき、複数の前記プログラムを所定の順番で接続したときの再生順序において前記注目処理単位に先行する先行処理単位に対して、前記注目処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をする場合における、前記注目処理単位の前記オーディオデータと前記ビデオデータの最後尾におけるずれ量に対応する第2のずれ量を、前記ブロック毎に演算する第2のずれ量演算ステップと、
前記第2のずれ量演算ステップにより演算された前記注目処理単位の前記第2のずれ量と、前記抽出ステップの処理により抽出された、複数の前記プログラムを所定の順番で接続したときの再生順序において前記注目処理単位に続く処理単位である後続処理単位における前記第1のずれ量とに基づいて、前記後続処理単位のずれ量を補正する処理を、前記ブロック毎に実行するずれ量補正ステップと
を含むことを特徴とする情報処理方法。 - 処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、
前記オーディオデータと前記ビデオデータの処理単位毎の同期のずれ量を検出する検出ステップと、
先行する他の処理単位に対し、前記処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をする場合に、前記オーディオデータと前記ビデオデータが同期するための前記処理単位の先頭におけるずれ量を示す第1のずれ量を、前記検出ステップの処理により検出された前記同期のずれ量に基づいて演算する第1のずれ量演算ステップと、
前記第1のずれ量を含む、前記処理単位毎のヘッダを生成する第1の生成ステップと、
前記オーディオデータと前記ビデオデータを含む前記処理単位のブロックを生成し、前記第1の生成ステップの処理により生成された前記ヘッダを付加する第2の生成ステップと、
前記第2の生成ステップの処理により前記ヘッダが付加された前記オーディオデータと前記ビデオデータを含む前記ブロックの出力を制御し、前記処理単位の記録媒体への供給と記録を制御する出力制御ステップと、
1つまたは複数の前記処理単位の前記オーディオデータと前記ビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って前記記録媒体から読み出された前記プログラムのデータから、複数の前記プログラムを構成する前記処理単位に対応する前記各ブロックの前記ヘッダに含まれる前記第1のずれ量を抽出する抽出ステップと、
複数の前記プログラムを構成する前記処理単位に含まれる所定の処理単位を注目処理単位としたとき、複数の前記プログラムを所定の順番で接続したときの再生順序において前記注目処理単位に先行する先行処理単位に対して、前記注目処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をする場合における、前記注目処理単位の前記オーディオデータと前記ビデオデータの最後尾におけるずれ量に対応する第2のずれ量を、前記ブロック毎に演算する第2のずれ量演算ステップと、
前記第2のずれ量演算ステップにより演算された前記注目処理単位の前記第2のずれ量と、前記抽出ステップの処理により抽出された、複数の前記プログラムを所定の順番で接続したときの再生順序において前記注目処理単位に続く処理単位である後続処理単位における前記第1のずれ量とに基づいて、前記後続処理単位のずれ量を補正する処理を、前記ブロック毎に実行するずれ量補正ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。 - 処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、
前記オーディオデータと前記ビデオデータの処理単位毎の同期のずれ量を検出する検出ステップと、
先行する他の処理単位に対し、前記処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をする場合に、前記オーディオデータと前記ビデオデータが同期するための前記処理単位の先頭におけるずれ量を示す第1のずれ量を、前記検出ステップの処理により検出された前記同期のずれ量に基づいて演算する第1のずれ量演算ステップと、
前記第1のずれ量を含む、前記処理単位毎のヘッダを生成する第1の生成ステップと、
前記オーディオデータと前記ビデオデータを含む前記処理単位のブロックを生成し、前記第1の生成ステップの処理により生成された前記ヘッダを付加する第2の生成ステップと、
前記第2の生成ステップの処理により前記ヘッダが付加された前記オーディオデータと前記ビデオデータを含む前記ブロックの出力を制御し、前記処理単位の記録媒体への供給と記録を制御する出力制御ステップと、
1つまたは複数の前記処理単位の前記オーディオデータと前記ビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って前記記録媒体から読み出された前記プログラムのデータから、複数の前記プログラムを構成する前記処理単位に対応する前記各ブロックの前記ヘッダに含まれる前記第1のずれ量を抽出する抽出ステップと、
複数の前記プログラムを構成する前記処理単位に含まれる所定の処理単位を注目処理単位としたとき、複数の前記プログラムを所定の順番で接続したときの再生順序において前記注目処理単位に先行する先行処理単位に対して、前記注目処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をする場合における、前記注目処理単位の前記オーディオデータと前記ビデオデータの最後尾におけるずれ量に対応する第2のずれ量を、前記ブロック毎に演算する第2のずれ量演算ステップと、
前記第2のずれ量演算ステップにより演算された前記注目処理単位の前記第2のずれ量と、前記抽出ステップの処理により抽出された、複数の前記プログラムを所定の順番で接続したときの再生順序において前記注目処理単位に続く処理単位である後続処理単位における前記第1のずれ量に基づいて、前記後続処理単位のずれ量を補正する処理を、前記ブロック毎に実行するずれ量補正ステップと
をコンピュータに実行させることを特徴とするプログラム。 - 処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理する情報処理装置において、
1つまたは複数の前記処理単位の前記オーディオデータと前記ビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って読み出された前記プログラムのデータから、複数の前記プログラムを構成する前記処理単位に対応するオーディオデータとビデオデータを含む前記処理単位の各ブロックを抽出し、前記各ブロックに含まれるヘッダから、前記オーディオデータと前記ビデオデータが同期するためのずれ量に対応する第1のずれ量を抽出する抽出手段と、
複数の前記プログラムを構成する前記処理単位に含まれる所定の処理単位を注目処理単位としたとき、複数の前記プログラムを所定の順番で接続したときに前記注目処理単位に先行する先行処理単位に対して、前記注目処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をする場合における、前記注目処理単位の前記オーディオデータと前記ビデオデータの最後尾におけるずれ量に対応する第2のずれ量を、前記ブロック毎に演算する演算手段と、
前記演算手段により演算された前記注目処理単位の前記第2のずれ量と、前記抽出手段により抽出された、複数の前記プログラムを所定の順番で接続したときの再生順序において前記注目処理単位に続く処理単位である後続処理単位における前記第1のずれ量とに基づいて、複数の前記プログラムを所定の順番で接続したときの再生順序で、前記処理単位ごとに、前記オーディオデータと前記ビデオデータを繋ぐ処理を行う繋ぎ手段と
を備えることを特徴とする情報処理装置。 - 前記演算手段は、前記処理単位毎に演算される前記先行する処理単位のタイムスタンプと、前記処理単位の長さに基づいて、前記第2のずれ量を演算する
ことを特徴とする請求項10に記載の情報処理装置。 - 前記演算手段は、前記先行する処理単位のオーディオデータのプレゼンテーションタイムスタンプに、前記処理単位のオーディオデータの長さを加算した値と、前記先行する処理単位のビデオデータのデコーディングタイムスタンプに、前記処理単位のビデオデータの長さを加算した値との差に基づいて、前記第2のずれ量を演算する
ことを特徴とする請求項11に記載の情報処理装置。 - 前記第1のずれ量が、前記第2のずれ量より大きいか否かを判断する判断手段と、
前記判断手段により、前記第1のずれ量が、前記第2のずれ量より大きいと判断された場合、前記先行する処理単位の前記オーディオデータに、1つの符号化単位の無音のデータを挿入する挿入手段と
をさらに備えることを特徴とする請求項12に記載の情報処理装置。 - 前記第2のずれ量が、前記第1のずれ量より大きく、かつ、前記第2のずれ量と前記第1のずれ量の差が、前記オーディオデータの1符号化単位以上であるか否かを判断する判断手段と、
前記判断手段により、前記第2のずれ量が、前記第1のずれ量より大きく、かつ、その差が前記オーディオデータの1符号化単位以上であると判断された場合、前記第2のずれ量と、前記第1のずれ量の差が、前記オーディオデータの1符号化単位より小さくなるように、前記先行する処理単位の前記オーディオデータを、前記オーディオデータの前記処理単位を構成する符号化単位で削除する削除手段と
をさらに備えることを特徴とする請求項12に記載の情報処理装置。 - 前記オーディオデータのチャンネル数が、扱える前記チャンネル数の最大値よりも少ないか否かを判断する判断手段と、
前記判断手段により、前記オーディオデータのチャンネル数が、前記最大値よりも少ないと判断された場合、前記チャンネル数が、前記最大値と等しくなるようにチャンネル数を増加し、増加した前記チャンネルに対して無音のデータを付加して出力する出力手段と
をさらに備えることを特徴とする請求項10に記載の情報処理装置。 - 処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理する情報処理装置の情報処理方法において、
1つまたは複数の前記処理単位の前記オーディオデータと前記ビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って読み出された前記プログラムのデータから、複数の前記プログラムを構成する前記処理単位に対応するオーディオデータとビデオデータを含む前記処理単位の各ブロックを抽出し、前記各ブロックに含まれるヘッダから、前記オーディオデータと前記ビデオデータが同期するためのずれ量に対応する第1のずれ量を抽出する抽出ステップと、
複数の前記プログラムを構成する前記処理単位に含まれる所定の処理単位を注目処理単位としたとき、複数の前記プログラムを所定の順番で接続したときに前記注目処理単位に先行する先行処理単位に対して、前記注目処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をする場合における、前記注目処理単位の前記オーディオデータと前記ビデオデータの最後尾におけるずれ量に対応する第2のずれ量を、前記ブロック毎に演算する演算ステップと、
前記演算ステップの処理により演算された前記注目処理単位の前記第2のずれ量と、前記抽出ステップの処理により抽出された、複数の前記プログラムを所定の順番で接続したときの再生順序において前記注目処理単位に続く処理単位である後続処理単位における前記第1のずれ量とに基づいて、複数の前記プログラムを所定の順番で接続したときの再生順序で、前記処理単位ごとに、前記オーディオデータと前記ビデオデータを繋ぐ処理を行う繋ぎステップと
を含むことを特徴とする情報処理方法。 - 処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、
1つまたは複数の前記処理単位の前記オーディオデータと前記ビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って読み出された前記プログラムのデータから、複数の前記プログラムを構成する前記処理単位に対応するオーディオデータとビデオデータを含む前記処理単位の各ブロックを抽出し、前記各ブロックに含まれるヘッダから、前記オーディオデータと前記ビデオデータが同期するためのずれ量に対応する第1のずれ量を抽出する抽出ステップと、
複数の前記プログラムを構成する前記処理単位に含まれる所定の処理単位を注目処理単位としたとき、複数の前記プログラムを所定の順番で接続したときに前記注目処理単位に先行する先行処理単位に対して、前記注目処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をする場合における、前記注目処理単位の前記オーディオデータと前記ビデオデータの最後尾におけるずれ量に対応する第2のずれ量を、前記ブロック毎に演算する演算ステップと、
前記演算ステップの処理により演算された前記注目処理単位の前記第2のずれ量と、前記抽出ステップの処理により抽出された、複数の前記プログラムを所定の順番で接続したときの再生順序において前記注目処理単位に続く処理単位である後続処理単位における前 記第1のずれ量とに基づいて、複数の前記プログラムを所定の順番で接続したときの再生順序で、前記処理単位ごとに、前記オーディオデータと前記ビデオデータを繋ぐ処理を行う繋ぎステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。 - 処理単位毎のビデオデータと、処理単位の大きさが前記ビデオデータと異なる処理単位毎のオーディオデータを処理するプログラムであって、
1つまたは複数の前記処理単位の前記オーディオデータと前記ビデオデータから構成される複数のプログラムを所定の順番で接続したときの再生順序に沿って読み出された前記プログラムのデータから、複数の前記プログラムを構成する前記処理単位に対応するオーディオデータとビデオデータを含む前記処理単位の各ブロックを抽出し、前記各ブロックに含まれるヘッダから、前記オーディオデータと前記ビデオデータが同期するためのずれ量に対応する第1のずれ量を抽出する抽出ステップと、
複数の前記プログラムを構成する前記処理単位に含まれる所定の処理単位を注目処理単位としたとき、複数の前記プログラムを所定の順番で接続したときに前記注目処理単位に先行する先行処理単位に対して、前記注目処理単位の前記オーディオデータと前記ビデオデータを繋ぐ処理をする場合における、前記注目処理単位の前記オーディオデータと前記ビデオデータの最後尾におけるずれ量に対応する第2のずれ量を、前記ブロック毎に演算する演算ステップと、
前記演算ステップの処理により演算された前記注目処理単位の前記第2のずれ量と、前記抽出ステップの処理により抽出された、複数の前記プログラムを所定の順番で接続したときの再生順序において前記注目処理単位に続く処理単位である後続処理単位における前記第1のずれ量とに基づいて、複数の前記プログラムを所定の順番で接続したときの再生順序で、前記処理単位ごとに、前記オーディオデータと前記ビデオデータを繋ぐ処理を行う繋ぎステップと
をコンピュータに実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002277992A JP3944845B2 (ja) | 2001-09-27 | 2002-09-24 | 情報処理装置および方法、記録媒体、並びにプログラム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001295423 | 2001-09-27 | ||
JP2001-295423 | 2001-09-27 | ||
JP2002277992A JP3944845B2 (ja) | 2001-09-27 | 2002-09-24 | 情報処理装置および方法、記録媒体、並びにプログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007037791A Division JP4534168B2 (ja) | 2001-09-27 | 2007-02-19 | 情報処理装置および方法、記録媒体、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003179863A JP2003179863A (ja) | 2003-06-27 |
JP3944845B2 true JP3944845B2 (ja) | 2007-07-18 |
Family
ID=26623014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002277992A Expired - Fee Related JP3944845B2 (ja) | 2001-09-27 | 2002-09-24 | 情報処理装置および方法、記録媒体、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3944845B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005167338A (ja) * | 2003-11-28 | 2005-06-23 | Toshiba Corp | 映像音声再生装置 |
JP4947049B2 (ja) | 2006-03-17 | 2012-06-06 | 日本電気株式会社 | 符号化ストリーム送信装置 |
JP4944056B2 (ja) * | 2008-03-24 | 2012-05-30 | Necパーソナルコンピュータ株式会社 | Av圧縮装置およびプログラム |
JP2011155538A (ja) * | 2010-01-28 | 2011-08-11 | Toshiba Corp | メディア符号化装置及びメディア符号化方法 |
-
2002
- 2002-09-24 JP JP2002277992A patent/JP3944845B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003179863A (ja) | 2003-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8285106B2 (en) | Information processing apparatus | |
KR100290331B1 (ko) | 오디오-비디오 신호의 동기 재생 장치 | |
JP4481444B2 (ja) | 画像符号化装置 | |
US6078725A (en) | Apparatus for a synchronized playback of audio-video signals | |
JP3666625B2 (ja) | データ記録方法およびデータ記録装置 | |
KR101132043B1 (ko) | 디코더 장치 및 디코드 방법 | |
US7228055B2 (en) | Recording apparatus, video camera and computer program | |
JP2006260762A (ja) | データ列間の連続再生を保障するための付加情報生成方法、この情報を貯蔵する記録媒体及び記録、編集及び/または再生装置 | |
US20090010615A1 (en) | Recording/reproducing apparatus, recording apparatus, reproducing apparatus, recording method, reproducing method and computer program | |
EP0985319B1 (en) | Video and audio signal processing | |
KR101014664B1 (ko) | 복수의 데이터 스트림 간의 연속 재생을 보장하는 재생방법 및 그 재생 장치 | |
US7693222B2 (en) | Method and system for re-multiplexing of content-modified MPEG-2 transport streams using PCR interpolation | |
US7869522B2 (en) | Video signal multiplexer, video signal multiplexing method, and picture reproducer | |
JP2003259314A (ja) | 映像音声同期方法及びそのシステム | |
JPH11275524A (ja) | データ記録方法、データ再生方法、データ記録装置およびデータ再生装置 | |
JP4534168B2 (ja) | 情報処理装置および方法、記録媒体、並びにプログラム | |
JP3944845B2 (ja) | 情報処理装置および方法、記録媒体、並びにプログラム | |
JP4096915B2 (ja) | デジタル情報再生装置及び方法 | |
JP3926910B2 (ja) | 映像データ多重化装置 | |
JP4689525B2 (ja) | 記録装置 | |
JP2004040579A (ja) | デジタル放送受信装置、およびデジタル放送同期再生方法 | |
KR100240331B1 (ko) | 디코더 시스템의 비디오/오디오 동기화 장치 | |
JP2011151784A (ja) | 動画像多重化装置、映像音声記録装置及び動画像多重化方法 | |
JP2000188752A (ja) | 多重分離制御装置 | |
JP2001339688A (ja) | トランスポートストリーム再生装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051014 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051102 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051219 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060807 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061006 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20061020 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061222 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070219 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070316 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070329 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100420 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110420 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110420 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120420 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120420 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130420 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |