説明

メディアストリームコンポーネントの同期

ブロードキャストメディアストリームの複数のコンポーネントを同期させる方法であって、ブロードキャストメディアストリームの複数のコンポーネントに関するデータサンプルのストリームをバッファし、複数の情報パケットをバッファするステップ(18)であって、複数のコンポーネントの各々に関するデータサンプルのストリームが、相対タイミング情報を含み、各情報パケットが、前記コンポーネント内の相対タイミング情報と絶対時間との間の関係を示すタイミング情報を含む、ステップと、複数のコンポーネントの各々に関するタイミング情報を抽出するために、バッファされた情報パケットに対してルックアヘッドアクションを実施するステップ(16)と、前記複数のコンポーネントを同期させるために、前記抽出されたタイミング情報及び相対タイミング情報を使用するステップ(16)と、を含む方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オーディオ及びビデオのようなメディアストリームのコンポーネントの同期に関し、具体的には、デジタルビデオブロードキャスティング−ハンドヘルド(DVB―H)システムにおけるコンポーネントの同期に関する。
【背景技術】
【0002】
デジタルビデオブロードキャスティング−ハンドヘルド(DVB―H)は、テレビジョン放送及び他のビデオ及びオーディオストリームを、持ち運び可能な(モバイル)又はハンドヘルドの装置に提供するための標準である。
【0003】
DVB―Hにおいて、時間スライスが使用されており、これは、それぞれ異なるサービス(すなわち異なるTVチャンネル)が、個々の時間「スライス」又はバーストで送信されることを意味する。図1は、例示のDVB―H送信構造を示す。この例では、DVB―Hトランスポートストリーム2は、2Mbpsで送信され、500kbpsの平均ビットレートを各々がもつ4つの異なるサービスを含む。時間スライシングの結果として、各サービスは、4分の1の時間に2Mbpsの最大ビットレートで送信される。従って、単一のサービスを使用する受信装置は、時間の75%の最中、DVB―H受信機を不活性にすることができる。このように、時間スライシングは、受信装置の電力消費を低減するために、DVB―Hにおいて使用されている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
図1に示すように、DVB―Hストリームにおいて、オーディオ及びビデオ情報は、リアルタイムトランスポートプロトコル(RTP)を使用して、それぞれ225.0.0.1:4000及び225.0.0.1:5000と示される別々のストリームを介して(及び特にユーザデータグラムプロトコル(UDP)ソケットで)送られる。このプロトコルは、マルチメディアセッションのそれぞれ異なるメディアコンポーネント(例えばビデオ及びオーディオ)が、それぞれ異なるチャネル/ルート(例えばテレビ会議のマイクロホン及びカメラのような異なるソースからおそらく到来する)を介してトランスポートされることができるように、設計される。RTPを使用する場合、ブロードキャストオーディオ及びビデオストリームが数秒も同期がずれることが起こりうる。
【0005】
従って、オーディオ及びビデオストリームは、リップシンク問題を回避するために、受信装置において時間的に同期されなければならない。ビデオストリーム及びオーディオストリームの間のわずかなずれでさえ、ユーザによって知覚されることができる。
【0006】
DVB―Hブロードキャストに関する2つの別個の同期問題がある。第1の同期問題は、ユーザが受信されるサービスを選択し又は変更する(すなわち、ユーザが、受信装置を起動させ又は図1の「サービス1」から「サービス2」へ切り替える)際に生じる。この場合、受信装置は、新しいサービスに変更して、新しいビデオ及びオーディオストリームを同期させなければならない。この同期には数秒かかることがあり、これは、新しいサービスが提供される前に、ユーザにとって遅延があることを意味する。ビデオ及びオーディオストリームに加えて、同期される必要がある他のコンポーネント(例えばグラフィクス又は字幕)もありうる。
【0007】
第2の問題は、ビデオストリーム及びオーディオストリームの間の同期が、ある時間にわたってドリフトする可能性がありえ、修正される必要がありうることである。
【0008】
RTPにおいて、これらの同期問題は、オーディオ及びビデオストリームに加えて送られるパケットRTP制御プロトコル(RTCP)センダレポートパケットを使用することにより緩和される。図1に示すように、各ビデオ及びオーディオストリームは、RTCPセンダリポートパケットを含むそれぞれのストリームと対にされ、ストリーム225.0.0.1:4001は、ビデオストリーム225.0.0.1:4000に関するRTCPセンダリポートパケット4を運び、ストリーム225.0.0.1:5001は、オーディオストリーム225.0.0.1:5000に関するRTCPセンダリポートパケット6を運ぶ。
【0009】
しかしながら、この図から、ビデオ及びオーディオストリームが最初に受信されると、ストリームが同期されることができるようになる(図1において「同期ポイント」と示される)前に、RTCPセンダリポートパケットが、オーディオ及びビデオストリームの各々について受信されるまで待つ必要があることが理解されうる。
【0010】
RTCP仕様に従うRTCPセンダリポートパケットの一般的な構造が、図2に示されている。パケットは、使用されるプロトコルのバージョン(V)、パディングインジケータビット(P)、パケット内の受信リポートブロックの数(RC)、パケットタイプ(PT―すなわちセンダリポートSR)、32ビットワード内のパケットの長さ、及びセンダリポートパケットのソースのための同期ソース識別子(SSRC)を指定するヘッダセクションを含む。パケットは、更に、64ビットネットワークタイムプロトコル(NTP)タイムスタンプ(本明細書において絶対時間と呼ばれる)、ビデオ又はオーディオストリーム内のRTPデータパケットの最初のオクテットのサンプリング時間を反映するRTPタイムスタンプ、センダリポートの送信までにセンダによって送信されるRTPデータパケットの総数を示すセンダパケットカウント、及びセンダリポートの送信までにセンダによって送信されるペイロードオクテットの総数を示すセンダオクテットカウント、を指定するセンダ情報セクションを含む。
【0011】
あらゆるRTPデータパケットは、RTPデータパケット内の最初のオクテットのサンプリング時点から経過した時間を示すRTPタイムスタンプを運ぶ。RTPタイムスタンプは、通常、特定のメディアストリーム(すなわちビデオ又はオーディオ)に特有であり、タイムスタンプのインクリメントを計数するための個々の始点及び周波数を使用する。従って、異なるオーディオ及びビデオストリームは、RTPタイムスタンプについて同じ時間ベース(すなわちクロック周波数及び開始オフセット)を使用しないので、それらは直接比較できない。
【0012】
こうして、あらゆるオーディオ及びビデオRTPストリームは、上述したようにRTCPパケットを含む個々のストリームと対にされる。図2に示すように、これらのRTCPセンダリポートパケットは、異なる時間ベースであるが、同じ時間を表現するNTPタイムスタンプ及びRTPタイムスタンプを含む。NTPタイムスタンプは、それぞれ異なるメディアコンポーネント(例えばオーディオ及びビデオ)の全てについて同一であるので、ストリームのすべてを同期させることは単純明快である。特に、プレゼンテーションタイムスタンプ(PTS)が、タイミング情報を使用して各コンポーネントについて計算される。PTSは、当該データサンプルがバッファから取り出され、復号化され、ユーザに提示される時間を示す。
【0013】
DVB−Hアプリケーションにおいて、RTCPパケットは5秒ごとに送信されることが推奨される。しかしながら、サービスの変更が行われる場合、これは、次のRTCPパケットが受け取られる前に最大5秒かかることを意味し、オーディオ及びビデオストリームのRTPタイムスタンプは、タイミング情報を使用して互いに関連付けられることができる。これは、オーディオ及びビデオストリームが、サービスの選択は変更後の最初の最大5秒間は同期があわないことがあることを意味する。
【0014】
更に、ブロードキャストの間、新しいRTCPセンダリポートパケットが受け取られ、同期を修正する必要があると判断される場合、調整又は修正は、提示されたオーディオ又はビデオのわずかなジャンプ又はアーチファクトとしてユーザによって知覚されうる。
【0015】
従って、上述した不利益を克服する、DVB−H仕様に従うブロードキャストに使用される方法及び装置のニーズがある。特に、新しいサービスが選択される際の改善された同期時間を有し、メディアストリームのコンポーネント間の同期の修正が実現される際により滑らかな遷移を提供する方法及び装置のニーズがある。
【課題を解決するための手段】
【0016】
本発明は、独立請求項によって規定される。従属請求項は、有利な実施形態を規定する。
【0017】
本発明の第1の見地によれば、ブロードキャストメディアストリームの複数のコンポーネントを同期させる方法であって、ブロードキャストメディアストリームの複数のコンポーネントに関するデータサンプルのストリームをバッファし、複数の情報パケットをバッファするステップであって、複数のコンポーネントの各々に関するデータサンプルのストリームが、相対タイミング情報を含み、各々の情報パケットが、コンポーネント内の相対タイミング情報及び絶対時間の間の関係を示すタイミング情報を含む、ステップと、複数のコンポーネントの各々に関するタイミング情報を抽出するために、バッファされた情報パケットに対してルックアヘッドアクションを実施するステップと、複数のコンポーネントを同期させるために、抽出されたタイミング情報及び相対タイミング情報を使用するステップと、を含む。
【0018】
一実施例において、各々の情報パケットは、複数のコンポーネントの個々のものに関連付けられ、タイミング情報は、それらの個々のコンポーネント内の相対タイミング情報及び絶対時間の間の関係を示す。
【0019】
好適には、方法は、複数のコンポーネント内の同期されたデータサンプルをストリーミングするステップを更に含む。
【0020】
一実施例において、方法は、情報パケットをメモリに記憶するステップと、他の情報パケットが受け取られるまで、複数のコンポーネント内のデータサンプルを同期させるために、メモリに記憶された情報パケット内のタイミング情報を使用するステップと、を更に含む。
【0021】
この実施形態において、ブロードキャストメディアストリームは、複数の選択可能なサービスを含み、方法は更に、各々の選択可能なサービスのコンポーネントに関する情報パケットを受け取るステップと、メモリに情報パケットを記憶するステップと、を含む。
【0022】
好適には、複数のコンポーネントに関するデータサンプルのストリームは、ブロードキャストメディアストリームの第1の選択可能なサービスを含み、第2のサービスが選択されるとき、第2のサービスに関する個々の情報パケットが受け取られる前に、第2の選択可能なサービスについて記憶されている情報パケットが、使用される。
【0023】
好適には、データサンプルは、バーストで受け取られ、情報パケットは、各バーストと共に受け取られる。
【0024】
好適には、抽出されたタイミング情報及び相対タイミング情報を使用するステップは、同時にストリーミングされるべき複数のコンポーネント内のデータサンプルを決定することを含む。
【0025】
好適には、方法は更に、複数のコンポーネント間のドリフトを識別するために、同時にストリーミングされるべき決定されたデータサンプルを、同時にストリーミングされるべき以前に決定されたデータサンプルの組と比較するステップと、データサンプルがバッファからストリーミングされるとき、識別されたドリフトを修正するために、特定のコンポーネントからのデータサンプルを付加し又は省くステップと、を更に含む。
【0026】
この実施形態において、ドリフトを決定するために使用された情報パケットと共に受け取られた1又は複数のデータサンプルが、ストリーミングされる前に、ドリフトが、データサンプルを加え又は省くことによって修正される。
【0027】
好適には、データサンプルは、既存のデータサンプルを複製することによって加えられる。
【0028】
好適には、方法は更に、比較のステップの結果をメモリに記憶するステップを含む。
【0029】
好適には、方法は更に、メモリに記憶された結果から平均的な修正を計算するステップと、特定のコンポーネントについて必要な修正を予測するために、計算された平均的な修正を使用するステップと、を含む。
【0030】
好適な実施形態において、ブロードキャストメディアストリームは、デジタルビデオブロードキャスティング−ハンドヘルド仕様に従ってブロードキャストされる。
【0031】
これらの実施形態において、相対タイミング情報は、リアルタイム伝送プロトコル(RTP)タイムスタンプを含み、情報パケットは、RTP制御プロトコル(RTCP)センダリポートパケットであり、絶対時間は、ネットワークタイムプロトコル(NTP)に従って決定される。
【0032】
好適には、ブロードキャストメディアストリームのコンポーネントは、ビデオ、オーディオ、グラフィクス、字幕及び対話コンテントから選択されるものを含む。
【0033】
本発明の第2の見地によれば、ユーザにブロードキャストメディアストリームを提示する装置であって、ブロードキャストメディアストリームの複数のコンポーネントに関するデータサンプルのストリーム及び複数の情報パケットを記憶するためのバッファであって、各々のコンポーネントは、ストリーム内のデータサンプルに関する相対タイミング情報を含み、各々の情報パケットは、コンポーネント内の相対タイミング情報と絶対時間との間の関係を示すタイミング情報を含む、バッファと、各コンポーネントに関するバッファされた情報パケットからタイミング情報を抽出するために、ルックアヘッドアクションを実施し、複数のコンポーネントを同期させるために、抽出されたタイミング情報及び相対タイミング情報を使用するように適応されるプロセッサと、を含む。
【0034】
好適には、装置は更に、抽出されたタイミング情報を記憶するためのメモリを含む。
【0035】
本発明の第3の見地は、プロセッサによって実行されるとき、上述した方法を実施するように適応されるコンピュータ可読コードを含むコンピュータプログラム製品を提供する。
【0036】
本発明のこれらの及び他の見地は、以下に記述される実施例から明らかになり、それらを参照して説明される。
【図面の簡単な説明】
【0037】
【図1】DVB−Hシステムのブロードキャストの構造を示す図。
【図2】例示のRTCPセンダリポートパケットの構造を示す図。
【図3】本発明の一実施形態によるモバイル装置のブロック図。
【図4】任意の時点におけるDVB−Hシステムのバッファの内容を示す図。
【図5】本発明の一実施形態による方法を示すフローチャート。
【発明を実施するための形態】
【0038】
本発明は、図面を参照して単なる例示によって記述される。
【0039】
本発明は、オーディオ及びビデオコンポーネントを含むブロードキャストメディアストリームに関して記述される。但し、本発明は、以下に限定されないが、字幕、グラフィクス及び対話的コンテントを含むそれぞれ異なる又は付加のコンポーネントを含むメディアストリームに適用可能であることが分かるであろう。
【0040】
更に、本発明は、以下、DVB−Hシステムに関して記述されるが、本発明は、エア又はワイヤードインタフェースを通じてサービスを送出するために時間スライシングを使用する他のシステム(非モバイル又は非ポータブル装置用のシステムを含む)にも適用可能であることが分かるであろう。
【0041】
図3を参照して、本発明の一実施形態によるモバイル装置が示されている。例えばモバイル電話、パーソナルディジタルアシスタント又はポータブルテレビジョン装置のような、ブロードキャストメディアストリームを受信することができる任意の装置でありうるモバイル装置10は、エアインターフェースを通じてブロードキャストメディアストリームを受け取るためのアンテナ12及び受信機回路14を含む。受信機回路14は、モバイル装置10の動作を制御するプロセッサ16に接続される。モバイル装置10は更に、プロセッサ16に接続されるバッファ18を含み、バッファは、到来入力メディアストリームのコンポーネントに関するデータサンプルのパケットを記憶するために使用される。
【0042】
モバイル装置10のユーザからコマンドを受け取るユーザインターフェース20は、スピーカ22及びディスプレイ24と共に、プロセッサ16にも接続される。プロセッサ16が、バッファ18からメディアコンポーネントを取り出し復号化するとき、スピーカ22及びディスプレイ24は、ユーザにメディアストリームを提示するために使用される。
【0043】
ある実施形態において、モバイル装置10は、プロセッサ16に接続されるメモリ26を更に有することができる。
【0044】
従って、複数のコンポーネントを含む到来メディアストリームは、アンテナ12及び受信機回路14を使用して、モバイル装置10によって受け取られ、プロセッサ16によってバッファ18に記憶される。モバイル装置10のユーザにメディアを最初に提示するために(すなわち、装置10が、最初にスイッチをオンにされるとき、装置10が、初めてブロードキャストメディアストリームを受け取り始めるとき、又はユーザが視聴するためにブロードキャストメディア装置の新しいサービスを選択するとき)、プロセッサ16は、オーディオ及びビデオパケットの各々について、どのオーディオパケットが特定のビデオパケットと共にバッファ18からストリーミングされるべきかを示すために使用されるNTPタイムスタンプを決定し、バッファ18からのパケットを、モバイル装置10の適当な出力部(すなわちスピーカ22又はディスプレイ24)にストリーミングする。プレゼンテーションの実時間(すなわち、パケットがバッファ18からストリーミングされる時間)は、プロセッサ16によってプレゼンテーションタイムスタンプ(PTS)から決定されることができ、又は単にビデオストリームのフレームレート(すなわち、毎秒特定のフレーム数のビデオデータをストリーミングする)を考慮に入れてプロセッサ16によって決定されることができる。
【0045】
モバイル装置がモバイル電話である場合、受信機回路14は、トランシーバ回路と置き換えられることができ、又は別個の送信機回路が、通信ネットワークとのアップリンク通信のために設けられる。
【0046】
更に、ある実施形態において、受信機回路14は、プロセッサ16を通過することなく、受信されたメディアストリームをバッファ18へ直接に供給することができることが分かるであろう。
【0047】
図4は、任意の時点におけるDVB−Hシステムのバッファ18の内容を示す。この図において、バッファ18へストリーミングされるデータサンプルは、左側から到来し、バッファ18から(ストリーミングポイントから)スピーカ22又はディスプレイ24へストリーミングされるデータサンプルは、右へ行く。メディアストリームは、この例では、2つのコンポーネント、すなわちビデオ及びオーディオ、を含むので、バッファ18は、2つのセクションに効果的に分割されており、(図4の上半分に示される)第1の部分は、ビデオデータサンプルを記憶し、(図4の下半分に示される)第2の部分は、オーディオデータサンプルを記憶する。
【0048】
各時間スライス又はバーストの間に受け取られる各コンポーネントに関するデータサンプルが、バッファ18に示されている。上述したように、データサンプルは、メディアストリームのコンポーネントのソースによって生成され、サンプルは、タイムスタンプを付される。しかしながら、各コンポーネントは、タイムスタンプに関するそれぞれ異なるベースを使用し、従って、異なるコンポーネントのタイムスタンプは、直接比較できない。
【0049】
従って、各コンポーネントは、データチャネルと同時にブロードキャストされる個々のチャネルを伴い、チャネルは、コンポーネント内の相対タイムスタンプ及び絶対時間の間の関係を示すタイミング情報を含む情報パケット4、6を含む。これらの情報パケット4、6は、図4に示されるようにバッファに記憶される。
【0050】
DVB−Hシステムにおいて、データサンプルは、リアルタイム伝送プロトコル(RTP)を使用してブロードキャストされ、それゆえ、RTPタイムスタンプを含む。更に、情報パケットは、RTCPセンダリポートであり、タイミング情報は、RTPタイムスタンプと絶対時間(すなわちNTP時間)との間の関係を示す。
【0051】
通常、情報パケット4、6は、それらがそれらの個々のオーディオ及びビデオストリームと共にバッファ18からストリーミングされるとき、プロセッサ16又は他のメディアプレーヤによって読み取られる(すなわち、それらは、ストリーミングポイントが個々の情報パケットに達すると読み取られる)。
【0052】
しかしながら、本発明によれば、プロセッサ16は、バッファ18にすでに記憶されている任意の「将来の」情報パケットについて、ルックアヘッドアクションを実施することが可能であり、これは、バッファ18内の現在ストリーミングポイント(すなわちデータサンプルが現在ストリーミングされている当該ストリーミングポイント)より先行するようにみえることを意味する。言い換えると、プロセッサ16は、バッファ18内にある情報パケットがデータサンプルと共にバッファ18からストリーミング出力されるのを待つのではなく、それらの情報パケットを調べる。代替例として、ルックアヘッドアクションは、情報パケットが受信機回路14によって受け取られるとき(すなわち、それらがバッファ18に記憶される前に)、プロセッサ16に情報パケットを調べさせることができる。
【0053】
データサンプルは、プロセッサ16内のコンポーネント復号器がそれらを使用することができるようになるよりもずっと速く特定の時間スライスに受け取られるので、プロセッサ16によるこの「ルックアヘッド」アクションは、ブロードキャストメディアストリームの時間スライシング構造により、可能である。
【0054】
図5は、本発明の1つの見地によるモバイル装置の動作を示すフローチャートである。
【0055】
ステップ101において、ブロードキャストメディアストリームの複数のコンポーネントに関するデータサンプルが、受け取られ、バッファ18に記憶される。コンポーネントの各々は、ストリーム内のデータサンプルに関する相対タイムスタンプを含む。
【0056】
ステップ103において、各コンポーネントについて個々の情報パケットが、受け取られ、バッファ18に記憶される。各情報パケットは、それらの個々のコンポーネント内の相対タイムスタンプと絶対時間との間の関係を示すタイミング情報を含む。
【0057】
ステップ105において、プロセッサ16は、バッファ18に対するルックアヘッドアクションを実施し、受け取られた情報パケットから、タイミング情報を抽出する。代替例として、情報パケットが受信機回路14によって受け取られるとき、プロセッサ16は、タイミング情報を読み取ることもできる。その結果、情報パケットと同時に受け取られたデータサンプルが、バッファ18からストリーミングされるよりも前に、タイミング情報が、情報パケットから抽出される。情報パケットが、間欠的に受け取られるとき、プロセッサ16は、ルックアヘッドアクションを周期的に繰り返すことができる。
【0058】
ステップ107において、プロセッサ16は、コンポーネント内のデータサンプルの相対タイムスタンプを絶対時間と関連づけるために、識別されたタイミング情報を使用する。異なるデータストリームからのサンプルは、ここで、共通の時間ベースを有するので、プロセッサ16は、1つのコンポーネント内のどのサンプルが別のコンポーネント内のどのサンプルと共にストリーミングされるべきかを決定することによって、コンポーネントを同期させることができる。
【0059】
最後に、ステップ109において、コンポーネント内の同期されたデータサンプルが、バッファ18からストリーミングされる。
【0060】
データストリーミングシステムの性質により(すなわち、データが、(バースト送信の場合)周期的に受け取られ、ユーザに連続的にストリーミングされる)、この方法におけるステップの各々は、メディアストリームのそれぞれ異なる部分についてであるが、モバイル装置10によってほぼ同時に実施されていることが分かるであろう。例えば、ステップ101及び103は、特定のバーストについてほぼ同時に行われ(それゆえ、フローチャートに横に並んで示されている)、プロセッサ16は、ブロードキャストメディアストリーム内のより早いものからのデータサンプルを、ユーザにストリーミングする。
【0061】
従って、装置10が、最初にオンにされるとき、装置10が、最初にブロードキャストメディアストリームを受け取り始めるとき、又はユーザが、ブロードキャストメディアストリームの新しいサービスを選択するとき、上述の方法は、複数のコンポーネントが、通常の方法より非常に速く同期されることを可能にする。実際、情報パケット(RTCPセンダリポート)が第1のバーストにおいて利用可能である場合、同期は、サービス変更が行われるとほとんどすぐに実現されることができる。
【0062】
更に、上述の方法を使用することによって、複数のコンポーネントが従来の方法より早く同期し直される必要があるかどうか(すなわち、コンポーネント間のタイミングがドリフトしているかどうか)を判定することが可能である。更に、以下に一層詳しく記述されるように、必要とされる同期修正の早期の検出は、修正が、従来の方法のように特定の時点に実現されるのではなく、短い時間期間(すなわち複数のフレーム)にわたって実現されることを可能にする。このようにして、ユーザ知覚できるアーチファクトが低減される。
【0063】
これらの2つの実現例の更なる詳細が、以下に与えられる。
【0064】
新しいサービスのコンポーネントの同期
従って、装置10が最初にオンにされるとき、装置10が最初にブロードキャストメディアストリームを受け取り始めるとき、又はユーザが、ブロードキャストメディアの新しいサービスを選択するとき、装置10は、第1の選択されたバーストを受け取り、バッファ18にデータサンプル及びRTCPセンダリポートパケットを記憶する。
【0065】
プロセッサ16は、バッファ18から、受け取ったメディアコンポーネントを消費(すなわちストリーミング)し始めることができるが、すべての必要なメディアコンポーネントの利用可能なRTCPパケットがあるかどうかバッファ18の残りの部分を調べるために、ルックアヘッドアクションを同時に実施することができる。
【0066】
このようなRTCPパケットが、それぞれ異なるメディアコンポーネントの少なくとも2つに関して見つけられる場合、データサンプルストリーム内の個別のコンポーネントRTPタイムスタンプは、RTPタイムスタンプをNTP時間にリンクするRTCPセンダリポートパケット内のタイミング情報を使用して、1つの絶対時間ベースに変換されることができる。特に、RTCPセンダリポートパケットは、RTPデータパケット内の最初のオクテットのサンプリング時点に関するRTPタイムスタンプ及び対応するNTPタイムスタンプを含むので、(この第1のサンプリング時点から正確に計られた)RTPデータパケット内のRTPタイムスタンプは、NTP時間に関連付けられることができる。
【0067】
タイミング情報は、各々のRTCPパケットの間で変わらないので、より早い及びより遅いRTCPセンダリポートパケットからのタイミング情報が、RTPデータストリームのデータサンプルに有効である。
【0068】
従って、RTCPセンダリポートパケットは、時間的により遅くに受け取られるが、複数のコンポーネント間の同期は、パケットが受け取られるとすぐに確立されることができる。
【0069】
特に、以下の計算は、本発明が複数のコンポーネントの同期を達成する際に従来の方法を超えて提供する改善を示す。以下、新しいサービスが、当該サービスのバーストとバーストの間に選択されるものとする(すなわち、当該サービスのバーストは、サービス切り替えが行われるときには送信されない)。
【0070】
RTCPセンダリポートパケットが、(今日の標準において勧告されるように)メディアストリーム内の各コンポーネントについて5秒毎に送信され、ストリームが、2秒の時間スライシングサイクルを有するものとすると、同期を達成するために必要とされる最大時間は7秒であり、これは、正しい時間スライスを待つ2秒と、RTCPセンダレポートパケットを待つ5秒と、を含む。平均して、同期を達成するために3.5秒かかり、これは、正しい時間スライスを待つ1秒と、RTCPパケットを待つ2.5秒と、を含む。
【0071】
しかしながら、本発明による方法を使用する場合、同期を達成するための最大時間は6秒であり、これは、正しい時間スライスを待つ2秒と、(現在時間スライスがRTCPパケットを含まない場合)次の時間スライスを待つ2秒と、次の時間スライスがなおRTCPパケットを含まない場合の更なる2秒と、RTCPパケットはそれが受け取られるとほぼすぐに読み取られることができるという理由で0秒と、を含む。同期を達成する平均時間は2.6秒であり、これは、時間スライスを待つ1秒と、RTCPパケットがこの時間スライス内にある(ゆえに0秒の更なる待ち時間を必要とする)40%の可能性と、RTCPパケットが次の時間スライス内にある40%の可能性(ゆえに更なる2秒の待ち時間を必要とする)と、RTCPパケットが最後の時間スライス内にある20%の可能性(ゆえに更なる4秒の待ち時間を必要とする)と、を含む。
【0072】
本発明の好適な実施形態において、同期時間は、データサンプルの各バーストと共にRTCPタイムスタンプを送信することによって、一層改善されることができる。従って、別のバーストを待つ結果としての遅延が回避される。
【0073】
特に、RTCPパケットが、時間スライス毎(従って2秒毎)に送信される場合、従来の方法を使用してコンポーネントを同期させるための最大時間は4秒であり、これは、時間スライスを待つ2秒と、RTCPパケットを待つ2秒と、を含む。コンポーネントを同期させるためにかかる平均時間は2秒であり、これは、時間スライスを待つ1秒と、RTCPパケットを待つ1秒と、を含む。
【0074】
しかしながら、あらゆる時間スライスにRTCPパケットに関して上述の方法を使用することは、2秒の最大の同期時間を生じさせ、これは、時間スライスを待つ2秒を含む。平均持続時間は1秒であり、これは、時間スライスを待つ1秒である。
【0075】
複数のコンポーネントを同期させるためにかかる時間の更なる改善は、メモリ26の履歴テーブルに、各サービスについて受け取られたタイミング情報を記憶することによって得られることができる。RTCPセンダリポートパケット内の相対値は、ある時間にわたって変化すべきでないので、記憶されたパケットは、ユーザがそのサービスに切り替えをする際に使用されることができる。
【0076】
この履歴テーブルは、いくつかのやり方でデータを入れられることができる。最初に、装置10が活性化されると、装置10は、ブロードキャストのすべてのサービスに関する時間スライスを受け取る必要がある。プロセッサ16は、すべてのRTCPパケットについてこれらの時間スライスを探すことができ、メモリ26にこれらを記憶することができる。
【0077】
第2に、装置10は、メモリ26の各サービスのタイミング情報をリフレッシュするために、周期的な更新を実施することができる。
【0078】
第3に、通常のサービス受信の間、装置10は、現在消費されているサービスのRTCPパケットをキャッシュすることができる。しばらくしてから、ユーザがこのサービスに戻ってくる場合、RTCP情報は、メモリ26内ですでに利用可能である。このようにして、装置10が、新しいサービスに最初にスイッチされるときにのみ、同期の遅れがある。
【0079】
従って、新しく選択されたサービスの最初の時間スライスにRTCPセンダリポートがない場合、キャッシュされたタイミング情報が、複数のコンポーネントを同期させるために使用されることができる。
【0080】
これらのケースのいずれにおいても、可能性は低いが、相対タイミングが変化している可能性がある場合、プロセッサ16が、メディアストリーム内のコンポーネント間の大きなタイミング差(例えば数秒又はより長い秒のオーダーの差)があるのを検出することはかなり容易であり、プロセッサ16は、このテストに失敗する任意のキャッシュされた情報を無視することができる。
【0081】
キャッシュされた情報が今もなお有効であうかどうか判定するための更なるチェックが、キャッシュされた情報について行われることができる。更に、メモリ26にRTCPパケットをキャッシュすることに加えて、RTCPパケットが受け取られるポイントに対応する絶対時間及びRTCPパケットの近くで受け取られるRTPパケットのプレゼンテーションタイムスタンプをキャッシュすることも可能である。従って、RTPパケットのプレゼンテーションタイムスタンプが、キャッシュされた情報を用いて計算される場合、結果として得られるプレゼンテーションタイムスタンプは、キャッシュの時間とキャッシュの時点のプレゼンテーションタイムスタンプとの間の絶対時間差に近いものであるべきである。そうでない場合、キャッシュに保持される情報は、おそらく無効であり、プロセッサ16は、新しいRTCPパケットを待つべきである。
【0082】
既存のサービスのコンポーネント間の同期の修正
上述したように、サービス内の複数のコンポーネント間の同期が、ある時間にわたってドリフトする場合、本発明による方法は、この同期ドリフトが従来の方法よりも早く判定されることを可能にする。
【0083】
同期ドリフトのこの早期の検出の結果として、同期修正は、従来の方法のように特定の時点に行われるのではなく、短い時間期間(すなわち多くのフレーム)にわたって行われることができる。
【0084】
特に、同期修正は、(ビデオコンポーネントが他のコンポーネントに時間的に先行している場合)ビデオフレームを落とす(ドロップする)ことによって、及び/又は(オーディオコンポーネントが他のコンポーネントに時間的に先行している場合)オーディオサンプルを落とすことによって、実現されることができる。
【0085】
モバイル装置10は、各ストリームと共に送られた第1のRTCPセンダリポートパケットを使用してRTP送信のそれぞれ異なるメディアコンポーネントを同期させたのち、各々のコンポーネントストリームについて他のRTCP情報パケットを受け取ることを続ける。本発明によれば、モバイル装置10は、バッファ18内のRTCPパケットに対してルックアヘッド動作を実施する。言い換えると、モバイル装置10は、対応するデータサンプルと共にバッファからストリーミングされるRTCPパケットを待つのではなく、それが装置10に利用可能になるとすぐに、RTCPパケット内のタイミング情報を抽出する。
【0086】
このようなRTCPパケットが見つけられるとすぐに、プロセッサ16は、相対タイムスタンプを絶対時間と関連づけ、通常通り、それぞれ異なるメディアコンポーネントのプレゼンテーションタイムスタンプを計算する。これから、プロセッサ16は、1つのコンポーネントからのどのサンプルが、他のコンポーネントからの特定のサンプルと共にストリーミングされるべきかを判定し、これを、現在ストリーミングされているデータサンプル対と比較する。これらのサンプル対が、現在ストリーミングされているものと異なる場合、ドリフトが生じており、従って、プロセッサ16は、1又は複数の特定のコンポーネントがどれくらい調整される必要があるか、及びこのドリフトが修正されるべきであるポイント、を判定する。ドリフトが通常修正される時間は、RTCPパケットがバッファ18から読み取られる時間である。
【0087】
プロセッサ16は、RTCPパケットがバッファ18から読み取られる前に、コンポーネントを同期させるために、各々のコンポーネントが(又はどのコンポーネントが)どれくらい調整される必要があるかを判定するために、決定された調整量及び通常の修正時間を使用する。
【0088】
プロセッサ16は、(ビデオストリームがオーディオストリームに先行している又は遅れている場合)ビデオフレームを付加し又は省くことによって、又は(オーディオストリームがビデオストリームに先行している又は遅れている場合)オーディオサンプルを付加し又は省くことによって、オーディオ及びビデオストリームの間の同期ドリフトを修正することができる。フレーム又はサンプルは、既存のフレーム又はサンプルを繰り返すことによって、付加されることができる。
【0089】
好適には、プロセッサ16は、バッファ18からRTCPパケットを読み取る前に、ある時間期間にわたってフレーム又はサンプルの付加又は省略を配置することによって、同期ドリフトを修正し、よって、再同期の際に、いかなるユーザ知覚可能なアーチファクトもあるべきでない。
【0090】
再同期が行われるたびに、再同期に関する情報が、メモリ26の履歴テーブルに記憶されることができる。プロセッサ16は、フレーム又はオーディオタイミングの行われた全体の平均的な調整を計算するために、このテーブル内の情報を使用することができる。この情報によって、プロセッサ16は、受け取られるRTCPパケットに先立って、再同期を予測することができ、当該RTCPパケットがバッファ18から読み取られるよりかなり前に、再同期が実現されることを確実にする。このようにして、再同期は、より大きいタイムスケールにわたって実現されることができ、これは、フレーム又はオーディオサンプルの付加又は省略がより離れて拡散されることができるので、遷移がなお一層滑らかに行われることができることを意味する。
【0091】
RTCPパケットがバッファ18から読み取られるとき、その中のタイミング情報が、コンポーネントの同期が正しく調整されたことを確認するために使用されることができる。
【0092】
更に、本発明のこの実施例は、送信のソースにおいて特別なRTCPパケットを導入することによって、非時間スライシング送信に適用されることができる。このパケットは、同期情報及びこの情報がいつ作用されるべきかを示すタイムスタンプを含むことができる。わずかな再同期が期待される場合、このパケットは、送信のソースによって、時間的に先立って生成され、送られることができる。このようにして、この特別なRTCPパケットが受け取られる場合、装置は、ある時間期間にわたって同期を円滑に調整することができる。
【0093】
従って、新しいサービスが選択される場合に改善された同期時間を有するとともに、メディアストリームのコンポーネント間の同期の修正が実現される場合に一層滑らかな遷移を供給する方法及び装置が提供される。
【0094】
本発明は、図面及び前述の記述に詳しく図示され記述されているが、このような図示及び記述は、制限的なものではなく、説明的又は例示的なものであると考えられることができる。本発明は、開示された実施形態に制限されない。
【0095】
開示された実施形態に対する変更は、図面、開示及び添付の請求項の検討から、請求項に記載された本発明を実施する際に当業者によって理解されることができ、実現されることができる。本発明は、いくつかの個別の構成要素を含むハードウェアによって、及び/又は適切にプログラムされたプロセッサによって、実現されることができる。請求項において、「含む、有する」という語は、他の構成要素又はステップを除外せず、不定冠詞「a」又は「an」は、複数性を除外しない。単一のプロセッサ又は他のユニットが、請求項に列挙されるいくつかのアイテムの機能を果たすことができる。特定の手段が相互に異なる従属請求項に列挙されているという単なる事実は、これらの手段の組み合わせが有利に使用されることができないことを示さない。請求項におけるいかなる参照符号も、範囲を制限するものとして解釈されるべきでない。コンピュータプログラムは、例えば他のハードウェアと共に又はその一部として供給される光学記憶媒体又はソリッドステート媒体のような適切な媒体に記憶され/分散されることができるが、例えばインターネット又は他のワイヤード又はワイヤレス通信システムを介するように、他の形態で分散されることもできる。

