JP5025658B2 - Platform and processing method using this platform - Google Patents

Platform and processing method using this platform Download PDF

Info

Publication number
JP5025658B2
JP5025658B2 JP2008545068A JP2008545068A JP5025658B2 JP 5025658 B2 JP5025658 B2 JP 5025658B2 JP 2008545068 A JP2008545068 A JP 2008545068A JP 2008545068 A JP2008545068 A JP 2008545068A JP 5025658 B2 JP5025658 B2 JP 5025658B2
Authority
JP
Japan
Prior art keywords
sub
basic information
platform
memory
operations
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
JP2008545068A
Other languages
Japanese (ja)
Other versions
JP2009524123A (en
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 JP2009524123A publication Critical patent/JP2009524123A/en
Application granted granted Critical
Publication of JP5025658B2 publication Critical patent/JP5025658B2/en
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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Description

本発明は、1つまたは複数のプロセッサとメモリとを有するプラットフォーム上で、基本情報からなるオブジェクトを処理する方法に関する。本発明はさらに、このような方法を使用するプラットフォームにも関する。   The present invention relates to a method for processing an object consisting of basic information on a platform having one or more processors and a memory. The invention further relates to a platform using such a method.

この記述では、基本情報は、処理される情報の要素であり、1つまたは複数の数値で表される。この情報は、8ビット符号化、10ビット符号化、さらには16ビット符号付き符号化など、様々なタイプの符号化に従って符号化することができる。処理されるオブジェクトが画像である場合、基本情報はこの画像のピクセルとなる。   In this description, basic information is an element of information to be processed and is represented by one or more numerical values. This information can be encoded according to various types of encoding, such as 8-bit encoding, 10-bit encoding, or even 16-bit signed encoding. If the object to be processed is an image, the basic information is the pixels of this image.

プラットフォーム中でオブジェクトに施されることになる処理は、様々な分野に介入することのできるアルゴリズムに対応し、これらの分野は例えば、画像処理、データ圧縮および圧縮解除、オーディオ処理、信号変調および復調、測定、データ分析、データベース索引付けまたは検索、コンピュータによる閲覧、グラフィック処理、シミュレーションなど、あるいは多量のデータを使用する任意の分野である。   The processing that will be performed on the objects in the platform corresponds to algorithms that can intervene in various fields, such as image processing, data compression and decompression, audio processing, signal modulation and demodulation. Measurement, data analysis, database indexing or searching, computer browsing, graphic processing, simulation, etc., or any field that uses large amounts of data.

プロセッサとメモリとを有するプラットフォーム中で、同じタイプの基本情報からなるオブジェクトの処理が必要とされるとき、基本情報の処理順序と、ループと、対応する操作シーケンスとを決定することについては大きな自由裁量の範囲がある。   When processing objects of the same type of basic information is required in a platform with a processor and memory, there is great freedom in determining the basic information processing order, loops, and corresponding operation sequences. There is a range of discretion.

しかし、コードサイズ、計算時間、メモリアクセス速度、メモリサイズ、および規則性に関係する制限は相容れない可能性があり、所与のアルゴリズムに対してできる限りプラットフォームの並列処理を活用するのは難しい。   However, limitations related to code size, computation time, memory access speed, memory size, and regularity may be incompatible and it is difficult to exploit platform parallelism as much as possible for a given algorithm.

この問題を解決するために従来、重畳、乗算、さらには相関表の適用など、物理ブロックに対して様々な処理操作を実施することのできる低レベルライブラリの使用が知られている。これによれば、各プラットフォームにつきこれらのライブラリを1回だけ最適化すればよい。しかし、この方法には、以下のように多くの不都合がある。   In order to solve this problem, it is conventionally known to use a low-level library capable of performing various processing operations on physical blocks such as superposition, multiplication, and application of a correlation table. According to this, these libraries need only be optimized once for each platform. However, this method has many disadvantages as follows.

−ライブラリのサイズ、したがってコードのサイズがかなり大きい。
−ライブラリ呼出し時間が与えられた場合に、比較的大きいサイズの物理ブロックを使用する必要があり、この結果、かなりのメモリ使用となる。
-The size of the library and hence the size of the code is quite large.
-Given the library call time, it is necessary to use relatively large physical blocks, which results in significant memory usage.

−基本情報に対する内部ループがライブラリ内に位置する場合、操作のシーケンスを最適化することができず、この結果、性能が制限される。
−物理ブロックはメモリに記憶され、この結果、メモリ使用が集中的になり、メモリから中間データを読み書きするのに多くの時間が費やされる。
If the inner loop for basic information is located in the library, the sequence of operations cannot be optimized, which results in limited performance.
-Physical blocks are stored in memory, which results in intensive memory usage and a lot of time spent reading and writing intermediate data from the memory.

さらに、プログラム可能なプロセッサ、例えば、スカラプロセッサタイプ、ベクトル信号プロセッサタイプ、信号処理プロセッサタイプ、とりわけSIMD(「単一命令複数データ」)タイプのものでは、基本情報で構成されブロックまたはサブオブジェクトに(すなわち基本情報のグループに)分解されるオブジェクトに、アルゴリズムを適用することができる。   In addition, programmable processors, such as those of the scalar processor type, vector signal processor type, signal processor type, especially SIMD ("single instruction multiple data") type, are composed of basic information and can be divided into blocks or sub-objects ( That is, the algorithm can be applied to objects that are decomposed into groups of basic information.

従来、各操作が、完全なブロックに適用され、次いで次の操作が、ブロックに対して実行されるが、このブロックはサイズが縮小される可能性があった。実際、これらの操作のいくつかは、ブロックのサイズを縮小し、後続の操作が実施されるときにエッジ効果を生じる。その後、アルゴリズムが既知のプロセッサで適用されることになるとき、多数のメモリアクセス操作が必要である。というのは、1つの操作がすべてのブロックに連続して適用された後で次の操作に進むからであり、この状況は、メモリ中での頻繁な読み書きを引き起こす。   Traditionally, each operation is applied to a complete block and then the next operation is performed on the block, which could be reduced in size. In fact, some of these operations reduce the size of the block and produce edge effects when subsequent operations are performed. Later, when the algorithm is to be applied on a known processor, a large number of memory access operations are required. This is because one operation is applied to all blocks in succession before proceeding to the next operation, which causes frequent reads and writes in memory.

また、エッジ効果を低減するためにサイズの大きいブロックを使用する必要もあり、したがって、これらのサイズの大きいブロックを記憶できるように比較的大きいサイズのメモリを有する必要がある。さらに、ループの数量が多いことは、ループおよびエンドオブループ初期化コードが多くの回数にわたって存在することを意味し、それによりサイズの大きいコードを誘発する。   It is also necessary to use large blocks to reduce edge effects, and therefore it is necessary to have a relatively large memory to be able to store these large blocks. Furthermore, a large number of loops means that the loop and end-of-loop initialization code exists many times, thereby inducing large code.

さらに、相関表や、局所変位の適用など、ある種の操作は、オフセットまたは置換による通信スキーマが備わったベクトルシグナリングプロセッサに統合するのには適さない。
さらに、操作が適用されるブロックのサイズは、ある操作から別の操作で変動するので、コードは規則性の問題を提起することもわかっている。したがって、メモリおよび/または計算時間の点で、このコードを最適化するのは難しい。というのは、最適化は、シーケンス全体ではなく、1ブロックにつき1つの操作に制限されるからである。
Furthermore, certain operations, such as correlation tables and application of local displacements, are not suitable for integration into a vector signaling processor with a communication schema by offset or permutation.
In addition, it has been found that the code poses a regularity problem because the size of the block to which the operation is applied varies from one operation to another. It is therefore difficult to optimize this code in terms of memory and / or computation time. This is because optimization is limited to one operation per block, not the entire sequence.

したがって、アルゴリズム+プラットフォームの各組合せを最適化するのにかなりの時間を費やすことなく、コードのサイズ、メモリのサイズ、および必要とされる命令の数量を最適化するのは非常に難しい。実際、各プラットフォームは、装置(例えばプロセッサの数およびタイプや、メモリのサイズおよびタイプ)と、使用言語(スカラプロセッサの場合はC、ベクトル信号プロセッサの場合はアセンブリ言語)との両方の点で、それ自体の特性を有する。   Therefore, it is very difficult to optimize code size, memory size, and the number of instructions needed without spending significant time optimizing each algorithm + platform combination. In fact, each platform is both in terms of both the device (eg, the number and type of processors, the size and type of memory) and the language used (C for scalar processors, assembly language for vector signal processors) Has its own characteristics.

本発明の目的は、前述の欠点の少なくとも1つを正すことによって、プラットフォーム中でのオブジェクトの処理を可能にする方法である。とりわけ、本発明は、コードサイズ、計算時間、メモリアクセス速度、メモリサイズの点で、処理の最適化を可能にする。   The object of the present invention is a method that allows the processing of objects in the platform by correcting at least one of the aforementioned drawbacks. Among other things, the present invention allows optimization of processing in terms of code size, computation time, memory access speed, and memory size.

この最適化は、アルゴリズムの計算時間、計算パワーに必要な電気的消費、メモリサイズしたがってシリコン表面、データを減少させる。
この最適化はさらに、シリコン表面などハードウェアプロパティと、所与の計算時間に対するアルゴリズムの実行に必要とされる電気的消費との、節約を達成することを可能にする。
This optimization reduces algorithm computation time, electrical consumption required for computation power, memory size and hence silicon surface, data.
This optimization further makes it possible to achieve savings in hardware properties, such as the silicon surface, and the electrical consumption required to run the algorithm for a given computation time.

したがって本発明は、1つまたは複数のプロセッサとメモリとを有するプラットフォーム中で、同じタイプの基本情報からなるオブジェクトを処理する方法に関し、本方法は、処理されるオブジェクトを、N個の基本情報からそれぞれなる少なくとも2つのサブオブジェクトに分解するステップを含み、すべてのサブオブジェクトは同じ数量Nの基本情報を有し、処理は、各サブオブジェクトの基本情報に対して少なくとも1つの特有操作シーケンスを実施することにあり、本方法はさらに、各サブオブジェクトにつき各特有操作を少なくともN回実施するステップを含み、それにより、一方では、各サブオブジェクトの各基本情報が少なくとも1回適用され、他方では、各特有操作のN個の結果が生成され、特有操作のシーケンスは、シーケンスの少なくとも1つの特有操作kが、そのN回の適用全体のうちで少なくとも1回、別のサブオブジェクトの処理に使用される結果を生成するようなシーケンスである。   The present invention therefore relates to a method for processing an object of the same type of basic information in a platform having one or more processors and memory, the method for processing an object to be processed from N basic information. Each sub-object has the same quantity N of basic information, and the process performs at least one unique operation sequence on the basic information of each sub-object. In particular, the method further comprises the step of performing each specific operation at least N times for each sub-object, whereby each basic information of each sub-object is applied at least once, and on the other hand, each N results of specific operations are generated, and the sequence of specific operations is At least one specific operation k of Nsu is at least one among the whole application of the N times, a sequence such as to produce a result that will be used to process different sub-object.

好ましくは、特有操作のシーケンスはループを含まない。
一実施形態では、プラットフォームはQ個のプロセッサを備える。好ましくは、各サブオブジェクトの処理は、Q個のプロセッサにわたって分散され、各プロセッサは、特有操作シーケンスからの少なくとも1つの特有操作IS8を実施する。したがって、すべてのプロセッサは、各サブオブジェクトに使用され、1つの同じプロセッサは、サブオブジェクトのセットに使用される。したがって、サブオブジェクトをプロセッサに割り当てる必要はない。
Preferably, the sequence of specific operations does not include a loop.
In one embodiment, the platform comprises Q processors. Preferably, the processing of each sub-object is distributed across Q processors, each processor performing at least one specific operation IS8 from the specific operation sequence. Thus, all processors are used for each sub-object and one and the same processor is used for the set of sub-objects. Thus, there is no need to assign sub-objects to processors.

好ましくは、サブオブジェクトを処理するために特有操作がプロセッサによって実施されるとき、同じ特有操作がまた、他のすべてのサブオブジェクトを処理するために同じプロセッサによって実施される。したがって処理は規則的である。特有操作はプロセッサに割り当てられ、次いで各サブオブジェクトのサブ処理操作のために周期的に実施される。   Preferably, when a specific operation is performed by a processor to process a sub-object, the same specific operation is also performed by the same processor to process all other sub-objects. The processing is therefore regular. Specific operations are assigned to the processor and then performed periodically for sub-processing operations for each sub-object.

好ましくは、処理に必要なループのセットは、オブジェクトのトポロジおよびプラットフォームに依存するが、特有操作のシーケンスから独立している。   Preferably, the set of loops required for processing depends on the topology and platform of the object but is independent of the sequence of specific operations.

好ましくは、ループは、特有操作の完全なシーケンスの周りで相互の中に埋め込まれる。このようにして、ループは特有操作のシーケンス全体をカプセル化し、特有操作のシーケンスは、それぞれがループに囲まれたサブシーケンスに分割されることはない。同様にして、完全なオブジェクトを記憶する必要も、特有操作の結果のセットを記憶する必要もなしに、ただ別のサブオブジェクトの処理に必要な結果を一時的に記憶するだけで、サブオブジェクトを同時に処理することによってオブジェクトを処理することができる。したがってメモリ使用が削減される。   Preferably, the loops are embedded within each other around a complete sequence of unique operations. In this way, the loop encapsulates the entire sequence of specific operations, and the sequence of specific operations is not divided into subsequences each surrounded by a loop. Similarly, sub-objects can be stored simply by temporarily storing the results needed to process another sub-object, without having to memorize the complete object or store the result set of the specific operation. Objects can be processed by processing at the same time. Thus, memory usage is reduced.

好ましくは、サブオブジェクトは、連続した基本情報で構成される。このため、少なくとも1つの待ち行列を含むプロセッサの連鎖を実施することが可能である。
次に、本発明による待ち行列の概念を定義する。
Preferably, the sub-object is composed of continuous basic information. For this reason, it is possible to implement a chain of processors including at least one queue.
Next, the concept of a queue according to the present invention is defined.

待ち行列は、基本情報、または特有操作からの結果を、送出および/または記憶するのに使用される。
待ち行列は、メモリを備えるかまたは使用することができる。
待ち行列は、FIFO(先入れ先出し)タイプの1つまたは複数のプロセスを使用して実現することができる。
The queue is used to send and / or store basic information or results from specific operations.
The queue may comprise or use memory.
The queue can be implemented using one or more processes of FIFO (first in first out) type.

待ち行列は、少なくとも1つの入力および少なくとも1つの出力を備える。
−待ち行列は、任意の手段を介して入力計算ユニットおよび出力計算ユニットに動作可能に接続させることができる。
−待ち行列はまた、任意の手段を介してPR入力計算ユニットおよびPR出力計算ユニットに動作可能に接続させることができ、この場合、待ち行列は、それぞれが入力計算ユニットを出力計算ユニットにリンクするPR待ち行列のように挙動する。
The queue comprises at least one input and at least one output.
The queue can be operatively connected to the input computing unit and the output computing unit via any means.
The queue can also be operatively connected to the PR input calculation unit and the PR output calculation unit via any means, in which case the queues each link the input calculation unit to the output calculation unit Behaves like a PR queue.

好ましくは、待ち行列は、いくつかのデータフラックスを独立して管理するのに使用することができ、各フラックスは所定の特有命令に関連する。
一実施形態では、待ち行列中で読取りと書込みを同時に行うことが可能である。
好ましくは、待ち行列は、少なくとも1つのメモリユニットを使用して、各フラックスにつき同一数量NFのデータを記憶する。
Preferably, the queue can be used to manage several data fluxes independently, each flux being associated with a predetermined specific instruction.
In one embodiment, it is possible to read and write simultaneously in the queue.
Preferably, the queue uses at least one memory unit to store the same quantity NF of data for each flux.

好ましくは、NFは、サブオブジェクトの相対的な配置およびスクローリングモードに従って決定され、それにより、データを生成するサブオブジェクトの処理と、同じデータを使用するサブオブジェクトの処理との間で、NF−1個のサブオブジェクトが処理される。   Preferably, NF is determined according to the relative placement and scrolling mode of the sub-objects, so that between the processing of sub-objects that generate data and the processing of sub-objects that use the same data, NF− One sub-object is processed.

好ましくは、計算ユニットと待ち行列とを含む連鎖は、ブート操作の管理を可能にする機構を含む。待ち行列は、定期的に、例えば待ち行列が水平連鎖の一部でありオブジェクトが画像である場合は各ラインの最初に、初期化される。待ち行列がNF個のデータを含まないならば、連鎖中で待ち行列に続くプロセッサは、出力において送出するデータを入力として取る。次に、連鎖中で待ち行列に続くプロセッサは、待ち行列中で最も古いデータを入力において取り、これを待ち行列から除去する。   Preferably, the chain comprising computing units and queues includes a mechanism that allows management of boot operations. The queue is initialized periodically, for example at the beginning of each line if the queue is part of a horizontal chain and the object is an image. If the queue does not contain NF data, the processor following the queue in the chain takes as input the data to send at the output. The processor that follows the queue in the chain then takes the oldest data in the queue at the input and removes it from the queue.

好ましくは、待ち行列は、待ち行列に入力されたときと同じ順序でデータを出力することを可能にする。
好ましくは、循環的連鎖は一方向である。好ましくは、循環的連鎖は、計算ユニットごとに、入力に1つの単一リンクがあり、出力に1つの単一リンクがあるような連鎖である。
Preferably, the queue allows data to be output in the same order as it was entered into the queue.
Preferably, the cyclic chain is unidirectional. Preferably, the cyclic chain is such that for each computational unit there is one single link at the input and one single link at the output.

このように、少なくとも1つの待ち行列の使用により、少なくとも1つの他のサブオブジェクトの計算で必要とされる特有操作からの結果を送出することができる。
待ち行列は、例えば、マイクロプロセッサを使用して実現される。
この記述全体を通して、用語「計算ユニット」と「プロセッサ」とは同じ意味を有することに留意することができる。
In this way, the use of at least one queue can send results from specific operations required in the computation of at least one other sub-object.
The queue is implemented using, for example, a microprocessor.
It can be noted that throughout this description, the terms “computation unit” and “processor” have the same meaning.

一実施形態では、N個の基本情報からなるサブオブジェクトを処理するために、シーケンスの各特有操作が総計N回実施され、Q個のプロセッサそれぞれにつきN/Q回実施される。特有操作のシーケンスが条件付き接続を含む場合、各プロセッサは、これらの条件付き接続を反映するシーケンスの部分を実施する。   In one embodiment, each unique operation of the sequence is performed a total of N times and N / Q times for each of the Q processors to process a sub-object consisting of N basic information. If the sequence of specific operations includes conditional connections, each processor implements the portion of the sequence that reflects these conditional connections.

一実施形態では、サブオブジェクトは、少なくとも1つの次元に従ってオーバーレイされない。したがって、あるサブオブジェクトの処理中に生成された少なくとも1つの特有操作結果が、別のサブオブジェクトの処理中に使用される。   In one embodiment, sub-objects are not overlaid according to at least one dimension. Thus, at least one unique operation result generated during the processing of one sub-object is used during the processing of another sub-object.

好ましくは、サブオブジェクトは、どんな次元に従ってもオーバーレイされない。したがって、各プロセッサは、計算を繰り返さずに100%使用することができる。
好ましくは、特有操作のシーケンスは、シーケンスのうちの少なくとも1つの特有操作kが、そのN回の適用中に少なくとも1回、別のサブオブジェクトの処理に使用される結果を生成するようなシーケンスである。
Preferably, sub-objects are not overlaid according to any dimension. Therefore, each processor can use 100% without repeating the calculation.
Preferably, the sequence of unique operations is such that at least one unique operation k of the sequence produces a result that is used to process another sub-object at least once during its N applications. is there.

好ましくは、サブオブジェクトの同じ1つの次元に従ったいくつかの循環的連鎖がある場合(とりわけプロセッサがグリッドに従って配置されているとき)、待ち行列は、同じ次元に従ったすべての循環的連鎖間で共有される。好ましくは、サブオブジェクトの各次元につきちょうど1つの待ち行列があり、各待ち行列は、同じ次元に従ったすべての循環的連鎖間で共有される。したがって、プロセッサ間の通信は特に単純である。したがって、メモリの構成は特に単純である。   Preferably, if there are several circular chains according to the same one dimension of the sub-object (especially when the processors are arranged according to the grid), the queue is between all circular chains according to the same dimension. Shared on. There is preferably exactly one queue for each dimension of the sub-object, and each queue is shared among all circular chains according to the same dimension. Therefore, communication between processors is particularly simple. Therefore, the memory configuration is particularly simple.

本発明はさらに、所与のアルゴリズムに対し、アルゴリズムもメモリサイズも変更せずに、また小さいサイズのプロセッサを使用して、プロセッサの数に比例した性能を得ることを可能にする。   The present invention further allows for a given algorithm to obtain performance proportional to the number of processors, without changing the algorithm or memory size, and using a smaller size processor.

したがって、本発明は、0.09μプロセスで刻印されたコンポーネントの場合に、1mm当たり毎秒数百億個の演算の計算パワーをコンポーネント上で利用できるようにすることを可能にする。従来、このような密度は、最適化されたケーブル接続型アーキテクチャを必要とし、これはしたがって開発の時宜を得ており、アルゴリズムを変更するためのフレキシビリティがない。反対に、本発明は、どんなアルゴリズムも非常に容易に、したがってごく短時間のうちに、プログラムすることを可能にする。 The present invention thus makes it possible to make available on the component the computational power of tens of billions of operations per mm 2 per second for components stamped with a 0.09μ process. Traditionally, such densities require an optimized cabling architecture, which is therefore timely for development and lacks the flexibility to change the algorithm. On the contrary, the present invention makes it possible to program any algorithm very easily and thus in a very short time.

これはまた、単一のコンポーネント上で、毎秒およそ数兆個の演算の性能を達成可能にする。
この目的で、本発明は、エッジ効果を呈示する操作からなる処理操作を規則的なものにする。
This also makes it possible to achieve the performance of approximately several trillion operations per second on a single component.
For this purpose, the present invention regularizes processing operations consisting of operations that present an edge effect.

前述のような方法によって処理されるオブジェクトは、好ましくは、デモザイキング操作前の未処理画像(「生」タイプのもの)であり、この場合、
−一代替形態では、基本情報は、ピクセルの絶対位置に従って例えば赤、緑、または青に対応する数値で表されるピクセルである。
The object processed by the method as described above is preferably an unprocessed image (of the “raw” type) before the demosaicing operation,
In one alternative, the basic information is a pixel represented by a numerical value corresponding to, for example, red, green or blue according to the absolute position of the pixel.

−別の代替形態では、基本情報は、1ピクセル当たり1数値で表されるピクセルのグループ(例えば2*2の緑、赤、および青のピクセルのグループ。緑は「バイエル(Bayer)」に対応する)である。   In another alternative, the basic information is a group of pixels represented by one number per pixel (eg a group of 2 * 2 green, red and blue pixels, green corresponding to “Bayer”) ).

オブジェクトは可視画像とすることもでき、この場合、基本情報は、例えば3つの数値で表されるピクセルであり、各数値は色、例えば赤、緑、および青を表す。
オブジェクトは画像のシーケンス、とりわけ未処理または可視画像のシーケンスとすることもでき、この場合、基本情報は、画像シーケンスからの画像のピクセルである。したがって、オブジェクトは例えばビデオに対応する。
The object can also be a visible image, in which case the basic information is, for example, pixels represented by three numerical values, each numerical value representing a color, for example red, green and blue.
The object can also be a sequence of images, in particular a sequence of raw or visible images, in which case the basic information is the pixels of the image from the image sequence. Thus, the object corresponds to, for example, a video.

オブジェクトが画像である場合、画像は、画像取込みデバイスから受け取ることができ、かつ/または画像レンダリングデバイスに向けることができる。
−画像取込みデバイスは、例えば使い捨てカメラ、ディジタルカメラ、レフレックスカメラ(ディジタルまたは非ディジタル)、スキャナ、ファクス、内視鏡、ビデオカメラ、カムコーダ、監視カメラ、玩具、電話機またはパーソナルアシスタントまたはコンピュータに統合されたかリンクされたビデオカメラまたはカメラ、サーマルカメラ、超音波マシン、MRI(磁気共鳴)撮像ユニット、X線撮影ユニットである。
If the object is an image, the image can be received from an image capture device and / or directed to an image rendering device.
The image capture device is integrated in eg a disposable camera, digital camera, reflex camera (digital or non-digital), scanner, fax, endoscope, video camera, camcorder, surveillance camera, toy, telephone or personal assistant or computer Or linked video camera or camera, thermal camera, ultrasound machine, MRI (magnetic resonance) imaging unit, X-ray imaging unit.

−画像レンダリングデバイスは、例えばスクリーン、プロジェクタ、テレビジョン、仮想現実ゴーグル、またはプリンタである。
−画像取込みおよび画像レンダリングデバイスは、例えばスキャナ/ファクス/プリンタ、小型写真印刷ラボ、ビデオ会議デバイスである。
The image rendering device is for example a screen, a projector, a television, a virtual reality goggles or a printer;
Image capture and image rendering devices are, for example, scanners / fax / printers, small photo printing labs, video conferencing devices.

処理プラットフォームは、適用例に応じて種々の形をとることができる。例えば、オブジェクトが画像である場合に、とりわけ処理プラットフォームが以下のデバイスの1つに統合された場合について列挙する。   The processing platform can take a variety of forms depending on the application. For example, enumerate when the object is an image, especially when the processing platform is integrated into one of the following devices.

−処理済み画像を生成する画像取込みデバイス。例えば、処理プラットフォームを統合したディジタルカメラ。
−処理済み画像を表示または印刷する画像レンダリングデバイス。例えば、処理プラットフォームを備えるビデオプロジェクタまたはプリンタ。
An image capture device that produces a processed image; For example, a digital camera with an integrated processing platform.
An image rendering device that displays or prints the processed image. For example, a video projector or printer with a processing platform.

−これらの要素上の欠陥を訂正する混合デバイス。例えば、処理プラットフォームを備えるスキャナ/プリンタ/ファクス。
−処理済み画像を生成するプロ用画像取込みデバイス。例えば、処理プラットフォームを備える内視鏡。
A mixing device that corrects defects on these elements. For example, a scanner / printer / fax with a processing platform.
A professional image capture device that produces processed images. For example, an endoscope with a processing platform.

処理プラットフォームは、完全にまたは部分的にサーバ上に移すことができる。
アルゴリズム、またはオブジェクト処理操作は、例えば、オブジェクトが画像である場合、限定しないが以下に挙げるものに対応する。
The processing platform can be moved completely or partially on the server.
For example, when the object is an image, the algorithm or the object processing operation corresponds to, but not limited to, the following.

−自動ホワイトバランスに関する、とりわけ統計ベースの計算、ならびに/あるいは、
−自動露光に関する、とりわけ統計ベースの計算、ならびに/あるいは、
−自動フォーカスに関する、とりわけ統計ベースの計算、ならびに/あるいは、
−自動コントラスト改善に関する、とりわけ統計ベースの計算、ならびに/あるいは、
-Statistically based calculations on automatic white balance, and / or
-Statistically based calculations on automatic exposure, and / or
-Statistically based calculations on autofocus, and / or
-Statistically based calculations on automatic contrast improvement, and / or

−未処理画像から可視画像への変換(「イメージパイプ」または「画像信号処理(ISP)」、ならびに/あるいは、
−光学障害の補正、ならびに/あるいは、
−被写界深度の改善、ならびに/あるいは、
Conversion from raw image to visible image (“image pipe” or “image signal processing (ISP)” and / or
-Correction of optical disturbances and / or
-Improving the depth of field and / or

−特許出願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」に記載されている処理操作、ならびに/あるいは、   -Patent application PCT / FR2006 / 050022 “Method for creating an image capturing and / or rendering device, and device obtained by this method” and / or Patent application PCT / R2006 / 2005 , Using a digital color image ", and / or

−センサ障害の補正、ならびに/あるいは、
−イメージャ障害の補正、ならびに/あるいは、
−処理操作、とりわけ鮮鋭度の改善、ならびに/あるいは、
−処理操作、とりわけ色表現の改善、ならびに/あるいは、
−処理操作、とりわけコントラスト表現の改善、ならびに/あるいは、
−処理操作、とりわけディテール表現の改善、ならびに/あるいは、
-Correction of sensor faults and / or
-Correction of imager faults and / or
-Processing operations, in particular sharpness improvement and / or
-Improving processing operations, in particular color expression, and / or
-Improving processing operations, in particular contrast expression, and / or
-Improvement of processing operations, in particular detail expression, and / or

−雑音低減、ならびに/あるいは
−測定、ならびに/あるいは、
−圧縮、ならびに/あるいは、
−圧縮解除、ならびに/あるいは、
−補間またはズーム、ならびに/あるいは、
−走査、ならびに/あるいは、
−特殊効果。
-Noise reduction and / or-measurement and / or
-Compression and / or
-Decompression and / or
-Interpolation or zoom and / or
-Scanning and / or
-Special effects.

本発明によれば、オブジェクトに適用される処理操作は、特有操作とも呼ばれる操作のシーケンスにあるものとすることができる。特有操作からの結果もまた基本情報と呼ばれ、オブジェクトの基本情報と同じタイプとすることもでき、そうでないものとすることもできる。   According to the present invention, the processing operation applied to the object can be in a sequence of operations also called unique operations. The result from the specific operation is also referred to as basic information, and may or may not be the same type as the basic information of the object.

サブオブジェクトは、形およびサイズを有する基本情報のセットであり、この形およびサイズは、場合に応じて、プラットフォームの特性(とりわけメモリのサイズおよびタイプに関して、ならびに、ベクトル信号プロセッサの場合にはベクトルのサイズに関して)に依存するが、処理されるオブジェクトの特性にも依存する。   A sub-object is a set of basic information that has a shape and size, and this shape and size can vary depending on the platform characteristics (especially in terms of memory size and type, and in the case of vector signal processors, the vector Depending on the size) but also on the characteristics of the object being processed.

一実施形態では、オブジェクトおよびサブオブジェクト、ならびに論理ブロックは、いくつかの次元を有する。
サブオブジェクトおよび論理ブロックの次元は、オブジェクトの次元のすべてまたは一部に対応する。次元は種々のタイプとすることができ、とりわけ以下のタイプである。
In one embodiment, objects and sub-objects, and logical blocks have several dimensions.
The sub-object and logical block dimensions correspond to all or part of the object dimensions. The dimensions can be of various types, among others:

−空間的。例えば、距離、角度、または、メッシュ中でのスクローリング。
−時間的。
−周波数。例えば、色、周波数、周波数帯。
−位相。
−ベクトル空間基底に従った分解。例えば、ウェーブレットへの分解、または高バイト、低バイトへの分解。
-Spatial. For example, distance, angle, or scrolling in the mesh.
-Time.
-Frequency. For example, color, frequency, frequency band.
-Phase.
-Decomposition according to vector space basis. For example, decomposition into wavelets, or decomposition into high and low bytes.

−一般に、任意のトポロジの任意の空間の次元。
以下の非網羅的なリストに、オブジェクトの例をその次元と共に提供する。
−2つの次元を有する静止画。各次元は、距離、とりわけピクセルで測定される距離に対応する。
-In general, any spatial dimension of any topology.
The following non-exhaustive list provides examples of objects along with their dimensions.
-Still image with two dimensions. Each dimension corresponds to a distance, in particular a distance measured in pixels.

−2つの次元を有する未処理静止画。各次元は距離に対応し、各ピクセルには色、例えば赤、緑、または青が備わる。
−2つの次元を有する静止カラー画像。各次元は距離に対応し、一方の次元はカラーチャネルを表す周波数、例えば赤/緑/青を表す周波数に対応する。
−3つの次元を有する動画。次元のうちの2つは、距離、とりわけピクセルで測定される距離に対応し、1つは時間に対応する。
-Unprocessed still image with two dimensions. Each dimension corresponds to a distance, and each pixel is provided with a color, such as red, green, or blue.
-Still color image with two dimensions. Each dimension corresponds to a distance, and one dimension corresponds to a frequency representing a color channel, for example a frequency representing red / green / blue.
-A video with three dimensions. Two of the dimensions correspond to distances, particularly distances measured in pixels, and one corresponds to time.

−3つの次元を有するレリーフ画像。次元は距離に対応する。
−3つの次元を有するレリーフ画像。次元のうちの2つは距離に対応し、第3の次元は視野角に対応する。
-Relief image with three dimensions. The dimension corresponds to the distance.
-Relief image with three dimensions. Two of the dimensions correspond to distance and the third dimension corresponds to viewing angle.

−距離次元およびおそらくチャネル次元を有する医療画像。
−視野角次元を有するホログラム。
−より一般的に、距離および/または角度および/または時間および/または周波数の次元を有する画像。
A medical image having a distance dimension and possibly a channel dimension.
A hologram having a viewing angle dimension.
-More generally, images having dimensions of distance and / or angle and / or time and / or frequency.

−時間に対応する次元を有する音声。
−時間およびチャネルに対応する2つの次元を有する音声。
−時間、およびおそらく周波数、およびおそらく空間における位置、または角度に対応する1つまたは複数の次元を有する被変調信号。
-Voice with dimension corresponding to time.
-Speech with two dimensions corresponding to time and channel.
A modulated signal having one or more dimensions corresponding to time and possibly frequency and possibly position or angle in space;

−1つまたは複数の次元に従って配置された基本情報によって示される、信号変調および復調、測定、データの分析、データベース索引付けまたは検索、コンピュータによる閲覧、グラフィック処理、シミュレーション。   -Signal modulation and demodulation, measurement, data analysis, database indexing or searching, computer browsing, graphic processing, simulation, indicated by basic information arranged according to one or more dimensions.

−より一般的に、1つまたは複数の次元を有するオブジェクト。
本発明によれば、オブジェクトの基本情報は、絶対的な位置および/またはスケールを有することができ、これらはとりわけ、空間および/または時間および/または周波数によるものとすることができるが、同様に、オブジェクトの次元の任意の他の1つに従ったものとすることもできる。
-More generally, an object having one or more dimensions.
According to the invention, the basic information of an object can have an absolute position and / or scale, which can be in particular by space and / or time and / or frequency, as well It can also be according to any other one of the dimensions of the object.

−「オーディオ」オブジェクトに関する基本情報は、強度に対応することができる。この場合、基本情報は、時間における所与の瞬間に対応する絶対位置を有し、複数チャネル音声の場合は、所与のチャネルに対応する絶対位置を有する。
−「画像」オブジェクトに関する基本情報は、ピクセルに対応することができる。この場合、基本情報は、画像中の位置に対応する絶対位置を有し、ビデオ画像の場合は、時間における所与の瞬間に対応する絶対位置を有する。
-Basic information about the "audio" object can correspond to intensity. In this case, the basic information has an absolute position corresponding to a given moment in time, and in the case of multi-channel speech, it has an absolute position corresponding to a given channel.
-Basic information about "image" objects can correspond to pixels. In this case, the basic information has an absolute position corresponding to a position in the image, and in the case of a video image, it has an absolute position corresponding to a given moment in time.

−「データシミュレーション」オブジェクトに関する基本情報は、ステータスに対応することができる。この場合、基本情報は、メッシングノードと、時間における所与の瞬間とに対応する絶対位置を有する。   -Basic information about the "data simulation" object can correspond to the status. In this case, the basic information has an absolute position corresponding to the meshing node and a given moment in time.

−「被変調信号」オブジェクトに関する基本情報は、強度および/または位相に対応することができる。この場合、基本情報は、時間における所与の時点に対応する絶対位置を有し、おそらく、複数のアンテナまたは送信機が使用される場合は、所与の周波数および/または所与の位置に対応する絶対位置を有する。   -Basic information about the "modulated signal" object may correspond to intensity and / or phase. In this case, the basic information has an absolute position corresponding to a given point in time, possibly corresponding to a given frequency and / or given position if multiple antennas or transmitters are used. To have an absolute position.

とりわけ空間的および/または時間的な少なくとも1つの次元に従った相対位置、および絶対または相対スケールは、オブジェクトのタイプに応じて様々な概念に対応することができる。これらは、タイプにかかわらず任意の2つのブロック間で適用される(前述のような画像の場合、論理ブロックはとりわけ、未処理、赤、緑、8ビットなどとすることができる)。   In particular, the relative position according to at least one dimension in space and / or time and the absolute or relative scale can correspond to various concepts depending on the type of object. These apply between any two blocks, regardless of type (in the case of an image as described above, the logic blocks can be unprocessed, red, green, 8 bits, among others).

オブジェクトが正方形ピクセルを含む静止画である場合、絶対または相対位置は、一実施形態では、2つの値(垂直および水平)に対応することができ、絶対または相対スケールは、2つの値(垂直および水平)に対応することができる。オブジェクトの最上ラインのピクセルは、絶対位置として(0;0)(0;1)(0;2)...を有することができ、n番目のラインのピクセルは、絶対位置として(n;0)(n;1)(n;2)を有することができる。この場合、相対位置は、次のようにしてコーディングすることができる。すなわち、(−1;0)は上を示し、(0;0)はヌル変位に対応し、(0;1)は右を示し、(2;−2)は2ピクセル下および2ピクセル左を示す。この場合、(0.5;0.5)の相対スケールは、各方向への半分の解像度に対応する。   If the object is a still image containing square pixels, the absolute or relative position can correspond to two values (vertical and horizontal) in one embodiment, and the absolute or relative scale can be two values (vertical and horizontal). Horizontal). Pixels on the top line of the object are (0; 0) (0; 1) (0; 2) as absolute positions. . . And the pixels of the nth line can have (n; 0) (n; 1) (n; 2) as absolute positions. In this case, the relative position can be coded as follows. That is, (-1; 0) indicates the top, (0; 0) corresponds to the null displacement, (0; 1) indicates the right, (2; -2) indicates 2 pixels down and 2 pixels left. Show. In this case, a relative scale of (0.5; 0.5) corresponds to half the resolution in each direction.

より一般的には、相対変位と相対スケールの組合せは、次のようにして2つの関数fおよびgを使用してコーディングすることができる。すなわち、絶対位置の各ピクセルにつき(f(x;y);g(x;y))である。例えば最も近いピクセルを取るためには、丸め規則が必要であることに留意されたい。したがって、
−上の相対位置は、f(x;y)=−1およびg(x;y)=0でコーディングされる。
More generally, the combination of relative displacement and relative scale can be coded using two functions f and g as follows. That is, (f (x; y); g (x; y)) for each pixel in the absolute position. Note that rounding rules are necessary to take the closest pixel, for example. Therefore,
-The relative position above is coded with f (x; y) =-1 and g (x; y) = 0.

−相対スケール0.7は、f(x;y)=0.7*(x−x0)およびg(x;y)=0.7*(y−y0)でコーディングされる。x0およびy0は、絶対位置に対するパラメータに対応する。   The relative scale 0.7 is coded with f (x; y) = 0.7 * (x−x0) and g (x; y) = 0.7 * (y−y0). x0 and y0 correspond to parameters for absolute positions.

−歪み補正は、歪みフィールドに対応する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は、絶対位置に関するパラメータに対応する。
The distortion correction is coded with f and g corresponding to the distortion field.
YUV4: 2: 2 format change, ie YYUV using separate Y, U, V luminance and chrominance information is Y1 Y2 Y3 Y4. . . Y1 Y2 xx xx Y3 Y4 xx xx. . . Subsequent functions can be used to obtain That is, if x is an even number, f (x; y) = (x−x0) * 0.5, and if x−x0 is an odd number, (x + 1−x0) * 0.5 can be used, and f (y) = y-y0. x0 and y0 correspond to parameters relating to absolute positions.

以下の非網羅的なリストに、様々な異なるタイプのオブジェクトによる実施形態の他の例を提供する。   The following non-exhaustive list provides other examples of embodiments with a variety of different types of objects.

−オブジェクトが、ラインに沿って配置された六角形のピクセルを含む静止画であって、2つの連続したラインが半ピクセル分ずれている場合、絶対または相対位置は、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))である。例えば最も近いピクセルを取るためには、丸め規則が必要であることに留意されたい。   -If the object is a still image containing hexagonal pixels arranged along a line, and two consecutive lines are offset by half a pixel, the absolute or relative position is two values (vertical and horizontal) The absolute or relative scale can correspond to two values (vertical and horizontal). The pixels on the top line of the object have absolute positions (0; 0) (0; 1) (0; 2) . . The pixels of the nth line are in absolute position if the line is an odd line (n; 0.5) (n; 1.5) (n; 2.5). . . (N; 0) (n; 1) (n; 2) if the line is an even line. . . Can have. The relative position can correspond to two values (vertical and horizontal), for example (−0.5; 0.5) indicates the upper right, (0, 1) indicates the right and (−0. 5; 1.5) indicates a pixel located to the right of the upper right pixel. In this case, the relative scale (0.5; 0.5) corresponds to half the resolution in each direction. Also, the combination of relative displacement and relative scale can be coded using the two functions f and g as follows. That is, (f (x; y); g (x; y)) for each pixel at the absolute positions x and y. Note that rounding rules are necessary to take the closest pixel, for example.

