JP2004507172A - マルチメディアアプリケーションを再生する方法 - Google Patents
マルチメディアアプリケーションを再生する方法 Download PDFInfo
- Publication number
- JP2004507172A JP2004507172A JP2002520549A JP2002520549A JP2004507172A JP 2004507172 A JP2004507172 A JP 2004507172A JP 2002520549 A JP2002520549 A JP 2002520549A JP 2002520549 A JP2002520549 A JP 2002520549A JP 2004507172 A JP2004507172 A JP 2004507172A
- Authority
- JP
- Japan
- Prior art keywords
- task
- time
- scheduler
- video
- playing
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 51
- 238000009877 rendering Methods 0.000 claims description 21
- 239000000872 buffer Substances 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims 4
- 230000007246 mechanism Effects 0.000 abstract description 13
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000021615 conjugation Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 208000018140 nonphotosensitive trichothiodystrophy 4 Diseases 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
- H04N7/52—Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal
- H04N7/54—Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal the signals being synchronous
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234318—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into objects, e.g. MPEG-4 objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4305—Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising 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/43072—Synchronising 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
- H04N7/52—Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Television Signal Processing For Recording (AREA)
- Television Receiver Circuits (AREA)
Abstract
本発明は、マルチメディアアプリケーションAのセットを再生する方法に関する。それぞれのマルチメディアアプリケーションは、タスクのリストTTDを含んでいる。かかる方法は、ターゲット時間を提供するために、開始時間で共通のスケジューラSCHを作成するステップ、該タスクを該スケジューラに記録するステップ、該ターゲット時間の機能として該タスクの実行を制御するステップを含むことを特徴とする。また、本方法は、タスクに優先レベルを割当てるステップを含んでおり、該スケジューラは、該ターゲット時間及び該優先レベルの機能として該タスクの実行を制御するために適合される。かかる方法は、該スケジューラにより与えられるターゲット時間と、該タスクに関連するタイミング情報とからタスクについてのローカル時間を計算するステップをさらに含んでいる。かかるメカニズムにより、それぞれのタスクは、自身の時間参照を有することになり、アプリケーション全体の正しい動作を保証することができ、スケジュールの全体的な観念を保持することができる。
Description
【0001】
[発明の分野]
本発明は、マルチメディアアプリケーションのセットを再生する方法に関する。
かかる方法は、たとえば、インターネットタイプの配信システムを通した、MPEGオーディオデータ及びビデオデータへのアクセスを提供するブラウザを介するコンピュータにおいて使用される場合がある。
【0002】
[発明の背景]
オーディオ−ビデオプレーヤは、オーディオ−ビジュアル表現を生成するためにオーディオストリーム及びビデオストリームを復号化するコンピュータで実行されるプログラムである。図1は、従来技術によるオーディオ及びビデオフレームを再生する方法のブロック図である。かかる方法は、MPEG−4データを再生するものであり、MPEG−4符号化データストリーム(IS)をオーディオストリーム(AS)及び幾つかのビデオストリーム(VS1−VSn)に分離するための分離ステップ(DEMUX)を含んでいる。かかる方法は、以下の3つの主要なタスクを含んでいる。
【0003】
かかる方法は、第1に、オーディオ復号化及びレンダリングタスク(DR)を含んでいる。このタスクは、オーディオストリーム(AS)を復号化し、復号化オーディオサンプルをサウンドシステムハードウェアに提供することにより、サウンドレンダリングシステムを駆動する。サウンドシステムハードウェアは、これらのデジタルオーディオサンプルをアナログサウンド信号(SO)に変換し、該信号(SO)は、ラウドスピーカ(LS)に送出される。
【0004】
また、かかる方法は、ビデオ復号化タスク(DEC)を含んでいる。このタスクは、少なくとも1つのビデオストリーム(VS)を復号化し、復号化ビデオフレームをビデオフレームバッファ(BUF)に記憶する。
【0005】
最後に、かかる方法は、ビデオレンダリングタスク(REN)を含んでいる。このタスクは、ビデオフレームバッファから復号化ビデオフレーム(VF)を取り出し、ビデオシーン(SC)を構成するために、復号化ビデオフレームに対応する画素をビデオシステムハードウェアに供給する。また、ビデオレンダリングステップは、モニタ(MON)を駆動するために必要である全てのビデオフレーム変換を実行する。
【0006】
欧州特許出願第0817103号は、インターネットタイプの配信システムのマルチメディアコンテンツデータへのアクセスを提供するための方法及びシステムを記載している。かかる方法により、上記によるマルチメディアデータを再生することができ、ウェブブラウザを使用して、オーディオビデオプレイバックは個別の制御線で実行される。
【0007】
[発明の概要]
本発明の目的は、マルチメディアアプリケーションのセットを再生する方法を提供することにある。本方法により、オーディオフレーム及びビデオフレームの良好な同期及びリアルタイム再生が可能となる。本発明は、以下の態様を考慮している。
【0008】
従来技術による方法では、それぞれのマルチメディアアプリケーションは、それ自身のスケジューラを含んでおり、該スケジューラをそれ自身のスレッドで実行していた。したがって、アプリケーション固有の全てのタスクが同期し、アプリケーション全体が必ずしも同期しない。ウェブブラウザにおけるマルチメディアプレーヤの統合の例では、それぞれのアプリケーションは、それ自身のスケジューラを有しており、マルチメディアプレーヤは、復号化して、ブラウザが表示するよりも速く、直ぐに見ることが出来るフレームをブラウザに与えることができる。しかし、ブラウザが1秒当り10フレームのみしか表示することが出来ない場合、1秒当り25のビデオ系列のフレームを復号化する必要は存在しない。同様に、以下CPUと呼ばれる中央処理ユニットが1秒当り10フレーム以上の復号化を扱うことが出来ない場合、マルチメディアプレーヤは、1秒当り25フレームでレンダリングする必要がない。
【0009】
従来技術の制限を克服するために、本発明によるマルチメディアアプリケーションのセットを再生する方法は、以下のステップを含んでいることを特徴としている。
ターゲット時間を提供するために、開始時間で共通のスケジューラを作成するステップ。
共通のスケジューラに該タスクを記録するステップ。
該ターゲット時間の機能として、該タスクの実行を制御するステップ。
【0010】
オペレーティングカーネルで実現されるような広範なスケジュール方法とは対照的に、上記共通のスケジューラの使用により、全体のアプリケーションは、リアルタイム再生の間に同期されたままにすることができる。
【0011】
さらに、本発明によるマルチメディアセットを再生する方法は、スケジューラにより与えられるターゲット時間、及びかかるタスクに関連するタイミング情報とからタスクについてのローカル時間を計算するステップをさらに含んでいること特徴とする。
かかる方法は、全体のアプリケーションの正しい動作を保証する。このために、3つの特定の実施の形態が提案される。
【0012】
第1実施の形態では、マルチメディアアプリケーションのセットを再生する方法は、上記計算するステップが、タスクの開始時間とスケジューラの開始時間の間の差からタスクに関連する開始時間オフセットを決定するサブステップと、ターゲット時間と開始時間オフセットの間の差からローカル時間を計算するサブステップとを含んでいることを特徴としている。
【0013】
たとえば、ビデオ系列が再生されているとき、ビデオ符号化タスクは、正しいフレームを復号化するためにターゲット時間を知る必要がない。しかし、ターゲットタスクは、ターゲット時間に対応するフレームを復号化しようとはじめに試み、ターゲット時間がゼロ秒でないために、この復号化に成功しない。これは、本発明の方法がこのタスクについてのローカル時間を計算しているためであり、これにより、共通のスケジューラという文脈で適切なビデオ復号化を保証することができる。
【0014】
第2実施の形態では、マルチメディアアプリケーションのセットの再生の方法は、タスクが外部ソースから到来するマルチメディアアプリケーションに含まれており、上記計算するステップは、スケジューラ開始時間と外部マルチメディアアプリケーションの間の差から外部マルチメディアアプリケーションの外部時間オフセットを決定するサブステップと、ターゲット時間と外部時間オフセットの和からローカル時間を決定するステップとを含んでいることを特徴としている。結果的に、本方法により、デジタル符号化データストリームは、ローカル記憶から読み出すことができるか、或いはブロードキャスト又はネットワークから受信することができる。
【0015】
第3の実施の形態では、マルチメディアのセットを再生する方法は、タスクが時間制限されたデータストリームに適用され、上記計算するステップが、データストリームの期間を決定するサブステップと、データストリームが終了するたびにカウンタをインクリメントするサブステップと、ターゲット時間と、該期間とカウンタとの積との間の差からローカル時間を決定するサブステップとを含んでいることを特徴としている。結果的に、ローカル時間は、ゼロからデータストリームの期間まで変化し、本方法は、かかるデータストリームをループすることができる。
本発明のこれら及び他の態様は、以下に記載される実施の形態を参照して明らかとなるであろう。
【0016】
[発明の実施の形態]
本発明は、添付図面を参照して、例示を介して記載される。
本発明は、マルチメディアアプリケーションのセットを再生する方法に関している。好適な実施の形態では、主要なアプリケーションは、マルチメディアプレーヤ(A2)である少なくとも第2のアプリケーションに統合されるVRMLブラウザ(A1)であり、全体のアプリケーションは、正確なタスクスケジューリングについて、広範且つ使い易いメカニズムを提供している。
【0017】
図2は、全体のアプリケーションのブロック図を示しており、オーディオ及びビデオ信号(SO,SC)をオーディオ−ビジュアル再生システム(LS,MON)に供給するために、デジタル符号化データストリーム(IS)を処理するものである。
【0018】
好適な実施の形態では、マルチメディアプレーヤは、MPEG−4プレーヤであり、デジタル符号化データストリームをオーディオストリーム(AS)と幾つかのビデオストリーム(VS1−VSn)に分離するためのデマルチプレクサ(DEMUX)を特に備えている。
【0019】
MPEG−4プレーヤは、以下のタスクを備えている。
オーディオストリームを復号化し(ADEC)、該復号化により提供される復号化されたオーディオフレーム(AF)をフィルタリングし(FIL)、該オーディオフレームをレンダリングするためのオーディオ復号化及びレンダリング(DR)に関する第1タイプのタスク(TTD1)。
ビデオストリームを復号化し(DEC)、ビデオオブジェクトを提供する第2タイプのタスク(TTD2)。該ビデオオブジェクトの復号化されたビデオフレーム(VF1−VFn)は、ビデオバッファ(BUF1−BUFn)に記憶されており、ビデオ復号化タスクは、それぞれのビデオストリームに関連している。 ビデオバッファに記憶されている復号化されたビデオフレームをレンダリング及び表示する(REN)ことに関する第3タイプのタスク(TTD3)。
【0020】
VRMLブラウザは、スクリーンへのオーディオ及びビデオフレームの更新及び再生(DIS)に関する第4タイプのタスク(TTD4)を備えている。このタスクは、第3のタスクにより提供されるオーディオ及びビデオフレームを受信し、それらを2次元のオブジェクトにレンダリング及び表示し、次いで、2次元のオブジェクトを3次元のオブジェクトにマッピングすることからなる。
なお、ビデオ系列を再生するVRMLノードであるMovie Texture nodeが存在するのと同じMPEG−4プレーヤが存在する。
【0021】
最後に、全体のアプリケーションは、前のタスクを記録し、ターゲット時間をかかるタスクに割当て、ターゲット時間の機能として該タスクの実行を制御するスケジューラを備える。
【0022】
特に、スケジューラは、タスクを記録することができるソフトウェアモジュールとして定義される。タスクが一旦記録されると、スケジューラは、かかるタスクが正しい時間で実行されることを保証する。スケジューラは、スケジュール手記で始動される。たとえば、1秒当り25フレームのビデオ系列では、周期は40ミリ秒である。スケジューラは、タスクに関してループを管理する。スケジューラは記録されたタスクのリストにおけるそれぞれのタスクを次々と実行する。タスクは、その実行ルーチンをコールすることにより実行される。
【0023】
スケジューラの主要な役割は、ターゲット時間を保持することである。ターゲット時間は、システムクロックを使用してスケジューラにより計算される。たとえば、ビデオ系列が12:45:33で開始された場合、メディア時間は再生の22秒後の22秒であり、12:45:55であるシステムクロックから計算される。スケジューラは、その時間で実行されるビデオ及びオーディオ復号化が22秒のメディア時間を有するデジタル復号化データストリームにおけるデータに対応することを保証する。
【0024】
スケジューラの狙いは、プレーヤが余りに速く実行せずに、ブラウザ及び他のタスク及びプログラムに馴染んでいることを確認することである。このために、スケジューラは、その実行の間に経過した有効時間をそれぞれのループの最後で計算し、該有効時間とスケジューリング周期とを比較する。このループの実行がスケジューリング周期よりも少ない時間を要する場合、スケジューラは、その時間差の間にオペレーティングシステムにスリープをコールする。
【0025】
これにより、第1に、プレーヤが余りに速すぎないこと、第2に、プレーヤが他のタスク又はアプリケーションに馴染んでいることが効果的に保証される。これは、オペレーティングイステムへのスリープコールは、オペレーティングシステムのカーネルが他のタスク及びアプリケーションのスワッピングとなる。
【0026】
スケジューラの別の狙いは、プレーヤが余りに遅くないことを確認することである。このために、スケジューラは、それぞれのタスク実行ルーチンにターゲット時間を割当てる。次いで、それぞれのタスクは、その時間に何を行えばよいかが分かる。
【0027】
従来技術では、それぞれのビデオ系列は、それ自身のスケジューラを有しており、それ自身のスレッドにおいてスケジューラを実行している。デコーダは、復号化されたビデオフレームをレンダリング及び表示タスクに与える。かかるタスクは、MPEG−4シーンを再構成して、Direct Draw surfaceと呼ばれる直ぐに見ることができるフレームに該MPEG−4シーンを配置する。
【0028】
ブラウザが2つの異なるビデオ系列を2つの異なる時間で開始することができる本出願では、上記内容は該当しない。この場合、ビデオレンダリング及び表現タスクは、Direct Draw surfaceを与えるのみである。ブラウザのレンダリングタスクは、3次元のオブジェクトへのマッピングを実行する。
【0029】
本発明によるマルチメディアアプリケーションのセットの再生方法は、共通のスケジューラを共有する。いずれか他の初期化の前に、1秒当り25フレームのビデオ系列に対応する40ミリ秒で空のスケジューラが作成される。次いで、VRMLブラウザのメインループに対応するタスクが作成され、タスクのスケジューラリストに挿入される。Movie Texture nodeに対応するMPEG−4ビデオ系列が開始するとき、ビデオ復号化、ビデオレンダリング及びプレゼンティング、オーディオ復号化及びレンダリングタスクである要求されるタスクは、スケジューラに挿入される。
【0030】
前のターゲット時間と新たなターゲット時間の間の差が所与の閾値よりも大きくなるとき、全体のアプリケーションが同期を回復することができるように、タスクは実行する処理量を低減する。このために、マルチメディアアプリケーションのセットを再生する方法は、タスクに優先レベルを与えるステップをさらに含んでおり、スケジューラは、ターゲット時間及び該タスクの優先レベルの機能として、タスクの実行を制御する。
【0031】
好適な実施の形態では、4つの特定なCPUスケーラビリティメカニズムが実現される。最も高い優先レベルが、オーディオ復号化及びレンダリングシステムに与えられ、次いでビデオ復号化タスクに与えられ、次いでビデオレンダリングタスクに与えられ、最終的に最も低い優先レベルがブラウザ表示更新タスクに与えられる。
プレーヤを同期し続ける第1のメカニズムは、CPUがビジー状態である時にブラウザ表示自身の更新をスキップすることである。
【0032】
プレーヤを同期し続ける第2のメカニズムは、CPUがビジー状態である時にレンダリングフレームをスキップすることである。上記記載のスケジューラにより、以下のように実現される。ビデオレンダリングタスク(REN)がターゲット時間で実行コールを受信したとき、該タスクは、ビデオフレームバッファ(BUF)をアドレス指定して、このターゲット時間に最も近いビデオフレーム(VF)を見つける。次いで、ビデオレンダリングタスクは、そのフレームのみを表示してリターンする。
【0033】
このアルゴリズムの結果的な作用は、以下である。十分なCPUサイクルが存在しない場合、1秒当たり25フレームでのオリジナルのビデオ系列は、1秒当り12フレームという低いフレームレートでレンダリングされる。これは、MPEG−4プレーヤがさもなければ十分な能力がないマシンで実行する可能にする非常に有効なメカニズムである。また、他のアプリケーションで同時に実行することも可能である。ユーザが見るのは、CPUがビジー状態にあるときビデオフレームレートが低くなることのみである。
【0034】
第4のCPUスケーラビリティメカニズムは、第1のメカニズムがリアルタイムとペースを維持するために十分ではないときに、ビデオ復号化をスキップすることからなる。しかし、MPEG−4ビデオ復号化、及びより一般的に、ほとんどのためのビデオ符号化スキームは、デジタル符号化データストリームにおけるいずれかの点で再開することができない。これは、符号化効率を向上するために、隣接するフレーム間の時間冗長度をビデオ符号化アルゴリズムが抽出するという事実による。これらのフレームは、予測フレーム又はPフレームと呼ばれ、エンコーダは、現在のフレームと前のフレームの間の差を送出するのみである。その場合、前のフレームが復号化されていなければならない。
【0035】
ビデオ標準は、それのみで復号化することができるイントラ符号化フレーム又はIフレームと呼ばれる別の種類のフレームを正規化する。これらのフレームは、復号化を開始することができるデジタル符号化データストリームにおけるポイントであるランダムアクセスポイントである。したがって、ビデオ復号化タスク(DEC)が復号化をスキップすることを決定したとき、ビデオ表示は、ランダムアクセスポイントに対応するターゲット時間に到達するまで、最後の画像をフリーズする。ビデオ系列は、1秒毎にIフレームで典型的に符号化される。結果として、スケジューラは、ビデオ復号化を停止し、ビデオフレームレートの極端な低減と等価である利用可能なCPUサイクルの量に依存してビデオ復号化を再開する。
【0036】
ビデオフリーズがユーザにはむしろ混乱するものであるので、この方法は、CPUメカニズムが、プレーヤのリアルタイムとのペースの維持を助けるのを失敗したときにのみ使用される。スケジューラは、典型的にビデオフレームレートで3つの主要なタスクに関して急速にループするので、オーディオデータは、ビデオデータと同期していなければならない。
【0037】
第4のメカニズムは、2つの前のメカニズムがリアルタイムとのペースを維持するのに十分でない場合に、オーディオ復号化をスキップすることからなる。かかるメカニズムは、沈黙を生じさせる。これは、適切なフィルタ(FIL)が適用されて、この不自然な沈黙の開始と終了でスクラッチノイズを回避するためである。オーディオ復号化タスク(ADEC)は、この沈黙に対応するサウンドサンプルを効率的に生成しなければならない。
【0038】
この場合、スケジューラ(SCH)により与えられるターゲット時間が使用され、CPUがビジーでないときに、オーディオ及びビデオフレームの正確な同期により、通常の再生を再開することができるように、この沈黙の正確な長さを計算する。幸いなことに、オーディオ符号化アルゴリズムは、ランダムアクセスポイントの周期がビデオ符号化の周期よりも非常に小さくなっている。これは、通常数ミリ秒の範囲である。したがって、通常のオーディオ符号化は、即座に再開することができる。オーディオ符号化がビデオ符号化よりもCPUの集中度が低いので、これは、コンピュータが、タイムクリティカルなタスクにより極度にビジーであるのとき、又はユーザがCPUの集中度が高いアプリケーションを開始しているときにのみ典型的に起こる。
【0039】
この新しいアプローチにより、VRMLブラウザと少なくとも1つのMPEG−4プレーヤの間で共有される共通のスケジューラが存在し、共通の時間スレッドが共有される。
【0040】
マルチメディアアプリケーションのセットを再生する方法は、スケジューラにより提供されるターゲット時間と、かかるタスクに関連するタイミング情報とからタスクについてのローカル時間を計算するステップをさらに備えている。
【0041】
映画が再生されているとき、対応するデコーダは、正しいフレームを復号化するためにターゲット時間を知る必要がある。問題は、ユーザが、ブラウザの主要部を開始した後にビデオ系列を20秒開始させたい場合、デコーダがターゲット時間に対応するフレームを復号化しようとすることである。このターゲット時間は、20秒であり0秒ではない。
【0042】
この問題を解決するために、開始時間オフセットとターゲット時間との間の差からローカル時間が計算される。
ローカル時間=ターゲット時間−開始時間オフセット
開始時間オフセットは、タスクの開始時間とスケジューラの開始時間の間の差から計算される。
開始時間オフセット=タスクの開始時間−スケジューラの開始時間
タスクが実行されなければならないとき、その実行ルーチンについて、かかるローカル時間を計算し、それ自身の時間参照を有することになる。結果として、スケジューラにより提供されるターゲット時間は、他のタスクについて変更されない。
かかるメカニズムにより、それぞれのタスクは、再生されるビデオ系列の合致するそれ自身の時間参照を有し、スケジュールの全体的な観念をなお有する。
【0043】
本発明による方法により、デジタル符号化データストリームをローカル記憶から読み出すことを可能にするが、ブロードキャスト又はネットワークからの受信も可能にするべきである。
このために、ネットワークから到来するMPEG−4ファイルとMPEG−4データストリーム(IS)の両者は、図3に示されるようなアクセスユニット(AU)のプロデューサとして考えることができる。この抽象レイヤにより、MPEG−4タイプのソースに関わらず、アクセスユニットを読み出して復号化するプレーヤの設計が可能となる。
【0044】
エンコーダ側では、それぞれのアクセスユニットは、最初のタイムスタンプについてゼロで開始し、ミリ秒での時間(t)に従いインクリメントされ、パケット化されるそれ自身の構成タイムスタンプ(CTS)に与えられる。これらの構成タイムスタンプは、デコーダに時間の観念を提供し、したがって、デコーダの復号化が速すぎるか、遅すぎるかをデコーダに示す。
【0045】
現在の構成スタンプは、デコーダクロックに合致している。残念なことに、CPUロード、ネットワーク遅延又は他の問題は、デコーダと復号化される現在のアクセスユニットの間にラグを生成する可能性がある。その場合、デコーダは、幾つかのアクセスユニットをスキップしなければならない場合がある。これは、すなわち、最新の状態にするために次にジャンプしなければならない。
【0046】
たとえば、MPEG−4ウェブカムビデオサーバが、午後12:00にネットワークのどこかで開始した場合、リアルタイムエンコーダは、0で開始する構成タイムスタンプをインクリメントして、アクセスユニットを生成する。ここで、ウェブカムクライアントを有する主要なアプリケーションが12:00+10200ミリ秒で開始した場合、プレーヤは、0に等しい構成タイムスタンプによりアクセスユニットを復号化しようとする。このことは、この例では、0から10180の範囲での構成タイムスタンプを有するアクセスユニットは利用することができないので不可能である。
【0047】
デコーダが利用可能でないアクセスユニットをサーチすることを回避するために、外部の時間オフセットがデコーダの時間ラインに追加される。かかるオフセットは、すなわち、この例では10200ミリ秒である、受信された最初のアクセスユニットの構成タイムスタンプに対応する。結果として、復号化の時間参照は、スケジューラにより提供されるターゲット時間に外部の時間オフセットを加えたものに等しい。
ローカル時間=ターゲット時間+外部の時間オフセット
共通のスケジューラの文脈では、時間ラインは、ユニークであり、全てのタスクにより共有される。スケジューラは、全体のアプリケーションについてタイムシェアリングの役割を果たし、他のいずれかの前に開始しなければならない。時間ラインは、0ミリ秒で開始し、特定のタスクに対して変化することはできない。これは、時間ラインが全ての他のタスクに作用するからである。受信された最初のアクセスユニットの構成タイムスタンプに従い、スケジューラの代わりに、タスク自身に対して時間オフセットを報告することにより、共通のスケジューラなしで同期しなければならない2つの独立なアプリケーション間の時間シフトについて、作用することができる。
【0048】
本発明によるマルチメディアアプリケーションのセットを再生する方法は、時間制限されたデータストリームに対しても適用することができる。全体のアプリケーションの終了まで、スレッドを停止することができないときに特に有効である。これらの条件では、ビデオ復号化タスクが入力データストリームに関してループすると仮定されるときに問題が生じる。これは、スケジューラにより提供される時間、及びデータストリームのアクセスユニットが同期しなくなるためである。
【0049】
この解決は、MPEG−4ビデオ復号化タスクに通過される時間を変えることからなり、スケジューラにより所有されない。データストリームの終了が到達したときに、時間がリセットされなければならない。最初に、それが起こったときに、データストリーム期間が記憶され、ゼロに初期化されているカウンタは、データストリームの終了に到達するたびにインクリメントされる。次いで、ローカル時間は、MPEG−4ビデオ復号化タスク内で、以下のように計算される。
ローカル時間=ターゲット時間−(データストリーム期間×カウンタ)
ターゲット時間は、ゼロから無限大まで変化するが、ローカル時間は、ゼロからデータストリーム期間まで変化し、データストリームの終了に到達するたびにリセットされる。次いで、MPEG−4ビデオ符号化タスクは、データストリームに関してループすることができる。
【0050】
あるケースでは、両タイプのオフセットを適用することができ、累積することができる。たとえば、ウェブカムサーバが12:00で開始し、主要なアプリケーションが12:10で開始し、ビデオ復号化タスクが12:12で開始するものとする。その場合、ローカル時間は、以下のように計算することができる。
ローカル時間=ターゲット時間−開始時間+外部の時間オフセット
なお、本発明による方法は、かかるアプリケーションに含まれるタスクがインデックス付けされた時間データを扱うマルチメディアアプリケーションのいずれかのセットに拡張することができる。
【0051】
本方法は、CPUサイクルの浪費を回避するためにCPUの負荷を伸張に管理しなければならないように、復号化の複雑さを極端に変化することができるMPEG−4データに対するアプリケーション向けに記載されてきた。しかし、本方法は、マルチメディアデータを提供する他の符号化手法に対しても適用することができる。
【0052】
図2は、本発明の1つの可能な実施の形態を表現している。したがって、この図は、異なるブロックとして異なる機能を示しているが、1つのソフトウェア項目が幾つかの機能を実行する可能性を決して排除するものではない。また、ソフトウェア項目のアセンブリが1つの機能を実行する可能性を排除するものでもない。上記アプリケーション又はタスク以外にも、本発明の範囲から逸脱することなしに可能である。
【0053】
本発明による方法は、集積回路で実現することができ、セットトップボックス又はコンピュータに統合することができる。プログラムメモリにロードされる命令のセットにより、集積回路にかかる方法を実行させる。命令のセットは、たとえばディスクのようなデータキャリアに記憶される場合がある。命令のセットは、次いでそれがその役割を実行する集積回路のプログラムメモリにロードするように、データキャリアから読み出すことができる。
【0054】
動詞「備える」及びその派生は、特許請求の範囲に定義された以外のいずれか他のステップ及び構成要素の存在を排除するものではない。特許請求の範囲における参照符号は、請求項を限定するものとして解釈されるべきではない。
【図面の簡単な説明】
【図1】
従来技術によるマルチメディアアプリケーションのセットを再生する方法に関するブロック図である。
【図2】
本発明によるマルチメディアアプリケーションのセットの再生の方法に関するブロック図である。
【図3】
MPEG−4データストリームの構造を示す図である。
[発明の分野]
本発明は、マルチメディアアプリケーションのセットを再生する方法に関する。
かかる方法は、たとえば、インターネットタイプの配信システムを通した、MPEGオーディオデータ及びビデオデータへのアクセスを提供するブラウザを介するコンピュータにおいて使用される場合がある。
【0002】
[発明の背景]
オーディオ−ビデオプレーヤは、オーディオ−ビジュアル表現を生成するためにオーディオストリーム及びビデオストリームを復号化するコンピュータで実行されるプログラムである。図1は、従来技術によるオーディオ及びビデオフレームを再生する方法のブロック図である。かかる方法は、MPEG−4データを再生するものであり、MPEG−4符号化データストリーム(IS)をオーディオストリーム(AS)及び幾つかのビデオストリーム(VS1−VSn)に分離するための分離ステップ(DEMUX)を含んでいる。かかる方法は、以下の3つの主要なタスクを含んでいる。
【0003】
かかる方法は、第1に、オーディオ復号化及びレンダリングタスク(DR)を含んでいる。このタスクは、オーディオストリーム(AS)を復号化し、復号化オーディオサンプルをサウンドシステムハードウェアに提供することにより、サウンドレンダリングシステムを駆動する。サウンドシステムハードウェアは、これらのデジタルオーディオサンプルをアナログサウンド信号(SO)に変換し、該信号(SO)は、ラウドスピーカ(LS)に送出される。
【0004】
また、かかる方法は、ビデオ復号化タスク(DEC)を含んでいる。このタスクは、少なくとも1つのビデオストリーム(VS)を復号化し、復号化ビデオフレームをビデオフレームバッファ(BUF)に記憶する。
【0005】
最後に、かかる方法は、ビデオレンダリングタスク(REN)を含んでいる。このタスクは、ビデオフレームバッファから復号化ビデオフレーム(VF)を取り出し、ビデオシーン(SC)を構成するために、復号化ビデオフレームに対応する画素をビデオシステムハードウェアに供給する。また、ビデオレンダリングステップは、モニタ(MON)を駆動するために必要である全てのビデオフレーム変換を実行する。
【0006】
欧州特許出願第0817103号は、インターネットタイプの配信システムのマルチメディアコンテンツデータへのアクセスを提供するための方法及びシステムを記載している。かかる方法により、上記によるマルチメディアデータを再生することができ、ウェブブラウザを使用して、オーディオビデオプレイバックは個別の制御線で実行される。
【0007】
[発明の概要]
本発明の目的は、マルチメディアアプリケーションのセットを再生する方法を提供することにある。本方法により、オーディオフレーム及びビデオフレームの良好な同期及びリアルタイム再生が可能となる。本発明は、以下の態様を考慮している。
【0008】
従来技術による方法では、それぞれのマルチメディアアプリケーションは、それ自身のスケジューラを含んでおり、該スケジューラをそれ自身のスレッドで実行していた。したがって、アプリケーション固有の全てのタスクが同期し、アプリケーション全体が必ずしも同期しない。ウェブブラウザにおけるマルチメディアプレーヤの統合の例では、それぞれのアプリケーションは、それ自身のスケジューラを有しており、マルチメディアプレーヤは、復号化して、ブラウザが表示するよりも速く、直ぐに見ることが出来るフレームをブラウザに与えることができる。しかし、ブラウザが1秒当り10フレームのみしか表示することが出来ない場合、1秒当り25のビデオ系列のフレームを復号化する必要は存在しない。同様に、以下CPUと呼ばれる中央処理ユニットが1秒当り10フレーム以上の復号化を扱うことが出来ない場合、マルチメディアプレーヤは、1秒当り25フレームでレンダリングする必要がない。
【0009】
従来技術の制限を克服するために、本発明によるマルチメディアアプリケーションのセットを再生する方法は、以下のステップを含んでいることを特徴としている。
ターゲット時間を提供するために、開始時間で共通のスケジューラを作成するステップ。
共通のスケジューラに該タスクを記録するステップ。
該ターゲット時間の機能として、該タスクの実行を制御するステップ。
【0010】
オペレーティングカーネルで実現されるような広範なスケジュール方法とは対照的に、上記共通のスケジューラの使用により、全体のアプリケーションは、リアルタイム再生の間に同期されたままにすることができる。
【0011】
さらに、本発明によるマルチメディアセットを再生する方法は、スケジューラにより与えられるターゲット時間、及びかかるタスクに関連するタイミング情報とからタスクについてのローカル時間を計算するステップをさらに含んでいること特徴とする。
かかる方法は、全体のアプリケーションの正しい動作を保証する。このために、3つの特定の実施の形態が提案される。
【0012】
第1実施の形態では、マルチメディアアプリケーションのセットを再生する方法は、上記計算するステップが、タスクの開始時間とスケジューラの開始時間の間の差からタスクに関連する開始時間オフセットを決定するサブステップと、ターゲット時間と開始時間オフセットの間の差からローカル時間を計算するサブステップとを含んでいることを特徴としている。
【0013】
たとえば、ビデオ系列が再生されているとき、ビデオ符号化タスクは、正しいフレームを復号化するためにターゲット時間を知る必要がない。しかし、ターゲットタスクは、ターゲット時間に対応するフレームを復号化しようとはじめに試み、ターゲット時間がゼロ秒でないために、この復号化に成功しない。これは、本発明の方法がこのタスクについてのローカル時間を計算しているためであり、これにより、共通のスケジューラという文脈で適切なビデオ復号化を保証することができる。
【0014】
第2実施の形態では、マルチメディアアプリケーションのセットの再生の方法は、タスクが外部ソースから到来するマルチメディアアプリケーションに含まれており、上記計算するステップは、スケジューラ開始時間と外部マルチメディアアプリケーションの間の差から外部マルチメディアアプリケーションの外部時間オフセットを決定するサブステップと、ターゲット時間と外部時間オフセットの和からローカル時間を決定するステップとを含んでいることを特徴としている。結果的に、本方法により、デジタル符号化データストリームは、ローカル記憶から読み出すことができるか、或いはブロードキャスト又はネットワークから受信することができる。
【0015】
第3の実施の形態では、マルチメディアのセットを再生する方法は、タスクが時間制限されたデータストリームに適用され、上記計算するステップが、データストリームの期間を決定するサブステップと、データストリームが終了するたびにカウンタをインクリメントするサブステップと、ターゲット時間と、該期間とカウンタとの積との間の差からローカル時間を決定するサブステップとを含んでいることを特徴としている。結果的に、ローカル時間は、ゼロからデータストリームの期間まで変化し、本方法は、かかるデータストリームをループすることができる。
本発明のこれら及び他の態様は、以下に記載される実施の形態を参照して明らかとなるであろう。
【0016】
[発明の実施の形態]
本発明は、添付図面を参照して、例示を介して記載される。
本発明は、マルチメディアアプリケーションのセットを再生する方法に関している。好適な実施の形態では、主要なアプリケーションは、マルチメディアプレーヤ(A2)である少なくとも第2のアプリケーションに統合されるVRMLブラウザ(A1)であり、全体のアプリケーションは、正確なタスクスケジューリングについて、広範且つ使い易いメカニズムを提供している。
【0017】
図2は、全体のアプリケーションのブロック図を示しており、オーディオ及びビデオ信号(SO,SC)をオーディオ−ビジュアル再生システム(LS,MON)に供給するために、デジタル符号化データストリーム(IS)を処理するものである。
【0018】
好適な実施の形態では、マルチメディアプレーヤは、MPEG−4プレーヤであり、デジタル符号化データストリームをオーディオストリーム(AS)と幾つかのビデオストリーム(VS1−VSn)に分離するためのデマルチプレクサ(DEMUX)を特に備えている。
【0019】
MPEG−4プレーヤは、以下のタスクを備えている。
オーディオストリームを復号化し(ADEC)、該復号化により提供される復号化されたオーディオフレーム(AF)をフィルタリングし(FIL)、該オーディオフレームをレンダリングするためのオーディオ復号化及びレンダリング(DR)に関する第1タイプのタスク(TTD1)。
ビデオストリームを復号化し(DEC)、ビデオオブジェクトを提供する第2タイプのタスク(TTD2)。該ビデオオブジェクトの復号化されたビデオフレーム(VF1−VFn)は、ビデオバッファ(BUF1−BUFn)に記憶されており、ビデオ復号化タスクは、それぞれのビデオストリームに関連している。 ビデオバッファに記憶されている復号化されたビデオフレームをレンダリング及び表示する(REN)ことに関する第3タイプのタスク(TTD3)。
【0020】
VRMLブラウザは、スクリーンへのオーディオ及びビデオフレームの更新及び再生(DIS)に関する第4タイプのタスク(TTD4)を備えている。このタスクは、第3のタスクにより提供されるオーディオ及びビデオフレームを受信し、それらを2次元のオブジェクトにレンダリング及び表示し、次いで、2次元のオブジェクトを3次元のオブジェクトにマッピングすることからなる。
なお、ビデオ系列を再生するVRMLノードであるMovie Texture nodeが存在するのと同じMPEG−4プレーヤが存在する。
【0021】
最後に、全体のアプリケーションは、前のタスクを記録し、ターゲット時間をかかるタスクに割当て、ターゲット時間の機能として該タスクの実行を制御するスケジューラを備える。
【0022】
特に、スケジューラは、タスクを記録することができるソフトウェアモジュールとして定義される。タスクが一旦記録されると、スケジューラは、かかるタスクが正しい時間で実行されることを保証する。スケジューラは、スケジュール手記で始動される。たとえば、1秒当り25フレームのビデオ系列では、周期は40ミリ秒である。スケジューラは、タスクに関してループを管理する。スケジューラは記録されたタスクのリストにおけるそれぞれのタスクを次々と実行する。タスクは、その実行ルーチンをコールすることにより実行される。
【0023】
スケジューラの主要な役割は、ターゲット時間を保持することである。ターゲット時間は、システムクロックを使用してスケジューラにより計算される。たとえば、ビデオ系列が12:45:33で開始された場合、メディア時間は再生の22秒後の22秒であり、12:45:55であるシステムクロックから計算される。スケジューラは、その時間で実行されるビデオ及びオーディオ復号化が22秒のメディア時間を有するデジタル復号化データストリームにおけるデータに対応することを保証する。
【0024】
スケジューラの狙いは、プレーヤが余りに速く実行せずに、ブラウザ及び他のタスク及びプログラムに馴染んでいることを確認することである。このために、スケジューラは、その実行の間に経過した有効時間をそれぞれのループの最後で計算し、該有効時間とスケジューリング周期とを比較する。このループの実行がスケジューリング周期よりも少ない時間を要する場合、スケジューラは、その時間差の間にオペレーティングシステムにスリープをコールする。
【0025】
これにより、第1に、プレーヤが余りに速すぎないこと、第2に、プレーヤが他のタスク又はアプリケーションに馴染んでいることが効果的に保証される。これは、オペレーティングイステムへのスリープコールは、オペレーティングシステムのカーネルが他のタスク及びアプリケーションのスワッピングとなる。
【0026】
スケジューラの別の狙いは、プレーヤが余りに遅くないことを確認することである。このために、スケジューラは、それぞれのタスク実行ルーチンにターゲット時間を割当てる。次いで、それぞれのタスクは、その時間に何を行えばよいかが分かる。
【0027】
従来技術では、それぞれのビデオ系列は、それ自身のスケジューラを有しており、それ自身のスレッドにおいてスケジューラを実行している。デコーダは、復号化されたビデオフレームをレンダリング及び表示タスクに与える。かかるタスクは、MPEG−4シーンを再構成して、Direct Draw surfaceと呼ばれる直ぐに見ることができるフレームに該MPEG−4シーンを配置する。
【0028】
ブラウザが2つの異なるビデオ系列を2つの異なる時間で開始することができる本出願では、上記内容は該当しない。この場合、ビデオレンダリング及び表現タスクは、Direct Draw surfaceを与えるのみである。ブラウザのレンダリングタスクは、3次元のオブジェクトへのマッピングを実行する。
【0029】
本発明によるマルチメディアアプリケーションのセットの再生方法は、共通のスケジューラを共有する。いずれか他の初期化の前に、1秒当り25フレームのビデオ系列に対応する40ミリ秒で空のスケジューラが作成される。次いで、VRMLブラウザのメインループに対応するタスクが作成され、タスクのスケジューラリストに挿入される。Movie Texture nodeに対応するMPEG−4ビデオ系列が開始するとき、ビデオ復号化、ビデオレンダリング及びプレゼンティング、オーディオ復号化及びレンダリングタスクである要求されるタスクは、スケジューラに挿入される。
【0030】
前のターゲット時間と新たなターゲット時間の間の差が所与の閾値よりも大きくなるとき、全体のアプリケーションが同期を回復することができるように、タスクは実行する処理量を低減する。このために、マルチメディアアプリケーションのセットを再生する方法は、タスクに優先レベルを与えるステップをさらに含んでおり、スケジューラは、ターゲット時間及び該タスクの優先レベルの機能として、タスクの実行を制御する。
【0031】
好適な実施の形態では、4つの特定なCPUスケーラビリティメカニズムが実現される。最も高い優先レベルが、オーディオ復号化及びレンダリングシステムに与えられ、次いでビデオ復号化タスクに与えられ、次いでビデオレンダリングタスクに与えられ、最終的に最も低い優先レベルがブラウザ表示更新タスクに与えられる。
プレーヤを同期し続ける第1のメカニズムは、CPUがビジー状態である時にブラウザ表示自身の更新をスキップすることである。
【0032】
プレーヤを同期し続ける第2のメカニズムは、CPUがビジー状態である時にレンダリングフレームをスキップすることである。上記記載のスケジューラにより、以下のように実現される。ビデオレンダリングタスク(REN)がターゲット時間で実行コールを受信したとき、該タスクは、ビデオフレームバッファ(BUF)をアドレス指定して、このターゲット時間に最も近いビデオフレーム(VF)を見つける。次いで、ビデオレンダリングタスクは、そのフレームのみを表示してリターンする。
【0033】
このアルゴリズムの結果的な作用は、以下である。十分なCPUサイクルが存在しない場合、1秒当たり25フレームでのオリジナルのビデオ系列は、1秒当り12フレームという低いフレームレートでレンダリングされる。これは、MPEG−4プレーヤがさもなければ十分な能力がないマシンで実行する可能にする非常に有効なメカニズムである。また、他のアプリケーションで同時に実行することも可能である。ユーザが見るのは、CPUがビジー状態にあるときビデオフレームレートが低くなることのみである。
【0034】
第4のCPUスケーラビリティメカニズムは、第1のメカニズムがリアルタイムとペースを維持するために十分ではないときに、ビデオ復号化をスキップすることからなる。しかし、MPEG−4ビデオ復号化、及びより一般的に、ほとんどのためのビデオ符号化スキームは、デジタル符号化データストリームにおけるいずれかの点で再開することができない。これは、符号化効率を向上するために、隣接するフレーム間の時間冗長度をビデオ符号化アルゴリズムが抽出するという事実による。これらのフレームは、予測フレーム又はPフレームと呼ばれ、エンコーダは、現在のフレームと前のフレームの間の差を送出するのみである。その場合、前のフレームが復号化されていなければならない。
【0035】
ビデオ標準は、それのみで復号化することができるイントラ符号化フレーム又はIフレームと呼ばれる別の種類のフレームを正規化する。これらのフレームは、復号化を開始することができるデジタル符号化データストリームにおけるポイントであるランダムアクセスポイントである。したがって、ビデオ復号化タスク(DEC)が復号化をスキップすることを決定したとき、ビデオ表示は、ランダムアクセスポイントに対応するターゲット時間に到達するまで、最後の画像をフリーズする。ビデオ系列は、1秒毎にIフレームで典型的に符号化される。結果として、スケジューラは、ビデオ復号化を停止し、ビデオフレームレートの極端な低減と等価である利用可能なCPUサイクルの量に依存してビデオ復号化を再開する。
【0036】
ビデオフリーズがユーザにはむしろ混乱するものであるので、この方法は、CPUメカニズムが、プレーヤのリアルタイムとのペースの維持を助けるのを失敗したときにのみ使用される。スケジューラは、典型的にビデオフレームレートで3つの主要なタスクに関して急速にループするので、オーディオデータは、ビデオデータと同期していなければならない。
【0037】
第4のメカニズムは、2つの前のメカニズムがリアルタイムとのペースを維持するのに十分でない場合に、オーディオ復号化をスキップすることからなる。かかるメカニズムは、沈黙を生じさせる。これは、適切なフィルタ(FIL)が適用されて、この不自然な沈黙の開始と終了でスクラッチノイズを回避するためである。オーディオ復号化タスク(ADEC)は、この沈黙に対応するサウンドサンプルを効率的に生成しなければならない。
【0038】
この場合、スケジューラ(SCH)により与えられるターゲット時間が使用され、CPUがビジーでないときに、オーディオ及びビデオフレームの正確な同期により、通常の再生を再開することができるように、この沈黙の正確な長さを計算する。幸いなことに、オーディオ符号化アルゴリズムは、ランダムアクセスポイントの周期がビデオ符号化の周期よりも非常に小さくなっている。これは、通常数ミリ秒の範囲である。したがって、通常のオーディオ符号化は、即座に再開することができる。オーディオ符号化がビデオ符号化よりもCPUの集中度が低いので、これは、コンピュータが、タイムクリティカルなタスクにより極度にビジーであるのとき、又はユーザがCPUの集中度が高いアプリケーションを開始しているときにのみ典型的に起こる。
【0039】
この新しいアプローチにより、VRMLブラウザと少なくとも1つのMPEG−4プレーヤの間で共有される共通のスケジューラが存在し、共通の時間スレッドが共有される。
【0040】
マルチメディアアプリケーションのセットを再生する方法は、スケジューラにより提供されるターゲット時間と、かかるタスクに関連するタイミング情報とからタスクについてのローカル時間を計算するステップをさらに備えている。
【0041】
映画が再生されているとき、対応するデコーダは、正しいフレームを復号化するためにターゲット時間を知る必要がある。問題は、ユーザが、ブラウザの主要部を開始した後にビデオ系列を20秒開始させたい場合、デコーダがターゲット時間に対応するフレームを復号化しようとすることである。このターゲット時間は、20秒であり0秒ではない。
【0042】
この問題を解決するために、開始時間オフセットとターゲット時間との間の差からローカル時間が計算される。
ローカル時間=ターゲット時間−開始時間オフセット
開始時間オフセットは、タスクの開始時間とスケジューラの開始時間の間の差から計算される。
開始時間オフセット=タスクの開始時間−スケジューラの開始時間
タスクが実行されなければならないとき、その実行ルーチンについて、かかるローカル時間を計算し、それ自身の時間参照を有することになる。結果として、スケジューラにより提供されるターゲット時間は、他のタスクについて変更されない。
かかるメカニズムにより、それぞれのタスクは、再生されるビデオ系列の合致するそれ自身の時間参照を有し、スケジュールの全体的な観念をなお有する。
【0043】
本発明による方法により、デジタル符号化データストリームをローカル記憶から読み出すことを可能にするが、ブロードキャスト又はネットワークからの受信も可能にするべきである。
このために、ネットワークから到来するMPEG−4ファイルとMPEG−4データストリーム(IS)の両者は、図3に示されるようなアクセスユニット(AU)のプロデューサとして考えることができる。この抽象レイヤにより、MPEG−4タイプのソースに関わらず、アクセスユニットを読み出して復号化するプレーヤの設計が可能となる。
【0044】
エンコーダ側では、それぞれのアクセスユニットは、最初のタイムスタンプについてゼロで開始し、ミリ秒での時間(t)に従いインクリメントされ、パケット化されるそれ自身の構成タイムスタンプ(CTS)に与えられる。これらの構成タイムスタンプは、デコーダに時間の観念を提供し、したがって、デコーダの復号化が速すぎるか、遅すぎるかをデコーダに示す。
【0045】
現在の構成スタンプは、デコーダクロックに合致している。残念なことに、CPUロード、ネットワーク遅延又は他の問題は、デコーダと復号化される現在のアクセスユニットの間にラグを生成する可能性がある。その場合、デコーダは、幾つかのアクセスユニットをスキップしなければならない場合がある。これは、すなわち、最新の状態にするために次にジャンプしなければならない。
【0046】
たとえば、MPEG−4ウェブカムビデオサーバが、午後12:00にネットワークのどこかで開始した場合、リアルタイムエンコーダは、0で開始する構成タイムスタンプをインクリメントして、アクセスユニットを生成する。ここで、ウェブカムクライアントを有する主要なアプリケーションが12:00+10200ミリ秒で開始した場合、プレーヤは、0に等しい構成タイムスタンプによりアクセスユニットを復号化しようとする。このことは、この例では、0から10180の範囲での構成タイムスタンプを有するアクセスユニットは利用することができないので不可能である。
【0047】
デコーダが利用可能でないアクセスユニットをサーチすることを回避するために、外部の時間オフセットがデコーダの時間ラインに追加される。かかるオフセットは、すなわち、この例では10200ミリ秒である、受信された最初のアクセスユニットの構成タイムスタンプに対応する。結果として、復号化の時間参照は、スケジューラにより提供されるターゲット時間に外部の時間オフセットを加えたものに等しい。
ローカル時間=ターゲット時間+外部の時間オフセット
共通のスケジューラの文脈では、時間ラインは、ユニークであり、全てのタスクにより共有される。スケジューラは、全体のアプリケーションについてタイムシェアリングの役割を果たし、他のいずれかの前に開始しなければならない。時間ラインは、0ミリ秒で開始し、特定のタスクに対して変化することはできない。これは、時間ラインが全ての他のタスクに作用するからである。受信された最初のアクセスユニットの構成タイムスタンプに従い、スケジューラの代わりに、タスク自身に対して時間オフセットを報告することにより、共通のスケジューラなしで同期しなければならない2つの独立なアプリケーション間の時間シフトについて、作用することができる。
【0048】
本発明によるマルチメディアアプリケーションのセットを再生する方法は、時間制限されたデータストリームに対しても適用することができる。全体のアプリケーションの終了まで、スレッドを停止することができないときに特に有効である。これらの条件では、ビデオ復号化タスクが入力データストリームに関してループすると仮定されるときに問題が生じる。これは、スケジューラにより提供される時間、及びデータストリームのアクセスユニットが同期しなくなるためである。
【0049】
この解決は、MPEG−4ビデオ復号化タスクに通過される時間を変えることからなり、スケジューラにより所有されない。データストリームの終了が到達したときに、時間がリセットされなければならない。最初に、それが起こったときに、データストリーム期間が記憶され、ゼロに初期化されているカウンタは、データストリームの終了に到達するたびにインクリメントされる。次いで、ローカル時間は、MPEG−4ビデオ復号化タスク内で、以下のように計算される。
ローカル時間=ターゲット時間−(データストリーム期間×カウンタ)
ターゲット時間は、ゼロから無限大まで変化するが、ローカル時間は、ゼロからデータストリーム期間まで変化し、データストリームの終了に到達するたびにリセットされる。次いで、MPEG−4ビデオ符号化タスクは、データストリームに関してループすることができる。
【0050】
あるケースでは、両タイプのオフセットを適用することができ、累積することができる。たとえば、ウェブカムサーバが12:00で開始し、主要なアプリケーションが12:10で開始し、ビデオ復号化タスクが12:12で開始するものとする。その場合、ローカル時間は、以下のように計算することができる。
ローカル時間=ターゲット時間−開始時間+外部の時間オフセット
なお、本発明による方法は、かかるアプリケーションに含まれるタスクがインデックス付けされた時間データを扱うマルチメディアアプリケーションのいずれかのセットに拡張することができる。
【0051】
本方法は、CPUサイクルの浪費を回避するためにCPUの負荷を伸張に管理しなければならないように、復号化の複雑さを極端に変化することができるMPEG−4データに対するアプリケーション向けに記載されてきた。しかし、本方法は、マルチメディアデータを提供する他の符号化手法に対しても適用することができる。
【0052】
図2は、本発明の1つの可能な実施の形態を表現している。したがって、この図は、異なるブロックとして異なる機能を示しているが、1つのソフトウェア項目が幾つかの機能を実行する可能性を決して排除するものではない。また、ソフトウェア項目のアセンブリが1つの機能を実行する可能性を排除するものでもない。上記アプリケーション又はタスク以外にも、本発明の範囲から逸脱することなしに可能である。
【0053】
本発明による方法は、集積回路で実現することができ、セットトップボックス又はコンピュータに統合することができる。プログラムメモリにロードされる命令のセットにより、集積回路にかかる方法を実行させる。命令のセットは、たとえばディスクのようなデータキャリアに記憶される場合がある。命令のセットは、次いでそれがその役割を実行する集積回路のプログラムメモリにロードするように、データキャリアから読み出すことができる。
【0054】
動詞「備える」及びその派生は、特許請求の範囲に定義された以外のいずれか他のステップ及び構成要素の存在を排除するものではない。特許請求の範囲における参照符号は、請求項を限定するものとして解釈されるべきではない。
【図面の簡単な説明】
【図1】
従来技術によるマルチメディアアプリケーションのセットを再生する方法に関するブロック図である。
【図2】
本発明によるマルチメディアアプリケーションのセットの再生の方法に関するブロック図である。
【図3】
MPEG−4データストリームの構造を示す図である。
Claims (9)
- それぞれがタスクのリストを含むマルチメディアアプリケーションのセットを再生する方法であって、
ターゲット時間を提供するために、開始時間で共通のスケジューラを作成するステップと、
前記共通のスケジューラに前記タスクを登録するステップと、
前記ターゲット時間の機能として前記タスクの実行を制御するステップと、
を備える方法。 - 前記スケジューラにより提供される前記ターゲット時間と、該タスクに関連するタイミング情報とからタスクについてのローカル時間を計算するステップをさらに備える、
ことを特徴とする請求項1記載のマルチメディアアプリケーションのセットを再生する方法。 - 前記計算するステップは、
前記タスクの開始時間と前記スケジューラの開始時間の間の差からタスクに関連する開始時間オフセットを決定するサブステップと、
前記ターゲット時間と前記開始時間オフセットの間の差から前記ローカル時間を計算するサブステップとを備える、
ことを特徴とする請求項2記載のマルチメディアアプリケーションのセットを再生する方法。 - 前記タスクは、外部ソースから到来するマルチメディアアプリケーションに含められ、前記計算するサブステップは、
前記スケジューラの開始時間と前記外部のマルチメディアアプリケーションの開始時間の間の差から、前記外部のマルチメディアアプリケーションの外部時間オフセットを決定するサブステップと、
前記ターゲット時間と前記外部時間オフセットとの和から前記ローカル時間を計算するサブステップとを備える、
ことを特徴とする請求項2記載のマルチメディアアプリケーションのセットを再生する方法。 - 前記タスクは、時間制限されたデータストリームに適用され、前記計算するステップは、
前記データストリームの期間を決定するサブステップと、
前記データストリームが終了するたびに、カウンタをインクリメントするサブステップと、
前記ターゲット時間と、前記期間と前記カウンタとの積との差から前記ローカル時間を計算するサブステップとをさらに備える、
ことを特徴とする請求項2記載のマルチメディアアプリケーションのセットを再生する方法。 - 優先レベルをタスクに割当てるステップをさらに備え、
前記スケジューラは、前記ターゲット時間と前記優先レベルとの機能として、前記タスクの実行を制御するために適合される、
ことを特徴とする請求項1記載のマルチメディアアプリケーションのセットを再生する方法。 - 前記マルチメディアアプリケーションのうちの1つは、
デジタル符号化データストリームに含まれているオーディオストリームを復号化して、前記復号化により与えられる前記復号化されたオーディオフレームをレンダリングするためのオーディオ復号化及びレンダリングのタスクと、
前記デジタル符号化データストリームに含まれているビデオストリームを復号化して、復号化されたビデオフレームをビデオバッファに供給するための少なくとも1つのタスクと、
前記ビデオバッファに記憶されている前記復号化されたビデオフレームをレンダリングするためのタスクと、
を含むオーディオビジュアルアプリケーションであり、
別のアプリケーションは、オーディオ及びビデオフレームをオーディオ−ビデオ再生システムに再生するためのタスクを含むブラウザであり、
前記タスクは、それらの優先レベルに従い列挙され、最優先レベルは、前記オーディオ復号化及びレンダリングタスクに与えられている、
ことを特徴とする請求項6記載のマルチメディアアプリケーションのセットを再生する方法。 - セットトップボックス向けのコンピュータプログラムプロダクトであって、前記セットトップボックスにロードされたときに、前記セットトップボックスに請求項1乃至7のいずれか記載の方法を実行させるための命令のセットを含むコンピュータプログラムプロダクト。
- コンピュータ向けのコンピュータプログラムプロダクトであって、前記コンピュータにロードされたときに、前記コンピュータに請求項1乃至7のいずれか記載の方法を実行させるための命令のセットを含むコンピュータプログラムプロダクト。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP00402295 | 2000-08-16 | ||
PCT/EP2001/008928 WO2002015564A1 (en) | 2000-08-16 | 2001-08-02 | Method of playing multimedia applications |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004507172A true JP2004507172A (ja) | 2004-03-04 |
Family
ID=8173813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002520549A Pending JP2004507172A (ja) | 2000-08-16 | 2001-08-02 | マルチメディアアプリケーションを再生する方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6564382B2 (ja) |
EP (1) | EP1312206A1 (ja) |
JP (1) | JP2004507172A (ja) |
KR (1) | KR20020039693A (ja) |
CN (1) | CN1393094A (ja) |
WO (1) | WO2002015564A1 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6760764B1 (en) * | 2000-08-09 | 2004-07-06 | Alcatel Canada Inc. | Real time stamp distribution |
US6959327B1 (en) | 2000-08-29 | 2005-10-25 | International Business Machines Corporation | System and method for dispatching and scheduling network transmissions with feedback |
US7150017B1 (en) * | 2000-08-29 | 2006-12-12 | International Business Machines Corporation | System and method for scheduling digital information transmission and retransmission on a network during time slots |
US7403994B1 (en) * | 2000-08-29 | 2008-07-22 | International Business Machines Corporation | Method of doing business over a network by transmission and retransmission of digital information on a network during time slots |
DE602005027837D1 (de) * | 2004-05-13 | 2011-06-16 | Qualcomm Inc | Zustellung von informationen über einen kommunikationskanal |
ATE356507T1 (de) * | 2004-09-27 | 2007-03-15 | Ibm | System und verfahren zur dynamischen planung von aufgaben in abhängigkeit von der position eines mobilen benutzers |
CN100437546C (zh) * | 2005-06-30 | 2008-11-26 | 腾讯科技(深圳)有限公司 | 一种实现音频和视频同步的方法 |
US20070006065A1 (en) * | 2005-07-01 | 2007-01-04 | Microsoft Corporation | Conditional event timing for interactive multimedia presentations |
US20070006238A1 (en) * | 2005-07-01 | 2007-01-04 | Microsoft Corporation | Managing application states in an interactive media environment |
US20070006078A1 (en) * | 2005-07-01 | 2007-01-04 | Microsoft Corporation | Declaratively responding to state changes in an interactive multimedia environment |
US7500175B2 (en) * | 2005-07-01 | 2009-03-03 | Microsoft Corporation | Aspects of media content rendering |
US20070006062A1 (en) * | 2005-07-01 | 2007-01-04 | Microsoft Corporation | Synchronization aspects of interactive multimedia presentation management |
US8799757B2 (en) | 2005-07-01 | 2014-08-05 | Microsoft Corporation | Synchronization aspects of interactive multimedia presentation management |
US8656268B2 (en) * | 2005-07-01 | 2014-02-18 | Microsoft Corporation | Queueing events in an interactive media environment |
US20070006079A1 (en) * | 2005-07-01 | 2007-01-04 | Microsoft Corporation | State-based timing for interactive multimedia presentations |
CN1940858B (zh) * | 2005-09-26 | 2011-06-15 | 深圳市朗科科技股份有限公司 | 媒体播放装置上实现多任务的方法 |
WO2007043824A1 (en) * | 2005-10-13 | 2007-04-19 | Lg Electronics Inc. | Method and apparatus for encoding/decoding |
US8005553B2 (en) * | 2006-09-29 | 2011-08-23 | Fisher-Rosemount Systems, Inc. | Automatic configuration of synchronous block execution for control modules run in fieldbus networks |
US7761171B2 (en) * | 2006-09-29 | 2010-07-20 | Fisher-Rosemount Systems, Inc. | Methods and apparatus to generate schedules to execute functions in a process control system |
US7861150B2 (en) * | 2006-11-07 | 2010-12-28 | Microsoft Corporation | Timing aspects of media content rendering |
CN102057356A (zh) | 2008-06-11 | 2011-05-11 | 高通股份有限公司 | 用于测量任务负载的方法和*** |
KR101324222B1 (ko) | 2008-09-04 | 2013-11-01 | 삼성테크윈 주식회사 | 영상 처리 장치 |
US8140057B2 (en) * | 2008-10-10 | 2012-03-20 | International Business Machines Corporation | Automated call context notification |
JP2015106167A (ja) * | 2013-11-28 | 2015-06-08 | ソニー株式会社 | 情報処理装置、情報処理方法および記憶媒体 |
CN107506176B (zh) * | 2016-06-14 | 2019-07-12 | 华为技术有限公司 | 一种确定解码任务的方法和装置 |
CN106095115B (zh) * | 2016-06-30 | 2019-05-17 | 北京智能管家科技有限公司 | 一种应用程序调度处理方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946049A (en) * | 1993-07-26 | 1999-08-31 | Pixel Instruments Corp. | Apparatus and method for synchronizing multiple asynchronous signals |
JP3130464B2 (ja) * | 1996-02-02 | 2001-01-31 | ローム株式会社 | データ復号装置 |
US5953005A (en) | 1996-06-28 | 1999-09-14 | Sun Microsystems, Inc. | System and method for on-line multimedia access |
USRE39115E1 (en) * | 1996-07-05 | 2006-06-06 | Matsushita Electric Industrial Co., Ltd. | Method for display time stamping and synchronization of multiple video object planes |
ATE331390T1 (de) * | 1997-02-14 | 2006-07-15 | Univ Columbia | Objektbasiertes audiovisuelles endgerät und entsprechende bitstromstruktur |
US5959684A (en) * | 1997-07-28 | 1999-09-28 | Sony Corporation | Method and apparatus for audio-video synchronizing |
EP1090505A1 (en) * | 1998-06-26 | 2001-04-11 | General Instrument Corporation | Terminal for composing and presenting mpeg-4 video programs |
US6016166A (en) * | 1998-08-31 | 2000-01-18 | Lucent Technologies Inc. | Method and apparatus for adaptive synchronization of digital video and audio playback in a multimedia playback system |
-
2001
- 2001-08-02 KR KR1020027004868A patent/KR20020039693A/ko not_active Application Discontinuation
- 2001-08-02 CN CN01803149A patent/CN1393094A/zh active Pending
- 2001-08-02 JP JP2002520549A patent/JP2004507172A/ja active Pending
- 2001-08-02 WO PCT/EP2001/008928 patent/WO2002015564A1/en not_active Application Discontinuation
- 2001-08-02 EP EP01971849A patent/EP1312206A1/en not_active Withdrawn
- 2001-08-14 US US09/929,117 patent/US6564382B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1393094A (zh) | 2003-01-22 |
US20020049969A1 (en) | 2002-04-25 |
EP1312206A1 (en) | 2003-05-21 |
US6564382B2 (en) | 2003-05-13 |
KR20020039693A (ko) | 2002-05-27 |
WO2002015564A1 (en) | 2002-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6564382B2 (en) | Method for playing multimedia applications | |
JP3739609B2 (ja) | マルチメディアの再生システムにおけるディジタルのビデオおよびオーディオの再生の適応型同期化のための方法および装置 | |
US6262776B1 (en) | System and method for maintaining synchronization between audio and video | |
Walpole et al. | A player for adaptive MPEG video streaming over the Internet | |
JP4066058B2 (ja) | マルチメディア・システムのためのプログラマブルなオーディオ−ビデオ同期方法および装置 | |
KR101350754B1 (ko) | 채널 변경 시간을 감소시키고 채널 변경 동안 오디오/비디오 콘텐츠를 동기화하는 방법 | |
TWI342162B (en) | Video processing method and computer-readable storage medium therefor | |
JP2000232649A (ja) | Mpegビデオ復号器及びmpegビデオ復号方法 | |
JP2008500752A (ja) | ビデオデータの適応型復号 | |
CN103190092A (zh) | 用于流数字内容的同步重放的***和方法 | |
JP2005278152A (ja) | 映像音声再生装置及び映像音声再生方法 | |
JP2000125260A (ja) | 動画像伝送サーバおよび同サーバを用いた動画像伝送システム並びに動画像伝送制御方法 | |
WO2002028097A2 (en) | Client-based interactive digital television architecture | |
US20020023120A1 (en) | Method of playing multimedia data | |
US7263275B2 (en) | System and method of manipulating a system time clock in an audio/video decoding system | |
JP4933145B2 (ja) | ネットワーク受信機 | |
JP2009201033A (ja) | 表示制御装置、及び方法、プログラム | |
JPH08331560A (ja) | デコーダおよびmpegビデオデコーダ | |
US20030165322A1 (en) | System and method for providing personal video recording trick modes | |
US20050019004A1 (en) | Playback of interactive television applications | |
KR20050026052A (ko) | 사용자에 의해 제어되는 트릭 플레이 동작 | |
JPH114446A (ja) | 情報信号デコード方法及び装置 | |
JP2004048598A (ja) | 画像データ再生装置及び方法 | |
US20060008248A1 (en) | Optimal buffering and scheduling strategy for smooth reverse in a DVD player or the like | |
WO1998042139A1 (en) | Video decoder with reduced size display buffer |