(57)【要約】  計算の複雑さを低減したジョイントバイラテラルフィルタを使用して、画像から深度マップを推定するための集積回路とコンピュータ実行方法が提供される。その目的のために、テンプレート深度マップの深度データと同様に、画像の画像データにアクセスする。次に、画像データをジョイントバイラテラルフィルタの範囲項として使用してテンプレート深度マップにジョイントバイラテラルフィルタを適用し、画像に適合された深度マップを、出力として取得する。ジョイントバイラテラルフィルタの適用は、重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれの空のデータ構造として初期化し、スプラッティング動作を実行して前記ボリュームを埋め、スライス動作を実行して画像に適合された深度ボリュームを取得し、補間動作を実行して画像内の各ピクセルについて画像に適合された深度マップの画像に適合された深度値を取得することを含む。ジョイントバイラテラルフィルタを使用して画像から深度マップを推定することと知られている方法と比較して、計算の複雑さが低減される。
2020518892.tif 000002
【特許請求の範囲】
【請求項１】
画像から深度マップを推定するように構成され、メモリを備えるかまたはメモリに接続されている、集積回路であって、集積回路は、
−  画像の画像データにアクセスするように構成された画像データインターフェースと、
−  テンプレート深度マップの深度データにアクセスするように構成された深度データインターフェースであって、テンプレート深度マップは、画像データに適合させるテンプレートを表す、深度データインターフェースと、
−  ジョイントバイラテラルフィルタの範囲項として画像データを使用して、ジョイントバイラテラルフィルタをテンプレート深度マップに適用して、画像に適合された深度マップを、出力として取得するように構成された処理サブシステムと
を備え、
処理サブシステムは、
−  重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれの空のデータ構造として初期化することであって、前記ボリュームの各々は、
−  画像データの２つの空間次元のダウンサンプリングされたバージョンを表す、２つの空間次元と、
−  画像データの範囲次元のダウンサンプリングされたバージョンを表す、少なくとも１つの範囲次元とを備え、
前記ボリュームのセルは、画像の２つの空間次元および画像データの範囲次元に関して定義される画像の座標系でビンを定義する、初期化することと、
−  前記ボリュームを満たすためにスプラッティング動作を実行することであって、スプラッティング動作は、画像内の各ピクセルに対して、
−  画像の座標系におけるピクセルの座標に基づいて、座標は、前記ボリュームの各々のビンに関するピクセルの相対位置を示し、
−  隣接するビンにマッピングするスプラッティング動作のフットプリントを有するピクセルに基づいて、ピクセルがスプラッティング動作において寄与する重み付き深度の合計ボリューム内の、前記隣接するビンを識別することを含み、
スプラッティング動作における前記寄与は、
−  テンプレート深度マップからピクセルの深度値を取得し、
−  隣接するビンの各々に対して、
−  深度値を重み付けするためのスプラッティング重みを取得し、スプラッティング重みは、それぞれのビンに関するピクセルの相対位置に基づいて決定され、
−  スプラッティング重みによって深度値を重み付けし、
−  重み付き深度の合計ボリュームのそれぞれのビンに重み付き深度値を蓄積し、重みの合計ボリュームの対応するビンにスプラッティング重みを蓄積すること
を含む、スプラッティング動作を実行することと、
−  重み付き深度の合計ボリュームの各ビンと、重みの合計ボリュームの対応するビンとについて、蓄積した重み付き深度値を蓄積した重みで除算することによって、画像に適合された深度ボリュームを取得するためにスライス動作を実行することと、
−  画像内の各ピクセルに対して、画像に適合された深度マップの画像に適合された深度値を取得するために補間動作を実行することであって、補間動作は、
−  画像の座標系内のピクセルの座標に基づき、スプラッティング動作中に重み付き深度の合計ボリュームの対応するビンに寄与するピクセルに基づいて、画像に適合された深度ボリューム内の隣接するビンを識別し、
−  補間フィルタを画像に適合された深度ボリュームの隣接ビンに適用することを含み、補間フィルタは、隣接するビンの各々について、それぞれのビンに関するピクセルの相対位置に基づいて決定される補間重みを備える、補間動作を実行することと
によってジョイントバイラテラルフィルタを実行するように構成される、
集積回路。
【請求項２】
処理サブシステムが、特定用途向けハードウェア回路と、ソフトウェアによって構成可能なマイクロプロセッサとを備え、
−  特定用途向けハードウェア回路が、スプラッティング動作と補間動作を実行するように構成され、
−  マイクロプロセッサが、集積回路の動作中にスライス動作を実行するためにソフトウェアによって構成される、請求項１に記載の集積回路。
【請求項３】
特定用途向けハードウェア回路が、スプラッティング動作で使用されるスプラッティング重みおよび／または補間動作で使用される補間重みを格納するためのフィルタテーブルを備える、請求項２に記載の集積回路。
【請求項４】
フィルタテーブルは、スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが、それぞれの動作を実行する前に、ロードされる、請求項３に記載の集積回路。
【請求項５】
スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが同じである、請求項１から３のいずれか一項に記載の集積回路。
【請求項６】
スプラッティング動作で使用されるスプラッティング重みおよび補間動作で使用される補間重みが、画像の座標系に関する線形補間を表す、請求項１から５のいずれか一項に記載の集積回路。
【請求項７】
マイクロプロセッサが、集積回路の動作中に、スライス動作を実行する前に、重み付き深度の合計ボリュームに、および重みの合計ボリュームに時間フィルタリングを適用するようにソフトウェアによって構成される、請求項２に従属する、請求項２から６のいずれか一項に記載の集積回路。
【請求項８】
時間フィルタリングが、一次、または、より高次の無限インパルス応答フィルタである、請求項７に記載の集積回路。
【請求項９】
処理サブシステムが、スプラッティング動作を実行した後、重み付き深度の合計ボリュームをガウスカーネルで畳み込むように構成される、請求項１から８のいずれか一項に記載の集積回路。
【請求項１０】
集積回路が、フィールドプログラマブルゲートアレイであるか、またはフィールドプログラマブルゲートアレイの一部である、請求項１から９のいずれか一項に記載の集積回路。
【請求項１１】
集積回路が、システムオンチップであるか、またはシステムオンチップの一部である、請求項１から９のいずれか一項に記載の集積回路。
【請求項１２】
請求項１から１１のいずれか一項に記載の集積回路を備える、デバイス。
【請求項１３】
ディスプレイデバイスまたはセットトップボックスである、請求項１２に記載のデバイス。
【請求項１４】
画像から深度マップを推定するための、コンピュータにより実行される方法であって、
−  画像の画像データへアクセスするステップと、
−  テンプレート深度マップの深度データにアクセスするステップであって、テンプレート深度マップは、画像データに適合させるテンプレートを表す、アクセスするステップと、
−  画像データをジョイントバイラテラルフィルタの範囲項として使用して、テンプレート深度マップにジョイントバイラテラルフィルタを適用して、画像に適合された深度マップを、出力として取得するステップとを含み、
ジョイントバイラテラルフィルタを適用するステップは、
−  重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれの空のデータ構造として初期化するステップであって、前記ボリュームの各々は、
−  画像データの２つの空間次元のダウンサンプリングされたバージョンを表す、２つの空間次元と、
−  画像データの範囲次元のダウンサンプリングされたバージョンを表す、少なくとも１つの範囲次元とを備え、
前記ボリュームのセルは、画像の２つの空間次元および画像データの範囲次元に関して定義される画像の座標系でビンを定義する、初期化するステップと、
−  前記ボリュームを満たすためにスプラッティング動作を実行するステップであって、スプラッティング動作は、画像内の各ピクセルに対して、
−  画像の座標系におけるピクセルの座標に基づいて、座標は、前記ボリュームの各々のビンに関するピクセルの相対位置を示し、
−  隣接するビンにマッピングするスプラッティング動作のフットプリントを有するピクセルに基づいて、ピクセルがスプラッティング動作において寄与する重み付き深度の合計ボリューム内の、前記隣接するビンを識別するステップを含み、
スプラッティング動作における前記寄与は、
−  テンプレート深度マップからピクセルの深度値を取得するステップと、
−  隣接するビンの各々に対して、
−  深度値を重み付けするためのスプラッティング重みを取得し、スプラッティング重みは、それぞれのビンに関するピクセルの相対位置に基づいて決定され、
−  スプラッティング重みによって深度値を重み付けし、
−  重み付き深度の合計ボリュームのそれぞれのビンに重み付き深度値を蓄積し、重みの合計ボリュームの対応するビンにスプラッティング重みを蓄積するステップを含む、スプラッティング動作を実行するステップと、
−  重み付き深度の合計ボリュームの各ビンと、重みの合計ボリュームの対応するビンとについて、蓄積した重み付き深度値を蓄積した重みで除算することによって、画像に適合された深度ボリュームを取得するために、スライス動作を実行するステップと、
−  画像内の各ピクセルに対して、画像に適合された深度マップの画像に適合された深度値を取得するために、補間動作を実行するステップであって、補間動作は、
−  画像の座標系内のピクセルの座標に基づき、スプラッティング動作中に重み付き深度の合計ボリュームの対応するビンに寄与するピクセルに基づいて、画像に適合された深度ボリューム内の隣接するビンを識別し、
−  補間フィルタを画像に適合された深度ボリュームの隣接ビンに適用するステップを含み、補間フィルタは、隣接するビンの各々について、それぞれのビンに関するピクセルの相対位置に基づいて決定される補間重みを備える、補間動作を実行するステップと
を含む、方法。
【請求項１５】
プロセッサシステムに、請求項１４に記載の方法を実行させるように構成された命令を表す一時的または非一時的データを含む、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョイントバイラテラルフィルタ（ｊｏｉｎｔ  ｂｉｌａｔｅｒａｌ  ｆｉｌｔｅｒ）を使用して画像から深度マップを推定するように構成された集積回路に関する。本発明はさらに、ジョイントバイラテラルフィルタを使用して画像から深度マップを推定する方法、およびプロセッサシステムに方法を実行させるように構成された命令を表す一時的または非一時的データを含むコンピュータ可読媒体に関する。
【背景技術】
【０００２】
テレビ、タブレット、およびスマートフォンなどのディスプレイデバイスは、３Ｄディスプレイを備え、そのようなデバイスでコンテンツを表示するときにユーザーに深度の認識を提供することができる。その目的のために、そのような３Ｄディスプレイは、それ自体で、またはユーザーにより着用されるメガネと一緒に、立体視に基づいてユーザーに深度の認識を提供するために、ユーザーに各目で異なる画像を提供する。
【０００３】
３Ｄディスプレイには、深度情報を収容するコンテンツが通常必要である。深度情報は、３Ｄコンテンツ内で暗黙的に提供され得る。例えば、簡潔に言えば「ステレオ」コンテンツとも呼ばれる立体視的コンテンツの場合、深度情報は左画像と右画像の違いによって提供される。深度情報は、３Ｄコンテンツ内で明示的に提供される場合もある。例えば、いわゆる画像＋深度フォーマットでエンコードされた３Ｄコンテンツ内では、深度情報は、深度値、ディスパリティ値、および／または視差（ｐａｒａｌｌａｃｔｉｃ）シフト値を含み得る深度マップによって提供され、前記値の各々は、画像内のオブジェクトがカメラに向かって持っている距離を表す。
【０００４】
現在利用可能な大量のコンテンツ、例えば映画、テレビ番組、画像などは２Ｄコンテンツである。３Ｄディスプレイで３Ｄレンダリングを可能にするには、このようなコンテンツを３Ｄに変換する必要がある。３Ｄへの変換は、２Ｄ画像、例えば２Ｄビデオの各２Ｄ画像の深度マップを生成することを含み得る。一般に、このプロセスは「２Ｄから３Ｄへの変換」と呼ばれ、深度マップを手動で作成することを伴い得る。例えば、ワークステーションで走っているソフトウェアツールは、デジタルペンを使用して深度マップを描画することにより、プロのユーザーに２Ｄ画像に深度を追加する可能性を提供し得る。深度マップは自動的に生成される場合もある。例えば、デバイスは、２Ｄ画像内のオブジェクトがカメラに向かって持っている距離を推定し、それに基づいて、２Ｄ画像の深度マップを生成し得る。
【０００５】
深度マップの自動生成の例は、単眼情報を使用して画像の深度マップを生成する方法を説明するＵＳ８，４４７，１４１から知られている。この方法は、グローバル深度プロファイルを提供する画像の第１の深度マップを生成することを含み、これは、スラントなどの単純な汎用テンプレートであってもよい。さらに、第１の深度マップの深度値と画像の色および／または輝度値に基づく第２の深度マップが生成される。第２の深度マップの生成は、画像からの範囲情報を使用して第１の深度マップにジョイントバイラテラルフィルタを適用することを伴い得る。その結果、オブジェクトはグローバル深度プロファイルからより明確になると言われている。
【０００６】
事実上、ＵＳ８，４４７，１４１は、ジョイントバイラテラルフィルタを使用して、深度マップによって提供される汎用テンプレートを画像の実際のコンテンツに適合させる。
【０００７】
しかしながら、ジョイントバイラテラルフィルタの実現は計算的に複雑である。Ｐａｒｉｓ  ｅｔ  ａｌ．，  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ８１．１，  ２００９年，  ２４−５２頁による公開「Ａ  ｆａｓｔ  ａｐｐｒｏｘｉｍａｔｉｏｎ  ｏｆ  ｔｈｅ  ｂｉｌａｔｅｒａｌ  ｆｉｌｔｅｒ  ｕｓｉｎｇ  ａ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｉｎｇ  ａｐｐｒｏａｃｈ」は、計算的に複雑さが少ないと言われているジョイントバイラテラルフィルタの近似を示している。不都合なことに、説明されたバイラテラルフィルタの近似は依然として比較的計算的に複雑であり、したがって、消費者デバイス、例えば集積回路での費用効率の高い実現にはあまり適していない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許第８，４４７，１４１号明細書
【非特許文献】
【０００９】
【非特許文献１】Ｐａｒｉｓ  ｅｔ  ａｌ．，「Ａ  ｆａｓｔ  ａｐｐｒｏｘｉｍａｔｉｏｎ  ｏｆ  ｔｈｅ  ｂｉｌａｔｅｒａｌ  ｆｉｌｔｅｒ  ｕｓｉｎｇ  ａ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｉｎｇ  ａｐｐｒｏａｃｈ」  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ８１．１，  ２００９年，  ２４−５２頁
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の目的の１つは、ジョイントバイラテラルフィルタを使用して画像から深度マップを推定するように構成された、Ｐａｒｉｓ  ｅｔ  ａｌ．により記載された近似よりも計算的に複雑ではない、集積回路を得ることである。
【課題を解決するための手段】
【００１１】
本発明の第１の態様は、画像から深度マップを推定するように構成され、メモリを備えるかまたはメモリに接続されている、集積回路を提供する。集積回路は：
−  画像の画像データにアクセスするように構成された画像データインターフェースと、
−  テンプレート深度マップの深度データにアクセスするように構成された深度データインターフェースであって、テンプレート深度マップは、画像データに適合させるテンプレートを表す、深度データインターフェースと；
−  ジョイントバイラテラルフィルタの範囲項として画像データを使用して、ジョイントバイラテラルフィルタをテンプレート深度マップに適用して、画像に適合された深度マップを、出力として取得するように構成された処理サブシステムと
を備え、
処理サブシステムは：
−  重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれの空のデータ構造として初期化することであって、前記ボリュームの各々は：
−  画像データの２つの空間次元のダウンサンプリングされたバージョンを表す、２つの空間次元と、
−  画像データの範囲次元のダウンサンプリングされたバージョンを表す、少なくとも１つの範囲次元とを備え；
前記ボリュームのセルは、画像の２つの空間次元および画像データの範囲次元に関して定義される画像の座標系でビンを定義する、初期化することと；
−  前記ボリュームを満たすためにスプラッティング動作を実行することであって、スプラッティング動作は、画像内の各ピクセルに対して：
−  画像の座標系におけるピクセルの座標に基づいて、座標は、前記ボリュームの各々のビンに関するピクセルの相対位置を示し、
−  隣接するビンにマッピングするスプラッティング動作のフットプリントを有するピクセルに基づいて、ピクセルがスプラッティング動作において寄与する重み付き深度の合計ボリューム内の、前記隣接するビンを識別することを含み；
スプラッティング動作における前記寄与は：
−  テンプレート深度マップからピクセルの深度値を取得し；
−  隣接するビンの各々に対して：
−  深度値を重み付けするためのスプラッティング重みを取得することであって、スプラッティング重みは、それぞれのビンに関するピクセルの相対位置に基づいて決定される、取得することと、
−  スプラッティング重みによって深度値を重み付けすることと、
−  重み付き深度の合計ボリュームのそれぞれのビンに重み付き深度値を蓄積し、重みの合計ボリュームの対応するビンにスプラッティング重みを蓄積することとを含む、スプラッティング動作を実行することと；
−  重み付き深度の合計ボリュームの各ビンと、重みの合計ボリュームの対応するビンとについて、蓄積した重み付き深度値を蓄積した重みで除算することによって、画像に適合された深度ボリュームを取得するためにスライス動作を実行することと、
−  画像内の各ピクセルの画像に適合された深度マップの画像に適合された深度値を取得するために補間動作を実行することであって、補間動作は：
−  画像の座標系内のピクセルの座標に基づき、スプラッティング動作中に重み付き深度の合計ボリュームの対応するビンに寄与するピクセルに基づいて、画像に適合された深度ボリューム内の隣接するビンを識別し、
−  補間フィルタを画像に適合された深度ボリュームの隣接ビンに適用することを含み、補間フィルタは、隣接するビンの各々について、それぞれのビンに対するピクセルの相対位置に基づいて決定される補間重みを備える、補間動作を実行することと
によってジョイントバイラテラルフィルタを実行するように構成される。
【００１２】
本質的に、集積回路は、より粗い解像度でジョイントバイラテラルフィルタを実現するが、Ｐａｒｉｓ  ｅｔ  ａｌ．とは異なる様式である。有利な違いの１つは、Ｐａｒｉｓ  ｅｔ  ａｌ．は最初に補間を実行し、次にスライス動作を実行し、後者は除算を伴う。したがって、Ｐａｒｉｓ  ｅｔ  ａｌ．における除算は、フル解像度に補間して戻されたデータに対して実行される。請求されている集積回路は、ダウンサンプリングされたボリュームに対して、そうであるから、大幅に低減された解像度で、スライス動作を実行する。例えば、１８ｘ１２ｘ１８（高さｘ幅ｘ範囲）のボリュームが使用された場合は、３，８８８の除算動作のみが必要であり、これは、例えば４８０ｘ２７０の画像（１２９，６００の除算動作）で除算を実行するために必要な数よりもはるかに少ない。ダウンサンプリングされたボリュームにスライス動作を実行することによる品質の低下は非常に限られることがわかっている。しかしながら、除算動作は実現が計算的に複雑であるため、ジョイントバイラテラルフィルタを実行する計算負荷は大幅に低減される。これが、スプライシング動作をソフトウェアで実行することを可能にし、その実現に関する柔軟性をさらにもたらす。
【００１３】
入力として使用される深度マップはテンプレート深度マップであり、それにより、スラントなどの所定の汎用深度プロファイル、または異なる汎用深度プロファイルのリストから、画像のコンテンツに最もよく一致するとして選択される汎用深度プロファイルに対応することに留意されたい。しかしながら、一般に、深度マップは、画像にさらに適合されることから利益を得る任意の深度マップであり得る。
【００１４】
さらに、ボリュームは、例えば、画像の２空間次元のダウンサンプリングされたバージョンと、例えば輝度成分などの画像の成分の１つの範囲次元のダウンサンプリングされたバージョンによって構成される３次元ボリュームであり得ることに留意されたい。あるいは、ボリュームは、画像の２つ以上の成分、例えばＹＵＶ画像の輝度および１つ以上のクロミナンス成分、またはＲＧＢ画像の個々の色成分などに対応し得る２つ以上の範囲次元を備え得る。
【００１５】
任意選択により、処理サブシステムが、特定用途向けハードウェア回路と、ソフトウェアによって構成可能なマイクロプロセッサとを備え：
−  特定用途向けハードウェア回路が、スプラッティング動作と補間動作を実行するように構成され、
−  マイクロプロセッサが、集積回路の動作中にスライス動作を実行するようにソフトウェアによって構成される。
【００１６】
本発明のこの態様は、スプラッティング動作および補間動作の両方が依然として比較的計算的に複雑であるが、スライス動作は、ダウンサンプリングされたボリュームのみを動作させることにより、Ｐａｒｉｓ  ｅｔ  ａｌ．と比較して複雑さが著しく低減されているという洞察に基づいている。そのため、スライス動作はソフトウェアで実行され得、柔軟性をもたらし、一方、スプラッティング動作と補間動作は、ソフトウェアに対するハードウェア実行の一般的により高い効率を考慮して、ハードウェアで実行され得る。
【００１７】
任意選択により、特定用途向けハードウェア回路が、スプラッティング動作で使用されるスプラッティング重みおよび／または補間動作で使用される補間重みを格納するためのフィルタテーブルを備える。スプラッティング動作および補間動作がハードウェア動作である場合、前記重みは、読み取り専用メモリまたはランダムアクセスメモリであり得るハードウェア回路のフィルタテーブルに記憶され得る。これが、それぞれの動作のハードウェアによって、前記重みが簡単にアクセスされることを可能にする。
【００１８】
任意選択により、フィルタテーブルは、スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが、それぞれの動作を実行する前に、ロードされる。補間動作とは異なる重みがスプラッティング動作に使用される場合、これらの重みは、例えばマイクロプロセッサによってそれぞれの動作が実行される前にフィルタテーブルにロードされ得る。このようにして、フィルタテーブルのハードウェアは再利用され、スプラッティング動作のハードウェアと補間動作のハードウェアの両方に個別に実現されない。スプラッティング動作と補間動作の間のフィルタテーブルのハードウェアの再利用に加えて、またはそれに代えて、一般に、スプラッティング動作と補間動作との間ビン内のサンプルの相対位置を決定するためのハードウェアの再利用もあり得ることに留意されたい。
【００１９】
任意選択により、スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが同じである。本発明のこの態様は、補間動作を実行する場合と同じ重みがスプラッティング動作を実行するために使用され得るという洞察に基づいており、なぜなら両方とも本質的に同様の動作であるためであり、これらはまた、現コンテキストでは、一方では画像、他方では２つの空間次元と画像の範囲次元に関してダウンサンプリングされた次元を有する多次元ボリュームでも動作する。同じ重みを使用することにより、両方の動作の実行がかなり効率的になる。
【００２０】
任意選択により、スプラッティング動作で使用されるスプラッティング重みおよび補間動作で使用される補間重みが、画像の座標系に関する線形補間を表す。したがって、重みは、スプラッティング動作とボリュームの次元の各々に沿った補間動作との、それぞれのボリュームのデータに線形補間が適用されるように選択される。例えば、３次元ボリュームの場合、トライリニア補間が使用されることができ、一方、例えば２つの範囲次元を有する４次元ボリュームの場合、クワドリニア補間が使用されることができる。線形補間は、スパッティング動作と補間動作に適していることがわかっている。代わりに、キュービック補間を含むがこれに限定されない、より高次の補間が各次元で使用されてもよい。
【００２１】
任意選択により、マイクロプロセッサが、集積回路の動作中に、スライス動作を実行する前に、重み付き深度の合計ボリュームに、および重みの合計ボリュームに時間フィルタリングを適用するようにソフトウェアによって構成される。時間的安定性を確保するために、時間フィルタリングが深度マップにしばしば適用される。そのような時間フィルタリングを深度マップに適用する代わりに、またはそれに加えて、深度マップを生成するために使用されるボリューム自体を時間フィルタリングすることができる。これは、画像と比較して比較的小さなサイズのボリュームに実行するのに計算的に効率的でありながら、より時間的に安定した深度マップをもたらすことがわかっている。例えば、１８ｘ１２ｘ１８の典型的なボリュームは、フィルタリングされる３，８８８個のデータ値を収容するが、一方、４８０ｘ２７０の画像は、フィルタリングされる１２９，６００個のデータ値を収容する。ボリュームに特別に適用されるフィルタリングにより、ソフトウェアの実現が可能である。有利には、いわゆるショットカットの場合に、無限インパルス応答（ＩＩＲ）フィルタの重み付き深度の合計ボリュームへの適用が、例えば専用のショットカット検出器を伴う専用のショットカット処理を必要とせずに、結果として得られる深度マップの時間的安定性を向上させることがわかった。時間フィルタリングは、例えば、一次、または、より高次の無限インパルス応答フィルタであり、ボリュームデータに対する他の（非線形）動作の一部として実現され得る。
【００２２】
任意選択により、マイクロプロセッサが、集積回路の動作中に、時間フィルタリングを画像に適合された深度ボリュームに適用するようにソフトウェアによって構成される。そのような時間フィルタリングは、重み付き深度の合計ボリュームまたは重みの合計ボリュームのフィルタリングに関して説明した実際の画像のフィルタリングと比較して、計算の複雑さにおける比較に値する低減を提供する。時間フィルタリングは、重み付き深度の合計ボリュームまたは重みの合計ボリュームのフィルタリングに関して説明したものと同じタイプであり得る。
【００２３】
任意選択により、処理サブシステムが、スプラッティング動作を実行した後、重み付き深度の合計ボリュームをガウスカーネルで畳み込むように構成される。このような畳み込みが、深度マップの品質を向上させることがわかっている。
【００２４】
任意選択により、テンプレート深度マップは、画像に関して低減された空間解像度を有し、例えば、重み付き深度の合計ボリュームおよび重みの合計ボリュームの２つの空間次元に対応する２つの空間次元を有する。それで、スプラッティング動作で使用されるのと同じ重みを使用して、テンプレート深度マップが補間され得る。
【００２５】
任意選択により、ジョイントバイラテラルフィルタは画像の輝度データのみに適用される。任意選択により、画像の輝度データとクロミナンスデータにジョイントバイラテラルフィルタが適用される。後者の場合、ボリュームは、３つの範囲次元、例えばＹ、Ｕ、Ｖ次元を有する５次元のボリュームであり得る。
【００２６】
任意選択により、集積回路が、フィールドプログラマブルゲートアレイまたはシステムオンチップであるか、その一部である。集積回路は、ディスプレイデバイスまたはセットトップボックスなどのデバイスの一部であり得るが、深度マップを推定することによって２Ｄビデオを３Ｄビデオに変換するために使用される他のデバイスでもあり得る。
【００２７】
本発明のさらなる態様は、画像から深度マップを推定するための、コンピュータにより実行される方法を提供し、この方法は：
−  画像の画像データへアクセスするステップと、
−  テンプレート深度マップの深度データにアクセスするステップであって、テンプレート深度マップが、画像データに適合させるテンプレートを表す、アクセスするステップと、
−  画像データをジョイントバイラテラルフィルタの範囲項として使用してテンプレート深度マップにジョイントバイラテラルフィルタを適用し、画像に適合された深度マップを、出力として取得するステップとを含み、
ジョイントバイラテラルフィルタを適用するステップは、
−  重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれの空のデータ構造として初期化するステップであって、前記ボリュームの各々は：
−  画像データの２つの空間次元のダウンサンプリングされたバージョンを表す、２つの空間次元と、
−  画像データの範囲次元のダウンサンプリングされたバージョンを表す、少なくとも１つの範囲次元とを含み、
前記ボリュームのセルは、画像の２つの空間次元および画像データの範囲次元に関して定義される画像の座標系でビンを定義する、初期化するステップと、
−  前記ボリュームを満たすためにスプラッティング動作を実行するステップであって、スプラッティング動作は、画像内の各ピクセルに対して：
−  画像の座標系におけるピクセルの座標に基づいて、座標は、前記ボリュームの各々のビンに関するピクセルの相対位置を示し、
−  隣接するビンにマッピングするスプラッティング動作のフットプリントを有するピクセルに基づいて、ピクセルがスプラッティング動作において寄与する重み付き深度の合計ボリューム内の、隣接する前記ビンを識別するステップを含み、
スプラッティング動作における前記寄与は：
−  テンプレート深度マップからピクセルの深度値を取得するステップと、
−  隣接するビンの各々に対して、
−  深度値を重み付けするためのスプラッティング重みを取得するステップであって、スプラッティング重みは、それぞれのビンに関するピクセルの相対位置に基づいて決定される、取得するステップと、
−  スプラッティング重みによって深度値を重み付けするステップと、
−  重み付き深度の合計ボリュームのそれぞれのビンに重み付き深度値を蓄積し、重みの合計ボリュームの対応するビンにスプラッティング重みを蓄積するステップとを含む、スプラッティング動作を実行するステップと、
−  重み付き深度の合計ボリュームの各ビンと、重みの合計ボリュームの対応するビンとについて、蓄積した重み付き深度値を蓄積した重みで除算することによって、画像に適合された深度ボリュームを取得するためにスライス動作を実行するステップと、
−  補間動作を実行して、画像内の各ピクセルの画像に適合された深度マップの画像に適合された深度値を取得するステップであって、補間動作は：
−  画像の座標系内のピクセルの座標に基づき、スプラッティング動作中に重み付き深度の合計ボリュームの対応するビンに寄与するピクセルに基づいて、画像に適合された深度ボリューム内の隣接するビンを識別し、
−  補間フィルタを画像に適合された深度ボリュームの隣接ビンに適用するステップを含み、補間フィルタは、隣接するビンの各々について、それぞれのビンに対するピクセルの相対位置に基づいて決定される補間重みを備える、補間動作を実行するステップと
を含む。
【００２８】
本発明のさらなる態様は、プロセッサシステムに方法を実行させるように構成された命令を表す一時的または非一時的データを含むコンピュータ可読媒体を提供する。
【００２９】
本発明の上述の実施形態、実現、および／または態様のうちの２つ以上は、有用と考えられる任意の方法で組み合わせることができることを当業者は理解するであろう。
【００３０】
説明された集積回路の修正および変形に対応する方法の修正および変形は、本説明に基づいて当業者によって遂行され得る。
【００３１】
本発明のこれらおよび他の態様は、以下に説明される実施形態から明らかであり、それらを参照して説明される。
【図面の簡単な説明】
【００３２】
【図１】計算的に効率的な様式で画像から深度マップを推定するように構成された集積回路を概略的に示す図である。
【図２】スプラッティング動作中に重みおよび重み付き深度値を蓄積するために使用され、補間動作のための深度値を保持し得る画像とボリュームとの間の関係を示す図である。
【図３Ａ】スプラッティング動作の簡略化された例を示す図である。
【図３Ｂ】スプラッティング動作および補間動作の両方に対する、ビンのアドレス指定および関連する重みを示す詳細な例を示す図である。
【図４】スプラッティング動作のさまざまな態様を示す図である。
【図５】補間動作のさまざまな態様を示す図である。
【図６】補間動作のさまざまな態様を示す図である。
【図７】補間動作のさまざまな態様を示す図である。
【図８】画像から深度マップを推定する方法を示す図である。
【図９】プロセッサシステムに方法を実行させるための命令を含むコンピュータ可読媒体を示す図である。
【発明を実施するための形態】
【００３３】
異なる図において同じ参照番号を有するアイテムは、同じ構造的特徴および同じ機能を有すること、または同じ信号であることに留意されたい。そのようなアイテムの機能および／または構造が説明されている場合、詳細な説明においてそれらを繰り返し説明する必要はない。
【００３４】
参照および略語のリスト
以下の参考および略語のリストは、図面の解釈を容易にするために提供されており、特許請求の範囲を限定するものとして解釈されるべきではない。
【００３５】
０１０  画像データ
０２０  深度ボリューム入力データ
０２２  深度出力データ
０２４  テンプレート深度データ
０２６  補間されたテンプレート深度データ
０３０  重みの合計ボリュームデータ
０３２  重み付き深度の合計ボリュームデータ
０５２  重みおよびボリュームインデックスデータ
０５４  重みデータ
１００  集積回路の処理サブシステム
１１０  画像データ入力インターフェース
１２０  深度ボリュームデータ入力インターフェース
１２２  深度データ出力インターフェース
１３０−１３２  ボリュームデータ出力インターフェース
１４０  スプラッティングブロック
１５０  重み付けブロック
１６０  補間ブロック
１７０  ２Ｄ補間ブロック
１８０  制御ロジック
２００  画像
２１０  水平次元
２２０  垂直次元
２５０  明るい画像パッチのマッピング
２６０  暗い画像の背景のマッピング
３００  画像のボリューム表現
３１０  水平次元
３２０  垂直次元
３３０  範囲次元
４００  次元（水平、垂直、または範囲）
４１０  深度サンプルの連続
４２０  スプラット蓄積区間
４３０  重み関数
４４０  ビン区間
４４２  エッジビン
４４４  非エッジビン
５００  画像から深度マップを推定する方法
５１０  画像データへアクセスすること
５２０  深度データへアクセスすること
５３０  ジョイントバイラテラルフィルタを適用すること
５４０  ボリュームを初期化すること
５５０  スプラッティング動作
５６０  スライス動作
５７０  補間動作
６００  コンピュータ可読媒体
６１０  命令を表す非一時的データ
【００３６】
図１は、計算的に効率的な様式で画像から深度マップを推定するように構成された集積回路の処理サブシステム１００を概略的に示している。処理サブシステム１００は、機能ブロック図として示されており、マイクロプロセッサ、特定用途向けハードウェア回路、および１つ以上のローカルメモリなどの構成要素によって具現化され得る。集積回路は、他のマイクロプロセッサ、バスシステム、他のメモリなどを含むがこれらに限定されない、図１に示されていない他の構成要素を含み得る。一般に、集積回路は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）またはシステムオンチップ（ＳｏＣ）として、またはその一部として、または他の適切な様式で実現され得る。
【００３７】
処理サブシステム１００は、画像データ入力インターフェース１１０を備えるように示されており、画像データ入力インターフェース１１０を介して、画像データ０１０を、例えばダイレクトメモリアクセス（ＤＭＡ）通信を介して、メモリから読み取ることができる。例えば、画像データは、輝度入力データＹｉｎであってもよい。この点で、画像データ入力インターフェース１１０および処理サブシステム１００の他のインターフェースは、図１全体で「Ｂｕｆ」とラベル付けされた、バッファとして機能するローカルメモリを備えるか、それに接続され得ることに留意されたい。
【００３８】
処理サブシステム１００はさらに、深度ボリュームデータ０２０をメモリから読み取ることができる深度ボリュームデータ入力インターフェース１２０と、深度データ０２２をメモリに書き込むことができる深度データ出力インターフェース１２２とを備えるように示される。処理サブシステム１００はさらに、重みの合計ボリュームデータ０３０および重み付き深度の合計ボリュームデータ０３２をメモリに書き込むためのそれぞれのボリュームデータ出力インターフェース１３０、１３２を備えるように示されている。
【００３９】
処理サブシステム１００の他の機能ブロックは、ボリュームデータ出力インターフェース１３０、１３２と通信するスプラッティングブロック１４０と、深度データインターフェース１２０、１２２と通信する補間ブロック１６０と、画像データ入力インターフェース１１０と通信し、重みおよびボリュームインデックスデータ０５２をスプラッティングブロック１４０および補間ブロック１６０に提供する重み付けブロック１５０と、制御ロジック１８０からテンプレート深度データ０２４を受け取り、重み付けブロック１５０から重みデータ０５４を受け取り、補間テンプレート深度データ０２６をスプラッティングブロック１４０に提供する２Ｄ補間ブロック１７０とを備える。
【００４０】
一実施形態では、図１に示される処理サブシステム１００は、特定用途向けハードウェア回路として実現されてもよい。加えて、別個のマイクロプロセッサ（図１には図示せず）は、先に議論したようにスライス動作を実行するように構成された集積回路内に提供することができる。そのために、マイクロプロセッサは、例えばＤＭＡ経由でメモリにアクセスすることができる。あるいは、特定用途向けハードウェア回路によってスライス動作を実行することもできる。
【００４１】
処理サブシステム１００およびその機能ブロックの動作は、図２−７を参照してさらに説明される。これに関し、図２を参照して説明されるように、図１において「＊」は、ボリュームの多次元データ表現に関連付けられたローカルバッファまたはインターフェースを示していることに留意されたい。
【００４２】
図２は、画像２００とボリューム３００との間の関係を示しており、そのようなタイプのボリュームは、スプラッティング動作中に重みおよび重み付き深度値を蓄積し、補間動作のために画像２００のピクセルの深度値を保持するために使用される。ボリューム３００は、３つの次元を有するように示されている。Ｘ次元３１０は、画像２００の水平軸２１０に対応し得る。Ｙ次元３２０は、画像２００の垂直軸２２０に対応し得る。Ｉ次元３３０は、画像、例えば限定されないが輝度成分などの画像２００の画像成分の範囲次元に対応し得る。ボリューム３００は、画像２００の空間次元および範囲次元に関してサブサンプリングされたサイズを有し得る。例えば、画像２００は、２７０ライン（Ｘ、Ｙ）ごと４８０ピクセルの空間次元、および２５６の値の範囲を定義する８ビットの範囲次元（Ｉ）を有することができ、一方、ボリューム３００は１８ｘ１２ｘ１８（Ｘ、Ｙ、Ｉ）の次元、つまり空間次元３１０、３２０に対する１８ｘ１２（Ｘ、Ｙ）および範囲次元３３０に対する１８（Ｉ）を有し得る。
【００４３】
ボリューム３００のセルはビンを表し得る。スプラッティング動作中、そのようなビンは、画像２００の深度情報の蓄積のための蓄積区間を定義し得る。ここで、特定のピクセルに関連付けられる重みまたは重み付き深度値の蓄積に使用されるビンは、ピクセルの空間座標およびその範囲値に応じて選択される。例えば、暗い画像コンテンツの深度情報は、矢印２６０で示されるようにボリューム３００の「より低い」ビンに蓄積され得るという点で、画像２００の輝度値は、ボリューム３００のＩ次元３３０に沿ったビンの座標を決定することができ、一方、明るい画像コンテンツの深度情報は、矢印２５０で示されるように、ボリューム３００の「より高い」ビンに蓄積され得る。さらに、画像コンテンツの空間的位置は、ボリューム３００の空間次元３１０、３２０に沿ったビンの位置を定義し得る。したがって、画像２００のピクセルの空間座標と範囲値の組み合わせ、すなわち、画像の（少なくとも）３Ｄ座標系におけるピクセルの座標は、ボリューム３００のどのビンにスプラッティング動作中に重みまたは重み付き深度値が蓄積されるか、または、どのビンが補間動作による補間のためにピクセルの深度値を保持するかを、決定することができる。
【００４４】
ビンのこの決定は、本質的に、ピクセルの空間座標と範囲値をボリュームの座標空間の座標にマッピングすることを伴い、ボリューム内の相対位置に基づいてスプラッティングおよび補間中に使用されるビンを識別する。効果的には、スプラッティング中に、スプラッティングフットプリントに基づいてピクセルがどのビンに寄与するかを決定するために、隣接するビンが識別されて（「寄与」は重みまたは重み付き深度値の蓄積である）、補間中に、ボリューム内のピクセルの相対位置に基づいて、どのビン間で補間が実行されるかを決定するために、隣接するビンが識別される。そのために、ピクセルの空間座標と範囲値をボリュームの座標空間の座標にマッピングするマッピング関数が使用され得、その場合、後者の座標は、隣接するビンを直接示す。
【００４５】
サブサンプリングにより、画像２００の複数のピクセルが、それらの深度値が少なくとも部分的に単一のビンに蓄積され得るという点で、ボリューム３００の単一のビンに寄与し得る。逆に、ボリュームの座標系の座標がボリューム３００のいくつかのセルの間にあるため、単一のピクセルがボリューム３００のいくつかのビンに寄与し得る。そのため、ボリューム３００にピクセルの深度値を蓄積するとき、ボリューム３００のいくつかのセルへの寄与を考慮するために、深度値を重み付けする必要があり得る。これは「スプラッティング」とも呼ばれる。
【００４６】
図３Ａは、単一の次元Ｋ４００に沿ったそのようなスプラッティング動作を示す。この次元Ｋは、水平（Ｘ）、垂直（Ｙ）、または輝度（Ｉ）次元であり得る。この説明のために、次元Ｋ４００は、輝度次元Ｉを表すと考えられる。最初に、この次元は、例えば２５６値（８ビット、０から２５５まで）から、幅１６の１６個のビンへ下って、例えば輝度次元Ｉのサブサンプリングによってビン４４０に分割される。それ自体知られているように、各ビンは特定の値または蓄積値の合計を保持することができるストレージ要素である。説明のため、特に図の視認性を向上させるために、図３Ａ以降では、合計で１２個のビン：１０個の「通常」ビン［１］から［１０］、および、２つのいわゆる「エッジビン」［０］ならびに［１１］のみを伴うビニングが示されていることに留意されたい。エッジビン［０］と［１１］の異なるサイズと目的については、図３Ｂをさらに参照して説明する。
【００４７】
以下は、ヒストグラム動作を参照したスプラッティング動作を示している。従来のヒストグラムは、次のように取得し得る：画像の各ピクセルについて、その輝度値がどの単一ビン内に入るかを決定し得る。次いで、そのビンの値は、例えば１だけインクリメントされ得る。その結果、ビンに関連付けられた輝度区間に関する輝度値の相対位置は無関係であり得る。例えば、ビンが［０…７］の蓄積の輝度区間を定義する場合、このビン内に落ちるすべての輝度値は、輝度値がビンの中心内（例えば、輝度値３および４）またはビンのエッジ（例えば、輝度値０および７）に落ちるかどうかに関係なく、同じインクリメント、つまり１のインクリメントを引き起こし得る。
【００４８】
より良い、例えば、より正確なヒストグラム表現を取得するために、スプラッティング技術が使用され得る。すなわち、ビン内の輝度値の相対位置は、重み付けによって考慮され得る。そのようなスプラッティング技術において、「スプラット」であるピクセルの寄与は、輝度次元に沿ったピクセルの座標に、例えば輝度値に、フットプリントを明示的または暗黙的に割り当てることにより決定され得る。スプラッティングによる蓄積は、次のように実行され得る：ピクセルの輝度値について、ピクセルがどの隣接ビンに寄与するかが決定され、「寄与」とは、ビンが少なくとも部分的にピクセルのフットプリント内に落ちることを指す。次いで、隣接するビンの値が、２つのビンに関する輝度値の相対位置に依存するそれぞれの重みによってインクリメントされ得る。例えば、輝度値が「現在の」ビン内の中央に落ちるとき、そのビンへの寄与は「高」であり得るのに対し、「前の」（下の）ビンおよび「次の」（高い）ビンへの寄与は低であり得る。同様に、輝度値が２つのビンの間に落ちるとき、各ビンへの寄与は「高」値の半分になり得る。
【００４９】
前述の位置依存の重み付けは、ビンに対するそのようなフットプリントベースの寄与を具体化し得る。重み付けは特定の区間内のビンへの寄与のみを定義するため、この区間は特定のビンの「蓄積区間」を表すとみなされ得ることに留意されたい。例えば、「現在の」（または「今の」）ビンの蓄積区間は、現在のビンを含むとみなされ、一方、前のビンと次のビンの中間まで延長もされる。したがって、前のビンの半分から開始して、現在のビンへの寄与は、現在のビン内で、中央でゼロから最大までゆっくりと増加し、ついで、次のビンの途中でゆっくりとゼロに減少し得る。
【００５０】
スプラッティング動作を使用した結果、ビンに蓄積された値は、ヒストグラムのより正確な表現を表し得る。
【００５１】
スプラッティング動作の具体的かつ効率的な実現では、フットプリントは、例えば、ビンのサイズに対応するサイズまたはより小さいサイズを有することによって、最大で２つの隣接するビンに寄与すると考えられる。この場合、ピクセルは最大でビン［ｎ］とビン［ｎ＋１］に寄与し、ここでｎはビンインデックスまたはボリュームの座標系の座標である。以下では、第１のビンを「現在の」ビンと呼び、第２のビンを「次の」ビンと呼ぶ。
【００５２】
特に具体的かつ効率的な実現では、現在のビン内のピクセルの寄与が現在のビンと次のビンにのみであるように、ビンの蓄積区間を定義する。しかしながら、この実現は、ビンの半分の「オフセット」を有すると考えられ、ピクセルの寄与がそこにあることは直観的に理解できるであろう。つまり、この特定の実現では、ビンへの最大の寄与はビンの中央で得られず、その最低の境界で得られる。このようにビンを定義する理由は、例えば、重みの計算と記憶、および／またはビンに関する相対位置の計算を検討するときに、スプラッティング動作と補間動作の間でより多くのハードウェアの再利用を可能にするためである。
【００５３】
例として、図３Ａで、ビン［５］の左側の輝度値である輝度値ｐ０の場合を考える。この相対位置は、重み付け関数４３０に従ってビン［５］に「高い」重みを寄与し（最大での／付近での点線）、ビン［６］に「低い」重みを寄与する（ゼロでの／付近での破線）。次に、ビン［５］の中央にある輝度値ｐ１の場合を考える。この相対位置は、ビン［５］および［６］に等しい重み（「高い」重みの半分）を与え得る。最後に、ビン［５］の右側の輝度値ｐ２の場合を考える。この相対位置は、ビン［５］に「低い」重みを、ビン［６］に「高い」重みを寄与し得る。したがって、輝度値の相対位置は重みを決定し得、その重みにより輝度値が現在および次のビンに蓄積される。それにより、図３Ａの例は、輝度値に応じて、ビン［５］への最大寄与からビン［６］への最大寄与までの線形「フェードオーバー」を示している。
【００５４】
現在のビン内の輝度値を有するピクセルが現在のビンおよび次のビンのみに寄与するこの、特定の効率的な実現では、ビン［５］に関連付けられた蓄積区間は、ビン［５］とその前のビンにわたる区間、例えば図３Ａのビン［４］および［５］をカバーする点線に対応する区間であり得ることが理解されるであろう。同様に、ビン［６］に関連付けられた蓄積区間は、ビン［６］とその前のビンにわたる区間、例えば図３Ａのビン［５］と［６］をカバーする破線に対応する区間であり得る。
【００５５】
図３Ｂは、同様の実施形態のより詳細を示すが、それぞれのボリューム、すなわち前述の重み付き深度の合計ボリュームおよび重みの合計ボリュームにおける、重み付き深度値および重みの蓄積に適用される。
【００５６】
この例では、両方のボリュームは、画像のサイズに関係なく１８ｘ１２ｘ１８ビン（Ｘ、Ｙ、Ｉ）の固定最大サイズを有するが、実際のビンの数は変わり得る。すなわち、「サイズビンＫ」パラメータが、スプラッティング動作で使用されて、非エッジビン４４４のサイズを定義し、したがって、使用されるビンの数を決定する。このサイズは、実現の複雑さを低減するために２の累乗であり得る。次元「エッジビンＫ」の端にある２つのビンのサイズは、次元サイズの任意の値を可能にするために変わり得る。図３Ｂは、より下のエッジビン４４２を示している。例えば、画像幅が４８０であり、サイズビンＸが３２になるように選択されている場合、１４個の非エッジビンと、それぞれが（４８０−１４＊３２）／２＝１６の幅を有する２個のエッジビンがあり得る。別の例では、画像の高さが２７０で、サイズビンＹが３２の場合、エッジビンの各々の幅は（２７０−８＊３２）／２＝７になり得る。そのため、エッジビンを使用すると、非エッジビンのサイズを２の累乗に等しくできるため、実現の複雑さが簡素化される。すなわち、固定小数点演算の正規化は、単純なシフト動作で実行することができる。さらに、２つのエッジビン（上端と下端）を使用することは、エッジビンが画像のエッジと一致するため、より良いフィルタ結果をもたらすことが示されている。したがって、意図的に特定のサイズのエッジビンを持つことが望ましい場合がある。例えば、通常の非エッジビンの半分のサイズのエッジビンが好ましい一方で、最小で通常のビンサイズの１／４、最大で通常のビンサイズの３／４であることがわかっている。
【００５７】
図３Ｂは、スプラッティングおよび深度補間の両方に対するビンのアドレス指定および関連する重みの例をさらに示している。理解を容易にするために、図３Ｂは単一の次元のみを示している。この次元は、画像位置のＸ、Ｙ、または範囲次元のいずれかであり得る。具体的には、図３Ｂは、示されたインデックス位置［０］．．．［１２］での深度サンプルの位置４１０を示し、例えば図１のテンプレート深度データ０２４から取得された入力深度マップの線に沿ったサンプルの位置に対応する。各インデックス位置について、対応するスプラット蓄積区間４２０、スプラッティングのための重み関数４３０によって決定される重み、および深度プロファイル補間（図１の参照番号１７０によって示される）、およびビン区間４４０が示されている。図３Ｂは次のように解釈される。所与のインデックス位置、例えばインデックス位置［７］に対して、同じ数字［７］で示される蓄積区間と、蓄積区間［７］と同じ線スタイルで示される対応する重み関数４３０が定義される。重み関数４３０は重み「ｆ」を表し、これは、蓄積区間［７］のエッジからの０から蓄積区間［７］の中心の１まで線形に遷移する。同じ蓄積区間［７］内に重み「１−ｆ」も示されており、これは、蓄積区間［７］の左半分で、半分重なっている蓄積区間［６］の深度サンプル［６］の重みを表し、蓄積区間［７］の右半分で、半分重なっている蓄積区間［８］の深度サンプル［８］の重みを表す。
【００５８】
蓄積区間と重みは、示された次元に沿った所与の位置ｐに対して、ＳＷ［ｘ］＋＝ｆおよびＳＷ［ｘ＋１］＋＝（１−ｆ）に従って、重みの合計ボリュームのビンが蓄積される一方、ＳＷＤ［ｘ］＋＝ｆ＊ｄｐおよびＳＷＤ［ｘ＋１］＋＝（１−ｆ）＊ｄｐに従って重み付き深度の合計ボリュームのビンが蓄積されるように選択されることがわかる。ここで、位置ｐはビンｘを決定し、この例では［６］であり、深度値ｄｐは、ｄｐ＝（１−ｆ）＊Ｄ［ｘ］＋ｆ＊Ｄ［ｘ＋１］に従って深度マップＤから深度プロファイル補間（図１の１７０）によって得られる。これは、単一の次元のみに対するものであり；通常、ビンのアドレス指定は、画像の空間次元Ｘ、Ｙ、および１つ以上の範囲次元Ｉに基づいているため、通常は画像データ自体にも依存することに留意されたい。
【００５９】
重み「ｆ」および「（１−ｆ）」は、正規化された式を使用して固定小数点値として計算できることに留意されたい。例えば、バイナリドットの後の３ビットの場合、８の値は「１」を表し、したがって「ｆ」は［０．．８］の範囲にある。特定の例では、ｄｐ＝（ｆ−１）＊Ｄ［ｘ］＋ｆ＊Ｄ［ｘ＋１］、ここでＤ［ｘ］は２４、Ｄ［ｘ＋１］が８でｆが６である、が計算されると仮定した場合、「ｄｐ」は（（８−６）＊２４＋６＊８）／８＝９６／８＝１２として計算することができる。８による除算は正規化ステップである。この例は、図５のＹ位置１０の表にも示されている。この図および他の図および本文全体で、「ｗｎｙ」および「ｗｐｙ」は、この正規化前の「ｆ」および「（１−ｆ）」の固定小数点値を表す。
【００６０】
特定のおよび効率的な実施形態では、最大重みは、ビンのサイズ、例えば８のビンサイズの８に対応し得る。したがって、輝度値の各ステップは、２つの隣接するビンの各々の重みのステップをもたらす。同様に、（ｘまたはｙ）位置の各ステップは、２つの隣接するビンの各々の重みのステップをもたらす。
【００６１】
図４は、単一の次元に沿って重み付き深度の合計（ＳＷＤ）および重みの合計（ＳＷ）を満たすスプラッティング動作を示している。この例では、垂直Ｙ軸が選択され、ここでビンのサイズは８（「サイズビンＹ」）であり、最初のビンのサイズは４（「エッジビンＹ」）である。「Ｙ位置」は単に行番号である。図４の表は、インデックス１のビンＹのラインに関する補間を示している。「ファクターＹ」は、ビン内のラインの相対位置である。「ファクターＹ」の値に基づいて、２つの重み「ｗｐｙ」と「ｗｎｙ」が導出され、これらは、図３Ｂで説明したように相補的な重み「ｆ」と「１−ｆ」に関するが、今は「次の」ビンについて重み「ｗｎｙ」として表され、「現在の」ビンについて重み「ｗｐｙ」として表され、ここで、「次の」と「現在の」は、２つの連続した空間的に隣接するビンを指す。スプラッティングは本質的にダウンサンプリング機能であり、これにより高解像度入力が低解像度出力に変換される。この例では、ビンＹ番号１内のすべてのラインは入力深度値「２０」を有する。ラインの位置に応じて、重みはビン１からビン２に徐々にシフトする。したがって、ライン番号４（ビン１の最初のライン）では、図４に２つの矢印で示されているように、完全な値がビン１に蓄積され、ビン２に値は追加されない。ライン番号８（ビンの中間）では、値の５０％がビン１に追加され、５０％がビン２に追加される。これにより、ビン間の線形フェードオーバーが実現される。重みを使用し、ＳＷ（重みの合計）ボリュームのセルは適用された重みのみを蓄積するが、ＳＷＤ（重み付き深度の合計）ボリュームのセルは深度値に重みを乗じて蓄積する（「重み付き深度」）。
【００６２】
要約すると、スプラッティング動作は、画像内の各ピクセルについて、画像の座標系、例えば（Ｘ、Ｙ、Ｉ）座標、（Ｘ、Ｙ、Ｒ、Ｇ、Ｂ）座標または（Ｘ、Ｙ、Ｉ、Ｕ、Ｖ）座標のピクセルの座標を決定することを伴う。後者では、（Ｉ、Ｕ、Ｖ）はＹＵＶ信号の成分を指し、ここでＹ（輝度）成分はＹ空間次元と区別するためにＩ（強度）と呼ばれている。次に、重みの合計ボリューム内のどの隣接セルがピクセルに関連付けられた蓄積区間を表すかが決定され得る。ピクセルの深度値は、深度マップが画像よりも低い空間解像度を有する場合は、おそらく補間を使用して、深度マップから取得し得る。隣接するセルの各々について、深度値を重み付けするための重みを取得し得る。重みは、座標によって示されるそれぞれのセルの蓄積区間に関するピクセルの相対位置に基づいて（事前）計算し得る。次いで、深度値は、重みによって重み付けされ、重み付き深度の合計ボリュームのそれぞれのセルに蓄積され、重み自体は、重みの合計ボリュームの対応するセルに蓄積され得る。
【００６３】
単一の次元の場合、線形補間には２つの値が必要であることに留意されたい。同様に、２次元の場合、バイリニア補間には４つの値が必要である。３次元のボリュームの場合、トライリニア補間は８つの値を使用する。重みは、ビン内のサンプルの相対位置に応じて事前に計算された値であり得る。深度マップの画像に関する空間解像度が低減された、特に重み付き深度の合計ボリュームおよび重みの合計ボリュームと同じ低減された空間解像度の場合、深度マップは、スプラッティング動作で使用されるのと同じ重みを使用して、スプラッティング動作の前に画像解像度に補間され得る。これは、図１において、深度テンプレートを画像解像度に補間する２Ｄ補間ブロック１７０に重みデータ０５４を提供する重み付けブロック１５０によって示される。
【００６４】
スプラッティング動作を実行したならば、画像に適合した深度ボリュームを取得するために、スライス動作が実行され得る。このスライス動作は、図１には明示的に示されていないが、例えばＤＭＡ通信を介してメモリにアクセスできるソフトウェアによって構成されたマイクロプロセッサによって実行し得る。スライス動作は、重み付き深度の合計ボリュームの各セルおよび重みの合計ボリュームの対応するセルについて、蓄積された重み付き深度値を蓄積された重みで除算することを含み得る。この除算の結果、各ビンは今や画像に適合された深度値を収容し、こうして全体のボリュームは画像に適合された深度ボリュームを表す。
【００６５】
スライス動作を実行したならば画像内の各ピクセルに対する画像に適合された深度マップの画像に適合された深度値を取得するために、補間動作が実行され得る。この補間動作は、ピクセルの座標に基づく重み付き深度の合計ボリューム内の、ピクセルの蓄積区間を表す前記セルに基づいて、画像に適合された深度ボリューム内の隣接セルを識別すること、および画像に適合された深度ボリュームの隣接セルに補間フィルタを適用することを含んでいてもよく、補間フィルタは、セルの各々について、座標によって示されるそれぞれのセルの蓄積区間に関するピクセルの相対位置に基づいて決定される重みを備える。言い換えると、空間座標と範囲値によって決定されるピクセルの位置は、補間に使用されるビンを決定することができ、一方、ビン内のピクセルの相対位置は、補間の重みを決定することができる。重みは事前に計算される場合がある。特に、重みは、スプラッティング動作で使用されるものと同じ重みであってもよく、および／または重みを格納または計算するために、同じハードウェア回路が使用され得る。
【００６６】
図５は、図４がスプラッティング動作に対して行ったのと同様の様式の補間動作を示している。ここで、重みは、画像に適合された深度ボリュームから出力深度値を補間するために使用される。図５を図４と比較するとわかるように、ビン内の特定の相対位置に同じ重みが使用される。これは、スプラッティングブロック１４０へのものと同じ重みおよびボリュームインデックスデータ０５２を、補間ブロック１６０へ提供する重み付けブロック１５０によって、図１に示されている。表の右側部分は、入力深度値２４および８に重みがどのように適用されるかを示している。例えば、Ｙ位置７の補間では、（（５ｘ２４＋３ｘ８））／８＝１８をもたらす。
【００６７】
図６は、図４と図５で使用されている２つの重み、すなわち、横軸のライン番号Ｙに応じて縦軸の「ｗｐｙ」と「ｗｐｙ」の値をグラフで示している。重み「ｗｐｙ」は「現在の」値に適用され、重み「ｗｎｙ」は「次の」値に適用される。図７は図６に対応するが、図５に示す入力深度値２４と８の間で得られた補間された出力を追加で示している。入力深度値間の線形フェージングを提供するように重みが計算されていることがわかる。線形フェージングに加えて、高次補間関数、例えば、キュービック補間またはスプライン補間も使用することができる。
【００６８】
一般に、説明されたボリュームのＸまたはＹ次元のビンのサイズは、常に２のべき乗であり得、なぜならこの場合、例えば固定小数点トライリニア補間である補間が、正規化のためにシフト動作を使用し得るからであり、これがハードウェアコストの大幅な削減をもたらすことに留意されたい。これが、画像サイズに応じて、必要な可変な数のビンをもたらすという結果となる。ビンのサイズを変更すると、フィルタのパフォーマンスが影響を受ける場合がある。しかしながら、実験は、これが視覚的なパフォーマンスに大きな影響を与えないことが示している。さらに、固定数のビンの代わりに可変な数のビンを使用しても、ハードウェア設計に大きな影響はない。ＸまたはＹ次元のいずれかのビンのサイズはハードウェアパラメータで指定されることができるが、一方で、どの値を選択するかの分析は、例えばマイクロプロセッサのソフトウェアに委ねられる。
【００６９】
一般に、処理サブシステムは、説明された集積回路とは別に、例えば別のタイプのＳｏＣに提供されてもよいことに留意されたい。
【００７０】
データは、処理サブシステムをネットリストおよび／または合成可能なＲＴＬの形で定義するコンピュータ可読媒体で提供され得る。コンピュータ可読媒体、およびそれによりそこに格納されるデータは、一時的または非一時的であり得る。例えば、処理サブシステムは、ＶｅｒｉｌｏｇまたはＶＨＤＬなどのハードウェア記述言語で合成可能なコアとして、または汎用ゲートまたはプロセス固有の標準セルとして実現されたＲＴＣ  ＩＰブロックの論理関数のブール代数表現を提供する汎用ゲートレベルネットリストとして提供され得る。
【００７１】
「マップ」という用語は、行と列に配置されたデータを指す。さらに、形容詞「ディスパリティ」は、カメラに対する画像の部分の深度を示すものとして理解されるべきである。したがって、深度マップは、深度値だけでなく、例えばディスパリティ値または視差シフト値によっても構成され得る。したがって、基本的に、深度マップは視差マップまたは視差シフトマップを構成し得る。ここで、ディスパリティという用語は、ユーザーの左目または右目で知覚されたときのオブジェクトの位置の違いを指す。視差シフトという用語は、ユーザーに前記ディスパリティを提供するための、２つのビュー間のオブジェクトの変位を指す。ディスパリティと視差シフトは、一般に距離または深度と負の相関がある。上記のすべてのタイプのマップおよび／または値の間で変換するためのデバイスおよび方法は知られている。
【００７２】
図８は、画像から深度マップを推定するための、コンピュータにより実行される方法５００を示している。方法５００は、「画像データへアクセスすること」というタイトルの動作で、画像の画像データへアクセスし５１０、「深度データへアクセスすること」というタイトルの動作で、テンプレート深度マップの深度データへアクセスし５２０、「ジョイントバイラテラルフィルタを適用すること」というタイトルの動作で、ジョイントバイラテラルフィルタの範囲項として画像データを使用して、テンプレート深度マップにジョイントバイラテラルフィルタを適用し５３０、それにより画像に適合された深度マップを、出力として取得することを含んで示され、ジョイントバイラテラルフィルタを適用することは、「ボリュームを初期化すること」というタイトルの動作で、重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれのデータが空の構造として初期化し５４０、「スプラッティング動作」というタイトルの動作で、前記のボリュームを満たすためにスプラッティング動作を実行して５５０、「スライス動作」というタイトルの動作で、画像に適合された深度ボリュームを取得するためにスライス動作を実行し５６０、「補間動作」というタイトルの動作で、画像内の各ピクセルについて、画像に適合された深度マップの画像に適合された深度値を取得するために、補間動作を実行する５７０ことを含む。上記の動作は、任意の適切な順序、例えば、連続的、同時に、またはそれらの組み合わせで、適用可能な場合、例えば入出力関係によって必要とされる特定の順序を条件として実行できることに留意されたい。例えば、動作５１０および５２０は、並行してまたは連続して実行され得る。
【００７３】
方法５００は、プロセッサシステム上、例えば、コンピュータにより実行される方法として、専用ハードウェアとして、または両方の組み合わせとして、コンピュータ上で実行され得る。図９にも示されるように、例えば実行可能コードなどのコンピュータに対する命令は、例えば一連の機械可読物理マーク６１０の形で、および／または異なる電気的、例えば磁気的、または光学的特性または値を有する一連の要素として、コンピュータ可読媒体６００に格納されてもよい。実行可能コードは、一時的または非一時的な様式で記憶され得る。コンピュータ可読媒体の例は、メモリデバイス、光学記憶デバイス、集積回路、サーバ、オンラインソフトウェアなどを含む。図９は、光ディスク６００を示す。
【００７４】
上述の実施形態は、本発明を限定するのではなく例示するものであり、当業者は多くの代替実施形態を設計することができることに留意されたい。
【００７５】
請求項では、括弧の間に置かれた参照符号は、請求項を制限するものとして解釈されない。「含む」という動詞とその活用形の使用は、クレームに記載されているもの以外の要素またはステップの存在を排除するものではない。要素に先行する冠詞「１つの（ａ）」または「１つの（ａｎ）」は、複数のそのような要素の存在を排除しない。本発明は、いくつかの別個の要素を含むハードウェアによって、および適切にプログラムされたコンピュータによって実行され得る。いくつかの手段を列挙するデバイスクレームでは、これらの手段のいくつかは、１つのおよびハードウェアの同一のアイテムによって具現化されてもよい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組み合わせが有利に使用できないことを示すものではない。
【図１】
2020518892.tif 000003
【図２】
2020518892.tif 000004
【図３Ａ】
2020518892.tif 000005
【図３Ｂ】
2020518892.tif 000006
【図４】
2020518892.tif 000007
【図５】
2020518892.tif 000008
【図６】
2020518892.tif 000009
【図７】
2020518892.tif 000010
【図８】
2020518892.tif 000011
【図９】
2020518892.tif 000012
【手続補正書】
【提出日】令和1年12月11日(2019.12.11)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョイントバイラテラルフィルタ（ｊｏｉｎｔ  ｂｉｌａｔｅｒａｌ  ｆｉｌｔｅｒ）を使用して画像から深度マップを推定するように構成された集積回路に関する。本発明はさらに、ジョイントバイラテラルフィルタを使用して画像から深度マップを推定する方法、およびプロセッサシステムに方法を実行させるように構成された命令を表す一時的または非一時的データを含むコンピュータ可読媒体に関する。
【背景技術】
【０００２】
テレビ、タブレット、およびスマートフォンなどのディスプレイデバイスは、３Ｄディスプレイを備え、そのようなデバイスでコンテンツを表示するときにユーザーに深度の認識を提供することができる。その目的のために、そのような３Ｄディスプレイは、それ自体で、またはユーザーにより着用されるメガネと一緒に、立体視に基づいてユーザーに深度の認識を提供するために、ユーザーに各目で異なる画像を提供する。
【０００３】
３Ｄディスプレイには、深度情報を収容するコンテンツが通常必要である。深度情報は、３Ｄコンテンツ内で暗黙的に提供され得る。例えば、簡潔に言えば「ステレオ」コンテンツとも呼ばれる立体視的コンテンツの場合、深度情報は左画像と右画像の違いによって提供される。深度情報は、３Ｄコンテンツ内で明示的に提供される場合もある。例えば、いわゆる画像＋深度フォーマットでエンコードされた３Ｄコンテンツ内では、深度情報は、深度値、ディスパリティ値、および／または視差（ｐａｒａｌｌａｃｔｉｃ）シフト値を含み得る深度マップによって提供され、前記値の各々は、画像内のオブジェクトがカメラに向かって持っている距離を表す。
【０００４】
現在利用可能な大量のコンテンツ、例えば映画、テレビ番組、画像などは２Ｄコンテンツである。３Ｄディスプレイで３Ｄレンダリングを可能にするには、このようなコンテンツを３Ｄに変換する必要がある。３Ｄへの変換は、２Ｄ画像、例えば２Ｄビデオの各２Ｄ画像の深度マップを生成することを含み得る。一般に、このプロセスは「２Ｄから３Ｄへの変換」と呼ばれ、深度マップを手動で作成することを伴い得る。例えば、ワークステーションで走っているソフトウェアツールは、デジタルペンを使用して深度マップを描画することにより、プロのユーザーに２Ｄ画像に深度を追加する可能性を提供し得る。深度マップは自動的に生成される場合もある。例えば、デバイスは、２Ｄ画像内のオブジェクトがカメラに向かって持っている距離を推定し、それに基づいて、２Ｄ画像の深度マップを生成し得る。
【０００５】
深度マップの自動生成の例は、単眼情報を使用して画像の深度マップを生成する方法を説明するＵＳ８，４４７，１４１から知られている。この方法は、グローバル深度プロファイルを提供する画像の第１の深度マップを生成することを含み、これは、スラントなどの単純な汎用テンプレートであってもよい。さらに、第１の深度マップの深度値と画像の色および／または輝度値に基づく第２の深度マップが生成される。第２の深度マップの生成は、画像からの範囲情報を使用して第１の深度マップにジョイントバイラテラルフィルタを適用することを伴い得る。その結果、オブジェクトはグローバル深度プロファイルからより明確になると言われている。
【０００６】
事実上、ＵＳ８，４４７，１４１は、ジョイントバイラテラルフィルタを使用して、深度マップによって提供される汎用テンプレートを画像の実際のコンテンツに適合させる。
【０００７】
しかしながら、ジョイントバイラテラルフィルタの実現は計算的に複雑である。Ｐａｒｉｓ  ｅｔ  ａｌ．，  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ８１．１，  ２００９年，  ２４−５２頁による公開「Ａ  ｆａｓｔ  ａｐｐｒｏｘｉｍａｔｉｏｎ  ｏｆ  ｔｈｅ  ｂｉｌａｔｅｒａｌ  ｆｉｌｔｅｒ  ｕｓｉｎｇ  ａ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｉｎｇ  ａｐｐｒｏａｃｈ」は、計算的に複雑さが少ないと言われているジョイントバイラテラルフィルタの近似を示している。不都合なことに、説明されたバイラテラルフィルタの近似は依然として比較的計算的に複雑であり、したがって、消費者デバイス、例えば集積回路での費用効率の高い実現にはあまり適していない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許第８，４４７，１４１号明細書
【非特許文献】
【０００９】
【非特許文献１】Ｐａｒｉｓ  ｅｔ  ａｌ．，「Ａ  ｆａｓｔ  ａｐｐｒｏｘｉｍａｔｉｏｎ  ｏｆ  ｔｈｅ  ｂｉｌａｔｅｒａｌ  ｆｉｌｔｅｒ  ｕｓｉｎｇ  ａ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｉｎｇ  ａｐｐｒｏａｃｈ」  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ８１．１，  ２００９年，  ２４−５２頁
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の目的の１つは、ジョイントバイラテラルフィルタを使用して画像から深度マップを推定するように構成された、Ｐａｒｉｓ  ｅｔ  ａｌ．により記載された近似よりも計算的に複雑ではない、集積回路を得ることである。
【課題を解決するための手段】
【００１１】
本発明の第１の態様は、画像から深度マップを推定するように構成された集積回路を提供し、集積回路は請求項１で定義されている。本発明のさらなる態様は、画像から深度マップを推定するための、コンピュータにより実行可能な方法を提供し、方法は、請求項１４で定義されている。
【００１２】
本質的に、集積回路は、より粗い解像度でジョイントバイラテラルフィルタを実現するが、Ｐａｒｉｓ  ｅｔ  ａｌ．とは異なる様式である。有利な違いの１つは、Ｐａｒｉｓ  ｅｔ  ａｌ．は最初に補間を実行し、次にスライス動作を実行し、後者は除算を伴う。したがって、Ｐａｒｉｓ  ｅｔ  ａｌ．における除算は、フル解像度に補間して戻されたデータに対して実行される。請求されている集積回路は、ダウンサンプリングされたボリュームに対して、そうであるから、大幅に低減された解像度で、スライス動作を実行する。例えば、１８ｘ１２ｘ１８（高さｘ幅ｘ範囲）のボリュームが使用された場合は、３，８８８の除算動作のみが必要であり、これは、例えば４８０ｘ２７０の画像（１２９，６００の除算動作）で除算を実行するために必要な数よりもはるかに少ない。ダウンサンプリングされたボリュームにスライス動作を実行することによる品質の低下は非常に限られることがわかっている。しかしながら、除算動作は実現が計算的に複雑であるため、ジョイントバイラテラルフィルタを実行する計算負荷は大幅に低減される。これが、スプライシング動作をソフトウェアで実行することを可能にし、その実現に関する柔軟性をさらにもたらす。
【００１３】
入力として使用される深度マップはテンプレート深度マップであり、それにより、スラントなどの所定の汎用深度プロファイル、または異なる汎用深度プロファイルのリストから、画像のコンテンツに最もよく一致するとして選択される汎用深度プロファイルに対応することに留意されたい。しかしながら、一般に、深度マップは、画像にさらに適合されることから利益を得る任意の深度マップであり得る。
【００１４】
さらに、ボリュームは、例えば、画像の２空間次元のダウンサンプリングされたバージョンと、例えば輝度成分などの画像の成分の１つの範囲次元のダウンサンプリングされたバージョンによって構成される３次元ボリュームであり得ることに留意されたい。あるいは、ボリュームは、画像の２つ以上の成分、例えばＹＵＶ画像の輝度および１つ以上のクロミナンス成分、またはＲＧＢ画像の個々の色成分などに対応し得る２つ以上の範囲次元を備え得る。
【００１５】
任意選択により、処理サブシステムが、特定用途向けハードウェア回路と、ソフトウェアによって構成可能なマイクロプロセッサとを備え：
−  特定用途向けハードウェア回路が、スプラッティング動作と補間動作を実行するように構成され、
−  マイクロプロセッサが、集積回路の動作中にスライス動作を実行するようにソフトウェアによって構成される。
【００１６】
本発明のこの態様は、スプラッティング動作および補間動作の両方が依然として比較的計算的に複雑であるが、スライス動作は、ダウンサンプリングされたボリュームのみを動作させることにより、Ｐａｒｉｓ  ｅｔ  ａｌ．と比較して複雑さが著しく低減されているという洞察に基づいている。そのため、スライス動作はソフトウェアで実行され得、柔軟性をもたらし、一方、スプラッティング動作と補間動作は、ソフトウェアに対するハードウェア実行の一般的により高い効率を考慮して、ハードウェアで実行され得る。
【００１７】
任意選択により、特定用途向けハードウェア回路が、スプラッティング動作で使用されるスプラッティング重みおよび／または補間動作で使用される補間重みを格納するためのフィルタテーブルを備える。スプラッティング動作および補間動作がハードウェア動作である場合、前記重みは、読み取り専用メモリまたはランダムアクセスメモリであり得るハードウェア回路のフィルタテーブルに記憶され得る。これが、それぞれの動作のハードウェアによって、前記重みが簡単にアクセスされることを可能にする。
【００１８】
任意選択により、フィルタテーブルは、スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが、それぞれの動作を実行する前に、ロードされる。補間動作とは異なる重みがスプラッティング動作に使用される場合、これらの重みは、例えばマイクロプロセッサによってそれぞれの動作が実行される前にフィルタテーブルにロードされ得る。このようにして、フィルタテーブルのハードウェアは再利用され、スプラッティング動作のハードウェアと補間動作のハードウェアの両方に個別に実現されない。スプラッティング動作と補間動作の間のフィルタテーブルのハードウェアの再利用に加えて、またはそれに代えて、一般に、スプラッティング動作と補間動作との間ビン内のサンプルの相対位置を決定するためのハードウェアの再利用もあり得ることに留意されたい。
【００１９】
任意選択により、スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが同じである。本発明のこの態様は、補間動作を実行する場合と同じ重みがスプラッティング動作を実行するために使用され得るという洞察に基づいており、なぜなら両方とも本質的に同様の動作であるためであり、これらはまた、現コンテキストでは、一方では画像、他方では２つの空間次元と画像の範囲次元に関してダウンサンプリングされた次元を有する多次元ボリュームでも動作する。同じ重みを使用することにより、両方の動作の実行がかなり効率的になる。
【００２０】
任意選択により、スプラッティング動作で使用されるスプラッティング重みおよび補間動作で使用される補間重みが、画像の座標系に関する線形補間を表す。したがって、重みは、スプラッティング動作とボリュームの次元の各々に沿った補間動作との、それぞれのボリュームのデータに線形補間が適用されるように選択される。例えば、３次元ボリュームの場合、トライリニア補間が使用されることができ、一方、例えば２つの範囲次元を有する４次元ボリュームの場合、クワドリニア補間が使用されることができる。線形補間は、スパッティング動作と補間動作に適していることがわかっている。代わりに、キュービック補間を含むがこれに限定されない、より高次の補間が各次元で使用されてもよい。
【００２１】
任意選択により、マイクロプロセッサが、集積回路の動作中に、スライス動作を実行する前に、重み付き深度の合計ボリュームに、および重みの合計ボリュームに時間フィルタリングを適用するようにソフトウェアによって構成される。時間的安定性を確保するために、時間フィルタリングが深度マップにしばしば適用される。そのような時間フィルタリングを深度マップに適用する代わりに、またはそれに加えて、深度マップを生成するために使用されるボリューム自体を時間フィルタリングすることができる。これは、画像と比較して比較的小さなサイズのボリュームに実行するのに計算的に効率的でありながら、より時間的に安定した深度マップをもたらすことがわかっている。例えば、１８ｘ１２ｘ１８の典型的なボリュームは、フィルタリングされる３，８８８個のデータ値を収容するが、一方、４８０ｘ２７０の画像は、フィルタリングされる１２９，６００個のデータ値を収容する。ボリュームに特別に適用されるフィルタリングにより、ソフトウェアの実現が可能である。有利には、いわゆるショットカットの場合に、無限インパルス応答（ＩＩＲ）フィルタの重み付き深度の合計ボリュームへの適用が、例えば専用のショットカット検出器を伴う専用のショットカット処理を必要とせずに、結果として得られる深度マップの時間的安定性を向上させることがわかった。時間フィルタリングは、例えば、一次、または、より高次の無限インパルス応答フィルタであり、ボリュームデータに対する他の（非線形）動作の一部として実現され得る。
【００２２】
任意選択により、マイクロプロセッサが、集積回路の動作中に、時間フィルタリングを画像に適合された深度ボリュームに適用するようにソフトウェアによって構成される。そのような時間フィルタリングは、重み付き深度の合計ボリュームまたは重みの合計ボリュームのフィルタリングに関して説明した実際の画像のフィルタリングと比較して、計算の複雑さにおける比較に値する低減を提供する。時間フィルタリングは、重み付き深度の合計ボリュームまたは重みの合計ボリュームのフィルタリングに関して説明したものと同じタイプであり得る。
【００２３】
任意選択により、処理サブシステムが、スプラッティング動作を実行した後、重み付き深度の合計ボリュームをガウスカーネルで畳み込むように構成される。このような畳み込みが、深度マップの品質を向上させることがわかっている。
【００２４】
任意選択により、テンプレート深度マップは、画像に関して低減された空間解像度を有し、例えば、重み付き深度の合計ボリュームおよび重みの合計ボリュームの２つの空間次元に対応する２つの空間次元を有する。それで、スプラッティング動作で使用されるのと同じ重みを使用して、テンプレート深度マップが補間され得る。
【００２５】
任意選択により、ジョイントバイラテラルフィルタは画像の輝度データのみに適用される。任意選択により、画像の輝度データとクロミナンスデータにジョイントバイラテラルフィルタが適用される。後者の場合、ボリュームは、３つの範囲次元、例えばＹ、Ｕ、Ｖ次元を有する５次元のボリュームであり得る。
【００２６】
任意選択により、集積回路が、フィールドプログラマブルゲートアレイまたはシステムオンチップであるか、その一部である。集積回路は、ディスプレイデバイスまたはセットトップボックスなどのデバイスの一部であり得るが、深度マップを推定することによって２Ｄビデオを３Ｄビデオに変換するために使用される他のデバイスでもあり得る。
【００２７】
本発明のさらなる態様は、プロセッサシステムに方法を実行させるように構成された命令を表す一時的または非一時的データを含むコンピュータ可読媒体を提供する。
【００２８】
本発明の上述の実施形態、実現、および／または態様のうちの２つ以上は、有用と考えられる任意の方法で組み合わせることができることを当業者は理解するであろう。
【００２９】
説明された集積回路の修正および変形に対応する方法の修正および変形は、本説明に基づいて当業者によって遂行され得る。
【００３０】
本発明のこれらおよび他の態様は、以下に説明される実施形態から明らかであり、それらを参照して説明される。
【図面の簡単な説明】
【００３１】
【図１】計算的に効率的な様式で画像から深度マップを推定するように構成された集積回路を概略的に示す図である。
【図２】スプラッティング動作中に重みおよび重み付き深度値を蓄積するために使用され、補間動作のための深度値を保持し得る画像とボリュームとの間の関係を示す図である。
【図３Ａ】スプラッティング動作の簡略化された例を示す図である。
【図３Ｂ】スプラッティング動作および補間動作の両方に対する、ビンのアドレス指定および関連する重みを示す詳細な例を示す図である。
【図４】スプラッティング動作のさまざまな態様を示す図である。
【図５】補間動作のさまざまな態様を示す図である。
【図６】補間動作のさまざまな態様を示す図である。
【図７】補間動作のさまざまな態様を示す図である。
【図８】画像から深度マップを推定する方法を示す図である。
【図９】プロセッサシステムに方法を実行させるための命令を含むコンピュータ可読媒体を示す図である。
【発明を実施するための形態】
【００３２】
異なる図において同じ参照番号を有するアイテムは、同じ構造的特徴および同じ機能を有すること、または同じ信号であることに留意されたい。そのようなアイテムの機能および／または構造が説明されている場合、詳細な説明においてそれらを繰り返し説明する必要はない。
【００３３】
参照および略語のリスト
以下の参考および略語のリストは、図面の解釈を容易にするために提供されており、特許請求の範囲を限定するものとして解釈されるべきではない。
【００３４】
０１０  画像データ
０２０  深度ボリューム入力データ
０２２  深度出力データ
０２４  テンプレート深度データ
０２６  補間されたテンプレート深度データ
０３０  重みの合計ボリュームデータ
０３２  重み付き深度の合計ボリュームデータ
０５２  重みおよびボリュームインデックスデータ
０５４  重みデータ
１００  集積回路の処理サブシステム
１１０  画像データ入力インターフェース
１２０  深度ボリュームデータ入力インターフェース
１２２  深度データ出力インターフェース
１３０−１３２  ボリュームデータ出力インターフェース
１４０  スプラッティングブロック
１５０  重み付けブロック
１６０  補間ブロック
１７０  ２Ｄ補間ブロック
１８０  制御ロジック
２００  画像
２１０  水平次元
２２０  垂直次元
２５０  明るい画像パッチのマッピング
２６０  暗い画像の背景のマッピング
３００  画像のボリューム表現
３１０  水平次元
３２０  垂直次元
３３０  範囲次元
４００  次元（水平、垂直、または範囲）
４１０  深度サンプルの連続
４２０  スプラット蓄積区間
４３０  重み関数
４４０  ビン区間
４４２  エッジビン
４４４  非エッジビン
５００  画像から深度マップを推定する方法
５１０  画像データへアクセスすること
５２０  深度データへアクセスすること
５３０  ジョイントバイラテラルフィルタを適用すること
５４０  ボリュームを初期化すること
５５０  スプラッティング動作
５６０  スライス動作
５７０  補間動作
６００  コンピュータ可読媒体
６１０  命令を表す非一時的データ
【００３５】
図１は、計算的に効率的な様式で画像から深度マップを推定するように構成された集積回路の処理サブシステム１００を概略的に示している。処理サブシステム１００は、機能ブロック図として示されており、マイクロプロセッサ、特定用途向けハードウェア回路、および１つ以上のローカルメモリなどの構成要素によって具現化され得る。集積回路は、他のマイクロプロセッサ、バスシステム、他のメモリなどを含むがこれらに限定されない、図１に示されていない他の構成要素を含み得る。一般に、集積回路は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）またはシステムオンチップ（ＳｏＣ）として、またはその一部として、または他の適切な様式で実現され得る。
【００３６】
処理サブシステム１００は、画像データ入力インターフェース１１０を備えるように示されており、画像データ入力インターフェース１１０を介して、画像データ０１０を、例えばダイレクトメモリアクセス（ＤＭＡ）通信を介して、メモリから読み取ることができる。例えば、画像データは、輝度入力データＹｉｎであってもよい。この点で、画像データ入力インターフェース１１０および処理サブシステム１００の他のインターフェースは、図１全体で「Ｂｕｆ」とラベル付けされた、バッファとして機能するローカルメモリを備えるか、それに接続され得ることに留意されたい。
【００３７】
処理サブシステム１００はさらに、深度ボリュームデータ０２０をメモリから読み取ることができる深度ボリュームデータ入力インターフェース１２０と、深度データ０２２をメモリに書き込むことができる深度データ出力インターフェース１２２とを備えるように示される。処理サブシステム１００はさらに、重みの合計ボリュームデータ０３０および重み付き深度の合計ボリュームデータ０３２をメモリに書き込むためのそれぞれのボリュームデータ出力インターフェース１３０、１３２を備えるように示されている。
【００３８】
処理サブシステム１００の他の機能ブロックは、ボリュームデータ出力インターフェース１３０、１３２と通信するスプラッティングブロック１４０と、深度データインターフェース１２０、１２２と通信する補間ブロック１６０と、画像データ入力インターフェース１１０と通信し、重みおよびボリュームインデックスデータ０５２をスプラッティングブロック１４０および補間ブロック１６０に提供する重み付けブロック１５０と、制御ロジック１８０からテンプレート深度データ０２４を受け取り、重み付けブロック１５０から重みデータ０５４を受け取り、補間テンプレート深度データ０２６をスプラッティングブロック１４０に提供する２Ｄ補間ブロック１７０とを備える。
【００３９】
一実施形態では、図１に示される処理サブシステム１００は、特定用途向けハードウェア回路として実現されてもよい。加えて、別個のマイクロプロセッサ（図１には図示せず）は、先に議論したようにスライス動作を実行するように構成された集積回路内に提供することができる。そのために、マイクロプロセッサは、例えばＤＭＡ経由でメモリにアクセスすることができる。あるいは、特定用途向けハードウェア回路によってスライス動作を実行することもできる。
【００４０】
処理サブシステム１００およびその機能ブロックの動作は、図２−７を参照してさらに説明される。これに関し、図２を参照して説明されるように、図１において「＊」は、ボリュームの多次元データ表現に関連付けられたローカルバッファまたはインターフェースを示していることに留意されたい。
【００４１】
図２は、画像２００とボリューム３００との間の関係を示しており、そのようなタイプのボリュームは、スプラッティング動作中に重みおよび重み付き深度値を蓄積し、補間動作のために画像２００のピクセルの深度値を保持するために使用される。ボリューム３００は、３つの次元を有するように示されている。Ｘ次元３１０は、画像２００の水平軸２１０に対応し得る。Ｙ次元３２０は、画像２００の垂直軸２２０に対応し得る。Ｉ次元３３０は、画像、例えば限定されないが輝度成分などの画像２００の画像成分の範囲次元に対応し得る。ボリューム３００は、画像２００の空間次元および範囲次元に関してサブサンプリングされたサイズを有し得る。例えば、画像２００は、２７０ライン（Ｘ、Ｙ）ごと４８０ピクセルの空間次元、および２５６の値の範囲を定義する８ビットの範囲次元（Ｉ）を有することができ、一方、ボリューム３００は１８ｘ１２ｘ１８（Ｘ、Ｙ、Ｉ）の次元、つまり空間次元３１０、３２０に対する１８ｘ１２（Ｘ、Ｙ）および範囲次元３３０に対する１８（Ｉ）を有し得る。
【００４２】
ボリューム３００のセルはビンを表し得る。スプラッティング動作中、そのようなビンは、画像２００の深度情報の蓄積のための蓄積区間を定義し得る。ここで、特定のピクセルに関連付けられる重みまたは重み付き深度値の蓄積に使用されるビンは、ピクセルの空間座標およびその範囲値に応じて選択される。例えば、暗い画像コンテンツの深度情報は、矢印２６０で示されるようにボリューム３００の「より低い」ビンに蓄積され得るという点で、画像２００の輝度値は、ボリューム３００のＩ次元３３０に沿ったビンの座標を決定することができ、一方、明るい画像コンテンツの深度情報は、矢印２５０で示されるように、ボリューム３００の「より高い」ビンに蓄積され得る。さらに、画像コンテンツの空間的位置は、ボリューム３００の空間次元３１０、３２０に沿ったビンの位置を定義し得る。したがって、画像２００のピクセルの空間座標と範囲値の組み合わせ、すなわち、画像の（少なくとも）３Ｄ座標系におけるピクセルの座標は、ボリューム３００のどのビンにスプラッティング動作中に重みまたは重み付き深度値が蓄積されるか、または、どのビンが補間動作による補間のためにピクセルの深度値を保持するかを、決定することができる。
【００４３】
ビンのこの決定は、本質的に、ピクセルの空間座標と範囲値をボリュームの座標空間の座標にマッピングすることを伴い、ボリューム内の相対位置に基づいてスプラッティングおよび補間中に使用されるビンを識別する。効果的には、スプラッティング中に、スプラッティングフットプリントに基づいてピクセルがどのビンに寄与するかを決定するために、隣接するビンが識別されて（「寄与」は重みまたは重み付き深度値の蓄積である）、補間中に、ボリューム内のピクセルの相対位置に基づいて、どのビン間で補間が実行されるかを決定するために、隣接するビンが識別される。そのために、ピクセルの空間座標と範囲値をボリュームの座標空間の座標にマッピングするマッピング関数が使用され得、その場合、後者の座標は、隣接するビンを直接示す。
【００４４】
サブサンプリングにより、画像２００の複数のピクセルが、それらの深度値が少なくとも部分的に単一のビンに蓄積され得るという点で、ボリューム３００の単一のビンに寄与し得る。逆に、ボリュームの座標系の座標がボリューム３００のいくつかのセルの間にあるため、単一のピクセルがボリューム３００のいくつかのビンに寄与し得る。そのため、ボリューム３００にピクセルの深度値を蓄積するとき、ボリューム３００のいくつかのセルへの寄与を考慮するために、深度値を重み付けする必要があり得る。これは「スプラッティング」とも呼ばれる。
【００４５】
図３Ａは、単一の次元Ｋ４００に沿ったそのようなスプラッティング動作を示す。この次元Ｋは、水平（Ｘ）、垂直（Ｙ）、または輝度（Ｉ）次元であり得る。この説明のために、次元Ｋ４００は、輝度次元Ｉを表すと考えられる。最初に、この次元は、例えば２５６値（８ビット、０から２５５まで）から、幅１６の１６個のビンへ下って、例えば輝度次元Ｉのサブサンプリングによってビン４４０に分割される。それ自体知られているように、各ビンは特定の値または蓄積値の合計を保持することができるストレージ要素である。説明のため、特に図の視認性を向上させるために、図３Ａ以降では、合計で１２個のビン：１０個の「通常」ビン［１］から［１０］、および、２つのいわゆる「エッジビン」［０］ならびに［１１］のみを伴うビニングが示されていることに留意されたい。エッジビン［０］と［１１］の異なるサイズと目的については、図３Ｂをさらに参照して説明する。
【００４６】
以下は、ヒストグラム動作を参照したスプラッティング動作を示している。従来のヒストグラムは、次のように取得し得る：画像の各ピクセルについて、その輝度値がどの単一ビン内に入るかを決定し得る。次いで、そのビンの値は、例えば１だけインクリメントされ得る。その結果、ビンに関連付けられた輝度区間に関する輝度値の相対位置は無関係であり得る。例えば、ビンが［０…７］の蓄積の輝度区間を定義する場合、このビン内に落ちるすべての輝度値は、輝度値がビンの中心内（例えば、輝度値３および４）またはビンのエッジ（例えば、輝度値０および７）に落ちるかどうかに関係なく、同じインクリメント、つまり１のインクリメントを引き起こし得る。
【００４７】
より良い、例えば、より正確なヒストグラム表現を取得するために、スプラッティング技術が使用され得る。すなわち、ビン内の輝度値の相対位置は、重み付けによって考慮され得る。そのようなスプラッティング技術において、「スプラット」であるピクセルの寄与は、輝度次元に沿ったピクセルの座標に、例えば輝度値に、フットプリントを明示的または暗黙的に割り当てることにより決定され得る。スプラッティングによる蓄積は、次のように実行され得る：ピクセルの輝度値について、ピクセルがどの隣接ビンに寄与するかが決定され、「寄与」とは、ビンが少なくとも部分的にピクセルのフットプリント内に落ちることを指す。次いで、隣接するビンの値が、２つのビンに関する輝度値の相対位置に依存するそれぞれの重みによってインクリメントされ得る。例えば、輝度値が「現在の」ビン内の中央に落ちるとき、そのビンへの寄与は「高」であり得るのに対し、「前の」（下の）ビンおよび「次の」（高い）ビンへの寄与は低であり得る。同様に、輝度値が２つのビンの間に落ちるとき、各ビンへの寄与は「高」値の半分になり得る。
【００４８】
前述の位置依存の重み付けは、ビンに対するそのようなフットプリントベースの寄与を具体化し得る。重み付けは特定の区間内のビンへの寄与のみを定義するため、この区間は特定のビンの「蓄積区間」を表すとみなされ得ることに留意されたい。例えば、「現在の」（または「今の」）ビンの蓄積区間は、現在のビンを含むとみなされ、一方、前のビンと次のビンの中間まで延長もされる。したがって、前のビンの半分から開始して、現在のビンへの寄与は、現在のビン内で、中央でゼロから最大までゆっくりと増加し、ついで、次のビンの途中でゆっくりとゼロに減少し得る。
【００４９】
スプラッティング動作を使用した結果、ビンに蓄積された値は、ヒストグラムのより正確な表現を表し得る。
【００５０】
スプラッティング動作の具体的かつ効率的な実現では、フットプリントは、例えば、ビンのサイズに対応するサイズまたはより小さいサイズを有することによって、最大で２つの隣接するビンに寄与すると考えられる。この場合、ピクセルは最大でビン［ｎ］とビン［ｎ＋１］に寄与し、ここでｎはビンインデックスまたはボリュームの座標系の座標である。以下では、第１のビンを「現在の」ビンと呼び、第２のビンを「次の」ビンと呼ぶ。
【００５１】
特に具体的かつ効率的な実現では、現在のビン内のピクセルの寄与が現在のビンと次のビンにのみであるように、ビンの蓄積区間を定義する。しかしながら、この実現は、ビンの半分の「オフセット」を有すると考えられ、ピクセルの寄与がそこにあることは直観的に理解できるであろう。つまり、この特定の実現では、ビンへの最大の寄与はビンの中央で得られず、その最低の境界で得られる。このようにビンを定義する理由は、例えば、重みの計算と記憶、および／またはビンに関する相対位置の計算を検討するときに、スプラッティング動作と補間動作の間でより多くのハードウェアの再利用を可能にするためである。
【００５２】
例として、図３Ａで、ビン［５］の左側の輝度値である輝度値ｐ０の場合を考える。この相対位置は、重み付け関数４３０に従ってビン［５］に「高い」重みを寄与し（最大での／付近での点線）、ビン［６］に「低い」重みを寄与する（ゼロでの／付近での破線）。次に、ビン［５］の中央にある輝度値ｐ１の場合を考える。この相対位置は、ビン［５］および［６］に等しい重み（「高い」重みの半分）を与え得る。最後に、ビン［５］の右側の輝度値ｐ２の場合を考える。この相対位置は、ビン［５］に「低い」重みを、ビン［６］に「高い」重みを寄与し得る。したがって、輝度値の相対位置は重みを決定し得、その重みにより輝度値が現在および次のビンに蓄積される。それにより、図３Ａの例は、輝度値に応じて、ビン［５］への最大寄与からビン［６］への最大寄与までの線形「フェードオーバー」を示している。
【００５３】
現在のビン内の輝度値を有するピクセルが現在のビンおよび次のビンのみに寄与するこの、特定の効率的な実現では、ビン［５］に関連付けられた蓄積区間は、ビン［５］とその前のビンにわたる区間、例えば図３Ａのビン［４］および［５］をカバーする点線に対応する区間であり得ることが理解されるであろう。同様に、ビン［６］に関連付けられた蓄積区間は、ビン［６］とその前のビンにわたる区間、例えば図３Ａのビン［５］と［６］をカバーする破線に対応する区間であり得る。
【００５４】
図３Ｂは、同様の実施形態のより詳細を示すが、それぞれのボリューム、すなわち前述の重み付き深度の合計ボリュームおよび重みの合計ボリュームにおける、重み付き深度値および重みの蓄積に適用される。
【００５５】
この例では、両方のボリュームは、画像のサイズに関係なく１８ｘ１２ｘ１８ビン（Ｘ、Ｙ、Ｉ）の固定最大サイズを有するが、実際のビンの数は変わり得る。すなわち、「サイズビンＫ」パラメータが、スプラッティング動作で使用されて、非エッジビン４４４のサイズを定義し、したがって、使用されるビンの数を決定する。このサイズは、実現の複雑さを低減するために２の累乗であり得る。次元「エッジビンＫ」の端にある２つのビンのサイズは、次元サイズの任意の値を可能にするために変わり得る。図３Ｂは、より下のエッジビン４４２を示している。例えば、画像幅が４８０であり、サイズビンＸが３２になるように選択されている場合、１４個の非エッジビンと、それぞれが（４８０−１４＊３２）／２＝１６の幅を有する２個のエッジビンがあり得る。別の例では、画像の高さが２７０で、サイズビンＹが３２の場合、エッジビンの各々の幅は（２７０−８＊３２）／２＝７になり得る。そのため、エッジビンを使用すると、非エッジビンのサイズを２の累乗に等しくできるため、実現の複雑さが簡素化される。すなわち、固定小数点演算の正規化は、単純なシフト動作で実行することができる。さらに、２つのエッジビン（上端と下端）を使用することは、エッジビンが画像のエッジと一致するため、より良いフィルタ結果をもたらすことが示されている。したがって、意図的に特定のサイズのエッジビンを持つことが望ましい場合がある。例えば、通常の非エッジビンの半分のサイズのエッジビンが好ましい一方で、最小で通常のビンサイズの１／４、最大で通常のビンサイズの３／４であることがわかっている。
【００５６】
図３Ｂは、スプラッティングおよび深度補間の両方に対するビンのアドレス指定および関連する重みの例をさらに示している。理解を容易にするために、図３Ｂは単一の次元のみを示している。この次元は、画像位置のＸ、Ｙ、または範囲次元のいずれかであり得る。具体的には、図３Ｂは、示されたインデックス位置［０］．．．［１２］での深度サンプルの位置４１０を示し、例えば図１のテンプレート深度データ０２４から取得された入力深度マップの線に沿ったサンプルの位置に対応する。各インデックス位置について、対応するスプラット蓄積区間４２０、スプラッティングのための重み関数４３０によって決定される重み、および深度プロファイル補間（図１の参照番号１７０によって示される）、およびビン区間４４０が示されている。図３Ｂは次のように解釈される。所与のインデックス位置、例えばインデックス位置［７］に対して、同じ数字［７］で示される蓄積区間と、蓄積区間［７］と同じ線スタイルで示される対応する重み関数４３０が定義される。重み関数４３０は重み「ｆ」を表し、これは、蓄積区間［７］のエッジからの０から蓄積区間［７］の中心の１まで線形に遷移する。同じ蓄積区間［７］内に重み「１−ｆ」も示されており、これは、蓄積区間［７］の左半分で、半分重なっている蓄積区間［６］の深度サンプル［６］の重みを表し、蓄積区間［７］の右半分で、半分重なっている蓄積区間［８］の深度サンプル［８］の重みを表す。
【００５７】
蓄積区間と重みは、示された次元に沿った所与の位置ｐに対して、ＳＷ［ｘ］＋＝ｆおよびＳＷ［ｘ＋１］＋＝（１−ｆ）に従って、重みの合計ボリュームのビンが蓄積される一方、ＳＷＤ［ｘ］＋＝ｆ＊ｄｐおよびＳＷＤ［ｘ＋１］＋＝（１−ｆ）＊ｄｐに従って重み付き深度の合計ボリュームのビンが蓄積されるように選択されることがわかる。ここで、位置ｐはビンｘを決定し、この例では［６］であり、深度値ｄｐは、ｄｐ＝（１−ｆ）＊Ｄ［ｘ］＋ｆ＊Ｄ［ｘ＋１］に従って深度マップＤから深度プロファイル補間（図１の１７０）によって得られる。これは、単一の次元のみに対するものであり；通常、ビンのアドレス指定は、画像の空間次元Ｘ、Ｙ、および１つ以上の範囲次元Ｉに基づいているため、通常は画像データ自体にも依存することに留意されたい。
【００５８】
重み「ｆ」および「（１−ｆ）」は、正規化された式を使用して固定小数点値として計算できることに留意されたい。例えば、バイナリドットの後の３ビットの場合、８の値は「１」を表し、したがって「ｆ」は［０．．８］の範囲にある。特定の例では、ｄｐ＝（ｆ−１）＊Ｄ［ｘ］＋ｆ＊Ｄ［ｘ＋１］、ここでＤ［ｘ］は２４、Ｄ［ｘ＋１］が８でｆが６である、が計算されると仮定した場合、「ｄｐ」は（（８−６）＊２４＋６＊８）／８＝９６／８＝１２として計算することができる。８による除算は正規化ステップである。この例は、図５のＹ位置１０の表にも示されている。この図および他の図および本文全体で、「ｗｎｙ」および「ｗｐｙ」は、この正規化前の「ｆ」および「（１−ｆ）」の固定小数点値を表す。
【００５９】
特定のおよび効率的な実施形態では、最大重みは、ビンのサイズ、例えば８のビンサイズの８に対応し得る。したがって、輝度値の各ステップは、２つの隣接するビンの各々の重みのステップをもたらす。同様に、（ｘまたはｙ）位置の各ステップは、２つの隣接するビンの各々の重みのステップをもたらす。
【００６０】
図４は、単一の次元に沿って重み付き深度の合計（ＳＷＤ）および重みの合計（ＳＷ）を満たすスプラッティング動作を示している。この例では、垂直Ｙ軸が選択され、ここでビンのサイズは８（「サイズビンＹ」）であり、最初のビンのサイズは４（「エッジビンＹ」）である。「Ｙ位置」は単に行番号である。図４の表は、インデックス１のビンＹのラインに関する補間を示している。「ファクターＹ」は、ビン内のラインの相対位置である。「ファクターＹ」の値に基づいて、２つの重み「ｗｐｙ」と「ｗｎｙ」が導出され、これらは、図３Ｂで説明したように相補的な重み「ｆ」と「１−ｆ」に関するが、今は「次の」ビンについて重み「ｗｎｙ」として表され、「現在の」ビンについて重み「ｗｐｙ」として表され、ここで、「次の」と「現在の」は、２つの連続した空間的に隣接するビンを指す。スプラッティングは本質的にダウンサンプリング機能であり、これにより高解像度入力が低解像度出力に変換される。この例では、ビンＹ番号１内のすべてのラインは入力深度値「２０」を有する。ラインの位置に応じて、重みはビン１からビン２に徐々にシフトする。したがって、ライン番号４（ビン１の最初のライン）では、図４に２つの矢印で示されているように、完全な値がビン１に蓄積され、ビン２に値は追加されない。ライン番号８（ビンの中間）では、値の５０％がビン１に追加され、５０％がビン２に追加される。これにより、ビン間の線形フェードオーバーが実現される。重みを使用し、ＳＷ（重みの合計）ボリュームのセルは適用された重みのみを蓄積するが、ＳＷＤ（重み付き深度の合計）ボリュームのセルは深度値に重みを乗じて蓄積する（「重み付き深度」）。
【００６１】
要約すると、スプラッティング動作は、画像内の各ピクセルについて、画像の座標系、例えば（Ｘ、Ｙ、Ｉ）座標、（Ｘ、Ｙ、Ｒ、Ｇ、Ｂ）座標または（Ｘ、Ｙ、Ｉ、Ｕ、Ｖ）座標のピクセルの座標を決定することを伴う。後者では、（Ｉ、Ｕ、Ｖ）はＹＵＶ信号の成分を指し、ここでＹ（輝度）成分はＹ空間次元と区別するためにＩ（強度）と呼ばれている。次に、重みの合計ボリューム内のどの隣接セルがピクセルに関連付けられた蓄積区間を表すかが決定され得る。ピクセルの深度値は、深度マップが画像よりも低い空間解像度を有する場合は、おそらく補間を使用して、深度マップから取得し得る。隣接するセルの各々について、深度値を重み付けするための重みを取得し得る。重みは、座標によって示されるそれぞれのセルの蓄積区間に関するピクセルの相対位置に基づいて（事前）計算し得る。次いで、深度値は、重みによって重み付けされ、重み付き深度の合計ボリュームのそれぞれのセルに蓄積され、重み自体は、重みの合計ボリュームの対応するセルに蓄積され得る。
【００６２】
単一の次元の場合、線形補間には２つの値が必要であることに留意されたい。同様に、２次元の場合、バイリニア補間には４つの値が必要である。３次元のボリュームの場合、トライリニア補間は８つの値を使用する。重みは、ビン内のサンプルの相対位置に応じて事前に計算された値であり得る。深度マップの画像に関する空間解像度が低減された、特に重み付き深度の合計ボリュームおよび重みの合計ボリュームと同じ低減された空間解像度の場合、深度マップは、スプラッティング動作で使用されるのと同じ重みを使用して、スプラッティング動作の前に画像解像度に補間され得る。これは、図１において、深度テンプレートを画像解像度に補間する２Ｄ補間ブロック１７０に重みデータ０５４を提供する重み付けブロック１５０によって示される。
【００６３】
スプラッティング動作を実行したならば、画像に適合した深度ボリュームを取得するために、スライス動作が実行され得る。このスライス動作は、図１には明示的に示されていないが、例えばＤＭＡ通信を介してメモリにアクセスできるソフトウェアによって構成されたマイクロプロセッサによって実行し得る。スライス動作は、重み付き深度の合計ボリュームの各セルおよび重みの合計ボリュームの対応するセルについて、蓄積された重み付き深度値を蓄積された重みで除算することを含み得る。この除算の結果、各ビンは今や画像に適合された深度値を収容し、こうして全体のボリュームは画像に適合された深度ボリュームを表す。
【００６４】
スライス動作を実行したならば画像内の各ピクセルに対する画像に適合された深度マップの画像に適合された深度値を取得するために、補間動作が実行され得る。この補間動作は、ピクセルの座標に基づく重み付き深度の合計ボリューム内の、ピクセルの蓄積区間を表す前記セルに基づいて、画像に適合された深度ボリューム内の隣接セルを識別すること、および画像に適合された深度ボリュームの隣接セルに補間フィルタを適用することを含んでいてもよく、補間フィルタは、セルの各々について、座標によって示されるそれぞれのセルの蓄積区間に関するピクセルの相対位置に基づいて決定される重みを備える。言い換えると、空間座標と範囲値によって決定されるピクセルの位置は、補間に使用されるビンを決定することができ、一方、ビン内のピクセルの相対位置は、補間の重みを決定することができる。重みは事前に計算される場合がある。特に、重みは、スプラッティング動作で使用されるものと同じ重みであってもよく、および／または重みを格納または計算するために、同じハードウェア回路が使用され得る。
【００６５】
図５は、図４がスプラッティング動作に対して行ったのと同様の様式の補間動作を示している。ここで、重みは、画像に適合された深度ボリュームから出力深度値を補間するために使用される。図５を図４と比較するとわかるように、ビン内の特定の相対位置に同じ重みが使用される。これは、スプラッティングブロック１４０へのものと同じ重みおよびボリュームインデックスデータ０５２を、補間ブロック１６０へ提供する重み付けブロック１５０によって、図１に示されている。表の右側部分は、入力深度値２４および８に重みがどのように適用されるかを示している。例えば、Ｙ位置７の補間では、（（５ｘ２４＋３ｘ８））／８＝１８をもたらす。
【００６６】
図６は、図４と図５で使用されている２つの重み、すなわち、横軸のライン番号Ｙに応じて縦軸の「ｗｐｙ」と「ｗｐｙ」の値をグラフで示している。重み「ｗｐｙ」は「現在の」値に適用され、重み「ｗｎｙ」は「次の」値に適用される。図７は図６に対応するが、図５に示す入力深度値２４と８の間で得られた補間された出力を追加で示している。入力深度値間の線形フェージングを提供するように重みが計算されていることがわかる。線形フェージングに加えて、高次補間関数、例えば、キュービック補間またはスプライン補間も使用することができる。
【００６７】
一般に、説明されたボリュームのＸまたはＹ次元のビンのサイズは、常に２のべき乗であり得、なぜならこの場合、例えば固定小数点トライリニア補間である補間が、正規化のためにシフト動作を使用し得るからであり、これがハードウェアコストの大幅な削減をもたらすことに留意されたい。これが、画像サイズに応じて、必要な可変な数のビンをもたらすという結果となる。ビンのサイズを変更すると、フィルタのパフォーマンスが影響を受ける場合がある。しかしながら、実験は、これが視覚的なパフォーマンスに大きな影響を与えないことが示している。さらに、固定数のビンの代わりに可変な数のビンを使用しても、ハードウェア設計に大きな影響はない。ＸまたはＹ次元のいずれかのビンのサイズはハードウェアパラメータで指定されることができるが、一方で、どの値を選択するかの分析は、例えばマイクロプロセッサのソフトウェアに委ねられる。
【００６８】
一般に、処理サブシステムは、説明された集積回路とは別に、例えば別のタイプのＳｏＣに提供されてもよいことに留意されたい。
【００６９】
データは、処理サブシステムをネットリストおよび／または合成可能なＲＴＬの形で定義するコンピュータ可読媒体で提供され得る。コンピュータ可読媒体、およびそれによりそこに格納されるデータは、一時的または非一時的であり得る。例えば、処理サブシステムは、ＶｅｒｉｌｏｇまたはＶＨＤＬなどのハードウェア記述言語で合成可能なコアとして、または汎用ゲートまたはプロセス固有の標準セルとして実現されたＲＴＣ  ＩＰブロックの論理関数のブール代数表現を提供する汎用ゲートレベルネットリストとして提供され得る。
【００７０】
「マップ」という用語は、行と列に配置されたデータを指す。さらに、形容詞「ディスパリティ」は、カメラに対する画像の部分の深度を示すものとして理解されるべきである。したがって、深度マップは、深度値だけでなく、例えばディスパリティ値または視差シフト値によっても構成され得る。したがって、基本的に、深度マップは視差マップまたは視差シフトマップを構成し得る。ここで、ディスパリティという用語は、ユーザーの左目または右目で知覚されたときのオブジェクトの位置の違いを指す。視差シフトという用語は、ユーザーに前記ディスパリティを提供するための、２つのビュー間のオブジェクトの変位を指す。ディスパリティと視差シフトは、一般に距離または深度と負の相関がある。上記のすべてのタイプのマップおよび／または値の間で変換するためのデバイスおよび方法は知られている。
【００７１】
図８は、画像から深度マップを推定するための、コンピュータにより実行される方法５００を示している。方法５００は、「画像データへアクセスすること」というタイトルの動作で、画像の画像データへアクセスし５１０、「深度データへアクセスすること」というタイトルの動作で、テンプレート深度マップの深度データへアクセスし５２０、「ジョイントバイラテラルフィルタを適用すること」というタイトルの動作で、ジョイントバイラテラルフィルタの範囲項として画像データを使用して、テンプレート深度マップにジョイントバイラテラルフィルタを適用し５３０、それにより画像に適合された深度マップを、出力として取得することを含んで示され、ジョイントバイラテラルフィルタを適用することは、「ボリュームを初期化すること」というタイトルの動作で、重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれのデータが空の構造として初期化し５４０、「スプラッティング動作」というタイトルの動作で、前記のボリュームを満たすためにスプラッティング動作を実行して５５０、「スライス動作」というタイトルの動作で、画像に適合された深度ボリュームを取得するためにスライス動作を実行し５６０、「補間動作」というタイトルの動作で、画像内の各ピクセルについて、画像に適合された深度マップの画像に適合された深度値を取得するために、補間動作を実行する５７０ことを含む。上記の動作は、任意の適切な順序、例えば、連続的、同時に、またはそれらの組み合わせで、適用可能な場合、例えば入出力関係によって必要とされる特定の順序を条件として実行できることに留意されたい。例えば、動作５１０および５２０は、並行してまたは連続して実行され得る。
【００７２】
方法５００は、プロセッサシステム上、例えば、コンピュータにより実行される方法として、専用ハードウェアとして、または両方の組み合わせとして、コンピュータ上で実行され得る。図９にも示されるように、例えば実行可能コードなどのコンピュータに対する命令は、例えば一連の機械可読物理マーク６１０の形で、および／または異なる電気的、例えば磁気的、または光学的特性または値を有する一連の要素として、コンピュータ可読媒体６００に格納されてもよい。実行可能コードは、一時的または非一時的な様式で記憶され得る。コンピュータ可読媒体の例は、メモリデバイス、光学記憶デバイス、集積回路、サーバ、オンラインソフトウェアなどを含む。図９は、光ディスク６００を示す。
【００７３】
上述の実施形態は、本発明を限定するのではなく例示するものであり、当業者は多くの代替実施形態を設計することができることに留意されたい。
【００７４】
請求項では、括弧の間に置かれた参照符号は、請求項を制限するものとして解釈されない。「含む」という動詞とその活用形の使用は、クレームに記載されているもの以外の要素またはステップの存在を排除するものではない。要素に先行する冠詞「１つの（ａ）」または「１つの（ａｎ）」は、複数のそのような要素の存在を排除しない。本発明は、いくつかの別個の要素を含むハードウェアによって、および適切にプログラムされたコンピュータによって実行され得る。いくつかの手段を列挙するデバイスクレームでは、これらの手段のいくつかは、１つのおよびハードウェアの同一のアイテムによって具現化されてもよい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組み合わせが有利に使用できないことを示すものではない。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像から深度マップを推定するように構成され、メモリを備えるかまたはメモリに接続されている、集積回路であって、集積回路は、
−  画像の画像データにアクセスするように構成された画像データインターフェースと、
−  テンプレート深度マップの深度データにアクセスするように構成された深度データインターフェースであって、テンプレート深度マップは、画像データに適合させるテンプレートを表す、深度データインターフェースと、
−  ジョイントバイラテラルフィルタの範囲項として画像データを使用して、ジョイントバイラテラルフィルタをテンプレート深度マップに適用して、画像に適合された深度マップを、出力として取得するように構成された処理サブシステムと
を備え、
処理サブシステムは、
−  重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれの空のデータ構造として初期化することであって、前記ボリュームの各々は、
−  画像データの２つの空間次元のダウンサンプリングされたバージョンを表す、２つの空間次元と、
−  画像データの画像要素の範囲次元のダウンサンプリングされたバージョンを表す、少なくとも１つの範囲次元とを備え、
前記ボリュームのセルは、画像の２つの空間次元および画像データの範囲次元に関して定義される画像の座標系でビンを定義する、初期化することと、
−  前記ボリュームを満たすためにスプラッティング動作を実行することであって、スプラッティング動作は、画像内の各ピクセルに対して、
−  画像の座標系におけるピクセルの座標に基づいて、ピクセルがスプラッティング動作において寄与する重み付き深度の合計ボリューム内の、隣接するビンを識別し、座標は、前記ボリュームの各々のビンに関するピクセルの相対位置を示し、
−  テンプレート深度マップからピクセルの深度値を取得し、
−  隣接するビンの各々に対して、
−  深度値を重み付けするためのスプラッティング重みを取得し、スプラッティング重みは、それぞれのビンへのピクセルの寄与を決定し、それぞれのビンに関するピクセルの相対位置に基づいて決定され、
−  スプラッティング重みによって深度値を重み付けし、
−  重み付き深度の合計ボリュームのそれぞれのビンに重み付き深度値を蓄積し、重みの合計ボリュームの対応するビンにスプラッティング重みを蓄積すること
を含む、スプラッティング動作を実行することと、
−  重み付き深度の合計ボリュームの各ビンと、重みの合計ボリュームの対応するビンとについて、蓄積した重み付き深度値を蓄積した重みで除算することによって、画像に適合された深度ボリュームを取得するためにスライス動作を実行することと、
−  画像内の各ピクセルに対して、画像に適合された深度マップの画像に適合された深度値を取得するために補間動作を実行することであって、補間動作は、
−  画像の座標系内のピクセルの座標に基づき、スプラッティング動作中に重み付き深度の合計ボリュームの対応するビンに寄与するピクセルに基づいて、画像に適合された深度ボリューム内の隣接するビンを識別し、
−  補間フィルタを画像に適合された深度ボリュームの隣接ビンに適用することを含み、補間フィルタは、隣接するビンの各々について、それぞれのビンに関するピクセルの相対位置に基づいて決定される補間重みを備える、補間動作を実行することと
によってジョイントバイラテラルフィルタを実行するように構成される、
集積回路。
【請求項２】
処理サブシステムが、特定用途向けハードウェア回路と、ソフトウェアによって構成可能なマイクロプロセッサとを備え、
−  特定用途向けハードウェア回路が、スプラッティング動作と補間動作を実行するように構成され、
−  マイクロプロセッサが、集積回路の動作中にスライス動作を実行するためにソフトウェアによって構成される、請求項１に記載の集積回路。
【請求項３】
特定用途向けハードウェア回路が、スプラッティング動作で使用されるスプラッティング重みおよび／または補間動作で使用される補間重みを格納するためのフィルタテーブルを備える、請求項２に記載の集積回路。
【請求項４】
フィルタテーブルは、スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが、それぞれの動作を実行する前に、ロードされる、請求項３に記載の集積回路。
【請求項５】
スプラッティング動作で使用されるスプラッティング重みと、補間動作で使用される補間重みとが同じである、請求項１から３のいずれか一項に記載の集積回路。
【請求項６】
スプラッティング動作で使用されるスプラッティング重みおよび補間動作で使用される補間重みが、画像の座標系に関する線形補間を表す、請求項１から５のいずれか一項に記載の集積回路。
【請求項７】
マイクロプロセッサが、集積回路の動作中に、スライス動作を実行する前に、重み付き深度の合計ボリュームに、および重みの合計ボリュームに時間フィルタリングを適用するようにソフトウェアによって構成される、請求項２に従属する、請求項２から６のいずれか一項に記載の集積回路。
【請求項８】
時間フィルタリングが、一次、または、より高次の無限インパルス応答フィルタである、請求項７に記載の集積回路。
【請求項９】
処理サブシステムが、スプラッティング動作を実行した後、重み付き深度の合計ボリュームをガウスカーネルで畳み込むように構成される、請求項１から８のいずれか一項に記載の集積回路。
【請求項１０】
集積回路が、フィールドプログラマブルゲートアレイであるか、またはフィールドプログラマブルゲートアレイの一部である、請求項１から９のいずれか一項に記載の集積回路。
【請求項１１】
集積回路が、システムオンチップであるか、またはシステムオンチップの一部である、請求項１から９のいずれか一項に記載の集積回路。
【請求項１２】
請求項１から１１のいずれか一項に記載の集積回路を備える、デバイス。
【請求項１３】
ディスプレイデバイスまたはセットトップボックスである、請求項１２に記載のデバイス。
【請求項１４】
画像から深度マップを推定するための、コンピュータにより実行される方法であって、
−  画像の画像データへアクセスするステップと、
−  テンプレート深度マップの深度データにアクセスするステップであって、テンプレート深度マップは、画像データに適合させるテンプレートを表す、アクセスするステップと、
−  画像データをジョイントバイラテラルフィルタの範囲項として使用して、テンプレート深度マップにジョイントバイラテラルフィルタを適用して、画像に適合された深度マップを、出力として取得するステップとを含み、
ジョイントバイラテラルフィルタを適用するステップは、
−  重み付き深度の合計ボリュームと重みの合計ボリュームとを、メモリ内のそれぞれの空のデータ構造として初期化するステップであって、前記ボリュームの各々は：
−  画像データの２つの空間次元のダウンサンプリングされたバージョンを表す、２つの空間次元と、
−  画像データの画像要素の範囲次元のダウンサンプリングされたバージョンを表す、少なくとも１つの範囲次元とを備え、
前記ボリュームのセルは、画像の２つの空間次元および画像データの範囲次元に関して定義される画像の座標系でビンを定義する、初期化するステップと、
−  前記ボリュームを満たすためにスプラッティング動作を実行するステップであって、スプラッティング動作は、画像内の各ピクセルに対して、
−  画像の座標系におけるピクセルの座標に基づいて、ピクセルがスプラッティング動作において寄与する重み付き深度の合計ボリューム内の、隣接するビンを識別し、座標は、前記ボリュームの各々のビンに関するピクセルの相対位置を示し、
−  テンプレート深度マップからピクセルの深度値を取得するステップと、
−  隣接するビンの各々に対して、
−  深度値を重み付けするためのスプラッティング重みを取得し、スプラッティング重みは、それぞれのビンへのピクセルの寄与を決定し、それぞれのビンに関するピクセルの相対位置に基づいて決定され、
−  スプラッティング重みによって深度値を重み付けし、
−  重み付き深度の合計ボリュームのそれぞれのビンに重み付き深度値を蓄積し、重みの合計ボリュームの対応するビンにスプラッティング重みを蓄積するステップを含む、スプラッティング動作を実行するステップと、
−  重み付き深度の合計ボリュームの各ビンと、重みの合計ボリュームの対応するビンとについて、蓄積した重み付き深度値を蓄積した重みで除算することによって、画像に適合された深度ボリュームを取得するために、スライス動作を実行するステップと、
−  画像内の各ピクセルに対して、画像に適合された深度マップの画像に適合された深度値を取得するために、補間動作を実行するステップであって、補間動作は、
−  画像の座標系内のピクセルの座標に基づき、スプラッティング動作中に重み付き深度の合計ボリュームの対応するビンに寄与するピクセルに基づいて、画像に適合された深度ボリューム内の隣接するビンを識別し、
−  補間フィルタを画像に適合された深度ボリュームの隣接ビンに適用するステップを含み、補間フィルタは、隣接するビンの各々について、それぞれのビンに関するピクセルの相対位置に基づいて決定される補間重みを備える、補間動作を実行するステップと
を含む、方法。
【請求項１５】
プロセッサシステムに、請求項１４に記載の方法を実行させるように構成された命令を表す一時的または非一時的データを含む、コンピュータ可読媒体。
【国際調査報告】
2020518892.tif 000013
2020518892.tif 000014
2020518892.tif 000015