オブジェクトが、正方形のピクセルを含む動画である場合、絶対または相対位置は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))である。例えば最も近いピクセルを取るためには、丸め規則が必要であることに留意されたい。   If the object is a movie containing square pixels, the absolute or relative position can correspond to three values (vertical, horizontal, and time), for example (-1; 0; 0) is the same image Indicates the pixel located above, (0; 0; -1) indicates the pixel at the same position in the previous image, (2; -2; -1) indicates 2 pixels in the previous image The bottom and two pixels left are shown. Also, the combination of relative displacement and relative scale can be coded using the three functions f, g, h as follows. That is, (f (x; y; t); g (x; y; t); h (x; y; t)) for each pixel at the absolute position x and y at time t. Note that rounding rules are necessary to take the closest pixel, for example.

−オブジェクトが単一チャネルの音声である場合、絶対または相対位置は1つの値(時間)に対応することができる。例えば、(−1)は前の時間を示し、(2)は2つの時間後を示す。この場合、関数f(t)が、変位および相対スケールのコーディングを可能にする。最も近い時間を取るためには、丸め規則が使用される。   If the object is a single channel audio, the absolute or relative position can correspond to one value (time). For example, (-1) indicates the previous time, and (2) indicates two hours later. In this case, the function f (t) enables the displacement and relative scale coding. Rounding rules are used to take the closest time.

−オブジェクトが複数チャネル音声である場合、絶対または相対位置は2つの値(時間、チャネル)に対応することができる。例えば、(−1,0)は、同じチャネルでの前の時間を示し、(2,1)は、後続のチャネルでの2つの時間後を示し、このチャネルは例えば循環的な方式で空間配置される。また、相対変位と相対スケールの組合せは、2つの関数f、gを次のようにして使用してコーディングすることができる。すなわち、チャネルcで時間tに位置する各オーディオサンプルにつき(f(t;c);g(t;c))である。例えば最も近い時間およびチャネルを取るためには、丸め規則が必要であることに留意されたい。   -If the object is multi-channel audio, the absolute or relative position can correspond to two values (time, channel). For example, (-1, 0) indicates the previous time on the same channel, (2, 1) indicates two times after the subsequent channel, and this channel is spatially arranged, for example, in a cyclic manner. Is done. Also, the combination of relative displacement and relative scale can be coded using the two functions f and g as follows. That is, (f (t; c); g (t; c)) for each audio sample located at time t in channel c. Note that rounding rules are needed, for example, to take the closest time and channel.

−オブジェクトがシミュレーションメッシュである場合、絶対または相対位置はn個の値に対応することができ、各値は、メッシングのトポロジに従った空間または時間次元に対応する。また、相対変位と相対スケールの組合せは、n個の関数を使用してコーディングすることができる。例えば最も近いノードおよび時間を取るためには、丸め規則が必要であることに留意されたい。   If the object is a simulation mesh, the absolute or relative position can correspond to n values, each value corresponding to a space or time dimension according to the meshing topology. Also, the combination of relative displacement and relative scale can be coded using n functions. Note that rounding rules are needed, for example, to take the closest node and time.

−オブジェクトが被変調信号である場合、絶対または相対位置はn個の値に対応することができ、各値は、時間と、妥当な場合に周波数チャネル(複数の周波数上での送信または受信)と、妥当な場合に空間次元(空間的に配置された複数の送信機または受信機)とに対応する。また、相対変位と相対スケールの組合せはn個の関数を使用してコーディングすることができ、丸め規則を選択しなければならない。   If the object is a modulated signal, the absolute or relative position can correspond to n values, each value being a time and, where appropriate, a frequency channel (transmission or reception on multiple frequencies) And, where appropriate, the spatial dimension (spatial transmitters or receivers spatially arranged). Also, the combination of relative displacement and relative scale can be coded using n functions and a rounding rule must be selected.

−オブジェクトが測定値のセットである場合、絶対または相対位置はn個の値に対応することができ、各値はオブジェクトの次元の1つに対応し、これらの次元は、場合に応じて、時間、空間、周波数、位相、または他のタイプであることがある。また、相対変位と相対スケールの組合せはn個の関数を使用してコーディングすることができ、丸め規則を選択しなければならない。
−オブジェクトが次元nのオブジェクトである一般的な場合、絶対または相対位置はn個の値に対応することができ、各値はオブジェクトの次元の1つに対応し、これらの次元は、場合に応じて、時間、空間、周波数、位相、または他のタイプであることがある。また、相対変位と相対スケールの組合せはn個の関数を使用してコーディングすることができ、丸め規則を選択しなければならない。
If the object is a set of measurements, the absolute or relative position can correspond to n values, each value corresponding to one of the object's dimensions, which in some cases It can be time, space, frequency, phase, or other types. Also, the combination of relative displacement and relative scale can be coded using n functions and a rounding rule must be selected.
In the general case where the object is an object of dimension n, the absolute or relative position can correspond to n values, each value corresponding to one of the object's dimensions, Depending on time, space, frequency, phase, or other types. Also, the combination of relative displacement and relative scale can be coded using n functions and a rounding rule must be selected.

オーバーレイを有さないサブオブジェクトの種々のタイプを、図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つ前の別のサブオブジェクトに関する基本情報にアクセスして、エッジを失わずにサブオブジェクトの基本情報を処理する必要がある。   Various types of sub-objects that do not have an overlay are illustrated by FIGS. In these figures, one and the same image is represented by lines (lines 90, 91, 92, 93 in FIG. 1a), columns (columns 94, 95, 96, 97 in FIG. 1b), and any other form of sub-object ( It is shown that it can be divided even into the shapes 70, 71, 72, 73) of FIG. 1c or even into rectangles (shapes 60, 61, 62, 63, 64, 65, 66, 67 of FIG. 1d). If the sub-object does not have an overlay, it is necessary to access the basic information about the previous other sub-object during the filter calculation to process the basic information of the sub-object without losing the edge.

したがって、一実施形態では、処理されるオブジェクトは次元DOを有し、オブジェクトの次元DOから選択された次元DSOを有するサブオブジェクトに分解され、オブジェクトの分解は、サブオブジェクトの次元の少なくとも1つに従ってサブオブジェクトがオーバーレイを有さないような分解である。   Thus, in one embodiment, the object being processed has dimension DO and is decomposed into sub-objects having a selected dimension DSO from the object's dimension DO, the decomposition of the object according to at least one of the sub-object's dimensions The decomposition is such that the sub-object has no overlay.

この構成では、2つのサブオブジェクトに属する基本情報を直接的または間接的に適用する特有命令を再計算する必要はない。
好ましい一実施形態では、本方法はさらに、各サブオブジェクトにつき、各特有操作をちょうどN回実施するステップを含む。好ましくは、DSOはDOと等しいことになる。
In this configuration, there is no need to recalculate a specific instruction that directly or indirectly applies basic information belonging to two sub-objects.
In a preferred embodiment, the method further includes performing each specific operation exactly N times for each sub-object. Preferably, DSO will be equal to DO.

一実施形態では、本方法はさらに、オブジェクトをオーバーレイなしにサブオブジェクトに分解することができるように、少なくとも1つの基本情報をオブジェクトに加えるステップを含む。   In one embodiment, the method further includes adding at least one basic information to the object so that the object can be decomposed into sub-objects without overlay.

サブオブジェクトへの分解はまた、オブジェクトに対して実施されることになる操作のシーケンス、とりわけ、このシーケンス中に存在する水平または垂直のフィルタの数およびタイプにも依存することができる。   The decomposition into sub-objects can also depend on the sequence of operations to be performed on the object, in particular the number and type of horizontal or vertical filters present in this sequence.

さらに、シーケンスの特有操作のいくつかがエッジ効果を有するときは、アルゴリズムの実行中に基本情報が失われないように、画像を、非ヌルのオーバーレイを有するサブオブジェクトに分解する必要がある。この構成を、図1eおよび1fで示す。図1eには、操作のシーケンスが各エッジで1ピクセルを失う場合の6×6基本情報を含むサブオブジェクトを示し、図1fには、100個の基本情報を含むオブジェクトを示す。   Furthermore, when some of the sequence specific operations have edge effects, it is necessary to decompose the image into sub-objects with non-null overlays so that basic information is not lost during the execution of the algorithm. This configuration is shown in FIGS. 1e and 1f. FIG. 1e shows a sub-object containing 6 × 6 basic information when the sequence of operations loses one pixel at each edge, and FIG. 1f shows an object containing 100 basic information.

この図1eでは、サブオブジェクトが4つの矩形80、82、83、および84であり、それぞれが36個の基本情報を含むのが示されている。矩形80は、画像の左上に位置する36個の基本情報で構成され、矩形82は、画像の右上に位置する36個の基本情報で構成される。したがって、8つの基本情報86が、サブオブジェクト80と82の両方に共通である。また、8つの基本情報85が、両方のサブオブジェクト80と83とに共通である。8つの基本情報88が、両方のサブオブジェクト82と84とに共通である。また、8つの基本情報89が、両方のサブオブジェクト83と84とに共通である。最後に、4つの基本情報87が、すべての4つのサブオブジェクト80と82と83と84とに共通である。   In FIG. 1e, the sub-objects are shown as four rectangles 80, 82, 83, and 84, each containing 36 basic information. The rectangle 80 is composed of 36 pieces of basic information located at the upper left of the image, and the rectangle 82 is composed of 36 pieces of basic information located at the upper right of the image. Accordingly, the eight basic information 86 is common to both the sub-objects 80 and 82. Eight basic information 85 is common to both sub-objects 80 and 83. Eight basic information 88 is common to both sub-objects 82 and 84. Eight basic information 89 is common to both sub-objects 83 and 84. Finally, the four basic information 87 is common to all four sub-objects 80, 82, 83, and 84.

オブジェクトが画像である場合、一実施形態では、画像は、並置された矩形サブオブジェクトに分解され、これらのサブオブジェクトは、例えば左から右へ、次いで上から下へ処理される。プラットフォームに応じて、サブオブジェクトは、限定しないが以下に挙げる方式のうちの1つに従って選択および記憶される。   If the object is an image, in one embodiment, the image is decomposed into juxtaposed rectangular sub-objects that are processed, for example, from left to right and then from top to bottom. Depending on the platform, sub-objects are selected and stored according to one of the following methods, including but not limited to:

−小さい高速アクセスメモリおよび大きい低速メモリを伴う信号処理プロセッサの場合、サブオブジェクトのサイズは、低速メモリにアクセスせずにサブオブジェクトを処理することができるように選択される。例えば、32×32ピクセルの正方形に対応するサブオブジェクトを採用することが可能となり、現在のサブオブジェクトに関する計算中に、かつ、次のサブオブジェクトに関する計算に必要とされるデータが低速メモリから高速アクセスメモリに転送される間に、前のサブオブジェクトに対する計算の結果が低速メモリに転送される。   For signal processors with small fast access memory and large slow memory, the size of the sub-object is selected so that the sub-object can be processed without accessing the slow memory. For example, it is possible to adopt a sub-object corresponding to a square of 32 × 32 pixels, and data required for the calculation related to the next sub-object during the calculation related to the current sub-object is accessed from the low-speed memory at high speed. While being transferred to the memory, the result of the calculation for the previous sub-object is transferred to the slow memory.

−小さいキャッシュメモリおよび大きい低速メモリを伴うスカラプロセッサの場合、サブオブジェクトのサイズは、キャッシュメモリをできるだけ使用してサブオブジェクトの処理を実施することができるように選択される。例えば、32×32ピクセルの正方形に対応するサブオブジェクト、あるいは1ピクセルのサブオブジェクト、あるいは、とりわけ「生」タイプの未処理画像の場合は4ピクセル(2*2)またはN1*2ピクセルのサブオブジェクトを採用することが可能となる。   For scalar processors with small cache memory and large slow memory, the size of the sub-object is selected so that the sub-object processing can be implemented using as much cache memory as possible. For example, a sub-object corresponding to a square of 32 × 32 pixels, or a sub-object of 1 pixel, or a sub-object of 4 pixels (2 * 2) or N1 * 2 pixels, especially in the case of “raw” type raw images Can be adopted.

−ベクトル信号プロセッサの場合、サブオブジェクトのサイズは、プラットフォームが処理および記憶することのできるベクトルのサイズと同数またはその倍数として選択され、例えば、64個の水平ピクセルに対応するサブオブジェクトを採用することができる。
オブジェクトが画像とは異なるタイプである場合でも、同様にしてサブオブジェクトへの分解をプラットフォームに適応させることができる。
In the case of a vector signal processor, the size of the sub-object is selected as the same or a multiple of the size of the vector that the platform can process and store, eg adopting a sub-object corresponding to 64 horizontal pixels Can do.
Even if the object is of a different type than the image, the decomposition into sub-objects can be similarly adapted to the platform.

本発明による方法は、毎回同じ数量Nの操作が実施されるので、サブオブジェクトに対して実施される特有操作のシーケンシングスケジュールを規則的にすることを可能にする。これにより、ハードウェアアーキテクチャおよびアルゴリズムを単純化することができる。毎回N個の操作の実行は、これらの操作の実行において、操作が適用されるサブオブジェクトとは異なるサブオブジェクトに属する基本情報が適用されることによって可能になる。   The method according to the invention makes it possible to regularize the sequencing schedule of specific operations performed on sub-objects since the same quantity N of operations is performed each time. This simplifies the hardware architecture and algorithm. Execution of N operations each time is enabled by applying basic information belonging to a sub-object different from the sub-object to which the operation is applied in the execution of these operations.

このようにして、操作kが適用される基本情報は、特有操作のタイプとサブオブジェクトにおける基本情報の位置とに従って、同じサブオブジェクトまたは異なるサブオブジェクトに属する可能性がある。   In this way, the basic information to which the operation k is applied may belong to the same sub-object or different sub-objects according to the type of specific operation and the position of the basic information in the sub-object.

このことはまた、異なるサブオブジェクトの境界で「エッジ効果」が生じるのを防止する。実際、毎回N個の結果を生成するN個の特有操作を使用すると、サブオブジェクトのエッジに位置する基本情報を含めたすべての基本情報を処理することを余儀なくされる。この場合、操作の実行中に、他のサブオブジェクトに属する基本情報が要求される。   This also prevents “edge effects” from occurring at the boundaries of different sub-objects. In fact, using N unique operations that produce N results each time, you are forced to process all the basic information, including the basic information located at the edge of the sub-object. In this case, basic information belonging to another sub-object is requested during the execution of the operation.

さらに、本方法は、いくつかの連続した特有操作を1つの同じサブオブジェクトに、例えば画像のラインに適用した後で、次のサブオブジェクトに進むことを可能にする。したがって、1つのラインを読み取っていくつかの特有操作に適用した後で、他のサブオブジェクトの処理に必要な結果だけをメモリに書き込んで次のラインに進むことができるので、メモリアクセス操作の数を削減することができる。   Furthermore, the method allows a number of consecutive specific operations to be applied to one and the same sub-object, for example to a line of the image, before proceeding to the next sub-object. Thus, after one line is read and applied to some specific operations, only the results needed to process other sub-objects can be written to memory and proceed to the next line, so the number of memory access operations Can be reduced.

一実施形態では、プラットフォームは、サブオブジェクトの処理中に計算され別のサブオブジェクトの処理に使用される、基本情報および/または特有操作からの結果を記憶するために、少なくとも1つのオブジェクト間通信メモリを備える。したがって、冗長な計算が削減される。   In one embodiment, the platform includes at least one inter-object communication memory for storing basic information and / or results from specific operations that are computed during processing of a sub-object and used to process another sub-object. Is provided. Thus, redundant calculations are reduced.

さらに別の実施形態では、特有操作のシーケンスは、オブジェクトの処理中に同じデータを適用する1つの単一特有操作のみを含む。
以下、「通信データ」は、いくつかのサブオブジェクトの処理に、またはいくつかの異なる特有操作に使用される、基本情報および/または操作の結果を示す。
In yet another embodiment, the sequence of specific operations includes only one single specific operation that applies the same data during processing of the object.
In the following, “communication data” refers to basic information and / or the result of an operation used for the processing of several sub-objects or for several different specific operations.

好ましくは、サブオブジェクト間の通信データは、それらのサイズおよび計算の数が最小限になるように選択される。
例えば、1つの次元に従ったオブジェクト間通信データは、とりわけ、この次元に従ったフィルタへの入力データ、ならびに、フィルタ出力と組み合わせられることになるデータを含む(これらが相互との関係で正しく整列していない場合)。
Preferably, the communication data between sub-objects is selected such that their size and number of calculations are minimized.
For example, inter-object communication data according to one dimension includes, inter alia, input data to a filter according to this dimension, as well as data that will be combined with the filter output (which are correctly aligned with each other). If not).

オブジェクト間通信メモリ、すなわちオブジェクト間通信データを記憶するのに使用されるメモリは、必要とされる記憶継続時間および速度に従って本質的に異なる。例えば、このメモリは、内部サブオブジェクトスクローリングループの次元に従った通信のためのレジスタおよび/またはローカルメモリ、ならびに/あるいは、他の次元に従った通信のためのローカルおよび/または共有メモリにあるものとすることができる。   The inter-object communication memory, i.e., the memory used to store inter-object communication data, varies essentially according to the storage duration and speed required. For example, this memory is in a register and / or local memory for communication according to the dimensions of the internal sub-object scrarin group and / or local and / or shared memory for communication according to other dimensions. Can be.

オブジェクトが次元DOを含む本発明の一実施形態では、基本情報は、最初に、選択されたDE次元に従ってプラットフォームに送出され、次いで他の次元に従って送出される。この実施形態では、サブオブジェクトは、オブジェクトの次元DOから選択されDE次元を含む次元DSOを有し、処理は、DE次元に従って実施される少なくとも1つの内部サブオブジェクトスクローリングループを含む。   In one embodiment of the invention where the object includes a dimension DO, the basic information is first sent to the platform according to the selected DE dimension and then according to the other dimensions. In this embodiment, the sub-object has a dimension DSO that is selected from the object's dimension DO and includes the DE dimension, and the process includes at least one internal sub-object sculling group that is implemented according to the DE dimension.

内部ループは、サブオブジェクトを処理するためのループに対応し、これはQ個のプロセッサを使用してN個のデータを処理することを可能にする。
この実施形態は、コンポーネントが、処理操作に使用される計算ユニットと同じコンポーネント上に位置するメモリをオブジェクト間通信に使用して、「実行中に」、すなわちリアルタイムで、基本情報がプラットフォームに入力される速度でデータを処理する場合に特に適応されている。したがって、コンポーネントのコストが削減され、メモリアクセス速度は計算ユニットの数に比例する。とりわけ、この実施形態は、スカラまたはベクトル信号またはパイプラインプロセッサの場合に使用される。
The inner loop corresponds to a loop for processing sub-objects, which allows N data to be processed using Q processors.
This embodiment uses the memory where the component is located on the same component as the computing unit used for processing operations for inter-object communication, so that basic information is entered into the platform “in execution”, ie in real time. It is especially adapted for processing data at a high speed. Thus, component costs are reduced and memory access speed is proportional to the number of computing units. In particular, this embodiment is used in the case of scalar or vector signals or pipeline processors.

好ましくは、サブオブジェクトは、DSOが1に等しいようなサブオブジェクト、あるいは「生」画像の場合はDSOが2に等しいようなサブオブジェクトである。後者の場合、第2の次元におけるサブオブジェクトのサイズは2である。
好ましくは、特有操作は、DE次元に従って配置された計算ユニットによって実施される。
Preferably, the sub-object is a sub-object whose DSO is equal to 1, or a sub-object whose DSO is equal to 2 in the case of a “raw” image. In the latter case, the size of the sub-object in the second dimension is 2.
Preferably, the specific operation is performed by a calculation unit arranged according to the DE dimension.

好ましくは、各次元におけるサブオブジェクトのサイズは、当該の次元におけるプロセッサの行列のサイズの倍数である。
好ましくは、次元DSOは、DE次元であり、かつ、必要とされるオブジェクト間通信メモリを縮小するために、次元DOのうちで最も小さい次元である。
Preferably, the size of the sub-object in each dimension is a multiple of the size of the processor matrix in that dimension.
Preferably, the dimension DSO is the DE dimension and is the smallest dimension of the dimension DO in order to reduce the required inter-object communication memory.

好ましくは、次元DOのいずれでもサブオブジェクトのオーバーレイはなく、それにより、各基本情報は1度だけ処理される。したがってループは埋め込まれ、したがってコードはコンパクトである。   Preferably, there is no sub-object overlay in any of the dimensions DO so that each basic information is processed only once. The loop is therefore embedded and therefore the code is compact.

好ましくは、2つのサブオブジェクトの処理中に、計算が再計算されることはない。
好ましくは、サブオブジェクトスクローリングループは、基本情報がプラットフォーム上に到着する際の次元と同じ順序に従って埋め込まれる。
Preferably, the computation is not recalculated during the processing of the two sub-objects.
Preferably, the sub-object scrollin groups are embedded according to the same order as the dimensions when the basic information arrives on the platform.

オブジェクトが次元DOを含む一実施形態では、基本情報は、オブジェクトのDE次元に従って、次いで他の次元に従ってプラットフォームに送出される。この実施形態では、サブオブジェクトは、オブジェクトの次元DOを含むか、または、オブジェクトの次元DOから選択されDE次元が含まれない次元DO−1を含む。処理はさらに、DE次元に従って実施される少なくとも1つの内部サブオブジェクトスクローリングループを含む。   In one embodiment where the object includes a dimension DO, basic information is sent to the platform according to the DE dimension of the object and then according to other dimensions. In this embodiment, the sub-object includes an object dimension DO, or includes a dimension DO-1 selected from the object dimension DO and not including the DE dimension. The processing further includes at least one internal sub-object scrarin group implemented according to the DE dimension.

別の実施形態では、各次元におけるサブオブジェクトのサイズは、オブジェクトのサイズ、ならびに/または、基本情報がプラットフォームに送出される送出速度、ならびに/または、プラットフォームの計算速度、ならびに/または、プラットフォームのメモリのうちの少なくとも1つのサイズおよび速度、に従って決定される。   In another embodiment, the size of the sub-object in each dimension is the size of the object and / or the sending rate at which basic information is sent to the platform, and / or the platform computing rate, and / or the platform memory. At least one of the size and speed.

この実施形態は、コンポーネントが、処理操作に使用される計算ユニットと同じコンポーネント上に位置するローカルメモリであって、DO−1(1つの次元がDEに対応するのではない)に従った通信データの長期記憶に使用されるより低速な共有外部メモリのための中継としての働きをするローカルメモリを、オブジェクト間通信に使用して、「実行中に」、基本情報がプラットフォームに入力される速度でデータを処理する場合に特に適する。この場合、ローカルメモリのサイズはサブオブジェクトのサイズに伴って増大し、共有メモリによる速度はサブオブジェクトのサイズに伴って減少し、外部メモリのサイズは、DE次元以外の次元に従ったサブオブジェクトのサイズに伴って増大し、したがって、内部および外部メモリのサイズと、外部メモリの速度は、サブオブジェクトのサイズを調整することによって調整することができる。したがってコストが削減され、メモリによる速度はオブジェクトのサイズから独立し、コンポーネントは、オブジェクトサイズに最適化させることができ、より大きいサイズのオブジェクトのために外部メモリを用いて再使用することができる。   In this embodiment, the component is a local memory located on the same component as the computing unit used for processing operations, and communication data according to DO-1 (one dimension does not correspond to DE) Local memory, which acts as a relay for slower shared external memory used for long-term storage, is used for object-to-object communication, at the rate at which basic information is entered into the platform "on the fly" Especially suitable when processing data. In this case, the size of the local memory increases with the size of the sub-object, the speed of the shared memory decreases with the size of the sub-object, and the size of the external memory is the size of the sub-object according to a dimension other than the DE dimension. It increases with size, so the size of the internal and external memory and the speed of the external memory can be adjusted by adjusting the size of the sub-objects. Thus, costs are reduced, memory speed is independent of object size, components can be optimized for object size, and reused with external memory for larger size objects.

この実施形態はまた、コンポーネントが、基本情報がプラットフォームに入力される速度よりも遅い速度で基本情報を処理し、処理操作中にメモリを使用してオブジェクトを記憶する場合に、より特有に適応されている。この場合、目的は、内部メモリのサイズおよび処理速度を制限して、必要とされる内部メモリサイズ、計算ユニットの数、およびメモリ速度を低減することである。   This embodiment is also more specifically adapted when the component processes basic information at a rate slower than the rate at which the basic information is entered into the platform and uses memory to store objects during processing operations. ing. In this case, the objective is to limit the size and processing speed of the internal memory to reduce the required internal memory size, number of computing units, and memory speed.

この実施形態は、とりわけスカラまたはベクトル信号またはパイプラインプロセッサに適用される。
好ましくは、特有操作は、Qよりも大きいサイズ次元に従って配置されたQ個の計算ユニットによって実施される。
好ましくは、各次元におけるサブオブジェクトのサイズは、当該の次元におけるプロセッサの行列のサイズの倍数である。
This embodiment applies inter alia to scalar or vector signals or pipeline processors.
Preferably, the specific operation is performed by Q computing units arranged according to a size dimension larger than Q.
Preferably, the size of the sub-object in each dimension is a multiple of the size of the processor matrix in that dimension.

好ましくは、DE次元を除いて、次元DSOは、必要とされるオブジェクト間通信メモリを制限するために、次元DOのうちで最も小さい次元である。
好ましくは、次元DOのいずれでもサブオブジェクトのオーバーレイはなく、それにより、各基本情報を1度だけ処理することが可能である。したがってループは埋め込まれ、コードはコンパクトである。
Preferably, except for the DE dimension, the dimension DSO is the smallest dimension of the dimension DO to limit the required inter-object communication memory.
Preferably there is no sub-object overlay in any of the dimensions DO, so that each basic information can be processed only once. The loop is therefore embedded and the code is compact.

好ましくは、サイズの小さい次元では、サブオブジェクトのオーバーレイはなく、2つのサブオブジェクトの処理中に計算が再計算されることはないが、サイズの大きい次元では、このことは重要性が劣る。というのは、再計算はほんのわずかなコストを表すだけだからである。   Preferably, in the small size dimension, there is no overlay of sub-objects and the computation is not recalculated during processing of the two sub-objects, but in the large size dimension this is less important. This is because recalculation represents only a small cost.

好ましくは、現在のサブオブジェクトの計算中に、前のサブオブジェクトの計算中に生成されたオブジェクト間通信データがローカルメモリから外部メモリに転送され、後続のサブオブジェクトの計算に必要とされるオブジェクト間通信データが外部メモリからローカルメモリに転送される。内部サブオブジェクトスクローリングループはDE次元に従って実施されるので、内部と外部のメモリ間の転送は、DE次元を除く次元DO−1に従ったオブジェクト間通信データのみに関係する。したがって、必要とされるローカルメモリは、これらの次元DO−1に従ったオブジェクト間通信データの3倍のサイズと、DE次元に従ったオブジェクト間通信データの1倍のサイズとを足したサイズに制限される。例えば、画像処理アルゴリズムの場合、必要とされる内部メモリサイズは、毎秒数千万ピクセルを処理するのに数百または数千バイトに制限される。   Preferably, during the calculation of the current sub-object, the inter-object communication data generated during the calculation of the previous sub-object is transferred from the local memory to the external memory, and the inter-object required for the calculation of the subsequent sub-object Communication data is transferred from the external memory to the local memory. Since the internal sub-object scrambled group is implemented according to the DE dimension, the transfer between the internal and external memories is only concerned with the inter-object communication data according to the dimension DO-1 excluding the DE dimension. Therefore, the required local memory is a size obtained by adding three times the size of the inter-object communication data according to these dimensions DO-1 and one time the size of the inter-object communication data according to the DE dimension. Limited. For example, for image processing algorithms, the required internal memory size is limited to hundreds or thousands of bytes to process tens of millions of pixels per second.

好ましくは、データは次のように移行する。すなわち、オブジェクトの基本情報が外部メモリに記憶される。少なくとも1つのサブオブジェクトが共有メモリ中にあるとき、サブオブジェクトが外部メモリから読み取られる。DE次元を除く次元DO−1に従ったオブジェクト間通信データが共有メモリから読み取られる。サブオブジェクト処理からの結果と、DE次元を除く次元DO−1に従ったオブジェクト間通信データとが、共有メモリに書き込まれる。出力に使用される次元に従った完全なデータが共有メモリ中にあるとき、このデータは共有メモリ中で読み取られ、利用可能になる。これにより、移行は予測可能であり、単純であり、規則的である。   Preferably, the data migrates as follows. That is, the basic information of the object is stored in the external memory. When at least one sub-object is in shared memory, the sub-object is read from external memory. Inter-object communication data according to the dimension DO-1 excluding the DE dimension is read from the shared memory. The result from the sub-object processing and the inter-object communication data according to the dimension DO-1 excluding the DE dimension are written into the shared memory. When complete data according to the dimensions used for output is in shared memory, this data is read in shared memory and made available. This makes the transition predictable, simple and regular.

好ましくは、サブオブジェクトスクローリングループは、基本情報がプラットフォーム上に到着する際の次元と同じ順序に従って埋め込まれる。
以下の実施形態は、ベクトル信号プロセッサの場合、Q個の計算ユニット上で同時に実施される特有操作のシーケンスに含まれるQ個の計算ユニット上での任意の処理操作に適用することができる。このシーケンスは、必ずしも同じタイプの基本情報からなるオブジェクトに適用されるとは限らない。これらの実施形態は、例えばベクトル信号プロセッサの場合に、異なる計算ユニット間で通信をセットアップするための新しい方法を記述する。
Preferably, the sub-object scallin groups are embedded according to the same order as the dimensions when the basic information arrives on the platform.
The following embodiments can be applied to any processing operation on Q computational units included in a sequence of specific operations performed simultaneously on Q computational units in the case of a vector signal processor. This sequence does not necessarily apply to objects consisting of the same type of basic information. These embodiments describe a new method for setting up communications between different computing units, for example in the case of a vector signal processor.

特有操作の少なくとも一部分が少なくとも1つのパラメータ値を適用し、特有操作が、同じ特有操作を同時に計算するQ個の計算ユニットによって実施される一実施形態では、特有操作のシーケンスは、Q個の計算ユニット上で同時にC個のパラメータ値からパラメータ値を選択する少なくとも1つの特有選択操作を含む。この選択は、少なくとも1つの基本情報および/または少なくとも1つの特有操作結果および/または少なくとも1つのパラメータ値に従って、プロセッサにより差別化された方式で行われる。   In one embodiment, where at least a portion of the specific operations apply at least one parameter value and the specific operations are performed by Q computing units that simultaneously calculate the same specific operations, the sequence of specific operations is Q calculations Including at least one unique selection operation for selecting a parameter value from C parameter values simultaneously on the unit. This selection is made in a differentiated manner by the processor according to at least one basic information and / or at least one specific operation result and / or at least one parameter value.

一例では、Cは8に等しい。
相関表を計算するには、例えばCモジュロ表に対する入力値Xに従って3つの特有選択操作を使用して、Xのa、b、およびc関数を得て、Q個のスプライン関数の並列計算に対応するa*X+b*X+cを計算することができる。
n/Cのデフェージングに対応する補間フィルタ係数を決定するには、補間係数を与える入力値nに従って特有選択操作を使用することができる。
In one example, C is equal to 8.
To calculate the correlation table, for example, using three unique selection operations according to the input value X for the C modulo table, get the a, b, and c functions of X, corresponding to the parallel calculation of Q spline functions A * X 2 + b * X + c can be calculated.
To determine the interpolation filter coefficients corresponding to n / C dephasing, a specific selection operation can be used according to the input value n giving the interpolation coefficients.

絶対位置の関数であるパラメータ値を選択するには、1とCの間の結果を与える位置の関数を計算することができ、次いで、この計算からの結果を、絶対位置に関するパラメータ値を与える特有選択操作のための入力で使用する。したがって例えば、位置のデファジー強度関数を適応させることができる。   To select a parameter value that is a function of absolute position, one can calculate a function of position that gives a result between 1 and C, and then use the result from this calculation to give a parameter value for the absolute position. Used for input for selection operations. Thus, for example, a position defuzzy intensity function can be adapted.

色、解像度などにおける絡み合ったチャネルそれぞれに対して差別化された値を選択するには、1とCの間の位置の関数をやはり計算することができ、次いで、この計算の結果を、絶対位置に関するパラメータ値を与える特有選択操作のための入力で使用する。   To select a differentiated value for each of the intertwined channels in color, resolution, etc., a position function between 1 and C can still be calculated, and the result of this calculation is then expressed as an absolute position Used as input for specific selection operations that give parameter values for.

従来、ベクトル信号プロセッサでは、オフセットと置換のいずれかによってデータを選択する特有操作が知られている。しかし、ベクトル信号プロセッサは、とりわけプロセッサの複雑さを最適化するためにCがQよりも小さい場合に、データCに対してインダイレクションを実施することを許容しない。   Conventionally, in vector signal processors, specific operations for selecting data by either offset or permutation are known. However, the vector signal processor does not allow indirection to be performed on data C, especially when C is less than Q to optimize processor complexity.

Q個のプロセッサが1つの次元におけるベクトルに対応する一実施形態では、C個の定数は、複製によってQ個の定数のレジスタ中で拡張される。ベクトルの右のC個の定数、次いでC個の定数、次いで以下同様となる。特有選択操作を使用して、ベクトルの各要素の左の値Cから値が選択される。   In one embodiment where Q processors correspond to vectors in one dimension, the C constants are expanded in a register of Q constants by replication. C constants to the right of the vector, then C constants, and so on. A value is selected from the value C to the left of each element of the vector using a unique selection operation.

特有操作の少なくとも一部分が、同じ特有操作を同時に計算するQ個の計算ユニットによって実施される一実施形態では、特有操作のシーケンスは、少なくとも1つの基本情報および/または少なくとも1つの特有操作結果および/または少なくとも1つのパラメータ値から得られる相対変位に従って、プロセッサにより差別化された方式で、Q個の計算ユニット上で同時にC個のデータからデータを選択することを実施する少なくとも1つの特有選択操作を含む。   In one embodiment, where at least a portion of the specific operations are performed by Q computing units that simultaneously calculate the same specific operations, the sequence of specific operations includes at least one basic information and / or at least one specific operation result and / or Or at least one unique selection operation that performs selecting data from C data simultaneously on Q computing units in a manner differentiated by a processor according to relative displacement obtained from at least one parameter value. Including.

実際上は、循環的に連鎖されたベクトルに従ってQ個の計算ユニットが配置された例では、各計算ユニットは、同時かつ独立した方式で、左にあるその近傍のCからのデータにアクセスすることができる。   In practice, in an example where Q computation units are arranged according to a circularly chained vector, each computation unit accesses data from its neighboring C on the left in a simultaneous and independent manner. Can do.

2*C個以上のデータからの選択を可能にするために、特有選択操作は条件付きとすることができる。
したがって、局所的な変形、例えば位置に従った歪みを計算することができ、ベクトルに局所的に適用することができる。データはまた、局所的に結合して、フィルタを生成することができ、スケールを変更することができ、あるいは、局所変位を適用する他の任意の操作を実施することができる。
The unique selection operation can be conditional to allow selection from 2 * C or more data.
Thus, local deformations, for example distortion according to position, can be calculated and applied locally to the vector. The data can also be combined locally to create a filter, change the scale, or perform any other operation that applies local displacement.

一実施形態では、データCよりも多くを必要とする変位は、少なくとも1つの一様な変位と、それに続く、少なくとも1つの選択操作を使用して実施される差別化された局所変位とに分解することができる。一様な変位は、とりわけ、いくつかの選択操作を適用することによって、または通信メモリを使用することによって実施することができる。   In one embodiment, a displacement that requires more than data C is decomposed into at least one uniform displacement followed by a differentiated local displacement performed using at least one selection operation. can do. Uniform displacement can be implemented, among other things, by applying several selection operations or by using a communication memory.

一例では、相対変位は、あるサブオブジェクトおよび/またはオブジェクトに関する、すべての基本情報に共通である。別の例では、相対変位は、基本情報ごとに異なり、サブオブジェクトにおける基本情報の絶対位置、および/またはオブジェクトにおけるサブオブジェクトの絶対位置に依存するものとすることもでき、そうでないものとすることもできる。より一般的には、この変位は、少なくとも1つの基本情報および/または少なくとも1つの特有操作結果および/または少なくとも1つのパラメータ値に従った計算の結果である。   In one example, the relative displacement is common to all basic information about a sub-object and / or object. In another example, the relative displacement is different for each basic information and may or may not depend on the absolute position of the basic information in the sub-object and / or the absolute position of the sub-object in the object. You can also. More generally, this displacement is the result of a calculation according to at least one basic information and / or at least one specific operation result and / or at least one parameter value.

特有操作のシーケンスが少なくとも1つの特有位置操作を含み、オブジェクトが次元DOを含む一実施形態では、特有位置操作は、次元DOの1つに従った位置情報を生成する。   In one embodiment where the sequence of unique operations includes at least one unique position operation and the object includes a dimension DO, the unique position operation generates position information according to one of the dimensions DO.

位置はとりわけ、以下に挙げるものに限定しないが、オブジェクトにおける基本情報の絶対位置、サブオブジェクトの位置、Cモジュロプロセッサの位置、複数スケールデータの位置、グリッドとの関係における相対位置、または他の任意の位置とすることができる。   The positions are not particularly limited to those listed below, but the absolute position of the basic information in the object, the position of the sub-object, the position of the C modulo processor, the position of the multiscale data, the relative position in relation to the grid, or any other arbitrary Position.

一実施形態では、特有操作のシーケンスは、少なくとも1つの基本情報および/または少なくとも1つの特有操作結果および/または少なくとも1つのパラメータ値に従って相対位置を生成する少なくとも1つの特有操作を含む。   In one embodiment, the sequence of unique operations includes at least one unique operation that generates a relative position according to at least one basic information and / or at least one unique operation result and / or at least one parameter value.

特有相対位置計算操作は、特有選択操作の前に使用することができる。
一例では、相対位置は、あるサブオブジェクトおよび/またはオブジェクトに属する、すべての基本情報に共通である。別の例では、相対位置は、基本情報ごとに異なり、あるいは、サブオブジェクトにおける基本情報の絶対位置、および/またはオブジェクトにおけるサブオブジェクトの絶対位置に依存するものとすることもでき、そうでないものとすることもできる。より一般的には、相対位置は、少なくとも1つの基本情報および/または少なくとも1つの特有操作結果および/または少なくとも1つのパラメータ値に従った計算の結果とすることができる。
The unique relative position calculation operation can be used before the unique selection operation.
In one example, the relative position is common to all basic information belonging to a sub-object and / or object. In another example, the relative position may vary from basic information to basic information, or may depend on the absolute position of the basic information in the sub-object and / or the absolute position of the sub-object in the object. You can also More generally, the relative position can be the result of a calculation according to at least one basic information and / or at least one specific operation result and / or at least one parameter value.

サブオブジェクトのサイズ、すなわち各オブジェクト中に存在する基本情報の数量Nは、例えば、処理操作に使用されるプラットフォームのアーキテクチャに従って決定される。したがって、一実施形態では、特有操作の少なくとも一部分はQ個の計算ユニットによって実施され、QはNに等しいかまたはNの約数である。NがQの倍数であることにより、処理操作はより一層規則的になる。というのは、すべての計算ユニットが同時に計算ステップを完了するからである。   The size of the sub-objects, that is, the quantity N of basic information present in each object is determined, for example, according to the architecture of the platform used for the processing operation. Thus, in one embodiment, at least a portion of the specific operations are performed by Q computational units, where Q is equal to or a divisor of N. With N being a multiple of Q, the processing operation becomes even more regular. This is because all the calculation units complete the calculation steps at the same time.

一実施形態では、Q個のプロセッサの数とN個の基本情報の数とは異なり、サブオブジェクトの処理は、N/Q個の反復の内部ループを1つだけ含む。
したがって処理は規則的であり、メモリと使用レジスタ数は最小限になり、各サブオブジェクト内での通信は、好ましくはレジスタを用いて実施される。
In one embodiment, unlike the number of Q processors and the number of N basic information, the processing of sub-objects includes only one inner loop of N / Q iterations.
Processing is therefore regular, the number of memory and registers used is minimized, and communication within each sub-object is preferably performed using registers.

一実施形態では、数十個から数百個までの計算ユニットがあり、これらの計算ユニットはとりわけ、0.13μコンポーネントの製造方法を使用して、毎秒、数千万ピクセルを含む画像に対して数百個の演算の計算の実施を可能にする。   In one embodiment, there are tens to hundreds of computing units, which are inter alia for images containing tens of millions of pixels per second using the 0.13μ component manufacturing method. Enables the calculation of hundreds of operations.

別の実施形態では、計算ユニットの数は数千個から数百万個であり、本発明は、プログラミングの単純性の高さを維持しながら、また計算ユニットの数に比例した性能により、この計算パワーを使用してオブジェクトを処理することを可能にする。
この規則性をさらに改善するために、特有操作の数PもまたQの倍数とすることができる。一般に、特有操作は、プラットフォームの上流でコンパイラによって決定され、コンパイラは、特有操作の数がQの倍数でない場合に、この関係(特有操作の数がQの倍数であること)を得るために、効果なしの特有操作を生み出すように構成される。したがって、種々の計算ユニットに対する特有操作の割当てがどんなものであろうと、処理は完全に規則的になる。
In another embodiment, the number of computing units ranges from thousands to millions, and the present invention maintains this high level of programming simplicity while also maintaining performance in proportion to the number of computing units. Allows processing of objects using computational power.
To further improve this regularity, the number of unique operations P can also be a multiple of Q. In general, the specific operations are determined by the compiler upstream of the platform, and the compiler obtains this relationship (the number of specific operations is a multiple of Q) when the number of specific operations is not a multiple of Q. Configured to produce unique operations without effects. Thus, whatever the assignment of specific operations to the various computing units, the processing becomes completely regular.

本発明の一実施形態では、プラットフォーム中のQ個の計算ユニットはすべて同一である。   In one embodiment of the invention, all Q computing units in the platform are identical.

いくつかの特有操作はパラメータを使用し、この場合、これらのパラメータの値もまた処理される。これらのパラメータは、例えば乗率とすることができる。これらのパラメータは、例えば、限定しないが以下に挙げるものに対応することができる。   Some specific operations use parameters, in which case the values of these parameters are also processed. These parameters can be, for example, multiplication factors. These parameters can correspond to, for example, but not limited to:

−フィルタ係数、および/または
−飽和度の値、および/または
−オフセット値、および/または
−相関表
-Filter coefficients and / or-Saturation values and / or-Offset values and / or-Correlation tables

一実施形態では、特有操作によって使用されるパラメータの値は、これらの特有操作において直接的または間接的に適用される基本情報のサブオブジェクトにおける位置に依存する。例えば、処理されるオブジェクトが画像である場合、撮影に使用された光学機構のせいで画像に欠陥が現れることがある。これらの欠陥は、画像全体にわたり概して一様ではなく、とりわけエッジでは一様ではない。   In one embodiment, the value of the parameter used by the specific operations depends on the position in the sub-object of the basic information applied directly or indirectly in these specific operations. For example, if the object being processed is an image, defects may appear in the image due to the optical mechanism used for imaging. These defects are generally not uniform throughout the image, especially at the edges.

この場合、この不鮮明を補償するために、画像のすべてのピクセルに同じ補償係数が適用されることにはならない。
例えば、すべての基本情報に共通のパラメータをフィルタに対して使用すると、鮮鋭度を一様に高めることができる。
In this case, the same compensation factor is not applied to all pixels of the image to compensate for this blur.
For example, if parameters common to all basic information are used for the filter, the sharpness can be increased uniformly.

例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存するパラメータをフィルタに対して使用すると、光学的な欠陥を補償するためにエッジでより大幅に鮮鋭度が高まる。   For example, the use of parameters on the filter that depend on the absolute position of the basic information in the object being processed results in a sharper edge sharpness to compensate for optical defects.

例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存するパラメータをビネッティング補正に使用すると、光学的な欠陥を補償するためにエッジでより高い補償が生み出される。   For example, using a parameter that depends on the absolute position of the basic information in the object being processed for vignetting correction produces a higher compensation at the edge to compensate for optical defects.

例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存するパラメータをデモザイキング操作に使用すると、センサから受け取られた未処理画像中の「赤」ピクセル、「緑」ピクセル、および「青」ピクセルを異なる方式で処理することができる。
例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存する第2のデータ、とりわけ変位を、ディジタル拡大計算(「ズーム」)または歪み補正計算に使用すると、各点における補間を計算するのに必要なピクセルが生成される。
For example, if a parameter that depends on the absolute position of the basic information in the object being processed is used in a demosaicing operation, the “red”, “green”, and “blue” pixels in the raw image received from the sensor It can be processed in different ways.
For example, if the second data, in particular the displacement, that depends on the absolute position of the basic information in the object being processed is used in a digital magnification calculation (“zoom”) or distortion correction calculation, it is necessary to calculate the interpolation at each point. New pixels are generated.

パラメータの値は、それによって、このパラメータのタイプに応じて、
−一定であり、アルゴリズムに固有である。この場合、パラメータの値はとりわけ、処理手段またはプラットフォームに送出することができる。かつ/あるいは、
The value of the parameter thereby depends on the type of this parameter
-Constant and specific to the algorithm. In this case, the value of the parameter can in particular be sent to the processing means or platform. And / or

−オブジェクトのソースまたは宛先に依存する。例えば、処理されるオブジェクトが、所与の光学機構を備えたデバイスからの画像である場合、パラメータの値は、光学機構のタイプに依存する可能性があり、光学機構のタイプは、画像中の鮮鋭度のレベルに影響を有する。この場合、パラメータの値はとりわけ、処理手段またはプラットフォームに送出することができる。かつ/あるいは、   Depends on the source or destination of the object. For example, if the object being processed is an image from a device with a given optical mechanism, the value of the parameter may depend on the type of optical mechanism, and the optical mechanism type is Has an effect on the level of sharpness. In this case, the value of the parameter can in particular be sent to the processing means or platform. And / or

−処理されるオブジェクトに依存する。例えば、処理されるオブジェクトがセンサからの画像である場合、パラメータの値は、このオブジェクトを取り込むのに効果的に使用されるセンサの利得に依存する可能性があり、センサの利得は、画像中の雑音のレベルに影響を有する。この場合、パラメータの値はとりわけ、プラットフォームによって送出、選択、または計算することができる。かつ/あるいは、   Depends on the object being processed. For example, if the object being processed is an image from a sensor, the value of the parameter may depend on the sensor gain effectively used to capture this object, and the sensor gain is Has an effect on the noise level. In this case, the value of the parameter can be sent, selected or calculated by the platform, among others. And / or

−オブジェクトにおける基本情報の絶対位置に依存する。この場合、パラメータの値はとりわけ、プラットフォームによって送出、選択、または計算することができる。かつ/あるいは、   Depends on the absolute position of basic information in the object. In this case, the value of the parameter can be sent, selected or calculated by the platform, among others. And / or

−オブジェクトにおける基本情報の絶対位置に依存しない。
パラメータ値は、アルゴリズムの定義との関係で、同時にまたはアポステリオリに決定することができる。
-It does not depend on the absolute position of basic information in the object.
The parameter value can be determined simultaneously or apostorily in relation to the algorithm definition.

ある種のパラメータの値が、あるオブジェクトと別のオブジェクト、あるサブオブジェクトと別のサブオブジェクト、またはある基本情報と別の基本情報とで変動する可能性があることを見てきた。   We have seen that the value of certain parameters can vary from one object to another, from one sub-object to another sub-object, or from some basic information to another basic information.

この場合、一実施形態では、パラメータの値は、変更の度に計算される。別の実施形態では、パラメータの可能な値はアプリオリに計算され、変更の度に索引またはアドレスが決定されて、それにより、パラメータの値へのアクセスが例えば表の中で可能になる。   In this case, in one embodiment, the value of the parameter is calculated for each change. In another embodiment, the possible values of the parameter are calculated a priori and the index or address is determined for each change, thereby allowing access to the value of the parameter, for example in a table.

