JP2009044654A - Affine transformation device - Google Patents
Affine transformation device Download PDFInfo
- Publication number
- JP2009044654A JP2009044654A JP2007209925A JP2007209925A JP2009044654A JP 2009044654 A JP2009044654 A JP 2009044654A JP 2007209925 A JP2007209925 A JP 2007209925A JP 2007209925 A JP2007209925 A JP 2007209925A JP 2009044654 A JP2009044654 A JP 2009044654A
- Authority
- JP
- Japan
- Prior art keywords
- data
- image
- outputting
- unit
- line
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P20/00—Technologies relating to chemical industry
- Y02P20/50—Improvements relating to the production of bulk chemicals
- Y02P20/52—Improvements relating to the production of bulk chemicals using catalysts, e.g. selective catalysts
Landscapes
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
Description
本発明は、アフィン変換された画像を出力するためのデータを生成する装置に関するものである。 The present invention relates to an apparatus for generating data for outputting an affine transformed image.
平面図形(立体図形の投影も含む)から平面図形への変換の1つとしてアフィン変換が知られている。アフィン変換は、平行線が平行線に変換される変換であり、図形を所定の角度回転させたり、スキュー補正を施すためなどに用いられる。 Affine transformation is known as one of transformations from a plane figure (including projection of a solid figure) to a plane figure. The affine transformation is a transformation in which parallel lines are converted into parallel lines, and is used for rotating a figure by a predetermined angle or performing skew correction.
アフィン変換においては、x−y座標系により生成された画像データ(輝度データなどを含む)を、x−y座標系をθ回転したw−z座標系における画像データに変換する。回転座標系は、以下の式(A)で表わされる。R(θ)はアフィン変換行列である。
(w,z)=R(θ)(x,y) ・・・(A)
In the affine transformation, image data (including luminance data) generated by the xy coordinate system is converted into image data in a wz coordinate system obtained by rotating the xy coordinate system by θ. The rotating coordinate system is represented by the following formula (A). R (θ) is an affine transformation matrix.
(W, z) = R (θ) (x, y) (A)
画像データはライン(走査線)上に記憶されているRGBの輝度データであり、回転座標系における第Z番目のラインデータを形成するには、以下の式(B)により、メモリに記憶されるとびとびのアドレスへアクセスしなければならず、処理速度を向上することが難しい。
x=R^(-1)(θ)(w,Z)
y=R^(-1)(θ)(w,Z) ・・・(B)
The image data is RGB luminance data stored on the line (scanning line), and is stored in the memory by the following equation (B) to form the Zth line data in the rotating coordinate system. It is difficult to improve the processing speed because it is necessary to access to each address.
x = R ^ (-1) (θ) (w, Z)
y = R ^ (-1) (θ) (w, Z) (B)
特許文献1では、画像データは大容量低速メモリからブロック単位で読みだされ、小容量高速メモリに格納される。アドレス生成部で生成されたアドレスにしたがってさらに読み出され、補間演算を行う演算部でスキュー補正がおこなわれる。アドレス生成部は、入力画像の傾きに応じた角度でメモリから斜め方向にブロック単位で読みだすべく、その少数部を所定の精度で近似してアドレスを順次生成し、かつ、アドレスを精度に応じた周期で所定量だけ増減することで近似によるアドレスの累積誤差を抑制する。一方、小容量高速メモリからは、補正後の画素に隣接する4点の画像データの座標を、アフィン逆行列を用いて演算し、取得している。
特許文献1に記載された技術では、大容量低速メモリから小容量高速メモリにブロック単位で読みだされる。しかしながら、小容量高速メモリからは、補正する画素毎に、補正に必要なデータを読み出す必要があり、ランダムアクセスを必要とする。したがって、データを入出力する処理時間が、画像データを変換するための処理時間のクリティカルパスおよび/またはボトルネックとなり、画像処理に要する時間をさらに短縮することが難しい。
In the technique described in
コピー機や画像を編集するアプリケーションにおいて、画像の微小な傾きを補正する処理(スキュー補正処理)の頻度は高く、この処理を高速で行えることは重要である。2度以下あるいは1度以下の画像の傾きであっても、直線部分が斜めに表示されることは、特にデジタル化された画像では目立つことが多い。また、微小な傾きを補正した画像を繰り返し表示することにより、ユーザは適切に傾きが補正された画像を選択することが可能となる。 In a copy machine or an application for editing an image, the frequency of processing for correcting a minute inclination of an image (skew correction processing) is high, and it is important that this processing can be performed at high speed. Even if the inclination of the image is 2 degrees or less or 1 degree or less, it is often noticeable that the straight line portion is displayed obliquely, particularly in a digitized image. Further, by repeatedly displaying an image with a small inclination corrected, the user can select an image with the inclination corrected appropriately.
本発明の一態様は、第1の画像を出力するための第1のデータから、第1の画像がアフィン変換された第2の画像を出力するための第2のデータを生成する装置である。この装置は、第1のデータが格納された第1の記録媒体から、第1の画像の隣接する第1の原走査線および第2の原走査線に含まれる複数の画素を出力するための原走査線データを取得する第1の入力ユニットと、原走査線データから、第2の画像の複数の画素を出力するための画素データを生成する補間演算ユニットとを有する。画素データには、第2の画像の複数の走査線の線分に含まれる複数の画素を出力するための線分データが含まれている。この装置は、さらに、それぞれの線分データを含むブロックデータを入出力単位として第2の記録媒体に格納する第1の出力ユニットと、第2の記録媒体から、第2の画像の第3の走査線を出力するための複数の線分データを含む複数のブロックデータを取得する第2の入力ユニットと、第3の走査線に含まれる複数の画素を出力するための走査線データを第2のデータとして第3の記録媒体に格納する第2の出力ユニットとを有する。 One embodiment of the present invention is an apparatus that generates, from first data for outputting a first image, second data for outputting a second image in which the first image is affine-transformed. . This apparatus outputs a plurality of pixels included in a first original scan line and a second original scan line adjacent to each other in a first image from a first recording medium storing first data. A first input unit that obtains original scan line data; and an interpolation calculation unit that generates pixel data for outputting a plurality of pixels of the second image from the original scan line data. The pixel data includes line segment data for outputting a plurality of pixels included in the line segments of the plurality of scanning lines of the second image. The apparatus further includes a first output unit that stores block data including each line segment data as an input / output unit in the second recording medium, and a third output of the second image from the second recording medium. A second input unit for acquiring a plurality of block data including a plurality of line segment data for outputting a scanning line, and a second scanning line data for outputting a plurality of pixels included in the third scanning line. And a second output unit for storing the data in a third recording medium.
第1の画像の第1の走査線と第2の走査線とに含まれる画素を用いて生成(補間)された複数の画素(アフィン変換後の画素)は、第1の走査線と第2の走査線との間に存在する画素であり、第2の画像の複数の走査線の一部(線分)に含まれる画素となる。アフィン変換は平行線を平行線に変換する処理であり、基本的にはそれらの線分が重なることはなく、変換する角度が適当な範囲内であれば、1つの線分に、走査方向(主走査方向)に隣接する複数の画素が含まれる。すなわち、原走査線データから生成される画素データには、複数の線分データが含まれ、それぞれの線分データには複数の画素を出力するためのデータが含まれる。したがって、線分単位で、複数の画素を出力するためのデータ(線分データ)をメモリなどの記録媒体にいったん格納し、第2の画像の走査線の順番に線分データを読み出して第2の画像の走査線データを生成することにより、画素を出力するためのデータを、画素毎にランダムに読み出す処理を省くことができる。このため、アフィン変換を含めた画像処理におけるデータの入出力時間を短縮できる。 A plurality of pixels (pixels after affine transformation) generated (interpolated) using pixels included in the first scanning line and the second scanning line of the first image are the first scanning line and the second scanning line. Between the scanning lines of the second image and the pixels included in a part (line segment) of the plurality of scanning lines of the second image. Affine transformation is a process of converting parallel lines into parallel lines. Basically, these line segments do not overlap. If the angle to be converted is within an appropriate range, one line segment is scanned in the scanning direction ( A plurality of pixels adjacent in the main scanning direction) are included. That is, the pixel data generated from the original scanning line data includes a plurality of line segment data, and each line segment data includes data for outputting a plurality of pixels. Accordingly, data (line segment data) for outputting a plurality of pixels in units of line segments is temporarily stored in a recording medium such as a memory, and the line segment data is read out in the order of the scanning lines of the second image to obtain the second data. By generating the scanning line data of the image, it is possible to omit the process of randomly reading out the data for outputting the pixels for each pixel. For this reason, the data input / output time in image processing including affine transformation can be shortened.
走査方向は、画像を出力するための走査方向に限らず、この装置において、画像データを入力するための方向であっても良い。それぞれの線分データを含むブロックデータを入出力単位とすることは、1つの線分データを1つのブロックデータに含めて格納しても良く、1つの線分データを複数のブロックデータに分けて格納しても良い。 The scanning direction is not limited to the scanning direction for outputting an image, and may be a direction for inputting image data in this apparatus. By using block data including each line segment data as an input / output unit, one line segment data may be included in one block data and stored, and one line segment data may be divided into a plurality of block data. It may be stored.
第1の出力ユニットは、ブロックデータを固定長で第2の記録媒体に格納することが望ましい。データの入出力時間をさらに短縮できる可能性がある。第1の出力ユニットは、ブロックデータをバースト長で第2の記録媒体に格納することが望ましい。データの入出力時間をさらに短縮できる可能性がある。線分データが圧縮などの処理により可変長であっても、パディングデータを付加するなどの処理により、固定長で入出力することが可能である。 The first output unit preferably stores the block data in the second recording medium with a fixed length. Data input / output time may be further reduced. The first output unit preferably stores the block data in the second recording medium with a burst length. Data input / output time may be further reduced. Even if the line segment data has a variable length due to a process such as compression, it can be input / output at a fixed length by a process such as adding padding data.
第1の出力ユニットは、ブロックデータを、第2の画像の走査線の順番で読みだされるようにアドレスを変えて、第2の記録媒体に格納することが望ましい。第2の入力ユニットは、シーケンシャルにブロックデータを読み込み、第2の出力ユニットは、第2の画像の走査線データを出力できる。 The first output unit preferably stores the block data in the second recording medium while changing the address so that the block data is read in the order of the scanning lines of the second image. The second input unit can sequentially read the block data, and the second output unit can output the scan line data of the second image.
第2の入力ユニットは、ブロックデータを、第2の画像の走査線の順番で読みだすようにアドレスを変えて、第2の記録媒体から取得することも可能である。第1の出力ユニットは、ブロックデータをシーケンシャルに出力できる。 The second input unit can acquire block data from the second recording medium by changing the address so that the block data is read in the order of the scanning lines of the second image. The first output unit can output block data sequentially.
補間演算ユニットは、副走査方向の補間により、それぞれの線分データに含まれる複数の画素を出力するためのデータを並列に生成する第1の演算回路を含むことが望ましい。並列処理により、演算処理に要する時間を短縮できる。補間演算ユニットは、走査方向の補間により、それぞれの線分データに含まれる複数の画素を出力するためのデータを並列に生成する第2の演算回路を、さらに含むことが望ましい。 The interpolation operation unit preferably includes a first operation circuit that generates data for outputting a plurality of pixels included in each line segment data in parallel by interpolation in the sub-scanning direction. Parallel processing can reduce the time required for arithmetic processing. It is desirable that the interpolation operation unit further includes a second operation circuit that generates in parallel data for outputting a plurality of pixels included in each line segment data by interpolation in the scanning direction.
第1の出力ユニットは、第1の演算回路から出力された線分データを含むブロックデータを第2の記録媒体に格納し、第2の演算回路は、第2の入力ユニットにより取得された線分データを走査方向に補正して、補正後の線分データを生成することが可能である。この装置では、ブロックデータを第2の記録媒体に入出力することを要するので、補間演算を2段階に分けて実行しても良く、回路を再構成可能なデバイスに実装する場合に、演算に要するハードウェアリソースの専有量を削減できる。 The first output unit stores block data including the line segment data output from the first arithmetic circuit in the second recording medium, and the second arithmetic circuit acquires the line acquired by the second input unit. It is possible to correct the segment data in the scanning direction and generate corrected line segment data. In this apparatus, since it is necessary to input / output block data to / from the second recording medium, the interpolation calculation may be executed in two stages. When the circuit is mounted on a reconfigurable device, the calculation is performed. Reduce the amount of hardware resources required.
すなわち、本装置は、回路を再構成可能な再構成可能ユニットと、再構成可能ユニットに回路を構成する制御ユニットとを有することが望ましい。制御ユニットは、再構成可能ユニットに、第1の入力ユニット、第1の演算回路、および第1の出力ユニットを含む第1段階の回路を構成し、第2段階として、第2の入力ユニット、および第2の出力ユニットを含む第2段階の回路を構成する。第2の演算回路は、この処理のために使用可能な再構成可能ユニットのハードウェアリソースの量により、第1段階の回路に含めても良く、第2段階の回路に含めても良い。 That is, it is desirable that the apparatus includes a reconfigurable unit that can reconfigure a circuit and a control unit that configures a circuit in the reconfigurable unit. The control unit constitutes a first stage circuit including a first input unit, a first arithmetic circuit, and a first output unit in the reconfigurable unit, and the second input unit, And a second stage circuit including a second output unit. The second arithmetic circuit may be included in the first-stage circuit or the second-stage circuit depending on the amount of hardware resources of the reconfigurable unit that can be used for this processing.
本発明の他の態様の1つは、回路を再構成可能な再構成可能ユニットと、再構成可能ユニットに回路を構成する制御ユニットとを有する装置を、制御ユニットにより制御する方法である。この方法は、第1の画像を出力するための第1のデータから、第1の画像がアフィン変換された第2の画像を出力するための第2のデータを生成することを有する。さらに、生成することは、再構成可能ユニットに第1段階の回路を構成することと、再構成可能ユニットに第2段階の回路を構成することとを含む。 Another aspect of the present invention is a method for controlling an apparatus having a reconfigurable unit capable of reconfiguring a circuit and a control unit configuring the circuit in the reconfigurable unit by the control unit. The method includes generating second data for outputting a second image obtained by affine transformation of the first image from the first data for outputting the first image. Further, generating includes configuring a first stage circuit in the reconfigurable unit and configuring a second stage circuit in the reconfigurable unit.
第1段階の回路は、第1のデータが格納された第1の記録媒体から、第1の画像の隣接する第1の原走査線および第2の原走査線に含まれる複数の画素を出力するための原走査線データを取得する第1の入力ユニットと、原走査線データから、第2の画像の複数の画素を出力するための画素データを生成する補間演算ユニットとを含む。画素データには、第2の画像の複数の走査線の線分に含まれる複数の画素を出力するための線分データが含まれている。さらに、第1段階の回路は、それぞれの線分データを含むブロックデータを入出力単位として第2の記録媒体に格納する第1の出力ユニットを含む。 The first-stage circuit outputs a plurality of pixels included in the first original scan line and the second original scan line adjacent to each other in the first image from the first recording medium storing the first data. A first input unit that obtains original scanning line data to perform, and an interpolation calculation unit that generates pixel data for outputting a plurality of pixels of the second image from the original scanning line data. The pixel data includes line segment data for outputting a plurality of pixels included in the line segments of the plurality of scanning lines of the second image. Further, the first stage circuit includes a first output unit that stores block data including the respective line segment data in the second recording medium as an input / output unit.
第2段階の回路は、第2の記録媒体から、第2の画像の第3の走査線を出力するための複数の線分データを含む複数のブロックデータを取得する第2の入力ユニットと、第3の走査線に含まれる複数の画素を出力するための走査線データを第3の記録媒体に格納する第2の出力ユニットと含む。 The second stage circuit includes a second input unit that acquires a plurality of block data including a plurality of line segment data for outputting the third scanning line of the second image from the second recording medium; A second output unit that stores scan line data for outputting a plurality of pixels included in the third scan line in a third recording medium;
本発明のさらなる態様の1つは、第1の画像を出力するための第1のデータから、第1の画像がアフィン変換された第2の画像を出力するための第2のデータを生成する方法であって、以下の工程を含む。
1. 第1のデータが格納された第1の記録媒体から、第1の画像の隣接する第1の原走査線および第2の原走査線に含まれる複数の画素を出力するための原走査線データを取得すること。
2. 原走査線データから、第2の画像の複数の画素を出力するための画素データを生成すること。画素データには、第2の画像の複数の走査線の線分に含まれる複数の画素を出力するための線分データが含まれている。
3. それぞれの線分データを含むブロックデータを入出力単位として第2の記録媒体に格納すること。
4. 第2の記録媒体から、第2の画像の第3の走査線を出力するための複数の線分データを含む複数のブロックデータを取得すること。
5. 第3の走査線に含まれる複数の画素を出力するための走査線データを第3の記録媒体に格納すること。
One of the further aspects of the present invention generates second data for outputting a second image in which the first image is affine-transformed from the first data for outputting the first image. A method comprising the following steps.
1. Original scan line data for outputting a plurality of pixels included in the first original scan line and the second original scan line adjacent to each other in the first image from the first recording medium storing the first data. To get.
2. Generating pixel data for outputting a plurality of pixels of the second image from the original scanning line data. The pixel data includes line segment data for outputting a plurality of pixels included in the line segments of the plurality of scanning lines of the second image.
3. Block data including each line segment data is stored in the second recording medium as an input / output unit.
4). Obtaining a plurality of block data including a plurality of line segment data for outputting the third scanning line of the second image from the second recording medium;
5). Scan line data for outputting a plurality of pixels included in the third scan line is stored in the third recording medium.
第2の記録媒体には、ブロックデータを固定長で格納することが望ましく、バースト長で格納することがさらに望ましい。 In the second recording medium, it is desirable to store block data with a fixed length, and it is more desirable to store with block length.
第2の記録媒体には、ブロックデータを、第2の画像の走査線の順番で読みだされるようにアドレスを変えて格納しても良い。第2の記録媒体から、ブロックデータを、第2の画像の走査線の順番で読みだすようにアドレスを変えて取得してもよい。 The second recording medium may store the block data by changing the address so that the block data is read in the order of the scanning lines of the second image. The block data may be acquired from the second recording medium by changing the address so as to read in the order of the scanning lines of the second image.
図1は、本発明の一実施形態である、画像データを生成する装置の基本構成ブロック図である。この画像処理装置あるいは生成装置50は、回路を再構成可能なデバイス(処理装置)1を用いて実現されている。生成装置50としての機能は、第1段階の回路51と、第2段階の回路52とに分けて、処理装置1の再構成可能領域10に構成される。この装置50は、第1の画像G1を出力するための第1のデータD1から、第1の画像G1がアフィン変換された第2の画像G2を出力するための第2のデータD2を生成する装置である。装置50は、記録媒体であるメモリ59を有し、メモリ59には、第1のデータD1と、第2のデータD2と、さらに、中間段階のデータMDが格納されるようになっている。再構成可能領域10に構成される第1段階の回路51は、メモリ59からデータを読み取る第1の入力ユニット61と、補間演算を行う第1の補間演算ユニット63と、第1の補間演算ユニットにより生成されたデータを複数のブロックに分ける(ブロック化する)ブロックデータ生成部66と、それらのブロックをメモリ59の所定のアドレスに書き込む第1の出力ユニット62と、第1段階の制御情報生成ユニット69とを含む。
FIG. 1 is a basic configuration block diagram of an apparatus for generating image data according to an embodiment of the present invention. This image processing apparatus or
第1の入力ユニット61は、メモリ59の第1のデータD1から、第1の画像G1の隣接する第1の原走査線および第2の原走査線(以降では、第1のラインL1および第2のラインL2)に含まれる複数の画素を出力するための原走査線データE1を取得する。第1の補間演算ユニット63は、原走査線データE1から、第2の画像G2の複数の画素を出力するための画素データP1を生成するためのユニットである。本例の第1の補間演算ユニット63は、特に、原走査線データE1に含まれる第1および第2のラインのデータから副走査方向の補間を行い、第2の画像G2の画素データP1を生成する。後述するように、第1の画像G1の、第1および第2のラインのデータを補間して生成される画素データP1には、第2の画像G2の複数の走査線の線分LSに含まれる複数の画素を出力するための線分データLSDが含まれている。第1の出力ユニット62は、それぞれの線分データLSDを含むブロックデータを入出力単位とし、中間段階のデータMDの一部としてメモリ59に格納する。
The
再構成可能領域10に構成される第2段階の回路52は、メモリ59から線分データLSDを読み込む第2の入力ユニット71と、第2の補間演算ユニット73と、読み出された線分データLSDから第2の画像G2を出力するため走査線データを生成するラインデータ生成ユニット76と、第2のデータD2をメモリ59に格納する第2の出力ユニット72と、第2段階の制御情報生成ユニット79とを含む。
The second-
第2の入力ユニット71は、メモリ59から、第2の画像G2の第3の走査線L3を出力するための複数の線分データLSDを含む複数のブロックデータを順番に取得する。第2の補間演算ユニット73は、走査方向の補間を行い、線分データLSDを補正または再生成する。第2の出力ユニット72は、第3の走査線L3に含まれる複数の画素を出力するための走査線データを第2のデータD2の一部としてメモリ59に格納する。
The
制御情報生成ユニット69および79は、ユーザあるいはアプリケーションプログラムなどにより与えられる回転角度によりメモリ59に対して入出力するためのブロックサイズを適切に決め、入出力のアドレスを生成あるいは管理するための情報を各ユニットに提供する。
The control
図2ないし図4を参照して、この生成装置50において、座標x−yで示される原画像(第1の画像)をアフィン変換して、座標w−zで示される第2の画像を生成する基本的なアルゴリズムを説明する。この生成装置50は、微小角回転、たとえば、回転角θが±2度程度以内のアフィン変換(微小角アフィン変換)を高速に行うことを目的としたものである。たとえば、A4版(210mm×297mm)の原画像(第1の画像)G1を解像度300DPIでスキャナーにより読み込んだ場合、画素数2520×3560(合計9M画素)の画像データ(第1のデータ)D1が得られる。また、各々の画素を表示する輝度データは8ビットとする。ここで、第1の画像G1の短辺(X方向)をスキャン方向として、ある角度θだけ回転させ、W方向をスキャン方向(走査方向、Z方向を副走査方向)とする第2の画像G2を得る。
Referring to FIGS. 2 to 4, in this
図2に示すように、第1の画像G1の副走査方向Yに隣接し、走査方向Xに延びた2つの走査線(ライン)OL1およびOL2に含まれる複数の画素のデータを補間して、第2の画像G2の画素を生成する。この場合、第1の画像G1の2つの走査線(以降では原ライン)OL1およびOL2の間には、第2の画像G2の複数の走査線(以降では、ラインまたはニューライン)L(n)からL(n+i)の線分LS(n(1))から線分LS(n+i(i+1))(iおよびnは整数)に含まれる画素が生成される。図2には、原ラインOL1およびOL2の間に、3つのラインLn〜Ln+2の線分LS(n(1))、LS(n+1(2))およびLS(n+2(3))が含まれる場合を模式的に示している。300DPIの第1のデータD1においては、第1の画像G1の隣接する原走査線OL1およびOL2の間には、回転角θが1度の場合は、第2の画像G2の44個の走査線の線分LSが含まれ、回転角θが2度の場合は、88個の走査線の線分LSが含まれる。 As shown in FIG. 2, by interpolating data of a plurality of pixels included in two scanning lines (lines) OL1 and OL2 that are adjacent to the first image G1 in the sub-scanning direction Y and extend in the scanning direction X, A pixel of the second image G2 is generated. In this case, a plurality of scanning lines (hereinafter referred to as lines or new lines) L (n) between the two scanning lines (hereinafter referred to as original lines) OL1 and OL2 of the first image G1. To L (n + i) line segment LS (n (1)) to line segment LS (n + i (i + 1)) (i and n are integers) are generated. In FIG. 2, line segments LS (n (1)), LS (n + 1 (2)) and LS (n + 2 (3)) of three lines Ln to Ln + 2 are included between the original lines OL1 and OL2. Is schematically shown. In the first data D1 of 300 DPI, there are 44 scanning lines of the second image G2 between the adjacent original scanning lines OL1 and OL2 of the first image G1 when the rotation angle θ is 1 degree. When the rotation angle θ is 2 degrees, 88 scanning line segments LS are included.
生成装置50は、回転角θが2度の場合には、第1の画像G1の画像データD1の原ラインOL1およびOL2に含まれる画素の輝度データを含む原走査線データE1を読み込む。次に、88個の変換後の走査線の線分LSを演算し、それぞれの線分データLSDを固定長8ワードのブロックデータとしてメモリ59に格納する。すなわち、1つの線分LSには29個または28個の画素の輝度データが含まれ、1つの線分データLSDは232ビットまたは224ビットのデータとなる。このため、生成装置50は、8ワード(256ビット)に足らない部分はパディングし、8ワードの固定長のブロックデータとしてメモリ59に格納する。8ワードのブロックデータは、メモリ59のバースト単位の1つであり、高速で入出力することができる。
When the rotation angle θ is 2 degrees, the
図3に示すように、生成装置50は、メモリ59の画像データ(データファイル)D1から、副走査方向Yの原走査線データE1を連続して読み込み、走査方向(主走査方向、走査線方向)Xに補間を行って線分データを生成してブロックデータ化し、メモリ59に、中間データ(データファイル)MDとして格納する。画像データD1から、2ライン分の原画像データE1を読み込んでも良い。また、生成装置50にラインバッファを用意し、1ライン分の原画像データE1を読み込み、ラインバッファに残された前のライン分の原画像データと合わせて、実質的に2ライン分の原画像データを取得するようにしても良い。生成装置50は、第1の画像G1の1画像分のデータD1について、この処理を繰り返し、第2の画像G2に含まれる線分データを生成して、中間データファイルMDに格納する。線分データLSDが生成され、中間データファイルMDに格納される順番は、例えば、LSD(n(1))、LSD(n+1(2))、LSD(n+2(3))、LSD(n+1(1)、LSD(n+2(2))、LSD(n+3(3))というようになる。
As shown in FIG. 3, the
図4に示すように、生成装置50は、メモリ59の中間データファイルMDから、線分データを含むブロックデータを、第2の画像G2の走査線L3に従って読みだす。たとえば、中間データファイルMDから読みだされる順番は、LSD(n(1))、LSD(n(2))、LSD(n(3))、LSD(n+1(1))、LSD(n+1(2))、LSD(n+1(3))というようになる。生成装置50は、さらに、読みだした複数の線分データLSDから1つの走査線データを生成し、メモリ59の画像データファイルD2に格納し、第2の画像G2を出力するための画像データD2を生成する。
As illustrated in FIG. 4, the
図5に示すように、線分データLSDn(1)は、パディングデータpdが加えられて、固定長のバーストサイズ(8ワード)のブロックデータBD(n(1))として、中間データファイルMDに格納される。他の線分データLSについても同様である。したがって、個々のブロックデータBDのメモリ59に対する入出力は高速に行われる。それとともに、入出力アドレスを指定することにより所望のブロックデータBDをメモリ59の適当なアドレスにランダムに格納でき、また、所望のブロックデータBDをランダムに取得できる。この入出力は、メモリ59に対するランダムアクセスではなく、ブロック単位のバーストアクセスであり、メモリ59に対する入出力は最速で行われる。
As shown in FIG. 5, the line segment data LSDn (1) is added to the intermediate data file MD as pad data pd (n (1)) having a fixed-length burst size (8 words) by adding padding data pd. Stored. The same applies to the other line segment data LS. Therefore, input / output of individual block data BD to / from the
図6(a)および(b)に、中間データファイルMDにブロックデータBDを格納する2つの例を示している。図6(a)は、第2の画像G2の走査線データを生成するときにブロックデータBDを中間データファイルMDからシーケンシャルに読み出せるようにしたものである。図6(b)は、第1の画像G1の走査線データから線分データLSDを生成した順番でシーケンシャルにブロックデータBDを中間データファイルMDに格納するようにしたものである。 FIGS. 6A and 6B show two examples of storing block data BD in the intermediate data file MD. FIG. 6A shows that the block data BD can be read sequentially from the intermediate data file MD when generating the scanning line data of the second image G2. In FIG. 6B, the block data BD is sequentially stored in the intermediate data file MD in the order in which the line segment data LSD is generated from the scanning line data of the first image G1.
A4版(210mm×297mm)の原画像(第1の画像)G1を解像度300DPIでスキャナーにより読み込んだ場合、回転角θが±2度であれば、上述したように、1つの線分データLSDは232ビットまたは224ビットなので、8ワードをバーストサイズとする固定長のブロックデータBDにパッキングすることが望ましい。回転角θが±1度であれば、1つの線分データLSDのデータ量は倍になるので、16ワードをバーストサイズする固定長のブロックデータBDにパッキンすることが望ましい。メモリ59の使用効率も、アクセス効率も高い。16ワード固定長のブロックデータBDの代わりに、2つの8ワード固定長のブロックデータBDを用いて線分データLSDを格納しても良い。
When an original image (first image) G1 of A4 size (210 mm × 297 mm) is read by a scanner with a resolution of 300 DPI, if the rotation angle θ is ± 2 degrees, as described above, one line segment data LSD is Since it is 232 bits or 224 bits, it is desirable to pack it into fixed length block data BD having a burst size of 8 words. If the rotation angle θ is ± 1 degree, the data amount of one line segment data LSD is doubled, so it is desirable to pack 16 words into fixed-length block data BD that is burst-sized. The use efficiency and the access efficiency of the
回転角θが±2度から±1度の間は、1つの線分データLDSを16ワード固定長のブロックデータBDにパッキングしても良く、2つの8ワード固定長のブロックデータBDに分けてパッキングしても良い。回転角θが±1度から0度の間は、1つの線分データLDSを2またはそれ以上の16ワード固定長のブロックデータBDに分けてパッキングすることが望ましい。回転角θが±2度を超える場合は、1つの線分データLSDを8ワード固定長のブロックデータBDにパッキンすることができる。ただし、回転角θが大きくなると、パディングデータdpが増加し、ブロックデータBDの利用効率が減少する。この明細書では、1つのブロックデータBDに複数の線分データLSDを含まないことをベースとして説明している。すなわち、1つの線分データLSDは、それに関連づけられた1つまたは複数(通常は2つ)のブロックデータBDに含まれている。1つのブロックデータBDに複数の線分データLSDをパッキングすることを除外しないが、1つの線分データLSDを入出力するためにメモリにアクセスする回数が増加傾向になるので、本明細書に記載の方法および装置は、回転角θが微小、例えば±2度以下の画像処理に適している。 When the rotation angle θ is between ± 2 degrees and ± 1 degree, one line segment data LDS may be packed into 16-word fixed-length block data BD, and divided into two 8-word fixed-length block data BD. You may pack. When the rotation angle θ is between ± 1 degree and 0 degree, it is desirable that one line segment data LDS is divided into two or more 16-word fixed length block data BD and packed. When the rotation angle θ exceeds ± 2 degrees, one line segment data LSD can be packed into 8-word fixed-length block data BD. However, as the rotation angle θ increases, the padding data dp increases and the use efficiency of the block data BD decreases. In this specification, the description is based on the fact that one block data BD does not include a plurality of line segment data LSD. That is, one line segment data LSD is included in one or a plurality of (usually two) block data BDs associated therewith. Although it is not excluded to pack a plurality of line segment data LSD into one block data BD, the number of times of accessing the memory to input / output one line segment data LSD tends to increase. This method and apparatus is suitable for image processing with a small rotation angle θ, for example, ± 2 degrees or less.
図7に、生成装置50における処理をフローチャートにより示している。まず、ステップ81において、再構成可能な処理装置1の再構成可能領域(再構成可能ユニット)10に、第1段階の回路51を再構成する。第1段階の回路51は、第1の入力ユニット61と、第1の補間演算ユニット63と、ブロックデータ生成ユニット66と、第1の出力ユニット62と、制御情報生成ユニット69とを含む。この例では、第1画像G1の走査線データから、第2の画像G2の複数の画素を出力するための画素データを生成する処理は、第1段階と、第2段階とに分かれて実行される。したがって、画素データを生成するための補間演算ユニットは、第1の補間演算ユニット63と、第2の補間演算ユニット73とに分けて、再構成される。
FIG. 7 is a flowchart showing processing in the
ステップ81において、第1の入力ユニット61が、メモリ59の第1のデータファイルD1から原走査線データE1を取得する。ステップ82において、第1の補間演算ユニット63が、原走査線データE1に含まれている原走査線の画素データから第2の画像G2を出力するための走査線の線分データLSDを生成する。
In
図8から図10に、ステップ82において行われる第1の補間処理の概要を示している。図8に示すように、第1の補間処理は、副走査方向Yに隣り合う第1の画像G1の2つの画素データ(輝度データ)P(n−1、i)およびP(n、i)を重みづけ補間し、第2の画像G2の画素データP´(n、i)を生成する。補間式は、図9に示す式(1)である。パラメータWeightは、回転角θにより決まる。また、ブロック先頭のオフセットaは、図10に示すように、原走査線OLの左端の画素を中心に旋回角θを定義した場合は、左端の線分LSについてはゼロである。原走査線OLの中心の画素を中心に旋回させたり、右端の画素を中心に旋回させても良い。その場合は、回転の中心となる画素についてオフセットaはゼロになる。
8 to 10 show an outline of the first interpolation processing performed in
この例では、4つの画素P´(n、0)からP´(n、3)により左端の線分LS(1)が構成される。したがって、線分データLSDは、4つの画素データを含み、これらは再構成可能領域10の演算エレメントを用いて並列に計算される。制御情報生成ユニット69は、回転角θ、解像度、画像のサイズなどの条件により、原走査線の間に生成される第2の画像G2の線分の数、1つの線分に含まれる画素数(ドット数)など、補間計算と、ブロック化に必要な情報を提供する。ステップ83において、ブロックデータ生成ユニット66は、画素データのみで所定の長さのブロックデータBDが構成できれば、そのまま処理の数の画素の画素データP´を纏めてブロックデータBDとする。画素データのみでは不足する場合は、パディングデータを加えて、固定長(バーストサイズ)のブロックデータBDを生成する。ステップ83において、さらに、第1の出力ユニット62は、制御情報生成ユニット69からの指示(アドレス)により、ブロックデータBDをメモリ59の中間データファイルMDの中で、所定の順番となるように格納する。格納する順番の例は、図6(a)および(b)で説明した方法である。また、第1の出力ユニット62は、メモリ59とバーストモードでアクセスし、高速でデータを出力する。
In this example, the leftmost line segment LS (1) is configured by four pixels P ′ (n, 0) to P ′ (n, 3). Therefore, the line segment data LSD includes four pixel data, which are calculated in parallel using the arithmetic elements of the
ステップ84において、第1の画像G1の画像データD1に含まれる原走査線データが終了するまで、ステップ81から83の処理を繰り返す。画像データD1に含まれる原走査線データを用いて重みづけ補間する処理が終了すると、ステップ85において、再構成可能な処理装置1の再構成可能領域10に、第2段階の回路52を再構成する。この生成装置50が搭載(実装)されている再構成可能デバイス1は、ダイナミックリコンフィグラブルデバイスであり、再構成可能領域10の回路構成を、第1段階の回路51から第2段階の回路52に1クロック(サイクル)で変更できる。第2段階の回路52は、第2の入力ユニット71と、第2の補間演算ユニット73と、ラインデータ生成ユニット76と、第2の出力ユニット72と、制御情報生成ユニット79とを含む。
In
ステップ85において、第2の入力ユニット71が、メモリ59の中間データファイルMDから、制御情報生成ユニット79が生成するアドレスに基づき、線分データLSDを含むブロックデータBDを、回転後の走査線に含まれる順番で読み込む。第2の入力ユニット71は、メモリ59とバーストモードでアクセスし、高速でブロックデータBDを読み込む(取得する)。第2の入力ユニット71は、ブロックデータBDにパディングデータpdが含まれていれば、ブロックデータBDから線分データLSDを抜き出して、あるいはパディングデータpdを除いて、第2の補間演算ユニット73に供給する。ステップ87において、第2の補間演算ユニット73は、走査方向(走査線方向)Wの補間演算(第2の補間)を行う。
In
図11および図12に、ステップ87において行われる第1の補間処理の概要を示している。図11に示すように、第2の補間処理は、回転後の走査方向Wに隣り合う画素データP´n(i)と、P´n(i+1)を重みづけ補間して、第2の画像G2を出力するための画素データP´´n(i)を生成する。補間式は、図12に示す式(2)である。300DPI、回転角θが2度の場合、原走査線のX方向の画素位置と、回転後の走査線のW方向の画素位置との差は1ライン当たり1画素未満(0.1%未満)なので、ほとんど無視できる程度である。したがって、この第2の補間処理は省いても良い。省いた場合、第2の画像G2は、走査方向Wに0.1%程度膨らんだ位置の輝度が表示されるので、第2の画像G2は走査方向Wに0.1%程度収縮した画像になる。第2の補間処理は走査方向Wの画素位置に合わせて輝度データ(画素データ)を補間し、回転した第2の画像G2の膨張収縮を抑制する。
11 and 12 show an outline of the first interpolation processing performed in
ステップ88において、ラインデータ生成ユニット76が、第2の補間処理が行われた画素データP´´を走査方向Wの順番で組み合わせ、回転後の走査線データ(ラインデータ)を生成する。さらに、ステップ88において、第2の出力ユニット72は、メモリ59の第2のデータファイルD2に走査線データを順番に格納する。ステップ89において、中間データファイルMDに格納されたブロックデータBDが終了するまで、ステップ86から88を繰り返す。このようにして、生成装置50は、第1の画像G1を角度θだけ回転させた第2の画像G2を出力するための画像データD2を生成する。この例では、画像データなどを格納する記録媒体として共通のメモリ59が用いられているが、異なる記録媒体であっても良い。たとえば、再構成可能領域10に含まれるRAMエレメントを中間データファイルMDの格納先としても良い。
In
図13(a)に、再構成可能な処理装置(再構成可能デバイス)1の一例を示している。このデバイス1は、本願の出願人が開発したDAPDNAと称する半導体集積回路装置である。このデバイス1は、DAPと呼ばれるRISCコアモジュール2と、DNAと呼ばれるダイナミックリコンフィグラブルデータフローアクセレレータ3とを含む。デバイス1は、DAP2およびDNA3に加え、DNA3のダイレクト入出力用のインターフェイス4と、PCIインターフェイス5と、SDRAMインターフェイス6と、DMAコントローラ7と、その他の周辺デバイス8と、これらを接続するための高速スイッチングバス(内部バス)9とを含む。PCIインターフェイス5および/またはSDRAMインターフェイス6には、大容量記録媒体、例えば、RAMディスク59b、フラッシュメモリ59aなどを接続し、画像データなどを格納できる。
FIG. 13A shows an example of a reconfigurable processing apparatus (reconfigurable device) 1. This
DAP2は、デバッグインターフェイス42aと、RISCコア42bと、命令キャッシュ42cと、データキャッシュ42dとを含む。DNA3は、376個のPE(PEs、処理エレメント)が2次元に配置されたPEマトリクス10と、このPEマトリクス10に含まれるPEsの機能および/または接続を変えてPEマトリクス10を再構成するためのコンフィグレーションデータ18が格納されるコンフィグレーションメモリ19とを含む。PEマトリクス10は、回路を再構成可能なユニット、すなわち、再構成可能領域に相当する。また、このPEマトリクス10の構成は、DAP2により制御され、DAP2は制御ユニットに相当する。
The DAP2 includes a
コンフィグレーションメモリ19は、複数バンクの構成になっている。例えば、図13(b)に示すように、PEマトリクス10には、フォアグラウンドバンクに格納されるコンフィグレーションデータ18により第1の機能(データフロー、回路デザイン)17aが構成される。また、異なるバックグラウンドバンクにそれぞれ格納されるコンフィグレーションデータにより、第2の機能17bおよび第3の機能17cがそれぞれ構成される。メモリ19のバンクを切り替えることにより、PEマトリクス10には、第1の機能17aに変わって第2の機能17bまたは第3の機能17cが再構成される。PEマトリクス10の再構成は、例えば、1サイクル(クロックサイクル)でダイナミックに行なわれる。このようにPEマトリクス10は、回路を構成するための複数のエレメントと、これらのエレメントを接続するための内部配線とを含む再構成ユニットであり、内部配線によりエレメントの接続を変えることによりPEマトリクス10に含まれる回路を再構成できる。
The
図13(c)は、PEマトリクス10に回路を再構成する一例である。あるアプリケーション、例えばMPEGデコーダを時分割した複数の機能(サブファンクション)を、PEマトリクス10に時分割で再構成し、MPEGデコーダの機能を専用回路(専用ハードウェア)で提供する。このような使用により、再構成可能なデータ処理装置であるデバイス1を用いて、多くのハードウエア資源を必要とするアプリケーションを、少ないハードウエア資源で実行できる。
FIG. 13C is an example in which a circuit is reconfigured in the
図13(d)は、PEマトリクス10に回路を構成する他の例の一つである。再生方式が異なるアプリケーションを実行するために、複数の機能がそれぞれ実現されるようにPEマトリクス10を再構成できる。このような使用により、多くのアプリケーションを共通のハードウエア(デバイス)1を用いて実行できる。このデバイス1は、プログラムレベル(命令レベル)ではなく、データフローレベル(データパスレベル、ハードウエアレベル)で多数の機能を切り換えて実装できるので、専用のハードウエアに匹敵する速度で処理を行うことができる。
FIG. 13 (d) is another example of configuring a circuit in the
図14に、PEマトリクス10の配列を拡大して示している。処理エレメントPEは、全体として、16×24のマトリクスを構成するように配置されている。なお、PEのいくつかは、2個分のPEのスペースを占め、全体として376個のPEがPEマトリクス10に配置されている。これらのPEは、さらに、それぞれ8×8のPEからなる6つのグループに区分けされている。これらのグループをセグメントSと称し、PEマトリクス10の左上から右下に向かって順番にセグメントS0からセグメントS5が配置されている。各々のセグメントS0〜S5に含まれるPEは、1サイクルの遅延の範囲内でデータを送受信可能なイントラセグメントコネクションで接続されている。また、セグメントS0〜S5の内、隣接するセグメントは、後述するディレイエレメントを介してインターセグメントコネクションにより接続されている。
FIG. 14 shows the arrangement of the
図14に示したPEのうち、「EX」で始まるPEは、EXEエレメントと呼ばれ、算術演算、論理演算および2入力の比較機能を含む演算用のエレメントである。「EXC」は、CMPSB命令を搭載し、「EXF」は、FF1命令を搭載し、「EXM」は、乗算命令を搭載し、「EXR」はBREV命令を搭載し、「EXS」は、BSWAP命令を搭載するというように、タイプ毎に固有の演算機能も含んでいる。 Among PEs shown in FIG. 14, PEs beginning with “EX” are called EXE elements, and are elements for operations including arithmetic operations, logical operations, and 2-input comparison functions. “EXC” has a CMPSB instruction, “EXF” has a FF1 instruction, “EXM” has a multiplication instruction, “EXR” has a BREV instruction, and “EXS” has a BSWAP instruction It also includes a calculation function unique to each type.
「DL」で始まるPEは、ディレイエレメントであり、1−8クロックの間の遅延をそれぞれ設定できる。「DLE」は、セグメント内のデータ遅延用であり、「DLV」は縦方向のセグメント間のデータ送受信用であり、「DLH」は横方向のセグメント間のデータ送受信用であり、「DLX」は縦横方向のセグメント間のデータ送受信用のエレメントである。 PEs beginning with “DL” are delay elements, and can each set a delay of 1-8 clocks. “DLE” is for data delay within a segment, “DLV” is for data transmission / reception between vertical segments, “DLH” is for data transmission / reception between horizontal segments, and “DLX” is It is an element for data transmission / reception between vertical and horizontal segments.
「RAM」と表示されたPEは、DNAの内部メモリとして使用されるエレメント(メモリエレメント)である。「LDB」と表示されたPEは、データ入力用のDNA内部バッファであり、入力インターフェイスあるいは入力ユニットを構成するために用いられる。「STB」と表示されたPEは、データ出力用のDNA内部バッファであり、出力インターフェイスあるいは出力ユニットを構成するために用いられる。「C16E」と表示されたPEは、DNA内部バッファに対するアドレス生成エレメントである。「C32E」と表示されたPEは、外部メモリ空間に対するアドレス生成エレメントである。「LDX」と表示されたPEは、DNAダイレクトI/Oからのデータ入力用エレメントである。「STX」と表示されたPEは、DNAダイレクトI/Oへのデータ出力用エレメントである。PEマトリクス10において、LDBおよびLDXは、外部からデータを入力するための入力インターフェイスとして使用でき、STBおよびSTXは、外部へデータを出力するための出力インターフェイスとして使用できる。
The PE displayed as “RAM” is an element (memory element) used as an internal memory of DNA. The PE displayed as “LDB” is a DNA internal buffer for data input, and is used to configure an input interface or an input unit. The PE displayed as “STB” is a DNA internal buffer for data output, and is used to configure an output interface or an output unit. The PE displayed as “C16E” is an address generation element for the DNA internal buffer. The PE displayed as “C32E” is an address generation element for the external memory space. The PE displayed as “LDX” is an element for data input from the DNA direct I / O. The PE displayed as “STX” is an element for outputting data to the DNA direct I / O. In the
図15に、PEの一例として、EXMエレメント(「EXM」)の概略構成をブロック図により示している。EXMエレメントは、ALU11aと、MUL(16×16)11bと、FF11cなどを含む。このEXMエレメントは、DNA3のコンフィグレーションメモリ19に格納されたコンフィグレーションデータ18により、算術演算、論理演算、2入力の比較機能、さらには、乗算のいずれか、または複合した命令を実行するように構成できる。また、複数のFF11cを内蔵しているので、エレメントPEに対するデータの入力から出力までのレイテンシを制御することが可能であり、ディレイエレメント(DLE)の数が不足する構成では、ディレイエレメントとしての機能をセットすることも可能である。
FIG. 15 is a block diagram showing a schematic configuration of an EXM element (“EXM”) as an example of PE. The EXM element includes an
図16に、PEの他の例として、RAMエレメント(「RAM」)の概略構成をブロック図により示している。このRAMエレメントは、データ格納用メモリエレメントであり、16KB(32ビット×4096ワード)のRAMモジュール12aと、アドレス入力用のアドレスレジスタ(FF)12b、ラッチ12c、データ入力用のライトデータレジスタ(FF)12d、ラッチ12e、データ出力用のリードデータレジスタ(FF)12fを含む。RAMモジュール12aのリードとライトの制御は、アドレスデータおよび/またはリードデータとともに入力されるトークンの値により行なわれる。アドレス入力からリードデータの出力までは、EXEエレメントと同様に3クロックサイクル程度で可能になっており、PEマトリクス10に含まれる他のタイプのPEと同様のレイテンシで、データの入出力が可能である。このRAMエレメントは、DNA3のコンフィグレーションメモリ19に格納されたコンフィグレーションデータ18により、32ビットモード、デュアルポート32ビットモード、FIFOモード、16ビットモード、8ビットモード、さらに、FSM(フィードバックステートモード)でデータ入力および/または出力するように構成できる。
FIG. 16 is a block diagram showing a schematic configuration of a RAM element (“RAM”) as another example of PE. This RAM element is a data storage memory element, which is a 16 KB (32 bits × 4096 words)
RAMエレメントのアクセスアドレスの生成には、EXEエレメント、カウンタエレメントであるC16Eおよび/またはC32Eを使用することができ、PEマトリクス10のルーティングマトリクス(マトリクスバス)を通じて、RAMエレメントに入力できる。したがって、RAMエレメントへの入出力は、PEマトリクス10に再構成される回路により制御できる。
The EXE element and the counter element C16E and / or C32E can be used to generate the access address of the RAM element, and can be input to the RAM element through the routing matrix (matrix bus) of the
PEマトリクス10は、複数のPEと、それらを接続するためのルーティングマトリクス(配線群)20を含む。ルーティングマトリクス20は、セグメントS内のPEを接続するための第1レベルの配線群(第1レベルのルーティングマトリクス、イントラコネクト)21と、ディレイエレメントを介して隣接するセグメントSの間を接続するための第2レベルの配線群(第2レベルのルーティングマトリクス、インターコネクト)とを含む。ルーティングマトリクス20によるPEsの接続はコンフィグレーションデータ18により制御できる。したがって、PEマトリクス10には、コンフィグレーションデータ18により、複数のPEのそれぞれの機能を変更すること、および/または、ルーティングマトリクス20の少なくとも一部の接続を変更することにより、異なる回路(データパス、データフロー)を再構成できる。
The
図17に、セグメントSの内部のPEsを接続するための第1レベルの配線群21の構成の一例を示している。第1レベルのルーティングマトリクス21は、セグメントS0に含まれる8×8個のPEsを接続するために、128の縦方向のバス23と、64の横方向のバス24とを含む。縦方向のバス23は、16のグループに分けられ、それぞれ8のバスを含む2つのV−バス23xおよび23yがペアとなり、PEsの縦の列(コラム)に沿って、その列の両側に配置されている。横方向のバス24は8のグループに分けられ、それぞれ8のバスを含むH−バス24がPEの横方向の行(ライン)に沿って配置されている。V−バス23xおよび23yには、8−1のバスセレクタ(マルチプレクサ、MUX)25がそれぞれのPEに対応して設けられており、それぞれのPEに対してデータの入力を可能としている。
FIG. 17 shows an example of the configuration of the first-
H−バス24には、H−バス24とV−バス23xおよび23yのそれぞれの交差に対応して、8−1のバスセレクタ(マルチプレクサ、MUX)26が設けられている。したがって、1つのH−バス24から1つのデータセットを、そのH−バス24と交差している1つのV−バス23xまたは23yに出力できる。逆も可能である。H−バス24に含まれるバスのそれぞれには、そのラインのPEsの出力が接続される。したがって、V−バス23xおよび23yと、H−バス24とを介することにより、セグメントSに含まれるPEsを接続できる。これらのV−バス23xおよび23y、およびH−バス24を含む第1レベルのバス21により接続できる範囲、すなわち、各セグメントS0〜S5内のPEの間では1サイクル(1クロック)以内にデータを送受信できる。したがって、タイミング的には、例えば、セグメントS0に含まれるPEsは、いずれも等価である。このため、同一セグメント内であれば、回路を構成するために、いずれのPEを選択して機能を割り付けても、タイミングの検討は不要であり、タイミング的には、セグメント内のPEsを用いて、所定の回路を自由に配置および配線できる。
The H-
第2レベルのルーティングマトリクスにより、隣接するセグメント同士、例えば、セグメントS1およびS2にそれぞれ含まれている接続用のエレメントDLHが接続される。それぞれのDLHは、それぞれのセグメント内部の第1レベルのルーティングマトリクス21に接続している。したがって、異なるセグメントに含まれるPEは、第2レベルのルーティングマトリクスを介して接続することができる。接続用のディレイエレメントDLHは、第1レベルのルーティングマトリクス21に含まれるバスのインターフェイスとして機能する。したがって、第1レベルのルーティングマトリクス21に含まれるバスを、セグメント毎に独立して使用できる。一方、セグメント間でデータを入出力する必要があるときは、接続用のディレイエレメントDLHに含まれる複数のFFを介してデータを入出力する必要があり、クロックに同期した2サイクル以上の遅延が新たに加わる。
By the second level routing matrix, adjacent segments, for example, connection elements DLH included in the segments S1 and S2, respectively, are connected. Each DLH is connected to a first
このように、第1レベルのルーティングマトリクス21のみを用いてPEを接続する場合、PEsの間は1サイクル(第1の遅延)の範囲内で接続されることが保証され、タイミングの検証は不用である。これに対し、第2レベルのルーティングマトリクスを介してPEを接続する場合は、2サイクル以上の遅延が加わる。第2レベルのルーティングマトリクスを介して接続する場合の遅延は、ディレイエレメントDLHの設定に依存する。例えば、DLHの遅延量を制御することにより、第2のルーティングマトリクスを2回使用する信号と、1回使用する信号とをシンクロナイズできる。他の接続用のディレイエレメントDLVおよびDLXを介して隣接するときも同様である。
In this way, when PEs are connected using only the first
図18に、再構成領域であるPEマトリクス10に構成される第1段階の回路51の一例を示している。この例では、第1の入力ユニット61は、入力バッファLDBを用いてライン単位の原走査線データE1を取得し、さらに、RAMエレメントをラインバッファとして使用して第1の補間演算ユニット63に2ライン分のデータを供給するように構成される。第1の補間演算ユニット63では、EXエレメントを用いて掛け算および足し算を含む演算回路が構成される。第1の補間演算ユニット63では、ブロックデータBDに含まれる線分データLSDの複数の画素のデータを生成する処理がパイプラインで行われるように回路が構成されている。このため、原走査線データE1の読み込みに続いて、線分データLSDが連続的に、パイプライン方式で、例えば、1サイクル毎に出力される。
FIG. 18 shows an example of the
ブロックデータ生成ユニット66では、EXエレメントを用いてセレクタを含む回路が構成される。第1の出力ユニット62では、出力バッファSTBを用いて回路が構成される。ブロックデータ生成ユニット66および第1の出力ユニット62では、2系統のブロックデータBDをハンドリングする回路が並列に用意されている。線分データSLDをブロックデータBDにするときにパディングデータpdを追加する処理に時間を要するので、パイプラインが破綻する可能性があるからである。しかしながら、第1の出力ユニット62よりブロックデータBDをメモリ59にバーストライトすることにより、待ち時間なく、ブロックデータBDをメモリ59に格納できる。
In the block
制御情報生成ユニット69では、EXエレメントを用いて座標をカウントするためのカウンタが構成され、RAMエレメントを用いて定数テーブルが構成されている。定数データには、解像度、回転角θにより決まる線分の情報と、補間計算のための各種パラメータと、線分データをブロック化するための情報などが含まれる。
In the control
図19に、第1段階の回路51の主なポイントにおいてデータが転送される様子を模式的に示している。第1の入力ユニット61は、第1の画像データD1から連続的に原走査線データを取得し(ポイントA)、バッファを用いて2ライン分のデータLD1およびLD2を出力する(ポイントB)。ブロックデータ生成ユニット66においては、第1の補間演算ユニット63から連続的に出力される線分データLSDにパディングデータpdを付加してブロックデータBDを出力する(ポイントC)。第1の出力ユニット62は、それらのブロックデータBDをメモリ59の所定のアドレスにバーストライトする。
FIG. 19 schematically shows how data is transferred at main points of the
図20に、PEマトリクス10に構成される第2段階の回路52の一例を示している。この例では、第2の入力ユニット71は、入力バッファLDBを用いてブロックデータBDを走査線の順番で取得し、さらに、DELエレメントにより、走査方向Wに隣接する2つの画素のデータを第2の補間演算ユニット73に供給されるようにしている。第2の補間演算ユニット73では、EXエレメントを用いて掛け算および足し算を含む演算回路が構成される。第2の補間演算ユニット73では、ブロックデータBDに含まれる線分データLSDの複数の画素のデータを生成する処理がパイプライン方式で行われるように回路が構成されている。このため、第2の補間処理がされた線分データSLDが連続的に、パイプライン方式で、例えば、1サイクル毎に出力される。
FIG. 20 shows an example of the
ラインデータ生成ユニット76では、EXエレメントを用いてセレクタを含む回路が構成され、ゲーティングすることによりブロックデータBDに含まれているパディングデータpdを取り除けるようになっている。DELエレメントは、制御情報と待ち合わせのためのものである。第2の出力ユニット72では、出力バッファSTBを用いて回路が構成される。
In the line
制御情報生成ユニット79には、EXエレメントを用いて座標をカウントするためのカウンタが構成され、RAMエレメントを用いて定数テーブルが構成されている。第1段階の回路51と同様に、定数データには、解像度、回転角θにより決まる線分の情報と、補間計算のための各種パラメータと、ブロックデータBDから線分データLSDを抽出するための情報などが含まれる。
In the control
図21に、第2段階の回路52の主なポイントにおいてデータが転送される様子を模式的に示している。第2の入力ユニット71は、メモリ59の所定のアドレスから取得したブロックデータBDと、そのブロックデータBDを1または複数クロックだけシフトした2系統のブロックデータBDを出力する(ポイントB)。ラインデータ生成ユニット76においては、第2の補間演算ユニット73から出力されるブロックデータからパディングデータpdを取り除き、線分データLSDのみを出力する。第2の出力ユニット72は、それらの線分データLSDを順番にメモリ59に格納し、第2の画像データD2を生成する。
FIG. 21 schematically shows how data is transferred at main points of the
図22に示したように、第1の画像G1を単純に回転すると見栄えが悪くなる。このため、ラインデータ生成ユニット76は、回転画像調整部としての機能を備えている。すなわち、図22における領域R1〜R4の部分は回転後の表示では見栄えを悪くし、不要と考えられる。このため、ラインデータ生成ユニット76は、パディングデータPdをカットするゲーティングの機能を用いて領域R1〜R4のデータを出力しない(削除する)。この処理は制御情報生成ユニット79により出力される制御情報をもとに行う。
As shown in FIG. 22, when the first image G1 is simply rotated, it looks bad. Therefore, the line
図23は、生成装置50の他の例を示す基本構成ブロック図である。この生成装置50も、回路を再構成可能な処理装置(再構成可能デバイス)1を用いて実現されている。再構成可能領域であるPEマトリクス10に構成される第1段階の回路51は、第1の入力ユニット61と、補間演算ユニット65と、第1の出力ユニット62と、制御情報生成ユニット69とを含む。補間演算ユニット65は、第1の補間演算ユニット63と、第2の補間演算ユニット73と、特異点処理部64とを含む。第1の補間演算ユニット63と、第2の補間演算ユニット73とは、線分LS毎に、上述したように、走査方向に補間処理を行っても良い。また、2次元的に隣合う4画素に囲まれる長方形の領域内に属する回転後の画素の輝度データ(画素データ)を4画素の距離を重みづけパラメータとして補間により求めることができる。この長方形領域に回転後の画素が1つしか含まれない場合だけではなく、回転後の画素が0個ないし2個含まれる場合も起こりうる。0個ないし2個含まれる場合を特異点と呼ぶ。回転後の画素が1つしか含まれない場合は、上述してきた処理のみで対応できる。しかしながら、回転後の画素が0個または2個の場合は特異点処理が必要となる。
FIG. 23 is a basic configuration block diagram illustrating another example of the
第2段階の回路52は、第2の入力ユニット71と、ラインデータ生成ユニット76と、第2の出力ユニット72と、制御情報生成ユニット79とを含む。回転後の画素データを生成する補間演算は、第1段階の回路51ですべて行っているので、この第2段階の回路52は、回転後の走査方向Wの順番でブロックデータBDを読み込み、ラインデータ化して出力するだけになる。この例では、ブロックデータBDを走査方向Wに読み出すためのアドレス生成機能を第2段階の回路52に含めて、第1段階の回路51のハードウェア的な負荷を減らしている。すなわち、第1の出力ユニット62は、回転前の走査方向Xの順番でブロックデータBDをメモリ59の中間データファイルMDに格納する。第2の入力ユニット71は、アドレス生成を行い、ブロックデータBDを飛び飛びに取得し、回転後の走査方向Wの順番でブロックデータBDをメモリ59から取得する。
The
以上に説明したように、これらの生成装置50においては、アフィン変換された画像を生成するために、メモリ59に対してバーストアクセスおよびシリアルアクセスするだけで良い。個々の画素データを取得するためにメモリ59に対してランダムアクセスする必要がない。したがって、データを入出力する処理時間が、画像データを変換するための処理時間のクリティカルパスおよび/またはボトルネックとなることを抑制できる。たとえば、図19に示すように、ブロックデータBDをメモリ59に書き込むために補間演算処理を止める必要はなく、メモリに対する入出力がクリティカルパスになるのが避けられている。したがって、アフィン変換を要する画像処理の時間を短縮できる。
As described above, these
上記にて開示した画像処理方法は、メモリの利用効率などの点から、300DPI程度の解像度の画像であれば±数度以下の微小回転を含む画像処理に適している。この程度の微小回転を伴う画像処理は、スキュー角の補正などに多用されており、画像処理を高速化できることは有効である。また、上記にて開示した画像処理を、±数度以上の大きな回転を伴う画像処理に適用することも可能である。また、微小回転をなんどか繰り返すことにより、所望の角度だけ画像を回転することも可能である。 The image processing method disclosed above is suitable for image processing including minute rotations of ± several degrees or less in the case of an image having a resolution of about 300 DPI in terms of memory utilization efficiency and the like. Image processing with such a small rotation is often used for skew angle correction and the like, and it is effective to increase the image processing speed. The image processing disclosed above can also be applied to image processing involving a large rotation of ± several degrees or more. It is also possible to rotate the image by a desired angle by repeating the minute rotation.
また、上記の生成装置は、メモリにブロックデータを書き込む第1段階の回路と、メモリからブロックデータを読み込む第2段階の回路とに分けて、再構成可能なデバイス、特に、ダイナミックリコンフィグラブルデバイスを用いて実現している。しかしながら、第1段階の回路と、第2段階の回路とを同時に構成しても良く、また、FPGAあるいはASICを用いて、これらの回路を固定的に実装しても良い。また、メモリに対するブロックデータへの入出力は、ダブルポートメモリなどを用いることにより、適当な処理間隔をおいて、並列に実行することも可能である。 In addition, the above generation apparatus is divided into a first-stage circuit for writing block data to the memory and a second-stage circuit for reading block data from the memory, and is a reconfigurable device, in particular a dynamic reconfigurable device. It is realized using. However, the first-stage circuit and the second-stage circuit may be configured at the same time, or these circuits may be fixedly mounted using FPGA or ASIC. Further, input / output of block data to / from the memory can be performed in parallel at an appropriate processing interval by using a double port memory or the like.
1 ダイナミックリコンフィグラブルデバイス
10 PEマトリクス(再構成ユニット)
50 生成装置(画像処理装置)
51 第1段階の回路
52 第2段階の回路
1
50 generation device (image processing device)
51
Claims (15)
前記第1のデータが格納された第1の記録媒体から、前記第1の画像の隣接する第1の原走査線および第2の原走査線に含まれる複数の画素を出力するための原走査線データを取得する第1の入力ユニットと、
前記原走査線データから、前記第2の画像の複数の画素を出力するための画素データを生成する補間演算ユニットとを有し、
前記画素データには、前記第2の画像の複数の走査線の線分に含まれる複数の画素を出力するための線分データが含まれており、
さらに、それぞれの線分データを含むブロックデータを入出力単位として第2の記録媒体に格納する第1の出力ユニットと、
前記第2の記録媒体から、前記第2の画像の第3の走査線を出力するための複数の線分データを含む複数のブロックデータを取得する第2の入力ユニットと、
前記第3の走査線に含まれる複数の画素を出力するための走査線データを前記第2のデータとして第3の記録媒体に格納する第2の出力ユニットとを有する、装置。 An apparatus for generating, from first data for outputting a first image, second data for outputting a second image obtained by affine transformation of the first image,
An original scan for outputting a plurality of pixels included in the first original scan line and the second original scan line adjacent to each other in the first image from the first recording medium storing the first data. A first input unit for obtaining line data;
An interpolation calculation unit that generates pixel data for outputting a plurality of pixels of the second image from the original scanning line data;
The pixel data includes line segment data for outputting a plurality of pixels included in a plurality of scanning line segments of the second image,
A first output unit that stores block data including each line segment data as an input / output unit in a second recording medium;
A second input unit for acquiring a plurality of block data including a plurality of line segment data for outputting a third scanning line of the second image from the second recording medium;
And a second output unit that stores scan line data for outputting a plurality of pixels included in the third scan line as the second data in a third recording medium.
前記第2の演算回路は、前記第2の入力ユニットにより取得された線分データを走査方向に補正して、補正後の線分データを生成する、装置。 The first output unit according to claim 7, wherein block data including line segment data output from the first arithmetic circuit is stored in the second recording medium,
The second arithmetic circuit corrects line segment data acquired by the second input unit in a scanning direction to generate corrected line segment data.
前記制御ユニットは、前記再構成可能ユニットに、前記第1の入力ユニット、前記第1の演算回路、および前記第1の出力ユニットを含む第1段階の回路を構成し、第2段階として、前記第2の入力ユニット、および前記第2の出力ユニットを含む第2段階の回路を構成する、装置。 In Claim 6, it further has a reconfigurable unit that can reconfigure a circuit, and a control unit that configures a circuit in the reconfigurable unit,
The control unit constitutes a first stage circuit including the first input unit, the first arithmetic circuit, and the first output unit in the reconfigurable unit, and as the second stage, An apparatus comprising a second stage circuit including a second input unit and the second output unit.
第1の画像を出力するための第1のデータから、前記第1の画像がアフィン変換された第2の画像を出力するための第2のデータを生成することを有し、
前記生成することは、
前記再構成可能ユニットに第1段階の回路を構成することと、
前記再構成可能ユニットに第2段階の回路を構成することとを含み、
前記第1段階の回路は、
前記第1のデータが格納された第1の記録媒体から、前記第1の画像の隣接する第1の原走査線および第2の原走査線に含まれる複数の画素を出力するための原走査線データを取得する第1の入力ユニットと、
前記原走査線データから、前記第2の画像の複数の画素を出力するための画素データを生成する補間演算ユニットとを含み、
前記画素データには、前記第2の画像の複数の走査線の線分に含まれる複数の画素を出力するための線分データが含まれており、
さらに、前記第1段階の回路は、それぞれの線分データを含むブロックデータを入出力単位として第2の記録媒体に格納する第1の出力ユニットを含み、
前記第2段階の回路は、
前記第2の記録媒体から、前記第2の画像の第3の走査線を出力するための複数の線分データを含む複数のブロックデータを取得する第2の入力ユニットと、
前記第3の走査線に含まれる複数の画素を出力するための走査線データを前記第2のデータとして第3の記録媒体に格納する第2の出力ユニットと含む、方法。 A method of controlling a device having a reconfigurable unit capable of reconfiguring a circuit and a control unit configuring a circuit in the reconfigurable unit by the control unit,
Generating second data for outputting a second image in which the first image is affine-transformed from the first data for outputting the first image;
Said generating is
Configuring a first stage circuit in the reconfigurable unit;
Configuring a second stage circuit in the reconfigurable unit;
The first stage circuit comprises:
An original scan for outputting a plurality of pixels included in the first original scan line and the second original scan line adjacent to each other in the first image from the first recording medium storing the first data. A first input unit for obtaining line data;
An interpolation calculation unit that generates pixel data for outputting a plurality of pixels of the second image from the original scanning line data,
The pixel data includes line segment data for outputting a plurality of pixels included in a plurality of scanning line segments of the second image,
Further, the first stage circuit includes a first output unit that stores block data including line segment data as input / output units in a second recording medium,
The second stage circuit comprises:
A second input unit for acquiring a plurality of block data including a plurality of line segment data for outputting a third scanning line of the second image from the second recording medium;
And a second output unit that stores scan line data for outputting a plurality of pixels included in the third scan line in the third recording medium as the second data.
前記第1のデータが格納された第1の記録媒体から、前記第1の画像の隣接する第1の原走査線および第2の原走査線に含まれる複数の画素を出力するための原走査線データを取得することと、
前記原走査線データから、前記第2の画像の複数の画素を出力するための画素データを生成することとを有し、
前記画素データには、前記第2の画像の複数の走査線の線分に含まれる複数の画素を出力するための線分データが含まれており、
さらに、それぞれの線分データを含むブロックデータを入出力単位として第2の記録媒体に格納することと、
前記第2の記録媒体から、前記第2の画像の第3の走査線を出力するための複数の線分データを含む複数のブロックデータを取得することと、
前記第3の走査線に含まれる複数の画素を出力するための走査線データを前記第2のデータとして第3の記録媒体に格納することとを有する、方法。 A method of generating, from first data for outputting a first image, second data for outputting a second image obtained by affine transformation of the first image,
An original scan for outputting a plurality of pixels included in the first original scan line and the second original scan line adjacent to each other in the first image from the first recording medium storing the first data. Getting line data,
Generating pixel data for outputting a plurality of pixels of the second image from the original scanning line data;
The pixel data includes line segment data for outputting a plurality of pixels included in a plurality of scanning line segments of the second image,
Furthermore, storing block data including each line segment data in the second recording medium as an input / output unit;
Obtaining a plurality of block data including a plurality of line segment data for outputting a third scanning line of the second image from the second recording medium;
Storing scan line data for outputting a plurality of pixels included in the third scan line as the second data in a third recording medium.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007209925A JP4936223B2 (en) | 2007-08-10 | 2007-08-10 | Affine transformation apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007209925A JP4936223B2 (en) | 2007-08-10 | 2007-08-10 | Affine transformation apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009044654A true JP2009044654A (en) | 2009-02-26 |
JP4936223B2 JP4936223B2 (en) | 2012-05-23 |
Family
ID=40444861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007209925A Active JP4936223B2 (en) | 2007-08-10 | 2007-08-10 | Affine transformation apparatus and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4936223B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0785266A (en) * | 1993-09-14 | 1995-03-31 | Matsushita Electric Ind Co Ltd | Image rotating device |
JP2006295379A (en) * | 2005-04-07 | 2006-10-26 | Ricoh Co Ltd | Image processing method and image processor |
-
2007
- 2007-08-10 JP JP2007209925A patent/JP4936223B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0785266A (en) * | 1993-09-14 | 1995-03-31 | Matsushita Electric Ind Co Ltd | Image rotating device |
JP2006295379A (en) * | 2005-04-07 | 2006-10-26 | Ricoh Co Ltd | Image processing method and image processor |
Also Published As
Publication number | Publication date |
---|---|
JP4936223B2 (en) | 2012-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8904069B2 (en) | Data processing apparatus and image processing apparatus | |
JPWO2017149591A1 (en) | Image processing device | |
JP2009223758A (en) | Image processing apparatus | |
WO2020217640A1 (en) | Information processing device | |
JP4844406B2 (en) | Data processing apparatus, image processing apparatus, and data processing program | |
JP5643576B2 (en) | Image processing apparatus and control method thereof | |
JP4936223B2 (en) | Affine transformation apparatus and method | |
JP5675278B2 (en) | Data processing apparatus and image processing apparatus | |
US8451022B2 (en) | Integrated circuit and input data controlling method for reconfigurable circuit | |
JP4408113B2 (en) | Signal processing method | |
JP3821198B2 (en) | Signal processing device | |
JP5583563B2 (en) | Data processing device | |
JP2009153020A (en) | Data processing apparatus | |
JP2014035578A (en) | Semiconductor device | |
JP2008059452A (en) | Image processor and image processing method | |
JP2009017060A (en) | Image processing apparatus | |
JP2011103025A (en) | Data input/output device and data processing apparatus using the same | |
JP2005311745A (en) | Image processor | |
JPS62263580A (en) | Interpolation enlargement circuit | |
JP2001109442A (en) | Video signal processing circuit | |
JP2011145938A (en) | Microprocessor with simd processor and processing method thereof | |
JP2023170004A (en) | Semiconductor device | |
JP2002298135A (en) | Thinning device and enlarging device in simd type microprocessor | |
JP2007279780A (en) | Image processor | |
JP2011134085A (en) | Image processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20100309 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100706 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111003 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120110 |
|
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: 20120130 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150302 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4936223 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120212 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |