JP2009044654A - Affine transformation device - Google Patents

Affine transformation device Download PDF

Info

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
Application number
JP2007209925A
Other languages
Japanese (ja)
Other versions
JP4936223B2 (en
Inventor
Tomoyoshi Matsuno
知愛 松野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IP Flex Inc
Original Assignee
IP Flex Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by IP Flex Inc filed Critical IP Flex Inc
Priority to JP2007209925A priority Critical patent/JP4936223B2/en
Publication of JP2009044654A publication Critical patent/JP2009044654A/en
Application granted granted Critical
Publication of JP4936223B2 publication Critical patent/JP4936223B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P20/00Technologies relating to chemical industry
    • Y02P20/50Improvements relating to the production of bulk chemicals
    • Y02P20/52Improvements relating to the production of bulk chemicals using catalysts, e.g. selective catalysts

Landscapes

  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a device capable of performing affine transformation at high speed. <P>SOLUTION: A generating device 50 includes: a first input unit 61 which acquires an original scanning line data from a first data for outputting a first image; and an interpolation calculation unit 65 which generates pixel data for outputting a plurality of pixels of a second image. The pixel data includes line segment data of scanning lines of the second image. The generating device 50 includes: a first output unit 62 which stores block data containing each line segment data in a memory 59; a second input unit 71 which acquires block data containing line segment data for outputting a third scanning line of the second image from the memory 59; and a second output unit 72 which stores scanning line data for outputting a plurality of pixels included in the third scanning line in the memory 59 as the second data. <P>COPYRIGHT: (C)2009,JPO&INPIT

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点の画像データの座標を、アフィン逆行列を用いて演算し、取得している。
特開2005−352703
In Patent Document 1, image data is read from a large-capacity low-speed memory in units of blocks and stored in a small-capacity high-speed memory. Further reading is performed according to the address generated by the address generation unit, and skew correction is performed by the calculation unit that performs the interpolation calculation. The address generation unit generates addresses sequentially by approximating the decimal part with a predetermined accuracy in order to read out the block in an oblique direction from the memory at an angle according to the inclination of the input image, and also according to the accuracy. By increasing / decreasing by a predetermined amount in a given period, the accumulated error of the address due to approximation is suppressed. On the other hand, from the small-capacity high-speed memory, the coordinates of four points of image data adjacent to the corrected pixel are calculated and obtained using an affine inverse matrix.
JP 2005-352703 A

特許文献1に記載された技術では、大容量低速メモリから小容量高速メモリにブロック単位で読みだされる。しかしながら、小容量高速メモリからは、補正する画素毎に、補正に必要なデータを読み出す必要があり、ランダムアクセスを必要とする。したがって、データを入出力する処理時間が、画像データを変換するための処理時間のクリティカルパスおよび/またはボトルネックとなり、画像処理に要する時間をさらに短縮することが難しい。   In the technique described in Patent Document 1, reading is performed in block units from a large-capacity low-speed memory to a small-capacity high-speed memory. However, from the small-capacity high-speed memory, it is necessary to read out data necessary for correction for each pixel to be corrected, and random access is required. Therefore, the processing time for inputting and outputting data becomes a critical path and / or bottleneck of the processing time for converting image data, and it is difficult to further reduce the time required for image processing.

コピー機や画像を編集するアプリケーションにおいて、画像の微小な傾きを補正する処理(スキュー補正処理)の頻度は高く、この処理を高速で行えることは重要である。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 generation apparatus 50 is realized by using a device (processing apparatus) 1 capable of reconfiguring a circuit. The function as the generation device 50 is configured in the reconfigurable area 10 of the processing device 1 by being divided into a first-stage circuit 51 and a second-stage circuit 52. The device 50 generates second data D2 for outputting a second image G2 obtained by affine transformation of the first image G1 from the first data D1 for outputting the first image G1. Device. The device 50 includes a memory 59 as a recording medium, and the memory 59 stores first data D1, second data D2, and intermediate stage data MD. The first-stage circuit 51 configured in the reconfigurable area 10 includes a first input unit 61 that reads data from the memory 59, a first interpolation calculation unit 63 that performs interpolation calculation, and a first interpolation calculation unit. The block data generation unit 66 that divides the data generated by (1) into a plurality of blocks (a block), a first output unit 62 that writes these blocks to a predetermined address of the memory 59, and first-stage control information generation Unit 69.

第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 first input unit 61 uses the first data D1 in the memory 59 and the adjacent first original scan line and second original scan line (hereinafter referred to as the first line L1 and the first line) of the first image G1. The original scanning line data E1 for outputting a plurality of pixels included in the second line L2) is acquired. The first interpolation calculation unit 63 is a unit for generating pixel data P1 for outputting a plurality of pixels of the second image G2 from the original scanning line data E1. In particular, the first interpolation calculation unit 63 of this example performs interpolation in the sub-scanning direction from the data of the first and second lines included in the original scanning line data E1, and obtains the pixel data P1 of the second image G2. Generate. As will be described later, the pixel data P1 generated by interpolating the data of the first and second lines of the first image G1 is included in the line segments LS of the plurality of scanning lines of the second image G2. Line segment data LSD for outputting a plurality of pixels is included. The first output unit 62 stores the block data including the respective line segment data LSD in the memory 59 as a part of the intermediate stage data MD in the input / output unit.

