JP4983923B2 - デコーダ装置、およびデコード方法 - Google Patents

デコーダ装置、およびデコード方法 Download PDF

Info

Publication number
JP4983923B2
JP4983923B2 JP2009529888A JP2009529888A JP4983923B2 JP 4983923 B2 JP4983923 B2 JP 4983923B2 JP 2009529888 A JP2009529888 A JP 2009529888A JP 2009529888 A JP2009529888 A JP 2009529888A JP 4983923 B2 JP4983923 B2 JP 4983923B2
Authority
JP
Japan
Prior art keywords
audio
video
output
time information
pts
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.)
Active
Application number
JP2009529888A
Other languages
English (en)
Other versions
JPWO2009028038A1 (ja
Inventor
真 藤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2009028038A1 publication Critical patent/JPWO2009028038A1/ja
Application granted granted Critical
Publication of JP4983923B2 publication Critical patent/JP4983923B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device

Description

本発明はストリームデータのデコーダ装置およびデコード方法に関し、特にビデオストリームとオーディオストリームとの同期出力を行うデコーダ装置、およびデコード方法に関する。
近年、ビデオ・オーディオのデジタル信号処理技術がめざましく進歩している。そして、技術の進歩に伴い、デジタル放送、放送と通信の融合の実現に向けたシステム開発が世界各国で進められている。
放送と通信の融合が進んでいる技術分野として、データストリーミングによる情報配信サービスがある。このようなストリーム配信方式によるサービスは、特に増加傾向にある。ストリーム配信方式においては、リアルタイムで受信データの再生処理を行うことが一般的である。このような方式を利用したシステムとして、VOD(ビデオオンデマンド)やライブ映像のストリーミング配信、あるいはテレビ会議システムなどがあげられる。
また、インターネットに代表される広域かつ多種多様なネットワークにおける画像配信サービスも急速に発展している。これらの画像配信は多くの場合、MPEG(Moving Picture Experts Group)やH.264という圧縮技術を利用したストリーム配信である。
リアルタイムシステムにおけるビデオ・オーディオ出力は、デコーダ装置側でシステムストリームからシステム基準時刻(PCR:Program Clock ReferenceやSCR:System Clock Reference)を抽出し、その抽出した値でSTC(System Time Clock)再生を行い、ビデオ・オーディオストリームが持つPTS(Presentation Time Stamp)と比較し再生する。これにより、ビデオとオーディオの同期の取れたリアルタイム出力をすることが可能である。
また、オーディオデータと動画データとにタイムコードを付加し、受信装置において、タイムコードを用いて音声出力を画像出力に同期させる技術がある(例えば、特許文献1参照)。
なお、ビデオ出力は、垂直同期信号(VSYNC)に合わせる必要がある。一方、オーディオ出力は、STCに合わせて直ぐに再生できる。すると、ビデオ出力は、PTSで示される時刻になった後、次のVSYNCが出力されるまで待ち時間が発生する。その結果、ビデオ出力がオーディオ出力よりも遅延する。このとき、ビデオ・オーディオ出力を同時に出力開始させるには、ビデオ出力タイミング(VSYNCの発信時刻)とオーディオ出力タイミングの違いを吸収するための何らかの機能の追加が必要となる。例えば、ビデオストリームから抽出したPTSをホールドし、VSYNCで、ホールドした信号を受信側システムクロックのカウンタにロードさせる。これにより、ビデオストリームから抽出したPTSをホールドしている間、オーディオ出力も待たされる。その結果、ビデオ出力とオーディオ出力を正確に同期させることができる(例えば、特許文献2参照)。
特開平9−65303号公報 特開2002−176643号公報
しかし、リアルタイム伝送では、PCRまたはSCRを元にSTCの値を決定し利用することが前提である。そのため、デコーダ装置におけるSTCに任意の値を設定することはできない。すなわち、リアルタイム伝送では、特許文献2に示されているような、映像・音声同期出力の目的で、ホールドしておいたPTSの値を、任意のタイミングでSTCにロードすることはできない。従って、従来の技術では、リアルタイム伝送において、VSYNCが出力されるまで待ち時間による出力誤差を吸収することができなかった。
さらに、従来のビデオとオーディオとの同期手法は、出力先頭フレームのビデオとオーディオとのPTSが一致する場合しか想定されておらず、PTSが不一致の場合には適用できなかった。すなわち、ビデオデータとオーディオデータのエンコーダへの入力タイミングが一致しない(入力開始時のビデオとオーディオに付加されるPTS値が異なる)場合もある。その場合、従来技術では、各々のタイミングでデータストリームがデコーダに入力される。画像出力部および音声出力部では、ビデオストリームとオーディオストリームそれぞれの先頭のPTSとSTCを比較して、画像/音声出力開始タイミングを判断する。そのため、ビデオストリームとオーディオストリームとの先頭のPTS値が異なる場合、受信側において、ビデオ・オーディオの出力開始タイミングを一致させることができない。
さらに、デコーダ側で受信するストリームに関しては、ビデオストリームのみ、あるいはオーディオストリームのみということも考えられる。この場合は、そういったケースを判別する手段が必要になる。
本発明はこのような点に鑑みてなされたものであり、ビデオストリームとオーディオストリームとを正確に同期して出力することができるデコーダ装置、およびデコード方法を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すようなデコーダ装置が提供される。時刻情報発生手段1は、時間と共に値が増加する基準時刻情報を生成する。ビデオ復号手段2aは、ビデオフレームごとの画像の出力時刻を示すビデオ出力時刻情報が付与されたビデオデータを符号化したビデオストリーム6aが入力されると、入力されたビデオストリーム6aを復号してビデオデータ6bを生成すると共に、ビデオフレームに付与されたビデオ出力時刻情報を抽出する。オーディオ復号手段3aは、オーディオフレームごとの音声の出力時刻を示すオーディオ出力時刻情報が付与されたオーディオデータを符号化したオーディオストリーム7aが入力されると、入力されたオーディオストリーム7aを復号してオーディオデータ7bを生成する。差分値計算手段4aは、画像の出力タイミングを示す同期信号8の発生時刻とビデオ出力時刻情報との差分値を計算する。オーディオ出力時刻補正手段4bは、差分値計算手段4aで計算された差分値を用いて、オーディオフレームそれぞれに付与されたオーディオ出力時刻情報を補正する。画像出力手段2bは、同期信号8の発生時における基準時刻情報の値と、同期信号8の発生時に表示可能なビデオ出力時刻情報の範囲との関係が予め定義されており、同期信号8が発生するごとに、そのときの基準時刻情報の値に応じて表示可能なビデオ出力時刻情報が付与されたビデオフレームで示される画像を出力する。音声出力手段3bは、基準時刻情報の値と補正後のオーディオ出力時刻情報の値とが一致したときに、一致したオーディオ出力時刻情報が付与されたオーディオフレームで示される音声を出力する。
このようなデコーダ装置によれば、ビデオストリーム6aが入力されると、ビデオ復号手段2aにより、入力されたビデオストリーム6aが復号されビデオデータ6bを生成すると共に、ビデオフレームに付与されたビデオ出力時刻情報が抽出される。また、オーディオストリーム7aが入力されると、オーディオ復号手段3aにより、入力されたオーディオストリーム7aが復号され、オーディオデータ7bが生成される。その後、差分値計算手段4aにより、同期信号8の発生時刻とビデオ出力時刻情報との差分値が計算される。さらに、オーディオ出力時刻補正手段4bにより、差分値を用いてオーディオフレームそれぞれに付与されたオーディオ出力時刻情報が補正される。そして、画像出力手段2bにより、同期信号8が発生するごとに、そのときの基準時刻情報の値に応じて表示可能なビデオ出力時刻情報が付与されたビデオフレームで示される画像が出力される。また、音声出力手段3bにより、基準時刻情報の値と補正後のビデオ出力時刻情報の値とが一致したときに、一致したオーディオ出力時刻情報が付与されたオーディオフレームで示される音声が出力される。
本発明では、同期信号の発生時刻とビデオ出力時刻情報との差分値によってオーディオ出力時刻情報を補正するようにしたため、画像出力と音声出力とを正確に同期させることができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
発明の概要を示す図である。 本実施の形態のシステム構成例を示す図である。 エンコーダ装置の内部構造を示すブロック図である。 デコーダ装置の内部構造を示すブロック図である。 ビデオ出力における表示フレームの有効範囲を示す図である。 PTS制御装置の処理手順を示すフローチャートである。 エンコーダ装置によるエンコード処理を示すタイミングチャートである。 デコーダ装置によるデコード処理を示すタイミングチャートである。 オーディオキャプチャがビデオキャプチャより先に開始された場合の出力時期を示すタイミングチャートである。 ビデオストリームのみが入力されたときの出力例を示す図である。 オーディオストリームのみが入力されたときの出力例を示す図である。 PTS制御部の内部構造を示すブロック図である。 マイクロコンピュータで実現したPTS制御部の例を示す図である。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、発明の概要を示す図である。本発明に係るデコーダ装置は、時刻情報発生手段1、ビデオ復号手段2a、オーディオ復号手段3a、差分値計算手段4a、オーディオ出力時刻補正手段4b、タイムアウト判定手段5a、出力開始時刻決定手段5b、画像出力手段2b、および音声出力手段3bを有している。
時刻情報発生手段1は、時間と共に値が増加する基準時刻情報を生成する。例えば、時刻情報発生手段1は、ビデオストリーム6aやオーディオストリーム7aを符号化したエンコード装置が、ビデオストリーム6aやオーディオストリーム7aと共に送出した時刻基準参照値に基づいて基準時刻情報(例えば、STC)を生成する。
ビデオ復号手段2aには、ビデオストリーム6aが入力される。ビデオストリーム6aは、ビデオデータを符号化したものである。ビデオストリーム6aには、ビデオフレームごとの画像の出力時刻を示すビデオ出力時刻情報(例えば、ビデオPTS)が付与されている。ビデオ復号手段2aは、ビデオストリーム6aが入力されると、入力されたビデオストリーム6aを復号してビデオデータ6bを生成する。また、ビデオ復号手段2aは、ビデオフレームに付与されたビデオ出力時刻情報を抽出する。例えば、ビデオストリーム6aの先頭のビデオフレームに付与されたビデオ出力時刻情報を、ビデオ先頭時刻情報6cとして抽出する。
オーディオ復号手段3aには、オーディオストリーム7aが入力される。オーディオストリーム7aは、オーディオデータを符号化したものである。オーディオストリーム7aには、オーディオフレームごとの音声の出力時刻を示すオーディオ出力時刻情報(例えば、オーディオPTS)が付与されている。オーディオ復号手段3aは、オーディオストリーム7aが入力されると、入力されたオーディオストリーム7aを復号してオーディオデータ7bを生成する。また、オーディオ復号手段3aは、先頭のオーディオフレームに付与されたオーディオ出力時刻情報を、オーディオ先頭時刻情報7cとして抽出する。
差分値計算手段4aは、画像の出力タイミングを示す同期信号8(例えば、画像出力時の垂直同期信号)の発生時刻とビデオ出力時刻情報との差分値を計算する。
オーディオ出力時刻補正手段4bは、差分値計算手段4aで計算された差分値を用いて、オーディオフレームそれぞれに付与されたオーディオ出力時刻情報を補正する。
タイムアウト判定手段5aは、ビデオ先頭時刻情報6cとオーディオ先頭時刻情報7cとのいずれか一方の情報が抽出されてからの経過時間を計測する。そして、タイムアウト判定手段5aは、他方の情報(ビデオ先頭時刻情報6cとオーディオ先頭時刻情報7cとのうちの未抽出の情報)が抽出される前に経過時間が所定の閾値を超えた場合には、タイムアウトと判定する。そして、タイムアウト判定手段5aは、タイムアウトと判定した場合、ビデオ先頭時刻情報6cのみが抽出されていればビデオ単独出力と決定し、オーディオ先頭時刻情報7cのみが抽出されていればオーディオ単独出力と決定する。
出力開始時刻決定手段5bは、ビデオ先頭時刻情報6cとオーディオ先頭時刻情報7cとの値を比較する。比較の結果、ビデオ先頭時刻情報6cの値の方が大きければ、出力開始時刻決定手段5bは、ビデオ先頭時刻情報6cで示される時刻をビデオ出力開始時刻およびオーディオ出力開始時刻と決定する。また、比較の結果、オーディオ先頭時刻情報7cの値の方が大きければ、出力開始時刻決定手段5bは、オーディオ先頭時刻情報7cより大きな値で最小のビデオ出力時刻情報が付与された時刻をビデオ出力開始時刻およびオーディオ出力開始時刻と決定する。
画像出力手段2bは、同期信号8を発生させている。画像出力手段2bは、同期信号8の発生時における基準時刻情報の値と、同期信号8の発生時に表示可能なビデオ出力時刻情報の範囲との関係が予め定義されており、同期信号8が発生するごとに、そのときの基準時刻情報の値に応じて表示可能なビデオ出力時刻情報が付与されたビデオフレームで示される画像(例えば、NTSC(National Television Standards Committee)などの画像信号)を出力する。なお、画像出力手段2bは、出力開始時刻決定手段5bで決定されたビデオ出力開始時刻より小さい値のビデオ出力時刻情報が付与されたビデオフレームから生成した画像については、無効なデータに置き換える。また、画像出力手段2bは、タイムアウト判定手段5aにおいてビデオ単独出力と決定されると、出力開始時刻決定手段5bによるビデオ出力開始時刻の決定を待たずに、ビデオフレームに基づく画像出力を開始する。
音声出力手段3bは、基準時刻情報の値と補正後のオーディオ出力時刻情報の値とが一致したときに、一致したオーディオ出力時刻情報が付与されたオーディオフレームで示される音声(例えば、アナログの音声信号)を出力する。また、音声出力手段3bは、基準時刻情報で示される時刻がオーディオ出力開始時刻に達する以前は、生成した音声を無効なデータに置き換える。また、音声出力手段3bは、タイムアウト判定手段5aにおいてオーディオ単独出力と決定されると、出力開始時刻決定手段5bによるオーディオ出力開始時刻の決定を待たずに、オーディオフレームに基づく音声出力を開始する。
このようなデコーダ装置によれば、ビデオストリーム6aが入力されると、ビデオ復号手段2aにより、入力されたビデオストリーム6aが復号されビデオデータ6bを生成すると共に、ビデオフレームに付与されたビデオ出力時刻情報が抽出される(図1の例では、代表としてビデオ先頭時刻情報6cが抽出されている)。また、オーディオストリーム7aが入力されると、オーディオ復号手段3aにより、入力されたオーディオストリーム7aが復号され、オーディオデータ7bが生成されると共に、オーディオフレームに付与されたオーディオ出力時刻情報が抽出される(図1の例では、代表としてオーディオ先頭時刻情報7cが抽出されている)。
その後、差分値計算手段4aにより、同期信号8の発生時刻とビデオ出力時刻情報との差分値が計算される。さらに、オーディオ出力時刻補正手段4bにより、差分値を用いてオーディオフレームそれぞれに付与されたオーディオ出力時刻情報が補正される。
ここで、ビデオ先頭時刻情報6cとオーディオ先頭時刻情報7cとのいずれか一方の情報が抽出されてからの経過時間が所定の閾値を超えるまで他方の情報が抽出されなかった場合、タイムアウト判定手段5aにおいてタイムアウトと判定される。このとき、ビデオ先頭時刻情報6cのみが抽出されていればビデオ単独出力と決定され、オーディオ先頭時刻情報7cのみが抽出されていればオーディオ単独出力と決定される。ビデオ単独出力と決定された場合、出力開始時刻決定手段5bによるビデオ出力開始時刻の決定を待たずに、画像出力手段2bによって、ビデオフレームに基づく画像出力が開始される。オーディオ単独出力と決定された場合、出力開始時刻決定手段5bによるオーディオ出力開始時刻の決定を待たずに、音声出力手段3bによってオーディオフレームに基づく音声出力が開始される。なお、オーディオ単独出力と決定された場合、ビデオ出力時刻情報が抽出できず、差分値計算手段4aによる差分値は計算できない。そのため、音声出力手段3bでは、オーディオストリーム7aに付与されていたオーディオ出力時刻情報(補正されていない値)に基づいてオーディオフレームの出力時刻が判断される。
タイムアウトになる前にビデオ先頭時刻情報6cとオーディオ先頭時刻情報7cとが共に抽出されると、出力開始時刻決定手段5bにより、ビデオ先頭時刻情報6cとオーディオ先頭時刻情報7cとの値が比較される。比較の結果、ビデオ先頭時刻情報6cの値の方が大きければ、ビデオ先頭時刻情報6cで示される時刻がビデオ出力開始時刻およびオーディオ出力開始時刻と決定される。また、比較の結果、オーディオ先頭時刻情報7cの値の方が大きければ、出力開始時刻決定手段5bは、オーディオ先頭時刻情報7cより大きな値で最小のビデオ出力時刻情報が付与された時刻をビデオ出力開始時刻およびオーディオ出力開始時刻と決定される。
そして、画像出力手段2bにより、同期信号8が発生するごとに、そのときの基準時刻情報の値に応じて表示可能なビデオ出力時刻情報が付与されたビデオフレームで示される画像が出力される。その際、出力開始時刻決定手段5bで決定されたビデオ出力開始時刻より小さい値のビデオ出力時刻情報が付与されたビデオフレームから生成した画像については、無効なデータに置き換えられる。
また、音声出力手段3bでは、基準時刻情報の値と補正後のオーディオ出力時刻情報の値とが一致したときに、一致したオーディオ出力時刻情報が付与されたオーディオフレームで示される音声が出力される。その際、基準時刻情報で示される時刻がオーディオ出力開始時刻に達する以前は、生成した音声が無効なデータに置き換えられる。
このように、同期信号の発生時刻とビデオ出力時刻情報との差分値によってオーディオ出力時刻情報を補正するようにしたため、画像出力と音声出力とを正確に同期させることができる。すなわち、ビデオフレームのビデオ出力時刻情報で示される時刻と同期信号の発信時刻とのずれの分だけ、オーディオフレームのオーディオ出力時刻情報を補正することで、画像と音声とを正確に同期させることができる。しかも、前述の特許文献2の技術のように、基準時刻情報(例えばSTC)を任意の値に変更するようなことはしないため、本願発明はリアルタイム伝送においても適用可能な汎用性の高い技術である。
また、ビデオ先頭時刻情報6cとオーディオ先頭時刻情報7cとを比較し、遅く受信したストリーム(ビデオ先頭時刻情報6cとオーディオ先頭時刻情報7cとのうち値の大きい方の情報が付与されたストリーム)に、ビデオ出力開始時刻とオーディオ出力開始時刻を合わせるようにした。そして、ビデオ出力開始時刻(オーディオ出力開始時刻も同じ)より前の画像や音声は無効データに置き換えた。これにより、ビデオストリームとオーディオストリームとのキャプチャ開始時刻に差があっても、再生出力時には同時に出力開始することができる。
さらに、一方のビデオ先頭時刻情報とオーディオ先頭時刻情報との一方のみが抽出され、所定時間経過するまで他方の情報が抽出されない場合、タイムアウトを発生させるようにした。そして、タイムアウトが発生した場合、既に入力されているストリームのみの単独での出力を行うようにした。これにより、ビデオストリームとオーディオストリームとの両方のストリームが入力されるのか、あるいは一方のストリームのみが入力されるのかが不明な場合であっても、デコーダ装置側において適切に判断して出力することができる。
次に、本発明をMPEGの規格に合わせて実現した場合の例を、実施の形態として詳細を説明する。
図2は、本実施の形態のシステム構成例を示す図である。エンコーダ装置100とデコーダ装置200とは、ネットワーク10を介して接続されている。
エンコーダ装置100には、カメラ11とマイク12が接続されている。エンコーダ装置100は、カメラ11から入力された映像とマイク12から入力された音とをデジタルデータに符号化する。エンコーダ装置100は、符号化したビデオデータとオーディオデータとをストリーミングによってネットワーク10経由でデコーダ装置200に送信する。
デコーダ装置200には、テレビ13が接続されている。デコーダ装置200は、エンコーダ装置100からストリーミングで送られたビデオデータとオーディオデータとを再生する。そして、デコーダ装置200は、再生された映像をテレビ13に表示させる。また、デコーダ装置200は、再生された音声をテレビ13のスピーカから出力させる。
図3は、エンコーダ装置の内部構造を示すブロック図である。エンコーダ装置100は、キャプチャ部110、ビデオ符号化部120、オーディオ符号化部130、多重化部140、およびネットワークインタフェース150を有している。
キャプチャ部110には、カメラ11からビデオ信号が入力されると共に、マイク12からオーディオ信号が入力される。キャプチャ部110は、入力されたビデオ信号とオーディオ信号とをデジタルデータに変換(キャプチャ)する。そして、キャプチャ部110は、ビデオ信号から生成されたビデオデータをビデオ符号化部120に対して出力する。また、キャプチャ部110は、オーディオ信号から生成されたオーディオデータを1オーディオフレーム(オーディオ信号の所定のサンプリング数ごとにブロック化した再生単位)の分だけ内蔵のメモリに格納する。そして、キャプチャ部110は、1オーディオフレームのデータに区切られたオーディオデータをオーディオ符号化部130に対して出力する。
ビデオ符号化部120は、キャプチャ部110からビデオデータを受け取る。また、ビデオ符号化部120は、多重化部140内のSTCラッチ回路142に接続されており、STCラッチ回路142からSTCの値を取得する。STCは、映像と音声を同期再生するための基準時間である。
ビデオ符号化部120は、PTS生成回路121を有している。PTS生成回路121には、STCが入力される。PTS生成回路121は、取得したSTCから出力時刻情報(PTS)を生成する。具体的には、PTSは、キャプチャ時のSTCカウンタ値にオフセットαを加算した値である。ここで、オフセットαは、ビデオデータの符号化によって生じる遅延時間の最大値である。オフセットαの値は、予めビデオ符号化部120の内部メモリに設定されている。
そして、ビデオ符号化部120は、MPEGやH.264符号化方式などで、ビデオデータの圧縮符号化を行う。さらに、ビデオ符号化部120は、符号化されたビデオストリーム(ES:Elementary Stream)とPTSとを多重化部140に出力する。
オーディオ符号化部130は、キャプチャ部110からオーディオデータを受け取る。また、オーディオ符号化部130は、多重化部140内のSTCラッチ回路142に接続されており、STCラッチ回路142からSTCの値を取得する。
オーディオ符号化部130は、PTS生成回路131を有している。PTS生成回路131には、STCが入力される。PTS生成回路131は、取得したSTCからキャプチャ時刻(PTS)を生成する。具体的には、PTSは、キャプチャ時のSTCカウンタ値にオフセットβを加算した値である。ここで、オフセットβは、オーディオデータの符号化によって生じる遅延時間の最大値である。オフセットβの値は、予めオーディオ符号化部130の内部メモリに設定されている。
そして、オーディオ符号化部130は、MPEG−1LayerIIやAAC(Advanced Audio Coding)などで、オーディオデータの圧縮符号化を行う。さらに、オーディオ符号化部130は、音声の符号化されたオーディオストリーム(AES:Audio Elementary Stream)とPTSとを多重化部140に出力する。
多重化部140は、ビデオストリームおよびオーディオストリームの多重化を行う。具体的には、多重化部140は、ビデオストリームおよびオーディオストリームの各ストリームからPES(Packetized Elementary Stream)への変換を行う。さらに、多重化部140は、多重化開始時刻を算出する。そして、多重化部140は、多重化開始時刻とSTCカウンタ141の値とを比較する。多重化部140は、STCが多重化開始時刻に到達する直前にPESをシステムストリームに変換し、システムストリームを出力する。
また、多重化部140は、STCカウンタ141とSTCラッチ回路142とを有している。STCカウンタ141は、基準時間を発生させる。STCラッチ回路142は、カメラ11から出力される垂同期信号(VSYNC)が入力されている。VSYNCは、画面を切り換えるタイミングを制御する信号である。STCラッチ回路142は、VSYNCのタイミングでSTCカウンタ141の値をラッチ(保持)する。STCラッチ回路142がラッチしたSTCの値は、ビデオ符号化部120とオーディオ符号化部130とに送られる。
ネットワークインタフェース150は、多重化部140から出力されたシステムストリームを、ネットワーク10経由でデコーダ装置200に送信する。
このようなエンコーダ装置100によれば、カメラ11から入力されたビデオ信号は、キャプチャ部110でキャプチャされる。キャプチャ部110では、1画面単位でビデオデータを内部メモリに格納する。そして、キャプチャ部110は、その画面データをビデオ符号化部120に出力する。
また、マイク12から入力されたオーディオ信号は、キャプチャ部110でキャプチャされる。キャプチャ部110は、1オーディオフレームごとのオーディオデータをメモリに格納する。そして、キャプチャ部110は、オーディオデータをオーディオ符号化部130に出力する。
ビデオ符号化部120では、1ビデオフレーム分の画面データを受け取ったときのSTCラッチ回路142の値(STC)を取得する。すると、PTS生成回路121によって、STCにオフセットαが加算され、ビデオPTSが生成される。次に、ビデオ符号化部120は、1ビデオフレーム分の画面データおよびビデオPTSを入力として、MPEGやH.264符号化方式などで圧縮符号化を行う。生成される画像符号化データ(ビデオストリーム)は、複数のパケットで構成されるストリーミングデータである。ビデオPTSは、ビデオパケットのヘッダ部に設定される。そして、ビデオ符号化部120は、画像符号化データ(ビデオストリーム)を多重化部140に出力する。
オーディオ符号化部130では、1オーディオフレーム分のオーディオデータを受け取ったときのSTCラッチ回路142の値(STC)を取得する。すると、PTS生成回路131によって、STCにオフセットβが加算され、オーディオPTSが生成される。次に、オーディオ符号化部130は、1オーディオフレーム分のオーディオデータおよびオーディオPTSを入力として、MPEG−1LayerIIやAACなどで圧縮符号化を行う。生成される音声符号化データ(オーディオストリーム)は、複数のパケットで構成されるストリーミングデータである。オーディオPTSは、オーディオパケットのヘッダ部に設定される。そして、オーディオ符号化部130は、音声符号化データ(オーディオストリーム)を多重化部140に出力する。
多重化部140では、ビデオストリームおよびオーディオストリームの各ストリームが多重化され、PESストリームに変換される。さらに、多重化部140では、多重化開始時刻が算出される(例えば、現在のSTCカウンタ141の値にシステムストリームへの変換に要する時間分の数値を加算した値を多重化開始時刻とする)。多重化部140は、多重化開始時刻とSTCカウンタ141の値とを比較し、STCカウンタ141の値が多重化開始時刻に到達する直前にPESストリームをシステムストリームに変換し、システムストリーム出力を行う。
システムストリームのヘッダには、STCカウンタ141の値が時刻基準参照値として含められる。ここで、システムストリームが、MPEG−PS(Program Stream)であれば、システム時刻基準参照値(SCR)が時刻基準参照値である。また、システムストリームがMPEG−TS(Transport Stream)であれば、プログラム時刻基準参照値(PCR)が時刻基準参照値である。時刻基準参照値は、デコーダ装置200における基準時刻となるSTCの値をセットするための情報である。
多重化部140から出力されたシステムストリームは、ネットワークインタフェース150を介してデコーダ装置200に送信される。
図4は、デコーダ装置の内部構造を示すブロック図である。デコーダ装置200は、ネットワークインタフェース210、分離部220、ビデオ復号部230、オーディオ復号部240、PTS制御部250、画像出力部260、および音声出力部270を有している。
ネットワークインタフェース210は、エンコーダ装置100から送信されたシステムストリームをネットワーク10経由で受信する。そして、ネットワークインタフェース210は、受信したシステムストリームを分離部220に渡す。
分離部220は、システムストリームを、ビデオストリームおよびオーディオストリームに分離する。具体的には、ストリーム分離部221が設けられている。ストリーム分離部221は、システムストリームのヘッダから時刻基準参照値を抽出し、STCカウンタ222に渡す。さらに、ストリーム分離部221は、システムストリームをPESへ変換後、PESに含まれるパケットを、ビデオパケットとオーディオパケットに分類する。さらに、ストリーム分離部221は、ビデオパケットからビデオストリームを生成し、オーディオパケットからオーディオストリームを生成する。そして、ストリーム分離部221は、ビデオストリームをビデオ復号部230に送信し、オーディオストリームをオーディオ復号部240に送信する。
また、分離部220内のSTCカウンタ222は、ストリーム分離部221から渡された時刻基準参照値を参照して、STCを再現する。なお、時刻基準参照値を用いたSTCの再現技術には、MPEGなどの各規格で決められた技術が用いられる。
さらに、分離部220には、STCラッチ回路223が設けられている。STCラッチ回路223には、画像出力部260からVSYNCが入力されている。そして、STCラッチ回路223は、VSYNCのタイミングでSTCカウンタ222の値をラッチ(保持)する。STCラッチ回路223がラッチしたSTCの値は、PTS制御部250、画像出力部260、および音声出力部270に送られる。
ビデオ復号部230は、画像の符号化データ(ビデオストリーム)を受け取ると、ビデオストリームを復号し、ビデオデータを再生する。ビデオ復号部230は、再生したビデオデータを画像出力部260に送信する。送信する1ビデオストリームごとのビデオデータには、その画像の出力時を示すビデオPTSが付与される。また、ビデオ復号部230は、PTS抽出部231を有している。PTS抽出部231は、ビデオストリームのヘッダから最初のビデオPTS(ビデオ先頭PTS)を抽出し、PTS制御部250に渡す。なお、ビデオ復号部230は、ビデオ先頭PTSに限らず、ビデオストリームから順次抽出されるビデオPTSを全てPTS制御部250に渡すようにしてもよい。
オーディオ復号部240は、音声の符号化データ(オーディオストリーム)を受け取ると、オーディオストリームを復号し、オーディオデータを再生する。また、オーディオ復号部240は、PTS抽出部241を有している。PTS抽出部241は、オーディオストリームのヘッダから最初のオーディオPTS(オーディオ先頭PTS)を抽出し、PTS制御部250に渡す。なお、オーディオ復号部240は、オーディオ先頭PTSに限らず、オーディオストリームから順次抽出されるオーディオPTSを全てPTS制御部250に渡すようにしてもよい。オーディオ復号部240には、PTS制御部250から、ビデオデータの各ビデオPTSとVSYNCが出力されるSTCとの差分値が入力される。
オーディオ復号部240は、オーディオストリームヘッダから抽出したオーディオPTSに、PTS制御部250から受け取った差分値を加減算して、1オーディオフレームごとのオーディオデータのオーディオPTSとする。そして、オーディオ復号部240は、差分値によって補正されたオーディオPTSを1オーディオフレームごとのオーディオデータに付与し、そのオーディオデータを音声出力部270に送信する。
PTS制御部250は、ビデオ復号部230とオーディオ復号部240とのそれぞれからビデオ先頭PTSとオーディオ先頭PTSとを受け取り、取得したPTSに基づいて画像と音声との出力タイミングを制御する。具体的には、PTS制御部250には、STCラッチ回路223にラッチされたSTCが入力されている。PTS制御部250は、ビデオデータの最初のビデオフレームのビデオ先頭PTSとVSYNCが出力されるときのSTCとの差分値を計算する。そして、PTS制御部250は、計算した差分値をオーディオ復号部240に渡す。
また、PTS制御部250は、ビデオ復号部230から入力されたビデオ先頭PTSとオーディオ復号部240とから入力されたオーディオ先頭PTSとを比較し、ビデオデータとオーディオデータとの出力開始時を判断する。そして、PTS制御部250は、画像出力開始時を示すPTS(画像出力開始PTS)を画像出力部260に送信すると共に、音声出力開始時を示すPTS(音声出力開始PTS)を音声出力部270に送信する。
さらに、PTS制御部250は、ビデオ復号部230とオーディオ復号部240とのいずれか一方からPTS(ビデオ先頭PTSまたはオーディオ先頭PTS)が入力されると、タイマによる時間計測を開始する。他方のPTSが所定の時間内に入力されなかった場合(タイムアウト発生)、PTS制御部250は、ビデオデータまたはオーディオデータのみのストリーミングと判断する。ビデオ復号部230からビデオ先頭PTSが入力された後、所定期間内にオーディオ復号部240からオーディオ先頭PTSが入力されなかった場合、画像出力部260に対してのみ、画像出力開始PTSを送信する。また、オーディオ復号部240からオーディオ先頭PTSが入力された後、所定期間内にビデオ復号部230からビデオ先頭PTSが入力されなかった場合、音声出力部270に対してのみ音声出力開始PTSを送信する。
画像出力部260は、ビデオ復号部230から入力されたビデオデータをテレビ13のモニタ13aに表示する。なお、1ビデオフレームごとの画面の切り換えは、VSYNCのタイミングで行われる。VSYNCは、画像出力部260内の回路から所定周期で発信されている。また、VSYNCは、分離部220内のSTCラッチ回路223に対して出力されている。
なお、画像出力部260は、1ビデオフレームごとのビデオデータを蓄える画像バッファ261を有している。画像出力部260は、ビデオ復号部230から受け取ったビデオデータを一時的に画像バッファ261に蓄積する。そして、画像出力部260は、PTS制御部250から画像出力開始PTSを受け取ると、画像出力開始PTSより小さい値のPTSが付与されたビデオデータを無効データとする。
さらに、画像出力部260にはSTCラッチ回路223からSTCが入力されている。そして、画像出力部260は、画像出力開始PTS以降のPTSが付与されたビデオデータを、付与されたPTSの値とSTCの値とが一致するタイミングでモニタ13aに表示する。なお、無効とされたビデオデータと、表示が終了したビデオデータとは、画像バッファ261から削除される。
音声出力部270は、オーディオ復号部240から入力されたオーディオデータで示される音をテレビ13のスピーカ13bから出力する。なお、音声出力部270は、1オーディオフレームごとのオーディオデータを蓄える音声バッファ271を有している。音声出力部270は、オーディオ復号部240から受け取ったオーディオデータを一時的に音声バッファ271に蓄積する。そして、音声出力部270は、PTS制御部250から音声出力開始PTSを受け取ると、音声出力開始PTSより小さい値のPTSが付与されたオーディオデータを無効データとする。
さらに、音声出力部270にはSTCラッチ回路223からSTCが入力されている。そして、音声出力部270は、音声出力開始PTS以降のPTSが付与されたオーディオデータを、付与されたPTSの値とSTCの値とが一致するタイミングで音声信号に変換し、スピーカ13bに出力する。なお、無効とされたオーディオデータと、出力が終了したオーディオデータとは、音声バッファ271から削除される。
このようなデコーダ装置200によれば、ネットワークインタフェース210によって、エンコーダ装置100が送信したシステムストリームが受信される。受信したシステムストリームは、分離部220に送られる。入力されたシステムストリームは、分離部220にてPESストリームに変換後、ビデオストリームおよびオーディオストリームに変換される。ビデオストリームは、ビデオ復号部230に出力され、オーディオストリームは、オーディオ復号部240に出力される。
また、分離部220においてシステムストリームから時刻基準参照値(PCRまたはSCR)が抽出され、STC再生が行われる。再生されたSTCは、STCカウンタ222にセットされる。STCカウンタ222の値は、VSYNC信号入力のタイミングで、STCラッチ回路223にラッチされる。ラッチされたSTCの値は、PTS制御部250、画像出力部260、および音声出力部270に出力される。
ビデオストリームは、ビデオ復号部230において復号される。復号されたビデオデータは、1ビデオフレームごとにPTSが付与され、画像出力部260に送られる。また、ビデオ復号部230のPTS抽出部231では、ビデオストリームのパケットヘッダからビデオ先頭PTSが抽出される。抽出されたビデオ先頭PTSは、PTS制御部250に送られる。
PTS制御部250では、ビデオ先頭PTSとVSYNC出力時のSTCとの差分値が計算される。計算された差分値は、オーディオ復号部240に送られる。
オーディオストリームは、オーディオ復号部240において復号される。復号されたオーディオデータは、1オーディオフレームごとにオーディオPTSが付与される。その際、各オーディオフレームのオーディオPTSは、PTS制御部250から入力された差分値だけ加減算される。そして、差分値による補正後のPTSが付与されたオーディオフレームごとのオーディオデータが音声出力部270に送られる。また、オーディオ復号部240のPTS抽出部241では、オーディオストリームのパケットヘッダからオーディオ先頭PTSが抽出される。抽出されたオーディオ先頭PTSは、PTS制御部250に送られる。
PTS制御部250では、ビデオ先頭PTSとオーディオ先頭PTSとのいずれか一方が入力されると、カウンタによる時間計測を開始する。そして、予め指定された時間内に他方のPTSが入力されれば、PTS制御部250において、画像と音声との同時出力制御が行われる。また、一方のPTS入力後の所定の時間内に他方のPTSが入力されなければ、PTS制御部250において、画像または音声のいずれか一方のみの出力制御が行われる。
同時出力制御では、PTS制御部250は、ビデオ先頭PTSとオーディオ先頭PTSとのうち大きい方の値に出力開始時刻を合わせる。このとき、ビデオ先頭PTSの値の方が大きければ、ビデオ先頭PTSの値がビデオ出力開始PTSおよびオーディオ出力開始PTSとされる。また、オーディオ先頭PTSの値の方が大きければ、オーディオ先頭PTSより大きなビデオPTSのうちの最小値が、ビデオ出力開始PTSおよびオーディオ出力開始PTSとされる。そして、PTS制御部250から画像出力部260にビデオ出力開始PTSが送信され、音声出力部270にオーディオ出力開始PTSが送信される。
なお、PTS制御部250では、ビデオ復号部230から順次ビデオPTSが入力されていれば、そのビデオPTSの値に基づいてオーディオ先頭PTSより大きなビデオPTSのうちの最小値を判断することができる。ビデオ復号部230からビデオ先頭PTSしか入力されていない場合、PTS制御部250は、ビデオ先頭PTSの値に対して1フレーム分のPTS数を順次加算した値を計算することで、後続のビデオPTSの値を求める。そして、PTS制御部250は、算出したビデオPTSに基づいて、オーディオ先頭PTSより大きなビデオPTSのうちの最小値を判断することができる。
画像出力部260では、ビデオ復号部230から受け取ったビデオデータが、画像バッファ261に格納される。画像出力部260では、PTS制御部250から入力されたビデオ出力開始PTSより後のPTSが付与されたビデオデータからモニタ13aへの出力を開始する。それ以前のPTSが付与されたビデオデータは、画像バッファ261から削除される。ビデオデータを出力する際には、STCラッチ回路223から入力されるSTCに基づいて、次のVSYNCのタイミングで出力するPTSの値の範囲が判断される。そして、出力するタイミングとなったPTSが付与されたビデオデータが、VSYNCと同期してモニタ13aに出力される。
音声出力部270では、オーディオ復号部240から受け取ったオーディオデータが、音声バッファ271に格納される。音声出力部270では、PTS制御部250から入力されたオーディオ出力開始PTSより前のPTSが付与されたオーディオデータが無効なデータ(例えば、無音となるようなデータ)に変換される。そして、STCラッチ回路223から入力されるSTCの値に応じたPTSの出力範囲に該当するPTSが付与されたオーディオデータが音声信号に変換され、スピーカ13bに出力される。
このようにして、画像出力と音声出力とを極めて正確に同期させることができる。すなわち、画像はVSYNCに同期して表示させる必要があるため、VSYNCの出力時刻とPTSとSTCとが一致する時刻との差分に応じた誤差が生じる。そこで、ビデオデータに付与するPTSに、ビデオデータのPTSとVSYNCが出力される時刻のSTCとの差分値を加減算することで、オーディオデータについてもVSYNCに同期させることができる。その結果、画像と音声とを正確に同期させて出力することができる。
なお、図4の例では、STCラッチ回路223が分離部220内に設けられているが、STCラッチ回路223は、PTS制御部250内に設けることもできる。STCラッチ回路223がPTS制御部250内に設けられた場合、STCカウンタ222の値をPTS制御部250に入力すると共に、画像出力部260からPTS制御部250へVSYNCを入力する必要がある。また、画像出力部260と音声出力部270とへのSTCの供給は、PTS制御部250に設けられたSTCラッチ回路から行われる。
ここで、VSYNCが出力されたタイミングで表示可能なPTSの範囲について説明する。
図5は、ビデオ出力における表示フレームの有効範囲を示す図である。図5には、上から順に、ビデオフレームのPTS値、ビデオ表示タイミング、VSYNC出力時のSTC値、およびVSYNC出力タイミングが時系列で示されている。
ビデオ側で用いられるVSYNCに同期したビデオフレームの表示において、あるVSYNCのSTC値に対して表示可能なビデオフレームは、あるSTCを基準にして、そのSTCの時刻を含む1フレーム時間の時間帯に存在するビデオフレームである(なお、これは一例であって、1フレーム時間が重複しないように範囲が決めてあればよい)。
例えば、図5の例に示すように、1ビデオフレーム進むごとのPTSの値の増加が3003の場合、STC:9003の時の表示可能なビデオフレームは、ビデオPTSの値が7502〜10504のビデオフレームである。
なお、1ビデオフレーム進むごとのPTSの値の増加は、フレームレートによって決定される。フレームレートは、画像の放送方式によって決められている。ビデオのフレームレートが59.94Hz(NTSC)および50Hz(PAL:Phase Alternation by Line)時の1ビデオフレーム分のPTS値はそれぞれ以下の通りである。
・フレームレートが59.94Hz(NTSC)のとき、1ビデオフレーム分のPTS値(90KHz換算)は3003である。
・フレームレートが50Hz(PAL)のとき、1ビデオフレーム分のPTS値(90KHz換算)は3600である。
よって、あるSTC値(T)における表示可能なPTSの範囲は以下のようになる。
・フレームレートが59.94Hzの場合
T−1501 ≦ PTS < T+1502
・フレームレートが50Hzの場合
T−1800 ≦ PTS < T+1800
例えば、図5ではPTSが7502〜10504の範囲内にあるビデオフレームは、STC値が9003のときに表示可能である。また、PTSが10505〜13507の範囲内にあるビデオフレームは、STC値が12006のときに表示可能である。
次に、PTS制御部250が実行する処理の手順を説明する。
図6は、PTS制御装置の処理手順を示すフローチャートである。以下、図6に示す処理をステップ番号に沿って説明する。
[ステップS11]PTS制御部250は、ビデオ復号部230またはオーディオ復号部240のいずれかからPTSが入力されたか否かを判断する。PTSが入力されたら処理がステップS12に進められる。PTSが入力されていない場合、ステップS11の処理が繰り返される。
[ステップS12]PTS制御部250は、入力されたPTSがビデオ復号部230からのビデオ先頭PTSなのか、あるいはオーディオ復号部240からのオーディオ先頭PTSなのかを判断する。ビデオ先頭PTSが入力された場合、処理がステップS13に進められる。オーディオ先頭PTSが入力された場合、処理がステップS18に進められる。
[ステップS13」ビデオ先頭PTSが入力されると、PTS制御部250は、タイマによる時間計測をスタートする。
[ステップS14]PTS制御部250は、オーディオ復号部240からオーディオ先頭PTSが入力されたか否かを判断する。オーディオ先頭PTSが入力された場合、処理がステップS23に進められる。オーディオ先頭PTSが入力されていない場合、処理がステップS15に進められる。
[ステップS15]PTS制御部250は、オーディオ先頭PTS待ち時間がタイムアウトとなったか否かを判断する。具体的には、PTS制御部250内のメモリには、オーディオ先頭PTS待ち時間が予め設定されている。そして、PTS制御部250は、タイマにより計測された時間がオーディオ先頭PTS待ち時間を超えた場合、タイムアウトと判断する。タイムアウトとなった場合、処理がステップS16に進められる。タイムアウトとなっていない場合、処理がステップS14に進められオーディオ先頭PTSが入力されるのを待つ。
[ステップS16]タイムアウトとなると、PTS制御部250は、STCラッチ回路223にラッチされたSTCを受信する。
[ステップS17]PTS制御部250は、画像出力部260に対して、ビデオストリーム(ES)のSTC同期出力の開始を指示する。具体的には、PTS制御部250は、ステップS16で受信したSTCをビデオ出力開始PTSとして、画像出力部260に対して出力する。すると、画像出力部260では、ビデオ出力開始PTS以降のPTSが付与された画像データが、STCに同期して順次出力される。その後、PTS制御部250の処理が終了する。
[ステップS18]オーディオ先頭PTSが入力されると、PTS制御部250は、タイマによる時間計測をスタートする。
[ステップS19]PTS制御部250は、ビデオ復号部230からビデオ先頭PTSが入力されたか否かを判断する。ビデオ先頭PTSが入力された場合、処理がステップS23に進められる。ビデオ先頭PTSが入力されていない場合、処理がステップS20に進められる。
[ステップS20]PTS制御部250は、ビデオ先頭PTS待ち時間がタイムアウトとなったか否かを判断する。具体的には、PTS制御部250内のメモリには、ビデオ先頭PTS待ち時間が予め設定されている。そして、PTS制御部250は、タイマにより計測された時間がビデオ先頭PTS待ち時間を超えた場合、タイムアウトと判断する。タイムアウトとなった場合、処理がステップS21に進められる。タイムアウトとなっていない場合、処理がステップS19に進められビデオ先頭PTSが入力されるのを待つ。
[ステップS21]タイムアウトとなると、PTS制御部250は、STCラッチ回路223にラッチされたSTCを受信する。
[ステップS22]PTS制御部250は、音声出力部270に対して、オーディオストリーム(AES)のSTC同期出力の開始を指示する。具体的には、PTS制御部250は、ステップS21で受信したSTCをオーディオ出力開始PTSとして、音声出力部270に対して出力する。すると、音声出力部270では、オーディオ出力開始PTS以降のPTSが付与された音声データが、STCに同期して順次出力される。その後、PTS制御部250の処理が終了する。
[ステップS23]PTS制御部250は、STCラッチ回路223にラッチされたSTCを受信する。
[ステップS24]PTS制御部250は、出力開始時のPTSを取得する。具体的には、PTS制御部250は、ビデオ復号部230から入力されたビデオ先頭PTSと、ステップS23で取得したSTCとを比較する。次に、PTS制御部250は、取得したSTCに応じた表示可能なPTS範囲を判断する(図5参照)。ここで、1ビデオフレーム進むごとのPTSの値の増加数はフレームレートに応じて決まっている。そのため、PTS制御部250は、ビデオ先頭PTSに基づいて、ビデオ先頭PTS以降の各ビデオフレームのビデオPTSの値を算出できる。そこで、PTS制御部250は、ビデオ復号部230から出力される1ビデオフレームごとの画像データのPTSの中で、ステップS23で取得したSTCで表示可能なPTS範囲に含まれるPTSを判断する。そして、PTS制御部250は、表示可能なPTSを出力開始時のビデオPTS(ビデオ出力開始PTS)とする。
[ステップS25]PTS制御部250は、ステップS23で取得したSTCと、ビデオ出力開始PTSとの差分値を計算する。例えば、取得したSTCの値から、出力開始時のPTSの値が減算される。図5に示したように、STCに応じて表示可能なPTSは、該当するSTCよりも値が大きい場合と小さい場合とがある。STCよりもPTSの方が大きければ、減算結果(差分値)は負の数となる。STCよりもPTSの方が小さければ、減算結果(差分値)は正の数となる。算出された差分値、オーディオ復号部240に渡される。これにより、オーディオ復号部240では、オーディオフレームの各PTSに差分値を加算(実質的には差分値の正負に応じた加減算)することで、ビデオフレームとの表示誤差を補正することができる。
[ステップS26]PTS制御部250は、ビデオ先頭PTSとオーディオ先頭PTSとを比較する。ビデオ先頭PTSの方が大きければ、処理がステップS27に進められる。ビデオ先頭PTSとオーディオ先頭PTSとの値が同じであれば、処理がステップS28に進められる。オーディオ先頭PTSの方が大きければ、処理がステップS29に進められる。
[ステップS27]ビデオ先頭PTSの方が大きい場合、PTS制御部250は、ビデオPTSに合わせた映像・音声の同時出力開始を指示する。具体的には、PTS制御部250は、ビデオ出力開始PTSを画像出力部260に対して送信すると共に、ビデオ出力開始PTSと同じ値のオーディオ出力開始PTSを音声出力部270に対して出力する。すると、音声出力部270では、オーディオストリーム(AES)の先頭のオーディオフレームからオーディオ出力開始PTSで示される時刻以前の音声データは、無効データに書き換えられる。その結果、映像と音声とが同時に出力開始される。その後、PTS制御部250の処理が終了する。
[ステップS28]ビデオ先頭PTSとオーディオ先頭PTSとの値が同じ場合、PTS制御部250は、映像・音声の同時出力開始を指示する。具体的には、PTS制御部250は、ビデオ出力開始PTSを画像出力部260に対して送信すると共に、ビデオ出力開始PTSと同じ値のオーディオ出力開始PTSを音声出力部270に対して出力する。すると、画像出力部260と音声出力部270とは、共にストリームの先頭のフレームから出力を開始する。その後、PTS制御部250の処理が終了する。
[ステップS29]オーディオ先頭PTSの方が大きい場合、PTS制御部250は、オーディオPTSに合わせた映像・音声の同時出力開始を指示する。具体的には、PTS制御部250は、オーディオ先頭PTSより大きなビデオPTSのうちの最小の値を判断し、そのビデオPTSの値をビデオ出力開始PTSとして画像出力部260に対して送信すると共に、そのビデオPTSの値をオーディオ出力開始PTSとして音声出力部270に対して出力する。すると、画像出力部260では、ビデオストリーム(ES)の先頭のビデオフレームからビデオ出力開始PTSより前のPTSが付与されたビデオフレームまでは、無効データに書き換えられる。そして、画像出力部260によって、ビデオ出力開始PTS以降のビデオフレームによる映像が出力される。
また、音声出力部270では、オーディオ先頭PTSが付されたオーディオフレーム(オーディオストリームの先頭のオーディオフレーム)から音声出力を開始する。ただし、音声出力部270は、オーディオ出力開始PTSで示された時刻以前の音声データを無効データに書き換える。すなわち、ビデオストリームの1ビデオフレーム分の時間と、オーディオストリームの1オーディオフレーム分の時間とは一致しないため、ビデオとオーディオが同時にサンプリング開始されていない(ビデオ先頭PTSとオーディオ先頭PTSとが不一致)場合、オーディオ先頭PTSはビデオPTSとずれてしまう。そこで、音声出力部270では、オーディオ先頭PTSからオーディオ出力開始PTS(オーディオ先頭PTS以後の最初のビデオPTSと同じ)までの時間は、無効データ(無音のデータ)に置き換えることで音声出力の開始を遅らせる。その結果、映像と音声とが同時に出力開始される。その後、PTS制御部250の処理が終了する。
なお、オーディオ先頭PTSの方が大きい場合、ビデオ先出し出力制御を行うこともできる。その場合、PTS制御部250は、ビデオ先頭PTSの値をビデオ出力開始PTSとして画像出力部260に対して送信する。また、PTS制御部250は、オーディオ先頭PTSの値をオーディオ出力開始PTSとして音声出力部270に対して送信する。すると、画像出力部260による映像出力の方が、音声出力部270による音声出力よりも先に開始される。
次に、ビデオ先頭PTSとオーディオ先頭PTSが同じ場合に、画像と音声とを正確に同期させた出力例をタイミングチャートを用いて説明する。
図7は、エンコーダ装置によるエンコード処理を示すタイミングチャートである。図7には、上から順に、ビデオデータ、オーディオデータ、STC、ビデオストリーム(ES)、およびオーディオストリーム(AES)の時間遷移が示されている。
ビデオデータの時間遷移としては、ビデオ符号化部120に入力される1ビデオフレームごとのビデオデータが示されている。オーディオデータの時間遷移としては、オーディオ符号化部130に入力される1オーディオフレームごとのオーディオデータが示されている。STCの時間遷移としては、ビデオ符号化部120またはオーディオ符号化部130がSTCラッチ回路142から取得したSTCの値が示されている。
ビデオストリームの時間遷移としては、ビデオ符号化部120から出力されるビデオパケットの遷移が示されている。また、ビデオパケットの出力開始時刻の位置に、そのビデオパケットのパケットヘッダに付与されるビデオPTSの値が示されている。
オーディオストリームの時間遷移としては、オーディオ符号化部130から出力されるオーディオパケットの遷移が示されている。また、オーディオパケットの出力開始時刻の位置に、そのオーディオパケットのパケットヘッダに付与されるオーディオPTSの値が示されている。
図7の例では、ビデオデータとオーディオデータとが同時にエンコーダ装置100に入力開始されている。ビデオデータの1ビデオフレーム分の時間は「T_Video」で示されている。「T_Video」の時間周期で、1ビデオフレーム分のビデオデータ(Video1,Video2,・・・)が順次ビデオ符号化部120に入力されている。
オーディオデータの1オーディオフレーム分の時間は「T_Audio」で示されている。「T_Audio」の時間周期で、1オーディオフレーム分のオーディオデータ(Audio1,Audio2,・・・)が順次オーディオ符号化部130に入力されている。
ビデオ符号化部120で符号化データが生成されると、ビデオストリームが出力される。ビデオストリームは、1ビデオフレーム分のビデオパケット群(VideoAU1,VideoAU2,・・・)に分離できる。図7の例では、最初のビデオフレームのビデオパケット群「VideoAU1」の出力開始時のSTCの値は「STC_Video1」である。2つめのビデオフレームのビデオパケット群「VideoAU2」の出力開始時のSTCの値は「STC_Video2」である。
各ビデオフレームを構成するビデオパケット群(VideoAU1,VideoAU2,・・・)の先頭のビデオパケットのパケットヘッダには、ビデオPTSが設定される。最初のビデオフレームのビデオパケット群(VideoAU1)の先頭のビデオパケットには、そのビデオフレームのビデオPTS(PTS_V1)が設定される。PTS_V1の値は、ビデオパケット出力時のSTCの値(STC_Video1)に所定の符号化遅延時間の最大値αを加算した値である。2つ目のビデオフレームのビデオパケット群(VideoAU2)の先頭のビデオパケットには、そのビデオフレームのビデオPTS(PTS_V2)が設定される。「PTS_V2」の値は、直前のビデオフレームのビデオPTSの値「PTS_V1」に、1ビデオフレーム分の時間「T_Video」を加算した値である。
オーディオ符号化部130で符号化データが生成されると、オーディオストリームが出力される。オーディオストリームは、1オーディオフレーム分のオーディオパケット群(AudioAU1,AudioAU2,・・・)に分離できる。図7の例では、最初のオーディオフレームのオーディオパケット群「AudioAU1」の出力開始時のSTCの値は「STC_Audio1」である。2つ目のオーディオフレームのオーディオパケット群「AudioAU2」の出力開始時のSTCの値は「STC_Audio2」である。
各オーディオフレームを構成するオーディオパケット群(AudioAU1,AudioAU2,・・・)の先頭のオーディオパケットのパケットヘッダには、オーディオPTSが設定される。最初のオーディオフレームのオーディオパケット群(AudioAU1)の先頭のオーディオパケットには、そのオーディオフレームのオーディオPTS(PTS_A1)が設定される。PTS_A1の値は、オーディオパケット出力時のSTCの値(STC_Audio1)に所定の符号化遅延時間の最大値βを加算した値である。2つ目のオーディオフレームのオーディオパケット群(AudioAU2)の先頭のオーディオパケットには、そのオーディオフレームのオーディオPTS(PTS_A2)が設定される。「PTS_A2」の値は、直前のオーディオフレームのオーディオPTSの値「PTS_A1」に、1オーディオフレーム分の時間「T_Audio」を加算した値である。
次に、デコード処理の手順を説明する。
図8は、デコーダ装置によるデコード処理を示すタイミングチャートである。図8には、上から順に、ビデオストリーム、オーディオストリーム、STC、VSYNC(垂直同期信号)、ビデオデータ、およびオーディオデータの時間遷移が示されている。
ビデオストリームの時間遷移としては、ビデオ復号部230に入力されるビデオストリームのビデオパケットの遷移が示されている。ビデオパケットは、1ビデオフレームごとの集合(ビデオパケット群)に分けて示されている。また、括弧書きで、そのビデオパケット群の先頭のビデオパケットに付与されたビデオPTSが示されている。
オーディオストリームの時間遷移としては、オーディオ復号部240に入力されるオーディオストリームのオーディオパケットの遷移が示されている。オーディオパケットは、1オーディオフレームごとの集合(オーディオパケット群)に分けて示されている。また、括弧書きで、そのオーディオパケット群の先頭のオーディオパケットに付与されたオーディオPTSが示されている。
STCの時間遷移としては、ビデオ復号部230またはオーディオ復号部240がSTCラッチ回路223から取得したSTCの値が示されている。VSYNCの時間遷移では、画像出力部260で発生するVSYNCの出力時刻が矢印で示されている。ビデオデータの時間遷移としては、画像出力部260に入力される1ビデオフレームごとのビデオデータが示されている。オーディオデータの時間遷移としては、音声出力部270に入力される1オーディオフレームごとのオーディオデータが示されている。
この例では、ビデオストリームがオーディオストリームより先に入力されている。ビデオストリームでは、まず、ビデオ先頭PTS(PTS_V1)が付与されたビデオパケット(VideoAU1)が入力されている。その後、後続のビデオパケット(VideoAU2)が入力されている。ビデオ先頭PTS(PTS_V1)には、予め符号化遅延時間の最大値αが加算されている。そのため、ビデオパケットで示されるビデオフレームの画像が表示されるのは、そのビデオパケットの入力からビデオPTSのカウント数「α」に応じた時間経過後である。
オーディオストリームでは、まず、オーディオ先頭PTS(PTS_A1)が付与されたオーディオパケット(AudioAU1)が入力されている。その後、後続のオーディオパケット(AudioAU2)が入力されている。オーディオ先頭PTS(PTS_A1)には、予め符号化遅延時間の最大値βが加算されている。そのため、オーディオパケットで示されるオーディオフレームの音声が出力されるのは、そのオーディオパケットの入力からオーディオPTSのカウント数「β」に応じた時間経過後である。そして、「α」と「β」との値の調整により、ビデオとオーディオのキャプチャ開始が同時であれば、ビデオ先頭PTS(PTS_V1)とオーディオ先頭PTS(PTS_A1)との値は同じとなる。
この場合、ビデオ先頭PTS(PTS_V1)の値が、ビデオ出力開始PTSおよびオーディオ出力開始PTSとなる。すると、ビデオ先頭PTS(PTS_V1)を表示可能なSTCに対応するVSYNCのタイミングに合わせて画像出力が開始される。また、オーディオデータについては、ビデオ先頭PTSと、VSYNCのタイミングでラッチされたSTCとの差分値(ΔT)の分だけ、各オーディオフレームのオーディオPTSの値が加減算される。図8の例では、差分値(ΔT)だけ加算されている。例えば、ビデオデータの出力タイミングにおけるSTC値を「9003」、出力開始時のビデオのビデオPTS値を「8000」とした場合、差分値は9003−8000=1003になる。この値をオーディオデータのオーディオPTSに加算してSTC同期にてオーディオデータを出力させる。
このようにして、ビデオ先頭PTS(PTS_V1)を表示可能なSTCに対応するVSYNCのタイミングに合わせて音声出力が開始される。その結果、ビデオデータの出力開始時刻とオーディオデータの出力開始時刻を正確に一致させることができる。
次に、オーディオキャプチャがビデオキャプチャより先に開始された場合について説明する。
図9は、オーディオキャプチャがビデオキャプチャより先に開始された場合の出力時期を示すタイミングチャートである。この例では、ビデオ先頭PTSとオーディオ先頭PTSとの比較結果、ビデオ先頭PTS>オーディオ先頭PTSとなる。
ここで、ビデオフレームのビデオ先頭PTSを8000、ビデオPTSが8000時の出力VSYNCタイミングのSTCを9003、先頭オーディオフレームのオーディオPTSを7000とする(ビデオのフレームレートは59.94Hzとし、1ビデオフレーム分のビデオPTSは、90KHz換算にて3003とする。ビデオおよびオーディオともストリームに付加されているPTSは90KHz単位とする)。また、図9では、オーディオフレーム21,22,23,24,・・・のうち、無効データを網掛で示している。
オーディオフレームについては、例えば、符号化モードはMPEG−1LayerII、サンプリング周波数を48Kzとした場合、1オーディオフレーム分のサンプル数は符号化モードごとに規格上にて決まっており、MPEG−1LayerIIでは、1152となる。また、ビデオフレームの出力開始時のビデオPTSと出力VSYNCタイミング時のSTCとの差分値は9003−8000=1003である。
ビデオフレームとの出力開始タイミングをあわせる為に、オーディオフレーム21中のオーディオ先頭PTS:7000から8000までの音声データは、無効データ21aに書き換えられる。オーディオフレーム21のPTS:8000以降のデータは、有効データ21bである。
さらに、オーディオフレームごとのオーディオPTSの値には、ビデオ出力開始PTSと出力VSYNCタイミング時のSTCとの差分値「1003」が加算される。
なお、オーディオの先頭のフレームデータから8000−7000=1000(単位は90KHz)分のデータに関しては、下記の計算にて、何サンプル分のデータになるかを算出することで無効データ21aに書き換えることが可能である(無効データとは、音声の出力に影響のしない、例えばNULLデータなどを指す)。
ビデオ先頭PTSからオーディオ先頭PTSを減算し、減算結果に「オーディオサンプリング周波数/1秒間のPTS増加数」を乗算することで、無効データとすべきオーディオデータのサンプリング数を計算できる。図9の例では、以下のような値となる。
無効データサンプル数=(8000−7000)×48000/90000=533
このように、オーディオのキャプチャが先に行われた場合、ビデオデータのビデオ出力開始PTSを表示するSTC以降に音声出力が開始される。その結果、映像と音声は、正確に同時に出力開始される。しかも、ビデオフレームの出力開始時のPTSと出力VSYNCタイミングのSTCとの差分値によってオーディオPTSを補正することで、ビデオ・オーディオの同期のとれた出力が行われる。
次に、ビデオストリームのみ、あるいはオーディオストリームのみの場合の出力例を説明する。
PTS制御部250は、タイマによって、デコーダ装置200へのストリーム入力が、ビデオストリームのみかオーディオストリームのみかを判定することができる。タイマは装置内部でカウントアップを可能とし、カウントアップ周期および判定に必要な閾値は、任意に設定可能である。
PTS制御部250にて、ビデオストリームおよびオーディオストリームのどちらか一方のPTS受信後、タイマが判定に必要な閾値を超えた(タイムアウトした)場合は、受信済みの出力部にて、タイムアウト時のSTCの値を取得する。そして、単独のストリームとしてSTCに同期した出力を適用させる。
図10は、ビデオストリームのみが入力されたときの出力例を示す図である。ビデオストリームが入力され、所定時間経過してもオーディオストリームが入力されなければ、ビデオデータのみの出力が行われる。ビデオデータは、VSYNCに同期して出力される。
図11は、オーディオストリームのみが入力されたときの出力例を示す図である。オーディオストリームが入力され、所定時間経過してもビデオストリームが入力されなければ、オーディオデータのみの出力が行われる。オーディオデータは、VSYNCに関係なく、オーディオPTSで示される値にSTCが達したときに出力される。
なお、ビデオストリーム入力のみにより、ビデオフレーム出力を開始している状態で、一定時間経過後(判定に必要な閾値以内)、オーディオストリームが入力された場合は、ビデオフレームの出力開始PTSとVSYNCのタイミング時のSTCとの差分値をオーディオフレームのPTSに加算する。これにより、ビデオ出力途中からのビデオ・オーディオの同期出力が可能となる。
逆の入力ケースとして、例えば、オーディオストリーム入力のみにより、オーディオフレーム出力を開始している状態で、一定時間経過後(判定に必要な閾値以内)、ビデオストリームが入力された場合は、各々の出力タイミングでSTC同期して出力するか、オーディオ出力を一度仕切りなおしてビデオ・オーディオの同期出力を行う。いずれの方式とするかは、伝送システムの運用形態に応じて容易に対応可能とする。
次に、上記処理を実現するPTS制御部250の内部構造について説明する。
図12は、PTS制御部の内部構造を示すブロック図である。PTS制御部250は、タイマ251、PTS判定部252、同期方式判定部253、およびPTS差分情報抽出部254を有している。
タイマ251は、PTS判定部252からの指示に従って時間計測を開始する。タイマ251が計測した時間は、PTS判定部252から参照可能である。
PTS判定部252は、ビデオ先頭PTSとオーディオ先頭PTSとの入力を受け付ける。PTS判定部252は、ビデオ先頭PTSとオーディオ先頭PTSとのいずれか一方が入力されると、タイマ251による時間計測を開始する。また、PTS判定部252は、入力されたPTSを同期方式判定部253に通知する。その後、PTS判定部252は、タイマを監視する。タイマ251による時間計測開始から所定の閾値以上待っても、他方のPTSが入力されなかった場合、PTS判定部252は、タイムアウト情報を同期方式判定部253に通知する。時間計測開始から所定時間経過前に、他方のPTSが入力された場合、PTS判定部252は、遅れて受信したPTSを同期方式判定部253に通知する。
同期方式判定部253は、STCラッチ回路223経由で現在のSTCを取得する。さらに、同期方式判定部253は、タイムアウト情報が入力されると、取得したSTC値と通知されたPTSからビデオ出力開始PTS、またはオーディオ出力開始PTSとを決定する。同期方式判定部253は、PTS判定部252からビデオ先頭PTSとオーディオ先頭PTSのいずれか一方を受け取り、タイムアウト前に他方のPTSを受け取ると、現在のSTC、オーディオ先頭PTS、およびビデオ先頭PTSから出力開始PTSを決定する。出力開始PTSが決定されると、同期方式判定部253は、ビデオ出力開始PTSを画像出力部260に対して出力し、オーディオ出力開始PTSを音声出力部270に対して出力する。
また、同期方式判定部253は、ビデオ出力開始PTSと出力時のSTC(ビデオ出力開始PTSが付与されたビデオフレームのVSYNCに同期させた出力時のSTC)を、PTS差分情報抽出部254へ通知する。
PTS差分情報抽出部254では、ビデオ出力開始PTSと、そのビデオ出力開始PTSのビデオフレームを表示可能なSTCとの差分値を算出し、オーディオ復号部240へ通知する。すると、オーディオ復号部240において通知された値がオーディオフレームのPTSに加算され、オーディオフレームが音声出力部270に送信される。
このようにして、PTS制御が可能となる。
なお、PTS制御部250は、マイクロコンピュータによって実現することもできる。以下、マイクロコンピュータで実現したPTS制御部の例を説明する。
図13は、マイクロコンピュータで実現したPTS制御部の例を示す図である。PTS制御部250aは、CPU256、ROM257、RAM258、および入出力インタフェース259を有している。
CPU256は、PTS制御部250a全体を制御する。また、CPU256は、ROM257に予め格納されたプログラムに従って、図6に示された処理を実行する。なお、CPU256は、処理の中間データなどは、一時的にRAM258に格納する。さらに、CPU256は、処理に必要な入力値を入出力インタフェース259経由で受け取り、処理結果の出力値を入出力インタフェース259経由で出力する。
ROM257は、図6に示した処理をCPU256に実行させるためのプログラムが格納されている。タイマによる時間計測の閾値も、ROM257に予め格納されている。
RAM258は、CPU256の演算のためのワークメモリとして使用される。例えば、CPU256がタイマ機能によって時間計測を行う場合、時間を示す値が適宜RAM258に格納される。時間を示す値は、CPU256によって随時更新される。
入出力インタフェース259は、外部の回路とのデータの入出力を行う回路である。入出力インタフェース259には、ビデオ復号部230からビデオ先頭PTSが入力され、オーディオ復号部240からオーディオ先頭PTSが入力される。また、PTS制御部250には、STCラッチ回路223からSTCが入力される。入出力インタフェース259からオーディオ復号部240へは、差分値が出力される。また、入出力インタフェース259から画像出力部260へビデオ出力開始PTSが出力され、音声出力部270へオーディオ出力開始PTSが出力される。
なお、PTS制御部250aが有すべき機能の処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するデコーダ装置は、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、デコーダ装置は、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、デコーダ装置は、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、デコーダ装置は、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
符号の説明
1 時刻情報発生手段
2a ビデオ復号手段
2b 画像出力手段
3a オーディオ復号手段
3b 音声出力手段
4a 差分値計算手段
4b オーディオ出力時刻補正手段
5a タイムアウト判定手段
5b 出力開始時刻決定手段
6a ビデオストリーム
6b ビデオデータ
7a オーディオストリーム
7b オーディオデータ
8 同期信号

Claims (5)

  1. ストリームデータに基づいて映像と音声とを出力するためのデコーダ装置において、
    ビデオフレームごとの画像の出力時刻を示すビデオ出力時刻情報が付与されたビデオデータを符号化したビデオストリームと、オーディオフレームごとの音声の出力時刻を示すオーディオ出力時刻情報が付与されたオーディオデータを符号化したオーディオストリームとの少なくとも一方、および該ビデオ出力時刻情報と該オーディオ出力時刻情報との生成基準に用いられた基準時刻参照値を含むシステムストリームが入力されると、該システムストリームに含まれる該基準時刻参照値に基づいて、時間と共に値が増加する基準時刻情報を生成する時刻情報発生手段と、
    前記システムストリームにビデオストリームが含まれる場合、入力されたビデオストリームを復号してビデオデータを生成ビデオデータに付与されたビデオ出力時刻情報を抽出し、該ビデオストリームの先頭のビデオデータに付与されたビデオ出力時刻情報を、ビデオ先頭時刻情報として抽出するビデオ復号手段と、
    前記システムストリームにオーディオストリームが含まれる場合、入力されたオーディオストリームを復号してオーディオデータを生成し、該オーディオデータに付与されたオーディオ出力時刻情報を抽出し、該オーディオストリームの先頭のオーディオデータに付与されたオーディオ出力時刻情報を、オーディオ先頭時刻情報として抽出するオーディオ復号手段と、
    回路から画像の出力周期で出力される同期信号の発生時における前記基準時刻情報の値からビデオ出力時刻情報を減算した差分値を計算する差分値計算手段と、
    前記差分値計算手段で計算された前記差分値を、オーディオデータそれぞれに付与されたオーディオ出力時刻情報に加算するオーディオ出力時刻補正手段と、
    前記ビデオ先頭時刻情報と前記オーディオ先頭時刻情報との値を比較し、前記ビデオ先頭時刻情報の値の方が大きければ、前記ビデオ先頭時刻情報で示される時刻をオーディオ出力開始時刻と決定する出力開始時刻決定手段と、
    記同期信号が発生するごとに、前記同期信号の発生時における前記基準時刻情報の値を含む、画像の出力周期分の長さの時間帯を特定し、該時間帯内のビデオ出力時刻情報が付与された1つのビデオデータで示される画像を出力する画像出力手段と、
    復号されたオーディオデータをバッファに蓄積し、前記基準時刻情報で示される時刻が前記オーディオ出力開始時刻により前の時刻を示すオーディオ出力時刻情報が付与されたオーディオデータを、該バッファ内で無効なデータに置き換え、前記基準時刻情報の値と補正後の前記オーディオ出力時刻情報の値とが一致したときに、一致した前記オーディオ出力時刻情報が付与されたオーディオデータで示される音声を出力する音声出力手段と、
    を有することを特徴とするデコーダ装置。
  2. 前記出力開始時刻決定手段は、前記オーディオ先頭時刻情報の値の方が大きければ、前記オーディオ先頭時刻情報より大きな値で最小のビデオ出力時刻情報の時刻をビデオ出力開始時刻と決定し、
    前記画像出力手段は、前記ビデオ出力開始時刻より小さい値のビデオ出力時刻情報が付与されたビデオデータから生成した画像を無効なデータに置き換えることを特徴とする請求項1記載のデコーダ装置。
  3. 前記出力開始時刻決定手段は、前記オーディオ先頭時刻情報の値の方が大きければ、前記ビデオ出力開始時刻と同じ時刻をオーディオ出力開始時刻と決定する請求項2記載のデコーダ装置。
  4. 前記ビデオ先頭時刻情報と前記オーディオ先頭時刻情報とのいずれか一方の情報が抽出されてからの経過時間を計測し、他方の情報が抽出される前に前記経過時間が所定の閾値を超えた場合にはタイムアウトと判定し、タイムアウトと判定された場合、前記ビデオ先頭時刻情報のみが抽出されていればビデオ単独出力と決定し、前記オーディオ先頭時刻情報のみが抽出されていればオーディオ単独出力と決定するタイムアウト判定手段をさらに有し、
    前記画像出力手段は、ビデオ単独出力と決定されると、ビデオデータで示される画像の出力を開始し、
    前記音声出力手段は、オーディオ単独出力と決定されると、オーディオデータで示される音声の出力を開始する、
    ことを特徴とする請求項2または3のいずれかに記載のデコーダ装置。
  5. ストリームデータに基づいてデコーダ装置により映像と音声とを出力するためのデコード方法において、
    ビデオフレームごとの画像の出力時刻を示すビデオ出力時刻情報が付与されたビデオデータを符号化したビデオストリームと、オーディオフレームごとの音声の出力時刻を示すオーディオ出力時刻情報が付与されたオーディオデータを符号化したオーディオストリームとの少なくとも一方、および該ビデオ出力時刻情報と該オーディオ出力時刻情報との生成基準に用いられた基準時刻参照値を含むシステムストリームが入力されると、該システムストリームに含まれる該基準時刻参照値に基づいて、時間と共に値が増加する基準時刻情報を生成し、
    前記システムストリームにビデオストリームが含まれる場合、入力された該ビデオストリームを復号してビデオデータを生成し、該ビデオデータに付与されたビデオ出力時刻情報を抽出し、該ビデオストリームの先頭のビデオデータに付与されたビデオ出力時刻情報を、ビデオ先頭時刻情報として抽出し、
    前記システムストリームにオーディオストリームが含まれる場合、入力された該オーディオストリームを復号してオーディオデータを生成し、該オーディオデータに付与されたオーディオ出力時刻情報を抽出し、該オーディオストリームの先頭のオーディオデータに付与されたオーディオ出力時刻情報を、オーディオ先頭時刻情報として抽出し、
    回路から画像の出力周期で出力される同期信号の発生時における前記基準時刻情報の値からビデオ出力時刻情報を減算した差分値を計算し、
    前記差分値計算手段で計算された前記差分値を、オーディオデータそれぞれに付与されたオーディオ出力時刻情報に加算し、
    前記ビデオ先頭時刻情報と前記オーディオ先頭時刻情報との値を比較し、前記ビデオ先頭時刻情報の値の方が大きければ、前記ビデオ先頭時刻情報で示される時刻をオーディオ出力開始時刻と決定し、
    前記同期信号が発生するごとに、前記同期信号の発生時における前記基準時刻情報の値を含む、画像の出力周期分の長さの時間帯を特定し、該時間帯内のビデオ出力時刻情報が付与された1つのビデオデータで示される画像を出力し、
    復号されたオーディオデータをバッファに蓄積し、前記基準時刻情報で示される時刻が前記オーディオ出力開始時刻により前の時刻を示すオーディオ出力時刻情報が付与されたオーディオデータを、該バッファ内で無効なデータに置き換え、前記基準時刻情報の値と補正後の前記オーディオ出力時刻情報の値とが一致したときに、一致した前記オーディオ出力時刻情報が付与されたオーディオデータで示される音声を出力する、
    ことを特徴とするデコード方法。
JP2009529888A 2007-08-27 2007-08-27 デコーダ装置、およびデコード方法 Active JP4983923B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/066557 WO2009028038A1 (ja) 2007-08-27 2007-08-27 デコーダ装置、およびデコード方法

Publications (2)

Publication Number Publication Date
JPWO2009028038A1 JPWO2009028038A1 (ja) 2010-11-25
JP4983923B2 true JP4983923B2 (ja) 2012-07-25

Family

ID=40386782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009529888A Active JP4983923B2 (ja) 2007-08-27 2007-08-27 デコーダ装置、およびデコード方法

Country Status (4)

Country Link
US (1) US8526501B2 (ja)
JP (1) JP4983923B2 (ja)
KR (1) KR101132043B1 (ja)
WO (1) WO2009028038A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101138396B1 (ko) 2007-09-11 2012-04-26 삼성전자주식회사 Iptv 단말기에서 컨텐츠 재생 방법 및 장치
US20120281704A1 (en) * 2011-05-02 2012-11-08 Butterworth Ashley I Methods and apparatus for isochronous data delivery within a network
US9762774B2 (en) 2011-08-12 2017-09-12 Samsung Electronics Co., Ltd. Receiving apparatus and receiving method thereof
KR101917174B1 (ko) 2012-02-24 2018-11-09 삼성전자주식회사 전자 장치 사이의 스트림 전송 방법 및 그 방법을 처리하는 전자 장치
WO2013145225A1 (ja) * 2012-03-29 2013-10-03 富士通株式会社 エレメンタリストリームをエンコードし、多重し、またはデコードするための方法、装置、およびプログラム
US20160006946A1 (en) * 2013-01-24 2016-01-07 Telesofia Medical Ltd. System and method for flexible video construction
US9674539B2 (en) * 2013-03-14 2017-06-06 Infocus Corporation Concurrent decompression of multiple video streams with constrained decompression resources
US9591358B2 (en) * 2013-03-15 2017-03-07 Intel Corporation Media playback workload scheduler
CN104811782B (zh) * 2014-01-29 2018-03-02 晨星半导体股份有限公司 同步影音码流的解码器与解码方法
CN106658065B (zh) * 2015-10-30 2021-10-22 中兴通讯股份有限公司 音视频同步方法、装置及系统
CN106385628A (zh) * 2016-09-23 2017-02-08 努比亚技术有限公司 一种分析音视频不同步的装置及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07170490A (ja) * 1993-10-14 1995-07-04 Victor Co Of Japan Ltd 画像の表示時刻情報をもデータとして含む圧縮画像データと、それに付随する圧縮音響データとの同期再生方法
JP2000115772A (ja) * 1998-08-31 2000-04-21 Lucent Technol Inc マルチメディアの再生システムにおけるディジタルのビデオおよびオ―ディオの再生の適応型同期化のための方法および装置
JP2002176643A (ja) * 2000-12-06 2002-06-21 Hitachi Kokusai Electric Inc 映像・音声復号処理における映像・音声の同期再生方式
JP2003309781A (ja) * 2002-04-15 2003-10-31 Tektronix Japan Ltd 自動リップ・シンク・エラー補正器及び補正方法
JP2004357267A (ja) * 2002-07-31 2004-12-16 Fujitsu Ltd 動画再生装置及び動画再生方法
JP2006148335A (ja) * 2004-11-17 2006-06-08 Sony Corp データ処理装置、その方法及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0965303A (ja) 1995-08-28 1997-03-07 Canon Inc 映像音声同期方法及び装置
US6148135A (en) * 1996-01-29 2000-11-14 Mitsubishi Denki Kabushiki Kaisha Video and audio reproducing device and video decoding device
JP3698376B2 (ja) * 1996-08-19 2005-09-21 松下電器産業株式会社 同期再生装置
US7103668B1 (en) * 2000-08-29 2006-09-05 Inetcam, Inc. Method and apparatus for distributing multimedia to remote clients

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07170490A (ja) * 1993-10-14 1995-07-04 Victor Co Of Japan Ltd 画像の表示時刻情報をもデータとして含む圧縮画像データと、それに付随する圧縮音響データとの同期再生方法
JP2000115772A (ja) * 1998-08-31 2000-04-21 Lucent Technol Inc マルチメディアの再生システムにおけるディジタルのビデオおよびオ―ディオの再生の適応型同期化のための方法および装置
JP2002176643A (ja) * 2000-12-06 2002-06-21 Hitachi Kokusai Electric Inc 映像・音声復号処理における映像・音声の同期再生方式
JP2003309781A (ja) * 2002-04-15 2003-10-31 Tektronix Japan Ltd 自動リップ・シンク・エラー補正器及び補正方法
JP2004357267A (ja) * 2002-07-31 2004-12-16 Fujitsu Ltd 動画再生装置及び動画再生方法
JP2006148335A (ja) * 2004-11-17 2006-06-08 Sony Corp データ処理装置、その方法及びプログラム

Also Published As

Publication number Publication date
KR20100030663A (ko) 2010-03-18
JPWO2009028038A1 (ja) 2010-11-25
WO2009028038A1 (ja) 2009-03-05
US20100142624A1 (en) 2010-06-10
KR101132043B1 (ko) 2012-04-02
US8526501B2 (en) 2013-09-03

Similar Documents

Publication Publication Date Title
JP4983923B2 (ja) デコーダ装置、およびデコード方法
US8620134B2 (en) Video and audio reproducing apparatus and video and audio reproducing method for reproducing video images and sound based on video and audio streams
US8195024B2 (en) Stream generating apparatus, imaging apparatus, data processing apparatus and stream generating method
US20090116814A1 (en) Reproducer, portable telephone, and reproducing method
CN101710997A (zh) 基于mpeg-2系统实现视、音频同步的方法及系统
US10224055B2 (en) Image processing apparatus, image pickup device, image processing method, and program
JP2011501489A (ja) オーディオ・ビデオレンダリングの早期開始システム及び方法
JP2009272945A (ja) 同期再生装置
JP2008079114A (ja) 同期再生システム
JP2006287642A (ja) Mpegコンテンツの同期再生方法、クライアント端末、mpegコンテンツの同期再生プログラム
JP5642319B2 (ja) デジタルデータ配信装置及び方法、及びデジタルデータ再生装置及び方法、同期再生システム、プログラム、並びに記録媒体
JP2002354419A (ja) 記録再生装置および方法、記録媒体、並びにプログラム
JP2008245061A (ja) Ipストリーム伝送におけるpcr再生方式
JP2002176643A (ja) 映像・音声復号処理における映像・音声の同期再生方式
KR100523761B1 (ko) 다중 입출력 지원 실시간 콘텐츠 제작 및 인터넷 방송 데이터 편집장치 및 방법
JP2005151434A (ja) 受信装置および方法、記録媒体、並びにプログラム
US10262690B2 (en) Signal processing device, signal processing system, signal processing method, and program
JP3671969B2 (ja) データ多重方法及び多重データ復号方法
JPH099215A (ja) データ多重方法、データ伝送方法、及び多重データ復号方法、多重データ復号装置
JP4390666B2 (ja) 圧縮映像データ及び圧縮音声データの復号再生方法及び復号再生装置
JP2004248104A (ja) 情報処理装置及び情報処理方法
JP2005102193A (ja) コンテンツ受信装置、ビデオオーディオ出力タイミング制御方法及びコンテンツ提供システム
JP2005102192A (ja) コンテンツ受信装置、ビデオオーディオ出力タイミング制御方法及びコンテンツ提供システム
US20180139474A1 (en) Data processing device, data processing method, and program
JP2012109655A (ja) メディア受信装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120227

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: 20120327

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120409

R150 Certificate of patent or registration of utility model

Ref document number: 4983923

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3