JP2012142865A - 画像処理装置及び画像処理方法 - Google Patents
画像処理装置及び画像処理方法 Download PDFInfo
- Publication number
- JP2012142865A JP2012142865A JP2011000803A JP2011000803A JP2012142865A JP 2012142865 A JP2012142865 A JP 2012142865A JP 2011000803 A JP2011000803 A JP 2011000803A JP 2011000803 A JP2011000803 A JP 2011000803A JP 2012142865 A JP2012142865 A JP 2012142865A
- Authority
- JP
- Japan
- Prior art keywords
- image
- memory
- image data
- unit
- block
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Studio Devices (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】画像メモリに対してシステムバスを介して、画像処理部が接続されて、動き検出を行う場合に、適切なメモリアクセスが行えるようにする。
【解決手段】ターゲットフレームの画像データと参照フレームの画像データとの間で、動きベクトルをブロック単位で算出する画像処理部16を備える。その画像処理部16での処理のために、過去のフレームの画像データを、参照フレームの画像データとして保持する参照フレーム用画像メモリ40を備える。また、画像処理部16での算出を行う際に、参照フレームのマッチング処理範囲を保持する1次メモリ16aを備える。さらに、参照フレーム用画像メモリ40に記憶された参照フレームの画像データから、必要な範囲の画像データを読み出して保持し、保持された画像データから、マッチング処理範囲のデータを読み出して、1次メモリ16aに供給する2次メモリ60を備える。
【選択図】図1
【解決手段】ターゲットフレームの画像データと参照フレームの画像データとの間で、動きベクトルをブロック単位で算出する画像処理部16を備える。その画像処理部16での処理のために、過去のフレームの画像データを、参照フレームの画像データとして保持する参照フレーム用画像メモリ40を備える。また、画像処理部16での算出を行う際に、参照フレームのマッチング処理範囲を保持する1次メモリ16aを備える。さらに、参照フレーム用画像メモリ40に記憶された参照フレームの画像データから、必要な範囲の画像データを読み出して保持し、保持された画像データから、マッチング処理範囲のデータを読み出して、1次メモリ16aに供給する2次メモリ60を備える。
【選択図】図1
Description
この発明は、システムバスを介して画像メモリ部と、種々の画像処理部とが接続され、画像メモリをアクセスしながら、種々の画像処理部がそれぞれの画像データ処理を実行する画像処理装置及び画像処理方法に関する。
2つの画面間の動きベクトルを、画像情報自身から求めるブロックマッチング手法は、歴史の古い技術である。テレビジョンカメラのパン・チルト検出や被写体追尾、MPEG(Moving Picture Experts Group)方式の動画符号化などを中心に開発が進んだ。また、90年代に入ってからは、画像の重ね合わせによる、センサレス手ブレ補正や低照度撮影時のノイズ除去(Noise Reduction:以降、NRと表記する)など多岐に渡って応用が進められている。
ブロックマッチングは、注目画面である参照画面と、当該参照画面の動きの元となる元画面(ターゲット画面と称する)との間の2画面間の動きベクトルを算出する方法である。この2画面間の動きベクトルの算出時に、所定の大きさの矩形領域のブロックについて、参照画面と元画面との間での相関を算出することにより算出する。元画面が時間的に参照画面よりも前の画面とされる場合(例えば、MPEGにおける動き検出の場合)と、参照画面が時間的に元画面よりも前の画面とされる場合(例えば、後述する画像フレームの重ね合わせによるノイズ低減の場合)の両方がある。
なお、この明細書で、画面とは、1フレームまたは1フィールドの画像データからなり、1枚分としてディスプレイに表示される画像を意味しているものとしている。但し、この明細書における以下の説明の便宜上、画面は1フレームからなるものとして、画面をフレームと称する場合もある。例えば、参照画面は参照フレーム、元画面は元フレームと称する場合もある。
ブロックマッチング手法は、ターゲットフレームを、複数個のターゲットブロックに分割し、各ターゲットブロックに対して、参照フレームに検索範囲を設定する。そして、画像メモリから、ターゲットフレームのターゲットブロックと参照フレームの検索範囲内の参照ブロックを読み出し、各画素の差分値絶対和を計算する。以下の説明では、差分値絶対和をSAD値と称する。SAD値を計算すると、検索範囲の広さ分のSAD値テーブルを形成する。そして、そのSAD値テーブル内のSAD値の最小値の座標値をターゲットブロックについての動きベクトルとしている。
ブロックマッチングを行う際に画像データを記憶する画像メモリと、動きベクトル検出部などとは、システムバスを通じて接続され、メモリコントローラにより、画像メモリに対する書き込みおよび読み出しが制御される。
ブロックマッチング手法では、画像メモリからの画素単位のデータについてのSAD値を計算するようにするので、画像自体の画素数や、検索範囲の広さに比例して、画像メモリへのアクセスが多くなり、バス帯域を大きくする必要がある。ここで、バス帯域とは、データを転送するバス上で、輻輳を回避してデータ転送することができるデータレートおよびバス幅(ビット数)などからなる量である。バス帯域が大きくなると、システムの規模が大きくなると共に、コストが増大するという問題がある。
この問題に対して、従来、画像に動きが無い静止状態であれば、マッチング処理をしない手法や、参照フレームの画像を間引いて情報量を落とす手法などが提案されている。
また、ブロックマッチング精度を落とさずに、バス帯域を削減する方法としては、参照フレームの参照ブロックの共有部分を保持しておき、追加部分のみを更新する手法が有効である。
また、ブロックマッチング精度を落とさずに、バス帯域を削減する方法としては、参照フレームの参照ブロックの共有部分を保持しておき、追加部分のみを更新する手法が有効である。
しかしながら、これらの手法は、ブロックマッチングの精度を落とすものであって、高い精度が求められないような、ある限定されたアプリケーションにしか適用できないという問題がある。
ここで、参照フレームの参照ブロックの共有部分を保持しておき、追加部分のみを更新する手法を適用すれば、ブロックマッチング精度を落とさずにバス帯域を削減することができる。しかしながら、マッチング処理を行うブロックの順番が重要になり、隣り合うブロックを続けてマッチング処理しない場合、マッチング処理の順番が特定できない場合などについてはバス帯域削減を図れないという問題がある。
ここで、参照フレームの参照ブロックの共有部分を保持しておき、追加部分のみを更新する手法を適用すれば、ブロックマッチング精度を落とさずにバス帯域を削減することができる。しかしながら、マッチング処理を行うブロックの順番が重要になり、隣り合うブロックを続けてマッチング処理しない場合、マッチング処理の順番が特定できない場合などについてはバス帯域削減を図れないという問題がある。
また、画像メモリに対してシステムバスを介して、ブロックマッチング処理部以外の複数個の画像データ処理部が接続されている場合を想定したとする。このとき、画像メモリに対する画像データのメモリアクセスの仕方を、ブロックマッチング処理のためには効率が良い方式を採用したとしても、他の画像データ処理部については、その画像メモリに対する画像データのメモリアクセス手法が適さなくなってしまう。他の画像データ処理部については、かえってバス帯域を増大する方向になってしまう場合があるという問題がある。
特許文献1では、出力画像データが、画像の垂直方向のライン数と水平方向の画素数の組み合わせが異なる2種類のブロック単位で、2つのメモリ領域に書き込まれる手法が提案されている。この手法では、後段回路へのデータ受け渡しに適したフォーマットと、ブロックマッチングに適したデータフォーマットの両方を用意することによって、両方の要求を満たしているものの、DRAM上のメモリ容量は2倍になっている。従って、バス帯域削減という問題は解決しているものの、新たにメモリ容量や消費電力という問題を生んでいた。
バス帯域とメモリ容量は密接な関係にあり、どちらかだけを削減しても、システムコスト削減にはつながらず、両方とも削減してはじめて価値がある。
この発明は、以上の点にかんがみ、画像メモリに対してシステムバスを介して、複数個の画像データ処理部が接続されている場合において、上述の問題点を回避しながら、バス帯域の削減とメモリ容量の削減を図ることを目的とする。
本発明は、ターゲットフレームの画像データと参照フレームの画像データとの間で、動きベクトルをブロック単位で算出する画像処理部を備えた画像処理装置に適用される。
その画像処理部での処理のために、過去のフレームの画像データを、参照フレームの画像データとして保持する参照フレーム用画像メモリを備える。また、画像処理部での算出を行う際に、参照フレームのマッチング処理範囲を保持する1次メモリを備える。さらに、参照フレーム用画像メモリに記憶された参照フレームの画像データから、必要な範囲の画像データを読み出して保持し、保持された画像データから、マッチング処理範囲のデータを読み出して、1次メモリに供給する2次メモリとを備える。さらに、データ圧縮器と伸長器を備える。
その画像処理部での処理のために、過去のフレームの画像データを、参照フレームの画像データとして保持する参照フレーム用画像メモリを備える。また、画像処理部での算出を行う際に、参照フレームのマッチング処理範囲を保持する1次メモリを備える。さらに、参照フレーム用画像メモリに記憶された参照フレームの画像データから、必要な範囲の画像データを読み出して保持し、保持された画像データから、マッチング処理範囲のデータを読み出して、1次メモリに供給する2次メモリとを備える。さらに、データ圧縮器と伸長器を備える。
本発明によると、DRAMなどの大容量メモリで構成される参照フレーム用画像メモリは、記憶された画像データを後段の回路で使用する際に都合のよいフォーマットなどで記録させる構成とするとすることができる。一方、1次メモリについては、2次メモリを介してマッチング処理範囲の画像データが供給されるので、2次メモリ側で変換することで、ブロックマッチングに適したフォーマットの画像データとして保持させることが容易にできる。また、大容量メモリの画像データを圧縮して効率よく記録することも可能になる。
本発明によると、大容量メモリで構成される参照フレーム用画像メモリは、記憶された画像データを後段の回路で使用する際に都合のよいフォーマットなどで記録させることができ、例えば圧縮して効率よく記録することが可能になる。また、1次メモリについては、2次メモリで事前にブロックマッチングに適したフォーマットに変換されたデータの供給を受けることで、ブロックマッチング処理を、効率よく行うことができるようになる。従って、2次メモリを設けたことで、大容量メモリで構成される参照フレーム用画像メモリの記録効率向上と、1次メモリでのブロックマッチング処理用のデータの取得処理効率向上とを両立させて、適切なメモリアクセスが行える効果を有する。
以下、本発明の一実施の形態の例を、以下の順序で説明する。
1.撮像装置の構成(図1,図3,図4)
2.メモリコピー部の構成(図2)
3.動き検出・動き補償部の説明(図5〜図12)
4.撮像画像のノイズ低減処理の流れ(図13〜図15)
5.階層化ブロックマッチング処理の流れの例(図16〜図17)
6.メモリ上のフォーマットの説明(図18〜図30)
7.2次メモリを使用した処理の説明(図31〜図38)
1.撮像装置の構成(図1,図3,図4)
2.メモリコピー部の構成(図2)
3.動き検出・動き補償部の説明(図5〜図12)
4.撮像画像のノイズ低減処理の流れ(図13〜図15)
5.階層化ブロックマッチング処理の流れの例(図16〜図17)
6.メモリ上のフォーマットの説明(図18〜図30)
7.2次メモリを使用した処理の説明(図31〜図38)
[1.撮像装置の構成]
この発明による画像処理装置の実施の形態として、撮像装置の場合を例にとって、図を参照しながら説明する。
ここでの撮像装置は、ブロックマッチングにより2画面間の動きベクトルを検出し、検出した動きベクトルを用いて動き補償画像を生成し、生成した動き補償画像とノイズ低減対象の画像を重ね合わせてノイズ低減を行う画像処理を行う画像処理部を備える。まず、この画像処理の概要について説明する。
この発明による画像処理装置の実施の形態として、撮像装置の場合を例にとって、図を参照しながら説明する。
ここでの撮像装置は、ブロックマッチングにより2画面間の動きベクトルを検出し、検出した動きベクトルを用いて動き補償画像を生成し、生成した動き補償画像とノイズ低減対象の画像を重ね合わせてノイズ低減を行う画像処理を行う画像処理部を備える。まず、この画像処理の概要について説明する。
ここでは、連続して撮影された複数枚の画像を、動き検出および動き補償を用いて位置合わせをした後、重ね合わせ(加算)することで、ノイズが低減された画像を得ることができるようにしている。すなわち、複数枚の画像のそれぞれにおけるノイズはランダムなものであるので、同一内容の画像を重ね合わせることで、画像に対してノイズが低減されるものである。
以下の説明において、動き検出および動き補償を用いて複数枚の画像を重ね合わせて、ノイズを低減することをNR(Noise Reduction)と呼び、NRによりノイズ低減された画像をNR画像と称することとする。
また、この明細書では、ノイズ低減を施したい画面(画像)をターゲット画面(ターゲットフレーム)、重ね合わせたい画面を参照画面(参照フレーム)と定義する。連続して撮影された画像は、撮影者の手ブレなどにより、画像の位置がずれており、両画像の重ね合わせを行うには、位置合わせが重要となる。ここで、考慮しなければならないのは、手ブレのような画面全体のブレと共に、画面内における被写体の動きも存在することである。
この例の撮像装置において、静止画撮影時は、図3に示すように、高速で複数枚の画像の撮影を行い、1枚目の撮影画像をターゲットフレーム100とする。そして、2枚目以降、所定枚数の撮影画像を参照フレーム101とし、ターゲットフレーム100と参照フレーム101との重ね合わせを行い、その重ね合わせたものを静止画撮影画像として記録するようにする。すなわち、撮影者が撮像装置のシャッターボタンを押下操作すると、高速で前記所定枚数の画像が撮影され、その1枚目に撮影した画像(フレーム)に対して、時間的に後で撮影された複数枚の画像(フレーム)が、重ね合わされることになる。
また、動画撮影時は、図4のように、撮像素子から出力されている現フレームの画像をターゲットフレーム100の画像とし、その前フレームの過去の画像を参照フレーム101の画像とする。したがって、現フレームの画像のノイズ低減を行うために、現フレームの前フレームの画像を現フレームに重ね合わせるということになる。
このような動き検出及び動き補償を行う撮像装置の構成について、図1を参照して説明する。
図1に示す撮像装置は、システムバス2にCPU(Central Processing Unit)1が接続されると共に、システムバス2に、撮像信号処理系や、ユーザ操作入力部3、大容量メモリ40、記録再生装置部5などが接続されて構成されている。なお、CPU1は、図示は省略するが、種々のソフトウエア処理を行なうプログラムを記憶するROM(Read Only Memory)やワークエリア用RAM(Random Access Memory)などを含むものとしている。本明細書で説明するCPU1以外のCPUについても同様である。
大容量メモリ40は、DRAMなどの比較的大容量のメモリとそのコントローラとで構成され、1フレーム又は複数フレームの画像データを記憶する容量の画像メモリである。メモリのコントローラは、メモリ40の外部に設けて、システムバス2などを介して書き込み及び読み出しが制御される構成でもよい。なお、以下の説明では、大容量メモリ40は画像メモリ40と称する。
図1に示す撮像装置は、システムバス2にCPU(Central Processing Unit)1が接続されると共に、システムバス2に、撮像信号処理系や、ユーザ操作入力部3、大容量メモリ40、記録再生装置部5などが接続されて構成されている。なお、CPU1は、図示は省略するが、種々のソフトウエア処理を行なうプログラムを記憶するROM(Read Only Memory)やワークエリア用RAM(Random Access Memory)などを含むものとしている。本明細書で説明するCPU1以外のCPUについても同様である。
大容量メモリ40は、DRAMなどの比較的大容量のメモリとそのコントローラとで構成され、1フレーム又は複数フレームの画像データを記憶する容量の画像メモリである。メモリのコントローラは、メモリ40の外部に設けて、システムバス2などを介して書き込み及び読み出しが制御される構成でもよい。なお、以下の説明では、大容量メモリ40は画像メモリ40と称する。
ユーザ操作入力部3を通じた撮像記録開始操作を受けて、図1の撮像装置の撮像信号処理系は、後述するような撮像画像データの記録処理を行なう。また、ユーザ操作入力部3を通じた撮像記録画像の再生開始操作を受けて、図1の撮像装置の撮像信号処理系は、記録再生装置部5の記録媒体に記録された撮像画像データの再生処理を行なう。
図1に示すように、撮像信号処理系として、撮像レンズ10Lを備えるカメラ光学系(図示は省略)を通じた被写体からの入射光は、撮像素子11に照射されて撮像される。この例では、撮像素子11は、CCD(Charge Coupled Device)イメージャで構成されている。なお、撮像素子11は、CMOS(Complementary Metal Oxide Semiconductor)イメージャなどの他のイメージャで構成してもよい。
この例の撮像装置においては、撮像記録開始操作がなされると、レンズ10Lを通じて入力された映像が、撮像素子11により撮像画像信号に変換される。この撮像画像信号は、タイミング信号発生部12からのタイミング信号に同期した信号として、赤(R)、緑(G)、青(B)の3原色から構成されるベイヤー配列のRAW信号(生の信号)であるアナログ撮像信号として出力される。出力されたアナログ撮像信号は、前処理部13に供給され、欠陥補正やγ補正等の前処理が施され、データ変換部14に供給される。
データ変換部14は、これに入力されたRAW信号であるアナログ撮像信号を、輝度信号成分Yと、色差信号成分Cb/Crとにより構成されるデジタル画像データ(YCデータ)に変換し、そのデジタル画像データを、ターゲット画像として、動き検出・動き補償部16に供給する。動き検出・動き補償部16内では、バッファメモリ16aのターゲット画像用の領域に記憶させる。
また、動き検出・動き補償部16では、既に画像メモリ40に書き込まれた以前のフレームの画像信号を、参照画像として、自動メモリコピー部50及び2次メモリ60を介して取得する。その習得した参照画像の画像データは、動き検出・動き補償部16のバッファメモリ16aの参照画像用の領域に記憶させる。バッファメモリ16aの具体的な構成例については後述する。このバッファメモリ16aが、後述する内部1次メモリとして使用される。以下の説明では、バッファメモリ16aを1次メモリ又は内部1次メモリと称する。
動き検出・動き補償部16では、ターゲットフレームの画像データと参照フレームの画像データを使用して、後述するブロックマッチング処理がなされて、ターゲットブロック単位での動きベクトルが検出される。動きベクトルを検出する際には、縮小面のサーチと、基底面のサーチとが行われる。動きベクトルを検出する際には、その動きベクトルの検出精度を示すヒット率βが算出されて出力される。
そして、動き検出・動き補償部16内で、検出された動きベクトルに基づいて、ブロック単位で動き補償が行われた動き補償画像が生成される。生成された動き補償画像と、元のターゲット画像のデータは、画像重ね合わせ部17を構成する加算率計算部171及び加算部172に供給する。
加算率計算部171では、ヒット率βに基づいて、ターゲット画像と動き補償画像との加算率αが算出され、算出された加算率αを加算部172に供給する。
加算率計算部171では、ヒット率βに基づいて、ターゲット画像と動き補償画像との加算率αが算出され、算出された加算率αを加算部172に供給する。
加算部172では、加算率αで、ターゲット画像のデータと、動き補償画像のデータとの加算処理を行って、画像重ね合わせ処理を行い、ノイズ低減された加算画像を得る。なお、以下の説明では、ノイズ低減された加算画像をNR画像と称する。
加算部172が出力する重ね合わせ結果としての、ノイズ低減された加算画像の画像データは、データ圧縮部35でデータ圧縮された後、画像メモリ40に記憶させる。
加算部172が出力する重ね合わせ結果としての、ノイズ低減された加算画像の画像データは、データ圧縮部35でデータ圧縮された後、画像メモリ40に記憶させる。
データ圧縮部35では、画像メモリ40にデータを効率よく記憶させるための圧縮処理が行われる。ここでは、1フレームの画像データを、動き検出・動き補償部16でのブロックマッチング処理を行う上でのターゲットブロック単位の画像データに分割して、そのターゲットブロック単位の画像データを圧縮処理する。この圧縮処理時には、1ターゲットブロック単位のデータを、さらに1ラインごとに分割して、その1ラインごとのデータを圧縮処理してある。圧縮処理する分割例については後述する(図34など)。
画像メモリ40は、圧縮処理されたNR画像のデータを、1フレーム分、画像メモリ40内の1V前フレーム記憶部41に記憶させ保持させる。画像メモリ40は、1V前フレーム記憶部41の他に、2V前フレーム記憶部42を備え、1フレーム周期ごとに、1V前フレーム記憶部41から2V前フレーム記憶部42に記憶データが移される。この1V前フレーム記憶部41から2V前フレーム記憶部42への記憶データの移動に連動して、2V前フレーム記憶部42に記憶されていたデータは、データ伸張部36に読み出される。
なお、図1の構成では2フレームの画像データを記憶させる構成としたが、動き検出・補償部16などでより多くの過去の画像データが必要な場合には、より多くのフレーム数の過去の画像データを記憶させて、参照フレームとして使用する構成としても良い。
なお、図1の構成では2フレームの画像データを記憶させる構成としたが、動き検出・補償部16などでより多くの過去の画像データが必要な場合には、より多くのフレーム数の過去の画像データを記憶させて、参照フレームとして使用する構成としても良い。
データ伸張部36では、画像メモリ40に記憶させる際に、データ圧縮部35で圧縮した画像データを元に伸張させる処理が行われる。即ち、データ圧縮部35で、ターゲットブロック単位で圧縮された画像データの伸張処理が行われる。データ伸張部36で伸張された映像データは、解像度変換部37に供給する。解像度変換部37では、表示用や出力用の解像度の画像データに変換され、変換された画像データを記録再生装置部5で記録する場合には、動画コーデック部19で変換される。動画コーデック部19で変換された画像データは、記録再生装置部5で記録媒体に記録され、必要な際に記録再生装置部5で記録媒体から読み出される。
そして、解像度変換部37が出力する画像データ、または記録再生装置部5で再生された画像データは、NTSC(National Television System Committee)エンコーダ20に供給される。このNTSCエンコーダ20でNTSC方式の標準カラー映像信号に変換され、例えば液晶表示パネルからなるモニターディスプレイ6に供給される。このようにモニターディスプレイ6に供給されることで、モニター画像がモニターディスプレイ6の表示画面に表示される。なお、図1では、図示を省略したが、NTSCエンコーダ20からの出力映像信号は、映像出力端子を通じて外部に導出することが可能とされている。
画像メモリ40に記憶された画像データは、自動メモリコピー部50の制御で、一部の画像データが読み出されて、2次メモリ60に供給されて記憶される。自動メモリコピー部50の構成については後述するが、画像データのフォーマット変換部56を有する。
2次メモリ60は、1V前フレームの一部記憶部61と、2V前フレームの一部記憶部62とを備える。それぞれの記憶部61,62の記憶データは、動き検出・動き補償部16に供給し、参照フレームのサーチ範囲のデータとされる。1次メモリ16aや2次メモリ60は、例えば、動き検出・動き補償部16を構成する画像処理部に内蔵(又は接続)されたメモリであり、例えばSRAMから構成される。
[2.メモリコピー部の構成]
図2は、本実施の形態の例の自動メモリコピー部50の構成を示した図である。
自動メモリコピー部50は、動き検出・動き補償部31から、キャッシュローテーションコントロール部51に、サーチ範囲の座標情報が供給される。そのサーチ範囲の座標情報に基づいて、画像メモリ40からの読み出しアドレスと、2次メモリ60への書き込みアドレスが生成される。生成された読み出しアドレスは、読み出しコントロール部52から画像メモリ40に供給されて、読み出される。生成された書き込みアドレスは、書き込みコントロール部53から、2次メモリ60に供給されて、書き込まれる。
図2は、本実施の形態の例の自動メモリコピー部50の構成を示した図である。
自動メモリコピー部50は、動き検出・動き補償部31から、キャッシュローテーションコントロール部51に、サーチ範囲の座標情報が供給される。そのサーチ範囲の座標情報に基づいて、画像メモリ40からの読み出しアドレスと、2次メモリ60への書き込みアドレスが生成される。生成された読み出しアドレスは、読み出しコントロール部52から画像メモリ40に供給されて、読み出される。生成された書き込みアドレスは、書き込みコントロール部53から、2次メモリ60に供給されて、書き込まれる。
画像メモリ40から読み出された画像データそのものは、データコントロール部54による制御で転送される。すなわち、画像メモリ40から読み出された画像データは、データ伸張部55に供給され、画像メモリ40への書き込み時に圧縮された画像データが、伸張処理される。このデータ伸張部55での伸張処理は、圧縮時の単位と同じデータ単位で行われる。伸張処理された画像データは、フォーマット変換部56で、動き検出・動き補償部31で処理するための、データ配列(画素配列)の画像データとする、フォーマット変換が行われる。フォーマット変換された画像データが、バッファメモリ57に一旦蓄積された後、書き込みコントロール部53での指示に同期して、2次メモリ60に書き込まれる。
[3.動き検出・動き補償部の説明]
動き検出・動き補償部16では、絶対値差分和であるSAD値を用いてブロックマッチング処理を行うことで、動きベクトル検出を行う。
動き検出・動き補償部16では、絶対値差分和であるSAD値を用いてブロックマッチング処理を行うことで、動きベクトル検出を行う。
<階層化ブロックマッチング処理の概要>
一般的な従来のブロックマッチングにおける動きベクトル検出処理は、ピクセル(画素)単位(1ピクセル単位または複数ピクセル単位)で参照ブロックを移動させて、各移動位置における参照ブロックについてのSAD値を算出する。そして、その算出したSAD値の中から最小値を示すSAD値を検出し、当該最小SAD値を呈する参照ブロック位置に基づいて動きベクトルを検出するようにする。
一般的な従来のブロックマッチングにおける動きベクトル検出処理は、ピクセル(画素)単位(1ピクセル単位または複数ピクセル単位)で参照ブロックを移動させて、各移動位置における参照ブロックについてのSAD値を算出する。そして、その算出したSAD値の中から最小値を示すSAD値を検出し、当該最小SAD値を呈する参照ブロック位置に基づいて動きベクトルを検出するようにする。
しかし、このような従来の動きベクトル検出処理では、サーチ範囲内をピクセル単位で参照ブロックを移動させるようにするので、検索するサーチ範囲に比例して、SAD値を算出するマッチング処理回数が多くなって、マッチング処理時間が大きくなると共に、SADテーブルの容量も大きくなるという問題があった。
そこで、ここでは、ターゲット画像(ターゲットフレーム)および参照画像(参照フレーム)に対して縮小画像を作成し、作成した縮小画像でブロックマッチングを行い、縮小画像での動き検出結果を基に、もとのターゲット画像でのブロックマッチングを行う。ここで、縮小画像のことを縮小面、縮小化をしていない元の画像のことを基底面と呼ぶことにする。したがって、この例では、縮小面でのブロックマッチングを行ったあと、そのマッチング結果を用いて基底面でのブロックマッチングを行う。
図5および図6に、ターゲットフレーム(画像)および参照フレーム(画像)の画像縮小化のイメージを示す。すなわち、この例においては、例えば図5に示すように、基底面ターゲットフレーム130は、水平方向および垂直方向のそれぞれを、1/n(nは正の数)に縮小して、縮小面ターゲットフレーム132とする。したがって、基底面ターゲットフレーム130を複数個に分割して生成した基底面ターゲットブロック131は、縮小面ターゲットフレームでは、水平方向および垂直方向のそれぞれが1/n×1/nに縮小された縮小面ターゲットブロック133となる。
そして、ターゲットフレームの画像縮小倍率1/nに合わせて、参照フレームを縮小する。すなわち、図6に示すように、基底面参照フレーム134は、水平方向および垂直方向のそれぞれを、1/nに縮小して、縮小面参照フレーム135とする。そして、基底面参照フレーム134上で検出された動き補償ブロック103についての動きベクトル104は、縮小面参照フレーム135では、1/n×1/nに縮小された縮小面動きベクトル136として検出される。
なお、上記の例では、ターゲットフレームと参照フレームとの画像縮小倍率は同じとした。これに対して演算量削減のため、ターゲットフレーム(画像)と参照フレーム(画像)とで異なる画像縮小倍率を用い、画素補間等の処理で、両フレームの画素数を合わせて、マッチングを行うようにしてもよい。
また、水平方向および垂直方向のそれぞれの縮小倍率を同一としたが、水平方向と垂直方向とで、縮小倍率を異ならせるようにしても良い。例えば水平方向は1/nに縮小し、垂直方向は、1/m(mは正の数で、n≠m)に縮小する場合には、縮小画面は、元の画面の1/n×1/mの大きさになる。
図7に、縮小面参照ベクトルと基底面参照ベクトルの関係を示す。基底面参照フレーム134において、動き検出原点105と、サーチ範囲106が、図7(A)に示すように決定されたとする。このとき、1/n×1/nに画像縮小された縮小面参照フレーム135上では、図7(B)に示すように、サーチ範囲は、1/n×1/nに縮小された縮小面サーチ範囲137とされる。
そして、この例では、縮小面サーチ範囲137内において、縮小面参照フレーム135での動き検出原点105からの位置ズレ量を表す縮小面参照ベクトル138を設定する。そして、それぞれの縮小面参照ベクトル138が指し示す位置にある縮小面参照ブロック139と、縮小面ターゲットブロック131(図7では図示は省略)との相関性を評価する。
この場合、縮小画像において、ブロックマッチングを行うので、縮小面参照フレーム135においてSAD値を算出すべき縮小面参照ブロック位置(縮小面参照ベクトル)の数を少なくすることができる。このようにSAD値の算出回数(マッチング処理回数)が少なくなる分だけ、処理を高速化することができると共に、SADテーブルを小規模とすることができる。
図8に示すように、縮小面サーチ範囲137に応じて定まる縮小面マッチング処理範囲143内に設定される複数個の縮小面参照ブロック139と縮小面ターゲットブロック131とのブロックマッチングによる相関性評価が得られる。その相関性評価により、縮小面参照フレーム135における縮小面動きベクトル136が算出される。この縮小面動きベクトル136の精度は、画像が1/n×1/nに縮小されているので、1ピクセルのn倍の低精度となっている。そこで、この算出された縮小面動きベクトル136をn倍しても、基底面参照フレーム134において、1ピクセル精度の動きベクトル104は得られない。
しかし、基底面参照フレーム134においては、縮小面動きベクトル136をn倍した動きベクトルの近傍に、1ピクセル精度の基底面動きベクトル104が存在することは明らかである。
そこで、この例では、図7(C)および図8に示すように、基底面参照フレーム134において、縮小面動きベクトル136をn倍した動きベクトル(基底面参照ベクトル141)が指し示す位置を中心として考える。この位置を中心として、基底面動きベクトル104が存在するであろうと考えられる狭い範囲に、基底面サーチ範囲140を設定し、設定された基底面サーチ範囲140に応じて基底面マッチング処理範囲144を設定する。
そして、図7(C)に示すように、この基底面サーチ範囲140内の位置を示すものとして、基底面参照フレーム134における基底面参照ベクトル141を設定し、各基底面参照ベクトル141が指し示す位置に基底面参照ブロック142を設定する。これらの設定で、基底面参照フレーム134におけるブロックマッチングを行うようにする。
ここで設定された基底面サーチ範囲140および基底面マッチング処理範囲144は、非常に狭い範囲でよい。すなわち、図8に示すように、縮小面サーチ範囲137および縮小面マッチング処理範囲143を縮小率の逆数倍であるn倍したサーチ範囲137´およびマッチング処理範囲143´に比較して非常に狭い範囲でよい。
したがって、階層化マッチングを行わずに、基底面においてのみブロックマッチング処理をした場合には、基底面においては、サーチ範囲137´およびマッチング処理範囲143´において、複数個の参照ブロックを設定して、ターゲットブロックとの相関値を求める演算をする必要がある。これに対して、階層化マッチング処理においては、図8のように、非常に狭い範囲においてのみマッチング処理を行えばよい。
このため、当該狭い範囲である、基底面サーチ範囲140および基底面マッチング処理範囲144に設定される基底面参照ブロックの数は非常に少なくなり、マッチング処理回数(相関値演算回数)および保持するSAD値を非常に小さくすることができる。このため、処理を高速化することができると共に、SADテーブルを小規模化することができるという効果を得ることができる。
<動き検出・動き補償部の構成例>
図9に、動き検出・動き補償部16の構成例のブロック図を示す。この例では、動き検出・動き補償部16は、ターゲットブロック102の画素データを保持するターゲットブロックバッファ部161と、参照ブロック108の画素データを保持する参照ブロックバッファ部162を備える。これらのバッファ部161,162が、図1に示したバッファ(1次メモリ)16aに相当する。
図9に、動き検出・動き補償部16の構成例のブロック図を示す。この例では、動き検出・動き補償部16は、ターゲットブロック102の画素データを保持するターゲットブロックバッファ部161と、参照ブロック108の画素データを保持する参照ブロックバッファ部162を備える。これらのバッファ部161,162が、図1に示したバッファ(1次メモリ)16aに相当する。
さらに、動き検出・動き補償部16は、ターゲットブロック102と参照ブロック108とで対応する画素についてのSAD値を計算するマッチング処理部163を備える。さらにまた、マッチング処理部163から出力されるSAD値情報から動きベクトルを算出する動きベクトル算出部164と、それぞれのブロックを制御するコントロール部165とを備える。
そして、画像メモリ40に記憶された画像データは、自動メモリコピー部50及び2次メモリ60を介して、動き検出・動き補償部16内のターゲットブロックバッファ部161及び参照ブロックバッファ部162に供給される。
静止画撮像時においては、ターゲットブロックバッファ部161には、メモリコントローラ8による読み出し制御にしたがって、以下の画像が画像メモリ40から読み出されて、書き込まれる。すなわち、画像メモリ40に記憶されている縮小面ターゲット画像Prtまたは基底面ターゲット画像Pbtの画像フレームからの縮小面ターゲットブロックまたは基底面ターゲットブロックが、画像メモリ40から読み出されて、書き込まれる。
縮小面ターゲット画像Prtまたは基底面ターゲット画像Pbtは、1枚目は、シャッターボタン押下後の最初の撮像フレームの画像が画像メモリ40から読み出されて、ターゲットフレーム102として、ターゲットブロックバッファ部161に書き込まれる。参照画像とのブロックマッチングに基づき画像の重ね合わせがなされると、画像メモリ40に当該画像の重ね合わせ後のNR画像が書き込まれ、ターゲットブロックバッファ部161のターゲットフレーム102が、当該NR画像に書き換えられてゆく。
参照ブロックバッファ部162には、画像メモリ40に記憶されている縮小面参照画像Prrまたは基底面参照画像Pbrの画像フレームからの縮小面マッチング処理範囲または基底面マッチング処理範囲の画像データが、書き込まれる。縮小面参照画像Prrまたは基底面参照画像Pbrは、最初の撮像フレームの後の撮像フレームが、参照フレーム108として画像メモリ40に書き込まれる。
この場合、連続して撮影された複数枚の撮像画像を取り込みながら画像の重ね合わせ処理を行う場合には、基底面参照画像および縮小面参照画像としては、最初の撮像フレームの後の撮像フレームが、1枚ずつ順次に画像メモリ40に取り込まれる。
連続して撮影された複数枚の撮像画像を画像メモリ40に取り込んだ後、動き検出・動き補償部16および画像重ね合わせ部17で、動きベクトル検出を行い、画像の重ね合わせを実行するようにする場合には、複数枚の撮像フレームを保持する必要がある。この連続して撮影された複数枚の撮像画像を画像メモリ40に取り込んだ後の処理を、撮影後加算と呼ぶ。すなわち、この撮影後加算時には、基底面参照画像および縮小面参照画像としては、最初の撮像フレームの後の複数枚の撮像フレームの全てを画像メモリ40に格納保持しておく必要がある。
撮像装置としては、撮影中加算および撮影後加算のいずれも用いることができるが、この実施形態では、静止画NR処理は、多少処理時間がかかっても、ノイズが低減された綺麗な画像が要求されることを考慮して、撮影後加算の処理を採用している。
一方、動画撮影時においては、動き検出・動き補償部16には、画像補正・解像度変換部15からの撮像フレームがターゲットフレーム102として入力される。ターゲットブロックバッファ部161には、この画像補正・解像度変換部15からの、ターゲットフレームから抽出されたターゲットブロックが書き込まれる。また、ターゲットフレームよりも1枚前の、画像メモリ部4に記憶されている撮像フレームが、参照フレーム108とされる。参照ブロックバッファ部162には、この参照フレーム(基底面参照画像Pbrまたは縮小面参照画像Prr)からの基底面マッチング処理範囲または縮小面マッチング処理範囲が書き込まれる。
この動画撮影時には、画像メモリ40には、画像補正・解像度変換部15からのターゲットフレームとの間でブロックマッチングをすべき、少なくとも1枚前の撮像画像フレームを基底面参照画像Pbrおよび縮小面参照画像Prrとして保持する。
マッチング処理部163では、縮小面でのマッチング処理および基底面でのマッチング処理を、ターゲットブロックバッファ部161に記憶されたターゲットブロックと、参照ブロックバッファ部162に記憶された参照ブロックとについて行う。
ここで、ターゲットブロックバッファ部161に記憶されたものが縮小面ターゲットブロックの画像データであり、参照ブロックバッファ162に記憶されたものが縮小面参照画面から抽出された縮小面マッチング処理範囲の画像データである場合を考える。この場合には、マッチング処理部163では、縮小面マッチング処理が実行される。また、ターゲットブロックバッファ部161に記憶されたものが基底面ターゲットブロックの画像データとなる。参照ブロックバッファ162に記憶されたものが基底面参照画面から抽出された基底面マッチング処理範囲の画像データである場合には、マッチング処理部163では、基底面マッチング処理が実行されることになる。
マッチング処理部163で、ブロックマッチングにおけるターゲットブロックと、参照ブロックとの相関の強さを検出するためには、画像データの輝度情報を用いてSAD値算出を行う。そして、その最小SAD値を検出して、当該最小SAD値を呈する参照ブロックを最強相関参照ブロックとして検出するようにする。
なお、SAD値の算出は、輝度情報ではなく、色差信号や、3原色信号R,G,Bの情報を使用しても良いことは言うまでもない。また、SAD値の算出に当たっては、通常は、ブロック内の全画素を用いるようにするが、演算量削減のため、間引き等により、飛び飛びの位置の限られた画素の画素値のみを使用するようにしてもよい。
動きベクトル算出部164は、マッチング処理部163のマッチング処理結果からターゲットブロックに対する参照ブロックの動きベクトルを検出する。この例では、動きベクトル算出部164は、SAD値の最小値を検出保持する。
コントロール部165は、CPU1による制御を受けながら、この動き検出・動き補償部16における階層化ブロックマッチング処理の処理動作を制御するようにする。
<ターゲットブロックバッファの構成例>
ターゲットブロックバッファの構成例のブロック図を、図10に示す。この図10に示すように、ターゲットブロックバッファ161は、基底面バッファ部1611と、縮小面バッファ部1612と、縮小化処理部1613と、セレクタ1614,1615および1616とを備えている。セレクタ1614,1615および1616は、図10では、図示は省略したが、コントロール部165からの選択制御信号によりそれぞれ選択制御される。
ターゲットブロックバッファの構成例のブロック図を、図10に示す。この図10に示すように、ターゲットブロックバッファ161は、基底面バッファ部1611と、縮小面バッファ部1612と、縮小化処理部1613と、セレクタ1614,1615および1616とを備えている。セレクタ1614,1615および1616は、図10では、図示は省略したが、コントロール部165からの選択制御信号によりそれぞれ選択制御される。
基底面バッファ部1611は、基底面ターゲットブロックを一時格納するためのものである。この基底面バッファ部1611は、基底面ターゲットブロックを、画像重ね合わせ部17に送ると共に、セレクタ1616に供給する。
縮小面バッファ部1612は、縮小面ターゲットブロックを一時格納するためのものである。縮小面バッファ部1612は、縮小面ターゲットブロックを、セレクタ1616に供給する。
縮小化処理部1613は、動画撮影時には上述したように、ターゲットブロックは、画像補正・解像度変換部15から送られてくるので、この縮小化処理部1613で縮小面ターゲットブロックを生成するために設けられている。縮小化処理部1613からの縮小面ターゲットブロックは、セレクタ1615に供給される。
セレクタ1614は、動画撮影時にはデータ変換部14からのターゲットブロック(基底面ターゲットブロック)を出力する。静止画撮影時には画像メモリ40から読み出された基底面ターゲットブロックまたは縮小面ターゲットブロックを出力する。これらの出力は、コントロール部165からの選択制御信号により選択されて出力され、その出力を基底面バッファ部1611と、縮小化処理部1613と、セレクタ1615とに供給する。
セレクタ1615は、動画撮影時には縮小化処理部15からの縮小面ターゲットブロックを、静止画撮影時には画像メモリ40からの縮小面ターゲットブロックを、コントロール部165からの選択制御信号により選択して出力する。その出力を縮小面バッファ部1612に供給する。
セレクタ1616は、コントロール部1615からの選択制御信号に応じて、縮小面でのブロックマッチング時には、縮小面バッファ部1612からの縮小面ターゲットブロックを出力する。基底面でのブロックマッチング時には、基底面バッファ部1611からの基底面ターゲットブロックを出力する。出力した縮小面ターゲットブロックまたは基底面ターゲットブロックをマッチング処理部163に送る。
<参照ブロックバッファの構成例>
参照ブロックバッファ部162の構成例のブロック図を、図11に示す。この図11に示すように、参照ブロックバッファ部162は、基底面バッファ部1621と、縮小面バッファ部1622と、セレクタ1623とを備えている。セレクタ1623は、図11では、図示は省略したが、コントロール部165からの選択制御信号により選択制御される。
参照ブロックバッファ部162の構成例のブロック図を、図11に示す。この図11に示すように、参照ブロックバッファ部162は、基底面バッファ部1621と、縮小面バッファ部1622と、セレクタ1623とを備えている。セレクタ1623は、図11では、図示は省略したが、コントロール部165からの選択制御信号により選択制御される。
基底面バッファ部1621は、画像メモリ40からの基底面参照ブロックを一時格納し、その基底面参照ブロックを、セレクタ1623に供給すると共に、画像重ね合わせ部17に、動き補償ブロックとして送る。
縮小面バッファ部1622は、画像メモリ40からの縮小面参照ブロックを一時格納するためのものである。縮小面バッファ部1622は、縮小面参照ブロックを、セレクタ1623に供給する。
セレクタ1623は、コントロール部1615からの選択制御信号に応じて、縮小面でのブロックマッチング時には、縮小面バッファ部1612からの縮小面参照ブロックを出力する。基底面でのブロックマッチング時には、基底面バッファ部1611からの基底面参照ブロックを出力する。出力した縮小面参照ブロックまたは基底面参照ブロックを、マッチング処理部163に送る。
<画像重ね合わせ部の構成例>
画像重ね合わせ部17の構成例のブロック図を、図12に示す。この図12に示すように、画像重ね合わせ部17は、加算率計算部171と、加算部172と、基底面出力バッファ部173と、縮小面生成部174と、縮小面出力バッファ部175とを備えて構成されている。
画像重ね合わせ部17の構成例のブロック図を、図12に示す。この図12に示すように、画像重ね合わせ部17は、加算率計算部171と、加算部172と、基底面出力バッファ部173と、縮小面生成部174と、縮小面出力バッファ部175とを備えて構成されている。
そして、画像重ね合わせ部17の出力画像データが、データ圧縮部35で圧縮された後、画像メモリ40に記憶される。
加算率計算部171は、動き検出・動き補償部16からのターゲットブロックおよび動き補償ブロックを受けて、両者の加算率を、採用する加算方式が単純加算方式であるか、または平均加算方式であるかに応じて定める。定めた加算率を、ターゲットブロックおよび動き補償ブロックと共に加算部172に供給する。
加算部172での加算結果の基底面NR画像は、圧縮された後、画像メモリ40に書き込まれる。また、加算部172での加算結果の基底面NR画像は、縮小面生成部174にて縮小面NR画像に変換され、縮小面生成部174からの縮小面NR画像が、画像メモリ40に書き込まれる。
[4.撮像画像のノイズ低減処理の流れ]
<静止画撮影時>
上述の構成の実施の形態の撮像装置において、静止画撮影時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図13および図14に示す。この図13および図14のフローチャートの各ステップは、CPU1およびこのCPU1により制御される動き検出・動き補償部16のコントロール部165の制御の下に実行されると共に、画像重ね合わせ部17により実行されるものである。
<静止画撮影時>
上述の構成の実施の形態の撮像装置において、静止画撮影時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図13および図14に示す。この図13および図14のフローチャートの各ステップは、CPU1およびこのCPU1により制御される動き検出・動き補償部16のコントロール部165の制御の下に実行されると共に、画像重ね合わせ部17により実行されるものである。
まず、シャッターボタンが押下されると、この例の撮像装置においては、CPU1による制御によって、高速で複数枚の画像の高速撮影が行われる。この例では、静止画撮影時に重ね合わすべきM枚(Mフレーム;Mは2以上の整数)の撮像画像データを高速で取り込み、画像メモリ40に貼っておく(ステップS1)。
次に、参照フレームは、画像メモリ40に蓄積されているM枚の画像フレームのうちの時間的にN番目(Nは2以上の整数で、最大値はM)とするのであるが、コントロール部165は、その何番目とする値Nの初期値を、N=2とする(ステップS2)。そして、次に、コントロール部165は、1枚目の画像フレームをターゲット画像(ターゲットフレーム)に設定し、N=2枚目の画像を参照画像(参照フレーム)に設定する(ステップS3)。
次に、コントロール部165は、ターゲットフレームにターゲットブロックを設定し(ステップS4)、動き検出・動き補償部16において、画像メモリ部4から、ターゲットブロックバッファ部161へターゲットブロックを読み込み(ステップS5)、また、画像メモリ部4から、参照ブロックバッファ部162へマッチング処理範囲の画素データを読み込む(ステップS6)。
次に、コントロール部165は、参照ブロックバッファ部162から、サーチ範囲内において参照ブロックを読み出し、マッチング処理部163で、階層化マッチング処理を行う。以上の処理をサーチ範囲内のすべての参照ベクトルで繰り返した後、高精度の基底面動きベクトルを出力する(ステップS7)。
次に、コントロール部165は、以上のようにして検出された高精度の基底面動きベクトルにしたがって、参照ブロックバッファ部162から、検出した動きベクトル分の動きを補償した動き補償ブロックを読み出す(ステップS8)。そして、ターゲットブロックと同期して、後段の画像重ね合わせ部17へ送る(ステップS9)。
次に、CPU1の制御に従って、画像重ね合わせ部17は、ターゲットブロックと動き補償ブロックの重ね合わせを行い、重ね合わせたブロックのNR画像データを画像メモリ部4に貼る。すなわち、画像重ね合わせ部17は、重ね合わせたブロックのNR画像データを画像メモリ40側に出力させて書き込ませる(ステップS10)。
次に、コントロール部165は、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したか否か判別する(ステップS11)。この判別で、すべてのターゲットブロックについてブロックマッチングの処理が終了していないと判別したときには、ステップS4に戻って、ターゲットフレーム内の次のターゲットブロックを設定して、ステップS4〜ステップS11までの処理を繰り返す。
また、コントロール部165は、ステップS11で、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したと判別したときには、ステップS12に移る。ステップS12では、重ね合わすべきすべての参照フレームについての処理が終了したか否か、つまり、M=Nであるか否か判別する。
ステップS12で、M=Nではないと判別したときには、N=N+1とする(ステップS13)。次に、ステップS10での重ね合わせにより生成されたNR画像をターゲット画像(ターゲットフレーム)とし、また、N=N+1枚目の画像を参照画像(参照フレーム)とする(ステップS14)。その後、ステップS4に戻って、このステップS4以降の処理を繰り返す。つまり、Mが3以上の場合は、全てのターゲットブロックにおいて重ね合わせを行った画像を次のターゲット画像とし、3枚目以降の画像を参照フレームとして、上記の処理を繰り返して行く。これをM枚目の重ね合わせが終わるまで繰り返す。そして、ステップS12で、M=Nであると判別したときには、この処理ルーチンを終了する。
<動画撮影時>
次に、この実施の形態の撮像装置において、動画撮影時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図15に示す。この図15のフローチャートの各ステップも、CPU1およびこのCPU1により制御される動き検出・動き補償部16のコントロール部165の制御の下に実行されるものである。動画記録ボタンがユーザにより操作されると、CPU1は、図15の処理をスタートから開始するように指示する。
次に、この実施の形態の撮像装置において、動画撮影時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図15に示す。この図15のフローチャートの各ステップも、CPU1およびこのCPU1により制御される動き検出・動き補償部16のコントロール部165の制御の下に実行されるものである。動画記録ボタンがユーザにより操作されると、CPU1は、図15の処理をスタートから開始するように指示する。
この例では、動き検出・動き補償部16は、ターゲットブロック単位でマッチング処理をするのに適した構成とされている。そこで、画像補正・解像度変換部16は、CPU1の制御に従って、フレーム画像を保持し、ターゲットブロック単位で、動き検出・動き補償部16へ画像データを送る(ステップS21)。
動き検出・動き補償部16に送られたターゲットブロックの画像データは、ターゲットブロックバッファ部161に格納される。次に、コントロール部165は、ターゲットブロックの座標をもとに、画像メモリ40から参照ブロックとしてコピーする座標を計算し、その計算した座標のデータを、画像メモリ40から自動メモリコピー部50に読み出す(ステップS22)。読み出したデータは、2次メモリ60に書き込まれた後、必要な領域のデータが1次メモリである、参照ブロックバッファ部162に供給される(ステップS23)。
次に、マッチング処理部163および動きベクトル算出部164は、この例における階層化ブロックマッチングによる動き検出処理を行う(ステップS24)。すなわち、マッチング処理部163は、先ず、縮小面において、縮小面ターゲットブロックの画素値と縮小面参照ブロックの画素値との間のSAD値を算出し、算出したSAD値を動きベクトル算出部164へ送る。マッチング処理部163は、この処理をサーチ範囲内のすべての縮小面参照ブロックで繰り返す。サーチ範囲内のすべての縮小面参照ブロックについてのSAD値の算出が終了した後、動きベクトル算出部164は、最小のSAD値を特定して、縮小面動きベクトルを検出する。
コントロール部165は、動きベクトル算出部164で検出された縮小面動きベクトルを縮小率の逆数倍して、基底面上における動きベクトルに変換する。そして、その変換したベクトルが、基底面において指し示す位置を中心した領域を、基底面におけるサーチ範囲とする。そして、コントロール部165は、マッチング処理部163に、当該サーチ範囲において、基底面におけるブロックマッチング処理を行わせるように制御する。マッチング処理部163は、基底面ターゲットブロックの画素値と基底面参照ブロックの画素値との間のSAD値を算出し、算出したSAD値を動きベクトル算出部164へ送る。
サーチ範囲内のすべての縮小面参照ブロックについてのSAD値の算出が終了した後、動きベクトル算出部164は、最小のSAD値を特定して、縮小面動きベクトルを検出すると共に、その近傍のSAD値を特定する。そして、それらのSAD値を用いて、前述した2次曲線近似補間処理を行い、サブピクセル精度の高精度の動きベクトルを出力する。
次に、コントロール部165は、ステップS24で算出された高精度の動きベクトルにしたがって、参照ブロックバッファ部162から動き補償ブロックの画像データを読み出す(ステップS25)。そして、ターゲットブロックと同期して、後段の画像重ね合わせ部17へ送る(ステップS26)。
画像重ね合わせ部17においては、ターゲットブロックと動き補償ブロックの重ね合わせを行い、その重ね合わせた結果のNR画像の画像データを、画像メモリ40側に出力させて書き込ませる(ステップS27)。そして、NR画像の画像データを、次のターゲットフレームに対する参照フレームとして、画像メモリ40に格納させる(ステップS28)。
そして、CPU1は、動画記録停止操作がユーザによりなされたか否か判別し(ステップS29)、当該動画記録停止操作がユーザによりなされていないと判別したときには、ステップS21に戻って、このステップS21以降の処理を繰り返すように指示する。また、ステップS29で、動画記録停止操作がユーザによりなされたと判別したときには、CPU1は、この処理ルーチンを終了するようにする。
以上の動画のノイズ低減処理の処理ルーチンにおいては、1フレーム前の画像フレームを参照フレームとするようにしたが、1フレームよりもさらに過去のフレームの画像を参照フレームとして用いるようにしても良い。また、1フレーム前と2フレーム前の画像を、画像メモリ40に格納しておき、それらの2枚の画像情報の内容から、どちらの画像フレームを参照フレームにするかを選択しても良い。
上記のような手段、手順、システム構成を用いることで、一つの共通したブロックマッチング処理のハードウエアで、静止画ノイズ低減処理および動画ノイズ低減処理を行うことが可能になる。
[5.階層化ブロックマッチング処理の流れの例]
次に、図16および図17に、動き検出・動き補償部16での階層化ブロックマッチング処理の動作例のフローチャートを示す。
次に、図16および図17に、動き検出・動き補償部16での階層化ブロックマッチング処理の動作例のフローチャートを示す。
なお、この図16および図17に示す処理の流れは、前述したマッチング処理部163、動き算出部164の処理例の流れとしての説明と、一部重複するものとなるが、この例の動作を、より理解し易くするために、説明するものである。
はじめに、動き検出・動き補償部16において、ターゲットブロックバッファ部161から、ターゲットブロックの縮小画、つまり、縮小面ターゲットブロックを読み込む(図16のステップS71)。次に、動きベクトル算出部164内で保持する、最小SAD値Sminの初期値として、縮小面最小SAD値の初期値を設定する(ステップS72)。この縮小面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
次に、マッチング処理部163では、縮小面サーチ範囲を設定する。設定した縮小サーチ範囲において、縮小面参照ベクトル(Vx/n,Vy/n:1/nは縮小倍率)を設定して、SAD値を計算する縮小面参照ブロック位置を設定する(ステップS73)。そして、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部162から読み込み(ステップS74)、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、縮小面SAD値を求める。求めた縮小面SAD値を動きベクトル算出部164に送出する(ステップS75)。
動きベクトル算出部164では、マッチング処理部163で算出された縮小面SAD値Sinと、保持されている縮小面最小SAD値Sminとを比較する。そして、算出された縮小面SAD値Sinが、それまで保持されている縮小面最小SAD値Sminよりも小さいか否か判別する(ステップS76)。
このステップS76で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さいと判別したときには、ステップS77に進み、に保持される縮小面最小SAD値Sminおよびその位置情報の更新がなされる。
すなわち、SAD値比較処理では、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さい旨の比較結果の情報を出力する。すると、当該算出された縮小面SAD値Sinおよびその位置情報(縮小面参照ベクトル)を、新たな縮小面最小SAD値Sminの情報として、更新させる。
ステップS77の後には、ステップS78に進む。また、ステップS76で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより大きいと判別したときには、ステップS77の保持情報の更新処理は行わずにステップS78に進む。
ステップS78では、マッチング処理部163は、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したか否か判別する。その判別で、未だ、縮小面サーチ範囲においては、未処理の縮小面参照ブロックがあると判別したときには、ステップS73に戻り、前述したステップS73以降の処理を繰り返す。
また、マッチング処理部163は、ステップS78で、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したと判別したときには、次の処理が行われる。すなわち、縮小面最小SAD値Sminの位置情報(縮小面動きベクトル)を受け取る。そして、受け取った縮小面動きベクトルを、縮小倍率の逆数倍、すなわち、n倍したベクトルが、基底面ターゲットフレームにおいて指し示す位置座標を中心とした位置に基底面ターゲットブロックを設定する。さらに、n倍したベクトルが指し示す位置座標を中心とした比較的狭い範囲として、基底面サーチ範囲を、基底面ターゲットフレームに設定する(ステップS79)。そして、ターゲットブロックバッファ部161から、基底面ターゲットブロックの画素データを読み込む(ステップS80)。
そして、次に、動きベクトル算出部164に保持された最小SAD値Sminの初期値として、基底面最小SAD値の初期値を設定する(図17のステップS81)。この基底面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
次に、マッチング処理部163では、ステップS79で設定した基底面縮小サーチ範囲において、基底面参照ベクトル(Vx,Vy)を設定して、SAD値を計算する基底面参照ブロック位置を設定する(ステップS82)。そして、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部162から読み込む(ステップS83)。そして、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、基底面SAD値を求め、求めた基底面SAD値を動きベクトル算出部164に送出する(ステップS84)。
動きベクトル算出部164では、マッチング処理部163で算出された基底面SAD値Sinと、保持されている基底面最小SAD値Sminとを比較する。その比較で、算出された基底面SAD値Sinが、それまで保持されている基底面最小SAD値Sminよりも小さいか否か判別する(ステップS85)。
このステップS85で、算出された基底面SAD値Sinが基底面最小SAD値Sminより小さいと判別したときには、ステップS86に進み、保持される基底面最小SAD値Sminおよびその位置情報の更新がなされる。
すなわち、算出された基底面SAD値Sinが基底面最小SAD値Sminより小さい旨の比較結果の情報を出力する。すると、当該算出された基底面SAD値Sinおよびその位置情報(参照ベクトル)を、新たな基底面最小SAD値Sminの情報とし、新たな基底面SAD値Sinおよびその位置情報に更新する。
ステップS86の後には、ステップS87に進む。また、ステップS85で、算出された基底面SAD値Sinが基底面最小SAD値Sminより大きいと判別したときには、ステップS86の保持情報の更新処理は行わずにステップS87に進む。
ステップS87では、マッチング処理部163は、基底面サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したか否か判別する。その判別で、未だ、基底面サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、ステップS82に戻り、前述したステップS82以降の処理を繰り返す。
また、マッチング処理部163は、ステップS87で、基底面サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したと判別したときには、次の処理が行われる。すなわち、基底面最小SAD値Sminの位置情報(基底面動きベクトル)を受け取り、基底面SAD値を保持させるようにする(ステップS88)。
以上で、1枚の参照フレームについてのこの例のブロックマッチング処理を終了する。
以上で、1枚の参照フレームについてのこの例のブロックマッチング処理を終了する。
[6.メモリ上のフォーマットの説明]
本実施の形態の例においては、1フレームの画像データを、図18(A)に示すように、分割する。即ち、1画面分の画像の水平方向を、1バースト転送(64画素)単位で分割し、1画面分の画像を、縦長の分割ブロックの画像単位(以下、短冊と称する)の複数個のデータとする。そして、画像データを、この短冊単位で、画像メモリ部40に書き込み、画像メモリ40から読み出しするメモリアクセス方式(以下、短冊アクセス形式と称する)を採用する。静止画NR処理時には、基本的に、この短冊アクセス形式により画像メモリ40に対する画像データのメモリアクセスを行う。
本実施の形態の例においては、1フレームの画像データを、図18(A)に示すように、分割する。即ち、1画面分の画像の水平方向を、1バースト転送(64画素)単位で分割し、1画面分の画像を、縦長の分割ブロックの画像単位(以下、短冊と称する)の複数個のデータとする。そして、画像データを、この短冊単位で、画像メモリ部40に書き込み、画像メモリ40から読み出しするメモリアクセス方式(以下、短冊アクセス形式と称する)を採用する。静止画NR処理時には、基本的に、この短冊アクセス形式により画像メモリ40に対する画像データのメモリアクセスを行う。
ここで、水平方向の64画素を16バーストでバスアクセスするフォーマットを、64×1フォーマットと称することとする。この64×1フォーマットは、図18(B)に示すように、4画素毎のバースト転送を、最大連続バースト回数である16回、連続して繰り返すメモリアクセス方式である。図18(B)に示すように、4画素毎のバースト転送の先頭のアドレスA1,A2,A3・・・A16が定まると、自動的に、64×1フォーマットのバスアクセスができる。
そして、短冊アクセス形式は、64×1フォーマットを、画面の垂直方向に連続して行う方式ということになる。64×1フォーマットを、水平方向に繰り返し、1ライン分の全てのアクセスを終了したら、次のラインについて同様のアクセスをすることで、ラスタースキャン形式の画像データのアクセスができる。
なお、水平方向の画像データが64画素で割り切れない場合は、図18で、影線を付して示すように、水平方向の右端にダミー領域151を設けて、このダミー領域151に、例えば黒や白の画素データをダミーデータとして付加する。このようにして、水平方向の画素数が、64の倍数になるようにしている。
従来のラスタースキャン方式は、画像メモリへのアクセスに対して、水平方向にアドレスが連続しているため、1ラインずつデータを読むのに適している。これに対して、短冊アクセス形式は、1バースト転送(64画素)単位で垂直方向にアドレスがインクリメントするため、水平方向が64画素以内であるブロック状のデータを読むのに適している。
例えば、64画素×64ラインの短冊形式のブロックを読み込む際には、画像メモリ部4に対して、メモリコントローラ8は、YC画素データの4画素分のデータ(64ビット)を16バーストでバスアクセスするとする。このとき、当該16バーストで、4×16=64画素分のデータになり、水平方向の64画素からなる1ライン目のアドレスの設定以降は、垂直方向にアドレスでインクリメントで、残り63ライン分の画素データのアドレス設定をすることが可能である。
図19(A)は、1画面分の画像が、横×縦=640×480画素からなる例における短冊単位の分割例である。この例においては、1画面分の画像が、水平方向の64画素単位で分割される結果、10個の短冊T0〜T9に分けられている。
静止画NR処理時において、画像メモリ40から基底面ターゲットブロックを読み込むときは、短冊アクセス形式の利点を活かすために、この例では、64画素×1ラインずつアクセスし、バス効率を上げるようにしている。
例えば、図20に示すように、基底面に対する縮小面の縮小倍率が1/2のときは、この実施形態では、基底面ターゲットブロックの大きさは、横×縦=16画素×16ラインとされる。したがって、この基底面ターゲットブロックを4個、水平方向に並べると、水平方向の画素数が64画素となる。そこで、ここでは、縮小倍率1/2のときは、図20の右側に示すように、画像メモリ40に対するアクセス単位を、当該ターゲットブロックの4個とし、上述した64×1フォーマットの短冊アクセス形式でアクセスする。つまり、4個のターゲットブロックは、水平方向の64画素単位のアクセス(4画素×16バースト)を、アドレスを垂直方向に変更しながら、16回繰り返すことで転送することができる。
同様にして、図20に示すように、基底面に対する縮小面の縮小倍率が1/4のときは、この例では、基底面ターゲットブロックの大きさは、横×縦=32画素×32ラインとされるので、基底面ターゲットブロックは2個ずつ、画像メモリに対してアクセスする。このようにすることで、上述した64×1フォーマットの短冊アクセス形式でアクセスすることができる。また、基底面に対する縮小面の縮小倍率が1/8のときは、この例では、基底面ターゲットブロックの大きさは、横×縦=64画素×64ラインとされるので、基底面ターゲットブロックは1個ずつ、画像メモリに対してアクセスする。このようにすることで、上述した64×1フォーマットの短冊アクセス形式でアクセスすることができる。
次に、動画NR処理時の、メモリアクセス時のデータフォーマットの例について、図21〜図30を参照して説明する。
ここでは、動画NR処理時の参照用画像データのメモリに対する参照画像アクセス用のために、複数ライン×複数画素からなる矩形領域のブロック単位の画素データのメモリアクセス方式(ブロックアクセス形式)を用意している。
すなわち、動画NR処理時の参照画像アクセス用の1つとして、上述したバースト転送可能な画素数である64画素を考慮して、図21(A)に示すようにする。すなわち、画像(画面)を最大バースト転送(64画素)単位である、横×縦=8画素×8ラインのブロックに分割して、画像メモリ部4に書き込み/読み出しするブロックアクセス形式を用いるようにしている。この8ライン×8画素からなるブロック単位のブロックアクセス形式を、以下、8×8フォーマットと称することとする。
ここでは、動画NR処理時の参照用画像データのメモリに対する参照画像アクセス用のために、複数ライン×複数画素からなる矩形領域のブロック単位の画素データのメモリアクセス方式(ブロックアクセス形式)を用意している。
すなわち、動画NR処理時の参照画像アクセス用の1つとして、上述したバースト転送可能な画素数である64画素を考慮して、図21(A)に示すようにする。すなわち、画像(画面)を最大バースト転送(64画素)単位である、横×縦=8画素×8ラインのブロックに分割して、画像メモリ部4に書き込み/読み出しするブロックアクセス形式を用いるようにしている。この8ライン×8画素からなるブロック単位のブロックアクセス形式を、以下、8×8フォーマットと称することとする。
この8×8フォーマットは、図21(B)に示すように、水平方向の4画素を1バースト転送の単位とし、水平方向の8画素を2回のバースト転送(2バースト)で転送し、当該水平方向の8画素のバースト転送が終了すると、次のラインの8画素を、同様にして、2バーストで、転送する。そして、最大バースト長である16バーストで、64画素が1回で転送される。
この8×8フォーマットのブロックアクセス形式の先頭アドレスをAD1を初期アドレスとすると、図21(B)に示すように、4画素単位のアドレスAD2〜AD16が自動的に定まり、連続した16バーストで、8×8フォーマットのメモリアクセスができる。
画像メモリ40上で、8×8フォーマットの先頭アドレスAD1が指定されると、メモリコントローラは、8×8フォーマットのメモリアクセスのためのアドレスAD1〜AD16を計算し、8×8フォーマットのメモリアクセスを実行する。
8×8フォーマットは、図21(B)に示すように、基本的には、64画素(16バースト)単位でのアクセスとなり、最も効率がよい。しかし、後述するように、16バーストは、最長バースト長であり、それよりも少ないバースト長とすることもできる。その場合には、実質的には、8×8フォーマットとはならないが、例えば、8画素×4ラインの場合には、半分の8バーストで画像データの転送ができる。
なお、水平方向および垂直方向の画像データが8画素で割り切れない場合は、図21で、影線を付して示すように、水平方向の右端と垂直方向の下端に、ダミー領域152を設けて、このダミー領域152に、例えば黒や白の画素データをダミーデータとして付加し、水平方向および垂直方向の画サイズが、8の倍数になるようにしている。
8×8フォーマットのメモリアクセスにより、メモリアクセスが8×8画素でアクセスできるということは、縮小面マッチング処理範囲および基底面マッチング処理範囲は、画像メモリ部4から、すべて、8×8の画素ブロック単位で読み込むことができる。したがって、この実施形態の撮像装置で、最も効率の良いデータ転送(16バースト)のみでバスアクセスすることが可能になり、バス効率は最大になる。
なお、この8×8フォーマットは、16×16画素、16×8画素、など、8×8画素の倍数にすれば、それらの複数画素単位でのアクセスにも適用できる。
また、バスの最も効率の良いデータ転送単位(最大バースト長の単位)は、上述の例では64画素であるが、最も効率の良いデータ転送単位は、1バーストで転送可能な画素数pと、最大バースト長(最大連続バースト回数)qとにより決まるp×q画素となる。そして、その画素数(p×q)により、画像メモリ40に書き込むブロックアクセス形式のフォーマットを決定すればよい。そして、縮小面マッチング処理範囲、基底面マッチング処理範囲が、そのブロックフォーマットの水平方向および垂直方向の倍数に近いサイズになる場合が、最もバス転送効率が良い。
縮小面マッチング処理範囲143は、図22に示すように、この例では、44画素×24ラインとされる。この縮小面マッチング処理範囲143を、64×1フォーマットでアクセスした場合、図22の上側に示すように、4画素×11バーストを、垂直方向に24回繰り返す転送のアクセスが必要になる。
これに対して、同じ縮小面マッチング処理範囲143を、8×8フォーマットでアクセスする場合は、図23に示すように、縮小面参照ベクトル(0,0)の縮小面参照ブロックを中心に、44画素×24ラインの縮小面マッチング処理範囲143が決定される。縮小面参照ベクトル(0,0)の縮小面参照ブロックとは、縮小面ターゲットブロックと同じ座標の縮小面参照ブロックということである。この場合、縮小面ターゲットブロックは、必ず、8画素単位、8ライン単位ずつしか設定されない。
縮小面マッチング処理範囲143の垂直方向は、24ラインであるので、図23に示すように、垂直方向のサーチ範囲を、8×8のブロックサイズの倍数にすれば、垂直方向は8×8フォーマットで無駄なくアクセスすることができる。一方、縮小面マッチング処理範囲143の水平方向は44画素であるので、8の倍数とはならず、このため、図23に示した例では、水平方向を56画素として、8×8フォーマットでは、水平方向の両側に6画素ずつ、黒または白などからなるダミーの画像データ153を挿入するようにする。
この図50から、ダミーの画像データ153が左右6画素分あるものの、64×1フォーマットでは24回転送が必要であるのに対して、8×8フォーマットであれば、21回の転送で読み込むことができることが分かる。さらに、8×8フォーマットであれば、すべての転送が、この実施形態の撮像装置で最も効率の良いデータ転送(16バースト)になっており、バス効率も向上している。
また、縮小倍率が1/2の場合の基底面マッチング処理範囲144は20画素×20ラインとなる。この基底面マッチング処理範囲144をアクセスする場合には、図22の下側に示すように、64×1フォーマットの場合、4画素×5バーストを、垂直方向に20回繰り返す転送のアクセスが必要になる。
これに対して、図24に示すように、8×8フォーマットの場合は、基底面マッチング処理範囲144としては、基底面参照ベクトル(0,0)の基底面参照ブロック142を中心に、20画素×20ラインのマッチング処理範囲が決定される。基底面マッチング処理範囲144は、縮小面マッチングで算出された縮小面動きベクトルによって決まるため、1画素単位でいろいろな組み合わせが考えられる。
例えば、最も効率の良いのは、20画素×20ラインの基底面マッチング処理範囲144が、8×8のブロックに対して、図24に示すように9ブロック分に割り当てられる場合である。この場合、図24に示すように、20画素×20ラインの基底面マッチング処理範囲144には、水平方向の端部および垂直方向の端部に8画素および8ラインに満たない領域が存在するので、そこにダミー画素データ153を挿入し、8×8フォーマットの4画素×16バーストを、9回繰り返す転送のアクセスをすることで、当該20画素×20ラインの基底面マッチング処理範囲144の画像データのアクセスができる。
しかし、図25に示すように、20画素×20ラインの基底面マッチング処理範囲144の垂直方向の端部にはダミー画像データ153を挿入せずに、当該垂直方向の端部においては、バースト回数を転送すべきデータ(4ライン分)に合わせたものとして、4画素×8バーストを、3繰り返す転送のアクセスとすることもできる。この場合には、図25に示す例においては、8×8フォーマットの4画素×16バーストを6回繰り返す転送と、4画素×8バーストを3回繰り返す転送との、合計9回の転送で、20画素×20ラインの基底面マッチング処理範囲144の画像データのアクセスができる。
逆に、最も効率の悪い例は、20画素×20ラインの基底面マッチング処理範囲144が、図26に示すように、8×8のブロックの16ブロック分に亘る場合である。この場合、図53に示すように、20画素×20ラインの基底面マッチング処理範囲144には、水平方向の端部および垂直方向の端部に8画素および8ラインに満たない領域が存在する。そこにダミー画素データ153を挿入し、8×8フォーマットの4画素×16バーストを、16回繰り返す転送のアクセスをすることで、当該20画素×20ラインの基底面マッチング処理範囲144の画像データのアクセスができる。
しかし、図27に示すように、20画素×20ラインの基底面マッチング処理範囲144の垂直方向の端部にはダミー画像データ153を挿入せずに、当該垂直方向の上下端部に、バースト回数を転送すべきデータ(それぞれ2ライン分)に合わせたものとする。つまり、4画素×4バーストを、合計8繰り返す転送のアクセスとすることもできる。この場合には、図27に示す例においては、8×8フォーマットの4画素×16バーストを8回繰り返す転送と、4画素×4バーストを8回繰り返す転送との、合計16回の転送で、基底面マッチング処理範囲144の画像データのアクセスができる。
したがって、20画素×20ラインの基底面マッチング処理範囲144の画像データの画像メモリ40に対するアクセスは、64×1フォーマットでは20回転送が必要であるのに対して、8×8フォーマットであれば、最短で9転送、最長で16転送で良い。さらに、8×8フォーマットであれば、転送の半分以上が、この例の撮像装置システムで最も効率の良いデータ転送(16バースト)になっている。
また、この実施形態では、動画NR処理時の参照画像アクセス用の他の1つとして、図28(A)に示すように、画像(画面)を最大バースト転送(64画素)の1/4単位である4画素×4ラインのブロックに分割して、画像メモリ部に書き込み/読み出しするブロックアクセス形式を選択することもできるように構成されている。この4ライン×4画素からなるブロック単位のブロックアクセス形式を、以下、4×4フォーマットと称することとする。
この4×4フォーマットは、図28(B)に示すように、水平方向の4画素を1バースト転送の単位とし、水平方向の4画素を1回のバースト転送(1バースト)で転送し、当該水平方向の4画素のバースト転送が終了すると、次のラインの4画素を転送する。即ち、次のラインの4画素を、同様にして、1バーストで転送し、4バーストで4×4フォーマットの画像データが転送できる。そして、4×4フォーマットの場合、図28(B)に示すように、4画素×4ライン=16画素分からなるブロックを水平方向に4回(4ブロック分)連続でアクセスすることで、64画素が1回で転送される。
つまり、4×4フォーマットの画像データは、4バーストで転送可能である。最大バースト長である16バーストで、4画素×4ラインのブロックの水平方向の4個を連続してアクセスすることができ、この4個の4画素×4ラインのブロック分の64画素が1回で転送される。
この4×4フォーマットによって64画素(最大バースト長である16バースト)を1回で転送する場合、図28(B)に示すように、4画素×4ラインのブロックの先頭アドレスをAD1を初期アドレスとする。このとき、4画素単位のアドレスAD2〜AD16が、図示のように定まり、連続した16バーストで、4×4フォーマットによる64画素単位のメモリアクセスができる。
4×4フォーマットは、図28(B)に示すように、64画素(16バースト)単位でアクセスするときが、最も効率がよい。しかし、水平方向の4ブロック以下の単位でアクセスする必要がある場合もある。例えば水平方向の2ブロック(32画素)単位でのアクセスでは、図28(B)において、4画素単位のアドレスAD1〜AD8が定められて、連続した8バーストで32画素単位のアクセスができる。4画素×4ラインのブロックの1ブロック(16画素)単位、3ブロック(24画素)単位なども同様にしてアクセスができる。
画像メモリ40のフレームメモリ上で、4×4フォーマットの先頭アドレスAD1と、水平方向の4画素×4ラインのブロック数が指定されると、メモリコントローラは、4×4フォーマットのメモリアクセスのためのアドレスAD2以降を計算してアクセスする。
なお、前述の8×8フォーマットの場合と同様に、画像データが4画素で割り切れない場合は、図28(A)に示すように、水平方向の右端および垂直方向の下端にダミー領域154を設けて、水平方向および垂直方向のサイズが、4の倍数になるようにしている。
この4×4フォーマットであれば、前述した、基底面マッチング処理範囲(20画素×20ライン)144のバスアクセスは、8×8フォーマットよりもさらに改善する。
4画素×4ラインのブロック単位に対して、最も効率の良いのは、20画素×20ラインの基底面マッチング処理範囲144が、図529に示すように、丁度、水平方向の5ブロック×垂直方向の5ブロック=25ブロック分に割り当てられる場合である。
この25ブロックをアクセスするには、水平方向の4ブロックの5ライン分と、水平方向の1ブロックの5ライン分とに分けることができる。図29(B)の最大バースト長による4ブロック単位の4画素×16バーストが5転送、1ブロック単位の4画素×4バーストが5転送、の合計10転送でよい。
逆に、最も効率の悪い例は、20画素×20ラインの基底面マッチング処理範囲144が、図30に示すように、4画素×4ラインのブロックの水平方向の6ブロック×垂直方向の6ブロック=36ブロック分に亘る場合である。この場合、図30に示すように、20画素×20ラインの基底面マッチング処理範囲144には、水平方向の左右端部および垂直方向の上下端部に4画素および4ラインに満たない領域が存在するので、そこにダミー画素データ154を挿入している。
この36ブロックを4×4フォーマットでアクセスするには、水平方向の4ブロックの6ライン分と、水平方向の2ブロックの6ライン分とに分けることができる。図28(B)の最大バースト長による4ブロック単位の4画素×16バーストが6転送、2ブロック単位の4画素×8バーストが6転送、の合計12転送でよい。
したがって、図27に示した8×8フォーマットの場合の16転送よりも、更に転送アクセス数が少なく、また、この実施形態の撮像装置で最も効率の良いデータ転送である16バーストを使用する割合が増え、バス効率はさらに向上している。
[7.2次メモリを使用した処理の説明]
本実施の形態の例においては、図1及び図2に示したように、画像メモリ40の記憶データを、自動メモリコピー部50でフォーマット変換後のデータを2次メモリ60に読み出すようにしてある。そして、その2次メモリ60から1次メモリ32に書き込ませる構成としてある。
本実施の形態の例においては、図1及び図2に示したように、画像メモリ40の記憶データを、自動メモリコピー部50でフォーマット変換後のデータを2次メモリ60に読み出すようにしてある。そして、その2次メモリ60から1次メモリ32に書き込ませる構成としてある。
本実施の形態においては、基底面参照バッファ(内部1次メモリ)の外に、図2に示したように、縦方向にローテーションするバッファ(2次メモリ60)を用意する。近年、システムLSIの内蔵SRAMの開発が進んでおり、外部の画像メモリに置くと帯域負荷が大きいデータを、内蔵SRAMとして構成されたメモリで管理することが可能である。本実施の形態の内蔵バッファとしての2次メモリ60は、例えば動き検出・動き補償部16に内蔵された、このようなSRAMで構成させる。
一般的に、DRAMのような画像メモリには、コントローラのバンク管理とリフレッシュ動作によってデータ効率が悪化するため、参照ブロックのようなランダムアクセスは、より大きなバス帯域を消費する傾向にある。一方、内蔵SRAMにはバンク管理やリフレッシュといったデータ効率が悪化する要因がないため、ランダムアクセスを苦としない利点がある。
後述するデータ書き込み処理で説明するように、DRAMで構成される画像メモリ40から内部2次メモリ60へのデータのコピーは、ランダムアクセスが発生しないように連続したデータをバースト転送でコピーしていくものとする。したがって、画像メモリ40上のデータアクセスで、効率劣化は小さいものになる。一方、画像処理部である動き検出・動き補償部31は、内部2次メモリ60に対してランダムアクセスを行うが、ここは内蔵SRAMであるので、DRAMにアクセスするような効率悪化はない。
次に、図60及び図61のフローチャートを参照して、自動メモリコピー部50の制御で実行される、1フレーム目のデータ読み出し・書き込み処理(図31)と、2フレーム目以降のデータ読み出し・書き込み処理(図32)について説明する。
図31の1フレーム目の処理としては、本線処理の終了を待ち(ステップS101)、次のフレームの先頭ブロックの動き検出に必要な領域を、画像メモリ40から読み出し、2次メモリ60に書き込ませるコピー処理を行う(ステップS102)。
図31の1フレーム目の処理としては、本線処理の終了を待ち(ステップS101)、次のフレームの先頭ブロックの動き検出に必要な領域を、画像メモリ40から読み出し、2次メモリ60に書き込ませるコピー処理を行う(ステップS102)。
図32の2フレーム目以降の処理としては、本線処理の終了を待ち(ステップS111)、次のフレームの先頭ブロックの動き検出に必要な領域を、画像メモリ40から読み出し、2次メモリ60に書き込ませるコピー処理を行う(ステップS112)。
そして、1フレーム分のコピー処理が終了したか否か判断し(ステップS113)、コピーが終了していない場合には、ステップS111に戻ってコピー処理を継続させる。ステップS113で1フレーム分のコピー処理が終了したと判断した場合には、このフレームのコピー処理を終了する。
このようにして、1フレームの参照フレームのデータごとに内部2次メモリ60にデータが転送され、その内部2次メモリ60から、参照フレームのマッチング処理範囲のデータが、内部1次メモリであるバッファ16aに転送されて保持される。内部1次メモリであるバッファ16aは、図9に示した参照ブロックバッファ部162に相当する。
そして、1フレーム分のコピー処理が終了したか否か判断し(ステップS113)、コピーが終了していない場合には、ステップS111に戻ってコピー処理を継続させる。ステップS113で1フレーム分のコピー処理が終了したと判断した場合には、このフレームのコピー処理を終了する。
このようにして、1フレームの参照フレームのデータごとに内部2次メモリ60にデータが転送され、その内部2次メモリ60から、参照フレームのマッチング処理範囲のデータが、内部1次メモリであるバッファ16aに転送されて保持される。内部1次メモリであるバッファ16aは、図9に示した参照ブロックバッファ部162に相当する。
図33は、図2に示した自動メモリコピー部50で実行される、図31及び図32のコピー処理をより詳細に示した図である。
まず、1フレーム目なら面外ステートとし、2フレーム目なら面内ステートとして開始させる(ステップS121)。
そして、ステートを確認し(ステップS122)、面内ステートである場合には、動き検出結果からの情報を待ち、ターゲットブロックの座標を読み込む(ステップS123)。そのターゲットブロックの座標から、次のループのステートを計算する(ステップS124)。そして、転送先アドレスを計算する(ステップS125)。ここでは、アドレス=先頭アドレスの画像メモリ40の座標とする。また、転送元アドレスを計算する(ステップS126)。ここでは、アドレス=先頭アドレスの2次メモリ60の座標とする。
まず、1フレーム目なら面外ステートとし、2フレーム目なら面内ステートとして開始させる(ステップS121)。
そして、ステートを確認し(ステップS122)、面内ステートである場合には、動き検出結果からの情報を待ち、ターゲットブロックの座標を読み込む(ステップS123)。そのターゲットブロックの座標から、次のループのステートを計算する(ステップS124)。そして、転送先アドレスを計算する(ステップS125)。ここでは、アドレス=先頭アドレスの画像メモリ40の座標とする。また、転送元アドレスを計算する(ステップS126)。ここでは、アドレス=先頭アドレスの2次メモリ60の座標とする。
計算されたそれぞれのアドレスを各メモリに対して発行し(ステップS127)、それぞれのデータの読み出し、書き込みを実行させて、先頭アドレスをインクリメントさせ(ステップS128)、ステップS122の処理に戻る。
また、ステップS122で確認したステートが、面外ステートである場合には、移転先アドレスを計算する(ステップS129)。ここでは、アドレス=先頭アドレスの画像メモリ40の座標とする。また、転送元アドレスを計算する(ステップS130)。ここでは、アドレス=先頭アドレスの2次メモリ60の座標とする。
計算されたそれぞれのアドレスを各メモリに対して発行し(ステップS131)、それぞれのデータの読み出し、書き込みを実行させて、先頭アドレスをインクリメントさせる(ステップS132)。その後、1フレーム分のコピーが終了したか否か判断し(ステップS133)、終了していない場合には、ステップS122の処理に戻る。1フレーム分のコピーが終了した場合には、ここでの処理を終了する。
次に、画像メモリ40にデータが記憶される状態と、画像メモリ40から読み出される状態を、図34及び図35を参照して説明する。
フレームNRを行うためには、1画面分のデータを大容量メモリ上に書かなくてはいけない。この1画面分のデータを削減するには、何らかの形でデータを圧縮することになる。ここで、JPEG方式などに代表されるようなDCT変換を用いた圧縮をする場合、圧縮対象となるデータは8画素×8画素などの2のべき乗のブロックになる。また、このような圧縮技術は画像1枚分全体を圧縮してしまうため、あとから必要な箇所だけを伸長するようなことはできない。
ここで本実施の形態の撮像装置では、大容量メモリ40の後段の回路は、動画コーデック部19やNTSCエンコーダ20などのライン単位の処理を行う回路がほとんどであり、大容量メモリに対しても、ライン単位で少しずつ伸長処理を行った方が都合が良い。
そのため、データ圧縮部35では、ターゲットブロック単位(64画素×64画素)を1ライン単位でさらに分割した、64画素×1画素(1ライン)で圧縮する。この圧縮処理としては、例えば64画素×1ラインの画像データを、折れ線近似とデータ並び替えによって1/2のデータ量に圧縮する。このような圧縮であれば、フレームNR後にメモリ40に書き込んだ後、読み出した信号を、後段の処理でNTSC信号としての出力処理やコーデック処理などを行う場合にも、データアクセスや伸長が容易である。
従って、本実施の形態では、図34に示したように、水平64画素がフレームNRの縦方向処理(短冊処理)の入力幅であるため、1ラインの64画素単位で圧縮を行えばよい。この1ライン64画素の信号は、例えば輝度信号8ビット、色差信号8ビットとすると、(8+8)×64=1024ビットのデータとなり、そのデータを圧縮することになる。
画像メモリ40にこのようにして1フレーム分書き込まれたデータは、データ伸張部36で1水平ラインごとのデータとして読み出され、解像度変換部37に供給されて、後段の画像データ処理系で扱える画像データとされる。
フレームNRを行うためには、1画面分のデータを大容量メモリ上に書かなくてはいけない。この1画面分のデータを削減するには、何らかの形でデータを圧縮することになる。ここで、JPEG方式などに代表されるようなDCT変換を用いた圧縮をする場合、圧縮対象となるデータは8画素×8画素などの2のべき乗のブロックになる。また、このような圧縮技術は画像1枚分全体を圧縮してしまうため、あとから必要な箇所だけを伸長するようなことはできない。
ここで本実施の形態の撮像装置では、大容量メモリ40の後段の回路は、動画コーデック部19やNTSCエンコーダ20などのライン単位の処理を行う回路がほとんどであり、大容量メモリに対しても、ライン単位で少しずつ伸長処理を行った方が都合が良い。
そのため、データ圧縮部35では、ターゲットブロック単位(64画素×64画素)を1ライン単位でさらに分割した、64画素×1画素(1ライン)で圧縮する。この圧縮処理としては、例えば64画素×1ラインの画像データを、折れ線近似とデータ並び替えによって1/2のデータ量に圧縮する。このような圧縮であれば、フレームNR後にメモリ40に書き込んだ後、読み出した信号を、後段の処理でNTSC信号としての出力処理やコーデック処理などを行う場合にも、データアクセスや伸長が容易である。
従って、本実施の形態では、図34に示したように、水平64画素がフレームNRの縦方向処理(短冊処理)の入力幅であるため、1ラインの64画素単位で圧縮を行えばよい。この1ライン64画素の信号は、例えば輝度信号8ビット、色差信号8ビットとすると、(8+8)×64=1024ビットのデータとなり、そのデータを圧縮することになる。
画像メモリ40にこのようにして1フレーム分書き込まれたデータは、データ伸張部36で1水平ラインごとのデータとして読み出され、解像度変換部37に供給されて、後段の画像データ処理系で扱える画像データとされる。
ここで、図35に示すように、画像メモリ40に記憶されたデータを、自動メモリコピー部50でコピーする際には、ターゲットブロックの座標に基づいて、必要な領域の画像データが伸張及びフォーマット変換されて、2次メモリ60に読み出される。この際には、画像メモリ40に書き込まれた64画素×1ラインの単位の画像データを、64ライン分読み出すことで、ターゲットブロック単位のデータが読み出される。そして、その2次メモリ60から、必要な参照ブロックの画像データが、参照ブロックバッファ部162に供給されて、ターゲットブロックとのSAD値の計算処理が行われる。
図36は、画像メモリ40から2次メモリ60に転送される範囲と、さらにその2次メモリ60から参照ブロックバッファ部162に送られる可能性がある範囲の例を示したものである。つまり、全部は必要でないが、縮小面の動きベクトル検出の結果によってアクセスが発生しうる範囲を保持しておかなくてはいけない。
この例では、ターゲットブロックの座標位置を参照画像に投影したものが、中央ブロック211であり、前記サーチ範囲はこのブロックを中心に上下左右にサーチ範囲を確保したものになり、図36(A)はある時点での処理状態を示し、図36(B)は、それからターゲットブロックの位置が1ブロック進んだ状態である。
この例では、ターゲットブロックの座標位置を参照画像に投影したものが、中央ブロック211であり、前記サーチ範囲はこのブロックを中心に上下左右にサーチ範囲を確保したものになり、図36(A)はある時点での処理状態を示し、図36(B)は、それからターゲットブロックの位置が1ブロック進んだ状態である。
このとき、その中央ブロック211を中心にしたサーチ範囲210内のデータを、参照ブロックバッファ部162に読み出す可能性があり、そのサーチ範囲210を含むデータを2次メモリ60に記憶させる必要がある。ここで、画像メモリ40には、既に説明したように短冊形式でブロック化されたデータが記憶させてあり、図36(A)の例では、短冊状の垂直のブロックラインV1,V2,V3,V4,V5の各ブロックのデータが2次メモリ60にコピーさせる。但し、最も進んだラインであるブロックラインV5については、次の処理段階で必要になるブロック212まで、2次メモリ60に読み出した状態である。また、一番後のラインであるブロックラインV1については、次の処理で必要なくなるブロック213よりも後は、既に2次メモリ60から消去されている。
この状態で、中央ブロック211を中心にしたサーチ範囲210内のデータを、1次メモリとしての参照ブロックバッファ部162に転送させて、サーチを実行させる。
この状態で、中央ブロック211を中心にしたサーチ範囲210内のデータを、1次メモリとしての参照ブロックバッファ部162に転送させて、サーチを実行させる。
そして、図36(B)に示すように、動き検出・補償部16で処理されるターゲットブロックの座標位置が、中央ブロック211から1つ下のブロック211′に移動したとする。このとき、サーチ範囲210についても、1ブロックずつ下に移動したサーチ範囲210′となり、2次メモリ60から参照ブロックバッファ部162に該当するデータが転送される。このサーチ範囲210′は、ブロック212を含んだものとなり、ブロック213は既に不要なブロックとなっている。このため、この図36(B)の状態では、さらに、ブロック212の下のブロックを2次メモリ60に読み出し、既にサーチ範囲210′から外れたブロック213のデータを2次メモリ60から消去させる。
このようにして、1フレーム内で2次メモリ60に読み出される範囲が進行して行くが、1フレームの最後のブロックまで進行したときには、次のフレームの先頭部分のデータを先行して2次メモリ60に読み出す処理が行われる。
即ち、図37(A)に示すように、中央ブロック211″が1フレームの右下寄りになり、サーチ範囲210″が1フレームの右下端まで移動したとする。このときには、短冊状の垂直のブロックラインV11,V12,V13,V14,V15が、参照ブロックバッファ部162に転送されているとすると、そのままでは、次に読み出すブロックが、1フレームの画面の外のラインV16になってしまう。ここで、本例においては、このような状況になると、図37(B)に示すように、次のフレームの左端のブロックラインV17,V18,V19のブロックの読み出しを開始し、2次メモリ60に転送させる。
即ち、図37(A)に示すように、中央ブロック211″が1フレームの右下寄りになり、サーチ範囲210″が1フレームの右下端まで移動したとする。このときには、短冊状の垂直のブロックラインV11,V12,V13,V14,V15が、参照ブロックバッファ部162に転送されているとすると、そのままでは、次に読み出すブロックが、1フレームの画面の外のラインV16になってしまう。ここで、本例においては、このような状況になると、図37(B)に示すように、次のフレームの左端のブロックラインV17,V18,V19のブロックの読み出しを開始し、2次メモリ60に転送させる。
従って、図37(B)に示すように、次のフレームのサーチが開始された時点で、2次メモリ60には、ターゲットブロックである中央ブロック221の周囲のサーチ範囲220のデータが2次メモリ60に読み出されている。そのため、そのサーチ範囲220のデータを、直ちに2次メモリ60から1次メモリである参照ブロックバッファ部162に転送させて、サーチを実行させることができる。
図38は、本実施の形態の処理を、従来から提案されている他の処理と比較したものである。図38中の動作モードでの、下段の[ラスタースキャン+内部2次メモリ]が、本実施の形態の処理に相当する。上段の[ラスタースキャンモード]は、2次メモリを設けない構成とし、さらに、画像メモリ40にラスタースキャンモードで記憶させた場合である。中段の[ラスタースキャンモード+ブロックフォーマット]は、画像メモリ40にラスタースキャンモードで記憶させると共に、ブロックフォーマットでも記憶させる例である。
図38に示す[ラスタースキャンモード]の場合には、大容量メモリである画像メモリ40から、参照ブロックバッファ部162へのデータの転送が頻繁に発生し、画像メモリのデータ帯域の使用効率が悪く、メモリ効率が悪い。また、メモリに記憶されるデータの圧縮が不可能である。
[ラスタースキャンモード+ブロックフォーマット]の場合には、ブロックフォーマットのデータを読み出せばよいので、メモリ効率の負荷を小さくすることができる。しかしながら、1フレームのデータを記憶する大容量メモリとして、2面の容量を必要とし、1面分余計な書き込みが必要になる。
これに対して、本実施の形態の例の[ラスタースキャン+内部2次メモリ]の場合には、大容量メモリである画像メモリ40として1面分の記憶容量でよいと共に、読み出し及び書き込みの効率もよい効果を有する。
[ラスタースキャンモード+ブロックフォーマット]の場合には、ブロックフォーマットのデータを読み出せばよいので、メモリ効率の負荷を小さくすることができる。しかしながら、1フレームのデータを記憶する大容量メモリとして、2面の容量を必要とし、1面分余計な書き込みが必要になる。
これに対して、本実施の形態の例の[ラスタースキャン+内部2次メモリ]の場合には、大容量メモリである画像メモリ40として1面分の記憶容量でよいと共に、読み出し及び書き込みの効率もよい効果を有する。
このように本実施の形態の例によると、DRAMなどで構成される画像メモリ40には、比較的データ量の多い画像データを圧縮させたフォーマットで効率良く記憶させるようにした。その上で、動き検出・動き補償部31内の1次メモリには、2次メモリ60を介して、その画像メモリ40に記憶されたデータを書き込ませるようにしたので、1次メモリには効率良くデータが書き込まれる。すなわち、フレームをスキャンしていく都合上重複して読み出す可能性のある領域を、2次メモリに残したままで、1次メモリではサーチを行う領域のデータだけを書き込ませるようにしたので、画像メモリ40のアクセスは最低限でよくなる。また、2次メモリに書き込ませる際には、図2に示した自動メモリコピー部50内での処理で、既にブロックマッチングに適したフォーマットの画像データとなっている状態で行うようにした。このため、2次メモリから1次メモリへは、必要な領域のデータを単純にコピーするだけでよく、少ない処理負担で実行可能である。
なお、図36や図37に示したコピーブロックの移動は、1つの例であり、その他の処理構成としてもよい。1ブロックを構成する画素数についても一例であり、その他の構成でもよい。ブロック単位ではなく、1ライン単位や1画素単位でコピーを行うようにしてもよい。
また、上述の実施の形態は、この発明による画像処理装置を撮像装置に適用した場合であるが、この発明は、撮像装置に限られるわけではなく、種々の画像処理装置に適用可能である。
また、上述の実施の形態は、ブロックマッチング手法を用いて、画像の重ね合わせによるノイズ低減処理をする場合に、この発明を適用した場合であるが、これに限られるものではなく、画像メモリ部に書き込まれた画像データを、複数の処理部がアクセスするような画像処理装置の全てに適用可能である。
4…画像メモリ部、8…メモリコントローラ、16…動き検出・動き補償部、16a…1次メモリ(バッファ)、17…画像重ね合わせ部、35…データ圧縮部、36…データ伸張部、37…解像度変換部、40…画像メモリ(大容量メモリ)、41…1V前フレーム記憶部、42…2V前フレーム記憶部、50…自動メモリコピー部、51…キャッシュローテーションコントロール部、52…読み出しコントロール部、53…書き込みコントロール部、54…データコントロール部、55…データ伸張部、56…フォーマット変換部、57…バッファ、60…2次メモリ、61…1V前フレームの一部記憶部、62…2V前フレームの一部記憶部、100…ターゲット画像(ターゲットフレーム)、101…参照画像(参照フレーム)、102…ターゲットブロック、104…動きベクトル106…サーチ範囲、107…参照ベクトル、108…参照ブロック、161…ターゲットブロックバッファ部、162…参照ブロックバッファ部、163…マッチング処理部、164…動きベクトル算出部、171…加算率計算部、172…加算部
Claims (10)
- ターゲットフレームの画像データと参照フレームの画像データとの間で、動きベクトルをブロック単位で算出する画像処理部と、
過去のフレームの画像データを、参照フレームの画像データとして保持する参照フレーム用画像メモリと、
前記画像処理部での算出を行う際に、参照フレームのマッチング処理範囲を保持する1次メモリと、
前記参照フレーム用画像メモリに記憶された参照フレームの画像データから、必要な範囲の画像データを読み出して保持し、保持された画像データから、前記マッチング処理範囲のデータを読み出して、前記1次メモリに供給する2次メモリとを備えた
画像処理装置。 - 前記参照フレーム用画像メモリは、所定のフォーマットに変換された画像データを保持するメモリであり、
前記参照フレーム用画像メモリに保持された画像データを前記2次メモリに供給する際に、前記所定のフォーマットからのフォーマット変換を行う
請求項1記載の画像処理装置。 - 前記参照フレーム用画像メモリは、所定のフォーマットで圧縮処理された画像データを保持するメモリであり、
前記参照フレーム用画像メモリに保持された画像データを前記2次メモリに供給する際に、前記圧縮処理された画像データを伸張処理してから供給する
請求項1記載の画像処理装置。 - 前記画像処理部は、動きベクトルの検出に基づいて、ターゲットフレームの画像データに参照フレームの画像データを加算する位置を設定し、その設定された位置で複数フレームの画像の加算処理を行う
請求項1記載の画像処理装置。 - 前記画像処理部での複数フレームの画像の加算処理で、画像のノイズ除去又はノイズ低減を行う
請求項4記載の画像処理装置。 - ターゲットフレームの画像データと参照フレームの画像データとの間で、動きベクトルをブロック単位で算出する画像処理と、
過去のフレームの画像データを、参照フレームの画像データとして保持する参照フレーム保持処理と、
前記画像処理での動きベクトルの算出を行う際に、参照フレームのマッチング処理範囲を、前記画像処理で参照できる状態で保持するマッチング処理範囲保持処理と、
前記参照フレーム保持処理で保持された参照フレームの画像データから、必要な範囲の画像データを読み出して保持し、その保持した画像データの一部を読み出して前記マッチング処理範囲保持処理に送る中間保持処理とを行う
画像処理方法。 - 前記参照フレーム保持処理は、所定のフォーマットに変換された画像データを保持する処理であり、
前記参照フレーム保持処理で保持された画像データを読み出して前記中間保持処理を行う際に、前記所定のフォーマットからのフォーマット変換を行う
請求項6記載の画像処理方法。 - 前記参照フレーム保持処理は、所定のフォーマットで圧縮処理された画像データを保持するメモリであり、
前記参照フレーム保持処理で保持された画像データを読み出して前記中間保持処理を行う際に、前記圧縮処理された画像データを伸張処理してから供給する
請求項6記載の画像処理方法。 - 前記画像処理は、動きベクトルの検出に基づいて、ターゲットフレームの画像データに参照フレームの画像データを加算する位置を設定し、その設定された位置で複数フレームの画像を加算する処理である
請求項6記載の画像処理方法。 - 前記画像処理での複数フレームの画像の加算処理で、画像のノイズ除去又はノイズ低減を行う
請求項9記載の画像処理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011000803A JP2012142865A (ja) | 2011-01-05 | 2011-01-05 | 画像処理装置及び画像処理方法 |
US13/312,187 US20120169900A1 (en) | 2011-01-05 | 2011-12-06 | Image processing device and image processing method |
CN2012100015347A CN102592259A (zh) | 2011-01-05 | 2012-01-05 | 图像处理设备以及图像处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011000803A JP2012142865A (ja) | 2011-01-05 | 2011-01-05 | 画像処理装置及び画像処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012142865A true JP2012142865A (ja) | 2012-07-26 |
Family
ID=46380453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011000803A Pending JP2012142865A (ja) | 2011-01-05 | 2011-01-05 | 画像処理装置及び画像処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20120169900A1 (ja) |
JP (1) | JP2012142865A (ja) |
CN (1) | CN102592259A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014042139A (ja) * | 2012-08-22 | 2014-03-06 | Fujitsu Ltd | 符号化装置、符号化方法、及びプログラム |
CN103974041A (zh) * | 2014-05-14 | 2014-08-06 | 浙江宇视科技有限公司 | 一种视频周期管理方法和装置 |
JP2015139117A (ja) * | 2014-01-23 | 2015-07-30 | 富士通株式会社 | 情報処理装置、符号化単位の選択方法、及びプログラム |
US10089519B2 (en) | 2015-05-25 | 2018-10-02 | Canon Kabushiki Kaisha | Image capturing apparatus and image processing method |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104853211A (zh) * | 2014-02-16 | 2015-08-19 | 上海天荷电子信息有限公司 | 使用多种形式的参考像素存储空间的图像压缩方法和装置 |
WO2015177845A1 (ja) * | 2014-05-19 | 2015-11-26 | 株式会社島津製作所 | 画像処理装置 |
CN104244006B (zh) * | 2014-05-28 | 2019-02-26 | 北京大学深圳研究生院 | 一种基于图像超分辨率的视频编解码方法及装置 |
KR102031874B1 (ko) * | 2014-06-10 | 2019-11-27 | 삼성전자주식회사 | 구도 정보를 이용하는 전자 장치 및 이를 이용하는 촬영 방법 |
WO2016113888A1 (ja) * | 2015-01-15 | 2016-07-21 | 株式会社島津製作所 | 画像処理装置 |
CN115190305A (zh) * | 2021-04-01 | 2022-10-14 | Oppo广东移动通信有限公司 | 在视频编码装置中进行图像处理的方法、装置、介质及*** |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4015084B2 (ja) * | 2003-08-20 | 2007-11-28 | 株式会社東芝 | 動きベクトル検出装置及び動きベクトル検出方法 |
US7809061B1 (en) * | 2004-01-22 | 2010-10-05 | Vidiator Enterprises Inc. | Method and system for hierarchical data reuse to improve efficiency in the encoding of unique multiple video streams |
US20070140529A1 (en) * | 2005-12-21 | 2007-06-21 | Fujifilm Corporation | Method and device for calculating motion vector between two images and program of calculating motion vector between two images |
JP4752631B2 (ja) * | 2006-06-08 | 2011-08-17 | 株式会社日立製作所 | 画像符号化装置、及び画像符号化方法 |
JP2009071689A (ja) * | 2007-09-14 | 2009-04-02 | Sony Corp | 画像処理装置、画像処理方法および撮像装置 |
JP4882956B2 (ja) * | 2007-10-22 | 2012-02-22 | ソニー株式会社 | 画像処理装置および画像処理方法 |
JP4645746B2 (ja) * | 2009-02-06 | 2011-03-09 | ソニー株式会社 | 画像処理装置、画像処理方法および撮像装置 |
JP5376313B2 (ja) * | 2009-09-03 | 2013-12-25 | 株式会社リコー | 画像処理装置及び画像撮像装置 |
US9449367B2 (en) * | 2009-12-10 | 2016-09-20 | Broadcom Corporation | Parallel processor for providing high resolution frames from low resolution frames |
-
2011
- 2011-01-05 JP JP2011000803A patent/JP2012142865A/ja active Pending
- 2011-12-06 US US13/312,187 patent/US20120169900A1/en not_active Abandoned
-
2012
- 2012-01-05 CN CN2012100015347A patent/CN102592259A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014042139A (ja) * | 2012-08-22 | 2014-03-06 | Fujitsu Ltd | 符号化装置、符号化方法、及びプログラム |
JP2015139117A (ja) * | 2014-01-23 | 2015-07-30 | 富士通株式会社 | 情報処理装置、符号化単位の選択方法、及びプログラム |
CN103974041A (zh) * | 2014-05-14 | 2014-08-06 | 浙江宇视科技有限公司 | 一种视频周期管理方法和装置 |
US10089519B2 (en) | 2015-05-25 | 2018-10-02 | Canon Kabushiki Kaisha | Image capturing apparatus and image processing method |
Also Published As
Publication number | Publication date |
---|---|
US20120169900A1 (en) | 2012-07-05 |
CN102592259A (zh) | 2012-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4882956B2 (ja) | 画像処理装置および画像処理方法 | |
JP2012142865A (ja) | 画像処理装置及び画像処理方法 | |
JP2009071689A (ja) | 画像処理装置、画像処理方法および撮像装置 | |
JP5056370B2 (ja) | 撮像装置、撮像装置の制御方法および撮像装置の制御プログラム、ならびに、データ処理装置、データ処理方法およびデータ処理プログラム | |
JP2009105533A (ja) | 画像処理装置、撮像装置、画像処理方法および撮像画像処理方法 | |
JP2004336106A (ja) | 画像処理装置、画像処理方法ならびに撮像装置 | |
JP2009055410A (ja) | 画像処理装置および画像処理方法 | |
JP2006148861A (ja) | 撮像信号処理装置及び方法 | |
JP2012142829A (ja) | 画像処理装置および画像処理方法 | |
JP2012004908A (ja) | 画像処理装置、および画像処理方法、並びにプログラム | |
JP4985124B2 (ja) | 画像処理装置、画像処理方法、及び画像処理プログラム | |
JP2012142827A (ja) | 画像処理装置および画像処理方法 | |
JP2009116763A (ja) | 画像処理装置および画像データのメモリアクセス方法 | |
JP4606218B2 (ja) | 歪補正装置 | |
JP4998134B2 (ja) | 画像処理装置および画像処理方法 | |
JP5230381B2 (ja) | 撮像装置及び撮像装置の制御方法 | |
JP4888306B2 (ja) | 画像処理装置および画像処理方法 | |
JP2007174455A (ja) | 画像処理装置、画像処理方法、撮像装置および撮像方法 | |
JP2009130489A (ja) | 撮像装置、撮像記録方法、撮像画像記録再生装置および撮像画像記録再生方法 | |
JP2009065323A (ja) | 画像処理装置、画像処理方法、撮像装置および撮像方法 | |
JP4123623B2 (ja) | 画像信号処理装置および方法 | |
JP2007228119A (ja) | 撮像装置、画像処理方法、およびプログラム | |
JP2009232004A (ja) | 信号処理装置および信号処理方法、ならびに、撮像装置および撮像装置の制御方法 | |
JP2009140046A (ja) | 画像処理装置および画像データのメモリアクセス方法 | |
JP2009130561A (ja) | 撮像装置、撮像装置の制御方法および撮像装置の制御プログラム |