(57)【特許請求の範囲】
【請求項１】
並列データ処理装置であって、
データの並列ストリームを得るために信号を処理する並列処理要素の配列と、
データブロック単位で前記データの並列ストリームをシャッフリングするデータシャッフリング手段とを有し、
前記データシャッフリング手段は、予め定められた数の処理要素に各々が接続されたアドレス可能なスイッチメモリマトリクスの配列を有する装置。
【請求項２】
各スイッチメモリマトリクスは、
レジスタのマトリクスと、
行単位バスと列単位バスを有するクロスバースイッチとを有し、
前記行単位バスと前記列単位バスの交差点にはスイッチが設けられ、
各々のレジスタは、前記クロスバースイッチの１つの行単位バスと１つの列単位バスに接続され、且つ、
各列単位バスは、処理要素に接続されている、請求項１に記載の装置。
【請求項３】
各スイッチメモリマトリスクは、正方マトリクスである請求項１に記載の装置。
【請求項４】
前記スイッチメモリマトリスクは、２つずつ互いに接続されている請求項１に記載の装置。
【請求項５】
各処理要素は、アキュムレータを有し、
前記予め定められた数の処理要素のアキュムレータは、選択的にアドレス可能である請求項１に記載の装置。
【請求項６】
信号を得るためのセンサ配列と、
前記信号を処理するための、請求項１に記載の並列データ処理装置とを有するカメラシステム。
【請求項７】
前記センサ配列にはカラーフィルタ配列が設けられ、且つ、
異なる色に対応する前記センサ配列の幾つかの列は、同じ処理要素により共有されている、請求項６に記載のカメラシステム。
【発明の詳細な説明】
【０００１】
本発明は、データの並列ストリームを得るために、処理要素の配列内で信号が処理される、装置、方法及びカメラシステムに関連する。
【０００２】
スエーデンのＬｉｎｋｏｐｉｎｇ、Ｔｅｋｎｉｋｒｉｎｇｅｎ２Ｃ、ＳＥ−５８３３０のＩＶＰインテグレーテッドビジョンプロダクツＡＢの、ＭＡＰＰ２２００製品情報は、同じ半導体チップ上のセンサと汎用画像プロセッサの組合せを開示する。これは、２５６ｘ２５６センサの全マトリクスを有する２次元スマートビジョンセンサと２５６のプロセッサユニットである。組み込みプロセッサ配列は、全てのローの画素を並列に扱う。Ａ／Ｄ変換は、全体の画像ラインのグレーレベルに関して並列に行われる。画像のロー内の全画素又はアドレスされたレジスタは同時に処理される。並列動作は、画像レジスタでビットに関して行われる。計算の結果は、アキュムレータに蓄積され又は、命令が算術命令ならば、キャリーレジスタにも蓄積される。これらのレジスタの内容は、メモリレジスタに移動され、次の命令の第２のオペランドとして働き、又は、状態レジスタを経由してコントローラからアクセスされる。従来技術のセンサは物体認識に使用され、そして、ビデオ通信には適していない。従来技術のセンサは、ビデオ通信に対して望ましい、カラー画像に対するセンサの並列実行を開示していない。
【０００３】
本発明の目的は、並列データ処理の柔軟性を向上することである。この目的のために、本発明の独立請求項に記載された装置、カメラシステム、及び、方法を提供する。優位な実施例は、従属請求項に記載されている。
【０００４】
本発明の第１の実施例は、装置は更に、ブロックに関して、データの並列ストリームをシャッフリングする手段を有することを特徴とする。
【０００５】
高度な並列処理では、特にデータフローに関する柔軟性は、大きく制限される。本発明は、並列データ処理と組合せて、ビデオ処理装置で広く使用されているような、ブロックレベル計算を提供する。
【０００６】
実際の実施例では、データシャッフリング手段は、予め定められた数の処理要素に各々が接続されたアドレス可能なスイッチメモリマトリクスの配列を有する。スイッチメモリマトリスクは、ブロックに関してデータをシャッフルすることができる。スイッチメモリは並列に配置されているので、制御は非常に効率がよい。
【０００７】
本発明は、更に、本発明に従ったセンサと装置を有するカメラシステムを提供する。カメラシステムは、好ましくは、ビデオ通信に適用される。今日では、ビデオ通信アプリケーションは、例えば、合理的な量のブロックレベル計算を必要とする。本発明は、例えば、ブロックレベル計算を可能とするために、高度な並列構造の拡張を提供する。
【０００８】
本発明の前述の及び他の特徴は、以下に説明する実施例を参照して説明されそして明らかとなろう。
【０００９】
図面は、本発明の理解に必要な要素のみを示す。
【００１０】
図１は、本発明の好適な実施例即ち、本発明に従った高度な並列処理構造とデータシャッフリング手段を有するカメラシステムを示す。カメラシステムは、並列のアナログ／ディジタル変換器（ＡＤＣ１．．．３２０）を有する、画像センサ配列Ｓを有する。ＡＤＣは線形処理配列（ＬＰＡ１．．．３２０）とラインメモリ（ＬＭ）に接続されている。カメラシステムの種々の部分は、セントラルプロセッシングユニット（ＣＰＵ）により制御される。カメラシステムは、固体ＣＭＯＳセンサとディジタル信号処理（ＤＳＰ）が単一のＩＣチップに集積されたＣＭＯＳ画像器を使用するのが好ましい。
【００１１】
データシャッフリング手段なしで、図１の実施例は、既に、欠陥画素代理、自動白調整、自動露出制御のような、画素レベルの画像処理とフィルタリングを実行することができる。
【００１２】
しかし、高レベルの並列化により、ＤＣＴやジグザグスキャンのような更に複雑なブロックレベルアルゴリズムを実行する柔軟性が少なくなるという結果になる。従って、本発明は、高度な並列構造の拡張を提供し、信号処理装置が、分離可能な再帰的離散コサイン変換（ＤＣＴ）、クロミナンスサブサンプリング及び、ジグザグ（ＺＺ）スキャンを含むブロックレベルの動作を効率的に実行することを可能とする。この点に関して、カメラシステムは、ブロックに関してデータをシャッフリングする手段で改善される。データシャッフリング手段（ＴＳＭＭ１．．．８０）は、ＬＰＡとラインメモリＬＭに接続されている。実際の実施例では、これらのデータシャッフリング手段は、入れ換えスイッチメモリマトリクス（ＴＳＭＭ）を有する。ＴＳＭＭは、元の構造に対して追加のブロックレベルメモリユニットである。ＴＳＭＭは、処理要素とラインメモリＬＭ間のデータフローを改善するために設計される。それらは、追加の機能を有するラインメモリＬＭの拡張と考えることができる。ＴＳＭＭは、処理要素を共に結び付けそして、それらの間の蓄積と通信を可能とする。更なる実施例では、ＴＳＭＭは隣接するＴＳＭＭと結びつき、隣接するＴＳＭＭへのデータの転送を可能とする。他の優位点は、ＴＳＭＭはデータを入れ換え且つ４つのプロセッサの出力にアクセスすることを、即ちブロックに関するランダムアドレッシングを可能とする。ＴＳＭＭは各々が４つのプロセッサ要素と結合され、この実施例のＴＳＭＭの全数は８０である。
【００１３】
大規模な並列構造のために、高い計算性能が達成されるだけでなく、好ましい電力消費も達成される。オンチップメモリのデータ帯域幅は、チック外メモリのようにＩ／Ｏピンの数により制限されない。データ帯域幅制限は、アクセス待ち時間の要求又はクロストークからの結果であるがしかし、これらの問題は、メモリユニットのクロック要求を減少させることにより緩和される。これは、十分な並列化と適切な構造設計によりなされる。十分に低いクロックレートで、動作電圧は、更なる電力の節約を達成するために低下される。電力消費の主な減少は、データがラインメモリＬＭから並列に得られるという原理から生じる。メモリアクセスは、シーケンシャルプロセッサ内の電力の大きな部分を消費する。シーケンシャルプロセッサでは、アルゴリズムを実行するために、画素当りに、メモリへの特定の数のアクセスを必要とする。第１にＬＰＡ内では、１回の単一の読出し／書込み動作で全ての値を利用して複数の計算がなされるので、画素当りのアクセス数が単純に減少される。第２に、ラインメモリＬＭは、画素メモリへのアクセスに匹敵するよりも３倍更に電力効率がよい。電力効率の一部は、更に、ＡＤＣとＬＰＡの並列実行から由来する。計算が順次又は並列して行われるか否かは計算的な電力に関しては問題ではないが、電力は、コントロールでコーディングと命令フェチのような低速の共有された項目により、かなり減少される。
【００１４】
カメラシステムは、電子的静止画（ＥＳＰ／ＤＳＣ）、ディジタルビデオカムコーダ、デスクトップビデオカメラ、ビデオ電話、監視等に適用可能である。これらの製品は、全て低コストと高レベルの集積化を特徴とする。幾つかのアプリケーションは、低エネルギー消費も要求する。実施例は、アナログ／ディジタル変換（ＡＤＣ）、画像改善及び変換と、白バランス及び露光時間制御のような多くの制御機能のような、典型的な信号処理タスクを扱う。
【００１５】
実際に、ラインベースのアルゴリズムに関するＣＰＵと画素ベースのアルゴリズムに関する線形プロセッサ配列（ＬＰＡ１．．．３２０）の、２つのプログラム可能なディジタルプロセッサがある。両プロセッサは、プログラムメモリ（ＰＭ）から命令を得る。プログラム可能でないプロセッサとコントローラは、ローとコラムのアドレス選択器、ＡＤＣコントローラ、及び、Ｉ２Ｃコントローラプロセッサ及びシリアルプロセッサ（ＳＰ）を提供するのに使用される。これらのプロセッサは、ＣＰＵから、サブサンプリング、対象の領域の選択、ミラー化、ゲイン、黒レベル、ガンマ及び、ビデオ出力フォーマットに対する、パラメータを受け取ってもよい。シリアルプロセッサは、コラム選択器（ＣＳ）を介してラインメモリＬＭに接続されている。
【００１６】
画像センサＳは、アクティブ画素のＶＧＡ（６４０ｘ４８０）のマトリクスでもよい。キャパシタに特定の電圧を与えることにより画素がリセットされた後に、入力光はこの電荷の減少を開始する。特定の露光時間に続いて、照明又は”画素値”を反映する、キャパシタの残りの電圧が読み出される。露光時間は、画素のリセットと読出し時間の間の遅延により制御される。センサは、ランダムにアドレス可能な画像のローを伴なう大きなアナログメモリとしみなすことができる。これは、全体のロー（即ち、６４０）内の全画素は同時に読み出されるが、対象の領域（ＲＯＩ）のランダムな選択はさらに可能であることを意味する。
【００１７】
画素は、図２に示すように、光学的な色フィルタ配列と重ねられる。このフィルタは、各個々の画素に、赤色（Ｒ）、緑色（Ｇ）又は、青色（Ｂ）の感度を割り当てる。フィルタ内の１つのローは、２つの交番する異なる色を含む。クロックサイクルで１つの色のみが処理されるので、処理要素ごとに異なる色に対応する、２つのコラムを共有するのは有利である。従って、並列プロセッサ配列ＬＰＡは、３２０の好ましくは同一の処理要素、即ち２つのコラム毎に１つの処理要素よりなる。異なる色に対応する、コラムを共有する方法は、与えられるカラーフィルタに依存する。例えば、カラーフィルタが、ローの中に３つの異なる色を提供する場合には、３つのコラムは処理要素当りに共有される。
【００１８】
ＣＭＯＳセンサはローに基づいて読み出されるので、並列ＡＤＣが好ましい。全てのコラムは同時に変換される。低サンプリングレートのために、共通の部分は全てのＡＤＣで共有されそして、固定のオフセットのみが許され、並列ＡＤＣはビデオ速度のＡＤＣと比較して非常に電力効率良く設計できる。ＡＤＣでは、各コラムは、出力値が蓄積される１組のラッチをイネーブルする、比較器を有する。各比較器の入力は、ディジタル化されるべき信号に接続されている。他の比較器入力に、グローバルランプ発生器からランプ信号が与えられているときに、入力信号は、安定のまま残る。ランプ信号が、入力値に達するときには、比較器は切り替わり、そして、そのときにラッチに与えられているディジタル値を蓄積する。ラッチを、ランプ発生器に同期している、グローバルカウンタに接続することにより、切換時間はディジタル値に（そして、アナログ入力値）マップされ、そして、ラッチ内に蓄積される。並列ＡＤＣの不利な点は、パラメータの幅は、等しい強度のコラムの間の応答に差を発生することである。これは、画像信号内に、コラムに基づく”固定パターンのノイズ”（ＦＰＮ）として示される。このコラムＦＰＮは、初期化プログラムにより推定され、そして、通常の動作モードでの相殺に対して、ラインメモリの１つの中に蓄積される。画素レベルのＦＰＮは、アナログ減算がＡＤＣ内で集積される２重サンプリングの既知の方法で補正される。カラーフィルタ配列により、２つのコラムは１つのＡＤＣ要素を共有できる。このように、アナログ多重が起こりる。ディジタル多重が望ましい場合には、コラム当りに１つのＡＤＣが必要である。
【００１９】
図３は、プロセッサ配列ＬＰＡ１．．．３２０の実際の実行を示す。左と右の通信チャネルＣＯＭＭとマルチプレクサＭＵＸ１．．３２０により、各処理要素は、６つのコラムからデータを直接的に得ることができる。ラインメモリＬＭ又は所定のＴＳＭＭから読み出されたデータは、対応する処理要素又は、左又は右の処理要素に送られ、処理要素ＬＰＡ１．．．３２０間の制限された通信を提供する。１ワードのデータは、所定のクロックサイクルで隣接する処理要素にシフトされる。全ての処理要素は、それらの局部データに関して同一の命令を実行する。単一命令複数データ（ＳＩＭＤ）の原理に従って、制御及びアドレスデコーディングが１回のみ行われそして、全ての処理要素により共有されるので、再び、電力消費はシーケンシャルコラムプロセッサと比較して減少される。各プロセッサは、次の命令のオペランドとして使用され得る、最新の結果を蓄積するアキュムレータＡＣＣ１．．．３２０を有する。加算器と乗算器の両方は、ＡＬＵ１．．．３２０内で実行され、そして、これらの機能により、比較、加算、減算、データの重み付け及び、乗算−累積が行われる。プロセッサは、最新の結果に従って設定されたフラグＦを統合する。このフラグＦに基づいて、条件付通過命令が可能であり、アルゴリズムにデータ依存性の制限された形式を可能とする。全ての３２０のフラグＦ１．．．３２０は、ＣＰＵに接続されたグローバルラインＥＶＴに接続される。このように、特定の終了条件を伴なう繰返し処理を並列プロセッサ配列ＬＰＡで実行でき又は、ＣＰＵは画像内容に反応できる。従って、ＣＰＵは制御信号ＩＮＳＴＲを供給する。結果のデータは、点Ｐ１．．．Ｐ４で利用可能となる。ラインメモリＬＭからの又はこれらの点Ｐ１．．．Ｐ４に接続されたＴＳＭＭからのデータは、それぞれの処理要素ＬＰＡ１．．．３２０内で使用されても良い。
【００２０】
オペランドとして、アキュムレータＡＣＣ、メモリＬＭの内容又は、グローバル重みＷＧＨＴを使用しても良い。全てのプロセッサＬＰＡ１．．．３２０に等しい重みＷＧＨＴは、乗算及び乗算−累積命令内でデータをスケーリングするのに使用される。重みＷＧＨＴは、ＣＰＵにより提供される。
【００２１】
並列プロセッサＬＰＡが使用されうるタスクは、固定パターンノイズ低減、欠陥画素のコンシールメント、ノイズ低減、サブサンプリングの目的のためのプリフィルタリングを含む、色の再構成及び色領域変換を含む。
【００２２】
ラインメモリＬＭの２重ポート原理を使用することにより、１つの命令サイクル内で、オペランドはメモリから読み出されそして、結果が所望の位置に書き戻される。実際の実施例では、ラインメモリ（ＬＭ）は一時的なデータ蓄積のために１６ラインメモリを有する。更に、追加の３ラインが計算の最終結果を一列に並べるための書込み専用メモリとして使用される。
【００２３】
ＣＰＵは全体のチップを受け持っている。その主なタスクは、プログラムカウンタを保持し、命令をフェッチしてデコードし、そして、それらをＬＰＡへ送る。その上に、露光時間制御や、白バランス等のグローバル計算を行うことができる。ＣＰＵは、内部レジスタ内で、（シリアルプロセッサＳＰにより）更新される、統計的な画像データを使用する。乗算を含む、幾つかの論理及び算術命令を利用できる。プログラム制御に関しては、ＣＰＵは、プログラム内の（条件付き）ジャンプを扱い、そして、従って、幾つかの（プログラム）カウンタを有する。更に加えて、ＣＰＵは並列プロセッサＬＰＡにより発生されたイベントに反応でき、そして、異なるサブルーチンへジャンプできる。ＣＰＵの特定のレジスタは、Ｉ２Ｃを通してアクセス可能であり、そして、従って、エンドユーザとの間で通信する方法を与える。例えば、対象の領域を、ＣＰＵに対して規定することができ、そして、選択されたローとコラムを処理のためにアドレスする。プログラムメモリＰＭは、ＣＰＵに対する命令を保持する。このメモリＰＭは並列プロセッサＬＰＡへの命令も保持することに注意する。命令はデコードされ、そして、ＬＰＡ又はＣＰＵが呼び出される。このシーケンシャル命令フェッチは、１つのプログラムから２つのプロセッサの結合をプログラムするのを容易にする。
【００２４】
好ましくは、ＴＳＭＭは、レジスタのマトリクスの上に重ねられた半−接続されたクロスバースイッチよりなる。ＴＳＭＭの提案された構造を図４に示す。矩形のＭＲは、メモリマトリクス内のレジスタを表す。ＴＳＭＭは更に、円で示された制御可能なスイッチＴを有する。塗りつぶされた円は、スイッチが閉じており且つ導通していることを示す。塗りつぶされていない円は、スイッチが開いており且つ導通していないことを示す。ＴＳＭＭは、ラインメモリと独立に、全体的に、アドレスされ且つアクセスされる。図では、４ｘ４レジスタのマトリクスが例として与えられている。処理要素がセンサ配列の２つのコラムに接続されているので、ＴＳＭＭは効率的にセンサ配列の８コラムに接続されている。この実施例では、１つのＴＳＭＭは８ｘ４画素のブロックを処理するように効果的に配置される。実際の実施例では、４つは水平方向（ｒ１．．．ｒ４）で、４つは垂直方向（ｃ１．．ｃ４）の８つのバスは、１６ビット幅である。バスは、処理要素ＬＰＡ、ラインメモリＬＭ、隣接ＴＳＭＭ、マトリクスのレジスタＭＲと接続されている。更にスイッチＴは、接続されたユニット間のデータフローを制御するために、水平（ｒ１．．．ｒ４）と垂直（ｃ１．．ｃ４）のバスの交差点に配置される。スイッチは各交差点に配置されうるが、図４に示されるように、交差点に配置された７つのスイッチの数が、本実施例では好適である。更に加えて、各レジスタＭＲは、２つのスイッチＴによりゲートされた、対応する水平（ｒ１．．．ｒ４）と垂直（ｃ１．．ｃ４）のバスに接続されている。データは、水平と垂直のバスの何れかを通して、レジスタＭＲへ又はレジスタＭＲから流れることができる。
【００２５】
レジスタマトリクスは、４つのレジスタＭＲの４つのコラム（ｃ１．．．ｃ４）として翻訳されることができ、各コラムは特定の処理要素ＬＰＡ１．．．３２０に対応する。処理要素は、ＴＳＭＭ内の他のコラムへのアクセスが制限されている。本発明に従った実施例は、以下の、ラインメモリアクセス、レジスタアクセス、入れ換え読み出し／書込み、処理要素選択的読出し／書込み、長手ブロック転送の、データフロー構成を提供する。これらの構成は以下で説明する。
【００２６】
図５は、データパススルーモードを示す。スイッチＴはＰ１．．Ｐ４で閉じられ、この結果、ラインメモリへの直接データパスとなる。ＴＳＭＭはプロセッサＬＰＡとラインメモリＭＥＭで双方向である。レジスタに接続された全てのスイッチは開放されているので、レジスタＭＲ内に蓄積されたデータはない。
【００２７】
図６は、レジスタアクセスモードを示す。このモードでは、ＴＳＭＭは一時的なストレージとして使用される。データはメモリレジスタから読み出され且つメモリレジスタへ書込まれることができる。図５に示すように、スイッチＰ１．．．Ｐ４は、閉じられている。さらに、それぞれのコラムに接続された、第３のローのレジスタのスイッチＴも閉じられている。このように、第３のレジスタのロー内でワードのように、全体のローが読み出され又は書込まれる。４つのコラムは相互に排他的である。ＴＳＭＭ内のコラムは、対応する処理要素に関連し且つ、対応する処理要素によってのみ直接的にアクセスすることができる。ＴＳＭＭを、ラインメモリＬＭ内のストレージと同様な一時的なストレージとして使用できる。ＬＭにわたるＴＳＭＭの優位点は、ＴＳＭＭがＬＰＡに非常に近く、そして、ＬＭよりも低いクロックレートで動作することである。メモリのローカル化は更に電力効率がよい。
【００２８】
図７は、入れ替え読出しモードを示す。ＴＳＭＭに蓄積されたデータは、コラム毎に読み出され、そして、水平ワードを処理要素へ戻して出力するために、適切なスイッチＴを閉じることにより、垂直バスに経路が選択される。ＴＳＭＭの入れ替え読み出し（及び、反対方向に使用される場合には書込み）が、ここでは達成される。
【００２９】
図９は、プロセッサ選択的アクセスモードを示す。この図は、プロセッサの４つの出力の１つにランダムにアクセスするＴＳＭＭを使用する能力を示し、そして、ＴＳＭＭの１つのコラムの４つのレジスタの1つに出力をランダムに蓄積する。例として、スイッチＴはＰ２で閉じ、それゆえに、ＬＰＡ２からのデータのみがＴＳＭＭへ入力するのを可能とする。適切なスイッチＴを活性化することにより、このデータは、ＴＳＭＭの第1のコラム内の第４のレジスタＭＲに経路が選択される。このように、ＬＰＡ２からの出力は、ＴＳＭＭの第1のコラムｃ１の第４のレジスタに書込まれる。ＬＰＡ１．．．３２０は個々に選択可能でないので、ＴＳＭＭからの処理要素により読み出すことは、問題を発生する。全ての処理要素は、読み出そうとし、そして、不確定な結果を伴なう処理を実行しようとする。ＬＰＡ１．．．３２０のアキュムレータは選択的にアドレス可能であるときには、この問題は効果的に解決される。
【００３０】
図９と１０は、ブロック転送モードを示す。これらのモードでは、ＴＳＭＭは互いに２つずつ接続される。このように、図１のカメラシステムは、４０の並列の２つのＴＳＭＭアレイを有する。図９と１０は、１つのブロックから隣接するブロックへデータを転送する可能なモードを示す。データの転送を可能とするために、同じ水平バス状のデータのフローを隣接するＴＳＭＭに可能とするために、スイッチＴ（個々では転送ゲートとも呼ぶ）がＴＳＭＭの間に要求されることに注意する。図９は、ＴＳＭＭ２のトップから左へのブロック転送を示す。水平及び垂直バスの交差点上のスイッチＴは、Ｐ５．．．Ｐ８に接続された処理要素からのローが、コラムに関して左へ転送されるように活性化される。転送ゲートＴは、このデータがＴＳＭＭ１に入力することを可能とする。ＴＳＭＭ１の水平及び垂直バスの交差点上のスイッチＴは、ＴＳＭＭ１内で、データのコラムがローに関して利用できるようになるように活性化される。ＴＳＭＭ２に接続された処理要素からのデータは、このように、ＴＳＭＭ１に接続された処理要素から来たデータであるかのようにＴＳＭＭ１内で利用できるようになる。図１０は、ブロック転送モードを示しＴＳＭＭ１内のローは、ＴＳＭＭ２に転送される。このモードは、図９に示すモードに匹敵するが、しかし反対方向である。処理要素からのデータの代わりに、図９と１０に示されたモードも、ラインメモリＬＭから得られるデータに適用可能である。ラインメモリＬＭからのデータがＴＳＭＭの下から入力するので、スイッチＰ１からＰは、この場合には使用されない。ＬＰＡの大きな並列構造のために、同様な読出し問題が、図８に関して上述したように発生する。この場合にも、ＬＰＡがデータを読み出さねばならないときには、選択的にアドレス可能なＬＰＡアキュムレータを有することが好ましい。図９と１０はＴＳＭＭ１とＴＳＭＭ２を図示するが、他の接続されたＴＳＭＭ、例えば、ＴＳＭＭ３＋ＴＳＭＭ４等に対しても同じことが成り立つ。
【００３１】
上述の種々の動作のモードは、例えば、再帰的又はマトリクス離散コサイン変換（ＤＣＴ）、クロミナンスサブサンプリング及び、ジグザグ（ＺＺ）スキャンのような種々のアルゴリズムを、効果的に実行する装置を可能とする。特徴を以下に説明する
ブロックＤＣＴが、各マクロブロックの、４つのＹブロック、１つのＵブロック及び１つのＶブロックに適用される。好ましいアルゴリズムは、分割可能な２次元再帰的ＤＣＴアルゴリズムであり、１９９５年８月のＩＥＥＥ信号処理レター、２（８）の第１５５−１５６の、Ａｂｕｒｄｅｎｅ他による”クレンショーの循環的公式を使用する離散コサイン変換の計算”から知られている。ＤＣＴアルゴリズムの入力は、ブロックのコラムから得た８画素と２つの重みのシーケンスである。重みは、結果のＤＣＴ係数の縦座標を決定する。各ブロックは、４つの処理ユニットにより処理されるので、４つのＤＣＴ係数が並列して処理される。完全なブロックＤＣＴのために、ＤＣＴアルゴリズムの１６のパスは、垂直の１次元ＤＣＴを計算するのに必要であり、且つ、他の１６パスは水平の１次元ＤＣＴを計算するのに必要とされる。再帰的ＤＣＴアルゴリズムは、中間的な蓄積のために要求される領域を最小化するのに好ましい。２つの中間的な変数は、１つのＤＣＴ係数を処理するのに要求される。より高速なバタフライＤＣＴアルゴリズムは、各処理要素毎に８の中間的な変数を必要とする。中間変数は高精度を必要とするので、ラインメモリＬＭのような画素バッファへそれらを集積する更なる領域が必要である。ＴＳＭＭは、各処理要素毎に、４つの高精度中間レジスタＭＲを提供する。ＤＣＴ係数を計算するのに２つのみが必要であるので、２つのレジスタは他の目的に使用されても良い。更に重要なことは、ＴＳＭＭに蓄積されたＤＣＴ係数を、入れ替えることが可能であることである（図７参照）。入れ替えは、水平に、再帰的ＤＣＴアルゴリズムを実行するために必要である。
【００３２】
提案された構造に対しては、４つごとのＴＳＭＭが好ましい。第１に、完全な８ｘ８入れ替えマトリクスは更なるアドレッシングのオーバーヘッドを有するので、完全な８つごとのマトリクスの領域の４分の１よりも小さい。第２に、処理要素は４つのＤＣＴ係数のみを発生し、一方ラインメモリは４つのＤＣＴ係数のみを蓄積する。
【００３３】
ブロック転送モード（図９及び１０参照）は、クロミナンスサブサンプリングに対する効率的なモードを提供する。ＲＧＢ−ＹＵＶ変換が、クロミナンス成分のサブサンプリングに先立ち、４：２：２フォーマットで行われる。ＲＧＢ−ＹＵＶ変換はそれ自身により、画素レベル動作であり、且つ、一定重みの乗算と積の累積を含む。一旦、画素がＹＵＶ領域に変換されると、ＵとＶ成分は、水平と垂直の両方に、係数２でサブサンプリングされる。ＵとＶ成分を蓄積するためのメモリ配置に、基本的な問題が存在する。４：２：２フォーマットでは、１６ｘ１６画素のマクロブロック内のＵとＶ成分は、８ｘ８画素にサブサンプルされ、そして、Ｙ成分はサブサンプルされない。マクロブロックは、２ブロック（２つの８画素コラム）即ち、２つのＴＳＭＭユニット又は８処理要素にわたる。サブサンプルされたブロックが対応するラインメモリに蓄積されるならば、水平ＤＣＴパスを行うのにかなり非効率であろう。マクロブロックの半分にＵブロックを蓄積し、且つ他にＶブロックを蓄積するのが非常に望ましい。これは、全てのＹ，Ｕ及びＶブロックに同じ２−Ｄ  ＤＣＴコードが与えられることを可能とする。ブロック転送モードでは、これは１つの直接転送のみを得る。並列構造の場合でさえも、隣接コラム間で通信は可能であり、この転送は、データシフティングの４つのサイクルを必要とする。図４の実施例と比較したこの実施例のオーバーヘッドは、ＴＳＭＭ間のデータバスをゲートするスイッチである。ブロックデータ転送の特徴は、処理要素間のデータシフティングに十分なサイクルがある場合又は、スイッチがラインメモリアクセス当りの電力を増加する容量性負荷の場合には、省略されうる。このトレードオフは、実行に関して評価されうる。
【００３４】
ブロックレベルのランダムアドレッシング（図８参照）が、例えば、ＺＺスキャンのような、種々の形式のアルゴリズムに対して使用されることが可能である。１つの処理要素からのアキュムレータデータは、選択的にアドレスされそして、第１のＴＳＭＭコラム内の４つのレジスタの内の１つに書きこまれる。全ての４つのレジスタに書き込み後に、第１のＴＳＭＭコラムは転送され、そして、ラインメモリＬＭに書込まれる。処理要素の出力をアドレスするのに２つのみのビットが必要とされ、そして、他の２つのビットはレジスタにアドレスするのに必要とされる。ＪＰＥＧ規格内で記述されているＺＺスキャンは、幾つかの方法で実行されることができる。８ｘ８ブロック内でデータの記録が必須である。線形処理配列ＬＰＡと外部ＬＰＡ内のＺＺスキャンを実行する間のトレードオフは、ハードウェアが複雑となる。外部ＬＰＡでＺＺスキャンを実行することは、規定されたストリーミングレートで順序を変えるための十分なデータがあることを保証するためのブロックバッファを必要とするであろう。ハードウェアをモニタすることが、バッファが空になる又はオーバーフローすることから防ぐのに必要とされる。ストリーミングユニットとＬＰＡ間の同期は、プログラムとＬＰＡの複雑さを導入することを必要とする。一方、ＺＺスキャンが並列ハードウェア内で実行されるならば、ストリーミングは一定でありそして、ラン長符号化器の身が必要とされる。
【００３５】
可変長符号化は、高度な複雑さ無しでは、高度に並列の整数ＡＬＵ内で効率的に実行することはできず、そして、従って、外部の線形処理配列で処理される。
【００３６】
概要として、高精度のレジスタマトリクスＴＳＭＭの配列が、高度に並列の線形配列プロセッサのデータフロー制限と、画像処理アルゴリズムの中間的な蓄積要求を解決するために提案される。このプロセッサとメモリユニットの階層が、特にデータフローに関する柔軟性が大きく制約される、高度に並列の処理システムの柔軟性を高めるために必要である。単純な特別のメモリユニットＴＳＭＭの配列は高度に並列な画素レベル処理構造と組み合わされ、これは、単一チップ上で、ビデオレートで、画像キャプションとモーション−ＪＰＥＧビデオ圧縮を可能とする。
【００３７】
本発明は、データの並列ストリームを得るために信号を処理するための並列処理要素の配列を有する並列データ処理装置と、ブロックに関するデータの並列ストリームのシャッフリングのための手段を提供する。データシャッフリング手段は、予め定められた数の処理要素に各々が接続されたアドレス可能なスイッチメモリマトリクスの配列を有する。スイッチメモリマトリクスの配列は、高度に並列の線形配列プロセッサのデータフロー制限と、画像処理アルゴリズムの中間蓄積要求を解決する。カメラシステムでは、並列データ処理装置は、センサ配列と組み合わされる。
【００３８】
上述の実施例は本発明を制限するものではなく説明するためのものであり、当業者は、請求項の本発明の範囲から離れることなく多くの代わりの実施例を設計できることに注意すべきである。コラムとローは、請求項の本発明の範囲から離れることなく交換が可能である。請求項においては、括弧内に配置されたどの参照記号も請求項を制限するものではない。用語”有する”は請求項に記載された他の構成要素を又はステップの存在を除外しない。本発明の幾つかの特徴的な要素を有するハードウェアにより、及び、好適にプログラムされたコンピュータいより実行することが可能である。幾つかの手段を列挙する装置の請求項においては、いくつかのこれらの手段を、１つのそして同じハードウェアの項目で実現することができる。
【図面の簡単な説明】
【図１】  本発明に従った高度な並列処理構造とデータシャッフリング手段を有するカメラシステムを示す図である。
【図２】  カラーフィルタ配列を示す図である。
【図３】  本発明に従った線形処理配列の構造を示す図である。
【図４】  本発明に従ったデータシャッフリング手段の構造を示す図である。
【図５】  図４のデータシャッフリング手段の異なるモードの動作を示す図である。
【図６】  図４のデータシャッフリング手段の異なるモードの動作を示す図である。
【図７】  図４のデータシャッフリング手段の異なるモードの動作を示す図である。
【図８】  図４のデータシャッフリング手段の異なるモードの動作を示す図である。
【図９】  ２つの隣接するスイッチマトリクスが結合されたデータシャッフリング手段の動作のモードを示す図である。
【図１０】  ２つの隣接するスイッチマトリクスが結合されたデータシャッフリング手段の動作のモードを示す図である。
【図１】
0004733894.tif 000002
【図２】
0004733894.tif 000003
【図３】
0004733894.tif 000004
【図４】
0004733894.tif 000005
【図５】
0004733894.tif 000006
【図６】
0004733894.tif 000007
【図７】
0004733894.tif 000008
【図８】
0004733894.tif 000009
【図９】
0004733894.tif 000010
【図１０】
0004733894.tif 000011