【課題を解決するための手段】
【0017】
本発明は、Q個のプロセッサと少なくとも1つのメモリとを備える所定のプラットフォームに特有フォーマット化データを直接的または間接的に提供することに鑑みて、汎用フォーマット化データを処理する方法に関し、汎用フォーマット化データ中では、第1のデータが、どんなループもない汎用操作のシーケンスを記述し、このプラットフォームは、同じタイプの基本情報で構成されたオブジェクトを特有フォーマット化データに従って処理するようになっており、各基本情報は少なくとも1つの数値で表される。
【0018】
本方法は、
−汎用操作のシーケンスをプラットフォームに従って特有操作に変換するステップと、
−オブジェクトのトポロジに従って、かつ第1のデータから独立して、処理に必要とされるループのセットを決定するステップと、
−特有操作のシーケンスとこのように決定されたループとを含む特有フォーマット化データを計算し、汎用フォーマット化データに準拠するオブジェクトの処理を直接的または間接的に可能にするステップとを含み、シーケンスは、コードのサイズおよび/またはメモリのサイズおよび/または計算時間の点で、プラットフォームに最適化される。
【0019】
特有フォーマット化データは、このように決定された特有操作のシーケンスを含む。
【0020】
従来、コンパイラを使用して、ループと表とを含む操作シーケンスを変換することが知られており、
−変換は、1つの同じループ反復内での、およびあるループ反復から他のループ反復への内の、操作間のリンクを記述したグラフを使用し、特に、表の要素の1つへのアクセスの索引に対する依存を使用する。
【0021】
−変換は、既存のループを修正する最適化を含む。
【0022】
−変換は、プラットフォームの特性に適応するために、表の構成を修正するステップ、および/または表を使用する操作を修正するステップを含む。
【0023】
使用される汎用操作のシーケンス(第1および第2データのタイプ)の特性は、以下のことを可能にする。
【0024】
−操作、および操作のグラフによるループの依存を除去する。
【0025】
−使用される汎用操作のシーケンスは、表も、表要素へのアクセスの索引も利用せず、特に、本発明による方法またはシステムは、表の構成を修正するステップ、および/または表を使用する操作を修正するステップを含まない。
【0026】
したがって本発明は、各操作シーケンスに対するループの特有の最適化、またはグラフの使用を必要とせずに、Q個のプロセッサを100%使用する最適なコードを直接生成することを可能にする。この特性は、特に得難いものである。本発明は、以下によって100%に達することを可能にする。
【0027】
−第1のデータから独立したループの構成。
【0028】
−表の形ではないが、例えば後述するような待ち行列の形の、メモリ中のデータの構成。
【0029】
−後述するような計算ユニットと待ち行列とを含む連鎖の使用。
【0030】
−例えば、文書”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%に達することを可能にする。
【0031】
本発明はまた、サブオブジェクトのサイズにかかわらず1度に1つのサブオブジェクトずつデータを処理するように適応されたスクローリングモードに従って基本情報を処理できるようにすることによって、メモリ使用の大幅な削減を可能にし、それにより、画像の場合に、ブロックに対する処理操作の開始前に多量のラインを記憶するのを回避する。
【0032】
次に、汎用操作のシーケンスを特有操作のシーケンスに変換する例について述べる。この例では、
−オブジェクトは2つの単色水平垂直次元の画像であり、基本情報は1つの単一数値で表される。
【0033】
−汎用操作のシーケンスは次のとおりである。
【0034】
○3*1垂直F1フィルタを適用し、続いて1*3水平F2フィルタを適用する。
【0035】
−特有操作シーケンスは、以下の特有操作シーケンスに変換される。
【0036】
○入力待ち行列から得られたサブオブジェクトをR1に記憶する。
【0037】
○F1.C1*R1を計算し、結果をR2に記憶する。
【0038】
○UP(R1)を実施し、結果をR1に記憶する。
【0039】
○F1.C2*R1を計算し、結果をR2に記憶する。
【0040】
○UP(R1)を実施し、結果をR1に記憶する。
【0041】
○F1.C3*R1を計算し、結果をR2に記憶する。
【0042】
○F2.C1*R2を計算し、結果をR3に記憶する。
【0043】
○LEFT(R2)を計算し、結果をR2に記憶する。
【0044】
○F2.C2*R2を計算し、結果をR3に記憶する。
【0045】
○LEFT(R2)を計算し、結果をR2に記憶する。
【0046】
○F2.C3*R2を計算し、結果をR3に記憶する。
【0047】
−R1、R2、およびR3は、サブオブジェクトに関するN個の基本情報、または、1つの同じサブオブジェクトの処理中に1つの同じ特有操作から得られたNを記憶するのにそれぞれ使用されるレジスタである。
【0048】
−F1.C1、F1.C2、およびF1.C3は、フィルタF1の係数に対応するパラメータである。
【0049】
−F2.C1、F2.C2、およびF2.C3は、フィルタF2の係数に対応するパラメータである。
【0050】
−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中で読み取られたデータを受け取る。
【0051】
−UP(R2)は、以下にさらに述べるように、QueueV待ち行列を含む垂直次元に従った連鎖を使用することによって実施することができる。
【0052】
○サブオブジェクトが、水平に配置された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中で読み取られたデータを受け取る。
【0053】
この例では、汎用操作のシーケンスを特有操作のシーケンスに変換することは、以下に定義するスクローリングモードから独立している。次いで、スクローリングモード(24)を、プラットフォーム(22)のアーキテクチャに従って、またオブジェクトのトポロジに従って、かつ第1のデータから独立して、このプラットフォーム中の基本情報に対して決定することができ、このスクローリングモードの決定は、
−基本情報をサブオブジェクトにグループ化することであって、各サブオブジェクトはプラットフォームに従って決定される数量Nの基本情報を含み、プラットフォーム中での処理はサブ処理操作を周期的に開始することにあり、サブ処理操作は特有操作のシーケンスをサブオブジェクトの1つに適用することにあることと、
−プラットフォームに従って決定される、サブオブジェクトの形およびオーバーレイと、
−プラットフォームに従って決定される、サブオブジェクトの処理順序との選択および/または計算を含む。
【0054】
好ましくは、ループのセットを決定することは、各ループの範囲と、ループのセットの埋込みと、オブジェクトに従って決定される反復量とを決定することを意味する。例えば、水平と垂直の2つの次元を有する画像であり、Q=4であり、4つのプロセッサが1つの同じラインからの4つの連続したピクセルを処理する場合、以下のループを決定することができる。
【0055】
−ラインごとに上から下へ。
【0056】
−4ピクセルのグループごとに左から右へ。
【0057】
−4つのプロセッサ上で同時に同じ特有操作を実施することによって、4ピクセルのグループに対して特有操作のシーケンスを実施する。
【0058】
この例では、反復量は画像のサイズに依存する。しかし、処理操作に必要とされるループのセットは、プラットフォームのアーキテクチャおよびオブジェクトのトポロジに従って、かつ第1のデータから独立して決定されている。例えば、ループは、以下の汎用操作シーケンスのいずれか1つに使用することができる。
【0059】
−3*1垂直F1フィルタを適用し、続いて1*3水平F2フィルタを適用する。
【0060】
−定数3を基本情報に加える。
【0061】
−または他の任意の汎用操作シーケンス。
【0062】
本発明によれば、ループは、次に挙げるものに限定しないがとりわけ、ある回数にわたって実行されるループ、条件が検証されたならば実行されるループ、条件が検証されるまで実行されるループ、一般に、ループに関する1つまたは複数の出力条件にリンクされた反復実行、とすることができる。
【0063】
次に、本発明による待ち行列の概念を定義する。
【0064】
待ち行列は、基本情報、または特有操作からの結果を、送出および/または記憶するのに使用される。
【0065】
待ち行列は、メモリを備えるかまたは使用することができる。
【0066】
待ち行列は、FIFO(先入れ先出し)タイプの1つまたは複数のプロセスを使用して実現することができる。
【0067】
待ち行列は、少なくとも1つの入力および少なくとも1つの出力を備える。
【0068】
−待ち行列は、任意の手段を介して入力計算ユニットおよび出力計算ユニットに動作可能に接続させることができる。
【0069】
−待ち行列はまた、任意の手段を介してPR入力計算ユニットおよびPR出力計算ユニットに動作可能に接続させることができ、この場合、待ち行列は、それぞれが入力計算ユニットを出力計算ユニットにリンクするPR待ち行列のように挙動する。
【0070】
好ましくは、待ち行列は、いくつかのデータフラックスを独立して管理するのに使用することができ、各フラックスは所定の特有操作に関連する。
【0071】
一実施形態では、待ち行列中で読取りと書込みを同時に行うことが可能である。
【0072】
好ましくは、待ち行列は、少なくとも1つのメモリユニットを使用して、各フラックスにつき同一数量NFのデータを記憶する。
【0073】
好ましくは、NFは、サブオブジェクトの相対的な配置およびスクローリングモードに従って決定され、それにより、データを生成するサブオブジェクトの処理と、同じデータを使用するサブオブジェクトの処理との間で、NF−1個のサブオブジェクトが処理される。
【0074】
好ましくは、計算ユニットと待ち行列とを含む連鎖は、ブート操作の管理を可能にする機構を含む。待ち行列は、定期的に、例えば待ち行列が水平連鎖の一部でありオブジェクトが画像である場合は各ラインの最初に、初期化される。待ち行列がNF個のデータを含まないならば、連鎖中で待ち行列に続くプロセッサは、出力において送出するデータを入力として取る。次に、連鎖中で待ち行列に続くプロセッサは、待ち行列中で最も古いデータを入力において取り、これを待ち行列から除去する。
【0075】
好ましくは、待ち行列は、待ち行列に入力されたときと同じ順序でデータを出力することを可能にする。
【0076】
好ましくは、循環的連鎖は一方向である。好ましくは、循環的連鎖は、計算ユニットごとに、入力に1つの単一リンクがあり、出力に1つの単一リンクがあるような連鎖である。
【0077】
このように、少なくとも1つの待ち行列の使用により、少なくとも1つの他のサブオブジェクトの計算で必要とされる特有操作からの結果を送出することができる。
【0078】
この記述では、汎用フォーマット化データは、データ処理プラットフォームによってオブジェクトに対して実施されることになる処理操作を、プラットフォーム自体から独立して記述するのに使用されるディジタルデータである。本発明では、処理オブジェクトは、同じタイプの基本情報のセットに対応する。これらのオブジェクトは、例えば画像、ディジタルオーディオ、ビデオ、さらにはシミュレーションデータですらある。
【0079】
一実施形態では、汎用フォーマット化データは第2のデータを含み、第2のデータは、とりわけ空間的および/または時間的な、オブジェクトの次元の少なくとも1つに従った、相互との関係におけるブロックおよび/またはパラメータの相対位置を参照し、かつ/あるいは、とりわけ空間的および/または時間的な、オブジェクトの次元の少なくとも1つに従った、相互との関係における論理ブロックおよび/またはパラメータの相対スケールを参照する。
【0080】
一実施形態では、オブジェクトおよびサブオブジェクト、ならびに論理ブロックは、いくつかの次元を有する。
【0081】
サブオブジェクトおよび論理ブロックの次元は、オブジェクトの次元のすべてまたは一部に対応する。次元は種々のタイプとすることができ、とりわけ以下のタイプである。
【0082】
−空間的。例えば、距離、角度、または、メッシュ中でのスクローリング。
【0083】
−時間的。
【0084】
−周波数。例えば、色、周波数、周波数帯。
【0085】
−位相。
【0086】
−ベクトル空間基底に従った分解。例えば、ウェーブレットへの分解、または高バイトおよび低バイトへの分解。
【0087】
−一般に、任意のトポロジの任意の空間の次元。
【0088】
以下の非網羅的なリストに、オブジェクトの例をその次元と共に提供する。
【0089】
−2つの次元を有する静止画。各次元は、距離、とりわけピクセルで測定される距離に対応する。
【0090】
−2つの次元を有する未処理静止画。各次元は距離に対応し、各ピクセルには色、例えば赤、緑、または青が備わる。
【0091】
−2つの次元を有する静止カラー画像。各次元は距離に対応し、一方の次元はカラーチャネルを表す周波数、例えば赤/緑/青を表す周波数に対応する。
【0092】
−3つの次元を有する動画。次元のうちの2つは、距離、とりわけピクセルで測定される距離に対応し、1つは時間に対応する。
【0093】
−3つの次元を有するレリーフ画像。次元は距離に対応する。
【0094】
−3つの次元を有するレリーフ画像。次元のうちの2つは距離に対応し、第3の次元は視野角に対応する。
【0095】
−距離次元およびおそらくチャネル次元を有する医療画像。
【0096】
−視野角次元を有するホログラム。
【0097】
−より一般的に、距離および/または角度および/または時間および/または周波数の次元を有する画像。
【0098】
−時間に対応する次元を有する音声。
【0099】
−時間およびチャネルに対応する2つの次元を有する音声。
【0100】
−時間、およびおそらく周波数、およびおそらく空間における位置、または角度に対応する1つまたは複数の次元を有する被変調信号。
【0101】
−1つまたは複数の次元に従って配置された基本情報の形の、信号変調および復調、測定、データの分析、データベース索引付けまたは検索、コンピュータによる閲覧、グラフィック処理、シミュレーション。
【0102】
−より一般的に、1つまたは複数の次元を有するオブジェクト。
【0103】
本発明では、オブジェクトの基本情報は、絶対的な位置および/またはスケールを有することができ、これらはとりわけ、空間および/または時間および/または周波数によるものとすることができるが、同様に、オブジェクトの次元の少なくとも1つ、ならびに他の任意の空間、とりわけウェーブレットで構成された空間に従ったものとすることもできる。
【0104】
−「オーディオ」オブジェクトに関する基本情報は、強度に対応することができる。この場合、基本情報は、時間における所与の瞬間に対応する絶対位置を有し、複数チャネル音声の場合は、所与のチャネルに対応する絶対位置を有する。
【0105】
−「画像」オブジェクトに関する基本情報は、ピクセルに対応することができる。この場合、基本情報は、画像中の位置に対応する絶対位置を有し、ビデオ画像の場合は、時間における所与の瞬間に対応する絶対位置を有する。
【0106】
−「データシミュレーション」オブジェクトに関する基本情報は、ステータスに対応することができる。この場合、基本情報は、メッシングノードと、時間における所与の瞬間とに対応する絶対位置を有する。
【0107】
−「被変調信号」オブジェクトに関する基本情報は、強度および/または位相に対応することができる。この場合、基本情報は、時間における所与の時点に対応する絶対位置を有し、おそらく、複数のアンテナまたは送信機が使用される場合は、所与の周波数および/または所与の位置に対応する絶対位置を有する。
【0108】
基本情報は、処理される情報の要素であり、1つまたは複数の数値で表される。この情報は、8ビット符号化、10ビット符号化、さらには16ビット符号付き符号化など、様々なタイプの符号化に従って符号化することができる。例えばオブジェクトが画像である場合、基本情報はこの画像のピクセルとなる。
【0109】
オブジェクトは、デモザイキング操作前の未処理画像(「生」タイプのもの)とすることができる。この場合、
−一代替形態では、基本情報は、ピクセルの絶対位置に従って例えば赤、緑、または青に対応する数値で表されるピクセルである。
【0110】
−別の代替形態では、基本情報は、1ピクセル当たり1数値で表されるピクセルのグループ(例えば2*2の緑、赤、および青のピクセルのグループ。緑は「バイエル(Bayer)」に対応する)である。
【0111】
オブジェクトは可視画像とすることもでき、この場合、基本情報は、例えば3つの数値で表されるピクセルであり、各数値は色、例えば赤、緑、および青を表す。
【0112】
オブジェクトは画像のシーケンス、とりわけ未処理または可視画像のシーケンスとすることもでき、この場合、基本情報は、画像シーケンスからの画像のピクセルである。したがって、オブジェクトは例えばビデオに対応する。
【0113】
オブジェクトが画像である場合、画像は、画像取込みデバイスから受け取ることができ、かつ/または画像レンダリングデバイスに向けることができる。
【0114】
−画像取込みデバイスは、例えば使い捨てカメラ、ディジタルカメラ、レフレックスカメラ(ディジタルまたは非ディジタル)、スキャナ、ファクス、内視鏡、ビデオカメラ、カムコーダ、監視カメラ、玩具、電話機またはパーソナルアシスタントまたはコンピュータに統合されたかリンクされたビデオカメラまたはカメラ、サーマルカメラ、超音波マシン、MRI(磁気共鳴)撮像ユニット、X線撮影ユニットである。
【0115】
−画像レンダリングデバイスは、例えばスクリーン、プロジェクタ、テレビジョン、仮想現実ゴーグル、またはプリンタである。
【0116】
−画像取込みおよび画像レンダリングデバイスは、例えばスキャナ/ファクス/プリンタ、小型写真印刷ラボ、ビデオ会議デバイスである。
【0117】
処理プラットフォームは、適用例に応じて種々の形をとることができる。例えば、オブジェクトが画像である場合に、とりわけ処理プラットフォームが以下のデバイスの1つに統合された場合について列挙する。
【0118】
−処理済み画像を生成する画像取込みデバイス。例えば、処理プラットフォームを統合したディジタルカメラ。
【0119】
−処理済み画像を表示または印刷する画像レンダリングデバイス。例えば、処理プラットフォームを備えるビデオプロジェクタまたはプリンタ。
【0120】
−これらの要素上の欠陥を訂正する混合デバイス。例えば、処理プラットフォームを備えるスキャナ/プリンタ/ファクス。
【0121】
−処理済み画像を生成するプロ用画像取込みデバイス。例えば、処理プラットフォームを備える内視鏡。
【0122】
処理プラットフォームは、完全にまたは部分的にサーバ上に移すことができる。
【0123】
プラットフォーム中でオブジェクトに施されることになる処理は、例えば画像処理、データ圧縮および圧縮解除、オーディオ処理、信号変調および復調、測定、データ分析、データベース索引付けまたは検索、コンピュータによる閲覧、グラフィック処理、シミュレーションなど様々な分野、あるいは多量のデータを使用する任意の分野に介入することのできる、1つまたは複数の汎用操作シーケンスによって記述されるアルゴリズムに対応する。汎用操作は、サイズ、形、時間の概念を伴わない論理ブロックすなわち抽象エンティティに適用される操作である。
【0124】
汎用操作は、論理ブロックを生成することができる。好ましくは、少なくとも1つの論理ブロックは、処理されるオブジェクトに対応する。
【0125】
さらに、一実施形態では、本方法は、オブジェクトのトポロジに従って、かつ第1のデータから独立して、プラットフォーム中の基本情報に対するスクローリングモードを決定するステップを含み、このスクローリングモードの決定は、
−サブオブジェクトにおける基本情報のグループであって、各サブオブジェクトはプラットフォームに従って決定される数量Nの基本情報を含み、プラットフォーム中での処理はサブ処理操作を周期的に開始することにあり、サブ処理操作は特有操作のシーケンスをサブオブジェクトに適用することにあることと、
−プラットフォームに従って決定される、サブオブジェクトの形およびオーバーレイと、
−プラットフォームに従って決定される、サブオブジェクトの処理順序との選択および/または計算を含む。
【0126】
処理に必要なループのセットを決定すること、および/または特有操作シーケンスを計算することにある前述のステップは、このスクローリングモードを反映する。
【0127】
例えば、水平と垂直の2つの次元を有する画像であり、プラットフォームのアーキテクチャがQ=4である場合、1つの同じラインの4つの連続したピクセルを処理することのできる4つのプロセッサ中で、以下のスクローリングモードを決定することができる。
【0128】
−基本情報を、1つの同じラインからの4つの連続したピクセルのサブオブジェクトにグループ化する。サブオブジェクトはオーバーレイされない。
【0129】
−サブオブジェクトを、ラインごとに上から下へ、ライン内で左から右へといった順序で処理する。
【0130】
−対応するループを決定する。
【0131】
○ラインごとに上から下へ。
【0132】
○4ピクセルのグループごとに左から右へ。
【0133】
○4つのプロセッサ上で同時に同じ特有操作を実施することによって、4ピクセルのグループに対して特有操作のシーケンスを実施する。
【0134】
この例では、スクローリングモードは、プラットフォームのアーキテクチャおよびオブジェクトのトポロジに従って、かつ第1のデータから独立して決定されている。例えば、スクローリングモードは、以下の汎用操作シーケンスのいずれか1つと適合する。
【0135】
−3*1垂直F1フィルタを適用し、続いて1*3水平F2フィルタを適用する。
【0136】
−定数3を基本情報に加える。
【0137】
−または他の任意の汎用操作シーケンス。
【0138】
好ましくは、各サブオブジェクトの処理は、Q個のプロセッサにわたって分散され、各プロセッサは、特有操作シーケンスからの少なくとも1つの特有操作IS8を実施する。したがって、すべてのプロセッサは、各サブオブジェクトに使用され、1つの単一プロセッサは、サブオブジェクトのセットに使用される。したがって、サブオブジェクトをプロセッサに割り当てる必要はない。
【0139】
好ましくは、サブオブジェクトを処理するために特有操作がプロセッサによって実施されるとき、同じ特有操作がまた、他のすべてのサブオブジェクトを処理するために同じプロセッサによって実施される。したがって処理は規則的である。特有操作はプロセッサに割り当てられ、次いで各サブオブジェクトのサブ処理操作のために周期的に実施される。
【0140】
好ましくは、処理に必要なループのセットは、オブジェクトのトポロジおよびプラットフォームに依存するが、特有操作のシーケンスから独立している。
【0141】
好ましくは、ループは、特有操作の完全なシーケンスの周りで相互の中に埋め込まれる。このようにして、ループは特有操作のシーケンス全体をカプセル化し、特有操作のシーケンスは、それぞれがループに囲まれたサブシーケンスに分割されることはない。同様にして、完全なオブジェクトを記憶する必要も、特有操作の結果のセットを記憶する必要もなしに、ただ別のサブオブジェクトの処理に必要な結果を一時的に記憶するだけで、サブオブジェクトを同時に処理することによってオブジェクトを処理することができる。したがってメモリ使用が削減される。
【0142】
好ましくは、サブオブジェクトは、連続した基本情報で構成される。このため、少なくとも1つの待ち行列を含むプロセッサの連鎖を実施することが可能である。
【0143】
一実施形態では、N個の基本情報のサブオブジェクトを処理するために、シーケンスの各特有操作が総計N回実施され、Q個のプロセッサそれぞれにつきN/Q回実施される。特有操作のシーケンスが条件付き接続を含む場合、各プロセッサは、これらの条件付き接続を反映するシーケンスの部分を実施する。
【0144】
一実施形態では、サブオブジェクトは、少なくとも1つの次元に従ってオーバーレイされない。したがって、あるサブオブジェクトの処理中に生成された少なくとも1つの特有操作結果が、別のサブオブジェクトの処理中に使用される。
【0145】
好ましくは、サブオブジェクトは、どんな次元に従ってもオーバーレイされない。したがって、各プロセッサは、計算を繰り返さずに100%使用することができる。
【0146】
好ましくは、特有操作のシーケンスは、シーケンスのうちの少なくとも1つの特有操作kが、そのN回の適用中に少なくとも1回、別のサブオブジェクトの処理に使用される結果を生成するようなシーケンスである。
【0147】
好ましくは、サブオブジェクトの同じ1つの次元に従ったいくつかの循環的連鎖がある場合(とりわけプロセッサがグリッドに従って配置されているとき)、待ち行列は、同じ次元に従ったすべての循環的連鎖間で共有される。好ましくは、サブオブジェクトの各次元につきちょうど1つの待ち行列があり、各待ち行列は、同じ次元に従ったすべての循環的連鎖間で共有される。したがって、プロセッサ間の通信は特に単純である。したがって、メモリの構成は特に単純である。
【0148】
本発明によれば、サブ処理操作を周期的に開始することは、必ずしも正確に定期的な間隔で行うことを意味せず、計算に必要とされるデータの同期およびメモリへのアクセスは、周期を変動させやすい。
【0149】
一実施形態では、NはQの倍数ではない。この実施形態の一代替形態では、Qは、汎用操作のシーケンスを変換することによって得られるシーケンスの特有操作の数量に等しい。
【0150】
一実施形態では、NはQの倍数である。これにより処理は規則的になる。好ましくは、N=Qである。これにより、一時的な結果を記憶するのに必要とされるメモリの量が削減される。
【0151】
一実施形態では、Q=1およびN=4である。これにより、1つの同じ特有操作を複数回適用するのに、同じパラメータ値を再使用することができる。
【0152】
一実施形態では、Q>1およびN=Qである。これにより、ベクトル信号プロセッサのQ個の計算ユニットを100%使用することができる。
【0153】
一実施形態では、Q>1であり、NはQの倍数である。これにより、ベクトル信号プロセッサのQ個の計算ユニットを100%使用することができ、サブオブジェクトの処理中に実施され別のサブオブジェクトの処理に使用される特有操作からの結果の数量を削減することができる。
【0154】
データが記憶されるメモリスロットは、例えば、このデータが再使用されることになる時に依存する。したがって、データは、レジスタ、高速アクセスメモリ、さらには低速メモリにすら記憶することができる。
【0155】
一実施形態では、スクローリングモードの決定は、特有操作のシーケンスのうち、どの特有操作(1つまたは複数)が各プロセッサによって実施されるかを決定するステップを含み、各操作は各サブオブジェクトに少なくともN回適用され、各特有操作は、そのN回の適用中に、それぞれ少なくとも1回、サブオブジェクトの基本情報を直接的および/または間接的に適用して、ちょうどN個の結果を生成する。さらに、本方法は、このように決定された情報を特有フォーマット化データに加えるステップを含む。
【0156】
一実施形態では、各プロセッサは、特有操作のシーケンスのすべての操作を実施する。
【0157】
サブ処理操作は周期的に開始されるが、好ましくは、所与のプロセッサによって実施される特有操作は、各周期で同じである。
【0158】
一実施形態では、スクローリングモードの決定は、周期の相対時間ごとに、特有操作のシーケンスからどの特有操作(1つまたは複数)が各プロセッサによって実施されるかを決定するステップを含み、各操作は各サブオブジェクトに少なくともN回適用され、各特有操作は、そのN回の適用中に、それぞれ少なくとも1回、サブオブジェクトの基本情報を直接的および/または間接的に適用して、ちょうどN個の結果を生成する。さらに、本方法は、このように決定された情報を特有フォーマット化データに加えるステップを含む。一実施形態では、すべてのプロセッサが、同じ特有操作を同時に実施する。別の実施形態では、すべてのプロセッサが、同じ特有操作を連続して実施し、これは再帰型フィルタの実施を可能にする。
【0159】
別の実施形態では、特有操作のシーケンスは、シーケンスとは別個の少なくとも2つの特有操作がそれぞれ、そのN回の適用中に少なくとも1回、別のサブオブジェクトの処理に使用される結果を生成するようなシーケンスである。
【0160】
本方法はまた、特有操作および決定されたスクローリング方法に従って、特有フォーマット化データを計算するステップを含む。
【0161】
2つの論理ブロックの相対スケールおよび相対位置の概念は、限定しないがとりわけ以下に挙げることを可能にする。
【0162】
−いくつかの論理ブロックの結合、および/または、
−スケールの変更、
−および/または、近傍に対するフィルタの生成、
−および/または、表現の変更。
【0163】
本発明では、論理ブロックは、汎用操作に従ったいくつかのタイプのものである。例えば、オブジェクトが画像である場合、
−少なくとも1つの論理ブロックは「未処理」タイプであり、かつ/または、
−少なくとも1つの論理ブロックは赤タイプであり、かつ/または、
−少なくとも1つの論理ブロックは緑タイプであり、かつ/または、
−少なくとも1つの論理ブロックは青タイプであり、かつ/または、
−少なくとも1つの論理ブロックは8ビットデータで表すことができ、かつ/または、
−少なくとも1つの論理ブロックは16ビットデータで表すことができ、かつ/または、
−少なくとも1つの論理ブロックはnビット、例えば10や12ビットのデータで表すことができる。
【0164】
一実施形態では、少なくとも1つの論理ブロックは、複数スケールデータ、例えばスケール1、1/2、1/4、および1/8のデータを含む。これにより、汎用操作をいくつかのスケールで実施して、その後、結果を結合することが可能になる。
【0165】
アルゴリズムは、例えば、オブジェクトが画像である場合、限定しないが以下に挙げるものに対応することができる。
【0166】
−自動ホワイトバランスに関する、とりわけ統計ベースの計算、ならびに/あるいは、
−自動露光に関する、とりわけ統計ベースの計算、ならびに/あるいは、
−自動フォーカスに関する、とりわけ統計ベースの計算、ならびに/あるいは、
−自動コントラスト改善に関する、とりわけ統計ベースの計算、ならびに/あるいは、
−未処理画像から可視画像への変換(「イメージパイプ」または「画像信号処理(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」に記載されている処理操作、ならびに/あるいは、
−センサ障害の補正、ならびに/あるいは、
−イメージャ障害の補正、ならびに/あるいは、
−処理操作、とりわけ鮮鋭度の改善、ならびに/あるいは、
−処理操作、とりわけ色表現の改善、ならびに/あるいは、
−処理操作、とりわけコントラスト表現の改善、ならびに/あるいは、
−処理操作、とりわけディテール表現の改善、ならびに/あるいは、
−雑音低減、ならびに/あるいは
−測定、ならびに/あるいは、
−圧縮、ならびに/あるいは、
−圧縮解除、ならびに/あるいは、
−補間または拡大(ズーム)、ならびに/あるいは、
−走査、ならびに/あるいは、
−特殊効果。
【0167】
処理されるオブジェクトは一般に、処理中に、空間と時間の両方でまたはオブジェクトの他の次元で、サブオブジェクト、すなわち所定のサイズおよび形を有する基本情報のグループに分解される。
【0168】
サブオブジェクトは、形およびサイズを有する基本情報のセットであり、この形およびサイズは、場合に応じて、プラットフォームの特性(とりわけメモリのサイズおよびタイプに関して、ならびに、ベクトル信号プロセッサの場合にはベクトルのサイズに関して)に依存するが、処理されるオブジェクトの特性にも依存する。
【0169】
オーバーレイを有さないサブオブジェクトへの分解の種々の可能なタイプを、
図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)にすら分割できることが示されている。
【0170】
サブオブジェクトがオーバーレイを有さない場合、例えばフィルタの計算中に、1つ前の別のサブオブジェクトに関する基本情報にアクセスして、エッジを失わずにサブオブジェクトの基本情報を処理する必要がある。
【0171】
例えばある次元に従って必要とされるオーバーレイを決定するために、サブオブジェクトへの分解はまた、第2のデータ、とりわけ総合的な相対変位データに依存することもできる。
【0172】
さらに、一代替形態では、アルゴリズムの実行中に基本情報が失われないように汎用操作のいくつかが非ヌルの変位を有するとき、画像は、少なくとも1つの次元に従って非ヌルのオーバーレイを有するサブオブジェクトに分解される。
【0173】
この構成を、
図1eおよび1fで示す。
図1eには、操作のシーケンスが各エッジで1ピクセルを失う場合の6×6基本情報を含むサブオブジェクトを示し、
図1fには、100個の基本情報を含むオブジェクトを示す。
【0174】
この図では、サブオブジェクトが4つの矩形80、82、83、および84であり、それぞれが36個の基本情報を含むのが示されている。矩形80は、画像の左上に位置する36個の基本情報で構成され、矩形82は、画像の右上に位置する36個の基本情報で構成される。したがって、8つの基本情報86が、サブオブジェクト80と82の両方に共通である。
【0175】
さらに、8つの基本情報85が、2つのサブオブジェクト80と83とに共通であり、8つの基本情報88が、2つのサブオブジェクト82と84とに共通であり、8つの基本情報89が、2つのサブオブジェクト83と84とに共通である。最後に、4つの基本情報87が、4つのサブオブジェクト80と82と83と84とに共通である。
【0176】
オブジェクトが画像である場合、一実施形態では、画像は、並置された矩形サブオブジェクトに分解され、これらのサブオブジェクトは、例えば左から右へ、次いで上から下へ処理されるようになっている。
【0177】
プラットフォームに応じて、サブオブジェクトは、限定しないが以下に挙げる方式のうちの1つに従って選択および記憶される。
【0178】
−小さい高速アクセスメモリおよび大きい低速メモリを伴う信号処理プロセッサの場合、サブオブジェクトのサイズは、低速メモリにアクセスせずにサブオブジェクトを処理することができるように選択される。例えば、32×32ピクセルの正方形に対応するサブオブジェクトを採用することが可能となり、現在のサブオブジェクトに関する計算中に、かつ、次のサブオブジェクトに関する計算に必要とされるデータが低速メモリから高速アクセスメモリに転送される間に、前のサブオブジェクトに対する計算の結果が低速メモリに転送される。
【0179】
−小さいキャッシュメモリおよび大きい低速メモリを伴うスカラプロセッサの場合、サブオブジェクトのサイズは、キャッシュメモリをできるだけ使用してサブオブジェクトの処理を実施することができるように選択される。例えば、32×32ピクセルの正方形に対応するサブオブジェクト、あるいは1ピクセルのサブオブジェクト、あるいは、とりわけ「生」タイプの未処理画像の場合は4ピクセル(2*2)またはN1*2ピクセルのサブオブジェクトを採用することが可能となる。
【0180】
−ベクトル信号プロセッサの場合、サブオブジェクトのサイズは、プラットフォームが処理および記憶することのできるベクトルのサイズと同数またはその倍数として選択され、例えば、64個の水平ピクセルに対応するサブオブジェクトを採用することができる。
【0181】
オブジェクトが画像とは異なるタイプである場合でも、同様にしてサブオブジェクトへの分解をプラットフォームに適応させることができる。
【0182】
Cなどの言語では、サブオブジェクトへのこの分解および対応するループのコーディングは、プラットフォームに従って明示的でなければならず、プラットフォームごとに手動で実施しなければならない。コーディングされたループからサブオブジェクトを明示的に抽出しようと努めるベクトル信号コンパイラが存在するが、これらのコンパイラは、アルゴリズム概念を自動的にコーディングする前に抽出しなければならず、これは非常に難しいので、これらのコンパイラの効率は限られている。したがって本発明は、どんなプラットフォームへの適応でも、自動化および効率向上できるようにする。
【0183】
以下の表に、本発明と既知の言語との主な違いを要約する。
【0184】
【表1】
サブオブジェクトへのこの分解が実施されると、一実施形態では、特有操作をプロセッサに割り当てることができる。各時間で、特有操作がどのプロセッサによっても実施されなくてよく、あるいは1つまたは複数のプロセッサによって実施されてよい。この選択はとりわけ、プラットフォームのアーキテクチャに、すなわちプロセッサのタイプおよび種々のプロセッサの構成に依存する。また、このアーキテクチャには、データの移行、すなわち、基本情報および/または特有操作からの結果があるプロセッサから他のプロセッサに移行することも依存する。この場合、2つのサブ処理操作の2つの連続した開始の間の時間をTと呼ぶとすると、時点t+k*Tで(tは任意の時点、kは任意の整数)、プラットフォームは、少なくとも1つのサブオブジェクトiに対して時間tで実施したのと同じ操作を、少なくとも1つのサブオブジェクトjに対して実施する。これらの特有操作は、それぞれのサブオブジェクト(1つまたは複数)において同じ相対位置を有する基本情報および/または特有操作からの結果に適用される。このことは、すべてのサブ処理操作が同一であることを意味し、これにより比較的小さいサイズのコードが生成される。というのは、1つのサブ処理操作のみを明示的に書き込むだけで済み、このサブ処理操作が複数回にわたって適用されるからである。Tは、2つのサブ処理操作の2つの連続した開始の間の期間だが、この値は、必ずしもサブ処理操作の完全な実行に必要とされる時間と等しいとは限らない。実際、サブ処理操作は、前のサブ処理操作が完了する前に開始することができ、これによって例えば時間を節約することができる。
【0185】
この場合を
図2によって示すが、
図2では、サブ処理操作ST2が開始した時点で、サブ処理操作ST1が完了していないことがわかる。さらに、サブ処理操作ST3が開始されたとき、サブ処理操作ST2はまだ実行されている。
【0186】
一実施形態では、プロセッサへの特有操作の割当て、および/または各特有操作が実施される時間の選択は、特有フォーマット化データを使用するプラットフォームのコンパイラによって決定される。
【0187】
アルゴリズムを最大限に最適化するために、処理操作ができるだけ規則的に実施されるようにすることが有用である可能性がある。こうするために、本発明の一実施形態では、本方法は、各サブオブジェクトに適用される特有操作の数量がプロセッサの数量Qの倍数でない場合、および/または、処理されるオブジェクトに関する基本情報の数量がNの倍数でない場合に、効果なしの特有操作および/またはヌル基本情報を加え、それにより特有操作の数量がQの倍数になり、基本情報の数量がNの倍数になるようにするステップを含む。
【0188】
本発明によれば、ヌル基本情報は、任意の内容の使用されない基本情報、および/または他の基本情報の複製によって得られる基本情報、および/または計算によって得られる基本情報を意味する。
【0189】
一実施形態では、汎用操作のシーケンスは、論理ブロックと呼ばれる少なくとも1つの基本情報セットに適用され、汎用フォーマット化データはまた、相互との関係における論理ブロックの相対位置および/または相対スケール(とりわけ空間的または時間的)を参照する、少なくとも2つの論理ブロックを使用する汎用操作に関する第2のデータも含み、各特有操作が適用されなければならない基本情報および/または特有操作からの結果は第2のデータに依存し、相互との関係における論理ブロックの少なくとも1つの相対位置がヌルでない場合は、少なくとも1つの特有操作は別のサブオブジェクトの少なくとも1つの基本情報を直接的または間接的に使用する。この場合、第2のデータを使用して、任意の2つの論理ブロック間の位置および相対スケールを計算することができる。対応する各物理ブロックのサイズ、ならびにそのスケール、および物理ブロックの各要素の絶対位置は、これから演繹することができる。
【0190】
本発明の一実施形態では、汎用操作は、オブジェクトの次元の1つに従った絶対位置で構成される論理ブロックを生成する少なくとも1つの汎用位置操作、ならびに、第3のブロックに従ったまたはパラメータに従った変位および/またはスケール変更によって第1のブロックから第2のブロックを生成する汎用インダイレクション操作を含む。
【0191】
別の実施形態では、汎用操作は、論理ブロックおよび/またはパラメータの加算、論理ブロックおよび/またはパラメータの減算、論理ブロック間の差の絶対値の計算、論理ブロックおよび/またはパラメータの乗算、少なくとも2つの論理ブロックおよび/またはパラメータのうちの最大値、少なくとも2つの論理ブロックおよび/またはパラメータのうちの最小値、論理ブロックのグループ化およびグループ化解除、相関表に対応するパラメータを論理ブロックに適用することによる論理ブロックの計算、少なくとも2つの論理ブロックおよび/またはパラメータからの、論理ブロックの条件付き選択(この選択は、a>bならばcが選択され、そうでなければdが選択されるように行われる。a、b、c、およびdは、論理ブロックおよび/またはパラメータである)、論理ブロックに関する棒グラフ、パラメータおよび/または論理ブロックに従った、論理ブロックのスケール変更、パラメータおよび/または論理ブロックに従った、論理ブロックの相対変位、少なくとも1つの座標を含むブロックを生成する操作、を含むグループに含まれる少なくとも1つの基本汎用操作を含む。
【0192】
加算など、論理ブロックおよびパラメータを使用する汎用操作は、プラットフォーム中での操作に変換することができ、例えば、汎用操作が加算に関するものであるときは、この汎用操作は、論理ブロックに対応する処理される物理ブロックの各要素または基本情報を、処理される要素または基本情報の絶対位置に対応するパラメータの値に加算することに対応する。
【0193】
これらの操作は、まさにその性質により、画像処理では比較的標準的な操作だが、他の種類のオブジェクトの処理でもそうである。しかし、これらの操作は、第2のデータと共に論理ブロックに適用されるとき、提起されている問題への解決法を提供する。これらの操作は、データ処理アルゴリズム中で実施することのできるすべての操作を形成するための基礎としての働きをする。
【0194】
したがって、一実施形態では、汎用操作は、それら自体も使用される基本汎用操作のグループに対応する、複合的な汎用操作を含む。これらのグループはとりわけ、少なくとも3つの論理ブロックおよび/またはパラメータの中央値の計算(最小値および最大値の計算からなる汎用操作のグループに対応する)、論理ブロックおよび/またはパラメータの乗算/累算、論理ブロックとパラメータとの重畳(いくつかの相対位置による乗算および加算からなる汎用操作のグループに対応する)、最大値および最小値と組み合わせた加算、勾配の計算(2つの相対位置の差の絶対値に対応する)、ベクトルからなるパラメータといくつかの論理ブロックとのスカラ積による論理ブロックの生成、補間によるスケール変更の計算(いくつかの相対位置によるスケール変更と乗算および加算とからなる汎用操作のグループに対応する)、論理ブロックの結合(いくつかの相対位置によるスケール変更からなる汎用操作のグループに対応する)を含む。
【0195】
操作のいくつかは、複数の論理ブロックを使用する。この場合、相互との関係で実現される論理ブロックの位置に関して、第2のデータが提供されることはすでに示した。
【0196】
とりわけ空間的および/または時間的な、相対位置および相対スケールは、オブジェクトのタイプに応じて様々な概念に対応することができる。これらは、タイプにかかわらず任意の2つのブロック間で適用される(前述のような画像の場合、論理ブロックはとりわけ、未処理、赤、緑、8ビットなどとすることができる)。
【0197】
オブジェクトが正方形ピクセルを含む静止画である場合、絶対または相対位置は、一実施形態では、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)の相対スケールは、各方向への半分の解像度に対応する。
【0198】
より一般的には、相対変位と相対スケールの組合せは、次のようにして2つの関数fおよびgを使用してコーディングすることができる。すなわち、絶対位置の各ピクセルにつき(f(x;y);g(x;y))である。例えば最も近いピクセルを取るためには、丸め規則が必要であることに留意されたい。したがって、
−上の相対位置は、f(x;y)=−1およびg(x;y)=0でコーディングされる。
【0199】
−相対スケール0.7は、f(x;y)=0.7*(x−x0)およびg(x;y)=0.7*(y−y0)でコーディングされる。x0およびy0は、絶対不変位置に対応する。
【0200】
−歪み補正は、歪みフィールドに対応するfおよびgでコーディングされる。
【0201】
−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は、絶対位置に関するパラメータに対応する。
【0202】
以下の非網羅的なリストに、様々な異なるタイプのオブジェクトによる実施形態の他の例を提供する。
【0203】
−オブジェクトが、ラインに沿って配置された六角形のピクセルを含む静止画であって、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))である。例えば最も近いピクセルを取るためには、丸め規則が必要であることに留意されたい。
【0204】
。オブジェクトが、正方形のピクセルを含む動画である場合、絶対または相対位置は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))である。例えば最も近いピクセルを取るためには、丸め規則が必要であることに留意されたい。
【0205】
−オブジェクトが単一チャネルの音声である場合、絶対または相対位置は1つの値(時間)に対応することができる。例えば、(−1)は前の時間を示し、(2)は2つの時間後を示す。この場合、関数f(t)が、変位および相対スケールのコーディングを可能にする。最も近い時間を取るためには、丸め規則が使用される。
【0206】
−オブジェクトが複数チャネル音声である場合、絶対または相対位置は2つの値(時間、チャネル)に対応することができる。例えば、(−1,0)は、同じチャネルでの前の時間を示し、(2,1)は、後続のチャネルでの2つの時間後を示し、このチャネルは例えば循環的な方式で空間配置される。また、相対変位と相対スケールの組合せは、2つの関数f、gを次のようにして使用してコーディングすることができる。すなわち、チャネルcで時間tに位置する各オーディオサンプルにつき(f(t;c);g(t;c))である。例えば最も近い時間およびチャネルを取るためには、丸め規則が必要であることに留意されたい。
【0207】
−オブジェクトがシミュレーションメッシュである場合、絶対または相対位置はn個の値に対応することができ、各値は、メッシングのトポロジに従った空間または時間次元に対応する。また、相対変位と相対スケールの組合せは、n個の関数を使用してコーディングすることができる。例えば最も近いノードおよび時間を取るためには、丸め規則が必要であることに留意されたい。
【0208】
−オブジェクトが被変調信号である場合、絶対または相対位置はn個の値に対応することができ、各値は、時間と、妥当な場合に周波数チャネル(複数の周波数上での送信または受信)と、妥当な場合に空間次元(空間的に配置された複数の送信機または受信機)とに対応する。また、相対変位と相対スケールの組合せはn個の関数を使用してコーディングすることができ、丸め規則を選択しなければならない。
【0209】
−オブジェクトが測定値のセットである場合、絶対または相対位置はn個の値に対応することができ、各値はオブジェクトの次元の1つに対応し、これらの次元は、場合に応じて、時間、空間、周波数、位相、または他のタイプであることがある。また、相対変位と相対スケールの組合せはn個の関数を使用してコーディングすることができ、丸め規則を選択しなければならない。
【0210】
−オブジェクトが次元nのオブジェクトである一般的な場合、絶対または相対位置はn個の値に対応することができ、各値はオブジェクトの次元の1つに対応し、これらの次元は、場合に応じて、時間、空間、周波数、位相、または他のタイプであることがある。また、相対変位と相対スケールの組合せはn個の関数を使用してコーディングすることができ、丸め規則を選択しなければならない。
【0211】
ある種の特有操作は、後で別のサブ処理操作に使用される可能性の高い結果を生成する。このため、これらの結果を決定し、共にグループ化して送出することが有用である。
【0212】
したがって、一実施形態では、本方法は、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の一部を、第2のデータに従って決定するステップを含む。
【0213】
別の実施形態では、本方法はまた、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果を、第2のデータおよび/またはスクローリングモードに従ってメモリ中に共にグループ化するステップを含む。
【0214】
別の実施形態では、特有操作は、少なくとも1つの循環的連鎖に従って連鎖された計算ユニットによって実施され、本方法はまた、各特有操作につき、この特有操作の結果を循環的連鎖に従って送出すべきかどうかを第2のデータに従って判定するステップを含む。本方法はまた、妥当な場合に、どの循環的連鎖を使用してこの特有操作の結果を送出するかを、第2のデータおよびスクローリングモードに従って決定するステップを含む。
【0215】
これらの異なる実施形態は、相互から独立して、または組み合わせて適用することができる。
【0216】
好ましくは、第2のデータに関する相対変位および/または相対スケール情報を使用して、所与の汎用操作についての変位および/またはスケール変更がある際の次元(1つまたは複数)が決定される。したがって、汎用操作のシーケンスから変換された特有操作シーケンスからの各特有操作に適用される循環的連鎖(1つまたは複数)を決定することができる。好ましくは、この循環的連鎖は、少なくとも1つの待ち行列も含む。
【0217】
いくつかの操作がヌル変位を適用するとき、各特有操作からの結果をメモリに書き込むこと、およびこれらを後続の操作のために再度読み取ることは無用であり、これらの記憶操作および再読取り操作は時間の無駄となり、処理操作にとって特に利益はない。したがって、一実施形態では、特有フォーマット化データは、特有操作を共にグループ化することに関する情報を含み、このグループは、別のサブ処理操作にとって有用ではない各特有操作の結果を記憶せずに実行されることになっている1つまたは複数の特有操作のパケットの形成にある。
【0218】
一実施形態では、シーケンスの特有操作のすべてが共にグループ化される。
【0219】
一実施形態では、特有フォーマット化データは、1組の埋込みループのみを含む。
【0220】
さらに、いくつかの特有操作は、別のサブ処理操作ですでに使用された操作結果に適用することができる。例えば、特有操作のシーケンスが、中間計算からの3つのラインを適用するフィルタを含むとき、ラインに対応するサブオブジェクトに分解された画像の場合、第1のサブオブジェクトすなわち第1のラインに適用されるフィルタ操作は、例えば画像の第2および第3のラインも使用する。また、この同じフィルタ操作が第2のサブオブジェクトに適用されることになるとき、さらには第3のラインに関して第3のサブオブジェクトに適用されることになるときにすら、第2および第3のラインがこのフィルタ操作によって使用されることになる。この場合、ピクセルのこれらのラインを後で再計算するのは計算の点でコストがかかるが、そうしなくてもよいようにこれらをメモリに記憶することが有益である可能性がある。
【0221】
異なるデータに対していくつかのフィルタが使用される場合も、同様にして他のデータをメモリに記憶することが有用である可能性がある。
【0222】
したがって、一実施形態では、特有フォーマット化データは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の少なくとも一部を、プラットフォームのメモリに記憶することを可能にする操作を含む。
【0223】
さらに、一実施形態では、本方法は、別のサブオブジェクトのサブ処理操作中に使用される特有操作からの結果を、当該サブオブジェクトとの関係におけるこの別のサブオブジェクトの相対位置に従って、メモリに共にグループ化して記憶するステップを含む。
【0224】
次に、後でさらに述べるような待ち行列を含む循環的連鎖を適用する一実施形態例について述べる。この例では、スクローリングモードは、Nが5に等しく、オブジェクトが10*5のサブオブジェクトに分解され、水平に配置された10個のサブオブジェクトが1つずつ処理され、次いで下に位置する10個のサブオブジェクトが処理され、以下同様となるようなスクローリングモードである。水平次元に従って使用される待ち行列は、前回の反復からのデータを含み、垂直に使用される待ち行列は、前の10回の反復からのデータを含む。したがって、特有操作からの結果のメモリグループ化は、スクローリングモードに依存する。したがって、別のサブオブジェクトのサブ処理中に使用される特有操作からの結果をメモリに共にグループ化して記憶することは、当該サブオブジェクトとの関係におけるこの別のサブオブジェクトの相対位置に依存する。
【0225】
本方法はまた、いくつかの場合に、サブオブジェクトのサブ処理中に実施され別のサブオブジェクトのサブ処理中に使用される特有操作からの結果を、少なくとも1つの待ち行列中で共にグループ化するステップを含む。
【0226】
一実施形態では、計算ユニットは少なくとも1つの循環的連鎖に従って連鎖され、連鎖は少なくとも1つの待ち行列も含む。
【0227】
いくつかの場合では、特有フォーマット化データは、特有操作からの結果および/または記憶された基本情報を、プラットフォームのメモリスロットの1つから別のメモリスロットに転送することに関する情報を含む。後でさらに述べる第5の変換例は、このような転送を含む。
【0228】
一実施形態では、少なくとも1つの特有操作はしかし、エッジ効果を有するような特有操作である可能性がある。すなわち、これらの操作が適用されるサブオブジェクトのエッジに位置するいくらかの情報の損失がある。これらのエッジ効果を回避するために、画像は、オーバーレイを有するサブオブジェクトに分解される。すなわち、これらのサブオブジェクトは、いくらかの基本情報を共有する。したがって、特有フォーマット化データは、特有操作からの結果がプラットフォーム中で複数回にわたって計算されるような特有操作を含み、それにより、とりわけサブオブジェクトが少なくとも1つの次元でオーバーレイされている場合に、特有操作の実行時にどんな情報も損失しない。後でさらに述べる第5の変換例は、このようなオーバーレイを含む。
【0229】
一実施形態では、特有フォーマット化データは、特有操作からの結果および/または記憶された基本情報の少なくとも一部にプラットフォームがアクセスできるようにするためのアドレス指定情報を含む。このアドレス指定情報は「ベースアドレス+オフセット」または「(ベースアドレス+オフセット)mod(バッファメモリのサイズ)」フォーマットであり、オフセットは、あるサブ処理操作と他のサブ処理操作とで、1つの同じ特有操作からの結果に対して一定である。一実施形態では、ベースアドレスはサブ処理操作ごとに変更される。
【0230】
好ましくは、バッファメモリは、処理プラットフォームのメモリの1つに統合される。とりわけ、バッファメモリは待ち行列とすることができる。
【0231】
一実施形態では、本方法は、特有操作からの結果を記憶するために、空のメモリスロット、あるいはもはや使用されない特有操作結果または基本情報を含むメモリスロットのアドレスをプラットフォームに提供するようにして、特有操作の順序に従ってオフセットを計算するステップを含む。この計算は、前述のように別のサブ処理操作でまたは別の特有操作によって後で使用されることになる情報をメモリから消去しないように、種々のパラメータ、とりわけ特有操作のパラメータを反映して実施される。したがって、単純なアドレス計算およびメモリ再使用によって循環的バッファが得られ、これにより、後の計算に必要な中間データを記憶することが可能になる。とりわけ、処理がライン単位で実施される画像の場合、垂直フィルタの入力上で使用されるラインが保持される。
【0232】
一実施形態では、本方法はまた、このオフセットを第1のデータに従って決定するステップを含み、オフセットは、第1のデータの汎用操作のシーケンスを変換することによって得られる特有操作のシーケンスの特有操作ごとに異なる。例えば、少なくとも1つの待ち行列は、「ベースアドレス+オフセット」または「(ベースアドレス+オフセット)mod(プラットフォーム中に位置するバッファメモリのサイズ)」フォーマットのアドレス指定情報によって実現される。第2のデータを使用して、使用される待ち行列が決定される。
【0233】
特有操作をサブオブジェクトに適用するには、コードのサイズを縮小するためおよびコードをより一様にするためにループを使用するのが一般に有益である。したがって、一実施形態では、処理操作は、スクローリングモードに従って、少なくとも1つのループと、ループ(1つまたは複数)の反復の数量と、複数のループがあるときにはループの埋込みとの計算を含む。後続の変換例は、ループがプラットフォームに従って手動でコーディングされる既知の言語とは対照的に、ループをプラットフォームに従って自動的に計算することが可能であることを示す。
【0234】
これらのループは例えば、とりわけ、処理されるオブジェクトが、矩形のサブオブジェクトに分解された画像であって、これらの中を水平または垂直にスクロールすることが選択された場合に、サブオブジェクトの中をスクロールするのに使用することができる。
【0235】
同様にして、特有フォーマット化データは、いくつかの場合、処理操作に必要な一時変数を含む。
【0236】
いくつかの特有操作はパラメータを使用し、この場合、これらのパラメータの値もまた処理される。これらのパラメータは、例えば乗率とすることができる。これらのパラメータは、例えば、限定しないが以下に挙げるものに対応することができる。
【0237】
−フィルタ係数
−飽和度の値
−オフセット値
−相関表
一実施形態では、特有操作によって使用されるパラメータの値は、サブオブジェクトの絶対位置に依存し、かつ/あるいは、これらの特有操作において直接的または間接的に適用される基本情報の、サブオブジェクトにおける絶対位置に依存する。例えば、処理されるオブジェクトが画像である場合、撮影に使用された光学機構のせいで画像に欠陥が現れることがある。これらの欠陥は、画像全体にわたり概して一様ではなく、とりわけエッジでは一様ではない。この場合、この不鮮明を補償するために、画像のすべてのピクセルに同じ補償係数が適用されることにはならない。
【0238】
例えば、すべての基本情報に共通のパラメータをフィルタに対して使用すると、鮮鋭度を一様に高めることができる。
【0239】
例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存するパラメータをフィルタに対して使用すると、光学的な欠陥を補償するためにエッジでより大幅に鮮鋭度が高まる。
【0240】
例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存するパラメータをビネッティング補正に使用すると、光学的な欠陥を補償するためにエッジでより高い補償が生み出される。
【0241】
例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存するパラメータをデモザイキング操作に使用すると、センサから受け取られた未処理画像中の「赤」ピクセル、「緑」ピクセル、および「青」ピクセルを異なる方式で処理することができる。
【0242】
例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存する第2のデータ、とりわけ変位を、ディジタル拡大計算(「ズーム」)または歪み補正計算に使用すると、各点における補間を計算するのに必要なピクセルが生成される。
【0243】
一実施形態では、パラメータの値は、このパラメータのタイプに応じて、
−一定であり、アルゴリズムに固有である。この場合、パラメータの値はとりわけ、処理手段またはプラットフォームに送出することができる。かつ/あるいは、
−オブジェクトのソースまたは宛先に依存する。例えば、処理されるオブジェクトが、所与の光学機構を備えたデバイスからの画像である場合、パラメータの値は、光学機構のタイプに依存する可能性があり、光学機構のタイプは、画像中の鮮鋭度のレベルに影響を有する。この場合、パラメータの値はとりわけ、処理手段またはプラットフォームに送出することができる。かつ/あるいは、
−処理されるオブジェクトに依存する。例えば、処理されるオブジェクトがセンサからの画像である場合、パラメータの値は、このオブジェクトを取り込むのに効果的に使用されるセンサの利得に依存する可能性があり、センサの利得は、画像中の雑音のレベルに影響を有する。この場合、パラメータの値はとりわけ、プラットフォームによって送出、選択、または計算することができる。かつ/あるいは、
−オブジェクトにおける基本情報の絶対位置に依存する。この場合、パラメータの値はとりわけ、プラットフォームによって送出、選択、または計算することができる。かつ/あるいは、
−オブジェクトにおける基本情報の絶対位置に依存しない。
【0244】
パラメータ値は、アルゴリズムの定義との関係で、同時にまたはアポステリオリに決定することができる。
【0245】
ある種のパラメータの値が、あるオブジェクトと別のオブジェクト、あるサブオブジェクトと別のサブオブジェクト、またはある基本情報と別の基本情報とで変動する可能性があることを見てきた。この場合、一実施形態では、パラメータの値は、変更の度に計算される。
【0246】
別の実施形態では、パラメータの可能な値はアプリオリに計算され、変更の度に索引またはアドレスが決定されて、それにより、パラメータの値へのアクセスが例えば表の中で可能になる。別の実施形態は、よりパラメータに特有に適応され、それにより値がサブオブジェクトの絶対位置に従ってあるサブオブジェクトと別のサブオブジェクトとで変動し、かつそれにより値の数が制限される(例えば光学的な鮮鋭度特性に対応するパラメータ)ものだが、この実施形態では、有限数のパラメータ値セットが決定され、各セットは記憶され、各サブオブジェクトにつき、使用されるセットが、例えば使用されるセットのアドレスを与える位置の関数を計算することによって選択される。
【0247】
前述のように、パラメータは、ある種の特有操作の適用中に使用される。これが可能であるために、一実施形態では、特有フォーマット化データは、パラメータの値(1つまたは複数)、および/あるいは、パラメータの値(1つまたは複数)に関する計算コードを含む。
【0248】
別の実施形態では、パラメータ(1つまたは複数)の値(1つまたは複数)は、処理プラットフォームに従って選択され、それにより、処理操作はこのプラットフォームの特性を反映する。したがって、いくつかのプラットフォームに対して同一のアルゴリズムが利用可能であるものとすることができ、このアルゴリズムは、これらの特性を変動させるだけで、必要とされる各プラットフォームに適応される。
【0249】
別の実施形態では、これらのパラメータ値は処理対象に依存する。
【0250】
本発明の一実施形態では、特有操作は、加算、減算、乗算、相関表の適用、最小値、最大値、および選択を含むグループからの、少なくとも1つの特有計算操作を含む。
【0251】
一実施形態では、少なくとも1つの特有計算操作はまた、オフセットおよび/または飽和度および/または丸めを実施する。本発明によれば、特有選択計算操作は、少なくとも2つのデータ項目から、第3のデータ項目の値に従ってデータを選択することを可能にする。
【0252】
一実施形態では、相関表は、表の入力と有限数の係数とを使用した計算によって適用される。一実施形態では、係数の有限数は8に固定される。
【0253】
一実施形態では、特有操作は、少なくとも1つの循環的連鎖CC1を用いて、連鎖された計算ユニットによって実施される。この循環的連鎖CC1は、少なくとも1つの待ち行列も含む。特有操作シーケンスからの少なくとも1つの特有操作IS4は、計算ユニットUC1上で実施された特有操作IS5の結果を、この連鎖に従ってこの計算ユニットUC1に続く計算ユニットUC2または待ち行列に向けて送出する。
【0254】
一実施形態では、特有操作IS4は、前のサブ処理操作中に実施された特有操作IS5の結果を、待ち行列から、待ち行列に続く計算ユニットUC0に送出する。好ましくは、待ち行列は、待ち行列に入力された順序と同じ順序でデータを出力することを可能にする。好ましくは、計算ユニットと待ち行列とを含む連鎖は、ブート操作の管理を可能にする機構を含む。待ち行列は、定期的に、例えば待ち行列が水平連鎖の一部でありオブジェクトが画像である場合は各ラインの最初に、初期化される。特有操作IS4の最初の実行時は、待ち行列からUC0に送出されるデータはない。次に、特有操作IS4は、前のサブ処理操作中に実施された特有操作IS5の結果を、待ち行列から、待ち行列に続く計算ユニットUC0に送出する。一実施形態では、サブオブジェクトはDSO次元を含み、特有操作は、少なくとも1つの循環的連鎖CC1を用いてサブオブジェクトの所定の次元DDに従って連鎖された計算ユニットによって実施される。この循環的連鎖CC1は、少なくとも1つの待ち行列も含む。本方法はまた、少なくとも1つの特有操作に対して、この特有操作が適用される度に以下のステップを含む。
【0255】
−計算ユニットUC1上で実施された特有操作の上記適用からの結果を、この連鎖に従ってこの計算ユニットUC1に続く計算ユニットUC2または待ち行列に送出する。
【0256】
−別のサブオブジェクトの処理中に待ち行列に送出された特有操作の適用の結果を、待ち行列から、待ち行列に続く処理ユニットUC0に、オブジェクトにおけるサブオブジェクトの位置に従って条件付きで送出する。
【0257】
別の実施形態では、特有操作は、転置、複製、サブサンプリングを含むグループ中で選択される少なくとも1つの幾何学特有操作を含む。
【0258】
特有幾何学操作は、とりわけ以下のことを可能にする。
【0259】
−データをソートする。
【0260】
−スケール変更、サブサンプリング、またはオーバーサンプリングの計算を実施するためにデータを選択する。
【0261】
−とりわけエッジ上の、無用なデータを削除するためにデータを選択する。
【0262】
実施形態によれば、特有操作は、少なくとも1つの循環的連鎖に従って連鎖された計算ユニットによって実施することができる。この循環的連鎖は、少なくとも1つの待ち行列も含む。
【0263】
別の実施形態では、特有操作は、少なくとも1つの循環的連鎖に従って連鎖された計算ユニットによって実施される。この循環的連鎖は、少なくとも1つの待ち行列も含む。待ち行列はサイズおよび/またはレイテンシを有し、本方法はまた、汎用操作のシーケンスおよびスクローリングモードに従って、待ち行列のサイズおよび/またはレイテンシを決定するステップを含む。
【0264】
好ましくは、前述のように、待ち行列はいくつかのデータフラックスを含み、各フラックスにつき同一数NFのデータの記憶を可能にする。NFは、サブオブジェクトの相対的な配置およびスクローリングモードに従って決定され、それにより、データを生成するサブオブジェクトの処理と、同じデータを使用するサブオブジェクトの処理との間で、NF−1個のサブオブジェクトが処理される。
【0265】
好ましくは、処理されるオブジェクトは画像であり、基本情報はこの画像のピクセルである。
【0266】
したがって、一実施形態では、処理プラットフォームは、画像取込みまたはレンダリングデバイスの一部であり、パラメータの値は、取込みおよび/または画像レンダリングデバイスの、光学機構および/またはセンサおよび/またはイメージャおよび/または電子機構および/またはソフトウェアの特性にリンクされる。特性はとりわけ、すべてのオブジェクトに対する固有の固定特性とすることもでき、あるいはオブジェクトに従った変数とすることもでき、例えば、センサの利得に従って変動する雑音特性とすることができる。特性はまた、基本情報の絶対位置に従って、すべての基本情報または可変情報に対して同一とすることもでき、例えば光学的な鮮鋭度の特性とすることができる。
【0267】
別の実施形態では、処理されるオブジェクトはディジタルオーディオ信号であり、この場合、基本情報は、この信号のオーディオサンプルにある。この場合、第2のデータ中に存在する相対位置は一般に、時間的位置になる。しかし、これらの位置が空間的になることも起こりうる。これはとりわけ、処理されるオブジェクトが、複数のチャネル上に存在する音声である場合である。
【0268】
本発明の別の実施形態では、とりわけディジタルシミュレーションの場合、処理されるオブジェクトは数値メッシュであり、基本情報は、メッシングの各点を特徴付ける空間および/または時間情報である。
【0269】
本明細書に述べる特有フォーマット化データは、処理プラットフォームに直接提供することができる。しかしまた、この特有フォーマット化データは、C言語やVHDL言語など既知のコンピュータ言語をプラットフォーム用に変換するようになっているコンパイラに、このコンピュータ言語で提供することもできる。これにより例えば、レジスタの割当てまたは命令のスケジューリングを管理する必要なしに、コンパイラを備える既存のプラットフォームを使用することができる。
【0270】
本発明はまた、どんなループもない汎用操作のシーケンスを記述する第1のデータを含む汎用フォーマット化データを処理するためのシステムに関する。本システムは、Q個のプロセッサと少なくとも1つのメモリとを備える所定のプラットフォームに、特有フォーマット化データを直接的または間接的に提供する。プラットフォームは、同じタイプの基本情報で構成されるオブジェクトを特有フォーマット化データに従って処理するようになっており、各基本情報は少なくとも1つの数値で表される。
【0271】
本システムは、
−汎用操作のシーケンスをプラットフォームに従って1つの特有操作シーケンスに変換する手段と、
−プラットフォームのアーキテクチャおよびオブジェクトのトポロジに従って、かつ第1のデータから独立して、処理操作に必要なループのセットを決定する手段と、
−特有操作のシーケンスとこのように決定されたループとを含む特有フォーマット化データを計算し、コードサイズおよび/またはメモリサイズおよび/または計算時間の点でプラットフォームに最適化された方式で、汎用フォーマット化データに準拠するオブジェクトの処理を直接的または間接的に可能にする手段とを備える。
【0272】
一実施形態では、本システムは、
−プラットフォームのアーキテクチャおよびオブジェクトのトポロジに従って、かつ第1のデータから独立して、このプラットフォーム中で基本情報をスクロールするためのモードを決定する手段を備え、このスクローリングモードを決定する手段は、
−サブオブジェクトにおける基本情報のグループであって、各サブオブジェクトはプラットフォームに従って決定されるQの倍数である数量Nの基本情報を含み、プラットフォーム中での処理はサブ処理操作を周期的に開始することにあり、サブ処理操作はサブオブジェクトの1つに特有操作のシーケンスを適用することにあることと、
−プラットフォームに従って決定される、サブオブジェクトの形およびオーバーレイと、
−プラットフォームに従って決定される、サブオブジェクトの処理順序とを選択および/または計算する手段を備え、本システムはさらに、
−処理操作に必要なループのセットを決定し、かつ/またはスクローリングモードを反映する特有操作のシーケンスを計算する手段を備える。
【0273】
一実施形態では、本システムは、特有操作のシーケンスのうち、どの特有操作(1つまたは複数)が各プロセッサによって実施されるかを決定する手段を備え、各特有操作は各サブオブジェクトに少なくともN回適用され、各特有操作は、そのN回の適用中に、それぞれ少なくとも1回、サブオブジェクトの基本情報を直接的および/または間接的に適用して、ちょうどN個の結果を生成する。本方法はまた、このように決定された情報を特有フォーマット化データに加えるステップを含む。
【0274】
一実施形態では、本システムは、周期の相対時間ごとに、特有操作のシーケンスのうち、どの特有操作(1つまたは複数)が各プロセッサによって実施されるかを決定する手段を備え、各特有操作は各サブオブジェクトに少なくともN回適用され、各特有操作は、そのN回の適用中に、それぞれ少なくとも1回、サブオブジェクトの基本情報を直接的および/または間接的に適用して、ちょうどN個の結果を生成する。本方法はまた、このように決定された情報を特有フォーマット化データに加えるステップを含む。
【0275】
一実施形態では、本システムは、各サブオブジェクトに適用される特有操作の数量がプロセッサの数量Qの倍数でない場合、および/または、処理されるオブジェクトに関する基本情報の数量がNの倍数でない場合に、効果なしの特有操作および/またはヌル基本情報を加え、それにより特有操作の数量がQの倍数になり、基本情報の数量がNの倍数になるようにする手段を備える。
【0276】
一実施形態では、本システムは、
−論理ブロックと呼ばれる少なくとも1つの基本情報セットに汎用操作のシーケンスが適用されるような手段と、
−相互との関係における論理ブロックの相対位置および/または相対スケール(とりわけ空間的または時間的)を参照する、少なくとも2つの論理ブロックを使用する汎用操作に関する第2のデータを含む汎用フォーマット化データを受け取る手段と、
−各特有操作が適用されなければならない基本情報および/または特有操作からの結果が、第2のデータに依存するような手段と、
−相互との関係における論理ブロックの少なくとも1つの相対位置がヌルでない場合は、少なくとも1つの特有操作が、別のサブオブジェクトの少なくとも1つの基本情報を直接的または間接的に使用するような手段とを備える。
【0277】
一実施形態では、本システムは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の一部を、第2のデータに従って決定する手段を備える。
【0278】
一実施形態では、本システムは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からのグループ化された結果を、第2のデータおよび/またはスクローリングモードに従って記憶するメモリを備える。
【0279】
一実施形態では、本システムは、少なくとも1つの循環的連鎖に従って連鎖された計算ユニットを備え、また、各特有操作につき、この特有操作の結果を循環的連鎖に従って送出すべきかどうかを第2のデータに従って判定する手段を備える。本システムはまた、妥当な場合に、この特有操作の結果を送出するのに使用される循環的連鎖を第2のデータおよびスクローリングモードに従って決定する手段を備える。
【0280】
一実施形態では、本システムは、特有操作を共にグループ化することに関する情報を特有フォーマット化データが含むような手段を備え、このグループは、別のサブ処理操作のために各特有操作の結果を記憶することなく実行されることになっている1つまたは複数の特有操作のパケットの形成にある。
【0281】
一実施形態では、本システムは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の少なくとも一部をプラットフォームのメモリに記憶することを可能にする操作を特有フォーマット化データが含むような手段を備える。
【0282】
一実施形態では、本システムは、別のサブオブジェクトのサブ処理操作中に使用するための特有操作からのグループ化された結果を、当該サブオブジェクトとの関係におけるこの別のサブオブジェクトの相対位置に従って記憶するメモリを備える。
【0283】
一実施形態では、本システムは、サブオブジェクトのサブ処理操作中に実施され別のサブオブジェクトのサブ処理操作中に使用される特有操作からのグループ化された結果を記憶する少なくとも1つの待ち行列を備える。
【0284】
一実施形態では、本システムは、特有操作からの結果がプラットフォーム中で複数回にわたって計算されるような特有操作を特有フォーマット化データが含むような手段を備え、それにより、とりわけサブオブジェクトがオブジェクトの次元の少なくとも1つでオーバーレイされている場合に、特有操作の実行時にどんな情報も損失しない。
【0285】
一実施形態では、本システムは、特有操作からの結果および/または記憶された基本情報の少なくとも一部にプラットフォームがアクセスできるようにするアドレス指定情報を、特有フォーマット化データが含むような手段を備え、アドレス指定情報は「ベースアドレス+オフセット」または「ベースアドレス+modオフセット(プラットフォーム中に位置するバッファメモリのサイズ)」フォーマットであり、オフセットは、1つの同じ特有操作からの結果に対して一定である。
【0286】
一実施形態では、本システムは、ベースアドレスをサブ処理操作ごとに変更する手段を備える。
【0287】
一実施形態では、本システムは、特有操作からの結果を記憶するために、空のメモリスロット、あるいはもはや使用されない特有操作結果または基本情報を含むメモリスロットのアドレスをプラットフォームに提供するようにして、特有操作の順序に従ってオフセットを計算する手段を備える。
【0288】
一実施形態では、本システムは、少なくとも1つのループと、ループ(1つまたは複数)の反復の数量と、複数のループがあるときにはループの埋込みとを、スクローリングモードに従って計算する手段を備える。
【0289】
一実施形態では、本システムはまた、少なくとも1つのパラメータを処理する手段を備え、それにより、特有操作によって使用されるパラメータ(1つまたは複数)の値(1つまたは複数)は、これらの特有操作において直接的または間接的に適用される基本情報の、サブオブジェクトにおける絶対位置に依存する。
【0290】
一実施形態では、本システムはまた、少なくとも1つのパラメータを処理する手段を備え、それにより、特有フォーマット化データは、パラメータ(1つまたは複数)の値(1つまたは複数)、および/あるいは、パラメータ(1つまたは複数)の値(1つまたは複数)に関する計算コードを含む。
【0291】
一実施形態では、本システムはまた、少なくとも1つのパラメータを処理する手段を備え、パラメータ(1つまたは複数)の値(1つまたは複数)を処理プラットフォームに従って選択する手段を備え、それにより処理操作はこのプラットフォームの特性を反映する。
【0292】
一実施形態では、本システムはまた、少なくとも1つのパラメータを処理する手段を備え、それにより、パラメータ(1つまたは複数)の値(1つまたは複数)は、処理されるオブジェクトに依存する。
【0293】
一実施形態では、本システムは、加算、減算、乗算、相関表の適用、最小値、最大値、選択を含むグループに含まれる特有操作を実施する手段を備える。
【0294】
一実施形態では、本システムは、少なくとも1つの循環的連鎖CC1によって連鎖された計算ユニットを備え、この循環的連鎖CC1は、少なくとも1つの待ち行列も含む。本システムは、計算ユニットUC1上で実施された特有操作IS5の結果を、この連鎖に従ってこの計算ユニットUC1に続く計算ユニットUC2または待ち行列に転送する手段を備える。
【0295】
一実施形態では、本システムは、転置、複製、およびサブサンプリングを含むグループに含まれる少なくとも1つの特有幾何学操作を実施する手段を備える。
【0296】
一実施形態では、本システムは、少なくとも1つの循環的連鎖によって連鎖された計算ユニットを備え、循環的連鎖は少なくとも1つの待ち行列を含む。
【0297】
一実施形態では、本システムは、少なくとも1つの循環的連鎖に従った連鎖された計算ユニットを備え、循環的連鎖は少なくとも1つの待ち行列も含み、本システムは、汎用操作のシーケンスおよびスクローリングモードに従って待ち行列のサイズおよび/またはレイテンシを決定する手段を備える。
【0298】
一実施形態では、本システムは、処理されるオブジェクトが画像であり、基本情報がこの画像のピクセルであるような手段を備える。
【0299】
一実施形態では、本システムは、処理プラットフォームが画像取込みおよび/またはレンダリングデバイスの一部であり、パラメータ(1つまたは複数)の値(1つまたは複数)が、画像取込みおよび/またはレンダリングデバイスの、光学機構および/またはセンサおよび/またはイメージャおよび/または電子機構および/またはソフトウェアの特性にリンクされるような手段を備える。
【0300】
一実施形態では、本システムは、処理されるオブジェクトがディジタルオーディオ信号であり、基本情報がこの信号のオーディオサンプルであるような手段を備える。
【0301】
一実施形態では、本システムは、処理されるオブジェクトが数値メッシュであり、空間および時間情報である基本情報がメッシングの各点を特徴付けるような手段を備える。
【0302】
本発明の他の特徴および利点は、その実施形態のいくつかに関する非限定的な記述から明らかになるであろう。この記述は図によってサポートされる。