別の実施形態は、よりパラメータに特有に適応され、それにより値がサブオブジェクトの絶対位置に従ってあるサブオブジェクトと別のサブオブジェクトとで変動し、かつそれにより値の数が制限される(例えば光学的な鮮鋭度特性に対応するパラメータ)ものだが、この実施形態では、有限数のパラメータ値セットが決定され、各セットは記憶され、各サブオブジェクトにつき、使用されるセットが、例えば使用されるセットのアドレスを与える位置の関数を計算することによって選択される。   Another embodiment is more specifically adapted to parameters, whereby values vary between one sub-object and another sub-object according to the absolute position of the sub-object and thereby limit the number of values (e.g. optical However, in this embodiment, a finite number of parameter value sets are determined, each set is stored, and for each sub-object, the set used is, for example, the set used. Is selected by calculating the function of the position giving the address of.

計算ユニットに対する特有操作の割当ては、操作のタイプと、シーケンスと、計算ユニット自体とに依存する。   The assignment of specific operations to a calculation unit depends on the type of operation, the sequence, and the calculation unit itself.

例えば、一実施形態では、計算ユニットは特殊化されている。すなわち、1つの同じ特有操作からのN個の結果は、1つの同じ計算ユニットによって計算される。特有操作が、プラットフォームのメモリの1つに存在するパラメータを必要とする場合、特殊化された計算ユニットを配置することは時間を節約する。というのは、この操作を担う計算ユニットは、処理の始めにメモリアクセスを実施してパラメータを取り出し、次いで、メモリに再びアクセスする必要なしに操作をN回適用することができるからである。   For example, in one embodiment, the computing unit is specialized. That is, N results from one and the same specific operation are calculated by one and the same calculation unit. Placing specialized computing units saves time if a specific operation requires a parameter that resides in one of the platform's memories. This is because the computing unit responsible for this operation can perform a memory access at the beginning of the process to retrieve the parameters and then apply the operation N times without having to access the memory again.

したがって、一実施形態では、少なくとも1つの特有操作が少なくとも1つのパラメータを適用するとき、この特有操作は、パラメータ値の一部分を含むメモリユニットへのアクセスを有する少なくとも1つの計算ユニットによって実施され、この部分は、この計算ユニットによって実施される特有操作に従って決定される。これらのパラメータ値を記憶するために、種々のハードウェア構成が存在することができ、これらについては後で詳細に述べる。例えば、各計算ユニットがそれ自体のメモリを有することができ、あるいはすべてのユニットに共通のメモリが存在することができ、あるいは計算ユニットは共にグループ化されて、グループごとのメモリを有することさえできる。   Thus, in one embodiment, when at least one specific operation applies at least one parameter, the specific operation is performed by at least one computing unit having access to a memory unit that includes a portion of the parameter value, The part is determined according to the specific operations performed by this calculation unit. Various hardware configurations can exist to store these parameter values, which will be described in detail later. For example, each computing unit can have its own memory, or there can be memory common to all units, or computing units can be grouped together and even have per-group memory. .

一実施形態では、少なくとも1つの特有操作が少なくとも1つのパラメータを適用するとき、このパラメータの値は、処理されるオブジェクトにおける、サブオブジェクトおよび/または基本情報の位置に依存する。   In one embodiment, when at least one specific operation applies at least one parameter, the value of this parameter depends on the position of the sub-object and / or basic information in the object being processed.

いくつかの操作では、パラメータ値は、処理されるオブジェクト全体に対して固定されることになり、他の操作では、この値は位置に応じて変動することになる。したがって、例えば、画像不鮮明補正係数は、位置が画像の中央であるかエッジであるかに応じて、いくらか高くすることができる。   In some operations, the parameter value will be fixed for the entire object being processed, and in other operations this value will vary with position. Thus, for example, the image blur correction coefficient can be made somewhat higher depending on whether the position is the center or the edge of the image.

処理操作を実施するのに使用されるプラットフォームに応じて、計算ユニットの構成は様々とすることができる。したがって一実施形態では、特有操作は、連鎖された計算ユニットによって実施される。   Depending on the platform used to perform the processing operation, the configuration of the computing unit can vary. Thus, in one embodiment, the specific operation is performed by a chained computing unit.

実際、この場合、計算ユニットは「直列に」またはツリーに従って連鎖させることができ、処理される基本情報に対する計算の結果が、あるユニットから別のユニットに移行する。このような構成は、処理操作が規則的であること、およびそれにより基本情報の移行を規則的に実施できることによって可能になる。   In fact, in this case, the computing units can be chained “in series” or according to a tree, and the result of the computation on the basic information being processed is transferred from one unit to another. Such a configuration is made possible by the regular processing operations and the ability to regularly migrate the basic information.

計算ユニットはまた、いくつかの基本情報を同時に処理するために並列に配置することもできる。この場合、計算ユニットは、異なる基本情報からの計算(例えばフィルタ)の結果を結合することができるように連鎖される。   The computing units can also be arranged in parallel to process some basic information simultaneously. In this case, the calculation units are chained so that the results of calculations (eg filters) from different basic information can be combined.

一実施形態では、種々のプロセッサを含むコンポーネントのケーブリングを容易にするために、計算ユニットは、1つの次元における連鎖に従って連鎖される。別の実施形態では、計算ユニットは、少なくとも1つの循環的連鎖に従って連鎖される。この後者の実施形態は、途切れのない処理操作を生成する。というのは、基本情報はすべての計算ユニットの中を移行し、いくつかの特有操作を受け、その後で再び最初の計算ユニットに送出されるからである。   In one embodiment, computational units are chained according to a chain in one dimension to facilitate cabling of components that include various processors. In another embodiment, the computing units are chained according to at least one cyclic chain. This latter embodiment produces uninterrupted processing operations. This is because the basic information moves through all the calculation units, undergoes some special operations, and is then sent again to the first calculation unit.

計算ユニットが少なくとも1つの循環的連鎖に従って連鎖される一実施形態では、それにより連鎖は少なくとも1つの待ち行列も含む。
本方法のこの実施形態は、このようにして実施することができる。
サブオブジェクトが次元DSOを含む本発明の別の実施形態では、特有操作は、サブオブジェクトの各次元での少なくとも1つの循環的連鎖に従って連鎖された計算ユニットによって実施される。サブオブジェクトの各D1特有次元での循環的連鎖(1つまたは複数)はさらに、サブオブジェクトのD1特有次元での循環的連鎖(1つまたは複数)間で共有されるかまたは共有されない少なくとも1つの待ち行列を含む。
In one embodiment where the computing units are chained according to at least one circular chain, the chain also includes at least one queue.
This embodiment of the method can thus be implemented.
In another embodiment of the invention in which the sub-object includes a dimension DSO, the specific operations are performed by computational units chained according to at least one circular chain in each dimension of the sub-object. The circular chain (s) in each D1-specific dimension of the sub-object is further at least one shared or not shared between the circular chain (s) in the D1-specific dimension of the sub-object Includes queues.

本方法のこの実施形態は、このようにして実施することができる。これについては後で図によって詳細に述べる。
好ましくは、サブオブジェクトの同じ1つの次元に従っていくつかの循環的連鎖がある場合(とりわけプロセッサがグリッドに従って配置されているとき)、待ち行列は、同じ次元に従ったすべての循環的連鎖間で共有される。好ましくは、サブオブジェクトの各次元につきちょうど1つの待ち行列があり、各待ち行列は、同じ次元に従ったすべての循環的連鎖間で共有される。
This embodiment of the method can thus be implemented. This will be described in detail later with reference to the drawings.
Preferably, if there are several circular chains according to the same one dimension of the sub-object (especially when the processors are arranged according to the grid), the queue is shared among all circular chains according to the same dimension Is done. There is preferably exactly one queue for each dimension of the sub-object, and each queue is shared among all circular chains according to the same dimension.

サブオブジェクトが次元DSOを含む本発明の別の実施形態では、特有操作は、少なくとも1つのCC1循環的連鎖を用いてサブオブジェクトのDD所定次元に従って連鎖された計算ユニットによって実施される。このCC1循環的連鎖はさらに、少なくとも1つの待ち行列を含む。この実施形態では、本方法はさらに、少なくとも1つの特有命令に対し、この特有命令が適用される度に、計算ユニットUC1上で実施された特有命令のこの適用の結果を、この連鎖に従ってこの計算ユニットUC1に続く計算ユニットUC2または待ち行列に送出するステップを含む。   In another embodiment of the invention in which the sub-object includes a dimension DSO, the specific operation is performed by a computational unit chained according to the DD predetermined dimension of the sub-object using at least one CC1 circular chain. The CC1 cyclic chain further includes at least one queue. In this embodiment, the method further comprises, for at least one specific instruction, each time this specific instruction is applied, the result of this application of the specific instruction performed on the calculation unit UC1 according to this chain. Sending to the calculation unit UC2 or queue following unit UC1.

本方法のこの実施形態は、このようにして実施することができる。
一実施形態では、サブオブジェクトは次元DSOを含み、特有操作は、少なくとも1つのCC1循環的連鎖を用いてサブオブジェクトのDD所定の次元に従って連鎖された計算ユニットによって実施される。このCC1循環的連鎖は、少なくとも1つの待ち行列をさらに含む。本方法はさらに、少なくとも1つの特有操作に対して、この特有操作が適用される度に以下のステップを含む。
This embodiment of the method can thus be implemented.
In one embodiment, the sub-object includes a dimensional DSO and the specific operation is performed by a computational unit chained according to the DD predetermined dimension of the sub-object using at least one CC1 circular chain. The CC1 cyclic chain further includes at least one queue. The method further includes the following steps each time the specific operation is applied to at least one specific operation.

−計算ユニットUC1上で実施された特有操作の上記適用からの結果を、この連鎖に従ってこの計算ユニットUC1に続く計算ユニットUC2または待ち行列に送出する。
−別のサブオブジェクトの処理中に待ち行列に送出された特有命令の適用の結果を、待ち行列から、待ち行列中の後続の処理ユニットUC0に、オブジェクトにおけるサブオブジェクトの位置に従って条件付きで送出する。
Send the result from the above application of the specific operation performed on the calculation unit UC1 to the calculation unit UC2 or queue following this calculation unit UC1 according to this chain.
Conditionally sending the result of applying a specific instruction sent to the queue during the processing of another sub-object from the queue to a subsequent processing unit UC0 in the queue according to the position of the sub-object in the object .

一実施形態では、計算ユニットはそれぞれ少なくとも1つの連鎖に属し、この連鎖は、サブオブジェクトの各次元にある。
一実施形態では、本方法はさらに、少なくとも2つの特有命令に対し、2つの特有命令の一方が適用される度に、計算ユニットUC1上で実施された特有命令のこの適用の結果を、特有命令ごとに独立した方式で事前に決定された連鎖に従って、この計算ユニットUC1に続く計算ユニットUC2または待ち行列に送出するステップを含む。実際には、使用される連鎖は、特有命令シーケンスによって実行されるフィルタ(例えば垂直または水平)のタイプに依存する。
In one embodiment, each computing unit belongs to at least one chain, which is in each dimension of the sub-object.
In one embodiment, the method further determines the result of this application of the specific instruction implemented on the computing unit UC1 each time one of the two specific instructions is applied to at least two specific instructions. Each of which includes sending to a calculation unit UC2 or queue following this calculation unit UC1 according to a chain determined in an independent manner. In practice, the chain used depends on the type of filter (eg vertical or horizontal) performed by the specific instruction sequence.

一実施形態では、以下のような2つのタイプの特有操作がある。
−連鎖を適用しない。
−または、連鎖を系統的に、すなわち特有操作が実施される度に、適用する。この場合、異なるプロセッサによる同じ特有操作によって適用されるすべての連鎖は、同じ次元に従う。
In one embodiment, there are two types of specific operations:
-Do not apply chaining.
Or apply the chain systematically, ie each time a specific operation is performed. In this case, all chains applied by the same specific operation by different processors follow the same dimensions.

一実施形態では、特有操作は、少なくとも1つの循環的連鎖に従って連鎖された計算ユニットによって実施される。この連鎖は、特有操作からの結果を、この結果を生成したプロセッサに対する連鎖中の後続のプロセッサまたは待ち行列に送出できるようにする。   In one embodiment, the specific operations are performed by computational units that are chained according to at least one circular chain. This chain allows results from a specific operation to be sent to subsequent processors or queues in the chain for the processor that generated the result.

一実施形態では、特有操作は、少なくとも1つの循環的連鎖に従って連鎖された計算ユニットによって実施される。この循環的連鎖はさらに、少なくとも1つのファイルを含む。このファイルは、少なくとも1つの他のサブオブジェクトの計算に必要な特有操作からの結果を送出できるようにする。   In one embodiment, the specific operations are performed by computational units that are chained according to at least one circular chain. This circular chain further includes at least one file. This file makes it possible to send the results from the specific operations required for the calculation of at least one other sub-object.

別の実施形態では、本方法は、別のサブオブジェクトのサブ処理操作中に使用される特有操作からの結果を、当該サブオブジェクトとの関係におけるこの別のサブオブジェクトの相対位置に従って、メモリに共にグループ化して記憶するステップを含む。   In another embodiment, the method causes a result from a specific operation used during a sub-processing operation of another sub-object to be stored in memory together according to the relative position of this other sub-object in relation to that sub-object. Grouping and storing.

一実施形態では、本方法はさらに、別のサブオブジェクトのサブ処理中に使用される特有操作からの結果を、少なくとも1つの待ち行列中に共にグループ化するステップを含む。   In one embodiment, the method further includes grouping together results from a specific operation used during sub-processing of another sub-object together into at least one queue.

さらに、いくつかの実施形態では、本方法はさらに、特有操作からのこれらの結果の少なくとも一部分をメモリまたは待ち行列中で保持できるようにする命令をプラットフォームに提供するステップを含む。   Further, in some embodiments, the method further includes providing instructions to the platform that allow at least a portion of these results from the specific operation to be held in memory or a queue.

処理操作は、当然、プラットフォームのハードウェア能力を最適に利用するために、このプラットフォームの構成に適応させなければならない。この目的で、一実施形態では、本方法は、計算ユニットの連鎖に従って、かつシーケンスに従って特有操作を計算ユニットに割り当てるステップを含む。このステップはまた、プラットフォームの上流に位置するコンパイラによって実施することもできる。   Processing operations must, of course, be adapted to this platform configuration in order to optimally utilize the platform hardware capabilities. To this end, in one embodiment, the method includes assigning specific operations to computing units according to a chain of computing units and according to a sequence. This step can also be performed by a compiler located upstream of the platform.

さらに、やはりプラットフォームの能力を最適に利用するために、プログラム可能な計算ユニットを使用すること、すなわち、特有操作のシーケンスを、および/または種々の計算ユニットに対する特有操作の割当てを、これらの計算ユニットを含むコンポーネントが作成された後で修正できることは、興味深いことである可能性がある。したがって、一実施形態では、特有操作の順序および/または性質を修正することができる。しかし、計算ユニットがプログラム可能であっても、計算ユニットは、コンポーネントの作成時に最初にプログラムすることができる。このようにして、本発明の一実施形態では、特有操作は、少なくとも1つの所定の特有操作シーケンスに従ってケーブルされた計算ユニットによって実施される。この実施形態は、例えば、外部メモリを使用する必要を回避する。実際、アルゴリズムに関して実施されることになる操作のシーケンシングスケジュールをこのようなメモリが含むようにするのではなく、オブジェクトに適用されることになるこのアルゴリズムに対応する順序で操作が実施されるように計算ユニットをケーブルすることができる。   Furthermore, in order to make the best use of the capabilities of the platform, it is also possible to use programmable calculation units, ie a sequence of specific operations and / or assignment of specific operations to the various calculation units. It can be interesting to be able to modify a component that contains after it has been created. Thus, in one embodiment, the order and / or nature of specific operations can be modified. However, even if the computing unit is programmable, the computing unit can be programmed first when the component is created. Thus, in one embodiment of the invention, the specific operation is performed by a cabled computing unit according to at least one predetermined specific operation sequence. This embodiment avoids the need to use external memory, for example. In fact, rather than having such a memory contain the sequencing schedule of operations that will be performed on the algorithm, the operations will be performed in the order corresponding to this algorithm that will be applied to the object. The calculation unit can be cabled to.

処理操作が実行されるプラットフォームは、種々のタイプのメモリを有することができ、これらのメモリは、容量とアクセス速度の両方の点で様々である。例えば、高速メモリおよび/またはレジスタは、ある種のデータをすぐに再使用する必要のあるフィルタなどの操作の場合に、操作からの結果を短期間にわたり記憶するのに使用することができる。したがって、一実施形態では、少なくとも1つの特有操作は、基本情報および/または特有操作からの結果を記憶するための限られた容量のメモリユニットが備わった少なくとも1つの計算ユニットによって実施され、このメモリは、少なくとも16個の基本情報および/または特有操作からの結果を含む。ここでは高速メモリは一般に容量が限られているので、場合によっては、より多くの基本情報および/または特有操作からの結果を記憶するために、より容量の大きいメモリも有する必要がある。   The platform on which the processing operations are performed can have various types of memory, and these memories vary in both capacity and access speed. For example, high speed memory and / or registers can be used to store the results from an operation over a short period of time, for operations such as filters that require certain types of data to be reused immediately. Thus, in one embodiment, at least one unique operation is performed by at least one computing unit with a limited capacity memory unit for storing basic information and / or results from the unique operation, Contains at least 16 basic information and / or results from specific operations. Here, high speed memory is generally limited in capacity, so in some cases it may be necessary to also have more memory to store more basic information and / or results from specific operations.

この目的で、一実施形態では、少なくとも1つの特有操作は、他のサブオブジェクトからの少なくとも1つの基本情報および/または少なくとも1つの特有操作結果を含む通信メモリユニットへのアクセスを有する少なくとも1つの計算ユニットによって実施される。   To this end, in one embodiment, the at least one specific operation has at least one computation with access to a communication memory unit that includes at least one basic information from other sub-objects and / or at least one specific operation result. Implemented by the unit.

この通信メモリは一般に、他のサブオブジェクトの処理に使用される基本情報および/または特有操作からの結果を、長期間にわたり記憶するのに使用される。特有操作の一部のみがこのようなデータを生成または使用し、したがって、必要な速度は限られている。本発明によってもたらされる規則性は、このデータが何であるかについて非常に単純な決定を可能にし、したがってキャッシュメモリ機構を使用する必要を回避し、これにより、プラットフォームの複雑さおよびコストが低減する。したがって、一実施形態では、通信メモリユニットは、0.3*Nアクセス/サブオブジェクト/特有操作よりも低いアクセス速度を有する。比較的アクセス速度の低いこのようなメモリは、高速と高容量の両方であったメモリが必要とされた場合よりも低コストとなる。このことは、本発明の利点の1つである。   This communication memory is typically used to store basic information and / or results from specific operations used to process other sub-objects over a long period of time. Only some of the specific operations generate or use such data, so the required speed is limited. The regularity provided by the present invention allows a very simple decision as to what this data is, thus avoiding the need to use a cache memory mechanism, thereby reducing platform complexity and cost. Thus, in one embodiment, the communication memory unit has a lower access speed than 0.3 * N access / sub-object / specific operation. Such a memory with a relatively low access speed is less expensive than if a memory with both high speed and high capacity was required. This is one of the advantages of the present invention.

処理プラットフォームが、メモリ容量が縮小されたような処理プラットフォームである場合、サブオブジェクトのサイズは、処理操作を正しく適用できるように選択しなければならない。したがって、とりわけプラットフォームが携帯電話機に統合された場合に用いられる一実施形態では、Qの値は1に固定され、Nの値は2と16の間に含まれる。例えば、プラットフォームが、携帯電話機によって撮影された写真を処理するようになっている場合、すべての操作は、一度に1つの単一ピクセルずつに適用されることになる。   If the processing platform is a processing platform with reduced memory capacity, the size of the sub-object must be selected so that the processing operation can be applied correctly. Thus, in one embodiment used especially when the platform is integrated into a mobile phone, the value of Q is fixed at 1 and the value of N is comprised between 2 and 16. For example, if the platform is adapted to process photos taken by a mobile phone, all operations will be applied one single pixel at a time.

反対に、例えばプラットフォームがベクトル信号プロセッサを備えているときのような、いくつかの場合では、多数の計算ユニットを有することが可能である。このハードウェア構成は、計算ユニットが節度をもって使用された場合、オブジェクトの処理操作の高速化を可能にする。この目的で、一実施形態では、少なくとも1つの特有操作は、少なくとも2つの同一の計算ユニットによって同時に実施される。したがって本発明は、処理操作の規則性によって、プロセッサの最適な使用を可能にする。   Conversely, in some cases, such as when the platform is equipped with a vector signal processor, it is possible to have multiple computing units. This hardware configuration allows for faster processing of objects when the computing unit is used with moderation. For this purpose, in one embodiment, at least one specific operation is performed simultaneously by at least two identical computing units. Thus, the present invention allows for optimal use of the processor due to the regularity of the processing operations.

実施形態に応じて、特有操作は、加算、減算、乗算、相関表の適用、最小値、最大値、および選択を含むグループからの、少なくとも1つの特有計算操作を含む。
したがって、一実施形態では、少なくとも1つの特有計算操作はまた、オフセットおよび/または飽和度および/または丸めを実施する。本発明によれば、特有選択計算操作は、少なくとも2つのデータ項目から、第3のデータ項目の値に従ってデータを選択することを可能にする。
Depending on the embodiment, the specific operations include at least one specific calculation operation from the group including addition, subtraction, multiplication, application of correlation table, minimum value, maximum value, and selection.
Thus, in one embodiment, the at least one unique calculation operation also performs offset and / or saturation and / or rounding. According to the present invention, the unique selection calculation operation allows data to be selected from at least two data items according to the value of the third data item.

一実施形態では、相関表の適用は、表の入力と有限数の係数とを使用した計算によって実施される。一実施形態では、係数の有限数は8に固定される。   In one embodiment, the application of the correlation table is performed by calculation using a table entry and a finite number of coefficients. In one embodiment, the finite number of coefficients is fixed at 8.

さらに、別の実施形態では、特有操作は、少なくとも1つの循環的連鎖CC1を用いて、連鎖された計算ユニットによって実施される。この循環的連鎖CC1はさらに、少なくとも1つの待ち行列を含む。特有操作シーケンスからの少なくとも1つの特有操作IS4は、計算ユニットUC1上で実施された特有操作IS5の結果を、この連鎖に従ってこの計算ユニットUC1に続く計算ユニットUC2または待ち行列に送出する。   Furthermore, in another embodiment, the specific operation is performed by a chained computing unit using at least one circular chain CC1. This circular chain CC1 further includes at least one queue. At least one specific operation IS4 from the specific operation sequence sends the result of the specific operation IS5 performed on the calculation unit UC1 to the calculation unit UC2 or queue following this calculation unit UC1 according to this chain.

一実施形態では、IS4特有操作は、前のサブ処理操作中に実施された特有操作IS5の結果を、待ち行列から、待ち行列に続く計算ユニットUC0に送出する。好ましくは、待ち行列は、待ち行列に入力された順序と同じ順序でデータを出力することを可能にする。好ましくは、計算ユニットと待ち行列とを含む連鎖は、ブート操作の管理を可能にする機構を含む。待ち行列は、定期的に、例えば待ち行列が水平連鎖の一部でありオブジェクトが画像である場合は各ラインの最初に、初期化される。特有命令IS4の最初の実行時は、待ち行列からUC0に送出されるデータはない。次に、特有操作IS4は、前のサブ処理操作中に実施された特有操作IS5の結果を、待ち行列から、待ち行列に続く計算ユニットUC0に送出する。   In one embodiment, the IS4 specific operation sends the result of the specific operation IS5 performed during the previous sub-processing operation from the queue to the calculation unit UC0 following the queue. Preferably, the queue allows data to be output in the same order as entered in the queue. Preferably, the chain comprising computing units and queues includes a mechanism that allows management of boot operations. The queue is initialized periodically, for example at the beginning of each line if the queue is part of a horizontal chain and the object is an image. At the first execution of the specific instruction IS4, no data is sent from the queue to UC0. Next, the specific operation IS4 sends the result of the specific operation IS5 performed during the previous sub-processing operation from the queue to the calculation unit UC0 following the queue.

値NおよびQは、実施形態に従って変動する。各実施形態は、異なる利点を有する。したがって、一実施形態では、NはQの倍数ではない。この実施形態の一代替形態では、Qは、汎用操作のシーケンスを変換することによって得られるシーケンスの特有操作の数量に等しい。     The values N and Q vary according to the embodiment. Each embodiment has different advantages. Thus, in one embodiment, N is not a multiple of Q. In one alternative of this embodiment, Q is equal to the number of unique operations in the sequence obtained by transforming the sequence of general operations.

一実施形態では、NはQの倍数である。これにより処理は規則的になる。好ましくは、N=Qである。これにより、一時的な結果を記憶するのに必要とされるメモリの量が削減される。   In one embodiment, N is a multiple of Q. This makes the process regular. Preferably, N = Q. This reduces the amount of memory required to store temporary results.

一実施形態では、Q=1およびN=4である。これにより、1つの同じ特有操作を複数回適用するのに、同じパラメータ値を再使用することができる。
一実施形態では、Q>1およびN=Qである。これにより、ベクトル信号プロセッサのQ個の計算ユニットを100%使用することができる。
In one embodiment, Q = 1 and N = 4. This allows the same parameter value to be reused to apply the same specific operation multiple times.
In one embodiment, Q> 1 and N = Q. This makes it possible to use 100% of the Q calculation units of the vector signal processor.

一実施形態では、Q>1であり、NはQの倍数である。これにより、ベクトル信号プロセッサのQ個の計算ユニットを100%使用することができ、サブオブジェクトの処理中に実施され別のサブオブジェクトの処理に使用される特有操作からの結果の数量を削減することができる。   In one embodiment, Q> 1 and N is a multiple of Q. This allows 100% of the vector signal processor's Q computational units to be used, reducing the quantity of results from specific operations performed during processing of a sub-object and used to process another sub-object. Can do.

一実施形態では、各プロセッサが、特有操作のシーケンスのすべての操作を実施する。
一実施形態では、すべてのプロセッサが、同じ特有操作を同時に実施する。別の実施形態では、すべてのプロセッサが、同じ特有操作を連続して実施し、これは再帰型フィルタの実施を可能にする。
In one embodiment, each processor performs all operations in a sequence of specific operations.
In one embodiment, all processors perform the same specific operation simultaneously. In another embodiment, all processors perform the same specific operations sequentially, which allows recursive filter implementation.

基本情報および操作結果をメモリに記憶することは、基本情報検索中に時間を浪費しすぎないように、比較的単純なアドレス指定を必要とする。この目的で、一実施形態では、特有操作結果の少なくとも一部分は、メモリ中で「ベースアドレス+オフセット」または「ベースアドレス+modオフセット(バッファメモリのサイズ)」のフォーマットのアドレスに記憶され、オフセットは、1つの同じ特有操作からのすべての結果に対して一定である。バッファメモリは、好ましくは、処理プラットフォームのメモリの1つに統合される。とりわけ、バッファメモリは待ち行列とすることができる。   Storing basic information and operation results in memory requires relatively simple addressing so as not to waste too much time during basic information retrieval. To this end, in one embodiment, at least a portion of the unique operation result is stored in memory at an address of the format “base address + offset” or “base address + mod offset (buffer memory size)”, where the offset is: It is constant for all results from one and the same specific operation. The buffer memory is preferably integrated into one of the processing platform's memories. In particular, the buffer memory can be a queue.

別の実施形態では、ベースアドレスは、サブオブジェクトが処理操作において変更される度に修正される。
一実施形態では、このアドレス指定は、とりわけ、少なくとも1つの次元に従ったサブオブジェクト間の通信のためのデータに使用することができる。
In another embodiment, the base address is modified each time a sub-object is changed in a processing operation.
In one embodiment, this addressing can be used, inter alia, for data for communication between sub-objects according to at least one dimension.

ベクトル信号プロセッサの特定の場合では、アドレス計算はすべてのプロセッサに共通であり、サブオブジェクトのサイズに対する基本情報および/または特有操作結果のグループを送達するメモリを使用することができる。   In the particular case of vector signal processors, the address calculation is common to all processors, and memory can be used to deliver basic information on the size of the sub-objects and / or groups of specific operation results.

ある種のハードウェア構成では各計算ユニットがそれ自体のメモリを有することを上に示した。この場合、所与のアドレスは、いくつかのメモリに関係があるものとすることができる。すなわち、ここで定義されるメモリアドレスは、実際には、1つの同じ特有操作を実施するすべての計算ユニットによって使用されるすべてのメモリアドレスを表す。   It has been shown above that in certain hardware configurations each computing unit has its own memory. In this case, a given address may be related to several memories. That is, the memory address defined here actually represents all memory addresses used by all computing units performing one and the same specific operation.

一実施形態では、特有操作結果の少なくとも一部分は、メモリ中で、1つの同じ特有操作からのすべての結果に対して事前に決定されたアドレスに記憶される。
上記の方法は、処理操作を実施するのに必要とされる計算ユニットの数を比較的少数とすることができるような方法である。したがって、一実施形態では、少なくとも1つのレジスタユニットと少なくとも1つのサブオブジェクト通信メモリとが備わった少なくとも1つの計算ユニットによって特有操作が実施されるとき、処理プラットフォーム上のトランジスタの数は、通信メモリなしの関連レジスタのユニットを含めて、1計算ユニット当たり10000個未満である。
In one embodiment, at least a portion of the unique operation result is stored in memory at a predetermined address for all results from the same unique operation.
The above method is such that the number of computing units required to perform the processing operation can be made relatively small. Thus, in one embodiment, when a specific operation is performed by at least one computing unit with at least one register unit and at least one sub-object communication memory, the number of transistors on the processing platform is no communication memory. The number of related registers is less than 10,000 per calculation unit.

本発明の一実施形態では、プラットフォームには、汎用フォーマット化データに基づいて計算された特有フォーマット化データが、好ましくは直接的に提供され、この汎用フォーマット化データは、少なくとも1つの汎用操作シーケンスを記述する第1のデータを含み、特有フォーマット化データの計算は、プラットフォーム中の基本情報に関するスクローリングモードと、汎用操作からの特有操作とを反映して実施され、これらの特有操作は、プラットフォーム中でのオブジェクトの処理中にオブジェクトに対して実施される特有操作のシーケンスを形成する。したがって、オブジェクトの処理は、汎用フォーマット化データを変更して、プラットフォームに最適化された特有フォーマット化データを自動的に得ることによって、容易に修正することができる。それにより、プラットフォームの市場リリースにかかる時間が加速される。それにより、コードサイズ、計算時間、およびメモリの数量が最適化される。それにより、電気的消費およびプラットフォームのコストが削減される。   In one embodiment of the present invention, the platform is preferably provided directly with specific formatted data calculated based on the generic formatted data, the generic formatted data comprising at least one generic operation sequence. The calculation of specific formatted data, including the first data to be described, is performed reflecting the scrolling mode for basic information in the platform and the specific operations from general operations, and these specific operations are performed in the platform. Form a sequence of specific operations performed on the object during the processing of the object at Thus, the processing of an object can be easily modified by changing the generic formatted data to automatically obtain specific formatted data optimized for the platform. This accelerates the time it takes to release the platform to the market. Thereby, the code size, the calculation time and the quantity of memory are optimized. This reduces electrical consumption and platform costs.

汎用操作は、基本情報からなりオブジェクトのすべてまたは一部を構成することのできる、サイズやフォーマットの概念を伴わない論理ブロックすなわち抽象エンティティに適用される操作である。   A generic operation is an operation applied to a logical block or abstract entity that consists of basic information and can constitute all or part of an object without the concept of size or format.

この記述では、汎用フォーマット化データは、データ処理プラットフォームによってオブジェクトに対して実施されることになる処理操作を、プラットフォーム自体から独立して記述するのに使用されるディジタルデータである。特有フォーマット化データは、コンパイラを使用して、特有フォーマット化データを使用するプラットフォームに適応されたバイナリコードを生成することで、直接的または間接的に提供することができる。   In this description, generic formatted data is digital data that is used to describe processing operations to be performed on objects by a data processing platform, independent of the platform itself. Specific formatted data can be provided directly or indirectly by using a compiler to generate binary code adapted to the platform that uses the specific formatted data.

種々の可能なスクローリングモードがあり、これらのいくつかについては以下にさらに述べる。これらのスクローリングモードを使用して、処理されるオブジェクトに適用される特有操作を生成することもできる。これにより、比較的短期間のうちにアルゴリズムを市場リリースすることが可能になる。   There are various possible scrolling modes, some of which are described further below. These scrolling modes can also be used to generate specific operations that are applied to the object being processed. This makes it possible to market the algorithm in a relatively short period of time.

一実施形態では、汎用操作は、論理ブロックおよび/またはパラメータの加算、論理ブロックおよび/またはパラメータの減算、論理ブロック間の差の絶対値の計算、論理ブロックおよび/またはパラメータの乗算、少なくとも2つの論理ブロックおよび/またはパラメータのうちの最大値、少なくとも2つの論理ブロックおよび/またはパラメータのうちの最小値、相関表の適用、論理ブロックおよび/またはパラメータの条件付き選択(この選択は、a>bならばcが選択され、そうでなければdが選択されるように行われる。a、b、c、およびdは、論理ブロックおよび/またはパラメータである)、論理ブロックに関するヒストグラム、論理ブロックに関するスケール変更、少なくとも1つの座標を含むブロックを生成する操作、を含むグループに含まれる少なくとも1つの基本汎用操作を含む。   In one embodiment, the general operations include at least two of logical block and / or parameter addition, logical block and / or parameter subtraction, calculation of absolute values of differences between logical blocks, logical block and / or parameter multiplication, Maximum value of logical blocks and / or parameters, minimum value of at least two logical blocks and / or parameters, application of correlation table, conditional selection of logical blocks and / or parameters (this selection is a> b If c is selected, otherwise d is selected (a, b, c, and d are logical blocks and / or parameters), histogram for logical block, scale for logical block Modify, create a block containing at least one coordinate, Included in the group comprising at least one basic generic operations.

別の実施形態では、基本情報は固定点における数値で表され、汎用操作は、オフセット操作、飽和度操作、および/または、この飽和度操作と組み合わせた少なくとも1つの基本汎用操作を含む。   In another embodiment, the basic information is represented by a numerical value at a fixed point, and the general operation includes an offset operation, a saturation operation, and / or at least one basic general operation combined with the saturation operation.

たった今定義したハードウェア特性はすべて、どんなタイプのプラットフォームが使用されようと、またどんなタイプのオブジェクトが処理されることになろうと、有効であることが明白である。   It is clear that all the hardware characteristics just defined are valid no matter what type of platform is used or what type of object is to be processed.

したがって、一実施形態では、処理されるオブジェクトは画像であり、基本情報はこの画像のピクセルである。この場合、処理プラットフォームは、例えば画像取込みおよび/またはレンダリングデバイスの一部であり、操作は、操作のシーケンスに、かつ/または処理プラットフォームに、かつ/または処理されるオブジェクトに依存する値を有するパラメータを適用し、これらのパラメータ値は、画像取込みおよび/またはレンダリングデバイスの、光学機構および/またはセンサおよび/またはイメージャおよび/または電子機構および/またはソフトウェアの特性にリンクされる。特性は、例えば、すべてのオブジェクトに対する固有の固定特性とすることもでき、あるいはオブジェクトに従った変数とすることもでき、例えば、センサの利得に従って変動する雑音特性とすることができる。特性はまた、基本情報の絶対位置に従って、すべての基本情報または可変情報に対して同一とすることもでき、例えば光学的な鮮鋭度の特性とすることができる。
他の実施形態では、処理されるオブジェクトはディジタルオーディオ信号であり、基本情報は、この信号のオーディオサンプルにある。さらには、処理されるオブジェクトは数値メッシュですらあり、基本情報は、メッシングの各点を特徴付ける空間および時間情報である。
Thus, in one embodiment, the object being processed is an image and the basic information is the pixels of this image. In this case, the processing platform is for example part of an image capture and / or rendering device, and the operation has parameters with values that depend on the sequence of operations and / or on the processing platform and / or on the object being processed. These parameter values are linked to the optical and / or sensor and / or imager and / or electronic and / or software characteristics of the image capture and / or rendering device. The characteristic can be, for example, a unique fixed characteristic for all objects, or it can be a variable according to the object, for example, a noise characteristic that varies with the gain of the sensor. The characteristic can also be the same for all basic information or variable information according to the absolute position of the basic information, for example an optical sharpness characteristic.
In other embodiments, the object being processed is a digital audio signal and the basic information is in the audio samples of this signal. Furthermore, the objects to be processed are even numerical meshes, and the basic information is space and time information characterizing each point of meshing.

本発明はまた、同じタイプの基本情報(54、56、58、60、154、156、158、および160)からなるオブジェクト(55)を処理することになっている、1つまたは複数のプロセッサとメモリとを有するプラットフォームに関し、このプラットフォームは、処理されるオブジェクトを、N個の基本情報(54、56、58、154、156、158)からそれぞれなる少なくとも2つのサブオブジェクト(50、51、52、および53)に分解する手段であってすべてのサブオブジェクト(50、51、52、および53)が同じ数量Nの基本情報を有する手段と、各サブオブジェクトの基本情報(50、51、52、53)に対して少なくとも1つの特有操作シーケンスを実施する手段とを備え、この処理手段はさらに、各サブオブジェクトにつき各特有操作を少なくともN回実施する手段を備え、それにより、一方では、各サブオブジェクトの各基本情報が少なくとも1回適用され、他方では、各特有操作のN個の結果が生成され、この処理手段は、特有操作のシーケンスの少なくとも1つの特有操作(62)が、そのN回の適用(62a、62b、62c、62d、62e、62f)全体のうちで少なくとも1回、別のサブオブジェクトに属する基本情報(60、160)を直接的または間接的に適用するような処理手段である。   The present invention also includes one or more processors that are to process an object (55) consisting of the same type of basic information (54, 56, 58, 60, 154, 156, 158, and 160). With respect to a platform having a memory, this platform defines the object to be processed at least two sub-objects (50, 51, 52, each comprising N basic information (54, 56, 58, 154, 156, 158)). And 53) in which all sub-objects (50, 51, 52, and 53) have the same quantity N of basic information, and basic information (50, 51, 52, 53 of each sub-object). Means for performing at least one specific operation sequence for Means for performing each specific operation at least N times for each sub-object, so that, on the one hand, each basic information of each sub-object is applied at least once, and on the other hand N results of each specific operation are generated And the processing means is configured such that at least one unique operation (62) of the sequence of unique operations is at least once out of its entire N applications (62a, 62b, 62c, 62d, 62e, 62f) This is a processing means for applying basic information (60, 160) belonging to a sub-object directly or indirectly.

一実施形態では、処理されるオブジェクトは次元DOを含み、サブオブジェクトは、オブジェクトの次元DOから選択された次元DSOを含み、オブジェクトを分解する手段は、サブオブジェクトの次元の少なくとも1つに従ってサブオブジェクトがオーバーレイを有さないような手段である。   In one embodiment, the object being processed includes a dimension DO, the sub-object includes a dimension DSO selected from the object's dimension DO, and the means for decomposing the object includes the sub-object according to at least one of the sub-object dimensions. Is a means that does not have an overlay.

したがって、好ましくは、特有操作は、サブオブジェクトがオーバーレイを有さない次元に従った少なくとも1つの循環的連鎖に従って連鎖された計算ユニットによって実施される。   Thus, preferably the specific operation is performed by a computing unit chained according to at least one circular chain according to a dimension in which the sub-objects do not have an overlay.

また好ましくは、サブオブジェクトは、どんな次元に従ったオーバーレイも有さない。
一実施形態では、プラットフォームは、サブオブジェクトの処理中に実施され別のサブオブジェクトの処理に使用される、基本情報および/または特有操作からの結果を記憶するために、少なくとも1つのオブジェクト間通信メモリを備える。
Also preferably, the sub-object does not have an overlay according to any dimension.
In one embodiment, the platform includes at least one inter-object communication memory for storing basic information and / or results from specific operations that are performed during processing of a sub-object and used to process another sub-object. Is provided.

一実施形態では、プラットフォームは、オブジェクトの処理中に同じデータを適用する特有操作を含まない特有操作のシーケンスを実施する手段を備える。   In one embodiment, the platform comprises means for performing a sequence of specific operations that does not include specific operations that apply the same data during processing of the object.

一実施形態では、オブジェクトは次元DOを含み、基本情報は、プラットフォーム中で、オブジェクトのDE次元の1つに従って、次いで他の次元に従って受け取られ、サブオブジェクトは、オブジェクトの次元DOから選択されDE次元を含む次元DSOを含み、プラットフォームは、処理操作に含まれる内部サブオブジェクトスクローリングループがDE次元に従って実施されるようなプラットフォームである。   In one embodiment, the object includes a dimension DO, and basic information is received in the platform according to one of the object's DE dimensions and then according to the other dimension, and the sub-object is selected from the object's dimension DO and the DE dimension. The platform is a platform in which the internal sub-object scraulin group included in the processing operation is implemented according to the DE dimension.

一実施形態では、オブジェクトは次元DOを含み、基本情報は、プラットフォーム中で、オブジェクトのDE次元の1つに従って、次いで他の次元に従って受け取られ、サブオブジェクトは、オブジェクトの次元DOを含むか、またはオブジェクトの次元DOから選択されDE次元が含まれない次元DO−1を含み、プラットフォームは、処理操作に含まれる内部サブオブジェクトスクローリングループがDE次元に従って実施されるようなプラットフォームである。   In one embodiment, the object includes a dimension DO and the basic information is received in the platform according to one of the object's DE dimensions and then according to the other dimension, and the sub-object includes the object's dimension DO, or The platform is a platform that includes a dimension DO-1 that is selected from the object's dimension DO and that does not include the DE dimension, and in which the internal sub-object scallin group included in the processing operation is implemented according to the DE dimension.

一実施形態では、処理されるオブジェクトを分解する手段は、各次元におけるサブオブジェクトのサイズが、オブジェクトのサイズ、ならびに/または、基本情報がプラットフォームによって受け取られる速度、ならびに/または、プラットフォームの計算速度、ならびに/または、プラットフォームのメモリのうちの少なくとも1つのサイズおよび速度、に従って決定されるような手段である。   In one embodiment, the means for decomposing the object to be processed includes the size of the sub-object in each dimension, the size of the object, and / or the rate at which basic information is received by the platform, and / or the computational rate of the platform, And / or means as determined according to the size and speed of at least one of the memory of the platform.

一実施形態では、特有操作の少なくとも一部分が少なくとも1つのパラメータ値を適用する場合、プラットフォームは、同じ特有操作を同時に計算するQ個の計算ユニットを備え、プラットフォームはさらに、少なくとも1つの特有選択操作を含む少なくとも1つの特有操作シーケンスを実施する手段を備え、この特有選択操作は、少なくとも1つの基本情報および/または少なくとも1つの特有操作結果および/または少なくとも1つのパラメータ値に従って、プロセッサごとに差別化された方式で、Q個の計算ユニット上で同時にC個のパラメータ値からパラメータ値を選択することを実施する。   In one embodiment, if at least a portion of the specific operation applies at least one parameter value, the platform comprises Q calculation units that simultaneously calculate the same specific operation, and the platform further includes at least one specific selection operation. Means for performing at least one unique operation sequence comprising, wherein the unique selection operation is differentiated for each processor according to at least one basic information and / or at least one unique operation result and / or at least one parameter value. In this manner, the parameter value is selected from the C parameter values simultaneously on the Q calculation units.

一実施形態では、プラットフォームは、同じ特有操作を同時に計算するQ個の計算ユニットを備え、さらに、少なくとも1つの特有選択操作を含む少なくとも1つの特有操作シーケンスを実施する手段を備え、この特有選択操作は、少なくとも1つの基本情報および/または少なくとも1つの特有操作結果および/または少なくとも1つのパラメータ値に従って、プロセッサごとに差別化された方式で、Q個の計算ユニット上で同時にデータCからデータ項目を選択することを実施する。   In one embodiment, the platform comprises Q computing units that simultaneously compute the same unique operation, and further comprises means for performing at least one unique operation sequence including at least one unique selection operation, the unique selection operation Can simultaneously retrieve data items from data C on Q computing units in a differentiated manner per processor according to at least one basic information and / or at least one specific operation result and / or at least one parameter value. Make a selection.

一実施形態では、プラットフォームは、少なくとも1つの特有位置操作を含む特有操作のシーケンスを実施する手段を備え、オブジェクトは次元DOを含み、この特有位置操作は、次元DOの1つに従った位置情報を生成する。   In one embodiment, the platform comprises means for performing a sequence of unique operations including at least one unique position operation, the object includes a dimension DO, the unique position operation comprising position information according to one of the dimension DOs. Is generated.

一実施形態では、プラットフォームは、少なくとも1つの基本情報および/または少なくとも1つの特有操作結果および/または少なくとも1つのパラメータ値に従って相対位置を生成する少なくとも1つの特有操作を含む特有操作のシーケンスを実施する手段を備える。   In one embodiment, the platform performs a sequence of specific operations including at least one specific operation that generates a relative position according to at least one basic information and / or at least one specific operation result and / or at least one parameter value. Means.

一実施形態では、プラットフォームは、特有操作の少なくとも一部分を実施するためのQ個の計算ユニットを備え、QはNに等しいかまたはNの約数である。
一実施形態では、Q個の計算ユニットの数はNとは異なり、サブオブジェクトの処理は、N/Q個の反復の単一内部ループを1つ含む。
一実施形態では、プラットフォームは、Q個の計算ユニットが同一であるようなプラットフォームである。
In one embodiment, the platform comprises Q computing units for performing at least a portion of the specific operations, where Q is equal to or a divisor of N.
In one embodiment, the number of Q computational units is different from N, and the processing of the sub-object includes one single inner loop of N / Q iterations.
In one embodiment, the platform is such that Q computing units are the same.

一実施形態では、プラットフォームは、1つの単一特有操作からのN個の結果が、1つの同じ計算ユニットによって計算されるような手段を備える。
一実施形態では、プラットフォームは、少なくとも1つの特有操作が少なくとも1つのパラメータを適用するとき、この特有操作を実施する手段を備え、プラットフォームはさらに、パラメータの値の一部分を含むメモリユニットへのアクセスを有する計算ユニットを備え、プラットフォームは、この部分が、この計算ユニットによって実施される特有操作に従って決定されるようなプラットフォームである。
In one embodiment, the platform comprises means such that N results from one single specific operation are calculated by one and the same calculation unit.
In one embodiment, the platform comprises means for performing the specific operation when the at least one specific operation applies at least one parameter, and the platform further provides access to a memory unit that includes a portion of the value of the parameter. The platform is such that this part is determined according to the specific operations performed by this calculation unit.

一実施形態では、プラットフォームは、少なくとも1つの特有操作が少なくとも1つのパラメータを適用するとき、このパラメータが、処理されるオブジェクトにおけるサブオブジェクトに依存するような手段を備える。
一実施形態では、プラットフォームは、連鎖された計算ユニットを備える。
一実施形態では、プラットフォームは、1つの連鎖および1つの次元に従って連鎖された計算ユニットを備える。
In one embodiment, the platform comprises means such that when at least one specific operation applies at least one parameter, this parameter depends on the sub-object in the object being processed.
In one embodiment, the platform comprises chained computing units.
In one embodiment, the platform comprises computational units chained according to a chain and a dimension.

一実施形態では、プラットフォームは、少なくとも1つの循環的連鎖に従って連鎖された計算ユニットを備える。
さらに、この連鎖は、一実施形態では、少なくとも1つの待ち行列を含むことができる。
In one embodiment, the platform comprises computing units that are chained according to at least one circular chain.
Further, this chain may include at least one queue in one embodiment.

サブオブジェクトが次元DSOを含む一実施形態では、プラットフォームは、サブオブジェクトの各次元での循環的連鎖に従って連鎖された計算ユニットを備える。サブオブジェクトの各D1特有次元での循環的連鎖(1つまたは複数)はさらに、サブオブジェクトのD1特有次元での循環的連鎖(1つまたは複数)間で共有されるかまたは共有されない少なくとも1つの待ち行列を含む。   In one embodiment, where the sub-object includes a dimensional DSO, the platform comprises computational units chained according to a circular chain in each dimension of the sub-object. The circular chain (s) in each D1-specific dimension of the sub-object is further at least one shared or not shared between the circular chain (s) in the D1-specific dimension of the sub-object Includes queues.

一実施形態では、プラットフォームは、循環的連鎖CC1を用いてサブオブジェクトの所定次元DDの少なくとも1つに従って連鎖された計算ユニットを備える。循環的連鎖はさらに、少なくとも1つの待ち行列を含む。プラットフォームは、特有命令が適用される度に、第1の計算ユニットUC1中でのこの適用の結果が、この連鎖に従ってこの第1の計算ユニットUC1に続く計算ユニットUC2または待ち行列に送出されるようなプラットフォームである。   In one embodiment, the platform comprises computational units that are chained according to at least one of the predetermined dimensions DD of the sub-objects using a circular chain CC1. The cyclic chain further includes at least one queue. The platform ensures that each time a specific instruction is applied, the result of this application in the first calculation unit UC1 is sent to the calculation unit UC2 or queue following this first calculation unit UC1 according to this chain. Platform.

一実施形態では、プラットフォームは、別のサブオブジェクトのサブ処理操作中に使用される特有操作からの結果を、当該サブオブジェクトとの関係におけるこの別のサブオブジェクトの相対位置に従って記憶するための少なくとも1つのメモリを備える。   In one embodiment, the platform has at least one for storing a result from a specific operation used during a sub-processing operation of another sub-object according to the relative position of this other sub-object in relation to that sub-object. With two memories.

さらに別の実施形態では、プラットフォームは、少なくとも1つの循環的連鎖に従って連鎖された計算ユニットと、計算ユニットの連鎖およびシーケンスに従って特有操作を計算ユニットに割り当てる手段とを備える。   In yet another embodiment, the platform comprises computing units chained according to at least one cyclic chain and means for assigning specific operations to the computing units according to the chain and sequence of computing units.

一実施形態では、プラットフォームは、特有操作の順序および/またはタイプを修正することができるような手段を備える。
一実施形態では、プラットフォームは、少なくとも1つの所定の特有操作シーケンスに従って特有操作を実施するためのケーブルされた計算ユニットを備える。
In one embodiment, the platform comprises means such that the order and / or type of specific operations can be modified.
In one embodiment, the platform comprises a cabled computing unit for performing specific operations according to at least one predetermined specific operation sequence.

一実施形態では、プラットフォームは、基本情報および/または特有操作結果を記憶するための限られた容量のメモリユニットが備わった少なくとも1つの計算ユニットを備え、このメモリは、少なくとも16個の基本情報および/または特有操作結果を含む。   In one embodiment, the platform comprises at least one computing unit with a limited capacity memory unit for storing basic information and / or specific operational results, the memory comprising at least 16 basic information and // includes specific operation results.

一実施形態では、プラットフォームは、他のサブオブジェクトからの基本情報および/または特有操作結果を含む通信メモリユニットへのアクセスを有する少なくとも1つの計算ユニットを備える。
一実施形態では、プラットフォームは、通信メモリユニットが0.3*Nアクセス/サブオブジェクト/特有操作よりも低いアクセス速度を有するようなプラットフォームである。
In one embodiment, the platform comprises at least one computing unit having access to a communication memory unit that contains basic information and / or specific operational results from other sub-objects.
In one embodiment, the platform is such that the communication memory unit has a lower access speed than 0.3 * N access / sub-object / specific operation.

一実施形態では、プラットフォームはとりわけ携帯電話機に統合され、Qの値が1に固定されNの値が2と16の間に含まれるような手段を備える。
一実施形態では、プラットフォームは、少なくとも1つの特有操作を同時に実施する少なくとも2つの同一の計算ユニットを備える。
In one embodiment, the platform is inter alia integrated into a mobile phone and comprises means such that the value of Q is fixed at 1 and the value of N is comprised between 2 and 16.
In one embodiment, the platform comprises at least two identical computing units that perform at least one specific operation simultaneously.

一実施形態では、プラットフォームは、特有操作結果の少なくとも一部分がメモリ中で「ベースアドレス+オフセット」または「ベースアドレス+modオフセット(バッファメモリのサイズ)」のフォーマットのアドレスに記憶されるような手段を備え、オフセットは、1つの同じ特有操作からのすべての結果に対して一定である。   In one embodiment, the platform comprises means such that at least a portion of the specific operation result is stored in memory at an address of the format “base address + offset” or “base address + mod offset (buffer memory size)”. , The offset is constant for all results from one and the same specific operation.

一実施形態では、プラットフォームは、サブオブジェクトが処理操作において変更される度にベースアドレスを修正する手段を備える。
一実施形態では、プラットフォームは、特有操作結果の少なくとも一部分が、メモリ中で、1つの同じ操作からのすべての結果に対して事前に決定されたアドレスに記憶されるような手段を備える。
In one embodiment, the platform comprises means for modifying the base address each time a sub-object is changed in a processing operation.
In one embodiment, the platform comprises means such that at least a portion of the specific operation results are stored in memory at a predetermined address for all results from one and the same operation.

一実施形態では、プラットフォームは、メモリが備わった少なくとも1つの計算ユニットを備え、トランジスタの数は、関連メモリユニットを含めて、1計算ユニット当たり10000個未満である。   In one embodiment, the platform comprises at least one computing unit with memory, and the number of transistors is less than 10,000 per computing unit, including the associated memory unit.

一実施形態では、プラットフォームは、汎用フォーマット化データから計算された特有フォーマット化データを、入力上で好ましくは直接的に受け取る手段を備え、この汎用フォーマット化データは、少なくとも1つの汎用操作シーケンスを記述する第1のデータを含み、特有フォーマット化データの計算は、プラットフォーム中の基本情報に関するスクローリングモードと、汎用操作からの特有操作とを反映して実施され、これらの特有操作は特有操作のシーケンスを形成し、プラットフォームは、この特有操作シーケンスをオブジェクトに対して実施する手段を備える。   In one embodiment, the platform comprises means for receiving, preferably directly on the input, specific formatted data calculated from the universal formatted data, the universal formatted data describing at least one universal operation sequence. The calculation of the specific formatted data is performed reflecting the scrolling mode for basic information in the platform and the specific operations from the general operation, and these specific operations are sequence of specific operations. And the platform comprises means for performing this specific sequence of operations on the object.

一実施形態では、プラットフォームは、画像で構成されるオブジェクトを処理する手段を備え、基本情報はこの画像のピクセルである。
一実施形態では、プラットフォームは、画像取込みおよび/またはレンダリングデバイスの一部であり、操作は、操作のシーケンスに、かつ/またはこのプラットフォームに、かつ/または処理されるオブジェクトに依存する値を有するパラメータを適用し、これらのパラメータ値は、画像取込みおよび/またはレンダリングデバイスの、光学機構および/またはセンサおよび/またはイメージャおよび/または電子機構および/またはソフトウェアの特性にリンクされる。
In one embodiment, the platform comprises means for processing an object composed of an image, the basic information being the pixels of this image.
In one embodiment, the platform is part of an image capture and / or rendering device, and the operation has parameters with values that depend on the sequence of operations and / or on this platform and / or the object being processed. These parameter values are linked to the optical and / or sensor and / or imager and / or electronic and / or software characteristics of the image capture and / or rendering device.

一実施形態では、プラットフォームは、ディジタルオーディオ信号で構成されるオブジェクトを処理する手段を備え、基本情報はこの信号のオーディオサンプルである。
一実施形態では、プラットフォームは、数値メッシュで構成されるオブジェクトを処理する手段を備え、基本情報は、メッシングの各点を特徴付ける空間および時間情報である。
In one embodiment, the platform comprises means for processing an object composed of a digital audio signal, the basic information being audio samples of this signal.
In one embodiment, the platform comprises means for processing objects composed of numerical meshes, and the basic information is spatial and temporal information characterizing each point of meshing.

本発明は、前述の方法による処理方法で処理されるオブジェクトにも関する。
本発明の他の特徴および利点は、その実施形態のいくつかに関する非限定的な記述から明らかになるであろう。この記述は図によってサポートされる。
The present invention also relates to an object processed by the processing method according to the above method.
Other features and advantages of the invention will become apparent from the non-limiting description of some of its embodiments. This description is supported by the figure.

図2に示すデバイスは、画像22を処理するために使用され、この画像は、少なくとも1つの数値で表されるピクセルのセットである。
このデバイス中で、ディジタルデータ処理手段10に汎用フォーマット化データ12が提供される。この処理手段は、例えばコンパイラとすることができる。
The device shown in FIG. 2 is used to process an image 22, which is a set of pixels represented by at least one numerical value.
In this device, the generalized formatted data 12 is provided to the digital data processing means 10. This processing means can be, for example, a compiler.

本発明による方法によって供給される汎用フォーマット化データは、第1および第2のデータ14を含み、第1および第2のデータ14は、汎用操作のシーケンスを記述し、また、これらの汎用操作に関係する論理ブロックの相対位置を提供する。この第1および第2のデータについては、図3に例示する。   The general formatted data supplied by the method according to the present invention includes first and second data 14, which describe a sequence of general operations, and for these general operations. Provides the relative position of the relevant logical block. The first and second data are illustrated in FIG.

処理手段10はまた、画像取込みまたはレンダリングデバイスなどの処理プラットフォーム20の特性に従って決定された、プラットフォーム中の基本情報に関するスクローリングモード24を、入力上で受け取る。
この汎用フォーマット化データ12およびこれらのパラメータを使用して、処理手段10は、処理プラットフォーム20に特有フォーマット化データ18を提供する。
The processing means 10 also receives on the input a scrolling mode 24 for basic information in the platform, determined according to the characteristics of the processing platform 20 such as an image capture or rendering device.
Using this generic formatted data 12 and these parameters, processing means 10 provides processing platform 20 with specific formatted data 18.

特有フォーマット化データは、プラットフォームのメモリにおけるピクセルの構成、ピクセルがプラットフォームによって処理される順序、さらにはプラットフォームによって実施される特有操作のグループ化に関するデータなど、種々のタイプのデータを含む。   Specific formatting data includes various types of data, such as the configuration of pixels in the platform's memory, the order in which pixels are processed by the platform, and data regarding grouping of specific operations performed by the platform.

次いでプラットフォーム20は、この特有フォーマット化データ18を使用して、インバウンドで受け取った画像22を処理する。   The platform 20 then uses this specific formatted data 18 to process the image 22 received inbound.

以下の表4および図3に、論理ブロックB1に適用される汎用操作のシーケンスの形で、汎用フォーマット化データの例を示す。このシーケンスは、3つの汎用操作を含む。表の列は、順番に以下の項目を示す。   Table 4 below and FIG. 3 show examples of generic formatted data in the form of a generic operation sequence applied to logical block B1. This sequence includes three general operations. The columns in the table indicate the following items in order.

−シーケンスにおける操作のランク。
−汎用操作の名前。
−汎用操作の結果が書き込まれる論理ブロック(出力)。すなわち、オブジェクトが各操作の終わりに再構成された場合に、この結果が位置することになる場所。
−汎用操作の第1の入力(入力1)。これは論理ブロックまたはパラメータとすることができる。
-The rank of the operation in the sequence.
-Name of the generic operation.
A logical block (output) where the result of a general operation is written. That is, where this result will be located if the object is reconstructed at the end of each operation.
-The first input of the general operation (input 1). This can be a logical block or a parameter.

−妥当な場合に、入力1における論理ブロックに関連して使用される論理ブロックの相対位置。
−汎用操作の第2の入力(入力2)。これもまた論理ブロックまたはパラメータとすることができる。
−妥当な場合に、入力2における論理ブロックに関連して使用される論理ブロックの相対位置。
The relative position of the logical block used in relation to the logical block at input 1 when appropriate.
-Second input of general operation (input 2). This can also be a logical block or parameter.
The relative position of the logical block used in relation to the logical block at input 2 when appropriate.

「相対位置」の列に位置する情報は、本発明による方法を使用して処理手段に提供される第2のデータ中に存在する情報である。
一実施形態では、汎用フォーマット化データは第2のデータを含み、第2のデータは、とりわけ空間的および/または時間的な、オブジェクトの次元の少なくとも1つに従った、相互との関係におけるブロックおよび/またはパラメータの相対位置を参照し、かつ/あるいは、とりわけ空間的および/または時間的な、オブジェクトの次元の少なくとも1つに従った、相互との関係における論理ブロックおよび/またはパラメータの相対スケールを参照する。
The information located in the column “relative position” is information present in the second data provided to the processing means using the method according to the invention.
In one embodiment, the generic formatted data includes second data, the second data being blocks in relation to each other according to at least one of the dimensions of the object, especially spatially and / or temporally. And / or relative scale of logic blocks and / or parameters in relation to each other, referring to the relative position of parameters and / or according to at least one of the dimensions of the object, in particular spatially and / or temporally Refer to

この表では、この情報は、簡略化のために「左」および「右」の形で出ているが、実際は、汎用フォーマット化データ中で、(0;1)などの数値で、かつ/またはf(x;y)などの関数でコーディングすることもできる。   In this table, this information is presented in the form of “left” and “right” for simplicity, but is actually a numeric value such as (0; 1) in general formatted data and / or It is also possible to code with a function such as f (x; y).

一実施形態では、ある汎用操作は、オブジェクトの次元の1つに従った絶対位置で構成される論理ブロックを生成し、インダイレクションと呼ばれる別の汎用操作は、第3のブロックから、第2のブロックで示される変位および/またはスケール変更によってブロックを生成する。この場合、ブロックに対する汎用操作を使用してから、汎用インダイレクション操作を使用して相対変位および/または対応する相対スケール変更を実施して、相対位置および/または相対スケールを提供する関数、例えば0.5*(x−100)を計算することができる。   In one embodiment, one generic operation generates a logical block composed of absolute positions according to one of the dimensions of the object, and another generic operation called indirection is performed from the third block to the second A block is generated by a displacement and / or a scale change indicated by the block. In this case, a function that provides a relative position and / or relative scale by using a general operation on the block and then performing a relative displacement and / or a corresponding relative scale change using a general indirection operation, eg 0 .5 * (x-100) can be calculated.

表4はコーディングの一例に過ぎず、第1のデータおよび第2のデータは様々な方式でコーディングすることができ、表フォーマットでも、しかし記号フォーマットやグラフフォーマットでも、あるいは他のどんなフォーマットでもコーディングすることができる。さらにこの例では、簡略化のために、データ型、オフセット、および飽和度に関する追加情報は示していない。

Figure 0005025658
Table 4 is only an example of coding, and the first data and the second data can be coded in various ways, coding in table format, but in symbolic format, graph format, or any other format be able to. Further, in this example, additional information regarding data type, offset, and saturation is not shown for simplicity.
Figure 0005025658

この操作シーケンスで使用される第1の論理ブロックは、論理ブロックB1(51)である。第1の汎用操作は、左にずれた論理ブロックB1(51g)と右にずれた論理ブロックB1(51d)との加算(52)である。この加算の結果は、ブロックB2(53)に記録される。すなわちB2=B1left+B1rightである。   The first logical block used in this operation sequence is the logical block B1 (51). The first general-purpose operation is addition (52) of the logical block B1 (51g) shifted to the left and the logical block B1 (51d) shifted to the right. The result of this addition is recorded in block B2 (53). That is, B2 = B1left + B1right.

第2の操作(54)は、表に関連してブロックB2(53)を変形することである。したがってこの操作は、入力におけるブロックB2(53)と、修正表を表すパラメータParam1(55)とを有する。この操作の結果は、ブロックB3(56)に記録される。すなわちB3=LUT(Param1,B2)である。   The second operation (54) is to transform block B2 (53) in relation to the table. This operation therefore has a block B2 (53) in the input and a parameter Param1 (55) representing the correction table. The result of this operation is recorded in block B3 (56). That is, B3 = LUT (Param1, B2).

このシーケンスにおける第3かつ最後の操作(57)は、論理ブロックの乗算である。この操作は、論理ブロックB3(56)および論理ブロックB1(51)を有し、すなわち入力に対してB4=B3*B1である。
したがって、論理ブロックB4(58)は、汎用操作のシーケンスの終わりに得られるブロックである。
The third and final operation (57) in this sequence is a logic block multiplication. This operation has logical block B3 (56) and logical block B1 (51), ie B4 = B3 * B1 for the input.
Therefore, the logical block B4 (58) is a block obtained at the end of the general operation sequence.

表1の例における汎用フォーマット化データは、プラットフォームと、オブジェクトのサブオブジェクトへの分解と、オブジェクトの基本情報のスクローリングモードと、基本情報がプラットフォーム中で処理されることになる順序とから、ならびに記憶された構成から独立している。実際、表1の汎用フォーマット化データは、様々な方式で特有フォーマット化データやプラットフォーム用コードに変換することができ、これは例えば、限定しないが以下に挙げる変換に従って行うことができる。   The generic formatted data in the example of Table 1 includes the platform, the decomposition of the object into sub-objects, the scrolling mode of the object's basic information, the order in which the basic information will be processed in the platform, and Independent of the stored configuration. In fact, the generalized formatted data in Table 1 can be converted into specific formatted data and platform code in various ways, for example, but not limited to, according to the conversions listed below.

第1の変換例は、メモリおよび計算時間の点で最適ではないが、サブオブジェクトへの分解を伴わない単純な変換を例示する。
左側と右側の2つの列を除いた、入力オブジェクトのピクセルBP1(論理ブロックB1に対応する)のそれぞれにつき(ピクセルは左から右へ、次いで上から下へスクロールされる)、
現ピクセルの左のピクセルと右のピクセルとを加算し、結果を物理ブロックBP2(論理ブロックB2に対応する)に記憶する。
The first transformation example illustrates a simple transformation that is not optimal in terms of memory and computation time but does not involve decomposition into sub-objects.
For each pixel BP1 of the input object (corresponding to logical block B1), excluding the two columns on the left and right (pixels are scrolled from left to right and then from top to bottom)
The left pixel and the right pixel of the current pixel are added, and the result is stored in the physical block BP2 (corresponding to the logical block B2).

左から右へ、次いで上から下へスクロールされるBP2の各ピクセルにつき、
現ピクセルに表を適用し、結果を物理ブロックBP3(論理ブロックB3に対応する)に記憶する。
左から右へ、次いで上から下へスクロールされるBP3の各ピクセルにつき、
現ピクセルにBP1の対応ピクセルを乗算し、結果を物理出力ブロックBP4(論理ブロックB4に対応する)に記憶する。
For each pixel of BP2 that is scrolled from left to right and then from top to bottom,
Apply the table to the current pixel and store the result in physical block BP3 (corresponding to logical block B3).
For each pixel in BP3 that is scrolled from left to right and then from top to bottom,
The current pixel is multiplied by the corresponding pixel of BP1, and the result is stored in physical output block BP4 (corresponding to logical block B4).

第2の変換例は、汎用フォーマット化データを変更することなくサイズおよび使用メモリを低減できることを示す。実際、第1の例では、画像に近いサイズの4つの物理ブロックが使用される。BP2、BP3、およびBP4に同じメモリを使用して、2つの物理ブロックのみを使用することができる。以下の変換が得られる。   The second conversion example shows that the size and memory used can be reduced without changing the generic formatted data. In fact, in the first example, four physical blocks of a size close to the image are used. Using the same memory for BP2, BP3, and BP4, only two physical blocks can be used. The following conversion is obtained:

左側と右側の2つの列を除いた、入力オブジェクトのピクセルBP1(論理ブロックB1に対応する)のそれぞれにつき(ピクセルは左から右へ、次いで上から下へスクロールされる)、
現ピクセルの左のピクセルと右のピクセルとを加算し、結果を物理ブロックBP2(論理ブロックB2に対応する)に記憶する。
For each pixel BP1 of the input object (corresponding to logical block B1), excluding the two columns on the left and right (pixels are scrolled from left to right and then from top to bottom)
The left pixel and the right pixel of the current pixel are added, and the result is stored in the physical block BP2 (corresponding to the logical block B2).

左から右へ、次いで上から下へスクロールされるBP2の各ピクセルにつき、
現ピクセルに表を適用し、結果を物理ブロックBP2(今や論理ブロックB3に対応する)に記憶する。
For each pixel of BP2 that is scrolled from left to right and then from top to bottom,
Apply the table to the current pixel and store the result in physical block BP2 (which now corresponds to logical block B3).

左から右へ、次いで上から下へスクロールされるBP2の各ピクセルにつき、
現ピクセルに対応BP1ピクセルを乗算し、結果を物理出力ブロックBP2(今や論理ブロックB4に対応する)に記憶する。
For each pixel of BP2 that is scrolled from left to right and then from top to bottom,
Multiply the current pixel by the corresponding BP1 pixel and store the result in physical output block BP2 (which now corresponds to logical block B4).

第3の変換例は、汎用フォーマット化データを変更することなく計算時間を短縮できることを示す。実際、第2の例では、画像に近いサイズの2つの物理ブロックが使用されるが、物理ブロックBP2は3回にわたって完全に書き込まれ、物理ブロックBP1は2回にわたって完全に読み取られ、物理ブロックBP2は2回にわたって完全に読み取られる。これを、異なるスクローリングモードおよび異なるブロックを用いて、1回の読取りおよび1回の書込みだけに制限することができる。これにより、必要とされる操作の数が減少するが、メモリアクセス要件もまた減少する。この場合、サブオブジェクトは1つのピクセルで構成される。以下の変換が得られる。   The third conversion example shows that the calculation time can be shortened without changing the general formatted data. In fact, in the second example, two physical blocks of a size close to the image are used, but physical block BP2 is completely written three times, physical block BP1 is completely read twice, and physical block BP2 Is completely read twice. This can be limited to only one read and one write using different scrolling modes and different blocks. This reduces the number of operations required, but also reduces memory access requirements. In this case, the sub-object is composed of one pixel. The following conversion is obtained:

左側と右側の2つの列を除いた、入力オブジェクトのピクセルBP1(論理ブロックB1に対応する)のそれぞれにつき(ピクセルは左から右へ、次いで上から下へスクロールされる)、
以下の特有操作シーケンスを実施する。現ピクセルの左のピクセルと右のピクセルとを加算し、結果に表を適用し、表出力に現ピクセルを乗算し、結果を現在の物理出力ブロックBP2(論理ブロックB4に対応する)に記憶する。
For each pixel BP1 of the input object (corresponding to logical block B1), excluding the two columns on the left and right (pixels are scrolled from left to right and then from top to bottom)
The following specific operation sequence is performed. Add the left and right pixels of the current pixel, apply the table to the result, multiply the table output by the current pixel, and store the result in the current physical output block BP2 (corresponding to logical block B4) .

第4の例は、より特有にキャッシュ付きスカラプロセッサに適応されているが、この第4の例では、結果は入力と同じメモリゾーンに書き込まれる。これにより、メモリサイズがより一層縮小され、メモリアクセスがローカルになる。このことは、キャッシュメモリまたはページドメモリの場合に非常に有益である。この場合、サブオブジェクトは1つのピクセルで構成される。したがって、以下の変換が得られる。
左側と右側の2つの列を除いた、入力オブジェクトのピクセルBP1(論理ブロックB1に対応する)のそれぞれにつき(ピクセルは左から右へ、次いで上から下へスクロールされる)、
以下の特有操作シーケンスを実施する。
The fourth example is more specifically adapted to a cached scalar processor, but in this fourth example, the result is written to the same memory zone as the input. This further reduces the memory size and makes memory access local. This is very beneficial in the case of cache memory or paged memory. In this case, the sub-object is composed of one pixel. Thus, the following conversion is obtained:
For each pixel BP1 of the input object (corresponding to logical block B1), excluding the two columns on the left and right (pixels are scrolled from left to right and then from top to bottom)
The following specific operation sequence is performed.

現ピクセルの左のピクセルと右のピクセルとを加算し、結果に表を適用し、表出力に現ピクセルを乗算し、結果を、現在の物理出力ブロックBP1に、現ピクセルの左のピクセルに代えて記憶する(この左ピクセルは、次の反復のための左ピクセルになる現ピクセルとは反対に、もはや使用されない)。BP1は、部分的に論理ブロックB4に対応し、部分的に論理ブロックB1に対応する)。   Adds the left and right pixels of the current pixel, applies the table to the result, multiplies the table output by the current pixel, and replaces the result in the current physical output block BP1 with the pixel to the left of the current pixel (This left pixel is no longer used, as opposed to the current pixel, which becomes the left pixel for the next iteration). BP1 partially corresponds to logical block B4 and partially corresponds to logical block B1).

