(57)【要約】データ処理装置は、データストリームを受け取って、データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のフレームのデータを含むオーディオデータおよび各フレームの再生時刻を規定する第２時刻情報を分離するパーサと、複数のピクチャおよび複数のフレームを再生するために、ビデオデータおよびオーディオデータを出力する出力部と、所定の基準時刻からの経過時間をカウントする基準レジスタと、各ピクチャの出力時に、各ピクチャの第１時刻情報と経過時間との差分値を計算し、第１差分値として保持する第１差分レジスタと、各フレームの出力時に、各フレームの第２時刻情報と経過時間との差分値を計算し、第２差分値として格納する第２差分レジスタと、第２差分値に対する第１差分値の大きさに応じて、ビデオデータの出力を制御する制御部とを備えている。
2004084553.tif 000002
【特許請求の範囲】
【請求項１】
データストリームを受け取って、前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するパーサと、
前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力する出力部と、
所定の基準時刻からの経過時間をカウントする基準レジスタと、
前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持する第１差分レジスタと、
前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納する第２差分レジスタと、
前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御する制御部と
を備えたデータ処理装置。
【請求項２】
前記基準レジスタは、前記オーディオデータの出力開始時刻を前記所定の基準時刻として経過時間をカウントする、請求項１に記載のデータ処理装置。
【請求項３】
前記制御部は、前記第２差分値が、前記第１差分値と第１所定値との和よりも大きい場合には、前記出力部に対してその時点で出力されているピクチャのビデオデータを再度出力させる、請求項１に記載のデータ処理装置。
【請求項４】
前記制御部は、前記前記第２差分値が、前記第１差分値と第２所定値との差よりも小さい場合には、前記出力部に対してピクチャのビデオデータの出力をスキップさせる、請求項１に記載のデータ処理装置。
【請求項５】
前記制御部は、再生のポーズの指示を受け取ると、前記第１時刻情報および前記第２時刻情報に基づいて前記ビデオデータの出力を制御する、請求項１に記載のデータ処理装置。
【請求項６】
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記第２時刻情報が前記第１時刻情報と第３所定値との和よりも大きい場合には、前記出力部に対して前記オーディオデータを前記ビデオデータよりも先に出力させる、請求項５に記載のデータ処理装置。
【請求項７】
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記第２時刻情報が前記第１時刻情報と第４所定値との差よりも小さい場合には、前記出力部に対して前記ビデオデータをオーディオデータよりも先に出力させる、請求項５に記載のデータ処理装置。
【請求項８】
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記出力部に対して前記ビデオデータとオーディオデータとを同時に出力させる、請求項５に記載のデータ処理装置。
【請求項９】
データストリームを受け取るステップと、
前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するステップと、
前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力するステップと、
所定の基準時刻からの経過時間をカウントするステップと、
前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持するステップと、
前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納するステップと、
前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御するステップと
を包含するデータ処理方法。
【請求項１０】
前記経過時間をカウントするステップは、前記オーディオデータの出力開始時刻を前記所定の基準時刻として経過時間をカウントする、請求項９に記載のデータ処理方法。
【請求項１１】
前記前記第２差分値が、前記第１差分値と第１所定値との和よりも大きい場合には、前記出力するステップは、その時点で出力されているピクチャのビデオデータを再度出力する、請求項９に記載のデータ処理方法。
【請求項１２】
前記前記第２差分値が、前記第１差分値と第２所定値との差よりも小さい場合には、前記出力するステップは、ピクチャのビデオデータの出力をスキップする、請求項９に記載のデータ処理方法。
【請求項１３】
再生のポーズの指示を受け取るステップをさらに包含し、
前記出力するステップは、前記指示に応答して、前記第１時刻情報および前記第２時刻情報に基づいて前記ビデオデータの出力を制御する、請求項９に記載のデータ処理方法。
【請求項１４】
再生のポーズの指示を受け取るステップをさらに包含し、
前記出力するステップは、前記指示に応答して、前記第２時刻情報が前記第１時刻情報と第３所定値との和よりも大きい場合には、前記オーディオデータを前記ビデオデータよりも先に出力する、請求項１３に記載のデータ処理方法。
【請求項１５】
再生のポーズの指示を受け取るステップをさらに包含し、
前記出力するステップは、前記指示に応答して、前記第２時刻情報が前記第１時刻情報と第４所定値との差よりも小さい場合には、前記ビデオデータをオーディオデータよりも先に出力する、請求項１３に記載のデータ処理方法。
【請求項１６】
再生のポーズの指示を受け取るステップをさらに包含し、
前記出力するステップは、前記指示に応答して、前記ビデオデータとオーディオデータとを同時に出力する、請求項１３に記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】  本発明は、圧縮符号化されたオーディオデータおよびビデオデータを復号化して、音声および映像を再生する技術に関する。
【背景技術】  近年、長時間の映像（ビデオ）および音声（オーディオ）の各データを圧縮符号化してデータ量を抑え、記録媒体に記録する手法の開発が進んでいる。国際標準化機構（ＩＳＯ）においては、国際電気標準会議（ＩＥＣ）のＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｉｍａｇｅ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）によるオーディオおよびビデオの符号化方式の標準化が行われている。例えば「ＩＳＯ／ＩＥＣ  １３８１８−２」においてビデオの圧縮方式が規定され、「ＩＳＯ／ＩＥＣ  １３８１８−３」でオーディオの圧縮方式が規定され、「ＩＳＯ／ＩＥＣ  １３８１８−１」でこれらを統合化する方式が規定されている。最後に掲げた方式は、ＭＰＥＧシステム規格として知られている。このような圧縮符号化技術を利用することにより、映画等の長時間のビデオおよびオーディオに関するデータストリーム（ＭＰＥＧシステムストリーム）を、高品質を保ちつつ、１枚の記録媒体（例えば、光ディスク）に記録することが可能になっている。
さらに、記録媒体へ記録する方式についても標準化が進んでいる。例えば、ＤＶＤ規格（ＤＶＤ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｆｏｒ  Ｒｅａｄ−Ｏｎｌｙ  Ｄｉｓｃ  Ｖｅｒｓｉｏｎ  １．０）が知られている。また、ビデオおよびオーディオのデータを記録媒体に記録するための規格として、１９９９年９月にはＤＶＤビデオレコーディング（ＤＶＤ  Ｖｉｄｅｏ  Ｒｅｃｏｒｄｉｎｇ）規格（ＤＶＤ  Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ  ｆｏｒ  Ｒｅｗｒｉｔａｂｌｅ／Ｒｅ−ｒｅｃｏｒｄａｂｌｅ  Ｄｉｓｃｓ）が規定されている。
次に、記録媒体に記録されたデータストリームから、ビデオおよびオーディオを同期させて再生する処理を説明する。図１は、システムストリームを再生可能な従来の再生装置１０の機能ブロックの構成を示す。ここでは、システムストリームはプログラムストリームであり、システム時刻基準ＳＣＲの情報を含むとする。
再生装置１０は、ＡＶパーサ１、ビデオデコーダ２、オーディオデコーダ３およびＳＴＣレジスタ４を含む。
ＡＶパーサ１は外部からシステムストリームを受け取り、そのシステムストリームをオーディオおよびビデオの各データに分離する（以下、オーディオに関するデータストリームをオーディオストリームといい、ビデオに関するデータストリームをビデオストリームという）。ＡＶパーサ１は、システムストリームからシステム時刻基準ＳＣＲ、オーディオの再生時刻情報（ＡＰＴＳ）およびビデオの再生時刻情報（ＶＰＴＳ）を抽出する。ＡＶパーサ１は、システム時刻基準ＳＣＲに基づいて、ＳＴＣレジスタ４に基準値を設定する。そして、ＡＶパーサ１は、ビデオストリームおよびＶＰＴＳをビデオデコーダ２に出力し。オーディオストリームおよびＡＰＴＳをオーディオデコーダ３に出力する。ＳＴＣレジスタ４は、基準値に基づいて同期信号ＳＴＣを生成する。
ビデオデコーダ２は、同期信号ＳＴＣおよびビデオの復号時刻情報（ＶＤＴＳ）にしたがってビデオストリームを復号化し、復号化したビデオデータを同期信号ＳＴＣとＶＰＴＳとが一致したタイミングで出力する。例えばビデオでは、ＮＴＳＣ方式の場合には約１６．７ミリ秒に相当する間隔で再生時刻情報ＶＰＴＳが付加されている。これは、フィールド画像の表示タイミングに合わせているからである。なお、ＮＴＳＣ方式では、ビデオは１秒に３０フレームが表示され、かつ、１フレームが２フィールドから構成されているため、１フィールドは約１６．７ミリごとに書き換えられている。
オーディオデコーダ３は、同期信号ＳＴＣおよびオーディオの復号時刻情報（ＡＤＴＳ）にしたがってビデオストリームを復号化し、復号化したオーディオデータを同期信号ＳＴＣとＡＰＴＳとが一致したタイミングで出力する。例えば、再生時刻情報ＡＰＴＳは、１オーディオフレームの再生タイミング（約３２ミリ秒）に相当する間隔で付加されている。
以上の処理により、システムストリーム製作者がエンコード時に意図したタイミングでオーディオおよびビデオの同期再生が実現される。
上述の例は、システム時刻基準ＳＣＲに基づいて同期信号ＳＴＣが生成されるとした。これは、デジタル放送をリアルタイムで受信して再生する場合において、送信側と受信側のクロックを同期させる必要があるときにも同様である（ただし、デジタル放送がトランスポートストリームを利用する場合にはプログラム時刻基準ＰＣＲが用いられる）。
一方、光ディスク等の記録媒体に既に記録されているシステムストリームを読み出してビデオおよびオーディオを再生する場合には、必ずしもシステム時刻基準ＳＣＲを用いてエンコード時のクロックを再現する必要はない。例えば、オーディオのＡＰＴＳを用いて同期信号ＳＴＣを設定してもよい。そこで、そのような再生例を図２を参照しながら説明する。
図２は、従来の再生装置２０の機能ブロックの構成を示す。再生装置２０は記録媒体に記録されたシステムストリームに基づいてオーディオストリームおよびビデオストリームを復号化し、オーディオの再生時刻情報（ＡＰＴＳ）に基づいてビデオを出力してオーディオと同期させる。再生装置２０は、例えば、日本国特開平１０−１３６３０８号公報において開示されている。
ＡＶ分離部１２は、データ記録装置１１に格納された、デジタルエンコードされたシステムストリームを読み出し、多重化されて記録されているオーディオデータとビデオデータを分離する。
ビデオ処理部１３は、ビデオデータを復号化し、その際に得られたビデオヘッダ情報を遅延検出部１６に送る。ヘッダ情報にはビデオの再生時刻情報ＶＰＴＳが記述されている。さらに、ビデオ処理部１３は、再生の開始から現在までに再生したビデオデータの積算フレーム数をビデオフレームカウンタ１８へ保存する。オーディオ処理部１４は、オーディオデータを復号化するとともに、その際に得られたオーディオヘッダ情報をクロック生成部１７に送る。ヘッダ情報にはオーディオの再生時刻情報ＶＰＴＳが記述されている。さらに、オーディオ処理部１４は、オーディオ再生の開始から現在までに再生したオーディオデータの積算データ量をオーディオデータカウンタ１９へ保存する。
クロック生成部１７は、オーディオデータカウンタ１９に保存されている積算データ量と、オーディオ処理部１４より得たオーディオヘッダ情報に基づいて、オーディオの再生経過時間として示される基準時刻を算出する。遅延検出部１６は、クロック生成部１７から得られた基準時刻の情報およびビデオ処理部１３から受け取ったビデオヘッダ情報に基づいて、本来出力すべきビデオデータの理想フレーム数を算出する。遅延検出部１６は、理想フレーム数と、ビデオフレームカウンタで得られた実フレーム数を比較し、オーディオの再生に対するビデオの再生の進捗を検出する。
遅延検出部１６によってビデオ出力がオーディオ出力より遅れていると検出されると、コマ落とし制御部１５は、出力しないフレーム（コマ落としフレーム）を決定してその情報をＡＶ分離部１２およびビデオ処理部１３に伝える。ビデオ処理部１３は、コマ落としフレームの出力をスキップしてその後続のフレームを出力する。これにより、ビデオの遅延が１フレームの表示時間相当分（例えば、ＮＴＳＣの場合は３３ミリ秒）だけ解消され、オーディオ出力に対する遅れが解消される。再生装置２０は、上述の手法により、オーディオおよびビデオの同期再生を実現する。
オーディオの再生に対するビデオの再生の関係は以下のとおりである。製作者がエンコード時に意図したタイミングでビデオおよびオーディオが再生されている状態を理想状態とする。一般に、オーディオの再生を基準にしてビデオが理想状態から−５０ミリ秒〜＋３０ミリ秒の範囲で再生されると、人間はオーディオとビデオが同期していると感じる。そこで、オーディオ再生時刻に対してビデオ再生時刻がこの許容範囲に入っている場合には、ビデオ出力はオーディオ出力より遅れていないと判断し、許容範囲に入っていない場合には、遅れていると判断すればよい。
しかしながら、従来の再生装置において、オーディオの再生経過時間を基準にしてビデオを再生すると、以下のような問題が生じる。
すなわち、従来の再生装置は、オーディオおよびビデオが同期して再生されているか否かの判定において、オーディオとビデオのずれが許容範囲内にあるにもかかわらず、その許容範囲を超えていると誤まって判定するおそれがある。
例えば、オーディオに対してビデオが許容範囲内の２０ミリ秒遅れて再生されているとする。上述のように、オーディオのフレームには約３２ミリ秒ごとにＡＰＴＳが付加されており、ビデオのフィールドには約１６．７ミリ秒ごとにＶＰＴＳが付加されている。そのため、ＡＰＴＳに対してＶＰＴＳを比較するタイミングによっては、ビデオはオーディオよりも最大５２ミリ秒ずれて再生されてしまう。特に、ＶＰＴＳとＡＰＴＳを比較するタイミングをＶＰＴＳの更新直後に限定すると、ビデオはオーディオに対して＋２０ミリ秒〜＋５２ミリ秒遅れて再生される。よって、＋３０ミリ秒〜＋５２ミリ秒の遅れに対しては、視聴者にはビデオとオーディオとがずれて再生されているという違和感を与える。
また、従来の再生装置では、オーディオの再生がビデオの再生よりも先に終了するとそれ以後はビデオの再生を継続することができない。これは、オーディオの再生が終了するとオーディオの再生経過時間の進行が停止し、オーディオがビデオを再生するための時間基準として機能しなくなるからである。特に、システムストリームにはオーディオデータおよびビデオデータが混在しており、かつ、オーディオデータおよびビデオデータの再生時刻が同じとは限らない。よって、データの読み出しを終了した時点で得られているオーディオデータおよびビデオデータの再生終了時刻が異なり、オーディオの再生がビデオの再生よりも先に終了することがあるため、不都合を生じる。
本発明の目的は、オーディオの再生時間を基準としてビデオの再生を行った場合において、オーディオとビデオとを確実に同期させることである。また、本発明の他の目的は、オーディオの再生がビデオよりも先に終了した場合であってもビデオを継続して再生することである。
【発明の開示】
本発明によるデータ処理装置は、データストリームを受け取って、前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するパーサと、前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力する出力部と、所定の基準時刻からの経過時間をカウントする基準レジスタと、前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持する第１差分レジスタと、前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納する第２差分レジスタと、前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御する制御部とを備えている。
前記基準レジスタは、前記オーディオデータの出力開始時刻を前記所定の基準時刻として経過時間をカウントしてもよい。
前記制御部は、前記前記第２差分値が、前記第１差分値と第１所定値との和よりも大きい場合には、前記出力部に対してその時点で出力されているピクチャのビデオデータを再度出力させてもよい。
前記制御部は、前記前記第２差分値が、前記第１差分値と第２所定値との差よりも小さい場合には、前記出力部に対してピクチャのビデオデータの出力をスキップさせてもよい。
前記制御部は、再生のポーズの指示を受け取ると、前記第１時刻情報および前記第２時刻情報に基づいて前記ビデオデータの出力を制御してもよい。
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記第２時刻情報が前記第１時刻情報と第３所定値との和よりも大きい場合には、前記出力部に対して前記オーディオデータを前記ビデオデータよりも先に出力させてもよい。
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記第２時刻情報が前記第１時刻情報と第４所定値との差よりも小さい場合には、前記出力部に対して前記ビデオデータをオーディオデータよりも先に出力させてもよい。
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記出力部に対して前記ビデオデータとオーディオデータとを同時に出力させてもよい。
本発明によるデータ処理方法は、データストリームを受け取るステップと、前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するステップと、前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力するステップと、所定の基準時刻からの経過時間をカウントするステップと、前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持するステップと、前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納するステップと、前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御するステップとを包含する。
前記経過時間をカウントするステップは、前記オーディオデータの出力開始時刻を前記所定の基準時刻として経過時間をカウントしてもよい。
前記前記第２差分値が、前記第１差分値と第１所定値との和よりも大きい場合には、前記出力するステップは、その時点で出力されているピクチャのビデオデータを再度出力してもよい。
前記前記第２差分値が、前記第１差分値と第２所定値との差よりも小さい場合には、前記出力するステップは、ピクチャのビデオデータの出力をスキップしてもよい。
前記データ処理方法は、再生のポーズの指示を受け取るステップをさらに包含してもよく、前記出力するステップは、前記指示に応答して、前記第１時刻情報および前記第２時刻情報に基づいて前記ビデオデータの出力を制御してもよい。
前記データ処理方法は、再生のポーズの指示を受け取るステップをさらに包含してもよく、前記出力するステップは、前記指示に応答して、前記第２時刻情報が前記第１時刻情報と第３所定値との和よりも大きい場合には、前記オーディオデータを前記ビデオデータよりも先に出力してもよい。
前記データ処理方法は、再生のポーズの指示を受け取るステップをさらに包含してもよく、前記出力するステップは、前記指示に応答して、前記第２時刻情報が前記第１時刻情報と第４所定値との差よりも小さい場合には、前記ビデオデータをオーディオデータよりも先に出力してもよい。
前記データ処理方法は、再生のポーズの指示を受け取るステップをさらに包含してもよく、前記出力するステップは、前記指示に応答して、前記ビデオデータとオーディオデータとを同時に出力してもよい。
本発明によるデータ処理プログラムは、コンピュータにより実行可能である。コンピュータが実装されたデータ処理装置は、このプログラムにしたがって、以下の手順を実行する。すなわち、データストリームを受け取るステップと、前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するステップと、前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力するステップと、所定の基準時刻からの経過時間をカウントするステップと、前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持するステップと、前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納するステップと、前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御するステップとを実行する。
【図面の簡単な説明】  図１は、システムストリームを再生可能な従来の再生装置１０の機能ブロックの構成を示す図である。
図２は、従来の再生装置２０の機能ブロックの構成を示す。
図３は、ＤＶＤビデオレコーディング規格に準拠したＭＰＥＧ２プログラムストリーム３０のデータ構造を示す図である。
図４は、ビデオパック３２のデータ構造を示す図である。
図５は、本実施形態によるデータ処理装置５０の機能ブロックの構成を示す。
図６は、ビデオデコーダの処理の手順を示すフローチャートである。
図７は、オーディオデコーダ６１の処理の手順を示すフローチャートである。
図８は、データ処理装置５０の処理の手順を示すフローチャートである。
図９は、ＶＰＴＳレジスタ５６、ＶＰＴＳ差分レジスタ５７、ＡＰＴＳレジスタ５８、ＡＰＴＳ差分レジスタ５９においてそれぞれ保持された値の変遷を示すグラフである。
図１０は、オーディオフレームの出力がビデオフレームの出力よりも先に終了したときの、各種レジスタ５６、５７、５８および５９においてそれぞれ保持された値の変遷を示すグラフである。
図１１は、再生をポーズさせたときの、各種レジスタ５６、５７、５８および５９においてそれぞれ保持された値の変遷を示すグラフである。
図１２は、再生ポーズ時のデータ処理装置５０の処理の手順を示すフローチャートである。
図１３は、データ処理装置の他の構成例を示すブロック図である。
【発明を実施するための最良の形態】  以下では、まずデータストリームのデータ構造を説明し、その後、そのデータストリームを処理の対象とする本実施形態によるデータ処理装置を説明する。
図３は、ＤＶＤビデオレコーディング規格に準拠したＭＰＥＧ２プログラムストリーム３０のデータ構造を示す（以下、このストリームを「データストリーム３０」と記述する）。
データストリーム３０は、複数のビデオオブジェクト（Ｖｉｄｅｏ  ＯＢｊｅｃｔ；ＶＯＢ）＃１、＃２、・・・、＃ｋを含んでいる。例えば、データストリーム３０がカムコーダで撮影されたコンテンツとすると、各ＶＯＢは、ユーザが録画を開始してから録画を停止するまでの１回の録画動作によって生成された動画データが格納されている。
各ＶＯＢは、複数のＶＯＢユニット（Ｖｉｄｅｏ  ＯＢｊｅｃｔ  ｕｎｉｔ；ＶＯＢＵ）＃１、＃２、・・・、＃ｎを含んでいる。各ＶＯＢＵは、主として、ビデオの再生時間にして０．４秒から１秒までの範囲内のビデオデータを含むデータ単位である。
以下、図３において最初に配置されたＶＯＢＵ＃１とその次に配置されたＶＯＢＵ＃２を例にして、ＶＯＢＵのデータ構造を説明する。
ＶＯＢＵ＃１は、ＭＰＥＧプログラムストリームの下位階層であるパックが複数集まって構成されている。データストリーム３０内の各パックのデータ長（パック長）は一定（２キロバイト（２０４８バイト））である。ＶＯＢＵの先頭には、図１に“Ｒ”で示されるリアルタイムインフォメーションパック（ＲＤＩパック）１１が配置されている。ＲＤＩパック３１の後には、“Ｖ”で示されるビデオパック（ビデオパック３２等）および“Ａ”で示されるオーディオパック（オーディオパック３３等）が複数含まれている。なお、各ＶＯＢＵのデータサイズは、再生時間が同じであってもビデオデータが可変ビットレートであれば最大記録再生レート以下の範囲で変動し、ビデオデータが固定ビットレートであればほぼ一定である。
各パックは以下の情報を格納している。ＲＤＩパック３１は、データストリーム３０の再生を制御するために用いられる情報、例えばＶＯＢＵの再生タイミングを示す情報や、データストリーム３０のコピーを制御するための情報を格納している。ビデオパック３２は、ＭＰＥＧ２圧縮符号化されたビデオデータを格納している。オーディオパック３３は、例えばＭＰＥＧ２−オーディオ規格によって圧縮されたオーディオデータを格納している。
ＶＯＢＵ＃２もまた、複数のパックから構成されている。ＶＯＢＵ＃２の先頭には、ＲＤＩパック３４が配置され、その後、ビデオパック３５およびオーディオパック３６等が複数配置されている。各パックに格納される情報の内容はＶＯＢＵ＃１と同様である。
ビデオおよびオーディオの復号化および再生は、アクセスユニットと呼ばれる単位を基準として行われる。アクセスユニットは、例えば、ビデオでは１ビデオフレーム、オーディオでは１オーディオフレームである。ＭＰＥＧシステム規格では、このアクセスユニットごとに復号化および再生のタイミングを指定するタイムスタンプが付加される。すなわち、いつ復号化すべきかを示す時刻情報ＤＴＳ（Ｄｅｃｏｄｉｎｇ  Ｔｉｍｅ  Ｓｔａｍｐ）およびいつ再生すべきかを示す時刻情報ＰＴＳ（Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｔｉｍｅ  Ｓｔａｍｐ）の２種類である。
一般に、データストリーム３０を含むＭＰＥＧシステム規格のシステムストリームを再生可能な再生装置は、その内部で同期信号ＳＴＣ（Ｓｙｓｔｅｍ  Ｔｉｍｅ  Ｃｌｏｃｋ）を生成し、復号器（デコーダ）の動作タイミングの基準として用いている。同期信号ＳＴＣは、システムストリームがプログラムストリームの場合にはそのストリーム中に付加されたシステム時刻基準ＳＣＲ（Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｒｅｆｅｒｅｎｃｅ）値に基づいて生成され、また、システムストリームがトランスポートストリームの場合にはそのストリーム中に付加されたプログラム時刻基準ＰＣＲ（Ｐｒｏｇｒａｍ  Ｃｌｏｃｋ  Ｒｅｆｅｒｅｎｃｅ）値に基づいて生成される。
再生装置のデコーダは、同期信号ＳＴＣが示す時刻と復号時刻情報ＤＴＳとが一致したとき、そのＤＴＳが付加されたアクセスユニットをデコードする。その後、デコーダは、同期信号ＳＴＣが示す時刻と再生時刻情報ＰＴＳとが一致したとき、そのＰＴＳが付加されたアクセスユニットを出力する。これにより、データストリーム３０の製作者が意図したタイミングでビデオおよびオーディオが同期して再生される。
次に、ビデオパックのデータ構造を説明する。図４は、ビデオパック３２のデータ構造を示す。ビデオパック３２は、ビデオパケット４１およびパディングパケット４２を含む。なお、パディングパケット４２はデータパックのパック長を調整するために設けられたパケットであるため、パック長を調整する必要がないときは存在しない。このときは、ビデオパック３２にはビデオパケット４１のみが含まれる。
ビデオパケット４１は、先頭から順に、１４バイトのパックヘッダ（Ｐａｃｋ＿Ｈ）、２４バイトのシステムヘッダ（ｓｙｓｔｅｍ＿Ｈ）、パケットヘッダ（Ｐａｃｋｅｔ＿Ｈ）４１ａおよびペイロードを有する。パックヘッダには、パックの種類（ここではビデオパケット）を特定する情報が記述される。システムヘッダは、ＶＯＢＵの先頭のパックに必ず付加される。パケットヘッダ４１ａは後に詳述する。ペイロードには、圧縮符号化されたビデオデータが記述される。
一方、パディングパケット４２は、パケットヘッダ（Ｐａｃｋｅｔ＿Ｈ）４２ａおよびパディングデータ４２ｂを有する。パケットヘッダ４２ａには、パディングパケットであることを特定する情報の他に、５および６バイト目のフィールド（ＰＥＳ＿ｐａｃｋｅｔ＿ｌｅｎｇｔｈ）においてパディングパケット４２ａのデータ長（バイト長）が記述される。パディングデータ４２ｂには、予め定められた値が格納される。この値は、例えば、意味を持たない値“０ｘＦＦ”（１６進数）の羅列であり、上述のようにビデオパック３２のパック長を２０４８バイトに調整するために必要なデータ量だけ配置される。
次に、ビデオパケット４１のパケットヘッダ４１ａのデータ構造を説明する。パケットヘッダ４１ａは、パケット長フィールド４３、フラグフィールド４４およびヘッダデータ長フィールド４５を有する。さらに、パケットヘッダ４１ａには、時間フラグフィールド４４ａおよびＰＥＳ拡張フラグフィールド４４ｂの値に応じて、追加のフィールド４６が設けられることがある。
パケット長フィールド４３には、そのフィールド以降からそのビデオパケット４１の最後までのパケット長（バイト長）が記述される。よって、パディングパケット４２が存在するときにはビデオパケット４１のパケット長は短くなり、パケット長フィールド４３に記述されるパケット長の値は小さくなる。続いて、フラグフィールド４４は、時間フラグフィールド４４ａ（ＰＴＳ＿ＤＴＳ＿ｆｌａｇ）、ＰＥＳ拡張フラグフィールド（ＰＥＳ＿ｅｘｔｅｎｓｉｏｎ＿ｆｌａｇ）４４ｂ等を含む。時間フラグフィールド４４ａには、後述するプレゼンテーションタイムスタンプ（ＰＴＳ）およびでコーディングタイムスタンプ（ＤＴＳ）の有無を示すフラグが記述される。また、ＰＥＳ拡張フラグフィールド４４ｂには、後述するＰＥＳ拡張フィールドの有無を示すフラグが記述される。ヘッダデータ長フィールド４５には、追加のフィールド４６およびスタッフィングバイトフィールド４９のフィールド長の和が格納される。
次に、追加のフィールド４６を説明する。例えば、時間フラグフィールド４４ａがＰＴＳおよびＤＴＳを有することを示すときは、フィールド４６として各５バイトのＰＴＳ／ＤＴＳフィールド４７が設けられる。ＰＴＳは映像データの表示時間情報であり、ＤＴＳ情報は復号のための時間情報である。時間フラグフィールド４４ａの値に応じて、いずれか一方のフィールドが設けられる。
また、追加のフィールド４６としてＰＥＳ拡張フィールド４８が設けられることもある。ＰＥＳ拡張フィールド４８にはプログラムストリーム３０の復号に必要な情報、例えば復号用のデータバッファの容量等が記述される。
ＰＥＳ拡張フィールド４８は、データストリーム３０では各ＶＯＢＵにおいて最初に現れるビデオパックおよびオーディオパックに設けられる。ＰＥＳ拡張フィールド４８は、例えばＰＥＳ拡張フラグフィールド４４ｂが１のときに存在し、０のときは存在しない。
パケットヘッダ４１ａには、スタッフィングバイトフィールド４９が設けられることがある。スタッフィングバイトフィールド４９には、パック長を調整するためのスタッフィングバイトが格納される。スタッフィングバイトは、意味を持たない“０ｘＦＦ”（１６進数）等のバイトデータである。スタッフィングバイトフィールド４９とパディングパケット４２とは、パック長を調整するための同じ目的で設けられる。よって、ＤＶＤビデオ規格のスタッフィングバイトは７バイト以下という条件、および、スタッフィングバイト４９とパディングパケット４２は同一のパック内に共存できないという条件が定められている。図４に示す例では、ビデオパック３２にはパディングパケット４２が存在しているため、スタッフィングバイトフィールド４９は０バイトであり存在しない。
なお、図４ではビデオパックのデータ構造を示したが、オーディオパックのデータ構造も同様である。「ビデオパケット」を「オーディオパケット」に読み替え、ペイロードに格納される「ビデオデータ」を「オーディオデータ」に読み替えればよい。よって、オーディオパケットのパケットヘッダ４１ａには、追加のフィールド４６にＰＴＳ／ＤＴＳフィールド４７が記述され、その再生（出力）のタイミングを示すＰＴＳまたはＤＴＳが記述される。なお、以下では、オーディオの再生時刻情報（ＰＴＳ）は「ＡＰＴＳ」と記す。そして、ビデオの再生時刻情報（ＰＴＳ）は「ＶＰＴＳ」と記す。
次に、図５を参照しながら、データ処理装置を説明する。図５は、本実施形態によるデータ処理装置５０の機能ブロックの構成を示す。本実施形態では、データ処理装置５０はオーディオフレームの再生時刻を基準としてビデオフレームの出力のタイミングを管理している。したがって、図１に示す再生装置１０のように、ＳＴＣレジスタ４によってビデオおよびオーディオの出力が管理されている処理とは異なっている点に留意されたい。なお、本明細書では、ビデオおよびオーディオのフレームデータを出力した時刻と、そのフレームが再生されて映像として表示され、音声として出力される時刻とは同じであるとする。
データ処理装置５０の動作の概要は以下のとおりである。まず、データ処理装置５０は、データストリーム３０を記録媒体から読み出し、複数のピクチャのデータを含む圧縮符号化されたビデオデータ、各ピクチャのＶＰＴＳ、複数のフレームのデータを含むオーディオデータおよび各フレームのＡＰＴＳを分離する。そして、データ処理装置５０は、複数のピクチャおよび複数のフレームを再生するために、ビデオデータおよびオーディオデータを復号化する。
この処理と併せて、データ処理装置５０は、基準時刻からの経過時間（例えばオーディオの再生開始時刻）をカウントし、各ピクチャの出力時には各ピクチャのＶＰＴＳと経過時間との差分値を計算し、各オーディオフレームの出力時には各オーディオフレームのＡＰＴＳと経過時間との差分値を計算する。そして、ビデオおよびオーディオの各差分値の大きさに応じてビデオデータの再生出力を制御する。例えば、ビデオの差分値がオーディオの差分値よりも所定値以上大きくなったときは、ビデオの一枚のピクチャの出力をスキップする。なお、ピクチャは、フレームおよびフィールドの両方を表す概念である。
以下、データ処理装置５０の各構成要素を説明し、その後、データ処理装置５０の動作を説明する。
データ処理装置５０は、光ピックアップ５１と、再生処理部５２と、ＡＶパーサ５３と、基準カウンタレジスタ５４と、ＡＶ同期制御部５５と、ＶＰＴＳレジスタ５６と、ＶＰＴＳ差分レジスタ５７と、ＡＰＴＳレジスタ５８と、ＡＰＴＳ差分レジスタ５９と、ビデオデコーダ６０と、オーディオデコーダ６１とを有する。
光ピックアップ５１は、記録媒体からデータストリーム３０を読み出す。記録媒体は、例えばＤＶＤ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）等の光ディスクである。再生処理部５２は、アナログ信号として得られたデータストリーム３０をデジタル化して出力する。
ＡＶパーサ５３は、データストリーム３０をビデオストリームとオーディオストリームに分離する。また、ＡＶパーサ５３は、システムストリームからＳＣＲを抽出し、さらに、データストリーム３０のビデオパック３２、３５等に含まれているビデオ再生時刻情報ＶＰＴＳ、および、オーディオパック３３、３６等に含まれているオーディオ再生時刻情報ＡＰＴＳを抽出する。
ビデオデコーダ６０は、ビデオストリームを復号化してビデオデータを生成する。具体的には、ビデオデコーダ６０は、時刻情報ＤＴＳによって示される値と、後述の基準カウンタレジスタ５４によって示される基準カウンタ値とが一致しまたは所定の差が生じたときに、そのＤＴＳが付加されたピクチャデータを復号化する。そして、ＶＰＴＳ値と基準カウンタ値とが一致しまたは所定の差が生じたときに、そのＰＴＳが付加されたピクチャデータを出力する。また、ビデオデコーダ６０は、フレームの出力をスキップする指示を受け取ると、その次のフレームの出力をスキップして後続のフレームから再び出力を開始する。
オーディオデコーダ６１は、オーディオストリームをデコードしてオーディオデータを生成する。オーディオデコーダ６１は、オーディオフレームデータを復号化し、オーディオデータを出力する。
基準カウンタレジスタ５４は、オーディオデータの出力タイミングを基準として、換言すれば、再生の基準時間と同じ早さで経過時間をカウントする。経過時間は、例えば９０ｋＨｚの精度で表されるとする。この精度により、ビデオフレームやオーディオフレームより充分に短い時間間隔で基準時間を更新できる。
ＶＰＴＳレジスタ５６は、ビデオの再生時間に対応するＶＰＴＳを保持する。ＶＰＴＳ差分レジスタ５７は、ＶＰＴＳレジスタ５６が保持するＶＰＴＳ値と基準カウンタレジスタ５４の値の差分値（ＶＰＴＳ差分値）を保持する。ＡＰＴＳレジスタ５８は、オーディオの再生時間に対応するＡＰＴＳを保持する。ＡＰＴＳ差分レジスタ５９は、ＡＰＴＳレジスタ５８と基準カウンタレジスタ５４の差分値（ＡＰＴＳ差分値）を保持する。上述したＶＰＴＳレジスタ５６、ＶＰＴＳ差分レジスタ５７、ＡＰＴＳレジスタ５８およびＡＰＴＳ差分レジスタ５９の各レジスタは、ある値を受け取ると、次の値が入力されるまでその値を保持している。
ＡＶ同期制御部５５は、ＶＰＴＳ差分レジスタ５７の値とＡＰＴＳ差分レジスタ５８の値とを比較して、ビデオデコーダ６０を制御してビデオデータの再生出力を調整する。これにより、オーディオに対してビデオを同期させている。
ここで、ビデオデコーダ６０の動作およびオーディオデコーダ６１の動作を具体的に説明する。図６は、ビデオデコーダの処理の手順を示す。ビデオデコーダ６０は、ステップＳ６１において出力すべきビデオフレームを特定する指示をＡＶ同期制御部５５から受け取ると、ステップＳ６２においてそのフレームを復号化して出力する。次に、ステップＳ６３において、ビデオデコーダ６０は出力したビデオフレームに対応するＶＰＴＳ値をＶＰＴＳレジスタ５６に書き込む。そして、ステップＳ６４において、ビデオデコーダ６０はＶＰＴＳレジスタ５６に保持された値から、基準カウンタレジスタ５４がその時点で有するカウンタ値を減算し、得られたＶＰＴＳ差分値をＶＰＴＳ差分レジスタ５７に書き込む。ビデオデコーダ６０のこのような動作により、ＶＰＴＳレジスタ５６およびＶＰＴＳ差分レジスタ５７に保持されている値がそれぞれ更新される。
なお、ＶＰＴＳレジスタ５６およびＶＰＴＳ差分レジスタ５７への書き込みをビデオ出力の前に行ってもよい。また、出力時に、１フレーム先のＶＰＴＳ値を用いてＶＰＴＳレジスタ５６およびＶＰＴＳ差分レジスタ５７の値を更新してもよい。
次に、図７は、オーディオデコーダ６１の処理の手順を示す。ステップＳ７１において、オーディオデコーダ６１は、オーディオデコーダはオーディオストリームを復号化して出力する。次に、ステップＳ７２において、オーディオデコーダ６１は、オーディオフレームに対応するＡＰＴＳの値をＡＰＴＳレジスタに書き込む。そして、ステップＳ７３において、オーディオデコーダ６１はＡＰＴＳレジスタ５８に保持された値から、基準カウンタレジスタ５４がその時点で有するカウンタ値を減算し、得られたＡＰＴＳ差分値をＡＰＴＳ差分レジスタ５９に書き込む。
なお、ＡＰＴＳレジスタ５８およびＡＰＴＳ差分レジスタ５９への書き込みを、オーディオ出力の前に行ってもよい。また、出力時に、１オーディオフレーム（３２ミリ秒）先のＡＰＴＳ値を用いて、ＡＰＴＳレジスタ５８およびＡＰＴＳ差分レジスタ５９の値を更新してもよい。
次に、データ処理装置５０の処理を説明する。図８は、データ処理装置５０の処理の手順を示す。まずステップＳ８１において、光ピックアップ５１が光ディスクからデータストリームを読み出し、再生処理部５２がデジタル化処理を行う。そして、ステップＳ８２において、ＡＶパーサ５３は、読み出したデータストリーム３０からビデオストリームとＶＰＴＳおよびオーディオストリームとＡＰＴＳを分離する。
ステップＳ８３において、ビデオデコーダ６０は、ビデオフレームを出力するとともに、そのＶＰＴＳ値をＶＰＴＳレジスタ５６に書き込み、そのＶＰＴＳ差分値をＶＰＴＳ差分レジスタ５７に書き込む。次に、ステップＳ８４において、オーディオデコーダ６１はオーディオフレームを出力するとともに、そのＡＰＴＳ値をＡＰＴＳレジスタ５８に書き込み、そのＡＰＴＳ差分値をＡＰＴＳ差分レジスタ５９に書き込む。
続いて、ステップＳ８５において、ＡＶ同期制御部５５はＶＰＴＳ差分レジスタ５７に保持されているＶＰＴＳ差分値と、ＡＰＴＳ差分レジスタ５９に保持されているＡＰＴＳ差分値とを比較する。
ステップＳ８５の比較の意味を図９を参照しながら説明する。図９は、ＶＰＴＳレジスタ５６、ＶＰＴＳ差分レジスタ５７、ＡＰＴＳレジスタ５８、ＡＰＴＳ差分レジスタ５９においてそれぞれ保持された値の変遷を示すグラフである。このグラフは、オーディオに対してビデオが２０ミリ秒進んだ状態で同期して出力を継続している場合の例である。
本実施形態では、ＡＰＴＳ値は３２ミリ秒ごとに離散的に増加し、ＶＰＴＳ値は１６．７ミリ秒ごとに離散的に増加する。図９では、ＡＰＴＳおよびＡＰＴＳ差分値が更新されるタイミングを“●”によって示し、ＶＰＴＳおよびＶＰＴＳ差分値が更新されるタイミングを“▲”によって示している。これらのタイミングにおいて、オーディオフレームおよびビデオフレームが出力されている。なお、基準カウンタは、説明の便宜上、ＡＰＴＳの再生開始時において−５０ミリ秒からカウントを開始しているが、再生開始時における開始カウント値は任意である。
先に述べたように、ＡＰＴＳレジスタ５８およびＶＰＴＳレジスタ５６は次の値が入力されるまでは前の値を保持しているため、ＡＰＴＳレジスタ５８およびＶＰＴＳレジスタ５６が保持する値のグラフは階段状（ステップ状）になる。よって、ＡＰＴＳ値とＶＰＴＳ値との差は、その差を計算するタイミングによって大きく変化してしまう。よって、この差に基づいてオーディオとビデオとの同期を確認することは妥当ではない。
オーディオフレームおよびビデオフレームは、ＡＰＴＳ値およびＶＰＴＳ値が基準カウンタ値と一致しまたは所定の差が生じたときに出力されている。図９に示す例では、−５０ミリ秒の差が生じたときに出力されている。よって、オーディオフレームの再生時刻に基づいて基準カウンタ値を生成している本実施形態の条件の下では、ＡＰＴＳ値と基準カウンタ値との差分値（ＡＰＴＳ差分値）を計算すると常に一定になる。これはＡＰＴＳ差分のグラフに示すとおりである。
一方、ＶＰＴＳ値と基準カウンタ値との差分値（ＶＰＴＳ差分値）は、ビデオフレームの出力が遅すぎず、かつ、早すぎない場合には、一定になる。例えば、オーディオに対して−５０ミリ秒〜＋３０ミリ秒の範囲でビデオが出力されると、概ね一定になる。これはＶＰＴＳ差分のグラフに示すとおりである。このときは、視聴者はビデオがオーディオに同期していると感じる。ただし、その範囲を超えてビデオフレームが遅れて出力されるとＶＰＴＳ差分値は小さくなり、進むと大きくなる。
よって、ＡＰＴＳ差分値とＶＰＴＳ差分値とを比較すれば、その比較を行うタイミングに依存することなく、正確にオーディオフレームの出力に対するビデオフレームの出力の遅れを特定できる。
再び図８を参照する。ステップＳ８５における比較の結果、ＶＰＴＳ差分値がＡＰＴＳ差分値よりも所定時間α（例えばα＝３０ミリ秒）以上大きければステップＳ８６に進み、そうでなければステップＳ８７に進む。
ステップＳ８６では、ビデオフレームが早く出力されているため、ＡＶ同期制御部５５からの指示に基づいて、ビデオデコーダ６０は現在のビデオフレームを再度出力する。これにより、ビデオフレームの出力がポーズされてオーディオフレームの出力がビデオフレームの出力に追いつくことになり、オーディオとビデオの同期が実現される。その後、処理はステップＳ８９に進む。
ステップＳ８７では、ＶＰＴＳ差分値がＡＰＴＳ差分値−所定時間β（例えばβ＝５０ミリ秒）よりも小さいか否かが判断される。小さい場合にはステップＳ８８に進み、小さくない場合にはＶＰＴＳ差分値がＡＰＴＳ差分値と概ね等しいことを意味する。この後処理はステップＳ８９に進む。
ステップＳ８８では、ＡＶ同期制御部５５からの指示に基づいて、ビデオデコーダ６０は１ビデオフレームをスキップし後続のビデオフレームを出力する。これにより、ビデオフレームの出力がオーディオフレームの出力に追いつくことになりオーディオとビデオの同期が実現される。
ステップＳ８９では、ＡＶ同期制御部５５はビデオフレームが残っているか否かを判断する。残っている場合にはステップＳ８３以降の処理を繰り返し、残っていない場合には処理を終了する。
次に、図１０を参照しながら、オーディオフレームの出力がビデオフレームの出力よりも先に終了した場合の処理を説明する。
図１０は、オーディオフレームの出力がビデオフレームの出力よりも先に終了したときの、各種レジスタ５６、５７、５８および５９においてそれぞれ保持された値の変遷を示すグラフである。時刻ｔ＝ｔ１においてオーディオフレームの出力が終了し、出力が途切れているとする。時刻ｔ＝ｔ１以降はＡＰＴＳの更新はないため、ＡＰＴＳレジスタの値が増加しなくなることに留意されたい。仮に、ＡＰＴＳレジスタ５８の値を基準にビデオを同期させるとすると、点線で示したＶＰＴＳ（１）のようにビデオの出力も進まなくなる。
しかし、ＡＰＴＳ差分レジスタ５７およびＶＰＴＳ差分レジスタ５９を利用すると、オーディオデータが途切れてもＡＰＴＳ差分レジスタの値は同じ値が継続して出力されるため、オーディオの出力が継続している場合と同じ状態を維持できる。よって、先に説明したと同じ処理によってビデオフレームの出力を確実に継続することができる。このときのＶＰＴＳレジスタ５６の値をＶＰＴＳ（２）として示す。
次に、図１１を参照しながら、オーディオおよびビデオの再生が視聴者からの指示等に基づいてポーズされた場合の処理を説明する。図１１は、再生をポーズさせたときの、各種レジスタ５６、５７、５８および５９においてそれぞれ保持された値の変遷を示すグラフである。時刻ｔ＝ｔ３において再生がポーズされたとする。時刻ｔ＝ｔ３以降のポーズ期間中は、ビデオは同じフレームの出力を繰り返す。そのため、ＶＰＴＳレジスタ５６には、ポーズ直前の時刻におけるＶＰＴＳ値と同じ値が入力され続ける。また、ＶＰＴＳ値が一定で、かつ基準カウンタ値は増加するため、ＶＰＴＳ差分レジスタ５７に入力されるＶＰＴＳ差分値は徐々に階段状に減少する。一方、オーディオは出力を停止する。よって、ＡＰＴＳ値およびＡＰＴＳ差分値は、ポーズされた時刻ｔ＝ｔ３の直前の時刻ｔ＝ｔ２において更新されたＡＰＴＳ値およびＡＰＴＳ差分値が保持される。ＡＰＴＳ差分値とＶＰＴＳ差分値とを比較すると、ポーズ期間中はその差は大きくなり続ける。その結果、正常な表示であるにもかかわらず、ＡＶ同期制御部５５はビデオフレームの再生が遅れていると誤って認識してしまい、誤動作を招く。
そこで、この場合には、ＡＶ同期制御部５５は、ＡＰＴＳレジスタ５８内のＡＰＴＳ値と、ＶＰＴＳレジスタ５６内のＶＰＴＳ値とを利用してビデオフレームの出力を継続すればよい。すなわち、ＡＰＴＳレジスタ５８内のＡＰＴＳ値、および、ＶＰＴＳレジスタ５６内のＶＰＴＳ値は全く同じ値をとりつづけるため、ポーズ期間中はその差も一定である。よって、この差に基づけば、ＡＶ同期制御部５５はビデオフレームの再生タイミングがずれていると判断することもない。ビデオフレームの出力タイミングは、ＮＴＳＣ方式によれば、ポーズされた時刻ｔ＝ｔ３の直前に表示されたフレームを基準として１／２９．９７秒（約１／３０秒）ごとである。なお、インターレースで表示される場合には、出力タイミングは、直前に表示された２枚のフィールドを５９．９４秒（約１／６０秒）ごとである。なお、これらのタイミングの決定にあたっては、ＡＰＴＳレジスタ５８内のＡＰＴＳ値は特に利用されない。
その後、ポーズが解除されたときは、データ処理装置５０は、図１２に示すように処理して、オーディオとビデオの同期を取ることができる。図１２は、再生ポーズが解除されたときのデータ処理装置５０の処理の手順を示す。まず、ステップＳ１２０において、ＡＶ同期制御部５５は視聴者等からポーズ解除の指示を受け取る。そして、ステップＳ１２１において、ＶＰＴＳ値がＡＰＴＳ値＋所定時間γ（例えばγ＝３０ミリ秒）よりも大きければステップＳ１２２に進み、そうでなければステップＳ１２３に進む。ステップＳ１２２において、ＡＶ同期制御部５５はまずオーディオ再生のポーズを解除し、その後、ビデオ再生のポーズを解除する。オーディオ再生のポーズを先に解除することにより、オーディオフレームの出力がビデオフレームの出力に追いつくことになり、オーディオとビデオの同期が実現される。その後、図１２の処理は終了し、図８に示す処理へと移る。
ステップＳ１２３において、ＶＰＴＳ値がＡＰＴＳ値−所定時間δ（例えばδ＝５０ミリ秒）よりも小さいか否かが判断される。小さい場合にはステップＳ１２４に進み、小さくない場合にはステップＳ１２５に進む。
ステップＳ１２４では、ＡＶ同期制御部５５はビデオ再生のポーズを解除し、その後、オーディオ再生のポーズを解除する。これにより、ビデオフレームの出力がオーディオフレームの出力に追いつくことになりオーディオとビデオの同期が実現される。その後、図１２の処理は終了し、図８に示す処理へと移る。
ステップＳ１２５では、ビデオ再生のポーズとオーディオ再生のポーズとを同時に解除する。そして図１２の処理は終了し、図８に示す処理へと移る。なお、ＶＰＴＳ差分レジスタと基準カウンタレジスタを加算した値と、ＡＰＴＳレジスタとを比較してオーディオとビデオの同期を取ることも可能である。
なお、ＶＰＴＳ差分レジスタ５７と基準カウンタレジスタ５４のみでは、現在出力中のフレームを特定することが困難であるが、ＶＰＴＳレジスタ５６を備えることにより、出力されているビデオフレームを容易に特定することができる。
以上、本発明の実施形態によるデータ処理装置５０を説明した。データ処理装置５０は、図５に示す構成の他に、例えば図１３に示す構成をとることもできる。図１３は、データ処理装置の他の構成例を示す。ＡＶ同期制御部５５の機能は、再生処理プログラム１３０に基づいて動作する汎用ＣＰＵ１３１によって実現され、光ピックアップ５１、再生処理部５２およびＡＶ同期制御部５５を除くデータ処理装置の構成要素が、１つのデコーダチップ１３１によって実現されている。なお、光ピックアップ５１および再生処理部５２の図示は省略している。
再生処理プログラム１３０は、図８および図１２に示す手順に従ってデータ処理装置を動作させるように記述され、汎用ＣＰＵ１３１によって実行される。ＡＶ同期処理部５５の機能がＣＰＵがソフトウェアを実行することによって実現される場合には、ＡＶ同期制御部５５の処理に対するリアルタイム要求を低くすることができるという利点が存在する。すなわち、汎用ＣＰＵ１３１は上述した処理に加えて、当然に他の処理、例えば光ピックアップ５１の移動処理、再生処理部５２における２値化処理等を実行する必要がある。図８および図１２における処理は、ＶＰＴＳ差分値とＡＰＴＳ差分値との比較演算等のタイミングの制約はなく、いつ行っても正確な同期を実現できるため、汎用ＣＰＵ１３１の動作に関するスケジューリングに対する制限は少なくなる。この利点は、従来の再生装置２０等において、同期の精度を向上するために汎用ＣＰＵ１３１に対してＰＴＳ更新を厳密なタイミングで実行させなければならない場合と比較すると、顕著である。
【産業上の利用可能性】  本発明によれば、ＡＰＴＳ差分レジスタとＶＰＴＳ差分レジスタを利用してオーディオとビデオの出力の進捗状態を比較することにより、確実にオーディオとビデオの同期を取ることができる。さらに、オーディオデータがビデオデータよりも先に途切れても、オーディオを基準にビデオの出力を継続させることが可能になる。さらに、ＡＰＴＳレジスタを備えることにより、ポーズ中にもオーディオとビデオの出力の進捗具合を比較するとともに、ポーズの解除後にもオーディオとビデオの同期をとることができる。これにより、視聴者にとって違和感のない再生を実現できる装置を提供できる。
【図１】
2004084553.tif 000003
【図２】
2004084553.tif 000004
【図３】
2004084553.tif 000005
【図４】
2004084553.tif 000006
【図５】
2004084553.tif 000007
【図６】
2004084553.tif 000008
【図７】
2004084553.tif 000009
【図８】
2004084553.tif 000010
【図９】
2004084553.tif 000011
【図１０】
2004084553.tif 000012
【図１１】
2004084553.tif 000013
【図１２】
2004084553.tif 000014
【図１３】
2004084553.tif 000015
【手続補正書】
【提出日】平成17年1月17日(2005.1.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データストリームを受け取って、前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するパーサと、
前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力する出力部と、
所定の基準時刻からの経過時間をカウントする基準レジスタと、
前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持する第１差分レジスタと、
前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納する第２差分レジスタと、
前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御する制御部と
を備えたデータ処理装置。
【請求項２】
前記基準レジスタは、前記オーディオデータの出力開始時刻を前記所定の基準時刻として経過時間をカウントする、請求項１に記載のデータ処理装置。
【請求項３】
前記制御部は、前記第２差分値が、前記第１差分値と第１所定値との和よりも大きい場合には、前記出力部に対してその時点で出力されているピクチャのビデオデータを再度出力させる、請求項１に記載のデータ処理装置。
【請求項４】
前記制御部は、前記第２差分値が、前記第１差分値と第２所定値との差よりも小さい場合には、前記出力部に対してピクチャのビデオデータの出力をスキップさせる、請求項１に記載のデータ処理装置。
【請求項５】
前記制御部は、再生のポーズの指示を受け取ると、前記第１時刻情報および前記第２時刻情報に基づいて前記ビデオデータの出力を制御する、請求項１に記載のデータ処理装置。
【請求項６】
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記第２時刻情報が前記第１時刻情報と第３所定値との和よりも大きい場合には、前記出力部に対して前記オーディオデータを前記ビデオデータよりも先に出力させる、請求項５に記載のデータ処理装置。
【請求項７】
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記第２時刻情報が前記第１時刻情報と第４所定値との差よりも小さい場合には、前記出力部に対して前記ビデオデータをオーディオデータよりも先に出力させる、請求項５に記載のデータ処理装置。
【請求項８】
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記出力部に対して前記ビデオデータとオーディオデータとを同時に出力させる、請求項５に記載のデータ処理装置。
【請求項９】
データストリームを受け取るステップと、
前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するステップと、
前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力するステップと、
所定の基準時刻からの経過時間をカウントするステップと、
前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持するステップと、
前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納するステップと、
前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御するステップと
を包含するデータ処理方法。
【請求項１０】
前記経過時間をカウントするステップは、前記オーディオデータの出力開始時刻を前記所定の基準時刻として経過時間をカウントする、請求項９に記載のデータ処理方法。
【請求項１１】
前記第２差分値が、前記第１差分値と第１所定値との和よりも大きい場合には、前記出力するステップは、その時点で出力されているピクチャのビデオデータを再度出力する、請求項９に記載のデータ処理方法。
【請求項１２】
前記第２差分値が、前記第１差分値と第２所定値との差よりも小さい場合には、前記出力するステップは、ピクチャのビデオデータの出力をスキップする、請求項９に記載のデータ処理方法。
【請求項１３】
再生のポーズの指示を受け取るステップをさらに包含し、
前記出力するステップは、前記指示に応答して、前記第１時刻情報および前記第２時刻情報に基づいて前記ビデオデータの出力を制御する、請求項９に記載のデータ処理方法。
【請求項１４】
再生のポーズの指示を受け取るステップをさらに包含し、
前記出力するステップは、前記指示に応答して、前記第２時刻情報が前記第１時刻情報と第３所定値との和よりも大きい場合には、前記オーディオデータを前記ビデオデータよりも先に出力する、請求項１３に記載のデータ処理方法。
【請求項１５】
再生のポーズの指示を受け取るステップをさらに包含し、
前記出力するステップは、前記指示に応答して、前記第２時刻情報が前記第１時刻情報と第４所定値との差よりも小さい場合には、前記ビデオデータをオーディオデータよりも先に出力する、請求項１３に記載のデータ処理方法。
【請求項１６】
再生のポーズの指示を受け取るステップをさらに包含し、
前記出力するステップは、前記指示に応答して、前記ビデオデータとオーディオデータとを同時に出力する、請求項１３に記載のデータ処理方法。
【請求項１７】
データ処理装置において実行されるコンピュータプログラムであって、
前記データ処理装置のコンピュータに、
データストリームを受け取るステップと、
前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するステップと、
前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力するステップと、
所定の基準時刻からの経過時間をカウントするステップと、
前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持するステップと、
前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納するステップと、
前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御するステップと
を実行させるコンピュータプログラム。
【請求項１８】
前記経過時間をカウントするステップは、前記オーディオデータの出力開始時刻を前記所定の基準時刻として経過時間をカウントする、請求項１７に記載のコンピュータプログラム。
【請求項１９】
前記第２差分値が、前記第１差分値と第１所定値との和よりも大きい場合には、前記出力するステップは、その時点で出力されているピクチャのビデオデータを再度出力する、請求項１７に記載のコンピュータプログラム。
【請求項２０】
前記第２差分値が、前記第１差分値と第２所定値との差よりも小さい場合には、前記出力するステップは、ピクチャのビデオデータの出力をスキップする、請求項１７に記載のコンピュータプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮符号化されたオーディオデータおよびビデオデータを復号化して、音声および映像を再生する技術に関する。
【背景技術】
【０００２】
近年、長時間の映像（ビデオ）および音声（オーディオ）の各データを圧縮符号化してデータ量を抑え、記録媒体に記録する手法の開発が進んでいる。国際標準化機構（ＩＳＯ）においては、国際電気標準会議（ＩＥＣ）のＭＰＥＧ（Moving Picture Image Coding Experts Group）によるオーディオおよびビデオの符号化方式の標準化が行われている。例えば「ISO/IEC 13818-2」においてビデオの圧縮方式が規定され、「ISO/IEC 13818-3」でオーディオの圧縮方式が規定され、「ISO/IEC 13818-1」でこれらを統合化する方式が規定されている。最後に掲げた方式は、ＭＰＥＧシステム規格として知られている。このような圧縮符号化技術を利用することにより、映画等の長時間のビデオおよびオーディオに関するデータストリーム（ＭＰＥＧシステムストリーム）を、高品質を保ちつつ、１枚の記録媒体（例えば、光ディスク）に記録することが可能になっている。
【０００３】
さらに、記録媒体へ記録する方式についても標準化が進んでいる。例えば、ＤＶＤ規格（DVD Specification for Read-Only Disc Version 1.0）が知られている。また、ビデオおよびオーディオのデータを記録媒体に記録するための規格として、１９９９年９月にはＤＶＤビデオレコーディング（DVD Video Recording）規格（DVD Specifications for Rewritable/Re-recordable Discs）が規定されている。
【０００４】
次に、記録媒体に記録されたデータストリームから、ビデオおよびオーディオを同期させて再生する処理を説明する。図１は、システムストリームを再生可能な従来の再生装置１０の機能ブロックの構成を示す。ここでは、システムストリームはプログラムストリームであり、システム時刻基準ＳＣＲの情報を含むとする。
【０００５】
再生装置１０は、ＡＶパーサ１、ビデオデコーダ２、オーディオデコーダ３およびＳＴＣレジスタ４を含む。
【０００６】
ＡＶパーサ１は外部からシステムストリームを受け取り、そのシステムストリームをオーディオおよびビデオの各データに分離する（以下、オーディオに関するデータストリームをオーディオストリームといい、ビデオに関するデータストリームをビデオストリームという）。ＡＶパーサ１は、システムストリームからシステム時刻基準ＳＣＲ、オーディオの再生時刻情報（ＡＰＴＳ）およびビデオの再生時刻情報（ＶＰＴＳ）を抽出する。ＡＶパーサ１は、システム時刻基準ＳＣＲに基づいて、ＳＴＣレジスタ４に基準値を設定する。そして、ＡＶパーサ１は、ビデオストリームおよびＶＰＴＳをビデオデコーダ２に出力し。オーディオストリームおよびＡＰＴＳをオーディオデコーダ３に出力する。ＳＴＣレジスタ４は、基準値に基づいて同期信号ＳＴＣを生成する。
【０００７】
ビデオデコーダ２は、同期信号ＳＴＣおよびビデオの復号時刻情報（ＶＤＴＳ）にしたがってビデオストリームを復号化し、復号化したビデオデータを同期信号ＳＴＣとＶＰＴＳとが一致したタイミングで出力する。例えばビデオでは、ＮＴＳＣ方式の場合には約１６．７ミリ秒に相当する間隔で再生時刻情報ＶＰＴＳが付加されている。これは、フィールド画像の表示タイミングに合わせているからである。なお、ＮＴＳＣ方式では、ビデオは１秒に３０フレームが表示され、かつ、１フレームが２フィールドから構成されているため、１フィールドは約１６．７ミリごとに書き換えられている。
【０００８】
オーディオデコーダ３は、同期信号ＳＴＣおよびオーディオの復号時刻情報（ＡＤＴＳ）にしたがってビデオストリームを復号化し、復号化したオーディオデータを同期信号ＳＴＣとＡＰＴＳとが一致したタイミングで出力する。例えば、再生時刻情報ＡＰＴＳは、１オーディオフレームの再生タイミング（約３２ミリ秒）に相当する間隔で付加されている。
【０００９】
以上の処理により、システムストリーム製作者がエンコード時に意図したタイミングでオーディオおよびビデオの同期再生が実現される。
【００１０】
上述の例は、システム時刻基準ＳＣＲに基づいて同期信号ＳＴＣが生成されるとした。これは、デジタル放送をリアルタイムで受信して再生する場合において、送信側と受信側のクロックを同期させる必要があるときにも同様である（ただし、デジタル放送がトランスポートストリームを利用する場合にはプログラム時刻基準ＰＣＲが用いられる）。
【００１１】
一方、光ディスク等の記録媒体に既に記録されているシステムストリームを読み出してビデオおよびオーディオを再生する場合には、必ずしもシステム時刻基準ＳＣＲを用いてエンコード時のクロックを再現する必要はない。例えば、オーディオのＡＰＴＳを用いて同期信号ＳＴＣを設定してもよい。そこで、そのような再生例を図２を参照しながら説明する。
【００１２】
図２は、従来の再生装置２０の機能ブロックの構成を示す。再生装置２０は記録媒体に記録されたシステムストリームに基づいてオーディオストリームおよびビデオストリームを復号化し、オーディオの再生時刻情報（ＡＰＴＳ）に基づいてビデオを出力してオーディオと同期させる。再生装置２０は、例えば、日本国特開平１０−１３６３０８号公報において開示されている。
【００１３】
ＡＶ分離部１２は、データ記録装置１１に格納された、デジタルエンコードされたシステムストリームを読み出し、多重化されて記録されているオーディオデータとビデオデータを分離する。
【００１４】
ビデオ処理部１３は、ビデオデータを復号化し、その際に得られたビデオヘッダ情報を遅延検出部１６に送る。ヘッダ情報にはビデオの再生時刻情報ＶＰＴＳが記述されている。さらに、ビデオ処理部１３は、再生の開始から現在までに再生したビデオデータの積算フレーム数をビデオフレームカウンタ１８へ保存する。オーディオ処理部１４は、オーディオデータを復号化するとともに、その際に得られたオーディオヘッダ情報をクロック生成部１７に送る。ヘッダ情報にはオーディオの再生時刻情報ＶＰＴＳが記述されている。さらに、オーディオ処理部１４は、オーディオ再生の開始から現在までに再生したオーディオデータの積算データ量をオーディオデータカウンタ１９へ保存する。
【００１５】
クロック生成部１７は、オーディオデータカウンタ１９に保存されている積算データ量と、オーディオ処理部１４より得たオーディオヘッダ情報に基づいて、オーディオの再生経過時間として示される基準時刻を算出する。遅延検出部１６は、クロック生成部１７から得られた基準時刻の情報およびビデオ処理部１３から受け取ったビデオヘッダ情報に基づいて、本来出力すべきビデオデータの理想フレーム数を算出する。遅延検出部１６は、理想フレーム数と、ビデオフレームカウンタで得られた実フレーム数を比較し、オーディオの再生に対するビデオの再生の進捗を検出する。
【００１６】
遅延検出部１６によってビデオ出力がオーディオ出力より遅れていると検出されると、コマ落とし制御部１５は、出力しないフレーム（コマ落としフレーム）を決定してその情報をＡＶ分離部１２およびビデオ処理部１３に伝える。ビデオ処理部１３は、コマ落としフレームの出力をスキップしてその後続のフレームを出力する。これにより、ビデオの遅延が１フレームの表示時間相当分（例えば、ＮＴＳＣの場合は３３ミリ秒）だけ解消され、オーディオ出力に対する遅れが解消される。再生装置２０は、上述の手法により、オーディオおよびビデオの同期再生を実現する。
【００１７】
オーディオの再生に対するビデオの再生の関係は以下のとおりである。製作者がエンコード時に意図したタイミングでビデオおよびオーディオが再生されている状態を理想状態とする。一般に、オーディオの再生を基準にしてビデオが理想状態から−５０ミリ秒〜＋３０ミリ秒の範囲で再生されると、人間はオーディオとビデオが同期していると感じる。そこで、オーディオ再生時刻に対してビデオ再生時刻がこの許容範囲に入っている場合には、ビデオ出力はオーディオ出力より遅れていないと判断し、許容範囲に入っていない場合には、遅れていると判断すればよい。
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかしながら、従来の再生装置において、オーディオの再生経過時間を基準にしてビデオを再生すると、以下のような問題が生じる。
【００１９】
すなわち、従来の再生装置は、オーディオおよびビデオが同期して再生されているか否かの判定において、オーディオとビデオのずれが許容範囲内にあるにもかかわらず、その許容範囲を超えていると誤まって判定するおそれがある。
【００２０】
例えば、オーディオに対してビデオが許容範囲内の２０ミリ秒遅れて再生されているとする。上述のように、オーディオのフレームには約３２ミリ秒ごとにＡＰＴＳが付加されており、ビデオのフィールドには約１６．７ミリ秒ごとにＶＰＴＳが付加されている。そのため、ＡＰＴＳに対してＶＰＴＳを比較するタイミングによっては、ビデオはオーディオよりも最大５２ミリ秒ずれて再生されてしまう。特に、ＶＰＴＳとＡＰＴＳを比較するタイミングをＶＰＴＳの更新直後に限定すると、ビデオはオーディオに対して＋２０ミリ秒〜＋５２ミリ秒遅れて再生される。よって、＋３０ミリ秒〜＋５２ミリ秒の遅れに対しては、視聴者にはビデオとオーディオとがずれて再生されているという違和感を与える。
【００２１】
また、従来の再生装置では、オーディオの再生がビデオの再生よりも先に終了するとそれ以後はビデオの再生を継続することができない。これは、オーディオの再生が終了するとオーディオの再生経過時間の進行が停止し、オーディオがビデオを再生するための時間基準として機能しなくなるからである。特に、システムストリームにはオーディオデータおよびビデオデータが混在しており、かつ、オーディオデータおよびビデオデータの再生時刻が同じとは限らない。よって、データの読み出しを終了した時点で得られているオーディオデータおよびビデオデータの再生終了時刻が異なり、オーディオの再生がビデオの再生よりも先に終了することがあるため、不都合を生じる。
【００２２】
本発明の目的は、オーディオの再生時間を基準としてビデオの再生を行った場合において、オーディオとビデオとを確実に同期させることである。また、本発明の他の目的は、オーディオの再生がビデオよりも先に終了した場合であってもビデオを継続して再生することである。
【課題を解決するための手段】
【００２３】
本発明によるデータ処理装置は、データストリームを受け取って、前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するパーサと、前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力する出力部と、所定の基準時刻からの経過時間をカウントする基準レジスタと、前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持する第１差分レジスタと、前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納する第２差分レジスタと、前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御する制御部とを備えている。
【００２４】
前記基準レジスタは、前記オーディオデータの出力開始時刻を前記所定の基準時刻として経過時間をカウントしてもよい。
【００２５】
前記制御部は、前記第２差分値が、前記第１差分値と第１所定値 との和よりも大きい場合には、前記出力部に対してその時点で出力されているピクチャのビデオデータを再度出力させてもよい。
【００２６】
前記制御部は、前記第２差分値が、前記第１差分値と第２所定値 との差よりも小さい場合には、前記出力部に対してピクチャのビデオデータの出力をスキップさせてもよい。
【００２７】
前記制御部は、再生のポーズの指示を受け取ると、前記第１時刻情報および前記第２時刻情報に基づいて前記ビデオデータの出力を制御してもよい。
【００２８】
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記第２時刻情報が前記第１時刻情報と第３所定値との和よりも大きい場合には、前記出力部に対して前記オーディオデータを前記ビデオデータよりも先に出力させてもよい。
【００２９】
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記第２時刻情報が前記第１時刻情報と第４所定値との差よりも小さい場合には、前記出力部に対して前記ビデオデータをオーディオデータよりも先に出力させてもよい。
【００３０】
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記出力部に対して前記ビデオデータとオーディオデータとを同時に出力させてもよい。
【００３１】
本発明によるデータ処理方法は、データストリームを受け取るステップと、前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するステップと、前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力するステップと、所定の基準時刻からの経過時間をカウントするステップと、前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持するステップと、前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納するステップと、前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御するステップとを包含する。
【００３２】
前記経過時間をカウントするステップは、前記オーディオデータの出力開始時刻を前記所定の基準時刻として経過時間をカウントしてもよい。
【００３３】
前記第２差分値が、前記第１差分値と第１所定値との和よりも大きい場合には、前記出力するステップは、その時点で出力されているピクチャのビデオデータを再度出力してもよい。
【００３４】
前記第２差分値が、前記第１差分値と第２所定値との差よりも小さい場合には、前記出力するステップは、ピクチャのビデオデータの出力をスキップしてもよい。
【００３５】
前記データ処理方法は、再生のポーズの指示を受け取るステップをさらに包含してもよく、前記出力するステップは、前記指示に応答して、前記第１時刻情報および前記第２時刻情報に基づいて前記ビデオデータの出力を制御してもよい。
【００３６】
前記データ処理方法は、再生のポーズの指示を受け取るステップをさらに包含してもよく、前記出力するステップは、前記指示に応答して、前記第２時刻情報が前記第１時刻情報と第３所定値との和よりも大きい場合には、前記オーディオデータを前記ビデオデータよりも先に出力してもよい。
【００３７】
前記データ処理方法は、再生のポーズの指示を受け取るステップをさらに包含してもよく、前記出力するステップは、前記指示に応答して、前記第２時刻情報が前記第１時刻情報と第４所定値との差よりも小さい場合には、前記ビデオデータをオーディオデータよりも先に出力してもよい。
【００３８】
前記データ処理方法は、再生のポーズの指示を受け取るステップをさらに包含してもよく、前記出力するステップは、前記指示に応答して、前記ビデオデータとオーディオデータとを同時に出力してもよい。
【００３９】
本発明によるデータ処理プログラムは、コンピュータにより実行可能である。コンピュータが実装されたデータ処理装置は、このプログラムにしたがって、以下の手順を実行する。すなわち、データストリームを受け取るステップと、前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するステップと、前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力するステップと、所定の基準時刻からの経過時間をカウントするステップと、前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持するステップと、前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納するステップと、前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御するステップとを実行する。
【発明の効果】
【００４０】
本発明によれば、ＡＰＴＳ差分レジスタとＶＰＴＳ差分レジスタを利用してオーディオとビデオの出力の進捗状態を比較することにより、確実にオーディオとビデオの同期を取ることができる。さらに、オーディオデータがビデオデータよりも先に途切れても、オーディオを基準にビデオの出力を継続させることが可能になる。さらに、ＡＰＴＳレジスタを備えることにより、ポーズ中にもオーディオとビデオの出力の進捗具合を比較するとともに、ポーズの解除後にもオーディオとビデオの同期をとることができる。これにより、視聴者にとって違和感のない再生を実現できる装置を提供できる。
【発明を実施するための最良の形態】
【００４１】
以下では、まずデータストリームのデータ構造を説明し、その後、そのデータストリームを処理の対象とする本実施形態によるデータ処理装置を説明する。
【００４２】
図３は、ＤＶＤビデオレコーディング規格に準拠したＭＰＥＧ２プログラムストリーム３０のデータ構造を示す（以下、このストリームを「データストリーム３０」と記述する）。
【００４３】
データストリーム３０は、複数のビデオオブジェクト（Video OBject；ＶＯＢ）＃１、＃２、・・・、＃ｋを含んでいる。例えば、データストリーム３０がカムコーダで撮影されたコンテンツとすると、各ＶＯＢは、ユーザが録画を開始してから録画を停止するまでの１回の録画動作によって生成された動画データが格納されている。
【００４４】
各ＶＯＢは、複数のＶＯＢユニット（Video OBject unit；ＶＯＢＵ）＃１、＃２、・・・、＃ｎを含んでいる。各ＶＯＢＵは、主として、ビデオの再生時間にして０．４秒から１秒までの範囲内のビデオデータを含むデータ単位である。
【００４５】
以下、図３において最初に配置されたＶＯＢＵ＃１とその次に配置されたＶＯＢＵ＃２を例にして、ＶＯＢＵのデータ構造を説明する。
【００４６】
ＶＯＢＵ＃１は、ＭＰＥＧプログラムストリームの下位階層であるパックが複数集まって構成されている。データストリーム３０内の各パックのデータ長（パック長）は一定（２キロバイト（２０４８バイト））である。ＶＯＢＵの先頭には、図１に“Ｒ”で示されるリアルタイムインフォメーションパック（ＲＤＩパック）１１が配置されている。ＲＤＩパック３１の後には、“Ｖ”で示されるビデオパック（ビデオパック３２等）および“Ａ”で示されるオーディオパック（オーディオパック３３等）が複数含まれている。なお、各ＶＯＢＵのデータサイズは、再生時間が同じであってもビデオデータが可変ビットレートであれば最大記録再生レート以下の範囲で変動し、ビデオデータが固定ビットレートであればほぼ一定である。
【００４７】
各パックは以下の情報を格納している。ＲＤＩパック３１は、データストリーム３０の再生を制御するために用いられる情報、例えばＶＯＢＵの再生タイミングを示す情報や、データストリーム３０のコピーを制御するための情報を格納している。ビデオパック３２は、ＭＰＥＧ２圧縮符号化されたビデオデータを格納している。オーディオパック３３は、例えばＭＰＥＧ２−オーディオ規格によって圧縮されたオーディオデータを格納している。
【００４８】
ＶＯＢＵ＃２もまた、複数のパックから構成されている。ＶＯＢＵ＃２の先頭には、ＲＤＩパック３４が配置され、その後、ビデオパック３５およびオーディオパック３６等が複数配置されている。各パックに格納される情報の内容はＶＯＢＵ＃１と同様である。
【００４９】
ビデオおよびオーディオの復号化および再生は、アクセスユニットと呼ばれる単位を基準として行われる。アクセスユニットは、例えば、ビデオでは１ビデオフレーム、オーディオでは１オーディオフレームである。ＭＰＥＧシステム規格では、このアクセスユニットごとに復号化および再生のタイミングを指定するタイムスタンプが付加される。すなわち、いつ復号化すべきかを示す時刻情報ＤＴＳ（Decoding Time Stamp）およびいつ再生すべきかを示す時刻情報ＰＴＳ（Presentation Time Stamp）の２種類である。
【００５０】
一般に、データストリーム３０を含むＭＰＥＧシステム規格のシステムストリームを再生可能な再生装置は、その内部で同期信号ＳＴＣ（System Time Clock）を生成し、復号器（デコーダ）の動作タイミングの基準として用いている。同期信号ＳＴＣは、システムストリームがプログラムストリームの場合にはそのストリーム中に付加されたシステム時刻基準ＳＣＲ（System Clock Reference）値に基づいて生成され、また、システムストリームがトランスポートストリームの場合にはそのストリーム中に付加されたプログラム時刻基準ＰＣＲ（Program Clock Reference）値に基づいて生成される。
【００５１】
再生装置のデコーダは、同期信号ＳＴＣが示す時刻と復号時刻情報ＤＴＳとが一致したとき、そのＤＴＳが付加されたアクセスユニットをデコードする。その後、デコーダは、同期信号ＳＴＣが示す時刻と再生時刻情報ＰＴＳとが一致したとき、そのＰＴＳが付加されたアクセスユニットを出力する。これにより、データストリーム３０の製作者が意図したタイミングでビデオおよびオーディオが同期して再生される。
【００５２】
次に、ビデオパックのデータ構造を説明する。図４は、ビデオパック３２のデータ構造を示す。ビデオパック３２は、ビデオパケット４１およびパディングパケット４２を含む。なお、パディングパケット４２はデータパックのパック長を調整するために設けられたパケットであるため、パック長を調整する必要がないときは存在しない。このときは、ビデオパック３２にはビデオパケット４１のみが含まれる。
【００５３】
ビデオパケット４１は、先頭から順に、１４バイトのパックヘッダ（Pack_H）、２４バイトのシステムヘッダ（system_H）、パケットヘッダ（Packet_H）４１ａおよびペイロードを有する。パックヘッダには、パックの種類（ここではビデオパケット）を特定する情報が記述される。システムヘッダは、ＶＯＢＵの先頭のパックに必ず付加される。パケットヘッダ４１ａは後に詳述する。ペイロードには、圧縮符号化されたビデオデータが記述される。
【００５４】
一方、パディングパケット４２は、パケットヘッダ（Packet_H）４２ａおよびパディングデータ４２ｂを有する。パケットヘッダ４２ａには、パディングパケットであることを特定する情報の他に、５および６バイト目のフィールド（PES_packet_length）においてパディングパケット４２ａのデータ長（バイト長）が記述される。パディングデータ４２ｂには、予め定められた値が格納される。この値は、例えば、意味を持たない値“０ｘＦＦ”（１６進数）の羅列であり、上述のようにビデオパック３２のパック長を２０４８バイトに調整するために必要なデータ量だけ配置される。
【００５５】
次に、ビデオパケット４１のパケットヘッダ４１ａのデータ構造を説明する。パケットヘッダ４１ａは、パケット長フィールド４３、フラグフィールド４４およびヘッダデータ長フィールド４５を有する。さらに、パケットヘッダ４１ａには、時間フラグフィールド４４ａおよびＰＥＳ拡張フラグフィールド４４ｂの値に応じて、追加のフィールド４６が設けられることがある。
【００５６】
パケット長フィールド４３には、そのフィールド以降からそのビデオパケット４１の最後までのパケット長（バイト長）が記述される。よって、パディングパケット４２が存在するときにはビデオパケット４１のパケット長は短くなり、パケット長フィールド４３に記述されるパケット長の値は小さくなる。続いて、フラグフィールド４４は、時間フラグフィールド４４ａ（PTS_DTS_flag）、ＰＥＳ拡張フラグフィールド（PES_extension_flag）４４ｂ等を含む。時間フラグフィールド４４ａには、後述するプレゼンテーションタイムスタンプ（ＰＴＳ）およびでコーディングタイムスタンプ（ＤＴＳ）の有無を示すフラグが記述される。また、ＰＥＳ拡張フラグフィールド４４ｂには、後述するＰＥＳ拡張フィールドの有無を示すフラグが記述される。ヘッダデータ長フィールド４５には、追加のフィールド４６およびスタッフィングバイトフィールド４９のフィールド長の和が格納される。
【００５７】
次に、追加のフィールド４６を説明する。例えば、時間フラグフィールド４４ａがＰＴＳおよびＤＴＳを有することを示すときは、フィールド４６として各５バイトのＰＴＳ／ＤＴＳフィールド４７が設けられる。ＰＴＳは映像データの表示時間情報であり、ＤＴＳ情報は復号のための時間情報である。時間フラグフィールド４４ａの値に応じて、いずれか一方のフィールドが設けられる。
【００５８】
また、追加のフィールド４６としてＰＥＳ拡張フィールド４８が設けられることもある。ＰＥＳ拡張フィールド４８にはプログラムストリーム３０の復号に必要な情報、例えば復号用のデータバッファの容量等が記述される。
【００５９】
ＰＥＳ拡張フィールド４８は、データストリーム３０では各ＶＯＢＵにおいて最初に現れるビデオパックおよびオーディオパックに設けられる。ＰＥＳ拡張フィールド４８は、例えばＰＥＳ拡張フラグフィールド４４ｂが１のときに存在し、０のときは存在しない。
【００６０】
パケットヘッダ４１ａには、スタッフィングバイトフィールド４９が設けられることがある。スタッフィングバイトフィールド４９には、パック長を調整するためのスタッフィングバイトが格納される。スタッフィングバイトは、意味を持たない“０ｘＦＦ”（１６進数）等のバイトデータである。スタッフィングバイトフィールド４９とパディングパケット４２とは、パック長を調整するための同じ目的で設けられる。よって、ＤＶＤビデオ規格のスタッフィングバイトは７バイト以下という条件、および、スタッフィングバイト４９とパディングパケット４２は同一のパック内に共存できないという条件が定められている。図４に示す例では、ビデオパック３２にはパディングパケット４２が存在しているため、スタッフィングバイトフィールド４９は０バイトであり存在しない。
【００６１】
なお、図４ではビデオパックのデータ構造を示したが、オーディオパックのデータ構造も同様である。「ビデオパケット」を「オーディオパケット」に読み替え、ペイロードに格納される「ビデオデータ」を「オーディオデータ」に読み替えればよい。よって、オーディオパケットのパケットヘッダ４１ａには、追加のフィールド４６にＰＴＳ／ＤＴＳフィールド４７が記述され、その再生（出力）のタイミングを示すＰＴＳまたはＤＴＳが記述される。なお、以下では、オーディオの再生時刻情報（ＰＴＳ）は「ＡＰＴＳ」と記す。そして、ビデオの再生時刻情報（ＰＴＳ）は「ＶＰＴＳ」と記す。
【００６２】
次に、図５を参照しながら、データ処理装置を説明する。図５は、本実施形態によるデータ処理装置５０の機能ブロックの構成を示す。本実施形態では、データ処理装置５０はオーディオフレームの再生時刻を基準としてビデオフレームの出力のタイミングを管理している。したがって、図１に示す再生装置１０のように、ＳＴＣレジスタ４によってビデオおよびオーディオの出力が管理されている処理とは異なっている点に留意されたい。なお、本明細書では、ビデオおよびオーディオのフレームデータを出力した時刻と、そのフレームが再生されて映像として表示され、音声として出力される時刻とは同じであるとする。
【００６３】
データ処理装置５０の動作の概要は以下のとおりである。まず、データ処理装置５０は、データストリーム３０を記録媒体から読み出し、複数のピクチャのデータを含む圧縮符号化されたビデオデータ、各ピクチャのＶＰＴＳ、複数のフレームのデータを含むオーディオデータおよび各フレームのＡＰＴＳを分離する。そして、データ処理装置５０は、複数のピクチャおよび複数のフレームを再生するために、ビデオデータおよびオーディオデータを復号化する。
【００６４】
この処理と併せて、データ処理装置５０は、基準時刻からの経過時間（例えばオーディオの再生開始時刻）をカウントし、各ピクチャの出力時には各ピクチャのＶＰＴＳと経過時間との差分値を計算し、各オーディオフレームの出力時には各オーディオフレームのＡＰＴＳと経過時間との差分値を計算する。そして、ビデオおよびオーディオの各差分値の大きさに応じてビデオデータの再生出力を制御する。例えば、ビデオの差分値がオーディオの差分値よりも所定値以上大きくなったときは、ビデオの一枚のピクチャの出力をスキップする。なお、ピクチャは、フレームおよびフィールドの両方を表す概念である。
【００６５】
以下、データ処理装置５０の各構成要素を説明し、その後、データ処理装置５０の動作を説明する。
【００６６】
データ処理装置５０は、光ピックアップ５１と、再生処理部５２と、ＡＶパーサ５３と、基準カウンタレジスタ５４と、ＡＶ同期制御部５５と、ＶＰＴＳレジスタ５６と、ＶＰＴＳ差分レジスタ５７と、ＡＰＴＳレジスタ５８と、ＡＰＴＳ差分レジスタ５９と、ビデオデコーダ６０と、オーディオデコーダ６１とを有する。
【００６７】
光ピックアップ５１は、記録媒体からデータストリーム３０を読み出す。記録媒体は、例えばＤＶＤ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）等の光ディスクである。再生処理部５２は、アナログ信号として得られたデータストリーム３０をデジタル化して出力する。
【００６８】
ＡＶパーサ５３は、データストリーム３０をビデオストリームとオーディオストリームに分離する。また、ＡＶパーサ５３は、システムストリームからＳＣＲを抽出し、さらに、データストリーム３０のビデオパック３２、３５等に含まれているビデオ再生時刻情報ＶＰＴＳ、および、オーディオパック３３、３６等に含まれているオーディオ再生時刻情報ＡＰＴＳを抽出する。
【００６９】
ビデオデコーダ６０は、ビデオストリームを復号化してビデオデータを生成する。具体的には、ビデオデコーダ６０は、時刻情報ＤＴＳによって示される値と、後述の基準カウンタレジスタ５４によって示される基準カウンタ値とが一致しまたは所定の差が生じたときに、そのＤＴＳが付加されたピクチャデータを復号化する。そして、ＶＰＴＳ値と基準カウンタ値とが一致しまたは所定の差が生じたときに、そのＰＴＳが付加されたピクチャデータを出力する。また、ビデオデコーダ６０は、フレームの出力をスキップする指示を受け取ると、その次のフレームの出力をスキップして後続のフレームから再び出力を開始する。
【００７０】
オーディオデコーダ６１は、オーディオストリームをデコードしてオーディオデータを生成する。オーディオデコーダ６１は、オーディオフレームデータを復号化し、オーディオデータを出力する。
【００７１】
基準カウンタレジスタ５４は、オーディオデータの出力タイミングを基準として、換言すれば、再生の基準時間と同じ早さで経過時間をカウントする。経過時間は、例えば９０ｋＨｚの精度で表されるとする。この精度により、ビデオフレームやオーディオフレームより充分に短い時間間隔で基準時間を更新できる。
【００７２】
ＶＰＴＳレジスタ５６は、ビデオの再生時間に対応するＶＰＴＳを保持する。ＶＰＴＳ差分レジスタ５７は、ＶＰＴＳレジスタ５６が保持するＶＰＴＳ値と基準カウンタレジスタ５４の値の差分値（ＶＰＴＳ差分値）を保持する。ＡＰＴＳレジスタ５８は、オーディオの再生時間に対応するＡＰＴＳを保持する。ＡＰＴＳ差分レジスタ５９は、ＡＰＴＳレジスタ５８と基準カウンタレジスタ５４の差分値（ＡＰＴＳ差分値）を保持する。上述したＶＰＴＳレジスタ５６、ＶＰＴＳ差分レジスタ５７、ＡＰＴＳレジスタ５８およびＡＰＴＳ差分レジスタ５９の各レジスタは、ある値を受け取ると、次の値が入力されるまでその値を保持している。
【００７３】
ＡＶ同期制御部５５は、ＶＰＴＳ差分レジスタ５７の値とＡＰＴＳ差分レジスタ５８の値とを比較して、ビデオデコーダ６０を制御してビデオデータの再生出力を調整する。これにより、オーディオに対してビデオを同期させている。
【００７４】
ここで、ビデオデコーダ６０の動作およびオーディオデコーダ６１の動作を具体的に説明する。図６は、ビデオデコーダの処理の手順を示す。ビデオデコーダ６０は、ステップＳ６１において出力すべきビデオフレームを特定する指示をＡＶ同期制御部５５から受け取ると、ステップＳ６２においてそのフレームを復号化して出力する。次に、ステップＳ６３において、ビデオデコーダ６０は出力したビデオフレームに対応するＶＰＴＳ値をＶＰＴＳレジスタ５６に書き込む。そして、ステップＳ６４において、ビデオデコーダ６０はＶＰＴＳレジスタ５６に保持された値から、基準カウンタレジスタ５４がその時点で有するカウンタ値を減算し、得られたＶＰＴＳ差分値をＶＰＴＳ差分レジスタ５７に書き込む。ビデオデコーダ６０のこのような動作により、ＶＰＴＳレジスタ５６およびＶＰＴＳ差分レジスタ５７に保持されている値がそれぞれ更新される。
【００７５】
なお、ＶＰＴＳレジスタ５６およびＶＰＴＳ差分レジスタ５７への書き込みをビデオ出力の前に行ってもよい。また、出力時に、１フレーム先のＶＰＴＳ値を用いてＶＰＴＳレジスタ５６およびＶＰＴＳ差分レジスタ５７の値を更新してもよい。
【００７６】
次に、図７は、オーディオデコーダ６１の処理の手順を示す。ステップＳ７１において、オーディオデコーダ６１は、オーディオストリームを復号化して出力する。次に、ステップＳ７２において、オーディオデコーダ６１は、オーディオフレームに対応するＡＰＴＳの値をＡＰＴＳレジスタに書き込む。そして、ステップＳ７３において、オーディオデコーダ６１はＡＰＴＳレジスタ５８に保持された値から、基準カウンタレジスタ５４がその時点で有するカウンタ値を減算し、得られたＡＰＴＳ差分値をＡＰＴＳ差分レジスタ５９に書き込む。
【００７７】
なお、ＡＰＴＳレジスタ５８およびＡＰＴＳ差分レジスタ５９への書き込みを、オーディオ出力の前に行ってもよい。また、出力時に、１オーディオフレーム（３２ミリ秒）先のＡＰＴＳ値を用いて、ＡＰＴＳレジスタ５８およびＡＰＴＳ差分レジスタ５９の値を更新してもよい。
【００７８】
次に、データ処理装置５０の処理を説明する。図８は、データ処理装置５０の処理の手順を示す。まずステップＳ８１において、光ピックアップ５１が光ディスクからデータストリームを読み出し、再生処理部５２がデジタル化処理を行う。そして、ステップＳ８２において、ＡＶパーサ５３は、読み出したデータストリーム３０からビデオストリームとＶＰＴＳおよびオーディオストリームとＡＰＴＳを分離する。
【００７９】
ステップＳ８３において、ビデオデコーダ６０は、ビデオフレームを出力するとともに、そのＶＰＴＳ値をＶＰＴＳレジスタ５６に書き込み、そのＶＰＴＳ差分値をＶＰＴＳ差分レジスタ５７に書き込む。次に、ステップＳ８４において、オーディオデコーダ６１はオーディオフレームを出力するとともに、そのＡＰＴＳ値をＡＰＴＳレジスタ５８に書き込み、そのＡＰＴＳ差分値をＡＰＴＳ差分レジスタ５９に書き込む。
【００８０】
続いて、ステップＳ８５において、ＡＶ同期制御部５５はＶＰＴＳ差分レジスタ５７に保持されているＶＰＴＳ差分値と、ＡＰＴＳ差分レジスタ５９に保持されているＡＰＴＳ差分値とを比較する。
【００８１】
ステップＳ８５の比較の意味を図９を参照しながら説明する。図９は、ＶＰＴＳレジスタ５６、ＶＰＴＳ差分レジスタ５７、ＡＰＴＳレジスタ５８、ＡＰＴＳ差分レジスタ５９においてそれぞれ保持された値の変遷を示すグラフである。このグラフは、オーディオに対してビデオが２０ミリ秒進んだ状態で同期して出力を継続している場合の例である。
【００８２】
本実施形態では、ＡＰＴＳ値は３２ミリ秒ごとに離散的に増加し、ＶＰＴＳ値は１６．７ミリ秒ごとに離散的に増加する。図９では、ＡＰＴＳおよびＡＰＴＳ差分値が更新されるタイミングを“●”によって示し、ＶＰＴＳおよびＶＰＴＳ差分値が更新されるタイミングを“▲”によって示している。これらのタイミングにおいて、オーディオフレームおよびビデオフレームが出力されている。なお、基準カウンタは、説明の便宜上、ＡＰＴＳの再生開始時において−５０ミリ秒からカウントを開始しているが、再生開始時における開始カウント値は任意である。
【００８３】
先に述べたように、ＡＰＴＳレジスタ５８およびＶＰＴＳレジスタ５６は次の値が入力されるまでは前の値を保持しているため、ＡＰＴＳレジスタ５８およびＶＰＴＳレジスタ５６が保持する値のグラフは階段状（ステップ状）になる。よって、ＡＰＴＳ値とＶＰＴＳ値との差は、その差を計算するタイミングによって大きく変化してしまう。よって、この差に基づいてオーディオとビデオとの同期を確認することは妥当ではない。
【００８４】
オーディオフレームおよびビデオフレームは、ＡＰＴＳ値およびＶＰＴＳ値が基準カウンタ値と一致しまたは所定の差が生じたときに出力されている。図９に示す例では、−５０ミリ秒の差が生じたときに出力されている。よって、オーディオフレームの再生時刻に基づいて基準カウンタ値を生成している本実施形態の条件の下では、ＡＰＴＳ値と基準カウンタ値との差分値（ＡＰＴＳ差分値）を計算すると常に一定になる。これはＡＰＴＳ差分のグラフに示すとおりである。
【００８５】
一方、ＶＰＴＳ値と基準カウンタ値との差分値（ＶＰＴＳ差分値）は、ビデオフレームの出力が遅すぎず、かつ、早すぎない場合には、一定になる。例えば、オーディオに対して−５０ミリ秒〜＋３０ミリ秒の範囲でビデオが出力されると、概ね一定になる。これはＶＰＴＳ差分のグラフに示すとおりである。このときは、視聴者はビデオがオーディオに同期していると感じる。ただし、その範囲を超えてビデオフレームが遅れて出力されるとＶＰＴＳ差分値は小さくなり、進むと大きくなる。
【００８６】
よって、ＡＰＴＳ差分値とＶＰＴＳ差分値とを比較すれば、その比較を行うタイミングに依存することなく、正確にオーディオフレームの出力に対するビデオフレームの出力の遅れを特定できる。
【００８７】
再び図８を参照する。ステップＳ８５における比較の結果、ＶＰＴＳ差分値がＡＰＴＳ差分値よりも所定時間α（例えばα＝３０ミリ秒）以上大きければステップＳ８６に進み、そうでなければステップＳ８７に進む。
【００８８】
ステップＳ８６では、ビデオフレームが早く出力されているため、ＡＶ同期制御部５５からの指示に基づいて、ビデオデコーダ６０は現在のビデオフレームを再度出力する。これにより、ビデオフレームの出力がポーズされてオーディオフレームの出力がビデオフレームの出力に追いつくことになり、オーディオとビデオの同期が実現される。その後、処理はステップＳ８９に進む。
【００８９】
ステップＳ８７では、ＶＰＴＳ差分値がＡＰＴＳ差分値−所定時間β（例えばβ＝５０ミリ秒）よりも小さいか否かが判断される。小さい場合にはステップＳ８８に進み、小さくない場合にはＶＰＴＳ差分値がＡＰＴＳ差分値と概ね等しいことを意味する。この後処理はステップＳ８９に進む。
【００９０】
ステップＳ８８では、ＡＶ同期制御部５５からの指示に基づいて、ビデオデコーダ６０は１ビデオフレームをスキップし後続のビデオフレームを出力する。これにより、ビデオフレームの出力がオーディオフレームの出力に追いつくことになりオーディオとビデオの同期が実現される。
【００９１】
ステップＳ８９では、ＡＶ同期制御部５５はビデオフレームが残っているか否かを判断する。残っている場合にはステップＳ８３以降の処理を繰り返し、残っていない場合には処理を終了する。
【００９２】
次に、図１０を参照しながら、オーディオフレームの出力がビデオフレームの出力よりも先に終了した場合の処理を説明する。
【００９３】
図１０は、オーディオフレームの出力がビデオフレームの出力よりも先に終了したときの、各種レジスタ５６、５７、５８および５９においてそれぞれ保持された値の変遷を示すグラフである。時刻ｔ＝ｔ１においてオーディオフレームの出力が終了し、出力が途切れているとする。時刻ｔ＝ｔ１以降はＡＰＴＳの更新はないため、ＡＰＴＳレジスタの値が増加しなくなることに留意されたい。仮に、ＡＰＴＳレジスタ５８の値を基準にビデオを同期させるとすると、点線で示したＶＰＴＳ（１）のようにビデオの出力も進まなくなる。
【００９４】
しかし、ＡＰＴＳ差分レジスタ５７およびＶＰＴＳ差分レジスタ５９を利用すると、オーディオデータが途切れてもＡＰＴＳ差分レジスタの値は同じ値が継続して出力されるため、オーディオの出力が継続している場合と同じ状態を維持できる。よって、先に説明したと同じ処理によってビデオフレームの出力を確実に継続することができる。このときのＶＰＴＳレジスタ５６の値をＶＰＴＳ（２）として示す。
【００９５】
次に、図１１を参照しながら、オーディオおよびビデオの再生が視聴者からの指示等に基づいてポーズされた場合の処理を説明する。図１１は、再生をポーズさせたときの、各種レジスタ５６、５７、５８および５９においてそれぞれ保持された値の変遷を示すグラフである。時刻ｔ＝ｔ３において再生がポーズされたとする。時刻ｔ＝ｔ３以降のポーズ期間中は、ビデオは同じフレームの出力を繰り返す。そのため、ＶＰＴＳレジスタ５６には、ポーズ直前の時刻におけるＶＰＴＳ値と同じ値が入力され続ける。また、ＶＰＴＳ値が一定で、かつ基準カウンタ値は増加するため、ＶＰＴＳ差分レジスタ５７に入力されるＶＰＴＳ差分値は徐々に階段状に減少する。一方、オーディオは出力を停止する。よって、ＡＰＴＳ値およびＡＰＴＳ差分値は、ポーズされた時刻ｔ＝ｔ３の直前の時刻ｔ＝ｔ２において更新されたＡＰＴＳ値およびＡＰＴＳ差分値が保持される。ＡＰＴＳ差分値とＶＰＴＳ差分値とを比較すると、ポーズ期間中はその差は大きくなり続ける。その結果、正常な表示であるにもかかわらず、ＡＶ同期制御部５５はビデオフレームの再生が遅れていると誤って認識してしまい、誤動作を招く。
【００９６】
そこで、この場合には、ＡＶ同期制御部５５は、ＡＰＴＳレジスタ５８内のＡＰＴＳ値と、ＶＰＴＳレジスタ５６内のＶＰＴＳ値とを利用してビデオフレームの出力を継続すればよい。すなわち、ＡＰＴＳレジスタ５８内のＡＰＴＳ値、および、ＶＰＴＳレジスタ５６内のＶＰＴＳ値は全く同じ値をとりつづけるため、ポーズ期間中はその差も一定である。よって、この差に基づけば、ＡＶ同期制御部５５はビデオフレームの再生タイミングがずれていると判断することもない。ビデオフレームの出力タイミングは、ＮＴＳＣ方式によれば、ポーズされた時刻ｔ＝ｔ３の直前に表示されたフレームを基準として１／２９．９７秒（約１／３０秒）ごとである。なお、インターレースで表示される場合には、出力タイミングは、直前に表示された２枚のフィールドを５９．９４秒（約１／６０秒）ごとである。なお、これらのタイミングの決定にあたっては、ＡＰＴＳレジスタ５８内のＡＰＴＳ値は特に利用されない。
【００９７】
その後、ポーズが解除されたときは、データ処理装置５０は、図１２に示すように処理して、オーディオとビデオの同期を取ることができる。図１２は、再生ポーズが解除されたときのデータ処理装置５０の処理の手順を示す。まず、ステップＳ１２０において、ＡＶ同期制御部５５は視聴者等からポーズ解除の指示を受け取る。そして、ステップＳ１２１において、ＶＰＴＳ値がＡＰＴＳ値＋所定時間γ（例えばγ＝３０ミリ秒）よりも大きければステップＳ１２２に進み、そうでなければステップＳ１２３に進む。ステップＳ１２２において、ＡＶ同期制御部５５はまずオーディオ再生のポーズを解除し、その後、ビデオ再生のポーズを解除する。オーディオ再生のポーズを先に解除することにより、オーディオフレームの出力がビデオフレームの出力に追いつくことになり、オーディオとビデオの同期が実現される。その後、図１２の処理は終了し、図８に示す処理へと移る。
【００９８】
ステップＳ１２３において、ＶＰＴＳ値がＡＰＴＳ値−所定時間δ（例えばδ＝５０ミリ秒）よりも小さいか否かが判断される。小さい場合にはステップＳ１２４に進み、小さくない場合にはステップＳ１２５に進む。
【００９９】
ステップＳ１２４では、ＡＶ同期制御部５５はビデオ再生のポーズを解除し、その後、オーディオ再生のポーズを解除する。これにより、ビデオフレームの出力がオーディオフレームの出力に追いつくことになりオーディオとビデオの同期が実現される。その後、図１２の処理は終了し、図８に示す処理へと移る。
【０１００】
ステップＳ１２５では、ビデオ再生のポーズとオーディオ再生のポーズとを同時に解除する。そして図１２の処理は終了し、図８に示す処理へと移る。なお、ＶＰＴＳ差分レジスタと基準カウンタレジスタを加算した値と、ＡＰＴＳレジスタとを比較してオーディオとビデオの同期を取ることも可能である。
【０１０１】
なお、ＶＰＴＳ差分レジスタ５７と基準カウンタレジスタ５４のみでは、現在出力中のフレームを特定することが困難であるが、ＶＰＴＳレジスタ５６を備えることにより、出力されているビデオフレームを容易に特定することができる。
【０１０２】
以上、本発明の実施形態によるデータ処理装置５０を説明した。データ処理装置５０は、図５に示す構成の他に、例えば図１３に示す構成をとることもできる。図１３は、データ処理装置の他の構成例を示す。ＡＶ同期制御部５５の機能は、再生処理プログラム１３０に基づいて動作する汎用ＣＰＵ１３１によって実現され、光ピックアップ５１、再生処理部５２およびＡＶ同期制御部５５を除くデータ処理装置の構成要素が、１つのデコーダチップ１３１によって実現されている。なお、光ピックアップ５１および再生処理部５２の図示は省略している。
【０１０３】
再生処理プログラム１３０は、図８および図１２に示す手順に従ってデータ処理装置を動作させるように記述され、汎用ＣＰＵ１３１によって実行される。ＡＶ同期処理部５５の機能がＣＰＵがソフトウェアを実行することによって実現される場合には、ＡＶ同期制御部５５の処理に対するリアルタイム要求を低くすることができるという利点が存在する。すなわち、汎用ＣＰＵ１３１は上述した処理に加えて、当然に他の処理、例えば光ピックアップ５１の移動処理、再生処理部５２における２値化処理等を実行する必要がある。図８および図１２における処理は、ＶＰＴＳ差分値とＡＰＴＳ差分値との比較演算等のタイミングの制約はなく、いつ行っても正確な同期を実現できるため、汎用ＣＰＵ１３１の動作に関するスケジューリングに対する制限は少なくなる。この利点は、従来の再生装置２０等において、同期の精度を向上するために汎用ＣＰＵ１３１に対してＰＴＳ更新を厳密なタイミングで実行させなければならない場合と比較すると、顕著である。
【産業上の利用可能性】
【０１０４】
本発明によれば、ＡＰＴＳ差分レジスタとＶＰＴＳ差分レジスタを利用してオーディオとビデオの出力の進捗状態を比較することにより、確実にオーディオとビデオの同期を取ることができる。さらに、オーディオデータがビデオデータよりも先に途切れても、オーディオを基準にビデオの出力を継続させることが可能になる。さらに、ＡＰＴＳレジスタを備えることにより、ポーズ中にもオーディオとビデオの出力の進捗具合を比較するとともに、ポーズの解除後にもオーディオとビデオの同期をとることができる。これにより、視聴者にとって違和感のない再生を実現できる装置を提供できる。
【図面の簡単な説明】
【０１０５】
【図１】システムストリームを再生可能な従来の再生装置１０の機能ブロックの構成を示す図である。
【図２】従来の再生装置２０の機能ブロックの構成を示す。
【図３】ＤＶＤビデオレコーディング規格に準拠したＭＰＥＧ２プログラムストリーム３０のデータ構造を示す図である。
【図４】ビデオパック３２のデータ構造を示す図である。
【図５】本実施形態によるデータ処理装置５０の機能ブロックの構成を示す。
【図６】ビデオデコーダの処理の手順を示すフローチャートである。
【図７】オーディオデコーダ６１の処理の手順を示すフローチャートである。
【図８】データ処理装置５０の処理の手順を示すフローチャートである。
【図９】ＶＰＴＳレジスタ５６、ＶＰＴＳ差分レジスタ５７、ＡＰＴＳレジスタ５８、ＡＰＴＳ差分レジスタ５９においてそれぞれ保持された値の変遷を示すグラフである。
【図１０】オーディオフレームの出力がビデオフレームの出力よりも先に終了したときの、各種レジスタ５６、５７、５８および５９においてそれぞれ保持された値の変遷を示すグラフである。
【図１１】再生をポーズさせたときの、各種レジスタ５６、５７、５８および５９においてそれぞれ保持された値の変遷を示すグラフである。
【図１２】再生ポーズ時のデータ処理装置５０の処理の手順を示すフローチャートである。
【図１３】データ処理装置の他の構成例を示すブロック図である。
【手続補正書】
【提出日】平成17年9月5日(2005.9.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データストリームを受け取って、前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するパーサと、
前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力する出力部と、
所定の基準時刻からの経過時間をカウントする基準レジスタと、
前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持する第１差分レジスタと、
前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納する第２差分レジスタと、
前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御する制御部と
を備えたデータ処理装置。
【請求項２】
前記基準レジスタは、前記オーディオデータの出力開始時刻を前記所定の基準時刻として経過時間をカウントする、請求項１に記載のデータ処理装置。
【請求項３】
前記制御部は、前記第１差分値が、前記第２差分値と第１所定値との和よりも大きい場合には、前記出力部に対してその時点で出力されているピクチャのビデオデータを再度出力させる、請求項１に記載のデータ処理装置。
【請求項４】
前記制御部は、前記第１差分値が、前記第２差分値と第２所定値との差よりも小さい場合には、前記出力部に対してピクチャのビデオデータの出力をスキップさせる、請求項１に記載のデータ処理装置。
【請求項５】
前記制御部は、再生のポーズの指示を受け取ると、前記第１時刻情報および前記第２時刻情報に基づいて前記ビデオデータの出力を制御する、請求項１に記載のデータ処理装置。
【請求項６】
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記第１時刻情報が前記第２時刻情報と第３所定値との和よりも大きい場合には、前記出力部に対して前記オーディオデータを前記ビデオデータよりも先に出力させる、請求項５に記載のデータ処理装置。
【請求項７】
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記第１時刻情報が前記第２時刻情報と第４所定値との差よりも小さい場合には、前記出力部に対して前記ビデオデータをオーディオデータよりも先に出力させる、請求項５に記載のデータ処理装置。
【請求項８】
前記制御部は、前記再生のポーズを解除する指示を受け取ると、前記出力部に対して前記ビデオデータとオーディオデータとを同時に出力させる、請求項５に記載のデータ処理装置。
【請求項９】
データストリームを受け取るステップと、
前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するステップと、
前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力するステップと、
所定の基準時刻からの経過時間をカウントするステップと、
前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持するステップと、
前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納するステップと、
前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御するステップと
を包含するデータ処理方法。
【請求項１０】
前記経過時間をカウントするステップは、前記オーディオデータの出力開始時刻を前記所定の基準時刻として経過時間をカウントする、請求項９に記載のデータ処理方法。
【請求項１１】
前記第１差分値が、前記第２差分値と第１所定値との和よりも大きい場合には、前記出力するステップは、その時点で出力されているピクチャのビデオデータを再度出力する、請求項９に記載のデータ処理方法。
【請求項１２】
前記第１差分値が、前記第２差分値と第２所定値との差よりも小さい場合には、前記出力するステップは、ピクチャのビデオデータの出力をスキップする、請求項９に記載のデータ処理方法。
【請求項１３】
再生のポーズの指示を受け取るステップをさらに包含し、
前記出力するステップは、前記指示に応答して、前記第１時刻情報および前記第２時刻情報に基づいて前記ビデオデータの出力を制御する、請求項９に記載のデータ処理方法。
【請求項１４】
再生のポーズを解除する指示を受け取るステップをさらに包含し、
前記出力するステップは、前記指示に応答して、前記第１時刻情報が前記第２時刻情報と第３所定値との和よりも大きい場合には、前記オーディオデータを前記ビデオデータよりも先に出力する、請求項１３に記載のデータ処理方法。
【請求項１５】
再生のポーズを解除する指示を受け取るステップをさらに包含し、
前記出力するステップは、前記指示に応答して、前記第１時刻情報が前記第２時刻情報と第４所定値との差よりも小さい場合には、前記ビデオデータをオーディオデータよりも先に出力する、請求項１３に記載のデータ処理方法。
【請求項１６】
再生のポーズを解除する指示を受け取るステップをさらに包含し、
前記出力するステップは、前記指示に応答して、前記ビデオデータとオーディオデータとを同時に出力する、請求項１３に記載のデータ処理方法。
【請求項１７】
データ処理装置において実行されるコンピュータプログラムであって、
前記データ処理装置のコンピュータに、
データストリームを受け取るステップと、
前記データストリームから複数のピクチャのデータを含むビデオデータ、各ピクチャの再生時刻を規定する第１時刻情報、複数のオーディオフレームのデータを含むオーディオデータおよび各オーディオフレームの再生時刻を規定する第２時刻情報を分離するステップと、
前記複数のピクチャおよび前記複数のオーディオフレームを再生するために、前記ビデオデータおよび前記オーディオデータを出力するステップと、
所定の基準時刻からの経過時間をカウントするステップと、
前記各ピクチャの出力時に、前記各ピクチャの第１時刻情報と前記経過時間との差分値を計算し、第１差分値として保持するステップと、
前記各オーディオフレームの出力時に、前記各オーディオフレームの第２時刻情報と前記経過時間との差分値を計算し、第２差分値として格納するステップと、
前記第２差分値に対する前記第１差分値の大きさに応じて、前記ビデオデータの出力を制御するステップと
を実行させるコンピュータプログラム。
【請求項１８】
前記経過時間をカウントするステップは、前記オーディオデータの出力開始時刻を前記所定の基準時刻として経過時間をカウントする、請求項１７に記載のコンピュータプログラム。
【請求項１９】
前記第１差分値が、前記第２差分値と第１所定値との和よりも大きい場合には、前記出力するステップは、その時点で出力されているピクチャのビデオデータを再度出力する、請求項１７に記載のコンピュータプログラム。
【請求項２０】
前記第１差分値が、前記第２差分値と第２所定値との差よりも小さい場合には、前記出力するステップは、ピクチャのビデオデータの出力をスキップする、請求項１７に記載のコンピュータプログラム。
【国際調査報告】
2004084553.tif 000016
2004084553.tif 000017
2004084553.tif 000018
2004084553.tif 000019