JP2009116763A - Image processing apparatus, and memory access method for image data - Google Patents
Image processing apparatus, and memory access method for image data Download PDFInfo
- Publication number
- JP2009116763A JP2009116763A JP2007291464A JP2007291464A JP2009116763A JP 2009116763 A JP2009116763 A JP 2009116763A JP 2007291464 A JP2007291464 A JP 2007291464A JP 2007291464 A JP2007291464 A JP 2007291464A JP 2009116763 A JP2009116763 A JP 2009116763A
- Authority
- JP
- Japan
- Prior art keywords
- image
- unit
- block
- memory
- image data
- 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
Images
Landscapes
- Image Input (AREA)
- Image Processing (AREA)
Abstract
Description
この発明は、システムバスを介して画像メモリ部と、種々の画像処理部とが接続され、画像メモリをアクセスしながら、前記種々の画像処理部がそれぞれの画像データ処理を実行するようにする画像処理装置に関し、特に、画像メモリ部への画像データのアクセス方法に関するものである。 According to the present invention, an image memory unit and various image processing units are connected via a system bus, and the various image processing units execute respective image data processing while accessing the image memory. More particularly, the present invention relates to a method for accessing image data to an image memory unit.
この明細書で、画面とは、1フレーム分または1フィールド分の画像データからなり、1枚分としてディスプレイに表示される画像を意味しているものとしている。 In this specification, the screen means an image that is composed of image data for one frame or one field and is displayed on the display as one image.
2つの画面間の動きベクトルを、画像情報自身から求めるブロックマッチング手法は、歴史の古い技術である。テレビジョンカメラのパン・チルト検出や被写体追尾、MPEG(Moving Picture Experts Group)方式の動画符号化などを中心に開発が進み、90年代に入ってからは、画像の重ね合わせによる、センサレス手ブレ補正や低照度撮影時のノイズ除去(Noise Reduction:以降、NRと表記する)など多岐に渡って応用が進められている。 A block matching method for obtaining a motion vector between two screens from image information itself is an old technology. Development has been centered on pan / tilt detection of TV cameras, subject tracking, moving picture experts group (MPEG) video coding, and sensorless camera shake correction by superimposing images since the 1990s. Applications such as noise reduction (Noise Reduction: hereinafter referred to as NR) at the time of low-illuminance photography are being promoted.
ブロックマッチングは、注目画面である参照画面と、当該参照画面の動きの元となる元画面(ターゲット画面と称する)との間の2画面間の動きベクトルを、所定の大きさの矩形領域のブロックについて、参照画面と元画面との間での相関を算出することにより算出する方法である
元画面が時間的に参照画面よりも前の画面とされる場合(例えば、MPEGにおける動き検出の場合)と、参照画面が時間的に元画面よりも前の画面とされる場合(例えば、後述する画像フレームの重ね合わせによるノイズ低減の場合)の両方がある。
In block matching, a motion vector between two screens between a reference screen that is a target screen and an original screen (referred to as a target screen) that is a source of motion of the reference screen is a block of a rectangular area having a predetermined size. Is a method of calculating by calculating the correlation between the reference screen and the original screen When the original screen is temporally before the reference screen (for example, in the case of motion detection in MPEG) In some cases, the reference screen is temporally the screen before the original screen (for example, in the case of noise reduction by superimposing image frames described later).
なお、この明細書で、画面とは、1フレームまたは1フィールドの画像データからなり、1枚分としてディスプレイに表示される画像を意味しているものとしているが、この明細書における以下の説明の便宜上、画面は1フレームからなるものとして、画面をフレームと称する場合もある。例えば、参照画面は参照フレーム、元画面は元フレームと称する場合もある。 In this specification, the screen means an image that is composed of one frame or one field of image data and is displayed on the display as one frame. In the following description of this specification, For convenience, the screen may be referred to as a frame, assuming that the screen is composed of one frame. For example, the reference screen may be referred to as a reference frame, and the original screen may be referred to as an original frame.
図64〜図69は、従来のブロックマッチングの概要を説明するための図である。ここで説明するブロックマッチング手法においては、例えば、図64(A)に示すように、元フレーム(ターゲットフレーム)100を、それぞれ水平方向の複数画素および垂直方向の複数ライン分からなる所定の大きさの矩形領域(ブロックという)の複数個に分割する。ターゲットフレームにおけるこれらの複数個のブロック102のそれぞれを、ターゲットブロックという。
FIGS. 64 to 69 are diagrams for explaining the outline of the conventional block matching. In the block matching method described here, for example, as shown in FIG. 64 (A), an original frame (target frame) 100 has a predetermined size composed of a plurality of pixels in the horizontal direction and a plurality of lines in the vertical direction, respectively. Divide into rectangular areas (called blocks). Each of the plurality of
ブロックマッチングにおいては、ターゲットブロック102と相関性の高いブロックを、参照フレーム101の中から検索する。この検索の結果、相関性が最も高いとして参照フレーム101内に検出されたブロック103(図64(B)参照)を、動き補償ブロックと呼ぶ。また、ターゲットブロック102と動き補償ブロック103との間の位置ずれ量を、動きベクトル(図64(B)の符号104参照)と称する。
In block matching, a block having a high correlation with the
ターゲットブロック102と動き補償ブロック103との間の位置ずれ(位置ずれ量と位置ずれ方向を含む)に対応する動きベクトル104は、参照フレーム101において、ターゲットフレーム100の各ターゲットブロック102の位置と同じ位置に、ターゲットブロック102の射影イメージブロック109を想定したとき、このターゲットブロックの射影イメージブロック109の位置(例えば中心位置)と、動き補償ブロック103の位置(例えば中心位置)との間の位置ずれに相当し、位置ずれ量と位置ずれの方向成分も有するものである。
A
ブロックマッチング処理の概要を説明する。図65において点線で示すように、参照フレーム101において、ターゲットフレーム100の各ターゲットブロック102の位置と同じ位置にターゲットブロックの射影イメージブロック109を想定し、このターゲットブロックの射影イメージブロック109の中心の座標を、動き検出の原点105とする。そして、動きベクトル104が、動き検出の原点105から或る範囲内に存在すると仮定し、この動き検出の原点105を中心した所定の範囲をサーチ範囲106(図65の一点鎖線参照)と設定する。
An outline of the block matching process will be described. As shown by a dotted line in FIG. 65, a projected
次に、ターゲットブロック102と同じ大きさのブロック(参照ブロックという)108を参照画面において設定する。そして、この参照ブロック108の位置を、サーチ範囲106内において、例えば水平方向および垂直方向に、1画素または複数画素単位で移動させるようにする。したがって、サーチ範囲106においては、複数個の参照ブロック108が設定されることになる。
Next, a block (referred to as a reference block) 108 having the same size as the
ここで、参照ブロック108を、サーチ範囲106内を移動させるというのは、この例では、動き検出原点105がターゲットブロックの中心位置であるので、参照ブロック108の中心位置を、サーチ範囲106内を移動させることを意味し、参照ブロック108を構成する画素は、サーチ範囲106よりもはみ出すことがある。
Here, the
そして、サーチ範囲において、設定される各参照ブロック108に対して、当該各参照ブロック108とターゲットブロック102との位置ずれ量および位置ずれ方向を表すベクトル(参照ベクトルという)107(図65参照)を設定し、それぞれの参照ベクトル107が指し示す位置にある参照ブロック108の画像内容と、ターゲットブロック102の画像内容との相関性を評価する。
Then, for each
参照ベクトル107は、図66に示すように、参照ブロック108の水平方向(X方向)の位置ずれ量Vxとし、垂直方向(Y方向)の位置ずれ量をVyとしたとき、ベクトル(Vx,Vy)と表すことができ、参照ブロック108の位置座標(例えば中心位置座標)とターゲットブロック102の位置座標(例えば中心位置座標)とが同じときには、参照ベクトル107は、ベクトル(0,0)と表す。
As shown in FIG. 66, the
例えば、参照ブロック108が、ターゲットブロック102の位置から、X方向に1画素ずれた位置にある場合、参照ベクトル107はベクトル(1,0)となる。また、図67に示すように、参照ブロック108が、ターゲットブロック102の位置から、X方向に3画素、Y方向に2画素ずれた位置にある場合には、参照ベクトル107はベクトル(3,2)となる。
For example, when the
つまり、参照ベクトル107は、図67の例に示すように、ターゲットブロック102および参照ブロック108の位置を、それぞれのブロックの中心位置とした場合、各参照ベクトル108は、対応する各参照ブロック108の中心位置とターゲットブロック102の中心位置との位置ずれ(位置ずれ量と位置ずれの方向を含むベクトルとなる)を意味する。
That is, as shown in the example of FIG. 67, when the positions of the
参照ブロック108は、サーチ範囲106において移動するものとなるが、その場合に、参照ブロック108の中心位置がサーチ範囲106内を移動する。前述もしたように、参照ブロック108は、水平方向および垂直方向の複数画素からなるので、ターゲットブロック102とブロックマッチング処理される対象となる参照ブロック108が移動する最大範囲は、図67に示すように、サーチ範囲106よりも広いマッチング処理範囲110となる。
The
そして、ターゲットブロック102の画像内容との相関が最も強いとして検出された参照ブロック108の位置を、ターゲットフレーム100のターゲットブロック102の、参照フレーム101における位置(動いた後の位置)として検出し、検出した参照ブロックを、前述した動き補償ブロック103とする。そして、その検出した動き補償ブロック103の位置と、ターゲットブロック102の位置との間の位置ずれ量を、方向成分を含む量としての動きベクトル104として検出するようにする(図64(B)参照)。
Then, the position of the
ここで、ターゲットブロック102と、サーチ範囲106において移動する参照ブロック108との相関の強さを表す相関値は、基本的にはターゲットブロック102と参照ブロック108との対応する画素値を用いて算出されるが、その算出方法は、自乗平均を用いる方法やその他種々の方法が提案されている。
Here, the correlation value indicating the strength of correlation between the
そのうち、動きベクトルを算出する際に一般的に用いられる相関値としては、例えば、ターゲットブロック102内の各画素の輝度値と、参照ブロック106内の対応する各画素の輝度値との差分の絶対値の、ブロック内の全画素についての総和(この差分の絶対値の総和を差分絶対値和と呼ぶ。以下、この差分絶対値和をSAD(Sum of Absolute Difference)と記載することとする)が用いられる(図68参照)。
Among them, as a correlation value generally used when calculating a motion vector, for example, the absolute value of the difference between the luminance value of each pixel in the
相関値としてSAD値が用いられる場合には、SAD値が小さいほど相関が強いものとされる。したがって、サーチ範囲106において移動する参照ブロック108のうち、SAD値が最小となる位置の参照ブロック108が最も相関が強い最強相関参照ブロックとなり、この最強相関参照ブロックが、動き補償ブロック103として検出され、その検出された動き補償ブロック103のターゲットブロック102の位置に対する位置ずれ量が動きベクトルとして検出される。
When the SAD value is used as the correlation value, the smaller the SAD value, the stronger the correlation. Therefore, among the
前述したように、ブロックマッチングでは、サーチ範囲106において設定される複数個の参照ブロック108のそれぞれの、ターゲットブロック102の位置に対する位置ずれ量は、方向成分を含む量としての参照ベクトル107で表現される。各参照ブロック108の参照ベクトル107は、参照ブロック108の参照フレーム102上の位置に応じた値となる。前述したように、ブロックマッチングでは、相関値であるSAD値が最小値となる参照ブロック108の参照ベクトルを、動きベクトル104として検出する。
As described above, in block matching, the amount of positional deviation of each of the plurality of
そこで、ブロックマッチングでは、一般に、図69に示すように、サーチ範囲106において設定される複数個の参照ブロック108のそれぞれとターゲットブロック102との間におけるSAD値(以下、説明の簡単のため参照ブロック108についてのSAD値という)を、それぞれの参照ブロック108の位置に応じた参照ベクトル107(以下、説明の簡単のため、参照ブロック106の位置に応じた参照ベクトル107を参照ブロック108の参照ベクトル107という)のそれぞれに対応させて、メモリに記憶しておき、そのメモリに記憶された全ての参照ブロック108についてのSAD値の中から、最小のSAD値の参照ブロック108を検出することで、動きベクトル104を検出するようにしている。
Therefore, in block matching, generally, as shown in FIG. 69, SAD values between each of the plurality of
サーチ範囲106において設定された複数個の参照ブロック108の位置に応じた参照ベクトル107のそれぞれに対応させて、それぞれの参照ブロック108についての相関値(この例では、SAD値)を記憶したものを相関値テーブルと呼ぶ。この例では、相関値として差分絶対値和であるSAD値を用いるので、この相関値テーブルを、差分絶対値和テーブル(以下SADテーブルという)と呼ぶことにする。
Corresponding to each of the
図69のSADテーブルTBLが、これを示しており、このSADテーブルTBLにおいて、それぞれの参照ブロック108についての相関値(この例ではSAD値)を相関値テーブル要素という。図69の例では、符号111で指し示すSAD値は、参照ベクトルがベクトル(0,0)のときのSAD値である。そして、図69の例では、SAD値の最小値は、参照ベクトルがベクトル(3,2)のときの「7」であるので、求める動きベクトル104は、当該(3,2)となる。
This is shown in the SAD table TBL of FIG. 69. In this SAD table TBL, the correlation value (SAD value in this example) for each
なお、上述の説明において、ターゲットブロック102および参照ブロック108の位置とは、それらのブロックの任意の特定の位置、例えば中心位置を意味するものであり、参照ベクトル107は、参照フレーム102におけるターゲットブロック102の射影イメージブロック109の位置と、参照ブロック108の位置との間のずれ量(方向を含む)を示すものである。
In the above description, the positions of the
そして、各参照ブロック108に対応する参照ベクトル107は、参照フレーム101上において、ターゲットブロック102に対応する射影イメージブロック109の位置からの、各参照ブロック108の位置ずれとなっているので、参照ブロック108の位置が特定されると、その位置に対応して参照ベクトルの値も特定される。したがって、SADテーブル110のメモリにおける参照ブロックの相関値テーブル要素のアドレスが特定されると、対応する参照ベクトルは特定されることになる。
Since the
なお、SAD値は、同時に、2つ以上のターゲットブロックについて計算するようにしてもよい。同時に処理するターゲットブロックが増加すると、処理は高速化する。しかし、SAD値を計算するハードウエアの規模が増大するので、処理の高速化と、回路規模の増大のトレードオフになる。 Note that the SAD value may be calculated for two or more target blocks at the same time. As the number of target blocks to be processed simultaneously increases, the processing speed increases. However, since the hardware scale for calculating the SAD value increases, there is a trade-off between speeding up the processing and increasing the circuit scale.
以上のように、ブロックマッチング手法は、ターゲットフレームを、複数個のターゲットブロックに分割し、各ターゲットブロックに対して、参照フレームに検索範囲を設定し、画像メモリから、ターゲットフレームのターゲットブロックと参照フレームの検索範囲内の参照ブロックを読み出し、各画素のSAD値を計算し、検索範囲の広さ分のSAD値テーブルを形成し、その最小値の座標値をターゲットブロックについての動きベクトルとしている。 As described above, the block matching method divides the target frame into a plurality of target blocks, sets a search range in the reference frame for each target block, and refers to the target block of the target frame from the image memory. A reference block in the frame search range is read, the SAD value of each pixel is calculated, a SAD value table corresponding to the width of the search range is formed, and the coordinate value of the minimum value is used as a motion vector for the target block.
画像メモリと、動きベクトル検出部などとは、システムバスを通じて接続され、メモリコントローラにより、画像メモリに対する書き込みおよび読み出しが制御される。 The image memory and the motion vector detection unit are connected through a system bus, and writing and reading to and from the image memory are controlled by the memory controller.
そして、上述のように、ブロックマッチング手法では、画像メモリからの画素単位のデータについてのSAD値を計算するようにするので、画像自体の画素数や、検索範囲の広さに比例して、画像メモリへのアクセスが多くなり、バス帯域を大きくする必要がある。ここで、バス帯域とは、データを転送するバス上で、輻輳を回避してデータ転送することができるデータレートおよびバス幅(ビット数)などからなる量である。バス帯域が大きくなると、システムの規模が大きくなると共に、コストが増大するという問題がある。 As described above, in the block matching method, the SAD value for the pixel unit data from the image memory is calculated, so that the image is proportional to the number of pixels of the image itself and the width of the search range. Access to the memory increases and the bus bandwidth needs to be increased. Here, the bus bandwidth is an amount including a data rate, a bus width (number of bits), and the like at which data can be transferred while avoiding congestion on a bus for transferring data. When the bus band is increased, there is a problem that the scale of the system is increased and the cost is increased.
この問題に対して、従来、画像に動きが無い静止状態であれば、マッチング処理をしない手法(特許文献1(特開2005−210503号公報)など)や、参照フレームの画像を間引いて情報量を落とす手法(特許文献2(特開2006−287583号公報)など)などが提案されている。 To solve this problem, conventionally, if the image is in a stationary state with no motion, a method that does not perform a matching process (eg, Patent Document 1 (Japanese Patent Laid-Open No. 2005-210503)) or a reference frame image is thinned to obtain an information amount. A method of dropping the image (Patent Document 2 (Japanese Patent Laid-Open No. 2006-287583) and the like) has been proposed.
また、ブロックマッチング精度を落とさずに、バス帯域を削減する方法としては、参照フレームの参照ブロックの共有部分を保持しておき、追加部分のみを更新する手法(特許文献3(特開2006−340139号公報))が有効である。 Further, as a method of reducing the bus bandwidth without reducing the block matching accuracy, a method of holding only the shared part of the reference block of the reference frame and updating only the added part (Japanese Patent Laid-Open No. 2006-340139). No.)) is effective.
上述した参考となる特許文献は、次の通りである。
しかしながら、特許文献1および特許文献2の手法は、ブロックマッチングの精度を落とすものであって、高い精度が求められないような、ある限定されたアプリケーションにしか適用できないという問題がある。
However, the methods of
また、特許文献3の手法によれば、ブロックマッチング精度を落とさずにバス帯域を削減することができるが、マッチング処理を行うブロックの順番が重要になり、隣り合うブロックを続けてマッチング処理しない場合、マッチング処理の順番が特定できない場合などについてはバス帯域削減を図れないという問題がある。
Further, according to the method of
また、画像メモリに対してシステムバスを介して、ブロックマッチング処理部以外の複数個の画像データ処理部が接続されている場合に、画像メモリに対する画像データのメモリアクセスの仕方を、ブロックマッチング処理のためには効率が良い方式を採用したとしても、他の画像データ処理部については、その画像メモリに対する画像データのメモリアクセス手法が適しておらず、かえってバス帯域を増大する方向になってしまう場合があるという問題がある。 In addition, when a plurality of image data processing units other than the block matching processing unit are connected to the image memory via the system bus, the memory access method of the image data with respect to the image memory is determined by the block matching processing. For this reason, even if an efficient method is adopted, the memory access method of the image data for the image memory is not suitable for other image data processing units, and the bus bandwidth is likely to increase. There is a problem that there is.
この発明は、以上の点にかんがみ、画像メモリに対してシステムバスを介して、複数個の画像データ処理部が接続されている場合において、上述の問題点を回避しながら、バス帯域の削減を図ることができる画像処理装置および画像データのメモリアクセス方法を提供することを目的とする。 In view of the above points, the present invention reduces the bus bandwidth while avoiding the above-mentioned problems when a plurality of image data processing units are connected to the image memory via the system bus. An object of the present invention is to provide an image processing apparatus and a memory access method for image data.
上記の課題を解決するために、この発明は、
複数画面分の画像データを記録可能な画像メモリ部と、
入力される画像データについて第1の処理を行って、前記画像メモリ部に、その処理結果の画像データを格納する第1の画像処理部と、
前記画像メモリ部から前記処理結果の画像データを読み出して第2の処理を行なう第2の画像処理部と、
前記画像メモリ部から前記処理結果の画像データを読み出して第3の処理を行なう第3の画像処理部と、
前記画像メモリ部と、前記第1の画像処理部と、前記第2の画像処理部と、前記第3の画像処理部とが接続されるバスと、
前記画像メモリ部に対する前記バスを介した画像データの書き込みおよび読み出しを制御するメモリコントローラと、
を備え、
前記第1の画像処理部での前記第1の処理の結果の画像データは、前記メモリコントローラにより、画面の垂直方向のライン数と水平方向の画素数との組み合わせが第1の組み合わせとされた第1のブロック単位で、前記画像メモリ部の第1のメモリ領域に書き込まれると共に、画面の垂直方向のライン数と水平方向の画素数との組み合わせが、前記第1の組み合わせとは異なる第2の組み合わせとされた第2のブロック単位で、前記画像メモリ部の第2のメモリ領域に書き込まれるようにされ、
前記第2の画像処理部には、前記メモリコントローラにより、前記画像メモリ部の前記第1のメモリ領域に書き込まれた画像データが読み出されて供給され、
前記第3の画像処理部には、前記メモリコントローラにより、前記画像メモリ部の前記第2のメモリ領域に書き込まれた画像データが読み出されて供給される
ことを特徴とする画像処理装置を提供する。
In order to solve the above problems, the present invention provides:
An image memory unit capable of recording image data for a plurality of screens;
A first image processing unit that performs first processing on input image data and stores image data of the processing result in the image memory unit;
A second image processing unit that reads out the image data of the processing result from the image memory unit and performs a second process;
A third image processing unit that reads out the image data of the processing result from the image memory unit and performs a third process;
A bus to which the image memory unit, the first image processing unit, the second image processing unit, and the third image processing unit are connected;
A memory controller that controls writing and reading of image data via the bus to the image memory unit;
With
The image data as a result of the first processing in the first image processing unit has the first combination of the number of lines in the vertical direction and the number of pixels in the horizontal direction on the screen by the memory controller. The second block is written in the first memory area of the image memory unit in the first block unit, and the combination of the number of lines in the vertical direction and the number of pixels in the horizontal direction of the screen is different from the first combination. And is written in the second memory area of the image memory unit in a second block unit that is a combination of
The second image processing unit is read and supplied with the image data written in the first memory area of the image memory unit by the memory controller,
Provided to the third image processing unit is an image processing device in which the memory controller reads and supplies the image data written in the second memory area of the image memory unit. To do.
上述の構成のこの発明においては、第1の画像処理部での処理結果の画像データは、第2の画像処理部での画像処理において、バス効率が良好となり、バス帯域の削減が可能な第1のブロック単位で画像メモリ部に書き込み、読み出して、第2の画像処理部に転送することができる。 In the present invention having the above-described configuration, the image data obtained as a result of processing in the first image processing unit is improved in bus efficiency and can reduce the bus bandwidth in the image processing in the second image processing unit. The data can be written to, read from, and transferred to the second image processing unit in units of one block.
これと共に、第1の画像処理部での処理結果の画像データは、第3の画像処理部での画像処理において、バス効率が良好となり、バス帯域の削減が可能な第2のブロック単位で画像メモリ部に書き込み、読み出して、第3の画像処理部に転送することができる。 At the same time, the image data obtained as a result of processing in the first image processing unit is imaged in units of the second block in which the bus efficiency is improved and the bus bandwidth can be reduced in the image processing in the third image processing unit. The data can be written to and read from the memory unit and transferred to the third image processing unit.
この発明によれば、画像メモリに対してシステムバスを介して、複数個の画像処理部が接続されている場合においても、複数の画像処理部のそれぞれに最適の画像データフォーマットで、画像メモリ部をアクセスすることができ、バス帯域の削減を図ることができる。 According to the present invention, even when a plurality of image processing units are connected to the image memory via the system bus, the image memory unit has an optimum image data format for each of the plurality of image processing units. Can be accessed, and the bus bandwidth can be reduced.
以下、この発明による画像処理装置の実施形態として、撮像装置の場合を例にとって、図を参照しながら説明する。また、画像処理として、ブロックマッチングにより2画面間の動きベクトルを検出し、検出した動きベクトルを用いて動き補償画像を生成し、生成した動き補償画像とノイズ低減対象の画像を重ね合わせてノイズ低減を行う場合を例として説明する。 Hereinafter, an embodiment of an image processing apparatus according to the present invention will be described with reference to the drawings, taking the case of an imaging apparatus as an example. In addition, as image processing, a motion vector between two screens is detected by block matching, a motion compensated image is generated using the detected motion vector, and the generated motion compensated image and a noise reduction target image are superimposed to reduce noise. The case of performing is described as an example.
[この発明による画像処理装置の実施形態としての撮像装置]
以下に説明する実施の形態の撮像装置では、図2に示すように、連続して撮影された複数枚の画像、例えばP1,P2,P3を、動き検出および動き補償を用いて位置合わせをした後、重ね合わせすることで、ノイズが低減された画像Pmixを得ることができるようにしている。すなわち、複数枚の画像のそれぞれにおけるノイズはランダムなものであるので、同一内容の画像を重ね合わせることで、画像に対してノイズが低減されるものである。
[Imaging Device as an Embodiment of an Image Processing Device According to the Invention]
In the imaging apparatus according to the embodiment described below, as shown in FIG. 2, a plurality of images, for example, P1, P2, and P3, which are continuously captured, are aligned using motion detection and motion compensation. Thereafter, by superimposing, an image Pmix with reduced noise can be obtained. That is, since noise in each of a plurality of images is random, the noise is reduced with respect to the images by superimposing images having the same content.
以下の説明において、動き検出および動き補償を用いて複数枚の画像を重ね合わせて、ノイズを低減することをNR(Noise Reduction)と呼び、NRによりノイズ低減された画像をNR画像と称することとする。 In the following description, the noise reduction by superimposing a plurality of images using motion detection and motion compensation is referred to as NR (Noise Reduction), and the image whose noise is reduced by NR is referred to as an NR image. To do.
この明細書では、ノイズ低減を施したい画面(画像)をターゲット画面(ターゲットフレーム)、重ね合わせたい画面を参照画面(参照フレーム)と定義する。連続して撮影された画像は、撮影者の手ブレなどにより、画像の位置がずれており、両画像の重ね合わせを行うには、位置合わせが重要となる。ここで、考慮しなければならないのは、手ブレのような画面全体のブレと共に、画面内における被写体の動きも存在することである。 In this specification, a screen (image) to be subjected to noise reduction is defined as a target screen (target frame), and a screen to be superimposed is defined as a reference screen (reference frame). Images taken consecutively are misaligned due to the camera shake of the photographer, etc., and alignment is important to superimpose both images. Here, it is necessary to consider that there is a movement of the subject in the screen as well as a blur of the entire screen such as a camera shake.
このため、被写体に対してもノイズ低減効果を高めるためには、図3に示すように、ターゲットフレーム100を分割して生成される複数個のターゲットブロック102のそれぞれ単位での位置合わせが必要になる。
For this reason, in order to enhance the noise reduction effect for the subject as well, as shown in FIG. 3, it is necessary to align each of the plurality of target blocks 102 generated by dividing the
したがって、この実施の形態では、複数個のターゲットブロック102の全てについて、ブロック単位の動きベクトル(以下、ブロック動きベクトルという)104Bを検出し、それぞれのターゲットブロック102について、対応するブロック動きベクトル104Bを用いて位置合わせを行い、画像を重ね合わせるようにする。
Accordingly, in this embodiment, a motion vector (hereinafter referred to as a block motion vector) 104B is detected for each of the plurality of target blocks 102, and the corresponding
この実施の形態の撮像装置において、静止画撮影時は、図4に示すように、高速で複数枚の画像の撮影を行い、1枚目の撮影画像をターゲットフレーム100とし、2枚目以降、所定枚数の撮影画像を参照フレーム101とし、重ね合わせを行い、その重ね合わせたものを静止画撮影画像として記録するようにする。すなわち、撮影者が撮像装置のシャッターボタンを押下操作すると、高速で前記所定枚数の画像が撮影され、その1枚目に撮影した画像(フレーム)に対して、時間的に後で撮影された複数枚の画像(フレーム)が、重ね合わされることになる。
In the image pickup apparatus of this embodiment, at the time of still image shooting, as shown in FIG. 4, a plurality of images are shot at high speed, the first shot image is used as the
また、動画撮影時は、図5のように、撮像素子から出力されている現フレームの画像をターゲットフレーム100の画像とし、その前フレームの過去の画像を参照フレーム101の画像とする。したがって、現フレームの画像のノイズ低減を行うために、現フレームの前フレームの画像を現フレームに重ね合わせるということになる。
At the time of moving image shooting, as shown in FIG. 5, the current frame image output from the image sensor is used as the
なお、上述の図4および図5の画像の重ね合わせの方法の説明の場合は、記録する動画画像のフレームレートを60fps(flame/second)としたときに、撮像素子から当該60fpsのフレームレートの2枚の画像フレームを重ね合わせて、その結果としてノイズの低減された60fpsのフレームレートで撮像画像信号が得られる場合である。 In the description of the method for superimposing the images in FIGS. 4 and 5 described above, when the frame rate of the moving image to be recorded is 60 fps (frame / second), the frame rate of 60 fps is obtained from the image sensor. This is a case where two image frames are superimposed, and as a result, a captured image signal is obtained at a frame rate of 60 fps with reduced noise.
しかし、撮像素子から、より高速の、例えば240fpsの高フレームレートで、撮像画像が出力されるように構成されている場合において、動画撮影時においても、4枚ずつの画像を重ねて1枚の動画フレームを生成することで、60fpsのフレームレートの撮像画像信号を得るようにすることもできる。もちろん、240fpsの撮像動画画像を、この例と同様にして、2枚の画像フレームを重ね合わせて、その結果として240fpsのフレームレートのノイズ低減された撮像画像信号を得るようにすることもできる。 However, when the captured image is output from the image sensor at a higher frame rate of, for example, 240 fps, even when capturing a moving image, one image is superimposed on each other. It is also possible to obtain a captured image signal having a frame rate of 60 fps by generating a moving image frame. Needless to say, 240 fps captured moving image can be obtained by superimposing two image frames in the same manner as in this example, and as a result, a noise-captured captured image signal having a frame rate of 240 fps can be obtained.
なお、この実施の形態においては、さらに、より高精度で画像の重ね合わせができるように、処理対象画像の画素ピッチの精度(ピクセル(画素)精度という)よりも高精度、つまり、元の画面(ターゲットフレーム)の画素ピッチよりも小さいピッチの高精度(この高精度をサブピクセル精度と呼ぶことにする)で、ブロック動きベクトルを検出するようにする。このサブピクセル精度での動きベクトル算出のために、後述するように、この実施の形態においては、ピクセル精度で求めた動きベクトルと、その近傍の参照ベクトルとを用いて補間処理をするようにする。 In this embodiment, the accuracy of the pixel pitch of the image to be processed (referred to as pixel (pixel) accuracy) is higher, that is, the original screen so that the images can be superimposed with higher accuracy. The block motion vector is detected with high accuracy with a pitch smaller than the pixel pitch of (target frame) (this high accuracy will be referred to as sub-pixel accuracy). In order to calculate the motion vector with the sub-pixel accuracy, as will be described later, in this embodiment, the interpolation processing is performed using the motion vector obtained with the pixel accuracy and the reference vector in the vicinity thereof. .
図1は、この発明の画像処理装置の実施形態としての撮像装置の一例のブロック図を示すものである。 FIG. 1 shows a block diagram of an example of an imaging apparatus as an embodiment of the image processing apparatus of the present invention.
この図1に示すように、この実施形態の撮像装置は、システムバス2にCPU(Central Processing Unit)1が接続されると共に、システムバス2に、撮像信号処理系10や、ユーザ操作入力部3、画像メモリ部4、記録再生装置部5などが接続されて構成されている。なお、この明細書においては、CPU1は、図示は省略するが、種々のソフトウエア処理を行なうプログラムを記憶するROM(Read Only Memory)やワークエリア用RAM(Random Access Memory)などを含むものとしている。
As shown in FIG. 1, in the imaging apparatus of this embodiment, a CPU (Central Processing Unit) 1 is connected to a
画像メモリ部4は、この画像メモリ部4に対する書き込みおよび読み出しを制御するメモリコントローラ8を介して、システムバス2に接続されている。
The
ユーザ操作入力部3を通じた撮像記録開始操作を受けて、図1の撮像装置の撮像信号処理系は、後述するような撮像画像データの記録処理を行なう。また、ユーザ操作入力部3を通じた撮像記録画像の再生開始操作を受けて、図1の撮像装置の撮像信号処理系10は、記録再生装置部5の記録媒体に記録された撮像画像データの再生処理を行なう。なお、撮像信号処理系10の後述する各部は、制御レジスタ部7を通じたCPU3の制御コマンドを受けて、CPU3の制御を受けながら、それぞれの処理を実行するものである。
In response to an imaging recording start operation through the user
図1に示すように、撮像信号処理系10においては、撮像レンズ10Lを備えるカメラ光学系(図示は省略)を通じた被写体からの入射光は、撮像素子11に照射されて撮像される。この例では、撮像素子11は、CCD(Charge Coupled Device)イメージャで構成されている。なお、撮像素子12は、CMOS(Complementary Metal Oxide Semiconductor)イメージャで構成してもよい。
As shown in FIG. 1, in the imaging
この例の撮像装置においては、撮像記録開始操作がなされると、レンズ10Lを通じて入力された映像が、撮像素子11により撮像画像信号に変換され、タイミング信号発生部12からのタイミング信号に同期した信号として、赤(R)、緑(G)、青(B)の3原色から構成されるベイヤー配列のRAW信号(生の信号)であるアナログ撮像信号が出力される。出力されたアナログ撮像信号は、前処理部13に供給され、欠陥補正やγ補正等の前処理が施され、データ変換部14に供給される。
In the imaging apparatus of this example, when an imaging recording start operation is performed, a video input through the
データ変換部14は、これに入力されたRAW信号であるアナログ撮像信号を、輝度信号成分Yと、色差信号成分Cb/Crとにより構成されるデジタル撮像信号(YCデータ)に変換し、そのデジタル撮像信号を画像補正・解像度変換部15に供給する。画像補正・解像度変換部15では、ユーザ操作入力部3を通じて指定された解像度に、デジタル撮像信号を変換し、システムバスを介して、画像メモリ部4に供給する。
The
ユーザ操作入力部3を通じた撮影指示が、シャッターボタンの押下による静止画撮影指示であったときには、画像補正・解像度変換部15で解像度変換されたデジタル撮像信号は、前述した複数フレーム分が画像メモリ部4に書き込まれる。そして、複数フレーム分の画像が画像メモリ部4に書き込まれた後、ターゲットフレームの画像データと参照フレームの画像データが、動き検出・動き補償部16によって読み込まれ、後述するようなこの実施形態におけるブロックマッチング処理がなされて、動きベクトルが検出され、当該検出された動きベクトルに基づいて、画像重ね合わせ部17で後述するような画像の重ね合わせ処理が行われ、その重ね合わせ結果、ノイズ低減されたNR画像の画像データが画像メモリ部4に格納される。
When the shooting instruction through the user
そして、この画像メモリ部4に格納された重ね合わせ結果のNR画像の画像データは、静止画コーデック部18においてコーデック変換され、システムバス2を通じて記録再生装置部5の例えばDVD(Digital Versatile Disc)やハードディスクなどの記録媒体に記録される。この実施形態では、静止画コーデック部18では、JPEG(Joint Photographic Experts Group)方式の静止画についての画像圧縮符号化処理が行われる。
Then, the image data of the superposed NR image stored in the
また、この静止画撮影時、シャッターボタンが押下操作される前においては、画像補正・解像度変換部15からの画像データは、画像メモリ部4を通じてNTSC(National Television System Committee)エンコーダ20に供給され、このNTSCエンコーダ20によりNTSC方式の標準カラー映像信号に変換され、例えばLCD(Liquid Crystal Display;液晶ディスプレイ)からなるモニターディスプレイ6に供給され、静止画撮影時のモニター画像がその表示画面にモニター表示される。
At the time of still image shooting, before the shutter button is pressed, the image data from the image correction /
また、ユーザ操作入力部3を通じた撮影指示が、動画記録ボタンの押下による動画撮影指示であったときには、解像度変換された画像データは、画像メモリ部4に書き込まれると共に、リアルタイムに動き検出・動き補償部16へ送られ、後述するようなこの実施形態におけるブロックマッチング処理がなされて、動きベクトルが検出され、当該検出された動きベクトルに基づいて、画像重ね合わせ部17で後述するような画像の重ね合わせ処理が行われ、その重ね合わせ結果、ノイズ低減されたNR画像の画像データが画像メモリ部4に格納される。
When the shooting instruction through the user
そして、この画像メモリ部4に格納された重ね合わせ結果のNR画像の画像データは、NTSCエンコーダ部20を通じてモニターディスプレイ6の表示画面に出力されながら、動画コーデック部19でコーデック変換され、システムバス2を通じて記録再生装置部5に供給され、DVDやハードディスクなどの記録媒体に記録される。この実施形態では、動画コーデック部18では、MPEG(Moving Picture Experts Group)方式の動画についての画像圧縮符号化処理が行われる。
The image data of the superimposed NR image stored in the
この記録再生装置部5の記録媒体に記録された撮像画像データは、ユーザ操作入力部3を通じた再生開始操作に応じて読み出され、動画コーデック部19に供給されて、再生デコードされる。そして、再生デコードされた画像データはNTSCエンコーダ20を通じてモニターディスプレイ6に供給され、再生画像がその表示画面に表示される。なお、図1では、図示を省略したが、NTSCエンコーダ20からの出力映像信号は、映像出力端子を通じて外部に導出することが可能とされている。
The captured image data recorded on the recording medium of the recording / reproducing
上述した動き検出・動き補償部16は、ハードウエアにより構成することできるし、また、DSP(Digital Signal Processor)を用いて構成することもできる。さらには、CPU1によりソフトウエア処理とすることもできる。
The motion detection /
同様に、画像重ね合わせ部17も、ハードウエアにより構成することできるし、また、DSPを用いて構成することもできる。さらには、CPU1によりソフトウエア処理とすることもできる。また、静止画コーデック部18、動画コーデック部19なども、同様である。
Similarly, the
[動き検出・動き補償部16の説明]
動き検出・動き補償部16では、この実施の形態では、基本的には、図64〜図69を用いて説明した、SAD値を用いてブロックマッチング処理を行うことで、動きベクトル検出を行うようにする。ただし、この実施の形態では、動き検出・動き補償部16は、後述するようなハードウエアで構成され、共通のハードウエアで階層化したブロックマッチング処理を行うようにする。また、後述するように、共通のハードウエアで、静止画についてのノイズ低減処理と、動画についてのノイズ低減処理とが実現できるように構成している。
[Description of Motion Detection / Compensation Unit 16]
In this embodiment, the motion detection /
<実施の形態の階層化ブロックマッチング処理の概要>
一般的な従来のブロックマッチングにおける動きベクトル検出処理は、ピクセル(画素)単位(1ピクセル単位または複数ピクセル単位)で参照ブロックを移動させて、各移動位置における参照ブロックについてのSAD値を算出し、その算出したSAD値の中から最小値を示すSAD値を検出し、当該最小SAD値を呈する参照ブロック位置に基づいて動きベクトルを検出するようにする。
<Outline of Hierarchical Block Matching Processing of Embodiment>
A motion vector detection process in a general conventional block matching is performed by moving a reference block in pixel (pixel) units (one pixel unit or a plurality of pixel units), and calculating a SAD value for the reference block at each moving position. A SAD value indicating a minimum value is detected from the calculated SAD values, and a motion vector is detected based on a reference block position exhibiting the minimum SAD value.
しかし、このような従来の動きベクトル検出処理では、サーチ範囲内をピクセル単位で参照ブロックを移動させるようにするので、検索するサーチ範囲に比例して、SAD値を算出するマッチング処理回数が多くなって、マッチング処理時間が大きくなると共に、SADテーブルの容量も大きくなるという問題があった。 However, in such a conventional motion vector detection process, the reference block is moved in units of pixels within the search range, so that the number of matching processes for calculating the SAD value increases in proportion to the search range to be searched. As a result, the matching processing time increases and the capacity of the SAD table also increases.
そこで、この実施の形態では、ターゲット画像(ターゲットフレーム)および参照画像(参照フレーム)に対して縮小画像を作成し、作成した縮小画像でブロックマッチングを行い、縮小画像での動き検出結果を基に、もとのターゲット画像でのブロックマッチングを行う。ここで、縮小画像のことを縮小面、縮小化をしていない元の画像のことを基底面と呼ぶことにする。したがって、この第2の実施の形態では、縮小面でのブロックマッチングを行ったあと、そのマッチング結果を用いて基底面でのブロックマッチングを行う。 Therefore, in this embodiment, a reduced image is created for the target image (target frame) and the reference image (reference frame), block matching is performed on the created reduced image, and based on the motion detection result in the reduced image. Perform block matching on the original target image. Here, the reduced image is referred to as a reduced surface, and the original image that has not been reduced is referred to as a base surface. Therefore, in the second embodiment, after performing block matching on the reduced surface, block matching on the base surface is performed using the matching result.
図6および図7に、ターゲットフレーム(画像)および参照フレーム(画像)の画像縮小化のイメージを示す。すなわち、この実施の形態においては、例えば図6に示すように、基底面ターゲットフレーム130は、水平方向および垂直方向のそれぞれを、1/n(nは正の数)に縮小して、縮小面ターゲットフレーム132とする。したがって、基底面ターゲットフレーム130を複数個に分割して生成した基底面ターゲットブロック131は、縮小面ターゲットフレームでは、水平方向および垂直方向のそれぞれが1/n×1/nに縮小された縮小面ターゲットブロック133となる。
FIG. 6 and FIG. 7 show images of image reduction of the target frame (image) and the reference frame (image). That is, in this embodiment, for example, as shown in FIG. 6, the basal
そして、ターゲットフレームの画像縮小倍率1/nに合わせて、参照フレームを縮小する。すなわち、図7に示すように、基底面参照フレーム134は、水平方向および垂直方向のそれぞれを、1/nに縮小して、縮小面参照フレーム135とする。そして、基底面参照フレーム134上で検出された動き補償ブロック103についての動きベクトル104は、縮小面参照フレーム135では、1/n×1/nに縮小された縮小面動きベクトル136として検出される。
Then, the reference frame is reduced in accordance with the
なお、上記の例では、ターゲットフレームと参照フレームとの画像縮小倍率は同じとしたが、演算量削減のため、ターゲットフレーム(画像)と参照フレーム(画像)とで異なる画像縮小倍率を用い、画素補間等の処理で、両フレームの画素数を合わせて、マッチングを行うようにしてもよい。 In the above example, the image reduction magnification of the target frame and the reference frame is the same. However, in order to reduce the calculation amount, different image reduction magnifications are used for the target frame (image) and the reference frame (image). Matching may be performed by matching the number of pixels in both frames by processing such as interpolation.
また、水平方向および垂直方向のそれぞれの縮小倍率を同一としたが、水平方向と垂直方向とで、縮小倍率を異ならせるようにしても良い。例えば水平方向は1/nに縮小し、垂直方向は、1/m(mは正の数で、n≠m)に縮小する場合には、縮小画面は、元の画面の1/n×1/mの大きさになる。 Further, although the reduction ratios in the horizontal direction and the vertical direction are the same, the reduction ratios may be different between the horizontal direction and the vertical direction. For example, when the horizontal direction is reduced to 1 / n and the vertical direction is reduced to 1 / m (m is a positive number, n ≠ m), the reduced screen is 1 / n × 1 of the original screen. / M.
図8に、縮小面参照ベクトルと基底面参照ベクトルの関係を示す。基底面参照フレーム134において、動き検出原点105と、サーチ範囲106が、図8(A)に示すように決定されたとすると、1/n×1/nに画像縮小された縮小面参照フレーム135上では、図8(B)に示すように、サーチ範囲は、1/n×1/nに縮小された縮小面サーチ範囲137とされる。
FIG. 8 shows the relationship between the reduced plane reference vector and the base plane reference vector. If the
そして、この実施の形態では、縮小面サーチ範囲137内において、縮小面参照フレーム135での動き検出原点105からの位置ズレ量を表す縮小面参照ベクトル138を設定し、それぞれの縮小面参照ベクトル138が指し示す位置にある縮小面参照ブロック139と、縮小面ターゲットブロック131(図8では図示は省略)との相関性を評価する。
In this embodiment, within the reduction
この場合、縮小画像において、ブロックマッチングを行うので、縮小面参照フレーム135においてSAD値を算出すべき縮小面参照ブロック位置(縮小面参照ベクトル)の数を少なくすることができ、SAD値の算出回数(マッチング処理回数)が少なくなる分だけ、処理を高速化することができると共に、SADテーブルを小規模とすることができる。 In this case, since block matching is performed on the reduced image, the number of reduced surface reference block positions (reduced surface reference vectors) for which SAD values should be calculated in the reduced surface reference frame 135 can be reduced, and the number of times of calculating the SAD value. The processing can be speeded up by the amount of (the number of matching processings), and the SAD table can be made small.
図9に示すように、縮小面サーチ範囲137に応じて定まる縮小面マッチング処理範囲143内に設定される複数個の縮小面参照ブロック139と縮小面ターゲットブロック131とのブロックマッチングによる相関性評価により、縮小面参照フレーム135における縮小面動きベクトル136が算出される。この縮小面動きベクトル136の精度は、画像が1/n×1/nに縮小されているので、1ピクセルのn倍の低精度となっている。そこで、この算出された縮小面動きベクトル136をn倍しても、基底面参照フレーム134において、1ピクセル精度の動きベクトル104は得られない。
As shown in FIG. 9, by correlation evaluation by block matching between a plurality of reduced surface reference blocks 139 and a reduced
しかし、基底面参照フレーム134においては、縮小面動きベクトル136をn倍した動きベクトルの近傍に、1ピクセル精度の基底面動きベクトル104が存在することは明らかである。
However, in the base
そこで、この実施の形態では、図8(C)および図9に示すように、基底面参照フレーム134において、縮小面動きベクトル136をn倍した動きベクトル(基底面参照ベクトル141)が指し示す位置を中心として、基底面動きベクトル104が存在するであろうと考えられる狭い範囲に、基底面サーチ範囲140を設定し、設定された基底面サーチ範囲140に応じて基底面マッチング処理範囲144を設定する。
Therefore, in this embodiment, as shown in FIGS. 8C and 9, in the base
そして、図8(C)に示すように、この基底面サーチ範囲140内の位置を示すものとして、基底面参照フレーム134における基底面参照ベクトル141を設定し、各基底面参照ベクトル141が指し示す位置に基底面参照ブロック142を設定して、基底面参照フレーム134におけるブロックマッチングを行うようにする。
Then, as shown in FIG. 8C, a base
ここで設定された基底面サーチ範囲140および基底面マッチング処理範囲144は、図9に示すように、縮小面サーチ範囲137および縮小面マッチング処理範囲143を縮小率の逆数倍であるn倍したサーチ範囲137´およびマッチング処理範囲143´に比較して非常に狭い範囲でよい。
As shown in FIG. 9, the base
したがって、階層化マッチングを行わずに、基底面においてのみブロックマッチング処理をした場合には、基底面においては、サーチ範囲137´およびマッチング処理範囲143´において、複数個の参照ブロックを設定して、ターゲットブロックとの相関値を求める演算をする必要があるが、階層化マッチング処理においては、図9のように、非常に狭い範囲においてのみマッチング処理を行えばよい。
Therefore, when block matching processing is performed only on the base plane without performing hierarchical matching, a plurality of reference blocks are set in the
このため、当該狭い範囲である、基底面サーチ範囲140および基底面マッチング処理範囲144に設定される基底面参照ブロックの数は非常に少なくなり、マッチング処理回数(相関値演算回数)および保持するSAD値を非常に小さくすることができ、処理を高速化することができると共に、SADテーブルを小規模化することができるという効果を得ることができる。
For this reason, the number of base plane reference blocks set in the base
こうして、基底面参照フレーム134において、ピクセル精度の基底面動きベクトル136が検出できたら、この実施の形態においては、基底面動きベクトル136が指し示す参照ブロックのSAD値、すなわち、最小SAD値と、その近傍の近傍SAD値とを用いて、この例においても二次曲線近似補間処理を行って、サブピクセル精度の基底面高精度動きベクトルを算出するようにする。
In this way, if the pixel-
サブピクセル精度の基底面高精度動きベクトルについて説明する。前述したブロックマッチング手法では、ピクセル単位でブロックマッチングを行っているため、動きベクトルはピクセル精度でしか算出されない。図69に示したように、マッチング処理を行った点、つまり、参照ブロックの位置は、ピクセル精度で存在し、より精度の高い動きベクトルを算出するには、サブピクセル単位でのマッチング処理が必要になる。 The base plane high-precision motion vector with subpixel accuracy will be described. In the block matching method described above, since block matching is performed in units of pixels, the motion vector is calculated only with pixel accuracy. As shown in FIG. 69, the point at which the matching process is performed, that is, the position of the reference block exists with pixel accuracy, and in order to calculate a more accurate motion vector, matching processing in units of subpixels is necessary. become.
N倍のピクセル精度(画素ピッチは、1/N)の動きベクトルを算出するために、N倍のピクセル単位でマッチング処理を行うと、SADテーブルは約N2倍の大きさになり、膨大なメモリが必要になる。また、ブロックマッチング処理のために、N倍にアッパーサンプルした画像を生成しなくてはならず、ハードウエアの規模は飛躍的に増大する。 In order to calculate a motion vector with N times the pixel accuracy (pixel pitch is 1 / N), if the matching process is performed in units of N times the pixel, the SAD table becomes about N 2 times larger, Memory is required. In addition, for the block matching process, an image that is N times the upper sample must be generated, and the scale of hardware increases dramatically.
そこで、二次曲線を用いて、SADテーブルを補間することで、ピクセル単位でマッチング処理を行ったSADテーブルから、サブピクセル精度の動きベクトルを算出することを考える。この場合において、二次曲線近似補間ではなく、線形補間や、3次以上の高次の近似曲線補間を用いても良いが、精度とハードウエア化との兼ね合いから、この例では、二次曲線近似補間を用いている。 Therefore, it is considered that a motion vector with sub-pixel accuracy is calculated from the SAD table that has been subjected to the matching process in units of pixels by interpolating the SAD table using a quadratic curve. In this case, instead of quadratic curve approximation interpolation, linear interpolation or higher-order approximation curve interpolation of cubic or higher may be used. However, in this example, a quadratic curve is used in consideration of the balance between accuracy and hardware implementation. Approximate interpolation is used.
この二次曲線近似補間においては、図10に示すように、ピクセル精度の基底面動きベクトル104が指し示すSADテーブルのSAD値の基底面最小値Smin(図10の参照符号113参照)と、当該最小値Sminの位置の近傍位置の複数個のSAD値(基底面近傍SAD値という)、この例では、基底面最小値Sminの位置のX方向およびY方向に隣接する4個の基底面近傍SAD値Sx1、Sx2およびSy1、Sy2(図10の参照符号114,115,116,117参照)を使用する。
In this quadratic curve approximate interpolation, as shown in FIG. 10, the basal plane minimum value Smin (see
図11に示すように、基底面最小値Sminと、X方向(水平方向)の基底面近傍2点の近傍SAD値Sx1、Sx2を使って、二次の近似曲線118を当てはめ、この二次曲線118の極小を取る座標が、サブピクセル精度の基底面高精度最小値SXminとなる動きベクトル(高精度動きベクトル)のX座標Vxとなる。このときの二次曲線近似補間の式を、次式(1)に示す。 As shown in FIG. 11, a quadratic approximate curve 118 is fitted using the base plane minimum value Smin and the SAD values Sx1 and Sx2 near the two base plane vicinity in the X direction (horizontal direction). The coordinate at which 118 is minimum is the X coordinate Vx of the motion vector (high-precision motion vector) that becomes the base-plane high-precision minimum value SXmin with sub-pixel accuracy. The equation of quadratic curve approximate interpolation at this time is shown in the following equation (1).
SXmin=1/2×(Sx2−Sx1)/(Sx2−2Smin+Sx1)…式(1)
この計算式(1)で求めたサブピクセル精度の基底面高精度最小値SXminがSADテーブル上で取るX座標が、サブピクセル精度のSAD値の最小値となるX座標Vxとなる。
SXmin = 1/2 × (Sx2-Sx1) / (Sx2-2Smin + Sx1) (1)
The X coordinate taken on the SAD table by the basal plane high-precision minimum value SXmin with sub-pixel accuracy obtained by the calculation formula (1) is the X-coordinate Vx that is the minimum value of the SAD value with sub-pixel accuracy.
この計算式(1)の割り算は、複数回の引き算で実現可能である。求めたいサブピクセル精度が、例えば元の基底面における画素ピッチの1/4の画素ピッチの精度であれば、僅か2回の引き算でも求められるため、回路規模、演算時間、共に小さく、二次の近時曲線補間よりもかなり複雑な三次曲線補間と殆ど変わらない性能が実現できる。 The division of the calculation formula (1) can be realized by a plurality of subtractions. If the subpixel accuracy to be obtained is, for example, an accuracy of 1/4 of the pixel pitch on the original base surface, it can be obtained by subtraction only twice, so both the circuit scale and the computation time are small. Performance that is almost the same as cubic curve interpolation, which is considerably more complicated than recent curve interpolation, can be realized.
同様に、基底面最小値Sminと、Y方向(垂直方向)の近傍2点の基底面近傍SAD値Sy1、Sy2を使って、二次の近似曲線を当て嵌め、この二次曲線の極小値SYminを取るY座標が、サブピクセル精度の基底面高精度最小値となるY座標Vyとなる。このときの二次曲線近似補間の式を、次式(2)に示す。 Similarly, using a basal plane minimum value Smin and two basal plane vicinity SAD values Sy1 and Sy2 in the vicinity of the Y direction (vertical direction), a quadratic approximate curve is fitted, and a minimum value SYmin of the quadratic curve is applied. The Y coordinate taking Y becomes the Y coordinate Vy that is the minimum value of the base surface high accuracy with sub-pixel accuracy. The equation of quadratic curve approximate interpolation at this time is shown in the following equation (2).
SYmin=1/2×(Sy2−Sy1)/(Sy2−2Smin+Sy1)…式(2)
以上のようにして、二次曲線の近似を、X方向およびY方向の2回、行うことで、サブピクセル精度の基底面高精度の動きベクトル(Vx、Vy)が求まる。
SYmin = 1/2 × (Sy2−Sy1) / (Sy2−2Smin + Sy1) (2)
As described above, the approximation of the quadratic curve is performed twice in the X direction and the Y direction, whereby the motion vector (Vx, Vy) of the base pixel high accuracy with subpixel accuracy is obtained.
以上の説明では、SAD値の最小値と、そのX方向(水平方向)およびY方向(垂直方向)の近傍2点のSAD値を使用したが、各方向の近傍のSAD値は2点以上であってもよい。また、二次曲線をX方向、Y方向に代えて、例えば、斜め方向に近似曲線を当て嵌めてもかまわない。さらに、X方向、Y方向に、斜め方向を加えて近似曲線を当て嵌めてもかまわない。 In the above description, the minimum SAD value and two SAD values in the vicinity in the X direction (horizontal direction) and the Y direction (vertical direction) are used. However, the SAD value in the vicinity in each direction is two points or more. There may be. Further, instead of the quadratic curve in the X direction and the Y direction, for example, an approximate curve may be fitted in an oblique direction. Furthermore, an approximate curve may be applied by adding an oblique direction to the X direction and the Y direction.
以上のような手段、手順を用いることにより、ピクセル単位の精度のSADテーブルの値から、サブピクセル精度のベクトル検出結果が得られることを図12に示す。図12の横軸は、補間倍率であり、1次元方向に分解能を何倍にするかを表している。SADテーブルは2次元のため、テーブル面積は、この2乗の割合で削減されるのに対し、補間による誤差は、線形程度にしか増加しないことから、上述の補間手法の有用性が分かる。 FIG. 12 shows that a vector detection result with sub-pixel accuracy can be obtained from the value of the SAD table with pixel accuracy by using the above means and procedures. The horizontal axis in FIG. 12 represents the interpolation magnification, and represents how many times the resolution is increased in the one-dimensional direction. Since the SAD table is two-dimensional, the table area is reduced at a ratio of the square, whereas the error due to interpolation increases only to a linear level, so that the usefulness of the above-described interpolation method can be seen.
<動き検出・動き補償部16の構成例>
図13に、動き検出・動き補償部16の構成例のブロック図を示す。この例では、動き検出・動き補償部16は、ターゲットブロック102の画素データを保持するターゲットブロックバッファ部161と、参照ブロック108の画素データを保持する参照ブロックバッファ部162と、ターゲットブロック102と参照ブロック108とで対応する画素についてのSAD値を計算するマッチング処理部163と、マッチング処理部163から出力されるSAD値情報から動きベクトルを算出する動きベクトル算出部164と、それぞれのブロックを制御するコントロール部165と、を備える。
<Configuration Example of Motion Detection /
FIG. 13 shows a block diagram of a configuration example of the motion detection /
そして、動き検出・動き補償部16と、画像メモリ部4とは、システムバス2を通じて接続されている。すなわち、この例では、システムバス2とターゲットブロックバッファ部161および参照ブロックバッファ部162との間には、それぞれバス・インターフェース部21およびバス・インターフェース部22が接続されている。また、画像メモリ部4と、システムバス2との間には、画像メモリ部4に対する書き込みおよび読み出しのメモリアクセスを制御するためのメモリコントローラ8が接続されている。ここで、システムバス2でのプロトコルは、この例では、AXIインターコネクトが用いられている。
The motion detection /
静止画撮像時においては、ターゲットブロックバッファ部161には、画像メモリ部4に記憶されている縮小面ターゲット画像Prtまたは基底面ターゲット画像Pbtの画像フレームからの縮小面ターゲットブロックまたは基底面ターゲットブロックが、メモリコントローラ8による読み出し制御にしたがって画像メモリ部4から読み出されて、書き込まれる。
At the time of still image capturing, the target
縮小面ターゲット画像Prtまたは基底面ターゲット画像Pbtは、1枚目は、シャッターボタン押下後の最初の撮像フレームの画像が画像メモリ部4から読み出されて、ターゲットフレーム102として、ターゲットブロックバッファ部161に書き込まれる。参照画像とのブロックマッチングに基づき画像の重ね合わせがなされると、画像メモリ部4に当該画像の重ね合わせ後のNR画像が書き込まれ、ターゲットブロックバッファ部161のターゲットフレーム102が、当該NR画像に書き換えられてゆく。
As for the reduced surface target image Prt or the base surface target image Pbt, in the first image, the image of the first imaging frame after the shutter button is pressed is read from the
参照ブロックバッファ部162には、画像メモリ部4に記憶されている縮小面参照画像Prrまたは基底面参照画像Pbrの画像フレームからの縮小面マッチング処理範囲または基底面マッチング処理範囲の画像データが、画像メモリ部4から読み出されて、書き込まれる。縮小面参照画像Prrまたは基底面参照画像Pbrは、前記最初の撮像フレームの後の撮像フレームが、参照フレーム108として画像メモリ部4に書き込まれる。
In the reference
この場合、連続して撮影された複数枚の撮像画像を取り込みながら画像の重ね合わせ処理を行う場合(これを撮影中加算と呼ぶことにする)には、基底面参照画像および縮小面参照画像としては、前記最初の撮像フレームの後の撮像フレームが、1枚ずつ順次に画像メモリ部4に取り込まれる。したがって、画像メモリ部4は、基底面参照画像および縮小面参照画像としては、1枚ずつを保持すればよい。
In this case, when image superimposition processing is performed while capturing a plurality of continuously captured images (hereinafter referred to as addition during shooting), the base plane reference image and the reduced plane reference image are used. The image frames after the first image frame are sequentially taken into the
しかし、連続して撮影された複数枚の撮像画像を画像メモリ部4に取り込んだ後、動き検出・動き補償部16および画像重ね合わせ部17で、動きベクトル検出を行い、画像の重ね合わせを実行するようにする場合(これを撮影後加算と呼ぶことにする)には、基底面参照画像および縮小面参照画像としては、前記最初の撮像フレームの後の複数枚の撮像フレームの全てを画像メモリ部4に格納保持しておく必要がある。
However, after capturing a plurality of continuously captured images into the
撮像装置としては、撮影中加算および撮影後加算のいずれも用いることができるが、この実施形態では、静止画NR処理は、多少処理時間がかかっても、ノイズが低減された綺麗な画像が要求されることを考慮して、撮影後加算の処理を採用している。この実施形態における静止画NR処理の詳細な動作説明は、後で詳述する。 As an imaging device, both addition during shooting and addition after shooting can be used, but in this embodiment, the still image NR processing requires a clean image with reduced noise even if processing time is somewhat long. In consideration of this, the post-shooting addition process is employed. Detailed operation description of the still image NR processing in this embodiment will be described later.
一方、動画撮影時においては、動き検出・動き補償部16には、画像補正・解像度変換部15からの撮像フレームがターゲットフレーム102として入力される。ターゲットブロックバッファ部161には、この画像補正・解像度変換部15からの、ターゲットフレームから抽出されたターゲットブロックが書き込まれる。また、参照ブロックバッファ部162には、前記ターゲットフレームよりも1枚前の、画像メモリ部4に記憶されている撮像フレームが、参照フレーム108とされ、この参照フレーム(基底面参照画像Pbrまたは縮小面参照画像Prr)からの基底面マッチング処理範囲または縮小面マッチング処理範囲が書き込まれる。
On the other hand, at the time of moving image shooting, the imaging frame from the image correction /
この動画撮影時には、画像メモリ部4には、画像補正・解像度変換部15からのターゲットフレームとの間でブロックマッチングをすべき、1枚前の撮像画像フレームを基底面参照画像Pbrおよび縮小面参照画像Prrとして保持するだけでよく、画像メモリ部4に保持する画像情報は、1枚分(1フレーム分)でよいので、この例では、基底面参照画像Pbrおよび縮小面参照画像Prrとしては、画像データ圧縮していない。
At the time of this moving image shooting, the
マッチング処理部163では、縮小面でのマッチング処理および基底面でのマッチング処理を、ターゲットブロックバッファ部161に記憶されたターゲットブロックと、参照ブロックバッファ部162に記憶された参照ブロックとについて行う。
The matching
ここで、ターゲットブロックバッファ部161に記憶されたものが縮小面ターゲットブロックの画像データであり、参照ブロックバッファ162に記憶されたものが縮小面参照画面から抽出された縮小面マッチング処理範囲の画像データである場合には、マッチング処理部163では、縮小面マッチング処理が実行される。また、ターゲットブロックバッファ部161に記憶されたものが基底面ターゲットブロックの画像データであり、参照ブロックバッファ162に記憶されたものが基底面参照画面から抽出された基底面マッチング処理範囲の画像データである場合には、マッチング処理部163では、基底面マッチング処理が実行されることになる。
Here, what is stored in the target
マッチング処理部163で、ブロックマッチングにおけるターゲットブロックと、参照ブロックとの相関の強さを検出するためには、この実施の形態においても、画像データの輝度情報を用いてSAD値算出を行い、その最小SAD値を検出して、当該最小SAD値を呈する参照ブロックを最強相関参照ブロックとして検出するようにする。
In order to detect the strength of the correlation between the target block and the reference block in the block matching by the matching
なお、SAD値の算出は、輝度情報ではなく、色差信号や、3原色信号R,G,Bの情報を使用しても良いことは言うまでもない。また、SAD値の算出に当たっては、通常は、ブロック内の全画素を用いるようにするが、演算量削減のため、間引き等により、飛び飛びの位置の限られた画素の画素値のみを使用するようにしてもよい。 Needless to say, the SAD value may be calculated by using not only the luminance information but also the color difference signal and the information of the three primary color signals R, G and B. In calculating the SAD value, all the pixels in the block are usually used. However, in order to reduce the amount of calculation, only the pixel value of the pixel with a limited jump position is used by thinning out or the like. It may be.
動きベクトル算出部164は、マッチング処理部163のマッチング処理結果からターゲットブロックに対する参照ブロックの動きベクトルを検出する。この実施形態では、動きベクトル算出部164は、SAD値の最小値を検出保持すると共に、この最小SAD値を呈する参照ベクトルの近傍の複数個の参照ベクトルのSAD値をも保持して、例えば二次曲線近似補間処理を行って、サブピクセル精度の高精度動きベクトルを検出する機能も備える。
The motion
コントロール部165は、CPU1による制御を受けながら、この動き検出・動き補償部16における階層化ブロックマッチング処理の処理動作を制御するようにする。
The
<ターゲットブロックバッファ161の構成例>
ターゲットブロックバッファ161の構成例のブロック図を、図14に示す。この図14に示すように、ターゲットブロックバッファ161は、基底面バッファ部1611と、縮小面バッファ部1612と、縮小化処理部1613と、セレクタ1614,1615および1616とを備えている。セレクタ1614,1615および1616は、図14では、図示は省略したが、コントロール部165からの選択制御信号によりそれぞれ選択制御される。
<Configuration Example of
A block diagram of a configuration example of the
基底面バッファ部1611は、基底面ターゲットブロックを一時格納するためのものである。この基底面バッファ部1611は、基底面ターゲットブロックを、画像重ね合わせ部17に送ると共に、セレクタ1616に供給する。
The basal
縮小面バッファ部1612は、縮小面ターゲットブロックを一時格納するためのものである。縮小面バッファ部1612は、縮小面ターゲットブロックを、セレクタ1616に供給する。
The reduction
縮小化処理部1613は、動画撮影時には上述したように、ターゲットブロックは、画像補正・解像度変換部15から送られてくるので、この縮小化処理部1613で縮小面ターゲットブロックを生成するために設けられている。縮小化処理部1613からの縮小面ターゲットブロックは、セレクタ1615に供給される。
As described above, since the target block is sent from the image correction /
セレクタ1614は、動画撮影時には画像補正・解像度変換部15からのターゲットブロック(基底面ターゲットブロック)を、静止画撮影時には画像メモリ部4からの基底面ターゲットブロックまたは縮小面ターゲットブロックを、コントロール部165からの選択制御信号により選択して出力し、その出力を基底面バッファ部1611と、縮小化処理部1613と、セレクタ1615とに供給する。
The
セレクタ1615は、動画撮影時には縮小化処理部15からの縮小面ターゲットブロックを、静止画撮影時には画像メモリ部4からの縮小面ターゲットブロックを、コントロール部165からの選択制御信号により選択して出力し、その出力を縮小面バッファ部1612に供給する。
The
セレクタ1616は、コントロール部1615からの選択制御信号に応じて、縮小面でのブロックマッチング時には、縮小面バッファ部1612からの縮小面ターゲットブロックを、基底面でのブロックマッチング時には、基底面バッファ部1611からの基底面ターゲットブロックを、それぞれ選択出力し、出力した縮小面ターゲットブロックまたは基底面ターゲットブロックをマッチング処理部163に送る。
In accordance with a selection control signal from the
<参照ブロックバッファ162の構成例>
参照ブロックバッファ162の構成例のブロック図を、図15に示す。この図15に示すように、参照ブロックバッファ162は、基底面バッファ部1621と、縮小面バッファ部1622と、セレクタ1623とを備えている。セレクタ1623は、図15では、図示は省略したが、コントロール部165からの選択制御信号により選択制御される。
<Configuration Example of
A block diagram of a configuration example of the
基底面バッファ部1621は、画像メモリ部4からの基底面参照ブロックを一時格納し、その基底面参照ブロックを、セレクタ1623に供給すると共に、画像重ね合わせ部17に、動き補償ブロックとして送る。
The basal
縮小面バッファ部1622は、画像メモリ部4からの縮小面参照ブロックを一時格納するためのものである。縮小面バッファ部1622は、縮小面参照ブロックを、セレクタ1623に供給する。
The reduction
セレクタ1623は、コントロール部1615からの選択制御信号に応じて、縮小面でのブロックマッチング時には、縮小面バッファ部1612からの縮小面参照ブロックを、基底面でのブロックマッチング時には、基底面バッファ部1611からの基底面参照ブロックを、それぞれ選択出力し、出力した縮小面参照ブロックまたは基底面参照ブロックをマッチング処理部163に送る。
In accordance with a selection control signal from the
<画像重ね合わせ部17の構成例>
画像重ね合わせ部17の構成例のブロック図を、図16に示す。この図16に示すように、画像重ね合わせ部17は、加算率計算部171と、加算部172と、基底面出力バッファ部173と、縮小面生成部174と、縮小面出力バッファ部175とを備えて構成されている。
<Configuration Example of
A block diagram of a configuration example of the
そして、画像重ね合わせ部17と、画像メモリ部4とは、システムバス2を通じて接続されている。すなわち、この例では、システムバス2と基底面出力バッファ部173および縮小面出力バッファ部162との間には、それぞれバス・インターフェース部23およびバス・インターフェース部24が接続されている。
The
加算率計算部171は、動き検出・動き補償部16からのターゲットブロックおよび動き補償ブロックを受けて、両者の加算率を、採用する加算方式が単純加算方式であるか、または平均加算方式であるかに応じて定め、定めた加算率を、ターゲットブロックおよび動き補償ブロックと共に加算部172に供給する。
The addition
加算部172での加算結果の基底面NR画像は、基底面出力バッファ部173およびバス・インターフェース23を通じて画像メモリ部4に書き込まれる。また、加算部172での加算結果の基底面NR画像は、縮小面生成部174にて縮小面NR画像に変換され、当該縮小面生成部174からの縮小面NR画像が、縮小面出力バッファ部175およびバス・インターフェース24を通じて画像メモリ部4に書き込まれる。
The basal plane NR image as a result of the addition by the adding
[撮像画像のノイズ低減処理の概要の流れ]
<静止画撮影時>
上述の構成の実施の形態の撮像装置において、静止画撮影時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図17および図18に示す。この図17および図18のフローチャートの各ステップは、CPU1およびこのCPU1により制御される動き検出・動き補償部16のコントロール部165の制御の下に実行されると共に、画像重ね合わせ部17により実行されるものである。
[Overview of noise reduction processing for captured images]
<When shooting still images>
FIG. 17 and FIG. 18 are flowcharts of noise reduction processing by image superposition at the time of still image shooting in the image pickup apparatus having the above-described configuration. Each step in the flowcharts of FIGS. 17 and 18 is executed under the control of the
まず、シャッターボタンが押下されると、この例の撮像装置においては、CPU1による制御によって、高速で複数枚の画像の高速撮影が行われる。この例では、静止画撮影時に重ね合わすべきM枚(Mフレーム;Mは2以上の整数)の撮像画像データを高速で取り込み、画像メモリ部4に貼っておく(ステップS1)。
First, when the shutter button is pressed, in the imaging apparatus of this example, high-speed shooting of a plurality of images is performed at high speed under the control of the
次に、参照フレームは、画像メモリ部4に蓄積されているM枚の画像フレームのうちの時間的にN番目(Nは2以上の整数で、最大値はM)とするのであるが、コントロール部165は、その何番目とする値Nの初期値を、N=2とする(ステップS2)。そして、次に、コントロール部165は、1枚目の画像フレームをターゲット画像(ターゲットフレーム)に設定し、N=2枚目の画像を参照画像(参照フレーム)に設定する(ステップS3)。
Next, the reference frame is Nth in time among the M image frames stored in the image memory unit 4 (N is an integer of 2 or more, and the maximum value is M). The
次に、コントロール部165は、ターゲットフレームにターゲットブロックを設定し(ステップS4)、動き検出・動き補償部16において、画像メモリ部4から、ターゲットブロックバッファ部161へターゲットブロックを読み込み(ステップS5)、また、画像メモリ部4から、参照ブロックバッファ部162へマッチング処理範囲の画素データを読み込む(ステップS6)。
Next, the
次に、コントロール部165は、参照ブロックバッファ部162から、サーチ範囲内において参照ブロックを読み出し、マッチング処理部163で、この実施形態における階層化マッチング処理を行う。なお、この例では、後述するように、マッチング処理部163で算出されたSAD値のうちの後述するSAD値は、SAD値の最小値およびその近傍のSAD値を保持して二次曲線近似補間処理を行うために、動きベクトル算出部164へ送られる。以上の処理をサーチ範囲内のすべての参照ベクトルで繰り返した後、二次曲線近似補間処理部で、前述した補間処理を行い、高精度の基底面動きベクトルを出力する(ステップS7)。
Next, the
次に、コントロール部165は、以上のようにして検出された高精度の基底面動きベクトルにしたがって、参照ブロックバッファ部162から、検出した動きベクトル分の動きを補償した動き補償ブロックを読み出し(ステップS8)、ターゲットブロックと同期して、後段の画像重ね合わせ部17へ送る(ステップS9)。
Next, the
次に、CPU1の制御に従って、画像重ね合わせ部17は、ターゲットブロックと動き補償ブロックの重ね合わせを行い、重ね合わせたブロックのNR画像データを画像メモリ部4に貼る。すなわち、画像重ね合わせ部17は、重ね合わせたブロックのNR画像データを画像メモリ部4に書き込む(ステップS10)。
Next, under the control of the
次に、コントロール部165は、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したか否か判別し(ステップS11)、すべてのターゲットブロックについては未だブロックマッチングの処理が終了していないと判別したときには、ステップS4に戻って、ターゲットフレーム内の次のターゲットブロックを設定して、ステップS4〜ステップS11までの処理を繰り返す。
Next, the
また、コントロール部165は、ステップS11で、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したと判別したときには、重ね合わすべきすべての参照フレームについての処理が終了したか否か、つまり、M=Nであるか否か判別する(ステップS12)。
Further, when the
ステップS12で、M=Nではないと判別したときには、N=N+1とし(ステップS13)、次に、ステップS10での重ね合わせにより生成されたNR画像をターゲット画像(ターゲットフレーム)とし、また、N=N+1枚目の画像を参照画像(参照フレーム)とする(ステップS14)。その後、ステップS4に戻って、このステップS4以降の処理を繰り返す。つまり、Mが3以上の場合は、全てのターゲットブロックにおいて重ね合わせを行った画像を次のターゲット画像とし、3枚目以降の画像を参照フレームとして、上記の処理を繰り返して行く。これをM枚目の重ね合わせが終わるまで繰り返す。そして、ステップS12で、M=Nであると判別したときには、この処理ルーチンを終了する。 If it is determined in step S12 that M = N is not satisfied, N = N + 1 is set (step S13). Next, the NR image generated by the superposition in step S10 is set as a target image (target frame). = N + 1-th image is set as a reference image (reference frame) (step S14). Then, it returns to step S4 and repeats the process after this step S4. In other words, when M is 3 or more, the above processing is repeated with the image that has been superimposed in all target blocks as the next target image and the third and subsequent images as reference frames. This is repeated until the Mth overlap is completed. If it is determined in step S12 that M = N, this processing routine is terminated.
なお、M枚の撮影画像が重ね合わされた結果のNR画像の画像データは、静止画コーデック部18により圧縮符号化エンコードされて、記録再生装置部5に供給されて、その記録媒体に記録されるものである。
The image data of the NR image as a result of superimposing the M photographed images is compression-encoded by the still
なお、以上の静止画のノイズ低減処理方法は、M枚の画像データを画像メモリ部4に貼っておく手法であるが、1枚撮影するたびに重ね合わせを行っても良い。その場合には、画像メモリ部4に記憶する画像フレームは、1枚でよいので、図17および図18の処理ルーチンのノイズ低減処理方法に比べて、撮影間隔は長くなるが、メモリコストを最小にすることが可能である。
The above-described still image noise reduction processing method is a method of pasting M pieces of image data on the
<動画撮影時>
次に、この実施の形態の撮像装置において、動画撮影時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図19に示す。この図19のフローチャートの各ステップも、CPU1およびこのCPU1により制御される動き検出・動き補償部16のコントロール部165の制御の下に実行されるものである。動画記録ボタンがユーザにより操作されると、CPU1は、図19の処理をスタートから開始するように指示する。
<When shooting movies>
Next, FIG. 19 shows a flowchart of the noise reduction processing by image superposition at the time of moving image shooting in the image pickup apparatus of this embodiment. Each step in the flowchart of FIG. 19 is also executed under the control of the
この実施の形態では、動き検出・動き補償部16は、ターゲットブロック単位でマッチング処理をするのに適した構成とされている。そこで、画像補正・解像度変換部15は、CPU1の制御に従って、フレーム画像を保持し、ターゲットブロック単位で、動き検出・動き補償部16へ画像データを送る(ステップS21)。
In this embodiment, the motion detection /
動き検出・動き補償部16に送られたターゲットブロックの画像データは、ターゲットブロックバッファ部161に格納される。次に、コントロール部165は、ターゲットブロックに対応した参照ベクトルを設定し(ステップS22)、画像メモリ部4から、マッチング処理範囲の画像データを参照ブロックバッファ部162へ読み込む(ステップS23)。
The target block image data sent to the motion detection /
次に、マッチング処理部163および動きベクトル算出部164は、この実施形態における階層化ブロックマッチングによる動き検出処理を行う(ステップS24)。すなわち、マッチング処理部163は、先ず、縮小面において、縮小面ターゲットブロックの画素値と縮小面参照ブロックの画素値との間のSAD値を算出し、算出したSAD値を動きベクトル算出部164へ送る。マッチング処理部163は、この処理をサーチ範囲内のすべての縮小面参照ブロックで繰り返す。サーチ範囲内のすべての縮小面参照ブロックについてのSAD値の算出が終了した後、動きベクトル算出部164は、最小のSAD値を特定して、縮小面動きベクトルを検出する。
Next, the matching
コントロール部165は、動きベクトル算出部164で検出された縮小面動きベクトルを縮小率の逆数倍して、基底面上における動きベクトルに変換し、その変換したベクトルが、基底面において指し示す位置を中心した領域を、基底面におけるサーチ範囲とする。そして、コントロール部165は、マッチング処理部163に、当該サーチ範囲において、基底面におけるブロックマッチング処理を行わせるように制御する。マッチング処理部163は、基底面ターゲットブロックの画素値と基底面参照ブロックの画素値との間のSAD値を算出し、算出したSAD値を動きベクトル算出部164へ送る。
The
サーチ範囲内のすべての縮小面参照ブロックについてのSAD値の算出が終了した後、動きベクトル算出部164は、最小のSAD値を特定して、縮小面動きベクトルを検出すると共に、その近傍のSAD値を特定し、それらのSAD値を用いて、前述した二次曲線近似補間処理を行い、サブピクセル精度の高精度の動きベクトルを出力する。
After the calculation of the SAD values for all the reduced surface reference blocks in the search range is finished, the motion
次に、コントロール部165は、ステップS24で算出された高精度の動きベクトルにしたがって、参照ブロックバッファ部162から動き補償ブロックの画像データを読み出し(ステップS25)、ターゲットブロックと同期して、後段の画像重ね合わせ部17へ送る(ステップS26)。
Next, the
画像重ね合わせ部17においては、ターゲットブロックと動き補償ブロックの重ね合わせを行い、その重ね合わせた結果のNR画像の画像データを、画像メモリ部4に書き込む(ステップS27)。そして、画像重ね合わせ部17は、NR画像の画像データを、次のターゲットフレームに対する参照フレームとして、また、NTSCエンコーダ20を通じてモニターディスプレイ6に出力する動画記録モニターとして、さらに、動画コーデック部19を通じて記録再生装置部6に記録する記録用として、画像メモリ部4に格納する(ステップS28)。
The
そして、CPU1は、動画記録停止操作がユーザによりなされたか否か判別し(ステップS29)、当該動画記録停止操作がユーザによりなされていないと判別したときには、ステップS21に戻って、このステップS21以降の処理を繰り返すように指示する。また、ステップS29で、動画記録停止操作がユーザによりなされたと判別したときには、CPU1は、この処理ルーチンを終了するようにする。
Then, the
以上の動画のノイズ低減処理の処理ルーチンにおいては、1フレーム前の画像フレームを参照フレームとするようにしたが、1フレームよりもさらに過去のフレームの画像を参照フレームとして用いるようにしても良い。また、1フレーム前と2フレーム前の画像を、画像メモリ部4に格納しておき、それらの2枚の画像情報の内容から、どちらの画像フレームを参照フレームにするかを選択しても良い。
In the above-described processing routine for noise reduction processing of a moving image, an image frame one frame before is used as a reference frame. However, an image of a frame earlier than one frame may be used as a reference frame. In addition, the image before the first frame and the image before the second frame may be stored in the
上記のような手段、手順、システム構成を用いることで、一つの共通したブロックマッチング処理のハードウエアで、静止画ノイズ低減処理および動画ノイズ低減処理を行うことが可能になる。 By using the means, procedure, and system configuration as described above, it is possible to perform still image noise reduction processing and moving image noise reduction processing with one common block matching processing hardware.
[動きベクトル算出部164について]
次に、動きベクトル算出部164の構成例およびその動作について説明する。
[About the motion vector calculation unit 164]
Next, a configuration example and operation of the motion
従来から知られている動きベクトル算出部の例においては、サーチ範囲において算出したSAD値を全て記憶するSADテーブルTBLを生成し、そのSADテーブルTBLから最小SAD値を検出し、当該最小SAD値を呈する参照ブロックの位置に対応する参照ベクトルを動きベクトルとして算出する。そして、二次曲線近似補間をする場合には、生成したSADテーブルTBLから、前記最小SAD値の近傍の複数個、この例では、4個のSAD値を抽出し、これらのSAD値を用いて補間処理をする。したがって、この方法は、SADテーブルTBLの分だけ、大規模なメモリを必要とする。 In an example of a conventionally known motion vector calculation unit, an SAD table TBL that stores all SAD values calculated in a search range is generated, a minimum SAD value is detected from the SAD table TBL, and the minimum SAD value is calculated. A reference vector corresponding to the position of the reference block to be presented is calculated as a motion vector. When quadratic curve approximate interpolation is performed, a plurality of SAD values in the vicinity of the minimum SAD value, in this example, four SAD values are extracted from the generated SAD table TBL, and these SAD values are used. Interpolate. Therefore, this method requires a large-scale memory corresponding to the SAD table TBL.
以下に説明する例は、サーチ範囲で算出したSAD値を全て記憶するSADテーブルTBLを生成しないことにより、より回路規模を削減することができるとともに、処理時間も削減することができるようにするものである。 In the example described below, by not generating the SAD table TBL that stores all the SAD values calculated in the search range, the circuit scale can be further reduced and the processing time can also be reduced. It is.
<実施形態の動きベクトル算出部164の第1の例>
上述したように、ブロックマッチング処理は、参照ベクトルの示す位置を参照ブロックの位置とし、各参照ブロックの各画素とターゲットブロックの各画素のSAD値を計算し、その計算処理を、サーチ範囲内のすべての参照ベクトルの示す位置の参照ブロックについて行う。
<First Example of Motion
As described above, the block matching process uses the position indicated by the reference vector as the position of the reference block, calculates the SAD value of each pixel of each reference block and each pixel of the target block, and performs the calculation process within the search range. This is performed for reference blocks at positions indicated by all reference vectors.
ここで、サーチ範囲内において参照ブロックの位置を変えて、動き補償ブロックをサーチする場合に、サーチを画面(フレーム)の端から順番に行う、画面(フレーム)の中心から外側に向かって行う、などいろいろな方法が考えられるが、この実施の形態では、サーチ方向は、図20(A)で矢印120に示すように設定され、サーチ範囲の左上端から水平方向にサーチを開始し、1ライン分のサーチが終わった後、垂直方向に1ライン下のラインを、左端から水平方向にサーチする、という手順を繰り返すサーチ方法を採用する。
Here, when searching for a motion compensation block by changing the position of the reference block within the search range, the search is performed in order from the end of the screen (frame), and from the center of the screen (frame) to the outside. In this embodiment, the search direction is set as indicated by an
すなわち、図20(B)に示すように、サーチ範囲106において、当該サーチ範囲106の左上から水平方向に参照ブロック108を順次に設定してサーチして、各参照ブロック108についてのSAD値の計算を行う。すると、図20(C)に示すように、対応するSADテーブルも左上から水平方向に埋まっていく。このとき、実際にマッチング処理に使用される画素データの範囲は、参照ブロック108の大きさに応じたマッチング処理範囲110となるのは、前述した通りである。
That is, as shown in FIG. 20B, in the
図10および図11に示したように、この例のサブピクセル精度の二次曲線近似補間処理を行うためには、SAD値の最小値Smin、およびその近傍のSAD値Sx1、Sx2、Sy1、Sy2が求まれば良い。 As shown in FIGS. 10 and 11, in order to perform the sub-pixel accuracy quadratic curve approximate interpolation processing of this example, the minimum value Smin of the SAD value and SAD values Sx1, Sx2, Sy1, Sy2 in the vicinity thereof are used. Find what you want.
各参照ブロックについてのSAD値を算出した際に、その算出したSAD値と、その時点までのSAD値の最小値とを比較して、算出したSAD値がその時までのSAD値の最小値よりも小さければ、算出したSAD値を最小値として保持すると共に、そのSAD値とそのときの参照ベクトルを保持することにより、SAD値の最小値および当該最小値を取る参照ブロックの位置情報(参照ベクトルの情報)とを、SADテーブルを生成することなく、求めることができる。 When the SAD value for each reference block is calculated, the calculated SAD value is compared with the minimum value of the SAD value up to that point, and the calculated SAD value is greater than the minimum value of the SAD value up to that point. If it is smaller, the calculated SAD value is held as the minimum value, and the SAD value and the reference vector at that time are held, so that the minimum value of the SAD value and the position information of the reference block that takes the minimum value (reference vector Information) can be obtained without generating the SAD table.
そして、検出したSAD値の最小値を保持すると共に、その最小SAD値となる参照ブロック位置の近傍の参照ブロックのSAD値を、近傍SAD値として保持するようにすれば、近傍SAD値をも、SADテーブルを生成することなく、保持することができる。 Then, if the minimum value of the detected SAD value is held and the SAD value of the reference block near the reference block position that becomes the minimum SAD value is held as the neighboring SAD value, the neighboring SAD value is also obtained. The SAD table can be held without being generated.
このとき、この例では、図21(A)に示すように、上述の図20(A)に示したようなサーチ方法を採用しているので、従来のSADテーブルTBLにおいて水平方向の1ライン分のSAD値を記憶する容量のメモリ(以下、ラインメモリという)を設ければ、新たに参照ブロックのSAD値が算出されたときには、SADテーブルTBL上では、図21(B)で斜線を付して示すように、当該新たに算出されたSAD値121に対して、それより前に算出されたSADテーブルTBLの1ライン分の複数個の参照ブロックのSAD値が、格納データ122として前記ラインメモリに格納されていることになる。
At this time, in this example, as shown in FIG. 21 (A), the search method as shown in FIG. 20 (A) described above is adopted, so that one line in the horizontal direction in the conventional SAD table TBL is used. If a memory having a capacity for storing the SAD value (hereinafter referred to as a line memory) is provided, when the SAD value of the reference block is newly calculated, the SAD table TBL is hatched in FIG. As shown, the SAD values of a plurality of reference blocks for one line of the SAD table TBL calculated before the newly calculated
そこで、新たに算出された参照ブロックのSAD値が、最小のSAD値として検出されたときには、SADテーブルTBL上において、前記最小SAD値121を呈する参照ブロックの位置の1ライン上の位置の参照ブロックのSAD値123(近傍SAD値(Sy1))と、前記最小SAD値121を呈する参照ブロックの位置の左横の位置の参照ブロックのSAD値124(近傍SAD値(Sx1))は、前記ラインメモリから取得することができる。
Therefore, when the newly calculated SAD value of the reference block is detected as the minimum SAD value, the reference block at a position on one line of the position of the reference block exhibiting the
そして、SADテーブルTBL上において、最小SAD値の参照ブロックの位置の右横の位置の参照ブロックのSAD値である近傍SAD値(Sx2)(図21(C)の符号125参照)は、後で、その参照ブロック位置で算出されたSAD値を保持すればよい。同様に、SADテーブルTBL上において、新たに算出された最小SAD値の参照ブロックの位置の1ライン下の位置の参照ブロックのSAD値である近傍SAD値(Sy2)(図21(C)の符号126参照)も、後で、その参照ブロック位置で算出されたSAD値を保持すればよい。
Then, on the SAD table TBL, the neighborhood SAD value (Sx2) (see
以上のことを考慮して、この動きベクトル算出部164の第1の例は、図22に示すようなハードウエア構成とする。
Considering the above, the first example of the motion
すなわち、この動きベクトル算出部164の第1の例においては、算出された全てのSAD値を保持するSADテーブルTBLは備えず、SAD値書き込み部1641と、SAD値比較部1642と、SAD値保持部1643と、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646と、SADテーブルTBLの1ライン分のメモリ(ラインメモリという)1647とを備えてなる。
In other words, the first example of the motion
SAD値保持部1643は、最小SAD値Sminおよび近傍SAD値Sx1、Sx2、Sy1、Sy2の保持部(メモリ)を備える。そして、この第1の例においては、SAD値保持部1643は、その最小SAD値保持部からの最小SAD値SminをSAD値比較部1642に供給する共に、保持している近傍SAD値のうち、最小SAD値Sminの右側の近傍SAD値Sx2の参照ブロックの位置情報(参照ベクトル)と、最小SAD値Sminの下側の近傍SAD値Sy2の参照ブロックの位置情報(参照ベクトル)とを、SAD値書き込み部1641に供給する。
The SAD
SAD値比較部1642は、この第1の例においては、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを受けると共に、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminとを受ける。
In this first example, the SAD
そして、SAD値比較部1642は、マッチング処理部163からの当該時点で算出されたSAD値Sinと、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminとの両者を比較し、マッチング処理部163からの当該時点で算出されたSAD値Sinの方が小さいときには、当該時点で、そのSAD値を最小SAD値であるとして検出し、また、SAD値Sinの方が小さいときには、当該時点では、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminが未だ最小値であると検出する。そして、SAD値比較部1642は、その検出結果の情報DETをSAD値書き込み部1641およびSAD値保持部1643に供給する。
Then, the SAD
SAD値書き込み部1641は、マッチング処理部163からの算出されたSAD値Sinおよびその位置情報(参照ベクトル)を一時保持するための1画素分のバッファメモリを備え、この第1の例においては、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、ラインメモリ1647に書き込む。この場合、ラインメモリ1647は、シフトレジスタと同様の動作を行い、空きスペースが無いときには、新規の位置情報およびSAD値が記憶されると、ラインメモリ1647において最も古い前記位置情報およびSAD値が廃棄される。
The SAD
また、SAD値書き込み部1641は、算出されたSAD値Sinおよびその位置情報をラインメモリ1647に書き込む前に、この第1の例においては、次のような処理を行う。
In addition, the SAD
すなわち、SAD値書き込み部1641は、SAD値比較部1642からの比較検出結果の情報DETが、SAD値Sinが最小値であることを示しているときには、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、SAD値保持部1643に送る。
That is, the SAD
SAD値保持部1643は、SAD値比較部1642からの比較検出結果の情報DETにより、SAD値Sinが最小値であることを検知し、SAD値書き込み部1641から送られてくる参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、最小SAD値保持部に格納する。
The SAD
また、SAD値書き込み部1641は、この第1の例においては、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)が、SAD値保持部1643から受け取った近傍SAD値Sx2またはSy2の位置情報と一致したときにも、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、SAD値保持部1643に送る。
In the first example, the SAD
SAD値保持部1643は、受け取った参照ブロックの位置情報(参照ベクトル)から、いずれの近傍SAD値に関する情報かを認識して、対応する近傍SAD値保持部に格納する。
The SAD
以上の処理をサーチ範囲における全ての参照ブロックについて終了すると、SAD値保持部1643には、前述したように、最小SAD値およびその位置情報ならびに4個の近傍SAD値およびその位置情報が保持される。
When the above processing is completed for all the reference blocks in the search range, the SAD
そこで、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する。
Therefore, the X direction (horizontal direction) neighborhood
以上のようにして、第1の例においては、SADテーブルTBLの代わりに、SADテーブルTBLの1ライン分のラインメモリを用いることにより、サブピクセル精度の動きベクトルの検出ができる。 As described above, in the first example, by using a line memory for one line of the SAD table TBL instead of the SAD table TBL, it is possible to detect a motion vector with sub-pixel accuracy.
この第1の例における縮小面でのブロックマッチング処理時の流れの例を図23のフローチャートに、基底面でのブロックマッチング処理時の流れの例を図24および図25のフローチャートに、それぞれ示す。これらの第1の例のフローチャートの各ステップは、コントロール部165の制御の基に、マッチング処理部163および動きベクトル算出部164においてなされるものである。
An example of the flow at the time of block matching processing on the reduced surface in the first example is shown in the flowchart of FIG. 23, and an example of the flow at the time of block matching processing on the basal plane is shown in the flowcharts of FIGS. Each step of the flowchart of the first example is performed in the
先ず、縮小面におけるブロックマッチング処理時の流れの例である図23のフローチャートについて説明する。 First, the flowchart of FIG. 23 which is an example of the flow at the time of the block matching process in a reduction surface is demonstrated.
はじめに、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値を設定する(ステップS31)。この最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
First, an initial value of the minimum SAD value Smin of the SAD
次に、マッチング処理部163では、縮小面の参照ベクトル(Vx,Vy)を設定して、SAD値を計算する縮小面参照ブロック位置を設定し(ステップS32)、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部162から読み込む(ステップS33)と共に、ターゲットブロックバッファ部161から縮小面ターゲットブロックの画素データを読み込んで、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、SAD値を求め、求めたSAD値を動きベクトル算出部164に送出する(ステップS34)。
Next, the matching
動きベクトル算出部164では、SAD値書き込み部1641により、そのSAD値をラインメモリ1647に書き込む(ステップS35)。
In the motion
そして、動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出されたSAD値Sinと、SAD値保持部1643に保持されている最小SAD値Sminとを比較して、算出されたSAD値Sinが、それまで保持されている最小SAD値Sminよりも小さいか否か判別する(ステップS36)。
In the motion
このステップS36で、算出されたSAD値Sinが最小SAD値Sminより小さいと判別したときには、ステップS37に進み、SAD値保持部1643に保持される最小SAD値Sminの情報およびその位置情報(縮小面参照ベクトル)の更新がなされる。
If it is determined in step S36 that the calculated SAD value Sin is smaller than the minimum SAD value Smin, the process proceeds to step S37, and information on the minimum SAD value Smin held in the SAD
また、ステップS36で、算出されたSAD値Sinが最小SAD値Sminより大きいと判別したときには、ステップS37の保持情報の更新処理は行わずにステップS38に進み、マッチング処理部163は、サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、サーチ範囲においては、未処理の参照ブロックがあると判別したときには、ステップS32に戻り、前述したステップS32以降の処理を繰り返す。
When it is determined in step S36 that the calculated SAD value Sin is larger than the minimum SAD value Smin, the process proceeds to step S38 without performing the update processing of the retained information in step S37, and the
また、マッチング処理部163は、ステップS38で、サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したと判別したときには、その旨を動きベクトル算出部164に伝える。
If the
動きベクトル算出部164では、これを受けて、SAD値保持部1643に保持される最小SAD値Sminの位置情報(縮小面参照ベクトル)を、コントロール部165に出力する(ステップS39)。
In response to this, the motion
以上で、この例における縮小面におけるブロックマッチング処理を終了する。 This is the end of the block matching process on the reduced surface in this example.
次に、基底面におけるブロックマッチング処理時の流れの例である図24および図25のフローチャートについて説明する。 Next, the flowcharts of FIGS. 24 and 25 which are examples of the flow at the time of block matching processing on the base surface will be described.
はじめに、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値を設定する(ステップS41)。この最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
First, an initial value of the minimum SAD value Smin of the SAD
次に、マッチング処理部163では、基底面における参照ベクトル(Vx,Vy)を設定して、SAD値を計算する基底面参照ブロック位置を設定し(ステップS42)、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部162から読み込む(ステップS43)。
Next, the matching
そして、ターゲットブロックバッファ部161から基底面ターゲットブロックの画素データを読み込んで、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、SAD値を求め、求めたSAD値を動きベクトル算出部164に送出する(ステップS44)。
Then, the pixel data of the base plane target block is read from the target
動きベクトル算出部164では、SAD値書き込み部1641により、そのSAD値をラインメモリ1647に書き込む(ステップS45)。そして、動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出されたSAD値Sinと、SAD値保持部1643に保持されている最小SAD値Sminとを比較して、算出されたSAD値Sinが、それまで保持されている最小SAD値Sminよりも小さいか否か判別する(ステップS46)。
In the motion
このステップS46で、算出されたSAD値Sinが最小SAD値Sminより小さいと判別したときには、ステップS47に進み、SAD値保持部1643に保持される最小SAD値Sminの情報および当該最小SAD値Sminを呈する参照ブロック位置の1ピクセル上および1ピクセル左の位置の参照ブロックのSAD値およびその位置情報(基底面参照ベクトル)の更新がなされる。
When it is determined in step S46 that the calculated SAD value Sin is smaller than the minimum SAD value Smin, the process proceeds to step S47, and information on the minimum SAD value Smin held in the SAD
すなわち、SAD値比較部1642は、算出されたSAD値Sinが最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出されたSAD値Sinおよびその位置情報(基底面参照ベクトル)を、新たな最小SAD値Sminの情報としてSAD値保持部1643に送ると共に、図21(B)から分かるように、ラインメモリ1647の最も古いSAD値およびその位置情報(基底面参照ベクトル)と、最も新しいSAD値およびその位置情報(基底面参照ベクトル)とを、最小SAD値の位置の1ピクセル上の位置の基底面参照ブロックのSAD値Sy1の情報および1ピクセル左の位置の基底面参照ブロックのSAD値Sx1の情報として、SAD値保持部1643に送る。SAD値保持部1643は、受け取った新たな最小SAD値Sminの情報および1ピクセル上の位置の基底面参照ブロックのSAD値Sy1の情報および1ピクセル左の位置の基底面参照ブロックのSAD値Sx1の情報により、それぞれ対応する保持情報を更新する。
That is, the SAD
そして、ステップ47の次には、図25のステップS51に進む。また、ステップS46で、算出されたSAD値Sinが最小SAD値Sminより大きいと判別したときには、ステップS47の保持情報の更新処理は行わずにステップS51に進む。 Then, after step 47, the process proceeds to step S51 in FIG. If it is determined in step S46 that the calculated SAD value Sin is greater than the minimum SAD value Smin, the process advances to step S51 without performing the holding information update process in step S47.
ステップS51では、SAD値書き込み部1641は、算出されたSAD値Sinについての位置情報(参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている基底面参照ブロックの位置の1ピクセル下の基底面参照ブロックの位置であるか否か判別し、1ピクセル下の基底面参照ブロックの位置であると判別したときには、算出されたSAD値Sinおよびその位置情報(参照ベクトル)をSAD値保持部1643に送る。SAD値保持部1643は、受け取ったSAD値およびその位置情報により、前記1ピクセル下の位置の基底面参照ブロックについての近傍SAD値Sy2の保持情報を更新する(ステップS52)。
In step S51, the SAD
ステップS51で、算出されたSAD値Sinについての位置情報(基底面参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている基底面参照ブロックの位置の1ピクセル下の基底面参照ブロックの位置でないと判別したときには、SAD値書き込み部1641は、算出されたSAD値Sinについての位置情報(基底面参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている基底面参照ブロックの位置の1ピクセル下の基底面参照ブロックの位置であるか否か判別する(ステップS53)。
In step S51, the position pointed to by the position information (base plane reference vector) for the calculated SAD value Sin is that of the base plane reference block one pixel below the position of the base plane reference block held as the minimum SAD value Smin. When it is determined that the position is not a position, the SAD
このステップS53で、算出されたSAD値Sinについての位置情報(基底面参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている基底面参照ブロックの位置の1ピクセル右の基底面参照ブロックの位置であると判別したときには、SAD値書き込み部1641は、算出されたSAD値Sinおよびその位置情報(基底面参照ベクトル)をSAD値保持部1643に送る。SAD値保持部1643は、受け取ったSAD値およびその位置情報により、前記1ピクセル右の位置の基底面参照ブロックについての近傍SAD値Sx2の保持情報を更新する(ステップS54)。
In this step S53, the position pointed to by the position information (base plane reference vector) for the calculated SAD value Sin is the base plane reference block one pixel to the right of the position of the base plane reference block held as the minimum SAD value Smin. When it is determined that the position is, the SAD
ステップS53で、算出されたSAD値Sinについての位置情報(基底面参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている基底面参照ブロックの位置の1ピクセル右の基底面参照ブロックの位置でないと判別したときには、SAD値書き込み部1641は、算出されたSAD値Sinおよびその位置情報(基底面参照ベクトル)は、ラインメモリ1647にのみ書き込み(前述のステップS45)、SAD値保持部1643に送らない。
In step S53, the position pointed to by the position information (base plane reference vector) for the calculated SAD value Sin is the base plane reference block one pixel to the right of the base plane reference block position held as the minimum SAD value Smin. When it is determined that the position is not the position, the SAD
そして、マッチング処理部163は、サーチ範囲の全ての基底面参照ブロックの位置(参照ベクトル)でマッチング処理を終了したか否か判別し(ステップS55)、未だ、サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、図28のステップS42に戻り、前述したステップS42以降の処理を繰り返す。
Then, the matching
また、マッチング処理部163は、ステップS45で、サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したと判別したときには、その旨を動きベクトル算出部164に伝える。
If the
動きベクトル算出部164では、これを受けて、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する(ステップS56)。以上で、1枚の基底面参照フレームについての第2の例のブロックマッチング処理を終了する。
In response to this, the motion
以上のように、この第1の例においては、算出された全てのSAD値を保持するSADテーブルを保持することなく、SADテーブルの1ライン分を設けると共に、SAD値書き込み部1641に1画素分のSAD値を保持しておくだけで、補間処理によるサブピクセル精度の動きベクトル検出を行うことができる。
As described above, in the first example, one line of the SAD table is provided without holding the SAD table holding all the calculated SAD values, and one pixel is provided in the SAD
この第1の例の方法は、従来のSADテーブルTBLのすべてを保持する手法と比べて、ブロックマッチング回数は同じであるため、処理時間は変わらず、ハードウエア規模を削減できるという効果を奏する。 The method of the first example has the effect that the processing time does not change and the hardware scale can be reduced because the number of times of block matching is the same as the method of holding all of the conventional SAD table TBL.
なお、上述した第1の例の説明においては、SAD値比較部1642は、マッチング処理部163からの算出されたSAD値Sinと、SAD値保持部163に保持されている最小SAD値Sminとを比較するようにしたが、SAD値比較部1642が最小SAD値の保持部を備え、その保持した最小SAD値と、算出されたSAD値Sinとを比較し、算出されたSinの方が小さいときには、保持した最小SAD値を更新すると共に、その位置情報と共に、SAD値書き込み部1641を通じてSAD値保持部1643に送って、SAD値保持部1643の最小SAD値保持部に保持させるようにしても良い。
In the description of the first example described above, the SAD
<実施形態の動きベクトル算出部164の第2の例>
この動きベクトル算出部164の第2の例においては、前記第1の例の場合のラインメモリ1647も省略して、より、ハードウエア規模の削減を図るようにした例である。
<Second Example of Motion
The second example of the motion
この第2の例においては、サーチ範囲における参照ブロックのSAD値の最小値Sminおよびその位置情報(参照ベクトル)の検出および保持は、上述した第1の例と全く同様に行う。しかし、近傍SAD値およびその位置情報の取得および保持に関しては、第1の例のように、SAD値Sminの検出時と同時には行わず、検出された最小SAD値Sminの位置情報を、マッチング処理部163に返して、マッチング処理部163で、最小SAD値Sminの近傍4点位置の参照ブロックについてのSAD値を再度、算出して、動きベクトル算出部164に供給するようにする。
In the second example, the minimum value Smin of the SAD value of the reference block in the search range and its position information (reference vector) are detected and held in the same manner as in the first example described above. However, the acquisition and holding of the neighboring SAD value and its position information are not performed simultaneously with the detection of the SAD value Smin, as in the first example, and the position information of the detected minimum SAD value Smin is matched. Returning to the
動きベクトル算出部164では、当該マッチング処理部163からの再度のブロックマッチング処理により算出された前記近傍4点位置のSAD値およびその位置情報(参照ベクトル)を受け取って、SAD値保持部1643のそれぞれの保持部に格納するようにする。
The motion
この動きベクトル算出部164の第2の例のハードウエア構成例を、図26に示す。すなわち、この動きベクトル算出部164の第3の例においては、第1の例のラインメモリ1647は備えずに、図26に示すように、SAD値書き込み部1641と、SAD値比較部1642と、SAD値保持部1643と、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646とを備えてなる。
A hardware configuration example of the second example of the motion
この第2の例においても、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646とは、前述した第1の例と同様の動作を行うが、SAD値書き込み部1641、SAD値比較部1642、SAD値保持部1643およびラインメモリ1647の部分は、前述の第1の例とは、異なる動作を行う。
Also in the second example, the X direction (horizontal direction) neighborhood
SAD値保持部1643は、第1の例と同様に、最小SAD値Sminおよび近傍SAD値Sx1、Sx2、Sy1、Sy2の保持部(メモリ)を備える。そして、この第2の例においても、SAD値保持部1643は、その最小SAD値保持部からの最小SAD値SminをSAD値比較部1642に供給する。しかし、この第2の例においては、SAD値保持部1643は、第1の例とは異なり、近傍SAD値の位置情報を、SAD値書き込み部1641に供給することしない。
Similar to the first example, the SAD
SAD値比較部1642は、この第2の例においても、マッチング処理部163からの当該時点で算出されたSAD値Sinと、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminとの両者を比較し、マッチング処理部163からの当該時点で算出されたSAD値Sinの方が小さいときには、当該時点で、そのSAD値を最小SAD値であるとして検出し、また、SAD値Sinの方が小さいときには、当該時点では、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminが未だ最小値であると検出する。そして、SAD値比較部1642は、その検出結果の情報DETをSAD値書き込み部1641およびSAD値保持部1643に供給する。
In this second example, the SAD
SAD値書き込み部1641は、前述例と同様に、マッチング処理部163からの算出されたSAD値Sinおよびその位置情報(参照ベクトル)を一時保持するための1画素分のバッファメモリを備える。そして、この第2の例においては、SAD値書き込み部1641は、SAD値比較部1642からの比較検出結果の情報DETが、SAD値Sinが最小値であることを示しているときには、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、SAD値保持部1643に送る。
Similar to the above example, the SAD
SAD値保持部1643は、SAD値比較部1642からの比較検出結果の情報DETにより、SAD値Sinが最小値であることを知り、SAD値書き込み部1641から送られてくる参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、最小SAD値保持部に格納する。
The SAD
以上の処理を、サーチ範囲内の全ての参照ブロックについてマッチング処理部163で算出されたSAD値について、行う。そして、この第2の例においては、サーチ範囲内の全ての参照ブロックについてのSAD値の算出が終了したときに、SAD値保持部1643は、保持している最小SAD値Sminの位置情報(参照ベクトル)Vminを、マッチング処理部163に供給して、当該位置情報の近傍の4点の参照ブロックについてのSAD値の再算出を依頼する。
The above processing is performed on the SAD values calculated by the matching
マッチング処理部163では、SAD値保持部1643から最小SAD値Sminの位置情報(参照ベクトル)Vminを含む近傍参照ブロックについてのSAD値の再算出の依頼を受け取ると、前記最小SAD値Sminの位置情報(参照ベクトル)Vminから、その近傍4点の近傍参照ブロックの位置を検出し、検出した位置の参照ブロックについて、SAD値の算出を行う。そして、算出したSAD値を、その位置情報(参照ベクトル)と共に、SAD値書き込み部1641に順次に供給する。
When the
この場合、マッチング処理部163は、サーチ方向の順にブロックマッチング処理を行うので、近傍SAD値は、SAD値Sy1、Sx1、Sx2、Sy2の順に算出される。SAD値書き込み部1641は、受け取った再算出されたSAD値およびその位置情報(参照ベクトル)を、順次にSAD値保持部1643に供給する。
In this case, since the
SAD値保持部1643は、この再算出されたSAD値およびその位置情報(参照ベクトル)を、順次に、対応する格納部に書き込んで保持する。
The SAD
こうして、近傍参照ブロックについてのSAD値の再算出が終了すると、前述の第1の例と同様にして、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する。
Thus, when the recalculation of the SAD value for the neighborhood reference block is completed, the X direction (horizontal direction) neighborhood
以上のようにして、第2の例においては、SADテーブルTBLやラインメモリを用いずに、サブピクセル精度の動きベクトルの検出ができる。 As described above, in the second example, the motion vector can be detected with sub-pixel accuracy without using the SAD table TBL or the line memory.
この第2の例における縮小面でのブロックマッチング処理時の流れの例は、ラインメモリ1647への書き込みを行わない点を除いて、図23に示した第1の例の場合と同様であるので、ここでは、説明を省略する。そして、この第2の例における基底面でのブロックマッチング処理時の流れの例を、図27のフローチャートを参照しながら説明する。
The example of the flow at the time of block matching processing on the reduction surface in the second example is the same as the case of the first example shown in FIG. 23 except that writing to the
はじめに、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値を設定する(ステップS61)。この最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
First, an initial value of the minimum SAD value Smin of the SAD
次に、マッチング処理部163では、基底面での参照ベクトル(Vx,Vy)を設定して、SAD値を計算する基底面参照ブロック位置を設定し(ステップS62)、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部162から読み込む(ステップS63)と共に、ターゲットブロックバッファ部161から基底面ターゲットブロックの画素データを読み込んで、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、SAD値を求め、求めたSAD値を動きベクトル算出部164に送出する(ステップS64)。
Next, the matching
動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出されたSAD値Sinと、SAD値保持部1643に保持されている最小SAD値Sminとを比較して、算出されたSAD値Sinが、それまで保持されている最小SAD値Sminよりも小さいか否か判別する(ステップS65)。
In the motion
このステップS65で、算出されたSAD値Sinが最小SAD値Sminより小さいと判別したときには、ステップS66に進み、SAD値保持部1643に保持される最小SAD値Sminおよびその位置情報の更新がなされる。
When it is determined in step S65 that the calculated SAD value Sin is smaller than the minimum SAD value Smin, the process proceeds to step S66, and the minimum SAD value Smin held in the SAD
すなわち、SAD値比較部1642は、算出されたSAD値Sinが最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出されたSAD値Sinおよびその位置情報(基底面参照ベクトル)を、新たな最小SAD値Sminの情報としてSAD値保持部1643に送る。SAD値保持部1643は、保持すべき最小SAD値Sminおよびその位置情報を、受け取った新たなSAD値Sinおよびその位置情報に更新する。
That is, the SAD
ステップS66の後には、ステップS67に進む。また、ステップS65で、算出されたSAD値Sinが最小SAD値Sminより大きいと判別したときには、ステップS66の保持情報の更新処理は行わずにステップS67に進む。 After step S66, the process proceeds to step S67. If it is determined in step S65 that the calculated SAD value Sin is greater than the minimum SAD value Smin, the process advances to step S67 without performing the holding information update process in step S66.
ステップS67では、マッチング処理部163は、サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、ステップS62に戻り、前述したステップS62以降の処理を繰り返す。
In step S67, the matching
また、マッチング処理部163は、ステップS67で、サーチ範囲の全ての基底面参照ブロックの位置(参照ベクトル)でマッチング処理を終了したと判別したときには、SAD値保持部1643からの最小SAD値Sminの位置情報を受け取り、その近傍4点の位置の基底面参照ブロックについてのSAD値の再算出を行い、再算出した近傍SAD値をSAD値書き込み部1641を通じてSAD値保持部1643に供給し、保持させるようにする(ステップS68)。
If the
次に、動きベクトル算出部164では、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する(ステップS69)。以上で、1枚の参照フレームについての第2の例の基底面でのブロックマッチング処理を終了する。
Next, in the motion
この第2の例においては、上述した第1の例に比較して、SAD値を再算出する分だけ、処理時間が増加するが、ラインメモリをも必要としないので、回路規模を、第1の例よりも削減することができる。しかも、SAD値の再算出は、近傍SAD値のみであるので、上述の例では、高々4回であるので、処理時間の増加は少ない。 In this second example, the processing time is increased by recalculating the SAD value as compared with the first example described above, but since no line memory is required, the circuit scale is reduced to the first. It can be reduced more than the example. In addition, since the SAD value is recalculated only for the neighborhood SAD value, in the above example, since the number of times is at most four, the increase in the processing time is small.
なお、上述した第2の例の説明では、最小SAD値は、検出しながらSAD値保持部1643に保持するようにしたが、SAD値比較部1642において、最小SAD値を呈する参照ブロックの位置情報(参照ベクトル)を検出して保持するように構成し、1回目のブロックマッチングが終了したら、SAD値比較部1642から、当該最小SAD値の位置情報をマッチング処理部163に供給するようにしてもよい。
In the description of the second example described above, the minimum SAD value is held in the SAD
その場合には、マッチング処理部163でのSAD値の再算出においては、近傍4点のSAD値に加えて、最小SAD値をも再算出するようにする。この場合には、SAD値の再算出回数が5回となり、1回増加するが、1回目のブロックマッチングでは、SAD値比較部1642のみが動作すればよく、SAD値書き込み部1641およびSAD値保持部1643は、再算出されたSAD値を保持するように動作すればよいので、処理動作が簡略化されるというメリットがある。
In this case, in the recalculation of the SAD value in the
また、動き検出および動き補償部16での処理は、ターゲットフレームにおいて設定された複数個のターゲットブロックについて、並列および並行して、実行することができる。その場合には、以上説明した動き検出および動き補償部16のハードウエアの系を、当該並列・並行処理するターゲットブロック数に応じた数だけ、設ける必要がある。
Further, the processing in the motion detection and
従来例のように、SADテーブルTBLを生成する方法の場合には、当該ターゲットブロック数分だけのSADテーブルを生成する必要があり、非常に大きなメモリが必要となってしまう。しかし、第1の例では、1ターゲットブロック当たりについて、SADテーブルの1ライン分でよく、メモリ容量を非常に少なくすることができる。さらに、第2の例の場合には、ラインメモリをも必要としないので、メモリ容量の大幅な削減をすることができる。 In the case of the method for generating the SAD table TBL as in the conventional example, it is necessary to generate as many SAD tables as the number of target blocks, and a very large memory is required. However, in the first example, one line of the SAD table is sufficient for one target block, and the memory capacity can be greatly reduced. Furthermore, in the case of the second example, since no line memory is required, the memory capacity can be greatly reduced.
[階層化ブロックマッチング処理の流れの例]
次に、図28および図29に、この実施の形態における動き検出・動き補償部16での階層化ブロックマッチング処理の動作例のフローチャートを示す。
[Example of hierarchical block matching process flow]
Next, FIG. 28 and FIG. 29 show flowcharts of an operation example of the hierarchical block matching processing in the motion detection /
なお、この図28および図29に示す処理の流れは、前述したマッチング処理部163、動き算出部164の処理例の流れとしての説明と、一部重複するものとなるが、この実施の形態の動作を、より理解し易くするために、説明するものである。
Note that the processing flow shown in FIG. 28 and FIG. 29 partially overlaps with the description of the processing example of the
はじめに、動き検出・動き補償部16において、ターゲットブロックバッファ部161から、ターゲットブロックの縮小画、つまり、縮小面ターゲットブロックを読み込む(図28のステップS71)。次に、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値として、縮小面最小SAD値の初期値を設定する(ステップS72)。この縮小面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
First, the motion detection /
次に、マッチング処理部163では、縮小面サーチ範囲を設定すると共に、設定した縮小サーチ範囲において、縮小面参照ベクトル(Vx/n,Vy/n:1/nは縮小倍率)を設定して、SAD値を計算する縮小面参照ブロック位置を設定する(ステップS73)。そして、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部162から読み込み(ステップS74)、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、縮小面SAD値を求め、求めた縮小面SAD値を動きベクトル算出部164に送出する(ステップS75)。
Next, the matching
動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出された縮小面SAD値Sinと、SAD値保持部1643に保持されている縮小面最小SAD値Sminとを比較して、算出された縮小面SAD値Sinが、それまで保持されている縮小面最小SAD値Sminよりも小さいか否か判別する(ステップS76)。
In the motion
このステップS76で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さいと判別したときには、ステップS77に進み、SAD値保持部1643に保持される縮小面最小SAD値Sminおよびその位置情報の更新がなされる。
If it is determined in step S76 that the calculated reduction surface SAD value Sin is smaller than the reduction surface minimum SAD value Smin, the process proceeds to step S77, and the reduction surface minimum SAD value Smin held in the SAD
すなわち、SAD値比較部1642は、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出された縮小面SAD値Sinおよびその位置情報(縮小面参照ベクトル)を、新たな縮小面最小SAD値Sminの情報としてSAD値保持部1643に送る。SAD値保持部1643は、保持すべき縮小面最小SAD値Sminおよびその位置情報を、受け取った新たな縮小面SAD値Sinおよびその位置情報に更新する。
That is, the SAD
ステップS77の後には、ステップS78に進む。また、ステップS76で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより大きいと判別したときには、ステップS77の保持情報の更新処理は行わずにステップS78に進む。 After step S77, the process proceeds to step S78. If it is determined in step S76 that the calculated reduced surface SAD value Sin is larger than the reduced surface minimum SAD value Smin, the process advances to step S78 without performing the holding information update process in step S77.
ステップS78では、マッチング処理部163は、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、縮小面サーチ範囲においては、未処理の縮小面参照ブロックがあると判別したときには、ステップS73に戻り、前述したステップS73以降の処理を繰り返す。
In step S78, the matching
また、マッチング処理部163は、ステップS78で、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したと判別したときには、SAD値保持部1643からの縮小面最小SAD値Sminの位置情報(縮小面動きベクトル)を受け取り、受け取った縮小面動きベクトルを、縮小倍率の逆数倍、すなわち、n倍したベクトルが、基底面ターゲットフレームにおいて指し示す位置座標を中心とした位置に基底面ターゲットブロックを設定するとともに、前記n倍したベクトルが指し示す位置座標を中心とした比較的狭い範囲として、基底面サーチ範囲を、基底面ターゲットフレームに設定し(ステップS79)、ターゲットブロックバッファ部161から、基底面ターゲットブロックの画素データを読み込む(ステップS80)。
If the
そして、次に、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値として、基底面最小SAD値の初期値を設定する(図29のステップS81)。この基底面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
Next, the initial value of the base surface minimum SAD value is set as the initial value of the minimum SAD value Smin of the SAD
次に、マッチング処理部163では、ステップS79で設定した基底面縮小サーチ範囲において、基底面参照ベクトル(Vx,Vy)を設定して、SAD値を計算する基底面参照ブロック位置を設定する(ステップS82)。そして、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部162から読み込み(ステップS83)、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、基底面SAD値を求め、求めた基底面SAD値を動きベクトル算出部164に送出する(ステップS84)。
Next, the matching
動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出された基底面SAD値Sinと、SAD値保持部1643に保持されている基底面最小SAD値Sminとを比較して、算出された基底面SAD値Sinが、それまで保持されている基底面最小SAD値Sminよりも小さいか否か判別する(ステップS85)。
In the motion
このステップS85で、算出された基底面SAD値Sinが基底面最小SAD値Sminより小さいと判別したときには、ステップS86に進み、SAD値保持部1643に保持される基底面最小SAD値Sminおよびその位置情報の更新がなされる。
When it is determined in this step S85 that the calculated basal plane SAD value Sin is smaller than the basal plane minimum SAD value Smin, the process proceeds to step S86, and the basal plane minimum SAD value Smin held in the SAD
すなわち、SAD値比較部1642は、算出された基底面SAD値Sinが基底面最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出された基底面SAD値Sinおよびその位置情報(参照ベクトル)を、新たな基底面最小SAD値Sminの情報としてSAD値保持部1643に送る。SAD値保持部1643は、保持すべき基底面最小SAD値Sminおよびその位置情報を、受け取った新たな基底面SAD値Sinおよびその位置情報に更新する。
That is, the SAD
ステップS86の後には、ステップS87に進む。また、ステップS85で、算出された基底面SAD値Sinが基底面最小SAD値Sminより大きいと判別したときには、ステップS86の保持情報の更新処理は行わずにステップS87に進む。 After step S86, the process proceeds to step S87. If it is determined in step S85 that the calculated basal plane SAD value Sin is greater than the basal plane minimum SAD value Smin, the process proceeds to step S87 without performing the holding information update process in step S86.
ステップS87では、マッチング処理部163は、基底面サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、基底面サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、ステップS82に戻り、前述したステップS82以降の処理を繰り返す。
In step S87, the matching
また、マッチング処理部163は、ステップS87で、基底面サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したと判別したときには、SAD値保持部1643からの基底面最小SAD値Sminの位置情報(基底面動きベクトル)を受け取り、その近傍4点の位置の基底面参照ブロックについての基底面SAD値の再算出を行い、再算出した近傍基底面SAD値をSAD値書き込み部1641を通じてSAD値保持部1643に供給し、保持させるようにする(ステップS88)。
When the
次に、動きベクトル算出部164では、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小の基底面SAD値Sminとその近傍基底面SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の基底面動きベクトルを算出する(ステップS89)。以上で、1枚の参照フレームについてのこの例のブロックマッチング処理を終了する。
Next, in the motion
次に、この実施の形態による階層化ブロックマッチング手法を用いた画像処理方法の効果を、具体例を挙げて説明する。 Next, the effect of the image processing method using the hierarchical block matching method according to this embodiment will be described with a specific example.
図30に、上述の実施の形態の説明で用いた基底面、縮小面での、参照ブロック、サーチ範囲、マッチング処理範囲の具体例を示す。図30の例は、水平方向および垂直方向の縮小倍率1/nは、n=4に設定した場合である。
FIG. 30 shows specific examples of the reference block, the search range, and the matching processing range on the base surface and the reduction surface used in the description of the above-described embodiment. In the example of FIG. 30, the
比較例として、図30(A)および(B)に示すように、例えば、縮小画像を用いない参照ブロック108は、横(水平)×縦(垂直)=32×32ピクセルとし、また、サーチ範囲106は、横(水平)×縦(垂直)=144×64ピクセル、マッチング処理範囲110は、横(水平)×縦(垂直)=176×96ピクセルとする。
As a comparative example, as shown in FIGS. 30A and 30B, for example, a
すると、上述した実施の形態において、水平方向および垂直方向に、1/n=1/4に縮小された縮小面では、図30(C)および(D)に示すように、縮小面参照ブロック139は、横(水平)×縦(垂直)=8×8ピクセル、縮小面サーチ範囲137は、横(水平)×縦(垂直)=36×16ピクセル、縮小面マッチング処理範囲143は、横(水平)×縦(垂直)=44×24ピクセルとなる。
Then, in the above-described embodiment, in the reduced surface reduced to 1 / n = 1/4 in the horizontal direction and the vertical direction, as shown in FIGS. 30C and 30D, the reduced
水平方向および垂直方向に、1/4に縮小された縮小面で、ブロックマッチングを行った場合、縮小面動きベクトルは、4ピクセル精度の動きベクトルであり、単純に4倍しただけでは、1ピクセル精度の動きベクトルに対して誤差が生じる。すなわち、基底面での画素が図35に示すようなものとした場合、基底面でのマッチング処理点148は、当該基底面の全ての画素が対象となるが、1/4に縮小された縮小面で、ブロックマッチングを行う場合のマッチング処理点は、図31において、黒丸で示す4ピクセル単位のマッチング処理点147となっているからである。
When block matching is performed with a reduction plane reduced to ¼ in the horizontal direction and the vertical direction, the reduction plane motion vector is a motion vector with a precision of 4 pixels. An error occurs with respect to the precision motion vector. In other words, if the pixels on the base surface are as shown in FIG. 35, the matching
しかし、少なくとも、1ピクセル精度の動きベクトルは、縮小面動きベクトルが指し示す縮小面でのマッチング処理点の周囲、4ピクセル範囲以内に存在するであろうことは予測できる。 However, it can be predicted that at least a 1-pixel precision motion vector will exist within a 4-pixel range around the matching processing point on the reduced plane indicated by the reduced plane motion vector.
そこで、この実施の形態では、算出された縮小面動きベクトルを元に基底面サーチ範囲を定める基底面マッチングでは、縮小面動きベクトルを縮小倍率の逆数である4倍した参照ベクトルが指し示すピクセル位置を中心に、基底面ターゲットブロックを設定するとともに、4ピクセル分のサーチ範囲(基底面サーチ範囲140)を決定して、基底面ブロックマッチングを行い、再度動きベクトルを算出する。 Therefore, in this embodiment, in basal plane matching that determines the basal plane search range based on the calculated reduced plane motion vector, the pixel position indicated by the reference vector obtained by multiplying the reduced plane motion vector by 4 that is the reciprocal of the reduction magnification is indicated. A base plane target block is set at the center, a search range for 4 pixels (base plane search range 140) is determined, base plane block matching is performed, and a motion vector is calculated again.
したがって、図30(E)および(F)に示すように、基底面参照ブロック142は、横(水平)×縦(垂直)=32×32ピクセル、基底面サーチ範囲140は、横(水平)×縦(垂直)=4×4ピクセル、基底面マッチング処理範囲144は、横(水平)×縦(垂直)=40×40ピクセルとなる。
Therefore, as shown in FIGS. 30E and 30F, the basal
図32に、この実施の形態のように、縮小面マッチングと、基底面マッチングの2階層マッチングを行う場合において、SADテーブルを使用すると仮定した場合における、基底面、縮小面での、SADテーブルのサイズを示す。なお、図32の例は、図30に示した具体例に対応したものである。 In FIG. 32, in the case of performing two-layer matching of reduced plane matching and basal plane matching as in this embodiment, it is assumed that the SAD table is used, and the SAD table of the basal plane and reduced plane is used. Indicates size. The example of FIG. 32 corresponds to the specific example shown in FIG.
縮小する前の144×64のサーチ範囲(図30(B)参照)の場合におけるSADテーブルTBLは、図32(A)に示すように、145×65点である。 The SAD table TBL in the case of the 144 × 64 search range (see FIG. 30B) before the reduction is 145 × 65 points as shown in FIG.
これに対して、36×16の縮小面サーチ範囲(図30(D)参照)の場合における縮小面SADテーブルは、図32(B)に示すように、37点×17点となる。 On the other hand, the reduced surface SAD table in the case of the 36 × 16 reduced surface search range (see FIG. 30D) is 37 points × 17 points as shown in FIG.
また、4×4の基底面サーチ範囲(図30(F)参照)の場合における基底面SADテーブルは5点×5点となる。 In the case of a 4 × 4 base plane search range (see FIG. 30F), the base plane SAD table is 5 points × 5 points.
したがって、階層マッチングを施さない場合のマッチング処理回数は145×65=9425回であるのに対し、階層マッチングを適用した場合のマッチング回数は37×17+5×5=654回となり、処理時間を大幅に短縮できることが分かる。 Therefore, the number of matching processes when layer matching is not performed is 145 × 65 = 9425 times, whereas the number of matching processes when layer matching is applied is 37 × 17 + 5 × 5 = 654 times, which greatly increases the processing time. It can be seen that it can be shortened.
そして、前述した動きベクトル検出方法の第1の例の場合におけるラインメモリは、縮小面SADテーブルの1ライン分でよいので、37個のSAD値およびその位置情報を格納できるものでよく、SADテーブルTBLの場合の、9425個のSAD値およびその位置情報を格納するメモリに対して非常に小さいメモリでよくなる。 The line memory in the case of the first example of the motion vector detection method described above may be one line in the reduced-surface SAD table, so that it can store 37 SAD values and their position information. In the case of TBL, a very small memory is sufficient for the memory storing 9425 SAD values and their position information.
また、前述した動きベクトル算出部164の構成例の第2の例の場合には、37個のSAD値およびその位置情報を格納する縮小面SADテーブルさえも不要となるので、さらに回路規模を小さくすることができる。
Further, in the case of the second example of the configuration example of the motion
以上のようにして、上記の実施の形態によれば、階層化したマッチング処理を行った後、基底面において補間処理をすることにより、広いサーチ範囲で、サブピクセル精度の動きベクトル検出を行うことが可能になる。 As described above, according to the above-described embodiment, after performing the hierarchical matching process, the interpolation process is performed on the basal plane, thereby performing motion vector detection with sub-pixel accuracy in a wide search range. Is possible.
なお、図33に、この実施形態の階層化ブロックマッチング方式における、縮小面および基底面におけるターゲットブロックサイズおよびマッチング処理範囲の例を示す。この図33の例は、縮小面ターゲットブロック133のサイズを、図33(A)に示すように、横×縦=8×8画素で固定値としている。このため、縮小面マッチング処理範囲143は、図33(B)に示すように、横×縦=44×24画素分となる。
FIG. 33 shows an example of target block sizes and matching processing ranges on the reduction plane and the base plane in the hierarchical block matching method of this embodiment. In the example of FIG. 33, the size of the reduction
そして、基底面ターゲットブロック131のサイズ、基底面マッチング処理範囲144のサイズおよび基底面参照ベクトル数は、図33(C)に示すようなものとなる。この図33(C)は、基底面に対する縮小面の縮小倍率が1/2、1/4、1/8の場合の例のそれぞれにおける基底面ターゲットブロック131のサイズ、基底面マッチング処理範囲144のサイズおよび基底面参照ベクトル数を示している。
The size of the base
[静止画NR処理時におけるメモリ容量削減および効率的なメモリアクセス]
上述したように、この実施形態では、静止画NR処理、および動画NR処理に対応している。動画NR処理では、精度よりもリアルタイム性、すなわちスピードが要求されるのに対して、静止画NR処理は多少処理時間がかかっても、ノイズの取れた綺麗な画像が求められる。
[Reduced memory capacity and efficient memory access during still image NR processing]
As described above, this embodiment supports still image NR processing and moving image NR processing. In moving image NR processing, real-time performance, that is, speed is required rather than accuracy, whereas still image NR processing requires a clean image with no noise even if processing time is somewhat long.
前述したように、画像の重ね合わせ方法をシステムアーキテクトの観点から大きく分類すると、静止画撮影時の高速連写中に、リアルタイムに画像の重ね合わせを行う手法である撮影中加算法と、前記高速連写後に、すべての参照画像が揃ってから画像の重ね合わせを行う手法である撮影後加算法の、2種類がある。十分な処理時間をかけてNR処理を行うには、撮影中加算法ではなく、撮影後加算法の方が望ましく、この実施形態では、撮影後加算法を採っている。 As described above, when the image overlay method is largely classified from the viewpoint of the system architect, the during-shoot addition method, which is a method for performing image overlay in real time during high-speed continuous shooting during still image shooting, After high-speed continuous shooting, there are two types, a post-shooting addition method, which is a method of superimposing images after all reference images are gathered. In order to perform the NR process with sufficient processing time, the post-shooting addition method is preferable rather than the during-shooting addition method. In this embodiment, the post-shooting addition method is used.
しかしながら、撮影後加算法は、参照画像を画像メモリに保持しておかなくてはならず、重ね合わせ枚数が増えるほど、画像メモリとして大容量が必要になるという問題がある。 However, the post-shooting addition method has to store the reference image in the image memory, and there is a problem that a larger capacity is required as the image memory as the number of superimposed images increases.
この実施形態では、この問題点にかんがみ、静止画NR処理時に、撮影後加算法を用いるに当たって、画像メモリ部4の容量をできるだけ削減すると共に、効率的にメモリアクセスを行うことができるように工夫している。以下、この点について説明する。
In this embodiment, in view of this problem, in using the post-shooting addition method at the time of still image NR processing, the capacity of the
<静止画NR処理時のメモリアクセス時のデータフォーマット>
先ず、この実施形態における画像メモリ部4に対するメモリアクセス時のデータフォーマットについて説明する。
<Data format for memory access during still image NR processing>
First, a data format at the time of memory access to the
図13および図16のブロック図に示したように、動き検出・動き補償部16および画像重ね合わせ部17とは、それぞれバス・インターフェース部21,22,23,24を介してシステムバス2に接続されている。
As shown in the block diagrams of FIGS. 13 and 16, the motion detection /
この実施形態におけるシステムバス2は、バス幅は、例えば64ビットであり、メモリコントローラ8によるバースト長(所定の複数画素データ単位でバースト転送を連続して行える回数)は、例えば最大16バーストとされている。つまり、バースト転送の最大連続可能回数qは、この例では、q=16とされている。
The
動き検出・動き補償部16のターゲットブロックバッファ部161および参照ブロックバッファ部162からの読み込み要求が、バス・インターフェース部21,22を通じてメモリコントローラ8に供給され、当該メモリコントローラ8にて、画像メモリ部4の所定のメモリに対して、スタートアドレス、バースト長、その他のバスプロトコルを生成して、アクセスしている。
Read requests from the target
この実施形態の撮像装置で使用している画像データは、1画素が、輝度信号Yとクロマ信号C(Cr,Cb)とからなる。そして、Y:Cr:Cb=4:2:2のフォーマットであり、輝度信号Y、クロマ信号C(Cr,Cb)は、共に符号なしの8ビット(Cr=4ビット、Cb=4ビット)であって、64ビットのメモリアクセス幅に、YC4画素分が並んでいるものである。システムバス2のデータ処理単位(1バースト転送で転送可能なデータ量)は、64ビットであり、1画素分のYC画素データが16ビットであるので、4画素分になる。つまり、1バースト転送で転送可能な画素数pは、この例では、p=4画素である。 In the image data used in the imaging apparatus of this embodiment, one pixel is composed of a luminance signal Y and a chroma signal C (Cr, Cb). The format is Y: Cr: Cb = 4: 2: 2, and the luminance signal Y and chroma signal C (Cr, Cb) are both unsigned 8 bits (Cr = 4 bits, Cb = 4 bits). Therefore, YC4 pixels are arranged in a memory access width of 64 bits. The data processing unit of the system bus 2 (the amount of data that can be transferred by one burst transfer) is 64 bits, and the YC pixel data for one pixel is 16 bits. That is, the number of pixels p that can be transferred in one burst transfer is p = 4 pixels in this example.
図1に示したようなグローバルなシステムバス2に、撮像装置の各処理部がつながっている場合、バス帯域と、各処理部で共有しているメモリコントローラ8の処理単位とは、密接な関係がある。ここで、バス帯域とは、データを転送するバス上で、輻輳を回避してデータ転送することができるデータレートおよびバス幅(ビット数)などからなる量である。
When each processing unit of the imaging device is connected to the
ところで、上述したように、この実施形態では、メモリコントローラ8が処理できる最大バースト長は16バーストである。例えば、同じデータサイズの画像データを、画像メモリ部4のメモリに書き込む場合でも、16バーストの転送をたくさん使える方が、バスのアービトレーション回数も減り、メモリコントローラ8によるメモリアクセス処理の効率が良く、バス帯域を削減できる。
By the way, as described above, in this embodiment, the maximum burst length that can be processed by the
したがって、この実施形態では、YC画素データの4画素分のデータ(64ビット)を16バーストでバスアクセスすることができると、効率が良い。これを画素数に換算すると、4×16=64画素分のデータになる。 Therefore, in this embodiment, it is efficient if the data (64 bits) of 4 pixels of YC pixel data can be bus-accessed by 16 bursts. When this is converted into the number of pixels, the data is 4 × 16 = 64 pixels.
そこで、この実施形態では、図34(A)に示すように、1画面分の画像の水平方向を、1バースト転送(64画素)単位で分割して、1画面分の画像を、縦長の分割ブロックの画像単位(以下、短冊と称する)の複数個からなるものとすることを考える。そして、画像メモリ部4に対する画像データのメモリアクセスのフォーマットの1つとして、画像データを、この短冊単位で、画像メモリ部4に書き込み、また、画像メモリ部4から読み出しするメモリアクセス方式(以下、短冊アクセス形式と称する)を採用する。静止画NR処理時には、基本的に、この短冊アクセス形式により画像メモリ部4に対する画像データのメモリアクセスを行う。
Therefore, in this embodiment, as shown in FIG. 34 (A), the horizontal direction of the image for one screen is divided in units of 1 burst transfer (64 pixels), and the image for one screen is divided vertically. Suppose that it is composed of a plurality of block image units (hereinafter referred to as strips). Then, as one of the memory access formats of the image data to the
ここで、水平方向の64画素を16バーストでバスアクセスするフォーマットを、64×1フォーマットと称することとする。この64×1フォーマットは、図36(B)に示すように、4画素毎のバースト転送を、最大連続バースト回数である16回、連続して繰り返すメモリアクセス方式である。メモリコントローラ8は、64×1フォーマットのバスアクセスを実行するためのアドレス生成部(図示は省略)を備えている。すなわち、図36(B)に示すように、4画素毎のバースト転送の先頭のアドレスA1,A2,A3・・・A16が定まると、自動的に、64×1フォーマットのバスアクセスができる。メモリコントローラ8は、64×1フォーマットのメモリアクセスを実行するためのアドレス生成部(図示は省略)を備えている。
Here, a format in which 64 pixels in the horizontal direction are bus-accessed by 16 bursts is referred to as a 64 × 1 format. This 64 × 1 format is a memory access method in which burst transfer for every four pixels is continuously repeated 16 times, which is the maximum number of continuous bursts, as shown in FIG. The
そして、短冊アクセス形式は、64×1フォーマットを、画面の垂直方向に連続して行う方式ということになる。64×1フォーマットを、水平方向に繰り返し、1ライン分の全てのアクセスを終了したら、次のラインについて同様のアクセスをすることで、ラスタースキャン形式の画像データのアクセスができる。 The strip access format is a system in which the 64 × 1 format is continuously performed in the vertical direction of the screen. When the 64 × 1 format is repeated in the horizontal direction and all accesses for one line are completed, the same access is made for the next line, thereby enabling access to image data in the raster scan format.
この実施形態のメモリコントローラ8は、このような短冊アクセス形式を実行するためのアドレス生成部(図示は省略)を備えている。
The
なお、水平方向の画像データが64画素で割り切れない場合は、図34で、影線を付して示すように、水平方向の右端にダミー領域151を設けて、このダミー領域151に、例えば黒や白の画素データをダミーデータとして付加し、水平方向の画素数が、64の倍数になるようにしている。
If the horizontal image data is not divisible by 64 pixels, a
従来のラスタースキャン方式は、画像メモリへのアクセスに対して、水平方向にアドレスが連続しているため、1ラインずつデータを読むのに適しているのに対して、短冊アクセス形式は、1バースト転送(64画素)単位で垂直方向にアドレスがインクリメントするため、水平方向が64画素以内であるブロック状のデータを読むのに適している。 The conventional raster scan method is suitable for reading data line by line because the addresses are continuous in the horizontal direction when accessing the image memory, whereas the strip access format is 1 burst. Since the address is incremented in the vertical direction in units of transfer (64 pixels), it is suitable for reading block-like data whose horizontal direction is within 64 pixels.
例えば、64画素×64ラインの短冊形式のブロックを読み込む際には、画像メモリ部4に対して、メモリコントローラ8は、YC画素データの4画素分のデータ(64ビット)を16バーストでバスアクセスすると、当該16バーストで、4×16=64画素分のデータになるので、水平方向の64画素からなる1ライン目のアドレスの設定以降は、垂直方向にアドレスをインクリメントしていくだけで、残り63ライン分の画素データのアドレス設定をすることが可能である。
For example, when reading a strip block of 64 pixels × 64 lines, the
この実施形態では、動き検出・動き補償部16が、上記の短冊アクセス形式で画像メモリ部4にアクセスできるように、その前段にある、画像補正・解像度変換部15においても、短冊アクセス形式のアクセスに対応している。また、この実施形態では、静止画撮影時の静止画NR処理においては、高速連写撮影して得た複数枚の撮像画像を、圧縮して画像メモリ部4に記憶しておき、必要に応じて伸長デコードして読み出して、動き検出・動き補償部16でのブロックマッチング処理ができるようにするため、静止画コーデック部19においても、短冊アクセス形式に対応している。
In this embodiment, in order to allow the motion detection /
図35(A)は、1画面分の画像が、横×縦=640×480画素からなる例における短冊単位の分割例である。この例においては、1画面分の画像が、水平方向の64画素単位で分割される結果、10個の短冊T0〜T9に分けられている。 FIG. 35A is an example of division in strip units in an example in which an image for one screen includes horizontal × vertical = 640 × 480 pixels. In this example, the image for one screen is divided into ten strips T0 to T9 as a result of being divided in units of 64 pixels in the horizontal direction.
前述した図33に示した縮小倍率1/4の場合では、1つの短冊の中には、図35(B)に示すように、32×32画素の基底面ターゲットブロックが、B0〜B29として示すように、水平方向に2個、垂直方向に15個、合計30個入っている。 In the case of the reduction ratio ¼ shown in FIG. 33 described above, in one strip, as shown in FIG. 35 (B), the basal plane target block of 32 × 32 pixels is shown as B0 to B29. Thus, there are 30 in total, 2 in the horizontal direction and 15 in the vertical direction.
静止画NR処理時において、画像メモリ部4から基底面ターゲットブロックを読み込むときは、短冊アクセス形式の利点を活かすために、この実施形態では、64画素×1ラインずつアクセスし、バス効率を上げるようにしている。
At the time of still image NR processing, when reading the basal plane target block from the
例えば、図36に示すように、基底面に対する縮小面の縮小倍率が1/2のときは、この実施形態では、基底面ターゲットブロックの大きさは、横×縦=16画素×16ラインとされる。したがって、この基底面ターゲットブロックを4個、水平方向に並べると、水平方向の画素数が64画素となる。そこで、この実施形態では、縮小倍率1/2のときは、図36の右側に示すように、画像メモリ部4に対するアクセス単位を、当該ターゲットブロックの4個とし、上述した64×1フォーマットの短冊アクセス形式でアクセスする。つまり、4個のターゲットブロックは、水平方向の64画素単位のアクセス(4画素×16バースト)を、アドレスを垂直方向に変更しながら、16回繰り返すことで転送することができる。
For example, as shown in FIG. 36, when the reduction ratio of the reduction surface with respect to the base surface is 1/2, in this embodiment, the size of the base surface target block is horizontal × vertical = 16 pixels × 16 lines. The Therefore, when four basal plane target blocks are arranged in the horizontal direction, the number of pixels in the horizontal direction is 64 pixels. Therefore, in this embodiment, when the reduction ratio is 1/2, as shown on the right side of FIG. 36, the access unit to the
同様にして、図36に示すように、基底面に対する縮小面の縮小倍率が1/4のときは、この実施形態では、基底面ターゲットブロックの大きさは、横×縦=32画素×32ラインとされるので、基底面ターゲットブロックは2個ずつ、画像メモリに対してアクセスするようにすることで、上述した64×1フォーマットの短冊アクセス形式でアクセスすることができる。また、基底面に対する縮小面の縮小倍率が1/8のときは、この実施形態では、基底面ターゲットブロックの大きさは、横×縦=64画素×64ラインとされるので、基底面ターゲットブロックは1個ずつ、画像メモリに対してアクセスするようにすることで、上述した64×1フォーマットの短冊アクセス形式でアクセスすることができる。 Similarly, as shown in FIG. 36, when the reduction ratio of the reduction surface with respect to the base surface is 1/4, in this embodiment, the size of the base surface target block is horizontal × vertical = 32 pixels × 32 lines. Therefore, by accessing the image memory two by two, the base plane target blocks can be accessed in the above-described 64 × 1 format strip access format. When the reduction ratio of the reduction plane with respect to the base plane is 1/8, in this embodiment, the size of the base plane target block is horizontal × vertical = 64 pixels × 64 lines. By accessing the image memory one by one, it is possible to access in the strip access format of the 64 × 1 format described above.
短冊アクセス形式は、バス帯域という面だけでなく、上記の回路の内部処理においても、非常に有益な手法である。第一に、垂直方向のフィルタ処理等を行うための、垂直フィルタ処理部の内部ラインメモリのサイズを削減することができる。 The strip access format is a very useful technique not only in terms of bus bandwidth but also in the internal processing of the above circuit. First, it is possible to reduce the size of the internal line memory of the vertical filter processing unit for performing vertical filter processing and the like.
すなわち、ラスタースキャン形式で画素データのアクセスをする場合には、垂直方向のフィルタ処理のためには、1ライン分のすべての画素が垂直フィルタ処理部の内部ラインメモリに蓄積された後でないと、次のラインの画素データの蓄積が開始されないので、内部ラインメモリは、1ライン分の容量のラインメモリを複数個必要とするが、短冊アクセス形式の場合には、上述の例では、64画素単位で、垂直方向の次のラインの画素データが到来することになるので、垂直フィルタ処理部の内部ラインメモリは、64画素分の容量のラインメモリを複数個備えるだけでよくなり、ラインメモリのサイズを削減することができる。 That is, when accessing pixel data in the raster scan format, for vertical filter processing, all the pixels for one line must be stored in the internal line memory of the vertical filter processing unit. Since the accumulation of the pixel data of the next line is not started, the internal line memory requires a plurality of line memories having a capacity for one line. In the case of the strip access format, in the above example, in the unit of 64 pixels Thus, since the pixel data of the next line in the vertical direction arrives, the internal line memory of the vertical filter processing unit only needs to have a plurality of line memories having a capacity of 64 pixels, and the size of the line memory Can be reduced.
また、解像度変換処理のような、ブロック形式で処理を行う回路にとっては、ラスタースキャン形式から任意のブロックに変換するよりも、短冊形式から任意のブロック形式に変換した方が、効率が良いという利点がある。 For circuits that perform processing in block format, such as resolution conversion processing, it is more efficient to convert from strip format to arbitrary block format than to convert from raster scan format to arbitrary block There is.
<静止画撮影時の静止画NR処理における撮像画像の圧縮、伸長処理>
前述したように、この実施形態では、静止画撮影時の静止画NR処理における加算処理としては、撮影後加算処理を採用している。このため、静止画撮影時の静止画NR処理においては、全ての参照画像を、画像メモリ部4に保持しておく必要がある。すなわち、この実施形態では、シャッターボタンが押下されると、撮像装置では、高速連写により、2枚以上の複数枚の撮像画像が取り込まれ、画像メモリ部4に格納される。
<Compression and decompression processing of captured image in still image NR processing during still image shooting>
As described above, in this embodiment, post-shooting addition processing is employed as the addition processing in the still image NR processing during still image shooting. For this reason, in the still image NR processing at the time of still image shooting, it is necessary to store all the reference images in the
撮影中加算方式では、画像メモリ部4には、最大2フレーム分の参照画像を保持するだけでよいのに対して、撮影後加算方式では、それ以上の枚数の参照画像を画像メモリ部4に保持する必要がある。そこで、この実施形態では、画像メモリ4の容量を削減するため、高速連写により取り込んだ撮像画像は、静止画コーデック部18で画像データ圧縮符号化して、画像メモリ部4に格納し、取り込んだ画像を参照画像として用いるときには、圧縮符号化されている画像データを伸長復号化して用いるようにする。
In the addition method during shooting, the
静止画撮影時の静止画NR処理の流れについては、図17および図18に示したフローチャートに概要を説明したが、この図17および図18に示したフローチャート中の幾つかのステップにおいて、画像データの圧縮符号化処理または伸長復号化処理がなされることになる。 The outline of the flow of the still image NR processing at the time of still image shooting has been described in the flowcharts shown in FIGS. 17 and 18, but the image data is processed at some steps in the flowcharts shown in FIGS. The compression encoding process or the decompression decoding process is performed.
図17のステップS1においては、シャッターボタン操作に基づく高速連写により取り込まれた複数枚の撮像画像が画像メモリ部4に書き込まれるが、その際、取り込まれた撮像画像の画像データは、静止画コーデック部18で圧縮符号化される。図37に、このときの画像データの流れを、点線で示す。
In step S1 of FIG. 17, a plurality of captured images captured by high-speed continuous shooting based on the shutter button operation are written into the
すなわち、撮像素子11からの撮像画像は、前処理部13でセンサー補正などの前処理がなされた後、RAW信号形式(カメラ信号処理を行う前のデータ形式)で、一旦、画像メモリ部4に格納される。
That is, the captured image from the
その後、撮影画像は、画像メモリ部4から短冊アクセス形式で読み出されてデータ変換部14でRAW信号からYC画素データに変換され、画像補正・解像度変換部15で画像補正、解像度変換などが行われた後、画像メモリ部4を介さずに、直接、静止画コーデック部18で、この例ではJPEG(Joint Photographic Experts Group)方式で圧縮符号化されて圧縮された状態で、画像メモリ部4に書き込まれる。したがって、ここでは、画像を圧縮する単位は、画像の1枚単位ではなく、短冊単位になる。高速連写時は、以上の手順が複数枚分、繰り返して行われて、画像メモリ部4には、当該複数枚の撮像画像データの圧縮データが格納保持される。
Thereafter, the photographed image is read from the
高速連写されて取り込まれた全ての撮像画像の圧縮符号化および画像メモリ部4への格納が終わったら、図17のステップS3の処理のうちのターゲット画像の設定処理を行う。図38に、このときの画像データの流れを示す。
When all of the captured images captured by high-speed continuous shooting are compressed and stored in the
すなわち、シャッターボタンが押下されてから最初に取り込まれた撮像画像の圧縮画像データが画像メモリ部4から短冊アクセス形式で読み出されて、静止画コーデック部19に供給され、伸長復号化される。伸長復号化された画像データは、短冊アクセス形式で基底面ターゲット画像Pbtとして、画像メモリ4に書き込まれる。
That is, compressed image data of a captured image that is first captured after the shutter button is pressed is read from the
そして、画像メモリ部4に書き込まれた、伸長復号化された基底面ターゲット画像Pbtの画像データは短冊アクセス形式で読み出されて、動き検出・動き補償部16を通じて画像重ね合わせ部17に供給され、図16に示した画像重ね合わせ部17の縮小面生成部174で縮小化される。そして、この縮小面生成部174からの縮小化されたターゲット画像が、縮小面ターゲット画像Prtとして、短冊単位で画像メモリ部4に書き込まれる。
Then, the decompressed and decoded base surface target image Pbt image data written in the
以上のようにしてターゲット画像についての処理が終了した後、図17のステップS3の処理のうちの参照画像についての設定処理がなされる。このときの画像データの流れを、図39に示す。 After the process for the target image is completed as described above, the setting process for the reference image in the process of step S3 in FIG. 17 is performed. The flow of the image data at this time is shown in FIG.
すなわち、画像メモリ4に格納されている圧縮符号化された複数枚の撮像画像のうち、ブロックマッチングの参照画像となる、2枚目の撮影画像が画像メモリ部4から短冊アクセス形式で読み出されて、静止画コーデック部18に供給され、伸長復号化される。伸長復号化された画像データは、短冊アクセス形式で基底面参照画像Pbrとして、画像メモリ4に書き込まれる。
That is, among the plurality of compression-encoded captured images stored in the
そして、画像メモリ部4に書き込まれた、伸長復号化された基底面参照画像Pbrの画像データは短冊アクセス形式で読み出されて、動き検出・動き補償部16を通じて画像重ね合わせ部17に供給され、図16に示した画像重ね合わせ部17の縮小面生成部174で縮小化される。そして、この縮小面生成部174からの縮小化された参照画像が、縮小面参照画像Prrとして、短冊アクセス形式で画像メモリ部4に書き込まれる。
The decompressed and decoded base plane reference image Pbr image data written in the
次に、伸長復号化ターゲット画像と、伸長復号化した参照画像とで動き検出・動き補償を行う。これは、図17のステップS4〜ステップS9の処理に相当する。また、図28および図29のフローチャートに示した処理に対応する。図40に、このときの画像データの流れを示す。 Next, motion detection / motion compensation is performed on the decompression-decoded target image and the decompressed and decoded reference image. This corresponds to the processing in steps S4 to S9 in FIG. Further, it corresponds to the processing shown in the flowcharts of FIGS. FIG. 40 shows the flow of image data at this time.
先ず、縮小面ブロックマッチング処理を行う。すなわち、画像メモリ部4の縮小面ターゲット画像Prtから、設定された縮小面ターゲットブロックの画像データを短冊アクセス形式で読み出して、動き検出・動き補償部16のターゲットブロックバッファ部161に格納すると共に、縮小面参照画像Prrから、縮小面ターゲットブロックについてのサーチ範囲に対応する縮小面マッチング処理範囲を短冊アクセス形式で読み出して、参照ブロックバッファ部162に格納する。
First, reduction plane block matching processing is performed. That is, the image data of the set reduction plane target block is read out from the reduction plane target image Prt of the
そして、それぞれのバッファ部161および162から、縮小面ターゲットブロックおよび縮小面参照ブロックの画素データを読み出して、マッチング処理部163で、縮小面ブロックマッチング処理を行い、設定された縮小面ターゲットブロックについての縮小面動きベクトルの検出を行い、設定された縮小面ターゲットブロックについての縮小面動きベクトルを検出する。
Then, the pixel data of the reduced surface target block and the reduced surface reference block are read out from the
次に、縮小面動きベクトルに基づいて、前述したようにして、基底面ターゲットブロックを設定すると共に、基底面サーチ範囲を設定し、画像メモリ部4の基底面ターゲット画像Pbtから、設定された基底面ターゲットブロックを短冊アクセス形式で読み出してターゲットブロックバッファ161に格納すると共に、設定された基底面サーチ範囲に対応する基底面マッチング処理範囲を画像メモリ部4の基底面参照画像Pbrから短冊アクセス形式で読み出し、参照ブロックバッファ部162に格納する。
Next, based on the reduced plane motion vector, as described above, the base plane target block is set, the base plane search range is set, and the base set from the base plane target image Pbt of the
そして、それぞれのバッファ部161および162から、基底面ターゲットブロックおよび基底面参照ブロックの画素データを読み出して、マッチング処理部163で、基底面ブロックマッチング処理を行い、動きベクトル算出部164で、設定された基底面ターゲットブロックについてのサブピクセル精度の基底面動きベクトルの検出を行う。
Then, pixel data of the basal plane target block and the basal plane reference block are read from the
そして、動き検出・動き補償部16は、検出された基底面動きベクトルに基づいて、動き補償ブロックを参照ブロックバッファ部162の基底面参照画像から読み出し、基底面ターゲットブロックと共に、画像重ね合わせ部17に供給する。画像重ね合わせ部17では、ブロック単位の画像の重ね合わせを行い、その結果のブロック単位の基底面NR画像Pbnrを、短冊アクセス形式で画像メモリ部4に貼る。また、画像重ね合わせ部17は、その縮小面生成部174で生成した縮小面NR画像Prnrも、画像メモリ部4に貼る。
Then, the motion detection /
以上の動作を、ターゲット画像の全てのターゲットブロックについて繰り返し行い、全てのターゲットブロックについてのブロックマッチングが終了したら、3枚目の画像を参照画像とすると共に、基底面NR画像Pbnrおよび縮小面NR画像Prnrを、ターゲット画像として(図18のステップS14)、上述と同様のブロックマッチング処理を繰り返し行う(図17のステップS4〜図18のステップS14)。そして、取り込んだ全ての画像についての処理が終了すると、最終的に得られる基底面NR画像Pbnrを、静止画コーデック部18で圧縮符号化して、記録再生装置部5の記録媒体に記録するようにする。
The above operation is repeated for all target blocks of the target image, and when block matching for all target blocks is completed, the third image is used as a reference image, and the base NR image Pbnr and reduced surface NR image Prnr is used as a target image (step S14 in FIG. 18), and the same block matching process as described above is repeated (step S4 in FIG. 17 to step S14 in FIG. 18). When all the captured images have been processed, the finally obtained base NR image Pbnr is compressed and encoded by the still
上述したように、この実施形態では、ターゲット画像と参照画像を重ね合わせたNR画像は、次の重ね合わせを行うときのターゲット画像になる。また、基底面ターゲットブロックは、ブロックマッチング処理が終わった後は、必要のないデータになる。 As described above, in this embodiment, the NR image obtained by superimposing the target image and the reference image becomes a target image for the next superposition. In addition, the basal plane target block becomes unnecessary data after the block matching process is completed.
以上の特徴から、この実施形態において、画像重ね合わせ部17では、基底面ターゲットブロックと動き補償ブロックを重ね合わせたNR済みのブロックを、もとの基底面ターゲットブロックのあったアドレスに上書きしている。
Due to the above characteristics, in this embodiment, the
例えば、図41(A),(B)に示すように、今、短冊T5のブロックB4をターゲットブロックとしたブロックマッチング処理をしているときは、短冊T0から短冊T4、および、ブロックB0からブロックB3は、全て、NR済みのブロックということになる。 For example, as shown in FIGS. 41A and 41B, when block matching processing is performed using the block B4 of the strip T5 as a target block, the strip T0 to the strip T4 and the block B0 to the block B0. B3 is all NR completed blocks.
以上のようにして、画像補正・解像度変換部15で短冊アクセス形式のメモリアクセスを行い、静止画についての圧縮符号化の処理も短冊アクセス形式でアクセスすることで、画像補正・解像度変換部15から静止画コーデック部18に、画像メモリ部4を介さず、直接、画像データを転送することができ、高速連写画像を効率よく圧縮符号化して、画像メモリ部4に格納することができる。
As described above, the image correction /
<画像メモリ容量の削減>
次に、参照画像の伸長復号化時の、画像メモリ容量の削減について説明する。
<Reduction of image memory capacity>
Next, reduction of the image memory capacity at the time of decompression decoding of the reference image will be described.
この実施形態における静止画撮影時の静止画NR処理時においては、画像メモリ部4に圧縮符号化して取り込んだ画像について、ターゲット画像は全て伸長復号化するが、図42の画像データフローに示すように、参照画像については、マッチング処理に使用する短冊単位の画像データだけを伸長復号化することで、画像メモリ容量を削減している。すなわち、画像メモリ部4における伸長復号化された参照画像(基底面および縮小面)を格納する画像メモリの容量を、短冊単位に画像データを伸長復号化することにより、削減している。
At the time of still image NR processing at the time of still image shooting in this embodiment, the target image is all decompressed and decoded for the image captured by compression encoding in the
このことについて、例を挙げて説明する。例えば、基底面ターゲット画像は、図43(A)に示すように、水平方向が64画素の短冊T0から短冊T9にまで分割されており、基底面参照画像は、図43(B)に示すように、同様に水平方向が64画素の短冊R0から短冊R9にまで分割されているとする。 This will be described with an example. For example, the basal plane target image is divided into strips T0 to T9 having 64 pixels in the horizontal direction as shown in FIG. 43 (A), and the basal plane reference image is as shown in FIG. 43 (B). Similarly, suppose that the horizontal direction is divided into strips R0 to R9 having 64 pixels.
今、短冊T4の中のターゲットブロックについてブロックマッチングを行っているとすると、基底面参照画像の短冊R0〜R9のうち、マッチング処理範囲としてアクセスする可能性のある短冊は、短冊R4を中心として、いくつかに限定することができる。 Now, assuming that block matching is performed for the target block in the strip T4, among the strips R0 to R9 of the basal plane reference image, the strip that may be accessed as the matching processing range is centered on the strip R4. It can be limited to several.
例えば、縮小倍率が1/4の場合を例にとると、縮小化して水平方向に44画素のマッチング処理範囲(図33(B)参照)を取るためには、基底面参照画像において、水平方向に176画素の画像データが必要である。したがって、図43(C)から分かるように、基底面参照画像は、図43(B)において塗りを付して示すように、短冊R4を中心に左右に、左右それぞれ2つずつの短冊R1,R2および短冊R3,R4が必要であり、この短冊R2〜R6の5つ分だけを伸長復号化すれば良いことになる。 For example, in the case where the reduction magnification is 1/4, in order to reduce and obtain a 44 pixel matching processing range in the horizontal direction (see FIG. 33B), in the basal plane reference image, the horizontal direction 176 pixel image data is required. Therefore, as can be seen from FIG. 43 (C), as shown in FIG. 43 (B), the basal plane reference image has two strips R1, two on each of the left and right sides of the strip R4. R2 and strips R3 and R4 are necessary, and only five strips R2 to R6 need to be decompressed and decoded.
次に、短冊T4に含まれるターゲットブロックのマッチング処理が全て終わり、図44(A)に示すように、短冊T5に含まれるターゲットブロックのマッチング処理に入った場合について考える。このとき、マッチング処理範囲を取るためには、図44(B)に示すように、短冊R5を中心に左右に2つずつの短冊R3〜R7が必要である。すなわち、短冊R3〜R6は、短冊T4に含まれるターゲットブロックのマッチング処理時に画像メモリ部4に既に格納されているので、新たに短冊R7だけを伸長復号化すれば良いことになる。また、同時に、短冊R2は不要になる。
Next, a case will be considered in which the matching process for the target block included in the strip T4 is completed and the matching process for the target block included in the strip T5 is entered as shown in FIG. At this time, in order to obtain the matching processing range, as shown in FIG. 44B, two strips R3 to R7 are required on the left and right sides of the strip R5. That is, since the strips R3 to R6 are already stored in the
そこで、この実施形態では、短冊R7を伸長復号化したとき、画像メモリ部4の参照画像用メモリ上で、短冊R2があったアドレスに、伸長復号化した短冊R7を上書きするようにする。これにより、画像メモリ部4の参照画像用メモリ上で、伸長復号化されている参照画像データは、常に短冊5つ分だけになり、画像メモリ部4の参照画像用メモリ、つまり、画像メモリ部4のワーク領域を効果的に節約することが可能である。
Therefore, in this embodiment, when the strip R7 is decompressed and decoded, the striped and decrypted strip R7 is overwritten on the reference image memory of the
上記方法で参照画像データの復号化を行った場合、図45(A)および(B)に示すように、画像メモリ部4の参照画像用メモリ上のアドレスの並びが変わることになる。すなわち、短冊T4内のターゲットブロックに対するものとして、参照画像用メモリの参照画像が、図45(A)に示すように、短冊R4が中心だったときは、画像データは、短冊R2から順番に画像メモリ部の参照画像用メモリに格納されているため、短冊R4の基準座標Sc4から左方向の画素を参照する場合は、基準座標Sc4のアドレスから所望の値を引き算し、基準座標Sc4から右方向の画素を参照する場合は、基準座標Sc4のアドレスに所望の値を足し算することになる。
When the reference image data is decoded by the above method, the arrangement of addresses on the reference image memory in the
一方、短冊T5内のターゲットブロックに対するものとして、参照画像用メモリの参照画像が、図45(B)に示すように、短冊R5が中心のときは、右方向に128画素以内の画素を参照する場合は、短冊R5の基準座標Sc5のアドレスに所望の値を足し算し、右方向に129画素以上の画素を参照する場合は、基準座標Sc5のアドレスに所望の値を足し算した後で、合計短冊幅分のアドレス値を引き算する必要がある。 On the other hand, as for the target block in the strip T5, when the reference image in the reference image memory is centered on the strip R5 as shown in FIG. 45B, the pixels within 128 pixels are referred to in the right direction. In this case, the desired value is added to the address of the reference coordinate Sc5 of the strip R5, and when referring to the pixel of 129 pixels or more in the right direction, the desired value is added to the address of the reference coordinate Sc5, and then the total strip It is necessary to subtract the address value for the width.
なお、短冊R0〜R9のそれぞれの基準座標Sc0〜Sc9は、参照画像用メモリをアクセスする際のメモリアドレスポインターの例である。メモリアドレスポインターは、図45の例のようなアドレス位置に限られるものではない。 The reference coordinates Sc0 to Sc9 of the strips R0 to R9 are examples of memory address pointers when accessing the reference image memory. The memory address pointer is not limited to the address position as in the example of FIG.
以上のように、静止画についての圧縮符号化の単位も短冊形式にすることで、ブロックマッチング処理に必要な範囲だけ復号化することができ、画像メモリ部4のワーク領域を節約することができる。さらに、画像メモリ上の不要な参照画像の短冊のアドレスに、次に使用する参照画像の短冊を復号化して上書きすることで、ワーク領域上の復号化された参照画像のサイズを、常に一定にすることができる。
As described above, the unit of compression encoding for still images is also in the strip format, so that only the range necessary for block matching processing can be decoded, and the work area of the
なお、図43および図44を用いて説明した例は、参照画像において設定されるマッチング処理範囲の水平方向のサイズSAが、圧縮単位である短冊の水平方向のサイズSB以上(SA>SB)である場合である。 In the example described with reference to FIGS. 43 and 44, the horizontal size SA of the matching processing range set in the reference image is equal to or larger than the horizontal size SB of the strip as a compression unit (SA> SB). This is the case.
そして、マッチング処理範囲の水平方向のサイズが、短冊の水平方向のサイズの整数倍で、かつ、マッチング処理範囲と短冊の区切り位置とが一致していれば、無駄なデータアクセスがなくなり、効率はさらに上がる。 If the horizontal size of the matching processing range is an integral multiple of the horizontal size of the strip, and the matching processing range matches the strip separation position, useless data access is eliminated and efficiency is improved. Go up further.
もしも、参照画像において設定されるマッチング処理範囲の水平方向のサイズが、圧縮単位である短冊の水平方向のサイズよりも小さい場合には、マッチング処理範囲が、1つの短冊に含まれる大きさであって、1つの短冊に含まれていれば、復号化するのは当該1つの短冊でよく、また、マッチング処理範囲が2つの短冊に跨る場合には、その2つの短冊を復号化すればよい。 If the horizontal size of the matching processing range set in the reference image is smaller than the horizontal size of the strip that is the compression unit, the matching processing range is the size included in one strip. If it is included in one strip, the one strip may be decrypted, and if the matching processing range spans two strips, the two strips may be decrypted.
その場合でも、ターゲットブロックの位置が変化して、マッチング処理範囲の位置が変わったときであって、マッチング処理範囲が2つの短冊に跨る場合になったときには、新たにマッチング処理範囲が跨ることになった短冊のみを復号化すればよいのは、上述の例と同様である。 Even in such a case, when the position of the target block changes and the position of the matching processing range changes, and the matching processing range spans two strips, the matching processing range is newly straddled. It is the same as in the above example that only the strips that have become necessary should be decrypted.
[動画NR処理時における効率的なメモリアクセス]
前述したように、静止画NR処理は多少処理時間がかかっても、ノイズの取れた綺麗な画像が求められるのに対して、動画NR処理では、精度よりもリアルタイム性、すなわちスピードが要求される。
[Efficient memory access during video NR processing]
As described above, the still image NR processing requires a clean image with no noise even if it takes some processing time, whereas the moving image NR processing requires real-time performance, that is, speed rather than accuracy. .
動画NR処理動作の流れは、前述した図19に示した通りであるが、この動画NR処理時における画像データの流れは、図46および図47に示す通りとなる。この図46および図47を参照しながら、動画NR処理時における画像データの流れを説明する。 The flow of the moving image NR processing operation is as shown in FIG. 19, and the flow of image data during the moving image NR processing is as shown in FIGS. The flow of image data during the moving image NR process will be described with reference to FIGS.
動画NR処理の場合は、データ変換部14からのYC画像データは、画像補正・解像度変換部15で水平方向の補正がなされた後、画像メモリ部4に、短冊アクセス形式で書き込まれる。そして、画像補正・解像度変換部15は、水平方向の補正画像を画像メモリ部4から短冊アクセス形式で読み出し、垂直方向の補正処理をした後、短冊アクセス形式で、動き検出・動き補償部16へ、リアルタイムにターゲットブロックを送る(図19のステップS21)。
In the case of moving image NR processing, YC image data from the
動き検出・動き補償部16は、画像補正・解像度変換部15から送られてきたターゲットブロックをターゲットブロックバッファ部161に格納すると共に、図47に示すように、このターゲットブロックに応じて、ブロックマッチング処理範囲を画像メモリ部4に格納されている参照画像(最初は重ね合わせ無しの画像であるが、2枚目以降は、NR画像)から読み出して、参照ブロックバッファ部162に格納する(図19のステップS23)。
The motion detection /
そして、動き検出・動き補償部16は、ターゲットブロックバッファ部161からのターゲットブロックと、当該ブロックマッチング処理範囲から参照ブロックとを読み出して、前述した階層化ブロックマッチング処理をして、動きベクトル検出および動き補償ブロックの生成を行い、動き補償ブロックおよびターゲットブロックは、画像重ね合わせ部17に供給する(図19のステップS24〜ステップS26)。
Then, the motion detection /
画像重ね合わせ部17は、受け取ったターゲットブロックと動き補償ブロックとを重ね合わせてゆく(図19のステップS27)。そして、画像重ね合わせ部17は、図46に示すように、画像重ね合わせをしたNR済みの画像を画像メモリ部4に貼る(図19のステップS28)。
The
図47に示すように、画像メモリ部4に貼られたNR画像は、次のフレーム(1フレーム前のNR画像となっている)で、動画コーデック部19に読み込まれ、圧縮された後、記録再生装置部5の記録媒体に保存されると共に、前記次のフレームでの参照画像として用いられる。また、画像メモリ部4に貼られたNR画像(1フレーム前のNR画像)は、同時に、NTSCエンコーダ20からも読み込まれ、モニターディスプレイ6に対するモニター出力も行われる。
As shown in FIG. 47, the NR image pasted on the
動画NR処理時においては、以上の処理が、撮影画像毎に繰り返される。 In the moving image NR processing, the above processing is repeated for each captured image.
なお、ここでは、参照画像は1フレーム分としたが、図47に示すように、参照画像を複数フレーム保持しておき、より相関性の高い画像を使用しても良い。 Here, the reference image is one frame, but as shown in FIG. 47, a plurality of reference images may be held and an image with higher correlation may be used.
また、動画NR処理では、リアルタイム性が重視されるため、静止画NR処理のように、縮小面ターゲット画像を作って画像メモリ部4に格納することはせずに、図14に示したターゲットブロックバッファ部161内の縮小化処理部1613で、縮小面ターゲットブロックを生成して、そのまま縮小面バッファ1612に格納している。
Further, in the moving image NR process, real-time characteristics are important. Therefore, unlike the still image NR process, the reduced surface target image is not created and stored in the
<動画NR処理時のメモリアクセス時のデータフォーマット>
静止画NR処理時においては、画像メモリ部4に対するメモリアクセス時のデータフォーマットは、すべて、64×1フォーマットを垂直方向に連続して行う短冊アクセス形式を採用している。
<Data format for memory access during video NR processing>
At the time of still image NR processing, the data access format for the memory access to the
しかしながら、短冊アクセス形式は、短冊の水平方向の幅(水平方向の画素数)より少ない水平方向の画素数のブロックを読み出すときは、バースト長が16バースト未満になり、この実施形態の撮像装置で最も効率の良いデータ転送(16バースト)を使うことができなくなり、効率が悪化する。 However, in the strip access format, when a block having a horizontal number of pixels smaller than the horizontal width of the strip (the number of pixels in the horizontal direction) is read, the burst length becomes less than 16 bursts. The most efficient data transfer (16 bursts) cannot be used, and the efficiency deteriorates.
また、短冊の水平方向の幅より大きい水平方向の画素数のブロックを読み出すときは、水平方向に隣り合う2個の短冊の境界の左右で、二つの転送に分けなくてはならず、さらに、2個の短冊の境界の左右で大きく離れたアドレスになってしまうので、かえってアドレス処理が複雑になるという問題がある。 Also, when reading a block with a horizontal pixel count larger than the horizontal width of the strip, it must be divided into two transfers on the left and right of the border between two strips adjacent in the horizontal direction, Since the addresses are far apart on the left and right of the boundary between the two strips, there is a problem that the address processing is rather complicated.
さらに、階層化マッチング処理における基底面マッチング処理範囲は、縮小面マッチングで検出された縮小面動きベクトルに基づいて定まるものであって、固定の領域ではないため、複数個の短冊に跨った範囲となることがある。このため、基底面マッチング処理範囲を画像メモリ部4に記憶されている参照画像(NR画像)から読み出すときに、上述と同様に、当該基底面マッチング処理範囲が跨る隣り合う2個の短冊の境界の左右で、二つの転送に分けなくてはならず、さらに、2個の短冊の境界の左右で大きく離れたアドレスになってしまうので、かえってアドレス処理が複雑になるという問題がある。
Furthermore, the basal plane matching process range in the hierarchical matching process is determined based on the reduced plane motion vector detected by the reduced plane matching, and is not a fixed area. May be. For this reason, when reading the basal plane matching processing range from the reference image (NR image) stored in the
そして、二つに分けた短冊のそれぞれに含まれる画素ブロックの大きさが、短冊の水平方向の幅よりも少なくなり、上述したように、短冊アクセス形式では、アクセス効率が悪くなり、動画のように、リアルタイムの高速処理が要求される用途には、不向きであるという問題がある。 Then, the size of the pixel block contained in each of the two divided strips is smaller than the horizontal width of the strip, and as described above, the access efficiency is deteriorated in the strip access format, and it looks like a movie. In addition, there is a problem that it is not suitable for applications requiring high-speed real-time processing.
以上のような問題に対して、この実施形態では、動画NR処理時の参照画像アクセス用のために、複数ライン×複数画素からなる矩形領域のブロック単位の画素データのメモリアクセス方式を用意するようにしている。 In order to deal with the above-described problems, in this embodiment, a memory access method for pixel data in units of blocks in a rectangular area composed of a plurality of lines and a plurality of pixels is prepared for accessing a reference image at the time of moving image NR processing. I have to.
この実施形態では、動画NR処理時の参照画像アクセス用の1つとして、上述したバースト転送可能な画素数である64画素を考慮して、図48(A)に示すように、画像(画面)を最大バースト転送(64画素)単位である、横×縦=8画素×8ラインのブロックに分割して、画像メモリ部4に書き込み/読み出しするブロックアクセス形式を用いるようにしている。この8ライン×8画素からなるブロック単位のブロックアクセス形式を、以下、8×8フォーマットと称することとする。
In this embodiment, as one of the reference image accesses at the time of moving image NR processing, an image (screen) as shown in FIG. 48A is considered in consideration of the above-described 64 pixels that can be burst transferred. Is divided into blocks of horizontal × vertical = 8 pixels × 8 lines, which is a unit of maximum burst transfer (64 pixels), and a block access format for writing / reading to / from the
この8×8フォーマットは、図48(B)に示すように、水平方向の4画素を1バースト転送の単位とし、水平方向の8画素を2回のバースト転送(2バースト)で転送し、当該水平方向の8画素のバースト転送が終了すると、次のラインの8画素を、同様にして、2バーストで、転送する。そして、最大バースト長である16バーストで、64画素が1回で転送される。 In the 8 × 8 format, as shown in FIG. 48B, four horizontal pixels are used as one burst transfer unit, and eight horizontal pixels are transferred in two burst transfers (two bursts). When the burst transfer of 8 pixels in the horizontal direction is completed, the 8 pixels of the next line are similarly transferred in 2 bursts. Then, 64 pixels are transferred at a time in 16 bursts, which is the maximum burst length.
この8×8フォーマットのブロックアクセス形式の先頭アドレスをAD1を初期アドレスとすると、図48(B)に示すように、4画素単位のアドレスAD2〜AD16が自動的に定まり、連続した16バーストで、8×8フォーマットのメモリアクセスができる。メモリコントローラ8は、この8×8フォーマットのメモリアクセスのためのアドレス生成部を備えている。
Assuming that AD1 is the initial address of the block access format in the 8 × 8 format, as shown in FIG. 48B, addresses AD2 to AD16 in units of four pixels are automatically determined, and in 16 consecutive bursts, Memory access in 8 × 8 format is possible. The
画像メモリ部4のフレームメモリ上で、8×8フォーマットの先頭アドレスAD1が指定されると、メモリコントローラ8は、前記アドレス生成部を用いて、8×8フォーマットのメモリアクセスのためのアドレスAD1〜AD16を計算し、8×8フォーマットのメモリアクセスを実行する。
When the start address AD1 in the 8 × 8 format is designated on the frame memory of the
8×8フォーマットは、図48(B)に示すように、基本的には、64画素(16バースト)単位でのアクセスとなり、この実施形態の撮像装置としては、最も効率がよい。しかし、後述するように、16バーストは、最長バースト長であり、それよりも少ないバースト長とすることもできる。その場合には、実質的には、8×8フォーマットとはならないが、例えば、8画素×4ラインの場合には、半分の8バーストで画像データの転送ができる。
As shown in FIG. 48B, the 8 × 8 format basically provides access in units of 64 pixels (16 bursts), and is the most efficient as the imaging apparatus of this embodiment. However, as will be described later, 16 bursts is the longest burst length, and may be shorter than that. In that case, the 8 × 8 format is not practically realized. However, for example, in the case of 8 pixels × 4 lines, image data can be transferred in
なお、水平方向および垂直方向の画像データが8画素で割り切れない場合は、図48で、影線を付して示すように、水平方向の右端と垂直方向の下端に、ダミー領域152を設けて、このダミー領域152に、例えば黒や白の画素データをダミーデータとして付加し、水平方向および垂直方向の画サイズが、8の倍数になるようにしている。
If the horizontal and vertical image data cannot be divided by 8 pixels,
8×8フォーマットのメモリアクセスにより、メモリアクセスが8×8画素でアクセスできるということは、縮小面マッチング処理範囲および基底面マッチング処理範囲は、画像メモリ部4から、すべて、8×8の画素ブロック単位で読み込むことができる。したがって、この実施形態の撮像装置で、最も効率の良いデータ転送(16バースト)のみでバスアクセスすることが可能になり、バス効率は最大になる。
The fact that the memory access can be accessed with 8 × 8 pixels by the 8 × 8 format memory access means that the reduction plane matching processing range and the base plane matching processing range are all 8 × 8 pixel blocks from the
なお、この8×8フォーマットは、16×16画素、16×8画素、など、8×8画素の倍数にすれば、それらの複数画素単位でのアクセスにも適用できる。 The 8 × 8 format can be applied to access in units of a plurality of pixels as long as it is a multiple of 8 × 8 pixels, such as 16 × 16 pixels, 16 × 8 pixels, or the like.
また、バスの最も効率の良いデータ転送単位(最大バースト長の単位)は、上述の例では64画素であるが、最も効率の良いデータ転送単位は、1バーストで転送可能な画素数pと、最大バースト長(最大連続バースト回数)qとにより決まるp×q画素となる。そして、その画素数(p×q)により、画像メモリ部4に書き込むブロックアクセス形式のフォーマットを決定すればよい。そして、縮小面マッチング処理範囲、基底面マッチング処理範囲が、そのブロックフォーマットの水平方向および垂直方向の倍数に近いサイズになる場合が、最もバス転送効率が良い。
The most efficient data transfer unit (unit of maximum burst length) of the bus is 64 pixels in the above example, but the most efficient data transfer unit is the number of pixels p that can be transferred in one burst, and It becomes p × q pixels determined by the maximum burst length (maximum number of continuous bursts) q. Then, the block access format to be written in the
図33に示した縮小面マッチング処理範囲および縮小倍率が1/2のときの基底面マッチング処理範囲を例に、64×1フォーマットの短冊アクセス形式の場合と比較を行う。 The reduction plane matching processing range and the base plane matching processing range when the reduction ratio is 1/2 shown in FIG. 33 will be compared with the case of the strip access format of the 64 × 1 format.
縮小面マッチング処理範囲143は、図33(B)に示すように、この例では、44画素×24ラインとされる。この縮小面マッチング処理範囲143を、64×1フォーマットでアクセスした場合、図49の上側に示すように、4画素×11バーストを、垂直方向に24回繰り返す転送のアクセスが必要になる。
As shown in FIG. 33B, the reduction plane
これに対して、同じ縮小面マッチング処理範囲143を、8×8フォーマットでアクセスする場合は、図50に示すように、縮小面参照ベクトル(0,0)の縮小面参照ブロックを中心に、44画素×24ラインの縮小面マッチング処理範囲143が決定される。縮小面参照ベクトル(0,0)の縮小面参照ブロックとは、縮小面ターゲットブロックと同じ座標の縮小面参照ブロックということである。この場合、図33(A)に示したように、縮小面ターゲットブロックは、必ず、8画素単位、8ライン単位ずつしか設定されない。
On the other hand, when the same reduced plane
縮小面マッチング処理範囲143の垂直方向は、24ラインであるので、図50に示すように、垂直方向のサーチ範囲を、8×8のブロックサイズの倍数にすれば、垂直方向は8×8フォーマットで無駄なくアクセスすることができる。一方、縮小面マッチング処理範囲143の水平方向は44画素であるので、8の倍数とはならず、このため、図50に示した例では、水平方向を56画素として、8×8フォーマットでは、水平方向の両側に6画素ずつ、黒または白などからなるダミーの画像データ153を挿入するようにする。
Since the vertical direction of the reduction plane
この図50から、ダミーの画像データ153が左右6画素分あるものの、64×1フォーマットでは24回転送が必要であるのに対して、8×8フォーマットであれば、21回の転送で読み込むことができることが分かる。さらに、8×8フォーマットであれば、すべての転送が、この実施形態の撮像装置で最も効率の良いデータ転送(16バースト)になっており、バス効率も向上している。
From FIG. 50, although the
また、縮小倍率が1/2の場合の基底面マッチング処理範囲144は、図33(C)に示すように、20画素×20ラインとなるが、この基底面マッチング処理範囲144をアクセスする場合には、図49の下側に示すように、64×1フォーマットの場合、4画素×5バーストを、垂直方向に20回繰り返す転送のアクセスが必要になる。
In addition, as shown in FIG. 33C, the base plane matching
これに対して、8×8フォーマットの場合は、基底面マッチング処理範囲144としては、基底面参照ベクトル(0,0)の基底面参照ブロック142を中心に、20画素×20ラインのマッチング処理範囲が決定される。基底面マッチング処理範囲144は、縮小面マッチングで算出された縮小面動きベクトルによって決まるため、1画素単位でいろいろな組み合わせが考えられる。
On the other hand, in the case of the 8 × 8 format, the basal plane
例えば、最も効率の良いのは、20画素×20ラインの基底面マッチング処理範囲144が、8×8のブロックに対して、図51に示すように9ブロック分に割り当てられる場合である。この場合、図51に示すように、20画素×20ラインの基底面マッチング処理範囲144には、水平方向の端部および垂直方向の端部に8画素および8ラインに満たない領域が存在するので、そこにダミー画素データ153を挿入し、8×8フォーマットの4画素×16バーストを、9回繰り返す転送のアクセスをすることで、当該20画素×20ラインの基底面マッチング処理範囲144の画像データのアクセスができる。
For example, the most efficient case is when the base pixel matching
しかし、図52に示すように、20画素×20ラインの基底面マッチング処理範囲144の垂直方向の端部にはダミー画像データ153を挿入せずに、当該垂直方向の端部においては、バースト回数を転送すべきデータ(4ライン分)に合わせたものとして、4画素×8バーストを、3繰り返す転送のアクセスとすることもできる。この場合には、図52に示す例においては、8×8フォーマットの4画素×16バーストを6回繰り返す転送と、4画素×8バーストを3回繰り返す転送との、合計9回の転送で、20画素×20ラインの基底面マッチング処理範囲144の画像データのアクセスができる。
However, as shown in FIG. 52, the
逆に、最も効率の悪い例は、20画素×20ラインの基底面マッチング処理範囲144が、図53に示すように、8×8のブロックの16ブロック分に亘る場合である。この場合、図53に示すように、20画素×20ラインの基底面マッチング処理範囲144には、水平方向の端部および垂直方向の端部に8画素および8ラインに満たない領域が存在するので、そこにダミー画素データ153を挿入し、8×8フォーマットの4画素×16バーストを、16回繰り返す転送のアクセスをすることで、当該20画素×20ラインの基底面マッチング処理範囲144の画像データのアクセスができる。
On the other hand, the most inefficient example is a case where the basal plane
しかし、図54に示すように、20画素×20ラインの基底面マッチング処理範囲144の垂直方向の端部にはダミー画像データ153を挿入せずに、当該垂直方向の上下端部においては、バースト回数を転送すべきデータ(それぞれ2ライン分)に合わせたものとして、4画素×4バーストを、合計8繰り返す転送のアクセスとすることもできる。この場合には、図54に示す例においては、8×8フォーマットの4画素×16バーストを8回繰り返す転送と、4画素×4バーストを8回繰り返す転送との、合計16回の転送で、基底面マッチング処理範囲144の画像データのアクセスができる。
However, as shown in FIG. 54, the
したがって、20画素×20ラインの基底面マッチング処理範囲144の画像データの画像メモリ部4に対するアクセスは、64×1フォーマットでは20回転送が必要であるのに対して、8×8フォーマットであれば、最短で9転送、最長で16転送で良い。さらに、8×8フォーマットであれば、転送の半分以上が、この例の撮像装置システムで最も効率の良いデータ転送(16バースト)になっており、バス効率も向上している。
Therefore, the access to the
また、この実施形態では、更にバス帯域を改善するために、動画NR処理時の参照画像アクセス用の他の1つとして、図55(A)に示すように、画像(画面)を最大バースト転送(64画素)の1/4単位である4画素×4ラインのブロックに分割して、画像メモリ部に書き込み/読み出しするブロックアクセス形式を選択することもできるように構成されている。この4ライン×4画素からなるブロック単位のブロックアクセス形式を、以下、4×4フォーマットと称することとする。 Further, in this embodiment, in order to further improve the bus bandwidth, as another one for accessing the reference image at the time of moving image NR processing, as shown in FIG. The block access format for writing / reading to / from the image memory unit can be selected by dividing into blocks of 4 pixels × 4 lines, which are 1/4 units of (64 pixels). This block access format in units of blocks consisting of 4 lines × 4 pixels is hereinafter referred to as a 4 × 4 format.
この4×4フォーマットは、図55(B)に示すように、水平方向の4画素を1バースト転送の単位とし、水平方向の4画素を1回のバースト転送(1バースト)で転送し、当該水平方向の4画素のバースト転送が終了すると、次のラインの4画素を、同様にして、1バーストで転送し、4バーストで4×4フォーマットの画像データが転送できる。そして、4×4フォーマットの場合、図55(B)に示すように、4画素×4ライン=16画素分からなるブロックを水平方向に4回(4ブロック分)連続でアクセスすることで、64画素が1回で転送される。 In this 4 × 4 format, as shown in FIG. 55 (B), four horizontal pixels are used as a unit of one burst transfer, and four horizontal pixels are transferred in one burst transfer (one burst). When the burst transfer of 4 pixels in the horizontal direction is completed, the 4 pixels of the next line can be similarly transferred in 1 burst, and image data of 4 × 4 format can be transferred in 4 bursts. In the case of the 4 × 4 format, as shown in FIG. 55 (B), a block composed of 4 pixels × 4 lines = 16 pixels is continuously accessed four times in the horizontal direction (for 4 blocks) to obtain 64 pixels. Are transferred once.
つまり、4×4フォーマットの画像データは、4バーストで転送可能であるので、最大バースト長である16バーストで、4画素×4ラインのブロックの水平方向の4個を連続してアクセスすることができ、この4個の4画素×4ラインのブロック分の64画素が1回で転送される。 In other words, since 4 × 4 format image data can be transferred in 4 bursts, it is possible to continuously access 4 blocks in a horizontal direction of 4 pixels × 4 lines with a maximum burst length of 16 bursts. The 64 pixels for the block of four 4 pixels × 4 lines can be transferred at one time.
この4×4フォーマットによって64画素(最大バースト長である16バースト)を1回で転送する場合、図55(B)に示すように、4画素×4ラインのブロックの先頭アドレスをAD1を初期アドレスとすると、4画素単位のアドレスAD2〜AD16が、図示のように定まり、連続した16バーストで、4×4フォーマットによる64画素単位のメモリアクセスができる。 When 64 pixels (16 bursts, which is the maximum burst length) are transferred at a time using this 4 × 4 format, the start address of the block of 4 pixels × 4 lines is set to the initial address AD1, as shown in FIG. Then, the addresses AD2 to AD16 in units of 4 pixels are determined as shown in the figure, and the memory access in units of 64 pixels in the 4 × 4 format can be performed with continuous 16 bursts.
4×4フォーマットは、図55(B)に示すように、64画素(16バースト)単位でアクセスするときが、最も効率がよい。しかし、水平方向の4ブロック以下の単位でアクセスする必要がある場合もある。例えば水平方向の2ブロック(32画素)単位でのアクセスでは、図55(B)において、4画素単位のアドレスAD1〜AD8が定められて、連続した8バーストで32画素単位のアクセスができる。4画素×4ラインのブロックの1ブロック(16画素)単位、3ブロック(24画素)単位なども同様にしてアクセスができる。メモリコントローラ8は、この4×4フォーマットのメモリアクセスのためのアドレス生成部を備えている。
As shown in FIG. 55B, the 4 × 4 format is most efficient when accessed in units of 64 pixels (16 bursts). However, it may be necessary to access in units of 4 blocks or less in the horizontal direction. For example, in access in units of 2 blocks (32 pixels) in the horizontal direction, addresses AD1 to AD8 in units of 4 pixels are determined in FIG. 55B, and access in units of 32 pixels can be performed in 8 consecutive bursts. A block of 4 pixels × 4 lines, 1 block (16 pixels) unit, 3 blocks (24 pixels) unit, etc. can be accessed in the same manner. The
画像メモリ部4のフレームメモリ上で、4×4フォーマットの先頭アドレスAD1と、水平方向の4画素×4ラインのブロック数が指定されると、メモリコントローラ8は、前記アドレス生成部を用いて、4×4フォーマットのメモリアクセスのためのアドレスAD2以降を計算し、4×4フォーマットによるメモリアクセスを実行することができる。
When the start address AD1 of 4 × 4 format and the number of blocks of 4 pixels × 4 lines in the horizontal direction are specified on the frame memory of the
なお、前述の8×8フォーマットの場合と同様に、画像データが4画素で割り切れない場合は、図55(A)に示すように、水平方向の右端および垂直方向の下端にダミー領域154を設けて、水平方向および垂直方向のサイズが、4の倍数になるようにしている。
As in the case of the 8 × 8 format described above, when the image data is not divisible by 4 pixels, a
この4×4フォーマットであれば、前述した、基底面マッチング処理範囲(20画素×20ライン)144のバスアクセスは、8×8フォーマットよりもさらに改善する。 With this 4 × 4 format, the above-described bus access in the base plane matching processing range (20 pixels × 20 lines) 144 is further improved over the 8 × 8 format.
4画素×4ラインのブロック単位に対して、最も効率の良いのは、20画素×20ラインの基底面マッチング処理範囲144が、図56に示すように、丁度、水平方向の5ブロック×垂直方向の5ブロック=25ブロック分に割り当てられる場合である。
For the block unit of 4 pixels × 4 lines, the most efficient is that the base plane matching
この25ブロックをアクセスするには、水平方向の4ブロックの5ライン分と、水平方向の1ブロックの5ライン分とに分けることができ、図55(B)の最大バースト長による4ブロック単位の4画素×16バーストが5転送、1ブロック単位の4画素×4バーストが5転送、の合計10転送でよい。 In order to access these 25 blocks, it can be divided into 5 blocks of 4 blocks in the horizontal direction and 5 lines of 1 block in the horizontal direction. A total of 10 transfers, 5 transfers of 4 pixels × 16 bursts, 5 transfers of 4 pixels × 4 bursts per block, may be used.
逆に、最も効率の悪い例は、20画素×20ラインの基底面マッチング処理範囲144が、図57に示すように、4画素×4ラインのブロックの水平方向の6ブロック×垂直方向の6ブロック=36ブロック分に亘る場合である。この場合、図57に示すように、20画素×20ラインの基底面マッチング処理範囲144には、水平方向の左右端部および垂直方向の上下端部に4画素および4ラインに満たない領域が存在するので、そこにダミー画素データ154を挿入している。
On the other hand, the worst example is that the base plane matching
この36ブロックを4×4フォーマットでアクセスするには、水平方向の4ブロックの6ライン分と、水平方向の2ブロックの6ライン分とに分けることができ、図55(B)の最大バースト長による4ブロック単位の4画素×16バーストが6転送、2ブロック単位の4画素×8バーストが6転送、の合計12転送でよい。 In order to access these 36 blocks in the 4 × 4 format, it can be divided into 6 lines of 4 blocks in the horizontal direction and 6 lines of 2 blocks in the horizontal direction, and the maximum burst length of FIG. 4 blocks × 16 bursts in units of 4 blocks in 6 transfers, 6 transfers in 4 blocks × 4 bursts in units of 2 blocks, and a total of 12 transfers may be sufficient.
したがって、図54に示した8×8フォーマットの場合の16転送よりも、更に転送アクセス数が少なく、また、この実施形態の撮像装置で最も効率の良いデータ転送である16バーストを使用する割合が増え、バス効率はさらに向上している。 Therefore, the number of transfer accesses is further smaller than the 16 transfers in the 8 × 8 format shown in FIG. 54, and the ratio of using 16 bursts, which is the most efficient data transfer in the imaging apparatus of this embodiment, is higher. Increasing bus efficiency.
上述したように、動画NR処理時には、動き検出・動き補償部16が、マッチング処理範囲を画像メモリ部4から読み出す際には、64×1フォーマットおよび短冊アクセス形式ではなく、ブロックフォーマット、この例では8×8フォーマットや4×4フォーマットによるブロックアクセス形式の方が、メモリアクセスとして適している。
As described above, during the moving image NR process, when the motion detection /
そこで、重ね合わせ結果の動画NR画像は、上述のようなブロックアクセス形式のブロックフォーマットで画像メモリ部4に書き込むと良い。
Therefore, the moving image NR image as a result of superposition may be written in the
しかしながら、画像メモリ部4に対してシステムバス2およびメモリコントローラ8を通じてアクセスするのは、動き検出・動き補償部16や画像重ね合わせ部17、動画コーデック部だけでなく、他の処理部も存在するが、上記のブロックフォーマットによるメモリアクセスが、それらの他の処理部の全てにも適しているとは限らない。
However, the
例えば、この実施形態の撮像装置では、動画NR処理時には、NR処理した後の画像を、NTSCエンコーダ20で表示画像データに変換して、モニターディスプレイ6において画像モニター表示を行うようにしている。NTSCエンコーダ20では、基本的に、ラスタースキャン形式の画像データの処理を行うものであるので、8×8フォーマットや4×4フォーマットなどのブロックフォーマットによるブロックアクセス形式で画像メモリ部4から画像データをアクセスした場合には、転送効率が悪くなるという問題がある。
For example, in the imaging apparatus of this embodiment, at the time of moving image NR processing, an image after the NR processing is converted into display image data by the
そこで、この実施形態では、前述した図19のステップS28においては、画像重ね合わせ部17からの動画NR処理結果のNR画像は、図58に示すように、8×8フォーマットや4×4フォーマットなどのブロックフォーマットで、画像メモリ部4のNR画像についての第1のメモリ領域41NRに書き込まれると共に、64×1フォーマットで、画像メモリ部4のNR画像についての第2のメモリ領域42NRに書き込まれる。なお、図58に示すように、第1のメモリ領域41NRには、NR画像は、縮小面画像が併せて書き込まれる。
Therefore, in this embodiment, in step S28 of FIG. 19 described above, the NR image of the moving image NR processing result from the
動き検出・動き補償部16は、ターゲットブロックは、画像補正・解像度変換部15から、短冊形式で取得しており、動き検出・動き補償部16および画像重ね合わせ部17は、短冊形式で、64×1フォーマットの64画素ずつ処理を行っている。このため、画像重ね合わせ部17からの画像重ね合わせ結果のNR画像を画像メモリ部4に64×1フォーマットで書き込む際には、ラスタースキャン形式ではアドレスが飛ばされる状態で、短冊アクセス形式で書き込みを行うようにすることで行われる。
The motion detection /
そして、この実施形態においては、画像メモリ部4のNR画像についての第1のメモリ領域41NRに1フレーム前の時点でブロックフォーマットで書き込まれているNR画像が参照画像とされ、メモリコントローラ8により、マッチング処理範囲が当該参照画像から、8×8フォーマットあるいは4×4フォーマットなどのブロックフォーマットで読み出されて、動き検出・動き補償部16に転送される。
In this embodiment, the NR image written in the block format at the time before one frame in the first memory area 41NR for the NR image of the
また、この実施形態では、画像メモリ部4のNR画像についての第2のメモリ領域42NRに1フレーム前の時点で64×1フォーマットで書き込まれているNR画像が、64×1フォーマットで、かつ、ラスタースキャン形式で読み出されて、動画コーデック部19に転送され、この例では、MPEG方式により動画圧縮エンコードされて、記録再生装置部5に記録される。また、第2のメモリ領域42NRに1フレーム前の時点で64×1フォーマットで書き込まれているNR画像は、64×1フォーマットで、かつ、ラスタースキャン形式で読み出されて、NTSCエンコーダ20に供給されてNTSC信号にされ、モニターディスプレイ6に供給されて、記録モニター画像として表示される。
In this embodiment, the NR image written in the 64 × 1 format in the second memory area 42NR for the NR image of the
上述のように、この実施形態では、NR画像は、画像メモリ部4には、第1のメモリ領域41NRと、第2のメモリ領域42NRとの両方に、2重に書き込まれることとなるため、画像メモリ部4の容量、画像メモリ部4およびメモリコントローラ8の消費電力は大きくなるが、動き検出・動き補償部16に対する画像メモリ部4からの画像データのバスアクセスの効率が良く、バス帯域を大きく削減できるというメリットがある。
As described above, in this embodiment, the NR image is written twice in the
以上のように、この実施形態の撮像装置では、画像メモリ部4に、64×1フォーマットで短冊アクセス形式のみで書き込むか、短冊アクセス形式とブロックフォーマットによるブロックアクセス形式の2種類の方式で書き込むか、のいずれかを選択することができる。消費電力を少なくする、またはメモリ容量の削減が必要なときは短冊アクセス方式のみを用いることを選択し、バス帯域を削減したい場合は短冊アクセス形式とブロックアクセス形式の2種類の方式を用いることを選択するのが望ましい。
As described above, in the imaging apparatus of this embodiment, whether to write in the
[撮像装置の第2の実施形態]
上述した実施形態の撮像装置は、図1に示したように、画像重ね合わせ結果のNR画像を、そのまま記録するようにしている。これに対して、図59に示すように、画像重ね合わせ部17の後段に、後処理・エフェクト部30を設け、この後処理・エフェクト部30で、画面合成、グラフィック合成、セピア処理などの画像についての後処理あるいはエフェクト処理を行った後、記録することができる撮像装置を構成することもできる。
[Second Embodiment of Imaging Device]
As shown in FIG. 1, the imaging apparatus according to the above-described embodiment records an NR image as a result of image superimposition as it is. On the other hand, as shown in FIG. 59, a post-processing /
この場合、後処理・エフェクト部30は、ユーザ操作入力部3を通じたユーザ操作入力により、その処理動作がオン・オフされる。つまり、使用者が、ユーザ操作入力部3を通じて、画面合成、グラフィック合成、セピア処理などの画像についての後処理あるいはエフェクト処理を指示したときに、CPU1により、後処理・エフェクト部30は、動作オンとされ、後処理あるいはエフェクト処理が指定されないときには、この後処理・エフェクト部30は、CPU1により、動作オフとされる。
In this case, the processing operation of the post-processing /
そして、後処理・エフェクト部30が動作オフとされるときには、この第2の実施形態の撮像装置では、図58に示した前述の実施形態の撮像装置の場合と同様に、画像重ね合わせ部17からの動画NR処理結果のNR画像が、図60に示すように、8×8フォーマットや4×4フォーマットなどのブロックフォーマットで、画像メモリ部4のNR画像についての第1のメモリ領域41NRに書き込まれると共に、64×1フォーマットで、画像メモリ部4のNR画像についての第2のメモリ領域42NRに書き込まれる。なお、図60に示すように、第1のメモリ領域41NRには、NR画像は、縮小面画像が併せて書き込まれる。
When the post-processing /
また、後処理・エフェクト部30が動作オンとされるときには、この第2の実施形態の撮像装置では、画像重ね合わせ部17からの動画NR処理結果のNR画像は、図61に示すように、8×8フォーマットや4×4フォーマットなどのブロックフォーマットで、画像メモリ部4のNR画像についての第1のメモリ領域41NRにのみ書き込まれる。
Further, when the post-processing /
そして、この後処理・エフェクト部30が動作オンとされる場合には、後処理・エフェクト部30で、画面合成、グラフィック合成、セピア処理などの画像についての後処理あるいはエフェクト処理がなされたNR画像が、64×1フォーマットで、画像メモリ部4のNR画像についての第2のメモリ領域42NRに書き込まれる。この後処理あるいはエフェクト処理がなされたNR画像は、次のフレームにおける参照画像としては用いることができない。
When the post-processing /
そして、この第2の実施形態の撮像装置では、画像メモリ部4のNR画像についての第2のメモリ領域42NRに1フレーム前の時点で64×1フォーマットで書き込まれている後処理等がなされたNR画像が、64×1フォーマットで、かつ、ラスタースキャン形式で読み出されて、動画コーデック部19に転送され、動画圧縮エンコードされて、記録再生装置部5に記録される。また、第2のメモリ領域42NRに1フレーム前の時点で64×1フォーマットで書き込まれている後処理等がなされたNR画像は、64×1フォーマットで、かつ、ラスタースキャン形式で読み出されて、NTSCエンコーダ20に供給されてNTSC信号にされ、モニターディスプレイ6に供給されて、記録モニター画像として表示される。
In the image pickup apparatus according to the second embodiment, post-processing and the like written in the 64 × 1 format in the second memory area 42NR for the NR image in the
以上のように、この第2の実施形態の撮像装置において、後処理・エフェクト部30が動作オンとされる場合には、次のフレームでの参照画像として用いられる後処理等がなされていないNR画像と、記録用また記録モニター表示用として用いられる後処理等がなされたNR画像とを、画像メモリ部4に書き込む必要がある。そして、後処理等がなされていないNR画像は、その参照画像としての用途から、ブロックフォーマットで画像メモリ部4に書き込まれ、また、後処理等がなされているNR画像は、記録用および記録モニター表示用などの用途から、ラスタースキャン形式で読み出し易い64×1フォーマットで書き込まれる。
As described above, in the imaging apparatus according to the second embodiment, when the post-processing /
[動画NR処理時における基底面と縮小面とでのメモリアクセスの変更について]
上述した第1および第2の実施形態の撮像装置においては、動き検出・動き補償部16におけるブロックマッチング手法として、縮小面マッチング処理と基底面マッチング処理とからなる階層化ブロックマッチング手法を採用している。
[Changes in memory access between base plane and reduced plane during video NR processing]
In the imaging devices of the first and second embodiments described above, a hierarchized block matching method including a reduced surface matching process and a base surface matching process is employed as a block matching method in the motion detection /
動画NR処理時の基底面マッチング処理においては、画像メモリ部4に書き込まれている基底面ターゲット画像および基底面参照画像は、図58に示したように、動き検出・動き補償部16のみではなく、システムバス2に接続されている他の処理部がアクセスすることがあるため、上述したように、メモリアクセスのフォーマットに制約が発生する。しかしながら、縮小面マッチングにおける縮小面画像であれば、動き検出・動き補償部16でしかアクセスしないため、メモリアクセスのフォーマットの制約は発生しない。
In the basal plane matching process at the time of the moving image NR process, the basal plane target image and the basal plane reference image written in the
そこで、基底面マッチング処理時と縮小面マッチング処理時とで、画像メモリ部4の画像データに対するメモリアクセスのフォーマットを変えることで、バス帯域をさらに削減することが可能である。
Therefore, the bus bandwidth can be further reduced by changing the memory access format for the image data in the
バス帯域の削減を可能にする例として、ここでは、縮小面マッチング処理時における画像データの削減を行う。すなわち、上述したように、この発明による実施形態においては、ブロックマッチング手法におけるSAD値の算出では、輝度情報Yのみしか使用していない。 As an example of enabling reduction of the bus bandwidth, here, image data is reduced during the reduction plane matching process. That is, as described above, in the embodiment according to the present invention, only the luminance information Y is used in the calculation of the SAD value in the block matching method.
しかし、NR処理して、画像データを記録するためには、輝度情報Yのみではなく、クロマ信号情報C(Cr,Cb)をも必要である。このため、上述の説明では、システムバス2のバス幅が64ビット、最大バースト長は16バーストとしたとき、最大効率の転送時のデータ量、すなわち、64ビット×16バースト=128バイトは、Y:Cr:Cb=4:2:2のフォーマットの輝度信号Y(8ビット)、クロマ信号C(8ビット)は、4画素分に相当するとした。
However, not only the luminance information Y but also the chroma signal information C (Cr, Cb) is necessary to record the image data by performing the NR process. For this reason, in the above description, when the bus width of the
ところで、縮小面画像は、記録対象ではないので、クロマ信号Cを用いる必要は無い。そこで、図62(A)に示すような、8×8フォーマットのYC画像データから、輝度情報Y(8ビット)のみを抽出して、図62(B)に示すような8×8フォーマットのY画像データとし、縮小面マッチング処理用とすることができるが、その場合のYC画像データのデータ量は、上述の場合の半分になる。 Incidentally, since the reduced surface image is not a recording target, it is not necessary to use the chroma signal C. Therefore, only the luminance information Y (8 bits) is extracted from the 8 × 8 format YC image data as shown in FIG. 62A, and the 8 × 8 format Y as shown in FIG. The image data can be used for reduced surface matching processing, but the amount of YC image data in that case is half that of the above case.
そこで、上述の実施形態における最大効率の転送時のデータ量、すなわち、64ビット×16バースト=128バイトは、図62(C)に示すように、8ライン×8画素=64画素のブロックの2ブロック分である128画素分となる。したがって、縮小面マッチング処理時には、画像メモリ部4に対するメモリアクセスにおいて、この128画素分を、1転送でアクセスすることができる。
Therefore, the amount of data at the time of transfer with the maximum efficiency in the above-described embodiment, that is, 64 bits × 16 bursts = 128 bytes is 2 in a block of 8 lines × 8 pixels = 64 pixels as shown in FIG. It is for 128 pixels, which is a block. Therefore, at the time of the reduction plane matching process, in the memory access to the
すなわち、縮小面マッチング処理時においては、8×8フォーマットのYC情報のうち、Y情報のみ抽出することで、上述の例の場合よりも、最大効率の1アクセス(128バイト)で、最大、8画素×8ライン×2ブロックのデータを転送することが可能になり、マッチング精度は変わらずに、バス帯域を1/2に削減することができる。 That is, at the time of reduced surface matching processing, only Y information is extracted from YC information in the 8 × 8 format, so that the maximum efficiency is 8 in one access (128 bytes) compared to the above example. Data of pixel × 8 lines × 2 blocks can be transferred, and the bus bandwidth can be reduced to ½ without changing the matching accuracy.
また、縮小面マッチング処理時においては、図62(B)のY画像データを、図63(A)および(B)に示すように、千鳥格子状に間引きし、垂直方向に詰めて画像メモリ部4に書き込むようにすることで、さらにバス帯域を削減することができる。
In the reduced plane matching process, the Y image data in FIG. 62B is thinned out in a staggered pattern and packed vertically in the image memory as shown in FIGS. 63A and 63B. By writing to the
このとき、図63(C)に示すように、1アクセス(128バイト)で、最大、4画素×8ライン×4ブロックのデータを転送可能になり、マッチング精度は落ちるものの、バス帯域は1/4に削減することが可能である。 At this time, as shown in FIG. 63 (C), data of 4 pixels × 8 lines × 4 blocks at maximum can be transferred with one access (128 bytes), and the matching accuracy is lowered, but the bus bandwidth is 1 / It is possible to reduce to 4.
[実施形態の効果]
以上のように、実施形態の撮像装置で最も効率の良いデータ転送サイズのブロック単位で、画像メモリ部4に対するメモリアクセスのデータフォーマットを決定し、静止画NR処理、動画NR処理に応じて、画像メモリ部4に対するメモリアクセスのデータフォーマットを選択することで、バス帯域を削減し、バスアクセスの効率も向上させることができる。
[Effect of the embodiment]
As described above, the memory access data format for the
また、基底面マッチング処理時と縮小面マッチング処理時とで画像メモリ部4に対するメモリアクセスのデータフォーマットを変更し、縮小面マッチング処理時は、動き検出・動き補償部16以外の他の処理部の画像メモリ部4のアクセスが無いことを利用して、動き検出に適したデータフォーマットにすることで、バス帯域をさらに削減することが可能である。
In addition, the memory access data format for the
また、画像重ね合わせ後に、後処理やエフェクト処理を施す場合、複数フォーマットで画像メモリ部4に画像データを貼る必要があるが、マッチング処理のための参照画像を、画像メモリ部4に対して、ブロックフォーマットで書き込みおよび読み出しアクセスするようにすることで、バス帯域を削減することができる。
In addition, when post-processing and effect processing are performed after image superimposition, it is necessary to paste image data in the
また、上述した実施形態によれば、画像補正・解像度変換部15で、画像を、短冊状に分割したフォーマットでメモリアクセスを行い、静止画コーデック部18での圧縮符号化の単位も同じく短冊形式にすることで、画像補正・解像度変換部15から静止画コーデック部18に、メモリを介さず、直接データを転送することができ、高速連写画像を効率よく圧縮符号化し、画像メモリ部4に格納することができる。
Further, according to the above-described embodiment, the image correction /
また、画像メモリ部4に格納された、圧縮符号化された画像を参照画像として用いるときに、画像を分割した短冊単位で伸長復号化することで、ブロックマッチング処理に必要な範囲だけ復号化することができ、画像メモリ部4のワーク領域を節約することができる。さらに、画像メモリ部4上の不要な参照画像短冊のアドレスに、次に使用する参照画像短冊を復号化して上書きすることで、ワーク領域上の復号化された参照画像のサイズを、常に一定にすることができる。
Further, when a compression-encoded image stored in the
また、前述したように、この実施形態によれば、設定情報などによって、ターゲット画像と参照画像の選択方法、重ね合わせの順序、重ね合わせの計算方法を変更することによって、所望のNR画像を得ることが可能である。 Further, as described above, according to this embodiment, a desired NR image is obtained by changing the selection method of the target image and the reference image, the order of overlay, and the calculation method of overlay according to the setting information. It is possible.
[その他の実施の形態および変形例]
上述の実施形態においては、静止画コーデック部18における圧縮符号化方式としては、JPEG方式を用い、また、動画コーデック部19における圧縮符号化方式としてはMPEG方式を用いるようにしたが、これは一例であって、この発明は、どのような画像圧縮符号化方式であっても適用可能であることは言うまでもない。
[Other Embodiments and Modifications]
In the above-described embodiment, the JPEG method is used as the compression encoding method in the still
また、上述の実施形態では、静止画撮影時の記録画像を圧縮符号化するための圧縮符号化処理部で、ブロックマッチング時における撮像画像の圧縮符号化を行うようにしたが、記録処理のための圧縮方式と、ブロックマッチング時における撮像画像の圧縮方式とで、異なる方式を用いるようにしても良い。 In the above-described embodiment, the compression encoding processing unit for compressing and encoding a recorded image at the time of still image shooting performs compression encoding of the captured image at the time of block matching. Different compression methods may be used for the compression method and the compression method for the captured image at the time of block matching.
また、上述の実施形態では、動画NR処理において、画像メモリ部4に対する複数のメモリアクセスのデータフォーマットを用いるようにしたが、静止画NR処理にも用いても良い。特に、撮影中加算方式で静止画NR処理をする場合には、処理速度も重要になるので、上述のようなバス帯域を削減する方法を採用する方が良い。
In the above-described embodiment, a plurality of memory access data formats for the
また、画像を、水平方向の複数画素毎に分割して、短冊単位のデータとしてメモリアクセスするようにしたが、これは、画像メモリからの画像データの読み出し、書き込み方向が、水平ライン方向を基準にしたからである。画像メモリからの画像データの読み出し、書き込み方向が垂直方向である場合には、画像を垂直方向の複数ライン単位で分割した帯状単位のデータとしてデータアクセスするようにすれば、上述と同様の作用効果が得られることは言うまでもない。その場合には、例えば64×1フォーマットは、垂直方向の64ライン×1画素というフォーマットになる。 In addition, the image is divided into a plurality of pixels in the horizontal direction and memory access is performed as strip data. This is because the read / write direction of image data from the image memory is based on the horizontal line direction. Because it was. When the image data is read from and written to the image memory in the vertical direction, the same effect as described above can be obtained by accessing the data as band-shaped data obtained by dividing the image into a plurality of lines in the vertical direction. It goes without saying that can be obtained. In that case, for example, the 64 × 1 format is a format of 64 lines × 1 pixel in the vertical direction.
また、上述の実施の形態において、動きベクトル算出部の第1の例においては、サーチ範囲におけるサーチ方向を水平ライン方向に取り、例えばサーチ範囲の左上から順に参照ブロックを移動させるようにしてサーチを行うようにすると共に、SADテーブルの1ライン分のメモリを設けるようにしたが、サーチ範囲におけるサーチ方向を垂直方向に取り、例えばサーチ範囲の左上端から垂直方向にサーチを開始し、垂直方向の1列分のサーチが終わった後、水平方向に、参照ブロックの位置を1つ分、例えば1画素分右の垂直方向の列に移動し、その列の上端から垂直方向にサーチする、という手順を繰り返すサーチ方法を採用するようにしても良い。このようにサーチ範囲の左上端から順に、垂直方向に参照ブロックを移動させるようにしてサーチを行うようにする場合には、SADテーブルの垂直方向の一列分のメモリを設けるようにすれば良い。 In the first embodiment described above, in the first example of the motion vector calculation unit, the search direction in the search range is set to the horizontal line direction, and the search is performed by moving the reference block in order from the upper left of the search range, for example. In addition, the memory for one line of the SAD table is provided, but the search direction in the search range is taken in the vertical direction, for example, the search is started in the vertical direction from the upper left end of the search range, and the vertical direction After the search for one column is completed, the position of the reference block is moved in the horizontal direction by one, for example, one pixel to the right in the vertical column, and the search is performed in the vertical direction from the upper end of the column. You may make it employ | adopt the search method which repeats. As described above, when the search is performed by moving the reference block in the vertical direction sequentially from the upper left end of the search range, a memory for one column in the vertical direction of the SAD table may be provided.
ここで、水平方向にサーチ方向を取るか、垂直方向にサーチ方向を取るかは、マッチング処理部、動きベクトル算出部の回路規模を考慮して、より回路規模が小さくなる方を採用するのが好ましい。 Here, whether the search direction is taken in the horizontal direction or the search direction in the vertical direction is determined by taking into account the circuit scales of the matching processing unit and the motion vector calculation unit and adopting the one with a smaller circuit scale. preferable.
なお、前述もしたように、参照ブロックの移動は、1画素毎、また、1ライン毎ではなく、複数画素毎、また、複数ライン毎でもよい。したがって、前者の場合の水平方向の1ライン分メモリは、水平方向における参照ブロックの移動位置分だけでよく、また、後者の場合の垂直方向の一列分のメモリは、垂直方向における参照ブロックの移動位置分だけでよい。つまり、参照ブロックの移動を1画素毎、また、1ライン毎に行う場合には、1ライン分メモリは、1ラインの画素数分の容量のメモリが必要であり、また、垂直方向の一列分メモリは、ライン数分の容量のメモリが必要である。しかし、複数画素毎、また、複数ライン毎に、参照ブロックを移動させる場合には、1画素毎、また、1ライン毎に参照ブロックを移動させる場合よりも、1ライン分メモリおよび1列分メモリの容量は少なくなる。 As described above, the reference block may be moved not for each pixel and for each line, but for each of a plurality of pixels and for each of a plurality of lines. Therefore, the memory for one line in the horizontal direction in the former case only needs to correspond to the movement position of the reference block in the horizontal direction, and the memory for one column in the vertical direction in the latter case moves the reference block in the vertical direction. Just the position. That is, when the reference block is moved for each pixel or for each line, the memory for one line needs a memory having the capacity corresponding to the number of pixels for one line, and for one column in the vertical direction. As the memory, a memory having a capacity corresponding to the number of lines is required. However, when the reference block is moved for each of a plurality of pixels and for each of a plurality of lines, the memory for one line and the memory for one column are compared with the case where the reference block is moved for each pixel and for each line. Less capacity.
また、補間処理の方法は、上述した二次曲線近似補間処理に限られるものではなく、前述もしたように、3次曲線や、より高次の曲線を用いた補間処理を行っても良い。 Further, the interpolation processing method is not limited to the above-described quadratic curve approximation interpolation processing, and as described above, interpolation processing using a cubic curve or a higher order curve may be performed.
また、上述の実施の形態は、この発明による画像処理装置を撮像装置に適用した場合であるが、この発明は、撮像装置に限られるわけではなく、種々の画像処理装置に適用可能である。 Moreover, although the above-mentioned embodiment is a case where the image processing apparatus by this invention is applied to an imaging device, this invention is not necessarily restricted to an imaging device, It can apply to various image processing apparatuses.
また、上述の実施の形態は、ブロックマッチング手法を用いて、画像の重ね合わせによるノイズ低減処理をする場合に、この発明を適用した場合であるが、これに限られるものではなく、画像メモリ部に書き込まれた画像データを、複数の処理部がアクセスするような画像処理装置の全てに適用可能である。 The above embodiment is a case where the present invention is applied when noise reduction processing is performed by superimposing images using a block matching method. However, the present invention is not limited to this. Can be applied to all image processing apparatuses that are accessed by a plurality of processing units.
4…画像メモリ部、8…メモリコントローラ、16…動き検出・動き補償部、17…画像重ね合わせ部、18…静止画コーデック部、100…ターゲット画像(ターゲットフレーム)、101…参照画像(参照フレーム)、102…ターゲットブロック、104…動きベクトル106…サーチ範囲、107…参照ベクトル、108…参照ブロック、163…マッチング処理部、164…動きベクトル算出部
DESCRIPTION OF
Claims (16)
入力される画像データについて第1の処理を行って、前記画像メモリ部に、その処理結果の画像データを格納する第1の画像処理部と、
前記画像メモリ部から前記処理結果の画像データを読み出して第2の処理を行なう第2の画像処理部と、
前記画像メモリ部から前記処理結果の画像データを読み出して第3の処理を行なう第3の画像処理部と、
前記画像メモリ部と、前記第1の画像処理部と、前記第2の画像処理部と、前記第3の画像処理部とが接続されるバスと、
前記画像メモリ部に対する前記バスを介した画像データの書き込みおよび読み出しを制御するメモリコントローラと、
を備え、
前記第1の画像処理部での前記第1の処理の結果の画像データは、前記メモリコントローラにより、画面の垂直方向のライン数と水平方向の画素数との組み合わせが第1の組み合わせとされた第1のブロック単位で、前記画像メモリ部の第1のメモリ領域に書き込まれると共に、画面の垂直方向のライン数と水平方向の画素数との組み合わせが、前記第1の組み合わせとは異なる第2の組み合わせとされた第2のブロック単位で、前記画像メモリ部の第2のメモリ領域に書き込まれるようにされ、
前記第2の画像処理部には、前記メモリコントローラにより、前記画像メモリ部の前記第1のメモリ領域に書き込まれた画像データが、前記第1のブロック単位で読み出されて供給され、
前記第3の画像処理部には、前記メモリコントローラにより、前記画像メモリ部の前記第2のメモリ領域に書き込まれた画像データが、前記第2のブロック単位で読み出されて供給される
ことを特徴とする画像処理装置。 An image memory unit capable of recording image data for a plurality of screens;
A first image processing unit that performs first processing on input image data and stores image data of the processing result in the image memory unit;
A second image processing unit that reads out the image data of the processing result from the image memory unit and performs a second process;
A third image processing unit that reads out the image data of the processing result from the image memory unit and performs a third process;
A bus to which the image memory unit, the first image processing unit, the second image processing unit, and the third image processing unit are connected;
A memory controller that controls writing and reading of image data via the bus to the image memory unit;
With
The image data as a result of the first processing in the first image processing unit has the first combination of the number of lines in the vertical direction and the number of pixels in the horizontal direction on the screen by the memory controller. The second block is written in the first memory area of the image memory unit in the first block unit, and the combination of the number of lines in the vertical direction and the number of pixels in the horizontal direction of the screen is different from the first combination. And is written in the second memory area of the image memory unit in a second block unit that is a combination of
Image data written in the first memory area of the image memory unit by the memory controller is read and supplied in units of the first block to the second image processing unit,
Image data written in the second memory area of the image memory unit by the memory controller is read and supplied to the third image processing unit in units of the second block. A featured image processing apparatus.
前記メモリコントローラは、前記バスを介して所定数の複数画素の単位で画像データをバースト転送可能、かつ、連続して、複数回、バースト転送することが可能であり、
前記第1のブロック単位および前記第2のブロック単位の画像データは、前記画像メモリ部に対する書き込みまたは読み出しに際し、前記メモリコントローラにより、前記所定数の複数画素単位で複数回、連続してバースト転送される
ことを特徴とする画像処理装置。 The image processing apparatus according to claim 1.
The memory controller can burst transfer image data in units of a predetermined number of pixels via the bus, and can continuously burst transfer a plurality of times.
The image data of the first block unit and the second block unit is continuously burst transferred by the memory controller a plurality of times in units of the predetermined number of the plurality of pixels when writing to or reading from the image memory unit. An image processing apparatus.
前記第1のブロック単位は、垂直方向の複数ラインと水平方向の複数画素とからなり、
前記第2のブロック単位は、垂直方向または水平方向のうち、画像データの前記画像メモリ部への書き込み方向の複数画素のみからなる
ことを特徴とする画像処理装置。 The image processing apparatus according to claim 2,
The first block unit includes a plurality of vertical lines and a plurality of horizontal pixels,
The image processing apparatus according to claim 2, wherein the second block unit includes only a plurality of pixels in a writing direction of image data in the image memory unit in a vertical direction or a horizontal direction.
画面の端部における画像データの前記画像メモリ部に対して書き込みに際し、前記画像データが、前記第1のブロック単位または前記第2のブロック単位よりも少ない画素数からなるものであるときに、ダミーデータを付加して、前記第1のブロック単位または前記第2のブロック単位の複数画素とするようにした
ことを特徴とする画像処理装置。 The image processing apparatus according to claim 2,
When writing the image data at the edge of the screen to the image memory unit, when the image data has a smaller number of pixels than the first block unit or the second block unit, An image processing apparatus, wherein data is added to form a plurality of pixels in the first block unit or the second block unit.
前記所定数の複数画素は、p(pは2以上の整数)個の画素であり、前記メモリコントローラにおける前記バースト転送の最大連続可能回数はq回であるとき、前記第2のブロック単位の前記書き込み方向の画素数は、p×q個であり、
前記第2のブロック単位の画像データの前記画像メモリに対するアクセスは、前記p個の画素の前記バースト転送をq回、前記読み出し方向のp×q個の画素について行うようにするものである
ことを特徴とする画像処理装置。 The image processing apparatus according to claim 3.
The predetermined number of the plurality of pixels is p (p is an integer of 2 or more) pixels, and when the maximum continuation possible number of the burst transfer in the memory controller is q times, the second block unit The number of pixels in the writing direction is p × q,
The access to the image memory of the image data in the second block unit is to perform the burst transfer of the p pixels q times for the p × q pixels in the readout direction. A featured image processing apparatus.
前記第1のブロック単位の画像データの前記画像メモリに対するアクセスは、前記第1のブロック単位の矩形画像領域内で、前記画像メモリに対する書き込み方向の画素のバースト転送が終了したら、次の行または列の前記書き込み方向の画素のバースト転送を行うことを連続して行うようにするものである
ことを特徴とする画像処理装置。 The image processing apparatus according to claim 2,
Access to the image memory of the image data in the first block unit is performed in the next row or column after burst transfer of pixels in the writing direction to the image memory is completed in the rectangular image region in the first block unit. An image processing apparatus characterized by continuously performing burst transfer of pixels in the writing direction.
前記第1の画像処理部は、前記第1の処理の結果の画像データについて、表示画像に反映される処理を施す後処理部を備え、前記画像メモリ部の前記第2のメモリ領域には、前記後処理部での処理結果の画像データが、前記第2のブロック単位で書き込まれる
ことを特徴とする画像処理装置。 The image processing apparatus according to claim 1.
The first image processing unit includes a post-processing unit that performs processing reflected on a display image with respect to image data as a result of the first processing, and the second memory area of the image memory unit includes: The image processing apparatus, wherein image data obtained as a result of processing in the post-processing unit is written in units of the second block.
前記2画面の少なくとも一方を記憶する画像メモリ部と、
前記画像メモリ部から読み出した前記2画面の一方と、前記2画面の他方との間の動きベクトルを検出すると共に、検出した動きベクトルに基づいて前記2画面の一方を動き補償した動き補償画像を生成する動き検出・動き補償手段と、
前記動き検出・動き補償手段からの前記動き補償画像と、前記2画面の一方または他方との画像の重ね合わせをする画像重ね合わせ手段と、
前記画像重ね合わせ手段における前記重ね合わせ結果の画像データについて所定の処理をする後処理手段と、
前記画像メモリ部と、前記動き検出・動き補償手段と、前記画像重ね合わせ手段と、前記後処理手段とが接続されるバスと、
前記バスを介した、前記画像メモリ部への前記画像重ね合わせ部からの画像データの書き込みを制御すると共に、前記画像メモリ部からの画像データの読み出しを制御するメモリコントローラと、
を備え、
前記メモリコントローラは、
前記画像重ね合わせ手段からの前記重ね合わせ結果の画像の画像データを、画面の垂直方向のライン数と水平方向の画素数との組み合わせが第1の組み合わせとされた第1のブロック単位で、前記画像メモリ部の第1のメモリ領域に書き込むと共に、画面の垂直方向のライン数と水平方向の画素数との組み合わせが、前記第1の組み合わせとは異なる第2の組み合わせとされた第2のブロック単位で、前記画像メモリ部の第2のメモリ領域に書き込み、また、
前記画像メモリ部の前記第1のメモリ領域に書き込まれた画像データを、前記第1のブロック単位で読み出して、前記動き検出を行う前記2画面の一方として、前記バスを介して前記動き検出・動き補償手段に供給し、
前記画像メモリ部の前記第2のメモリ領域に書き込まれた画像データを、前記第2のブロック単位で読み出して、前記後処理手段に前記バスを介して供給する
ことを特徴とする画像処理装置。 A motion vector between two screens is detected, a motion compensated image in which motion compensation is performed on one of the two screens is generated based on the detected motion vector, and the other of the two screens is superimposed on the motion compensated image. An image processing apparatus for obtaining a noise-reduced image,
An image memory unit for storing at least one of the two screens;
A motion compensation image obtained by detecting a motion vector between one of the two screens read from the image memory unit and the other of the two screens and performing motion compensation on one of the two screens based on the detected motion vector. Motion detection / motion compensation means to be generated;
Image superimposing means for superimposing the motion compensated image from the motion detection / compensation means and one or the other of the two screens;
Post-processing means for performing predetermined processing on the image data of the superposition result in the image superposition means;
A bus to which the image memory unit, the motion detection / motion compensation unit, the image superimposing unit, and the post-processing unit are connected;
A memory controller that controls writing of image data from the image superimposing unit to the image memory unit via the bus, and controls reading of image data from the image memory unit;
With
The memory controller is
The image data of the image as a result of the superimposition from the image superimposing means is a first block unit in which the combination of the number of lines in the vertical direction and the number of pixels in the horizontal direction is the first combination, and A second block in which the combination of the number of lines in the vertical direction and the number of pixels in the horizontal direction on the screen is a second combination different from the first combination, while writing to the first memory area of the image memory unit Writing in a second memory area of the image memory unit in units, and
The image data written in the first memory area of the image memory unit is read out in units of the first block, and the motion detection and detection via the bus is performed as one of the two screens for performing the motion detection. Supply to motion compensation means,
The image processing apparatus, wherein the image data written in the second memory area of the image memory unit is read in units of the second block and supplied to the post-processing means via the bus.
前記メモリコントローラは、前記バスを介して所定数の複数画素の単位で、複数回、連続してバースト転送することが可能であり、
前記第1のブロック単位および前記第2のブロック単位の画像データは、前記画像メモリ部に対する書き込みまたは読み出しに際し、前記メモリコントローラにより、前記所定数の複数画素単位で複数回、連続してバースト転送される
ことを特徴とする画像処理装置。 The image processing apparatus according to claim 8.
The memory controller is capable of continuous burst transfer a plurality of times in units of a predetermined number of pixels via the bus,
The image data of the first block unit and the second block unit is continuously burst-transferred a plurality of times in units of the predetermined number of the plurality of pixels by the memory controller when writing to or reading from the image memory unit. An image processing apparatus.
前記第1のブロック単位は、垂直方向の複数ラインと水平方向の複数画素とからなり、
前記第2のブロック単位は、垂直方向または水平方向のうち、画像データの前記画像メモリ部への書き込み方向の複数画素のみからなる
ことを特徴とする画像処理装置。 The imaging device according to claim 9,
The first block unit includes a plurality of vertical lines and a plurality of horizontal pixels,
The image processing apparatus according to claim 2, wherein the second block unit includes only a plurality of pixels in a writing direction of image data in the image memory unit in a vertical direction or a horizontal direction.
画面の端部における画像データの前記画像メモリ部に対して書き込みに際し、前記画像データが、前記第1のブロック単位または前記第2のブロック単位よりも少ない画素数からなるものであるときに、ダミーデータを付加して、前記第1のブロック単位または前記第2のブロック単位の複数画素とするようにした
ことを特徴とする画像処理装置。 The image processing apparatus according to claim 9.
When writing the image data at the edge of the screen to the image memory unit, when the image data has a smaller number of pixels than the first block unit or the second block unit, An image processing apparatus, wherein data is added to form a plurality of pixels in the first block unit or the second block unit.
前記所定数の複数画素は、p(pは2以上の整数)個の画素であり、前記メモリコントローラにおける前記バースト転送の最大連続可能回数はq回であるとき、前記第2のブロック単位の前記書き込み方向の画素数は、p×q個であり、
前記第2のブロック単位の画像データの前記画像メモリに対するアクセスは、前記p個の画素の前記バースト転送をq回、前記読み出し方向のp×q個の画素について行うようにするものであると共に、
前記第2のブロック単位の画像データの前記画像メモリに対するアクセスを、前記垂直方向または水平方向のうち、画像データの前記画像メモリ部への書き込み方向でない方向に連続して行う短冊形式とする
ことを特徴とする画像処理装置。 The imaging device according to claim 10.
The predetermined number of the plurality of pixels is p (p is an integer of 2 or more) pixels, and when the maximum continuation possible number of the burst transfer in the memory controller is q times, the second block unit The number of pixels in the writing direction is p × q,
The access of the image data of the second block unit to the image memory is such that the burst transfer of the p pixels is performed q times for p × q pixels in the readout direction, and
Access to the image memory of the image data of the second block unit is made in a strip form that is continuously performed in a direction that is not a writing direction of the image data to the image memory unit in the vertical direction or the horizontal direction. A featured image processing apparatus.
前記動き検出・動き補償手段に供給される前記2画面の他方は、前記短冊形式の画像データとされており、前記動き検出・動き補償手段は、前記2画面の他方の画像データと、前記動き補償画像の画像データとを、前記短冊形式で前記画像重ね合わせ手段に供給し、
前記画像重ね合わせ手段の前記重ね合わせ結果の画像データは、前記メモリコントローラにより、前記第1のブロック単位で前記画像メモリ部の前記第1のメモリ領域に書き込まれると共に、前記第2のブロック単位で、かつ、前記短冊形式で前記画像メモリ部の前記第2のメモリ領域に書き込まれる
ことを特徴とする画像処理装置。 The image processing apparatus according to claim 12.
The other of the two screens supplied to the motion detection / motion compensation means is image data in the strip format, and the motion detection / motion compensation means includes the other image data of the two screens and the motion. Image data of the compensation image is supplied to the image superimposing means in the strip format,
The image data resulting from the superposition of the image superimposing means is written into the first memory area of the image memory unit by the memory controller in units of the first blocks and in units of the second blocks. The image processing device is written in the second memory area of the image memory unit in the strip format.
前記後処理手段には、前記メモリコントローラにより、前記画像メモリ部の前記第2のメモリ領域から、前記第2のブロック単位で、かつ、ラスタースキャン形式で画像データが読み出されて供給される
ことを特徴とする画像処理装置。 The image processing apparatus according to claim 13.
Image data is read and supplied to the post-processing means from the second memory area of the image memory unit in the second block unit and in a raster scan format by the memory controller. An image processing apparatus.
入力される画像データについて第1の処理を行って、前記画像メモリ部に、その処理結果の画像データを格納する第1の画像処理部と、
前記画像メモリ部から前記処理結果の画像データを読み出して第2の処理を行なう第2の画像処理部と、
前記画像メモリ部から前記処理結果の画像データを読み出して第3の処理を行なう第3の画像処理部と、
前記画像メモリ部と、前記第1の画像処理部と、前記第2の画像処理部と、前記第3の画像処理部とが接続されるバスと、
前記画像メモリ部に対する前記バスを介した画像データの書き込みおよび読み出しを制御するメモリコントローラと、
を備える画像処理装置における画像データのメモリアクセス方法であって、
前記メモリコントローラは、
前記第1の画像処理部での前記第1の処理の結果の画像データを、画面の垂直方向のライン数と水平方向の画素数との組み合わせが第1の組み合わせとされた第1のブロック単位で、前記画像メモリ部の第1のメモリ領域に書き込むと共に、画面の垂直方向のライン数と水平方向の画素数との組み合わせが、前記第1の組み合わせとは異なる第2の組み合わせとされた第2のブロック単位で、前記画像メモリ部の第2のメモリ領域に書き込む画像データ書き込み工程と、
前記画像データ書き込み工程で前記第1のメモリ領域に書き込まれた画像データを読み出して、前記バスを介して前記第2の画像処理部に供給する工程と、
前記画像データ書き込み工程で前記第2のメモリ領域に書き込まれた画像データを読み出して、前記バスを介して前記第3の画像処理部に供給する工程と、
ことを特徴とする画像データのメモリアクセス方法。 An image memory unit capable of recording image data for a plurality of screens;
A first image processing unit that performs first processing on input image data and stores image data of the processing result in the image memory unit;
A second image processing unit that reads out the image data of the processing result from the image memory unit and performs a second process;
A third image processing unit that reads out the image data of the processing result from the image memory unit and performs a third process;
A bus to which the image memory unit, the first image processing unit, the second image processing unit, and the third image processing unit are connected;
A memory controller that controls writing and reading of image data via the bus to the image memory unit;
A memory access method for image data in an image processing apparatus comprising:
The memory controller is
The first block unit in which the combination of the number of lines in the vertical direction and the number of pixels in the horizontal direction is the first combination of the image data as a result of the first processing in the first image processing unit Thus, the first combination is written to the first memory area of the image memory unit, and the combination of the number of lines in the vertical direction and the number of pixels in the horizontal direction is a second combination different from the first combination. An image data writing step for writing to the second memory area of the image memory unit in units of two blocks;
Reading the image data written in the first memory area in the image data writing step and supplying the image data to the second image processing unit via the bus;
Reading the image data written in the second memory area in the image data writing step and supplying the image data to the third image processing unit via the bus;
A memory access method for image data.
前記2画面の少なくとも一方を記憶する画像メモリ部と、
前記画像メモリ部から読み出した前記2画面の一方と、前記2画面の他方との間の動きベクトルを検出すると共に、検出した動きベクトルに基づいて前記2画面の一方を動き補償した動き補償画像を生成する動き検出・動き補償手段と、
前記動き検出・動き補償手段からの前記動き補償画像と、前記2画面の一方または他方との画像の重ね合わせをする画像重ね合わせ手段と、
前記画像重ね合わせ手段における前記重ね合わせ結果の画像データについて所定の処理をする後処理手段と、
前記画像メモリ部と、前記動き検出・動き補償手段と、前記画像重ね合わせ手段と、前記後処理手段とが接続されるバスと、
前記バスを介した、前記画像メモリ部への前記画像重ね合わせ部からの画像データの書き込みを制御すると共に、前記画像メモリ部からの画像データの読み出しを制御するメモリコントローラと、
を備える画像処理装置における画像データのメモリアクセス方法であって、
前記メモリコントローラは、
前記画像重ね合わせ手段からの前記重ね合わせ結果の画像の画像データを、画面の垂直方向のライン数と水平方向の画素数との組み合わせが第1の組み合わせとされた第1のブロック単位で、前記画像メモリ部の第1のメモリ領域に書き込むと共に、画面の垂直方向のライン数と水平方向の画素数との組み合わせが、前記第1の組み合わせとは異なる第2の組み合わせとされた第2のブロック単位で、前記画像メモリ部の第2のメモリ領域に書き込む画像書き込み工程と、
前記画像データ書き込み工程で前記画像メモリ部の前記第1のメモリ領域に書き込まれた画像データを読み出して、前記動き検出を行う前記2画面の一方として、前記バスを介して前記動き検出・動き補償手段に供給する工程と、
前記画像データ書き込み工程で前記画像メモリ部の前記第2のメモリ領域に書き込まれた画像データを読み出して、前記後処理手段に前記バスを介して供給する工程と
を備えることを特徴とする画像データのメモリアクセス方法。
A motion vector between two screens is detected, a motion compensated image in which motion compensation is performed on one of the two screens is generated based on the detected motion vector, and the other of the two screens is superimposed on the motion compensated image. An image processing apparatus for obtaining a noise-reduced image,
An image memory unit for storing at least one of the two screens;
A motion compensation image obtained by detecting a motion vector between one of the two screens read from the image memory unit and the other of the two screens and performing motion compensation on one of the two screens based on the detected motion vector. Motion detection / motion compensation means to be generated;
Image superimposing means for superimposing the motion compensated image from the motion detection / compensation means and one or the other of the two screens;
Post-processing means for performing predetermined processing on the image data of the superposition result in the image superposition means;
A bus to which the image memory unit, the motion detection / motion compensation unit, the image superimposing unit, and the post-processing unit are connected;
A memory controller that controls writing of image data from the image superimposing unit to the image memory unit via the bus, and controls reading of image data from the image memory unit;
A memory access method for image data in an image processing apparatus comprising:
The memory controller is
The image data of the image as a result of the superimposition from the image superimposing means is a first block unit in which the combination of the number of lines in the vertical direction and the number of pixels in the horizontal direction is the first combination, and A second block in which the combination of the number of lines in the vertical direction and the number of pixels in the horizontal direction on the screen is a second combination different from the first combination, while writing to the first memory area of the image memory unit An image writing step for writing to the second memory area of the image memory unit in units;
The image data written in the first memory area of the image memory unit in the image data writing step is read and one of the two screens for performing the motion detection is used as the motion detection / motion compensation via the bus. Supplying the means;
Reading the image data written in the second memory area of the image memory unit in the image data writing step, and supplying the image data to the post-processing means via the bus. Memory access method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007291464A JP2009116763A (en) | 2007-11-09 | 2007-11-09 | Image processing apparatus, and memory access method for image data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007291464A JP2009116763A (en) | 2007-11-09 | 2007-11-09 | Image processing apparatus, and memory access method for image data |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009116763A true JP2009116763A (en) | 2009-05-28 |
Family
ID=40783819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007291464A Pending JP2009116763A (en) | 2007-11-09 | 2007-11-09 | Image processing apparatus, and memory access method for image data |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009116763A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011158699A1 (en) * | 2010-06-17 | 2011-12-22 | Nttエレクトロニクス株式会社 | Image processing device |
JP2012226608A (en) * | 2011-04-20 | 2012-11-15 | Canon Inc | Image processing device, control method of image processing device, and program |
JP2014078114A (en) * | 2012-10-10 | 2014-05-01 | Canon Inc | Image processor, image processing method, and program |
JP2014174898A (en) * | 2013-03-12 | 2014-09-22 | Pfu Ltd | Image data processing apparatus, image data processing method and image data processing program |
-
2007
- 2007-11-09 JP JP2007291464A patent/JP2009116763A/en active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011158699A1 (en) * | 2010-06-17 | 2011-12-22 | Nttエレクトロニクス株式会社 | Image processing device |
JP5616965B2 (en) * | 2010-06-17 | 2014-10-29 | Nttエレクトロニクス株式会社 | Image processing device |
US9286018B2 (en) | 2010-06-17 | 2016-03-15 | Ntt Electronics Corporation | Image processing device for improved access efficiency |
JP2012226608A (en) * | 2011-04-20 | 2012-11-15 | Canon Inc | Image processing device, control method of image processing device, and program |
JP2014078114A (en) * | 2012-10-10 | 2014-05-01 | Canon Inc | Image processor, image processing method, and program |
JP2014174898A (en) * | 2013-03-12 | 2014-09-22 | Pfu Ltd | Image data processing apparatus, image data processing method and image data processing program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4882956B2 (en) | Image processing apparatus and image processing method | |
JP2009071689A (en) | Image processing apparatus, image processing method, and imaging apparatus | |
JP2009105533A (en) | Image processing device, imaging device, image processing method, and picked-up image processing method | |
US7630584B2 (en) | Image processing apparatus, image processing system, imaging apparatus and image processing method | |
JP4340915B2 (en) | Captured image signal distortion correction method, captured image signal distortion correction apparatus, imaging method, and imaging apparatus | |
US7692688B2 (en) | Method for correcting distortion of captured image, device for correcting distortion of captured image, and imaging device | |
JP4178480B2 (en) | Image processing apparatus, image processing method, imaging apparatus, and imaging method | |
JP4655957B2 (en) | Captured image distortion correction method, captured image distortion correction apparatus, imaging method, and imaging apparatus | |
JP2012142865A (en) | Image processing apparatus and image processing method | |
WO2004019607A1 (en) | Image processing device, image processing system, and image processing method | |
JP2004336106A (en) | Image processing apparatus, image processing method, and imaging apparatus | |
JP2009258868A (en) | Image processing apparatus and image processing method | |
JP2009055410A (en) | Image processing device and image processing method | |
JP2004056789A (en) | Resolution and picture quality improving method for small image sensor | |
KR101140953B1 (en) | Method and apparatus for correcting distorted image | |
JP2009116763A (en) | Image processing apparatus, and memory access method for image data | |
JP4670630B2 (en) | Image processing apparatus, image processing method, imaging apparatus, and imaging method | |
JP4998134B2 (en) | Image processing apparatus and image processing method | |
JP4888306B2 (en) | Image processing apparatus and image processing method | |
JP4874175B2 (en) | Image enlargement method, image enlargement apparatus, integrated circuit, and program | |
JP2009130489A (en) | Image device, imaging/recording method, picked-up image recording and reproducing device, and picked-up image recording and reproducing method | |
JP2009140046A (en) | Image processing apparatus and memory access method for image data | |
JP2005063154A (en) | Image processor, image processing system, image pickup device, and image processing method | |
JP6524644B2 (en) | Image processing apparatus and electronic device | |
JP2009065323A (en) | Image processing device, image processing method, imaging apparatus, and imaging method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20090807 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20091005 |