第5の変換例は、小さい高速アクセスメモリおよび大きい低速メモリを伴う信号処理プロセッサに特に適応されており、各サブオブジェクトは、例えば32×32の矩形、または高速アクセスメモリの使用を最大限にする他の任意の値の矩形であり、矩形は隣接する。したがって、以下の変換が得られる。   The fifth transformation example is particularly adapted to signal processors with small fast access memory and large slow memory, where each sub-object maximizes the use of, for example, a 32 × 32 rectangle, or fast access memory A rectangle of any other value, and the rectangles are adjacent. Thus, the following conversion is obtained:

各サブオブジェクトにつき(サブオブジェクトは左から右へ、次いで上から下へスクロールされる)、
次の物理入力ブロックを、DMA(「直接メモリアクセス」)機構を介して低速メモリから高速アクセスメモリに転送することを開始する。この物理入力ブロックは、左に1列分、右に1列分拡張されて32×34となる次のサブオブジェクトに対応する。
For each sub-object (sub-object is scrolled from left to right and then from top to bottom)
Begins transferring the next physical input block from low-speed memory to high-speed access memory via a DMA ("direct memory access") mechanism. This physical input block corresponds to the next sub-object that is expanded by one column on the left and one column on the right to become 32 × 34.

前の物理出力ブロックを、DMA(「直接メモリアクセス」)機構を介して高速アクセスメモリから低速メモリに転送することを開始する。
左および右への追加の列で拡張されて32×34となり、前の反復のDMAの終わりに得られる現サブオブジェクトに対応する物理ブロックを取る。
Begins transferring the previous physical output block from the fast access memory to the slow memory via a DMA ("direct memory access") mechanism.
Extended with additional columns to the left and right to 32 × 34, take the physical block corresponding to the current sub-object obtained at the end of the DMA of the previous iteration.