再構成可能領域10に構成される第2段階の回路52は、メモリ59から線分データLSDを読み込む第2の入力ユニット71と、第2の補間演算ユニット73と、読み出された線分データLSDから第2の画像G2を出力するため走査線データを生成するラインデータ生成ユニット76と、第2のデータD2をメモリ59に格納する第2の出力ユニット72と、第2段階の制御情報生成ユニット79とを含む。   The second-stage circuit 52 configured in the reconfigurable area 10 includes a second input unit 71 that reads line segment data LSD from the memory 59, a second interpolation operation unit 73, and the read line segment data. A line data generation unit 76 for generating scanning line data to output the second image G2 from the LSD, a second output unit 72 for storing the second data D2 in the memory 59, and control information generation at the second stage A unit 79.

第2の入力ユニット71は、メモリ59から、第2の画像G2の第3の走査線L3を出力するための複数の線分データLSDを含む複数のブロックデータを順番に取得する。第2の補間演算ユニット73は、走査方向の補間を行い、線分データLSDを補正または再生成する。第2の出力ユニット72は、第3の走査線L3に含まれる複数の画素を出力するための走査線データを第2のデータD2の一部としてメモリ59に格納する。   The second input unit 71 sequentially acquires a plurality of block data including a plurality of line segment data LSD for outputting the third scanning line L3 of the second image G2 from the memory 59. The second interpolation calculation unit 73 performs interpolation in the scanning direction to correct or regenerate the line segment data LSD. The second output unit 72 stores the scanning line data for outputting a plurality of pixels included in the third scanning line L3 in the memory 59 as a part of the second data D2.

制御情報生成ユニット69および79は、ユーザあるいはアプリケーションプログラムなどにより与えられる回転角度によりメモリ59に対して入出力するためのブロックサイズを適切に決め、入出力のアドレスを生成あるいは管理するための情報を各ユニットに提供する。   The control information generation units 69 and 79 appropriately determine a block size for input / output to / from the memory 59 according to a rotation angle given by a user or an application program, and provide information for generating or managing input / output addresses. Provide to each unit.

図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 generation apparatus 50, the original image (first image) indicated by coordinates xy is affine transformed to generate a second image indicated by coordinates wz. The basic algorithm to do is explained. The generating device 50 is intended to perform high-speed micro-angle rotation, for example, affine transformation (micro-angle affine transformation) with a rotation angle θ within about ± 2 degrees. For example, 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, image data (first data) D1 having 2520 × 3560 pixels (9M pixels in total) is obtained. can get. The luminance data for displaying each pixel is 8 bits. Here, the second image G2 is rotated by a certain angle θ with the short side (X direction) of the first image G1 as the scanning direction, and the W direction is the scanning direction (scanning direction, Z direction is the sub-scanning direction). Get.

図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 generation device 50 reads original scanning line data E1 including luminance data of pixels included in the original lines OL1 and OL2 of the image data D1 of the first image G1. Next, the line segments LS of the 88 converted scanning lines are calculated, and each line segment data LSD is stored in the memory 59 as block data having a fixed length of 8 words. That is, the luminance data of 29 or 28 pixels is included in one line segment LS, and one line segment data LSD is 232 bit or 224 bit data. For this reason, the generation device 50 pads a portion less than 8 words (256 bits) and stores it in the memory 59 as block data having a fixed length of 8 words. The block data of 8 words is one of the burst units of the memory 59 and can be input / output at high speed.

図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 generation device 50 continuously reads the original scanning line data E1 in the sub-scanning direction Y from the image data (data file) D1 in the memory 59, and scans the main scanning direction and the scanning line direction. ) Interpolate X to generate line segment data, convert it into block data, and store it in the memory 59 as intermediate data (data file) MD. Two lines of original image data E1 may be read from the image data D1. Also, a line buffer is prepared in the generation device 50, the original image data E1 for one line is read, and the original image for two lines is substantially combined with the original image data for the previous line remaining in the line buffer. Data may be acquired. The generation device 50 repeats this process for one image data D1 of the first image G1, generates line segment data included in the second image G2, and stores it in the intermediate data file MD. The order in which the line segment data LSD is generated and stored in the intermediate data file MD is, for example, LSD (n (1)), LSD (n + 1 (2)), LSD (n + 2 (3)), LSD (n + 1 (1) ), LSD (n + 2 (2)), LSD (n + 3 (3)).

図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 generation device 50 reads block data including line segment data from the intermediate data file MD in the memory 59 according to the scanning line L3 of the second image G2. For example, the order of reading from the intermediate data file MD is LSD (n (1)), LSD (n (2)), LSD (n (3)), LSD (n + 1 (1)), LSD (n + 1 ( 2)), LSD (n + 1 (3)). The generation device 50 further generates one scanning line data from the read line segment data LSD, stores it in the image data file D2 of the memory 59, and outputs image data D2 for outputting the second image G2. Is generated.

図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 memory 59 is performed at high speed. At the same time, the desired block data BD can be randomly stored at an appropriate address in the memory 59 by designating the input / output address, and the desired block data BD can be randomly acquired. This input / output is not a random access to the memory 59 but a burst access in units of blocks, and the input / output to the memory 59 is performed at the highest speed.

図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 memory 59 are high. The line segment data LSD may be stored using two 8-word fixed-length block data BD instead of the 16-word fixed-length block data BD.

回転角θが±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 generation device 50. First, in step 81, the first stage circuit 51 is reconfigured in the reconfigurable area (reconfigurable unit) 10 of the reconfigurable processing device 1. The first stage circuit 51 includes a first input unit 61, a first interpolation operation unit 63, a block data generation unit 66, a first output unit 62, and a control information generation unit 69. In this example, the process of generating pixel data for outputting a plurality of pixels of the second image G2 from the scanning line data of the first image G1 is executed in a first stage and a second stage. The Therefore, the interpolation calculation unit for generating the pixel data is reconfigured by being divided into the first interpolation calculation unit 63 and the second interpolation calculation unit 73.

ステップ81において、第1の入力ユニット61が、メモリ59の第1のデータファイルD1から原走査線データE1を取得する。ステップ82において、第1の補間演算ユニット63が、原走査線データE1に含まれている原走査線の画素データから第2の画像G2を出力するための走査線の線分データLSDを生成する。   In step 81, the first input unit 61 acquires the original scanning line data E 1 from the first data file D 1 in the memory 59. In step 82, the first interpolation calculation unit 63 generates scan line segment data LSD for outputting the second image G2 from the original scan line pixel data included in the original scan line data E1. .

図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 step 82. FIG. As shown in FIG. 8, the first interpolation processing is performed by using two pixel data (luminance data) P (n−1, i) and P (n, i) of the first image G1 adjacent in the sub-scanning direction Y. Are weighted and interpolated to generate pixel data P ′ (n, i) of the second image G2. The interpolation formula is the formula (1) shown in FIG. The parameter Weight is determined by the rotation angle θ. Further, as shown in FIG. 10, when the turning angle θ is defined around the leftmost pixel of the original scanning line OL, the block leading offset a is zero for the leftmost line segment LS. You may turn around the pixel at the center of the original scanning line OL, or turn around the pixel at the right end. In this case, the offset a is zero for the pixel that is the center of rotation.

この例では、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 reconfigurable area 10. The control information generation unit 69 determines the number of line segments of the second image G2 generated between the original scan lines and the number of pixels included in one line segment according to conditions such as the rotation angle θ, resolution, and image size. Provides information necessary for interpolation calculation and blocking, such as (number of dots). In step 83, if the block data BD having a predetermined length can be configured by only the pixel data, the block data generating unit 66 collectively sets the pixel data P ′ of the number of pixels to be processed as the block data BD. When pixel data alone is insufficient, padding data is added to generate fixed-length (burst size) block data BD. In step 83, the first output unit 62 further stores the block data BD in the predetermined order in the intermediate data file MD of the memory 59 according to an instruction (address) from the control information generation unit 69. To do. An example of the order of storing is the method described in FIGS. 6 (a) and 6 (b). The first output unit 62 accesses the memory 59 in a burst mode and outputs data at a high speed.

ステップ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 step 84, steps 81 to 83 are repeated until the original scanning line data included in the image data D1 of the first image G1 is completed. When the weighted interpolation processing using the original scanning line data included in the image data D1 is completed, the second-stage circuit 52 is reconfigured in the reconfigurable area 10 of the reconfigurable processing device 1 in step 85. To do. The reconfigurable device 1 on which the generation device 50 is mounted (mounted) is a dynamic reconfigurable device, and the circuit configuration of the reconfigurable area 10 is changed from the first stage circuit 51 to the second stage circuit 52. Can be changed in one clock (cycle). The second stage circuit 52 includes a second input unit 71, a second interpolation operation unit 73, a line data generation unit 76, a second output unit 72, and a control information generation unit 79.

ステップ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 step 85, the second input unit 71 converts the block data BD including the line segment data LSD from the intermediate data file MD of the memory 59 to the scanning line after rotation based on the address generated by the control information generation unit 79. Read in the order they are included. The second input unit 71 accesses the memory 59 in the burst mode and reads (acquires) the block data BD at a high speed. If the pad data pd is included in the block data BD, the second input unit 71 extracts the line segment data LSD from the block data BD or removes the padding data pd, and sends it to the second interpolation calculation unit 73. Supply. In step 87, the second interpolation calculation unit 73 performs an interpolation calculation (second interpolation) in the scanning direction (scanning line direction) W.

図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 step 87. FIG. As shown in FIG. 11, the second interpolation process weights and interpolates pixel data P′n (i) and P′n (i + 1) adjacent to each other in the scanning direction W after the rotation to obtain a second image. Pixel data P ″ n (i) for outputting G2 is generated. The interpolation formula is the formula (2) shown in FIG. When 300 DPI and the rotation angle θ is 2 degrees, the difference between the pixel position in the X direction of the original scanning line and the pixel position in the W direction of the rotated scanning line is less than one pixel per line (less than 0.1%) So it is almost negligible. Therefore, this second interpolation process may be omitted. When omitted, the second image G2 displays the brightness at a position swollen by about 0.1% in the scanning direction W, so that the second image G2 is an image contracted by about 0.1% in the scanning direction W. Become. In the second interpolation process, luminance data (pixel data) is interpolated in accordance with the pixel position in the scanning direction W, and expansion and contraction of the rotated second image G2 are suppressed.

ステップ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 step 88, the line data generation unit 76 combines the pixel data P ″ subjected to the second interpolation processing in the order of the scanning direction W, and generates rotated scanning line data (line data). Further, in step 88, the second output unit 72 stores the scan line data in the second data file D2 of the memory 59 in order. In step 89, steps 86 to 88 are repeated until the block data BD stored in the intermediate data file MD is completed. In this way, the generation device 50 generates image data D2 for outputting the second image G2 obtained by rotating the first image G1 by the angle θ. In this example, the common memory 59 is used as a recording medium for storing image data or the like, but different recording media may be used. For example, a RAM element included in the reconfigurable area 10 may be a storage destination of the intermediate data file MD.

図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 device 1 is a semiconductor integrated circuit device called DAPDNA developed by the applicant of the present application. The device 1 includes a RISC core module 2 called DAP and a dynamic reconfigurable data flow accelerator 3 called DNA. In addition to DAP2 and DNA3, the device 1 has a DNA4 direct input / output interface 4, a PCI interface 5, an SDRAM interface 6, a DMA controller 7, and other peripheral devices 8, and a high speed for connecting them. Switching bus (internal bus) 9. The PCI interface 5 and / or the SDRAM interface 6 can be connected to a large-capacity recording medium such as a RAM disk 59b, a flash memory 59a, etc., and can store image data.

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 debug interface 42a, a RISC core 42b, an instruction cache 42c, and a data cache 42d. The DNA 3 is used to reconfigure the PE matrix 10 by changing the function and / or connection of the PE matrix 10 in which 376 PEs (PEs, processing elements) are two-dimensionally arranged and the PEs included in the PE matrix 10. And a configuration memory 19 in which configuration data 18 is stored. The PE matrix 10 corresponds to a unit that can reconfigure a circuit, that is, a reconfigurable area. Further, the configuration of the PE matrix 10 is controlled by the DAP 2, and the DAP 2 corresponds to a control unit.

コンフィグレーションメモリ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 configuration memory 19 has a plurality of banks. For example, as shown in FIG. 13B, in the PE matrix 10, a first function (data flow, circuit design) 17a is configured by configuration data 18 stored in the foreground bank. Further, the second function 17b and the third function 17c are configured by configuration data stored in different background banks, respectively. By switching the bank of the memory 19, the PE matrix 10 is reconfigured with the second function 17b or the third function 17c instead of the first function 17a. The reconstruction of the PE matrix 10 is dynamically performed in one cycle (clock cycle), for example. Thus, the PE matrix 10 is a reconfiguration unit including a plurality of elements for configuring a circuit and internal wirings for connecting these elements. By changing the connection of the elements by the internal wirings, the PE matrix 10 10 can be reconfigured.

図13(c)は、PEマトリクス10に回路を再構成する一例である。あるアプリケーション、例えばMPEGデコーダを時分割した複数の機能(サブファンクション)を、PEマトリクス10に時分割で再構成し、MPEGデコーダの機能を専用回路(専用ハードウェア)で提供する。このような使用により、再構成可能なデータ処理装置であるデバイス1を用いて、多くのハードウエア資源を必要とするアプリケーションを、少ないハードウエア資源で実行できる。   FIG. 13C is an example in which a circuit is reconfigured in the PE matrix 10. A plurality of functions (subfunctions) obtained by time-division of an application such as an MPEG decoder are reconfigured in the PE matrix 10 by time-division, and the functions of the MPEG decoder are provided by a dedicated circuit (dedicated hardware). By using such a device, an application requiring a large amount of hardware resources can be executed with a small amount of hardware resources using the device 1 which is a reconfigurable data processing apparatus.

図13(d)は、PEマトリクス10に回路を構成する他の例の一つである。再生方式が異なるアプリケーションを実行するために、複数の機能がそれぞれ実現されるようにPEマトリクス10を再構成できる。このような使用により、多くのアプリケーションを共通のハードウエア(デバイス)1を用いて実行できる。このデバイス1は、プログラムレベル(命令レベル)ではなく、データフローレベル(データパスレベル、ハードウエアレベル)で多数の機能を切り換えて実装できるので、専用のハードウエアに匹敵する速度で処理を行うことができる。   FIG. 13 (d) is another example of configuring a circuit in the PE matrix 10. In order to execute applications having different playback methods, the PE matrix 10 can be reconfigured so that a plurality of functions are realized. Through such use, many applications can be executed using the common hardware (device) 1. Since this device 1 can be implemented by switching a large number of functions at the data flow level (data path level, hardware level) instead of the program level (instruction level), processing can be performed at a speed comparable to that of dedicated hardware. Can do.

図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 PE matrix 10 in an enlarged manner. The processing elements PE as a whole are arranged so as to form a 16 × 24 matrix. Some PEs occupy the space of two PEs, and 376 PEs are arranged in the PE matrix 10 as a whole. These PEs are further divided into six groups each consisting of 8 × 8 PEs. These groups are referred to as segments S, and segments S0 to S5 are arranged in order from the upper left to the lower right of the PE matrix 10. The PEs included in each of the segments S0 to S5 are connected by an intra segment connection that can transmit and receive data within a delay of one cycle. Also, among the segments S0 to S5, adjacent segments are connected by an intersegment connection via a delay element described later.

図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 PE matrix 10, LDB and LDX can be used as input interfaces for inputting data from outside, and STB and STX can be used as output interfaces for outputting data to the outside.

図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 ALU 11a, a MUL (16 × 16) 11b, an FF 11c, and the like. This EXM element is configured to execute an arithmetic operation, a logical operation, a two-input comparison function, a multiplication instruction, or a compound instruction by using configuration data 18 stored in the configuration memory 19 of DNA3. Can be configured. In addition, since a plurality of FFs 11c are built in, it is possible to control the latency from data input to output to the element PE, and in a configuration where the number of delay elements (DLE) is insufficient, the function as a delay element. It is also possible to set

図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 module 12a, an address input address register (FF) 12b, a latch 12c, and a data input write data register (FF). ) 12d, a latch 12e, and a read data register (FF) 12f for data output. The read / write control of the RAM module 12a is performed by the token value input together with the address data and / or read data. From the address input to the read data output, it is possible in about 3 clock cycles like the EXE element, and data input / output is possible with the same latency as other types of PE included in the PE matrix 10. is there. This RAM element has a 32-bit mode, a dual-port 32-bit mode, a FIFO mode, a 16-bit mode, an 8-bit mode, and an FSM (feedback state mode) based on configuration data 18 stored in the configuration memory 19 of DNA3. Can be configured to input and / or output data.

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 matrix 10. Therefore, input / output to / from the RAM element can be controlled by a circuit reconfigured in the PE matrix 10.

PEマトリクス10は、複数のPEと、それらを接続するためのルーティングマトリクス(配線群)20を含む。ルーティングマトリクス20は、セグメントS内のPEを接続するための第1レベルの配線群(第1レベルのルーティングマトリクス、イントラコネクト)21と、ディレイエレメントを介して隣接するセグメントSの間を接続するための第2レベルの配線群(第2レベルのルーティングマトリクス、インターコネクト)とを含む。ルーティングマトリクス20によるPEsの接続はコンフィグレーションデータ18により制御できる。したがって、PEマトリクス10には、コンフィグレーションデータ18により、複数のPEのそれぞれの機能を変更すること、および/または、ルーティングマトリクス20の少なくとも一部の接続を変更することにより、異なる回路(データパス、データフロー)を再構成できる。   The PE matrix 10 includes a plurality of PEs and a routing matrix (wiring group) 20 for connecting them. The routing matrix 20 is used to connect the first level wiring group (first level routing matrix, intraconnect) 21 for connecting the PEs in the segment S and the adjacent segment S via the delay element. Second level wiring group (second level routing matrix, interconnect). Connection of PEs by the routing matrix 20 can be controlled by the configuration data 18. Therefore, the PE matrix 10 has different circuits (data paths) by changing the function of each of the plurality of PEs and / or changing at least part of the connection of the routing matrix 20 according to the configuration data 18. , Data flow) can be reconfigured.

図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-level wiring group 21 for connecting the PEs inside the segment S. The first level routing matrix 21 includes 128 vertical buses 23 and 64 horizontal buses 24 for connecting 8 × 8 PEs included in the segment S0. The vertical buses 23 are divided into 16 groups, and two V-buses 23x and 23y each including eight buses are paired and arranged along the vertical column of PEs on both sides of the column. Has been. The horizontal buses 24 are divided into eight groups, and H-buses 24 each including eight buses are arranged along the horizontal rows (lines) of the PEs. The V-buses 23x and 23y are provided with 8-1 bus selectors (multiplexers, MUX) 25 corresponding to the respective PEs, and data can be input to the respective PEs.

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-bus 24 is provided with 8-1 bus selectors (multiplexers, MUX) 26 corresponding to the intersections of the H-bus 24 and the V-buses 23x and 23y. Therefore, one data set can be output from one H-bus 24 to one V-bus 23 x or 23 y intersecting with the H-bus 24. The reverse is also possible. Each bus included in the H-bus 24 is connected to the output of the PEs of that line. Therefore, PEs included in the segment S can be connected through the V-buses 23x and 23y and the H-bus 24. Data can be connected within the range that can be connected by the first level bus 21 including the V-buses 23x and 23y and the H-bus 24, that is, within one cycle (one clock) between the PEs in the segments S0 to S5. Can send and receive. Therefore, in terms of timing, for example, all PEs included in the segment S0 are equivalent. For this reason, in order to configure a circuit within the same segment, no matter which PE is selected and assigned a function, there is no need to consider the timing. In terms of timing, PEs in the segment are used. The predetermined circuit can be freely arranged and wired.

第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 level routing matrix 21 within each segment. Accordingly, PEs included in different segments can be connected via the second level routing matrix. The connection delay element DLH functions as an interface of a bus included in the first level routing matrix 21. Therefore, the buses included in the first level routing matrix 21 can be used independently for each segment. On the other hand, when it is necessary to input / output data between segments, it is necessary to input / output data via a plurality of FFs included in the connection delay element DLH, and there is a delay of two cycles or more in synchronization with the clock. Newly join.

このように、第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 level routing matrix 21, it is guaranteed that PEs are connected within a range of one cycle (first delay), and timing verification is unnecessary. It is. On the other hand, when connecting PEs via the second level routing matrix, a delay of two cycles or more is added. The delay when connecting via the second level routing matrix depends on the setting of the delay element DLH. For example, by controlling the delay amount of DLH, it is possible to synchronize a signal that uses the second routing matrix twice and a signal that is used once. The same applies when adjacent via the other delay elements DLV and DLX for connection.

