JP2004538562A - メディアファイルを処理する方法及びシステム - Google Patents
メディアファイルを処理する方法及びシステム Download PDFInfo
- Publication number
- JP2004538562A JP2004538562A JP2003511099A JP2003511099A JP2004538562A JP 2004538562 A JP2004538562 A JP 2004538562A JP 2003511099 A JP2003511099 A JP 2003511099A JP 2003511099 A JP2003511099 A JP 2003511099A JP 2004538562 A JP2004538562 A JP 2004538562A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- packet
- predefined
- state
- data
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
Abstract
ストリーミングアプリケーションは、しばしば、マルチプロセッサシステムによって処理され得る複数のタスクに分割され得る。これらのタスクは、前記タスク(100)によって処理されるべきデータを有する待ち行列(102、104)を介して互いに接続される。様々なプロセッサによるデータのアクセスの同期をとるために、待ち行列内の前記データを有するパケットの予め規定された状態の変更と、前記タスク自体とを保護するセマフォ(118)を取得する方法が供給される。
Description
【技術分野】
【0001】
本発明は、複数のプロセッサによって実行される少なくとも1つの処理ステップを有し、前記少なくとも1つの処理ステップは処理データを有する、メディアファイルを処理する方法に関する。
【0002】
更に、本発明は、処理データに対して実行される少なくとも1つの処理ステップを実行し、前記処理ステップは前記処理データを読み出す及び/又は書き込むステップを有する複数のプロセッサ手段と、
第1処理パケットを有し、前記第1処理パケットは前記処理データを有する第1待ち行列手段から読み出すステップとを有する、メディアファイルを処理するシステムに関する。
【背景技術】
【0003】
上記のような方法の実施例は、国際特許出願公開公報第WO99/22296号から既知である。ここでは、第1局(first station)及び1つ以上の第2局の間でセマフォをベースとした同期が行なわれる。各局のために、単一の2値セマフォが設けられる。第1局は、第1局自身のセマフォの第1状態に対して第2状態を持つような全ての第2局のセマフォをチェックする。次いで、第1局は、第1アクセス動作を実行し、第1状態を反転(flip)させる。さもなければ、それは、第1アクセス動作に先んじる。第2局は、第2局自身のセマフォの第2状態に対して第1状態を持つような第1局のセマフォをチェックする。次いで、第2局は、第2アクセス動作を実行し、第2状態を反転させる。さもなければ、それは、第2アクセス動作に先んじる。しかしながら、各局は、実行を決定する前に他局のセマフォをチェックしなければならない。それ故、各局は、処理ステップのネットワーク内の次の処理ステップ又は次の局を知らなければならず、これは、より柔軟性の乏しいアーキテクチャをもたらす処理ステップの間の依存状態を作成する。
【発明の開示】
【課題を解決するための手段】
【0004】
本発明の目的は、改善された方法でパケットを取得し、より柔軟なアーキテクチャを可能にする方法を供給することにある。この目的を達成するために、前文に基づいてメディアファイルを処理する方法は、少なくとも1つの処理ステップが、
前記少なくとも1つの処理ステップを保護するセマフォを複数のプロセッサのうちの1つによって要求する第1ステップと、
第1待ち行列から第1処理パケットを取得し、前記第1処理パケットは処理データを有する第2ステップと、
前記第1処理パケットが複数の予め規定された状態のうちの第1の予め規定された状態を持つまで待つ第3ステップと、
前記第1処理パケットの前記第1の予め規定された入力状態を前記複数の予め規定された状態のうちの第2の予め規定された状態に変える第4ステップと、
前記複数のプロセッサのうちの前記1つにより前記セマフォを開放する第5ステップと、
前記処理データを読み出す及び/又は書き込むステップを有する前記メディアファイルを処理する第6ステップと、
前記第1処理パケットの前記第2の予め規定された状態を前記複数の予め規定された状態のうちの第3の予め規定された状態に変える第7ステップとを更に有することを特徴とする。
【0005】
待ち行列から第1パケットを取得する前に処理ステップを保護するセマフォを要求することにより、前記第1パケットと、取得されるべき次のパケットを示すポインタの対応するアップデートとが、1つのアトミック・アクション内で要求され得る。これは、前記待ち行列からの前記パケットが処理されんとするシーケンスの非保護をもたらし得る、他のプロセッサが同時に同じパケットを取得することを防止する。更に、前記第1パケットの予め規定された状態を待つことにより、前記第1パケットの処理が該第1パケットの適正なコンテンツで行なわれる。待ち行列を介して各処理ステップを切り離すことにより、前記処理ステップは互いに気付かず、このことは、前記待ち行列及び前記第1パケットが処理ステップのための入力又は出力待ち行列としての役割を果たすことが出来るより柔軟なアーキテクチャをもたらす。
【0006】
本発明による方法の実施例は請求項2に記載されている。要求セマフォの保護内で第1パケットを取得することに加えて第2パケットを取得することにより、前記第1パケットのコンテンツの処理の結果が第2パケット内に記憶されるシーケンスが保護される。更に、前記第2パケットを書き換えることが許容される前には、該第2パケットのありうる前のコンテンツは、新しいコンテンツで書き換えられない。データの処理は前記セマフォの保護の外側で行なわれることから、第1プロセッサが全データを処理し終えるまで他のプロセッサはストールされない。ストリーミングアーキテクチャ内では、第1待ち行列及び前記第1パケットが処理ステップのための入力待ち行列及び入力パケットとみなされ得るのに対して、第2待ち行列及び前記第2パケットは出力待ち行列及び出力パケットとみなされ得る。
【0007】
本発明による方法の実施例は請求項3に記載されている。セマフォの保護内で共用メモリをアップデートすることにより、前記共用メモリのアップデートされたコンテンツは、全ての関連するプロセッサにとって同時に利用可能になり、取得される入力及び出力パケットのコンテンツと一貫性がある。このアップデートが前記セマフォの保護内で行なわれることから、処理ステップによる前記共用メモリを読み出す及び書き込むステップはアトミック・アクション内で行なわれる。
【0008】
更に、本発明の目的は、改善された方法でパケットを取得し、より柔軟なアーキテクチャを可能にするシステムを供給することにある。この目的を達成するために、前文に基づいてメディアファイルを処理するシステムは、当該システムが、
複数のプロセッサのうちの1つによる処理ステップを保護するセマフォ手段と、
複数の予め規定された状態のうちの第1の予め規定された状態を有する状態手段と、
入力パケットの第1の予め規定された状態を待つ待ち手段と、
前記第1の予め規定された状態を前記複数の予め規定された状態のうちの第2の予め規定された状態に変える変更手段とを更に有することを特徴とする。
【0009】
本発明に基づいてメディアファイルをデコードするシステムの実施例は請求項5に記載されている。
【0010】
以下の図面によって図示されている実施例により本発明を説明する。
【発明を実施するための最良の形態】
【0011】
今日では、連続的なメディアデータ処理は、ますます、専用の単一機能の構成要素よりむしろ、プログラム可能な構成要素、専用のハードウェアの構成要素とプログラム可能な構成要素との組み合わせによって行なわれるようになっている。プログラム可能な構成要素は、このハードウェア駆動の処理からソフトウェア駆動の処理へのシフトを可能にする、モジュール方式の、柔軟で、保守可能で、強力なアーキテクチャの要求を生じさせる。これは、例えば、データがマルチプロセッサシステムによって処理されるリアルタイムMPEGビデオ処理ドメイン内の場合である。本発明は、このようなストリーミングアーキテクチャに関し、MPEG符号化ビデオデータ、マクロブロックデータ及び422ビデオイメージデータなどのビデオのエンコーディング及びトランスコーディング、又は多重化及び逆多重化のようなタスクのリアルタイム実行を可能にする。更に、本発明は、オーディオの処理、VBI、IP及びトランスポートストリームの処理、ビデオのエレメンタリストリーム又はパケット化エレメンタリストリーム(PES)の処理に適用され得る。一般に、本発明は、様々な処理ステップが複数のプロセッサによって行なわれ得るストリーミングアーキテクチャに関する。以下の記載においては、しばしば、複数のプロセッサがタスクを行なうことが出来ることを示すために、これらのプロセッサを「コプロセッサ」と呼ぶ。
【0012】
本発明においては、コプロセッサボードによって実行され得る各アプリケーションは、同じドメイン内の他のアプリケーションの他のタスクと可能な限り共通であるタスクに細分される。これらのタスクは、好ましくは、データが流入及び流出することを可能にするストリーミング方法において動作する。幾つかの順次処理ステップにかけられるデータは、可能な限り、パイプライン処理内のように互いをフォローアップするタスクによって処理される。独立して並列に処理され得るデータは、好ましくは、例えば、多数のプロセッサにおいて、多数のデータの塊において並列に動作することが出来る単一のタスク、又は並列のタスクによって処理される。
【0013】
図1は、入力待ち行列102からデータ106を読み出し、出力待ち行列104に処理済データ108を書き込むタスク100を図示している。入力待ち行列102は先行タスクからのデータ110で満たされ、後続タスクは出力待ち行列104からデータ112を読み出す。タスクは、その読出しポインタ114及び書込みポインタ116をインクリメントすることにより、タスクが処理すべきデータを常に把握している。入力待ち行列からの順次読出し及び出力待ち行列への順次書込みを可能にする他の技術も用いられ得る。本発明は、読出しポインタ114及び書込みポインタ116を比較することにより入力待ち行列102からの読出しと出力待ち行列104への書込みとの間の同期をとることなく、下記のような方法を行なう。タスクは、例えば、MPEGの仕様に基づく順方向又は逆方向の離散コサイン変換(DCT)、MPEGの仕様に基づく量子化又は逆量子化、フレームブロックのフレームメモリへの記憶などであり得る。
【0014】
多数のプロセッサがタスクを実行し、タスクは、各々がデータを有する1つ以上のパケットを含む零個以上の入力待ち行列及び零個以上の出力待ち行列を持つ。一般的に、パケットは、特定の待ち行列に結び付けられ、パケットの大きさ及びコンテンツは変化することが出来る。予め規定されたタスクのための特定の待ち行列内のパケットの大きさは、予め規定されたタスクのための全てのタイプのデータが正確に表わされることを可能にするような大きさである。更に、データは値によって渡される。データは、そうするよう特別な要求がある場合にのみ参照により渡される。更に、データは、特定のタイプのものであることができ、タスクは、データのタイプを変えること及び別のタイプのデータを生成することが出来る。最新のシステムにおいては、ポインタがデータエリアを参照する。幾つかの現在のシステムにおいては、データエリアの実際の場所、従ってポインタの値が、データを処理する間に変化し得る。その場合に、システムは、この場所とデータとの間の一貫性に留意しなければならない。多数のプロセッサがタスクを実行することが出来ることから、データの一貫性のない使用を防止するためにこれらのプロセッサは同期をとられなければならない。この同期は、タスクの実行のサブパート(sub-part)を保護するセマフォ118を用いることにより達成される。
【0015】
図2はパケットごとの状態を図示している。入力待ち行列102からの読出しと出力待ち行列104への書込みとの間の同期をとるために、状態はパケットごとに保たれる。この状態は、書込み(writing)200から満杯(full)202へ、満杯202から読出し(reading)204へ、読出し204から空(empty)206へ変化することが出来る。この最後の状態206は、再び最初の状態200へ変化することが出来る。書込み状態は、データがパケットに書き込まれていること、及びデータが読み出されるのにはまだ一貫性がないことを示し、満杯状態は、データが書き込まれたこと、及びデータが読み出されるための一貫性があることを示し、読出し状態は、データがパケットから読み出されていることを示し、空状態は、全てのデータがパケットから読み出されたこと、及び再びパケットに新しいデータを書き込むことが許容されることを示す。
【0016】
図3は、タスクのセマフォの状態を図示している。セマフォ118は、2つの状態のうちの一方の状態にあり得る。最初のうち、セマフォは非要求(not-claimed)状態300にある。この状態は要求(claimed)状態302に変化することができ、要求状態302は再び非要求状態300に変えられ得る。セマフォの状態の変化は、通常、読出し-変更-書込みのアクションにおいてなされる。本発明では、この状態の変化及び対応するアクションは、好ましくは、他のプロセッサの割込みアップデート(intervening update)の結果としての一貫性のない状態を防止するために、1つのアトミック・アクション内で行なわれる。
【0017】
図4は、本発明による方法の主要なステップを図示している。これらの主要なステップは、メディアファイルのデコーディングとエンコーディングとの両方のために行なわれる。第1ステップS400は、待ち行列が適切なタスクに割り当てられ、タスクが適切なコプロセッサに割り当てられる初期設定ステップである。更に、タスクは様々なスレッドに細分され、様々なプロセッサが各スレッドを実行することが出来る。次のステップS402内では、タスクを実行する資格がある様々なコプロセッサの間の同期が、タスクのセマフォ118をフェッチすることにより達成される。タスクのセマフォが利用可能ではない場合には、特定のコプロセッサは、付加的なステップ(図示せず)内で適正な状態を待つことが出来る。その場合に、セマフォ118の状態は、ステップS402内で非要求300から要求302に変化する。セマフォが要求されている場合に、他のプロセッサはセマフォを要求することが出来ない。セマフォ118を要求しているコプロセッサのみが、タスクの読出し及び書込みポインタをデータが読み出されるべき次のパケット及びデータが書き込まれるべき次のパケットに向けるために、これらのポインタをアップデートすることを許容される。パケット内に含まれるデータはセマフォによって保護されない。ステップS404内では、タスクは、タスクの読出しポインタによって示されるように入力待ち行列から入力パケットの状態を読み出すために入力待ち行列及び出力待ち行列にアクセスする。更に、タスクは、タスクの書込みポインタによって示されるように出力待ち行列から出力パケットの状態を読み出す。次回、タスクが処理されるべき次のパケットの状態を読み出すように、タスクの読出しポインタ及び書込みポインタの両方がインクリメントされる。ステップS406内では、パケットの状態が調べられる。タスクは、入力待ち行列からの満杯202のパケット及び出力待ち行列からの空206のパケットしか用いることが出来ない。このようにして、先行タスクがデータを書き込み終えなかったためにタスクが一貫性のないデータを読み出すことが防止され、出力パケットが後続タスクによって読み出されなければならないデータを依然として有するためにタスクが出力待ち行列においてデータを上書きすることが防止される。他のタスクは、依然として、読出しから空へ及び書込みから満杯へパケットの状態を変えることが出来ることに注意されたい。なぜなら、セマフォはこれらのパケットの空から書込みへの状態変化及び満杯から読出しへの状態変化しか保護しないからである。入力パケットの状態が満杯202ではない又は出力パケットの状態が空206ではない場合には、セマフォを要求しているコプロセッサは、両状態が適正な状態、即ち、入力において満杯202に、出力において空206に変化するまでステップS408内で待たなければならない。次いで、ステップS410内で、入力パケットの満杯状態202が読出し状態204へ変えられ、出力パケットの空状態206が書込み状態200へ変えられる。更に、データがタスクを実行するコプロセッサによって共用される共用データを有する場合には、共用データは随意のステップS412内で共用メモリに転送される。このような共用データは、全ての関連するコプロセッサのためのタスクの実行をもたらすことが出来る、又はタスクによって取り扱われるべき代替パラメータセット(alternate parameter sets)を有することが出来る、又は特別なタスクのみが解釈することが出来る特定のデータを有することが出来る。共用データの一貫性のないアップデート及び/又は使用を防止するために、データは、更に、単一のプロセッサの固有のアドレス空間(own address space)にコピーされる。共用データの共用メモリへの転送後、セマフォはステップS414内で開放される。ステップS412が行なわれない場合には、ステップS414がステップS410の後に続く。他のコプロセッサは、ここで、待ち行列からの次のパケットを処理する用意ができ次第、セマフォの要求を開始することが出来る。ステップS416内では、データが実際に処理され、データを処理するコプロセッサは、処理するのに必要である全時間をかけることが出来る。コプロセッサがデータを処理し終える場合に、パケットの状態がステップS418内で変えられる。入力パケットの状態は読出し204から空206に変えられ、出力パケットの状態は書込み200から満杯202に変えられる。これに関して、セマフォが要求される必要はないが、同じコプロセッサが即座に再びパケットにアクセスすることは出来ない。なぜなら、他のコプロセッサにおいて走っている他のタスクがパケットにアクセスするかもしれないからである。
【0018】
一般に、上記の方法は、タスクに割り当てられるプロセッサの数に依存せず、その結果、アプリケーションの別々のタスクへの細分を設計し直す必要性なしに同じタスクをより多くのプロセッサに割り当てることにより全アプリケーションのトランスペアレントなスピードアップを可能にする。再割当てはリアルタイムに行なわれることができ、タスクへのコプロセッサの割当てを設計問題自身にはしない。更に、上記の方法は、他のパケットにおいて同じタスクを走らせる多数のコプロセッサの間の処理時間における差とは無関係に、入力待ち行列から出力待ち行列までのパケットの順序(packet order)を保存する。セマフォが各待ち行列のために別々に導入される場合には、例えば、等しさについて比較され得るパケットに対する付加的なパラメータを導入することによって適切な方策をとることなしには、パケットの順序は維持されないかもしれない。これに関して、シーケンス番号が用いられ得る。別個の各待ち行列のためのセマフォの使用は、より柔軟な入出力パケット比、例えば、入力待ち行列からの1つのパケットの読み出し及び出力待ち行列からの2つ以上のパケットを書込みを可能にし得る。
【0019】
本発明の方法の上記の実施例における順序は必須ではなく、当業者は、本発明によって意図されている概念から外れることなしに、ステップの順序を変更し得る、又は並行して、スレッディングモデル、マルチプロセッサシステム若しくは多数のプロセスを用いるステップを行ない得る。
【0020】
図5は、本発明によるシステムの主要な部分を概略的に図示している。システム500は、MPEGビデオのようなメディアストリーム及びオーディオストリームのエンコードとデコードとの両方をすることが出来る。このシステムは、別々のコプロセッサによって実行され得る多数のスレッドを有するタスクを実行するために割り当てられる2つのコプロセッサ502及び504を有する。更に、このシステムは、このシステムによって実行可能である他のタスクを実行することが出来る他のコプロセッサ520を有する。メモリ506は、タスクによって処理されるべきデータを備えるパケットを含む入力待ち行列を有する。メモリ508は、タスクによって処理されたデータを備えるパケットを含む出力待ち行列を有する。メモリ510は上記のようなセマフォを有する。タスクは、1つのアトミック・アクション内でこのメモリ510のコンテンツを変えることが出来る。更に、メモリ512は入力パケットの状態を有し、メモリ514は出力パケットの状態を有する。メモリ516は、プロセッサ502及び504の待ち状態を有する。このメモリは、プロセッサの状態を決定するためにソフトウェアを更に有するのに対して、メモリ518は、入力パケット及び出力パケットの状態を有するメモリの状態を変えることが出来るソフトウェアを有する。コプロセッサの間の共用パラメータは、タスクによってアップデートされ得るメモリ526内に含まれる。上記のメモリ及びコプロセッサはソフトウェアバス530を介して互いと通信接続(communicatively connect)される。更に、上記のタスクは、オーディオ、ビデオを再生し、画像などを示すことが出来るマルチメディアアプリケーションの一部である。システム500は、コンピュータ又はソフトウェアを動作させることが出来るあらゆる他の標準的なアーキテクチャによって走らされるアプリケーションとして動作されるソフトウェアにおいて実現される。システム500はまた、ハードウェアにおいて実現されることができ、このシステムは、デジタル又はアナログのテレビ522を動作させるのに用いられ得る。ソフトウェアはまた、本発明による方法を行なうよう構成されるコンピュータプログラム製品を有する記憶装置524からアップデートされ得る。記憶装置は、システム500に接続される適当な読出し装置、例えば、CDリーダ528によって読み出される。
【0021】
図6は、本発明によるシステムの実施例を有するテレビ610を概略的に図示している。ここで、アンテナ600はテレビ信号を受信する。例えば、衛星放送受信アンテナ、ケーブル、記憶装置、インターネット又はイーサネット(R)のようなテレビ信号を受け取る又は再生することが出来る如何なる装置もアンテナ600に取って代わることが出来る。受信機602はこの信号を受け取る。この信号は、例えば、デジタル、アナログ、RGB又はYUVであり得る。受信機602に加えて、テレビは、プログラム可能な構成要素604、例えば、プログラム可能な集積回路を含む。このプログラム可能な構成要素は本発明によるシステム606を含む。テレビ画面608は、受信機602によって受信され、プログラム可能な構成要素604によって処理される画像を示す。他の例において、ユーザが受信信号、例えば映画を記録することを欲する場合には、本発明によるシステム606は、DVD+RW、コンパクトディスク又はハードディスクのような記録装置において受信信号を記録する。更に他の例において、ユーザが、記録された映画を再生することを欲する場合には、本発明によるシステム606は、記録装置から適切なデータを取り出す。
【0022】
図7は、グラフのように概略的にMPEGビデオデコーダの処理タスクを図示している。ビデオストリームはストリーム供給源702によって供給される。タスク704は、ヘッダの検出を行い、ストリームを別々のスライスに分割する。このタスクは、好ましくは多数のプロセッサによって細分されない分割できないタスクである。単一のスライスが、バッファ706を介してタスク708に転送される。708が、スライスの実際のハフマン・デコーディングを行なう。デコードされたデータは、ここで、マクロブロックストリームに変換され、次いで、多数のタスクに分割される。マクロブロックストリームの係数部(coefficient part)は、逆量子化を行なうタスク710によって用いられ、逆DCTを行なう712に伝えられる。マクロブロックストリームのベクトル部分は、各々、順方向フレーム及び逆方向フレームにおいて動き補償を行なうタスク722及び726によって用いられる。次いで、両方の予測が、タスク724によって加算され、平均され、最終的な予測を形成する。次いで、これは、タスク714によって予測誤差信号(prediction error signal)に付加される。この結果は、最終的なデコードされた画像であり、タスク716によってフレームメモリに記憶される。タスク716は、フリーフレーム(free frame)を記憶する表示タスク720からフレームバッファ参照を得る。ピクチャの全マクロブロックがフレームに書き込まれたら、フレーム参照は、タスク718、フレームマネージャに伝えられる。このフレームマネージャは、どのフレームがアンカーフレーム(anchor frame)として用いられるべきか及びどのフレームが表示されるべきかを決定する。アンカーフレームは、次のフレームの動き予測のためにタスク722及び726によって用いられる。表示されるべきフレームはタスク720に伝えられ、タスク720は、更に、新しいフレームを表示し、古いフレームをフリーリスト(free list)に戻す。このアーキテクチャのタスクにおいては、全ての適用可能なタスクが、上記のような本発明による方法に基づいて同期が行なわれる多数のコプロセッサによって処理され得る。
【0023】
図8は、本発明によるシステムの実施例を有するセットトップボックスの最も重要な部分を概略的に図示している。ここで、アンテナ800はテレビ信号を受信する。アンテナ800はまた、例えば、衛星放送受信アンテナ、ケーブル、記憶装置、インターネット、イーサネット(R)又はテレビ信号を受け取ることが出来るあらゆる他の装置であり得る。セットトップボックス802はこの信号を受け取る。この信号は、例えば、デジタル、アナログ、RGB又はYUVであり得る。ここには示されていない、セットトップボックスに含まれる通常のパーツに加えて、セットトップボックスは本発明によるシステム804を含む。ユーザが、受信信号、例えば映画を記録することを欲する場合には、本発明によるシステム804は、DVD+RW、コンパクトディスク又はハードディスクのような記録装置において受信信号を記録する。ユーザが、記録された映画を再生することを欲する場合には、本発明によるシステム804は、記録装置から適切なデータを取り出す。テレビ806は、セットトップボックス802によって受信信号から生成された出力信号を示すことが出来る。
【図面の簡単な説明】
【0024】
【図1】入力待ち行列からデータを読み出し、出力待ち行列に処理データを書き込むタスクを図示する。
【図2】パケットごとの状態を図示する。
【図3】タスクのセマフォの状態を図示する。
【図4】本発明による方法の主要なステップを図示する。
【図5】本発明によるシステムの主要な部分を概略的に図示する。
【図6】本発明によるシステムの実施例を有するテレビを概略的に図示する。
【図7】グラフのように概略的にMPEGビデオデコーダの処理タスクを図示する。
【図8】本発明によるシステムの実施例を有するセットトップボックスの最も重要な部分を概略的に図示する。
【0001】
本発明は、複数のプロセッサによって実行される少なくとも1つの処理ステップを有し、前記少なくとも1つの処理ステップは処理データを有する、メディアファイルを処理する方法に関する。
【0002】
更に、本発明は、処理データに対して実行される少なくとも1つの処理ステップを実行し、前記処理ステップは前記処理データを読み出す及び/又は書き込むステップを有する複数のプロセッサ手段と、
第1処理パケットを有し、前記第1処理パケットは前記処理データを有する第1待ち行列手段から読み出すステップとを有する、メディアファイルを処理するシステムに関する。
【背景技術】
【0003】
上記のような方法の実施例は、国際特許出願公開公報第WO99/22296号から既知である。ここでは、第1局(first station)及び1つ以上の第2局の間でセマフォをベースとした同期が行なわれる。各局のために、単一の2値セマフォが設けられる。第1局は、第1局自身のセマフォの第1状態に対して第2状態を持つような全ての第2局のセマフォをチェックする。次いで、第1局は、第1アクセス動作を実行し、第1状態を反転(flip)させる。さもなければ、それは、第1アクセス動作に先んじる。第2局は、第2局自身のセマフォの第2状態に対して第1状態を持つような第1局のセマフォをチェックする。次いで、第2局は、第2アクセス動作を実行し、第2状態を反転させる。さもなければ、それは、第2アクセス動作に先んじる。しかしながら、各局は、実行を決定する前に他局のセマフォをチェックしなければならない。それ故、各局は、処理ステップのネットワーク内の次の処理ステップ又は次の局を知らなければならず、これは、より柔軟性の乏しいアーキテクチャをもたらす処理ステップの間の依存状態を作成する。
【発明の開示】
【課題を解決するための手段】
【0004】
本発明の目的は、改善された方法でパケットを取得し、より柔軟なアーキテクチャを可能にする方法を供給することにある。この目的を達成するために、前文に基づいてメディアファイルを処理する方法は、少なくとも1つの処理ステップが、
前記少なくとも1つの処理ステップを保護するセマフォを複数のプロセッサのうちの1つによって要求する第1ステップと、
第1待ち行列から第1処理パケットを取得し、前記第1処理パケットは処理データを有する第2ステップと、
前記第1処理パケットが複数の予め規定された状態のうちの第1の予め規定された状態を持つまで待つ第3ステップと、
前記第1処理パケットの前記第1の予め規定された入力状態を前記複数の予め規定された状態のうちの第2の予め規定された状態に変える第4ステップと、
前記複数のプロセッサのうちの前記1つにより前記セマフォを開放する第5ステップと、
前記処理データを読み出す及び/又は書き込むステップを有する前記メディアファイルを処理する第6ステップと、
前記第1処理パケットの前記第2の予め規定された状態を前記複数の予め規定された状態のうちの第3の予め規定された状態に変える第7ステップとを更に有することを特徴とする。
【0005】
待ち行列から第1パケットを取得する前に処理ステップを保護するセマフォを要求することにより、前記第1パケットと、取得されるべき次のパケットを示すポインタの対応するアップデートとが、1つのアトミック・アクション内で要求され得る。これは、前記待ち行列からの前記パケットが処理されんとするシーケンスの非保護をもたらし得る、他のプロセッサが同時に同じパケットを取得することを防止する。更に、前記第1パケットの予め規定された状態を待つことにより、前記第1パケットの処理が該第1パケットの適正なコンテンツで行なわれる。待ち行列を介して各処理ステップを切り離すことにより、前記処理ステップは互いに気付かず、このことは、前記待ち行列及び前記第1パケットが処理ステップのための入力又は出力待ち行列としての役割を果たすことが出来るより柔軟なアーキテクチャをもたらす。
【0006】
本発明による方法の実施例は請求項2に記載されている。要求セマフォの保護内で第1パケットを取得することに加えて第2パケットを取得することにより、前記第1パケットのコンテンツの処理の結果が第2パケット内に記憶されるシーケンスが保護される。更に、前記第2パケットを書き換えることが許容される前には、該第2パケットのありうる前のコンテンツは、新しいコンテンツで書き換えられない。データの処理は前記セマフォの保護の外側で行なわれることから、第1プロセッサが全データを処理し終えるまで他のプロセッサはストールされない。ストリーミングアーキテクチャ内では、第1待ち行列及び前記第1パケットが処理ステップのための入力待ち行列及び入力パケットとみなされ得るのに対して、第2待ち行列及び前記第2パケットは出力待ち行列及び出力パケットとみなされ得る。
【0007】
本発明による方法の実施例は請求項3に記載されている。セマフォの保護内で共用メモリをアップデートすることにより、前記共用メモリのアップデートされたコンテンツは、全ての関連するプロセッサにとって同時に利用可能になり、取得される入力及び出力パケットのコンテンツと一貫性がある。このアップデートが前記セマフォの保護内で行なわれることから、処理ステップによる前記共用メモリを読み出す及び書き込むステップはアトミック・アクション内で行なわれる。
【0008】
更に、本発明の目的は、改善された方法でパケットを取得し、より柔軟なアーキテクチャを可能にするシステムを供給することにある。この目的を達成するために、前文に基づいてメディアファイルを処理するシステムは、当該システムが、
複数のプロセッサのうちの1つによる処理ステップを保護するセマフォ手段と、
複数の予め規定された状態のうちの第1の予め規定された状態を有する状態手段と、
入力パケットの第1の予め規定された状態を待つ待ち手段と、
前記第1の予め規定された状態を前記複数の予め規定された状態のうちの第2の予め規定された状態に変える変更手段とを更に有することを特徴とする。
【0009】
本発明に基づいてメディアファイルをデコードするシステムの実施例は請求項5に記載されている。
【0010】
以下の図面によって図示されている実施例により本発明を説明する。
【発明を実施するための最良の形態】
【0011】
今日では、連続的なメディアデータ処理は、ますます、専用の単一機能の構成要素よりむしろ、プログラム可能な構成要素、専用のハードウェアの構成要素とプログラム可能な構成要素との組み合わせによって行なわれるようになっている。プログラム可能な構成要素は、このハードウェア駆動の処理からソフトウェア駆動の処理へのシフトを可能にする、モジュール方式の、柔軟で、保守可能で、強力なアーキテクチャの要求を生じさせる。これは、例えば、データがマルチプロセッサシステムによって処理されるリアルタイムMPEGビデオ処理ドメイン内の場合である。本発明は、このようなストリーミングアーキテクチャに関し、MPEG符号化ビデオデータ、マクロブロックデータ及び422ビデオイメージデータなどのビデオのエンコーディング及びトランスコーディング、又は多重化及び逆多重化のようなタスクのリアルタイム実行を可能にする。更に、本発明は、オーディオの処理、VBI、IP及びトランスポートストリームの処理、ビデオのエレメンタリストリーム又はパケット化エレメンタリストリーム(PES)の処理に適用され得る。一般に、本発明は、様々な処理ステップが複数のプロセッサによって行なわれ得るストリーミングアーキテクチャに関する。以下の記載においては、しばしば、複数のプロセッサがタスクを行なうことが出来ることを示すために、これらのプロセッサを「コプロセッサ」と呼ぶ。
【0012】
本発明においては、コプロセッサボードによって実行され得る各アプリケーションは、同じドメイン内の他のアプリケーションの他のタスクと可能な限り共通であるタスクに細分される。これらのタスクは、好ましくは、データが流入及び流出することを可能にするストリーミング方法において動作する。幾つかの順次処理ステップにかけられるデータは、可能な限り、パイプライン処理内のように互いをフォローアップするタスクによって処理される。独立して並列に処理され得るデータは、好ましくは、例えば、多数のプロセッサにおいて、多数のデータの塊において並列に動作することが出来る単一のタスク、又は並列のタスクによって処理される。
【0013】
図1は、入力待ち行列102からデータ106を読み出し、出力待ち行列104に処理済データ108を書き込むタスク100を図示している。入力待ち行列102は先行タスクからのデータ110で満たされ、後続タスクは出力待ち行列104からデータ112を読み出す。タスクは、その読出しポインタ114及び書込みポインタ116をインクリメントすることにより、タスクが処理すべきデータを常に把握している。入力待ち行列からの順次読出し及び出力待ち行列への順次書込みを可能にする他の技術も用いられ得る。本発明は、読出しポインタ114及び書込みポインタ116を比較することにより入力待ち行列102からの読出しと出力待ち行列104への書込みとの間の同期をとることなく、下記のような方法を行なう。タスクは、例えば、MPEGの仕様に基づく順方向又は逆方向の離散コサイン変換(DCT)、MPEGの仕様に基づく量子化又は逆量子化、フレームブロックのフレームメモリへの記憶などであり得る。
【0014】
多数のプロセッサがタスクを実行し、タスクは、各々がデータを有する1つ以上のパケットを含む零個以上の入力待ち行列及び零個以上の出力待ち行列を持つ。一般的に、パケットは、特定の待ち行列に結び付けられ、パケットの大きさ及びコンテンツは変化することが出来る。予め規定されたタスクのための特定の待ち行列内のパケットの大きさは、予め規定されたタスクのための全てのタイプのデータが正確に表わされることを可能にするような大きさである。更に、データは値によって渡される。データは、そうするよう特別な要求がある場合にのみ参照により渡される。更に、データは、特定のタイプのものであることができ、タスクは、データのタイプを変えること及び別のタイプのデータを生成することが出来る。最新のシステムにおいては、ポインタがデータエリアを参照する。幾つかの現在のシステムにおいては、データエリアの実際の場所、従ってポインタの値が、データを処理する間に変化し得る。その場合に、システムは、この場所とデータとの間の一貫性に留意しなければならない。多数のプロセッサがタスクを実行することが出来ることから、データの一貫性のない使用を防止するためにこれらのプロセッサは同期をとられなければならない。この同期は、タスクの実行のサブパート(sub-part)を保護するセマフォ118を用いることにより達成される。
【0015】
図2はパケットごとの状態を図示している。入力待ち行列102からの読出しと出力待ち行列104への書込みとの間の同期をとるために、状態はパケットごとに保たれる。この状態は、書込み(writing)200から満杯(full)202へ、満杯202から読出し(reading)204へ、読出し204から空(empty)206へ変化することが出来る。この最後の状態206は、再び最初の状態200へ変化することが出来る。書込み状態は、データがパケットに書き込まれていること、及びデータが読み出されるのにはまだ一貫性がないことを示し、満杯状態は、データが書き込まれたこと、及びデータが読み出されるための一貫性があることを示し、読出し状態は、データがパケットから読み出されていることを示し、空状態は、全てのデータがパケットから読み出されたこと、及び再びパケットに新しいデータを書き込むことが許容されることを示す。
【0016】
図3は、タスクのセマフォの状態を図示している。セマフォ118は、2つの状態のうちの一方の状態にあり得る。最初のうち、セマフォは非要求(not-claimed)状態300にある。この状態は要求(claimed)状態302に変化することができ、要求状態302は再び非要求状態300に変えられ得る。セマフォの状態の変化は、通常、読出し-変更-書込みのアクションにおいてなされる。本発明では、この状態の変化及び対応するアクションは、好ましくは、他のプロセッサの割込みアップデート(intervening update)の結果としての一貫性のない状態を防止するために、1つのアトミック・アクション内で行なわれる。
【0017】
図4は、本発明による方法の主要なステップを図示している。これらの主要なステップは、メディアファイルのデコーディングとエンコーディングとの両方のために行なわれる。第1ステップS400は、待ち行列が適切なタスクに割り当てられ、タスクが適切なコプロセッサに割り当てられる初期設定ステップである。更に、タスクは様々なスレッドに細分され、様々なプロセッサが各スレッドを実行することが出来る。次のステップS402内では、タスクを実行する資格がある様々なコプロセッサの間の同期が、タスクのセマフォ118をフェッチすることにより達成される。タスクのセマフォが利用可能ではない場合には、特定のコプロセッサは、付加的なステップ(図示せず)内で適正な状態を待つことが出来る。その場合に、セマフォ118の状態は、ステップS402内で非要求300から要求302に変化する。セマフォが要求されている場合に、他のプロセッサはセマフォを要求することが出来ない。セマフォ118を要求しているコプロセッサのみが、タスクの読出し及び書込みポインタをデータが読み出されるべき次のパケット及びデータが書き込まれるべき次のパケットに向けるために、これらのポインタをアップデートすることを許容される。パケット内に含まれるデータはセマフォによって保護されない。ステップS404内では、タスクは、タスクの読出しポインタによって示されるように入力待ち行列から入力パケットの状態を読み出すために入力待ち行列及び出力待ち行列にアクセスする。更に、タスクは、タスクの書込みポインタによって示されるように出力待ち行列から出力パケットの状態を読み出す。次回、タスクが処理されるべき次のパケットの状態を読み出すように、タスクの読出しポインタ及び書込みポインタの両方がインクリメントされる。ステップS406内では、パケットの状態が調べられる。タスクは、入力待ち行列からの満杯202のパケット及び出力待ち行列からの空206のパケットしか用いることが出来ない。このようにして、先行タスクがデータを書き込み終えなかったためにタスクが一貫性のないデータを読み出すことが防止され、出力パケットが後続タスクによって読み出されなければならないデータを依然として有するためにタスクが出力待ち行列においてデータを上書きすることが防止される。他のタスクは、依然として、読出しから空へ及び書込みから満杯へパケットの状態を変えることが出来ることに注意されたい。なぜなら、セマフォはこれらのパケットの空から書込みへの状態変化及び満杯から読出しへの状態変化しか保護しないからである。入力パケットの状態が満杯202ではない又は出力パケットの状態が空206ではない場合には、セマフォを要求しているコプロセッサは、両状態が適正な状態、即ち、入力において満杯202に、出力において空206に変化するまでステップS408内で待たなければならない。次いで、ステップS410内で、入力パケットの満杯状態202が読出し状態204へ変えられ、出力パケットの空状態206が書込み状態200へ変えられる。更に、データがタスクを実行するコプロセッサによって共用される共用データを有する場合には、共用データは随意のステップS412内で共用メモリに転送される。このような共用データは、全ての関連するコプロセッサのためのタスクの実行をもたらすことが出来る、又はタスクによって取り扱われるべき代替パラメータセット(alternate parameter sets)を有することが出来る、又は特別なタスクのみが解釈することが出来る特定のデータを有することが出来る。共用データの一貫性のないアップデート及び/又は使用を防止するために、データは、更に、単一のプロセッサの固有のアドレス空間(own address space)にコピーされる。共用データの共用メモリへの転送後、セマフォはステップS414内で開放される。ステップS412が行なわれない場合には、ステップS414がステップS410の後に続く。他のコプロセッサは、ここで、待ち行列からの次のパケットを処理する用意ができ次第、セマフォの要求を開始することが出来る。ステップS416内では、データが実際に処理され、データを処理するコプロセッサは、処理するのに必要である全時間をかけることが出来る。コプロセッサがデータを処理し終える場合に、パケットの状態がステップS418内で変えられる。入力パケットの状態は読出し204から空206に変えられ、出力パケットの状態は書込み200から満杯202に変えられる。これに関して、セマフォが要求される必要はないが、同じコプロセッサが即座に再びパケットにアクセスすることは出来ない。なぜなら、他のコプロセッサにおいて走っている他のタスクがパケットにアクセスするかもしれないからである。
【0018】
一般に、上記の方法は、タスクに割り当てられるプロセッサの数に依存せず、その結果、アプリケーションの別々のタスクへの細分を設計し直す必要性なしに同じタスクをより多くのプロセッサに割り当てることにより全アプリケーションのトランスペアレントなスピードアップを可能にする。再割当てはリアルタイムに行なわれることができ、タスクへのコプロセッサの割当てを設計問題自身にはしない。更に、上記の方法は、他のパケットにおいて同じタスクを走らせる多数のコプロセッサの間の処理時間における差とは無関係に、入力待ち行列から出力待ち行列までのパケットの順序(packet order)を保存する。セマフォが各待ち行列のために別々に導入される場合には、例えば、等しさについて比較され得るパケットに対する付加的なパラメータを導入することによって適切な方策をとることなしには、パケットの順序は維持されないかもしれない。これに関して、シーケンス番号が用いられ得る。別個の各待ち行列のためのセマフォの使用は、より柔軟な入出力パケット比、例えば、入力待ち行列からの1つのパケットの読み出し及び出力待ち行列からの2つ以上のパケットを書込みを可能にし得る。
【0019】
本発明の方法の上記の実施例における順序は必須ではなく、当業者は、本発明によって意図されている概念から外れることなしに、ステップの順序を変更し得る、又は並行して、スレッディングモデル、マルチプロセッサシステム若しくは多数のプロセスを用いるステップを行ない得る。
【0020】
図5は、本発明によるシステムの主要な部分を概略的に図示している。システム500は、MPEGビデオのようなメディアストリーム及びオーディオストリームのエンコードとデコードとの両方をすることが出来る。このシステムは、別々のコプロセッサによって実行され得る多数のスレッドを有するタスクを実行するために割り当てられる2つのコプロセッサ502及び504を有する。更に、このシステムは、このシステムによって実行可能である他のタスクを実行することが出来る他のコプロセッサ520を有する。メモリ506は、タスクによって処理されるべきデータを備えるパケットを含む入力待ち行列を有する。メモリ508は、タスクによって処理されたデータを備えるパケットを含む出力待ち行列を有する。メモリ510は上記のようなセマフォを有する。タスクは、1つのアトミック・アクション内でこのメモリ510のコンテンツを変えることが出来る。更に、メモリ512は入力パケットの状態を有し、メモリ514は出力パケットの状態を有する。メモリ516は、プロセッサ502及び504の待ち状態を有する。このメモリは、プロセッサの状態を決定するためにソフトウェアを更に有するのに対して、メモリ518は、入力パケット及び出力パケットの状態を有するメモリの状態を変えることが出来るソフトウェアを有する。コプロセッサの間の共用パラメータは、タスクによってアップデートされ得るメモリ526内に含まれる。上記のメモリ及びコプロセッサはソフトウェアバス530を介して互いと通信接続(communicatively connect)される。更に、上記のタスクは、オーディオ、ビデオを再生し、画像などを示すことが出来るマルチメディアアプリケーションの一部である。システム500は、コンピュータ又はソフトウェアを動作させることが出来るあらゆる他の標準的なアーキテクチャによって走らされるアプリケーションとして動作されるソフトウェアにおいて実現される。システム500はまた、ハードウェアにおいて実現されることができ、このシステムは、デジタル又はアナログのテレビ522を動作させるのに用いられ得る。ソフトウェアはまた、本発明による方法を行なうよう構成されるコンピュータプログラム製品を有する記憶装置524からアップデートされ得る。記憶装置は、システム500に接続される適当な読出し装置、例えば、CDリーダ528によって読み出される。
【0021】
図6は、本発明によるシステムの実施例を有するテレビ610を概略的に図示している。ここで、アンテナ600はテレビ信号を受信する。例えば、衛星放送受信アンテナ、ケーブル、記憶装置、インターネット又はイーサネット(R)のようなテレビ信号を受け取る又は再生することが出来る如何なる装置もアンテナ600に取って代わることが出来る。受信機602はこの信号を受け取る。この信号は、例えば、デジタル、アナログ、RGB又はYUVであり得る。受信機602に加えて、テレビは、プログラム可能な構成要素604、例えば、プログラム可能な集積回路を含む。このプログラム可能な構成要素は本発明によるシステム606を含む。テレビ画面608は、受信機602によって受信され、プログラム可能な構成要素604によって処理される画像を示す。他の例において、ユーザが受信信号、例えば映画を記録することを欲する場合には、本発明によるシステム606は、DVD+RW、コンパクトディスク又はハードディスクのような記録装置において受信信号を記録する。更に他の例において、ユーザが、記録された映画を再生することを欲する場合には、本発明によるシステム606は、記録装置から適切なデータを取り出す。
【0022】
図7は、グラフのように概略的にMPEGビデオデコーダの処理タスクを図示している。ビデオストリームはストリーム供給源702によって供給される。タスク704は、ヘッダの検出を行い、ストリームを別々のスライスに分割する。このタスクは、好ましくは多数のプロセッサによって細分されない分割できないタスクである。単一のスライスが、バッファ706を介してタスク708に転送される。708が、スライスの実際のハフマン・デコーディングを行なう。デコードされたデータは、ここで、マクロブロックストリームに変換され、次いで、多数のタスクに分割される。マクロブロックストリームの係数部(coefficient part)は、逆量子化を行なうタスク710によって用いられ、逆DCTを行なう712に伝えられる。マクロブロックストリームのベクトル部分は、各々、順方向フレーム及び逆方向フレームにおいて動き補償を行なうタスク722及び726によって用いられる。次いで、両方の予測が、タスク724によって加算され、平均され、最終的な予測を形成する。次いで、これは、タスク714によって予測誤差信号(prediction error signal)に付加される。この結果は、最終的なデコードされた画像であり、タスク716によってフレームメモリに記憶される。タスク716は、フリーフレーム(free frame)を記憶する表示タスク720からフレームバッファ参照を得る。ピクチャの全マクロブロックがフレームに書き込まれたら、フレーム参照は、タスク718、フレームマネージャに伝えられる。このフレームマネージャは、どのフレームがアンカーフレーム(anchor frame)として用いられるべきか及びどのフレームが表示されるべきかを決定する。アンカーフレームは、次のフレームの動き予測のためにタスク722及び726によって用いられる。表示されるべきフレームはタスク720に伝えられ、タスク720は、更に、新しいフレームを表示し、古いフレームをフリーリスト(free list)に戻す。このアーキテクチャのタスクにおいては、全ての適用可能なタスクが、上記のような本発明による方法に基づいて同期が行なわれる多数のコプロセッサによって処理され得る。
【0023】
図8は、本発明によるシステムの実施例を有するセットトップボックスの最も重要な部分を概略的に図示している。ここで、アンテナ800はテレビ信号を受信する。アンテナ800はまた、例えば、衛星放送受信アンテナ、ケーブル、記憶装置、インターネット、イーサネット(R)又はテレビ信号を受け取ることが出来るあらゆる他の装置であり得る。セットトップボックス802はこの信号を受け取る。この信号は、例えば、デジタル、アナログ、RGB又はYUVであり得る。ここには示されていない、セットトップボックスに含まれる通常のパーツに加えて、セットトップボックスは本発明によるシステム804を含む。ユーザが、受信信号、例えば映画を記録することを欲する場合には、本発明によるシステム804は、DVD+RW、コンパクトディスク又はハードディスクのような記録装置において受信信号を記録する。ユーザが、記録された映画を再生することを欲する場合には、本発明によるシステム804は、記録装置から適切なデータを取り出す。テレビ806は、セットトップボックス802によって受信信号から生成された出力信号を示すことが出来る。
【図面の簡単な説明】
【0024】
【図1】入力待ち行列からデータを読み出し、出力待ち行列に処理データを書き込むタスクを図示する。
【図2】パケットごとの状態を図示する。
【図3】タスクのセマフォの状態を図示する。
【図4】本発明による方法の主要なステップを図示する。
【図5】本発明によるシステムの主要な部分を概略的に図示する。
【図6】本発明によるシステムの実施例を有するテレビを概略的に図示する。
【図7】グラフのように概略的にMPEGビデオデコーダの処理タスクを図示する。
【図8】本発明によるシステムの実施例を有するセットトップボックスの最も重要な部分を概略的に図示する。
Claims (10)
- 複数のプロセッサによって実行される少なくとも1つの処理ステップを有し、前記少なくとも1つの処理ステップは処理データを有する、メディアファイルを処理する方法であって、前記少なくとも1つの処理ステップが、
前記少なくとも1つの処理ステップを保護するセマフォを前記複数のプロセッサのうちの1つによって要求する第1ステップと、
第1待ち行列から第1処理パケットを取得し、前記第1処理パケットは前記処理データを有する第2ステップと、
前記第1処理パケットが複数の予め規定された状態のうちの第1の予め規定された状態を持つまで待つ第3ステップと、
前記第1処理パケットの前記第1の予め規定された入力状態を前記複数の予め規定された状態のうちの第2の予め規定された状態に変える第4ステップと、
前記複数のプロセッサのうちの前記1つにより前記セマフォを開放する第5ステップと、
前記処理データを読み出す及び/又は書き込むステップを有する前記メディアファイルを処理する第6ステップと、
前記第1処理パケットの前記第2の予め規定された状態を前記複数の予め規定された状態のうちの第3の予め規定された状態に変える第7ステップとを更に有することを特徴とするメディアファイルを処理する方法。 - 前記第2ステップが、第2待ち行列から第2処理パケットを取得するステップを更に有し、
前記第3ステップが、前記第2処理パケットが前記複数の予め規定された状態のうちの前記第3の予め規定された状態を持つまで待つステップを更に有し、
前記第4ステップが、前記第2処理パケットの前記第3の予め規定された状態を前記複数の予め規定された状態のうちの第4の予め規定された状態に変えるステップを更に有し、
前記第7ステップが、前記第2処理パケットの前記第4の予め規定された状態を前記複数の予め規定された状態のうちの前記第1の予め規定された状態に変えるステップを更に有することを特徴とする請求項1に記載のメディアファイルを処理する方法。 - 前記第3ステップが共用メモリのコンテンツをアップデートするサブステップを更に有し、前記共用メモリは前記複数のプロセッサによって共用されていることを特徴とする請求項1に記載のメディアファイルを処理する方法。
- 処理データに対して実行される少なくとも1つの処理ステップを実行し、前記処理ステップは前記処理データを読み出す及び/又は書き込むステップを有する複数のプロセッサ手段と、
第1処理パケットを有し、前記第1処理パケットは前記処理データを有する第1待ち行列手段とを有する、メディアファイルを処理するシステムであって、
前記複数のプロセッサのうちの1つによる前記処理ステップを保護するセマフォ手段と、
複数の予め規定された状態のうちの第1の予め規定された状態を有する状態手段と、
入力パケットの第1の予め規定された状態を待つ待ち手段と、
前記第1の予め規定された状態を前記複数の予め規定された状態のうちの第2の予め規定された状態に変える変更手段とを更に有することを特徴とするメディアファイルを処理するシステム。 - 第2パケットを有し、前記第2パケットは第2処理データを有する第2待ち行列手段を更に有し、
前記状態手段は、前記複数の予め規定された状態のうちの第3の予め規定された状態を更に有し、
前記変更手段は、前記第3の予め規定された状態を前記複数の予め規定された状態のうちの第4の予め規定された状態に更に変えることを特徴とする請求項4に記載のメディアファイルを処理するシステム。 - 前記複数のプロセッサのための共用コンテンツを有するメモリ手段を更に有することを特徴とする請求項5に記載のメディアファイルを処理するシステム。
- 請求項1乃至3の何れか一項に記載の方法を行なうよう設計されたコンピュータプログラム。
- 請求項7に記載のコンピュータプログラムを有する記憶装置。
- 請求項4乃至6の何れか一項に記載のシステムを有するテレビ。
- 請求項4乃至6の何れか一項に記載のシステムを有するセットトップボックス。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP01202610 | 2001-07-06 | ||
PCT/IB2002/002546 WO2003005197A1 (en) | 2001-07-06 | 2002-06-20 | Method and system of processing a media file |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004538562A true JP2004538562A (ja) | 2004-12-24 |
Family
ID=8180608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003511099A Withdrawn JP2004538562A (ja) | 2001-07-06 | 2002-06-20 | メディアファイルを処理する方法及びシステム |
Country Status (8)
Country | Link |
---|---|
US (1) | US20040177189A1 (ja) |
EP (1) | EP1407355B1 (ja) |
JP (1) | JP2004538562A (ja) |
KR (1) | KR20030045054A (ja) |
CN (1) | CN1522406A (ja) |
AT (1) | ATE330279T1 (ja) |
DE (1) | DE60212396D1 (ja) |
WO (1) | WO2003005197A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005083440A2 (en) | 2004-02-19 | 2005-09-09 | Yale University | Identification of cancer protein biomarkers using proteomic techniques |
CN100388209C (zh) * | 2005-01-05 | 2008-05-14 | 英业达股份有限公司 | 防止数据处理混乱的方法 |
US8700404B1 (en) * | 2005-08-27 | 2014-04-15 | At&T Intellectual Property Ii, L.P. | System and method for using semantic and syntactic graphs for utterance classification |
KR100881188B1 (ko) * | 2007-02-26 | 2009-02-05 | 삼성전자주식회사 | 디지털 방송 수신기에서 상위 레이어의 전 처리를 통한수신 성능 향상 방법 및 그에 따른 장치 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5848283A (en) * | 1993-01-29 | 1998-12-08 | International Business Machines Corporation | Method and system for efficient maintenance of data coherency in a multiprocessor system utilizing cache synchronization |
US6006247A (en) * | 1995-03-21 | 1999-12-21 | International Business Machines Corporation | Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system |
US6041394A (en) * | 1997-09-24 | 2000-03-21 | Emc Corporation | Disk array write protection at the sub-unit level |
JP2001508214A (ja) * | 1997-10-29 | 2001-06-19 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ブロック編制データ転送同期化方法及びシステム |
US6614794B1 (en) * | 1999-03-03 | 2003-09-02 | Conexant Systems, Inc. | System and method for multiple modem traffic redirection |
US6728853B1 (en) * | 1999-12-14 | 2004-04-27 | Genesis Microchip Inc. | Method of processing data utilizing queue entry |
-
2002
- 2002-06-20 US US10/482,148 patent/US20040177189A1/en not_active Abandoned
- 2002-06-20 WO PCT/IB2002/002546 patent/WO2003005197A1/en active IP Right Grant
- 2002-06-20 AT AT02741024T patent/ATE330279T1/de not_active IP Right Cessation
- 2002-06-20 KR KR10-2003-7003336A patent/KR20030045054A/ko not_active Application Discontinuation
- 2002-06-20 CN CNA028134737A patent/CN1522406A/zh active Pending
- 2002-06-20 DE DE60212396T patent/DE60212396D1/de not_active Expired - Fee Related
- 2002-06-20 JP JP2003511099A patent/JP2004538562A/ja not_active Withdrawn
- 2002-06-20 EP EP02741024A patent/EP1407355B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US20040177189A1 (en) | 2004-09-09 |
WO2003005197A1 (en) | 2003-01-16 |
EP1407355A1 (en) | 2004-04-14 |
EP1407355B1 (en) | 2006-06-14 |
ATE330279T1 (de) | 2006-07-15 |
DE60212396D1 (de) | 2006-07-27 |
KR20030045054A (ko) | 2003-06-09 |
CN1522406A (zh) | 2004-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4346976B2 (ja) | ディジタルデータレート変更および方向性再生変更の処理の方法およびシステム | |
US6310921B1 (en) | Media processing apparatus which operates at high efficiency | |
US6470376B1 (en) | Processor capable of efficiently executing many asynchronous event tasks | |
US20070160151A1 (en) | Video decoding device | |
KR20070011335A (ko) | 영상음성 처리용 집적회로 | |
US20060088279A1 (en) | Reproduction apparatus, data processing system, reproduction method, program, and storage medium | |
JP2010532536A (ja) | デジタルメディア処理用インターフェース | |
US7609768B2 (en) | Video buffer control apparatus for dual video decoding and digital broadcasting receiver thereof | |
US5752266A (en) | Method controlling memory access operations by changing respective priorities thereof, based on a situation of the memory, and a system and an integrated circuit implementing the method | |
US20200371994A1 (en) | Methods and systems for providing file data for a media file | |
US7751687B2 (en) | Data processing apparatus, data processing method, data processing system, program, and storage medium | |
JP2004538562A (ja) | メディアファイルを処理する方法及びシステム | |
US8280220B2 (en) | Reproduction apparatus, data processing system, reproduction method, program, and storage medium | |
CN113923507B (zh) | Android端的低延迟视频渲染方法及装置 | |
US8854382B2 (en) | Multi-function encoder and decoder devices, and methods thereof | |
US8948263B2 (en) | Read/write separation in video request manager | |
JP3356677B2 (ja) | 非同期に実行すべきタスクが多数あっても、非同期イベントタスクを効率良く実行することができるプロセッサ | |
JPH08314793A (ja) | メモリアクセス制御方法および該方法を適用した半導体集積回路および画像復号装置 | |
US20080056377A1 (en) | Neighboring Context Management | |
US8442126B1 (en) | Synchronizing audio and video content through buffer wrappers | |
US7627232B2 (en) | Reproduction apparatus, data processing system, reproduction method, program, and storage medium | |
US6614437B1 (en) | Apparatus and method for efficient memory utilization in an electronic system | |
JP2007122502A (ja) | フレームバッファ管理プログラム、プログラム記憶媒体、および管理方法。 | |
JP2002245448A (ja) | 演算装置 | |
JP3380236B2 (ja) | 映像音声処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050617 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20070522 |