以下の特有操作シーケンスを実施する。左側と右側の2つの列を除いた、物理入力ブロック(論理ブロックB1に対応する)の各ピクセル(左から右へ、次いで上から下へスクロールされる)につき、
現ピクセルの左のピクセルと右のピクセルとを加算し、結果に表を適用し、表出力にブロックの現ピクセルを乗算し、結果を現在の物理出力ブロック(論理ブロックB4に対応する)に記憶する。
The following specific operation sequence is performed. For each pixel (scrolled from left to right and then from top to bottom) of the physical input block (corresponding to logical block B1), excluding the two columns on the left and right,
Add the left and right pixels of the current pixel, apply the table to the result, multiply the table output by the current pixel of the block, and store the result in the current physical output block (corresponding to logical block B4) To do.

第6の変換例は、1つの同じ計算をベクトルの種々のピクセルに適用することのできるベクトル信号プロセッサに特に適応されており、各サブオブジェクトは、例えば64個の水平ピクセルの矩形、またはプラットフォームが処理および記憶できるベクトルのサイズと等しい他の任意の値の矩形である。ベクトルは1度に1つずつ処理されるので、この変換はどんなメモリも必要としない。したがって、以下の変換が得られる。   The sixth transformation example is particularly adapted to a vector signal processor that can apply one and the same calculation to different pixels of a vector, each sub-object being a rectangle of 64 horizontal pixels, for example, or a platform A rectangle of any other value equal to the size of the vector that can be processed and stored. This transformation does not require any memory since the vectors are processed one at a time. Thus, the following conversion is obtained:

左の2つの列を除いた、入力オブジェクトBP1(論理ブロックB1に対応する)の各サブオブジェクトV1につき(サブオブジェクトは左から右へ、次いで上から下へスクロールされる)、以下の特有操作シーケンスを実施する。   For each sub-object V1 of input object BP1 (corresponding to logical block B1), excluding the left two columns (sub-objects are scrolled from left to right and then from top to bottom), the following specific operation sequence: To implement.

各ラインの開始で、ラインの2つの左側ピクセルを右に含むベクトルV0を生み出す。
V0およびV1から、V0の2つの右側ピクセルと、V0の2つの右側ピクセルを除いたV1の左側ピクセルとに対応するベクトルV2を抽出する。V1とV2とを加算してV2を得て、V2の各ピクセルに表を適用してV2を得る。V0およびV1から、V0の右側ピクセルと、V0の右側ピクセルを除いたV1の左側ピクセルとに対応するベクトルV3を抽出する。以下の反復について、V1をV0にコピーする。すなわち、V2にV3を乗算してV2を得て、結果V2を現在の物理出力ブロックに記憶する。
At the start of each line, a vector V0 is generated containing the two left-hand pixels of the line on the right.
A vector V2 corresponding to the two right pixels of V0 and the left pixel of V1 excluding the two right pixels of V0 is extracted from V0 and V1. V1 and V2 are added to obtain V2, and a table is applied to each pixel of V2 to obtain V2. A vector V3 corresponding to the right pixel of V0 and the left pixel of V1 excluding the right pixel of V0 is extracted from V0 and V1. Copy V1 to V0 for the following iterations: That is, V2 is multiplied by V3 to obtain V2, and the result V2 is stored in the current physical output block.

上記の第3、第4、第5、および第6の例は、とりわけメモリおよび並列処理の点で異なるアーキテクチャを有する種々のプラットフォームに関する、本発明による実施形態に対応する。本発明では特に、   The third, fourth, fifth, and sixth examples above correspond to embodiments according to the present invention, particularly for various platforms having different architectures in terms of memory and parallel processing. In the present invention, in particular,

−1つの単一ループのみを使用して、コードのサイズを縮小することができる。かつ/または、
−メモリのサイズを、例では0に縮小することができるが、垂直フィルタのあるより一般的な場合では、垂直フィルタの入力データに対して計算を繰り返す必要を避けるために、いくつかのメモリラインが必要とされる。かつ/または、
-Only one single loop can be used to reduce the size of the code. And / or
-The size of the memory can be reduced to 0 in the example, but in some more general cases with a vertical filter, several memory lines are Is needed. And / or

−とりわけループをグループ化することによって、必要とされる命令の数を削減することができる。かつ/または、
−どんなサイズのベクトルにも適応することができる。かつ/または、
−どんなメモリアーキテクチャにも適応することができる。
-The number of instructions needed can be reduced, especially by grouping loops. And / or
-Can be adapted to any size vector. And / or
-Adaptable to any memory architecture.

簡略化のために、これらの例は、入力画像よりも小さい画像を生成する。必要なら、各ラインの最初と最後にコードを追加してエッジピクセルを複製することによって、入力画像と同一サイズの出力画像を容易に得ることができる。   For simplicity, these examples produce an image that is smaller than the input image. If necessary, an output image of the same size as the input image can be easily obtained by duplicating the edge pixels by adding code at the beginning and end of each line.

図4に、処理手段10の出力における特有フォーマット化データの構造を示す。このデータは、本発明による方法に従って処理プラットフォーム20に提供されることになっている。   FIG. 4 shows the structure of the specific formatted data at the output of the processing means 10. This data is to be provided to the processing platform 20 in accordance with the method according to the present invention.

特有フォーマット化データは、処理手段に提供された汎用フォーマット化データ32を使用して、かつ、この処理手段によって決定された、プラットフォーム中の基本情報をスクロールするためのモード34を使用して、処理手段によって計算される。汎用フォーマット化データは、処理手段によって実施される少なくとも1つの汎用操作または操作シーケンスを記述するデータ38を含む第1のデータ36を含む。汎用フォーマット化データはまた、少なくとも2つの論理ブロックを使用する汎用操作に関して、相互との関係における論理ブロックの位置および相対スケールを参照する第2のデータ40も含む。この汎用フォーマット化データおよびスクローリングモード34を使用して、処理手段は、特有操作に関係するデータ42およびループに関係するデータ44を提供する。このデータ42および44は、特有フォーマット化データ30の一部である。   The specific formatted data is processed using the generic formatted data 32 provided to the processing means and using the mode 34 for scrolling the basic information in the platform determined by the processing means. Calculated by means. The generic formatted data includes first data 36 that includes data 38 that describes at least one generic operation or sequence of operations performed by the processing means. The generic formatted data also includes second data 40 that refers to the position and relative scale of the logical block relative to each other for general operations using at least two logical blocks. Using this generic formatted data and scrolling mode 34, the processing means provides data 42 related to the specific operation and data 44 related to the loop. This data 42 and 44 is part of the specific formatting data 30.

図5に、操作、またはオブジェクト特有の操作の適用を示す。この図では、オブジェクト55が、4つのサブオブジェクト250、251、252、および253に分割される。各サブオブジェクトは、6つの基本情報からなる。操作262は、オブジェクト255に適用される操作のシーケンスの1つである。この操作は、各サブオブジェクトに対して6回適用され(262a、262b、262c、262d、262e、および262f)、それにより6つの結果が生成される(264)。操作262は、あるサブオブジェクトに対して6回適用される間に、別のサブオブジェクトに関する基本情報を適用する。例えば、サブオブジェクト250への操作262の適用は、次のように行われる。適用262aは基本情報254および256を適用し、適用262bは基本情報256および258を適用し、適用262cは基本情報258および260を適用し、基本情報260はサブオブジェクト252に属する。また、適用262dは基本情報154および156を適用し、適用62eは基本情報156および158を適用し、適用62fは基本情報158および160を適用し、基本情報160はサブオブジェクト252に属する。   FIG. 5 illustrates the application of operations or object specific operations. In this figure, the object 55 is divided into four sub-objects 250, 251, 252 and 253. Each sub-object consists of six basic information. Operation 262 is one of the sequences of operations applied to object 255. This operation is applied six times for each sub-object (262a, 262b, 262c, 262d, 262e, and 262f), thereby producing six results (264). Operation 262 applies basic information about another sub-object while being applied six times to one sub-object. For example, the operation 262 is applied to the sub-object 250 as follows. Application 262 a applies basic information 254 and 256, application 262 b applies basic information 256 and 258, application 262 c applies basic information 258 and 260, and basic information 260 belongs to sub-object 252. The application 262d applies basic information 154 and 156, the application 62e applies basic information 156 and 158, the application 62f applies basic information 158 and 160, and the basic information 160 belongs to the sub-object 252.

次に、本発明による方法によって決定することのできるスクローリングモードのいくつかの例について述べる。これらのスクローリングモードはそれぞれ、図5〜7のうちの1つに示すアーキテクチャのプラットフォーム中で使用されるようになっている。   The following are some examples of scrolling modes that can be determined by the method according to the invention. Each of these scrolling modes is intended to be used in the platform of the architecture shown in one of FIGS.

図6に示す第1の例では、処理プラットフォームは、1つの次元で連鎖された5つのプロセッサを備える。すなわち、プロセッサProcAから出力された計算結果がプロセッサProcBへの入力に使用され、以下同様となる。ProcEプロセッサから出力された基本情報は、プロセッサProcAの入力に適用される。   In the first example shown in FIG. 6, the processing platform comprises five processors chained in one dimension. That is, the calculation result output from the processor ProcA is used for input to the processor ProcB, and so on. The basic information output from the ProcE processor is applied to the input of the processor ProcA.

各プロセッサには、MemA〜MemEとして言及する、限られた容量のメモリユニットが備わる。このメモリユニットは、プロセッサによって実施される特有操作に使用されるパラメータ値、あるいは、プロセッサによってすぐに再使用されるよう定められた基本情報または操作からの結果を記憶するようになっている。   Each processor is equipped with a memory unit of limited capacity, referred to as MemA to MemE. The memory unit is adapted to store parameter values used for specific operations performed by the processor, or basic information or results from operations that are defined for immediate reuse by the processor.

この第1の例では、処理操作は、OP1〜OP8として言及する8つの操作のシーケンスを、オブジェクトを構成する基本情報に適用することにある。   In this first example, the processing operation is to apply a sequence of eight operations referred to as OP1 to OP8 to the basic information constituting the object.

オブジェクトは、処理されるために、それぞれN個の基本情報のサブオブジェクトに分解されなければならない。NはQ(Q=5、計算ユニットの数量)の倍数でなければならないが、このNは、本発明による方法によって、とりわけプラットフォームのメモリ容量に従って、プラットフォームから上流で決定される。この例では、N=5である。   In order to be processed, each object must be broken down into N basic information sub-objects. N must be a multiple of Q (Q = 5, the number of computational units), but this N is determined upstream from the platform by the method according to the invention, in particular according to the memory capacity of the platform. In this example, N = 5.

さらに、使用される特有操作の規則的なシーケンシングを実施するために、プラットフォームの上流に位置する処理手段によって、効果なしの特有操作OP9およびOP10が生み出され、それにより、各サブオブジェクトに対して実施される特有操作の数が、利用可能なプロセッサの数の倍数になる。   Furthermore, in order to implement regular sequencing of the specific operations used, processing means located upstream of the platform produce specific operations OP9 and OP10 without effect, so that for each sub-object The number of specific operations performed is a multiple of the number of available processors.

具体的な操作タイプに従って、各操作は、プロセッサによって実施されるように割り当てられる。ここでは、
−プロセッサAはOP1およびOP6を実施する。
−プロセッサBはOP2およびOP7を実施する。
−プロセッサCはOP3およびOP8を実施する。
−プロセッサDはOP4およびOP9を実施する。
−プロセッサEはOP5およびOP10を実施する。
According to the specific operation type, each operation is assigned to be performed by the processor. here,
-Processor A implements OP1 and OP6.
-Processor B implements OP2 and OP7.
-Processor C performs OP3 and OP8.
-Processor D performs OP4 and OP9.
-Processor E performs OP5 and OP10.

各プロセッサは、割り当てられた特有操作に対応する命令のセット(InsA〜InsE)を実行する。限られた容量のメモリに記憶されたパラメータもまた、この割当てに依存する。例えば、OP1が、2を乗算することである場合、MemAメモリは数字2を含むことになる。   Each processor executes a set of instructions (InsA to InsE) corresponding to the assigned specific operation. Parameters stored in a limited amount of memory also depend on this allocation. For example, if OP1 is to multiply by 2, MemA memory will contain the number 2.

これらの割当てが行われると、以下の表Iによって述べるシーケンシングスケジュールに従って操作が行われる。
この表では、プロセス進行時間をT1、T2、......T14として示す。

Figure 0005025658
Once these assignments are made, the operations are performed according to the sequencing schedule described by Table I below.
In this table, the process progress time is expressed as T1, T2,. . . . . . Shown as T14.
Figure 0005025658

各ラインは、10個の特有操作OP1〜OP10のうちの1つを表す。各列は、基本情報IE1〜IE5のうちの1つを表し、各基本情報は、処理されるサブオブジェクトを構成する。このIE1〜IE5の表記は形式的なものであり、必ずしも空間的または時間的現実に対応するとは限らない。実際、ある種の特有操作は基本情報の変位を生成する。したがって、例えば特有操作OP1が、左にずらすことにある場合、特有操作OP2によって処理される情報IE1は、特有操作OP1が情報IE1に適用された結果ではなく、この特有操作OP1が情報IE2に適用された結果であることがある。   Each line represents one of ten unique operations OP1 to OP10. Each column represents one of the basic information IE1 to IE5, and each basic information constitutes a sub-object to be processed. The notations IE1 to IE5 are formal and do not necessarily correspond to spatial or temporal reality. In fact, certain special operations generate displacements of basic information. Thus, for example, when the specific operation OP1 is to be shifted to the left, the information IE1 processed by the specific operation OP2 is not a result of applying the specific operation OP1 to the information IE1, but this specific operation OP1 is applied to the information IE2. Result.

この表中の各枠は、特有操作を実施するプロセッサの名前、ならびにこの特有操作が処理操作中に実施される時間を含む。明白なことだが、この表は、処理操作の一部を表すに過ぎない。ここでは、必要とされる特有操作からのすべての結果が、処理操作においてすでに計算されていると仮定する。   Each box in this table contains the name of the processor performing the specific operation, as well as the time that this specific operation is performed during the processing operation. Obviously, this table represents only part of the processing operation. Here it is assumed that all results from the required specific operations have already been calculated in the processing operation.

したがって、時間T1で、ProcAプロセッサがサブオブジェクト1の第1の情報IE1に対して操作OP1を実施するのが示されている。この時点で、他のプロセッサは、この表に示されていない他の操作を実施している。   Therefore, it is shown that the ProcA processor performs the operation OP1 on the first information IE1 of the sub-object 1 at time T1. At this point, other processors are performing other operations not shown in this table.

時間T5で、各プロセッサがサブオブジェクト1の情報の1つに対して操作を実施するのが示されている。
プロセッサがサブオブジェクトのすべての基本情報に対して特有操作を実施したとき、プロセッサは、それに割り当てられた次の操作に進む。したがって、ProcAプロセッサは、T6から操作OP6を実施する。
At time T5, each processor is shown performing an operation on one of the sub-object 1 information.
When the processor performs a specific operation on all basic information of the sub-object, the processor proceeds to the next operation assigned to it. Therefore, the ProcA processor executes the operation OP6 from T6.

プロセッサがそれに割り当てられたすべての特有操作を実施すると、次のサブオブジェクトが処理される。したがって、2つの異なるサブオブジェクト(サブオブジェクト1とサブオブジェクト2)が、プラットフォーム中で同時に処理される。
この表では、各特有操作がN回(ここではN=5)実施されることがはっきりと示されている。
When the processor performs all the specific operations assigned to it, the next sub-object is processed. Thus, two different sub-objects (sub-object 1 and sub-object 2) are processed simultaneously in the platform.
This table clearly shows that each specific operation is performed N times (N = 5 here).

このシーケンシングスケジュールは、プロセッサの次元の1つにおける循環的連鎖によって得られる。したがって、基本情報は、ある計算ユニットから他の計算ユニットに移行することができる。例えば、基本情報IE1は、すべてのプロセッサの中を進んで特有操作OP1〜OP5を「経験し」、次いで、ProcAプロセッサに戻って再び循環を開始し、操作OP6〜OP7を「経験する」。最初の基本情報IE1は、必ずしもすべてのステップでIE1情報になるとは限らないことに注意されたい。   This sequencing schedule is obtained by a circular chain in one of the processor dimensions. Therefore, basic information can be transferred from one computing unit to another. For example, the basic information IE1 goes through all the processors and “experiences” the specific operations OP1 to OP5, then returns to the ProcA processor and starts to cycle again, and “experiences” the operations OP6 to OP7. Note that the first basic information IE1 does not necessarily become IE1 information at all steps.

図7に示す第2の例では、プラットフォームは、共通のメモリにリンクされた5つのプロセッサを備える。このような構造は古典的である。すなわち、ベクトル信号プロセッサ(「単一命令複数データ」つまりSIMDタイプのもの)の構造に対応する。この例では、各プロセッサは、相関表Tなどのパラメータを含むことのできる小さいメモリに、個別にリンクされる。この構造では、各プロセッサがすべての特有操作を実施する。したがって、すべてのプロセッサは同じ命令セットINSを受け取る。   In the second example shown in FIG. 7, the platform comprises five processors linked to a common memory. Such a structure is classic. That is, it corresponds to the structure of a vector signal processor ("single instruction multiple data", that is, of the SIMD type). In this example, each processor is individually linked to a small memory that can contain parameters such as a correlation table T. In this structure, each processor performs all specific operations. Thus, all processors receive the same instruction set INS.

