JP6085405B2 - ディジタルデータ処理のための方法およびシステム - Google Patents

ディジタルデータ処理のための方法およびシステム Download PDF

Info

Publication number
JP6085405B2
JP6085405B2 JP2008545067A JP2008545067A JP6085405B2 JP 6085405 B2 JP6085405 B2 JP 6085405B2 JP 2008545067 A JP2008545067 A JP 2008545067A JP 2008545067 A JP2008545067 A JP 2008545067A JP 6085405 B2 JP6085405 B2 JP 6085405B2
Authority
JP
Japan
Prior art keywords
sub
platform
specific
operations
processing
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.)
Expired - Fee Related
Application number
JP2008545067A
Other languages
English (en)
Other versions
JP2009524854A (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 JP2009524854A publication Critical patent/JP2009524854A/ja
Application granted granted Critical
Publication of JP6085405B2 publication Critical patent/JP6085405B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/456Parallelism detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)

Description

本発明は、特有フォーマット化データを処理プラットフォームに提供することに鑑みて汎用フォーマット化データを処理するための方法およびシステムに関する。コンパイラを使用して、特有フォーマット化データを使用するプラットフォームに適応されたバイナリコードを生成することで、特有フォーマット化データを直接的または間接的に提供することができる。
現在、オブジェクト処理アルゴリズムは一般に、CやアセンブリやVHDL言語など既知の言語で書かれ、次いでバイナリにコンパイルまたは変換された後で、処理操作を実施することになっているプラットフォームによって使用される。
使用されるコンパイラは、言語のタイプに特有のコンパイラである。
最も標準的なコンパイラの1つであるコンパイラCの例では、Cのコードが、例えばPCタイプまたはMACタイプのパーソナルコンピュータによって理解されるように変換される。このコンパイルは、アルゴリズムがコンパイルされる対象であるプラットフォームに依存する。この2つのプラットフォームのプロセッサが同様の特性を有するとすれば、両方のプラットフォームと互換性を持つように処理アルゴリズムを書くことができる。
さらに、Cでコーディングされるアルゴリズム中では、とりわけ、様々な位置のデータへのアクセスを可能にし、スケール変更、メモリ間のデータ交換、およびエッジの管理を可能にするために、プログラマは最初から、オブジェクトのサブオブジェクトへの分解、ループ、基本情報およびサブオブジェクトの処理順序、メモリ中のデータの構成など、プラットフォームに依存する種々のコードセクションを定義しなければならない。
プラットフォームに依存するこれらのコードセクションがプラットフォームおよびアルゴリズムに従ってプログラマによってアプリオリに決定されるとすれば、これらのコードセクションは、アルゴリズム+プラットフォームの各組合せごとに「手動で」最適化しなければならない。さらに、これらのコードセクションは明示的に定義されて、アルゴリズム自体を記述するコードと混合されるので、プラットフォームに依存するこれらのコードセクションをコンパイラが無視して手動で別のプラットフォームに適応させることは非常に難しい。
例えば、小さいローカルメモリを伴う信号処理プロセッサで、データをメインメモリとこのローカルメモリとの間でコピーしなければならない場合、このコピーは手動で追加しなければならず、ループおよびメモリ中のデータの構造を深刻に損なう。別の例として、ベクトル信号プロセッサ、とりわけSIMD(単一命令複数データ)タイプのベクトル信号プロセッサは、プラットフォームに従って種々のサイズのベクトルにグループ化されたデータを処理しなければならず、また、言語Cなどの言語が使用されるときはベクトルをプラットフォームから独立して表現することはできないので、プラットフォームに依存する方式でアセンブラをコーディングしなければならない。
さらに、アルゴリズムが、とりわけ様々な位置のデータへのアクセスに関して修正されるとき、この修正は少なくとも部分的に、プラットフォームに依存する種々のコード部分を損なう。
したがって、アルゴリズム+プラットフォームの各組合せを最適化するのにかなりの時間を費やすことなく、コードのサイズ、メモリのサイズ、および必要とされる命令の数量を最適化するのは非常に難しい。実際、各プラットフォームは、装置(例えばプロセッサの数量およびタイプや、メモリのサイズおよびタイプ)と、使用言語(スカラプロセッサの場合はC、ベクトル信号プロセッサの場合はアセンブリ言語)との両方の点で、それ自体の特性を有する。
この問題を解決するために従来、重畳、乗算、さらには相関表の適用など、物理ブロックに対して様々な処理操作を実施することのできる低レベルライブラリの使用が知られている。これによれば、各プラットフォームにつきこれらのライブラリを1回だけ最適化すればよい。しかし、この方法には、以下のように多くの不都合がある。
−ライブラリのサイズ、したがってコードのサイズがかなり大きい。
−ライブラリ呼出し時間が与えられた場合に、比較的大きいサイズの物理ブロックを使用する必要があり、この結果、かなりのメモリ使用となる。
−基本情報に対する内部ループがライブラリ内に位置する場合、操作のシーケンスを最適化することができず、この結果、性能が制限される。
−物理ブロックはメモリに記憶され、この結果、メモリ使用が集中的になり、メモリから中間データを読み書きするのに多くの時間が費やされる。
−これらのライブラリは、しばしばプロセッサ製造業者によって、限られた数のプラットフォームに対してしか最適化されず、したがってすべてのプラットフォームタイプに利用可能ではない。
したがって、本発明の主題は、速い実行速度、少ないメモリ使用、小さいコードサイズで、複数のプラットフォームに対する自動最適化が可能なデータ処理方法を提案することであり、すべてのオブジェクト処理アルゴリズムは、このタイプのアルゴリズムに適応された言語でコーディングされた多量の異なる基本情報で構成される。本発明はとりわけ、任意のアルゴリズムの最適化された実装を様々なプラットフォームに対して自動的に素早く得ることによって、またできるだけ後でアルゴリズムを修正できるようにすることによって、データ(特に画像)処理用の装置およびソフトウェアの市場リリースを加速することを可能にする。例えば画像取込みデバイスの場合、センサの特性、とりわけ小型化に伴って増大する雑音関連の特性は非常に速く進歩するが、このように遅れて修正することにより、新しいセンサに素早く適応することができる。
本発明は、Q個のプロセッサと少なくとも1つのメモリとを備える所定のプラットフォームに特有フォーマット化データを直接的または間接的に提供することに鑑みて、汎用フォーマット化データを処理する方法に関し、汎用フォーマット化データ中では、第1のデータが、どんなループもない汎用操作のシーケンスを記述し、このプラットフォームは、同じタイプの基本情報で構成されたオブジェクトを特有フォーマット化データに従って処理するようになっており、各基本情報は少なくとも1つの数値で表される。
本方法は、
−汎用操作のシーケンスをプラットフォームに従って特有操作に変換するステップと、
−オブジェクトのトポロジに従って、かつ第1のデータから独立して、処理に必要とされるループのセットを決定するステップと、
−特有操作のシーケンスとこのように決定されたループとを含む特有フォーマット化データを計算し、汎用フォーマット化データに準拠するオブジェクトの処理を直接的または間接的に可能にするステップとを含み、シーケンスは、コードのサイズおよび/またはメモリのサイズおよび/または計算時間の点で、プラットフォームに最適化される。
特有フォーマット化データは、このように決定された特有操作のシーケンスを含む。
従来、コンパイラを使用して、ループと表とを含む操作シーケンスを変換することが知られており、
−変換は、1つの同じループ反復内での、およびあるループ反復から他のループ反復への内の、操作間のリンクを記述したグラフを使用し、特に、表の要素の1つへのアクセスの索引に対する依存を使用する。
−変換は、既存のループを修正する最適化を含む。
−変換は、プラットフォームの特性に適応するために、表の構成を修正するステップ、および/または表を使用する操作を修正するステップを含む。
使用される汎用操作のシーケンス(第1および第2データのタイプ)の特性は、以下のことを可能にする。
−操作、および操作のグラフによるループの依存を除去する。
−使用される汎用操作のシーケンスは、表も、表要素へのアクセスの索引も利用せず、特に、本発明による方法またはシステムは、表の構成を修正するステップ、および/または表を使用する操作を修正するステップを含まない。
したがって本発明は、各操作シーケンスに対するループの特有の最適化、またはグラフの使用を必要とせずに、Q個のプロセッサを100%使用する最適なコードを直接生成することを可能にする。この特性は、特に得難いものである。本発明は、以下によって100%に達することを可能にする。
−第1のデータから独立したループの構成。
−表の形ではないが、例えば後述するような待ち行列の形の、メモリ中のデータの構成。
−後述するような計算ユニットと待ち行列とを含む連鎖の使用。
−例えば、文書”Compiler transformations for high performance computing” ”ACM Computing Surveys,New York,NY US,vol26,no.4,December1994”には、式U=F/STによって与えられるプロセッサ利用率が、明確に100%未満であり(p.351)、100%の率が理想的であることが明記されている。本発明による方法およびシステムは、同じタイプの情報からなるオブジェクトを処理するためのどんなタイプのアルゴリズムであっても、100%に達することを可能にする。
本発明はまた、サブオブジェクトのサイズにかかわらず1度に1つのサブオブジェクトずつデータを処理するように適応されたスクローリングモードに従って基本情報を処理できるようにすることによって、メモリ使用の大幅な削減を可能にし、それにより、画像の場合に、ブロックに対する処理操作の開始前に多量のラインを記憶するのを回避する。
次に、汎用操作のシーケンスを特有操作のシーケンスに変換する例について述べる。この例では、
−オブジェクトは2つの単色水平垂直次元の画像であり、基本情報は1つの単一数値で表される。
−汎用操作のシーケンスは次のとおりである。
○3*1垂直F1フィルタを適用し、続いて1*3水平F2フィルタを適用する。
−特有操作シーケンスは、以下の特有操作シーケンスに変換される。
○入力待ち行列から得られたサブオブジェクトをR1に記憶する。
○F1.C1*R1を計算し、結果をR2に記憶する。
○UP(R1)を実施し、結果をR1に記憶する。
○F1.C2*R1を計算し、結果をR2に記憶する。
○UP(R1)を実施し、結果をR1に記憶する。
○F1.C3*R1を計算し、結果をR2に記憶する。
○F2.C1*R2を計算し、結果をR3に記憶する。
○LEFT(R2)を計算し、結果をR2に記憶する。
○F2.C2*R2を計算し、結果をR3に記憶する。
○LEFT(R2)を計算し、結果をR2に記憶する。
○F2.C3*R2を計算し、結果をR3に記憶する。
−R1、R2、およびR3は、サブオブジェクトに関するN個の基本情報、または、1つの同じサブオブジェクトの処理中に1つの同じ特有操作から得られたNを記憶するのにそれぞれ使用されるレジスタである。
−F1.C1、F1.C2、およびF1.C3は、フィルタF1の係数に対応するパラメータである。
−F2.C1、F2.C2、およびF2.C3は、フィルタF2の係数に対応するパラメータである。
−LEFT(R1)は、以下にさらに述べるように、QueueH待ち行列を含む水平次元に従った連鎖を使用することによって実施することができる。例えば、
○サブオブジェクトが、水平に配置された4ピクセルで構成され、レジスタが左から右にR1.1、R1.2、R1.3、およびR1.4の4データを含む場合、LEFT(R1)は、R1.4をQueueHに書き込み、R1.3をR1.4に書き込み、R1.2をR1.3に書き込み、R1.1をR1.3に書き込むことを意味し、ラインの第1のサブオブジェクトの場合はR1.1は変化せず、そうでない場合は、R1.1は、QueueH中で読み取られたデータを受け取る。
−UP(R2)は、以下にさらに述べるように、QueueV待ち行列を含む垂直次元に従った連鎖を使用することによって実施することができる。
○サブオブジェクトが、水平に配置された4ピクセルで構成され、レジスタが左から右にR1.1、R1.2、R1.3、およびR1.4の4データを含む場合、UP(R1)は、R1.4をQueueVに書き込み、R1.3をR1.4に書き込み、R1.2をR1.3に書き込み、R1.1をR1.3に書き込むことを意味する。画像の第1ラインのオブジェクトの場合はR1.1は変化せず、そうでない場合は、R1.1は、QueueV中で読み取られたデータを受け取る。
この例では、汎用操作のシーケンスを特有操作のシーケンスに変換することは、以下に定義するスクローリングモードから独立している。次いで、スクローリングモード(24)を、プラットフォーム(22)のアーキテクチャに従って、またオブジェクトのトポロジに従って、かつ第1のデータから独立して、このプラットフォーム中の基本情報に対して決定することができ、このスクローリングモードの決定は、
−基本情報をサブオブジェクトにグループ化することであって、各サブオブジェクトはプラットフォームに従って決定される数量Nの基本情報を含み、プラットフォーム中での処理はサブ処理操作を周期的に開始することにあり、サブ処理操作は特有操作のシーケンスをサブオブジェクトの1つに適用することにあることと、
−プラットフォームに従って決定される、サブオブジェクトの形およびオーバーレイと、
−プラットフォームに従って決定される、サブオブジェクトの処理順序との選択および/または計算を含む。
好ましくは、ループのセットを決定することは、各ループの範囲と、ループのセットの埋込みと、オブジェクトに従って決定される反復量とを決定することを意味する。例えば、水平と垂直の2つの次元を有する画像であり、Q=4であり、4つのプロセッサが1つの同じラインからの4つの連続したピクセルを処理する場合、以下のループを決定することができる。
−ラインごとに上から下へ。
−4ピクセルのグループごとに左から右へ。
−4つのプロセッサ上で同時に同じ特有操作を実施することによって、4ピクセルのグループに対して特有操作のシーケンスを実施する。
この例では、反復量は画像のサイズに依存する。しかし、処理操作に必要とされるループのセットは、プラットフォームのアーキテクチャおよびオブジェクトのトポロジに従って、かつ第1のデータから独立して決定されている。例えば、ループは、以下の汎用操作シーケンスのいずれか1つに使用することができる。
−3*1垂直F1フィルタを適用し、続いて1*3水平F2フィルタを適用する。
−定数3を基本情報に加える。
−または他の任意の汎用操作シーケンス。
本発明によれば、ループは、次に挙げるものに限定しないがとりわけ、ある回数にわたって実行されるループ、条件が検証されたならば実行されるループ、条件が検証されるまで実行されるループ、一般に、ループに関する1つまたは複数の出力条件にリンクされた反復実行、とすることができる。
次に、本発明による待ち行列の概念を定義する。
待ち行列は、基本情報、または特有操作からの結果を、送出および/または記憶するのに使用される。
待ち行列は、メモリを備えるかまたは使用することができる。
待ち行列は、FIFO(先入れ先出し)タイプの1つまたは複数のプロセスを使用して実現することができる。
待ち行列は、少なくとも1つの入力および少なくとも1つの出力を備える。
−待ち行列は、任意の手段を介して入力計算ユニットおよび出力計算ユニットに動作可能に接続させることができる。
−待ち行列はまた、任意の手段を介してPR入力計算ユニットおよびPR出力計算ユニットに動作可能に接続させることができ、この場合、待ち行列は、それぞれが入力計算ユニットを出力計算ユニットにリンクするPR待ち行列のように挙動する。
好ましくは、待ち行列は、いくつかのデータフラックスを独立して管理するのに使用することができ、各フラックスは所定の特有操作に関連する。
一実施形態では、待ち行列中で読取りと書込みを同時に行うことが可能である。
好ましくは、待ち行列は、少なくとも1つのメモリユニットを使用して、各フラックスにつき同一数量NFのデータを記憶する。
好ましくは、NFは、サブオブジェクトの相対的な配置およびスクローリングモードに従って決定され、それにより、データを生成するサブオブジェクトの処理と、同じデータを使用するサブオブジェクトの処理との間で、NF−1個のサブオブジェクトが処理される。
好ましくは、計算ユニットと待ち行列とを含む連鎖は、ブート操作の管理を可能にする機構を含む。待ち行列は、定期的に、例えば待ち行列が水平連鎖の一部でありオブジェクトが画像である場合は各ラインの最初に、初期化される。待ち行列がNF個のデータを含まないならば、連鎖中で待ち行列に続くプロセッサは、出力において送出するデータを入力として取る。次に、連鎖中で待ち行列に続くプロセッサは、待ち行列中で最も古いデータを入力において取り、これを待ち行列から除去する。
好ましくは、待ち行列は、待ち行列に入力されたときと同じ順序でデータを出力することを可能にする。
好ましくは、循環的連鎖は一方向である。好ましくは、循環的連鎖は、計算ユニットごとに、入力に1つの単一リンクがあり、出力に1つの単一リンクがあるような連鎖である。
このように、少なくとも1つの待ち行列の使用により、少なくとも1つの他のサブオブジェクトの計算で必要とされる特有操作からの結果を送出することができる。
この記述では、汎用フォーマット化データは、データ処理プラットフォームによってオブジェクトに対して実施されることになる処理操作を、プラットフォーム自体から独立して記述するのに使用されるディジタルデータである。本発明では、処理オブジェクトは、同じタイプの基本情報のセットに対応する。これらのオブジェクトは、例えば画像、ディジタルオーディオ、ビデオ、さらにはシミュレーションデータですらある。
一実施形態では、汎用フォーマット化データは第2のデータを含み、第2のデータは、とりわけ空間的および/または時間的な、オブジェクトの次元の少なくとも1つに従った、相互との関係におけるブロックおよび/またはパラメータの相対位置を参照し、かつ/あるいは、とりわけ空間的および/または時間的な、オブジェクトの次元の少なくとも1つに従った、相互との関係における論理ブロックおよび/またはパラメータの相対スケールを参照する。
一実施形態では、オブジェクトおよびサブオブジェクト、ならびに論理ブロックは、いくつかの次元を有する。
サブオブジェクトおよび論理ブロックの次元は、オブジェクトの次元のすべてまたは一部に対応する。次元は種々のタイプとすることができ、とりわけ以下のタイプである。
−空間的。例えば、距離、角度、または、メッシュ中でのスクローリング。
−時間的。
−周波数。例えば、色、周波数、周波数帯。
−位相。
−ベクトル空間基底に従った分解。例えば、ウェーブレットへの分解、または高バイトおよび低バイトへの分解。
−一般に、任意のトポロジの任意の空間の次元。
以下の非網羅的なリストに、オブジェクトの例をその次元と共に提供する。
−2つの次元を有する静止画。各次元は、距離、とりわけピクセルで測定される距離に対応する。
−2つの次元を有する未処理静止画。各次元は距離に対応し、各ピクセルには色、例えば赤、緑、または青が備わる。
−2つの次元を有する静止カラー画像。各次元は距離に対応し、一方の次元はカラーチャネルを表す周波数、例えば赤/緑/青を表す周波数に対応する。
−3つの次元を有する動画。次元のうちの2つは、距離、とりわけピクセルで測定される距離に対応し、1つは時間に対応する。
−3つの次元を有するレリーフ画像。次元は距離に対応する。
−3つの次元を有するレリーフ画像。次元のうちの2つは距離に対応し、第3の次元は視野角に対応する。
−距離次元およびおそらくチャネル次元を有する医療画像。
−視野角次元を有するホログラム。
−より一般的に、距離および/または角度および/または時間および/または周波数の次元を有する画像。
−時間に対応する次元を有する音声。
−時間およびチャネルに対応する2つの次元を有する音声。
−時間、およびおそらく周波数、およびおそらく空間における位置、または角度に対応する1つまたは複数の次元を有する被変調信号。
−1つまたは複数の次元に従って配置された基本情報の形の、信号変調および復調、測定、データの分析、データベース索引付けまたは検索、コンピュータによる閲覧、グラフィック処理、シミュレーション。
−より一般的に、1つまたは複数の次元を有するオブジェクト。
本発明では、オブジェクトの基本情報は、絶対的な位置および/またはスケールを有することができ、これらはとりわけ、空間および/または時間および/または周波数によるものとすることができるが、同様に、オブジェクトの次元の少なくとも1つ、ならびに他の任意の空間、とりわけウェーブレットで構成された空間に従ったものとすることもできる。
−「オーディオ」オブジェクトに関する基本情報は、強度に対応することができる。この場合、基本情報は、時間における所与の瞬間に対応する絶対位置を有し、複数チャネル音声の場合は、所与のチャネルに対応する絶対位置を有する。
−「画像」オブジェクトに関する基本情報は、ピクセルに対応することができる。この場合、基本情報は、画像中の位置に対応する絶対位置を有し、ビデオ画像の場合は、時間における所与の瞬間に対応する絶対位置を有する。
−「データシミュレーション」オブジェクトに関する基本情報は、ステータスに対応することができる。この場合、基本情報は、メッシングノードと、時間における所与の瞬間とに対応する絶対位置を有する。
−「被変調信号」オブジェクトに関する基本情報は、強度および/または位相に対応することができる。この場合、基本情報は、時間における所与の時点に対応する絶対位置を有し、おそらく、複数のアンテナまたは送信機が使用される場合は、所与の周波数および/または所与の位置に対応する絶対位置を有する。
基本情報は、処理される情報の要素であり、1つまたは複数の数値で表される。この情報は、8ビット符号化、10ビット符号化、さらには16ビット符号付き符号化など、様々なタイプの符号化に従って符号化することができる。例えばオブジェクトが画像である場合、基本情報はこの画像のピクセルとなる。
オブジェクトは、デモザイキング操作前の未処理画像(「生」タイプのもの)とすることができる。この場合、
−一代替形態では、基本情報は、ピクセルの絶対位置に従って例えば赤、緑、または青に対応する数値で表されるピクセルである。
−別の代替形態では、基本情報は、1ピクセル当たり1数値で表されるピクセルのグループ(例えば2*2の緑、赤、および青のピクセルのグループ。緑は「バイエル(Bayer)」に対応する)である。
オブジェクトは可視画像とすることもでき、この場合、基本情報は、例えば3つの数値で表されるピクセルであり、各数値は色、例えば赤、緑、および青を表す。
オブジェクトは画像のシーケンス、とりわけ未処理または可視画像のシーケンスとすることもでき、この場合、基本情報は、画像シーケンスからの画像のピクセルである。したがって、オブジェクトは例えばビデオに対応する。
オブジェクトが画像である場合、画像は、画像取込みデバイスから受け取ることができ、かつ/または画像レンダリングデバイスに向けることができる。
−画像取込みデバイスは、例えば使い捨てカメラ、ディジタルカメラ、レフレックスカメラ(ディジタルまたは非ディジタル)、スキャナ、ファクス、内視鏡、ビデオカメラ、カムコーダ、監視カメラ、玩具、電話機またはパーソナルアシスタントまたはコンピュータに統合されたかリンクされたビデオカメラまたはカメラ、サーマルカメラ、超音波マシン、MRI(磁気共鳴)撮像ユニット、X線撮影ユニットである。
−画像レンダリングデバイスは、例えばスクリーン、プロジェクタ、テレビジョン、仮想現実ゴーグル、またはプリンタである。
−画像取込みおよび画像レンダリングデバイスは、例えばスキャナ/ファクス/プリンタ、小型写真印刷ラボ、ビデオ会議デバイスである。
処理プラットフォームは、適用例に応じて種々の形をとることができる。例えば、オブジェクトが画像である場合に、とりわけ処理プラットフォームが以下のデバイスの1つに統合された場合について列挙する。
−処理済み画像を生成する画像取込みデバイス。例えば、処理プラットフォームを統合したディジタルカメラ。
−処理済み画像を表示または印刷する画像レンダリングデバイス。例えば、処理プラットフォームを備えるビデオプロジェクタまたはプリンタ。
−これらの要素上の欠陥を訂正する混合デバイス。例えば、処理プラットフォームを備えるスキャナ/プリンタ/ファクス。
−処理済み画像を生成するプロ用画像取込みデバイス。例えば、処理プラットフォームを備える内視鏡。
処理プラットフォームは、完全にまたは部分的にサーバ上に移すことができる。
プラットフォーム中でオブジェクトに施されることになる処理は、例えば画像処理、データ圧縮および圧縮解除、オーディオ処理、信号変調および復調、測定、データ分析、データベース索引付けまたは検索、コンピュータによる閲覧、グラフィック処理、シミュレーションなど様々な分野、あるいは多量のデータを使用する任意の分野に介入することのできる、1つまたは複数の汎用操作シーケンスによって記述されるアルゴリズムに対応する。汎用操作は、サイズ、形、時間の概念を伴わない論理ブロックすなわち抽象エンティティに適用される操作である。
汎用操作は、論理ブロックを生成することができる。好ましくは、少なくとも1つの論理ブロックは、処理されるオブジェクトに対応する。
さらに、一実施形態では、本方法は、オブジェクトのトポロジに従って、かつ第1のデータから独立して、プラットフォーム中の基本情報に対するスクローリングモードを決定するステップを含み、このスクローリングモードの決定は、
−サブオブジェクトにおける基本情報のグループであって、各サブオブジェクトはプラットフォームに従って決定される数量Nの基本情報を含み、プラットフォーム中での処理はサブ処理操作を周期的に開始することにあり、サブ処理操作は特有操作のシーケンスをサブオブジェクトに適用することにあることと、
−プラットフォームに従って決定される、サブオブジェクトの形およびオーバーレイと、
−プラットフォームに従って決定される、サブオブジェクトの処理順序との選択および/または計算を含む。
処理に必要なループのセットを決定すること、および/または特有操作シーケンスを計算することにある前述のステップは、このスクローリングモードを反映する。
例えば、水平と垂直の2つの次元を有する画像であり、プラットフォームのアーキテクチャがQ=4である場合、1つの同じラインの4つの連続したピクセルを処理することのできる4つのプロセッサ中で、以下のスクローリングモードを決定することができる。
−基本情報を、1つの同じラインからの4つの連続したピクセルのサブオブジェクトにグループ化する。サブオブジェクトはオーバーレイされない。
−サブオブジェクトを、ラインごとに上から下へ、ライン内で左から右へといった順序で処理する。
−対応するループを決定する。
○ラインごとに上から下へ。
○4ピクセルのグループごとに左から右へ。
○4つのプロセッサ上で同時に同じ特有操作を実施することによって、4ピクセルのグループに対して特有操作のシーケンスを実施する。
この例では、スクローリングモードは、プラットフォームのアーキテクチャおよびオブジェクトのトポロジに従って、かつ第1のデータから独立して決定されている。例えば、スクローリングモードは、以下の汎用操作シーケンスのいずれか1つと適合する。
−3*1垂直F1フィルタを適用し、続いて1*3水平F2フィルタを適用する。
−定数3を基本情報に加える。
−または他の任意の汎用操作シーケンス。
好ましくは、各サブオブジェクトの処理は、Q個のプロセッサにわたって分散され、各プロセッサは、特有操作シーケンスからの少なくとも1つの特有操作IS8を実施する。したがって、すべてのプロセッサは、各サブオブジェクトに使用され、1つの単一プロセッサは、サブオブジェクトのセットに使用される。したがって、サブオブジェクトをプロセッサに割り当てる必要はない。
好ましくは、サブオブジェクトを処理するために特有操作がプロセッサによって実施されるとき、同じ特有操作がまた、他のすべてのサブオブジェクトを処理するために同じプロセッサによって実施される。したがって処理は規則的である。特有操作はプロセッサに割り当てられ、次いで各サブオブジェクトのサブ処理操作のために周期的に実施される。
好ましくは、処理に必要なループのセットは、オブジェクトのトポロジおよびプラットフォームに依存するが、特有操作のシーケンスから独立している。
好ましくは、ループは、特有操作の完全なシーケンスの周りで相互の中に埋め込まれる。このようにして、ループは特有操作のシーケンス全体をカプセル化し、特有操作のシーケンスは、それぞれがループに囲まれたサブシーケンスに分割されることはない。同様にして、完全なオブジェクトを記憶する必要も、特有操作の結果のセットを記憶する必要もなしに、ただ別のサブオブジェクトの処理に必要な結果を一時的に記憶するだけで、サブオブジェクトを同時に処理することによってオブジェクトを処理することができる。したがってメモリ使用が削減される。
好ましくは、サブオブジェクトは、連続した基本情報で構成される。このため、少なくとも1つの待ち行列を含むプロセッサの連鎖を実施することが可能である。
一実施形態では、N個の基本情報のサブオブジェクトを処理するために、シーケンスの各特有操作が総計N回実施され、Q個のプロセッサそれぞれにつきN/Q回実施される。特有操作のシーケンスが条件付き接続を含む場合、各プロセッサは、これらの条件付き接続を反映するシーケンスの部分を実施する。
一実施形態では、サブオブジェクトは、少なくとも1つの次元に従ってオーバーレイされない。したがって、あるサブオブジェクトの処理中に生成された少なくとも1つの特有操作結果が、別のサブオブジェクトの処理中に使用される。
好ましくは、サブオブジェクトは、どんな次元に従ってもオーバーレイされない。したがって、各プロセッサは、計算を繰り返さずに100%使用することができる。
好ましくは、特有操作のシーケンスは、シーケンスのうちの少なくとも1つの特有操作kが、そのN回の適用中に少なくとも1回、別のサブオブジェクトの処理に使用される結果を生成するようなシーケンスである。
好ましくは、サブオブジェクトの同じ1つの次元に従ったいくつかの循環的連鎖がある場合(とりわけプロセッサがグリッドに従って配置されているとき)、待ち行列は、同じ次元に従ったすべての循環的連鎖間で共有される。好ましくは、サブオブジェクトの各次元につきちょうど1つの待ち行列があり、各待ち行列は、同じ次元に従ったすべての循環的連鎖間で共有される。したがって、プロセッサ間の通信は特に単純である。したがって、メモリの構成は特に単純である。
本発明によれば、サブ処理操作を周期的に開始することは、必ずしも正確に定期的な間隔で行うことを意味せず、計算に必要とされるデータの同期およびメモリへのアクセスは、周期を変動させやすい。
一実施形態では、NはQの倍数ではない。この実施形態の一代替形態では、Qは、汎用操作のシーケンスを変換することによって得られるシーケンスの特有操作の数量に等しい。
一実施形態では、NはQの倍数である。これにより処理は規則的になる。好ましくは、N=Qである。これにより、一時的な結果を記憶するのに必要とされるメモリの量が削減される。
一実施形態では、Q=1およびN=4である。これにより、1つの同じ特有操作を複数回適用するのに、同じパラメータ値を再使用することができる。
一実施形態では、Q>1およびN=Qである。これにより、ベクトル信号プロセッサのQ個の計算ユニットを100%使用することができる。
一実施形態では、Q>1であり、NはQの倍数である。これにより、ベクトル信号プロセッサのQ個の計算ユニットを100%使用することができ、サブオブジェクトの処理中に実施され別のサブオブジェクトの処理に使用される特有操作からの結果の数量を削減することができる。
データが記憶されるメモリスロットは、例えば、このデータが再使用されることになる時に依存する。したがって、データは、レジスタ、高速アクセスメモリ、さらには低速メモリにすら記憶することができる。
一実施形態では、スクローリングモードの決定は、特有操作のシーケンスのうち、どの特有操作(1つまたは複数)が各プロセッサによって実施されるかを決定するステップを含み、各操作は各サブオブジェクトに少なくともN回適用され、各特有操作は、そのN回の適用中に、それぞれ少なくとも1回、サブオブジェクトの基本情報を直接的および/または間接的に適用して、ちょうどN個の結果を生成する。さらに、本方法は、このように決定された情報を特有フォーマット化データに加えるステップを含む。
一実施形態では、各プロセッサは、特有操作のシーケンスのすべての操作を実施する。
サブ処理操作は周期的に開始されるが、好ましくは、所与のプロセッサによって実施される特有操作は、各周期で同じである。
一実施形態では、スクローリングモードの決定は、周期の相対時間ごとに、特有操作のシーケンスからどの特有操作(1つまたは複数)が各プロセッサによって実施されるかを決定するステップを含み、各操作は各サブオブジェクトに少なくともN回適用され、各特有操作は、そのN回の適用中に、それぞれ少なくとも1回、サブオブジェクトの基本情報を直接的および/または間接的に適用して、ちょうどN個の結果を生成する。さらに、本方法は、このように決定された情報を特有フォーマット化データに加えるステップを含む。一実施形態では、すべてのプロセッサが、同じ特有操作を同時に実施する。別の実施形態では、すべてのプロセッサが、同じ特有操作を連続して実施し、これは再帰型フィルタの実施を可能にする。
別の実施形態では、特有操作のシーケンスは、シーケンスとは別個の少なくとも2つの特有操作がそれぞれ、そのN回の適用中に少なくとも1回、別のサブオブジェクトの処理に使用される結果を生成するようなシーケンスである。
本方法はまた、特有操作および決定されたスクローリング方法に従って、特有フォーマット化データを計算するステップを含む。
2つの論理ブロックの相対スケールおよび相対位置の概念は、限定しないがとりわけ以下に挙げることを可能にする。
−いくつかの論理ブロックの結合、および/または、
−スケールの変更、
−および/または、近傍に対するフィルタの生成、
−および/または、表現の変更。
本発明では、論理ブロックは、汎用操作に従ったいくつかのタイプのものである。例えば、オブジェクトが画像である場合、
−少なくとも1つの論理ブロックは「未処理」タイプであり、かつ/または、
−少なくとも1つの論理ブロックは赤タイプであり、かつ/または、
−少なくとも1つの論理ブロックは緑タイプであり、かつ/または、
−少なくとも1つの論理ブロックは青タイプであり、かつ/または、
−少なくとも1つの論理ブロックは8ビットデータで表すことができ、かつ/または、
−少なくとも1つの論理ブロックは16ビットデータで表すことができ、かつ/または、
−少なくとも1つの論理ブロックはnビット、例えば10や12ビットのデータで表すことができる。
一実施形態では、少なくとも1つの論理ブロックは、複数スケールデータ、例えばスケール1、1/2、1/4、および1/8のデータを含む。これにより、汎用操作をいくつかのスケールで実施して、その後、結果を結合することが可能になる。
アルゴリズムは、例えば、オブジェクトが画像である場合、限定しないが以下に挙げるものに対応することができる。
−自動ホワイトバランスに関する、とりわけ統計ベースの計算、ならびに/あるいは、
−自動露光に関する、とりわけ統計ベースの計算、ならびに/あるいは、
−自動フォーカスに関する、とりわけ統計ベースの計算、ならびに/あるいは、
−自動コントラスト改善に関する、とりわけ統計ベースの計算、ならびに/あるいは、
−未処理画像から可視画像への変換(「イメージパイプ」または「画像信号処理(ISP)」、ならびに/あるいは、
−光学障害の補正、ならびに/あるいは、
−被写界深度の改善、ならびに/あるいは、
−特許出願PCT/FR2006/050022「Method for creating an image capturing and/or rendering device,and device obtained by this method」および特許出願PCT/FR2006/050197「Method for commanding an action,notably a modification of sharpness,using a digital colour image」に記載されている処理操作、ならびに/あるいは、
−センサ障害の補正、ならびに/あるいは、
−イメージャ障害の補正、ならびに/あるいは、
−処理操作、とりわけ鮮鋭度の改善、ならびに/あるいは、
−処理操作、とりわけ色表現の改善、ならびに/あるいは、
−処理操作、とりわけコントラスト表現の改善、ならびに/あるいは、
−処理操作、とりわけディテール表現の改善、ならびに/あるいは、
−雑音低減、ならびに/あるいは
−測定、ならびに/あるいは、
−圧縮、ならびに/あるいは、
−圧縮解除、ならびに/あるいは、
−補間または拡大(ズーム)、ならびに/あるいは、
−走査、ならびに/あるいは、
−特殊効果。
処理されるオブジェクトは一般に、処理中に、空間と時間の両方でまたはオブジェクトの他の次元で、サブオブジェクト、すなわち所定のサイズおよび形を有する基本情報のグループに分解される。
サブオブジェクトは、形およびサイズを有する基本情報のセットであり、この形およびサイズは、場合に応じて、プラットフォームの特性(とりわけメモリのサイズおよびタイプに関して、ならびに、ベクトル信号プロセッサの場合にはベクトルのサイズに関して)に依存するが、処理されるオブジェクトの特性にも依存する。
オーバーレイを有さないサブオブジェクトへの分解の種々の可能なタイプを、図1a〜1dによって示す。これらの図では、1つの同じ画像を、ライン(図1aのライン90、91、92、93)、列(図1bの列94、95、96、97)、他の任意の形のサブオブジェクト(図1cの形70、71、72、73)に、または矩形(図1dの形60、61、62、63、64、65、66、67)にすら分割できることが示されている。
サブオブジェクトがオーバーレイを有さない場合、例えばフィルタの計算中に、1つ前の別のサブオブジェクトに関する基本情報にアクセスして、エッジを失わずにサブオブジェクトの基本情報を処理する必要がある。
例えばある次元に従って必要とされるオーバーレイを決定するために、サブオブジェクトへの分解はまた、第2のデータ、とりわけ総合的な相対変位データに依存することもできる。
さらに、一代替形態では、アルゴリズムの実行中に基本情報が失われないように汎用操作のいくつかが非ヌルの変位を有するとき、画像は、少なくとも1つの次元に従って非ヌルのオーバーレイを有するサブオブジェクトに分解される。
この構成を、図1eおよび1fで示す。図1eには、操作のシーケンスが各エッジで1ピクセルを失う場合の6×6基本情報を含むサブオブジェクトを示し、図1fには、100個の基本情報を含むオブジェクトを示す。
この図では、サブオブジェクトが4つの矩形80、82、83、および84であり、それぞれが36個の基本情報を含むのが示されている。矩形80は、画像の左上に位置する36個の基本情報で構成され、矩形82は、画像の右上に位置する36個の基本情報で構成される。したがって、8つの基本情報86が、サブオブジェクト80と82の両方に共通である。
さらに、8つの基本情報85が、2つのサブオブジェクト80と83とに共通であり、8つの基本情報88が、2つのサブオブジェクト82と84とに共通であり、8つの基本情報89が、2つのサブオブジェクト83と84とに共通である。最後に、4つの基本情報87が、4つのサブオブジェクト80と82と83と84とに共通である。
オブジェクトが画像である場合、一実施形態では、画像は、並置された矩形サブオブジェクトに分解され、これらのサブオブジェクトは、例えば左から右へ、次いで上から下へ処理されるようになっている。
プラットフォームに応じて、サブオブジェクトは、限定しないが以下に挙げる方式のうちの1つに従って選択および記憶される。
−小さい高速アクセスメモリおよび大きい低速メモリを伴う信号処理プロセッサの場合、サブオブジェクトのサイズは、低速メモリにアクセスせずにサブオブジェクトを処理することができるように選択される。例えば、32×32ピクセルの正方形に対応するサブオブジェクトを採用することが可能となり、現在のサブオブジェクトに関する計算中に、かつ、次のサブオブジェクトに関する計算に必要とされるデータが低速メモリから高速アクセスメモリに転送される間に、前のサブオブジェクトに対する計算の結果が低速メモリに転送される。
−小さいキャッシュメモリおよび大きい低速メモリを伴うスカラプロセッサの場合、サブオブジェクトのサイズは、キャッシュメモリをできるだけ使用してサブオブジェクトの処理を実施することができるように選択される。例えば、32×32ピクセルの正方形に対応するサブオブジェクト、あるいは1ピクセルのサブオブジェクト、あるいは、とりわけ「生」タイプの未処理画像の場合は4ピクセル(2*2)またはN1*2ピクセルのサブオブジェクトを採用することが可能となる。
−ベクトル信号プロセッサの場合、サブオブジェクトのサイズは、プラットフォームが処理および記憶することのできるベクトルのサイズと同数またはその倍数として選択され、例えば、64個の水平ピクセルに対応するサブオブジェクトを採用することができる。
オブジェクトが画像とは異なるタイプである場合でも、同様にしてサブオブジェクトへの分解をプラットフォームに適応させることができる。
Cなどの言語では、サブオブジェクトへのこの分解および対応するループのコーディングは、プラットフォームに従って明示的でなければならず、プラットフォームごとに手動で実施しなければならない。コーディングされたループからサブオブジェクトを明示的に抽出しようと努めるベクトル信号コンパイラが存在するが、これらのコンパイラは、アルゴリズム概念を自動的にコーディングする前に抽出しなければならず、これは非常に難しいので、これらのコンパイラの効率は限られている。したがって本発明は、どんなプラットフォームへの適応でも、自動化および効率向上できるようにする。
以下の表に、本発明と既知の言語との主な違いを要約する。
Figure 0006085405
サブオブジェクトへのこの分解が実施されると、一実施形態では、特有操作をプロセッサに割り当てることができる。各時間で、特有操作がどのプロセッサによっても実施されなくてよく、あるいは1つまたは複数のプロセッサによって実施されてよい。この選択はとりわけ、プラットフォームのアーキテクチャに、すなわちプロセッサのタイプおよび種々のプロセッサの構成に依存する。また、このアーキテクチャには、データの移行、すなわち、基本情報および/または特有操作からの結果があるプロセッサから他のプロセッサに移行することも依存する。この場合、2つのサブ処理操作の2つの連続した開始の間の時間をTと呼ぶとすると、時点t+k*Tで(tは任意の時点、kは任意の整数)、プラットフォームは、少なくとも1つのサブオブジェクトiに対して時間tで実施したのと同じ操作を、少なくとも1つのサブオブジェクトjに対して実施する。これらの特有操作は、それぞれのサブオブジェクト(1つまたは複数)において同じ相対位置を有する基本情報および/または特有操作からの結果に適用される。このことは、すべてのサブ処理操作が同一であることを意味し、これにより比較的小さいサイズのコードが生成される。というのは、1つのサブ処理操作のみを明示的に書き込むだけで済み、このサブ処理操作が複数回にわたって適用されるからである。Tは、2つのサブ処理操作の2つの連続した開始の間の期間だが、この値は、必ずしもサブ処理操作の完全な実行に必要とされる時間と等しいとは限らない。実際、サブ処理操作は、前のサブ処理操作が完了する前に開始することができ、これによって例えば時間を節約することができる。
この場合を図2によって示すが、図2では、サブ処理操作ST2が開始した時点で、サブ処理操作ST1が完了していないことがわかる。さらに、サブ処理操作ST3が開始されたとき、サブ処理操作ST2はまだ実行されている。
一実施形態では、プロセッサへの特有操作の割当て、および/または各特有操作が実施される時間の選択は、特有フォーマット化データを使用するプラットフォームのコンパイラによって決定される。
アルゴリズムを最大限に最適化するために、処理操作ができるだけ規則的に実施されるようにすることが有用である可能性がある。こうするために、本発明の一実施形態では、本方法は、各サブオブジェクトに適用される特有操作の数量がプロセッサの数量Qの倍数でない場合、および/または、処理されるオブジェクトに関する基本情報の数量がNの倍数でない場合に、効果なしの特有操作および/またはヌル基本情報を加え、それにより特有操作の数量がQの倍数になり、基本情報の数量がNの倍数になるようにするステップを含む。
本発明によれば、ヌル基本情報は、任意の内容の使用されない基本情報、および/または他の基本情報の複製によって得られる基本情報、および/または計算によって得られる基本情報を意味する。
一実施形態では、汎用操作のシーケンスは、論理ブロックと呼ばれる少なくとも1つの基本情報セットに適用され、汎用フォーマット化データはまた、相互との関係における論理ブロックの相対位置および/または相対スケール(とりわけ空間的または時間的)を参照する、少なくとも2つの論理ブロックを使用する汎用操作に関する第2のデータも含み、各特有操作が適用されなければならない基本情報および/または特有操作からの結果は第2のデータに依存し、相互との関係における論理ブロックの少なくとも1つの相対位置がヌルでない場合は、少なくとも1つの特有操作は別のサブオブジェクトの少なくとも1つの基本情報を直接的または間接的に使用する。この場合、第2のデータを使用して、任意の2つの論理ブロック間の位置および相対スケールを計算することができる。対応する各物理ブロックのサイズ、ならびにそのスケール、および物理ブロックの各要素の絶対位置は、これから演繹することができる。
本発明の一実施形態では、汎用操作は、オブジェクトの次元の1つに従った絶対位置で構成される論理ブロックを生成する少なくとも1つの汎用位置操作、ならびに、第3のブロックに従ったまたはパラメータに従った変位および/またはスケール変更によって第1のブロックから第2のブロックを生成する汎用インダイレクション操作を含む。
別の実施形態では、汎用操作は、論理ブロックおよび/またはパラメータの加算、論理ブロックおよび/またはパラメータの減算、論理ブロック間の差の絶対値の計算、論理ブロックおよび/またはパラメータの乗算、少なくとも2つの論理ブロックおよび/またはパラメータのうちの最大値、少なくとも2つの論理ブロックおよび/またはパラメータのうちの最小値、論理ブロックのグループ化およびグループ化解除、相関表に対応するパラメータを論理ブロックに適用することによる論理ブロックの計算、少なくとも2つの論理ブロックおよび/またはパラメータからの、論理ブロックの条件付き選択(この選択は、a>bならばcが選択され、そうでなければdが選択されるように行われる。a、b、c、およびdは、論理ブロックおよび/またはパラメータである)、論理ブロックに関する棒グラフ、パラメータおよび/または論理ブロックに従った、論理ブロックのスケール変更、パラメータおよび/または論理ブロックに従った、論理ブロックの相対変位、少なくとも1つの座標を含むブロックを生成する操作、を含むグループに含まれる少なくとも1つの基本汎用操作を含む。
加算など、論理ブロックおよびパラメータを使用する汎用操作は、プラットフォーム中での操作に変換することができ、例えば、汎用操作が加算に関するものであるときは、この汎用操作は、論理ブロックに対応する処理される物理ブロックの各要素または基本情報を、処理される要素または基本情報の絶対位置に対応するパラメータの値に加算することに対応する。
これらの操作は、まさにその性質により、画像処理では比較的標準的な操作だが、他の種類のオブジェクトの処理でもそうである。しかし、これらの操作は、第2のデータと共に論理ブロックに適用されるとき、提起されている問題への解決法を提供する。これらの操作は、データ処理アルゴリズム中で実施することのできるすべての操作を形成するための基礎としての働きをする。
したがって、一実施形態では、汎用操作は、それら自体も使用される基本汎用操作のグループに対応する、複合的な汎用操作を含む。これらのグループはとりわけ、少なくとも3つの論理ブロックおよび/またはパラメータの中央値の計算(最小値および最大値の計算からなる汎用操作のグループに対応する)、論理ブロックおよび/またはパラメータの乗算/累算、論理ブロックとパラメータとの重畳(いくつかの相対位置による乗算および加算からなる汎用操作のグループに対応する)、最大値および最小値と組み合わせた加算、勾配の計算(2つの相対位置の差の絶対値に対応する)、ベクトルからなるパラメータといくつかの論理ブロックとのスカラ積による論理ブロックの生成、補間によるスケール変更の計算(いくつかの相対位置によるスケール変更と乗算および加算とからなる汎用操作のグループに対応する)、論理ブロックの結合(いくつかの相対位置によるスケール変更からなる汎用操作のグループに対応する)を含む。
操作のいくつかは、複数の論理ブロックを使用する。この場合、相互との関係で実現される論理ブロックの位置に関して、第2のデータが提供されることはすでに示した。
とりわけ空間的および/または時間的な、相対位置および相対スケールは、オブジェクトのタイプに応じて様々な概念に対応することができる。これらは、タイプにかかわらず任意の2つのブロック間で適用される(前述のような画像の場合、論理ブロックはとりわけ、未処理、赤、緑、8ビットなどとすることができる)。
オブジェクトが正方形ピクセルを含む静止画である場合、絶対または相対位置は、一実施形態では、2つの値(垂直および水平)に対応することができ、絶対または相対スケールは、2つの値(垂直および水平)に対応することができる。オブジェクトの最上ラインのピクセルは、絶対位置として(0;0)(0;1)(0;2)...を有することができ、n番目のラインのピクセルは、絶対位置として(n;0)(n;1)(n;2)を有することができる。この場合、相対位置は、次のようにしてコーディングすることができる。すなわち、(−1;0)は上を示し、(0;1)は右を示し、(2;−2)は2ピクセル下および2ピクセル左を示す。この場合、(0.5;0.5)の相対スケールは、各方向への半分の解像度に対応する。
より一般的には、相対変位と相対スケールの組合せは、次のようにして2つの関数fおよびgを使用してコーディングすることができる。すなわち、絶対位置の各ピクセルにつき(f(x;y);g(x;y))である。例えば最も近いピクセルを取るためには、丸め規則が必要であることに留意されたい。したがって、
−上の相対位置は、f(x;y)=−1およびg(x;y)=0でコーディングされる。
−相対スケール0.7は、f(x;y)=0.7*(x−x0)およびg(x;y)=0.7*(y−y0)でコーディングされる。x0およびy0は、絶対不変位置に対応する。
−歪み補正は、歪みフィールドに対応するfおよびgでコーディングされる。
−YUV4:2:2フォーマット変更、すなわち、別々のY、U、V輝度およびクロミナンス情報を使用するYYUVは、Y1 Y2 Y3 Y4...を使用してY1 Y2 xx xx Y3 Y4 xx xx...を得るために、次の関数を使用することができる。すなわち、xが偶数ならf(x;y)=(x−x0)*0.5、x−x0が奇数なら(x+1−x0)*0.5を使用することができ、f(y)=y−y0である。x0およびy0は、絶対位置に関するパラメータに対応する。
以下の非網羅的なリストに、様々な異なるタイプのオブジェクトによる実施形態の他の例を提供する。
−オブジェクトが、ラインに沿って配置された六角形のピクセルを含む静止画であって、2つの連続したラインが半ピクセル分ずれている場合、絶対または相対位置および絶対または相対スケールは、それぞれ2つの値(垂直および水平)に対応することができる。オブジェクトの最上ラインのピクセルは、絶対位置として(0;0)(0;1)(0;2)...を有することができ、n番目のラインのピクセルは、絶対位置として、ラインが奇数ラインならば(n;0.5)(n;1.5)(n;2.5)...を有することができ、ラインが偶数ラインならば(n;0)(n;1)(n;2)...を有することができる。相対位置は、2つの値(垂直および水平)に対応することができ、例えば、(−0.5;0.5)は右上を示し、(0,1)は右を示し、(−0.5;1.5)は右上のピクセルの右に位置するピクセルを示す。この場合、相対スケール(0.5;0.5)は、各方向への半分の解像度に対応する。また、相対変位と相対スケールの組合せは、2つの関数fおよびgを次のようにして使用してコーディングすることができる。すなわち、絶対位置x,yの各ピクセルにつき(f(x;y);g(x;y))である。例えば最も近いピクセルを取るためには、丸め規則が必要であることに留意されたい。
。オブジェクトが、正方形のピクセルを含む動画である場合、絶対または相対位置は3つの値(垂直、水平、および時間)に対応することができ、例えば、(−1;0;0)は、同じ画像中の上に位置するピクセルを示し、(0;0;−1)は、前の画像中の同じ位置のピクセルを示し、(2;−2;−1)は、前の画像中の2ピクセル下および2ピクセル左に位置するピクセルを示す。また、相対変位と相対スケールの組合せは、3つの関数f、g、hを次のようにして使用してコーディングすることができる。すなわち、時間tにおける絶対位置x,yの各ピクセルにつき(f(x;y;t);g(x;y;t);h(x;y;t))である。例えば最も近いピクセルを取るためには、丸め規則が必要であることに留意されたい。
−オブジェクトが単一チャネルの音声である場合、絶対または相対位置は1つの値(時間)に対応することができる。例えば、(−1)は前の時間を示し、(2)は2つの時間後を示す。この場合、関数f(t)が、変位および相対スケールのコーディングを可能にする。最も近い時間を取るためには、丸め規則が使用される。
−オブジェクトが複数チャネル音声である場合、絶対または相対位置は2つの値(時間、チャネル)に対応することができる。例えば、(−1,0)は、同じチャネルでの前の時間を示し、(2,1)は、後続のチャネルでの2つの時間後を示し、このチャネルは例えば循環的な方式で空間配置される。また、相対変位と相対スケールの組合せは、2つの関数f、gを次のようにして使用してコーディングすることができる。すなわち、チャネルcで時間tに位置する各オーディオサンプルにつき(f(t;c);g(t;c))である。例えば最も近い時間およびチャネルを取るためには、丸め規則が必要であることに留意されたい。
−オブジェクトがシミュレーションメッシュである場合、絶対または相対位置はn個の値に対応することができ、各値は、メッシングのトポロジに従った空間または時間次元に対応する。また、相対変位と相対スケールの組合せは、n個の関数を使用してコーディングすることができる。例えば最も近いノードおよび時間を取るためには、丸め規則が必要であることに留意されたい。
−オブジェクトが被変調信号である場合、絶対または相対位置はn個の値に対応することができ、各値は、時間と、妥当な場合に周波数チャネル(複数の周波数上での送信または受信)と、妥当な場合に空間次元(空間的に配置された複数の送信機または受信機)とに対応する。また、相対変位と相対スケールの組合せはn個の関数を使用してコーディングすることができ、丸め規則を選択しなければならない。
−オブジェクトが測定値のセットである場合、絶対または相対位置はn個の値に対応することができ、各値はオブジェクトの次元の1つに対応し、これらの次元は、場合に応じて、時間、空間、周波数、位相、または他のタイプであることがある。また、相対変位と相対スケールの組合せはn個の関数を使用してコーディングすることができ、丸め規則を選択しなければならない。
−オブジェクトが次元nのオブジェクトである一般的な場合、絶対または相対位置はn個の値に対応することができ、各値はオブジェクトの次元の1つに対応し、これらの次元は、場合に応じて、時間、空間、周波数、位相、または他のタイプであることがある。また、相対変位と相対スケールの組合せはn個の関数を使用してコーディングすることができ、丸め規則を選択しなければならない。
ある種の特有操作は、後で別のサブ処理操作に使用される可能性の高い結果を生成する。このため、これらの結果を決定し、共にグループ化して送出することが有用である。
したがって、一実施形態では、本方法は、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の一部を、第2のデータに従って決定するステップを含む。
別の実施形態では、本方法はまた、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果を、第2のデータおよび/またはスクローリングモードに従ってメモリ中に共にグループ化するステップを含む。
別の実施形態では、特有操作は、少なくとも1つの循環的連鎖に従って連鎖された計算ユニットによって実施され、本方法はまた、各特有操作につき、この特有操作の結果を循環的連鎖に従って送出すべきかどうかを第2のデータに従って判定するステップを含む。本方法はまた、妥当な場合に、どの循環的連鎖を使用してこの特有操作の結果を送出するかを、第2のデータおよびスクローリングモードに従って決定するステップを含む。
これらの異なる実施形態は、相互から独立して、または組み合わせて適用することができる。
好ましくは、第2のデータに関する相対変位および/または相対スケール情報を使用して、所与の汎用操作についての変位および/またはスケール変更がある際の次元(1つまたは複数)が決定される。したがって、汎用操作のシーケンスから変換された特有操作シーケンスからの各特有操作に適用される循環的連鎖(1つまたは複数)を決定することができる。好ましくは、この循環的連鎖は、少なくとも1つの待ち行列も含む。
いくつかの操作がヌル変位を適用するとき、各特有操作からの結果をメモリに書き込むこと、およびこれらを後続の操作のために再度読み取ることは無用であり、これらの記憶操作および再読取り操作は時間の無駄となり、処理操作にとって特に利益はない。したがって、一実施形態では、特有フォーマット化データは、特有操作を共にグループ化することに関する情報を含み、このグループは、別のサブ処理操作にとって有用ではない各特有操作の結果を記憶せずに実行されることになっている1つまたは複数の特有操作のパケットの形成にある。
一実施形態では、シーケンスの特有操作のすべてが共にグループ化される。
一実施形態では、特有フォーマット化データは、1組の埋込みループのみを含む。
さらに、いくつかの特有操作は、別のサブ処理操作ですでに使用された操作結果に適用することができる。例えば、特有操作のシーケンスが、中間計算からの3つのラインを適用するフィルタを含むとき、ラインに対応するサブオブジェクトに分解された画像の場合、第1のサブオブジェクトすなわち第1のラインに適用されるフィルタ操作は、例えば画像の第2および第3のラインも使用する。また、この同じフィルタ操作が第2のサブオブジェクトに適用されることになるとき、さらには第3のラインに関して第3のサブオブジェクトに適用されることになるときにすら、第2および第3のラインがこのフィルタ操作によって使用されることになる。この場合、ピクセルのこれらのラインを後で再計算するのは計算の点でコストがかかるが、そうしなくてもよいようにこれらをメモリに記憶することが有益である可能性がある。
異なるデータに対していくつかのフィルタが使用される場合も、同様にして他のデータをメモリに記憶することが有用である可能性がある。
したがって、一実施形態では、特有フォーマット化データは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の少なくとも一部を、プラットフォームのメモリに記憶することを可能にする操作を含む。
さらに、一実施形態では、本方法は、別のサブオブジェクトのサブ処理操作中に使用される特有操作からの結果を、当該サブオブジェクトとの関係におけるこの別のサブオブジェクトの相対位置に従って、メモリに共にグループ化して記憶するステップを含む。
次に、後でさらに述べるような待ち行列を含む循環的連鎖を適用する一実施形態例について述べる。この例では、スクローリングモードは、Nが5に等しく、オブジェクトが10*5のサブオブジェクトに分解され、水平に配置された10個のサブオブジェクトが1つずつ処理され、次いで下に位置する10個のサブオブジェクトが処理され、以下同様となるようなスクローリングモードである。水平次元に従って使用される待ち行列は、前回の反復からのデータを含み、垂直に使用される待ち行列は、前の10回の反復からのデータを含む。したがって、特有操作からの結果のメモリグループ化は、スクローリングモードに依存する。したがって、別のサブオブジェクトのサブ処理中に使用される特有操作からの結果をメモリに共にグループ化して記憶することは、当該サブオブジェクトとの関係におけるこの別のサブオブジェクトの相対位置に依存する。
本方法はまた、いくつかの場合に、サブオブジェクトのサブ処理中に実施され別のサブオブジェクトのサブ処理中に使用される特有操作からの結果を、少なくとも1つの待ち行列中で共にグループ化するステップを含む。
一実施形態では、計算ユニットは少なくとも1つの循環的連鎖に従って連鎖され、連鎖は少なくとも1つの待ち行列も含む。
いくつかの場合では、特有フォーマット化データは、特有操作からの結果および/または記憶された基本情報を、プラットフォームのメモリスロットの1つから別のメモリスロットに転送することに関する情報を含む。後でさらに述べる第5の変換例は、このような転送を含む。
一実施形態では、少なくとも1つの特有操作はしかし、エッジ効果を有するような特有操作である可能性がある。すなわち、これらの操作が適用されるサブオブジェクトのエッジに位置するいくらかの情報の損失がある。これらのエッジ効果を回避するために、画像は、オーバーレイを有するサブオブジェクトに分解される。すなわち、これらのサブオブジェクトは、いくらかの基本情報を共有する。したがって、特有フォーマット化データは、特有操作からの結果がプラットフォーム中で複数回にわたって計算されるような特有操作を含み、それにより、とりわけサブオブジェクトが少なくとも1つの次元でオーバーレイされている場合に、特有操作の実行時にどんな情報も損失しない。後でさらに述べる第5の変換例は、このようなオーバーレイを含む。
一実施形態では、特有フォーマット化データは、特有操作からの結果および/または記憶された基本情報の少なくとも一部にプラットフォームがアクセスできるようにするためのアドレス指定情報を含む。このアドレス指定情報は「ベースアドレス+オフセット」または「(ベースアドレス+オフセット)mod(バッファメモリのサイズ)」フォーマットであり、オフセットは、あるサブ処理操作と他のサブ処理操作とで、1つの同じ特有操作からの結果に対して一定である。一実施形態では、ベースアドレスはサブ処理操作ごとに変更される。
好ましくは、バッファメモリは、処理プラットフォームのメモリの1つに統合される。とりわけ、バッファメモリは待ち行列とすることができる。
一実施形態では、本方法は、特有操作からの結果を記憶するために、空のメモリスロット、あるいはもはや使用されない特有操作結果または基本情報を含むメモリスロットのアドレスをプラットフォームに提供するようにして、特有操作の順序に従ってオフセットを計算するステップを含む。この計算は、前述のように別のサブ処理操作でまたは別の特有操作によって後で使用されることになる情報をメモリから消去しないように、種々のパラメータ、とりわけ特有操作のパラメータを反映して実施される。したがって、単純なアドレス計算およびメモリ再使用によって循環的バッファが得られ、これにより、後の計算に必要な中間データを記憶することが可能になる。とりわけ、処理がライン単位で実施される画像の場合、垂直フィルタの入力上で使用されるラインが保持される。
一実施形態では、本方法はまた、このオフセットを第1のデータに従って決定するステップを含み、オフセットは、第1のデータの汎用操作のシーケンスを変換することによって得られる特有操作のシーケンスの特有操作ごとに異なる。例えば、少なくとも1つの待ち行列は、「ベースアドレス+オフセット」または「(ベースアドレス+オフセット)mod(プラットフォーム中に位置するバッファメモリのサイズ)」フォーマットのアドレス指定情報によって実現される。第2のデータを使用して、使用される待ち行列が決定される。
特有操作をサブオブジェクトに適用するには、コードのサイズを縮小するためおよびコードをより一様にするためにループを使用するのが一般に有益である。したがって、一実施形態では、処理操作は、スクローリングモードに従って、少なくとも1つのループと、ループ(1つまたは複数)の反復の数量と、複数のループがあるときにはループの埋込みとの計算を含む。後続の変換例は、ループがプラットフォームに従って手動でコーディングされる既知の言語とは対照的に、ループをプラットフォームに従って自動的に計算することが可能であることを示す。
これらのループは例えば、とりわけ、処理されるオブジェクトが、矩形のサブオブジェクトに分解された画像であって、これらの中を水平または垂直にスクロールすることが選択された場合に、サブオブジェクトの中をスクロールするのに使用することができる。
同様にして、特有フォーマット化データは、いくつかの場合、処理操作に必要な一時変数を含む。
いくつかの特有操作はパラメータを使用し、この場合、これらのパラメータの値もまた処理される。これらのパラメータは、例えば乗率とすることができる。これらのパラメータは、例えば、限定しないが以下に挙げるものに対応することができる。
−フィルタ係数
−飽和度の値
−オフセット値
−相関表
一実施形態では、特有操作によって使用されるパラメータの値は、サブオブジェクトの絶対位置に依存し、かつ/あるいは、これらの特有操作において直接的または間接的に適用される基本情報の、サブオブジェクトにおける絶対位置に依存する。例えば、処理されるオブジェクトが画像である場合、撮影に使用された光学機構のせいで画像に欠陥が現れることがある。これらの欠陥は、画像全体にわたり概して一様ではなく、とりわけエッジでは一様ではない。この場合、この不鮮明を補償するために、画像のすべてのピクセルに同じ補償係数が適用されることにはならない。
例えば、すべての基本情報に共通のパラメータをフィルタに対して使用すると、鮮鋭度を一様に高めることができる。
例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存するパラメータをフィルタに対して使用すると、光学的な欠陥を補償するためにエッジでより大幅に鮮鋭度が高まる。
例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存するパラメータをビネッティング補正に使用すると、光学的な欠陥を補償するためにエッジでより高い補償が生み出される。
例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存するパラメータをデモザイキング操作に使用すると、センサから受け取られた未処理画像中の「赤」ピクセル、「緑」ピクセル、および「青」ピクセルを異なる方式で処理することができる。
例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存する第2のデータ、とりわけ変位を、ディジタル拡大計算(「ズーム」)または歪み補正計算に使用すると、各点における補間を計算するのに必要なピクセルが生成される。
一実施形態では、パラメータの値は、このパラメータのタイプに応じて、
−一定であり、アルゴリズムに固有である。この場合、パラメータの値はとりわけ、処理手段またはプラットフォームに送出することができる。かつ/あるいは、
−オブジェクトのソースまたは宛先に依存する。例えば、処理されるオブジェクトが、所与の光学機構を備えたデバイスからの画像である場合、パラメータの値は、光学機構のタイプに依存する可能性があり、光学機構のタイプは、画像中の鮮鋭度のレベルに影響を有する。この場合、パラメータの値はとりわけ、処理手段またはプラットフォームに送出することができる。かつ/あるいは、
−処理されるオブジェクトに依存する。例えば、処理されるオブジェクトがセンサからの画像である場合、パラメータの値は、このオブジェクトを取り込むのに効果的に使用されるセンサの利得に依存する可能性があり、センサの利得は、画像中の雑音のレベルに影響を有する。この場合、パラメータの値はとりわけ、プラットフォームによって送出、選択、または計算することができる。かつ/あるいは、
−オブジェクトにおける基本情報の絶対位置に依存する。この場合、パラメータの値はとりわけ、プラットフォームによって送出、選択、または計算することができる。かつ/あるいは、
−オブジェクトにおける基本情報の絶対位置に依存しない。
パラメータ値は、アルゴリズムの定義との関係で、同時にまたはアポステリオリに決定することができる。
ある種のパラメータの値が、あるオブジェクトと別のオブジェクト、あるサブオブジェクトと別のサブオブジェクト、またはある基本情報と別の基本情報とで変動する可能性があることを見てきた。この場合、一実施形態では、パラメータの値は、変更の度に計算される。
別の実施形態では、パラメータの可能な値はアプリオリに計算され、変更の度に索引またはアドレスが決定されて、それにより、パラメータの値へのアクセスが例えば表の中で可能になる。別の実施形態は、よりパラメータに特有に適応され、それにより値がサブオブジェクトの絶対位置に従ってあるサブオブジェクトと別のサブオブジェクトとで変動し、かつそれにより値の数が制限される(例えば光学的な鮮鋭度特性に対応するパラメータ)ものだが、この実施形態では、有限数のパラメータ値セットが決定され、各セットは記憶され、各サブオブジェクトにつき、使用されるセットが、例えば使用されるセットのアドレスを与える位置の関数を計算することによって選択される。
前述のように、パラメータは、ある種の特有操作の適用中に使用される。これが可能であるために、一実施形態では、特有フォーマット化データは、パラメータの値(1つまたは複数)、および/あるいは、パラメータの値(1つまたは複数)に関する計算コードを含む。
別の実施形態では、パラメータ(1つまたは複数)の値(1つまたは複数)は、処理プラットフォームに従って選択され、それにより、処理操作はこのプラットフォームの特性を反映する。したがって、いくつかのプラットフォームに対して同一のアルゴリズムが利用可能であるものとすることができ、このアルゴリズムは、これらの特性を変動させるだけで、必要とされる各プラットフォームに適応される。
別の実施形態では、これらのパラメータ値は処理対象に依存する。
本発明の一実施形態では、特有操作は、加算、減算、乗算、相関表の適用、最小値、最大値、および選択を含むグループからの、少なくとも1つの特有計算操作を含む。
一実施形態では、少なくとも1つの特有計算操作はまた、オフセットおよび/または飽和度および/または丸めを実施する。本発明によれば、特有選択計算操作は、少なくとも2つのデータ項目から、第3のデータ項目の値に従ってデータを選択することを可能にする。
一実施形態では、相関表は、表の入力と有限数の係数とを使用した計算によって適用される。一実施形態では、係数の有限数は8に固定される。
一実施形態では、特有操作は、少なくとも1つの循環的連鎖CC1を用いて、連鎖された計算ユニットによって実施される。この循環的連鎖CC1は、少なくとも1つの待ち行列も含む。特有操作シーケンスからの少なくとも1つの特有操作IS4は、計算ユニットUC1上で実施された特有操作IS5の結果を、この連鎖に従ってこの計算ユニットUC1に続く計算ユニットUC2または待ち行列に向けて送出する。
一実施形態では、特有操作IS4は、前のサブ処理操作中に実施された特有操作IS5の結果を、待ち行列から、待ち行列に続く計算ユニットUC0に送出する。好ましくは、待ち行列は、待ち行列に入力された順序と同じ順序でデータを出力することを可能にする。好ましくは、計算ユニットと待ち行列とを含む連鎖は、ブート操作の管理を可能にする機構を含む。待ち行列は、定期的に、例えば待ち行列が水平連鎖の一部でありオブジェクトが画像である場合は各ラインの最初に、初期化される。特有操作IS4の最初の実行時は、待ち行列からUC0に送出されるデータはない。次に、特有操作IS4は、前のサブ処理操作中に実施された特有操作IS5の結果を、待ち行列から、待ち行列に続く計算ユニットUC0に送出する。一実施形態では、サブオブジェクトはDSO次元を含み、特有操作は、少なくとも1つの循環的連鎖CC1を用いてサブオブジェクトの所定の次元DDに従って連鎖された計算ユニットによって実施される。この循環的連鎖CC1は、少なくとも1つの待ち行列も含む。本方法はまた、少なくとも1つの特有操作に対して、この特有操作が適用される度に以下のステップを含む。
−計算ユニットUC1上で実施された特有操作の上記適用からの結果を、この連鎖に従ってこの計算ユニットUC1に続く計算ユニットUC2または待ち行列に送出する。
−別のサブオブジェクトの処理中に待ち行列に送出された特有操作の適用の結果を、待ち行列から、待ち行列に続く処理ユニットUC0に、オブジェクトにおけるサブオブジェクトの位置に従って条件付きで送出する。
別の実施形態では、特有操作は、転置、複製、サブサンプリングを含むグループ中で選択される少なくとも1つの幾何学特有操作を含む。
特有幾何学操作は、とりわけ以下のことを可能にする。
−データをソートする。
−スケール変更、サブサンプリング、またはオーバーサンプリングの計算を実施するためにデータを選択する。
−とりわけエッジ上の、無用なデータを削除するためにデータを選択する。
実施形態によれば、特有操作は、少なくとも1つの循環的連鎖に従って連鎖された計算ユニットによって実施することができる。この循環的連鎖は、少なくとも1つの待ち行列も含む。
別の実施形態では、特有操作は、少なくとも1つの循環的連鎖に従って連鎖された計算ユニットによって実施される。この循環的連鎖は、少なくとも1つの待ち行列も含む。待ち行列はサイズおよび/またはレイテンシを有し、本方法はまた、汎用操作のシーケンスおよびスクローリングモードに従って、待ち行列のサイズおよび/またはレイテンシを決定するステップを含む。
好ましくは、前述のように、待ち行列はいくつかのデータフラックスを含み、各フラックスにつき同一数NFのデータの記憶を可能にする。NFは、サブオブジェクトの相対的な配置およびスクローリングモードに従って決定され、それにより、データを生成するサブオブジェクトの処理と、同じデータを使用するサブオブジェクトの処理との間で、NF−1個のサブオブジェクトが処理される。
好ましくは、処理されるオブジェクトは画像であり、基本情報はこの画像のピクセルである。
したがって、一実施形態では、処理プラットフォームは、画像取込みまたはレンダリングデバイスの一部であり、パラメータの値は、取込みおよび/または画像レンダリングデバイスの、光学機構および/またはセンサおよび/またはイメージャおよび/または電子機構および/またはソフトウェアの特性にリンクされる。特性はとりわけ、すべてのオブジェクトに対する固有の固定特性とすることもでき、あるいはオブジェクトに従った変数とすることもでき、例えば、センサの利得に従って変動する雑音特性とすることができる。特性はまた、基本情報の絶対位置に従って、すべての基本情報または可変情報に対して同一とすることもでき、例えば光学的な鮮鋭度の特性とすることができる。
別の実施形態では、処理されるオブジェクトはディジタルオーディオ信号であり、この場合、基本情報は、この信号のオーディオサンプルにある。この場合、第2のデータ中に存在する相対位置は一般に、時間的位置になる。しかし、これらの位置が空間的になることも起こりうる。これはとりわけ、処理されるオブジェクトが、複数のチャネル上に存在する音声である場合である。
本発明の別の実施形態では、とりわけディジタルシミュレーションの場合、処理されるオブジェクトは数値メッシュであり、基本情報は、メッシングの各点を特徴付ける空間および/または時間情報である。
本明細書に述べる特有フォーマット化データは、処理プラットフォームに直接提供することができる。しかしまた、この特有フォーマット化データは、C言語やVHDL言語など既知のコンピュータ言語をプラットフォーム用に変換するようになっているコンパイラに、このコンピュータ言語で提供することもできる。これにより例えば、レジスタの割当てまたは命令のスケジューリングを管理する必要なしに、コンパイラを備える既存のプラットフォームを使用することができる。
本発明はまた、どんなループもない汎用操作のシーケンスを記述する第1のデータを含む汎用フォーマット化データを処理するためのシステムに関する。本システムは、Q個のプロセッサと少なくとも1つのメモリとを備える所定のプラットフォームに、特有フォーマット化データを直接的または間接的に提供する。プラットフォームは、同じタイプの基本情報で構成されるオブジェクトを特有フォーマット化データに従って処理するようになっており、各基本情報は少なくとも1つの数値で表される。
本システムは、
−汎用操作のシーケンスをプラットフォームに従って1つの特有操作シーケンスに変換する手段と、
−プラットフォームのアーキテクチャおよびオブジェクトのトポロジに従って、かつ第1のデータから独立して、処理操作に必要なループのセットを決定する手段と、
−特有操作のシーケンスとこのように決定されたループとを含む特有フォーマット化データを計算し、コードサイズおよび/またはメモリサイズおよび/または計算時間の点でプラットフォームに最適化された方式で、汎用フォーマット化データに準拠するオブジェクトの処理を直接的または間接的に可能にする手段とを備える。
一実施形態では、本システムは、
−プラットフォームのアーキテクチャおよびオブジェクトのトポロジに従って、かつ第1のデータから独立して、このプラットフォーム中で基本情報をスクロールするためのモードを決定する手段を備え、このスクローリングモードを決定する手段は、
−サブオブジェクトにおける基本情報のグループであって、各サブオブジェクトはプラットフォームに従って決定されるQの倍数である数量Nの基本情報を含み、プラットフォーム中での処理はサブ処理操作を周期的に開始することにあり、サブ処理操作はサブオブジェクトの1つに特有操作のシーケンスを適用することにあることと、
−プラットフォームに従って決定される、サブオブジェクトの形およびオーバーレイと、
−プラットフォームに従って決定される、サブオブジェクトの処理順序とを選択および/または計算する手段を備え、本システムはさらに、
−処理操作に必要なループのセットを決定し、かつ/またはスクローリングモードを反映する特有操作のシーケンスを計算する手段を備える。
一実施形態では、本システムは、特有操作のシーケンスのうち、どの特有操作(1つまたは複数)が各プロセッサによって実施されるかを決定する手段を備え、各特有操作は各サブオブジェクトに少なくともN回適用され、各特有操作は、そのN回の適用中に、それぞれ少なくとも1回、サブオブジェクトの基本情報を直接的および/または間接的に適用して、ちょうどN個の結果を生成する。本方法はまた、このように決定された情報を特有フォーマット化データに加えるステップを含む。
一実施形態では、本システムは、周期の相対時間ごとに、特有操作のシーケンスのうち、どの特有操作(1つまたは複数)が各プロセッサによって実施されるかを決定する手段を備え、各特有操作は各サブオブジェクトに少なくともN回適用され、各特有操作は、そのN回の適用中に、それぞれ少なくとも1回、サブオブジェクトの基本情報を直接的および/または間接的に適用して、ちょうどN個の結果を生成する。本方法はまた、このように決定された情報を特有フォーマット化データに加えるステップを含む。
一実施形態では、本システムは、各サブオブジェクトに適用される特有操作の数量がプロセッサの数量Qの倍数でない場合、および/または、処理されるオブジェクトに関する基本情報の数量がNの倍数でない場合に、効果なしの特有操作および/またはヌル基本情報を加え、それにより特有操作の数量がQの倍数になり、基本情報の数量がNの倍数になるようにする手段を備える。
一実施形態では、本システムは、
−論理ブロックと呼ばれる少なくとも1つの基本情報セットに汎用操作のシーケンスが適用されるような手段と、
−相互との関係における論理ブロックの相対位置および/または相対スケール(とりわけ空間的または時間的)を参照する、少なくとも2つの論理ブロックを使用する汎用操作に関する第2のデータを含む汎用フォーマット化データを受け取る手段と、
−各特有操作が適用されなければならない基本情報および/または特有操作からの結果が、第2のデータに依存するような手段と、
−相互との関係における論理ブロックの少なくとも1つの相対位置がヌルでない場合は、少なくとも1つの特有操作が、別のサブオブジェクトの少なくとも1つの基本情報を直接的または間接的に使用するような手段とを備える。
一実施形態では、本システムは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の一部を、第2のデータに従って決定する手段を備える。
一実施形態では、本システムは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からのグループ化された結果を、第2のデータおよび/またはスクローリングモードに従って記憶するメモリを備える。
一実施形態では、本システムは、少なくとも1つの循環的連鎖に従って連鎖された計算ユニットを備え、また、各特有操作につき、この特有操作の結果を循環的連鎖に従って送出すべきかどうかを第2のデータに従って判定する手段を備える。本システムはまた、妥当な場合に、この特有操作の結果を送出するのに使用される循環的連鎖を第2のデータおよびスクローリングモードに従って決定する手段を備える。
一実施形態では、本システムは、特有操作を共にグループ化することに関する情報を特有フォーマット化データが含むような手段を備え、このグループは、別のサブ処理操作のために各特有操作の結果を記憶することなく実行されることになっている1つまたは複数の特有操作のパケットの形成にある。
一実施形態では、本システムは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の少なくとも一部をプラットフォームのメモリに記憶することを可能にする操作を特有フォーマット化データが含むような手段を備える。
一実施形態では、本システムは、別のサブオブジェクトのサブ処理操作中に使用するための特有操作からのグループ化された結果を、当該サブオブジェクトとの関係におけるこの別のサブオブジェクトの相対位置に従って記憶するメモリを備える。
一実施形態では、本システムは、サブオブジェクトのサブ処理操作中に実施され別のサブオブジェクトのサブ処理操作中に使用される特有操作からのグループ化された結果を記憶する少なくとも1つの待ち行列を備える。
一実施形態では、本システムは、特有操作からの結果がプラットフォーム中で複数回にわたって計算されるような特有操作を特有フォーマット化データが含むような手段を備え、それにより、とりわけサブオブジェクトがオブジェクトの次元の少なくとも1つでオーバーレイされている場合に、特有操作の実行時にどんな情報も損失しない。
一実施形態では、本システムは、特有操作からの結果および/または記憶された基本情報の少なくとも一部にプラットフォームがアクセスできるようにするアドレス指定情報を、特有フォーマット化データが含むような手段を備え、アドレス指定情報は「ベースアドレス+オフセット」または「ベースアドレス+modオフセット(プラットフォーム中に位置するバッファメモリのサイズ)」フォーマットであり、オフセットは、1つの同じ特有操作からの結果に対して一定である。
一実施形態では、本システムは、ベースアドレスをサブ処理操作ごとに変更する手段を備える。
一実施形態では、本システムは、特有操作からの結果を記憶するために、空のメモリスロット、あるいはもはや使用されない特有操作結果または基本情報を含むメモリスロットのアドレスをプラットフォームに提供するようにして、特有操作の順序に従ってオフセットを計算する手段を備える。
一実施形態では、本システムは、少なくとも1つのループと、ループ(1つまたは複数)の反復の数量と、複数のループがあるときにはループの埋込みとを、スクローリングモードに従って計算する手段を備える。
一実施形態では、本システムはまた、少なくとも1つのパラメータを処理する手段を備え、それにより、特有操作によって使用されるパラメータ(1つまたは複数)の値(1つまたは複数)は、これらの特有操作において直接的または間接的に適用される基本情報の、サブオブジェクトにおける絶対位置に依存する。
一実施形態では、本システムはまた、少なくとも1つのパラメータを処理する手段を備え、それにより、特有フォーマット化データは、パラメータ(1つまたは複数)の値(1つまたは複数)、および/あるいは、パラメータ(1つまたは複数)の値(1つまたは複数)に関する計算コードを含む。
一実施形態では、本システムはまた、少なくとも1つのパラメータを処理する手段を備え、パラメータ(1つまたは複数)の値(1つまたは複数)を処理プラットフォームに従って選択する手段を備え、それにより処理操作はこのプラットフォームの特性を反映する。
一実施形態では、本システムはまた、少なくとも1つのパラメータを処理する手段を備え、それにより、パラメータ(1つまたは複数)の値(1つまたは複数)は、処理されるオブジェクトに依存する。
一実施形態では、本システムは、加算、減算、乗算、相関表の適用、最小値、最大値、選択を含むグループに含まれる特有操作を実施する手段を備える。
一実施形態では、本システムは、少なくとも1つの循環的連鎖CC1によって連鎖された計算ユニットを備え、この循環的連鎖CC1は、少なくとも1つの待ち行列も含む。本システムは、計算ユニットUC1上で実施された特有操作IS5の結果を、この連鎖に従ってこの計算ユニットUC1に続く計算ユニットUC2または待ち行列に転送する手段を備える。
一実施形態では、本システムは、転置、複製、およびサブサンプリングを含むグループに含まれる少なくとも1つの特有幾何学操作を実施する手段を備える。
一実施形態では、本システムは、少なくとも1つの循環的連鎖によって連鎖された計算ユニットを備え、循環的連鎖は少なくとも1つの待ち行列を含む。
一実施形態では、本システムは、少なくとも1つの循環的連鎖に従った連鎖された計算ユニットを備え、循環的連鎖は少なくとも1つの待ち行列も含み、本システムは、汎用操作のシーケンスおよびスクローリングモードに従って待ち行列のサイズおよび/またはレイテンシを決定する手段を備える。
一実施形態では、本システムは、処理されるオブジェクトが画像であり、基本情報がこの画像のピクセルであるような手段を備える。
一実施形態では、本システムは、処理プラットフォームが画像取込みおよび/またはレンダリングデバイスの一部であり、パラメータ(1つまたは複数)の値(1つまたは複数)が、画像取込みおよび/またはレンダリングデバイスの、光学機構および/またはセンサおよび/またはイメージャおよび/または電子機構および/またはソフトウェアの特性にリンクされるような手段を備える。
一実施形態では、本システムは、処理されるオブジェクトがディジタルオーディオ信号であり、基本情報がこの信号のオーディオサンプルであるような手段を備える。
一実施形態では、本システムは、処理されるオブジェクトが数値メッシュであり、空間および時間情報である基本情報がメッシングの各点を特徴付けるような手段を備える。
本発明の他の特徴および利点は、その実施形態のいくつかに関する非限定的な記述から明らかになるであろう。この記述は図によってサポートされる。
図3に示すデバイスは、画像22を処理するようになっており、この画像は、少なくとも1つの数値で表されるピクセルのセットである。
このデバイス中で、ディジタルデータ処理手段10に汎用フォーマット化データ12が提供される。この処理手段は、例えばコンパイラとすることができる。
本発明による方法によって供給される汎用フォーマット化データは、第1および第2のデータ14を含み、第1および第2のデータ14は、汎用操作のシーケンスを記述し、また、これらの汎用操作に関係する論理ブロックの相対位置を提供する。この第1および第2のデータについては、図4の記述によって例示する。
処理手段10はまた、画像取込みまたはレンダリングデバイスなどの処理プラットフォーム20の特性に従って選択または計算されたスクローリングモード24を、入力上で受け取る。
この汎用フォーマット化データ12およびこれらのパラメータを使用して、処理手段10は、処理プラットフォーム20に特有フォーマット化データ18を提供する。
特有フォーマット化データは、プラットフォームのメモリにおけるピクセルの構成、ピクセルがプラットフォームによって処理される順序、さらにはプラットフォームによって実施される特有操作のグループ化に関するデータなど、種々のタイプのデータを含む。
次いでプラットフォーム20は、この特有フォーマット化データ18を使用して、インバウンドで受け取った画像22を処理する。
したがって図3は、以下のような、本発明のいくつかの利点を例示する。
−汎用フォーマット化データ12を素早く修正または置換し、プラットフォームに最適化された特有フォーマット化データ18に変換することができる。これにより、プラットフォームの市場リリースにかかる時間が短縮されることになる。
−汎用フォーマット化データ12を、いくつかのプラットフォームに最適化された特有フォーマット化データに素早く変換することができる。これによりまた、いくつかのプラットフォームの市場リリースにかかる時間が短縮されることになる。
以下の表4および図4に、論理ブロックB1に適用される汎用操作のシーケンスの形で、汎用フォーマット化データの例を示す。このシーケンスは、3つの汎用操作を含む。表の列は、順番に以下の項目を示す。
−シーケンスにおける操作のランク。
−汎用操作の名前。
−汎用操作の結果が書き込まれる論理ブロック(出力)。すなわち、オブジェクトが各操作の終わりに再構成された場合に、この結果が位置することになる場所。
−汎用操作の第1の入力(入力1)。これは論理ブロックまたはパラメータとすることができる。
−妥当な場合に、入力1における論理ブロックに関連して使用される論理ブロックの相対位置。
−汎用操作の第2の入力(入力2)。これもまた論理ブロックまたはパラメータとすることができる。
−妥当な場合に、入力2における論理ブロックに関連して使用される論理ブロックの相対位置。
「相対位置」の列に位置する情報は、本発明による方法を使用して処理手段に提供される第2のデータ中に存在する情報である。この表では、この情報は、簡略化のために「左」および「右」の形で出ているが、実際は、上記の実施形態例で述べたように、汎用フォーマット化データ中で、(0;1)などの数値で、かつ/またはf(x;y)などの関数でコーディングすることもできる。
一実施形態では、ある汎用操作は、オブジェクトの次元の1つに従った絶対位置で構成される論理ブロックを生成し、インダイレクションと呼ばれる別の汎用操作は、第3のブロックから、第2のブロックで示される変位および/またはスケール変更によってブロックを生成する。この場合、ブロックに対する汎用操作を使用してから、汎用インダイレクション操作を使用して相対変位および/または対応する相対スケール変更を実施して、相対位置および/または相対スケールを提供する関数、例えば0.5*(x−100)を計算することができる。
表4はコーディングの一例に過ぎず、第1のデータおよび第2のデータは様々な方式でコーディングすることができ、表フォーマットでも、しかし記号フォーマットやグラフフォーマットでも、あるいは他のどんなフォーマットでもコーディングすることができる。さらにこの例では、簡略化のために、データ型、オフセット、および飽和度に関する追加情報は示していない。
Figure 0006085405

この操作シーケンスで使用される第1の論理ブロックは、論理ブロックB1(51)である。第1の汎用操作は、左にずれた論理ブロックB1(51g)と右にずれた論理ブロックB1(51d)との加算(52)である。この加算の結果は、ブロックB2(53)に記録される。すなわちB2=B1left+B1rightである。
第2の操作(54)は、表に関連してブロックB2(53)を変形することである。したがってこの操作は、入力におけるブロックB2(53)と、修正表を表すパラメータParam1(55)とを有する。この操作の結果は、ブロックB3(56)に記録される。すなわちB3=LUT(Param1,B2)である。
このシーケンスにおける第3かつ最後の操作(57)は、論理ブロックの乗算である。この操作は、論理ブロックB3(56)および論理ブロックB1(51)を有し、すなわち入力に対してB4=B3*B1である。
したがって、論理ブロックB4(58)は、汎用操作のシーケンスの終わりに得られるブロックである。
表1の例における汎用フォーマット化データは、プラットフォームと、オブジェクトのサブオブジェクトへの分解と、オブジェクトの基本情報のスクローリングモードと、基本情報がプラットフォーム中で処理されることになる順序とから、ならびに記憶された構成から独立している。実際、表1の汎用フォーマット化データは、様々な方式で特有フォーマット化データやプラットフォーム用コードに変換することができ、これは例えば、限定しないが以下に挙げる変換に従って行うことができる。
第1の変換例は、メモリおよび計算時間の点で最適ではないが、サブオブジェクトへの分解を伴わない単純な変換を例示する。
左側と右側の2つの列を除いた、入力オブジェクトのピクセルBP1(論理ブロックB1に対応する)のそれぞれにつき(ピクセルは左から右へ、次いで上から下へスクロールされる)、
現ピクセルの左のピクセルと右のピクセルとを加算し、結果を物理ブロックBP2(論理ブロックB2に対応する)に記憶する。
左から右へ、次いで上から下へスクロールされるBP2の各ピクセルにつき、
現ピクセルに表を適用し、結果を物理ブロックBP3(論理ブロックB3に対応する)に記憶する。
左から右へ、次いで上から下へスクロールされるBP3の各ピクセルにつき、
現ピクセルにBP1の対応ピクセルを乗算し、結果を物理出力ブロックBP4(論理ブロックB4に対応する)に記憶する。
第2の変換例は、汎用フォーマット化データを変更することなくサイズおよび使用メモリを低減できることを示す。実際、第1の例では、画像に近いサイズの4つの物理ブロックが使用される。BP2、BP3、およびBP4に同じメモリを使用して、2つの物理ブロックのみを使用することができる。以下の変換が得られる。
左側と右側の2つの列を除いた、入力オブジェクトのピクセルBP1(論理ブロックB1に対応する)のそれぞれにつき(ピクセルは左から右へ、次いで上から下へスクロールされる)、
現ピクセルの左のピクセルと右のピクセルとを加算し、結果を物理ブロックBP2(論理ブロックB2に対応する)に記憶する。
左から右へ、次いで上から下へスクロールされるBP2の各ピクセルにつき、
現ピクセルに表を適用し、結果を物理ブロックBP2(今や論理ブロックB3に対応する)に記憶する。
左から右へ、次いで上から下へスクロールされるBP2の各ピクセルにつき、
現ピクセルに対応BP1ピクセルを乗算し、結果を物理出力ブロックBP2(今や論理ブロックB4に対応する)に記憶する。
第3の変換例は、汎用フォーマット化データを変更することなく計算時間を短縮できることを示す。実際、第2の例では、画像に近いサイズの2つの物理ブロックが使用されるが、物理ブロックBP2は3回にわたって完全に書き込まれ、物理ブロックBP1は2回にわたって完全に読み取られ、物理ブロックBP2は2回にわたって完全に読み取られる。これを、異なるスクローリングモードおよび異なるブロックを用いて、1回の読取りおよび1回の書込みだけに制限することができる。これにより、必要とされる操作の数が減少するが、メモリアクセス要件もまた減少する。以下の変換が得られる。
左側と右側の2つの列を除いた、入力オブジェクトのピクセルBP1(論理ブロックB1に対応する)のそれぞれにつき(ピクセルは左から右へ、次いで上から下へスクロールされる)、
以下の特有操作シーケンスを実施する。現ピクセルの左のピクセルと右のピクセルとを加算し、結果に表を適用し、表出力に現ピクセルを乗算し、結果を現在の物理出力ブロックBP2(論理ブロックB4に対応する)に記憶する。
第4の例は、より特有にキャッシュ付きスカラプロセッサに適応されているが、この第4の例では、結果は入力と同じメモリゾーンに書き込まれる。これにより、メモリサイズがより一層縮小され、メモリアクセスがローカルになる。このことは、キャッシュメモリまたはページドメモリの場合に非常に有益である。したがって、以下の変換が得られる。
左側と右側の2つの列を除いた、入力オブジェクトのピクセルBP1(論理ブロックB1に対応する)のそれぞれにつき(ピクセルは左から右へ、次いで上から下へスクロールされる)、
以下の特有操作シーケンスを実施する。
現ピクセルの左のピクセルと右のピクセルとを加算し、結果に表を適用し、表出力に現ピクセルを乗算し、結果を、現在の物理出力ブロックBP1に、現ピクセルの左のピクセルに代えて記憶する(この左ピクセルは、次の反復のための左ピクセルになる現ピクセルとは反対に、もはや使用されない)。BP1は、部分的に論理ブロックB4に対応し、部分的に論理ブロックB1に対応する)。
第5の変換例は、小さい高速アクセスメモリおよび大きい低速メモリを伴う信号処理プロセッサに特に適応されており、各サブオブジェクトは、例えば32×32の矩形、または高速アクセスメモリの使用を最大限にする他の任意の値の矩形であり、矩形は隣接する。したがって、以下の変換が得られる。
各サブオブジェクトにつき(サブオブジェクトは左から右へ、次いで上から下へスクロールされる)、
次の物理入力ブロックを、DMA(「直接メモリアクセス」)機構を介して低速メモリから高速アクセスメモリに転送することを開始する。この物理入力ブロックは、左に追加の1列分、右に追加の1列分拡張されて32×34となる次のサブオブジェクトに対応する。
前の物理出力ブロックを、DMA(「直接メモリアクセス」)機構を介して高速アクセスメモリから低速メモリに転送することを開始する。
左および右への追加の列で拡張されて32×34となり、前の反復のDMAの終わりに得られる現サブオブジェクトに対応する物理ブロックを取る。
左側と右側の2つの列を除いた、物理入力ブロック(論理ブロックB1に対応する)の各ピクセル(左から右へ、次いで上から下へスクロールされる)につき、
以下の特有操作シーケンスを実施する。現ピクセルの左のピクセルと右のピクセルとを加算し、結果に表を適用し、表出力に現ピクセルを乗算し、結果を現在の物理出力ブロック(論理ブロックB4に対応する)に記憶する。
第6の変換例は、1つの同じ計算をベクトルの種々のピクセルに適用することのできるベクトル信号プロセッサに特に適応されており、各サブオブジェクトは、例えば64個の水平ピクセルの矩形、またはプラットフォームが処理および記憶できるベクトルのサイズと等しい他の任意の値の矩形である。ベクトルは1度に1つずつ処理されるので、この変換はどんなメモリも必要としない。したがって、以下の変換が得られる。
左の2つの列を除いた、入力オブジェクトBP1(論理ブロックB1に対応する)の各サブオブジェクトV1につき(サブオブジェクトは左から右へ、次いで上から下へスクロールされる)、以下の特有操作シーケンスを実施する。
各ラインの開始で、ラインの2つの左側ピクセルを右に含むベクトルV0を生み出す。
V0およびV1から、V0の2つの右側ピクセルと、V0の2つの右側ピクセルを除いたV1の2つの左側ピクセルとに対応するベクトルV2を抽出する。
V1とV2とを加算してV2を得て、V2の各ピクセルに表を適用してV2を得る。V0およびV1から、V0の右側ピクセルに対応するベクトルV3を抽出する。以下の反復について、V1をV0にコピーする。すなわち、V2にV3を乗算してV2を得て、結果V2を現在の出力物理ブロックに記憶する。
上記の変換例は、同じ汎用フォーマット化データを使用して、極めて多様なプラットフォームに適応されたメモリ構造、ループ、および並列処理の度合いによっていくつかの方式で変換することが可能であることを示す。特に、
−1つの単一ループのみを使用して、コードのサイズを縮小することができる。かつ/または、
−メモリのサイズを、例では0に縮小することができるが、垂直フィルタのあるより一般的な場合では、垂直フィルタの入力データに対して計算を繰り返す必要を避けるために、いくつかのメモリラインが必要とされる。かつ/または、
−とりわけループをグループ化することによって、必要とされる操作の数を削減することができる。かつ/または、
−どんなサイズのベクトルにも適応することができる。かつ/または、
−どんなメモリアーキテクチャにも適応することができる。
第3、第4、第5、および第6の例は、汎用操作のシーケンスを1つの特有操作シーケンスに変換する例である。
簡略化のために、これらの例は、入力画像よりも小さい画像を生成する。必要なら、各ラインの最初と最後にコードを追加してエッジピクセルを複製することによって、入力画像と同一サイズの出力画像を容易に得ることができる。
図5に、本発明による方法を使用する処理手段の出力における特有フォーマット化データの構造を示す。特有フォーマット化データは、処理手段により、処理手段に提供された汎用フォーマット化データ32を使用して、かつこの処理手段によって決定されたスクローリングモード34を使用して計算される。汎用フォーマット化データは、処理手段によって実施される少なくとも1つの汎用操作または操作シーケンスを記述するデータ38を含む第1のデータ36を含む。汎用フォーマット化データはまた、少なくとも2つの論理ブロックを使用する汎用操作に関して、相互との関係における論理ブロックの位置および相対スケールを参照する第2のデータ40も含む。この汎用フォーマット化データおよびスクローリングモード34を使用して、処理手段は、特有操作に関係するデータ42およびループに関係するデータ44を提供する。このデータ42および44は、特有フォーマット化データ30の一部である。
次に、本発明による方法によって決定することのできるスクローリングモードのいくつかの例について述べる。これらのスクローリングモードはそれぞれ、図6〜8のうちの1つに示すアーキテクチャのプラットフォーム中で使用されるようになっている。
図6に示す第1の例では、処理プラットフォームは、1つの次元で連鎖された5つのプロセッサを備える。これは、プロセッサProcAから出力された計算結果がプロセッサProcBへの入力に使用され、以下同様となることを意味する。プロセッサProcEによって出力された計算結果は、プロセッサProcAの入力に適用される。
各プロセッサには、MemA〜MemEとして言及する、限られた容量のメモリが備わる。このメモリユニットは、プロセッサによって実施される特有操作に使用されるパラメータ値、あるいは、プロセッサによってすぐに再使用されるよう定められた基本情報または操作からの結果を記憶するようになっている。
この第1の例では、処理操作は、OP1〜OP8として言及する8つの操作のシーケンスを、オブジェクトを構成する基本情報に適用することにある。
オブジェクトは、処理されるために、N個の基本情報のサブオブジェクトに分解されなければならない。NはQ(Q=5、計算ユニットの数量)の倍数でなければならないが、このNは、本発明による方法によって、とりわけプラットフォームのメモリ容量に従って、プラットフォームの上流で決定される。この例では、N=5である。
さらに、特有操作の規則的なシーケンシングを実施するために、本発明による方法は、効果なしの特有操作OP9およびOP10を生み出し、それにより、各サブオブジェクトに対して実施される特有操作の数量が、利用可能なプロセッサの数量の倍数になるようにする。
具体的な操作タイプに従って、各操作は、プロセッサによって実施されるように割り当てられる。ここでは、
−プロセッサAはOP1およびOP6を実施する。
−プロセッサBはOP2およびOP7を実施する。
−プロセッサCはOP3およびOP8を実施する。
−プロセッサDはOP4およびOP9を実施する。
−プロセッサEはOP5およびOP10を実施する。
各プロセッサは、割り当てられた特有操作に対応する命令のセット(InsA〜InsE)を実行する。限られた容量のメモリに記憶されたパラメータの値もまた、この割当てに依存する。例えば、OP1が、2を乗算することである場合、MemAメモリは数字2を含むことになる。
これらの割当てが行われると、以下の表Iによって述べるシーケンシングスケジュールに従って操作が行われる。
この表では、プロセス進行時間をT1、T2、......T13として示す。
Figure 0006085405

各ラインは、10個の特有操作OP1〜OP10のうちの1つを表す。各列は、基本情報IE1〜IE5のうちの1つを表し、各基本情報は、処理されるサブオブジェクトを構成する。このIE1〜IE5の表記は形式的なものであり、必ずしも空間的または時間的現実に対応するとは限らない。実際、ある種の特有操作は基本情報の変位を生成する。したがって、例えば特有操作OP1が、左にずらすことにある場合、特有操作OP2によって処理される情報IE1は、特有操作OP1が情報IE1に適用された結果ではなく、この特有操作OP1が情報IE2に適用された結果であることがある。
この表中の各枠は、特有操作を実施するプロセッサの名前、ならびにこの特有操作が処理操作中に実施される時間を含む。明白なことだが、この表は、処理操作の一部を表すに過ぎない。ここでは、必要とされる特有操作からのすべての結果が、処理操作においてすでに計算されていると仮定する。
したがって、時間T1で、ProcAプロセッサがサブオブジェクト1の第1の情報IE1に対して操作OP1を実施するのが示されている。この時点で、他のプロセッサは、この表に示されていない他の操作を実施している。
時間T5で、各プロセッサがサブオブジェクト1の情報の1つに対して操作を実施するのが示されている。
プロセッサがサブオブジェクトのすべての基本情報に対して特有操作を実施したとき、プロセッサは、それに割り当てられた次の操作に進む。したがって、ProcAプロセッサは、T6から操作OP6を実施する。
プロセッサがそれに割り当てられたすべての特有操作を実施すると、次のサブオブジェクトが処理される。したがって、2つの異なるサブオブジェクト(サブオブジェクト1とサブオブジェクト2)が、プラットフォーム中で同時に処理される。
この表では、各特有操作がN回(ここではN=5)実施されることがはっきりと示されている。
このシーケンシングは、プロセッサの次元の1つにおける循環的連鎖によって得られる。したがって、基本情報は、ある計算ユニットから他の計算ユニットに移行することができる。例えば、基本情報IE1は、すべてのプロセッサの中を進んで特有操作OP1〜OP5を「経験し」、次いで、ProcAプロセッサに戻って再び循環を開始し、操作OP6〜OP7を「経験する」。(注:上で説明したように、最初の基本情報IE1は、必ずしもすべてのステップでIE1情報になるとは限らない。)このように本発明は、シストリックアーキテクチャに適応された特有フォーマット化データの生成を可能にすることがわかり、これはとりわけ、パラメータの値をローカルに記憶すること、およびデータパスをケーブルできることの利点を有する。正確なシーケンシングは、少なくとも部分的に、プラットフォーム上のコンパイラによって実施できることに留意することができる。この場合、特有フォーマット化データは、時間における絶対的なシーケンシングを含むのではなく、シーケンシングに対する制限を含む。
図7に示す第2の例では、プラットフォームは、共通のメモリにリンクされた5つのプロセッサを備える。このような構造は古典的である。すなわち、ベクトル信号プロセッサ(「単一命令複数データ」つまりSIMDタイプのもの)の構造に対応する。
この例では、各プロセッサは、相関表Tなどのパラメータを含むことのできる小さいメモリに、個別にリンクされる。この構造では、各プロセッサがすべての特有操作を実施する。したがって、すべてのプロセッサは同じ命令セットINSを受け取る。
この第2の例では、操作のうちの1つが、表を使用して1つまたは複数の基本情報を修正することにある場合について考える。上記からわかるように、各プロセッサはそれ自体の表へのアクセスを有し、すべての表は同一である。一代替形態では、各メモリは一群のプロセッサによって共有される。一代替形態では、一群のプロセッサは同じメモリを共有し、同じパラメータを同時に得る。この場合、例えば多項式を計算するための、1つまたは複数のパラメータを使用した計算によって、相関表を適用し実施しなければならない。
これは並列操作を伴う。すなわち、プロセスの各時間で、すべてのプロセッサが、同じ操作を異なる基本情報に対して実施する。このプロセスを以下の表IIによって例示する。
この表では、プロセス進行時間をT1、T2、......T10として示す。
Figure 0006085405
この表では、所与の時間Tiで、特有操作OPiが、各プロセッサProcA〜ProcEによって基本情報IE1〜IE5に対してそれぞれ実施されることがわかる。
10回目のインクリメントの後には、特有操作のシーケンス中の各特有操作が、サブオブジェクトの各基本情報に対して実施されていることに気付くことができる。
この場合、特有操作はすべてのプロセッサによって並列で実施されるので、効果なしの操作によって特有操作のシーケンスを完全なものにする必要はないことが明らかである。このようにして、操作OP8が完了すると、次のサブオブジェクトを構成する基本情報に操作OP1を適用することによって、プロセスを繰り返すことができる。
正確なシーケンシングは、少なくとも部分的に、プラットフォーム上のコンパイラによって実施できることに留意することができる。この場合、特有フォーマット化データは、時間における絶対的なシーケンシングを含むのではなく、シーケンシングに対する制限を含む。
図8に示す第3の例では、プラットフォームは、とりわけPCタイプのコンピュータ内に存在するベクトル信号プロセッサと同様の、共通のメモリにリンクされた5つのプロセッサで構成されるベクトル信号プロセッサを備える。またこれらのプロセッサはすべて、パラメータ、およびとりわけ相関表を含むことのできる、小さいメモリにリンクされる。この構造では、各プロセッサがすべての特有操作を実施する。したがって、すべてのプロセッサは、実施されるすべての特有操作を記述したデータを含む同じINS命令セットを受け取る。
この例では、2つの特有操作のシーケンスが、表を使用して1つまたは複数の基本情報を修正することにある場合について考える。ここで、表は1つの単一場所にのみ存在し、したがってプロセッサはこれらの表を共有しなければならない。
すべてのプロセッサはサブオブジェクトの異なる基本情報に対して1つの同じ操作を同時に実施するので、プロセスの始めには、並列操作が実施されている。このプロセスを以下の表IIIによって例示する。
この表では、プロセス進行時間をT1、T2、......T18として示す。
Figure 0006085405
この表の最初の3つのラインでは、所与の時間Tiで、特有操作OPiが、各プロセッサProcA〜ProcEによって基本情報IE1〜IE5に対してそれぞれ実施されることがわかる。
表を使用する操作OP4に達したとき、アクセス問題に遭遇する。というのは、すべてのプロセッサが同時にこの表にアクセスすることはできないからである。したがって、プロセッサは、「自分の順番を待つ」こと、すなわち前のプロセッサが表の使用を終えて自分が表を使用できるようになるまで待機することを余儀なくされる。このため、操作OP4は、時間T4〜T8でプロセッサProcA〜ProcEによってそれぞれ実施される。操作OP5もまた表を使用すると仮定すると、同様にして以下の状況が生じることになる。すなわち、操作OP5は、時間T9〜T13でプロセッサProcA〜ProcEによってそれぞれ実施される。
これらの操作が実施されると、プロセスは通常どおり継続することができる。
このデバイスでは、いくつかの時間にいくつかのプロセッサが非アクティブであるため、得られる結果は、他の例よりも計算時間の点で効率が劣る。しかし、メモリサイズは縮小される。
正確なシーケンシングは、少なくとも部分的に、プラットフォーム上のコンパイラによって実施できることに留意することができる。この場合、特有フォーマット化データは、時間における絶対的なシーケンシングを含むのではなく、シーケンシングに対する制限を含む。
図9aに、サブオブジェクトの次元の1つに従ったいくつかの循環的連鎖を含むプラットフォームの一実施形態例を示す。この第1の例では、オブジェクトは2つの次元を有する画像であり、サブオブジェクトは4つの基本情報を含み、プラットフォームは、水平に4つのプロセッサと垂直に1つのプロセッサとの矩形に対応する4*1プロセッサのグリッドに従って配置された、4つのプロセッサを備える。これらのプロセッサを、左から右にP1、P2、P3、およびP4と呼ぶ。本方法はまた、この例では2つの待ち行列も適用する。
−水平待ち行列FHaが、入力でP4の出力に接続され、出力でプロセッサP1の入力に接続される。P1の出力はP2の入力に接続される。P2の出力はP3の入力に接続され、P3の出力はP4の入力に接続される。
−垂直待ち行列FVaが、入力でP1、P2、P3、およびP4の出力に接続され、出力でプロセッサP1、P2、P3、およびP4の入力に接続される。
−特有操作のシーケンスは、4つのプロセッサを100%使用しながら、任意の数量の水平フィルタFHを適用することができる。例えば、特有操作OS1の結果と、左における同じ特有操作OS1の結果との加算で構成されるフィルタの計算を実施する特有操作OS2の場合、プロセッサP4からの操作OS1の結果は、待ち行列FHaに配置され、後続のサブオブジェクトの計算中にP1上でOS2によって使用されることになる。プロセッサP3からの操作OS1の結果は、P4上のOS1の結果と共にP4上でOS2によって使用されるように、プロセッサP4に転送される。プロセッサP2からの操作OS1の結果は、P3上のOS1の結果と共にP3上でOS2によって使用されるように、P3に転送される。プロセッサP1からの操作OS1の結果は、P2上のOS1の結果と共にP2上でOS2によって使用されるように、プロセッサP2に転送される。前のサブオブジェクトの計算中にP4によって実施された操作OS1の結果は、待ち行列FHaから出力され、P1上のOS1の結果と共にP1上でOS2によって使用されるように、プロセッサP1に転送される。このシーケンスに関する別の操作OS3が別の水平フィルタを適用することができ、待ち行列を使用して正しい順序でデータが取り出される。
−必要に応じて変更を加えて、特有操作のシーケンスは、4つのプロセッサを100%使用しながら、任意の数量の垂直フィルタFVを適用することができる。
−最後に、特有操作のシーケンスは、4つのプロセッサを100%使用しながら、水平と垂直の両方の次元に従って分離不可能な任意の数量のフィルタFVHを適用することができる。例えば、1つの特有操作OS4からの4つの結果に適用される非分離型3×3フィルタは、FVaを2回プロンプトし、次いでFHaを6回プロンプトして、前に計算された4つのOS4結果を8セット入手し、現サブオブジェクトからのOS4結果のセットと結合されるようにすることができる。例えば、これらの非分離型フィルタは、垂直および/または水平フィルタと共に使用することができ、この2つの待ち行列は、データを正しい順序で取り出せるようにする。
2つのフィルタが適用されるとき、特有操作のシーケンスはしたがって、シーケンスとは別個の少なくとも2つの特有操作がそれぞれ、そのN回の適用中に少なくとも1回、別のサブオブジェクトの処理に使用される結果を生成するようなシーケンスである。別のサブオブジェクトの処理に使用される結果は、待ち行列(1つまたは複数)を介して移行する。
同様にして、図9bに第2の例を示すが、この例では、オブジェクトは2つの次元を有する画像であり、サブオブジェクトは4つの基本情報を含み、プラットフォームは、水平に2つのプロセッサと垂直に2つのプロセッサとの矩形に対応する2*2プロセッサのグリッドに従って配置された、4つのプロセッサを備える。これらのプロセッサを、左から右に、上のラインにあるものはP4およびP5、下のラインにあるものはP6およびP7と呼ぶ。本方法はまた、この例では2つの待ち行列も使用する。
−水平待ち行列FHbが、入力でP3およびP6の出力に接続され、出力でP1およびP4の入力に接続される。
−垂直待ち行列FVbが、入力でP4およびP5の出力に接続され、出力でP6およびP7プロセッサの入力に接続される。図9aの例でもまた、特有操作のシーケンスは、4つのプロセッサを100%使用しながら、任意の数量の垂直および/または水平および/または非分離型フィルタを適用することができる。
図9cに示す第3の例では、プラットフォームは、水平待ち行列FHcと垂直待ち行列FVcとに接続された単一のプロセッサP8を備える。この2つの待ち行列は、後で再使用されることになっている特有操作からの結果を記憶するためにプロセッサが使用することができる。
図9aの例でもまた、特有操作のシーケンスは、プロセッサを100%使用しながら、任意の数量の垂直および/または水平および/または非分離型フィルタを適用することができる。
本発明による、画像をサブオブジェクトに分解する例を示す図である。 本発明による、画像をサブオブジェクトに分解する例を示す図である。 本発明による、画像をサブオブジェクトに分解する例を示す図である。 本発明による、画像をサブオブジェクトに分解する例を示す図である。 本発明による、画像をサブオブジェクトに分解する例を示す図である。 本発明による、画像をサブオブジェクトに分解する例を示す図である。 いくつかのサブ処理操作のシーケンシングの例を示す図である。 本発明による方法を使用するデバイスを示す図である。 いくつかの論理ブロックと1つのパラメータとに適用される汎用操作のシーケンスの例を示す図である。 本発明による方法によって提供される特有フォーマット化データの構造を示す図である。 本発明による方法によって提供される特有フォーマット化データを受け取ることのできるプラットフォームの種々のアーキテクチャを示す図である。 本発明による方法によって提供される特有フォーマット化データを受け取ることのできるプラットフォームの種々のアーキテクチャを示す図である。 本発明による方法によって提供される特有フォーマット化データを受け取ることのできるプラットフォームの種々のアーキテクチャを示す図である。 本発明による方法によって提供される特有フォーマット化データを受け取ることのできるプラットフォーム中のプロセッサの連鎖の例を示す図である。 本発明による方法によって提供される特有フォーマット化データを受け取ることのできるプラットフォーム中のプロセッサの連鎖の例を示す図である。 本発明による方法によって提供される特有フォーマット化データを受け取ることのできるプラットフォーム中のプロセッサの連鎖の例を示す図である。

Claims (2)

  1. 少なくとも1つの次元を持つオブジェクトのサブオブジェクトのサブ処理を周期的にプラットフォーム(20)が開始するために、コンパイラが汎用フォーマット化データ(12)を前記プラットフォームに応じて特有フォーマット化データ(18)へと変換し、この特有フォーマット化データ(18)を前記プラットフォーム(20)が実行する方法であって、
    前記特有フォーマット化データはコードのサイズおよび/またはメモリのサイズおよび/または計算時間の点でプラットフォームに最適化される汎用操作シーケンスと、処理に必要とされるループを含み、
    前記汎用操作のシーケンスを含む特有フォーマット化データをコンパイラが作成する際の処理群についてはコンパイラによって制御された計算機が実行し、作成された特有フォーマット化データに含まれる特有操作をプラットフォームが実行する際の処理群はプラットフォームが実行し、
    前記オブジェクト(22)は同じ特質の基本情報で構成されており、各基本情報は少なくとも1つの数値で表され、
    前記特有フォーマット化データは前記汎用操作のシーケンスを記述しプログラミング言語で表現され、特定の基本情報の空間的または時間的な次元に従った相対位置を表現し、
    前記汎用操作のシーケンスは前記サブ処理を記述し、前記次元に従った少なくとも1つのフィルタを備え、前記フィルタには垂直フィルタおよび/または水平フィルタが適用され、
    前記プラットフォームは処理ユニットとメモリを備えた複数のプロセッサを備え、前記メモリは待ち行列であり、
    前記プロセッサはグリッドに従って配置され、前記サブオブジェクトの同じ1つの次元に従った循環的連鎖があり、前記待ち行列は同じ次元に従った全ての循環的連鎖に共有され、
    前記プラットフォームは前記基本情報をサブオブジェクトにグループ化するスクローリング・モードを決定し、
    前記プラットフォームは特有操作のシーケンスをサブオブジェクトの1つに適用することでサブ処理を周期的に開始し、
    前記特有操作のシーケンスは前記次元に従った相対位置を表現する少なくとも1つの特有操作を備え、
    更に上記の方法は以下のステップを含む。
    前記プラットフォームが前記汎用操作のシーケンスをコンパイラを用いて特有操作のシーケンスに変換するステップと、
    前記プラットフォームが汎用操作のシーケンスによって表される次元に従った論理ブロックの相対位置を特有操作のシーケンスによって表される次元に従った基本情報の相対位置に変換するステップと、
    前記プラットフォームが特有操作のシーケンスから成る特有フォーマット化データを記憶装置から読み出すステップと、
    前記プラットフォームがオブジェクトを重複することなく前記プロセッサの処理ユニット数の倍数に等しいサイズのサブオブジェクトに分解するステップと、
    前記プラットフォームが各T期間(Tは2つのサブ処理の2つの連続した開始の間の時間)の初めにサブ処理を始めるステップと、
    前記プラットフォームがt時点でのサブオブジェクトiに対し実行するのと同じ特有操作をt+k*T時点でのサブオブジェクトjに対し実行するステップ(kはゼロ以外の整数)と、
    前記待ち行列メモリを備えた複数のプロセッサが循環的に接続された循環的連鎖によって処理された特有操作の一組の結果を送信するステップと、
    前記プラットフォームが、サブ処理の間、前記特有操作の少なくとも一つの結果を格納するステップと、
    前記結果を特有なサブ処理に供給するステップ。
  2. 前記複数のプロセッサは4個のプロセッサから構成され、これら4個のプロセッサは4個が1列または2個が2列グリッドに従って配置され、各プロセッサは水平方向の次元に従って循環的連鎖し、この循環的連鎖の間で待ち行列が共用されている、請求項1に記載の方法。
JP2008545067A 2005-12-19 2006-12-19 ディジタルデータ処理のための方法およびシステム Expired - Fee Related JP6085405B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0553946A FR2895103B1 (fr) 2005-12-19 2005-12-19 Procede et systeme de traitement de donnees numeriques
FR0553946 2005-12-19
PCT/FR2006/051389 WO2007071883A2 (fr) 2005-12-19 2006-12-19 Procede et systeme de traitement de donnes numeriques

Publications (2)

Publication Number Publication Date
JP2009524854A JP2009524854A (ja) 2009-07-02
JP6085405B2 true JP6085405B2 (ja) 2017-02-22

Family

ID=37430519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008545067A Expired - Fee Related JP6085405B2 (ja) 2005-12-19 2006-12-19 ディジタルデータ処理のための方法およびシステム

Country Status (7)

Country Link
US (1) US8429625B2 (ja)
EP (1) EP1963971A2 (ja)
JP (1) JP6085405B2 (ja)
KR (1) KR101391465B1 (ja)
CN (1) CN101379468A (ja)
FR (1) FR2895103B1 (ja)
WO (1) WO2007071883A2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343040B2 (en) * 2001-07-12 2008-03-11 Do Labs Method and system for modifying a digital image taking into account it's noise
US9037961B1 (en) * 2006-09-18 2015-05-19 Credit Suisse Securities (Usa) Llc System and method for storing a series of calculations as a function for implementation in a spreadsheet application
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US20110289417A1 (en) * 2010-05-21 2011-11-24 Schaefer Diane E User interface for configuring and managing the cluster
US9134960B2 (en) * 2010-10-29 2015-09-15 International Business Machines Corporation Numerical graphical flow diagram conversion and comparison
CN102867002A (zh) * 2011-07-05 2013-01-09 北大方正集团有限公司 电子文件的处理方法和装置
CN103785173A (zh) * 2014-03-06 2014-05-14 苏州运智互动科技有限公司 Android系统双体感外设数据区分获取方法
US10255547B2 (en) 2014-12-04 2019-04-09 Nvidia Corporation Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system
US9749548B2 (en) 2015-01-22 2017-08-29 Google Inc. Virtual linebuffers for image signal processors
US10095479B2 (en) 2015-04-23 2018-10-09 Google Llc Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure
US9965824B2 (en) 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
US9772852B2 (en) 2015-04-23 2017-09-26 Google Inc. Energy efficient processor core architecture for image processor
US10291813B2 (en) 2015-04-23 2019-05-14 Google Llc Sheet generator for image processor
US9769356B2 (en) 2015-04-23 2017-09-19 Google Inc. Two dimensional shift array for image processor
US9756268B2 (en) 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor
US9785423B2 (en) 2015-04-23 2017-10-10 Google Inc. Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure
CN105516033A (zh) * 2015-07-23 2016-04-20 中国电子科技集团公司第四十一研究所 一种基于频谱分析仪的模拟信号解调与分析方法
US9830150B2 (en) 2015-12-04 2017-11-28 Google Llc Multi-functional execution lane for image processor
US10313641B2 (en) 2015-12-04 2019-06-04 Google Llc Shift register with reduced wiring complexity
US10204396B2 (en) 2016-02-26 2019-02-12 Google Llc Compiler managed memory for image processor
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US10380969B2 (en) 2016-02-28 2019-08-13 Google Llc Macro I/O unit for image processor
KR101763827B1 (ko) * 2016-04-07 2017-08-02 주식회사 라이프시맨틱스 블록체인 기반 의료데이터전송시스템, 방법 및 프로그램
US20180007302A1 (en) 2016-07-01 2018-01-04 Google Inc. Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US20180005346A1 (en) 2016-07-01 2018-01-04 Google Inc. Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US10546211B2 (en) 2016-07-01 2020-01-28 Google Llc Convolutional neural network on programmable two dimensional image processor
US20180005059A1 (en) 2016-07-01 2018-01-04 Google Inc. Statistics Operations On Two Dimensional Image Processor
US10467142B1 (en) * 2019-05-07 2019-11-05 12 Sigma Technologies Enhancement of real-time response to request for detached data analytics

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69108900D1 (de) * 1990-01-30 1995-05-18 Johnson Service Co Vernetztes betriebsmittelverwaltungssystem.
US5655130A (en) * 1994-10-14 1997-08-05 Unisys Corporation Method and apparatus for document production using a common document database
US5860072A (en) * 1996-07-11 1999-01-12 Tandem Computers Incorporated Method and apparatus for transporting interface definition language-defined data structures between heterogeneous systems
US5857100A (en) * 1996-09-03 1999-01-05 Insession Inc. System, method and article of manufacture for extending externalization for universal transaction processing
US6014702A (en) * 1997-06-04 2000-01-11 International Business Machines Corporation Host information access via distributed programmed objects
WO1999052040A1 (en) * 1998-04-08 1999-10-14 Stellar Technologies, Ltd. Architecture for graphics processing
US6988271B2 (en) * 1998-10-02 2006-01-17 Microsoft Corporation Heavyweight and lightweight instrumentation
US7039919B1 (en) * 1998-10-02 2006-05-02 Microsoft Corporation Tools and techniques for instrumenting interfaces of units of a software program
US20020147969A1 (en) * 1998-10-21 2002-10-10 Richard A. Lethin Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
GB0107882D0 (en) * 2001-03-29 2001-05-23 Ibm Parsing messages with multiple data formats
EP1523730B1 (fr) * 2001-07-12 2009-03-25 DO Labs Procede et systeme pour calculer une image transformee a partir d'une image numerique
US7343040B2 (en) * 2001-07-12 2008-03-11 Do Labs Method and system for modifying a digital image taking into account it's noise
FR2827459B1 (fr) * 2001-07-12 2004-10-29 Poseidon Procede et systeme pour fournir a des logiciels de traitement d'image des informations formatees liees aux caracteristiques des appareils de capture d'image et/ou des moyens de restitution d'image
US7191404B2 (en) * 2002-01-14 2007-03-13 International Business Machines Corporation System and method for mapping management objects to console neutral user interface
US7565660B2 (en) * 2002-09-26 2009-07-21 Siemens Energy & Automation, Inc. System and method for universal extensibility that supports a plurality of programmable logic controllers
JP4487479B2 (ja) * 2002-11-12 2010-06-23 日本電気株式会社 Simd命令シーケンス生成方法および装置ならびにsimd命令シーケンス生成用プログラム
WO2004072796A2 (en) * 2003-02-05 2004-08-26 Arizona Board Of Regents Reconfigurable processing
US20040187090A1 (en) * 2003-03-21 2004-09-23 Meacham Randal P. Method and system for creating interactive software
US7987455B1 (en) * 2003-07-23 2011-07-26 International Business Machines Corporation System and method of command processing
US7647580B2 (en) * 2004-09-07 2010-01-12 Microsoft Corporation General programming language support for nullable types
US7694288B2 (en) * 2005-10-24 2010-04-06 Analog Devices, Inc. Static single assignment form pattern matcher
US8117587B1 (en) * 2008-06-03 2012-02-14 Richard Paul Testardi Microcontroller-resident software development environment supporting application-level asynchronous event handling, interactive debugging and pin variables for embedded systems

Also Published As

Publication number Publication date
KR20080087840A (ko) 2008-10-01
JP2009524854A (ja) 2009-07-02
US8429625B2 (en) 2013-04-23
WO2007071883A3 (fr) 2007-08-16
FR2895103A1 (fr) 2007-06-22
EP1963971A2 (fr) 2008-09-03
KR101391465B1 (ko) 2014-05-26
CN101379468A (zh) 2009-03-04
US20090228677A1 (en) 2009-09-10
FR2895103B1 (fr) 2008-02-22
WO2007071883A2 (fr) 2007-06-28

Similar Documents

Publication Publication Date Title
JP6085405B2 (ja) ディジタルデータ処理のための方法およびシステム
JP5025658B2 (ja) プラットフォームおよびこのプラットフォームを用いた処理方法
US10776126B1 (en) Flexible hardware engines for handling operating on multidimensional vectors in a video processor
US10754657B1 (en) Computer vision processing in hardware data paths
JP5254030B2 (ja) ディジタル処理手段にデータを提供する方法
JP2002171401A (ja) 間引き演算命令を備えたsimd型演算装置
US7382937B2 (en) Method and apparatus for re-constructing high-resolution images
US5555321A (en) Image data binary coding method and apparatus
JP2006107532A (ja) 情報処理システムおよび情報処理方法
US6938105B2 (en) Data apparatus and method having DMA circuitry to efficiently transfer multivalued bit-plane data
CN112001975B (zh) 图像数据转换方法及相关设备、装置
US8391620B2 (en) Image processing apparatus, image forming apparatus and image processing method
Parhi et al. Folded VLSI architectures for discrete wavelet transforms
KR100879896B1 (ko) 밴드 인터리브 포맷으로부터 밴드 분할 포맷으로의 포맷변환 장치
US8395630B2 (en) Format conversion apparatus from band interleave format to band separate format
Wetzel et al. Automatic code generation in the polytope model
JPS63102467A (ja) 画像デ−タ解像度変換装置
Rusnak Design and implementation of arithmetic coder for CUDA platform
JP2002108843A (ja) 離散コサイン変換・逆離散コサイン変換手法及びその装置
WO2001052183A1 (en) Method and apparatus to transform specification of functions for processing grid-structured data
Urriza et al. VLSI implementation of Discrete Wavelet Transform for lossless compression of medical images
JPH1169354A (ja) 画像符号化装置および画像復号化装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120425

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120507

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120601

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121009

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130107

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130207

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130808

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20131016

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20131129

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150914

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151014

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151215

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20160215

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20160219

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20161202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20161202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170130

R150 Certificate of patent or registration of utility model

Ref document number: 6085405

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees