WO2019003610A1 - 処理装置 - Google Patents

処理装置 Download PDF

Info

Publication number
WO2019003610A1
WO2019003610A1 PCT/JP2018/016504 JP2018016504W WO2019003610A1 WO 2019003610 A1 WO2019003610 A1 WO 2019003610A1 JP 2018016504 W JP2018016504 W JP 2018016504W WO 2019003610 A1 WO2019003610 A1 WO 2019003610A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
unit
storage unit
speed storage
row
Prior art date
Application number
PCT/JP2018/016504
Other languages
English (en)
French (fr)
Inventor
裕介 内田
溝添 博樹
Original Assignee
日立オートモティブシステムズ株式会社
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 日立オートモティブシステムズ株式会社 filed Critical 日立オートモティブシステムズ株式会社
Priority to US16/620,095 priority Critical patent/US11195249B2/en
Publication of WO2019003610A1 publication Critical patent/WO2019003610A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Definitions

  • the present invention relates to a processing apparatus.
  • the generated image data contains distortion. Further, depending on the installation situation of the camera, effects such as enlargement, reduction, rotation, and shear occur, and the generated image data further includes the difference from the real image. Furthermore, even when reproducing a recorded image, the reproduced image includes effects such as enlargement, reduction, rotation, and shearing depending on the installation situation of the reproduction device.
  • the image processing apparatus that corrects the difference from such a real image calculates the correspondence between the before-correction image and the after-correction image, and reads the before-correction pixel or pixel group necessary for each pixel of the after-correction image. In general, storage devices storing image data tend to be more expensive as the access speed is higher.
  • a cache method is a method in which a small portion of image data in one frame is read from a low speed storage device storing one frame of large image data into a higher speed storage device, and repetitive reading is performed from the high speed storage device. It is.
  • Patent Document 1 when the input image data of the input tile Q21 is read from the memory 120 and stored in the storage unit 110, except the image data of the cache area of the storage unit 110 where the input image data of the overlapping area S is left.
  • a configuration is disclosed in which the image data of the input image area R21 is acquired from the memory 120 and stored in the storage unit 110.
  • the processing apparatus is capable of reading at a higher speed than the low speed storage section in which an image having a spread in the column direction and row direction is stored, and higher speed than the low speed storage section.
  • a high speed storage unit for storing an area corresponding to a predetermined storage row which is all of directions and a part of the row direction; a reading unit for continuously reading the image from the high speed storage unit in the column direction;
  • a determination unit for reading the image from the unit and writing the image in the high-speed storage unit, the determination unit storing the high-speed storage unit for each processing unit row obtained by dividing the row direction into predetermined pixels.
  • the line number of the image to be read next is determined based on the minimum or maximum line number in the line direction of the image.
  • FIG. 6 is a view for explaining an operation example of the image processing apparatus 1; 7 (a) shows an area written to the high speed storage unit 145 at the first to fourth times, FIG. 7 (b) shows an area written to the high speed storage unit 145 at the 34th to 37th times, FIG. Fig. 8 shows values stored in the management table 144.
  • Flow chart showing accumulation processing of the cache unit 141 Flow chart showing the reading process of the cache unit 141
  • FIG. 1 is a block diagram of an image processing system S including an image processing apparatus 1.
  • the image processing system S includes an image processing device 1, a camera 2, and a recognition device 3.
  • the camera 2 outputs an image obtained by capturing (hereinafter, “captured image”) to the image processing apparatus 1.
  • the image processing apparatus 1 applies distortion correction processing to a captured image to generate an image in which distortion is corrected (hereinafter, “distortion corrected image”), and outputs the generated image to the recognition apparatus 3.
  • the recognition device 3 executes various applications using the distortion correction image.
  • Each of the image processing apparatus 1, the camera 2, and the recognition apparatus 3 may be connected by wire and may exchange information of the above-described image, or may exchange information of the image by wireless communication.
  • the image processing device 1, the camera 2, and the recognition device 3 may be installed at the same point, or may be installed at different points or different countries. Furthermore, the exchange of information in the image processing device 1, the camera 2, and the recognition device 3 may be carried out immediately by communication, or the storage device is moved after the information of the image is stored in the portable storage device. Image information may be read out.
  • FIG. 2 is a functional block diagram showing a functional configuration of the image processing apparatus 1.
  • the image processing apparatus 1 includes an image input unit 11, a preprocessing unit 12, a low speed storage unit 13, a post processing unit 14, and an image output unit 15.
  • the image input unit 11 and the image output unit 15 are input / output interface circuits.
  • the pre-processing unit 12 and the post-processing unit 14 are circuits configured in, for example, an FPGA (Field-Programmable Gate Array).
  • the low speed storage unit 13 is, for example, an SD-RAM, and has a lower access speed, ie, a reading speed and a writing speed, than a high speed storage unit 145 described later.
  • a unit of a predetermined read information amount is predetermined as a hardware characteristic. For example, in the case where the unit of the read information amount is 64 bytes, when a certain 3-byte information is requested to the low speed storage unit 13, the 64-byte information including the requested 3 bytes is obtained from the low speed storage unit 13.
  • a photographed image is input to the image input unit 11 from the camera 2.
  • the image input unit 11 outputs the input photographed image to the preprocessing unit 12.
  • the preprocessing unit 12 performs a process including an operation for each pixel on the input captured image, for example, luminance adjustment, and stores the processed captured image in the low speed storage unit 13.
  • the post-processing unit 14 reads out the photographed image stored in the low speed storage unit 13 and performs distortion correction processing to create a distortion corrected image. Then, the post-processing unit 14 outputs the generated distortion correction image to the image output unit 15.
  • the image output unit 15 outputs the image output from the post-processing unit 14 to the recognition device 3.
  • the post-processing unit 14 includes a cache unit 141 and a distortion correction unit 146.
  • the cache unit 141 provides the distortion correction unit 146 with information of the photographed image requested from the distortion correction unit 146.
  • the distortion correction unit 146 reads a captured image and generates a distortion corrected image.
  • the distortion correction unit 146 requests the cache unit 141 for information of each partial region of the captured image, and acquires the entire captured image in multiple times.
  • the cache unit 141 calculates an approximate area required from the distortion correction unit 146 in advance, and acquires information on the area of the photographed image from the low speed storage unit 13 before the distortion correction unit 146 requests it. Then, when requested by the distortion correction unit 146, the cache unit 141 provides the information of the photographed image quickly.
  • the cache unit 141 includes a simplified address generation unit 142, a determination unit 143, a management table 144, and a high speed storage unit 145.
  • the simplified address generation unit 142 executes an address calculation process substantially the same as the address generation unit 147 described later included in the distortion correction unit 146. As a result, an area including all the pixels in the captured image requested from the distortion correction unit 146 next, that is, the read destination address is calculated.
  • the address calculated by the simplified address generation unit 142 is an approximation, for example, in units of 10 pixels, and the load of calculation is small. Details will be described later.
  • the determination unit 143 determines an area not yet stored in the high speed storage unit 145 among the areas indicated by the read destination address output by the simple address generation unit 142, and acquires information on pixels in the area from the low speed storage unit 13. And store it in the high-speed storage unit 145.
  • the determination unit 143 refers to the management table 144 to determine the area stored in the high speed storage unit 145, and rewrites the management table 144 as necessary. The operation of the determination unit 143 will be described in detail later.
  • the management table 144 is a storage area secured on the FPGA, and the management table 144 stores information indicating the area of the photographed image stored in the high-speed storage unit 145.
  • the high speed storage unit 145 is a storage area configured on the FPGA, and can be accessed faster than the low speed storage unit 13. The configuration of the high speed storage unit 145 will be described later.
  • the distortion correction unit 146 includes an address generation unit 147 and a correction unit 148.
  • the address generation unit 147 strictly calculates the address indicating the area of the captured image to be processed by the correction unit 148, for example, in units of one pixel, and transmits the calculated address to the cache unit 141.
  • the cache unit 141 outputs the information of the captured image corresponding to the received address to the distortion correction unit 146.
  • the correction unit 148 corrects distortion and color information by a known method using the information acquired from the cache unit 141, and generates a distortion corrected image.
  • FIG. 3 is a schematic view showing a photographed image.
  • the captured image has, for example, a resolution of 1920 pixels wide and 1080 pixels high.
  • the captured image is a lattice of 1920 ⁇ 1080 color information.
  • the lower left pixel of the photographed image is a reference position, that is, the pixel at coordinates (1, 1)
  • the right side in the drawing is the plus direction of the X axis
  • the upper side in the drawing is the plus direction of the Y axis.
  • the information of the pixels continuous in the horizontal direction is stored in the continuous area in the low speed storage unit 13.
  • the information of the pixel of the photographed image corresponding to the unit of the read information amount of the low speed storage unit 13 corresponds to 10 pixels.
  • the photographed image is called w1, w2, w3... In units of 10 pixels in the horizontal direction.
  • the right end is w192.
  • the distortion correction unit 146 performs processing by scanning the captured image in the positive direction from the vicinity of the first pixel of the X axis, and shifts the processing target in the positive direction of the Y axis when it reaches the right end of the captured image. Scan in the positive direction from near the pixel. That is, the distortion correction unit 146 performs so-called raster scan.
  • the distortion correction processing uses not only the information of the pixel to be processed but also the information of the pixels around it, the photographed image is divided into a plurality of blocks composed of a plurality of pixels, and one block is regarded as a processing unit. That is, the distortion correction unit 146 calculates the address of the block to be processed by the correction unit 148, that is, the area on the photographed image, according to a predetermined algorithm.
  • FIG. 4 is a diagram showing an area to be read in a photographed image.
  • the horizontal direction is represented by w1, w2, w3. That is, the amount of information stored in one lattice in FIG. 4 is equal to the amount of information stored in ten lattices in FIG.
  • the address areas S1 to S3 generated by the address generation unit 147 of the distortion correction unit 146 are indicated by broken lines, and the address areas D1 to D4 generated by the simplified address generation unit 142 of the cache unit 141 are indicated by solid lines.
  • the address area generated by the address generation unit 147 is S1, and the address area D1 generated by the simple address generation unit 142 is calculated so as to include the above-described S1.
  • the address area S1 generated by the address generation unit 147 is not in line with a grid showing a division of every 10 pixels in FIG.
  • the simple address generation unit 142 calculates the address area in units of 10 pixels, the address area D1 generated by the simple address generation unit 142 exists along the grid shown in FIG.
  • the second address area generated by the address generation unit 147 is S2, and the second address area D2 generated by the simple address generation unit 142 is calculated to include the above-described S2.
  • the two regions partially overlap.
  • the area D1 is represented by (w1,1) to (w5,3) and the area D2 is represented by (w4,3) to (w8,5) when the area is represented by the lower left coordinate and the upper right coordinate. Therefore, the area D1 and the area D2 overlap at (w4, 3) to (w5, 3).
  • the determination unit 143 of the cache unit 141 omits the reading of (w4, 3) to (w5, 3), which are overlapping areas when reading the area D2, by using the management table 144. The operation of the determination unit 143 will be described later.
  • each section in the X direction of the grid shown in FIG. 4 is also referred to as a “column”, and each section in the Y direction of the grid is also referred to as a “row”. For example, the column next to w1 is w2.
  • FIG. 5 is a schematic view showing a structure of the high speed storage unit 145. As shown in FIG.
  • the high-speed storage unit 145 is a lattice-shaped storage area having 192 spreads in the X direction and 8 spreads in the Y direction.
  • the amount of information stored in each lattice shown in FIG. 5 is equal to the amount of information stored in each lattice shown in FIG. 4 and is equal to the amount of information stored in ten lattices shown in FIG.
  • the X direction of the high speed storage unit 145 is called c1, c2, c3, ...
  • the Y direction is r1, r2, r3, ⁇ ⁇ ⁇ Called.
  • each section in the X direction of the grid shown in FIG. 5 is also referred to as a “column”, and each section in the Y direction of the grid is also referred to as a “row”.
  • the column next to c1 is c2.
  • FIG. 6 shows an example of the management table 144.
  • the management table 144 is provided with storage areas corresponding to the grids in the X direction of the high speed storage unit 145.
  • the management table 144 stores the maximum value of the Y coordinate of the captured image input to each grid in the X direction of the high speed storage unit 145.
  • the distortion correction unit 146 reads the information of the captured image in the positive direction of the Y axis, the numerical values recorded in the management table 144 increase as the processing progresses.
  • FIG. 7 (a) shows an area written to the high speed storage unit 145 at the first to fourth times
  • FIG. 7 (b) shows an area written to the high speed storage unit 145 at the 34th to 37th times
  • the numbers in each of the grids shown in FIGS. 7A and 7B indicate how many times writing will write the image information to the grid.
  • An area surrounded by a thick line in FIG. 7 is an area corresponding to the address generated by the simplified address generation unit 142.
  • the maximum value of Y coordinate is zero for the column of.
  • the first writing by the cache unit 141 is performed on the entire region E1 of FIG. 7A.
  • the cache unit 141 reads the information of the area D1 shown in FIG. 4 and writes the information in the area E1.
  • the area of the high-speed storage unit 145 written at this time describes “1” in FIG. 7A.
  • the cache unit 141 reads the second area calculated by the simple address generation unit 142, that is, the area D2 shown in FIG. However, the area overlapping with the area D1 in the area D2, that is, (w4, 3) to (w5, 3) is not read.
  • the cache unit 141 similarly reads the photographed image from the low speed storage unit 13, writes it to the high speed storage unit 145, and writes it to the management table 144.
  • the cache unit 141 determines an area to be written as if r1 exists at the top of r8. That is, assuming that the Y coordinate of a pixel in the captured image is Dy, the Y coordinate of the high speed storage unit 145 to which the pixel is written is Ey, and the number of rows in the Y direction of the high speed storage unit 145, ie, the predetermined storage row is R Satisfy the relationship of (1).
  • Ey Dy% R (1)
  • Ey is the remainder due to R of Dy.
  • the cache unit 141 determines the area of the high-speed storage unit 145 of the write destination based on this calculation. When the process to the fourth time by the cache unit 141 is completed, the information shown in the second line is stored in the management table 144.
  • an area E34 in FIG. 7B indicates an area corresponding to the 34th calculation address which is a process immediately after shifting the area calculated by the simplified address generation unit 142 in the positive direction of the Y axis first. . That is, according to the calculation of the simplified address generation unit 142, E34 corresponds to the third to fifth lines of c1 to c5.
  • the cache unit 141 reads from the low speed storage unit 13 only the information of the pixels in the fourth to fifth lines of w1 to w3 which have not been read yet, and writes the information to the high speed storage unit 145.
  • the cache unit 141 performs the same process as described below. When the process up to the 37th process by the cache unit 141 is completed, the information shown in the third line is stored in the management table 144.
  • the process further proceeds, and pixel information of the coordinates (w1, 9) of the captured image read by the determination unit 143 is written to (c1, r1) of the high-speed storage unit 145. That is, the information written by the first reading is overwritten.
  • the distortion correction unit 146 since the distortion correction unit 146 performs raster scanning, the Y coordinate is not traced back to refer to image information. With such characteristics, it is possible to overwrite one after another without storing the information written before the high speed storage unit 145.
  • FIG. 8 is a flowchart showing an operation of accumulation processing in which the cache unit 141 accumulates the information of the photographed image in the high speed storage unit 145.
  • the operation of the cache unit 141 that enables the above-described operation example will be described using a flowchart.
  • the cache unit 141 starts operation prior to the operation of the distortion correction unit 146.
  • step S301 the simplified address generator 142 of the cache unit 141 calculates the first simplified address.
  • the determination unit 143 repeats the processing in steps S303 to S307, with all the columns included in the address area calculated in step S301 as processing targets in order.
  • the column to be processed is referred to as a P column.
  • the determination unit 143 repeats the processing in steps S304 to S306, with all the rows included in the address area calculated in step S301 as the processing targets in order.
  • the line to be processed is called Q line.
  • step S304 determination unit 143 reads the value stored in the column of column P in management table 144, and determines whether the value is less than Q or not. If it is determined that it is less than Q, the process proceeds to step S305, and if it is determined that it is greater than Q, the process proceeds to step S307.
  • step S305 information on the pixel to be processed is read from the low speed storage unit 13 and stored in the Q% R line of the P column in the high speed storage unit 145, that is, the Ey line of equation (1).
  • step S306 the value of the column of column P of the management table 144 is rewritten to Q, and the process proceeds to step S307.
  • step S307 the distortion correction unit 146 determines whether all the rows included in the address area calculated in step S301 have been processed. If it is determined that there is a row not to be processed, the distortion correction unit 146 returns the process to step S304, and if it is determined that all the rows are to be processed, the process proceeds to step S308. In step S308, the distortion correction unit 146 determines whether all the columns included in the address area calculated in step S301 have been processed. If it is determined that there is a row not to be processed, the distortion correction unit 146 returns the process to step S303 with the row as the process target, and proceeds to step S309 if it determines that all the rows are to be processed.
  • step S309 the cache unit 141 determines whether the address generation by the simplified address generation unit 142 is completed. In other words, it is determined whether the processing has been completed for the entire one shot image. If it is determined that the address generation has been completed, the operation shown in FIG. 8 is completed. If it is determined that the address generation is not completed, the process proceeds to step S310.
  • step S310 the cache unit 141 determines whether the distortion correction unit 146 has requested a captured image. If the photographed image is read into the high speed storage unit 145 one after another without waiting for the distortion correction unit 146 to read it, there is a possibility that the distortion correction unit 146 receives a request for the photographed image after overwriting with newly read photographed image information. It is from. If it is determined that the distortion correction unit 146 has requested image information, the process returns to step S301. If it is determined that the distortion correction unit 146 has not yet requested the next image information, the process remains at step S310.
  • FIG. 9 is a flowchart showing an operation of a reading process in which the cache unit 141 reads out information of a photographed image from the high speed storage unit 145 in response to a request of the distortion correction unit 146.
  • the cache unit 141 receives a read command from the distortion correction unit 146, that is, an address for reading a captured image.
  • the received address indicates the (k, l) coordinates of the photographed image.
  • the cache unit 141 identifies a row including pixels whose k coordinate of the captured image is k in the high-speed storage unit 145.
  • the cache unit 141 specifies a line including the coordinates at which the Y coordinate of the captured image is 1 in the high speed storage unit 145.
  • the specification of the row can be performed based on the above-mentioned equation (1).
  • the number of rows of the high-speed storage unit 145 is a power of 2
  • calculation can be easily performed as follows. That is, the Y coordinate value of the photographed image is expressed in binary notation, and only the digit corresponding to the number of lines of the high speed storage unit 145 is evaluated from the lower side.
  • the number of rows of the high-speed storage unit 145 is eight, that is, the second power of 2, the value of the lower three digits is evaluated.
  • the decimal number "21” is “10101” in binary notation, so the lower three digits are "101".
  • the cache unit 141 reads the pixel value of the high-speed storage unit 145 of the coordinates specified in step S322 and step S323. In the subsequent step S325, the cache unit 141 outputs the pixel value read in step S324 to the distortion correction unit 146.
  • the image processing apparatus 1 can read out faster than the low-speed storage unit 13 and the low-speed storage unit 13 in which captured images having spreads in the column direction and the row direction, that is, the X direction and the Y direction are stored.
  • a high-speed storage unit 145 for storing an area corresponding to all of the column direction of the captured image and eight rows which is a part of the row direction; and a distortion correction unit 146 which continuously reads the captured image from the high-speed storage unit 145 in the column direction.
  • a determination unit 143 which reads the photographed image from the low speed storage unit 13 and writes the read image to the high speed storage unit 145.
  • Determination unit 143 determines the row number of the captured image to be read next based on the largest row number in the row direction of the captured image stored in high-speed storage unit 145 for each processing unit column obtained by dividing the column direction into predetermined pixels. Decide. Therefore, the image processing apparatus 1 can easily determine whether or not a part of the photographed image has been read based on the size of the line number.
  • the image processing apparatus 1 further includes a management table for storing the minimum or maximum row number in the row direction stored in the high speed storage unit 145 for each processing unit column.
  • the determination unit 143 determines whether to read an image from the low speed storage unit 13 and write it to the high speed storage unit 145 by referring to the management table.
  • the determination unit 143 writes, in the management table 144, the line number of the image read from the low speed storage unit 13. Therefore, the image processing apparatus 1 can easily determine the necessity of reading the photographed image by using the management table 144.
  • the determination unit 143 determines the position in the row direction of the high-speed storage unit 145 to which the image is written based on the remainder of “8” which is a predetermined storage row of the high-speed storage unit 145 of the row number of the image. Therefore, the determination unit 143 can easily specify the storage location in the high-speed storage unit 145. Furthermore, even when the cache unit 141 receives a request from the distortion correction unit 146 and reads it from the high speed storage unit 145, the storage location can be easily specified by the same process.
  • the predetermined memory line is "8" which is a power of two. Therefore, if the line number of the captured image is expressed in binary notation, the lower 3 bits represent the line number stored in the high-speed storage unit 145 as it is. That is, by setting the predetermined storage line to a power of 2, the load of processing for specifying the line number of the storage destination can be reduced.
  • the determination unit 143 matches the position in the column direction of the high-speed storage unit 145 to which the image is written with the position in the column direction of the captured image. Therefore, the image processing apparatus 1 can easily determine the writing position to the high speed storage unit 145 and the reading position from the high speed storage unit 145.
  • the width of the processing unit column is a data reading unit from the low speed storage unit 13 to the high speed storage unit 145. Therefore, the image processing apparatus 1 can efficiently read a photographed image from the low speed storage unit 13.
  • Modification 1 It is not essential that the number of pixels that can be stored in the high speed storage unit 145 is the reading unit of the low speed storage unit 13, and the number of pixels may be an integral multiple of that. Furthermore, the number of pixels other than that may be sufficient.
  • the X direction and the Y direction described above, that is, the column direction and the row direction may be replaced with each other.
  • Modification 2 Although the resolution of the captured image is described as 1920 ⁇ 1080 in the above-described embodiment, the resolution of the captured image is not limited to this. If the resolution of the photographed image is different from that of the above-described embodiment, the size of the high-speed storage unit 145 in the X direction is changed accordingly. Specifically, the X direction is set to a size that can store information of all pixels in the X direction in the captured image. The size in the Y direction is not affected by the resolution of the captured image.
  • the width in the Y direction of the high-speed storage unit 145 that is, the predetermined storage row has a width corresponding to eight pixels of the captured image.
  • the predetermined memory line is not limited to "8".
  • the predetermined storage line only needs to have at least the maximum Y-direction width of the address area calculated by the simple address generation unit 142.
  • the distortion of the lens can be estimated by the processing accuracy of the lens and the design value, the size of the high-speed storage unit 145 can be determined in advance.
  • Modification 4 In the embodiment described above, when the information of the photographed image is read out from the high speed storage unit 145 in response to the request of the distortion correction unit 146, the value of the Y coordinate is calculated. However, when storing the information of the captured image in the high speed storage unit 145, a correspondence table of the Y coordinate value of the captured image and the Y coordinate value in the high speed storage unit 145 is created, and the information of the captured image is read from the high speed storage unit 145 You may refer to the correspondence table at the time.
  • the cache unit 141 reads the photographed image from the low-speed storage unit 13 under the condition that the distortion correction unit 146 requests the image information as described in step S310 in FIG.
  • the captured image may be read from the low speed storage unit 13 each time a predetermined time elapses. In this case, it may be determined in step S310 of FIG. 8 whether or not a predetermined time has elapsed since the previous reading from the low speed storage unit 13.
  • the configuration of the high-speed storage unit 145 shown in FIG. 5 is a concept, and it is not necessary to secure physically two-dimensionally arranged memory areas.
  • the configuration of the high-speed storage unit 145 shown in FIG. 5 may be realized by a combination of a two-dimensional array or a one-dimensional array in a program language.
  • the low speed storage unit 13 is an SD-RAM
  • the high speed storage unit 145 is a storage area secured on the FPGA.
  • the low speed storage unit 13 may be a lower speed storage area, such as a solid state drive (SSD), a flash memory, a hard disk drive or the like
  • the high speed storage unit 145 may be an SD-RAM. That is, the high-speed storage unit 145 only needs to have a faster read speed than the low-speed storage unit 13.
  • the high-speed storage unit 145 is not a storage area secured on the FPGA, at least one of the simplified address generation unit 142, the determination unit 143, and the distortion correction unit 146 is realized even when the CPU executes a program. Good.
  • this program may be read from another device via an available medium when needed using an input / output interface (not shown) of the image processing device 1.
  • the medium refers to, for example, a storage medium removable from the input / output interface or a communication medium, that is, a wired, wireless, light or other network, or a carrier wave or digital signal propagating through the network.
  • some or all of the functions implemented by the program may be implemented by a hardware circuit or an FPGA.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Processing (AREA)
  • Image Input (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Studio Devices (AREA)

Abstract

処理装置は、列方向および行方向に広がりを有する画像が格納される低速記憶部と、低速記憶部よりも高速な読み出しが可能であり、画像の列方向の全てと行方向の一部である所定記憶行に相当する領域を記憶する高速記憶部と、高速記憶部から画像を列方向に連続して読み出す読み出し部と、低速記憶部から画像を読み込み高速記憶部へ書き込む判定部とを備え、判定部は、列方向を所定の画素ごとに分割した処理単位列ごとに、高速記憶部に格納されている画像の行方向の最小または最大の行番号に基づき次に読み込む画像の行番号を決定する。

Description

処理装置
 本発明は、処理装置に関する。
 カメラのレンズは歪特性を有するため、生成された画像データは歪みを含む。またカメラの設置状況によっては拡大・縮小・回転・剪断などの効果が生じ、生成された画像データは更に実像との差異を含む。さらに記録された画像を再生する際にも、再生機器の設置状況によっては再生画像は拡大・縮小・回転・剪断などの効果を含むこととなる。このような実像との差異を補正する画像処理装置では、補正前画像と補正後画像の対応関係を算出し、補正後画像の各画素に必要な補正前画素または画素群を読み込む。画像データを格納する記憶装置は一般にアクセス速度が高速であるほど高コストな傾向がある。したがって、1フレーム分の大きな画像データを低コストに格納するためには低速な記憶装置が選択されるが、同一データを繰り返し読み出す画像補正処理などでは、アクセス速度が低速であることが処理速度低下の要因となる。
 この問題を解決する方法の1つとして、高速な記憶装置を用いるキャッシュ方式が知られている。キャッシュ方式とは、1フレーム分の大きな画像データを格納した低速の記憶装置から、1フレームのうち一部分の小さな画像データをより高速な記憶装置に読み込み、繰り返しの読み出しは高速な記憶装置から行なう方法である。特許文献1には、入力タイルQ21の入力画像データをメモリ120から読み出して記憶部110に記憶させる際、重複領域Sの入力画像データが残された記憶部110のキャッシュ領域の画像データを除いて、入力画像領域R21の画像データをメモリ120から取得して記憶部110に記憶させる構成が開示されている。
日本国特開2016-218612号公報
 特許文献1に記載されている発明では、画像データの一部分が読み込み済みであるか否かを簡便に判断できない。
 本発明の第1の態様による処理装置は、列方向および行方向に広がりを有する画像が格納される低速記憶部と、前記低速記憶部よりも高速な読み出しが可能であり、前記画像の前記列方向の全てと前記行方向の一部である所定記憶行に相当する領域を記憶する高速記憶部と、前記高速記憶部から前記画像を前記列方向に連続して読み出す読み出し部と、前記低速記憶部から前記画像を読み込み前記高速記憶部へ書き込む判定部とを備え、前記判定部は、前記列方向を所定の画素ごとに分割した処理単位列ごとに、前記高速記憶部に格納されている前記画像の前記行方向の最小または最大の行番号に基づき次に読み込む前記画像の行番号を決定する。
 本発明によれば、画像データの一部分が読み込み済みであるか否かを簡便に判断できる。
画像処理システムSの構成図 画像処理装置1の機能ブロック図 撮影画像を示す模式図 撮影画像において読み込まれる領域を示す図 高速記憶部145の構造を示す模式図 管理テーブル144の一例を示す図 画像処理装置1の動作例を説明する図。図7(a)は1~4回目に高速記憶部145に書き込まれる領域を示す図、図7(b)は34~37回目に高速記憶部145に書き込まれる領域を示す図、図7(c)は管理テーブル144に格納される値を示す図。 キャッシュ部141の蓄積処理を示すフローチャート キャッシュ部141の読出処理を示すフローチャート
―実施の形態―
 以下、図1~図9を参照して、画像処理装置の実施の形態を説明する。
(構成)
 図1は、画像処理装置1を含む画像処理システムSの構成図である。画像処理システムSは、画像処理装置1と、カメラ2と、認識装置3とを備える。カメラ2は、撮影して得られた画像(以下、「撮影画像」)を画像処理装置1に出力する。画像処理装置1は、撮影画像に歪み補正処理を施して歪みを補正した画像(以下、「歪み補正画像」)を生成して認識装置3に出力する。認識装置3は、歪み補正画像を用いて各種アプリケーションを実行する。なお画像処理装置1、カメラ2、および認識装置3は、それぞれが有線で接続されて上述した画像の情報を授受してもよいし、無線通信により画像の情報を授受してもよい。さらに画像処理装置1、カメラ2、および認識装置3は、同一の地点に設置されてもよいし、それぞれが異なる地点や異なる国に設置されてもよい。さらに画像処理装置1、カメラ2、および認識装置3における情報の授受は、通信により即時に行われてもよいし、画像の情報を持ち運びが可能な記憶装置に格納した後に記憶装置を移動させて画像の情報を読み出してもよい。
 図2は、画像処理装置1の機能構成を示す機能ブロック図である。画像処理装置1は、画像入力部11と、前処理部12と、低速記憶部13と、後処理部14と、画像出力部15とを備える。画像入力部11および画像出力部15は、入出力インタフェース回路である。前処理部12および後処理部14は、たとえばFPGA(Field-Programmable Gate Array)に構成される回路である。低速記憶部13は、たとえばSD-RAMであり、後述する高速記憶部145よりもアクセス速度、すなわち読み込み速度および書き込み速度が遅い。また低速記憶部13は、所定の読み出し情報量の単位がハードウエア特性として予め定められている。たとえば読み出し情報量の単位が64バイトの場合に、低速記憶部13に対してある3バイトの情報を要求すると、要求した3バイトを含む64バイトの情報が低速記憶部13から得られる。
 画像入力部11には、カメラ2から撮影画像が入力される。画像入力部11は入力された撮影画像を前処理部12に出力する。前処理部12は、入力された撮影画像に画素ごとの演算から成る処理、たとえば輝度調整を施し、処理後の撮影画像を低速記憶部13に格納する。後処理部14は、低速記憶部13に格納された撮影画像を読み出して、歪み補正処理を施して歪み補正画像を作成する。そして後処理部14は、作成した歪み補正画像を画像出力部15に出力する。画像出力部15は、後処理部14から出力された画像を認識装置3に出力する。
 後処理部14は、キャッシュ部141と、歪補正部146とを備える。キャッシュ部141は、歪補正部146から要求される撮影画像の情報を歪補正部146に提供する。歪補正部146は撮影画像を読み込んで歪み補正画像を生成する。歪補正部146は、キャッシュ部141に撮影画像の一部の領域ずつの情報を要求して、撮影画像の全体を複数回に分けて取得する。キャッシュ部141は歪補正部146から要求されるおおよその領域をあらかじめ算出し、歪補正部146から要求される前に低速記憶部13から撮影画像のその領域の情報を取得する。そしてキャッシュ部141は、歪補正部146から要求があると迅速に撮影画像の情報を提供する。
 キャッシュ部141は、簡易アドレス生成部142と、判定部143と、管理テーブル144と、高速記憶部145とを備える。簡易アドレス生成部142は、歪補正部146が備える、後述するアドレス生成部147と略同一のアドレス算出処理を実行する。これにより、次に歪補正部146から要求される撮影画像中の画素を全て含む領域、すなわち読み込み先アドレスを算出する。なお簡易アドレス生成部142が算出するアドレスは概算、たとえば10ピクセル単位であり計算の負荷が小さい。詳しくは後述する。
 判定部143は、簡易アドレス生成部142が出力する読み込み先アドレスが示す領域のうち、まだ高速記憶部145に格納されていない領域を判断し、その領域の画素の情報を低速記憶部13から取得して高速記憶部145に格納する。判定部143は、管理テーブル144を参照して高速記憶部145に格納されている領域を判断し、必要に応じて管理テーブル144を書き換える。判定部143の動作は後に詳述する。管理テーブル144は、FPGA上に確保される記憶領域であり、管理テーブル144には高速記憶部145に格納されている撮影画像の領域を示す情報が格納される。高速記憶部145は、FPGA上に構成された記憶領域であり、低速記憶部13よりも高速なアクセスが可能である。高速記憶部145の構成は後述する。
 歪補正部146は、アドレス生成部147と補正部148とを備える。アドレス生成部147は、補正部148が処理対象とする撮影画像の領域を示すアドレスを厳密に、たとえば1ピクセル単位で算出し、キャッシュ部141に送信する。キャッシュ部141は受信したアドレスに対応する撮影画像の情報を歪補正部146に出力する。補正部148は、キャッシュ部141から取得した情報を用いて、既知の手法により歪みおよびカラー情報の補正を行い、歪み補正画像を生成する。
(撮影画像と画像読み込みの例)
 図3は、撮影画像を示す模式図である。撮影画像は、たとえば横1920ピクセル、縦1080ピクセルの解像度を有する。換言すると撮影画像は、1920x1080個の色情報が格子状に並べられたものである。本実施の形態では、撮影画像の左下の画素を基準位置、すなわち座標(1,1)の画素とし、図示右側をX軸のプラス方向、図示上側をY軸のプラス方向とする。撮影画像は、横方向に連続した画素の情報が低速記憶部13における連続した領域に格納される。本実施の形態では、低速記憶部13の読み出し情報量の単位に相当する撮影画像の画素の情報が10ピクセルに相当する。以下では撮影画像を横方向に10ピクセル単位でw1、w2、w3・・と呼ぶ。本実施の形態では撮影画像の横幅は1920ピクセルなので、右端はw192である。
 歪補正部146は、撮影画像をX軸の1ピクセル目付近から正方向に走査して処理を行い、撮影画像の右端に到達するとY軸の正方向に処理対象をずらして、X軸の1ピクセル目付近から正方向に走査する。すなわち歪補正部146は、いわゆるラスタースキャンを行う。また歪み補正処理は、処理対象の画素の情報だけでなく、その周辺の画素の情報も利用するため、撮影画像を複数画素からなる複数のブロックに分割し、1ブロックを処理単位とする。すなわち歪補正部146は、所定のアルゴリズムにより補正部148の処理単位とするブロックのアドレス、すなわち撮影画像上の領域を算出する。
 図4は、撮影画像において読み込まれる領域を示す図である。図4では、図3とは異なり横方向は読み出し情報量の単位であるw1、w2、w3・・で表記している。すなわち図4における1つの格子に格納される情報量は、図3における10個の格子に格納される情報量に等しい。図4では、歪補正部146のアドレス生成部147が生成するアドレス領域S1~S3を破線で示し、キャッシュ部141の簡易アドレス生成部142が生成するアドレス領域D1~D4を実線で示す。
 初めにアドレス生成部147が生成するアドレス領域がS1であり、初めに簡易アドレス生成部142が生成するアドレス領域D1は前述のS1を含むように算出される。アドレス生成部147が生成するアドレス領域S1は、1ピクセル単位なので図4では10ピクセルごとの区切りを示す格子に沿っていない。その一方で簡易アドレス生成部142は10ピクセル単位でアドレス領域を算出するので、簡易アドレス生成部142が生成するアドレス領域D1は図4に示す格子に沿って存在する。2番目にアドレス生成部147が生成するアドレス領域がS2であり、2番目に簡易アドレス生成部142が生成するアドレス領域D2は前述のS2を含むように算出される。ここで、D1とD2の関係に注目すると、2つの領域は一部が重複している。
 領域を左下の座標と右上の座標で表すと、領域D1は(w1,1)~(w5,3)であり、領域D2は(w4,3)~(w8,5)である。したがって、領域D1と領域D2は(w4,3)~(w5,3)で重複する。キャッシュ部141の判定部143は、管理テーブル144を利用することで、領域D2の読み込みの際に重複する領域である(w4,3)~(w5,3)の読み込みを省略する。判定部143の動作は後述する。なお以下では、図4に示す格子のX方向のそれぞれの区画を「列」とも呼び、格子のY方向のそれぞれの区画を「行」とも呼ぶ。たとえばw1の隣の列はw2である。
(高速記憶部)
 図5は、高速記憶部145の構造を示す模式図である。高速記憶部145は、X方向に192個、Y方向に8個の広がりを有する格子状の記憶領域である。図5に示すそれぞれの格子に格納される情報量は、図4に示すそれぞれの格子に格納される情報量と等しく、図3に示す10個の格子に格納される情報量と等しい。したがって、高速記憶部145のX方向には撮影画像のX方向、すなわち横方向の情報が全て格納され、高速記憶部145のY方向には撮影画像のY方向の8行分の情報が格納される。また図5に示すそれぞれの格子に格納される情報の格納順番は、図3や図4と同様に図示左側から右側にかけて列番号が大きくなるように格納される。以下では、高速記憶部145のY方向の行数を「所定記憶行」とも呼ぶ。すなわち本実施の形態における所定記憶行は「8」である。図4に示す低速記憶部13に格納される撮影画像の情報と区別するために、高速記憶部145のX方向はc1、c2、c3、・・と呼び、Y方向はr1、r2、r3、・・と呼ぶ。なお以下では、図5に示す格子のX方向のそれぞれの区画を「列」とも呼び、格子のY方向のそれぞれの区画を「行」とも呼ぶ。たとえばc1の隣の列はc2である。
(管理テーブル)
 図6は管理テーブル144の一例を示す図である。管理テーブル144は、高速記憶部145のX方向の格子のそれぞれに対応する記憶領域が設けられる。管理テーブル144には、高速記憶部145のX方向の各格子に入力されている撮影画像のY座標の最大値が格納される。たとえば図6に示す例では、c1には撮影画像のy=120までの情報が格納されていることが示されている。ただし高速記憶部145は前述のとおり8行分の情報しか格納できないため、c1にはy=113~y=120が格納されている。なお前述のとおり、歪補正部146はY軸のプラス方向に撮影画像の情報を読み進めるため、管理テーブル144に記録される数値は処理が進むにつれて増加する。
(動作例)
 図7を参照して画像処理装置1の動作例を説明する。図7(a)は1~4回目に高速記憶部145に書き込まれる領域を示す図、図7(b)は34~37回目に高速記憶部145に書き込まれる領域を示す図、図7(c)は管理テーブル144に格納される値を示す図である。図7(a)、(b)に示す各格子の中の数字は、何回目の書き込みによりその格子に画像情報が書き込まれるかを示す。また図7における太線で囲む領域は、簡易アドレス生成部142が生成するアドレスに対応する領域である。
 図7に示す動作例が開始する前は、高速記憶部145には撮影画像の情報が格納されていないので、図7(c)の「初期」の行に示すように、c1~c128の全ての列についてY座標の最大値がゼロである。キャッシュ部141による1回目の書き込みは、図7(a)の領域E1の全域を対象に行われる。キャッシュ部141は、図4に示す領域D1の情報を読み込み、領域E1に書き込む。このとき書き込まれた高速記憶部145の領域は図7(a)において「1」を記載している。これにより管理テーブル144のc1~c5の列には撮影画像のy=3までが読み込まれるので、管理テーブル144のc1~c5の欄には「3」が記録される。
 次にキャッシュ部141は、簡易アドレス生成部142が算出する2つ目の領域、すなわち図4に示す領域D2を読み込む。ただし領域D2において領域D1と重複する領域、すなわち(w4,3)~(w5,3)は読み込まない。キャッシュ部141は、この判断を管理テーブル144を参照することで実現する。すなわちキャッシュ部141は、管理テーブル144のc4の欄に「3」が格納されていると、y=3以下の情報を低速記憶部13から読み込まない。そしてキャッシュ部141は、読み込んだ画素の情報を高速記憶部145の領域E2に書き込む。領域E2への書き込みが完了すると、高速記憶部145のc4~c8には撮影画像のy=5までが読み込まれたので、管理テーブル144のc4~c8の欄には「5」が記録される。
 以下、同様にキャッシュ部141は低速記憶部13からの撮影画像の読み込みと高速記憶部145への書き込み、および管理テーブル144への書き込みを行う。ただし高速記憶部145のY方向の記憶領域は撮影画像に比べて短いので、書き込む領域が不足する。その場合はキャッシュ部141は、あたかもr8の上部にr1が存在するかのように書き込む領域を決定する。すなわち撮影画像におけるある画素のY座標をDy、その画素が書き込まれる高速記憶部145のY座標をEy、高速記憶部145のY方向の行数、すなわち所定記憶行をRとすると、これらは式(1)の関係を満たす。
  Ey=Dy%R ・・・(1)
 すなわちEyはDyのRによる剰余である。本実施の形態ではR=8なので、たとえば撮影画像におけるY=9の画素の情報は、9%8=1なので高速記憶部145のr1の行に格納される。キャッシュ部141は、この演算に基づき書き込み先の高速記憶部145の領域を決定する。キャッシュ部141による4回目までの処理が完了すると、管理テーブル144には2行目に示す情報が格納される。
 その後、低速記憶部13からの撮影画像の読み込みおよび高速記憶部145への書き込みが右端、すなわちw128やc128まで到達すると、簡易アドレス生成部142は算出する領域をY軸の正方向にずらす。ただしこの場合も従前に読み込んだ領域と一部重複する。たとえば図7(b)の領域E34は、簡易アドレス生成部142が算出する領域を最初にY軸の正方向にずらした直後の処理である34回目に算出するアドレスに対応する領域を示している。すなわち、簡易アドレス生成部142の算出によるとE34はc1~c5の3~5行目に対応する。しかしc1~c3の列は1回目の読み込みで3行目まで読み込み済みであり、c4~c5の列は2回目の読み込みで5行目まで読み込み済みである。そのためキャッシュ部141は、まだ読み込んでいないw1~w3の4行目~5行目の画素の情報のみを低速記憶部13から読み込み、高速記憶部145に書き込む。キャッシュ部141は、以下同様に処理を行う。キャッシュ部141による37回目までの処理が完了すると、管理テーブル144には3行目に示す情報が格納される。
 なお、さらに処理が進み、判定部143が読み込んだ撮影画像の座標(w1,9)の画素情報は、高速記憶部145の(c1、r1)に書き込まれる。すなわち1回目の読み込みにより書き込まれた情報が上書きされる。前述のとおり、歪補正部146はラスタースキャンを行うので、Y座標を遡って画像情報を参照することはない。このような特性を有するので、高速記憶部145に従前に書き込まれた情報を保存することなく、次々に上書きをすることができる。
(フローチャート|蓄積処理)
 図8は、キャッシュ部141が高速記憶部145に撮影画像の情報を蓄積する蓄積処理の動作を示すフローチャートである。上述した動作例を可能とするキャッシュ部141の動作をフローチャートを用いて説明する。キャッシュ部141は、歪補正部146の動作に先立って動作を開始する。
 ステップS301では、キャッシュ部141の簡易アドレス生成部142は、最初の簡易アドレスの算出を行う。続くステップS302では、判定部143は、ステップS301において算出されたアドレス領域に含まれる全ての列を順番に処理対象としてステップS303~S307の処理を繰り返す。以下では、処理対象とする列をP列と呼ぶ。続くステップS303では、判定部143は、ステップS301において算出されたアドレス領域に含まれる全ての行を順番に処理対象としてステップS304~S306の処理を繰り返す。以下では、処理対象とする行をQ行と呼ぶ。
 続くステップS304では、判定部143は、管理テーブル144におけるP列の欄に格納された値を読み込み、その値がQ未満であるか否かを判断する。Q未満であると判断する場合はステップS305に進み、Q以上であると判断する場合はステップS307に進む。ステップS305では、処理対象の画素の情報を低速記憶部13から読み込み、高速記憶部145におけるP列のQ%R行目、すなわち式(1)のEy行目に格納する。続くステップS306では、管理テーブル144のP列の欄の値をQに書き換えてステップS307に進む。
 ステップS307では、歪補正部146はステップS301において算出されたアドレス領域に含まれる全ての行を処理対象としたか否かを判断する。歪補正部146は、処理対象としていない行が存在すると判断する場合はその行を処理対象としてステップS304に戻り、全ての行を処理対象としたと判断する場合はステップS308に進む。ステップS308では、歪補正部146はステップS301において算出されたアドレス領域に含まれる全ての列を処理対象としたか否かを判断する。歪補正部146は、処理対象としていない列が存在すると判断する場合はその列を処理対象としてステップS303に戻り、全ての列を処理対象としたと判断する場合はステップS309に進む。
 ステップS309ではキャッシュ部141は、簡易アドレス生成部142によるアドレス生成が完了したか否かを判断する。換言すると、ある1枚の撮影画像の全体について処理が完了したか否かを判断する。アドレス生成が完了したと判断する場合は図8に示す動作を完了し、アドレス生成が完了していないと判断する場合はステップS310に進む。ステップS310ではキャッシュ部141は、歪補正部146から撮影画像を要求されたか否かを判断する。歪補正部146による読み込みを待たずに次々に高速記憶部145に撮影画像を読み込むと、新たに読み込んだ撮影画像の情報で上書きした後に歪補正部146から撮影画像の要求を受ける可能性があるからである。歪補正部146が画像情報を要求したと判断する場合はステップS301に戻り、歪補正部146がまだ次の画像情報を要求していないと判断する場合はステップS310に留まる。
(フローチャート|読出処理)
 図9は、キャッシュ部141が歪補正部146の要求に応じて高速記憶部145から撮影画像の情報を読み出す読出処理の動作を示すフローチャートである。ステップS321では、キャッシュ部141は歪補正部146からの読み出し指令、すなわち撮影画像の読み込み対象のアドレスを受信する。ここでは受信したアドレスが、撮影画像の(k、l)の座標を指すとする。続くステップS322では、キャッシュ部141は、高速記憶部145において撮影画像のX座標がkの画素を含む列を特定する。列の特定は、高速記憶部145における1列に含まれる画素数を用いて算出される。たとえばk=45の場合に、本実施の形態では1列に10画素が含まれるので、45/10の商を繰り上げた値、すなわち5列目に含まれることが特定される。
 続くステップS323では、キャッシュ部141は、高速記憶部145において撮影画像のY座標が1の座標を含む行を特定する。行の特定は、前述の式(1)に基づき行うことができる。ただし本実施の形態では高速記憶部145の行数が2の累乗なので、以下のように簡便に算出することができる。すなわち撮影画像のY座標値を2進数で表記し、下位から高速記憶部145の行数に対応する桁だけ評価する。具体的には、本実施の形態では高速記憶部145の行数が8、すなわち2の3乗なので下位3桁の値を評価する。たとえば21行目の場合は、10進数の「21」を2進数で表すと「10101」なので、下位3桁は「101」である。これを10進数に変換すると、1x2^2+0x2^1+1x2^0=5なので5行目であると特定される。
 続くステップS324では、キャッシュ部141は、ステップS322およびステップS323において特定した座標の高速記憶部145の画素値を読み出す。続くステップS325では、キャッシュ部141はステップS324において読み出した画素値を歪補正部146に出力する。
 上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)画像処理装置1は、列方向および行方向、すなわちX方向およびY方向に広がりを有する撮影画像が格納される低速記憶部13と、低速記憶部13よりも高速な読み出しが可能であり、撮影画像の列方向の全てと行方向の一部である8行に相当する領域を記憶する高速記憶部145と、高速記憶部145から撮影画像を列方向に連続して読み込む歪補正部146と、低速記憶部13から撮影画像を読み込み高速記憶部145へ書き込む判定部143とを備える。判定部143は、列方向を所定の画素ごとに分割した処理単位列ごとに、高速記憶部145に格納されている撮影画像の行方向の最大の行番号に基づき次に読み込む撮影画像の行番号を決定する。そのため画像処理装置1は、行番号の大小により撮影画像の一部が読み込み済みであるか否かを簡便に判断できる。
(2)画像処理装置1は、処理単位列ごとに、高速記憶部145に格納される行方向の最小または最大の行番号を格納する管理テーブルをさらに備える。判定部143は、管理テーブルを参照することで、低速記憶部13から画像を読み込み高速記憶部145へ書き込むか否かを決定する。判定部143は、高速記憶部145へ画像を書き込む場合は、低速記憶部13から読み込んだ画像の行番号を管理テーブル144に書き込む。そのため画像処理装置1は管理テーブル144を用いて撮影画像の読み込みの要否を簡便に判断できる。
(3)判定部143は、画像を書き込む高速記憶部145の行方向の位置を、画像の行番号の高速記憶部145の所定記憶行である「8」による剰余に基づき決定する。そのため判定部143は高速記憶部145における格納場所を簡便に特定することができる。さらにキャッシュ部141が歪補正部146から要求を受けて高速記憶部145から読み出す際にも、同様な処理により簡便に格納場所を特定することができる。
(4)本実施の形態では、所定記憶行は2の累乗である「8」とした。そのため撮影画像の行番号を2進数で表記すれば、下位3ビットがそのまま高速記憶部145において格納されている行番号を表す。すなわち所定記憶行を2の累乗に設定することにより、格納先の行番号を特定する処理の負荷を軽減することができる。
(5)判定部143は、画像を書き込む高速記憶部145の列方向の位置を、撮影画像における列方向の位置と一致させる。そのため画像処理装置1は、高速記憶部145への書き込み位置、および高速記憶部145からの読み込み位置を簡便に決定できる。
(6)処理単位列の幅は、低速記憶部13から高速記憶部145へのデータ読み出し単位である。そのため画像処理装置1は低速記憶部13から効率的に撮影画像を読み込むことができる。
(変形例1)
 高速記憶部145に格納できる画素数が低速記憶部13の読み出し単位であることは必須ではなく、その整数倍の画素数でもよい。さらにそれ以外の画素数でもよい。また上述したX方向とY方向、すなわち列方向および行方向はそれぞれ入れ替えてもよい。
(変形例2)
 上述した実施の形態では、撮影画像の解像度を1920x1080として説明したが、撮影画像の解像度はこれに限定されない。撮影画像の解像度が上述した実施の形態と異なる場合には、これにあわせて高速記憶部145のX方向のサイズを変更する。具体的には、X方向は撮影画像におけるX方向の全画素の情報が格納できるサイズとする。なおY方向のサイズは、撮影画像の解像度の影響を受けない。
(変形例3)
 上述した実施の形態では、高速記憶部145のY方向の幅、すなわち所定記憶行は撮影画像の8画素に相当する幅を有していた。しかし所定記憶行は「8」に限定されない。所定記憶行は、少なくとも簡易アドレス生成部142が算出するアドレス領域の最大のY方向の幅を有すればよい。ただし上述した(4)の作用効果を得るために、簡易アドレス生成部142が算出するアドレス領域の最大のY方向の幅を超える、最小の2のべき乗のサイズであることが望ましい。具体的には、簡易アドレス生成部142が算出するアドレス領域の最大のY方向の幅が17の場合は、2^4<17<2^5なので、2^5すなわち32とすることが望ましい。
 ここで、簡易アドレス生成部142が算出するアドレス領域について補足すると、算出されるアドレス領域は、歪補正に基づくものなので、一般に中心からずれた周辺部ほど歪みが大きく、算出されるアドレス領域が大きくなる。また、レンズの歪みはレンズの加工精度や設計値により想定可能なので、事前に高速記憶部145のサイズを決定することができる。
(変形例4)
 上述した実施の形態では歪補正部146の要求に応じて高速記憶部145から撮影画像の情報を読み出す際にY座標の値を算出した。しかし高速記憶部145に撮影画像の情報を格納する際に、撮影画像のY座標値と高速記憶部145におけるY座標の値の対応表を作成し、高速記憶部145から撮影画像の情報を読み出す際にその対応表を参照してもよい。
(変形例5)
 上述した実施の形態では、キャッシュ部141は、図8のステップS310で説明したように、歪補正部146が画像情報を要求することを条件として撮影画像を低速記憶部13から読み込んだ。しかし、歪補正部146からの要求を確認することなく、一定時間の経過ごとに撮影画像を低速記憶部13から読み込んでもよい。この場合は、図8のステップS310において前回の低速記憶部13からの読み込みから所定の時間が経過したか否かを判断すればよい。
(変形例6)
 図5に示した高速記憶部145の構成は概念であり、物理的に2次元に配列されたメモリ領域を確保しなくてもよい。たとえば、プログラム言語における2次元配列や1次元配列の組み合わせにより、図5に示した高速記憶部145の構成を実現してもよい。
(変形例7)
 上述した実施の形態では、低速記憶部13はSD-RAMであり、高速記憶部145はFPGA上に確保される記憶領域であった。しかし、低速記憶部13がより低速な記憶領域、たとえばSSD(Solid State Drive)、フラッシュメモリ、ハードディスクドライブなどでもよく、高速記憶部145がSD-RAMでもよい。すなわち、低速記憶部13よりも高速記憶部145のほうが少なくとも読み出し速度が速ければよい。なお高速記憶部145がFPGA上に確保される記憶領域でない場合は、簡易アドレス生成部142、判定部143、および歪補正部146の少なくとも1つはCPUがプログラムを実行することにより実現されてもよい。
 さらにこのプログラムは、画像処理装置1が備える不図示の入出力インタフェースを用いて、必要なときに利用可能な媒体を介して、他の装置から読み込まれてもよい。ここで媒体とは、例えば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やFPGAにより実現されてもよい。
 上述した変形例は、それぞれ組み合わせてもよい。上記では、実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
 次の優先権基礎出願の開示内容は引用文としてここに組み込まれる。
 日本国特許出願2017-125597(2017年6月27日出願)
1…画像処理装置
11…画像入力部
12…前処理部
13…低速記憶部
14…後処理部
15…画像出力部
141…キャッシュ部
142…簡易アドレス生成部
143…判定部
144…管理テーブル
145…高速記憶部
146…歪補正部
147…アドレス生成部
148…補正部

Claims (6)

  1.  列方向および行方向に広がりを有する画像が格納される低速記憶部と、
     前記低速記憶部よりも高速な読み出しが可能であり、前記画像の前記列方向の全てと前記行方向の一部である所定記憶行に相当する領域を記憶する高速記憶部と、
     前記高速記憶部から前記画像を前記列方向に連続して読み出す読み出し部と、
     前記低速記憶部から前記画像を読み込み前記高速記憶部へ書き込む判定部とを備え、
     前記判定部は、前記列方向を所定の画素ごとに分割した処理単位列ごとに、前記高速記憶部に格納されている前記画像の前記行方向の最小または最大の行番号に基づき次に読み込む前記画像の行番号を決定する処理装置。
  2.  請求項1に記載の処理装置において、
     前記処理単位列ごとに、前記高速記憶部に格納される前記行方向の最小または最大の行番号を格納する管理テーブルをさらに備え、
     前記判定部は、前記管理テーブルを参照することで、前記低速記憶部から前記画像を読み込み前記高速記憶部へ書き込むか否かを決定し、
     前記判定部は、前記高速記憶部へ前記画像を書き込む場合は、前記低速記憶部から読み込んだ前記画像の行番号を前記管理テーブルに書き込む処理装置。
  3.  請求項1に記載の処理装置において、
     前記判定部は、前記画像を書き込む前記高速記憶部の前記行方向の位置を、前記画像の行番号の前記高速記憶部の前記所定記憶行による剰余に基づき決定する処理装置。
  4.  請求項3に記載の処理装置において、
     前記所定記憶行は、2の累乗である処理装置。
  5.  請求項1に記載の処理装置において、
     前記判定部は、前記画像を書き込む前記高速記憶部の前記列方向の位置を、前記画像における前記列方向の位置と対応させる処理装置。
  6.  請求項1に記載の処理装置において、
     前記処理単位列の幅は、前記低速記憶部からの前記画像の読み出し単位である処理装置。
PCT/JP2018/016504 2017-06-27 2018-04-23 処理装置 WO2019003610A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/620,095 US11195249B2 (en) 2017-06-27 2018-04-23 Processing device having a row number determining unit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017125597A JP6802762B2 (ja) 2017-06-27 2017-06-27 処理装置
JP2017-125597 2017-06-27

Publications (1)

Publication Number Publication Date
WO2019003610A1 true WO2019003610A1 (ja) 2019-01-03

Family

ID=64742024

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/016504 WO2019003610A1 (ja) 2017-06-27 2018-04-23 処理装置

Country Status (3)

Country Link
US (1) US11195249B2 (ja)
JP (1) JP6802762B2 (ja)
WO (1) WO2019003610A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101396A (ja) * 1999-09-30 2001-04-13 Toshiba Corp 画像歪み補正処理装置および方法、並びに画像歪み補正処理を行うプログラムを格納した媒体
JP2010028758A (ja) * 2008-07-24 2010-02-04 Sony Corp 画像処理装置及び方法、プログラム、並びに撮像装置
JP2011002940A (ja) * 2009-06-17 2011-01-06 Olympus Imaging Corp 画像処理装置及び撮像装置
JP2011113234A (ja) * 2009-11-26 2011-06-09 Mega Chips Corp 画像処理装置、および画像処理装置の動作方法
JP2012044530A (ja) * 2010-08-20 2012-03-01 Jvc Kenwood Corp 画像補正装置および画像補正方法
JP2013186705A (ja) * 2012-03-08 2013-09-19 Mega Chips Corp データ転送装置およびデータ転送方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5391449B2 (ja) * 2008-09-02 2014-01-15 ルネサスエレクトロニクス株式会社 記憶装置
JP6648985B2 (ja) 2015-05-18 2020-02-19 ハンファテクウィン株式会社 画像処理装置および画像処理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101396A (ja) * 1999-09-30 2001-04-13 Toshiba Corp 画像歪み補正処理装置および方法、並びに画像歪み補正処理を行うプログラムを格納した媒体
JP2010028758A (ja) * 2008-07-24 2010-02-04 Sony Corp 画像処理装置及び方法、プログラム、並びに撮像装置
JP2011002940A (ja) * 2009-06-17 2011-01-06 Olympus Imaging Corp 画像処理装置及び撮像装置
JP2011113234A (ja) * 2009-11-26 2011-06-09 Mega Chips Corp 画像処理装置、および画像処理装置の動作方法
JP2012044530A (ja) * 2010-08-20 2012-03-01 Jvc Kenwood Corp 画像補正装置および画像補正方法
JP2013186705A (ja) * 2012-03-08 2013-09-19 Mega Chips Corp データ転送装置およびデータ転送方法