この第2の例では、操作のうちの1つが、表を使用して1つまたは複数の基本情報を修正することにある場合について考える。上記からわかるように、各プロセッサはそれ自体の表へのアクセスを有し、すべての表は同一である。一代替形態では、各メモリは一群のプロセッサによって共有される。一代替形態では、一群のプロセッサは同じメモリを共有し、同じパラメータを同時に得る。この場合、例えば多項式を計算するための、1つまたは複数のパラメータを使用した計算によって、相関表を適用し実施しなければならない。   In this second example, consider the case where one of the operations is to modify one or more basic information using a table. As can be seen from the above, each processor has access to its own table and all tables are identical. In one alternative, each memory is shared by a group of processors. In one alternative, a group of processors share the same memory and obtain the same parameters simultaneously. In this case, the correlation table must be applied and implemented, for example, by calculation using one or more parameters for calculating the polynomial.

これは並列操作を伴う。すなわち、プロセスの各時間で、すべてのプロセッサが、同じ操作を異なる基本情報に対して実施する。このプロセスを以下の表IIによって例示する。
この表では、プロセス進行時間をT1、T2、......T10として示す。

Figure 0005025658
This involves parallel operations. That is, at each time of the process, all processors perform the same operation on different basic information. This process is illustrated by Table II below.
In this table, the process progress time is expressed as T1, T2,. . . . . . Shown as T10.
Figure 0005025658

この表では、所与の時間Tiで、特有操作OPiが、各プロセッサProcA〜ProcEによって基本情報IE1〜IE5に対してそれぞれ実施されることがわかる。
10回目のインクリメントの後には、特有操作のシーケンス中の各特有操作が、サブオブジェクトの各基本情報に対して実施されていることに気付くことができる。
In this table, it can be seen that the specific operation OPi is performed on the basic information IE1 to IE5 by the processors ProcA to ProcE at a given time Ti.
After the tenth increment, it can be noticed that each unique operation in the sequence of unique operations has been performed on each basic information of the sub-object.

この場合、特有操作はすべてのプロセッサによって並列で実施されるので、効果なしの操作によって特有操作のシーケンスを完全なものにする必要はないことが明らかである。このようにして、操作OP8が完了すると、次のサブオブジェクトを構成する基本情報に操作OP1を適用することによって、プロセスを繰り返すことができる。   In this case, it is clear that the sequence of unique operations need not be complete by operations without effect, since the specific operations are performed in parallel by all processors. In this way, when the operation OP8 is completed, the process can be repeated by applying the operation OP1 to the basic information constituting the next sub-object.

図8に示す第3の例では、プラットフォームは、とりわけPCタイプのコンピュータ内に存在するベクトル信号プロセッサと同様の、共通のメモリにリンクされた5つのプロセッサで構成されるベクトル信号プロセッサを備える。またこれらのプロセッサはすべて、パラメータ、およびとりわけ相関表を含むことのできる、小さいメモリにリンクされる。この構造では、各プロセッサがすべての特有操作を実施する。したがって、すべてのプロセッサは、実施されるすべての特有操作を記述したデータを含む同じINS命令セットを受け取る。   In the third example shown in FIG. 8, the platform comprises a vector signal processor comprised of five processors linked to a common memory, similar to the vector signal processor present among other PC type computers. All of these processors are also linked to a small memory that can contain parameters and inter alia a correlation table. In this structure, each processor performs all specific operations. Thus, all processors receive the same INS instruction set that includes data describing all specific operations to be performed.

この例では、2つの特有操作のシーケンスが、表を使用して1つまたは複数の基本情報を修正することにある場合について考える。ここで、表は1つの単一場所にのみ存在し、したがってプロセッサはこれらの表を共有しなければならない。   In this example, consider the case where the sequence of two unique operations is to modify one or more basic information using a table. Here, the tables exist only in one single location, so the processors must share these tables.

すべてのプロセッサはサブオブジェクトの異なる基本情報に対して1つの同じ操作を同時に実施するので、プロセスの始めには、並列操作が実施されている。このプロセスを以下の表IIIによって例示する。
この表では、プロセス進行時間をT1、T2、......T18として示す。

Figure 0005025658
Since all processors simultaneously perform one and the same operation on different basic information of sub-objects, a parallel operation is performed at the beginning of the process. This process is illustrated by Table III below.
In this table, the process progress time is expressed as T1, T2,. . . . . . Shown as T18.
Figure 0005025658

この表の最初の3つのラインでは、所与の時間Tiで、特有操作OPiが、各プロセッサProcA〜ProcEによって基本情報IE1〜IE5に対してそれぞれ実施されることがわかる。   In the first three lines of this table, it can be seen that at a given time Ti, the specific operation OPi is performed on the basic information IE1 to IE5 by each processor ProcA to ProcE, respectively.

表を使用する操作OP4に達したとき、アクセス問題に遭遇する。というのは、すべてのプロセッサが同時にこの表にアクセスすることはできないからである。したがって、プロセッサは、「自分の順番を待つ」こと、すなわち前のプロセッサが表の使用を終えて自分が表を使用できるようになるまで待機することを余儀なくされる。このため、操作OP4は、時間T4〜T8でプロセッサProcA〜ProcEによってそれぞれ実施される。操作OP5もまた表を使用すると仮定すると、同様にして以下の状況が生じることになる。すなわち、操作OP5は、時間T9〜T13でプロセッサProcA〜ProcEによってそれぞれ実施される。   When the operation OP4 using the table is reached, an access problem is encountered. This is because not all processors can access the table at the same time. Thus, the processor is forced to "wait for its turn", i.e. wait until the previous processor has finished using the table and is ready to use the table. Therefore, the operation OP4 is performed by the processors ProcA to ProcE at times T4 to T8, respectively. Assuming that operation OP5 also uses a table, the following situation will occur in the same way. That is, the operation OP5 is performed by the processors ProcA to ProcE at times T9 to T13, respectively.

これらの操作が実施されると、プロセスは通常どおり継続することができる。
図9aに、サブオブジェクトの次元の1つに従ったいくつかの循環的連鎖を含むプラットフォームの一実施形態例を示す。この第1の例では、オブジェクトは2つの次元を有する画像であり、サブオブジェクトは4つの基本情報を含み、プラットフォームは、水平に4つのプロセッサと垂直に1つのプロセッサとの矩形に対応する4*1プロセッサのグリッドに従って配置された、4つのプロセッサを備える。これらのプロセッサを、左から右にP1、P2、P3、およびP4と呼ぶ。本方法はまた、この例では2つの待ち行列も適用する。
Once these operations are performed, the process can continue as usual.
FIG. 9a illustrates an example embodiment of a platform including several circular chains according to one of the sub-object dimensions. In this first example, the object is an image with two dimensions, the sub-object contains four basic information, and the platform is 4 * corresponding to a rectangle with four processors horizontally and one processor vertically. It comprises four processors arranged according to a one processor grid. These processors are called P1, P2, P3, and P4 from left to right. The method also applies two queues in this example.

−水平待ち行列FHaが、入力でP4の出力に接続され、出力でプロセッサP1の入力に接続される。P1の出力はP2の入力に接続される。P2の出力はP3の入力に接続され、P3の出力はP4の入力に接続される。   The horizontal queue FHa is connected at the input to the output of P4 and at the output to the input of the processor P1. The output of P1 is connected to the input of P2. The output of P2 is connected to the input of P3, and the output of P3 is connected to the input of P4.

−垂直待ち行列FVaが、入力でP1、P2、P3、およびP4の出力に接続され、出力でプロセッサP1、P2、P3、およびP4の入力に接続される。   A vertical queue FVa is connected at the input to the output of P1, P2, P3 and P4 and at the output to the input of the processors P1, P2, P3 and 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が別の水平フィルタを適用することができ、待ち行列を使用して正しい順序でデータが取り出される。   -The sequence of specific operations can apply any number of horizontal filters FH using 100% of 4 processors. For example, in the case of the specific operation OS2 that performs the calculation of the filter consisting of the addition of the result of the specific operation OS1 and the result of the same specific operation OS1 on the left, the result of the operation OS1 from the processor P4 is placed in the queue FHa. Will be used by OS2 on P1 during the computation of subsequent sub-objects. The result of operation OS1 from processor P3 is transferred to processor P4 for use by OS2 on P4 together with the result of OS1 on P4. The result of operation OS1 from processor P2 is transferred to P3 for use by OS2 on P3 together with the result of OS1 on P3. The result of operation OS1 from processor P1 is transferred to processor P2 for use by OS2 on P2 along with the result of OS1 on P2. The result of operation OS1 performed by P4 during the calculation of the previous sub-object is output from queue FHa and forwarded to processor P1 for use by OS2 on P1 along with the result of OS1 on P1. . Another operation OS3 on this sequence can apply another horizontal filter, and the data is retrieved in the correct order using the queue.

−必要に応じて変更を加えて、特有操作のシーケンスは、4つのプロセッサを100%使用しながら、任意の数量の垂直フィルタFVを適用することができる。   The sequence of specific operations can be applied with any number of vertical filters FV, using 100% of 4 processors, with modifications as needed.

−最後に、特有操作のシーケンスは、4つのプロセッサを100%使用しながら、水平と垂直の両方の次元に従って分離不可能な任意の数量のフィルタFVHを適用することができる。例えば、1つの特有操作OS4からの4つの結果に適用される非分離型3×3フィルタは、FVaを2回プロンプトし、次いでFHaを6回プロンプトして、前に計算された4つのOS4結果を8セット入手し、現サブオブジェクトからのOS4結果のセットと結合されるようにすることができる。例えば、これらの非分離型フィルタは、垂直および/または水平フィルタと共に使用することができ、この2つの待ち行列は、データを正しい順序で取り出せるようにする。   -Finally, the sequence of specific operations can apply any number of filters FVH that are inseparable according to both horizontal and vertical dimensions, using 100% of 4 processors. For example, a non-separable 3x3 filter applied to four results from one specific operation OS4 will prompt FVa twice and then FHa six times, resulting in four previously calculated OS4 results. Can be obtained and combined with the set of OS4 results from the current sub-object. For example, these non-separable filters can be used with vertical and / or horizontal filters, and the two queues allow data to be retrieved in the correct order.

2つのフィルタが適用されるとき、特有操作のシーケンスはしたがって、シーケンスとは別個の少なくとも2つの特有操作がそれぞれ、そのN回の適用中に少なくとも1回、別のサブオブジェクトの処理に使用される結果を生成するようなシーケンスである。別のサブオブジェクトの処理に使用される結果は、待ち行列(1つまたは複数)を介して移行する。   When two filters are applied, the sequence of unique operations is thus used to process another sub-object at least once during its N applications, each of which is at least two distinct operations distinct from the sequence A sequence that produces a result. The result used to process another sub-object moves through the queue (s).

同様にして、図9bに第2の例を示すが、この例では、オブジェクトは2つの次元を有する画像であり、サブオブジェクトは4つの基本情報を含み、プラットフォームは、水平に2つのプロセッサと垂直に2つのプロセッサとの矩形に対応する2*2プロセッサのグリッドに従って配置された、4つのプロセッサを備える。これらのプロセッサを、左から右に、上のラインにあるものはP4およびP5、下のラインにあるものはP6およびP7と呼ぶ。本方法はまた、この例では2つの待ち行列も使用する。   Similarly, a second example is shown in FIG. 9b, where in this example the object is an image with two dimensions, the sub-object contains four basic information, and the platform is vertically aligned with two processors. With four processors arranged according to a grid of 2 * 2 processors corresponding to a rectangle with two processors. From left to right, these processors are called P4 and P5 in the upper line, and P6 and P7 in the lower line. The method also uses two queues in this example.

−水平待ち行列FHbが、入力でP3およびP6の出力に接続され、出力でP1およびP4の入力に接続される。
−垂直待ち行列FVbが、入力でP4およびP5の出力に接続され、出力でプロセッサP6およびP7の入力に接続される。
A horizontal queue FHb is connected at the input to the outputs of P3 and P6 and at the output to the inputs of P1 and P4.
A vertical queue FVb is connected at the input to the outputs of P4 and P5 and at the output to the inputs of the processors P6 and P7.

図9aの例のように、特有操作のシーケンスは、4つのプロセッサを100%使用しながら、任意の数量の垂直および/または水平および/または非分離型フィルタを適用することができる。   As in the example of FIG. 9a, the sequence of specific operations can apply any number of vertical and / or horizontal and / or non-separable filters while using 100% of four processors.

図9cに示す第3の例では、プラットフォームは、水平待ち行列FHcと垂直待ち行列FVcとに接続された単一のプロセッサP8を備える。この2つの待ち行列は、後で再使用されることになっている特有操作からの結果を記憶するためにプロセッサが使用することができる。   In the third example shown in FIG. 9c, the platform comprises a single processor P8 connected to the horizontal queue FHc and the vertical queue FVc. The two queues can be used by the processor to store results from specific operations that are to be reused later.

図9aの例でもまた、特有操作のシーケンスは、プロセッサを100%使用しながら、任意の数量の垂直および/または水平および/または非分離型フィルタを適用することができる。   Also in the example of FIG. 9a, the sequence of specific operations can apply any number of vertical and / or horizontal and / or non-separable filters while using 100% of the processor.

本発明による、画像をサブオブジェクトに分解する例を示す図である。It is a figure which shows the example which decomposes | disassembles an image into a subobject by this invention. 本発明による、画像をサブオブジェクトに分解する例を示す図である。It is a figure which shows the example which decomposes | disassembles an image into a subobject by this invention. 本発明による、画像をサブオブジェクトに分解する例を示す図である。It is a figure which shows the example which decomposes | disassembles an image into a subobject by this invention. 本発明による、画像をサブオブジェクトに分解する例を示す図である。It is a figure which shows the example which decomposes | disassembles an image into a subobject by this invention. 本発明による、画像をサブオブジェクトに分解する例を示す図である。It is a figure which shows the example which decomposes | disassembles an image into a subobject by this invention. 本発明による、画像をサブオブジェクトに分解する例を示す図である。It is a figure which shows the example which decomposes | disassembles an image into a subobject by this invention. 本発明による方法を使用するデバイスを示す図である。Figure 2 shows a device using the method according to the invention. いくつかの論理ブロックと1つのパラメータとに適用される汎用操作のシーケンスの例を示す図である。It is a figure which shows the example of the sequence of the general purpose operation applied to several logic blocks and one parameter. 本発明による方法においてプラットフォームに提供される特有フォーマット化データの構造を示す図である。FIG. 4 shows the structure of specific formatted data provided to the platform in the method according to the invention. オブジェクト特有の操作の適用を示す図である。It is a figure which shows application of operation specific to an object. 本発明による方法に従ってオブジェクトを処理することのできるプラットフォームの種々のアーキテクチャを示す図である。FIG. 2 shows different architectures of a platform that can process objects according to the method according to the invention. 本発明による方法に従ってオブジェクトを処理することのできるプラットフォームの種々のアーキテクチャを示す図である。FIG. 2 shows different architectures of a platform that can process objects according to the method according to the invention. 本発明による方法に従ってオブジェクトを処理することのできるプラットフォームの種々のアーキテクチャを示す図である。FIG. 2 shows different architectures of a platform that can process objects according to the method according to the invention. 本発明によるプラットフォーム中のプロセッサ連鎖の例を示す図である。FIG. 4 shows an example of a processor chain in a platform according to the invention. 本発明によるプラットフォーム中のプロセッサ連鎖の例を示す図である。FIG. 4 shows an example of a processor chain in a platform according to the invention. 本発明によるプラットフォーム中のプロセッサ連鎖の例を示す図である。FIG. 4 shows an example of a processor chain in a platform according to the invention.

Claims (6)

複数の基本情報を含むオブジェクトを処理するプラットフォームであって、このプラットフォームはN×P個のプロセッサを含み、このN×P個のプロセッサは縦にP個、横にN個となるように矩形のグリッドに配置され、各プロセッサは特有操作シーケンスを実施することを目的とし、この特有操作では少なくとも任意の数の垂直フィルタ、水平フィルタ若しくは非分離型フィルタが少なくとも1つの基本情報に対して適用され、
更に、前記プロセッサの各出力端子は水平方向待ち行列及び/または垂直方向待ち行列を介して他のプロセッサの入力端子に直列に接続され、これにより前記プロセッサが実施した特有操作の結果が前記他のプロセッサに転送され、また少なくとも1つの列のグリッドの端に位置するプロセッサが実施した特有操作の結果は別のグリッドの端に位置するプロセッサに受信されることを特徴とするプラットフォーム。
A platform for processing an object including a plurality of basic information, the platform including N × P processors, and the N × P processors are rectangular so that there are P vertically and N horizontally. Arranged in a grid, each processor aiming to implement a specific sequence of operations, in which at least any number of vertical, horizontal or non-separable filters are applied to at least one basic information,
Further, each output terminal of the processor is connected in series to an input terminal of another processor via a horizontal queue and / or a vertical queue , so that the result of the specific operation performed by the processor is the other A platform characterized in that a result of a specific operation carried out by a processor located at the end of a grid of at least one column is received by a processor located at the end of another grid.
前記Pが1であることを特徴とする請求項1に記載のプラットフォーム。  The platform of claim 1, wherein the P is 1. 前記オブジェクトが画像であり、前記基本情報はピクセルであることを特徴とする請求項1または2にプラットフォーム。  The platform according to claim 1 or 2, wherein the object is an image and the basic information is a pixel. 複数の基本情報を含むオブジェクトの処理方法であって、この処理方法はN×P個のプロセッサを含むプラットフォームを用いて行われ、前記N×P個のプロセッサは縦にP個、横にN個となるように矩形のグリッドに配置され、またこの処理方法は各プロセッサが特有操作シーケンスを実施するステップを含み、この特有操作では少なくとも任意の数の垂直フィルタ、水平フィルタ若しくは非分離型フィルタが少なくとも1つの基本情報に対して適用され、
また、この処理方法は、1つのプロセッサが実施した特有操作の結果を他のプロセッサに転送するステップを含み、
更に、この処理方法は、少なくとも1つの列のグリッドの端に位置するプロセッサが実施した特有操作の結果を水平方向待ち行列及び/または垂直方向待ち行列を介して別のグリッドの端に位置するプロセッサが受信するステップを含むことを特徴とする処理方法。
An object processing method including a plurality of basic information, wherein the processing method is performed using a platform including N × P processors, and the N × P processors are vertically arranged in N and horizontally in N pieces. And the processing method includes a step in which each processor performs a specific sequence of operations, where at least any number of vertical, horizontal or non-separable filters are included. Applied to one piece of basic information,
The processing method includes a step of transferring a result of a specific operation performed by one processor to another processor,
Further, the processing method includes a processor located at the end of another grid via a horizontal queue and / or a vertical queue for the result of a specific operation performed by a processor located at the end of the grid in at least one column. The processing method characterized by including the step which receives.
前記Pが1であることを特徴とする請求項4に記載の処理方法。  The processing method according to claim 4, wherein P is one. 前記オブジェクトが画像であり、前記基本情報はピクセルであることを特徴とする請求項4または5に記載の処理方法。  The processing method according to claim 4, wherein the object is an image, and the basic information is a pixel.
JP2008545068A 2005-12-19 2006-12-19 Platform and processing method using this platform Expired - Fee Related JP5025658B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0553945 2005-12-19
FR0553945A FR2895102B1 (en) 2005-12-19 2005-12-19 PROCESS FOR PROCESSING AN OBJECT IN A PROCESSOR (S) AND MEMORY (S) PLATFORM AND PLATFORM USING THE METHOD
PCT/FR2006/051390 WO2007071884A2 (en) 2005-12-19 2006-12-19 Method for processing an object on a platform having one or more processors and memories, and platform using same

Publications (2)

Publication Number Publication Date
JP2009524123A JP2009524123A (en) 2009-06-25
JP5025658B2 true JP5025658B2 (en) 2012-09-12

Family

ID=37307163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008545068A Expired - Fee Related JP5025658B2 (en) 2005-12-19 2006-12-19 Platform and processing method using this platform

Country Status (7)

Country Link
US (1) US8412725B2 (en)
EP (1) EP1964053A2 (en)
JP (1) JP5025658B2 (en)
KR (1) KR101391498B1 (en)
CN (1) CN101375311A (en)
FR (1) FR2895102B1 (en)
WO (1) WO2007071884A2 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE497224T1 (en) * 2001-07-12 2011-02-15 Dxo Labs METHOD AND SYSTEM FOR IMPROVING THE QUALITY OF IMAGES
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
CA2793429C (en) 2010-03-18 2019-10-29 Nuodb, Inc. Database management system
US20150070138A1 (en) * 2012-07-06 2015-03-12 Alan Haddy Detection of buried assets using current location and known buffer zones
US11176111B2 (en) 2013-03-15 2021-11-16 Nuodb, Inc. Distributed database management system with dynamically split B-tree indexes
US10740323B1 (en) 2013-03-15 2020-08-11 Nuodb, Inc. Global uniqueness checking in distributed databases
US9501363B1 (en) 2013-03-15 2016-11-22 Nuodb, Inc. Distributed database management system with node failure detection
US10037348B2 (en) 2013-04-08 2018-07-31 Nuodb, Inc. Database management system with database hibernation and bursting
US10255547B2 (en) 2014-12-04 2019-04-09 Nvidia Corporation Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system
US10884869B2 (en) 2015-04-16 2021-01-05 Nuodb, Inc. Backup and restore in a distributed database utilizing consistent database snapshots
US10067969B2 (en) 2015-05-29 2018-09-04 Nuodb, Inc. Table partitioning within distributed database systems
US10180954B2 (en) 2015-05-29 2019-01-15 Nuodb, Inc. Disconnected operation within distributed database systems
KR102600366B1 (en) 2017-08-15 2023-11-08 누오디비 인코포레이티드 Index partitioning in distributed databases

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4839801A (en) * 1986-11-03 1989-06-13 Saxpy Computer Corporation Architecture for block processing computer system
US4939642A (en) * 1989-02-01 1990-07-03 The Board Of Trustees Of The Leland Stanford Jr. University Virtual bit map processor
JP3305406B2 (en) * 1993-04-26 2002-07-22 松下電器産業株式会社 Program-controlled processor
JP3316901B2 (en) * 1993-01-22 2002-08-19 松下電器産業株式会社 Data distribution circuit
DE69421103T2 (en) * 1993-01-22 2000-06-08 Matsushita Electric Ind Co Ltd Program controlled processor
WO1999052040A1 (en) * 1998-04-08 1999-10-14 Stellar Technologies, Ltd. Architecture for graphics processing
FR2827459B1 (en) * 2001-07-12 2004-10-29 Poseidon METHOD AND SYSTEM FOR PROVIDING IMAGE PROCESSING SOFTWARE FORMAT INFORMATION RELATED TO THE CHARACTERISTICS OF IMAGE CAPTURE APPARATUS AND / OR IMAGE RENDERING MEANS
DE60218317T2 (en) * 2001-07-12 2008-01-03 Do Labs METHOD AND SYSTEM FOR PREPARING FORMATTED INFORMATION RELATED TO GEOMETRIC DISTORTIONS
ATE497224T1 (en) * 2001-07-12 2011-02-15 Dxo Labs METHOD AND SYSTEM FOR IMPROVING THE QUALITY OF IMAGES
US6980980B1 (en) * 2002-01-16 2005-12-27 Microsoft Corporation Summary-detail cube architecture using horizontal partitioning of dimensions
US7158141B2 (en) * 2002-01-17 2007-01-02 University Of Washington Programmable 3D graphics pipeline for multimedia applications
WO2005064537A1 (en) * 2003-12-22 2005-07-14 Koninklijke Philips Electronics N.V. System for generating a distributed image processing application

Also Published As

Publication number Publication date
FR2895102B1 (en) 2012-12-07
FR2895102A1 (en) 2007-06-22
US20080320038A1 (en) 2008-12-25
CN101375311A (en) 2009-02-25
US8412725B2 (en) 2013-04-02
KR101391498B1 (en) 2014-05-07
WO2007071884A2 (en) 2007-06-28
KR20080080398A (en) 2008-09-03
WO2007071884A3 (en) 2007-08-16
JP2009524123A (en) 2009-06-25
EP1964053A2 (en) 2008-09-03

Similar Documents

Publication Publication Date Title
JP5025658B2 (en) Platform and processing method using this platform
KR101391465B1 (en) Digital data processing method and system
KR102258414B1 (en) Processing apparatus and processing method
JP4144292B2 (en) Image processing apparatus, image processing system, and image processing method
US10754657B1 (en) Computer vision processing in hardware data paths
US9984432B2 (en) Processor, system, and method for efficient, high-throughput processing of two-dimensional, interrelated data sets
OA10382A (en) Apparatus and method for decoding video images
EP2997539B1 (en) Method and device for processing input image data
KR101391569B1 (en) Method for providing data to a digital processing means
US7382937B2 (en) Method and apparatus for re-constructing high-resolution images
US5555321A (en) Image data binary coding method and apparatus
WO2021127628A1 (en) Noise synthesis for digital images
CN110490308B (en) Design method of acceleration library, terminal equipment and storage medium
US20020057276A1 (en) Data processing apparatus, processor and control method
CN1311405C (en) Image processor
JP2005117582A (en) Coding device and method, decoding device and method, and programs
JP2010033507A (en) Memory controller and image processing apparatus
TWI382768B (en) Method and apparatus for concurrently performing lapped transform and core transform operations
JP2790911B2 (en) Orthogonal transform operation unit
JPS63102467A (en) Converting device for resolution of picture data
JP2002108843A (en) Method and device for discrete cosine transformation and inverse discrete cosine transformation
JP2002171412A (en) Simd type information processing apparatus provided with x-branch tree instruction
JP2005229218A (en) Image decoding apparatus
WO1999030276A1 (en) Digital signal processor and digital signal processing method
JPH0481919B2 (en)

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: 20110628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120508

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120529

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120619

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

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5025658

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees