JP2009123074A - Image processing apparatus - Google Patents
Image processing apparatus Download PDFInfo
- Publication number
- JP2009123074A JP2009123074A JP2007298142A JP2007298142A JP2009123074A JP 2009123074 A JP2009123074 A JP 2009123074A JP 2007298142 A JP2007298142 A JP 2007298142A JP 2007298142 A JP2007298142 A JP 2007298142A JP 2009123074 A JP2009123074 A JP 2009123074A
- Authority
- JP
- Japan
- Prior art keywords
- sub
- block
- unit
- blocks
- image
- 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.)
- Granted
Links
Images
Landscapes
- Advance Control (AREA)
- Multi Processors (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本発明は、画像の動き探索を実行するための画像処理装置に関する。 The present invention relates to an image processing apparatus for executing an image motion search.
背景技術として、画素間の評価値演算器のみを持つSIMD(Single Instruction Multiple Data)構成と、画素バッファを持ち画素再利用性を高めたシストリックアレイ構成であるRCSA(Ring Connected Systolic Array)構成とについて説明する。評価値にはSAD(Sum of Absolute Difference)を使用するものと想定して評価値演算部を構成しているが、その他の評価値を用いることも可能である。また、参照用画像データ(SW:Search Window)を格納したバッファSRAM(以下「SWRAM」と称す)と、符号化対象の画像データ(TB:Template Block)を格納したレジスタファイル(以下「TBバッファ」と称す)とを外部に有するものと想定する。これらのSWRAM及びTBバッファは、1サイクルに最大64(=8×8)個の画素値の同時出力が可能であると想定する。 As a background art, a SIMD (Single Instruction Multiple Data) configuration having only an evaluation value arithmetic unit between pixels, and a RCSA (Ring Connected Systolic Array) configuration that has a pixel buffer and a high pixel reusability, Will be described. The evaluation value calculation unit is configured on the assumption that SAD (Sum of Absolute Difference) is used as the evaluation value, but other evaluation values can also be used. Also, a buffer SRAM (hereinafter referred to as “SWRAM”) storing reference image data (SW: Search Window) and a register file (hereinafter referred to as “TB buffer”) storing image data to be encoded (TB: Template Block). It is assumed that it has outside. These SWRAM and TB buffer are assumed to be capable of simultaneously outputting a maximum of 64 (= 8 × 8) pixel values in one cycle.
SIMD構成の例を図32に示す。SIMD構成は、SWRAM及びTBバッファから受け取った画素値から評価値を求めるユニットを複数持つのみの構成である。SIMD構成には画素値を保持しておくためのバッファが存在しないため、画素値の再利用が不可能である。後述の本発明に係るRRSA(Reconfigurable Ring Connected Systlic Array)構成の例では、1画素の評価値の演算モジュールが512並列であるため、SIMD構成も512並列と想定して見積もりを行う。即ち、図32中のX,Yはそれぞれ16,32となる。SWRAM及びTBバッファからの画素出力は最大8×8画素であるため、例えば16×16の1点の探索を行うためには、RAM読み出し待ちで4サイクルが必要となる。 An example of the SIMD configuration is shown in FIG. The SIMD configuration is a configuration having only a plurality of units for obtaining evaluation values from pixel values received from the SWRAM and the TB buffer. Since there is no buffer for holding pixel values in the SIMD configuration, pixel values cannot be reused. In an example of an RRSA (Reconfigurable Ring Connected Systlic Array) configuration according to the present invention, which will be described later, since the calculation module for the evaluation value of one pixel is 512 parallel, estimation is performed assuming that the SIMD configuration is also 512 parallel. That is, X and Y in FIG. 32 are 16 and 32, respectively. Since the maximum pixel output from the SWRAM and TB buffer is 8 × 8 pixels, for example, in order to search for one 16 × 16 point, four cycles are required while waiting for RAM reading.
RCSA構成の例を図33に示す。RCSA構成は、下記非特許文献1に開示されている。RCSA構成は、画素間の評価値演算ユニットに加え、画素値のバッファを持ち、それらをリング状に接続した構成である。演算素子PE(Processor Element)及びシフトレジスタSR(Shift Register)の内部構成をそれぞれ図34及び図35に示す。SIMD構成と同様に、RCSA構成も512並列(PE512並列、SR512並列)として見積もりを行う。即ち、図33中のX,Yはそれぞれ16,32となる。例えば、16×16の8点の連続点探索を行う場合、PE−array側にRAM読み出し4サイクル、SR−array側にRAM読み出し4サイクル、評価値演算に8サイクルとなり、その結果、4+4+8−1=15サイクルが必要となる。なお、ここで最後に1サイクルを減じているのは、評価値演算は実際には「初期ロード+シフト回数」サイクルで行われるため、RAMの読み出しサイクルと評価値演算1点分とが重複するためである。
An example of the RCSA configuration is shown in FIG. The RCSA configuration is disclosed in Non-Patent
SIMD構成においては、膨大な画素値転送量が最大の問題となる。SIMD構成では画素値の再利用が不可能であるため、連続点探索を行う際には、演算に必要な全ての画素値をSWRAM及びTBバッファからその都度読み出す必要がある。その結果、膨大な画素値転送帯域が必要となる。また、RAMの読み出し画素数に制限がある場合、実際に演算を行うサイクルに加え、画素値の読み出しにかかるサイクルが膨大なものとなる。この画素値転送に関する問題が、SIMD構成の問題点となる。 In the SIMD configuration, the huge amount of transfer of pixel values becomes the biggest problem. Since the pixel values cannot be reused in the SIMD configuration, when performing a continuous point search, it is necessary to read out all the pixel values necessary for the calculation from the SWRAM and the TB buffer each time. As a result, a huge pixel value transfer band is required. In addition, when the number of read pixels in the RAM is limited, the cycle for reading pixel values becomes enormous in addition to the cycle for actually performing calculations. This problem relating to pixel value transfer is a problem of the SIMD configuration.
RCSA構成は、連続点探索を行う際に再利用可能な画素を保持しておくことで、SIMD構成に比べて、SWRAM及びTBバッファからの画素値転送量を大幅に削減している。但し、H.264特有のブロック分割に対応していないことが、RCSA構成の問題点として挙げられる。即ち、並列度が512であるにも拘わらず、全ての演算器が同期して動作することしかできないため、mode1(16×16)、mode2(16×8)、mode3(8×16)、及びmode4(8×8)での探索を行う際に、512個全ての演算器が、16×16、16×8、8×16、又は8×8サイズのブロック1個に占有されてしまう。そのため、処理対象であるマクロブロックペア(MB−pair)が細分化されてブロックの個数が増えるにつれ、1マクロブロックペアの探索にかかるサイクル数が大きくなってしまう。この、H.264のブロック分割に伴うサイクル数の増加が、RCSA構成の問題点となる。 The RCSA configuration retains reusable pixels when performing a continuous point search, thereby greatly reducing the amount of pixel value transferred from the SWRAM and TB buffer compared to the SIMD configuration. However, H. The problem with the RCSA configuration is that it does not support block division unique to H.264. That is, since all the arithmetic units can only operate synchronously even though the parallelism is 512, mode1 (16 × 16), mode2 (16 × 8), mode3 (8 × 16), and When performing a search in mode 4 (8 × 8), all 512 arithmetic units are occupied by one block of 16 × 16, 16 × 8, 8 × 16, or 8 × 8 size. Therefore, as the macroblock pair (MB-pair) to be processed is subdivided and the number of blocks increases, the number of cycles required to search for one macroblock pair increases. This H.H. The increase in the number of cycles accompanying H.264 block division becomes a problem of the RCSA configuration.
本発明は、SIMD構成及びRCSA構成における上述の問題点を解決するために成されたものであり、SIMD構成と比べて画素値転送量を削減でき、しかも、RCSA構成の問題(H.264のブロック分割に起因するサイクル数の増加)も回避可能な、画像処理装置を得ることを目的とする。 The present invention has been made in order to solve the above-described problems in the SIMD configuration and the RCSA configuration, and can reduce the pixel value transfer amount as compared with the SIMD configuration. An object is to obtain an image processing apparatus that can avoid an increase in the number of cycles due to block division).
第1の発明に係る画像処理装置は、画像の画素値に基づいて評価値を演算するための複数の演算素子が行列状に配設されたアレイを備え、前記アレイは、それぞれが所定数の前記演算素子を含む複数のサブブロックに分割されており、前記複数のサブブロックの各々は、自サブブロックと、自サブブロックに隣接する隣接サブブロックとを接続するか否かを選択可能な選択手段を有しており、処理すべき画像のサイズに応じて前記選択手段の設定を切り換えることによって、前記アレイ内に、一又は複数のサブブロックを含む一又は複数のブロックを設定可能であることを特徴とする。 An image processing apparatus according to a first aspect of the present invention includes an array in which a plurality of calculation elements for calculating an evaluation value based on pixel values of an image are arranged in a matrix, and each of the arrays has a predetermined number. The sub-block is divided into a plurality of sub-blocks including the arithmetic element, and each of the plurality of sub-blocks is selectable to select whether or not to connect the sub-block and the adjacent sub-block adjacent to the sub-block. And having one or more blocks including one or more sub-blocks in the array by switching the setting of the selection unit according to the size of the image to be processed. It is characterized by.
第2の発明に係る画像処理装置は、第1の発明に係る画像処理装置において特に、前記アレイ内に複数のブロックが設定されている場合、前記複数のブロックの各々は他のブロックとは独立に動作可能であることを特徴とする。 The image processing apparatus according to the second invention is the image processing apparatus according to the first invention, particularly when a plurality of blocks are set in the array, each of the plurality of blocks is independent of other blocks. It is possible to operate.
第3の発明に係る画像処理装置は、第1又は第2の発明に係る画像処理装置において特に、前記サブブロックは、複数の前記演算素子を有する第1ユニットと、前記第1ユニット内の前記演算素子によって演算される又は演算された画素値を保持可能な複数のレジスタを有する第2ユニットとを有しており、前記選択手段は、自サブブロックの第1ユニットへの入力として、自サブブロックの第2ユニット及び隣接サブブロックの第1ユニットの一方を選択する選択手段と、自サブブロックの第2ユニットへの入力として、自サブブロックの第1ユニット及び隣接サブブロックの第2ユニットの一方を選択する選択手段とを含むことを特徴とする。 An image processing apparatus according to a third aspect of the invention is the image processing apparatus according to the first or second aspect of the invention, in particular, the sub-block includes a first unit having a plurality of arithmetic elements and the first unit in the first unit. And a second unit having a plurality of registers capable of holding pixel values calculated or calculated by the calculation element, and the selecting means uses the sub-block as an input to the first unit of the sub-block. Selection means for selecting one of the second unit of the block and the first unit of the adjacent sub-block, and as an input to the second unit of the own sub-block, the first unit of the own sub-block and the second unit of the adjacent sub-block And selecting means for selecting one.
第4の発明に係る画像処理装置は、第3の発明に係る画像処理装置において特に、複数の前記サブブロックが接続されることにより、一の前記ブロック内に複数の第1ユニットと複数の第2ユニットとが含まれる場合、前記複数の第1ユニットのうちの一部の第1ユニットを、他の第1ユニット内の演算素子によって演算される又は演算された画素値を保持するためのレジスタとして使用可能であることを特徴とする。 An image processing apparatus according to a fourth invention is the image processing apparatus according to the third invention, in particular, by connecting a plurality of the sub-blocks, so that a plurality of first units and a plurality of first blocks are included in one block. When two units are included, a register for holding a pixel value calculated or calculated by a calculation element in another first unit for a part of the plurality of first units. It can be used as a feature.
第5の発明に係る画像処理装置は、第1〜第4のいずれか一つの発明に係る画像処理装置において特に、前記アレイにロードされている画像部分に対して所定方向に隣接する箇所の画像部分の画素値を保持可能な記憶部をさらに備え、画像の評価位置を前記所定方向にシフトする際、前記記憶部に保持されている画素値が前記記憶部から前記アレイに入力されることを特徴とする。 An image processing apparatus according to a fifth aspect of the invention is an image processing apparatus according to any one of the first to fourth aspects of the invention, in particular, an image of a location adjacent to the image portion loaded in the array in a predetermined direction. A storage unit capable of holding a pixel value of a portion; and when the evaluation position of the image is shifted in the predetermined direction, the pixel value held in the storage unit is input from the storage unit to the array. Features.
第6の発明に係る画像処理装置は、第5の発明に係る画像処理装置において特に、前記選択手段は、自サブブロックへの入力として、隣接サブブロック及び前記記憶部の一方を選択する選択手段を含むことを特徴とする。 The image processing apparatus according to a sixth aspect of the present invention is the image processing apparatus according to the fifth aspect of the invention, in particular, the selection means selects one of the adjacent sub-block and the storage unit as an input to the own sub-block. It is characterized by including.
第7の発明に係る画像処理装置は、第1〜第6のいずれか一つの発明に係る画像処理装置において特に、前記サブブロックは、自サブブロック内の複数の前記演算素子によって演算された評価値を加算する加算器群を有しており、前記加算器群は、連続する行の評価値を加算するための、フレーム画像対応の加算器群と、隔行の評価値を加算するための、フィールド画像対応の加算器群とを含むことを特徴とする。 An image processing apparatus according to a seventh invention is the image processing apparatus according to any one of the first to sixth inventions, wherein the sub-block is evaluated by the plurality of arithmetic elements in the sub-block. An adder group for adding values, the adder group for adding the evaluation values of successive rows, and for adding the evaluation value of every other row; And an adder group corresponding to the field image.
第1〜第9の発明に係る画像処理装置によれば、アレイは複数のサブブロックに分割されている。そして、処理すべき画像のサイズに応じて選択手段の設定を切り換えることによって、アレイ内に一又は複数のサブブロックを含む一又は複数のブロックが設定される。そのため、処理対象であるマクロブロックペアが細分化されてブロックの個数が増えたとしても、アレイ内に設定された複数のブロックを同時に処理できるため、1マクロブロックペアの探索にかかるサイクル数が増大することを回避できる。 According to the image processing apparatus according to the first to ninth inventions, the array is divided into a plurality of sub-blocks. Then, by switching the setting of the selection unit according to the size of the image to be processed, one or a plurality of blocks including one or a plurality of sub blocks are set in the array. For this reason, even if the number of blocks increases as the macro block pair to be processed increases, the number of cycles required to search for one macro block pair increases because multiple blocks set in the array can be processed simultaneously. Can be avoided.
特に第2の発明に係る画像処理装置によれば、複数のブロックの各々は他のブロックとは独立に動作可能であるため、1マクロブロックペア内の複数のブロックを並列に処理することができる。その結果、1マクロブロックペアの探索にかかるサイクル数が増大することを回避できる。 In particular, according to the image processing apparatus of the second invention, each of the plurality of blocks can operate independently of the other blocks, so that a plurality of blocks in one macroblock pair can be processed in parallel. . As a result, an increase in the number of cycles for searching for one macroblock pair can be avoided.
特に第3の発明に係る画像処理装置によれば、サブブロックは、第1ユニット内の演算素子によって演算される又は演算された画素値を保持可能な複数のレジスタを有する第2ユニットを有している。従って、第2ユニットに保持されている画素値は再利用可能であるため、連続点探索を行う際に、バッファからサブブロックへの画素値の転送量を削減することができる。また、選択手段の設定によって、自サブブロックと隣接サブブロックとを接続しない場合には、自サブブロック内でリング状パスを形成することができる。一方、自サブブロックと隣接サブブロックとを接続する場合には、自サブブロックと隣接サブブロックとの間で、第1ユニット同士及び第2ユニット同士を連結することができる。 In particular, according to the image processing apparatus of the third invention, the sub-block has the second unit having a plurality of registers that can be calculated by the calculation elements in the first unit or that can store the calculated pixel values. ing. Accordingly, since the pixel value held in the second unit can be reused, the transfer amount of the pixel value from the buffer to the sub-block can be reduced when performing the continuous point search. Further, when the sub-block and the adjacent sub-block are not connected due to the setting of the selection means, a ring-shaped path can be formed in the self-sub-block. On the other hand, when connecting the own subblock and the adjacent subblock, the first units and the second units can be connected between the own subblock and the adjacent subblock.
特に第4の発明に係る画像処理装置によれば、複数の第1ユニットのうちの一部を第2ユニットと同等に扱うことにより、中間ロードが不要な最大探索範囲を拡大することができる。 In particular, according to the image processing apparatus of the fourth invention, a maximum search range that does not require an intermediate load can be expanded by treating a part of the plurality of first units in the same manner as the second unit.
特に第5の発明に係る画像処理装置によれば、アレイにロードされている画像部分に隣接する箇所の画像部分の画素値を記憶部に保持しておくことにより、FS(Full Search)としてスネークサーチを実行することが可能となる。 In particular, according to the image processing apparatus of the fifth invention, the pixel value of the image portion adjacent to the image portion loaded in the array is held in the storage unit, so that a snake (FS) is obtained as a FS (Full Search). A search can be executed.
特に第6の発明に係る画像処理装置によれば、選択手段の設定によって、自サブブロックと隣接サブブロックとを接続しない場合には、自サブブロックと記憶部とを接続するパスを形成することができる。一方、自サブブロックと隣接サブブロックとを接続する場合には、自サブブロックと隣接サブブロックとの間で、第1ユニット同士及び第2ユニット同士を連結することができる。 In particular, according to the image processing apparatus of the sixth aspect of the present invention, when the sub-block and the adjacent sub-block are not connected by the setting of the selection unit, a path connecting the sub-block and the storage unit is formed. Can do. On the other hand, when connecting the own subblock and the adjacent subblock, the first units and the second units can be connected between the own subblock and the adjacent subblock.
特に第7の発明に係る画像処理装置によれば、フレーム画像及びフィールド画像の双方に対応することが可能となり、プログレッシブ方式及びインタレース方式の双方を扱うことが可能となる。また、フレーム画像に関する評価値演算と、フィールド画像に関する評価値演算とを同時に実行することが可能となる。 In particular, the image processing apparatus according to the seventh aspect of the invention can handle both frame images and field images, and can handle both progressive and interlace methods. Further, it is possible to simultaneously execute the evaluation value calculation for the frame image and the evaluation value calculation for the field image.
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In addition, the element which attached | subjected the same code | symbol in different drawing shall show the same or corresponding element.
本発明に係る画像処理装置の全体構成を図1に示す。本発明に係る画像処理装置は、H.264対応のIMEコア1(IME:Integer Motion Estimation)として構成されている。IMEコア1は、参照画像用のバッファであるSWRAM2(SWRAM:Search Window RAM)と、符号化対象画像用のバッファであるTBバッファ3(TB:Template Block)と、画像回転処理部(cross path)4と、RRSA構成のアレイ5と、コントローラ6とを備えて構成されている。これらのモジュール群をMEコア内に搭載すれば、本発明に係るRRSAは支障なく動作する。
FIG. 1 shows the overall configuration of an image processing apparatus according to the present invention. An image processing apparatus according to the present invention is described in H.264. It is configured as an H.264 compatible IME core 1 (IME: Integer Motion Estimation). The
IMEコア1では、横8画素×縦8画素(以下「8×8」と表記する)、8×1、1×8サイズの画素ブロックを1サイクルで読み出すことが可能な2portのSRAMが、SWRAM2として搭載されている。また、SWRAM2は、縦方向及び横方向への1/2画素間引き出力が可能である。SWRAM2から読み出し可能な画像ブロックを図2に示す。間引きなしの8×8画素ブロック、横方向に1/2画素間引きの16×8画素ブロック、縦方向に1/2画素間引きの8×16ブロック、縦横両方向に1/2画素間引きの16×16ブロックを、いずれも1サイクルで読み出すことが可能である。
In the
TBバッファ3は、符号化対象であるマクロブロックペアの画像データを格納可能な、512画素分のレジスタファイル(若しくはSRAM)である。TBバッファ3は、保持している画像データから、8×8、8×1、1×8サイズの画素ブロックを1サイクルで出力することができる。
The
画像回転処理部4は、後述する縦方向DS(Directional Search)を実現するために、SWRAM2から出力された画像を回転してデータパスへ受け渡すためのモジュールである。画像を回転した場合にアレイ5に入力される画素の配置を図3に示す。元の画像が反時計方向に90°回転されていることが分かる。
The image
コントローラ6は、アレイ5を含むIMEコア1内の各モジュールを制御するためのモジュールである。コントローラ6からの制御信号に基づいて、アレイ5は様々な探索動作を実行する。
The controller 6 is a module for controlling each module in the
以下、RRSA構成のアレイ5について詳細に説明する。アレイ5の全体構成を図4に示す。アレイ5は複数個(図4に示した例では8個)のサブブロックシストリックアレイ(以下単に「サブブロック」と称す)SBSA0〜SBSA7に分割されている。サブブロックSBSA0〜SBSA7は、それぞれプロセッシングユニットPU0〜PU7とシフトレジスタユニットSRU0〜SRU7とを備えて構成されている。以下、サブブロックSBSA0〜SBSA7を総称する場合は「サブブロックSBSA」と、プロセッシングユニットPU0〜PU7を総称する場合は「プロセッシングユニットPU」と、シフトレジスタユニットSRU0〜SRU7を総称する場合は「シフトレジスタユニットSRU」と、それぞれ称する。プロセッシングユニットPUは、複数の演算素子を有するユニットである。シフトレジスタユニットSRUは、プロセッシングユニットPU内の演算素子によって演算される又は演算された画素値を保持するための複数のシフトレジスタ素子を有するユニットである。
Hereinafter, the
サブブロックSBSAは、8×8単位の評価値を効率的に演算するためのシストリックアレイモジュールである。評価値にはSAD(Sum of Absolute Difference)を使用するものと想定して評価値演算部を構成しているが、その他の評価値を用いることも可能である。サブブロックSBSAは、8×8並列の1個のプロセッシングユニットPUと、8×8並列の1個のシフトレジスタユニットSRUとを備えて構成されている。 The sub-block SBSA is a systolic array module for efficiently calculating an evaluation value of 8 × 8 units. The evaluation value calculation unit is configured on the assumption that SAD (Sum of Absolute Difference) is used as the evaluation value, but other evaluation values can also be used. The sub-block SBSA includes one 8 × 8 parallel processing unit PU and one 8 × 8 parallel shift register unit SRU.
サブブロックSBSAには、自サブブロックの外部からの入力として、(I1)SWRAM2からのプロセッシングユニットPUへの入力、(I2)SWRAM2からのシフトレジスタユニットSRUへの入力、(I3)横隣接サブブロックSBSAのプロセッシングユニットPUからのプロセッシングユニットPUへの入力、(I4)横隣接サブブロックSBSAのシフトレジスタユニットSRUからのシフトレジスタユニットSRUへの入力、(I5)下隣接サブブロックSBSAのプロセッシングユニットPUからのプロセッシングユニットPUへの入力、(I6)下隣接サブブロックSBSAのシフトレジスタユニットSRUからのシフトレジスタユニットSRUへの入力、(I7)記憶部7からのプロセッシングユニットPUへの入力、及び(I8)記憶部7からのシフトレジスタユニットSRUへの入力の、合計8個の入力が存在する。
In the sub-block SBSA, (I1) input from the SWRAM2 to the processing unit PU, (I2) input to the shift register unit SRU from the SWRAM2, (I3) laterally adjacent subblock Input to processing unit PU from processing unit PU of SBSA, (I4) Input to shift register unit SRU from shift register unit SRU of laterally adjacent sub-block SBSA, (I5) From processing unit PU of lower adjacent sub-block SBSA Input to the processing unit PU, (I6) input to the shift register unit SRU from the shift register unit SRU of the lower adjacent sub-block SBSA, (I7) to the processing unit PU from the
それぞれの入力画素サイズは、(I1)については8×8画素、(I2)については8×8画素、(I3)については1×8画素、(I4)については1×8画素、(I5)については8×1画素、(I6)については8×1画素、(I7)については8×1画素、(I8)については8×1画素である。 The respective input pixel sizes are 8 × 8 pixels for (I1), 8 × 8 pixels for (I2), 1 × 8 pixels for (I3), 1 × 8 pixels for (I4), (I5) Is 8 × 1 pixels, (I6) is 8 × 1 pixels, (I7) is 8 × 1 pixels, and (I8) is 8 × 1 pixels.
また、サブブロックSBSAには、内部接続として、プロセッシングユニットPUとシフトレジスタユニットSRUとの間に1×8画素の双方向入出力パスが存在する。このパスはリング状になっており、図4に示した例では、シフトレジスタユニットSRUの右出力はプロセッシングユニットPUの左入力に、シフトレジスタユニットSRUの左出力はプロセッシングユニットPUの右入力に、プロセッシングユニットPUの右出力はシフトレジスタユニットSRUの左入力に、プロセッシングユニットPUの左出力はシフトレジスタユニットSRUの右入力に、それぞれ接続されている。 Further, in the sub-block SBSA, a bidirectional input / output path of 1 × 8 pixels exists as an internal connection between the processing unit PU and the shift register unit SRU. This path is ring-shaped. In the example shown in FIG. 4, the right output of the shift register unit SRU is the left input of the processing unit PU, the left output of the shift register unit SRU is the right input of the processing unit PU, The right output of the processing unit PU is connected to the left input of the shift register unit SRU, and the left output of the processing unit PU is connected to the right input of the shift register unit SRU.
また、サブブロックSBSAは、サブブロック外部への画素出力として、(O1)プロセッシングユニットPUから横隣接サブブロックSBSAのプロセッシングユニットPUへの出力、(O2)シフトレジスタユニットSRUから横隣接サブブロックSBSAのシフトレジスタユニットSRUへの出力、(O3)プロセッシングユニットPUから上隣接サブブロックSBSAのプロセッシングユニットPUへの出力、及び(O4)シフトレジスタユニットSRUから上隣接サブブロックSBSAのシフトレジスタユニットSRUへの出力の、合計4個の出力が存在する。 The sub-block SBSA outputs (O1) an output from the processing unit PU to the processing unit PU of the horizontally adjacent sub-block SBSA, and (O2) a pixel output to the outside of the sub-block. Output to shift register unit SRU, (O3) Output from processing unit PU to processing unit PU of upper adjacent subblock SBSA, and (O4) Output from shift register unit SRU to shift register unit SRU of upper adjacent subblock SBSA There are a total of four outputs.
それぞれの出力画素サイズは、(O1)については1×8画素、(O2)については1×8画素、(O3)については8×1画素、(O4)については8×1画素である。 The respective output pixel sizes are 1 × 8 pixels for (O1), 1 × 8 pixels for (O2), 8 × 1 pixels for (O3), and 8 × 1 pixels for (O4).
また、サブブロックSBSAは、評価値(この例ではSAD)の演算結果をアレイ5の外部へ出力する。一つのサブブロックSBSAから出力されるSADは、後述の図6に示すように、フレーム画像対応のFrame_4×4_SADが4本、フィールド画像対応のField_4×4_SADが4本である。8個のサブブロックSBSA0〜SBSA7からのこれらの演算結果の足しこみ方によって、例えば、16×32のマクロブロックペアでの探索中に同じ探索点でのmode1〜mode4(16×16、16×8、8×16、8×8)のSADを演算するといった副探索手法が実現可能となる。
The sub-block SBSA outputs the calculation result of the evaluation value (SAD in this example) to the outside of the
横隣接サブブロックSBSAからの外部入力と、プロセッシングユニットPU−シフトレジスタユニットSRU間の内部接続とは、動作状態によって選択的に切り換えられる。同様に、下隣接サブブロックSBSAからの外部入力と、記憶部7からの外部入力とは、動作状態によって選択的に切り換えられる。
The external input from the laterally adjacent sub-block SBSA and the internal connection between the processing unit PU and the shift register unit SRU are selectively switched depending on the operation state. Similarly, the external input from the lower adjacent sub-block SBSA and the external input from the
サブブロックSBSAの内部構成を図5に示す。また、プロセッシングユニットPUにおける評価値演算部分(演算素子PE及び加算器部分)の内部構成を図6に示す。また、演算素子PE単体の内部構成を図7に示す。 FIG. 5 shows an internal configuration of the sub-block SBSA. FIG. 6 shows an internal configuration of the evaluation value calculation part (the calculation element PE and the adder part) in the processing unit PU. FIG. 7 shows the internal configuration of the arithmetic element PE alone.
<プロセッシングユニットPU>
図5〜7を参照して、プロセッシングユニットPUは、8×8画素サイズのデータバッファと、画素1点分の評価値演算を行う演算素子PEが64(=8×8)個と、評価値を探索状態に応じて足しこむ加算器12,13とを備えて構成されている。
<Processing unit PU>
Referring to FIGS. 5 to 7, the processing unit PU includes an 8 × 8 pixel size data buffer, 64 (= 8 × 8) computing elements PE that perform evaluation value calculation for one pixel, and evaluation values Are added to each other according to the search state.
また、図5を参照して、プロセッシングユニットPUは、PEマトリクスの各行毎にマルチプレクサ10Aを備えている。マルチプレクサ10Aは、自サブブロックSBSAと、自サブブロックSBSAに隣接する隣接サブブロックSBSAとを接続するか否かを選択するための選択手段である。さらに具体的には、マルチプレクサ10Aは、自サブブロックSBSAのプロセッシングユニットPUへの入力として、自サブブロックSBSAのシフトレジスタユニットSRU、及び隣接サブブロックSBSAのプロセッシングユニットPUの一方を選択するための選択手段である。
Referring to FIG. 5, the processing unit PU includes a
同様に、図5を参照して、シフトレジスタユニットSRUは、SREマトリクスの各行毎にマルチプレクサ10Bを備えている。マルチプレクサ10Bは、自サブブロックSBSAと、自サブブロックSBSAに隣接する隣接サブブロックSBSAとを接続するか否かを選択するための選択手段である。さらに具体的には、マルチプレクサ10Bは、自サブブロックSBSAのシフトレジスタユニットSRUへの入力として、自サブブロックSBSAのプロセッシングユニットPU、及び隣接サブブロックSBSAのシフトレジスタユニットSRUの一方を選択するための選択手段である。
Similarly, referring to FIG. 5, shift register unit SRU includes
処理すべき画像のサイズに応じて、つまりマクロブロックペア(16×32)、mode1(16×16)、mode2(16×8)、mode3(8×16)、mode4(8×8)の別に応じて、マルチプレクサ10A,10Bの設定が切り換えられる。また、実行する探索モードに応じて、つまりFSモード、DSモード、RBMモードの別に応じて、マルチプレクサ10A,10Bの設定が切り換えられる。詳細については後述する。
Depending on the size of the image to be processed, that is, depending on the macroblock pair (16 × 32), mode1 (16 × 16), mode2 (16 × 8), mode3 (8 × 16), and mode4 (8 × 8) Thus, the settings of the
図6に示すように、プロセッシングユニットPUによって演算される評価値は、4×4画素単位のSADである。フレーム画像及びフィールド画像の双方に対応するために、フレーム画像対応の4個の加算器12と、フィールド画像対応の4個の加算器13とが設けられている。加算器12は、連続する4行(合計16個)の演算素子PEのSADを演算して出力する。加算器13は、隔行(1行とばし)の4行(合計16個)の演算素子PEのSADを演算して出力する。
As shown in FIG. 6, the evaluation value calculated by the processing unit PU is SAD in units of 4 × 4 pixels. In order to support both frame images and field images, four
ここで、y方向(縦方向)に1/2に間引かれた画素値がSWRAM2からアレイ5に入力されている場合には、Frame_4×4_SADは、y方向間引きなしのフィールド画像のSAD(又はy方向に1/2に間引かれたフレーム画像のSAD)に相当し、また、Field_4×4_SADは、y方向に1/2に間引かれたフィールド画像のSADに相当する。
Here, when the pixel value thinned by 1/2 in the y direction (vertical direction) is input from the
垂直方向DS(直線探索)を行う場合には、入力画像の回転に応じてField_4×4_SADが演算される。そのため、垂直方向DSにおいてもField_4×4_SADを利用した副探索が可能である。 When performing vertical direction DS (straight line search), Field_4 × 4_SAD is calculated according to the rotation of the input image. Therefore, a sub search using Field_4 × 4_SAD is possible even in the vertical direction DS.
プロセッシングユニットPUは、8×8画素サイズのデータバッファを有している(図7の“register”)。このバッファは、参照画像SWの画素値及び符号化対象画像TBの画素値を、8×8サイズで保持可能である。初期ロードとして、参照画像SW用のバッファは、SWRAM2から8×8画素の画素値の供給を受け、これを1サイクルで保持することができる。また、プロセッシングユニットPUは、内部に保持している参照画像SWの画素値を、左右に1画素分シフトすることが可能である。このシフトによって溢れた画素値は、同一サブブロックSBSA内のシフトレジスタユニットSRU、又は横隣接サブブロックSBSA内のプロセッシングユニットPUへと供給することが可能である。評価値演算部を使用しない(つまり演算素子PEからの出力を破棄する)という設定も可能であり、この場合、プロセッシングユニットPUは、8×8サイズのシフトレジスタとして動作する。さらに、プロセッシングユニットPUは、下方向からの画素値の供給を受けて、内部に保持している画素値を縦方向に1画素分シフトすることができる。このシフトによって溢れた画素値は、上隣接サブブロックSBSA内のプロセッシングユニットPUへと供給することが可能である。
The processing unit PU has a data buffer of 8 × 8 pixel size (“register” in FIG. 7). This buffer can hold the pixel value of the reference image SW and the pixel value of the encoding target image TB in an 8 × 8 size. As an initial load, the buffer for the reference image SW is supplied with a pixel value of 8 × 8 pixels from the
<シフトレジスタユニットSRU>
シフトレジスタユニットSRUは、8×8画素の合計64画素分の画素値バッファであり、8×8個のシフトレジスタ素子SREを備えて構成されている。シフトレジスタ素子SRE単体の内部構成を図8に示す。初期ロードとして、シフトレジスタユニットSRUはSWRAM2から8×8画素の画素値の供給を受け、これを1サイクルで保持することができる。シフトレジスタユニットSRUは、内部に保持している画素値を左右に1画素分シフトすることができ、このシフトによって溢れた画素値は、同一サブブロックSBSA内のプロセッシングユニットPU、又は横隣接サブブロックSBSA内のシフトレジスタユニットSRUへと供給することが可能である。また、シフトレジスタユニットSRUは、下方向からの画素値の供給を受けて、保持している画素値を縦方向に1画素分シフトすることができる。このシフトによって溢れた画素値は、上隣接サブブロックSBSA内のシフトレジスタユニットSRUへと供給することが可能である。
<Shift register unit SRU>
The shift register unit SRU is a pixel value buffer for a total of 64 pixels of 8 × 8 pixels, and includes 8 × 8 shift register elements SRE. FIG. 8 shows an internal configuration of the shift register element SRE alone. As an initial load, the shift register unit SRU receives a pixel value of 8 × 8 pixels from the
図4を参照して、記憶部(REG_VS)7は、FS(Full Search)動作時の縦方向探索を実現するためのデータバッファ用レジスタである。記憶部7の内部構成を図9に示す。記憶部7への外部からの入力としては、SWRAM2からの8×1画素の画素値入力が存在する。また、記憶部7からの外部への入力としては、各サブブロックSBSAのプロセッシングユニットPUへの8×1画素の画素値出力、及び各サブブロックSBSAのシフトレジスタユニットSRUへの8×1画素の画素値出力が存在する。記憶部7は、8×1画素単位の画素値バッファ15を16個(プロセッシングユニットPU用に8個、シフトレジスタユニットSRU用に8個)備えて構成されている。SWRAM2から入力された画素値データは、いずれかの画素値バッファ15に入力され、保持される。記憶部7は、画素値バッファ15に保持している全ての画素値データを、対応するサブブロックSBSA(プロセッシングユニットPU及びシフトレジスタユニットSRU)に同時に出力することができる。
Referring to FIG. 4, storage unit (REG_VS) 7 is a data buffer register for realizing a vertical search during an FS (Full Search) operation. The internal configuration of the
次に、本実施の形態に係る画像処理装置の動作について説明する。 Next, the operation of the image processing apparatus according to this embodiment will be described.
以下では、実現可能な各探索手法における全体動作について説明する。本実施の形態に係る画像処理装置で実行可能な探索手法には、(1)FS(Full Search)、(2)DS(Directional Search)、及び(3)RBM(Random Block Matching)が含まれる。また、RRSA構成では、探索手法だけでなく、探索を実行するブロックサイズによっても構成を変える。対応可能なブロックサイズには、16×32、16×16、16×8、8×16、及び8×8が含まれる。 Below, the whole operation | movement in each search method which can be implement | achieved is demonstrated. Search methods that can be executed by the image processing apparatus according to the present embodiment include (1) FS (Full Search), (2) DS (Directional Search), and (3) RBM (Random Block Matching). In the RRSA configuration, the configuration is changed not only by the search method but also by the block size for executing the search. Supported block sizes include 16 × 32, 16 × 16, 16 × 8, 8 × 16, and 8 × 8.
サブブロックSBSAの基本動作として、初期ロード、水平シフト動作、及び垂直シフト動作が定義されている。RRSA構成では、探索手法に応じてこれらの基本動作を適宜に組み合わせることによって、様々な探索手法を同一のアーキテクチャによって実現している。 An initial load, a horizontal shift operation, and a vertical shift operation are defined as basic operations of the sub-block SBSA. In the RRSA configuration, various search methods are realized by the same architecture by appropriately combining these basic operations according to the search method.
<初期ロード>
プロセッシングユニットPU、シフトレジスタユニットSRU、及び記憶部7が初期的なロードで保持する画素値についての詳細を図10,11に示す。図10は画像を回転させない場合について示しており、図11は画像を回転させる場合について示している。
<Initial load>
Details of the pixel values that the processing unit PU, the shift register unit SRU, and the
図10を参照して、プロセッシングユニットPUには、8×8の画像部分の画素値(図10のa〜h)が、1サイクルでロードされる。シフトレジスタユニットSRUには、プロセッシングユニットPUにロードされる画像部分に右隣接する8×8の画像部分の画素値(図10の“0”〜“7”)が、1サイクルでロードされる。記憶部7には、プロセッシングユニットPUにロードされる画像部分に下隣接する8×1の画像部分の画素値(図10の“u”)が、1サイクルでロードされる。また、記憶部7には、シフトレジスタユニットSRUにロードされる画像部分に下隣接する8×1の画像部分の画素値(図10の“v”)が、1サイクルロードされる。
Referring to FIG. 10, pixel values (a to h in FIG. 10) of an 8 × 8 image portion are loaded into processing unit PU in one cycle. The shift register unit SRU is loaded with the pixel values (“0” to “7” in FIG. 10) of the 8 × 8 image portion right adjacent to the image portion to be loaded into the processing unit PU in one cycle. The pixel value (“u” in FIG. 10) of the 8 × 1 image portion that is adjacent to the lower portion of the image portion loaded in the processing unit PU is loaded into the
図9を参照して、初期ロードで記憶部7内の16個全ての画素値バッファ15に画素値を同時にロードすることは不可能であるため、各画素値バッファ15毎に順に画素値をロードさせていく必要がある。
Referring to FIG. 9, since it is impossible to load pixel values to all 16 pixel value buffers 15 in the
図11を参照して、プロセッシングユニットPUには、8×8の画像部分の画素値(図11のa〜h)が、画像回転処理部4(図1参照)によって反時計回りに90°回転されつつ、1サイクルでロードされる。また、シフトレジスタユニットSRUには、プロセッシングユニットPUにロードされる画像部分に下隣接する8×8の画像部分の画素値(図10の“0”〜“7”)が、画像回転処理部4によって反時計回りに90°回転されつつ、1サイクルでロードされる。 Referring to FIG. 11, in the processing unit PU, the pixel values (a to h in FIG. 11) of the 8 × 8 image portion are rotated 90 ° counterclockwise by the image rotation processing unit 4 (see FIG. 1). However, it is loaded in one cycle. The shift register unit SRU stores the pixel values (“0” to “7” in FIG. 10) of the 8 × 8 image portion that is adjacent to the image portion loaded in the processing unit PU. Is loaded in one cycle while being rotated 90 ° counterclockwise.
<左シフト動作>
左シフト動作は、現在の保持状態から左方向に画素値をシフトする動作であり、直線連続点探索の基本となる動作である。探索としては、左から右に向かって連続点探索を行う動作となる。左シフト動作を図12に示す。シフトレジスタユニットSRUの左端列8画素分の画素値(図12の“0”)が、プロセッシングユニットPUに供給されて、プロセッシングユニットPUの右端列8画素に保持される。プロセッシングユニットPUから溢れた画素値(図12の“a”)は、シフトレジスタユニットSRUの右端列8画素に保持させることができる。
<Left shift operation>
The left shift operation is an operation that shifts the pixel value in the left direction from the current holding state, and is a basic operation of the linear continuous point search. The search is an operation of performing a continuous point search from left to right. FIG. 12 shows the left shift operation. The pixel values (“0” in FIG. 12) for the 8 pixels in the left end column of the shift register unit SRU are supplied to the processing unit PU and held in the 8 pixels in the right end column of the processing unit PU. The pixel value overflowing from the processing unit PU (“a” in FIG. 12) can be held in 8 pixels in the right end column of the shift register unit SRU.
<右シフト動作>
右シフト動作は、現在の保持状態から右方向に画素値をシフトする動作であり、FS動作としてスネークサーチ(図15参照)を実現するために必要となる動作である。探索としては、右から左に向かって連続点探索を行う動作となる。右シフト動作を図13に示す。プロセッシングユニットPUの右端列8画素分の画素値(図13の“h”)が、シフトレジスタユニットSRUに供給されて、シフトレジスタユニットSRUの左端列8画素に保持される。シフトレジスタユニットSRUから溢れた画素値(図13の“7”)は、プロセッシングユニットPUの左端列8画素に保持させることができる。
<Right shift operation>
The right shift operation is an operation for shifting the pixel value in the right direction from the current holding state, and is an operation necessary for realizing the snake search (see FIG. 15) as the FS operation. As the search, a continuous point search is performed from right to left. The right shift operation is shown in FIG. Pixel values corresponding to 8 pixels in the right end column of the processing unit PU ("h" in FIG. 13) are supplied to the shift register unit SRU and held in the 8 pixels in the left end column of the shift register unit SRU. The pixel value overflowing from the shift register unit SRU (“7” in FIG. 13) can be held in the leftmost column of 8 pixels of the processing unit PU.
<上シフト動作>
上シフト動作は、現在の保持状態から上方向に画素値をシフトする動作であり、FS動作としてスネークサーチ(図15参照)を実現するために必要となる動作である。探索としては、上から下に向かって1画素分だけシフトする動作となる。上シフト動作を図14に示す。記憶部7(又は下隣接サブブロックSBSA内のプロセッシングユニットPU)に保持されている8×1画素の画素値(図14の“u”)が、プロセッシングユニットPUに供給されて、プロセッシングユニットPUの下端行8画素に保持される。プロセッシングユニットPUから溢れた上端行8画素分の画素値は、上隣接サブブロックSBSA内のプロセッシングユニットPUの下端行8画素に保持されるか、破棄される。
<Upshift operation>
The upward shift operation is an operation for shifting the pixel value upward from the current holding state, and is an operation necessary for realizing a snake search (see FIG. 15) as the FS operation. The search is an operation of shifting by one pixel from top to bottom. FIG. 14 shows the upshift operation. The pixel value of 8 × 1 pixels (“u” in FIG. 14) held in the storage unit 7 (or the processing unit PU in the lower adjacent sub-block SBSA) is supplied to the processing unit PU, and the processing unit PU It is held at the bottom row of 8 pixels. The pixel values for the upper 8 rows of pixels overflowing from the processing unit PU are held in the lower 8 rows of the processing unit PU in the upper adjacent sub-block SBSA or discarded.
また、記憶部7(又は下隣接サブブロックSBSA内のシフトレジスタユニットSRU)に保持されている8×1画素の画素値(図14の“v”)が、シフトレジスタユニットSRUに供給されて、シフトレジスタユニットSRUの下端行8画素に保持される。シフトレジスタユニットSRUから溢れた上端行8画素分の画素値は、上隣接サブブロックSBSA内のシフトレジスタユニットSRUの下端行8画素に保持されるか、破棄される。
Further, the 8 × 1 pixel value (“v” in FIG. 14) held in the storage unit 7 (or the shift register unit SRU in the lower adjacent sub-block SBSA) is supplied to the shift register unit SRU, It is held in the bottom row of 8 pixels of the shift register unit SRU. The pixel values for the upper 8 rows of pixels overflowing from the shift register unit SRU are held in the
<FS(Full Search)>
FSは一般的な探索手法であり、探索範囲として指定した矩形領域を網羅的に探索する手法である。RRSA構成では、FSをスネークサーチと呼ばれる方法で実現する。スネークサーチにおける矩形領域内の探索順を図15に示す。また、FS時におけるサブブロックSBSA内の内部結線状態を図16〜20に示す。図16はマクロブロックペア(16×32)に対応し、図17はmode1(16×16)に対応し、図18はmode2(16×8)に対応し、図19はmode3(8×16)に対応し、図20はmode4(8×8)に対応する。
<FS (Full Search)>
FS is a general search method, and is a method for exhaustively searching a rectangular area designated as a search range. In the RRSA configuration, FS is realized by a method called snake search. The search order in the rectangular area in the snake search is shown in FIG. Moreover, the internal connection state in the sub-block SBSA at the time of FS is shown in FIGS. 16 corresponds to a macroblock pair (16 × 32), FIG. 17 corresponds to mode 1 (16 × 16), FIG. 18 corresponds to mode 2 (16 × 8), and FIG. 19 corresponds to mode 3 (8 × 16). FIG. 20 corresponds to mode 4 (8 × 8).
ブロックサイズがマクロブロックペア、mode1、mode2である場合は、図16〜18に示すように、横隣接サブブロックSBSA間で接続パスが形成され、一方、mode3、mode4である場合は、図19,20に示すように、横隣接サブブロックSBSA間で接続パスは形成されない。
When the block size is a macroblock pair,
下方向からの入力もブロックサイズに応じて決定され、ブロックサイズがマクロブロックペア、mode1、mode3である場合は、図16,17,19に示すように、縦隣接サブブロックSBSA間で接続パスが形成され、一方、mode2、mode4である場合は、図18,20に示すように、記憶部7との間で接続パスが形成される。但し、図16,17,19においても、一番下に位置するサブブロックSBSAは、記憶部7との間で接続パスを形成している。
The input from the lower direction is also determined according to the block size. When the block size is a macroblock pair, mode1, and mode3, as shown in FIGS. 16, 17, and 19, the connection path is between vertical adjacent subblocks SBSA. On the other hand, in the case of
図15に示すように、スネークサーチでは、左シフト→上シフト→右シフト→上シフト→左シフト→・・・の順で動作が繰り返される。プロセッシングユニットPU及びシフトレジスタユニットSRUが保持している画素値を最大限利用し、水平方向の最大探索範囲を、mode3、mode4の場合は±4以下とし、マクロブロックペア、mode1、mode2の場合は±8以下とすれば、FSにおいてプロセッシングユニットPU及びシフトレジスタユニットSRUの双方ともに中間ロードは必要ない。但し、ストールを生じさせずにFSを完了させるためには、上シフトを実行してから次の上シフトを実行するまでの間に、記憶部7に次の行の画素値をロードしておく必要がある。
As shown in FIG. 15, in the snake search, the operation is repeated in the order of left shift → upshift → right shift → upshift → left shift →. The pixel values held by the processing unit PU and the shift register unit SRU are used to the maximum, the maximum horizontal search range is ± 4 or less for
また、本実施の形態に係る画像処理装置では、横隣接サブブロックSBSA間での接続を利用して、2個のプロセッシングユニットPUと2個のシフトレジスタユニットSRUとを水平方向で直列に接続することが可能である。従って、mode3又はmode4で要求並列度が256以下(つまり使用するサブブロックSBSAが4個以下)である場合には、一方のプロセッシングユニットPUをシフトレジスタとして使用することで、1個のプロセッシングユニットPUと3個のシフトレジスタユニットSRUとの直列接続として使用することができる。この場合は、中間ロードなしでの最大探索範囲を±12まで拡大することが可能となる。
Further, in the image processing apparatus according to the present embodiment, two processing units PU and two shift register units SRU are connected in series in the horizontal direction using the connection between the horizontally adjacent sub-blocks SBSA. It is possible. Accordingly, when the required parallelism is 256 or less (that is, 4 or less sub-blocks SBSA are used) in
<DS(Directional Search)>
DSは、水平又は垂直に直線探索を行う探索手法である。DS時におけるサブブロックSBSA内の内部結線状態を図21〜25に示す。図21はマクロブロックペア(16×32)に対応し、図22はmode1(16×16)に対応し、図23はmode2(16×8)に対応し、図24はmode3(8×16)に対応し、図25はmode4(8×8)に対応する。
<DS (Directional Search)>
DS is a search method that performs a straight line search horizontally or vertically. The internal connection state in the sub-block SBSA at the time of DS is shown in FIGS. 21 corresponds to a macroblock pair (16 × 32), FIG. 22 corresponds to mode 1 (16 × 16), FIG. 23 corresponds to mode 2 (16 × 8), and FIG. 24 corresponds to mode 3 (8 × 16). FIG. 25 corresponds to mode 4 (8 × 8).
垂直方向探索である場合には、SWRAM2からデータパスに入力される画素値は、画像回転処理部4(図1参照)によって反時計回りに90°回転される。アレイ5のサイズが16×32画素であり、回転後のマクロブロックペアをアレイ5に保持することができないため、マクロブロックペアに関しては垂直方向探索は不可能である。但し、アレイ5の水平サイズを32画素以上に拡大することで、マクロブロックペアに関する垂直方向探索も可能となる。
In the case of the vertical search, the pixel value input to the data path from the
DSの探索は、左シフト(図12)のみを用いて行う。ブロックサイズがマクロブロックペア、mode1、mode2である場合は、図21〜23に示すように、横隣接サブブロックSBSA間で接続パスが形成され、一方、mode3、mode4である場合は、図24,25に示すように、横隣接サブブロックSBSA間で接続パスは形成されない。
The DS search is performed using only the left shift (FIG. 12). When the block size is a macroblock pair,
シフトレジスタユニットSRUに関しては、8点分の探索を行うごとに1回の中間ロードを行う必要がある。中間ロードの際には、SWRAM2から8×8画素分の画素値が1サイクルでシフトレジスタユニットSRUに供給される。
With respect to the shift register unit SRU, it is necessary to perform one intermediate load every time eight points are searched. At the time of intermediate loading, pixel values for 8 × 8 pixels are supplied from the
<RBM(Random Block Matching>
RBMは、単一点のみを探索する探索手法である。単一点の探索に関しては特にシフト動作を行う必要はなく、プロセッシングユニットPUに初期ロードを行うだけで、その点の評価値が自動的に求まる。
<RBM (Random Block Matching>
RBM is a search method for searching only a single point. With respect to the search for a single point, it is not necessary to perform a shift operation, and the evaluation value at that point is automatically obtained by simply performing an initial load on the processing unit PU.
FS、DS、RBMにおいて、ブロックサイズがマクロブロックペアである場合は、8個のサブブロックSBSAが接続されて、16×32の1個のブロックが構成されている。この場合、図26の(A)に示すように、アレイ5内には1個のブロックのみを構成可能である。
In FS, DS, and RBM, when the block size is a macroblock pair, eight sub-blocks SBSA are connected to form one 16 × 32 block. In this case, as shown in FIG. 26A, only one block can be configured in the
同様に、mode1の場合は、4個(横2個×縦2個)のサブブロックSBSAが接続されて、16×16のブロックが構成されている。この場合、図26の(B)に示すように、アレイ5内には最大2個のブロックを構成可能である。2個のブロックの各々は、他のブロックとは独立して動作可能である。
Similarly, in the case of
同様に、mode2の場合は、横2個のサブブロックSBSAが接続されて、16×8のブロックが構成されている。この場合、図26の(C)に示すように、アレイ5内には最大4個のブロックを構成可能である。4個のブロックの各々は、他のブロックとは独立して動作可能である。
Similarly, in the case of
同様に、mode3の場合は、縦2個のサブブロックSBSAが接続されて、8×16のブロックが構成されている。この場合、図26の(D)に示すように、アレイ5内には最大4個のブロックを構成可能である。4個のブロックの各々は、他のブロックとは独立して動作可能である。
Similarly, in the case of
同様に、mode4の場合は、1個のサブブロックSBSAによって、8×8のブロックが構成されている。この場合、図27の(E)に示すように、アレイ5内には最大8個のブロック(サブブロックに等しい)を構成可能である。8個のブロックの各々は、他のブロックとは独立して動作可能である。
Similarly, in the case of
また、図27の(F),(G)に示すように、2種類のmodeを同時に実行することも可能である。さらに、図27の(H)に示すように、3種類のmodeを同時に実行することも可能である。このような場合であっても、複数のブロックの各々は、他のブロックとは独立して動作可能である。また、複数種類のブロックサイズの同時使用と同様に、複数種類の探索手法を同時に実行することも可能である。例えば、図26の(B)において、上側の16×16のブロックではFS動作を行い、これと同時に、下側の16×16のブロックではDS動作を行うことが可能である。 In addition, as shown in FIGS. 27F and 27G, two types of modes can be executed simultaneously. Further, as shown in FIG. 27H, three types of modes can be executed simultaneously. Even in such a case, each of the plurality of blocks can operate independently of the other blocks. Further, similarly to the simultaneous use of a plurality of types of block sizes, a plurality of types of search methods can be executed simultaneously. For example, in FIG. 26B, it is possible to perform the FS operation in the upper 16 × 16 block and simultaneously perform the DS operation in the lower 16 × 16 block.
<まとめ>
このように本実施の形態に係る画像処理装置によれば、アレイ5は複数のサブブロックSBSA0〜SBSA7に分割されている。そして、処理すべき画像のサイズに応じてマルチプレクサ10A,10B,11A,11Bの設定を切り換えることによって、アレイ5内に一又は複数のサブブロックSBSAを含む一又は複数のブロックが設定される。そのため、処理対象であるマクロブロックペアが細分化されてブロックの個数が増えたとしても、アレイ5内に設定された複数のブロックを同時に処理できるため、1マクロブロックペアの探索にかかるサイクル数が増大することを回避できる。また、複数のブロックの各々は他のブロックとは独立に動作可能であるため、1マクロブロックペア内の複数のブロックを並列に処理することができる。その結果、1マクロブロックペアの探索にかかるサイクル数が増大することを回避できる。
<Summary>
Thus, according to the image processing apparatus according to the present embodiment,
数値計算によって本発明の効果を検証した結果を図28〜31に示す。サイクル数及びSRAMからのデータ転送量に関して、本発明に係るRRSA構成を、従来のSIMD構成及びRCSA構成と比較している。 The result of having verified the effect of this invention by numerical calculation is shown to FIGS. Regarding the number of cycles and the amount of data transferred from the SRAM, the RRSA configuration according to the present invention is compared with the conventional SIMD configuration and RCSA configuration.
各mode毎に、サイクル数及びデータ転送量ともにSIMD構成での値を100%として正規化を行っている。図28は、FS動作を探索範囲±4×±4(計91点)として行った場合の見積もりである。図29は、FS動作を探索範囲±8×±8(計289点)として行った場合の見積もりである。図30は、DS動作を探索範囲連続33点として行った場合の見積もりである。図31は、RBM動作を探索範囲ランダム16点として行った場合の見積もりである。図28〜31を参照すると、全ての場合において、本発明に係るRRSA構成は、従来のSIMD構成及びRCSA構成と比べて、サイクル数及びデータ転送量を削減できていることが分かる。 For each mode, normalization is performed with the number of cycles and the data transfer amount set to 100% in the SIMD configuration. FIG. 28 is an estimate when the FS operation is performed in the search range ± 4 × ± 4 (91 points in total). FIG. 29 is an estimate when the FS operation is performed with a search range of ± 8 × ± 8 (total of 289 points). FIG. 30 is an estimate when the DS operation is performed with 33 consecutive search ranges. FIG. 31 shows an estimate when the RBM operation is performed with a search range random of 16 points. Referring to FIGS. 28 to 31, in all cases, it can be seen that the RRSA configuration according to the present invention can reduce the number of cycles and the amount of data transfer compared to the conventional SIMD configuration and RCSA configuration.
1 IMEコア
2 SWRAM
3 TBバッファ
4 画像回転処理部
5 アレイ
7 記憶部
10A,10B,11A,11B マルチプレクサ
1
3
Claims (7)
前記アレイは、それぞれが所定数の前記演算素子を含む複数のサブブロックに分割されており、
前記複数のサブブロックの各々は、自サブブロックと、自サブブロックに隣接する隣接サブブロックとを接続するか否かを選択可能な選択手段を有しており、
処理すべき画像のサイズに応じて前記選択手段の設定を切り換えることによって、前記アレイ内に、一又は複数のサブブロックを含む一又は複数のブロックを設定可能である、画像処理装置。 A plurality of computing elements for computing evaluation values based on pixel values of an image are provided in an array,
The array is divided into a plurality of sub-blocks each including a predetermined number of the arithmetic elements,
Each of the plurality of sub-blocks has selection means capable of selecting whether or not to connect the own sub-block and an adjacent sub-block adjacent to the own sub-block,
An image processing apparatus capable of setting one or a plurality of blocks including one or a plurality of sub-blocks in the array by switching the setting of the selection unit according to the size of an image to be processed.
複数の前記演算素子を有する第1ユニットと、
前記第1ユニット内の前記演算素子によって演算される又は演算された画素値を保持可能な複数のレジスタを有する第2ユニットと
を有しており、
前記選択手段は、
自サブブロックの第1ユニットへの入力として、自サブブロックの第2ユニット及び隣接サブブロックの第1ユニットの一方を選択する選択手段と、
自サブブロックの第2ユニットへの入力として、自サブブロックの第1ユニット及び隣接サブブロックの第2ユニットの一方を選択する選択手段と
を含む、請求項1又は2に記載の画像処理装置。 The sub-block is
A first unit having a plurality of arithmetic elements;
A second unit having a plurality of registers that can be calculated by the calculation element in the first unit or that can hold the calculated pixel value;
The selection means includes
Selection means for selecting one of the second unit of the own subblock and the first unit of the adjacent subblock as an input to the first unit of the own subblock;
The image processing apparatus according to claim 1, further comprising selection means for selecting one of the first unit of the own subblock and the second unit of the adjacent subblock as an input to the second unit of the own subblock.
画像の評価位置を前記所定方向にシフトする際、前記記憶部に保持されている画素値が前記記憶部から前記アレイに入力される、請求項1〜4のいずれか一つに記載の画像処理装置。 A storage unit capable of holding a pixel value of an image portion at a location adjacent to the image portion loaded in the array in a predetermined direction;
The image processing according to claim 1, wherein when the evaluation position of the image is shifted in the predetermined direction, a pixel value held in the storage unit is input from the storage unit to the array. apparatus.
自サブブロックへの入力として、隣接サブブロック及び前記記憶部の一方を選択する選択手段
を含む、請求項5に記載の画像処理装置。 The selection means includes
The image processing apparatus according to claim 5, further comprising selection means for selecting one of an adjacent sub-block and the storage unit as an input to the own sub-block.
前記加算器群は、
連続する行の評価値を加算するための、フレーム画像対応の加算器群と、
隔行の評価値を加算するための、フィールド画像対応の加算器群と
を含む、請求項1〜6のいずれか一つに記載の画像処理装置。 The sub-block has an adder group that adds evaluation values calculated by the plurality of arithmetic elements in the sub-block.
The adder group is:
An adder group corresponding to frame images for adding evaluation values of consecutive rows;
The image processing apparatus according to claim 1, further comprising an adder group corresponding to a field image for adding an evaluation value for every other row.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007298142A JP5020029B2 (en) | 2007-11-16 | 2007-11-16 | Image processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007298142A JP5020029B2 (en) | 2007-11-16 | 2007-11-16 | Image processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009123074A true JP2009123074A (en) | 2009-06-04 |
JP5020029B2 JP5020029B2 (en) | 2012-09-05 |
Family
ID=40815137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007298142A Expired - Fee Related JP5020029B2 (en) | 2007-11-16 | 2007-11-16 | Image processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5020029B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9317474B2 (en) | 2012-08-07 | 2016-04-19 | Renesas Electronics Corporation | Semiconductor device |
JP2016520239A (en) * | 2013-05-29 | 2016-07-11 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | An array of reconfigurable instruction cells with conditional channel routing and in-place functionality |
JP2018513473A (en) * | 2015-04-23 | 2018-05-24 | グーグル エルエルシー | Energy efficient processor core architecture for image processors |
EP3605544A1 (en) * | 2015-12-04 | 2020-02-05 | Google LLC | Image processor comprising a shift register with reduced wiring complexity |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61136169A (en) * | 1984-12-06 | 1986-06-24 | Toshiba Corp | High-speed arithmetic unit |
JPH04290155A (en) * | 1991-03-19 | 1992-10-14 | Fujitsu Ltd | Parallel data processing system |
JPH05103318A (en) * | 1991-08-09 | 1993-04-23 | Seiko Epson Corp | Moving vector detection circuit |
JPH05216988A (en) * | 1992-02-04 | 1993-08-27 | Hitachi Ltd | Template arithmetic processing method and its device |
JPH09218949A (en) * | 1996-02-13 | 1997-08-19 | Sharp Corp | Block matching device |
-
2007
- 2007-11-16 JP JP2007298142A patent/JP5020029B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61136169A (en) * | 1984-12-06 | 1986-06-24 | Toshiba Corp | High-speed arithmetic unit |
JPH04290155A (en) * | 1991-03-19 | 1992-10-14 | Fujitsu Ltd | Parallel data processing system |
JPH05103318A (en) * | 1991-08-09 | 1993-04-23 | Seiko Epson Corp | Moving vector detection circuit |
JPH05216988A (en) * | 1992-02-04 | 1993-08-27 | Hitachi Ltd | Template arithmetic processing method and its device |
JPH09218949A (en) * | 1996-02-13 | 1997-08-19 | Sharp Corp | Block matching device |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9317474B2 (en) | 2012-08-07 | 2016-04-19 | Renesas Electronics Corporation | Semiconductor device |
JP2016520239A (en) * | 2013-05-29 | 2016-07-11 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | An array of reconfigurable instruction cells with conditional channel routing and in-place functionality |
JP2018513473A (en) * | 2015-04-23 | 2018-05-24 | グーグル エルエルシー | Energy efficient processor core architecture for image processors |
US10275253B2 (en) | 2015-04-23 | 2019-04-30 | Google Llc | Energy efficient processor core architecture for image processor |
US10754654B2 (en) | 2015-04-23 | 2020-08-25 | Google Llc | Energy efficient processor core architecture for image processor |
US11138013B2 (en) | 2015-04-23 | 2021-10-05 | Google Llc | Energy efficient processor core architecture for image processor |
EP3605544A1 (en) * | 2015-12-04 | 2020-02-05 | Google LLC | Image processor comprising a shift register with reduced wiring complexity |
US10998070B2 (en) | 2015-12-04 | 2021-05-04 | Google Llc | Shift register with reduced wiring complexity |
Also Published As
Publication number | Publication date |
---|---|
JP5020029B2 (en) | 2012-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107563952B (en) | Convolutional neural network on programmable two-dimensional image processor | |
US20100017450A1 (en) | Architecture for vector memory array transposition using a block transposition accelerator | |
JP2008165756A (en) | Array of processing elements with local registers | |
JP6895466B2 (en) | Statistical operations on a 2D image processor | |
US8509567B2 (en) | Half pixel interpolator for video motion estimation accelerator | |
US9665540B2 (en) | Video decoder with a programmable inverse transform unit | |
JP6745389B2 (en) | Shift register with reduced wiring complexity | |
JP5020029B2 (en) | Image processing device | |
US10719295B2 (en) | Circuit to perform dual input value absolute value and sum operation | |
JPH04128982A (en) | Processor element, processing unit, processor, and method of processing operation | |
Hameed et al. | Understanding sources of ineffciency in general-purpose chips | |
JP6003744B2 (en) | Arithmetic processing device and arithmetic processing method | |
JP5739779B2 (en) | SIMD processor, control processor and processor element | |
JPWO2007099950A1 (en) | Processor array system with high-speed inter-PE data relocation function | |
JP4255475B2 (en) | Data-driven information processing device | |
CN101370143B (en) | Image motion estimating method and apparatus | |
JP5889747B2 (en) | Semiconductor device | |
EP1927950A1 (en) | Array of processing elements with local registers | |
JP2009232441A (en) | Method and apparatus for performing overlap filtering and core transform | |
JP5488609B2 (en) | Single instruction multiple data (SIMD) processor having multiple processing elements interconnected by a ring bus | |
JP4290608B2 (en) | Image processing circuit and image processing method | |
Kim et al. | Efficient program control schemes for Motion Estimation specific processor | |
WO2013145221A1 (en) | Pipeline-type processor | |
TWI407797B (en) | Intra-frame prediction method and prediction apparatus using the same | |
JP2017204879A (en) | Moving image encoder and moving image encoding method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101004 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20101005 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20110621 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111017 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111208 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120521 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120612 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5020029 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150622 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |