(57)【要約】  本発明は、Ｑ個のプロセッサと少なくとも１つのメモリとを備える所定のプラットフォーム（２０）に特有フォーマット化データ（１８）を直接的または間接的に提供することに鑑みて、どんなループもない汎用操作のシーケンスを記述する第１のデータ（１４）を含む汎用フォーマット化データ（１２）を処理するための方法およびシステムに関し、プラットフォームは、同じタイプの基本情報で構成されたオブジェクト（２２）を、特有フォーマット化データ（１８）に直接的または間接的に従って処理するようになっており、各基本情報は少なくとも１つの数値で表される。【選択図】  図1a, 1b, 1c, 1d, 1e, 1f
2009524854.tif 000002
【特許請求の範囲】
【請求項１】
Ｑ個のプロセッサと少なくとも１つのメモリとを備える所定のプラットフォーム（２０）に特有フォーマット化データ（１８）を直接的または間接的に提供することに鑑みて、どんなループもない汎用操作のシーケンスを記述する第１のデータ（１４）を含む汎用フォーマット化データ（１２）を処理する方法であって、前記プラットフォームは、同じタイプの基本情報で構成されたオブジェクト（２２）を前記特有フォーマット化データ（１８）に従って処理するようになっており、各基本情報は少なくとも１つの数値で表され、
−前記汎用操作のシーケンスを前記プラットフォームに従って特有操作のシーケンスに変換するステップと、
−前記プラットフォームのアーキテクチャおよび前記オブジェクトのトポロジに従って、かつ第１のデータから独立して、処理操作に必要とされるループのセットを決定するステップと、
−前記特有操作のシーケンスとこのように決定された前記ループとを含む特有フォーマット化データを計算し、コードサイズおよび／またはメモリサイズおよび／または計算時間の点で前記プラットフォームに最適化された方式で、汎用フォーマット化データに準拠する前記オブジェクトの処理を直接的または間接的に可能にするステップとを含む方法。
【請求項２】
前記プラットフォーム（２２）のアーキテクチャおよび前記オブジェクトのトポロジに従って、かつ第１のデータから独立して、前記プラットフォーム中の基本情報に対するスクローリングモード（２４）を決定するステップをさらに含み、前記スクローリングモードの決定は、
−基本情報をサブオブジェクトにグループ化することであって、各サブオブジェクトは前記プラットフォームに従って決定される数量Ｎの基本情報を含み、前記プラットフォーム中での前記処理はサブ処理操作を周期的に開始することにあり、前記サブ処理操作は前記特有操作のシーケンスを前記サブオブジェクトの１つに適用することにあることと、
−前記プラットフォームに従って決定される、前記サブオブジェクトの形およびオーバーレイと、
−前記プラットフォームに従って決定される、サブオブジェクトの処理順序との選択および／または計算を含み、前記処理操作に必要とされるループのセットを決定する前記ステップおよび／または前記特有操作のシーケンスを計算する前記ステップは、前記スクローリングモードを反映する、請求項１に記載の方法。
【請求項３】
スクローリングモードの決定は、前記特有操作のシーケンスのうち、どの特有操作（１つまたは複数）が各プロセッサによって実施されるかを決定するステップを含み、各特有操作は各サブオブジェクトに少なくともＮ回適用され、各特有操作は、そのＮ回の適用中に、それぞれ少なくとも１回、サブオブジェクトの基本情報を直接的および／または間接的に適用して、ちょうどＮ個の結果を生成し、さらに、このように決定された情報を前記特有フォーマット化データに加えるステップを含む、請求項２に記載の方法。
【請求項４】
スクローリングモードの決定は、周期の相対時間ごとに、前記特有操作のシーケンスのうち、どの特有操作（１つまたは複数）が各プロセッサによって実施されるかを決定するステップを含み、各特有操作は各サブオブジェクトに少なくともＮ回適用され、各特有操作は、そのＮ回の適用中に、それぞれ少なくとも１回、サブオブジェクトの基本情報を直接的および／または間接的に適用して、ちょうどＮ個の結果を生成し、さらに、このように決定された情報を前記特有フォーマット化データに加えるステップを含む、請求項２または３に記載の方法。
【請求項５】
各サブオブジェクトに適用される特有操作の数量がプロセッサの数量Ｑの倍数でない場合、および／または、処理される前記オブジェクトに関する基本情報の数量がＮの倍数でない場合に、効果なしの特有操作および／またはヌル基本情報を加え、それにより特有操作の数量がＱの倍数になり、基本情報の数量がＮの倍数になるようにするステップを含む、請求項２から４のうちの一項に記載の方法。
【請求項６】
前記汎用操作のシーケンスは、論理ブロックと呼ばれる少なくとも１つの基本情報セットに適用され、前記汎用フォーマット化データはまた、相互との関係における論理ブロックの相対位置および／または相対スケール（とりわけ空間的および／または時間的）を参照する、少なくとも２つの論理ブロックを使用する汎用操作に関する第２のデータも含み、各特有操作が適用される前記基本情報および／または特有操作からの結果は第２のデータに依存し、相互との関係における論理ブロックの少なくとも１つの相対位置がヌルでない場合は、少なくとも１つの特有操作は別のサブオブジェクトの少なくとも１つの基本情報を直接的または間接的に適用する、前記請求項のうちの一項に記載の方法。
【請求項７】
別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の一部を第２のデータに従って決定するステップを含む、請求項６に記載の方法。
【請求項８】
別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果を、第２のデータおよび／または前記スクローリングモードに従ってメモリ中に共にグループ化するステップをさらに含む、請求項２から５のうちの一項および請求項６から７のうちの一項に記載の方法。
【請求項９】
前記特有操作は少なくとも１つの循環的連鎖に従って連鎖された計算ユニットによって実施され、さらに、各特有操作につき、前記特有操作の結果を循環的連鎖に従って送出すべきかどうかを第２のデータに従って判定するステップを含み、さらに、妥当な場合に、どの循環的連鎖を使用して前記特有操作の結果を送出するかを、第２のデータおよび前記スクローリングモードに従って決定するステップを含む、請求項２から５のうちの一項および請求項６から８のうちの一項に記載の方法。
【請求項１０】
特有フォーマット化データは、特有操作を共にグループ化することに関する情報を含み、前記グループは、後続のサブ処理操作に必要とされない各特有操作からの結果を記憶せずに実行されることになっている１つまたは複数の特有操作のパケットの形成にある、請求項２から９のうちの一項に記載の方法。
【請求項１１】
特有フォーマット化データは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の少なくとも一部を前記プラットフォームのメモリ中に保持することを可能にする特有操作を含む、請求項２から１０のうちの一項に記載の方法。
【請求項１２】
別のサブオブジェクトのサブ処理中に使用される特有操作からの結果を、前記サブオブジェクトとの関係における前記別のサブオブジェクトの相対位置に従って、メモリに共にグループ化して記憶するステップをさらに含む、請求項２から１１のうちの一項に記載の方法。
【請求項１３】
サブオブジェクトのサブ処理中に実施され別のサブオブジェクトのサブ処理中に使用される特有操作からの結果を、少なくとも１つの待ち行列中で共にグループ化するステップをさらに含む、請求項２から１２のうちの一項に記載の方法。
【請求項１４】
特有フォーマット化データは、特有操作からの結果が前記プラットフォーム中で複数回にわたって計算されるような特有操作を含み、それにより、とりわけ前記サブオブジェクトが前記サブジェクトの次元の少なくとも１つでオーバーレイされている場合に、特有操作の実行時にどんな情報も損失しない、請求項２から１３のうちの一項に記載の方法。
【請求項１５】
特有フォーマット化データは、特有操作からの結果および／または記憶された基本情報の少なくとも一部に前記プラットフォームがアクセスできるようにするためのアドレス指定情報を含み、前記アドレス指定情報は「ベースアドレス＋オフセット」または「（ベースアドレス＋オフセット）ｍｏｄ（前記プラットフォーム中に位置するバッファメモリのサイズ）」フォーマットであり、前記オフセットは、各サブ処理操作で、１つの同じ特有操作からの結果に対して一定である、請求項２から１４のうちの一項に記載の方法。
【請求項１６】
サブ処理操作ごとの前記ベースアドレスが変更される、請求項１５に記載の方法。
【請求項１７】
特有操作からの結果を記憶するために、空のメモリスロット、あるいはもはや使用されない特有操作結果または基本情報を含むメモリスロットのアドレスが前記プラットフォームに提供されるようにして、特有操作の順序に従って前記オフセットを計算するステップを含む、請求項１５または１６に記載の方法。
【請求項１８】
前記処理は、前記スクローリングモードに従って、少なくとも１つのループと、前記ループ（１つまたは複数）の反復の数量と、複数のループがあるときにはループの埋込みとの計算を含む、請求項２から１７のうちの一項に記載の方法。
【請求項１９】
少なくとも１つのパラメータも処理し、前記特有操作によって使用される前記パラメータ（１つまたは複数）の値（１つまたは複数）は、サブオブジェクトの絶対位置に依存し、かつ／あるいは、前記特有操作において直接的または間接的に適用される前記基本情報の、サブオブジェクトにおける絶対位置に依存する、請求項２から１８のうちの一項に記載の方法。
【請求項２０】
少なくとも１つのパラメータも処理し、特有フォーマット化データは、前記パラメータ（１つまたは複数）の値（１つまたは複数）、および／あるいは、前記パラメータ（１つまたは複数）の値（１つまたは複数）に関する計算コードを含む、前記請求項のうちの一項に記載の方法。
【請求項２１】
少なくとも１つのパラメータも処理し、前記パラメータ（１つまたは複数）の値（１つまたは複数）は前記処理プラットフォームに従って選択され、それにより前記処理操作は前記プラットフォームの特性を反映する、前記請求項のうちの一項に記載の方法。
【請求項２２】
少なくとも１つのパラメータも処理し、パラメータ（１つまたは複数）の値（１つまたは複数）は、処理される前記オブジェクトに依存する、前記請求項のうちの一項に記載の方法。
【請求項２３】
前記特有操作は、加算、減算、乗算、相関表の適用、最小値、最大値、選択を含むグループ中で選択される少なくとも１つの特有計算操作を含む、前記請求項のうちの一項に記載の方法。
【請求項２４】
前記特有操作は少なくとも１つの循環的連鎖ＣＣ１を用いて連鎖された計算ユニットによって実施され、前記循環的連鎖ＣＣ１は少なくとも１つの待ち行列も含み、前記特有操作シーケンスからの少なくとも１つの特有操作ＩＳ４は、計算ユニットＵＣ１上で実施された１つの特有操作ＩＳ５の結果を、前記連鎖に従って前記計算ユニットＵＣ１に続く計算ユニットＵＣ２または待ち行列に送出する、前記請求項のうちの一項に記載の方法。
【請求項２５】
前記特有操作は、転置、複製、サブサンプリングを含むグループ中で選択される少なくとも１つの特有幾何学操作を含む、前記請求項のうちの一項に記載の方法。
【請求項２６】
前記特有操作は少なくとも１つの循環的連鎖に従って連鎖された計算ユニットによって実施され、前記循環的連鎖は少なくとも１つの待ち行列も含む、前記請求項のうちの一項に記載の方法。
【請求項２７】
前記特有操作は少なくとも１つの循環的連鎖に従って連鎖された計算ユニットによって実施され、前記循環的連鎖は少なくとも１つの待ち行列も含み、前記待ち行列はサイズおよび／またはレイテンシを有し、さらに、前記汎用操作のシーケンスおよび前記スクローリングモードに従って前記待ち行列の前記サイズおよび／または前記レイテンシを決定するステップを含む、請求項２から２６のうちの一項に記載の方法。
【請求項２８】
処理される前記オブジェクトは画像であり、前記基本情報は前記画像のピクセルである、前記請求項のうちの一項に記載の方法。
【請求項２９】
前記処理プラットフォームは画像取込みおよび／またはレンダリングデバイスの一部であり、前記パラメータ（１つまたは複数）の値（１つまたは複数）は、前記画像取込みおよび／または画像レンダリングデバイスの、光学機構および／またはセンサおよび／またはイメージャおよび／または電子機構および／またはソフトウェアの特性にリンクされる、前記請求項のうちの一項に記載の方法。
【請求項３０】
処理される前記オブジェクトはディジタルオーディオ信号であり、前記基本情報は前記信号のオーディオサンプルである、請求項１から２７のうちの一項に記載の方法。
【請求項３１】
処理される前記オブジェクトは数値メッシュであり、前記基本情報はメッシングの各点を特徴付ける空間および／または時間情報である、請求項１から２７のうちの一項に記載の方法。
【請求項３２】
どんなループもない汎用操作のシーケンスを記述する第１のデータ（１４）を含む汎用フォーマット化データ（１２）を処理するためのシステムであって、Ｑ個のプロセッサと少なくとも１つのメモリとを備える所定のプラットフォーム（２０）に特有フォーマット化データ（１８）を直接的または間接的に提供し、前記プラットフォームは、同じタイプの基本情報で構成されるオブジェクト（２２）を前記特有フォーマット化データ（１８）に従って処理するようになっており、各基本情報は少なくとも１つの数値で表され、
−前記汎用操作のシーケンスを前記プラットフォームに従って１つの特有操作シーケンスに変換する手段と、
−前記プラットフォームのアーキテクチャおよび前記オブジェクトのトポロジに従って、かつ第１のデータから独立して、処理操作に必要なループのセットを決定する手段と、
−このように決定された前記ループを含む前記特有操作のシーケンスを含む特有フォーマット化データを計算し、コードサイズおよび／またはメモリサイズおよび／または計算時間の点で前記プラットフォームに最適化された方式で、汎用フォーマット化データに準拠する前記オブジェクトの処理を直接的または間接的に可能にする手段とを備えるシステム。
【請求項３３】
−前記プラットフォームのアーキテクチャおよび前記オブジェクトのトポロジに従って、かつ第１のデータから独立して、前記プラットフォーム中で基本情報をスクロールするためのモードを決定する手段を備え、前記スクローリングモードを決定する前記手段は、
−基本情報をサブオブジェクトにグループ化することであって、各サブオブジェクトは前記プラットフォームに従って決定されるＱの倍数である数量Ｎの基本情報を含み、前記プラットフォーム中での前記処理は前記サブオブジェクトの１つに対してサブ処理操作を周期的に開始することにあることと、
−前記プラットフォームに従って決定される、サブオブジェクトの形およびオーバーレイと、
−前記プラットフォームに従って決定される、サブオブジェクトの処理順序とを選択および／または計算する手段を備え、システムはさらに、
−前記処理操作に必要なループのセットを決定し、かつ／または前記スクローリングモードを反映する前記特有操作のシーケンスを計算する手段を備える、請求項３２に記載のシステム。
【請求項３４】
前記特有操作のシーケンスからどの特有操作（１つまたは複数）が各プロセッサによって実施されるかを決定する手段を備え、各特有操作は各サブオブジェクトに少なくともＮ回適用され、各特有操作は、そのＮ回の適用中に、それぞれ少なくとも１回、サブオブジェクトの基本情報を直接的および／または間接的に適用して、ちょうどＮ個の結果を生成し、方法はさらに、このように決定された情報を前記特有フォーマット化データに加えるステップを含む、請求項３３に記載のシステム。
【請求項３５】
周期の相対時間ごとに、前記特有操作のシーケンスからどの特有操作（１つまたは複数）が各プロセッサによって実施されるかを決定する手段を備え、各特有操作は各サブオブジェクトに少なくともＮ回適用され、各特有操作は、そのＮ回の適用中に、それぞれ少なくとも１回、サブオブジェクトの基本情報を直接的および／または間接的に適用して、ちょうどＮ個の結果を生成し、方法はさらに、このように決定された情報を前記特有フォーマット化データに加えるステップを含む、請求項３３または３４に記載のシステム。
【請求項３６】
各サブオブジェクトに適用される特有操作の数量がプロセッサの数量Ｑの倍数でない場合、および／または、処理される前記オブジェクトの基本情報の数量がＮの倍数でない場合に、効果なしの特有操作を加え、かつ／またはヌル基本情報を加え、それにより特有操作の数量がＱの倍数になり、基本情報の数量がＮの倍数になるようにする手段を備える、請求項３３から３５のうちの一項に記載のシステム。
【請求項３７】
−論理ブロックと呼ばれる少なくとも１つの基本情報セットに前記汎用操作のシーケンスが適用されるような手段と、
−相互との関係における論理ブロックの相対位置および／または相対スケール（とりわけ空間的または時間的）を参照する、少なくとも２つの論理ブロックを使用する汎用操作に関する第２のデータを含む汎用フォーマット化データを受け取る手段と、
−各特有操作が適用されなければならない前記基本情報および／または特有操作からの結果が、第２のデータに依存するような手段と、
−相互との関係における論理ブロックの少なくとも１つの相対位置がヌルでない場合は、少なくとも１つの特有操作が、別のサブオブジェクトの少なくとも１つの基本情報を直接的または間接的に使用するような手段とを備える、請求項３２から３６のうちの一項に記載のシステム。
【請求項３８】
別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の一部を第２のデータに従って決定する手段を備える、請求項３７に記載のシステム。
【請求項３９】
別のサブ処理操作のために後続の特有操作に必要とされる特有操作からのグループ化された結果を、第２のデータおよび／または前記スクローリングモードに従って記憶するメモリを備える、請求項３３から３６のうちの一項および請求項３７と３８のうちの一項に記載のシステム。
【請求項４０】
少なくとも１つの循環的連鎖に従って連鎖された計算ユニットと、各特有操作につき、前記特有操作からの結果を循環的連鎖に従って送出すべきかどうかを第２のデータに従って判定する手段と、妥当な場合に、前記特有操作からの結果を送出するのに使用される前記循環的連鎖を第２のデータおよび前記スクローリングモードに従って決定する手段とを備える、請求項３３から３６のうちの一項および請求項３７から３９のうちの一項に記載のシステム。
【請求項４１】
特有操作のグループ化に関する情報を特有フォーマット化データが含むような手段を備え、前記グループ化は、別のサブ処理操作のために各特有操作の結果を記憶することなく実行されることになっている１つまたは複数の特有操作のパケットの形成にある、請求項３３から４０のうちの一項に記載のシステム。
【請求項４２】
別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の少なくとも一部を前記プラットフォームのメモリに記憶することを可能にする特有操作を特有フォーマット化データが含むような手段を備える、請求項３３から４１のうちの一項に記載のシステム。
【請求項４３】
別のサブオブジェクトのサブ処理中に使用される特有操作からのグループ化された結果を、前記サブオブジェクトとの関係における前記別のサブオブジェクトの相対位置に従って記憶するメモリを備える、請求項３３から４２のうちの一項に記載のシステム。
【請求項４４】
サブオブジェクトのサブ処理中に実施され別のサブオブジェクトのサブ処理操作中に使用される特有操作からのグループ化された結果を記憶する少なくとも１つの待ち行列を備える、請求項３３から４３のうちの一項に記載のシステム。
【請求項４５】
特有操作からの結果が前記プラットフォーム中で複数回にわたって計算されるような特有操作を特有フォーマット化データが含むような手段を備え、それにより、とりわけ前記サブオブジェクトが前記オブジェクトの次元の少なくとも１つでオーバーレイされている場合に、特有操作の実行時にどんな情報も損失しない、請求項３３から４４のうちの一項に記載のシステム。
【請求項４６】
特有操作からの結果および／または記憶された基本情報の少なくとも一部に前記プラットフォームがアクセスできるようにするアドレス指定情報を、特有フォーマット化データが含むような手段を備え、前記アドレス指定情報は「ベースアドレス＋オフセット」または「ベースアドレス＋ｍｏｄオフセット（前記プラットフォーム中に位置するバッファメモリのサイズ）」フォーマットであり、前記オフセットは、１つの同じ特有操作からの結果に対して一定である、請求項３３から４５のうちの一項に記載のシステム。
【請求項４７】
前記ベースアドレスをサブ処理操作ごとに変更する手段を備える、請求項４６に記載のシステム。
【請求項４８】
特有操作からの結果を記憶するために、空のメモリスロット、あるいはもはや使用されない特有操作結果または基本情報を含むメモリスロットのアドレスが前記プラットフォームに提供されるようにして、特有操作の順序に従って前記オフセットを計算する手段を備える、請求項４６または４７に記載のシステム。
【請求項４９】
少なくとも１つのループと、前記ループ（１つまたは複数）の反復の数量と、複数のループがあるときにはループの埋込みとを、前記スクローリングモードに従って計算する手段を備える、請求項３３から４８のうちの一項に記載のシステム。
【請求項５０】
少なくとも１つのパラメータも処理する手段を備え、それにより、前記特有操作によって使用される前記パラメータ（１つまたは複数）の値（１つまたは複数）は、前記特有操作において直接的または間接的に適用される前記基本情報の、前記サブオブジェクトにおける位置に依存する、請求項３３から４９のうちの一項に記載のシステム。
【請求項５１】
少なくとも１つのパラメータも処理する手段を備え、それにより、特有フォーマット化データは、前記パラメータ（１つまたは複数）の値（１つまたは複数）、および／あるいは、前記パラメータ（１つまたは複数）の値（１つまたは複数）に関する計算コードを含む、請求項３２から５０のうちの一項に記載のシステム。
【請求項５２】
少なくとも１つのパラメータも処理する手段を備え、パラメータ（１つまたは複数）の値（１つまたは複数）を前記処理プラットフォームに従って選択する手段を備え、それにより前記処理操作は前記プラットフォームの特性を反映する、請求項３２から５１のうちの一項に記載のシステム。
【請求項５３】
少なくとも１つのパラメータも処理する手段を備え、それにより、前記パラメータ（１つまたは複数）の値（１つまたは複数）は、処理される前記オブジェクトに依存する、請求項３２から５２のうちの一項に記載のシステム。
【請求項５４】
加算、減算、乗算、相関表の適用、最小値、最大値、選択を含むグループに含まれる特有操作を実施する手段を備える、請求項３２から５３のうちの一項に記載のシステム。
【請求項５５】
循環的連鎖ＣＣ１によって連鎖された計算ユニットを備え、前記循環的連鎖ＣＣ１は少なくとも１つの待ち行列も含み、計算ユニットＵＣ１上で実施された特有操作ＩＳ５の結果を、前記連鎖に従って前記計算ユニットＵＣ１に続く計算ユニットＵＣ２または待ち行列に送出する手段を備える、請求項３２から５４のうちの一項に記載のシステム。
【請求項５６】
転置、複製、およびサブサンプリングを含むグループに含まれる少なくとも１つの特有幾何学操作を実施する手段を備える、請求項３２から５５のうちの一項に記載のシステム。
【請求項５７】
少なくとも１つの循環的連鎖に従って連鎖された計算ユニットを備え、前記循環的連鎖は少なくとも１つの待ち行列も含む、請求項３２から５６のうちの一項に記載のシステム。
【請求項５８】
少なくとも１つの循環的連鎖に従った連鎖された計算ユニットを備え、前記循環的連鎖は少なくとも１つの待ち行列も含み、前記汎用操作のシーケンスおよび前記スクローリングモードに従って前記待ち行列のサイズおよび／またはレイテンシを決定する手段を備える、請求項３３から５５のうちの一項に記載のシステム。
【請求項５９】
処理される前記オブジェクトが画像であり、前記基本情報が前記画像のピクセルであるような手段を備える、請求項３２から５８のうちの一項に記載のシステム。
【請求項６０】
前記処理プラットフォームが画像取込みおよび／またはレンダリングデバイスの一部であり、前記パラメータ（１つまたは複数）の値（１つまたは複数）が、前記画像取込みおよび／またはレンダリングデバイスの、光学機構および／またはセンサおよび／またはイメージャおよび／または電子機構および／またはソフトウェアの特性にリンクされるような手段を備える、請求項３２から５９のうちの一項に記載のシステム。
【請求項６１】
処理される前記オブジェクトがディジタルオーディオ信号であり、前記基本情報が前記信号のオーディオサンプルであるような手段を備える、請求項３２から５８のうちの一項に記載のシステム。
【請求項６２】
処理される前記オブジェクトが数値メッシュであり、空間および時間情報である基本情報がメッシングの各点を特徴付けるような手段を備える、請求項３２から５８のうちの一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特有フォーマット化データを処理プラットフォームに提供することに鑑みて汎用フォーマット化データを処理するための方法およびシステムに関する。コンパイラを使用して、特有フォーマット化データを使用するプラットフォームに適応されたバイナリコードを生成することで、特有フォーマット化データを直接的または間接的に提供することができる。
【背景技術】
【０００２】
現在、オブジェクト処理アルゴリズムは一般に、ＣやアセンブリやＶＨＤＬ言語など既知の言語で書かれ、次いでバイナリにコンパイルまたは変換された後で、処理操作を実施することになっているプラットフォームによって使用される。
【０００３】
使用されるコンパイラは、言語のタイプに特有のコンパイラである。
【０００４】
最も標準的なコンパイラの１つであるコンパイラＣの例では、Ｃのコードが、例えばＰＣタイプまたはＭＡＣタイプのパーソナルコンピュータによって理解されるように変換される。このコンパイルは、アルゴリズムがコンパイルされる対象であるプラットフォームに依存する。この２つのプラットフォームのプロセッサが同様の特性を有するとすれば、両方のプラットフォームと互換性を持つように処理アルゴリズムを書くことができる。
【０００５】
さらに、Ｃでコーディングされるアルゴリズム中では、とりわけ、様々な位置のデータへのアクセスを可能にし、スケール変更、メモリ間のデータ交換、およびエッジの管理を可能にするために、プログラマは最初から、オブジェクトのサブオブジェクトへの分解、ループ、基本情報およびサブオブジェクトの処理順序、メモリ中のデータの構成など、プラットフォームに依存する種々のコードセクションを定義しなければならない。
【０００６】
プラットフォームに依存するこれらのコードセクションがプラットフォームおよびアルゴリズムに従ってプログラマによってアプリオリに決定されるとすれば、これらのコードセクションは、アルゴリズム＋プラットフォームの各組合せごとに「手動で」最適化しなければならない。さらに、これらのコードセクションは明示的に定義されて、アルゴリズム自体を記述するコードと混合されるので、プラットフォームに依存するこれらのコードセクションをコンパイラが無視して手動で別のプラットフォームに適応させることは非常に難しい。
【０００７】
例えば、小さいローカルメモリを伴う信号処理プロセッサで、データをメインメモリとこのローカルメモリとの間でコピーしなければならない場合、このコピーは手動で追加しなければならず、ループおよびメモリ中のデータの構造を深刻に損なう。別の例として、ベクトル信号プロセッサ、とりわけＳＩＭＤ（単一命令複数データ）タイプのベクトル信号プロセッサは、プラットフォームに従って種々のサイズのベクトルにグループ化されたデータを処理しなければならず、また、言語Ｃなどの言語が使用されるときはベクトルをプラットフォームから独立して表現することはできないので、プラットフォームに依存する方式でアセンブラをコーディングしなければならない。
【０００８】
さらに、アルゴリズムが、とりわけ様々な位置のデータへのアクセスに関して修正されるとき、この修正は少なくとも部分的に、プラットフォームに依存する種々のコード部分を損なう。
【０００９】
したがって、アルゴリズム＋プラットフォームの各組合せを最適化するのにかなりの時間を費やすことなく、コードのサイズ、メモリのサイズ、および必要とされる命令の数量を最適化するのは非常に難しい。実際、各プラットフォームは、装置（例えばプロセッサの数量およびタイプや、メモリのサイズおよびタイプ）と、使用言語（スカラプロセッサの場合はＣ、ベクトル信号プロセッサの場合はアセンブリ言語）との両方の点で、それ自体の特性を有する。
【００１０】
この問題を解決するために従来、重畳、乗算、さらには相関表の適用など、物理ブロックに対して様々な処理操作を実施することのできる低レベルライブラリの使用が知られている。これによれば、各プラットフォームにつきこれらのライブラリを１回だけ最適化すればよい。しかし、この方法には、以下のように多くの不都合がある。
【００１１】
−ライブラリのサイズ、したがってコードのサイズがかなり大きい。
【００１２】
−ライブラリ呼出し時間が与えられた場合に、比較的大きいサイズの物理ブロックを使用する必要があり、この結果、かなりのメモリ使用となる。
【００１３】
−基本情報に対する内部ループがライブラリ内に位置する場合、操作のシーケンスを最適化することができず、この結果、性能が制限される。
【００１４】
−物理ブロックはメモリに記憶され、この結果、メモリ使用が集中的になり、メモリから中間データを読み書きするのに多くの時間が費やされる。
【００１５】
−これらのライブラリは、しばしばプロセッサ製造業者によって、限られた数のプラットフォームに対してしか最適化されず、したがってすべてのプラットフォームタイプに利用可能ではない。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
したがって、本発明の主題は、速い実行速度、少ないメモリ使用、小さいコードサイズで、複数のプラットフォームに対する自動最適化が可能なデータ処理方法を提案することであり、すべてのオブジェクト処理アルゴリズムは、このタイプのアルゴリズムに適応された言語でコーディングされた多量の異なる基本情報で構成される。本発明はとりわけ、任意のアルゴリズムの最適化された実装を様々なプラットフォームに対して自動的に素早く得ることによって、またできるだけ後でアルゴリズムを修正できるようにすることによって、データ（特に画像）処理用の装置およびソフトウェアの市場リリースを加速することを可能にする。例えば画像取込みデバイスの場合、センサの特性、とりわけ小型化に伴って増大する雑音関連の特性は非常に速く進歩するが、このように遅れて修正することにより、新しいセンサに素早く適応することができる。
【課題を解決するための手段】
【００１７】
本発明は、Ｑ個のプロセッサと少なくとも１つのメモリとを備える所定のプラットフォームに特有フォーマット化データを直接的または間接的に提供することに鑑みて、汎用フォーマット化データを処理する方法に関し、汎用フォーマット化データ中では、第１のデータが、どんなループもない汎用操作のシーケンスを記述し、このプラットフォームは、同じタイプの基本情報で構成されたオブジェクトを特有フォーマット化データに従って処理するようになっており、各基本情報は少なくとも１つの数値で表される。
【００１８】
本方法は、
−汎用操作のシーケンスをプラットフォームに従って特有操作に変換するステップと、
−オブジェクトのトポロジに従って、かつ第１のデータから独立して、処理に必要とされるループのセットを決定するステップと、
−特有操作のシーケンスとこのように決定されたループとを含む特有フォーマット化データを計算し、汎用フォーマット化データに準拠するオブジェクトの処理を直接的または間接的に可能にするステップとを含み、シーケンスは、コードのサイズおよび／またはメモリのサイズおよび／または計算時間の点で、プラットフォームに最適化される。
【００１９】
特有フォーマット化データは、このように決定された特有操作のシーケンスを含む。
【００２０】
従来、コンパイラを使用して、ループと表とを含む操作シーケンスを変換することが知られており、
−変換は、１つの同じループ反復内での、およびあるループ反復から他のループ反復への内の、操作間のリンクを記述したグラフを使用し、特に、表の要素の１つへのアクセスの索引に対する依存を使用する。
【００２１】
−変換は、既存のループを修正する最適化を含む。
【００２２】
−変換は、プラットフォームの特性に適応するために、表の構成を修正するステップ、および／または表を使用する操作を修正するステップを含む。
【００２３】
使用される汎用操作のシーケンス（第１および第２データのタイプ）の特性は、以下のことを可能にする。
【００２４】
−操作、および操作のグラフによるループの依存を除去する。
【００２５】
−使用される汎用操作のシーケンスは、表も、表要素へのアクセスの索引も利用せず、特に、本発明による方法またはシステムは、表の構成を修正するステップ、および／または表を使用する操作を修正するステップを含まない。
【００２６】
したがって本発明は、各操作シーケンスに対するループの特有の最適化、またはグラフの使用を必要とせずに、Ｑ個のプロセッサを１００％使用する最適なコードを直接生成することを可能にする。この特性は、特に得難いものである。本発明は、以下によって１００％に達することを可能にする。
【００２７】
−第１のデータから独立したループの構成。
【００２８】
−表の形ではないが、例えば後述するような待ち行列の形の、メモリ中のデータの構成。
【００２９】
−後述するような計算ユニットと待ち行列とを含む連鎖の使用。
【００３０】
−例えば、文書”Ｃｏｍｐｉｌｅｒ  ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ  ｆｏｒ  ｈｉｇｈ  ｐｅｒｆｏｒｍａｎｃｅ  ｃｏｍｐｕｔｉｎｇ”  ”ＡＣＭ  Ｃｏｍｐｕｔｉｎｇ  Ｓｕｒｖｅｙｓ，Ｎｅｗ  Ｙｏｒｋ，ＮＹ  ＵＳ，ｖｏｌ２６，ｎｏ．４，Ｄｅｃｅｍｂｅｒ１９９４”には、式Ｕ＝Ｆ／ＳＴによって与えられるプロセッサ利用率が、明確に１００％未満であり（ｐ．３５１）、１００％の率が理想的であることが明記されている。本発明による方法およびシステムは、同じタイプの情報からなるオブジェクトを処理するためのどんなタイプのアルゴリズムであっても、１００％に達することを可能にする。
【００３１】
本発明はまた、サブオブジェクトのサイズにかかわらず１度に１つのサブオブジェクトずつデータを処理するように適応されたスクローリングモードに従って基本情報を処理できるようにすることによって、メモリ使用の大幅な削減を可能にし、それにより、画像の場合に、ブロックに対する処理操作の開始前に多量のラインを記憶するのを回避する。
【００３２】
次に、汎用操作のシーケンスを特有操作のシーケンスに変換する例について述べる。この例では、
−オブジェクトは２つの単色水平垂直次元の画像であり、基本情報は１つの単一数値で表される。
【００３３】
−汎用操作のシーケンスは次のとおりである。
【００３４】
○３＊１垂直Ｆ１フィルタを適用し、続いて１＊３水平Ｆ２フィルタを適用する。
【００３５】
−特有操作シーケンスは、以下の特有操作シーケンスに変換される。
【００３６】
○入力待ち行列から得られたサブオブジェクトをＲ１に記憶する。
【００３７】
○Ｆ１．Ｃ１＊Ｒ１を計算し、結果をＲ２に記憶する。
【００３８】
○ＵＰ（Ｒ１）を実施し、結果をＲ１に記憶する。
【００３９】
○Ｆ１．Ｃ２＊Ｒ１を計算し、結果をＲ２に記憶する。
【００４０】
○ＵＰ（Ｒ１）を実施し、結果をＲ１に記憶する。
【００４１】
○Ｆ１．Ｃ３＊Ｒ１を計算し、結果をＲ２に記憶する。
【００４２】
○Ｆ２．Ｃ１＊Ｒ２を計算し、結果をＲ３に記憶する。
【００４３】
○ＬＥＦＴ（Ｒ２）を計算し、結果をＲ２に記憶する。
【００４４】
○Ｆ２．Ｃ２＊Ｒ２を計算し、結果をＲ３に記憶する。
【００４５】
○ＬＥＦＴ（Ｒ２）を計算し、結果をＲ２に記憶する。
【００４６】
○Ｆ２．Ｃ３＊Ｒ２を計算し、結果をＲ３に記憶する。
【００４７】
−Ｒ１、Ｒ２、およびＲ３は、サブオブジェクトに関するＮ個の基本情報、または、１つの同じサブオブジェクトの処理中に１つの同じ特有操作から得られたＮを記憶するのにそれぞれ使用されるレジスタである。
【００４８】
−Ｆ１．Ｃ１、Ｆ１．Ｃ２、およびＦ１．Ｃ３は、フィルタＦ１の係数に対応するパラメータである。
【００４９】
−Ｆ２．Ｃ１、Ｆ２．Ｃ２、およびＦ２．Ｃ３は、フィルタＦ２の係数に対応するパラメータである。
【００５０】
−ＬＥＦＴ（Ｒ１）は、以下にさらに述べるように、ＱｕｅｕｅＨ待ち行列を含む水平次元に従った連鎖を使用することによって実施することができる。例えば、
○サブオブジェクトが、水平に配置された４ピクセルで構成され、レジスタが左から右にＲ１．１、Ｒ１．２、Ｒ１．３、およびＲ１．４の４データを含む場合、ＬＥＦＴ（Ｒ１）は、Ｒ１．４をＱｕｅｕｅＨに書き込み、Ｒ１．３をＲ１．４に書き込み、Ｒ１．２をＲ１．３に書き込み、Ｒ１．１をＲ１．３に書き込むことを意味し、ラインの第１のサブオブジェクトの場合はＲ１．１は変化せず、そうでない場合は、Ｒ１．１は、ＱｕｅｕｅＨ中で読み取られたデータを受け取る。
【００５１】
−ＵＰ（Ｒ２）は、以下にさらに述べるように、ＱｕｅｕｅＶ待ち行列を含む垂直次元に従った連鎖を使用することによって実施することができる。
【００５２】
○サブオブジェクトが、水平に配置された４ピクセルで構成され、レジスタが左から右にＲ１．１、Ｒ１．２、Ｒ１．３、およびＲ１．４の４データを含む場合、ＵＰ（Ｒ１）は、Ｒ１．４をＱｕｅｕｅＶに書き込み、Ｒ１．３をＲ１．４に書き込み、Ｒ１．２をＲ１．３に書き込み、Ｒ１．１をＲ１．３に書き込むことを意味する。画像の第１ラインのオブジェクトの場合はＲ１．１は変化せず、そうでない場合は、Ｒ１．１は、ＱｕｅｕｅＶ中で読み取られたデータを受け取る。
【００５３】
この例では、汎用操作のシーケンスを特有操作のシーケンスに変換することは、以下に定義するスクローリングモードから独立している。次いで、スクローリングモード（２４）を、プラットフォーム（２２）のアーキテクチャに従って、またオブジェクトのトポロジに従って、かつ第１のデータから独立して、このプラットフォーム中の基本情報に対して決定することができ、このスクローリングモードの決定は、
−基本情報をサブオブジェクトにグループ化することであって、各サブオブジェクトはプラットフォームに従って決定される数量Ｎの基本情報を含み、プラットフォーム中での処理はサブ処理操作を周期的に開始することにあり、サブ処理操作は特有操作のシーケンスをサブオブジェクトの１つに適用することにあることと、
−プラットフォームに従って決定される、サブオブジェクトの形およびオーバーレイと、
−プラットフォームに従って決定される、サブオブジェクトの処理順序との選択および／または計算を含む。
【００５４】
好ましくは、ループのセットを決定することは、各ループの範囲と、ループのセットの埋込みと、オブジェクトに従って決定される反復量とを決定することを意味する。例えば、水平と垂直の２つの次元を有する画像であり、Ｑ＝４であり、４つのプロセッサが１つの同じラインからの４つの連続したピクセルを処理する場合、以下のループを決定することができる。
【００５５】
−ラインごとに上から下へ。
【００５６】
−４ピクセルのグループごとに左から右へ。
【００５７】
−４つのプロセッサ上で同時に同じ特有操作を実施することによって、４ピクセルのグループに対して特有操作のシーケンスを実施する。
【００５８】
この例では、反復量は画像のサイズに依存する。しかし、処理操作に必要とされるループのセットは、プラットフォームのアーキテクチャおよびオブジェクトのトポロジに従って、かつ第１のデータから独立して決定されている。例えば、ループは、以下の汎用操作シーケンスのいずれか１つに使用することができる。
【００５９】
−３＊１垂直Ｆ１フィルタを適用し、続いて１＊３水平Ｆ２フィルタを適用する。
【００６０】
−定数３を基本情報に加える。
【００６１】
−または他の任意の汎用操作シーケンス。
【００６２】
本発明によれば、ループは、次に挙げるものに限定しないがとりわけ、ある回数にわたって実行されるループ、条件が検証されたならば実行されるループ、条件が検証されるまで実行されるループ、一般に、ループに関する１つまたは複数の出力条件にリンクされた反復実行、とすることができる。
【００６３】
次に、本発明による待ち行列の概念を定義する。
【００６４】
待ち行列は、基本情報、または特有操作からの結果を、送出および／または記憶するのに使用される。
【００６５】
待ち行列は、メモリを備えるかまたは使用することができる。
【００６６】
待ち行列は、ＦＩＦＯ（先入れ先出し）タイプの１つまたは複数のプロセスを使用して実現することができる。
【００６７】
待ち行列は、少なくとも１つの入力および少なくとも１つの出力を備える。
【００６８】
−待ち行列は、任意の手段を介して入力計算ユニットおよび出力計算ユニットに動作可能に接続させることができる。
【００６９】
−待ち行列はまた、任意の手段を介してＰＲ入力計算ユニットおよびＰＲ出力計算ユニットに動作可能に接続させることができ、この場合、待ち行列は、それぞれが入力計算ユニットを出力計算ユニットにリンクするＰＲ待ち行列のように挙動する。
【００７０】
好ましくは、待ち行列は、いくつかのデータフラックスを独立して管理するのに使用することができ、各フラックスは所定の特有操作に関連する。
【００７１】
一実施形態では、待ち行列中で読取りと書込みを同時に行うことが可能である。
【００７２】
好ましくは、待ち行列は、少なくとも１つのメモリユニットを使用して、各フラックスにつき同一数量ＮＦのデータを記憶する。
【００７３】
好ましくは、ＮＦは、サブオブジェクトの相対的な配置およびスクローリングモードに従って決定され、それにより、データを生成するサブオブジェクトの処理と、同じデータを使用するサブオブジェクトの処理との間で、ＮＦ−１個のサブオブジェクトが処理される。
【００７４】
好ましくは、計算ユニットと待ち行列とを含む連鎖は、ブート操作の管理を可能にする機構を含む。待ち行列は、定期的に、例えば待ち行列が水平連鎖の一部でありオブジェクトが画像である場合は各ラインの最初に、初期化される。待ち行列がＮＦ個のデータを含まないならば、連鎖中で待ち行列に続くプロセッサは、出力において送出するデータを入力として取る。次に、連鎖中で待ち行列に続くプロセッサは、待ち行列中で最も古いデータを入力において取り、これを待ち行列から除去する。
【００７５】
好ましくは、待ち行列は、待ち行列に入力されたときと同じ順序でデータを出力することを可能にする。
【００７６】
好ましくは、循環的連鎖は一方向である。好ましくは、循環的連鎖は、計算ユニットごとに、入力に１つの単一リンクがあり、出力に１つの単一リンクがあるような連鎖である。
【００７７】
このように、少なくとも１つの待ち行列の使用により、少なくとも１つの他のサブオブジェクトの計算で必要とされる特有操作からの結果を送出することができる。
【００７８】
この記述では、汎用フォーマット化データは、データ処理プラットフォームによってオブジェクトに対して実施されることになる処理操作を、プラットフォーム自体から独立して記述するのに使用されるディジタルデータである。本発明では、処理オブジェクトは、同じタイプの基本情報のセットに対応する。これらのオブジェクトは、例えば画像、ディジタルオーディオ、ビデオ、さらにはシミュレーションデータですらある。
【００７９】
一実施形態では、汎用フォーマット化データは第２のデータを含み、第２のデータは、とりわけ空間的および／または時間的な、オブジェクトの次元の少なくとも１つに従った、相互との関係におけるブロックおよび／またはパラメータの相対位置を参照し、かつ／あるいは、とりわけ空間的および／または時間的な、オブジェクトの次元の少なくとも１つに従った、相互との関係における論理ブロックおよび／またはパラメータの相対スケールを参照する。
【００８０】
一実施形態では、オブジェクトおよびサブオブジェクト、ならびに論理ブロックは、いくつかの次元を有する。
【００８１】
サブオブジェクトおよび論理ブロックの次元は、オブジェクトの次元のすべてまたは一部に対応する。次元は種々のタイプとすることができ、とりわけ以下のタイプである。
【００８２】
−空間的。例えば、距離、角度、または、メッシュ中でのスクローリング。
【００８３】
−時間的。
【００８４】
−周波数。例えば、色、周波数、周波数帯。
【００８５】
−位相。
【００８６】
−ベクトル空間基底に従った分解。例えば、ウェーブレットへの分解、または高バイトおよび低バイトへの分解。
【００８７】
−一般に、任意のトポロジの任意の空間の次元。
【００８８】
以下の非網羅的なリストに、オブジェクトの例をその次元と共に提供する。
【００８９】
−２つの次元を有する静止画。各次元は、距離、とりわけピクセルで測定される距離に対応する。
【００９０】
−２つの次元を有する未処理静止画。各次元は距離に対応し、各ピクセルには色、例えば赤、緑、または青が備わる。
【００９１】
−２つの次元を有する静止カラー画像。各次元は距離に対応し、一方の次元はカラーチャネルを表す周波数、例えば赤／緑／青を表す周波数に対応する。
【００９２】
−３つの次元を有する動画。次元のうちの２つは、距離、とりわけピクセルで測定される距離に対応し、１つは時間に対応する。
【００９３】
−３つの次元を有するレリーフ画像。次元は距離に対応する。
【００９４】
−３つの次元を有するレリーフ画像。次元のうちの２つは距離に対応し、第３の次元は視野角に対応する。
【００９５】
−距離次元およびおそらくチャネル次元を有する医療画像。
【００９６】
−視野角次元を有するホログラム。
【００９７】
−より一般的に、距離および／または角度および／または時間および／または周波数の次元を有する画像。
【００９８】
−時間に対応する次元を有する音声。
【００９９】
−時間およびチャネルに対応する２つの次元を有する音声。
【０１００】
−時間、およびおそらく周波数、およびおそらく空間における位置、または角度に対応する１つまたは複数の次元を有する被変調信号。
【０１０１】
−１つまたは複数の次元に従って配置された基本情報の形の、信号変調および復調、測定、データの分析、データベース索引付けまたは検索、コンピュータによる閲覧、グラフィック処理、シミュレーション。
【０１０２】
−より一般的に、１つまたは複数の次元を有するオブジェクト。
【０１０３】
本発明では、オブジェクトの基本情報は、絶対的な位置および／またはスケールを有することができ、これらはとりわけ、空間および／または時間および／または周波数によるものとすることができるが、同様に、オブジェクトの次元の少なくとも１つ、ならびに他の任意の空間、とりわけウェーブレットで構成された空間に従ったものとすることもできる。
【０１０４】
−「オーディオ」オブジェクトに関する基本情報は、強度に対応することができる。この場合、基本情報は、時間における所与の瞬間に対応する絶対位置を有し、複数チャネル音声の場合は、所与のチャネルに対応する絶対位置を有する。
【０１０５】
−「画像」オブジェクトに関する基本情報は、ピクセルに対応することができる。この場合、基本情報は、画像中の位置に対応する絶対位置を有し、ビデオ画像の場合は、時間における所与の瞬間に対応する絶対位置を有する。
【０１０６】
−「データシミュレーション」オブジェクトに関する基本情報は、ステータスに対応することができる。この場合、基本情報は、メッシングノードと、時間における所与の瞬間とに対応する絶対位置を有する。
【０１０７】
−「被変調信号」オブジェクトに関する基本情報は、強度および／または位相に対応することができる。この場合、基本情報は、時間における所与の時点に対応する絶対位置を有し、おそらく、複数のアンテナまたは送信機が使用される場合は、所与の周波数および／または所与の位置に対応する絶対位置を有する。
【０１０８】
基本情報は、処理される情報の要素であり、１つまたは複数の数値で表される。この情報は、８ビット符号化、１０ビット符号化、さらには１６ビット符号付き符号化など、様々なタイプの符号化に従って符号化することができる。例えばオブジェクトが画像である場合、基本情報はこの画像のピクセルとなる。
【０１０９】
オブジェクトは、デモザイキング操作前の未処理画像（「生」タイプのもの）とすることができる。この場合、
−一代替形態では、基本情報は、ピクセルの絶対位置に従って例えば赤、緑、または青に対応する数値で表されるピクセルである。
【０１１０】
−別の代替形態では、基本情報は、１ピクセル当たり１数値で表されるピクセルのグループ（例えば２＊２の緑、赤、および青のピクセルのグループ。緑は「バイエル（Ｂａｙｅｒ）」に対応する）である。
【０１１１】
オブジェクトは可視画像とすることもでき、この場合、基本情報は、例えば３つの数値で表されるピクセルであり、各数値は色、例えば赤、緑、および青を表す。
【０１１２】
オブジェクトは画像のシーケンス、とりわけ未処理または可視画像のシーケンスとすることもでき、この場合、基本情報は、画像シーケンスからの画像のピクセルである。したがって、オブジェクトは例えばビデオに対応する。
【０１１３】
オブジェクトが画像である場合、画像は、画像取込みデバイスから受け取ることができ、かつ／または画像レンダリングデバイスに向けることができる。
【０１１４】
−画像取込みデバイスは、例えば使い捨てカメラ、ディジタルカメラ、レフレックスカメラ（ディジタルまたは非ディジタル）、スキャナ、ファクス、内視鏡、ビデオカメラ、カムコーダ、監視カメラ、玩具、電話機またはパーソナルアシスタントまたはコンピュータに統合されたかリンクされたビデオカメラまたはカメラ、サーマルカメラ、超音波マシン、ＭＲＩ（磁気共鳴）撮像ユニット、Ｘ線撮影ユニットである。
【０１１５】
−画像レンダリングデバイスは、例えばスクリーン、プロジェクタ、テレビジョン、仮想現実ゴーグル、またはプリンタである。
【０１１６】
−画像取込みおよび画像レンダリングデバイスは、例えばスキャナ／ファクス／プリンタ、小型写真印刷ラボ、ビデオ会議デバイスである。
【０１１７】
処理プラットフォームは、適用例に応じて種々の形をとることができる。例えば、オブジェクトが画像である場合に、とりわけ処理プラットフォームが以下のデバイスの１つに統合された場合について列挙する。
【０１１８】
−処理済み画像を生成する画像取込みデバイス。例えば、処理プラットフォームを統合したディジタルカメラ。
【０１１９】
−処理済み画像を表示または印刷する画像レンダリングデバイス。例えば、処理プラットフォームを備えるビデオプロジェクタまたはプリンタ。
【０１２０】
−これらの要素上の欠陥を訂正する混合デバイス。例えば、処理プラットフォームを備えるスキャナ／プリンタ／ファクス。
【０１２１】
−処理済み画像を生成するプロ用画像取込みデバイス。例えば、処理プラットフォームを備える内視鏡。
【０１２２】
処理プラットフォームは、完全にまたは部分的にサーバ上に移すことができる。
【０１２３】
プラットフォーム中でオブジェクトに施されることになる処理は、例えば画像処理、データ圧縮および圧縮解除、オーディオ処理、信号変調および復調、測定、データ分析、データベース索引付けまたは検索、コンピュータによる閲覧、グラフィック処理、シミュレーションなど様々な分野、あるいは多量のデータを使用する任意の分野に介入することのできる、１つまたは複数の汎用操作シーケンスによって記述されるアルゴリズムに対応する。汎用操作は、サイズ、形、時間の概念を伴わない論理ブロックすなわち抽象エンティティに適用される操作である。
【０１２４】
汎用操作は、論理ブロックを生成することができる。好ましくは、少なくとも１つの論理ブロックは、処理されるオブジェクトに対応する。
【０１２５】
さらに、一実施形態では、本方法は、オブジェクトのトポロジに従って、かつ第１のデータから独立して、プラットフォーム中の基本情報に対するスクローリングモードを決定するステップを含み、このスクローリングモードの決定は、
−サブオブジェクトにおける基本情報のグループであって、各サブオブジェクトはプラットフォームに従って決定される数量Ｎの基本情報を含み、プラットフォーム中での処理はサブ処理操作を周期的に開始することにあり、サブ処理操作は特有操作のシーケンスをサブオブジェクトに適用することにあることと、
−プラットフォームに従って決定される、サブオブジェクトの形およびオーバーレイと、
−プラットフォームに従って決定される、サブオブジェクトの処理順序との選択および／または計算を含む。
【０１２６】
処理に必要なループのセットを決定すること、および／または特有操作シーケンスを計算することにある前述のステップは、このスクローリングモードを反映する。
【０１２７】
例えば、水平と垂直の２つの次元を有する画像であり、プラットフォームのアーキテクチャがＱ＝４である場合、１つの同じラインの４つの連続したピクセルを処理することのできる４つのプロセッサ中で、以下のスクローリングモードを決定することができる。
【０１２８】
−基本情報を、１つの同じラインからの４つの連続したピクセルのサブオブジェクトにグループ化する。サブオブジェクトはオーバーレイされない。
【０１２９】
−サブオブジェクトを、ラインごとに上から下へ、ライン内で左から右へといった順序で処理する。
【０１３０】
−対応するループを決定する。
【０１３１】
○ラインごとに上から下へ。
【０１３２】
○４ピクセルのグループごとに左から右へ。
【０１３３】
○４つのプロセッサ上で同時に同じ特有操作を実施することによって、４ピクセルのグループに対して特有操作のシーケンスを実施する。
【０１３４】
この例では、スクローリングモードは、プラットフォームのアーキテクチャおよびオブジェクトのトポロジに従って、かつ第１のデータから独立して決定されている。例えば、スクローリングモードは、以下の汎用操作シーケンスのいずれか１つと適合する。
【０１３５】
−３＊１垂直Ｆ１フィルタを適用し、続いて１＊３水平Ｆ２フィルタを適用する。
【０１３６】
−定数３を基本情報に加える。
【０１３７】
−または他の任意の汎用操作シーケンス。
【０１３８】
好ましくは、各サブオブジェクトの処理は、Ｑ個のプロセッサにわたって分散され、各プロセッサは、特有操作シーケンスからの少なくとも１つの特有操作ＩＳ８を実施する。したがって、すべてのプロセッサは、各サブオブジェクトに使用され、１つの単一プロセッサは、サブオブジェクトのセットに使用される。したがって、サブオブジェクトをプロセッサに割り当てる必要はない。
【０１３９】
好ましくは、サブオブジェクトを処理するために特有操作がプロセッサによって実施されるとき、同じ特有操作がまた、他のすべてのサブオブジェクトを処理するために同じプロセッサによって実施される。したがって処理は規則的である。特有操作はプロセッサに割り当てられ、次いで各サブオブジェクトのサブ処理操作のために周期的に実施される。
【０１４０】
好ましくは、処理に必要なループのセットは、オブジェクトのトポロジおよびプラットフォームに依存するが、特有操作のシーケンスから独立している。
【０１４１】
好ましくは、ループは、特有操作の完全なシーケンスの周りで相互の中に埋め込まれる。このようにして、ループは特有操作のシーケンス全体をカプセル化し、特有操作のシーケンスは、それぞれがループに囲まれたサブシーケンスに分割されることはない。同様にして、完全なオブジェクトを記憶する必要も、特有操作の結果のセットを記憶する必要もなしに、ただ別のサブオブジェクトの処理に必要な結果を一時的に記憶するだけで、サブオブジェクトを同時に処理することによってオブジェクトを処理することができる。したがってメモリ使用が削減される。
【０１４２】
好ましくは、サブオブジェクトは、連続した基本情報で構成される。このため、少なくとも１つの待ち行列を含むプロセッサの連鎖を実施することが可能である。
【０１４３】
一実施形態では、Ｎ個の基本情報のサブオブジェクトを処理するために、シーケンスの各特有操作が総計Ｎ回実施され、Ｑ個のプロセッサそれぞれにつきＮ／Ｑ回実施される。特有操作のシーケンスが条件付き接続を含む場合、各プロセッサは、これらの条件付き接続を反映するシーケンスの部分を実施する。
【０１４４】
一実施形態では、サブオブジェクトは、少なくとも１つの次元に従ってオーバーレイされない。したがって、あるサブオブジェクトの処理中に生成された少なくとも１つの特有操作結果が、別のサブオブジェクトの処理中に使用される。
【０１４５】
好ましくは、サブオブジェクトは、どんな次元に従ってもオーバーレイされない。したがって、各プロセッサは、計算を繰り返さずに１００％使用することができる。
【０１４６】
好ましくは、特有操作のシーケンスは、シーケンスのうちの少なくとも１つの特有操作ｋが、そのＮ回の適用中に少なくとも１回、別のサブオブジェクトの処理に使用される結果を生成するようなシーケンスである。
【０１４７】
好ましくは、サブオブジェクトの同じ１つの次元に従ったいくつかの循環的連鎖がある場合（とりわけプロセッサがグリッドに従って配置されているとき）、待ち行列は、同じ次元に従ったすべての循環的連鎖間で共有される。好ましくは、サブオブジェクトの各次元につきちょうど１つの待ち行列があり、各待ち行列は、同じ次元に従ったすべての循環的連鎖間で共有される。したがって、プロセッサ間の通信は特に単純である。したがって、メモリの構成は特に単純である。
【０１４８】
本発明によれば、サブ処理操作を周期的に開始することは、必ずしも正確に定期的な間隔で行うことを意味せず、計算に必要とされるデータの同期およびメモリへのアクセスは、周期を変動させやすい。
【０１４９】
一実施形態では、ＮはＱの倍数ではない。この実施形態の一代替形態では、Ｑは、汎用操作のシーケンスを変換することによって得られるシーケンスの特有操作の数量に等しい。
【０１５０】
一実施形態では、ＮはＱの倍数である。これにより処理は規則的になる。好ましくは、Ｎ＝Ｑである。これにより、一時的な結果を記憶するのに必要とされるメモリの量が削減される。
【０１５１】
一実施形態では、Ｑ＝１およびＮ＝４である。これにより、１つの同じ特有操作を複数回適用するのに、同じパラメータ値を再使用することができる。
【０１５２】
一実施形態では、Ｑ＞１およびＮ＝Ｑである。これにより、ベクトル信号プロセッサのＱ個の計算ユニットを１００％使用することができる。
【０１５３】
一実施形態では、Ｑ＞１であり、ＮはＱの倍数である。これにより、ベクトル信号プロセッサのＱ個の計算ユニットを１００％使用することができ、サブオブジェクトの処理中に実施され別のサブオブジェクトの処理に使用される特有操作からの結果の数量を削減することができる。
【０１５４】
データが記憶されるメモリスロットは、例えば、このデータが再使用されることになる時に依存する。したがって、データは、レジスタ、高速アクセスメモリ、さらには低速メモリにすら記憶することができる。
【０１５５】
一実施形態では、スクローリングモードの決定は、特有操作のシーケンスのうち、どの特有操作（１つまたは複数）が各プロセッサによって実施されるかを決定するステップを含み、各操作は各サブオブジェクトに少なくともＮ回適用され、各特有操作は、そのＮ回の適用中に、それぞれ少なくとも１回、サブオブジェクトの基本情報を直接的および／または間接的に適用して、ちょうどＮ個の結果を生成する。さらに、本方法は、このように決定された情報を特有フォーマット化データに加えるステップを含む。
【０１５６】
一実施形態では、各プロセッサは、特有操作のシーケンスのすべての操作を実施する。
【０１５７】
サブ処理操作は周期的に開始されるが、好ましくは、所与のプロセッサによって実施される特有操作は、各周期で同じである。
【０１５８】
一実施形態では、スクローリングモードの決定は、周期の相対時間ごとに、特有操作のシーケンスからどの特有操作（１つまたは複数）が各プロセッサによって実施されるかを決定するステップを含み、各操作は各サブオブジェクトに少なくともＮ回適用され、各特有操作は、そのＮ回の適用中に、それぞれ少なくとも１回、サブオブジェクトの基本情報を直接的および／または間接的に適用して、ちょうどＮ個の結果を生成する。さらに、本方法は、このように決定された情報を特有フォーマット化データに加えるステップを含む。一実施形態では、すべてのプロセッサが、同じ特有操作を同時に実施する。別の実施形態では、すべてのプロセッサが、同じ特有操作を連続して実施し、これは再帰型フィルタの実施を可能にする。
【０１５９】
別の実施形態では、特有操作のシーケンスは、シーケンスとは別個の少なくとも２つの特有操作がそれぞれ、そのＮ回の適用中に少なくとも１回、別のサブオブジェクトの処理に使用される結果を生成するようなシーケンスである。
【０１６０】
本方法はまた、特有操作および決定されたスクローリング方法に従って、特有フォーマット化データを計算するステップを含む。
【０１６１】
２つの論理ブロックの相対スケールおよび相対位置の概念は、限定しないがとりわけ以下に挙げることを可能にする。
【０１６２】
−いくつかの論理ブロックの結合、および／または、
−スケールの変更、
−および／または、近傍に対するフィルタの生成、
−および／または、表現の変更。
【０１６３】
本発明では、論理ブロックは、汎用操作に従ったいくつかのタイプのものである。例えば、オブジェクトが画像である場合、
−少なくとも１つの論理ブロックは「未処理」タイプであり、かつ／または、
−少なくとも１つの論理ブロックは赤タイプであり、かつ／または、
−少なくとも１つの論理ブロックは緑タイプであり、かつ／または、
−少なくとも１つの論理ブロックは青タイプであり、かつ／または、
−少なくとも１つの論理ブロックは８ビットデータで表すことができ、かつ／または、
−少なくとも１つの論理ブロックは１６ビットデータで表すことができ、かつ／または、
−少なくとも１つの論理ブロックはｎビット、例えば１０や１２ビットのデータで表すことができる。
【０１６４】
一実施形態では、少なくとも１つの論理ブロックは、複数スケールデータ、例えばスケール１、１／２、１／４、および１／８のデータを含む。これにより、汎用操作をいくつかのスケールで実施して、その後、結果を結合することが可能になる。
【０１６５】
アルゴリズムは、例えば、オブジェクトが画像である場合、限定しないが以下に挙げるものに対応することができる。
【０１６６】
−自動ホワイトバランスに関する、とりわけ統計ベースの計算、ならびに／あるいは、
−自動露光に関する、とりわけ統計ベースの計算、ならびに／あるいは、
−自動フォーカスに関する、とりわけ統計ベースの計算、ならびに／あるいは、
−自動コントラスト改善に関する、とりわけ統計ベースの計算、ならびに／あるいは、
−未処理画像から可視画像への変換（「イメージパイプ」または「画像信号処理（ＩＳＰ）」、ならびに／あるいは、
−光学障害の補正、ならびに／あるいは、
−被写界深度の改善、ならびに／あるいは、
−特許出願ＰＣＴ／ＦＲ２００６／０５００２２「Ｍｅｔｈｏｄ  ｆｏｒ  ｃｒｅａｔｉｎｇ  ａｎ  ｉｍａｇｅ  ｃａｐｔｕｒｉｎｇ  ａｎｄ／ｏｒ  ｒｅｎｄｅｒｉｎｇ  ｄｅｖｉｃｅ，ａｎｄ  ｄｅｖｉｃｅ  ｏｂｔａｉｎｅｄ  ｂｙ  ｔｈｉｓ  ｍｅｔｈｏｄ」および特許出願ＰＣＴ／ＦＲ２００６／０５０１９７「Ｍｅｔｈｏｄ  ｆｏｒ  ｃｏｍｍａｎｄｉｎｇ  ａｎ  ａｃｔｉｏｎ，ｎｏｔａｂｌｙ  ａ  ｍｏｄｉｆｉｃａｔｉｏｎ  ｏｆ  ｓｈａｒｐｎｅｓｓ，ｕｓｉｎｇ  ａ  ｄｉｇｉｔａｌ  ｃｏｌｏｕｒ  ｉｍａｇｅ」に記載されている処理操作、ならびに／あるいは、
−センサ障害の補正、ならびに／あるいは、
−イメージャ障害の補正、ならびに／あるいは、
−処理操作、とりわけ鮮鋭度の改善、ならびに／あるいは、
−処理操作、とりわけ色表現の改善、ならびに／あるいは、
−処理操作、とりわけコントラスト表現の改善、ならびに／あるいは、
−処理操作、とりわけディテール表現の改善、ならびに／あるいは、
−雑音低減、ならびに／あるいは
−測定、ならびに／あるいは、
−圧縮、ならびに／あるいは、
−圧縮解除、ならびに／あるいは、
−補間または拡大（ズーム）、ならびに／あるいは、
−走査、ならびに／あるいは、
−特殊効果。
【０１６７】
処理されるオブジェクトは一般に、処理中に、空間と時間の両方でまたはオブジェクトの他の次元で、サブオブジェクト、すなわち所定のサイズおよび形を有する基本情報のグループに分解される。
【０１６８】
サブオブジェクトは、形およびサイズを有する基本情報のセットであり、この形およびサイズは、場合に応じて、プラットフォームの特性（とりわけメモリのサイズおよびタイプに関して、ならびに、ベクトル信号プロセッサの場合にはベクトルのサイズに関して）に依存するが、処理されるオブジェクトの特性にも依存する。
【０１６９】
オーバーレイを有さないサブオブジェクトへの分解の種々の可能なタイプを、図１ａ〜１ｄによって示す。これらの図では、１つの同じ画像を、ライン（図１ａのライン９０、９１、９２、９３）、列（図１ｂの列９４、９５、９６、９７）、他の任意の形のサブオブジェクト（図１ｃの形７０、７１、７２、７３）に、または矩形（図１ｄの形６０、６１、６２、６３、６４、６５、６６、６７）にすら分割できることが示されている。
【０１７０】
サブオブジェクトがオーバーレイを有さない場合、例えばフィルタの計算中に、１つ前の別のサブオブジェクトに関する基本情報にアクセスして、エッジを失わずにサブオブジェクトの基本情報を処理する必要がある。
【０１７１】
例えばある次元に従って必要とされるオーバーレイを決定するために、サブオブジェクトへの分解はまた、第２のデータ、とりわけ総合的な相対変位データに依存することもできる。
【０１７２】
さらに、一代替形態では、アルゴリズムの実行中に基本情報が失われないように汎用操作のいくつかが非ヌルの変位を有するとき、画像は、少なくとも１つの次元に従って非ヌルのオーバーレイを有するサブオブジェクトに分解される。
【０１７３】
この構成を、図１ｅおよび１ｆで示す。図１ｅには、操作のシーケンスが各エッジで１ピクセルを失う場合の６×６基本情報を含むサブオブジェクトを示し、図１ｆには、１００個の基本情報を含むオブジェクトを示す。
【０１７４】
この図では、サブオブジェクトが４つの矩形８０、８２、８３、および８４であり、それぞれが３６個の基本情報を含むのが示されている。矩形８０は、画像の左上に位置する３６個の基本情報で構成され、矩形８２は、画像の右上に位置する３６個の基本情報で構成される。したがって、８つの基本情報８６が、サブオブジェクト８０と８２の両方に共通である。
【０１７５】
さらに、８つの基本情報８５が、２つのサブオブジェクト８０と８３とに共通であり、８つの基本情報８８が、２つのサブオブジェクト８２と８４とに共通であり、８つの基本情報８９が、２つのサブオブジェクト８３と８４とに共通である。最後に、４つの基本情報８７が、４つのサブオブジェクト８０と８２と８３と８４とに共通である。
【０１７６】
オブジェクトが画像である場合、一実施形態では、画像は、並置された矩形サブオブジェクトに分解され、これらのサブオブジェクトは、例えば左から右へ、次いで上から下へ処理されるようになっている。
【０１７７】
プラットフォームに応じて、サブオブジェクトは、限定しないが以下に挙げる方式のうちの１つに従って選択および記憶される。
【０１７８】
−小さい高速アクセスメモリおよび大きい低速メモリを伴う信号処理プロセッサの場合、サブオブジェクトのサイズは、低速メモリにアクセスせずにサブオブジェクトを処理することができるように選択される。例えば、３２×３２ピクセルの正方形に対応するサブオブジェクトを採用することが可能となり、現在のサブオブジェクトに関する計算中に、かつ、次のサブオブジェクトに関する計算に必要とされるデータが低速メモリから高速アクセスメモリに転送される間に、前のサブオブジェクトに対する計算の結果が低速メモリに転送される。
【０１７９】
−小さいキャッシュメモリおよび大きい低速メモリを伴うスカラプロセッサの場合、サブオブジェクトのサイズは、キャッシュメモリをできるだけ使用してサブオブジェクトの処理を実施することができるように選択される。例えば、３２×３２ピクセルの正方形に対応するサブオブジェクト、あるいは１ピクセルのサブオブジェクト、あるいは、とりわけ「生」タイプの未処理画像の場合は４ピクセル（２＊２）またはＮ１＊２ピクセルのサブオブジェクトを採用することが可能となる。
【０１８０】
−ベクトル信号プロセッサの場合、サブオブジェクトのサイズは、プラットフォームが処理および記憶することのできるベクトルのサイズと同数またはその倍数として選択され、例えば、６４個の水平ピクセルに対応するサブオブジェクトを採用することができる。
【０１８１】
オブジェクトが画像とは異なるタイプである場合でも、同様にしてサブオブジェクトへの分解をプラットフォームに適応させることができる。
【０１８２】
Ｃなどの言語では、サブオブジェクトへのこの分解および対応するループのコーディングは、プラットフォームに従って明示的でなければならず、プラットフォームごとに手動で実施しなければならない。コーディングされたループからサブオブジェクトを明示的に抽出しようと努めるベクトル信号コンパイラが存在するが、これらのコンパイラは、アルゴリズム概念を自動的にコーディングする前に抽出しなければならず、これは非常に難しいので、これらのコンパイラの効率は限られている。したがって本発明は、どんなプラットフォームへの適応でも、自動化および効率向上できるようにする。
【０１８３】
以下の表に、本発明と既知の言語との主な違いを要約する。
【０１８４】
【表１】
2009524854.tif 000003
サブオブジェクトへのこの分解が実施されると、一実施形態では、特有操作をプロセッサに割り当てることができる。各時間で、特有操作がどのプロセッサによっても実施されなくてよく、あるいは１つまたは複数のプロセッサによって実施されてよい。この選択はとりわけ、プラットフォームのアーキテクチャに、すなわちプロセッサのタイプおよび種々のプロセッサの構成に依存する。また、このアーキテクチャには、データの移行、すなわち、基本情報および／または特有操作からの結果があるプロセッサから他のプロセッサに移行することも依存する。この場合、２つのサブ処理操作の２つの連続した開始の間の時間をＴと呼ぶとすると、時点ｔ＋ｋ＊Ｔで（ｔは任意の時点、ｋは任意の整数）、プラットフォームは、少なくとも１つのサブオブジェクトｉに対して時間ｔで実施したのと同じ操作を、少なくとも１つのサブオブジェクトｊに対して実施する。これらの特有操作は、それぞれのサブオブジェクト（１つまたは複数）において同じ相対位置を有する基本情報および／または特有操作からの結果に適用される。このことは、すべてのサブ処理操作が同一であることを意味し、これにより比較的小さいサイズのコードが生成される。というのは、１つのサブ処理操作のみを明示的に書き込むだけで済み、このサブ処理操作が複数回にわたって適用されるからである。Ｔは、２つのサブ処理操作の２つの連続した開始の間の期間だが、この値は、必ずしもサブ処理操作の完全な実行に必要とされる時間と等しいとは限らない。実際、サブ処理操作は、前のサブ処理操作が完了する前に開始することができ、これによって例えば時間を節約することができる。
【０１８５】
この場合を図２によって示すが、図２では、サブ処理操作ＳＴ２が開始した時点で、サブ処理操作ＳＴ１が完了していないことがわかる。さらに、サブ処理操作ＳＴ３が開始されたとき、サブ処理操作ＳＴ２はまだ実行されている。
【０１８６】
一実施形態では、プロセッサへの特有操作の割当て、および／または各特有操作が実施される時間の選択は、特有フォーマット化データを使用するプラットフォームのコンパイラによって決定される。
【０１８７】
アルゴリズムを最大限に最適化するために、処理操作ができるだけ規則的に実施されるようにすることが有用である可能性がある。こうするために、本発明の一実施形態では、本方法は、各サブオブジェクトに適用される特有操作の数量がプロセッサの数量Ｑの倍数でない場合、および／または、処理されるオブジェクトに関する基本情報の数量がＮの倍数でない場合に、効果なしの特有操作および／またはヌル基本情報を加え、それにより特有操作の数量がＱの倍数になり、基本情報の数量がＮの倍数になるようにするステップを含む。
【０１８８】
本発明によれば、ヌル基本情報は、任意の内容の使用されない基本情報、および／または他の基本情報の複製によって得られる基本情報、および／または計算によって得られる基本情報を意味する。
【０１８９】
一実施形態では、汎用操作のシーケンスは、論理ブロックと呼ばれる少なくとも１つの基本情報セットに適用され、汎用フォーマット化データはまた、相互との関係における論理ブロックの相対位置および／または相対スケール（とりわけ空間的または時間的）を参照する、少なくとも２つの論理ブロックを使用する汎用操作に関する第２のデータも含み、各特有操作が適用されなければならない基本情報および／または特有操作からの結果は第２のデータに依存し、相互との関係における論理ブロックの少なくとも１つの相対位置がヌルでない場合は、少なくとも１つの特有操作は別のサブオブジェクトの少なくとも１つの基本情報を直接的または間接的に使用する。この場合、第２のデータを使用して、任意の２つの論理ブロック間の位置および相対スケールを計算することができる。対応する各物理ブロックのサイズ、ならびにそのスケール、および物理ブロックの各要素の絶対位置は、これから演繹することができる。
【０１９０】
本発明の一実施形態では、汎用操作は、オブジェクトの次元の１つに従った絶対位置で構成される論理ブロックを生成する少なくとも１つの汎用位置操作、ならびに、第３のブロックに従ったまたはパラメータに従った変位および／またはスケール変更によって第１のブロックから第２のブロックを生成する汎用インダイレクション操作を含む。
【０１９１】
別の実施形態では、汎用操作は、論理ブロックおよび／またはパラメータの加算、論理ブロックおよび／またはパラメータの減算、論理ブロック間の差の絶対値の計算、論理ブロックおよび／またはパラメータの乗算、少なくとも２つの論理ブロックおよび／またはパラメータのうちの最大値、少なくとも２つの論理ブロックおよび／またはパラメータのうちの最小値、論理ブロックのグループ化およびグループ化解除、相関表に対応するパラメータを論理ブロックに適用することによる論理ブロックの計算、少なくとも２つの論理ブロックおよび／またはパラメータからの、論理ブロックの条件付き選択（この選択は、ａ＞ｂならばｃが選択され、そうでなければｄが選択されるように行われる。ａ、ｂ、ｃ、およびｄは、論理ブロックおよび／またはパラメータである）、論理ブロックに関する棒グラフ、パラメータおよび／または論理ブロックに従った、論理ブロックのスケール変更、パラメータおよび／または論理ブロックに従った、論理ブロックの相対変位、少なくとも１つの座標を含むブロックを生成する操作、を含むグループに含まれる少なくとも１つの基本汎用操作を含む。
【０１９２】
加算など、論理ブロックおよびパラメータを使用する汎用操作は、プラットフォーム中での操作に変換することができ、例えば、汎用操作が加算に関するものであるときは、この汎用操作は、論理ブロックに対応する処理される物理ブロックの各要素または基本情報を、処理される要素または基本情報の絶対位置に対応するパラメータの値に加算することに対応する。
【０１９３】
これらの操作は、まさにその性質により、画像処理では比較的標準的な操作だが、他の種類のオブジェクトの処理でもそうである。しかし、これらの操作は、第２のデータと共に論理ブロックに適用されるとき、提起されている問題への解決法を提供する。これらの操作は、データ処理アルゴリズム中で実施することのできるすべての操作を形成するための基礎としての働きをする。
【０１９４】
したがって、一実施形態では、汎用操作は、それら自体も使用される基本汎用操作のグループに対応する、複合的な汎用操作を含む。これらのグループはとりわけ、少なくとも３つの論理ブロックおよび／またはパラメータの中央値の計算（最小値および最大値の計算からなる汎用操作のグループに対応する）、論理ブロックおよび／またはパラメータの乗算／累算、論理ブロックとパラメータとの重畳（いくつかの相対位置による乗算および加算からなる汎用操作のグループに対応する）、最大値および最小値と組み合わせた加算、勾配の計算（２つの相対位置の差の絶対値に対応する）、ベクトルからなるパラメータといくつかの論理ブロックとのスカラ積による論理ブロックの生成、補間によるスケール変更の計算（いくつかの相対位置によるスケール変更と乗算および加算とからなる汎用操作のグループに対応する）、論理ブロックの結合（いくつかの相対位置によるスケール変更からなる汎用操作のグループに対応する）を含む。
【０１９５】
操作のいくつかは、複数の論理ブロックを使用する。この場合、相互との関係で実現される論理ブロックの位置に関して、第２のデータが提供されることはすでに示した。
【０１９６】
とりわけ空間的および／または時間的な、相対位置および相対スケールは、オブジェクトのタイプに応じて様々な概念に対応することができる。これらは、タイプにかかわらず任意の２つのブロック間で適用される（前述のような画像の場合、論理ブロックはとりわけ、未処理、赤、緑、８ビットなどとすることができる）。
【０１９７】
オブジェクトが正方形ピクセルを含む静止画である場合、絶対または相対位置は、一実施形態では、２つの値（垂直および水平）に対応することができ、絶対または相対スケールは、２つの値（垂直および水平）に対応することができる。オブジェクトの最上ラインのピクセルは、絶対位置として（０；０）（０；１）（０；２）．．．を有することができ、ｎ番目のラインのピクセルは、絶対位置として（ｎ；０）（ｎ；１）（ｎ；２）を有することができる。この場合、相対位置は、次のようにしてコーディングすることができる。すなわち、（−１；０）は上を示し、（０；１）は右を示し、（２；−２）は２ピクセル下および２ピクセル左を示す。この場合、（０．５；０．５）の相対スケールは、各方向への半分の解像度に対応する。
【０１９８】
より一般的には、相対変位と相対スケールの組合せは、次のようにして２つの関数ｆおよびｇを使用してコーディングすることができる。すなわち、絶対位置の各ピクセルにつき（ｆ（ｘ；ｙ）；ｇ（ｘ；ｙ））である。例えば最も近いピクセルを取るためには、丸め規則が必要であることに留意されたい。したがって、
−上の相対位置は、ｆ（ｘ；ｙ）＝−１およびｇ（ｘ；ｙ）＝０でコーディングされる。
【０１９９】
−相対スケール０．７は、ｆ（ｘ；ｙ）＝０．７＊（ｘ−ｘ０）およびｇ（ｘ；ｙ）＝０．７＊（ｙ−ｙ０）でコーディングされる。ｘ０およびｙ０は、絶対不変位置に対応する。
【０２００】
−歪み補正は、歪みフィールドに対応するｆおよびｇでコーディングされる。
【０２０１】
−ＹＵＶ４：２：２フォーマット変更、すなわち、別々のＹ、Ｕ、Ｖ輝度およびクロミナンス情報を使用するＹＹＵＶは、Ｙ１  Ｙ２  Ｙ３  Ｙ４．．．を使用してＹ１  Ｙ２  ｘｘ  ｘｘ  Ｙ３  Ｙ４  ｘｘ  ｘｘ．．．を得るために、次の関数を使用することができる。すなわち、ｘが偶数ならｆ（ｘ；ｙ）＝（ｘ−ｘ０）＊０．５、ｘ−ｘ０が奇数なら（ｘ＋１−ｘ０）＊０．５を使用することができ、ｆ（ｙ）＝ｙ−ｙ０である。ｘ０およびｙ０は、絶対位置に関するパラメータに対応する。
【０２０２】
以下の非網羅的なリストに、様々な異なるタイプのオブジェクトによる実施形態の他の例を提供する。
【０２０３】
−オブジェクトが、ラインに沿って配置された六角形のピクセルを含む静止画であって、２つの連続したラインが半ピクセル分ずれている場合、絶対または相対位置および絶対または相対スケールは、それぞれ２つの値（垂直および水平）に対応することができる。オブジェクトの最上ラインのピクセルは、絶対位置として（０；０）（０；１）（０；２）．．．を有することができ、ｎ番目のラインのピクセルは、絶対位置として、ラインが奇数ラインならば（ｎ；０．５）（ｎ；１．５）（ｎ；２．５）．．．を有することができ、ラインが偶数ラインならば（ｎ；０）（ｎ；１）（ｎ；２）．．．を有することができる。相対位置は、２つの値（垂直および水平）に対応することができ、例えば、（−０．５；０．５）は右上を示し、（０，１）は右を示し、（−０．５；１．５）は右上のピクセルの右に位置するピクセルを示す。この場合、相対スケール（０．５；０．５）は、各方向への半分の解像度に対応する。また、相対変位と相対スケールの組合せは、２つの関数ｆおよびｇを次のようにして使用してコーディングすることができる。すなわち、絶対位置ｘ，ｙの各ピクセルにつき（ｆ（ｘ；ｙ）；ｇ（ｘ；ｙ））である。例えば最も近いピクセルを取るためには、丸め規則が必要であることに留意されたい。
【０２０４】
。オブジェクトが、正方形のピクセルを含む動画である場合、絶対または相対位置は３つの値（垂直、水平、および時間）に対応することができ、例えば、（−１；０；０）は、同じ画像中の上に位置するピクセルを示し、（０；０；−１）は、前の画像中の同じ位置のピクセルを示し、（２；−２；−１）は、前の画像中の２ピクセル下および２ピクセル左に位置するピクセルを示す。また、相対変位と相対スケールの組合せは、３つの関数ｆ、ｇ、ｈを次のようにして使用してコーディングすることができる。すなわち、時間ｔにおける絶対位置ｘ，ｙの各ピクセルにつき（ｆ（ｘ；ｙ；ｔ）；ｇ（ｘ；ｙ；ｔ）；ｈ（ｘ；ｙ；ｔ））である。例えば最も近いピクセルを取るためには、丸め規則が必要であることに留意されたい。
【０２０５】
−オブジェクトが単一チャネルの音声である場合、絶対または相対位置は１つの値（時間）に対応することができる。例えば、（−１）は前の時間を示し、（２）は２つの時間後を示す。この場合、関数ｆ（ｔ）が、変位および相対スケールのコーディングを可能にする。最も近い時間を取るためには、丸め規則が使用される。
【０２０６】
−オブジェクトが複数チャネル音声である場合、絶対または相対位置は２つの値（時間、チャネル）に対応することができる。例えば、（−１，０）は、同じチャネルでの前の時間を示し、（２，１）は、後続のチャネルでの２つの時間後を示し、このチャネルは例えば循環的な方式で空間配置される。また、相対変位と相対スケールの組合せは、２つの関数ｆ、ｇを次のようにして使用してコーディングすることができる。すなわち、チャネルｃで時間ｔに位置する各オーディオサンプルにつき（ｆ（ｔ；ｃ）；ｇ（ｔ；ｃ））である。例えば最も近い時間およびチャネルを取るためには、丸め規則が必要であることに留意されたい。
【０２０７】
−オブジェクトがシミュレーションメッシュである場合、絶対または相対位置はｎ個の値に対応することができ、各値は、メッシングのトポロジに従った空間または時間次元に対応する。また、相対変位と相対スケールの組合せは、ｎ個の関数を使用してコーディングすることができる。例えば最も近いノードおよび時間を取るためには、丸め規則が必要であることに留意されたい。
【０２０８】
−オブジェクトが被変調信号である場合、絶対または相対位置はｎ個の値に対応することができ、各値は、時間と、妥当な場合に周波数チャネル（複数の周波数上での送信または受信）と、妥当な場合に空間次元（空間的に配置された複数の送信機または受信機）とに対応する。また、相対変位と相対スケールの組合せはｎ個の関数を使用してコーディングすることができ、丸め規則を選択しなければならない。
【０２０９】
−オブジェクトが測定値のセットである場合、絶対または相対位置はｎ個の値に対応することができ、各値はオブジェクトの次元の１つに対応し、これらの次元は、場合に応じて、時間、空間、周波数、位相、または他のタイプであることがある。また、相対変位と相対スケールの組合せはｎ個の関数を使用してコーディングすることができ、丸め規則を選択しなければならない。
【０２１０】
−オブジェクトが次元ｎのオブジェクトである一般的な場合、絶対または相対位置はｎ個の値に対応することができ、各値はオブジェクトの次元の１つに対応し、これらの次元は、場合に応じて、時間、空間、周波数、位相、または他のタイプであることがある。また、相対変位と相対スケールの組合せはｎ個の関数を使用してコーディングすることができ、丸め規則を選択しなければならない。
【０２１１】
ある種の特有操作は、後で別のサブ処理操作に使用される可能性の高い結果を生成する。このため、これらの結果を決定し、共にグループ化して送出することが有用である。
【０２１２】
したがって、一実施形態では、本方法は、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の一部を、第２のデータに従って決定するステップを含む。
【０２１３】
別の実施形態では、本方法はまた、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果を、第２のデータおよび／またはスクローリングモードに従ってメモリ中に共にグループ化するステップを含む。
【０２１４】
別の実施形態では、特有操作は、少なくとも１つの循環的連鎖に従って連鎖された計算ユニットによって実施され、本方法はまた、各特有操作につき、この特有操作の結果を循環的連鎖に従って送出すべきかどうかを第２のデータに従って判定するステップを含む。本方法はまた、妥当な場合に、どの循環的連鎖を使用してこの特有操作の結果を送出するかを、第２のデータおよびスクローリングモードに従って決定するステップを含む。
【０２１５】
これらの異なる実施形態は、相互から独立して、または組み合わせて適用することができる。
【０２１６】
好ましくは、第２のデータに関する相対変位および／または相対スケール情報を使用して、所与の汎用操作についての変位および／またはスケール変更がある際の次元（１つまたは複数）が決定される。したがって、汎用操作のシーケンスから変換された特有操作シーケンスからの各特有操作に適用される循環的連鎖（１つまたは複数）を決定することができる。好ましくは、この循環的連鎖は、少なくとも１つの待ち行列も含む。
【０２１７】
いくつかの操作がヌル変位を適用するとき、各特有操作からの結果をメモリに書き込むこと、およびこれらを後続の操作のために再度読み取ることは無用であり、これらの記憶操作および再読取り操作は時間の無駄となり、処理操作にとって特に利益はない。したがって、一実施形態では、特有フォーマット化データは、特有操作を共にグループ化することに関する情報を含み、このグループは、別のサブ処理操作にとって有用ではない各特有操作の結果を記憶せずに実行されることになっている１つまたは複数の特有操作のパケットの形成にある。
【０２１８】
一実施形態では、シーケンスの特有操作のすべてが共にグループ化される。
【０２１９】
一実施形態では、特有フォーマット化データは、１組の埋込みループのみを含む。
【０２２０】
さらに、いくつかの特有操作は、別のサブ処理操作ですでに使用された操作結果に適用することができる。例えば、特有操作のシーケンスが、中間計算からの３つのラインを適用するフィルタを含むとき、ラインに対応するサブオブジェクトに分解された画像の場合、第１のサブオブジェクトすなわち第１のラインに適用されるフィルタ操作は、例えば画像の第２および第３のラインも使用する。また、この同じフィルタ操作が第２のサブオブジェクトに適用されることになるとき、さらには第３のラインに関して第３のサブオブジェクトに適用されることになるときにすら、第２および第３のラインがこのフィルタ操作によって使用されることになる。この場合、ピクセルのこれらのラインを後で再計算するのは計算の点でコストがかかるが、そうしなくてもよいようにこれらをメモリに記憶することが有益である可能性がある。
【０２２１】
異なるデータに対していくつかのフィルタが使用される場合も、同様にして他のデータをメモリに記憶することが有用である可能性がある。
【０２２２】
したがって、一実施形態では、特有フォーマット化データは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の少なくとも一部を、プラットフォームのメモリに記憶することを可能にする操作を含む。
【０２２３】
さらに、一実施形態では、本方法は、別のサブオブジェクトのサブ処理操作中に使用される特有操作からの結果を、当該サブオブジェクトとの関係におけるこの別のサブオブジェクトの相対位置に従って、メモリに共にグループ化して記憶するステップを含む。
【０２２４】
次に、後でさらに述べるような待ち行列を含む循環的連鎖を適用する一実施形態例について述べる。この例では、スクローリングモードは、Ｎが５に等しく、オブジェクトが１０＊５のサブオブジェクトに分解され、水平に配置された１０個のサブオブジェクトが１つずつ処理され、次いで下に位置する１０個のサブオブジェクトが処理され、以下同様となるようなスクローリングモードである。水平次元に従って使用される待ち行列は、前回の反復からのデータを含み、垂直に使用される待ち行列は、前の１０回の反復からのデータを含む。したがって、特有操作からの結果のメモリグループ化は、スクローリングモードに依存する。したがって、別のサブオブジェクトのサブ処理中に使用される特有操作からの結果をメモリに共にグループ化して記憶することは、当該サブオブジェクトとの関係におけるこの別のサブオブジェクトの相対位置に依存する。
【０２２５】
本方法はまた、いくつかの場合に、サブオブジェクトのサブ処理中に実施され別のサブオブジェクトのサブ処理中に使用される特有操作からの結果を、少なくとも１つの待ち行列中で共にグループ化するステップを含む。
【０２２６】
一実施形態では、計算ユニットは少なくとも１つの循環的連鎖に従って連鎖され、連鎖は少なくとも１つの待ち行列も含む。
【０２２７】
いくつかの場合では、特有フォーマット化データは、特有操作からの結果および／または記憶された基本情報を、プラットフォームのメモリスロットの１つから別のメモリスロットに転送することに関する情報を含む。後でさらに述べる第５の変換例は、このような転送を含む。
【０２２８】
一実施形態では、少なくとも１つの特有操作はしかし、エッジ効果を有するような特有操作である可能性がある。すなわち、これらの操作が適用されるサブオブジェクトのエッジに位置するいくらかの情報の損失がある。これらのエッジ効果を回避するために、画像は、オーバーレイを有するサブオブジェクトに分解される。すなわち、これらのサブオブジェクトは、いくらかの基本情報を共有する。したがって、特有フォーマット化データは、特有操作からの結果がプラットフォーム中で複数回にわたって計算されるような特有操作を含み、それにより、とりわけサブオブジェクトが少なくとも１つの次元でオーバーレイされている場合に、特有操作の実行時にどんな情報も損失しない。後でさらに述べる第５の変換例は、このようなオーバーレイを含む。
【０２２９】
一実施形態では、特有フォーマット化データは、特有操作からの結果および／または記憶された基本情報の少なくとも一部にプラットフォームがアクセスできるようにするためのアドレス指定情報を含む。このアドレス指定情報は「ベースアドレス＋オフセット」または「（ベースアドレス＋オフセット）ｍｏｄ（バッファメモリのサイズ）」フォーマットであり、オフセットは、あるサブ処理操作と他のサブ処理操作とで、１つの同じ特有操作からの結果に対して一定である。一実施形態では、ベースアドレスはサブ処理操作ごとに変更される。
【０２３０】
好ましくは、バッファメモリは、処理プラットフォームのメモリの１つに統合される。とりわけ、バッファメモリは待ち行列とすることができる。
【０２３１】
一実施形態では、本方法は、特有操作からの結果を記憶するために、空のメモリスロット、あるいはもはや使用されない特有操作結果または基本情報を含むメモリスロットのアドレスをプラットフォームに提供するようにして、特有操作の順序に従ってオフセットを計算するステップを含む。この計算は、前述のように別のサブ処理操作でまたは別の特有操作によって後で使用されることになる情報をメモリから消去しないように、種々のパラメータ、とりわけ特有操作のパラメータを反映して実施される。したがって、単純なアドレス計算およびメモリ再使用によって循環的バッファが得られ、これにより、後の計算に必要な中間データを記憶することが可能になる。とりわけ、処理がライン単位で実施される画像の場合、垂直フィルタの入力上で使用されるラインが保持される。
【０２３２】
一実施形態では、本方法はまた、このオフセットを第１のデータに従って決定するステップを含み、オフセットは、第１のデータの汎用操作のシーケンスを変換することによって得られる特有操作のシーケンスの特有操作ごとに異なる。例えば、少なくとも１つの待ち行列は、「ベースアドレス＋オフセット」または「（ベースアドレス＋オフセット）ｍｏｄ（プラットフォーム中に位置するバッファメモリのサイズ）」フォーマットのアドレス指定情報によって実現される。第２のデータを使用して、使用される待ち行列が決定される。
【０２３３】
特有操作をサブオブジェクトに適用するには、コードのサイズを縮小するためおよびコードをより一様にするためにループを使用するのが一般に有益である。したがって、一実施形態では、処理操作は、スクローリングモードに従って、少なくとも１つのループと、ループ（１つまたは複数）の反復の数量と、複数のループがあるときにはループの埋込みとの計算を含む。後続の変換例は、ループがプラットフォームに従って手動でコーディングされる既知の言語とは対照的に、ループをプラットフォームに従って自動的に計算することが可能であることを示す。
【０２３４】
これらのループは例えば、とりわけ、処理されるオブジェクトが、矩形のサブオブジェクトに分解された画像であって、これらの中を水平または垂直にスクロールすることが選択された場合に、サブオブジェクトの中をスクロールするのに使用することができる。
【０２３５】
同様にして、特有フォーマット化データは、いくつかの場合、処理操作に必要な一時変数を含む。
【０２３６】
いくつかの特有操作はパラメータを使用し、この場合、これらのパラメータの値もまた処理される。これらのパラメータは、例えば乗率とすることができる。これらのパラメータは、例えば、限定しないが以下に挙げるものに対応することができる。
【０２３７】
−フィルタ係数
−飽和度の値
−オフセット値
−相関表
一実施形態では、特有操作によって使用されるパラメータの値は、サブオブジェクトの絶対位置に依存し、かつ／あるいは、これらの特有操作において直接的または間接的に適用される基本情報の、サブオブジェクトにおける絶対位置に依存する。例えば、処理されるオブジェクトが画像である場合、撮影に使用された光学機構のせいで画像に欠陥が現れることがある。これらの欠陥は、画像全体にわたり概して一様ではなく、とりわけエッジでは一様ではない。この場合、この不鮮明を補償するために、画像のすべてのピクセルに同じ補償係数が適用されることにはならない。
【０２３８】
例えば、すべての基本情報に共通のパラメータをフィルタに対して使用すると、鮮鋭度を一様に高めることができる。
【０２３９】
例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存するパラメータをフィルタに対して使用すると、光学的な欠陥を補償するためにエッジでより大幅に鮮鋭度が高まる。
【０２４０】
例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存するパラメータをビネッティング補正に使用すると、光学的な欠陥を補償するためにエッジでより高い補償が生み出される。
【０２４１】
例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存するパラメータをデモザイキング操作に使用すると、センサから受け取られた未処理画像中の「赤」ピクセル、「緑」ピクセル、および「青」ピクセルを異なる方式で処理することができる。
【０２４２】
例えば、処理されるオブジェクトにおける基本情報の絶対位置に依存する第２のデータ、とりわけ変位を、ディジタル拡大計算（「ズーム」）または歪み補正計算に使用すると、各点における補間を計算するのに必要なピクセルが生成される。
【０２４３】
一実施形態では、パラメータの値は、このパラメータのタイプに応じて、
−一定であり、アルゴリズムに固有である。この場合、パラメータの値はとりわけ、処理手段またはプラットフォームに送出することができる。かつ／あるいは、
−オブジェクトのソースまたは宛先に依存する。例えば、処理されるオブジェクトが、所与の光学機構を備えたデバイスからの画像である場合、パラメータの値は、光学機構のタイプに依存する可能性があり、光学機構のタイプは、画像中の鮮鋭度のレベルに影響を有する。この場合、パラメータの値はとりわけ、処理手段またはプラットフォームに送出することができる。かつ／あるいは、
−処理されるオブジェクトに依存する。例えば、処理されるオブジェクトがセンサからの画像である場合、パラメータの値は、このオブジェクトを取り込むのに効果的に使用されるセンサの利得に依存する可能性があり、センサの利得は、画像中の雑音のレベルに影響を有する。この場合、パラメータの値はとりわけ、プラットフォームによって送出、選択、または計算することができる。かつ／あるいは、
−オブジェクトにおける基本情報の絶対位置に依存する。この場合、パラメータの値はとりわけ、プラットフォームによって送出、選択、または計算することができる。かつ／あるいは、
−オブジェクトにおける基本情報の絶対位置に依存しない。
【０２４４】
パラメータ値は、アルゴリズムの定義との関係で、同時にまたはアポステリオリに決定することができる。
【０２４５】
ある種のパラメータの値が、あるオブジェクトと別のオブジェクト、あるサブオブジェクトと別のサブオブジェクト、またはある基本情報と別の基本情報とで変動する可能性があることを見てきた。この場合、一実施形態では、パラメータの値は、変更の度に計算される。
【０２４６】
別の実施形態では、パラメータの可能な値はアプリオリに計算され、変更の度に索引またはアドレスが決定されて、それにより、パラメータの値へのアクセスが例えば表の中で可能になる。別の実施形態は、よりパラメータに特有に適応され、それにより値がサブオブジェクトの絶対位置に従ってあるサブオブジェクトと別のサブオブジェクトとで変動し、かつそれにより値の数が制限される（例えば光学的な鮮鋭度特性に対応するパラメータ）ものだが、この実施形態では、有限数のパラメータ値セットが決定され、各セットは記憶され、各サブオブジェクトにつき、使用されるセットが、例えば使用されるセットのアドレスを与える位置の関数を計算することによって選択される。
【０２４７】
前述のように、パラメータは、ある種の特有操作の適用中に使用される。これが可能であるために、一実施形態では、特有フォーマット化データは、パラメータの値（１つまたは複数）、および／あるいは、パラメータの値（１つまたは複数）に関する計算コードを含む。
【０２４８】
別の実施形態では、パラメータ（１つまたは複数）の値（１つまたは複数）は、処理プラットフォームに従って選択され、それにより、処理操作はこのプラットフォームの特性を反映する。したがって、いくつかのプラットフォームに対して同一のアルゴリズムが利用可能であるものとすることができ、このアルゴリズムは、これらの特性を変動させるだけで、必要とされる各プラットフォームに適応される。
【０２４９】
別の実施形態では、これらのパラメータ値は処理対象に依存する。
【０２５０】
本発明の一実施形態では、特有操作は、加算、減算、乗算、相関表の適用、最小値、最大値、および選択を含むグループからの、少なくとも１つの特有計算操作を含む。
【０２５１】
一実施形態では、少なくとも１つの特有計算操作はまた、オフセットおよび／または飽和度および／または丸めを実施する。本発明によれば、特有選択計算操作は、少なくとも２つのデータ項目から、第３のデータ項目の値に従ってデータを選択することを可能にする。
【０２５２】
一実施形態では、相関表は、表の入力と有限数の係数とを使用した計算によって適用される。一実施形態では、係数の有限数は８に固定される。
【０２５３】
一実施形態では、特有操作は、少なくとも１つの循環的連鎖ＣＣ１を用いて、連鎖された計算ユニットによって実施される。この循環的連鎖ＣＣ１は、少なくとも１つの待ち行列も含む。特有操作シーケンスからの少なくとも１つの特有操作ＩＳ４は、計算ユニットＵＣ１上で実施された特有操作ＩＳ５の結果を、この連鎖に従ってこの計算ユニットＵＣ１に続く計算ユニットＵＣ２または待ち行列に向けて送出する。
【０２５４】
一実施形態では、特有操作ＩＳ４は、前のサブ処理操作中に実施された特有操作ＩＳ５の結果を、待ち行列から、待ち行列に続く計算ユニットＵＣ０に送出する。好ましくは、待ち行列は、待ち行列に入力された順序と同じ順序でデータを出力することを可能にする。好ましくは、計算ユニットと待ち行列とを含む連鎖は、ブート操作の管理を可能にする機構を含む。待ち行列は、定期的に、例えば待ち行列が水平連鎖の一部でありオブジェクトが画像である場合は各ラインの最初に、初期化される。特有操作ＩＳ４の最初の実行時は、待ち行列からＵＣ０に送出されるデータはない。次に、特有操作ＩＳ４は、前のサブ処理操作中に実施された特有操作ＩＳ５の結果を、待ち行列から、待ち行列に続く計算ユニットＵＣ０に送出する。一実施形態では、サブオブジェクトはＤＳＯ次元を含み、特有操作は、少なくとも１つの循環的連鎖ＣＣ１を用いてサブオブジェクトの所定の次元ＤＤに従って連鎖された計算ユニットによって実施される。この循環的連鎖ＣＣ１は、少なくとも１つの待ち行列も含む。本方法はまた、少なくとも１つの特有操作に対して、この特有操作が適用される度に以下のステップを含む。
【０２５５】
−計算ユニットＵＣ１上で実施された特有操作の上記適用からの結果を、この連鎖に従ってこの計算ユニットＵＣ１に続く計算ユニットＵＣ２または待ち行列に送出する。
【０２５６】
−別のサブオブジェクトの処理中に待ち行列に送出された特有操作の適用の結果を、待ち行列から、待ち行列に続く処理ユニットＵＣ０に、オブジェクトにおけるサブオブジェクトの位置に従って条件付きで送出する。
【０２５７】
別の実施形態では、特有操作は、転置、複製、サブサンプリングを含むグループ中で選択される少なくとも１つの幾何学特有操作を含む。
【０２５８】
特有幾何学操作は、とりわけ以下のことを可能にする。
【０２５９】
−データをソートする。
【０２６０】
−スケール変更、サブサンプリング、またはオーバーサンプリングの計算を実施するためにデータを選択する。
【０２６１】
−とりわけエッジ上の、無用なデータを削除するためにデータを選択する。
【０２６２】
実施形態によれば、特有操作は、少なくとも１つの循環的連鎖に従って連鎖された計算ユニットによって実施することができる。この循環的連鎖は、少なくとも１つの待ち行列も含む。
【０２６３】
別の実施形態では、特有操作は、少なくとも１つの循環的連鎖に従って連鎖された計算ユニットによって実施される。この循環的連鎖は、少なくとも１つの待ち行列も含む。待ち行列はサイズおよび／またはレイテンシを有し、本方法はまた、汎用操作のシーケンスおよびスクローリングモードに従って、待ち行列のサイズおよび／またはレイテンシを決定するステップを含む。
【０２６４】
好ましくは、前述のように、待ち行列はいくつかのデータフラックスを含み、各フラックスにつき同一数ＮＦのデータの記憶を可能にする。ＮＦは、サブオブジェクトの相対的な配置およびスクローリングモードに従って決定され、それにより、データを生成するサブオブジェクトの処理と、同じデータを使用するサブオブジェクトの処理との間で、ＮＦ−１個のサブオブジェクトが処理される。
【０２６５】
好ましくは、処理されるオブジェクトは画像であり、基本情報はこの画像のピクセルである。
【０２６６】
したがって、一実施形態では、処理プラットフォームは、画像取込みまたはレンダリングデバイスの一部であり、パラメータの値は、取込みおよび／または画像レンダリングデバイスの、光学機構および／またはセンサおよび／またはイメージャおよび／または電子機構および／またはソフトウェアの特性にリンクされる。特性はとりわけ、すべてのオブジェクトに対する固有の固定特性とすることもでき、あるいはオブジェクトに従った変数とすることもでき、例えば、センサの利得に従って変動する雑音特性とすることができる。特性はまた、基本情報の絶対位置に従って、すべての基本情報または可変情報に対して同一とすることもでき、例えば光学的な鮮鋭度の特性とすることができる。
【０２６７】
別の実施形態では、処理されるオブジェクトはディジタルオーディオ信号であり、この場合、基本情報は、この信号のオーディオサンプルにある。この場合、第２のデータ中に存在する相対位置は一般に、時間的位置になる。しかし、これらの位置が空間的になることも起こりうる。これはとりわけ、処理されるオブジェクトが、複数のチャネル上に存在する音声である場合である。
【０２６８】
本発明の別の実施形態では、とりわけディジタルシミュレーションの場合、処理されるオブジェクトは数値メッシュであり、基本情報は、メッシングの各点を特徴付ける空間および／または時間情報である。
【０２６９】
本明細書に述べる特有フォーマット化データは、処理プラットフォームに直接提供することができる。しかしまた、この特有フォーマット化データは、Ｃ言語やＶＨＤＬ言語など既知のコンピュータ言語をプラットフォーム用に変換するようになっているコンパイラに、このコンピュータ言語で提供することもできる。これにより例えば、レジスタの割当てまたは命令のスケジューリングを管理する必要なしに、コンパイラを備える既存のプラットフォームを使用することができる。
【０２７０】
本発明はまた、どんなループもない汎用操作のシーケンスを記述する第１のデータを含む汎用フォーマット化データを処理するためのシステムに関する。本システムは、Ｑ個のプロセッサと少なくとも１つのメモリとを備える所定のプラットフォームに、特有フォーマット化データを直接的または間接的に提供する。プラットフォームは、同じタイプの基本情報で構成されるオブジェクトを特有フォーマット化データに従って処理するようになっており、各基本情報は少なくとも１つの数値で表される。
【０２７１】
本システムは、
−汎用操作のシーケンスをプラットフォームに従って１つの特有操作シーケンスに変換する手段と、
−プラットフォームのアーキテクチャおよびオブジェクトのトポロジに従って、かつ第１のデータから独立して、処理操作に必要なループのセットを決定する手段と、
−特有操作のシーケンスとこのように決定されたループとを含む特有フォーマット化データを計算し、コードサイズおよび／またはメモリサイズおよび／または計算時間の点でプラットフォームに最適化された方式で、汎用フォーマット化データに準拠するオブジェクトの処理を直接的または間接的に可能にする手段とを備える。
【０２７２】
一実施形態では、本システムは、
−プラットフォームのアーキテクチャおよびオブジェクトのトポロジに従って、かつ第１のデータから独立して、このプラットフォーム中で基本情報をスクロールするためのモードを決定する手段を備え、このスクローリングモードを決定する手段は、
−サブオブジェクトにおける基本情報のグループであって、各サブオブジェクトはプラットフォームに従って決定されるＱの倍数である数量Ｎの基本情報を含み、プラットフォーム中での処理はサブ処理操作を周期的に開始することにあり、サブ処理操作はサブオブジェクトの１つに特有操作のシーケンスを適用することにあることと、
−プラットフォームに従って決定される、サブオブジェクトの形およびオーバーレイと、
−プラットフォームに従って決定される、サブオブジェクトの処理順序とを選択および／または計算する手段を備え、本システムはさらに、
−処理操作に必要なループのセットを決定し、かつ／またはスクローリングモードを反映する特有操作のシーケンスを計算する手段を備える。
【０２７３】
一実施形態では、本システムは、特有操作のシーケンスのうち、どの特有操作（１つまたは複数）が各プロセッサによって実施されるかを決定する手段を備え、各特有操作は各サブオブジェクトに少なくともＮ回適用され、各特有操作は、そのＮ回の適用中に、それぞれ少なくとも１回、サブオブジェクトの基本情報を直接的および／または間接的に適用して、ちょうどＮ個の結果を生成する。本方法はまた、このように決定された情報を特有フォーマット化データに加えるステップを含む。
【０２７４】
一実施形態では、本システムは、周期の相対時間ごとに、特有操作のシーケンスのうち、どの特有操作（１つまたは複数）が各プロセッサによって実施されるかを決定する手段を備え、各特有操作は各サブオブジェクトに少なくともＮ回適用され、各特有操作は、そのＮ回の適用中に、それぞれ少なくとも１回、サブオブジェクトの基本情報を直接的および／または間接的に適用して、ちょうどＮ個の結果を生成する。本方法はまた、このように決定された情報を特有フォーマット化データに加えるステップを含む。
【０２７５】
一実施形態では、本システムは、各サブオブジェクトに適用される特有操作の数量がプロセッサの数量Ｑの倍数でない場合、および／または、処理されるオブジェクトに関する基本情報の数量がＮの倍数でない場合に、効果なしの特有操作および／またはヌル基本情報を加え、それにより特有操作の数量がＱの倍数になり、基本情報の数量がＮの倍数になるようにする手段を備える。
【０２７６】
一実施形態では、本システムは、
−論理ブロックと呼ばれる少なくとも１つの基本情報セットに汎用操作のシーケンスが適用されるような手段と、
−相互との関係における論理ブロックの相対位置および／または相対スケール（とりわけ空間的または時間的）を参照する、少なくとも２つの論理ブロックを使用する汎用操作に関する第２のデータを含む汎用フォーマット化データを受け取る手段と、
−各特有操作が適用されなければならない基本情報および／または特有操作からの結果が、第２のデータに依存するような手段と、
−相互との関係における論理ブロックの少なくとも１つの相対位置がヌルでない場合は、少なくとも１つの特有操作が、別のサブオブジェクトの少なくとも１つの基本情報を直接的または間接的に使用するような手段とを備える。
【０２７７】
一実施形態では、本システムは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の一部を、第２のデータに従って決定する手段を備える。
【０２７８】
一実施形態では、本システムは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からのグループ化された結果を、第２のデータおよび／またはスクローリングモードに従って記憶するメモリを備える。
【０２７９】
一実施形態では、本システムは、少なくとも１つの循環的連鎖に従って連鎖された計算ユニットを備え、また、各特有操作につき、この特有操作の結果を循環的連鎖に従って送出すべきかどうかを第２のデータに従って判定する手段を備える。本システムはまた、妥当な場合に、この特有操作の結果を送出するのに使用される循環的連鎖を第２のデータおよびスクローリングモードに従って決定する手段を備える。
【０２８０】
一実施形態では、本システムは、特有操作を共にグループ化することに関する情報を特有フォーマット化データが含むような手段を備え、このグループは、別のサブ処理操作のために各特有操作の結果を記憶することなく実行されることになっている１つまたは複数の特有操作のパケットの形成にある。
【０２８１】
一実施形態では、本システムは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の少なくとも一部をプラットフォームのメモリに記憶することを可能にする操作を特有フォーマット化データが含むような手段を備える。
【０２８２】
一実施形態では、本システムは、別のサブオブジェクトのサブ処理操作中に使用するための特有操作からのグループ化された結果を、当該サブオブジェクトとの関係におけるこの別のサブオブジェクトの相対位置に従って記憶するメモリを備える。
【０２８３】
一実施形態では、本システムは、サブオブジェクトのサブ処理操作中に実施され別のサブオブジェクトのサブ処理操作中に使用される特有操作からのグループ化された結果を記憶する少なくとも１つの待ち行列を備える。
【０２８４】
一実施形態では、本システムは、特有操作からの結果がプラットフォーム中で複数回にわたって計算されるような特有操作を特有フォーマット化データが含むような手段を備え、それにより、とりわけサブオブジェクトがオブジェクトの次元の少なくとも１つでオーバーレイされている場合に、特有操作の実行時にどんな情報も損失しない。
【０２８５】
一実施形態では、本システムは、特有操作からの結果および／または記憶された基本情報の少なくとも一部にプラットフォームがアクセスできるようにするアドレス指定情報を、特有フォーマット化データが含むような手段を備え、アドレス指定情報は「ベースアドレス＋オフセット」または「ベースアドレス＋ｍｏｄオフセット（プラットフォーム中に位置するバッファメモリのサイズ）」フォーマットであり、オフセットは、１つの同じ特有操作からの結果に対して一定である。
【０２８６】
一実施形態では、本システムは、ベースアドレスをサブ処理操作ごとに変更する手段を備える。
【０２８７】
一実施形態では、本システムは、特有操作からの結果を記憶するために、空のメモリスロット、あるいはもはや使用されない特有操作結果または基本情報を含むメモリスロットのアドレスをプラットフォームに提供するようにして、特有操作の順序に従ってオフセットを計算する手段を備える。
【０２８８】
一実施形態では、本システムは、少なくとも１つのループと、ループ（１つまたは複数）の反復の数量と、複数のループがあるときにはループの埋込みとを、スクローリングモードに従って計算する手段を備える。
【０２８９】
一実施形態では、本システムはまた、少なくとも１つのパラメータを処理する手段を備え、それにより、特有操作によって使用されるパラメータ（１つまたは複数）の値（１つまたは複数）は、これらの特有操作において直接的または間接的に適用される基本情報の、サブオブジェクトにおける絶対位置に依存する。
【０２９０】
一実施形態では、本システムはまた、少なくとも１つのパラメータを処理する手段を備え、それにより、特有フォーマット化データは、パラメータ（１つまたは複数）の値（１つまたは複数）、および／あるいは、パラメータ（１つまたは複数）の値（１つまたは複数）に関する計算コードを含む。
【０２９１】
一実施形態では、本システムはまた、少なくとも１つのパラメータを処理する手段を備え、パラメータ（１つまたは複数）の値（１つまたは複数）を処理プラットフォームに従って選択する手段を備え、それにより処理操作はこのプラットフォームの特性を反映する。
【０２９２】
一実施形態では、本システムはまた、少なくとも１つのパラメータを処理する手段を備え、それにより、パラメータ（１つまたは複数）の値（１つまたは複数）は、処理されるオブジェクトに依存する。
【０２９３】
一実施形態では、本システムは、加算、減算、乗算、相関表の適用、最小値、最大値、選択を含むグループに含まれる特有操作を実施する手段を備える。
【０２９４】
一実施形態では、本システムは、少なくとも１つの循環的連鎖ＣＣ１によって連鎖された計算ユニットを備え、この循環的連鎖ＣＣ１は、少なくとも１つの待ち行列も含む。本システムは、計算ユニットＵＣ１上で実施された特有操作ＩＳ５の結果を、この連鎖に従ってこの計算ユニットＵＣ１に続く計算ユニットＵＣ２または待ち行列に転送する手段を備える。
【０２９５】
一実施形態では、本システムは、転置、複製、およびサブサンプリングを含むグループに含まれる少なくとも１つの特有幾何学操作を実施する手段を備える。
【０２９６】
一実施形態では、本システムは、少なくとも１つの循環的連鎖によって連鎖された計算ユニットを備え、循環的連鎖は少なくとも１つの待ち行列を含む。
【０２９７】
一実施形態では、本システムは、少なくとも１つの循環的連鎖に従った連鎖された計算ユニットを備え、循環的連鎖は少なくとも１つの待ち行列も含み、本システムは、汎用操作のシーケンスおよびスクローリングモードに従って待ち行列のサイズおよび／またはレイテンシを決定する手段を備える。
【０２９８】
一実施形態では、本システムは、処理されるオブジェクトが画像であり、基本情報がこの画像のピクセルであるような手段を備える。
【０２９９】
一実施形態では、本システムは、処理プラットフォームが画像取込みおよび／またはレンダリングデバイスの一部であり、パラメータ（１つまたは複数）の値（１つまたは複数）が、画像取込みおよび／またはレンダリングデバイスの、光学機構および／またはセンサおよび／またはイメージャおよび／または電子機構および／またはソフトウェアの特性にリンクされるような手段を備える。
【０３００】
一実施形態では、本システムは、処理されるオブジェクトがディジタルオーディオ信号であり、基本情報がこの信号のオーディオサンプルであるような手段を備える。
【０３０１】
一実施形態では、本システムは、処理されるオブジェクトが数値メッシュであり、空間および時間情報である基本情報がメッシングの各点を特徴付けるような手段を備える。
【０３０２】
本発明の他の特徴および利点は、その実施形態のいくつかに関する非限定的な記述から明らかになるであろう。この記述は図によってサポートされる。
【発明を実施するための最良の形態】
【０３０３】
図３に示すデバイスは、画像２２を処理するようになっており、この画像は、少なくとも１つの数値で表されるピクセルのセットである。
【０３０４】
このデバイス中で、ディジタルデータ処理手段１０に汎用フォーマット化データ１２が提供される。この処理手段は、例えばコンパイラとすることができる。
【０３０５】
本発明による方法によって供給される汎用フォーマット化データは、第１および第２のデータ１４を含み、第１および第２のデータ１４は、汎用操作のシーケンスを記述し、また、これらの汎用操作に関係する論理ブロックの相対位置を提供する。この第１および第２のデータについては、図４の記述によって例示する。
【０３０６】
処理手段１０はまた、画像取込みまたはレンダリングデバイスなどの処理プラットフォーム２０の特性に従って選択または計算されたスクローリングモード２４を、入力上で受け取る。
【０３０７】
この汎用フォーマット化データ１２およびこれらのパラメータを使用して、処理手段１０は、処理プラットフォーム２０に特有フォーマット化データ１８を提供する。
【０３０８】
特有フォーマット化データは、プラットフォームのメモリにおけるピクセルの構成、ピクセルがプラットフォームによって処理される順序、さらにはプラットフォームによって実施される特有操作のグループ化に関するデータなど、種々のタイプのデータを含む。
【０３０９】
次いでプラットフォーム２０は、この特有フォーマット化データ１８を使用して、インバウンドで受け取った画像２２を処理する。
【０３１０】
したがって図３は、以下のような、本発明のいくつかの利点を例示する。
【０３１１】
−汎用フォーマット化データ１２を素早く修正または置換し、プラットフォームに最適化された特有フォーマット化データ１８に変換することができる。これにより、プラットフォームの市場リリースにかかる時間が短縮されることになる。
【０３１２】
−汎用フォーマット化データ１２を、いくつかのプラットフォームに最適化された特有フォーマット化データに素早く変換することができる。これによりまた、いくつかのプラットフォームの市場リリースにかかる時間が短縮されることになる。
【０３１３】
以下の表４および図４に、論理ブロックＢ１に適用される汎用操作のシーケンスの形で、汎用フォーマット化データの例を示す。このシーケンスは、３つの汎用操作を含む。表の列は、順番に以下の項目を示す。
【０３１４】
−シーケンスにおける操作のランク。
【０３１５】
−汎用操作の名前。
【０３１６】
−汎用操作の結果が書き込まれる論理ブロック（出力）。すなわち、オブジェクトが各操作の終わりに再構成された場合に、この結果が位置することになる場所。
【０３１７】
−汎用操作の第１の入力（入力１）。これは論理ブロックまたはパラメータとすることができる。
【０３１８】
−妥当な場合に、入力１における論理ブロックに関連して使用される論理ブロックの相対位置。
【０３１９】
−汎用操作の第２の入力（入力２）。これもまた論理ブロックまたはパラメータとすることができる。
【０３２０】
−妥当な場合に、入力２における論理ブロックに関連して使用される論理ブロックの相対位置。
【０３２１】
「相対位置」の列に位置する情報は、本発明による方法を使用して処理手段に提供される第２のデータ中に存在する情報である。この表では、この情報は、簡略化のために「左」および「右」の形で出ているが、実際は、上記の実施形態例で述べたように、汎用フォーマット化データ中で、（０；１）などの数値で、かつ／またはｆ（ｘ；ｙ）などの関数でコーディングすることもできる。
【０３２２】
一実施形態では、ある汎用操作は、オブジェクトの次元の１つに従った絶対位置で構成される論理ブロックを生成し、インダイレクションと呼ばれる別の汎用操作は、第３のブロックから、第２のブロックで示される変位および／またはスケール変更によってブロックを生成する。この場合、ブロックに対する汎用操作を使用してから、汎用インダイレクション操作を使用して相対変位および／または対応する相対スケール変更を実施して、相対位置および／または相対スケールを提供する関数、例えば０．５＊（ｘ−１００）を計算することができる。
【０３２３】
表４はコーディングの一例に過ぎず、第１のデータおよび第２のデータは様々な方式でコーディングすることができ、表フォーマットでも、しかし記号フォーマットやグラフフォーマットでも、あるいは他のどんなフォーマットでもコーディングすることができる。さらにこの例では、簡略化のために、データ型、オフセット、および飽和度に関する追加情報は示していない。
【０３２４】
【表２】
2009524854.tif 000004
この操作シーケンスで使用される第１の論理ブロックは、論理ブロックＢ１（５１）である。第１の汎用操作は、左にずれた論理ブロックＢ１（５１ｇ）と右にずれた論理ブロックＢ１（５１ｄ）との加算（５２）である。この加算の結果は、ブロックＢ２（５３）に記録される。すなわちＢ２＝Ｂ１ｌｅｆｔ＋Ｂ１ｒｉｇｈｔである。
【０３２５】
第２の操作（５４）は、表に関連してブロックＢ２（５３）を変形することである。したがってこの操作は、入力におけるブロックＢ２（５３）と、修正表を表すパラメータＰａｒａｍ１（５５）とを有する。この操作の結果は、ブロックＢ３（５６）に記録される。すなわちＢ３＝ＬＵＴ（Ｐａｒａｍ１，Ｂ２）である。
【０３２６】
このシーケンスにおける第３かつ最後の操作（５７）は、論理ブロックの乗算である。この操作は、論理ブロックＢ３（５６）および論理ブロックＢ１（５１）を有し、すなわち入力に対してＢ４＝Ｂ３＊Ｂ１である。
【０３２７】
したがって、論理ブロックＢ４（５８）は、汎用操作のシーケンスの終わりに得られるブロックである。
【０３２８】
表１の例における汎用フォーマット化データは、プラットフォームと、オブジェクトのサブオブジェクトへの分解と、オブジェクトの基本情報のスクローリングモードと、基本情報がプラットフォーム中で処理されることになる順序とから、ならびに記憶された構成から独立している。実際、表１の汎用フォーマット化データは、様々な方式で特有フォーマット化データやプラットフォーム用コードに変換することができ、これは例えば、限定しないが以下に挙げる変換に従って行うことができる。
【０３２９】
第１の変換例は、メモリおよび計算時間の点で最適ではないが、サブオブジェクトへの分解を伴わない単純な変換を例示する。
【０３３０】
左側と右側の２つの列を除いた、入力オブジェクトのピクセルＢＰ１（論理ブロックＢ１に対応する）のそれぞれにつき（ピクセルは左から右へ、次いで上から下へスクロールされる）、
現ピクセルの左のピクセルと右のピクセルとを加算し、結果を物理ブロックＢＰ２（論理ブロックＢ２に対応する）に記憶する。
【０３３１】
左から右へ、次いで上から下へスクロールされるＢＰ２の各ピクセルにつき、
現ピクセルに表を適用し、結果を物理ブロックＢＰ３（論理ブロックＢ３に対応する）に記憶する。
【０３３２】
左から右へ、次いで上から下へスクロールされるＢＰ３の各ピクセルにつき、
現ピクセルにＢＰ１の対応ピクセルを乗算し、結果を物理出力ブロックＢＰ４（論理ブロックＢ４に対応する）に記憶する。
【０３３３】
第２の変換例は、汎用フォーマット化データを変更することなくサイズおよび使用メモリを低減できることを示す。実際、第１の例では、画像に近いサイズの４つの物理ブロックが使用される。ＢＰ２、ＢＰ３、およびＢＰ４に同じメモリを使用して、２つの物理ブロックのみを使用することができる。以下の変換が得られる。
【０３３４】
左側と右側の２つの列を除いた、入力オブジェクトのピクセルＢＰ１（論理ブロックＢ１に対応する）のそれぞれにつき（ピクセルは左から右へ、次いで上から下へスクロールされる）、
現ピクセルの左のピクセルと右のピクセルとを加算し、結果を物理ブロックＢＰ２（論理ブロックＢ２に対応する）に記憶する。
【０３３５】
左から右へ、次いで上から下へスクロールされるＢＰ２の各ピクセルにつき、
現ピクセルに表を適用し、結果を物理ブロックＢＰ２（今や論理ブロックＢ３に対応する）に記憶する。
【０３３６】
左から右へ、次いで上から下へスクロールされるＢＰ２の各ピクセルにつき、
現ピクセルに対応ＢＰ１ピクセルを乗算し、結果を物理出力ブロックＢＰ２（今や論理ブロックＢ４に対応する）に記憶する。
【０３３７】
第３の変換例は、汎用フォーマット化データを変更することなく計算時間を短縮できることを示す。実際、第２の例では、画像に近いサイズの２つの物理ブロックが使用されるが、物理ブロックＢＰ２は３回にわたって完全に書き込まれ、物理ブロックＢＰ１は２回にわたって完全に読み取られ、物理ブロックＢＰ２は２回にわたって完全に読み取られる。これを、異なるスクローリングモードおよび異なるブロックを用いて、１回の読取りおよび１回の書込みだけに制限することができる。これにより、必要とされる操作の数が減少するが、メモリアクセス要件もまた減少する。以下の変換が得られる。
【０３３８】
左側と右側の２つの列を除いた、入力オブジェクトのピクセルＢＰ１（論理ブロックＢ１に対応する）のそれぞれにつき（ピクセルは左から右へ、次いで上から下へスクロールされる）、
以下の特有操作シーケンスを実施する。現ピクセルの左のピクセルと右のピクセルとを加算し、結果に表を適用し、表出力に現ピクセルを乗算し、結果を現在の物理出力ブロックＢＰ２（論理ブロックＢ４に対応する）に記憶する。
【０３３９】
第４の例は、より特有にキャッシュ付きスカラプロセッサに適応されているが、この第４の例では、結果は入力と同じメモリゾーンに書き込まれる。これにより、メモリサイズがより一層縮小され、メモリアクセスがローカルになる。このことは、キャッシュメモリまたはページドメモリの場合に非常に有益である。したがって、以下の変換が得られる。
【０３４０】
左側と右側の２つの列を除いた、入力オブジェクトのピクセルＢＰ１（論理ブロックＢ１に対応する）のそれぞれにつき（ピクセルは左から右へ、次いで上から下へスクロールされる）、
以下の特有操作シーケンスを実施する。
【０３４１】
現ピクセルの左のピクセルと右のピクセルとを加算し、結果に表を適用し、表出力に現ピクセルを乗算し、結果を、現在の物理出力ブロックＢＰ１に、現ピクセルの左のピクセルに代えて記憶する（この左ピクセルは、次の反復のための左ピクセルになる現ピクセルとは反対に、もはや使用されない）。ＢＰ１は、部分的に論理ブロックＢ４に対応し、部分的に論理ブロックＢ１に対応する）。
【０３４２】
第５の変換例は、小さい高速アクセスメモリおよび大きい低速メモリを伴う信号処理プロセッサに特に適応されており、各サブオブジェクトは、例えば３２×３２の矩形、または高速アクセスメモリの使用を最大限にする他の任意の値の矩形であり、矩形は隣接する。したがって、以下の変換が得られる。
【０３４３】
各サブオブジェクトにつき（サブオブジェクトは左から右へ、次いで上から下へスクロールされる）、
次の物理入力ブロックを、ＤＭＡ（「直接メモリアクセス」）機構を介して低速メモリから高速アクセスメモリに転送することを開始する。この物理入力ブロックは、左に追加の１列分、右に追加の１列分拡張されて３２×３４となる次のサブオブジェクトに対応する。
【０３４４】
前の物理出力ブロックを、ＤＭＡ（「直接メモリアクセス」）機構を介して高速アクセスメモリから低速メモリに転送することを開始する。
【０３４５】
左および右への追加の列で拡張されて３２×３４となり、前の反復のＤＭＡの終わりに得られる現サブオブジェクトに対応する物理ブロックを取る。
【０３４６】
左側と右側の２つの列を除いた、物理入力ブロック（論理ブロックＢ１に対応する）の各ピクセル（左から右へ、次いで上から下へスクロールされる）につき、
以下の特有操作シーケンスを実施する。現ピクセルの左のピクセルと右のピクセルとを加算し、結果に表を適用し、表出力に現ピクセルを乗算し、結果を現在の物理出力ブロック（論理ブロックＢ４に対応する）に記憶する。
【０３４７】
第６の変換例は、１つの同じ計算をベクトルの種々のピクセルに適用することのできるベクトル信号プロセッサに特に適応されており、各サブオブジェクトは、例えば６４個の水平ピクセルの矩形、またはプラットフォームが処理および記憶できるベクトルのサイズと等しい他の任意の値の矩形である。ベクトルは１度に１つずつ処理されるので、この変換はどんなメモリも必要としない。したがって、以下の変換が得られる。
【０３４８】
左の２つの列を除いた、入力オブジェクトＢＰ１（論理ブロックＢ１に対応する）の各サブオブジェクトＶ１につき（サブオブジェクトは左から右へ、次いで上から下へスクロールされる）、以下の特有操作シーケンスを実施する。
【０３４９】
各ラインの開始で、ラインの２つの左側ピクセルを右に含むベクトルＶ０を生み出す。
【０３５０】
Ｖ０およびＶ１から、Ｖ０の２つの右側ピクセルと、Ｖ０の２つの右側ピクセルを除いたＶ１の２つの左側ピクセルとに対応するベクトルＶ２を抽出する。
【０３５１】
Ｖ１とＶ２とを加算してＶ２を得て、Ｖ２の各ピクセルに表を適用してＶ２を得る。Ｖ０およびＶ１から、Ｖ０の右側ピクセルに対応するベクトルＶ３を抽出する。以下の反復について、Ｖ１をＶ０にコピーする。すなわち、Ｖ２にＶ３を乗算してＶ２を得て、結果Ｖ２を現在の出力物理ブロックに記憶する。
【０３５２】
上記の変換例は、同じ汎用フォーマット化データを使用して、極めて多様なプラットフォームに適応されたメモリ構造、ループ、および並列処理の度合いによっていくつかの方式で変換することが可能であることを示す。特に、
−１つの単一ループのみを使用して、コードのサイズを縮小することができる。かつ／または、
−メモリのサイズを、例では０に縮小することができるが、垂直フィルタのあるより一般的な場合では、垂直フィルタの入力データに対して計算を繰り返す必要を避けるために、いくつかのメモリラインが必要とされる。かつ／または、
−とりわけループをグループ化することによって、必要とされる操作の数を削減することができる。かつ／または、
−どんなサイズのベクトルにも適応することができる。かつ／または、
−どんなメモリアーキテクチャにも適応することができる。
【０３５３】
第３、第４、第５、および第６の例は、汎用操作のシーケンスを１つの特有操作シーケンスに変換する例である。
【０３５４】
簡略化のために、これらの例は、入力画像よりも小さい画像を生成する。必要なら、各ラインの最初と最後にコードを追加してエッジピクセルを複製することによって、入力画像と同一サイズの出力画像を容易に得ることができる。
【０３５５】
図５に、本発明による方法を使用する処理手段の出力における特有フォーマット化データの構造を示す。特有フォーマット化データは、処理手段により、処理手段に提供された汎用フォーマット化データ３２を使用して、かつこの処理手段によって決定されたスクローリングモード３４を使用して計算される。汎用フォーマット化データは、処理手段によって実施される少なくとも１つの汎用操作または操作シーケンスを記述するデータ３８を含む第１のデータ３６を含む。汎用フォーマット化データはまた、少なくとも２つの論理ブロックを使用する汎用操作に関して、相互との関係における論理ブロックの位置および相対スケールを参照する第２のデータ４０も含む。この汎用フォーマット化データおよびスクローリングモード３４を使用して、処理手段は、特有操作に関係するデータ４２およびループに関係するデータ４４を提供する。このデータ４２および４４は、特有フォーマット化データ３０の一部である。
【０３５６】
次に、本発明による方法によって決定することのできるスクローリングモードのいくつかの例について述べる。これらのスクローリングモードはそれぞれ、図６〜８のうちの１つに示すアーキテクチャのプラットフォーム中で使用されるようになっている。
【０３５７】
図６に示す第１の例では、処理プラットフォームは、１つの次元で連鎖された５つのプロセッサを備える。これは、プロセッサＰｒｏｃＡから出力された計算結果がプロセッサＰｒｏｃＢへの入力に使用され、以下同様となることを意味する。プロセッサＰｒｏｃＥによって出力された計算結果は、プロセッサＰｒｏｃＡの入力に適用される。
【０３５８】
各プロセッサには、ＭｅｍＡ〜ＭｅｍＥとして言及する、限られた容量のメモリが備わる。このメモリユニットは、プロセッサによって実施される特有操作に使用されるパラメータ値、あるいは、プロセッサによってすぐに再使用されるよう定められた基本情報または操作からの結果を記憶するようになっている。
【０３５９】
この第１の例では、処理操作は、ＯＰ１〜ＯＰ８として言及する８つの操作のシーケンスを、オブジェクトを構成する基本情報に適用することにある。
【０３６０】
オブジェクトは、処理されるために、Ｎ個の基本情報のサブオブジェクトに分解されなければならない。ＮはＱ（Ｑ＝５、計算ユニットの数量）の倍数でなければならないが、このＮは、本発明による方法によって、とりわけプラットフォームのメモリ容量に従って、プラットフォームの上流で決定される。この例では、Ｎ＝５である。
【０３６１】
さらに、特有操作の規則的なシーケンシングを実施するために、本発明による方法は、効果なしの特有操作ＯＰ９およびＯＰ１０を生み出し、それにより、各サブオブジェクトに対して実施される特有操作の数量が、利用可能なプロセッサの数量の倍数になるようにする。
【０３６２】
具体的な操作タイプに従って、各操作は、プロセッサによって実施されるように割り当てられる。ここでは、
−プロセッサＡはＯＰ１およびＯＰ６を実施する。
【０３６３】
−プロセッサＢはＯＰ２およびＯＰ７を実施する。
【０３６４】
−プロセッサＣはＯＰ３およびＯＰ８を実施する。
【０３６５】
−プロセッサＤはＯＰ４およびＯＰ９を実施する。
【０３６６】
−プロセッサＥはＯＰ５およびＯＰ１０を実施する。
【０３６７】
各プロセッサは、割り当てられた特有操作に対応する命令のセット（ＩｎｓＡ〜ＩｎｓＥ）を実行する。限られた容量のメモリに記憶されたパラメータの値もまた、この割当てに依存する。例えば、ＯＰ１が、２を乗算することである場合、ＭｅｍＡメモリは数字２を含むことになる。
【０３６８】
これらの割当てが行われると、以下の表Ｉによって述べるシーケンシングスケジュールに従って操作が行われる。
【０３６９】
この表では、プロセス進行時間をＴ１、Ｔ２、．．．．．．Ｔ１３として示す。
【０３７０】
【表３】
2009524854.tif 000005
【０３７１】
各ラインは、１０個の特有操作ＯＰ１〜ＯＰ１０のうちの１つを表す。各列は、基本情報ＩＥ１〜ＩＥ５のうちの１つを表し、各基本情報は、処理されるサブオブジェクトを構成する。このＩＥ１〜ＩＥ５の表記は形式的なものであり、必ずしも空間的または時間的現実に対応するとは限らない。実際、ある種の特有操作は基本情報の変位を生成する。したがって、例えば特有操作ＯＰ１が、左にずらすことにある場合、特有操作ＯＰ２によって処理される情報ＩＥ１は、特有操作ＯＰ１が情報ＩＥ１に適用された結果ではなく、この特有操作ＯＰ１が情報ＩＥ２に適用された結果であることがある。
【０３７２】
この表中の各枠は、特有操作を実施するプロセッサの名前、ならびにこの特有操作が処理操作中に実施される時間を含む。明白なことだが、この表は、処理操作の一部を表すに過ぎない。ここでは、必要とされる特有操作からのすべての結果が、処理操作においてすでに計算されていると仮定する。
【０３７３】
したがって、時間Ｔ１で、ＰｒｏｃＡプロセッサがサブオブジェクト１の第１の情報ＩＥ１に対して操作ＯＰ１を実施するのが示されている。この時点で、他のプロセッサは、この表に示されていない他の操作を実施している。
【０３７４】
時間Ｔ５で、各プロセッサがサブオブジェクト１の情報の１つに対して操作を実施するのが示されている。
【０３７５】
プロセッサがサブオブジェクトのすべての基本情報に対して特有操作を実施したとき、プロセッサは、それに割り当てられた次の操作に進む。したがって、ＰｒｏｃＡプロセッサは、Ｔ６から操作ＯＰ６を実施する。
【０３７６】
プロセッサがそれに割り当てられたすべての特有操作を実施すると、次のサブオブジェクトが処理される。したがって、２つの異なるサブオブジェクト（サブオブジェクト１とサブオブジェクト２）が、プラットフォーム中で同時に処理される。
【０３７７】
この表では、各特有操作がＮ回（ここではＮ＝５）実施されることがはっきりと示されている。
【０３７８】
このシーケンシングは、プロセッサの次元の１つにおける循環的連鎖によって得られる。したがって、基本情報は、ある計算ユニットから他の計算ユニットに移行することができる。例えば、基本情報ＩＥ１は、すべてのプロセッサの中を進んで特有操作ＯＰ１〜ＯＰ５を「経験し」、次いで、ＰｒｏｃＡプロセッサに戻って再び循環を開始し、操作ＯＰ６〜ＯＰ７を「経験する」。（注：上で説明したように、最初の基本情報ＩＥ１は、必ずしもすべてのステップでＩＥ１情報になるとは限らない。）このように本発明は、シストリックアーキテクチャに適応された特有フォーマット化データの生成を可能にすることがわかり、これはとりわけ、パラメータの値をローカルに記憶すること、およびデータパスをケーブルできることの利点を有する。正確なシーケンシングは、少なくとも部分的に、プラットフォーム上のコンパイラによって実施できることに留意することができる。この場合、特有フォーマット化データは、時間における絶対的なシーケンシングを含むのではなく、シーケンシングに対する制限を含む。
【０３７９】
図７に示す第２の例では、プラットフォームは、共通のメモリにリンクされた５つのプロセッサを備える。このような構造は古典的である。すなわち、ベクトル信号プロセッサ（「単一命令複数データ」つまりＳＩＭＤタイプのもの）の構造に対応する。
【０３８０】
この例では、各プロセッサは、相関表Ｔなどのパラメータを含むことのできる小さいメモリに、個別にリンクされる。この構造では、各プロセッサがすべての特有操作を実施する。したがって、すべてのプロセッサは同じ命令セットＩＮＳを受け取る。
【０３８１】
この第２の例では、操作のうちの１つが、表を使用して１つまたは複数の基本情報を修正することにある場合について考える。上記からわかるように、各プロセッサはそれ自体の表へのアクセスを有し、すべての表は同一である。一代替形態では、各メモリは一群のプロセッサによって共有される。一代替形態では、一群のプロセッサは同じメモリを共有し、同じパラメータを同時に得る。この場合、例えば多項式を計算するための、１つまたは複数のパラメータを使用した計算によって、相関表を適用し実施しなければならない。
【０３８２】
これは並列操作を伴う。すなわち、プロセスの各時間で、すべてのプロセッサが、同じ操作を異なる基本情報に対して実施する。このプロセスを以下の表ＩＩによって例示する。
【０３８３】
この表では、プロセス進行時間をＴ１、Ｔ２、．．．．．．Ｔ１０として示す。
【０３８４】
【表４】
2009524854.tif 000006
この表では、所与の時間Ｔｉで、特有操作ＯＰｉが、各プロセッサＰｒｏｃＡ〜ＰｒｏｃＥによって基本情報ＩＥ１〜ＩＥ５に対してそれぞれ実施されることがわかる。
【０３８５】
１０回目のインクリメントの後には、特有操作のシーケンス中の各特有操作が、サブオブジェクトの各基本情報に対して実施されていることに気付くことができる。
【０３８６】
この場合、特有操作はすべてのプロセッサによって並列で実施されるので、効果なしの操作によって特有操作のシーケンスを完全なものにする必要はないことが明らかである。このようにして、操作ＯＰ８が完了すると、次のサブオブジェクトを構成する基本情報に操作ＯＰ１を適用することによって、プロセスを繰り返すことができる。
【０３８７】
正確なシーケンシングは、少なくとも部分的に、プラットフォーム上のコンパイラによって実施できることに留意することができる。この場合、特有フォーマット化データは、時間における絶対的なシーケンシングを含むのではなく、シーケンシングに対する制限を含む。
【０３８８】
図８に示す第３の例では、プラットフォームは、とりわけＰＣタイプのコンピュータ内に存在するベクトル信号プロセッサと同様の、共通のメモリにリンクされた５つのプロセッサで構成されるベクトル信号プロセッサを備える。またこれらのプロセッサはすべて、パラメータ、およびとりわけ相関表を含むことのできる、小さいメモリにリンクされる。この構造では、各プロセッサがすべての特有操作を実施する。したがって、すべてのプロセッサは、実施されるすべての特有操作を記述したデータを含む同じＩＮＳ命令セットを受け取る。
【０３８９】
この例では、２つの特有操作のシーケンスが、表を使用して１つまたは複数の基本情報を修正することにある場合について考える。ここで、表は１つの単一場所にのみ存在し、したがってプロセッサはこれらの表を共有しなければならない。
【０３９０】
すべてのプロセッサはサブオブジェクトの異なる基本情報に対して１つの同じ操作を同時に実施するので、プロセスの始めには、並列操作が実施されている。このプロセスを以下の表ＩＩＩによって例示する。
【０３９１】
この表では、プロセス進行時間をＴ１、Ｔ２、．．．．．．Ｔ１８として示す。
【０３９２】
【表５】
2009524854.tif 000007
この表の最初の３つのラインでは、所与の時間Ｔｉで、特有操作ＯＰｉが、各プロセッサＰｒｏｃＡ〜ＰｒｏｃＥによって基本情報ＩＥ１〜ＩＥ５に対してそれぞれ実施されることがわかる。
【０３９３】
表を使用する操作ＯＰ４に達したとき、アクセス問題に遭遇する。というのは、すべてのプロセッサが同時にこの表にアクセスすることはできないからである。したがって、プロセッサは、「自分の順番を待つ」こと、すなわち前のプロセッサが表の使用を終えて自分が表を使用できるようになるまで待機することを余儀なくされる。このため、操作ＯＰ４は、時間Ｔ４〜Ｔ８でプロセッサＰｒｏｃＡ〜ＰｒｏｃＥによってそれぞれ実施される。操作ＯＰ５もまた表を使用すると仮定すると、同様にして以下の状況が生じることになる。すなわち、操作ＯＰ５は、時間Ｔ９〜Ｔ１３でプロセッサＰｒｏｃＡ〜ＰｒｏｃＥによってそれぞれ実施される。
【０３９４】
これらの操作が実施されると、プロセスは通常どおり継続することができる。
【０３９５】
このデバイスでは、いくつかの時間にいくつかのプロセッサが非アクティブであるため、得られる結果は、他の例よりも計算時間の点で効率が劣る。しかし、メモリサイズは縮小される。
【０３９６】
正確なシーケンシングは、少なくとも部分的に、プラットフォーム上のコンパイラによって実施できることに留意することができる。この場合、特有フォーマット化データは、時間における絶対的なシーケンシングを含むのではなく、シーケンシングに対する制限を含む。
【０３９７】
図９ａに、サブオブジェクトの次元の１つに従ったいくつかの循環的連鎖を含むプラットフォームの一実施形態例を示す。この第１の例では、オブジェクトは２つの次元を有する画像であり、サブオブジェクトは４つの基本情報を含み、プラットフォームは、水平に４つのプロセッサと垂直に１つのプロセッサとの矩形に対応する４＊１プロセッサのグリッドに従って配置された、４つのプロセッサを備える。これらのプロセッサを、左から右にＰ１、Ｐ２、Ｐ３、およびＰ４と呼ぶ。本方法はまた、この例では２つの待ち行列も適用する。
【０３９８】
−水平待ち行列ＦＨａが、入力でＰ４の出力に接続され、出力でプロセッサＰ１の入力に接続される。Ｐ１の出力はＰ２の入力に接続される。Ｐ２の出力はＰ３の入力に接続され、Ｐ３の出力はＰ４の入力に接続される。
【０３９９】
−垂直待ち行列ＦＶａが、入力でＰ１、Ｐ２、Ｐ３、およびＰ４の出力に接続され、出力でプロセッサＰ１、Ｐ２、Ｐ３、およびＰ４の入力に接続される。
【０４００】
−特有操作のシーケンスは、４つのプロセッサを１００％使用しながら、任意の数量の水平フィルタＦＨを適用することができる。例えば、特有操作ＯＳ１の結果と、左における同じ特有操作ＯＳ１の結果との加算で構成されるフィルタの計算を実施する特有操作ＯＳ２の場合、プロセッサＰ４からの操作ＯＳ１の結果は、待ち行列ＦＨａに配置され、後続のサブオブジェクトの計算中にＰ１上でＯＳ２によって使用されることになる。プロセッサＰ３からの操作ＯＳ１の結果は、Ｐ４上のＯＳ１の結果と共にＰ４上でＯＳ２によって使用されるように、プロセッサＰ４に転送される。プロセッサＰ２からの操作ＯＳ１の結果は、Ｐ３上のＯＳ１の結果と共にＰ３上でＯＳ２によって使用されるように、Ｐ３に転送される。プロセッサＰ１からの操作ＯＳ１の結果は、Ｐ２上のＯＳ１の結果と共にＰ２上でＯＳ２によって使用されるように、プロセッサＰ２に転送される。前のサブオブジェクトの計算中にＰ４によって実施された操作ＯＳ１の結果は、待ち行列ＦＨａから出力され、Ｐ１上のＯＳ１の結果と共にＰ１上でＯＳ２によって使用されるように、プロセッサＰ１に転送される。このシーケンスに関する別の操作ＯＳ３が別の水平フィルタを適用することができ、待ち行列を使用して正しい順序でデータが取り出される。
【０４０１】
−必要に応じて変更を加えて、特有操作のシーケンスは、４つのプロセッサを１００％使用しながら、任意の数量の垂直フィルタＦＶを適用することができる。
【０４０２】
−最後に、特有操作のシーケンスは、４つのプロセッサを１００％使用しながら、水平と垂直の両方の次元に従って分離不可能な任意の数量のフィルタＦＶＨを適用することができる。例えば、１つの特有操作ＯＳ４からの４つの結果に適用される非分離型３×３フィルタは、ＦＶａを２回プロンプトし、次いでＦＨａを６回プロンプトして、前に計算された４つのＯＳ４結果を８セット入手し、現サブオブジェクトからのＯＳ４結果のセットと結合されるようにすることができる。例えば、これらの非分離型フィルタは、垂直および／または水平フィルタと共に使用することができ、この２つの待ち行列は、データを正しい順序で取り出せるようにする。
【０４０３】
２つのフィルタが適用されるとき、特有操作のシーケンスはしたがって、シーケンスとは別個の少なくとも２つの特有操作がそれぞれ、そのＮ回の適用中に少なくとも１回、別のサブオブジェクトの処理に使用される結果を生成するようなシーケンスである。別のサブオブジェクトの処理に使用される結果は、待ち行列（１つまたは複数）を介して移行する。
【０４０４】
同様にして、図９ｂに第２の例を示すが、この例では、オブジェクトは２つの次元を有する画像であり、サブオブジェクトは４つの基本情報を含み、プラットフォームは、水平に２つのプロセッサと垂直に２つのプロセッサとの矩形に対応する２＊２プロセッサのグリッドに従って配置された、４つのプロセッサを備える。これらのプロセッサを、左から右に、上のラインにあるものはＰ４およびＰ５、下のラインにあるものはＰ６およびＰ７と呼ぶ。本方法はまた、この例では２つの待ち行列も使用する。
【０４０５】
−水平待ち行列ＦＨｂが、入力でＰ３およびＰ６の出力に接続され、出力でＰ１およびＰ４の入力に接続される。
【０４０６】
−垂直待ち行列ＦＶｂが、入力でＰ４およびＰ５の出力に接続され、出力でＰ６およびＰ７プロセッサの入力に接続される。図９ａの例でもまた、特有操作のシーケンスは、４つのプロセッサを１００％使用しながら、任意の数量の垂直および／または水平および／または非分離型フィルタを適用することができる。
【０４０７】
図９ｃに示す第３の例では、プラットフォームは、水平待ち行列ＦＨｃと垂直待ち行列ＦＶｃとに接続された単一のプロセッサＰ８を備える。この２つの待ち行列は、後で再使用されることになっている特有操作からの結果を記憶するためにプロセッサが使用することができる。
【０４０８】
図９ａの例でもまた、特有操作のシーケンスは、プロセッサを１００％使用しながら、任意の数量の垂直および／または水平および／または非分離型フィルタを適用することができる。
【図面の簡単な説明】
【０４０９】
【図１ａ】本発明による、画像をサブオブジェクトに分解する例を示す図である。
【図１ｂ】本発明による、画像をサブオブジェクトに分解する例を示す図である。
【図１ｃ】本発明による、画像をサブオブジェクトに分解する例を示す図である。
【図１ｄ】本発明による、画像をサブオブジェクトに分解する例を示す図である。
【図１ｅ】本発明による、画像をサブオブジェクトに分解する例を示す図である。
【図１ｆ】本発明による、画像をサブオブジェクトに分解する例を示す図である。
【図２】いくつかのサブ処理操作のシーケンシングの例を示す図である。
【図３】本発明による方法を使用するデバイスを示す図である。
【図４】いくつかの論理ブロックと１つのパラメータとに適用される汎用操作のシーケンスの例を示す図である。
【図５】本発明による方法によって提供される特有フォーマット化データの構造を示す図である。
【図６】本発明による方法によって提供される特有フォーマット化データを受け取ることのできるプラットフォームの種々のアーキテクチャを示す図である。
【図７】本発明による方法によって提供される特有フォーマット化データを受け取ることのできるプラットフォームの種々のアーキテクチャを示す図である。
【図８】本発明による方法によって提供される特有フォーマット化データを受け取ることのできるプラットフォームの種々のアーキテクチャを示す図である。
【図９ａ】本発明による方法によって提供される特有フォーマット化データを受け取ることのできるプラットフォーム中のプロセッサの連鎖の例を示す図である。
【図９ｂ】本発明による方法によって提供される特有フォーマット化データを受け取ることのできるプラットフォーム中のプロセッサの連鎖の例を示す図である。
【図９ｃ】本発明による方法によって提供される特有フォーマット化データを受け取ることのできるプラットフォーム中のプロセッサの連鎖の例を示す図である。
【図１ａ】
2009524854.tif 000008
【図１ｂ】
2009524854.tif 000009
【図１ｃ】
2009524854.tif 000010
【図１ｄ】
2009524854.tif 000011
【図１ｅ】
2009524854.tif 000012
【図１ｆ】
2009524854.tif 000013
【図２】
2009524854.tif 000014
【図３】
2009524854.tif 000015
【図４】
2009524854.tif 000016
【図５】
2009524854.tif 000017
【図６】
2009524854.tif 000018
【図７】
2009524854.tif 000019
【図８】
2009524854.tif 000020
【図９ａ】
2009524854.tif 000021
【図９ｂ】
2009524854.tif 000022
【図９ｃ】
2009524854.tif 000023
【手続補正書】
【提出日】平成19年10月12日(2007.10.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
Ｑ個のプロセッサと少なくとも１つのメモリとを備える所定のプラットフォーム（２０）に特有フォーマット化データ（１８）を直接的または間接的に提供することに鑑みて、どんなループもない汎用操作のシーケンスを記述する第１のデータ（１４）を含む汎用フォーマット化データ（１２）を処理する方法であって、前記プラットフォームは、同じタイプの基本情報で構成されたオブジェクト（２２）を前記特有フォーマット化データ（１８）に従って処理するようになっており、各基本情報は少なくとも１つの数値で表され、
−前記汎用操作のシーケンスを前記プラットフォームに従って特有操作のシーケンスに変換するステップと、
−前記プラットフォームのアーキテクチャおよび前記オブジェクトのトポロジに従って、かつ第１のデータから独立して、処理操作に必要とされるループのセットを決定するステップと、
−前記特有操作のシーケンスとこのように決定された前記ループとを含む特有フォーマット化データを計算し、コードサイズおよび／またはメモリサイズおよび／または計算時間の点で前記プラットフォームに最適化された方式で、汎用フォーマット化データに準拠する前記オブジェクトの処理を直接的または間接的に可能にするステップとを含む方法。
【請求項２】
前記プラットフォーム（２２）のアーキテクチャおよび前記オブジェクトのトポロジに従って、かつ第１のデータから独立して、前記プラットフォーム中の基本情報に対するスクローリングモード（２４）を決定するステップをさらに含み、前記スクローリングモードの決定は、
−基本情報をサブオブジェクトにグループ化することであって、各サブオブジェクトは前記プラットフォームに従って決定される数量Ｎの基本情報を含み、前記プラットフォーム中での前記処理はサブ処理操作を周期的に開始することにあり、前記サブ処理操作は前記特有操作のシーケンスを前記サブオブジェクトの１つに適用することにあることと、
−前記プラットフォームに従って決定される、前記サブオブジェクトの形およびオーバーレイと、
−前記プラットフォームに従って決定される、サブオブジェクトの処理順序との選択および／または計算を含み、前記処理操作に必要とされるループのセットを決定する前記ステップおよび／または前記特有操作のシーケンスを計算する前記ステップは、前記スクローリングモードを反映する、請求項１に記載の方法。
【請求項３】
スクローリングモードの決定は、前記特有操作のシーケンスのうち、どの特有操作（１つまたは複数）が各プロセッサによって実施されるかを決定するステップを含み、各特有操作は各サブオブジェクトに少なくともＮ回適用され、各特有操作は、そのＮ回の適用中に、それぞれ少なくとも１回、サブオブジェクトの基本情報を直接的および／または間接的に適用して、ちょうどＮ個の結果を生成し、さらに、このように決定された情報を前記特有フォーマット化データに加えるステップを含む、請求項２に記載の方法。
【請求項４】
スクローリングモードの決定は、周期の相対時間ごとに、前記特有操作のシーケンスのうち、どの特有操作（１つまたは複数）が各プロセッサによって実施されるかを決定するステップを含み、各特有操作は各サブオブジェクトに少なくともＮ回適用され、各特有操作は、そのＮ回の適用中に、それぞれ少なくとも１回、サブオブジェクトの基本情報を直接的および／または間接的に適用して、ちょうどＮ個の結果を生成し、さらに、このように決定された情報を前記特有フォーマット化データに加えるステップを含む、請求項２または３に記載の方法。
【請求項５】
前記汎用操作のシーケンスは、論理ブロックと呼ばれる少なくとも１つの基本情報セットに適用され、前記汎用フォーマット化データはまた、相互との関係における論理ブロックの相対位置および／または相対スケール（とりわけ空間的および／または時間的）を参照する、少なくとも２つの論理ブロックを使用する汎用操作に関する第２のデータも含み、各特有操作が適用される前記基本情報および／または特有操作からの結果は第２のデータに依存し、相互との関係における論理ブロックの少なくとも１つの相対位置がヌルでない場合は、少なくとも１つの特有操作は別のサブオブジェクトの少なくとも１つの基本情報を直接的または間接的に適用する、前記請求項のうちの一項に記載の方法。
【請求項６】
別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の一部を第２のデータに従って決定するステップを含む、請求項５に記載の方法。
【請求項７】
別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果を、第２のデータおよび／または前記スクローリングモードに従ってメモリ中に共にグループ化するステップをさらに含む、請求項２から４のうちの一項および請求項６から７のうちの一項に記載の方法。
【請求項８】
前記特有操作は少なくとも１つの循環的連鎖に従って連鎖された計算ユニットによって実施され、さらに、各特有操作につき、前記特有操作の結果を循環的連鎖に従って送出すべきかどうかを第２のデータに従って判定するステップを含み、さらに、妥当な場合に、どの循環的連鎖を使用して前記特有操作の結果を送出するかを、第２のデータおよび前記スクローリングモードに従って決定するステップを含む、請求項２から４のうちの一項および請求項５から７のうちの一項に記載の方法。
【請求項９】
特有フォーマット化データは、別のサブ処理操作のために後続の特有操作に必要とされる特有操作からの結果の少なくとも一部を前記プラットフォームのメモリ中に保持することを可能にする特有操作を含む、請求項２から８のうちの一項に記載の方法。
【請求項１０】
別のサブオブジェクトのサブ処理中に使用される特有操作からの結果を、前記サブオブジェクトとの関係における前記別のサブオブジェクトの相対位置に従って、メモリに共にグループ化して記憶するステップをさらに含む、請求項２から９のうちの一項に記載の方法。
【請求項１１】
特有フォーマット化データは、特有操作からの結果が前記プラットフォーム中で複数回にわたって計算されるような特有操作を含み、それにより、とりわけ前記サブオブジェクトが前記サブジェクトの次元の少なくとも１つでオーバーレイされている場合に、特有操作の実行時にどんな情報も損失しない、請求項２から１３のうちの一項に記載の方法。
【請求項１２】
特有フォーマット化データは、特有操作からの結果および／または記憶された基本情報の少なくとも一部に前記プラットフォームがアクセスできるようにするためのアドレス指定情報を含み、前記アドレス指定情報は「ベースアドレス＋オフセット」または「（ベースアドレス＋オフセット）ｍｏｄ（前記プラットフォーム中に位置するバッファメモリのサイズ）」フォーマットであり、前記オフセットは、各サブ処理操作で、１つの同じ特有操作からの結果に対して一定である、請求項２から１１のうちの一項に記載の方法。
【請求項１３】
前記処理は、前記スクローリングモードに従って、少なくとも１つのループと、前記ループ（１つまたは複数）の反復の数量と、複数のループがあるときにはループの埋込みとの計算を含む、請求項２から１１２のうちの一項に記載の方法。
【請求項１４】
少なくとも１つのパラメータも処理し、前記特有操作によって使用される前記パラメータ（１つまたは複数）の値（１つまたは複数）は、サブオブジェクトの絶対位置に依存し、かつ／あるいは、前記特有操作において直接的または間接的に適用される前記基本情報の、サブオブジェクトにおける絶対位置に依存する、請求項２から１３のうちの一項に記載の方法。
【請求項１５】
少なくとも１つのパラメータも処理し、
−特有フォーマット化データは、前記パラメータ（１つまたは複数）の値（１つまたは複数）、および／あるいは、前記パラメータ（１つまたは複数）の値（１つまたは複数）に関する計算コードを含み、および／あるいは、
−前記パラメータ（１つまたは複数）の値（１つまたは複数）は前記処理プラットフォームに従って選択され、それにより前記処理操作は前記プラットフォームの特性を反映し、および／あるいは、
−パラメータ（１つまたは複数）の値（１つまたは複数）は、処理される前記オブジェクトに依存し、および／あるいは、
−場合によっては、前記処理プラットフォームは画像取込みおよび／またはレンダリングデバイスの一部であり、前記パラメータ（１つまたは複数）の値（１つまたは複数）は、前記画像取込みおよび／または画像レンダリングデバイスの、光学機構および／またはセンサおよび／またはイメージャおよび／または電子機構および／またはソフトウェアの特性にリンクされる、前記請求項のうちの一項に記載の方法。
【請求項１６】
前記特有操作は少なくとも１つの循環的連鎖ＣＣ１を用いて連鎖された計算ユニットによって実施され、前記循環的連鎖ＣＣ１は少なくとも１つの待ち行列も含み、前記特有操作シーケンスからの少なくとも１つの特有操作ＩＳ４は、計算ユニットＵＣ１上で実施された１つの特有操作ＩＳ５の結果を、前記連鎖に従って前記計算ユニットＵＣ１に続く計算ユニットＵＣ２または待ち行列に送出する、前記請求項のうちの一項に記載の方法。
【請求項１７】
前記特有操作は、加算、減算、乗算、相関表の適用、最小値、最大値、選択を含むグループ中で選択される少なくとも１つの特有計算操作および／または転置、複製、サブサンプリングを含むグループ中で選択される少なくとも１つの特有幾何学操作を含む、前記請求項のうちの一項に記載の方法。
【請求項１８】
前記特有操作は少なくとも１つの循環的連鎖に従って連鎖された計算ユニットによって実施され、前記循環的連鎖は少なくとも１つの待ち行列も含む、前記請求項のうちの一項に記載の方法。
【請求項１９】
前記特有操作は少なくとも１つの循環的連鎖に従って連鎖された計算ユニットによって実施され、前記循環的連鎖は少なくとも１つの待ち行列も含み、前記待ち行列はサイズおよび／またはレイテンシを有し、さらに、前記汎用操作のシーケンスおよび前記スクローリングモードに従って前記待ち行列の前記サイズおよび／または前記レイテンシを決定するステップを含む、請求項２から１８のうちの一項に記載の方法。
【請求項２０】
処理される前記オブジェクトは、画像と、ディジタルオーディオ信号と、数値メッシュとを含むグループに含まれ、前記基本情報はそれぞれ、前記画像のピクセルと、前記信号のオーディオサンプルと、メッシングの各点を特徴付ける空間および／または時間情報とを含むグループに含まれる、前記請求項のうちの一項に記載の方法。
【請求項２１】
どんなループもない汎用操作のシーケンスを記述する第１のデータ（１４）を含む汎用フォーマット化データ（１２）を処理するためのシステムであって、Ｑ個のプロセッサと少なくとも１つのメモリとを備える所定のプラットフォーム（２０）に特有フォーマット化データ（１８）を直接的または間接的に提供し、前記プラットフォームは、同じタイプの基本情報で構成されるオブジェクト（２２）を前記特有フォーマット化データ（１８）に従って処理するようになっており、各基本情報は少なくとも１つの数値で表され、請求項１から２０のうちの一項に記載の方法を実施する手段を備えるシステム。
【国際調査報告】
2009524854.tif 000024
2009524854.tif 000025
2009524854.tif 000026
2009524854.tif 000027
2009524854.tif 000028
2009524854.tif 000029
2009524854.tif 000030
2009524854.tif 000031
2009524854.tif 000032
2009524854.tif 000033