JP7387917B2 - コンテンツに基づく画像処理 - Google Patents

コンテンツに基づく画像処理 Download PDF

Info

Publication number
JP7387917B2
JP7387917B2 JP2022562034A JP2022562034A JP7387917B2 JP 7387917 B2 JP7387917 B2 JP 7387917B2 JP 2022562034 A JP2022562034 A JP 2022562034A JP 2022562034 A JP2022562034 A JP 2022562034A JP 7387917 B2 JP7387917 B2 JP 7387917B2
Authority
JP
Japan
Prior art keywords
content
image
pixel
map
value
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.)
Active
Application number
JP2022562034A
Other languages
English (en)
Other versions
JP2023511226A (ja
Inventor
チン イー ホ
ディー アムノン シルヴァースタイン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2023511226A publication Critical patent/JP2023511226A/ja
Priority to JP2023194560A priority Critical patent/JP2024037722A/ja
Application granted granted Critical
Publication of JP7387917B2 publication Critical patent/JP7387917B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • 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/20004Adaptive image processing
    • G06T2207/20012Locally adaptive
    • 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/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • 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/20021Dividing image into blocks, subimages or windows
    • 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/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)

Description

本開示は、画像を処理する回路に関し、より具体的には、画像内のコンテンツに基づいて画像のセグメントを異なって鮮鋭化することに関する。
画像センサによってキャプチャされた又は他のデータソースから受信された画像データは多くの場合、更なる処理又は消費の前に、画像処理パイプラインにおいて処理される。例えば、RAW画像データは、ビデオエンコーダなどの後続の構成要素に提供される前に、補正、フィルタリング、あるいは修正がなされることがある。キャプチャされた画像データの補正又は強調を行うために、様々な構成要素、ユニットステージ、又はモジュールが用いられ得る。
このような画像処理パイプラインは、他のシステムリソースを消費することなく、キャプチャされた画像データに対する補正又は強調を好都合に実行できるように構成され得る。多くの画像処理アルゴリズムは、中央処理装置(Central Processing Unit、CPU)上でソフトウェアプログラムを実行することにより実行し得るが、CPU上のこのようなプログラムの実行は、CPUのバンド幅及び他の周辺装置リソースを著しく消費するとともに電力消費も増大させる。よって、画像処理パイプラインは多くの場合、1つ以上の画像処理アルゴリズムを実行するための専用のものとして、CPUとは別個のハードウェア構成要素として実装される。
画像処理パイプラインは多くの場合、鮮鋭化プロセス又は平滑化プロセスを含む。これらのプロセスは、画像全体にわたって一様に適用される1つ以上の調整パラメータを使用して実施される。このため、画像内のコンテンツの1つ以上のセグメントは、最終画像の外観に悪影響を及ぼすように平滑化又は鮮鋭化されることがある。
同様に、トーンマッピング、ホワイトバランス、及びノイズ低減などの他の画像処理プロセスも通常、画像全体にわたって一様に適用される1つ以上の調整パラメータを使用して実施される。このため、画像内のコンテンツの1つ以上のセグメントは、最終画像の外観に悪影響を及ぼすように処理され得る。
いくつかの実施形態は、画像のセグメント内のコンテンツのカテゴリを識別するコンテンツマップを使用して、コンテンツ係数を決定するコンテンツ画像処理回路を含む画像プロセッサに関する。コンテンツ画像処理回路は、コンテンツ係数回路と、コンテンツ係数回路に結合されたコンテンツ修正回路とを含む。コンテンツ係数回路は、画像内のコンテンツの識別されたカテゴリと、画像内の画素のテクスチャ値又は画像内の画素のクロマ値の少なくとも1つとに従って、画像の画素に関連付けられたコンテンツ係数を決定する。テクスチャ値は、画像内のテクスチャに基づく、画素に関連付けられたコンテンツのカテゴリの尤度を示す。クロマ値は、画像の色情報に基づく、画素に関連付けられたコンテンツのカテゴリの尤度を示す。コンテンツ修正回路は、コンテンツ係数回路からコンテンツ係数を受信する。コンテンツ修正回路は、少なくともコンテンツ係数を画素の輝度画素値のバージョンに適用することにより、画素の輝度画素値の鮮鋭化済みバージョンを生成する。
いくつかの実施形態では、コンテンツマップは、コンテンツマップを生成するために画像のバージョンに対して機械学習演算を実行するニューラルプロセッサ回路によって生成される。
いくつかの実施形態では、コンテンツマップは、画像に対してダウンスケーリングされる。コンテンツ係数回路は、コンテンツマップをアップサンプリングすることによりコンテンツ係数を決定し得る。コンテンツマップは、(1)コンテンツマップ内の格子点に関連付けられたコンテンツ係数を取得することと、(2)コンテンツマップが画像のサイズに一致するまで拡大されたとき、画素を取り囲む格子点に関連付けられたコンテンツ係数を補間することとによって、アップサンプリングされ得る。
いくつかの実施形態では、コンテンツ係数は、尤度値に従って重み付けされる。尤度値は、画像内のコンテンツの識別されたカテゴリ、テクスチャ値、及びクロマ値のうちの1つに基づく。
いくつかの実施形態では、画像の輝度バージョンは、第1の情報と、第1の成分の周波数成分よりも低い周波数成分を含む第2の情報とに分割されたとき、輝度画素値は画像の第1の情報に含まれる。
いくつかの実施形態では、画像プロセッサは、コンテンツ画像処理回路に結合されたバイラテラルフィルタを含む。バイラテラルフィルタは、輝度画素値のバージョンを生成する。
いくつかの実施形態では、コンテンツ修正回路は、コンテンツ係数が閾値を上回るとき、コンテンツ係数を輝度画素値のバージョンと乗算することにより、コンテンツ係数を輝度画素値のバージョンに適用する。コンテンツ修正回路は、コンテンツ係数が閾値未満であることに応じて、コンテンツ係数に基づいて輝度画素値のバージョンをブレンディングすることにより、コンテンツ係数を輝度画素値のバージョンに適用する。
いくつかの実施形態では、コンテンツマップは、コンテンツマップ内の格子点に対応する画像の画素に適用される鮮鋭化の量を示すヒートマップである。
一実施形態に係る、電子デバイスの概要図である。 一実施形態に係る、電子デバイスの構成要素を示すブロック図である。 一実施形態に係る、画像信号プロセッサを用いて実装される画像処理パイプラインを示すブロック図である。 一実施形態に係る、多重バンドノイズ低減回路を含む画像処理パイプラインの一部分を示すブロック図である。 一実施形態に係る、画像信号プロセッサにコンテンツマップを提供するニューラルプロセッサ回路を示すブロック図である。 一実施形態に係る、ニューラルプロセッサ回路の例示的な入力画像である。 一実施形態に係る、図6Aの入力画像に基づくコンテンツマップである。 一実施形態に係る、第1のコントラスト強調ステージ回路の構成要素を示すブロック図である。 一実施形態に係る、コンテンツ画像処理回路の構成要素を示すブロック図である。 一実施形態に係る、テクスチャモデルを示すプロットである。 一実施形態に係る、クロマモデルを示すプロットである。 一実施形態に係る、コンテンツマップをアップサンプリングする方法を示す図である。 一実施形態に係る、画像のセグメント内のコンテンツに基づいて画像の1つ以上の画素を鮮鋭化する方法を示すフローチャートである。
種々の非限定的な実施形態を単に例示を目的として、図で示し、詳細な説明において説明する。
ここで、添付図面に実施例が示される実施形態への詳細な参照が行われる。以下の詳細な説明では、説明される様々な実施形態の完全な理解を提供するために数多くの具体的な詳細が記載されている。しかし、説明する実施形態は、これらの具体的な詳細なしに実施され得る。他の例では、周知の方法、手順、構成要素、回路、及びネットワークは、実施形態の態様を不必要に不明瞭にしないよう詳細には説明されていない。
本開示の実施形態は、コンテンツマップによって示されるセグメント内のコンテンツに基づいて画像のセグメントを鮮鋭化することに関する。画像の画素又はセグメントに対するコンテンツ係数は、画素又はセグメントに関連付けられたコンテンツの識別されたカテゴリのうちの1つ以上に基づいて決定される。コンテンツ係数はまた、テクスチャ値のセット及び/又はクロマ値のセットに基づいて調整され得る。テクスチャ値は、コンテンツの識別されたカテゴリのうちの1つの尤度を示し、画像内のテクスチャに基づく。クロマ値は、コンテンツの識別されたカテゴリのうちの1つの尤度を示し、画像の色情報に基づく。コンテンツ係数は、画素又はセグメントに適用され、輝度値の鮮鋭化済みバージョンを生成する。
例示的な電子デバイス
電子デバイス、このようなデバイス用のユーザインターフェース、及びこのようなデバイスの使用に関連するプロセスの実施形態が説明される。いくつかの実施形態では、デバイスは、パーソナルデジタルアシスタント(PDA)機能及び/又は音楽プレーヤ機能などの他の機能も含む、携帯電話などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態としては、カリフォルニア州クパチーノのApple Inc.からのiPhone(登録商標)、iPod Touch(登録商標)、Apple Watch(登録商標)、及びiPad(登録商標)のデバイスが挙げられるが、これらに限定されない。ウェアラブル、ラップトップ、又はタブレットコンピュータなどの他のポータブル電子デバイスは、任意選択的に使用される。いくつかの実施形態では、デバイスは、ポータブル通信デバイスではないが、ポータブル使用のために設計されていないデスクトップコンピュータ又は他のコンピューティングデバイスである。いくつかの実施形態では、開示されている電子デバイスは、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を含み得る。図1に関連して以下に説明する例示的な電子デバイス(例えば、デバイス100)は、ユーザ入力を受け取るためのタッチ感知面を含み得る。電子デバイスは、物理キーボード、マウス、及び/又はジョイスティックなどの、1つ以上の他の物理ユーザインターフェースデバイスも含み得る。
図1は、一実施形態に係る、電子デバイス100の概要図である。デバイス100は、「ホーム」ボタン又はメニューボタン104などの、1つ以上の物理ボタンを含み得る。メニューボタン104は、例えば、デバイス100上で実行されるアプリケーションのセット内の任意のアプリケーションへナビゲートするために使用される。いくつかの実施形態では、メニューボタン104は、メニューボタン104上の指紋を識別する指紋センサを含む。指紋センサを使用して、メニューボタン104上の指が、デバイス100をロック解除するために記憶された指紋と一致する指紋を有するかを判定し得る。あるいは、いくつかの実施形態では、メニューボタン104は、タッチスクリーン上に表示されるグラフィカルユーザインターフェース(Graphical User Interface、GUI)内のソフトキーとして実装される。
いくつかの実施形態では、デバイス100は、タッチスクリーン150、メニューボタン104、デバイスの電源をオン/オフし、デバイスをロックするためのプッシュボタン106、音量調整ボタン108、加入者識別モジュール(Subscriber Identity Module、SIM)カードスロット110、ヘッドセットジャック112、及びドッキング/充電用外部ポート124を含む。プッシュボタン106は、ボタンを押下して押下状態を既定の時間間隔保ち続けることにより、デバイスの電源をオン/オフし、ボタンを押下して既定の時間間隔が経過する前にボタンを放すことにより、デバイスをロックし、及び/又はデバイスをロック解除し若しくはロック解除処理を開始するために、用いられ得る。代替の実施形態では、デバイス100は、マイクロフォン113を介して、いくつかの機能をアクティブ化又は非アクティブ化するための口頭入力もまた受け入れる。デバイス100は、メモリ(1つ以上のコンピュータ可読記憶媒体を含むことができる)、メモリコントローラ、1つ以上の中央処理装置(CPU)、周辺機器インターフェース、RF回路、オーディオ回路、スピーカ111、マイクロフォン113、入出力(Input/Output、I/O)サブシステム、及び他の入力又は制御デバイスを含むがこれらに限定されない、様々な構成要素を含む。デバイス100は、1つ以上の画像センサ164と、1つ以上の近接センサ166と、1つ以上の加速度計168とを含むことができる。デバイス100は、2つ以上の種類の画像センサ164を含み得る。各種類は、2つ以上の画像センサ164を含んでもよい。例えば、1つの種類の画像センサ164はカメラであり得、別の種類の画像センサ164は、顔認識のために使用され得る赤外線センサであり得る。追加又は代替として、画像センサ164は、異なるレンズ構成に関連付けられ得る。例えば、デバイス100は、一方が広角レンズを有し、他方が望遠レンズを有する後方画像センサを含んでもよい。デバイス100は、環境光センサ、ドットプロジェクタ、及び投光イルミネータなど、図1に示されていない構成要素を含み得る。
デバイス100は、電子デバイスの単なる一例に過ぎず、デバイス100は、上記に列挙したものより多い又は少ない構成要素を有し得、それらの構成要素の一部は、1つの構成要素として組み合わせられるか、又は別の構成若しくは配置を有し得る。上記に列挙したデバイス100の様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路(Application Specific Integrated circuit、ASIC)を含む、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせで具現化される。図1の構成要素は概して、タッチスクリーン150と同じ側に位置するものとして示されているが、1つ以上の構成要素は、デバイス100の反対側に位置してもよい。例えば、デバイス100の前面は、顔認識のための赤外線画像センサ164と、デバイス100の前面カメラとしての別の画像センサ164とを含み得る。デバイス100の背面はまた、デバイス100の後方カメラとして追加の2つの画像センサ164を含み得る。
図2は、一実施形態に係る、デバイス100の構成要素を示すブロック図である。デバイス100は、画像処理を含む様々な演算を実行し得る。この目的及び他の目的のために、デバイス100は、他の構成要素の中でもとりわけ、画像センサ202、システムオンチップ(System-ON-a Chip、SOC)構成要素204、システムメモリ230、永続ストレージ(例えば、フラッシュメモリ)228、方位センサ234、及びディスプレイ216を含むことができる。図2に示すような構成要素は、単なる例示に過ぎない。例えば、デバイス100は、図2に示されていない他の構成要素(スピーカ又はマイクロフォンなど)を含んでもよい。更に、いくつかの構成要素(方位センサ234など)は、デバイス100から省略され得る。
画像センサ202は、画像データをキャプチャするための構成要素である。画像センサ202の各々は、画像データをキャプチャするための構成要素であり、例えば、相補型金属酸化膜半導体(Complementary Metal-Oxide-Semiconductor、CMOS)アクティブ画素センサ、カメラ、ビデオカメラ、又は他のデバイスとして具現化され得る。画像センサ202は、更なる処理のためにSOC構成要素204に送信されるRAW画像データを生成する。いくつかの実施形態では、SOC構成要素204によって処理された画像データは、ディスプレイ216上に表示され、システムメモリ230、永続ストレージ228に記憶され、又は、ネットワーク接続を介してリモートコンピューティングデバイスに送信される。画像センサ202によって生成されるRAW画像データは、ベイヤカラーフィルタ配列(Color Filter Array、CFA)パターン(以降、「ベイヤパターン」とも呼ばれる)とすることができる。画像センサ202はまた、画像感知構成要素(例えば、画素)が画像をキャプチャするのを支援する光学的構成要素及び機械的構成要素を含み得る。光学的構成要素及び機械的構成要素は、絞り、レンズシステム、及び画像センサ202の焦点距離を制御するアクチュエータを含み得る。
動きセンサ234は、デバイス100の動きを感知するための構成要素又は構成要素のセットである。動きセンサ234は、デバイス100の方位及び/又は加速度を示すセンサ信号を生成し得る。センサ信号は、デバイス100をオンにする、又はディスプレイ216上に表示された画像を回転させるなどの、様々な演算のためにSOC構成要素204に送信される。
ディスプレイ216は、SOC構成要素204によって生成される画像を表示するための構成要素である。ディスプレイ216は、例えば、液晶ディスプレイ(Liquid Crystal Display、LCD)デバイス又は有機発光ダイオード(Organic Light Emitting Diode、OLED)デバイスを含み得る。SOC構成要素204から受信したデータに基づいて、ディスプレイ116は、メニュー、選択された動作パラメータ、画像センサ202によってキャプチャされSOC構成要素204によって処理された画像、及び/又はデバイス100のユーザインターフェース(図示せず)から受信した他の情報などの、様々な画像を表示し得る。
システムメモリ230は、SOC構成要素204によって実行するための命令、及びSOC構成要素204によって処理されたデータを記憶するための構成要素である。システムメモリ230は、例えば、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)、シンクロナスDRAM(Synchronous DRAM、SDRAM)、ダブルデータレート(Double Data Rate、DDR、DDR2、DDR3など)RAMBUS DRAM(RDRAM)、スタティックRAM(Static RAM、SRAM)、又はそれらの組み合わせを含む、任意の種類のメモリとして具現化され得る。いくつかの実施形態では、システムメモリ230は、画素データ若しくは他の画像データ、又は統計データを様々なフォーマットで記憶し得る。
永続ストレージ228は、データを不揮発的に記憶するための構成要素である。永続ストレージ228は、電源がなくてもデータを保持する。永続ストレージ228は、読み出し専用メモリ(Read-Only Memory、ROM)、フラッシュメモリ、又は他の不揮発性ランダムアクセスメモリデバイスとして具現化され得る。永続ストレージ228は、デバイス100のオペレーティングシステム及び様々なソフトウェアアプリケーションを記憶する。永続ストレージ228はまた、回帰モデル、ランダムフォレストモデル、カーネルSVMなどのサポートベクターマシン(Support Vector Machine、SVM)や、畳み込みネットワークネットワーク(convolutional neural networks、CNN)、再帰型ニューラルネットワーク(recurrent neural network、RNN)、オートエンコーダ、及び長・短期記憶(Long Short Term Memory、LSTM)などの人工ニューラルネットワーク(Artificial Neural Network、ANN)などの1つ以上の機械学習モデルを記憶し得る。機械学習モデルは、ニューラルプロセッサ回路218及びデバイス100の様々なソフトウェアアプリケーション又はセンサとともに作動する独立モデルであり得る。機械学習モデルは、ソフトウェアアプリケーションの一部であってもよい。機械学習モデルは、顔認識、画像分類、オブジェクト分類、概念分類、及び情報分類、発話認識、機械翻訳、音声認識、音声コマンド認識、テキスト認識、テキスト及びコンテキスト分析、他の自然言語の処理、予測や推奨などの様々なタスクを実行し得る。
デバイス100に記憶された様々な機械学習モデルは、デバイス100が使用されるときにデバイス100が機械学習モデルを強化するか又はトレーニングし続けることを可能にするように、完全にトレーニングされてもよく、トレーニングされなくてもよく、又は部分的にトレーニングされてもよい。機械学習モデルの演算には、モデルをトレーニングする際に使用される様々な計算と、モデルを使用して実行時に結果を決定することとを含む。例えば、ある場合では、デバイス100は、ユーザの顔画像をキャプチャし、デバイス100をロック又はロック解除するために使用される機械学習モデルを改善し続けるために画像を使用する。
SOC構成要素204は、1つ以上の集積回路(Integrated Circuit、IC)チップとして具現化され、様々なデータ処理プロセスを実行する。SOC構成要素204は、他の副構成要素の中でもとりわけ、画像信号プロセッサ(Image Signal Processor、ISP)206、中央処理装置(Central Processor Unit、CPU)208、ネットワークインターフェース210、動きセンサインターフェース212、ディスプレイコントローラ214、グラフィックプロセッサユニット(Graphics Processor、GPU)220、メモリコントローラ222、ビデオエンコーダ224、ストレージコントローラ226、ニューラルプロセッサ回路218、及びこれらの副構成要素を接続するバス232を含むことができる。SOC構成要素204は、図2に示される副構成要素よりも多い又は少ない副構成要素を含んでもよい。
ISP206は、画像処理パイプラインの様々なステージを実行する回路である。いくつかの実施形態では、ISP206は、画像センサ202からRAW画像データを受信し、そのRAW画像データをSOC構成要素204の他の副構成要素又はデバイス100の構成要素によって使用可能な形態に処理し得る。ISP206は、図3を参照して以下に詳細に説明するように、画像変換演算、水平スケーリング及び垂直スケーリング、色空間変換、並びに/又は画像安定化変換などの、様々な画像操作演算を実行し得る。
CPU208は、任意の好適な命令セットアーキテクチャを使用して具現化してもよく、その命令セットアーキテクチャで定義された命令を実行するように構成されてもよい。CPU208は、x86、PowerPC、SPARC、RISC、ARM、若しくはMIPS命令セットアーキテクチャ(Instruction Set Architectures、ISA)、又は任意の他の好適なISAなどの様々なISAのいずれかを使用する汎用プロセッサ又は組み込み型プロセッサであってもよい。単一のCPUを図2に示すが、SOC構成要素204は、複数のCPUを含み得る。マルチプロセッサシステムでは、必ずしもそうとは限らないが、CPUの各々は通常、同一のISAを共通して実装してもよい。
グラフィック処理ユニット(Graphics Processing Unit、GPU)220は、グラフィックデータに対して演算を実行するためのグラフィック処理回路である。例えば、GPU220は、フレームバッファに表示されることになるオブジェクト(例えば、フレーム全体に対して画素データを含むもの)をレンダリングし得る。GPU220は、グラフィック演算の一部又は全てを実行するように、グラフィックソフトウェア又は特定のグラフィック演算のハードウェア高速化を実行し得る1つ以上のグラフィックプロセッサを含んでもよい。
ニューラルプロセッサ回路218は、ニューラルプロセッサ回路218の入力データに対して機械学習演算を実行するプログラム可能な回路である。機械学習演算は、機械学習モデルをトレーニングするための、及びトレーニングされた機械学習モデルに基づいて推定又は予測を実行するための異なる計算を含み得る。ニューラルプロセッサ回路218は、乗算、加算、及び累算を含む計算に基づいて、様々な機械学習演算を実行する回路である。このような計算は、例えば、入力データ及びカーネルデータのテンソル積及び畳み込みなどの様々な種類のテンソル乗算を実行するように編成され得る。ニューラルプロセッサ回路218は、ニューラルネットワーク演算に関連するリソース集約的な演算からCPU208を解放しつつ、これらの演算を高速かつ電力的に効率的に実行する構成可能回路である。ニューラルプロセッサ回路218は、センサインターフェース212、画像信号プロセッサ206、永続ストレージ228、システムメモリ230、又はネットワークインターフェース210若しくはGPU220などの他のソースから入力データを受信し得る。ニューラルプロセッサ回路218の出力は、様々な演算のために、画像信号プロセッサ206、システムメモリ230、又はCPU208などのデバイス100の様々な構成要素に提供され得る。
ネットワークインターフェース210は、1つ以上のネットワークを介してデータをデバイス100と他のデバイス(例えば、キャリアデバイス又はエージェントデバイス)との間で交換することを可能にする副構成要素である。例えば、ビデオ又は他の画像データは、ネットワークインターフェース210を介して他のデバイスから受信され、後続の処理及び表示のために(例えば、図3に関して後述するような画像信号プロセッサ206へのバックエンドインターフェースを介して)システムメモリ230に記憶され得る。ネットワークは、ローカルエリアネットワーク(Local Area Network、LAN)(例えば、イーサネット又は企業ネットワーク)及びワイドエリアネットワーク(Wide Area Network、WAN)を含み得るが、これらに限定されない。ネットワークインターフェース210を介して受信した画像データは、ISP206による画像処理プロセスにかけられ得る。
動きセンサインターフェース212は、動きセンサ234とインターフェースするための回路である。動きセンサインターフェース212は、動きセンサ234からセンサ情報を受信し、このセンサ情報を処理して、デバイス100の方位又は動きを判定する。
ディスプレイコントローラ214は、ディスプレイ216上に表示されることになる画像データを送信するための回路である。ディスプレイコントローラ214は、ISP206、CPU208、グラフィックプロセッサ、又はシステムメモリ230から画像データを受信し、ディスプレイ216上に表示するために好適なフォーマットに画像データを処理する。
メモリコントローラ222は、システムメモリ230と通信するための回路である。メモリコントローラ222は、SOC構成要素204のISP206、CPU208、GPU220、又はデータをシステムメモリ230から読み出して他の副構成要素に処理させることができる。メモリコントローラ222はまた、SOC構成要素204の様々な副構成要素から受信したデータをシステムメモリ230に書き込み得る。
ビデオエンコーダ224は、ビデオデータを永続ストレージ128に記憶するために好適なフォーマットにエンコードするための、又はネットワークを介した別のデバイスへの伝送のためにデータをネットワークインターフェース210に渡すハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせである。
いくつかの実施形態では、SOC構成要素204の1つ以上の副構成要素又はこれらの副構成要素のいくつかの機能性は、ニューラルプロセッサ回路218、ISP206、CPU208、又はGPU220上で実行されるソフトウェア構成要素によって実行され得る。このようなソフトウェア構成要素は、システムメモリ230、永続ストレージ228、又はネットワークインターフェース210を介してデバイス100と通信する別のデバイスに記憶され得る。
画像データ又はビデオデータは、SOC構成要素204内の様々なデータ経路を介して流れることができる。一実施例では、RAW画像データは、画像センサ202から生成され、ISP206によって処理され、次に、バス232及びメモリコントローラ222を介してシステムメモリ230に送信され得る。画像データがシステムメモリ230に記憶された後で、画像データは、エンコードするためにビデオエンコーダ224によって、又は表示するためにディスプレイ116によって、バス232を介してアクセスされ得る。
別の実施例では、画像データは、画像センサ202以外のソースから受信される。例えば、ビデオデータは、ワイヤド又はワイヤレスネットワークを介してSOC構成要素204に、ストリーミングされるか、ダウンロードされるか、あるいは通信され得る。画像データは、ネットワークインターフェース210を介して受信され、メモリコントローラ222を介してシステムメモリ230に書き込まれ得る。次に、画像データは、図3を参照して以下に詳細に説明するように、ISP206によってシステムメモリ230から取得され、1つ以上の画像処理パイプラインステージを介して処理され得る。次に、画像データは、システムメモリ230に戻され、又は、ビデオエンコーダ224、ディスプレイコントローラ214(ディスプレイ216上に表示するために)、若しくは永続ストレージ228に記憶するためにストレージコントローラ226に送信され得る。
例示的な画像信号処理パイプライン
図3は、一実施形態に係る、ISP206を用いて実施される画像処理パイプラインを示すブロック図である。図3の実施形態では、ISP206は、RAW画像データを受信するために、1つ以上の画像センサ202A~202N(以下、まとめて「画像センサ202」と呼ぶか、又は個別に「画像センサ202」とも呼ぶ)を含む画像センサシステム201に結合される。画像センサシステム201は、画像センサ202を個別に制御する1つ以上のサブシステムを含み得る。場合によっては、各画像センサ202は独立して動作することができ、他の場合では、画像センサ202は、いくつかの構成要素を共有することができる。例えば、一実施形態では、2つ以上の画像センサ202は、画像センサの機械的構成要素(例えば、各画像センサの焦点距離を変化させるアクチュエータ)を制御する同じ回路基板を共有してもよい。画像センサ202の画像感知構成要素は、ISP206に異なる形態でRAW画像データを提供し得る異なる種類の画像感知構成要素を含み得る。例えば、一実施形態では、画像感知構成要素は、自動焦点合わせのために使用される複数の焦点画素と、画像をキャプチャするために使用される複数の画像画素とを含み得る。別の実施形態では、画像感知画素は、自動焦点合わせの目的と画像キャプチャの目的の両方に使用されてもよい。
ISP206は、作成、キャプチャ又は受信から出力まで画像情報を処理するステージのセットを含み得る画像処理パイプラインを実施する。ISP206は、他の構成要素の中でもとりわけ、センサインターフェース302、中央制御モジュール320、フロントエンドパイプラインステージ330、バックエンドパイプラインステージ340、画像統計モジュール304、スケーラ322、バックエンドインターフェース342、出力インターフェース316、及び自動焦点合わせ回路350A~350N(以下、まとめて「自動焦点合わせ回路350」と呼ぶか、又は個別に「自動焦点合わせ回路350」と呼ぶ)を含み得る。ISP206は、図3に示されていない他の構成要素を含むことができ、又は、図3に示す1つ以上の構成要素を省略することができる。
1つ以上の実施形態では、ISP206の異なる構成要素は、画像データを異なるレートで処理する。図3の実施形態では、フロントエンドパイプラインステージ330(例えば、RAW処理ステージ306及びリサンプリング処理ステージ308)は、画像データを初期レートで処理することができる。したがって、様々な異なる技法、調整、修正、又は他の処理演算は、これらのフロントエンドパイプラインステージ330によって初期レートで実行される。例えば、フロントエンドパイプラインステージ330がクロックサイクルごとに2つの画素を処理する場合、RAW処理ステージ306の演算(例えば、ブラックレベル補償、ハイライトリカバリ、及び不良画素補正)は、画像データの2つの画素を同時に処理し得る。対照的に、1つ以上のバックエンドパイプラインステージ340は、画像データを初期データレート未満の異なる速度で処理することができる。例えば、図3の実施形態では、バックエンドパイプラインステージ340(例えば、ノイズ処理ステージ310、カラー処理ステージ312、及び出力リスケーリングモジュール314)は、低減したレート(例えば、クロックサイクルごとに1画素)で処理され得る。
画像センサ202によってキャプチャされたRAW画像データは、異なる方法でISP206の異なる構成要素に送信され得る。一実施形態では、焦点画素に対応するRAW画像データは、自動焦点合わせ回路350に送信され得、一方、画像画素に対応するRAW画像データは、センサインターフェース302に送信され得る。別の実施形態では、両方の種類の画素に対応するRAW画像データは、自動焦点合わせ回路350とセンサインターフェース302の両方に同時に送信され得る。
自動焦点合わせ回路350は、各画像センサ202の適切な焦点距離を決定するためにRAW画像データを分析するハードウェア回路を含み得る。一実施形態では、RAW画像データは、画像合焦に特化した画像感知画素から送信されてくるデータを含み得る。別の実施形態では、画像キャプチャ画素からのRAW画像データもまた、自動焦点合わせの目的のために使用され得る。自動焦点合わせ回路350は、適切な焦点距離を決定するデータを生成するために様々な画像処理演算を実行し得る。画像処理演算は、自動焦点合わせの目的に使用されるデータを生成するためのクロッピング、ビニング、画像補償、スケーリングを含み得る。自動焦点合わせ回路350によって生成された自動焦点合わせデータは、画像センサ202の焦点距離を制御するために画像センサシステム201にフィードバックされ得る。例えば、画像センサ202は、画像センサの焦点距離を変更するために、画像センサのレンズシステムに関連付けられたアクチュエータに送信されるコマンド信号を決定する、自動焦点合わせデータを分析する制御回路を含み得る。自動焦点合わせ回路350によって生成されたデータはまた、他の画像処理の目的のためにISP206の他の構成要素に送信され得る。例えば、データの一部は、自動露出に関する情報を決定するために画像統計モジュール304に送信され得る。
自動焦点合わせ回路350は、画像統計モジュール304、センサインターフェース302、フロントエンドモジュール330及びバックエンドモジュール340などの他の構成要素とは別個の個々の回路であってもよい。これにより、ISP206は、他の画像処理パイプラインから独立して自動焦点合わせ分析を実行することができる。例えば、ISP206は、画像センサ202Bからの画像データの下流画像処理を実行すると同時に、自動焦点合わせ回路350Aを使用して画像センサ202Aの焦点距離を調整するために、画像センサ202AからのRAW画像データを分析することができる。一実施形態では、自動焦点合わせ回路350の数は、画像センサ202の数に対応し得る。言い換えれば、各画像センサ202は、画像センサ202の自動焦点合わせ専用の、対応する自動焦点合わせ回路を有し得る。デバイス100は、1つ以上の画像センサ202がアクティブに使用されていない場合でも、異なる画像センサ202に対して自動焦点合わせを実行し得る。これは、デバイス100が1つの画像センサ202から別の画像センサ202に切り替わるときに、2つの画像センサ102間のシームレスな移行を可能にする。例えば、一実施形態では、デバイス100は、写真及び画像の処理のためのデュアルバックカメラシステムとして広角カメラ及び望遠カメラを含み得る。デバイス100は、デュアルカメラのうちの1つによってキャプチャされた画像を表示することができ、2つのカメラを時々切り替えることができる。2つ以上の自動焦点合わせ回路350が自動焦点合わせデータを画像センサシステム201に連続的に提供し得るので、表示される画像は、第2の画像センサ202がその焦点距離を調整するのを待つことなく、1つの画像センサ202によってキャプチャされた画像データから別の画像センサによってキャプチャされた画像データにシームレスに移行し得る。
異なる画像センサ202によってキャプチャされたRAW画像データはまた、センサインターフェース302に送信され得る。センサインターフェース302は、画像センサ202からRAW画像データを受信して、RAW画像データをパイプライン内の他のステージによって処理可能な画像データに処理する。センサインターフェース302は、画像データサイズを縮小させるために画像クロッピング、ビニング、又はスケーリングなどの様々な前処理演算を実行することができる。いくつかの実施形態では、画素は、画像センサ202からセンサインターフェース302にラスタ順に(例えば、水平に、1行ごとに)送信される。パイプライン内の後続のプロセスも、ラスタ順に実行することができ、結果もまた、ラスタ順に出力することができる。図3に1つの画像センサ及び1つのセンサインターフェース302のみが示されているが、2つ以上の画像センサがデバイス100に設けられている場合、各画像センサからのRAW画像データを処理するために、対応する数のセンサインターフェースをISP206に設けることができる。
フロントエンドパイプラインステージ330は、RAWカラードメイン又はフルカラードメインで画像データを処理する。フロントエンドパイプラインステージ330は、RAW処理ステージ306及びリサンプリング処理ステージ308を含み得るが、これらに限定されない。RAW画像データは、例えば、ベイヤRAWフォーマットとすることができる。ベイヤRAW画像フォーマットでは、(全ての色に対するものではなく)特定の色に対して特定の値を有する画素データが、各画素に与えられる。画像キャプチャセンサでは、画像データは、典型的には、ベイヤパターンで提供される。RAW処理ステージ306は、画像データをベイヤーRAWフォーマットで処理することができる。
RAW処理ステージ306によって実行される演算は、センサ線形化、ブラックレベル補償、固定パターンノイズ低減、不良画素補正、RAWノイズフィルタリング、レンズシェーディング補正、ホワイトバランスゲイン、及びハイライトリカバリを含むが、これらに限定されない。センサ線形化は、他の処理のために非線形画像データを線形空間にマッピングすることを指す。ブラックレベル補償は、画像データの各色成分(例えば、Gr、R、B、Gb)に対してデジタルゲイン、オフセット、及びクリップを独立して提供することを指す。固定パターンノイズ低減は、入力画像からダークフレームを減算し、そして異なるゲインを画素に乗算することにより、オフセット固定パターンノイズ及びゲイン固定パターンノイズを除去することを指す。不良画素補正は、不良画素を検出し、次に不良画素値を置き換えることを指す。RAWノイズフィルタリングは、輝度が類似の隣接した画素を平均化することにより、画像データのノイズを低減することを指す。ハイライトリカバリは、他のチャネルからクリップされた(又は、ほぼクリップされた)画素に対して画素値を推定することを指す。レンズシェーディング補正は、レンズの光学的中心からの距離にほぼ比例した光度の減少を補償するために画素ごとのゲインを適用することを指す。ホワイトバランスゲインは、全ての色成分(例えば、ベイヤフォーマットのGr、R、B、Gb)に対してホワイトバランスのためのデジタルゲイン、オフセット及びクリップを独立して提供することを指す。ISP206の構成要素は、RAW画像データをフルカラードメインの画像データに変換することができ、したがって、RAW処理ステージ306は、RAW画像データに加えて又はその代わりに、フルカラードメインの画像データを処理することができる。
リサンプリング処理ステージ308は、様々な演算を実行して、RAW処理ステージ306から受信した画像データを変換、リサンプリング、又はスケーリングする。リサンプリング処理ステージ308によって実行される演算は、デモザイク演算、画素ごと色補正演算、ガンママッピング演算、色空間変換、及びダウンスケーリング又はサブバンド分割を含み得るが、これらに限定されない。デモザイク演算は、RAW画像データから欠落した色サンプルを(例えば、ベイヤパターンに)変換又は補間して、画像データをフルカラードメインに出力することを指す。デモザイク演算は、フルカラー画素を得るための補間されたサンプルに対する指向性ローパスフィルタリングを含み得る。画素ごと色補正演算は、各色チャネルの相対ノイズ標準偏差に関する情報を用いて画素ごとに色補正を実行して、画像データ内のノイズを増幅することなしに色を補正するプロセスを指す。ガンママッピングは、画像データを入力画像データ値から出力データ値に変換して、ガンマ補正を実行することを指す。ガンママッピングの目的のために、各画素の異なる色成分又は色チャネルに対するルックアップテーブル(又は画素値を別の値にインデックス付けする他の構造)(例えば、R、G、及びBの色成分に対する別個のルックアップテーブル)を使用することができる。色空間変換は、入力画像データの色空間を異なるフォーマットに変換することを指す。一実施形態では、リサンプリング処理ステージ308は、更なる処理のためにRGGフォーマットをYCbCrフォーマットに変換する。一実施形態では、リサンプリング処理ステージ308は、更なる処理のためにRBDフォーマットをRGBフォーマットに変換する。
中央制御モジュール320は、ISP206内の他の構成要素の動作の全体を制御して連係させることができる。中央制御モジュール320は、ISP206の他の構成要素の開始及び停止を制御するために、様々な動作パラメータをモニターすること(例えば、クロックサイクル、メモリ待ち時間、サービスの品質、及び状態情報をログ記録すること)、ISP206の他の構成要素の制御パラメータを更新又は管理すること、及びセンサインターフェース302とインターフェースすることを含むが、これらに限定されない動作を実行する。例えば、中央制御モジュール320は、他の構成要素がアイドル状態にある間に、ISP206内の他の構成要素のプログラム可能なパラメータを更新することができる。プログラム可能なパラメータを更新した後で、中央制御モジュール320は、ISP206のこれらの構成要素を、1つ以上の動作又はタスクを実行するように、実行状態にし得る。中央制御モジュール320はまた、リサンプリング処理ステージ308の前、その間、又はその後に、画像データを記憶する(例えば、図2のシステムメモリ230に書き込むことにより)ように、ISP206の他の構成要素に命令し得る。このようにして、リサンプリング処理ステージ308からの画像データ出力を、バックエンドパイプラインステージ340を介して処理することに加えて又はその代わりに、RAWカラードメインフォーマット又はフルカラードメインフォーマットのフル解像度の画像データを記憶することができる。
画像統計モジュール304は、様々な演算を実行して、画像データに関連付けられた統計情報を収集する。統計情報を収集するための演算は、センサ線形化、パターン化不良画素の置き換え、RAW画像データのサブサンプリング、非パターン化不良画素の検出及び置き換え、ブラックレベル補償、レンズシェーディング補正、逆ブラックレベル補償を含み得るが、これらに限定されない。このような演算のうちの1つ以上を実行した後で、3A統計(オートホワイトバランス(Auto White Balance、AWB)、自動露出(Auto Exposure、AE)、ヒストグラム(例えば、2Dカラー若しくは成分)などの統計情報、及び任意の他の画像データ情報を収集又は追跡することができる。いくつかの実施形態では、特定の画素の値又は画素値のエリアは、先行する演算がクリップされた画素を識別する場合、特定の統計データの収集から除外してもよい。図3に1つの統計モジュール304のみが示されているが、複数の画像統計モジュールがISP206に含まれていてもよい。例えば、各画像センサ202は、個々の画像統計ユニット304に対応し得る。このような実施形態では、各統計モジュールは、同じ又は異なる画像データに対して異なる情報を収集するように、中央制御モジュール320によってプログラムすることができる。
スケーラ322は、画像データを受信し、画像のダウンスケーリングされたバージョンを生成する。したがって、スケーラ322は、ニューラルプロセッサ回路218などの様々な構成要素に解像度の低減された画像を提供することができる。スケーラ322は、図3ではRAW処理ステージ306に結合されているが、スケーラ322は、画像信号プロセッサ206の他の構成要素から入力画像を受信するように結合されていてもよい。
バックエンドインターフェース342は、画像センサ102以外の画像ソースから画像データを受信し、それをISP206の他の構成要素に転送して処理させる。例えば、画像データは、ネットワーク接続を介して受信され、システムメモリ230に記憶され得る。バックエンドインターフェース342は、システムメモリ230に記憶された画像データを取り出して、それをバックエンドパイプラインステージ340に提供して処理させる。バックエンドインターフェース342によって実行される多くの演算のうちの1つは、取り出された画像データをバックエンド処理ステージ340によって利用することができるフォーマットに変換することである。例えば、バックエンドインターフェース342は、RGB、YCbCr 4:2:0、又はYCbCr 4:2:2にフォーマットされた画像データをYCbCr 4:4:4カラーフォーマットに変換することができる。
バックエンドパイプラインステージ340は、特定のフルカラーフォーマット(例えば、YCbCr 4:4:4又はRGB)に従って画像データを処理する。いくつかの実施形態では、バックエンドパイプラインステージ340の構成要素は、更なる処理の前に、画像データを特定のフルカラーフォーマットに変換することができる。バックエンドパイプラインステージ340は、他のステージの中でもとりわけ、ノイズ処理ステージ310及びカラー処理ステージ312を含むことができる。バックエンドパイプラインステージ340は、図3に示されていない他のステージを含むことができる。
ノイズ処理ステージ310は、様々な演算を実行して、画像データ内のノイズを低減する。ノイズ処理ステージ310によって実行される演算は、色空間変換、ガンマ/デガンママッピング、時間的フィルタリング、ノイズフィルタリング、ルマ鮮鋭化、及びクロマノイズ低減を含むが、これらに限定されない。色空間変換は、画像データを1つの色空間フォーマットから別の色空間フォーマットに変換(例えば、RGBフォーマットをYCbCrフォーマットに変換)することができる。ガンマ/デガンマ演算は、画像データを入力画像データ値から出力データ値に変換して、ガンマ補正又は逆ガンマ補正を実行する。時間的フィルタリングは、前にフィルタリングされた画像フレームを用いてノイズをフィルタリングして、ノイズを低減する。例えば、前の画像フレームの画素値に、現在の画像フレームの画素値を組み合わせる。ノイズフィルタリングは、例えば、空間的ノイズフィルタリングを含むことができる。ルマ鮮鋭化は、画素データのルマ値を鮮鋭化することができ、一方、クロマ抑制は、クロマをグレー(例えば、色がない)に減衰させることができる。いくつかの実施形態では、ルマ鮮鋭化及びクロマ抑制は、空間ノイズフィルタリングと同時に実行され得る。ノイズフィルタリングの度合(aggressiveness)は、画像の異なる領域に対して異なって判定されてもよい。空間的ノイズフィルタリングは、時間的フィルタリングを実行する時間ループの一部に含まれてもよい。例えば、前の画像フレームは、処理されることになる次の画像フレームに対する基準フレームとして記憶される前に、時間的フィルタ及び空間的ノイズフィルタによって処理されてもよい。他の実施形態では、空間的ノイズフィルタリングは、時間的フィルタリング用の時間ループの一部として含まれなくてもよい(例えば、空間的ノイズフィルタは、画像フレームが基準画像フレームとして記憶された後にそれに適用されてもよく、よって、基準フレームは空間的にフィルタリングされていない)。
カラー処理ステージ312は、画像データ内の色情報を調整することに関連付けられた様々な演算を実行することができる。カラー処理ステージ312で実行される演算は、局所的なトーンマッピング、ゲイン/オフセット/クリップ、色補正、3次元カラールックアップ、ガンマ変換、及び色空間変換を含むが、これらに限定されない。局所的なトーンマッピングは、画像をレンダリングするときに更なる制御を提供するために、局所的なトーンカーブを空間的に変化させることを指す。例えば、トーンカーブの2次元格子(中央制御モジュール320によってプログラミングすることができる)は、平坦に変化するトーンカーブが画像にわたって生成されるように、双線形補間がなされてもよい。いくつかの実施形態では、局所的なトーンマッピングはまた、例えば、画像内のシャドウの青色を暗くすると同時に、空をより青くするために使用することができる、空間的に変化し、かつ光度が変化する色補正行列を適用してもよい。デジタルゲイン/オフセット/クリップは、画像データの色チャネル又は色成分ごとに提供されてもよい。色補正は、色補正変換行列を画像データに適用することができる。3Dカラールックアップは、拡張型トーンマッピング、色空間変換、及び他の色変換を実行するために、色成分出力値(例えば、R、G、B)の3次元アレイを利用してもよい。ガンマ変換は、例えば、ガンマ補正、トーンマッピング、又はヒストグラムマッチングを実行するために、入力画像データ値を出力データ値にマッピングすることにより、実行することができる。色空間変換は、ある色空間から別の色空間へ(例えば、RGBからYCbCrに)画像データを変換するために実行されてもよい。他の処理技法もまた、ブラック及びホワイト変換、セピアトーン変換、ネガティブ変換、又はソラリゼーション変換を含む、他の特殊画像効果を実行するように、カラー処理ステージ312の一部として実行されてもよい。
出力リスケーリングモジュール314は、ISP206が画像データを処理しているとき、その実行中(on the fly)に歪みをリサンプリング、変換及び補正することができる。出力リスケーリングモジュール314は、各画素の分数入力座標を計算し、そしてこの分数座標を使用して多相リサンプリングフィルタを介して出力画素を補間することができる。分数入力座標は、(例えば、単純な水平スケーリング変換及び垂直スケーリング変換を介した)画像のリサイジング又はクロッピング、(例えば、非分離行列変換を介した)画像の回転及びせん断、(例えば、追加の深度変換を介した)パースペクティブワーピング及び(例えば、ロールシャッタに起因する)画像データのキャプチャの間に画像センサにおける変化を原因とするストリップに区分的に適用される画素ごとのパースペクティブ分割、並びに(例えば、補間された放射状ゲインテーブルをインデックス付けするために光学的中心からの放射状距離を計算し、そしてレンズの放射状歪みを原因とする座標に放射状撹乱を適用することを介した)幾何学的歪み補正など、出力座標の様々な考えられる変換から生成され得る。
出力リスケーリングモジュール314は、出力リスケーリングモジュール314で画像データが処理される際に、画像データに変換を適用することができる。出力リスケーリングモジュール314は、水平スケーリング構成要素及び垂直スケーリング構成要素を含むことができる。設計の垂直部分は、垂直フィルタによって必要とされる「サポート」を保持するために、一連の画像データラインバッファを実装することができる。ISP206をストリーミングデバイスとすることができるので、フィルタに使用可能なのは、有限長のラインからなるスライディングウィンドウ内の画像データのラインのみであり得る。入ってくるラインのための場所を空けるためにラインが破棄されると、そのラインは、利用できなくなり得る。出力リスケーリングモジュール314は、前のラインの計算された入力Y座標を統計的にモニターし、それを使用して、垂直サポートウィンドウ内に保持するラインの最適なセットを計算することができる。各後続のラインに対して、出力リスケーリングモジュールは、垂直サポートウィンドウの中心に関する推量を自動的に生成することができる。いくつかの実施形態では、出力リスケーリングモジュール314は、画像フレームのキャプチャ中のセンサの動きによって生じたアーチファクト及び動きを補正するために、入力画像データと出力画像データとの間の画素ごとのパースペクティブ変換を実行するデジタル微分解析器(Digital Difference Analyzer、DDA)ステッパとしてエンコードされた区分的パースペクティブ変換のテーブルを実装することができる。出力リスケーリングは、図1及び2に関して上述したように、出力インターフェース316を介してデバイス100の様々な他の構成要素に画像データを提供することができる。
様々な実施形態では、構成要素302~350の機能性は、図3に示す画像処理パイプライン内のこれらの機能性ユニットの順序によって暗示された順序とは異なる順序で実行されてもよく、又は図3に示すものとは異なる機能性構成要素によって実行されてもよい。更に、図3に記載のような様々な構成要素は、ハードウェア、ファームウェア、又はソフトウェアの様々な組み合わせで具現化することができる。
多重バンドノイズ低減回路に関連する例示的なパイプライン
図4は、一実施形態に係る、多重バンドノイズ低減(Multiple Band Noise Reduction、MBNR)回路420を含む画像処理パイプラインの一部分を示すブロック図である。図4の実施形態では、MBNR回路420は、他の構成要素の中でもとりわけ、スケーラ410及びサブバンドスプリッタ回路430も含むリサンプリング処理ステージ308の一部である。リサンプリング処理ステージ308は、スケーリング、ノイズ低減、及びサブバンド分割を再帰的に実行する。
再帰的処理の結果として、リサンプリング処理ステージ308は、元の入力画像402から導出された一連の高周波成分画像データHF(N)及び低周波成分画像データLF(N)を出力する。ここで、Nは、元の入力画像402に対して実行されたダウンサンプリングのレベルを表す。例えば、HF(0)及びLF(0)は、それぞれ、元の入力画像402から分割された高周波成分画像データ及び低周波成分画像データを表し、HF(1)及びLF(1)は、それぞれ、入力画像402の第1のダウンスケーリングされたバージョンから分割された高周波成分画像データ及び低周波成分画像データを表す。
MBNR回路420は、入力画像402の多重バンドに対してノイズ低減を実行する回路である。入力画像402は、まず、ノイズ低減のためにマルチプレクサ414を介してMBNR回路420に渡される。元の入力画像402のノイズ低減バージョン422は、MBNR回路420によって生成され、サブバンドスプリッタ430に供給される。サブバンドスプリッタ430は、元の入力画像402のノイズ低減バージョン422を高周波成分画像データHF(0)と低周波成分画像データLF(0)とに分割する。高周波成分画像データHF(0)は、サブバンド処理パイプライン448に渡され、次にサブバンドマージャ352に渡される。対照的に、低周波数成分画像LF(0)はデマルチプレクサ440を通過し、スケーラ410によるダウンスケーリングのためにリサンプリング処理ステージ308にフィードバックされる。
スケーラ410は、スケーラ410に供給される低周波数成分画像LF(0)のダウンスケーリングされたバージョン412を生成し、それをノイズ低減のためにマルチプレクサ414を介してMBNR回路420に渡す。MBNR回路420は、ノイズ低減を実行して、ダウンスケーリング画像412のノイズ低減バージョン432を生成し、それをサブバンドスプリッタ430に送り、処理された低周波画像データLF(0)を高周波成分画像データHF(1)と低周波成分画像データLF(1)とに再び分割する。高周波成分画像データHF(1)はサブバンド処理パイプライン448に送られ、次にサブバンドマージャ352に送られ、一方、低周波成分画像データLF(1)は再びスケーラ410にフィードバックされて、リサンプリング処理ステージ308内でのプロセスを繰り返す。高周波成分画像データHF(N)及び低周波成分画像データLF(N)を生成する処理は、サブバンドスプリッタ430による最終レベルのバンド分割が行われるまで繰り返される。バンド分割の最終レベルに達すると、低周波成分画像データLF(N)は、デマルチプレクサ440及びマルチプレクサ446を介して、サブバンド処理パイプライン448及びサブバンドマージャ352に渡される。
上述したように、MBNR回路420は、入力画像402及び入力画像402のダウンスケーリングされた低周波数バージョンに対してノイズ低減を実行する。これは、MBNR回路420が元の入力画像402の多重バンドに対してノイズ低減を実行することを可能にする。しかしながら、サブバンド分割及びスケーリングなしでは、MBNR回路420によって実行され得る入力画像402に対するノイズ低減は単一パスのみであることに留意されたい。
サブバンドマージャ352は、処理済み高周波成分画像データHF(N)’と処理済み低周波成分画像データLF(N)’とをマージして、処理済みLF(N-1)’を生成する。処理済みLF(N-1)’は、処理済みLF(N-2)’を生成するために、処理済みHF(N-1)’とマージするためにデマルチプレクサ450及びマルチプレクサ446を介してサブバンドマージャ352にフィードバックされる。処理済み高周波数成分画像データと処理済み低周波数成分データとをマージする処理は、サブバンドマージャ352がデマルチプレクサ450を介して出力される入力画像の処理済みバージョン454を生成するまで繰り返される。
第1のコントラスト強調ステージ450及び第2のコントラスト強調ステージ452は、画像のセグメントに関連付けられたコンテンツに基づいて、画像データのセグメントに対して鮮鋭化演算又は平滑化演算を実行する。第1のコントラスト強調ステージ450は、サブバンド処理パイプライン448の構成要素であり、入力画像402に対してダウンスケーリングされた高周波成分画像データHF(N)に対して鮮鋭化演算を実行する。一方、第2のコントラスト強調ステージ452は、入力画像402と同じ空間サイズを有するフル解像度画像データであり得るサブバンドマージャ352の出力に対して鮮鋭化を実行する。第1及び第2のコントラスト強調ステージ450、452は、図7を参照して更に説明される。
コンテンツマップに関連する例示的なパイプライン
図5は、一実施形態に係る、ニューラルプロセッサ回路218による画像信号プロセッサ206へのコンテンツマップ504(本明細書では「セグメンテーションマップ」とも呼ばれる)の提供を示すブロック図である。画像信号プロセッサ206は、ニューラルプロセッサ回路218に入力画像502を提供する。入力画像502は、元の入力画像402と比較して同じであっても異なっていてもよい。入力画像502に基づいて、ニューラルプロセッサ回路218はコンテンツマップ504を生成し、コンテンツマップ504を画像信号プロセッサ206に提供する。例えば、コンテンツマップ504は、コントラスト強調ステージ450、452に送られる。
図2を参照して前に説明したように、ニューラルプロセッサ回路218は機械学習され得る。したがって、ニューラルプロセッサ回路218は、入力画像502に対して1つ以上の機械学習演算を実行することにより、コンテンツマップ504を決定し得る。いくつかの実施形態では、入力画像502は、元の入力画像402と比較して(例えば、スケーラ322によって提供される)解像度の低減された画像である。画像の解像度を低減することにより、コンテンツマップ504を生成するための処理時間を短縮することができる。しかしながら、コンテンツマップ504の解像度は典型的に、入力画像502の解像度と同じ又は同様であるので、コンテンツマップ504は、元の入力画像402に対してダウンスケーリングされ得る。例示的な入力画像602が図6Aに提供され、例示的なコンテンツマップ604が図6Bに提供される。コンテンツマップ604は、画像602内の草506と人508を識別する。
コンテンツの各セグメントは、コンテンツの1つ以上の所定のカテゴリに関連付けられ得る。コンテンツマップ504は、アップスケーリングプロセス中に使用される複数の格子点を有する格子に関連付けられ得る。コンテンツマップ504は、フルスケール画像と同じサイズであってよい。いくつかの実施形態では、様々な処理を容易にするために、格子点の数は、鮮鋭化対象のフルスケール画像内の画素の数よりも少ない。1つ以上の実施形態では、マップの各格子点は、コンテンツのカテゴリ(本明細書では「コンテンツカテゴリ」とも呼ばれる)に関連付けることができ、以下で図11を参照して詳細に説明するように、フルスケール画像内の近くの画素のコンテンツ係数を決定するために使用することができる。
コンテンツマップ504におけるコンテンツカテゴリの例は、異なる所望のコンテンツ係数を有する。異なるコンテンツカテゴリは、肌、葉、草、及び空を含んでもよい。他のカテゴリ(例えば、肌)に対して、特定のカテゴリ(例えば、葉及び草)を鮮鋭化することが一般に望ましい。1つ以上の実施形態では、ニューラルプロセッサ回路218は、様々な機械学習アルゴリズムを使用してトレーニングされて、入力画像502の異なるセグメントを分類して、入力画像502中のコンテンツのコンテンツカテゴリを識別し、次に、これは画像信号プロセッサ206によって使用されて、以下で図8を参照して詳細に説明するように、異なるセグメントに適用されるべき鮮鋭化の程度を示す異なるコンテンツ係数で入力画像502の異なるセグメントを鮮鋭化する。
他の実施形態では、ニューラルプロセッサ回路218は、コンテンツマップ504としてヒートマップを生成するように、様々な機械学習アルゴリズムを使用してトレーニングされる。ヒートマップは、異なるセグメントに関連付けられたコンテンツカテゴリを示すのではなく、入力画像502の異なるセグメントにおける望ましい鮮鋭化の程度を直接示す。
コントラスト強調ステージ回路の例
図7は、一実施形態に係る、第1のコントラスト強調ステージ回路450の構成要素を示すブロック図である。第1のコントラスト強調ステージ回路450は、輝度情報Yに対して、コンテンツに基づく画像鮮鋭化及び平滑化を実行して、輝度情報の鮮鋭化済みバージョンY’を生成する。輝度情報Yは、入力画像402の輝度成分のみを含む画像を指し、鮮鋭化済み輝度情報Y’は、出力画像の輝度成分のみを含む画像を指す。第1のコントラスト強調ステージ回路450は、他の構成要素の中でもとりわけ、画像シャープナ702、コンテンツ画像処理704、及び加算回路706を含み得る。第2のコントラスト強調ステージ回路452は、輝度画像がフル入力画像402に対してダウンスケーリングされていないことを除いて、第1のコントラスト強調ステージ回路450と実質的に同じ構造を有し、したがって、簡潔さのために、本明細書ではその詳細な説明は省略される。
画像シャープナ702は、輝度情報Yに対してコントラスト強調(例えば、鮮鋭化)を実行し、出力デルタYを生成する回路である。デルタYは、Yのマスクを表す。例えば、デルタYは、アンシャープマスキングプロセスの結果である。1つ以上の実施形態では、画像シャープナ702は、輝度情報Yに対して処理を実行するバイラテラルフィルタ又はハイパス周波数フィルタとして具現化されている。したがって、例えば、デルタYは画像の高周波成分であり得る。デルタYは、第1のコントラスト強調ステージ450の下流の構成要素によって更に調整される。
コンテンツ画像処理704は、コンテンツマップによって識別されるコンテンツカテゴリ及びこのような分類の尤度に基づいてデルタYを調整する回路である。コンテンツ画像処理704は、輝度情報Y及びコンテンツマップ504を受信し、図8に関して更に説明するように、コンテンツカテゴリに基づく所望の鮮鋭化の程度に応じて、デルタYに対して増加又は減少した調整済みデルタY’を生成する。
いくつかの実施形態では、加算回路706は、コンテンツ画像処理704からの調整済みデルタY’を輝度情報Yに加算して、鮮鋭化済み輝度情報Y’を生成する。いくつかの実施形態では、加算回路706は、調整済みデルタY’を輝度情報Yの低周波数成分に加算する(例えば、ここで、低周波数成分=Y-デルタYとする)。いくつかの画素に対して、調整済みデルタY’は正であり、それによって、加算回路706における加算は、画像の関連するセグメントの鮮鋭化をもたらす。負である調整済みデルタY’を有する画素に対して、加算回路706は、アルファぼかしのようなぼかし演算を実行する。以下で更に説明されるように、デルタYは、輝度情報Yの低周波数成分でアルファぼかしされ得る。これは、ぼかしが低周波数成分に制限されることをもたらし得る。これは、デルタY’が大きな負の値を含む場合に発生し得る画像アーチファクトを防止し得る。
<コンテンツ画像処理回路の例>
図8は、一実施形態に係る、コンテンツ画像処理704の構成要素を示すブロック図である。図7を参照して前述したように、コンテンツ画像処理704は、画像内のコンテンツに基づいて鮮鋭化演算及び平滑化演算を実行する。コンテンツ画像処理704は、他の構成要素の中でもとりわけ、テクスチャ回路802と、クロマ回路804と、コンテンツ係数回路806と、コンテンツ修正回路810とを含み得る。
コンテンツ係数回路806は、入力画像内の画素に対するコンテンツ係数を決定する。コンテンツ係数は、入力画像内の各画素に対して決定され得る。コンテンツ係数は、コンテンツマップ内の1つ以上の値に基づくものであり、画素に適用されるべき鮮鋭化の量を示す。コンテンツ係数はまた、テクスチャ回路802からの1つ以上のテクスチャ値及び/又はクロマ回路804からのクロマ値に基づくものであり得る。
前述したように、コンテンツマップのコンテンツカテゴリは、コンテンツ係数に関連付けられ得る。例えば、各コンテンツカテゴリに対してコンテンツ係数が予め定められている。コンテンツマップが画像と同じ解像度を有する場合、画素に対するコンテンツ係数は、コンテンツマップ内の対応する位置の情報を参照することにより取得され得る。コンテンツマップが画像と比較してダウンスケーリングされている場合、コンテンツマップのアップスケーリングされたバージョン内の近くの画素からコンテンツ係数を補間し得るように、コンテンツマップは、入力画像のサイズに一致するようにアップスケーリングされ得る。複数の格子点を有する格子は、入力画像上に重ねられてもよく、格子点に関連付けられた情報は、フル画像内の画素の情報を補間によって決定するために使用され得る。例えば、フル画像の画素位置がコンテンツマップ内の格子点と合致していない(例えば、画素が格子点のセットの間に位置する)場合、画素のコンテンツ係数は、画素に最も近い(例えば、取り囲んでいる)格子点のコンテンツ係数を補間することにより決定され得る。格子点間の画素のコンテンツ係数を決定するためのコンテンツマップのアップサンプリングは、図11に関して更に説明される。
いくつかの実施形態では、コンテンツ係数は、尤度値に従って重み付けされる。例えば、画素のコンテンツ係数Qは、初期コンテンツ係数Q0に尤度値を乗算することにより決定される。
Q=(Q0*(尤度値) (1)
ここで、初期コンテンツ係数Q0は、特定のコンテンツカテゴリに関連付けられたコンテンツ係数である。尤度値は、以下でテクスチャ回路802及びクロマ回路804を参照して説明するように、画素のコンテンツカテゴリ、画素のテクスチャ値及び/又はクロマ値に基づくことができる。いくつかの実施形態では、尤度値は、以下のような尤度モデルによって決定される。
(尤度値)=C1+C2 *(テクスチャ値)+C3 *(クロマ値) (2)
ここで、C1、C2、C3は所定の定数(例えば、調整パラメータ)である。所定の定数は、コンテンツマップ内のコンテンツカテゴリに基づく値を有し得る。いくつかの実施形態では、尤度モデルは、テクスチャ値及びクロマ値に関する多項式関数である。尤度モデルは、分類の精度に関するモデルを表し、経験的に又は機械学習プロセスによって決定され得る。
テクスチャ回路802は、コンテンツマップ504によって識別されたコンテンツカテゴリが、テクスチャ情報に基づいて訂正された尤度を表すテクスチャ値を決定する回路である。1つ以上の実施形態では、テクスチャ値は、1つ以上のエッジ検出演算を入力画像に適用することにより決定される。例えば、Sobelフィルタ又はハイパス周波数フィルタなどのエッジ検出方法を輝度入力画像に適用して、入力画像の画素位置におけるエッジ値を取得する。エッジ値が決定された後、テクスチャモデルにエッジ値を適用することにより、格子点に対するテクスチャ値が決定され得る。テクスチャ回路802は、異なるコンテンツカテゴリに対応する複数の異なるテクスチャモデルを記憶し得る。テクスチャモデルの例には、葉のテクスチャモデル、空のテクスチャモデル、草のテクスチャモデル、及び肌のテクスチャモデルが含まれる。例示的な葉のテクスチャモデルは以下で図9に関して説明される。
クロマ回路804は、コンテンツマップ504によって識別されるコンテンツカテゴリが、クロマ情報に基づいて訂正された尤度を表すクロマ値を決定する回路である。クロマ値は、画像の色情報(例えば、Cb値及びCr値)に基づく。クロマ回路804は、異なるコンテンツカテゴリに対して異なるクロマモデルを記憶し得る。クロマモデルの例は、葉のクロマモデル、空のクロマモデル、草のクロマモデル、及び肌のクロマモデルを含む。クロマモデルは、手動で決定されてもよく、又は機械学習技法によって決定されてもよい。例示的な空のクロマモデルは以下で図10に関して説明される。
コンテンツ修正回路810は、コンテンツ係数回路806からコンテンツ係数を受信し、画像シャープナ702からデルタY値を受信する。コンテンツ修正回路810は、コンテンツ係数をデルタY値に適用してデルタY’値を生成する。例えば、画素のコンテンツ係数が所定の閾値(例えば、0)を上回る場合、コンテンツ修正回路810は、画素のコンテンツ係数を画素のデルタY値に乗算するなど、鮮鋭化演算を実行する。画素のコンテンツ係数が所定の閾値を下回る場合、コンテンツ修正回路810は、コンテンツ係数に基づいてデルタY’をブレンディングすることにより平滑化演算を実行することができる。例えば、アルファブレンディングは以下の式に従って実行される。
Y’=(1-アルファ)*Y+アルファ*(Y-デルタY) (3)
かつ、
Y’=Y+デルタY’ (4)
したがって、
デルタY’=-(アルファ)*(デルタY) (5)。
ここで、アルファ=|Q|*スケールとし、アルファは0と1の間の値とする。スケールは、所定の正の定数とする。|Q|*スケール>1となるように|Q|が十分に大きい場合、アルファは1になるようにクリップされることに留意されたい。
図9は、一実施形態に係る、テクスチャモデルを示すプロットである。画素(又は格子が使用される場合は格子点)がコンテンツマップによって「葉」として分類されている場合、例えば、テクスチャ値は、画素(又は格子が使用される場合は格子点)のエッジ値を図9のモデルに適用することにより決定され得る。x軸は入力エッジ値を表し、Y軸は出力テクスチャ値を表す。テクスチャ値の範囲は0~1とする。画素のエッジ値が高閾値を上回る場合、テクスチャ値は1とし、エッジ値が低閾値を下回る場合、テクスチャ値は0とする。テクスチャ値は、低閾値と高閾値との間のエッジ値に対して0から1まで線形に増加する。低閾値及び高閾値の値は、経験的に決定され得る。例えば、閾値は、葉について典型的なエッジ値に従って設定される。したがって、エッジ値が高閾値を上回ることは、画素又は格子点が、葉に対応する高いテクスチャを有する領域にあることを示し得る。同様に、エッジ値が低閾値を下回ることは、画素又は格子点が、葉に対応しない平坦なテクスチャを有する領域にあることを示し得る。例えば、式2によれば、高いテクスチャ値は、画素のコンテンツが葉である尤度が高いことを示す(C2が正であると仮定する)。
異なるカテゴリに対して、対応するテクスチャモデルは、異なるテクスチャパラメータ(例えば、異なる低閾値、異なる高閾値、及び/又は異なる勾配、及び/又は1と0の反転)によって表され得る。「草」のカテゴリについては、低閾値及び高閾値は、「葉」のカテゴリの閾値よりも高くてもよい。いくつかのカテゴリは、テクスチャが複雑であるときよりもテクスチャが平坦であるときに正しい可能性が高い。このようなカテゴリでは、テクスチャ値の1と0が反転され得る。例えば、「空」のテクスチャモデルは、エッジ値がより低い(例えば、低閾値を下回る)ときに1の値を有し得、エッジ値がより高い(例えば、高閾値を上回る)ときに0の値を有し得る。すなわち、テクスチャが平坦である入力画像の領域にある画素は、「空」であることを示す可能性が高い。いくつかの実施形態では、1と0の値を反転させる代わりに、式2における所定の定数は、コンテンツカテゴリに基づいて変化する。例えば、「肌」又は「空」などのカテゴリについて、C2は、画素のコンテンツが「肌」又は「空」である尤度が低いことを高いテクスチャ値が示すように、負であり得る。
図10は、一実施形態に係る、クロマモデルを示すプロットである。図10のクロマモデルは、「空」のモデルを表し得る。画素又は格子点がコンテンツマップによって「空」として分類されている場合、クロマ回路804は、画素又は格子点についてのCb値とCr値の組み合わせがエリア1010、1020及び1030のうちの1つの範囲内に入るかどうかを判定する。x軸は入力Cb値を表し、Y軸は入力Cr値を表す。楕円は、「空」の色範囲を表すプロット図の右上隅に位置する。画素又は格子点のCb値/Cr値がエリア1010内の内側楕円内にある場合、クロマ値は1であり、これは、(例えば、C3が正である式2に従って)、画素又は格子点が「空」に対応する尤度が高いことを示し得る。Cb値/Cr値がエリア1030内の外側楕円の外側にある場合、クロマ値は0であり、これは、(例えば、C3が正である式2に従って)、画素又は格子点が「空」に対応する可能性が低いことを示す。Cb値/Cr値がエリア1020内の内側楕円と外側楕円との間にある場合、クロマ値は0と1との間であり得る(例えば、クロマ値は、内側楕円のエッジからの距離が増加するにつれて増加する)。楕円の位置及びサイズは、経験的に、又は統計学的モデルによって決定することができる。いくつかの実施形態では、楕円形の代わりに、正方形、三角形、又は円形などの他の形状を使用することができる。
異なるカテゴリに対して、対応するクロマモデルは、異なるクロマパラメータ(例えば、楕円の中心、半径、角度、傾き、及び外部/内部楕円の比)によって表され得る。例えば、「葉」のクロマモデルは通常緑色であり、したがって、「葉」カテゴリのクロマパラメータは緑色に対応するCb値/Cr値をカバーし、一方、「空」カテゴリのクロマパラメータは青色に対応するCb値/Cr値をカバーする。別の例では、クロマパラメータは、一般に、カテゴリに関連付けられていない色に従って選択される。例えば、「葉」は一般に青色を含まない。したがって、クロマモデルは、Cb値/Cr値が青色に対応する場合、低い値を出力するように構成され得る。
格子点を使用した補間の例
図11は、一実施形態に係る、コンテンツマップをアップサンプリングする方法を示す図である。コンテンツマップが入力画像よりも低い解像度を有する場合、画像内の画素とコンテンツマップ内の画素とは1対1で対応していない。よって、コンテンツマップのアップスケーリングを実行することができる。このようなアップスケーリングを実行する1つの方法は、入力画像1102の上に重ねられた複数の格子点を有する格子の使用によるものである。格子点は、入力画像1102内の画素よりもまばらであり得る。このような場合、格子点のコンテンツ係数を使用して、より高い解像度の入力画像1102のコンテンツ係数を決定することができる。
入力画像1102上に重ねられた格子が格子点1~4を有し、入力画像1102が格子点1~4の間に位置する画素1104を含む例をとると、画素1104に対するコンテンツ係数Q(画素)は、格子点から画素1104までの空間距離を考慮して、格子点1~4に関連付けられたコンテンツ係数Q(1)~Q(4)に対して双線形補間を実行することにより決定され得る。
1つ以上の実施形態では、画素1104のQ(画素)を決定するためのコンテンツ係数Q(1)~Q(4)は、入力画像1102の画素1104のテクスチャパラメータ及びクロマパラメータを使用して決定される。コンテンツマップによって示される格子点1~4のカテゴリが使用されるが、これらのカテゴリに対する尤度値(式(2)を参照して上述した)は、格子点のエッジ値及びCb値/Cr値ではなく、画素1104のエッジ値及びCb値/Cr値を使用して決定される。例えば、格子点1が「肌」として分類されている場合、画素1104のテクスチャは、「肌」に対応するテクスチャパラメータを有するテクスチャモデルに適用され、画素1104のCb値/Cr値は、式(1)に従ってQ(1)を取得するために、「肌」に対応するクロマパラメータを有するクロマモデルに適用される。同様に、格子点2が「葉」として分類されている場合、画素1104のエッジ値は、「葉」に対応するテクスチャパラメータを有するテクスチャモデルに適用され、画素1104のCb値/Cr値は、式(1)に従ってQ(2)を取得するために、「葉」に対応するクロマパラメータを有するクロマモデルに適用される。格子点3、4について同様のプロセスを繰り返した後、双線形補間によりQ(画素)を求める。
他の実施形態では、コンテンツ係数Q(1)~Q(4)は、画素のテクスチャ値及びCb値/Cr値の代わりに格子点のテクスチャ値及びCb値/Cr値を使用することにより得られる。
コンテンツに基づく画像鮮鋭化の例示的な方法
図12は、一実施形態に係る、画像のセグメント内のコンテンツに基づいて画像の1つ以上の画素を鮮鋭化する方法を示すフローチャートである。本方法のステップは、異なる順序で実行されてもよく、本方法は、異なる、追加の、又はより少ないステップを含んでもよい。
入力画像の輝度画素値を受信する(1202)。コンテンツマップを受信する(1204)。コンテンツマップは、画像のセグメント内のコンテンツのカテゴリを識別する。コンテンツマップは、コンテンツマップを生成するために画像のバージョンに対して少なくとも1つの機械学習演算を実行するニューラルプロセッサ回路によって生成され得る。コンテンツマップによって識別されるカテゴリは、肌、葉、草、又は空を含んでもよい。いくつかの実施形態では、コンテンツマップは、画像の画素に適用されるべき鮮鋭化の量を示すヒートマップである。
画像内の画素に関連付けられたコンテンツ係数を決定する(1206)。コンテンツ係数は、入力画像内の識別されたコンテンツのカテゴリと、画像内の画素のテクスチャ値又は画像内の画素のクロマ値の少なくとも1つとに従って決定される。テクスチャ値は、画像内のテクスチャに基づく、画素に関連付けられたコンテンツのカテゴリの尤度を示す。クロマ値は、画像の色情報に基づく、画素に関連付けられたコンテンツのカテゴリの尤度を示す。
いくつかの実施形態では、コンテンツマップは、入力画像に対してダウンスケーリングされる。これらの実施形態では、コンテンツ係数は、コンテンツマップをアップサンプリングすることにより決定され得る。コンテンツマップは、コンテンツマップの上に重ねられた格子点のコンテンツ係数を取得し、次に、格子点のコンテンツ係数を補間して入力画像内の画素のコンテンツ係数を取得することによりアップサンプリングされ得る。
少なくともコンテンツ係数を画素の輝度画素値のバージョンに適用することにより、画素の輝度画素値の鮮鋭化済みバージョンを生成する(1208)。輝度画素値のバージョンは、バイラテラルフィルタ又はハイパスフィルタによって生成され得る。いくつかの実施形態では、コンテンツ係数は、コンテンツ係数が閾値を上回ることに応じて、コンテンツ係数を輝度画素値のバージョンと乗算することにより、輝度画素値のバージョンに適用される。コンテンツ係数が閾値を下回る場合、コンテンツ修正回路は、負のパラメータで乗算された輝度画素値のバージョンを適用する。
本明細書に説明する教示は、画像内の各画素に対するコンテンツ係数を生成することに関する。コンテンツ係数は、コンテンツマップを介して識別される画像内のコンテンツに基づく。本明細書の教示は、画像鮮鋭化という文脈で説明されているが、これは便宜上のものである。本明細書に説明する教示は、ノイズ低減、トーンマッピング、及びホワイトバランスプロセスなどの他の画像処理プロセスにも適用することができる。例えば、ノイズ低減のために、コンテンツ係数をノイズ標準偏差に適用(例えば、乗算)することができる。
特定の実施形態及び用途が例示及び記載されてきたが、本発明は、本明細書に開示される厳密な構造及び構成要素に限定されず、本開示の趣旨及び範囲から逸脱することなく、当業者には明らかであろう様々な修正、変更、及び変形が、本明細書に開示される方法及び装置の構成、動作、並びに詳細になされてもよいことを理解されたい。

Claims (20)

  1. 画像の輝度画素値と、前記画像のセグメント内のコンテンツのカテゴリを識別するコンテンツマップとを受信するように構成されたコンテンツ画像処理回路を備える画像処理用の装置であって、前記コンテンツ画像処理回路が、
    前記画像内のコンテンツの前記識別されたカテゴリと、前記画像の画素のテクスチャ値又は前記画素のクロマ値の少なくとも1つとに従って、前記画素に関連付けられたコンテンツ係数を決定するように構成されたコンテンツ係数回路であって、前記テクスチャ値は、前記画像内のテクスチャに基づく、前記画素に関連付けられたコンテンツのカテゴリの尤度を示し、前記クロマ値は、前記画像の色情報に基づく、前記画素に関連付けられたコンテンツの前記カテゴリの尤度を示す、コンテンツ係数回路と、
    前記コンテンツ係数を受信するために前記コンテンツ係数回路に結合されており、少なくとも前記コンテンツ係数を前記画素の輝度画素値のバージョンに適用することにより、前記画素の輝度画素値の鮮鋭化済みバージョンを生成するように構成されたコンテンツ修正回路であって、前記コンテンツ修正回路が、(i)前記コンテンツ係数が閾値を上回ることに応じて、鮮鋭化演算を実行することと、(ii)前記コンテンツ係数が前記閾値を下回ることに応じて、平滑化演算を実行することとにより、前記コンテンツ係数を前記輝度画素値の前記バージョンに適用するように構成されている、コンテンツ修正回路と、
    を含む、画像処理用の装置。
  2. 前記コンテンツマップが、前記コンテンツマップを生成するために前記画像のバージョンに対して機械学習演算を実行するように構成されたニューラルプロセッサ回路によって生成される、請求項1に記載の装置。
  3. 前記コンテンツマップが、前記画像に対してダウンスケーリングされる、請求項1に記載の装置。
  4. 前記コンテンツ係数回路が、前記コンテンツマップをアップサンプリングすることにより、前記コンテンツ係数を決定するように構成されている、請求項3に記載の装置。
  5. 前記コンテンツマップが、
    前記コンテンツマップが前記画像のサイズに一致するまで拡大されたとき、前記画素を取り囲む前記コンテンツマップ内の格子点に関連付けられたコンテンツ係数を取得することと、
    前記画素に関連付けられた前記コンテンツ係数を取得するために前記コンテンツ係数を補間することと
    によりアップサンプリングされる、請求項4に記載の装置。
  6. 前記コンテンツ係数が、尤度値に従って重み付けされ、前記尤度値が、前記画像内の前記コンテンツの前記識別されたカテゴリ、前記テクスチャ値、及び前記クロマ値のうちの1つに基づく、請求項1に記載の装置。
  7. 前記輝度画素値は、前記画像が第1の情報と、前記第1の情報の周波数成分よりも低い周波数成分を含む第2の情報とに分割されたとき、前記画像の前記第1の情報に含まれる、請求項1に記載の装置。
  8. 前記コンテンツ画像処理回路に結合されたバイラテラルフィルタを更に備え、前記バイラテラルフィルタが、前記輝度画素値の前記バージョンを生成するように構成されている、請求項1に記載の装置。
  9. 前記鮮鋭化演算が、前記コンテンツ係数を前記輝度画素値の前記バージョンと乗算することを含み、前記平滑化演算が、前記コンテンツ係数に基づいて前記輝度画素値の前記バージョンをブレンディングすることを含む、請求項1に記載の装置。
  10. 前記コンテンツマップが、前記コンテンツマップ内の格子点に対応する前記画像の画素に適用されるべき鮮鋭化の量を示すヒートマップである、請求項1に記載の装置。
  11. 画像の輝度画素値を受信することと、
    前記画像のセグメント内のコンテンツのカテゴリを識別するコンテンツマップを受信することと、
    前記画像内のコンテンツの前記識別されたカテゴリと、前記画像の画素のテクスチャ値又は前記画素のクロマ値の少なくとも1つとに従って、前記画素に関連付けられたコンテンツ係数を決定することであって、前記テクスチャ値は、前記画像内のテクスチャに基づく、前記画素に関連付けられたコンテンツのカテゴリの尤度を示し、前記クロマ値は、前記画像の色情報に基づく、前記画素に関連付けられたコンテンツの前記カテゴリの尤度を示す、ことと、
    少なくとも前記コンテンツ係数を前記画素の輝度画素値のバージョンに適用することにより、前記画素の輝度画素値の鮮鋭化済みバージョンを生成することであって、前記コンテンツ係数を前記画素の輝度画素値のバージョンに適用することが、(i)前記コンテンツ係数が閾値を上回ることに応じて、鮮鋭化演算を実行することと、(ii)前記コンテンツ係数が前記閾値を下回ることに応じて、平滑化演算を実行することと、
    を含む、方法。
  12. ニューラルプロセッサ回路によって前記コンテンツマップを生成することを更に含み、前記ニューラルプロセッサ回路が、前記コンテンツマップを生成するために前記画像のバージョンに対して機械学習演算を実行する、請求項11に記載の方法。
  13. 前記コンテンツマップが、前記画像に対してダウンスケーリングされる、請求項11に記載の方法。
  14. 前記コンテンツ係数を決定することが、前記コンテンツマップをアップサンプリングすることを含む、請求項13に記載の方法。
  15. 前記コンテンツマップをアップサンプリングすることが、
    前記コンテンツマップが前記画像のサイズに一致するまで拡大されたとき、前記画素を取り囲む前記コンテンツマップ内の格子点に関連付けられたコンテンツ係数を取得することと、
    前記画素に関連付けられた前記コンテンツ係数を取得するために前記コンテンツ係数を補間することと
    を含む、請求項14に記載の方法。
  16. 機械学習アルゴリズムを画像に実行することにより、前記画像のセグメント内のコンテンツのカテゴリを識別するコンテンツマップを生成するように構成されたニューラルプロセッサ回路と、
    前記ニューラルプロセッサ回路に結合されたコンテンツ画像処理回路と、を含む電子デバイスであって、前記コンテンツ画像処理回路が、前記画像の輝度画素値及び前記コンテンツマップを受信するように構成され、前記コンテンツ画像処理回路が、
    前記画像内のコンテンツの前記識別されたカテゴリと、前記画像の画素のテクスチャ値又は前記画素のクロマ値の少なくとも1つとに従って、前記画素に関連付けられたコンテンツ係数を決定するように構成されたコンテンツ係数回路であって、前記テクスチャ値は、前記画像内のテクスチャに基づく、前記画素に関連付けられたコンテンツのカテゴリの尤度を示し、前記クロマ値は、前記画像の色情報に基づく、前記画素に関連付けられたコンテンツの前記カテゴリの尤度を示す、コンテンツ係数回路と、
    前記コンテンツ係数を受信するために前記コンテンツ係数回路に結合されており、少なくとも前記コンテンツ係数を前記画素の輝度画素値のバージョンに適用することにより、前記画素の輝度画素値の鮮鋭化済みバージョンを生成するように構成されたコンテンツ修正回路であって、前記コンテンツ修正回路が、(i)前記コンテンツ係数が閾値を上回ることに応じて、鮮鋭化演算を実行することと、(ii)前記コンテンツ係数が前記閾値を下回ることに応じて、平滑化演算を実行することにより、前記コンテンツ係数を前記輝度画素値のバージョンに適用するように構成されている、コンテンツ修正回路と、
    を含む、電子デバイス。
  17. 前記コンテンツマップが、前記画像に対してダウンスケーリングされる、請求項16に記載の電子デバイス。
  18. 前記コンテンツ係数回路が、前記コンテンツマップをアップサンプリングすることにより、前記コンテンツ係数を決定するように構成されている、請求項17に記載の電子デバイス。
  19. 前記コンテンツマップが前記画像のサイズに一致するまで拡大されたとき、前記画素を取り囲む格子点に関連付けられたコンテンツ係数を取得することと、
    前記画素に関連付けられた前記コンテンツ係数を取得するために前記コンテンツ係数を補間することと
    によりアップサンプリングされる、請求項18に記載の電子デバイス。
  20. 前記コンテンツ画像処理回路に結合されたバイラテラルフィルタを更に備え、前記バイラテラルフィルタが、前記輝度画素値の前記バージョンを生成するように構成されている、請求項16に記載の電子デバイス。
JP2022562034A 2020-04-13 2021-03-19 コンテンツに基づく画像処理 Active JP7387917B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023194560A JP2024037722A (ja) 2020-04-13 2023-11-15 コンテンツに基づく画像処理

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/846,904 US11488285B2 (en) 2020-04-13 2020-04-13 Content based image processing
US16/846,904 2020-04-13
PCT/US2021/023128 WO2021211257A1 (en) 2020-04-13 2021-03-19 Content based image processing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023194560A Division JP2024037722A (ja) 2020-04-13 2023-11-15 コンテンツに基づく画像処理

Publications (2)

Publication Number Publication Date
JP2023511226A JP2023511226A (ja) 2023-03-16
JP7387917B2 true JP7387917B2 (ja) 2023-11-28

Family

ID=75439576

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2022562034A Active JP7387917B2 (ja) 2020-04-13 2021-03-19 コンテンツに基づく画像処理
JP2023194560A Pending JP2024037722A (ja) 2020-04-13 2023-11-15 コンテンツに基づく画像処理

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023194560A Pending JP2024037722A (ja) 2020-04-13 2023-11-15 コンテンツに基づく画像処理

Country Status (6)

Country Link
US (2) US11488285B2 (ja)
JP (2) JP7387917B2 (ja)
KR (2) KR102585573B1 (ja)
CN (1) CN115428009B (ja)
DE (1) DE112021002288T5 (ja)
WO (1) WO2021211257A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230007425A (ko) * 2020-04-24 2023-01-12 스펙트럼 옵틱스 아이엔씨. 신경망 지원 카메라 이미지 또는 비디오 처리 파이프라인

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256831A (ja) 2002-02-27 2003-09-12 Eastman Kodak Co ノイズを増幅することなく、デジタル画像を鮮鋭化する方法
JP2004254158A (ja) 2003-02-21 2004-09-09 Pentax Corp 画像処理装置
JP2015023445A (ja) 2013-07-19 2015-02-02 シャープ株式会社 画像処理装置、及び画像形成装置
JP2017007243A (ja) 2015-06-24 2017-01-12 キヤノン株式会社 画像処理装置、画像処理装置の制御方法およびプログラム

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330372B1 (en) * 1999-09-13 2001-12-11 Intel Corporation Compression edge adaptive video and image sharpening and scaling
US6738494B1 (en) * 2000-06-23 2004-05-18 Eastman Kodak Company Method for varying an image processing path based on image emphasis and appeal
US6879733B2 (en) * 2001-01-18 2005-04-12 Seiko Epson Corporation Image artifact removal technique for LCP
US20030026495A1 (en) * 2001-03-07 2003-02-06 Gondek Jay Stephen Parameterized sharpening and smoothing method and apparatus
US6564851B1 (en) * 2001-12-04 2003-05-20 Yu Hua Liao Detachable drapery hanger assembly for emergency use
US7050636B2 (en) * 2001-12-07 2006-05-23 Eastman Kodak Company Method and system for improving an image characteristic based on image content
US7092573B2 (en) 2001-12-10 2006-08-15 Eastman Kodak Company Method and system for selectively applying enhancement to an image
US6965702B2 (en) * 2002-02-27 2005-11-15 Eastman Kodak Company Method for sharpening a digital image with signal to noise estimation
US7936941B2 (en) * 2004-10-08 2011-05-03 Panasonic Corporation Apparatus for clearing an image and method thereof
US20060093234A1 (en) * 2004-11-04 2006-05-04 Silverstein D A Reduction of blur in multi-channel images
US7876833B2 (en) 2005-04-11 2011-01-25 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive up-scaling for spatially scalable coding
US8264610B2 (en) 2006-04-18 2012-09-11 Marvell World Trade Ltd. Shared memory multi video channel display apparatus and methods
US20070242160A1 (en) 2006-04-18 2007-10-18 Marvell International Ltd. Shared memory multi video channel display apparatus and methods
US20080267524A1 (en) * 2007-04-30 2008-10-30 Doron Shaked Automatic image enhancement
US8031961B2 (en) * 2007-05-29 2011-10-04 Hewlett-Packard Development Company, L.P. Face and skin sensitive image enhancement
DE102007058498A1 (de) * 2007-12-05 2009-06-10 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Rauschunterdrückung in medizinischen Bildern
US20090169074A1 (en) * 2008-01-02 2009-07-02 General Electric Company System and method for computer assisted analysis of medical image
JP2010055194A (ja) * 2008-08-26 2010-03-11 Sony Corp 画像処理装置および方法、学習装置および方法、並びにプログラム
US8351725B2 (en) * 2008-09-23 2013-01-08 Sharp Laboratories Of America, Inc. Image sharpening technique
US8717459B2 (en) * 2008-12-11 2014-05-06 Texas Instruments Incorporated Method and apparatus for improving automatic white balance with scene information
JP5051156B2 (ja) * 2009-03-05 2012-10-17 カシオ計算機株式会社 画像処理装置及びプログラム
EP2435983A4 (en) * 2009-05-28 2017-08-23 Hewlett-Packard Development Company, L.P. Image processing
US8194170B2 (en) * 2009-06-02 2012-06-05 Algonquin College Axicon lens array
US8593483B2 (en) * 2009-10-20 2013-11-26 Apple Inc. Temporal filtering techniques for image signal processing
JP5615088B2 (ja) * 2010-08-18 2014-10-29 キヤノン株式会社 画像処理装置及びその方法、プログラム、並びに撮像装置
JP2012235332A (ja) * 2011-05-02 2012-11-29 Sony Corp 撮像装置、および撮像装置制御方法、並びにプログラム
JP6279825B2 (ja) 2011-05-18 2018-02-14 ソニー株式会社 画像処理装置、画像処理方法、プログラムおよび撮像装置
TWI460681B (zh) * 2012-02-20 2014-11-11 Novatek Microelectronics Corp 影像的邊緣處理方法及影像處理裝置
WO2013148566A1 (en) * 2012-03-26 2013-10-03 Viewdle, Inc. Image blur detection
US8724919B2 (en) * 2012-09-21 2014-05-13 Eastman Kodak Company Adjusting the sharpness of a digital image
US8928772B2 (en) * 2012-09-21 2015-01-06 Eastman Kodak Company Controlling the sharpness of a digital image
JP6013178B2 (ja) * 2012-12-28 2016-10-25 株式会社東芝 画像処理装置および画像処理方法
US9336574B2 (en) * 2013-01-07 2016-05-10 GM Global Technology Operations LLC Image super-resolution for dynamic rearview mirror
US9280806B2 (en) * 2013-01-10 2016-03-08 Broadcom Corporation Edge smoothing block filtering and blending
JP6164926B2 (ja) * 2013-05-16 2017-07-19 オリンパス株式会社 ノイズ低減処理装置
US9911174B2 (en) * 2015-08-26 2018-03-06 Apple Inc. Multi-rate processing for image data in an image processing pipeline
US10269095B2 (en) * 2015-08-31 2019-04-23 Apple Inc. Dynamically determining filtering strength for noise filtering in image processing
US9992467B2 (en) * 2016-06-30 2018-06-05 Apple Inc. Parallel computer vision and image scaling architecture
CN110858903B (zh) * 2018-08-22 2022-07-12 华为技术有限公司 色度块预测方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256831A (ja) 2002-02-27 2003-09-12 Eastman Kodak Co ノイズを増幅することなく、デジタル画像を鮮鋭化する方法
JP2004254158A (ja) 2003-02-21 2004-09-09 Pentax Corp 画像処理装置
JP2015023445A (ja) 2013-07-19 2015-02-02 シャープ株式会社 画像処理装置、及び画像形成装置
JP2017007243A (ja) 2015-06-24 2017-01-12 キヤノン株式会社 画像処理装置、画像処理装置の制御方法およびプログラム

Also Published As

Publication number Publication date
WO2021211257A1 (en) 2021-10-21
KR20230141956A (ko) 2023-10-10
KR102585573B1 (ko) 2023-10-05
JP2023511226A (ja) 2023-03-16
DE112021002288T5 (de) 2023-03-16
JP2024037722A (ja) 2024-03-19
US20230020964A1 (en) 2023-01-19
CN115428009B (zh) 2024-04-16
US11488285B2 (en) 2022-11-01
KR20220151713A (ko) 2022-11-15
US20210319536A1 (en) 2021-10-14
CN115428009A (zh) 2022-12-02

Similar Documents

Publication Publication Date Title
JP6705065B1 (ja) インターリーブチャネルデータ用の構成可能な畳み込みエンジン
CN110637297B (zh) 卷积引擎、数据处理方法和电子设备
JP6574534B2 (ja) 並列コンピュータビジョン及び画像スケーリング・アーキテクチャ
US10262401B2 (en) Noise reduction using sequential use of multiple noise models
US9514525B2 (en) Temporal filtering for image data using spatial filtering and noise history
US20170061234A1 (en) Noise filtering and image sharpening utilizing common spatial support
WO2018200079A1 (en) Convolution engine for merging interleaved channel data
US11010873B2 (en) Per-pixel photometric contrast enhancement with noise control
CN113508416A (zh) 图像融合处理模块
US11863889B2 (en) Circuit for correcting lateral chromatic abberation
US10991083B2 (en) Directional bilateral filtering with improved noise reduction along edges
JP2024037722A (ja) コンテンツに基づく画像処理
US11074678B2 (en) Biasing a noise filter to preserve image texture
KR20230124699A (ko) 이미지 데이터의 조합된 다운 샘플링 및 보정을 위한회로

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221013

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221013

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20221013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230413

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230913

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231115

R150 Certificate of patent or registration of utility model

Ref document number: 7387917

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150