JP2000512790A - データ処理システムおよび方法 - Google Patents

データ処理システムおよび方法

Info

Publication number
JP2000512790A
JP2000512790A JP10543972A JP54397298A JP2000512790A JP 2000512790 A JP2000512790 A JP 2000512790A JP 10543972 A JP10543972 A JP 10543972A JP 54397298 A JP54397298 A JP 54397298A JP 2000512790 A JP2000512790 A JP 2000512790A
Authority
JP
Japan
Prior art keywords
correlation
elements
data
image
window
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.)
Granted
Application number
JP10543972A
Other languages
English (en)
Other versions
JP4168125B2 (ja
Inventor
イセリン ウッドフィル,ジョン
ハーリン ベイカー,ヘンリー
ハーゼン,ブライアン ボン
デイル アルカイア,ロバート
Original Assignee
インターバル リサーチ コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インターバル リサーチ コーポレイション filed Critical インターバル リサーチ コーポレイション
Publication of JP2000512790A publication Critical patent/JP2000512790A/ja
Application granted granted Critical
Publication of JP4168125B2 publication Critical patent/JP4168125B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C11/00Photogrammetry or videogrammetry, e.g. stereogrammetry; Photographic surveying
    • G01C11/04Interpretation of pictures
    • G01C11/06Interpretation of pictures by comparison of two or more pictures of the same area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/757Matching configurations of points or features
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/167Synchronising or controlling image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/189Recording image signals; Reproducing recorded image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/246Calibration of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/296Synchronisation thereof; Control thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

(57)【要約】 強力で、スケーラブルで、再構成可能なイメージ処理システムおよびその中のデータを処理する方法が開示される。この総合的な目的である、トロイダルトポロジーを有する再構成可能エンジン、分散メモリおよび広い帯域幅I/Oは実際のアプリケーションをリアルタイムな速度で解析する(solving)ことが可能である。この再構成可能なイメージ処理システムは、リアルタイムの映像および音声処理のような専門の演算を効率的に行うことができる。この再構成可能イメージ処理システムは、高い演算密度、高いメモリ帯域幅および高いI/O帯域幅によって高い性能を提供することができる。一般に、再構成可能イメージ処理システムおよびその制御構造は、部分的トーラス構成で構成された、16個のフィールドプログラマブルゲートアレイ(FPGA)および16個のスタティックランダムアクセスメモリ(SRAM)からなる均質アレイ(homogeneous array)を含む。再構成可能イメージ処理システムは、PCIバスインターフェースチップ、クロック制御チップおよびデータパスチップをも含む。これは、単一のボードで実現することが可能である。これは、その外部環境からデータを受信し、対応を演算し、そして、様々な処理後産業的アプリケーションに対応演算の結果を用いる。再構成可能イメージ処理システムは、非パラメトリック局所変換とその後の相関を用いることによって相関を決定する。これらの非パラメトリック局所変換は、センサスおよびランク情報を含む。他の実施形態には、相関、修正、左右一貫性検査および対象オペレータのアプリケーションが含まれる。

Description

【発明の詳細な説明】 データ処理システムおよび方法 発明の背景 発明の分野 本発明は一般にデータ処理に関する。さらに詳細には、関連したデータの組の 間の対応を決定すること、および、そのようなデータの解析に関する。一つの用 途(application)では、本発明はリアルタイムでのステレオおよび深度/距離/ 動き解析に対するイメージデータ対応に関する。 関係する技術の説明 データ処理用途のある形式は関連するデータの組の比較に関する。つまり、デ ータの関連度を決定し、存在し得る差の重要性を判断するよう設計される。時間 が経過するにつれてデータの組がどのくらい変化するのかを決定するよう設計さ れる用途を例示は含む。同様に、同じデータの組の二つの異なる同時の風景(sim ultaneous views)の差を調べるように設計される用途も含まれる。 エラーから、または、データ収集プロセスのアーチファクトから生じる差をデ ータの組が含むならば、そのような用途は非常に複雑になり得る。そのような場 合、データの基礎をなす実質的な差は、実質的な対象に関係しないアーチファク トによって覆い隠され得る。 例えば、物体が動いているかどうかを決定する映像シーケンスの解析は、ある フレームから別のフレームへピクセルが変化したかどうか、もしそうならば、そ れらのピクセルの差が物体の動きを表しているかどうかを決定するためにフレー ムごとの比較を実行することを必要とする。そのようなプロセスは、対象(物体 の動きを示すもの)に対応し得るピクセルの差と無関係なアーチファクト(例え ば、明暗の変化)の結果として導入されるピクセルの差とを区別することを必要 とする。簡略なピクセルごとの比較はそのような用途にはあまり適さない。なぜ なら、そのような比較は、意味のあるピクセル差と意味のないピクセルの差とを 簡単に区別できないからである。 そのような問題の第二の例は、同じ光景のステレオイメージからの深度情報の 計算に関する。同時にとられた同じ光景の二つの画像、カメラ間の距離、焦点距 離、および光学レンズ特性の情報が与えられると、その光景における任意のピク セル(従って、ピクセルの任意の関連する群、すなわち物体)との距離を決定す ることは可能である。しかしながら、(a)異なる深度でのピクセルは、異なる 合計をオフセットし(これは深度計算を可能にする)、(b)カメラはわずかに 異なる光学的な品質を有し得るので、簡略なピクセル整合によっては達成されな い。異なる深度でのピクセルは、その異なる合計をオフセットするという事実に よって作成される差が対象となる一方で、カメラの差のアーチファクトとして作 成される差が対象とならないので、二つの形式の差を区別することは必要である 。 そのうえ、そのような比較をリアルタイムで実行することは有用であり得る。 例えば、ステレオ深度解析は周囲の状況によってロボットを導くのに使用され得 る。明らかな理由に関しては、ロボットが反応して障害物を回避するのに間に合 うようにそのような解析が実行されるならば、最も有用である。別の例を選ぶと 、圧縮アルゴリズムが前景情報と背景情報とを区別すること、および背景情報を 前景情報より高い程度に圧縮することを可能にする映像圧縮にとって深度情報は 非常に有用であり得る。 しかしながら、この形式の正確なデータ組比較は演算量が高密度になる。非常 にハイエンドなコンピュータ(最もあり得る実世界の用途にとっては高価過ぎる )を使用するか、または、正確さまたは速さを犠牲にするかのいずれかを、存在 する用途に強いる。そのようなアルゴリズムは、差の二乗の合計(Sum of Squar ed Difference)(“SSD”)、規格化SSDおよびラプラシアンレベル相い くつかまたはすべてをこれらのアルゴリズムが示す傾向がある。(1)低感度( イメージ内の重要なローカル変数を生成することができない)、(2)低安定性 (対応するデータ位置の近辺に同様の結果を生じることができない)、(3)カ メラの差に影響を受け易い。さらに、これらのアルゴリズムを実行するように設 計されているシステムは、高価なハードウェアを使用する傾向にある。それら のハードウェアによって、これらのアルゴリズムは多くの用途に対して適応出来 なくなる。 現在の対応アルゴリズムも、ローカル変換動作の制限のため、ファクショナり ズム(factionalism)を扱うことはできない。ファクショナリズムは別個の強度集 合を適切に区別することはできない。例えば、強度イメージは、どのような物体 が光景の中にある場合でもその強度データをピクセルを経由して与える。これら の物体の境界付近で、強度イメージにおけるいくつかのローカル領域のピクセル は、二つの別個の強度集合(population)からの光景要素を表し得る。いくつかの ピクセルは物体に由来し、そしていくつかは光景の他の部分に由来する。結果と して、ローカルピクセル分布は一般に、境界付近で多様となる。深度不連続を重 ね合わせるイメージウインドウは、異なる位置での他のイメージにおける二つの ハーフウインドウを整合する。そのような領域における大多数のピクセルが、深 度不連続の一つの側面に向けられる(fall)と仮定すると、深度推定は大多数に一 致し、少数に不一致となるはずである。これは多くの対応アルゴリズムに対して 問題を引き起こす。ローカル変換が元の強度データの強度分布を適切に表さない ならば、少数集合からの強度データは結果を歪め得る。平均または変化(mean or variance)といったパラメトリック変換は多数の別個のサブ集合(それぞれがそ れ自身と密接なパラメータを有する)の存在中で行儀良く振る舞(behave well) わない。 非パラメトリック変換として知られているアルゴリズムの分類(class)は、他 のアルゴリズムが本来持っている効率の悪さを解決するよう設計されている。そ れぞれの要素をそれらそれぞれのデータの組における周囲の要素と比較すること によって、非パラメトリック変換は、一つのデータ組におけるデータ要素を第2 のデータ組におけるデータ要素にマッピングする。その後、他のデータの組にお ける周辺の要素に対して同じ関係を有する、その組における要素の位置決めを試 みる。従って、そのようなアルゴリズムは、アーチファクトに基づいた差を選別 して除くように設計される。そのアーチファクトに基づいた差は、データの組が 集められた方法における差から生じ、重要な差を濃縮することを可能にする。 ランク変換は一つの非パラメトリックローカル変換である。ランク変換は対象 ピクセルを、どのくらい多くのその周辺ピクセルが、対象ピクセルよりも高いま たは低い輝度を有するのかの関数として特徴付ける。その後、その特徴付けは、 他のデータの組におけるピクセルに行われた特徴付けと比較され、最近接整合(c losest match)を決定する。 センサス(census)変換は第2の非パラメトリックローカル変換アルゴリズムで ある。センサスはまた、輝度の差に依存するが、ランクよりもさらに洗練された 解析に基づく。というのも、センサス変換はより高いまたは低い輝度の周辺ピク セルの数に単に基づくだけでなく、対象ピクセルを取り囲むピクセル輝度の順序 付けられた関係に基づくからである。センサス変換は関係するデータ組を整合し 、および、重要性を有さない差から重要な差を区別するために知られている良い アルゴリズムを構成するのだが、このアルゴリズムを実行する存在するハードウ ェアシステムは効果がなく、そして、演算的に効果のある方法におけるこのアル ゴリズムを実行するシステムは、全く知られていない。 データ処理の広い分野において、データの組を解析するシステムおよび方法の ための産業(industry)における必要性が存在し、このシステムおよび方法は関係 性を決定し、これらのデータ組において含まれる本質的な情報を抽出し、他の望 まない情報をフィルタで排除する。そのようなシステムおよび方法は、素早くそ して効果のある方法で実行されるべきである。本発明はそのようなシステムおよ び方法を与え、上述の問題に対する回答を与える。 発明の要旨 本発明は前記の問題に対する解決方法を与える。本発明の一つの目的は、デー タの組を解析するアルゴリズムを与え、これらのデータの組に含まれる本質的な 属性(attribute)情報を抽出することである。本発明の別の目的は、これらのデ ータの組を解析し、リアルタイムに結果を出すアルゴリズムを与えることである 。本発明のさらなる目的は、これらのデータの組を解析するためのハードウェア 実行を与えることである。本発明のさらなる目的は、これらのアルゴリズムおよ びハードウェア回答をコンピュータ映像(vision)およびイメージ処理のような様 々な用途に導入し、組み入れることである。 本発明の様々な局面はソフトウェア/アルゴリズム、ハードウェア実行および 用途を、単独または組み合わせのいずれかで含む。本発明は、単独または組み合 わせのいずれかで、改善された対応アルゴリズム、リアルタイムに対応アルゴリ ズムを効率的および廉価で実行するよう設計されたハードウェア、およびそのよ うなアルゴリズムおよびハードウェアの使用を可能にする用途を含む。 本発明の一つの局面は改善された対応アルゴリズムに関係する。一般的なレベ ルでは、このアルゴリズムは行データの組のセンサスベクトルへの変換およびデ ータ組間の相関を決定するためのセンサスベクトルの使用に関係する。 一つの特別な実施形態では、センサス変換は一つの画像におけるピクセルを同 時に得られた第二の画像におけるピクセルに整合するために使用され、それによ って深度計算が可能になる。異なる実施形態では、このアルゴリズムは一つの画 像と異なる時間に得られた第二の画像との間の動きの計算を可能にするために、 または、音楽シーケンスを含む音を表すデータの組の比較を可能にするために使 用され得る。 第1のステップでは、センサス変換は行データの組を取り、これらのデータの 組を非パラメトリック演算を使用して変換する。例えば、ステレオイメージから の深度情報の計算に適用されると、この演算はそれぞれのピクセルに対するセン サスベクトルを生じる。そのセンサスベクトルは、周囲に隣接する他のピクセル に対するピクセルの順序付けられた関係を表す。一つの実施形態では、この順序 付けられた関係は、ピクセル内の輝度の差に基づく。他の実施形態では、この関 係は、色を含むピクセルの他の局面に基づく。 第2のステップでは、センサス変換アルゴリズムはセンサスベクトルを関連付 け、一つのデータの組と他との間の最適な整合を決定する。これは、一つのデー タの組におけるそれぞれの参照ピクセルと他のデータの組における参照ピクセル のサーチウインドウのそれぞれのピクセルとの間の最小ハミング距離を選択する ことによって行われる。一つの実施形態では、これは、参照ピクセルを取り囲む ウインドウからの合計ハミング距離を他のデータ組におけるスライディングウイ ンドウと比較することによって行われる。その後、この最適な整合は、データの 組の一つと他のデータ組と間とのオフセット(または視差(disparity))とし て表され、外部指標アレイまたは視差マップにおいて視差の組が格納される。 第3のステップでは、一つの方向における最適の整合が他の方向における最適 の整合と同一であるかを決定するために、アルゴリズムは反対の方向における同 じ検査を行う。これは、左右一貫性検査(left-right consistency check)と称さ れる。一貫性のないピクセルは、今後の処理のために分類され、廃棄される。あ る実施形態では、アルゴリズムは対象演算子を適用してコントラストまたはテク スチャが低い領域における転置(displacement)を廃棄し得、モードフィルタを適 用して集合解析に基づいた視差を選択し得る。 本発明の第2の局面は、センサス変換および対応アルゴリズムのようなアルゴ リズムを実行するよう設計されたパワフルでスケーラブル(scaleable)なハード ウェアシステムに関する。このハードウェアはパラレリゼイションを処理するデ ータを最大化するよう設計されている。一つの実施形態では、このハードウェア はフィールドプログラム可能装置を使用して再構成可能である。しかしながら、 他の本発明の実施形態は、特定用途向け集積回路(ASIC)技術を使用して実 行され得る。さらに他の実施形態は、カスタム(custom)集積回路の形態であり得 る。一つの実施形態では、このハードウェアは、ステレオイメージデータのリア ルタイム処理の間に改善された対応アルゴリズム/ソフトウェアとともに使用さ れ、深度を決定する。 本発明の第3の局面は、用途に関する。ステレオ情報から深度計算を可能にす るハードウェアおよびソフトウェアの使用を介して可能になる用途に関する。一 つの実施形態では、そのような用途は、リアルタイムの物体検出および認識を必 要とする用途を含む。そのような用途は、様々なタイプのロボットを含む。その ようなロボットはハードウェアを含み得、ロボットが回避するかまたは拾い上げ ることを望む物体との同一性(identity)および物体への距離を決定するためにソ フトウェアアルゴリズムを動かし得る。深度情報はある距離はなれた情報を廃棄 する(または記録しない)ために使用され得るので、そのような用途はまた、z キーイングまたはクロミックキーイング(例えば、ブルースクリーニング)のよ うな映像合成技術を含み得る。それゆえ、光景の中に物理的スクリーンを配置す ること、または、背景情報を排除するために手動で映像を処理することを必要と せずにブルースクリーニング効果を作成する。 第2の実施形態では、そのような用途は深度情報が静止イメージまたは映像に 関連するピクセル情報の属性として格納される場合に可能となる用途を含む。そ のような情報は圧縮アルゴリズムに有用であり得る。そのようなアルゴリズムは より離れた物体をカメラに接近して置かれている物体より高度に圧縮し得る。そ れゆえ、そのような情報はたぶん見る者にとってより興味のあるものになる。そ のような情報はまた、映像およびイメージ編集において有用であり得る。例えば 、一つの映像シーケンスからの物体が適切な深度で第2のシーケンスに挿入され る合成イメージを作成するために使用され得る。 図面の簡単な説明 本発明の上記の目的および記述は以下の文と添付の図面を参照してよりよく理 解され得るであろう。 図1は、二つのセンサまたはカメラが光景に関するデータを捕捉し、そのデー タを演算システムに供給する本発明の特定の産業用途を示す。 図2は、本発明が実行されるPCI準拠バスシステムを形成するブロック図を 示す。 図3は、演算要素、データパスユニット、クロック制御ユニット、および、P CIインタフェースユニットを含む本発明の特定のブロック図表示を示す。 図4は、様々な機能がデータを演算し、取り扱い、操作して、他の有用なデー タを発生させる本発明の一つの実施形態の高レベル表示を示す。 図5(A)は、右イメージが参照として指定されたときの所与の視差に対する 相対ウインドウ位置を示し、一方で図5(B)は、左イメージが参照として指定 されたときの所与の視差に対する相対ウインドウ位置を示す。 図6(A)および図6(B)は、X×Y輝度イメージおよびそれらそれぞれの 参照イメージ要素に関した二つの特定の9×9変換ウインドウを示す。 図7は、参照位置(x,y)に中心を置かれたセンサスベクトルを計算するた めに使用される9×9センサスウインドウにおけるイメージ輝度データの一つの 特定の選択およびシーケンスを示す。 図8(A)から図8(C)は、イメージデータを横断する動作ウインドウの動 きを図示する。 図9(A)から図9(C)は、本発明の一つの実施形態を略して図示する。 図10(A)は、本発明の一つの実施形態がどのようにして演算するかを決定 する多数のエッジ状態に関連した10個の特定領域を示し、図10(B)は、他 の9個の領域に関する領域10の相対サイズを示し、図10(C)は、領域10 の左最上部角の適用可能なウインドウの位置を示す。 図11(A)から図11(J)は、動作ウインドウのサイズが7×7である場 合の10個の領域の位置とサイズを図示する。 図12は、二つのウインドウの相関整合を示す。 図13(A)は、相関合計バッファの構造を示し、図13(B)は、同一の相 関バッファの概略三次元表示を示す。 図14(A)から図14(D)は、動作ウインドウに関する列合計アレイ[x ][y]の使用および演算を図示する。 図15(A)から図15(D)は、相関合計、対象計算、および、視差計数計 算において使用される列合計アレイ[x][y]の例示的な更新シーケンスを示 す。 図16(A)から図16(G)は、左右一貫性検査を導入する図を与える。図 16(A)から図16(D)は、左イメージまたは右イメージのいずれかが参照 として指定されるときの視差に対してシフトする相対ウインドウを示す。図16 (E)および図16(F)は、左および右センサスベクトルの部分を示す。図1 6(G)は、相関合計バッファの構造およびそこに格納されたイメージ要素と対 応する視差データを示す。 図17は、本発明の一つの実施形態によるサブピクセル推定を図示する。 図18は、様々なオプションを有する本発明の一つの実施形態の高レベルフロ ーチャートを示す。 図19は、センサス変換演算のフローチャートおよびセンサスベクトルの発生 のフローチャートを示す。 図20は、すべての領域1から10に対する相関合計および視差最適化機能の 一つの実施形態の高レベルフローチャートを示す。 図21は、領域1および2に対する相関合計および視差最適化機能の一つの実 施形態のフローチャートを示す。 図22は、領域3および4に対する相関合計および視差最適化機能の一つの実 施形態のフローチャートを示す。 図23は、領域5に対する相関合計および視差最適化機能の一つの実施形態の フローチャートを示す。 図24は、領域6に対する相関合計および視差最適化機能の一つの実施形態の フローチャートを示す。 図25は、領域7および8に対する相関合計および視差最適化機能の一つの実 施形態のフローチャートを示す。 図26は、領域9に対する相関合計および視差最適化機能の一つの実施形態の フローチャートを示す。 図27は、領域10に対する相関合計および視差最適化機能の一つの実施形態 のフローチャートを示す。 図28は、領域1から10に対する対象演算の一つの実施形態の高レベルフロ ーチャートを示す。 図29は、領域1および2に対する対象演算の一つの実施形態のフローチャー トを示す。 図30は、領域3および4に対する対象演算の一つの実施形態のフローチャー トを示す。 図31は、領域5に対する対象演算の一つの実施形態のフローチャートを示す 。 図32は、領域6に対する対象演算の一つの実施形態のフローチャートを示す 。 図33は、領域7および8に対する対象演算の一つの実施形態のフローチャー トを示す。 図34は、領域9に対する対象演算の一つの実施形態のフローチャートを示す 。 図35は、領域10に対する対象演算の一つの実施形態のフローチャートを示 す。 図36は、相関合計および視差最適化機能の一つの実施形態において使用され るようなデータ収納概念を図示する。 図37は、左右一貫性検査の一つの実施形態のフローチャートを示す。 図38は、領域1から10に対するモードフィルタ演算の一つの実施形態の高 レベルフローチャートを示す。 図39は、領域1および2に対するモードフィルタの一つの実施形態のフロー チャートを示す。 図40は、領域3および4に対するモードフィルタの一つの実施形態のフロー チャートを示す。 図41は、領域5に対するモードフィルタの一つの実施形態のフローチャート を示す。 図42は、領域6に対するモードフィルタの一つの実施形態のフローチャート を示す。 図43は、領域7および8に対するモードフィルタの一つの実施形態のフロー チャートを示す。 図44は、領域9に対するモードフィルタの一つの実施形態のフローチャート を示す。 図45は、領域10に対するモードフィルタの一つの実施形態のフローチャー トを示す。 図46は、FPGA、SRAM、コネクタ、および、PCIインタフェース要 素の4×4アレイが部分トーラス(torus)構成に配置された本発明のイメージ処 理システムの一つの実施形態を示す。 図47は、イメージ処理システムのアレイにおけるデータフローを示す。 図48は、本発明によるセンサスベクトル発生器のハードウェア実行の一つの 実施形態の高レベルブロック図を示す。 図49は、センサスウインドウの実質的に上半分に位置するイメージ要素を有 する中心参照イメージ要素間の比較結果を表す最下位16ビットのためのセンサ スベクトル発生器を示す。 図50は、センサスウインドウの実質的に下半分に位置するイメージ要素を有 する中心参照イメージ要素間の比較結果を表す最下位16ビットのためのセンサ スベクトル発生器を示す。 図51は、センサスウインドウにおけるそれぞれの線に対する32ビットセン サスベクトルを演算するために使用される一連の比較器およびレジスタ要素を示 す。 図52は、相関演算および最適視差決定の高レベルデータフローを示す。 図53(A)および図53(B)は、本発明の一つの実施形態の並列パイプラ イン化データフローを記述するために使用され得る左および右イメージに対する 左および右センサスベクトルを示す。 図54は、本発明の一つの実施形態の並列パイプライン化アーキテクチャのブ ロック図を示す。 図55は、D=5のときに左および右センサスベクトルがどのようにそしてい つ相関ユニットを通って進行するかの擬似タイミング図を示す。 図56は、本発明の待ち(queueing)バッファの一つの実施形態を示す。 図57は、本発明の相関ユニットの一つの実施形態のハードウェア実行を示す 。 図58は、物体の垂直移動がリアルタイムに処理され得る動き解析のための並 列パイプライン化システムの一つの実施形態を示す。 図59は、本発明のイメージ処理システムの部分に関連するいくつかの“スー パーピン”(superpin)バスおよびコネクタを示す。 図60は、本発明のイメージ処理システムアレイ構造の詳細図を示す。 図61は、一つのFPGA演算要素および一対のSRAMの詳細図を示す。 図62は、PCIインタフェースチップおよびデータパスチップの詳細図を示 す。 図63は、クロック制御チップの詳細図を示す。 図64は、上部および底部の外部コネクタおよびそれらのピンの詳細図を示す 。 図65は、不明瞭な光景に対する物体検出のための本発明の利用を示す。 図66は、図65で示された実施形態についてセグメントに分割した表示を示 す。 図67は、映像品質バーチャルワールド表示のための本発明の利用を示す。 図68は、ブルースクリーニング用途を改善するための本発明の利用を示す。 図69は、複数のイメージ合成シナリオにおける本発明の利用を示す。 好ましい実施形態の詳細な説明 I 概要 A.概略 本発明の目的は高い性能、関係するデータ組の素早く効果のある解析を提供す ることである。本発明は、三つの関係する局面、すなわちアルゴリズム/ソフト ウェア、ハードウェア実行、および産業用途を組み入れる。従って、本発明の様 々な実施形態は、(1)これらのデータの組またはこれらのデータの組のいくつ かの部分がいくつかの測定に関係付けられているかを決定し得、(2)これらの データの組またはこれらのデータの組のいくつかの部分がどのようにして関係付 けられているかを決定し得、(3)後で抽出された情報が元の本質的な情報を十 分に表すような方法におけるデータの組の元の情報を変換する変換スキームを利 用し得、(4)関係付けられているそれらのデータの組からいくつかの基礎とな る本質的な情報を抽出し得、(5)ユーザが望む基礎となる情報に目立って貢献 はしない他の情報(本質的かそうでないか)を排除し得る。これらの局面は以下 でより詳細に議論する。 本発明の一つの局面は、一般に対応アルゴリズムと呼ばれるソフトウェア/ア ルゴリズム実行である。一般に、対応アルゴリズムの一つの実施形態は以下のス テップを含む。1)行データの組をベクトルに変換する。2)そのベクトルを使 用してデータの組の相関を決定する。最終結果は、一つのデータの組におけるデ ータ要素と他のデータの組におけるデータ要素との間の最適相関を表す視差(di sparity)値である。言い換えると、最適視差はまた、一つのデータの組におけ る一つのデータ要素と他のデータの組における最適整合データ要素との間の距離 を表す。 本発明で使用される対応アルゴリズムの一つの実施形態の変換部分は、非パラ メトリックローカル変換として知られる変換アルゴリズムのクラスを構成する。 そのようなアルゴリズムは、関係のある範囲および性質を決定するために関係付 けられたデータの組を評価するように設計され、それぞれの組に対して使用され るデータ収集技術における差の結果として異なり得る(関係付けられているのだ が)データの組に対して特に有用であり得る。 特定の実施形態では、本発明の対応アルゴリズムは以下のステップのいくつか またはすべてを組み入れ得る。それぞれは以下に、より詳細に記述される。(1 )二つ以上の関係付けられたデータの組を必要とする。(2)両方のデータの組 におけるデータの変換演算、同じデータの組における他のデータ要素との関係に よるデータ要素を特徴付ける変換演算を利用する。(3)変換された特徴を使用 し、一つのデータ組におけるデータ要素を他のデータの組におけるデータ要素と 相関する。(4)異常と思われるか、または、しきい値または対象演算に合わな い(do not meet)結果を選別するように設計される方法における結果をフィルタ リングする。(5)有用なフォーマットにおける結果を報告または使用する。 本発明のソフトウェア/アルゴリズムの局面の他の実施形態では、センサスお よび相関ステップは並列およびパイプライン化様式で実行される。アルゴリズム のシストリック(systolic)性質は効率および速度を促進する。従って、一つの イメージにおけるセンサスベクトル(または相関ウインドウ)は、並列およびパ イプライン化方法における他のイメージのそれぞれの視差シフトセンサスベクト ル(または相関ウインドウ)のそれぞれと相関される。この相関ステップと同時 に、左右一貫性検査が実行される。従って、最適視差およびこれらの視差の左右 一貫性検査は同時に実行される。 本発明のハードウェア局面は、効率的におよび低コストでデータの組の比較を 行うように設計される並列およびパイプライン化演算システムを表す。データは パイプラインを通ってシストリックな性質において処理される。このイメージ処 理システムは高演算密度、高メモリ帯域幅、および、高I/O帯域幅を介して高 性能を与える。このハードウェアの実施形態は、データ分布技術の変化を援助す るように設計される柔軟性のあるトポロジーを含む。全体のスループットは、本 発明のアレイボードを均等に通ってリソースを分布することによって増加される 。そのようなトポロジーの一つは、再構成システムに対するトーラス構成である 。 一つの実施形態では、本発明のハードウェアシステムは再構成され得る。つま り、そのハードウェアを特定の演算に適合するように近くに再構成できる。例え ば、多くの乗算が必要ならば、そのシステムは多くの乗算器を含んで構成される 。他の演算要素または機能が必要である場合、それらもまたシステムにおいてモ デリングされまたは形成され得る。このように、システムは特定の演算(リアル タイム映像または音声処理)を実行するように最適化され得る。再構成可能なシ ステムはまた柔軟であり、製造中、テスト中、または、使用中に生じる少数のハ ードウェア欠陥にユーザは対処できる。 一つの実施形態では、本発明のハードウェア局面は、FPGAチップおよび高 速SRAMからなる演算要素の二次元アレイとして設計される再構成イメージ処 理システムを構成し、リアルタイム相互作用マルチメディア用途に必要とされる 演算リソースを与える。一つの実施形態では、演算システムは、演算要素、デー タパスユニット、PCIインタフェースユニット、および、クロック制御ユニッ トの4×4アレイを含む。演算要素は、センサス変換を実行し、相関を決定し、 他の変換機能を実行する。データパスユニットは、アレイにおける様々な演算要 素に対するデータの経路を制御する。PCIインタフェースユニットはPCIバ スに対するインタフェースを与える。クロック制御ユニットは、演算要素、デー タパスユニット、および、PCIインタフェースユニットに対するクロック信号 を生成し、分配する。 本発明の用途の局面は、イメージまたは映像の処理に関係付けられた用途を含 み、そのアルゴリズムは、深度測定および動き追跡を含む様々な目的に使用され 得る。アルゴリズムから派生する情報は、物体検出および認識、イメージ理解、 圧縮および映像編集または合成として目的に使用され得る。 本発明の様々な局面は、様々な用途に使用され得るのだが、一つの図示的な実 施形態は、発明の性質を図示するのに使用される。この実施形態では、センサス 変換として知られる様々な非パラメトリックローカル変換は同一の光景を同時に 記録するのに使用される二つのカメラから受信されるイメージに適用される。そ れぞれのイメージにおけるそれぞれのピクセルは、輝度値として表される。その ピクセルは選択された周囲のピクセルに対するそれぞれの輝度の関係を表す“セ ンサスベクトル”に変換される。すなわち、その関係というのは、対象ピクセル の輝度が、他のピクセルの輝度よりも高いか低いかである。その後、一つのイメ ージにおける対象ピクセルを取り囲むウインドウからのセンサスベクトルは、合 計ハミング距離と表される比較で、他のイメージにおける様々なウインドウから のセンサスベクトルと比較される。その合計ハミング距離は、一つのイメージに おける対象ピクセルと他のイメージにおける同一のピクセルとのあいだの適当な 整合を決定するのに使用される。その後、その整合は、一つのイメージにおける ピクセルのxy−座標と他のイメージにおける整合ピクセルのxy−座標との間 の差に基づく視差として(またはオフセットとして)表される。その後、結果は 、エラー検出を受けて、しきい値付けに供される。エラー検出およびしきい値付 けに供される、逆方向の比較を含んで同一の整合ピクセルが比較が他の方向にい つなされたかを見つける(左右一貫性検査)かを決定し、イメージにおける構成 を調べて結果が十分に信頼性のあるもの(対象演算子)かどうかを決定し、生じ た視差の集合解析を適用する(モードフィルタ)。 一つのイメージからのピクセルが、他のイメージにおけるピクセルにいったん マッピングされ、その視差がわかると、それぞれのイメージにおける光景に対す るカメラからの距離は計算され得る。その後、この距離(または深度)は、様々 な用途に使用され得る。それらの用途は、物体検出(周囲を動くロボットに有用 である)および物体認識(物体エッジが深度視差に基づいて決定され得、物体の 距離が物体の全三次元構造を決定するのに使用され得るので、物体はさらに容易 に認識され得る)を含む。そのアルゴリズムにおけるステップの一つの特定の実 施形態は、以下のことを含む。 1)二つのカメラから入力イメージを受信する。 2)エピポーラ(epipolar)線が結果イメージにおける線を走査されるように入 力イメージを修正する。ただし、この制限がすでに満たされていれば、このステ ップが省略され得る。 3)センサス変換のようなローカル変換を使用して、入力イメージを変換する 。これは、それぞれの輝度イメージにおいて別々になされる。 4)二つの変換されたピクセルPおよびQとの間のハミング距離を演算するこ とによってステレオ整合を決定する。ここで、Pは一つの入力イメージに対して 変換されたピクセルであり、Qは第二の入力イメージに対するサーチウインドウ における変換されたピクセルである。これは、それぞれの輝度イメージにおいて 別々になされる。 5)スライディング合計を使用してこれらのハミング距離を四角の相関ウイン ドウ全体で合計し、サーチウインドウ全体での最小合計ハミング距離の変位を決 定する。 6)参照イメージを用いて上で逆にしたステップ3を概念的に繰り返すことに よって左右一貫性検査を任意に実行し、結果の変位が逆であると決定する。構成 されないピクセルを分類する。 7)対象演算子を入力イメージに任意に適用する。十分なコントラストまたは 文のない領域における変位は疑いのあるものとして分類され得る。 8)モードフィルタを適用し集合解析に基づいた視差を選択する。 9)参照イメージにおけるそれぞれのピクセルに対して、他のイメージにおけ る対応するピクセルに対する変位を含む新しいイメージを生成する。他のイメー ジは、左右一貫性、対象信頼、および、モードフィルタ視差選択についての注釈 に従う最小合計ハミング距離に関連付けられる。 ここで、ソフトウェア/アルゴリズムは、二つのイメージ、左カメラからの一 つのイメージ、および、右カメラからの他のイメージを受信するイメージ処理ア ルゴリズムである。輝度イメージは明瞭であるがどこか関係付けられたデータの 組を表す。アルゴリズムは入力として二つの輝度イメージを取り、それぞれのイ メージピクセルに対する視差を構成する出力イメージを生成する。センサス変換 は両方のイメージにおけるそれぞれのピクセルに対するセンサスベクトルを生成 する。所与のセンサスベクトル/ピクセルに対するサーチウインドウにおけるす べてのハミング距離の最小ハミング距離は、再び最適ハミング距離として選択さ れる。その後、最適ハミング距離に関連付けられる視差は、様々な処理後用途に 使用される。 出力は、任意にさらに処理され、それぞれの結果ピクセルに対する信頼測定お よびイメージ雑音特性に基づくしきい値付けを与える。一つ以上のそのような機 構が使用されるならば、信頼/エラー検出検査を通過するまで、最初に選択され る視差は単に一時的なものである。三つの信頼/エラー検出検査のいずれかの組 み合わせは、このシステム(左右一貫性検査、対象演算子、および、モードフィ ルタ)において使用され得る。 左右一貫性検査は、エラー検出の形態である。この検査は右イメージにおける イメージ要素による最適イメージ要素として選択される左イメージにおけるイメ ージ要素が、最適イメージ要素として右イメージにおける同一のイメージ要素を 選択するかどうかを決定し、確認する。対象演算は、捕捉される光景の構成に基 づいた高レベルの信頼に輝度イメージが関連付けられているかどうかを決定する 。従って、均一な構成である光景のイメージ要素に関連付けられる対応演算は、 構成がさらに変化しているそれらの光景でよりも低い信頼値を有する。モードフ ィルタは選択された最適な視差が集合解析に基づく視差を選択することにより高 度の一貫性を有するかどうかを決定する。一つの実施形態では、モードフィルタ はウインドウにおけるそれぞれの視差の頻度を計数し、そのウインドウに対する 最大計数をもって視差を選択する。 いくつかの実施形態では、イメージ処理システムはその外部環境からデータを 受信し、対応を演算し、距離/深度計算、物体検出、および、物体認識といった 様々な処理後の産業用途に対して対応演算の結果を使用する。本発明の以下のイ メージ処理システムは、対応アルゴリズムの複数の変形および実施形態を実行し 得る。アルゴリズムは、以下でさらに詳細に記述される。ステレオ表示に対する 対応アルゴリズムの実行では、イメージ処理システムの一つの実施形態は非バー スト(burst)モードにおけるPCIバスインタフェースから入力データとして一 対のステレオイメージを受信し、24個のステレオ視差を演算する。入力データ 対は、時分割方法におけるデータを受信する空間的に分けられた二つのカメラま たはセンサ、または、単一のカメラまたはセンサであり得る。別の実施形態は、 16個の視差のみを使用する。他の実施形態は、他の数の視差を使用する。 この完成したシステムは、イメージ捕捉、ディジタイゼーション、ステレオお よび/または動き処理、および、結果の伝達を含む。これら他の実施形態は、デ ータの捕捉において一つ以上のセンサを使用し、アルゴリズムはデータを処理す る。 一般的な特徴として、再構成可能なイメージ処理システムは、そのハードウェ アを再構成できて、すぐに特定の演算に適する機械またはエンジンである。多数 の乗算が必要であれば、システムは多数の乗算器を有するように再構成される。 他の演算要素または機能が必要であれば、それらはそのシステムにおいてモデル となり形成される。このようにコンピュータは最適化され、特定の演算(例えば リアルタイム映像または音声処理)をさらに効率的に実行する。再構成可能なイ メージ処理システムの別の利点は、その柔軟性である。テストまたはデバッグ中 に生じる短絡のようなハードウェア欠陥は製造に重大な影響を与えることはない 。ユーザは、他の線を使用して必要とされた信号の経路を決めることによってこ れらの欠陥に直面し得る。 ステレオ表示用途に対するほとんどのコンピュータは、それらの指示を連続し て実行する。本発明では、その指示を同時に実行して、再構成可能なイメージ処 理システムの範囲全体に広がる。そのような演算を支援するために、本発明の再 構成可能なイメージ処理システムは、FPGAチップおよび高速SRAMを構成 する演算要素の二次元アレイとして設計されており、リアルタイム相互作用マル チメディア用途に必要とされる演算リソースを与える。 以下の様々な図に対する議論では、用語“イメージデータ”および“イメージ 要素”は、様々なレベルの抽出概念でのイメージを表すデータのすべての局面を 表すために使用される。従って、これらの用語は、単一ピクセル、ピクセル群、 変換された(センサスまたはランク)イメージベクトル、単一データのハミング 相関値、相関合計、外部指標、対象演算合計、または、その状況に依存するモー ドフィルタ指標を意味し得る。 B.PCI準拠システム 図1は、二つのセンサまたはカメラが物体に関してデータを捕捉し、演算シス テムにデータを提供する本発明の特定の産業用途を示す。映像または他の映像処 理システムで捕捉された光景10は物体11と背景12を含む。この図では、物 体11にはフォルダを持った人間がいる。この物体11は静止しているか動いて いるかのいずれかであり得る。ただし、光景10におけるすべての要素は、構成 、深度、および、動きをといった変化する特性を有し得る。従って、人間のシャ ツ はズボンおよび持っているフォルダと異なるテクスチャを有し得る。 x−y−z座標システム15によって示されるように、光景は三次元図である 。本発明は一次元または二次元図を捕捉することも同様に可能である。ただし、 本発明の様々な実施形態は、これらの実施形態においてリアルタイムに決定され る二つのカメラの間隔の関係、ピクセル間隔、焦点距離、レンズ特性、および、 視差といった情報から距離/深度を決定し得る。従って、Dana H.Ballard & Ch ristopher M.Brown,COMPUTER VISION 19-22(1982)を参考として援用すると、 となる。ここでzは深度位置、fは焦点距離、2dはカメラ間隔ベースライン、 x−xは視差である。 カメラ/センサシステム20は、演算システム30によるさらなる処理のため のイメージを捕捉する。カメラ/センサシステム20は、実装ハードウェア23 に取り付けられた左カメラ21と右カメラ22を有する。カメラ21および22 は、赤外センサのようなセンサにもなり得る。この図におけるカメラの大きさは 、教示または説明する目的のために拡大されているので、図示されているよりも さらに小さくなり得る。例えば、カメラは、個々が身につけるめがねになり得る 。 この特定の図示は、実装ハードウェア23の使用を示しているが、図1のよう な実装ハードウェアは本発明を行うにあたり必要ではない。カメラはなんらかの 実装ハードウェアを使用することなく様々な物体に直接に実装され得る。 他の実施形態では単一のカメラのみが用いられる。単一のカメラは、動き得る か、または動き得ない。従って、別個のイメージは、空間/時間特質によって同 一であると認められ得る。単一のカメラを用いて、“左”イメージはある時間に 捕捉されたイメージと対応し得、“右”イメージは別の時間に捕捉されたイメー ジと対応し得る。従って、解析は連続するフレームの比較を含む。つまり、a、 b、c、および、dが単一のカメラで捕捉されたイメージの連続するフレームを 表すならば、aとbが比較され、次にbとc、次にcとd、などと続く。同様に 、 単一のカメラは二つの別個の位置(すなわち、左位置および右位置)を前後へシ フトしまたは動き、捕捉されたイメージは左または右イメージのいずれかへ適切 に明示または指定される。 左カメラ21と右カメラ22は一対のステレオイメージを捕捉する。これらの カメラはアナログまたはディジタルのいずれかであり得る。ディジタルカメラは Silicon Visionによって広められたものを含む。本発明はディジタル情報を演算 するので、システムがアナログカメラを含んでいれば、画像情報はディジタイザ (図示せず)を使用してディジタル形式に変換されなければならない。 フレームグラバは、カメラシステム20または演算システム30のいずれかに 取り付けられ得る。たいてい、フレームグラバはディジタイザを有し、入ってく るアナログ信号をディジタルデータストリームに変換する。ディジタイザがフレ ームグラバに与えられないならば、別個のディジタイザが使用されうる。イメー ジデータは、ケーブルまたはワイヤ40を介してカメラ/センサシステム20か ら演算システム30に送信される。 当業者によって通常知られているように、アナログ信号を形成する輝度データ は、カメラ/センサシステム20によって最初に捕捉される。アナログ信号は、 電圧または電流の大きさによって表され得る。一つの実施形態では、カメラ/セ ンサシステムは、この電圧または電流の大きさを0から255の範囲のルミナン ス値に直す。ここで、0は黒を、255は白を表す。他の実施形態では、ルミナ ンス値は、0から511の範囲であり得る。これら0から255のルミナンス値 をディジタルで表すために、8ビットが使用される。この8ビット値は、それぞ れのピクセルまたはイメージ要素に対する輝度データを表す。他の実施形態では 、カメラ/センサシステムは、イメージされる光景の温度特性を捕獲する赤外セ ンサである。この温度情報は、輝度データに直され得、同じ方法でルミナンス値 として使用され得る。 演算システム30は、コンピュータ34、マルチメディアスピーカ32および 33、モニタ31、および、マウス36を有するキーボード35を含む。この演 算システム30は、単独のパーソナルコンピュータ、ネットワークワークステー ション、ネットワークにつながったパーソナルコンピュータ、ネットワークター ミナル、または、特別な目的の映像/グラフィックワークステーションであり得 る。 示された実施形態では、イメージデータを処理するのに使用されるハードウェ アおよびアルゴリズムは、演算システム30のコンピュータ34に見られる。演 算システムは、周辺装置相互接続(PCI)規格に従う。一つの実施形態では、 PCまたはワークステーションホストと再構成可能なイメージ処理システムとの 通信は、PCIバスで扱われる。 生放送または映像のソースデータは、フレームグラバから入ってくるイメージ をともにPCIバスでイメージ処理システムに送られる。あるいは、カメラは映 像データをイメージ処理システムの端子に直接送られ得る。その方法は、(1) アナログ入力を使用して、ドータカードにおいてディジタイザを使用してイメー ジ信号をディジタル化して、ノイズ補償の間にディジタルデータをイメージ処理 システムに送るか、または、(2)ディジタルカメラを使用するかのいずれかで ある。イメージ処理システムの視差計算は、明度が映像カメラに対して近接する 光景要素のリアルタイム映像を生成する。 図2は、パーソナルコンピュータまたはワークステーションにおいて本発明の イメージ処理システムが一つ以上のPCIカードに適合する周辺装置相互接続( PCI)準拠システムを示す。PCI準拠システムは、演算システム30におい て見られ得る。本発明の一つの実施形態は、PCIバス182に接続されるイメ ージ処理システム110である。ホスト演算システムは、ローカルバス180お よびホスト/PCIブリッジ101に接続されるCPU100を含む。さらに、 ホストプロセッサは、メインメモリ102に接続されるメモリバス181を含む 。このホストプロセッサは、ホスト/PCIブリッジ101を介してPCIバス 182に接続される。 PCIバス182に接続され得る他の装置は、音声周辺 装置120、映像周辺装置131、バス188を介して映像周辺装置131に接 続される映像メモリ132、SCSIアダプタ140、ローカルエリアネットワ ーク(LAN)アダプタ150、グラフィックアダプタ160、および、複数の ブリッジを含む。これらのブリッジは、PCI/ISAブリッジ170、PCI /PCIブリッジ171、および、前述のホスト/PCIブリッジ101を含む 。 SCSIアダプタ140は、ディスク141、テープドライブ142、CD R OM143、SCSIバス183を介してSCSIアダプタ140に接続される すべてのような複数のSCSI装置に接続され得る。LANアダプタ150は、 ネットワークバス184を介する演算システム30に対するネットワークインタ フェースを可能にする。グラフィックアダプタ160は、バス186を介して映 像フレームバッファ161に接続される。PCI/PCIブリッジ171は、バ スマスタによる最適バスアクセスを可能にしながら、不当なロード(undue load) なしに単一のシステムにおける多数のPCIバスおよびPCI装置の相互接続を 可能にする。PCI/PCIブリッジ171は、例示的なPCI装置172およ び173をPCIバス187に接続する。PCI/ISAブリッジ170は、I SA装置が同一のシステムに接続されることを可能にする。PCI/ISAブリ ッジ170は、バスマスタ174、I/Oスレーブ175、および、ISA拡張 バス185を介するメモリスレーブ176に接続される。フレームグラバ130 は、PCIバス182を介する本発明のイメージ処理システム110にイメージ データを与える。イメージ処理システム110もまた、同一のPCIバス182 を介してローカルホストプロセッサ100に接続される。 当業者によって通常知られているように、フレームグラバ130のようなフレ ームグラバは、動く映像、静止した映像、および、生放送の映像オーバーレイ(o verlay)を捕捉し表示するフレームグラバイメージ処理システムを与える。フレ ームグラバが存在することで、Windowsに対するVideo、PCMCI A、または、PCIに十分な互換性があり、および、単一のフレームを捕らえる ことが出来る。これらのフレームグラバは、カムコーダ(camcorder)、映像レコ ーダ、VCR、ビデオディスク、防犯カメラ、任意の規格NTSCまたはPAL に互換性のあるソース、RCA型端子でNTSC信号を出力する任意の装置、ま たは、任意の規格外の映像信号を含む様々なソースからの入力を受信することが 出来る。 上述した実施形態では、フレームグラバは、ピクセルアレイまたはディジタル 画像要素を生成する。そのようなピクセルアレイはよく知られている。上述した 実施形態は、カメラによって生成された輝度情報を使用し、数アレイを作る。こ こで、それぞれの数は、特定の位置での光の強度に対応する。典型的に、数は正 確に8ビットである。ここで、0は最も暗い強度値を、255は最も明るい強度 値を表す。X(イメージの幅)およびY(イメージの高さ)の典型的な値は、3 20×240、640×240、および、640×480である。それぞれのピ クセルで捕捉された情報は、クロミナンス(または色相)およびルミナンス(輝 度として本明細書で示している)を含み得る。 代替の実施形態では、イメージデータは、フレームグラバ130を介するPC Iバス182に沿いPCIシステムを通って与えられる必要はない。点線矢印1 99で示されるように、カメラ/フレームグラバからのイメージデータは、イメ ージ処理システム110に直接引き渡される。 PCI準拠システムは、42フレーム/秒で320×240ピクセルイメージ での24個のステレオ視差を演算し、32ビットのセンサスデータの形成を密集 して生成する。この速さで動作すると、イメージ処理システムは、約23億回の RISC相当の命令/秒(2.3giga-ops/秒)で動作し、5億バイト(500 MB)のメモリアクセス/秒を維持し、2GB/秒のI/Oサブシステムのバン ド幅を達成し、約7700万回の点×視差(point×disparity)測定(PDS)/ 秒を達成する。バーストPCIバスインタフェースを有すると、約124億回の RISC相当の演算/秒および2690MB/秒のメモリアクセスを使用して、 このシステムは255フレーム/秒を達成し得る。入力データ対は、時分割方法 でデータを受信する二つの空間的に分離されたカメラまたはセンサ、または、単 一のカメラまたはセンサからなり得る。 C.アレイボード 図3に示されているように、PCIバス182に接続されたイメージ処理シス テム110は、演算要素及びメモリのアレイ114、PCIインターフェースユ ニット110、データパスユニット112、クロック制御ユニット113、及び 幾つかの接続バス115を含む。アレイ114は、部分的なトーラス構成に配列 された16個のフィールドプログラマブルゲートアレイ(FPGA)と16個の スタティックランダムアクセスメモリ(SRAM)との均質なアレイを含む。こ れは、単一のボード上に実現され得る。もちろん、ASIC及びカスタム集積回 路で実行される場合には、再構成可能な要素を使用せず、トーラス構成は使用し ない。 16個のFPGAのアレイは、センサス変換、相関、エラー検査(例えば、左 右一貫性検査)、及び様々な伝送機能を実行する。これらの機能は、適用可能な レジスタ及びロジックの適切なプログラミングを介して、FPGA内に構築され る。本発明のある実施形態は、シストリック的な(systolic)方法でデータを処 理する。輝度イメージの各走査線に対して、本発明の並列及びパイプライン化ア ーキテクチュアは、あるイメージ中の各センサスベクトル(すなわち各イメージ 要素)と他のイメージのサーチウインドウの中のそのセンサスベクトルの各々と 比較し得る。ある実施形態では、この並列及びパイプライン化システムの出力が 、完全なサーチウインドウを有する各データストリームについての、左右最適視 差数、ウインドウの左右最小合計ハミング距離、右左最適視差数、及びウインド ウの右左最小合計ハミング距離である。 PCI対応演算システムで使用される場合には、PCIインターフェースユニ ットが、PCIバスと演算要素のイメージ処理アレイとの間で、(読み出し動作 に対する)イメージデータ及び(書き込み動作に対する)対応データのトラフィ ックを制御する。更に、PCIホストが、2つ或いは3つのそのようなイメージ 処理システムを含んでおり、結果として、単一の標準パーソナルコンピュータ中 のより密で且つフレキシブルなパッケージをもたらす。ホストコンピュータは、 マザーボード上のPCIコントローラを通して、PCIインターフェースユニッ トと直接に通信する。PCIバスのためのインターフェースは、バースト或いは 非バーストモードであり得る。 データパスユニット112は、アレイの様々な選択された部分へ及びそこから のデータの移送、並びに64ビットPCIバス拡張部の管理について、責任を担 っている。データパスユニット112は、ホストプロセッサとアレイとの間での 双方向データ伝送を許容し且つデータ通信タスクを管理する制御構造を有して、 プログラムされている。アレイチップ間のパイプライン化されたデータパスは、 33MHz以上で動作する。データパスユニット112は、アレイとPCIバス との間の通信を制御するが、PCIバスの64ビット拡張部にも直接に接続され ている。データパスユニット112は、PCI32チップによってプログラムさ れており、アプリケーションが必要とするように動的に再構成される。 クロック制御ユニット113及びデータパスユニット112が構成されると、 クロック制御ユニット113はアレイの残りを構成する。構成データをアレイに 直接に伝達するが、1度に16ビット、16アレイ演算要素(FPGA及びSR AM)の各々に1ビットを、送る。アレイが完全にプログラムされると、クロッ ク制御チップは、アレイ全体に対してのクロック分配を管理する。 ある実施形態では、イメージ処理システムは、完全にボードを構成するために 、3レベルのブーストトラップを必要とする。PCIインターフェースユニット 110は、イメージ処理システムをPCIバスに直接に接続する。これは、デー タパスとクロック制御チップとをプログラムし、それらは次にアレイ全体をプロ グラムする。PCIインターフェースユニット110は、PCIバスの構成ビッ トを受け取り、それらをデータパスユニット112及びクロック制御ユニット1 13に転送する。 本発明の基本的なハートウェア及びシステムを用いて、実行すべきアルゴリズ ムの様々な実施形態が述べられる。ハードウエア及び実行されるシステムの更な る詳細は、後述される。 II.アルゴリズム/ソフトウェア A.概略 本発明はアルゴリズムの階層及びこれらのアルゴリズムの様々なアプリケーシ ョンでの使用に関するが、対応アルゴリズムは、深度情報を生成するセンサス変 換を使用する特定のソフトウェア実施形態の記述を通じて、最も良く説明される 。このアルゴリズムは、まず高レベルの概略で説明され、引き続くセクションで は、様々なステップをより詳細に説明する。この明細書の例示的なプログラムで は、MAINと称されるプログラムが、本発明の対応アルゴリズムの一般的な動 作及びある実施形態のフローを与える。 アルゴリズムの第1のステップは、イメージを修正することである。これは、 各々の輝度イメージについて個別に行われる。修正は、ステレオ対応のエピポー ラ制限(epipolar constraint)線がイメージ中の走査線でもあるように、イメ ージを再マッピングすることである。このステップは、カメラの位置合わせが不 適切であったり、レンズのゆがみが個々のイメージを異なったように歪ませたり するときに、有用であり得る。しかし、修正ステップは、オプション的であって 、オリジナルイメージが、一つのイメージからの線が修正無しに他のイメージか らの線の上にうまくマッピングされるような質であるならば、不必要であり得る 。 アルゴリズムの第2のステップは、修正されたイメージにセンサスやランクの ような非パラメトリックなローカルな変換を適用することである。議論される実 施形態では、使用されるアルゴリズムはセンサス変換である。この演算は、各イ メージについての輝度マップをセンサスマップに変換し、センサスマップでは、 各ピクセルが、そのピクセルと周囲のピクセルとの間の輝度関係を示すセンサス ベクトルによって代表される。 第3のステップは、相関である。このステップは、変換イメージの連続する線 に対して演算されて、相関合計バッファを更新する。相関ステップは、参照変換 イメージ2(右のイメージ)のサイズXWINXYWINのウインドウの変換値を、視 差と称される値だけ置換された参照変換イメージ1(左のイメージ)の同様なウ インドウと比較する。比較は、参照イメージ要素のサーチウインドウの内部で、 あるイメージの参照イメージ要素と他のイメージの各々のイメージ要素との間で 行われる。 相関ステップが進行しているのと同時に、信頼値がまた、同じ相関ウインドウ についての左右一貫性検査を実行するか及び/或いは対象計算を合計することに よって、演算される。各々の新しい線に対する対象演算器の結果は、ウインドウ 合計バッファの一つの線に記憶される。左右一貫性検査及び対象演算は、オプシ ョン的である。 相関ステップは、視差結果(disparity result)イメージの演算をもたらす。 ここでは、2つの演算が行われる。(1)各イメージ要素のための最適視差値の 決定、及び(2)低信頼イメージ輝度或いは視差結果の決定、である。最適視差 演算は、最小合計相関値に対応する外部インデックスの生成を伴う。これは、最 適マッチの視差を拾い出す。第2の演算は、(a)輝度値からの閾値信頼値の形 態での対象演算、(b)相関合計バッファ上での左右一貫性検査、及び(c)母 集団分析に基づいた視差を選択するためのモードフィルタ、に基づいて、低信頼 として幾らかの視差結果を除去する。アルゴリズムの最終的な結果は、オリジナ ルイメージとほぼ同じサイズの視差値のイメージであり、視差イメージの各ピク セルは、輝度イメージ2の対応するピクセルの視差である。 図4は、様々な機能が、イメージデータを実行し、取り扱い、且つ操作して、 他の有用なデータを生成する、本発明のある実施形態の高レベルの表現を示す。 本発明のこの実施形態の最終的な目標は、オリジナルイメージの中の個々のイメ ージ要素に対する選択された最適視差の組である視差イメージ290を生成する ことである。この視差イメージを得るために、イメージデータは、変換され、相 関され、エラー及び信頼を検査されなければならない。 光景10が、左カメラ21及び右カメラ22によって捕捉される。適切なフレ ームグラバ及びデジタイザが、本発明の再構成可能なイメージの処理システムに イメージデータを提供する。個別のピクセル要素及びその各々の輝度の形態であ る左のイメージデータ200と右のイメージデータ201とは、左の輝度イメー ジ210と右の輝度イメージ211とにマッピングされる。これらのイメージは 、それぞれ幅がX及び高さがY(XxY)である。センサス変換或いはランク変 換のような非パラメトリックローカル変換は、これらの輝度イメージの各々に適 用される。変換215は、矢印218によって示されているように左の輝度イメ ージ210に適用されて、変換されたベクトル左イメージ220を生成する。同 様に、変換216は、矢印219によって示されているように右の輝度イメージ 211に適用されて、変換されたベクトル右イメージ221を生成する。これら の変換は、各々のイメージ要素の近隣部或いはウインドウの中のこれら2つの輝 度イメージの中のイメージ要素の実質的に全てに適用される。従って、ウインド ウのサイズ及び参照イメージ要素の位置は、輝度イメージの端のどのイメージ要 素が変換計算で無視されるかを決定する。これらの無視されたイメージ要素は参 照イメージ要素としては使用されないが、これらは、他の参照イメージ要素の変 換ベクトルの計算では、依然として使用され得る。 本発明は、更に相関合計プロセスを含む。相関合計プロセスは、左イメージと 右イメージとの間の対応の決定における一ステップである。相関合計プロセス2 25は、左イメージ220のための相関ウインドウの内部の変換ベクトル、及び 右イメージ221の中の同じサイズの相関ウインドウの内部の変換ベクトルに動 作して、単一の矢印226で示されているような相関合計マトリクス230を生 成する。この相関合計マトリクス230の生成において、左或いは右イメージの 何れかが参照として使用されて、もう一方のイメージの中のウインドウがシフト される。右イメージが参照として取り扱われるならば、相関合計マトリクス23 0は、相関ウインドウの中の右イメージ221の各イメージ要素がどのように相 関しているか、或いは左イメージ要素の右イメージ要素からのシフト或いは視差 の各々についての相関ウインドウの中で左イメージ要素にどのように対応してい るかを示すデータを含む。定義によって、特定の左イメージ要素の、右イメージ 要素の様々なシフト或いは視差との相関或いは対応を示すデータは、やはり相関 合計マトリクス230に含まれている。これらの視差に基づく相関合及び相関合 計マトリクス230、矢印231で示される最適視差は、各右イメージ要素につ いて選択されて、外部インデックスアレイ270に記憶され得る。最終的な視差 イメージ290は、その後に、矢印271で示されているように、外部インデッ クスアレイ270で決定される。ステレオの場合には、視差は、変換イメージ1 のウインドウと変換イメージ2のウインドウとの間の水平オフセットである。動 きの場合は、視差は垂直オフセットに渡って同様に範囲を有し、第2の変換イメ ージは、垂直オフセットを有するウインドウを有するために、より多くの線を読 まなければならない。これは、図58に関連して後述される。 視差イメージ決定は、3つのオプションの信頼/エラー検出検査、すなわち、 対象演算、左右一貫性検査、及びモードフィルタを含み得る。対象演算は、輝度 イメージが高レベル信頼に関連しているかを、捕捉された光景のテクスチュアに 基づいて決定する。これより、均一なテクスチュアである光景のイメージ要素に 関連している対応演算は、テクスチュアが変化している光景よりも、低い信頼を 有する。対象演算は、輝度イメージの一つのみ、左側或いは右側のいずれかにの み、適用される。しかし、他の実施形態は、両輝度イメージに適用される対象演 算をカバーし得る。図4では、対象演算235は、矢印236によって示されて いるように右輝度イメージに適用され、対象ウインドウの内部の各イメージ要素 について、矢印237で示されているように合計のスライディング視差(SSD )アレイ240を生成する。閾値演算241の適用によって、最終対象結果アレ イ250が生成される。対象結果は、特定のイメージ要素がこのイメージ処理シ ステムの中に確立された信頼閾値をパスするかどうかを反映するデータを含む。 対象結果アレイ250の中のデータに基づいて、視差イメージ290は外部イン デックスアレイ270に関連して決定され得る。 左右一貫性検査は、エラー検出の形態である。この検査は、右イメージの中の イメージ要素によって最適イメージ要素として選択された左イメージの中のイメ ージ要素が、最適イメージ要素として、右イメージの中の同じイメージ要素をま た選択する事を、決定且つ確認する。左右一貫性検査245は、矢印246によ って示されているように相関合計アレイ230に適用され、矢印276で示され ているように外部インデックスアレイ270と比較され、矢印247によって示 されているようにLR結果アレイ260を生成する。LR結果アレイ260は、 左右一貫性検査をパスするイメージ要素を示すデータを含む。LR結果アレイ2 60は、外部インデックスアレイ270と協同して、矢印261によって示され るように視差イメージ290を生成するために使用される。 第3の信頼/エラー検出検査は、モードフィルタである。モードフィルタは、 母集団分析に基づいて視差を選択することによって、選択された最適視差が高度 の一貫性を有するかどうかを決定する。これより、外部インデックスアレイ27 0の中の選択された最適視差が、高度の一貫性を示さないならば、その後これら の最適視差は無効にされる。モードフィルタ275は、矢印276に示されてい るように外部インデックスアレイ270に動作し、矢印277に示されているよ うにモードフィルタ外部インデックスアレイ280を生成する。モードフィルタ 外部インデックスアレイ280は、特定のイメージ要素がその視差一貫性検査を パスした視差を選択したかどうかを示すデータを含む。データ及びモードフィル タ外部インデックスアレイ280は、矢印281に示されるように、外部インデ ックスアレイ270と協同して視差イメージ290を生成するために使用され得 る。 これらの3つの信頼/エラー検出検出検査がオプションであることに留意され たい。幾つかの実施形態は、視差イメージ290の決定に当たってこれらの3つ の検査の全てを行い得るが、他の実施形態ではこれらの検査を全く含まなくても よい。更に他の実施形態は、これらの検査の組合せを含み得る。或いは、対象演 算、左右一貫性検査、及びモードフィルタを含む単一のプログラムが、MAIN と呼ばれ得る。この単一プログラムでは、各々のウインドウの中のウインドウサ イズ及び参照点の位置が、この信頼/エラー検出検査プログラムの開始において 一度実行される。 これらの図は結果の一時的な記憶のために様々なメモリの使用を図示している が、他の実施形態では、結果を記憶する必要性を無くし得る。これらの実施形態 は、上記の様々な演算を並列に及びパイプライン方式で実行して、パイプライン のあるステージで得られた結果が直ぐ後のステージで使用される。残念ながら、 タイミングの要求を満たすために、幾つかの一時的な記憶装置が必要であり得る 。例えば、左右一貫性検査は相関演算と並列に発生する。パイプラインの出力は 、各イメージに対する右から左への最適視差だけではなく、左から右への最適視 差も生成する。検査が行われると、結果は必ずしもLR結果アレイ260に記憶 されない。そのような記憶装置(strage)は、結果が他のプロセッサにオフロー ドされるか、或いはイメージ処理のヒストリー的な記録が望まれる時に、必要で ある。 B.ウインドウ及び参照点 先のセクションは、対応アルゴリズムの概略を示した。このセクションでは、 アルゴリズムの各ステップをもっと詳しく説明する後のセクションで使用される ある概念の、より詳しい説明を提供する。 図5(A)及び5(B)は、ウインドウ或いは近隣部、参照イメージ要素、参 照イメージ、及び視差の概念を示す。図5(A)は、右イメージが参照として指 定されたときの所与の視差に対する相対的なウインドウ位置を示し、図5(B) は、左イメージが参照として指定されたときの所与の視差に対する相対的なウイ ンドウ位置を示す。 ウインドウ或いは近隣部は、参照イメージ要素の近くの規定された近傍或いは 領域における、イメージ要素の(輝度イメージに比較して)小さいサブセットで ある。本発明では、ウインドウのサイズはプログラム可能である。ある実施形態 は、9x9のサイズの変換ウインドウを使用し、他のウインドウの組は全て7x 7のサイズである。変換ウインドウと他のウインドウ(例えば、相関ウインドウ 、対象ウインドウ、モードフィルタウインドウ)との相対的なサイズの変更が、 本発明の精神及び範囲から逸脱することなく使用され得るが、より小さい相関ウ インドウの使用は、深度或いは動きの不連続さにおいて、よりよい局在化をもた らす。 ウインドウ内での参照イメージ要素の位置もまた、プログラム可能である。例 えば、変換ウインドウのある実施形態は、変換ウインドウの中心に位置する参照 点を使用する。他の実施形態では、参照イメージ要素はウインドウのより下の右 側角に位置する。ウインドウの右下角の参照点としての使用は、本発明のボック スフィルタリング実施形態を手助けするが、そこでは、後述するように、過去に 計算された結果を、各々の現在の計算に対するウインドウの合計を更新するため に使用する。このようにして、ウインドウがあるイメージ要素から他に動くにつ れて、新しい要素のみが右下角のイメージ要素になる。 図5(A)は、参照イメージ要素302に関連したウインドウ301に沿った 右イメージ300を示す。同様に、左イメージ303は、ウインドウ304とそ れに関連した参照イメージ要素305とを含む。これらのウインドウ及びそれぞ れのイメージの相対的なサイズは、図示の目的で誇張されている。右イメージ3 00のウインドウ301のサイズは、XWINxYWINである。左イメージ303の ウインドウ304のサイズも、XWINxYWINである。右イメージ300の上での ウインドウ301の位置は、参照イメージ要素302の位置によって定義される 。ここで、参照イメージ要素302が、(XREF,YREF)に位置している。参照 イメージ要素302に関連する様々な演算及び動作が、ウインドウ301の中の 各々の選択されたイメージ要素に対して実行される。ある場合には、ウインドウ 301の中の各々の且つ全ての要素が計算で使用され、他の場合には、イメ ージ要素の一部のみが演算のために選択される。例えば、9x9の変換ウインド ウは、その中に位置する81のイメージ要素を有しているが、実際の変換操作は 、参照イメージ要素を囲んでいる32のイメージ要素のみを使用する。しかし、 相関計算のためには、7x7のウインドウは49のイメージ要素を有し、49の イメージ要素の全てが相関演算に使用される。 本発明のある実施形態では、右イメージ300が参照イメージに設定され、左 イメージ310が、各シフト或いは視差値に対する様々な相関合計演算のために シフトされる。これより、視差がゼロ(d=0)では、右イメージのためのウイ ンドウ301は(XREF,YREF)に位置し、左イメージ303のウインドウ30 4は、(XREF,YREF)の対応する位置に位置している。右イメージ300は参 照イメージに指定されているので、左イメージ303のウインドウ304は、各 視差値について左から右ヘシフトされる。これより、参照イメージ要素302に ついての視差ゼロ演算の後には、視差1(d=1)演算が、左イメージ303の ウインドウ304を1要素位置だけ右に(XREF+1,YREF)シフトさせること によって、行われる。d=1に対する相関合計のこの組を演算した後に、d=2 における次の視差に対する相関合計が演算される。再び、右イメージ300のウ インドウ301を固定したままで、左イメージ303のウインドウ304を1イ メージ要素位置だけ右にシフトさせる。参照イメージ要素302に対するこれら の相関合計が、各視差(d=0、1、2、...、D)について、このシステム についてプログラムされた最大視差値が演算されるまで、演算される。本発明の ある実施形態では、視差の最大数は16(D=16)である。別の実施形態では 、視差の最大数は24(D=24)である。しかし、本発明の精神及び範囲を離 れることなく、如何なる数の視差も使用され得る。ステレオに対しては、左イメ ージの視差オフセットは、右イメージと同じ水平線に沿っている。動きについて は、左イメージの対応するイメージ要素の周囲に小さい水平及び垂直の近隣部が ある。 図5(B)は、右イメージではなく左イメージが参照イメージとして指定され たときの視差相関合計演算のための類似したシフトを示している。ここで、左イ メージ309のウインドウ310は、参照イメージ要素311に対する様々な相 関合計演算のために固定され、右イメージ306のウインドウ307が、参照左 イメージ要素311に関する必要な視差の数についての全ての相関合計が計算さ れ記憶されるまで、一度に一イメージ要素位置だけ左にシフトされる。結局、右 イメージが参照として指定されれば、左イメージのウインドウが左から右に各視 差計算毎にシフトされる。左イメージが参照として指定されると、右イメージが 、右から左に各視差計算毎にシフトされる。 C.非パラメトリックローカル変換 本発明は、非パラメトリックローカル変換を使用する。そのような変換は、要 素間の絶対的な同様性ではなく要素が同じデータの組の他の要素に関連する様な 方法での比較に基づいて、異なるデータの組のデータ要素を相関させるように設 計されている。 2つの非パラメトリックローカル変換が知られている。ランク及びセンサスで ある。本発明の好適な実施形態はセンサスを使用しているが、代替として、ラン ク変換も使用でき、他の同様な非パラメトリックローカル変換演算も使用できる 。 ランク変換は、ターゲットピクセルの輝度を周囲のピクセルの輝度と比較する 。ある実施形態では、ターゲットピクセルよりも高い輝度を有する周囲のピクセ ルを「1」とし、ターゲットピクセルに等しいか低い輝度を有する周囲のピクセ ルを「0」とする。ランク変換は、これらの比較値を合計し、ターゲットピクセ ルに対するランクベクトルを生成する。記載した実施形態では、ランクベクトル は、ターゲットピクセルよりも高い輝度を有する周囲のピクセルの数を示す数か らなる。 センサス変換は、以下のセクションでより詳細に説明される。一般には、この 変換は、ターゲットピクセルを1組の周囲ピクセルと比較し、他のピクセルの輝 度に対するターゲットピクセルの輝度に基づいて、センサスベクトルを生成する 。ランク変換は、そのような比較の全ての合計を示す数を生成し、その数を使用 して、ターゲットピクセルを特徴付ける。センサス変換は、個別化された比較の 結果からなるセンサスベクトル(例えば、より高い輝度或いは、等しいかまたは より低い輝度を有する周囲ピクセルを示す1及び0の列)を生成する。 これらの非パラメトリックローカル変換は、主に比較7の組に依存し、従って 、ゲイン或いはバイアスの変化の下では不変であり、ファクショナリズム(fact ionalism)に対する耐性を有する。加えて、そのような変換は、小数の輝度値に 対する限定的な依存性を有している。これより、ローカルな近隣部での少数ピク セルが、多数ピクセルに対して非常に異なった輝度分布を有しているならば、少 数メンバーを含む比較のみが実行される。そのようなピクセルは、輝度に比例し た寄与をしないが、数に比例して寄与する。 イメージのゲイン或いはバイアスを変化させても高く安定して不変の結果が得 られることは、以下の例によって示される。ピクセルPを囲む3x3の近隣部ピ クセルを想定する。 P1 P2 P3 P4 P P5 P6 P7 P8 このピクセルPを囲む3x3近隣部ピクセルの各ピクセルの実際の輝度値は、以 下のように分布し得る。 114 115 12( 111 116 12 115 125 A ここで、P8=Aであり、Aは、0♯A<256とP=116との間のどの値も とり得る。相対的輝度値に依存するセンサス或いはランクのような非パラメトリ ック変換を適用すると、以下の比較7の結果が得られる。 1 1 0 1 0 1 0 a ここで、aは、Pに関する輝度値Aに依存して1或いは0の何れかであり、この 例ではP=116である。Aが0から256まで変化すると、A<116であれ ばa=1であり、A≧116であればa=0である。 センサス変換の結果として、{1,1,0,1,0,1,0,a}のような何 らかのカノニカルオーダの8ビットが得られる。ランク変換は、A<116(a =1)であれば「5」を生成し、A≧116(a=0)であれば「4」を生成す る。 この例は、中心ピクセルと近隣部での周囲のピクセルとの比較が近隣部の各ピ クセルについて実行される非パラメトリックローカル変換演算を示す。しかし、 本発明は十分にフレキシブルであって、サブ近隣部比較を含む。すなわち、実際 の演算は、近隣部の全ての単一のピクセルに対してではなく、ウインドウのサブ セットに対して行われ得る。従って、上記で示した例に対して、センサス演算は 、中心ピクセルを、周囲の8ピクセル全てではなく近隣部のピクセルの幾つかと のみ比較することによって、8ビットよりも小さい長さのビット列を作り得る。 これらの変換は、ハードウエア利得或いはバイアス差をもたらし得るピクセル P8に対する輝度値Aの大きな変動にもかかわらず、安定した値を示す。そのよ うな変動は、変換によって拾い上げられるが、例えば生の輝度値が合計されると きに生じるように、結果を大きくゆがめることはない。 同じ理由で、これらの変換はまた、下地のデータに鋭い差が存在するファクシ ョナリズムに耐えることができる。そのような差は、データ収集プロセスでのエ ラー或いはアーチファクトだけではなく、イメージの実際の差によっても、導入 される。例えば、物体を示すピクセルとその物体の後ろの背景を示すピクセルと の間の境界線で、これは生じ得る。 D.センサス変換 1.センサス変換概略 以下の名称が、変数、関数、及び組を述べるために使用される。Pをピクセル とする。I(P)は、8ビット整数のようなnビットの数で表される、特定のピ クセルの輝度を示す。N(P)は、Pを囲む直径dの方形の近隣部のピクセルの 組を示す。センサス変換は、近隣部N(P)のピクセルに対するPの相対的な輝 度に依存する。ある実施形態では、変換は比較の符号に依存する。例えば、もし I(P’)<I(P)ならばV(P,P’)=1、そうでなければ0と定義する 。非パラメトリックローカル変換は、ピクセル比較組のみに依存するが、その組 とは、以下の順序付けられたペアである。 センサス変換R\(P)は、ピクセルPを囲むローカルな近隣部N(P)を、 輝度がPの輝度よりも低い近隣のピクセル組を示すビット列にマッピングする。 これより、中心ピクセルPの周囲の近隣部(例えば3x3)に対して、センサス 変換は、その近隣部の各近隣ピクセルP’がその中心ピクセルPの輝度よりも低 い輝度を有しているかどうかを決定し、Pを囲むこの近隣についての順序付けら れたビットを生成する。言い換えれば、センサス変換は、コアピクセルPをその 直近の近隣にあるピクセル組と比較することによって、ビットベクトルを演算す る。ピクセルP1の輝度がコアピクセルPよりも低ければ、そのときにはビット ベクトルの位置1が1であり、そうでなければ0である。ベクトルの他のビット が、ビット列が生成されるまで同様に演算される。このビット列は、比較に使用 される組の近隣ピクセルの数と同じ長さである。このビット列は、センサスベク トルとして知られている。 比較組のピクセル数は、変化し得る。ウインドウが大きくなると、より多くの 情報が考慮され得るが、不連続さによるマイナスの効果が増加して、必要とされ る演算量も増加する。現時点で好ましい実施形態は、32ビットのセンサスベク トルを含んでいる。 加えて、現時点で好ましい実施形態は、非パラメトリック変換の基礎として輝 度情報を使用しているが、変換は、あるピクセルを他のピクセルに比較するため に使用され得るどの定量的情報(色調情報を含む)を使用できる。加えて、記載 した実施形態は、単一の参照ピクセルと近隣のピクセルとの個別化した比較組( 一連の1対1の比較)を使用しているが、変換は、例えば、ある領域に関連する 合計された輝度を周囲の領域に関連する合計された輝度と比較することによって 、1つの或いは一連の多数対多数の比較に基づくこともできる。 N(P)=PrDとする。但し、rは、ミンコウスキ(Minkowski)合計演算 を示し、Dは、変位組を示す。センサス変換のある実施形態は、以下のようであ る。テップで使用される。 2.センサスウインドウ 現時点で好ましい実施形態は、9x9のセンサスウインドウを使用する。これ は、有意な変換を可能にするための十分な情報を盛り込む必要性と、必要な演算 を最小にする必要性との間のトレードオフを示す。他の実施形態では、これら2 つの考慮点をバランスさせることを考慮しながら、異なったサイズ或いは形状の ウインドウを含むことができる。 3.処理されないイメージ領域 参照ピクセルを囲むセンサスウインドウがマップのエッジを越えて処理しない ように、ピクセルマップのエッジに近く位置する参照ピクセルに対する境界条件 が存在する。例えば、センサスウインドウが9x9であり、参照ピクセルがウイ ンドウの中央に位置しているとき、完全な(complete)センサスウインドウは、 全体イメージのエッジから5ピクセルより近く位置するピクセルに対しては、不 可能である。これは、図6(A)に示されており、参照ピクセル315が、セン サスウインドウ312の中央に位置している。完全な(full)センサスウインド ウは、参照ピクセル315がエッジから4ピクセル以内に位置するときには、不 可能である。 同様に、図6(B)に示されるように、参照ピクセル(318)が、9x9の ウインドウ(321)の右下のピクセルであれば、イメージの右側エッジ或いは 底辺に位置するピクセルは、完全なセンサスウインドウを有するが、イメージの 頂部或いは左側エッジから8ピクセルより近くに位置するピクセルは、完全なセ ンサスウインドウを含まないであろう。このように、完全な変換演算は、内部領 域314(図6(A))及び320(図6(B))に対してのみ可能である。 現時点で好ましい実施形態では、これらの内部領域の外側に存在するピクセル に対しては、センサス変換は実行されない。これらのピクセルは、その代わりに 無視される。その結果、深度計算が実行される左及び右のイメージのこれらの部 分は、実際には全体の利用可能なピクチャー情報のサブセットを示す。他の実施 形態では、内部領域の外側のピクセルは、改変されたセンサス変換の対象になり 得るが、これは、境界条件の特別な処理を必要とする。そのような特別な処理は 、付加的な演算を必要とし、その結果、比較低価格でリアルタイムに高質の深度 データを与えるシステムの能力を損ねる。 現時点で好ましい実施形態では、内部領域314及び320の全体が変換計算 に利用可能であるが、ユーザ(或いは外部ソフトウェア)は、ある行及び列をス キップしてこれらの領域にセンサス変換を実行させないようにすることができる 。例えば、これは、もしユーザ(或いは外部ソフトウェア)がイメージのある領 域が不変になり、対象となる変化はイメージのサブセットで生じる可能性が高い と判断したときに、行われ得る。例えば、もし、カメラがドアを含む壁を記録し ていて、ユーザがドアが開いているかどうかに主に関心があるときには、ユーザ は、各サイクル毎にドアを含むイメージ領域についてのセンサス変換演算を行う が、その他の全ての領域についてはそのような変換をもっと少ない頻度で行うか 、或いはそのような変換を完全に行わないように、アルゴリズムをプログラムす ることができる。 このような方法で特定の行及び列を指定することで、ユーザ(或いは外部ソフ トウェア)は、必要な演算を低減させ、それによってシステムをより高速に動作 させたり、或いは低コストのシステムに適切に動作させたりすることが可能にな る。 4.センサスベクトルで使用されるセンサスウインドウの内部のピクセルの選択 現時点で好ましい実施形態では、センサスウインドウ或いは近隣部のサイズは 、参照中心点を囲むピクセルの9x9ウインドウである。ある実施形態では、セ ンサスベクトルは、参照ピクセルとセンサスウインドウ内の全ピクセルとの比較 を 含む。9x9ウインドウの場合、これは80ビットのセンサスベクトルをもたら す。 しかし、現時点で好ましい実施形態では、センサスベクトルは、参照ピクセル とセンサスウインドウに含まれるピクセルのサブセットとの間の比較を示し、3 2ビットのセンサスベクトルをもたらす。サブセットの使用はセンサスベクトル に含まれる情報を減少させるが、この手法は、センサスベクトルを決定するため に必要とされる演算ステップを低減させるので、特に有用である。センサスベク トルは各イメージの各ピクセルについて個別に計算されなければならないので、 そのベクトルを演算するために必要とされる時間の低減は、全体プロセスにおい て非常に重要なスピードアップをもたらす。 図7は、参照点(x,y)に中心を有するセンサスベクトルを演算するために 使用される9x9のセンサスウインドウの中のイメージ輝度データのある特定の 選択及びシーケンスを示す。この図では、数を含む位置は、センサスベクトルの 計算のために使用されるピクセルを示し、その数は、そのピクセルに割り当てら れたセンサスベクトル内の位置を示す。示されている実施形態では、参照イメー ジ要素(x,y)のための32ビットセンサスベクトルに対して使用される特定 のピクセルは、以下の通りである:(x+1,y−4),(x+3,y−4), (x−4,y−3),(x−2,y−3),(x,y−3),(x+2,y−3 ),(x−3,y−2),(x−1,y−2),(x+1,y−2),(x+3 ,y−2),(x−4,y−1),(x−2,y−1),(x,y−1),(x +2,y−1),(x−3,y),(x−1,y),(x+2,y),(x+4 ,y),(x−3,y+1),(x−1,y+1),(x+1,y+1),(x +3,y+1),(x−2,y+2),(x,y+2),(x+2,y+2), (x+4,y+2),(x−3,y+3),(x−1,y+3),(x+1,y +3),(x+3,y+3),(x−2,y+4)及び(x,y+4)。このよ うに、参照イメージ要素(x,y)との比較のために選択される最初のイメージ データは、図7では数「1」によって指定されている(x+1,y−4)である 。比較のために選択される第2のイメージデータは、数「2」によって指定され ている(x+3,y−4)であり、数「32」によって指定されている最 終イメージデータ(x,y+4)が選択されるまで、続く。どの数によっても指 定されていないピクセルは、センサスベクトル計算では無視されるか、或いはス キップされる。この実施形態では、そのような無視されるイメージデータは(x −1,y+4)に位置しており、項目324として示されている。 他の実施形態では、参照イメージ要素(x,y)のための32ビットセンサス ベクトルに対して使用される特定のピクセルは、以下の通りである:(x−1, y−4),(x+1,y−4),(x−2,y−3),(x,y−3),(x+ 2,y−3),(x−3,y−2),(x−1,y−2),(x+1,y−2) ,(x+3,y−2),(x−4,y−1),(x−2,y−1),(x,y− 1),(x+2,y−1),(x+4,y−1),(x−3,y),(x−1, y),(x+2,y),(x+4,y),(x−3,1),(x−1,1),( x+1,y+1),(x+3,y+1),(x−4,y+2),(x−2,y+ 2),(x,y+2),(x+2,y+2),(x−3,y+3),(x−1, y+3),(x+1,y+3),(x+3,y+3),(x,y+4)及び(x +2,y+4)。ここで、これらの点は、図7で使用されている同じxyグリッ ドにマッピングされている。 現時点で好ましい実施形態では、センサスベクトルのために使用される特定の ピクセルの選択は、2つの原則に基づいている。(1)非対称性及び(2)簡潔 さ。各々は以下のように説明される。 非対称性は、センサスベクトルのために選択されたピクセルA及びBに対して 、対応するピクセル−A及び−Bが除外されることを必要とする。すなわち、中 心参照ピクセル(0,0)及び比較点(a,b)を含む比較組において、点(− a,−b)が、非対称性の性質を満たすために比較組に存在しない。これより、 (1,−4)に位置し且つ数「1」で指定されたピクセルは、図7で選択され、 (−1,4)に位置し且つ数「324」で指定されたピクセルは選択されない。 (1,4)または(−1,−4)の選択が許容されることに留意されたい。 非対称性は、あるピクセル関係の2重のカウントを避けるために設計されてい る。図7のピクセル(x,y)に対するセンサスベクトルが、ピクセル(x,y )と数1〜32で指定されたピクセル(x,y)を囲む32のピクセルとの間 の関係を示していることを思い出されたい。また、イメージの各ピクセルに対し てセンサスベクトルが計算されること、及びこのセンサスベクトルが各ピクセル の周囲の9x9のセンサスウインドウに基づくことも、思い出されたい。 図7は、ピクセル(x,y)を囲むセンサスウインドウを示す。必要な場合に は、このセンサスウインドウはピクセル(x,y)を含み、それは図7に示すセ ンサスウインドウのための中心参照ピクセルをなす。図7に示されるセンサスウ インドウでは、ピクセル「1」は(1,−4)に位置する。これは、図7におけ るピクセル324の位置の否定を必ず示し、一般原則の典型である。図7のよう に、中心参照ピクセルからの正及び負のオフセットを示すX及びY座標にピクセ ルが位置するセンサスウインドウを考えると、ピクセルPaがピクセルPbを囲 むセンサスウインドウに含まれるならば、また、PbはPaのセンサスウインド ウに含まれなければならず、PbのためのセンサスウインドウにおけるPaの位 置は、Paに対するセンサスウインドウにおけるPbの正確な否定であるだろう 。 従って、非対称性は、2重カウントを避ける。なぜなら、それによって、ピク セルAが参照ピクセルBのセンサスベクトルに含まれていれば、参照ピクセルB はピクセルAのセンサスベクトルには決して含まれないことを確実にするからで ある。これより、ピクセル(a,b)を含む相関ウインドウに対して、相関合計 はピクセル(a,b)の2つの演算を含まない。2重カウントの回避は、有用で ある。なぜなら、2重カウントは、2重にカウントされた関係に比例しない重み を割り当てるからである。 現時点で好ましい実施形態では、センサスベクトルのためのピクセルの選択は 、簡潔さの原則にも基づいている。簡潔さは、非対称性の要件を条件にして、参 照ピクセルにできるだけ近いピクセルが選択されることを要求する。これより、 図7で参照ピクセル(x,y)に直かに隣接して位置する8つのピクセルから、 4つのピクセル、すなわち、数13、16、20及び21で指定されたピクセル が、選択される。これは、非対称性を破ることなく参照ピクセル(x,y)から この距離だけ離れて選択され得るピクセルの最大数である。同様に、参照ピクセ ルから1ピクセルだけ離れた距離にある16の位置から、8つのピクセルが選択 され(これらは、センサスベクトルビット位置8、9、12、14、17、23 、2 4、及び25と割り当てられる)、参照ピクセルから2ピクセルだけ離れた距離 にある24の位置から、12のピクセルが選択される(これらは、センサスベク トルビット位置4、5、6、7、10、15、17、19、27、28、29、 及び30と割り当てられる)。これらの各々の場合に、利用可能なピクセルの半 分が選択されている。これは、非対称性を維持しながら可能な最大の数を示す。 センサスベクトルは32ビットであるので、外部のリングから、付加的な8ビ ットが選択される。他の実施形態では、センサスベクトルは32ビットより多く 或いは少なく含み得る。長さ32が好ましい実施形態で使用されるが、これは、 この長さが大抵の処理システムで従来取り扱われてきた長さであり、次のより高 い好都合な数(64ビット)が使用されたときに必要とされる処理のオーバーヘ ッドを避けながら、深度演算に適すると思われる利用可能なピクセルの半分近く を含み得るからである。 他の実施形態では、異なるサイズのセンサスウインドウ(例えば、7x7、7 x9、9x9、10x12、10x10)、センサスウインドウ内の参照イメー ジ要素の異なる位置(例えば、中心、右下角、左上角、中心を外れた位置)、セ ンサスウインドウ内の異なるイメージデータ、センサスウインドウ内の異なる数 のイメージデータ(例えば8、10、16、24、32)、及び、センサスウイ ンドウ内の異なるイメージデータシーケンス(例えば、各行の3イメージ毎、隣 接するイメージデータ1つおき)の組合せを使用する。同じ原則が、相関ウイン ドウ、対象ウインドウ、及びモードフィルタウインドウに適用される。 E.相関 データの組が、各データの組の中でのデータ要素の相互関係を示すように変換 (例えば、センサス変換が一例である)されると、データの組内で変換された要 素を相関させる必要が生じる。再び、ステレオイメージからの深度を計算するた めのセンサス変換の使用が、例示される実施形態として使用される。 1.ハミング距離 好ましい実施形態では、ハミング距離が、参照イメージの中のピクセルを他の イメージの中のピクセルに相関させるために使用される。2つのビット列の間の ハミング距離とは、これら2つのビット列の中で異なるビット位置の数である。 2つのピクセルの対応は、センサス変換の適用後にハミング距離を最小化するこ とによって、演算される。従って、ほとんど同じ輝度構造を有する2つのピクセ ル領域は、ほとんど同じセンサス変換を有し、それら2つの代表センサス変換値 は小さい。 ピクセルP及びQが2つの変換されたピクセルを示し、Pは1つの入力イメー ジに対するセンサス変換されたピクセルであり、Qは、第2の入力イメージに対 するサーチウインドウW(P)の中のセンサス変換されたピクセルである。2つ の変換されたピクセル間のハミング距離は、2つのピクセルに関して異なってい るセンサスベクトル内のビット位置の数(すなわち、一方のセンサスベクトルで は「0」で、他方では「1」)を計算することによって、演算される。これより 、例えば、32ビットのセンサス値は、0から32の範囲のハミング距離をもた らし、ハミング距離0は、2つのセンサスベクトルが同一であることを示し、ハ ミング距離32は、個々のビット位置が全て異なる2つのセンサスベクトルを示 す。 ハミング距離は、できるかぎりマッチするセンサスベクトルを決定するために 使用されるので、全ての比較的大きなハミング距離を効果的に等しく処理するこ とによって、演算効率を向上し得る。これは、飽和閾付け(saturation thresho lding)によって実行され得て、そのときには、例えば、14を超える全てのハ ミング距離が区別できないものとして取り扱われる。この例では、4ビットがハ ミング距離を記憶するために使用され得て、0000はハミング距離0を示し、 0001はハミング距離1を示し、0010はハミング距離2を示し、0011 はハミング距離3を示し、同様に1111まで続いて、15〜32の範囲のハミ ング距離を示す。この範囲のハミング距離は2つの値の間に大きな差があり、従 ってほぼ確実に対象外であることを意味しているので、飽和閾付けは、記憶空間 (6ではなく4ビットを使用する)及び演算リソースを、質を犠牲にすることな く低減する。 F.動くウインドウの合計及びボックスフィルタリング 最も単純な実施形態では、参照イメージの各ピクセルは、他のイメージの特定 の数のピクセルと比較される。参照イメージとの比較に使用される特定の数のピ クセルは、視差或いはサーチウインドウとして知られている。これより、参照ウ インドウが右イメージに位置していれば、視差或いはサーチウインドウは左イメ ージにおけるある数のピクセルで構成される。ある実施形態では、視差ウインド ウは、参照ピクセルと同じX,Yアドレスに位置する他のイメージの中のピクセ ルで開始して同じ線に沿って多数のピクセルに一方向に延びる。ある実施形態で は、左イメージに対する視差ウインドウが、参照ピクセルと同じアドレスに位置 するピクセルの右まで延び、右イメージに対する視差ウインドウが左まで延びる 。この方向性は、もし同じ物体が2つのイメージに示されたら、その物体は左イ メージでは右にオフセットし、右イメージでは左にオフセットするという事実か ら生じている。別の実施形態では、カメラが垂直に向いていて、視差ウインドウ は垂直で、上のイメージについては下に、下のイメージについては上に延びるで あろう。 視差数Dは、右イメージデータに関する左イメージデータのシフトを意味し、 プログラム可能である。上述したように、視差数はユーザが選択可能である。あ る実施形態では、24或いは16の視差が使用される。 最も単純な実施形態では、各参照ピクセルのセンサスベクトルは、その参照ピ クセルに対する視差ウインドウの中に含まれる他のイメージのピクセルのセンサ スベクトルと比較される。ある実施形態では、この比較は、参照ピクセルと視差 ウインドウの各ピクセルとの間のハミング距離を計算し、最低のハミング距離を 選択することによって、行われる。 現時点で好ましい実施形態では、もう少し複雑なシステムを使用し、そこでは 、相関はウインドウ中での合計ハミング距離を計算することによって決定される 。ある実施形態では、参照イメージの中の各ピクセルについて、そのピクセルの センサスベクトルと、他のイメージにおけるそのピクセルの視差ウインドウのピ クセルのセンサスベクトルとの間で、ハミング距離が計算される。視差ウインド ウが24である(及びその瞬間での境界条件を無視する)とすれば、これによっ て、参照イメージの各ピクセルについて、24のハミング距離が得られる。 各参照ピクセルについての最適視差が、視差ウインドウの各視差を見て、参照 ピクセルの近隣部のピクセルにおけるその視差に対するハミング距離を合計する ことによって、計算される。その後、最低の合計ハミング距離に関連する視差が 、最適視差として選択される。 相関ウインドウ合計の概念が、図8(A)に示されている。ここでは、ウイン ドウは5x5であり、参照イメージ要素は、ウインドウの右下角に位置している 。図8(A)は、(14,18)に位置する参照イメージ要素331を有するウ インドウ330を示す。参照イメージ要素331について、24の合計ハミング 距離が計算されて、各合計ハミング距離は、ウインドウ中での1つの視差につい てのハミング距離の合計を示す。これより、視差0における要素331に対する ハミング距離が、ウインドウ330の中の全ての他の要素についての視差ゼロに おけるハミング距離に、加えられる。この合計は、視差0に関連した合計ハミン グ距離とされる。この演算は、視差1〜23について繰り返される。合計ハミン グ距離の全てが計算された後に、最低の合計ハミング距離が選択される。これよ り、もしウインドウに対する合計ハミング距離が視差5で最低になると、そのと きには、視差5がイメージ要素331に対する最適視差として選択される。この ようにして、イメージ要素331はオフセット或いは視差が5である他のイメー ジにおけるイメージ要素に対応すると決定される。このプロセスは、参照イメー ジの各要素について繰り返される。 各ウインドウは直ぐ近傍にあるウインドウにオーバラップしているので、各参 照ピクセルに対する5x5ウインドウにおける24の合計ハミング距離を別個に 計算することは極めて無駄であることに留意されたい。この非効率さは、各ウイ ンドウ計算にて以前の計算を考慮し、新しい要素を追加して古い要素を減じるボ ックスフィルタリングの概念を使用することによって、除去され得る。 ウインドウをスライドさせるこのボックスフィルタリングの概念は、図8(A )〜8(C)に示されている。前述のように、図8(A)は、14、18に位置 する参照ピクセル331に基づいた5x5のウインドウ330を示す。ウインド ウ330の中では、ウインドウの各5列ずつに対して、列の合計が計算されて記 憶される。この実施形態では、参照イメージ要素331によって同定される 列の合計は、336、337、338、339、及び331のデータの合計を含 む。 このウインドウ330が、参照イメージ要素331(行18)によって占めら れる行に沿って走査(travel)されて各参照イメージ要素についての合計が計算 された後に、ウインドウは、次の行(行19)に包み込まれて(wrap around to )、各参照イメージ要素に対するその合計演算を続ける。 図8(B)において、ウインドウ332は、ウインドウ330と同じであるが 空間的(異なる行及び列)及び時間的(将来の計算)に変位されていて、点(8 ,19)に位置する。先と同様に、参照イメージ要素333に関連し且つこれに よって同定される列の合計が演算されて、列合計アレイに記憶される。この列合 計アレイはイメージデータ344、345、346、347、及び333の合計 を含む。 図8(C)に示すように、ウインドウ334は、ウインドウ330及び332 と同じであるが空間的(異なる行及び列)及び時間的(将来の演算)に変位され ていて、いくつかの将来の反復において、点(13,19)に位置する。再び、 参照イメージ要素340に関連し且つそれによって同定される対応する列の合計 及び個別のウインドウ合計が、演算される。次の演算のために、ウインドウ33 5が、1つの列に亘って、参照イメージ要素341(位置(14,19))まで 移動する。再び、ウインドウ335は、ウインドウ330、332及び334と 同じであるが空間的(異なる行及び列)及び時間的(将来の演算)に変位されて いる。ウインドウ335に対するウインドウ合計の計算においては、先に計算さ れたウインドウ合計(ウインドウ334に対する)、及び先に計算された列合計 (参照イメージ要素331に対する)が、使用される。ウインドウ330の右最 上部角に位置するイメージデータ(イメージデータ336)は、列合計331か ら引き算される。イメージ要素341の寄与が列合計に加算されて、参照イメー ジ要素341に関連する新しい列合計が生成される。参照イメージ要素333に て先に計算された列合計は、現時点のウインドウ合計(ウインドウ334に対す るウインドウ合計であった)から引き算される。最後に、参照イメージ要素34 1に関連して新しく生成された列合計が、ウインドウ合計に加算される。これら の新しく生成されたウインドウ合計及び列合計は、引き続く計算で使用される。 このように、現時点で好ましい実施形態では、ウインドウ合計が、先のウイン ドウ合計に基づいて計算される。図8(C)における参照ピクセル341に対し ては、ウインドウ合計335が、直前のウインドウ334に基づいて計算される 。これは、以下のように行われる。(1)ウインドウ335の右側の列について 、ウインドウがより高次の行に位置していたときに同じ列に対して計算した列合 計を採用して(例えば、図8(A)から列合計336、337、338、339 、及び331を採用して)、列合計(336)から最も上の要素を引き算し、参 照ピクセル(341)を加える。(2)この改変された列合計を先のウインドウ (ウインドウ334)についてのウインドウ合計に加算する。(3)先のウイン ドウから最も左側の列合計を引き算する(例えば、要素333を含む列に対する 列合計をウインドウ334に対するウインドウ合計から引き算する)。このよう にして、参照要素341に対するウインドウ合計が、ウインドウをスライドさせ 、新しい値を加えて古い値を引き算することによって、参照要素340に対する ウインドウ合計に基づいて、計算され得る。 図9(A)〜図9(C)は本発明の一実施態様の概要を示す。これらの図もま た境界条件を無視している。図9(A)は、ウインドウ合計演算の間、3つのウ インドウ343、344および345がオーバーラップすることを示す。これら のウインドウは実際は互いに間隔と時間を空けて移動された同一のウインドウで ある。すなわち、ウインドウ343は、参照イメージ要素351に対するウイン ドウ合計の計算のための、ウインドウの特定の過去のポジションを表している。 ウインドウ344は、参照イメージ要素352に対するウインドウ合計の計算の ための、それ以後のある時点でのウインドウのポジションを表している。またウ インドウ345は、同一のウインドウの現在のポジションを表している。参照イ メージ要素351および352がそれぞれウインドウ343および344を識別 するように、参照イメージ要素346はこのウインドウを識別する。 図9(B)を参照して、ウインドウ345に対するウインドウ合計の計算には 、過去の計算を用いる必要がある。参照イメージ要素351に対して計算された 列合計347およびウインドウ344に対して少し前に計算されたウインドウ合 計 354は既にメモリに格納されている。図9(C)に示すように、イメージ要素 349に対するデータおよび参照イメージ要素353によって識別される列合計 350もまたメモリ内で使用可能である。現在のウインドウ345に対するウイ ンドウ合計を計算するために、以下の処理を行う必要がある:(1)列合計34 7からイメージ要素349からのデータを引く、(2)イメージ要素346内の データを最新の修正列合計347に加える(この時点で347からのデータを含 まない)、(3)列合計350(参照イメージ要素353に対して前に計算され たもの)をウインドウ合計354(ウインドウ344に対して前に計算されたも の)から引く、および(4)修正列合計(列合計347−データ349+データ 346)を修正ウインドウ合計(ウインドウ合計354−列合計350)に加え て現在のウインドウ345に対するウインドウ合計を生成する。後述するように 、列合計または個々のデータ要素の減算は領域によっては必要でないことがあり 得る。 G.エッジ領域1〜10 先に述べた議論はエッジ条件に関する議論を無視しているが、エッジ条件は考 慮されなければならない。 図10(A)〜図10(C)は本発明の一実施態様によるエッジ領域を示す。 図10(A)は多数のエッジ条件と関連する10個の特定の領域を示す。これら の10個の領域は概して相関合計、対象演算およびモードフィルタの演算に関す る。これらの10個の領域の正確なサイズおよび位置は、移動するウインドウの サイズおよびウインドウ内の参照イメージ要素の位置に依存する。 ある実施態様では、ウインドウサイズは7×7(幅がイメージ要素7個×高さ がイメージ要素7個)であり、参照イメージ要素の位置はウインドウの右下の角 である。処理速度を増大させ且つ本発明の多様な実施態様をリアルタイムに動作 させる演算において、列合計バッファを用いるために、これらの領域が存在する 。相関およびモードフィルタウインドウについては、これらの10個の領域は内 部エリア314または320(図6(A)および図6(B)参照)内に位置され る。内部エリア314または320は変換ベクトルが多数存在する。相関合計は 変換 ベクトルに直接依存し、モードフィルタは相関合計に間接的に依存する。対象ウ インドウについては、これらの10個の領域は同じ内部エリア314または32 0(図6(A)および図6(B)参照)に限定されない。対象計算は変換計算に 依存せず、むしろ輝度イメージに依存するからである。 上述のように、これらの全ての場合において、イメージの全側部の幾つかの行 および列はスキップされ得るため、これらの10の領域が実際にイメージの許容 エリアの単に一部分しか占め得ない。このように相関およびモードフィルタ計算 の場合は、内部エリア314または320(図6(A)および図6(B)参照) の一部分のみが使用され得、また、対象演算計算の場合は、輝度イメージの一部 分のみが使用され得る。 以下に述べる議論は、参照イメージ要素がウインドウの最も右下の角に位置さ れており、且つイメージ処理に対する所望のエリアが決定済みである(すなわち スキップされる行および列が既にプログラムされている)ことを前提としている 。従って、対象の所望のイメージエリアの左上の角に位置されるイメージ要素に 対して、行および列のナンバリングは(0,0)にリセットされる。図10(A )に示されるように、領域1は第一の行(行0)であり、第1の行にある全ての 列である。この領域は列合計アレイを初期化する。 領域2は行1からYEDGE -1までである。7×7のウインドウの場合、領域2は 行1から行5までを含み、これらの行にある全ての列を含む。ここでは、この系 は列合計アレイを累積(bullt up)する。 領域3は、(0,YEDGE)に位置されるイメージ要素である。7×7のウイン ドウの場合、領域3は(0,6)に位置される。ここでは、ウインドウ合計(す なわち相関合計、モードフィルタウインドウ合計、対象演算の差のスライディン グ合計(SSD))が初期化される。 領域4は、行YEDGEであり、列1から列XEDGE -1までを含む。7×7のウイン ドウの場合、領域4は行6上に位置し、列1から列5までの範囲である。ここで はウインドウ合計が累積される。 領域5は、(XEDGE,YEDGE)に位置されるイメージ要素であり、一実施態様 では、この領域は(6,6)に位置される。ここでは、ウインドウ全体が所望 のイメージ処理エリアに組み込まれ(fit into)、列合計全体およびウインドウ 合計がその後の計算に使用可能である。 領域6は列XEDGE +1から所望のイメージ処理エリアの端の列まで行YEDGEのを 含む。ここでは、上述したように、直ぐ前のウインドウに関連する列合計を引く (例えば7×7のウインドウの場合、現在の参照イメージ要素の右の7行を引く )ことによって新しいウインドウ合計が計算される。ウインドウの下部の最も右 の角による追加のイメージ要素合計(現在の参照イメージ要素)が全体のウイン ドウ合計に加算される。7×7のウインドウの場合、領域6は行6に位置され、 列7から所望のイメージ処理エリアの端までの範囲である。 領域7は、列0にある、行YEDGE +1から所望のイメージ処理エリアの下端まで を含む。これは列0にある行7およびその下方を意味する。ここでは、1行上の ウインドウの上部の右上の角が列合計アレイから引かれ、ウインドウ合計が初期 化される。 領域8は、列1から列XEDGE -1までの、行YEDGE +1から所望のイメージ処理エ リアの下端までに位置される全てのイメージデータを含む。これは列1から列5 までの行7から下端までという意味である。ここでは、1行上のウインドウの最 も右上の角が列合計アレイから引かれ、ウインドウ合計が累積される。 領域9は、列XEDGEの、所望のイメージ処理エリアの行YEDGE +1から下端まで を含む。これは、列6の行7から下端までという意味である。ここでは、1行上 のウインドウの最も右上の角が列合計アレイから引かれ、完全なウインドウ合計 が得られる。 領域10は、行YEDGE +1から所望のイメージ処理エリアの下端までであり且つ 列XEDGE +1から所望のイメージ処理エリアの下端までの領域を含む。この領域は 、領域の数の1/10でしかないが、処理の大部分はこの領域で行われる。ここ で生じる処理は計算の最も一般的な形態を表している。実際、領域1〜9はエッ ジ条件または境界値問題を表し、領域10の一般的なケースに対して、特別なケ ースである。 図10(B)は領域10の、他の9個の領域に対する相対的なサイズを示す。 アイテム326で示されるように、イメージデータの大部分は領域10にある。 エッジ領域1〜9(アイテム325で示される)のサイズは領域10のサイズ( アイテム326で示される)と比べて小さい。 図10(C)は領域10の最も左上の角にあるウインドウのポジショニングを 示す。ウインドウ329の参照イメージ要素が領域10(アイテム328で示さ れる)の左上の角に設けられる場合、所望のイメージ処理エリアにおいて、ウイ ンドウ329の上方にあるのは、エリア327のイメージデータの多くとも1行 のみでなければならず、またウインドウ329より左側にあるのは、エリア32 7のイメージデータの多くとも1列のみでなければならない。 H.7×7のウインドウに対するウインドウ合計 図11(A)〜図11(J)は、移動ウインドウサイズが7×7の場合の、1 0個の領域の位置およびサイズを示す。これらの10個の領域は前もって図10 (A)〜図10(C)について上記に特定している。図11(A)〜図11(J )において、マトリクスエリアは、本発明の計算が実行される所望のイメージ処 理エリアを表す。これらのスキップされた領域が、有用なイメージデータを含み 得るという事実にもかかわらず、他の全てのエリアはスキップされたエリアを表 す。マトリクスの各「ブロック」は、単一のイメージ要素についての、単一のイ メージデータ、変換ベクトル、または極値的(extremal)指標データに対して特 定の座標ポジションを表す。7×7のウインドウは幅に7個の「ブロック」、高 さに7個の「ブロック」を有する。上述したように、計算の形態および内容は、 10個の領域について、参照イメージ要素の位置の影響を受ける。ウインドウの 位置はまたその参照イメージ要素の位置と結合(tie)される。 図11(A)は領域1を示す。領域1は、マトリクスの最上行(行0)を含む 。ここでは、ウインドウ355はウインドウ合計または列合計を計算するために 必要な全てのデータを有さない。しかし、ウインドウ355およびその参照イメ ージ要素356がこの行に沿って移動すると、後で用いられる多様なアレイおよ び変数が初期化される。 図11(B)は領域2を示す。領域2は、行1〜5の全ての列を含む。ウイン ドウ355およびその参照イメージ要素356がこの領域の各行および各列に沿 って移動すれば、前に初期化された変数およびアレイが累積される。領域1と同 様に、ウインドウはイメージデータを完全に含まない。 図11(C)は領域3を示す。領域3は、行6および列0を含む。参照イメー ジ要素356はマトリクスのこの「ブロック」に位置する。この点では、列合計 357全体が生成可能であり、生成される。この列合計357は、ウインドウ3 55におけるこの列にある全てのまたは選択された数のイメージデータの合計で ある。列合計357の存在のため、特定の参照イメージ要素356に対するウイ ンドウ355のウインドウ合計は初期化可能であり、初期化される。ウインドウ 合計は、このウインドウにおける全てのまたは選択された数のイメージデータの 合計である。 図11(D)は領域4を示す。領域4は、行6、列1〜5で規定されるエリア を含む。個々の列合計が生成され、ウインドウ合計が累積される。しかし、この 点では、完全なウインドウ合計は得られない。 図11(E)は領域5を示す。領域5は、行6、列6を含む。この点では、ウ インドウ355全体は、所望のイメージ処理エリアの最も左上の角に丁度組み込 まれ得る(just fit)。この座標に位置する参照イメージ要素356に関連する 完全なウインドウ合計が生成され且つ格納される。個々の列合計もまた生成され る。この領域の後、演算は、前に計算されたアレイおよびイメージデータの加算 および減算の組み合わせを包含する。 図11(F)は領域6を示す。領域6は、行6であって且つ列7から所望のイ メージ処理エリアの右端までを含む。ここでは、左にある7列の列合計(x−ウ インドウ幅)は直ぐ前に計算されたウインドウ合計から引くことができる。本実 施態様では、引かれる列合計は参照イメージ要素358に関連する。このイメー ジデータ356はまた前回の繰り返し(previous iteration)においてと同様に 列合計に加えられる。最終的に、参照イメージ要素356に関して新しく生成さ れた列合計は新しく生成されたウインドウ合計に加えられる。 図11(G)は領域7を示す。領域7は、行7から所望のイメージ処理エリア の底部までであり且つ列0を含む。領域3と同様に、特定の参照イメージ要素3 56に関連するウインドウ355に対するウインドウ合計は初期化可能であり、 初期化される。しかし、領域3と異なり、参照イメージ要素360に関する完全 な列合計361が前の計算より得られる。参照イメージ要素356に対する列合 計を計算するために、イメージデータ359が列合計361から引かれ、イメー ジデータ356が修正列合計361(データ359以外)に加えられる。参照イ メージ要素356に関して新しく計算された列合計は、ここではウインドウ35 5に対するウインドウ合計を初期化するために用いられる。完全なウインドウ合 計が得られないことに留意されたい。 図11(H)は領域8を示す。領域8は、列1から列5までの、行7から所望 のイメージ処理エリアの下端に位置する全てのイメージデータを含む。ここでは 、演算は領域7と類似した様式で行われるが、ウインドウ合計がここでは累積さ れる点が異なる。 図11(I)は領域9を示す。領域9は、列6の、行7から所望のイメージ処 理エリアの下端までを含む。領域5と同様に、ウインドウ355全体が所望のイ メージ処理エリアの左上の角に組み込まれ得る。ここでは、参照イメージ要素3 56に関する完全なウインドウ合計が得られる。演算は領域7および8と類似の 様式で行われる。 図11(J)は領域10を示す。領域10は、行7から所望のイメージ処理エ リアの下端までと列7から所望のイメージ処理エリアの右端までを含む。ここで 生じる処理は、演算の最も一般的な形態である。領域10の演算の性質は図8お よび図9に関して既に述べた。 I.代替の実施態様―行合計 本発明の一実施態様は、個々のイメージ要素演算、列合計、ウインドウ合計お よびウインドウが行に沿って移動する場合の本明細書で述べたデータ操作スキー ムに関連する加算/減算を用いるが、別の実施態様はウインドウが列を下方へ移 動する場合の同様のスキームを利用する。従って、ウインドウは列を一行ずつ下 方へ移動し、列の端に至る。列の端では、ウインドウは次の列などの始点まで移 動し、所望のイメージ処理エリアのすべての列および行が横断され且つそこにお けるデータが処理される。ここでは、ほとんどの演算の場合、参照イメージポイ ントがウインドウの右下の角にある。列合計の代わりに、ラインバッファで行合 計が演算される。ウインドウ合計は、現在の参照ポイントの左にあるウインドウ 幅の列の個々のデータを現在の行合計から引く工程(現在の領域でこの演算が適 用可能な場合)と、この現在の修正行合計に現在のイメージ参照ポイントを加え る工程と、現在の参照ポイントからのウインドウ高さに位置された行合計を現在 のウインドウ合計から引く工程(現在の領域でこの演算が適用可能な場合)およ び、直ぐ前に修正されたウインドウ合計に現在の修正行合計に加えて、参照ポイ ントにおける現在のウインドウ位置に対する新しいウインドウ合計を生成する工 程とによって演算される。この実施態様は、本明細書で列合計について述べたも のと同じコンセプトを用いているが、この場合はウインドウが列内で一行ずつ下 方へ移動する点が異なる。10個の領域の位置は図10(A)で示すような領域 を取ることで決定され得る。この10個の領域のレイアウトがxy平面内と仮定 すれば、その位置を同一のxy平面内で半時計回りに90度回転させ且つz平面内 で180度反転させることによって、ウインドウが列を一行ずつ下方に移動する場 合の代替実施態様に対する10個の領域の位置が決定され得る。 J.相関合計バッファの記述 図13(A)は相関合計バッファの構成を示す。相関台計バッファは図4にお いて最初に導入された。相関合計バッファは最終的には、他の非参照イメージ内 の視差によってオフセットされる一連の相関ウインドウに関する、参照イメージ 内の相関ウインドウについての相関合計の結果を保持する。相関演算は2つのベ クトル間のハミング距離である。相関合計バッファの幅は、イメージ幅(X)に 視差数(D)を掛けたもの、すなわちX*Dである。 相関合計バッファの部分は、ウインドウが演算の間に移動すれば、左右のイメ ージにある変換ベクトル対の個々のハミング距離を保持できる。イメージ処理シ ステムが演算においてこれらの個々のハミング距離を用いた後、上記の相関合計 バッファの部分は続いてウインドウ相関合計に書き換えられ得る。従って、ウイ ンドウが相関バッファの行および列に沿って移動すれば、1つの相関合計バッフ ァには、センサスベクトル-センサスベクトル間の個々のハミング距離およびウ インドウ内のこれらのハミング距離の相関ウインドウ合計の両方が、異なる時間 フェーズ(phase)で格納される。 この例では、右のイメージが参照イメージとして指定される(designate)。相 関合計バッファでは、特定の行にあるライン362は、右イメージの単一の変換 ベクトルに対するD個の視差相関合計結果を含む。言い換えれば、ライン362 は、特定の右イメージ参照変換ベクトルと、[x]相関ウインドウに対応する視差 によってオフセットされた参照右変換ベクトルのサーチウインドウにおける、左 イメージの各変換ベクトルとの間のハミング距離を含む。D=16のとき、16 個の個々のハミング距離(すなわち、d=0,1,2,…,15)はライン36 2に収容される。しかし、相関ウインドウは通常1x1より大きい。1つの実施 態様では、相関ウインドウは7×7である。よって、7×7相関ウインドウの場 合、ライン362は、特定の右イメージ参照変換ベクトルに関連する相関ウイン ドウと、対応する視差によってオフセットされた参照右変換ベクトルのサーチウ インドウにおける、左イメージの各変換ベクトルに関連する各相関ウインドウと の間の、合計ハミング距離を含む。同一の行にある変換ベクトルに対するD個の 視差相関合計結果の他のラインは、ライン363および370を含む。ライン3 70は、サーチウインドウのそれぞれの変換ベクトルに関連する相関ウインドウ と、同一の行内の所望のイメージ処理エリア内のサーチウインドウの変換ベクト ルの完全な組(すなわちD変換ベクトル)を有する右イメージの最終参照変換ベ クトルに関連する相関ウインドウとの間の、合計ハミング距離の最終組を含む。 次の行では、代表的(representative)ラインは368、369および371を 含む。所望のイメージ処理エリアの最終行では、対応するラインは372、37 3および374を含む。 上述したように、ライン362は、特定の右イメージ参照変換ベクトルに関連 する相関ウインドウと、対応する視差によってオフセットされた参照右変換ベク トルのサーチウインドウにおける、左イメージの変換ベクトルに関連する各相関 ウインドウとの間の、合計ハミング距離を含む。従って、データ要素364内の 相関データは、右イメージの参照変換ベクトルと関連する相関ウインドウと、参 照右イメージの変換ベクトルと同じ行および列に位置する左イメージの変換ベク トルに関連する相関ウインドウとの相関を表す。ここで、視差はゼロ(0)であ り、そのため左イメージおよび参照右イメージにある2つのウインドウは互いに オフセットされない。 データ要索365内の相関データは、右イメージの参照変換ベクトルに関連す るウインドウの、参照右イメージの参照変換ベクトルの位置と同じ行に位置され るが、参照右イメージの変換ベクトルの位置を右に2列シフトさせた、左イメー ジの変換ベクトルに関連するウインドウとの相関を表す。ここで、視差は2であ り、そのため左イメージおよび参照右イメージにある2つのウインドウは互いに 関して2列分オフセットされる。 同様に、データ要素366内の相関データは、右イメージの参照変換ベクトル に関連するウインドウの、参照右イメージの参照変換ベクトルの位置と同じ行に 位置されるが、参照右イメージの変換ベクトルの位置を右に15列シフトさせた 、左イメージの変換ベクトルに関連するウインドウとの相関を表す。ここで、視 差は15であり、そのため左イメージおよび参照右イメージにある2つのウイン ドウは互いに関して15列分オフセットされる。 他のイメージ要素およびそれらのそれぞれの視差に対する他の相関結果にとっ ても、上記と同じことが当てはまる。例えば、データ要素367の相関データは 右イメージのライン363によって示される参照変換ベクトルと関連するウイン ドウの、参照右イメージのライン363によって示される変換ベクトルの位置と 同じ行に位置されるが、その参照右イメージの変換ベクトルの位置を右に1列シ フトさせた、左イメージの変換ベクトルに関連するウインドウとの相関を表す。 ここで、視差は1であり、そのためそのため左イメージおよび参照右イメージに ある2つのウインドウは互いに関して1列分オフセットされる。 ウインドウのサイズが1×1(単一の座標位置)の場合は、データ要素364 (視差=0)内で計算され且つ格納される値は、右イメージの変換ベクトルと左 イメージの対応する変換ベクトルとの間のハミング距離である。ウインドウのサ イズが1×1より大きい場合(例えば7×7)、データ要素364で計算され且 つ格納される値は、右イメージのウインドウの各変換ベクトルと左イメージの対 応する変換ベクトルとの間で計算された個々のハミング距離の合計である。 図13(B)は、上記と同じ相関バッファを3次元的に抽出して説明する図で ある。図示されるように、D個の相関バッファのそれぞれはX×Yのサイズであ り、所与のディスプレイに対する左イメージの対応するイメージ要素に関する所 望のイメージ処理エリアの右イメージの各参照イメージ要素に対する相関合計値 を保持する。D個の視差がある場合には、D個の上記の相関バッファが与えられ る。 K.ウインドウ間の相関 図12を参照して、ウインドウ375は、参照右イメージの対応するウインド ウ376から、特定の視差によってオフセットされる左イメージの3×3のウイ ンドウを表す。相関計算が図13(A)のイメージ要素372に対するデータ要 素377について行われる場合、視差は5である。図12を再び参照して、各デ ータ要素L1からL9は、前工程において左輝度イメージから計算された参照左 イメージの一部分に対する変換ベクトルを表す。同様に、各データ要素R1〜R 9は、前工程において右輝度イメージから計算された参照右イメージの一部分に 対する変換ベクトルを表す。左ウインドウ375に対する参照変換ベクトルはL 9であり、参照右ウインドウ376に対する参照変換ベクトルはR9である。変 換ベクトルL9およびR9は、それらのそれぞれの変換イメージ内の同一の行上 に位置されるが、L9は5列(視差=5)分シフトされる。これらの2つの3× 3のウインドウに対する相関は、各変換ベクトル間の個々のハミング距離の合計 である。つまり、次に示す変換ベクトルの組の間でハミング距離が計算される。 これらの変換ベクトルの組は、L1とR1、L2とR2、L3とR3、L4とR 4、L5とR5、L6とR6、L7とR7、L8とR8、およびL9とR9であ る。次に、これらの9個の各組のハミング距離計算が合計される。ある実施態様 では、完全な相関合計が領域5、6、9および10について得られる。 このようなウインドウ内の変換ベクトルの1対1マッチングは本発明の1実施 態様である。他の実施態様では、右ウインドウ376内の全ての変換ベクトルと 左ウインドウ375の1つおきの変換ベクトルとのマッチングを含む、異なるマ ッチングパターンが適用され得る。他の実施態様ではさらに、ある変換ベクトル をセンサス変換計算と類似の様式でスキップまたは無視することを含む。よって 、処理速度を増大させるためには、相関演算がL1とR1、L3とR3、L5と R5、L7とR7およびL9とR9の間のハミング距離を決定する工程、これら の個々のハミング距離を合計する工程、および参照イメージ要素R9に対する適 当なデータ要素ポジションにそれらのハミング距離を格納する工程を含み得る。 L.列合計バッファ 図15(A)〜図15(D)は相関合計、対象計算、および視差カウント計算 に用いられる列合計アレイ[x][y]の例示的な更新シーケンスを示す。図1 4(A)〜図14(D)は、移動ウインドウに対する列合計アレイ[x][y] の使用および動作を示す。図解の目的のため、議論の間、図14(A)〜図14 (D)を再び参照しなければならない。列合計アレイは、移動ウインドウがある 座標位置から他の座標ポジションヘ移動すると更新される、単一のラインバッフ ァである。列合計アレイは相関合計計算、対象計算およびモードフィルタ計算に 用いられて、ウインドウ合計計算を容易にし且つ処理速度を増大させる。この単 一のライン列合計アレイの幅または長さはイメージの幅である。より具体的には 、列合計バッファの幅は所望のイメージ処理エリアの幅である。所望のイメージ 処理エリアの幅は通常は元のイメージよりも小さい。 図14(A)に戻って、ウインドウ378およびその参照イメージ要素379 は(X+2,Y)に位置される。つまり、参照イメージ要素379は行Yおよび 列X+2に位置される。列合計バッファはXで開始し、2*XWIDTH -1で終了す る。従って、参照イメージ要素379は、所望のイメージ処理エリアの左端から 2列分離れて位置される。参照イメージ要素379に対する列合計の計算後、列 合計はポジション384で列合計バッファに格納される。列合計バッファは、図 15(A)に示すように、そこに存在する列合計を書き換えて、それを(X+2 ,Y)に位置される参照イメージ要素379に対する列合計と置換する。図14 (A)のウインドウは行の残りに沿って移動し、列合計を計算し、列合計バッフ ァ内のそれぞれの位置でこれらの列合計を格納する。このように、図15(A) に示すように、X+2を過ぎれば、列合計は列X+3でイメージ要素に対 して計算され、その列合計は列合計バッファ内の位置385で格納される。行の 終点で、列合計バッファは行Yにおける各列(X,X+1,X+2,...,2* XWIDTH -1)に対する列合計値を保持する。このことは図15(A)に示されて いる。これらは時間t=0のときに列合計バッファに保持される列合計値である 。 時間t=1のとき、列合計バッファは再び更新される。図14(B)を参照し て、ウインドウ380およびその参照イメージ要素381は新しい行の開始時に は(X,Y+1)に位置される。この位置は、直前の計算から1行下且つ2*XWIDTH -1 列分左である。直前の計算がウインドウおよびその参照イメージ要素に 対して、行Yの終点である位置(2*XWIDTH -1,Y)で行われたことを思い出 されたい。図15(B)に示すように、位置(X,Y+1)で、列合計が計算さ れ列合計バッファ内にポジション386で格納される。列合計バッファ内の全て の他のポジションは前の行からの前に計算された列合計値を保持する。従って、 図15(B)のポジション386(X,Y+1)は、図14(B)の参照イメー ジ要素381に関連する行の列合計を保持し、一方、列合計バッファの残りのポ ジションでは行Yからの列合計値を保持する。実際、参照イメージ要素379に 対して計算された列合計はポジション384で格納されたままである。これは、 時間t=1の場合である。 時間t=2のとき、ウインドウ380は1列分右に移動したため、図14(C )に示すように、参照イメージ要素381は(X+1,Y+1)に位置される。 この特定の位置(X+1,Y+1)に対する列合計が計算された後、図15(C )に示すように、列合計は列合計バッファのポジション387に格納される。ポ ジション387の右にある列合計バッファの残りのポジションは、前の行からの 前に計算された列合計値を保持する。従って、ポジション384は参照イメージ 要素379に対して計算された列合計をまだ保持している。 時間t=3のとき、ウインドウ380は一列分右に移動したため、図14(D )に示すように、参照イメージ要素381は(X+2,Y+1)に位置される。 参照イメージ要素381はイメージ要素379の直ぐ下に位置される。この特定 の位置(X+2,Y+1)に対する列合計が計算された後、図15(D)に 示すように、列合計は、列合計バッファのポジション384に格納される。格納 は、前回の繰り返し(previous iteration)に、イメージ要素379に対して前 に計算された列合計を書き換えることによって行われる。ポジション384の右 にある列合計バッファの残りのポジションは、前の行からの前に計算された列合 計値を保持する。この時点で、列合計バッファのポジション384は、参照イメ ージ要素379に対してではなく、参照イメージ要素381に対して計算された 列合計を保持する。勿論、イメージ要素379に対する前の列合計値は、実際の ポジション384への書き換え動作が行われる前に、演算で用いられる。前述し たように、379に対する列合計からの右上の角のイメージ要素の減算が実行さ れる。イメージ要素381の修正列合計への加算もまた、書込み動作の前に行わ れる。ウインドウおよびその参照イメージ要素の現在の位置に基づく過去の列合 計の更新は、単一のライン列合計バッファを用いて繰り返し達成される。 M.左−右一貫性検査 図16(A)〜図16(G)は左−右一貫性検査を示す。図16(A)〜図 16(D)は、右イメージまたは左イメージのどちらかが参照として指定された 場合の、視差に対する相対ウインドウシフトを示す。図16(E)〜図16(F )は例示的な左および右センサスベクトルの一部分を示す。そして図16(G) は相関合計バッファの一実施態様の構造およびそこに格納されるイメージ要素お よび対応する視差データを示す。 左−右一貫性検査はエラー検出の一形態である。この検査は右イメージのイメ ージ要素によって最適イメージ要素として選択された左イメージのイメージ要素 がまた、その最適イメージ要素として右イメージの同じイメージ要素を選択する かどうか決定し且つ確認する。基本的に、左イメージのP’がベストマッチ(そ のイメージ要素Pに対する視差のうちの最小の相関合計値)と決定されるように 右イメージのイメージ要素Pが視差を選択すれば、次に右イメージのイメージ要 素Pがそのベストマッチであるように左イメージのイメージ要素P’は視差値を 選択しなければならない。光景要素がどちらのイメージにおいても視覚可能でな い場合、あるいは光景がマッチングしているように見せかける(plausible matc h)ために十分なテクスチャを有しない場合には、1つの視界(view)から決定 される最小値が意味をなさない可能性がある。 左−右一貫性検査は、相関合計バッファ内の既に計算されたデータを用いてそ の任務を遂行する。相関合計バッファは、参照の役目をする右イメージに基づい て生成されたが、本発明の設計は、多様な視差に対するデータが、あたかも左イ メージが(順序は異なるが)参照として指定されたように、含まれることを確実 にする。 図16(A)および16(B)に示すように、右イメージが参照として指定さ れる場合、多様な相関合計が右イメージの対応するポジションからのそれぞれの シフトまたは視差に対して演算されると、左イメージは右にシフトする。参照右 イメージはその場所に留まる。図16(C)および16(D)に示されるように 、左イメージが参照として指定される場合、多様な相関合計が右イメージの対応 するポジションからのそれぞれのシフトまたは視差に対して演算されると、右イ メージは左にシフトする。参照左イメージはその場所に留まる。 図16(E)は、特定の光景の左イメージに対するセンサス変換ベクトルアレ イを示す。センサス変換アレイは左輝度イメージから演算されたセンサスベクト ルを含む。センサスベクトルはアレイ全体として、例えばAL、BL、CL、DL、 EL、FL、GL、HL、IL、JLなどを含む。これらの特定の左センサスベクトル は単一の行に沿って位置される。図16(F)は、同一の光景の右イメージに対 するセンサス変換ベクトルアレイを表す。これらのセンサス変換アレイは右輝度 イメージから計算されたセンサスベクトルを含む。これらのセンサスベクトルは 、アレイ全体として、例えばAR、BR、CR、DR、ER、FR、GR、HR、IR、 JRなどを含む。これらの特定のセンサスベクトルは単一の行であり且つ左イメ ージのセンサスベクトルAL、BL、CL、DL、EL、FL、GL、HL、ILおよび JLと同じ対応する行に沿って位置される。この例では、選択された視差の数は 4(D=4)であるため、視差は0から3まで及び(run)、右イメージは参照 イメージとして指定される。 図16(G)は、上記のセンサスベクトルに対応する相関合計バッファの一部 分を示す。第1の行0に沿って、相関合計データは参照右イメージにおける各参 照イメージ要素に対して演算され、相関合計バッファ内の適切なポジションに格 納された。他の相関合計データは、バッファの残りの行および列に格納される。 従って、第1の参照イメージ要素ARの各視差(0,1,2,3)に対する相関 合計データは、行0の第1の4個のデータ位置に格納される。同様に、第2の参 照イメージ要素BRの各視差(0,1,2,3)に対する相関合計データは、行 0の第2の4個のデータ位置に格納される。データの格納は、参照イメージ要素 のそれぞれについて全ての相関合計が計算されるまで、参照右イメージ要素(例 えばCR、DR、ER、FR、GR、HR、IR、JR)の残りについて相関合計バッフ ァ内でこの様式で実施される。 相関合計バッファのデータが右イメージを参照として用いて生成されたが、一 方で、左イメージのウインドウおよび点がそれぞれの視差に対してシフトされる ことに留意されたい。データはこのコンセプトを反映する様式で格納され且つ構 成される。しかし、格納データはまた、相関合計バッファ内の順序は異なるが、 あたかも左イメージが参照として指定されたように、左イメージの相関結果も反 映する。概して、バッファ内の隣接するデータの連続シーケンスは参照右−左相 関を示すが、D−1オフセットデータの連続シーケンスは参照左−右相関を示す 。 例えば、図16(G)のイメージ要素Dに注目すれば、その視差0〜3のそれ ぞれに対する相関合計は既に計算され、隣接するバッファ位置に格納されている 。これらの特定のデータは、左イメージのシフトされたイメージ要素(対応する 変換ベクトル)に関する参照右イメージ要素DR(その変換ベクトル)の相関を 表す。従って、DR(図16(F)参照)の相関ウインドウ内の変換ベクトルと DL(図16(E)参照)の相関ウインドウ内の変換ベクトルとの相関合計は、 相関合計バッファ内のデータ要素Dの位置0(d=0)に格納される。相関合計 バッファ内のこの位置を図16(G)に参照符号710として表す。同様に、DR (図16(F)参照)の相関ウインドウ内の変換ベクトルと、EL(図16(E )参照)の相関ウインドウ内の変換ベクトルとの相関合計は相関合計バッファ内 のデータ要素Dの位置1(d=1)に格納される。相関合計バッファ内のこの位 置を図16(G)に参照符号7 11として表す。次に、DR(図16(F)参照 )の相関ウインドウ内の変換ベクトルと、FL(図16(E)参照)の相関 ウインドウ内の変換ベクトルとの相関合計は、相関合計バッファ内のデータ要素 Dの位置2(d=2)に格納される。相関合計バッファ内のこの位置を図16( G)に参照符号712として表す。最後に、データ要素Dに対して、DR(図1 6(F)参照)の相関ウインドウ内の変換ベクトルと、GL(図16(E)参照 )の相関ウインドウ内の変換ベクトルとの相関合計は、相関合計バッファ内のデ ータ要素Dの位置3(d=3)に格納される。相関合計バッファ内のこの位置を 図16(G)に参照符号713として表す。これらの相関合計はデータ要素Dに 関連する相関バッファ内の隣接する位置に格納される。他の相関合計データは、 他の参照イメージ要素(すなわち変換ベクトル)A、B、C、E、F、G、H、 IおよびJなどに対して、同様の方法で格納される。 ここで、左イメージが参照として指定された場合、右イメージは左へシフトす る。その結果、左イメージの全ての左データ要素が全ての視差に対する相関合計 の完全な組を持たない。例えば、左データ要素ALは、視差が0の場合、右デー タ要素ARとのみマッチングし得る。視差が1の場合、ALは右イメージ内に対応 するデータ要素を持たない。左イメージが参照として指定された際に、それぞれ の視差が左へシフトしたからである。 従って、視差のそれぞれに対して相関合計の完全な組を有する左イメージの第 1のデータ要素は、左イメージのDデータ要素に位置される。言い換えれば、相 関バッファ内のデータ要素Aの視差D−1の相関合計と関連する左データ要素は 、視差のそれぞれに対して相関合計の完全な組を有する、左イメージの第1のデ ータ要素である。視差が4(すなわちD=4)の場合、D−1=3であり、その ため左イメージの4個のデータ要素に位置されるデータ要素はDLである。逆に 、相関合計バッファのデータ要素Aに対して、視差3(すなわちD−1)に対す る相関合計と関連する左データ要素はDLである。 この例の場合、D=4であり全ての視差に対して相関合計の完全な組を有する 、第1の左データ要素はDLである。視差が3の場合、データ要素AはARのウイ ンドウとDLのウインドウとの相関合計を有する。D−1(すなわち3)位置を 移動すれば、視差2において、データ要素BはBRのウインドウとDLのウインド ウとの相関合計を有する。D−1(すなわち3)位置を移動すれば、視差1に おいて、データ要素CはCRのウインドウとDLのウインドウとの相関合計を有す る。D−1(すなわち3)位置を移動すれば、視差0において、データ要素Dは DRのウインドウとDLのウインドウとの相関合計を有する。この例から明らかな ように、相関合計バッファは元々右イメージを参照として用いて作成されたもの であっても、相関合計バッファは多様な左イメージデータ要素および視差の分だ けシフトされた右イメージデータ要素に対する相関合計を含む。 左−右一貫性検査は、左および右イメージの対応選択を比較する工程およびそ れらがマッチングするかどうかを決定する工程を含む。上述の例では、DRがそ の最適視差として元々視差2を選択していれば、対応するイメージとしてFLを 選択する。左−右一貫性検査は、FLがDRをベストマッチとして選択したかを確 認する。ベストマッチは所与の参照イメージ要素に対する視差のうちの最小の相 関合計によって決定される。FLに関して、視差のそれぞれに対する相関データ が位置714(視差0、FR)、位置715(視差1、ER)、位置712(視差 2、DR)および位置716(視差3、CR)に位置される。位置712がデータ 要素FL(位置714、715、712および716)に対するこれらの全ての 視差のうちの最小の相関合計を含めば、マッチングが起こり、左─右一貫性検査 は元々の右から左への選択を確認する。マッチングが生じなければ、両方の視界 (view)からの選択は無視できるか、あるいは両方の視界に対する視差のうち最 小の相関合計を伴う視差が選択され得る。さらに、この選択は対象演算またはモ ードフィルタの結果に依存し得る。 N. 対象演算 例示的なプログラムで用いられる別の検査は、対象演算器によって生成される 信頼値に関する。対象演算から生じる低い値は、輝度イメージ(およびそれ故光 景)内にテクスチャがほとんどない(または均一なテクスチャである)ことを表 している。よって、有効な相関マッチングの可能性は比較的低い。対象演算から 生じる高い値は、輝度イメージ内に多数のテクスチャが存在することを意味する 。そのため、有効な相関マッチングの可能性は比較的高い。信頼値が低い場合、 イメージ1近傍の輝度は均一であり、イメージ2に対して信頼性をもってマッチ ン グされ得ない。 視差値が十分高い信頼を有する場合を決定するために閾値が用いられる。閾値 はプログラム可能であり、比較的高い値が、ピクセル近傍のテクスチャの量に関 連する映像およびディジタイザシステム内のノイズの存在に依存する。 本明細書に述べる対象演算器は、スライディング合計を用いる部分的なエリア またはウインドウにわたる部分的な輝度の差も含む。本明細書ではそれを合計輝 度差演算器と呼ぶ。スライディング合計法は、イメージ内の各ピクセルで、部分 的なエリアの合計/差を演算する動的プログラムの一形態である。対象演算は、 ピクセルの周囲の値の長方形の部分的領域(対象ウインドウと呼ばれる)にわた る輝度値の差を演算し、これらの差を合計することによって、この部分的エリア 和/差法を用いる。約7×7の比較的小さい対象ウインドウは、本発明の一実施 態様にとって十分である。他の実施態様では異なるサイズの対象ウインドウが用 いられ得る。様々な相対的なサイズのセンサスウインドウおよび対象ウインドウ が、本発明の精神および範囲を逸脱することなく用いられ得るが、より大きいセ ンサスウインドウおよびより小さい対象ウインドウが深度または動きの不連続性 (motion discontinuities)においてより良好な局在化(localization)を引 き起こす。 O. モードフィルタ モードフィルタは母集団分析(population analysis)に基づく視差を選択す る。イメージ要素に関する極値的指標アレイ内に格納された全ての最適視差は、 モードフィルタウインドウ内で調べられる(examine)。極値的指標アレイ内の 最適視差はMAIN内で予め決定されている。典型的に、ウインドウまたはイメ ージ要素の近傍の最適視差値は視差イメージの単一演算のために極めて均一でな ければならない。特に光景内の対象物(object)または光景それ自体が幾分動的 かつ変化する場合は、これらの特定の視差値は演算ごとに変動し得る。参照イメ ージ要素のモードフィルタウインドウ内の最大カウントを有する視差が、そのイ メージ要素に対する視差として選択され、MF極値的指標アレイ内に格納される 。これは誤って(stray erroneously)決定された視差値がもたらし得る、所与の イメージ要素に対する影響を打ち消す。例えば、7×7のウインドウの場合、イ メージ要素に関連するウインドウの最適視差は、次に示す表のようになる。 この7×7ウインドウの各ブロックは、これらのブロック内に位置される各イ メージ要素に対して選択された最適視差を表す。視差の最大数は16(D=16 )である。モードフィルタは、上の表に、大きいフォントで、下線付きでまたボ ールドで示される視差値4を有する、ウインドウの右下の角における参照点に関 する近傍またはウインドウ内で視差の一貫性を決定する。このウインドウの視差 値に対するカウントを次に示す。 d=0:1 d=4:20 d=8:0 d=12:0 d=1:0 d=5:8 d=9:1 d=13:0 d=2:5 d=6:2 d=10:0 d=14:0 d=3:11 d=7:1 d=11:0 d=15:0 このウインドウに対するカウント総数は49(7×7)となるべきである。こ の例では、視差4値が20回生じたが、この数はこのウインドウの全ての視差値 の最高数である。視差3はこのウインドウ内で11カウントあり、2番目に高い 数である。従って、このウインドウに対して選択され、且つウインドウの右下に ある参照点に割り当てられる視差値は、視差4である。これはまた、この位置で のこのイメージ要素に対して選択された最適視差値と一致する。 視差値の結合(ties)のため、プログラムはスキューされるかまたはバイアス されて、より高い視差値を選択する。従って、この例では、視差4に対するカウ ントが14であり且つ視差5に対するカウントが14であれば、本発明の一実施 態様では、このウインドウの最適視差値として視差5を選択する。他の実施態様 では、結合状況(tie situation)においてより低い視差値が最適視差値として 選択される。モードフィルタ動作はエラー検出の一形態であるため、本発明の多 様な実施態様を機能させるために実施する必要はない。 P. サブピクセル推定 これまでで、本発明のアルゴリズムが所望のイメージ処理エリアに位置される 各イメージ要素に対する最適視差が生成された。この離散的または整数の最適視 差は、たとえ極めて正確で高性能なものであっても、初期「推測」として特徴付 けられ得る。対象演算、左−右一貫性検査、およびモードフィルタの任意の組み 合わせを用いて、この「推測」が確認され、修正され、または無視される。この 信頼/エラー検査に加えて、最適視差の初期「推測」はさらにサブピクセル推定 を用いて正確に(refine)され得る。サブピクセル推定は、その両側に隣接する 視差に対する相関合計を再検討する工程と、次に補間(interpolate)して新し い最小相関合計を得て、その結果より正確な視差をが得る工程とによって、より 正確な視差(それが存在するならば)を推定する。従って、例として、視差d= 3が最適視差として選択された場合、サブピクセル推定は、視差d=2、d=3 、d=4を表す相関合計点間の線分(例えば[V])また曲線(例えば放物線) の組などの、数学的に関連する点の組をフィッティング(fitting)することを 含む。この「V」または放物線上の最小点は、適切な信頼/エラー検出検査を有 するメイン相関プログラムを通じて初期に選択された離散視差に対応する相関合 計と同じか、またはそれより低い相関合計を表す。新しい最大相関合計に関連す る推定された視差は、この時点で新しい最適視差として選択される。 図17は、正確な(refined)最適視差数を決定するために用いられるサブピ クセル推定のコンセプトおよび動作を示す。図17(A)は例示的な視差数の分 布と特定の一イメージ要素に対する相関合計との関係を示す。x軸は所与のイメ ージ要素に対する許容可能な視差を表す。ここでは、視差の最大数は5(D=5 )である。y軸は特定のイメージ要素についてx軸に示されたそれぞれの視差に 対して計算された相関合計を表す。よって、視差0の場合の相関合計はY0、視 差1の場合の相関合計はY1、視差2の場合の相関合計はY2、視差3の場合 の相関合計はY3および視差4の場合の相関合計はY4と計算される。この例では 、Y2<Y1<Y3<Y0<Y4である。最初に、アルゴリズムは最適視差として視 差2を選択する。それが最も小さい相関合計であるからである。この初期の選択 が対象演算、モードフィルタ、および左−右一貫性検査を通過すると仮定すれば (これらの信頼/エラー検出検査が少しでも役立てば)、この初期の選択は最適 視差として特徴付けられる。図17(A)では、視差が整数であるため、相関合 計が離散点にプロットされることに留意されたい。初期に選択された最適視差周 辺にある相関パターンが存在すると仮定すれば、これらの多数のプロットされた 点を通過して補間することにより、初期に選択された最適視差に関連する相関合 計値よりも小さい相関合計値を生じ得る。 図17(B)は上記の補間の一方法を示す。図17(A)と同じプロットを用 いて、本発明の一実施態様に沿った補間方法は、「V」字形を形成する2つの線 分を用いる。「V」は、3点──視差2(すなわちY2)に対する初期に選択さ れた相関合計の点、およびこの初期に選択された最適視差数(すなわち視差2) の直ぐ前(すなわち視差1に対する相関合計Y1)および直ぐ後(すなわち視差 3に対する相関合計Y3)の視差数に関連する2個の相関合計の点を通って描か れている。この図では、正確な最適視差数は、相関合計Y2よりも小さい相関合 計YOPTに対して1.8である。この正確な視差数を用いて、距離/動き(motio n)/深度の演算をより正確にできる。 「V」は異なる形を含んでいてもよい。ある実施態様では、「V」は完全な「 V」、すなわち図17(B)において角度1=角度2であるが、角度についての 特定値は1プロットから他のプロットまで変化し得る。角度1=角度2である限 り、完全な「V」が2次元スペースの任意の3点を通って描かれ得る。相関合計 の特定の相関合計値の位置と、初期に選択された最適視差に関連する相関合計値 に対する視差数プロットとの関係は、角度1および角度2に対して選択される角 度値を決定する。 次の式が、この新しい最適視差を計算するために用いられ得る。ここでも図1 7(B)を参照する。 変数Offsetは、このサブピクセル推定動作の前の、初期に選択された離散最適視 差からのオフセットを表す。MIN(a,b)関数は2つの値aまたはbの小さ い方を選択する。MAX(a,b)関数は2つの値aまたはbの大きい方を選択 する。従って、図17(B)の例では、初期に選択される離散視差は2であり、 計算されるオフセットは−0.2であり、その結果新しく推定される視差は1. 8である。 Q.並行演算 明晰になることを意図して、議論はシーケンシャル処理(sequentia l processing)に焦点を当ててきたが、本発明を実行するに当たっ て、さまざまな動作が、互いに別々の時間に行われる必要はない。むしろ、可能 な限り早くエンドユーザに使用可能な結果を提供するために、動作は並行して実 行され得る。実際ある実施形態は、並列動作およびパイプライン動作を要求する 。つまり、システムは、シストリック(systolic)様式でデータを処理 し得る。 本発明のある実施形態は、完全な並列およびパイプライン様式で左右の一貫性 の検査を実行する一方で、視差の各々についての相関を決定する。さらに詳細な 議論のために、以下、図48、49、50、52、54、55および57を参照 して、ハードウェア実現に言及する。 ある実施形態は、まず所望のイメージ処理領域内の、関連する全イメージデー タについてセンサス変換を演算し、次に生成されたセンサスベクトルのアレイか ら相関結果を演算する。別の実施形態において、イメージデータがシステムに与 えられると、相関結果を素早く提供するために、センサス変換が、相関演算と並 行して、イメージデータに適用される。従って、センサからの十分な数のイメー ジ輝度データがシステムによって受け取られた場合、対象の光景についてのセン サスベクトルを素早く生成するために、センサス変換がイメージ輝度データに即 座に適用され得る。通常は、十分なイメージ輝度がセンサス計算のために利用可 能かどうかの決定は、センサスベクトル生成のために選択されるセンサスウイン ドウのサイズ、センサスウインドウ参照点の位置およびセンサスウインドウ内の 特定のイメージ輝度データに依存する。センサスベクトル計算のために使用され るセンサスウインドウ内の最終点が、左右両方のイメージについて利用可能であ る場合、センサス変換プログラムが開始し得る。これが、所望のイメージ処理領 域の上方左端の隅についての単一のセンサスベクトルを計算する。 十分なセンサスベクトルが、ある与えられたイメージ要素について相関結果を 計算するために利用可能である場合、システムは相関合計プログラムをトリガま たは開始する。通常、左右のイメージの各々についての第1のセンサスベクトル が利用可能である場合、相関プログラムが、これら2つのベクトルについてのハ ミング距離を即座に計算し得、列合計およびウインドウ合計アレイを開始し得る 。更なるイメージ輝度データがシステムによって受け取られると、更なるセンサ スベクトルが生成され得、相関合計が列毎およびウインドウ毎に集められる。 十分なウインドウ合計が利用可能な場合、視差最適化プログラムが開始し得る 。従って、相関合計プログラムが、ある与えられたイメージ要素についての視差 の各々についての相関合計を計算している場合、最適な視差が決定され得る。視 差最適化プログラムが、ある与えられたイメージ要素についての視差の中の最小 の相関を選択し、それを極値指標アレイ内に格納する。 相関合計および最適視差決定、またはシステムによるイメージ輝度データ受容 の受容のいずれかと並行して、対象動作が開始され得る。対象動作が、イメージ 輝度データ受容とともに開始する場合、対象結果が、後の使用のために格納され る。対象動作が、相関合計および最適視差決定プログラムとともに開始する場合 、対象結果は、イメージ要素のために選択された最適視差の信頼を評価するため に、即座に使用され得る。 極値指標アレイが、イメージ要素について、十分な最適視差データを選択した 場合、モードフィルタおよび左右一貫性検査が開始し得る。これらのエラー検出 検査は、データが利用可能になると、選択された最適視差(つまり、左右一貫性 検査)または最適視差の選択された群(つまり、モードフィルタ)を評価し得る 。これら並行処理の全てが、フレーム内でデータ毎に進行し得、リアルタイムで の使用のために、結果がユーザに伝送される。 本発明のさまざまな動作は、センサス変換、相関合計、視差最適化、対象動作 、左右一貫性検査、モードフィルタ、および特定のキャッシング動作を含む。こ れら動作の量は、列合計およびウインドウ合計を介して、イメージ処理システム 内で実行される。コンピューティング要素のアレイに加えて、システムは、ホス トシステムからのコンピューティングおよびメモリリソースを利用し得る。 III. 例示的なプログラム A.メインプログラム 上で論じたコンセプトは、ステレオイメージからの深度を計算するためにセン サス変換を使用する例示的なプログラムを検討することによって説明され得る。 図18は、さまざまな任意性を有する本発明の一実施形態のハイレベルなフロ ーチャートを示す。この実施形態において、さまざまな動作が、展開されたルー プを使用して実行される。展開されたループは、処理時間を節約するために、「 イフ...ゼン...ネクスト」(”If...then...Next”)の ループを実質的に省略する反復性の演算として、当業者には公知である。つまり プログラムがループに関する条件をテストする必要がない場合、これらのステッ プは組み込まれず、処理時間およびリソースを消費しない。 ”メイン(MAIN)”と呼ばれるプログラムは、ステップ400において開 始する。ステップ405が、所望のイメージ処理領域を決定する。通常、対象の オブジェクトは、スクリーンの小さな領域内に位置し、一方、光景の残りの部分 は単に静的な背景である。このことが、リアルタイムアップデートのために所望 のイメージ処理領域に焦点を当てる頻繁な演算を可能にし、一方で、静的な背景 はよりずっと低い頻度で処理され、全く処理されない場合には、ノンリアルタイ ムモードでディスプレイに伝送される。他のケースにおいて、光景の他の部分が 静的かどうかに関わらず、ユーザは光景の特定の領域に焦点を当てることを望み 得るか、または光景全体が所望のイメージ処理領域であり得る。 ステップ410は、本発明のこの実施形態において利用される、さまざまなア レイについてメモリスペースを割り当てる。左右のカメラのための元の輝度イメ ージが、各X×Yである。上で論じたように、他の実施形態において、X×Yは 、光景の元の輝度イメージの画分(fraction)である所望のイメージ処 理領域も表し得る。 輝度イメージに基づいて、左右変換ベクトルが生成される。これらのベクトル は各々X×Yのメモリスペースを必要とする。列合計ラインバッファが、輝度イ メージおよび変換イメージのラインに沿った各参照イメージ要素について計算さ れたさまざまな列合計を格納するために、長さXの単一のラインを必要とする。 相関合計バッファが、左右の輝度イメージについての最大の相関合計結果を保持 する。相関合計バッファの幅または長さがX*Dであり、Xは輝度イメージ幅、 Dは視差の数である。相関合計バッファの高さはY+1である。さらにもうひと つのラインまたは行が、領域5および6についての相関合計結果を格納するため に必要とされる。相関の計算に基づいて、ディメンションX×Yの極値指標アレ イが生成され、そのアレイが最適な視差を含む。最終的に、ディメンションX× Yの視差イメージが、最適視差から生成される。 他の実施形態において、ステップ405とステップ410とが入れ換えられ得 る。つまり、メモリ割り当てステップ410が、イメージ処理領域決定ステップ 405の前に行われる。これが意味するのは、所望のイメージ処理領域が、イメ ージのための割り当てられたメモリスペースと同じかまたは小さいサイズでしか ないということである。 ステップ420は、光景の所望のフレームレートで、別個の左右の輝度イメー ジを得る。ステップ430は、左右のイメージのためのローカル変換ベクトルを 演算し、各々の左右変換ベクトルアレイ内にそれらを格納する。ある実施形態に おいて、変換はセンサス変換である。別の実施形態において、変換はランク変換 である。そのようなベクトルを演算するために、変換ウインドウのサイズおよび 変換ウインドウ内の参照点の位置が規定されねばならない。ある実施形態におい て、変換ウインドウは9×9であり、一方他の実施形態においては、7×7など の異なるサイズが使用され得る。参照点の位置はウインドウの中心である。他の 実施形態において、ウインドウの下方右端の隅などの異なる参照点が使用される 。 ステップ440が、相関プロセスを開始し、このプロセスは左右のイメージ両 方に依存する。この時またはこの時より前に、システムがいずれのイメージが参 照イメージであるかを決定する。ある実施形態において、右のイメージが参照イ メージとして指定される。ステップ440は、相関ウインドウ内の参照右イメー ジの(イメージ要素と関連した)各変換ベクトルについての相関合計の値を、同 じサイズの相関ウインドウ内の左イメージの、対応する視差シフトされた変換ベ クトルに関して演算する。従って、各右イメージ要素は、視差シフトされた左イ メージ要素に関してD相関合計結果を有する。ある実施形態において、相関動作 はハミング距離である。他の実施形態において、相関動作はハミング重量である 。ある実施形態において、相関ウインドウは7×7、つまり、7個の変換ベクト ル掛ける7個の変換ベクトルである。他の実施形態において、相関ウインドウは 、9×9などの異なるサイズであり得る。相関ウインドウサイズは、データを処 理するのに要求される処理時間と得られた結果の正確さとの間のバランスを表す 。 ステップ450が、ステップ440において生成された相関合計バッファに基 づく参照右イメージ内の各イメージ要素についての最適視差を決定する。相関合 計バッファが、左イメージの各所望のシフトまたは視差に関して、参照右イメー ジ内の、各イメージ要素についての相関合計の値(つまりハミング距離)を含む ので、右イメージ内の各イメージ要素の最適視差は、参照右イメージの各イメー ジ要素について計算および格納された、視差に基づく相関合計の値の中の、最も 低い相関合計の値である。次に、これらの最適視差は、視差イメージを生成する ために使用され、他のアプリケーションについても有用である。ステップ460 においてプログラムは終了する。しかし上のステップは、捕捉され得る輝度イメ ージの次のフレームのために繰り返され得る。次のフレームまたは一連の後続フ レームは、光景内のオブジェクトの動き(または動きの欠如)を表し得、もしく は光景の異なる領域も表し得る。プログラムはステップ405、410または4 20から繰り返され得る。 図18はまた、3つの任意の信頼/エラー検出検査、つまり対象動作、モード フィルタおよび左右一貫性検査、を示す。対象動作は、光景の性質または描かれ た光景内のオブジェクトに起因して得られた結果の信頼の決定を下す。光景また はイメージ化された光景内のオブジェクトが、変化するテクスチャーを有する場 合、相関決定が信頼できる左右のイメージの”マッチ(match)”を表す信 頼は高くなり得る。一方で、光景またはイメージ化された光景内のオブジェクト が均一なテクスチャーを有するまたはテクスチャーを有さない場合、相関決定が 信頼できる左右のイメージの”マッチ”を表す信頼は比較的低くなり得る。 対象動作470への呼び出しが、ステップ420の後、ステップ430の後、 ステップ440の後およびステップ450の後を含むがそれに限定されないプロ グラムの中のいくつものポイントにおいて行われ得る。対象動作は輝度イメージ に依存するので、輝度イメージが対象の光景のために得られるよりも前に、呼び 出され得ない。呼び出された場合、必要な量の輝度イメージが利用可能な場合に は、対象動作が、MAINに戻るか、または計算を続け得る。対象動作は、左ま たは右のいずれかの、ただ1つの輝度イメージを必要とし、いずれかひとつが利 用可能な場合、対象動作が誘発され得る。一方のまたは他方のイメージ、例えば 右のイメージが、対象計算のために使用されねばならないとユーザが予定する場 合、対象動作への呼び出しは、所望の輝度イメージが利用可能になるまで、遅延 されねばならない。 対象動作の性質のために、対象動作はスキャンインされた全てのフレームにつ いて、イメージ処理システムへと呼び出される必要はない。あるケースにおいて 、光景または光景内のオブジェクトは、静的なので対象動作を実行する必要性が 比較的低い。対象結果がフレームからフレームへとまたはフレームの群からフレ ームの群へと頻繁に変化し得ない場合、イメージ処理システムは、有価な演算リ ソースを対象計算に転用することを望み得ない。しかし、光景が動的である場合 、またはイメージ処理システムが、変化が頻繁に起こる光景の小さな領域に集中 する場合に、対象動作が極めて頻繁に呼び出され得る。 ステップ472が対象動作のためのメモリを割り当てる。これらのメモリスペ ースは、対象列合計ラインバッファ(X)、差のスライディング合計(SSD) アレイ(X×Y)、および対象結果アレイ(X×Y)である。あるいは、メモリ 割り当てステップは、対象動作内においてよりもむしろステップ410において 、 MAINプログラム内に組み込まれ得る。 この時に前後して、対象ウインドウのサイズおよびウインドウ内の参照点の位 置が決定される。ある実施形態において、対象ウインドウのサイズは7×7であ り、参照点の位置はウインドウの下方右端の隅である。あるいは、これらのパラ メーターは、対象動作プログラム内よりもむしろMAIN内において決定され得 る。 対象動作は、ステップ474において、選択された輝度イメージ、例えば右輝 度イメージに対して実行される。閾が設けられた(thresholded)信 頼結果は、対象結果アレイ内に格納される。ステップ476において、対象動作 プログラムはMAINへ戻る。 モードフィルタは、イメージ処理システムによって選択される最適視差の一貫 性を、母集団分析に基づく視差を選択することによって決定する。イメージ要素 に関連する極値指標アレイ内に格納された全ての最適視差が、モードフィルタウ インドウ内で調べられる。極値指標アレイ内の最適視差は、MAIN内で前もっ て決定されている。典型的には、ウインドウ内のまたはイメージ要素の近傍の最 適視差の値は、視差イメージの単一の演算のためにかなり均一でなければならな い。参照イメージ要素のモードフィルタウインドウ内において最大のカウントを 有する視差は、イメージ要素についての視差として選択され、MF極値指標アレ イ内に格納される。モードフィルタ動作はエラー検出の形態であるので、本発明 物のさまざまな実施形態を機能させるためにモードフィルタ動作が実行される必 要は全く無い。 モードフィルタプログラム、つまりステップ480への呼び出しは、最適視差 が決定されMAIN内の極値指標アレイ内に格納された後の、つまりステップ4 50の後のいずれの時点でもなされ得る。この時点に前後して、モードフィルタ ウインドウのサイズおよびウインドウ内の参照点の位置が決定される。ある実施 形態において、モードフィルタウインドウのサイズが7×7であり、参照点の位 置はウインドウの下方右端の隅である。あるいは、これらのパラメータは、モー ドフィルタプログラム内よりもむしろMAIN内で決定され得る。 ステップ482において、メモリスペースが、単一のライン列合計バッファ (ここでは視差カウントバッファ(X)と呼ぶ)およびMF極値指標アレイ(X ×Y)について割り当てられる。MF極値指標アレイが、各イメージ要素につい てモードフィルタによって選択された視差の値を保持する。あるいは、メモリ割 り当てステップが、モードフィルタプログラム内よりもむしろステップ410に おいてMAINプログラム内に組み込まれ得る。モードフィルタ動作が、ステッ プ484において実行され、MF極値指標アレイ内に最終結果を格納する。ステ ップ486はMAINへ戻る。 左右一貫性検査は、エラー検出の形態である。右イメージ内のイメージ要素P が、左イメージ内のP’がその最良のマッチ(イメージ要素Pについての視差の 中で最も低い相関合計の値)であると決定するように、視差を選択する場合、左 イメージ内のイメージ要素P’は、右イメージ内のイメージ要素Pがその最良の マッチとなるように、視差の値を選択する。左右一貫性検査は、そのタスクを実 行するために、相関合計バッファ内の既に計算されたデータを使用する。相関合 計バッファは参照として利用される右イメージに基づいて生成されたが、それは 、左イメージが参照として指定されているかのような、さまざまな視差について のデータを必然的に含む。しかし、各左イメージ要素について関連するデータは 、異なる様式で構成される。 左右一貫性検査への呼び出しが、ステップ490において行われる。左右一貫 性検査が相関合計および最適視差に依存するので、プログラムは、ステップ45 0の後のいずれの時点においても呼び出され得る。あるいは、プログラムは、相 関合計の演算(ステップ440)の後で即座に呼び出され得、中間バッファ(i ntermediate buffer)内の左イメージ要素についての最適視 差を一時的に格納し得、MAINが、最適視差(右から左)の演算を行い、それ らを極値指標アレイ内に格納するまでに、左右一貫性検査プログラムを終了し得 る。この時点で、左右一貫性検査の最終ステージ(左から右を右から左と比較す る)が実行され得る。 左右一貫性検査が、ステップ492において、LR結果アレイ(X×Y)のた めのメモリスペースを割り当てる。あるいは、メモリ割り当てステップが、左右 一貫性検査プログラム内よりもむしろステップ410において、MAINプログ ラム内に組み込まれ得る。左右一貫性検査動作はステップ494において実行さ れる。プログラムはステップ496においてMAINへ戻る。 本発明は、相関合計をコンピューティングするのに先立って、輝度イメージか ら変換ベクトルを生成するために、ローカル変換を使用する。そのような変換の 1つがセンサス変換である。図19は、センサス変換動作のフローチャートおよ びセンサスベクトルの生成を示す。単一のフローチャートが示されているが、も ちろんそれは左右両方の輝度イメージに対して適用可能である。一般に、センサ ス変換は、センサスウインドウのサイズおよびウインドウ内の参照点の位置を考 慮しつつ、所望のイメージ処理領域内の、実質的に全てのイメージ要素に適用さ れる。センサス変換は、参照イメージ要素に関して、センサスウインドウ内のイ メージ要素の相対イメージ輝度を数値(numerical term)で評価 し且つ表す、ノン−パラメトリック動作である。その結果、イメージ要素の数値 的評価はベクトルである。 本発明のソフトウェア/アルゴリズム局面の別の実施形態において、センサス および相関ステップは並列およびパイプライン式で実行される。従って、一方の イメージ内のセンサスベクトル(または相関ウインドウ)は、もう一方のイメー ジのサーチウインドウ内の、それぞれ視差シフトされた(disparity− shifted)センサスベクトル(または相関ウインドウ)の各々と、並列お よびパイプライン式で、相関される。この相関ステップと同時に、左右一貫性検 査が実行される。従って、最適視差およびこれらの視差の左右一貫性検査は、並 行して計算される。この並列およびパイプラインシステムの出力は、左右の最適 視差の数、ウインドウについての左右の合計ハミング距離の最小値、右左の最適 視差の数、および完全なサーチウインドウを有する各データストリームのための 、ウインドウについての右左の合計ハミング距離の最小値である。 B.センサス変換プログラム 図19に示されるように、ステップ500において、センサス動作が開始する 。ステップ510がセンサスウインドウのサイズおよび参照点の位置を決定する 。ある実施形態において、センサスウインドウは9×9であり、参照点の位置は セ ンサスウインドウの中心である。各センサスベクトルの長さもまた決定されねば ならない。ある実施形態において、センサスベクトルは32ビットの長さである 。つまり、参照点に加えて、センサスウインドウ内の32個のイメージ要素が、 32ビットのセンサスベクトルを生成するために使用される。他の実施形態にお いて、16、24および48を含む、異なるセンサスベクトル長が使用され得る 。もちろん、センサスベクトル長の選択は、センサスウインドウのサイズに密接 に関連している。センサスウインドウが9×9よりも大きな場合、センサスベク トルは32ビットよりも長くなり得る。逆に、センサスウインドウが9×9より も小さな場合、センサスベクトルの長さは32ビットよりも短くなり得る。 ステップ515および520は、ステップ560および570と共に、センサ ス変換がイメージデータに適用される順序(order)を示す。センサスウイ ンドウは、行内の全ての列を通って、左から右へと行の最後まで、移動する。最 後の点において、センサスウインドウは次の行の初めに即座に移動し、次の行内 の全ての列を通って移動し、最後の行および最後の列内のイメージデータについ てセンサス変換が実行されるまで、一般にこの様式で継続する。図19のフロー チャートに示すように、列ループは、外側の行ループに対して内側のループであ る。つまり、センサス変換がその行の全ての列内のイメージデータについて演算 された後でのみ行が変わる。 センサスウインドウについて参照点としても指定される、ある与えられた行お よび列の位置(x,y)について、ステップ525に示されるように、センサス ベクトルが全てゼロへと初期値化される。ステップ530が、(x,y)におい て中心参照点のイメージ輝度値をフェッチする。ステップ535が、現センサス ウインドウ内の選択されたイメージ要素のイメージ輝度データをフェッチする。 この実施形態において、第1の選択された点は、ボックス580に示すように( x+1,y−4)である。この現センサスウインドウ内の他のイメージ要素につ いての輝度値も後に、センサスウインドウ内の所望のイメージ要素の全てが調べ られてしまうまで、フェッチされる。ある実施形態において、参照イメージ要素 (x,y)についての32ビットのセンサスベクトルを生成するための、センサ ス変換演算のために選択されたセンサスウインドウ内の、これら近傍のイメー ジデータは、(x+1,y−4),(x+3,y−4),(x−4,y−3), (x−2,y−3),(x,y−3),(x+2,y−3),(x−3,y−2 ),(x−1,y−2),(x+1,y−2),(x+3,y−2),(x−4 ,y−1),(x−2,y−1),(x,y−1),(x+2,y−1),(x −3,y),(x−1,y),(x+2,y),(x+4,y),(x−3,y +1),(x−1,y+1),(x+1,y+1),(x+3,y+1),(x −2,y+2),(x,y+2),(x+2,y+2),(x+4,y+2), (x−3,y+3),(x−1,y+3),(x+1,y+3),(x+3,y +3),(x−2,y+4)および(x,y+4)である。このパターンは図7 に示されている。 別の実施形態において、参照イメージ要素(x,y)についての32ビットの センサスベクトルに使用される特定のイメージデータは、(x−1,y−4), (x+1,y−4),(x−2,y−3),(x,y−3),(x+2,y−3 ),(x−3,y−2),(x−1,y−2),(x+1,y−2),(x+3 ,y−2),(x−4,y−1),(x−2,y−1),(x,y−1),(x +2,y−1),(x+4,y−1),(x−3,1),(x−1,1),(x +2,y),(x+4,y),(x−3,y),(x−1,y),(x+1,y +1),(x+3,y+1),(x−4,y+2),(x−2,y+2),(x ,y+2),(x+2,y+2),(x−3,y+3),(x−1,y+3), (x+1,y+3),(x+3,y+3),(x,y+4)および(x+2,y +4)である。 ステップ540が、ちょうどフェッチされた近傍のイメージ要素、この例では (x+1,y−4)についての輝度データが、(x,y)に位置する中心参照イ メージ要素の輝度データよりも小さいかどうかを判定する。小さい場合、ステッ プ545が、センサスベクトル内の対応するビット位置を、”1”として設定す る。これが第1の近傍のイメージ要素であったことから、センサスベクトル内の 対応するビット位置は、ビット0、つまり最下位ビット(LSB)である。ステ ップ540においての決定が”NO”として評価される場合(近傍のイメージ要 素について輝度の値が、参照イメージ要素についての輝度の値と同値である、ま たはそれよりも大きい場合)、プログラムはステップ550へと分岐し、且つ対 応するヒット位置(ビット0)のセンサスベクトルは”0”のままである。 ステップ550が、センサスウインドウ内の全ての関連する近傍のイメージ要 素が評価されたかどうかを決定する。ステップ550は、センサスベクトル内の 対応するビット位置を設定する、ステップ545の後の決定分岐点でもある。ス テップ550が”YES”と評価する場合、プログラムは、並列に配置されたセ ンサスウインドウ内の参照イメージ要素についてのセンサスベクトル全体を演算 し、ここでステップ560によって指示されるように、次の列へと進むことがで きる。ステップ550が”NO”と評価する場合、ウインドウ内の参照イメージ 要素についてのセンサスベクトルはまだ完成されず、且つセンサスウインドウ内 の次の近傍のイメージ要素がフェッチされる。この例において、次のイメージ要 素が、(x+3,y−4)に位置する。この第2のイメージ要素についてのセン サスベクトル内の対応するビット位置は、ビット1である。次にフェッチされた 近傍のイメージ要素についてのセンサスベクトル内の対応するビット位置はビッ ト2などである。最後の近傍のイメージ要素についてのセンサスベクトル内の対 応するビット位置はビット31、つまり最上位ビット(MSB)、である。この ループ535−540−545−550は、参照イメージ要素についてのセンサ スベクトル全体が生成されるまで、繰り返し循環する。もし参照イメージ要素に ついてのセンサスベクトル全体が生成された場合、ステップ550での決定は” YES”へと評価する。 前に述べたように、ステップ560がステップ520と共に、同じ行内の次の 列へと分岐するようにプログラムに指示する。現列が行内の最後の列である場合 、ステップ560はステップ570へと進んで次の行へ演算を継続し、行の先頭 に位置するイメージ要素が処理される次のデータとなるように列数はリセットす る。参照イメージ要素が行内の次の列(またはその行の最後の列の場合には次の 行の第1の列)へと移動すると、センサスウインドウがそれと共に移動する。こ の次の参照点の位置は、図19において発明の理解を容易にするために、(x, y)で示される。従って、新しい参照点(x,y)の周辺に選択された近傍のイ メージ要素は、ボックス580内に列挙したとおりである。所望のイメージ処理 領域 内の全てのイメージ要素についてのセンサスベクトルが生成された場合、プログ ラムはステップ590において終了する。 C.相関合計および視差の最適化プログラム 本発明の1つの実施形態は、ボックスフィルタリングアレイデータの合計およ び操作を上述したように有用化する。個別のデータの行列またはアレイのために ウインドウ合計が所望であるときは、以下のステップが実行され得る:(1)現 在の参照点の位置から同一列内でウインドウの高さ分上に位置するイメージ要素 からのデータを、現在の列合計から減算する。(2)現在の参照イメージ要素中 のデータを、変更された列合計へ加算する。(3)現在の参照点からウインドウ 幅分横に位置する列合計を現在のウインドウ合計から減算する。そして、(4) 現在のウインドウのためのウインドウ合計を生成させるために、変更された列合 計を変更されたウインドウ合計に加算する。特定の領域中の現在のウインドウの 位置にもよるが、列合計または個別のデータ要素の減算は、いくつかの領域にお いて不必要であり得る。このスキーム自体が、特定の処理速度を与えられた効果 的な処理能力の増加に有利である。ウインドウ合計のアレイに加えて、このキャ ッシング演算は所望のイメージ処理領域の幅と等しい幅を有する単一のライン列 合計バッファを要求する。相関合計プログラムの1つの実施形態は、これらの概 念を用いる。 本発明のソフトウェア/アルゴニズム局面の他の実施形態では、センサスおよ び相関のステップは、並列パイプライン方式で実行される。よって、1つのイメ ージ中のセンサスベクトル(または、相関ウインドウ)は、他のイメージのサー チウインドウ中で、それぞれの視差がシフトしたセンサスベクトル(または、相 関ウインドウ)の各々と並列パイプライン方式で相関される。この相関ステップ と同時に、左右一貫性の検査も実行される。 次に本発明の1つの実施形態の相関演算および最適な視差の決定のスキームが 議論される。図20は、全ての領域1〜10に対する相関合計および視差の最適 化の機能の1つの実施形態のハイレベルのフローチャートを示す。プログラムの この時点において、センサスベクトルが左および右のイメージのために発生され る。このセンサスベクトルに基づいて、イメージ処理システムはどちらの左イメ ージのイメージ要素が右イメージの与えられたイメージ要素と対応するのかを決 定しようと試みる。 図20に示すように、プログラムはステップ600から開始する。ステップ6 01は、相関ウインドウの大きさとウインドウ中の参照点の位置とを決定する。 1つの実施形態では、相関ウインドウは7×7であり、参照点は、ウインドウの 一番右下の角に位置する。 9つのエッジ条件および1つの一般的な場合が存在することから、演算は異な って実行される。領域1から9はエッジ条件を表し、領域10は一般的な場合を 表す。図11(A)から11(J)について上記で議論したように、ウインドウ 全体の相関またはウインドウ合計は、完全なウインドウが所望のイメージ処理領 域に適合し得る領域について計算される。すなわち、イメージデータはウインド ウの全ての部分において見つけられる。よって、ウインドウ相関合計の全体は、 領域5、6、9および10について計算される。処理の大部分は、領域10で行 われる。10個の領域に関するウインドウの参照イメージ要素の位置は、どのよ うにおよび何の演算が達成されたかを指示する。ステップ602は、相関演算が 実行された領域1から6に適用する。これらの領域は、列合計バッファ、中間相 関合計、および相関ウインドウ合計を設定する。相関演算が完成したとき、ステ ップ603が、プログラムが領域7から10に進むことを要求する。 参照右イメージ中の各変換ベクトルについて、行の範囲内の列毎に演算が実行 され、行の終わりにおいてプログラムは所望のイメージ処理領域中の次の行の第 1の列へ進む。これは、ステップ604、605、610、612、611およ び613に反映される。ステップ604、612および613に規定される低い 頻度で生じる行のループは、外側のループであり、一方、ステップ605、61 0および611に規定される高い頻度で生じる列のループは、内側のループであ る。プログラムが、行内で列毎に進むのにしたがい、ウインドウは領域7、8、 9、および10の順番で領域を通過する。プログラムが次の行に到達し、行の最 後に進んだとき、領域7、8、9、および10は、図11(G)から11(J) に再び示されるように、ウインドウによって横切られる。 初めに、プログラムは、ステップ604および605に示すように、行Iの領 域7および列Jに進む。行の始めにあるのが当然であるが、ウインドウが領域7 にある場合、領域7の相関演算がステップ606に要求される通りに実行される 。ウインドウが領域8にある場合、領域8の相関演算がステップ607に要求さ れる通りに実行される。ウインドウが領域9にある場合、領域9の相関演算がス テップ608に要求される通りに実行される。ウインドウが領域10にある場合 、領域10の相関演算がステップ609に要求される通りに実行される。 次へ進む前に、ステップ610は、行Iおよび列Jの現在の参照イメージ要素 が行Iの最終列にあるかどうか決定する。この決定が「いいえ」と評価した場合 プログラムは次の列Jに進み(ステップ611および605)、ウインドウの位 置によってステップ606、607、608または609のうちの1つを実行す る。ステップ610への決定が「はい」と評価した場合、ステップ612はこの 行が所望のイメージ処理領域の最終行であるかどうか決定する。異なる場合は、 ステップ613および604は、ウインドウが次の行Iおよびその列の第1の列 Jに進むことを要求する(列および行の番号は、最終列および行に到達した後リ セットされる)。ステップ612の決定が「はい」と評価する場合、相関プログ ラムはステップ614で終了する。 1.領域1および2 図21は、領域1および2に対する相関合計および視差の最適化演算の1つの 実施形態のフローチャートを示す。プログラムはステップ615で開始する。 相関ウインドウ、より詳細には、相関ウインドウ内の参照イメージ要素が領域 1または2に位置する場合、ステップ616および622が、以下の相関合計が 、行内で列毎に進むことによって各行および列に対して実行されることを要求す る。相関ウインドウの参照点が行の最後に到達したとき、参照点は次の行の始め に移動する。 ステップ616は、相関ウインドウ範囲内の右イメージ中のセンサスベクトル および、それに対応する相関ウインドウ範囲内の左イメージ中のセンサスベクト ルを選択するように要求する。これらの左および右のセンサスベクトルは同一の 行および列に位置する。すなわち、これらのウインドウは、視差0で互いに関し てシフトされない。 ステップ617および621は、相関合計が参照右イメージ中の各ウインドウ の各々の視差について演算されることを許容するループのそれぞれ始めと終わり である。ここでは、zが0からD/2−1へと変化し、よって、16の視差につ いて、D=16であり、zが0から7まで変化する。zループが用いられる補助 的な理由は、データパッキングの目的のためである。 1つの実施形態では32ビット長の中間temp(intermediate temp)と呼ばれる変数が、2つの異なる視差の相関合計値をホールドする 。変数のMSB部分中の16ビットは、視差d1のための相関合計値をホールド し、変数のLSB部分中の16ビットは、視差d2のための相関合計値をホール ドする。よって、16の視差について、8の中間temp値が用いられる。本発 明の実施形態において、単一の中間temp変数が用いられているため、視差に 基づいた相関合計の各一対は、1つのzループで実質的に同時に演算される。す なわち、システムをインプリメントする16の視差について、視差0および視差 1の相関合計は一緒に処理され、視差2および視差3の相関合計は一緒に処理さ れ、視差4および視差5の相関合計は一緒に処理されるなど、視差14および視 差15の相関合計が処理されるまで同様の処理が続く。偶数の視差値に関する相 関合計は、中間temp変数のMSBの半分(16ビット)中に格納され、一方 、奇数の視差値に関する相関合計は、中間temp変数のLSBの半分(16ビ ット)中に格納される。中間temp変数の各半分の長さは16ビットであるた め、所定の視差について最大相関合計値をホールドすることは、十二分である。 例えば、任意の2つの32ビットセンサスベクトル間の、最大可能なハミング距 離の値は32である(左のセンサスベクトルxは全て0であり、右のセンサスベ クトルxは全て1であるので、lとlとの間のハミング距離は32である)。1 6ビットは、32のハミング距離の値を適応するのに十二分に長い。よって、中 間tempのためのデータパッキングスキームが設計され、LSBの半分がMS Bの半分への移動、またはMSBの半分が中間temp変数の範囲の外への移動 に対するキャリービット(またはビット17)の危険性が存在しない。中間te m pのデータパッキングの概念は図36に関連して下記に更なる詳細に説明される 。 中間temp変数の長さは、より小さく(または、より大きく)形成され得る が、最終的には、この設計は、列合計アレイの大きさに適応するべきである。な ぜなら、中間tempはデータ毎に32ビット長である列合計アレイに追加され るからである。中間tempおよび列合計バッファのそれぞれのデータの長さは 、それぞれの追加に適応するべきである。その結果、追加の結果が追加演算を正 確に反映する。単純化するために、中間tempおよび列合計は、両方32ビッ トである。 データパックされた中間tempは、本発明のいくつかの実施形態に組み込ま れている。他の実施形態は、データパッキングの概念を用いず、代わりに、2つ のイメージセンサスベクトルの間の個別のハミング距離の計算などの中間値を、 後に相関合計バッファに格納され、列合計値に加えるためにホールドする単一の 変数を用い得る。相関計算は、一時に2つの視差に実行され得ず、むしろ、相関 合計は、全てのD視差に対する合計が計算されるまで一時に1つの視差に対して 決定され得る。 ステップ618は、対応する対のセンサスベクトルの間の個別のハミング距離 を格納するデータパッキングの概念を用いる。16の視差について、zが0から 7までループする。zループ内の所定のz値について、本発明の1つの実施形態 では、異なる視差全体(視差2*zおよび視差2*z+1)に関係する一対の相 関合計を処理する。z=0について、左イメージ内の(x,y)に位置するシフ トしない(d=0)相関ウインドウ中のセンサスベクトルと参照右イメージ内の (x,y)に位置する参照相関ウインドウ中の参照センサスベクトルとの間のハ ミング距離が計算される。これら2つのセンサスベクトルの間の視差0である場 合の結果として得られたハミング距離は、中間temp変数のMSBの半分に格 納される。 同様に、左イメージ内の(x+1,y)に位置する1つの列分シフトした(d =1)相関ウインドウ中のセンサスベクトルと、参照右イメージ内の(x,y) に位置する参照相関ウインドウ中の参照センサスベクトルとの間のハミング距離 が計算される。右イメージは、参照イメージとして指定され、相関値は多様な視 差または参照右相関ウインドウから左相関ウインドウへのシフトに対して決定さ れるので、参照右イメージ中の相関ウインドウはシフトされないことに注意され たい。視差1の場合の結果として得られるハミング距離は、中問temp変数の LSBの半分に格納される。この時点で、中間temp変数は、視差0および1 のみに対する、(x,y)における右イメージ相関ウインドウ中の参照点の相関 結果をホールドする。続きの演算では、中間tempは他の視差に対する相関結 果をホールドする:z=1について、視差2および3の相関結果は中間temp にあり、z=2について、視差4および5の相関結果は中間tempにあり、z =3について、視差6および7の相関結果は中間tempにあり、z=4につい て、視差8および9の相関結果は中間tempにあり、z=5について、視差1 0および11の相関結果は中間tempにあり、z=6について、視差12およ び13の相関結果は中間tempにあり、そしてz=7について、視差14およ び15の相関結果は中間tempにある。 ステップ619は、参照右イメージ中の参照相関ウインドウが領域1に位置す る場合、中間tempの内容で列合計バッファ[x]を初期化する。列合計バッ ファ[x]は、視差0および1に対する参照右イメージ点の相関結果をホールド する。ステップ619は、参照右イメージ中の参照相関ウインドウが領域2に位 置する場合、列合計バッファ[x]を前の列合計バッファに中間tempを加え た内容にアップデートする。列合計バッファ[x]は、視差0および1に対する 参照右イメージ点の相関結果をホールドする。 ステップ620は、相関合計バッファ[x][y]内の参照点(x,y)に位 置する参照右相関ウインドウの一対のセンサスベクトルの個別のハミング距離の 結果の格納を要求する。相関合計バッファ[x][y]は、最終的には参照右イ メージの所望のイメージ処理領域中の各イメージ要素に関する相関結果をホール ドする。領域1について、列合計は本質的に当面は個別の相関結果である。 ステップ621は、プログラムが同一相関ウインドウの同一参照点について異 なる一対の視差である次のzへ進むことを要求する。D視差に対する全ての相関 結果を計算するにあたって、プログラムはステップ622へ進む。ステップ62 2は、同一の行の次の列、または現在の参照点が行の最終列に位置する場合は次 の行の最初を選択するシステムを指示する。そして、新しい参照点に対する同一 相関計算が、各視差について実行される。最終的には、完全な列合計(相関ウイ ンドウの高さ)はまだ入手可能ではないが、列合計アレイ[x]は各視差につい て構築される。そして、各参照イメージ要素に対する個別の相関結果もまた、相 関合計バッファ[x][y]に格納される。相関合計および視差の最適化演算の この部分は、ステップ623で終了する。 他の実施形態では、データパッキングの概念および中間temp変数は用いら れない。0から(D/2−1)までのzループ内でハミング距離の対と一緒に扱 う代わりに、2つの点の間の単一のハミング距離が計算され得、0からD−1ま で変化するzループの相関合計バッファ[x][y]に格納され得る。 2.領域3および4 図22は、領域3および4に対する相関合計および視差の最適化演算の1つの 実施形態のフローチャートを示す。プログラムは、領域1および2に若干の変化 を加えた基本的には同一の方法で進む。ここでは、列の全部が利用可能であるの で、相関ウインドウ全体の相関合計が初期化およびアップデートされ得る。プロ グラムはステップ624で開始する。 相関ウインドウ、より詳細には、相関ウインドウ内の参照イメージ要素が領域 3または4に位置する場合、ステップ625および632は、以下の相関合計が 、行内で列毎に進むことによって各行および列に対して実行されることを要求す る。相関ウインドウの参照点が行の最後に到達したとき、参照点は次の行の始め に移動する。領域3は、単一のイメージ要素位置であるので、次の列は領域4で ある。ステップ625は、相関ウインドウ範囲内の右イメージ中のセンサスベク トルおよび、それに対応する相関ウインドウ範囲内の左イメージ中のセンサスベ クトルを選択するよう要求する。これら左および右のセンサスベクトルは、同一 の行および列に位置する。すなわち、これらのウインドウは、視差0で互いに関 してシフトされない。 ステップ626および631は、相関合計が参照右イメージ中の各ウインドウ の各視差に対して演算されることを許容するループのそれぞれ始めと終わりであ る。ここでは、zが0からD/2−1まで変化し、よって、16の視差について 、D=16でありzが0から7まで変化する。zループが用いられる補助的な理 由は、データパッキングの目的のためである。上記に説明された中間tempと 呼ばれる変数がデータパッキングの目的に用いられ得る。 ステップ627は、対応する対のセンサスベクトルの間の個別のハミング距離 を格納するデータパッキングの概念を用いる。16の視差について、zが0から 7までループする。zループ内の所定のz値について、本発明の1つの実施形態 では、異なる視差全体(視差2*zおよび視差2*z+1)に関係する一対の相 関合計を処理する。z=0について、左イメージ内の(x,y)に位置するシフ トしない(d=0)相関ウインドウ中のセンサスベクトルと参照右イメージ内の (x,y)に位置する参照相関ウインドウ中の参照センサスベクトルとの間のハ ミング距離が計算される。これら2つのセンサスベクトルの間の視差0である場 合の結果として得られるハミング距離は、中間temp変数のMSBの半分に格 納される。同様に、左イメージ内の(x+1,y)に位置する1つの列分シフト した(d=1)相関ウインドウ中のセンサスベクトルと、参照の右イメージ内の (x,y)に位置する参照相関ウインドウ中の参照センサスベクトルとの間のハ ミング距離が計算される。視差1の場合の結果として得られるハミング距離は、 中間temp変数のLSBの半分に格納される。この時点で、中間temp変数 は、視差0および1のみに対する、(x,y)における右イメージ相関ウインド ウ中の参照点の相関結果をホールドする。次の演算では、中間tempは他の視 差に対する相関結果をホールドする。 ステップ628は、列合計バッファ[x]を前の列合計バッファに中間tem pを加えた内容にアップデートし続ける。列合計バッファ[x]は、視差0およ び1に対する参照右イメージ点の相関結果をホールドする。 ステップ629は、相関合計バッファ[x][y]内の(x,y)に位置する 参照右参照点の対のセンサスベクトルの個別のハミング距離の結果の格納を要求 する。領域3および4において、列合計全体が入手可能であるが、相関ウインド ウ全体の相関合計は入手可能ではない。 ステップ630は、参照点が領域3にある場合、列合計を加算することによっ て相関合計[x][y]を初期化する。参照点が領域4にある場合、相関合計は 現在の相関合計を列合計値に加算することによって構築される。 ステップ631は、プログラムが同一相関ウインドウの同一参照点について異 なる一対の視差である次のzへ進むことを要求する。D視差に対する全ての相関 結果を計算するにあたって、プログラムはステップ632へ進む。ステップ63 2は、同一の行の次の列、または現在の参照点が行の最終列に位置する場合は次 の行の最初を選択するシステムを指示する。そして、新しい参照点に対する同一 の相関計算が、各視差について実行される。最終的には、相関ウインドウ全体の 相関合計が領域5、6、9、および10で計算される。領域3および4は、適切 な列合計および相関合計をウインドウ計算の準備として構築する。相関合計およ び視差の最適化演算のこの部分は、ステップ633で終了する。 3.領域5 図23は、領域5に対する相関合計および視差の最適化演算の1つの実施形態 のフローチャートを示す。プログラムは、領域1から4に若干の変化を加えた、 基本的には同一の方法で進む。ここでは、相関ウインドウ全体に対する相関合計 が演算され得、よって、参照点の最適な視差が決定され得る。プログラムはステ ップ634で開始する。 相関ウインドウ、より詳細には、相関ウインドウ内の参照イメージ要素が領域 5に位置する場合、ステップ635および645は、以下の相関合計が、行内で 列毎に進むことによって各行および列について実行されることを要求する。相関 ウインドウの参照点が行の最後に到達したとき、参照点は次の行の始めに移動す る。領域5は、単一のイメージ要素位置であるので、次の列は領域6である。ス テップ635は、相関ウインドウ範囲内の右イメージ中のセンサスベクトルおよ び、それに対応する相関ウインドウ範囲内の左イメージ中のセンサスベクトルを 選択するよう要求する。これら左および右のセンサスベクトルは、同一の行およ び列に位置する。すなわち、これらのウインドウは、視差0で互いに関してシフ トされない。 ステップ636および644は、相関合計が参照右イメージ中の各ウインドウ の各視差に対して演算されるのを許容するループのそれぞれ始めと終わりである 。ここでは、zが0からD/2−1まで変化し、よって、16の視差について、 D=16でありzが0から7まで変化する。zループが用いられる補助的な理由 は、データパッキングの目的のためである。上記に説明された中間tempと呼 ばれる変数がデータパッキングの目的に用いられる。 ステップ637は、対応する対のセンサスベクトルの間の個別のハミング距離 を格納するデータパッキングの概念を用いる。16の視差について、zが0から 7までループする。zループ内の所定のz値について、本発明の1つの実施形態 では、異なる視差全体(視差2*zおよび視差2*z+1)に関係する一対の相 関合計を、領域1から4に関して上記に議論したのと同様に処理する。 ステップ638は、列合計バッファ[x]を前の列合計バッファに中間tem pを加えた内容でアップデートし続ける。列合計バッファ[x]は、現在、各視 差に対する参照右イメージ点の相関結果をホールドする。 ステップ639は、相関合計バッファ[x][y]内の(x,y)に位置する 参照右参照点の対のセンサスベクトルの個別のハミング距離の結果の格納を要求 する。領域5において、列合計の全体およびウインドウ全体の相関合計が、入手 可能である。 ステップ640は、相関ウインドウ合計[x][y]を、列合計値と現在の相 関合計を加算することでアップデートする。ステップ641は、相関ウインドウ 内の個別のハミング距離の全ての合計である相関合計結果を、同一列内の相関ウ インドウの高さの行だけ上方に位置する相関合計バッファに格納する。よって、 相関合計は相関合計バッファ[x][y−相関ウインドウの高さ]に格納される 。1つの実施形態では、これは相関合計バッファの最上部の行である。 ステップ642は、相関合計バッファにおける現在の相関合計データのうちの いずれが最も小さいかを決定する。最初に、相関合計が、z=0のときの視差0 および1について計算される。ステップ642は、2つの相関合計データのうち の小さい方を決定し、この視差番号(この時点では、0または1)を極値指標ア レイに格納する。z=1のときの次の繰り返しでは、相関合計は、視差2および 3について計算される。これらの2つの視差についての相関合計のいずれかが、 極値指標に格納されている現在の小さい方の視差番号に関連する相関合計よりも 小さい場合には、ステップ643に示すように、その小さい方の相関合計データ についての視差番号が、極値指標アレイに格納される。最も小さい相関合計を比 較し、関連する視差番号を極値指標アレイに格納するこのプロセスは、すべての z値が評価されるまで続けられる。本実施態様は、zループにおける最適視差選 択を導入し、最適視差の決定が、一対の視差についての相関合計の計算と実質的 に同時に行われる。あるいは、中間アレイは、最終の比較が、最も小さい相関合 計で最適な視差値を生み出すまで、視差値およびそれに関連した相関合計を保持 し得る。他の実施態様において、最適視差決定は、視差をベースとしたzループ 内でなされる必要はない。むしろ、視差決定は、ループの外で行われ得、最適視 差は、視差のそれぞれについての相関合計の完全な組が計算された後にのみ選択 される。中間視差アレイは、一時的な結果を保持するために用いられ得る。これ らの変形は他のすべての適用可能な領域(例えば、領域6、9および10)に適 用される。 ステップ644は、プログラムが次のzに進むことを要求する。次のzは、同 じ相関ウインドウの同じ参照ポイントについての異なる一対の視差である。D視 差についてのすべての相関結果を計算すると、プログラムは、ステップ645に 進み、現在の参照ポイントが行の最終列に位置する場合には、システムは、同じ 行の次の列または次の行の始まりにおける次の参照ポイントを選択するように方 向づけられる。次に、新しい参照ポイントについて、同じ相関計算が、各視差に 対して行われる。最後に、全相関ウインドウについての相関合計が、領域5、6 、9および10において計算される。この相関合計および視差最適化演算の部分 は、ステップ646で終了する。 4.領域6 図24は、領域6に対する相関合計および視差最適化オペレーションの1つの 実施態様のフローチャートを示す。領域6に対する演算は、領域5に対する演算 と同様である。但し、相関ウインドウ幅の列だけ左に位置する列合計は、列相関 合計から減算される。プログラムは、ステップ647で開始する。 相関ウインドウ、より詳細には、相関ウインドウ内の参照イメージ要素が、領 域6に位置する場合、ステップ648および659は、以下の相関合計が、行内 で列毎に進むことによって各行および列に対して実行されることを要求し、相関 ウインドウの参照ポイントが行の終わりに到達すると、参照ポイントは、次の行 の始めに移動する。ステップ648は、相関ウインドウ内の右イメージにおける センサスベクトルおよび相関ウインドウ内の左イメージにおける対応するセンサ スベクトルが選択されることを要求する。これらの左および右センサスベクトル は、同じ行および列に位置する。即ち、これらのウインドウは、視差0では互い にシフトしない。 ステップ649および658は、それぞれ、相関合計が参照右イメージにおけ る各ウインドウに対する視差のそれぞれについて演算されることを可能にするル ープの始めおよび終わりである。ここで、zは、0からD/2−1まで変化する ので、16の視差(D=16)の場合、zは、0から7まで変化する。zループ が用いられる第2の理由は、データパッキングのためである。上記のように、中 間tempと呼ばれる変数が、データパッキングの目的で用いられる。 ステップ650は、対応する対のセンサスベクトル間の個々のハミング距離を 格納するデータパッキングの概念を用いる。16の視差について、zは0から7 までループする。zループにおける所定のz値について、本発明の1つの実施態 様は、領域1から4に関して上述したように、個別の視差(視差2*zおよび視 差2*z+1)と共に関連する一対の相関合計を処理する。 ステップ651は、前の列合計バッファおよび中間tempの内容で、列合計 バッファ[x]を更新し続ける。中間tempは、このzループにおける適用可 能な2つの視差についての参照イメージポイントに対する現在のハミング距離計 算を保持する。この時点で、列合計バッファ[x]は、各視差についての参照右 イメージポイントに対する列合計結果を保持する。 ステップ652は、相関合計バッファ[x][y]内の位置(x、y)におけ る参照右参照ポイントについてのこれらの対のセンサスベクトルに対するこれら の個々のハミング距離結果の格納を要求する。この時点で、領域6について、列 合計全体およびウインドウ相関合計全体が得られる。 ステップ653は、相関ウインドウ幅の列だけ左に位置する列合計値を、現在 の相関合計値から減算する。ウインドウ合計を完全にするのに現在必要な唯一の 値は、現在の列合計である。 ステップ654は、列合計値を現在の相関合計に加えることによって、相関ウ インドウ合計[x][y]を更新する。この結果は、後の演算において有用であ る。ステップ655は、相関合計結果を格納する。この相関合計結果は、同じ列 における相関ウインドウ高さの行だけ上の位置で相関合計バッファにおいて図1 2を参照しながら説明したように得られる相関ウインドウの個々のハミング距離 のすべての合計である。従って、相関合計は、相関合計バッファ[x][y−相 関ウインドウ高さ]に格納される。 ステップ656は、相関合計バッファにおける現在の相関合計データのうちの いずれが最も小さいかを決定し、この最適視差結果は、極値指標に格納される。 プロセスは、領域5のプロセスと同様である。 ステップ658は、プログラムが次のzに進むことを要求する。次のzは、同 じ相関ウインドウの同じ参照ポイントについての異なる一対の視差である。Dの 視差についてすべての相関結果を計算すると、プログラムは、ステップ659に 進み、現在の参照ポイントが行の最終列に位置する場合には、システムは、同じ 行の次の列または次の行の始まりにおける次の参照ポイントを選択するように方 向づけられる。次に、新しい参照ポイントについて、同じ相関計算が、各視差に 対して行われる。最後に、全相関ウインドウについての相関合計が、領域5、6 、9および10において計算される。この相関合計および視差最適化演算の部分 は、ステップ660で終了する。 5.領域7および8 図25は、領域7および8に対する相関合計および視差最適化オペレーション の1つの実施態様のフローチャートを示す。これらの2つの領域に対する演算は 、わずかな変更を除いて、領域3および4に対する演算と同様である。ここで、 同じ列において1行だけ上に位置するウインドウの最も右上側のイメージは、現 在の計算から減算されなければならない。プログラムは、ステップ661で開始 す る。 相関ウインドウ、より詳細には、相関ウインドウ内の参照イメージ要素が、領 域7または8に位置する場合、ステップ662および670は、以下の相関合計 が、行内で列毎に進むことによって各行および列に対して実行されることを要求 し、相関ウインドウの参照ポイントが行の終わりに到達すると、参照ポイントは 、次の行の始めに移動する。ステップ662は、相関ウインドウ内の右イメージ におけるセンサスベクトルおよび相関ウインドウ内の左イメージにおける対応す るセンサスベクトルが選択されることを要求する。これらの左および右センサス ベクトルは、同じ行および列に位置する。即ち、これらのウインドウは、視差0 では互いにシフトしない。 ステップ663および669は、それぞれ、相関合計が参照右イメージにおけ る各ウインドウに対する視差のそれぞれについて演算されることを可能にするル ープの始めおよび終わりである。ここで、zは、0からD/2−1まで変化する ので、16の視差(D=16)について、zは、0から7まで変化する。zルー プが用いられる第2の理由は、データパッキングのためである。上記のように、 中間tempと呼ばれる変数が、データパッキングの目的で用いられる。 ステップ664は、列合計アレイ[x]における値から最も右上の相関合計要 素(相関合計バッファ[x][y−相関ウインドウ高さ])を減算する。この時 点で、列合計アレイは、列合計を完了するために、現在の参照ポイントからの寄 与を必要とする。 ステップ665は、対応する対のセンサスベクトル間の個々のハミング距離を 格納するデータパッキングの概念を用いる。16の視差について、zは0から7 までループする。zループにおける所定のz値について、本発明の1つの実施態 様は、領域1から4に関して上述したように、個別の視差(視差2*zおよび視 差2*z+1)と共に関連する一対の相関合計を処理する。 ステップ666は、前の列合計バッファおよび中間tempの内容で、列合計 バッファ[x]を更新し続ける。中間tempは、このzループにおける適用可 能な2つの視差についての参照イメージポイントに対する現在のハミング距離計 算を保持する。この時点で、列合計バッファ[x]は、各視差についての参照右 イメージポイントに対する列合計結果を保持する。 ステップ667は、相関合計バッファ[x][y]内の位置(x、y)におけ る参照右参照ポイントについてのこれらの対のセンサスベクトルに対するこれら の個々のハミング距離結果の格納を要求する。ステップ668は、領域7につい ての相関合計を開始し、列合計値を領域8についての列相関合計に加えることに よって、相関ウインドウ合計[x][y]を更新する。この結果は、後の演算に おいて有用である。 ステップ669は、プログラムが次のzに進むことを要求する。次のzは、同 じ相関ウインドウの同じ参照ポイントについての異なる一対の視差である。Dの 視差についてすべての相関結果を計算すると、プログラムは、ステップ670に 進み、現在の参照ポイントが行の最終列に位置する場合には、システムは、同じ 行の次の列または次の行の始まりにおける次の参照ポイントを選択するように方 向づけられる。次に、新しい参照ポイントについて、同じ相関計算が、各視差に 対して行われる。最後に、全相関ウインドウについての相関合計が、領域5、6 、9および10において計算される。この相関合計および視差最適化演算の部分 は、ステップ671で終了する。 6.領域9 図26は、領域9に対する相関合計および視差最適化オペレーションの1つの 実施態様のフローチャートを示す。この領域に対する演算は、わずかな変更を除 いて、領域5に対する演算と同様である。ここでは、同じ列において1行だけ上 に位置するウインドウの最も右上側のイメージ要素は、現在の計算から減算され なければならない。プログラムは、ステップ672で開始する。 相関ウインドウ、より詳細には、相関ウインドウ内の参照イメージ要素が、領 域9に位置する場合、ステップ673および684は、以下の相関合計が、行内 で列毎に進むことによって各行および列に対して実行されることを要求し、相関 ウインドウの参照ポイントが行の終わりに到達すると、参照ポイントは、次の行 の始めに移動する。ステップ673は、相関ウインドウ内の右イメージにおける センサスベクトルおよび相関ウインドウ内の左イメージにおける対応するセンサ スベクトルが選択されることを要求する。これらの左および右センサスベクトル は、同じ行および列に位置する。即ち、これらのウインドウは、視差0では互い にシフトしない。 ステップ674および683は、それぞれ、相関合計が参照右イメージにおけ る各ウインドウに対する視差のそれぞれについて演算されることを可能にするル ープの始めおよび終わりである。ここで、zは、0からD/2−1まで変化する ので、16視差(D=16)について、zは、0から7まで変化する。zループ が用いられる第2の理由は、データパッキングのためである。上記のように、中 間tempと呼ばれる変数が、データパッキングの目的で用いられる。 ステップ675は、列合計アレイ[x]における値から最も右上の相関合計要 素(相関合計バッファ[x][y−相関ウインドウ高さ])を減算する。この時 点で、列合計アレイは、列合計を完了するために、現在の参照ポイントからの寄 与を必要とする。 ステップ676は、対応する対のセンサスベクトル間の個々のハミング距離を 格納するデータパッキングの概念を用いる。16の視差について、zは0から7 までループする。zループにおける所定のz値について、本発明の1つの実施態 様は、領域1から4に関して上述したように、個別の視差(視差2*zおよび視 差2*z+1)と共に関連する一対の相関合計を処理する。 ステップ677は、相関合計バッファ[x][y]内の位置(x、y)におけ る参照右参照ポイントについてのこれらの対のセンサスベクトルに対するこれら の個々のハミング距離結果の格納を要求する。このように、中間tempは、相 関合計バッファ[x][y]に格納される。 ステップ678は、前の列合計バッファおよび中間tempの内容で、列合計 バッファ[x]を更新し続ける。中間tempは、このzループにおける適用可 能な2つの視差についての参照イメージポイントに対する現在のハミング距離計 算を保持する。この時点で、列合計バッファ[x]は、各視差についての参照右 イメージポイントに対する列合計結果を保持する。 ステップ679は、列合計値を現在の相関合計に加えることによって、相関ウ インドウ合計[x][y]を更新する。この結果は、後の演算において有用であ る。ステップ680は、相関合計結果を格納する。この相関合計結果は、同じ列 における相関ウインドウ高さの行だけ上の位置で相関合計バッファにおいて図1 2を参照しながら説明したように得られる相関ウインドウの個々のハミング距離 のすべての合計である。従って、相関合計は、相関合計バッファ[x][y−相 関ウインドウ高さ]に格納される。 ステップ681は、相関合計バッファにおける現在の相関合計データのうちの いずれが最も小さいかを決定し、この最適視差結果は、ステップ682において 要求されるように、極値指標に格納される。プロセスは、領域5のプロセスと同 様である。 ステップ683は、プログラムが次のzに進むことを要求する。次のzは、同 じ相関ウインドウの同じ参照ポイントについての異なる一対の視差である。Dの 視差についてすべての相関結果を計算すると、プログラムは、ステップ684に 進み、現在の参照ポイントが行の最終列に位置する場合には、システムは、同じ 行の次の列または次の行の始まりにおける次の参照ポイントを選択するように方 向づけられる。次に、新しい参照ポイントについて、同じ相関計算が、各視差に 対して行われる。最後に、全相関ウインドウについての相関合計が、領域5、6 、9および10において計算される。この相関合計および視差最適化演算の部分 は、ステップ685で終了する。 7.領域10 図27は、領域10に対する相関合計および視差最適化オペレーションの1つ の実施態様のフローチャートを示す。領域に対する演算は、プログラムの一般的 な形式を示す。この領域に対する演算は、わずかな変更を除いて、領域6および 9に対する計算と同様である。ここでは、演算は、同じ列における1ウインドウ 上の最も右側の角を列合計から減算し、現在の参照イメージ要素を列合計に加え 、ウインドウ幅の列だけ左側に位置する列合計をウインドウ合計から減算し、現 在の変更された列合計を変更されたウインドウ合計に加えることを含む。プログ ラムはステップ686で開始する。 相関ウインドウ、より詳細には、相関ウインドウ内の参照イメージ要素が、領 域10に位置する場合、ステップ687および699は、以下の相関合計が、行 内で列毎に進むことによって各行および列に対して実行されることを要求し、相 関ウインドウの参照ポイントが行の終わりに到達すると、参照ポイントは、次の 行の始めに移動する。ステップ687は、相関ウインドウ内の右イメージにおけ るセンサスベクトルおよび相関ウインドウ内の左イメージにおける対応するセン サスベクトルが選択されることを要求する。これらの左および右センサスベクト ルは、同じ行および列に位置する。即ち、これらのウインドウは、視差0では互 いにシフトしない。 ステップ688および698は、それぞれ、相関合計が参照右イメージにおけ る各ウインドウに対する視差のそれぞれについて演算されることを可能にするル ープの始めおよび終わりである。ここで、zは、0からD/2−1まで変化する ので、16の視差(D=16)について、zは、0から7まで変化する。zルー プが用いられる第2の理由は、データパッキングのためである。上記のように、 中間tempと呼ばれる変数が、データパッキングの目的で用いられる。 ステップ689は、列合計アレイ[x]における値から最も右上の相関合計要 素(相関合計バッファ[x][y−相関ウインドウ高さ])を減算する。この時 点で、列合計アレイは、列合計を完了するために、現在の参照ポイントからの寄 与を必要とする。 ステップ690は、対応する対のセンサスベクトル間の個々のハミング距離を 格納するデータパッキングの概念を用いる。16の視差について、zは0から7 までループする。zループにおける所定のz値について、本発明の1つの実施態 様は、領域1から4に関して上述したように、個別の視差(視差2*zおよび視 差2*z+1)と共に関連する一対の相関合計を処理する。 ステップ691は、相関合計バッファ[x][y]内の位置(x、y)におけ る参照右参照ポイントについてのこれらの対のセンサスベクトルに対するこれら の個々のハミング距離結果の格納を要求する。このように、中間tempは、相 関合計バッファ[x][y]に格納される。 ステップ692は、前の列合計バッファおよび中間tempの内容で、列合計 バッファ[x]を更新し続ける。中間tempは、このzループにおける適用可 能な2つの視差についての参照イメージポイントに対する現在のハミング距離計 算を保持する。この時点で、列合計バッファ[x]は、各視差についての参照右 イメージポイントに対する列合計結果を保持する。 ステップ693は、相関ウインドウ幅の列だけ左に位置する列合計値を、現在 の相関合計値から減算する。ウインドウ合計を完全にするのに現在必要な唯一の 値は、現在の列合計である。 ステップ694は、列合計値を現在の相関合計に加えることによって、相関ウ インドウ合計[x][y]を更新する。この結果は、後の演算において有用であ る。ステップ695は、相関合計結果を格納する。この相関合計結果は、同じ列 における相関ウインドウ高さの行だけ上の位置で相関合計バッファにおいて図1 2を参照しながら説明したように得られる相関ウインドウの個々のハミング距離 のすべての合計である。従って、相関合計は、相関合計バッファ[x][y−相 関ウインドウ高さ]に格納される。 ステップ696は、相関合計バッファにおける現在の相関合計データのうちの いずれが最も小さいかを決定し、この最適視差結果は、ステップ697において 要求されるように、極値指標に格納される。プロセスは、領域5のプロセスと同 様である。 ステップ698は、プログラムが次のzに進むことを要求する。次のzは、同 じ相関ウインドウの同じ参照ポイントについての異なる一対の視差である。Dの 視差についてすべての相関結果を計算すると、プログラムは、ステップ699に 進み、現在の参照ポイントが行の最終列に位置する場合には、システムは、同じ 行の次の列または次の行の始まりにおける次の参照ポイントを選択するように方 向づけられる。次に、新しい参照ポイントについて、同じ相関計算が、各視差に 対して行われる。最後に、全相関ウインドウについての相関合計が、領域5、6 、9および10において計算される。この相関合計および視差最適化演算の部分 は、ステップ700で終了する。 一対のイメージに対するステレオ演算には、各イメージ内の各ピクセルにおい てセンサス変換を行い、その後、各ピクセルにおいてサーチウインドウ全体にわ たるサーチが行われれなければならない。センサス変換には、中央ピクセルと、 中央ピクセルを近隣で取り囲むN個の他のピクセルとの比較が含まれる。従って 、変換には、中央ピクセルに対して1つのロードがとられ、続いて、Nロード、 N比較、N−1シフト、およびN論理オペレーションを行って、最終的なN長の ビットベクトルが形成される。従って、幅xおよび高さYのイメージに対するN ビットセンサス変換については、センサス変換は、約X*Y*(1+N)ロード をとり、X*Y*(2+4N)オペレーション(ポインタ算術、およびループオ ーバヘッドを無視する)の合計に対しては、X*Y格納およびX*Y*3Nオペ レーションをとる。 最良の視差に対するサーチは、各ピクセルについてD個の可能な視差に制限さ れる。各ピクセルに対する演算は、1つのイメージに対しては変換されたセンサ スピクセルをロードし、他のイメージに対してはD個の変換されたピクセルをロ ードすることを含む。ハミング距離を演算するためには、後半のピクセルのそれ ぞれは、前半のピクセルとの間で、排他的論理和(XOR)がなされなければな らない。得られた結果におけるビット数は、ルックアップテーブルを用いてカウ ントされ得る。Nビットセンサスビットの数Nが8または16ビットよりも大き い場合には、このビットカウンティングは、関係のあるバイトを抽出するために 、多数のロードおよびさらなるオペレーションを必要とし得る。このハミング距 離は、格納され、続いて使用され得る。ハミング距離が一旦演算されると、エリ ア合計は、ボックスフィルタを用いてXWIN×YWINのエリアに対して演算される 必要がある。以下のものがロードされなければならない。(1)前のピクセルと 同じ視差に対する合計、(2)前の行と同じ視差に対する列合計、 3)XWIN ピクセル前と同じ視差に対する列合計、および(4)YWIN行前と同じ視差に対 するハミング距離。これらが一旦ロードされると、新しい列合計は、古いハミン グ距離を前の行の列合計から減算し、新しいハミング距離に加えることによって 形成される。この新しい列合計は、格納され、続いて使用され得る。新しいエリ ア合計は、XWINピクセル前から列合計を減算し、新しい列合計を加えることに よって演算される。最後に、エリア合計は、前の最小スコアと比較され得る。新 しいスコアが前の最小値より小さい場合には、新しいスコアが最小値として格納 され、現在の視差が格納される。 D.対象オペレーション 1.すべての領域 図28は、領域1から10についての対象オペレーションに対する1つの実施 態様の高レベルフローチャートを示す。一般に、対象演算には、領域1から10 に関して上述した、相関合計および視差最適化オペレーションの要素である、同 じ列における1つの対象ウインドウだけ上の最も右上の角を列合計から減算する こと、現在の参照イメージ要素についての差の計算を列合計に加えること、ウイ ンドウ幅の列だけ左に位置する列合計をウインドウ合計から減算すること、およ び現在の変更された列合計を改変されたウインドウ合計に加えることを含む。 プログラムのこの時点において、輝度イメージの少なくとも1つが得られる。 1つの実施態様において、参照イメージ(右または左)に対する輝度イメージが 得られる場合、対象演算は進行し得る。図28に示すように、プログラムはステ ップ800で開始する。 ステップ801は、対象ウインドウサイズ、およびウインドウにおける参照ポ イントの位置を決定する。1つの実施態様において、対象ウインドウは、7×7 であり、参照ポイントは、ウインドウの最も右下の角に位置する。 9つのエッジ条件および1つの一般的なケースが存在するので、演算は異なっ て実行される。領域1から9はエッジ条件を示すのに対し、領域10は一般的な ケースを示す。図11(A)から図11(J)について上述したように、ウイン ドウ全体に対する対象合計は、完全なウインドウが所望のイメージ処理エリアに 適合し得る領域に対して計算される。即ち、イメージデータは、対象ウインドウ の各部分において見いだされる。従って、ウインドウ合計全体は、領域5、6、 9および10について計算される。処理の大部分は、領域10において起こる。 10個の領域に対するウインドウの参照イメージ要素の位置は、演算がどのよう に成し遂げられ、どんな演算が成し遂げられるかを示す。ステップ802は、対 象オペレーションが実行される領域1から6に適用される。これらの領域は、列 合計バッファ、差の変数、および対象ウインドウ合計をセットアップする。対象 演算が完了すると、ステップ803は、プログラムが領域7から10に進むこと を要求する。 演算は、行内で列毎に参照右イメージにおける各イメージ要素について行われ 、行の最後になると、プログラムは、所望のイメージ処理エリアにおける次の行 の第1の列に進む。これは、ステップ804、805、810、812、811 および813によって反映される。ステップ804、812および813によっ て定義されるあまり頻繁に発生しない行ループは、外部ループであるのに対して 、ステップ805、810および811によって定義されるより頻繁に発生する 列ループは、内部ループである。プログラムが行内で列毎に進行するにつれて、 ウインドウは、領域7、8、9および10をこの順序で通過する。プログラムが 次の行に到達し、行の終わりに進むと、領域7、8、9および10は、図11( G)から図11(J)に示すように、ウインドウによって横切られる。 最初に、プログラムは、ステップ804および805に示すように、行Iおよ び列Jにおいて、領域7に進む。ウインドウが領域7にある場合、領域7は行の 始めになければならないので、領域7の対象オペレーションは、ステップ806 によって要求されるように行われる。ウインドウが領域8にある場合、領域8の 対象オーペレーションは、ステップ807によって要求されるように行われる。 ウインドウが領域9にある場合、領域9の対象オペレーションは、ステップ80 8によって要求されるように行われる。ウインドウが領域10にある場合、領域 10の対象オペレーションは、ステップ809によって要求されるように行われ る。 進行する前に、ステップ810は、行Iおよび列Jにおける現在の参照イメー ジ要素が、行Iの最後の列にあるかどうかを決定する。この決定が「いいえ」と 判定する場合、プログラムは、次に列Jに進み(ステップ811および805) 、ウインドウの位置に従って、ステップ806、807、808または809の 1つを実施する。ステップ810の決定が「はい」と判定する場合、ステップ8 12は、この行が所望のイメージ処理エリアの最後の行であるかどうかを決定す る。もしそうでない場合、ステップ813および804は、ウインドウが次の行 Iおよびその行の第1の列Jに進むことを要求する(列および行番号は、最後の 列および行にそれぞれ到達した後にリセットされる)。ステップ812における 決定 が「はい」と判定する場合、対象プログラムはステップ814で終了する。 いくつかの実施態様において、対象オペレーションは、同じ相関ウインドウに わたって信頼値を発生することによって、相関ステップが進行するのと同時に行 われ得る。新しいラインのそれぞれに対する対象オペレータの結果は、ウインド ウ合計バッファの1つのラインに格納される。このため、対象オペレータバッフ ァの使用または同じ相関バッファの使用のいずれかが必要になる。対象演算は、 相関バッファの次のラインに格納され、対象結果(即ち、信頼「1」または非信 頼「0」)を発生するために用いられ、このラインにおける対象値は、相関合計 および視差最適化方式から発生されるデータによって上書きされる。 2.領域1および2 図29は、領域1および2についての対象オペレーションの1つの実施態様の フローチャートを示す。プログラムは所望のイメージ処理エリアにおいてステッ プ815で開始する。対象ウインドウ、より詳細には、対象ウインドウ内の参照 イメージ要素が、領域1または2に位置する場合、ステップ816および820 は、以下の対象計算が、行内で列毎に進むことによって各行および列に対して実 行されることを要求し、対象ウインドウの参照ポイントが行の終わりに到達する と、参照ポイントは、次の行の始めに移動する。 ステップ817は、1つの実施態様において32ビット長のdiff tem pと呼ばれる変数を用い、2つの隣接するイメージ要素間に値の視差を保持する 。diff temp変数の長さは、より短く(またはより長く)され得るが、 最終的には、対象列合計アレイのサイズを収容するような設計でなければならな い。なぜなら、diff tempは、データ当たり32ビット長の対象列合計 アレイに加えられるからである。diff tempおよび対象列合計バッファ のそれぞれのデータ長は、それらを加算したものを収容し、その加算結果が、加 算オペレーションを正しく反映するようになされなければならない。簡単に言う と、diff tempおよび対象列合計は共に32ビットである。相関合計お よび視差最適化オペレーションからの中間tempのように、データパッキング は、diff tempに対して用いられ得る。 ステップ817は、現在の参照イメージ要素(入力(x、y))の輝度値と、 隣接のイメージ要素(入力(x+1、y))の輝度値との間の視差の絶対値を演 算する。いくつかの実施態様では、絶対値は、ファンクションコールとして計算 される。他の実施態様では、差が計算され、結果が負であるかどうかに応じて、 同じ値の正のバージョンが、diff temp変数に対して選択される。参照 イメージ要素が、所望のイメージ処理エリアの最終列に到達すると、diff tempに対する差の計算が行われる。なぜなら、この参照イメージ要素のすぐ 右の位置(および所望のイメージ処理データの外側)にある輝度データは、プロ グラムの初めに決定され、飛ばされた行および列のために一定して得られる。 ステップ818は、diff tempの値をキャッシュ[x][y]に格納す る。このキャッシュはまた、差のスライディング合計(SSD)アレイ[x][ y]でもあり得る。 ステップ819は、参照対象ウインドウが領域1に位置する場合、diff tempの内容で対象列合計バッファ[x]を初期化する。この時点で、対象列 合計バッファ[x]は、参照イメージ要素に対する対象結果を保持する。ステッ プ819はまた、参照対象ウインドウが領域2に位置する場合、前の対象列合計 バッファおよびdiff tempの内容で対象列合計バッファ[x]を更新す る。この時点で、対象列合計バッファ[x]は、列の最も下側のイメージ要素で ある列の参照イメージ要素によって規定される各列についての対象列合計結果を 保持する。列のサイズは、対象ウインドウの高さである。領域1および2におい て、列全体は得られないので、列合計は部分のみである。 プログラムはステップ820に進み、現在の参照ポイントが行の最終列に位置 する場合には、システムは、同じ行の次の列または次の行の始まりにおける次の 参照ポイントを選択するように方向づけられる。次に、新しい参照ポイントに対 して同じ対象演算が実施される。最後に、対象列合計アレイ[x]は、対象ウイ ンドウの高さに対して各列について構築される。しかし、完全な対象列合計(対 象ウインドウの高さ全体)は、まだ得られない。対象オペレーションのこの部分 は、ステップ821で終了する。 3.領域3および4 図30は、領域3および4についての対象オペレーションの1つの実施態様の フローチャートを示す。演算は、対象列合計がこの時点で得られることを除いて 、領域1および2の演算と同様である。プログラムは、所望のイメージ処理エリ アにおいてステップ822で開始する。対象ウインドウ、より詳細には、対象ウ インドウ内の参照イメージ要素が、領域3または4に位置する場合、ステップ8 23および828は、以下の対象計算が、行内で列毎に進むことによって各行お よび列に対して実行されることを要求し、対象ウインドウの参照ポイントが行の 終わりに到達すると、参照ポイントは、次の行の始めに移動する。 ステップ824は、現在の参照イメージ要素(入力(x、y))の輝度値と、 隣接のイメージ要素(入力(x+1、y))の輝度値との間の視差の絶対値を演 算する。ステップ825は、diff tempの値をキャッシュ[x][y] に格納する。このキャッシュはまた、差のスライディング合計(SSD)アレイ [x][y]でもあり得る。 ステップ826は、前の対象列合計バッファとdiff tempとを加算し た内容で対象列合計バッファ[x]を構築する。この時点で、対象列合計バッフ ァ[x]は、列の最も下側のイメージ要素である列の参照イメージ要素によって 規定される各列についての完全な対象列合計結果を保持する。列のサイズは、対 象ウインドウの高さである。 ステップ827は、対象ウインドウが領域3に位置する場合、対象列合計アレ イ[x][y]における値で、SSD[x][y]アレイを初期化する。ステッ プ827は、対象ウインドウが領域4に位置する場台、SSDアレイの現在の値 とイメージ要素の現在の位置についての対象列合計アレイにおける値とを加算し て、SSD[x][y]アレイを構築する。 プログラムはステップ828に進み、現在の参照ポイントが行の最終列に位置 する場合には、システムは、同じ行の次の列または次の行の始まりにおける次の 参照ポイントを選択するように方向づけられる。次に、新しい参照ポイントにつ いて、同じ対象演算が行われる。最後に、SSD[x][y]アレイが、各イメ ージポイントに対して構築される。対象オペレーションのこの部分は、ステップ 829で終了する。 4.領域5 図31は、領域5に対する対象オペレーションの1つの実施態様のフローチャ ートを示す。演算は、この時点で対象ウインドウ合計全体が得られることを除い て、領域3および4の演算と同様である。プログラムは、所望のイメージ処理エ リア内でステップ830で開始する。対象ウインドウ、より詳細には、対象ウイ ンドウ内の参照イメージ要素が、領域5に位置する場合、ステップ831および 839は、以下の対象計算が、行内で列毎に進むことによって各行および列に対 して実行されることを要求し、対象ウインドウの参照ポイントが行の終わりに到 達すると、参照ポイントは、次の行の始めに移動する。 ステップ832は、現在の参照イメージ要素(入力(x、y))の輝度値と、 隣接のイメージ要素(入力(x+1、y))の輝度値との間の視差の絶対値を演 算する。ステップ833は、diff tempの値をキャッシュ[x][y] に格納する。このキャッシュはまた、差のスライディング合計(SSD)アレイ [x][y]でもあり得る。 ステップ834は、前の対象列合計バッファとdiff tempとを加算し た内容で対象列合計バッファ[x]を構築する。この時点で、対象列合計バッフ ァ[x]は、列の最も下側のイメージ要素である列の参照イメージ要素によって 規定される各列についての完全な対象列合計結果を保持する。 ステップ835は、SSDアレイの現在の値とイメージ要素の現在の位置につ いての対象列合計アレイにおける値とを加算して、この参照ポイントにおいてS SD[x][y]アレイを完了する。この領域では、SSD[x][y]の内容 は、この時点で、完全なウインドウ合計を示す。 ステップ836は、この領域に対して現在得られる対象ウインドウ合計値が、 特定の予めプログラムされた閾値よりも大きいかどうかを決定する。対象ウイン ドウ合計が、その特定の参照イメージポイントにおいて、輝度イメージのテクス チャを示すことに留意されたい。閾値レベルは、テクスチャをベースとした出力 の質を決定し、この出力は、イメージ処理システムに、相関演算の信頼測定を示 す。閾値が非常に低いかまたは0に設定される場合、ほとんどすべての対象ウイ ンドウ合計計算はこのレベルを越える。従って、白いボードなどの非常に均一な 光景でもこの閾値を越え得る。閾値が非常に高く設定されている場合、ほとんど の対象ウインドウ合計はこの閾値を超えず、出力は、イメージ処理システムに、 出力のほとんどが相関結果に対して充分に高い信頼を有することを示す。ステッ プ836における決定が「はい」と判定する場合、対象結果[x][y]におけ る値は、ステップ838に示すように、1に設定され、これは、相関結果に対す る信頼の測定を示す。ステップ836における決定が「いいえ]と判定する場合 、対象結果[x][y]における値は、ステップ837に示すように、0に設定 され、これは、相関結果の非信頼の測定を示す。 対象結果アレイ[x][y]についての適切な信頼値を設定した後、プログラ ムはステップ839に進み、現在の参照ポイントが行の最終列に位置する場合に は、システムは、同じ行の次の列または次の行の始まりにおける次の参照ポイン トを選択するように方向づけられる。次に、新しい参照ポイントについて、同じ 対象計算が行われる。対象オペレーションのこの部分はステップ840で終了す る。 5.領域6 図32は、領域6に対する対象オペレーションの1つの実施態様のフローチャ ートを示す。演算は、この時点で、対象ウインドウ幅の列だけ左に位置する列合 計が、対象ウインドウ合計から減算され得ることを除いて、領域5の演算と同様 である。プログラムは、所望のイメージ処理エリア内でステップ841で開始す る。対象ウインドウ、より詳細には、対象ウインドウ内の参照イメージ要素が、 領域6に位置する場合、ステップ842および851は、以下の対象計算が、行 内で列毎に進むことによって各行および列に対して実行されることを要求し、対 象ウインドウの参照ポイントが行の終わりに到達すると、参照ポイントは、次の 行の始めに移動する。 ステップ843は、現在の参照イメージ要素(入力(x、y))の輝度値と、 隣接のイメージ要素(入力(x+1、y))の輝度値との間の視差の絶対値を演 算する。ステップ844は、diff tempの値をキャッシュ[x][y] に格納する。このキャッシュはまた、差のスライディング合計(SSD)アレイ [x][y]でもあり得る。 ステップ845は、前の対象列合計バッファとdiff tempとを加算し た内容で対象列合計バッファ[x]を構築する。この時点で、対象列合計バッフ ァ[x]は、列の最も下側のイメージ要素である列の参照イメージ要素によって 規定される各列についての完全な対象列合計結果を保持する。 ステップ846は、SSD[x][y]アレイにおける現在の値から、対象列 合計アレイ[x−対象ウインドウ幅」における列合計値を減算する。その現在の 値は、(x−1、y)に位置するイメージ要素に関連するウインドウ合計である 。対象ウインドウ合計を完了するために、対象列合計[x]は、ステップ847 に示すように、SSD[x][y]に加えられる。この領域において、SSD[ x][y]の内容は、この時点で、完全な対象ウインドウ合計を示す。 ステップ848は、この領域に対して現在得られる対象ウインドウ合計値が、 特定の予めプログラムされた閾値よりも大きいかどうかを決定する。ステップ8 46における決定が「はい」と判定する場合、対象結果[x][y]における値 は、ステップ850に示すように、1に設定され、これは、相関結果に対する信 頼の測定を示す。ステップ848における決定が「いいえ]と判定する場合、対 象結果[x][y]における値は、ステップ849に示すように、0に設定され 、これは、相関結果の非信頼の測定を示す。 対象結果アレイ[x][y]についての適切な信頼値を設定した後、プログラ ムはステップ851に進み、現在の参照ポイントが行の最終列に位置する場合に は、システムは、同じ行の次の列または次の行の始まりにおける次の参照ポイン トを選択するように方向づけられる。次に、新しい参照ポイントについて、同じ 対象計算が行われる。対象オペレーションのこの部分はステップ852で終了す る。 6.領域7および8 図33は、領域7および8に対する対象オペレーションの1つの実施態様のフ ローチャートを示す。演算は、この時点で、同じ列における現在の参照ポイント から対象ウインドウ高さだけ上に位置するイメージポイントに対する単一の差の 計算が、対象列合計[x]における値から減算されなけれならないことを除いて 、領域3および4の演算と同様である。プログラムは、所望のイメージ処理エリ ア内でステップ853で開始する。対象ウインドウ、より詳細には、対象ウイン ドウ内の参照イメージ要素が、領域7または8に位置する場合、ステップ854 および860は、以下の対象計算が、行内で列毎に進むことによって各行および 列に対して実行されることを要求し、対象ウインドウの参照ポイントが行の終わ りに到達すると、参照ポイントは、次の行の始めに移動する。 ステップ855は、対象列合計アレイ[x]における値から、キャッシュ[x ][y−対象ウインドウ高さ]に位置する単一のイメージ要素についての差の計 算を減算する。キャッシュアレイは、1つの実施態様においてSSD[x][y ]アレイである。 ステップ856は、現在の参照イメージ要素(入力(x、y))の輝度値と、 隣接のイメージ要素(入力(x+1、y))の輝度値との間の視差の絶対値を演 算する。ステップ857は、diff tempの値をキャッシュ[x][y]に 格納する。このキャッシュはまた、SSDアレイ[x][y]でもあり得る。 ステップ858は、前の対象列合計バッファとdiff tempとを加算し た内容で対象列合計バッファ[x]を構築する。この時点で、対象列合計バッフ ァ[x]は、列の最も下側のイメージ要素である列の参照イメージ要素によって 規定される各列についての完全な対象列合計結果を保持する。 ステップ859は、対象ウインドウが領域7に位置する場合、対象列合計アレ イ[x][y]における値で、SSD[x][y]アレイを初期化する。ステッ プ859は、対象ウインドウが領域8に位置する場合、SSDアレイの現在の値 とイメージ要素の現在の位置についての対象列合計アレイにおける値とを加算し て、SSD[x][y]アレイを構築する。 プログラムはステップ860に進み、現在の参照ポイントが行の最終列に位置 する場合には、システムは、同じ行の次の列または次の行の始まりにおける次の 参照ポイントを選択するように方向づけられる。次に、新しい参照ポイントにつ いて、同じ対象演算が行われる。最後に、SSD[x][y]アレイが、各イメ ージポイントに対して構築される。対象オペレーションのこの部分は、ステップ 861で終了する。 7.領域9 図34は、領域9に対する対象オペレーションの1つの実施態様のフローチャ ートを示す。演算は、この時点で同じ列における現在の参照ポイントから対象ウ インドウ高さだけ上に位置するイメージポイントについての単一の差の計算が、 対象列合計[x]における値から減算されなければならないことを除いて、領域 5の演算と同様である。プログラムは、所望のイメージ処理エリア内でステップ 862で開始する。対象ウインドウ、より詳細には、対象ウインドウ内の参照イ メージ要素が、領域9に位置する場合、ステップ863および872は、以下の 対象計算が、行内で列毎に進むことによって各行および列に対して実行されるこ とを要求し、対象ウインドウの参照ポイントが行の終わりに到達すると、参照ポ イントは、次の行の始めに移動する。 ステップ864は、対象列合計アレイ[x]における値から、キャッシュ[x ][y−対象ウインドウ高さ」に位置する単一のイメージ要素についての差の計 算を減算する。キャッシュアレイは、1つの実施態様においてSSD[x][y ]アレイである。 ステップ865は、現在の参照イメージ要素(入力(x、y))の輝度値と、 隣接のイメージ要素(入力(x+1、y))の輝度値との間の視差の絶対値を演 算する。ステップ866は、diff tempの値をキャッシュ[x][y]に 格納する。このキャッシュはまた、差のスライディング合計(SSD)アレイ[ x][y]でもあり得る。 ステップ867は、前の対象列合計バッファとdiff tempとを加算し た内容で対象列合計バッファ[x]を構築する。この時点で、対象列合計バッフ ァ[x]は、列の最も下側のイメージ要素である列の参照イメージ要素によって 規定される各列についての完全な対象列合計結果を保持する。 ステップ868は、SSDアレイの現在の値とイメージ要素の現在の位置につ いての対象列合計アレイにおける値とを加算して、この参照ポイントにおいてS SD[x][y]アレイを完了する。この領域では、SSD[x][y]の内容 は、この時点で、完全なウインドウ合計を示す。 ステップ869は、この領域に対して現在得られる対象ウインドウ合計値が、 特定の予めプログラムされた閾値よりも大きいかどうかを決定する。対象ウイン ドウ合計が、その特定の参照イメージポイントにおいて、輝度イメージのテクス チャを示すことに留意されたい。閾値レベルは、テクスチャをベースとした出力 の質を決定し、この出力は、イメージ処理システムに、相関演算の信頼測定を示 す。ステップ869における決定が「はい」と判定する場合、対象結果[x][ y]における値は、ステップ871に示すように、1に設定され、これは、相関 結果に対する信頼の測定を示す。ステップ869における決定が「いいえ]と判 定する場合、対象結果[x][y]における値は、ステップ870に示すように 、0に設定され、これは、相関結果の非信頼の測定を示す。 対象結果アレイ[x][y]についての適切な信頼値を設定した後、プログラ ムはステップ872に進み、現在の参照ポイントが行の最終列に位置する場合に は、システムは、同じ行の次の列または次の行の始まりにおける次の参照ポイン トを選択するように方向づけられる。次に、新しい参照ポイントについて、同じ 対象計算が行われる。対象オペレーションのこの部分はステップ873で終了す る。 8. 領域10. 図35は、領域10についての対象演算の一実施形態を示すフローチャートで ある。演算は、領域6および9のものと同様であるが、ここではアルゴリズムの 一般の場合を想起されたい。ここでの演算は、列合計から同じ列中の1ウインド ウ上の右上角を減算し、現在の参照イメージ要素を列合計に加算し、ウインドウ 合計からウインドウ幅の列数だけ左に位置する列合計を引算し、現在の修正され た(modified)列合計を修正されたウインドウ合計に加算することを包含する。 ステップ874において、所望のイメージ処理領域でプログラムは開始する。 対象ウインドウ、より具体的には対象ウインドウ中の参照イメージ要素が領域1 0に位置するならば、ステップ875および885は、行中において列単位で進 むことにより以下の対象演算を各行および列について実行することを要求とし、 もし対象ウインドウの参照ポイントが行の終わりに到達した場合は、参照ポイン トは次の行の初めに移動する。 ステップ876では、キャッシュ[x][y−対象ウインドウの高さ]に位置する 単一のイメージ要素についての差計算を、対象列合計アレイ[x]中の値から減算 する。一実施形態において、キャッシュアレイはSSD[x][y]アレイである。 ステップ877では、現在の参照イメージ要素(入力(x,y))の輝度値と、隣 接するイメージ要素(入力(x+1,y))の輝度値との差の絶対値を演算する。ステ ップ878は、diff tempの値をキャッシュ[x][y]に格納する。このキ ャッシュはまた、差(SSD)アレイ[x][y]のスライディング合計であり得る。 ステップ879では、対象列合計バッファ[x]に、前の対象列合計バッファの 内容プラスdiff tempを累積していく(build up)。こうして、対象要素 合計バッファ[x]は、列中の参照イメージ要素(列中の一番下のイメージ要素で ある)によって規定される、各列についての完全な対象列合計結果を保持してい る。 ステップ880では、対象列合計アレイ[x−対象ウインドウ幅]中の列合計値 を、SSD[x][y]アレイ中の現在の値から減算する。SSD[x][y]アレイ中のこ の現在の値は、(x-1,y)に位置するイメージ要素に対応するウインドウ合計で ある。ステップ881に示すように、対象ウインドウ合計を完全にするために、 対象列合計[x]をSSD[x][y]に加算する。この領域において、SSD[x][y]の 内容はこの時点で完全な対象ウインドウ合計を表している。 ステップ882では、この時点でこの領域について利用可能になった対象ウイ ンドウ合計値が、特定の予めプログラムされたしきい値より大きいか否かを決定 する。対象ウインドウ合計は、この特定の参照イメージポイントにおける輝度イ メージのテクスチャを表していることに注意せよ。しきい値レベルは、テクスチ ャに基づいた出力品質を決定する。この出力は、相関演算の信頼度(confidence measure)を、イメージ処理システムに対して示している。ステップ882におけ る決定が「YES」の評価をすれば、対象結果[x][y]中の値はステップ884に 示されるように1に設定され、相関結果の信頼度を示す。ステップ882におけ る決定が「NO」の評価をすれば、対象結果[x][y]中の値はステップ883に示 されるように0に設定され、相関結果の非信頼度(measure of no confidence)を 示す。 対象結果アレイ[x][y]の適切な信頼値を設定した後、プログラムはステップ8 85に進み、同じ行の次の列中の次参照ポイントを、あるいは現在の参照ポイン トが行の最後の列に位置している場合は次の行の初めの次参照ポイントを、シス テムに選択させる。そして、新しい参照ポイントについての同じ対象計算を行う 。対象演算のこの部分は、ステップ886において終了する。 E.データ圧縮(data packing) 図36は、相関合計および視差最適化演算の一実施形態に用いられる、データ 圧縮概念を示している。一実施形態においては32ビット長である中間temp と呼ばれる変数が、2つの異なる視差についての個々の変換ベクトル−変換ベク トルハミング距離値を保持する。変数のMSB部の16ビットは視差dlについ ての相関合計値を保持し、変数のLSB部の16ビットは視差d2についての相 関合計値を保持する。このように図21〜27を参照して上述したzループの間 に、16個の視差に対して8個の中間temp値が用いられる。本発明の一実施 形態において単一の中間temp値が用いられるため、視差に基づいた相関合計 の各対は、1つのzループ中において実質的に同時に演算される。中間temp は32ビット長であることにより、過剰なデータ操作なしに32ビット列合計値 に単に加算することができる。 一実施形態において、中間temp 1および中間temp 2と呼ばれる2つの 中間temp値を用いて、データを圧縮する。左(x+2*z,y)および参照右(x,y )の2つのセンサスベクトルの間のハミング距離を演算し、図36において70 1として示す中間temp 1のLSB側半分に一時的に格納する。この値を、図 中702として示す中間temp 2のMSB側半分に移動する。左(x+2*z+1,y )および参照右(x,y)の2つのセンサスベクトルの間のハミング距離を演算し、 図中において703として示す中間temp 1のLSB側半分に一時的に格納す る。このようにして、z=0について、中間temp 2のMSB側半分は左(x, y)および参照右(x,y)の間のハミング距離を保持しており、中間temp 1の LSB側半分は左(x+1,y)および参照右(x,y)の間のハミング距離を保持して おり、zループは0から(D/2−1)まで実行し、従ってD=16視差によりz =0〜7が得られる。 707として示す論理OR動作は、中間temp 1(705)と中間temp 2(704)との間で行われ、中間temp1(706)に格納される。706 に示すように、この時点で中問temp 1は左(x+2*z,y)および参照右(x,y )の間のハミング距離を中間temp 1のMSB側半分に格納しており、左(x+ 2*z+1,y)および参照右(x,y)の間のハミング距離を同じ中間temp 1のLS B側半分に格納している。 F.左−右一貫性チェック 図37は、左−右一貫性チェックの一実施形態のフローチャートを示している 。 このプログラムは最終的には、最適な視差値およびそれに対応する相関合計を決 定し、各「参照」左イメージ要素についてBEST LR INDEXおよびB EST LR SCOREにそれぞれ格納する。プログラムはステップ720で 開始する。 ステップ721および733は、あるイメージ要素に対応するある変換ベクト ルから別のイメージ要素に対応する別の変換ベクトルへと、行中を1度にD列進 むことにより、以下の一貫性チェックを各行および列について実行することを要 求する。もし参照イメージ要素が行の終わりに到達した場合は、参照イメージ要 素は次の行の初めに移動する。相関合計バッファのデータ構造のため、1度につ き1列移動することは一般に、同じイメージ要素中においてある視差の相関合計 から別の視差の別の相関合計へと移動することになり、場合によっては、あるイ メージ要素の視差D−1についての相関合計から次の隣接イメージ要素の視差0 についての相関合計へと移動することになる。所与の視差についてあるイメージ 要素から別のイメージ要素へ移動するためには、システムは視差0の位置から開 始し、これを位置[x][y]と名付ける。次に右にD−1列移動しなければならない 。 もし現在のイメージが行中の最後のイメージ要素であれば、システムは次の行の 最初のイメージ要素へ移動しなければならない。各イメージ要素について、シス テムはまず各イメージ要素の視差D−1に移動し、そこで時域計算についての相 関データを得なければならない。各次の参照イメージ要素は、前のイメージ要素 の位置からD列移動することを包含する。 ステップ722では、インクリメントする変数INCRを0に設定する。この 値を用いて、所与の「参照」左イメージ要素についての全ての相関合計データが チェックされるまで、D−1から0までの全ての視差をチェックする。 ステップ723は、後の比較に用いるために、最適な視差数およびその視差数 に対応する相関合計値を一時的に格納する。ステップ723は、相関合計バッフ ァ[x+D-1-INCR][y]中に見いだされる相関合計値を、変数BEST LR SCO REに一時的に格納する。最初のイメージ要素について、D−1は、各視差につ いて相関合計の完全な組を有する最初の左イメージ要素を見いだすための、初期 のシフトである。16個の視差に関して、最初のイメージ要素は、相関合計バッ ファ[x+15][y](右イメージの最初のイメージ要素についての視差15に関する 相関合計データである)内に位置している。この現在15である視差数D−1− INCRは、変数BEST LR INDEXに格納される。このようにシステム はスキューまたはバイアスされることにより、相関値にタイが生じた場合にはよ り高い視差数を最適視差数として維持する。他の実施形態においては、タイの場 合において低い方の視差数を優先するようにシステムをバイアスしてもよい。 ステップ724では、INCR変数を1インクリメントする(例えばINCR =1)。このインクリメントにより、次のより低い視差数を調べることができる 。 ステップ725では、変数CURRENT CORRELATION SUM SCOREを、相関合計バッファ[x+D*INCR+D-1-INCR][y]に設定する。現在、こ の値は相関合計バッファ[x+30][y]中に位置しており、これは視差14について の次の隣接イメージ要素に関する相関合計データを保持している位置に対応する 。D*INCR項は、システムが右方向に次のイメージ要素に移動するかまたは複数の イメージ要素移動することを可能にし、D-1-INCR項は、調べられている特定の視 差を選択する。 ステップ726では、「参照」左イメージ要素から視差14であるデータ要素 についての相関合計値を保持するBEST LR SCOREが、「参照」左イメ ージ要素から視差15であるデータ要素についての相関合計値を保持するBES T LR SCORE中の値未満であるか否かを決定する。もし決定の評価が「N O」であれば、システムはCURRENT CORRELATION SUMSC OREおよびBESTLR INDEX中の値に変更を加えず、ステップ728 に進んで現在の「参照」左イメージ要素について全ての視差を調べたか否かをチ ェックする。 ステップ726における決定の評価が「YES」であれば、BEST LR I NDEX変数およびBEST LR SCORE変数をステップ727において更 新する。BEST LR INDEXは、現在の視差数D−1−INCRによって 置換され、BEST LR SCOREは、CORRELATION SUM SC OREに格納されている現在の低い方の相関合計値によって置換される。 ステップ728では、D−1−INCR=0か否かを決定することにより、現 在の「参照」左イメージ要素について全ての視差を調べたか否かをチェックする 。もしこの式の解が0であれば、最後の視差値およびその対応する相関合計値は 最適性について調べられており、プログラムはステップ729に進む。もしこの 式の解が0でなければ、プログラムはステップ724に進み、INCRを1イン クリメントする。724−725−726−727−728で規定される流ロー プは、所与の「参照」左イメージ要素についての全ての視差およびその対応する 相関合計が調べられるまで続けられる。 所与の「参照」左イメージ要素について全ての視差が調べられれば、ステップ 728は「YES」と評価し、ステップ729において変数CURRENT R L INDEXを、右から左分析において最適と決定され、極値指標[x-BEST LR INDEX+D-1][y]に現在格納されている視差数に設定する。最終的には、全ての極 値指標が、参照右イメージ中のイメージ要素についての最適視差を含んでいる。 ステップ730では、BEST LR INDEXがCURRENT RL IN DEXに等しいか否かを決定する。すなわち、もし「参照」左イメージ要素が、 それに最適にマッチするのが特定の右イメージであるように視差を選択した場合 、 この特定の右のイメージは現在の「参照」左イメージ要素を選択したか?このス テップが決定を「NO」と評価した場合、左−右チェック結果は、元々の右−左 チェック結果に対して一貫性を有していず、ステップ732においてLR RE SULT[x][y]は−1に設定される。一実施形態においてこれは、データが破棄 されることを意味する。他の実施形態において、モードフィルタおよび/または 対象演算結果に依存して、データは条件的に破棄される。ステップ730が決定 を「YES」と評価した場合、左−右チェック結果は元々の右−左結果と一貫性 を有しており、ステップ731においてLR RESULT[x][y]に、変数BE ST LR INDEX中の値が設定される。このようにして、各「参照」左イメ ージ要素について、LR RESULT[x][y]は、左−右および右−左間の一貫 性を反映したデータを含んでいる。 ステップ731および732におけるLR RESULT[x][y]へのデータ格 納の後、ステップ733では、行中の処理するべき次のイメージ要素を選択する 。 次のイメージ要素は、現在のイメージ要素の現在位置からD行離れて位置してい る。もし現在のイメージ要素が行中の最後のイメージ要素であれば、次のイメー ジ要素は次の行中の最初のイメージ要素である。プログラムはステップ734で 終了する。 G.モードフィルタ 1.全領域。 図38は、領域1〜10に対するモードフィルタの一実施形態の高レベルのフ ローチャートを示す。一般にモードフィルタ演算は、視差最適化演算および相関 合計の領域1〜10について前述した要素を含む。すなわち、列合計から同じ列 中の1モードフィルタウインドウ上の右上角の相関カウントを減算し、現在の参 照イメージ要素についてのモードフィルタカウント計算値を列合計に加算し、ウ インドウ合計からウインドウ幅の列数だけ左に位置する列合計を引算し、現在の 修正された列合計を修正されたウインドウ合計に加算することである。 プログラム中のこのポイントにおいて、極値指標を利用することが可能である 。 図38に示すように、プログラムはステップ900において開始する。 ステップ901は、モードフィルタウインドウサイズおよびウインドウ中の参 照ポイントの位置を決定する。一実施形態において、モードフィルタウインドウ は7×7であり、参照ポイントはウインドウの右下角に位置している。 9個のエッジ条件および1つの一般的場合が存在するため、演算は異なって実 行される。領域1〜9はエッジ条件を表し、領域10は一般的場合を表している 。図11(A)〜11(J)について上述したように、全ウインドウについての モードフィルタ合計を計算して、完全なウインドウが所望のイメージ処理領域内 にはまり得るような領域を求める。すなわち、モードフィルタウインドウの全て の部分においてイメージデータを見いだす。このようにして、全ウインドウ合計 を、領域5、6、9、および10について計算する。処理の大部分は、10で起 こる。10個の領域に対するウインドウの参照イメージ要素の位置が、どういっ た演算をどのように達成するかを支配する。ステップ902は、モードフィルタ 演算がどこで実行されるかを領域1〜6に適用する。これらの領域は、列合計バ ッファ、個々の視差カウント、およびモードフィルタウインドウ合計を設定する (set up)。モードフィルタ演算が完了すれば、ステップ903においてプログラ ムが領域7〜10に進むことを要求する。 演算は、参照右イメージ中の各イメージ要素について、1つの行中において列 単位で行われ、行の終わりにおいてプログラムは、所望のイメージ処理領域中の 次の行中の次の列に進む。これは、ステップ904、905、910、912、 911および913に反映される。より少なく起こるステップ904、912、 913によって規定される行ループは外側ループであり、より頻繁に起こるステ ップ905、910および911によって規定される列ループは内側ループであ る。プログラムが行中において列単位で進むにつれ、ウインドウは領域7、8、 9および10をこの順で通過する。プログラムが次の行に到達しその行の終わり に進むとき、領域7、8、9、10は再び図11(G)〜11(J)に示すよう にウインドウによって横切られる。 まずプログラムは、ステップ904および905に示されるように行Iおよび 列Jにおいて領域7に進む。もしウインドウが領域7中にあれば(行の初めでは そうなるはずである)、ステップ906において要求されるように領域7モード フィルタ演算を行う。もしウインドウが領域8中にあれば、ステップ907にお いて要求されるように領域8モードフィルタ演算を行う。もしウインドウが領域 9中にあれば、ステップ908において要求されるように領域9モードフィルタ 演算を行う。もしウインドウが領域10中にあれば、ステップ909において要 求されるように領域10モードフィルタ演算を行う。 進む前にステップ910において、行Iおよび列Jにおける現在の参照イメー ジ要素が、行Iの最後の列にあるか否かを決定する。決定の評価が「NO」であ れば、プログラムは次の列Jに進み(ステップ911および905)、ウインド ウの位置に応じてステップ906、907、908、または909のうちいずれ か1つを行う。ステップ910における決定の評価が「YES」であれば、ステ ップ912において行が所望のイメージ処理領域中の最後の行であるか否かを決 定する。もしそうでなければ、ステップ913および904において、ウインド ウが次の行Iおよびその行中の最初の列Jに進むことを要求する(列および行番 号は最後の列および行にそれぞれ到達した後にリセットされる)。ステップ91 2における決定の評価が「YES」であれば、モードフィルタプログラムはステ ップ914において終了する。 2.領域1および2 図39は、領域1および2についてのモードフィルタの一実施形態のフローチ ャートを示す。領域1において、列合計を初期化する。領域2において、列合計 を累積する。ただし両領域において、フル列合計またはウインドウ合計はまだ利 用可能ではない。プログラムはステップ915から開始する。 ステップ916では、モードフィルタウインドウサイズおよびウインドウ中の 参照ポイントの位置を決定する。一実施形態において、ウインドウサイズは7× 7である(7個のイメージ要素の幅掛ける7個のイメージ要素の高さ)であり、 参照イメージ要素の位置は、ウインドウの左下角である。モードフィルタウイン ドウは本発明の相関合計および視差最適化部分において確立された極値指標アレ イを横切って「移動する」ため、各イメージ要素は、視差値(すなわちd=0、 1、2、...またはD−1)を含んでいる。この視差値は、本発明のイメージ 処理システムによって参照右イメージと視差シフトされた左イメージとの間の最 高のマッチまたは対応を表しているものとして選択された、最適な視差を表して いる。モードフィルタサイズおよびウインドウ中の参照ポイント位置の決定ある いは選択は、このモードフィルタ演算へのサブプログラムコール無しに、プログ ラムの主部分(MAIN)で行われ得る。 ステップ917では、視差カウント[x+Z]変数を初期化する。ここでモードフ ィルタの文脈において用いている「Z」は、1対の視差についての相関データの 処理の説明のために図21〜27を参照して上述した相関合計および視差最適化 スキームにおいて用いた「z」とは異なる。一実施形態において、視差カウント [x+Z]は32ビット長であり、各ビン(bin)が1バイト長である4つの「ビン」を 有していると考えることができる。この構造を用いることは、本発明の相関合計 および視差最適化スキームの、列合計アレイのデータ圧縮構造および中間tem p変数データと類似している。視差カウント[x+Z]アレイの概念は、単一ライン 列合計アレイバッファと若干似ている。実際、他の実施形態においては、列中の 視差をカウントするために視差カウント[x+Z]アレイの構造を用いない。 視差カウント[x+Z]はZ=0から5まで変わるため、このアレイは6個の変数 を表しており、Zの特定の値についての各変数視差カウント[x+Z]は4個のビン を含んでいる。合計24個のビンが利用可能である。各ビンは、単一の視差値を 表している。本発明のイメージ処理システムは、各視差の発生を、その発生して いる視差に対応するビンに1ビットを加算することにより、カウントする。本発 明の一実施形態においては、16個の視差を用いる(D=16)。このように、 24ビットの全てを用いるわけではなく、むしろ、16個のビンのみを用いて視 差の発生をカウントする。以下の表は、Zの各値およびこれらのビンについての 視差カウント[x+Z]の理解を容易にするものである: 表に示すように、視差カウント[x+Z]の6個の変数は以下に表される:視差カ ウント[x]、視差カウント[x+1]、視差カウント[x+2]、視差カウント[x+3]、視差 カウント[x+4]、および視差カウント[x+5]である。各可変視差カウント[x+Z]は 4バイト長であり、各バイトはビンを表す。「00」記号は16進数記述であり 、ビットに直せば実際には8ビット長−−00000000である。従って、各 ビンまたはバイト位置は、隣接するビンまたはバイト位置に影響することなく( すなわち繰り上がり(carries)なしに)、最悪の場合の最大視差カウント数を保 持することができる。 アンダーラインは、視差カウントを保持している特定のビンまたはバイト位置 を表す。従って、可変視差カウント[x+3]について、視差13カウントがMSB から2番目のバイトに格納されている。従って、例えば視差7などの所与の視差 があるウインドウ列内で3回発生した場合、値3が視差カウント[x+1]のLSB バイトに格納される。視差14があるウインドウ列内で10回発生した場合、視 差カウント[x+3]は、LSBバイトから2番目のバイトに値A(10進法におけ る10に対応する16進数)を保持する。 モードフィルタウインドウ、より具体的にはモードフィルタウインドウ中の参 照イメージ要素が領域1または2に位置している場合、ステップ918および9 21は、行中を列単位で進むことにより各行および列について以下のモードフィ ルタ計算を実行することを要求し、もしモードフィルタウインドウの参照ポイン トが行の終わりに到達した場合は、参照ポイントは次の行の初めに移動する。 ステップ919では、モードフィルタウインドウ内の極値指標アレイ[x][y]か ら視差データを取り込む(fetch)。ステップ920において、カウントビット( 単数または複数)を、実質的に列合計である視差カウント[x+Z]中の各視差カウ ントビンに、モードフィルタウインドウ中の各視差の発生に基づいて加算する。 カウントビット(単数または複数)は、特定の視差がモードフィルタウインドウ 内における極値指標アレイ中に現れる回数を表す。これらのカウントビットは、 枠923内に示されるように、適切な視差カウント[x+Z]ビン中に置かれる。 プログラムはステップ921に進み、システムに、同じ行の次の列中の次参照 ポイントを、あるいは現在の参照ポイントが行の最後の列に位置している場合は 次の行の初めの次参照ポイントを、システムに選択させる。そして、新しい参照 ポイントについての同じモードフィルタ計算を行う。モードフィルタ演算のこの 部分は、ステップ922において終了する。 3.領域3および4 図40は、領域3および4についてのモードフィルタの一実施形態のフローチ ャートを示している。領域3において完全な列合計が利用可能であるため、モー ドフィルタウインドウsum_Zが初期化される。領域4において、モードフィ ルタウインドウsum_Zを累積する。ただし、両領域において、フルのモード フィルタウインドウsum_Zはまだ利用可能ではない。プログラムはステップ 924から開始する。 モードフィルタウインドウ、より具体的にはモードフィルタウインドウ中の参 照イメージ要素が領域3または4に位置している場合、ステップ925および9 29は、行中を列単位で進むことにより各行および列について以下のモードフィ ルタ計算を実行することを要求し、もしモードフィルタウインドウの参照ポイン トが行の終わりに到達した場合は、参照ポイントは次の行の初めに移動する。 ステップ926では、モードフィルタウインドウ内の極値指標アレイ[x][y]か ら視差データを取り込む。ステップ927において、カウントビット(単数また は複数)を、実質的に列合計である視差カウント[x+Z]中の各視差カウントビン に、モードフィルタウインドウ中の各視差の発生に基づいて加算する。カウント ビット(単数または複数)は、特定の視差がモードフィルタウインドウ内におけ る極値指標アレイ中に現れる回数を表す。これらのカウントビットは、枠931 内に示されるように、適切な視差カウント[x+Z]ビン中に置かれる。 モードフィルタが6個の可変視差カウント[x+Z]を用いてそれぞれ4つの視差 (合計24個の可能な視差)の発生(単数または複数)をカウントするように、 モードフィルタ合計は4個のウインドウ合計変数−−モードフィルタウインドウ sum_Z(Z=0〜5について)を用いて計算される。各モードフィルタウイ ンドウsum_Zは、4個の視差に対してウインドウ合計を保持する。従って、 ウインドウsum_0は、視差0〜3についてのウインドウ合計発生回数(occur ences)を保持し;ウインドウsum_1は、視差4〜7についてのウインドウ合 計発生回数を保持し;ウインドウsum_2は、視差8〜11についてのウイン ドウ合計発生回数を保持し;ウインドウsum_3は、視差12〜15について のウインドウ合計発生回数を保持し;ウインドウsum_4は、視差16〜19 についてのウインドウ合計発生回数を保持し;ウインドウsum_5は、視差2 0〜23についてのウインドウ合計発生回数を保持する。 ステップ928において、内側Zループ(1対の視差についての相関データの 処理の説明のために図21〜27を参照して上述した相関合計および視差最適化 スキームにおいて用いた「z」ループとは区別される)を行う。0から5の各Z について、領域3はモードフィルタウインドウsum_Z変数を初期化し、領域 4は、列合計(視差カウント[x+Z]である)をモードフィルタウインドウsum _Zの現在の値に加算することにより、モードフィルタウインドウsum_Zを 更新する。 プログラムはステップ929に進み、システムに、同じ行の次の列中の次参照 ポイントを、あるいは現在の参照ポイントが行の最後の列に位置している場合は 次の行の初めの次参照ポイントを、システムに選択させる。そして、新しい参照 ポイントについての同じモードフィルタ計算を行う。モードフィルタ演算のこの 部分は、ステップ930において終了する。 4.領域5 図41は、領域5についてのモードフィルタの一実施形態のフローチャートを 示している。ウインドウが所望のイメージ処理領域の左上角にちようどはまるた め、領域5において完全なウインドウ合計が利用可能である。従って、この領域 において視差一貫性を決定することができる。プログラムはステップ932から 開始する。 モードフィルタウインドウ、より具体的にはモードフィルタウインドウ中の参 照イメージ要素が領域5に位置している場合、ステップ933および949は、 行中を列単位で進むことにより各行および列について以下のモードフィルタ計算 を実行することを要求し、もしモードフィルタウインドウの参照ポイントが行の 終わりに到達した場合は、参照ポイントは次の行の初めに移動する。 ステップ934では、モードフィルタウインドウ内の極値指標アレイ[x][y]か ら視差データを取り込む。ステップ935において、カウントビット(単数また は複数)を、実質的に列合計である視差カウント[x+Z]中の各視差カウントビン に、モードフィルタウインドウ中の各視差の発生に基づいて加算する。カウント ビット(単数または複数)は、特定の視差がモードフィルタウインドウ内におけ る極値指標アレイ中に現れる回数を表す。これらのカウントビットは、枠951 内に示されるように、適切な視差カウント[x+Z]ビン中に置かれる。 ステップ936において、内側Zループ(1対の視差についての相関データの 処理の説明のために図21〜27を参照して上述した相関合計および視差最適化 スキームにおいて用いた「z」ループとは区別される)を行う。0から5の各Z について、領域5は、列合計(視差カウント[x+Z]である)をモードフィルタ ウインドウsum_Zの現在の値に加算することにより、モードフィルタウイン ドウsum_Zを更新する。この時点において、ウインドウ中で表される全ての 視差の完全なウインドウ合計が利用可能になる。 ステップ937ではまず、極値指標を0に設定し(ここで、Z=0について4* Z=0である)、極値を一番左のMSBビンのウインドウsum_Zに設定す る。これにより、最大カウントを有する視差が視差0に向かってスキューまたは バイアスされ、カウント値はウインドウ内の視差0の発生回数にスキューまたは バイアスされる。このようにして、タイは低い方の視差数に向かってスキューさ れる。他の実施形態においては、タイの場合において高い方の視差数に向かって スキューする。 ステップ938および947によって規定される第2の内側Zループを用いて 、最大視差カウントを決定する。最大視差カウントは、ウインドウ内の24個の ビン(他の場合においては、16個の視差のみを用いるので16個のビンのみを 比較する)中の個々のカウント値を比較することによって決定される。最悪の場 合のカウントは、7×7のウインドウについて単一の視差が49回発生すること である(16進数記述=31)。Z=0〜5について、ステップ939から94 6を行う。所与のZについて、ステップ939から942は、sum_Zの様々 なビンが極値より大きいか否かを決定する。もしそうであれば、極値指標を、最 大カウント視差値の極値指標によって置き換え、極値は適切なビンのsum_Z によって置き換えられる。このようにして、極値指標は、最大のカウントを有す る視差によって表され、極値は最大の発生した視差回数のカウント(単数または 複数)または量(特定の視差がウインドウ中において現れる回数)によって表さ れる。 ステップ939において、もしsum_Zの一番左のMSBビンが極値より大 きければ、ステップ943は、極値指標を4*Zで置き換えることを要求する。 極値はまた、sum_Zの一番左のMSBビンによって置き換えられる。次にプ ログラムはステップ940に進み、新しく更新された極値指標および極値により 次の比較を行う。ステップ939の評価が「NO」であれば、現在の極値指標お よび極値は更新されず、ステップ940において次の比較に用いられる。 ステップ940において、sum_Zの左から2番目のMSBビンが極値より 大きければ、ステップ944は極値指標が4*Z+1によって置き換えられるこ とを要求する。また極値も、sum_Zの左から2番目のMSBビンによって置 き換えられる。プログラムは次にステップ941に進み、新しく更新された極値 指標および極値により次の比較を行う。ステップ940の評価が「NO」であれ ば、現在の極値指標および極値は更新されず、ステップ941において次の比較 に用いられる。 ステップ941において、sum_Zの左から3番目のMSBビンが極値より 大きければ、ステップ945は極値指標が4*Z+2によって置き換えられるこ とを要求する。また極値も、sum_Zの左から3番目のMSBビンによって置 き換えられる。プログラムは次にステップ942に進み、新しく更新された極値 指標および極値により次の比較を行う。ステップ941の評価が「NO」であれ ば、現在の極値指標および極値は更新されず、ステップ942において次の比較 に用いられる。 ステップ942において、sum_ZのLSBビンが極値より大きければ、ス テップ946は極値指標が4*Z+3によって置き換えられることを要求する。 また極値も、sum_ZのLSBビンによって置き換えられる。プログラムは次 に、ステップ947に進み、新しく更新された極値指標および極値により次の比 較を行う。ステップ942の評価が「NO」であれば、現在の極値指標および極 値は更新されず、Zをインクリメントした後にステップ947において次の比較 に用いられる。 極値を用いて比較を行い、比較により現在の極値より大きいsum_Z値が得 られた場合に極値指標および極値を更新するこの第2のZループは、全てのZ値 についてループし続ける(0〜5)。最終結果として、ウインドウ内で見いださ れる他の全ての最適視差中において最大のカウントを有する特定の視差数(すな わちd=0、1、2、...またはD−1)を保持する極値指標および、実際の カウントそのものを保持する極値が得られる。全てのsum_Zを全てのZにつ いて比較した後、極値指標結果アレイ[x][y]は、ステップ948に示すように極 値指標を対応する位置に格納する。 プログラムはステップ949に進み、システムに、同じ行の次の列中の次参照 ポイントを、あるいは現在の参照ポイントが行の最後の列に位置している場合は 次の行の初めの次参照ポイントを、システムに選択させる。そして、新しい参照 ポイントについての同じモードフィルタ計算を行う。モードフィルタ演算のこの 部分は、ステップ950において終了する。 5.領域6 図42は、領域6についてのモードフィルタの一実施形態のフローチャートを 示している。領域6において、演算は領域5のものと同様であるが、今度は、ウ インドウ幅の列数だけ左に位置する列合計を、対象ウインドウ合計から引算する ことができる。完全なウインドウ合計もまた利用可能である。従って、この領域 において視差一貫性を決定することができる。プログラムはステップ952から 開始する。 モードフィルタウインドウ、より具体的にはモードフィルタウインドウ中の参 照イメージ要素が領域6に位置している場合、ステップ953および969は、 行中を列単位で進むことにより各行および列について以下のモードフィルタ計算 を実行することを要求し、もしモードフィルタウインドウの参照ポイントが行の 終わりに到達した場合は、参照ポイントは次の行の初めに移動する。 ステップ954では、モードフィルタウインドウ内の極値指標アレイ[x][y]か ら視差データを取り込む。ステップ955において、カウントビット(単数また は複数)を、実質的に列合計である視差カウント[x+Z]中の各視差カウントビン に、モードフィルタウインドウ中の各視差の発生に基づいて加算する。カウント ビット(単数または複数)は、特定の視差がモードフィルタウインドウ内におけ る極値指標アレイ中に現れる回数を表す。これらのカウントビットは、枠971 内に示されるように、適切な視差カウント[x+Z]ビン中に置かれる。 ステップ956において、内側Zループ(1対の視差についての相関データの 処理の説明のために図21〜27を参照して上述した相関合計および視差最適化 スキームにおいて用いた「z」ループとは区別される)を行う。0から5の各Z について、領域6は、モードフィルタウインドウsum_Zを更新する。第1に 、現在の参照ポイントよりウインドウ幅だけ左に位置する列合計を現在のウイン ドウ合計から引算する。この結果、視差カウント[x+Z-モードフィルタウインド ウ幅]がsum_Zから減算される。第2に、現在の列合計(視差カウント[x+Z] である)をモードフィルタウインドウsum_Zの現在の値に加算する。この時 点において、ウインドウ中で表される全ての視差の完全なウインドウ合計が利用 可能になる。 ステップ957ではまず、極値指標を0に設定し(ここで、Z=0について4* Z=0である)、極値を一番左のMSBビンのウインドウsum_Zに設定す る。これにより、最大カウントを有する視差が視差0に向かってスキューまたは バイアスされ、カウント値はウインドウ内の視差0の発生回数にスキューまたは バイアスされる。このようにして、タイは低い方の視差数に向かってスキューさ れる。他の実施形態においては、タイの場合において高い方の視差数に向かって スキューする。 ステップ958および967によって規定される第2の内側Zループを用いて 、最大視差カウントを決定する。最大視差カウントは、ウインドウ内の24個の ビン(他の場合においては、16個の視差のみを用いるので16個のビンのみを 比較する)中の個々のカウント値を比較することによって決定される。Z=0〜 5について、ステップ959から966を行う。所与のZについて、ステップ9 59から962は、sum Zの様々なビンが極値より大きいか否かを決定し、 各決定につき、領域5のモードフィルタ計算について説明した通りの結果を決定 する。 ステップ959において、もしsum_Zの一番左のMSBビンが極値より大 きければ、ステップ963は、極値指標を4*Zで置き換えることを要求する。 極値はまた、sum_Zの一番左のMSBビンによって置き換えられる。次にプ ログラムはステップ960に進み、新しく更新された極値指標および極値により 次の比較を行う。ステップ959の評価が「NO」であれば、現在の極値指標お よび極値は更新されず、ステップ960において次の比較に用いられる。 ステップ960において、sum_Zの左から2番目のMSBビンが極値より 大きければ、ステップ964は極値指標が4*Z+1によって置き換えられるこ とを要求する。また極値も、sum_Zの左から2番目のMSBビンによって置 き換えられる。プログラムは次にステップ961に進み、新しく更新された極値 指標および極値により次の比較を行う。ステップ960の評価が「NO」であれ ば、現在の極値指標および極値は更新されず、ステップ961において次の比較 に用いられる。 ステップ961において、sum_Zの左から3番目のMSBビンが極値より 大きければ、ステップ965は極値指標が4*Z+2によって置き換えられるこ とを要求する。また極値も、sum_Zの左から3番目のMSBビンによって置 き換えられる。プログラムは次にステップ962に進み、新しく更新された極値 指標および極値により次の比較を行う。ステップ961の評価が「NO」であれ ば、現在の極値指標および極値は更新されず、ステップ962において次の比較 に用いられる。 ステップ962において、sum_ZのLSBビンが極値より大きければ、ス テップ966は極値指標が4*Z+3によって置き換えられることを要求する。 また極値も、sum_ZのLSBビンによって置き換えられる。プログラムは次 に、ステップ967に進み、新しく更新された極値指標および極値により次の比 較を行う。ステップ962の評価が「NO」であれば、現在の極値指標および極 値は更新されず、Zをインクリメントした後にステップ967において次の比較 に用いられる。 極値を用いて比較を行い、比較により現在の極値より大きいsum_Z値が得 られた場合に極値指標および極値を更新するこの第2のZループは、全てのZ値 についてループし続ける(0〜5)。最終結果として、ウインドウ内で見いださ れる他の全ての最適視差中において最大のカウントを有する特定の視差数(すな わちd=0、1、2、...またはD−1)を保持する極値指標および、実際の カウントそのものを保持する極値が得られる。全てのsum_Zを全てのZにつ いて比較した後、極値指標結果アレイ[x][y]は、ステップ968に示すように極 値指標を対応する位置に格納する。 プログラムはステップ969に進み、システムに、同じ行の次の列中の次参照 ポイントを、あるいは現在の参照ポイントが行の最後の列に位置している場合は 次の行の初めの次参照ポイントを、システムに選択させる。そして、新しい参照 ポイントについての同じモードフィルタ計算を行う。モードフィルタ演算のこの 部分は、ステップ970において終了する。 6.領域7および8 図43は、領域7および8についてのモードフィルタの一実施形態のフローチ ャートを示している。演算は領域3および4のものと同様であるが、今度は、同 じ列中の現在の参照ポイントからモードフィルタウインドウ高さだけ上に位置す るイメージポイントについての単一視差発生回数を、視差カウント[x+Z](モー ドフィルタ列合計である)内の値から減算しなければならない。この単一視差発 生回数は、全てのZについての視差カウント[x+Z]のビンのうち1つ中の単一の ビットである。領域7において、完全な列合計が利用可能であるため、モードフ ィルタウインドウsum_Zを初期化する。領域8において、モードフィルタウ インドウsum_Zを累積する。ただし、両領域において、フルのモードフィル タウインドウsum_Zはまだ利用可能ではない。プログラムはステップ972 から開始する。 モードフィルタウインドウ、より具体的にはモードフィルタウインドウ中の参 照イメージ要素が領域7または8に位置している場合、ステップ973および9 78は、行中を列単位で進むことにより各行および列について以下のモードフィ ルタ計算を実行することを要求し、もしモードフィルタウインドウの参照ポイン トが行の終わりに到達した場合は、参照ポイントは次の行の初めに移動する。 ステップ974では、極値指標アレイ[x][y-モードフィルタウインドウ高さ] 中に位置する視差カウント[x+Z]から1ビットを減算する。極値指標アレイ[x][y -モードフィルタウインドウ高さ]中において見いだされる特定の視差数に基づき 、単一のカウントまたはビットを、視差数に対応する視差カウント[x+Z]中のビ ンから減算する。このようにして、位置極値指標アレイ[x][y-モードフィルタウ インドウ高さ]に対応するイメージ要素に対して視差6が最適であることが見い だ された場合、視差最適化プログラムは、値6(視差6を表す)を、この位置にお いて極値指標アレイに格納する。このようにして、視差カウント[x+1]の3番目 のMSBビンからの1ビットを、現在そのビンにおいて見いだされる値(すなわ ちカウント)から減算する。 ステップ975において、モードフィルタウインドウ内の極値指標アレイ[x][ y]から視差データを取り込む。ステップ976において、カウントビット(単数 または複数)を、実質的に列合計である視差カウント[x+Z]中の各視差カウント ビンに、モードフィルタウインドウ中の各視差の発生に基づいて加算する。カウ ントビット(単数または複数)は、特定の視差がモードフィルタウインドウ内に おける極値指標アレイ中に現れる回数を表す。これらのカウントビットは、枠9 80内に示されるように、適切な視差カウント[x+Z]ビン中に置かれる。 ステップ977において、内側Zループ(1対の視差についての相関データの 処理の説明のために図21〜27を参照して上述した相関合計および視差最適化 スキームにおいて用いた「z」ループとは区別される)を行う。0から5の各Z について、領域7は、モードフィルタウインドウsum_Zを初期化し、領域8 は、列合計(視差カウント[x+Z]である)をモードフィルタウインドウsum_ Zの現在の値に加算する。 プログラムはステップ978に進み、システムに、同じ行の次の列中の次参照 ポイントを、あるいは現在の参照ポイントが行の最後の列に位置している場合は 次の行の初めの次参照ポイントを、システムに選択させる。そして、新しい参照 ポイントについての同じモードフィルタ計算を行う。モードフィルタ演算のこの 部分は、ステップ979において終了する。 7.領域9 図44は、領域9についてのモードフィルタの一実施形態のフローチャートを 示している。領域9において、演算は領域5のものと同様であるが、今度は、同 じ列中の現在の参照ポイントからモードフィルタウインドウ高さだけ上に位置す るイメージポイントについての単一視差発生回数を、視差カウント[x+Z](モー ドフィルタ列合計である)内の値から減算しなければならない。この単一視差発 生回数は、全てのZについての視差カウント[x+Z]のビンのうち1つ中の単一の ビットである。完全なウインドウ合計もまた利用可能である。従って、この領域 において視差一貫性を決定することができる。プログラムはステップ981から 開始する。 モードフィルタウインドウ、より具体的にはモードフィルタウインドウ中の参 照イメージ要素が領域9に位置している場合、ステップ982および999は、 行中を列単位で進むことにより各行および列について以下のモードフィルタ計算 を実行することを要求し、もしモードフィルタウインドウの参照ポイントが行の 終わりに到達した場合は、参照ポイントは次の行の初めに移動する。 ステップ983では、極値指標アレイ[x][y-モードフィルタウインドウ高さ] 中に位置する視差カウント[x+Z]から1ビットを減算する。極値指標アレイ[x][y -モードフィルタウインドウ高さ]中において見いだされる特定の視差数に基づき 、単一のカウントまたはビットを、視差数に対応する視差カウント[x+Z]中のビ ンから減算する。 ステップ984では、モードフィルタウインドウ内の極値指標アレイ[x][y]か ら視差データを取り込む。ステップ985において、カウントビット(単数また は複数)を、実質的に列合計である視差カウント[x+Z]中の各視差カウントビン に、モードフィルタウインドウ中の各視差の発生に基づいて加算する。カウント ビット(単数または複数)は、特定の視差がモードフィルタウインドウ内におけ る極値指標アレイ中に現れる回数を表す。これらのカウントビットは、枠100 1内に示されるように、適切な視差カウント[x+Z]ビン中に置かれる。 ステップ986において、内側Zループ(1対の視差についての相関データの 処理の説明のために図21〜27を参照して上述した相関合計および視差最適化 スキームにおいて用いた「z」ループとは区別される)を行う。0から5の各Z について、領域9は、現在の列合計(視差カウント[x+Z]である)をモードフ ィルタウインドウsum_Zの現在の値に加算することによって、モードフィル タウインドウsum_Zを更新する。この時点において、ウインドウ中で表され る全ての視差の完全なウインドウ合計が利用可能になる。 ステップ987ではまず、極値指標を0に設定し(ここで、Z=0について4* Z=0である)、極値を一番左のMSBビンのウインドウsum_Zに設定す る。これにより、最大カウントを有する視差が視差0に向かってスキューまたは バイアスされ、カウント値はウインドウ内の視差0の発生回数にスキューまたは バイアスされる。このようにして、タイは低い方の視差数に向かってスキューさ れる。他の実施形態においては、タイの場合において高い方の視差数に向かって スキューする。 ステップ988および997によって規定される第2の内部Zループを用いて 、最大視差カウントが決定される。最大視差カウントは、ウィンドウ内の24個 のビンの個々のカウント値を比較することによって決定される(他の場合では、 16個の視差のみが用いられるため16個のビンのみが比較される)。Z=0〜 5に対してステップ988〜997が実行される。所与のZに対して、ステップ 989〜996は、sum_Zのそれぞれのビンが極値、および領域5のモード フィルタ計算に関連して上述したようにいずれかの決定から生じる結果より大き いかどうかを決定する。 ステップ989で、sum_Zの最左端のMSBビンが極値より大きい場合は 、ステップ993で、極指数を4*Zに置き換える必要がある。極値もまたsu m_Zの最左端のMSBビンに置き換えられる。プログラムは次にステップ99 0に進み、新しく更新された極指数および極値によって次の比較を行う。ステッ プ989で「いいえ」と評価された場合は、現在の極指数および極値は更新され ず、ステップ990での次の比較のために使用され得る。 ステップ990で、sum_Zの最左端から2番目のMSBビンが極値より大 きい場合は、ステップ994で極指数を4*Z+1に置き換える必要がある。極 値もまたsum_Zの最左端から2番目のMSBビンに置き換えられる。プログ ラムは次にステップ991に進み、新しく更新された極指数および極値によって 次の比較を行う。ステップ990で「いいえ」と評価された場合は、現在の極指 数および極値は更新されず、ステップ991での次の比較のために使用され得る 。 ステップ991で、sum_Zの最左端から3番目のMSBビンが極値より大 きい場合は、ステップ995で極指数を4*Z+2に置き換える必要がある。極 値もまたsum_Zの最左端から3番目のMSBビンに置き換えられる。プログ ラムは次にステップ992に進み、新しく更新された極指数および極値によって 次の比較を行う。ステップ991で「いいえ」と評価された場合は、現在の極指 数および極値は更新されず、ステップ992での次の比較のために使用され得る 。 ステップ992で、sum_ZのLSBビンが極値より大きい場合は、ステッ プ996で極指数を4*Z+3に置き換える必要がある。極値もまたsum_Z のLSBビンに置き換えられる。プログラムは次にステップ997に進み、Zを インクリメントし、新しく更新された極指数および極値によって次の比較を行う 。ステップ992で「いいえ」と評価された場合は、現在の極指数および極値は 更新されず、ステップ997でZをインクリメントした後、次の比較のために使 用され得る。 極値との比較を行って、比較により現在の極値より大きなsum_Z値が得ら れる場合は極指数および極値を更新するこの第2のZループは、すべてのZ値( 0〜5)に対してループを続ける。この最終結果には、ウィンドウ内で見いださ れるすべての他の最適視差のうちで最大のカウントを有する特定の視差番号(す なわち、d=0,1,2,...またはD−1)を保持する極指数、および実際 のカウント自体を保持する極値が得られる。すべてのZに対してすべてのsum _Z値が比較されると、ステップ998に示すように、極指数結果アレイ[x] [y]は、対応する位置に極指数を格納する。 プログラムはステップ999に進み、ここでシステムに、同じ行の次の列の次 の参照ポイントを、または現在の参照ポイントがその行の最後の列に位置する場 合は、次の行の先頭を選択するように指示する。次に、新しい参照ポイントのた めのモードフィルタ計算が行われる。モードフィルタ演算のこの部分はステップ 1000で終了する。 8.領域10 図45は、領域10のためのモードフィルタの1つの実施形態のフローチャー トを示す。演算は領域6および9の演算と同様であるが、この場合はアルゴリズ ムの一般的な場合が喚起されるという点で異なる。この場合は、演算は以下のも のを含む。すなわち、同じ列の上方の1つのウィンドウの最右上端を列合計から 減算すること、現在の参照イメージ要素を列合計に加算すること、ウィンドウ幅 の列だけ左に位置する列の合計をウィンドウ合計から減算すること、および現在 の変更された列合計を変更されたウィンドウ合計に加算することを含む、完全な ウィンドウ合計もまた得られる。従って、この領域では視差の一貫性が決定され 得る。プログラムはステップ1002で開始される。 モードフィルタウィンドウ、より詳しくはモードフィルタウィンドウ内の参照 イメージ要素が領域10内に位置する場合は、ステップ1003および1020 で、行内を列毎に進むことによって、各行および列に対して以下のモードフィル タ計算を実行する必要がある。モードフィルタウィンドウの参照ポイントが行の 終わりに到着した場合は、参照ポイントは次の行の先頭に移動する。 ステップ1004は、極指標アレイ[x][y−モードフィルタウィンドウ高 さ]内に位置する視差カウント[x+Z]から1ビットを減算する。極指標アレ イ[x][y−モードフィルタウィンドウ高さ]内に見いだされる特定の視差番 号に基づいて、視差番号に対応する視差カウント[x+Z]のビンから単一カウ ントまたはビットが減算される。 ステップ1005は、モードフィルタウィンドウ内の極指標アレイ[x][y ]から視差データを取り出す。ステップ1006は、モードフィルタウィンドウ 内での各視差の出現に基づいて、実質的に列合計である、視差カウント[x+Z ]における各視差カウントビンにカウントビットを加算する。カウントビットは 、特定の視差がモードフィルタウィンドウ内の極指数アレイに現れる回数を表す 。これらのカウントビットは、ボックス1022に示すように、適切な視差カウ ント[x+Z]内に置かれる。 内部Zループ(一対の視差に対する相関データの処理について述べるために図 21〜27に関連して上述した相関合計および視差最適化方法で使用される「z 」ループとは区別される)はステップ1007で行われる。0〜5の各Zに対し て、領域10はモードフィルタウィンドウsum_Zを更新する。先ず、現在の 参照ポイントよりウィンドウ幅だけ左に位置する列合計を現在のウィンドウ合計 から減算する。従って、視差カウント「x+Z−モードフィルタウィンドウ幅] の値がsum_Zから減算される。第2に、視差カウント[x+Z]である 現在の列合計が、モードフィルタウィンドウsum_Zの現在の値に加算される 。この時点で、ウィンドウ内で表されるすべての視差の完全なウィンドウ合計が 得られる。 ステップ1008は、先ず極指標を0に設定する。Z=0に対しては4*Z= 0である。そして、極値を、最左端のMSBビンのウィンドウsum_Zに設定 する。これにより、最大カウントを有する視差が、視差0に向かってスキューさ れまたはバイアスされ、カウント値がウィンドウ内の視差0の出現数に設定され る。従って、連なりは、より低い視差番号に向かってスキューされる。他の実施 形態では、スキューの連なりは、より高い視差番号に向かう。 ステップ1009および1018によって規定される第2の内部Zループを用 いて、最大視差カウントが決定される。最大視差カウントは、ウィンドウ内の2 4個のビンの個々のカウント値を比較することによって決定される(場合によっ ては、16個の視差のみが用いられるため16個のビンのみが比較される)。Z =0〜5に対して、ステップ1009〜1018が実行される。所与のZに対し て、ステップ1010〜1017は、sum_Zのそれぞれのビンが極値、およ び領域5のモードフィルタ計算に関連して上述したようにいずれかの決定から生 じる結果より大きいかどうかを決定する。 ステップ1010で、sum_Zの最左端のMSBビンが極値より大きい場合 は、ステップ1014で極指数を4*Zに置き換える必要がある。極値もまたs um_Zの最左端のMSBビンに置き換えられる。プログラムは次にステップ1 011に進み、新しく更新された極指数および極値によって次の比較を行う。ス テップ1010で「いいえ」と評価された場合は、現在の極指数および極値は更 新されず、ステップ1011で次の比較のために使用され得る。 ステップ1011で、sum_Zの最左端から2番目のMSBビンが極値より 大きい場合は、ステップ1015で極指数を4*Z+1に置き換える必要がある 。極値もまたsum_Zの最左端から2番目のMSBビンに置き換えられる。プ ログラムは次にステップ1012に進み、新しく更新された極指数および極値に よって次の比較を行う。ステップ1011で「いいえ」と評価された場合は、現 在の極指数および極値は更新されず、ステップ1012での次の比較のために使 用 され得る。 ステップ1012で、sum_Zの最左端から3番目のMSBビンが極値より 大きい場合は、ステップ1016で極指数を4*Z+2に置き換える必要がある 。極値もまたsum_Zの最左端から3番目のMSBビンに置き換えられる。プ ログラムは次にステップ1013に進み、新しく更新された極指数および極値に よって次の比較を行う。ステップ1012で「いいえ」と評価された場合は、現 在の極指数および極値は更新されず、ステップ1013での次の比較のために使 用され得る。 ステップ1013で、sum_ZのLSBビンが極値より大きい場合は、ステ ップ1017で極指数を4*Z+3に置き換える必要がある。極値もまたsum _ZのLSBビンに置き換えられる。プログラムは次にステップ1018に進み 、Zをインクリメントし、新しく更新された極指数および極値によって次の比較 を行う。ステップ1013で「いいえ」と評価された場合は、現在の極指数およ び極値は更新されず、ステップ1018でZをインクリメントした後、次の比較 のために使用され得る。 極値との比較を行って、比較の結果、sum Z値が現在の極値より大きい場 合は極指数および極値を更新するこの第2のZループは、すべてのZ値(0〜5 )に対してループを続ける。この最終結果として、ウィンドウ内で見いだされる すべての他の最適視差のうちで最大カウントを有する特定の視差番号(すなわち 、d=0,1,2,...またはD−1)を保持する極指数、および実際のカウ ント自体を保持する極値が得られる。すべてのsum_Z値がすべてのZに対し て比較されると、ステップ1019に示すように、極指数結果アレイ[x][y ]は、対応する位置に極指数を格納する。 プログラムはステップ1020に進み、ここでシステムに、同じ行の次の列の 次の参照ポイント、または現在の参照ポイントがその行の最後の列に位置する場 合は、次の行の先頭を選択するように指示する。次に、新しい参照ポイントに対 して同じモードフィルタ計算が行われる。モードフィルタ演算のこの部分はステ ップ1021で終了する。 IV.ハードウェア実装 A.演算要素アレイ 本発明のハードウェア実装に戻ると、本明細書で述べる対応アルゴリズムは、 マイクロプロセッサベースのコンピュータシステム、様々なFPGAを用いる再 構成可能演算システム、アプリケーション特異的集積回路(ASIC)実装、お よびカスタム集積回路の実装を含む様々な実施形態で実現され得る。特に、AS ICおよびカスタム集積回路の実装は、本発明のデータ処理システムの大量生産 を促進させる。ステレオビジョン演算のためのイメージ処理への適用可能性とは 別に、本発明のハードウェアの局面は、データの組を処理してこれらの関連性を 決定するいかなるアルゴリズムにも適用され得る。本明細書でのハードウェア実 装の教示により、当業者であれば本発明を様々なハードウェア形態に容易に拡張 させ得る。 以下に述べるいくつかの図面はクロックソースを図示してはいないが、本発明 を実行するためにクロックソースをどのようの組み込むかについては、当業者に とっては既知であろう。実際において、デジタルデータを処理するためにレジス タおよびデジタルロジックを使用することは、クロック信号が利用可能であるこ とを示唆している。 イメージ処理において、図46は、本発明のハードウエアシステムの1つの実 施形態を示す。同図では、FPGA、SRAM、コネクタ、データパスユニット 、クロックユニット、PCIインタフェース要素、および様々なバスよりなる4 ×4アレイ1100が、配分トーラス構成で配置される。FPGAは、他の要素 からのサポートにより、センサスベクトルを発生させ、各データの組の各要素に 対する相関を決定する。この特定の実施形態は再構成システムを示しているが、 他の実施形態は必ずしも再構成可能であるとは限らない。実際において、いくつ かの実施形態は非FPGAハードウェア構成要素を利用する。さらに他の実施形 態はASIC形態である。 様々な実施形態において、本発明は、データを並列パイプライン方式で処理し 、これにより異なる時間からの多数の異なるイメージデータを同時に処理するこ とができる。実際において、本システムの処理データは圧縮されているため、効 率 およびスループットが促進される。従って、各イメージ内の各ラインのためのイ メージデータがシステムに供給され、システムは次にセンサスベクトルを演算し 発生させ、相関を決定する。相関については、左右カメラからのイメージデータ 対が同時に処理される。このとき、一方のイメージの各イメージ要素が、各サー チウィンドウ内の他方のイメージの各イメージ要素と比較される。以下の原理お よび実現可能な記述は、本発明のハードウェアの局面に対して用いられる形態に 関係なく適用される。 1つの実施形態では、配分トーラス構成で配置された16個のFPGAおよび 16個のSRAMの特定の均一なアレイが、演算要素の4×4二次元アレイとな る。4×4アレイは、列A、B、CおよびDならびに行0、1、2および3を含 む。4×4アレイは、コラムAに演算要素1101、1102、1103および 1104を、コラムBに演算要素1105、1106、1107および1108 を、コラムCに演算要素1109、1110、1111および1112を、そし てコラムDに演算要素1113、1114、1115および1116を含む。ア レイはまた、コラムAにメモリ要素1121〜1124、コラムBにメモリ要素 1125〜1128、コラムCにメモリ要素1129〜1132、そしてコラム Dにメモリ要素1133〜1136を含む。演算要素の部分制御のために、アレ イはクロックユニット1120およびデータパスユニット1138を含む。PC Iバスシステム1139へのインタフェースのために、PCIインタフエース1 233が配備される。 1つの実施形態では、アレイは、周線4の円筒メッシュ状に接続された4個の 演算要素(例えばFPGA)およびメモリ要素よりなる4つの列として考えられ 得る。円筒の中心軸は垂直である。垂直軸に沿ってアレイの演算要素が互いに接 続される。列Aでは、演算要素1101はコネクタ/バス1221を介して演算 要素1102に接続され、演算要素1102はコネクタ/バス1222を介して 演算要素1103に接続され、演算要素1103はコネクタ/バス1223を介 して演算要素1104に接続され、そして演算要素1104は、コネクタ114 0および1144を介してまたは要素間のケーブルを介して、列の先端の演算要 素1101に接続される。列Bでは、演算要素1105はコネクタ/バス122 4を介して演算要素1106に接続され、演算要素1106はコネクタ/バス1 225を介して演算要素1107に接続され、演算要素1107はコネクタ/バ ス1226を介して演算要素1108に接続され、そして演算要素1108は、 コネクタ1141および1145を介してまたは要素間のケーブルを介して、列 の先端の演算要素1105に接続される。列Cでは、演算要素1109はコネク タ/バス1227を介して演算要素1110に接続され、演算要素1110はコ ネクタ/バス1228を介して演算要素1111に接続され、演算要素1111 はコネクタ/バス1229を介して演算要素1112に接続され、そして演算要 素1112は、コネクタ1142および1146を介してまたは要素間のケーブ ルを介して、列の先端の演算要素1109に接続される。列Dでは、演算要素1 113はコネクタ/バス1230を介して演算要素1114に接続され、演算要 素1114はコネクタ/バス1231を介して演算要素1115に接続され、演 算要素1115はコネクタ/バス1232を介して演算要素1116に接続され 、そして演算要素1116は、コネクタ1143および1147を介してまたは 要素間のケーブルを介して、列の先端の演算要素1113に接続される。 アレイの演算要素はまた、水平アクセスに沿って互いに接続される。行0では 、演算要素1101はコネクタ/バス1174を介して演算要素1105に接続 され、演算要素1105はコネクタ/バス1175を介して演算要素1109に 接続され、演算要素1109はコネクタ/バス1176を介して演算要素111 3に接続され、そして演算要素1113は、コネクタ/バス1177および11 70を介して行の西側端部の演算要素1101に接続され得る。行1では、演算 要素1102はコネクタ/バス1178を介して演算要素1106に接続され、 演算要素1106はコネクタ/バス1179を介して演算要素1110に接続さ れ、演算要素1110はコネクタ/バス1180を介して演算要素1114に接 続され、そして演算要素1114は、コネクタ/バス1181および1171を 介して行の西側端部の演算要素1102に接続され得る。行2では、演算要素1 103はコネクタ/バス1182を介して演算要素1107に接続され、演算要 素1107はコネクタ/バス1183を介して演算要素1111に接続され、演 算要素1111はコネクタ/バス1184を介して演算要素1115に接続され 、そ して演算要素1115は、コネクタ/バス1185および1172を介して行の 西側端部の演算要素1103に接続され得る。行3では、演算要素1104はコ ネクタ/バス1186を介して演算要素1108に接続され、演算要素1108 はコネクタ/バス1187を介して演算要素1112に接続され、演算要素11 12はコネクタ/バス1188を介して演算要素1116に接続され、そして演 算要素1116は、コネクタ/バス1189および1173を介して行の西側端 部の演算要素1104に接続され得る。 他の要素が1つのポイントから別のポイントへのデータの伝送のみに使用され るのに対して、いくつかの演算要素はセンサスベクトルを発生させる。1つの実 施形態では、24個の視差が選択され、これによりサーチウィンドウは24個の ピクセルを含み、各ピクセル当たり24回の比較を行わなければならない。各比 較(すなわち単一の視差)は単一の相関ユニットで行われる。すなわち、各相関 ユニットは、特定の視差のために左センサスベクトルと右センサスベクトルとの 間の相関演算を行う。24個の視差すべてに対して相関結果を演算するためには 、24個の相関ユニットが必要である。これを実現するために、8個の演算要素 が配備される。従って、各演算要素には3個の相関ユニットが実装される。相関 ユニットについては、データフローについての記述に関連してさらに後述する。 特に、図57は各層間ユニットの内部ハードウェア実装を示す。 図46を続けて参照すると、水平軸上の演算要素の各対間にメモリ要素が配置 される。1つの実施形態では、メモリ要素は1MB×8ビットのオンチップSR AMであり、16個のSRAMにより16メガバイトのメモリが提供される。行 0では、メモリ要素1121はそれぞれコネクタ/バス1190および1191 を介して演算要素1101および1105の間に接続され、メモリ要素1125 はそれぞれコネクタ/バス1192および1193を介して演算要素1105お よび1109の間に接続され、メモリ要素1129はそれぞれコネクタ/バス1 194および1195を介して演算要素1109および1113の間に接続され 、そしてメモリ要素1133はそれぞれコネクタ/バス1196および1170 を介して演算要素1113および1101の間に接続される。行1では、メモリ 要素1122はそれぞれコネクタ/バス1197および1198を介して演算要 素 1102および1106の間に接続され、メモリ要素1126はそれぞれコネク タ/バス1199および1200を介して演算要素1106および1110の間 に接続され、メモリ要素1130はそれぞれコネクタ/バス1201および12 02を介して演算要素1110および1114の間に接続され、そしてメモリ要 素1134はそれぞれコネクタ/バス1203および1171を介して演算要素 1114および1102の間に接続される。行2では、メモリ要素1123はそ れぞれコネクタ/バス1204および1205を介して演算要素1103および 1107の間に接続され、メモリ要素1127はそれぞれコネクタ/バス120 6および1207を介して演算要素1107および1111の間に接続され、メ モリ要素1131はそれぞれコネクタ/バス1208および1209を介して演 算要素1111および1115の間に接続され、そしてメモリ要素1135はそ れぞれコネクタ/バス1210および1172を介して演算要素1115および 1103の間に接続される。行3では、メモリ要素1124はそれぞれコネクタ /バス1211および1212を介して演算要素1104および1108の間に 接続され、メモリ要素1128はそれぞれコネクタ/バス1213および121 4を介して演算要素1108および1112の間に接続され、メモリ要素113 2はそれぞれコネクタ/バス1215および1216を介して演算要素1112 および1116の間に接続され、そしてメモリ要素1136はそれぞれコネクタ /バス1217および1173を介して演算要素1116および1104の間に 接続される。 32ビットセンサス変換は、1サイクルでピクセルのためのセンサスベクトル を形成するために、9×9センサスウィンドウに対して8個のデータスキャンラ インを必要とする。FPGA演算要素は、各サイクルにおいてこれらのスキャン ラインのそれぞれから数個のピクセルにアクセスする必要がある。これは、数バ イトのメモリ読み出し、および変換ピクセル毎に変換当たり1回の書き込みに翻 訳される。8個の640ピクセルスキャンラインは1つのXC4025ではおさ まらないため、各変換演算は2つのFPGAで行われる。1つの実施形態では、 メモリ要素(例えばSRAM)は25ナノ秒(ns)サイクル時間および33M Hzのクロック速度を有する。この特定のSRAMサイクル時間により、イメー ジ処理システムアレイボードの33MHzクロック速度でメモリに読み出しまた は書き込みを行うことができる。しかし、読み出しから書き込みへの動作の変更 時には、本発明のこの特定の実施形態ではさらなる遅延が生じ、このため、33 MHzのクロック速度で読み出しおよび書き込み間をサイクリングすることは可 能ではない。ボードの持続読み出しまたは書き込み帯域幅は、毎秒533メガバ イトである。他の実施形態では、異なるサイクル時間および異なるクロック速度 のSRAMが用いられる。特定のクロック速度およびメモリサイクル時間により 、本発明の精神および範囲が制限されるべきではない。 上述のように、FPGAは、各FPGAが2つの隣接するSRAMに接続する 配分トーラス形状で接続される。SRAMはFPGAに堅固に接続されるため、 すべてのSRAMは同時にアクセスされ得、メモリ帯域幅およびエンジン規則性 を最大限にすることができる。このイメージ処理システムでは、利用するエッジ 状態および外来資源の数が最小限ですむ。通常、演算中にエッジ状態が現れると 、特別なケースが必要となる。外来資源は、これらの演算資源にとって障害およ びボトルネックとなる。イメージ処理システムを通じて資源、例えばSRAM資 源を均一に配分することによって、汎用演算において全体的なスループットが向 上し得る。さらに、翻訳の不変性を得ることができ、これによりあるFPGA構 成がFPGAのうちの1つで機能する場合は、これはアレイ内のFPGAのいず れにおいても機能し得る。メモリ帯域幅を大きくするためには、イメージ処理シ ステムは、各FPGAがメモリのそれ自体のメガバイトを局所的に制御し得るよ うに設計および実装される。各メモリは8ビット幅であり、33MHzで動作し 得、これにより500MB/秒を超えるピーク外部メモリ帯域幅が提供される。 PCIインタフェースユニット1137は、PCIバスシステム1139に接 続され、これにより本発明のイメージ処理システムが、ホストプロセッサ、ネッ トワーク、グラフィックス周辺機器、映像周辺機器、音声周辺機器、大規模記憶 装置、SCSIユニット、およびフレームグラバを含む多くのPCI互換システ ムと接続および通信することが可能となる。いくつかの実施形態では、PCIイ ンタフェースユニット1137は、演算要素に直接接続されない。代わりに、P CIインタフェースユニット1137はデータパスユニット1138に接続され 、 データパスユニット自体が様々な演算要素に接続される。他の実施形態では、図 46に示すように、PCIインタフェースユニット1137はまた、各列(すな わちA、B、CおよひD)の演算要素にも接続される。PCIインタフェース1 137は、コネクタ/バス1233を介して列Aに、コネクタ/バス1234を 介して列Bに、コネクタ/バス1235を介して列Cに、そしてコネクタ/バス 1236を介して列Dに接続される。これらのコネクタ/バス1233、123 4、1235および1236はアレイの中央バスの一部である。 同様に、アレイからホストコンピュータへの主データ接続部を制御して、64 ビットPCIバス延長部を管理するデータパスユニット1138は、PCIバス システム1139に接続される。PCIインタフェースユニット1137とデー タバスユニット1138とはまた、コネクタ/バス1237を介して互いに接続 される。いくつかの実施形態では、データパスユニット1138は、演算要素の 各列(すなわちA、B、CおよひD)に接続される。読み出し動作では、PCI バスからのデータは、PCIインタフェース1137を通して入力され、PCI インタフェースはデータパスユニット1138に通じている。データパスユニッ ト1138は、データがアレイ内の適切な演算要素に伝送されるように制御する 。書き込み動作では、アレイからのデータはデータパスユニット1138に入力 される。データパスユニットはデータをPCIインタフェースユニット1137 を介してPCIバスに伝送する。 アレイ内で起こる様々な並列処理のサイクリングを制御するために、クロック ユニット1120が配備される。クロックユニット1120は複数のクロック出 力a、b、c、dおよびpを有する。クロックユニット1120のポートaから 列Aの演算要素のポート1154、1155,1156および1157へのクロ ック信号は、クロックコネクタ/バス1150を介して送られる。クロックユニ ット1120のポートbから列Bの演算要素のポート1158、1159,11 60および1161へのクロック信号は、クロックコネクタ/バス1151を介 して送られる。クロックユニット1120のポートcから列Cの演算要素のポー ト1162、1163,1164および1165へのクロック信号は、クロック コネクタ/バス1152を介して送られる。クロックユニット1120のポート dから列Dの演算要素のポート1166、1167,1168および1169へ のクロック信号は、クロックコネクタ/バス1153を介して送られる。これら の異なるクロックラインは、クロック信号のスキューを補償するために配備され る。これは通常は高い周波数で生じる。しかし、ほとんどの部分では、クロック 信号は実質的に互いに類似している。 クロックユニット1120のポートpからPCIインタフェースユニット11 37およびデータパスユニット1138へのクロック信号は、コネクタ/バス1 220を介して送られる。いくつかの実施形態では、ライン1220に加えて、 クロック制御ユニット1120からPCIインタフェースユニット1137への 直接ラインが配備される。 アレイは垂直および水平コネクタを有する。各列の先端および末端の演算要素 はそれぞれ上部および下部にコネクタを有する。列Aはコネクタ1140および 1144を有し、これらはそれぞれコネクタ/バス1240および1244を介 して演算要素に接続される。列Bはコネクタ1141および1145を有し、こ れらはそれぞれコネクタ/バス1241および1245を介して演算要素に接続 される。列Cはコネクタ1142および1146を有し、これらはそれぞれコネ クタ/バス1242および1246を介して演算要素に接続される。列Dはコネ クタ1143および1147を有し、これらはそれぞれコネクタ/バス1243 および1247を介して演算要素に接続される。これらの垂直コネクタは、これ ら同士で接続されてトーラスを閉鎖するか、または別のイメージ処理システムボ ードに接続されて、4×8、4×12、8×8、またはいかなる数のアレイサイ ズへもアレイを拡張し得る。これらのコネクタはまた、各列をリング状に作成し て、トーラスを形成するか、または列を直列に接続して、南北軸に16要素より なるチェーンを形成し得る。多くの他の組み合わせも可能である。 アレイ自体は、ボードの縁周りを囲む水平接続部を有する。これらのコネクタ は垂直コネクタと同様に構成される。これらのコネクタはまた、周辺I/Oのた めのドーターカードをサポートする。 部分トーラス配置により、演算をアレイ内のいかなるサイトにも容易に再配置 することができる。これにより、アレイを横断する様々な演算の混合および整合 が柔軟に促進される。上述のように、トーラスは一次元に延長して、N個のボー ドを用いて4×4Nトーラスを形成し得る。アレイの各要素はその4つの隣接要 素への幅広い通信チャネルを有する。アレイ内の最右端チップの右エッジは最左 端チップの左エッジにトークして、水平方向のトーラスを形成する。アレイ内の すべての通信チャネルは、各要素の4つの最隣接要素間に存在する。通信チャネ ルは、26〜30個のアレイピンおよび8対の「スーパーピン」よりなる。スー パーピンについては後述する。これらの接続部は25〜50MHzで通信が可能 であり、これは16個の演算要素の各隣接対間で約100〜200MB/秒の直 接通信速度が得られることを意味する。 1つの実施形態では、演算要素はフィールドプログラマブルゲートアレイ(F PGA)である。本発明の1つの実施形態で用いられるFPGAの例としては、 Xilinx XC4025がある。XC4000、XC4000A、XC4000D、XC4000H、XC4000E、XC4000E X、XC4000LおよびXC4000XLを含むFPGAのXilinx XC4000シリーズが用いられ 得る。特定のFPGAとしては、Xilinx XC4005H、XC4025、およびXilinx XC402 8EXが含まれる。 XC4025FPGAについて以下に簡単に概要を述べる。各アレイ演算要素は、2 40ピンのXilinxチップとIMB×8ビットのスタティックRAM(SRAM) よりなる。Xilinx XC4025要素が配備されたアレイボードは約440,000個の構成可 能ゲートを含み、映像コンボルーションまたはステレオ視差アルゴリズムなどの 演算集中タスクを行い得る。Xilinx XC4025PFGAは、1024個の構成可能 ロジックブロック(CLB)よりなる。各CLBは、32ビットの非同期SRA M、または少数の汎用ブールロジック、および2つのストローブレジスタを実装 し得る。チップの周辺には、非ストローブI/Oレジスタが配備される。XC4025 の代わりにXC4005Hを用いてもよい。これは、120,000個の構成可能ゲートを有す る比較的低コストのアレイボードである。XC4005Hデバイスは、ハイパワーの2 4mAドライブ回路を有するが、標準XC4000シリーズの入出力フリップフロップ は配備されていない。チップ間のパイプライン動作のためには、FPGAアレイ の内部フリップフロップが代わりに用いられる。クロック配分、データ配分、お よびPCIバスインタフェースのために、3つの追加のFPGA、Xilinx 4013 FPGAが用いられる。PCIインタフェースユニットは、Xilinx標準から90 度回転される。これらのおよび他のXilinxFPGAについての詳細は、一般に入 手可能なデータシートを通して得ることができる。これらのデータシートは本明 細書において参考として援用されている。 Xilinx XC4000シリーズのFPGAの機能性は、構成データを内部メモリセル にロードすることによってカスタマイズされ得る。これらのメモリセルに格納さ れた値が、FPGA内でのロジック機能および相互接続を決定する。これらのF PGAの構成データはオンチップメモリに格納され得、外部メモリからロードさ れ得る。FPGAは外部の直列または並列PROMから構成データを読み出すか 、または構成データが外部装置からFPGAに書き込まれ得る。これらのFPG Aは、特にハードウェアがダイナミックに変更されるとき、またはユーザがハー ドウェアを異なるアプリケーションに適合させたいとき、無制限の回数で再プロ グラミングされ得る。 一般に、XC4000シリーズのFPGAは1024個までのCLBを有する。各C LBは2レベルのルックアップテーブル、ならびに2つの4入力ルックアップテ ーブル(または関数発生器FおよびG)および2つのフリップフロップまたはラ ッチを有する。4入力ルックアップテーブルは、入力のいくつかを第3の3入力 ルックアップテーブル(または関数発生器H)に供給する。これらのルックアッ プテーブルの出力は、これらのフリップフロップまたはラッチとは独立して駆動 され得る。CLBは、以下の任意のブール関数の組み合わせを実現し得る。すな わち、(1)4または5個の変数よりなる任意の関数、(2)4個の変数よりな る任意の関数、4個までの非関連変数よりなる任意の第2の関数、および3個ま での非関連変数よりなる任意の第3の関数、(3)4個の変数よりなる1つの関 数および6個の変数よりなる別の関数、(4)4個の変数よりなる任意の2つの 関数、ならびに(5)9個の変数よりなるいくつかの関数である。CLB入力を 登録するかまたはルックアップテーブル出力を格納するためには、2つのDタイ プフリップフロップまたはラッチが利用され得る。これらのフリップフロップは 、ルックアップテーブルとは独立して使用され得る。DINが、これらの2つの フリップフロップまたはラッチのうちのいずれか一方への直接入力として使用さ れ 得、H1が他方を、H関数発生器を介して駆動し得る。 CLBの各4入力関数発生器(すなわちFおよびG)は、繰り上げおよび桁下 げ信号を迅速に発生させるための専用の演算ロジックを含み、これは繰り入れ(c arry-in)および繰り出し(carry-out)を有する2ビット加算器を実現するように 構成され得る。これらの関数発生器はまた、読み出し/書き込みランダムアクセ スメモリ(RAM)として実現され得る。4入力ラインは、RAMのためのアド レスラインとして使用され得る。 1つの実施形態では、イメージ処理システムは、ボードを完全に構成するため に3レベルのブートストラッププロセスを必要とする。PCI−32チップは、 イメージ処理システムをPCIバスに直接接続する。このPCI−32チップは データパスおよびクロック制御チップをプログラムし、これらが次にアレイ全体 をプログラムする。PCI−32チップは、PCIバスにわたって構成ビットを 受け取ることができ、これらをデータパスおよびクロック制御チップに伝送する 。この多段階プロセスにより、アレイがどのようにプログラムおよびアクセスさ れるかを決定する際にランタイムに柔軟性が与えられる。ボード上のアレイ全体 は単一のFPGAとして同時にプログラムされ得る。単一のXilinx XC4025FP GAは、最高速度でプログラムするのに約50ミリ秒要する。本発明のアレイ全 体はこの速度でプログラムされ得、理論的には構成の上書きが可能である。 PCI−32チップはイメージ処理システム全体を制御し、イメージ処理シス テムの50ピンコネクタに接続されたXilinx Xcheckerケーブルと共に、または パワーアップ上の直列PROMと共にプログラムされ得る。Xchecker方式では、 設計を、ホストパーソナルコンピュータまたはワークステーションから容易に変 更、ダウンロード、または試験することができる。PCI−32チップの構成が 決定されると、直列PROMは、イメージ処理システムを高信頼性で迅速におよ び自動的にプログラムするように構成され得る。 クロック制御チップおよびデータパスチップが構成されると、クロック制御チ ップがアレイの残りの部分を構成し得る。クロック制御チップは、構成データを 、16ビットを同時に、16個のアレイチップ(FPGAおよびSRAM)のそ れぞれに1ビットづつ、直接アレイに送る。アレイが完全にプログラムされると 、 クロック制御チップはアレイ全体へのクロック配分を管理する。 アレイボードへのソフトウェア接続は、インタフェースライブラリを介して管 理される。このインタフェースにより、プログラムされる予定の各FPGAに対 してXilinXビットファイルを特定化する手段によってアレイボードの構成が可能 となる。FPGAが構成されると、ホストプロセッサからアレイボード上の任意 の列の中央接続部にデータの読み出しおよび書き込みを行うことが可能となる。 この読み出しおよび書き込みは、PCIバスを横断するマッピングされたメモリ により実現され、ライブラリコールを介して、または直接ポインタ割り付けを介 してサポートされる。 使用される設計ツールは主に、図解捕捉システムであるViewlogic Viewdrawお よびXilinx Xact位置およびルートソフトウェアである。 メモリ帯域幅の別のソースとしては、FPGA内の構成可能ロジックブロック (CLB)のオンチップSRAMがある。このメモリはFPGA内のメモリであ るため帯域幅を非常に高くすることができ、またアップ外部接続部を用いずに他 の構成要素に直接接続し得る。Xilinx XC4025の1つのCLBには32ビットし か格納することができず、従って、1024個のCLBよりなるFPGA全体は 4000バイトしか保持することができない。他の演算要素はもっと多くのビッ トを記憶することができるため、メモリ資源は本発明の様々な実施形態において 重要な制限ファクタとはならない。 対応アルゴリズムは、変換ベクトルがシステムのまわりを搬送され得るように 、相当な通信帯域幅を必要とする。1つの実施形態では、相関はハミング距離を 利用する。ハミング距離を合計するには相当なメモリ帯域幅が必要である。カメ ラのピクセルは、便宜的に、約12.5MHzで入力されると仮定され得、一方 、本発明は33MHzでそのバスおよび外部SRAMとインタフェースし得る。 ピクセルデータのためのストローブを用いるモデルが実現されている。これは、 多くて2クロックサイクル毎に1回ハイになり得る。この2段階方式により、ピ クセル毎に2回の通信および2回の外部SRAMアクセスが可能になる。 イメージ処理システムは、FPGAチップのためのHQ240フットプリント を用いる。Xilinx XC4028EXFPGAエンジンは、単一のPCIボード上の最大 50万個のゲートに接近する。さらに、PCIホストは2または3個のこのよう なイメージ処理システムを含みことができ、この結果、単一の標準パーソナルコ ンピュータに百万個以上の構成可能ゲートが可能になる。 本発明のいくつかの実施形態によるボックスフィルタリング動作のハードウェ アの面について以下に述べる。ボックスフィルタリングのハミング距離は、1本 の列合計スキャンラインを格納すること、およびピクセルクロック毎に1つの要 素の読み出しおよび書き込みを行うことを必要とする。これはまた、ピクセルク ロック毎に一度読み出しおよび書き込みが行われる、2 BOX_RADIUS+1行のハミン グ距離を必要とする。32ビットのセンサスを用いると、ハミング距離は32ま での範囲となり得る。しかし、ハミング距離に飽和しきい値を用いることによっ て、距離は4ビットに制限され得る。ハミング距離を合計するためには、サイク ル毎にデータの読み出しおよび書き込みを行う必要がする。しかし、外部SRA Mの読み出しから書き込みへの切り替えには1クロックサイクルが必要であるた め、システムはスキャンラインでのアクティブピクセル中に切り替えを行うゆと りはない。従って、システムは相関のためにFPGAのうちの8個を用いるが、 各FPGAは、読み出し用に1つ、書き込み用に1つの合計2つのSRAMを使 用する。2 BOX_RADIUS+1スキャンライン毎にこれらのメモリの役割が反転する。 B.アレイ内データフロー 図47は、イメージ処理システムのアレイ内でのデータフローを示し、図48 、図52,図54および図55は、センサス変換、相関演算、および左右一貫性 検査が並列して行われるときの、センサスベクトル発生器および相関ユニットを 通るイメージデータおよびセンサスベクトルの高レベルデータフロー図を示す。 図48、図49,図50および図51は、本発明のセンサスベクトル発生器の1 つの実施形態を示す。図57は、相関ユニットのハードウェア実装の1つの実施 形態を示す。これらの図は合わせて、本発明のイメージ処理システムのパイプラ インおよび並列動作を示す。 図47は、図46に関連して最初に紹介および記載したアレイにおけるデータ フローを示す。太い矢印は、アレイ1100におけるデータのフローを示す。左 側センサ/カメラおよび右側センサ/カメラが、フレームグラバ(図47には示 さず)を介してPCIバス1139に左右イメージデータ情報を供給する。PC Iインタフェース1137が(データパスユニット1138を介して)これらの 左右イメージデータを列AおよびCの演算要素に供給し、これらの演算要素で、 これらのイメージデータの各センサス変換ベクトルが演算および発生され、さら に格納および処理される。1つの実施形態では、PCIインタフェース1137 は、イメージデータの一方を、パス1300および1301を介して、センサス 変換が適用されるアレイ1100の列Aの演算要素1101および1102に供 給する。1つの実施形態では、このイメージデータは、左または右カメラのいず れかからのピクセルに対するものである。ピクセルデータが右カメラからのもの であると仮定すると、左カメラからの他方のイメージデータは横向きに、パス1 302および1303を介して列Cの演算要素1110に、およびパス1304 を介して演算要素1109に送られ、センサス変換が行われる。 いくつかの実施形態では、PCIインタフェースユニット1137は演算要素 に直接接続されない。代わりに、PCIインタフェースユニット1137はデー タパスユニット1138に接続され、データパスユニット自体が様々な演算要素 に接続される。いくつかの実施形態では、データパスユニット1138は演算要 素の各列(すなわちA、B、CおよびD)に接続される。読み出し動作では、P CIバスからのデータはPCIインタフェース1137を通って入力され、PC Iインタフェースはデータパスユニット1138に通される。データパスユニッ ト1138は、データがアレイの適切な演算要素に伝送されるように制御する。 書き込み動作では、アレイからのデータはデータパスユニット1138に入力さ れる。データパスユニットは、データをPCIインタフェースユニット1137 を介してPCIバスに伝送する。 列AおよびCそれぞれのこれらの上部2つの演算要素は、センサスデータを列 Bの演算要素1105に、演算要素1105の左右に配置されている16本のワ イヤを通して2倍の速度で出力する。列Aの演算要素1101および1102か らの右センサスデータは、パス1305を介して演算要素1105に送られ、列 Cの演算要素1109および1110からの左センサスデータは、パス1306 を介して同じ演算要素1105に送られる。 次に相関演算が行われる。列Bの演算要素1105は、水平軸に沿って両側に 配置されているメモリ要素1121および1125を用いて、3ステージの相関 アルゴリズムを行う。この時点からデータは列Bの残りの部分を下向きに流れ、 列Dの先端にケーブル接続され、列Dの末端へと下向きに進み、列Cの末端へと 横向きに進み、そして列Cに沿って上向きに中央バスに通される。中央バスで、 得られるデータはPCIインタフェース1137およびPCIバス1139を介 してホストシステムに送られる。このパスの相関部分の演算要素は、列Bの演算 要素1105、1106、1107および1108、ならびに列Dの演算要素1 113、1114、1115および1116を含む。パスのこの相関部分はパス 1307〜1315によって表される。 このパス1307〜1315内の各演算要素は、隣接メモリ要素を用いて、3 ステージの相関演算を行う。各ステージは、2つのセンサスベクトル間の相関決 定である。パス内の8個の演算要素では、24個のステージが、参照センサスベ クトルとその24個の視差との間の相関を表す。16個の視差の場合は、各演算 要素は、2ステージの相関演算を行うようにプログラムおよび構成される。もし くは、8個の演算要素は、任意の組み合わせの、D(すなわち視差)個のステー ジの相関演算を行い得る。演算要素のいくつかが、D個の視差の組全体に対する 相関合計を計算している限り、8個の演算要素すべてを相関演算に使用する必要 はない。 1つの実施形態では、32ビットセンサスベクトル対にとっては、2つの32 ビットセンサスベクトル間のハミング距離計算の最大数は32であり、値32が 生じることは恐らくないため、得られるデータは5ビットであり、このため、5 ビットで格納され得る値0〜31で十分であり得る。しかし、いくつかの実施形 態では、飽和しきい値を使用することによって、ハミング距離を表すために必要 とされるビットまたはワイヤライン数を減らすことができる。従って、7または 15より大きい任意のハミング距離はそれぞれ天井数7または15によって表さ れ得るため、必要とされるハミング距離は、5ビットではなく、3または4ビッ トでよい。この結果はパス1316〜1318を介して中央バスに渡される。こ のバスに沿った演算要素、すなわち演算要素1112および1111は送達媒体 として働く。 PCIインタフェースユニット1137はパス1319を介して結果を受け取 り、これをPCIバス1139に供給する。PCIバス上に供給されると、適切 なPCI媒体、通常はホストプロセッサおよびそのメモリがデータを読み出す。 FPGAを用いることにより、本発明のイメージ処理システムのアーキテクチ ャは、所望のロジック演算を実現するように設計され得る。適切なプログラミン グツールを用いることにより、これらのFPGA内のロジックブロック、および これらのロジックブロックとFPGAとの組み合わせは、センサスベクトルを発 生させ、本発明の相関演算を行うように構成され得る。 C.センサスベクトル発生器 図48〜図51は、本発明によるセンサスベクトル発生器の1つの実施形態を 示す。図48は、本発明によるセンサスベクトル発生器のハードウェア実装の1 つの実施形態の高レベルブロックブロック図を示す。同図は、単一イメージのた めのセンサスベクトル発生器を示す。言うまでもなく、2台のカメラから捕捉さ れる一対のイメージに対して、2台のこのようなセンサスベクトル発生器が配備 される。 このセンサスベクトル発生器は、イメージスキャンライン遅延要素と、センサ スウィンドウの実質的に上半分に位置するイメージ要素のための16ビットのセ ンサスベクトル発生器と、センサスウィンドウの実質的に下半分に位置するイメ ージ要素のための16ビットのセンサスベクトル発生器と、これら2台の16ビ ット発生器間の時間差を補償する遅延要素と、2つの個別の16ビット結果を組 み合わせて32ビットセンサスベクトルを発生させる連結器とを含む。連結器は 、単に連なることによって大きなバスを形成する一連のバスであり得る。連結器 は特定の装置を必要としない。代わりに、融合して大きなバスラインを形成する 数本のバスラインを表し得る。従って、例えば、一対の16ビット幅バスを互い に隣接させて配置し、大きな32ビットバスを形成する。 以下の記述では、センサスベクトル発生器は、センサスウィンドウ内の中央の 参照イメージ要素をセンサスウィンドウ内のこれを取り囲む他のイメージ要素と 比較することによって、32ビットセンサスベクトルを発生させ得る。比較のた めに選択される特定のイメージ要素は図7に示すものである。図7では、最初の 32ビットセンサスベクトルの発生における(x,y)は(5,5)である。し かし、以下の教示を考慮すれば、当業者であれば、センサスウィンドウ内の他の イメージ要素を比較のために選択するように、後述する回路を操作し得る。すな わち、センサスウィンドウ内の異なるポイント組を用いて32ビットセンサスベ クトルを発生させることができる。 センサスベクトル発生器は、イメージデータをライン1600を介して直列に 受け取り、32ビットセンサスベクトルをライン1637に出力する。イメージ データは直列に入力されるが、センサスウィンドウの異なるライン上のこれらの イメージデータは並列に処理される。9×9のセンサスウィンドウでは、9本の ライン上の選択イメージ要素は、センサスウィンドウがイメージを通って移動す るとき、各中央イメージ要素に対する32ビットセンサスベクトルを発生させる ように処理されなければならない。9本のラインすべてのイメージデータが16 ビットセンサスベクトル発生器1611および1612で実質的に同時に処理さ れるのを確実にするために、適切な遅延要素1601〜1608が配備される。 すなわち、各ライン(L1〜L9)のためのイメージデータが、これらの16ビ ットセンサスベクトル発生器1611および1612に実質的に並列に入力され る。これらの9本のライン(L1〜L9)のためのイメージデータは並列に入力 されるため、32ビットセンサスベクトルは、実質的に新しいピクセルのイメー ジデータがこの32ビットセンサスベクトル発生器に入る毎に発生され得る。そ のイメージの特定のラインに対して最後のセンサスベクトルが発生された後は、 IMAGE DATA INライン1600に沿って次のピクセルのイメージデータを受け取 ることにより、ラインL1〜L9はライン2〜10の先頭からの最初のピクセル のイメージデータを含む結果となる。従って、これは、センサスウィンドウが次 のラインの先頭にシフトしこれにより中央参照イメージ要素が変更することに対 応する。 このセンサスベクトルジェネレータは、8つの遅延要素1601〜1608を 有する。各遅延要素は、入力データを、1本の走査線の長さ分である320時間 単位だけ遅延させる。各遅延要素1601〜1608へのそれぞれの入力161 4〜1621は、その前の遅延要素の出力からくる。従って、ライン1600か らのイメージデータは、ライン1614を介して遅延要素1601に入る。遅延 要素1601は、遅延されたイメージデータをライン1615上に出力して、遅 延要素1602に送る。遅延要素1602は、遅延されたイメージデータをライ ン1616上に出力して、遅延要素1603に送る。遅延要素1603は、遅延 されたイメージデータをライン1617上に出力して、遅延要素1604に送る 。遅延要素1604は、遅延されたイメージデータを、ノード1634へのライ ン1627、ライン1618、およびライン1629上に出力する。以下、ノー ド1634について説明する。ライン1628および1618上のイメージデー タは、遅延要素1605に入力される。遅延要素1605は、遅延されたイメー ジデータをライン1619上に出力して、遅延要素1606に送る。遅延要素1 606は、遅延されたイメージデータを、ライン1620上に出力して、遅延要 素1607に送る。遅延要素1607は、遅延されたイメージデータをライン1 621上に出力して、遅延要素1608に送る。遅延要素1608は、イメージ データを、ライン1633上に出力して、16ビットセンサスベクトルジェネレ ータ1611に送る。 入力されるイメージデータはまた、介在する遅延要素のないライン1600お よび1622を介して低部16ビットセンサスベクトルジェネレータ1612に 入力される。16ビットセンサスベクトルジェネレータ1612へのこの入力は 、センサスウィンドウのライン9上のイメージデータを表す。遅延要素1601 〜1608の各々はまた、イメージデータを、それぞれの16ビットセンサスベ クトルジェネレータ1611または1612に直接出力する。このように、遅延 要素1601は、遅延されたイメージデータをライン1623上に出力して、1 6ビット低部センサスベクトルジェネレータ1612に送る。16ビットセンサ スベクトルジェネレータ1612へのこの入力は、センサスウィンドウのライン 8上のイメージデータを表す。遅延要素1602は、遅延されたイメージデータ をライン1624上に出力して、16ビット低部センサスベクトルジェネレータ 1 612に送る。16ビットセンサスベクトルジェネレータ1612へのこの入力 は、センサスウィンドウのライン7上のイメージデータを表す。遅延要素160 3は、遅延されたイメージデータをライン1625上に出力して、16ビット低 部センサスベクトルジェネレータ1612に出力する。16ビットセンサスベク トルジェネレータ1612へのこの入力は、センサスウィンドウのライン6上の イメージデータを表す。 ライン5(L5)は、センサスウィンドウのラインであって、中心参照イメー ジ要素がこの9×9のセンサスウィンドウに配置されるラインを表す。尚、16 ビットセンサスベクトルジェネレータ1611および1612はともに、センサ スウィンドウのライン5上のイメージデータを処理する。16ビットセンサスベ クトルジェネレータの各々は、中心参照イメージ要素の左側または右側のいずれ かのイメージデータを扱う。センサスウィンドウの下半分については、遅延要素 1604が、遅延されたデータをライン1626上に出力して、16ビット低部 センサスベクトルジェネレータ1612に送る。センサスウィンドウの上半分に ついては、遅延要素1604が、遅延されたデータをライン1627、1628 および1629上に出力して、16ビット低部センサスベクトルジェネレータ1 611に送る。16ビットセンサスベクトルジェネレータ1611へのこの入力 は、センサスウィンドウのライン5上のイメージデータを表す。 続けて上部16ビットセンサスベクトルジェネレータ1611への入力につい て、遅延要素1605は、遅延されたイメージデータをライン1630上に出力 して、16ビット低部センサスベクトルジェネレータ1611に送る。16ビッ トセンサスベクトルジェネレータ1611へのこの入力は、センサスウィンドウ のライン4上のイメージデータを表す。遅延要素1606は、遅延されたイメー ジデータをライン1631上に出力して、16ビット低部センサスベクトルジェ ネレータ1611に送る。16ビットセンサスベクトルジェネレータ1611へ のこの入力は、センサスウィンドウのライン3上のイメージデータを表す。遅延 要素1607は、遅延されたイメージデータをライン1632上に出力して、1 6ビット低部センサスベクトルジェネレータ1611に送る。16ビットセンサ スベクトルジェネレータ1611へのこの入力は、センサスウィンドウのライン 2上のイメージデータを表す。遅延要素1608は、遅延されたイメージデータ をライン1633上に出力し、16ビット低部センサスベクトルジェネレータ1 611に送る。16ビットセンサスベクトルジェネレータ1611へのこの入力 は、センサスウィンドウのライン1上のイメージデータを表す。 9番目のラインからのイメージデータのストリームがライン1600上に入る ときに、16ビットセンサスベクトルジェネレータ1611への入力L1〜L5 はそれぞれ、センサスウィンドウのライン1〜5からのイメージデータを表し、 16ビットセンサスベクトルジェネレータ1612への入力L5〜L9はそれぞ れ、センサスウィンドウのライン5〜9からのイメージデータを表す。16ビッ トセンサスベクトルジェネレータ1611は、中心参照イメージ要素と、センサ スウィンドウの上半分(ライン1〜5)にある他の16個のイメージ要素との比 較により、ライン1635上の出力で、16ビットのベクトルを発生する。同様 に、16ビットセンサスベクトルジェネレータ1612は、中心参照イメージ要 素と、センサスウィンドウの下半分(ライン5〜9)にある他の16個のイメー ジ要素との比較により、ライン1636上の出力で、16ビットのベクトルを発 生する。ほとんどの実施形態では、ジェネレータ1611からの上位16ビット は、ジェネレータ1612からの下位16ビットと実質的に同時に発生される。 他の実施形態では、ジェネレータ1611からの上位16ビットは、ジェネレ ータ1612からの下位16ビットの1時間単位前に発生される。このタイミン グ差を補償するために、ライン1635上にレジスタまたは遅延要素が設けられ 得る。ライン1635上の上位16ビットおよびライン1636上の下位16ビ ットは、連結器1613で連結され、ライン1637上に32ビットセンサスベ クトルが発生される。 センサスウィンドウがラインの終わりに達し、移動しているセンサスウィンド ウの各中央イメージ要素について32ビットセンサスベクトルが発生されるまで 、ライン1600で入力されるイメージデータの次の組は、ライン10の初めか らのイメージデータを表す。従って、この時点で、ラインL9はライン10のイ メージデータを含み、ラインL8はライン9のイメージデータを有し、ラインL 7はライン8のイメージデータを有し、ラインL6はライン7のイメージデータ を 有し、ラインL5はライン6のイメージデータを有し、ラインL4はライン5の イメージデータを有し、ラインL3はライン4のイメージデータを有し、ライン L2はライン3のイメージデータを有し、ラインL1はライン2のイメージデー タを有する。従って、センサスウィンドウは、今、次のラインの行の初めに移動 している。より多くのイメージデータが入力されると、センサスウィンドウはラ インを下方に移動し、より多くのセンサスベクトルが発生される。このサイクル は、ユーザにより停止されるまで、または、それ以上のイメージデータがセンサ スベクトルジェネレータに入らなくなるまで、繰り返される。 1つの実施形態では、図48に示されるセンサスベクトルジェネレータは、2 つのFPGAユニットにおいて実現される。一方のFPGAユニットは、ノード 1634よりも上のイメージデータを処理するコンポーネントおよびラインにお いて上位16ビット(ライン1〜5)を発生する。他方のFPGAユニットは、 ノード1634よりも下のイメージデータを処理するコンポーネントおよびライ ンにおいて下位16ビット(ライン5〜9)を発生する。実際には、ノード16 34は、2つのFPGAユニット間の境界を表す。他の実施形態では、図48に 示される32ビットセンサスベクトルジェネレータ全体は、1つのFPGAユニ ットにおいて実現される。言うまでもなく、ASICおよびカスタム集積回路の 実現では、FPGAは使用されず、従って、ノード1634は、伝送ラインと単 に一体であってもよい。 通信パスにおける様々な遅延の結果として起こるタイミング差を補償するため に、適切な遅延要素またはシフトレジスタが設けられ得る。これらのシフトレジ スタの例示的な場所としては、ライン1635、1636および/または162 7などがある。 図49は、中心参照イメージ要素と、センサスウィンドウの実質的に上半分( ライン1〜5)にあるイメージ要素との比較結果を表す最下位16ビットについ てのセンサスベクトルジェネレータ1611(図48参照)を示す。センサスベ クトルジェネレータ1611(図48参照)は5つの入力(L1、L2、L3、 L4およびL5)を有し、出力ライン1655で、32ビットセンサスベクトル の最下位16ビットを発生する。これらの16ビットは、中心参照イメージ要素 と、センサスウィンドウの上半分にある他のイメージ要素との比較から得られる 。特に、ライン1〜4のイメージ要素と、ライン5の、中心参照イメージ要素の 右側の2つのイメージ要素とが比較のために使用される。 16ビットセンサスベクトルジェネレータは、幾つかの遅延要素1657〜1 661,比較器1662〜1666、および連結器1667を含む。遅延要素1 657〜1661は、ライン1〜5のイメージ要素の所望の組み合わせが、セン サス比較のために確実に選択されるようにする。比較器1662〜1666は、 比較演算を行って、センサスベクトルについてのビットを発生する。これらの比 較器はまた、比較的変動する数の遅延要素を組み込んで、ライン1〜5の特定の 所望のイメージ要素がセンサス比較のために確実に選択されるようにする。連結 器は、各ラインからの様々な出力センサスビットを組み台わせ、これらのビット を整理して、このセンサスウィンドウのライン1〜5について16ビットセンサ スベクトルを発生する。 各ラインからのイメージデータは、ライン1640〜1644を介してこの1 6ビットセンサスベクトルジェネレータに入る。従って、ライン1からのイメー ジデータは、ライン1640を介して遅延要素1657に入り、ライン2からの イメージデータは、ライン1641を介して遅延要素1658に入り、ライン3 からのイメージデータは、ライン1642を介して遅延要素1659に入り、ラ イン4からのイメージデータは、ライン1643を介して遅延要素1660に入 り、ライン5からのイメージデータは、ライン1644を介して遅延要素166 1に入る。 遅延要素1662〜1666は、比較器1662〜1666へのイメージデー タ入力のタイミングを制御する。従って、遅延要素1657は、イメージデータ をライン1645を介して比較器1662に出力し、遅延要素1658は、イメ ージデータをライン1646を介して比較器1663に出力し、遅延要素165 9は、イメージデータをライン1647を介して比較器1664に出力し、遅延 要素1660は、イメージデータをライン1648を介して比較器1665に出 力し、遅延要素1661は、イメージデータをライン1649を介して比較器1 666に出力する。比較器自体は、これらの比較器に既に入力されたイメージデ ータのうちの特定のイメージデータが、センサス比較のために選択され得るよう に、独自の遅延要素の組を組み込む。1つの実施形態では、遅延要素は、選択さ れたクロックエッジで入力データを出力するレジスタまたはDフリップフロップ である。 遅延要素1657〜1661の各々における遅延量は、他のラインの他のイメ ージ要素に関する、比較器1662〜1666へのイメージデータ入力が制御さ れるように、慎重に選択される。この特定の実施形態では、センサス比較のため に選択された特定のイメージデータが、最終的に図7のイメージデータと一致す るように、図49に示される遅延が選択されている。この特定の16ビットセン サスベクトルジェネレータは、図7のポイント1〜14、17および18を選択 する。従って、遅延要素1657は2時間単位の遅延を与え、遅延要素1658 は3時間単位の遅延を与え、遅延要素1659は2時間単位の遅延を与え、遅延 要素1660は3時間単位の遅延を与え、遅延要素1661は1時間単位の遅延 を与える。1つの実施形態では、1時間単位は1クロックサイクルであり、遅延 要素は、クロックの立ち上がりエッジごとに変わる。他の実施形態では、遅延要 素は、クロックの立ち下がりエッジごとにトリガされる。 比較器1662〜1666は、センサスウィンドウのライン1〜5の選択され たイメージ要素を、センサスウィンドウの中心参照イメージ要素と比較する。セ ンサスウィンドウの各ラインについて選択されるイメージ要素数に依存して、各 比較器1662〜1666において、異なる数の個々の比較器ユニットが実現さ れる。従って、センサスウィンドウのライン1で2つのイメージ要素が選択され るため、比較器1662は2つの比較器ユニットを含み、センサスウィンドウの ライン2で4つのイメージ要素が選択されるため、比較器1663は4つの比較 器ユニットを含み、センサスウィンドウのライン3で4つのイメージ要素が選択 されるため、比較器1664は4つの比較器ユニットを含み、センサスウィンド ウのライン4で4つのイメージ要素が選択されるため、比較器1665は4つの 比較器ユニットを含み、センサスウィンドウのライン5で2つのイメージ要素が 選択されるため、比較器1666は2つの比較器ユニットを含む。 中心参照イメージ要素との比較は、センサスウィンドウの選択されたイメージ 要素の各々について行われる。各センサスウィンドウの中心参照イメージ要素は 、比較器1666の出力1650に与えられ、比較器1666はまた、センサス ウィンドウの、中心参照イメージ要素が配置されるライン5を処理する。この出 力は、必要な比較が行われ得るように、比較器1662〜1666の各々への入 力の別の組にフィードバックされる。イメージデータの新しい組が比較器166 2〜1665に入ると、センサスウィンドウは、新しい場所にシフトし、従って 、新しい中心参照イメージ要素が、比較のために使用される。 比較結果は、ライン1651〜1655上に出力される。連結器1667は、 ライン1656での出力がLSB16ビットセンサスベクトルを含むように、こ れらのビットを配列する。従って、完全な32ビットセンサスベクトルの半分が 発生されている。 図50は、中心参照イメージ要素と、センサスウィンドウの実質的に下半分 (ライン5〜9)にあるイメージ要素との比較結果を表す最上位16ビットにつ いてのセンサスベクトルジェネレータ1612(図48参照)を示す。センサス ベクトルジェネレータ1612(図48参照)は5つの入力(L5、L6、L7 、L8およびL9)を有し、出力ライン1698で、32ビットセンサスベクト ルの最上位16ビットを発生する。これらの16ビットは、中心参照イメージ要 素と、センサスウィンドウの下半分にある他のイメージ要素との比較から得られ る。特に、ライン6〜9のイメージ要素と、ライン5の、中心参照イメージ要素 の左側の2つのイメージ要素とが比較のために使用される。 16ビットセンサスベクトルジェネレータは、幾つかの遅延要素1670〜1 675、比較器1676〜1680、および連結器1681を含む。遅延要素1 670〜1675は、ライン5〜9のイメージ要素の所望の組み合わせが、セン サス比較のために確実に選択されるようにする。比較器1676〜1680は、 比較演算を行って、センサスベクトルについてのMSBビットを発生する。これ らの比較器はまた、比較的変動する数の遅延要素を組み込んで、ライン5〜9の 特定の所望のイメージ要素がセンサス比較のために確実に選択されるようにする 。連結器1681は、各ラインからの様々な出力センサスビットを組み合わせ、 これらのビットを整理して、このセンサスウィンドウのライン5〜9について1 6 ビットセンサスベクトルを発生する。 各ラインからのイメージデータは、ライン1682〜1686を介してこの1 6ビットセンサスベクトルジェネレータに入る。従って、ライン5からのイメー ジデータは、ライン1682を介して遅延要素1670に入り、ライン6からの イメージデータは、ライン1683を介して遅延要素1672に入り、ライン7 からのイメージデータは、ライン1684を介して遅延要素1673に入り、ラ イン8からのイメージデータは、ライン1685を介して遅延要素1674に入 り、ライン9からのイメージデータは、ライン1686を介して遅延要素167 5に入る。 遅延要素1670の出力には、別の遅延要素1671が設けられる。このライ ン5には6つの遅延要素が必要とされるが、遅延要素1970の出力のイメージ データは、比較において中心参照イメージ要素として使用するために、ライン1 692を介して抽出されなければならない。 遅延要素1670〜1675は、比較器1676〜1680へのイメージデー タ入力のタイミングを制御する。従って、遅延要素1670および1671は、 イメージデータをライン1687を介して比較器1676に出力し、遅延要素1 672は、イメージデータをライン1688を介して比較器1677に出力し、 遅延要素1673は、イメージデータをライン1689を介して比較器1678 に出力し、遅延要素1674は、イメージデータをライン1690を介して比較 器1679に出力し、遅延要素1675は、イメージデータをライン1691を 介して比較器1680に出力する。比較器自体は、これらの比較器に既に入力さ れたイメージデータのうちの特定のイメージデータが、センサス比較のために選 択され得るように、独自の遅延要素の組を組み込む。1つの実施形態では、遅延 要素は、選択されたクロックエッジで入力データを出力するレジスタまたはDフ リップフロップである。 遅延要素1670〜1675の各々における遅延量は、他のラインの他のイメ ージ要素に関する、比較器1676〜1680へのイメージデータ入力が制御さ れるように、慎重に選択される。この特定の実施形態では、センサス比較のため に選択された特定のイメージデータが、最終的に図7のイメージデータと一致す るように、図50に示される遅延が選択されている。この特定の16ビットセン サスベクトルジェネレータは、図7のポイント15、16および19〜32を選 択する。従って、遅延要素1670は5時間単位の遅延を与え、遅延要素167 1は1時間単位の遅延を与え、遅延要素1672は2時間単位の遅延を与え、遅 延要素1673は、1時間単位の遅延を与え、遅延要素1674は、2時間単位 の遅延を与え、遅延要素1675は、5時間単位の遅延を与える。 比較器1676〜1680は、センサスウィンドウのライン5〜9の選択され たイメージ要素を、センサスウィンドウの中心参照イメージ要素と比較する。セ ンサスウィンドウの各ラインについて選択されるイメージ要素数に依存して、各 比較器1676〜1680において、異なる数の個々の比較器ユニットが実現さ れる。従って、センサスウィンドウのライン5で2つのイメージ要素が選択され るため、比較器1676は2つの比較器ユニットを含み、センサスウィンドウの ライン6で4つのイメージ要素が選択されるため、比較器1677は4つの比較 器ユニットを含み、センサスウィンドウのライン7で4つのイメージ要素が選択 されるため、比較器1678は4つの比較器ユニットを含み、センサスウィンド ウのライン8で4つのイメージ要素が選択されるため、比較器1679は4つの 比較器ユニットを含み、センサスウィンドウのライン9で2つのイメージ要素が 選択されるため、比較器1680は2つの比較器ユニットを含む。 中心参照イメージ要素との比較は、センサスウィンドウの選択されたイメージ 要素の各々について行われる。各センサスウィンドウの中心参照イメージ要素は 、センサスウィンドウのライン5上の遅延要素1970の出力1692に与えら れる。この出力は、必要な比較が行われ得るように、比較器1676〜1680 の各々への入力の別の組に与えられる。イメージデータの新しい組が比較器16 82〜1686に入ると、センサスウィンドウは、新しい場所にシフトし、従っ て、新しい中心参照イメージ要素が、比較のために使用される。 比較結果は、ライン1693〜1697上に出力される。連結器1681は、 ライン1698での出力がMSB16ビットセンサスベクトルを含むように、こ れらのビットを配列する。従って、完全な32ビットセンサスベクトルの半分が 発生されている。 図51は、センサスウィンドウの各ラインについて32ビットベクトルを計算 するために用いられる比較器1662〜1666(図49参照)および1676 〜1680(図50参照)のより詳細な図を示す。イメージデータはライン17 20で入力され、ライン1730〜1733で入力される中心参照イメージ要素 との比較が行われ、センサス比較結果は、各比較器ユニット1700〜1702 の出力でライン1740〜1743に与えられる。未処理のイメージデータもま た、比較器ユニットを介して出力1726に送られる。 各比較器は、比較器ユニット1、比較器ユニット2および比較器ユニットNの ための多数の比較器ユニット1700、1701および1702をそれぞれ含む 。ここで、Nは、比較のために使用されるライン中のイメージ要素数である。従 って、ライン1〜9では、センサス比較のためにイメージ要素は2つしか選択さ れないため、N=2であり、2つの比較器ユニット1700および1701だけ が設けられる。ライン3では、センサス比較のために4つのイメージ要素が選択 されるため、N=4であり、4つの比較器ユニットだけが設けられる。 各ラインの特定の所望のイメージ要素が、各センサスウィンドウについてのセ ンサス比較のために選択されることを確実にするために、遅延要素1710およ び1711が設けられる。これらの遅延要素は、レジスタまたはDフリップフロ ップであり得る。1つの実施形態では、各遅延ユニットにおける遅延量は、1時 間単位である。他の実施形態では、比較のために望ましい特定のイメージデータ に依存して、他の時間単位の遅延を組み込んでもよい。この実施形態では、比較 ユニット1700〜1702のそれぞれの間に遅延要素が設けられる。他の実施 形態では、幾つかの比較ユニット1700〜1702の間には幾つかの遅延要素 が存在しなくてもよい。これらの遅延要素および比較ユニットは、ライン172 1〜1725を介して互いに結合される。 図49のライン5の比較器1666について、図51の比較器回路図では、正 し中心参照イメージ要素が、比較器1662〜1666の各々の入力にフィード バックされるように、出力1726に別の遅延要素が設けられている。 図51のこの比較器回路の動作を説明するために、9×9のセンサスウィンド ウであり、第1の32ビットセンサスベクトルが今発生されていると仮定する。 中心参照点は(5,5)の位置にある。即ち、中心点は、列5、行/ライン5に 位置する。イメージ要素5に関連するイメージデータは、比較器ユニット170 0〜1702の各々へのライン1730〜1733に与えられる。従って、ライ ン2では、イメージ要素7に関連するイメージデータは、比較器ユニット170 0への入力1720に与えられ、イメージ要素5に関連するイメージデータは、 比較器ユニット1701への入力1722に与えられ、イメージ要素3に関連す るイメージデータは、その次の比較器ユニット(図示せず)への入力に与えられ 、最後に、イメージ要素1に関連するイメージデータが、比較器ユニット170 2への入力1725に与えられる。中心参照イメージデータが、入カイメージデ ータ未満である場合、比較結果ライン1740〜1743に論理「1」が出力さ れる。そうでなければ、これらの比較結果ラインに論理「0」が与えられる。こ れらの比較結果データは、連結され、32ビットセンサスベクトルが発生される 。 D.相関合計ジェネレータ 図52および図54に示されるように、本発明の1つの実施形態は、完全にパ イプライン式で、パラレルで、シストリックな態様で実現され得る。図52に示 される特定の実施形態は、標準の形態をとる。図52は、相関計算の24ステー ジを示す。視差が24個であるため、この実施形態では24のステージが設けら れる。しかし、他の実施形態では、ステージの数は、視差の数と一致していなく てもよい。 図46および図47の計算要素、特に、列BおよびDの計算要素が、これらの 24のステージにおいて計算を行う。典型的には、列BおよびDの8つの計算要 素の各々は、これらのステージのうちの3つのステージでの計算を行う。本発明 のこの実施形態は、センサス変換ユニット、相関ユニットおよび遅延要素を用い て、各ピクセルのサーチウィンドウ内の一方のイメージの各ピクセルのセンサス ベクトルを、他方のイメージの各ピクセルのセンサスベクトルと比較する。即ち 、一方のイメージのピクセルについてのサーチウィンドウは、許容可能な視差の 各々についての他方のイメージのシフトされたピクセルを含む。24個の視差の 場合、サーチウィンドウ内の一方のイメージのピクセルと、他方のイメージのピ クセルとの間の最も遠いピクセル変位は、23のピクセル変位である。最終的に は、この実施形態は、比較から得られた最も小さい合計ハミング距離決定値を表 すminスコアと、この最も小さい合計ハミング距離決定値に関連する視差の値 を表すmin指標とを出力する。 左側のカメラからのイメージデータを、基準とする。左右のカメラからのピク セルがイメージ処理システムに入ると、このシステムは、データを2つの並列な センサス変換ユニット1400および1401に与える。センサス変換ユニット 1400は、左側のピクセルについてのセンサスベクトルを発生し、センサス変 換ユニット1401は、右側のピクセルについてのセンサスベクトルを発生する 。実際に、センサス変換ユニット1400および1401は、左右のイメージの 対応する場所の、ピクセルデータの各対についてのセンサスベクトルストリーム を発生する。第1のステージで、センサスベクトルは、左側のピクセルについて はライン1410および1420を介して、右側のピクセルについてはライン1 411および1421を介して、相関ユニット1440に送られる。相関ユニッ ト1440は、これらの2つのセンサスベクトルの視差0の相関を表すこれらの 2つのベクトル間のハミング距離を計算する。相関ユニット1440はまた、ハ ミング距離を発生して、これをライン1430に出力し、最小の合計ハミング距 離についての視差の数をライン1431に出力し、この時点までに行われたすべ ての比較についてのそれぞれの関連する視差の数を出力する。この時点まで、m inスコアは、視差が0の2つのベクトルのハミング距離である。左側のピクセ ルについての同じセンサス変換ベクトルは、パイプを下方に移動して他の相関ユ ニットに達すると、そのサーチウィンドウの、この左側のピクセルのDの視差を 表す他のすべてのセンサスベクトルと比較される。1つの実施形態では、24個 の視差が使用されるため、右側のイメージの各ピクセルについて比較が24回行 われなければならない。他の実施形態では、16個の視差が使用される。しかし 、視差の数はどんな数であってもよく、ユーザにより選択可能である。 この実施形態では、各相関ユニットはまた、最小の合計ハミング距離(MIN SCORE)を運ぶデータパスに1遅延要素(z-1)を含み、それに関連する 視差の数(MIN INDEX)を運ぶデータパスに別の遅延要素(z-1)を含 む。別の実施形態では、遅延要素(z-1)は、相関ユニットの外部にあり、MI N SCOREのデータパスおよびMIN INDEXのデータパスの相関ユニッ トの間に配置される。従って、2クロックサイクルごとに、左側の同じピクセル (そのセンサスベクトルを介する)が、右側の異なるピクセル(そのセンサスベ クトルを介する)と比較され、最小の合計ハミング距離が更新され、最小の合計 ハミング距離に関連する視差の数も更新される。これらの動作は、左右のセンサ スベクトルのストリームが相関ユニットおよび遅延要素に供給されると、パイプ ライン式に行われる。左右のセンサスベクトルの1つまたは2つの遅延はそれぞ れ、各ピクセルのそれぞれのサーチウィンドウでそのような比較が行われること を可能にする。最後の相関ユニット1443の終わりでは、左側のピクセルのサ ーチウィンドウの様々な右側のピクセルに必要とされるすべての比較が行われて おり、MIN SCOREおよびMIN INDEXが出力される。 1つの実施形態では、出力は、すべての関連する右−左の比較についてのすべ ての最適な視差を追跡する極値インデックスアレイに格納される。この極値イン デックスアレイは、後に、左−右の一貫性検査、モードフィルタリング、および 様々なアプリケーションのための視差イメージの発生のために使用され得る。 別の実施形態では、右−左および左−右の比較は、図52に示されるものと同 じデータパスを使用してパラレルに同時に行われ、最後の相関ユニット1443 の出力は、左右のピクセルの各々について選択された最適な視差をキューイング バッファに格納するため、一貫性検査は、データが処理されて、パラレルパイプ ライン式データパスを通過するときに、リアルタイムで行われ得る。これについ ては、以下に図53、図54、図55および図57を参照して説明する。この実 施形態では、すべての左−右の一貫性検査結果のそのように格納は必要でない。 但し、何らかのアプリケーションまたは何らかの履歴記録が望まれるため、結果 が、別のプロセッサに送られている場合は除く。 1つの実施形態では、Xilinx FPGAの構成論理ブロックなどの論理ブロッ クが、論理機能を実現する。当業者に知られているように、これらの論理ブロッ クおよび論理機能は、別の方法でも表され得る。より低いレベルでは、遅延要素 は、データのビットごとに、レジスタまたはDフリップフロップによって表され 得る。1つのクロッキング信号が使用される場合、2で割る適切な除算回路が、 1時間単位の遅延要素(即ち、視差がシフトされたピクセルについてのセンサス ベクトルによって使用されるパスに沿った遅延要素)へのクロック入力で実現さ れ得、そのような除算回路は、2時間単位の遅延要素へのクロック入力では使用 されず、そのため、適切なシフトが起こり得、各ステージで正しいデータ対が比 較される。あるいは、適切な乗算回路が、2時間単位の遅延要素へのクロック入 力で使用され得るが、そのような乗算回路は、1時間単位の遅延要素へのクロッ ク入力には使用されない。これらのクロック信号変更回路は、Dフリップフロッ プへの入力でのデータが、比較演算のための適切な時間に、出力にシフトされる ことを確実にする。 相関要素は、異なるビット位置を決定するための排他的OR論理演算、異なる ビットを加えて、ハミング距離ビットを計算し、これをnビット(例えば、n= 5)の数で表すためのビットカウンタ、ボックスフィルタリング動作のための幾 つかの加算器、ならびに、現在のminスコアの値を新しく発生されたハミング 距離と比較して、2つの値のうちの小さい方を決定するための幾つかの比較器お よびマルチプレクサによって表され得る。あるいは、ビット数をn=5からn= 3またはn=4に減らしてハミング距離を表すために、飽和閾値デバイスが用い られ得る。入力データについて相関演算が2時間単位ごとに行われることを確実 にして、適切なピクセルのセンサスベクトルが比較のためにシフトされるように するために、適切なクロッキング回路が用いられ得る。別の実施形態では、左イ メージセンサスベクトルと右イメージセンサスベクトルとの間の適切な相対遅延 を確実にするためにそのようなクロッキング回路は必要でなく、その代わりに、 右イメージデータパスに遅延要素を2つ使用し、各相関ユニット(視差0のユニ ットを表す第1の相関ユニット1440を除く)への入力での左イメージデータ パスに遅延要素を1つだけ使用する。 図53(A)および図53(B)は、2つのカメラの左右のイメージについて の左右のセンサスベクトルを示す。これらの2つのカメラは、互いに間隔があけ られているが、同じ光景を見て捕捉している。これらの図は、本発明の1つの実 施形態のパラレルパイプライン式データフローを説明するために使用される。図 53(A)は、左側のセンサスベクトルを示す。各ベクトルは、数字で表される 。教授の目的のために、走査線には、15個の左側のセンサスベクトル1〜15 しか与えていない。同様に、図53(B)は、右側のセンサスベクトル1’〜1 5’を示す。この図示およびそれに関する説明では、プライム符号(’)を付し た数字は右側のイメージを表し、プライム符号を付していない数字は左側のイメ ージを表す。ここでも、教授の目的のために、図54および図55に関する説明 では、サーチウィンドウの長さが5の視差だけである(D=5)と仮定している 。即ち、一方のイメージ中の関係するセンサスベクトルの各々が、他方のイメー ジの5つの他のセンサスベクトル(視差d=0、1、2、3および4)とのみ比 較されると仮定している。 図54は、本発明の1つの実施形態のパラレルパイプライン式相関アーキテク チャのブロック図を示す。データを受け取り、他のデータを出力している相関ユ ニット1450、1490、1491、1492、および(サーチウィンドウの 大きさ、即ち、視差に依存して)その他の相関ユニットが示されている。図53 (A)に示される15個の左側のセンサスベクトルと、図53(B)に示される 15個の右側のセンサスベクトルとは、これらの相関ユニットに送られる。視差 D=5である場合、5つの相関ユニットが使用される。従って、視差D−1(d =D−1)についての相関演算を行う相関ユニット1492まで、相関ユニット 1450は、視差0(d=0)についての相関演算を行い、相関ユニット149 0は、視差1(d=1)についての相関演算を行い、相関ユニット1491は、 視差2(d=2)についての相関演算を行う、などとなる。D=5については、 相関ユニット1492が、視差4(d=4)についての相関演算を行う。 各相関ユニットへの入力は、左センサスベクトル(L)、右センサスベクトル (R)、左−右の最小合計ハミング距離スコア(LRSC)、左一右の最小合計ハ ミング距離に関連する左−右の視差の数または指標(LRI)、右−左の最小合 計ハミング距離スコア(RLSC)、および右−左の最小合計ハミング距離に関連 する右−左の視差の数または指標(RLI)である。相関ユニットでの処理前の LRSC、LRI、RLSCおよびRLIの初期値は、これらの値の可能な最大値より も高い、非常に高い値に設定することができる。このようにして、最初の 相関ユニットからの計算結果は、最初の相関比較後に最適値として選択される。 この最適値は、その後、パイプラインの下方でより最適な値が決定されると、他 の相関ユニットにより更新され得る。 相関ユニット間には、幾つかの遅延要素が設けられる。これらの遅延要素は、 典型的には、Dフリップフロップである。左センサスベクトル(L)、左−右の 指標(LRI)およびスコア(LRSC)についてのそれぞれのデータパス間には 、1遅延要素が設けられる。右センサスベクトル(R)、右−左の指標(RLI )およびスコア(RLSC)についてのそれぞれのデータパス間には、2遅延要素 が設けられる。従って、出力1451は1遅延要素1475に結合され、出力1 452は2遅延要素1476に結合され、出力1453は1遅延要素1477に 結合され、出力1454は1遅延要素1478に結合され、出力1455は2遅 延要素1479に結合され、出力1456は2遅延要素1480に結合される。 これらの遅延要素の出力は、次の相関ユニット1490についてのそれぞれのL 、R、LRSC、LRI、RLSCおよびRLIへの入力に結合される。同様に、出力 1457は1遅延要素1481に結合され、出力1458は2遅延要素1482 に結合され、出力1459は1遅延要素1483に結合され、出力1460は1 遅延要素1484に結合され、出力1461は2遅延要素1485に結合され、 出力1462は2遅延要素1486に結合される。これらの遅延要素の出力は、 次の相関ユニット1491についてのそれぞれのL、R、LRSC、LRI、RLS C およびRLIへの入力に結合される。これと同じ遅延要素構成が、残りの相関ユ ニットの相関ユニット間に使用される。最後の出力1469、1470、147 1、1472、1473および1474は、相関ユニット1492の出力に示さ れている。 図55は、本発明の1つの実施形態のパイプラインおよびパラレル動作を示す 。この図は、視差D=5のときに、左右のセンサスベクトルが、いつどのように 相関ユニットを通って進んでいくかを示す疑似タイミング図を示す。ここに示さ れるように、水平方向の「軸」は時間であり、垂直方向の「軸」は相関ユニット である。従って、この図は、任意の所定の瞬間に、各相関ユニットにおいて、一 方のイメージのどのセンサスベクトルが、他方のイメージのそのサーチウィンド ウ 内のセンサスベクトルと比較されるかを示す。図53も参照して、この実施例で は、走査線について15個の左センサスベクトルと、15個の右センサスベクト ルとが使用される。従って、左センサスベクトル5〜15および右センサスベク トル1’〜11’だけが、それぞれのサーチウィンドウの、視差だけシフトされ たセンサスベクトルを有する。従って、例えば、左センサスベクトル5は、相関 計算のために、そのサーチウィンドウにおいて、右センサスベクトル1’、2’ 、3’、4’および5’を有する。左センサスベクトル4は、そのサーチウィン ドウにおいて1’、2’、3’および4’だけを有するが、これは、5つの視差 に対する完全な組ではないため、左センサスベクトル4は、左−右の比較につい ては無視される。同様に、右センサスベクトル1’は、相関計算のために、その サーチウィンドウにおいて、1、2、3、4および5を有する。右センサスベク トル12’は、そのサーチウィンドウにおいて、12、13、14および15し か持たず、これは、5つの視差に対する完全な組ではないため、右センサスベタ トル12’は、右−左の比較については無視される。以下の説明でも、図54が 参照される。 図55の時間t=1で、左センサスベクトル1(Lの入力)および右センサス ベクトル1’(Rの入力)は、視差0の相関ユニット(即ち、図54の相関ユニ ット1450)で互いに比較される。比較に加えて、飽和閾値、エッジ状態識別 、およびボックスフィルタリング(以下に説明する)が行われる。この時点で、 1−1’について計算されたハミング合計が、最も最適であると考えられる。こ れが、それまでに行われた唯一の比較であるからである。パイプの下方の他の相 関ユニットは、センサスベクトルデータストリームの前の組(例えば、前の走査 線)からのセンサスベクトルを含むか、または、何も含まない。従って、LRSC は、1−1’についてのハミング合計であり、LRIは0であり、RLSCは、1 −1’についてのハミング合計であり、RLIは0である。 図55の時間t=2で、左センサスベクトル1は、左−右の最小のスコアおよ び指標(LRSC、LRI)とともに、次の相関ユニット(d=1)に移動してお り、右センサスベクトル1’は、最小のスコアおよび指標(RLSC、RLI)と ともに、相関ユニット1450(視差0)と相関ユニット1490(視差1)と の間の2遅延要素1476にある。相関ユニット1490は、左センサスベクト ル1だけを含み、右センサスベクトルを含まないため、相関ユニット1490で は、使用できる相関演算は行われない。同様に、左センサスベクトル1は、その サーチウィンドウに、使用できる右センサスベクトルを持たないため、左−右の 指標およびスコアは使用できない。今、相関ユニット1450は、左右のセンサ スベクトルの次の対2−2’を含んでいる。相関ユニット1450のセンサスベ クトルのこの新しい対について、相関演算が行われる。 図55の時間t=3で、左センサスベクトル2は、相関ユニット1490(視 差1)に移動している。前に2遅延要素1476にあった右センサスベクトル1 ’もまた、これと同じ相関ユニットに移動している。この2遅延要素1476に ある右−左の最小のスコアおよび指標(RLSC、RLI)もまた、これと同じ相 関ユニットに移動している。左センサスベクトル2と右センサスベクトル1’と の間の相関演算が行われる。尚、この時点で、右センサスベクトル1’は、相関 ユニット1450(時間0)および相関ユニット1490(現在の時間3)で、 左センサスベクトル1および2と比較されている。従って、そのサーチウィンド ウにおける5つのベクトルのうちの2つが処理されている。新しく計算された相 関結果は、前に計算された右−左の最小のスコアおよび指標(RLSC、RLI) と比較され、新しく計算された相関結果が前に計算された相関結果よりも小さけ れば、更新される。左センサスベクトル3はまた、相関ユニット1450で右セ ンサスベクトル3’と比較される。 図55の時間4で、左センサスベクトル4は、相関ユニット1450で、右セ ンサスベクトル4’と比較される。左センサスベクトル3はまた、相関ユニット 1490で、右センサスベクトル2’と比較される。右センサスベクトル1’は 、最小のスコアおよび指標(RLSC、RLI)とともに、2遅延要素1486に 移動している。 図55の時間5で、左センサスベクトル3は、相関ユニット1491(視差2 )に移動している。前に2遅延要素1486にあった右センサスベクトル1’も また、これと同じ相関ユニットに移動している。この2遅延要素1486にある 右−左の最小のスコアおよび指標(RLSC、RLI)もまた、これと同じ相関 ユニットに移動している。左センサスベクトル3と右センサスベクトル1’との 間の相関演算が行われる。尚、この時点で、右センサスベクトル1’は、相関ユ ニット1450(時間0)、相関ユニット1490(時間3)、および相関ユニ ット1491(現在の時間5)で、左センサスベクトル1、2および3と比較さ れている。従って、そのサーチウィンドウにおける5つのベクトルのうちの3つ が処理されている。新しく計算された相関結果は、前に計算された右−左の最小 のスコアおよび指標(RLSC、RLI)と比較され、新しく計算された相関結果 が前に計算された相関結果よりも小さければ、更新される。左センサスベクトル 5はまた、相関ユニット1450で右センサスベクトル5’と比較され、左セン サスベクトル4は、相関ユニット1490で右センサスベクトル3’と比較され る。 ここで、図55の時間t=5では、そのサーチウィンドウの左センサスベクト ルと右センサスベクトルとの最初の使用できる比較が行われている。ここで、左 センサスベクトル5は、そのサーチウィンドウの視差0のセンサスベクトルであ る右センサスベクトル5’と比較されている。パイプラインの下方に移動して各 相関ユニットにより更新される右センサスベクトルと右−左の最小のスコアおよ び指標(RLSC、RLI)と同様に、左センサスベクトル5もまた、左−右の指 標(LRI)およびスコア(LRSC)とともにパイプの下方に移動し、そのサー チウィンドウの各右センサスベクトルで更新される。右センサスベクトルとは異 なり、左センサスベクトルについての相関および更新は、各時間で起こる。なぜ なら、これらのベクトルおよびそれらに対応する左−右のデータ(LRSC、LRI )が、1遅延要素だけを通って下方に移動しており、右センサスベクトルおよ びそれらに対応する右−左のデータ(RLSC、RLI)が、2遅延要素を通って データパスを下方に移動しているからである。 尚、図55の時間t=2およびt=4では、右センサスベクトル2’は、相関 ユニット1450(視差0)および1490(視差1)で、左センサスベクトル 2および3と比較されている。これらの左センサスベクトル2および3は、右セ ンサスベクトル2’のサーチウィンドウの5つの左センサスベクトルのうちの2 つである。右センサスベクトル2’についてのこれらの相関演算は、1’につい ての相関演算と同時に行われている。右−左の最小のスコアおよび指標(RLSC 、RLI)はまた、右センサスベクトル2’とともに、右センサスベクトル1’ のパイプラインから遅延されたパイプラインを下方に移動する。 同様に、図55の時間t=3およびt=5では、右センサスベクトル3’は、 相関ユニット1450(視差0)および1490(視差1)で、左センサスベク トル3および4と比較されている。これらの左センサスベクトル3および4は、 右センサスベクトル3’のサーチウィンドウの5つの左センサスベクトルのうち の2つである。右センサスベクトル3’についてのこれらの相関演算は、1’お よび2’についての相関演算と同時に行われている。右−左の最小のスコアおよ び指標(RLSC、RLI)はまた、右センサスベクトル3’とともに、右センサ スベクトル1’および2’のパイプラインから遅延されたパイプラインを下方に 移動する。 これらのパラレルパイプライン式相関演算は、入力LおよびRから入るセンサ スベクトルのストリームに対して行われる。相関演算は、図55に示されるよう に様々な時間に様々な相関ユニットで行われる。視差D=5のこの走査線で、左 右のイメージの15個のセンサスベクトルしか比較されないこの特定の実施例で は、t=1からt=19である。 図55の時間t=9で始まると、右センサスベクトルと、そのサーチウィンド ウの左センサスベクトルの各々とについて、相関結果の完全な組が利用可能であ る。従って、右センサスベクトル1’は、以前の相関ユニットで左センサスベク トル1、2、3および4と比較されており、現在の相関ユニットで左センサスベ クトル5と比較されている。相関ユニット1492の出力は、左センサスベクト ル(L)、右センサスベクトル(R)、左−右の最小台計ハミング距離スコア( LRSC)、左−右の最小合計ハミング距離に関連する左−右の視差の数または指 標(LRI)、右−左の最小合計ハミング距離スコア(RLSC)、および右−左 の最小合計ハミング距離に関連する右−左の視差の数または指標(RLI)であ る。この時点から先では、最適な左−右および右−左の指標(視差)が出力され 、キューイングバッファに格納される。キューイングバッフアは、左−右の一貫 性検査のために使用される 以下、左−右の一貫性検査のためのキューイングバッファについて図56を参 照して説明する。この最後の相関ユニット1492の出力の、左−右の最小合計 ハミング距離指標(LRI)および右−左の最小合計ハミング距離指標(RLI) は、2つのキューイングバッファに格納される。これらの2つのキューイングバ ッファのうちの一方は、左−右の指標(LRI)用であり、他方は、右−左の指 標(RLI)用である。このキューイングバッフアの1つの実施形態では、格納 場所を指定するためにポインタが用いられる。別の実施形態では、キューイング バッファは、ファーストインファーストアウト(FIFO)バッファであり、格 納されているデータは、スタックの頂部に入れられ、頂部に新しいデータが入る と、スタックの底部に向かって下方向にシフトされる。1つの実施形態では、各 バッファのサイズは、視差の高さ(D)であり、視差が5である(D=5)場合 、5つのバッファ場所が与えられる。別の実施形態では、キューイングバッファ のサイズは、視差Dの2倍であり、D=5の場合、キューイングバッファは10 の記憶場所を有する。 図55の時間t=9で、左センサスバッファ5および右センサスバッファ1’ のそれぞれの左−右および右−左の最適な視差(LRI、RLI)は、相関ユニッ ト1492から出力され、図56(A)に示されるようにそれぞれのキューイン グバッファに入れられる。時間t=10で、左センサスバッファ6および右セン サスバッファ2’のそれぞれの左−右および右−左の最適な視差(LRI、RLI )は、相関ユニット1492から出力され、キューイングバッファの頂部に入れ られ、以前に格納された視差を押し下げる。これは、キューイングバッファ内の すべての記憶場所が図56(A)に示されるように満たされるまで続く。これは 、図55の時間t=13に対応する。図において、記憶場所は、2つのバッファ 間の数字1〜5として与えられる。従って、最も古い指標LRI(5)およびR LI(1’)は、記憶場所1にあり、最も新しい指標LRI(9)およびRLI( 5’)は、記憧場所5にある。 一旦満たされると、左センサスベクトル5の最も古い左−右の指標LRI(5 )が、左センサスベクトル5によって選択される最適な視差に対応する右センサ スベクトルの右−左の指標と比較される。即ち、以下の関係、LRI(x) =RLI(D−LRI(x))が検査される。ここで、xは、記憶場所1のセンサ スベクトルであり、LRI(x)は、そのセンサスベクトルxがパイプラインを 進んで最終的に相関ユニット1492の出力に達したときにセンサスベクトルx によって選択される指標または最適な視差である。Dは、サーチウィンドウにお ける視差の最大数を表し、RLI(x)は、記憶場所yのセンサスベクトルによ って選択される指標または最適な視差を表す。 例えば、左センサスベクトル5によってそのサーチウィンドウについて選択さ れた最適な視差が2であると仮定する。これは、右センサスベクトル3’に対応 する。従って、x=5、LRI(x)=2、およびD−LRI(x)=3である。 記憶場所3(即ち、D−LRI(x)=3)の右センサスベクトルは、右センサ スベクトル3’である。RLI(3’)=2であれば、LRI(x)=RLI(y )であるため、一致が存在し、左−右の一貫性検査で、最適な視差の選択が確認 されている。一方、RLI(3’)≠2であれば、LRI(x)≠RLI(y)で あるため、一致が存在せず、左−右の一貫性検査で、エラーが検出されている。 不一致である場合、この右センサスベクトルの視差に、ダミー値(例えば、−1 )が割り当てられ得る。 あるいは、視差LRI(x)−(RLI(D−LRI(x)))の絶対値が検査 され、この結果が1以下であるかどうか判断される。1以下であれば、選択され た最適な個別の視差は、左−右の一貫性検査に合格し、この視差は保持される。 この交互の関係を与えるために、何らかの「スロップ(slop)」または公差が設 けられる。即ち、左−右および右−左の視差が1だけ異なっていても、とにかく 、選択された視差は許容可能となる。 記憶場所1にあるこのデータ対についてこの左−右の一貫性検査が終了すると 、新しいデータ対が、キューイングバッファの頂部に入れられ得、これにより、 古いデータ対(即ち、LRI(5)およびRLI(1’))がキューイングバッフ ァから押し出される。この時点でのキューイングバッファの内容が、図56(B )に示される。次に、記憶場所1にあるLRI(x)およびRLI(x)の次の対 が、左−右の一貫性について検査される。今、この対は、LRI(6)およびR LI(2’)である。このデータ対が検査された後、記憶場所1にあるこ の対は、キューイングバッファ外に出され、新しい対が、キューイングバッファ の頂部に入れられる。これは、図56(C)に示される。 図56(D)に示されるように、キューイングバッファの大きさはまた、視差 の総数(D)の2倍であり得る。D=5である場合、キューイングバッファの高 さは、10個の記憶場所である。 図57は、本発明の相関ユニットの1つの実施形態のハードウェア実現を示す 。相関ユニット1450、1490、1491および1492の各々は、同じ方 法で形成される。左右のセンサスベクトルはそれぞれ、ライン1520および1 521で入力される。別の相関ユニットがある場合、これらのセンサスベクトル はまた、相関ユニットから、LOUTライン1522およびROUTライン1523を 介して次の相関ユニットに送られる。しかし、このステージでは、左右のセンサ スベクトルは、排他的ORゲート1524を介して比較される。排他的ORゲー ト1524は、入力が異なる場合には論理「1」を出力する。32ビットセンサ スベクトルの場合、そのようなXOR演算がパラレルに32回行われ、ハミング ビットカウンタまたはルッタアップテーブル1525に出力される。ハミングビ ットカウンタまたはルックアップテーブル1525は、単に、その入力にある論 理「1」の数をカウントするだけである。このビットカウンタ1525の出力値 は、0のような低い値(左センサベクトルと右センサスベクトルとの間に差がな い場合)から32のような高い値(左センサベクトルと右センサスベクトルとの すべてのビット位置が異なる場合)であり得る。 この値は、飽和閾値ユニット1526に出力される。飽和閾値への入力が、0 と15との間の値(0および15を含む)であれば、出力値は、入力値である。 飽和閾値への入力が、15よりも大きい値であれば、出力値は、15に設定され る。飽和閾値ユニット1526から出力される最大値が15であるため、ハミン グ距離を伝達するのに必要な出力ラインの数はより少ない。ここでは、ラインを 4本だけ使用して、ハミング距離0〜15を表している。ほとんどの場合、ハミ ング距離が15以上であれば、相関ユニットは、おそらく、それを最適な視差と しては選択しない。従って、大きい(>15)ハミング距離の精度は必要でない 。他の実施形態では、出力が2つのセンサスベクトル間のハミング距離そのもの を 表すように、そのような飽和閾値を使用しなくてもよい。 飽和閾値ユニットを用いることにより、3または4ビット(および従って3ま たは4ライン)がハミング距離を表すために用いられ得る。そうでなければ最大 32ハミング距離を伝達するために5ビットが必要である。7の最大ハミング距 離が用いられる場合、3ビットが用いられ得る。すなわち、飽和閾値前の計算さ れたハミング距離が0以上且つ7以下である場合、計算されたハミング距離の値 が用いられ、飽和閾値前の計算されたハミング距離が7以上且つ32以下である 場合、計算されたハミング距離の値は7である。最大ハミング距離が7である場 合に3ビットが用いられるのに対して、用いられるシーリングが15である場合 、4ビットが用いられ得る。 相関ユニットにおいて、入力された左および右センサスベクトルに関する特定 の行および列情報もまた、エッジ条件決定のために留意される。これは、ボック スフィルタリング動作に特に関係がある。 次の加算/減算動作のシーケンスは、最終的に各移動相関ウインドウに関する ウインドウ合計を計算するボックスフィルタリング動作を表す。飽和閾値ユニッ ト1526の出力1540は、相関ウインドウの最も右側の下隅のイメージ要素 を表す。これは、移動相関ウインドウのウインドウイラストレーション1570 の黒い部分部分によって表される。この部分がウインドウ合計演算に寄与する前 に、さらに1つの動作が行われる。加算器1527は、ライン1541内の値か らライン1542内の値を減算し、その結果をライン1543に出力する。ウイ ンドウイラストレーション1572内に図示するように、現在のイメージ要素上 方のウインドウ高さに位置するイメージに関して計算されたハミング距離は、ラ イン1541上にある。列合計ラインバッファ内の列合計は、ウインドウイラス トレーション1571内に図示するように、現在のイメージ要素位置の直上に位 置し、ライン1542上にある。出力ライン1543は、ウインドウイラストー ション1573内に図示するように、改変された列合計を供給する。 加算器1528はライン1540上の値をライン1543上の値に加算するこ とにより、ライン1544上に新しい列合計を生成する。ウインドウイラストレ ーション1570内に図示する左および右センサスベクトルの現在の対に関する 現在のハミング距離が、ライン1540上に供給される。出力ライン1543は 、ウインドウイラストレーション1573内に示すように、改変された列合計を 供給する。加算器1528の出力は、ウインドウイラストレーション1574内 に図示するように、新しい列合計である。 加算器1529は、ライン1544上の値からライン1545上の値を減算す ることにより、出力1546を生成する。ライン1544は、ウインドウイラス トレーション1574内に図示するように、新しい列合計を含む。ライン154 5は、ウインドウイラストレーション1575内に図示するように、新しい列合 計位置からのウインドウ長さに位置する列合計を含む。この差違が、ウインドウ 合計を生成するために用いられる。 加算器1530は、ライン1547上の値にライン1546上の値を加算する ことによりライン1548上に新しいウインドウ合計を生成する。この出力ウイ ンドウ合計値はまた、レジスタ1531内に格納されてライン1549上に載置 される。この加算前に、ライン1547上のレジスタ1531の出力は、直前の 計算からのウインドウ合計を含む。次のクロックサイクルにおいて、現在の左お よび右センサスベクトル(LおよびR)を表す新しいウインドウ合計が出力ライ ン1548および1549で生成されるように、ライン1546上の値からの寄 与が、ウインドウ合計を更新する。ライン1548、レジスタ1531、ライン 1547、および加算器1530によって規定されるループ構造は、ウインドウ 合計が1サイクルで計算されることを可能にする。 左−右スコアおよび指標(LRSC、LRI)は対応する左センサスベクトル( L)と共にパイプラインを下流に進み、且つ右−左スコアおよび指標(RLSC、 RLI)は対応する右センサスベクトル(R)と共にパイプラインを下流に進む ため、ライン1549、1553、1550および1551におけるウインドウ 合計は、この相関ユニットのための左−右スコアおよび右−左スコア(および従 ってこの差)を表す。左−右スコアおよび右−左スコアは、これらが最小の左− 右および右−左スコアをも表すか否かを決定するために、比較において用いられ る。 比較器1532の出力は次の相関ユニットのためのLRSCおよびLRI値を生 成するために用いられるマルチプレクサのためのセレクタ信号を供給する。同様 に、比較器1536の出力は次の相関ユニットのためのRLSCおよびRLI値を 生成するために用いられるマルチプレクサのためのセレクタ信号を供給する。比 較器1532はライン1549におけるウインドウ合計を、以前の相関ユニット から決定された入力LRSCと比較する。新しいウインドウ合計が以前に計算され たLRSC未満である場合、比較器1532は論理「1」を生成する。そうでなけ れば、論理「0」が比較器1532から出力される。比較器1536は、ライン 1551におけるウインドウ合計を、以前の相関ユニットから決定された入力R LSCと比較する。新しいウインドウ合計が以前に計算されたRLSC未満である場 合、比較器1536はライン1554において論理「1」を生成する。そうでな ければ、論理「0」がライン1558において比較器1536から出力される。 マルチプレクサ1553への入力は、ライン1552における以前に計算され たLRSCと、この相関ユニットにおいて計算されたライン1553における新し いウインドウ合計とを含む。比較器1532からのライン1554上のセレクタ 信号が論理「1」である場合、マルチプレクサ1533の出力1563はウイン ドウ合計である。なぜなら、この新しいウインドウ合計は、以前の相関ユニット からの以前に計算されたウインドウ合計よりも低いウインドウ合計を表すからで ある。ライン1554上のセレクタ信号が論理「0」である場合、マルチプレク サ1533の出力1563は、以前の相関ユニットからの出力と同一のLRSCで ある。同様に、マルチプレクサ1534への入力は、ライン1555における以 前に計算されたLRIと、この相関ユニットにおいて計算されたライン1556 における相関ユニットのための現在の視差の数(disparity numb er)とを含む。比較器1532からのライン1554上のセレクタ信号が論理 「1」である場合、マルチプレクサ1534の出力1564は、この相関ユニッ トのための視差の数である。なぜなら、この視差の数は、以前の相関ユニットか らの以前に計算されたウインドウ合計よりも低いウインドウ合計と関連するから である。ライン1554上のセレクタ信号が論理「0」である場合、マルチプレ クサ1534の出力1564は、以前の相関ユニットからの出力と同一のL RIである。 マルチプレクサ1535への入力は、ライン1557における以前に計算され たRLSCと、この相関ユニットにおいて計算されたライン1550における新し いウインドウ合計とを含む。比較器1536からのライン1558上のセレクタ 信号が論理「1」である場合、マルチプレクサ1535の出力1565は新しい ウインドウ合計である。なぜなら、この新しいウインドウ合計は、以前の相関ユ ニットからの以前に計算されたウインドウ合計よりも低いウインドウ合計を表す からである。ライン1558上のセレクタ信号が論理「0」である場合、マルチ プレクサ1535の出力1565は、以前の相関ユニットからの出力と同一のR LSCである。同様に、マルチプレクサ1537への入力は、ライン1561にお ける以前に計算されたRLIと、この相関ユニットにおいて計算されたライン1 562における相関ユニットのための現在の視差の数とを含む。比較器1536 からのライン1558上のセレクタ信号が論理「1」である場合、マルチプレク サ1537の出力1566は、この相関ユニットのための視差の数である。なぜ なら、この視差の数は、以前の相関ユニットからの以前に計算されたウインドウ 合計よりも低いウインドウ合計と関連するからである。ライン1558上のセレ クタ信号が論理「0」である場合、マルチプレクサ1537の出力1566は、 以前の相関ユニットからの出力と同一のRLIである。 上記に述べたように、各相関ユニットは特定の視差の数と関連する。24の視 差に対して24の相関ユニット(各視差の数当たり1つ)が供給される。製造プ ロセスを容易にするために相関ユニットが同一に製造されることを確実にするた めに、各相関ユニットのための視差の数を生成する回路は同一でなければならな い。上述したように、相関ユニットに関連するこの視差の数は、マルチプレクサ 1534および1537への入力のために用いられる。その回路は、以前の相関 ユニットから伝搬した視差の数を受け取ってそれをインクリメント値(通常「1 」)に加算することにより相関ユニットに割り当てられた現在の指標または視差 の数を生成する加算器である。相関ユニットは、この視差においてセンサスベク トルを比較する。ワイヤラインを節約するために、以前の相関ユニットからの視 差の数は、新しいLRI値を伝送するために用いるラインと同一のライン上 で伝送される。従って、新しいLRI値が次の相関ユニットに伝送されない期間 、伝搬する視差の数がまず次の相関ユニットに伝送され、その後新しいLRI値 が次に伝送される。 第1の相関ユニットへの入力は、値−1でハードワイヤされる。従って、第1 の相関ユニットは視差の数0に割り当てられ、この相関ユニットにおいて行われ る全ての比較は視差0におけるセンサスベクトル間にある。この伝搬する視差の 数は、第1の相関ユニットにおいては0であり、新しいLRI値を伝送するため に用いられるライン上で次の相関ユニットに伝送される。この伝送は、新しいL RI値が次の相関ユニットに伝送される前に起こる。新しいLRI値が次の相関ユ ニットに入り、従って加算器に入ると、伝搬する視差の数は、第2の相関ユニッ ト用に1になる。これが、パイプライン内の最後の相関ユニットまで続けられる 。 図54を参照して上述したように、視差D=5に対して、5つの相関ユニット が用いられる。換言すると、相関ユニットの数はサーチウインドウ内で用いられ る視差Dの数に一致する。しかし、他の実施形態において、利用される相関ユニ ットの数は、視差Dの数と一致する必要はない。実際、1を越える視差に対する データを処理するために単一の相関ユニットが用いられ得る。従って、視差24 サーチウインドウを実行するシステムに対して、12の相関ユニットが供給され 得、各相関ユニットは24の異なる視差のうちの互いに2ずつオフセットしたイ メージデータを処理する。従って、例えば、1つの相関が、視差0および1にお いて互いにオフセットしたイメージデータを処理し、別の相関ユニットが視差2 および3において互いにオフセットしたイメージデータを処理し、第3の相関ユ ニットが視差4および5において互いにオフセットしたイメージデータを処理し 、これが、視差22および23において互いにオフセットしたイメージデータを 処理する相関ユニット12まで同様に行われる。 しかし上記の記載は、本発明のサブピクセル推定特徴を組み込まない。以下の 議論は、並列パイプライン内にサブピクセル推定を組み込むために必要な詳細を 提供する。上述したように、サブピクセル推定動作は、初期選択された不連続な 最適の視差の数を与えられた、より良好且つより精密な視差の数を推定する。概 念的には、推定は、視差の数(X軸)と合計されたハミング距離(Y軸)との関 係を表すグラフを分析し、初期選択された最適の視差の数と、最適の不連続な視 差の数のいずれかの側の2つの視差の数との間を補間することによって達成され る。1実施形態において、「V」が補間に用いられる。特定の視差の数もまた以 下の関係を用いて計算され得る。 サブピクセル推定はまた、相関ユニットに関して上述した並列のパイプライン 化システムにおいて実行され得る。図54において、左センサスベクトル(L) 、右センサスベクトル(R)、左−右スコア、左−右指標、右−左スコア、およ び右−左指標が、並列パイプラインシステムに沿ってパスされる。サブピクセル 推定のために、以下の値がパイプライン内をパスされる。(1)現在の相関合計 が最小合計である場合に用いられる以前の視差からの相関合計(図17において Y1で表す)、(2)最適の視差の数(LRI)、(3)最小相関合計、および( 4)サブピクセル推定。最小相関合計は左−右(LRSC)である。これらの値は 各相関ユニットにおいて処理される。これらの変数の、相関ユニット間の遅延は 単一の遅延である。LRIおよびLRSCは、上述したように既にパイプラインの 相関部分をパスされていることに留意されたい。 従って、データが相関ユニットを介してパイプラインを下流に進む際に、サブ ピクセル推定は、新しく且つより低い相関合計に当たると更新される。パイプラ イン内の1点において新しい最小相関合計に達した場合、最小相関合計(LRSC )が更新され、最適の視差の数(LRI)が更新されて、以前の視差からの相関 合計が格納されパスされる。このとき、次の視差からの相関合計データはまだ処 理されていないため、サブピクセル推定は生成され得ない。他のデータが予測さ れない(従って最適の不連続な視差がDであり現在の相関ユニットが最後の相関 ユニットでもある)場合、不連続な視差の数はサブピクセル推定動作からの最適 の視差として扱われる。より多くの相関ユニットが使用可能である(すなわち、 この左の参照イメージ要素のサーチウインドウ内の全てのイメージ要素が、この 左の参照イメージ要素とまだ比較されていない)場合、次の相関ユニット内の次 回のユニットにおいて、サブピクセル推定が計算され得る。なぜなら、現在の相 関合計(最小でなくとも)が「V」補間曲線に適合する他方の隣接点であり、す なわち、この次の相関合計が図17のY3を表すからである。次の相関ユニット 内の次回のユニット(存在する場合)において、相関合計は、新しい最小相関合 計でない場合は、無視される。なぜなら、最適の不連続な視差の数に隣接する2 点のうちの1つではないからである。 E.モーションのための垂直および水平移動 モーションの分析のために、垂直な移動もまた考慮されなければならない。視 差の範囲は、垂直オフセットにも亘り、システムは、垂直オフセットを有するウ インドウを有するためには、イメージデータのより多くのライン(すなわちセン サスベクトル)を読み出さなければならない。垂直モーションを並列処理するた めに、各走査線に関する上記の教示内容が用いられ得る。従って、1つのイメー ジ内の座標(x1、y1)に位置する与えられたイメージ要素に対して、他のイメ ージ内の位置(x2、y2)にある対応するイメージ要素が本発明によって決定さ れ得る。垂直オフセットが考慮されるため、最適の合致は必ずしも同一の線内で 見い出され得ない。サーチウインドウはこのとき、ラインまたはラインに対応す る行または参照イメージ要素の行に沿った1組のイメージ要素ではない。むしろ 、サーチウインドウはこのとき、いくつかの行および列のイメージ要素を含む。 図58は、本発明の1つの実施形態を示す。ライン1800での入力は、セン サスベクトル発生器からの左および右のセンサスベクトルのストリームである。 ライン1829上の出力におけるデータは、左および右のイメージ内の各選択さ れたイメージ要素に関する特定の行および列における最適の視差である。1つの 実施形態において、出力は、最小の左−右スコア(LRSC)、左−右指標(LRI )、最小の右−左スコア(RLSC)、および右−左指標(RLI)を含む。 ライン1800における、センサス発生器(図58には示さない)からの左(L )および右(R)のセンサスベクトル出力は、LRSC、LRI、RLSCおよ びRLIと共にライン1829からも出力され得る。 この並列のパイプライン化システム内のライン1における出力1829は、左 −右および右−左の一貫性チェッキング用のキューイングバッファおよび外部指 標アレイまたは視差マップに接続され、並びに/または視差データの処理用の別 のアプリケーション/システムに直接接続されている。上述したように、視差デ ータは、互いに行および列に位置する、1つのイメージ内の選択されたイメージ 要素と他のイメージ内のイメージ要素との間の最適のオフセットを表す。これは 、ライン2〜5用の「出力」ライン1830および1833を、直上のラインに おける第1の相関ユニットの入力に供給することにより達成される。例えば、ラ イン1833はライン5の相関ユニット1859の出力をライン4の相関ユニッ ト1852への第2の組の入力に接続する。ライン1832は、ライン4の相関 ユニット1855の出力を、ライン3の相関ユニット1848への第2の組の入 力に接続する。ライン1831は、ライン3の相関ユニット1851の出力を、 ライン2の相関ユニット1844への第2の組の入力に接続する。ライン183 0は、ライン2の相関ユニット1847の出力を、ライン1の相関ユニット18 40への第2の組の入力に接続する。これらのライン1830〜1833は、L RSC、LRI、RLSCおよびRLIを含む。 図58に示し且つ図53〜図57に関して上述したように、この実施例におい て5つの視差(D=5)が用いられており、従って、5ラインのセンサスベクト ルが処理され得る。各ラインまたは行について、相関結果を演算するために5つ の相関ユニットが用いられ得る。従って、各ライン(L1〜L5)の最後の相関 ユニットは、視差4(d=D−1であって、D=5であり、従ってd=5−1= 4である)のためである。他の視差Dも選択され得、選択される特定の視差Dに 依存して、この並列のパイプライン化システムを介して処理される走査線の数も また変化し得ることに留意されたい。 各ライン(L1〜L5)について、図54〜図57に示す構造に類似の構造を 有する5つの相関ユニットが提供される。相関ユニット間の遅延要素もまた、図 54に示すが、簡潔化および教育上の目的のために、これらの遅延要素は図58 には示さない。しかし、適切な遅延を有するこれらの遅延要素は、この実施形態 において、一方のイメージ内の各参照イメージ要素と、他方のイメージ内の参照 イメージ要素のサーチウインドウ内の全てのイメージ要素との間のデータ処理を 扱うために、実際に存在する。これもまた、図53〜図57を参照して述べてい る。 ライン1(L1)について、相関ユニット1840〜1843が、データパス 1813、1814、1819、1824および1829を介してイメージデー タ対(左および右)を処理する。ライン2(L2)について、相関ユニット18 44〜1847が、データパス1812、1815、1820、1825および 1830を介してイメージデータ対(左および右)を処理する。ライン3(L3 )について、相関ユニット1848〜1851が、データパス1811、181 6、1821、1826および1831を介してイメージデータ対(左および右 )を処理する。ライン4(L4)について、相関ユニット1852〜1855が 、データパス1810、1817、1822、1827および1832を介して イメージデータ対(左および右)を処理する。ライン5(L5)について、相関 ユニット1856〜1859が、データパス1809、1818、1823、1 828および1833を介してイメージデータ対(左および右)を処理する。 各ラインについて、左および右のセンサスベクトル(L、R)がライン1809 〜1813を介して相関ユニットに向かう。 適切なライン(L1〜L5)がこの並列のパイプライン化システムに入ること を確実にするために、遅延要素1801〜1804が設けられている。ここでの 設定は、図48に示すセンサス発生器用の設定と類似である。従って、ライン1 800において左および右のイメージに関するセンサスベクトルが入る。簡潔化 のためにここでは単一のラインを示すが、実際には、左のイメージに1つ及び右 のイメージに1つの、1対のラインが実行される。ライン1800においてこの システムに入るイメージデータの5ラインは最終的には、ライン1809〜18 13において相関ユニットに入る。ライン1810〜1813は、各遅延要素1 801〜1804からの出力である。従って、ライン1800からの左および右 のセンサスベクトルはライン1805を介して遅延要素1801に入る。遅延要 素1801からの左および右のセンサスベクトルは、ライン1806を介して遅 延要素1802に入る。遅延要素1802からの左および右のセンサスベクトル はライン1807を介して遅延要素1803に入る。遅延要素1803からの左 および右のセンサスベクトルはライン1808を介して遅延要素1804に入る 。 ライン1〜5(L1〜L5)を図示するが、これは本発明を、イメージの最初 の5ラインまたは所望のイメージ処理データの最初の5ラインに限定するもので はない。L1〜L5は、参照イメージ要素のサーチウインドウ内のいずれの5ラ インをも示す。従って、例えば、L1〜L5はライン78〜82上に位置するイ メージデータに対応し得る。 従って、この構成は、システムが、互いにオフセットする行および列に位置す る、1方のイメージ内のイメージ要素と他方のイメージ内のイメージ要素との間 の最適の合致を決定することを可能にする。この並列のパイプライン化システム 内のライン1における出力1829は、左−右および右−左一貫性チェッキング 用のキューイングバッファ、外部指標アレイまたは視差マップに接続され、並び に/または視差データの処理用の別のアプリケーション/システムに直接接続さ れる。 F.「スーパーピン」バス 図59は、本発明のイメージ処理システムの一部分に関連する「スーパーピン 」バスおよびコネクタのいくつかを示す。図59に示すように、4×4アレイは 、最近傍メッシュ接続を有するのみならず、各演算要素の各側に1組み8つの「 スーパーピン」接続を有し、スーパーピンバスを形成する。これらのスーパーピ ン接続は、データが、互いに隣接するピン間の単一の接続を用いて、1つのチッ プから次のチップへと移動することを可能にする。従って、ソフトパイプライン バス、トークンリング、または他の分布ネットワークが、演算要素上のルーティ ングリソースの多くを用いることなく構築され得る。これらのスーパーピンは、 ローカル通信およびパイプライン化バス用のローカル相互接続用に用いられ得る 。北−南および東−西バスを通過し得るいずれのデータもスーパーピンバスを通 過し得る。 図59は、図46および図47に元々示すアレイの一部分のみを示す。互いに 隣接して位置づけられた演算要素1101、1102、1105および1106 は互いに接続されており、且つスーパーピンバスを介してコネクタに接続されて いる。図示しない他の演算要素はもまた互いに、コネクタに、および類似の様式 でここに示す演算要素と接続されている。スーパーピンバス1500は、演算要 素1101とコネクタ1140との間に接続されている。スーパーピンバス15 01は演算要素1101と演算要素1102との間に接続されている。スーパー ピンバス1502は、演算要素1101と演算要素1105との間に接続されて いる。スーパーピンバス1503は演算要素1101と、そのすぐ左に位置する 演算要素(図示せず)があればその演算要素との間に接続されている。スーパー ピンバス1504は演算要素1105とコネクタ1141との間に接続されてい る。スーパーピンバス1505は演算要素1105と演算要素1106との間に 接続されている。スーパーピンバス1506は演算要素1105と、そのすぐ右 に位置する演算要素(図示せず)があればその演算要素との間に接続されている 。スーパーピンバス1507は演算要素1106と、その下に位置する演算要素 (図示せず)があればその演算要素との間に接続されている。スーパーピンバス 1508は演算要素1106と、そのすぐ右に位置する演算要素(図示せず)が あればその演算要素との間に接続されている。スーパーピンバス1509は演算 要素1106と演算要素1102との間に接続されている。スーパーピンバス1 510は演算要素1102と、そのすぐ左に位置する演算要素(図示せず)があ ればその演算要素との間に接続されている。スーパーピンバス1511は演算要 素1102と、そのすぐ下に位置する演算要素(図示せず)があればその演算要 素との間に接続されている。 G.概要 図60は、図46に関して述べた4×4アレイのより詳細な図である。図60 はさらに、スーパーピンバス、テストピン、およびプログミングピンを示す。し かし、データパスユニット、PCIインターフェースユニット、およびクロック ユニットは示されていない。演算モジュールCUI〜CU16のレイアウトおよ びピンは実質的に同一である。しかし、これらの機能は異なる。上述したように 、 完全にパイプライン化されたアーキテクチャは、いくつかの演算モジュールがセ ンサス変換を演算するため、別の演算モジュールが相関合計を演算するため、更 に別の演算モジュールがPCIバスへの伝送パスを提供するための準備をする。 例としての演算モジュールは、行1列Bに位置する演算モジュールCU6であ る。1つの実施形態において、演算モジュールCU6は、Xilinx XC4 000シリーズFPGAチップおよび外部SRAMを含む。北−南軸ピンは、北 ピン用のNORTHおよび南ピン用のSOUTHとして示される。西−東軸ピン は、西ピン用のWESTおよび東ピン用のEASTとして示される。NSP、S SP、WSPおよびESPは、それぞれ、北、南、西および東スーパーピンバス ピンである。 いくつかのピンが構築の目的のために用いられる。TDI、TCKおよびTM Sは、これらの電子サブアセンブリのボードレベルテスト用の境界走査目的のた めの、Test Data In、Test ClockおよびTest Mo de Select入力である。境界走査が用いられない場合、これらのピンは 、構築が完了した後、CLB論理への入力として用いられ得る。TDOは、境界 走査が用いられる場合のTest Data Outputである。TDOは、 境界走査が用いられない場合、構築後のレジスタのない3状態出力である。PR OGは、演算モジュールCU6を、強制的に構築メモリをクリアさせて構築サイ クルを開始させる入力である。DONEは、双方向信号であり、入力としては、 グローバル論理初期化および出力のイネーブルを遅延させるために用いられ得、 出力としては、構築プロセスの完了を示す。INITは、構築中および構築後の 双方向信号である。INITは、電力安定化および構築メモリの内部クリアリン グ中の出力である。INITは、入力としては、構築の開始前にFPGAを内部 WAIT状態に保持するために用いられ得る。構築中、INITは構築データエ ラーを示すために用いられ得る。 いくつかのピンが構築機能を提供し、さらに構築後の他の機能を提供する。D INは、スレーブ/マスタ直列構築中の直列構築データ入力として作用し、並列 構築中の出力DOとして作用する。構築後、DINはユーザプログラマブルI/ Oピンとして作用する。典型的には、DINはH機能発生器入力2であり、DO UTは、構築中(エクスプレスモード以外)のデージーチェーンスレーブFPG AのDINピンを駆動し得る直列構築データ出力である。構築後、DOUTは、 ユーザプログラマブルI/Oピンである。 2つのクロック信号が用いられる。構築中、CCLKはマスタモードまたは非 同期周辺モード中の出力として作用し得るが、スレーブモード、同期周辺モード 、およびエクスプレスモードにおいては入力である。構築後、CCLKは、リー ドバッククロックとして選択され得る。CLKはアレイ内の演算モジュールCU 1〜CU16の同期を制御する主要クロッキング信号である。CLK用クロッキ ング信号は、アレイの列A〜Dにユニークである。これらのXilinx FP GAの詳細は、参考のためここに援用する、データブックであるXilinx,The Pr ogrammable Logic Data Book(9/96)において得られ得る。 上述したように、アレイの上部および底部は、アレイを拡張するため、トーラ スを閉じるため、および周辺(I/O)デバイスを追加するために適した50ピ ンコネクタを有する。行0の演算モジュール(すなわち、CU1、CU5、C9 、CU13)より上で且つ行3の演算モジュール(すなわち、CU4、CU8、 CU12、CU16)より下のコネクタXCONNは、北−南軸スーパーピン( すなわち、NSP、SSP)への接続および北−南メッシュ接続(すなわち、N ORTH、SOUTH)を提供する。4×4アレイのためには、僅か8つのコネ クタが必要であるにすぎない。異なるサイズのアレイは異なる数の接続を有し得 る。 チップ間通信は北−南通信および東−西通信に分割される。アレイは、ボード 上の2つの垂直方向に隣接したFPGA間に43のピンを有する。北および南端 コネクタがリボンケーブルによって接続される場合、各列の最上および最下のチ ップもまた43本のピンによって接続される。中間の2つの行は43のピンによ って接続されるが、いずれかの列がホストプロセッサと通信している場合、これ らのピンのうちの20ピンはこの通信専用となっている。東−西通信のために、 アレイは42のピンを有する。しかし、外部SRAMが用いられている場合、こ れらのピンのうちの20ピンは、アドレス専用となり、8ピンがデータ専用とな り、東−西軸の通信用には16本ピンが残されるのみである。 相関パイプラインの各段階間の通信は、2つの32ビットセンサスベクトル、 5ビット指標、10ビット合計ハミング距離、および1対の制御情報ビットを含 む。これらの合計は、パイプライン全体を介して起こることが必要である81ビ ットの通信となる。これは、北−南軸上のこのような通信を提供するために使用 可能な43のピンを越える。しかし、2つのクロックサイクル用に1つのピクセ ルというモデルは、ピクセル当たり2回の通信を可能にする。従って、北−南の 43のピンによる接続上の出力および入力を多重化することにより、86ビット が通信され得る。損失的な(lossy)通信およびレジスタ使用の大容量によ る否定的な影響は、ストローブされたI/Oレジスタおよび多重化されたI/O ピンの使用により減少する。Xilinx XC4028EXは、このような機 能性を提供する。 互いに隣接する要素間のピンは、容量的に軽くロードされ、チップ間のギャッ プを介して非常に迅速にデータをパスすることができる。XC4025チップは 、各チップから及び各チップにパスされる際にデータをラッチし得るI/Oレジ スタを有し、それにより高速パイプラインが起こることが可能になる。実際、ク ロックイネーブルを用いることは、データワイヤ上の遅延が制御ワイヤを通った 遅延とほぼ均等である限り、簡単な束ねられた要求/承認通信スキームが設定さ れることを可能にする。要求/承認の往復を必要とすることは、通常、制御信号 が往復を完了するときまでに、データ伝送のための適切な時間を確実にする。 アレイボード上の最も遅いラインは、エッジチップの遠い側を連結する、ボー ドの右エッジからボードの左エッジまでのラインである。これらのラインは、レ ジスタタイミングの何らかのスキューイングが行われた場合、25MHzでのデ ータ伝送を可能にする。高速デバイスは、スキューイングの必要性を排除する。 実際、これらのより高速なデバイスをアレイのエッジで用いることは、アレイ全 体の性能を均等化する。 図61は、1つのFPGA演算モジュール(すなわち、U8)と1対のSRA M(U9およびU10)の詳細図を示す。1つの実施形態において、SRAMは 、Toshiba TC551402チップである。メモリ要素U9およびU1 0は、EASTメッシュバスラインを介して演算モジュールU8に接続される。 メモリ要素U9内のアドレスラインA0〜A19は、その後LSBデータライン D 0〜D3上で読み出されるデータを読み出すことによりにより、またはアドレス ラインによって識別された特定のメモリ位置への書込みにより、SRAMチップ 内のデータにアクセスするために用いられる。CEは、チップイネーブルを表し 、WEはライトイネーブルを表す。メモリ要素U10はMSBデータラインD4 〜D7を供給する。 アレイボードの各FPGA演算要素は4つの最も近傍の隣接する演算要素に接 続し、さらに各FPGAに使用可能な1MB×8ビットメモリを共に形成する1 対のSRAMチップにも接続する。接続は、容量的ロードを最小にするためにア レイ内にできるだけ短くレイアウトされる。しかし、メッシュ端部において、ト ーラスを閉じるために、より長いワイヤが必要である。これらのより長いワイヤ は、アレイワイヤよりも多少ゆっくりと動作する。 アレイボードの各演算要素は、要素毎に2つの1MB×4ビットのチップを用 いることにより、1MBメモリを有する。2つのチップは平行にオーガナイズさ れて、FPGA演算要素チップから見られるように、1MB×8ビットメモリを 供給する。SRAMは、FPGAチップ間の西−東相互接続チャネル上にあり、 CEピンを高く保持することにより無視され得るか、またはCEラインを降下す ることにより活性化され得る。現在のボードは25nsの速度グレードを用いて いる。Toshibaなどのいくつかの製造者は、より高性能用の20nsのS RAMチップを供給し得る。アレイボード上には、計16MBのスタティックメ モリが供給される。 アレイボードは、FPGAデバイス上およびFPGA外の両方において、映像 ピクセルなどのデータ要素のリアルタイム処理およびフローを管理するために非 常に有用なメモリ階層を含む。メモリは、アクセス速度およびメモリサイズに応 じてオーガナイズされ得、FPGAデバイス、FPGAオンチップSRAM、オ フチップSRAM、およびホストコンピュータDRAM内にレジスタを含む。こ れらの各々の速度およびメモリアクセスを以下に述べる。 各FPGAチップは、構築可能論理ブロックまたはCLBの2次元アレイから なる。各CLBは、Xilinx XC4000シリーズ内に2つのレジスタと 3つのルックアップテーブルとを有する。レジスタは、FPGAチップ間および FPGAチップ内においてデータ動作をパイプライン化するために非常に有用で ある。レジスタは、Xilinxデバイスの速度グレードに依存して、3〜5ナ ノ秒でアクセスされ得る。所望の位置への総伝搬時間を得るためには、ワイヤ遅 延がこの図に追加されなければならない。XC4025ベースのアレイボードは 、演算アレイ内に32Kレジスタを有し、PCIおよびクロックチップ内に34 56レジスタを有する。映像の適用については、レジスタは、個々のピクセルを 格納するために非常に有用である。レジスタの総帯域幅は、最高100MHzの 速度で動作すると仮定して、3兆ビット/秒である。 XilinxデバイスのオンチップSRAMは、10ナノ秒未満の読出し/書 込みサイクル時間を有し、レジスタの16倍高密度である。これらのSRAMは 、ビットを格納するために、CLB内のルックアップテーブルを用いる。Xil inxチップ内の各CLBは、32ビットのSRAMとして構築され得る。XC 4025ベースのアレイボードの総容量は、SRAM512Kビットまたは64 Kバイトである。これらの内部SRAMは、データの走査線をオンチップで格納 すラインバッファとして非常に有用である。例えば、畳込みフィルタは、マルチ タップFIRフィルタを作成するために、このSRAMを用い得る。理論的には 、オンチップSRAMは、SRAMの全てを用いるアレイボード全体において1 秒当たり1.5兆ビットの総帯域幅を用いる。SRAMのアドレスラインは、ル ーティング制約を与えられた場合、最高約50MHzの速度で動作し得る。 外部SRAMはToshibaなどの多くの製造者を介して入手可能であり、 25ナノ秒のアクセス時間および1メガバイトの容量を有しており、ボード上で 計16MBとなる。このメモリは、イメージのフレーム全体を格納するために適 している。このストリームの帯域幅ははるかに限定されている。なぜなら、各2 5〜40ns毎に、メガバイト全体のうちの僅か1バイトが使用可能であるにす ぎないからである。このSRAM用の総メモリ帯域幅は、30〜50億ビット/ 秒であり、オンチップSRAMから3オーダー狭い。 ホストCPU上のDRAMは、アレイボード用のイメージのシーケンスまたは プログラムオーバーレイを格納するために適している。PCIバス上では、32 ビットインターフェースでの130MB/秒および64ビットインターフェース での260MB/秒が達成され得る。具体的には、今日までPCにおいて最高8 0MB/秒の速度が達成されている。オフボードRAMは1オーダー狭い帯域幅 で1オーダー大きい容量を供給し得る。 最後に、RAIDアレイは10ギガバイト(GB)以上の容量および1秒当た り約10〜20メガバイトのアクセス速度を提供し得る。これは、オフボードD RAMよりも1オーダー遅い速度で2オーダー大きい容量を提供する。 アレイボードの1構成は、最高25MHzの速度で非バーストバス転送を実行 するカスタム設計されたPCIインターフェースを用いる。現存するボード上の PCIチップの全ては、XC4013E−2デバイスにより置換され得る。XC 4013E−2デバイスは、PCIバスの最高速度(33MHz)でバースト転 送を行うことが可能である。PCIバスは、転送データに対する単一ワード転送 または複数バーストモード転送を用いて動作することができる。単一ワード転送 は、標的インターフェースに対して有するタイミングが比較的重要でない傾向が ある。バースト転送によるとはるかに高い速度が可能である。なぜなら、アドレ スを送るために費やされる時間が、多くのデータサイクルに亘って償却されるか らである。バーストモード転送用のタイミングおよび制御論理は、単一ワード転 送用よりも重要である。Xilinx LogiCore PCIインターフェ ース設計は、アレイボード上での使用に適合され得る。アレイボードは、132 MB/秒でバースト書込みをすることができ、66MB/秒でバースト読出しを することができる。 図62は、PCIインターフェースチップ、データパスチップ、およびバス接 続の詳細図を示す。PCIバスは、標的インターフェースを供給するために数千 のゲートを必要とする。インターフェースは、データトランザクションを開始し 且つ管理する1組の制御信号と組み合わされた32ビット多重化アドレスおよび データバスからなる。制御信号用のターンアラウンド時間は、PCI−32バス インターフェースにとって重要なパスを表す。Xilinx XC4000−4 シリーズチップを用いると、システムは、25MHzの速度から33MHzの最 高PCI速度で動作し得る。 PCI64チップは、PCIバスの64ビット拡張に接続し、さらにアレイか らホストコンピュータへの主要データ接続を制御するデータパスチップとして作 用する。データパスチップは、アレイに対してデータを出し入れすること、およ び64ビットPCIバス拡張を管理することに責任を負う。データパスチップは 、クロック制御チップに類似の構造を有し、クロック制御チップ同様、PCI− 32チップによってプログラム可能である。制御構造は、アレイを介する双方向 データ伝送を可能にし、且つデータ通信タスクを管理する。 図63は、クロック制御チップの詳細図を示す。クロック制御チップは、アレ イ全体への制御信号分布ツリーを制御する。これらの信号は、1以上のクロック 信号、並びにアレイからのグローバル制御信号およびデータを含む。ラインは、 いずれのアレイチップもがデータをクロック制御チップに送信するように又はデ ータ管理チップから信号を受信するように構成されるように、双方向である。1 組の信号がアレイチップをプログラムする責任を負う。各チップは16方向スタ ーパターンでクロック制御チップから直接導かれるいくつかの専用プログラミン グラインを有する。構築後、これらのラインのうちのいくつか(DINおよびD OUT)が汎用データI/Oのために用いられ得る。 さらに、アレイの各列は、クロック制御チップから8つの信号を受信する。こ れらの8つの信号は、FPGAチップ上の4つの主要クロック信号および4つの 2次的クロック信号に達する。各クロック信号は列内の各チップ内の同一のピン に接続する。アレイ内の列は、ボード上のほぼ等時間的領域を表し、その結果、 クロック制御チップのレイアウトは、1つの列から次の列まで正当な量のスキュ ーを提供することにより、最小のネットのスキューでボード全体に亘る同期クロ ック生成するように設計され得る。 Cypress周波数シンセサイザは、1MHz〜60MHzのクロック源を とって、周波数を350kHz〜少なくとも115MHzの範囲の所望の周波数 に乗算/除算することができる。アレイボードは、2つのシンセサイザを有し、 2つのシンセサイザは同一のクロック源からの異なる周波数を合成することがで きる。PCIバスクロックは、アレイボード用の基本的クロック源を提供するこ とができる。しかし、多くのPCシステムは、1%以上のジッタを有し、映像タ イミング生成などの精密なタイミング適用のために外部クロック源を必要とする 。 外部クロック源は、クロック制御チップに直接接続する外部50ピンコネクタに より達成され得る。この特徴は、アレイボードへの外部インターフェースを処理 する際に、大量のフレキシビリティを提供する。 図64は、上部および底部の外部コネクタ並びにそれらのピンの詳細図を示す 。アレイの上部および底部は、アレイを拡張するため、トーラスを閉じるため、 または周辺(I/O)デバイスを追加するために適した50ピンコネクタを有す る。4×4アレイのためには、僅か8つのコネクタが必要であるにすぎない。異 なるサイズのアレイは、異なる数のコネクタを必要とし得る。いくつかの実施形 態において、カメラまたは映像データは、これらの上部および底部コネクタを介 してアレイに直接供給され得る。トーラスを閉じることは、長さ僅か1cmの短 いジャンパケーブルを、互いに隣接するコネクタ間に取り付けることを含む。複 数のイメージ処理システムボードが共にデージーチェーンされて、より大きなト ーラスを形成する。他の適用は、特別な制御または信号条件を要する他のリボン ケーブルと周辺デバイスとを取り付け得る。 1秒当たり2ギガバイトを越える総帯域幅は、転送速度が50MHzであると 仮定して、アレイボード上において4対の50ピンコネクタを用いることにより 入手可能である。この帯域幅は、映像ホログラフィなどの最も要求の厳しい適用 に適している。アレイボードのアーキテクチャは、複数のボードを拡張するため 、リボンケーブルを用いて外部機器に接続するため、またはアレイボード上に適 合するドーターボードを支持するために十分フレキシブルである。50ピンコネ クタは、外部機器に対するリボンケーブル接続を形成し得る。短いリボンケーブ ル接続は、単一のアレイボード上のトーラスを閉じ得るか、またはドーナツ形状 デージーチェーン用の他のアレイボードに接続し得る。アレイボード接続はさら に、ドーターボードに接続することにより、外部インターフェース用の専用ハー ドウェアを提供する。 FPGA内で最も電力消費の激しい機能は、出力ピンを駆動することである。 本発明の1つの実施形態は、33MHzで出力ピンを駆動するために、相関演算 要素の各々において、43の通信ピンおよび最高56のメモリピンを必要とする ため、イメージ処理システム全体がかなりの電力を消費し得る。PCI仕様は、 バス上において最高5アンペアの電力消費を可能とする。本発明の1つの実施形 態は、24の視差、320×240ピクセルの解像度で、4.5アンペアの定常 状態電力消費を必要とする。 何百ワットもの電力を消費するようにボードをプログラムすることが可能であ るため、アレイボードは、温度の上昇を感知するDS1620ディジタルサーモ メータ/リレーを含む。このチップは、クロック制御チップに取り付けられる。 クロック制御チップは、必要であれば、ボードがオーバーヒートすることを阻止 するために、アレイチップの全てを初期の低電力状態にリセットし得る。空気流 はボード上でDS1620に向けられることにより、アレイの温度上昇を感知す ることができることを確実にする。 単一のチップ内の加熱を検出するために、チップが室温にあるときに、各チッ プ上のリング発振器の周波数が測定され得る。チップの温度が上昇すると、リン グ発振器の動作周波数は予想可能に低下する。リング発振器の周波数の低下を測 定することにより、温度変化が感知され得、いずれのアレイチップがオーバーヒ ートしていることをも高い信頼度で予測し得る。閾値温度を越えるチップは、シ ステムに対するダメージを阻止するためにシャットダウンされ得る。従って、ユ ーザは、PC上のアレイボードを、オーバーパワー状態を懸念することなく直接 動作し得る。 本発明の別の実施形態は、640長の走査線の拡張である。これは、12のF PGA内に、各隣接するSRAM要素の僅か半分を用いて2つの相関段階を置く ことにより達成され得る。光学的フローアルゴリズムもまた、本発明の別の重要 な適用である。 本発明のアルゴリズムは、限定されたメモリリソースを有する小さい低電力の 埋め込みプロセッサにおいて実行されるように設計された。本発明は、アルゴリ ズムの多くの異なるハードウェア実行を想定しており、それらは、現存するコン ポーネントを1対1で別のコンポーネントに置換すること、多くのコンポーネン ト全体を単一のコンポーネントに置換すること、または請求の範囲に記載する本 発明の思想および範囲が満たされる限りにおける完全に異なる設計概念を含む。 本明細書に記載する特定の実施形態は、サイズ、速度および消費電力のすべてに おいて有効である。 V.産業上の利用性 本発明に記載する技術は、広範囲の分野の多くのタスク領域に適用される。多 くの場合、ある範囲内で改変される方法およびそれらを具現化した手段により生 成される結果は、即刻、独立した適用を提供する。多くの場合、手段および方法 は、それぞれの分野で確立された現存する方法と組み合わされることにより、性 能の大幅な向上をもたらす。 A.Z−キーイング Z−キーイングは、Zまたは深度情報を用いて映像光景またはイメージを編集 または操作することからなる。Z−キーイングは、以下を含む多くの映像での適 用を有し得る。 (a)ブルースクリーニング 映像処理における共通の必要性は、イメージ信号の重畳、例えば、単一の人を 合成された表示の前で動かすこと(地図の前の天気予報官を考えられたい)であ る。この錯覚を起こさせるような表示は、現在、「ブルースクリーニング」と呼 ばれる方法を用いて行われている。ブルースクリーニングにおいて、グラウンド に近い映像(すなわち、天気予報官)が色に基づいてその周囲から識別され抽出 される。その場合、背景は特定の色、例えばブルーである。所望のキャラクター の分離は、単一色のスレショールディングにより得られ、残りの信号(天気予報 官)は所望の背景(天気地図)上に重畳している。 開示する発明は、このような適用を、従来のブルースクリーニングよりも正確 で且つ低価格な様式で行うために用いられ得る。図68はこのような1実施形態 を示す。この図において、ステレオ映像カメラD1が、メインカメラD2および 2次カメラD3とからなるように示されている。 メインカメラD2は、映像情報をアナログまたはディジタルのいずれかの形態 で捕捉するために用いられる。このような情報がディジタル形態で記録されてい る場合、情報はフレームバッファD4から直接ダウンロードされる。このような 情報がアナログ形態で記録されている場合、情報は、当該分野で周知のアナログ /ディジタル変換プロセスを介してディジタル形態に変換される。ディジタル表 示はその後ピクセルバッファD5内に格納される。これらの要素は、ステレオ映 像カメラD1の一部分として示されているが、バスまたは何らかの他の接続メカ ニズムを介してステレオ映像カメラD1に接続された別個のコンピュータ内に存 在し得ることに留意されたい。 当該分野で周知であるように、映像データのディジタル表示は、各記録ピクセ ルのクロミナンスおよびルミナンスの値を含む。1つの実施形態において、各ピ クセルのルミナンス情報は、ピクセルバッファD5から抽出されて輝度マップD 6に格納され、それにより各ピクセルの輝度値マップが生成される。他の実施形 態においては、クロミナンスを含む他の情報が用いられ得る。 1つの実施形態において、2次カメラD3が、深度計算のためのみに用いられ る。この実施形態においては、2次カメラD3は、メインカメラD3よりも低品 質であり得、且つ、深度計算プロセスに関連するピクセルデータのコンポーネン ト、この例ではルミナンスのみを捕捉し格納するように設計され得る。他の実施 形態においては、2次カメラD3はメインカメラD2と同等の品質を有し得、且 つ、入手可能な映像情報の完全な範囲を捕捉し得、それによりD3映像を可能に する。 2次カメラD3がルミナンス情報のみを捕捉するように設計されている場合、 その情報は捕捉されて2次カメラD3用の輝度マップD7に直接転送される。そ れにより、映像情報を別個のピクセルバッファ内に格納しルミナンス情報を抽出 する必要が回避される。 一旦各カメラについて輝度マップが生成されると、視差の値が上記の教示に従 って計算され、上述したようにこれらの値から、深度または視差の測定値が導か れる。これらの測定値はその後、ピクセルバッファD5の、メインカメラからの 映像情報を表す部分をマスクするために用いられる。このようなマスキングは、 カメラからの、ある深度を越える情報、例えば、カメラから4フィートを越える 全ての情報、ある深度範囲内の情報、または何らかの他の様式で規定された空間 容量の情報をマスキングするように設計され得る。マスキングされないピクセル はその後、別のイメージ上に重ねられ得る。別のイメージは、格納されたイメー ジを表し得るか、または生映像を表し得る。 1つの可能性のある適用を得るために、開示する発明は、天気予報官のイメー ジをピックアップしてそのイメージを天気地図のイメージ上に重畳させて表示す るために用いられ得る。 このようなZキーイング適用において用いられる深度計算の信頼性は、2つの 方法で向上し得る。第1に、抽出用に用いられる映像イメージ(例えば、天気予 報官の写真)が、背景内でのコントラストおよび背景と抽出すべき前景とのコン トラストを最大にするように設計された背景と共に撮影され得る。第2に、背景 からの天気予報官のイメージの抽出の場合、深度計算において追加の後工程が追 加され得る。後工程において、周囲のピクセルに関して計算された深度と合致し ないピクセルまたはピクセル群がその深度に割り当てられる。このようにして、 誤ったピクセル計算が排除され得る。 メインカメラD2が調整可能焦点距離(通常そうであるように)である場合、 2次カメラD3は常に同一の焦点距離を用いなければならないことに留意された い。なぜなら、そうでなければ、2台のカメラの焦点が発散し、その結果、1つ のイメージ内の対象が他のイメージ内の対象よりも近く(且つ大きく)見えるか らである。2台のカメラの焦点を同期させる手法は、当該分野で周知であり、機 械的手法を含むことにより一方のカメラの焦点距離の移動が直接、他方のカメラ の焦点距離の移動を制御し、且つ電子的手法を含むことにより回路がメインカメ ラの焦点距離を監視しメインカメラの焦点距離が変化するときに自動的に2次カ メラの焦点距離を調整する。このような手法は、カメラの焦点距離が調整可能で ある場合、デュアルカメラを用いる如何なる適用にも用いられ得る。 (b)背景減算 インタラクティブコンピュータ/映像ゲームは現在、参加者を、合成された表 示への再挿入(参加者または参加者を表すアイコンがゲーム画像内で重畳されて いる)のために参加者の周囲から分離するために、背景減算であるブルースクリ ーニングの変形を採用している。背景減算はさらに、S.Ahmad、"A Usable Real -Time 3D Hand Tracker"、28th Asilomar Conference on Signals,Systems and Computers,IEEE Computer Society Press 1995およびT.Darrell、B.Moghadda mおよびA.Pentland、"Active Face Tracking and Pose Estimation in an Inte ractive Room"、Computer Vision and Pattern Recognition Conference,San F rancisco、67〜72頁、1996に記載されている。 開示する発明は、このようなアプリケーションを、ブルースクリーニングに置 き換わるために用いられるアプリケーションと同様の様式で実行するために用い られ得る。このアプリケーションにおいて、通常映像コンファランスの適用に用 いられるタイプの2台の比較的安価なカメラが用いられ得る。このようなカメラ はコンピュータモニタに直接搭載され得る。 (c)多層表示 多くの類似のイメージ合成シナリオもまた、この技術から利益を得る。この書 類に記載の深度または「Zキーイング」(ブルースクリーニングに対向して)は このような適用の1つである(T.Kanade、A.Yoshida、K.Oda、H.Kanoおよび M.Tanake、"A sterio Machine for Video-rate Dense depth Mapping and Its New Applications"、Computer Vision and Pattern Recognition Conference,I EEE Computer Society Press、196〜202頁、1996を参照のこと)。マルチプルク リッピング平面を有する多層表示は、このZキーイングのより一般的な形態であ る。 例えば、図69に示す2つの映像シーケンスを考える。映像シーケンスE1は 、道を走るモーターサイクルE3のいくつかのフレームを示し、映像シーケンス E2は森の光景のフレームを示す。モーターサイクルE3が映像シーケンスE2 からの森を走っているように示されるように、これらの2つの光景を合成するこ とは、通常、多大な尽力を含む。なぜなら、モーターサイクルは映像シーケンス E2からの木のいくつかの前であって他の木の後ろを通過するように示されなけ ればならないからである。 この合成の問題は、本発明の使用を介して解決され得る。映像シーケンスE1 および映像シーケンスE2がディジタルカメラを用いて(またはアナログカメラ を用いて出力をディジタルに変換することにより)撮影されていると仮定する。 さらに、このようなカメラの各々が、上述したようにメインカメラと2次カメラ を含んでいると仮定する。このような場合、各映像シーケンスの各フレームに関 する深度情報は、各ピクセルのディジタル表示のアトリビュート(他のアトリビ ュートはルミナンスおよびクロミナンスを含む)として、または各フレームに対 応する別の深度マップ内に格納され得る。この深度情報は、以下の工程を用いて 、映像シーケンスE1を映像シーケンスE2と合成するために用いられ得る。 (1)上述したように映像シーケンスE1からモーターサイクルを抽出し、そ の結果映像シーケンスE4を得る。 (2)フレームバッファ内において、抽出されたピクセルを映像シーケンスE 2からのピクセルと組み合わせ、その結果映像シーケンスE5を得る。ピクセル の重複がない部分(すなわち、映像シーケンスE2のうち、モーターサイクルと 重複しない部分)において、映像シーケンスE2からのピクセルを用いる。ピク セルの重複がある部分(すなわち、映像シーケンスE2のうち、モーターサイク ルと重複する部分)において、カメラに近い方のピクセルを用いる。従って、カ メラに「より近い」木の後ろであるがカメラから「より遠い」木の前にモーター サイクルE3を示すフレームが構成される。 開示された技術は、そのよう合成が、多数のビデオストリームフレームについ てリアルタイムで行われることを可能にする。本発明により、合成において多数 の明らかな改良点が得られる。この改良点には、背景が一定のまたは均一な色分 布である必要がないこと、被写体が背景色となることを避ける(そうしなければ 、表示にホールができる)必要がないこと、動きとともに変化し得る場所に基づ いて被写体を識別することができること、ビデオシーンの様々な場所から多数の オーバレイを選択することができること、などがある。最終的な作業生成物を作 り出すため、または、ビデオエディタが、どのビデオストリームが従来の合成に 最良に使用され得るかを迅速に見極めることを可能にするために、そのような合 成を用いることができる。 (d)ビデオ会議 上で開示されたZキーイング技術は、デスクトップビデオ会議アプリケーショ ンに容易に適用され得る。そのようなアプリケーションでは、目的の情報は、通 常、カメラに比較的近い場所にある。背景情報は、通常関係ないが、前景および 背景がともに動きを含み得るため、排除するのが困難である場合もある。背景情 報の捕捉および伝送は、性能に関する重大な問題につながる。なぜなら、利用可 能な処理力およびバンド幅が、許容可能な解像度で光景全体を伝送するには不十 分である場合があるからである。 Zキーイングは、通常はユーザのビデオディスプレイスクリーンに配置される ステレオカメラ対から、ある特定の距離(例えば、5フィート)を越えるところ にあるすべての背景情報を排除することにより、そのようなアプリケーションに 使用され得る。これにより、関連情報だけを送ることが可能になる。受信者の場 所では、前景情報が、送信者のサイトから捕捉された静止背景情報、または、選 択可能な背景(例えば、グレー一色の背景、森林の光景を示す背景、など)と組 み合わされ得る。 B.空間情報 この情報は、視覚的な欠陥、暗さ、または障害物のため、他の方法では判断す ることができない空間情報を、ユーザに示すために使用され得る。そのようなア プリケーションでは、ステレオカメラ対は、その時にその他の方法ではユーザに 視覚的にアクセス不可能な場所に取り付けられる。その後、距離情報を使用して 、ユーザに、規定された視野内に入っている対象物についての情報が与えられる 。 各々の場合、これらのアプリケーションは、ステレオカメラ対を使用する。ス テレオカメラ対は、環境からのディジタル情報を入力し、センサスステレオ(ま たは、他の非パラメトリックローカル変換)を使用して、深度マップを作成する 。この深度マップは、その後、処理されて、ユーザに示される。 尚、この対象物の検出は、対象物の認識を必要としない。その代わりに、対象 物の検出は、単に、所定の経路または視野に存在する構造物の場所を示して、ユ ーザにその構造物の存在を警告するだけであり得る。潜在的なアプリケーション は多数存在する。 1.暗がりでの対象物の検出 赤外線カメラは、当該分野において周知である。そのようなカメラは、光景の 色またはルミナンスではなく、光景の様々な部分から受け取られる赤外線信号に 基づいて、光景を記録する。 開示された非パラメトリックローカル変換は、赤外線入力からの深度情報を抽 出するために使用され得る。そのようなアプリケーションでは、赤外線信号の強 度は、ピクセルごとに記録され、その後、この強度を用いて、ローカル変換が作 り出される。他のすべての点では、そのようなアプリケーションは、上で開示さ れた態様と同様の態様で動作するが、このアプリケーションでは、可視光線強度 の代わりに赤外線強度が使用される。 一旦、深度情報が抽出されると、特定の距離または特定の空間領域内に入る対 象物は、背景と区別され得る。そのような対象物についての情報は、ビデオスク リーン上でユーザに示され得、赤外線ピクセルが、表示されるイメージ全体から 引き出されて表示される対象物を表す。そのような情報はまた、アラームなどの 自動システムに示され得る。そのような用途は、アラームシステムが、ユーザの 介入も可視照射もなしに、受動的に動作して、対象物をその場所で区別すること を可能にし、動き分析を使用する場合には、対象物をその動きで区別することを 可能にする。 2.死角(obscured view)における対象物検出 開示する発明は、死角のため通常ユーザには見えない領域における対象物の検 出に用い得る。これは、複数の重要な死角が存在し、ユーザがリアルタイムで決 定を行うことを要求されるようなアプリケーションにおいて、特に有用であり得 る。このような状況下において、ユーザは複数のスクリーン上で同時にリアルタ イムの画像(picture)を観察かつ分析することは不可能であり得るため、フル映 像の用途は限られ得る。開示する発明は、Zキーイング用の深度情報を用いるこ とにより、対象物が予め設定された距離内に来たときに警告を発した後特定の距 離内にあるイメージの部分のみを表示することでこの問題を解決し得る。 例えば、長いまたは関節部を有する(articulated)大型トレーラー(big rig)を 後進させるのは困難な作業であり、作業者が自身の乗り物と潜在的な障害物との 間の関係についての適切な空間的モデルを得ることができないことのため、より 困難さが増す。範囲センサ(ranging sensor)の出力の俯瞰図(立面圧縮された) により、作業者の近傍にある対象物ならびに、それらに対する作業者の乗り物の 位置および方向のディスプレイされた空中展望が、作業者に提供される。キャブ ディスプレイにより、作業者は自身の制御および周囲に対して最適な注意を払う ことを可能にし、安全な操作が可能になる。 このようなシステムを、大型トレーラーA1を示す図65に図示する。大型ト レーラーA1の後部周辺には、ステレオカメラ対A2〜A7が並べられている。 これらのカメラは、大型トレーラーA1の後部ならびに大型トレーラーA1の側 部の後部に最も近い部分の連続的なカバレージ(coverage)を提供するように、配 置されている。 大型トレーラーA1が後進状態にされたとき、A2〜A7は、範囲処理を開始 する。上記に開示するように深度をフィルタとして用いることにより、カメラ対 は、特定の範囲(例えば5フィート)内の対象物のみをユーザに知らせる。 大型トレーラーA1は、カメラA2〜A7の予め設定された範囲内の画素のみ を出力する映像ディスプレイを有するように設計され得る。あるいは、大型トレ ーラーA1は、図66中B1として示すような単純で安価な分割ディスプレイを 有するように設計され得る。この分割ディスプレイにおいて、各分割部分(segme nt)は、ステレオ対のうちいずれか1つの視野(field of view)を表している。従 って、分割部分B2はカメラ対A2からの情報を表し、分割部分B3はカメラ分 割部分B3からの情報を表す、といった具合である。ディスプレイはまた、全て の観察された分割部分を統一化ディスプレイに結合してもよい。 ディスプレイB1は、対応するカメラから特定の距離内(例えば5フィート) に対象物が来たときに分割部分がまず照明されるように設計され得る。ディスプ レイB1はさらに、より近い距離(例えば4フィート)にある対象物の存在が、 視覚的に区別され得る方法、例えば分割部分の照明を増大する、分割部分を点滅 させる、分割部分の色を変えるなどにより、ユーザに表示されるように設計され 得る。ディスプレイB1はさらに、対象物がさらにより近づく(例えば3フィー ト、2フィート、および1フィート)に従って分割部分が変化し(alter)、対象 物が特定の最小距離(例えば6インチ)内に来たときに可聴形態の警告が発され るように設計され得る。 B1のようなディスプレイは当該分野において周知であり、大型トレーラーの 運転手に対象物の近さを告知するために、多くの異なる機構を用い得る。非パラ メトリックローカル変換(non-parametric local transform)アルゴリズムを深度 計算に用いることは、このアプリケーションにおいて大きな利点を有する。大型 トレーラーA1の後部および側部に位置するカメラからの映像データをを単に表 示することは、数個の効果な絵像ディスプレイを必要とし、運転手に大量の情報 を呈示してしまうが、そのほとんどは任意の時刻において運転手には無関係であ ったりする。また、対象物と背景とを示す不異端な映像ディスプレイのみに基づ いて運転手が対象物への距離を決定することや、シーン中の比較的小さな構造物 に適切に注意を払うことは、非常に困難であり得る。開示するハードウェアおよ びソフトウェアは、これらの問題を緩和し得る。 大型トレーラーA1をアプリケーション例として用いたが、開示される発明は 、ユーザの視界が隠される領域においてリアルタイムの障害物検出および回避を 要求する任意のアプリケーションに用いられ得る。また、本発明は、より多くの あるいはより少ないカメラを用いて実施することができ、これらは図65とは異 なって設けられ得る。 3.目の不自由な人のための対象物の検出 このシステムによって生成されるレンジマップは、目の不自由な人に対して、 触覚または聴覚で知覚される環境の表示を提供する。これらのデータを用いるた めに、優れた「光景理解」は必要ない。なぜなら、人は、レンジ測定値の取得を 方向づけ、これらを解釈することがかなりできるからである。レンジを測定する 「長いステッキ(Long Cane)」を目の不自由な人に与えることで即座に使用さ れる。ヘッドまたは他の動きによってレンジングシステムを方向づけることで、 光景のそのエリアにおける選択可能ないくらかの距離レンジにわたって知覚可能 なものすべてに対する深度が伝えられる。フィードバックは、シーケンシャルま たはパラレル(2次元)な様式の聴覚手段(ピッチ、強度等)、触覚コーディン グ(単一または多重フィンガリングデバイス(T.H.Massie and J.K.Salibury , "The Phantom Haptic Interface:A Device for Probing Virtual Objects,"A SME Winter Annual Meeting,Symposium on Haptic Intefaces for Virtual Env ironment and Teleoperator System,Chicago,November 1994;J.P.Fritz,T.P .Way and K.E.Barner,"Haptic representation of scientific data for vis ually impaired orblind persons,"Proceedings of CSUN Technology and Pers ons with Disabilities Conference,1996)、接触感知用に配置されたまたはフ ィンガフィードバック用に構成されたアレイ(J.Fricke and Baehring,H.,"D esign of a tactile graphic I/O tablet and its integration into a persona l computer system for blind users,"Electronic proceedings of the 1994EA SI High Resolution Tactile Graphics Conferenceを参照)、およびシーケンシ ャルまたはパラレルな様式で深度信号を通信する他の手段を通して行われ得る。 T.Heyes,"Sonic Pathfinder:Electronic Travel Aids for the Vision Imparie d,Remote sensing using Ultra-Sonics,"Perceptual Alternatives,Melbourne ,Australia;P.Meijer,"An Experimental System for Auditory Image Represe ntations,"IEEE Trans.Biomedical Engineering,V39,N2,1992,112-121頁を 参照のこと。 4.ディジタルマッピング用深度推定 本発明はまた、むしろ従来の方向測定法において多く応用される。例えば、建 築における写真測量分析、工業的視察、ならびに、例えばディジタル地形マッピ ングおよび顕微鏡的表面評価におけるマクロおよびマイクロレベルでの距離測定 である。これらすべてにおいて、リアルタイムセンサス深度演算を導入すること によって、より迅速かつより安価なマッピングが可能になり、開発のための新た な機会が得られやすくなる。 C.オートフォーカス 従来のオートフォーカス技術は、比較的未完成の傾向にある。例えば、テレビ またはフィルム製造において、動いている対象物(例えば、俳優)に焦点を当て る場合、カメラオペレータによる手動制御、または特定距離において焦点を予め 設定しておく必要が頻繁にあり、俳優は、正確にかつ予め設定されたように移動 することが要求される。ホームビデオカメラにおけるオートフォーカスは、大抵 、イメージの「ファジネス(fuzziness)」の度合いを解釈し、ファジネスを減少 させ、対象物間で明確な境界線を形成するように焦点を変更する回路からなる。 開示される発明は、主要カメラをオートフォーカスするために用いられ得る。 1つのこのような応用において、図68を参照しながら上述したのと同様の主要 カメラおよび第2のカメラが用いられ得る。ショットの初めにおいて、主要カメ ラD2および第2のカメラD3は、移動する対象物の1つの局面、例えば、俳優 の目に焦点が当てられ得る。フレーム毎に焦点対象物を追跡するために、開示さ れる非パラメトリックローカル変換が用いられ得る。各場合において、同じカメ ラからの各フレームと前のフレームとを比較し、ローカル変換を用いて、後のフ レームのどの近隣のピクセルが、前のフレームの参照ピクセルと同じであるかを 決定することによって、焦点対象物は、マスターカメラおよび第2のカメラによ って形成されるフレームにおいて識別され得る。適切に較正されたカメラ配置が 用いられる場合、このような比較によるイメージ修正は必要ない。 次のフレームにおいて焦点対象物が一旦識別されると、焦点対象物への距離が 1つのフレームから次のフレームへと変化するかどうかを決定するために、深度 測定値が用いられ得る。深度が変化する場合、カメラの焦点距離は、このような 変化を反映するように自動的に変更される。同様に、多数の特徴が、コレクショ ンに対する最適なフォーカス制御のために追跡され得る。 D.映像圧縮 格納および伝送のための映像イメージの圧縮は、コンピュータおよびビデオ産 業が直面している最も困難で重要な問題の1つである。MPEGおよびMPEG 2などの従来のシステムは、フレームの他の近隣フレームからの変化を表す部分 を格納および伝送し、光景の非変化部分は前のフレームに基づいて再生成される ように設計される。 このような圧縮アルゴリズムは、背景が多くのクラッタおよび/または動きを 含む映像シーケンスの場合には困難となる。背景は映像シーケンスのためには重 要ではないかも知れないが、従来の圧縮システムでは、「重要な」前景の動きと 「重要ではない」背景の動きとの間を区別するのは困難であり、従って、両タイ プの情報を同等に処理するため、多大な帯域幅が必要となり得る。利用可能な処 理パワーおよび/または帯域幅によってはこのような映像シーケンスを扱うこと ができない場合は、画像の質が目視によっても低下し得る。 開示した本発明は、背景の特徴を前景の特徴から容易に区別し得るようにする ことによって、圧縮アルゴリズムにおいて有用となり得る。上述のタイプのデュ アルカメラシステムは、映像シーケンスのための深度情報を計算および格納する ために使用され得る。このような深度情報は、各ピクセルの属性として、ルミナ ンスおよびクロミナンス情報を格納するために用いられる方法と類似の方法で格 納され得る。 制限された帯域幅のみが利用可能な場合は、このような情報により、圧縮アル ゴリズムを、より重要な前景情報を送ることに集中させ得る。例えば、前処理ス テップでは、光景の背景(例えば、カメラから10フィート離れた位置のすべて のもの)を表すピクセルを1つおきに取り去って、直前のフレームからの背景ピ クセルに置き換えてもよい。これにより、イメージ全体(背景および前景)はフ レーム1に対しては格納されるが、フレーム2は、フレーム1の背景にフレーム 2の前景を重ねたものを表す。フレーム1では隠れているがフレーム2では前景 の移動によって可視となる背景ピクセルは、フレーム2の背景から取り出すこと ができる。本システムは、ユーザが背景の動きが特に重要である映像シーケンス を選択し、このようなシーケンスを上述のプロセスから除外することができるよ うに設計され得る。 これらの変更されたフレームは次に、MPEGエンコーダなどの標準圧縮装置 に供給され得る。開示された本発明は、フレームからフレームへの背景の変化を 最小限にすることによって、このようなエンコーダがより迅速に動作して、エン コードされた映像ストリームを、より狭い帯域幅しか必要とせずに出力すること を可能にし得る。 もしくは、深度情報は、このような情報を考慮に入れるように設計されたアル ゴリズムによって直接使用され得る。上述のZキーイングは、このようなアルゴ リズムの1つの極端な例を構成する。すなわち、背景情報を、伝送前に映像シー ケンスから完全に除去し得る。これは特に、デスクトップ映像会議などの、背景 情報が重要ではないアプリケーションにとって有用であり得る。 もしくは、比較的静的におよび均一に変化している背景情報は、各フレームに 対してシングルユニフォームベクトルを使用して伝送され得る。例えは、カメラ がクローズアップまたはミディアムショットで演技者を追跡するように移動して いる場合は、カメラの視野角が変化しているという事実によって生じる変化以外 は、背景は完全に静止状態であり得る。このような環境下では、背景イメージの 変化は比較的単純な一方向のシフトを表し得る。このようなシフトはシングルベ クトルによって容易に表され得る。このシングルベクトルは、復号化アルゴリズ ムに、前の背景を用いるべきであるが、特定の方法でトランスレートさせるべき であると知らせ、前のフレームからシフトインされた情報が供給される。 E.液浸型ディスプレイ 仮想空間および一般に液浸型(immersive)ディスプレイは、参加者の目線の位 置および方向が、イメージが参加者が見るために生成される各瞬間において既知 であることをその基本的な要件とする。映像ディスプレイが観察者の知覚予想と 密接に連結しているとき、すなわち観察者が見るイメージが観察者の動きと一貫 しているときのみに、経験が確実なものとなる。この連結は、現時点では、ユー ザが外部に装着するセンサの使用によって実現されているが、これらのセンサは 、経験にとって邪魔になり気を散らすものである。 そのようなセンサは開示された発明に基づく映像オリエンテーションシステム によって置換され得る。そのようなシステムにおいては、1以上のステレオカメ ラ対が、空間内のユーザの頭の位置と方向を正確に決定するために使用される。 開示された非パラメトリックローカル変換は、上述した方法に類似の方法で、ユ ーザの頭の特定の位置の移動を追従するために用いられ得る。そのようなリアル タイム頭トラッキングは、頭の位置とオリエンテーションを正確に突き止めるよ うに設計されたセンサの必要をなくす。 F.目線トラッキング 対象目線方向のトラッキングは、長年に亘り科学研究の領域の1つであった。 対象目線方向のトラッキングは、精神物理研究に始まり(例えば、H.D.CraneとC .M.Steele、"Generation-V Dual-Purkinje-Image Eyetracker"、Applied Optics 24(4)527〜537頁、1985年;H.D.Crane、"The Purkinje Image Eyetracker"、Vi sual Science and Engineering、D.Kelly編集、Dekker Publishing、1994年参照 )、より最近ではヒューマン−コンピュータインタフェースの領域において試み られている(例えば、R.J.K.Jacob、"Eye Tracking in Advanced Interface Des ign"、Virtual Environments and Advanced Interface Design、258〜288頁、W. BarfieldとT.A.Furness編集、Oxford University Press、New York、1995年参照 )。多くのこの研究は外部に装着された感知装置(例えば、Skalar Instruments ,Inc.(現在はBruxton Corporation)の眼トラッキングのための電磁気鞏膜サ ーチコイルシステム参照)又はアクティブイルミネーション(LEDエミッタのよ うな)を使用していた。 目線の非侵入型の監視は好まれるが、これは余り一般的でなく、より難しい。 目線トラッキングは、高速処理が必要であることによってさらに難しくされてい る。高速処理が必要なのは、眼が非常に高速に動き、人間が30ミリ秒(映像の 1フレーム)よりはるかに小さいオーダーの潜伏時間で知覚するからである。眼 の位置及び視線方向を知ることにおける遅延は、決定及び適切な情報の表示にお ける遅延を導く。このことは、眼の緊張、疲労、吐き気、及び視覚者側の苛立ち を引き起こす。 正確性はもう1つの困難である。目線推定の解像度が足りないことにより、多 くの目線関連タスクは性質上定性である。対象は空間の狭い領域内に位置するこ とが必要であり、分析はこの位置についての仮定に基づいている(例えば、R.J .K.Jacob、"Eye Tracking in Advanced Interface Design"、Virtual Environm ents and Advanced Interface Design 、258〜288頁、W.BarfieldとT.A.Furness 編集、Oxford University Press、New York、1995年参照)。 本発明は両方の眼の同時トラッキングをも可能にし、これにより固定位置と目 線位置とが決定され得る。 従来技術の目線トラッキングシステムは不便なセンサか、ユーザが小さな所定 の領域に位置することかのいずれかを要求する。開示された発明は、目線トラッ キングシステムが高速かつ正確にユーザの頭と眼の位置を識別することを可能に することにより、そのような制限を回避するために使用され得る。このことは頭 を背景(背景は大きく離れている)とは別の物体として識別することにより達成 され得る。また、形状及びオリエンテーションに関する正確な情報を提供し、虹 彩位置及び方向を局在させることにより達成され得る。 視覚者の目線位置及び目線方向の認識が要求される任意のタスクは、ここで述 べられるシステムから恩恵を受ける。これらのアプリケーションの近い範囲のエ ンドにおいては、コンピュータオペレータは、自分の行動場所を制御し、仮想ペ ージを持ち上げて動かし、オブジェクトを選択し、インタラクティブ編集コマン ドを起動するための、手で操作するマウスポインティングデバイスよりむしろ、 自分の眼を使って、自分のディスプレイの前に座っていることができる。コンピ ュータオペレータがウェブサイトに移動すると、コンピュータオペレータの注意 は目的を説明するために監視されている。これらのアプリケーションのより遠い エンドにおいては、3次元動画鑑賞者はディスプレイ環境の中で動きながら、自 動立体視ディスプレイシステムを見ることができる(例えば、R.EzraらとSharp Labs、"Observer Tracking autostereoscopic 3D display system"、Photonics West Conference、San Jose CA,3012-23、1997年)。この自動立体視ディスプ レイシステムは、その位置にかかわらず適当な画素データを鑑賞者の目に向けさ せる。 見る方向の認識は、視覚者の視覚感度に合うように選択された、変化するデー タの品質を提供することにより、表示の帯域幅を削減するためにも使用され得る 。例えば、高い分解能は視覚者の中心窩視覚のために提供され、低い分解能は周 辺に向かって減少する品質で提供される。このことは、自動立体視ディスプレイ システムにおいて、相当の計算上の通信帯域幅を節約する。 G.視点従属ディスプレイ 仮想現実システムは、一般にユーザに人工的な環境を通じてナビゲートするこ とを可能にする。しかしながら、そのような環境は一般に動く物体によって構築 されている。映像品質のイメージに基づいた仮想世界の創造は、一般に経済的に 合理的な方法で実行することが困難であると考えられている。 1.範囲マップを使用した視覚合成 本発明は視覚補間を可能にするディスプレイを含む、映像品質の仮想世界デ ィスプレイの創造を可能にする。視覚補間は、カメラによって得られたことがな い透視光景を表示することを可能にする。例えば、M.LevoyとP.Hanrahan、"Ligh t Field Rendering"、SIGGRAPH 97.ACM、及びD.Scharstein、"Stereo Vision f or View Synthesis"、Computer Vision and Pattern Recognition Conference、 San Francisco、852〜858頁、1996年を参照のこと。 範囲推定と関連するイメージ画素は、あたかも別の視野(perspective)から 見たかのようにイメージ上に置かれうる。このことは視点従属ディスプレイの合 成を可能にする。例えばアフリカの自然保護領域のような遠隔地点の実データが 得られた状況を考える。このとき視覚者は、他のどこかに位置して、この範囲に 基づく視覚合成を通じて同じ場所であるように見える所を動き回る経験を与えら れている。2以上のカメラが像を補正し、範囲はカメラ対の間で計算される。我 々および他の者(例えば、D.Scharstein、"Stereo Vision for View Synthesis" 、Computer Vision and Pattern Recognition Conference、San Francisco、852 〜858頁、1996年参照)は、この知覚的な再構築オフラインを実証した。リアル タイム範囲決定(ranging)はそのような方法に親しむ者によって、従前に実証 された非リアルタイムディスプレイから完全に直接的に開発されることを期待さ れ得る。 2.3D光景モデリング 特定の場所の3次元表現の構築は、上述の範囲決定システムによって促進され る。例えば、建物の内部はステレオイメージングシステムによって連続して観察 され得る。ここで、連続範囲記述は、範囲セットの間の通信を確立するための、 距離測定と動きトラッキング特徴の両方を使用して統合されている(例えば、H . BakerとR.BollesとJ.Woodfill、"Realtime Stereo and Motion Integration for Navigation"、ISPRS Spatial Information from Digital Photogrammetry and OCmputer Vision、1994年9月、Munich Germany、17〜24頁参照)。そのような 連続した範囲および強度情報の蓄積は、種々の視点からの自動車又は家の連続し たリアルタイム観察に実証されるような、物体ジオメトリのモデリングに等しく 適用可能である。 図67は、この適用における本発明の使用の単純な例を表す。この図において 、ステレオカメラ対C1およびC2は、カメラ対の視界が例えば直交する様式で 交差するように配置される。この視界は建物C3と木C4、C5を含む。 上述したように、各カメラ対は光景のデジタルイメージを捕捉し格納する。各 カメラ対はまた、各ピクセルについての深度情報を計算する。1つの視界の1つ の物体は、2つのカメラ対の関係と各物体への距離を考慮に入れることによって 、他の視界の同じ物体と関連づけられ得る。この方法において、ステレオカメラ 対C1により捕捉された建物C3のイメージは、ステレオカメラC2により捕捉 された同じ建物のイメージと関連づけられ得る。深度情報を有効かつリアルタイ ムに捕捉することにより、開示された発明はそのような関連づけを可能にする。 関連づけには、各カメラ対からの各物体の距離の認識が要求され、そのような距 離情報はそれから各イメージに示されるように各物体を関連づけるために使用さ れる。 1つの物体が2つの視界において関連づけられると、その物体の3次元イメー ジが作成される。例えば、図67において、建物C3の前面および1つの側面の イメージが入手できてもよい。この建物の他の側面は、イメージの他の側面に配 置されたカメラ対を要求する可能性がある。 3次元イメージが構築されると、本来の知覚された各物体への距離と共に、ユ ーザの知覚された物理的な位置を考慮に入れて、そのイメージを通じてユーザを ナビゲートすることが可能となる。 この例においては、範囲情報の登録は同時に得られた深度データセットの2つ の対を一致させることによって得られた。別のアプローチはデータが直接統合さ れ得るように予めカメラセットを較正し、又は上述したように、個別の特徴を追 従するためにカメラの動きを使用することである。個別の特徴を追従するために カメラの動きを使用する場合、観察された動きはデータ統合のためのカメラ位置 の獲得を明らかにする。 H.動き分析 提示されたリアルタイムシステムの動きトラッキング能力は、信頼できる高速 空間情報の欠乏により分析方法が妨げられていた適用領域を開ける。我々の範囲 と動きの結果は特定のプロセスの動的モデルと共に取得されて、高度な注釈、制 御および測定可能性を与える。 例えば水泳、ランニング、空手、又はダンスのような、特定の一連のアクショ ンを要求するスポーツ又は物理的な活動の研究を考える。そのような連続を、「 本来の」活動を行う方法を表現する、理想化された連続に関連づけることはしば しば有用である。そのような活動の2次元イメージは、特定の価値ある情報を捕 捉し損なうことになる。それは、そのようなイメージでは、例えば運動者の身体 の部分への距離の正確な計算ができないからである。 開示された範囲を発見する発明は、特に図67に図示されるように、直交する 視界に方向付けされたステレオカメラ対と共に使用されたとき、上記のような用 途に使用され得る。そのようなカメラは、熟練した運動者を表現するイメージお よび深度情報を記録するために使用され得る。そのような情報は、その後、トレ ーニングする運動者を表現するイメージおよび深度情報の上にオーバレイされ得 る。このことは、例えば、前方、後方、側方、上面視点から示されるオーバーレ イされたイメージを生ぜしめ得る。それぞれの場合において、熟練者の動きと練 習生の動きとの間の差は強調され得る。 そのような能力は、歩行分析又は身体治療評価におけるように、機能不全に対 して等しく有効である(D.A.Meglan、"Enhanced Analysis of Human Locomotion "、Ohio State University、PhD Thesis,1991年参照)。 I.入力装置としての手の使用 もしステレオカメラ対がユーザの映像スクリーンディスプレイ上又はその近く に位置しているならば、開示された発明は、ディスプレイの前の規定された視界 内において起こる、手のジェスチャーのリアルタイム認識を可能にする。従って 、例えばステレオカメラは、仮想彫刻アプリケーションにおけるユーザの手の位 置およびオリエンテーションを識別するために使用され得る。仮想彫刻アプリケ ーションにおいては、手の位置およびオリエンテーションが追従されることによ り、ユーザがスクリーン上に表現される仮想物体を「形作る」ことが可能にされ る。同様に、特定のユーザのジェスチャー(例えば、スクリーンを指し示す)は 、標準のマウスと組み合わされて、又は標準のマウスの代替として、仮想ディス プレイの制御メカニズムとして使用され得る。例えば、R.J.K.Jacob、"Eye Trac king in Advanced Interface Design"、Virtual Environments and Advanced In terface Design 、258〜288頁、W.BarfieldとT.A.Furness編集、Oxford Universi ty Press、New York、1995年を参照のこと。 J.高度なナビゲーションおよび制御 高度なナビゲーションおよび制御の能力は、本明細書において述べられている リアルタイム範囲決定および動作分析システムが、移動する乗物に取り付けられ ることにより実現可能となる。単純なナビゲーションタスクにおいては、範囲決 定システムは乗物の前の地表が平坦かつ水平ではない場合に、警告として作用す る。このことは窪みのような障害を識別するために使用され、あるいは乗物が舗 装された地表から外れる危険にある場合を判定するために使用される。 範囲決定システムによって描写されるより複雑な形状の分析により、障害の検 知および弁別、移動する物体のトラッキング、および多数の移動する装置の整合 が可能となる。交差点に置かれると、範囲決定および動きシステムは交通、歩行 者および他の相互作用する通りの要素を監視することができ(N.FerrierとS.Row eとA.Blake、"Real Time Traffic Monitoring"、2nd IEEE Workshop on Applica tions of Computer Vision、Sarasota、Florida、1994年12月5〜7日;D.Beymer とP.McLauchlanとB.CoifmanとJ.Malik、"A Real-Time Computer Vision System for Measuring Traffic Parameters"、Computer Vision and Pattern Recogniti on Conference、Puerto Rico、1997年)、ある所定の状況のための特定の行動 (子供が車の座席に座っていると判定されたときにエアバッグの力を緩和する、 猫・鹿などであると判定された侵入者に対して音又は水を向ける、制御された区 域に入る人にその存在の危険を警告し又はその回りの危険な活動の向きを変える 、ごみ・再生利用可能物・果物などのような種々の素材を調査し評価する等のよ うな行動)を呼び起こす特殊化された警報として機能することができる。 乗物の周辺に設置されると、本発明はナビゲーションおよび障害回避制御のた めに情報を提供する。前方の範囲および動き測定は、乗物自体の道路に対する位 置と共に、他の乗物および潜在的な障害の存在、位置および速度を示す。側方お よび後方の範囲測定は、乗物の横方向のドリフト、他の近づく乗物、および一般 的な操作状態についての等しく重要な情報を提供する。本発明の処理のリアルタ イム高帯域幅の性質は、乗物の護送を高速移動に安全に近接して結合させること を可能にする。それは、パーキングおよびドッキングのような、近い範囲の操作 における自動ナビゲーションの基礎として使用され得る。 VI.要旨 要約すれば、本発明の様々な局面には、ソフトウェア/アルゴリズム、ハード ウェア実現、および応用が、単独でまたは組み合わせて含まれる。これらの実施 形態は、データの組を分析し、それらの相関性を決定し、そして、これらのデー タの組に含まれる実体的(substantive)属性情報を抽出する。ある形態において 、上記データの組は、何らかのプロセスの内部で、または何らかの外部刺激から 得られる。別の形態の1つにおいて、これらのデータの組は、同じ光景を観察す る空間的に変位させた2つのカメラからのイメージデータである。上記の様々な 実施形態によって、データをより使用可能な形式に変換し(例えば、センサス変 換)、その後、変換されたデータを相関させて、2つのデータの組の関係から導 出され得る何らかの所望の実体的な情報を表す出力を発生させる。 本発明のいくつかの実施形態は、イメージ処理の分野において、ファクショナ リズムを許容する局所変換(local transform)を規定および適用する。さらに、 本発明は、最先端技術からの進歩を明らかにするその他の特性を有する:(1) 高い感度−−局所変換は、所与のイメージ中に有意な局所的変化を提供するデー タを生成し、高密度組の結果値を生成する。いくつかの他の方法は低密度な(spa rse)結果を生成する;(2)高い安定性−−本スキームは、2つのイメージ間に おける対応点の近傍において同様の結果を生じる;(3)上記変換は、イメージ ゲインまたはバイアスにおける、センサまたはカメラハードウェアの相違に対し て不変の結果を生じ、これにより、適切にステレオ像(imagery)を処理する;( 4)本発明は、他のアルゴリズムよりも空間効率的である。必要とされるのは、 小さな格納バッファ組および2つの処理用イメージである。この空間効率特徴は 、ハードウェア実現のために必要なオーバーヘッドを低減し、より多くの局所参 照を用いることによって処理速度を高める;(5)本発明は、各ピクセル、各視 差毎に最大でも4つの命令しか必要としない内部ループを有するので、他のアル ゴリズムよりも時間効率的である;(6)本発明のいくつかの実施形態は、ステ レオ読み値が信頼性を持つ、または信頼性を持たない点を決定するための、対象 オペレーション(interest operation)と呼ばれる特有の信頼尺度を含む;(7) リアルタイム形状(real-time feature)トラッキングおよび局在化を必要とする 様々な規律(disciplines)に対する本発明の産業的な利用方法は、現時点では利 用可能ではない機能性を得ることを可能にし、プロセスの信頼性を大幅に高める 。 上記の発明の好適な実施形態の説明は、説明および記載の便宜上示したもので ある。これは全てを網羅しているわけではなく、開示されている厳密な形態に本 発明を限定するものでもない。明らかに、多数の改変例および変形例が当業者に は明らかである。当業者であれば、本発明の趣旨および範囲から逸脱することな く、本明細書中に記載した応用に代えて他の応用を使用し得ることが容易に理解 されるであろう。従って、本発明は、以下に記載の請求の範囲によってのみ限定 される。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,ML,MR, NE,SN,TD,TG),AP(GH,GM,KE,L S,MW,SD,SZ,UG,ZW),EA(AM,AZ ,BY,KG,KZ,MD,RU,TJ,TM),AL ,AM,AT,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,CZ,D E,DE,DK,DK,EE,EE,ES,FI,FI ,GB,GE,GH,GM,GW,HU,ID,IL, IS,JP,KE,KG,KP,KR,KZ,LC,L K,LR,LS,LT,LU,LV,MD,MG,MK ,MN,MW,MX,NO,NZ,PL,PT,RO, RU,SD,SE,SG,SI,SK,SK,SL,T J,TM,TR,TT,UA,UG,UZ,VN,YU ,ZW (72)発明者 ボン ハーゼン,ブライアン アメリカ合衆国 ネバダ 89701,カーソ ン シティ,フェアビュウ ドライブ ナ ンバー246 675 (72)発明者 アルカイア,ロバート デイル アメリカ合衆国 カリフォルニア 95118, サン ノゼ,パインハースト ドライブ 1448 【要約の続き】 である。これは、その外部環境からデータを受信し、対 応を演算し、そして、様々な処理後産業的アプリケーシ ョンに対応演算の結果を用いる。再構成可能イメージ処 理システムは、非パラメトリック局所変換とその後の相 関を用いることによって相関を決定する。これらの非パ ラメトリック局所変換は、センサスおよびランク情報を 含む。他の実施形態には、相関、修正、左右一貫性検査 および対象オペレータのアプリケーションが含まれる。

Claims (1)

  1. 【特許請求の範囲】 1.ある光景の第1のデータの組のイメージデータと第2のデータの組のイメー ジデータの間の最適な対応情報を提供する並列パイプライン方式イメージ処理シ ステム(parallel and pipelined image processing system)であって、 該第1のデータの組および該第2のデータの組中のそれぞれ選択されたイメー ジデータについて、複数の第1のベクトルおよび複数の第2のベクトルを発生さ せるベクトル発生器であって、該第1のベクトルおよび該第2のベクトルのそれ ぞれは、該選択されたイメージデータおよび該選択されたイメージデータの周囲 にある複数の選択されたイメージデータの間の順序付けられた(ordered)相関値 を表す、ベクトル発生器と、 該ベクトル発生器に接続され、該複数の第1のベクトルおよび該複数の第2の ベクトルを受信し、第1のオフセットだけ互いにオフセットされている選択され た第1のベクトルおよび第2のベクトルの間の第1の対応情報を発生させる相関 ユニットであって、第2のオフセットだけ互いにオフセットされている別の選択 された第1のベクトルおよび別の第2のベクトルの間の第2の応答情報を発生さ せ、最適化条件に従って該第1の対応情報または該第2の対応情報のいずれかを 選択することによって最適の対応情報を決定する、相関ユニットと、 を備えた、並列パイプライン方式イメージ処理システム。 2.それぞれ複数の要素を有する第1のデータの組および第2のデータの組の複 数の要素を処理するデータ処理システムにおいて短いレイテンシで視差結果を発 生させる方法であって、 該第1のデータの組の第1の要素を含む該第1および第2のデータの組の複数 の要素を受信するステップと、 該第1および第2のデータの組の実質的に全ての要素を受信する前に該第1の 要素についての視差結果を発生させるステップと、 を包含する、方法。 3.前記第1および第2のデータの組の複数の要素からなる連続的な行を受信す るステップと、 整数である該行の行数に等しい変換ウィンドウ高さを有する変換ウィンドウを 選択するステップと、 整数である該行の行数に等しい相関ウィンドウ高さを有する相関ウィンドウを 選択するステップと、 をさらに包含し、 前記第1の要素についての視差結果の発生は、該第1および第2のデータの組 のX行分の要素を受信する前に行われ、Xは該変換ウィンドウ高さおよび該相関 ウィンドウ高さの合計の半分未満である、 請求項2に記載の方法。 4.前記第1および第2のデータの組の複数の要素からなる連続的な行を受信す るステップと、 整数である該行の行数に等しい変換ウィンドウ高さを有する変換ウィンドウを 選択するステップと、 整数である該行の行数に等しい相関ウィンドウ高さを有する相関ウィンドウを 選択するステップであって、該相関ウィンドウ高さは該変換ウィンドウ高さより も大きいステップと、 をさらに包含し、 前記第1の要素についての視差結果の発生は、該第1および第2のデータの組 のX行分の要素を受信する前に行われ、Xは該相関ウィンドウ高さに等しい、請 求項2に記載の方法。 5.前記第1および第2のデータの組の複数の要素からなる連続的な行を受信す るステップであって、該行はイメージデータの連続的な走査線を表すステップ、 をさらに包含し、 前記第1の要素についての視差結果の発生は、該第1および第2のデータの組 のX行分の要素を受信する前に行われ、Xは1フレーム分のイメージデータを表 すのに必要な走査線の数に等しい、 請求項2に記載の方法。 6.それぞれ複数の要素を有する第1のデータの組および第2のデータの組の複 数の要素を処理するデータ処理システムにおいて短いレイテンシで視差結果を発 生させる方法であって、 該第2のデータの組の複数の選択された要素のそれぞれから特定の視差だけオ フセットされている該第1のデータの組の第1の要素を含む該第1および第2の データの組の複数の要素を受信するステップと、 該第1の要素および該複数の選択された要素のそれぞれを含む該受信した要素 に対して変換を行うステップと、 該変換された第1の要素と該複数の変換された選択された要素とを相関させて 、各視差について相関結果を発生させ、同時に、該第1および第2のデータの組 のそれぞれの1つ以上の要素に対して変換を行うステップと、 を包含する、方法。 7.それぞれ複数の要素を有する第1のデータの組および第2のデータの組の複 数の要素を処理するデータ処理システムにおいて短いレイテンシで視差結果を発 生させる方法であって、 該第2のデータの組の複数の選択された要素のそれぞれから特定の視差だけオ フセットされている該第1のデータの組の第1の要素を含む該第1および第2の データの組の複数の要素を受信するステップと、 該第1の要素および該複数の選択された要素のそれぞれを含む該受信した要素 に対して変換を行うステップと、 該変換された第1の要素と該複数の変換された選択された要素とを相関させて 、各視差について相関結果を発生させ、同時に、該第1および第2のデータの組 のそれぞれの1つ以上の要素を受信するステップと、 を包含する、方法。 8.それぞれ複数の要素を有する第1のデータの組および第2のデータの組の複 数の要素を処理するデータ処理システムにおいて短いレイテンシで視差結果を発 生させる方法であって、 該第2のデータの組の複数の選択された要素のそれぞれから特定の視差だけオ フセットされている該第1のデータの組の第1の要素を含む該第1および第2の データの組の複数の要素を受信するステップと、 該第1の要素および該複数の選択された要素のそれぞれを含む該受信した要素 に対して変換を行うステップと、 該変換された第1の要素と該複数の変換された選択された要素とを相関させて 、これにより、各視差について相関結果を発生させ、同時に、該第1および第2 のデータの組のそれぞれの1つ以上の要素に対して変換を行うステップと、 所定の最適化基準に従って、該相関結果の中の最適な相関結果を選択すること によって該第1の要素についての視差を発生させ、同時に、該第1および第2の データの組のそれぞれの変換された要素を相関させるステップと、 を包含する、方法。 9.それぞれ複数の要素を有する第1のデータの組および第2のデータの組の要 素を処理し、短いレイテンシで該要素についての視差結果を発生させるパイプラ イン方式システムであって、 該第1のデータの組の第1の要素を含む該第1および第2のデータの組の要素 を受信し、該第1の要素を含む該受信した要素に対して変換を行う変換ユニット と、 該変換ユニットに接続され、該変換された第1の要素を含む該第1および第2 のデータの組の変換された要素を受信する相関ユニットと、 該相関ユニットに接続され、該変換ユニット内に該第1および第2のデータの 組の実質的に全ての要素が受信される前に、該第1の要素についての視差結果を 発生させる視差発生ユニットと、 を備えた、システム。 10.前記変換ユニットは、前記第1および第2のデータの組の複数の要素から なる連続的な行を受信およびその変換を実行でき、該変換は、整数である該行の 行数に等しい変換ウィンドウ高さを有する変換ウィンドウに対して行われ、 前記相関ユニットは、整数である該行の行数に等しい相関ウィンドウ高さを有 する相関ウィンドウに対して該変換された要素について相関結果を発生させるこ とができ、 前記視差発生ユニットは、該変換ユニット内に該第1および第2のデータの組 のX行分の要素を受信する前に該第1の要素の視差結果を発生させることができ 、Xは、該変換ウィンドウ高さおよび該相関ウィンドウ高さの半分未満である、 請求項9に記載のシステム。 11.前記変換ユニットは、前記第1および第2のデータの組の複数の要素から なる連続的な行に対する変換を受信および実行でき、該変換は、整数である該行 の行数に等しい変換ウィンドウ高さを有する変換ウィンドウに対して行われ、 前記相関ユニットは、整数である該行の行数に等しい相関ウィンドウ高さを有 する相関ウィンドウに対して該変換された要素について相関結果を発生させるこ とができ、 前記視差発生ユニットは、該変換ユニット内に該第1および第2のデータの組 のX行分の要素を受信する前に該第1の要素の視差結果を発生させることができ 、Xは、該相関ウィンドウ高さに等しい、 請求項9に記載のシステム。 12.前記変換ユニットは、前記第1および第2のデータの組の複数の要素から なる連続的な行を受信およびその変換を実行でき、該行は、イメージデータの連 続的な走査線を表し、 前記視差発生ユニットは、該変換ユニット内に該第1および第2のデータの組 のX行分の要素を受信する前に該第1の要素の視差結果を発生させることができ 、Xは、1フレーム分のイメージデータを表すのに必要な走査線の数に等しい、 請求項9に記載のシステム。 13.それぞれ複数の要素を有する第1のデータの組および第2のデータの組の 要素を処理し、短いレイテンシで該要素についての視差結果を発生させるパイプ ライン方式システムであって、 該第2のデータの組の複数の選択された要素のそれぞれから特定の視差だけオ フセットされている該第1のデータの組の第1の要素を含む該第1および第2の データの組の要素を受信し、該第1の要素および該複数の選択された要素のそれ ぞれを含む該受信した要素に対して変換を行う変換ユニットと、 該変換された第1の要素を、該複数の変換された選択された要素のそれぞれと 相関させて、各視差についての相関結果を発生させる相関ユニットであって、同 時に、該変換ユニットが、該第1および第2のデータの組のそれぞれの1つ以上 の受信した要素に対して変換を行う、相関ユニットと、 を備えた、システム。 14.それぞれ複数の要素を有する第1のデータの組および第2のデータの組の 要素を処理し、短いレイテンシで該要素についての視差結果を発生させるパイプ ライン方式システムであって、 該第2のデータの組の複数の選択された要素のそれぞれから特定の視差だけオ フセットされている該第1のデータの組の第1の要素を含む該第1および第2の データの組の要素を受信し、該第1の要素および該複数の選択された要素のそれ ぞれを含む該受信した要素に対して変換を行う変換ユニットと、 該変換された第1の要素を、該複数の変換された選択された要素のそれぞれと 相関させて、各視差についての相関結果を発生させる相関ユニットであって、同 時に、該変換ユニットが、該第1および第2のデータの組のそれぞれの1つ以上 の要素を受信する、相関ユニットと、 を備えた、システム。 15.それぞれ複数の要素を有する第1のデータの組および第2のデータの組の 要素を処理し、短いレイテンシで該要素についての視差結果を発生させるパイプ ライン方式システムであって、 該第2のデータの組の複数の選択された要素のそれぞれから特定の視差だけオ フセットされている該第1のデータの組の第1の要素を含む該第1および第2の データの組の要素を受信し、該第1の要素および該複数の選択された要素のそれ ぞれを含む該受信した要素に対して変換を行う変換ユニットと、 該変換された第1の要素を、該複数の変換された選択された要素のそれぞれと 相関させて、各視差についての相関結果を発生させる相関ユニットであって、同 時に、該変換ユニットが、該第1および第2のデータの組のそれぞれの1つ以上 の受信した要素に対して変換を行う、相関ユニットと、 所定の最適化基準に従って、該相関結果の中の最適な相関結果を選択すること によって該第1の要素についての視差を発生させる視差発生ユニットであって、 同時に、該相関ユニットが、該第1および第2のデータの組のそれぞれの変換さ れた要素を相関させる、視差発生ユニットと、 を備えた、システム。 16.複数の順序付けられた要素<X1,X2,...,XM-1,XM>を含む第1 のデータの組および複数の順序付けられた要素<Y1,Y2,...,YN-1,YN >を含む第2のデータの組の要素を処理するデータ処理システムにおいて短いレ イテンシで視差結果を発生させる方法であって、MおよびNはそれぞれ該第1お よび第2のデータの組内の要素の合計数を表し、 該第1のデータの組の要素XiおよびXkならびに該第2のデータの組の要素Yj およびYlを含む該第1および第2のデータの組の要素に対して変換を行うステ ップであって、該要素Xiは該要素Yjから第1の視差だけオフセットされており 、該要素Xkは該要素Ylから第2の視差だけオフセットされている、ステップと 、 変換された該要素Xiを変換された該要素Yjと相関させて第1の相関結果を発 生させ、同時に、変換された該要素Xkを変換された該要素Ylと相関させて第2 の相関結果を発生させるステップと、 を包含する、方法。 17.前記第1および第2のデータの組の前記要素は、ピクセル輝度を表し、 該第1および第2のデータの組の前記変換された要素は、該要素の隣接要素に 対する相関順序(relative orderings)を表す、 請求項16に記載の方法。 18.前記第1および第2のデータの組の複数の要素からなる連続する行の要素 を受信するステップであって、該行はイメージデータの連続する走査線を表すス テップと、 該第1および第2のデータの組のR行分の要素を受信する前に前記要素Xiの 視差結果を発生させるステップであって、Rは、1フレーム分のイメージデータ を表すのに必要な走査線の数に等しい、ステップと、 をさらに包含する、請求項16に記載の方法。 19.前記第1および第2のデータの組の前記変換された要素は、センサスベク トルである、請求項16に記載の方法。 20.前記第1および第2の相関結果のそれぞれは、合計されたハミング距離(s ummed hamming distance)を含む、請求項16に記載の方法。 21.前記第1および第2の相関結果のそれぞれは、その合計されたハミング距 離が所定の飽和閾値を越える場合に該飽和閾値に設定される、請求項20に記載 の方法。 22.前記第2のデータの組の要素Yj-1に対して変換を行うステップであって 、前記要素Xiは該要素Yj-1から第3の視差だけオフセットされている、ステッ プと、 変換された該要素Xiを該第2のデータの組の該要素Yj-1と相関させて第3の 相関結果を発生させるステップと、 所定の最適化基準に基づいて、前記第1および該第3の相関結果を含む1組の 相関結果から該要素Xiについての最適相関結果を選択するステップと、 をさらに包含する、請求項16に記載の方法。 23.前記要素Xiについての視差結果を発生させるステップであって、該視差 結果は、該要素Xiと相関されたときに該要素Xiについての前記最適相関結果を 発生させた要素から該要素Xiがオフセットされている視差に等しい、ステップ 、 をさらに包含する、請求項22に記載の方法。 24.複数の順序付けられた要素<X1,X2,...,XM-1,XM>を含む第1 のデータの組および複数の順序付けられた要素<Y1,Y2,...,YN-1,YN >を含む第2のデータの組の要素を処理するデータ処理システムにおいて短いレ イテンシで視差結果を発生させる方法であって、MおよびNはそれぞれ該第1お よび第2のデータの組内の要素の合計数を表し、 該第1のデータの組の要素XiおよびXi-kならびに該第2のデータの組の要素 YjおよびYj-2kを含む該第1および第2のデータの組の要素に対して変換を行 うステップであって、kは0よりも大きい整数であって、該要素Xiは該要素Yj から第1の視差だけオフセットされており、該要素Xi-kは該要素Yj-2kから第 2の視差だけオフセットされている、ステップと、 変換された該要素Xiを変換された該要素Yjと相関させて第1の相関結果を発 生させ、同時に、変換された該要素Xi-kを変換された該要素Yj-2kと相関させ て第2の相関結果を発生させるステップと、 を包含する、方法。 25.複数の順序付けられた要素<X1,X2,...,XM-1,XM>を含む第1 のデータの組および複数の順序付けられた要素<Y1,Y2,...,YN-1,YN >を含む第2のデータの組の要素を処理するデータ処理システムにおいて短いレ イテンシで視差結果を発生させる方法であって、MおよびNはそれぞれ該第 1および第2のデータの組内の要素の合計数を表し、 該第1のデータの組の複数の要素Xi,Xi-1,Xi-2,...,Xi-(D-1)なら びに該第2のデータの組の複数の要素Yj,Yj-1,Yj-2,...,Y(j-k)-(D- 1) を含む該第1および第2のデータの組の要素に対して変換を行うステップであ って、Dは1よりも大きい所望の相関視差数であり、kは0よりも大きく且つ( D−1)以下である整数であって、該要素Xiは該要素Yj,Yj-1,Yj-2,.. .,Yj-(D-1)から第1の複数の視差だけそれぞれオフセットされており、該要 素Xi-kは該要素Yj-k,Y(j-k)-1,Y(j-k)-2,...,Y(j-k)-(D-1)から該 第1の複数の視差だけそれぞれオフセットされている、ステップと、 変換された該要素Xiを変換された該要素Yj,Yj-1,Yj-2,...,Yj-(D -1) とそれぞれ相関させて、これにより、該要素Xiについての第1の複数のD個 の相関結果を発生させるステップと、 該変換された要素Xi-kを該変換された要素Y(j-k),Y(j-k)-1,...,Y( j-k)-(D-1) とそれぞれ相関させて、これにより、該要素Xi-kについての第2の 複数のD個の相関結果を発生させるステップであって、該要素Xi-kを該要素Y( j-2k) と相関させるのと実質的に同時に該要素Xiを該要素Yjと相関させる、ス テップと、 を包含する、方法。 26.複数の順序付けられた要素<X1,X2,...,XM-1,XM>を含む第1 のデータの組および複数の順序付けられた要素<Y1,Y2,...,YN-1,YN >を含む第2のデータの組の要素について短いレイテンシで視差結果を発生させ るパイプライン方式システムであって、MおよびNはそれぞれ該第1および第2 のデータの組内の要素数を表し、 該第1のデータの組の該要素XiおよびXkを含む該第1のデータの組の要素に 対して変換を行う第1の変換ユニットと、 該第2のデータの組の該要素YjおよびYlを含む該第2のデータの組の要素に 対して変換を行う第2の変換ユニットであって、該要素Xiは該要素Yjから 第1の視差だけオフセットされており、該要素Xkは該要素Ylから第2の視差だ けオフセットされている、第2の変換ユニットと、 該変換された要素Xiを該変換された要素Yjと相関させて第1の相関結果を発 生させる、該第1の視差に関連する第1の相関ユニットと、 該変換された要素Xkを該変換された要素Ylと相関させて第2の相関結果を発 生させる、該第2の視差に関連する第2の相関ユニットとを備え、該第1および 第2の相関ユニットは同時に動作してそれぞれ該第1および第2の相関結果を発 生させる、 システム。 27.前記第1および第2のデータの組の前記要素は、ピクセル輝度を表し、 該第1および第2のデータの組の前記変換された要素は、該要素の隣接要素に対 する相関順序を表す、 請求項26に記載のシステム。 28.前記第1および第2の変換ユニットは前記第1および第2のデータの組の 連続的な行の要素を受信することができ、該行はイメージデータの連続的な走査 線を表し、前記システムは、 該第1および第2の変換ユニット内に該第1および第2のデータの組のR行分 の要素を受信する前に前記要素Xiの視差結果を発生させる視差発生ユニットで あって、Rは、1フレーム分のイメージデータを表すのに必要な走査線の数に等 しい、視差発生ユニット、 をさらに備えている、請求項26に記載のシステム。 29.前記第1および第2の変換ユニットは、前記第1および第2のデータの組 の要素をセンサスベクトルに変換することができる、請求項26に記載のシステ ム。 30.前記第1および第2の相関ユニットは、複数の合計されたハミング距離を 計算して、これにより、前記変換された要素Xiを前記変換された要素Yjと相関 させ、前記変換された要素Xkを前記変換された要素Ylと相関させることができ る、請求項26に記載のシステム。 31.前記第1および第2の相関ユニットは、前記計算されたハミング距離が所 定の飽和閾値を越える場合に、それぞれ前記第1および第2の相関結果を該飽和 閾値に設定することができる、請求項30に記載のシステム。 32.前記第2の変換ユニットは、前記第2のデータの組の要素Yj-1に対して 変換を行うことができ、前記要素Xiは該要素Yj-1から第3の視差だけオフセッ トされており、前記システムは、 変換された該要素Xiを変換された該要素Yj-1と相関させて第3の相関結果を 発生させる、該第3の視差に関連する第3の相関ユニットと、 所定の最適化基準に基づいて、該第1および第3の相関結果を含む1組の相関 結果から該要素Xiについての最適相関結果を選択する視差発生ユニットと、 をさらに備えている、請求項26に記載のシステム。 33.前記視差発生ユニットは、前記要素Xiと相関されたときに該要素Xiにつ いての前記最適相関結果を発生させた要素から該要素Xiがオフセットされてい る視差に等しい該要素Xiについての視差結果を発生させることができる、請求 項32に記載のシステム。 34.一貫性検査を行うために、前記最適相関結果を発生させた前記相関ユニッ トに関連する視差を一時的に格納する待ちバッファ(queueing buffer)をさらに 備えている、請求項32に記載のシステム。 35.複数の順序付けられた要素<X1,X2,...,XM-1,XM>を含む第1 のデータの組および複数の順序付けられた要素<Y1,Y2,...,YN-1,YN >を含む第2のデータの組の要素について短しルイテンシで視差結果を発生 させるパイプライン方式システムであって、MおよびNはそれぞれ該第1および 第2のデータの組内の要素数を表し、 該第1のデータの組の該要素XiおよびXi-kを含む該第1のデータの組の要素 に対して変換を行う第1の変換ユニットと、 該第2のデータの組の該要素YjおよびYj-2kを含む該第2のデータの組の要 素に対して変換を行う第2の変換ユニットであって、該要素Xiは該要素Yjから 第1の視差だけオフセットされており、該要素Xi-kは該要素Yj-2kから第2の 視差だけオフセットされている、第2の変換ユニットと、 該変換された要素Xiを該変換された要素Yjと相関させて第1の相関結果を発 生させる、該第1の視差に関連する第1の相関ユニットと、 該変換された要素Xi-kを該変換された要素Yj-2kと相関させて第2の相関結 果を発生させる、該第2の視差に関連する第2の相関ユニットとを備え、該第1 および第2の相関ユニットは同時に動作してそれぞれ該第1および第2の相関結 果を発生させる、 システム。 36.複数の順序付けられた要素<X1,X2,...,XM-1,XM>を含む第1 のデータの組および複数の順序付けられた要素<Y1,Y2,...,YN-1,YN >を含む第2のデータの組の要素について短いレイテンシで視差結果を発生させ るパイプライン方式システムであって、MおよびNはそれぞれ該第1および第2 のデータの組内の要素の合計数を表し、 該第1のデータの組の複数の要素Xi,Xi-1,Xi-2,...,Xi-(D-1)を含 む該第1のデータの組の要素に対して変換を行う第1の変換ユニットであって、 Dは1よりも大きい所望の相関視差数であり、 該第2のデータの組の複数の要素Yj,Yj-1,Yj-2,...,Y(j-k)-(D-1) を含む該第2のデータの組の要素に対して変換を行う第2の変換ユニットであっ て、kは0よりも大きく且つ(D−1)以下である整数であって、該要素Xiは 該要素Yj,Yj-1,Yj-2,...,Yj-(D-1)から第1の複数の視差だけそれぞ れオフセットされており、該要素Xi-kは該要素Yj-k,Y(j-k)-1,Y(j-k)-2 ,...,Y(j-k)-(D-1)から該第1の複数の視差だけそれぞれオフセッ トされている、第2の変換ユニットと、 該D個の相関視差の特定の1つにそれぞれ関連する複数の相関ユニットであっ て、変換された該要素Xiを変換された該要素Yj,Yj-1,Yj-2,...,Yj- (D-1) とそれぞれ相関させて、これにより、該要素X,についての第1の複数のD 個の相関結果を発生させるとともに、該変換された要素Xi-kを該変換された要 素Y(j-k),Y(j-k)-1,...,Y(j-k)-(D-1)とそれぞれ相関させて、これに より、該要素Xi-kについての第2の複数のD個の相関結果を発生させ、該要素 Xi-kを該要素Y(j-2k)と相関させるのと実質的に同時に該要素Xiを該要素Yj と相関させる、複数の相関ユニットと、 を備えた、システム。 37.それぞれ特定の視差に関連する直列接続された複数の相関ユニットを有す るパイプライン方式システムにおける、それぞれ複数の要素を有する第1のデー タの組および第2のデータの組の要素について短いレイテンシで視差結果を発生 させるスケーラブル相関ユニットであって、 該第1のデータの組からの第1の変換された要素と、該第2のデータの組から の第2の変換された要素と、第1の現相関結果と、該第1の現相関結果に関連す る第1の現視差とを受信する1組の入力と、 該第1および第2の変換された要素を相関させ、第2の現相関結果および該第 2の現相関結果に関連する第2の現視差を発生させ、所定の最適化条件に基づい て最適現相関結果およびこれに関連する現視差を選択する相関プロセッサと、 該第1の変換された要素と、該最適現相関結果およびこれに関連する現視差と を第1の遅延だけ遅延して提供し、該第2の変換された要素を第2の遅延だけ遅 延して提供する1組の遅延出力(delayed outputs)と、 を備えた、スケーラブル相関ユニット。 38.複数の要素を有する1つのデータの組の要素についてのセンサスベクトル を発生させるセンサス変換発生器であって、 複数の遅延を有する行遅延ユニットであって、該データの組の順序付けられた 要素ストリームを受信し、該順序付けられた要素ストリームを該複数の遅延を通 して伝搬させる、行遅延ユニット、 を備えた、センサス変換発生器。 39.複数の要素を有する1つのデータの組の要素についてのセンサスベクトル を発生させるセンサス変換発生器であって、 複数の比較器を有する比較器ユニットであって、該データの組の要素を受信し 、受信した参照要素を選択された複数の受信した要素のそれぞれと比較し、これ により、該参照要素についてのセンサスベクトルを発生させる、比較器ユニット 、 を備えた、センサス変換発生器。 40.複数の要素を有する1つのデータの組の要素についてのセンサスベクトル を発生させるセンサス変換発生器であって、 複数の遅延を有する行遅延ユニットであって、該データの組の順序付けられた 要素ストリームを受信し、該順序付けられた要素ストリームを該複数の遅延を通 して伝搬させる、行遅延ユニットと、 該行遅延ユニットに接続され、複数の比較器を有する比較器ユニットであって 、該行遅延ユニットを通って伝搬した該データの組の要素を受信し、受信した参 照要素を選択された複数の受信した要素のそれぞれと比較し、これにより、該参 照要素についてのセンサスベクトルを発生させる、比較器ユニットと、 を備えた、センサス変換発生器。 41.前記データの組の前記要素は、M行およびN列のピクセルを有するイメー ジのピクセル輝度を表し、 前記行遅延ユニットは、それぞれN個の遅延を有する複数の遅延群を含み、該 複数の群は、前記順序付けられた要素ストリームが該群間を伝搬するように相互 接続され、 前記センサス変換発生器は、該行遅延ユニット内の該遅延群の数と実質的に等 しい数の行を有するセンサス変換ウィンドウ内の参照要素についてのセンサスベ クトルを発生させる、 請求項40に記載のセンサス変換発生器。 42.それぞれ複数の要素を有する第1のデータの組および第2のデータの組の 要素を処理するデータ処理システムにおいて視差結果を発生させる方法であって 、 該第2のデータの組の複数の選択された要素のそれぞれから特定の視差だけオ フセットされている該第1のデータの組の第1の要素を含む該第1および第2の データの組の複数の要素を受信するステップと、 該第1の要素および該複数の選択された要素のそれぞれを含む該受信した要素 に対して変換を行うステップと、 該変換された第1の要素と該複数の変換された選択された要素とを相関させて 、各視差について相関結果を発生させるステップと、 以下のステップ、即ち、 所定の最適化基準に従って、該相関結果の中の最適な相関結果を選択するこ とによって予備視差結果を発生させるステップ、 第1および第2の隣接相関結果として、該予備視差結果の次に高い視差およ び次に低い視差についての該相関結果を選択するステップ、および、 該第1および第2の隣接相関結果および該予備視差結果のサブピクセル推定 関数によって該視差結果を計算するステップ、 によって該第1の要素についての視差結果を発生させるステップと、 を包含する、方法。 43.前記サブピクセル推定関数は、実質的にV形に整形された区分関数(piece wise function)である、請求項42に記載の方法。 44.前記サブピクセル推定関数は、以下のステップ、即ち、 前記第1の隣接相関結果から前記予備視差結果を引いたものに等しい第1の差 を計算するステップと、 前記第2の隣接相関結果から該予備視差結果を引いたものに等しい第2の差を 計算するステップと、 該第1および第2の差の最小値を該第1および第2の差の最大値の2倍で割っ たものを0.5から引いたものに等しいオフセットを計算するステップと、 該予備視差結果と該オフセットとの和として該視差結果を計算するステップと 、を含む、請求項42に記載の方法。 45.それぞれ特定の視差に関連する直列接続された複数の相関ユニットを有す るパイプライン方式システムにおける、それぞれ複数の要素を有する第1のデー タの組および第2のデータの組の要素について短いレイテンシで複数の視差結果 を発生させるとともにその一貫性を検査するスケーラブル相関ユニットであって 、 該第1のデータの組からの第1の変換された要素と、該第2のデータの組から の第2の変換された要素と、該第1のデータの組の要素についての第1の現相関 結果および第1の関連視差と、該第2のデータの組の要素についての第2の現相 関結果および第2の関連視差とを含む1組の入力と、 該第1および第2の変換された要素を相関させ、新相関結果および新関連視差 を発生させ、それぞれ該第1および第2のデータの組について、所定の最適化基 準に基づいて、第1および第2の最適現相関結果および関連現視差を選択する相 関プロセッサと、 該第1の変換された要素と、第1の遅延だけ遅延する該第1の最適現相関結果 および関連現視差と、該第2の変換された要素と、第2の遅延だけ遅延する該第 2の最適現相関結果および関連現視差とを含む1組の遅延出力(delayed outputs )と、 を備えた、スケーラブル相関ユニット。 46.短いレイテンシで複数のイメージ要素についての視差結果を発生させるこ とによって、整列された第1のカメラおよび第2のカメラからの該イメージ要素 の距離を決定する方法であって、 該第1カメラおよび該第2のカメラによってそれぞれ捕捉されたピクセル輝度 を表す第1のデータの組および第2のデータの組のイメージ要素を取得するステ ップであって、該第1および第2のデータの組はそれぞれ複数のイメージ要素を 有し、該第2のデータの組の複数の選択されたイメージ要素のそれぞれから特定 の視差だけオフセットされている該第1のデータの組の第1のイメージ要素を含 む、ステップと、 該第1のイメージ要素および該複数の選択されたイメージ要素のそれぞれを含 む該受信したイメージ要素に対して変換を行うステップであって、 該変換された第1のイメージ要素と該複数の変換された選択されたイメージ要 素とを相関させて、各視差について相関結果を発生させ、同時に、該第1および 第2のデータの組のそれぞれの1つ以上のイメージ要素に対して変換を行うステ ップと、 所定の最適化基準に従って、該相関結果の中の最適な相関結果を選択すること によって該第1のイメージ要素についての視差結果を発生させ、同時に、該第1 および第2のデータの組のそれぞれの変換されたイメージ要素を相関させるステ ップと、 該視差結果に基づいて、該第1および第2のカメラからの該第1のイメージ要 素の距離を決定するステップと、 を包含する、方法。
JP54397298A 1997-04-15 1998-04-02 データ処理システムおよび方法 Expired - Fee Related JP4168125B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/839,767 US6215898B1 (en) 1997-04-15 1997-04-15 Data processing system and method
US08/839,767 1997-04-15
PCT/US1998/006675 WO1998047061A2 (en) 1997-04-15 1998-04-02 Data processing system and method for determining and analyzing correspondence information for a stereo image

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007252770A Division JP2008033958A (ja) 1997-04-15 2007-09-27 データ処理システムおよび方法

Publications (2)

Publication Number Publication Date
JP2000512790A true JP2000512790A (ja) 2000-09-26
JP4168125B2 JP4168125B2 (ja) 2008-10-22

Family

ID=25280573

Family Applications (2)

Application Number Title Priority Date Filing Date
JP54397298A Expired - Fee Related JP4168125B2 (ja) 1997-04-15 1998-04-02 データ処理システムおよび方法
JP2007252770A Withdrawn JP2008033958A (ja) 1997-04-15 2007-09-27 データ処理システムおよび方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2007252770A Withdrawn JP2008033958A (ja) 1997-04-15 2007-09-27 データ処理システムおよび方法

Country Status (6)

Country Link
US (6) US6215898B1 (ja)
EP (1) EP0923757A2 (ja)
JP (2) JP4168125B2 (ja)
AU (1) AU716654B2 (ja)
CA (1) CA2258293A1 (ja)
WO (1) WO1998047061A2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006236022A (ja) * 2005-02-25 2006-09-07 Renasas Northern Japan Semiconductor Inc 画像処理装置
US7570815B2 (en) 2002-03-22 2009-08-04 British Telecommunications Plc Comparing patterns
US7574051B2 (en) 2005-06-10 2009-08-11 British Telecommunications Plc Comparison of patterns
US7620249B2 (en) 2004-09-17 2009-11-17 British Telecommunications Public Limited Company Analysis of patterns
US8040428B2 (en) 2005-12-19 2011-10-18 British Telecommunications Public Limited Company Method for focus control
US8135210B2 (en) 2005-07-28 2012-03-13 British Telecommunications Public Limited Company Image analysis relating to extracting three dimensional information from a two dimensional image
JP2019120591A (ja) * 2018-01-05 2019-07-22 パナソニックIpマネジメント株式会社 視差値算出装置、視差値算出方法及びプログラム

Families Citing this family (587)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US6693666B1 (en) * 1996-12-11 2004-02-17 Interval Research Corporation Moving imager camera for track and range capture
US6215898B1 (en) * 1997-04-15 2001-04-10 Interval Research Corporation Data processing system and method
US6097851A (en) * 1998-03-31 2000-08-01 Agilent Technologies Low latency correlation
US6438497B1 (en) 1998-12-11 2002-08-20 Symyx Technologies Method for conducting sensor array-based rapid materials characterization
US6477479B1 (en) 1998-12-11 2002-11-05 Symyx Technologies Sensor array for rapid materials characterization
CA2317743A1 (en) * 1998-12-11 2000-06-22 Paul Mansky Sensor array-based system and method for rapid materials characterization
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
JP4759810B2 (ja) * 1999-05-10 2011-08-31 ソニー株式会社 画像処理装置及びロボット装置並びに画像処理方法
US6781606B2 (en) * 1999-05-20 2004-08-24 Hewlett-Packard Development Company, L.P. System and method for displaying images using foveal video
US6931384B1 (en) * 1999-06-04 2005-08-16 Microsoft Corporation System and method providing utility-based decision making about clarification dialog given communicative uncertainty
JP2001005675A (ja) * 1999-06-21 2001-01-12 Matsushita Electric Ind Co Ltd プログラム変換装置及びプロセッサ
EP1204894A4 (en) * 1999-08-01 2002-09-25 Deep Video Imaging Ltd INTERACTIVE THREE-DIMENSIONAL DISPLAY DEVICE WITH LAYERED SCREENS
EP1208557A4 (en) * 1999-08-19 2007-03-07 Pure Depth Ltd PRESENTATION OF DATA ON MULTILAYER SCREENS
JP2003507827A (ja) 1999-08-19 2003-02-25 ディープ ヴィデオ イメイジング リミテッド 多層スクリーンの表示方法
EP1212745B1 (en) * 1999-08-19 2006-02-08 PureDepth Limited Control of depth movement for visual display with layered screens
US6674892B1 (en) * 1999-11-01 2004-01-06 Canon Kabushiki Kaisha Correcting an epipolar axis for skew and offset
US20050079524A1 (en) * 2000-01-21 2005-04-14 Shaw Sandy C. Method for identifying biomarkers using Fractal Genomics Modeling
US7366719B2 (en) * 2000-01-21 2008-04-29 Health Discovery Corporation Method for the manipulation, storage, modeling, visualization and quantification of datasets
US20050026199A1 (en) * 2000-01-21 2005-02-03 Shaw Sandy C. Method for identifying biomarkers using Fractal Genomics Modeling
US20050158736A1 (en) * 2000-01-21 2005-07-21 Shaw Sandy C. Method for studying cellular chronomics and causal relationships of genes using fractal genomics modeling
US6701005B1 (en) 2000-04-29 2004-03-02 Cognex Corporation Method and apparatus for three-dimensional object segmentation
US7224357B2 (en) * 2000-05-03 2007-05-29 University Of Southern California Three-dimensional modeling based on photographic images
US7227526B2 (en) 2000-07-24 2007-06-05 Gesturetek, Inc. Video-based image control system
US6678413B1 (en) * 2000-11-24 2004-01-13 Yiqing Liang System and method for object identification and behavior characterization using video analysis
US7043745B2 (en) * 2000-12-29 2006-05-09 Etalk Corporation System and method for reproducing a video session using accelerated frame recording
NZ511444A (en) 2001-05-01 2004-01-30 Deep Video Imaging Ltd Information display
US7110525B1 (en) 2001-06-25 2006-09-19 Toby Heller Agent training sensitive call routing system
DE10201859B4 (de) * 2002-01-18 2004-01-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zur Versorgung eines programmgestützten Informationssystems mit gezielten Ortsinformationen
US6990639B2 (en) * 2002-02-07 2006-01-24 Microsoft Corporation System and process for controlling electronic components in a ubiquitous computing environment using multimodal integration
JP2003274374A (ja) 2002-03-18 2003-09-26 Sony Corp 画像伝送装置及び方法、送信装置及び方法、受信装置及び方法、並びにロボット装置
US6668218B1 (en) 2002-03-27 2003-12-23 Lockheed Martin Corporation Method and system for target localization
CA2390350A1 (en) * 2002-06-10 2003-12-10 Ibm Canada Limited-Ibm Canada Limitee Incremental cardinality estimation for a set of data values
US7161579B2 (en) * 2002-07-18 2007-01-09 Sony Computer Entertainment Inc. Hand-held computer interactive device
US7883415B2 (en) 2003-09-15 2011-02-08 Sony Computer Entertainment Inc. Method and apparatus for adjusting a view of a scene being displayed according to tracked head motion
US7623115B2 (en) 2002-07-27 2009-11-24 Sony Computer Entertainment Inc. Method and apparatus for light input device
US7646372B2 (en) * 2003-09-15 2010-01-12 Sony Computer Entertainment Inc. Methods and systems for enabling direction detection when interfacing with a computer program
US8797260B2 (en) 2002-07-27 2014-08-05 Sony Computer Entertainment Inc. Inertially trackable hand-held controller
US7312816B2 (en) 2002-07-24 2007-12-25 Freestone Systems, Inc. Digital observation system
US20040017333A1 (en) * 2002-07-24 2004-01-29 Cooper Alan Neal Universal serial bus display unit
US9474968B2 (en) 2002-07-27 2016-10-25 Sony Interactive Entertainment America Llc Method and system for applying gearing effects to visual tracking
US7627139B2 (en) * 2002-07-27 2009-12-01 Sony Computer Entertainment Inc. Computer image and audio processing of intensity and input devices for interfacing with a computer program
US8686939B2 (en) 2002-07-27 2014-04-01 Sony Computer Entertainment Inc. System, method, and apparatus for three-dimensional input control
US8570378B2 (en) 2002-07-27 2013-10-29 Sony Computer Entertainment Inc. Method and apparatus for tracking three-dimensional movements of an object using a depth sensing camera
US7760248B2 (en) 2002-07-27 2010-07-20 Sony Computer Entertainment Inc. Selective sound source listening in conjunction with computer interactive processing
US8313380B2 (en) 2002-07-27 2012-11-20 Sony Computer Entertainment America Llc Scheme for translating movements of a hand-held controller into inputs for a system
US9393487B2 (en) 2002-07-27 2016-07-19 Sony Interactive Entertainment Inc. Method for mapping movements of a hand-held controller to game commands
US9682319B2 (en) * 2002-07-31 2017-06-20 Sony Interactive Entertainment Inc. Combiner method for altering game gearing
US7017140B2 (en) * 2002-08-29 2006-03-21 Bae Systems Information And Electronic Systems Integration Inc. Common components in interface framework for developing field programmable based applications independent of target circuit board
AU2003262974A1 (en) * 2002-08-29 2004-03-19 Bae Systems Information And Electronic Systems Integration Inc Mechanism for integrating programmable devices into software based frameworks for distributed computing
US20040045007A1 (en) * 2002-08-30 2004-03-04 Bae Systems Information Electronic Systems Integration, Inc. Object oriented component and framework architecture for signal processing
US7920718B2 (en) * 2002-09-05 2011-04-05 Cognex Corporation Multi-zone passageway monitoring system and method
US7400744B2 (en) * 2002-09-05 2008-07-15 Cognex Technology And Investment Corporation Stereo door sensor
US7397929B2 (en) * 2002-09-05 2008-07-08 Cognex Technology And Investment Corporation Method and apparatus for monitoring a passageway using 3D images
NZ521505A (en) 2002-09-20 2005-05-27 Deep Video Imaging Ltd Multi-view display
US7225324B2 (en) 2002-10-31 2007-05-29 Src Computers, Inc. Multi-adaptive processing systems and techniques for enhancing parallelism and performance of computational functions
US6879879B2 (en) * 2002-10-31 2005-04-12 Hewlett-Packard Development Company, L.P. Telepresence system with automatic user-surrogate height matching
US20040136485A1 (en) * 2002-12-19 2004-07-15 Bennett Forrest H. Method and apparatus for quantum mechanical analysis of molecular systems
KR100503820B1 (ko) * 2003-01-30 2005-07-27 학교법인 포항공과대학교 시스톨릭 어레이를 이용한 멀티레이어 실시간 입체 영상정합 시스템 및 방법
US7446797B2 (en) * 2003-02-10 2008-11-04 Activeye, Inc. User assisted customization of automated video surveillance systems
US9177387B2 (en) * 2003-02-11 2015-11-03 Sony Computer Entertainment Inc. Method and apparatus for real time motion capture
US7146356B2 (en) * 2003-03-21 2006-12-05 International Business Machines Corporation Real-time aggregation of unstructured data into structured data for SQL processing by a relational database engine
US7665041B2 (en) 2003-03-25 2010-02-16 Microsoft Corporation Architecture for controlling a computer using hand gestures
US8745541B2 (en) 2003-03-25 2014-06-03 Microsoft Corporation Architecture for controlling a computer using hand gestures
IL155525A0 (en) * 2003-04-21 2009-02-11 Yaron Mayer System and method for 3d photography and/or analysis of 3d images and/or display of 3d images
NZ525956A (en) 2003-05-16 2005-10-28 Deep Video Imaging Ltd Display control system for use with multi-layer displays
US8072470B2 (en) * 2003-05-29 2011-12-06 Sony Computer Entertainment Inc. System and method for providing a real-time three-dimensional interactive environment
US7792335B2 (en) * 2006-02-24 2010-09-07 Fotonation Vision Limited Method and apparatus for selective disqualification of digital images
US7844076B2 (en) * 2003-06-26 2010-11-30 Fotonation Vision Limited Digital image processing using face detection and skin tone information
US7574016B2 (en) * 2003-06-26 2009-08-11 Fotonation Vision Limited Digital image processing using face detection information
US20050015201A1 (en) * 2003-07-16 2005-01-20 Sarnoff Corporation Method and apparatus for detecting obstacles
US8287373B2 (en) 2008-12-05 2012-10-16 Sony Computer Entertainment Inc. Control device for communicating visual information
US10279254B2 (en) 2005-10-26 2019-05-07 Sony Interactive Entertainment Inc. Controller having visually trackable object for interfacing with a gaming system
US9573056B2 (en) * 2005-10-26 2017-02-21 Sony Interactive Entertainment Inc. Expandable control device via hardware attachment
US7874917B2 (en) 2003-09-15 2011-01-25 Sony Computer Entertainment Inc. Methods and systems for enabling depth and direction detection when interfacing with a computer program
US8323106B2 (en) * 2008-05-30 2012-12-04 Sony Computer Entertainment America Llc Determination of controller three-dimensional location using image analysis and ultrasonic communication
US8326084B1 (en) 2003-11-05 2012-12-04 Cognex Technology And Investment Corporation System and method of auto-exposure control for image acquisition hardware using three dimensional information
US7623674B2 (en) * 2003-11-05 2009-11-24 Cognex Technology And Investment Corporation Method and system for enhanced portal security through stereoscopy
DE10351778A1 (de) * 2003-11-06 2005-06-09 Daimlerchrysler Ag Verfahren zur Korrespondenzanalyse in Bilddatensätzen
ES2233202B1 (es) * 2003-11-24 2006-10-16 Universidad De Granada Dispositivo para la estimacion de flujo optico en imagenes mediante fpgas.
US7663689B2 (en) * 2004-01-16 2010-02-16 Sony Computer Entertainment Inc. Method and apparatus for optimizing capture device settings through depth information
US7800582B1 (en) * 2004-04-21 2010-09-21 Weather Central, Inc. Scene launcher system and method for weather report presentations and the like
US7799273B2 (en) 2004-05-06 2010-09-21 Smp Logic Systems Llc Manufacturing execution system for validation, quality and risk assessment and monitoring of pharmaceutical manufacturing processes
US7444197B2 (en) 2004-05-06 2008-10-28 Smp Logic Systems Llc Methods, systems, and software program for validation and monitoring of pharmaceutical manufacturing processes
US7787009B2 (en) * 2004-05-10 2010-08-31 University Of Southern California Three dimensional interaction with autostereoscopic displays
US20050270310A1 (en) * 2004-06-03 2005-12-08 Eric Jeffrey Apparatuses and methods for incorporating a border within an image
FR2872357A1 (fr) * 2004-06-24 2005-12-30 St Microelectronics Sa Verification d'un flux de bits
EP1610462B1 (fr) * 2004-06-24 2012-07-11 St Microelectronics S.A. Circuit et procédé de vérification de la constance de biais d'un flux de bits
US8031978B2 (en) * 2004-06-30 2011-10-04 Hitachi Aloka Medical, Ltd. Method and apparatus of image processing to detect edges
JP5405741B2 (ja) 2004-07-26 2014-02-05 オートモーティブ システムズ ラボラトリー インコーポレーテッド 道路使用弱者保護システム
JP2006221603A (ja) * 2004-08-09 2006-08-24 Toshiba Corp 3次元情報復元装置、3次元情報復元方法および3次元情報復元プログラム
US9030532B2 (en) * 2004-08-19 2015-05-12 Microsoft Technology Licensing, Llc Stereoscopic image display
US8547401B2 (en) * 2004-08-19 2013-10-01 Sony Computer Entertainment Inc. Portable augmented reality device and method
DE102004042166A1 (de) * 2004-08-31 2006-03-16 MAX-PLANCK-Gesellschaft zur Förderung der Wissenschaften e.V. Bildverarbeitungseinrichtung und entsprechendes Betriebsverfahren
CA2511040A1 (en) * 2004-09-23 2006-03-23 The Governors Of The University Of Alberta Method and system for real time image rendering
US7664315B2 (en) * 2004-11-03 2010-02-16 Tyzx, Inc. Integrated image processor
JP4692956B2 (ja) * 2004-11-22 2011-06-01 株式会社ソニー・コンピュータエンタテインメント 描画処理装置および描画処理方法
JP4449723B2 (ja) * 2004-12-08 2010-04-14 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
US20110102553A1 (en) * 2007-02-28 2011-05-05 Tessera Technologies Ireland Limited Enhanced real-time face models from stereo imaging
US8488023B2 (en) * 2009-05-20 2013-07-16 DigitalOptics Corporation Europe Limited Identifying facial expressions in acquired digital images
DE102005008131A1 (de) * 2005-01-31 2006-08-03 Daimlerchrysler Ag Objektdetektion auf Bildpunktebene in digitalen Bildsequenzen
US7512262B2 (en) * 2005-02-25 2009-03-31 Microsoft Corporation Stereo-based image processing
WO2006110952A1 (en) * 2005-04-19 2006-10-26 Fairlight.Au Pty Ltd Media processing system and method
US8971597B2 (en) * 2005-05-16 2015-03-03 Intuitive Surgical Operations, Inc. Efficient vision and kinematic data fusion for robotic surgical instruments and other applications
US9492240B2 (en) 2009-06-16 2016-11-15 Intuitive Surgical Operations, Inc. Virtual measurement tool for minimally invasive surgery
US20070016425A1 (en) * 2005-07-12 2007-01-18 Koren Ward Device for providing perception of the physical environment
US20070019883A1 (en) * 2005-07-19 2007-01-25 Wong Earl Q Method for creating a depth map for auto focus using an all-in-focus picture and two-dimensional scale space matching
US7606430B2 (en) * 2005-08-30 2009-10-20 Asml Netherlands B.V. Lithographic apparatus and device manufacturing method utilizing a multiple dictionary compression method for FPD
US20070120969A1 (en) * 2005-09-15 2007-05-31 Alpha Omega International Audio visual communication system and method
US8111904B2 (en) 2005-10-07 2012-02-07 Cognex Technology And Investment Corp. Methods and apparatus for practical 3D vision system
US7697827B2 (en) 2005-10-17 2010-04-13 Konicek Jeffrey C User-friendlier interfaces for a camera
US7716100B2 (en) * 2005-12-02 2010-05-11 Kuberre Systems, Inc. Methods and systems for computing platform
US20070167702A1 (en) * 2005-12-30 2007-07-19 Intuitive Surgical Inc. Medical robotic system providing three-dimensional telestration
US7907166B2 (en) * 2005-12-30 2011-03-15 Intuitive Surgical Operations, Inc. Stereo telestration for robotic surgery
KR101249988B1 (ko) * 2006-01-27 2013-04-01 삼성전자주식회사 사용자의 위치에 따른 영상을 디스플레이하는 장치 및 방법
US7804983B2 (en) * 2006-02-24 2010-09-28 Fotonation Vision Limited Digital image acquisition control and correction method and apparatus
US7551754B2 (en) * 2006-02-24 2009-06-23 Fotonation Vision Limited Method and apparatus for selective rejection of digital images
US7616254B2 (en) * 2006-03-16 2009-11-10 Sony Corporation Simple method for calculating camera defocus from an image scene
CN100455263C (zh) * 2006-04-26 2009-01-28 东软飞利浦医疗设备系统有限责任公司 一种x射线机图像处理装置
WO2007139927A1 (en) * 2006-05-26 2007-12-06 The Cleveland Clinic Foundation Method for measuring biomechanical properties in an eye
KR100813100B1 (ko) * 2006-06-29 2008-03-17 성균관대학교산학협력단 실시간 확장 가능한 스테레오 매칭 시스템 및 방법
EP2047262A4 (en) * 2006-07-13 2011-03-16 Univ Yale PROGNOSTIC METHODS OF CANCER FROM THE SUBCELLULAR LOCATION OF BIOMARKERS
US7847730B2 (en) * 2006-09-27 2010-12-07 Bae Systems Information And Electronic Systems Integration, Inc. Software defined navigation signal generator
US8310656B2 (en) 2006-09-28 2012-11-13 Sony Computer Entertainment America Llc Mapping movements of a hand-held controller to the two-dimensional image plane of a display screen
US8781151B2 (en) 2006-09-28 2014-07-15 Sony Computer Entertainment Inc. Object detection using video input combined with tilt angle information
USRE48417E1 (en) 2006-09-28 2021-02-02 Sony Interactive Entertainment Inc. Object direction using video input combined with tilt angle information
JP2008089868A (ja) * 2006-09-29 2008-04-17 Fujifilm Corp 描画点データ取得方法および装置ならびに描画方法および装置
US7876940B2 (en) * 2007-01-30 2011-01-25 International Business Machines Corporation Universal image processing
US8238624B2 (en) * 2007-01-30 2012-08-07 International Business Machines Corporation Hybrid medical image processing
US8125510B2 (en) 2007-01-30 2012-02-28 Ankur Agarwal Remote workspace sharing
EP2115662B1 (en) 2007-02-28 2010-06-23 Fotonation Vision Limited Separating directional lighting variability in statistical face modelling based on texture space decomposition
US8649604B2 (en) 2007-03-05 2014-02-11 DigitalOptics Corporation Europe Limited Face searching and detection in a digital image acquisition device
US8290357B2 (en) * 2007-03-15 2012-10-16 Nvidia Corporation Auto-exposure technique in a camera
US8340512B2 (en) * 2007-03-15 2012-12-25 Nvidia Corporation Auto focus technique in an image capture device
US8005238B2 (en) 2007-03-22 2011-08-23 Microsoft Corporation Robust adaptive beamforming with enhanced noise suppression
US20080231835A1 (en) * 2007-03-23 2008-09-25 Keigo Iizuka Divergence ratio distance mapping camera
US8117137B2 (en) 2007-04-19 2012-02-14 Microsoft Corporation Field-programmable gate array based accelerator system
US8462369B2 (en) * 2007-04-23 2013-06-11 International Business Machines Corporation Hybrid image processing system for a single field of view having a plurality of inspection threads
US8331737B2 (en) * 2007-04-23 2012-12-11 International Business Machines Corporation Heterogeneous image processing system
US8326092B2 (en) * 2007-04-23 2012-12-04 International Business Machines Corporation Heterogeneous image processing system
US8005237B2 (en) 2007-05-17 2011-08-23 Microsoft Corp. Sensor array beamformer post-processor
US8126260B2 (en) * 2007-05-29 2012-02-28 Cognex Corporation System and method for locating a three-dimensional object using machine vision
CN101689299B (zh) * 2007-06-20 2016-04-13 汤姆逊许可证公司 用于图像的立体匹配的系统和方法
US8538696B1 (en) * 2007-09-25 2013-09-17 The Weather Channel, Llc Providing weather data for a location using weather data stored for a finite number of locations
US8629976B2 (en) * 2007-10-02 2014-01-14 Microsoft Corporation Methods and systems for hierarchical de-aliasing time-of-flight (TOF) systems
US8675219B2 (en) * 2007-10-24 2014-03-18 International Business Machines Corporation High bandwidth image processing with run time library function offload via task distribution to special purpose engines
JP5356396B2 (ja) * 2007-10-29 2013-12-04 エヌイーシー ラボラトリーズ アメリカ インク 分散確率ベースのアクティブサンプリング法を用いた最適なシステム構成の発見
US9135073B2 (en) 2007-11-15 2015-09-15 International Business Machines Corporation Server-processor hybrid system for processing data
WO2009063925A1 (ja) * 2007-11-15 2009-05-22 Nec Corporation 文書管理・検索システムおよび文書の管理・検索方法
US20090132582A1 (en) * 2007-11-15 2009-05-21 Kim Moon J Processor-server hybrid system for processing data
US20090150556A1 (en) * 2007-12-06 2009-06-11 Kim Moon J Memory to storage communication for hybrid systems
US9332074B2 (en) * 2007-12-06 2016-05-03 International Business Machines Corporation Memory to memory communication and storage for hybrid systems
TW200925023A (en) * 2007-12-07 2009-06-16 Altek Corp Method of displaying shot image on car reverse video system
US8542907B2 (en) * 2007-12-17 2013-09-24 Sony Computer Entertainment America Llc Dynamic three-dimensional object mapping for user-defined control device
US20090166684A1 (en) * 2007-12-26 2009-07-02 3Dv Systems Ltd. Photogate cmos pixel for 3d cameras having reduced intra-pixel cross talk
JP4956452B2 (ja) * 2008-01-25 2012-06-20 富士重工業株式会社 車両用環境認識装置
JP4876080B2 (ja) * 2008-01-25 2012-02-15 富士重工業株式会社 環境認識装置
US8750578B2 (en) * 2008-01-29 2014-06-10 DigitalOptics Corporation Europe Limited Detecting facial expressions in digital images
US8433747B2 (en) * 2008-02-01 2013-04-30 Microsoft Corporation Graphics remoting architecture
US8229251B2 (en) * 2008-02-08 2012-07-24 International Business Machines Corporation Pre-processing optimization of an image processing system
WO2009101798A1 (ja) * 2008-02-12 2009-08-20 Panasonic Corporation 複眼撮像装置、測距装置、視差算出方法及び測距方法
CN102016877B (zh) * 2008-02-27 2014-12-10 索尼计算机娱乐美国有限责任公司 用于捕获场景的深度数据并且应用计算机动作的方法
US8897482B2 (en) * 2008-02-29 2014-11-25 Trimble Ab Stereo photogrammetry from a single station using a surveying instrument with an eccentric camera
US8368753B2 (en) 2008-03-17 2013-02-05 Sony Computer Entertainment America Llc Controller with an integrated depth camera
US8284249B2 (en) 2008-03-25 2012-10-09 International Business Machines Corporation Real time processing of video frames for triggering an alert
US8379963B2 (en) * 2008-03-28 2013-02-19 International Business Machines Corporation Visual inspection system
KR100996542B1 (ko) * 2008-03-31 2010-11-24 성균관대학교산학협력단 실시간 모션 검출 영상 처리 장치 및 그 방법
US8311281B2 (en) * 2008-04-09 2012-11-13 Nec Corporation Object detection apparatus
US8788967B2 (en) 2008-04-10 2014-07-22 Perceptive Pixel, Inc. Methods of interfacing with multi-input devices and multi-input display systems employing interfacing techniques
GB0807411D0 (en) * 2008-04-23 2008-05-28 Mitsubishi Electric Inf Tech Scale robust feature-based indentfiers for image identification
US8280194B2 (en) 2008-04-29 2012-10-02 Sony Corporation Reduced hardware implementation for a two-picture depth map algorithm
US8830341B2 (en) * 2008-05-22 2014-09-09 Nvidia Corporation Selection of an optimum image in burst mode in a digital camera
US8121363B2 (en) * 2008-06-12 2012-02-21 International Business Machines Corporation Thermographic image processing system
US8385557B2 (en) 2008-06-19 2013-02-26 Microsoft Corporation Multichannel acoustic echo reduction
US8325909B2 (en) 2008-06-25 2012-12-04 Microsoft Corporation Acoustic echo suppression
US8203699B2 (en) 2008-06-30 2012-06-19 Microsoft Corporation System architecture design for time-of-flight system having reduced differential pixel size, and time-of-flight systems so designed
US8261117B2 (en) * 2008-09-11 2012-09-04 International Business Machines Corporation Virtualization in a multi-core processor (MCP)
US8131659B2 (en) * 2008-09-25 2012-03-06 Microsoft Corporation Field-programmable gate array based accelerator system
US8301638B2 (en) * 2008-09-25 2012-10-30 Microsoft Corporation Automated feature selection based on rankboost for ranking
US8610726B2 (en) * 2008-09-26 2013-12-17 Apple Inc. Computer systems and methods with projected display
US7881603B2 (en) 2008-09-26 2011-02-01 Apple Inc. Dichroic aperture for electronic imaging device
US20100079653A1 (en) * 2008-09-26 2010-04-01 Apple Inc. Portable computing system with a secondary image output
US8341638B2 (en) * 2008-09-30 2012-12-25 International Business Machines Corporation Delegated virtualization across physical partitions of a multi-core processor (MCP)
US8438404B2 (en) * 2008-09-30 2013-05-07 International Business Machines Corporation Main processing element for delegating virtualized control threads controlling clock speed and power consumption to groups of sub-processing elements in a system such that a group of sub-processing elements can be designated as pseudo main processing element
US8732716B2 (en) 2008-09-30 2014-05-20 International Business Machines Corporation Virtualization across physical partitions of a multi-core processor (MCP)
US8553093B2 (en) * 2008-09-30 2013-10-08 Sony Corporation Method and apparatus for super-resolution imaging using digital imaging devices
US8194995B2 (en) * 2008-09-30 2012-06-05 Sony Corporation Fast camera auto-focus
US20100095188A1 (en) * 2008-10-09 2010-04-15 Transwitch Corporation Apparatus and method for detecting and correcting errors in control characters of a multimedia interface
FI121901B (fi) * 2008-10-17 2011-05-31 Visidon Oy Objektien ilmaiseminen ja seuraaminen digitaalisissa kuvissa
US8634635B2 (en) * 2008-10-30 2014-01-21 Clever Sys, Inc. System and method for stereo-view multiple animal behavior characterization
US9824008B2 (en) 2008-11-21 2017-11-21 International Business Machines Corporation Cache memory sharing in a multi-core processor (MCP)
US7804329B2 (en) * 2008-11-21 2010-09-28 International Business Machines Corporation Internal charge transfer for circuits
US9886389B2 (en) * 2008-11-21 2018-02-06 International Business Machines Corporation Cache memory bypass in a multi-core processor (MCP)
US9122617B2 (en) 2008-11-21 2015-09-01 International Business Machines Corporation Pseudo cache memory in a multi-core processor (MCP)
US8806129B2 (en) 2008-11-21 2014-08-12 International Business Machines Corporation Mounted cache memory in a multi-core processor (MCP)
US20100128118A1 (en) * 2008-11-26 2010-05-27 Locarna Systems, Inc. Identification of visual fixations in a video stream
US8961313B2 (en) * 2009-05-29 2015-02-24 Sony Computer Entertainment America Llc Multi-positional three-dimensional controller
US8830224B2 (en) 2008-12-31 2014-09-09 Intuitive Surgical Operations, Inc. Efficient 3-D telestration for local robotic proctoring
US8681321B2 (en) * 2009-01-04 2014-03-25 Microsoft International Holdings B.V. Gated 3D camera
KR101290023B1 (ko) * 2009-01-29 2013-07-30 닛본 덴끼 가부시끼가이샤 영상 시그니처 생성 디바이스
US8448094B2 (en) * 2009-01-30 2013-05-21 Microsoft Corporation Mapping a natural input device to a legacy system
US8682028B2 (en) * 2009-01-30 2014-03-25 Microsoft Corporation Visual target tracking
US8565476B2 (en) 2009-01-30 2013-10-22 Microsoft Corporation Visual target tracking
US8577085B2 (en) * 2009-01-30 2013-11-05 Microsoft Corporation Visual target tracking
US8577084B2 (en) * 2009-01-30 2013-11-05 Microsoft Corporation Visual target tracking
US8199248B2 (en) * 2009-01-30 2012-06-12 Sony Corporation Two-dimensional polynomial model for depth estimation based on two-picture matching
US8295546B2 (en) 2009-01-30 2012-10-23 Microsoft Corporation Pose tracking pipeline
US8294767B2 (en) * 2009-01-30 2012-10-23 Microsoft Corporation Body scan
US8487938B2 (en) * 2009-01-30 2013-07-16 Microsoft Corporation Standard Gestures
US8565477B2 (en) 2009-01-30 2013-10-22 Microsoft Corporation Visual target tracking
US8267781B2 (en) 2009-01-30 2012-09-18 Microsoft Corporation Visual target tracking
US8588465B2 (en) 2009-01-30 2013-11-19 Microsoft Corporation Visual target tracking
US20100199231A1 (en) * 2009-01-30 2010-08-05 Microsoft Corporation Predictive determination
US7996793B2 (en) 2009-01-30 2011-08-09 Microsoft Corporation Gesture recognizer system architecture
US8199186B2 (en) * 2009-03-05 2012-06-12 Microsoft Corporation Three-dimensional (3D) imaging based on motionparallax
US8773355B2 (en) 2009-03-16 2014-07-08 Microsoft Corporation Adaptive cursor sizing
US9256282B2 (en) * 2009-03-20 2016-02-09 Microsoft Technology Licensing, Llc Virtual object manipulation
US8988437B2 (en) 2009-03-20 2015-03-24 Microsoft Technology Licensing, Llc Chaining animations
US8527657B2 (en) * 2009-03-20 2013-09-03 Sony Computer Entertainment America Llc Methods and systems for dynamically adjusting update rates in multi-player network gaming
US9313376B1 (en) 2009-04-01 2016-04-12 Microsoft Technology Licensing, Llc Dynamic depth power equalization
GB2469342A (en) * 2009-04-09 2010-10-13 Sony Comp Entertainment Europe A system and method of image transmission using stereographic images
US8342963B2 (en) * 2009-04-10 2013-01-01 Sony Computer Entertainment America Inc. Methods and systems for enabling control of artificial intelligence game characters
US8942428B2 (en) 2009-05-01 2015-01-27 Microsoft Corporation Isolate extraneous motions
US8181123B2 (en) 2009-05-01 2012-05-15 Microsoft Corporation Managing virtual port associations to users in a gesture-based computing environment
US8253746B2 (en) 2009-05-01 2012-08-28 Microsoft Corporation Determine intended motions
US9015638B2 (en) 2009-05-01 2015-04-21 Microsoft Technology Licensing, Llc Binding users to a gesture based system and providing feedback to the users
US8503720B2 (en) 2009-05-01 2013-08-06 Microsoft Corporation Human body pose estimation
US8638985B2 (en) 2009-05-01 2014-01-28 Microsoft Corporation Human body pose estimation
US9498718B2 (en) 2009-05-01 2016-11-22 Microsoft Technology Licensing, Llc Altering a view perspective within a display environment
US9377857B2 (en) * 2009-05-01 2016-06-28 Microsoft Technology Licensing, Llc Show body position
US9898675B2 (en) 2009-05-01 2018-02-20 Microsoft Technology Licensing, Llc User movement tracking feedback to improve tracking
US8340432B2 (en) 2009-05-01 2012-12-25 Microsoft Corporation Systems and methods for detecting a tilt angle from a depth image
US8649554B2 (en) 2009-05-01 2014-02-11 Microsoft Corporation Method to control perspective for a camera-controlled computer
US8660303B2 (en) * 2009-05-01 2014-02-25 Microsoft Corporation Detection of body and props
US8393964B2 (en) 2009-05-08 2013-03-12 Sony Computer Entertainment America Llc Base station for position location
US8142288B2 (en) 2009-05-08 2012-03-27 Sony Computer Entertainment America Llc Base station movement detection and compensation
DE102009003110A1 (de) * 2009-05-14 2010-11-18 Robert Bosch Gmbh Bildverarbeitungsverfahren zur Bestimmung von Tiefeninformation aus wenigstens zwei mittels eines Stereokamerasystems aufgenommenen Eingangsbildern
US8509479B2 (en) * 2009-05-29 2013-08-13 Microsoft Corporation Virtual object
US8856691B2 (en) 2009-05-29 2014-10-07 Microsoft Corporation Gesture tool
US8418085B2 (en) 2009-05-29 2013-04-09 Microsoft Corporation Gesture coach
US9383823B2 (en) 2009-05-29 2016-07-05 Microsoft Technology Licensing, Llc Combining gestures beyond skeletal
US8379101B2 (en) 2009-05-29 2013-02-19 Microsoft Corporation Environment and/or target segmentation
US8744121B2 (en) 2009-05-29 2014-06-03 Microsoft Corporation Device for identifying and tracking multiple humans over time
US8693724B2 (en) 2009-05-29 2014-04-08 Microsoft Corporation Method and system implementing user-centric gesture control
US9400559B2 (en) 2009-05-29 2016-07-26 Microsoft Technology Licensing, Llc Gesture shortcuts
US9182814B2 (en) 2009-05-29 2015-11-10 Microsoft Technology Licensing, Llc Systems and methods for estimating a non-visible or occluded body part
US8625837B2 (en) 2009-05-29 2014-01-07 Microsoft Corporation Protocol and format for communicating an image from a camera to a computing environment
JP5456159B2 (ja) * 2009-05-29 2014-03-26 デジタルオプティックス・コーポレイション・ヨーロッパ・リミテッド 背景から前景の頭頂部を分離するための方法および装置
US8320619B2 (en) 2009-05-29 2012-11-27 Microsoft Corporation Systems and methods for tracking a model
US20100302365A1 (en) * 2009-05-29 2010-12-02 Microsoft Corporation Depth Image Noise Reduction
US8542252B2 (en) * 2009-05-29 2013-09-24 Microsoft Corporation Target digitization, extraction, and tracking
US8487871B2 (en) 2009-06-01 2013-07-16 Microsoft Corporation Virtual desktop coordinate transformation
US9155592B2 (en) * 2009-06-16 2015-10-13 Intuitive Surgical Operations, Inc. Virtual measurement tool for minimally invasive surgery
US8665375B2 (en) * 2009-06-22 2014-03-04 Wsi Corporation Apparatus and method for tracking the location of a pointing element in a cropped video field
US8390680B2 (en) 2009-07-09 2013-03-05 Microsoft Corporation Visual representation expression based on player expression
US9159151B2 (en) 2009-07-13 2015-10-13 Microsoft Technology Licensing, Llc Bringing a visual representation to life via learned input from the user
US8565479B2 (en) * 2009-08-13 2013-10-22 Primesense Ltd. Extraction of skeletons from 3D maps
US8264536B2 (en) * 2009-08-25 2012-09-11 Microsoft Corporation Depth-sensitive imaging via polarization-state mapping
FR2949637B1 (fr) * 2009-08-28 2011-09-23 Commissariat Energie Atomique Dispositif de calcul reconfigurable sur voisinage flexible de pixels
US9141193B2 (en) 2009-08-31 2015-09-22 Microsoft Technology Licensing, Llc Techniques for using human gestures to control gesture unaware programs
US20110050857A1 (en) * 2009-09-03 2011-03-03 Electronics And Telecommunications Research Institute Apparatus and method for displaying 3d image in 3d image system
US8725238B2 (en) * 2009-09-11 2014-05-13 Agency For Science, Technology And Research Electrocardiogram signal processing system
US8330134B2 (en) 2009-09-14 2012-12-11 Microsoft Corporation Optical fault monitoring
US8508919B2 (en) 2009-09-14 2013-08-13 Microsoft Corporation Separation of electrical and optical components
US8428340B2 (en) * 2009-09-21 2013-04-23 Microsoft Corporation Screen space plane identification
US8760571B2 (en) 2009-09-21 2014-06-24 Microsoft Corporation Alignment of lens and image sensor
US8976986B2 (en) * 2009-09-21 2015-03-10 Microsoft Technology Licensing, Llc Volume adjustment based on listener position
US9014546B2 (en) 2009-09-23 2015-04-21 Rovi Guides, Inc. Systems and methods for automatically detecting users within detection regions of media devices
US8452087B2 (en) * 2009-09-30 2013-05-28 Microsoft Corporation Image selection techniques
US8619128B2 (en) * 2009-09-30 2013-12-31 Apple Inc. Systems and methods for an imaging system using multiple image sensors
US8723118B2 (en) * 2009-10-01 2014-05-13 Microsoft Corporation Imager for constructing color and depth images
US8564534B2 (en) 2009-10-07 2013-10-22 Microsoft Corporation Human tracking system
US7961910B2 (en) 2009-10-07 2011-06-14 Microsoft Corporation Systems and methods for tracking a model
US8867820B2 (en) * 2009-10-07 2014-10-21 Microsoft Corporation Systems and methods for removing a background of an image
US8963829B2 (en) 2009-10-07 2015-02-24 Microsoft Corporation Methods and systems for determining and tracking extremities of a target
US20110202150A1 (en) * 2009-10-16 2011-08-18 Newport Controls Controller system adapted for SPA
US20110093099A1 (en) * 2009-10-16 2011-04-21 Newport Controls Controller system adapted for spa
US9400548B2 (en) * 2009-10-19 2016-07-26 Microsoft Technology Licensing, Llc Gesture personalization and profile roaming
US20110099476A1 (en) * 2009-10-23 2011-04-28 Microsoft Corporation Decorating a display environment
JP5578701B2 (ja) * 2009-10-30 2014-08-27 任天堂株式会社 楽音生成プログラム、楽音生成装置、楽音生成システム、および、楽音生成方法
US8988432B2 (en) * 2009-11-05 2015-03-24 Microsoft Technology Licensing, Llc Systems and methods for processing an image for target tracking
US8843857B2 (en) 2009-11-19 2014-09-23 Microsoft Corporation Distance scalable no touch computing
US9244533B2 (en) 2009-12-17 2016-01-26 Microsoft Technology Licensing, Llc Camera navigation for presentations
US20110151974A1 (en) * 2009-12-18 2011-06-23 Microsoft Corporation Gesture style recognition and reward
US20110150271A1 (en) 2009-12-18 2011-06-23 Microsoft Corporation Motion detection using depth images
US8320621B2 (en) 2009-12-21 2012-11-27 Microsoft Corporation Depth projector system with integrated VCSEL array
US8027582B2 (en) * 2009-12-21 2011-09-27 Sony Corporation Autofocus with confidence measure
US9207765B2 (en) * 2009-12-31 2015-12-08 Microsoft Technology Licensing, Llc Recognizing interactive media input
US9268404B2 (en) * 2010-01-08 2016-02-23 Microsoft Technology Licensing, Llc Application gesture interpretation
US8631355B2 (en) 2010-01-08 2014-01-14 Microsoft Corporation Assigning gesture dictionaries
US9019201B2 (en) 2010-01-08 2015-04-28 Microsoft Technology Licensing, Llc Evolving universal gesture sets
CN102129678A (zh) * 2010-01-12 2011-07-20 鸿富锦精密工业(深圳)有限公司 影像特征模型建立系统及方法以及应用其的影像处理系统
US8933884B2 (en) 2010-01-15 2015-01-13 Microsoft Corporation Tracking groups of users in motion capture system
US8334842B2 (en) 2010-01-15 2012-12-18 Microsoft Corporation Recognizing user intent in motion capture system
US8676581B2 (en) 2010-01-22 2014-03-18 Microsoft Corporation Speech recognition analysis via identification information
US8265341B2 (en) 2010-01-25 2012-09-11 Microsoft Corporation Voice-body identity correlation
US8864581B2 (en) 2010-01-29 2014-10-21 Microsoft Corporation Visual based identitiy tracking
US8891067B2 (en) * 2010-02-01 2014-11-18 Microsoft Corporation Multiple synchronized optical sources for time-of-flight range finding systems
US8687044B2 (en) 2010-02-02 2014-04-01 Microsoft Corporation Depth camera compatibility
US8619122B2 (en) 2010-02-02 2013-12-31 Microsoft Corporation Depth camera compatibility
US8717469B2 (en) * 2010-02-03 2014-05-06 Microsoft Corporation Fast gating photosurface
US8659658B2 (en) * 2010-02-09 2014-02-25 Microsoft Corporation Physical interaction zone for gesture-based user interfaces
US8499257B2 (en) * 2010-02-09 2013-07-30 Microsoft Corporation Handles interactions for human—computer interface
US8633890B2 (en) * 2010-02-16 2014-01-21 Microsoft Corporation Gesture detection based on joint skipping
US20110199302A1 (en) * 2010-02-16 2011-08-18 Microsoft Corporation Capturing screen objects using a collision volume
US8928579B2 (en) * 2010-02-22 2015-01-06 Andrew David Wilson Interacting with an omni-directionally projected display
US8787663B2 (en) 2010-03-01 2014-07-22 Primesense Ltd. Tracking body parts by combined color image and depth processing
US8655069B2 (en) 2010-03-05 2014-02-18 Microsoft Corporation Updating image segmentation following user input
US8422769B2 (en) * 2010-03-05 2013-04-16 Microsoft Corporation Image segmentation using reduced foreground training data
US8411948B2 (en) 2010-03-05 2013-04-02 Microsoft Corporation Up-sampling binary images for segmentation
US20110223995A1 (en) 2010-03-12 2011-09-15 Kevin Geisner Interacting with a computer based application
US20110221755A1 (en) * 2010-03-12 2011-09-15 Kevin Geisner Bionic motion
US8279418B2 (en) * 2010-03-17 2012-10-02 Microsoft Corporation Raster scanning for depth detection
US8213680B2 (en) * 2010-03-19 2012-07-03 Microsoft Corporation Proxy training data for human body tracking
US20110234481A1 (en) * 2010-03-26 2011-09-29 Sagi Katz Enhancing presentations using depth sensing cameras
US8514269B2 (en) * 2010-03-26 2013-08-20 Microsoft Corporation De-aliasing depth images
US8523667B2 (en) * 2010-03-29 2013-09-03 Microsoft Corporation Parental control settings based on body dimensions
EP2372512A1 (en) * 2010-03-30 2011-10-05 Harman Becker Automotive Systems GmbH Vehicle user interface unit for a vehicle electronic device
US8605763B2 (en) 2010-03-31 2013-12-10 Microsoft Corporation Temperature measurement and control for laser and light-emitting diodes
US9098873B2 (en) 2010-04-01 2015-08-04 Microsoft Technology Licensing, Llc Motion-based interactive shopping environment
US9646340B2 (en) 2010-04-01 2017-05-09 Microsoft Technology Licensing, Llc Avatar-based virtual dressing room
US8351651B2 (en) 2010-04-26 2013-01-08 Microsoft Corporation Hand-location post-process refinement in a tracking system
US8379919B2 (en) 2010-04-29 2013-02-19 Microsoft Corporation Multiple centroid condensation of probability distribution clouds
US8284847B2 (en) 2010-05-03 2012-10-09 Microsoft Corporation Detecting motion for a multifunction sensor device
US8498481B2 (en) 2010-05-07 2013-07-30 Microsoft Corporation Image segmentation using star-convexity constraints
US8885890B2 (en) 2010-05-07 2014-11-11 Microsoft Corporation Depth map confidence filtering
US8457353B2 (en) 2010-05-18 2013-06-04 Microsoft Corporation Gestures and gesture modifiers for manipulating a user-interface
US8594425B2 (en) 2010-05-31 2013-11-26 Primesense Ltd. Analysis of three-dimensional scenes
US8803888B2 (en) 2010-06-02 2014-08-12 Microsoft Corporation Recognition system for sharing information
US9008355B2 (en) 2010-06-04 2015-04-14 Microsoft Technology Licensing, Llc Automatic depth camera aiming
US8751215B2 (en) 2010-06-04 2014-06-10 Microsoft Corporation Machine based sign language interpreter
US9557574B2 (en) 2010-06-08 2017-01-31 Microsoft Technology Licensing, Llc Depth illumination and detection optics
US8330822B2 (en) 2010-06-09 2012-12-11 Microsoft Corporation Thermally-tuned depth camera light source
US8675981B2 (en) 2010-06-11 2014-03-18 Microsoft Corporation Multi-modal gender recognition including depth data
US8749557B2 (en) 2010-06-11 2014-06-10 Microsoft Corporation Interacting with user interface via avatar
US9384329B2 (en) 2010-06-11 2016-07-05 Microsoft Technology Licensing, Llc Caloric burn determination from body movement
US8982151B2 (en) 2010-06-14 2015-03-17 Microsoft Technology Licensing, Llc Independently processing planes of display data
KR20110136414A (ko) * 2010-06-15 2011-12-21 삼성전자주식회사 영상처리장치 및 그 제어방법
US8558873B2 (en) 2010-06-16 2013-10-15 Microsoft Corporation Use of wavefront coding to create a depth image
US8670029B2 (en) 2010-06-16 2014-03-11 Microsoft Corporation Depth camera illuminator with superluminescent light-emitting diode
US8296151B2 (en) 2010-06-18 2012-10-23 Microsoft Corporation Compound gesture-speech commands
US8381108B2 (en) 2010-06-21 2013-02-19 Microsoft Corporation Natural user input for driving interactive stories
US8416187B2 (en) 2010-06-22 2013-04-09 Microsoft Corporation Item navigation using motion-capture data
KR101012691B1 (ko) * 2010-07-05 2011-02-09 주훈 3차원 입체 열상 카메라 시스템
US8971628B2 (en) 2010-07-26 2015-03-03 Fotonation Limited Face detection using division-generated haar-like features for illumination invariance
US8483481B2 (en) 2010-07-27 2013-07-09 International Business Machines Corporation Foreground analysis based on tracking information
WO2012016370A1 (en) 2010-08-02 2012-02-09 Peking University Representative motion flow extraction for effective video classification and retrieval
JP2012044383A (ja) * 2010-08-18 2012-03-01 Sony Corp 画像処理装置および方法、並びにプログラム
US9075434B2 (en) 2010-08-20 2015-07-07 Microsoft Technology Licensing, Llc Translating user motion into multiple object responses
US8613666B2 (en) 2010-08-31 2013-12-24 Microsoft Corporation User selection and navigation based on looped motions
US8582866B2 (en) * 2011-02-10 2013-11-12 Edge 3 Technologies, Inc. Method and apparatus for disparity computation in stereo images
US8655093B2 (en) * 2010-09-02 2014-02-18 Edge 3 Technologies, Inc. Method and apparatus for performing segmentation of an image
US8437506B2 (en) 2010-09-07 2013-05-07 Microsoft Corporation System for fast, probabilistic skeletal tracking
US20120058824A1 (en) 2010-09-07 2012-03-08 Microsoft Corporation Scalable real-time motion recognition
US8582867B2 (en) 2010-09-16 2013-11-12 Primesense Ltd Learning-based pose estimation from depth maps
US10776635B2 (en) * 2010-09-21 2020-09-15 Mobileye Vision Technologies Ltd. Monocular cued detection of three-dimensional structures from depth images
US8988508B2 (en) 2010-09-24 2015-03-24 Microsoft Technology Licensing, Llc. Wide angle field of view active illumination imaging system
US8538132B2 (en) 2010-09-24 2013-09-17 Apple Inc. Component concentricity
US8681255B2 (en) 2010-09-28 2014-03-25 Microsoft Corporation Integrated low power depth camera and projection device
US8548270B2 (en) 2010-10-04 2013-10-01 Microsoft Corporation Time-of-flight depth imaging
US9484065B2 (en) 2010-10-15 2016-11-01 Microsoft Technology Licensing, Llc Intelligent determination of replays based on event identification
US8592739B2 (en) 2010-11-02 2013-11-26 Microsoft Corporation Detection of configuration changes of an optical element in an illumination system
US8866889B2 (en) 2010-11-03 2014-10-21 Microsoft Corporation In-home depth camera calibration
JP5874039B2 (ja) * 2010-11-05 2016-03-01 パナソニックIpマネジメント株式会社 ステレオ画像処理装置及びステレオ画像処理方法
US8667519B2 (en) 2010-11-12 2014-03-04 Microsoft Corporation Automatic passive and anonymous feedback system
US10726861B2 (en) 2010-11-15 2020-07-28 Microsoft Technology Licensing, Llc Semi-private communication in open environments
US9349040B2 (en) 2010-11-19 2016-05-24 Microsoft Technology Licensing, Llc Bi-modal depth-image analysis
US10234545B2 (en) 2010-12-01 2019-03-19 Microsoft Technology Licensing, Llc Light source module
US8553934B2 (en) 2010-12-08 2013-10-08 Microsoft Corporation Orienting the position of a sensor
US8618405B2 (en) 2010-12-09 2013-12-31 Microsoft Corp. Free-space gesture musical instrument digital interface (MIDI) controller
US8408706B2 (en) 2010-12-13 2013-04-02 Microsoft Corporation 3D gaze tracker
US8884968B2 (en) 2010-12-15 2014-11-11 Microsoft Corporation Modeling an object from image data
US9171264B2 (en) 2010-12-15 2015-10-27 Microsoft Technology Licensing, Llc Parallel processing machine learning decision tree training
US8920241B2 (en) 2010-12-15 2014-12-30 Microsoft Corporation Gesture controlled persistent handles for interface guides
US8448056B2 (en) 2010-12-17 2013-05-21 Microsoft Corporation Validation analysis of human target
US8803952B2 (en) 2010-12-20 2014-08-12 Microsoft Corporation Plural detector time-of-flight depth mapping
US9848106B2 (en) 2010-12-21 2017-12-19 Microsoft Technology Licensing, Llc Intelligent gameplay photo capture
US9823339B2 (en) 2010-12-21 2017-11-21 Microsoft Technology Licensing, Llc Plural anode time-of-flight sensor
US9821224B2 (en) 2010-12-21 2017-11-21 Microsoft Technology Licensing, Llc Driving simulator control with virtual skeleton
US8385596B2 (en) 2010-12-21 2013-02-26 Microsoft Corporation First person shooter control with virtual skeleton
US8994718B2 (en) 2010-12-21 2015-03-31 Microsoft Technology Licensing, Llc Skeletal control of three-dimensional virtual world
US9123316B2 (en) 2010-12-27 2015-09-01 Microsoft Technology Licensing, Llc Interactive content creation
US8488888B2 (en) 2010-12-28 2013-07-16 Microsoft Corporation Classification of posture states
US8401225B2 (en) 2011-01-31 2013-03-19 Microsoft Corporation Moving object segmentation using depth images
US9247238B2 (en) 2011-01-31 2016-01-26 Microsoft Technology Licensing, Llc Reducing interference between multiple infra-red depth cameras
US8401242B2 (en) 2011-01-31 2013-03-19 Microsoft Corporation Real-time camera tracking using depth maps
US8587583B2 (en) 2011-01-31 2013-11-19 Microsoft Corporation Three-dimensional environment reconstruction
US8724887B2 (en) 2011-02-03 2014-05-13 Microsoft Corporation Environmental modifications to mitigate environmental factors
US11063920B2 (en) 2011-02-03 2021-07-13 mSignia, Inc. Cryptographic security functions based on anticipated changes in dynamic minutiae
US8817984B2 (en) 2011-02-03 2014-08-26 mSignia, Inc. Cryptographic security functions based on anticipated changes in dynamic minutiae
US8942917B2 (en) 2011-02-14 2015-01-27 Microsoft Corporation Change invariant scene recognition by an agent
US8497838B2 (en) 2011-02-16 2013-07-30 Microsoft Corporation Push actuation of interface controls
IT1404274B1 (it) * 2011-02-28 2013-11-15 Fond Istituto Italiano Di Tecnologia Disposizione circuitale multiprocessore per l'esecuzione di un algoritmo di visione stereoscopica e sistema di visione stereoscopica ed elusione di ostacoli per robot mobili
US20120224037A1 (en) * 2011-03-02 2012-09-06 Sharp Laboratories Of America, Inc. Reducing viewing discomfort for graphical elements
US9551914B2 (en) 2011-03-07 2017-01-24 Microsoft Technology Licensing, Llc Illuminator with refractive optical element
US9067136B2 (en) 2011-03-10 2015-06-30 Microsoft Technology Licensing, Llc Push personalization of interface controls
US8571263B2 (en) 2011-03-17 2013-10-29 Microsoft Corporation Predicting joint positions
US9470778B2 (en) 2011-03-29 2016-10-18 Microsoft Technology Licensing, Llc Learning from high quality depth measurements
US9298287B2 (en) 2011-03-31 2016-03-29 Microsoft Technology Licensing, Llc Combined activation for natural user interface systems
US9760566B2 (en) 2011-03-31 2017-09-12 Microsoft Technology Licensing, Llc Augmented conversational understanding agent to identify conversation context between two humans and taking an agent action thereof
US9842168B2 (en) 2011-03-31 2017-12-12 Microsoft Technology Licensing, Llc Task driven user intents
US10642934B2 (en) 2011-03-31 2020-05-05 Microsoft Technology Licensing, Llc Augmented conversational understanding architecture
US8503494B2 (en) 2011-04-05 2013-08-06 Microsoft Corporation Thermal management system
US8824749B2 (en) 2011-04-05 2014-09-02 Microsoft Corporation Biometric recognition
US8620113B2 (en) 2011-04-25 2013-12-31 Microsoft Corporation Laser diode modes
US8702507B2 (en) 2011-04-28 2014-04-22 Microsoft Corporation Manual and camera-based avatar control
US9259643B2 (en) 2011-04-28 2016-02-16 Microsoft Technology Licensing, Llc Control of separate computer game elements
US10671841B2 (en) 2011-05-02 2020-06-02 Microsoft Technology Licensing, Llc Attribute state classification
US8888331B2 (en) 2011-05-09 2014-11-18 Microsoft Corporation Low inductance light source module
US9137463B2 (en) 2011-05-12 2015-09-15 Microsoft Technology Licensing, Llc Adaptive high dynamic range camera
US9064006B2 (en) 2012-08-23 2015-06-23 Microsoft Technology Licensing, Llc Translating natural language utterances to keyword search queries
US8788973B2 (en) 2011-05-23 2014-07-22 Microsoft Corporation Three-dimensional gesture controlled avatar configuration interface
US8760395B2 (en) 2011-05-31 2014-06-24 Microsoft Corporation Gesture recognition techniques
US8526734B2 (en) 2011-06-01 2013-09-03 Microsoft Corporation Three-dimensional background removal for vision system
US9594430B2 (en) 2011-06-01 2017-03-14 Microsoft Technology Licensing, Llc Three-dimensional foreground selection for vision system
US8897491B2 (en) 2011-06-06 2014-11-25 Microsoft Corporation System for finger recognition and tracking
US9013489B2 (en) 2011-06-06 2015-04-21 Microsoft Technology Licensing, Llc Generation of avatar reflecting player appearance
US8597142B2 (en) 2011-06-06 2013-12-03 Microsoft Corporation Dynamic camera based practice mode
US9724600B2 (en) 2011-06-06 2017-08-08 Microsoft Technology Licensing, Llc Controlling objects in a virtual environment
US9098110B2 (en) 2011-06-06 2015-08-04 Microsoft Technology Licensing, Llc Head rotation tracking from depth-based center of mass
US8929612B2 (en) 2011-06-06 2015-01-06 Microsoft Corporation System for recognizing an open or closed hand
US10796494B2 (en) 2011-06-06 2020-10-06 Microsoft Technology Licensing, Llc Adding attributes to virtual representations of real-world objects
US9208571B2 (en) 2011-06-06 2015-12-08 Microsoft Technology Licensing, Llc Object digitization
US9597587B2 (en) 2011-06-08 2017-03-21 Microsoft Technology Licensing, Llc Locational node device
GB2492333B (en) 2011-06-27 2018-12-12 British Broadcasting Corp Video encoding and decoding using transforms
US8885882B1 (en) 2011-07-14 2014-11-11 The Research Foundation For The State University Of New York Real time eye tracking for human computer interaction
TWI481262B (zh) * 2011-07-28 2015-04-11 Ind Tech Res Inst 影像編碼系統及影像編碼方法
US8743205B2 (en) * 2011-08-10 2014-06-03 Nice Systems Ltd. System and method for semantic video content analysis
US8786730B2 (en) 2011-08-18 2014-07-22 Microsoft Corporation Image exposure using exclusion regions
US9002099B2 (en) 2011-09-11 2015-04-07 Apple Inc. Learning-based estimation of hand and finger pose
JP2013073598A (ja) * 2011-09-29 2013-04-22 Sony Corp 画像処理装置、画像処理方法、及びプログラム
US9098908B2 (en) 2011-10-21 2015-08-04 Microsoft Technology Licensing, Llc Generating a depth map
JP5539945B2 (ja) * 2011-11-01 2014-07-02 株式会社コナミデジタルエンタテインメント ゲーム装置、及びプログラム
US9557836B2 (en) 2011-11-01 2017-01-31 Microsoft Technology Licensing, Llc Depth image compression
US9117281B2 (en) 2011-11-02 2015-08-25 Microsoft Corporation Surface segmentation from RGB and depth images
WO2013066790A1 (en) 2011-11-02 2013-05-10 Intuitive Surgical Operations, Inc. Method and system for stereo gaze tracking
US8854426B2 (en) 2011-11-07 2014-10-07 Microsoft Corporation Time-of-flight camera with guided light
US8724906B2 (en) 2011-11-18 2014-05-13 Microsoft Corporation Computing pose and/or shape of modifiable entities
US8509545B2 (en) 2011-11-29 2013-08-13 Microsoft Corporation Foreground subject detection
US8803800B2 (en) 2011-12-02 2014-08-12 Microsoft Corporation User interface control based on head orientation
US8635637B2 (en) 2011-12-02 2014-01-21 Microsoft Corporation User interface presenting an animated avatar performing a media reaction
US9100685B2 (en) 2011-12-09 2015-08-04 Microsoft Technology Licensing, Llc Determining audience state or interest using passive sensor data
CN103164851B (zh) * 2011-12-09 2016-04-20 株式会社理光 道路分割物检测方法和装置
US8879831B2 (en) 2011-12-15 2014-11-04 Microsoft Corporation Using high-level attributes to guide image processing
US8971612B2 (en) 2011-12-15 2015-03-03 Microsoft Corporation Learning image processing tasks from scene reconstructions
US8630457B2 (en) 2011-12-15 2014-01-14 Microsoft Corporation Problem states for pose tracking pipeline
US8811938B2 (en) 2011-12-16 2014-08-19 Microsoft Corporation Providing a user interface experience based on inferred vehicle state
US9342139B2 (en) 2011-12-19 2016-05-17 Microsoft Technology Licensing, Llc Pairing a computing device to a user
JP5821610B2 (ja) * 2011-12-20 2015-11-24 富士通株式会社 情報処理装置、情報処理方法及びプログラム
JP5841427B2 (ja) * 2011-12-28 2016-01-13 株式会社キーエンス 画像処理装置及び画像処理方法
KR101604420B1 (ko) * 2011-12-29 2016-03-21 인텔 코포레이션 가변 깊이 압축
WO2013106418A1 (en) 2012-01-09 2013-07-18 Tk Holdings, Inc. Stereo-vision object detection system and method
US9720089B2 (en) 2012-01-23 2017-08-01 Microsoft Technology Licensing, Llc 3D zoom imager
JP2013181837A (ja) * 2012-03-01 2013-09-12 Canon Inc 撮像装置
US8768007B2 (en) 2012-03-26 2014-07-01 Tk Holdings Inc. Method of filtering an image
US8824733B2 (en) 2012-03-26 2014-09-02 Tk Holdings Inc. Range-cued object segmentation system and method
TWI524735B (zh) * 2012-03-30 2016-03-01 華晶科技股份有限公司 三維影像產生方法及裝置
WO2013151883A1 (en) * 2012-04-02 2013-10-10 Intel Corporation Systems, methods, and computer program products for runtime adjustment of image warping parameters in a multi-camera system
US10109056B2 (en) * 2012-04-02 2018-10-23 Thomson Licensing Method for calibration free gaze tracking using low cost camera
US8898687B2 (en) 2012-04-04 2014-11-25 Microsoft Corporation Controlling a media program based on a media reaction
US9047507B2 (en) 2012-05-02 2015-06-02 Apple Inc. Upper-body skeleton extraction from depth maps
US9210401B2 (en) 2012-05-03 2015-12-08 Microsoft Technology Licensing, Llc Projected visual cues for guiding physical movement
CA2775700C (en) 2012-05-04 2013-07-23 Microsoft Corporation Determining a future portion of a currently presented media program
US9183461B2 (en) * 2012-05-11 2015-11-10 Intel Corporation Systems and methods for row causal scan-order optimization stereo matching
US9924196B2 (en) * 2012-05-18 2018-03-20 The Regents Of The University Of California Independent thread video disparity estimation method and codec
US9571818B2 (en) * 2012-06-07 2017-02-14 Nvidia Corporation Techniques for generating robust stereo images from a pair of corresponding stereo images captured with and without the use of a flash device
US20130329985A1 (en) * 2012-06-07 2013-12-12 Microsoft Corporation Generating a three-dimensional image
EP2864961A4 (en) 2012-06-21 2016-03-23 Microsoft Technology Licensing Llc AVATAR CONSTRUCTION USING A DEPTH CAMERA
US9836590B2 (en) 2012-06-22 2017-12-05 Microsoft Technology Licensing, Llc Enhanced accuracy of user presence status determination
US9361699B2 (en) * 2012-06-27 2016-06-07 Imec Taiwan Co. Imaging system and method
JP5929553B2 (ja) * 2012-06-28 2016-06-08 ソニー株式会社 画像処理装置、撮像装置、画像処理方法およびプログラム
US20140043447A1 (en) * 2012-08-09 2014-02-13 Sony Corporation Calibration in the loop
US8907282B2 (en) * 2012-08-10 2014-12-09 Fluke Corporation Thermal imaging camera with intermittent image capture
US9696427B2 (en) 2012-08-14 2017-07-04 Microsoft Technology Licensing, Llc Wide angle depth detection
US8739097B2 (en) * 2012-09-14 2014-05-27 Taiwan Semiconductor Manufacturing Company, Ltd. Method for placing decoupling capacitors
US9621780B2 (en) 2012-10-04 2017-04-11 Nvidia Corporation Method and system of curve fitting for common focus measures
US9392158B2 (en) 2012-10-04 2016-07-12 Nvidia Corporation Method and system for intelligent dynamic autofocus search
US9019267B2 (en) 2012-10-30 2015-04-28 Apple Inc. Depth mapping with enhanced resolution
DE102012110460A1 (de) * 2012-10-31 2014-04-30 Audi Ag Verfahren zum Eingeben eines Steuerbefehls für eine Komponente eines Kraftwagens
US9349058B2 (en) 2012-10-31 2016-05-24 Tk Holdings, Inc. Vehicular path sensing system and method
US9265458B2 (en) 2012-12-04 2016-02-23 Sync-Think, Inc. Application of smooth pursuit cognitive testing paradigms to clinical drug development
US8882310B2 (en) 2012-12-10 2014-11-11 Microsoft Corporation Laser die light source module with low inductance
US20140176532A1 (en) * 2012-12-26 2014-06-26 Nvidia Corporation Method for image correction and an electronic device embodying the same
US9857470B2 (en) 2012-12-28 2018-01-02 Microsoft Technology Licensing, Llc Using photometric stereo for 3D environment modeling
US9251590B2 (en) 2013-01-24 2016-02-02 Microsoft Technology Licensing, Llc Camera pose estimation for 3D reconstruction
US9020190B2 (en) 2013-01-31 2015-04-28 International Business Machines Corporation Attribute-based alert ranking for alert adjudication
KR20140102038A (ko) * 2013-02-13 2014-08-21 삼성전자주식회사 영상 정합 장치 및 영상 정합 방법
US9052746B2 (en) 2013-02-15 2015-06-09 Microsoft Technology Licensing, Llc User center-of-mass and mass distribution extraction using depth images
US9940553B2 (en) 2013-02-22 2018-04-10 Microsoft Technology Licensing, Llc Camera/object pose from predicted coordinates
US20140241612A1 (en) * 2013-02-23 2014-08-28 Microsoft Corporation Real time stereo matching
US9135516B2 (en) 2013-03-08 2015-09-15 Microsoft Technology Licensing, Llc User body angle, curvature and average extremity positions extraction using depth images
US9380976B2 (en) 2013-03-11 2016-07-05 Sync-Think, Inc. Optical neuroinformatics
US9092657B2 (en) 2013-03-13 2015-07-28 Microsoft Technology Licensing, Llc Depth image processing
US9538081B1 (en) 2013-03-14 2017-01-03 Amazon Technologies, Inc. Depth-based image stabilization
US9274606B2 (en) 2013-03-14 2016-03-01 Microsoft Technology Licensing, Llc NUI video conference controls
WO2014152470A2 (en) 2013-03-15 2014-09-25 Tk Holdings, Inc. Path sensing using structured lighting
US9953213B2 (en) 2013-03-27 2018-04-24 Microsoft Technology Licensing, Llc Self discovery of autonomous NUI devices
US10848642B2 (en) * 2013-04-18 2020-11-24 Infineon Technologies Ag Apparatus for generating trusted image data, an apparatus for authentication of an image and a method for generating trusted image data
JP2014220704A (ja) * 2013-05-09 2014-11-20 ソニー株式会社 画像処理装置および画像処理方法
US9442186B2 (en) 2013-05-13 2016-09-13 Microsoft Technology Licensing, Llc Interference reduction for TOF systems
US9602806B1 (en) * 2013-06-10 2017-03-21 Amazon Technologies, Inc. Stereo camera calibration using proximity data
US9031393B2 (en) 2013-06-12 2015-05-12 Nvidia Corporation Methods for enhancing camera focusing performance using camera orientation
KR20150003573A (ko) * 2013-07-01 2015-01-09 한국전자통신연구원 영상 패턴 검출 방법 및 그 장치
US9356061B2 (en) 2013-08-05 2016-05-31 Apple Inc. Image sensor with buried light shield and vertical gate
US9251435B2 (en) * 2013-09-20 2016-02-02 Oracle International Corporation Screenshot database for application verification
US9462253B2 (en) 2013-09-23 2016-10-04 Microsoft Technology Licensing, Llc Optical modules that reduce speckle contrast and diffraction artifacts
US9123131B2 (en) * 2013-09-24 2015-09-01 Pixart Imaging Inc. Parallel correlation method and correlation apparatus using the same
US9565416B1 (en) 2013-09-30 2017-02-07 Google Inc. Depth-assisted focus in multi-camera systems
US9443310B2 (en) 2013-10-09 2016-09-13 Microsoft Technology Licensing, Llc Illumination modules that emit structured light
US9674563B2 (en) 2013-11-04 2017-06-06 Rovi Guides, Inc. Systems and methods for recommending content
US9769459B2 (en) 2013-11-12 2017-09-19 Microsoft Technology Licensing, Llc Power efficient laser diode driver circuit and method
US9508385B2 (en) 2013-11-21 2016-11-29 Microsoft Technology Licensing, Llc Audio-visual project generator
JP6417886B2 (ja) * 2013-12-12 2018-11-07 株式会社リコー 視差値導出装置、移動体、ロボット、視差値生産方法、及びプログラム
TW201528775A (zh) 2014-01-02 2015-07-16 Ind Tech Res Inst 景深圖校正方法及系統
US9971491B2 (en) 2014-01-09 2018-05-15 Microsoft Technology Licensing, Llc Gesture library for natural user input
KR102135770B1 (ko) * 2014-02-10 2020-07-20 한국전자통신연구원 스테레오 카메라 기반의 3차원 얼굴 복원 방법 및 장치
JP6565188B2 (ja) * 2014-02-28 2019-08-28 株式会社リコー 視差値導出装置、機器制御システム、移動体、ロボット、視差値導出方法、およびプログラム
US9412036B2 (en) * 2014-03-07 2016-08-09 Samsung Electronics Co., Ltd. Methods and systems for object detection based on column-wise and row-wise sums of pixel values
US9262801B2 (en) 2014-04-01 2016-02-16 Gopro, Inc. Image taping in a multi-camera array
JP6589313B2 (ja) * 2014-04-11 2019-10-16 株式会社リコー 視差値導出装置、機器制御システム、移動体、ロボット、視差値導出方法、およびプログラム
US9756312B2 (en) 2014-05-01 2017-09-05 Ecole polytechnique fédérale de Lausanne (EPFL) Hardware-oriented dynamically adaptive disparity estimation algorithm and its real-time hardware
US10021366B2 (en) * 2014-05-02 2018-07-10 Eys3D Microelectronics, Co. Image process apparatus
WO2015183550A1 (en) * 2014-05-27 2015-12-03 Bourbaki 13, Inc. Determining three-dimensional information from projections or placement of two-dimensional patterns
US9754377B2 (en) * 2014-08-15 2017-09-05 Illinois Institute Of Technology Multi-resolution depth estimation using modified census transform for advanced driver assistance systems
CN104299261B (zh) * 2014-09-10 2017-01-25 深圳大学 人体三维成像方法及系统
EP3012777B1 (en) * 2014-10-23 2017-03-15 Axis AB Modification of at least one parameter used by a video processing algorithm for monitoring of a scene
WO2016092532A1 (en) * 2014-12-09 2016-06-16 Inuitive Ltd. A method for determining depth for stereoscopic reconstruction of three dimensional images
KR101590777B1 (ko) * 2014-12-16 2016-02-11 경북대학교 산학협력단 스테레오 비젼에서의 시차 보정장치 및 그 방법
KR102298652B1 (ko) 2015-01-27 2021-09-06 삼성전자주식회사 시차 결정 방법 및 장치
US9905020B2 (en) * 2015-02-12 2018-02-27 Texas Instruments Incorporated Method and circuitry for performing census transforms
US9978135B2 (en) * 2015-02-27 2018-05-22 Cognex Corporation Detecting object presence on a target surface
EP3274986A4 (en) * 2015-03-21 2019-04-17 Mine One GmbH METHODS, SYSTEMS, AND SOFTWARE FOR VIRTUAL 3D
US10853625B2 (en) 2015-03-21 2020-12-01 Mine One Gmbh Facial signature methods, systems and software
US9805662B2 (en) * 2015-03-23 2017-10-31 Intel Corporation Content adaptive backlight power saving technology
US10536357B2 (en) * 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US9836895B1 (en) * 2015-06-19 2017-12-05 Waymo Llc Simulating virtual objects
US20170039567A1 (en) * 2015-08-03 2017-02-09 Capital One Services, LLC. Systems and methods for item-based transaction authentication
JP2017045124A (ja) * 2015-08-24 2017-03-02 株式会社日本自動車部品総合研究所 視差検出装置
CN105160665A (zh) * 2015-08-25 2015-12-16 东南大学 一种双圆子模板水下地形匹配方法
EP3142068B1 (de) 2015-09-08 2018-01-03 Sick Ag Verfahren zur dreidimensionalen erfassung von objekten
KR101766756B1 (ko) * 2015-11-20 2017-08-10 경북대학교 산학협력단 스테레오 비전 시스템의 렉티피케이션 장치 및 그 방법
US10043279B1 (en) 2015-12-07 2018-08-07 Apple Inc. Robust detection and classification of body parts in a depth map
US10823950B2 (en) * 2016-01-07 2020-11-03 Digital Surigcals PTE. LTD. Camera system with balanced monocular cues for use in digital stereo microscopes
US10412280B2 (en) 2016-02-10 2019-09-10 Microsoft Technology Licensing, Llc Camera with light valve over sensor array
US10257932B2 (en) 2016-02-16 2019-04-09 Microsoft Technology Licensing, Llc. Laser diode chip on printed circuit board
US10462452B2 (en) 2016-03-16 2019-10-29 Microsoft Technology Licensing, Llc Synchronizing active illumination cameras
SE541141C2 (en) 2016-04-18 2019-04-16 Moonlightning Ind Ab Focus pulling with a stereo vision camera system
US10789850B2 (en) * 2016-05-10 2020-09-29 Mitsubishi Electric Corporation Obstacle detection device, driving assistance system, and obstacle detection method
CN105809890B (zh) * 2016-05-13 2017-10-13 中国人民解放军国防科学技术大学 面向校车安全的遗漏孩童检测方法
US10366278B2 (en) 2016-09-20 2019-07-30 Apple Inc. Curvature-based face detector
US10572031B2 (en) 2016-09-28 2020-02-25 Salesforce.Com, Inc. Processing keyboard input to cause re-sizing of items in a user interface of a web browser-based application
US10642474B2 (en) * 2016-09-28 2020-05-05 Salesforce.Com, Inc. Processing keyboard input to cause movement of items in a user interface of a web browser-based application
US10430994B1 (en) 2016-11-07 2019-10-01 Henry Harlyn Baker Techniques for determining a three-dimensional textured representation of a surface of an object from a set of images with varying formats
KR102507383B1 (ko) * 2016-11-08 2023-03-08 한국전자통신연구원 직사각형 윈도우를 이용한 스테레오 정합 방법 및 스테레오 정합 시스템
DE102016223079B4 (de) * 2016-11-23 2024-03-28 Robert Bosch Gmbh Verfahren und Vorrichtung zur Ermittlung einer Zuordnung zwischen einem Matrixelement einer Matrix und einem Vergleichsmatrixelement einer Vergleichsmatrix mittels Korrespondenztabelle
US10372532B2 (en) * 2016-12-07 2019-08-06 Taiwan Semiconductor Manufacturing Co., Ltd. Memory array and measuring and testing methods for inter-hamming differences of memory array
US10552151B1 (en) * 2016-12-08 2020-02-04 Ambarella, Inc. Computer vision implementing calculations of window sums in overlapping windows
WO2018123801A1 (ja) * 2016-12-28 2018-07-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元モデル配信方法、三次元モデル受信方法、三次元モデル配信装置及び三次元モデル受信装置
CN108268357B (zh) 2016-12-30 2021-10-26 阿里巴巴集团控股有限公司 实时数据处理方法和装置
US10489920B2 (en) * 2017-01-11 2019-11-26 Egis Technology Inc. Method and electronic device for determining moving direction of a finger
EP3586269A4 (en) 2017-02-22 2021-04-14 Mine One GmbH IMAGE RECONSTRUCTION FOR VIRTUAL 3D
JP6997369B2 (ja) * 2017-02-28 2022-02-04 富士通株式会社 プログラム、測距方法、及び測距装置
DE102017205458A1 (de) * 2017-03-30 2018-10-04 Robert Bosch Gmbh System und ein Verfahren zur Erkennung von Augen und Händen, insbesondere für ein Kraftfahrzeug
CN110998660B (zh) * 2017-05-19 2024-04-26 莫维迪乌斯有限公司 用于优化流水线执行的方法、系统和装置
US10083352B1 (en) * 2017-05-22 2018-09-25 Amazon Technologies, Inc. Presence detection and detection localization
FR3062010A1 (fr) * 2017-07-05 2018-07-20 Orange Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'une sequence d'images
FR3068558A1 (fr) 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
FR3068557A1 (fr) 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
US10325174B2 (en) * 2017-09-18 2019-06-18 Texas Instruments Incorporated System and method for an efficient hardware implementation of census transform
US10656706B2 (en) * 2017-12-04 2020-05-19 International Business Machines Corporation Modifying a computer-based interaction based on eye gaze
US10354128B2 (en) * 2017-12-07 2019-07-16 Friendsport, Inc. Apparatus and method for improving swimmer performance
US10782197B2 (en) * 2017-12-19 2020-09-22 Schlumberger Technology Corporation Method for measuring surface torque oscillation performance index
GB201807392D0 (en) * 2018-05-04 2018-06-20 Five Ai Ltd Method and image processing system for extracting depth information
EP3572971B1 (de) 2018-05-22 2021-02-24 Sick Ag Absichern eines überwachungsbereichs mit mindestens einer maschine
CN109263557B (zh) * 2018-11-19 2020-10-09 威盛电子股份有限公司 车辆盲区侦测方法
CN109656870B (zh) * 2018-11-19 2023-07-04 北京时代民芯科技有限公司 一种sram型fpga在轨动态重构管理系统及方法
US11231873B2 (en) * 2018-12-07 2022-01-25 Intel Corporation Apparatus and method for assigning velocities to write data
CN112581477A (zh) * 2019-09-27 2021-03-30 京东方科技集团股份有限公司 图像处理方法、图像匹配方法、设备以及存储介质
US11455813B2 (en) * 2019-11-14 2022-09-27 Nec Corporation Parametric top-view representation of complex road scenes
WO2021108626A1 (en) * 2019-11-27 2021-06-03 Compound Eye Inc. System and method for correspondence map determination
CN111078153B (zh) * 2019-12-20 2023-08-01 同方知网数字出版技术股份有限公司 一种基于文件的分布式存储方法
EP3893145B1 (de) 2020-04-06 2022-03-16 Sick Ag Absicherung einer gefahrenstelle
JP7233399B2 (ja) * 2020-06-23 2023-03-06 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
US11782254B2 (en) * 2020-07-24 2023-10-10 United Scope LLC Digital microscopy system and graphical user interface
CN112699204B (zh) * 2021-01-14 2021-08-27 国家卫星海洋应用中心 空间匹配窗口的确定方法和装置
CN113313744B (zh) * 2021-07-30 2021-09-28 成都工业学院 一种无人飞行器高度及位置显示方法

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3946696A (en) * 1969-12-05 1976-03-30 The United States Of America As Represented By The Secretary Of The Navy Automatically controlled magnetic minesweeping system
US4067027A (en) * 1976-08-31 1978-01-03 Asia American Industries Ltd. Binocular telescope containing a camera
US4418993A (en) * 1981-05-07 1983-12-06 Stereographics Corp. Stereoscopic zoom lens system for three-dimensional motion pictures and television
GB8430980D0 (en) * 1984-12-07 1985-01-16 Robinson M Generation of apparently three-dimensional images
IL75728A (en) * 1985-07-05 1989-06-30 Elbit Computers Ltd Image converter system
US4761066A (en) 1986-01-14 1988-08-02 Carter William J Stereoscopic optical system
US5004328A (en) * 1986-09-26 1991-04-02 Canon Kabushiki Kaisha Spherical lens and imaging device using the same
GB8626527D0 (en) 1986-11-06 1986-12-10 British Broadcasting Corp 3d video transmission
GB2210530B (en) 1987-09-28 1991-06-12 Pearpoint Ltd T.v. camera with tilt/pan effect
JPH01177530A (ja) * 1988-01-08 1989-07-13 Toshiba Corp 立体カメラの支持機構
GB2215942B (en) * 1988-02-12 1992-01-08 Pearpoint Ltd Scanning t.v.camera
JPH02238576A (ja) 1989-03-13 1990-09-20 Fujitsu Ltd 距離情報抽出回路
US5142357A (en) * 1990-10-11 1992-08-25 Stereographics Corp. Stereoscopic video camera with image sensors having variable effective position
US5063441A (en) * 1990-10-11 1991-11-05 Stereographics Corporation Stereoscopic video cameras with image sensors having variable effective position
DE4115793C2 (de) 1991-05-10 1993-09-30 Rheinmetall Jenoptik Optical M Anordnung zur hochgenauen videogrammetrischen Meßwerterfassung
US5249056A (en) * 1991-07-16 1993-09-28 Sony Corporation Of America Apparatus for generating video signals from film
US5206503A (en) * 1991-08-07 1993-04-27 Northrop Corporation X-Y translational imaging device with housing supporting means for a camera body including image sensing means
US5454064A (en) 1991-11-22 1995-09-26 Hughes Aircraft Company System for correlating object reports utilizing connectionist architecture
US5270861A (en) * 1991-12-13 1993-12-14 Eastman Kodak Company Zoom lens system for use in a compact camera
US5179441A (en) 1991-12-18 1993-01-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Near real-time stereo vision system
JPH05288532A (ja) 1992-04-06 1993-11-02 Ricoh Co Ltd 立体画像入力装置
DE4214283A1 (de) * 1992-04-30 1993-11-04 Schneider Co Optische Werke Messkamera
US5454069A (en) * 1992-08-25 1995-09-26 University Of Kentucky Research Foundation Process for converting serial image to the sterolithography apparatus (SLA) slice file with automatic base and support generation
US5402171A (en) * 1992-09-11 1995-03-28 Kabushiki Kaisha Toshiba Electronic still camera with improved picture resolution by image shifting in a parallelogram arrangement
FR2700654B1 (fr) 1993-01-19 1995-02-17 Thomson Csf Procédé d'estimation de disparité entre les images monoscopiques constituant une image stéréoscopiques.
JP3380963B2 (ja) * 1993-01-25 2003-02-24 ソニー株式会社 撮像装置
US5453784A (en) * 1993-02-10 1995-09-26 Krishnan; Arun Imaging apparatus and method for determining range and determining focus information
DE4304529C1 (de) 1993-02-15 1994-06-30 Ems Technik Gmbh Meßkameraanordnung, insbesondere für photogrammetrische Messungen an technischen Objekten
JP3301153B2 (ja) * 1993-04-06 2002-07-15 株式会社ニコン 投影露光装置、露光方法、及び素子製造方法
US6038071A (en) 1993-05-24 2000-03-14 Deutshce Thomson-Brandt Gmbh Apparatus for recording a stereoscopic image
US5764871A (en) 1993-10-21 1998-06-09 Eastman Kodak Company Method and apparatus for constructing intermediate images for a depth image from stereo images using velocity vector fields
US5440343A (en) * 1994-02-28 1995-08-08 Eastman Kodak Company Motion/still electronic image sensing apparatus
JPH07274006A (ja) 1994-03-28 1995-10-20 Mitsubishi Electric Corp 画像処理装置及びスキャナ装置及びプリンタ装置及びディジタル複写機及びディスプレイ装置
US5768404A (en) 1994-04-13 1998-06-16 Matsushita Electric Industrial Co., Ltd. Motion and disparity estimation method, image synthesis method, and apparatus for implementing same methods
JPH07298307A (ja) 1994-04-28 1995-11-10 Canon Inc 画像記録再生装置
JPH07303207A (ja) 1994-05-09 1995-11-14 Canon Inc 撮像装置
GB2289983B (en) * 1994-06-01 1996-10-16 Simage Oy Imaging devices,systems and methods
JP3242529B2 (ja) 1994-06-07 2001-12-25 松下通信工業株式会社 ステレオ画像対応付け方法およびステレオ画像視差計測方法
US6028672A (en) * 1996-09-30 2000-02-22 Zheng J. Geng High speed three dimensional imaging method
WO1996014641A1 (en) * 1994-11-04 1996-05-17 Kelly Shawn L Modular binocular electronic imaging system
US5619032A (en) * 1995-01-18 1997-04-08 International Remote Imaging Systems, Inc. Method and apparatus for automatically selecting the best focal position from a plurality of focal positions for a focusing apparatus
US6587148B1 (en) * 1995-09-01 2003-07-01 Canon Kabushiki Kaisha Reduced aliasing distortion optical filter, and an image sensing device using same
US5819120A (en) * 1995-11-28 1998-10-06 Fuji Photo Film Co., Ltd. Variable focus lens device in camera
US6115482A (en) * 1996-02-13 2000-09-05 Ascent Technology, Inc. Voice-output reading system with gesture-based navigation
US5969760A (en) * 1996-03-14 1999-10-19 Polaroid Corporation Electronic still camera having mechanically adjustable CCD to effect focus
US5767922A (en) 1996-04-05 1998-06-16 Cornell Research Foundation, Inc. Apparatus and process for detecting scene breaks in a sequence of video frames
US5712483A (en) * 1996-06-28 1998-01-27 The Regents Of The University Of California X-ray grid-detector apparatus
US5652616A (en) 1996-08-06 1997-07-29 General Instrument Corporation Of Delaware Optimal disparity estimation for stereoscopic video coding
US5864630A (en) * 1996-11-20 1999-01-26 At&T Corp Multi-modal method for locating objects in images
US6693666B1 (en) * 1996-12-11 2004-02-17 Interval Research Corporation Moving imager camera for track and range capture
US6215898B1 (en) 1997-04-15 2001-04-10 Interval Research Corporation Data processing system and method
US5917937A (en) * 1997-04-15 1999-06-29 Microsoft Corporation Method for performing stereo matching to recover depths, colors and opacities of surface elements
US6188777B1 (en) * 1997-08-01 2001-02-13 Interval Research Corporation Method and apparatus for personnel detection and tracking
US6141434A (en) * 1998-02-06 2000-10-31 Christian; Andrew Dean Technique for processing images
US6141440A (en) * 1998-06-04 2000-10-31 Canon Kabushiki Kaisha Disparity measurement with variably sized interrogation regions
AU1930700A (en) * 1998-12-04 2000-06-26 Interval Research Corporation Background estimation and segmentation based on range and color
US6807290B2 (en) * 2000-03-09 2004-10-19 Microsoft Corporation Rapid computer modeling of faces for animation

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7570815B2 (en) 2002-03-22 2009-08-04 British Telecommunications Plc Comparing patterns
KR100976930B1 (ko) 2002-03-22 2010-08-18 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 패턴 비교 방법
US7620249B2 (en) 2004-09-17 2009-11-17 British Telecommunications Public Limited Company Analysis of patterns
JP2006236022A (ja) * 2005-02-25 2006-09-07 Renasas Northern Japan Semiconductor Inc 画像処理装置
US7574051B2 (en) 2005-06-10 2009-08-11 British Telecommunications Plc Comparison of patterns
US8135210B2 (en) 2005-07-28 2012-03-13 British Telecommunications Public Limited Company Image analysis relating to extracting three dimensional information from a two dimensional image
US8040428B2 (en) 2005-12-19 2011-10-18 British Telecommunications Public Limited Company Method for focus control
JP2019120591A (ja) * 2018-01-05 2019-07-22 パナソニックIpマネジメント株式会社 視差値算出装置、視差値算出方法及びプログラム
US10872432B2 (en) 2018-01-05 2020-12-22 Panasonic Intellectual Property Management Co., Ltd. Disparity estimation device, disparity estimation method, and program

Also Published As

Publication number Publication date
US20110210851A1 (en) 2011-09-01
WO1998047061A3 (en) 1999-02-18
US8639024B2 (en) 2014-01-28
US7567702B2 (en) 2009-07-28
AU6950298A (en) 1998-11-11
US20060013473A1 (en) 2006-01-19
JP2008033958A (ja) 2008-02-14
JP4168125B2 (ja) 2008-10-22
AU716654B2 (en) 2000-03-02
US20130101160A1 (en) 2013-04-25
US20090136091A1 (en) 2009-05-28
US7925077B2 (en) 2011-04-12
US6215898B1 (en) 2001-04-10
WO1998047061A2 (en) 1998-10-22
US6456737B1 (en) 2002-09-24
EP0923757A2 (en) 1999-06-23
WO1998047061A9 (en) 1999-05-20
CA2258293A1 (en) 1998-10-22
US8260040B2 (en) 2012-09-04

Similar Documents

Publication Publication Date Title
JP2000512790A (ja) データ処理システムおよび方法
Banz et al. Real-time stereo vision system using semi-global matching disparity estimation: Architecture and FPGA-implementation
EP2531980B1 (en) Depth camera compatibility
EP2531979B1 (en) Depth camera compatibility
US9659408B2 (en) Mesh reconstruction from heterogeneous sources of data
CN113514008B (zh) 三维扫描方法、三维扫描系统和计算机可读存储介质
WO2016123913A1 (zh) 数据处理的方法和装置
CN105917354A (zh) 用于图像处理的空间金字塔池化网络
KR20010085779A (ko) 시각장치
CN104350525A (zh) 组合用于三维建模的窄基线和宽基线立体
JP7285834B2 (ja) 三次元再構成方法および三次元再構成装置
CN107517346A (zh) 基于结构光的拍照方法、装置及移动设备
KR20190136560A (ko) 직접 감쇄 모델을 이용한 내시경 영상 스테레오 정합 방법 및 장치
CN104205822A (zh) 采用异步传感器的场景三维重建方法
CN106570482A (zh) 人体动作识别方法及装置
CN114881841A (zh) 图像生成方法及其装置
CN107589834A (zh) 终端设备操作方法及装置、终端设备
JP2003216933A (ja) データ処理装置、記録媒体およびプログラム
CN116958449B (zh) 城市场景三维建模方法、装置及电子设备
JP7378960B2 (ja) 画像処理装置、画像処理システム、画像生成方法、および、プログラム
EP3441789B1 (en) System and method for processing data and a user device for pre-processing data
Nozal et al. Moving-images time gradient implementation using RAM-based FPGA
JP2022182120A (ja) 映像生成装置、映像処理システム、映像生成装置の制御方法及びプログラム
CN116012609A (zh) 一种环视鱼眼多目标跟踪方法、装置、电子设备及介质
CN117991284A (zh) 一种拓扑生成方法及相关设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070327

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070626

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070813

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070726

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070903

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070824

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070927

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080218

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080605

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080708

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080708

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

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees