WO2007072644A1 - 2次元フィルタ演算装置及び方法 - Google Patents
2次元フィルタ演算装置及び方法 Download PDFInfo
- Publication number
- WO2007072644A1 WO2007072644A1 PCT/JP2006/323214 JP2006323214W WO2007072644A1 WO 2007072644 A1 WO2007072644 A1 WO 2007072644A1 JP 2006323214 W JP2006323214 W JP 2006323214W WO 2007072644 A1 WO2007072644 A1 WO 2007072644A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- filter
- processing unit
- pixel
- processing
- unit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 59
- 230000015654 memory Effects 0.000 claims abstract description 78
- 238000001914 filtration Methods 0.000 claims abstract description 14
- 238000004364 calculation method Methods 0.000 claims description 51
- 230000008569 process Effects 0.000 claims description 42
- 230000001186 cumulative effect Effects 0.000 claims description 18
- 238000003672 processing method Methods 0.000 claims description 14
- 230000010354 integration Effects 0.000 claims description 2
- 101100136062 Mycobacterium tuberculosis (strain ATCC 25618 / H37Rv) PE10 gene Proteins 0.000 description 46
- 239000004065 semiconductor Substances 0.000 description 36
- 238000010586 diagram Methods 0.000 description 34
- 230000006870 function Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000003706 image smoothing Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 241000255969 Pieris brassicae Species 0.000 description 1
- 241001315609 Pittosporum crassifolium Species 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Definitions
- the present invention relates to a two-dimensional filter arithmetic device used for image compression / decompression processing, in-loop filter processing, scanning line conversion processing, or image smoothing processing.
- Video coding technology standards include ITU-T (International Telecommunication Union Telecommunication Standardization Sector) H.261, H.263, ISO (International Organization for Standardization) MPEG-1, MPEG-2. MPEG-4 etc. (MPEG is an abbreviation for Moving Picture Experts Group).
- H.264 I MPEG-4 Advanced Video Coding (AVC) is a new standard for video coding technology jointly established by ITU-T and ISO.
- a CPU which is incorporated in a video device such as a digital television, a DVD, or a mobile phone has a lower operating frequency than a CPU mounted in a personal computer.
- These video devices execute the processing algorithm directly because the above-mentioned moving image expansion processing (decoding processing) with a large amount of computation is not in time for software processing by a CPU with a low operating frequency.
- decoding processing moving image expansion processing
- the process of decoding moving image stream data includes variable-length decoding for decoding variable-length encoded stream data, inverse quantization for converting the data after variable-length decoding into frequency-domain data, and frequency
- This is executed by a procedure called inversely orthogonal transformation that converts the region data into pixel region data, a reference image force, an interpolated image corresponding to the motion vector, and the motion compensated prediction that adds the result of the inverse orthogonal transformation to that value.
- the inverse orthogonal transform and motion compensation prediction perform a common process called two-dimensional filter processing.
- this two-dimensional filter processing is a part that requires a particularly large amount of calculation in the decoding processing.
- a filtering process for performing interpolation on the reference image is performed. This filtering process is also a two-dimensional filtering process.
- the two-dimensional filter processing technique is an important technique widely used in the current moving image processing.
- FIG. 16 is a block diagram of a conventional two-dimensional filter disclosed in Patent Document 1.
- the conventional two-dimensional filter shown in FIG. 16 includes an image memory 1, a line memory 2a to a line memory 2e, a vertical filter processing unit 3, a horizontal filter processing unit 4, a shift register 5, and a shift register 6.
- the vertical filter processing unit 3 performs a 5-tap filter operation on the pixels stored in the image memory 1 in the vertical direction, and then the horizontal filter processing unit 4 performs the vertical calculation.
- the same 5-tap filter operation is executed in the horizontal direction using the pixels updated by the direction filter operation.
- pixel values of one line of pixels in the input image stored in the image memory 1 are read out to the line memory 2a.
- the pixel value of the pixel of the next one line is read to the line memory 2a, it is transferred to the pixel value force line memory 2b of the pixel first read to the line memory 2a.
- the pixel value of the pixel of the first line read out first is stored in the line memory 2e, and the pixel value of the pixel of the line read out sequentially is also stored in the line memories 2a to 2d. Will be stored.
- the rightmost pixel value from each line memory is simultaneously read to the vertical filter processing unit 3, and the vertical filter processing is executed in the vertical filter processing unit 3.
- the pixel value filtered by the vertical filter processing unit 3 is accumulated in the register 5.
- the conventional two-dimensional filter shown in FIG. 16 in order to perform the vertical filter operation, the pixel values of the pixels read in the horizontal direction are rearranged in the vertical direction. A buffer (line memories 2a to 2e) was required. Furthermore, there is a problem that the circuit area is increased because it is necessary separately from the data path for executing the path force filter operation of the control circuit for controlling the buffer. This is a problem that always arises when the data path for executing the vertical filter operation and the data node for executing the horizontal filter processing have the same data nose structure as in the prior art. In addition, the conventional two-dimensional filter shown in FIG. 16 has a problem that the order of the filter processing directions cannot be easily changed.
- Patent Document 2 discloses a technique for converting a pixel data density by using a horizontal filter and a vertical filter to generate a reduced screen.
- the technique disclosed in Patent Document 2 requires a delay circuit (corresponding to a buffer) for rearranging pixel data between the horizontal direction filter process and the vertical direction filter process.
- Patent Document 3 discloses a two-dimensional digital filter technique having a horizontal filter and a vertical filter having a simplified configuration.
- the technique disclosed in Patent Document 3 also requires a delay circuit (corresponding to a buffer) for accumulating pixel data filtered in the horizontal direction in order to perform filtering in the vertical direction.
- Patent Document 1 JP 2002-304624
- Patent Document 2 US Pat. No. 5,289,292
- Patent Document 3 US Patent No. 5410362
- An object of the present invention is to provide a two-dimensional filter arithmetic device that can be changed. Means for solving the problem
- a two-dimensional filter arithmetic device executes a first filter operation on a storage unit storing filtered image data and the filtered image data stored in the storage unit A first filter processing unit, and a second filter processing unit that executes a second filter operation on the image data filtered by the first filter processing unit, the first filter processing unit and the second filter
- the processing unit executes different filter operations in the vertical direction filter operation and the horizontal direction filter operation, and the vertical direction filter operation and the horizontal direction filter operation are executed by different parallel processes.
- the order of the filter processing direction can be arbitrarily set, and a buffer for absorbing the difference in the filter processing direction is not required.
- a two-dimensional filter arithmetic device can be provided. This two-dimensional filter arithmetic unit can reduce the circuit area by the amount that does not require a buffer.
- the parallel processing includes sequential operation processing executed in parallel and parallel operation processing executed in parallel with respect to the filtered image data.
- the two-dimensional filter calculation of the image data to be filtered can execute any one of the sequential calculation process and the parallel calculation process depending on the filter processing direction. Furthermore, according to this configuration, a buffer for absorbing differences in arithmetic processing is unnecessary, and a two-dimensional filter arithmetic device with a correspondingly reduced circuit area can be provided.
- the first filter processing unit has a plurality of first filter modules
- the second filter processing unit has at least one second filter module.
- the plurality of first filter modules execute a first filter operation on the image data to be filtered
- the first filter processing unit outputs a plurality of first filter results
- at least one first filter module is output.
- the two-filter module inputs at least a part of the plurality of first filter results and executes a second filter operation
- the second filter processing unit outputs at least one second filter result.
- a plurality of horizontal direction filter processes are performed on the pixel values of a plurality of pixels to obtain a plurality of filtered pixel values.
- at least one vertical filtering process can be continuously performed on the plurality of pixel values to generate a plurality of pixel values subjected to two-dimensional filtering.
- the first filter processing unit executes the first filter operation in parallel using a plurality of first filter modules
- the second filter processing unit In the case of having a plurality of second filter modules, the second filter processing unit executes the second filter operation in parallel using the plurality of second filter modules.
- the plurality of first filter modules are Each is a selection of a plurality of cumulative addition units in which the first stage cumulative addition unit and at least one subsequent stage cumulative addition unit are cascade-connected, and the outputs of the plurality of cumulative addition units are sequentially selected and output.
- a predetermined filter coefficient is sequentially input to the first stage cumulative addition section every processing time, and at least one subsequent stage cumulative addition section is connected to each of the previous stage cumulative addition sections.
- Predetermined filter coefficients are sequentially transferred every processing time, and the pixel values of pixels arranged in the vertical or horizontal direction of the filtered image data are sequentially transferred from the storage unit every processing time to each of the plurality of cumulative addition units.
- Each of the plurality of cumulative addition units that are input performs a product-sum operation on the pixel value and a predetermined filter coefficient for each processing time, and outputs a plurality of first filter results.
- the first filter that shift-inputs the filter coefficient, inputs the pixel value in parallel, and performs the product-sum operation of the pixel value and the filter coefficient with high efficiency by in-loop pipeline processing.
- a module can be realized.
- At least one second filter module has a plurality of addition units and a plurality of integration units, and among the plurality of first filter results.
- a product-sum operation is performed on at least a part of and a plurality of predetermined filter coefficients, and at least one second filter result is output.
- the second filter module that inputs the operation result output from the first filter module and performs the product-sum operation of the operation result and the filter coefficient with high efficiency by parallel processing in the loop. Can be realized. As a result, the two-dimensional filter operation can be completed.
- the plurality of first filter modules include the first filter according to one of the in-loop pipeline processing method and the in-loop parallel processing method.
- the at least one second filter module executes an operation, and the second filter module is in accordance with the processing method according to which one of the plurality of first filter modules is selected from the in-loop pipeline processing method and the in-loop parallel processing method.
- the filter operation is executed.
- the in-loop pipeline processing (or in-loop parallel processing), the first filter processing unit that performs the first filter processing, and the in-loop parallel processing (or in-loop pipeline processing) ), And a second filter processing unit that performs the second filter processing.
- a two-dimensional filter arithmetic device can be realized.
- a line memory that obtains pixel values of pixels for one line from the storage unit, temporarily stores them, and outputs them to the first filter processing unit is provided. In addition, prepare.
- a two-dimensional filter arithmetic device is a storage unit that stores filtered image data, a vertical filter processing unit that executes vertical filter operation, and a horizontal filter that executes horizontal filter operation A processing unit, a first selection unit that selects one of the output of the storage unit and the output of the horizontal filter processing unit and outputs the selected one to the vertical filter processing unit, and the output of the storage unit and the output of the vertical filter processing unit Select one of the two, select the second selection unit to output to the horizontal filter processing unit, the output of the vertical filter processing unit and the output of the horizontal filter processing unit, two-dimensional filter operation And a third selector for outputting as a result.
- the vertical filter operation and the horizontal filter operation are executed by different parallel processes.
- the first selection unit selects the output of the storage unit
- the second selection unit selects the output of the vertical filter processing unit
- the third selection unit selects the horizontal filter processing. After selecting the output of the processing unit and performing the vertical filter operation on the filtered image data stored in the storage unit, the horizontal filter operation is performed.
- the first selection unit selects the output of the horizontal filter processing unit
- the second selection unit selects the output of the storage unit
- the third selection unit performs vertical filter processing.
- the vertical filter operation is executed after the horizontal filter operation is executed on the filtered image data stored in the storage unit.
- different parallel processing includes sequential arithmetic processing executed in parallel and parallel arithmetic processing executed in parallel for the filtered image data. Including.
- the two-dimensional filter operation of the image data to be filtered Depending on the direction, one of the sequential processing and the parallel processing can be executed. Furthermore, according to this configuration, a buffer for absorbing differences in arithmetic processing is unnecessary, and a two-dimensional filter arithmetic device with a correspondingly reduced circuit area can be provided.
- the selection of the first operation mode and the second operation mode is performed in accordance with the moving image code key standard to which the filtered image data conforms.
- FIG. 1 is a layout diagram of integer pixels and 1Z2 pixels in Embodiment 1 of the present invention.
- FIG. 2 is a layout diagram of 1Z2 pixels in the first embodiment of the present invention.
- FIG. 3 is another layout diagram of 1Z2 pixels in the first embodiment of the present invention.
- FIG. 4 is a block diagram of a two-dimensional filter arithmetic device in Embodiment 1 of the present invention.
- FIG. 5 is a flowchart of a two-dimensional filter calculation method in Embodiment 1 of the present invention.
- FIG. 6 is a block diagram of a vertical filter processing unit in Embodiment 1 of the present invention.
- FIG. 7 is a block diagram of a processor element in the first embodiment of the present invention.
- FIG. 8 is a timing chart of the two-dimensional filter arithmetic device according to the first embodiment of the present invention.
- FIG. 9 is a block diagram of a horizontal filter processing unit in the first embodiment of the present invention.
- FIG. 10 is a block diagram of a two-dimensional filter arithmetic device in Embodiment 2 of the present invention.
- FIG. 11 is a layout diagram of integer pixels and 1Z2 pixels in the second embodiment of the present invention.
- FIG. 12 is a timing diagram of the two-dimensional filter arithmetic device (second operation mode) according to the second embodiment of the present invention.
- FIG. 13 is a block diagram of a semiconductor integrated circuit according to a third embodiment of the present invention.
- FIG. 14 is a block diagram of a semiconductor integrated circuit according to a fourth embodiment of the present invention.
- FIG. 15 is a block diagram of an electronic device in a fifth embodiment of the present invention.
- FIG. 16 is a block diagram of a conventional two-dimensional filter.
- the first embodiment of the present invention deals with, for example, two-dimensional filter processing in motion compensation prediction calculation conforming to H.264 I MPEG-4 AVC.
- an image region composed of (4 X 4) integer pixel precision pixels is translated in accordance with the motion vector (1Z2, 1/2) to obtain a new image.
- the area is obtained, and the pixel value of the 1Z2 pixel precision pixel contained in it is obtained.
- the pixel value of the 1Z2 pixel accuracy pixel included in the new image area is calculated by performing a 6-tap two-dimensional filter operation on the pixel value of the integer pixel accuracy pixel.
- a pixel with integer pixel accuracy is abbreviated as “integer pixel”
- a pixel with 1Z2 pixel accuracy is abbreviated as “1Z2 pixel”.
- FIG. 1 is a layout diagram of integer pixels and 1Z2 pixels in Embodiment 1 of the present invention.
- integer pixels indicated by large white circles are arranged in the order of integer pixels FOO, F01, FO 2 ... 'F08 in the horizontal direction, and in the order of integer pixels FOO, F10, F20- ⁇ ' F80 in the vertical direction. Are lined up.
- the image area A ((4 X 4) integer pixels) indicated by the solid rectangle in FIG. 1 is indicated by the broken rectangle according to the motion vector (1Z2, 1/2). It is assumed that it moves parallel to B.
- the pixels that define image area B are (4 X 4) 1Z2 pixels indicated by small black circles.
- the 1Z2 pixels indicated by these black circles are located exactly on the diagonal of the integer pixels. Therefore, in order to interpolate the pixel value of the 1Z2 pixel indicated by the black circle by the horizontal filter, the pixel value of the 1Z2 pixel indicated by the small white circle is necessary.
- FIG. 2 is a layout diagram of the 1Z2 pixel in Embodiment 1 of the present invention.
- Figure 2 shows a small white circle of 1Z2 pixels (1Z2 pixels H20 to H58) and the space between them to make the code easier to see. The arrangement of integer pixels is shown in FIG.
- FIG. 3 is another layout diagram of 1Z2 pixels in the first embodiment of the present invention.
- Figure 3 shows a small black circle 1Z2 pixels Ha, Hb, Hc, Hd, He, Hf, Hg, Hh, Hi, Hj, Hk, Hm, Hn, Hp to make the code easy to see.
- Hq, Hr (hereinafter abbreviated as 1,2 pixels Ha to Hr)! /
- the integer values FOO, F10, F20-... F80 in FIG. 1 are used to interpolate the pixel values of 1Z2 pixels H20, H30, H40, and H50 in FIG.
- the expression for the filter operation is
- Equation 1 the left side “Y” is the pixel value of the pixel to be interpolated, and the variable “ ⁇ to ⁇ 5” on the right side is the top and bottom (for vertical filter operation) or left and right (horizontal direction) of the pixel to be interpolated.
- Equation 1 each coefficient on the right side of Equation 1 is a
- Formula 1 is expressed as Formula 2.
- the pixel value “1” of 1Z2 pixel ⁇ ⁇ 20 is calculated using Equation 2
- variable “X5” is generated by substituting the pixel value of the integer pixel F50.
- 1Z2 pixels H30, H40, and H50 pixel values can be generated.
- the pixel value “Y” of the 1Z2 pixel Ha is expressed as
- 1Z2 pixels Hb, Hc, and Hd pixel values can be generated.
- the pixel values of 1Z2 pixels Ha to Hr shown in FIG. 3 are generated.
- FIG. 4 is a block diagram of the two-dimensional filter arithmetic device according to Embodiment 1 of the present invention.
- the two-dimensional filter arithmetic device of this embodiment shown in FIG. 4 includes an image memory 300, a line memory 400, a vertical filter processing unit 100, a nother 500, and a horizontal filter processing unit 200. Drooping
- the direct filter processing unit 100 corresponds to a first filter processing unit
- the horizontal filter processing unit 200 corresponds to a second filter processing unit.
- the two-dimensional filter calculation device of the present embodiment first performs vertical filter calculation and then performs horizontal filter calculation. Of course, this order may be reversed.
- FIG. 5 is a flowchart of the two-dimensional filter calculation method according to Embodiment 1 of the present invention. The outline of the operation of the two-dimensional filter arithmetic apparatus of the present embodiment shown in FIG. 4 will be described below with reference to FIG.
- image data (pixel values of integer pixels) is read from the image memory 300 to the line memory 400 in step S1.
- step S2 the vertical filter processing unit 100 reads the pixel value of the integer pixel from the line memory 400 and performs the vertical filter operation to obtain the pixel value of the 1Z2 pixel.
- Pixel values of the pixels “ ⁇ 28 to ⁇ 58” are generated.
- step S3 the horizontal filter processing section 200 is generated in step S2.
- 1Z2 pixels ⁇ 20 to ⁇ 58 pixel values are subjected to horizontal filter operation to generate 1 ⁇ 2 pixels Ha to Hr pixel values.
- step S4 the horizontal filter processing unit 200 stores the generated pixel values of the 1Z2 pixels Ha to Hr in the image memory 300 as pixel data of 1Z2 pixels constituting the image area B, and the process proceeds to step S5. Move to end the process.
- step S1 to step S4 in Fig. 5 In the processing from step S1 to step S4 in Fig. 5 described above, certain portions overlap each other and are executed in parallel.
- the operation of the two-dimensional filter arithmetic apparatus shown in FIG. 4 will be described in more detail.
- the image memory 300 stores pixel values of integer pixels as image data.
- the line memory 400 takes in the pixel values of integer pixels for one line in the horizontal direction from the image memory 300.
- the line memory 400 is included in the pixel values for this one line, as shown in Figure 1.
- the pixel values of the integer pixels F00 to F08 are sequentially sent to the vertical filter processing unit 100.
- the line memory 400 finishes sending the pixel values of the integer pixels F00 to F08, it takes in the pixel values of the integer pixels for the next horizontal line.
- the line memory 400 causes the vertical filter processing unit 100 to store the pixels of the integer pixel rows “F00 to F08”, “F10 to F18” “” “F80 to F88” shown in FIG. Pixel values are sent sequentially.
- the vertical filter processing unit 100 executes vertical filter operations in parallel on the integer pixel columns “F00 to F80”, “F01 to F81”... “F08 to F88”.
- the pixel values of the pixels in the 1Z2 pixel row “H20 to H28” shown in FIG. 2 are first generated in parallel and output to the buffer 500.
- the pixel values of the 12 pixel rows “1130 to 1138”, 1Z2 pixel rows “H40 to H48”, and finally the 1Z2 pixel rows “H50 to H58” are generated in parallel. Output to 500.
- the horizontal filter processing unit 200 takes in the pixel values of the pixels in the 1Z2 pixel row “H20 to H28” from the buffer 500, and generates the pixel values of 1Z2 pixels Ha, Hb, Hc, and Hd through horizontal filter calculation. To do. Next, the horizontal filter processing unit 200 takes in the pixel values of the pixels in the 1Z2 pixel row “H30 to H38”, generates the pixel values of 1Z2 pixels He, Hf, Hg, and Hh, and generates the 1/2 pixel row “H40 to H40”.
- H48 pixel value is taken in, 1Z2 pixel Hi, Hj, Hk, Hm pixel values are generated, and finally the pixel value of 1Z2 pixel row“ H50 to H58 ”is taken in, 1 Z2 pixel Hn , Hp, Hq, and Hr pixel values are generated.
- the horizontal filter processing unit 200 sequentially outputs the generated pixel values of the 1Z2 pixels Ha to Hr to the image memory 300.
- FIG. 6 is a block diagram of vertical filter processing section 100 in Embodiment 1 of the present invention.
- the same components as those in FIG. 4 are denoted by the same reference numerals, and description thereof is omitted.
- the vertical filter processing unit 100 of the present embodiment shown in FIG. 6 includes nine first filter modules (# 0) 110 to (# 8) 190 installed in parallel.
- the first filter module (# 0) 110 performs a vertical filter operation on the integer pixel column “F00 to F80” in FIG. 1, and the first filter module (# 1) 120 includes an integer pixel column The vertical filter operation is performed on “F 01 to F81”.
- the first filter module (# 8) 190 performs the vertical filter operation on the integer pixel string “F08 to F88”.
- the nine first filter modules (# 0) 110 to (# 8) 190 shown in FIG. 6 all have the same structure, and the first filter module (# 0) 110 will be described below. As an example, the structure is explained.
- the first filter module (# 0) 110 includes cascade-connected processor elements PE10, PE20, PE30, and PE40, and a selector 50 that selects the outputs of these processor elements.
- the selector 50 corresponds to a selection unit.
- pixel values are input from the line memory 400 to one input terminal in accordance with the clock.
- the filter coefficient is input from the coefficient input terminal 91 to the other input terminal of the first-stage processor element PE10.
- the filter coefficients input to PE10 are transferred to the processor element at the subsequent stage, together with the clock.
- PE10 to PE40 perform a product-sum operation on the input pixel value and the filter coefficient in synchronization with the clock, and output each result to the selector 50.
- the selector 50 sequentially selects the outputs of PE10 to PE40 and outputs them to the nother 500. Details of the product-sum operation described above will be described later with reference to the timing chart.
- FIG. 7 is a block diagram of processor element PE10 according to Embodiment 1 of the present invention.
- PE20 to PE40 also have the same configuration as the block diagram of PE10 shown in FIG. PE10 to PE40 correspond to a cumulative addition unit.
- the PE 10 of the present embodiment includes a multiplier 11, an adder 12, a flip-flop 13, and a flip-flop 14.
- a filter coefficient is input to the coefficient input terminal 15 (from the coefficient input terminal 91 in PE10), and the filter coefficient is passed from the coefficient output terminal 16 to the subsequent processor element via the flip-flop 13 at the next clock.
- the pixel value is input from the line memory 400 to the pixel data input terminal 17, and the filter coefficient input from the coefficient input terminal 15 is input to the multiplier 11. Is required.
- the operation result of the multiplier 11 is added to the product-sum value already calculated and accumulated in the flip-flop 14 in the adder 12, and the product-sum value of the flip-flop 14 is updated.
- the final product-sum value that is, the pixel value of the 1Z2 pixel value obtained by performing the product-sum operation on the six pixel values and the six filter coefficients is output to the selector 50.
- FIG. 8 is a timing diagram of the two-dimensional filter arithmetic device in the first embodiment of the present invention.
- the horizontal axis represents the number of clock (elk) cycles
- the vertical axis represents the pixel value and filter coefficient input to the vertical filter processing unit 100 shown in FIG. 9, the pixel value input to the horizontal filter processing unit 200 shown in FIG. 9 described later, and the pixel value output from the horizontal filter processing unit 200.
- the pixel value “XO” is input from the line memory 400 to the pixel data input terminal inO of PE10, the filter coefficient “a” is input from the coefficient input terminal 91 to the coefficient input terminal inA of PE10, and PE10
- the following operations are performed in FIG. That is, multiplication “a * XO” is executed in multiplier 11, and multiplication result “a * XO” is added to the product-sum result accumulated in flip-flop 14 in adder 12. Update the sum of products result. In this case, since the product-sum result has not yet been accumulated in the flip-flop 14, the multiplication result “a * XO” itself is held in the force flip-flop 14.
- the filter coefficient “a” is held in the flip-flop 13 for transfer to the PE 20 at the subsequent stage.
- the vertical filter processing unit 100 in FIG. 6 executes the processing power at the above-described clock 0 simultaneously in the first filter modules (# 0) 110 to (# 8) 190. It is that. That is, the line memory 400 in FIG. 6 sends the pixel values in parallel to the PE10 to PE40 of the first filter modules (# 1) 120 to (# 8) 190 by connection not shown. It is done. Therefore, the pixel values “X0 to X8” in FIG. 8 represent the pixel values of the integer pixels F00 to F80 in FIG. 1 in the first filter module (# 0) 110, and the first filter module (# 1) 120 The same represents the pixel values of the integer pixels F01 to F81.
- the first filter module (# 8) 190 represents the pixel values of the integer pixels F08 to F88.
- the first filter module (# 0) 110 has PE10
- the multiplication result “a * pixel value of integer pixel F00” is held, and in the first filter module (# 1) 120, the multiplication result “a * pixel value of integer pixel F01” is held in PE10, and so on.
- the multiplication result “a * pixel value of integer pixel F08” is held in PE10.
- the pixel value “XI” is input from the line memory 400 to the pixel data input terminal inO of the PE10 from the line memory 400, and the filter is input from the coefficient input terminal 91 to the coefficient input terminal inA of PE10.
- the coefficient “b” is input, and the following calculation is executed in PE10. That is, the multiplier “b * XI” is executed in the multiplier 11, and then the product-sum result “a * X0” accumulated in the flip-flop 14! / Is added to the adder 12! To the multiplication result “b * XI” (the second term on the right side of Equation 1), and the product-sum result of the flip-flop 14 is updated to “a * X0 + b * Xl”. Also, the filter coefficient “b” is held in the flip-flop 13.
- the pixel value “XI” is input from the line memory 400 to the pixel data input terminal inl of the PE20 from the line memory 400, and filtered from the flip-flop 13 of the PE10 to the coefficient input terminal i nB of the PE20.
- the coefficient “a” is input, and the following calculation is executed in PE20. That is, multiplication “a * XI” is executed in multiplier 11, and then, in adder 12, multiplication result “a * XI” is added to the product-sum result accumulated in flip-flop 14. The product-sum result of flip-flop 14 is updated.
- the multiplication result “a * XI” itself is held in the power flip-flop 14.
- the filter coefficient “a” is held in the flip-flop 13 for transfer to the PE 30 at the subsequent stage.
- the above-described processing is simultaneously executed in the first filter modules (# 0) 110 to (# 8) 190. That is, the pixel value “XI” in FIG. 8 represents the pixel value of the integer pixel F10 in FIG. 1 in the first filter module (# 0) 110, and the integer pixel F11 in the first filter module (# 1) 120. In the same manner, in the first filter module (# 8) 190, the image of the integer pixel F18 is represented. Represents an elementary value.
- pixel value “X2” is input from line memory 400 to pixel data input terminal inO of PE10, and filter coefficient “c” is input from coefficient input terminal 91 to coefficient input terminal inA of PE10.
- the following operations are executed in PE10. That is, the multiplication “c * X2” is executed in the multiplier 11, and then the multiplication result “a * XO + b * Xl” accumulated in the flip-flop 14 is added to the multiplication result “ c * X2 ”(the third term on the right side of Equation 1) is added, and the product-sum result of flip-flop 14 is updated to“ a * XO + b * XI + c * X2 ”.
- the filter coefficient “c” is held in the flip-flop 13.
- the pixel value “X2” is input from the line memory 400 to the pixel data input terminal inl of PE20, and the filter coefficient “b” is input from the flip-flop 13 of PE10 to the coefficient input terminal inB of PE20.
- the following operations are executed in PE20.
- multiplication “b * X2” is executed in multiplier 11, and then, in adder 12, the multiplication result “a * XI” is accumulated in flip-flop 14 and the multiplication result “ b * X2J is added, and the product-sum result of the flip-flop 14 is updated to “a * XI + b * X2J.
- the filter coefficient“ b ” is held in the flip-flop 13 for transfer to the subsequent stage.
- the pixel value “X2” is input from the line memory 400 to the pixel data input terminal in2 of the PE30, and the filter coefficient “a” is input from the PE20 to the coefficient input terminal inC of the PE30.
- the following operations are executed in PE30. That is, multiplication “a * X2” is executed in the multiplier 11, and then, in the adder 12, the multiplication result “a * X2” is added to the product-sum result accumulated in the flip-flop 14, and the flip-flop Update the sum of products result of step 14. In this case, since the product-sum result has not yet been accumulated in the flip-flop 14, the multiplication result “a * X2” itself is held in the force flip-flop 14. The filter coefficient “a” is held in flip-flop 13 for transfer to PE40 at the subsequent stage.
- the above-described processing is simultaneously executed in the first filter modules (# 0) 110 to (# 8) 190. That is, the pixel value “X2” in FIG. 8 represents the pixel value of the integer pixel F20 in FIG. 1 in the first filter module (# 0) 110, and the integer pixel F21 in the first filter module (# 1) 120. Pixels In the same manner, the first filter module (# 8) 190 represents the pixel value of the integer pixel F28.
- pixel value “X3” is input from line memory 400 to pixel data input terminal inO of PE10, and filter coefficient “d” is input from coefficient input terminal 91 to coefficient input terminal inA of PE10.
- the following operations are executed in PE10. That is, the multiplication “d * X3” is executed in the multiplier 11, and then, the product sum “a * XO + b * XI + c *” accumulated in the flip-flop 14 in the adder 12! Add the multiplication result “d * X3” (4th term on the right side of Equation 1) to “X2” and update the product-sum result of flip-flop 14 to “a * XO + b * Xl + c * X2 + d * X3” .
- the filter coefficient “d” is held in the flip-flop 13.
- the pixel value “X3” is input from the line memory 400 to the pixel data input terminal inl of PE20, and the filter coefficient “c” is input from PE10 to the coefficient input terminal inB of PE20.
- the following operations are performed: That is, the multiplier “c * X3” is executed in the multiplier 11, and then, in the adder 12, the product is accumulated in the flip-flop 14 and multiplied by the product sum result “a * XI + b * X2J”. The result “c * X3J” is added, and the product-sum result of flip-flop 14 is updated to “a * XI + b * X2 + c * X3”. The filter coefficient “c” is held in the flip-flop 13 for transfer to the subsequent stage.
- the pixel value “X3” is input from the line memory 400 to the pixel data input terminal in2 of PE30, and the filter coefficient “b” is input from the PE20 to the coefficient input terminal inC of PE30.
- the following operations are executed in PE30. That is, the multiplication “b * X3” is executed in the multiplier 11, and the multiplication result “b * X2J is added to the product-sum result“ a * X2J ”accumulated in the flip-flop 14! Add X3J, and update the product-sum result of flip-flop 14 by “a * X2 + b * X3”.
- the filter coefficient “b” is held in the flip-flop 13 for transfer to the subsequent stage.
- pixel value "X3" is input from line memory 400 to pixel data input terminal in3 of PE40, and filter coefficient "a” is input from PE30 to coefficient input terminal inD of PE40.
- the following operations are executed in PE30. That is, the multiplication “a * X3” is executed in the multiplier 11, and then the flip-flop is added in the adder 12.
- the multiplication result “a * X3” is added to the product-sum result accumulated in step 14, and the product-sum result in flip-flop 14 is updated. In this case, since the product-sum result has not yet been accumulated in the flip-flop 14, the multiplication result “a * X2” itself is held in the power flip-flop 14.
- the above-described processing is simultaneously executed in the first filter modules (# 0) 110 to (# 8) 190. That is, the pixel value “X3” in FIG. 8 represents the pixel value of the integer pixel F30 in FIG. 1 in the first filter module (# 0) 110, and the integer pixel F31 in the first filter module (# 1) 120. In the same manner, the first filter module (# 8) 190 represents the pixel value of the integer pixel F38.
- PE10 holds the product-sum result "a * X0 + b * Xl + c * X2 + d * X3 + e * X4"
- PE20 holds the product-sum result "a * XI + b * X2 + c *” X3 + d * X4 "is held, and the product-sum result" a * X2 + b * X3 + c * X4 "is held in PE30,
- the PE40 holds the product-sum result “a * X3 + b * X4”.
- PE10 holds the product-sum result ⁇ a * X0 + b * Xl + c * X2 + d * X3 + e * X4 + f * X5 ''
- PE20 holds the product-sum result "a * Xl + b * X2 + c * X3 + d * X4 + e * X5"
- PE30 holds the product-sum result "a * X2 + b * X3 + c * X4 + d * X5 ”is held, and the product-sum result“ a * X3 + b * X4 + c * X5 ”is held in PE40.
- PE10 ends the calculation of the sixth term on the right side of Equation 1.
- the selector 50 selects the output of PE 10 and sends the pixel value “Y 0” to the buffer 500 as the filter output of the vertical filter processing unit 100.
- the pixel value “ ⁇ 0” in FIG. 8 represents the pixel value of 1Z2 pixel ⁇ 20 in FIG. 2 in the first filter module (# 0) 110, and in the first filter module (# 1) 120, Represents the pixel value of 1/2 pixel H21. Similarly, in the first filter module (# 8) 190, 1 Z2 pixel Indicates the pixel value of H28.
- FIG. 9 is a block diagram of the horizontal filter processing unit in the first embodiment of the present invention.
- FIG. 9 the same components as those in FIG. 4 are denoted by the same reference numerals, and the description thereof is omitted.
- the horizontal filter processing section 200 of the present embodiment shown in FIG. 9 includes a selector 250, a second filter module (#A) 210, (#B) 220, (#C) 230, (#D) 240, And flip-flops 260-280.
- Second filter modules (# 8) 210 to (# 0) 240 have the same structure. The structure of the second filter module (#A) 210 will be described below.
- the second finale module (#A) 210 includes a calorie calculator 211, 212, 213, 217, 218, a multiplier 214, 215, 216, and a flip-flop 219.
- the filter module (#A) 210 performs the horizontal filter operation shown in Equation 3.
- the selector 250 selects the pixel value of the vertical filter operation result output to the buffer 500, sends the pixel values “XO” and “X5” to the adder 211, and adds the adder 212 In this case, the pixel values “XI” and “X4” are sent, and the calorie calculator 213 is sent the pixel values “X2” and “X3”.
- the filter coefficient “1” is held in the flip-flop 260, and the multiplier 214 multiplies the output “1” of the flip-flop 260 by the output “XO + X5” of the adder 211. result"
- the filter coefficient “ ⁇ 5” is held in the flip-flop 270, and the multiplier 215 multiplies the output “ ⁇ 5” of the flip-flop 270 and the output “XI + X4” of the adder 212.
- the multiplication result “( ⁇ 5) * (1 + 4)” is sent to the adder 217.
- the filter coefficient “20” is held in the flip-flop 280, and the multiplier 216 multiplies the output “20” of the flip-flop 280 by the output “X2 + X3” of the adder 213. result"
- the adder 217 includes the output “XO + X5” of the multiplier 214 and the output “(—5) * (XI
- the Karo arithmetic unit 218 calculates the sum of the output “(XO + X5) —5 * (XI + X4)” of the adder 217 and the output “20 * (X2 + X3)” of the multiplier 216. Result “(XO + X5) — 5 * (Xl + X4) + 20 *
- the flip-flop 219 outputs the horizontal filter calculation result “ ⁇ ”.
- the second filter module (# ⁇ ) 220, the second filter module (#C) 230, and the second filter module (#D) 240 are also included in the second filter module described above. (# ⁇ )
- the same operation as 210 is executed in parallel at the same time.
- the operation of the horizontal filter processing unit 200 will be described according to the timing chart of the two-dimensional filter arithmetic device of the present embodiment shown in FIG.
- the pixel values of the pixels “20 to 28” are sent from the vertical filter processing unit 100 to the buffer 500.
- the selector 250 displays the 1Z2 pixel row “ ⁇ ” stored in the buffer 500.
- the pixel values of 1Z2 pixels H23 to H28 are selected as the pixel values X0 to X5 and sent to the second filter module (#D) 240.
- the second filter module (#A) 210 performs a product-sum operation on the input pixel value and the filter coefficient to obtain a pixel value Z0, and sends it 219 flip-flops.
- the second filter module (#A) 210 outputs the pixel value “Z0” as a pixel value of 1/2 pixel Ha.
- the second filter module (#B) 220 sets the pixel value “Z0” to 1
- the second filter module (#C) 230 outputs the pixel value “Z”.
- the second filter module (#D) 240 outputs the pixel value “Z0” as the pixel value of the 1Z2 pixel Hd.
- the horizontal filter output “Z0” is obtained, and from the second filter module (# 8) 210 to (# 0) 240, 1Z2 pixels Ha, Hb, Hc, Hd pixels Each value is output in parallel. Further, at clock 8, the selector 250 selects the pixel value of each pixel in the 1Z2 pixel row “H30 to H38” stored in the buffer 500, and the second filter module (#A) 210 to ( # D) Send to 240.
- the second filter module (# 8) 210 to (# 0) 240 the horizontal filter output "Z1" is obtained, and the pixel values of 1Z2 pixels He, Hf, Hg, and Hh are parallel, respectively. Is output.
- the selector 250 selects the pixel value of each pixel of the 1/2 pixel row “H40 to H48” stored in the buffer 500, and the second filter module (#A) 210 ⁇ (# D) Send to 240.
- the horizontal filter output "Z2" is obtained from the second filter module (# 8) 210 to (# 0) 240, and the pixel values of 1Z2 pixels Hi, Hj, Hk, and Hm are obtained. Each is output in parallel.
- the selector 250 selects the pixel value of each pixel of the 1Z2 pixel row “H50 to H58” stored in the buffer 500, and the second filter module (#A) 21 0 to (# D) Send to 240.
- the horizontal filter output "Z3" is obtained from the second filter module (# 8) 210 to (# 0) 240, and the pixel values of 1Z2 pixels Hn, Hp, Hq, Hr are Each is output in parallel.
- the vertical filter processing unit 100 and the horizontal filter processing unit 200 employ different parallel processing methods, and the timing diagram shown in FIG. 2D filter operation according to As a result, the two-dimensional filter arithmetic device of this embodiment can obtain 1Z2 pixels Ha to Hr using integer pixels F00 to F88 in 13 cycles of the clock. This processing cycle is improved by more than about 10% compared to that of the conventional two-dimensional filter arithmetic unit.
- a filter operation for generating pixel values of 1Z2 pixels Ha to Hr belonging to the next image region B can be executed at the symbol “*” shown in FIG. Therefore, the two-dimensional filter arithmetic device of this embodiment can further improve the effective processing cycle.
- the vertical filter processing unit 100 is a parallel processing method.
- the horizontal filter processing unit 200 executes parallel processing in the loop (that is, parallel processing) as a parallel processing method. (Fig. 9).
- the two-dimensional filter arithmetic device of the present embodiment uses a symmetrical six-tap filter
- the tap filter is not limited to this example.
- the horizontal filter processing unit 200 uses an asymmetric 4-tap filter
- the horizontal filter processing unit 200 maintains a similar configuration in the block diagram of FIG. Add one flip-flop.
- the horizontal filter processing unit 200 can increase the parallelism of the parallel processing in the loop in order to cope with an asymmetric tap filter or a tap filter with 6 or more taps.
- the vertical filter processing unit 100 can change the structure of PE10 to PE40 according to the structure of the filter to be employed.
- the multipliers included in the vertical filter processing unit 100 and the horizontal filter processing unit 200 are referred to as shifters. It may be replaced with an adder.
- the first filter module (# 0) 110 to (# 8) 190 of the vertical filter processing unit 100 is connected to! /, PE10 to A clip arithmetic circuit may be inserted into each output terminal of PE40.
- the vertical filter processing unit 100 uses the first filter module (# 0) 110 to the first filter module (# 8) 190 to perform nine-fold parallel processing.
- the horizontal filter processing unit 200 force second parallel processing using the second filter module (#A) 210 to the second filter module (#D) 240 is performed.
- the parallelism of the parallel processing executed by the vertical filter processing unit 100 and the horizontal filter processing unit 200 may be appropriately changed according to the purpose of use.
- the vertical filter processing unit 100 may use a plurality of first filter modules, and the horizontal filter processing unit 200 may use a single second filter module. Even in this case, a buffer for absorbing the difference in the filter processing direction is not necessary, and a two-dimensional filter arithmetic unit suitable for the purpose of use can be realized.
- the two-dimensional filter arithmetic device performs vertical filter processing.
- the horizontal filter processing is executed by different parallel processing methods (sequential arithmetic processing and parallel arithmetic processing). Therefore, the two-dimensional filter arithmetic device of this embodiment can continuously execute vertical and horizontal filter processing without using a buffer for absorbing the difference in filter processing direction required in the prior art (this embodiment).
- the buffer 500 is simply inserted for timing purposes).
- the two-dimensional filter operation device according to the present embodiment can execute the two-dimensional filter operation at high speed, and can further reduce the circuit area.
- FIG. 10 is a block diagram of the two-dimensional filter arithmetic device according to Embodiment 2 of the present invention.
- the two-dimensional filter arithmetic device of this embodiment includes an image memory 300, a line memory 400, a vertical filter processing unit 640, a horizontal filter processing unit 650, a first selector 610, a second selector 620, and a third selector 630. .
- the two-dimensional filter arithmetic device of the present embodiment has two operation modes. That is, in the first operation mode, the vertical filter operation is executed first, and the horizontal filter operation is executed next. In the second operation mode, the horizontal filter operation is executed first, and the vertical filter operation is executed next.
- the two-dimensional filter calculation device of this embodiment can arbitrarily change the order of the vertical filter calculation and the horizontal filter calculation by switching the operation mode. This is in order to flexibly cope with standards such as MPEG-4 Advanced Simple Profile (ASP) that have the restriction that the filter is always applied first in the horizontal direction.
- MPEG-4 Advanced Simple Profile ASP
- the two-dimensional filter arithmetic device first performs vertical filter arithmetic.
- the first selector 610 selects the output of the line memory 400
- the second selector 620 selects the output of the vertical filter processing unit 640
- the third selector 630 selects the output of the horizontal filter processing unit 650.
- the vertical filter processing unit 640 and the horizontal filter processing unit 650 are respectively the vertical filter processing unit 100 shown in FIG. 6 and the horizontal filter processing unit 200 shown in FIG. 9 described in the first embodiment of the present invention. Can be used.
- the nother 500 is included in the horizontal filter processing unit 650 as part of the selector 250! [0153]
- the two-dimensional filter arithmetic device of the present embodiment first performs vertical filter arithmetic to obtain the pixel values of 1Z2 pixels H20 to H58 shown in FIG. 1, and then performs horizontal filter arithmetic.
- the pixel values of 1Z2 pixels Ha to Hr shown in FIG. 3 can be obtained.
- the processing process in the first mode of the two-dimensional filter arithmetic device according to the present embodiment is the same as the processing process in the two-dimensional filter arithmetic device according to the first embodiment of the present invention.
- F88 1/2 pixels Ha to Hr can be obtained.
- the two-dimensional filter operation device first performs the horizontal filter operation.
- the first selector 610 selects the output of the horizontal filter processing unit 650
- the second selector 620 selects the output of the line memory 400
- the third selector 630 selects the output of the vertical filter processing unit 640.
- FIG. 11 is a layout diagram of integer pixels and 1Z2 pixels in the second embodiment of the present invention.
- FIG. 11 is an explanatory diagram showing a procedure for generating a pixel value in the second operation mode.
- the two-dimensional filter arithmetic device of the present embodiment translates from the image area A indicated by the solid line rectangle according to the motion vector (1/2, 1/2).
- the pixel values of 1Z2 pixels Ha to Hr constituting the image area B indicated by the dotted rectangle are generated.
- the pixel values of 1Z2 pixels H02 to H85 are generated using the pixel values of integer pixels F00 to F88 by horizontal filter operation, and then The pixel values of 1Z2 pixels Ha to Hr are generated using the pixel values of 1Z2 pixels H02 to H85 by vertical filter calculation.
- the vertical filter processing unit 640 and the horizontal filter processing unit 650 in Fig. 10 are respectively the vertical filter processing unit 100 shown in Fig. 6 and the horizontal filter processing shown in Fig. 9 described in the first embodiment of the present invention.
- Part 200 can be used.
- the nother 500 need only be able to input pixel values in parallel from the selector 250 power line memory 400 that is not necessary.
- the line memory 400 of FIG. 6 may be omitted, and the pixel value generated by the horizontal filter processing unit 200 via the first filter module (# 0) 110 to (# 8) 190 force first selector 610 is not necessary. It suffices if Z0 to Z3 can be input in parallel.
- the horizontal filter processing unit 200 is an integer such as 400 lines memory.
- the pixel values of the pixels in the pixel row “F00 to F08” are read, and the pixel values of the 1Z2 pixels H02 to H05 are generated.
- the horizontal filter processing unit 200 reads out the pixel values of the pixels in the integer pixel row “F10 to F18” from the line memory 400 and generates the pixel values of the 1Z2 pixels H12 to H15.
- the horizontal filter processing unit 200 converts the pixel values of the small white circles 1Z2 pixels in FIG. 11 out of 1Z2 pixels into 1Z2 pixels H82 to H85, and four 1Z2 pixel values for each row in parallel. Generate.
- the 1Z2 pixel rows “H02 to H05” and “H12 to H15” generated in parallel by the horizontal filter processing unit 200 are the pixel values of the four pixels in each row of “H82 to H85”.
- the signals are input in parallel to the PE10 to PE40 of the first filter modules (# 0) 110 to (# 3) 130 (not shown) of the processing unit 100, respectively.
- the first filter module (# 0) 110 of the vertical filter processing unit 100 uses the pixel values of the 1/2 pixel columns “H02 to H82” shown in FIG. Generate pixel values of Hi and Hn.
- the first filter module (# 1) 120 generates pixel values of 1Z2 pixels Hb, Hf, Hj, and Hp using the pixel values of the pixels of the 1Z2 pixel column “H03 to H83”.
- the first filter module (# 2) 130 (not shown) generates pixel values of 1Z2 pixels Hc, Hg, Hk, and Hq using the pixel values of the pixels in the 1Z2 pixel column “H04 to H84”. .
- the first filter module (# 3) 140 (not shown) generates pixel values of 1/2 pixels Hd, Hh, Hm, and Hr using pixel values of 1Z2 pixel column “H05 to H85” To do.
- the first filter module (# 4) (not shown) to the first filter module (# 8) 190 are not used.
- FIG. 12 is a timing chart of the two-dimensional filter arithmetic device (second operation mode) in Embodiment 2 of the present invention. The timing diagram of FIG. 12 will be described with reference to FIG. 6, FIG. 9, FIG. 10, and FIG.
- image data is input from the line memory 400 to the selector 250 of the horizontal filter processing unit 200, and the output of the horizontal filter processing unit 200 is output to the vertical filter processing unit 100. Is input.
- pixel value “YO” (pixel values of integer pixels F00 to F08) is input from the line memory 400 to the horizontal filter processing unit 200. That is, the pixel values of the integer pixels FOO to F05 are input to the second filter module (#A) 210 via the selector 250, and the pixel values of the integer pixels F01 to F06 are input to the second filter module (#B) 220. , The pixel values of integer pixels F02 to F07 are input to the second filter module (#C) 230, and the pixel values of integer pixels F03 to F08 are input to the second filter module (#D) 240. . In each module (#A to #D), a product-sum operation (Formula 3) of the input pixel value and each filter coefficient output from the flip-flop 260, flip-flop 270, and flip-flop 280 is executed.
- horizontal filter processing section 200 outputs a pixel value “Z0” that has been subjected to horizontal filter processing. That is, the second filter module (#A) 210 outputs the pixel value of the 1Z2 pixel H02 generated from the pixel values of the integer pixels F00 to F05, and the second filter module (#B) 220 outputs the integer pixel F01. The pixel value of 1Z2 pixel H03 generated from the pixel values of ⁇ F06 is output, and the second filter module (#C) 230 outputs the pixel value of 1Z2 pixel H04 generated from the pixel values of integer pixels F02 to F07. The second filter module (#D) 240 outputs the pixel value of the 1Z2 pixel H05 generated from the pixel values of the integer pixels F03 to F08.
- the pixel value “Y1J (pixel values of integer pixels F10 to F18) is input from the line memory 400 to the horizontal filter processing unit 200. That is, the second filter module ( # A) The pixel values of integer pixels F10 to F15 are input to 210, the pixel values of integer pixels F11 to F16 are input to the second filter module (#B) 220, and the second filter module (#C) 230 is input. The pixel values of the integer pixels F12 to F17 are input, and the pixel values of the integer pixels Fl 3 to F 18 are input to the second filter module (#D) 240. For each module (#A to D), the input A product-sum operation (Formula 3) of the pixel value thus obtained and each filter coefficient output from the flip-flop 260, the flip-flop 270, and the flip-flop 280 is executed.
- horizontal filter processing section 200 outputs a pixel value “Z1” that has been subjected to horizontal filter processing. That is, the second filter module (#A) 210 has 1Z2 pixels H 12 pixel values are output, the second filter module (#B) 220 outputs the pixel value of 1Z2 pixel H13, the second filter module (#C) 230 outputs the pixel value of 1Z2 pixel H14, The second filter module (#D) 240 outputs the pixel value of the 1Z2 pixel H15.
- the pixel value “Y3J (pixel values of integer pixels F20 to F28) is input from the line memory 400 to the horizontal filter processing unit 200. Thereafter, the same processing is sequentially executed until clock 9. Is done.
- the product-sum operation is performed on the filter coefficient “a” input from the coefficient input terminal 91 to the coefficient input terminal inA of PE10. That is, the pixel value of 1Z2 pixel H02 is input to the pixel data input terminal inO of PE10 of the first filter module (# 0) 110, and the pixel data input terminal inO of PE10 of the first filter module (# 1) 120 is input.
- the pixel value of 1Z2 pixel H03 is input, the pixel value of 1Z2 pixel H04 is input to the pixel data input terminal inO of PE10 of the first filter module (# 2) (not shown), and the first filter module (# 3)
- the pixel value of 1Z2 pixel H05 is input to the pixel data input terminal inO of PE10 (not shown).
- the first filter module (# 4) (not shown) to the first filter module (# 8) 190 are not used.
- the pixel value “Z1” output from the horizontal filter processing unit 200 is input to PE 10 as the pixel value “XI”, and the product of the filter coefficient “b” input from the coefficient input terminal 91 A sum operation is performed.
- the pixel value “Zl” output from the horizontal filter processing unit 200 is input to the PE 20 as the pixel value “XI”, and the product-sum operation with the filter coefficient “a” input from the PE 10 is executed.
- the pixel value of 1/2 pixel H12 is input to the pixel data input terminal inO of PE10 of the first filter module (# 0) 110 and the pixel data input terminal inl of PE20, and the first filter module (# 1) 120 PE10 pixel data input terminal i ⁇ and PE20 pixel data input terminal inl are input to the pixel value of 1Z2 pixel H13, and the pixel data input terminal of PE10 of the first filter module (# 2) (not shown)
- the pixel value of 1Z2 pixel H14 is input to the pixel data input terminal inl of inO and PE20, and the pixel data input terminal of in10 and PE20 of the first filter module (# 3) (not shown)
- the pixel value of the 1Z2 pixel H15 is input to the input terminal inl, and the product-sum operation is executed in each PE.
- the processing unit 100 outputs the pixel value “Y0”. That is, the first filter module (# 0) 110 outputs the pixel value of 1Z2 pixel Ha, the first filter module (# 1) 120 outputs the pixel value of 1Z2 pixel Hb, and the first filter module (# 1) 2) (not shown) outputs the pixel value of 1Z2 pixel He, and the first filter module (# 3) (not shown) outputs the pixel value of 1Z2 pixel Hd.
- the vertical filter processing unit 100 outputs a pixel value “Y1” (1 ⁇ 2 pixels He ⁇ : pixel value of Hh).
- the vertical filter processing unit 100 outputs the pixel value “Y2” (pixel value of 1 ⁇ 2 pixels Hi to Hm).
- the vertical filter processing unit 100 outputs a pixel value “Y3” (pixel values of 1 ⁇ 2 pixels ⁇ to ⁇ r).
- the two-dimensional filter arithmetic device of this embodiment executes the two-dimensional filter operation according to the timing diagram shown in FIG. 12 in the order of the horizontal filter processing and then the vertical filter processing. To do.
- the two-dimensional filter arithmetic device of the present embodiment can obtain 1Z2 pixels Ha to Hr using the integer pixels F00 to F88 in the 13 clock cycles. This processing cycle is equal to the processing cycle in the first operation mode. Therefore, the two-dimensional filter arithmetic device according to the present embodiment has a processing speed improved by about 10% or more compared with the conventional two-dimensional filter arithmetic device both in the first operation mode and in the second operation mode. Dimensional filtering can be performed.
- the two-dimensional filter calculation device of the present embodiment executes the vertical filter calculation first, and then executes the horizontal filter calculation to complete the two-dimensional filter calculation.
- the horizontal filter operation is executed first, the vertical filter operation is executed next, and the two-dimensional filter operation is completed. Therefore, according to the two-dimensional filter calculation device of this embodiment, the operation mode is selected according to the standard to which the image data to be processed conforms. By doing so, the order of the horizontal filter operation and the vertical filter operation can be easily changed.
- FIG. 13 is a block diagram of a semiconductor integrated circuit according to the third embodiment of the present invention.
- the semiconductor integrated circuit 700 of this embodiment includes a two-dimensional filter operation unit 710, a CPU 720, a code Z decoding unit 730, a memory 740, and a functional circuit unit 750.
- a vertical filter processing unit 711 and a horizontal filter processing unit 712 are included.
- the two-dimensional filter calculation unit 710 of the present embodiment corresponds to the two-dimensional filter calculation apparatus shown in Fig. 4 described in the first embodiment of the present invention. That is, the vertical filter processing unit 711 of this embodiment includes the vertical filter processing unit 100 and the line memory 400 of FIG. The horizontal filter processing unit 712 of this embodiment includes the horizontal filter processing unit 200 and the buffer 500 of FIG.
- the two-dimensional filter calculation unit 710 performs two-dimensional filter processing on the filtered image data, and generates a pixel value of a new pixel.
- the coder Z decoding unit 730 performs variable-length coding on a moving image and outputs coded image data. Further, the code key Z decoding unit 730 performs variable length decoding on the code key image data and outputs a decoded image.
- the code Z decoding unit 730 is a two-dimensional unit that generates a prediction image by motion compensation prediction in motion picture encoding and a motion compensation image based on a motion vector in decoding encoded image data. Two-dimensional filter processing is performed using the filter operation unit 710, and the pixels of the predicted image and motion compensation image are interpolated.
- the memory 740 corresponds to the image memory 300, and stores image data.
- the functional circuit unit 750 is another circuit unit having functions other than the functions of the two-dimensional filter operation unit 710 and the encoding Z decoding unit 730.
- the two-dimensional filter processing in the two-dimensional filter calculation unit 710 of the present embodiment is the same as the processing by the two-dimensional filter calculation device of the first embodiment of the present invention, and the filtered image data stored in the memory 740 Then, a vertical filter process is performed, and then a horizontal filter process (or a filter process in the reverse order) is performed to generate image data predicted by motion compensation.
- the details of the operation of the two-dimensional filter operation unit 710 are Since this is the same as the two-dimensional filter arithmetic device of aspect 1, its description is omitted.
- the CPU 720 performs processing other than the code Z decoding processing performed by the code Z decoding unit 730 and the processing performed by the functional circuit unit 750. At the same time, the CPU 720 controls the entire semiconductor integrated circuit 700.
- the semiconductor integrated circuit 700 of the present embodiment has a circuit smaller than the conventional one because the two-dimensional filter operation unit 710 does not require a buffer for absorbing the difference in the filter processing direction of the two-dimensional filter operation processing. It can be realized with an area and power consumption can be kept low.
- the CPU 720 that the encoding Z decoding unit 730 performs the encoding Z decoding process may process the encoding Z decoding process by software.
- the code Z decoding unit 730 can be omitted from the semiconductor integrated circuit 700.
- the semiconductor integrated circuit 700 of this embodiment includes the memory 740 inside.
- the semiconductor integrated circuit 700 may use a memory provided separately outside. In that case, the memory 740 can be omitted from the semiconductor integrated circuit 700.
- the semiconductor integrated circuit 700 of this embodiment can be suitably applied to an electronic device that handles moving image data, such as a mobile phone, a DVD recorder, an HDD recorder, and a television receiver.
- FIG. 14 is a block diagram of a semiconductor integrated circuit according to the fourth embodiment of the present invention.
- Figure 1
- FIG. 4 the same components as those in FIG. 13 are denoted by the same reference numerals, and the description thereof is omitted.
- the semiconductor integrated circuit 800 of the present embodiment shown in FIG. 14 has substantially the same configuration as the semiconductor integrated circuit 700 shown in FIG. 13 of the third embodiment of the present invention, but the two-dimensional filter operation unit 810 is different.
- the two-dimensional filter calculation unit 810 of this embodiment includes a reconstruction filter processing unit 811 and a configuration information register 812.
- the reconstruction filter processing unit 811 is composed of reconstruction logic, and in accordance with the configuration information stored in the configuration information register 812, the two-dimensional filter operation shown in Fig. 10 according to the second embodiment of the present invention.
- the two-dimensional filter circuit corresponding to the device can be dynamically reconfigured.
- the configuration information stored in the configuration information register 812 includes at least two pieces of configuration information, That is, it has first configuration information and second configuration information.
- the two-dimensional filter calculation unit 810 has two operation modes, that is, a first operation mode and a second operation mode.
- the reconfiguration filter processing unit 811 is reconfigured according to the first configuration information stored in the configuration information register 812 and stored in the memory 740.
- the vertical filter operation is executed first, and the horizontal filter operation is executed next.
- the reconstruction filter processing unit 811 can exhibit the same function as the function in the first operation mode of the two-dimensional filter arithmetic device in the second embodiment of the present invention in the first operation mode.
- the reconstruction filter processing unit 811 is reconfigured according to the second configuration information stored in the configuration information register 812 and stored in the memory 740.
- the horizontal filter operation is executed first, and the vertical filter operation is executed next.
- the reconstruction filter processing unit 811 can exhibit the same function as the function in the second operation mode of the two-dimensional filter arithmetic device in Embodiment 2 of the present invention in the second operation mode.
- the code ⁇ Z decoding unit 730 is configured to generate a prediction image by motion compensation prediction in motion picture encoding and a motion compensation image based on a motion vector in decoding of encoded image data. Two-dimensional filter processing is performed using the filter calculation unit 810, and the pixels of the prediction image and motion compensation image are interpolated.
- the CPU 720 performs processes other than the code Z decoding process performed by the code Z decoding unit 730 and the process performed by the functional circuit unit 750. At the same time, the CPU 720 controls the entire semiconductor integrated circuit 800.
- the two-dimensional filter calculation unit 810 does not need a buffer for absorbing the difference in the filter processing direction of the two-dimensional filter calculation processing, and thus is smaller than the conventional circuit. Realized in area. Further, the semiconductor integrated circuit 800 of this embodiment can dynamically and easily change the order of the horizontal direction filter processing and the vertical direction filter processing by selecting an operation mode in accordance with a standard to which the image data to be processed complies.
- the configuration information stored in the configuration information register 812 includes the first configuration information and the second configuration information. It may have configuration information other than the generation information. In that case, a two-dimensional filter operation using a tap filter having a tap number other than 6 taps or a two-dimensional filter operation using a filter having an asymmetric filter coefficient can be realized.
- the CPU 720 that the encoding Z decoding unit 730 performs the encoding Z decoding process may process the encoding Z decoding process by software. In that case, the code Z decoding unit 730 can be omitted from the semiconductor integrated circuit 800.
- the semiconductor integrated circuit 800 of this embodiment includes the memory 740 inside, and the power semiconductor integrated circuit 800 may use a memory separately provided outside. In that case, the memory 740 can be omitted from the semiconductor integrated circuit 800.
- the semiconductor integrated circuit 800 of this embodiment can be suitably applied to an electronic device that handles moving image data, such as a mobile phone, a DVD recorder, an HDD recorder, and a television receiver.
- FIG. 15 is a block diagram of mobile phone system 900 according to Embodiment 5 of the present invention.
- the cellular phone system 900 of this embodiment includes an antenna 901, an RF circuit 902, a base node LSI 905, a camera 909, an application LSI 910, a memory 911, an LCD controller 913, a main LCD 914, and a sub-component. Equipped with LCD915.
- the RF circuit 902 communicates with an external partner mobile phone and transmits and receives image data as a bit stream.
- the RF circuit 902 receives image data from the Internet.
- the baseband LSI 905 mainly performs communication processing.
- the application LSI 910 processes image data.
- the semiconductor integrated circuit 700 according to the third embodiment of the present invention or the semiconductor integrated circuit 800 according to the fourth embodiment can be suitably used.
- the application LSI 910 includes a memory 911 for storing filtered image data outside, the semiconductor integrated circuit 700 or the semiconductor integrated circuit 800 used for the application! A memory for storing image data is provided inside them.
- the main LCD 914 displays image data and character data processed by the application LSI 910 under the control of the LCD controller 913.
- the sub LCD 915 mainly displays character data under the control of the LCD controller 913.
- image data received by RF circuit 902 from an external mobile phone via antenna 901 or image data received from the Internet is processed and processed by baseband LSI 905.
- the application LSI 910 decodes the decoded image, and the decoded image is displayed on the main LCD 914.
- an image photographed by the camera 909 is processed by the application LSI 910 and displayed on the main LCD 914 and is encoded by the application LSI 910 to generate encoded image data.
- This encoded image data is subjected to communication processing by the baseband LSI 905 and then transmitted from the RF circuit 902 to the other party's mobile phone via the antenna 901.
- the application LSI 910 of the present embodiment uses the semiconductor integrated circuit 700 of the third embodiment of the present invention or the semiconductor integrated circuit 800 of the fourth embodiment. Compensation two-dimensional filter processing or motion prediction two-dimensional filter processing can be efficiently performed in the image encoding process for images taken with a camera. In addition, the order of the filter processing direction of the two-dimensional filter processing can be easily switched according to the standard of the received image data. Furthermore, the application LSI 910 of this embodiment can be realized with a smaller circuit area than before. As a result, the cellular phone system 900 of this embodiment can be suitably realized as a small-sized device having a flexible function.
- the cellular phone system 900 has been taken up as an application example of the electronic device using the semiconductor integrated circuit 700 of the third embodiment of the present invention or the semiconductor integrated circuit 800 of the fourth embodiment.
- Electronic devices using the integrated circuit 700 or the semiconductor integrated circuit 800 include, for example, a personal digital assistant (PDA), a DVD recorder, an HDD recorder, a television receiver, a car navigation system, a moving image, in addition to the mobile phone system 900.
- PDA personal digital assistant
- DVD recorder DVD recorder
- HDD recorder high definition digital recorder
- television receiver a car navigation system
- moving image data processing can be efficiently executed by using the semiconductor integrated circuit 700 or the semiconductor integrated circuit 800 equipped with the two-dimensional filter operation unit of the present invention.
- the two-dimensional filter arithmetic device is a field that requires image compression / expansion processing, in-loop filter processing, scanning line conversion processing, or image smoothing processing, such as a moving image processing device, and its application field. Available in
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
2次元フィルタ演算装置は、画像メモリ(300)、ラインメモリ(400)、並列に設置された9個の第1フィルタモジュールを有する垂直フィルタ処理部(100)、タイミング調整用のバッファ(500)、及び、4個の並列に設置された第2フィルタモジュールを有する水平フィルタ処理部(200)を備え、ラインメモリ(400)から、1ラインあたり9個の整数画素値を垂直フィルタ処理部(100)に並列入力して、9個の垂直フィルタ済み1/2画素値の生成し、それらを水平フィルタ処理部(200)へ入力して、4個の2次元フィルタ済み1/2画素値を生成する。
Description
明 細 書
2次元フィルタ演算装置及び方法
技術分野
[0001] 本発明は、画像圧縮伸張処理、ループ内フィルタ処理、走査線変換処理、あるい は、画像平滑ィ匕処理等に使用される 2次元フィルタ演算装置に関するものである。 背景技術
[0002] 近年、音声や画像のデータ圧縮技術を基盤とした音声符号化技術や動画像符号 化技術は、我々のオーディオ 'ビジュアルライフを豊かなものにする上で非常に重要 な技術となっている。
[0003] 今日、動画像符号ィ匕技術として、様々な方式が提案されて!ヽる。動画像符号化技 術の標準規格としては、 ITU-T (国際電気通信連合電気通信標準化部門)の H. 26 1、 H. 263、 ISO (国際標準化機構)の MPEG- 1、 MPEG- 2, MPEG-4などがある (MPEGは、 Moving Picture Experts Groupの略語)。また、 ITU— Tと ISOが 共同で規格ィ匕した動画像符号ィ匕技術の新しい標準規格として、 H. 264 I MPEG— 4 AVC (Advanced Video Coding)がある。
[0004] さらに、 SMPTE (Society of Motion Picture and Television Engineer s:全米映画テレビジョン技術者協会)は、次世代の大容量光ディスク規格「HD DV D」と「Blue— Ray Disk」に、動画像符号化技術として「Video Codec 1 (VC1)」 を採用した。
[0005] その他、インターネット上のコンテンツには、マイクロソフト社の WMVや、リアルネッ トワークス社の RealVideoなどの方式が使用されている。このように、現在、異なる動 画像符号化技術に基づ!、て、多くの標準規格が乱立して!/、る。
[0006] これらの動画像符号化方式の標準規格は、応用分野ごとに異なる適用のされ方を している。例えば、現在の DVDには MPEG— 2が採用されており、次世代の DVDに は、前述したように、 H. 264 I MPEG -4 AVCや VC1が採用されている。すでに サービスが開始されている日本国内におけるディジタル放送には、 H. 264 I MPE G-4 AVCが採用されている。また、携帯電話のテレビ電話には、 H. 263、あるい
は、 MPEG— 4 Simple Profileが採用されている。さらに、インターネット上のコン テンッには、 WMV方式や RealVideo方式が多く採用されている。
[0007] 一方、近年の動画像符号化技術は、動画像の圧縮率向上のために、複雑な圧縮 伸張処理を行っている。このため、圧縮伸張処理対象の画像の画素数が多くなると、 必要とする計算量が膨大となる。
[0008] ディジタルテレビ、 DVD,または、携帯電話等の映像機器に組み込まれて ヽる CP Uは、パーソナルコンピュータに搭載される CPUより動作周波数が低い。これらの映 像機器は、動作周波数が低い CPUによるソフトウェア処理では、上述した膨大な計 算量を伴う動画像の伸張処理 (デコード処理)が間に合わないために、処理アルゴリ ズムをダイレクトに実行する、伸張処理専用のハードウェアを搭載していることが多い
[0009] 搭載後の変更が容易でない専用ハードウェアで、前述した複数の規格のストリーム データを効率よくデコードするためには、それぞれの規格での類似点と相違点を考 慮することが重要となる。
[0010] 動画のストリームデータをデコードする処理は、可変長符号ィ匕されたストリームデー タを復号する可変長復号、可変長復号後のデータを周波数領域のデータに変換す る逆量子化、周波数領域のデータから画素領域のデータへ変換する逆直交変換、 参照画像力 動きベクトルに応じた補間画像を生成し、その値に逆直交変換の結果 を足しこむ動き補償予測という手順で実行される。これらのうち、逆直交変換及び動 き補償予測は、 2次元フィルタ処理という共通の処理を行っている。さらに、この 2次 元フィルタ処理は、デコード処理の中で特に多くの計算量を要する部分である。また 、H. 264 I MPEG -4 AVCでは、圧縮率を改善するために、参照画像に対して 補間を行うフィルタ処理を施す。このフィルタ処理も 2次元フィルタ処理である。
[0011] このように、 2次元フィルタ処理技術は、現在の動画像処理において、広範囲に利 用される重要な技術である。
[0012] 図 16は、特許文献 1が開示する従来の 2次元フィルタのブロック図である。図 16に 示す従来の 2次元フィルタは、画像メモリ 1、ラインメモリ 2a〜ラインメモリ 2e、垂直フィ ルタ処理部 3、水平フィルタ処理部 4、シフトレジスタ 5、及び、シフトレジスタ 6を備え
る。このものは、画像メモリ 1に格納されている画素に対して、最初に、垂直フィルタ処 理部 3が垂直方向に 5タップのフィルタ演算を実行し、次に、水平フィルタ処理部 4が 、垂直方向フィルタ演算により更新された画素を用いて、水平方向に同じく 5タップの フィルタ演算を実行する。
[0013] 以下に、図 16に示す従来の 2次元フィルタについて、さらに詳しい動作を説明する 。最初に、画像メモリ 1に格納されている入力画像のある 1ラインの画素の画素値が、 ラインメモリ 2aに読み出される。次の 1ラインの画素の画素値がラインメモリ 2aに読み 出されるとき、ラインメモリ 2aに最初に読み出された画素の画素値力ラインメモリ 2bに 転送される。この処理を 5回繰り返すことで、最初に読み出された 1ラインの画素の画 素値がラインメモリ 2eに格納され、ラインメモリ 2a〜2dにも、順次読み出されたライン の画素の画素値が格納されることになる。次に、各ラインメモリからそれぞれの最右の 1画素値が、垂直フィルタ処理部 3に同時に読み出され、垂直フィルタ処理部 3にお いて、垂直方向フィルタ演算が実行される。
[0014] 垂直フィルタ処理部 3によりフィルタ処理された画素値は、レジスタ 5に蓄積される。
垂直フィルタ処理部 3によりフィルタ処理された 5つの画素値がレジスタ 5にそろった 時点で、それらの 5つの画素値が水平フィルタ処理部 4に入力され、水平フィルタ処 理部 4において水平方向フィルタ演算が実行される。
[0015] 上記の処理を繰り返すことにより、画像メモリ 1に格納されている画素の画素値に対 して 2次元のフィルタ演算が実行される。
[0016] し力しながら、図 16に示す従来の 2次元フィルタでは、垂直方向フィルタ演算を実 行するために、水平方向に読み出された画素の画素値を垂直方向に並べ替えるた めのバッファ(ラインメモリ 2a〜2e)を必要としていた。さらに、そのバッファを制御する ための制御回路のパス力 フィルタ演算を実行するデータパスとは別に必要であり、 回路面積を増大させているという問題があった。これは、従来技術のように、垂直方 向フィルタ演算を実行するデータパスと水平方向フィルタ処理を実行するデータノ ス が同一のデータノ ス構造になっている場合に必ず生じる問題である。また、図 16に 示す従来の 2次元フィルタでは、フィルタ処理方向の順序を容易に変更できな ヽと 、 う問題があった。
[0017] また、特許文献 2は、水平方向フィルタと垂直方向フィルタを用いて、画素データ密 度を変換し、縮小画面を生成する技術を開示している。特許文献 2が開示する技術 では、水平方向フィルタ処理と垂直方向フィルタ処理の間に、画素データを並び替え るための、遅延回路 (バッファに相当する)を必要としていた。
[0018] さらに、特許文献 3は、水平方向フィルタと、構成を簡単にした垂直方向フィルタと を有する 2次元ディジタルフィルタ技術を開示して 、る。特許文献 3が開示する技術 においても、垂直方向にフィルタ処理ためには、水平方向にフィルタ処理された画素 データを蓄積する遅延回路 (バッファに相当する)を必要としていた。
特許文献 1:特開 2002— 304624号公報
特許文献 2:米国特許第 5289292号公報
特許文献 3:米国特許第 5410362号公報
発明の開示
発明が解決しょうとする課題
[0019] そこで本発明は、画面上の画素の画素値に対して、 2次元フィルタ処理を行う場合 、フィルタ処理方向の違いを吸収するためのバッファが不要で、フィルタ処理方向の 順序を容易に変更できる、 2次元フィルタ演算装置を提供することを目的とする。 課題を解決するための手段
[0020] 第 1の発明に係る 2次元フィルタ演算装置は、被フィルタ画像データを格納する記 憶部と、記憶部に格納されている被フィルタ画像データに対して、第 1のフィルタ演算 を実行する第 1フィルタ処理部と、第 1フィルタ処理部がフィルタ処理した画像データ に対して、第 2のフィルタ演算を実行する第 2フィルタ処理部とを備え、第 1フィルタ処 理部と第 2フィルタ処理部とは、垂直方向フィルタ演算と水平方向フィルタ演算の内 の互いに異なるフィルタ演算を実行し、垂直方向フィルタ演算と水平方向フィルタ演 算とは、互いに異なる並列処理によって実行される。
[0021] この構成によれば、被フィルタ画像データの 2次元フィルタ演算において、フィルタ 処理方向の順序を任意に設定でき、さらに、フィルタ処理方向の違いを吸収するた めのバッファを必要としない、 2次元フィルタ演算装置を提供できる。この 2次元フィル タ演算装置は、バッファが不要な分だけ回路面積を削減できる。
[0022] 第 2の発明に係る 2次元フィルタ演算装置では、並列処理は、被フィルタ画像デー タに対して、並列に実行される順次演算処理と並列に実行される並列演算処理とを 含む。
[0023] この構成によれば、被フィルタ画像データの 2次元フィルタ演算は、フィルタ処理方 向によって、順次演算処理と並列演算処理の内の 、ずれかの演算処理を実行する ことができる。さらに、この構成によれば、演算処理の違いを吸収するためのバッファ が不要であり、その分回路面積を削減した 2次元フィルタ演算装置を提供できる。
[0024] 第 3の発明に係る 2次元フィルタ演算装置では、第 1フィルタ処理部は、複数の第 1 フィルタモジュールを有し、第 2フィルタ処理部は、少なくとも 1つの第 2フィルタモジュ ールを有し、複数の第 1フィルタモジュールは、被フィルタ画像データに対して第 1の フィルタ演算を実行し、第 1フィルタ処理部は、複数の第 1フィルタ結果を出力し、少 なくとも 1つの第 2フィルタモジュールは、複数の第 1フィルタ結果の内の少なくとも一 部を入力して、第 2のフィルタ演算を実行し、第 2フィルタ処理部は、少なくとも 1つの 第 2フィルタ結果を出力する。
[0025] この構成によれば、複数の画素の画素値に対して、複数の水平方向フィルタ処理( あるいは垂直方向フィルタ処理)を実行し、フィルタ処理された複数の画素値を得て、 得られた複数の画素値に対して、少なくとも 1つの垂直方向フィルタ処理 (あるいは水 平方向フィルタ処理)を引き続き実行し、 2次元フィルタ処理された複数の画素値を 生成することができる。
[0026] 第 4の発明に係る 2次元フィルタ演算装置では、第 1フィルタ処理部は、複数の第 1 フィルタモジュールを用いて、第 1のフィルタ演算を並列に実行し、第 2フィルタ処理 部が複数の第 2フィルタモジュールを有する場合は、第 2フィルタ処理部は、複数の 第 2フィルタモジュールを用いて、第 2のフィルタ演算を並列に実行する。
[0027] この構成によれば、複数の水平方向フィルタ処理 (あるいは垂直方向フィルタ処理) と、それに続く複数の垂直方向フィルタ処理 (あるいは水平方向フィルタ処理)とを、 それぞれ並列に実行することができる。したがって、より効率の良い 2次元フィルタ演 算装置を実現できる。
[0028] 第 5の発明に係る 2次元フィルタ演算装置では、複数の第 1フィルタモジュールのそ
れぞれは、初段の累積加算部と少なくとも 1つの後段の累積加算部が縦続接続され た複数の累積加算部と、複数の累積加算部のそれぞれの出力を順次選択して、出 力する選択部とを有し、初段の累積加算部には、所定のフィルタ係数が、 1処理時間 ごとに順次入力され、少なくとも 1つの後段の累積加算部には、それぞれの前段の累 積加算部から、所定のフィルタ係数が、 1処理時間ごとに順次転送され、複数の累積 加算部それぞれには、被フィルタ画像データの垂直または水平に並んだ画素の画素 値が、記憶部から 1処理時間ごとに順次入力され、複数の累積加算部は、それぞれ、 1処理時間ごとに画素値と所定のフィルタ係数との積和演算を行って、複数の第 1フ ィルタ結果を出力する。
[0029] この構成によれば、フィルタ係数をシフト入力し、画素値を並列入力して、ループ内 パイプライン処理によって、画素値とフィルタ係数との積和演算を高効率に行う第 1フ ィルタモジュールを実現できる。
[0030] 第 6の発明に係る 2次元フィルタ演算装置では、少なくとも 1つの第 2フィルタモジュ ールは、複数の加算部と、複数の積算部とを有し、複数の第 1フィルタ結果の内の少 なくとも一部と、所定の複数のフィルタ係数との積和演算を行い、少なくとも 1つの第 2 フィルタ結果を出力する。
[0031] この構成によれば、第 1フィルタモジュールが出力した演算結果を入力して、ルー プ内並列処理によって、演算結果とフィルタ係数との積和演算を高効率に行う第 2フ ィルタモジュールを実現できる。この結果、 2次元フィルタ演算を完成させることができ る。
[0032] 第 7の発明に係る 2次元フィルタ演算装置では、複数の第 1フィルタモジュールは、 ループ内パイプライン処理方式とループ内並列処理方式の内の一方の処理方式に 従って、第 1のフィルタ演算を実行し、少なくとも 1つの第 2フィルタモジュールは、ル ープ内パイプライン処理方式とループ内並列処理方式の内、複数の第 1フィルタモ ジュールが従って 、な 、方の処理方式に従って、第 2のフィルタ演算を実行する。
[0033] この構成によれば、ループ内パイプライン処理(または、ループ内並列処理)により 、第 1のフィルタ処理を行う第 1フィルタ処理部と、ループ内並列処理 (または、ループ 内パイプライン処理)により、第 2のフィルタ処理を行う第 2フィルタ処理部とを備える、
2次元フィルタ演算装置を実現できる。
[0034] 第 8の発明に係る 2次元フィルタ演算装置では、記憶部から 1ライン分の画素の画 素値を取得して一時的に格納し、第 1フィルタ処理部に出力する、ラインメモリをさら に備える。
[0035] この構成によれば、記憶部力 フィルタ演算部への画素値の転送をより効率よく行う 2次元フィルタ演算装置を実現できる。
[0036] 第 9の発明に係る 2次元フィルタ演算装置は、被フィルタ画像データを格納する記 憶部と、垂直方向フィルタ演算を実行する垂直フィルタ処理部と、水平方向フィルタ 演算を実行する水平フィルタ処理部と、記憶部の出力と水平フィルタ処理部の出力 の内の一つを選択して、垂直フィルタ処理部へ出力する第 1選択部と、記憶部の出 力と垂直フィルタ処理部の出力の内の一つを選択して、水平フィルタ処理部へ出力 する第 2選択部と、垂直フィルタ処理部の出力と水平フィルタ処理部の出力の内の一 つを選択して、 2次元フィルタ演算結果として出力する第 3選択部とを備える。垂直方 向フィルタ演算と水平方向フィルタ演算とは、互いに異なる並列処理によって実行さ れる。第 1動作モードが選択された場合は、第 1選択部は、記憶部の出力を選択し、 第 2選択部は、垂直フィルタ処理部の出力を選択し、第 3選択部は、水平フィルタ処 理部の出力を選択し、記憶部に格納されている被フィルタ画像データに対して、垂直 方向フィルタ演算が実行された後に、水平方向フィルタ演算が実行される。第 2動作 モードが選択された場合は、第 1選択部は、水平フィルタ処理部の出力を選択し、第 2選択部は、記憶部の出力を選択し、第 3選択部は、垂直フィルタ処理部の出力を選 択し、記憶部に格納されている被フィルタ画像データに対して、水平方向フィルタ演 算が実行された後に、垂直方向フィルタ演算が実行される。
[0037] この構成によれば、垂直方向フィルタ演算と水平方向フィルタ演算の順序を任意に 変えることができる 2次元フィルタ演算装置を実現できる。
[0038] 第 10の発明に係る 2次元フィルタ演算装置では、互いに異なる並列処理は、被フィ ルタ画像データに対して、並列に実行される順次演算処理と並列に実行される並列 演算処理とを含む。
[0039] この構成によれば、被フィルタ画像データの 2次元フィルタ演算は、フィルタ処理方
向によって、順次演算処理と並列演算処理の内の 、ずれかの演算処理を実行する ことができる。さらに、この構成によれば、演算処理の違いを吸収するためのバッファ が不要であり、その分回路面積を削減した 2次元フィルタ演算装置を提供できる。
[0040] 第 11の発明に係る 2次元フィルタ演算装置では、第 1動作モードと第 2動作モード の選択は、被フィルタ画像データが準拠する動画像符号ィ匕規格に従って実行される
[0041] この構成によれば、被フィルタ画像データが準拠する動画像符号化規格に従って、 垂直方向フィルタ演算と水平方向フィルタ演算の実行順序を任意に変えることができ る。
発明の効果
[0042] 本発明によれば、画面上の画素の画素値に対して、 2次元フィルタ処理を行う場合 、フィルタ処理方向の違いを吸収するためのバッファが不要で、フィルタ処理方向の 順序を容易に変更できる、 2次元フィルタ演算装置を提供することができる。
図面の簡単な説明
[0043] [図 1]本発明の実施の形態 1における整数画素と 1Z2画素の配置図である。
[図 2]本発明の実施の形態 1における 1Z2画素の配置図である。
[図 3]本発明の実施の形態 1における 1Z2画素の別の配置図である。
[図 4]本発明の実施の形態 1における 2次元フィルタ演算装置のブロック図である。
[図 5]本発明の実施の形態 1における 2次元フィルタ演算方法のフローチャートである
[図 6]本発明の実施の形態 1における垂直フィルタ処理部のブロック図である。
[図 7]本発明の実施の形態 1におけるプロセッサエレメントのブロック図である。
[図 8]本発明の実施の形態 1における 2次元フィルタ演算装置のタイミング図である。
[図 9]本発明の実施の形態 1における水平フィルタ処理部のブロック図である。
[図 10]本発明の実施の形態 2における 2次元フィルタ演算装置のブロック図である。
[図 11]本発明の実施の形態 2における整数画素と 1Z2画素の配置図である。
[図 12]本発明の実施の形態 2における 2次元フィルタ演算装置 (第 2動作モード)のタ イミング図である。
[図 13]本発明の実施の形態 3における半導体集積回路のブロック図である。
[図 14]本発明の実施の形態 4における半導体集積回路のブロック図である。
[図 15]本発明の実施の形態 5における電子機器のブロック図である。
[図 16]従来の 2次元フィルタのブロック図である。
符号の説明
1、 300 画像メモリ
2a、 2e、 400 ラインメモリ
3、 100、 711 垂直フィルタ処理部
4、 200、 712 水平フィルタ処理部
5、 6 レジスタ
10、 20、 30、 40 プロセッサエレメント
11、 214、 215、 216 乗算器
12、 211、 212、 213、 217、 218 カロ算器
13、 14、 219、 260、 270、 280 フリップフロップ
15、 91 係数入力端子
16 係数出力端子
17 画素データ入力端子
18 画素データ出力端子
50、 250 セレクタ
110 第 1フィルタモジュ -ル(# 0)
120 第 1フィルタモジュ -ル(# 1)
190 第 1フィルタモジュ -ル(# 8)
210 第 2フィルタモジュ -ル(#
220 第 2フィルタモジュ -ル(# )
230 第 2フィルタモジュ -ル(# c)
240 第 2フィルタモジュ -ル(# D)
500 ノ ッファ
610 第 1セレクタ
620 第 2セレクタ
630 第 3セレクタ
640 垂直フィルタ処理部
650 水平フィルタ処理部
700、 800 半導体集積回路
710、 810 2次元フィルタ演算部
720 CPU
730 符号化 Z復号部
740、 908、 911 メモリ
750 機能回路部
811 再構成フィルタ処理部
812 構成情報レジスタ
900 携帯電話システム
901 アンテナ
902 RF回路
903 スピーカ
904 マイク
905 ベースバンド LSI
906 キー
907 USB
909 カメラ
910 アプリケーション LSI
912 SDカード
913 LCDコントローラ
914 メイン LCD
915 サブ LCD
発明を実施するための最良の形態
以下図面を参照しながら、本発明の実施の形態を説明する。
[0046] (実施の形態 1)
本発明の実施の形態 1は、例として、 H. 264 I MPEG -4 AVCに準拠した動き 補償予測演算における 2次元フィルタ処理を扱う。
[0047] なお、本発明は、一般的な 2次元フィルタ演算に適用できるものであり、本形態に限 定されるものではない。
[0048] 本形態が例示する動き補償予測演算では、(4 X 4)個の整数画素精度の画素から なる画像領域を、動きベクトル(1Z2、 1/2)に従って平行移動して、新たな画像領 域を求め、そこに含まれる 1Z2画素精度の画素の画素値を求める。この時、新たな 画像領域に含まれる 1Z2画素精度の画素の画素値は、整数画素精度の画素の画 素値に対して、 6タップの 2次元フィルタ演算を施すことにより算出する。(以下の記述 では、整数画素精度の画素を「整数画素」、 1Z2画素精度の画素を「1Z2画素」と 略称する。 )
図 1は、本発明の実施の形態 1における整数画素と 1Z2画素の配置図である。図 1 において、大きい白丸で示される整数画素は、水平方向に整数画素 FOO、 F01、 FO 2· · 'F08の順に並んでおり、垂直方向に整数画素 FOO、 F10、 F20- · 'F80の順に 並んでいる。
[0049] 今、図 1の実線の矩形で示される画像領域 A ( (4 X 4)個の整数画素)が、動きべク トル(1Z2、 1/2)に従って破線の矩形で示される画像領域 Bに平行移動すると仮 定する。画像領域 Bを規定する画素は、小さい黒丸で示される(4 X 4)個の 1Z2画 素である。これらの黒丸で示される 1Z2画素は、ちょうど整数画素の対角線上に位 置している。したがって、黒丸で示される 1Z2画素の画素値を水平方向フィルタによ り補間するために、小さい白丸で示される 1Z2画素の画素値が必要である。(水平 方向フィルタは、 6タップフィルタであり、補間する画素値の画素の左右に位置する 6 個の隣接画素の画素値を必要とする。)さらに、小さい白丸で示される 1Z2画素の画 素値は、整数画素 F00〜F88の画素値を用いて、垂直方向フィルタにより補間され る。(図 1において、 1Z2画素については、説明に必要なもののみが示されている。) 図 2は、本発明の実施の形態 1における 1Z2画素の配置図である。図 2は、符号を 見やすくするために、小さい白丸の 1Z2画素(1Z2画素 H20〜H58)とそれらの間
にある整数画素の配置を示して 、る。
[0050] 図 3は、本発明の実施の形態 1における 1Z2画素の別の配置図である。図 3は、符 号を見やすくするために、画像領域 Bに位置する小さい黒丸の 1Z2画素 Ha、 Hb、 Hc、 Hd、 He、 Hf、 Hg、 Hh、 Hi、 Hj、 Hk、 Hm、 Hn、 Hp、 Hq、 Hr (以下、 1,2画 素 Ha〜Hrと略記する)のみを示して!/、る。
[0051] 以下に、図 1〜3を参照して、 1Z2画素 Ha〜Hrの画素値を 6タップの 2次元フィル タにより求める過程を説明する。
[0052] 本形態の 2次元フィルタ演算の方法では、最初に、整数画素 F00〜F88に対して 垂直方向フィルタ演算を行い、 1Z2画素 H20〜H58を求める。次に、垂直方向フィ ルタ演算で求めた 1Z2画素 H20〜H58に対して、水平方向フィルタ演算を行い、 1 Z2画素 Ha〜Hrを求める。
[0053] 垂直方向フィルタ演算は、図 1の整数画素 FOO、 F10、 F20 - - .F80を用いて、図 2 の 1Z2画素 H20、 H30、 H40、 H50の画素値の補間を行う。フィルタ演算の式は、
[0054] [数 1] ϋ 1 4 5
[0055] で表される。数式 1において、左辺「Y」は、補間される画素の画素値であり、右辺の 変数「ΧΟ〜Χ5」は、補間される画素の上下 (垂直方向フィルタ演算の場合)、または 左右 (水平方向フィルタ演算の場合)に隣接するそれぞれ 3個の画素の画素値である
[0056] Η264 | MPEG— 4 AVCの動き補償予測の場合、数式 1の右辺の各係数は、 a
= 1、 b=— 5、 c = 20、 d= 20、 e=— 5、 f= lである。した力 Sつて、数式 1は数式 2と 表される。
[0057] [数 2]
Y= XQ- δ X X ^ 2 0 X X 2 + 2 0 X X 3 - 5 X X 4 + X 5
[0058] 例えば、 1Z2画素 Η20の画素値「Υ」は、数式 2を用いて、
変数「ΧΟ」に整数画素 FOOの画素値を代入し、
変数「XI」に整数画素 F10の画素値を代入し、
変数「X2」に整数画素 F20の画素値を代入し、
変数「X3」に整数画素 F30の画素値を代入し、
変数「X4」に整数画素 F40の画素値を代入し、
変数「X5」に整数画素 F50の画素値を代入して、生成される。
[0059] 同様に、変数「XO〜X5」に代入する画素値の整数画素を 1つずつ下方にずらして
、 1Z2画素 H30、 H40、 H50の画素値を生成することができる。
[0060] 上述した垂直方向フィルタ演算を、整数画素列「F00〜F80」、「F01〜F81」 · · ·「
F08〜F88」の画素の画素値に対して、実行することにより、図 2に示す 1Z2画素列
「Η20〜Η50」、「Η21〜Η51」 · · ·「H28〜H58」の画素の画素値が生成される。
[0061] 次に、上で生成された 1Z2画素 H20〜H58の画素値を用いて、水平方向フィルタ 演算を行い、図 3の 1Z2画素 Ha〜Hrの画素値を生成する。フィルタ演算の式は、 数式 1と同様であり、係数値も垂直方向フィルタ演算のものと同様である。
[0062] 例えば、 1Z2画素 Haの画素値「Y」は、数式 2を用いて、
変数「ΧΟ」に 1Z2画素 Η20の画素値を代入し、
変数「XI」に 1Z2画素 H21の画素値を代入し、
変数「Χ2」に 1Z2画素 Η22の画素値を代入し、
変数「Χ3」に 1Z2画素 Η23の画素値を代入し、
変数「Χ4」に 1Z2画素 Η24の画素値を代入し、
変数「Χ5」に 1Z2画素 Η25の画素値を代入して、生成される。
[0063] 同様に、変数「ΧΟ〜Χ5」に代入する画素値の 1Z2画素を 1つずつ右方にずらして
、 1Z2画素 Hb、 Hc、 Hdの画素値を生成することができる。
[0064] 上述した水平方向フィルタ演算を、 1Z2画素行「H20〜H28」、「H30〜H38」、「
H40〜H48」、「H50〜H58」の画素の画素値に対して、実行することにより、図 3に 示す 1Z2画素 Ha〜Hrの画素値が生成される。
[0065] 次に、本発明の 2次元フィルタ演算装置について説明する。
[0066] 図 4は、本発明の実施の形態 1における 2次元フィルタ演算装置のブロック図である 。図 4に示す本形態の 2次元フィルタ演算装置は、画像メモリ 300、ラインメモリ 400、 垂直フィルタ処理部 100、ノ ッファ 500、及び、水平フィルタ処理部 200を備える。垂
直フィルタ処理部 100は、第 1フィルタ処理部に相当し、水平フィルタ処理部 200は、 第 2フィルタ処理部に相当する。
[0067] 本形態の 2次元フィルタ演算装置は、最初に垂直方向フィルタ演算を行い、次に、 水平方向フィルタ演算を行う。勿論、この順序は、逆にしても良い。
[0068] 図 5は、本発明の実施の形態 1における 2次元フィルタ演算方法のフローチャートで ある。図 5に従って、図 4に示す本形態の 2次元フィルタ演算装置の動作の概要を以 下に説明する。
[0069] 図 5のステップ SOで 2次元フィルタ演算処理が開始されると、ステップ S1において、 画像メモリ 300からラインメモリ 400へ、画像データ(整数画素の画素値)を読み込む
[0070] ステップ S2において、垂直フィルタ処理部 100は、ラインメモリ 400から整数画素の 画素値を読み込み、垂直方向フィルタ演算を行って、 1Z2画素の画素値を求める。 この演算により、図 1に示す整数画素列「F00〜F80」、 「F01〜F81」' , '「F08〜F8
8」の画素の画素値から、図 2に示す 1Z2画素列「Η20〜Η50」、「Η21〜Η51」· · ·
「Η28〜Η58」の画素の画素値が生成される。
[0071] ステップ S3において、水平フィルタ処理部 200は、ステップ S2において生成された
1Z2画素 Η20〜Η58の画素値に対して水平方向フィルタ演算を実行して、 1Ζ2画 素 Ha〜Hrの画素値を生成する。
[0072] ステップ S4において、水平フィルタ処理部 200は、生成した 1Z2画素 Ha〜Hrの 画素値を、画像領域 Bを構成する 1Z2画素の画素データとして、画像メモリ 300に格 納し、ステップ S5に移って、処理を終了する。
[0073] 上述した図 5のステップ S1〜ステップ S4までの処理では、ある部分は、互いに重な り合って並列に実行される。以下では、図 4に示す 2次元フィルタ演算装置の動作を さらに詳しく説明する。
[0074] 図 4において、画像メモリ 300は、整数画素の画素値を画像データとして格納して いる。
[0075] ラインメモリ 400は、画像メモリ 300力ら、水平方向 1ライン分の整数画素の画素値 を取り込む。ラインメモリ 400は、この 1ライン分の画素値に含まれている、図 1に示す
整数画素 F00〜F08の画素値を、垂直フィルタ処理部 100に順次送る。ラインメモリ 400は、整数画素 F00〜F08の画素値を送り終えると、次の水平方向 1ライン分の整 数画素の画素値を取り込む。ラインメモリ 400が、この操作を繰り返すことにより、垂直 フィルタ処理部 100には、図 1に示す、整数画素行「F00〜F08」、「F10〜F18」' ' ' 「F80〜F88」の画素の画素値が、順次送られることになる。
[0076] 垂直フィルタ処理部 100は、整数画素列「F00〜F80」、「F01〜F81」 · · ·「F08〜 F88」に対して、垂直方向フィルタ演算を並列に実行する。この処理により、図 2に示 す 1Z2画素行「H20〜H28」の画素の画素値が最初に並列に生成され、バッファ 5 00に出力される。次に、 1 2画素行「1130〜1138」、 1Z2画素行「H40〜H48」、 最後に、 1Z2画素行「H50〜H58」の各画素の画素値が並列に生成され、それぞ れ、バッファ 500に出力される。
[0077] 水平フィルタ処理部 200は、バッファ 500から、 1Z2画素行「H20〜H28」の画素 の画素値を取り込み、水平方向フィルタ演算により、 1Z2画素 Ha、 Hb、 Hc、 Hdの 画素値を生成する。次に、水平フィルタ処理部 200は、 1Z2画素行「H30〜H38」 の画素の画素値を取り込み、 1Z2画素 He、 Hf、 Hg、 Hhの画素値を生成し、 1/2 画素行「H40〜H48」の画素の画素値を取り込み、 1Z2画素 Hi、 Hj、 Hk、 Hmの画 素値を生成し、最後に、 1Z2画素行「H50〜H58」の画素の画素値を取り込み、 1 Z2画素 Hn、 Hp、 Hq、 Hrの画素値を生成する。水平フィルタ処理部 200は、生成 した 1Z2画素 Ha〜Hrの画素値を、順次、画像メモリ 300に出力する。
[0078] 以上の 2次元フィルタ演算により、図 1に示す画像領域 Bの 1Z2画素 Ha〜Hrの画 素値が生成される。
[0079] 次に、本形態の 2次元フィルタ演算装置の垂直フィルタ処理部 100と水平フィルタ 処理部 200の構成と動作につ ヽて述べる。
[0080] 図 6は、本発明の実施の形態 1における垂直フィルタ処理部 100のブロック図であ る。図 6において、 図 4と同様な構成要素については、同一の符号を付すことにより、 説明を省略する。
[0081] 図 6に示す本形態の垂直フィルタ処理部 100は、並列に設置された 9個の第 1フィ ルタモジュール( # 0) 110〜( # 8) 190を備える。
[0082] 第 1フィルタモジュール(# 0) 110は、図 1の整数画素列「F00〜F80」に対して、 垂直方向フィルタ演算を行い、第 1フィルタモジュール(# 1) 120は、整数画素列「F 01〜F81」に対して、垂直方向フィルタ演算を行い、以下同様に、第 1フィルタモジュ ール(# 8) 190は、整数画素列「F08〜F88」に対して、垂直方向フィルタ演算を行
[0083] 図 6に示す 9個の第 1フィルタモジュール(# 0) 110〜(# 8) 190は、いずれも同じ 構造を有しており、以下に、第 1フィルタモジュール(# 0) 110を例として、それらの 構造を説明する。
[0084] 第 1フィルタモジュール(# 0) 110は、縦続接続されたプロセッサエレメント PE10、 PE20、 PE30、 PE40と、これらのプロセッサエレメントの出力を選択するセレクタ 50 とを有している。セレクタ 50は、選択部に相当する。 PE10〜PE40のそれぞれは、ク ロックに合わせて、それぞれの一方の入力端に、ラインメモリ 400から、画素値が入力 される。初段のプロセッサエレメント PE10の他の入力端に係数入力端子 91からフィ ルタ係数が入力される。 PE10に入力されたフィルタ係数は、クロック〖こ合わせて、そ れぞれ後段のプロセッサエレメントに転送される。 PE10〜PE40は、クロックに合わ せて、入力された画素値とフィルタ係数との積和演算を行い、それぞれの結果を、セ レクタ 50に出力する。セレクタ 50は、 PE10〜PE40の出力を順次選択して、ノ ッファ 500に出力する。以上述べた積和演算の詳細は、タイミング図を参照して、後述する
[0085] 図 7は、本発明の実施の形態 1におけるプロセッサエレメント PE10のブロック図であ る。 PE20〜PE40も、図 7に示す PE10のブロック図と同じ構成を有する。 PE10〜P E40は、累積加算部に相当する。
[0086] 図 7において、本形態の PE10は、乗算器 11、加算器 12、フリップフロップ 13、及 び、フリップフロップ 14を有している。係数入力端子 15には、フィルタ係数が入力さ れ (PE10では係数入力端子 91から)、そのフィルタ係数は、フリップフロップ 13を経 由して次のクロック時に係数出力端子 16から後段のプロセッサエレメントに (PE10で は、 PE20に)出力される。画素データ入力端子 17には、ラインメモリ 400から、画素 値が入力され、乗算器 11において、係数入力端子 15から入力されたフィルタ係数と
の積が求められる。乗算器 11の演算結果は、加算器 12において、すでに演算され てフリップフロップ 14に累積されている積和値と加算され、フリップフロップ 14の積和 値を更新する。最終的な積和値、すなわち、 6個の画素値と 6個のフィルタ係数との 積和演算を行った値力 1Z2画素の画素値としてセレクタ 50に出力される。
[0087] 図 8は、本発明の実施の形態 1における 2次元フィルタ演算装置のタイミング図であ る。図 8において、横軸は、クロック(elk)のサイクル数を示し、縦軸は、図 6に示す垂 直フィルタ処理部 100へ入力される画素値とフィルタ係数、垂直フィルタ処理部 100 力 出力される画素値、及び、後述の図 9に示す水平フィルタ処理部 200のへ入力さ れる画素値と水平フィルタ処理部 200から出力される画素値を示している。
[0088] 以下に、図 8を参照して、垂直フィルタ処理部 100の垂直方向フィルタ演算を説明 する。
[0089] クロック 0において、ラインメモリ 400から PE10の画素データ入力端子 inOに画素値 「XO」が入力され、係数入力端子 91から PE10の係数入力端子 inAにフィルタ係数「 a」が入力され、 PE10において以下の演算が実行される。すなわち、乗算器 11にお いて、乗算「a *XO」が実行され、加算器 12において、フリップフロップ 14に累積して おいた積和結果に乗算結果「a *XO」を足し、フリップフロップ 14の積和結果を更新 する。この場合は、フリップフロップ 14にはまだ積和結果は累積されていないため、 乗算結果「a *XO」そのもの力 フリップフロップ 14に保持される。フィルタ係数「a」は 、後段の PE20に転送するために、フリップフロップ 13に保持しておく。
[0090] ここで注意すべきことは、図 6の垂直フィルタ処理部 100では、上述のクロック 0にお ける処理力 第 1フィルタモジュール(# 0) 110〜(# 8) 190において、同時に実行 されていることである。すなわち、図 6のラインメモリ 400からは、図示されていない接 続により、第 1フィルタモジュール( # 1) 120〜( # 8) 190のそれぞれの PE10〜PE4 0にも並列して画素値が送られる。したがって、図 8の画素値「X0〜X8」は、第 1フィ ルタモジュール(# 0) 110では、図 1の整数画素 F00〜F80の画素値を表し、第 1フ ィルタモジュール(# 1) 120では、同じく整数画素 F01〜F81の画素値を表し、以下 同様に、第 1フィルタモジュール(# 8) 190では、整数画素 F08〜F88の画素値を表 す。その結果、クロック 0において、第 1フィルタモジュール(# 0) 110では、 PE10に
乗算結果「a *整数画素 F00の画素値」が保持され、第 1フィルタモジュール(# 1) 1 20では、 PE10に乗算結果「a *整数画素 F01の画素値」が保持され、以下同様に、 第 1フィルタモジュール(# 8) 190では、 PE10に乗算結果「a *整数画素 F08の画 素値」が保持される。
[0091] この時点で、 1Z2画素行「H20〜H28」のそれぞれの画素の画素値を並列に算出 するための 6タップフィルタの最初の 1タップ分の乗算「a *X0」(数式 1の右辺第 1項 )が終了する。
[0092] 次に、クロック 1にお!/、て、ラインメモリ 400から PE10の画素データ入力端子 inOに 画素値「XI」が入力され、係数入力端子 91から PE10の係数入力端子 inAにフィル タ係数「b」が入力され、 PE10において以下の演算が実行される。すなわち、乗算器 11にお 、て、乗算「b * XI」が実行され、続 、て、加算器 12にお!/、て、フリップフロッ プ 14に累積しておいた積和結果「a *X0」に乗算結果「b * XI」(数式 1の右辺第 2 項)を足し、フリップフロップ 14の積和結果を「a *X0+b *Xl」に更新する。また、フ ィルタ係数「b」は、フリップフロップ 13に保持しておく。
[0093] 同時に、クロック 1にお!/、て、ラインメモリ 400から PE20の画素データ入力端子 inl に画素値「XI」が入力され、 PE10のフリップフロップ 13から PE20の係数入力端子 i nBにフィルタ係数「a」が入力され、 PE20において以下の演算が実行される。すなわ ち、乗算器 11において、乗算「a * XI」が実行され、続いて、加算器 12において、フ リップフロップ 14に累積しておいた積和結果に乗算結果「a * XI」を足し、フリップフ ロップ 14の積和結果を更新する。この場合は、フリップフロップ 14にはまだ積和結果 は累積されていないため、乗算結果「a * XI」そのもの力 フリップフロップ 14に保持 される。フィルタ係数「a」は、後段の PE30に転送するために、フリップフロップ 13に 保持しておく。
[0094] クロック 1においても、図 6の垂直フィルタ処理部 100では、上述の処理が、第 1フィ ルタモジュール(# 0) 110〜(# 8) 190において、同時に実行される。すなわち、図 8の画素値「XI」は、第 1フィルタモジュール(# 0) 110では、図 1の整数画素 F10の 画素値を表し、第 1フィルタモジュール(# 1) 120では、同じく整数画素 F11の画素 値を表し、以下同様に、第 1フィルタモジュール(# 8) 190では、整数画素 F18の画
素値を表す。
[0095] 次に、クロック 2において、ラインメモリ 400から PE10の画素データ入力端子 inOに 画素値「X2」が入力され、係数入力端子 91から PE10の係数入力端子 inAにフィル タ係数「c」が入力され、 PE10において以下の演算が実行される。すなわち、乗算器 11において、乗算「c *X2」が実行され、続いて、加算器 12において、フリップフロッ プ 14に累積しておいた積和結果「a *XO + b *Xl」に乗算結果「c *X2」(数式 1の 右辺第 3項)を足し、フリップフロップ 14の積和結果を「a * XO +b * XI + c * X2」に 更新する。また、フィルタ係数「c」は、フリップフロップ 13に保持しておく。
[0096] 同時に、クロック 2において、ラインメモリ 400から PE20の画素データ入力端子 inl に画素値「X2」が入力され、 PE10のフリップフロップ 13から PE20の係数入力端子 i nBにフィルタ係数「b」が入力され、 PE20において以下の演算が実行される。すなわ ち、乗算器 11において、乗算「b *X2」が実行され、続いて、加算器 12において、フ リップフロップ 14に累積してお 、た積和結果「a * XI」に乗算結果「b * X2Jを足し、 フリップフロップ 14の積和結果を「a * XI +b * X2Jに更新する。フィルタ係数「b」は 、後段に転送するために、フリップフロップ 13に保持しておく。
[0097] さらに同時に、クロック 2において、ラインメモリ 400から PE30の画素データ入力端 子 in2に画素値「X2」が入力され、 PE20から PE30の係数入力端子 inCにフィルタ 係数「a」が入力され、 PE30において以下の演算が実行される。すなわち、乗算器 1 1において、乗算「a *X2」が実行され、続いて、加算器 12において、フリップフロッ プ 14に累積しておいた積和結果に乗算結果「a *X2」を足し、フリップフロップ 14の 積和結果を更新する。この場合は、フリップフロップ 14にはまだ積和結果は累積され ていないため、乗算結果「a *X2」そのもの力 フリップフロップ 14に保持される。フィ ルタ係数「a」は、後段の PE40に転送するために、フリップフロップ 13に保持しておく
[0098] クロック 2においても、図 6の垂直フィルタ処理部 100では、上述の処理が、第 1フィ ルタモジュール(# 0) 110〜(# 8) 190において、同時に実行される。すなわち、図 8の画素値「X2」は、第 1フィルタモジュール(# 0) 110では、図 1の整数画素 F20の 画素値を表し、第 1フィルタモジュール(# 1) 120では、同じく整数画素 F21の画素
値を表し、以下同様に、第 1フィルタモジュール(# 8) 190では、整数画素 F28の画 素値を表す。
[0099] 次に、クロック 3において、ラインメモリ 400から PE10の画素データ入力端子 inOに 画素値「X3」が入力され、係数入力端子 91から PE10の係数入力端子 inAにフィル タ係数「d」が入力され、 PE10において以下の演算が実行される。すなわち、乗算器 11において、乗算「d *X3」が実行され、続いて、加算器 12において、フリップフロッ プ 14に累積してお!、た積和結果「a * XO + b * XI + c * X2」に乗算結果「d * X3」( 数式 1の右辺第 4項)を足し、フリップフロップ 14の積和結果を「a *XO+b *Xl + c *X2 + d *X3」に更新する。また、フィルタ係数「d」は、フリップフロップ 13に保持し ておく。
[0100] 同時に、クロック 3において、ラインメモリ 400から PE20の画素データ入力端子 inl に画素値「X3」が入力され、 PE10から PE20の係数入力端子 inBにフィルタ係数「c 」が入力され、 PE20において以下の演算が実行される。すなわち、乗算器 11におい て、乗算「c *X3」が実行され、続いて、加算器 12において、フリップフロップ 14に累 積してぉ 、た積和結果「a * XI +b * X2Jに乗算結果「c * X3Jを足し、フリップフロ ップ 14の積和結果を「a * XI +b * X2 + c * X3」に更新する。フィルタ係数「c」は、 後段に転送するために、フリップフロップ 13に保持しておく。
[0101] さらに同時に、クロック 3において、ラインメモリ 400から PE30の画素データ入力端 子 in2に画素値「X3」が入力され、 PE20から PE30の係数入力端子 inCにフィルタ 係数「b」が入力され、 PE30において以下の演算が実行される。すなわち、乗算器 1 1において、乗算「b *X3」が実行され、続いて、加算器 12において、フリップフロッ プ 14に累積してお!、た積和結果「a * X2Jに乗算結果「b * X3Jを足し、フリップフロ ップ 14の積和結果を「a *X2+b *X3」更新する。フィルタ係数「b」は、後段に転送 するために、フリップフロップ 13に保持しておく。
[0102] さらに同時に、クロック 3において、ラインメモリ 400から PE40の画素データ入力端 子 in3に画素値「X3」が入力され、 PE30から PE40の係数入力端子 inDにフィルタ 係数「a」が入力され、 PE30において以下の演算が実行される。すなわち、乗算器 1 1において、乗算「a *X3」が実行され、続いて、加算器 12において、フリップフロッ
プ 14に累積しておいた積和結果に乗算結果「a*X3」を足し、フリップフロップ 14の 積和結果を更新する。この場合は、フリップフロップ 14にはまだ積和結果は累積され ていないため、乗算結果「a*X2」そのもの力 フリップフロップ 14に保持される。
[0103] クロック 3においても、図 6の垂直フィルタ処理部 100では、上述の処理が、第 1フィ ルタモジュール(#0)110〜(# 8) 190において、同時に実行される。すなわち、図 8の画素値「X3」は、第 1フィルタモジュール(#0)110では、図 1の整数画素 F30の 画素値を表し、第 1フィルタモジュール(# 1) 120では、同じく整数画素 F31の画素 値を表し、以下同様に、第 1フィルタモジュール(#8) 190では、整数画素 F38の画 素値を表す。
[0104] 以下同様な処理を繰り返すと、第 1フィルタモジュール(#0)110〜(# 8) 190の各 々に対して、
クロック 4において、
PE10には、積和結果「a*X0+b*Xl + c*X2 + d*X3 + e*X4」が保持され、 PE20には、積和結果「a * XI + b * X2 + c * X3 + d * X4」が保持され、 PE30には、積和結果「a * X2 + b * X3 + c * X4」が保持され、
PE40には、積和結果「a * X3 + b * X4」が保持される。
[0105] クロック 5において、
PE10には、積和結果「a*X0 + b*Xl + c*X2 + d*X3 + e*X4 + f*X5」が 保持され、
PE20には、積和結果「a*Xl+b*X2 + c*X3 + d*X4 + e*X5」が保持され、 PE30には、積和結果「a * X2 + b * X3 + c * X4 + d * X5」が保持され、 PE40には、積和結果「a * X3 + b * X4 + c * X5」が保持される。
[0106] クロック 5において、 PE10は、数式 1の右辺 6項の演算を終了する。
[0107] クロック 6において、セレクタ 50は、 PE10の出力を選択し、垂直フィルタ処理部 100 のフィルタ出力として画素値「Y0」をバッファ 500に送る。
[0108] クロック 6において、図 8の画素値「Υ0」は、第 1フィルタモジュール(#0) 110では、 図 2の 1Z2画素 Η20の画素値を表し、第 1フィルタモジュール(# 1) 120では、 1/ 2画素 H21の画素値を表し、以下同様に、第 1フィルタモジュール(#8) 190では、 1
Z2画素 H28の画素値を表す。
[0109] このように、クロック 6において、第 1フィノレタモジユーノレ(#0)110〜(# 8) 190にお ける最初の垂直方向フィルタ演算「a*X0 + b*Xl+c*X2 + d*X3 + e*X4 + f
*X5」が終了し、 1Z2画素行「H20〜H28」の各画素の画素値が垂直フィルタ処理 咅 力ら、ノ ッファ 500に送られる。
[0110] 続いて、クロック 7において、第 1フィルタモジュール(#0)110〜(# 8) 190におけ る垂直方向フィルタ演算「a*Xl+b*X2 + c*X3 + d*X4 + e*X5 + f*X6」が 終了し、 1Z2画素行「H30〜H38」の各画素の画素値が垂直フィルタ処理部 100か ら、バッファ 500に送られる。
[0111] さらに、クロック 8において、第 1フィルタモジュール(#0)110〜(# 8) 190におけ る垂直方向フィルタ演算「a*X2+b*X3 + c*X4 + d*X5 + e*X6+f*X7」が 終了し、 1Z2画素行「H40〜H48」の各画素の画素値が垂直フィルタ処理部 100か ら、バッファ 500に送られる。
[0112] 最後に、クロック 9において、第 1フィルタモジュール(#0)110〜(# 8) 190におけ る垂直方向フィルタ演算「a*X3+b*X4 + c*X5 + d*X6 + e*X7+f*X8」が 終了し、 1Z2画素行「H50〜H58」の各画素の画素値が垂直フィルタ処理部 100か ら、バッファ 500に送られる。
[0113] なお、クロック 7以降では、以下に述べる水平方向フィルタ演算が垂直方向フィルタ 演算と並行して実行される。
[0114] 図 9は、本発明の実施の形態 1における水平フィルタ処理部のブロック図である。図
9において、 図 4と同様な構成要素については、同一の符号を付すことにより、説明 を省略する。
[0115] 図 9に示す本形態の水平フィルタ処理部 200は、セレクタ 250、第 2フィルタモジュ 一ノレ(#A) 210、(#B)220、(#C)230、(#D)240、及び、フリップフロップ 260 〜280を備える。第2フィルタモジュール(#八)210〜(#0)240は、同じ構造を有 している。以下に第 2フィルタモジュール(#A) 210の構造を説明する。
[0116] 図 9に示すように、第 2フィノレタモジユーノレ(#A) 210は、カロ算器 211、 212、 213、 217、 218、乗算器 214、 215、 216、及び、フリップフロップ 219を有する。第 2フィ
ルタモジュール(# A) 210は、数式 3で示される、水平方向フィルタ演算を行う。
[0117] [数 3]
F= ( 0+ 5 ) - 5 X ( X , + , ) + 2 0 Xは 2 + J
[0118] 数式 3は、数式 2のように、フィルタ演算が左右対称の係数を有する場合、同じ係数 の項をまとめて表現したものである。
[0119] 図 9において、セレクタ 250は、バッファ 500に出力された垂直方向フィルタ演算結 果力 画素値を選択し、加算器 211には画素値「XO」、「X5」を送り、加算器 212に は、画素値「XI」、 「X4」を送り、カロ算器 213には、画素値「X2」、 「X3」を送る。
[0120] フリップフロップ 260には、フィルタ係数「1」が保持されており、乗算器 214は、フリ ップフロップ 260の出力「 1」と加算器 211の出力「XO +X5」を乗算して、乗算結果「
XO+X5Jを加算器 217に送る。
[0121] フリップフロップ 270には、フィルタ係数「― 5」が保持されており、乗算器 215は、フ リップフロップ 270の出力「— 5」と加算器 212の出力「XI +X4」を乗算して、乗算結 果「(ー5) * ( 1 + 4)」を加算器217に送る。
[0122] フリップフロップ 280には、フィルタ係数「20」が保持されており、乗算器 216は、フリ ップフロップ 280の出力「20」と加算器 213の出力「X2+X3」を乗算して、乗算結果「
20 * (X2+X3)」を加算器 217に送る。
[0123] 加算器 217は、乗算器 214の出力「XO+X5」と乗算器 215の出力「(— 5) * (XI
+X4)」の和を取り、和算結果「(XO+X5)—5 * (Xl +X4)」を出力する。
[0124] カロ算器 218は、加算器 217の出力「(XO+X5)—5 * (XI +X4)」と乗算器 216の 出力「20 * (X2+X3)」の和を取り、和算結果「(XO+X5)— 5 * (Xl +X4) + 20 *
(X2+X3)」を、フリップフロップ 219に出力する。この和算結果は、数式 3の右辺に 等しぐしたがって、水平方向フィルタ演算結果「Y」である。
[0125] フリップフロップ 219は、水平方向フィルタ演算結果「Υ」を出力する。
[0126] 水平フィルタ処理部 200では、第 2フィルタモジュール( # Β) 220、第 2フィルタモジ ユール( # C) 230、第 2フィルタモジュール( # D) 240も、上述した第 2フィルタモジュ ール(#Α) 210と同様の動作を、同時に並列して実行する。
[0127] 次に、水平フィルタ処理部 200の動作を、図 8に示す本形態の 2次元フィルタ演算 装置のタイミング図に従って説明する。
[0128] クロック 6において、垂直フィルタ出力として画素値「YO」、すなわち、 1Z2画素行「
Η20〜Η28」の各画素の画素値が垂直フィルタ処理部 100から、バッファ 500に送ら れている。
[0129] クロック 7において、セレクタ 250は、バッファ 500に格納されている 1Z2画素行「Η
20〜Η28」の各画素の画素値を次のように選択して、第 2フィルタモジュール( # Α)
210〜(# D) 240に送る。
[0130] すなわち、セレクタ 250は、
画素値 X0〜X5として、 1Z2画素 H20〜H25の画素値を選択して第 2フィルタモジ ユール(#A) 210に送り、
画素値 X0〜X5として、 1Z2画素 H21〜H26の画素値を選択して第 2フィルタモジ ユール(# B) 220に送り、
画素値 X0〜X5として、 1Z2画素 H22〜H27の画素値を選択して第 2フィルタモジ ユール(# C) 230に送り、
画素値 X0〜X5として、 1Z2画素 H23〜H28の画素値を選択して第 2フィルタモジ ユール(# D) 240に送る。
[0131] 第 2フィルタモジュール( #A) 210は、入力された画素値とフィルタ係数との積和演 算を行い、画素値 Z0を求め、フリップフロップ 219〖こ送る。
[0132] 次のクロック 8において、第 2フィルタモジュール(#A) 210は、画素値「Z0」を 1/2 画素 Haの画素値として出力する。
[0133] 同様に、クロック 8において、第 2フィルタモジュール(# B) 220は、画素値「Z0」を 1
Z2画素 Hbの画素値として出力し、第 2フィルタモジュール(# C) 230は、画素値「Z
0」を 1Z2画素 Heの画素値として出力し、第 2フィルタモジュール(# D) 240は、画 素値「Z0」を 1Z2画素 Hdの画素値として出力する。
[0134] このように、クロック 8において、水平フィルタ出力「Z0」が求まり、第 2フィルタモジュ ール(#八)210〜(# 0) 240から、 1Z2画素 Ha、 Hb、 Hc、 Hdの画素値がそれぞ れ並列に出力される。
[0135] また、クロック 8において、セレクタ 250は、バッファ 500に格納されている 1Z2画素 行「H30〜H38」の各画素の画素値を選択して、第 2フィルタモジュール(#A) 210 〜(# D) 240に送る。
[0136] クロック 9において、第2フィルタモジュール(#八)210〜(# 0) 240ぉぃて、水平 フィルタ出力「Z1」が求まり、 1Z2画素 He、 Hf、 Hg、 Hhの画素値がそれぞれ並列 に出力される。
[0137] また、クロック 9において、セレクタ 250は、バッファ 500に格納されている 1/2画素 行「H40〜H48」の各画素の画素値を選択して、第 2フィルタモジュール(#A) 210 〜(# D) 240に送る。
[0138] クロック 10において、第2フィルタモジュール(#八)210〜(# 0) 240にぉぃて、水 平フィルタ出力「Z2」が求まり、 1Z2画素 Hi、 Hj、 Hk、 Hmの画素値がそれぞれ並 列に出力される。
[0139] また、クロック 10において、セレクタ 250は、バッファ 500に格納されている 1Z2画 素行「H50〜H58」の各画素の画素値を選択して、第 2フィルタモジュール(#A) 21 0〜(# D) 240に送る。
[0140] クロック 11において、第2フィルタモジュール(#八)210〜(# 0) 240にぉぃて、水 平フィルタ出力「Z3」が求まり、 1Z2画素 Hn、 Hp、 Hq、 Hrの画素値がそれぞれ並 列に出力される。
[0141] 以上説明したように、本形態の 2次元フィルタ演算装置では、垂直フィルタ処理部 1 00と水平フィルタ処理部 200とが、異なる並列処理方式を採用して、図 8に示すタイ ミング図に従った 2次元フィルタ演算を実行する。その結果、本形態の 2次元フィルタ 演算装置は、クロックの 13周期で、整数画素 F00〜F88を用いて、 1Z2画素 Ha〜 Hrを求めることができる。この処理サイクルは、従来の 2次元フィルタ演算装置のそれ に比べ、約 10%以上改善されている。図 8に示す記号「*」のところでは、次の画像 領域 Bに属する 1Z2画素 Ha〜Hrの画素値生成のためのフィルタ演算を実行できる 。したがって、本形態の 2次元フィルタ演算装置は、実効的な処理サイクルをさらに改 善できる。
[0142] 本形態の 2次元フィルタ演算装置では、垂直フィルタ処理部 100は、並列処理方式
として、ループ内パイプライン処理 (すなわち、順次演算処理)を実行し(図 6)、水平 フィルタ処理部 200は、並列処理方式として、ループ内並列処理(すなわち、並列演 算処理)を実行している(図 9)。
[0143] なお、本形態の 2次元フィルタ演算装置は、左右対称の 6タップフィルタを用いたが 、タップフィルタは、本例に限定されるものではない。
[0144] 例えば、水平フィルタ処理部 200が、非対称の 4タップフィルタを用いる場合は、水 平フィルタ処理部 200は、図 9のブロック図において、類似の構成のまま、乗算器と加 算器とフリップフロップをそれぞれ一つ追加すればよい。さらに、水平フィルタ処理部 200は、非対称なタップフィルタ、または、 6タップ以上のタップフィルタに対応するた めに、ループ内並列処理の並列度を増やすこともできる。また、垂直フィルタ処理部 100も同様に、採用するフィルタの構造に従って、 PE10〜PE40の構造を変えること ができる。
[0145] なお、本形態の 2次元フィルタ演算装置において、処理対象の画像データが準拠 する規格が決まっている場合、垂直フィルタ処理部 100と水平フィルタ処理部 200と が備える乗算器を、シフタと加算器に置き換えてもよい。
[0146] また、垂直方向フィルタ演算の後にクリップ処理が必要な場合は、垂直フィルタ処 理部 100の第 1フィルタモジュール ( # 0) 110〜( # 8) 190にお!/、て、 PE10〜PE4 0の各出力端子にクリップ演算回路を挿入すればよい。
[0147] さらに、本形態の 2次元フィルタ演算装置では、垂直フィルタ処理部 100が、第 1フ ィルタモジュール(# 0) 110〜第 1フィルタモジュール(# 8) 190を用いて 9重の並列 処理を行ない、水平フィルタ処理部 200力 第 2フィルタモジュール(# A) 210〜第 2 フィルタモジュール(# D) 240を用いて 4重の並列処理を行っている。し力し、垂直フ ィルタ処理部 100と水平フィルタ処理部 200が実行する並列処理の並列度は、使用 目的に応じて、適宜変更して良い。たとえば、垂直フィルタ処理部 100は、複数の第 1フィルタモジュールを用い、水平フィルタ処理部 200は、 1つの第 2フィルタモジユー ルを用いる構造でも良い。この場合でも、フィルタ処理方向の違いを吸収するための バッファが不要で、使用目的にあった 2次元フィルタ演算装置を実現できる。
[0148] 以上述べたように、本形態の 2次元フィルタ演算装置は、垂直方向フィルタ処理と
水平方向フィルタ処理とを、互いに異なる並列処理方式 (順次演算処理と並列演算 処理)によって実行している。したがって、本形態の 2次元フィルタ演算装置は、従来 技術で必要とされたフィルタ処理方向の違いを吸収するためのバッファを用いること なぐ垂直 ·水平方向のフィルタ処理を連続的に実行できる(本形態のバッファ 500は 、単にタイミング調整のために挿入されたものである)。その結果、本形態の 2次元フ ィルタ演算装置は、 2次元フィルタ演算を高速に実行することができ、さらに、その回 路面積を縮小できる。
[0149] (実施の形態 2)
図 10は、本発明の実施の形態 2における 2次元フィルタ演算装置のブロック図であ る。本形態の 2次元フィルタ演算装置は、画像メモリ 300、ラインメモリ 400、垂直フィ ルタ処理部 640、水平フィルタ処理部 650、第 1セレクタ 610、第 2セレクタ 620、及 び、第 3セレクタ 630を備える。
[0150] 本形態の 2次元フィルタ演算装置は、 2つの動作モードを有する。すなわち、第 1動 作モードの場合は、垂直方向フィルタ演算を先に実行し、水平方向フィルタ演算を次 に実行する。第 2動作モードの場合は、水平方向フィルタ演算を先に実行し、垂直方 向フィルタ演算を次に実行する。すなわち、本形態の 2次元フィルタ演算装置は、動 作モードの切替えにより、垂直方向フィルタ演算と水平方向フィルタ演算の順序を任 意に変更できる。これは、 MPEG— 4 ASP (Advanced Simple Profile)などの ように、必ず水平方向から先にフィルタをかけるという制約をもつ規格にも柔軟に対 応するためである。
[0151] 先ず、第 1動作モードについて説明する。第 1動作モードでは、本形態の 2次元フィ ルタ演算装置は、先に垂直方向フィルタ演算を実行する。第 1セレクタ 610は、ライン メモリ 400の出力を選択し、第 2セレクタ 620は、垂直フィルタ処理部 640の出力を選 択し、第 3セレクタ 630は、水平フィルタ処理部 650の出力を選択する。
[0152] 垂直フィルタ処理部 640と水平フィルタ処理部 650は、それぞれ、本発明の実施の 形態 1で説明した、図 6に示す垂直フィルタ処理部 100と図 9に示す水平フィルタ処 理部 200とを用いることができる。なお、ノ ッファ 500は、セレクタ 250の一部として、 水平フィルタ処理部 650に含まれて!/ヽる。
[0153] この構成により、本形態の 2次元フィルタ演算装置は、先ず垂直方向フィルタ演算 を行い、図 1に示した、 1Z2画素 H20〜H58の画素値を求め、次に、水平方向フィ ルタ演算を行い、図 3に示した 1Z2画素 Ha〜Hrの画素値を求めることができる。本 形態の 2次元フィルタ演算装置の第 1モードでの処理過程は、本発明の実施の形態 1の 2次元フィルタ演算装置における処理過程と同様であり、クロックの 13周期で、整 数画素 F00〜F88を用いて、 1/2画素 Ha〜Hrを求めることができる。
[0154] 次に、第 2動作モードについて説明する。第 2動作モードでは、本形態の 2次元フィ ルタ演算装置は、先に水平方向フィルタ演算を実行する。第 1セレクタ 610は、水平 フィルタ処理部 650の出力を選択し、第 2セレクタ 620は、ラインメモリ 400の出力を 選択し、第 3セレクタ 630は、垂直フィルタ処理部 640の出力を選択する。
[0155] 図 11は、本発明の実施の形態 2における整数画素と 1Z2画素の配置図である。図 11は、第 2動作モードにおける画素値生成の手順を示す説明図である。図 1に示す 本発明の実施の形態 1と同様に、本形態の 2次元フィルタ演算装置は、実線の矩形 で示される画像領域 Aから、動きベクトル(1/2、 1/2)に従って平行移動した、点線 の矩形で示される画像領域 Bを構成する 1Z2画素 Ha〜Hr (符号は、図 3を参照の こと)の画素値を生成する。
[0156] 第 2動作モードの場合、図 11に示すように、水平方向フィルタ演算により、整数画 素 F00〜F88の画素値を用いて、 1Z2画素 H02〜H85の画素値を生成し、次に、 垂直方向フィルタ演算により、 1Z2画素 H02〜H85の画素値を用いて、 1Z2画素 Ha〜Hrの画素値を生成する。
[0157] 図 10の垂直フィルタ処理部 640と水平フィルタ処理部 650は、それぞれ、本発明の 実施の形態 1で説明した、図 6に示す垂直フィルタ処理部 100と図 9に示す水平フィ ルタ処理部 200とを用いることができる。なお、ノ ッファ 500は、なくても良ぐセレクタ 250力 ラインメモリ 400から画素値を並列に入力できれば良い。また、図 6のラインメ モリ 400は、なくてもよく、第 1フィルタモジュール(# 0) 110〜(# 8) 190力 第 1セレ クタ 610を介して、水平フィルタ処理部 200が生成した画素値 Z0〜Z3を、並列に入 力できれば良い。
[0158] 第 2動作モードにお!、て、水平フィルタ処理部 200は、ラインメモリ 400力ら、整数
画素行「F00〜F08」の画素の画素値を読み出し、 1Z2画素 H02〜H05の画素の 画素値を生成する。続いて、水平フィルタ処理部 200は、ラインメモリ 400力ら、整数 画素行「F10〜F18」の画素の画素値を読み出し、 1Z2画素 H12〜H15の画素の 画素値を生成する。以下同様に、水平フィルタ処理部 200は、 1Z2画素の内、図 11 の小さい白丸の 1Z2画素の画素値を、 1Z2画素 H82〜H85まで、各行ごとに 4個 の 1Z2画素の画素値を並列に生成する。
[0159] 水平フィルタ処理部 200が並列に生成した、 1Z2画素行「H02〜H05」「H12〜H 15] · · ·「H82〜H85」の各行の 4個の画素の画素値は、垂直フィルタ処理部 100の 第 1フィルタモジュール( # 0) 110〜( # 3) 130 (図示せず)のそれぞれの PE10〜P E40に、並列に入力される。
[0160] 垂直フィルタ処理部 100の第 1フィルタモジュール(# 0) 110は、図 11に示す、 1/ 2画素列「H02〜H82」の画素の画素値を用いて、 1Z2画素 Ha、 He、 Hi、 Hnの画 素値を生成する。第 1フィルタモジュール(# 1) 120は、 1Z2画素列「H03〜H83」 の画素の画素値を用いて、 1Z2画素 Hb、 Hf、 Hj、 Hpの画素値を生成する。第 1フ ィルタモジュール( # 2) 130 (図示せず)は、 1Z2画素列「H04〜H84」の画素の画 素値を用いて、 1Z2画素 Hc、 Hg、 Hk、 Hqの画素値を生成する。第 1フィルタモジ ユール( # 3) 140 (図示せず)は、 1Z2画素列「H05〜H85」の画素の画素値を用 いて、 1/2画素 Hd、 Hh、 Hm、 Hrの画素値を生成する。なお、第 1フィルタモジュ ール(# 4) (図示せず)〜第 1フィルタモジュール(# 8) 190は、使用しない。
[0161] 以上の処理により、画像領域 Bを規定する 1Z2画素 Ha〜Hrすべての画素値が求 まる。
[0162] 本形態の 2次元フィルタ演算装置の第 2動作モードにおける、処理の流れをタイミン グ図に従って、さらに詳しく説明する。
[0163] 図 12は、本発明の実施の形態 2における 2次元フィルタ演算装置 (第 2動作モード) のタイミング図である。図 6、図 9、図 10、及び、図 11を参照して、図 12のタイミング図 を説明する。
[0164] 第 2動作モードでは、ラインメモリ 400から水平フィルタ処理部 200のセレクタ 250に 画像データが入力され、水平フィルタ処理部 200の出力が垂直フィルタ処理部 100
に入力される。
[0165] クロック 0において、ラインメモリ 400から水平フィルタ処理部 200に画素値「YO」(整 数画素 F00〜F08の画素値)が入力される。すなわち、セレクタ 250を介して、第 2フ ィルタモジュール(# A) 210に整数画素 FOO〜F05の画素値が入力され、第 2フィル タモジュール( # B) 220に整数画素 F01〜F06の画素値が入力され、第 2フィルタモ ジュール( # C) 230に整数画素 F02〜F07の画素値が入力され、第 2フィルタモジュ ール( # D) 240に整数画素 F03〜F08の画素値が入力される。各モジュール( # A 〜# D)では、入力された画素値と、フリップフロップ 260、フリップフロップ 270、フリ ップフロップ 280が出力する各フィルタ係数との積和演算 (数式 3)が実行される。
[0166] クロック 1において、水平フィルタ処理部 200は、水平方向フィルタ処理を行った画 素値「Z0」を出力する。すなわち、第 2フィルタモジュール(# A) 210は、整数画素 F 00〜F05の画素値から生成された 1Z2画素 H02の画素値を出力し、第 2フィルタモ ジュール( # B) 220は、整数画素 F01〜F06の画素値から生成された 1Z2画素 H0 3の画素値を出力し、第 2フィルタモジュール(# C) 230は、整数画素 F02〜F07の 画素値から生成された 1Z2画素 H04の画素値を出力し、第 2フィルタモジュール( # D) 240は、整数画素 F03〜F08の画素値から生成された 1Z2画素 H05の画素値 を出力する。
[0167] 同時にクロック 1において、ラインメモリ 400から水平フィルタ処理部 200に画素値「 Y1J (整数画素 F10〜F18の画素値)が入力される。すなわち、セレクタ 250を介して 、第 2フィルタモジュール(# A) 210に整数画素 F10〜F15の画素値が入力され、第 2フィルタモジュール(# B) 220に整数画素 F11〜F16の画素値が入力され、第 2フ ィルタモジュール(# C) 230に整数画素 F12〜F17の画素値が入力され、第 2フィル タモジュール( # D) 240に整数画素 Fl 3〜F 18の画素値が入力される。各モジユー ル(# A〜 D)では、入力された画素値と、フリップフロップ 260、フリップフロップ 27 0、フリップフロップ 280が出力する各フィルタ係数との積和演算 (数式 3)が実行され る。
[0168] クロック 2において、水平フィルタ処理部 200は、水平方向フィルタ処理を行った画 素値「Z1」を出力する。すなわち、第 2フィルタモジュール(# A) 210は、 1Z2画素 H
12の画素値を出力し、第 2フィルタモジュール(# B) 220は、 1Z2画素 H13の画素 値を出力し、第 2フィルタモジュール(# C) 230は、 1Z2画素 H14の画素値を出力 し、第 2フィルタモジュール(# D) 240は、 1Z2画素 H15の画素値を出力する。
[0169] 同時にクロック 2において、ラインメモリ 400から水平フィルタ処理部 200に画素値「 Y3J (整数画素 F20〜F28の画素値)が入力される。以下同様な処理が、クロック 9ま で、順次実行される。
[0170] 一方、垂直フィルタ処理部 100においては、クロック 2において、垂直フィルタ処理 部 100の PE10の画素データ入力端子 inOに、クロック 1において、水平フィルタ処理 部 200から出力された画素値「Z0」が、画素値「X0」として入力され、係数入力端子 9 1から PE10の係数入力端子 inAに入力されたフィルタ係数「a」との積和演算が実行 される。すなわち、第 1フィルタモジュール(# 0) 110の PE10の画素データ入力端子 inOに、 1Z2画素 H02の画素値が入力され、第 1フィルタモジュール( # 1) 120の P E10の画素データ入力端子 inOに、 1Z2画素 H03の画素値が入力され、第 1フィル タモジュール(# 2) (図示せず)の PE10の画素データ入力端子 inOに、 1Z2画素 H 04の画素値が入力され、第 1フィルタモジュール(# 3) (図示せず)の PE10の画素 データ入力端子 inOに、 1Z2画素 H05の画素値が入力される。なお、第 1フィルタモ ジュール(# 4) (図示せず)〜第 1フィルタモジュール(# 8) 190は、使用しない。
[0171] クロック 3において、水平フィルタ処理部 200から出力された画素値「Z1」力 画素 値「XI」として PE 10に入力され、係数入力端子 91から入力されたフィルタ係数「b」と の積和演算が実行される。同時に、水平フィルタ処理部 200から出力された画素値「 Zl」が、画素値「XI」として PE20に入力され、 PE10から入力されたフィルタ係数「a」 との積和演算が実行される。すなわち、第 1フィルタモジュール(# 0) 110の PE10の 画素データ入力端子 inOと PE20の画素データ入力端子 inlに、 1/2画素 H12の画 素値が入力され、第 1フィルタモジュール(# 1) 120の PE10の画素データ入力端子 i ηθと PE20の画素データ入力端子 inlに、 1Z2画素 H13の画素値が入力され、第 1 フィルタモジュール( # 2) (図示せず)の PE10の画素データ入力端子 inOと PE20の 画素データ入力端子 inlに、 1Z2画素 H14の画素値が入力され、第 1フィルタモジ ユール( # 3) (図示せず)の PE10の画素データ入力端子 inOと PE20の画素データ
入力端子 inlに、 1Z2画素 H15の画素値が入力され、それぞれの PEにおいて積和 演算が実行される。
[0172] 以下、第 1フィルタモジュール(# 0) 110〜第 1フィルタモジュール(# 3) (図示せず )の PE10〜PE40において、同様な積和演算を実行し、クロック 8において、垂直フ ィルタ処理部 100は、画素値「Y0」を出力する。すなわち、第 1フィルタモジュール( #0) 110は、 1Z2画素 Haの画素値を出力し、第 1フィルタモジュール(# 1) 120は 、 1Z2画素 Hbの画素値を出力し、第 1フィルタモジュール(# 2) (図示せず)は、 1 Z2画素 Heの画素値を出力し、第 1フィルタモジュール(# 3) (図示せず)は、 1Z2 画素 Hdの画素値を出力する。
[0173] クロック 9において、垂直フィルタ処理部 100は、画素値「Y1」(1Ζ2画素 He〜: Hh の画素値)を出力する。
[0174] クロック 10において、垂直フィルタ処理部 100は、画素値「Y2」(1Ζ2画素 Hi〜H mの画素値)を出力する。
[0175] クロック 11において、垂直フィルタ処理部 100は、画素値「Y3」(1Ζ2画素 Ηη〜Η rの画素値)を出力する。
[0176] 以上説明したように、本形態の 2次元フィルタ演算装置は、先ず水平方向フィルタ 処理、次に垂直方向フィルタ処理の順に、図 12に示すタイミング図に従った 2次元フ ィルタ演算を実行する。その結果、本形態の 2次元フィルタ演算装置は、第 2動作モ ードにおいても、クロックの 13周期で、整数画素 F00〜F88を用いて、 1Z2画素 Ha 〜Hrを求めることができる。この処理サイクルは、第 1動作モードにおける処理サイク ルと等しい。したがって、本形態の 2次元フィルタ演算装置は、第 1動作モードにおい ても、第 2動作モードにおいても、従来の 2次元フィルタ演算装置に比べ、約 10%以 上改善された処理速度で、 2次元フィルタ処理を実行できる。
[0177] 本形態の 2次元フィルタ演算装置は、第 1動作モードでは、垂直方向フィルタ演算 を先に実行し、水平方向フィルタ演算を次に実行して 2次元フィルタ演算を完遂し、 第 2動作モードでは、水平方向フィルタ演算を先に実行し、垂直方向フィルタ演算を 次に実行して 2次元フィルタ演算を完遂する。したがって、本形態の 2次元フィルタ演 算装置によれば、処理する画像データが準拠する規格に従って動作モードを選択す
ることにより、水平方向フィルタ演算と垂直方向フィルタ演算の順序を容易に変更で きる。
[0178] (実施の形態 3)
図 13は、本発明の実施の形態 3における半導体集積回路のブロック図である。
[0179] 本形態の半導体集積回路 700は、 2次元フィルタ演算部 710、 CPU720、符号ィ匕 Z復号部 730、メモリ 740、及び、機能回路部 750を備え、 2次元フィルタ演算部 71 0は、垂直フィルタ処理部 711と水平フィルタ処理部 712を有する。
[0180] 本形態の 2次元フィルタ演算部 710は、本発明の実施の形態 1で説明した、図 4に 示す 2次元フィルタ演算装置に相当する。すなわち、本形態の垂直フィルタ処理部 7 11は、図 4の垂直フィルタ処理部 100とラインメモリ 400を含んでいる。本形態の水平 フィルタ処理部 712は、図 4の水平フィルタ処理部 200とバッファ 500を含んでいる。
[0181] 2次元フィルタ演算部 710は、被フィルタ画像データに対して、 2次元のフィルタ処 理を行い、新しい画素の画素値を生成する。
[0182] 符号ィ匕 Z復号部 730は、動画像を可変長符号化し、符号化画像データを出力する 。また、符号ィ匕 Z復号部 730は、符号ィ匕画像データを可変長復号し、復号画像を出 力する。
[0183] 符号ィ匕 Z復号部 730は、動画像の符号化における、動き補償予測による予測画像 の生成や、符号化画像データの復号における、動きベクトルに基づく動き補償画像 の生成において、 2次元フィルタ演算部 710を用いて 2次元フィルタ処理を行い、予 測画像や動き補償画像の画素を補間する。
[0184] メモリ 740は、画像メモリ 300に相当し、画像データを格納する。
[0185] 機能回路部 750は、 2次元フィルタ演算部 710と符号化 Z復号部 730の機能以外 の機能を有するその他の回路部である。
[0186] 本形態の 2次元フィルタ演算部 710における 2次元フィルタ処理は、本発明の実施 の形態 1の 2次元フィルタ演算装置による処理と同じであり、メモリ 740に格納されて いる被フィルタ画像データに対して、垂直方向フィルタ処理を行い、次に、水平方向 フィルタ処理 (あるいは、その逆の順序のフィルタ処理)を行い、動き補償予測した画 像データを生成する。 2次元フィルタ演算部 710の動作の詳細は、本発明の実施の
形態 1の 2次元フィルタ演算装置と同じであるから、その説明を省略する。
[0187] CPU720は、符号ィ匕 Z復号部 730が行う符号ィ匕 Z復号処理と機能回路部 750が 行う処理以外の処理を行う。同時に、 CPU720は、半導体集積回路 700全体の制御 を行う。
[0188] 本形態の半導体集積回路 700は、 2次元フィルタ演算部 710が、 2次元フィルタ演 算処理のフィルタ処理方向の違いを吸収するためのバッファを必要としないため、従 来よりも小さい回路面積で実現でき、消費電力も低く抑えることができる。
[0189] なお、本形態の半導体集積回路 700では、符号化 Z復号部 730が符号化 Z復号 処理を行うとした力 CPU720が、符号化 Z復号処理をソフトウェアによって処理して も良い。その場合には、符号ィ匕 Z復号部 730を半導体集積回路 700から割愛できる
[0190] なお、本形態の半導体集積回路 700は、メモリ 740を内部に備えている力 半導体 集積回路 700は、外部に別個に設けられたメモリを利用しても良い。その場合には、 メモリ 740を半導体集積回路 700から割愛できる。
[0191] 本形態の半導体集積回路 700は、例えば、携帯電話、 DVDレコーダ、 HDDレコ ーダ、テレビ受像機など、動画像データを扱う電子機器に好適に応用できる。
[0192] (実施の形態 4)
図 14は、本発明の実施の形態 4における半導体集積回路のブロック図である。図 1
4において、図 13と同様な構成要素については、同一の符号を付すことにより、説明 を省略する。
[0193] 図 14に示す本形態の半導体集積回路 800は、本発明の実施の形態 3の図 13に示 す半導体集積回路 700と、大略同じ構成であるが、 2次元フィルタ演算部 810が異な る。すなわち、本形態の 2次元フィルタ演算部 810は、再構成フィルタ処理部 811と 構成情報レジスタ 812を有する。
[0194] 再構成フィルタ処理部 811は、再構成ロジックで構成されていて、構成情報レジス タ 812に格納されている構成情報に従って、本発明の実施の形態 2の図 10に示す 2 次元フィルタ演算装置に相当する 2次元フィルタ回路を動的に再構成できる。
[0195] 構成情報レジスタ 812に格納されている構成情報は、少なくとも 2つの構成情報、
すなわち、第 1構成情報と第 2構成情報を有する。
[0196] 2次元フィルタ演算部 810は、 2つの動作モード、すなわち、第 1動作モードと第 2動 作モードを有する。
[0197] 第 1動作モードが選択された場合は、再構成フィルタ処理部 811は、構成情報レジ スタ 812に格納されている第 1構成情報に従って再構成され、メモリ 740に格納され ている被フィルタ画像データに対して、垂直方向フィルタ演算を先に実行し、水平方 向フィルタ演算を次に実行するようになる。この結果、再構成フィルタ処理部 811は、 第 1動作モードにおいては、本発明の実施の形態 2における 2次元フィルタ演算装置 の第 1動作モードにおける機能と同じ機能を発揮できる。
[0198] 第 2動作モードが選択された場合は、再構成フィルタ処理部 811は、構成情報レジ スタ 812に格納されている第 2構成情報に従って再構成され、メモリ 740に格納され ている被フィルタ画像データに対して、水平方向フィルタ演算を先に実行し、垂直方 向フィルタ演算を次に実行するようになる。この結果、再構成フィルタ処理部 811は、 第 2動作モードにおいては、本発明の実施の形態 2における 2次元フィルタ演算装置 の第 2動作モードにおける機能と同じ機能を発揮できる。
[0199] 符号ィ匕 Z復号部 730は、動画像の符号化における、動き補償予測による予測画像 の生成や、符号化画像データの復号における、動きベクトルに基づく動き補償画像 の生成において、 2次元フィルタ演算部 810を用いて 2次元フィルタ処理を行い、予 測画像や動き補償画像の画素を補間する。
[0200] CPU720は、符号ィ匕 Z復号部 730が行う符号ィ匕 Z復号処理と機能回路部 750が 行う処理以外の処理を行う。同時に、 CPU720は、半導体集積回路 800全体の制御 を行う。
[0201] 本形態の半導体集積回路 800は、 2次元フィルタ演算部 810が、 2次元フィルタ演 算処理のフィルタ処理方向の違いを吸収するためのバッファを必要としないため、従 来よりも小さい回路面積で実現できる。また、本形態の半導体集積回路 800は、処理 する画像データが準拠する規格に従って動作モードを選択することにより、水平方向 フィルタ処理と垂直方向フィルタ処理の順序を動的に簡単に変更できる。
[0202] なお、構成情報レジスタ 812に格納されている構成情報は、第 1構成情報と第 2構
成情報以外の構成情報を有していても良い。その場合には、 6タップ以外のタップ数 を有するタップフィルタによる 2次元フィルタ演算、あるいは、非対称フィルタ係数を有 するフィルタによる 2次元フィルタ演算などが実現できる。
[0203] なお、本形態の半導体集積回路 800では、符号化 Z復号部 730が符号化 Z復号 処理を行うとした力 CPU720が、符号化 Z復号処理をソフトウェアによって処理して も良い。その場合には、符号ィ匕 Z復号部 730を半導体集積回路 800から割愛できる
[0204] なお、本形態の半導体集積回路 800は、メモリ 740を内部に備えていている力 半 導体集積回路 800は、外部に別個に設けられたメモリを利用しても良い。その場合に は、メモリ 740を半導体集積回路 800から割愛できる。
[0205] 本形態の半導体集積回路 800は、例えば、携帯電話、 DVDレコーダ、 HDDレコ ーダ、テレビ受像機など、動画像データを扱う電子機器に好適に応用できる。
[0206] (実施の形態 5)
図 15は、本発明の実施の形態 5における携帯電話システム 900のブロック図である
[0207] 本形態の携帯電話システム 900は、主要な構成要素として、アンテナ 901、 RF回 路 902、ベースノ ンド LSI905、カメラ 909、アプリケーション LSI910、メモリ 911、 L CDコントローラ 913、メイン LCD914、及び、サブ LCD915を備える。
[0208] 本形態の携帯電話システム 900の動作を以下に概説する。
[0209] RF回路 902は、外部の相手先携帯電話と通信を行!ヽ、画像データをビットストリー ムとして、送信したり、受信したりする。また、 RF回路 902は、インターネットから画像 データを受信する。
[0210] ベースバンド LSI905は、主として通信処理を行う。
[0211] アプリケーション LSI910は、画像データの処理を行う。アプリケーション LSI910に は、本発明の実施の形態 3の半導体集積回路 700、または、実施の形態 4の半導体 集積回路 800を、好適に用いることができる。また、アプリケーション LSI910は、被フ ィルタ画像データを格納するメモリ 911を外部に備えているので、アプリケーション!^ 1910に用いる半導体集積回路 700、または、半導体集積回路 800は、被フィルタ画
像データを格納するメモリをそれらの内部に備えて 、な 、ものでよ!、。
[0212] メイン LCD914は、 LCDコントローラ 913の制御の下、アプリケーション LSI910が 処理した画像データと文字データなどを表示する。サブ LCD915は、 LCDコントロー ラ 913の制御の下、主として文字データを表示する。
[0213] 本形態の携帯電話システム 900では、アンテナ 901経由で RF回路 902が外部の 相手先携帯電話から受信した画像データ、あるいは、インターネットから受信した画 像データは、ベースバンド LSI905でー且処理された後、アプリケーション LSI910で 復号され、復号された復号画像が、メイン LCD914に表示される。また、カメラ 909で 撮影された画像は、アプリケーション LSI910で処理され、メイン LCD914に表示さ れるとともに、アプリケーション LSI910で符号化され、符号化画像データが生成され る。この符号化画像データは、ベースバンド LSI905で通信処理された後、 RF回路 9 02から、アンテナ 901経由で相手先携帯電話に送信される。
[0214] 本形態のアプリケーション LSI910は、本発明の実施の形態 3の半導体集積回路 7 00、または、実施の形態 4の半導体集積回路 800を用いているので、受信画像デー タの復号処理における動き補償の 2次元フィルタ処理、あるいは、カメラで撮影した画 像の符号ィ匕処理における動き予測の 2次元フィルタ処理を、効率よく実行できる。ま た、受信画像データの規格に従って、 2次元フィルタ処理のフィルタ処理方向の順序 を簡単に切替えることができる。さらに、本形態のアプリケーション LSI910は、従来よ りも小さい回路面積で実現できる。この結果、本形態の携帯電話システム 900は、小 型で、柔軟な機能を有する装置として、好適に実現できる。
[0215] 以上、本発明の実施の形態 3の半導体集積回路 700、または、実施の形態 4の半 導体集積回路 800を用いる電子機器の応用例として、携帯電話システム 900を取り 上げたが、半導体集積回路 700または半導体集積回路 800を用いる電子機器には 、携帯電話システム 900の他に、例えば、携帯情報端末 (PDA)、 DVDレコーダ、 H DDレコーダ、テレビ受像機、カーナビゲーシヨンシステム、動画像処理機能つきパソ コンなどがある。これらの電子機器においても、本発明の 2次元フィルタ演算部を搭 載した半導体集積回路 700または半導体集積回路 800を利用することにより、画像 データ処理を効率的に実行できる。
産業上の利用可能性
本発明に係わる 2次元フィルタ演算装置は、例えば、動画像処理装置等、画像圧 縮伸張処理、ループ内フィルタ処理、走査線変換処理、あるいは、画像平滑化処理 を必要とする分野とその応用分野において利用できる。
Claims
[1] 被フィルタ画像データを格納する記憶部と、
前記記憶部に格納されて ヽる被フィルタ画像データに対して、第 1のフィルタ演算 を実行する第 1フィルタ処理部と、
前記第 1フィルタ処理部がフィルタ処理した画像データに対して、第 2のフィルタ演 算を実行する第 2フィルタ処理部とを備え、
前記第 1フィルタ処理部と前記第 2フィルタ処理部とは、垂直方向フィルタ演算と水 平方向フィルタ演算の内の互いに異なるフィルタ演算を実行し、
前記垂直方向フィルタ演算と前記水平方向フィルタ演算とは、互いに異なる並列処 理によって実行される 2次元フィルタ演算装置。
[2] 前記並列処理は、被フィルタ画像データに対して、並列に実行される順次演算処理 と並列に実行される並列演算処理とを含む、請求の範囲第 1項記載の 2次元フィルタ 演算装置。
[3] 前記第 1フィルタ処理部は、複数の第 1フィルタモジュールを有し、
前記第 2フィルタ処理部は、少なくとも 1つの第 2フィルタモジュールを有し、 前記複数の第 1フィルタモジュールは、前記被フィルタ画像データに対して前記第
1のフィルタ演算をそれぞれ実行し、前記第 1フィルタ処理部は、複数の第 1フィルタ 結果を出力し、
前記少なくとも 1つの第 2フィルタモジュールは、前記複数の第 1フィルタ結果の内 の少なくとも一部を入力して、前記第 2のフィルタ演算を実行し、前記第 2フィルタ処 理部は、少なくとも 1つの第 2フィルタ結果を出力する、請求の範囲第 1項記載の 2次 元フィルタ演算装置。
[4] 前記第 1フィルタ処理部は、前記複数の第 1フィルタモジュールを用いて、前記第 1の フィルタ演算を並列に実行し、
前記第 2フィルタ処理部が複数の第 2フィルタモジュールを有する場合は、前記第 2 フィルタ処理部は、前記複数の第 2フィルタモジュールを用いて、前記第 2のフィルタ 演算を並列に実行する、請求の範囲第 3項記載の 2次元フィルタ演算装置。
[5] 前記複数の第 1フィルタモジュールのそれぞれは、
初段の累積加算部と少なくとも 1つの後段の累積加算部が縦続接続された複数の 累積加算部と、
前記複数の累積加算部のそれぞれの出力を順次選択して、出力する選択部とを有 し、
前記初段の累積加算部には、所定のフィルタ係数が、 1処理時間ごとに順次入力さ れ、
前記少なくとも 1つの後段の累積加算部には、それぞれの前段の累積加算部から、 前記所定のフィルタ係数が、 1処理時間ごとに順次転送され、
前記複数の累積加算部のそれぞれには、前記被フィルタ画像データの垂直または 水平に並んだ画素の画素値力 前記記憶部から 1処理時間ごとに順次入力され、 前記複数の累積加算部は、それぞれ、 1処理時間ごとに前記画素値と前記所定の フィルタ係数との積和演算を行って、前記複数の第 1フィルタ結果を出力する、請求 の範囲第 3項記載の 2次元フィルタ演算装置。
[6] 前記少なくとも 1つの第 2フィルタモジュールは、
複数の加算部と、
複数の積算部とを有し、
前記複数の第 1フィルタ結果の内の少なくとも一部と、所定の複数のフィルタ係数と の積和演算を行い、前記少なくとも 1つの第 2フィルタ結果を出力する、請求の範囲 第 3項記載の 2次元フィルタ演算装置。
[7] 前記複数の第 1フィルタモジュールは、ループ内パイプライン処理方式とループ内並 列処理方式の内の一方の処理方式に従って、前記第 1のフィルタ演算を実行し、 前記少なくとも 1つの第 2フィルタモジュールは、前記ループ内パイプライン処理方 式と前記ループ内並列処理方式の内、前記複数の第 1フィルタモジュールが従って いない方の処理方式に従って、前記第 2のフィルタ演算を実行する、請求の範囲第 3 項記載の 2次元フィルタ演算装置。
[8] 前記記憶部から 1ライン分の画素の画素値を取得して一時的に格納し、前記第 1フィ ルタ処理部に出力する、ラインメモリをさらに備える、請求の範囲第 1項記載の 2次元 フィルタ演算装置。
[9] 被フィルタ画像データを格納する記憶部と、
垂直方向フィルタ演算を実行する垂直フィルタ処理部と、
水平方向フィルタ演算を実行する水平フィルタ処理部と、
前記記憶部の出力と前記水平フィルタ処理部の出力の内の一つを選択して、前記 垂直フィルタ処理部へ出力する第 1選択部と、
前記記憶部の出力と前記垂直フィルタ処理部の出力の内の一つを選択して、前記 水平フィルタ処理部へ出力する第 2選択部と、
前記垂直フィルタ処理部の出力と前記水平フィルタ処理部の出力の内の一つを選 択して、 2次元フィルタ演算結果として出力する第 3選択部とを備え、
前記垂直方向フィルタ演算と前記水平方向フィルタ演算とは、互いに異なる並列処 理によって実行され、
第 1動作モードが選択された場合は、前記第 1選択部は、前記記憶部の出力を選 択し、前記第 2選択部は、前記垂直フィルタ処理部の出力を選択し、前記第 3選択部 は、前記水平フィルタ処理部の出力を選択し、前記記憶部に格納されている前記被 フィルタ画像データに対して、前記垂直方向フィルタ演算が実行された後に、前記水 平方向フィルタ演算が実行され、
第 2動作モードが選択された場合は、前記第 1選択部は、前記水平フィルタ処理部 の出力を選択し、前記第 2選択部は、前記記憶部の出力を選択し、前記第 3選択部 は、前記垂直フィルタ処理部の出力を選択し、前記記憶部に格納されている前記被 フィルタ画像データに対して、前記水平方向フィルタ演算が実行された後に、前記垂 直方向フィルタ演算が実行される、 2次元フィルタ演算装置。
[10] 前記並列処理は、被フィルタ画像データに対して、並列に実行される順次演算処理 と並列に実行される並列演算処理とを含む、請求の範囲第 9項記載の 2次元フィルタ 演算装置。
[11] 前記第 1動作モードと前記第 2動作モードの選択は、前記被フィルタ画像データが準 拠する動画像符号ィ匕規格に従って実行される、請求の範囲第 9項記載の 2次元フィ ルタ演算装置。
[12] 被フィルタ画像データを格納する格納ステップと、
前記格納ステップにお 、て格納されて 、る被フィルタ画像データに対して、第 1の フィルタ演算を実行する第 1フィルタ処理ステップと、
前記第 1フィルタ処理ステップにお 、てフィルタ処理した画像データに対して、第 2 のフィルタ演算を実行する第 2フィルタ処理ステップとを含み、
前記第 1フィルタ処理ステップと前記第 2フィルタ処理ステップとは、垂直方向フィル タ演算と水平方向フィルタ演算の内の互いに異なるフィルタ演算を実行し、
前記垂直方向フィルタ演算と前記水平方向フィルタ演算とは、互いに異なる並列処 理によって実行される 2次元フィルタ演算方法。
[13] 前記並列処理は、被フィルタ画像データに対して、並列に実行される順次演算処理 と並列に実行される並列演算処理とを含む、請求の範囲第 12項記載の 2次元フィル タ演算方法。
[14] 前記垂直方向フィルタ演算と前記水平方向フィルタ演算の処理順序を、前記被フィ ルタ画像データが準拠する動画像符号化規格に従って変更する、請求の範囲第 12 項記載の 2次元フィルタ演算方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007551015A JP4824703B2 (ja) | 2005-12-19 | 2006-11-21 | 2次元フィルタ演算装置及び方法 |
US12/097,994 US8260075B2 (en) | 2005-12-19 | 2006-11-21 | Two-dimensional filter arithmetic device and method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005-364373 | 2005-12-19 | ||
JP2005364373 | 2005-12-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007072644A1 true WO2007072644A1 (ja) | 2007-06-28 |
Family
ID=38188427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2006/323214 WO2007072644A1 (ja) | 2005-12-19 | 2006-11-21 | 2次元フィルタ演算装置及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8260075B2 (ja) |
JP (1) | JP4824703B2 (ja) |
WO (1) | WO2007072644A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013145221A1 (ja) * | 2012-03-29 | 2013-10-03 | 富士通株式会社 | パイプライン型プロセッサ |
US8989512B2 (en) | 2011-09-02 | 2015-03-24 | Panasonic Intellectual Property Management Co., Ltd. | Symmetric filter arithmetic apparatus and symmetric filter arithmetic method |
CN109767408A (zh) * | 2018-12-29 | 2019-05-17 | 广州华多网络科技有限公司 | 图像处理方法、装置、存储介质及计算机设备 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011121716A1 (ja) * | 2010-03-30 | 2011-10-06 | 株式会社 東芝 | 動画像符号化方法、復号化方法、符号化装置および復号化装置 |
US9172972B2 (en) * | 2011-01-05 | 2015-10-27 | Qualcomm Incorporated | Low complexity interpolation filtering with adaptive tap size |
US9077313B2 (en) * | 2011-10-14 | 2015-07-07 | Vivante Corporation | Low power and low memory single-pass multi-dimensional digital filtering |
JP6649750B2 (ja) * | 2015-11-16 | 2020-02-19 | キヤノン株式会社 | 画像処理装置、画像処理方法 |
TWI692939B (zh) * | 2018-08-14 | 2020-05-01 | 鈺創科技股份有限公司 | 過濾訊號的數位濾波器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10304184A (ja) * | 1997-05-02 | 1998-11-13 | Fuji Xerox Co Ltd | 画像処理装置および画像処理方法 |
JP2002197454A (ja) * | 2000-12-27 | 2002-07-12 | Sony Corp | 画像変換装置及び方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4602285A (en) * | 1983-04-08 | 1986-07-22 | Ampex Corporation | System and method for transforming and filtering a video image |
JPH04347969A (ja) * | 1991-05-24 | 1992-12-03 | Victor Co Of Japan Ltd | 画素密度変換装置 |
JP3066199B2 (ja) | 1992-10-09 | 2000-07-17 | 浩詔 寺田 | 2次元ディジタルフィルタ |
EP0644684B1 (en) * | 1993-09-17 | 2000-02-02 | Eastman Kodak Company | Digital resampling integrated circuit for fast image resizing applications |
JP2002304624A (ja) | 2001-04-05 | 2002-10-18 | Canon Inc | フィルタ処理装置及び撮像装置 |
US7127121B1 (en) * | 2002-03-20 | 2006-10-24 | Ess Technology, Inc. | Efficient implementation of a noise removal filter |
-
2006
- 2006-11-21 JP JP2007551015A patent/JP4824703B2/ja not_active Expired - Fee Related
- 2006-11-21 US US12/097,994 patent/US8260075B2/en not_active Expired - Fee Related
- 2006-11-21 WO PCT/JP2006/323214 patent/WO2007072644A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10304184A (ja) * | 1997-05-02 | 1998-11-13 | Fuji Xerox Co Ltd | 画像処理装置および画像処理方法 |
JP2002197454A (ja) * | 2000-12-27 | 2002-07-12 | Sony Corp | 画像変換装置及び方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8989512B2 (en) | 2011-09-02 | 2015-03-24 | Panasonic Intellectual Property Management Co., Ltd. | Symmetric filter arithmetic apparatus and symmetric filter arithmetic method |
WO2013145221A1 (ja) * | 2012-03-29 | 2013-10-03 | 富士通株式会社 | パイプライン型プロセッサ |
CN109767408A (zh) * | 2018-12-29 | 2019-05-17 | 广州华多网络科技有限公司 | 图像处理方法、装置、存储介质及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
JP4824703B2 (ja) | 2011-11-30 |
US20100046851A1 (en) | 2010-02-25 |
JPWO2007072644A1 (ja) | 2009-05-28 |
US8260075B2 (en) | 2012-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4824703B2 (ja) | 2次元フィルタ演算装置及び方法 | |
JP5590574B2 (ja) | 多重解像度ビデオ符号化および復号化のための再サンプリングおよび画像サイズ変更の演算 | |
JP4699685B2 (ja) | 信号処理装置及びそれを用いた電子機器 | |
JP2003319398A (ja) | 動画像の符号化方法および復号化方法、これを用いた装置とプログラム | |
JPH07274174A (ja) | デジタル信号デコーダ・システム | |
US7965767B2 (en) | Two-dimensional filtering architecture | |
JPH09102954A (ja) | 1つまたは2つの予測ブロックからブロックの画素値を計算する方法 | |
US9100650B2 (en) | Video encoding method, decoding method, and apparatus | |
JP4536109B2 (ja) | 半導体装置および信号処理方法 | |
JP2007096431A (ja) | 任意の変換比率を有するデジタル・ビデオ・フォーマット下方変換装置及び方法 | |
JP2002058026A (ja) | 画像符号化装置及び方法並びに画像復号装置及び方法 | |
JP2002314998A (ja) | 同時的フォーマット縮小方法、及びエンコード・ビデオ信号のデコード方法 | |
JP4516051B2 (ja) | フィルタ処理装置、乗算器及び動き補償処理装置 | |
JPH08329047A (ja) | 離散コサイン変換回路,離散コサイン逆変換回路,mpegビデオエンコーダ,mpegビデオデコーダ | |
US20060291743A1 (en) | Configurable motion compensation unit | |
WO2005041554A2 (en) | Lifting-based implementations of orthonormal spatio-temporal transformations | |
JP2021177599A (ja) | 画像符号化装置及びそのプログラム | |
TWI382768B (zh) | 具有執行重疊濾波以及核心轉換的運算方法及其裝置 | |
Hattori et al. | A high-throughput pipelined architecture for JPEG XR encoding | |
JP2013093668A (ja) | 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラムおよび動画像復号プログラム | |
JPH0622291A (ja) | 解像度変換可能な復号方法と装置 | |
JP5655100B2 (ja) | 画像音声信号処理装置及びそれを用いた電子機器 | |
JP2023065387A (ja) | マルチコンポーネント画像またはビデオ符号化のコンセプト | |
Khan | Low Complexity Pipelined Architecture for Real-Time Generic Video Scaling | |
Deng et al. | An efficient VLSI architecture of the sample interpolation for MPEG-4 advanced simple profile |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2007551015 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 06833060 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 12097994 Country of ref document: US |