(57)【要約】ストリーミングアプリケーションは、しばしば、マルチプロセッサシステムによって処理され得る複数のタスクに分割され得る。これらのタスクは、前記タスク（１００）によって処理されるべきデータを有する待ち行列（１０２、１０４）を介して互いに接続される。様々なプロセッサによるデータのアクセスの同期をとるために、待ち行列内の前記データを有するパケットの予め規定された状態の変更と、前記タスク自体とを保護するセマフォ（１１８）を取得する方法が供給される。
2004538562.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサによって実行される少なくとも1つの処理ステップを有し、前記少なくとも1つの処理ステップは処理データを有する、メディアファイルを処理する方法であって、前記少なくとも１つの処理ステップが、
前記少なくとも１つの処理ステップを保護するセマフォを前記複数のプロセッサのうちの１つによって要求する第１ステップと、
第１待ち行列から第１処理パケットを取得し、前記第１処理パケットは前記処理データを有する第２ステップと、
前記第１処理パケットが複数の予め規定された状態のうちの第１の予め規定された状態を持つまで待つ第３ステップと、
前記第１処理パケットの前記第１の予め規定された入力状態を前記複数の予め規定された状態のうちの第２の予め規定された状態に変える第４ステップと、
前記複数のプロセッサのうちの前記１つにより前記セマフォを開放する第５ステップと、
前記処理データを読み出す及び／又は書き込むステップを有する前記メディアファイルを処理する第６ステップと、
前記第１処理パケットの前記第２の予め規定された状態を前記複数の予め規定された状態のうちの第３の予め規定された状態に変える第７ステップとを更に有することを特徴とするメディアファイルを処理する方法。
【請求項２】
前記第２ステップが、第２待ち行列から第２処理パケットを取得するステップを更に有し、
前記第３ステップが、前記第２処理パケットが前記複数の予め規定された状態のうちの前記第３の予め規定された状態を持つまで待つステップを更に有し、
前記第４ステップが、前記第２処理パケットの前記第３の予め規定された状態を前記複数の予め規定された状態のうちの第４の予め規定された状態に変えるステップを更に有し、
前記第７ステップが、前記第２処理パケットの前記第４の予め規定された状態を前記複数の予め規定された状態のうちの前記第１の予め規定された状態に変えるステップを更に有することを特徴とする請求項１に記載のメディアファイルを処理する方法。
【請求項３】
前記第３ステップが共用メモリのコンテンツをアップデートするサブステップを更に有し、前記共用メモリは前記複数のプロセッサによって共用されていることを特徴とする請求項１に記載のメディアファイルを処理する方法。
【請求項４】
処理データに対して実行される少なくとも１つの処理ステップを実行し、前記処理ステップは前記処理データを読み出す及び／又は書き込むステップを有する複数のプロセッサ手段と、
第１処理パケットを有し、前記第１処理パケットは前記処理データを有する第１待ち行列手段とを有する、メディアファイルを処理するシステムであって、
前記複数のプロセッサのうちの１つによる前記処理ステップを保護するセマフォ手段と、
複数の予め規定された状態のうちの第１の予め規定された状態を有する状態手段と、
入力パケットの第１の予め規定された状態を待つ待ち手段と、
前記第１の予め規定された状態を前記複数の予め規定された状態のうちの第２の予め規定された状態に変える変更手段とを更に有することを特徴とするメディアファイルを処理するシステム。
【請求項５】
第２パケットを有し、前記第２パケットは第２処理データを有する第２待ち行列手段を更に有し、
前記状態手段は、前記複数の予め規定された状態のうちの第３の予め規定された状態を更に有し、
前記変更手段は、前記第３の予め規定された状態を前記複数の予め規定された状態のうちの第４の予め規定された状態に更に変えることを特徴とする請求項４に記載のメディアファイルを処理するシステム。
【請求項６】
前記複数のプロセッサのための共用コンテンツを有するメモリ手段を更に有することを特徴とする請求項５に記載のメディアファイルを処理するシステム。
【請求項７】
請求項１乃至３の何れか一項に記載の方法を行なうよう設計されたコンピュータプログラム。
【請求項８】
請求項７に記載のコンピュータプログラムを有する記憶装置。
【請求項９】
請求項４乃至６の何れか一項に記載のシステムを有するテレビ。
【請求項１０】
請求項４乃至６の何れか一項に記載のシステムを有するセットトップボックス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサによって実行される少なくとも1つの処理ステップを有し、前記少なくとも1つの処理ステップは処理データを有する、メディアファイルを処理する方法に関する。
【０００２】
更に、本発明は、処理データに対して実行される少なくとも１つの処理ステップを実行し、前記処理ステップは前記処理データを読み出す及び／又は書き込むステップを有する複数のプロセッサ手段と、
第１処理パケットを有し、前記第１処理パケットは前記処理データを有する第１待ち行列手段から読み出すステップとを有する、メディアファイルを処理するシステムに関する。
【背景技術】
【０００３】
上記のような方法の実施例は、国際特許出願公開公報第WO99/22296号から既知である。ここでは、第1局(first station)及び１つ以上の第２局の間でセマフォをベースとした同期が行なわれる。各局のために、単一の２値セマフォが設けられる。第1局は、第１局自身のセマフォの第1状態に対して第２状態を持つような全ての第２局のセマフォをチェックする。次いで、第１局は、第１アクセス動作を実行し、第１状態を反転(flip)させる。さもなければ、それは、第１アクセス動作に先んじる。第２局は、第２局自身のセマフォの第２状態に対して第１状態を持つような第１局のセマフォをチェックする。次いで、第２局は、第２アクセス動作を実行し、第２状態を反転させる。さもなければ、それは、第２アクセス動作に先んじる。しかしながら、各局は、実行を決定する前に他局のセマフォをチェックしなければならない。それ故、各局は、処理ステップのネットワーク内の次の処理ステップ又は次の局を知らなければならず、これは、より柔軟性の乏しいアーキテクチャをもたらす処理ステップの間の依存状態を作成する。
【発明の開示】
【課題を解決するための手段】
【０００４】
本発明の目的は、改善された方法でパケットを取得し、より柔軟なアーキテクチャを可能にする方法を供給することにある。この目的を達成するために、前文に基づいてメディアファイルを処理する方法は、少なくとも１つの処理ステップが、
前記少なくとも１つの処理ステップを保護するセマフォを複数のプロセッサのうちの１つによって要求する第１ステップと、
第１待ち行列から第１処理パケットを取得し、前記第１処理パケットは処理データを有する第２ステップと、
前記第１処理パケットが複数の予め規定された状態のうちの第１の予め規定された状態を持つまで待つ第３ステップと、
前記第１処理パケットの前記第１の予め規定された入力状態を前記複数の予め規定された状態のうちの第２の予め規定された状態に変える第４ステップと、
前記複数のプロセッサのうちの前記１つにより前記セマフォを開放する第５ステップと、
前記処理データを読み出す及び／又は書き込むステップを有する前記メディアファイルを処理する第６ステップと、
前記第１処理パケットの前記第２の予め規定された状態を前記複数の予め規定された状態のうちの第３の予め規定された状態に変える第７ステップとを更に有することを特徴とする。
【０００５】
待ち行列から第１パケットを取得する前に処理ステップを保護するセマフォを要求することにより、前記第１パケットと、取得されるべき次のパケットを示すポインタの対応するアップデートとが、１つのアトミック・アクション内で要求され得る。これは、前記待ち行列からの前記パケットが処理されんとするシーケンスの非保護をもたらし得る、他のプロセッサが同時に同じパケットを取得することを防止する。更に、前記第１パケットの予め規定された状態を待つことにより、前記第１パケットの処理が該第１パケットの適正なコンテンツで行なわれる。待ち行列を介して各処理ステップを切り離すことにより、前記処理ステップは互いに気付かず、このことは、前記待ち行列及び前記第１パケットが処理ステップのための入力又は出力待ち行列としての役割を果たすことが出来るより柔軟なアーキテクチャをもたらす。
【０００６】
本発明による方法の実施例は請求項２に記載されている。要求セマフォの保護内で第１パケットを取得することに加えて第２パケットを取得することにより、前記第１パケットのコンテンツの処理の結果が第２パケット内に記憶されるシーケンスが保護される。更に、前記第２パケットを書き換えることが許容される前には、該第２パケットのありうる前のコンテンツは、新しいコンテンツで書き換えられない。データの処理は前記セマフォの保護の外側で行なわれることから、第１プロセッサが全データを処理し終えるまで他のプロセッサはストールされない。ストリーミングアーキテクチャ内では、第１待ち行列及び前記第１パケットが処理ステップのための入力待ち行列及び入力パケットとみなされ得るのに対して、第２待ち行列及び前記第２パケットは出力待ち行列及び出力パケットとみなされ得る。
【０００７】
本発明による方法の実施例は請求項３に記載されている。セマフォの保護内で共用メモリをアップデートすることにより、前記共用メモリのアップデートされたコンテンツは、全ての関連するプロセッサにとって同時に利用可能になり、取得される入力及び出力パケットのコンテンツと一貫性がある。このアップデートが前記セマフォの保護内で行なわれることから、処理ステップによる前記共用メモリを読み出す及び書き込むステップはアトミック・アクション内で行なわれる。
【０００８】
更に、本発明の目的は、改善された方法でパケットを取得し、より柔軟なアーキテクチャを可能にするシステムを供給することにある。この目的を達成するために、前文に基づいてメディアファイルを処理するシステムは、当該システムが、
複数のプロセッサのうちの１つによる処理ステップを保護するセマフォ手段と、
複数の予め規定された状態のうちの第１の予め規定された状態を有する状態手段と、
入力パケットの第１の予め規定された状態を待つ待ち手段と、
前記第１の予め規定された状態を前記複数の予め規定された状態のうちの第２の予め規定された状態に変える変更手段とを更に有することを特徴とする。
【０００９】
本発明に基づいてメディアファイルをデコードするシステムの実施例は請求項５に記載されている。
【００１０】
以下の図面によって図示されている実施例により本発明を説明する。
【発明を実施するための最良の形態】
【００１１】
今日では、連続的なメディアデータ処理は、ますます、専用の単一機能の構成要素よりむしろ、プログラム可能な構成要素、専用のハードウェアの構成要素とプログラム可能な構成要素との組み合わせによって行なわれるようになっている。プログラム可能な構成要素は、このハードウェア駆動の処理からソフトウェア駆動の処理へのシフトを可能にする、モジュール方式の、柔軟で、保守可能で、強力なアーキテクチャの要求を生じさせる。これは、例えば、データがマルチプロセッサシステムによって処理されるリアルタイムMPEGビデオ処理ドメイン内の場合である。本発明は、このようなストリーミングアーキテクチャに関し、MPEG符号化ビデオデータ、マクロブロックデータ及び４２２ビデオイメージデータなどのビデオのエンコーディング及びトランスコーディング、又は多重化及び逆多重化のようなタスクのリアルタイム実行を可能にする。更に、本発明は、オーディオの処理、VBI、IP及びトランスポートストリームの処理、ビデオのエレメンタリストリーム又はパケット化エレメンタリストリーム(PES)の処理に適用され得る。一般に、本発明は、様々な処理ステップが複数のプロセッサによって行なわれ得るストリーミングアーキテクチャに関する。以下の記載においては、しばしば、複数のプロセッサがタスクを行なうことが出来ることを示すために、これらのプロセッサを「コプロセッサ」と呼ぶ。
【００１２】
本発明においては、コプロセッサボードによって実行され得る各アプリケーションは、同じドメイン内の他のアプリケーションの他のタスクと可能な限り共通であるタスクに細分される。これらのタスクは、好ましくは、データが流入及び流出することを可能にするストリーミング方法において動作する。幾つかの順次処理ステップにかけられるデータは、可能な限り、パイプライン処理内のように互いをフォローアップするタスクによって処理される。独立して並列に処理され得るデータは、好ましくは、例えば、多数のプロセッサにおいて、多数のデータの塊において並列に動作することが出来る単一のタスク、又は並列のタスクによって処理される。
【００１３】
図１は、入力待ち行列１０２からデータ１０６を読み出し、出力待ち行列１０４に処理済データ１０８を書き込むタスク１００を図示している。入力待ち行列１０２は先行タスクからのデータ１１０で満たされ、後続タスクは出力待ち行列１０４からデータ１１２を読み出す。タスクは、その読出しポインタ１１４及び書込みポインタ１１６をインクリメントすることにより、タスクが処理すべきデータを常に把握している。入力待ち行列からの順次読出し及び出力待ち行列への順次書込みを可能にする他の技術も用いられ得る。本発明は、読出しポインタ１１４及び書込みポインタ１１６を比較することにより入力待ち行列１０２からの読出しと出力待ち行列１０４への書込みとの間の同期をとることなく、下記のような方法を行なう。タスクは、例えば、MPEGの仕様に基づく順方向又は逆方向の離散コサイン変換(DCT)、MPEGの仕様に基づく量子化又は逆量子化、フレームブロックのフレームメモリへの記憶などであり得る。
【００１４】
多数のプロセッサがタスクを実行し、タスクは、各々がデータを有する１つ以上のパケットを含む零個以上の入力待ち行列及び零個以上の出力待ち行列を持つ。一般的に、パケットは、特定の待ち行列に結び付けられ、パケットの大きさ及びコンテンツは変化することが出来る。予め規定されたタスクのための特定の待ち行列内のパケットの大きさは、予め規定されたタスクのための全てのタイプのデータが正確に表わされることを可能にするような大きさである。更に、データは値によって渡される。データは、そうするよう特別な要求がある場合にのみ参照により渡される。更に、データは、特定のタイプのものであることができ、タスクは、データのタイプを変えること及び別のタイプのデータを生成することが出来る。最新のシステムにおいては、ポインタがデータエリアを参照する。幾つかの現在のシステムにおいては、データエリアの実際の場所、従ってポインタの値が、データを処理する間に変化し得る。その場合に、システムは、この場所とデータとの間の一貫性に留意しなければならない。多数のプロセッサがタスクを実行することが出来ることから、データの一貫性のない使用を防止するためにこれらのプロセッサは同期をとられなければならない。この同期は、タスクの実行のサブパート(sub-part)を保護するセマフォ１１８を用いることにより達成される。
【００１５】
図２はパケットごとの状態を図示している。入力待ち行列１０２からの読出しと出力待ち行列１０４への書込みとの間の同期をとるために、状態はパケットごとに保たれる。この状態は、書込み(writing)２００から満杯(full)２０２へ、満杯２０２から読出し(reading)２０４へ、読出し２０４から空(empty)２０６へ変化することが出来る。この最後の状態２０６は、再び最初の状態２００へ変化することが出来る。書込み状態は、データがパケットに書き込まれていること、及びデータが読み出されるのにはまだ一貫性がないことを示し、満杯状態は、データが書き込まれたこと、及びデータが読み出されるための一貫性があることを示し、読出し状態は、データがパケットから読み出されていることを示し、空状態は、全てのデータがパケットから読み出されたこと、及び再びパケットに新しいデータを書き込むことが許容されることを示す。
【００１６】
図３は、タスクのセマフォの状態を図示している。セマフォ１１８は、２つの状態のうちの一方の状態にあり得る。最初のうち、セマフォは非要求(not-claimed)状態３００にある。この状態は要求(claimed)状態３０２に変化することができ、要求状態３０２は再び非要求状態３００に変えられ得る。セマフォの状態の変化は、通常、読出し-変更-書込みのアクションにおいてなされる。本発明では、この状態の変化及び対応するアクションは、好ましくは、他のプロセッサの割込みアップデート（intervening update）の結果としての一貫性のない状態を防止するために、１つのアトミック・アクション内で行なわれる。
【００１７】
図４は、本発明による方法の主要なステップを図示している。これらの主要なステップは、メディアファイルのデコーディングとエンコーディングとの両方のために行なわれる。第１ステップＳ４００は、待ち行列が適切なタスクに割り当てられ、タスクが適切なコプロセッサに割り当てられる初期設定ステップである。更に、タスクは様々なスレッドに細分され、様々なプロセッサが各スレッドを実行することが出来る。次のステップＳ４０２内では、タスクを実行する資格がある様々なコプロセッサの間の同期が、タスクのセマフォ１１８をフェッチすることにより達成される。タスクのセマフォが利用可能ではない場合には、特定のコプロセッサは、付加的なステップ（図示せず）内で適正な状態を待つことが出来る。その場合に、セマフォ１１８の状態は、ステップＳ４０２内で非要求３００から要求３０２に変化する。セマフォが要求されている場合に、他のプロセッサはセマフォを要求することが出来ない。セマフォ１１８を要求しているコプロセッサのみが、タスクの読出し及び書込みポインタをデータが読み出されるべき次のパケット及びデータが書き込まれるべき次のパケットに向けるために、これらのポインタをアップデートすることを許容される。パケット内に含まれるデータはセマフォによって保護されない。ステップＳ４０４内では、タスクは、タスクの読出しポインタによって示されるように入力待ち行列から入力パケットの状態を読み出すために入力待ち行列及び出力待ち行列にアクセスする。更に、タスクは、タスクの書込みポインタによって示されるように出力待ち行列から出力パケットの状態を読み出す。次回、タスクが処理されるべき次のパケットの状態を読み出すように、タスクの読出しポインタ及び書込みポインタの両方がインクリメントされる。ステップＳ４０６内では、パケットの状態が調べられる。タスクは、入力待ち行列からの満杯２０２のパケット及び出力待ち行列からの空２０６のパケットしか用いることが出来ない。このようにして、先行タスクがデータを書き込み終えなかったためにタスクが一貫性のないデータを読み出すことが防止され、出力パケットが後続タスクによって読み出されなければならないデータを依然として有するためにタスクが出力待ち行列においてデータを上書きすることが防止される。他のタスクは、依然として、読出しから空へ及び書込みから満杯へパケットの状態を変えることが出来ることに注意されたい。なぜなら、セマフォはこれらのパケットの空から書込みへの状態変化及び満杯から読出しへの状態変化しか保護しないからである。入力パケットの状態が満杯２０２ではない又は出力パケットの状態が空２０６ではない場合には、セマフォを要求しているコプロセッサは、両状態が適正な状態、即ち、入力において満杯２０２に、出力において空２０６に変化するまでステップＳ４０８内で待たなければならない。次いで、ステップＳ４１０内で、入力パケットの満杯状態２０２が読出し状態２０４へ変えられ、出力パケットの空状態２０６が書込み状態２００へ変えられる。更に、データがタスクを実行するコプロセッサによって共用される共用データを有する場合には、共用データは随意のステップＳ４１２内で共用メモリに転送される。このような共用データは、全ての関連するコプロセッサのためのタスクの実行をもたらすことが出来る、又はタスクによって取り扱われるべき代替パラメータセット(alternate parameter sets)を有することが出来る、又は特別なタスクのみが解釈することが出来る特定のデータを有することが出来る。共用データの一貫性のないアップデート及び／又は使用を防止するために、データは、更に、単一のプロセッサの固有のアドレス空間(own address space)にコピーされる。共用データの共用メモリへの転送後、セマフォはステップＳ４１４内で開放される。ステップＳ４１２が行なわれない場合には、ステップＳ４１４がステップＳ４１０の後に続く。他のコプロセッサは、ここで、待ち行列からの次のパケットを処理する用意ができ次第、セマフォの要求を開始することが出来る。ステップＳ４１６内では、データが実際に処理され、データを処理するコプロセッサは、処理するのに必要である全時間をかけることが出来る。コプロセッサがデータを処理し終える場合に、パケットの状態がステップＳ４１８内で変えられる。入力パケットの状態は読出し２０４から空２０６に変えられ、出力パケットの状態は書込み２００から満杯２０２に変えられる。これに関して、セマフォが要求される必要はないが、同じコプロセッサが即座に再びパケットにアクセスすることは出来ない。なぜなら、他のコプロセッサにおいて走っている他のタスクがパケットにアクセスするかもしれないからである。
【００１８】
一般に、上記の方法は、タスクに割り当てられるプロセッサの数に依存せず、その結果、アプリケーションの別々のタスクへの細分を設計し直す必要性なしに同じタスクをより多くのプロセッサに割り当てることにより全アプリケーションのトランスペアレントなスピードアップを可能にする。再割当てはリアルタイムに行なわれることができ、タスクへのコプロセッサの割当てを設計問題自身にはしない。更に、上記の方法は、他のパケットにおいて同じタスクを走らせる多数のコプロセッサの間の処理時間における差とは無関係に、入力待ち行列から出力待ち行列までのパケットの順序(packet order)を保存する。セマフォが各待ち行列のために別々に導入される場合には、例えば、等しさについて比較され得るパケットに対する付加的なパラメータを導入することによって適切な方策をとることなしには、パケットの順序は維持されないかもしれない。これに関して、シーケンス番号が用いられ得る。別個の各待ち行列のためのセマフォの使用は、より柔軟な入出力パケット比、例えば、入力待ち行列からの１つのパケットの読み出し及び出力待ち行列からの２つ以上のパケットを書込みを可能にし得る。
【００１９】
本発明の方法の上記の実施例における順序は必須ではなく、当業者は、本発明によって意図されている概念から外れることなしに、ステップの順序を変更し得る、又は並行して、スレッディングモデル、マルチプロセッサシステム若しくは多数のプロセスを用いるステップを行ない得る。
【００２０】
図５は、本発明によるシステムの主要な部分を概略的に図示している。システム５００は、MPEGビデオのようなメディアストリーム及びオーディオストリームのエンコードとデコードとの両方をすることが出来る。このシステムは、別々のコプロセッサによって実行され得る多数のスレッドを有するタスクを実行するために割り当てられる２つのコプロセッサ５０２及び５０４を有する。更に、このシステムは、このシステムによって実行可能である他のタスクを実行することが出来る他のコプロセッサ５２０を有する。メモリ５０６は、タスクによって処理されるべきデータを備えるパケットを含む入力待ち行列を有する。メモリ５０８は、タスクによって処理されたデータを備えるパケットを含む出力待ち行列を有する。メモリ５１０は上記のようなセマフォを有する。タスクは、１つのアトミック・アクション内でこのメモリ５１０のコンテンツを変えることが出来る。更に、メモリ５１２は入力パケットの状態を有し、メモリ５１４は出力パケットの状態を有する。メモリ５１６は、プロセッサ５０２及び５０４の待ち状態を有する。このメモリは、プロセッサの状態を決定するためにソフトウェアを更に有するのに対して、メモリ５１８は、入力パケット及び出力パケットの状態を有するメモリの状態を変えることが出来るソフトウェアを有する。コプロセッサの間の共用パラメータは、タスクによってアップデートされ得るメモリ５２６内に含まれる。上記のメモリ及びコプロセッサはソフトウェアバス５３０を介して互いと通信接続(communicatively connect)される。更に、上記のタスクは、オーディオ、ビデオを再生し、画像などを示すことが出来るマルチメディアアプリケーションの一部である。システム５００は、コンピュータ又はソフトウェアを動作させることが出来るあらゆる他の標準的なアーキテクチャによって走らされるアプリケーションとして動作されるソフトウェアにおいて実現される。システム５００はまた、ハードウェアにおいて実現されることができ、このシステムは、デジタル又はアナログのテレビ５２２を動作させるのに用いられ得る。ソフトウェアはまた、本発明による方法を行なうよう構成されるコンピュータプログラム製品を有する記憶装置５２４からアップデートされ得る。記憶装置は、システム５００に接続される適当な読出し装置、例えば、CDリーダ５２８によって読み出される。
【００２１】
図６は、本発明によるシステムの実施例を有するテレビ６１０を概略的に図示している。ここで、アンテナ６００はテレビ信号を受信する。例えば、衛星放送受信アンテナ、ケーブル、記憶装置、インターネット又はイーサネット（Ｒ）のようなテレビ信号を受け取る又は再生することが出来る如何なる装置もアンテナ６００に取って代わることが出来る。受信機６０２はこの信号を受け取る。この信号は、例えば、デジタル、アナログ、RGB又はYUVであり得る。受信機６０２に加えて、テレビは、プログラム可能な構成要素６０４、例えば、プログラム可能な集積回路を含む。このプログラム可能な構成要素は本発明によるシステム６０６を含む。テレビ画面６０８は、受信機６０２によって受信され、プログラム可能な構成要素６０４によって処理される画像を示す。他の例において、ユーザが受信信号、例えば映画を記録することを欲する場合には、本発明によるシステム６０６は、DVD+RW、コンパクトディスク又はハードディスクのような記録装置において受信信号を記録する。更に他の例において、ユーザが、記録された映画を再生することを欲する場合には、本発明によるシステム６０６は、記録装置から適切なデータを取り出す。
【００２２】
図７は、グラフのように概略的にMPEGビデオデコーダの処理タスクを図示している。ビデオストリームはストリーム供給源７０２によって供給される。タスク７０４は、ヘッダの検出を行い、ストリームを別々のスライスに分割する。このタスクは、好ましくは多数のプロセッサによって細分されない分割できないタスクである。単一のスライスが、バッファ７０６を介してタスク７０８に転送される。７０８が、スライスの実際のハフマン・デコーディングを行なう。デコードされたデータは、ここで、マクロブロックストリームに変換され、次いで、多数のタスクに分割される。マクロブロックストリームの係数部(coefficient part)は、逆量子化を行なうタスク７１０によって用いられ、逆DCTを行なう７１２に伝えられる。マクロブロックストリームのベクトル部分は、各々、順方向フレーム及び逆方向フレームにおいて動き補償を行なうタスク７２２及び７２６によって用いられる。次いで、両方の予測が、タスク７２４によって加算され、平均され、最終的な予測を形成する。次いで、これは、タスク７１４によって予測誤差信号(prediction error signal)に付加される。この結果は、最終的なデコードされた画像であり、タスク７１６によってフレームメモリに記憶される。タスク７１６は、フリーフレーム(free frame)を記憶する表示タスク７２０からフレームバッファ参照を得る。ピクチャの全マクロブロックがフレームに書き込まれたら、フレーム参照は、タスク７１８、フレームマネージャに伝えられる。このフレームマネージャは、どのフレームがアンカーフレーム(anchor frame)として用いられるべきか及びどのフレームが表示されるべきかを決定する。アンカーフレームは、次のフレームの動き予測のためにタスク７２２及び７２６によって用いられる。表示されるべきフレームはタスク７２０に伝えられ、タスク７２０は、更に、新しいフレームを表示し、古いフレームをフリーリスト(free list)に戻す。このアーキテクチャのタスクにおいては、全ての適用可能なタスクが、上記のような本発明による方法に基づいて同期が行なわれる多数のコプロセッサによって処理され得る。
【００２３】
図８は、本発明によるシステムの実施例を有するセットトップボックスの最も重要な部分を概略的に図示している。ここで、アンテナ８００はテレビ信号を受信する。アンテナ８００はまた、例えば、衛星放送受信アンテナ、ケーブル、記憶装置、インターネット、イーサネット（Ｒ）又はテレビ信号を受け取ることが出来るあらゆる他の装置であり得る。セットトップボックス８０２はこの信号を受け取る。この信号は、例えば、デジタル、アナログ、RGB又はYUVであり得る。ここには示されていない、セットトップボックスに含まれる通常のパーツに加えて、セットトップボックスは本発明によるシステム８０４を含む。ユーザが、受信信号、例えば映画を記録することを欲する場合には、本発明によるシステム８０４は、DVD+RW、コンパクトディスク又はハードディスクのような記録装置において受信信号を記録する。ユーザが、記録された映画を再生することを欲する場合には、本発明によるシステム８０４は、記録装置から適切なデータを取り出す。テレビ８０６は、セットトップボックス８０２によって受信信号から生成された出力信号を示すことが出来る。
【図面の簡単な説明】
【００２４】
【図１】入力待ち行列からデータを読み出し、出力待ち行列に処理データを書き込むタスクを図示する。
【図２】パケットごとの状態を図示する。
【図３】タスクのセマフォの状態を図示する。
【図４】本発明による方法の主要なステップを図示する。
【図５】本発明によるシステムの主要な部分を概略的に図示する。
【図６】本発明によるシステムの実施例を有するテレビを概略的に図示する。
【図７】グラフのように概略的にMPEGビデオデコーダの処理タスクを図示する。
【図８】本発明によるシステムの実施例を有するセットトップボックスの最も重要な部分を概略的に図示する。
【国際公開パンフレット】
2004538562.tif 000003
2004538562.tif 000004
2004538562.tif 000005
2004538562.tif 000006
2004538562.tif 000007
2004538562.tif 000008
2004538562.tif 000009
2004538562.tif 000010
2004538562.tif 000011
2004538562.tif 000012
2004538562.tif 000013
2004538562.tif 000014
2004538562.tif 000015
2004538562.tif 000016
2004538562.tif 000017
2004538562.tif 000018
2004538562.tif 000019
2004538562.tif 000020
2004538562.tif 000021
【国際調査報告】
2004538562.tif 000022
2004538562.tif 000023
2004538562.tif 000024