図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 first stage circuit 51 configured in the PE matrix 10 which is a reconstruction area. In this example, the first input unit 61 uses the input buffer LDB to acquire the original scanning line data E1 in units of lines, and further uses the RAM element as a line buffer to transfer data to the first interpolation operation unit 63. It is configured to supply data for a line. In the first interpolation arithmetic unit 63, an arithmetic circuit including multiplication and addition is configured using EX elements. In the first interpolation operation unit 63, a circuit is configured such that processing for generating data of a plurality of pixels of the line segment data LSD included in the block data BD is performed in the pipeline. Therefore, following the reading of the original scanning line data E1, the line segment data LSD is continuously output in a pipeline manner, for example, every cycle.

ブロックデータ生成ユニット66では、EXエレメントを用いてセレクタを含む回路が構成される。第1の出力ユニット62では、出力バッファSTBを用いて回路が構成される。ブロックデータ生成ユニット66および第1の出力ユニット62では、2系統のブロックデータBDをハンドリングする回路が並列に用意されている。線分データSLDをブロックデータBDにするときにパディングデータpdを追加する処理に時間を要するので、パイプラインが破綻する可能性があるからである。しかしながら、第1の出力ユニット62よりブロックデータBDをメモリ59にバーストライトすることにより、待ち時間なく、ブロックデータBDをメモリ59に格納できる。   In the block data generation unit 66, a circuit including a selector is configured using EX elements. In the first output unit 62, a circuit is configured using the output buffer STB. In the block data generation unit 66 and the first output unit 62, circuits for handling two systems of block data BD are prepared in parallel. This is because it takes time to add the padding data pd when the line segment data SLD is changed to the block data BD, so that the pipeline may break down. However, the block data BD can be stored in the memory 59 without waiting time by burst writing the block data BD to the memory 59 from the first output unit 62.

制御情報生成ユニット69では、EXエレメントを用いて座標をカウントするためのカウンタが構成され、RAMエレメントを用いて定数テーブルが構成されている。定数データには、解像度、回転角θにより決まる線分の情報と、補間計算のための各種パラメータと、線分データをブロック化するための情報などが含まれる。   In the control information generation unit 69, a counter for counting coordinates using the EX element is configured, and a constant table is configured using the RAM element. The constant data includes line segment information determined by the resolution and the rotation angle θ, various parameters for interpolation calculation, information for blocking the line segment data, and the like.

図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 circuit 51 in the first stage. The first input unit 61 continuously obtains original scanning line data from the first image data D1 (point A), and outputs data LD1 and LD2 for two lines using a buffer (point B). In the block data generation unit 66, the padding data pd is added to the line segment data LSD continuously output from the first interpolation operation unit 63, and the block data BD is output (point C). The first output unit 62 burst writes the block data BD to a predetermined address in the memory 59.

図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 second stage circuit 52 configured in the PE matrix 10. In this example, the second input unit 71 uses the input buffer LDB to acquire block data BD in the order of the scanning lines, and further uses the DEL element to obtain data of two pixels adjacent in the scanning direction W as the second. The interpolation calculation unit 73 is supplied. In the second interpolation operation unit 73, an operation circuit including multiplication and addition is configured using EX elements. In the second interpolation operation unit 73, a circuit is configured such that processing for generating data of a plurality of pixels of the line segment data LSD included in the block data BD is performed in a pipeline manner. Therefore, the line segment data SLD subjected to the second interpolation processing is continuously output in a pipeline manner, for example, every cycle.

ラインデータ生成ユニット76では、EXエレメントを用いてセレクタを含む回路が構成され、ゲーティングすることによりブロックデータBDに含まれているパディングデータpdを取り除けるようになっている。DELエレメントは、制御情報と待ち合わせのためのものである。第2の出力ユニット72では、出力バッファSTBを用いて回路が構成される。   In the line data generation unit 76, a circuit including a selector is configured using the EX element, and the padding data pd included in the block data BD can be removed by gating. The DEL element is for waiting for control information. In the second output unit 72, a circuit is configured using the output buffer STB.

制御情報生成ユニット79には、EXエレメントを用いて座標をカウントするためのカウンタが構成され、RAMエレメントを用いて定数テーブルが構成されている。第1段階の回路51と同様に、定数データには、解像度、回転角θにより決まる線分の情報と、補間計算のための各種パラメータと、ブロックデータBDから線分データLSDを抽出するための情報などが含まれる。   In the control information generating unit 79, a counter for counting coordinates using the EX element is configured, and a constant table is configured using the RAM element. Similar to the first-stage circuit 51, the constant data includes information about line segments determined by the resolution and the rotation angle θ, various parameters for interpolation calculation, and line segment data LSD from the block data BD. Information etc. are included.

図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 circuit 52 in the second stage. The second input unit 71 outputs block data BD acquired from a predetermined address in the memory 59 and two systems of block data BD obtained by shifting the block data BD by one or more clocks (point B). The line data generation unit 76 removes the padding data pd from the block data output from the second interpolation operation unit 73 and outputs only the line segment data LSD. The second output unit 72 stores the line segment data LSD in order in the memory 59, and generates the second image data D2.

図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 data generation unit 76 has a function as a rotated image adjustment unit. That is, the regions R1 to R4 in FIG. 22 look bad in the display after rotation and are considered unnecessary. For this reason, the line data generation unit 76 does not output (delete) the data in the regions R1 to R4 using the gating function for cutting the padding data Pd. This process is performed based on the control information output by the control information generating unit 79.

図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 generation device 50. This generation apparatus 50 is also realized by using a processing apparatus (reconfigurable device) 1 capable of reconfiguring a circuit. The first-stage circuit 51 configured in the PE matrix 10 which is a reconfigurable area includes a first input unit 61, an interpolation calculation unit 65, a first output unit 62, and a control information generation unit 69. Including. The interpolation calculation unit 65 includes a first interpolation calculation unit 63, a second interpolation calculation unit 73, and a singular point processing unit 64. As described above, the first interpolation calculation unit 63 and the second interpolation calculation unit 73 may perform interpolation processing in the scanning direction for each line segment LS. Further, luminance data (pixel data) of a pixel after rotation belonging to a rectangular region surrounded by four pixels that are two-dimensionally adjacent can be obtained by interpolation using a distance of four pixels as a weighting parameter. This rectangular area may include not only one rotated pixel but also 0 to 2 rotated pixels. The case where 0 or 2 are included is called a singular point. When only one pixel after rotation is included, it can be handled only by the processing described above. However, when there are 0 or 2 pixels after rotation, singularity processing is required.

第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 second stage circuit 52 includes a second input unit 71, a line data generation unit 76, a second output unit 72, and a control information generation unit 79. Since the interpolation operation for generating the rotated pixel data is all performed by the first-stage circuit 51, the second-stage circuit 52 reads the block data BD in the order of the scanning direction W after the rotation, It will only be output as data. In this example, the second stage circuit 52 includes an address generation function for reading the block data BD in the scanning direction W, thereby reducing the hardware load of the first stage circuit 51. That is, the first output unit 62 stores the block data BD in the intermediate data file MD in the memory 59 in the order of the scanning direction X before the rotation. The second input unit 71 performs address generation, acquires block data BD in a jump, and acquires block data BD from the memory 59 in the order of the scanning direction W after rotation.

以上に説明したように、これらの生成装置50においては、アフィン変換された画像を生成するために、メモリ59に対してバーストアクセスおよびシリアルアクセスするだけで良い。個々の画素データを取得するためにメモリ59に対してランダムアクセスする必要がない。したがって、データを入出力する処理時間が、画像データを変換するための処理時間のクリティカルパスおよび/またはボトルネックとなることを抑制できる。たとえば、図19に示すように、ブロックデータBDをメモリ59に書き込むために補間演算処理を止める必要はなく、メモリに対する入出力がクリティカルパスになるのが避けられている。したがって、アフィン変換を要する画像処理の時間を短縮できる。   As described above, these generation devices 50 need only perform burst access and serial access to the memory 59 in order to generate an affine-transformed image. There is no need to randomly access the memory 59 in order to acquire individual pixel data. Therefore, it is possible to suppress the processing time for inputting / outputting data from becoming a critical path and / or bottleneck of the processing time for converting image data. For example, as shown in FIG. 19, it is not necessary to stop the interpolation calculation process in order to write the block data BD to the memory 59, and input / output to the memory is prevented from becoming a critical path. Therefore, it is possible to shorten the time for image processing that requires affine transformation.

上記にて開示した画像処理方法は、メモリの利用効率などの点から、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.

本発明の実施形態の生成装置のブロック図。The block diagram of the production | generation apparatus of embodiment of this invention. アフィン変換することにより線分が生成されることを示す図。The figure which shows that a line segment is produced | generated by performing an affine transformation. 変換前の走査線のデータを補間して変換後の線分のデータを生成することを示す図。The figure which shows producing | generating the data of the line segment after conversion by interpolating the data of the scanning line before conversion. 変換後の線分のデータを組み合わせて、変換後の走査線のデータを生成することを示す図。The figure which shows producing | generating the data of the scanning line after conversion combining the data of the line segment after conversion. 線分のデータをブロックデータ化することを示す図。The figure which shows converting the data of a line segment into block data. 図6(a)および(b)は、ブロックデータをメモリに格納する異なる例を示す図。FIGS. 6A and 6B are diagrams showing different examples of storing block data in a memory. 生成装置の処理を示すフローチャート。The flowchart which shows the process of a production | generation apparatus. 副走査方向に補間して線分のデータを生成する様子を示す図。The figure which shows a mode that the data of a line segment are produced | generated by interpolating in a subscanning direction. 副走査方向の補間式を示す図。The figure which shows the interpolation type | formula of a subscanning direction. 走査線の左端を中心に回転したときの左端の線分のデータを生成する様子を示す図。The figure which shows a mode that the data of the line segment of the left end when it rotates centering on the left end of a scanning line are produced | generated. 走査方向にさらに補間して線分のデータを生成する様子を示す図。The figure which shows a mode that the data of a line segment are produced | generated by further interpolating in a scanning direction. 走査方向の補間式を示す図。The figure which shows the interpolation formula of a scanning direction. 図13(a)は、再構成可能なデバイスの一例の概略構成を示し、図13(b)は、PEマトリクス(再構成可能領域)の概略を示し、図13(c)および図13(d)は、PEマトリクスを動的に再構成する様子を示す。FIG. 13A shows a schematic configuration of an example of a reconfigurable device, FIG. 13B shows an overview of a PE matrix (reconfigurable region), and FIGS. 13C and 13D ) Shows how the PE matrix is dynamically reconfigured. PEマトリクスに配置されたPEのタイプを示す図。The figure which shows the type of PE arrange | positioned at PE matrix. PEの1つのタイプのEXMの構成を示すブロック図。The block diagram which shows the structure of one type of EXM of PE. PEの1つのタイプのRAMの構成を示すブロック図。The block diagram which shows the structure of one type of RAM of PE. セグメント内の配線(イントラセグメント配線)を示す図。The figure which shows the wiring (intra segment wiring) in a segment. 第1段階の回路の一例を示すブロック図。The block diagram which shows an example of the circuit of a 1st step. 第1段階の回路においてデータが転送される様子を示す図。The figure which shows a mode that data are transferred in the circuit of a 1st step. 第2段階の回路の一例を示すブロック図。The block diagram which shows an example of the circuit of a 2nd step. 第2段階の回路においてデータが転送される様子を示す図。The figure which shows a mode that data are transferred in the circuit of a 2nd step. 画像を回転したときに、はみ出た部分の削除を行うことを示す図。The figure which shows deleting the part which protruded when the image was rotated. 本発明の実施形態の生成装置の異なる例を示すブロック図。The block diagram which shows the example from which the production | generation apparatus of embodiment of this invention differs.

符号の説明Explanation of symbols

1 ダイナミックリコンフィグラブルデバイス
10 PEマトリクス(再構成ユニット)
50 生成装置(画像処理装置)
51 第1段階の回路
52 第2段階の回路
1 Dynamic Reconfigurable Device 10 PE Matrix (Reconfiguration Unit)
50 generation device (image processing device)
51 First Stage Circuit 52 Second Stage Circuit

Claims (15)

第1の画像を出力するための第1のデータから、前記第1の画像がアフィン変換された第2の画像を出力するための第2のデータを生成する装置であって、
前記第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.
請求項1において、前記第1の出力ユニットは、前記ブロックデータを固定長で前記第2の記録媒体に格納する、装置。   2. The apparatus according to claim 1, wherein the first output unit stores the block data in the second recording medium with a fixed length. 請求項2において、前記第1の出力ユニットは、前記ブロックデータをバースト長で前記第2の記録媒体に格納する、装置。   3. The apparatus according to claim 2, wherein the first output unit stores the block data in the second recording medium with a burst length. 請求項1において、前記第1の出力ユニットは、前記ブロックデータを、前記第2の画像の走査線の順番で読みだされるようにアドレスを変えて、前記第2の記録媒体に格納する、装置。   The first output unit according to claim 1, wherein the first output unit changes the address so that the block data is read in the order of the scanning lines of the second image, and stores the block data in the second recording medium. apparatus. 請求項1において、前記第2の入力ユニットは、前記ブロックデータを、前記第2の画像の走査線の順番で読みだすようにアドレスを変えて、前記第2の記録媒体から取得する、装置。   2. The apparatus according to claim 1, wherein the second input unit obtains the block data from the second recording medium by changing an address so that the block data is read in the order of scanning lines of the second image. 請求項1において、前記補間演算ユニットは、副走査方向の補間により、それぞれの線分データに含まれる複数の画素を出力するためのデータを並列に生成する第1の演算回路を含む、装置。   2. The apparatus according to claim 1, wherein the interpolation calculation unit includes a first calculation circuit that generates in parallel data for outputting a plurality of pixels included in each line segment data by interpolation in the sub-scanning direction. 請求項6において、前記補間演算ユニットは、走査方向の補間により、それぞれの線分データに含まれる複数の画素を出力するためのデータを並列に生成する第2の演算回路を、さらに含む、装置。   7. The apparatus according to claim 6, wherein the interpolation calculation unit further includes a second calculation circuit that generates in parallel data for outputting a plurality of pixels included in each line segment data by interpolation in the scanning direction. . 請求項7において、前記第1の出力ユニットは、前記第1の演算回路から出力された線分データを含むブロックデータを前記第2の記録媒体に格納し、
前記第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.
請求項6において、さらに、回路を再構成可能な再構成可能ユニットと、前記再構成可能ユニットに回路を構成する制御ユニットとを有し、
前記制御ユニットは、前記再構成可能ユニットに、前記第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の画像がアフィン変換された第2の画像を出力するための第2のデータを生成する方法であって、
前記第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.
請求項11において、前記第2の記録媒体には、前記ブロックデータを固定長で格納する、方法。   12. The method according to claim 11, wherein the block data is stored at a fixed length in the second recording medium. 請求項12において、前記第2の記録媒体には、前記ブロックデータをバースト長で格納する、方法。   13. The method according to claim 12, wherein the block data is stored in a burst length on the second recording medium. 請求項11において、前記第2の記録媒体には、前記ブロックデータを、前記第2の画像の走査線の順番で読みだされるようにアドレスを変えて格納する、方法。   12. The method according to claim 11, wherein the block data is stored 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. 請求項11において、前記第2の記録媒体から、前記ブロックデータを、前記第2の画像の走査線の順番で読みだすようにアドレスを変えて取得する、方法。   12. The method according to claim 11, wherein the block data is acquired from the second recording medium by changing an address so as to read in the order of scanning lines of the second image.
JP2007209925A 2007-08-10 2007-08-10 Affine transformation apparatus and method Active JP4936223B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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