JP2020518892A - ジョイントバイラテラルフィルタの効率的な実現 - Google Patents

ジョイントバイラテラルフィルタの効率的な実現 Download PDF

Info

Publication number
JP2020518892A
JP2020518892A JP2019555620A JP2019555620A JP2020518892A JP 2020518892 A JP2020518892 A JP 2020518892A JP 2019555620 A JP2019555620 A JP 2019555620A JP 2019555620 A JP2019555620 A JP 2019555620A JP 2020518892 A JP2020518892 A JP 2020518892A
Authority
JP
Japan
Prior art keywords
image
depth
splatting
bin
volume
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
JP2019555620A
Other languages
English (en)
Other versions
JP7094299B2 (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 JP2020518892A publication Critical patent/JP2020518892A/ja
Application granted granted Critical
Publication of JP7094299B2 publication Critical patent/JP7094299B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/261Image signal generators with monoscopic-to-stereoscopic image conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/10Image enhancement or restoration using non-spatial domain filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • G06T2207/20028Bilateral filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

計算の複雑さを低減したジョイントバイラテラルフィルタを使用して、画像から深度マップを推定するための集積回路とコンピュータ実行方法が提供される。その目的のために、テンプレート深度マップの深度データと同様に、画像の画像データにアクセスする。次に、画像データをジョイントバイラテラルフィルタの範囲項として使用してテンプレート深度マップにジョイントバイラテラルフィルタを適用し、画像に適合された深度マップを、出力として取得する。ジョイントバイラテラルフィルタの適用は、重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれの空のデータ構造として初期化し、スプラッティング動作を実行して前記ボリュームを埋め、スライス動作を実行して画像に適合された深度ボリュームを取得し、補間動作を実行して画像内の各ピクセルについて画像に適合された深度マップの画像に適合された深度値を取得することを含む。ジョイントバイラテラルフィルタを使用して画像から深度マップを推定することと知られている方法と比較して、計算の複雑さが低減される。

Description

本発明は、ジョイントバイラテラルフィルタ(joint bilateral filter)を使用して画像から深度マップを推定するように構成された集積回路に関する。本発明はさらに、ジョイントバイラテラルフィルタを使用して画像から深度マップを推定する方法、およびプロセッサシステムに方法を実行させるように構成された命令を表す一時的または非一時的データを含むコンピュータ可読媒体に関する。
テレビ、タブレット、およびスマートフォンなどのディスプレイデバイスは、3Dディスプレイを備え、そのようなデバイスでコンテンツを表示するときにユーザーに深度の認識を提供することができる。その目的のために、そのような3Dディスプレイは、それ自体で、またはユーザーにより着用されるメガネと一緒に、立体視に基づいてユーザーに深度の認識を提供するために、ユーザーに各目で異なる画像を提供する。
3Dディスプレイには、深度情報を収容するコンテンツが通常必要である。深度情報は、3Dコンテンツ内で暗黙的に提供され得る。例えば、簡潔に言えば「ステレオ」コンテンツとも呼ばれる立体視的コンテンツの場合、深度情報は左画像と右画像の違いによって提供される。深度情報は、3Dコンテンツ内で明示的に提供される場合もある。例えば、いわゆる画像+深度フォーマットでエンコードされた3Dコンテンツ内では、深度情報は、深度値、ディスパリティ値、および/または視差(parallactic)シフト値を含み得る深度マップによって提供され、前記値の各々は、画像内のオブジェクトがカメラに向かって持っている距離を表す。
現在利用可能な大量のコンテンツ、例えば映画、テレビ番組、画像などは2Dコンテンツである。3Dディスプレイで3Dレンダリングを可能にするには、このようなコンテンツを3Dに変換する必要がある。3Dへの変換は、2D画像、例えば2Dビデオの各2D画像の深度マップを生成することを含み得る。一般に、このプロセスは「2Dから3Dへの変換」と呼ばれ、深度マップを手動で作成することを伴い得る。例えば、ワークステーションで走っているソフトウェアツールは、デジタルペンを使用して深度マップを描画することにより、プロのユーザーに2D画像に深度を追加する可能性を提供し得る。深度マップは自動的に生成される場合もある。例えば、デバイスは、2D画像内のオブジェクトがカメラに向かって持っている距離を推定し、それに基づいて、2D画像の深度マップを生成し得る。
深度マップの自動生成の例は、単眼情報を使用して画像の深度マップを生成する方法を説明するUS8,447,141から知られている。この方法は、グローバル深度プロファイルを提供する画像の第1の深度マップを生成することを含み、これは、スラントなどの単純な汎用テンプレートであってもよい。さらに、第1の深度マップの深度値と画像の色および/または輝度値に基づく第2の深度マップが生成される。第2の深度マップの生成は、画像からの範囲情報を使用して第1の深度マップにジョイントバイラテラルフィルタを適用することを伴い得る。その結果、オブジェクトはグローバル深度プロファイルからより明確になると言われている。
事実上、US8,447,141は、ジョイントバイラテラルフィルタを使用して、深度マップによって提供される汎用テンプレートを画像の実際のコンテンツに適合させる。
しかしながら、ジョイントバイラテラルフィルタの実現は計算的に複雑である。Paris et al., International Journal of Computer Vision 81.1, 2009年, 24−52頁による公開「A fast approximation of the bilateral filter using a signal processing approach」は、計算的に複雑さが少ないと言われているジョイントバイラテラルフィルタの近似を示している。不都合なことに、説明されたバイラテラルフィルタの近似は依然として比較的計算的に複雑であり、したがって、消費者デバイス、例えば集積回路での費用効率の高い実現にはあまり適していない。
米国特許第8,447,141号明細書
Paris et al.,「A fast approximation of the bilateral filter using a signal processing approach」 International Journal of Computer Vision 81.1, 2009年, 24−52頁
本発明の目的の1つは、ジョイントバイラテラルフィルタを使用して画像から深度マップを推定するように構成された、Paris et al.により記載された近似よりも計算的に複雑ではない、集積回路を得ることである。
本発明の第1の態様は、画像から深度マップを推定するように構成され、メモリを備えるかまたはメモリに接続されている、集積回路を提供する。集積回路は:
− 画像の画像データにアクセスするように構成された画像データインターフェースと、
− テンプレート深度マップの深度データにアクセスするように構成された深度データインターフェースであって、テンプレート深度マップは、画像データに適合させるテンプレートを表す、深度データインターフェースと;
− ジョイントバイラテラルフィルタの範囲項として画像データを使用して、ジョイントバイラテラルフィルタをテンプレート深度マップに適用して、画像に適合された深度マップを、出力として取得するように構成された処理サブシステムと
を備え、
処理サブシステムは:
− 重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれの空のデータ構造として初期化することであって、前記ボリュームの各々は:
− 画像データの2つの空間次元のダウンサンプリングされたバージョンを表す、2つの空間次元と、
− 画像データの範囲次元のダウンサンプリングされたバージョンを表す、少なくとも1つの範囲次元とを備え;
前記ボリュームのセルは、画像の2つの空間次元および画像データの範囲次元に関して定義される画像の座標系でビンを定義する、初期化することと;
− 前記ボリュームを満たすためにスプラッティング動作を実行することであって、スプラッティング動作は、画像内の各ピクセルに対して:
− 画像の座標系におけるピクセルの座標に基づいて、座標は、前記ボリュームの各々のビンに関するピクセルの相対位置を示し、
− 隣接するビンにマッピングするスプラッティング動作のフットプリントを有するピクセルに基づいて、ピクセルがスプラッティング動作において寄与する重み付き深度の合計ボリューム内の、前記隣接するビンを識別することを含み;
スプラッティング動作における前記寄与は:
− テンプレート深度マップからピクセルの深度値を取得し;
− 隣接するビンの各々に対して:
− 深度値を重み付けするためのスプラッティング重みを取得することであって、スプラッティング重みは、それぞれのビンに関するピクセルの相対位置に基づいて決定される、取得することと、
− スプラッティング重みによって深度値を重み付けすることと、
− 重み付き深度の合計ボリュームのそれぞれのビンに重み付き深度値を蓄積し、重みの合計ボリュームの対応するビンにスプラッティング重みを蓄積することとを含む、スプラッティング動作を実行することと;
− 重み付き深度の合計ボリュームの各ビンと、重みの合計ボリュームの対応するビンとについて、蓄積した重み付き深度値を蓄積した重みで除算することによって、画像に適合された深度ボリュームを取得するためにスライス動作を実行することと、
− 画像内の各ピクセルの画像に適合された深度マップの画像に適合された深度値を取得するために補間動作を実行することであって、補間動作は:
− 画像の座標系内のピクセルの座標に基づき、スプラッティング動作中に重み付き深度の合計ボリュームの対応するビンに寄与するピクセルに基づいて、画像に適合された深度ボリューム内の隣接するビンを識別し、
− 補間フィルタを画像に適合された深度ボリュームの隣接ビンに適用することを含み、補間フィルタは、隣接するビンの各々について、それぞれのビンに対するピクセルの相対位置に基づいて決定される補間重みを備える、補間動作を実行することと
によってジョイントバイラテラルフィルタを実行するように構成される。
本質的に、集積回路は、より粗い解像度でジョイントバイラテラルフィルタを実現するが、Paris et al.とは異なる様式である。有利な違いの1つは、Paris et al.は最初に補間を実行し、次にスライス動作を実行し、後者は除算を伴う。したがって、Paris et al.における除算は、フル解像度に補間して戻されたデータに対して実行される。請求されている集積回路は、ダウンサンプリングされたボリュームに対して、そうであるから、大幅に低減された解像度で、スライス動作を実行する。例えば、18x12x18(高さx幅x範囲)のボリュームが使用された場合は、3,888の除算動作のみが必要であり、これは、例えば480x270の画像(129,600の除算動作)で除算を実行するために必要な数よりもはるかに少ない。ダウンサンプリングされたボリュームにスライス動作を実行することによる品質の低下は非常に限られることがわかっている。しかしながら、除算動作は実現が計算的に複雑であるため、ジョイントバイラテラルフィルタを実行する計算負荷は大幅に低減される。これが、スプライシング動作をソフトウェアで実行することを可能にし、その実現に関する柔軟性をさらにもたらす。
入力として使用される深度マップはテンプレート深度マップであり、それにより、スラントなどの所定の汎用深度プロファイル、または異なる汎用深度プロファイルのリストから、画像のコンテンツに最もよく一致するとして選択される汎用深度プロファイルに対応することに留意されたい。しかしながら、一般に、深度マップは、画像にさらに適合されることから利益を得る任意の深度マップであり得る。
さらに、ボリュームは、例えば、画像の2空間次元のダウンサンプリングされたバージョンと、例えば輝度成分などの画像の成分の1つの範囲次元のダウンサンプリングされたバージョンによって構成される3次元ボリュームであり得ることに留意されたい。あるいは、ボリュームは、画像の2つ以上の成分、例えばYUV画像の輝度および1つ以上のクロミナンス成分、またはRGB画像の個々の色成分などに対応し得る2つ以上の範囲次元を備え得る。
任意選択により、処理サブシステムが、特定用途向けハードウェア回路と、ソフトウェアによって構成可能なマイクロプロセッサとを備え:
− 特定用途向けハードウェア回路が、スプラッティング動作と補間動作を実行するように構成され、
− マイクロプロセッサが、集積回路の動作中にスライス動作を実行するようにソフトウェアによって構成される。
本発明のこの態様は、スプラッティング動作および補間動作の両方が依然として比較的計算的に複雑であるが、スライス動作は、ダウンサンプリングされたボリュームのみを動作させることにより、Paris et al.と比較して複雑さが著しく低減されているという洞察に基づいている。そのため、スライス動作はソフトウェアで実行され得、柔軟性をもたらし、一方、スプラッティング動作と補間動作は、ソフトウェアに対するハードウェア実行の一般的により高い効率を考慮して、ハードウェアで実行され得る。
任意選択により、特定用途向けハードウェア回路が、スプラッティング動作で使用されるスプラッティング重みおよび/または補間動作で使用される補間重みを格納するためのフィルタテーブルを備える。スプラッティング動作および補間動作がハードウェア動作である場合、前記重みは、読み取り専用メモリまたはランダムアクセスメモリであり得るハードウェア回路のフィルタテーブルに記憶され得る。これが、それぞれの動作のハードウェアによって、前記重みが簡単にアクセスされることを可能にする。
任意選択により、フィルタテーブルは、スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが、それぞれの動作を実行する前に、ロードされる。補間動作とは異なる重みがスプラッティング動作に使用される場合、これらの重みは、例えばマイクロプロセッサによってそれぞれの動作が実行される前にフィルタテーブルにロードされ得る。このようにして、フィルタテーブルのハードウェアは再利用され、スプラッティング動作のハードウェアと補間動作のハードウェアの両方に個別に実現されない。スプラッティング動作と補間動作の間のフィルタテーブルのハードウェアの再利用に加えて、またはそれに代えて、一般に、スプラッティング動作と補間動作との間ビン内のサンプルの相対位置を決定するためのハードウェアの再利用もあり得ることに留意されたい。
任意選択により、スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが同じである。本発明のこの態様は、補間動作を実行する場合と同じ重みがスプラッティング動作を実行するために使用され得るという洞察に基づいており、なぜなら両方とも本質的に同様の動作であるためであり、これらはまた、現コンテキストでは、一方では画像、他方では2つの空間次元と画像の範囲次元に関してダウンサンプリングされた次元を有する多次元ボリュームでも動作する。同じ重みを使用することにより、両方の動作の実行がかなり効率的になる。
任意選択により、スプラッティング動作で使用されるスプラッティング重みおよび補間動作で使用される補間重みが、画像の座標系に関する線形補間を表す。したがって、重みは、スプラッティング動作とボリュームの次元の各々に沿った補間動作との、それぞれのボリュームのデータに線形補間が適用されるように選択される。例えば、3次元ボリュームの場合、トライリニア補間が使用されることができ、一方、例えば2つの範囲次元を有する4次元ボリュームの場合、クワドリニア補間が使用されることができる。線形補間は、スパッティング動作と補間動作に適していることがわかっている。代わりに、キュービック補間を含むがこれに限定されない、より高次の補間が各次元で使用されてもよい。
任意選択により、マイクロプロセッサが、集積回路の動作中に、スライス動作を実行する前に、重み付き深度の合計ボリュームに、および重みの合計ボリュームに時間フィルタリングを適用するようにソフトウェアによって構成される。時間的安定性を確保するために、時間フィルタリングが深度マップにしばしば適用される。そのような時間フィルタリングを深度マップに適用する代わりに、またはそれに加えて、深度マップを生成するために使用されるボリューム自体を時間フィルタリングすることができる。これは、画像と比較して比較的小さなサイズのボリュームに実行するのに計算的に効率的でありながら、より時間的に安定した深度マップをもたらすことがわかっている。例えば、18x12x18の典型的なボリュームは、フィルタリングされる3,888個のデータ値を収容するが、一方、480x270の画像は、フィルタリングされる129,600個のデータ値を収容する。ボリュームに特別に適用されるフィルタリングにより、ソフトウェアの実現が可能である。有利には、いわゆるショットカットの場合に、無限インパルス応答(IIR)フィルタの重み付き深度の合計ボリュームへの適用が、例えば専用のショットカット検出器を伴う専用のショットカット処理を必要とせずに、結果として得られる深度マップの時間的安定性を向上させることがわかった。時間フィルタリングは、例えば、一次、または、より高次の無限インパルス応答フィルタであり、ボリュームデータに対する他の(非線形)動作の一部として実現され得る。
任意選択により、マイクロプロセッサが、集積回路の動作中に、時間フィルタリングを画像に適合された深度ボリュームに適用するようにソフトウェアによって構成される。そのような時間フィルタリングは、重み付き深度の合計ボリュームまたは重みの合計ボリュームのフィルタリングに関して説明した実際の画像のフィルタリングと比較して、計算の複雑さにおける比較に値する低減を提供する。時間フィルタリングは、重み付き深度の合計ボリュームまたは重みの合計ボリュームのフィルタリングに関して説明したものと同じタイプであり得る。
任意選択により、処理サブシステムが、スプラッティング動作を実行した後、重み付き深度の合計ボリュームをガウスカーネルで畳み込むように構成される。このような畳み込みが、深度マップの品質を向上させることがわかっている。
任意選択により、テンプレート深度マップは、画像に関して低減された空間解像度を有し、例えば、重み付き深度の合計ボリュームおよび重みの合計ボリュームの2つの空間次元に対応する2つの空間次元を有する。それで、スプラッティング動作で使用されるのと同じ重みを使用して、テンプレート深度マップが補間され得る。
任意選択により、ジョイントバイラテラルフィルタは画像の輝度データのみに適用される。任意選択により、画像の輝度データとクロミナンスデータにジョイントバイラテラルフィルタが適用される。後者の場合、ボリュームは、3つの範囲次元、例えばY、U、V次元を有する5次元のボリュームであり得る。
任意選択により、集積回路が、フィールドプログラマブルゲートアレイまたはシステムオンチップであるか、その一部である。集積回路は、ディスプレイデバイスまたはセットトップボックスなどのデバイスの一部であり得るが、深度マップを推定することによって2Dビデオを3Dビデオに変換するために使用される他のデバイスでもあり得る。
本発明のさらなる態様は、画像から深度マップを推定するための、コンピュータにより実行される方法を提供し、この方法は:
− 画像の画像データへアクセスするステップと、
− テンプレート深度マップの深度データにアクセスするステップであって、テンプレート深度マップが、画像データに適合させるテンプレートを表す、アクセスするステップと、
− 画像データをジョイントバイラテラルフィルタの範囲項として使用してテンプレート深度マップにジョイントバイラテラルフィルタを適用し、画像に適合された深度マップを、出力として取得するステップとを含み、
ジョイントバイラテラルフィルタを適用するステップは、
− 重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれの空のデータ構造として初期化するステップであって、前記ボリュームの各々は:
− 画像データの2つの空間次元のダウンサンプリングされたバージョンを表す、2つの空間次元と、
− 画像データの範囲次元のダウンサンプリングされたバージョンを表す、少なくとも1つの範囲次元とを含み、
前記ボリュームのセルは、画像の2つの空間次元および画像データの範囲次元に関して定義される画像の座標系でビンを定義する、初期化するステップと、
− 前記ボリュームを満たすためにスプラッティング動作を実行するステップであって、スプラッティング動作は、画像内の各ピクセルに対して:
− 画像の座標系におけるピクセルの座標に基づいて、座標は、前記ボリュームの各々のビンに関するピクセルの相対位置を示し、
− 隣接するビンにマッピングするスプラッティング動作のフットプリントを有するピクセルに基づいて、ピクセルがスプラッティング動作において寄与する重み付き深度の合計ボリューム内の、隣接する前記ビンを識別するステップを含み、
スプラッティング動作における前記寄与は:
− テンプレート深度マップからピクセルの深度値を取得するステップと、
− 隣接するビンの各々に対して、
− 深度値を重み付けするためのスプラッティング重みを取得するステップであって、スプラッティング重みは、それぞれのビンに関するピクセルの相対位置に基づいて決定される、取得するステップと、
− スプラッティング重みによって深度値を重み付けするステップと、
− 重み付き深度の合計ボリュームのそれぞれのビンに重み付き深度値を蓄積し、重みの合計ボリュームの対応するビンにスプラッティング重みを蓄積するステップとを含む、スプラッティング動作を実行するステップと、
− 重み付き深度の合計ボリュームの各ビンと、重みの合計ボリュームの対応するビンとについて、蓄積した重み付き深度値を蓄積した重みで除算することによって、画像に適合された深度ボリュームを取得するためにスライス動作を実行するステップと、
− 補間動作を実行して、画像内の各ピクセルの画像に適合された深度マップの画像に適合された深度値を取得するステップであって、補間動作は:
− 画像の座標系内のピクセルの座標に基づき、スプラッティング動作中に重み付き深度の合計ボリュームの対応するビンに寄与するピクセルに基づいて、画像に適合された深度ボリューム内の隣接するビンを識別し、
− 補間フィルタを画像に適合された深度ボリュームの隣接ビンに適用するステップを含み、補間フィルタは、隣接するビンの各々について、それぞれのビンに対するピクセルの相対位置に基づいて決定される補間重みを備える、補間動作を実行するステップと
を含む。
本発明のさらなる態様は、プロセッサシステムに方法を実行させるように構成された命令を表す一時的または非一時的データを含むコンピュータ可読媒体を提供する。
本発明の上述の実施形態、実現、および/または態様のうちの2つ以上は、有用と考えられる任意の方法で組み合わせることができることを当業者は理解するであろう。
説明された集積回路の修正および変形に対応する方法の修正および変形は、本説明に基づいて当業者によって遂行され得る。
本発明のこれらおよび他の態様は、以下に説明される実施形態から明らかであり、それらを参照して説明される。
計算的に効率的な様式で画像から深度マップを推定するように構成された集積回路を概略的に示す図である。 スプラッティング動作中に重みおよび重み付き深度値を蓄積するために使用され、補間動作のための深度値を保持し得る画像とボリュームとの間の関係を示す図である。 スプラッティング動作の簡略化された例を示す図である。 スプラッティング動作および補間動作の両方に対する、ビンのアドレス指定および関連する重みを示す詳細な例を示す図である。 スプラッティング動作のさまざまな態様を示す図である。 補間動作のさまざまな態様を示す図である。 補間動作のさまざまな態様を示す図である。 補間動作のさまざまな態様を示す図である。 画像から深度マップを推定する方法を示す図である。 プロセッサシステムに方法を実行させるための命令を含むコンピュータ可読媒体を示す図である。
異なる図において同じ参照番号を有するアイテムは、同じ構造的特徴および同じ機能を有すること、または同じ信号であることに留意されたい。そのようなアイテムの機能および/または構造が説明されている場合、詳細な説明においてそれらを繰り返し説明する必要はない。
参照および略語のリスト
以下の参考および略語のリストは、図面の解釈を容易にするために提供されており、特許請求の範囲を限定するものとして解釈されるべきではない。
010 画像データ
020 深度ボリューム入力データ
022 深度出力データ
024 テンプレート深度データ
026 補間されたテンプレート深度データ
030 重みの合計ボリュームデータ
032 重み付き深度の合計ボリュームデータ
052 重みおよびボリュームインデックスデータ
054 重みデータ
100 集積回路の処理サブシステム
110 画像データ入力インターフェース
120 深度ボリュームデータ入力インターフェース
122 深度データ出力インターフェース
130−132 ボリュームデータ出力インターフェース
140 スプラッティングブロック
150 重み付けブロック
160 補間ブロック
170 2D補間ブロック
180 制御ロジック
200 画像
210 水平次元
220 垂直次元
250 明るい画像パッチのマッピング
260 暗い画像の背景のマッピング
300 画像のボリューム表現
310 水平次元
320 垂直次元
330 範囲次元
400 次元(水平、垂直、または範囲)
410 深度サンプルの連続
420 スプラット蓄積区間
430 重み関数
440 ビン区間
442 エッジビン
444 非エッジビン
500 画像から深度マップを推定する方法
510 画像データへアクセスすること
520 深度データへアクセスすること
530 ジョイントバイラテラルフィルタを適用すること
540 ボリュームを初期化すること
550 スプラッティング動作
560 スライス動作
570 補間動作
600 コンピュータ可読媒体
610 命令を表す非一時的データ
図1は、計算的に効率的な様式で画像から深度マップを推定するように構成された集積回路の処理サブシステム100を概略的に示している。処理サブシステム100は、機能ブロック図として示されており、マイクロプロセッサ、特定用途向けハードウェア回路、および1つ以上のローカルメモリなどの構成要素によって具現化され得る。集積回路は、他のマイクロプロセッサ、バスシステム、他のメモリなどを含むがこれらに限定されない、図1に示されていない他の構成要素を含み得る。一般に、集積回路は、フィールドプログラマブルゲートアレイ(FPGA)またはシステムオンチップ(SoC)として、またはその一部として、または他の適切な様式で実現され得る。
処理サブシステム100は、画像データ入力インターフェース110を備えるように示されており、画像データ入力インターフェース110を介して、画像データ010を、例えばダイレクトメモリアクセス(DMA)通信を介して、メモリから読み取ることができる。例えば、画像データは、輝度入力データYinであってもよい。この点で、画像データ入力インターフェース110および処理サブシステム100の他のインターフェースは、図1全体で「Buf」とラベル付けされた、バッファとして機能するローカルメモリを備えるか、それに接続され得ることに留意されたい。
処理サブシステム100はさらに、深度ボリュームデータ020をメモリから読み取ることができる深度ボリュームデータ入力インターフェース120と、深度データ022をメモリに書き込むことができる深度データ出力インターフェース122とを備えるように示される。処理サブシステム100はさらに、重みの合計ボリュームデータ030および重み付き深度の合計ボリュームデータ032をメモリに書き込むためのそれぞれのボリュームデータ出力インターフェース130、132を備えるように示されている。
処理サブシステム100の他の機能ブロックは、ボリュームデータ出力インターフェース130、132と通信するスプラッティングブロック140と、深度データインターフェース120、122と通信する補間ブロック160と、画像データ入力インターフェース110と通信し、重みおよびボリュームインデックスデータ052をスプラッティングブロック140および補間ブロック160に提供する重み付けブロック150と、制御ロジック180からテンプレート深度データ024を受け取り、重み付けブロック150から重みデータ054を受け取り、補間テンプレート深度データ026をスプラッティングブロック140に提供する2D補間ブロック170とを備える。
一実施形態では、図1に示される処理サブシステム100は、特定用途向けハードウェア回路として実現されてもよい。加えて、別個のマイクロプロセッサ(図1には図示せず)は、先に議論したようにスライス動作を実行するように構成された集積回路内に提供することができる。そのために、マイクロプロセッサは、例えばDMA経由でメモリにアクセスすることができる。あるいは、特定用途向けハードウェア回路によってスライス動作を実行することもできる。
処理サブシステム100およびその機能ブロックの動作は、図2−7を参照してさらに説明される。これに関し、図2を参照して説明されるように、図1において「*」は、ボリュームの多次元データ表現に関連付けられたローカルバッファまたはインターフェースを示していることに留意されたい。
図2は、画像200とボリューム300との間の関係を示しており、そのようなタイプのボリュームは、スプラッティング動作中に重みおよび重み付き深度値を蓄積し、補間動作のために画像200のピクセルの深度値を保持するために使用される。ボリューム300は、3つの次元を有するように示されている。X次元310は、画像200の水平軸210に対応し得る。Y次元320は、画像200の垂直軸220に対応し得る。I次元330は、画像、例えば限定されないが輝度成分などの画像200の画像成分の範囲次元に対応し得る。ボリューム300は、画像200の空間次元および範囲次元に関してサブサンプリングされたサイズを有し得る。例えば、画像200は、270ライン(X、Y)ごと480ピクセルの空間次元、および256の値の範囲を定義する8ビットの範囲次元(I)を有することができ、一方、ボリューム300は18x12x18(X、Y、I)の次元、つまり空間次元310、320に対する18x12(X、Y)および範囲次元330に対する18(I)を有し得る。
ボリューム300のセルはビンを表し得る。スプラッティング動作中、そのようなビンは、画像200の深度情報の蓄積のための蓄積区間を定義し得る。ここで、特定のピクセルに関連付けられる重みまたは重み付き深度値の蓄積に使用されるビンは、ピクセルの空間座標およびその範囲値に応じて選択される。例えば、暗い画像コンテンツの深度情報は、矢印260で示されるようにボリューム300の「より低い」ビンに蓄積され得るという点で、画像200の輝度値は、ボリューム300のI次元330に沿ったビンの座標を決定することができ、一方、明るい画像コンテンツの深度情報は、矢印250で示されるように、ボリューム300の「より高い」ビンに蓄積され得る。さらに、画像コンテンツの空間的位置は、ボリューム300の空間次元310、320に沿ったビンの位置を定義し得る。したがって、画像200のピクセルの空間座標と範囲値の組み合わせ、すなわち、画像の(少なくとも)3D座標系におけるピクセルの座標は、ボリューム300のどのビンにスプラッティング動作中に重みまたは重み付き深度値が蓄積されるか、または、どのビンが補間動作による補間のためにピクセルの深度値を保持するかを、決定することができる。
ビンのこの決定は、本質的に、ピクセルの空間座標と範囲値をボリュームの座標空間の座標にマッピングすることを伴い、ボリューム内の相対位置に基づいてスプラッティングおよび補間中に使用されるビンを識別する。効果的には、スプラッティング中に、スプラッティングフットプリントに基づいてピクセルがどのビンに寄与するかを決定するために、隣接するビンが識別されて(「寄与」は重みまたは重み付き深度値の蓄積である)、補間中に、ボリューム内のピクセルの相対位置に基づいて、どのビン間で補間が実行されるかを決定するために、隣接するビンが識別される。そのために、ピクセルの空間座標と範囲値をボリュームの座標空間の座標にマッピングするマッピング関数が使用され得、その場合、後者の座標は、隣接するビンを直接示す。
サブサンプリングにより、画像200の複数のピクセルが、それらの深度値が少なくとも部分的に単一のビンに蓄積され得るという点で、ボリューム300の単一のビンに寄与し得る。逆に、ボリュームの座標系の座標がボリューム300のいくつかのセルの間にあるため、単一のピクセルがボリューム300のいくつかのビンに寄与し得る。そのため、ボリューム300にピクセルの深度値を蓄積するとき、ボリューム300のいくつかのセルへの寄与を考慮するために、深度値を重み付けする必要があり得る。これは「スプラッティング」とも呼ばれる。
図3Aは、単一の次元K400に沿ったそのようなスプラッティング動作を示す。この次元Kは、水平(X)、垂直(Y)、または輝度(I)次元であり得る。この説明のために、次元K400は、輝度次元Iを表すと考えられる。最初に、この次元は、例えば256値(8ビット、0から255まで)から、幅16の16個のビンへ下って、例えば輝度次元Iのサブサンプリングによってビン440に分割される。それ自体知られているように、各ビンは特定の値または蓄積値の合計を保持することができるストレージ要素である。説明のため、特に図の視認性を向上させるために、図3A以降では、合計で12個のビン:10個の「通常」ビン[1]から[10]、および、2つのいわゆる「エッジビン」[0]ならびに[11]のみを伴うビニングが示されていることに留意されたい。エッジビン[0]と[11]の異なるサイズと目的については、図3Bをさらに参照して説明する。
以下は、ヒストグラム動作を参照したスプラッティング動作を示している。従来のヒストグラムは、次のように取得し得る:画像の各ピクセルについて、その輝度値がどの単一ビン内に入るかを決定し得る。次いで、そのビンの値は、例えば1だけインクリメントされ得る。その結果、ビンに関連付けられた輝度区間に関する輝度値の相対位置は無関係であり得る。例えば、ビンが[0…7]の蓄積の輝度区間を定義する場合、このビン内に落ちるすべての輝度値は、輝度値がビンの中心内(例えば、輝度値3および4)またはビンのエッジ(例えば、輝度値0および7)に落ちるかどうかに関係なく、同じインクリメント、つまり1のインクリメントを引き起こし得る。
より良い、例えば、より正確なヒストグラム表現を取得するために、スプラッティング技術が使用され得る。すなわち、ビン内の輝度値の相対位置は、重み付けによって考慮され得る。そのようなスプラッティング技術において、「スプラット」であるピクセルの寄与は、輝度次元に沿ったピクセルの座標に、例えば輝度値に、フットプリントを明示的または暗黙的に割り当てることにより決定され得る。スプラッティングによる蓄積は、次のように実行され得る:ピクセルの輝度値について、ピクセルがどの隣接ビンに寄与するかが決定され、「寄与」とは、ビンが少なくとも部分的にピクセルのフットプリント内に落ちることを指す。次いで、隣接するビンの値が、2つのビンに関する輝度値の相対位置に依存するそれぞれの重みによってインクリメントされ得る。例えば、輝度値が「現在の」ビン内の中央に落ちるとき、そのビンへの寄与は「高」であり得るのに対し、「前の」(下の)ビンおよび「次の」(高い)ビンへの寄与は低であり得る。同様に、輝度値が2つのビンの間に落ちるとき、各ビンへの寄与は「高」値の半分になり得る。
前述の位置依存の重み付けは、ビンに対するそのようなフットプリントベースの寄与を具体化し得る。重み付けは特定の区間内のビンへの寄与のみを定義するため、この区間は特定のビンの「蓄積区間」を表すとみなされ得ることに留意されたい。例えば、「現在の」(または「今の」)ビンの蓄積区間は、現在のビンを含むとみなされ、一方、前のビンと次のビンの中間まで延長もされる。したがって、前のビンの半分から開始して、現在のビンへの寄与は、現在のビン内で、中央でゼロから最大までゆっくりと増加し、ついで、次のビンの途中でゆっくりとゼロに減少し得る。
スプラッティング動作を使用した結果、ビンに蓄積された値は、ヒストグラムのより正確な表現を表し得る。
スプラッティング動作の具体的かつ効率的な実現では、フットプリントは、例えば、ビンのサイズに対応するサイズまたはより小さいサイズを有することによって、最大で2つの隣接するビンに寄与すると考えられる。この場合、ピクセルは最大でビン[n]とビン[n+1]に寄与し、ここでnはビンインデックスまたはボリュームの座標系の座標である。以下では、第1のビンを「現在の」ビンと呼び、第2のビンを「次の」ビンと呼ぶ。
特に具体的かつ効率的な実現では、現在のビン内のピクセルの寄与が現在のビンと次のビンにのみであるように、ビンの蓄積区間を定義する。しかしながら、この実現は、ビンの半分の「オフセット」を有すると考えられ、ピクセルの寄与がそこにあることは直観的に理解できるであろう。つまり、この特定の実現では、ビンへの最大の寄与はビンの中央で得られず、その最低の境界で得られる。このようにビンを定義する理由は、例えば、重みの計算と記憶、および/またはビンに関する相対位置の計算を検討するときに、スプラッティング動作と補間動作の間でより多くのハードウェアの再利用を可能にするためである。
例として、図3Aで、ビン[5]の左側の輝度値である輝度値p0の場合を考える。この相対位置は、重み付け関数430に従ってビン[5]に「高い」重みを寄与し(最大での/付近での点線)、ビン[6]に「低い」重みを寄与する(ゼロでの/付近での破線)。次に、ビン[5]の中央にある輝度値p1の場合を考える。この相対位置は、ビン[5]および[6]に等しい重み(「高い」重みの半分)を与え得る。最後に、ビン[5]の右側の輝度値p2の場合を考える。この相対位置は、ビン[5]に「低い」重みを、ビン[6]に「高い」重みを寄与し得る。したがって、輝度値の相対位置は重みを決定し得、その重みにより輝度値が現在および次のビンに蓄積される。それにより、図3Aの例は、輝度値に応じて、ビン[5]への最大寄与からビン[6]への最大寄与までの線形「フェードオーバー」を示している。
現在のビン内の輝度値を有するピクセルが現在のビンおよび次のビンのみに寄与するこの、特定の効率的な実現では、ビン[5]に関連付けられた蓄積区間は、ビン[5]とその前のビンにわたる区間、例えば図3Aのビン[4]および[5]をカバーする点線に対応する区間であり得ることが理解されるであろう。同様に、ビン[6]に関連付けられた蓄積区間は、ビン[6]とその前のビンにわたる区間、例えば図3Aのビン[5]と[6]をカバーする破線に対応する区間であり得る。
図3Bは、同様の実施形態のより詳細を示すが、それぞれのボリューム、すなわち前述の重み付き深度の合計ボリュームおよび重みの合計ボリュームにおける、重み付き深度値および重みの蓄積に適用される。
この例では、両方のボリュームは、画像のサイズに関係なく18x12x18ビン(X、Y、I)の固定最大サイズを有するが、実際のビンの数は変わり得る。すなわち、「サイズビンK」パラメータが、スプラッティング動作で使用されて、非エッジビン444のサイズを定義し、したがって、使用されるビンの数を決定する。このサイズは、実現の複雑さを低減するために2の累乗であり得る。次元「エッジビンK」の端にある2つのビンのサイズは、次元サイズの任意の値を可能にするために変わり得る。図3Bは、より下のエッジビン442を示している。例えば、画像幅が480であり、サイズビンXが32になるように選択されている場合、14個の非エッジビンと、それぞれが(480−14*32)/2=16の幅を有する2個のエッジビンがあり得る。別の例では、画像の高さが270で、サイズビンYが32の場合、エッジビンの各々の幅は(270−8*32)/2=7になり得る。そのため、エッジビンを使用すると、非エッジビンのサイズを2の累乗に等しくできるため、実現の複雑さが簡素化される。すなわち、固定小数点演算の正規化は、単純なシフト動作で実行することができる。さらに、2つのエッジビン(上端と下端)を使用することは、エッジビンが画像のエッジと一致するため、より良いフィルタ結果をもたらすことが示されている。したがって、意図的に特定のサイズのエッジビンを持つことが望ましい場合がある。例えば、通常の非エッジビンの半分のサイズのエッジビンが好ましい一方で、最小で通常のビンサイズの1/4、最大で通常のビンサイズの3/4であることがわかっている。
図3Bは、スプラッティングおよび深度補間の両方に対するビンのアドレス指定および関連する重みの例をさらに示している。理解を容易にするために、図3Bは単一の次元のみを示している。この次元は、画像位置のX、Y、または範囲次元のいずれかであり得る。具体的には、図3Bは、示されたインデックス位置[0]...[12]での深度サンプルの位置410を示し、例えば図1のテンプレート深度データ024から取得された入力深度マップの線に沿ったサンプルの位置に対応する。各インデックス位置について、対応するスプラット蓄積区間420、スプラッティングのための重み関数430によって決定される重み、および深度プロファイル補間(図1の参照番号170によって示される)、およびビン区間440が示されている。図3Bは次のように解釈される。所与のインデックス位置、例えばインデックス位置[7]に対して、同じ数字[7]で示される蓄積区間と、蓄積区間[7]と同じ線スタイルで示される対応する重み関数430が定義される。重み関数430は重み「f」を表し、これは、蓄積区間[7]のエッジからの0から蓄積区間[7]の中心の1まで線形に遷移する。同じ蓄積区間[7]内に重み「1−f」も示されており、これは、蓄積区間[7]の左半分で、半分重なっている蓄積区間[6]の深度サンプル[6]の重みを表し、蓄積区間[7]の右半分で、半分重なっている蓄積区間[8]の深度サンプル[8]の重みを表す。
蓄積区間と重みは、示された次元に沿った所与の位置pに対して、SW[x]+=fおよびSW[x+1]+=(1−f)に従って、重みの合計ボリュームのビンが蓄積される一方、SWD[x]+=f*dおよびSWD[x+1]+=(1−f)*dに従って重み付き深度の合計ボリュームのビンが蓄積されるように選択されることがわかる。ここで、位置pはビンxを決定し、この例では[6]であり、深度値dは、d=(1−f)*D[x]+f*D[x+1]に従って深度マップDから深度プロファイル補間(図1の170)によって得られる。これは、単一の次元のみに対するものであり;通常、ビンのアドレス指定は、画像の空間次元X、Y、および1つ以上の範囲次元Iに基づいているため、通常は画像データ自体にも依存することに留意されたい。
重み「f」および「(1−f)」は、正規化された式を使用して固定小数点値として計算できることに留意されたい。例えば、バイナリドットの後の3ビットの場合、8の値は「1」を表し、したがって「f」は[0..8]の範囲にある。特定の例では、dp=(f−1)*D[x]+f*D[x+1]、ここでD[x]は24、D[x+1]が8でfが6である、が計算されると仮定した場合、「dp」は((8−6)*24+6*8)/8=96/8=12として計算することができる。8による除算は正規化ステップである。この例は、図5のY位置10の表にも示されている。この図および他の図および本文全体で、「wny」および「wpy」は、この正規化前の「f」および「(1−f)」の固定小数点値を表す。
特定のおよび効率的な実施形態では、最大重みは、ビンのサイズ、例えば8のビンサイズの8に対応し得る。したがって、輝度値の各ステップは、2つの隣接するビンの各々の重みのステップをもたらす。同様に、(xまたはy)位置の各ステップは、2つの隣接するビンの各々の重みのステップをもたらす。
図4は、単一の次元に沿って重み付き深度の合計(SWD)および重みの合計(SW)を満たすスプラッティング動作を示している。この例では、垂直Y軸が選択され、ここでビンのサイズは8(「サイズビンY」)であり、最初のビンのサイズは4(「エッジビンY」)である。「Y位置」は単に行番号である。図4の表は、インデックス1のビンYのラインに関する補間を示している。「ファクターY」は、ビン内のラインの相対位置である。「ファクターY」の値に基づいて、2つの重み「wpy」と「wny」が導出され、これらは、図3Bで説明したように相補的な重み「f」と「1−f」に関するが、今は「次の」ビンについて重み「wny」として表され、「現在の」ビンについて重み「wpy」として表され、ここで、「次の」と「現在の」は、2つの連続した空間的に隣接するビンを指す。スプラッティングは本質的にダウンサンプリング機能であり、これにより高解像度入力が低解像度出力に変換される。この例では、ビンY番号1内のすべてのラインは入力深度値「20」を有する。ラインの位置に応じて、重みはビン1からビン2に徐々にシフトする。したがって、ライン番号4(ビン1の最初のライン)では、図4に2つの矢印で示されているように、完全な値がビン1に蓄積され、ビン2に値は追加されない。ライン番号8(ビンの中間)では、値の50%がビン1に追加され、50%がビン2に追加される。これにより、ビン間の線形フェードオーバーが実現される。重みを使用し、SW(重みの合計)ボリュームのセルは適用された重みのみを蓄積するが、SWD(重み付き深度の合計)ボリュームのセルは深度値に重みを乗じて蓄積する(「重み付き深度」)。
要約すると、スプラッティング動作は、画像内の各ピクセルについて、画像の座標系、例えば(X、Y、I)座標、(X、Y、R、G、B)座標または(X、Y、I、U、V)座標のピクセルの座標を決定することを伴う。後者では、(I、U、V)はYUV信号の成分を指し、ここでY(輝度)成分はY空間次元と区別するためにI(強度)と呼ばれている。次に、重みの合計ボリューム内のどの隣接セルがピクセルに関連付けられた蓄積区間を表すかが決定され得る。ピクセルの深度値は、深度マップが画像よりも低い空間解像度を有する場合は、おそらく補間を使用して、深度マップから取得し得る。隣接するセルの各々について、深度値を重み付けするための重みを取得し得る。重みは、座標によって示されるそれぞれのセルの蓄積区間に関するピクセルの相対位置に基づいて(事前)計算し得る。次いで、深度値は、重みによって重み付けされ、重み付き深度の合計ボリュームのそれぞれのセルに蓄積され、重み自体は、重みの合計ボリュームの対応するセルに蓄積され得る。
単一の次元の場合、線形補間には2つの値が必要であることに留意されたい。同様に、2次元の場合、バイリニア補間には4つの値が必要である。3次元のボリュームの場合、トライリニア補間は8つの値を使用する。重みは、ビン内のサンプルの相対位置に応じて事前に計算された値であり得る。深度マップの画像に関する空間解像度が低減された、特に重み付き深度の合計ボリュームおよび重みの合計ボリュームと同じ低減された空間解像度の場合、深度マップは、スプラッティング動作で使用されるのと同じ重みを使用して、スプラッティング動作の前に画像解像度に補間され得る。これは、図1において、深度テンプレートを画像解像度に補間する2D補間ブロック170に重みデータ054を提供する重み付けブロック150によって示される。
スプラッティング動作を実行したならば、画像に適合した深度ボリュームを取得するために、スライス動作が実行され得る。このスライス動作は、図1には明示的に示されていないが、例えばDMA通信を介してメモリにアクセスできるソフトウェアによって構成されたマイクロプロセッサによって実行し得る。スライス動作は、重み付き深度の合計ボリュームの各セルおよび重みの合計ボリュームの対応するセルについて、蓄積された重み付き深度値を蓄積された重みで除算することを含み得る。この除算の結果、各ビンは今や画像に適合された深度値を収容し、こうして全体のボリュームは画像に適合された深度ボリュームを表す。
スライス動作を実行したならば画像内の各ピクセルに対する画像に適合された深度マップの画像に適合された深度値を取得するために、補間動作が実行され得る。この補間動作は、ピクセルの座標に基づく重み付き深度の合計ボリューム内の、ピクセルの蓄積区間を表す前記セルに基づいて、画像に適合された深度ボリューム内の隣接セルを識別すること、および画像に適合された深度ボリュームの隣接セルに補間フィルタを適用することを含んでいてもよく、補間フィルタは、セルの各々について、座標によって示されるそれぞれのセルの蓄積区間に関するピクセルの相対位置に基づいて決定される重みを備える。言い換えると、空間座標と範囲値によって決定されるピクセルの位置は、補間に使用されるビンを決定することができ、一方、ビン内のピクセルの相対位置は、補間の重みを決定することができる。重みは事前に計算される場合がある。特に、重みは、スプラッティング動作で使用されるものと同じ重みであってもよく、および/または重みを格納または計算するために、同じハードウェア回路が使用され得る。
図5は、図4がスプラッティング動作に対して行ったのと同様の様式の補間動作を示している。ここで、重みは、画像に適合された深度ボリュームから出力深度値を補間するために使用される。図5を図4と比較するとわかるように、ビン内の特定の相対位置に同じ重みが使用される。これは、スプラッティングブロック140へのものと同じ重みおよびボリュームインデックスデータ052を、補間ブロック160へ提供する重み付けブロック150によって、図1に示されている。表の右側部分は、入力深度値24および8に重みがどのように適用されるかを示している。例えば、Y位置7の補間では、((5x24+3x8))/8=18をもたらす。
図6は、図4と図5で使用されている2つの重み、すなわち、横軸のライン番号Yに応じて縦軸の「wpy」と「wpy」の値をグラフで示している。重み「wpy」は「現在の」値に適用され、重み「wny」は「次の」値に適用される。図7は図6に対応するが、図5に示す入力深度値24と8の間で得られた補間された出力を追加で示している。入力深度値間の線形フェージングを提供するように重みが計算されていることがわかる。線形フェージングに加えて、高次補間関数、例えば、キュービック補間またはスプライン補間も使用することができる。
一般に、説明されたボリュームのXまたはY次元のビンのサイズは、常に2のべき乗であり得、なぜならこの場合、例えば固定小数点トライリニア補間である補間が、正規化のためにシフト動作を使用し得るからであり、これがハードウェアコストの大幅な削減をもたらすことに留意されたい。これが、画像サイズに応じて、必要な可変な数のビンをもたらすという結果となる。ビンのサイズを変更すると、フィルタのパフォーマンスが影響を受ける場合がある。しかしながら、実験は、これが視覚的なパフォーマンスに大きな影響を与えないことが示している。さらに、固定数のビンの代わりに可変な数のビンを使用しても、ハードウェア設計に大きな影響はない。XまたはY次元のいずれかのビンのサイズはハードウェアパラメータで指定されることができるが、一方で、どの値を選択するかの分析は、例えばマイクロプロセッサのソフトウェアに委ねられる。
一般に、処理サブシステムは、説明された集積回路とは別に、例えば別のタイプのSoCに提供されてもよいことに留意されたい。
データは、処理サブシステムをネットリストおよび/または合成可能なRTLの形で定義するコンピュータ可読媒体で提供され得る。コンピュータ可読媒体、およびそれによりそこに格納されるデータは、一時的または非一時的であり得る。例えば、処理サブシステムは、VerilogまたはVHDLなどのハードウェア記述言語で合成可能なコアとして、または汎用ゲートまたはプロセス固有の標準セルとして実現されたRTC IPブロックの論理関数のブール代数表現を提供する汎用ゲートレベルネットリストとして提供され得る。
「マップ」という用語は、行と列に配置されたデータを指す。さらに、形容詞「ディスパリティ」は、カメラに対する画像の部分の深度を示すものとして理解されるべきである。したがって、深度マップは、深度値だけでなく、例えばディスパリティ値または視差シフト値によっても構成され得る。したがって、基本的に、深度マップは視差マップまたは視差シフトマップを構成し得る。ここで、ディスパリティという用語は、ユーザーの左目または右目で知覚されたときのオブジェクトの位置の違いを指す。視差シフトという用語は、ユーザーに前記ディスパリティを提供するための、2つのビュー間のオブジェクトの変位を指す。ディスパリティと視差シフトは、一般に距離または深度と負の相関がある。上記のすべてのタイプのマップおよび/または値の間で変換するためのデバイスおよび方法は知られている。
図8は、画像から深度マップを推定するための、コンピュータにより実行される方法500を示している。方法500は、「画像データへアクセスすること」というタイトルの動作で、画像の画像データへアクセスし510、「深度データへアクセスすること」というタイトルの動作で、テンプレート深度マップの深度データへアクセスし520、「ジョイントバイラテラルフィルタを適用すること」というタイトルの動作で、ジョイントバイラテラルフィルタの範囲項として画像データを使用して、テンプレート深度マップにジョイントバイラテラルフィルタを適用し530、それにより画像に適合された深度マップを、出力として取得することを含んで示され、ジョイントバイラテラルフィルタを適用することは、「ボリュームを初期化すること」というタイトルの動作で、重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれのデータが空の構造として初期化し540、「スプラッティング動作」というタイトルの動作で、前記のボリュームを満たすためにスプラッティング動作を実行して550、「スライス動作」というタイトルの動作で、画像に適合された深度ボリュームを取得するためにスライス動作を実行し560、「補間動作」というタイトルの動作で、画像内の各ピクセルについて、画像に適合された深度マップの画像に適合された深度値を取得するために、補間動作を実行する570ことを含む。上記の動作は、任意の適切な順序、例えば、連続的、同時に、またはそれらの組み合わせで、適用可能な場合、例えば入出力関係によって必要とされる特定の順序を条件として実行できることに留意されたい。例えば、動作510および520は、並行してまたは連続して実行され得る。
方法500は、プロセッサシステム上、例えば、コンピュータにより実行される方法として、専用ハードウェアとして、または両方の組み合わせとして、コンピュータ上で実行され得る。図9にも示されるように、例えば実行可能コードなどのコンピュータに対する命令は、例えば一連の機械可読物理マーク610の形で、および/または異なる電気的、例えば磁気的、または光学的特性または値を有する一連の要素として、コンピュータ可読媒体600に格納されてもよい。実行可能コードは、一時的または非一時的な様式で記憶され得る。コンピュータ可読媒体の例は、メモリデバイス、光学記憶デバイス、集積回路、サーバ、オンラインソフトウェアなどを含む。図9は、光ディスク600を示す。
上述の実施形態は、本発明を限定するのではなく例示するものであり、当業者は多くの代替実施形態を設計することができることに留意されたい。
請求項では、括弧の間に置かれた参照符号は、請求項を制限するものとして解釈されない。「含む」という動詞とその活用形の使用は、クレームに記載されているもの以外の要素またはステップの存在を排除するものではない。要素に先行する冠詞「1つの(a)」または「1つの(an)」は、複数のそのような要素の存在を排除しない。本発明は、いくつかの別個の要素を含むハードウェアによって、および適切にプログラムされたコンピュータによって実行され得る。いくつかの手段を列挙するデバイスクレームでは、これらの手段のいくつかは、1つのおよびハードウェアの同一のアイテムによって具現化されてもよい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組み合わせが有利に使用できないことを示すものではない。
本発明は、ジョイントバイラテラルフィルタ(joint bilateral filter)を使用して画像から深度マップを推定するように構成された集積回路に関する。本発明はさらに、ジョイントバイラテラルフィルタを使用して画像から深度マップを推定する方法、およびプロセッサシステムに方法を実行させるように構成された命令を表す一時的または非一時的データを含むコンピュータ可読媒体に関する。
テレビ、タブレット、およびスマートフォンなどのディスプレイデバイスは、3Dディスプレイを備え、そのようなデバイスでコンテンツを表示するときにユーザーに深度の認識を提供することができる。その目的のために、そのような3Dディスプレイは、それ自体で、またはユーザーにより着用されるメガネと一緒に、立体視に基づいてユーザーに深度の認識を提供するために、ユーザーに各目で異なる画像を提供する。
3Dディスプレイには、深度情報を収容するコンテンツが通常必要である。深度情報は、3Dコンテンツ内で暗黙的に提供され得る。例えば、簡潔に言えば「ステレオ」コンテンツとも呼ばれる立体視的コンテンツの場合、深度情報は左画像と右画像の違いによって提供される。深度情報は、3Dコンテンツ内で明示的に提供される場合もある。例えば、いわゆる画像+深度フォーマットでエンコードされた3Dコンテンツ内では、深度情報は、深度値、ディスパリティ値、および/または視差(parallactic)シフト値を含み得る深度マップによって提供され、前記値の各々は、画像内のオブジェクトがカメラに向かって持っている距離を表す。
現在利用可能な大量のコンテンツ、例えば映画、テレビ番組、画像などは2Dコンテンツである。3Dディスプレイで3Dレンダリングを可能にするには、このようなコンテンツを3Dに変換する必要がある。3Dへの変換は、2D画像、例えば2Dビデオの各2D画像の深度マップを生成することを含み得る。一般に、このプロセスは「2Dから3Dへの変換」と呼ばれ、深度マップを手動で作成することを伴い得る。例えば、ワークステーションで走っているソフトウェアツールは、デジタルペンを使用して深度マップを描画することにより、プロのユーザーに2D画像に深度を追加する可能性を提供し得る。深度マップは自動的に生成される場合もある。例えば、デバイスは、2D画像内のオブジェクトがカメラに向かって持っている距離を推定し、それに基づいて、2D画像の深度マップを生成し得る。
深度マップの自動生成の例は、単眼情報を使用して画像の深度マップを生成する方法を説明するUS8,447,141から知られている。この方法は、グローバル深度プロファイルを提供する画像の第1の深度マップを生成することを含み、これは、スラントなどの単純な汎用テンプレートであってもよい。さらに、第1の深度マップの深度値と画像の色および/または輝度値に基づく第2の深度マップが生成される。第2の深度マップの生成は、画像からの範囲情報を使用して第1の深度マップにジョイントバイラテラルフィルタを適用することを伴い得る。その結果、オブジェクトはグローバル深度プロファイルからより明確になると言われている。
事実上、US8,447,141は、ジョイントバイラテラルフィルタを使用して、深度マップによって提供される汎用テンプレートを画像の実際のコンテンツに適合させる。
しかしながら、ジョイントバイラテラルフィルタの実現は計算的に複雑である。Paris et al., International Journal of Computer Vision 81.1, 2009年, 24−52頁による公開「A fast approximation of the bilateral filter using a signal processing approach」は、計算的に複雑さが少ないと言われているジョイントバイラテラルフィルタの近似を示している。不都合なことに、説明されたバイラテラルフィルタの近似は依然として比較的計算的に複雑であり、したがって、消費者デバイス、例えば集積回路での費用効率の高い実現にはあまり適していない。
米国特許第8,447,141号明細書
Paris et al.,「A fast approximation of the bilateral filter using a signal processing approach」 International Journal of Computer Vision 81.1, 2009年, 24−52頁
本発明の目的の1つは、ジョイントバイラテラルフィルタを使用して画像から深度マップを推定するように構成された、Paris et al.により記載された近似よりも計算的に複雑ではない、集積回路を得ることである。
本発明の第1の態様は、画像から深度マップを推定するように構成された集積回路を提供し、集積回路は請求項1で定義されている。本発明のさらなる態様は、画像から深度マップを推定するための、コンピュータにより実行可能な方法を提供し、方法は、請求項14で定義されている。
本質的に、集積回路は、より粗い解像度でジョイントバイラテラルフィルタを実現するが、Paris et al.とは異なる様式である。有利な違いの1つは、Paris et al.は最初に補間を実行し、次にスライス動作を実行し、後者は除算を伴う。したがって、Paris et al.における除算は、フル解像度に補間して戻されたデータに対して実行される。請求されている集積回路は、ダウンサンプリングされたボリュームに対して、そうであるから、大幅に低減された解像度で、スライス動作を実行する。例えば、18x12x18(高さx幅x範囲)のボリュームが使用された場合は、3,888の除算動作のみが必要であり、これは、例えば480x270の画像(129,600の除算動作)で除算を実行するために必要な数よりもはるかに少ない。ダウンサンプリングされたボリュームにスライス動作を実行することによる品質の低下は非常に限られることがわかっている。しかしながら、除算動作は実現が計算的に複雑であるため、ジョイントバイラテラルフィルタを実行する計算負荷は大幅に低減される。これが、スプライシング動作をソフトウェアで実行することを可能にし、その実現に関する柔軟性をさらにもたらす。
入力として使用される深度マップはテンプレート深度マップであり、それにより、スラントなどの所定の汎用深度プロファイル、または異なる汎用深度プロファイルのリストから、画像のコンテンツに最もよく一致するとして選択される汎用深度プロファイルに対応することに留意されたい。しかしながら、一般に、深度マップは、画像にさらに適合されることから利益を得る任意の深度マップであり得る。
さらに、ボリュームは、例えば、画像の2空間次元のダウンサンプリングされたバージョンと、例えば輝度成分などの画像の成分の1つの範囲次元のダウンサンプリングされたバージョンによって構成される3次元ボリュームであり得ることに留意されたい。あるいは、ボリュームは、画像の2つ以上の成分、例えばYUV画像の輝度および1つ以上のクロミナンス成分、またはRGB画像の個々の色成分などに対応し得る2つ以上の範囲次元を備え得る。
任意選択により、処理サブシステムが、特定用途向けハードウェア回路と、ソフトウェアによって構成可能なマイクロプロセッサとを備え:
− 特定用途向けハードウェア回路が、スプラッティング動作と補間動作を実行するように構成され、
− マイクロプロセッサが、集積回路の動作中にスライス動作を実行するようにソフトウェアによって構成される。
本発明のこの態様は、スプラッティング動作および補間動作の両方が依然として比較的計算的に複雑であるが、スライス動作は、ダウンサンプリングされたボリュームのみを動作させることにより、Paris et al.と比較して複雑さが著しく低減されているという洞察に基づいている。そのため、スライス動作はソフトウェアで実行され得、柔軟性をもたらし、一方、スプラッティング動作と補間動作は、ソフトウェアに対するハードウェア実行の一般的により高い効率を考慮して、ハードウェアで実行され得る。
任意選択により、特定用途向けハードウェア回路が、スプラッティング動作で使用されるスプラッティング重みおよび/または補間動作で使用される補間重みを格納するためのフィルタテーブルを備える。スプラッティング動作および補間動作がハードウェア動作である場合、前記重みは、読み取り専用メモリまたはランダムアクセスメモリであり得るハードウェア回路のフィルタテーブルに記憶され得る。これが、それぞれの動作のハードウェアによって、前記重みが簡単にアクセスされることを可能にする。
任意選択により、フィルタテーブルは、スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが、それぞれの動作を実行する前に、ロードされる。補間動作とは異なる重みがスプラッティング動作に使用される場合、これらの重みは、例えばマイクロプロセッサによってそれぞれの動作が実行される前にフィルタテーブルにロードされ得る。このようにして、フィルタテーブルのハードウェアは再利用され、スプラッティング動作のハードウェアと補間動作のハードウェアの両方に個別に実現されない。スプラッティング動作と補間動作の間のフィルタテーブルのハードウェアの再利用に加えて、またはそれに代えて、一般に、スプラッティング動作と補間動作との間ビン内のサンプルの相対位置を決定するためのハードウェアの再利用もあり得ることに留意されたい。
任意選択により、スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが同じである。本発明のこの態様は、補間動作を実行する場合と同じ重みがスプラッティング動作を実行するために使用され得るという洞察に基づいており、なぜなら両方とも本質的に同様の動作であるためであり、これらはまた、現コンテキストでは、一方では画像、他方では2つの空間次元と画像の範囲次元に関してダウンサンプリングされた次元を有する多次元ボリュームでも動作する。同じ重みを使用することにより、両方の動作の実行がかなり効率的になる。
任意選択により、スプラッティング動作で使用されるスプラッティング重みおよび補間動作で使用される補間重みが、画像の座標系に関する線形補間を表す。したがって、重みは、スプラッティング動作とボリュームの次元の各々に沿った補間動作との、それぞれのボリュームのデータに線形補間が適用されるように選択される。例えば、3次元ボリュームの場合、トライリニア補間が使用されることができ、一方、例えば2つの範囲次元を有する4次元ボリュームの場合、クワドリニア補間が使用されることができる。線形補間は、スパッティング動作と補間動作に適していることがわかっている。代わりに、キュービック補間を含むがこれに限定されない、より高次の補間が各次元で使用されてもよい。
任意選択により、マイクロプロセッサが、集積回路の動作中に、スライス動作を実行する前に、重み付き深度の合計ボリュームに、および重みの合計ボリュームに時間フィルタリングを適用するようにソフトウェアによって構成される。時間的安定性を確保するために、時間フィルタリングが深度マップにしばしば適用される。そのような時間フィルタリングを深度マップに適用する代わりに、またはそれに加えて、深度マップを生成するために使用されるボリューム自体を時間フィルタリングすることができる。これは、画像と比較して比較的小さなサイズのボリュームに実行するのに計算的に効率的でありながら、より時間的に安定した深度マップをもたらすことがわかっている。例えば、18x12x18の典型的なボリュームは、フィルタリングされる3,888個のデータ値を収容するが、一方、480x270の画像は、フィルタリングされる129,600個のデータ値を収容する。ボリュームに特別に適用されるフィルタリングにより、ソフトウェアの実現が可能である。有利には、いわゆるショットカットの場合に、無限インパルス応答(IIR)フィルタの重み付き深度の合計ボリュームへの適用が、例えば専用のショットカット検出器を伴う専用のショットカット処理を必要とせずに、結果として得られる深度マップの時間的安定性を向上させることがわかった。時間フィルタリングは、例えば、一次、または、より高次の無限インパルス応答フィルタであり、ボリュームデータに対する他の(非線形)動作の一部として実現され得る。
任意選択により、マイクロプロセッサが、集積回路の動作中に、時間フィルタリングを画像に適合された深度ボリュームに適用するようにソフトウェアによって構成される。そのような時間フィルタリングは、重み付き深度の合計ボリュームまたは重みの合計ボリュームのフィルタリングに関して説明した実際の画像のフィルタリングと比較して、計算の複雑さにおける比較に値する低減を提供する。時間フィルタリングは、重み付き深度の合計ボリュームまたは重みの合計ボリュームのフィルタリングに関して説明したものと同じタイプであり得る。
任意選択により、処理サブシステムが、スプラッティング動作を実行した後、重み付き深度の合計ボリュームをガウスカーネルで畳み込むように構成される。このような畳み込みが、深度マップの品質を向上させることがわかっている。
任意選択により、テンプレート深度マップは、画像に関して低減された空間解像度を有し、例えば、重み付き深度の合計ボリュームおよび重みの合計ボリュームの2つの空間次元に対応する2つの空間次元を有する。それで、スプラッティング動作で使用されるのと同じ重みを使用して、テンプレート深度マップが補間され得る。
任意選択により、ジョイントバイラテラルフィルタは画像の輝度データのみに適用される。任意選択により、画像の輝度データとクロミナンスデータにジョイントバイラテラルフィルタが適用される。後者の場合、ボリュームは、3つの範囲次元、例えばY、U、V次元を有する5次元のボリュームであり得る。
任意選択により、集積回路が、フィールドプログラマブルゲートアレイまたはシステムオンチップであるか、その一部である。集積回路は、ディスプレイデバイスまたはセットトップボックスなどのデバイスの一部であり得るが、深度マップを推定することによって2Dビデオを3Dビデオに変換するために使用される他のデバイスでもあり得る。
本発明のさらなる態様は、プロセッサシステムに方法を実行させるように構成された命令を表す一時的または非一時的データを含むコンピュータ可読媒体を提供する。
本発明の上述の実施形態、実現、および/または態様のうちの2つ以上は、有用と考えられる任意の方法で組み合わせることができることを当業者は理解するであろう。
説明された集積回路の修正および変形に対応する方法の修正および変形は、本説明に基づいて当業者によって遂行され得る。
本発明のこれらおよび他の態様は、以下に説明される実施形態から明らかであり、それらを参照して説明される。
計算的に効率的な様式で画像から深度マップを推定するように構成された集積回路を概略的に示す図である。 スプラッティング動作中に重みおよび重み付き深度値を蓄積するために使用され、補間動作のための深度値を保持し得る画像とボリュームとの間の関係を示す図である。 スプラッティング動作の簡略化された例を示す図である。 スプラッティング動作および補間動作の両方に対する、ビンのアドレス指定および関連する重みを示す詳細な例を示す図である。 スプラッティング動作のさまざまな態様を示す図である。 補間動作のさまざまな態様を示す図である。 補間動作のさまざまな態様を示す図である。 補間動作のさまざまな態様を示す図である。 画像から深度マップを推定する方法を示す図である。 プロセッサシステムに方法を実行させるための命令を含むコンピュータ可読媒体を示す図である。
異なる図において同じ参照番号を有するアイテムは、同じ構造的特徴および同じ機能を有すること、または同じ信号であることに留意されたい。そのようなアイテムの機能および/または構造が説明されている場合、詳細な説明においてそれらを繰り返し説明する必要はない。
参照および略語のリスト
以下の参考および略語のリストは、図面の解釈を容易にするために提供されており、特許請求の範囲を限定するものとして解釈されるべきではない。
010 画像データ
020 深度ボリューム入力データ
022 深度出力データ
024 テンプレート深度データ
026 補間されたテンプレート深度データ
030 重みの合計ボリュームデータ
032 重み付き深度の合計ボリュームデータ
052 重みおよびボリュームインデックスデータ
054 重みデータ
100 集積回路の処理サブシステム
110 画像データ入力インターフェース
120 深度ボリュームデータ入力インターフェース
122 深度データ出力インターフェース
130−132 ボリュームデータ出力インターフェース
140 スプラッティングブロック
150 重み付けブロック
160 補間ブロック
170 2D補間ブロック
180 制御ロジック
200 画像
210 水平次元
220 垂直次元
250 明るい画像パッチのマッピング
260 暗い画像の背景のマッピング
300 画像のボリューム表現
310 水平次元
320 垂直次元
330 範囲次元
400 次元(水平、垂直、または範囲)
410 深度サンプルの連続
420 スプラット蓄積区間
430 重み関数
440 ビン区間
442 エッジビン
444 非エッジビン
500 画像から深度マップを推定する方法
510 画像データへアクセスすること
520 深度データへアクセスすること
530 ジョイントバイラテラルフィルタを適用すること
540 ボリュームを初期化すること
550 スプラッティング動作
560 スライス動作
570 補間動作
600 コンピュータ可読媒体
610 命令を表す非一時的データ
図1は、計算的に効率的な様式で画像から深度マップを推定するように構成された集積回路の処理サブシステム100を概略的に示している。処理サブシステム100は、機能ブロック図として示されており、マイクロプロセッサ、特定用途向けハードウェア回路、および1つ以上のローカルメモリなどの構成要素によって具現化され得る。集積回路は、他のマイクロプロセッサ、バスシステム、他のメモリなどを含むがこれらに限定されない、図1に示されていない他の構成要素を含み得る。一般に、集積回路は、フィールドプログラマブルゲートアレイ(FPGA)またはシステムオンチップ(SoC)として、またはその一部として、または他の適切な様式で実現され得る。
処理サブシステム100は、画像データ入力インターフェース110を備えるように示されており、画像データ入力インターフェース110を介して、画像データ010を、例えばダイレクトメモリアクセス(DMA)通信を介して、メモリから読み取ることができる。例えば、画像データは、輝度入力データYinであってもよい。この点で、画像データ入力インターフェース110および処理サブシステム100の他のインターフェースは、図1全体で「Buf」とラベル付けされた、バッファとして機能するローカルメモリを備えるか、それに接続され得ることに留意されたい。
処理サブシステム100はさらに、深度ボリュームデータ020をメモリから読み取ることができる深度ボリュームデータ入力インターフェース120と、深度データ022をメモリに書き込むことができる深度データ出力インターフェース122とを備えるように示される。処理サブシステム100はさらに、重みの合計ボリュームデータ030および重み付き深度の合計ボリュームデータ032をメモリに書き込むためのそれぞれのボリュームデータ出力インターフェース130、132を備えるように示されている。
処理サブシステム100の他の機能ブロックは、ボリュームデータ出力インターフェース130、132と通信するスプラッティングブロック140と、深度データインターフェース120、122と通信する補間ブロック160と、画像データ入力インターフェース110と通信し、重みおよびボリュームインデックスデータ052をスプラッティングブロック140および補間ブロック160に提供する重み付けブロック150と、制御ロジック180からテンプレート深度データ024を受け取り、重み付けブロック150から重みデータ054を受け取り、補間テンプレート深度データ026をスプラッティングブロック140に提供する2D補間ブロック170とを備える。
一実施形態では、図1に示される処理サブシステム100は、特定用途向けハードウェア回路として実現されてもよい。加えて、別個のマイクロプロセッサ(図1には図示せず)は、先に議論したようにスライス動作を実行するように構成された集積回路内に提供することができる。そのために、マイクロプロセッサは、例えばDMA経由でメモリにアクセスすることができる。あるいは、特定用途向けハードウェア回路によってスライス動作を実行することもできる。
処理サブシステム100およびその機能ブロックの動作は、図2−7を参照してさらに説明される。これに関し、図2を参照して説明されるように、図1において「*」は、ボリュームの多次元データ表現に関連付けられたローカルバッファまたはインターフェースを示していることに留意されたい。
図2は、画像200とボリューム300との間の関係を示しており、そのようなタイプのボリュームは、スプラッティング動作中に重みおよび重み付き深度値を蓄積し、補間動作のために画像200のピクセルの深度値を保持するために使用される。ボリューム300は、3つの次元を有するように示されている。X次元310は、画像200の水平軸210に対応し得る。Y次元320は、画像200の垂直軸220に対応し得る。I次元330は、画像、例えば限定されないが輝度成分などの画像200の画像成分の範囲次元に対応し得る。ボリューム300は、画像200の空間次元および範囲次元に関してサブサンプリングされたサイズを有し得る。例えば、画像200は、270ライン(X、Y)ごと480ピクセルの空間次元、および256の値の範囲を定義する8ビットの範囲次元(I)を有することができ、一方、ボリューム300は18x12x18(X、Y、I)の次元、つまり空間次元310、320に対する18x12(X、Y)および範囲次元330に対する18(I)を有し得る。
ボリューム300のセルはビンを表し得る。スプラッティング動作中、そのようなビンは、画像200の深度情報の蓄積のための蓄積区間を定義し得る。ここで、特定のピクセルに関連付けられる重みまたは重み付き深度値の蓄積に使用されるビンは、ピクセルの空間座標およびその範囲値に応じて選択される。例えば、暗い画像コンテンツの深度情報は、矢印260で示されるようにボリューム300の「より低い」ビンに蓄積され得るという点で、画像200の輝度値は、ボリューム300のI次元330に沿ったビンの座標を決定することができ、一方、明るい画像コンテンツの深度情報は、矢印250で示されるように、ボリューム300の「より高い」ビンに蓄積され得る。さらに、画像コンテンツの空間的位置は、ボリューム300の空間次元310、320に沿ったビンの位置を定義し得る。したがって、画像200のピクセルの空間座標と範囲値の組み合わせ、すなわち、画像の(少なくとも)3D座標系におけるピクセルの座標は、ボリューム300のどのビンにスプラッティング動作中に重みまたは重み付き深度値が蓄積されるか、または、どのビンが補間動作による補間のためにピクセルの深度値を保持するかを、決定することができる。
ビンのこの決定は、本質的に、ピクセルの空間座標と範囲値をボリュームの座標空間の座標にマッピングすることを伴い、ボリューム内の相対位置に基づいてスプラッティングおよび補間中に使用されるビンを識別する。効果的には、スプラッティング中に、スプラッティングフットプリントに基づいてピクセルがどのビンに寄与するかを決定するために、隣接するビンが識別されて(「寄与」は重みまたは重み付き深度値の蓄積である)、補間中に、ボリューム内のピクセルの相対位置に基づいて、どのビン間で補間が実行されるかを決定するために、隣接するビンが識別される。そのために、ピクセルの空間座標と範囲値をボリュームの座標空間の座標にマッピングするマッピング関数が使用され得、その場合、後者の座標は、隣接するビンを直接示す。
サブサンプリングにより、画像200の複数のピクセルが、それらの深度値が少なくとも部分的に単一のビンに蓄積され得るという点で、ボリューム300の単一のビンに寄与し得る。逆に、ボリュームの座標系の座標がボリューム300のいくつかのセルの間にあるため、単一のピクセルがボリューム300のいくつかのビンに寄与し得る。そのため、ボリューム300にピクセルの深度値を蓄積するとき、ボリューム300のいくつかのセルへの寄与を考慮するために、深度値を重み付けする必要があり得る。これは「スプラッティング」とも呼ばれる。
図3Aは、単一の次元K400に沿ったそのようなスプラッティング動作を示す。この次元Kは、水平(X)、垂直(Y)、または輝度(I)次元であり得る。この説明のために、次元K400は、輝度次元Iを表すと考えられる。最初に、この次元は、例えば256値(8ビット、0から255まで)から、幅16の16個のビンへ下って、例えば輝度次元Iのサブサンプリングによってビン440に分割される。それ自体知られているように、各ビンは特定の値または蓄積値の合計を保持することができるストレージ要素である。説明のため、特に図の視認性を向上させるために、図3A以降では、合計で12個のビン:10個の「通常」ビン[1]から[10]、および、2つのいわゆる「エッジビン」[0]ならびに[11]のみを伴うビニングが示されていることに留意されたい。エッジビン[0]と[11]の異なるサイズと目的については、図3Bをさらに参照して説明する。
以下は、ヒストグラム動作を参照したスプラッティング動作を示している。従来のヒストグラムは、次のように取得し得る:画像の各ピクセルについて、その輝度値がどの単一ビン内に入るかを決定し得る。次いで、そのビンの値は、例えば1だけインクリメントされ得る。その結果、ビンに関連付けられた輝度区間に関する輝度値の相対位置は無関係であり得る。例えば、ビンが[0…7]の蓄積の輝度区間を定義する場合、このビン内に落ちるすべての輝度値は、輝度値がビンの中心内(例えば、輝度値3および4)またはビンのエッジ(例えば、輝度値0および7)に落ちるかどうかに関係なく、同じインクリメント、つまり1のインクリメントを引き起こし得る。
より良い、例えば、より正確なヒストグラム表現を取得するために、スプラッティング技術が使用され得る。すなわち、ビン内の輝度値の相対位置は、重み付けによって考慮され得る。そのようなスプラッティング技術において、「スプラット」であるピクセルの寄与は、輝度次元に沿ったピクセルの座標に、例えば輝度値に、フットプリントを明示的または暗黙的に割り当てることにより決定され得る。スプラッティングによる蓄積は、次のように実行され得る:ピクセルの輝度値について、ピクセルがどの隣接ビンに寄与するかが決定され、「寄与」とは、ビンが少なくとも部分的にピクセルのフットプリント内に落ちることを指す。次いで、隣接するビンの値が、2つのビンに関する輝度値の相対位置に依存するそれぞれの重みによってインクリメントされ得る。例えば、輝度値が「現在の」ビン内の中央に落ちるとき、そのビンへの寄与は「高」であり得るのに対し、「前の」(下の)ビンおよび「次の」(高い)ビンへの寄与は低であり得る。同様に、輝度値が2つのビンの間に落ちるとき、各ビンへの寄与は「高」値の半分になり得る。
前述の位置依存の重み付けは、ビンに対するそのようなフットプリントベースの寄与を具体化し得る。重み付けは特定の区間内のビンへの寄与のみを定義するため、この区間は特定のビンの「蓄積区間」を表すとみなされ得ることに留意されたい。例えば、「現在の」(または「今の」)ビンの蓄積区間は、現在のビンを含むとみなされ、一方、前のビンと次のビンの中間まで延長もされる。したがって、前のビンの半分から開始して、現在のビンへの寄与は、現在のビン内で、中央でゼロから最大までゆっくりと増加し、ついで、次のビンの途中でゆっくりとゼロに減少し得る。
スプラッティング動作を使用した結果、ビンに蓄積された値は、ヒストグラムのより正確な表現を表し得る。
スプラッティング動作の具体的かつ効率的な実現では、フットプリントは、例えば、ビンのサイズに対応するサイズまたはより小さいサイズを有することによって、最大で2つの隣接するビンに寄与すると考えられる。この場合、ピクセルは最大でビン[n]とビン[n+1]に寄与し、ここでnはビンインデックスまたはボリュームの座標系の座標である。以下では、第1のビンを「現在の」ビンと呼び、第2のビンを「次の」ビンと呼ぶ。
特に具体的かつ効率的な実現では、現在のビン内のピクセルの寄与が現在のビンと次のビンにのみであるように、ビンの蓄積区間を定義する。しかしながら、この実現は、ビンの半分の「オフセット」を有すると考えられ、ピクセルの寄与がそこにあることは直観的に理解できるであろう。つまり、この特定の実現では、ビンへの最大の寄与はビンの中央で得られず、その最低の境界で得られる。このようにビンを定義する理由は、例えば、重みの計算と記憶、および/またはビンに関する相対位置の計算を検討するときに、スプラッティング動作と補間動作の間でより多くのハードウェアの再利用を可能にするためである。
例として、図3Aで、ビン[5]の左側の輝度値である輝度値p0の場合を考える。この相対位置は、重み付け関数430に従ってビン[5]に「高い」重みを寄与し(最大での/付近での点線)、ビン[6]に「低い」重みを寄与する(ゼロでの/付近での破線)。次に、ビン[5]の中央にある輝度値p1の場合を考える。この相対位置は、ビン[5]および[6]に等しい重み(「高い」重みの半分)を与え得る。最後に、ビン[5]の右側の輝度値p2の場合を考える。この相対位置は、ビン[5]に「低い」重みを、ビン[6]に「高い」重みを寄与し得る。したがって、輝度値の相対位置は重みを決定し得、その重みにより輝度値が現在および次のビンに蓄積される。それにより、図3Aの例は、輝度値に応じて、ビン[5]への最大寄与からビン[6]への最大寄与までの線形「フェードオーバー」を示している。
現在のビン内の輝度値を有するピクセルが現在のビンおよび次のビンのみに寄与するこの、特定の効率的な実現では、ビン[5]に関連付けられた蓄積区間は、ビン[5]とその前のビンにわたる区間、例えば図3Aのビン[4]および[5]をカバーする点線に対応する区間であり得ることが理解されるであろう。同様に、ビン[6]に関連付けられた蓄積区間は、ビン[6]とその前のビンにわたる区間、例えば図3Aのビン[5]と[6]をカバーする破線に対応する区間であり得る。
図3Bは、同様の実施形態のより詳細を示すが、それぞれのボリューム、すなわち前述の重み付き深度の合計ボリュームおよび重みの合計ボリュームにおける、重み付き深度値および重みの蓄積に適用される。
この例では、両方のボリュームは、画像のサイズに関係なく18x12x18ビン(X、Y、I)の固定最大サイズを有するが、実際のビンの数は変わり得る。すなわち、「サイズビンK」パラメータが、スプラッティング動作で使用されて、非エッジビン444のサイズを定義し、したがって、使用されるビンの数を決定する。このサイズは、実現の複雑さを低減するために2の累乗であり得る。次元「エッジビンK」の端にある2つのビンのサイズは、次元サイズの任意の値を可能にするために変わり得る。図3Bは、より下のエッジビン442を示している。例えば、画像幅が480であり、サイズビンXが32になるように選択されている場合、14個の非エッジビンと、それぞれが(480−14*32)/2=16の幅を有する2個のエッジビンがあり得る。別の例では、画像の高さが270で、サイズビンYが32の場合、エッジビンの各々の幅は(270−8*32)/2=7になり得る。そのため、エッジビンを使用すると、非エッジビンのサイズを2の累乗に等しくできるため、実現の複雑さが簡素化される。すなわち、固定小数点演算の正規化は、単純なシフト動作で実行することができる。さらに、2つのエッジビン(上端と下端)を使用することは、エッジビンが画像のエッジと一致するため、より良いフィルタ結果をもたらすことが示されている。したがって、意図的に特定のサイズのエッジビンを持つことが望ましい場合がある。例えば、通常の非エッジビンの半分のサイズのエッジビンが好ましい一方で、最小で通常のビンサイズの1/4、最大で通常のビンサイズの3/4であることがわかっている。
図3Bは、スプラッティングおよび深度補間の両方に対するビンのアドレス指定および関連する重みの例をさらに示している。理解を容易にするために、図3Bは単一の次元のみを示している。この次元は、画像位置のX、Y、または範囲次元のいずれかであり得る。具体的には、図3Bは、示されたインデックス位置[0]...[12]での深度サンプルの位置410を示し、例えば図1のテンプレート深度データ024から取得された入力深度マップの線に沿ったサンプルの位置に対応する。各インデックス位置について、対応するスプラット蓄積区間420、スプラッティングのための重み関数430によって決定される重み、および深度プロファイル補間(図1の参照番号170によって示される)、およびビン区間440が示されている。図3Bは次のように解釈される。所与のインデックス位置、例えばインデックス位置[7]に対して、同じ数字[7]で示される蓄積区間と、蓄積区間[7]と同じ線スタイルで示される対応する重み関数430が定義される。重み関数430は重み「f」を表し、これは、蓄積区間[7]のエッジからの0から蓄積区間[7]の中心の1まで線形に遷移する。同じ蓄積区間[7]内に重み「1−f」も示されており、これは、蓄積区間[7]の左半分で、半分重なっている蓄積区間[6]の深度サンプル[6]の重みを表し、蓄積区間[7]の右半分で、半分重なっている蓄積区間[8]の深度サンプル[8]の重みを表す。
蓄積区間と重みは、示された次元に沿った所与の位置pに対して、SW[x]+=fおよびSW[x+1]+=(1−f)に従って、重みの合計ボリュームのビンが蓄積される一方、SWD[x]+=f*dおよびSWD[x+1]+=(1−f)*dに従って重み付き深度の合計ボリュームのビンが蓄積されるように選択されることがわかる。ここで、位置pはビンxを決定し、この例では[6]であり、深度値dは、d=(1−f)*D[x]+f*D[x+1]に従って深度マップDから深度プロファイル補間(図1の170)によって得られる。これは、単一の次元のみに対するものであり;通常、ビンのアドレス指定は、画像の空間次元X、Y、および1つ以上の範囲次元Iに基づいているため、通常は画像データ自体にも依存することに留意されたい。
重み「f」および「(1−f)」は、正規化された式を使用して固定小数点値として計算できることに留意されたい。例えば、バイナリドットの後の3ビットの場合、8の値は「1」を表し、したがって「f」は[0..8]の範囲にある。特定の例では、dp=(f−1)*D[x]+f*D[x+1]、ここでD[x]は24、D[x+1]が8でfが6である、が計算されると仮定した場合、「dp」は((8−6)*24+6*8)/8=96/8=12として計算することができる。8による除算は正規化ステップである。この例は、図5のY位置10の表にも示されている。この図および他の図および本文全体で、「wny」および「wpy」は、この正規化前の「f」および「(1−f)」の固定小数点値を表す。
特定のおよび効率的な実施形態では、最大重みは、ビンのサイズ、例えば8のビンサイズの8に対応し得る。したがって、輝度値の各ステップは、2つの隣接するビンの各々の重みのステップをもたらす。同様に、(xまたはy)位置の各ステップは、2つの隣接するビンの各々の重みのステップをもたらす。
図4は、単一の次元に沿って重み付き深度の合計(SWD)および重みの合計(SW)を満たすスプラッティング動作を示している。この例では、垂直Y軸が選択され、ここでビンのサイズは8(「サイズビンY」)であり、最初のビンのサイズは4(「エッジビンY」)である。「Y位置」は単に行番号である。図4の表は、インデックス1のビンYのラインに関する補間を示している。「ファクターY」は、ビン内のラインの相対位置である。「ファクターY」の値に基づいて、2つの重み「wpy」と「wny」が導出され、これらは、図3Bで説明したように相補的な重み「f」と「1−f」に関するが、今は「次の」ビンについて重み「wny」として表され、「現在の」ビンについて重み「wpy」として表され、ここで、「次の」と「現在の」は、2つの連続した空間的に隣接するビンを指す。スプラッティングは本質的にダウンサンプリング機能であり、これにより高解像度入力が低解像度出力に変換される。この例では、ビンY番号1内のすべてのラインは入力深度値「20」を有する。ラインの位置に応じて、重みはビン1からビン2に徐々にシフトする。したがって、ライン番号4(ビン1の最初のライン)では、図4に2つの矢印で示されているように、完全な値がビン1に蓄積され、ビン2に値は追加されない。ライン番号8(ビンの中間)では、値の50%がビン1に追加され、50%がビン2に追加される。これにより、ビン間の線形フェードオーバーが実現される。重みを使用し、SW(重みの合計)ボリュームのセルは適用された重みのみを蓄積するが、SWD(重み付き深度の合計)ボリュームのセルは深度値に重みを乗じて蓄積する(「重み付き深度」)。
要約すると、スプラッティング動作は、画像内の各ピクセルについて、画像の座標系、例えば(X、Y、I)座標、(X、Y、R、G、B)座標または(X、Y、I、U、V)座標のピクセルの座標を決定することを伴う。後者では、(I、U、V)はYUV信号の成分を指し、ここでY(輝度)成分はY空間次元と区別するためにI(強度)と呼ばれている。次に、重みの合計ボリューム内のどの隣接セルがピクセルに関連付けられた蓄積区間を表すかが決定され得る。ピクセルの深度値は、深度マップが画像よりも低い空間解像度を有する場合は、おそらく補間を使用して、深度マップから取得し得る。隣接するセルの各々について、深度値を重み付けするための重みを取得し得る。重みは、座標によって示されるそれぞれのセルの蓄積区間に関するピクセルの相対位置に基づいて(事前)計算し得る。次いで、深度値は、重みによって重み付けされ、重み付き深度の合計ボリュームのそれぞれのセルに蓄積され、重み自体は、重みの合計ボリュームの対応するセルに蓄積され得る。
単一の次元の場合、線形補間には2つの値が必要であることに留意されたい。同様に、2次元の場合、バイリニア補間には4つの値が必要である。3次元のボリュームの場合、トライリニア補間は8つの値を使用する。重みは、ビン内のサンプルの相対位置に応じて事前に計算された値であり得る。深度マップの画像に関する空間解像度が低減された、特に重み付き深度の合計ボリュームおよび重みの合計ボリュームと同じ低減された空間解像度の場合、深度マップは、スプラッティング動作で使用されるのと同じ重みを使用して、スプラッティング動作の前に画像解像度に補間され得る。これは、図1において、深度テンプレートを画像解像度に補間する2D補間ブロック170に重みデータ054を提供する重み付けブロック150によって示される。
スプラッティング動作を実行したならば、画像に適合した深度ボリュームを取得するために、スライス動作が実行され得る。このスライス動作は、図1には明示的に示されていないが、例えばDMA通信を介してメモリにアクセスできるソフトウェアによって構成されたマイクロプロセッサによって実行し得る。スライス動作は、重み付き深度の合計ボリュームの各セルおよび重みの合計ボリュームの対応するセルについて、蓄積された重み付き深度値を蓄積された重みで除算することを含み得る。この除算の結果、各ビンは今や画像に適合された深度値を収容し、こうして全体のボリュームは画像に適合された深度ボリュームを表す。
スライス動作を実行したならば画像内の各ピクセルに対する画像に適合された深度マップの画像に適合された深度値を取得するために、補間動作が実行され得る。この補間動作は、ピクセルの座標に基づく重み付き深度の合計ボリューム内の、ピクセルの蓄積区間を表す前記セルに基づいて、画像に適合された深度ボリューム内の隣接セルを識別すること、および画像に適合された深度ボリュームの隣接セルに補間フィルタを適用することを含んでいてもよく、補間フィルタは、セルの各々について、座標によって示されるそれぞれのセルの蓄積区間に関するピクセルの相対位置に基づいて決定される重みを備える。言い換えると、空間座標と範囲値によって決定されるピクセルの位置は、補間に使用されるビンを決定することができ、一方、ビン内のピクセルの相対位置は、補間の重みを決定することができる。重みは事前に計算される場合がある。特に、重みは、スプラッティング動作で使用されるものと同じ重みであってもよく、および/または重みを格納または計算するために、同じハードウェア回路が使用され得る。
図5は、図4がスプラッティング動作に対して行ったのと同様の様式の補間動作を示している。ここで、重みは、画像に適合された深度ボリュームから出力深度値を補間するために使用される。図5を図4と比較するとわかるように、ビン内の特定の相対位置に同じ重みが使用される。これは、スプラッティングブロック140へのものと同じ重みおよびボリュームインデックスデータ052を、補間ブロック160へ提供する重み付けブロック150によって、図1に示されている。表の右側部分は、入力深度値24および8に重みがどのように適用されるかを示している。例えば、Y位置7の補間では、((5x24+3x8))/8=18をもたらす。
図6は、図4と図5で使用されている2つの重み、すなわち、横軸のライン番号Yに応じて縦軸の「wpy」と「wpy」の値をグラフで示している。重み「wpy」は「現在の」値に適用され、重み「wny」は「次の」値に適用される。図7は図6に対応するが、図5に示す入力深度値24と8の間で得られた補間された出力を追加で示している。入力深度値間の線形フェージングを提供するように重みが計算されていることがわかる。線形フェージングに加えて、高次補間関数、例えば、キュービック補間またはスプライン補間も使用することができる。
一般に、説明されたボリュームのXまたはY次元のビンのサイズは、常に2のべき乗であり得、なぜならこの場合、例えば固定小数点トライリニア補間である補間が、正規化のためにシフト動作を使用し得るからであり、これがハードウェアコストの大幅な削減をもたらすことに留意されたい。これが、画像サイズに応じて、必要な可変な数のビンをもたらすという結果となる。ビンのサイズを変更すると、フィルタのパフォーマンスが影響を受ける場合がある。しかしながら、実験は、これが視覚的なパフォーマンスに大きな影響を与えないことが示している。さらに、固定数のビンの代わりに可変な数のビンを使用しても、ハードウェア設計に大きな影響はない。XまたはY次元のいずれかのビンのサイズはハードウェアパラメータで指定されることができるが、一方で、どの値を選択するかの分析は、例えばマイクロプロセッサのソフトウェアに委ねられる。
一般に、処理サブシステムは、説明された集積回路とは別に、例えば別のタイプのSoCに提供されてもよいことに留意されたい。
データは、処理サブシステムをネットリストおよび/または合成可能なRTLの形で定義するコンピュータ可読媒体で提供され得る。コンピュータ可読媒体、およびそれによりそこに格納されるデータは、一時的または非一時的であり得る。例えば、処理サブシステムは、VerilogまたはVHDLなどのハードウェア記述言語で合成可能なコアとして、または汎用ゲートまたはプロセス固有の標準セルとして実現されたRTC IPブロックの論理関数のブール代数表現を提供する汎用ゲートレベルネットリストとして提供され得る。
「マップ」という用語は、行と列に配置されたデータを指す。さらに、形容詞「ディスパリティ」は、カメラに対する画像の部分の深度を示すものとして理解されるべきである。したがって、深度マップは、深度値だけでなく、例えばディスパリティ値または視差シフト値によっても構成され得る。したがって、基本的に、深度マップは視差マップまたは視差シフトマップを構成し得る。ここで、ディスパリティという用語は、ユーザーの左目または右目で知覚されたときのオブジェクトの位置の違いを指す。視差シフトという用語は、ユーザーに前記ディスパリティを提供するための、2つのビュー間のオブジェクトの変位を指す。ディスパリティと視差シフトは、一般に距離または深度と負の相関がある。上記のすべてのタイプのマップおよび/または値の間で変換するためのデバイスおよび方法は知られている。
図8は、画像から深度マップを推定するための、コンピュータにより実行される方法500を示している。方法500は、「画像データへアクセスすること」というタイトルの動作で、画像の画像データへアクセスし510、「深度データへアクセスすること」というタイトルの動作で、テンプレート深度マップの深度データへアクセスし520、「ジョイントバイラテラルフィルタを適用すること」というタイトルの動作で、ジョイントバイラテラルフィルタの範囲項として画像データを使用して、テンプレート深度マップにジョイントバイラテラルフィルタを適用し530、それにより画像に適合された深度マップを、出力として取得することを含んで示され、ジョイントバイラテラルフィルタを適用することは、「ボリュームを初期化すること」というタイトルの動作で、重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれのデータが空の構造として初期化し540、「スプラッティング動作」というタイトルの動作で、前記のボリュームを満たすためにスプラッティング動作を実行して550、「スライス動作」というタイトルの動作で、画像に適合された深度ボリュームを取得するためにスライス動作を実行し560、「補間動作」というタイトルの動作で、画像内の各ピクセルについて、画像に適合された深度マップの画像に適合された深度値を取得するために、補間動作を実行する570ことを含む。上記の動作は、任意の適切な順序、例えば、連続的、同時に、またはそれらの組み合わせで、適用可能な場合、例えば入出力関係によって必要とされる特定の順序を条件として実行できることに留意されたい。例えば、動作510および520は、並行してまたは連続して実行され得る。
方法500は、プロセッサシステム上、例えば、コンピュータにより実行される方法として、専用ハードウェアとして、または両方の組み合わせとして、コンピュータ上で実行され得る。図9にも示されるように、例えば実行可能コードなどのコンピュータに対する命令は、例えば一連の機械可読物理マーク610の形で、および/または異なる電気的、例えば磁気的、または光学的特性または値を有する一連の要素として、コンピュータ可読媒体600に格納されてもよい。実行可能コードは、一時的または非一時的な様式で記憶され得る。コンピュータ可読媒体の例は、メモリデバイス、光学記憶デバイス、集積回路、サーバ、オンラインソフトウェアなどを含む。図9は、光ディスク600を示す。
上述の実施形態は、本発明を限定するのではなく例示するものであり、当業者は多くの代替実施形態を設計することができることに留意されたい。
請求項では、括弧の間に置かれた参照符号は、請求項を制限するものとして解釈されない。「含む」という動詞とその活用形の使用は、クレームに記載されているもの以外の要素またはステップの存在を排除するものではない。要素に先行する冠詞「1つの(a)」または「1つの(an)」は、複数のそのような要素の存在を排除しない。本発明は、いくつかの別個の要素を含むハードウェアによって、および適切にプログラムされたコンピュータによって実行され得る。いくつかの手段を列挙するデバイスクレームでは、これらの手段のいくつかは、1つのおよびハードウェアの同一のアイテムによって具現化されてもよい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組み合わせが有利に使用できないことを示すものではない。

Claims (15)

  1. 画像から深度マップを推定するように構成され、メモリを備えるかまたはメモリに接続されている、集積回路であって、集積回路は、
    − 画像の画像データにアクセスするように構成された画像データインターフェースと、
    − テンプレート深度マップの深度データにアクセスするように構成された深度データインターフェースであって、テンプレート深度マップは、画像データに適合させるテンプレートを表す、深度データインターフェースと、
    − ジョイントバイラテラルフィルタの範囲項として画像データを使用して、ジョイントバイラテラルフィルタをテンプレート深度マップに適用して、画像に適合された深度マップを、出力として取得するように構成された処理サブシステムと
    を備え、
    処理サブシステムは、
    − 重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれの空のデータ構造として初期化することであって、前記ボリュームの各々は、
    − 画像データの2つの空間次元のダウンサンプリングされたバージョンを表す、2つの空間次元と、
    − 画像データの範囲次元のダウンサンプリングされたバージョンを表す、少なくとも1つの範囲次元とを備え、
    前記ボリュームのセルは、画像の2つの空間次元および画像データの範囲次元に関して定義される画像の座標系でビンを定義する、初期化することと、
    − 前記ボリュームを満たすためにスプラッティング動作を実行することであって、スプラッティング動作は、画像内の各ピクセルに対して、
    − 画像の座標系におけるピクセルの座標に基づいて、座標は、前記ボリュームの各々のビンに関するピクセルの相対位置を示し、
    − 隣接するビンにマッピングするスプラッティング動作のフットプリントを有するピクセルに基づいて、ピクセルがスプラッティング動作において寄与する重み付き深度の合計ボリューム内の、前記隣接するビンを識別することを含み、
    スプラッティング動作における前記寄与は、
    − テンプレート深度マップからピクセルの深度値を取得し、
    − 隣接するビンの各々に対して、
    − 深度値を重み付けするためのスプラッティング重みを取得し、スプラッティング重みは、それぞれのビンに関するピクセルの相対位置に基づいて決定され、
    − スプラッティング重みによって深度値を重み付けし、
    − 重み付き深度の合計ボリュームのそれぞれのビンに重み付き深度値を蓄積し、重みの合計ボリュームの対応するビンにスプラッティング重みを蓄積すること
    を含む、スプラッティング動作を実行することと、
    − 重み付き深度の合計ボリュームの各ビンと、重みの合計ボリュームの対応するビンとについて、蓄積した重み付き深度値を蓄積した重みで除算することによって、画像に適合された深度ボリュームを取得するためにスライス動作を実行することと、
    − 画像内の各ピクセルに対して、画像に適合された深度マップの画像に適合された深度値を取得するために補間動作を実行することであって、補間動作は、
    − 画像の座標系内のピクセルの座標に基づき、スプラッティング動作中に重み付き深度の合計ボリュームの対応するビンに寄与するピクセルに基づいて、画像に適合された深度ボリューム内の隣接するビンを識別し、
    − 補間フィルタを画像に適合された深度ボリュームの隣接ビンに適用することを含み、補間フィルタは、隣接するビンの各々について、それぞれのビンに関するピクセルの相対位置に基づいて決定される補間重みを備える、補間動作を実行することと
    によってジョイントバイラテラルフィルタを実行するように構成される、
    集積回路。
  2. 処理サブシステムが、特定用途向けハードウェア回路と、ソフトウェアによって構成可能なマイクロプロセッサとを備え、
    − 特定用途向けハードウェア回路が、スプラッティング動作と補間動作を実行するように構成され、
    − マイクロプロセッサが、集積回路の動作中にスライス動作を実行するためにソフトウェアによって構成される、請求項1に記載の集積回路。
  3. 特定用途向けハードウェア回路が、スプラッティング動作で使用されるスプラッティング重みおよび/または補間動作で使用される補間重みを格納するためのフィルタテーブルを備える、請求項2に記載の集積回路。
  4. フィルタテーブルは、スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが、それぞれの動作を実行する前に、ロードされる、請求項3に記載の集積回路。
  5. スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが同じである、請求項1から3のいずれか一項に記載の集積回路。
  6. スプラッティング動作で使用されるスプラッティング重みおよび補間動作で使用される補間重みが、画像の座標系に関する線形補間を表す、請求項1から5のいずれか一項に記載の集積回路。
  7. マイクロプロセッサが、集積回路の動作中に、スライス動作を実行する前に、重み付き深度の合計ボリュームに、および重みの合計ボリュームに時間フィルタリングを適用するようにソフトウェアによって構成される、請求項2に従属する、請求項2から6のいずれか一項に記載の集積回路。
  8. 時間フィルタリングが、一次、または、より高次の無限インパルス応答フィルタである、請求項7に記載の集積回路。
  9. 処理サブシステムが、スプラッティング動作を実行した後、重み付き深度の合計ボリュームをガウスカーネルで畳み込むように構成される、請求項1から8のいずれか一項に記載の集積回路。
  10. 集積回路が、フィールドプログラマブルゲートアレイであるか、またはフィールドプログラマブルゲートアレイの一部である、請求項1から9のいずれか一項に記載の集積回路。
  11. 集積回路が、システムオンチップであるか、またはシステムオンチップの一部である、請求項1から9のいずれか一項に記載の集積回路。
  12. 請求項1から11のいずれか一項に記載の集積回路を備える、デバイス。
  13. ディスプレイデバイスまたはセットトップボックスである、請求項12に記載のデバイス。
  14. 画像から深度マップを推定するための、コンピュータにより実行される方法であって、
    − 画像の画像データへアクセスするステップと、
    − テンプレート深度マップの深度データにアクセスするステップであって、テンプレート深度マップは、画像データに適合させるテンプレートを表す、アクセスするステップと、
    − 画像データをジョイントバイラテラルフィルタの範囲項として使用して、テンプレート深度マップにジョイントバイラテラルフィルタを適用して、画像に適合された深度マップを、出力として取得するステップとを含み、
    ジョイントバイラテラルフィルタを適用するステップは、
    − 重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれの空のデータ構造として初期化するステップであって、前記ボリュームの各々は、
    − 画像データの2つの空間次元のダウンサンプリングされたバージョンを表す、2つの空間次元と、
    − 画像データの範囲次元のダウンサンプリングされたバージョンを表す、少なくとも1つの範囲次元とを備え、
    前記ボリュームのセルは、画像の2つの空間次元および画像データの範囲次元に関して定義される画像の座標系でビンを定義する、初期化するステップと、
    − 前記ボリュームを満たすためにスプラッティング動作を実行するステップであって、スプラッティング動作は、画像内の各ピクセルに対して、
    − 画像の座標系におけるピクセルの座標に基づいて、座標は、前記ボリュームの各々のビンに関するピクセルの相対位置を示し、
    − 隣接するビンにマッピングするスプラッティング動作のフットプリントを有するピクセルに基づいて、ピクセルがスプラッティング動作において寄与する重み付き深度の合計ボリューム内の、前記隣接するビンを識別するステップを含み、
    スプラッティング動作における前記寄与は、
    − テンプレート深度マップからピクセルの深度値を取得するステップと、
    − 隣接するビンの各々に対して、
    − 深度値を重み付けするためのスプラッティング重みを取得し、スプラッティング重みは、それぞれのビンに関するピクセルの相対位置に基づいて決定され、
    − スプラッティング重みによって深度値を重み付けし、
    − 重み付き深度の合計ボリュームのそれぞれのビンに重み付き深度値を蓄積し、重みの合計ボリュームの対応するビンにスプラッティング重みを蓄積するステップを含む、スプラッティング動作を実行するステップと、
    − 重み付き深度の合計ボリュームの各ビンと、重みの合計ボリュームの対応するビンとについて、蓄積した重み付き深度値を蓄積した重みで除算することによって、画像に適合された深度ボリュームを取得するために、スライス動作を実行するステップと、
    − 画像内の各ピクセルに対して、画像に適合された深度マップの画像に適合された深度値を取得するために、補間動作を実行するステップであって、補間動作は、
    − 画像の座標系内のピクセルの座標に基づき、スプラッティング動作中に重み付き深度の合計ボリュームの対応するビンに寄与するピクセルに基づいて、画像に適合された深度ボリューム内の隣接するビンを識別し、
    − 補間フィルタを画像に適合された深度ボリュームの隣接ビンに適用するステップを含み、補間フィルタは、隣接するビンの各々について、それぞれのビンに関するピクセルの相対位置に基づいて決定される補間重みを備える、補間動作を実行するステップと
    を含む、方法。
  15. プロセッサシステムに、請求項14に記載の方法を実行させるように構成された命令を表す一時的または非一時的データを含む、コンピュータ可読媒体。
JP2019555620A 2017-04-13 2018-04-04 ジョイントバイラテラルフィルタの効率的な実現 Active JP7094299B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17166455.0 2017-04-13
EP17166455.0A EP3389265A1 (en) 2017-04-13 2017-04-13 Efficient implementation of joint bilateral filter
PCT/EP2018/058604 WO2018189010A1 (en) 2017-04-13 2018-04-04 Efficient implementation of joint bilateral filter

Publications (2)

Publication Number Publication Date
JP2020518892A true JP2020518892A (ja) 2020-06-25
JP7094299B2 JP7094299B2 (ja) 2022-07-01

Family

ID=58632767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019555620A Active JP7094299B2 (ja) 2017-04-13 2018-04-04 ジョイントバイラテラルフィルタの効率的な実現

Country Status (12)

Country Link
US (1) US11216962B2 (ja)
EP (2) EP3389265A1 (ja)
JP (1) JP7094299B2 (ja)
KR (1) KR102464876B1 (ja)
CN (1) CN110506418B (ja)
BR (1) BR112019019379A2 (ja)
CA (1) CA3056371C (ja)
ES (1) ES2928563T3 (ja)
IL (1) IL269868B (ja)
RU (1) RU2767512C2 (ja)
TW (1) TWI762617B (ja)
WO (1) WO2018189010A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11501413B2 (en) * 2020-11-17 2022-11-15 Adobe Inc. Kernel reshaping-powered splatting-based efficient image space lens blur

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110210969A1 (en) * 2008-11-04 2011-09-01 Koninklijke Philips Electronics N.V. Method and device for generating a depth map

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2317336A1 (en) * 2000-09-06 2002-03-06 David Cowperthwaite Occlusion resolution operators for three-dimensional detail-in-context
RU2215326C2 (ru) * 2001-06-29 2003-10-27 Самсунг Электроникс Ко., Лтд. Иерархическое основанное на изображениях представление неподвижного и анимированного трехмерного объекта, способ и устройство для использования этого представления для визуализации объекта
KR100574974B1 (ko) * 2004-02-26 2006-05-02 삼성전자주식회사 암호화된 방송 데이터를 위한 제한수신기능과복제방지기능을 구비하는 장치 및 방법
KR20080114324A (ko) * 2007-06-27 2008-12-31 엘지이노텍 주식회사 카메라 모듈, 이의 검사 장치 및 검사 방법
US8731320B2 (en) * 2009-01-20 2014-05-20 Andre Leitao Image processing using a bilateral grid
WO2010134890A1 (en) * 2009-05-21 2010-11-25 Esa Group Pte Ltd System and method for testing and managing camera modules
US8988461B1 (en) * 2011-01-18 2015-03-24 Disney Enterprises, Inc. 3D drawing and painting system with a 3D scalar field
CN102055996B (zh) 2011-02-23 2013-01-23 南京航空航天大学 基于空间逐层扫描的真三维立体显示系统及其显示方法
US8754829B2 (en) * 2012-08-04 2014-06-17 Paul Lapstun Scanning light field camera and display
TW201432622A (zh) 2012-11-07 2014-08-16 Koninkl Philips Nv 產生一關於一影像之深度圖
CN103927717B (zh) 2014-03-28 2017-03-15 上海交通大学 基于改进型双边滤波的深度图像恢复方法
US8988317B1 (en) * 2014-06-12 2015-03-24 Lytro, Inc. Depth determination for light field images
US9838679B2 (en) * 2015-07-28 2017-12-05 Viavi Solutions Inc. Distance to fault measurements in cable TV networks
CN106210713A (zh) * 2016-08-30 2016-12-07 昆山软龙格自动化技术有限公司 一种手机摄像头模组多模组同时测试装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110210969A1 (en) * 2008-11-04 2011-09-01 Koninklijke Philips Electronics N.V. Method and device for generating a depth map

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SYLVAIN PARIS: "A Fast Approximation of the Bilateral Filter Using a Signal Processing Approach", COMPUTER VISION ECCV 2006, PART IV, LNCS 3954, JPN6022005977, 13 May 2006 (2006-05-13), AT, pages 568 - 580, XP019036567, ISSN: 0004706132, DOI: 10.1007/11744085_44 *
高田 洋佑: "座標と画素値の積空間での係数分解によるバイラテラルフィルタの高速化", 映像情報メディア学会技術報告 VOL.32 NO.54, vol. ME2008-188, BCT2008-154, AIT2008-123, JPN6022005978, 28 November 2008 (2008-11-28), JP, pages 77 - 82, ISSN: 0004706133 *

Also Published As

Publication number Publication date
TW201837863A (zh) 2018-10-16
US11216962B2 (en) 2022-01-04
KR102464876B1 (ko) 2022-11-07
CN110506418B (zh) 2021-05-25
RU2019136258A3 (ja) 2021-05-13
IL269868B (en) 2022-03-01
TWI762617B (zh) 2022-05-01
RU2767512C2 (ru) 2022-03-17
BR112019019379A2 (pt) 2020-05-05
ES2928563T3 (es) 2022-11-21
RU2019136258A (ru) 2021-05-13
EP3610645A1 (en) 2020-02-19
KR20190135527A (ko) 2019-12-06
CN110506418A (zh) 2019-11-26
EP3389265A1 (en) 2018-10-17
CA3056371A1 (en) 2018-10-18
WO2018189010A1 (en) 2018-10-18
EP3610645B1 (en) 2022-07-13
JP7094299B2 (ja) 2022-07-01
CA3056371C (en) 2024-04-02
US20210192760A1 (en) 2021-06-24

Similar Documents

Publication Publication Date Title
EP2774124B1 (en) Depth-map generation for an input image using an example approximate depth-map associated with an example similar image
JP2015522198A (ja) 画像に対する深度マップの生成
CN110392904B (zh) 使用阿尔法混合的动态图像颜色重新映射的方法
RU2718423C2 (ru) Способ определения карты глубин для изображения и устройство для его осуществления
Horng et al. VLSI architecture for real-time HD1080p view synthesis engine
Tech et al. Evaluation of view synthesis algorithms for mobile 3DTV
WO2013124312A1 (en) Object-aligned filtering method and apparatus
JP7094299B2 (ja) ジョイントバイラテラルフィルタの効率的な実現
WO2012040162A1 (en) Color correction for digital images
CA3018439C (en) Dual mode depth estimator
EP2680224A1 (en) Method and device for determining a depth image
EP2677496B1 (en) Method and device for determining a depth image
US20100103164A1 (en) Apparatus and method of processing three dimensional graphic data using texture factor
EP1926052B1 (en) Method, medium, and system rendering 3 dimensional graphics data considering fog effect
JP2023551896A (ja) 拡張次元ライトフィールド画像の処理
Nguyen et al. Fast selective interpolation for 3D depth images
WO2023235273A1 (en) Layered view synthesis system and method
EP4162441A1 (en) Multi-channel extended depth-of-field method for automated digital cytology
Zraqou et al. Enhanced 3D perception using Super-resolution and saturation control techniques for solar images

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191211

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220512

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220621

R150 Certificate of patent or registration of utility model

Ref document number: 7094299

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150