IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テキサス インスツルメンツ インコーポレイテッドの特許一覧

特許7505157コンピュータビジョンのための適応バイラテラル(BL)フィルタリング
<>
  • 特許-コンピュータビジョンのための適応バイラテラル(BL)フィルタリング 図1
  • 特許-コンピュータビジョンのための適応バイラテラル(BL)フィルタリング 図2A
  • 特許-コンピュータビジョンのための適応バイラテラル(BL)フィルタリング 図2B
  • 特許-コンピュータビジョンのための適応バイラテラル(BL)フィルタリング 図3A
  • 特許-コンピュータビジョンのための適応バイラテラル(BL)フィルタリング 図3B
  • 特許-コンピュータビジョンのための適応バイラテラル(BL)フィルタリング 図3C
  • 特許-コンピュータビジョンのための適応バイラテラル(BL)フィルタリング 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-17
(45)【発行日】2024-06-25
(54)【発明の名称】コンピュータビジョンのための適応バイラテラル(BL)フィルタリング
(51)【国際特許分類】
   G06T 5/70 20240101AFI20240618BHJP
   G06T 5/20 20060101ALI20240618BHJP
【FI】
G06T5/70
G06T5/20
【請求項の数】 18
(21)【出願番号】P 2022106256
(22)【出願日】2022-06-30
(62)【分割の表示】P 2018559679の分割
【原出願日】2017-02-01
(65)【公開番号】P2022130642
(43)【公開日】2022-09-06
【審査請求日】2022-07-29
(31)【優先権主張番号】62/289,706
(32)【優先日】2016-02-01
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/183,459
(32)【優先日】2016-06-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【代理人】
【識別番号】230129078
【弁護士】
【氏名又は名称】佐藤 仁
(72)【発明者】
【氏名】ミヒル ナレンドラ モディ
(72)【発明者】
【氏名】シャシャンク ダブラル
(72)【発明者】
【氏名】ジェシー グレゴリー ジュニア ヴィラレアル
(72)【発明者】
【氏名】ウィリアム ウォーレス
(72)【発明者】
【氏名】ニラジ ナンダン
【審査官】高野 美帆子
(56)【参考文献】
【文献】特開2010-178302(JP,A)
【文献】特開2012-226399(JP,A)
【文献】Memory Optimization of Bilateral Filter and Its Hardware Implementation,IEEE,2014年08月28日,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6884437
(58)【調査した分野】(Int.Cl.,DB名)
G06T 5/70
G06T 5/20
(57)【特許請求の範囲】
【請求項1】
イメージングのためのノイズフィルタリングの方法であって、
複数の画素からの位置とレンジとを含む画像データを含む画像フレームを受信することと、
前記画像フレームを複数のフィルタウィンドウに分割することであって、前記複数のフィルタウィンドウの各々が、中央画素と、第1の画素と第2の画素とを含む複数の他の画素とを含む、前記分割することと、
前記第1の画素に対して処理することを含む、前記複数のフィルタウィンドウの各々を処理することであって、前記第1の画素に対して処理することが、
前記中央画素に対するその距離である空間と、そのレンジと前記中央画素のレンジとの間のレンジ差とを判定することと、
前記空間と前記レンジ差とを用いて、複数の組み合わされた2D重みからの組み合わされた2D重みを選択することであって、前記複数の組み合わされた2D重みの各々が、組み合わされた事前計算された2D重みルックアップテーブル(2D重みLUT)からの前記空間と前記レンジ差との両方に対する重み付けを含み、前記組み合わされた事前計算された2D重みLUTが複数の2D重みサブLUTを含み、前記2D重みサブLUTの各々が、前記レンジと前記空間とに対して複数の異なる標準偏差値を提供する複数の組み合わされた2D重みを有する、前記選択することと、
を含む、前記複数のフィルタウィンドウの各々を処理することと、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記第1の画素に対して処理することが、
前記選択された組み合わされた2D重みを前記第1の画素のレンジに適用することによってフィルタされたレンジ値を計算することと、
前記第1の画素の寄与を判定するために前記フィルタされたレンジ値を加算することと、
を更に含む、方法。
【請求項3】
請求項2に記載の方法であって、
前記複数のフィルタウィンドウの各々を処理することが、少なくとも前記第2の画素に対して、前記判定することと、前記選択することと、前記計算することと、前記加算することとを反復することを含む、方法。
【請求項4】
請求項3に記載の方法であって、
前記複数のフィルタウィンンドウの各々を処理することが、前記中央画素に対する最終的なフィルタされたレンジ値を出力画素として生成するために前記第1の画素と少なくとも前記第2の画素とからの寄与の総和を前記第1の画素と前記第2の画素とからの前記選択された組み合わされた2D重みの和で除算することを更に含む、方法。
【請求項5】
請求項4に記載の方法であって、
先進運転支援システム(ADAS)のために用いられるノイズフィルタされた画像を生成するために前記複数のフィルタウィンドウの各々を処理することからの前記出力画素を用いることを更に含む、方法。
【請求項6】
請求項1に記載の方法であって、
前記2D重みLUTにおける値が前記空間と前記レンジとの少なくとも一方において量子化される、方法。
【請求項7】
請求項6に記載の方法であって、
前記2D重みLUTにおける値が前記空間と前記レンジとの両方において量子化される、方法。
【請求項8】
請求項6に記載の方法であって、
前記レンジに対する一層高い値での一層大きなステップサイズに比して、前記レンジに対する一層低い値での一層細かいステップサイズを含む前記2D重みLUTに対して非線形(NL)LUTを用いることによって前記レンジを量子化するために、非線形補間が用いられる、方法。
【請求項9】
請求項1に記載の方法であって、
前記複数の2D重みサブLUTの1つ(選択された2D重みサブLUT)を選択することと、
前記画像フレームにおける前記複数のフィルタウィンドウの全てにわたる前記処理のために前記選択された2D重みサブLUTを用いることと、
を更に含む、方法。
【請求項10】
請求項1に記載の方法であって、
平均レンジを判定するために前記複数のフィルタウィンドウの各々において平均することと、
前記複数のフィルタウィンドウの前記処理に対して個々に前記複数の2D重みサブLUTの1つを選択するために前記平均レンジを用いることと、
を更に含む、方法。
【請求項11】
画像を処理するためのシステムであって、
プロセッサと、
メモリと、
前記メモリにストアされて前記プロセッサにより実行可能なプログラムであって、複数の画素からの位置とレンジとを含む画像データを含む画像フレームにフィルタリングを実施し、前記画像フレームが複数のフィルタウィンドウを含み、前記複数のフィルタウィンドウの各々が、中央画素と、第1の画素と第2の画素とを含む複数の他の画素とを含み、前記フィルタリングが、前記第1の画素に対して処理することを含む前記複数のフィルタウィンドウの各々を処理することを含み、前記第1の画素に対して処理することが、
前記中央画素に対するその距離である空間と、そのレンジと前記中央画素のレンジとの間のレンジ差とを判定することと、
前記空間と前記レンジ差とを用いて、複数の組み合わされた2D重みから組み合わされた2D重みを選択することであって、前記組み合わされた2D重みの各々が少なくとも1つの組み合わされた事前演算された2D重みルックアップテーブル(2D重みLUT)からの前記空間と前記レンジ差との両方に対する重み付けを含み、前記組み合わされた事前計算された2D重みLUTが複数の2D重みサブLUTを含み、前記2D重みサブLUTの各々が、前記レンジと前記空間とに対して複数の異なる標準偏差値を提供する複数の組み合わされた2D重みを有する、前記選択することと、
を含む、前記プログラムと、
を含む、システム。
【請求項12】
請求項11に記載のシステムであって、
前記第1の画素に対して処理することが、
前記選択された組み合わされた2D重みを前記第1の画素のレンジに適用することによってフィルタされたレンジ値を計算することと、
前記第1の画素の寄与を判定するために前記フィルタされたレンジ値を加算することと、
を更に含む、システム。
【請求項13】
請求項12に記載のシステムであって、
前記複数のフィルタウィンドウの各々を処理することが、少なくとも前記第2の画素に対して、前記判定することと、前記選択することと、前記計算することと、前記加算することとを反復することを含む、システム。
【請求項14】
請求項13に記載のシステムであって、
前記複数のフィルタウィンンドウの各々を処理することが、前記中央画素に対する最終的なフィルタされたレンジ値を出力画素として生成するために前記第1の画素と少なくとも前記第2の画素とからの寄与の和を前記第1の画素と前記第2の画素とからの前記選択された組み合わされた2D重みの和で除算することを更に含む、システム。
【請求項15】
請求項14に記載のシステムであって、
前記フィルタリングが、先進運転支援システム(ADAS)のために用いられるノイズフィルタされた画像を生成するために前記複数のフィルタウィンドウの各々を処理することからの前記出力画素を用いることを更に含む、システム。
【請求項16】
請求項11に記載のシステムであって、
前記2D重みLUTにおける値が、前記空間と前記レンジとの少なくとも一方において量子化される、システム。
【請求項17】
請求項16に記載のシステムであって、
前記2D重みLUTにおける値が、前記空間と前記レンジとの両方において量子化される、システム。
【請求項18】
請求項16に記載のシステムであって、
前記レンジに対して一層高い値での一層大きなステップサイズに比して、前記レンジに対して一層低い値での一層細かいステップサイズを含む前記2D重みLUTに対して非線形(NL)LUTを用いることにより前記レンジを量子化するために、非線形補間が用いられる、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、バイラテラルフィルタリングを用いるデジタル画像の処理に関連する。
【背景技術】
【0002】
画像処理のための一般的な手法は、バイラテラル(BL)フィルタを画像に適用することである。BLフィルタは、画像における近隣画素の空間的近接及び測光類似性に基づいて、その画像における画素のための新しい値を演算するフィルタである。
【0003】
BLフィルタリングは、そのエッジ保存性に起因して、先進運転支援システム(ADAS)のためなど、コンピュータビジョンシステムのための事実上のノイズフィルタリングとなってきている。ADASは、イメージングソースからのデジタル情報を処理するオートモーティブビジョン制御システムにより実装され、イメージングソースには、デジタルカメラ、レーザー、レーダー、並びに、車線逸脱警告、眠気センサ、及び駐車支援などのタスクを実施するためのその他のセンサが含まれる。このようなビジョン制御システムにおいて、ビジョンセンサは、デジタルシグナルプロセッサ(DSP)又はその他のプロセッサなどのプロセッサに結合されるノイズフィルタリングのためのBLフィルタを含む、システムオンチップ(SoC)として具体化され得る。
【0004】
従来のBLフィルタリングは、本願においてこれ以降に示されている既知の標準のBLフィルタ式を用いて本質的にリアルタイム(オンザフライ)のダイレクトフォーミュラ(direct formula)実装を用い、ここで、pは中央画素であり、qは近隣画素である。
ここで、BF[I]は、フィルタされた出力であり、1/Wは、正規化係数であり、Gσ(||p-q||)は、空間(即ち、距離)重みであり、Gσ(|I-I|)は、レンジ(即ち、強度)重みであり、Iは、フィルタリングされている入力画素である。それぞれの重みは、各々、2つのガウス関数の積として計算される。2次元(x,y)では、等方性(即ち、環状に対称的な)ガウス関数が、下記形式を有する。
ここで、σは分布の標準偏差(又は分散)である。
【0005】
複数のレンジ及び距離をサポートするため、上記ダイレクトフォーミュラ毎にシグマ(σ)計算が実施され、ここで、σはボケの量を規定する分散である。適応BLフィルタリングを用いるため、局地σを用いる複合コンテンツ適応(complex content adaption)が概して用いられる。
【発明の概要】
【0006】
記載される例において、イメージングのためノイズをフィルタリングするための方法が、複数のウィンドウ画素を含む位置及びレンジ(強度)値を有する複数の画素からの画像データを含む画像フレームを受け取ることを含む。中央画素と第1の画素及び少なくとも第2の画素を含む複数の他の画素(近隣画素)とを含む複数のフィルタウィンドウに画像フレームを分ける、選択されたフィルタウィンドウサイズに基づいて、複数のフィルタウィンドウが処理される。第1の画素に対し、中央画素に対するその距離である空間、及び第1の画素と中央画素との間のレンジ差が判定される。空間/レンジ差は、空間及びレンジ差の両方に対して重み付けすることを含む、2D重みルックアップテーブル(LUT)にストアされた事前演算された組み合わされた2D重みから、組み合わされた2D重みを選ぶために用いられる。選択された組み合わされた2D重みを第1の画素に適用することにより、フィルタされたレンジ値が計算され、その後、第1の画素の寄与を判定するために、レンジ、フィルタされたレンジ値、及び選択された2D重みが加算される。
【0007】
判定すること、選ぶこと、計算すること、及び加算することは、通常、フィルタウィンドウにおける全ての他の(近隣)画素に対してこれらの工程を完了するために、その後、第2の画素に対して反復される。中央画素に対する最終的なフィルタされたレンジ値を、フィルタされた出力画素として生成するため、第1及び第2の画素(及び通常、フィルタウィンドウにおける全ての他の画素)からの寄与の総和が、これらの画素からの選択された組み合わされた2D重みの和で除算される。この方法は、概して、先進運転支援システム(ADAS)のために用いられ得るノイズフィルタされた画像を生成するため、画像フレームにおける全てのフィルタウィンドウに対して反復される。
【図面の簡単な説明】
【0008】
図1】例示の一実施例に従った、組み合わされた2D重みを有する少なくとも一つの組み合わされた2D重みLUTを含む、例示のBLフィルタのためのパイプラインのブロック図表現である。
【0009】
図2A】例示の実施例に従った、例示の2D重み演算の詳細を示す。
図2B】例示の実施例に従った、例示の2D重み演算の詳細を示す。
【0010】
図3A】例示の実施例に従った、記載される2D重みサブテーブルの例示の仕組みを示す。
図3B】例示の実施例に従った、記載される2D重みサブテーブルの例示の仕組みを示す。
図3C】例示の実施例に従った、記載される2D重みサブテーブルの例示の仕組みを示す。
【0011】
図4】例示の一実施例に従った、少なくとも一つの記載される組み合わされた2D重みLUTを用いて画像をBLフィルタリングするための例示の方法における工程を示すフローチャートである。
【発明を実施するための形態】
【0012】
図面において、同様の参照番号は、同様の又は同等の要素を指すために用いられる。幾つかの例示の動作又は事象は、異なる順で、及び/又は、他の動作又は事象と同時に生じ得る。また、幾つかの例示の動作又は事象は、本記載に従った方法論を実装するために必要とされない場合がある。
【0013】
また、本明細書において用いられる「に結合される」又は「と結合する」という用語(及びそれらに類するもの)は、更なる限定がない場合、間接的又は直接的な電気的接続のいずれかを述べている。そのため、第1のデバイスが第2のデバイスに「結合する」場合、その接続は、その経路に寄生成分のみ存在する直接的電気的接続を介し得、又は他のデバイス又は接続を含む介在要素を介する間接的電気的接続を介し得る。間接的結合では、介在要素は、概して、信号の情報を変更しないが、その電流レベル、電圧レベル、及び/又はパワーレベルを調整し得る。
【0014】
既知のバイラテラル(BL)フィルタリング実装は高い演算複雑性を有し、その結果、回路ハードウェア(HW)フィルタ実装のための大きな半導体(例えば、シリコン)面積、又は、ソフトウェア(アルゴリズム)フィルタ実装のための高い中央処理(CPU)ローディングが必要となる。この非効率性は、それぞれの重みをオンザフライで生成するための複雑な式の結果である。これは、上述のように、重みを生成する式が2つのガウス関数の積に関与する演算を必要とするためである。
【0015】
アルゴリズム又はハードウェア構成の詳細が、少なくとも一つの組み合わされた2D重みLUT(2D重みLUT)を用いるBLフィルタについて本明細書に記載される。ダイレクトBFフィルタ数式(以下に再度記載する)では、
となる。
【0016】
BFはBLフィルタを表し、そのため、BF[I]は、BLフィルタによって出力されるBFフィルタされた画像である。空間は、中央画素までの距離を指し、レンジは、光の振幅/強度を指し、pは中央画素であり、qは近隣画素である。加算の前の第1項1/Wは、正規化(又は重み付け)因子である。加算されるという用語は、フィルタリングされている入力画素であるIで乗算されたレンジ(即ち、強度)重み(Gσ(|I-I|))で乗算された空間(即ち、距離)重み(Gσ(|I-I|)項)を含む。空間重みはGσを含み、これは、フィルタウィンドウにより定義される、考慮されている近隣画素のサイズであるカーネルの空間的広がりであり、レンジ重みはGσを含み、これは、エッジの「最小」振幅である。
【0017】
記載される実施例は、空間重み及びレンジ重みを共に組み合わせて、一つ又は複数の2D重みLUTにストアされた、事前演算された組み合わされた2D重み(W(i,j))(iは空間に対応し、jはレンジに対応する)を提供する。これ以降に更に詳細に記載されるように、2D重みLUTにおける2D重み値は、LUTのサイズ(エントリの数)を低減するために任意選択で量子化され得る。記載される2D重みLUTに対する組み合わされた2D重みを生成することに関し、組み合わされた2D重みは、入力(ガイド)画像に基づいて画像における各中央画素に対して下記の例示の式を用いて演算され得る。
ここで、iは中央画素インデックスであり、jは近隣画素インデックスであり、Iは中央画素入力画像レンジであり、Iは近隣画素入力画像レンジである。
【0018】
例示の実装の詳細がこれ以降に示されている。(i-j)は、5×5(5×5フィルタに対して近隣の画素)に対する3ビットであり、(I-I)は8ビットに量子化された13ビットであり、各2D重みWi,jが、組み合わされた2D重みLUTに入れられる正規化を含む8ビット値として事前演算され、LUT[i][j]:iは、3ビット画素インデックスであり、jは8ビット画像レンジ差である。ルックアップ値は、8ビット、及び、フリップフロップベースの設計などにおいてストアされ得る、総計2D LUTストレージ5×256×8ビット=1280バイトであり得る。これ以降に記載するように、2D LUTサイズは、空間及び/又はレンジデータの対称的性質に基づいて更に低減され得る。この例は、サイズ5×5の近隣の画素を用いるが、記載される実施例は、4×4、7×7、9×9、11×11など、任意のフィルタウィンドウサイズに拡張され得る。
【0019】
上記の式における1/Ki除算では、図1において1/x LUT125としてこれ以降に記載されるLUTを用いることができ、ここで、1/Ki計算は、反復テーブル(reciprocal table)を用いて実施され得る。下記は、反復テーブルのための特定の例示の詳細である。反復テーブルは、読み出し専用メモリ(ROM)に置かれ得(即ち、全ての値がハードワイヤードである)、24ビットがエントリ毎に存在し得る。最初の512エントリは量子化されない可能性があり、残りのエントリが、2つの近隣値のルックアップの間のバイラテラル補間を備える16で量子化され、トータルで993LUTエントリが存在し得る。
【0020】
図1は、例示の一実施例に従った、組み合わされた2D重み(W(i,j)を有する一つ又は複数の記載される2D重みLUT120を含んで示される例示のBLフィルタ100のためのパイプラインのブロック図表現である。上記のように、BLフィルタ100は、ハードウェア(HW)フィルタブロックとして、又は、プロセッサ(例えば、記載されるソフトウェアを実装する中央処理(CPU))により実装され得る。BLフィルタ100は、概してメモリ(例えば、ダブルデータレート同期ダイナミックランダムアクセスメモリ(DDR SDRAM又はオンチップ)から共有メモリ(SL2)に提供されるシーン(入力画像(又はフレーム)を有する複数の画素)から発生される画像データを読み、フィルタウィンドウにおける各中央画素のため最終的なフィルタされたレンジ値を、ノイズが低減されたBLフィルタ出力画素として生成するため、記載されるバイラテラル(2D)フィルタリングを各フィルタウィンドウ(サイズN×M、5×5など)に対して実施する。
【0021】
選択されたフィルタウィンドウサイズにより定義されるN×Mウィンドウ画素が、画素フェッチブロック105により受け取られるように示されている。受信されたN×Mウィンドウ画素は、中央画素と、N×M-1又は図2Aにおいて中央画素215として示される中央画素の周りのその他の画素(又は近隣画素)を定義する。図2Aに示す特定の例において、フィルタウィンドウサイズは5×5であり、そのため、中央画素215のほかの他の(近隣)画素を総計すると24となる。
【0022】
ブロック110として示されるブロックは、画素寄与計算ブロックであり、これは概して、組み合わされた2D重みLUT120から、組み合わされた2D重みを選択するため、それぞれの画素の空間(位置)及びレンジ(強度)データを用いることにより、N×Mフィルタウィンドウにおける各画素に対する画素寄与を計算する。重みルックアップブロック111は、N×M画素を受け取る。重みルックアップブロック111により用いられる2D重みルックアップインデックスストラテジーは、中央画素に対するフィルタウィンドウにおけるそれぞれの画素の空間(位置)、及び中央画素のレンジに比べたその画素のレンジ差に依存する。
【0023】
2D LUT120のサイズは、空間ルックアップ、及び画素ビット幅の任意選択の量子化(ある場合)の量を用いるためのストラテジーに依存する。2D重みLUT120が複数のサブLUTテーブルを含むとき、図1に示すような2つの異なる相互に排他的なサブテーブル選択手法を説明する。各サブLUTテーブルは、レンジσ及び空間σを、単一の(分離可能でない)テーブルに組み合わせることから導出された値を有する。各サブLUTテーブルを生成するときレンジσ(レンジ及び空間σ両方の代わりに)のみを変える場合でも、テーブルは、各サブテーブルに対する空間σを含んでいる。その結果、サブテーブルにおける各パラメータは、空間及びレンジσ両方を含む。
【0024】
本願において適応モード制御と称する第1のサブテーブル選択手法が、画素毎ベースで特定のサブLUTテーブルを選択するための重みルックアップブロック111に適用されるプロセッサ(図示せず)により概して提供される「モード」信号により制御されるように示される。この実施例において、重みルックアップブロック111は、特定のサブLUTを選択するためのインデックスを選ぶために局地平均レンジを計算するため、各フィルタウィンドウにおける他の画素のレンジを平均化する。
【0025】
テーブルIDに対するダイレクトマッピングと称される第2のサブテーブル選択手法が、全フレームにわたる画素処理のため特定のサブLUTを選択するための重みルックアップブロック111に適用されるプロセッサにより概して提供される、図示されている「サブテーブル選択」信号により制御されるように示されている。この実施例では、重みルックアップブロック111は、「サブテーブル選択」信号により特定されるサブLUTにインデックスする。この実施例により、異なる平面(即ち、輝度対クロミナンス)に構成されるべき複数のサブLUT、又は異なるビデオストリーム(異なるカメラソース)が、一度にメモリにロードされ得、各フレームに対してLUTを再ロードする必要なくフレーム毎ベースでサブテーブル選択信号を用いて選択され得る。
【0026】
サブテーブル選択は、処理されている特定のフレームのためにユーザーが用いようとするサブテーブルに対応する。この特徴を下記の特定の例示の状況により説明する。
【0027】
1. 2平面(輝度平面及び彩度平面)を含むビデオを処理する場合、一つの平面のみが、概してノイズフィルタを一度に通過し得る。輝度及び彩度平面は、異なるサブサンプリング及びノイズ特性を有し、そのため、それらは概して異なる2D LUT構成を要する。記載されるサブテーブル選択信号が無い場合、各平面からのデータの処理の合間に2D LUTを再プログラムすることが必要となる。ビデオフィードでは、これはカメラからのフレーム毎に2倍を意味する。2D LUTを再プログラムするには著しい時間量がかかるので、両方の2D LUTを2つのサブLUTテーブルとしてプログラムする構成を用いる方がよい。このようにして、輝度平面を処理するとき、サブテーブル選択信号を単に、サブテーブル=0に対応する「0」にプログラムし、彩度平面を処理するとき、サブテーブル選択信号を「1」に設定し得る。
【0028】
2. 並列の4輝度オンリーカメラ入力に関与するアルゴリズムを処理する場合、一つのカメラ入力のみが、概してノイズフィルタ一度に通過し得る。これらのカメラ入力の各々は異なるノイズ特性を有し得、そのため、それらは異なる2D LUT構成を必要とする。記載されるサブテーブル選択信号が無い場合、各画像の合間で2D LUTを再プログラムすることが必要となる。ビデオフィードでは、これはカメラからのタイムスタンプ毎に4倍(各カメラに対して1つ)を意味する。2D LUTを再プログラムするには著しい時間量がかかるので、両方の2D LUTを4つのサブテーブルとしてプログラムする、記載される構成を用いる方がよい。このようにして、第1のカメラ入力を処理し、サブテーブル選択信号を単に、サブテーブル=0に対応する「0」にプログラムし、次のカメラ入力を処理するとき、サブテーブル選択信号を「1」に、...など、サブテーブル3及びサブテーブル4に対して、設定する。
【0029】
乗算/累積ブロック112は、近隣の各画素を、重みルックアップブロック111により選択された対応する2Dフィルタ重みで乗算すること、及び全ての結果を共に加算することによって、デジタルフィルタリングを実施する。累積ブロック113は、正規化のための効率的なLUTベースの除算のために1/x LUT125として示される反復ルックアップテーブルのインデックスとして用いられるべき、選択された2D重みの和を計算する。
【0030】
除算ブロック115は入力を有して示され、これらの入力は、乗算累積ブロック112の出力、累積ブロック113の出力に、及び1/x LUT125に結合される。除算ブロック115は、1/x LUTルックアップブロック116及び乗算ブロック117を含んで示されており、乗算ブロック117は、フィルタされた出力画素121を生成するように示され、フィルタされた出力画素121は、中央画素値のための正規化されたノイズフィルタされたレンジ値を反映する。1/x LUTルックアップブロック116は、反復値ルックアップであり、ルックアップは、正規化を実装するための除算のため1/x LUT125から値を選択するインデックスとして全ての重みの総和に基づく。その後、乗算ブロック117は、1/x LUTルックアップブロック116が、フィルタの出力を、1/x LUTルックアップブロック116により選択された1/x LUT125の結果で乗算した後、(フィルタ出力)/(重みの和)除算に効率的な方式を実装する。
【0031】
図2A及び図2Bは、LUTエントリの数、及びそのため必要とされる2D重みLUTサイズを低減する、量子化を用いる例示の重み演算の詳細を示す。図2Aは、5の係数による例示の空間(即ち、距離)量子化を示す。5×5フィルタウィンドウ、及びそのため24の他の(近隣)画素が用いられているが、5つの異なる画素位置(距離)のみが中央画素215に関連して示されている。この例では、距離0の画素の数=4、距離1の画素の数=4、距離2の画素の数=4、距離3の画素の数=8、及び距離4の画素の数=4である。
【0032】
図2Aに関連して記載される空間量子化に類似して、レンジ(即ち、強度)値を量子化するために線形補間を用いることができる。例えば、この例では12ビット画素レンジ(強度)値(0~4095)が、線形補間などより、256(8ビット)まで、そのため16分の1に、低減され得る。代替として、非線形(NL)LUTを用いることによりレンジを量子化するために非線形補間を用いることができる。NL LUTは、一層高いレンジ/強度でのステップサイズに比して、一層低いレンジ/強度で一層細かいステップサイズを有する。一層細かいステップサイズは、一層高い強度でのステップサイズ(LUTにおける一層近接しているデータに対応する)に比して、一層低い強度でのLUTにおける一層近接しているデータに対応する。例えば、NL LUTは、一層高い(より感度が低い)強度インタバルで、概してより重要な一層低い強度インタバル及び一層高いステップサイズ、例えば2k、で一層高い精度(例えば、ステップサイズ=32)を維持し得る。
【0033】
図2Bは、外側のフル解像度2D LUTのサイズに比して示される破線の交差内に画定される、例示の量子化された2D重みLUTの寸法を示し、ここで、iは空間(距離)に対し、jはレンジ(強度)に対する。(i-j)は、例示の5×5フィルタウィンドウでは3ビットである。(I-I)は13ビットであり、これは8ビットに量子化される。Wi,j(組み合わされた2D重み)は、図1に示す2D LUT120など、少なくとも一つの2D LUTにストアされた正規化を含む8ビット値として事前演算される。LUT[i][j]:iは、3ビット画素インデックスであり、jは、8ビット画像レンジ(強度)であり、diffルックアップ値は8ビットである。トータルのストレージは、メモリ要素としてフリップフロップを用いるなどの、5×256×8ビット=1280バイトである。そのため、この例で提供されるのは、2D重みLUTサイズにおける(25×4096=102,400バイトであるフル解像度に対して)約80分の一の低減である一方、生成されるシミュレーション画像から評価される画質において明らかにされている同様のフィルタされた画質が得られる。
【0034】
ノイズ及びそのためシグマ(σ)は、レンジ(即ち、強度)及び空間(中央画素からの距離)の本質的に線形な関数である。この課題に対処するため、各々が所与のテーブル内の異なるレベルの少なくともレンジ(強度)をカバーする、複数のサブテーブルが提供され、所与の2D LUTサブテーブルが、平均レンジに基づいて動的に選択される。
【0035】
図3A図3Cは、記載される4つの2D重みLUTサブテーブルを用いる例を説明することによって、記載されるサブテーブルの仕組みを示し、ここで、それぞれのLUTサブテーブルは各々、異なるレベルのレンジ(及びそのため、異なるσ値)をカバーする。図3Aは、量子化を用いてパラメータ1、2、3、及び4に対する個々の2D LUTの、図示される圧縮された2D LUTサブテーブルへの圧縮を示す。この例では量子化は、サイズxの一つのテーブルを、サイズx/4を有する4つのテーブルで置き換える。これは、所与のシグマ(σ)値に対してサイズxの一層大きなテーブルから4番目毎の値を選び出すことを意味する。図3Aに示すようにここで用いられるような各パラメータは、レンジσ及び空間σを反映する。量子化後のパラメータ1、2、3、及び4に対する個々の2D LUTは、図3Aにおいて2D-LUT1、2D-LUT2、2D-LUT3、及び2D-LUT4として示される2D LUTサブテーブルを含む単一の2D重みLUTに圧縮されてこれ以降に示されている。
【0036】
図3Bは、バイラテラルモード、num_サブテーブル=2、及びバイラテラルモード、num_サブテーブル=4を示し、これらは各々、異なるオフセットアドレスレンジに対応する距離0~4として示される、複数の空間(即ち、距離)エントリを有する。図3Bは、本質的に、種々のσ値に対する複数のサブテーブル除算(例えば、図の左側の2サブテーブル構成、及び図の右側の4サブテーブル構成)を示す。この例は、各ローが256エントリを受け取り、サブテーブルが、インターリーブ様式に(例えば、テーブル0[0]、テーブルl[0]、テーブル0[l]、テーブルl[l]など、)インデックスされることを示す。
【0037】
図3Cは、LUTサブテーブル選択のために用いられ得る局地4×4平均化を用いる適応を示す。一例として、図3Cは、中央画素を囲む5×5近隣画素からの頂部左4×4画素を示す。バイラテラルフィルタ近隣画素のサイズ内にある近隣画素を用いることは、局地メモリ内で既に利用可能であるという利点を有する。また、2のべき乗となるように画素の数を選ぶことは、画素の和を単に演算すること、及び除算の代わりに右シフトすることによって、平均を得ることができる(例えば、16画素の平均が、和を4右シフトすることにより与えられ得る)ことを意味する。選ばれた近隣画素の数、及び中央画素からのそれらの距離は、与えられた例に限定されない(即ち、近隣画素は、フル5×5フィルタウィンドウであり得、又は一層小さな又は一層大きなサイズであり得る)。
【0038】
図4は、例示の一実施例に従った、プロセッサによりアクセスされ得るメモリにストアされるBLフィルタアルゴリズムを実装するプロセッサを用いる、又は、少なくとも一つの記載される組み合わされた2D重みLUTを用いる方法を実施するように構成されるBLフィルタハードウェアを用いる、画像BLフィルタリングするための例示の方法400における工程を示すフローチャートである。工程401が、位置及びレンジを含む複数の画素からの画像データを含む画像フレームを受け取ることを含む。
【0039】
工程402が、選択されたフィルタウィンドウサイズに基づいて、フレームをフィルタウィンドウに分けることを含み、フィルタウィンドウの各々が、中央画素と、第1の画素及び第2の画素を含む複数の他の画素(又は近隣画素)とを含む。工程403~407が、第1の画素のための工程403~406を含む複数のフィルタウィンドウの各々を処理することを含み、工程403は、中央画素に対する第1の画素距離である空間、及び、そのレンジと中央画素のレンジとの間のレンジ差を判定する。
【0040】
工程404は、空間及びレンジ差を用いること、及び、複数の組み合わされた2D重みから、選択された組み合わされた2D重み(選択された2D重み)を選ぶことを含み、これは各々、少なくとも一つの組み合わされた事前演算された2D重みルックアップテーブル(2D重みLUT120)からの空間及びレンジ差の両方に対して重み付けすることを含み、そのため、如何なるランタイム重み計算もない。工程405は、選択された2D重みを第1の画素に適用することにより、フィルタされたレンジ値を計算することを含む。工程406は、第1の画素の寄与を判定するため、レンジ、フィルタされたレンジ値、及び選択された2D重みを加算することを含む。工程407は、少なくとも第2の画素に対して、判定すること、選ぶこと、計算すること、及び加算することを反復することを含む。工程408は、中央画素に対する最終的なフィルタされたレンジ値をBLフィルタからの出力画素121として生成するため、第1の画素及び少なくとも第2の画素からの寄与の総和を、第1の画素及び少なくとも第2の画素からの選択された2D重みの和で除算すること(図1の除算ブロック115などを用いて)を含む。複数のフィルタウィンドウの全てに対して処理を反復することからの出力画素は、ADASのためのノイズフィルタされた画像を生成するために用いられ得る。
【0041】
上記したように、2D重みがレンジに対して異なるシグマ(σ)値を提供する2D重みサブLUT実施例では、2D重みを選ぶ前に、この方法は更に、画素毎ベースで特定のサブLUTテーブルを選択するための重みルックアップブロック111に適用されるモード信号により制御される適応モード制御をし得る。この実施例において、重みルックアップブロック111は、サブLUTを選択するためのインデックスを選ぶための局地平均レンジを計算するため、各フィルタウィンドウにおける他の画素のレンジを平均化する。代替として、テーブルIDに対するダイレクトマッピングが、全フレームにわたる画素処理のための特定のサブLUTを選択するための重みルックアップブロック111に印加される「サブテーブル選択」信号によって制御され得る。この実施例では、重みルックアップブロック111は、「サブテーブル選択」信号により特定されるサブLUTにインデックスする。
【0042】
例えば、記載されるアルゴリズム又はHWブロックは更に、画像ピラミッド生成のためのオクターブスケーラとして、一般的な2D FIRフィルタとして、又は畳み込みエンジンとして機能し得る。オクターブフィルタとして用いられる場合、オクターブフィルタは、画素ロードの間(水平方向に)2つスキップすること、(ガウスフィルタ係数で)一般的なフィルタリングをすること、及び、画素ストアのため2つスキップすること(全ライン)などにより実現され得る。
【0043】
本発明の特許請求の範囲内で、説明した例示の実施例に改変が成され得、他の実施例が可能である。
図1
図2A
図2B
図3A
図3B
図3C
図4