Also Published As

Publication number Publication date
US20210150662A1 (en) 2021-05-20
JP6802762B2 (ja) 2020-12-16
US11195249B2 (en) 2021-12-07
JP2019008674A (ja) 2019-01-17

Similar Documents

Publication Publication Date Title
CN107945112B (zh) 一种全景图像拼接方法及装置
JP4789753B2 (ja) 画像データバッファ装置、画像転送処理システム、及び画像データバッファ方法
US10929965B2 (en) Histogram statistics circuit and multimedia processing system
JP2019160063A (ja) 画像処理装置及び画像処理方法
CN111738917A (zh) 一种图片伸缩方法、装置、设备和存储介质
JP5706754B2 (ja) データ処理装置及びデータ処理方法
JP5947143B2 (ja) 魚眼画像の補正装置及び補正方法
WO2019003610A1 (ja) 処理装置
CN111008934A (zh) 一种场景构建方法、装置、设备及存储介质
CN116107450A (zh) 红外触摸屏的触点识别方法、装置及红外触摸屏
JP4970378B2 (ja) メモリコントローラおよび画像処理装置
WO2019114044A1 (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
CN115190263A (zh) 一种视频缩放方法、装置、设备及存储介质
CN110660013B (zh) 半导体器件、图像识别***和图像处理方法
JP6440465B2 (ja) 画像処理装置、画像処理方法及びプログラム
CN112215754A (zh) 图像放大方法、装置、电子设备和存储介质
CN105225199B (zh) 一种实时等距柱面投影的方法和***
JP6563358B2 (ja) 画像処理装置及び画像処理方法
KR102655332B1 (ko) 영상 왜곡 보정 장치 및 방법
CN115952139B (zh) 一种移动设备多帧三维图像处理方法及***
JP2013126101A (ja) 撮像装置および撮像方法
CN111899151B (zh) 图片生成方法、装置、电子设备和计算机可读介质
JP2005311745A (ja) 画像処理装置
JP2017017672A (ja) 画像処理装置、画像処理方法および画像処理プログラム
CN115689888A (zh) 图像处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18823912

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18823912

Country of ref document: EP

Kind code of ref document: A1