(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
1.実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0017】
〔1〕<コンテンツ出力装置(遅延量の開始値と終了値)>
本願において開示される代表的な実施の形態に係るコンテンツ出力装置は、以下のように構成される。入力されるコンテンツから、映像データと、音声データと、前記映像データと前記音声データに付されたタイムスタンプ(PTS)と、共通時間情報(PCR)とを抽出し、抽出された共通時間情報に基づいて、時間経過とともに変化するローカル共通時間情報(PCR_local)を管理する。
【0018】
抽出された映像データと音声データを遅延量に基づいてそれぞれ一時的に蓄積するバッファ(111、112)を備える。
【0019】
前記バッファに蓄積された前記コンテンツの映像データのうち、付されたタイムスタンプに前記遅延量を加えた時刻が前記ローカル共通時間情報と一致または経過した映像データを出力し、前記バッファに蓄積された前記コンテンツの音声データのうち、付されたタイムスタンプに前記遅延量を加えた時刻が前記ローカル共通時間情報と一致または経過した音声データを出力する。
【0020】
前記バッファに新たなコンテンツが入力されたときに、遅延量を所定の開始値に設定し、その後、時間経過とともに徐々に前記遅延量を増加させ、前記遅延量が所定の終了値に達したときに、前記遅延量の前記増加を停止する。
【0021】
これにより、マルチメディア処理に対応するために、十分に大きなサイズのバッファリングを行うときにも、装置の起動時やコンテンツ切替え時において、ユーザを長く待たせることなく、かつ、ユーザに違和感を与えない程度の任意の再生レートで、映像と音声を同期させたスロー再生を行うことができる。遅延量を増加させる割合は、極めて小さい値まで任意に設定することができるので、ユーザに違和感を与えない程度に調整することが容易となる。なお、上記「一致」の用語は、本技術分野で実用上許容される誤差、例えば、ユーザが不一致を知覚することができない程度の誤差を許容するものである。
【0022】
〔2〕<装置構成>
項1において、前記コンテンツ出力装置は、放送されたコンテンツを受信可能な放送受信部(101)と、ストリーム解析部(102)と、映像制御部(103)と、映像再生部(105)と、表示出力部(107)と、音声制御部(104)と、音声再生部(106)と、音声出力部(108)とを備える。
【0023】
前記バッファは、前記映像制御部に含まれ映像データを蓄積する映像バッファ(111)と、前記音声制御部に含まれ音声データを蓄積する音声バッファ(112)とで構成される。
【0024】
前記放送受信部は、入力されるコンテンツから定期的に抽出される共通時間情報(PCR)を、時間経過とともにカウントアップし、前記共通時間情報により間欠的に較正することにより、前記ローカル共通時間情報を管理する。
【0025】
前記映像制御部は、前記映像バッファに蓄積された前記コンテンツの映像データのうち、付されたタイムスタンプ(PTS)に前記遅延量を加えた時刻が前記ローカル共通時間情報と一致または経過した映像データを、前記映像再生部を経由して前記表示出力部に出力する。
【0026】
前記音声制御部は、前記音声バッファに蓄積された前記コンテンツの音声データのうち、付されたタイムスタンプ(PTS)に前記遅延量を加えた時刻が前記ローカル共通時間情報と一致または経過した音声データを、前記音声再生部を経由して前記音声出力部に出力する。
【0027】
前記放送受信部は、前記バッファに新たなコンテンツが入力されたときに、遅延量を前記開始値に設定し、その後、時間経過とともに徐々に前記遅延量を増加させ、前記遅延量が前記終了値に達したときに、前記遅延量の増加を停止する。
【0028】
これにより、項1のコンテンツ出力装置を、簡易に構成することができる。即ち、ローカル共通時間情報は、共通時間情報(PCR)が周期的に受信される毎に較正される。映像制御部と音声制御部は、共通の遅延量の分だけ遅れたデータを、映像再生部と音声再生部にそれぞれ出力する。映像制御部と音声制御部は、それぞれ独立に動作するが、映像データと音声データをバッファから読み出す遅延量は共通に管理されるので、映像と音声のスロー再生の再生レートは一致しており、映像と音声は同期(リップシンク)して再生出力される。
【0029】
〔3〕<ソフトウェア>
項2において、前記コンテンツ出力装置は、プロセッサ(203)とメモリ(211)を含んで構成される。前記映像制御部と前記音声制御部は、前記プロセッサ上で動作するソフトウェアによって構成され、前記映像バッファと前記音声バッファは、前記メモリ上に割り付けられる。
【0030】
これにより、項2のコンテンツ出力装置を、ソフトウェアを使って構成することができる。
【0031】
〔4〕<遅延量決定部>
項3において、前記コンテンツ出力装置は、前記プロセッサと前記メモリを使用する他のソフトウェアを有し、前記他のソフトウェアを実行するためのシステム負荷に基づいて、前記第1遅延量と前記第2遅延量のうちの一方または両方を調整する、遅延量決定部(401)をさらに備える。
【0032】
これにより、再生出力を開始するまでの待ち時間とバッファサイズのうちの一方または両方を調整することができる。第1遅延量(開始値)を減らすと再生出力を開始するまでの待ち時間を減らすことができ、ユーザの視認性の低下を抑えることができる。第2遅延量(終了値)を増やすとバッファサイズを大きくすることができ、スレッド遅延に対する耐性を高めることができる。
【0033】
〔5〕<LSI>
項3または項4において、前記コンテンツ出力装置を構成する、前記プロセッサを含む、少なくとも一部のハードウェアが、単一の半導体基板上に形成される。
【0034】
これにより、LSIに集積されたコンテンツ出力装置を提供することができる。
【0035】
〔6〕<コンテンツ出力プログラム(遅延量の開始値と終了値)>
本願において開示される代表的な実施の形態に係るプログラムは、コンテンツが入力される入力回路(202)とプロセッサ(203)とメモリ(211)を含んで構成されるデータ処理装置(200)において、前記プロセッサによって実行されることによって、前記入力回路に入力されるコンテンツから映像と音声を再生して出力するためのプログラムであって、以下のように構成される。
【0036】
前記入力回路に入力されるコンテンツから、映像データと、音声データと、前記映像データと前記音声データに付されたタイムスタンプ(PTS)と、共通時間情報(PCR)とを抽出し、抽出された共通時間情報に基づいて、時間経過とともに変化するローカル共通時間情報(PCR_local)を管理する。
【0037】
前記メモリ上に割り付けられ、抽出された映像データと音声データをそれぞれ一時的に蓄積するバッファ(111,112)を備える。
【0038】
前記バッファに蓄積された前記コンテンツの映像データのうち、付されたタイムスタンプに前記遅延量を加えた時刻が前記ローカル共通時間情報と一致または経過した映像データを出力し、前記バッファに蓄積された前記コンテンツの音声データのうち、付されたタイムスタンプに前記遅延量を加えた時刻が前記ローカル共通時間情報と一致または経過した音声データを出力する。
【0039】
前記バッファに新たなコンテンツが入力されたときに、前記遅延量を所定の開始値に設定し(S204)、その後、時間経過とともに徐々に前記遅延量を増加させ(S206)、前記遅延量が所定の終了値に達したときに、前記遅延量の増加を停止する(S205)。
【0040】
これにより、装置の起動時やコンテンツ切替え時に、マルチメディア処理に対応するために十分に大きなサイズのバッファリングを行うときにも、マルチメディア処理が可能なデータ処理装置において、ユーザを長く待たせることなく、かつ、ユーザに違和感を与えない程度の任意の再生レートで、映像と音声を同期させたスロー再生を行うことができるプログラムを提供することができる。
【0041】
〔7〕<プログラムの構成>
項6において、前記データ処理装置は、表示出力部(207)と音声出力部(208)とをさらに備える。前記プログラムは、ローカル共通時間情報管理フローと、遅延量制御フローと、映像再生制御フローと、音声再生制御フローとを含む。
【0042】
前記ローカル共通時間情報管理フローは、入力されるコンテンツから定期的に抽出される前記共通時間情報(PCR)を、時間経過とともにカウントアップし、前記共通時間情報により間欠的に較正することにより、前記ローカル共通時間情報(PCR_local)を管理する。
【0043】
前記映像再生制御フローは、前記バッファに蓄積された前記コンテンツの映像データのうち、付されたタイムスタンプに前記遅延量を加えた時刻が前記ローカル共通時間情報と一致または経過した映像データを、前記表示出力部に出力する(S213,S214)。前記音声再生制御フローは、また、前記バッファに蓄積された前記コンテンツの音声データのうち、付されたタイムスタンプに前記遅延量を加えた時刻が前記ローカル共通時間情報と一致または経過した音声データを、前記音声出力部に出力する(S213,S214)。
【0044】
前記遅延量制御フローは、前記バッファに新たなコンテンツが入力されたときに、前記遅延量を前記開始値に設定し(S204)、その後、時間経過とともに徐々に前記遅延量を増加させ(S206)、前記遅延量が前記終了値に達したときに、前記遅延量の増加を停止する(S205)。
【0045】
これにより、データ処理装置を項2のコンテンツ出力装置と同様に動作させるためのプログラムを提供することができる。
【0046】
〔8〕<遅延量決定部>
項6において、前記データ処理装置は、前記プロセッサと前記メモリを使用する他のプログラムを実行することができ、前記プログラムは、前記他のプログラムを実行するためのシステム負荷に基づいて、前記開始値と前記終了値のうちの一方または両方を調整する、遅延量決定部(401)をさらに備える。
【0047】
これにより、項4と同様の作用効果を奏するプログラムを提供することができる。
【0048】
〔9〕<スレッド>
項6から項8のうちのいずれか1項において、前記プログラムは複数のスレッドに分割されて実行される。
【0049】
これにより、スレッドの起動が待たされる場合がある、マルチメディア処理においても、項6〜項8の作用効果を奏するプログラムを提供することができる。
【0050】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0051】
〔実施形態1〕
図1は、実施形態1に係るコンテンツ出力装置100の構成例を示すブロック図である。
【0052】
コンテンツ出力装置100は、放送受信部101とストリーム解析部102と、映像制御部103と音声制御部104と、映像側と音声側それぞれのスロー再生機105と106と、映像を出力するための例えば液晶表示コントローラ(LCDC)107と、音声を出力するための例えばD/A変換器(DAC)108とを備えて構成される。
【0053】
放送受信部101では、デコード前に行うバッファリング時間の調整方法として遅延量を設ける。この遅延量に開始値と終了値を設け、時間経過とともに遅延量を徐々に増加させる。放送受信部101で取得(受信)したデータはストリーム解析部102を通じ、映像データは映像制御部103に、音声データは音声制御部104に、それぞれバッファリングされる。後述のように、遅延量の増加とともにバッファリング時間(出力遅延時間)が延びる為、映像制御部103および音声制御部104の出力段にそれぞれスロー再生機105と106を設け、増加させた出力遅延時間分相当の変換レートでスロー再生させる。映像制御部103および音声制御部104ではスロー再生機105と106からのフィードバック情報をもとにスロー再生の実行と停止を制御する。
【0054】
コンテンツ出力装置100の構成と動作について、より詳しく説明する。
【0055】
放送受信部101には、例えばディジタルテレビジョン放送などの、映像と音声を含むコンテンツが入力され、入力されたコンテンツをストリーム解析部102に供給する。放送受信部101は、例えばチューナが内蔵され、アンテナ113が接続される。チューナを外付けとし、映像と音声のコンテンツデータが入力されてもよい。コンテンツの入力方法は、放送には限定されず、ネットワークを介したストリーミングであってもよく、また、Blu−ray(登録商標)ディスクやDVDなどのパッケージメディアから入力されても良い。放送受信部101とストリーム解析部102は、一体として構成されてもよく、入力されるコンテンツから、映像データと、音声データと、前記映像データと前記音声データに付されたタイムスタンプ(PTS)と、共通時間情報(PCR)とを抽出し、抽出された共通時間情報に基づいて、時間経過とともに変化するローカル共通時間情報(PCR_local)を管理する。PCRは放送局から提示される現時刻情報であり、放送信号のプロトコルに則って間欠的に送信される。放送受信部101には、フリーランカウンタを備えて、ローカル共通時間情報(PCR_local)を管理する。ローカル共通時間情報(PCR_local)は、コンテンツ出力装置100が持つクロック信号等によって、時間経過とともに変化するように管理され、放送局からのPCRが受信される度に、その値を用いて較正される。ローカル共通時間情報(PCR_local)の管理方法は、特にこの方法に限定されるものではなく、放送局と共通の現時刻情報が、一定の誤差の範囲で管理されていればよい。例えば、パッケージメディアから入力されるコンテンツには、PCRとPTSは含まれていないが、再生装置において疑似的に発生させてもよく、更にはPCRとPTSを疑似的に発生させる機構を、放送受信部101に内蔵しても良い。PTSは、映像データまたは音声データを出力すべき時刻を示す時間情報である。現時刻情報、実際にはローカル共通時間情報(PCR_local)と一致したPTSを持つ、映像データと音声データが出力される。現時刻情報を基準として、映像と音声が同期して出力されることとなる。この映像と音声の同期は、リップシンクと呼ばれる。放送受信部101とストリーム解析部102は、抽出した映像データとそれに付されたPTSを、映像制御部103に供給し、抽出した音声データとそれに付されたPTSを、音声制御部104に供給する。
【0056】
映像制御部103は、映像バッファ111を備えて供給される映像データをバッファリング(蓄積)し、バッファリングされたデータを通常再生レートまたはスロー再生レートで読み出すスロー再生制御を行って、スロー再生機105に出力する。スロー再生機105からは、1フレーム毎に再生出力の完了報告がフィードバックされる。スロー再生機105からの出力は、液晶表示コントローラ(LCDC)107に供給され、外付けされる液晶表示装置(LCD)109に表示される。「液晶表示」は、再生された映像が出力される対象の装置の一例であって、他の表示装置であってもよい。
【0057】
これと同様に、音声制御部104は、音声バッファ112を備えて供給される音声データをバッファリングし、バッファリングされたデータを通常再生レートまたはスロー再生レートで読み出すスロー再生制御を行って、スロー再生機106に出力する。スロー再生機106からは、1フレーム毎に再生出力の完了報告がフィードバックされる。スロー再生機106からの出力は、D/A変換器(DAC)108に供給され、外付けされるスピーカ110に出力される。スピーカは、再生された音声が出力される対象の装置の一例であって、他の出力装置であってもよい。
【0058】
放送受信部101は、上述のように、入力されたコンテンツから抽出された共通時間情報(PCR)に基づいて、時間経過とともに変化するローカル共通時間情報(PCR_local)を管理している。放送受信部101は、さらに映像と音声の再生出力を制御するための、遅延量を管理している。チャンネル切替えなどによって、新たなコンテンツが入力されて、抽出した映像データと音声データをそれぞれ映像バッファ111と音声バッファ112にバッファリングするときには、遅延量を所定の開始値に初期化する。その後、時間経過とともに徐々に遅延量を増加させ、遅延量が所定の終了値に達したときに、遅延量の増加を停止する。
【0059】
映像制御部103は、映像バッファ111にバッファリングされた映像データのうち、付されたタイムスタンプ(PTS)に遅延量を加えた時刻がローカル共通時間情報(PCR_local)と一致または経過した映像データを、スロー再生機105によって再生し出力させる。音声制御部104は、音声バッファ112にバッファリングされた音声データのうち、付されたタイムスタンプ(PTS)に遅延量を加えた時刻がローカル共通時間情報(PCR_local)と一致または経過した映像データを、スロー再生機106によって再生し出力させる。
【0060】
図2は、コンテンツ出力装置100の動作例を示す説明図である。(a)は比較例として特許文献1に記載される動画出力装置による動作例を、(b)は本実施形態に係るコンテンツ出力装置100の動作例を、それぞれ模式的に表した図である。横軸は時間であり、再生、出力される音声と映像が示される。実際には音声と映像のフレームサイズは異なるが、理解を容易にするために、同じ長さであるものとして示される。
【0061】
本実施形態に係るコンテンツ出力装置100の動作例について、(b)を引用して説明する。入力されたコンテンツの先頭の映像データと音声データは、ローカル共通時間情報(PCR_local)が、その先頭のデータ(フレーム)に付されたタイムスタンプ(PTS)に遅延量の初期値である開始値を加えた時刻に達するまでは、再生出力されない。時刻t0において選局により、新規のコンテンツの入力が開始されたものとし、時刻t1までの期間、音声と映像はどちらも出力されない。時刻t1〜t9の期間に、遅延量は時間経過とともに徐々に増加されるので、映像制御部103と音声制御部104がその遅延量を使って上述の制御を行うことにより、映像と音声はスロー再生される。このときの再生レートは、遅延量を増加させるレートによって規定される。ローカル共通時間情報(PCR_local)と遅延量という、共通の基準に基づいて、映像と音声が再生出力されるので、映像と音声は互いに同期してスロー再生され出力される。遅延量が終了値に達して、放送受信部101が遅延量を増加させる処理を停止すると、それ以降(
図2では時刻t9以降)、映像制御部103と音声制御部104がその遅延量を使って上述の制御を行うことにより、映像と音声は通常レートで再生される。このときも、映像と音声の同期は保たれる。
【0062】
選局が行われた時刻t0から再生が開始される時刻t1まで期間、映像バッファ111と音声バッファ112の蓄積量は、入力されたデータ量に応じて増加する。時刻t1〜t9のスロー再生期間は、入力されるデータ量よりも再生出力されるデータ量が少ないので、バッファの蓄積量は徐々に増加する。時刻t9以降、通常レートでの再生が開始されると、入力されるデータ量と再生出力されるデータ量が等しくなり、バッファの蓄積量は一定に保たれる。マルチメディア処理に対応するために、十分に大きなサイズのバッファリングを行うときにも、装置の起動時やコンテンツ切替え時に、ユーザを長く待たせることなく、かつ、ユーザに違和感を与えない程度の任意の再生レートで、映像と音声を同期させたスロー再生を行うことができる。バッファ量が少ない期間から、映像と音声を同期したスロー再生が開始され、且つその再生レートは遅延量を徐々に増加する増分によって規定することができるので、ユーザに違和感を与えない程度の、通常レートに近いレートに任意に設定することができるからである。
【0063】
比較例(a)においては、映像は本実施形態と同様に、時刻t1〜t9の期間にはスロー再生され出力されるが、音声は時刻t2〜t9の期間に通常レートで再生される。このため、時刻t2〜t9の期間は、映像と音声は同期して再生出力されない。マルチメディア処理に対応するために、十分に大きなサイズのバッファリングを行うと、時刻t0〜t2の音声が出力されない無音の期間が長くなり、また、時刻t1〜t9の音声と映像が同期しない期間が長くなるので、ユーザに違和感を与えるおそれがある。
【0064】
上述のコンテンツ出力装置100のハードウェアとソフトウェアによる、より具体的な実装例について以下に詳しく説明する。以下の構成例は一例に過ぎず、これに制限されるものではない。
【0065】
図3は、コンテンツ出力装置100のハードウェアの構成例を示すブロック図である。コンテンツ出力装置100は、CPU(Central Processing Unit)などのプロセッサを内蔵するデータ処理装置200を含んで構成される。データ処理装置200は、例えば半導体集積回路(LSI:Large Scale Integrated circuit)であり、チューナ201とアンテナ113、ICカード210、メモリ211、LCD109、及び、スピーカ110が外付けされる。データ処理装置200は、CPU203、デマルチプレクサ(DEMUX)202、ICカードインターフェース(SIM)204、ダイレクトメモリアクセスコントローラ(DMAC)205、メモリインターフェース206、MPEGデコーダ209、表示出力モジュール207、及び、音声出力モジュール208を含んで構成される。それらは、例えばそれぞれがデータバス212を含む共通バスに接続され、CPU203からアクセスされることができ、CPU203によって制御される。
【0066】
チューナ201とDEMUX202により、上述の放送受信部101とストリーム解析部102のハードウェアが構成され、映像バッファ111と音声バッファ112は、メモリ211に割り付けられる。DMAC205は、CPU203を介さず直接に、メモリ間、或いは、メモリマップされたメモリ空間領域間のデータ転送を行う。MPEGデコーダは、入力されるコンテンツをMPEG(Motion Picture Element Group)の規格に準拠するデコーダである。ソフトウェアによって実装することも可能であるが、規格に準拠する定形の処理であるので、専用ハードウェアによって実装される。表示出力モジュール207は例えばLCDコントローラ107であり、音声出力モジュール208は、例えばDAC108である。CPU203は、例えばICカード210に格納されるプログラムをメモリ211に読み込んで実行することにより、上述の動作を行う。放送受信部101、ストリーム解析部102、映像制御部103、及び、音声制御部104の動作は、CPU203によるソフトウェア処理によって実装されることができる。ICカード210に代えて、外付けまたは内蔵される不揮発性メモリを備えてもよい。また、外付けされるメモリ211に代えて、内蔵されバス212に接続されるRAM(Random Access Memory)を備えてもよい。
【0067】
ディジタルテレビジョン放送がアンテナ113で受信されチューナ201で選局されて、放送コンテンツとしてDEMUX203に入力される。チューナ201とDEMUX203のハードウェア処理に加え、CPU203がソフトウェア処理を行うことにより、映像データと音声データと、それらにそれぞれ付されたタイムスタンプ(PTS)と、共通時間情報(PCR)とを抽出し、抽出されたPCRに基づいて、時間経過とともに変化するローカル共通時間情報(PCR_local)を管理する。抽出された映像データと音声データは、付されているPTSとともに、メモリ211に割り付けられた映像と音声のバッファ111と112にバッファリングされる。再生される映像データは、メモリ211から読み出されてMPEGデコーダ209で復号され、表示出力モジュール207を介してLCD109に出力され、表示される。再生される音声データは、メモリ211から読み出されてCPU203による所定の復号処理が行われ、音声出力モジュール208を介してスピーカ110に出力される。CPU203は、後述の遅延制御を実行することにより遅延値の制御を行い、また後述のスロー再生制御を実行することにより、遅延値に基づくスロー再生を行いまたは通常レートでの映像と音声の再生出力を行う。
【0068】
図4は、コンテンツ出力装置100のソフトウェア300の構成例を示す階層構造図である。例えば、アプリケーション層310とOS・ユーザ層320とドライバ層330の3層を含んで構成される。アプリケーション層310には、ナビゲーション(Navi Application)やDTV/DVD(DTV/DVD Application)、その他のLinuxアプリケーション(Linux Applications)が含まれる。OS・ユーザ層320には、ユーザライブラリ(ユーザLIB)の他、マルチメディアミドルウェア、ディジタルテレビジョン用インターフェース制御を行うモジュール(DVT-IF)、メディアフレームワーク層にありメディア基本機能群の制御を行うモジュール(EMF)、表示制御管理機能を持つモジュール(DCM)、音声制御管理機能を持つモジュール(ACM)等が含まれる。ドライバ層330には、標準ドライバの他、マルチメディアIP(Intellectual Property)系ドライバ、SSP(Stream and Security Processor)、SCU(Sampling rate Converter Unit)に含まれるSRC(Sampling Rate Conversion)ドライバ(SCU/SRC)等が含まれる。さらに、デバッグ時に使用されるオンボードデバイスドライバ(On-Board Device Driver)を含んで構成しても良い。マルチメディアミドルウェアとユーザライブラリ(ユーザLib)、マルチメディアIP系ドライバは、例えばマルチメディアパッケージとして提供され、DTV−IF,EMF,ACM,DCM,SSP,SCU/SRCは、例えばLinux版フルセグソフトウェアパッケージとして提供される。放送受信部101とストリーム解析部102は、DTV−IFとEMFの機能の一部として、映像制御部103とスロー再生機105はEMFとDCMの機能の一部として、音声制御部104とスロー再生機106はEMFとACMの機能の一部としてそれぞれ実装され、Linux版フルセグソフトウェアパッケージ302またはそれに組み込まれるオプションとして提供されることができる。
【0069】
このように、データ処理装置200には、使用目的や機能が異なり、提供元も異なるソフトウェアパッケージ301、302等が、複数組み込まれて実行されるので、複数のプログラムに由来する複数のスレッドが並列に動作することとなる。このため、映像や音声などのリアルタイム性を要求される処理を実行するスレッドであっても、起動待ち時間が長くなる場合がある。そのような事態が想定される場合には、映像バッファ111と音声バッファ112などのバッファのサイズを大きくし、バッファリングされるデータの蓄積量を多くすることにより、スレッドの待ち時間に対する耐性を高めることができる。一方、選局などにより新規のコンテンツの入力が開始されたときに、バッファへのバッファリング量が、スレッドの起動待ち時間を考慮して規定された大きな蓄積量になるまで、音声と映像の再生出力を待つとすると、ユーザにとっては無音や無表示の期間が長くなり、違和感となってしまう。そこで、上述の本実施形態のように構成することにより、このような課題が解決される。
【0070】
図5は、実施形態1に係るコンテンツ出力装置100の遅延制御フローの構成例を示すフローチャートである。
【0071】
放送受信部101で、データを取得(受信)すると(S201)、初回データ取得済みかの判定を行う(S202)。ここで、初回データとは、コンテンツ出力装置100が起動され、または、選局によってそれまで受信されていたチャンネルとは異なるチャンネルのコンテンツが受信されて新たに入力される場合の、先頭フレームのデータを指す。起動時、選局時等の初回データ取得は以下のように判定する。
【0072】
図6は、コンテンツを構成するパケットの構成を示す説明図である。共通時間情報となるPCRと映像データ(Video)と音声データ(Audio)が、順次送信(放送)されている。起動時、即ち、出力開始要求時、あるいは選局時のユーザ操作が時刻t0に行われ、その後時刻t1に共通時間情報となるPCRを取得(受信)すると、初回データを取得したとする。即ち、選局(時刻t0)後、最初に取得(受信)したPCRに続く映像データと音声データが初回データとされる。
【0073】
初回データが取得済みとなるまで、データ取得(受信)ステップ(S201)を繰り返す。初回データが取得済みとなった後に、遅延量の初期化判定を行う(S203)。未初期化の場合は、遅延量に予め定められた開始値と終了値を設定する(S204)。初回は遅延量は開始値に初期化され、それ以降は遅延量の設定は行わない。次に、遅延量の加算判定を行う(S205)。遅延量が終了値未満の場合は、遅延量に増分αを加算する(S206)。既に終了値まで加算済みの場合は、遅延量に増分αを加算しない。なお、増分αは100μs等の時間に対応するカウンタ値となっており、増分αはユーザに違和感の与えない程度の例えば通常再生の再生レートに対して0.1%等の補正比率を設定する。次に、データ取得(受信)ステップ(S201)に戻る。
【0074】
図7は、コンテンツ出力装置100のスロー再生制御フローの構成例を示すフローチャートである。
【0075】
映像制御部103と音声制御部104は、それぞれバッファリング完了判定(S209)を行う。初回データの出力時刻、即ち初回データに付されたタイムスタンプ(PTS)に、上述の遅延量制御フローで制御されている遅延量を加算した値が、現時刻情報、即ち放送受信部101で管理されているローカル共通時間情報(PCR_local)より小さな値になると、バッファリング完了となる。ただし、バッファリング完了となった後も、入力されるコンテンツの映像データと音声データのバッファリングは、そのまま継続される。バッファリングが完了すると、映像制御部103と音声制御部104は、それぞれ1フレーム分の復号を行う(S210)。同期出力判定(S211)を行った後、スロー再生実施判定(S212)を行う。同期出力判定(S211)は、出力時刻(PTS)+遅延量と現時刻情報(PCR_local)との差が、予め規定された閾値(例えば数フレーム)を超える場合は、復号ステップ(S210)を繰り返し、その差が閾値に満たない場合には、スロー再生実施判定(S212)に進む。取得(受信)したデータの出力時刻(PTS)に前記遅延量を加算した値より、現時刻情報(PCR_local)の値が小さい場合はスロー再生出力を行い(S213)、概ね等しい場合は通常出力を行う(S214)。上述の遅延量制御フローによって遅延量が徐々に加算されている(S206)期間には、出力時刻(PTS)と遅延量の和は、その加算された分だけ現時刻情報(PCR_local)よりも大きいので、スロー再生実施判定(S212)において、スロー再生出力側(S213)に分岐する。その後、遅延量制御フローによって遅延量が終了値に達して加算がされなくなると、出力時刻(PTS)と遅延量の和は、現時刻情報(PCR_local)と概ね等しくなるので、スロー再生実施判定(S212)において、通常再生出力側(S214)に分岐する。スロー再生機105と106は、1フレームのスロー再生出力あるいは通常出力が完了すると、それぞれ映像制御部103と音声制御部104に1フレーム出力が終了したことをフィードバックし(S215)、次のフレームの復号(S210)に戻る。ここで、出力時刻は、次に復号されるフレームに付されたタイムスタンプ(PTS)に更新される。
【0076】
以上の説明では、映像のためのスロー再生制御フローと音声のためのスロー再生制御フローとを合わせて説明したが、これらは並列して独立に動作する。映像と音声とではフレームサイズが必ずしも同じではないので、独立に動作するように構成される方が好適である。独立に動作しながらも、共通の現時刻情報(PCR_local)と共通の遅延値によって、各フレームの出力時刻が規定されるので、再生される映像と音声は互いに同期(リップシンク)する。
【0077】
図8は、コンテンツ出力装置100の動作におけるバッファ蓄積量の変化を示すグラフである。(a)は遅延量が固定される、コンテンツ出力装置100におけるバッファ蓄積量の変化を、比較例として示したグラフであり、(b)は遅延量が上述の遅延量制御フローによって制御される、本実施形態のコンテンツ出力装置100の動作におけるバッファ蓄積量の変化を示すグラフである。
【0078】
比較例(a)では、遅延量はt0〜t1の期間に相当する値に固定されている。選局等が行われた時刻t0から、固定値である遅延量に対応したバッファ量を蓄積した時刻t1までの期間の後、通常レートでの再生を開始する。このため、遅延量に比例して、出力開始遅延時間が長くなる。
【0079】
これに対して本実施形態(b)では、遅延量として時刻t1よりも早い時刻t2に相当する開始値を設け、出力開始時に蓄積するバッファ量を少なくして、出力開始遅延時間を短くすることができる。その後、所定のバッファ蓄積量になるまでの期間(時刻t2〜t3)、スロー再生を行なう。出力開始後、遅延量増加及びスロー再生の組み合わせを用いてバッファの入力量を出力量より増やすことで、バッファ蓄積量を増加させる。徐々に増加された遅延量が終了値に達したとき(時刻t3)に、スロー再生を停止させて通常再生に移行することにより、バッファの入力量と出力量は定常となり、バッファ蓄積量はある程度一定の量に保たれる。
【0080】
図9は、コンテンツ出力装置100のスロー再生制御フローの動作例を示す説明図である。横軸を経過時間として1フレーム毎の遅延量を出力順にCnt1、Cnt2、Cnt3として示す。Cnt1の時点で出力するフレームでは遅延量をDelay Cnt1とし、放送局提示の出力時刻(PTS1)(時刻t1)から遅延量Delay Cnt1経過後の時刻t4に、実際の出力(Output1)を行う。放送局から提示されるPTS1(時刻t1)とPTS2(時刻t2)は1フレームの差分となっている。一方、実際に出力されるOutpu1(時刻t4)とOutput2(時刻t7)は1フレーム+αの差分になっている。これは、遅延量をα増加させることにより、Output1にて出力するフレームを1フレーム+αの長さでスロー再生していることを示している。同様にCnt3の時点(時刻t3)では、PTS2(時刻t2)とPTS3(時刻t3)の差分が1フレーム分であり、Output2(時刻t6)とOutput3(時刻t8)の差が1フレーム+αとなっており、同じ補正比率にてスロー再生出力される。
【0081】
以上のように、フレーム自体の長さに関わらず、遅延量の値によって、スロー再生の再生レートを規定する補正比率が規定される。そのため、フレームサイズが互いに異なる映像と音声とをそれぞれに独立にスロー再生制御しても、同じ再生レートで再生することができる。また、出力時刻の基準を、映像と音声とで共通に現時刻情報(PCR_local)とすることにより、映像と音声を同期(リップシンク)させることができる。
【0082】
以上説明してきたように、本実施形態では、時間経過とともに増加させる遅延量の開始値を小さくし、終了値までスロー再生を行うことにより、プログラム起動時およびチャネル切替時に映像と音声の同期をとりつつ、出力開始時間を早くすることができる。
【0083】
〔実施形態2〕
図10は、実施形態2に係るコンテンツ出力装置100の構成例を示すブロック図である。
図1に示される実施形態1に係るコンテンツ出力装置100に対して、遅延量決定部401をさらに備える。遅延量決定部401は、放送受信部402に接続される。遅延量決定部401は、システム負荷の状態等により、遅延量の開始値及び終了値を算出する。例えば、システム負荷が高い場合は、終了値に大きな値を設定し、バッファリング量を増加させる。放送受信部402は、遅延量の初期化時に開始値及び終了値を遅延量決定部401に問い合わせ、遅延量の開始値及び終了値を決定する。これ以外の構成については、
図1に示される実施形態1に係るコンテンツ出力装置と同様であるので、説明を省略する。
【0084】
図11は、実施形態2に係るコンテンツ出力装置の遅延制御フローの構成例を示すフローチャートである。
図5に示される実施形態1に係るコンテンツ出力装置の遅延量制御フローに対して、遅延量初期化判定ステップ(S203)の後、遅延量の開始値と終了値を設定するステップ(S204)の前に、遅延量の開始値と終了値を遅延量決定部401から取得するステップ(S207)が追加される。放送受信部402は、遅延量の初期化判定を行い(S203)、初期化が必要となった場合は、遅延量決定部401から遅延量の開始値及び終了値を取得する(S207)。放送受信部402は、取得した遅延量の開始値と終了値を設定し(S204)、また、取得した終了値を遅延量加算判定(S205)に利用する。他の各ステップは
図5を引用して既に説明したのと同様であるので、説明を省略する。また、
図7を引用して説明したスロー再生制御フローについても、そのまま本実施形態に適用することができる。スロー再生制御フローは、
図7を引用して既に説明したのと同様であるので、説明を省略する。
【0085】
マルチメディア処理において、スレッドの優先順位を決めないで使うことがある。その時、各スレッドの起動が遅れることがある為、適度なバッファ蓄積量を決めることが難しい。本実施形態2では、出力開始遅延時間が規定する遅延量の開始値と、最終的なバッファ蓄積量を規定する遅延量の終了値を、それぞれ遅延量決定部402から取得する。最適な開始出力遅延時間及びバッファ蓄積量を決定することにより、ユーザの視認性を低下させることなく、スレッド遅延に対する耐性を高める効果がある。
【0086】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0087】
例えば、実施形態についての説明で規定した、各機能ブロックは、統合されても良いし、複数の機能ブロックに分散されてもよい。また、ソフトウェアによって実現されてもハードウェアによって実装されてもよい。ソフトウェアによって実現される場合に、そのソフトウェアが実行されるプラットフォームは、
図3に例示されるデータ処理装置200以外のアーキテクチャのプラットフォームに変更されてもよい。例えば、複数のプロセッサを内蔵し、キャッシュメモリを含むメモリを内蔵し、さらに階層化されたバス構造を有するなど、異なるアーキテクチャを備えるデータ処理装置に変更されてもよい。