【特許請求の範囲】
【請求項1】
ブロードキャストメディアストリームの複数のコンポーネントを同期させる方法であって、
ブロードキャストメディアストリームの複数のコンポーネントに関するデータサンプルのストリームをバッファし、複数の情報パケットをバッファするステップであって、前記複数のコンポーネントの各々に関する前記データサンプルのストリームは、相対タイミング情報を含み、各情報パケットは、前記コンポーネント内の前記相対タイミング情報と絶対時間との間の関係を示すタイミング情報を含む、ステップと、
前記複数のコンポーネントの各々に関するタイミング情報を抽出するために、前記バッファされた情報パケットについてルックアヘッドアクションを実施するステップと、
前記複数のコンポーネントを同期させるために、前記抽出されたタイミング情報及び前記相対タイミング情報を使用するステップと、
を含む方法。
【請求項2】
各情報パケットが、前記複数のコンポーネントの個々のものに関連付けられ、前記タイミング情報が、それらの個々のコンポーネント内の前記相対タイミング情報と絶対時間との間の関係を示す、請求項1に記載の方法。
【請求項3】
前記複数のコンポーネント内の前記同期されたデータサンプルをストリーミングするステップを更に含む、請求項1又は2に記載の方法。
【請求項4】
メモリに前記情報パケットを記憶するステップと、
更なる情報パケットが受け取られるまで、前記複数のコンポーネント内の前記データサンプルを同期させるために、前記メモリに記憶された前記情報パケット内の前記タイミング情報を使用するステップと、
を含む、請求項1乃至3のいずれか1項に記載の方法。
【請求項5】
前記ブロードキャストメディアストリームは、複数の選択可能なサービスを含み、前記方法が、
各選択可能なサービスのコンポーネントに関する情報パケットを受け取るステップと、
前記メモリに前記情報パケットを記憶するステップと、
を更に含む、請求項4に記載の方法。
【請求項6】
前記複数のコンポーネントに関する前記データサンプルのストリームが、前記ブロードキャストメディアストリームの第1の選択可能なサービスを含み、
第2の選択可能なサービスが選択される場合、前記第2の選択可能なサービスに関する個々の情報パケットが受け取られる前に、前記第2の選択可能なサービスに関して記憶された情報パケットが使用される、請求項5に記載の方法。
【請求項7】
前記データサンプルは、バーストで受け取られ、情報パケットは、各バーストと共に受け取られる、請求項1乃至6のいずれか1項に記載の方法。
【請求項8】
前記抽出されたタイミング情報及び前記相対タイミング情報を使用する前記ステップは、同時にストリーミングされるべき前記複数のコンポーネント内の前記データサンプルを決定することを含む、請求項1乃至7のいずれか1項に記載の方法。
【請求項9】
前記複数のコンポーネント間のドリフトを識別するために、同時にストリーミングされるべきと決定された前記データサンプルを、同時にストリーミングされるべきと以前に決定されたデータサンプルの組と比較するステップと、
前記データサンプルが前記バッファからストリーミングされるとき、前記識別されたドリフトを修正するために特定の前記コンポーネントからのデータサンプルを付加し又は省くステップと、
を含む、請求項8に記載の方法。
【請求項10】
前記ドリフトを識別するために使用された前記情報パケットと共に受け取られた1又は複数のデータサンプルが、ストリーミングされる前に、前記ドリフトが、データサンプルを付加し又は省くことによって修正される、請求項9に記載の方法。
【請求項11】
前記データサンプルの付加は、データサンプルの複製を含む、請求項9又は10に記載の方法。
【請求項12】
前記比較するステップの結果を、メモリに記憶するステップを更に含む、請求項9、10又は11に記載の方法。
【請求項13】
前記メモリに記憶された結果から平均的な修正を計算するステップと、
特定のコンポーネントに必要な修正を予測するために、前記計算された平均的な修正を使用するステップと、
を更に含む、請求項12に記載の方法。
【請求項14】
ユーザにブロードキャストメディアストリームを提供する装置であって、
ブロードキャストメディアストリームの複数のコンポーネントに関するデータサンプルのストリーム及び複数の情報パケットを記憶するバッファであって、各コンポーネントは、前記ストリーム内に前記データサンプルに関する相対タイミング情報を含み、各情報パケットは、前記コンポーネント内の前記相対タイミング情報と絶対時間との間の関係を示すタイミング情報を含む、バッファと、
各コンポーネントに関する前記バッファされた情報パケットから前記タイミング情報を抽出するルックアヘッドアクションを実施し、前記複数のコンポーネントを同期させるために、前記抽出されたタイミング情報及び前記相対タイミング情報を使用するプロセッサと、
を有する装置。
【請求項15】
前記抽出されたタイミング情報を記憶するためのメモリを更に有する、請求項14に記載の装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2011−525322(P2011−525322A)
【公表日】平成23年9月15日(2011.9.15)
【国際特許分類】
【出願番号】特願2011−513087(P2011−513087)
【出願日】平成21年6月4日(2009.6.4)
【国際出願番号】PCT/IB2009/052357
【国際公開番号】WO2009/150578
【国際公開日】平成21年12月17日(2009.12.17)
【出願人】(590000248)コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ (12,071)
【Fターム(参考)】