(57)【特許請求の範囲】
【請求項１】
第１の時刻を計時する第１クロック生成手段と、
第２の時刻を計時する第２クロック生成手段と、
ストリームデータからメディアデータと再生時刻を示す時刻情報を分離する分離手段と、
前記第１クロック生成手段が計時する第１の時刻にしたがって、前記分離手段を動作させる分離制御手段と、
前記分離手段が分離したメディアデータと時刻情報とを対応付けて記憶する記憶手段と、
前記第２クロック生成手段が計時する第２の時刻にしたがって、前記記憶手段が記憶するメディアデータを読み出して復号する復号手段と、
この復号手段が読み出したメディアデータに対応付けられた時刻情報と前記記憶手段に記憶されているメディアデータから求めた補正値とに基づいて、前記第１クロック生成手段が計時する第１の時刻を制御するクロック制御手段とを具備し、
前記分離手段は、ストリームデータからオーディオデータとビデオデータと、これらの
メディアデータにそれぞれ対応する再生時刻を示す時刻情報とを分離し、
前記記憶手段は、前記分離手段が分離したオーディオデータとビデオデータと、これら
のメディアデータにそれぞれ対応する再生時刻を示す時刻情報とを対応付けて記憶し、
前記クロック制御手段は、前記復号手段が読み出したオーディオデータに対応付けられ
た時刻情報に基づいて、前記第１クロック生成手段が計時する第１の時刻を制御する
ことを特徴とする再生装置。
【請求項２】
前記クロック制御手段はさらに、前記復号手段が読み出した最新のメディアデータに対応付けられた時刻情報に基づいて、前記第１クロック生成手段が計時する第１の時刻を制御することを特徴とする請求項１に記載の再生装置。
【請求項３】
ストリームデータからメディアデータと再生時刻を示す時刻情報を分離する分離手段と、
分離用に計時された第１の時刻にしたがって、前記分離手段を動作させる分離制御手段と、
前記分離手段が分離したメディアデータと時刻情報とを対応付けて記憶する記憶手段と、
この記憶手段から復号のために読み出されたメディアデータに対応付けられた時刻情報と前記記憶手段に記憶されているメディアデータから求めた補正値とに基づいて、前記第１の時刻を制御する制御信号を出力するクロック制御手段とを具備し、
前記分離手段は、ストリームデータからオーディオデータとビデオデータと、これらのメディアデータにそれぞれ対応する再生時刻を示す時刻情報とを分離し、
前記記憶手段は、前記分離手段が分離したオーディオデータとビデオデータと、これらのメディアデータにそれぞれ対応する再生時刻を示す時刻情報とを対応付けて記憶し、
前記クロック制御手段は、復号のために読み出されたオーディオデータに対応付けられた時刻情報に基づいて、前記第１の時刻を制御する制御信号を出力する
ことを特徴とする分離回路。
【請求項４】
前記クロック制御手段はさらに、復号のために読み出された最新のメディアデータに対応付けられた時刻情報に基づいて、前記第１の時刻を制御する制御信号を出力することを特徴とする請求項３に記載の分離回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば複数のメディアデータが多重化されたパケットデータを再生する再生装置および分離回路に関する。
【背景技術】
【０００２】
周知のように、例えば地上波デジタル放送などでは、複数のメディアデータを多重化したTS(Transport Stream)パケットで伝送するようにしている。そして、その再生装置においては、TS分離部がTSパケットから各メディアのデータを分離し、A/Vデコーダがデコードする。その際、１つのシステムクロック（STC：System Time Clock）をTS分離部とA/Vデコーダが共有することで、分離処理とA/Vデコード処理が同期を取りながら動作する（例えば、非特許文献１参照）。
【０００３】
しかしながら、A/VデコーダがTS分離部から独立しており、自身が持つ独自のシステムクロックに基づいて動作する再生装置がある。このような再生装置では、TS分離部とA/Vデコーダがシステムクロックを共有しないため、両者の間で同期をとることが不可能となる。また、TS分離部においては、A/Vデコーダのクロックの推移がわからないため、再生の進捗時刻についてもTS分離部やアプリケーション側で再生の進捗を把握することができないという問題があった。
【非特許文献１】亀山渉、花村剛監修、「改訂版  デジタル放送教科書  上」、インプレス、２００４年１０月、ｐ８５−８７）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の再生装置では、A/VデコーダがTS分離部とは別のシステムクロックに基づいて動作する場合、両者の間で同期をとることが不可能となるという問題があった。  
この発明は上記の問題を解決すべくなされたもので、A/VデコーダがTS分離部とは別のシステムクロックに基づいて動作する場合でも、両者の間の誤差を修正して安定した再生を行うことが可能な再生装置および分離回路を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記の目的を達成するために、この発明は、第１の時刻を計時する第１クロック生成手段と、第２の時刻を計時する第２クロック生成手段と、ストリームデータからメディアデータと再生時刻を示す時刻情報を分離する分離手段と、第１クロック生成手段が計時する第１の時刻にしたがって、分離手段を動作させる分離制御手段と、分離手段が分離したメディアデータと時刻情報とを対応付けて記憶する記憶手段と、第２クロック生成手段が計時する第２の時刻にしたがって、記憶手段が記憶するメディアデータを読み出して復号する復号手段と、この復号手段が読み出したメディアデータに対応付けられた時刻情報と記憶手段に記憶されているメディアデータから求めた補正値とに基づいて、第１クロック生成手段が計時する第１の時刻を制御するクロック制御手段とを具備して構成するようにした。
【発明の効果】
【０００６】
この発明によれば、A/VデコーダがTS分離部とは別のシステムクロックに基づいて動作する場合でも、両者の間の誤差を修正して安定した再生を行うことが可能な再生装置および分離回路を提供できる。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照して、この発明の一実施形態について説明する。  
図１は、この発明の一実施形態に係わる再生装置の構成を示すものである。この再生装置は、地上波デジタル放送を受信可能な携帯電話機、ＤＶＤレコーダ、ハードディスクレコーダ、カーナビゲーションシステムなどに搭載することが可能であり、図１には図示しないが、地上波デジタル放送を受信するチューナ（受信機）を備える。
【０００８】
記憶部１００は、例えばフラッシュメモリや、ＤＶＤなどの光学メディアへの記録装置、ハードディスクなどであって、上記チューナで受信したトランスポートストリーム・パケット（以下、TSパケットと略称する）をファイルとして記憶（記録）する。
【０００９】
制御部２００は、当該再生装置の各部を統括して制御するものであって、図示しないユーザインタフェースを通じたユーザからの要求に応じて、アプリケーションソフトウェア２０１を実行し、このソフトウェアに従って動作する。搭載するアプリケーションソフトウェアとしては、種々のものが考えられるが、以下の説明では、上記ファイルの再生出力に関するアプリケーションソフトウェア２０１にしたがって動作する場合について説明する。そして制御部２００は、ユーザからユーザインタフェースを通じて指定されたファイルを記憶部１００から順次読み出し、これをTS分離部３００に出力する。
【００１０】
TS分離部３００は、TSバッファ（TS Buffer）３０１と、TSパケット（TS Packet）部３０２と、字幕・データ分離部３０３と、オーディオTS（Audio TS）分離部３０４と、ビデオTS（Video TS）分離部３０５と、オーディオバッファ（Audio Buffer）３０６と、ビデオバッファ（Video Buffer）３０７と、PTS(Presentation Time Stamp)監視部３０８と、STC(System Time Clock)決定部３０９と、動作制御部３１２と、PCR(Program Clock Reference)分離部３１０と、クロック（Clock）制御部３１１とを備える。
【００１１】
TSバッファ３０１は、制御部２００から与えられるTSパケットを一時的に記憶し、その後、後述する動作制御部３１２の制御によって記憶したTSパケットが読み出される。読み出されたTSパケットは、TSパケット部３０２に出力される。
【００１２】
TSパケット部３０２は、TSバッファ３０１から読み出されたTSパケットに含まれるPID（Packet identifier）を検出し、これに基づいてTSパケットに含まれるデータの種別を判定する。そして、この判定結果に応じて、上記TSパケットを字幕・データ分離部３０３、オーディオTS分離部３０４、ビデオTS分離部３０５およびPCR分離部３１０のうち、対応するものに出力する。
【００１３】
字幕・データ分離部３０３は、上記PIDが字幕TSやデータ放送用セクションTSを示す場合に、TSパケット部３０２からTSパケットが与えられる。PIDが字幕TSである場合には、TSパケットを分離後字幕PESを構築した後、PESヘッダからPTSを取出すと共にPESペイロード部の字幕ESデータを抽出する。一方、PIDがデータ放送用セクションTSを示す場合には、データ放送用セクションデータが分離される。セクションデータにはPTSはなく、分離されたデータ放送用セクションデータに基づいて必要なデータが構築できると、PTSに依存しないことから直ぐに処理が行われる。分離した字幕ESやデータ放送用セクションデータは、制御部２００に出力される。
【００１４】
これに対して制御部２００は、上記アプリケーションソフトウェアにしたがって、例えば字幕TSが入力された場合には、これとともに入力されたPTSと、後述するクロック生成部６００が生成するSystem Time Clock（以下、STCと略称する）とに基づいて、字幕TSを所期のタイミングでデコードし、字幕表示領域などに表示する。
【００１５】
同様に、データ放送用セクションデータが入力された場合には、制御部２００は、上記アプリケーションソフトウェアにしたがって、データ放送用セクションデータを構築する毎に処理がなされ、例えば構築されたデータがブラウザデータ等であればブラウザ表示領域などに表示する。
【００１６】
オーディオTS分離部３０４は、TSパケット部３０２から与えられたオーディオTSパケットを分離する。オーディオTSパケットは、オーディオES(Elementary Stream)を所望のデータ長毎に分けたものにPTS等のヘッダ情報を付加したものをPESパケットデータとし、このPESパケットを固定長に分割しTSヘッダを付加したものである。従ってオーディオTS分離部３０４によるオーディオTSパケットの分離処理は、TSパケットからヘッダを取り除いたものを結合してPESパケットを構築し、その後、PESヘッダからPTSを取得すると共にPESヘッダを取り除いてESデータを取り出し、これをオーディオバッファ３０６に出力する。  
ビデオTS分離部３０５は、TSパケット部３０２から与えられたビデオTSパケットを分離する。ビデオTSパケットは、ビデオES(Elementary Stream)を所望のフレーム（AU:アクセスユニット）毎に分けたものにPTS等のヘッダ情報を付加したものをPESパケットデータとし、このPESパケットを固定長に分割しTSヘッダを付加したものである。従ってビデオTS分離部３０５によるビデオTSパケットの分離処理は、TSパケットからヘッダを取り除いたものを結合してPESパケットを構築し、その後、PESヘッダからPTSを取得すると共にPESヘッダを取り除いてビデオESデータを取り出し、これをビデオバッファ３０７に出力する。１つのPESが1フレーム(AU)で構成される場合は、取り出したESはフレーム(AU)単位のデータで各フレーム(AU)にPTSが対応している。これに対して、１つのPESが複数フレーム(AU)で構成される場合は、取り出したPESデータから更に１フレーム(AU)単位に分けたものをデコーダに渡す1単位とし、PESヘッダに続くフレーム(AU)以外はPTSを0とする。
【００１７】
オーディオバッファ３０６は、オーディオTS分離部３０４から与えられるPTS（以下、PTS(A)と称する）とオーディオESデータ、並びにESデータ格納位置とサイズを対応付けて一時的に記憶し、後述するA/Vデコーダ４００から要求されるサンプル単位で、記憶しているオーディオESデータおよびPTS(A)を古いものから順に記憶してある格納位置からサンプルサイズ分ずつA/Vデコーダ４００に出力する。すなわち、オーディオバッファ３０６は、FIFO(First-In First-Out)の構成を取っている。またオーディオバッファ３０６は、A/Vデコーダ４００に出力したオーディオESデータに対応付けて記憶したPTS(A)をPTS監視部３０８に出力する。
【００１８】
ビデオバッファ３０７は、ビデオTS分離部３０５から与えられるPTS（以下、PTS(V)と称する）とビデオESデータ、並びにESデータ格納位置とサイズとを対応付けて一時的に記憶し、後述するA/Vデコーダ４００から要求されるサンプル単位で、記憶しているビデオESデータおよびPTS(V)を古いものから順に記憶してある格納位置からサンプルサイズ分ずつA/Vデコーダ４００に出力する。すなわち、ビデオバッファ３０７は、FIFO(First-In First-Out)の構成を取っている。またビデオバッファ３０７は、A/Vデコーダ４００に出力したビデオESデータに対応付けて記憶したPTS(V)をPTS監視部３０８に出力する。
【００１９】
A/Vデコーダ４００は、オーディオデコーダおよびビデオデコーダとしての機能を備え、オーディオESデータを記憶する内部バッファと、ビデオESデータを記憶する内部バッファをそれぞれ備える。
【００２０】
そしてA/Vデコーダ４００は、オーディオバッファ３０６やビデオバッファ３０７が記憶するESデータおよびPTS(A)、PTS(V)を読み込んでそれぞれ対応する内部バッファに記憶し、内部バッファに記憶したESデータをデコードする。そして、A/Vデコーダ４００は、各内部バッファの空き状態などに応じて、さらにオーディオバッファ３０６やビデオバッファ３０７が記憶するESデータおよびPTS(A)、PTS(V)を内部バッファに読み込んでデコードするといった動作を繰り返す。
【００２１】
またA/Vデコーダ４００は、オーディオESおよびビデオESデータのデコード後、デコーダド用に設けられたクロック生成部５００が生成するD-System Time Clock（以下、D-STCと略称する）と、読み込んだオーディオESデータおよびビデオESデータのPTS（PTS(A)およびPTS(V)）が示すタイミングとを監視して、両ESデータをそれぞれ所期のタイミングでAudio/Video出力部に対して出力する。これにより、オーディオ信号とビデオ信号が適切なタイミングで出力される。図１では、クロック生成部５００は、A/Vデコーダ４００とは別個に設けられているが、A/Vデコーダ４００内に備えられた構成であってよい。
【００２２】
PTS監視部３０８は、オーディオバッファ３０６からA/Vデコーダ４００に出力されたオーディオESデータのPTS(A)と、ビデオバッファ３０７からA/Vデコーダ４００に出力されたオーディオESデータのPTS(V)をそれぞれ１サンプル分記憶する。すなわち、オーディオバッファ３０６やビデオバッファ３０７から最後にA/Vデコーダ４００に出力されたESデータのタイムスタンプPTS(A)、PTS(V)を記憶する。
【００２３】
STC決定部３０９は、PTS監視部３０８が記憶するPTS(A)、PTS(V)に基づいて、A/Vデコーダ４００が利用するシステムタイムクロックD-STCの進捗状況を計算して推定値ED-STCを求める。この推定値ED-STCは、クロック制御部３１１と動作制御部３１２に出力される。なお、具体的には、以下のような計算により求める。
【００２４】
PTS(A),PTS(V)の値が更新されるタイミングおよびこれに対応するESデータがデコードして再生されるまでの時間は、A/Vデコーダ４００が持つ内部バッファの大きさによって決まる。ここで、オーディオデコーダで用いる内部バッファのバッファ量（時間）をα(msec)とし、ビデオデコーダで用いるバッファ量（時間）をβ(msec)とすると、A/Vデコーダ４００のシステムタイムクロックD-STCの推定値ED-STCは、以下のようにあらわすことができる。
【００２５】
ED-STC = PTS(A)−α  …  （１）
ED-STC = PTS(V)−β  …  （２）
なお、α、βはA/Vデコーダ４００の仕様で決まる値である。また定常的にデコードが行われる状態においては、オーディオ／ビデオともにA/Vデコーダ４００の内部バッファは満たされた状態となっており、デコードにより内部バッファのデータが１サンプル分消費されることで、１サンプル分の空きが生じ、TS分離部３００から取り込むことができる。
【００２６】
したがって、定常的にデコードが行われる状態においては、ビデオESデータについては、15fpsであれば約66msec間隔で更新されることとなり、オーディオESデータについてはサンプリングレートから決まるフレーム間隔に応じた時間で更新されることとなるため、この範囲の誤差は生じるものの、上記計算式（１）、（２）を用いてED-STCを推定することが可能である。
【００２７】
なお、通常は、オーディオの方が細かいサンプル間隔であるため、STC決定部３０９は、計算式(１)を用いるだけでもよいが、STC決定部３０９は、計算式(１)と(２)を両方用いて、更に細かく更新タイミングをトレースしてもよい。
【００２８】
図２に、計算式(１)と(２)を選択的に用いて、ED-STCを推定する処理の一例について説明する。  
まずステップ２ａにおいてSTC決定部３０９は、ファイルの先頭のESデータがオーディオバッファ３０６あるいはビデオバッファ３０７からA/Vデコーダ４００に読み込まれたか否かを判定する。ここで、まだESデータがA/Vデコーダ４００に読み込まれていない場合には、ステップ２ｅに移行し、一方、ESデータがすでに読み込まれた場合には、ステップ２ｂに移行する。
【００２９】
ステップ２ｂにおいてSTC決定部３０９は、PTS監視部３０８が記憶するPTSのうち、最後に更新されたPTSがPTS(A)であるか否かを判定する。ここで、PTS(A)の場合には、ステップ２ｃに移行し、一方、PTS(A)ではない、すなわちPTS(V)の場合には、ステップ２ｄに移行する。
【００３０】
ステップ２ｃにおいてSTC決定部３０９は、計算式（１）に基づき、PTS(A)を用いて、A/Vデコーダ４００のシステムタイムクロックD-STCの推定値ED-STCを求め、この値をクロック制御部３１１と動作制御部３１２に出力して、当該処理を終了する。
【００３１】
ステップ２ｄにおいてSTC決定部３０９は、計算式（２）に基づき、PTS(V)を用いて、A/Vデコーダ４００のシステムタイムクロックD-STCの推定値ED-STCを求め、この値をクロック制御部３１１と動作制御部３１２に出力して、当該処理を終了する。
【００３２】
ステップ２ｅにおいてSTC決定部３０９は、PTS(A)およびPTS(V)のいずれも取得できないため、A/Vデコーダ４００のシステムタイムクロックD-STCの推定は行わず、当該処理を終了する。
【００３３】
PCR分離部３１０は、PIDがPCR(Program Clock Reference)パケットを示す場合に、TSパケット部３０２からTSパケットが与えられる。PCR分離部３１０は、与えられたTSパケットからPCRを分離し、これをクロック制御部３１１および動作制御部３１２に出力する。
【００３４】
クロック制御部３１１は、PCR分離部３１０で分離したPCRに基づいてクロック生成部６００が生成するSTCを制御する。ただし、クロック制御部３１１は、STC決定部３０９から推定値ED-STCが入力される場合には、クロック生成部６００が生成するSTCが、クロック生成部５００が生成するD-STCに追従するように、上記PCRに代わって推定値ED-STCに基づいてクロック生成部６００が生成するSTCを制御する。
【００３５】
なお、クロック制御部３１１は、クロック生成部５００に、PCRあるいは推定値ED-STCに基づく制御信号をクロック生成部６００に出力することで、クロック生成部５００が生成するSTCを制御する。すなわち、クロック生成部５００は、クロック制御部３１１から与えられる制御信号に基づいてSTCを生成する。
【００３６】
動作制御部３１２は、TS分離部３００の各部を統括して制御して、当該TS分離部３００による分離処理を進行させるものであって、クロック生成部６００が生成したSTCを参照しながら動作する。また動作制御部３１２は、PCR分離部３１０で分離したPCRと、STC決定部３０９で求めた推定値ED-STCとを比較して、記憶部１００から読み出したTSの分離処理の進捗状況（分離処理の進み過ぎなど）を判断し、この判断結果に応じて各部を制御して分離処理を進行させる。
【００３７】
なお、STC決定部３０９による推定値ED-STCの算出は、クロック生成部５００が生成するSTCに基づいて、予め設定した周期毎に行ってもよいし、PTS監視部３０８が記憶するタイムスタンプPTS(A)、PTS(V)が更新される度に実行するようにしてもよい。すなわち、これらのタイミングで、例えば図２に示したフローを実行するようにしてもよい。
【００３８】
以上のように、上記構成の再生装置では、A/Vデコーダ４００がオーディオバッファ３０６あるいはビデオバッファ３０７から読み出したESデータに対応するPTSから、A/Vデコーダ４００が用いるシステムタイムクロックD-STCを推定し、この推定した推定値ED-STCに基づいて、TS分離部３００などが用いるシステムタイムクロックSTCを制御するようにしている。
【００３９】
したがって、上記構成の再生装置によれば、TS分離部３００などが用いるシステムタイムクロックSTCと、A/Vデコーダ４００が用いるシステムタイムクロックD-STCが独立して発振されたものであっても、両者の間の誤差を修正して安定した再生を行うことができる。
【００４０】
なお、この発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また上記実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【００４１】
その一例として例えば、上記実施の形態では、記憶部１００に蓄積したTSパケットを再生する場合を例に説明したが、記憶部１００には蓄積せずに、チューナで受信したTSパケットを再生する場合にも適用でき、同様の効果を得られる。  
その他、この発明の要旨を逸脱しない範囲で種々の変形を施しても同様に実施可能であることはいうまでもない。
【図面の簡単な説明】
【００４２】
【図１】この発明に係わる再生装置の一実施形態の構成を示す回路ブロック図。
【図２】図１に示した再生装置のSTC決定部の動作を説明するためのフローチャート。
【符号の説明】
【００４３】
１００…記憶部、２００…制御部、２０１…アプリケーションソフトウェア、３００…TS分離部、３０１…TSバッファ、３０２…TSパケット部、３０３…字幕・データ分離部、３０４…オーディオTS分離部、３０５…ビデオTS分離部、３０６…オーディオバッファ、３０７…ビデオバッファ、３０８…PTS監視部、３０９…STC決定部、３１０…PCR分離部、３１１…クロック制御部、３１２…動作制御部、４００…A/Vデコーダ、５００…クロック生成部６００…発振器。
【図１】
0004935655.tif 000002
【図２】
0004935655.tif 000003