JP2007538334A - ビデオ処理のための階層的プロセッサ構造 - Google Patents

ビデオ処理のための階層的プロセッサ構造 Download PDF

Info

Publication number
JP2007538334A
JP2007538334A JP2007527262A JP2007527262A JP2007538334A JP 2007538334 A JP2007538334 A JP 2007538334A JP 2007527262 A JP2007527262 A JP 2007527262A JP 2007527262 A JP2007527262 A JP 2007527262A JP 2007538334 A JP2007538334 A JP 2007538334A
Authority
JP
Japan
Prior art keywords
data
processor
instructions
memory
instruction
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.)
Granted
Application number
JP2007527262A
Other languages
English (en)
Other versions
JP4964774B2 (ja
Inventor
リッピンコット,ルイス
Original Assignee
インテル コーポレイション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2007538334A publication Critical patent/JP2007538334A/ja
Application granted granted Critical
Publication of JP4964774B2 publication Critical patent/JP4964774B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Multi Processors (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

システムはメモリ、いくつかの低レベルプロセッサおよび制御プロセッサを含みうる。メモリは指標データ、該指標データによって記述される他のデータおよび命令を保存しうる。低レベルプロセッサは前記他のデータを前記命令に基づいて処理しうる。制御プロセッサは前記指標データから前記他のデータを処理するのに必要とされる命令のサブセットを決定しうる。制御プロセッサはまた、命令のサブセットが前記いくつかの低レベルプロセッサにロードされるようにしうる。

Description

特許請求される発明の実装は概略的には情報処理に、より詳細には受信したビデオ情報の処理に関しうる。
ある種の処理タスクには、複雑なアルゴリズムおよび著しい量の処理データの両方が関わってくることがありうる。ビデオ情報のデコードおよび/またはエンコードはそのような処理タスクの一つでありうる。たとえば、ビデオ情報の種々のインターレース方式、フレーム種別、順序などは、はいってくるビデオのストリームを扱うプロセッサに対してアルゴリズム上の複雑さを呈しうる。いくぶん高いフレームレートおよび/またはフレームあたりのピクセル数も著しい量の処理データ(たとえば計算負荷)を呈しうる。
そのような処理タスクを扱う一つの方法は、論理的に複雑なタスクを扱うことができ、それでいて著しい量のデータを扱うのに十分高速/高性能であるプロセッサを使用することでありうる。しかしながら、そのようなアプローチは比較的速いクロック周波数で動作する比較的大きくて複雑なプロセッサを必要としうる。比較的速いクロック周波数で動作する大きくて複雑なプロセッサは、比較的高い電力量を費消しうる。
本明細書に組み込まれてその部分をなす付属の図面は、本発明の原理と整合する一つまたは複数の実施形態を示し、本文と一緒にそのような実施形態を説明するものである。図面は必ずしもスケール通りではなく、むしろ本発明の原理を図解することに重点が置かれている。
以下の詳細な記述は付属の図面を参照する。同じまたは同様な要素を指すために異なる図面において同じ参照符号が使われることがある。以下の記述では、限定ではなく説明の目的で、特許請求される発明のさまざまな側面の完全な理解を提供するために、特定の構造、アーキテクチャ、インターフェース、技法などといった個別的な詳細が記載されるが、本開示の恩恵を得た当業者には、特許請求される本発明のさまざまな側面はこうした個別的な詳細からは外れる他の例において実施されることもできることは明らかであろう。場合によっては、よく知られた装置、回路および方法の記述は、本発明の記載を不必要な詳細によって埋没させないよう省略される。
図1は例としてのシステム100を示している。システム100の例としての実施形態はパーソナルビデオレコーダー(PVR)またはデジタル多用途ディスクレコーダー(DVD-R)であるが、特許請求される発明はこれに関して限定されない。たとえば、システム100は汎用コンピュータ、携帯機器、消費者電子装置またはその他の電気システム内に具現されてもよい。システム100は単一の装置内に具現されてもよいが、実施形態によってはシステム100のある種の構成要素はシステム100のその他の構成要素からはリモートおよび/または物理的に離れていてもよい。さらに、システム100は離散的な諸構成要素を含むものとして例示されるが、これらの構成要素はハードウェア、ソフトウェア/ファームウェアまたはそれらの組み合わせにおいて実装されてもよい。ハードウェアで実装されるとき、システム100のいくつかの構成要素がある種のチップまたは装置において組み合わされてもよい。
システム100はデータソース110、メモリ120、データプロセッサ130、データ目的地170を含みうる。ソース110はデータをメモリ120に送りうる。メモリ120内のデータはデータプロセッサ130によって処理されうる。処理されたデータは目的地170に送られうる。説明の目的上、送られ、作用されるデータはメディアデータ(たとえばビデオ情報)を含むことがあるが、特許請求される発明はこれに関して限定されない。データプロセッサ130はここにおける記載と整合する、メディア情報以外のその他の種類のデータを処理してもよい。
ソース110はシステム100の残りにメディア情報を提供する装置を含みうる。ソース110によって提供されるメディア情報は、MPEG-1, MPEG-2, MPEG-4, H.264, ウィンドウズ(登録商標)・メディア・ビデオ・バージョン9(WMV9)および先進ビデオシステム(AVS: Advanced Video System)のフォーマットといったフォーマットでエンコードされたビデオ情報を含みうる。特許請求される発明はここで具体的に言及されるフォーマットに限定されない。むしろ、現在知られている、あるいはのちに開発されるいかなるメディアフォーマットでもここに開示される方式に従って使用されうる。
実施形態によっては、ソース110は、ビデオ情報(たとえば高精細度(HD: high definition)MPEG-2情報)のストリームまたはチャンネルをメディア情報の他のストリームまたはチャンネルから分離させるためのチューナーを含みうる。いくつかの実施形態では、ソース110は記憶媒体からメディア情報を読むための読み取り器を含みうる。たとえば、そのような読み取り器は、DVD、ハードディスク、半導体記憶装置またはその他の記憶媒体からビデオ情報を抽出するための光学式、磁気式および/または電気式読み取り器を含みうる。
実施形態によっては、ソース110は、メディア情報を通信リンク(図示せず)から受信するための受信機回路を含みうる。ソース110中のそのような受信機は、有線、光または無線の伝送媒体から情報を受信するよう構成されうる。ソース110中の受信機は、所望の情報を他の受信情報から分離させるためのチューナーその他の装置と一緒に作用してもよいし、そうでなくてもよい。
メモリ120はソース110からメディア情報を受け取って該メディア情報を保存しうる。データプロセッサ130から命令されればメモリ120が処理されたメディアデータを目的地170に提供することもできるし、および/または目的地170がデータプロセッサ130によってトリガーされたときにそのような処理されたメディアデータを読み取ることもできる。メモリ120は、データの高速な転送および保存を容易にするためにランダムアクセスメモリ(RAM)を含みうる。そのようなRAMは、システム100の設計パラメータに従って、同期式、非同期式、倍速データレート(DDR: double data rate)などでありうる。
メディアデータを保存することに加えて、メモリ120はデータプロセッサ130および/またはその構成要素による使用のための命令を保存しうる。そのような命令はタスク特異的であり、要求されたときにデータプロセッサ130に提供されうる。メモリ120は、データプロセッサ130によってロードされたときにデータプロセッサ130がソース110から受け取ったデータ(たとえばメディアまたはビデオデータ)に対して多様な処理タスクを実行できるようにするそのような命令の一つまたは複数のセットを含みうる。
データプロセッサ130は、制御プロセッサ140、いくつかの低レベルプロセッサ150−1、150−2…150−n(まとめて「低レベルプロセッサ150」)および直接メモリアクセス(DMA: direct memory access)160を含みうる。実施形態によっては、要素130〜160のすべては同じチップまたはパッケージ内に位置されうる。しかし、実施形態によっては、低レベルプロセッサ150およびDMA160は一つのチップまたはパッケージ内でありうる一方、制御プロセッサ140は別個のチップまたはパッケージに位置されうる。その他の組み合わせおよび実装も可能である。
制御プロセッサ140は、比較的複雑な処理動作を制御および/または調整するために十分な命令メモリを含みうる。そのような複雑な動作(たとえばビデオ情報のデコード)を扱う際には、制御プロセッサはそのタスクのためにどのリソースが必要とされるかを判定し(たとえばデコード・アルゴリズムのようなアルゴリズムを構文解析することによって)、リソースをそのタスクに割り当てる(たとえば、低レベルプロセッサ150を適切に構成設定することによって)ことを両方行いうる。この後者、割り当て機能においては、制御プロセッサ140は、タスク特異的な命令を、メモリ120から低レベルプロセッサ150にロードするよう構成されうる。
いくつかの処理動作は「データ駆動」(たとえば、ソース110からのデータによって定義される)でありうる。そこで制御プロセッサ140はどの種類の処理が実行されるべきかを決定するために指標データを調べうる。制御プロセッサ140は次いで、指標データに続くソース110からのデータを処理するために、メモリ120からの適切な命令を用いて低レベルプロセッサ150を構成設定しうる。制御プロセッサ140はまた、低レベルプロセッサ150のあるものを、並列式にあるデータを処理するため、および/またはあるタスクを実行するために割り当てうる。制御プロセッサ140は低レベルプロセッサ150を、新たに受け取られた指標データに基づいて必要に応じて構成設定しなおしうる。この制御方式については、のちにさらに詳細に述べる。
論理的に複雑なタスクおよび比較的多量のデータに関わるタスクを処理するために、制御プロセッサ140は論理的な複雑さを扱うことができ、当該量のデータを扱うために望むなら「オンザフライで」低レベルプロセッサ150を構成設定することができる。これらの機能を達成するため、制御プロセッサ140はその命令メモリにおいて、低レベルプロセッサ150の約10倍以上の数の命令(たとえば、少なくとも10倍)のための余地を有しうる。ある実施形態では、制御プロセッサ140は約32キロバイト(KB)の命令RAMを有しうる。ただし、特許請求される発明はこれに関して限定されない。
低レベルプロセッサ150は制御プロセッサ140より少量の命令メモリ(たとえば1/10未満)をもついくつかのプロセッサを含みうる。ある実施形態では、低レベルプロセッサ150はそれぞれ約1.5キロバイト(KB)の命令RAMを有しうるが、特許請求される発明はこれに関して限定されない。命令メモリの容量がより小さいため、低レベルプロセッサ150のそれぞれは、比較的小さなコードサイズに対応するタスクを実行しうる。低レベルプロセッサ150はまたたとえば、キャッシュ(caches)、深いパイプライン(deep pipelines)、分岐予測(branch prediction)、投機的実行(speculative execution)などのうちの一つまたは複数を欠いていてもよい。しかし、低レベルプロセッサ150の比較的小さなメモリおよび比較的単純な構造は、より複雑なプロセッサに比して電力および大きさの節約につながりうる。実施形態によっては、諸低レベルプロセッサ150は構造および性能において均質でもよいが、実施形態によっては諸低レベルプロセッサ150は構造および/または性能において不均質であってもよい。
説明の簡単のため図1には明示的に示していないが、低レベルプロセッサ150はいくつかの実施形態では相互接続されていてもよい。たとえば、行列型の構成では、低レベルプロセッサ150の一つが低レベルプロセッサ150のうちの一つ、二つ、三つまたはそれ以上の他のものに接続されていることができる。いくつかの実施形態では、低レベルプロセッサ150の数は一桁(たとえば4つまたは8つ)であってもよいが、他の実施形態では2桁の数(たとえば16、20、32、40など)の低レベルプロセッサ150があってもよい。また、低レベルプロセッサ150は処理タスクを実行するものとして記述されることになるが、実施形態によっては低レベルプロセッサ150のそれぞれは一つまたは複数の低レベルプロセッサ150と共同してサブタスクを実行してもよい。低レベルプロセッサ150については、その他の構造上および処理フローの変形も可能であり、かつ考えられている。
いずれにせよ、低レベルプロセッサ150はメモリ120からの命令および制御プロセッサ140からの指揮に基づいてそれらの命令を使って処理するデータを受け取りうる。受け取った命令に依存して、低レベルプロセッサ150のそれぞれは、プロセッサの間で可能な異なる処理タスクについての特定目的プロセッサとなるよう構成されうる。低レベルプロセッサ150は、それぞれのデータを可能性としては並列で、取得し、処理するよう構成されうる。さらに、低レベルプロセッサ150のどの一つも、現在のタスクが完了するたびに構成設定しなおされ(たとえば異なる命令を受け取り)うる。しかし、制御プロセッサ140は、低レベルプロセッサ150のいくつかが実行される必要のあるタスクのためにすでに構成設定されている場合にはそれらを再使用してもよい(すなわち、構成設定しなおさない)。制御プロセッサ140による低レベルプロセッサ150の構成設定のため、データプロセッサ130は階層的プロセッサ(hierarchical processor)と称されうる。
DMA160はメモリ120からのデータの読み取りおよび/またはメモリ120へのデータの書き込みを行いうる。そうすることにおいて、DMA160は、制御プロセッサ140がソース110から指標データを読むのを容易にしうる。DMA160はまた、命令データおよび処理すべきデータを低レベルプロセッサ150に提供しうる。DMA160はまた、低レベルプロセッサ150の間のデータの流れを制御しうる。DMA160はメモリ120と単一の接続でつながれているように図示されているが、それは単にDMA160とメモリ120との間の双方向のデータ転送を示すのみであって、特許請求される発明を限定するものではないことを理解しておくべきである。実際上は、DMA160とメモリ120との間には、図1には明示的に示されていないものの、一つまたは複数の追加的な(たとえば制御)接続が存在しうる。この例示的な原則は、図1に示されているその他の接続にもあてはまる。
データ目的地170は、処理されたデータ(たとえば、デコードされたメディアまたはビデオ情報)を保存または出力するよう構成されうる。実施形態によっては、目的地170は、別のシステムまたはシステム100の別の構成要素(図示せず)にデータプロセッサ130によって処理されたデータへのアクセスを提供するための出力インターフェースを含みうる。そのような物理的な出力インターフェースは光学式、電気式、無線式などでありえ、データの伝送および/またはアクセスのための一つまたは複数の現存またはのちに開発されるインターフェース仕様に従うものでありうる。
実施形態によっては、目的地170は処理されたデータを保存するための記憶装置を含みうる。たとえば、目的地170は情報を保存するためのハードディスクまたはフラッシュメモリを含みうる。実施形態によっては、目的地170は、処理された情報を持ち運び可能な記憶媒体に転送するための書き込み可能な光学式ドライブ(たとえばDVD-RWなど)を含みうる。後刻、再生または他の何らかの目的のために、目的地170内の保存情報に表示プロセッサ(図示せず)がアクセスしてもよい。
目的地170についていくつかの例示的な実施形態を議論してきたが、特許請求される発明は明示的に言及されたものに限定されるべきではなく、メモリ120からの処理された情報を伝送または保存することのできるいかなる装置またはインターフェースをも包含すべきである。デコードされたビデオ情報は、実施形態によっては、それが受け取られたストリームに再挿入されてもよい(たとえば別のチャンネルへの戻し変調(back modulation)によって)。
図2は、データに対する作用のプロセス200を示すフローチャートである。プロセス200は説明の便宜上システム100に関して述べられるかもしれないが、特許請求される発明はこれに関して限定されない。処理は制御プロセッサ140がメモリ120から指標データを読み取り、該指標データに基づいて実行すべき一つまたは複数のタスクを判別することで開始されうる(動作210)。制御プロセッサ140は、その命令メモリ内に常駐している命令(たとえばアルゴリズムをなす命令)を使ってそのような判別を行いうる。のちにより詳細に述べる一つの例では、制御プロセッサ140はビデオデータのためのデコード・アルゴリズムを実行しうる。そして使用される指標データはたとえば、ビデオデータのある特定のフレームがどのような種類のエンコードを有しているかでありうる。
処理は続き、制御プロセッサ140は、前記一つまたは複数のタスクを実行するための命令が低レベルプロセッサ150のうちの一つまたは複数にロードされるよう手配しうる(動作220)。実施形態によっては、制御プロセッサ140はDMA160に、メモリ120内の適切な命令(たとえば単数または複数のマイクロコード・プログラム)にアクセスしてそれらを低レベルプロセッサ150に渡すよう命令しうる。実施形態によっては、制御プロセッサ140は低レベルプロセッサ150に、メモリ120から命令をDMA160を介して入手するよう命令しうる。指標データが処理されるべき他のデータに先行する限り、制御プロセッサ140は比較的低い遅延(delay)または潜在時間(latency)で命令を低レベルプロセッサ150にロードしうる。
命令を受け取った低レベルプロセッサ150は該命令を実行して、制御プロセッサ140によって決定された前記一つまたは複数のタスクを実行しうる(動作230)。そのような命令実行は、命令をロードした後まもなく、おそらくは小規模な構成設定(たとえばメモリ120中のどこでデータを取得すべきか)が低レベルプロセッサ150に対してなされたのち開始されうる。動作230またはそれ以前の動作の一部として、制御プロセッサ140または低レベルプロセッサ150はDMA160を、処理タスクの間、低レベルプロセッサ150にデータを届け、低レベルプロセッサ150からデータを受け付けるようプログラムしうる。一つの計算タスクは単一の低レベルプロセッサ150が実行しうるが、実施形態によっては一つのタスクを実行するために二つ以上の低レベルプロセッサ150が協働しうる。また、実施形態によっては、低レベルプロセッサ150はそれぞれのタスクまたはそのようなタスクの部分を並列的に実行してもよい。
低レベルプロセッサ150はそれぞれの処理タスクのためにメモリ120との間でDMA160を介して適宜データを転送しうる(動作240)。そのような処理が完了したとき、処理されたデータは、バッファリングおよび/または目的地170への転送のために、メモリ120に転送されうる。
動作210〜240は逐次の計算タスクのために適宜反復されうる。上記のように、制御プロセッサ140は動作210および220を実行および/または調整することができ、低レベルプロセッサ150は動作230および240を実行および/または調整することができる。動作210〜240の反復は、指標データがメモリ120によって受け取られるのがいつかに依存しうる。たとえば、指標データの次のデータ片(たとえば、次のタスクまたはタスクのセットを示すもの)が低レベルプロセッサ150がデータを処理し終わるまで受け取られないとすると、制御プロセッサ140は動作210を動作240のあとまで反復しないこともありうる。このことは図2で実線矢印によって示されている。
しかし、指標データの次のデータ片が低レベルプロセッサ150がデータを処理し終わるより前に受け取られるとすると、制御プロセッサ140は動作210を動作220のあとに反復しうる。このことは図2で破線矢印によって示されている。そのような筋書きでは、新たな指標データが利用可能であれば、制御プロセッサ140は低レベルプロセッサ150のいくつかへの命令のロードを終わらせ、低レベルプロセッサ150が動作230および240を実行している間に動作210および220においてタスクを判別して命令をロードしうる。ここでの記載と整合する、制御プロセッサ140と低レベルプロセッサ150との間のその他の処理の流れも可能である。
システム100およびプロセス200の理解を助ける具体的な例をこれから呈示する。以下に述べるようにシステム100およびプロセス200はビデオ情報をデコードするのになじみやすいが、特許請求される発明はそれに限定されるべきではない。さらに、システム100およびプロセス200は、ビデオ・デコードだろうとその他の種類だろうと以下で議論するよりもずっと複雑なアルゴリズムにもなじみやすい。
図3は、例としてのビデオ処理アルゴリズム300を示している。アルゴリズム300は、ビデオ情報のフレームをデコードするための、当該フレームがイントラコードされた(I)画像か予測された(P)画像か双方向予測された(B)画像かに依存し、かつそのI、PまたはB画像のビデオ情報がインターレースされているか順次走査されているかに依存して、機能A〜Gのうちの一つまたは複数を実行しうる。このフレーム種別(たとえばBフレーム)およびビデオモード(たとえばインターレース)の情報は指標データの一例でありうる。それは、当該フレームのビデオデータの残りに対してどのような処理タスクが実行されるべきかを指示するものだからである。
例示のため、インターレースされたBフレームの受信を想定すると、アルゴリズム300はそのようなビデオ情報のフレームをデコードするために機能DおよびGが実行されるべきであると判定する。図3における矢印は、どの機能を実行すべきかの判定を行うためにとるべき論理的なステップを図解している。機能DおよびGは、ビデオデータのインターレースされたBフレームをデコードするのに必要な相異なる計算タスクを表しうる。もちろん、そのようなビデオ情報のフレームをデコードするために必要とされるタスクが2つより多く、あるいは少なくてもよい。例示した2つというのは純粋に例示および説明の目的のためである。
図4は、システム100がアルゴリズム300をどのように実装しうるかを示しているが、異なる実装を示すためにアルゴリズム400と表示されている。比較のため、ここでも処理されるべきビデオ情報はインターレースされたBフレームであると想定することにする。図のように、制御プロセッサ140はアルゴリズム400のさまざまな論理部分を逐次経て、インターレースされた種別Bのデータフレームについてどのようなタスクが実行されるべきかを判別することができる(動作210)。
制御プロセッサ140は次いでプログラム2を低レベルプロセッサ150の一つまたは複数にロードし(動作220)、それが実行されるようにしうる。プログラム2の複雑さに基づいて、制御プロセッサ140は対応する命令を低レベルプロセッサ150のうちの単一のものまたは低レベルプロセッサ150のうちの複数のものにロードしうる。プログラム2を複数の低レベルプロセッサ150にわたって分散させるかどうかは制御プロセッサ140が決定してもよいし、あるいはそのようなことはあらかじめ決定されていて、たとえばプログラム2がメモリ120に保存される仕方に反映されているのでもよい。ひとたび制御プロセッサ140がプログラム2をロードしたら、制御プロセッサ140は、指標データ(たとえばフレーム種別および/またはモード)がビデオデータの別のフレームについて利用可能であれば、動作210および220を再び実行しうる。
低レベルプロセッサ150は次いで機能DおよびG、プログラム2の第一および第二の部分を実行しうる(動作230/240)。実施形態によっては、一つの低レベルプロセッサ(たとえば150−1)が機能DおよびGの両方を実行しうる。実施形態によっては、ある低レベルプロセッサ(たとえば150−1)が機能Dを実行し、ある低レベルプロセッサ(たとえば150−2)が機能Gを実行するのでもよい。実施形態によっては、二つ以上の低レベルプロセッサ150が協働して機能DおよびGのうちの少なくとも一つ、たとえば機能Gを実行してもよい。ここでの記載と整合するその他の実装も可能である。
図5は、プログラム0〜5がメモリ120内にどのように保存されうるかを示している。構造500は、メモリ120内の連結リスト、配列などのようなデータ構造を含みうる。プログラム0〜5は構造500内のあるアドレスに常駐しうるものであり、そのアドレスは概念的に構造中の行によって図示されている。いくつかの実施形態では、プログラム(たとえばプログラム2)の同じバージョンが、低レベルプロセッサ150のいずれによっても実行される。
構造500内の列を定義する点線はプログラム(たとえばプログラム2)が、低レベルプロセッサ150のうちの異なるものについては異なる扱いがされる可能性を表している。実施形態によっては、たとえば、プログラム(たとえばプログラム2)は、異なる低レベルプロセッサ(たとえば150−1ないし150−3)について、実行すべきいくつかの部分(たとえば図5では3つ;ただし、これは特許請求される発明を限定するべきではない)に分割されうる。たとえば、プログラム2の第一の部分は機能Dを実行する命令などであり、プログラム2の第二の(およびありうる第三の)部分は機能Gを実行する命令などである。実施形態によっては、低レベルプロセッサ150のうちの異なるものは、アドレス指定、データ転送などを支援するためにプログラム(たとえばプログラム2またはその一部分)の微妙に異なったバージョンをロードしうる。
ここに記載される計算集約的なタスクからの高度に複雑なタスクの分割は、システム100が、アルゴリズムの論理的な複雑さを扱える、可能性としてはより低パフォーマンス(たとえばより低電力)制御プロセッサ140と、アルゴリズムの計算負荷を扱うための多数のそれほど複雑でない(たとえばより小型でより低電力)低レベルプロセッサ150とを含むことを許容する。そのような方式を使うことで、システム100は、同じ計算動作(たとえばビデオデコード)のために、そうでない場合に可能であるであろうよりも消費する電力が少なくなりうる。高パフォーマンスおよび低電力使用の両方がシステム100によって得られる。ビデオの圧縮解除においてはたとえば指標データ(たとえばどのような処理タスクがやってくるかについての詳細な情報)が他のデータに先立って伝送されるからである。そのような指標データを使って、制御プロセッサ140はデータプロセッサ130の残りを、ちょうどそのやってくるタスクを実行するよう、オンザフライでカスタマイズする、および/または構成設定しなおすことができるのである。
本発明の原理と整合する一つまたは複数の実施形態の以上の記述は例示および説明を提供するが、網羅的であることも、開示される厳密な形に本発明の範囲を限定することも意図されてはいない。修正および変形が上記の教示に照らして可能であり、あるいは本発明のさまざまな実施形態の実践から獲得されうる。
たとえば、ここで記載される階層的処理方式はビデオデータに限定されない。むしろ、低レベルプロセッサ150またはオンザフライでプログラム可能な別のプロセッサもしくは論理を構成設定するために指標データ(たとえば将来の処理タスクを示すデータ)が利用可能であるいかなるデータにも適用されうる。また、単一の装置として示されたものの、実施形態によってはメモリ120は複数の装置を含みうる。たとえば、処理すべきデータは比較的大きなRAMに保存される一方、低レベルプロセッサ150のための命令はより小さなRAM、専用の読み出し専用メモリ(ROM)または他の何らかの別個の記憶装置に保存されることができる。
さらに、制御プロセッサ140がアルゴリズム的な複雑さを扱い、低レベルプロセッサ150がデータ処理を扱ったが、複雑さと処理ニーズのそのような厳格な分離は常に行われるわけではない。たとえば、制御プロセッサ140がいくつかの事例でデータを処理することもあるし、低レベルプロセッサ150がいくつかの事例で限られた論理的構文解析および/または判断を扱うこともある。しかし、そのようなハイブリッド方式でもやはり、低レベルプロセッサ150が実際的にできるだけ多くのデータを処理し、制御プロセッサ140が実際的にできるだけ多くのアルゴリズム的複雑さを扱うことが望ましいことでありうる。また、ビデオ情報のデコードが一つの実施形態として記載されてきたが、他の実施形態では他の機能も可能である。たとえばシステム100は、メディア情報をエンコードするため、メディア情報をレンダリングするため、物理現象をモデル化するため、またはその他、大量のデータの処理に関わりうる比較的複雑な数値動作を実行するために構成されてもよい。
さらに、図2における諸動作は図示した順序で実装される必要はないし、諸動作のすべては必ずしも実行される必要はない。また、他の動作に依存しないような動作は他の動作と並列的に実行されてもよい。さらに、この図における動作の少なくともいくつかは、機械可読媒体において具現される命令または命令のグループとして具現されてもよい。
本願の記載において使用されるいかなる要素、動作または命令も、明示的にそう述べられていない限り、本発明にとって決定的または本質的であるとして解釈されるべきではない。また、ここでの用法では、単数形の表現は一つまたは複数の項目を含むことが意図されている。一つの項目だけが意図されている場合には、「一つの」の用語または同様の言辞が使用される。特許請求される発明の上記の実施形態には、本発明の精神および原理から実質的に外れることなく変形および修正がなしうる。そのような修正および変形のすべてはこの開示の範囲内においてここに含められ、付属の請求項によって保護されることが意図されている。
例としてのシステムを示す図である。 データに対して作用するプロセスを示すフローチャートである。 例としてのビデオ処理アルゴリズムを示す図である。 図1のシステムが図3のアルゴリズムをどのように具現化しうるかを示す図である。 図4におけるさまざまなプログラムがどのようにメモリに保存されうるかを示す図である。

Claims (23)

  1. 指標データ、該指標データによって記述される他のデータおよび命令を保存するメモリと、
    前記他のデータを前記命令に基づいて処理する複数の低レベルプロセッサと、
    前記指標データから前記他のデータを処理するのに必要とされる命令のサブセットを決定し、前記命令のサブセットが前記複数の低レベルプロセッサのうちの少なくとも一つにロードされるようにする制御プロセッサ、
    とを有することを特徴とするシステム。
  2. 前記制御プロセッサが前記複数の低レベルプロセッサのそれぞれに動作的に接続されていることを特徴とする、請求項1記載のシステム。
  3. 各低レベルプロセッサが第一のサイズの命令メモリを含み、
    制御プロセッサが前記第一のサイズの少なくとも10倍である第二のサイズの命令メモリを含むことを特徴とする、請求項1記載のシステム。
  4. 前記メモリ、前記複数の低レベルプロセッサおよび前記制御プロセッサに接続された、前記指標データ、前記他のデータおよび前記命令の転送を調整する直接メモリアクセス・デバイスをさらに有することを特徴とする、請求項1記載のシステム。
  5. 前記直接メモリアクセス・デバイスおよび前記複数の低レベルプロセッサが共通のチップ内に含まれていることを特徴とする、請求項4記載のシステム。
  6. 前記制御プロセッサが前記共通のチップ内に含まれていることを特徴とする、請求項5記載のシステム。
  7. 前記指標データおよび前記他のデータを前記メモリに提供するデータソースをさらに有することを特徴とする、請求項1記載のシステム。
  8. 前記データソースが:
    チューナーまたは通信回路
    を含むことを特徴とする、請求項7記載のシステム。
  9. 前記複数の低レベルプロセッサによって処理されたデータを受け取るデータ目的地をさらに有することを特徴とする、請求項1記載のシステム。
  10. 前記データ目的地が:
    記憶装置または出力インターフェース、
    を含むことを特徴とする、請求項9記載のシステム。
  11. 第一のデータから第一のプロセッサによって実行されるべきタスクを判別し、
    前記タスクを実行するための命令を第二のプロセッサにロードし、
    前記タスクを実行するための前記命令を第二のデータに対して実行する、
    ことを含むことを特徴とする方法。
  12. 前記第二のデータを前記第二のプロセッサに前記タスクの間に転送する、
    ことをさらに含むことを特徴とする、請求項11記載の方法。
  13. 前記第一のデータが前記第二のデータを記述するものであることを特徴とする、請求項11記載の方法。
  14. 前記第二のデータがビデオ情報を含み、
    前記第一のデータが少なくとも前記ビデオ情報のエンコード種別を含むことを特徴とする、請求項13記載の方法。
  15. 前記第二のデータがビデオ情報を含み、
    前記第一のデータが少なくとも前記ビデオ情報の表示モードを含むことを特徴とする、請求項13記載の方法。
  16. 前記第一のプロセッサによって前記ロードののちに、実行されるべき別のタスクをある第三のデータから判別し、
    前記別のタスクを実行するための別の命令を第三のプロセッサにロードする、
    ことをさらに含むことを特徴とする、請求項11記載の方法。
  17. 前記別の命令を実行するための前記別の命令を、前記第三のデータによって記述される第四のデータに対して実行する、
    ことをさらに含むことを特徴とする、請求項16記載の方法。
  18. 提供されたプログラムに基づいて第一のデータを処理するための複数の第一のプロセッサと、
    前記第一のデータを記述する第二のデータに基づいて前記第一のプロセッサに提供するための適切なプログラムを決定する第二のプロセッサと、
    前記第一のプロセッサおよび前記第二のプロセッサに接続された、前記第一のデータおよび前記適切なプログラムを前記第一のプロセッサに提供し、前記第二のデータを前記第二のプロセッサに提供するメモリアクセス装置、
    とを有することを特徴とする装置。
  19. 前記第一のプロセッサおよび前記メモリアクセス装置が一つのパッケージ内に含められていることを特徴とする、請求項18記載の装置。
  20. 前記第一のプロセッサが少なくとも8個の相異なるプロセッサを含むことを特徴とする、請求項18記載の装置。
  21. 一つの第一のプロセッサが第一の命令メモリを含み、
    前記第二のプロセッサが、前記第一の命令メモリの少なくとも10倍の大きさの第二の命令メモリを含む、
    ことを特徴とする、請求項18記載の装置。
  22. 命令を含んでいる機械アクセス可能媒体であって、該命令は実行されたときに機械をして:
    いくつかの計算タスクのうち、第一のデータに対して実行すべき一つの計算タスクを、前記第一のデータを特徴付ける第二のデータに基づいて判別し、
    前記一つの計算タスクを実行する別の命令をロードし、
    前記一つの計算タスクを実行する前記別の命令を、前記第一のデータに対して実行する、
    ことをせしめることを特徴とする機械アクセス可能媒体。
  23. さらなる命令を含んでいる請求項22記載の機械アクセス可能媒体であって、該さらなる命令は実行されたときに機械をして:
    前記一つの計算タスクを実行する前記別の命令を、前記機械内の複数の相異なるプロセッサの間に分散させる、
    ことをせしめることを特徴とする機械アクセス可能媒体。
JP2007527262A 2004-05-20 2005-04-29 ビデオ処理のための階層的プロセッサ構造 Expired - Fee Related JP4964774B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/850,095 2004-05-20
US10/850,095 US20050262311A1 (en) 2004-05-20 2004-05-20 Hierarchical processor architecture for video processing
PCT/US2005/015130 WO2005116853A1 (en) 2004-05-20 2005-04-29 Hierarchical processor architecture for video processing

Publications (2)

Publication Number Publication Date
JP2007538334A true JP2007538334A (ja) 2007-12-27
JP4964774B2 JP4964774B2 (ja) 2012-07-04

Family

ID=34967606

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007527262A Expired - Fee Related JP4964774B2 (ja) 2004-05-20 2005-04-29 ビデオ処理のための階層的プロセッサ構造

Country Status (8)

Country Link
US (1) US20050262311A1 (ja)
EP (1) EP1747513B1 (ja)
JP (1) JP4964774B2 (ja)
CN (1) CN100555322C (ja)
AT (1) ATE463011T1 (ja)
DE (1) DE602005020271D1 (ja)
TW (1) TWI308727B (ja)
WO (1) WO2005116853A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282429A (ja) * 2009-06-04 2010-12-16 Canon Inc 画像処理装置及びその制御方法
US20100328690A1 (en) * 2009-06-25 2010-12-30 Canon Kabushiki Kaisha Image processing device and image processing apparatus
US20110001991A1 (en) * 2009-07-01 2011-01-06 Canon Kabushiki Kaisha Image processing device and image processing apparatus
JP2014112396A (ja) * 2014-01-07 2014-06-19 Canon Inc 画像処理装置及びその制御方法
US9635218B2 (en) 2009-07-03 2017-04-25 Canon Kabushiki Kaisha Image processing based on a pixel value in image data

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7965898B2 (en) * 2005-10-28 2011-06-21 Nvidia Corporation Accelerating video decoding using multiple processors
US9880848B2 (en) * 2010-06-11 2018-01-30 Advanced Micro Devices, Inc. Processor support for hardware transactional memory
CN104023202B (zh) * 2014-03-18 2018-04-27 山东大学 高清视频处理系统
JP6575350B2 (ja) * 2015-12-24 2019-09-18 ブラザー工業株式会社 レーザ加工装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07105158A (ja) * 1993-10-05 1995-04-21 Matsushita Electric Ind Co Ltd プログラムローダ
JPH07221996A (ja) * 1994-02-01 1995-08-18 Canon Inc 画像処理方法およびその装置
JPH0844678A (ja) * 1994-07-29 1996-02-16 Canon Inc 画像処理装置及びシステム
EP0766462A2 (en) * 1995-09-29 1997-04-02 Samsung Electronics Co., Ltd. Receiver having analog and digital video modes and receiving method thereof
JPH1028245A (ja) * 1996-05-07 1998-01-27 Matsushita Electric Ind Co Ltd 映像信号処理装置
JPH1091594A (ja) * 1996-09-13 1998-04-10 Hitachi Ltd マルチプロセッサデータ処理装置およびその方法
JP2001312480A (ja) * 2000-05-01 2001-11-09 Nec Corp マルチプロセッサシステム
JP2002032218A (ja) * 2000-07-14 2002-01-31 Rikogaku Shinkokai マイクロプロセッサシステム
EP0806867B1 (en) * 1996-05-07 2006-01-04 Matsushita Electric Industrial Co., Ltd. Video signal processing apparatus

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4243987A (en) * 1978-06-27 1981-01-06 Xerox Corporation Display processor for producing video signals from digitally encoded data to create an alphanumeric display
US5016876A (en) * 1988-10-14 1991-05-21 Williams Electronics Games, Inc. Video display co-processor for use in a video game
US4965793A (en) * 1989-02-03 1990-10-23 Digital Equipment Corporation Method and apparatus for interfacing a system control unit for a multi-processor
US5522083A (en) * 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
US6237029B1 (en) * 1996-02-26 2001-05-22 Argosystems, Inc. Method and apparatus for adaptable digital protocol processing
FI107842B (fi) * 1997-09-23 2001-10-15 Nokia Networks Oy Adaptiivinen prosessorijärjestelmä
US7636125B2 (en) * 2002-10-22 2009-12-22 Broadcom Corporation Filter module for a video decoding system
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07105158A (ja) * 1993-10-05 1995-04-21 Matsushita Electric Ind Co Ltd プログラムローダ
JPH07221996A (ja) * 1994-02-01 1995-08-18 Canon Inc 画像処理方法およびその装置
JPH0844678A (ja) * 1994-07-29 1996-02-16 Canon Inc 画像処理装置及びシステム
EP0766462A2 (en) * 1995-09-29 1997-04-02 Samsung Electronics Co., Ltd. Receiver having analog and digital video modes and receiving method thereof
JPH09130697A (ja) * 1995-09-29 1997-05-16 Samsung Electron Co Ltd アナログとデジタルビデオモードを有する受信器及びその受信方法
JPH1028245A (ja) * 1996-05-07 1998-01-27 Matsushita Electric Ind Co Ltd 映像信号処理装置
EP0806867B1 (en) * 1996-05-07 2006-01-04 Matsushita Electric Industrial Co., Ltd. Video signal processing apparatus
JPH1091594A (ja) * 1996-09-13 1998-04-10 Hitachi Ltd マルチプロセッサデータ処理装置およびその方法
JP2001312480A (ja) * 2000-05-01 2001-11-09 Nec Corp マルチプロセッサシステム
JP2002032218A (ja) * 2000-07-14 2002-01-31 Rikogaku Shinkokai マイクロプロセッサシステム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282429A (ja) * 2009-06-04 2010-12-16 Canon Inc 画像処理装置及びその制御方法
US20100328690A1 (en) * 2009-06-25 2010-12-30 Canon Kabushiki Kaisha Image processing device and image processing apparatus
JP2011028738A (ja) * 2009-06-25 2011-02-10 Canon Inc 画像処理デバイス及び画像処理装置
US9013750B2 (en) 2009-06-25 2015-04-21 Canon Kabushiki Kaisha Image processing for processing image data in correspondence with each pixel of an image
US20110001991A1 (en) * 2009-07-01 2011-01-06 Canon Kabushiki Kaisha Image processing device and image processing apparatus
US8976411B2 (en) 2009-07-01 2015-03-10 Canon Kabushiki Kaisha Image processing in correspondence with each pixel of an image
US9466017B2 (en) 2009-07-01 2016-10-11 Canon Kabushiki Kaisha Image processing device and image processing apparatus which process image data in correspondence with one or more image pixels of an image
US9661182B2 (en) 2009-07-01 2017-05-23 Canon Kabushiki Kaisha Image processing device and image processing apparatus
US9888150B2 (en) 2009-07-01 2018-02-06 Canon Kabushiki Kaisha Image processing apparatus, and image processing device which processes image data in correspondence with one or more pixels of an image
US9635218B2 (en) 2009-07-03 2017-04-25 Canon Kabushiki Kaisha Image processing based on a pixel value in image data
US10063748B2 (en) 2009-07-03 2018-08-28 Canon Kabushiki Kaisha Image processing apparatus having a determination unit that determines an attribute value which specifies processing content of one or more pixels
JP2014112396A (ja) * 2014-01-07 2014-06-19 Canon Inc 画像処理装置及びその制御方法

Also Published As

Publication number Publication date
TW200620152A (en) 2006-06-16
DE602005020271D1 (de) 2010-05-12
US20050262311A1 (en) 2005-11-24
TWI308727B (en) 2009-04-11
CN100555322C (zh) 2009-10-28
WO2005116853A1 (en) 2005-12-08
ATE463011T1 (de) 2010-04-15
EP1747513A1 (en) 2007-01-31
EP1747513B1 (en) 2010-03-31
JP4964774B2 (ja) 2012-07-04
CN1716312A (zh) 2006-01-04

Similar Documents

Publication Publication Date Title
JP4964774B2 (ja) ビデオ処理のための階層的プロセッサ構造
JP7191240B2 (ja) ビデオストリーム復号方法、装置、端末機器およびプログラム
US20090310678A1 (en) Image encoding apparatus, method of controlling the same and computer program
WO2017096823A1 (zh) 视频转码方法和装置系统
US8634470B2 (en) Multimedia decoding method and multimedia decoding apparatus based on multi-core processor
JP2009033640A (ja) 画像復号化装置
JP4865662B2 (ja) エントロピー符号化装置、エントロピー符号化方法およびコンピュータプログラム
US10757430B2 (en) Method of operating decoder using multiple channels to reduce memory usage and method of operating application processor including the decoder
JP2008186345A (ja) データ処理方法及びデータ処理装置
US20100053181A1 (en) Method and device of processing video
US7586426B2 (en) Image coding apparatus and method thereof
US8446955B2 (en) Speculative motion prediction cache
TW201403489A (zh) 移動補償影像處理裝置與影像處理方法
US6072543A (en) Priority order processing circuit and method for an MPEG system
KR102296987B1 (ko) 기계 학습 모델에 기초한 블록 체인을 이용한 hevc 분산형 복호화 방법, 장치 및 시스템
KR100860160B1 (ko) 비디오 처리를 위한 계층 프로세서 아키텍처
JP2007259323A (ja) 画像復号化装置
US20120183234A1 (en) Methods for parallelizing fixed-length bitstream codecs
CN105657540B (zh) 一种适配安卓系统的视频解码方法及其装置
US20080273595A1 (en) Apparatus and related method for processing macroblock units by utilizing buffer devices having different data accessing speeds
CN108551580B (zh) 一种电子设备中视频文件转码方法及电子设备
Pinto et al. Hiveflex-video vsp1: Video signal processing architecture for video coding and post-processing
US8291193B2 (en) Address translation apparatus which is capable of easily performing address translation and processor system
CN101583035B (zh) 一种音视频文件的访问方法、装置及系统
CN101090470A (zh) 信息处理设备和信息处理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111108

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120228

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120328

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees