WO2012077695A1 - 画像処理装置、画像処理方法、およびプログラム - Google Patents

画像処理装置、画像処理方法、およびプログラム Download PDF

Info

Publication number
WO2012077695A1
WO2012077695A1 PCT/JP2011/078235 JP2011078235W WO2012077695A1 WO 2012077695 A1 WO2012077695 A1 WO 2012077695A1 JP 2011078235 W JP2011078235 W JP 2011078235W WO 2012077695 A1 WO2012077695 A1 WO 2012077695A1
Authority
WO
WIPO (PCT)
Prior art keywords
pixel
pixels
prediction
unit
generation
Prior art date
Application number
PCT/JP2011/078235
Other languages
English (en)
French (fr)
Inventor
健治 近藤
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to KR20137014025A priority Critical patent/KR20140029363A/ko
Priority to US13/881,595 priority patent/US20130216150A1/en
Priority to CN2011800578887A priority patent/CN103238330A/zh
Priority to EP11846167.2A priority patent/EP2651135A1/en
Publication of WO2012077695A1 publication Critical patent/WO2012077695A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Definitions

  • the present technology relates to an image processing device, an image processing method, and a program, and in particular, an image processing device capable of reducing the amount of memory bandwidth used when performing fractional motion compensation processing during inter prediction,
  • the present invention relates to an image processing method and a program.
  • H. 264 / MPEG Moving Picture Experts Group
  • AVC Part 10 Advanced Video Coding
  • inter prediction that focuses on the correlation between frames or fields is performed.
  • motion compensation processing is performed using a part of an already stored referenceable image, and a predicted image is generated.
  • a pixel at a virtual fractional position called Sub pel is set between adjacent pixels of a reference image, and the Sub pel is generated (hereinafter referred to as interpolation). ) Is additionally performed (see, for example, Patent Document 1). That is, in the motion compensation process with fractional accuracy, the minimum resolution of the motion vector is a fractional number of pixels, and therefore interpolation is performed to generate a pixel at a fractional position.
  • FIR Finite Impulse ⁇ ⁇ ⁇ ⁇ ⁇ Response Filter
  • IF Interpolation filter
  • a 6-tap FIR filter is used for the interpolation of the Sub-pel at the 1/2 pixel position.
  • the Sub pel at the 1/4 pixel position is generated by performing bi-linear processing using the Sub pel at the adjacent 1/2 pixel position or the pixel at the integer position.
  • FIG. 1 is a diagram showing pixels used for generating Sub-pels a to o in conventional interpolation.
  • a square in which no alphabet is described represents a pixel at an integer position
  • a square in which an alphabet is described represents a sub-pel of the alphabet.
  • Sub pel b at the 1/2 pixel position in Fig. 1 uses 6 pixels at integer positions represented by squares with diagonal lines in the same horizontal direction as Sub pel b by a 6-tap FIR filter. Generated.
  • Sub pel h at 1/2 pixel position is generated by 6-tap FIR filter using 6 pixels at integer positions represented by diagonal lines with the same vertical direction as Sub pel h. Is done.
  • Sub pel j at the 1/2 pixel position is generated by a 6-tap FIR filter using 6 ⁇ 6 pixels represented by hatched squares in units of 6 pixels. Then, the pixels a, c to g, i, and k to o at the 1/4 pixel position are generated using the pixels b, h, j on both sides or the pixels at integer positions represented by hatched squares. Is done.
  • This technology has been made in view of such a situation, and is intended to reduce the amount of memory bandwidth used when performing motion compensation processing with fractional accuracy during inter prediction.
  • An image processing apparatus includes a pixel reading unit that reads a predetermined pixel from a reference image in inter prediction, and a fractional position of the reference image using the predetermined pixel read by the pixel reading unit.
  • a calculation unit that calculates a pixel of the prediction image in the inter prediction, and the pixel reading unit is configured such that the number of the predetermined pixels corresponding to a pixel outside the prediction image is within the prediction image.
  • the predetermined pixels are read out so as to be smaller than the number of the predetermined pixels corresponding to the pixels.
  • the image processing method and program according to one aspect of the present technology correspond to the image processing apparatus according to one aspect of the present technology.
  • a predetermined pixel is read out from a reference image in inter prediction, and a pixel in a fractional position of the reference image is used as a prediction image in the inter prediction using the read out predetermined pixel. Calculated as a pixel.
  • the predetermined pixels are read out such that the number of the predetermined pixels corresponding to the pixels outside the predicted image is smaller than the number of the predetermined pixels corresponding to the pixels inside the predicted image.
  • FIG. 50 is a flowchart for explaining details of a reading process in FIG. 49. It is a block diagram which shows the 6th structural example of the inter estimation part of FIG.
  • FIG. 53 is a diagram showing a first example of reference pixel ranges in the inter prediction unit shown in FIG. 52.
  • FIG. 53 is a diagram illustrating a second example of reference pixel ranges in the inter prediction unit shown in FIG. 52.
  • FIG. 56 is a flowchart for explaining details of a reading process of FIG. 55.
  • FIG. FIG. 53 is a diagram illustrating a third example of reference pixel ranges in the inter prediction unit shown in FIG. 52.
  • FIG. 53 is a diagram illustrating a fourth example of reference pixel ranges in the inter prediction unit shown in FIG. 52.
  • FIG. 53 is a diagram illustrating a fifth example of the reference pixel range in the inter prediction unit shown in FIG. 52.
  • It is a block diagram which shows the 7th structural example of the inter estimation part of FIG. It is a 1st flowchart explaining the detail of the 7th example of the inter prediction process. It is a 2nd flowchart explaining the detail of the 7th example of the inter prediction process. It is a block diagram which shows the 8th structural example of the inter estimation part of FIG. FIG.
  • FIG. 65 is a diagram showing a first example of reference pixels in the inter prediction unit shown in FIG. 64. It is a 1st flowchart explaining the detail of the 8th example of the inter prediction process. It is a 2nd flowchart explaining the detail of the 8th example of the inter prediction process.
  • FIG. 65 is a diagram showing a second example of reference pixels in the inter prediction unit shown in FIG. 64.
  • FIG. 65 is a diagram illustrating a third example of reference pixels in the inter prediction unit shown in FIG. 64.
  • FIG. 65 is a diagram illustrating a fourth example of reference pixels in the inter prediction unit shown in FIG. 64. It is a block diagram which shows the 9th structural example of the inter estimation part of FIG.
  • FIG. 78 is a diagram illustrating an example of reference pixels in the inter prediction unit illustrated in FIG. 77. It is a figure which shows the example of arrangement
  • FIG. 84 is a block diagram illustrating a configuration example of a luminance inter prediction unit in FIG. 83.
  • FIG. 89 is a diagram showing an example of the number of generation pixels stored in the LUT of FIG. 88.
  • FIG. 89 is a diagram showing an example of the number of generation pixels stored in the LUT of FIG. 88. It is a 1st flowchart explaining the inter prediction process for colors. It is a 2nd flowchart explaining the inter prediction process for colors.
  • FIG. 3 is a block diagram illustrating a configuration example of an embodiment of an encoding device as an image processing device to which the present technology is applied.
  • the encoding apparatus 10 in FIG. Compress / encode with 264 / AVC format.
  • the A / D conversion unit 11 of the encoding device 10 performs A / D conversion on an image in frame units input as an input signal, and outputs and stores the image in the screen rearrangement buffer 12.
  • the screen rearrangement buffer 12 rearranges the stored frame-by-frame images in the order for encoding according to the GOP (Group of Picture) structure, the arithmetic unit 13, the intra prediction unit 23, and The result is output to the motion prediction unit 25.
  • GOP Group of Picture
  • the calculation unit 13 functions as a difference calculation unit, and calculates the difference between the predicted image supplied from the selection unit 26 and the encoding target image output from the screen rearrangement buffer 12. Specifically, the calculation unit 13 subtracts the predicted image supplied from the selection unit 26 from the encoding target image output from the screen rearrangement buffer 12. The calculation unit 13 outputs an image obtained as a result of the subtraction to the orthogonal transformation unit 14 as residual information. When the predicted image is not supplied from the selection unit 26, the calculation unit 13 outputs the image read from the screen rearrangement buffer 12 to the orthogonal transform unit 14 as residual information as it is.
  • the orthogonal transform unit 14 performs orthogonal transform such as discrete cosine transform and Karhunen-Loeve transform on the residual information from the operation unit 13 and supplies the resulting coefficient to the quantization unit 15.
  • the quantization unit 15 quantizes the coefficient supplied from the orthogonal transform unit 14.
  • the quantized coefficient is input to the lossless encoding unit 16.
  • the lossless encoding unit 16 acquires information indicating the optimal intra prediction mode (hereinafter referred to as intra prediction mode information) from the intra prediction unit 23, information indicating the optimal inter prediction mode (hereinafter referred to as inter prediction mode information), motion A vector or the like is acquired from the inter prediction unit 24.
  • intra prediction mode information information indicating the optimal intra prediction mode
  • inter prediction mode information information indicating the optimal inter prediction mode
  • motion A vector or the like is acquired from the inter prediction unit 24.
  • the lossless encoding unit 16 performs variable length encoding (for example, CAVLC (Context-Adaptive Variable Length Coding)), arithmetic encoding (for example, CABAC) on the quantized coefficients supplied from the quantization unit 15. (Context-Adaptive
  • the lossless encoding unit 16 losslessly encodes intra prediction mode information or inter prediction mode information, a motion vector, and the like, and uses the resulting information as header information added to the compressed image.
  • the lossless encoding unit 16 supplies the compressed image to which the header information obtained as a result of the lossless encoding is added to the accumulation buffer 17 as image compression information, and accumulates it.
  • the accumulation buffer 17 temporarily stores the image compression information supplied from the lossless encoding unit 16 and outputs it to, for example, a recording device or a transmission path (not shown) in the subsequent stage.
  • the quantized coefficient output from the quantization unit 15 is also input to the inverse quantization unit 18, subjected to inverse quantization, and then supplied to the inverse orthogonal transform unit 19.
  • the inverse orthogonal transform unit 19 performs inverse orthogonal transform such as inverse discrete cosine transform and inverse Karhunen-Loeve transform on the coefficients supplied from the inverse quantization unit 18, and adds the residual information obtained as a result to the adder 20. To supply.
  • inverse orthogonal transform such as inverse discrete cosine transform and inverse Karhunen-Loeve transform
  • the addition unit 20 functions as an addition calculation unit, adds the residual information as a decoding target image supplied from the inverse orthogonal transform unit 19 and the prediction image supplied from the selection unit 26, and decodes locally. Get the image.
  • the addition part 20 makes the residual information supplied from the inverse orthogonal transformation part 19 the image decoded locally.
  • the adding unit 20 supplies the locally decoded image to the deblocking filter 21 and also supplies the image to the intra prediction unit 23 as a reference image.
  • the deblocking filter 21 removes block distortion by filtering the locally decoded image supplied from the adding unit 20.
  • the deblocking filter 21 supplies the image obtained as a result to the frame memory 22 and accumulates it.
  • the image stored in the frame memory 22 is output to the inter prediction unit 24 and the motion prediction unit 25 as a reference image.
  • the intra prediction unit 23 performs intra prediction of all candidate intra prediction modes based on the image read from the screen rearrangement buffer 12 and the reference image supplied from the addition unit 20, and obtains the predicted image. Generate.
  • the intra prediction unit 23 calculates cost function values (details will be described later) for all candidate intra prediction modes. Then, the intra prediction unit 23 determines the intra prediction mode that minimizes the cost function value as the optimal intra prediction mode. The intra prediction unit 23 supplies the prediction image generated in the optimal intra prediction mode and the corresponding cost function value to the selection unit 26. The intra prediction unit 23 supplies the intra prediction mode information to the lossless encoding unit 16 when the selection unit 26 is notified of selection of a predicted image generated in the optimal intra prediction mode.
  • the cost function value is also called RD (Rate Distortion) cost. It is calculated based on a technique of either High Complexity mode or Low Complexity mode as defined by JM (Joint Model) which is reference software in the H.264 / AVC format.
  • D is the difference (distortion) between the original image and the decoded image
  • R is the amount of generated code including up to the coefficient of orthogonal transform
  • is the Lagrange multiplier given as a function of the quantization parameter QP.
  • D is the difference (distortion) between the original image and the decoded image
  • Header_Bit is the header bit for the prediction mode
  • QPtoQuant is a function given as a function of the quantization parameter QP.
  • the High Complexity mode is employed as a cost function value calculation method.
  • the inter prediction unit 24 reads the reference image from the frame memory 22 based on the inter prediction mode information and the motion vector supplied from the motion prediction unit 25.
  • the inter prediction unit 24 performs inter prediction processing based on the motion vector and the reference image read from the frame memory 22. Specifically, the inter prediction unit 24 performs fractional-precision motion compensation processing by interpolating the reference image based on the motion vector.
  • the inter prediction unit 24 supplies the prediction image generated as a result and the cost function value supplied from the motion prediction unit 25 to the selection unit 26.
  • the inter prediction unit 24 outputs inter prediction mode information, a corresponding motion vector, and the like to the lossless encoding unit 16.
  • the motion prediction unit 25 performs motion prediction processing for all candidate inter prediction modes based on the image supplied from the screen rearrangement buffer 12 and the reference image supplied from the frame memory 22, and has fractional accuracy. Generate motion vectors. Specifically, the motion prediction unit 25 performs interpolation on the reference image in the same manner as the inter prediction unit 24 for each inter prediction mode. Then, the motion prediction unit 25 performs matching between the interpolated reference image and the image supplied from the screen rearrangement buffer 12 for each inter prediction mode, and generates a fractional precision motion vector. In the present embodiment, it is assumed that Sub pel at a 1/2 pixel position is generated by interpolation, and the accuracy of the motion vector is 1/2 pixel accuracy.
  • the motion prediction unit 25 calculates cost function values for all candidate inter prediction modes, and determines the inter prediction mode that minimizes the cost function value as the optimal inter prediction mode. Then, the motion prediction unit 25 supplies the inter prediction mode information, the corresponding motion vector, and the cost function value to the inter prediction unit 24.
  • the inter prediction mode is information indicating the size, prediction direction, and reference index of a block to be subjected to inter prediction.
  • forward prediction L0 prediction
  • a reference image whose display time is later than the image targeted for inter prediction
  • backward prediction L1 prediction
  • Bi-prediction bi-directional prediction
  • the reference index is a number for specifying a reference image. For example, the reference index of an image closer to an image to be subjected to inter prediction has a smaller number.
  • the selection unit 26 determines one of the optimal intra prediction mode and the optimal inter prediction mode as the optimal prediction mode based on the cost function values supplied from the intra prediction unit 23 and the inter prediction unit 24. Then, the selection unit 26 supplies the prediction image in the optimal prediction mode to the calculation unit 13 and the addition unit 20. In addition, the selection unit 26 notifies the intra prediction unit 23 or the inter prediction unit 24 of selection of the prediction image in the optimal prediction mode.
  • the rate control unit 27 controls the quantization operation rate of the quantization unit 15 based on the image compression information stored in the storage buffer 17 so that overflow or underflow does not occur.
  • FIG. 4 is a block diagram illustrating a first configuration example of the inter prediction unit 24 of FIG.
  • FIG. 4 for convenience of explanation, only blocks that perform inter prediction processing of the inter prediction unit 24 are illustrated, and blocks that output cost function values, inter prediction mode information, motion vectors, and the like are omitted.
  • the inter prediction unit 24 includes a reference image reading unit 41, a pixel sorting unit 42, a 2-tap FIR filter 43, a 4-tap FIR filter 44, a 6-tap FIR filter 45, a 2-tap filter coefficient memory 46, and a 4-tap filter coefficient.
  • the memory 47, 6-tap filter coefficient memory 48, pixel selection unit 49, and intermediate result memory 50 are configured.
  • the reference image reading unit 41 of the inter prediction unit 24 is based on the reference index and the prediction direction in the inter prediction mode information supplied from the motion prediction unit 25 of FIG. Identify the reference image. Based on the block size and the integer value of the motion vector in the inter prediction mode information, the reference image reading unit 41 extracts a reference image pixel (hereinafter referred to as a reference pixel) used for generating a predicted image from the frame memory 22. Read and hold temporarily.
  • a reference image pixel hereinafter referred to as a reference pixel
  • the reference image reading unit 41 functions as a pixel reading unit. For each pixel of the predicted image (hereinafter referred to as a predicted pixel), the reference image reading unit 41 reads a reference pixel that is used to generate the predicted pixel among the temporarily stored reference pixels. At this time, the reference image reading unit 41 reads the reference pixels so that the number of reference pixels used for generating the outer predicted pixel is smaller than the number of reference pixels used for generating the inner predicted pixel.
  • the number of reference pixels used for generating the prediction pixel is 2, 4, or 6.
  • the reference image reading unit 41 supplies the read reference pixels to the pixel sorting unit 42.
  • the pixel distribution unit 42 uses the reference pixel supplied from the reference image reading unit 41 as a generation pixel. Further, the pixel distribution unit 42 reads out Sub pel corresponding to the generation target prediction pixel from the intermediate result memory 50 as a generation pixel based on the fractional value of the motion vector supplied from the motion prediction unit 25. At this time, the pixel sorting unit 42 reads Sub pels so that the number of Sub pels used for generating the outer predicted pixels is smaller than the number of Sub pels used for generating the inner predicted pixels.
  • the number of Sub pels used for generating the prediction pixel is either 2, 4 or 6.
  • the pixel sorting unit 42 supplies the generation pixels to the 2-tap FIR filter 43, the 4-tap FIR filter 44, or the 6-tap FIR filter 45 according to the number of generation pixels. Specifically, when the number of generation pixels is 2, the pixel distribution unit 42 supplies the generation pixels to the 2-tap FIR filter 43, and when the number of generation pixels is 4, Pixels are supplied to a 4-tap FIR filter 44. Further, when the number of generation pixels is 6, the pixel distribution unit 42 supplies the generation pixels to the 6-tap FIR filter 45.
  • the 2-tap FIR filter 43 functions as a calculation unit, and performs calculation using the two generation pixels supplied from the pixel distribution unit 42 and the filter coefficient supplied from the 2-tap filter coefficient memory 46.
  • the 2-tap FIR filter 43 supplies one pixel obtained as a result to the pixel selection unit 49.
  • the 4-tap FIR filter 44 functions as a calculation unit, and performs calculation using the four generation pixels supplied from the pixel distribution unit 42 and the filter coefficients supplied from the 4-tap filter coefficient memory 47.
  • the 4-tap FIR filter 44 supplies one pixel obtained as a result to the pixel selection unit 49.
  • the 6-tap FIR filter 45 functions as a calculation unit, and performs calculation using the six generation pixels supplied from the pixel distribution unit 42 and the filter coefficients supplied from the 6-tap filter coefficient memory 48.
  • the 6-tap FIR filter 45 supplies one pixel obtained as a result to the pixel selection unit 49.
  • the 2-tap filter coefficient memory 46 functions as a storage unit and stores filter coefficients for the 2-tap FIR filter 43 in association with the fractional value of the motion vector. Based on the fractional value of the motion vector supplied from the motion prediction unit 25, the 2-tap filter coefficient memory 46 supplies the filter coefficient stored in association with the fractional value to the 2-tap FIR filter 43.
  • the 4-tap filter coefficient memory 47 functions as a storage unit and stores filter coefficients for the 4-tap FIR filter 44 in association with the fractional value of the motion vector.
  • the 4-tap filter coefficient memory 47 supplies the filter coefficient stored in association with the fractional value to the 4-tap FIR filter 44 based on the fractional value of the motion vector supplied from the motion prediction unit 25.
  • the 6-tap filter coefficient memory 48 functions as a storage unit and stores filter coefficients for the 6-tap FIR filter 45 in association with fractional values of motion vectors.
  • the 6-tap filter coefficient memory 48 supplies the filter coefficient stored in association with the fractional value to the 6-tap FIR filter 45 based on the fractional value of the motion vector supplied from the motion prediction unit 25.
  • the pixel selection unit 49 uses the pixel supplied from the 2-tap FIR filter 43, 4-tap FIR filter 44, or 6-tap FIR filter 45 as a predicted pixel.
  • the data is output to the selection unit 26 in FIG. 3 or supplied to the intermediate result memory 50.
  • the pixel selection unit 49 starts from the 2-tap FIR filter 43, the 4-tap FIR filter 44, or the 6-tap FIR filter 45.
  • the supplied pixel is supplied to the selection unit 26 as a predicted pixel.
  • the pixel selection unit 49 supplies pixels supplied from the 2-tap FIR filter 43, the 4-tap FIR filter 44, or the 6-tap FIR filter 45. Sub pel is supplied to the intermediate result memory 50 and held.
  • the calculation is performed again using the Sub pel held in the intermediate result memory 50.
  • the pixel selection unit 49 outputs Sub pel obtained as a result to the selection unit 26 as a predicted pixel.
  • the intermediate result memory 50 holds the Sub pel supplied from the pixel selection unit 49.
  • FIG. 5 shows that when the size of the block of inter prediction is 8 ⁇ 8 pixels, the horizontal positions are 8 pixels whose horizontal positions are 1/2 pixel positions and whose vertical positions are integer positions. It is a figure which shows the example of the reference pixel used for the production
  • a square with a number represents a prediction pixel
  • a square without a number represents a reference pixel.
  • the squares with polka dots represent reference pixels within the size range of the inter prediction block among the reference pixels used to generate the prediction pixels, and the squares with diagonal lines indicate the inter predictions. Reference pixels in a range exceeding the block size range are shown.
  • the outermost prediction pixel is generated using two reference pixels, and the prediction pixel one inner side than the prediction pixel is generated using four reference pixels, and the inner side than the prediction pixel.
  • a predicted pixel including the innermost predicted pixel is generated using six reference pixels.
  • the outermost number 1 and number 8 are assigned among the eight prediction pixels arranged in the horizontal direction, the horizontal position being a 1/2 pixel position and the vertical position being an integer position.
  • the predicted pixels represented by the squares are generated using a total of two reference pixels, one on each side of the predicted pixels. That is, the position on the reference image of the prediction pixel represented by the square numbered 8 is the size of the inter prediction block in the range (reference block) of all reference pixels used for generating each prediction pixel. The position of the boundary between the range and the range of the block size of the inter prediction.
  • a prediction pixel represented by a square numbered one by one inside a prediction pixel represented by a square numbered 1 and a number 7 one inner side from a prediction pixel represented by a square numbered 8 The predicted pixels represented by the attached squares are generated using a total of four reference pixels located two on the left and right sides of the predicted pixels. That is, for the prediction pixel represented by the square numbered 7, the rightmost reference pixel represented by the hatched square used for the generation of the prediction pixel represented by the numbered square 8 is used. .
  • the prediction pixel represented by the square numbered 2 and the prediction pixel represented by the square numbered 3 to 6 inside the prediction pixel represented by the square numbered 7 are 3 on the left and right sides of the prediction pixel. It is generated using a total of six reference pixels located one by one.
  • FIG. 6 is a diagram illustrating an example of all reference pixels used for generating a prediction pixel at an arbitrary fractional position when the size of the inter prediction block is 8 ⁇ 8 pixels.
  • a square represents a reference pixel.
  • a square with the finest polka dots represents a reference pixel in which the number of reference pixels used for generating prediction pixels on the right, right below, and lower right is two.
  • the square with the second finest polka dots represents a reference pixel in which the number of reference pixels used to generate prediction pixels on the right, directly below, and on the lower right is four.
  • a square with the third finest polka dots represents a reference pixel having six reference pixels used for generating predicted pixels on the right, right below, and right below.
  • the hatched square represents a reference pixel in a range exceeding the size range of the inter prediction block among all the reference pixels used for generating the prediction pixel.
  • the outermost prediction pixel is generated using two reference pixels, and the prediction pixel one inner side from the prediction pixel uses four reference pixels.
  • a prediction pixel that is generated and includes the innermost prediction pixel inside the prediction pixel is generated using six reference pixels.
  • two reference pixels lined up in the horizontal direction surrounded by a broken line in FIG. 6 are used to generate a prediction pixel adjacent to the right side of the lower right reference pixel.
  • two reference pixels arranged in the vertical direction surrounded by a broken line in FIG. 6 are used to generate a prediction pixel immediately below the lower right reference pixel.
  • the reference image reading unit 41 may read the reference pixels in the range of 9 ⁇ 9 pixels from the frame memory 22.
  • the encoding apparatus 10 reduces the number of reference pixels used for generating the outer predicted pixel as compared with the number of reference pixels used for generating the inner predicted pixel, and is necessary for inter prediction.
  • the number of such reference pixels is reduced compared to the conventional case shown in FIG. As a result, the amount of memory bandwidth used by the frame memory 22 can be reduced.
  • FIGS. 7 to 15 show the inter prediction block sizes of 32 ⁇ 32 pixels, 16 ⁇ 32 pixels, 32 ⁇ 16 pixels, 16 ⁇ 16 pixels, 8 ⁇ 16 pixels, 16 ⁇ 8 pixels, and 4 ⁇ 8 pixels, respectively.
  • 8 ⁇ 4 pixels, and 4 ⁇ 4 pixels are diagrams illustrating examples of all reference pixels used for generating a predicted pixel at an arbitrary fractional position.
  • the square represents a reference pixel.
  • the squares with polka dots represent reference pixels within the size range of the inter prediction block among all the reference pixels used for the generation of the prediction pixels, and the squares with diagonal lines indicate the inter pixels.
  • the reference pixels in the range exceeding the size range of the prediction block are represented.
  • the outermost prediction pixel is generated using two reference pixels, and four prediction pixels are provided on the inner side of the prediction pixel.
  • a prediction pixel including the innermost prediction pixel inside the prediction pixel is generated using six reference pixels.
  • the range of all reference pixels used for generating a prediction pixel at an arbitrary fractional position is the size of the inter prediction block. This is a range of 32 ⁇ 32 pixels and 33 ⁇ 33 pixels in the range of one pixel right next to and directly under the range.
  • the inter prediction block size is 16 ⁇ 32 pixels, 32 ⁇ 16 pixels, 16 ⁇ 16 pixels, 8 ⁇ 16 pixels, 16 ⁇ 8 pixels, 4 ⁇ 8 pixels,
  • the range of all reference pixels used to generate a prediction pixel at an arbitrary fractional position is the size range of the inter prediction block, and the right side and right under that range. This is the range of one pixel.
  • the range of all reference pixels used for generating a predicted pixel at an arbitrary fractional position is shown in FIGS. It becomes larger than the case.
  • the range of all reference pixels used to generate a prediction pixel at an arbitrary fractional position is a 4 ⁇ 4 pixel range of the size of an inter prediction block
  • it is a 9 ⁇ 9 pixel range of 2 pixels on the left and directly above and 3 pixels on the right and below.
  • FIG. 16 to FIG. 19 are diagrams for explaining a prediction pixel generation method in the inter prediction unit 24 in FIG. 4.
  • a numbered square represents a sub-pel
  • a square without a number represents a reference pixel.
  • the squares with polka dots represent reference pixels within the size range of the inter prediction block among the reference pixels used to generate the prediction pixels, and the squares with diagonal lines indicate the inter predictions. Reference pixels in a range exceeding the block size range are shown.
  • the size of the inter prediction block is 4 ⁇ 4 pixels, and the horizontal and vertical positions of the prediction pixels are 1/2 pixel positions.
  • the top numbers 1 to 4 are assigned among Sub-pels in which the horizontal position is a 1/2 pixel position and the vertical position is an integer position.
  • Sub pel represented by the created square is generated.
  • the outermost Sub-pel is generated using two reference pixels, and one inner side, that is, the innermost Sub-pel, is generated using four reference pixels.
  • the reference image reading unit 41 taps two reference pixels located one by one on the left and right sides of the upper left Sub pel represented by the square numbered 1 via the pixel sorting unit 42. This is supplied to the FIR filter 43. Then, the 2-tap FIR filter 43 generates a Sub pel represented by the square numbered 1 from the two reference pixels, and the pixel selection unit 49 supplies the Sub pel to the intermediate result memory 50 for storage.
  • the reference image reading unit 41 includes four reference pixels located on the left and right sides of the Sub pel represented by the square number 2 adjacent to the right of the Sub pel represented by the square numbered 1. Then, the data is supplied to the 4-tap FIR filter 44 via the pixel sorting unit 42. Then, the 4-tap FIR filter 44 generates Sub pel represented by the square numbered 2 from the four reference pixels, and the pixel selection unit 49 supplies the Sub pel to the intermediate result memory 50 for storage.
  • the reference image reading unit 41 includes four reference pixels located on the left and right sides of the Sub pel represented by the square number 3 next to the right of the Sub pel represented by the square numbered 2. This is supplied to the 4-tap FIR filter 44 via the pixel sorting unit 42. Then, the 4-tap FIR filter 44 generates a Sub pel represented by the square numbered 3 from the four reference pixels, and the pixel selection unit 49 supplies the Sub pel to the intermediate result memory 50 for storage.
  • the reference image reading unit 41 converts the two reference pixels located one by one on the left and right of the upper right Sub pel represented by the square numbered 4 into the 2-tap FIR filter 43 via the pixel distributing unit 42. Supply. Then, the 2-tap FIR filter 43 generates a Sub pel represented by the square numbered 4 from the two reference pixels, and the pixel selection unit 49 supplies the Sub pel to the intermediate result memory 50 for storage.
  • Sub ⁇ pels represented by the squares with numbers 1 to 4 are generated as described above, similarly, as shown in FIG. 17, the horizontal position is a 1/2 pixel position, and the vertical direction Of the Sub pels whose positions are integer positions, the Sub pels represented by the squares with the second to fifth numbers 5 to 20 from the top are sequentially generated in units of Sub pels arranged in the horizontal direction, and the intermediate result memory 50 Is remembered.
  • Sub pels represented by the squares with the numbers 21 to 24 are generated as the leftmost predicted pixels.
  • the outermost prediction pixel is generated using two Sub pels, and one inner side, that is, the innermost prediction pixel, is generated using four Sub pels.
  • the pixel sorting unit 42 is located one by one above and below the Sub pel represented by the square number 21, and two Sub pels represented by the number 1 and number 5 squares are represented. Are read from the intermediate result memory 50 and supplied to the 2-tap FIR filter 43. Then, the 2-tap FIR filter 43 generates Sub pel represented by the square numbered 21 from the two Sub pels as a prediction pixel, and the pixel selection unit 49 selects the prediction pixel as the selection unit 26 (FIG. 3). ).
  • the pixel sorting unit 42 is positioned two times above and below the Sub pel represented by the square numbered 22 below the Sub pel represented by the square numbered 21, and the vertical position is an integer position.
  • sub-pels represented by the squares numbered 1, 5, 9, and 13 are read from the intermediate result memory 50 and supplied to the 4-tap FIR filter 44.
  • the 4-tap FIR filter 44 generates Sub pel represented by the square numbered 22 from the four Sub pels as a prediction pixel, and the pixel selection unit 49 outputs the prediction pixel to the selection unit 26. .
  • the pixel sorting unit 42 is positioned two at the top and bottom of the Sub ⁇ pel represented by the square numbered 23 below the Sub pel represented by the square numbered 22, and the vertical position is an integer position.
  • Four Sub pels represented by a square numbered 5, 9, 13, and 17 are read from the intermediate result memory 50 and supplied to the 4-tap FIR filter 44.
  • the 4-tap FIR filter 44 generates Sub pel represented by the square numbered 23 from the four Sub pels as a prediction pixel, and the pixel selection unit 49 outputs the prediction pixel to the selection unit 26. .
  • the numbers 13 and 17 are assigned to the pixel sorting unit 42, one above and below the Sub pel represented by the square numbered 24 below the Sub24pel represented by the square numbered 23.
  • Two Sub pels represented by the squares are read from the intermediate result memory 50 and supplied to the 2-tap FIR filter 43.
  • the 2-tap FIR filter 43 generates Sub pel represented by the square numbered 24 from the two Sub pels as a prediction pixel, and the pixel selection unit 49 outputs the prediction pixel to the selection unit 26. .
  • FIG. 20 and 21 are flowcharts for explaining the encoding process by the encoding device 10 of FIG. This encoding process is performed, for example, every time an image in units of frames is input to the encoding device 10 as an input signal.
  • the A / D conversion unit 11 of the encoding device 10 performs A / D conversion on the frame-by-frame image input as the input signal, and outputs and stores it in the screen rearrangement buffer 12.
  • step S12 the screen rearrangement buffer 12 rearranges the stored frame images in the display order in the order for encoding according to the GOP structure.
  • the screen rearrangement buffer 12 supplies the rearranged frame-unit images to the calculation unit 13, the intra prediction unit 23, and the motion prediction unit 25.
  • steps S13 to S30 is performed in units of macroblocks, for example.
  • the processes of steps S13 to S20 and S28 are not performed, and the image of the first frame is assumed to be the residual information and the locally decoded image.
  • step S13 the intra prediction unit 23 performs intra prediction of all candidate intra prediction modes based on the image supplied from the screen rearrangement buffer 12 and the reference image supplied from the addition unit 20. A prediction image is generated. The intra prediction unit 23 calculates cost function values for all candidate intra prediction modes. Then, the intra prediction unit 23 determines the intra prediction mode that minimizes the cost function value as the optimal intra prediction mode. The intra prediction unit 23 supplies the prediction image generated in the optimal intra prediction mode and the corresponding cost function value to the selection unit 26.
  • step S ⁇ b> 14 the motion prediction unit 25 performs motion prediction processing in all candidate inter prediction modes on the image supplied from the screen rearrangement buffer 12 using the reference image supplied from the frame memory 22. To generate a fractional motion vector.
  • the motion prediction unit 25 calculates cost function values for all candidate inter prediction modes, and determines the inter prediction mode that minimizes the cost function value as the optimal inter measurement mode. Then, the motion prediction unit 25 supplies the inter prediction mode information, the corresponding motion vector, and the cost function value to the inter prediction unit 24.
  • step S15 the inter prediction unit 24 performs an inter prediction process based on the motion vector supplied from the motion prediction unit 25 and the inter prediction mode information. Details of the inter prediction process will be described with reference to FIGS. 22 and 23 described later.
  • the inter prediction unit 24 supplies the prediction image generated as a result of the inter prediction process and the cost function value supplied from the motion prediction unit 25 to the selection unit 26.
  • step S ⁇ b> 16 the selection unit 26 determines which one of the optimal intra prediction mode and the optimal inter prediction mode has the smallest cost function value based on the cost function values supplied from the intra prediction unit 23 and the inter prediction unit 24. The optimum prediction mode is determined. Then, the selection unit 26 supplies the prediction image in the optimal prediction mode to the calculation unit 13 and the addition unit 20.
  • step S17 the selection unit 26 determines whether or not the optimal prediction mode is the optimal inter prediction mode.
  • the selection unit 26 notifies the inter prediction unit 24 of selection of a prediction image generated in the optimal inter prediction mode. Thereby, the inter prediction unit 24 outputs the inter prediction mode information, the corresponding motion vector, and the like to the lossless encoding unit 16.
  • step S18 the lossless encoding unit 16 losslessly encodes the inter prediction mode information and motion vectors supplied from the inter prediction unit 24, and uses the resulting information as header information added to the compressed image. . Then, the process proceeds to step S20.
  • step S17 when it is determined in step S17 that the optimal prediction mode is not the optimal inter prediction mode, that is, when the optimal prediction mode is the optimal intra prediction mode, the selection unit 26 selects the prediction image generated in the optimal intra prediction mode. The selection is notified to the intra prediction unit 23. Thereby, the intra prediction unit 23 supplies the intra prediction mode information to the lossless encoding unit 16.
  • step S19 the lossless encoding unit 16 losslessly encodes the intra prediction mode information and the like supplied from the intra prediction unit 23, and uses the resulting information as header information added to the compressed image. Then, the process proceeds to step S20.
  • step S20 the calculation unit 13 subtracts the predicted image supplied from the selection unit 26 from the image supplied from the screen rearrangement buffer 12.
  • the calculation unit 13 outputs an image obtained as a result of the subtraction to the orthogonal transformation unit 14 as residual information.
  • step S ⁇ b> 21 the orthogonal transformation unit 14 performs orthogonal transformation on the residual information from the calculation unit 13 and supplies the coefficient obtained as a result to the quantization unit 15.
  • step S22 the quantization unit 15 quantizes the coefficient supplied from the orthogonal transform unit.
  • the quantized coefficient is input to the lossless encoding unit 16 and the inverse quantization unit 18.
  • step S23 the lossless encoding unit 16 performs lossless encoding on the quantized coefficient supplied from the quantization unit 15, and uses the resulting information as a compressed image. Then, the lossless encoding unit 16 adds the header information generated in the process of step S18 or S19 to the compressed image, and generates compressed image information.
  • step S24 in FIG. 21 the lossless encoding unit 16 supplies the image compression information to the accumulation buffer 17 and accumulates it.
  • step S25 the storage buffer 17 outputs the stored image compression information to, for example, a recording device or a transmission path (not shown) in the subsequent stage.
  • step S26 the inverse quantization unit 18 inversely quantizes the quantized coefficient supplied from the quantization unit 15.
  • step S ⁇ b> 27 the inverse orthogonal transform unit 19 performs inverse orthogonal transform on the coefficient supplied from the inverse quantization unit 18, and supplies residual information obtained as a result to the addition unit 20.
  • step S28 the addition unit 20 adds the residual information supplied from the inverse orthogonal transform unit 19 and the predicted image supplied from the selection unit 26, and obtains a locally decoded image.
  • the adding unit 20 supplies the obtained image to the deblocking filter 21 and also supplies it to the intra prediction unit 23 as a reference image.
  • step S29 the deblocking filter 21 performs filtering on the locally decoded image supplied from the adding unit 20 to remove block distortion.
  • step S30 the deblocking filter 21 supplies the image after filtering to the frame memory 22 and accumulates it.
  • the image stored in the frame memory 22 is output to the inter prediction unit 24 and the motion prediction unit 25 as a reference image. Then, the process ends.
  • 22 and 23 are flowcharts illustrating details of a first example of the inter prediction process in step S15 of FIG.
  • step S50 of FIG. 22 the reference image reading unit 41 (FIG. 4) of the inter prediction unit 24 is based on the prediction direction and the reference index in the inter prediction mode information supplied from the motion prediction unit 25 of FIG. A reference image among the images stored in the frame memory 22 is specified.
  • step S51 the reference image reading unit 41 determines the size of the prediction image based on the size of the inter prediction block in the inter prediction mode information.
  • step S52 the reference image reading unit 41 reads, from the frame memory 22, the reference pixels used for generating the prediction image based on the integer value of the motion vector and the size of the prediction image in the inter prediction mode information. Hold on.
  • step S53 the reference image reading unit 41 determines a prediction pixel that has not yet been determined as a generation target prediction pixel in the process of step S53 among the prediction pixels constituting the prediction image as a generation target prediction pixel.
  • step S54 the reference image reading unit 41, based on the position of the predicted pixel to be generated on the predicted image, the pixel whose horizontal or vertical position on the reference image corresponding to the predicted pixel is an integer position ( Hereinafter, the number of reference pixels used for generation of prediction corresponding pixels) is determined to be 2, 4, or 6.
  • the prediction corresponding pixel is a prediction pixel.
  • both the horizontal and vertical positions of the prediction pixel to be generated on the reference image are fractional positions, the prediction-compatible pixel has the same horizontal position as the prediction pixel used to generate the prediction pixel.
  • the vertical position is an integer position and has not been generated yet.
  • step S55 the reference image reading unit 41, based on the number of reference pixels determined in step S54 and the position of the predicted pixel to be generated on the reference image, out of the reference pixels held in step S52. A reference pixel used to generate a prediction-compatible pixel is read out.
  • the reference image reading unit 41 supplies the read reference pixels to the pixel sorting unit 42.
  • the 2-tap filter coefficient memory 46 is based on the fractional value of the component corresponding to the prediction corresponding pixel of the motion vector supplied from the motion prediction unit 25, and stores the filter coefficient stored in association with the fractional value.
  • (Outside coefficient) is read and supplied to the 2-tap FIR filter 43.
  • each of the 4-tap filter coefficient memory 47 and the 6-tap filter coefficient memory 48 is based on the fractional values of the components corresponding to the motion vector prediction-corresponding pixels and stored in association with the fractional values.
  • Inner coefficient is read out and supplied to the 4-tap FIR filter 44 and the 6-tap FIR filter 45.
  • the component corresponding to the prediction corresponding pixel is a component in the one direction.
  • both the horizontal and vertical positions on the reference image of the prediction pixel to be generated are integer positions or fractional positions
  • the component corresponding to the prediction corresponding pixel is a horizontal component.
  • step S57 the pixel sorting unit 42 determines whether the number of reference pixels supplied from the reference image reading unit 41 is two. If it is determined in step S57 that the number of reference pixels is 2, the pixel distribution unit 42 supplies two reference pixels to the 2-tap FIR filter 43 as generation pixels.
  • step S58 the 2-tap FIR filter 43 performs an operation using the reference pixels as the two generation pixels supplied from the pixel distributing unit 42 and the filter coefficient supplied from the 2-tap filter coefficient memory 46. Do.
  • the 2-tap FIR filter 43 supplies one prediction-corresponding pixel obtained as a result to the pixel selection unit 49, and the process proceeds to step S62.
  • step S59 the pixel sorting unit 42 determines whether the number of reference pixels supplied from the reference image reading unit 41 is four. To do. If it is determined in step S59 that the number of reference pixels is 4, the pixel distribution unit 42 supplies the four reference pixels to the 4-tap FIR filter 44 as generation pixels.
  • step S 60 the 4-tap FIR filter 44 performs an operation using the reference pixels as the four generation pixels supplied from the pixel sorting unit 42 and the filter coefficients supplied from the 4-tap filter coefficient memory 47. Do.
  • the 4-tap FIR filter 44 supplies one prediction-corresponding pixel obtained as a result to the pixel selection unit 49, and the process proceeds to step S62.
  • step S59 when it is determined in step S59 that the number of reference pixels is not four, that is, when the number of reference pixels is six, the pixel distribution unit 42 uses a six-tap FIR filter with six reference pixels as generation pixels. 45.
  • step S ⁇ b> 61 the 6-tap FIR filter 45 performs an operation using the reference pixels as the six generation pixels supplied from the pixel distribution unit 42 and the filter coefficients supplied from the 6-tap filter coefficient memory 48. Do.
  • the 6-tap FIR filter 45 supplies one prediction-corresponding pixel obtained as a result to the pixel selection unit 49, and the process proceeds to step S62.
  • step S62 the pixel selection unit 49 determines whether the fractional values of both the horizontal component and the vertical component of the motion vector supplied from the motion prediction unit 25 are other than 0, that is, the horizontal direction of the prediction pixel on the reference image. Determine whether both vertical positions are fractional positions. When it is determined in step S62 that the fractional value of at least one of the horizontal component and the vertical component of the motion vector is 0, that is, at least one position in the horizontal direction and the vertical direction of the predicted pixel on the reference image is an integer position. If so, the process proceeds to step S63.
  • step S63 the pixel selection unit 49 outputs the prediction corresponding pixel supplied from the 2-tap FIR filter 43, the 4-tap FIR filter 44, or the 6-tap FIR filter 45 to the selection unit 26 in FIG. 3 as a prediction pixel.
  • step S64 the reference image reading unit 41 determines whether or not all prediction pixels have been generated, that is, whether or not all prediction pixels constituting the prediction image have been determined as generation target prediction pixels in step S53. If it is determined in step S64 that not all predicted pixels have been generated yet, the process returns to step S53, and the processes in steps S53 to S64 are repeated until all predicted pixels are generated.
  • step S64 determines whether all prediction pixels have been generated. If it is determined in step S64 that all prediction pixels have been generated, the process returns to step S15 in FIG. 20 and proceeds to step S16.
  • step S62 If it is determined in step S62 that the fractional values of both the horizontal and vertical components of the motion vector are other than 0, that is, both the horizontal and vertical positions of the prediction pixel on the reference image are fractional positions. If there is, the process proceeds to step S65.
  • step S65 the pixel selection unit 49 supplies the Sub49pel as the prediction corresponding pixel supplied from the 2-tap FIR filter 43, the 4-tap FIR filter 44, or the 6-tap FIR filter 45 to the intermediate result memory 50 and holds it.
  • step S66 the reference image reading unit 41 determines whether all prediction corresponding pixels have been generated, that is, whether all prediction pixels constituting the prediction image have been determined as generation target prediction pixels in step S53. If it is determined in step S66 that not all prediction-corresponding pixels have been generated yet, the process returns to step S53, and steps S53 to S62, step S65, and step S66 are performed until all prediction-corresponding pixels are generated. The process is repeated.
  • step S66 determines whether all prediction-corresponding pixels have been generated. If it is determined in step S66 that all prediction-corresponding pixels have been generated, the process proceeds to step S67 in FIG.
  • step S67 the reference image reading unit 41 determines a prediction pixel that has not yet been determined as a generation target prediction pixel in the process of step S67 among prediction pixels constituting the prediction image as a generation target prediction pixel.
  • step S68 the pixel sorting unit 42 determines the number of Sub pels to be read from the intermediate result memory 50 as 2, 4, or 6 based on the vertical position of the prediction pixel to be generated on the predicted image.
  • step S ⁇ b> 69 the pixel sorting unit 42 reads Sub pel as a generation pixel from the intermediate result memory 50 based on the number of Sub pels determined in step S ⁇ b> 68 and the position of the prediction pixel to be generated on the reference image. .
  • step S70 the 2-tap filter coefficient memory 46, based on the fractional value of the vertical component of the motion vector supplied from the motion prediction unit 25, converts the filter coefficient stored in association with the fractional value to the 2-tap FIR filter. 43.
  • each of the 4-tap filter coefficient memory 47 and the 6-tap filter coefficient memory 48 uses the 4-tap FIR filter to store the filter coefficients stored in association with the fractional values based on the fractional values of the vertical components of the motion vector. 44 and 6 tap FIR filter 45 is supplied.
  • steps S71 to S75 is the same as the processing in steps S57 to S61 in FIG. 22 except that the processing is performed on Sub-pel instead of the reference pixel, description thereof is omitted.
  • step S76 the pixel selection unit 49 outputs Sub pel, which is a pixel supplied from the 2-tap FIR filter 43, the 4-tap FIR filter 44, or the 6-tap FIR filter 45, to the selection unit 26 as a predicted pixel.
  • step S77 the reference image reading unit 41 determines whether or not all prediction pixels have been generated, that is, whether or not all prediction pixels constituting the prediction image have been determined as generation target prediction pixels in step S67. If it is determined in step S77 that not all prediction pixels have been generated yet, the process returns to step S67, and the processes in steps S67 to S77 are repeated until all prediction pixels are generated.
  • step S77 if it is determined in step S77 that all predicted pixels have been generated, the process returns to step S15 in FIG. 20 and proceeds to step S16.
  • the encoding apparatus 10 reduces the number of reference pixels used for generating the outer predicted pixel during inter prediction compared to the number of reference pixels used for generating the inner predicted pixel. It is possible to reduce the number of reference pixels used for generating the entire predicted image. As a result, the amount of memory bandwidth used by the frame memory 22 can be reduced. In addition, since the number of reference pixels used for generating the outer predicted pixel is small, the amount of calculation can be reduced.
  • the encoding device 10 reduces only the number of reference pixels used for generating the outer prediction pixel, it is possible to suppress deterioration in accuracy of inter prediction.
  • the prediction accuracy near the outer periphery is lower than the prediction accuracy near the center of the inter prediction block.
  • the motion compensated by inter prediction is a perfect translation, there is not much difference in the prediction accuracy within the block, but it is a movement with a slight rotation or deformation. Therefore, it is considered that the prediction deviation is larger near the outer periphery than near the center of the block. Therefore, there is little influence on the accuracy of inter prediction by reducing the number of reference pixels used for generation of an outer prediction pixel.
  • the 2-tap filter coefficient memory 46, 4-tap filter coefficient memory 47, and 6-tap filter coefficient memory 48 can store filter coefficients having different characteristics.
  • the encoding apparatus 10 stores, for example, filter coefficients for reducing high frequency components in the 2-tap filter coefficient memory 46. Thereby, the prediction precision of inter prediction can be improved.
  • FIG. 24 is a block diagram illustrating a configuration example of a decoding device as an image processing device to which the present technology is applied, which decodes the compressed image information output from the encoding device 10 in FIG. 3.
  • 24 includes an accumulation buffer 101, a lossless decoding unit 102, an inverse quantization unit 103, an inverse orthogonal transform unit 104, an addition unit 105, a deblock filter 106, a screen rearrangement buffer 107, and a D / A conversion unit. 108, a frame memory 109, an intra prediction unit 110, an inter prediction unit 111, and a switch 112.
  • the accumulation buffer 101 of the decoding apparatus 100 receives the image compression information from the encoding apparatus 10 in FIG. 3 and accumulates it.
  • the accumulation buffer 101 supplies the accumulated image compression information to the lossless decoding unit 102.
  • the lossless decoding unit 102 obtains quantized coefficients and headers by performing lossless decoding such as variable length decoding and arithmetic decoding on the compressed image information from the storage buffer 101.
  • the lossless decoding unit 102 supplies the quantized coefficients to the inverse quantization unit 103.
  • the lossless decoding unit 102 supplies intra prediction mode information and the like included in the header to the intra prediction unit 110, and supplies motion vectors and inter prediction mode information to the inter prediction unit 111. Further, the lossless decoding unit 102 supplies intra prediction mode information or inter prediction mode information included in the header to the switch 112.
  • the inverse quantization unit 103, the inverse orthogonal transform unit 104, the addition unit 105, the deblock filter 106, the frame memory 109, the intra prediction unit 110, and the inter prediction unit 111 are the same as the inverse quantization unit 18 and the inverse orthogonal transform in FIG.
  • the same processing as that of the unit 19, the adding unit 20, the deblocking filter 21, the frame memory 22, the intra prediction unit 23, and the inter prediction unit 24 is performed, whereby the image is decoded.
  • the inverse quantization unit 103 inversely quantizes the quantized coefficient from the lossless decoding unit 102 and supplies the coefficient obtained as a result to the inverse orthogonal transform unit 104.
  • the inverse orthogonal transform unit 104 performs inverse orthogonal transform such as inverse discrete cosine transform and inverse Karhunen-Loeve transform on the coefficient from the inverse quantization unit 103, and supplies the residual information obtained as a result to the addition unit 105 To do.
  • inverse orthogonal transform such as inverse discrete cosine transform and inverse Karhunen-Loeve transform
  • the addition unit 105 functions as an addition calculation unit, adds the residual information as a decoding target image supplied from the inverse orthogonal transform unit 104 and the prediction image supplied from the switch 112, and obtains an image obtained as a result thereof. While supplying to the deblocking filter 106, it supplies to the intra estimation part 110 as a reference image. When the prediction image is not supplied from the switch 112, the addition unit 105 supplies an image, which is residual information supplied from the inverse orthogonal transform unit 104, to the deblocking filter 106, and also to the intra prediction unit 110 as a reference image. Supply.
  • the deblock filter 106 removes block distortion by filtering the image supplied from the addition unit 105.
  • the deblocking filter 106 supplies the image obtained as a result to the frame memory 109, stores it, and supplies it to the screen rearrangement buffer 107.
  • the image stored in the frame memory 109 is supplied to the inter prediction unit 111 as a reference image.
  • the screen rearrangement buffer 107 stores the image supplied from the deblock filter 106 in units of frames.
  • the screen rearrangement buffer 107 rearranges the stored frame-by-frame images for encoding in the original display order and supplies them to the D / A conversion unit 108.
  • the D / A converter 108 D / A converts the frame unit image supplied from the screen rearrangement buffer 107 and outputs it as an output signal.
  • the intra prediction unit 110 performs intra prediction of the intra prediction mode represented by the intra prediction mode information supplied from the lossless decoding unit 102 using the reference image supplied from the addition unit 105, and generates a prediction image. Then, the intra prediction unit 110 supplies the predicted image to the switch 112.
  • the inter prediction unit 111 is configured in the same manner as the inter prediction unit 24 shown in FIG.
  • the inter prediction unit 111 reads a reference image from the frame memory 109 based on the inter prediction mode information and the motion vector supplied from the lossless decoding unit 102.
  • the inter prediction unit 111 performs inter prediction processing based on the motion vector and the reference image read from the frame memory 109.
  • the inter prediction unit 111 supplies the prediction image generated as a result to the switch 112.
  • the switch 112 supplies the prediction image supplied from the intra prediction unit 110 to the addition unit 105.
  • the prediction image supplied from the inter prediction unit 111 is supplied to the adding unit 105.
  • FIG. 25 is a flowchart for explaining a decoding process by the decoding device 100 of FIG. For example, this decoding process is performed every time frame-based image compression information is input to the decoding device 100.
  • step S101 of FIG. 25 the accumulation buffer 101 of the decoding apparatus 100 receives and accumulates the frame-based image compression information from the encoding apparatus 10 of FIG.
  • the accumulation buffer 101 supplies the accumulated image compression information to the lossless decoding unit 102. Note that the processing in the following steps S102 to S110 is performed in units of macrobooks, for example.
  • step S102 the lossless decoding unit 102 losslessly decodes the compressed image information from the accumulation buffer 101, and obtains quantized coefficients and headers.
  • the lossless decoding unit 102 supplies the quantized coefficients to the inverse quantization unit 103.
  • the lossless decoding unit 102 supplies intra prediction mode information and the like included in the header to the intra prediction unit 110, and supplies motion vectors and inter prediction mode information to the inter prediction unit 111. Further, the lossless decoding unit 102 supplies intra prediction mode information or inter prediction mode information included in the header to the switch 112.
  • step S103 the inverse quantization unit 103 inversely quantizes the quantized coefficient from the lossless decoding unit 102, and supplies the resulting coefficient to the inverse orthogonal transform unit 104.
  • step S ⁇ b> 104 the inverse orthogonal transform unit 104 performs inverse orthogonal transform on the coefficient from the inverse quantization unit 103, and supplies residual information obtained as a result to the addition unit 105.
  • step S105 the inter prediction unit 111 determines whether or not the inter prediction mode information is supplied from the lossless decoding unit 102. If it is determined in step S105 that the inter prediction mode information has been supplied, the process proceeds to step S106.
  • step S106 the inter prediction unit 111 performs the inter prediction process described with reference to FIGS. 22 and 23 based on the motion vector and the inter prediction mode information supplied from the lossless decoding unit 102.
  • the inter prediction unit 111 supplies the predicted image generated as a result to the addition unit 105 via the switch 112, and the process proceeds to step S108.
  • step S105 determines whether the inter prediction mode information is supplied. If it is determined in step S105 that the inter prediction mode information is not supplied, that is, if the intra prediction mode information is supplied to the intra prediction unit 110, the process proceeds to step S107.
  • step S107 the intra prediction unit 110 performs intra prediction of the intra prediction mode represented by the intra prediction mode information supplied from the lossless decoding unit 102, using the reference image supplied from the addition unit 105. Then, the intra prediction unit 110 supplies the prediction image generated as a result to the addition unit 105 via the switch 112, and the process proceeds to step S108.
  • step S108 the adding unit 105 adds the residual information supplied from the inverse orthogonal transform unit 104 and the prediction image supplied from the switch 112.
  • the adding unit 105 supplies the image obtained as a result to the deblocking filter 106 and also supplies it to the intra prediction unit 110 as a reference image. Note that when processing the first macroblock of the first frame, there is no reference image, so the processing of steps S105 to S108 is not performed, and an image as residual information is supplied to the deblocking filter 106 and the reference image To the intra prediction unit 110.
  • step S109 the deblocking filter 106 performs filtering on the image supplied from the adding unit 105 to remove block distortion.
  • step S110 the deblocking filter 106 supplies the filtered image to the frame memory 109, stores it, and supplies it to the screen rearrangement buffer 107.
  • the image stored in the frame memory 109 is supplied to the inter prediction unit 111 as a reference image.
  • step S111 the screen rearrangement buffer 107 stores the image supplied from the deblocking filter 106 in units of frames, and rearranges the stored frame-by-frame images for encoding in the original display order. , And supplied to the D / A converter 108.
  • step S112 the D / A conversion unit 108 D / A converts the frame unit image supplied from the screen rearrangement buffer 107, and outputs it as an output signal.
  • the decoding apparatus 100 reduces the number of reference pixels used for generating an outer predicted pixel during inter prediction as compared with the number of reference pixels used for generating an inner predicted pixel. It is possible to reduce the number of reference pixels used for generating the entire image. As a result, the amount of memory bandwidth used by the frame memory 109 can be reduced. In addition, since the number of reference pixels used for generating the outer predicted pixel is small, the amount of calculation can be reduced.
  • the decoding apparatus 100 reduces only the number of reference pixels used for generating the outer prediction pixels, similarly to the encoding apparatus 10, it is possible to suppress deterioration in inter prediction accuracy.
  • FIG. 26 is a block diagram illustrating a second configuration example of the inter prediction unit 24 in FIG. 3.
  • the inter prediction unit 24 in FIG. 26 mainly includes a reference image reading unit 160, a pixel generation unit 161, and a pixel selection unit 162 in place of the reference image reading unit 41, the pixel sorting unit 42, and the pixel selection unit 49. 4 in that the 2-tap FIR filter 43, 4-tap FIR filter 44, 2-tap filter coefficient memory 46, and 4-tap filter coefficient memory 47 are deleted.
  • the inter prediction unit 24 in FIG. 26 generates all Sub pels by duplicating and using the reference pixels read from the frame memory 22 (FIG. 3) in the same manner as the inter prediction unit 24 in FIG. 4. The number of pixels used for is set to 6.
  • the reference image reading unit 160 of the inter prediction unit 24 in FIG. 26 is similar to the reference image reading unit 41 in FIG. 4, and includes the inter prediction mode information supplied from the motion prediction unit 25 in FIG. 3. Based on the reference index and the prediction direction, a reference image among the images stored in the frame memory 22 is specified. Similar to the reference image reading unit 41, the reference image reading unit 160 reads the reference pixels used for generating the prediction image from the frame memory 22 based on the block size and the motion vector in the inter prediction mode information, and temporarily Hold on.
  • the reference image reading unit 160 reads out, for each prediction pixel, a reference pixel used for generating the prediction pixel among the temporarily held reference pixels.
  • the number of reference pixels used for generating the prediction pixel is any one of 4 to 6.
  • the reference image reading unit 160 supplies the read reference pixels to the pixel generation unit 161.
  • the pixel generation unit 161 uses the reference pixel supplied from the reference image reading unit 41 as a generation pixel, similarly to the pixel distribution unit 42 of FIG. Similarly to the pixel distribution unit 42, the pixel generation unit 161 obtains Sub pel corresponding to the generation target prediction pixel from the intermediate result memory 50 based on the fractional value of the motion vector supplied from the motion prediction unit 25. Read out as a generation pixel.
  • the number of Sub pels used to generate the prediction pixel is any one of 4 to 6.
  • the pixel generation unit 161 replicates the outer pixels of the generation pixels by the number of generation pixels and six differences, and the copied pixels And 6 pixels including the generation pixels are generated as new generation pixels.
  • the pixel generation unit 161 replicates the outer generation pixel of the generation pixels as two pixels outside the generation pixel.
  • the six pixels composed of the two pixels and the four generation pixels are defined as six generation pixels.
  • the pixel generation unit 161 duplicates the generation pixel outside the generation pixel as one pixel outside the generation pixel, and 1 Six pixels including five pixels and five generation pixels are defined as six generation pixels.
  • the pixel generation unit 161 sets the generation pixels to 6 generation pixels as they are.
  • the pixel generation unit 161 supplies the generated six generation pixels to the 6-tap FIR filter 45.
  • the pixel selection unit 162 uses the pixels supplied from the 6-tap FIR filter 45 as prediction pixels based on the fractional values of the motion vectors supplied from the motion prediction unit 25, as shown in FIG. 3. To the selection unit 26 or supplied to the intermediate result memory 50.
  • FIG. 27 shows an example in which when the size of the block of inter prediction is 8 ⁇ 8 pixels, the horizontal position is a 1/2 pixel position, and the vertical position is an integer position. It is a figure which shows the example of the pixel for a production
  • numbered squares represent prediction pixels, and squares without numbers and letters represent reference pixels.
  • the squares with polka dots represent reference pixels within the size range of the inter prediction block among the reference pixels used to generate the prediction pixels, and the squares with diagonal lines indicate the inter predictions. Reference pixels in a range exceeding the block size range are shown.
  • a square with an alphabetic character is a pixel in which a reference pixel is duplicated.
  • the outermost prediction pixel is generated using six generation pixels including four reference pixels, and the prediction pixel one inner side from the prediction pixel includes five reference pixels. It is generated by using 6 generation pixels. Also, a prediction pixel including the innermost prediction pixel inside the prediction pixel is generated using six reference pixels as generation pixels.
  • the generation target is arranged in the horizontal direction, the horizontal position is a 1/2 pixel position, and the outermost number 1 among the eight predicted pixels whose vertical position is an integer position is
  • the reference image reading unit 160 supplies the pixel generation unit 161 with a total of four reference pixels, one on the left of the prediction pixel and three on the right.
  • the pixel generation unit 161 duplicates the leftmost reference pixel of the four reference pixels as pixels at the two integer positions on the left side of the reference pixel, and the two pixels and the pixel generation unit 161 Six generation pixels composed of the supplied four reference pixels are generated.
  • the reference image reading unit 160 displays the prediction pixel to the left of the prediction pixel.
  • a total of five reference pixels located two and three right are supplied to the pixel generator 161.
  • the pixel generation unit 161 duplicates the leftmost reference pixel of the five reference pixels as a pixel at one integer position on the left side of the reference pixel, and the pixel generation unit 161 Six generation pixels composed of the supplied five reference pixels are generated.
  • the reference image reading unit 160 displays the left and right sides of the prediction pixel.
  • a total of six reference pixels positioned three by three are supplied to the pixel generation unit 161.
  • the pixel generation unit 161 directly uses the six reference pixels as six generation pixels.
  • the reference image reading unit 160 determines the prediction pixel.
  • a total of five reference pixels located two on the right and three on the left are supplied to the pixel generator 161.
  • the pixel generation unit 161 duplicates the rightmost reference pixel of the five reference pixels as a pixel at one integer position on the right side of the reference pixel, and the pixel generation unit 161 Six generation pixels composed of the supplied five reference pixels are generated.
  • the reference image reading unit 160 is located one on the right of the prediction pixel and three on the left for a total of 4
  • the reference pixels are supplied to the pixel generation unit 161.
  • the pixel generation unit 161 duplicates the rightmost reference pixel of the four reference pixels as pixels at the two integer positions on the right side of the reference pixel, and the two pixels and the pixel generation unit 161 Six generation pixels composed of the supplied four reference pixels are generated.
  • FIGS. 28 and 29 are flowcharts illustrating details of the inter prediction process in step S15 of FIG. 20 by the inter prediction unit 24 of FIG.
  • steps S50 to S53 of FIG. 22 is the same as the process of steps S50 to S53 of FIG. 22, and thus the description thereof is omitted. Note that when there are a plurality of prediction-compatible pixels, the processes of steps S154 to S165 below are performed for each prediction-compatible pixel.
  • step S154 the reference image reading unit 160 sets the number of reference pixels used for generating the prediction corresponding pixel to any one of 4 to 6 based on the position of the prediction pixel to be generated on the predicted image. Decide on.
  • step S155 the reference image reading unit 160, based on the number of reference pixels determined in step S154 and the position of the predicted pixel to be generated on the reference image, of the reference pixels held in step S152. A reference pixel used to generate a prediction-compatible pixel is read out.
  • the reference image reading unit 160 supplies the read reference pixels to the pixel generation unit 161.
  • step S156 the 6-tap filter coefficient memory 48 is based on the fractional value of the component corresponding to the prediction corresponding pixel of the motion vector supplied from the motion prediction unit 25, and stored in association with the fractional value. Is supplied to the 6-tap FIR filter 45.
  • step S157 the pixel generation unit 161 determines whether the number of reference pixels supplied from the reference image reading unit 160 is four. If it is determined in step S157 that the number of reference pixels is 4, the process proceeds to step S158.
  • step S158 the pixel generation unit 161 duplicates the reference pixels outside the four reference pixels supplied from the reference image reading unit 160 as two pixels outside the reference pixels, and the two pixels 6 pixels for generation, each of which includes 4 pixels and 4 reference pixels. Then, the pixel generation unit 161 supplies the generated six generation pixels to the 6-tap FIR filter 45, and the process proceeds to step S161.
  • step S159 the pixel generation unit 161 determines whether the number of reference pixels supplied from the reference image reading unit 160 is five. To do.
  • step S159 If it is determined in step S159 that the number of reference pixels is 5, the process proceeds to step S160.
  • step S160 the pixel generation unit 161 replicates the reference pixel outside the five reference pixels supplied from the reference image reading unit 160 as one pixel outside the reference pixel, 6 pixels for generation, each of which includes 5 pixels and 5 reference pixels. Then, the pixel generation unit 161 supplies the generated six generation pixels to the 6-tap FIR filter 45, and the process proceeds to step S161.
  • step S159 when it is determined in step S159 that the number of reference pixels is not five, that is, when the number of reference pixels is six, the pixel generation unit 161 uses the six reference pixels as generation pixels to generate a six-tap FIR. The image is supplied to the filter 45, and the process proceeds to step S161.
  • step S161 the 6-tap FIR filter 45 performs an operation using the 6 generation pixels supplied from the pixel generation unit 161 and the filter coefficients supplied from the 6-tap filter coefficient memory 48.
  • the 6-tap FIR filter 45 supplies one prediction corresponding pixel obtained as a result to the pixel selection unit 162. Then, the process proceeds to step S162.
  • steps S162 to S166 in FIG. 28 and the processing in step S167 in FIG. 29 are the same as the processing in steps S62 to S66 in FIG. 22 and the processing in step S67 in FIG.
  • step S168 the pixel generation unit 161 determines the number of Sub pels to be read from the intermediate result memory 50 to any one of 4 to 6, based on the vertical position of the prediction pixel to be generated on the predicted image.
  • step S169 the pixel generation unit 161 reads Sub pel as a generation pixel from the intermediate result memory 50 based on the number of Sub pels determined in step S168 and the position of the prediction pixel to be generated on the reference image. .
  • step S170 the 6-tap filter coefficient memory 48, based on the fractional value of the vertical component of the motion vector supplied from the motion prediction unit 25, the filter coefficient stored in association with the fractional value is converted to the 6-tap FIR filter. 45. Then, the process proceeds to step S171.
  • steps S171 to S175 is the same as the processing in steps S157 to S161 in FIG. 28 except that the processing is performed on Sub pel instead of the reference pixel, and thus description thereof is omitted.
  • step S176 the pixel selection unit 162 outputs Sub pel, which is a pixel supplied from the 6-tap FIR filter 45, to the selection unit 26 as a predicted pixel.
  • step S177 the reference image reading unit 160 determines whether all prediction pixels have been generated, that is, whether all prediction pixels constituting the prediction image have been determined as generation target prediction pixels in step S167. If it is determined in step S177 that all the prediction pixels have not yet been generated, the process returns to step S167, and the processes in steps S167 to S177 are repeated until all the prediction pixels are generated.
  • step S177 if it is determined in step S177 that all predicted pixels have been generated, the process returns to step S15 in FIG. 20 and proceeds to step S16.
  • the inter prediction unit 24 in FIG. 26 determines the number of reference pixels used for generating the outer prediction pixel at the time of inter prediction, and generates the inner prediction pixel. Therefore, the number of reference pixels used for generating the entire predicted image can be reduced. As a result, the amount of memory bandwidth used by the frame memory 22 can be reduced. In addition, since the number of reference pixels used for generating the outer predicted pixel is small, the amount of calculation can be reduced.
  • the inter prediction unit 24 in FIG. 26 duplicates the pixels using the outer generation pixels, and uses the six pixels including the duplicated pixels and the generation pixels as new generation pixels, and calculates the prediction pixels. Generate. Therefore, the number of taps of the FIR filter that generates the prediction pixel is only 6, and the process is simpler than the inter prediction unit 24 in FIG. 4 that changes the number of taps of the FIR filter according to the position of the prediction pixel.
  • the inter prediction part 111 of the decoding apparatus 100 is also comprised similarly to the inter prediction part 24 of FIG.
  • the Sub pel at the 1/2 pixel position is generated by interpolation.
  • the Sub pel at the 1/4 pixel position or the 1/8 pixel position may be generated. Good.
  • the same processing as that at the time of generating Sub pel at the 1/2 pixel position is performed except that the filter coefficients are different.
  • FIG. 30 is a block diagram illustrating a third configuration example of the inter prediction unit 24 in FIG. 3.
  • FIG. 30 is different from the configuration of FIG. 26 in that a reference image reading unit 180 is provided instead of the reference image reading unit 160.
  • the inter prediction unit 24 in FIG. 30 changes the number of reference pixels used for generating an outer predicted pixel in accordance with the motion vector.
  • the reference image reading unit 180 of the inter prediction unit 24 in FIG. 30 is the same as the reference image reading unit 41 in FIG. 4, among the inter prediction mode information supplied from the motion prediction unit 25 in FIG. 3. Based on the reference index and the prediction direction, a reference image among the images stored in the frame memory 22 as DPB (Decoded Picture Buffer) is specified.
  • the reference image reading unit 180 determines a range of reference pixels used for generating a prediction image based on the block size and the motion vector in the inter prediction mode information.
  • the reference image reading unit 180 reads the reference pixels in the determined range from the frame memory 22 based on the motion vector, and temporarily holds them.
  • the reference image reading unit 180 reads out, for each prediction pixel, a reference pixel used for generating the prediction pixel among the temporarily held reference pixels.
  • the number of reference pixels used for generating the prediction pixel is any one of 4 to 6.
  • the reference image reading unit 180 supplies the read reference pixels to the pixel generation unit 161.
  • FIG. 31 to FIG. 33 are diagrams illustrating ranges of post-replication generation pixels used when the inter prediction unit 24 of FIG. 26 generates Sub pels a to o as prediction pixels, respectively.
  • a square in which an alphabetic character is described represents a sub-pel of the alphabetic character
  • a hatched square represents a generation pixel used for generating the sub-pel.
  • a square that is not hatched and has no alphabetical characters represents a reference pixel that is not used to generate Sub pel.
  • the number of generation pixels after duplication used for generating a prediction pixel in which only one of the horizontal and vertical positions on the reference image is a fractional position is the prediction pixel in which both positions are fractional positions. This is smaller than the number of post-replication generation pixels used for generation of. That is, the number of generation pixels when the prediction pixel is generated by the filtering process in one of the horizontal direction and the vertical direction is the number of generation pixels when the prediction pixel is generated by the filter process in both directions. There are few compared.
  • the reference image reading unit 180 in FIG. 30 generates a predicted pixel by filtering in one of the horizontal direction and the vertical direction, that is, the fractional value of the horizontal or vertical component of the motion vector is 0. In this case, as compared with the reference image reading unit 160 in FIG. 26, the number of pixels by duplication in the generation pixel is reduced.
  • the reference image reading unit 180 refers to Processing similar to that performed by the image reading unit 160 is performed.
  • the generation pixels used to generate the prediction image are represented by, for example, a square with polka dots, diagonal lines, or both diagonal lines in FIG. It will be.
  • a square represents a reference pixel.
  • a square with polka dots represents a reference pixel within the size range of an inter prediction block among reference pixels used for generating a prediction image
  • a square with a diagonal line represents an inter prediction. Reference pixels in a range exceeding the block size range are shown.
  • the squares with both diagonal lines represent the duplication of the outermost reference pixel used for generating the predicted image. The same applies to FIGS. 35 and 36 described later.
  • the outermost prediction pixel is generated using six generation pixels including four reference pixels and two duplicated pixels. Further, the prediction pixel one inner side than the prediction pixel is generated using six generation pixels including five reference pixels and one duplicated pixel. Further, the prediction pixel including the innermost prediction pixel inside the prediction pixel is generated using six reference pixels as generation pixels. As a result, the reference pixel range read from the frame memory 22 is 9 ⁇ 9 pixels.
  • the generation pixel used for the leftmost prediction pixel is composed of five reference pixels and one pixel by duplication.
  • the horizontal range of the reference pixels read from the frame memory 22 is increased by one as compared with the case of FIG. 34, but since the vertical filter processing is not performed, the vertical range is the inter prediction range. It is the same as the block size. Therefore, the reference pixel range read from the frame memory 22 is 10 ⁇ 8 pixels, which is smaller than the case of FIG.
  • the generation pixel used for the uppermost prediction pixel is composed of five reference pixels and one pixel by duplication.
  • the vertical range of the reference pixels read from the frame memory 22 is increased by one compared to the case of FIG. 34, but since the horizontal filter processing is not performed, the horizontal range is the inter prediction range. It is the same as the block size. Therefore, the reference pixel range read from the frame memory 22 is 8 ⁇ 10 pixels, which is smaller than the case of FIG.
  • the inter prediction unit 24 in FIG. 30 has a case where only one fractional value of the horizontal component and the vertical component of the motion vector is not 0, compared to a case where the fractional value of both components is not 0, Increase the number of reference pixels used to generate the outer predicted pixels and reduce the number of pixels due to replication. As a result, it is possible to improve the accuracy of inter prediction compared to the inter prediction unit 24 of FIG. 26 while reducing the amount of memory bandwidth used in the frame memory 22.
  • the number of reference pixels used for generation of the outer prediction pixel is increased so as to be equal to or less than the range of the reference pixel in the case, the maximum memory bandwidth of the frame memory 22 compared to the inter prediction unit 24 of FIG. The accuracy of inter prediction can be improved without increasing the usage amount.
  • DRAM Dynamic Random Access Memory
  • frame memory 22 In general, DRAM (Dynamic Random Access Memory) is often mounted as the frame memory 22, and the manufacturing cost is high when the memory bandwidth usage is large as in the prior art.
  • FIGS. 37 and 38 are flowcharts illustrating details of the inter prediction process in step S15 of FIG. 20 by the inter prediction unit 24 of FIG.
  • steps S181 to S207 of FIGS. 37 and 38 are the same as steps S150 to S207 of FIGS. 28 and 29 except that the processes of steps S151 and S152 are replaced with the process of step S182 and the process of step S154 is replaced with the process of step S184. This is the same as the processing in S177.
  • step S182 in FIG. 37 is a read process for reading out reference pixels by the reference image reading unit 180, and details of the read process will be described with reference to FIG. 39 described later.
  • the reference image reading unit 180 determines the reference pixel used for generating the prediction-compatible pixel based on the position of the prediction pixel to be generated on the prediction image and the fractional value of the motion vector. Decide on a number between 4 and 6. For example, the reference image reading unit 180, when the position of the prediction pixel to be generated on the prediction image is the leftmost, the fractional value of the horizontal component of the motion vector is not 0, and the fractional value of the vertical component is 0, The number of reference pixels is determined to be 5.
  • FIG. 39 is a flowchart for explaining the details of the reading process in step S182 of FIG.
  • step S221 the reference image reading unit 180 determines whether the fractional values of both the horizontal component and the vertical component of the motion vector supplied from the motion prediction unit 25 are other than zero.
  • step S221 If it is determined in step S221 that the fractional values of both the horizontal and vertical components of the motion vector are other than 0, the process proceeds to step S222. That is, when both the horizontal and vertical positions of the prediction pixel on the reference image are fractional positions (for example, when the prediction pixel is Sub pel e, f, g, i, j, k, mn, o) The process proceeds to step S222.
  • the reference image reading unit 180 selects a block of the size of the inter prediction block, a block of 1 pixel width below the block, and a block of 1 pixel width on the right side of the block composed of both blocks.
  • the range is determined as a reference pixel range. For example, when the size of the inter prediction block is 8 ⁇ 8 pixels, the reference image reading unit 180 determines 9 ⁇ 9 pixels as the reference pixel range. Then, the process proceeds to step S226.
  • step S221 if it is determined in step S221 that the fractional value of either the horizontal component or the vertical component of the motion vector is not other than 0, in step S223, the reference image reading unit 180 determines the fractional value of the horizontal component of the motion vector. Determine if only is non-zero.
  • step S223 If it is determined in step S223 that only the fractional value of the horizontal component of the motion vector is other than 0, the process proceeds to step S224. That is, when the predicted pixel in the horizontal position on the reference image is a fractional position and the vertical position is an integer position (for example, when the predicted pixel is Sub pel a to c), the process proceeds to step S224. .
  • step S224 the reference image reading unit 180 determines a block having the size of the inter prediction block and a 1-pixel wide block on the left and right sides of the block as the reference pixel range. For example, when the size of the inter prediction block is 8 ⁇ 8 pixels, the reference image reading unit 180 determines 10 ⁇ 8 pixels as the reference pixel range. Then, the process proceeds to step S226.
  • step S223 if it is determined in step S223 that the fractional value of the horizontal component of the motion vector is 0, the process proceeds to step S225. That is, when the position of the prediction pixel on the reference image in the vertical direction is a fractional position and the position in the horizontal direction is an integer position (for example, when the prediction pixel is Sublpel) d, h, l), or in the horizontal direction If both the vertical and vertical positions are integer positions, the process proceeds to step S225.
  • step S225 the reference image reading unit 180 determines, as the reference pixel range, a block having the size of the inter prediction block and a block of one pixel width on the upper and lower sides of the block. For example, when the size of the inter prediction block is 8 ⁇ 8 pixels, the reference image reading unit 180 determines 8 ⁇ 10 pixels as the reference pixel range. Then, the process proceeds to step S226.
  • step S226 the reference image reading unit 180 reads the reference pixels in the range determined by the processing in step S222, S224, or S225 at the position corresponding to the motion vector from the frame memory 22, and temporarily holds them. Then, the process returns to step S182 in FIG. 37, and the process proceeds to step S183.
  • the number of generation pixels used for generation of the prediction-compatible pixels is six, but the number of generation pixels may be eight.
  • the size of the inter prediction block is 8 ⁇ 8 pixels.
  • a numbered square represents a prediction-corresponding pixel
  • a numbered and non-alphabetized square represents a reference pixel.
  • the squares with polka dots represent reference pixels within the size range of the inter prediction block among the reference pixels used for generating the prediction-compatible pixels
  • the squares with diagonal lines are inter predictions.
  • the reference pixels in a range exceeding the range of the block size are represented.
  • a square with an alphabetic character is a pixel in which a reference pixel is duplicated.
  • the outermost prediction-corresponding pixels are, for example, eight generation pixels including six reference pixels. Generated.
  • the prediction corresponding pixel that is one inner side from the prediction corresponding pixel is generated using eight generation pixels including seven reference pixels, and includes the innermost prediction corresponding pixel inside the prediction corresponding pixel.
  • the prediction corresponding pixel is generated using eight reference pixels as generation pixels.
  • the generation target is arranged in the horizontal direction, the horizontal position is a 1/2 pixel position, and the outermost number 1 among the eight prediction corresponding pixels whose vertical position is an integer position.
  • the prediction-corresponding pixels represented by the squares marked with a total of six reference pixels located two to the left and four to the right of the prediction-corresponding pixels are used as generation pixels.
  • the leftmost reference pixel of the six reference pixels is duplicated as the two pixels at the left side of the reference pixel, and the two pixels and the six references as the generation pixels
  • Eight new pixels for generation composed of pixels are used for generation of prediction-compatible pixels.
  • the generation target is the prediction-corresponding pixel represented by the square with the number 2 one inward of the prediction-corresponding pixel represented by the square with the number 1, the three are located on the left of the prediction-corresponding pixel.
  • a total of seven reference pixels located four on the right are used as generation pixels.
  • the leftmost reference pixel of the seven reference pixels is duplicated as one integer position pixel on the left side of the reference pixel, and the one pixel and seven references as generation pixels
  • Eight new pixels for generation composed of pixels are used for generation of prediction-compatible pixels.
  • the generation target is the prediction corresponding pixels represented by the squares numbered 3 to 6 inside the prediction corresponding pixels represented by the square numbered 2, four positions are placed on the left and right sides of the prediction corresponding pixels.
  • a total of eight reference pixels are used as generation pixels for generation of prediction-compatible pixels.
  • the generation target is a prediction-corresponding pixel represented by the square with the number 7 that is one inner side than the prediction-corresponding pixel represented by the square with the outermost number 8, 3 to the right of the prediction-corresponding pixel
  • a total of seven reference pixels located four and four on the left are used as generation pixels.
  • the rightmost reference pixel of the seven reference pixels is duplicated as a pixel at one integer position on the right side of the reference pixel, and a new pixel composed of the one pixel and the seven reference pixels.
  • the eight generation pixels are used for generating the prediction-compatible pixels.
  • the generation target is the prediction corresponding pixel represented by the square with the outermost number 8
  • the pixel for generation is duplicated as two integer-positioned pixels on the right side of the reference pixel, and the two pixels and eight reference pixels consisting of six reference pixels
  • Sub pel as the prediction corresponding pixel generated as described above is used similarly to the reference pixel to generate eight generation pixels, and the eight generation pixels are used for generation of the prediction pixel. .
  • the generation pixels used for generating the prediction image are represented by, for example, polka dots, diagonal lines, or squares with both diagonal lines in FIG. That is, the reference pixel range read from the frame memory 22 is 11 ⁇ 11 pixels.
  • a square represents a reference pixel.
  • a square with polka dots represents a reference pixel within the size range of an inter prediction block among reference pixels used for generating a prediction image
  • a square with a diagonal line represents an inter prediction. Reference pixels in a range exceeding the block size range are shown.
  • the squares with both diagonal lines represent the duplication of the outermost reference pixel used for generating the predicted image. The same applies to FIGS. 42 and 43 described later.
  • FIG. 42 is a diagram illustrating an example of a generation pixel used for generating a predicted image when the fractional value of the horizontal component of the motion vector is not 0 and the fractional value of the vertical component is 0.
  • the size of the inter prediction block is 8 ⁇ 8 pixels.
  • the generation pixel used for the leftmost and rightmost prediction pixels is composed of seven reference pixels and one pixel by duplication as shown by the dotted line in FIG. Further, the generation pixels used for all the prediction pixels inside these prediction pixels are configured by eight reference pixels.
  • the horizontal range of the reference pixels read from the frame memory 22 is increased by two compared to the case of FIG. 41. However, since the vertical filter processing is not performed, the vertical range is the inter prediction range. It is the same as the block size. Therefore, the reference pixel range read from the frame memory 22 is 13 ⁇ 8 pixels, which is smaller than that in the case of FIG.
  • FIG. 43 is a diagram illustrating an example of a generation pixel used for generating a predicted image when the fractional value of the vertical component of the motion vector is not 0 and the fractional value of the horizontal component is 0.
  • the size of the inter prediction block is 8 ⁇ 8 pixels.
  • the generation pixels used for the uppermost and lower prediction pixels are composed of seven reference pixels and one pixel by duplication as shown by the dotted lines in FIG. Further, the generation pixels used for all the prediction pixels inside these prediction pixels are configured by eight reference pixels.
  • the vertical range of the reference pixels read from the frame memory 22 is increased by two compared to the case of FIG. 41. However, since the horizontal filter processing is not performed, the horizontal range is inter-prediction. It is the same as the block size. Therefore, the reference pixel area read from the frame memory 22 is 8 ⁇ 13 pixels, which is smaller than the case of FIG.
  • the configuration of the inter prediction unit 24 and the processing of the inter prediction unit 24 in the case where the number of generation pixels used for generation of the prediction-compatible pixels is eight is that the number of generation pixels is not six but eight. This is the same except for a point and the number of reference pixels included in the generation pixel, which is either 7 or 8 instead of 4 to 6, and the description is omitted.
  • FIG. 44 is a block diagram illustrating a fourth configuration example of the inter prediction unit 24 in FIG. 3.
  • the inter prediction unit 24 in FIG. 44 changes the number of reference pixels used for generation of the outer prediction pixel according to the size of the inter prediction block.
  • the reference image reading unit 200 of the inter prediction unit 24 in FIG. 44 is the same as the reference image reading unit 41 in FIG. 4, among the inter prediction mode information supplied from the motion prediction unit 25 in FIG. 3. Based on the reference index and the prediction direction, a reference image among the images stored in the frame memory 22 is specified.
  • the reference image reading unit 200 determines a reference pixel range used for generating a predicted image based on the block size and the motion vector in the inter prediction mode information.
  • the reference image reading unit 200 reads the reference pixels in the determined range from the frame memory 22 based on the motion vector, and temporarily holds them.
  • the reference image reading unit 200 reads, for each prediction pixel, a reference pixel used for generating the prediction pixel among the temporarily held reference pixels.
  • the number of reference pixels used for generating the prediction pixel is any one of 4 to 6.
  • the reference image reading unit 200 supplies the read reference pixels to the pixel generation unit 201.
  • the pixel generation unit 201 uses the reference pixel supplied from the reference image reading unit 200 as a generation pixel, similarly to the pixel generation unit 161 of FIG. Further, the pixel generation unit 201 is based on the size of the inter prediction block, the fractional value of the motion vector, and the position of the prediction pixel on the prediction image in the inter prediction mode information supplied from the motion prediction unit 25. Determine the number of Sub pels used to generate the predicted pixels. Then, the pixel generation unit 201 reads, from the intermediate result memory 50, the determined number of Sub ⁇ ⁇ pels corresponding to the generation target prediction pixels as generation pixels.
  • the number of Sub pels used to generate the prediction pixel is any one of 4 to 6.
  • the pixel generation unit 201 sets the outer pixels of the generation pixels to the number of generation pixels and six differences. Only 6 pixels including the replicated pixel and the generation pixel are generated as new generation pixels. The pixel generation unit 201 supplies the generated six generation pixels to the 6-tap FIR filter 45.
  • steps S151 and S152 are replaced with step S232, step S154 is replaced with step S234, and step S168 is replaced with step S248.
  • the processing is the same as the processing in steps S150 to S177 in FIGS.
  • the reference image reading unit 200 uses the reference pixel used for generating the prediction-compatible pixel based on the position of the prediction pixel to be generated on the prediction image and the size of the inter prediction block.
  • the number is determined to be 4 to 6.
  • the pixel generation unit 201 reads out from the intermediate result memory 50 based on the vertical position on the prediction image of the prediction pixel to be generated and the size of the inter prediction block.
  • the number is determined to be 4 to 6.
  • FIG. 47 is a flowchart for explaining the details of the reading process in step S232 of FIG.
  • step S261 in FIG. 47 the reference image reading unit 200 of the inter prediction unit 24 in FIG. 44 has the inter prediction block size in the inter prediction mode information supplied from the motion prediction unit 25 smaller than 8 ⁇ 8 pixels. Determine whether or not.
  • step S261 When it is determined in step S261 that the size of the inter prediction block is smaller than 8 ⁇ 8 pixels, that is, for example, the size of the inter prediction block is 4 ⁇ 4 pixels, 8 ⁇ 4 pixels, or 4 ⁇ 8 pixels.
  • the process proceeds to step S262.
  • the reference image reading unit 200 selects a block of the size of the inter prediction block, a block of 1 pixel width below the block, and a block of 1 pixel width on the right side of the block composed of both blocks.
  • the range is determined as a reference pixel range. For example, when the size of the inter prediction block is 4 ⁇ 4 pixels, the reference image reading unit 200 determines 5 ⁇ 5 pixels as the reference pixel range. Then, the process proceeds to step S266.
  • step S261 when it is determined in step S261 that the size of the inter prediction block is not smaller than 8 ⁇ 8 pixels, in step S263, the reference image reading unit 200 determines that the size of the inter prediction block is smaller than 16 ⁇ 16 pixels. Determine whether or not.
  • step S263 When it is determined in step S263 that the size of the inter prediction block is smaller than 16 ⁇ 16 pixels, that is, for example, the size of the inter prediction block is 8 ⁇ 8 pixels, 16 ⁇ 8 pixels, or 8 ⁇ 16 pixels.
  • the process proceeds to step S264.
  • step S264 the reference image reading unit 200 determines the size of the inter prediction block, the one pixel width block on the upper side and the lower side of the block, and 1 on the left side and the right side of the block including these three blocks.
  • a block having a pixel width is determined as a reference pixel range. For example, when the size of the inter prediction block is 8 ⁇ 8 pixels, the reference image reading unit 200 determines 10 ⁇ 10 pixels as the reference pixel range. Then, the process proceeds to step S266.
  • step S263 when it is determined in step S263 that the size of the inter prediction block is not smaller than 16 ⁇ 16 pixels, that is, for example, the size of the inter prediction block is 16 ⁇ 16 pixels, 32 ⁇ 16 pixels, 16 ⁇ If it is 32 pixels and 32 ⁇ 32 pixels, the process proceeds to step S265.
  • step S ⁇ b> 265 the reference image reading unit 200 performs the inter prediction block size block, the upper one-pixel width block and the lower two-pixel width block, and the block including these three blocks.
  • the left one-pixel wide block and the right two-pixel wide block are determined as reference pixel ranges. For example, when the size of the inter prediction block is 16 ⁇ 16 pixels, the reference image reading unit 200 determines 19 ⁇ 19 pixels as the reference pixel range. Then, the process proceeds to step S266.
  • step S266 the reference image reading unit 200 reads the reference pixels in the range determined by the processing in step S262, S264, or S265 at the position corresponding to the motion vector from the frame memory 22, and temporarily holds them. Then, the process returns to step S232 in FIG. 45, and the process proceeds to step S233.
  • the inter prediction unit 24 in FIG. 44 increases the number of reference pixels used for generation of the outer prediction pixels, as compared with the case where the block size is small. Reduce the number of As a result, it is possible to improve the accuracy of inter prediction compared to the inter prediction unit 24 of FIG. 26 while reducing the amount of memory bandwidth used in the frame memory 22.
  • the ratio of the reference pixel range used for generating a predicted image at an arbitrary fractional position with respect to the inter prediction block size (hereinafter, referred to as the inter prediction block size when the inter prediction block size is large).
  • the inter prediction block size when the inter prediction block size is large.
  • the reference pixel ratio is larger than when the block size is large.
  • the size of the inter prediction block is 4 ⁇ 4 pixels
  • the size of the reference pixel area that needs to be read out is 5 ⁇ 5 pixels
  • the inter prediction unit 24 in FIG. 44 performs the outer prediction so that the reference pixel ratio when the inter prediction block size is large is equal to or less than the reference pixel ratio when the inter prediction block size is small, as in the reading process of FIG. 47.
  • FIG. 48 is a block diagram illustrating a fifth configuration example of the inter prediction unit 24 in FIG. 3.
  • the inter prediction unit 24 shown in FIG. 48 mainly includes a reference image reading unit 210 instead of the reference image reading unit 160 and a pixel generation unit 211 instead of the pixel generation unit 161. This is different from the 26 configuration.
  • the inter prediction unit 24 in FIG. 48 changes the number of reference pixels used for generation of the outer prediction pixel according to the prediction direction.
  • the reference image reading unit 210 of the inter prediction unit 24 in FIG. 48 is the same as the reference image reading unit 41 in FIG. 4, among the inter prediction mode information supplied from the motion prediction unit 25 in FIG. 3. Based on the reference index and the prediction direction, a reference image among the images stored in the frame memory 22 is specified.
  • the reference image reading unit 210 determines a reference pixel range used for generating a predicted image based on the prediction direction, the block size, and the motion vector in the inter prediction mode information.
  • the reference image reading unit 210 reads the reference pixels in the determined range from the frame memory 22 based on the motion vector, and temporarily holds them.
  • the reference image reading unit 210 reads a reference pixel used to generate a prediction pixel among the temporarily stored reference pixels for each prediction pixel.
  • the number of reference pixels used for generating the prediction pixel is any one of 4 to 6.
  • the reference image reading unit 210 supplies the read reference pixels to the pixel generation unit 211.
  • the pixel generation unit 211 uses the reference pixel supplied from the reference image reading unit 210 as a generation pixel, similarly to the pixel generation unit 161 in FIG. Further, the pixel generation unit 211 generates the prediction pixel based on the prediction direction, the fractional value of the motion vector, and the position of the prediction pixel on the prediction image in the inter prediction mode information supplied from the motion prediction unit 25. Determine the number of Sub pels used for the. Then, the pixel generation unit 211 reads the determined number of Sub pels corresponding to the generation target prediction pixels from the intermediate result memory 50 as generation pixels.
  • the number of Sub pels used to generate the prediction pixel is any one of 4 to 6.
  • the pixel generation unit 211 sets the outer pixels of the generation pixels to the number of generation pixels and six differences. Only 6 pixels including the replicated pixel and the generation pixel are generated as new generation pixels. The pixel generation unit 211 supplies the generated six generation pixels to the 6-tap FIR filter 45.
  • steps S151 and S152 are replaced with the process in step S272
  • the process in step S154 is replaced with the process in step S274
  • the process in step S168 is replaced with the process in step S288.
  • the processing is the same as the processing in steps S150 to S177 in FIGS.
  • the reference image reading unit 210 sets the number of reference pixels used for generation of the prediction corresponding pixels to 4 based on the position and the prediction direction of the prediction pixel to be generated on the prediction image. To any one of 6
  • the pixel generation unit 211 calculates the number of Sub pels to be read from the intermediate result memory 50 based on the vertical position and prediction direction of the prediction pixel to be generated on the prediction image. To any one of 6
  • FIG. 51 is a flowchart for explaining the details of the reading process in step S272 of FIG.
  • step S301 in FIG. 51 the reference image reading unit 210 of the inter prediction unit 24 in FIG. 48 determines whether the prediction direction in the inter prediction mode information supplied from the motion prediction unit 25 is Bi-prediction. .
  • step S301 If it is determined in step S301 that the prediction direction is Bi-prediction, the process proceeds to step S302.
  • the reference image reading unit 210 selects a block having the size of an inter prediction block, a block having a width of one pixel below the block, and a block having a width of one pixel on the right side of the block including both blocks. The range is determined as a reference pixel range. Then, the process proceeds to step S304.
  • step S301 if it is determined in step S301 that the prediction direction is not Bi-prediction, that is, if the prediction direction is L0 prediction or L1 prediction, the process proceeds to step S303.
  • step S303 the reference image reading unit 210 performs the inter prediction block size block, the upper one-pixel width block and the lower two-pixel width block of the block, and the block including these three blocks. The left one-pixel wide block and the right two-pixel wide block are determined as reference pixel ranges. Then, the process proceeds to step S304.
  • step S304 the reference image reading unit 210 reads the reference pixels in the range determined by the processing in step S302 or S303 at the position corresponding to the motion vector from the frame memory 22, and temporarily holds them. Then, the process returns to step S272 in FIG. 49, and the process proceeds to step S273.
  • the inter prediction unit 24 in FIG. 48 uses the reference pixel used for generating the outer prediction pixel when the prediction direction is L0 prediction or L1 prediction as compared with the case where the prediction direction is Bi-prediction. And reduce the number of pixels due to duplication. As a result, it is possible to improve the accuracy of inter prediction compared to the inter prediction unit 24 of FIG. 26 while reducing the amount of memory bandwidth used in the frame memory 22.
  • the outside of the reference pixel when the prediction direction is L0 prediction or L1 prediction is equal to or less than the reference pixel range when the prediction direction is Bi-prediction.
  • the inter prediction accuracy is increased without increasing the maximum amount of memory bandwidth of the frame memory 22 compared to the inter prediction unit 24 of FIG. Can be improved.
  • the inter prediction unit 24 in FIG. 48 sets the outer side so that the reference pixel range in which the prediction direction is L0 prediction or L1 prediction is equal to or less than the reference pixel range in the case where the prediction direction is Bi-prediction.
  • the reference image reading unit 41 in FIG. 4 the reference image reading unit 160 in FIG. 26, the reference image reading unit 180 in FIG. 30, the reference image reading unit 200 in FIG. 44, and the reference image reading unit 210 in FIG.
  • a block having the size of the inter prediction block at the position corresponding to the vector is read from the frame memory 22 and output as a prediction image as it is.
  • FIG. 52 is a block diagram illustrating a sixth configuration example of the inter prediction unit 24 in FIG. 3.
  • the inter prediction unit 24 in FIG. 52 mainly includes a reference image reading unit 220 instead of the reference image reading unit 160 and a pixel generation unit 221 instead of the pixel generation unit 161. This is different from the 26 configuration.
  • the inter prediction unit 24 in FIG. 52 changes the number of reference pixels used for generating the outer prediction pixel in accordance with the motion vector, the size of the inter prediction block, and the prediction direction.
  • the reference image reading unit 220 of the inter prediction unit 24 in FIG. 52 is the same as the reference image reading unit 41 in FIG. 4, among the inter prediction mode information supplied from the motion prediction unit 25 in FIG. 3. Based on the reference index and the prediction direction, a reference image among the images stored in the frame memory 22 is specified.
  • the reference image reading unit 220 determines a reference pixel range used for generating a prediction image based on the prediction direction and the block size in the inter prediction mode information, and the motion vector.
  • the reference image reading unit 220 reads the reference pixels in the determined range from the frame memory 22 and temporarily holds them.
  • the reference image reading unit 220 reads, for each prediction pixel, a reference pixel used for generation of the prediction pixel among the temporarily held reference pixels.
  • the number of reference pixels used for generating the prediction pixel is any one of 2 to 6.
  • the reference image reading unit 220 supplies the read reference pixels to the pixel generation unit 221.
  • the pixel generation unit 221 uses the reference pixel supplied from the reference image reading unit 220 as a generation pixel, similarly to the pixel generation unit 161 of FIG. Further, the pixel generation unit 221 is based on the block size and the prediction direction, the fractional value of the motion vector, and the position of the prediction pixel on the prediction image in the inter prediction mode information supplied from the motion prediction unit 25. Determine the number of Sub pels used to generate the predicted pixels. Then, the pixel generation unit 221 reads the determined number of Sub pels corresponding to the generation target prediction pixels from the intermediate result memory 50 as generation pixels.
  • the number of Sub pels used for generating the prediction pixel is any one of 2 to 6.
  • the pixel generation unit 221 determines the outer pixels of the generation pixels as the number of generation pixels and six differences. Only 6 pixels including the replicated pixel and the generation pixel are generated as new generation pixels. The pixel generation unit 221 supplies the generated six generation pixels to the 6-tap FIR filter 45.
  • Reference pixel range example 53 and 54 show examples of the relationship between the reference pixel range determined by the reference image reading unit 220 in FIG. 52, the prediction pixel group corresponding to the motion vector, the inter prediction block size, and the prediction direction.
  • FIG. 52 shows examples of the relationship between the reference pixel range determined by the reference image reading unit 220 in FIG. 52, the prediction pixel group corresponding to the motion vector, the inter prediction block size, and the prediction direction.
  • FIG. 53 is a diagram illustrating an example of the relationship when the reference pixel ratio is 4 or less
  • FIG. 54 is a diagram illustrating an example of the relationship when the reference pixel ratio is 5 or less.
  • Inner is a predicted pixel when the fractional values of both the horizontal component and the vertical component of the motion vector are other than 0 (for example, Sub pel e, f, g, i, j, k , mn, o).
  • Outer h represents a group of predicted pixels (for example, Sub pel a to c) when the fractional value of the horizontal component of the motion vector is other than 0 and the fractional value of the vertical component is 0.
  • Outer v represents a group of predicted pixels (for example, Sub pel d, h, l) when the fractional value of the vertical component of the motion vector is other than 0 and the fractional value of the horizontal component is 0.
  • FIGS. 58 to 60 described later are the fractional values of both the horizontal component and the vertical component of the motion vector are other than 0 (for example, Sub pel e, f, g, i, j, k , mn, o).
  • Outer h represents a group of
  • the reference pixel for L0 prediction Is determined to be 6 ⁇ 10 pixels
  • the range of the mountain villa pixels for L1 prediction is determined to be 8 ⁇ 8 pixels.
  • step S311 of FIG. 55 the reference image reading unit 220 (FIG. 52) of the inter prediction unit 24 is based on the prediction direction and the reference index in the inter prediction mode information supplied from the motion prediction unit 25 of FIG. A reference image among the images stored in the frame memory 22 is specified.
  • step S312 the reference image reading unit 220 performs a reading process of reading the reference image. Details of this reading process will be described with reference to FIG.
  • step S313 the reference image reading unit 220 determines, as a generation target prediction pixel, a prediction pixel that has not yet been determined as a generation target prediction pixel in the process of step S313 among the prediction pixels constituting the prediction image.
  • the processes of steps S314 to S323 below are performed for each prediction corresponding pixel.
  • step S ⁇ b> 314 the reference image reading unit 220 uses the reference pixel used to generate the prediction-compatible pixel based on the position of the prediction pixel to be generated on the predicted image, the motion vector, the size of the inter prediction block, and the prediction direction.
  • the number is determined to be 2 to 6.
  • step S315 the reference image reading unit 220 determines, among the reference pixels held in step S312, based on the number of reference pixels determined in step S314 and the position of the prediction pixel to be generated on the reference image. A reference pixel used to generate a prediction-compatible pixel is read out. The reference image reading unit 220 supplies the read reference pixels to the pixel generation unit 221.
  • step S316 the 6-tap filter coefficient memory 48 is based on the fractional value of the component corresponding to the prediction corresponding pixel of the motion vector supplied from the motion prediction unit 25, and stores the filter coefficient in association with the fractional value. Is supplied to the 6-tap FIR filter 45.
  • step S317 the pixel generation unit 221 determines whether the number of reference pixels supplied from the reference image reading unit 220 is smaller than six. If it is determined in step S317 that the number of reference pixels is smaller than 6, the process proceeds to step S318.
  • step S318 the pixel generation unit 221 duplicates the reference pixel outside the reference pixels supplied from the reference image reading unit 220 as a pixel outside the reference pixel, and includes the duplicated pixel and the reference pixel. Six generation pixels are generated. Then, the pixel generation unit 221 supplies the generated six generation pixels to the 6-tap FIR filter 45, and the process proceeds to step S319.
  • step S317 when it is determined in step S317 that the number of reference pixels is not smaller than 6, that is, when the number of reference pixels is 6, the pixel generation unit 221 uses the six reference pixels as generation pixels.
  • the data is supplied to the tap FIR filter 45, and the process proceeds to step S319.
  • steps S319 to S325 Since the processing of steps S319 to S325 is the same as the processing of steps S161 to S167 of FIGS. 28 and 29, description thereof will be omitted.
  • step S326 the pixel generation unit 221 determines the intermediate result based on the vertical position of the prediction pixel to be generated on the predicted image, the size of the inter prediction block, and the prediction direction.
  • the number of Sub pels read from the memory 50 is determined as any one of 2 to 6.
  • step S327 the pixel generation unit 221 reads Sub pel as a generation pixel from the intermediate result memory 50 based on the number of Sub pels determined in step S326 and the position of the prediction pixel to be generated on the reference image. .
  • step S328 based on the fractional value of the vertical component of the motion vector supplied from the motion prediction unit 25, the 6-tap filter coefficient memory 48 uses the 6-tap FIR filter to store the filter coefficient stored in association with the fractional value. 45. Then, the process proceeds to step S329.
  • steps S329 and S330 is the same as the processing in steps S317 and S318 in FIG. 55 except that the processing is performed for Sub-pel instead of the reference pixel, and thus description thereof is omitted. Also, the processing of steps S331 to S333 is the same as the processing of steps S175 to S177 in FIG.
  • FIG. 57 is a flowchart for explaining the details of the reading process in step S312 of FIG.
  • step S341 of FIG. 57 the reference image reading unit 220 of the inter prediction unit 24 of FIG. 52 determines whether the fractional values of both the horizontal component and the vertical component of the motion vector supplied from the motion prediction unit 25 are zero. judge.
  • step S341 When it is determined in step S341 that the fractional values of both the horizontal component and the vertical component of the motion vector are not 0, in step S342, the reference image reading unit 220 determines whether the prediction direction is Bi-prediction. .
  • step S343 the reference image reading unit 220 determines whether the fractional values of both the horizontal component and the vertical component of the motion vector are other than zero. To do.
  • step S343 If it is determined in step S343 that the fractional values of both the horizontal and vertical components of the motion vector are other than 0, the process proceeds to step S344.
  • step S344 the reference image reading unit 220 determines the reference pixel range corresponding to the inter prediction block size, Bi-prediction, and Inner in the inter prediction mode information. Then, the process proceeds to step S353.
  • step S343 when it is determined in step S343 that the fractional value of either the horizontal component or the vertical component of the motion vector is 0, in step S345, the reference image reading unit 220 determines only the fractional value of the horizontal component of the motion vector. Determine if is non-zero.
  • step S345 If it is determined in step S345 that only the fractional value of the horizontal component of the motion vector is other than 0, the process proceeds to step S346.
  • step S346 the reference image reading unit 220 determines a reference pixel range corresponding to the inter prediction block size, Bi-prediction, and Outer h in the inter prediction mode information. Then, the process proceeds to step S353.
  • step S345 determines a reference pixel range corresponding to the inter prediction block size, Bi-prediction, and OuterOutv in the inter prediction mode information. Then, the process proceeds to step S353.
  • step S342 If it is determined in step S342 that the prediction direction is not Bi-prediction, that is, if the prediction direction is L0 prediction or L1 prediction, the process proceeds to step S348.
  • step S348 If it is determined in step S348 that the fractional values of both the horizontal and vertical components of the motion vector are other than 0, the process proceeds to step S349.
  • step S349 the reference image reading unit 220 determines the size of the inter prediction block in the inter prediction mode information, the L0 prediction / L1 prediction, and the reference pixel range corresponding to the inner. Then, the process proceeds to step S353.
  • step S350 the reference image reading unit 220 determines only the fractional value of the horizontal component of the motion vector. Determine if is non-zero.
  • step S350 If it is determined in step S350 that only the fractional value of the horizontal component of the motion vector is other than 0, the process proceeds to step S351.
  • step S ⁇ b> 351 the reference image reading unit 220 determines the size of the inter prediction block in the inter prediction mode information, the L0 prediction / L1 prediction, and the reference pixel range corresponding to Outer h. Then, the process proceeds to step S353.
  • step S350 determines a reference pixel range corresponding to the size of the block of inter prediction, L0 prediction / L1 prediction, and Outer v in the inter prediction mode information. Then, the process proceeds to step S353.
  • step S353 the reference image reading unit 220 reads, from the frame memory 22, the reference pixels in the range determined by the processing in step S344, S346, S347, S349, S351, or S352 at the position corresponding to the motion vector. Hold on. Then, the process returns to step S312 of FIG. 55, and the process proceeds to step S313.
  • step S354 the reference image reading unit 220 determines the inter prediction block at the position corresponding to the motion vector. Are read out and output as a predicted image. Then, the process returns to step S15 in FIG. 20, and the process proceeds to step S16.
  • the number of generation pixels used for generation of the prediction-compatible pixels is six, but the number of generation pixels is not limited to this.
  • FIG. 58 shows a reference pixel range, a prediction pixel group corresponding to a motion vector, and an interface when the number of generation pixels used for generation of the prediction corresponding pixel is eight and the reference pixel ratio is five or less. It is a figure which shows the example of the size of the block of prediction, and the relationship with a prediction direction.
  • FIG. 59 shows a reference pixel range and a prediction pixel group corresponding to a motion vector when the number of generation pixels used for generation of the prediction-compatible pixel is 8 and the reference pixel ratio is 6 or less. It is a figure which shows the example of the size of the block of inter prediction, and the relationship with a prediction direction.
  • FIG. 60 shows a range of reference pixels when the number of generation pixels used for generation of prediction-compatible pixels is 12 and the reference pixel ratio is 5 or less, a group of prediction pixels corresponding to a motion vector, It is a figure which shows the example of the size of the block of prediction, and the relationship with a prediction direction.
  • the number of reference pixels used to generate the outer prediction pixel is changed according to at least one of the motion vector, the inter prediction block size, and the prediction direction described with reference to FIGS. 30 to 60 described above. This can also be applied to the inter prediction unit 24 in FIG.
  • the number of generation pixels used for generating the prediction pixels depends on the position of the prediction pixel on the prediction image. Even in the case of a change, the number of reference pixels used for generating the outer prediction pixel can be changed according to at least one of the motion vector, the inter prediction block size, and the prediction direction. This case will be described below.
  • FIG. 61 is a block diagram illustrating a seventh configuration example of the inter prediction unit 24 in FIG. 3.
  • the inter prediction unit 24 in FIG. 61 mainly includes a reference pixel reading unit 220 and a pixel distribution unit 241 instead of the reference image reading unit 41 and the pixel distribution unit 42, and a 3-tap FIR. 4 is different from the configuration of FIG. 4 in that a filter 242, a 5-tap FIR filter 243, a 3-tap filter coefficient memory 244, and a 5-tap filter coefficient memory 245 are newly provided.
  • the pixel sorting unit 241 of the inter prediction unit 24 uses the reference pixels supplied from the reference image reading unit 220 as generation pixels, similarly to the pixel sorting unit 42 of FIG. Further, the pixel distribution unit 241 is based on the block size and prediction direction, the fractional value of the motion vector, and the position of the prediction pixel on the prediction image in the inter prediction mode information supplied from the motion prediction unit 25. Determine the number of Sub pels used to generate the predicted pixels. Then, the pixel distribution unit 241 reads out the determined number of Sub pels corresponding to the generation target prediction pixels from the intermediate result memory 50 as generation pixels.
  • the number of Sub pels used for generating the prediction pixel is any one of 2 to 6.
  • the pixel sorting unit 241 selects the generation pixel as a 2-tap FIR filter 43, a 3-tap FIR filter 242, a 4-tap FIR filter 44, a 5-tap FIR filter 243, or a 6-tap FIR according to the number of generation pixels.
  • the filter 45 is supplied.
  • the pixel sorting unit 241 supplies the generation pixel to the 2-tap FIR filter 43 when the number of generation pixels is two, and generates the generation pixel when the number of generation pixels is three. Pixels are supplied to a 3-tap FIR filter 242.
  • the pixel distribution unit 241 supplies the generation pixels to the 4-tap FIR filter 44, and when the number of generation pixels is 5, This is supplied to the tap FIR filter 243.
  • the pixel distribution unit 241 supplies the generation pixels to the 6-tap FIR filter 45.
  • the 3-tap FIR filter 242 functions as a calculation unit, and performs calculation using the three generation pixels supplied from the pixel sorting unit 241 and the filter coefficients supplied from the 3-tap filter coefficient memory 244.
  • the 3-tap FIR filter 242 supplies one pixel obtained as a result to the pixel selection unit 49.
  • the 5-tap FIR filter 243 functions as a calculation unit, and performs calculation using the five generation pixels supplied from the pixel sorting unit 241 and the filter coefficients supplied from the 5-tap filter coefficient memory 245.
  • the 5-tap FIR filter 243 supplies one pixel obtained as a result to the pixel selection unit 49.
  • the 3-tap filter coefficient memory 244 functions as a storage unit and stores filter coefficients for the 3-tap FIR filter 242 in association with fractional values of motion vectors. Based on the fractional value of the motion vector supplied from the motion prediction unit 25, the 3-tap filter coefficient memory 244 supplies the filter coefficient stored in association with the fractional value to the 3-tap FIR filter 242.
  • the 5-tap filter coefficient memory 245 functions as a storage unit and stores filter coefficients for the 5-tap FIR filter 243 in association with the fractional value of the motion vector.
  • the 5-tap filter coefficient memory 245 supplies the filter coefficient stored in association with the fractional value to the 5-tap FIR filter 243 based on the fractional value of the motion vector supplied from the motion prediction unit 25.
  • steps S317 and S318 of FIG. 55 are replaced with steps S367 and S368 of FIG. 62
  • the processes of steps S329 and S330 of FIG. 56 are replaced with S378 and S379 of FIG. Except for the point replaced with the process of step S311, the process is the same as the process of steps S311 to S333 of FIGS.
  • the pixel sorting unit 241 selects the reference pixel as a 2-tap FIR filter 43, 3-tap FIR filter 242, 4-tap according to the number of reference pixels supplied from the reference image reading unit 220. This is supplied to the FIR filter 44, the 5-tap FIR filter 243, or the 6-tap FIR filter 45.
  • step S368 processing by the 2-tap FIR filter 43, 3-tap FIR filter 242, 4-tap FIR filter 44, 5-tap FIR filter 243, or 6-tap FIR filter 45 to which the reference pixel is supplied from the pixel sorting unit 241 is performed. Done. Specifically, in step S368, supplied from the reference pixel and the 2-tap filter coefficient memory 46, 3-tap filter coefficient memory 244, 4-tap filter coefficient memory 47, 5-tap filter coefficient memory 245, or 6-tap filter coefficient memory 48. An operation is performed using the filter coefficient.
  • the inter prediction unit 111 of the decoding device 100 is also illustrated in FIGS. 44, 48, 52, and 61.
  • the Sub pel at the 1/4 pixel position is generated by interpolation, but the Sub pel at the 1/2 pixel position or the 1/8 pixel position is generated. You may do it. In this case, the same processing as that at the time of generating Sub pel at the 1/4 pixel position is performed except that the filter coefficients are different.
  • the number of reference pixels and the number of reference pixels used for generating predicted pixels are not limited to the numbers described above.
  • the switching position on the predicted image for the number of reference pixels used for generating the predicted pixel is not limited to the above-described position.
  • the encoding method is H.264.
  • H.264 / AVC format is used as a base, the present technology is not limited to this, and can also be applied to other encoding / decoding devices that use encoding / decoding methods for performing motion prediction / compensation processing. .
  • this technology is, for example, MPEG, H.264.
  • the image information (bit stream) compressed by the orthogonal compression such as discrete cosine transform and motion compensation, such as 26x, is transmitted via network media such as satellite broadcasting, cable television, the Internet, or mobile phones.
  • network media such as satellite broadcasting, cable television, the Internet, or mobile phones.
  • the present invention can be applied to an encoding device and a decoding device that are used for reception.
  • the present technology can be applied to an encoding device and a decoding device that are used when processing a storage medium such as an optical disk, a magnetic disk, or a flash memory.
  • the present technology can also be applied to a motion prediction / compensation device included in such an encoding device and a decoding device.
  • FIG. 64 is a block diagram illustrating an eighth configuration example of the inter prediction unit 24 in FIG. 3.
  • the inter prediction unit 24 in FIG. 64 mainly includes a reference image reading unit 251, a pixel output unit 252, and a 6 tap filter coefficient instead of the reference image reading unit 160, the pixel generation unit 161, and the 6 tap filter coefficient memory 48.
  • the point where the memory 253 is provided is different from the configuration of FIG.
  • the inter prediction unit 24 in FIG. 64 has the number of generation pixels outside the prediction pixels (hereinafter referred to as the outer generation pixels) out of the six generation pixels corresponding to the outer prediction pixels.
  • the generation pixels used for generating each prediction pixel are determined so as to be smaller than the number of outer generation pixels among the six generation pixels corresponding to.
  • the reference image reading unit 251 of the inter prediction unit 24 stores in the frame memory 22 based on the reference index and the prediction direction in the inter prediction mode information, similarly to the reference image reading unit 160 of FIG.
  • the reference image is specified among the images being displayed.
  • the reference image reading unit 251 reads the reference pixels used for generating the predicted image from the frame memory 22 based on the block size and the integer value of the motion vector in the inter prediction mode information, and temporarily holds them.
  • the reference image reading unit 251 functions as a pixel reading unit, and reads, for each prediction pixel, six reference pixels used for generating the prediction pixel among the temporarily held reference pixels. At this time, the reference image reading unit 251 determines that the number of reference pixels outside the prediction pixel among the six reference pixels of the outer prediction pixel is larger than the prediction pixel of the six reference pixels of the inner prediction pixel. Six reference pixels of each prediction pixel are determined and read out so as to be smaller than the number of outer reference pixels. The reference image reading unit 251 supplies the read six reference pixels to the pixel output unit 252.
  • the pixel output unit 252 uses the reference pixel supplied from the reference image reading unit 251 as a generation pixel, similarly to the pixel generation unit 161 in FIG. Further, the pixel output unit 252 reads six Sub pels corresponding to the generation target prediction pixels from the intermediate result memory 50 as generation pixels based on the fractional values of the motion vectors supplied from the motion prediction unit 25. . At this time, the pixel output unit 252 sets each prediction pixel so that the number of Sub pels that are the outer generation pixels of the outer prediction pixels is smaller than the number of Sub pels that are the outer generation pixels of the inner prediction pixels. 6 Sub-pels are determined and read out as the generation pixels. The pixel output unit 252 supplies six generation pixels to the 6-tap FIR filter 45.
  • the 6-tap filter coefficient memory 253 stores filter coefficients for the 6-tap FIR filter 45 in association with the fractional value of the motion vector and the number of outer generation pixels.
  • the 6-tap filter coefficient memory 253 corresponds to the fractional value and the position based on the fractional value of the motion vector supplied from the motion prediction unit 25 and the position of the prediction pixel to be generated on the prediction image.
  • the filter coefficients stored in association with the number of outer generation pixels are supplied to the 6-tap FIR filter 45.
  • FIG. 65 is a diagram illustrating an example of reference pixels in the inter prediction unit 24 in FIG. 64.
  • the horizontal position is a 1/2 pixel position
  • the vertical position is an integer position.
  • An example of reference pixels used for generating each of the predicted pixels is shown.
  • a numbered square represents a prediction pixel
  • a numbered square represents a reference pixel
  • the squares with polka dots represent reference pixels within the size range of the inter prediction block among the reference pixels used to generate the prediction pixels, and the squares with diagonal lines indicate the inter predictions. Reference pixels in a range exceeding the block size range are shown. The same applies to FIGS. 68 to 70 described later.
  • the number of outer generation pixels of the outermost prediction pixel is two, and the number of outer generation pixels of the innermost prediction pixel is three.
  • the outermost numbers 1 and 4 are assigned among the four prediction pixels arranged in the horizontal direction, the horizontal position being a 1/2 pixel position and the vertical position being an integer position.
  • the prediction pixel represented by the square is generated using the two reference pixels outside the prediction pixel and the four reference pixels inside.
  • the prediction pixels represented by the squares numbered 2 and 3 that are one inward of the prediction pixels represented by the squares numbered 1 and 4 are a total of 6 pixels located inside and outside that prediction pixel. Generated using reference pixels. That is, the number of reference pixels of the prediction pixel represented by the squares with the numbers 2 and 3 is 3, which is more than 2, which is the number of reference pixels of the prediction pixel represented by the squares with the numbers 1 and 4.
  • the inter prediction unit 24 in FIG. 64 reduces the number of outer generation pixels of the outer prediction pixels as compared with the number of outer generation pixels of the inner prediction pixels, the inter prediction unit 24 is arranged in the horizontal direction.
  • the number of reference pixels required for inter prediction is seven, which is smaller than nine in the conventional case.
  • the amount of memory bandwidth used by the frame memory 22 can be reduced.
  • the number of chips can be reduced to reduce manufacturing costs, or the number of accesses to the frame memory 22 can be reduced to reduce power consumption.
  • the number of generation pixels corresponding to the prediction pixels is all six. Therefore, by setting the number of generation pixels corresponding to the outer prediction pixels to four, the number of reference pixels arranged in the horizontal direction and required for inter prediction is the same as in the case of the inter prediction unit 24 in FIG. The accuracy of the predicted image is better than when using seven.
  • each of four predicted pixels arranged in the vertical direction the vertical position being a 1/2 pixel position
  • the horizontal position being an integer position.
  • the six reference pixels used for the outermost pixel that is, the number of reference pixels outside the prediction pixels of the upper and lower prediction pixels is 2, and the number of reference pixels outside the prediction pixel of the innermost prediction pixel is 3. To be determined.
  • the reference pixels used to generate each of the four prediction pixels arranged in the vertical direction and whose horizontal and vertical positions are 1/2 pixel positions have a number outside the prediction pixel of the outermost prediction pixel.
  • This is a reference pixel that is 2 and is used to generate a prediction-corresponding pixel in which the number outside the prediction pixel of the innermost prediction pixel is 3. Therefore, the range of reference pixels used to generate a 4x4 pixel predicted image whose horizontal and vertical positions are 1/2 pixel positions is 7x7 pixels, compared to the conventional 9x9 pixels Few.
  • steps S404 to S412 are performed for each prediction-compatible pixel.
  • the reference image reading unit 251 uses the six references used for generating the prediction-compatible pixels among the reference pixels held in step S402 based on the position of the generation target prediction pixel on the reference image. Read the pixel.
  • the reference image reading unit 251 supplies the read six reference pixels to the pixel output unit 252 as generation pixels.
  • step S405 the 6-tap filter coefficient memory 253 determines whether or not the position of the prediction corresponding pixel on the predicted image is outside. If it is determined in step S405 that the position of the prediction-corresponding pixel on the predicted image is outside, the 6-tap filter coefficient memory 253 sets the number of outer generation pixels to 1/2 of the number of all generation pixels 6. The number is set to 2 less than 3 and the process proceeds to step S406.
  • step S406 the 6-tap filter coefficient memory 253 reads out the filter coefficient stored in association with 2 as the fractional value of the motion vector and the number of pixels for outer generation, and supplies the filter coefficient to the 6-tap FIR filter 45. Then, the process proceeds to step S408.
  • step S405 if it is determined in step S405 that the position of the prediction corresponding pixel on the predicted image is not outside, the 6-tap filter coefficient memory 253 sets the number of outer generation pixels to 1 / of the number of all generation pixels 6. Assuming that 2 is 3, the process proceeds to step S407. *
  • step S407 the 6-tap filter coefficient memory 253 reads out the filter coefficient stored in association with 3 as the fractional value of the motion vector and the number of pixels for outer generation, and supplies the filter coefficient to the 6-tap FIR filter 45. Then, the process proceeds to step S408.
  • step S ⁇ b> 408 the 6-tap FIR filter 45 performs an operation using the reference pixels as the six generation pixels supplied from the pixel output unit 252 and the filter coefficients supplied from the 6-tap filter coefficient memory 253.
  • the 6-tap FIR filter 45 supplies one prediction corresponding pixel obtained as a result to the pixel selection unit 162.
  • steps S409 to S414 Since the processing of steps S409 to S414 is the same as the processing of steps S62 to S67 of FIG. 22, description thereof will be omitted.
  • step S415 the pixel output unit 252 reads six Sub pels as generation pixels from the intermediate result memory 50 based on the position of the prediction pixel to be generated on the reference image.
  • step S416 the 6-tap filter coefficient memory 253 determines whether or not the position of the prediction pixel to be generated on the predicted image is outside. If it is determined in step S416 that the position of the generation target prediction pixel on the predicted image is outside, the 6-tap filter coefficient memory 253 sets the number of outer generation pixels to 1 / of the number of all generation pixels 6. The number is set to 2 less than 3 which is 2 and the process proceeds to step S417.
  • step S417 the 6-tap filter coefficient memory 253 reads out the filter coefficient stored in association with 2 as the fractional value of the vertical component of the motion vector and the number of pixels for outer generation, and supplies the filter coefficient to the 6-tap FIR filter 45. To do. Then, the process proceeds to step S419.
  • step S416 when it is determined in step S416 that the position of the generation target prediction pixel on the prediction image is not outside, the 6-tap filter coefficient memory 253 sets the number of outer generation pixels to the number of all generation pixels 6. It is assumed that 3 is 1/2, and the process proceeds to step S418.
  • step S418 the 6-tap filter coefficient memory 253 reads out the filter coefficient stored in association with 3 as the fractional value of the vertical component of the motion vector and the number of pixels for outer generation, and supplies the filter coefficient to the 6-tap FIR filter 45. To do. Then, the process proceeds to step S419.
  • step S419 the 6-tap FIR filter 45 performs an operation using the Sub-pels as the six generation pixels supplied from the pixel output unit 252 and the filter coefficients supplied from the 6-tap filter coefficient memory 253.
  • the 6-tap FIR filter 45 supplies one Sub pel obtained as a result to the pixel selection unit 162.
  • steps S420 and S421 are the same as the processes of steps S76 and S77 in FIG.
  • the number of generation pixels used for one calculation is six, but the number of generation pixels is not limited to six.
  • the number of outer generation pixels is one half of the number of all generation pixels or one half of the number of all generation pixels.
  • the number of outer generation pixels is not limited to this.
  • the accuracy of the predicted image is improved when the number of outer generation pixels is a number close to half the number of all generation pixels. That is, when generating a predicted image, the accuracy of the predicted image is improved by using a pixel closer to the predicted pixel as a generation pixel.
  • [Other examples of reference pixels] 68 and 69 are diagrams illustrating examples of reference pixels in the inter prediction unit 24 in FIG. 64 when the number of generation pixels is eight, and FIG. 70 is the number of generation pixels seven.
  • FIG. 67 is a diagram illustrating an example of reference pixels in the inter prediction unit 24 in FIG.
  • the horizontal position is a 1/2 pixel position
  • the vertical position is an integer position.
  • An example of reference pixels used for generating each of the predicted pixels is shown.
  • the number of outer generation pixels of the outermost prediction pixel is three, and the number of outer generation pixels of the innermost prediction pixel is four.
  • the outermost numbers 1 and 4 are assigned among the four prediction pixels arranged in the horizontal direction, the horizontal position being a 1/2 pixel position and the vertical position being an integer position.
  • the prediction pixel represented by the square is generated using the three reference pixels outside the prediction pixel and the five reference pixels inside.
  • the prediction pixels represented by the squares with the numbers 2 and 3 inside the prediction pixels represented by the squares with the numbers 1 and 4 are a total of 8 pixels that are located four inside and outside the prediction pixels. Generated using reference pixels. That is, the number of pixels for outer generation of the prediction pixels represented by the squares with numbers 2 and 3 is larger than 3, which is the number of pixels for outer generation of the prediction pixels represented by the squares with numbers 1 and 4. It is.
  • the inter prediction unit 24 in FIG. 64 reduces the number of outer generation pixels of the outer prediction pixels as compared with the number of outer generation pixels of the inner prediction pixels, the inter prediction unit 24 is arranged in the horizontal direction.
  • the number of reference pixels required for inter prediction is 9, which is smaller than 11 in the conventional case. As a result, the amount of memory bandwidth used by the frame memory 22 can be reduced.
  • the prediction pixel is Sub pel b, 1/2 and the outside as the fractional value of the motion vector used to generate the prediction pixel represented by the squares with the numbers 1 and 4
  • the filter coefficient corresponding to 3 as the number of generation pixels is, for example, 3, ⁇ 10, 39, 42, ⁇ 14, 7, ⁇ 4, 1 sequentially from the outside of the corresponding generation pixel.
  • the filter coefficient corresponding to 1/4 as the fractional value of the motion vector and 3 as the number of pixels for outer generation is used for generating the outermost prediction pixel, For example, 2, -9,56,20, -8,4, -2,1 in order from the outside of the corresponding generation pixel.
  • the filter coefficient corresponding to 3/4 as the fractional value of the motion vector and 3 as the number of pixels for outer generation used for generating the outermost prediction pixel is, for example, 2, 6, 18, 58, -11, 5, -3, 1 in order from the outside of the generation pixel to be generated.
  • the horizontal position is a 1/2 pixel position
  • the vertical position is an integer position.
  • An example of reference pixels used for generating each of the predicted pixels is shown.
  • the number of outer generation pixels of the outermost prediction pixel is three, and the number of outer generation pixels of the innermost prediction pixel is four.
  • the outermost numbers 1 and 8 are assigned among the eight predicted pixels arranged in the horizontal direction, the horizontal position being a 1/2 pixel position and the vertical position being an integer position.
  • the prediction pixel represented by the square is generated using the three reference pixels outside the prediction pixel and the five reference pixels inside.
  • the prediction pixels represented by the squares numbered 2 to 7 inside the prediction pixels represented by the squares numbered 1 and 8 are a total of eight reference pixels located four inside and outside the prediction pixels. Is generated using That is, the number of outer generation pixels of the prediction pixels represented by the squares numbered 2 to 7 is larger than 3, which is the number of outer generation pixels of the prediction pixels represented by the squares numbered 1 and 8. It is.
  • the inter prediction unit 24 in FIG. 64 reduces the number of outer generation pixels of the outer prediction pixels as compared with the number of outer generation pixels of the inner prediction pixels, the inter prediction unit 24 is arranged in the horizontal direction.
  • the number of reference pixels required for inter prediction is 13 which is less than 15 in the conventional case. As a result, the amount of memory bandwidth used by the frame memory 22 can be reduced.
  • the number of outer generation pixels of the outermost prediction pixel is 2
  • the number of outer generation pixels of the prediction pixel one inner side from the prediction pixel is 3, and the innermost prediction pixel.
  • the number of outer generation pixels is four.
  • the outermost numbers 1 and 8 are assigned among the eight predicted pixels arranged in the horizontal direction, the horizontal position being a 1/2 pixel position and the vertical position being an integer position.
  • the prediction pixel represented by the square is generated by using the two reference pixels outside the prediction pixel and the six reference pixels inside.
  • the prediction pixels represented by the squares numbered 2 and 7 that are one inner side than the prediction pixels represented by the squares numbered 1 and 8 are the three reference pixels outside the prediction pixel, and the inner side It is generated using 5 reference pixels. Furthermore, the prediction pixels represented by the squares numbered 3 to 6 inside the prediction pixels represented by the squares numbered 2 and 7 are generated using the same reference pixels as in FIG. 69A. .
  • the number of reference pixels arranged in the horizontal direction and necessary for the inter prediction is 11 which is smaller than 13 in the case of A in FIG. As a result, the amount of memory bandwidth used by the frame memory 22 can be further reduced.
  • the filter coefficient corresponding to 2 as the number of outer generation pixels is, for example, -6, 36, 44, -16, 9, -5, 3, -1, in order from the outer side of the corresponding generation pixel.
  • the filter coefficients corresponding to 1/2 as the fractional value of the motion vector and 3 as the number of pixels for outer generation used for generation of the prediction pixel represented by the squares with the numbers 2 and 7 are, for example, 3, 10, 39, 42, -14, 7, -4, 1 in order from the outside of the corresponding generation pixel.
  • filter coefficients corresponding to 1/2 as the fractional value of the motion vector and 4 as the number of outer generation pixels used for generating the prediction pixel represented by the squares numbered 3 to 6 are, for example, In order from the outside of the corresponding generation pixel, -1, 4, -11, 40, 40, -11, 4, and -1.
  • the filter coefficient corresponding to 1/4 as the fractional value of the motion vector and 2 as the number of pixels for outer generation is used to generate the outermost prediction pixel, For example, -5, 54, 22, -10, 6, -4, 2, -1 in order from the outside of the corresponding generation pixel.
  • the filter coefficient corresponding to 1/4 as the fractional value of the motion vector and 3 as the number of pixels for outer generation used for generating the prediction pixel one inner side from the outermost side is, for example, the corresponding generation In order from the outside of the pixel, 2, -9,56,20, -8,4, -2,1.
  • the filter coefficients corresponding to 1/4 as the fractional value of the motion vector and 4 as the number of pixels for outer generation which are used to generate two or more inner predicted pixels from the outermost side, for example, corresponding generation In order from the outside of the pixels for use, -1,4, -10,57,19, -7,3, -1.
  • filter coefficients corresponding to 3/4 as the fractional value of the motion vector and 2 as the number of pixels for outer generation used for generating the outermost prediction pixel are, for example, In order from the outside of the corresponding generation pixel, -3, 16, 60, -13, 7, -4, 2, -1. Also, the filter coefficient corresponding to 3/4 as the fractional value of the motion vector and 3 as the number of pixels for outer generation, used for generating the prediction pixel one inner side from the outermost side, for example, corresponding generation 2, 6, 18, 58, -11, 5, -3, 1 in order from the outside of the pixel.
  • the size of the block of inter prediction is 4 ⁇ 4 pixels
  • the four pixels are arranged in the horizontal direction
  • the horizontal position is a 1/2 pixel position
  • the vertical position is an integer position.
  • the example of the reference pixel used for generation of each prediction pixel is shown.
  • the number of outer generation pixels of the outermost prediction pixel is two, and the number of outer generation pixels of the innermost prediction pixel is three.
  • the outermost numbers 1 and 4 are assigned among the four prediction pixels arranged in the horizontal direction, the horizontal position being a 1/2 pixel position and the vertical position being an integer position.
  • the prediction pixel represented by the square is generated using the two reference pixels outside the prediction pixel and the five reference pixels inside.
  • the prediction pixels represented by the squares numbered 2 and 3 inside the prediction pixels represented by the squares numbered 1 and 4 are the three reference pixels outside the prediction pixel and the four inside pixels. Are generated using the reference pixels.
  • the inter prediction unit 24 in FIG. 64 reduces the number of outer generation pixels of the outer prediction pixels as compared with the number of outer generation pixels of the inner prediction pixels, the inter prediction unit 24 is arranged in the horizontal direction.
  • the number of reference pixels required for inter prediction is 7, which is less than 10 in the conventional case. As a result, the amount of memory bandwidth used by the frame memory 22 can be reduced.
  • the prediction pixel is Sub pel b, 1/2 and the outside as the fractional value of the motion vector used for generation of the prediction pixel represented by the squares with the numbers 1 and 4
  • the filter coefficient corresponding to 2 as the number of generation pixels is, for example, ⁇ 6, 36, 44, ⁇ 15, 8, ⁇ 4, 1 sequentially from the outside of the corresponding generation pixel.
  • the filter coefficient corresponding to 1/4 as the fractional value of the motion vector and 2 as the number of pixels for outer generation is used to generate the outermost prediction pixel, For example, -5, 54, 21, -9, 5, -3, 1 in order from the outside of the corresponding generation pixel.
  • filter coefficients corresponding to 3/4 as the fractional value of the motion vector and 2 as the number of pixels for outer generation used for generating the outermost prediction pixel are, for example, -3, 16, 59, -12, 6, -3, 1 in order from the outside of the corresponding generation pixel.
  • the reference pixel of the prediction pixel whose horizontal position is an integer position and whose vertical position is a fractional position is shown in FIGS. 68 to 70. Similar to the pixels, the number of reference pixels outside the prediction pixel of the outermost prediction pixel is determined to be smaller than the number of reference pixels outside the prediction pixel of the inner prediction pixel.
  • the reference pixels used for generating each of the four predicted pixels arranged in the vertical direction and whose horizontal and vertical positions are 1/2 pixel positions are the most similar to the reference pixels in FIGS.
  • This is a reference pixel that is used to generate a prediction-corresponding pixel in which the number outside the prediction pixel of the outer prediction pixel is smaller than the number outside the prediction pixel of the innermost prediction pixel.
  • the number of outer generation pixels arranged in the horizontal direction used for the generation of pixels whose horizontal position is a fractional position, and the outer generation arranged in the vertical direction used for generation of pixels whose vertical position is a fractional position may be changed.
  • the number of readings may not change even if the number of reference pixels arranged in the horizontal direction is reduced. is there.
  • the number of reference pixels arranged in the vertical direction is reduced by one, the number of readings is reduced. That is, in this case, the effect of reducing the number of reference pixels in the vertical direction is greater than the effect of reducing the number of reference pixels in the horizontal direction. Therefore, in this case, compared to the number of outer generation pixels arranged in the horizontal direction used for generating pixels whose horizontal position is a fractional position, the vertical used for generating pixels whose vertical position is a fractional position is used.
  • the number of outer generation pixels arranged in the direction is preferentially reduced. As a result, it is possible to reduce the memory bandwidth while suppressing deterioration in accuracy of the predicted image.
  • the read unit of the frame memory 22 is a predetermined number of reference pixels continuous in the vertical direction
  • the number of outer generation pixels arranged in the vertical direction used for generating pixels whose vertical positions are fractional positions.
  • the number of outer generation pixels arranged in the horizontal direction used for generation of pixels whose horizontal position is a fractional position is preferentially reduced. Details will be described with reference to FIGS. 77 to 82 described later.
  • FIG. 71 is a block diagram illustrating a ninth configuration example of the inter prediction unit 24 illustrated in FIG.
  • the configuration of the inter prediction unit 24 in FIG. 71 is mainly that a reference image reading unit 271 and a pixel generation unit 272 are provided instead of the reference image reading unit 251 and the pixel output unit 252. And different.
  • the inter prediction unit 24 in FIG. 71 duplicates reference pixels and Sub pels, and the number of outer generation pixels among the six generation pixels corresponding to the outer prediction pixels corresponds to the inner prediction pixels.
  • the generation pixels for each prediction pixel are generated so as to be smaller than the number of outer generation pixels among the generation pixels.
  • the reference image reading unit 271 of the inter prediction unit 24 in FIG. 71 is similar to the reference image reading unit 251 in FIG. 64 based on the reference index and the prediction direction in the inter prediction mode information.
  • a reference image among the images stored in 22 is specified.
  • the reference image reading unit 271 reads the reference pixels used for generating the predicted image from the frame memory 22 based on the block size and the integer value of the motion vector in the inter prediction mode information, and temporarily holds them.
  • the reference image reading unit 271 reads out, for each prediction pixel, a reference pixel that is used to generate the prediction pixel among the temporarily held reference pixels. At this time, the reference image reading unit 271 sets each prediction pixel so that the number of outer generation pixels after duplication of the outer prediction pixel is smaller than the number of outer generation pixels after duplication of the inner prediction pixel. A reference pixel is determined and read out. Here, the number of reference pixels used for generating the prediction pixel is either 5 or 6. The reference image reading unit 271 supplies the read reference pixels to the pixel generation unit 272.
  • the pixel generation unit 272 uses the reference pixel supplied from the reference image reading unit 271 as a generation pixel. Further, the pixel generation unit 272 reads out Sub pel corresponding to the generation target prediction pixel from the intermediate result memory 50 as a generation pixel based on the fractional value of the motion vector supplied from the motion prediction unit 25. At this time, the pixel generation unit 272 determines that the number of outer generation pixels after duplication of the outer prediction pixel is smaller than the number of outer generation pixels after duplication of the inner prediction pixel. Determine and read pel. Here, the number of Sub pels used for generating the prediction pixel is either 5 or 6.
  • the pixel generation unit 272 functions as a pixel generation unit, and when the number of generation pixels is smaller than 6, the outer pixels of the generation pixels are set to the difference between the number of generation pixels and six. Duplicate, and generate six pixels consisting of the duplicated pixels and generation pixels as the generation pixels after duplication.
  • the pixel generation unit 272 supplies the six post-replication generation pixels to the 6-tap FIR filter 45.
  • FIG. 72 is a diagram illustrating a case where the block size of the inter prediction is 4 ⁇ 4 pixels, and the four pixels are arranged in the horizontal direction, the horizontal position is a 1/2 pixel position, and the vertical position is an integer position. It is a figure which shows the example of the pixel for a production
  • a numbered square represents a predicted pixel
  • a numbered and non-alphabetized square represents a reference pixel.
  • the squares with polka dots represent reference pixels within the size range of the inter prediction block among the reference pixels used to generate the prediction pixels, and the squares with diagonal lines indicate the inter predictions. Reference pixels in a range exceeding the block size range are shown.
  • a square with an alphabetic character is a pixel in which a reference pixel is duplicated. The same applies to FIGS. 75 and 76 described later.
  • the prediction pixel is generated using six generation pixels after duplication including five reference pixels, and the number of outer generation pixels after duplication of the outermost prediction pixel is two. Yes, the number of outer generation pixels after duplication of the innermost prediction pixel is three.
  • the generation target is arranged in the horizontal direction, the horizontal position is a 1/2 pixel position, and the leftmost number 1 among the four prediction pixels whose vertical position is an integer position is
  • the reference image reading unit 271 supplies the pixel generation unit 272 with a total of five reference pixels located one on the left of the prediction pixel and four on the right.
  • the pixel generation unit 272 duplicates the leftmost reference pixel of the five reference pixels as a pixel at one integer position on the left side of the reference pixel, and the one pixel and the pixel generation unit 272 Six post-replication generation pixels composed of the supplied five reference pixels are generated.
  • the generation target is the prediction pixel represented by the square number 2 that is one inward of the prediction pixel represented by the square numbered 1, it corresponds to the prediction pixel represented by the numbered square
  • the same pixel as the six post-replication generation pixels is generated.
  • the reference image reading unit 271 is located one on the right of the prediction pixel and four on the left for a total of five.
  • the reference pixels are supplied to the pixel generation unit 272.
  • the pixel generation unit 272 duplicates the rightmost reference pixel of the five reference pixels as a pixel at one integer position on the right side of the reference pixel, and the one pixel and the pixel generation unit 272 Six post-replication generation pixels composed of the supplied five reference pixels are generated.
  • the generation target is the prediction pixel represented by the square numbered 3 inside the prediction pixel represented by the square numbered 4, it corresponds to the prediction pixel represented by the numbered square
  • the same pixel as the six post-replication generation pixels is generated.
  • the inter prediction unit 24 in FIG. 71 reduces the number of outer generation pixels of the outer prediction pixel compared to the number of outer generation pixels of the inner prediction pixel, and duplicates the reference pixel. Used as a generation pixel. Therefore, the number of reference pixels required for inter prediction arranged in the horizontal direction is five, which is smaller than seven in the case of FIG. As a result, the amount of memory bandwidth used by the frame memory 22 can be further reduced. However, in the case of FIG. 65, since the reference pixel at the position of the outermost generation pixel is used for generation of the prediction pixel, the accuracy of the prediction image is better than that in the case of FIG.
  • the number of generation pixels corresponding to the prediction pixels is all five. Therefore, by setting the number of generation pixels corresponding to the outer prediction pixels to two, the number of reference pixels arranged in the horizontal direction and required for inter prediction is the same as in the case of the inter prediction unit 24 in FIG. Compared to the case of 5, the accuracy of the predicted image is better.
  • each of four predicted pixels arranged in the vertical direction the vertical position being a 1/2 pixel position
  • the horizontal position being an integer position.
  • the six pixels for generation after duplication used in the above are the outermost, that is, the number of reference pixels outside the prediction pixels of the upper and lower prediction pixels, and the reference pixels outside the prediction pixels of the innermost prediction pixel. Is determined to be 2.
  • the reference pixels used to generate each of the four prediction pixels arranged in the vertical direction and whose horizontal and vertical positions are 1/2 pixel positions have a number outside the prediction pixel of the outermost prediction pixel.
  • This is a reference pixel that is 1 and is used to generate a prediction-compatible pixel in which the number outside the prediction pixel of the innermost prediction pixel is 2. Therefore, the range of the reference pixels used to generate the predicted image of 4 ⁇ 4 pixels whose horizontal and vertical positions are 1/2 pixel positions is 5 ⁇ 5 pixels, compared with 7 ⁇ 7 pixels in FIG. And few.
  • 73 and 74 are flowcharts illustrating details of the inter prediction process in step S15 of FIG. 20 by the inter prediction unit 24 of FIG. 71.
  • steps S444 to S454 are performed for each prediction corresponding pixel.
  • step S444 the reference image reading unit 271 reads a reference pixel used for generating a prediction-compatible pixel among the reference pixels held in step S442 based on the position of the generation target prediction pixel on the reference image. .
  • the reference image reading unit 271 supplies the read reference pixel to the pixel generation unit 272 as a generation pixel.
  • steps S445 to S447 is the same as the processing in steps S405 to S407 in FIG.
  • step S448 the pixel generation unit 272 determines whether or not the number of reference pixels supplied from the reference image reading unit 271 is five. If it is determined in step S448 that the number of reference pixels is 5, the process proceeds to step S449.
  • step S449 the pixel generation unit 272 duplicates the reference pixel outside the five reference pixels supplied from the reference image reading unit 271 as a pixel at one integer position outside the reference pixel, Six generation pixels including the one pixel and the five reference pixels are generated. Then, the pixel generation unit 272 supplies the generated six generation pixels to the 6-tap FIR filter 45, and the process proceeds to step S450.
  • step S448 determines whether the number of reference pixels is 5, that is, if the number of reference pixels is 6, the process proceeds to step S450.
  • steps S450 to S456 is the same as the processing in steps S408 to S414 in FIG. 66, description thereof will be omitted.
  • the pixel generation unit 272 reads Sub pel as a generation pixel from the intermediate result memory 50 based on the position of the prediction pixel to be generated on the reference image.
  • steps S458 to S460 is the same as the processing of steps S416 to S418 in FIG. 67, the description thereof is omitted.
  • steps S461 to S463 is the same as the processing in steps S448 to S450 in FIG. 73 except that the processing is performed on Sub-pel instead of the reference pixel, and thus the description thereof is omitted.
  • Steps S464 and S465 are the same as steps S420 and S421 in FIG.
  • the number of generation pixels used for one calculation is six, but the number of generation pixels is not limited to six. Further, the number of reference pixels among the generation pixels is not limited to 5 or 6. Further, in the inter prediction processes of FIGS. 73 and 74, the number of outer generation pixels is set to be one less than half the number of all generation pixels or 1/2 of the number of all generation pixels. However, the number of outer generation pixels is not limited to this.
  • [Another example of the pixel for generation after duplication] 75 and 76 are diagrams illustrating an example of the generation pixel after replication in the inter prediction unit 24 in FIG. 71 when the number of generation pixels after replication is eight.
  • the horizontal position is a 1/2 pixel position
  • the vertical position is an integer position.
  • production of each predicted pixel is shown.
  • the prediction pixel is generated using eight generation pixels after duplication including seven reference pixels, and the number of outer generation pixels after duplication of the outermost prediction pixel is three. Yes, the number of outer generation pixels after duplication of the innermost prediction pixel is four.
  • the leftmost numbers 1 and 4 are assigned among four predicted pixels arranged in the horizontal direction, the horizontal position being a 1/2 pixel position and the vertical position being an integer position.
  • the predicted pixel represented by the square is generated using the three outer generation pixels after duplication outside the predicted pixel and the five reference pixels inside.
  • the three outer generation pixels after duplication are obtained by duplicating the two reference pixels adjacent to the outside of the prediction pixel and the outermost reference pixel of the reference pixels. It consists of one integer position pixel outside the pixel.
  • the prediction pixels represented by the squares with the numbers 2 and 3 inside the prediction pixels represented by the squares with the numbers 1 and 4 are for the outer generation of the four duplicates outside the prediction pixels. It is generated using a pixel and four reference pixels inside. Note that the four outside generation pixels after duplication are obtained by duplicating the three reference pixels adjacent to the outside of the prediction pixel and the outermost reference pixel of the reference pixels. It consists of one integer position pixel outside the pixel.
  • the inter prediction unit 24 in FIG. 71 reduces the number of outer generation pixels of the outer prediction pixel compared to the number of outer generation pixels of the inner prediction pixel, and duplicates the reference pixel. Used as a generation pixel. Therefore, the number of reference pixels necessary for inter prediction arranged in the horizontal direction is 7, which is smaller than 9 in the case of FIG. As a result, the amount of memory bandwidth used by the frame memory 22 can be further reduced.
  • the reference pixel at the position of the outermost generation pixel is used for generation of the prediction pixel, the accuracy of the prediction image is better than in the case of FIG.
  • the prediction pixel is Sub pel1 / 2b, 1/2 and the outside as a fractional value of the motion vector used for generating the prediction pixel represented by the squares with the numbers 1 and 4
  • the filter coefficient corresponding to 3 as the number of generation pixels is, for example, -6, 36, 44, -16, 9, -5, 3, and -1 in order from the outside of the corresponding generation pixel.
  • the filter coefficient corresponding to 1/4 as the fractional value of the motion vector and 3 as the number of pixels for outer generation is used for generating the outermost prediction pixel, For example, -5, 54, 22, -10, 6, -4, 2, -1 in order from the outside of the corresponding generation pixel.
  • the filter coefficients corresponding to 3/4 as the fractional value of the motion vector and 3 as the number of pixels for outer generation used for generating the outermost prediction pixel are, for example, In order from the outside of the corresponding generation pixel, -3, 16, 60, -13, 7, -4, 2, -1.
  • the horizontal position is a 1/2 pixel position
  • the vertical position is an integer position.
  • production of each predicted pixel is shown.
  • the prediction pixel is generated using eight generation pixels after duplication including seven or eight reference pixels, and the number of outer generation pixels after duplication of the outermost prediction pixel. Is 3, and the number of outer generation pixels of the innermost predicted pixel after duplication is four.
  • the outermost numbers 1 and 8 are assigned among the eight predicted pixels arranged in the horizontal direction, the horizontal position being a 1/2 pixel position and the vertical position being an integer position.
  • the predicted pixel represented by the square is generated using the three outer generation pixels after duplication outside the predicted pixel and the five reference pixels inside.
  • the three outer generation pixels after duplication are obtained by duplicating the two reference pixels adjacent to the outside of the prediction pixel and the outermost reference pixel of the reference pixels. It consists of one integer position pixel outside the pixel.
  • the prediction pixels represented by the squares numbered 2 and 7 that are one inward of the prediction pixels represented by the squares numbered 1 and 8 are the four generation pixels after duplication outside the prediction pixels.
  • four reference pixels on the inner side are obtained by duplicating the three reference pixels adjacent to the outside of the prediction pixel and the outermost reference pixel of the reference pixels. It consists of one integer position pixel outside the pixel.
  • the prediction pixels represented by the squares numbered 3 to 6 inside the prediction pixels represented by the squares numbered 2 and 7 are a total of eight generation pixels located inside and outside the prediction pixels. Generated using.
  • the inter prediction unit 24 in FIG. 71 reduces the number of outer generation pixels of the outer prediction pixel compared to the number of outer generation pixels of the inner prediction pixel, and duplicates the reference pixel. Used as a generation pixel. Therefore, the number of reference pixels necessary for inter prediction arranged in the horizontal direction is 11, which is smaller than 13 in the case of A in FIG. As a result, the amount of memory bandwidth used by the frame memory 22 can be further reduced. However, in the case of A in FIG. 69, since the reference pixel at the position of the outermost generation pixel is used for generation of the prediction pixel, the accuracy of the prediction image is better than in the case of FIG.
  • the reference pixel of the prediction pixel whose horizontal position is an integer position and whose vertical position is a fractional position is shown in FIGS. 75 and 76. Similar to the pixels, the number of outer generation pixels after duplication of the outermost prediction pixel is determined to be smaller than the number of outer generation pixels after duplication of the innermost prediction pixel.
  • the reference pixels used for generating each of the four predicted pixels arranged in the vertical direction and whose horizontal and vertical positions are 1/2 pixel positions are the most similar to the reference pixels in FIGS. 75 and 76.
  • This is a reference pixel that is used to generate a prediction-corresponding pixel that is included in a post-replication generation pixel that has a lower number of outer prediction pixels than the prediction pixel of the innermost prediction pixel and a lower number than the outermost prediction pixel.
  • the inter prediction part 111 of the decoding apparatus 100 is the same as the inter prediction part 24 of FIG. 64 and FIG. Composed.
  • [Tenth configuration example of inter prediction unit] 77 is a block diagram illustrating a tenth configuration example of the inter prediction unit 24 in FIG. 3.
  • the inter prediction unit 24 in FIG. 77 mainly includes a reference image reading unit 251, a pixel output unit 252, a 6-tap FIR filter 45, a 6-tap filter coefficient memory 253, and a pixel selection unit 162 instead of the reference image reading unit.
  • 64, the pixel distribution unit 292, the 8-tap FIR filter 293 and the 4-tap FIR filter 294, the 8-tap filter coefficient memory 295 and the 4-tap filter coefficient memory 296, and the pixel selection unit 297 are provided. Different.
  • the number of outer generation pixels arranged in the vertical direction is smaller than the number of outer generation pixels arranged in the horizontal direction. In such a manner, a generation pixel used to generate each prediction pixel is determined.
  • the reference image reading unit 291 of the inter prediction unit 24 stores in the frame memory 22 based on the reference index and the prediction direction in the inter prediction mode information, similarly to the reference image reading unit 251 of FIG.
  • the reference image is specified among the images being displayed. Similar to the reference image reading unit 251, the reference image reading unit 291 extracts, from the frame memory 22, reference pixels used for generating a predicted image based on the block size and the motion vector integer value in the inter prediction mode information. Read and hold temporarily.
  • the reference image reading unit 291 functions as a pixel reading unit, and reads, for each prediction pixel, eight reference pixels used for generation of the prediction pixel among the temporarily held reference pixels. At this time, the reference image reading unit 291 is configured such that the number of reference pixels outside the prediction pixel among the reference pixels of the outer prediction pixel is the number of reference pixels outside the prediction pixel among the reference pixels of the inner prediction pixel. Eight reference pixels of each prediction pixel are determined and read out so that there are fewer. The reference image reading unit 291 supplies the read eight reference pixels to the pixel sorting unit 292.
  • the pixel distribution unit 292 uses the reference pixel supplied from the reference image reading unit 291 as a generation pixel, similarly to the pixel output unit 252 of FIG. In addition, based on the fractional value of the motion vector supplied from the motion prediction unit 25, the pixel sorting unit 292 reads four Sub pels corresponding to the generation target prediction pixels from the intermediate result memory 50 as generation pixels. . At this time, the pixel sorting unit 292 sets each prediction pixel so that the number of Sub pels that are the outer generation pixels of the outer prediction pixels is smaller than the number of Sub pels that are the outer generation pixels of the inner prediction pixels. Determine and read out four Sub-pels as the generation pixels of. Further, the pixel sorting unit 292 supplies eight generation pixels to the 8-tap FIR filter 293 and supplies four generation pixels to the 4-tap FIR filter 294.
  • the 8-tap FIR filter 293 functions as a calculation unit, and performs calculation using the eight generation pixels supplied from the pixel sorting unit 292 and the filter coefficients supplied from the 8-tap filter coefficient memory 295.
  • the 8-tap FIR filter 293 supplies one pixel obtained as a result to the pixel selection unit 297.
  • the 4-tap FIR filter 294 functions as a calculation unit, and performs calculation using the four generation pixels supplied from the pixel sorting unit 292 and the filter coefficients supplied from the 4-tap filter coefficient memory 296.
  • the 4-tap FIR filter 294 supplies one pixel obtained as a result to the pixel selection unit 297.
  • the 8-tap filter coefficient memory 295 stores filter coefficients for the 8-tap FIR filter 293 in association with the fractional value of the motion vector and the number of outer generation pixels.
  • the 8-tap filter coefficient memory 295 corresponds to the fractional value and the position based on the fractional value of the motion vector supplied from the motion prediction unit 25 and the position of the prediction pixel to be generated on the prediction image.
  • the filter coefficient stored in association with the number of outer generation pixels is supplied to the 8-tap FIR filter 293.
  • the 4-tap filter coefficient memory 296 stores filter coefficients for the 4-tap FIR filter 294 in association with the fractional value of the motion vector and the number of outer generation pixels.
  • the 4-tap filter coefficient memory 296 corresponds to the fractional value and the position based on the fractional value of the motion vector supplied from the motion prediction unit 25 and the position of the prediction pixel to be generated on the predicted image.
  • the filter coefficient stored in association with the number of outer generation pixels is supplied to the 4-tap FIR filter 294.
  • the pixel selection unit 297 is a pixel supplied from the 8-tap FIR filter 293 or the 4-tap FIR filter 294 based on the fractional value of the motion vector supplied from the motion prediction unit 25. Is output as a predicted pixel to the selection unit 26 in FIG. 3 or supplied to the intermediate result memory 50.
  • FIG. 78 is a diagram illustrating an example of reference pixels when the number of outer generation pixels arranged in the horizontal direction is the same as the number of outer generation pixels arranged in the vertical direction.
  • the size of the inter prediction block is 4 ⁇ 4 pixels, and the prediction pixel has a horizontal position of 1/2 pixel position and a vertical position of 1/2 pixel position.
  • a square to which “f” is attached represents Sub ⁇ pel f that is a prediction pixel
  • a square to which “d” is attached represents Sub pel d.
  • a square without English letters represents a reference pixel.
  • a square with polka dots represents a reference pixel within the size range of the inter prediction block among reference pixels used for generating a prediction pixel, and a square with a diagonal line represents an inter prediction. Reference pixels in a range exceeding the block size range are shown. The same applies to FIG. 79 described later.
  • the number of outer generation pixels of the outermost prediction pixel is three, and the number of outer generation pixels of the innermost prediction pixel is four.
  • the number of pixels for generating each prediction pixel is eight.
  • the 9 ⁇ 4 pixel Sub pel d corresponding to the 4 ⁇ 4 pixel prediction pixel is used as a prediction corresponding pixel using eight reference pixels arranged in the vertical direction. Generated. At this time, since the number of outer generation pixels of the outer Sub pel d is 3, and the number of outer generation pixels of the inner Sub pel d is 4, it is used to generate a 9 ⁇ 4 pixel Sub pel d.
  • Sub pel f which is a prediction pixel of 4 ⁇ 4 pixels, is generated by using eight Sub pel d arranged in the horizontal direction among Sub pel d of 9 ⁇ 4 pixels that are prediction-compatible pixels, respectively.
  • the outer Sub pel f is composed of three sub-pels as outer generation pixels arranged in the horizontal direction, and Sub as five generation pixels arranged in the horizontal direction inside the Sub pel f. Generated using pel d.
  • the inner Sub pel f includes four Sub pel d as outer generation pixels arranged in the horizontal direction and Sub pel d as four generation pixels arranged in the horizontal direction inside the Sub pel f. Generated using.
  • the inter prediction unit 24 in FIG. 77 reads out the reference pixels so that the number of outer generation pixels arranged in the vertical direction is smaller than the number of outer generation pixels arranged in the horizontal direction, thereby obtaining the number of reference pixels. And reduce the number of filtering.
  • FIG. 79 is a diagram illustrating an example of reference pixels in the inter prediction unit 24 in FIG. 77.
  • the number of outer generation pixels arranged in the horizontal direction of the outermost prediction pixel is three, and the number of outer generation pixels arranged in the horizontal direction of the innermost prediction pixel is four.
  • the number of outer generation pixels arranged in the vertical direction of the outermost prediction pixel is 1, and the number of outer generation pixels arranged in the vertical direction of the innermost prediction pixel is two.
  • the inter prediction unit 24 first predicts a 4 ⁇ 5 pixel Sub pel b corresponding to a 4 ⁇ 4 pixel prediction pixel by using eight reference pixels arranged in the horizontal direction. Generated as corresponding pixels. At this time, the number of pixels for outer generation of the outer Sub pel b is 3, and the number of pixels for outer generation of the inner Sub pel b is 4, so that it is used to generate a Sub pel b of 4 ⁇ 5 pixels.
  • the inter prediction unit 24 converts Sub pel f, which is a prediction pixel of 4 ⁇ 4 pixels, into four Sub pels arranged in the vertical direction among Sub pel b of 4 ⁇ 5 pixels that are prediction-compatible pixels, respectively. Generate using b. Specifically, the inter prediction unit 24 uses the outer Sub pel f as one outer generation pixel, Sub pel b, and three generation pixels arranged in the vertical direction inside the Sub ⁇ ⁇ pel f. Generate using Sub pel b. Further, the inter prediction unit 24 sub-pels the inner Sub pel f as two outer generation pixels arranged in the vertical direction, and two generation pixels arranged in the vertical direction inside the Sub pel f. Generate using Sub pel b as
  • the reference pixels necessary to generate 4 ⁇ 4 pixels Sub pel f as prediction pixels are 9 ⁇ 5 pixels
  • the number of reference pixels arranged in the vertical direction is reduced.
  • the prediction direction is Bi-prediction
  • the reference pixels required to generate a 4 ⁇ 4 pixel Sub pel f as a prediction pixel are reduced to twice that of 9 ⁇ 5 pixels.
  • FIG. 80 is a diagram illustrating an arrangement example of pixel values for one frame in the frame memory 22.
  • a square represents a pixel value.
  • the frame memory 22 is constituted by, for example, a DRAM (Dynamic Random Access Memory) having a bus width of 32 bits. Also, as shown in FIG. 80, the frame memory 22 assigns addresses so that the addresses assigned to the pixel groups arranged in the horizontal direction are continuous with the pixel group consisting of four pixels arranged in the horizontal direction. The frame memory 22 stores the 32-bit pixel value of each pixel group corresponding to the address assigned to the pixel group. Therefore, in the frame memory 22, the pixel value of the pixel group corresponding to one address is read by one access.
  • a DRAM Dynamic Random Access Memory
  • the number of accesses can be effectively reduced by reducing the number of reference pixels arranged in the vertical direction, which is used for generating predicted pixels, compared to the case of reducing the number of reference pixels arranged in the horizontal direction. That is, since the access unit of the frame memory 22 is a pixel group composed of four pixels arranged in the horizontal direction, the number of reference pixels arranged in the horizontal direction used for generating the predicted pixel is not the same as the number of accesses. Even when the number of reference pixels is reduced, the number of accesses may not change. However, since the number of reference pixels lined up in the vertical direction used for generating a predicted pixel is the same as the number of accesses, the number of accesses can be effectively reduced by reducing the number of reference pixels.
  • pixel values corresponding to consecutive addresses can be efficiently read out with a small memory bandwidth. Therefore, the pixel values of 8 pixels corresponding to two consecutive addresses surrounded by the rectangle 311, that is, the pixel values of 8 pixels arranged in the horizontal direction can be efficiently read out with a small memory band by burst access. However, the pixel values of 8 pixels corresponding to two consecutive addresses surrounded by the rectangle 312, that is, the pixel values of 8 pixels arranged in the vertical direction cannot be efficiently read out with a small memory bandwidth by burst access.
  • the inter prediction unit 24 in FIG. 77 determines the number of outer generation pixels arranged in the vertical direction as the number of outer generation pixels arranged in the horizontal direction when the horizontal and vertical positions of the prediction pixels are fractional positions. By making the number smaller than the number, the number of reference pixels arranged in the vertical direction used for generating the predicted pixel is reduced. As a result, the number of accesses to the frame memory 22 can be efficiently reduced. In addition, the memory bandwidth during burst access can be reduced.
  • Steps S480 to S483 in FIG. 81 are the same as the processes in steps S400 to S403 in FIG.
  • steps S484 to S492 below are performed for each prediction-compatible pixel.
  • the reference image reading unit 291 uses the eight references used for generation of the prediction corresponding pixels among the reference pixels held in step S482 based on the position of the generation target prediction pixel on the reference image. Read the pixel. In addition, when the position of the prediction pixel in the horizontal direction and the vertical direction is a fractional position, the prediction corresponding pixel is a pixel whose position in the horizontal direction is a fractional position.
  • the reference image reading unit 291 supplies the read eight reference pixels to the pixel sorting unit 292 as generation pixels.
  • step S485 the 8-tap filter coefficient memory 295 determines whether or not the position of the prediction corresponding pixel on the predicted image is outside. If it is determined in step S485 that the position of the prediction-corresponding pixel on the predicted image is outside, the 8-tap filter coefficient memory 295 sets the number of outer generation pixels to 1/2 of the number of all generation pixels 8. The number is set to 3 less than 4 and the process proceeds to step S486.
  • step S486 the 8-tap filter coefficient memory 295 reads out the filter coefficient stored in association with 3 as the fractional value of the motion vector and the number of pixels for outer generation, and supplies the filter coefficient to the 8-tap FIR filter 293. Then, the process proceeds to step S488.
  • step S485 if it is determined in step S485 that the position of the prediction corresponding pixel on the predicted image is not outside, the 8-tap filter coefficient memory 295 sets the number of outer generation pixels to 1 / of the number 8 of all generation pixels. Assuming that 2 is 4, the process proceeds to step S487.
  • step S487 the 8-tap filter coefficient memory 295 reads out the filter coefficient stored in association with the fractional value of the motion vector and 4 as the number of pixels for outer generation, and supplies the filter coefficient to the 8-tap FIR filter 293. Then, the process proceeds to step S488.
  • step S488 the 8-tap FIR filter 293 performs calculation using the reference pixels as the eight generation pixels supplied from the pixel sorting unit 292 and the filter coefficients supplied from the 8-tap filter coefficient memory 295.
  • the 8-tap FIR filter 293 supplies one prediction corresponding pixel obtained as a result to the pixel selection unit 297.
  • steps S489 to S494 is the same as the processing in steps S409 to S414 in FIG. 66, the description thereof will be omitted.
  • step S495 the pixel sorting unit 292 reads four Sub pels as generation pixels from the intermediate result memory 50 based on the position of the generation target predicted pixel on the reference image.
  • step S496 the 4-tap filter coefficient memory 296 determines whether the position of the prediction pixel to be generated on the predicted image is outside. When it is determined in step S496 that the position of the generation target prediction pixel on the predicted image is outside, the 4-tap filter coefficient memory 296 sets the number of outer generation pixels to 1/4 of the number of all generation pixels. It is set to 1 less than 2 which is 2 and the process proceeds to step S497.
  • step S497 the 4-tap filter coefficient memory 296 reads out the filter coefficient stored in association with 1 as the fractional value of the vertical component of the motion vector and the number of pixels for outer generation, and supplies the filter coefficient to the 4-tap FIR filter 294. To do. Then, the process proceeds to step S499.
  • step S496 determines whether the position of the generation target prediction pixel on the predicted image is not outside. If it is determined in step S496 that the position of the generation target prediction pixel on the predicted image is not outside, the 4-tap filter coefficient memory 296 sets the number of outer generation pixels to the number of all generation pixels of four. It is assumed that 2 is 1/2, and the process proceeds to step S498.
  • step S498 the 4-tap filter coefficient memory 296 reads out the filter coefficient stored in association with 2 as the fractional value of the vertical component of the motion vector and the number of pixels for outer generation, and supplies the filter coefficient to the 4-tap FIR filter 294. To do. Then, the process proceeds to step S499.
  • step S499 the 4-tap FIR filter 294 performs calculation using the Sub-pels as the four generation pixels supplied from the pixel sorting unit 292 and the filter coefficients supplied from the 4-tap filter coefficient memory 296.
  • the 4-tap FIR filter 294 supplies one Sub pel obtained as a result to the pixel selection unit 297.
  • Steps S500 and S501 are the same as the processes in steps S420 and S421 of FIG.
  • the inter prediction unit 24 in FIG. 77 reduces the number of outer generation pixels arranged in the vertical direction to be smaller than the number of outer generation pixels arranged in the horizontal direction, so that the vertical direction used for generation of the prediction pixels is used.
  • the number of reference pixels lined up is reduced. As a result, the number of accesses to the frame memory 22 can be reduced, and the memory bandwidth during burst access can be reduced.
  • the inter prediction unit 24 in FIG. 77 sets the prediction corresponding pixel as a pixel whose horizontal position is a fractional position. That is, the inter prediction unit 24 in FIG. 77 generates a prediction corresponding pixel having the same position in the horizontal direction as the prediction pixel using the reference pixel, and then generates a prediction pixel using the prediction corresponding pixel. Thereby, compared with the case where the prediction corresponding pixel is a pixel whose vertical position is a fractional position, the number of times of filter processing can be reduced.
  • the number of prediction corresponding pixels is 9 ⁇ 4 pixels under the same conditions as in the example of FIG. 79, and a prediction corresponding pixel is generated.
  • the number of prediction corresponding pixels is 4 ⁇ 5 pixels as described in FIG.
  • the number of outer generation pixels arranged in the vertical direction is equal to the number of outer generation pixels arranged in the horizontal direction when the horizontal and vertical positions of the prediction pixels are fractional positions.
  • the number of outer generation pixels arranged in the vertical direction is aligned outside even when the horizontal position of the prediction pixel is an integer position and the vertical position is a fractional position. The number may be smaller than the number of generation pixels.
  • the inter prediction unit 24 in FIG. 77 is configured such that the number of outer generation pixels arranged in the vertical direction is smaller than the number of outer generation pixels arranged in the horizontal direction, but the frame memory 22 corresponds to one address.
  • the number of outer generation pixels arranged in the horizontal direction is made smaller than the number of outer generation pixels arranged in the vertical direction.
  • the number of outer generation pixels arranged in the vertical direction is smaller than the number of outer generation pixels arranged in the horizontal direction for all macroblocks. It may be performed only for the macroblock.
  • the number of reference image frames is two, and reference pixels arranged in the vertical direction used for generating predicted pixels in a macro block of a B slice that may increase the number of reference pixels can be reduced. .
  • the number of accesses to the frame memory 22 can be reduced, and the memory bandwidth during burst access can be reduced.
  • reference pixels arranged in the vertical direction used for generating predicted pixels in macroblocks other than the B slice in which the number of reference image frames is one frame are not reduced, it is possible to suppress degradation in accuracy of the predicted image. .
  • the number of outer generation pixels arranged in the vertical direction is changed in units of slices, the change control is easier than in the case where the number is changed based on the prediction direction or the like.
  • the number of outer generation pixels arranged in the vertical direction may be smaller than the number of outer generation pixels arranged in the horizontal direction.
  • the number of accesses to the frame memory 22 can be reduced, and the memory bandwidth during burst access can be reduced.
  • the reference pixels arranged in the vertical direction used for generating the prediction pixels of the macroblock in which the prediction direction is other than Bi-prediction and the number of frames of the reference image is one frame are not reduced, the accuracy of the prediction image is deteriorated. Can be suppressed.
  • the number of outer generation pixels arranged in the vertical direction may be smaller than the number of outer generation pixels arranged in the horizontal direction only when the size of the inter prediction block is larger than a predetermined size.
  • the inter prediction unit 24 in FIG. 77 has reduced the number of generation pixels arranged in the vertical direction from the number of generation pixels arranged in the horizontal direction, but arranged in the vertical direction with the number of generation pixels arranged in the horizontal direction.
  • the number of generation pixels may be the same.
  • the inter prediction unit 24 in FIGS. 4, 26, 30, 44, 48, 52, 61, and 71 is similar to the inter prediction unit 24 in FIG. 77.
  • the number of outer generation pixels arranged in the vertical direction can be made smaller than the number of outer generation pixels arranged in the horizontal direction.
  • the number of generation pixels arranged in the vertical direction is the number of generation pixels arranged in the horizontal direction. Less than the number.
  • FIG. 83 is a block diagram illustrating an eleventh configuration example of the inter prediction unit 24 in FIG. 3.
  • the inter prediction unit 24 in FIG. 83 includes a color inter prediction unit 321 and a luminance inter prediction unit 322.
  • the inter prediction unit 24 in FIG. 83 is used to generate the color component and the luminance component of each prediction pixel based on the block size and prediction direction in the inter prediction mode information, and the fractional value of the motion vector. The number of generation pixels is determined.
  • the color inter prediction unit 321 of the inter prediction unit 24 in FIG. 83 performs each prediction based on the reference image from the frame memory 22 and the inter prediction mode information and the motion vector from the motion prediction unit 25. Generate and output pixel color components. Details of the color inter prediction unit 321 will be described with reference to FIG.
  • the luminance inter prediction unit 322 generates and outputs a luminance component of each prediction pixel based on the reference image from the frame memory 22 and the inter prediction mode information and the motion vector from the motion prediction unit 25. Details of the luminance inter prediction unit 322 will be described with reference to FIG. 88 described later.
  • [Configuration example of inter prediction unit for color] 84 is a block diagram illustrating a configuration example of the color inter prediction unit 321 in FIG. 83.
  • 84 mainly includes a reference image reading unit 331 and a pixel sorting unit 332 instead of the reference image reading unit 291 and the pixel sorting unit 292, and the LUT ( The difference from the configuration of FIG. 77 is that a new “Look Up Table” 333 is provided.
  • the reference image reading unit 331 of the inter prediction unit 24 is stored in the frame memory 22 based on the reference index and the prediction direction in the inter prediction mode information, similarly to the reference image reading unit 291 of FIG. 77.
  • the reference image is specified among the existing images. Further, the reference image reading unit 331 reads the block size and the prediction direction of the inter prediction mode information from the LUT 333 and the numbers of horizontal and vertical generation pixels corresponding to the fractional value of the motion vector.
  • the reference image reading unit 331 is used to generate a color component of the predicted image based on the number of pixels for generation in the horizontal direction and the vertical direction, the block size in the inter prediction mode information, and the integer value of the motion vector.
  • the color component of the pixel is read from the frame memory 22. Then, the reference image reading unit 331 temporarily holds the read color components of the reference pixels.
  • the reference image reading unit 331 Based on the number of pixels for generation in the horizontal direction or the vertical direction, the reference image reading unit 331 generates a color component of the prediction pixel among the color components of the reference pixel temporarily held for each prediction pixel. Read out the color components of 4 or 8 reference pixels as the number of generation pixels to be used. The reference image reading unit 331 supplies the read color components of four or eight reference pixels to the pixel sorting unit 332.
  • the pixel distribution unit 332 uses the color component of the reference pixel supplied from the reference image reading unit 331 as the color component of the generation pixel. In addition, the pixel sorting unit 332 generates a block size and a prediction direction in the inter prediction mode information supplied from the motion prediction unit 25 from the LUT 333 and the number of vertical generation pixels corresponding to the fractional value of the motion vector. Is read.
  • the pixel distribution unit 332 uses four or eight as the number of pixels for generation in the vertical direction used to generate the color component of the prediction pixel to be generated from the intermediate result memory 50.
  • the sub-pel color component is read out as the color component of the generation pixel.
  • the pixel sorting unit 332 supplies the color components of the eight generation pixels to the 8-tap FIR filter 293, and supplies the color components of the four generation pixels to the 4-tap FIR filter 294.
  • the LUT 333 stores the number of pixels for generation in association with the size of the inter prediction block, the prediction direction, and the type of Sub-pel that becomes the prediction pixel corresponding to the fractional value of the motion vector.
  • FIG. 85 is a graph showing the relationship between the number of generation pixels and the number of reference pixels.
  • the horizontal axis represents a combination of the prediction direction, the size of the inter prediction block, and the type of Sub-pel that becomes the prediction pixel.
  • a to o described on the horizontal axis in FIG. 85 indicate that the type of Sub pel is Sub pel a to o.
  • the numbers described under a to o indicate the horizontal size (number of pixels) of the inter prediction block, and the numbers described below the numbers are the vertical direction of the inter prediction block. Represents the size (number of pixels).
  • Uni described below the number indicates that the prediction direction is L0 prediction or L1 prediction
  • Bi indicates that the prediction direction is prediction in both directions.
  • the vertical axis represents the number of reference pixels normalized by the predicted number of pixels (hereinafter referred to as normalized reference pixel number). That is, the value on the vertical axis is a value obtained by dividing the number of reference pixels by the predicted number of pixels.
  • the rhombus represents the number of normalized reference pixels when the number of generation pixels in the horizontal direction and the vertical direction is 8, and the square indicates the number of generation pixels in the horizontal direction of 8 and the vertical direction Represents the number of normalized reference pixels when the number of generating pixels is four.
  • the triangle represents the number of normalized reference pixels when the number of pixels for generation in the horizontal direction is 4 and the number of pixels for generation in the vertical direction is 8, and the crosses are for generation in the horizontal and vertical directions. This represents the normalized reference pixel number when the number of pixels is four.
  • the prediction direction is bi-directional prediction
  • the size of the inter prediction block is 4 ⁇ 4 pixels
  • the types of Sub pels that are prediction pixels are Sub pel e to g, i to k, and In the case of any one of m to o, the number of normalized reference pixels is the largest.
  • the number of pixels for generation in the horizontal direction and the vertical direction in which the maximum value of the normalized reference pixel number is a predetermined value or less is the prediction direction, the size of the inter prediction block, and the Sub pel that becomes the prediction pixel. are stored in association with each type.
  • FIG. 86 and 87 are diagrams showing examples of the numbers of horizontal and vertical generation pixels stored in the LUT 333.
  • FIG. 86 and 87 are diagrams showing examples of the numbers of horizontal and vertical generation pixels stored in the LUT 333.
  • the items “prediction direction”, “block horizontal size”, “block vertical size”, and “Sub pel” information are the prediction direction and inter prediction, respectively.
  • the information on the items “number of horizontal generation pixels” and “number of vertical generation pixels” includes items “prediction direction”, “horizontal size of block”, and “vertical direction of block”, respectively.
  • the number of pixels for generation in the horizontal direction and the number of pixels for generation in the vertical direction corresponding to the information of “size” and “Sub pel”. The same applies to FIGS. 89 and 90 described later.
  • the information of the item “maximum value 6.1” in the item “number of horizontal generation pixels” is the number of horizontal generation pixels in which the normalized reference pixel number is 6.1 or less.
  • the information of the item “maximum value 5.2” and the information of the item “maximum value 3.8” in the item “number of pixels for generation in the horizontal direction” are predictions in which the prediction direction is bi-directional, and the block size of the inter prediction is In cases other than the case where it is smaller than 8 ⁇ 8 pixels, the normalized reference pixel numbers are the horizontal generation pixel numbers that are 5.2 or 3.8 or less, respectively.
  • the information for the item “maximum value 6.1”, item “maximum value 5.2”, and item “maximum value 3.8” in the item “vertical generation pixel number” is the same as the item “horizontal generation pixel number”. is there.
  • the LUT 333 associates with the information of the items “prediction direction”, “block horizontal size”, “block vertical size”, and “Sub pel”, for example, the item “number of horizontal generation pixels” "And the number of pixels for generation in the vertical direction” are stored as information on "maximum value 6.1", “maximum value 5.2”, or "maximum value 3.8".
  • a plurality of pixels arranged in the horizontal direction corresponding to one address are stored in the frame memory 22, and the type of Sub pel serving as a predicted pixel is Sub pel e to g. , i to k, and m to o, and when the number of normalized reference pixels is the same, the number of vertical generation pixels having a larger reduction effect is smaller than the number of horizontal generation pixels. It is remembered. This also applies to FIGS. 89 and 90 described later.
  • FIG. 88 is a block diagram illustrating a configuration example of the luminance inter prediction unit 322 in FIG. 83.
  • the configuration of the luminance inter prediction unit 322 in FIG. 88 mainly includes a reference image reading unit 351, a pixel distributing unit 352, and a pixel selecting unit 353 instead of the reference image reading unit 41, the pixel distributing unit 42, and the pixel selecting unit 49. 4 is different from the configuration of FIG. 4 in that a 6-tap FIR filter 45 and a 6-tap filter coefficient memory 48 are not provided, and a LUT 354 is newly provided.
  • the reference image reading unit 351 of the inter prediction unit 24 in FIG. 88 is stored in the frame memory 22 based on the reference index and the prediction direction in the inter prediction mode information, similarly to the reference image reading unit 41 in FIG.
  • the reference image is specified among the existing images. Further, the reference image reading unit 351 reads the block size and the prediction direction of the inter prediction mode information, and the horizontal and vertical generation pixel numbers corresponding to the fractional value of the motion vector from the LUT 354.
  • the reference image reading unit 351 is used to generate a luminance component of the predicted image based on the number of pixels for generation in the horizontal direction and the vertical direction, the block size in the inter prediction mode information, and the integer value of the motion vector.
  • the luminance component of the pixel is read from the frame memory 22. Then, the reference image reading unit 351 temporarily holds the luminance component of the read reference pixel.
  • the reference image reading unit 351 generates a luminance component of the prediction pixel among the luminance components of the reference pixel temporarily held for each prediction pixel based on the number of generation pixels in the horizontal direction or the vertical direction. Read out the luminance components of two or four reference pixels as the number of generation pixels to be used. The reference image reading unit 351 supplies the luminance component of the read two or four reference pixels to the pixel sorting unit 352.
  • the pixel distribution unit 352 uses the luminance component of the reference pixel supplied from the reference image reading unit 351 as the luminance component of the generation pixel. In addition, the pixel sorting unit 352 generates a block size and a prediction direction in the inter prediction mode information supplied from the motion prediction unit 25 from the LUT 354, and the number of vertical generation pixels corresponding to the fractional value of the motion vector. Is read.
  • the pixel distribution unit 352 uses two or four as the number of pixels for generation in the vertical direction used for generating the luminance component of the prediction pixel to be generated from the intermediate result memory 50.
  • the luminance component of Sub pel is read out as the luminance component of the generation pixel.
  • the pixel distribution unit 352 supplies the luminance components of the two generation pixels to the 2-tap FIR filter 43 and supplies the luminance components of the four generation pixels to the 4-tap FIR filter 44.
  • the pixel selection unit 353 uses the luminance component of the pixel supplied from the 2-tap FIR filter 43 or the 4-tap FIR filter 44 as the luminance component of the prediction pixel. 3 or supplied to the intermediate result memory 50.
  • the pixel selection unit 353 when the fractional value of at least one of the horizontal component and the vertical component of the motion vector is 0, the luminance component of the pixel supplied from the 2-tap FIR filter 43 or the 4-tap FIR filter 44 Is supplied to the selection unit 26 as the luminance component of the prediction pixel.
  • the pixel selection unit 353 when the fractional values of both the horizontal component and the vertical component of the motion vector are not 0, the pixel selection unit 353 generates a sub-pel that is the luminance component of the pixel supplied from the 2-tap FIR filter 43 or the 4-tap FIR filter 44. Are supplied to the intermediate result memory 50 and held therein.
  • the calculation is performed again using the luminance component of Sub ⁇ pel held in the intermediate result memory 50.
  • the pixel selection unit 353 outputs the luminance component of Sub pel obtained as a result to the selection unit 26 as the luminance component of the predicted pixel.
  • the prediction direction is bi-directional prediction, the luminance component of the prediction pixel generated from the reference image whose display time is earlier than the image to be subjected to inter prediction and the reference image whose display time is later The luminance component of the predicted pixel is averaged and output to the selection unit 26.
  • the LUT 354 stores the number of pixels for generation in association with the size of the inter prediction block, the prediction direction, and the type of Sub-pel that becomes the prediction pixel corresponding to the fractional value of the motion vector.
  • the information of “maximum value 4.5” in the item “number of horizontal generation pixels” is the number of horizontal generation pixels whose normalized reference pixel number is 4.5 or less. It is.
  • the information of “maximum value 3.1” in the item “number of pixels for generation in the horizontal direction” is the case where the prediction direction is prediction in both directions and the block size of inter prediction is smaller than 8 ⁇ 8 pixels.
  • the information of the item “maximum value 4.5” and the item “maximum value 3.1” of the item “vertical generation pixel number” is the same as the item “horizontal generation pixel number”.
  • the LUT 354 is associated with information of the items “prediction direction”, “block horizontal size”, “block vertical size”, and “Sub pel”, for example, the item “number of horizontal generation pixels” ”And“ vertical generation pixel count ”items“ maximum value 4.5 ”or item“ maximum value 3.1 ”are stored.
  • 91 and 92 are flowcharts for explaining the color inter prediction processing by the color inter prediction unit 321 of the inter prediction processing in step S15 of FIG. 20 by the inter prediction unit 24 of FIG. 83.
  • steps S521 and S522 in FIG. 91 are similar to the processing in steps S480 and S481 in FIG.
  • step S523 the reference image reading unit 331 of the color inter prediction unit 321 in FIG. 84 receives the size of the prediction image determined in step S522, the prediction direction in the inter prediction mode information, and the motion vector distribution from the LUT 333. The number of horizontal and vertical generation pixels corresponding to the numerical value is read.
  • the reference image reading unit 331 determines the reference pixels used for generating the color components of the predicted image based on the number of horizontal and vertical generation pixels, the integer value of the motion vector, and the size of the predicted image. Color components are read from the frame memory 22. Then, the reference image reading unit 331 temporarily holds the read color components of the reference pixels.
  • step S525 the reference image reading unit 331 determines a prediction pixel that has not yet been determined as a generation target prediction pixel in the process of step S525, as a generation target prediction pixel from among the prediction pixels constituting the prediction image.
  • the reference image reading unit 331 In step S526, the reference image reading unit 331 generates a color component of the prediction corresponding pixel among the temporarily stored reference pixel color components based on the position of the generation target prediction pixel on the reference image. Read out the color components of 4 or 8 reference pixels as the number of generation pixels to be used. The reference image reading unit 331 supplies the read color components of four or eight reference pixels to the pixel sorting unit 332.
  • step S527 the pixel sorting unit 332 determines whether the number of reference pixels corresponding to the color component supplied from the reference image reading unit 331 is eight. If it is determined in step S527 that the number of reference pixels is 8, the pixel sorting unit 332 supplies the color components of the eight reference pixels to the 8-tap FIR filter 293, and the process proceeds to step S528.
  • step S528, the 8-tap FIR filter 293 performs an operation using the color components of the reference pixels as eight generation pixels supplied from the pixel sorting unit 332 and the filter coefficients supplied from the 8-tap filter coefficient memory 295. I do.
  • the 8-tap FIR filter 293 supplies one prediction corresponding pixel obtained as a result to the pixel selection unit 297.
  • step S527 when it is determined in step S527 that the number of reference pixels is not eight, that is, when the number of reference pixels is four, the pixel distribution unit 332 converts the color components of the four reference pixels into four-tap FIR. The image is supplied to the filter 294, and the process proceeds to step S529.
  • step S529 the 4-tap FIR filter 294 calculates using the color components of the reference pixels as the four generation pixels supplied from the pixel sorting unit 332 and the filter coefficients supplied from the 4-tap filter coefficient memory 296. I do.
  • the 4-tap FIR filter 294 supplies one prediction corresponding pixel obtained as a result to the pixel selection unit 297.
  • step S530 the pixel selection unit 297 determines whether the fractional values of both the horizontal component and the vertical component of the motion vector supplied from the motion prediction unit 25 are other than zero. If it is determined in step S530 that the fractional value of at least one of the horizontal component and the vertical component of the motion vector is 0, the process proceeds to step S531.
  • step S531 the pixel selection unit 297 outputs the color component of the prediction corresponding pixel supplied from the 4-tap FIR filter 294 or the 8-tap FIR filter 293 to the selection unit 26 of FIG. 3 as the color component of the prediction pixel.
  • the prediction direction is bi-directional prediction, it is generated from the color component of the prediction pixel generated from the reference image whose display time is earlier than the image to be subjected to inter prediction and the reference image whose display time is later.
  • the predicted pixel color components are averaged and output to the selection unit 26.
  • step S532 the reference image reading unit 331 determines whether the color components of all prediction pixels have been generated. If it is determined in step S532 that the color components of all prediction pixels have not yet been generated, the process returns to step S525, and the processes of steps S525 to S532 are repeated until the color components of all prediction pixels are generated. It is.
  • step S532 if it is determined in step S532 that all predicted pixels have been generated, the process ends.
  • step S530 If it is determined in step S530 that the fractional values of both the horizontal and vertical components of the motion vector are other than 0, the process proceeds to step S533.
  • step S533 the pixel selection unit 297 supplies the color component of Sub pel as the prediction corresponding pixel supplied from the 4-tap FIR filter 294 or the 8-tap FIR filter 293 to the intermediate result memory 50 and holds it.
  • step S534 the reference image reading unit 331 determines whether or not the color components of all prediction corresponding pixels have been generated. If it is determined in step S534 that the color components of all prediction corresponding pixels have not yet been generated, the process returns to step S525, and steps S525 to S530 are performed until the color components of all prediction corresponding pixels are generated. The processing of S533 and step S534 is repeated.
  • step S534 determines whether the color components of all prediction-corresponding pixels have been generated. If it is determined in step S534 that the color components of all prediction-corresponding pixels have been generated, the process proceeds to step S535 in FIG.
  • step S535 the reference image reading unit 331 determines a prediction pixel that has not yet been determined as a generation target prediction pixel in the process of step S535 among the prediction pixels constituting the prediction image as a generation target prediction pixel.
  • step S536 the pixel distribution unit 332 generates the vertical direction corresponding to the block size and prediction direction of the inter prediction mode information supplied from the motion prediction unit 25 from the LUT 333 and the fractional value of the motion vector. Read the number of pixels.
  • step S537 the pixel distribution unit 332 generates four or eight Sub pel color components as the number of pixels for generation from the intermediate result memory 50 based on the vertical position of the prediction pixel to be generated on the reference image. Is read.
  • steps S538 to S540 is the same as the processing of steps S527 to S529 of FIG. 91 except that the processing is performed on Sub-pel instead of the reference pixel, and thus description thereof is omitted.
  • step S541 the pixel selection unit 297 outputs the Sub-pel color component supplied from the 4-tap FIR filter 294 or the 8-tap FIR filter 293 to the selection unit 26 as the color component of the predicted pixel.
  • the prediction direction is bi-directional prediction, it is generated from the color component of the prediction pixel generated from the reference image whose display time is earlier than the image to be subjected to inter prediction and the reference image whose display time is later.
  • the predicted pixel color components are averaged and output to the selection unit 26.
  • step S542 the reference image reading unit 331 determines whether the color components of all prediction pixels have been generated. If it is determined in step S542 that the color components of all predicted pixels have not yet been generated, the process returns to step S535, and the processes in steps S535 to S542 are repeated until all predicted pixels are generated.
  • step S542 if it is determined in step S542 that all predicted pixels have been generated, the process ends.
  • the vertical filter is performed after the horizontal filter process is performed.
  • the filter process in the horizontal direction may be performed after the filter process in the vertical direction is performed.
  • the inter prediction process in step S15 in FIG. 20 includes the color inter prediction process in FIGS. 91 and 92 and the luminance inter prediction process by the luminance inter prediction unit 322 in FIG. 88.
  • the inter prediction process for luminance is the same as the inter prediction process for color except that the processing target is not a color component but a luminance component and that the number of pixels for generation is 2 or 4 instead of 4 or 8. Since there is, explanation is omitted.
  • ⁇ Characteristics of normalized reference pixel count> 93 to 100 are diagrams for explaining the characteristics of the normalized reference pixel number.
  • a square with polka dots represents a reference pixel within the size range of an inter prediction block among reference pixels used to generate a prediction pixel, and is hatched.
  • the squares shown represent reference pixels in a range that exceeds the block size range of inter prediction.
  • a square with nothing added represents a predicted pixel.
  • the size of the inter prediction block is 4 ⁇ 4 pixels
  • the prediction pixel is any one of Sub pel e to g, i to k, and m to o
  • the horizontal and vertical directions are
  • the number of pixels for generation is eight and the prediction direction is L0 prediction or L1 prediction
  • the number of reference pixels used for generating a predicted image is 15 ⁇ 15.
  • the reference pixel range is larger than the inter prediction block size, and the normalized reference pixel number is larger as the inter prediction block size is smaller.
  • the prediction direction is not L0 prediction or L1 prediction but bi-directional prediction
  • prediction is performed from 11 ⁇ 11 pixels of the reference image whose display time is earlier than the image to be subjected to inter prediction.
  • An image is generated.
  • a predicted image is generated from 11 ⁇ 11 pixels of a reference image whose display time is later than that of an image to be subjected to inter prediction.
  • the number of normalized reference pixels is larger than when the prediction direction is L0 prediction or L1 prediction.
  • the predicted pixel is Sub pel a, b, c instead of any of Sub pel e to g, i to k, and m to o, it is used to generate a predicted image.
  • the illustration is omitted because only the horizontal direction and the vertical direction are different
  • the prediction pixel is Sub pel d, h, l
  • the number of reference pixels used for generating the prediction image is 11 ⁇ 4 pixels.
  • the normalized reference pixel number is smaller than when both positions are fractional positions.
  • the inter prediction block horizontal
  • the number of reference pixels used for generating the predicted image is 11
  • the other reference image is compared to the case where only the position on one reference image is a fractional position.
  • the normalized reference pixel number becomes larger when only the upper position is a fractional position.
  • the number of horizontal generation pixels is 8, but the generation in the vertical direction
  • the smaller the number of pixels for generation of the other than the number of pixels for generation of the other is The number of normalized reference pixels is smaller than when the number of generation pixels is smaller than the number of pixels. That is, the reduction in the number of normalized reference pixels is greater when the number of other generation pixels is reduced than the number of one generation pixel than when the number of one generation pixel is reduced than the number of other generation pixels.
  • the inter prediction unit 111 of the decoding device 100 is also the same as the inter prediction unit 24 of FIGS. 77 and 83. Composed.
  • the above-described encoding process and decoding process can be performed by hardware or can be performed by software.
  • a program constituting the software is installed in a general-purpose computer or the like.
  • FIG. 101 shows a configuration example of an embodiment of a computer in which a program for executing the series of processes described above is installed.
  • the program can be recorded in advance in a storage unit 408 or a ROM (Read Only Memory) 402 as a recording medium built in the computer.
  • ROM Read Only Memory
  • the program can be stored (recorded) in the removable medium 411.
  • a removable medium 411 can be provided as so-called package software.
  • examples of the removable medium 411 include a flexible disk, a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto Optical) disc, a DVD (Digital Versatile Disc), a magnetic disc, a semiconductor memory, and the like.
  • the program can be installed on the computer from the removable medium 411 as described above via the drive 410, or can be downloaded to the computer via a communication network or a broadcast network, and installed in the built-in storage unit 408. That is, the program is transferred from a download site to a computer wirelessly via a digital satellite broadcasting artificial satellite, or wired to a computer via a network such as a LAN (Local Area Network) or the Internet. be able to.
  • LAN Local Area Network
  • the computer has a CPU (Central Processing Unit) 401 built in, and an input / output interface 405 is connected to the CPU 401 via a bus 404.
  • CPU Central Processing Unit
  • the CPU 401 executes a program stored in the ROM 402 according to a command input by the user operating the input unit 406 via the input / output interface 405. Alternatively, the CPU 401 loads the program stored in the storage unit 408 into a RAM (Random Access Memory) 403 and executes it.
  • a RAM Random Access Memory
  • the CPU 401 performs processing according to the flowchart described above or processing performed by the configuration of the block diagram described above. Then, the CPU 401 causes the processing result to be output from the output unit 407 or transmitted from the communication unit 409 via the input / output interface 405, for example, and further recorded in the storage unit 408 as necessary.
  • the input unit 406 includes a keyboard, a mouse, a microphone, and the like.
  • the output unit 407 includes an LCD (Liquid Crystal Display), a speaker, and the like.
  • the processing performed by the computer according to the program does not necessarily have to be performed in chronological order in the order described as the flowchart. That is, the processing performed by the computer according to the program includes processing executed in parallel or individually (for example, parallel processing or object processing).
  • the program may be processed by one computer (processor), or may be distributedly processed by a plurality of computers. Furthermore, the program may be transferred to a remote computer and executed.
  • FIG. 102 is a block diagram illustrating an exemplary main configuration of a television receiver using a decoding device to which the present technology is applied.
  • the television receiver 500 shown in FIG. 1 includes a terrestrial tuner 513, a video decoder 515, a video signal processing circuit 518, a graphic generation circuit 519, a panel drive circuit 520, and a display panel 521.
  • the television receiver 500 shown in FIG. 1 includes a terrestrial tuner 513, a video decoder 515, a video signal processing circuit 518, a graphic generation circuit 519, a panel drive circuit 520, and a display panel 521.
  • the terrestrial tuner 513 receives a broadcast wave signal of terrestrial analog broadcasting via an antenna, demodulates it, acquires a video signal, and supplies it to the video decoder 515.
  • the video decoder 515 performs a decoding process on the video signal supplied from the terrestrial tuner 513 and supplies the obtained digital component signal to the video signal processing circuit 518.
  • the video signal processing circuit 518 performs predetermined processing such as noise removal on the video data supplied from the video decoder 515, and supplies the obtained video data to the graphic generation circuit 519.
  • the graphic generation circuit 519 generates video data of a program to be displayed on the display panel 521, image data by processing based on an application supplied via a network, and the like, and generates the generated video data and image data in the panel drive circuit 520. Supply.
  • the graphic generation circuit 519 generates video data (graphic) for displaying a screen used by the user for selecting an item, and superimposes the video data on the video data of the program.
  • a process of supplying data to the panel drive circuit 520 is also performed as appropriate.
  • the panel drive circuit 520 drives the display panel 521 based on the data supplied from the graphic generation circuit 519, and causes the display panel 521 to display the video of the program and the various screens described above.
  • the display panel 521 is composed of an LCD (Liquid Crystal Display) or the like, and displays a video of a program or the like according to control by the panel drive circuit 520.
  • LCD Liquid Crystal Display
  • the television receiver 500 also includes an audio A / D (Analog / Digital) conversion circuit 514, an audio signal processing circuit 522, an echo cancellation / audio synthesis circuit 523, an audio amplification circuit 524, and a speaker 525.
  • an audio A / D (Analog / Digital) conversion circuit 514 An audio signal processing circuit 522, an echo cancellation / audio synthesis circuit 523, an audio amplification circuit 524, and a speaker 525.
  • the terrestrial tuner 513 acquires not only a video signal but also an audio signal by demodulating the received broadcast wave signal.
  • the terrestrial tuner 513 supplies the acquired audio signal to the audio A / D conversion circuit 514.
  • the audio A / D conversion circuit 514 performs A / D conversion processing on the audio signal supplied from the terrestrial tuner 513, and supplies the obtained digital audio signal to the audio signal processing circuit 522.
  • the audio signal processing circuit 522 performs predetermined processing such as noise removal on the audio data supplied from the audio A / D conversion circuit 514 and supplies the obtained audio data to the echo cancellation / audio synthesis circuit 523.
  • the echo cancellation / voice synthesis circuit 523 supplies the voice data supplied from the voice signal processing circuit 522 to the voice amplification circuit 524.
  • the audio amplification circuit 524 performs D / A conversion processing and amplification processing on the audio data supplied from the echo cancellation / audio synthesis circuit 523, adjusts to a predetermined volume, and then outputs the audio from the speaker 525.
  • the television receiver 500 also has a digital tuner 516 and an MPEG decoder 517.
  • the digital tuner 516 receives a broadcast wave signal of digital broadcasting (terrestrial digital broadcasting, BS (Broadcasting Satellite) / CS (Communications Satellite) digital broadcasting) via an antenna, demodulates, and MPEG-TS (Moving Picture Experts Group). -Transport Stream) and supply it to the MPEG decoder 517.
  • digital broadcasting terrestrial digital broadcasting, BS (Broadcasting Satellite) / CS (Communications Satellite) digital broadcasting
  • MPEG-TS Motion Picture Experts Group
  • the MPEG decoder 517 releases the scramble applied to the MPEG-TS supplied from the digital tuner 516 and extracts a stream including program data to be played (viewing target).
  • the MPEG decoder 517 decodes the audio packet constituting the extracted stream, supplies the obtained audio data to the audio signal processing circuit 522, decodes the video packet constituting the stream, and converts the obtained video data into the video This is supplied to the signal processing circuit 518.
  • the MPEG decoder 517 supplies EPG (Electronic Program Guide) data extracted from MPEG-TS to the CPU 532 via a path (not shown).
  • the television receiver 500 uses the above-described decoding device 100 as the MPEG decoder 517 for decoding video packets in this way. Therefore, in the MPEG decoder 517, as in the case of the decoding device 100, it is possible to reduce the amount of memory bandwidth used and the amount of processing while suppressing deterioration in the accuracy of inter prediction.
  • the video data supplied from the MPEG decoder 517 is subjected to predetermined processing in the video signal processing circuit 518 as in the case of the video data supplied from the video decoder 515. Then, the video data subjected to the predetermined processing is appropriately superimposed with the generated video data in the graphic generation circuit 519 and supplied to the display panel 521 via the panel drive circuit 520 to display the image. .
  • the audio data supplied from the MPEG decoder 517 is subjected to predetermined processing in the audio signal processing circuit 522 as in the case of the audio data supplied from the audio A / D conversion circuit 514. Then, the audio data that has been subjected to the predetermined processing is supplied to the audio amplifying circuit 524 via the echo cancellation / audio synthesizing circuit 523 and subjected to D / A conversion processing and amplification processing. As a result, sound adjusted to a predetermined volume is output from the speaker 525.
  • the television receiver 500 also includes a microphone 526 and an A / D conversion circuit 527.
  • the A / D conversion circuit 527 receives the user's voice signal captured by the microphone 526 provided in the television receiver 500 for voice conversation.
  • the A / D conversion circuit 527 performs A / D conversion processing on the received audio signal, and supplies the obtained digital audio data to the echo cancellation / audio synthesis circuit 523.
  • the echo cancellation / audio synthesis circuit 523 When the audio data of the user (user A) of the television receiver 500 is supplied from the A / D conversion circuit 527, the echo cancellation / audio synthesis circuit 523 performs echo cancellation on the audio data of the user A. . Then, the echo cancellation / voice synthesis circuit 523 outputs voice data obtained by synthesizing with other voice data after echo cancellation from the speaker 525 via the voice amplification circuit 524.
  • the television receiver 500 also includes an audio codec 528, an internal bus 529, an SDRAM (Synchronous Dynamic Random Access Memory) 530, a flash memory 531, a CPU 532, a USB (Universal Serial Bus) I / F 533, and a network I / F 534.
  • SDRAM Serial Dynamic Random Access Memory
  • USB Universal Serial Bus
  • the A / D conversion circuit 527 receives the user's voice signal captured by the microphone 526 provided in the television receiver 500 for voice conversation.
  • the A / D conversion circuit 527 performs A / D conversion processing on the received audio signal, and supplies the obtained digital audio data to the audio codec 528.
  • the audio codec 528 converts the audio data supplied from the A / D conversion circuit 527 into data of a predetermined format for transmission via the network, and supplies the data to the network I / F 534 via the internal bus 529.
  • the network I / F 534 is connected to the network via a cable attached to the network terminal 535.
  • the network I / F 534 transmits the audio data supplied from the audio codec 528 to other devices connected to the network.
  • the network I / F 534 receives, for example, audio data transmitted from another device connected via the network via the network terminal 535, and receives it via the internal bus 529 to the audio codec 528. Supply.
  • the audio codec 528 converts the audio data supplied from the network I / F 534 into data of a predetermined format and supplies it to the echo cancellation / audio synthesis circuit 523.
  • the echo cancellation / speech synthesis circuit 523 performs echo cancellation on the speech data supplied from the speech codec 528 and synthesizes speech data obtained by synthesizing with other speech data via the speech amplification circuit 524. And output from the speaker 525.
  • the SDRAM 530 stores various data necessary for the CPU 532 to perform processing.
  • the flash memory 531 stores a program executed by the CPU 532.
  • the program stored in the flash memory 531 is read by the CPU 532 at a predetermined timing such as when the television receiver 500 is activated.
  • the flash memory 531 also stores EPG data acquired via digital broadcasting, data acquired from a predetermined server via a network, and the like.
  • the flash memory 531 stores MPEG-TS including content data acquired from a predetermined server via a network under the control of the CPU 532.
  • the flash memory 531 supplies the MPEG-TS to the MPEG decoder 517 via the internal bus 529 under the control of the CPU 532, for example.
  • the MPEG decoder 517 processes the MPEG-TS as in the case of the MPEG-TS supplied from the digital tuner 516. In this way, the television receiver 500 receives content data including video and audio via the network, decodes it using the MPEG decoder 517, displays the video, and outputs audio. Can do.
  • the television receiver 500 also includes a light receiving unit 537 that receives an infrared signal transmitted from the remote controller 551.
  • the light receiving unit 537 receives the infrared light from the remote controller 551 and outputs a control code representing the contents of the user operation obtained by demodulation to the CPU 532.
  • the CPU 532 executes a program stored in the flash memory 531 and controls the overall operation of the television receiver 500 in accordance with a control code supplied from the light receiving unit 537.
  • the CPU 532 and each part of the television receiver 500 are connected via a route (not shown).
  • the USB interface I / F 533 transmits / receives data to / from an external device of the television receiver 500 connected via a USB cable attached to the USB terminal 536.
  • the network I / F 534 is connected to the network via a cable attached to the network terminal 535, and also transmits / receives data other than audio data to / from various devices connected to the network.
  • the television receiver 500 uses the decoding device 100 as the MPEG decoder 517, thereby reducing the amount of memory bandwidth used and the amount of processing while suppressing deterioration in the accuracy of inter prediction.
  • FIG. 103 is a block diagram illustrating an exemplary main configuration of a mobile phone using an encoding device and a decoding device to which the present technology is applied.
  • 103 has a main control unit 650, a power supply circuit unit 651, an operation input control unit 652, an image encoder 653, a camera I / F unit 654, an LCD control, and the like. 655, an image decoder 656, a demultiplexing unit 657, a recording / reproducing unit 662, a modulation / demodulation circuit unit 658, and an audio codec 659. These are connected to each other via a bus 660.
  • the mobile phone 600 includes an operation key 619, a CCD (Charge Coupled Devices) camera 616, a liquid crystal display 618, a storage unit 623, a transmission / reception circuit unit 663, an antenna 614, a microphone (microphone) 621, and a speaker 617.
  • CCD Charge Coupled Devices
  • the power supply circuit unit 651 starts up the mobile phone 600 in an operable state by supplying power from the battery pack to each unit.
  • the mobile phone 600 transmits / receives audio signals, transmits / receives e-mails and image data, and images in various modes such as a voice call mode and a data communication mode based on the control of the main control unit 650 including a CPU, a ROM, a RAM, and the like. Various operations such as shooting or data recording are performed.
  • the mobile phone 600 converts a voice signal collected by the microphone (microphone) 621 into digital voice data by the voice codec 659, performs spectrum spread processing by the modulation / demodulation circuit unit 658, and transmits and receives
  • the unit 663 performs digital / analog conversion processing and frequency conversion processing.
  • the cellular phone 600 transmits the transmission signal obtained by the conversion processing to a base station (not shown) via the antenna 614.
  • the transmission signal (voice signal) transmitted to the base station is supplied to the mobile phone of the other party via the public telephone line network.
  • the cellular phone 600 in the voice call mode, amplifies the received signal received by the antenna 614 by the transmission / reception circuit unit 663, further performs frequency conversion processing and analog-digital conversion processing, and performs spectrum despreading processing by the modulation / demodulation circuit unit 658. Then, the audio codec 659 converts it to an analog audio signal. The cellular phone 600 outputs an analog audio signal obtained by the conversion from the speaker 617.
  • the mobile phone 600 when transmitting an e-mail in the data communication mode, accepts text data of the e-mail input by operating the operation key 619 in the operation input control unit 652.
  • the cellular phone 600 processes the text data in the main control unit 650 and displays the text data on the liquid crystal display 618 via the LCD control unit 655 as an image.
  • the mobile phone 600 generates e-mail data in the main control unit 650 based on the text data received by the operation input control unit 652, user instructions, and the like.
  • the cellular phone 600 performs spread spectrum processing on the electronic mail data by the modulation / demodulation circuit unit 658 and digital / analog conversion processing and frequency conversion processing by the transmission / reception circuit unit 663.
  • the cellular phone 600 transmits the transmission signal obtained by the conversion processing to a base station (not shown) via the antenna 614.
  • the transmission signal (e-mail) transmitted to the base station is supplied to a predetermined destination via a network and a mail server.
  • the mobile phone 600 when receiving an e-mail in the data communication mode, receives and amplifies the signal transmitted from the base station by the transmission / reception circuit unit 663 via the antenna 614, and further performs frequency conversion processing and Analog-digital conversion processing.
  • the mobile phone 600 performs spectrum despreading processing on the received signal by the modulation / demodulation circuit unit 658 to restore the original e-mail data.
  • the cellular phone 600 displays the restored e-mail data on the liquid crystal display 618 via the LCD control unit 655.
  • the mobile phone 600 can record (store) the received electronic mail data in the storage unit 623 via the recording / playback unit 662.
  • the storage unit 623 is an arbitrary rewritable storage medium.
  • the storage unit 623 may be, for example, a semiconductor memory such as a RAM or a built-in flash memory, a hard disk, or a removable disk such as a magnetic disk, a magneto-optical disk, an optical disk, a USB memory, or a memory card. It may be media. Of course, other than these may be used.
  • the mobile phone 600 when transmitting image data in the data communication mode, the mobile phone 600 generates image data with the CCD camera 616 by imaging.
  • the CCD camera 616 includes an optical device such as a lens and a diaphragm and a CCD as a photoelectric conversion element, images a subject, converts the intensity of received light into an electrical signal, and generates image data of the subject image.
  • the image data is converted into encoded image data by compression encoding with a predetermined encoding method such as MPEG2 or MPEG4 by the image encoder 653 via the camera I / F unit 654.
  • the cellular phone 600 uses the above-described encoding device 10 as the image encoder 653 that performs such processing. Therefore, the image encoder 653 can reduce the usage amount and the processing amount of the memory band while suppressing the deterioration of the accuracy of the inter prediction, as in the case of the encoding device 10.
  • the cellular phone 600 simultaneously converts the audio collected by the microphone (microphone) 621 during imaging by the CCD camera 616 into an analog codec and further encodes it.
  • the cellular phone 600 multiplexes the encoded image data supplied from the image encoder 653 and the digital audio data supplied from the audio codec 659 in a demultiplexing unit 657 by a predetermined method.
  • the cellular phone 600 performs spread spectrum processing on the multiplexed data obtained as a result by the modulation / demodulation circuit unit 658 and digital / analog conversion processing and frequency conversion processing by the transmission / reception circuit unit 663.
  • the cellular phone 600 transmits the transmission signal obtained by the conversion processing to a base station (not shown) via the antenna 614.
  • a transmission signal (image data) transmitted to the base station is supplied to a communication partner via a network or the like.
  • the mobile phone 600 can display the image data generated by the CCD camera 616 on the liquid crystal display 618 via the LCD control unit 655 without using the image encoder 653.
  • the mobile phone 600 when receiving data of a moving image file linked to a simple homepage or the like, transmits a signal transmitted from the base station to the transmission / reception circuit unit 663 via the antenna 614. Receive, amplify, and further perform frequency conversion processing and analog-digital conversion processing. The mobile phone 600 performs spectrum despreading processing on the received signal by the modulation / demodulation circuit unit 658 to restore the original multiplexed data. In the cellular phone 600, the demultiplexing unit 657 separates the multiplexed data into coded image data and audio data.
  • the cellular phone 600 In the image decoder 656, the cellular phone 600 generates reproduction moving image data by decoding the encoded image data by a decoding method corresponding to a predetermined encoding method such as MPEG2 or MPEG4, and this is controlled by the LCD control.
  • the image is displayed on the liquid crystal display 618 via the unit 655.
  • the moving image data included in the moving image file linked to the simple homepage is displayed on the liquid crystal display 618.
  • the mobile phone 600 uses the above-described decoding device 100 as the image decoder 656 that performs such processing. Therefore, the image decoder 656 can reduce the use amount and the processing amount of the memory band while suppressing the deterioration of the accuracy of the inter prediction, as in the case of the decoding device 100.
  • the cellular phone 600 simultaneously converts the digital audio data into an analog audio signal in the audio codec 659 and outputs it from the speaker 617. Thereby, for example, audio data included in the moving image file linked to the simple homepage is reproduced.
  • the mobile phone 600 can record (store) the data linked to the received simplified home page or the like in the storage unit 623 via the recording / playback unit 662. .
  • the mobile phone 600 can analyze the two-dimensional code obtained by the CCD camera 616 by the main control unit 650 and obtain information recorded in the two-dimensional code.
  • the mobile phone 600 can communicate with an external device by infrared rays at the infrared communication unit 681.
  • the mobile phone 600 can reduce the amount of memory bandwidth used and the amount of processing while suppressing the deterioration of the accuracy of inter prediction by using the encoding device 10 as the image encoder 653.
  • the mobile phone 600 can reduce the amount of memory bandwidth used and the amount of processing while suppressing the deterioration of the accuracy of inter prediction by using the decoding device 100 as the image decoder 656.
  • the mobile phone 600 uses the CCD camera 616.
  • an image sensor CMOS image sensor
  • CMOS Complementary Metal Oxide Semiconductor
  • the mobile phone 600 can capture an image of a subject and generate image data of the image of the subject, as in the case where the CCD camera 616 is used.
  • the mobile phone 600 has been described.
  • an imaging function similar to that of the mobile phone 600 such as a PDA (Personal Digital Assistant), a smartphone, an UMPC (Ultra Mobile Personal Computer), a netbook, a notebook personal computer, or the like.
  • the encoding device 10 and the decoding device 100 can be applied to any device as in the case of the mobile phone 600.
  • FIG. 104 is a block diagram illustrating a main configuration example of a hard disk recorder using an encoding device and a decoding device to which the present technology is applied.
  • a hard disk recorder 700 shown in FIG. 104 receives audio data and video data of a broadcast program included in a broadcast wave signal (television signal) transmitted from a satellite or a ground antenna received by a tuner.
  • This is an apparatus that stores in a built-in hard disk and provides the stored data to the user at a timing according to the user's instruction.
  • the hard disk recorder 700 can, for example, extract audio data and video data from broadcast wave signals, decode them as appropriate, and store them in a built-in hard disk.
  • the hard disk recorder 700 can also acquire audio data and video data from other devices via a network, for example, decode them as appropriate, and store them in a built-in hard disk.
  • the hard disk recorder 700 decodes audio data and video data recorded in a built-in hard disk, supplies the decoded data to the monitor 760, and displays the image on the screen of the monitor 760. Further, the hard disk recorder 700 can output the sound from the speaker of the monitor 760.
  • the hard disk recorder 700 decodes audio data and video data extracted from broadcast wave signals acquired via a tuner, or audio data and video data acquired from other devices via a network, and monitors 760. And the image is displayed on the screen of the monitor 760.
  • the hard disk recorder 700 can also output the sound from the speaker of the monitor 760.
  • the hard disk recorder 700 includes a receiving unit 721, a demodulating unit 722, a demultiplexer 723, an audio decoder 724, a video decoder 725, and a recorder control unit 726.
  • the hard disk recorder 700 further includes an EPG data memory 727, a program memory 728, a work memory 729, a display converter 730, an OSD (On Screen Display) control unit 731, a display control unit 732, a recording / playback unit 733, a D / A converter 734, And a communication unit 735.
  • the display converter 730 has a video encoder 741.
  • the recording / playback unit 733 includes an encoder 751 and a decoder 752.
  • the receiving unit 721 receives an infrared signal from a remote controller (not shown), converts it into an electrical signal, and outputs it to the recorder control unit 726.
  • the recorder control unit 726 is constituted by, for example, a microprocessor and executes various processes according to a program stored in the program memory 728. At this time, the recorder control unit 726 uses the work memory 729 as necessary.
  • the communication unit 735 is connected to the network and performs communication processing with other devices via the network.
  • the communication unit 735 is controlled by the recorder control unit 726, communicates with a tuner (not shown), and mainly outputs a channel selection control signal to the tuner.
  • the demodulator 722 demodulates the signal supplied from the tuner and outputs the demodulated signal to the demultiplexer 723.
  • the demultiplexer 723 separates the data supplied from the demodulation unit 722 into audio data, video data, and EPG data, and outputs them to the audio decoder 724, the video decoder 725, or the recorder control unit 726, respectively.
  • the audio decoder 724 decodes the input audio data by, for example, the MPEG system and outputs the decoded audio data to the recording / playback unit 733.
  • the video decoder 725 decodes the input video data using, for example, the MPEG system, and outputs the decoded video data to the display converter 730.
  • the recorder control unit 726 supplies the input EPG data to the EPG data memory 727 and stores it.
  • the display converter 730 encodes the video data supplied from the video decoder 725 or the recorder control unit 726 into, for example, NTSC (National Television Standards Committee) video data by the video encoder 741, and outputs the encoded video data to the recording / reproducing unit 733.
  • the display converter 730 converts the screen size of the video data supplied from the video decoder 725 or the recorder control unit 726 into a size corresponding to the size of the monitor 760.
  • the display converter 730 further converts the video data whose screen size has been converted into NTSC video data by the video encoder 741, converts the video data into an analog signal, and outputs the analog signal to the display control unit 732.
  • the display control unit 732 Under the control of the recorder control unit 726, the display control unit 732 superimposes the OSD signal output from the OSD (On Screen Display) control unit 731 on the video signal input from the display converter 730 and displays it on the monitor 760 display. Output and display.
  • OSD On Screen Display
  • the monitor 760 is also supplied with audio data output from the audio decoder 724 after being converted into an analog signal by the D / A converter 734.
  • the monitor 760 outputs this audio signal from a built-in speaker.
  • the recording / playback unit 733 includes a hard disk as a storage medium for recording video data, audio data, and the like.
  • the recording / playback unit 733 encodes the audio data supplied from the audio decoder 724 by the encoder 751 in the MPEG system. Further, the recording / reproducing unit 733 encodes the video data supplied from the video encoder 741 of the display converter 730 by the encoder 751 in the MPEG system. The recording / reproducing unit 733 combines the encoded data of the audio data and the encoded data of the video data with a multiplexer. The recording / reproducing unit 733 amplifies the synthesized data by channel coding and writes the data to the hard disk via the recording head.
  • the recording / reproducing unit 733 reproduces the data recorded on the hard disk via the reproducing head, amplifies it, and separates it into audio data and video data by a demultiplexer.
  • the recording / playback unit 733 uses the decoder 752 to decode the audio data and video data using the MPEG method.
  • the recording / playback unit 733 performs D / A conversion on the decoded audio data, and outputs it to the speaker of the monitor 760.
  • the recording / playback unit 733 performs D / A conversion on the decoded video data and outputs it to the display of the monitor 760.
  • the recorder control unit 726 reads the latest EPG data from the EPG data memory 727 based on the user instruction indicated by the infrared signal from the remote controller received via the receiving unit 721, and supplies it to the OSD control unit 731. To do.
  • the OSD control unit 731 generates image data corresponding to the input EPG data and outputs the image data to the display control unit 732.
  • the display control unit 732 outputs the video data input from the OSD control unit 731 to the display of the monitor 760 for display. As a result, an EPG (electronic program guide) is displayed on the display of the monitor 760.
  • the hard disk recorder 700 can acquire various data such as video data, audio data, or EPG data supplied from other devices via a network such as the Internet.
  • the communication unit 735 is controlled by the recorder control unit 726, acquires encoded data such as video data, audio data, and EPG data transmitted from another device via the network, and supplies the encoded data to the recorder control unit 726. To do.
  • the recorder control unit 726 supplies the acquired encoded data of video data and audio data to the recording / reproducing unit 733 and stores the data in the hard disk.
  • the recorder control unit 726 and the recording / reproducing unit 733 may perform processing such as re-encoding as necessary.
  • the recorder control unit 726 decodes the obtained encoded data of video data and audio data, and supplies the obtained video data to the display converter 730.
  • the display converter 730 processes the video data supplied from the recorder control unit 726 in the same manner as the video data supplied from the video decoder 725, supplies the processed video data to the monitor 760 via the display control unit 732, and displays the image. .
  • the recorder control unit 726 may supply the decoded audio data to the monitor 760 via the D / A converter 734 and output the sound from the speaker.
  • the recorder control unit 726 decodes the encoded data of the acquired EPG data and supplies the decoded EPG data to the EPG data memory 727.
  • the hard disk recorder 700 as described above uses the decoding device 100 as a decoder incorporated in the video decoder 725, the decoder 752, and the recorder control unit 726. Therefore, the decoder incorporated in the video decoder 725, the decoder 752, and the recorder control unit 726 reduces the use amount and the processing amount of the memory band while suppressing the deterioration of the accuracy of inter prediction, as in the case of the decoding device 100. Can be reduced.
  • the hard disk recorder 700 uses the encoding device 10 as the encoder 751. Therefore, the encoder 751 can reduce the use amount and the processing amount of the memory band while suppressing the deterioration of the accuracy of inter prediction, as in the case of the encoding device 10.
  • the hard disk recorder 700 that records video data and audio data on the hard disk has been described.
  • any recording medium may be used.
  • the encoding device 10 and the decoding device 100 can be applied as in the case of the hard disk recorder 700 described above. .
  • FIG. 105 is a block diagram illustrating an exemplary main configuration of a camera using an encoding device and a decoding device to which the present technology is applied.
  • the camera 800 shown in FIG. 105 images a subject and displays an image of the subject on the LCD 816 or records it on the recording medium 833 as image data.
  • the lens block 811 causes light (that is, an image of the subject) to enter the CCD / CMOS 812.
  • the CCD / CMOS 812 is an image sensor using CCD or CMOS, converts the intensity of received light into an electric signal, and supplies it to the camera signal processing unit 813.
  • the camera signal processing unit 813 converts the electrical signal supplied from the CCD / CMOS 812 into Y, Cr, and Cb color difference signals and supplies them to the image signal processing unit 814.
  • the image signal processing unit 814 performs predetermined image processing on the image signal supplied from the camera signal processing unit 813 under the control of the controller 821, and encodes the image signal by the encoder 841 using, for example, the MPEG method. To do.
  • the image signal processing unit 814 supplies encoded data generated by encoding the image signal to the decoder 815. Further, the image signal processing unit 814 acquires display data generated in the on-screen display (OSD) 820 and supplies it to the decoder 815.
  • OSD on-screen display
  • the camera signal processing unit 813 appropriately uses a DRAM (Dynamic Random Access Memory) 818 connected via the bus 817, and appropriately encodes image data and a code obtained by encoding the image data.
  • the digitized data is held in the DRAM 818.
  • the decoder 815 decodes the encoded data supplied from the image signal processing unit 814 and supplies the obtained image data (decoded image data) to the LCD 816. Also, the decoder 815 supplies the display data supplied from the image signal processing unit 814 to the LCD 816. The LCD 816 appropriately synthesizes the image of the decoded image data supplied from the decoder 815 and the image of the display data, and displays the synthesized image.
  • the on-screen display 820 outputs display data such as menu screens and icons made up of symbols, characters, or figures to the image signal processing unit 814 via the bus 817 under the control of the controller 821.
  • the controller 821 executes various processes based on a signal indicating the content instructed by the user using the operation unit 822, and also via the bus 817, an image signal processing unit 814, a DRAM 818, an external interface 819, an on-screen display. 820, media drive 823, and the like are controlled.
  • the FLASH ROM 824 stores programs and data necessary for the controller 821 to execute various processes.
  • the controller 821 can encode the image data stored in the DRAM 818 or decode the encoded data stored in the DRAM 818 instead of the image signal processing unit 814 or the decoder 815.
  • the controller 821 may perform encoding / decoding processing by a method similar to the encoding / decoding method of the image signal processing unit 814 or the decoder 815, or the image signal processing unit 814 or the decoder 815 is compatible.
  • the encoding / decoding process may be performed by a method that is not performed.
  • the controller 821 reads image data from the DRAM 818 and supplies it to the printer 834 connected to the external interface 819 via the bus 817. Let it print.
  • the controller 821 reads the encoded data from the DRAM 818 and supplies it to the recording medium 833 attached to the media drive 823 via the bus 817.
  • the controller 821 reads the encoded data from the DRAM 818 and supplies it to the recording medium 833 attached to the media drive 823 via the bus 817.
  • the recording medium 833 is an arbitrary readable / writable removable medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory.
  • the recording medium 833 may be of any kind as a removable medium, and may be a tape device, a disk, or a memory card.
  • a non-contact IC card or the like may be used.
  • the media drive 823 and the recording medium 833 may be integrated and configured by a non-portable storage medium such as a built-in hard disk drive or SSD (Solid State Drive).
  • a non-portable storage medium such as a built-in hard disk drive or SSD (Solid State Drive).
  • the external interface 819 is composed of, for example, a USB input / output terminal or the like, and is connected to the printer 834 when printing an image.
  • a drive 831 is connected to the external interface 819 as necessary, and a removable medium 832 such as a magnetic disk, an optical disk, or a magneto-optical disk is appropriately mounted, and a computer program read from these is loaded as necessary. And installed in FLASH ROM 824.
  • the external interface 819 has a network interface connected to a predetermined network such as a LAN or the Internet.
  • the controller 821 can read the encoded data from the DRAM 818 in accordance with an instruction from the operation unit 822, and can supply the encoded data from the external interface 819 to another device connected via the network. Also, the controller 821 acquires encoded data and image data supplied from other devices via the network via the external interface 819 and holds them in the DRAM 818 or supplies them to the image signal processing unit 814. Can be.
  • the camera 800 as described above uses the decoding device 100 as the decoder 815. Therefore, the decoder 815 can reduce the use amount and the processing amount of the memory band while suppressing the deterioration of the accuracy of inter prediction, as in the case of the decoding device 100.
  • the camera 800 uses the encoding device 10 as the encoder 841. Accordingly, the encoder 841 can reduce the amount of memory bandwidth used and the amount of processing while suppressing deterioration in inter prediction accuracy, as in the case of the encoding device 10.
  • the decoding method of the decoding device 100 may be applied to the decoding process performed by the controller 821.
  • the encoding method of the encoding device 10 may be applied to the encoding process performed by the controller 821.
  • the image data captured by the camera 800 may be a moving image or a still image.
  • the encoding device 10 and the decoding device 100 can also be applied to devices and systems other than the devices described above.
  • Embodiments of the present technology are not limited to the above-described embodiments, and various modifications can be made without departing from the gist of the present technology.
  • a pixel reading unit that reads a predetermined pixel from a reference image in inter prediction; Using the predetermined pixel read by the pixel reading unit, a calculation unit that calculates a pixel at a fractional position of the reference image as a pixel of a prediction image in the inter prediction, The pixel reading unit is configured to cause the predetermined pixel so that the number of the predetermined pixel corresponding to an outer pixel of the predicted image is smaller than the number of the predetermined pixel corresponding to an inner pixel of the predicted image.
  • Read image processing device is configured to cause the predetermined pixel so that the number of the predetermined pixel corresponding to an outer pixel of the predicted image is smaller than the number of the predetermined pixel corresponding to an inner pixel of the predicted image.
  • the position of the outer pixel on the reference image is a position outside the size range of the predicted image in a reference block that is a block composed of all the predetermined pixels used for calculation of each pixel of the predicted image.
  • the image processing apparatus includes the predetermined pixel corresponding to the outer pixel, the pixel located outside the size range of the predicted image in the reference block, and the predetermined pixel corresponding to the inner pixel.
  • the image processing device according to (2), wherein the predetermined pixel is read out so that a pixel located outside the size range of the predicted image in the reference block is the same among the pixels.
  • the position of the outer pixel on the reference image is the size range of the prediction image of the reference block that is a block made up of all the predetermined pixels used for the calculation of each pixel of the prediction image, and the prediction
  • the image processing apparatus according to (1), wherein the image processing apparatus is a boundary position outside a range of an image size.
  • the pixel reading unit reads the predetermined pixel so that the number of the predetermined pixels corresponding to the outermost pixel of the predicted image is two. (1) to (4) Image processing device. (6) In the pixel reading unit, the number of the predetermined pixels corresponding to the outermost pixel of the predicted image is 2, and the number of the predetermined pixels corresponding to a pixel inside the outer pixel is 4, The predetermined pixel is read out so that the number of the predetermined pixels corresponding to the pixel including the innermost pixel of the predicted image inside the pixel is six. (1) to (5) The image processing apparatus described.
  • a storage unit that stores an outer coefficient that is a coefficient corresponding to a pixel outside the predicted image and an inner coefficient that is a coefficient corresponding to a pixel inside the predicted image;
  • the calculation unit performs calculation using the predetermined pixel and the outer coefficient,
  • the predetermined pixel read by the pixel reading unit corresponds to an inner pixel of the predicted image, calculation is performed using the predetermined pixel and the inner coefficient (1) to (6)
  • An image processing apparatus according to any one of the above.
  • a pixel generation unit for generating the predetermined number of pixels including the replicated pixels and the predetermined pixels;
  • the image processing device according to any one of (1) to (4), wherein the calculation unit calculates pixels of the predicted image using the predetermined number of pixels generated by the pixel generation unit.
  • the number of the predetermined pixels corresponding to the outermost pixel of the predicted image is 4, and the number of the predetermined pixels corresponding to a pixel inside the outer pixel is 5,
  • the predetermined pixels are read out so that the number of the predetermined pixels corresponding to the pixels including the innermost pixel of the predicted image inside the pixels is 6,
  • the image processing apparatus according to (8), wherein the predetermined number is 6.
  • the pixel reading unit when only one of the horizontal and vertical positions on the reference image of each pixel of the predicted image is a fractional position, compared to a case where both positions are fractional positions, The image processing apparatus according to any one of (1) to (4) and (8), wherein the predetermined pixels are read so that the number of the predetermined pixels corresponding to pixels outside the predicted image is increased.
  • the pixel reading unit when the size of the predicted image is larger than a predetermined size, the number of the predetermined pixels corresponding to pixels outside the predicted image is larger than when the size is smaller than the predetermined size.
  • the image processing apparatus according to any one of (1) to (4), (8), and (10), wherein the predetermined pixel is read out.
  • the pixel readout unit has a larger number of the predetermined pixels corresponding to pixels outside the prediction image than in the case of bi-directional prediction.
  • the image processing apparatus according to any one of (1) to (4), (8), (10), and (11), which reads out the predetermined pixel.
  • the pixel readout unit corresponds to a pixel outside the prediction image, and the number of the predetermined pixel outside the prediction pixel corresponds to a pixel inside the prediction image, and the predetermined pixel outside the prediction pixel corresponds to the pixel outside the prediction image.
  • the pixel readout unit may be configured such that the number of the predetermined pixels corresponding to the pixels outside the predicted image is smaller than the number of the predetermined pixels corresponding to the pixels inside the predicted image, and the horizontal direction and the vertical direction.
  • the predetermined pixels are read out so that the number of the predetermined pixels arranged in any one of the directions is smaller than the number of the predetermined pixels arranged in the other direction (1) to (4), (8), or (10) The image processing apparatus according to any one of (14).
  • the image processing device A pixel reading step of reading a predetermined pixel from a reference image in inter prediction; A calculation step of calculating a pixel at a fractional position of the reference image as a pixel of a prediction image in the inter prediction using the predetermined pixel read out by the processing of the pixel reading step; In the processing of the pixel reading step, the predetermined number of pixels is set so that the number of the predetermined pixels corresponding to pixels outside the predicted image is smaller than the number of the predetermined pixels corresponding to pixels inside the predicted image.
  • the predetermined number of pixels is set so that the number of the predetermined pixels corresponding to pixels outside the predicted image is smaller than the number of the predetermined pixels corresponding to pixels inside the predicted image.

Abstract

本発明は、インター予測時に分数精度の動き補償処理を行う場合において、メモリ帯域の使用量を削減することができる画像処理装置、画像処理方法、およびプログラムに関する。参照画像読出部は、インター予測における予測画像の外側の画素に対応する所定の参照画素の数が、予測画像の内側の画素に対応する所定の参照画素の数より少なくなるように、インター予測における参照画像から所定の参照画素を読み出す。2タップFIRフィルタ、4タップFIRフィルタ、または6タップFIRフィルタは、読み出された所定の参照画素を用いて、参照画像の分数位置の画素を予測画像の画素として演算する。本技術は、例えば、H.264/AVC方式で圧縮符号化する符号化装置に適用することができる。

Description

画像処理装置、画像処理方法、およびプログラム
 本技術は、画像処理装置、画像処理方法、およびプログラムに関し、特に、インター予測時に分数精度の動き補償処理を行う場合において、メモリ帯域の使用量を削減することができるようにした画像処理装置、画像処理方法、およびプログラムに関する。
 画像を圧縮する標準規格として、H.264/MPEG(Moving Picture Experts Group)-4 Part10 Advanced Video Coding(以下H.264/AVCという)がある。
 H.264/AVCにおいては、フレームまたはフィールド間の相関に注目したインター予測が行われる。インター予測では、既に保存されている参照可能な画像内の一部の領域を用いて動き補償処理が行われ、予測画像が生成される。
 近年、この動き補償処理において、動きベクトルの分解能を2分の1または4分の1といった分数精度に向上させることが考えられている。
このような分数精度の動き補償処理においては、参照画像の隣接する画素の間にSub pelと呼ばれる仮想的な分数位置の画素を設定し、そのSub pelを生成する処理(以下、インターポーレーションという)が追加して行われる(例えば、特許文献1参照)。即ち、分数精度の動き補償処理では、動きベクトルの最小分解能が画素の分数倍になるため、分数位置の画素を生成するためのインターポーレーションが行われる。
 インターポーレーションに用いられるフィルタであるインターポーレーションフィルタ(Interpolation filter(IF))としては、通常、有限インパルス応答フィルタ(FIR(Finite Impulse Response) Filter)が用いられる。
 例えば、従来のインターポーレーションでは、1/2画素位置のSub pelのインターポーレーションには6タップのFIRフィルタが用いられる。また、1/4画素位置のSub pelは、両隣の1/2画素位置のSub pelまたは整数位置の画素を用いてバイリニア(Bi-linear)処理を行うことにより生成される。
 図1は、従来のインターポーレーションにおいてSub pel a乃至oの生成に用いられる画素を示す図である。
 なお、図1において、英字が記述されていない正方形は整数位置の画素を表し、英字が記述されている正方形は、その英字のSub pelを表している。
 図1の1/2画素位置のSub pel bは、6タップのFIRフィルタにより、Sub pel bと水平方向が同一の位置の斜線が付された正方形で表される整数位置の6画素を用いて生成される。また、1/2画素位置のSub pel hは、6タップのFIRフィルタにより、Sub pel hと垂直方向が同一の位置の斜線が付された正方形で表される整数位置の6画素を用いて生成される。さらに、1/2画素位置のSub pel jは、6タップのFIRフィルタにより、斜線が付された正方形で表される6×6画素を6画素単位で用いて生成される。そして、1/4画素位置の画素a,c乃至g,i、およびk乃至oは、両隣の画素b,h,jまたは斜線が付された正方形で表される整数位置の画素を用いて生成される。
Dmytro Rusanovskyy,Kemal Ugur, Antti Hallapuro,Jani Lainema,and Moncef Gabbouj,Video Coding With Low-Complexity Directional Adaptive Interpolation Filters, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY,AUGUST 2009,VOL.19,No.8
 図1に示したように従来のインターポーレーションでは、インターポーレーションにより生成されるSub pelの周辺の最大6×6画素が必要である。従って、分数精度の動き補償処理では、動き補償処理の対象となるブロックよりも非常に広い領域の画素が必要になる。
 例えば、図2に示すように、8×8画素のブロックに対して分数精度の動き補償処理が行われる場合、そのブロックに対応する水玉が付された正方形で表される8×8画素と、その8×8画素の外側の斜線が付された正方形で表される画素とを含む13×13画素が必要となる。従って、インター予測時に分数精度の動き補償処理が行われる場合、参照画像を記憶するメモリの帯域の使用量は大きい。
 本技術は、このような状況に鑑みてなされたものであり、インター予測時に分数精度の動き補償処理を行う場合において、メモリ帯域の使用量を削減することができるようにするものである。
 本技術の一側面の画像処理装置は、インター予測における参照画像から所定の画素を読み出す画素読出部と、前記画素読出部により読み出された前記所定の画素を用いて、前記参照画像の分数位置の画素を前記インター予測における予測画像の画素として演算する演算部とを備え、前記画素読出部は、前記予測画像の外側の画素に対応する前記所定の画素の数が、前記予測画像の内側の画素に対応する前記所定の画素の数より少なくなるように、前記所定の画素を読み出す画像処理装置である。
 本技術の一側面の画像処理方法およびプログラムは、本技術の一側面の画像処理装置に対応する。
 本技術の一側面においては、インター予測における参照画像から所定の画素が読み出され、読み出された前記所定の画素を用いて、前記参照画像の分数位置の画素が前記インター予測における予測画像の画素として演算される。なお、前記所定の画素は、前記予測画像の外側の画素に対応する前記所定の画素の数が、前記予測画像の内側の画素に対応する前記所定の画素の数より少なくなるように読み出される。
 本技術によれば、インター予測時に分数精度の動き補償処理を行う場合において、メモリ帯域の使用量を削減することができる。
Sub pelの生成に用いられる画素の一例を示す図である。 分数精度の動き補償処理が行われる場合の参照画素の範囲を示す図である。 本技術を適用した画像処理装置としての符号化装置の一実施の形態の構成例を示すブロック図である。 図3のインター予測部の第1の構成例を示すブロック図である。 ブロックサイズが8×8画素である場合の参照画素の例を示す図である。 ブロックサイズが8×8画素である場合の参照画素の範囲の例を示す図である。 ブロックサイズが32×32画素である場合の参照画素の範囲の例を示す図である。 ブロックサイズが16×32画素である場合の参照画素の範囲の例を示す図である。 ブロックサイズが32×16画素である場合の参照画素の範囲の例を示す図である。 ブロックサイズが16×16画素である場合の参照画素の範囲の例を示す図である。 ブロックサイズが8×16画素である場合の参照画素の範囲の例を示す図である。 ブロックサイズが16×8画素である場合の参照画素の範囲の例を示す図である。 ブロックサイズが4×8画素である場合の参照画素の範囲の例を示す図である。 ブロックサイズが8×4画素である場合の参照画素の範囲の例を示す図である。 ブロックサイズが4×4画素である場合の参照画素の範囲の例を示す図である。 予測画素の生成方法を説明する第1の図である。 予測画素の生成方法を説明する第2の図である。 予測画素の生成方法を説明する第3の図である。 予測画素の生成方法を説明する第4の図である。 図3の符号化装置による符号化処理を説明する第1のフローチャートである。 図3の符号化装置による符号化処理を説明する第2のフローチャートである。 インター予測処理の第1の例の詳細を説明する第1のフローチャートである。 インター予測処理の第1の例の詳細を説明する第2のフローチャートである。 本技術を適用した画像処理装置としての復号装置の構成例を示すブロック図である。 図24の復号装置による復号処理を説明するフローチャートである。 図3のインター予測部の第2の構成例を示すブロック図である。 生成用画素の第1の例を示す図である。 インター予測処理の第2の例の詳細を説明する第1のフローチャートである。 インター予測処理の第2の例の詳細を説明する第2のフローチャートである。 図3のインター予測部の第3の構成例を示すブロック図である。 Sub pel a乃至cの生成に用いられる複製後の生成用画素の第1の範囲を示す図である。 Sub pel d,h,lの生成に用いられる複製後の生成用画素の第1の範囲を示す図である。 Sub pel e,f,g,i,j,k,m.n,oの生成に用いられる複製後の生成用画素の第1の範囲を示す図である。 Sub pel a乃至cの生成に用いられる複製後の生成用画素の第2の範囲を示す図である。 Sub pel d,h,lの生成に用いられる複製後の生成用画素の第2の範囲を示す図である。 Sub pel e,f,g,i,j,k,m.n,oの生成に用いられる複製後の生成用画素の第2の範囲を示す図である。 インター予測処理の第3の例の詳細を説明する第1のフローチャートである。 インター予測処理の第3の例の詳細を説明する第2のフローチャートである。 図37の読出処理の詳細を説明するフローチャートである。 第1の参照画素の範囲の例を説明する第1の図である。 第1の参照画素の範囲の例を説明する第2の図である。 生成用画素の第2の例を示す図である。 生成用画素の第3の例を示す図である。 図3のインター予測部の第4の構成例を示すブロック図である。 インター予測処理の第4の例の詳細を説明する第1のフローチャートである。 インター予測処理の第4の例の詳細を説明する第2のフローチャートである。 図45の読出処理の詳細を説明するフローチャートである。 図3のインター予測部の第5の構成例を示すブロック図である。 インター予測処理の第5の例の詳細を説明する第1のフローチャートである。 インター予測処理の第5の例の詳細を説明する第2のフローチャートである。 図49の読出処理の詳細を説明するフローチャートである。 図3のインター予測部の第6の構成例を示すブロック図である。 図52のインター予測部における参照画素の範囲の第1の例を示す図である。 図52のインター予測部における参照画素の範囲の第2の例を示す図である。 インター予測処理の第6の例の詳細を説明する第1のフローチャートである。 インター予測処理の第6の例の詳細を説明する第2のフローチャートである。 図55の読出処理の詳細を説明するフローチャートである。 図52のインター予測部における参照画素の範囲の第3の例を示す図である。 図52のインター予測部における参照画素の範囲の第4の例を示す図である。 図52のインター予測部における参照画素の範囲の第5の例を示す図である。 図3のインター予測部の第7の構成例を示すブロック図である。 インター予測処理の第7の例の詳細を説明する第1のフローチャートである。 インター予測処理の第7の例の詳細を説明する第2のフローチャートである。 図3のインター予測部の第8の構成例を示すブロック図である。 図64のインター予測部における参照画素の第1の例を示す図である。 インター予測処理の第8の例の詳細を説明する第1のフローチャートである。 インター予測処理の第8の例の詳細を説明する第2のフローチャートである。 図64のインター予測部における参照画素の第2の例を示す図である。 図64のインター予測部における参照画素の第3の例を示す図である。 図64のインター予測部における参照画素の第4の例を示す図である。 図3のインター予測部の第9の構成例を示すブロック図である。 複製後の生成用画素の第1の例を示す図である。 インター予測処理の第9の例の詳細を説明する第1のフローチャートである。 インター予測処理の第9の例の詳細を説明する第2のフローチャートである。 複製後の生成用画素の第2の例を示す図である。 複製後の生成用画素の第3の例を示す図である。 図3のインター予測部の第10の構成例を示すブロック図である。 水平方向と垂直方向に並ぶ外側生成用画素の数が同一である場合の参照画素の例を示す図である。 図77のインター予測部における参照画素の例を示す図である。 フレームメモリ内の1フレーム分の画素値の配置例を示す図である。 インター予測処理の第10の例の詳細を説明する第1のフローチャートである。 インター予測処理の第10の例の詳細を説明する第2のフローチャートである。 図3のインター予測部の第11の構成例を示すブロック図である。 図83の色用インター予測部の構成例を示すブロック図である。 生成用画素数と参照画素数の関係を示すグラフである。 図83のLUTに記憶される生成用画素数の例を示す図である。 図83のLUTに記憶される生成用画素数の例を示す図である。 図83の輝度用インター予測部の構成例を示すブロック図である。 図88のLUTに記憶される生成用画素数の例を示す図である。 図88のLUTに記憶される生成用画素数の例を示す図である。 色用インター予測処理を説明する第1のフローチャートである。 色用インター予測処理を説明する第2のフローチャートである。 正規化参照画素数の特性を説明する図である。 正規化参照画素数の特性を説明する図である。 正規化参照画素数の特性を説明する図である。 正規化参照画素数の特性を説明する図である。 正規化参照画素数の特性を説明する図である。 正規化参照画素数の特性を説明する図である。 正規化参照画素数の特性を説明する図である。 正規化参照画素数の特性を説明する図である。 コンピュータの一実施の形態の構成例を示すブロック図である。 テレビジョン受像機の主な構成例を示すブロック図である。 携帯電話機の主な構成例を示すブロック図である。 ハードディスクレコーダの主な構成例を示すブロック図である。 カメラの主な構成例を示すブロック図である。
 <一実施の形態>
 [符号化装置の一実施の形態の構成例]
 図3は、本技術を適用した画像処理装置としての符号化装置の一実施の形態の構成例を示すブロック図である。
 図3の符号化装置10は、A/D変換部11、画面並べ替えバッファ12、演算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、逆量子化部18、逆直交変換部19、加算部20、デブロックフィルタ21、フレームメモリ22、イントラ予測部23、インター予測部24、動き予測部25、選択部26、およびレート制御部27により構成される。図3の符号化装置10は、入力された画像をH.264/AVC方式で圧縮符号化する。
 具体的には、符号化装置10のA/D変換部11は、入力信号として入力されたフレーム単位の画像をA/D変換し、画面並べ替えバッファ12に出力して記憶させる。画面並べ替えバッファ12は、記憶した表示の順番のフレーム単位の画像を、GOP(Group of Picture)構造に応じて、符号化のための順番に並べ替え、演算部13、イントラ予測部23、および動き予測部25に出力する。
 演算部13は、差分演算部として機能し、選択部26から供給される予測画像と、画面並べ替えバッファ12から出力された符号化対象の画像の差分を演算する。具体的には、演算部13は、画面並べ替えバッファ12から出力された符号化対象の画像から、選択部26から供給される予測画像を減算する。演算部13は、減算の結果得られる画像を、残差情報として直交変換部14に出力する。なお、選択部26から予測画像が供給されない場合、演算部13は、画面並べ替えバッファ12から読み出された画像をそのまま残差情報として直交変換部14に出力する。
 直交変換部14は、演算部13からの残差情報に対して離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その結果得られる係数を量子化部15に供給する。
 量子化部15は、直交変換部14から供給される係数を量子化する。量子化された係数は、可逆符号化部16に入力される。
 可逆符号化部16は、最適イントラ予測モードを示す情報(以下、イントラ予測モード情報という)をイントラ予測部23から取得し、最適インター予測モードを示す情報(以下、インター予測モード情報という)、動きベクトルなどをインター予測部24から取得する。
 可逆符号化部16は、量子化部15から供給される量子化された係数に対して、可変長符号化(例えば、CAVLC(Context-Adaptive Variable Length Coding)など)、算術符号化(例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)など)などの可逆符号化を行い、その結果得られる情報を圧縮画像とする。また、可逆符号化部16は、イントラ予測モード情報、または、インター予測モード情報および動きベクトルなどを可逆符号化し、その結果得られる情報を圧縮画像に付加されるヘッダ情報とする。可逆符号化部16は、可逆符号化の結果得られるヘッダ情報が付加された圧縮画像を画像圧縮情報として蓄積バッファ17に供給し、蓄積させる。
 蓄積バッファ17は、可逆符号化部16から供給される画像圧縮情報を、一時的に記憶し、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
 また、量子化部15より出力された、量子化された係数は、逆量子化部18にも入力され、逆量子化された後、逆直交変換部19に供給される。
 逆直交変換部19は、逆量子化部18から供給される係数に対して、逆離散コサイン変換、逆カルーネン・レーベ変換等の逆直交変換を施し、その結果得られる残差情報を加算部20に供給する。
 加算部20は、加算演算部として機能し、逆直交変換部19から供給される復号対象の画像としての残差情報と、選択部26から供給される予測画像を加算して、局部的に復号された画像を得る。なお、選択部26から予測画像が供給されない場合、加算部20は、逆直交変換部19から供給される残差情報を局部的に復号された画像とする。加算部20は、局部的に復号された画像をデブロックフィルタ21に供給するとともに、参照画像としてイントラ予測部23に供給する。
 デブロックフィルタ21は、加算部20から供給される局部的に復号された画像をフィルタリングすることにより、ブロック歪を除去する。デブロックフィルタ21は、その結果得られる画像をフレームメモリ22に供給し、蓄積させる。フレームメモリ22に蓄積された画像は、参照画像としてインター予測部24および動き予測部25に出力される。
 イントラ予測部23は、画面並べ替えバッファ12から読み出された画像と、加算部20から供給された参照画像とに基づいて、候補となる全てのイントラ予測モードのイントラ予測を行い、予測画像を生成する。
 また、イントラ予測部23は、候補となる全てのイントラ予測モードに対してコスト関数値(詳細は後述する)を算出する。そして、イントラ予測部23は、コスト関数値が最小となるイントラ予測モードを最適イントラ予測モードに決定する。イントラ予測部23は、最適イントラ予測モードで生成された予測画像、および、対応するコスト関数値を、選択部26に供給する。イントラ予測部23は、選択部26から最適イントラ予測モードで生成された予測画像の選択が通知された場合、イントラ予測モード情報を可逆符号化部16に供給する。
 なお、コスト関数値は、RD(Rate Distortion)コストともいい、例えば、H.264/AVC方式における参照ソフトウェアであるJM(Joint Model)で定められているような、High Complexity モードか、Low Complexity モードのいずれかの手法に基づいて算出される。
 具体的には、コスト関数値の算出手法としてHigh Complexity モードが採用される場合、候補となる全ての予測モードに対して、仮に可逆符号化までが行われ、次の式(1)で表わされるコスト関数値が各予測モードに対して算出される。
 Cost(Mode)=D+λ・R                 ・・・(1)
 Dは、原画像と復号画像の差分(歪)、Rは、直交変換の係数まで含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
 一方、コスト関数値の算出手法としてLow Complexity モードが採用される場合、候補となる全ての予測モードに対して、復号画像の生成、および、予測モードを示す情報などのヘッダビットの算出が行われ、次の式(2)で表わされるコスト関数が各予測モードに対して算出される。
 Cost(Mode)=D+QPtoQuant(QP)・Header_Bit       ・・・(2)
 Dは、原画像と復号画像の差分(歪)、Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
 Low Complexity モードにおいては、全ての予測モードに対して、復号画像を生成するだけでよく、可逆符号化を行う必要がないため、演算量が少なくて済む。なお、ここでは、コスト関数値の算出手法としてHigh Complexity モードが採用されるものとする。
 インター予測部24は、動き予測部25から供給されるインター予測モード情報と動きベクトルに基づいて、フレームメモリ22から参照画像を読み出す。インター予測部24は、動きベクトルとフレームメモリ22から読み出された参照画像とに基づいて、インター予測処理を行う。具体的には、インター予測部24は、動きベクトルに基づいて参照画像に対してインターポーレーションを行うことにより、分数精度の動き補償処理を行う。インター予測部24は、その結果生成される予測画像と、動き予測部25から供給されるコスト関数値とを選択部26に供給する。また、インター予測部24は、選択部26から最適インター予測モードで生成された予測画像の選択が通知された場合、インター予測モード情報、対応する動きベクトルなどを可逆符号化部16に出力する。
 動き予測部25は、画面並べ替えバッファ12から供給される画像と、フレームメモリ22から供給される参照画像とに基づいて、候補となる全てのインター予測モードの動き予測処理を行い、分数精度の動きベクトルを生成する。具体的には、動き予測部25は、インター予測モードごとに、参照画像に対してインター予測部24と同様の手法でインターポーレーションを行う。そして、動き予測部25は、インター予測モードごとに、インターポーレーション後の参照画像と、画面並べ替えバッファ12から供給される画像とのマッチングを行い、分数精度の動きベクトルを生成する。本実施の形態では、インターポーレーションにより1/2画素位置のSub pelが生成され、動きベクトルの精度は、1/2画素精度であるものとする。
 このとき、動き予測部25は、候補となる全てのインター予測モードに対してコスト関数値を算出し、コスト関数値が最小となるインター予測モードを最適インター測モードに決定する。そして、動き予測部25は、インター予測モード情報、並びに、対応する動きベクトルおよびコスト関数値をインター予測部24に供給する。
 なお、インター予測モードとは、インター予測の対象とするブロックのサイズ、予測方向、および参照インデックスを表す情報である。予測方向には、インター予測の対象とする画像よりも表示時刻が早い参照画像を用いた前方向の予測(L0予測)、インター予測の対象とする画像よりも表示時刻が遅い参照画像を用いた後方向の予測(L1予測)、およびインター予測の対象とする画像よりも表示時刻が早い参照画像と遅い参照画像を用いた両方向の予測(Bi-prediction)がある。また、参照インデックスとは、参照画像を特定するための番号であり、例えば、インター予測の対象とする画像に近い画像の参照インデックスほど番号が小さい。
 選択部26は、イントラ予測部23およびインター予測部24から供給されるコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちのいずれかを、最適予測モードに決定する。そして、選択部26は、最適予測モードの予測画像を、演算部13および加算部20に供給する。また、選択部26は、最適予測モードの予測画像の選択をイントラ予測部23またはインター予測部24に通知する。
 レート制御部27は、蓄積バッファ17に蓄積された画像圧縮情報に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部15の量子化動作のレートを制御する。
 [インター予測部の第1の構成例]
 図4は、図3のインター予測部24の第1の構成例を示すブロック図である。
 なお、図4では、説明の便宜上、インター予測部24のインター予測処理を行うブロックのみが図示されており、コスト関数値、インター予測モード情報、動きベクトルなどを出力するブロックは省略されている。
 図4において、インター予測部24は、参照画像読出部41、画素振り分け部42、2タップFIRフィルタ43、4タップFIRフィルタ44、6タップFIRフィルタ45、2タップフィルタ係数メモリ46、4タップフィルタ係数メモリ47、6タップフィルタ係数メモリ48、画素選択部49、および中間結果メモリ50により構成される。
 インター予測部24の参照画像読出部41は、図3の動き予測部25から供給されるインター予測モード情報のうちの参照インデックスおよび予測方向に基づいて、フレームメモリ22に記憶されている画像のうちの参照画像を特定する。参照画像読出部41は、インター予測モード情報のうちのブロックのサイズと動きベクトルの整数値に基づいて、予測画像の生成に用いられる参照画像の画素(以下、参照画素という)をフレームメモリ22から読み出し、一時的に保持する。
 参照画像読出部41は、画素読出部として機能する。参照画像読出部41は、予測画像の画素(以下、予測画素という)ごとに、一時的に保持されている参照画素のうち、その予測画素の生成に用いられる参照画素を読み出す。このとき、参照画像読出部41は、外側の予測画素の生成に用いられる参照画素の数が内側の予測画素の生成に用いられる参照画素の数より少なくなるように、参照画素を読み出す。なお、ここでは、予測画素の生成に用いられる参照画素の数は、2,4、または6のいずれかである。参照画像読出部41は、読みされた参照画素を画素振り分け部42に供給する。
 画素振り分け部42は、参照画像読出部41から供給される参照画素を生成用画素とする。また、画素振り分け部42は、動き予測部25から供給される動きベクトルの分数値に基づいて、中間結果メモリ50から、生成対象の予測画素に対応するSub pelを生成用画素として読み出す。このとき、画素振り分け部42は、外側の予測画素の生成に用いられるSub pelの数が内側の予測画素の生成に用いられるSub pelの数より少なくなるように、Sub pelを読み出す。なお、ここでは、予測画素の生成に用いられるSub pelの数は、2,4、または6のいずれかである。
 また、画素振り分け部42は、生成用画素の数に応じて、その生成用画素を2タップFIRフィルタ43、4タップFIRフィルタ44、または6タップFIRフィルタ45に供給する。具体的には、画素振り分け部42は、生成用画素の数が2である場合、その生成用画素を2タップFIRフィルタ43に供給し、生成用画素の数が4である場合、その生成用画素を4タップFIRフィルタ44に供給する。また、画素振り分け部42は、生成用画素の数が6である場合、その生成用画素を6タップFIRフィルタ45に供給する。
 2タップFIRフィルタ43は、演算部として機能し、画素振り分け部42から供給される2個の生成用画素と、2タップフィルタ係数メモリ46から供給されるフィルタ係数を用いて演算を行う。2タップFIRフィルタ43は、その結果得られる1個の画素を画素選択部49に供給する。
 4タップFIRフィルタ44は、演算部として機能し、画素振り分け部42から供給される4個の生成用画素と、4タップフィルタ係数メモリ47から供給されるフィルタ係数を用いて演算を行う。4タップFIRフィルタ44は、その結果得られる1個の画素を画素選択部49に供給する。
 6タップFIRフィルタ45は、演算部として機能し、画素振り分け部42から供給される6個の生成用画素と、6タップフィルタ係数メモリ48から供給されるフィルタ係数を用いて演算を行う。6タップFIRフィルタ45は、その結果得られる1個の画素を画素選択部49に供給する。
 2タップフィルタ係数メモリ46は、記憶部として機能し、動きベクトルの分数値に対応付けて2タップFIRフィルタ43用のフィルタ係数を記憶している。2タップフィルタ係数メモリ46は、動き予測部25から供給される動きベクトルの分数値に基づいて、その分数値に対応付けて記憶されているフィルタ係数を2タップFIRフィルタ43に供給する。
 4タップフィルタ係数メモリ47は、記憶部として機能し、動きベクトルの分数値に対応付けて4タップFIRフィルタ44用のフィルタ係数を記憶している。4タップフィルタ係数メモリ47は、動き予測部25から供給される動きベクトルの分数値に基づいて、その分数値に対応付けて記憶されているフィルタ係数を4タップFIRフィルタ44に供給する。
 6タップフィルタ係数メモリ48は、記憶部として機能し、動きベクトルの分数値に対応付けて6タップFIRフィルタ45用のフィルタ係数を記憶している。6タップフィルタ係数メモリ48は、動き予測部25から供給される動きベクトルの分数値に基づいて、その分数値に対応付けて記憶されているフィルタ係数を6タップFIRフィルタ45に供給する。
 画素選択部49は、動き予測部25から供給される動きベクトルの分数値に基づいて、2タップFIRフィルタ43、4タップFIRフィルタ44、または6タップFIRフィルタ45から供給される画素を予測画素として図3の選択部26に出力するか、中間結果メモリ50に供給する。
 具体的には、画素選択部49は、動きベクトルの水平成分および垂直成分の少なくとも一方の分数値が0である場合、2タップFIRフィルタ43、4タップFIRフィルタ44、または6タップFIRフィルタ45から供給される画素を予測画素として選択部26に供給する。一方、画素選択部49は、動きベクトルの水平成分および垂直成分の両方の分数値が0ではない場合、2タップFIRフィルタ43、4タップFIRフィルタ44、または6タップFIRフィルタ45から供給される画素であるSub pelを、中間結果メモリ50に供給し、保持させる。その結果、2タップFIRフィルタ43、4タップFIRフィルタ44、または6タップFIRフィルタ45において、中間結果メモリ50に保持されているSub pelを用いて、再度演算が行われる。画素選択部49は、その結果得られるSub pelを予測画素として選択部26に出力する。
 中間結果メモリ50は、画素選択部49から供給されるSub pelを保持する。
 [参照画素の説明]
 図5は、インター予測のブロックのサイズが8×8画素である場合に、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である8個の予測画素それぞれの生成に用いられる参照画素の例を示す図である。
 なお、図5において、番号が付された正方形は予測画素を表し、番号が付されていない正方形は参照画素を表す。また、水玉が付されている正方形は予測画素の生成に用いられる参照画素のうちの、インター予測のブロックのサイズの範囲内の参照画素を表し、斜線が付されている正方形は、インター予測のブロックのサイズの範囲を超えた範囲の参照画素を表している。
 図5の例では、最も外側の予測画素は2個の参照画素を用いて生成され、その予測画素より1つ内側の予測画素は4個の参照画素を用いて生成され、その予測画素より内側の最も内側の予測画素を含む予測画素は6個の参照画素を用いて生成される。
 具体的には、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である8個の予測画素のうちの最も外側の番号1および番号8が付された正方形が表す予測画素は、その予測画素の左右に1つずつ位置する合計2個の参照画素を用いて生成される。即ち、番号8が付された正方形が表す予測画素の参照画像上の位置は、各予測画素の生成に用いられる全ての参照画素の範囲(参照ブロック)のうちの、インター予測のブロックのサイズの範囲と、インター予測のブロックのサイズの範囲を超えた範囲の境界の位置である。
 また、番号1が付された正方形が表す予測画素より1つ内側の番号2が付された正方形が表す予測画素と、番号8が付された正方形が表す予測画素より1つ内側の番号7が付された正方形が表す予測画素は、その予測画素の左右に2つずつ位置する合計4個の参照画素を用いて生成される。即ち、番号7が付された正方形が表す予測画素には、番号8が付された正方形が表す予測画素の生成にも用いられた、斜線が付された正方形が表す右端の参照画素が用いられる。
 また、番号2が付された正方形が表す予測画素および番号7が付された正方形が表す予測画素より内側の番号3乃至6が付された正方形が表す予測画素は、その予測画素の左右に3つずつ位置する合計6個の参照画素を用いて生成される。
 図6は、インター予測のブロックのサイズが8×8画素である場合に、任意の分数位置の予測画素の生成に用いられる全ての参照画素の例を示す図である。
 なお、図6において、正方形は参照画素を表している。また、最も細かい水玉が付された正方形は、右隣、真下、および右下の予測画素の生成に用いられる参照画素の数が2個である参照画素を表している。2番目に細かい水玉が付された正方形は、右隣、真下、および右下の予測画素の生成に用いられる参照画素の数が4個である参照画素を表している。3番目に細かい水玉が付された正方形は、右隣、真下、および右下の予測画素の生成に用いられる参照画素の数が6個である参照画素を表している。さらに、斜線が付されている正方形は、予測画素の生成に用いられる全ての参照画素のうちのインター予測のブロックのサイズの範囲を超えた範囲の参照画素を表している。
 図6の例では、図5の場合と同様に、最も外側の予測画素は2個の参照画素を用いて生成され、その予測画素より1つ内側の予測画素は4個の参照画素を用いて生成され、その予測画素より内側の最も内側の予測画素を含む予測画素は6個の参照画素を用いて生成される。
 例えば、右下の参照画素の右隣の予測画素の生成には、図6中破線で囲まれた水平方向に並ぶ2個の参照画素が用いられる。また、右下の参照画素の真下の予測画素の生成には、図6中破線で囲まれた垂直方向に並ぶ2個の参照画素が用いられる。
 従って、図6の例では、インター予測のブロックのサイズが8×8画素である場合に、任意の分数位置の予測画素の生成に用いられる全ての参照画素の範囲(参照ブロック)は、インター予測のブロックのサイズである8×8画素の範囲と、その範囲の右隣および真下の1画素分の範囲の9×9画素となる。よって、参照画像読出部41は、フレームメモリ22から9×9画素の範囲の参照画素を読み出せばよい。
 以上のように、符号化装置10は、外側の予測画素の生成に用いられる参照画素の数を、内側の予測画素の生成に用いられる参照画素の数に比べて少なくするので、インター予測に必要な参照画素の数は、図2に示した従来の場合に比べて削減される。その結果、フレームメモリ22のメモリ帯域の使用量を削減することができる。
 図7乃至図15は、それぞれ、インター予測のブロックのサイズが32×32画素,16×32画素,32×16画素,16×16画素,8×16画素,16×8画素,4×8画素,8×4画素,4×4画素である場合に、任意の分数位置の予測画素の生成に用いられる全ての参照画素の例を示す図である。
 なお、図7乃至図15において、正方形は参照画素を表している。また、水玉が付されている正方形は、予測画素の生成に用いられる全ての参照画素のうちのインター予測のブロックのサイズの範囲内の参照画素を表し、斜線が付されている正方形は、インター予測のブロックのサイズの範囲を超えた範囲の参照画素を表している。
 図7乃至図15の例では、図5や図6の場合と同様に、最も外側の予測画素は2個の参照画素を用いて生成され、その予測画素より1つ内側の予測画素は4個の参照画素を用いて生成され、その予測画素より内側の最も内側の予測画素を含む予測画素は6個の参照画素を用いて生成される。
 従って、図7に示すように、インター予測のブロックのサイズが32×32画素である場合、任意の分数位置の予測画素の生成に用いられる全ての参照画素の範囲は、インター予測のブロックのサイズである32×32画素の範囲と、その範囲の右隣および真下の1画素分の範囲の33×33画素となる。
 同様に、図8乃至図15に示すように、インター予測のブロックのサイズが16×32画素,32×16画素,16×16画素,8×16画素,16×8画素,4×8画素,8×4画素,4×4画素である場合、任意の分数位置の予測画素の生成に用いられる全ての参照画素の範囲は、インター予測のブロックのサイズの範囲と、その範囲の右隣および真下の1画素分の範囲となる。
 これに対して、インター予測時に従来の常に6タップFIRフィルタを用いるインターポーレーションが行われる場合、任意の分数位置の予測画素の生成に用いられる全ての参照画素の範囲は、図7乃至図15の場合に比べて大きくなる。例えば、インター予測のブロックのサイズが4×4画素であるとき、任意の分数位置の予測画素の生成に用いられる全ての参照画素の範囲は、インター予測のブロックのサイズの4×4画素の範囲と、その左隣および真上の2画素分および右隣および真下の3画素分の範囲の9×9画素の範囲となる。
 [予測画素の生成方法の説明]
 図16乃至図19は、図4のインター予測部24における予測画素の生成方法を説明する図である。
 なお、図16乃至図19において、番号が付された正方形はSub pelを表し、番号が付されていない正方形は参照画素を表す。また、水玉が付されている正方形は予測画素の生成に用いられる参照画素のうちの、インター予測のブロックのサイズの範囲内の参照画素を表し、斜線が付されている正方形は、インター予測のブロックのサイズの範囲を超えた範囲の参照画素を表している。
 図16乃至図19の例では、インター予測のブロックのサイズが4×4画素であり、予測画素の水平方向および垂直方向の位置が1/2画素位置である。
 この場合、まず、図16に示すように、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置であるSub pelのうちの、1番上の番号1乃至4が付された正方形が表すSub pelが生成される。このとき、最も外側のSub pelは2個の参照画素を用いて生成され、そのSub pelより1つ内側、即ち最も内側のSub pelは4個の参照画素を用いて生成される。
 具体的には、まず、参照画像読出部41が、番号1が付された正方形が表す左上のSub pelの左右に1つずつ位置する2個の参照画素を画素振り分け部42を介して2タップFIRフィルタ43に供給する。そして、2タップFIRフィルタ43は、その2個の参照画素から番号1が付された正方形が表すSub pelを生成し、画素選択部49は、そのSub pelを中間結果メモリ50に供給して記憶させる。
 次に、参照画像読出部41は、番号1が付された正方形が表すSub pelの右隣の番号2が付された正方形が表すSub pelの左右に2つずつ位置する4個の参照画素を、画素振り分け部42を介して4タップFIRフィルタ44に供給する。そして、4タップFIRフィルタ44は、その4個の参照画素から番号2が付された正方形が表すSub pelを生成し、画素選択部49は、そのSub pelを中間結果メモリ50に供給して記憶させる。
 そして、参照画像読出部41は、番号2が付された正方形が表すSub pelの右隣の番号3が付された正方形が表すSub pelの左右に2つずつ位置する4個の参照画素を、画素振り分け部42を介して4タップFIRフィルタ44に供給する。そして、4タップFIRフィルタ44は、その4個の参照画素から番号3が付された正方形が表すSub pelを生成し、画素選択部49は、そのSub pelを中間結果メモリ50に供給して記憶させる。
 次に、参照画像読出部41は、番号4が付された正方形が表す右上のSub pelの左右に1つずつ位置する2個の参照画素を画素振り分け部42を介して2タップFIRフィルタ43に供給する。そして、2タップFIRフィルタ43は、その2個の参照画素から番号4が付された正方形が表すSub pelを生成し、画素選択部49は、そのSub pelを中間結果メモリ50に供給して記憶させる。
 以上のようにして番号1乃至4が付された正方形が表すSub pelが生成されると、同様に、図17に示すように、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置であるSub pelのうちの、上から2乃至5番目の番号5乃至20が付された正方形が表すSub pelが、水平方向に並ぶSub pel単位で順に生成され、中間結果メモリ50に記憶される。
 次に、図18に示すように、1番左側の予測画素として、番号21乃至24が付された正方形が表すSub pelが生成される。このとき、最も外側の予測画素は2個のSub pelを用いて生成され、その予測画素より1つ内側、即ち最も内側の予測画素は4個のSub pelを用いて生成される。
 具体的には、まず、画素振り分け部42が、番号21が付された正方形が表すSub pelの上下に1つずつ位置する、番号1および番号5が付された正方形が表す2個のSub pelを、中間結果メモリ50から読み出し、2タップFIRフィルタ43に供給する。そして、2タップFIRフィルタ43は、その2個のSub pelから番号21が付された正方形が表すSub pelを予測画素として生成し、画素選択部49は、その予測画素を選択部26(図3)に出力する。
 次に、画素振り分け部42は、番号21が付された正方形が表すSub pelの下の番号22が付された正方形が表すSub pelの上下に2つずつ位置する、垂直方向の位置が整数位置である、番号1,5,9、および13が付された正方形が表す4個のSub pelを、中間結果メモリ50から読み出し、4タップFIRフィルタ44に供給する。そして、4タップFIRフィルタ44は、その4個のSub pelから番号22が付された正方形が表すSub pelを予測画素として生成し、画素選択部49は、その予測画素を選択部26に出力する。
 そして、画素振り分け部42は、番号22が付された正方形が表すSub pelの下の番号23が付された正方形が表すSub pelの上下に2つずつ位置する、垂直方向の位置が整数位置である、番号5,9,13、および17が付された正方形が表す4個のSub pelを、中間結果メモリ50から読み出し、4タップFIRフィルタ44に供給する。そして、4タップFIRフィルタ44は、その4個のSub pelから番号23が付された正方形が表すSub pelを予測画素として生成し、画素選択部49は、その予測画素を選択部26に出力する。
 次に、画素振り分け部42が、番号23が付された正方形が表すSub pelの下の番号24が付された正方形が表すSub pelの上下に1つずつ位置する、番号13および17が付された正方形が表す2個のSub pelを、中間結果メモリ50から読み出し、2タップFIRフィルタ43に供給する。そして、2タップFIRフィルタ43は、その2個のSub pelから番号24が付された正方形が表すSub pelを予測画素として生成し、画素選択部49は、その予測画素を選択部26に出力する。
 以上のようにして番号21乃至24が付された正方形が表すSub pelである1番左側の予測画素が生成されると、同様に、図19に示すように、左から2乃至4番目の番号25乃至36が付された正方形が表すSub pelが、垂直方向に並ぶ予測画素単位で順に予測画素として生成され、選択部26に出力される。
 [符号化装置の処理の説明]
 図20および図21は、図3の符号化装置10による符号化処理を説明するフローチャートである。この符号化処理は、例えば、入力信号としてフレーム単位の画像が符号化装置10に入力されるたびに行われる。
 図20のステップS11において、符号化装置10のA/D変換部11は、入力信号として入力されたフレーム単位の画像をA/D変換し、画面並べ替えバッファ12に出力して記憶させる。
 ステップS12において、画面並べ替えバッファ12は、記憶した表示の順番のフレームの画像を、GOP構造に応じて、符号化のための順番に並べ替える。画面並べ替えバッファ12は、並べ替え後のフレーム単位の画像を、演算部13、イントラ予測部23、および動き予測部25に供給する。
 なお、以下のステップS13乃至S30の処理は、例えばマクロブロック単位で行われる。但し、先頭フレームの先頭のマクロブロック等のIスライスのマクロブロックの処理時には、ステップS13乃至S20およびS28の処理は行われず、先頭フレームの画像が残差情報および局部的に復号された画像とされる。
 ステップS13において、イントラ予測部23は、画面並べ替えバッファ12から供給される画像と、加算部20から供給される参照画像とに基づいて、候補となる全てのイントラ予測モードのイントラ予測を行い、予測画像を生成する。また、イントラ予測部23は、候補となる全てのイントラ予測モードに対してコスト関数値を算出する。そして、イントラ予測部23は、コスト関数値が最小となるイントラ予測モードを最適イントラ予測モードに決定する。イントラ予測部23は、最適イントラ予測モードで生成された予測画像、および、対応するコスト関数値を、選択部26に供給する。
 ステップS14において、動き予測部25は、画面並べ替えバッファ12から供給される画像に対して、フレームメモリ22から供給される参照画像を用いて、候補となる全てのインター予測モードの動き予測処理を行い、分数精度の動きベクトルを生成する。また、動き予測部25は、候補となる全てのインター予測モードに対してコスト関数値を算出し、コスト関数値が最小となるインター予測モードを最適インター測モードに決定する。そして、動き予測部25は、インター予測モード情報、並びに、対応する動きベクトルおよびコスト関数値をインター予測部24に供給する。
 ステップS15において、インター予測部24は、動き予測部25から供給される動きベクトルとインター予測モード情報に基づいてインター予測処理を行う。このインター予測処理の詳細は、後述する図22および図23を参照して説明する。インター予測部24は、インター予測処理の結果生成される予測画像と、動き予測部25から供給されるコスト関数値とを選択部26に供給する。
 ステップS16において、選択部26は、イントラ予測部23およびインター予測部24から供給されるコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちのコスト関数値が最小となる方を、最適予測モードに決定する。そして、選択部26は、最適予測モードの予測画像を、演算部13および加算部20に供給する。
 ステップS17において、選択部26は、最適予測モードが最適インター予測モードであるかどうかを判定する。ステップS17で最適予測モードが最適インター予測モードであると判定された場合、選択部26は、最適インター予測モードで生成された予測画像の選択をインター予測部24に通知する。これにより、インター予測部24は、インター予測モード情報、対応する動きベクトルなどを可逆符号化部16に出力する。
 そして、ステップS18において、可逆符号化部16は、インター予測部24から供給されるインター予測モード情報、動きベクトルなどを可逆符号化し、その結果得られる情報を圧縮画像に付加されるヘッダ情報とする。そして、処理はステップS20に進む。
 一方、ステップS17で最適予測モードが最適インター予測モードではないと判定された場合、即ち最適予測モードが最適イントラ予測モードである場合、選択部26は、最適イントラ予測モードで生成された予測画像の選択をイントラ予測部23に通知する。これにより、イントラ予測部23は、イントラ予測モード情報を可逆符号化部16に供給する。
 そして、ステップS19において、可逆符号化部16は、イントラ予測部23から供給されるイントラ予測モード情報などを可逆符号化し、その結果得られる情報を圧縮画像に付加されるヘッダ情報とする。そして、処理はステップS20に進む。
 ステップS20において、演算部13は、画面並べ替えバッファ12から供給される画像から、選択部26から供給される予測画像を減算する。演算部13は、減算の結果得られる画像を、残差情報として直交変換部14に出力する。
 ステップS21において、直交変換部14は、演算部13からの残差情報に対して直交変換を施し、その結果得られる係数を量子化部15に供給する。
 ステップS22において、量子化部15は、直交変換部14から供給される係数を量子化する。量子化された係数は、可逆符号化部16と逆量子化部18に入力される。
 ステップS23において、可逆符号化部16は、量子化部15から供給される量子化された係数を可逆符号化し、その結果得られる情報を圧縮画像とする。そして、可逆符号化部16は、ステップS18またはS19の処理で生成されたヘッダ情報を圧縮画像に付加し、画像圧縮情報を生成する。
 図21のステップS24において、可逆符号化部16は、画像圧縮情報を蓄積バッファ17に供給し、蓄積させる。
 ステップS25において、蓄積バッファ17は、蓄積されている画像圧縮情報を、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
 ステップS26において、逆量子化部18は、量子化部15から供給される量子化された係数を逆量子化する。
 ステップS27において、逆直交変換部19は、逆量子化部18から供給される係数に対して逆直交変換を施し、その結果得られる残差情報を加算部20に供給する。
 ステップS28において、加算部20は、逆直交変換部19から供給される残差情報と、選択部26から供給される予測画像を加算し、局部的に復号された画像を得る。加算部20は、得られた画像をデブロックフィルタ21に供給するとともに、参照画像としてイントラ予測部23に供給する。
 ステップS29において、デブロックフィルタ21は、加算部20から供給される局部的に復号された画像に対してフィルタリングを行うことにより、ブロック歪を除去する。
 ステップS30において、デブロックフィルタ21は、フィルタリング後の画像をフレームメモリ22に供給し、蓄積させる。フレームメモリ22に蓄積された画像は、参照画像としてインター予測部24および動き予測部25に出力される。そして、処理は終了する。
 図22および図23は、図20のステップS15のインター予測処理の第1の例の詳細を説明するフローチャートである。
 図22のステップS50において、インター予測部24の参照画像読出部41(図4)は、図3の動き予測部25から供給されるインター予測モード情報のうちの予測方向と参照インデックスに基づいて、フレームメモリ22に記憶されている画像のうちの参照画像を特定する。
 ステップS51において、参照画像読出部41は、インター予測モード情報のうちのインター予測のブロックのサイズに基づいて、予測画像のサイズを決定する。
 ステップS52において、参照画像読出部41は、インター予測モード情報のうちの動きベクトルの整数値および予測画像のサイズに基づいて、その予測画像の生成に用いられる参照画素をフレームメモリ22から読み出し、一時的に保持する。
 ステップS53において、参照画像読出部41は、予測画像を構成する予測画素のうち、まだステップS53の処理で生成対象の予測画素に決定されていない予測画素を生成対象の予測画素に決定する。
 ステップS54において、参照画像読出部41は、生成対象の予測画素の予測画像上の位置に基づいて、その予測画素に対応する参照画像上の水平方向または垂直方向の位置が整数位置である画素(以下、予測対応画素という)の生成に用いられる参照画素の数を2,4、または6に決定する。
 なお、生成対象の予測画素の参照画像上の水平方向および垂直方向の少なくとも一方の位置が整数位置である場合、予測対応画素は予測画素である。一方、生成対象の予測画素の参照画像上の水平方向および垂直方向の両方の位置が分数位置である場合、予測対応画素は、予測画素の生成に用いられる、予測画素と水平方向の位置が同一で、垂直方向の位置が整数位置である、まだ生成されていない画素である。なお、予測対応画素が複数ある場合、ステップS54乃至S65の処理は、予測対応画素ごとに行われる。
 ステップS55において、参照画像読出部41は、ステップS54で決定された参照画素の数と、生成対象の予測画素の参照画像上の位置に基づいて、ステップS52で保持された参照画素のうちの、予測対応画素の生成に用いられる参照画素を読み出す。参照画像読出部41は、読み出された参照画素を画素振り分け部42に供給する。
 ステップS56において、2タップフィルタ係数メモリ46は、動き予測部25から供給される動きベクトルの予測対応画素に対応する成分の分数値に基づいて、その分数値に対応付けて記憶されているフィルタ係数(外側係数)を読み出し、2タップFIRフィルタ43に供給する。同様に、4タップフィルタ係数メモリ47および6タップフィルタ係数メモリ48は、それぞれ、動きベクトルの予測対応画素に対応する成分の分数値に基づいて、その分数値に対応付けて記憶されているフィルタ係数(内側係数)を読み出し、4タップFIRフィルタ44、6タップFIRフィルタ45に供給する。
 なお、生成対象の予測画素の参照画像上の水平方向および垂直方向の一方の位置のみが分数位置である場合、予測対応画素に対応する成分は、その一方の方向の成分である。一方、生成対象の予測画素の参照画像上の水平方向および垂直方向の両方の位置が整数位置または分数位置である場合、予測対応画素に対応する成分は、水平方向の成分である。
 ステップS57において、画素振り分け部42は、参照画像読出部41から供給される参照画素の数は2であるかどうかを判定する。ステップS57で参照画素の数は2であると判定された場合、画素振り分け部42は、2個の参照画素を生成用画素として2タップFIRフィルタ43に供給する。
 そして、ステップS58において、2タップFIRフィルタ43は、画素振り分け部42から供給される2個の生成用画素としての参照画素と、2タップフィルタ係数メモリ46から供給されるフィルタ係数を用いて演算を行う。2タップFIRフィルタ43は、その結果得られる1個の予測対応画素を画素選択部49に供給し、処理をステップS62に進める。
 一方、ステップS57で参照画素の数は2ではないと判定された場合、ステップS59において、画素振り分け部42は、参照画像読出部41から供給される参照画素の数は4であるかどうかを判定する。ステップS59で参照画素の数は4であると判定された場合、画素振り分け部42は、4個の参照画素を生成用画素として4タップFIRフィルタ44に供給する。
 そして、ステップS60において、4タップFIRフィルタ44は、画素振り分け部42から供給される4個の生成用画素としての参照画素と、4タップフィルタ係数メモリ47から供給されるフィルタ係数を用いて演算を行う。4タップFIRフィルタ44は、その結果得られる1個の予測対応画素を画素選択部49に供給し、処理をステップS62に進める。
 一方、ステップS59で参照画素の数は4ではないと判定された場合、即ち参照画素の数が6である場合、画素振り分け部42は、6個の参照画素を生成用画素として6タップFIRフィルタ45に供給する。
 そして、ステップS61において、6タップFIRフィルタ45は、画素振り分け部42から供給される6個の生成用画素としての参照画素と、6タップフィルタ係数メモリ48から供給されるフィルタ係数を用いて演算を行う。6タップFIRフィルタ45は、その結果得られる1個の予測対応画素を画素選択部49に供給し、処理をステップS62に進める。
 ステップS62において、画素選択部49は、動き予測部25から供給される動きベクトルの水平成分と垂直成分の両方の分数値が0以外であるかどうか、即ち予測画素の参照画像上の水平方向と垂直方向の両方の位置が分数位置であるかどうかを判定する。ステップS62で動きベクトルの水平成分と垂直成分の少なくとも一方の分数値が0であると判定された場合、即ち予測画素の参照画像上の水平方向と垂直方向の少なくとも一方の位置が整数位置である場合、処理はステップS63に進む。
 ステップS63において、画素選択部49は、2タップFIRフィルタ43、4タップFIRフィルタ44、または6タップFIRフィルタ45から供給される予測対応画素を予測画素として図3の選択部26に出力する。
 ステップS64において、参照画像読出部41は、全ての予測画素が生成されたか、即ちステップS53で予測画像を構成する全ての予測画素を生成対象の予測画素に決定したかどうかを判定する。ステップS64でまだ全ての予測画素が生成されていないと判定された場合、処理はステップS53に戻り、全ての予測画素が生成されるまで、ステップS53乃至S64の処理が繰り返される。
 一方、ステップS64で全ての予測画素が生成されたと判定された場合、処理は図20のステップS15に戻り、ステップS16に進む。
 また、ステップS62で動きベクトルの水平成分と垂直成分の両方の分数値が0以外であると判定された場合、即ち予測画素の参照画像上の水平方向と垂直方向の両方の位置が分数位置である場合、処理はステップS65に進む。
 ステップS65において、画素選択部49は、2タップFIRフィルタ43、4タップFIRフィルタ44、または6タップFIRフィルタ45から供給される予測対応画素としてのSub pelを、中間結果メモリ50に供給し、保持させる。
 ステップS66において、参照画像読出部41は、全ての予測対応画素が生成されたか、即ちステップS53で予測画像を構成する全ての予測画素を生成対象の予測画素に決定したかどうかを判定する。ステップS66でまだ全ての予測対応画素が生成されていないと判定された場合、処理はステップS53に戻り、全ての予測対応画素が生成されるまで、ステップS53乃至S62、ステップS65、およびステップS66の処理が繰り返される。
 一方、ステップS66で全ての予測対応画素が生成されたと判定された場合、処理は図23のステップS67に進む。
 ステップS67において、参照画像読出部41は、予測画像を構成する予測画素のうち、まだステップS67の処理で生成対象の予測画素に決定されていない予測画素を生成対象の予測画素に決定する。
 ステップS68において、画素振り分け部42は、生成対象の予測画素の予測画像上の垂直方向の位置に基づいて、中間結果メモリ50から読み出すSub pelの数を2,4、または6に決定する。
 ステップS69において、画素振り分け部42は、ステップS68で決定されたSub pelの数と、生成対象の予測画素の参照画像上の位置に基づいて、中間結果メモリ50からSub pelを生成用画素として読み出す。
 ステップS70において、2タップフィルタ係数メモリ46は、動き予測部25から供給される動きベクトルの垂直成分の分数値に基づいて、その分数値に対応付けて記憶されているフィルタ係数を2タップFIRフィルタ43に供給する。同様に、4タップフィルタ係数メモリ47および6タップフィルタ係数メモリ48は、それぞれ、動きベクトルの垂直成分の分数値に基づいて、その分数値に対応付けて記憶されているフィルタ係数を4タップFIRフィルタ44、6タップFIRフィルタ45に供給する。
 ステップS71乃至S75の処理は、参照画素の代わりにSub pelに対して行われる点を除いて、図22のステップS57乃至S61の処理と同様であるので、説明は省略する。
 ステップS76において、画素選択部49は、2タップFIRフィルタ43、4タップFIRフィルタ44、または6タップFIRフィルタ45から供給される画素であるSub pelを予測画素として選択部26に出力する。
 ステップS77において、参照画像読出部41は、全ての予測画素が生成されたか、即ちステップS67で予測画像を構成する全ての予測画素を生成対象の予測画素に決定したかどうかを判定する。ステップS77でまだ全ての予測画素が生成されていないと判定された場合、処理はステップS67に戻り、全ての予測画素が生成されるまで、ステップS67乃至S77の処理が繰り返される。
 一方、ステップS77で全ての予測画素が生成されたと判定された場合、処理は図20のステップS15に戻り、ステップS16に進む。
 以上のように、符号化装置10は、インター予測時に、外側の予測画素の生成に用いられる参照画素の数を、内側の予測画素の生成に用いられる参照画素の数に比べて少なくするので、予測画像全体の生成に用いられる参照画素の数を削減することができる。その結果、フレームメモリ22のメモリ帯域の使用量を削減することができる。また、外側の予測画素の生成に用いられる参照画素が少ないので、演算量を削減することができる。
 さらに、FIRフィルタでは、タップ長の長い方が理想的な特性を持つことができるため、FIRフィルタの性能とメモリ帯域の使用量はトレードオフの関係にある。従って、メモリ帯域の使用量を削減するために、全ての予測画素の生成に用いられる参照画素の数が削減されると、インター予測の精度が悪化する。これに対して、符号化装置10は、外側の予測画素の生成に用いられる参照画素の数だけを少なくするので、インター予測の精度の悪化を抑制することができる。
 また、インター予測が行われる場合、インター予測のブロックの中心付近の予測精度に比べて、外周付近の予測精度が低いことが考えられる。具体的には、例えば、インター予測で動き補償される動きが完全な平行移動である場合には、ブロック内の予測精度の差はあまりないが、ほんの少しの回転や変形を伴う移動である場合には、ブロックの中心付近よりも外周付近で予測ずれが大きくなると考えられる。従って、外側の予測画素の生成に用いられる参照画素の数を少なくすることによるインター予測の精度への影響は少ない。
 なお、2タップフィルタ係数メモリ46、4タップフィルタ係数メモリ47、および6タップフィルタ係数メモリ48には、それぞれ、特性の異なるフィルタ係数を記憶しておくことができる。
 例えば、インター予測のブロックの外周付近の予測精度が悪い場合、FIRフィルタの特性により、外周付近の高周波成分を補間しないように、即ち高周波成分が減少するようにするフィルタ係数を用いた方が、予測誤差を小さくすることができる。従って、符号化装置10は、例えば、2タップフィルタ係数メモリ46に高域成分を減少させるフィルタ係数を記憶しておく。これにより、インター予測の予測精度を向上させることができる。
 [復号装置の構成例]
 図24は、図3の符号化装置10から出力される画像圧縮情報を復号する、本技術を適用した画像処理装置としての復号装置の構成例を示すブロック図である。
 図24の復号装置100は、蓄積バッファ101、可逆復号化部102、逆量子化部103、逆直交変換部104、加算部105、デブロックフィルタ106、画面並べ替えバッファ107、D/A変換部108、フレームメモリ109、イントラ予測部110、インター予測部111、およびスイッチ112により構成される。
 復号装置100の蓄積バッファ101は、図3の符号化装置10から画像圧縮情報を受け取り、蓄積する。蓄積バッファ101は、蓄積されている画像圧縮情報を可逆復号化部102に供給する。
 可逆復号化部102は、蓄積バッファ101からの画像圧縮情報に対して、可変長復号や、算術復号等の可逆復号を施すことで、量子化された係数とヘッダを得る。可逆復号化部102は、量子化された係数を逆量子化部103に供給する。また、可逆復号化部102は、ヘッダに含まれるイントラ予測モード情報などをイントラ予測部110に供給し、動きベクトルとインター予測モード情報などをインター予測部111に供給する。さらに、可逆復号化部102は、ヘッダに含まれるイントラ予測モード情報またはインター予測モード情報をスイッチ112に供給する。
 逆量子化部103、逆直交変換部104、加算部105、デブロックフィルタ106、フレームメモリ109、イントラ予測部110、および、インター予測部111は、図3の逆量子化部18、逆直交変換部19、加算部20、デブロックフィルタ21、フレームメモリ22、イントラ予測部23、および、インター予測部24とそれぞれ同様の処理を行い、これにより、画像が復号される。
 具体的には、逆量子化部103は、可逆復号化部102からの量子化された係数を逆量子化し、その結果得られる係数を逆直交変換部104に供給する。
 逆直交変換部104は、逆量子化部103からの係数に対して、逆離散コサイン変換、逆カルーネン・レーベ変換等の逆直交変換を施し、その結果得られる残差情報を加算部105に供給する。
 加算部105は、加算演算部として機能し、逆直交変換部104から供給される復号対象の画像としての残差情報と、スイッチ112から供給される予測画像を加算し、その結果得られる画像をデブロックフィルタ106に供給するとともに、参照画像としてイントラ予測部110に供給する。なお、スイッチ112から予測画像が供給されない場合、加算部105は、逆直交変換部104から供給される残差情報である画像をデブロックフィルタ106に供給するとともに、参照画像としてイントラ予測部110に供給する。
 デブロックフィルタ106は、加算部105から供給される画像をフィルタリングすることにより、ブロック歪を除去する。デブロックフィルタ106は、その結果得られる画像をフレームメモリ109に供給し、蓄積させるとともに、画面並べ替えバッファ107に供給する。フレームメモリ109に蓄積された画像は、参照画像としてインター予測部111に供給される。
 画面並べ替えバッファ107は、デブロックフィルタ106から供給される画像をフレーム単位で記憶する。画面並べ替えバッファ107は、記憶した符号化のための順番のフレーム単位の画像を、元の表示の順番に並び替え、D/A変換部108に供給する。
 D/A変換部108は、画面並べ替えバッファ107から供給されるフレーム単位の画像をD/A変換し、出力信号として出力する。
 イントラ予測部110は、加算部105から供給される参照画像を用いて、可逆復号化部102から供給されるイントラ予測モード情報が表すイントラ予測モードのイントラ予測を行い、予測画像を生成する。そして、イントラ予測部110は、予測画像をスイッチ112に供給する。
 インター予測部111は、図4に示したインター予測部24と同様に構成される。インター予測部111は、可逆復号化部102から供給されるインター予測モード情報と動きベクトルに基づいて、フレームメモリ109から参照画像を読み出す。インター予測部111は、動きベクトルとフレームメモリ109から読み出された参照画像とに基づいて、インター予測処理を行う。インター予測部111は、その結果生成される予測画像をスイッチ112に供給する。
 スイッチ112は、可逆復号化部102からイントラ予測モード情報が供給された場合、イントラ予測部110から供給される予測画像を加算部105に供給する。一方、可逆復号化部102からインター予測モード情報が供給された場合、インター予測部111から供給される予測画像を加算部105に供給する。
 [復号装置の処理の説明]
 図25は、図24の復号装置100による復号処理を説明するフローチャートである。この復号処理は、例えば、フレーム単位の画像圧縮情報が復号装置100に入力されるたびに行われる。
図25のステップS101において、復号装置100の蓄積バッファ101は、図3の符号化装置10からフレーム単位の画像圧縮情報を受け取り、蓄積する。蓄積バッファ101は、蓄積されている画像圧縮情報を可逆復号化部102に供給する。なお、以下のステップS102乃至S110の処理は、例えばマクロブック単位で行われる。
 ステップS102において、可逆復号化部102は、蓄積バッファ101からの画像圧縮情報を可逆復号し、量子化された係数とヘッダを得る。可逆復号化部102は、量子化された係数を逆量子化部103に供給する。また、可逆復号化部102は、ヘッダに含まれるイントラ予測モード情報などをイントラ予測部110に供給し、動きベクトルとインター予測モード情報などをインター予測部111に供給する。さらに、可逆復号化部102は、ヘッダに含まれるイントラ予測モード情報またはインター予測モード情報をスイッチ112に供給する。
 ステップS103において、逆量子化部103は、可逆復号化部102からの量子化された係数を逆量子化し、その結果得られる係数を逆直交変換部104に供給する。
 ステップS104において、逆直交変換部104は、逆量子化部103からの係数に対して逆直交変換を施し、その結果得られる残差情報を加算部105に供給する。
 ステップS105において、インター予測部111は、可逆復号化部102からインター予測モード情報が供給されたかどうかを判定する。ステップS105でインター予測モード情報が供給されたと判定された場合、処理はステップS106に進む。
 ステップS106において、インター予測部111は、可逆復号化部102から供給される動きベクトルとインター予測モード情報に基づいて、図22および図23で説明したインター予測処理を行う。インター予測部111は、その結果生成される予測画像を、スイッチ112を介して加算部105に供給し、処理をステップS108に進める。
 一方、ステップS105でインター予測モード情報が供給されていないと判定された場合、即ちイントラ予測モード情報がイントラ予測部110に供給された場合、処理はステップS107に進む。
 ステップS107において、イントラ予測部110は、加算部105から供給される参照画像を用いて、可逆復号化部102から供給されるイントラ予測モード情報が表すイントラ予測モードのイントラ予測を行う。そして、イントラ予測部110は、その結果生成される予測画像を、スイッチ112を介して加算部105に供給し、処理をステップS108に進める。
 ステップS108において、加算部105は、逆直交変換部104から供給される残差情報と、スイッチ112から供給される予測画像を加算する。加算部105は、その結果得られる画像をデブロックフィルタ106に供給するとともに、参照画像としてイントラ予測部110に供給する。なお、先頭のフレームの先頭のマクロブロックの処理時には、参照画像は存在しないため、ステップS105乃至S108の処理は行われず、残差情報である画像がデブロックフィルタ106に供給されるとともに、参照画像としてイントラ予測部110に供給される。
 ステップS109において、デブロックフィルタ106は、加算部105から供給される画像に対してフィルタリングを行い、ブロック歪を除去する。
 ステップS110において、デブロックフィルタ106は、フィルタリング後の画像をフレームメモリ109に供給し、蓄積させるとともに、画面並べ替えバッファ107に供給する。フレームメモリ109に蓄積された画像は、参照画像としてインター予測部111に供給される。
 ステップS111において、画面並べ替えバッファ107は、デブロックフィルタ106から供給される画像をフレーム単位で記憶し、記憶した符号化のための順番のフレーム単位の画像を、元の表示の順番に並び替え、D/A変換部108に供給する。
 ステップS112において、D/A変換部108は、画面並べ替えバッファ107から供給されるフレーム単位の画像をD/A変換し、出力信号として出力する。
 以上のように、復号装置100は、インター予測時に、外側の予測画素の生成に用いられる参照画素の数を、内側の予測画素の生成に用いられる参照画素の数に比べて少なくするので、予測画像全体の生成に用いられる参照画素の数を削減することができる。その結果、フレームメモリ109のメモリ帯域の使用量を削減することができる。また、外側の予測画素の生成に用いられる参照画素が少ないので、演算量を削減することができる。
 さらに、復号装置100は、外側の予測画素の生成に用いられる参照画素の数だけを少なくするので、符号化装置10と同様に、インター予測の精度の悪化を抑制することができる。
 [インター予測部の第2の構成例]
 図26は、図3のインター予測部24の第2の構成例を示すブロック図である。
 図26に示す構成のうち、図4の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図26のインター予測部24の構成は、主に、参照画像読出部41、画素振り分け部42、画素選択部49の代わりに、参照画像読出部160、画素生成部161、画素選択部162が設けられている点、2タップFIRフィルタ43、4タップFIRフィルタ44、2タップフィルタ係数メモリ46、および4タップフィルタ係数メモリ47が削除された点が図4の構成と異なる。図26のインター予測部24は、図4のインター予測部24の場合と同様にしてフレームメモリ22(図3)から読み出された参照画素を複製して用いることにより、全てのSub pelの生成に用いられる画素の数を6個にする。
 具体的には、図26のインター予測部24の参照画像読出部160は、図4の参照画像読出部41と同様に、図3の動き予測部25から供給されるインター予測モード情報のうちの参照インデックスおよび予測方向に基づいて、フレームメモリ22に記憶されている画像のうちの参照画像を特定する。参照画像読出部160は、参照画像読出部41と同様に、インター予測モード情報のうちのブロックのサイズと動きベクトルに基づいて、予測画像の生成に用いられる参照画素をフレームメモリ22から読み出し、一時的に保持する。
 参照画像読出部160は、参照画像読出部41と同様に、予測画素ごとに、一時的に保持されている参照画素のうち、その予測画素の生成に用いられる参照画素を読み出す。なお、ここでは、予測画素の生成に用いられる参照画素の数は、4乃至6のいずれかである。参照画像読出部160は、参照画像読出部41と同様に、読みされた参照画素を画素生成部161に供給する。
 画素生成部161は、図4の画素振り分け部42と同様に、参照画像読出部41から供給される参照画素を生成用画素とする。また、画素生成部161は、画素振り分け部42と同様に、動き予測部25から供給される動きベクトルの分数値に基づいて、中間結果メモリ50から、生成対象の予測画素に対応するSub pelを生成用画素として読み出す。なお、ここでは、予測画素の生成に用いられるSub pelの数は、4乃至6のいずれかである。
 また、画素生成部161は、生成用画素の数が6個より小さい場合、その生成用画素のうちの外側の画素を、生成用画素の数と6個の差分だけ複製し、複製された画素と生成用画素からなる6個の画素を新たな生成用画素として生成する。
 具体的には、画素生成部161は、生成用画素の数が4である場合、その生成用画素のうちの外側の生成用画素を、その生成用画素の外側の2個の画素として複製し、その2個の画素と4個の生成用画素からなる6個の画素を6個の生成用画素とする。また、画素生成部161は、生成用画素の数が5である場合、その生成用画素のうちの外側の生成用画素を、その生成用画素の外側の1個の画素として複製し、その1個の画素と5個の生成用画素からなる6個の画素を6個の生成用画素とする。一方、画素生成部161は、生成用画素の数が6である場合、その生成用画素をそのまま6個の生成用画素とする。画素生成部161は、生成された6個の生成用画素を6タップFIRフィルタ45に供給する。
 画素選択部162は、図4の画素選択部49と同様に、動き予測部25から供給される動きベクトルの分数値に基づいて、6タップFIRフィルタ45から供給される画素を予測画素として図3の選択部26に出力するか、中間結果メモリ50に供給する。
 [複製後の生成用画素の説明]
 図27は、インター予測のブロックのサイズが8×8画素である場合に、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である8個の予測画素それぞれの生成に用いられる複製後の生成用画素の例を示す図である。
 なお、図27において、番号が付された正方形は予測画素を表し、番号および英字が付されていない正方形は参照画素を表す。また、水玉が付されている正方形は予測画素の生成に用いられる参照画素のうちの、インター予測のブロックのサイズの範囲内の参照画素を表し、斜線が付されている正方形は、インター予測のブロックのサイズの範囲を超えた範囲の参照画素を表している。さらに、英字が付された正方形は、参照画素が複製された画素である。
 図27の例では、最も外側の予測画素は、4個の参照画素を含む6個の生成用画素を用いて生成され、その予測画素より1つ内側の予測画素は、5個の参照画素を含む6個の生成用画素を用いて生成される。また、その予測画素より内側の最も内側の予測画素を含む予測画素は、6個の参照画素を生成用画素として用いて生成される。
 具体的には、生成対象が、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である8個の予測画素のうちの最も外側の番号1が付された正方形が表す予測画素である場合、参照画像読出部160は、その予測画素の左に1つ位置し、右に3つ位置する合計4個の参照画素を画素生成部161に供給する。画素生成部161は、その4個の参照画素のうちの左端の参照画素を、その参照画素の左側の2個の整数位置の画素として複製し、その2個の画素と、画素生成部161から供給される4個の参照画素からなる6個の生成用画素を生成する。
 また、生成対象が、番号1が付された正方形が表す予測画素より1つ内側の番号2が付された正方形が表す予測画素である場合、参照画像読出部160は、その予測画素の左に2つ位置し、右に3つ位置する合計5個の参照画素を画素生成部161に供給する。画素生成部161は、その5個の参照画素のうちの左端の参照画素を、その参照画素の左側の1個の整数位置の画素として複製し、その1個の画素と、画素生成部161から供給される5個の参照画素からなる6個の生成用画素を生成する。
 さらに、生成対象が、番号2が付された正方形が表す予測画素より内側の番号3乃至6が付された正方形が表す予測画素である場合、参照画像読出部160は、その予測画素の左右に3つずつ位置する合計6個の参照画素を画素生成部161に供給する。画素生成部161は、その6個の参照画素をそのまま6個の生成用画素とする。
 また、生成対象が、最も外側の番号8が付された正方形が表す予測画素より1つ内側の番号7が付された正方形が表す予測画素である場合、参照画像読出部160は、その予測画素の右に2つ位置し、左に3つ位置する合計5個の参照画素を画素生成部161に供給する。画素生成部161は、その5個の参照画素のうちの右端の参照画素を、その参照画素の右側の1個の整数位置の画素として複製し、その1個の画素と、画素生成部161から供給される5個の参照画素からなる6個の生成用画素を生成する。
 さらに、生成対象が、最も外側の番号8が付された正方形が表す予測画素である場合、参照画像読出部160は、その予測画素の右に1つ位置し、左に3つ位置する合計4個の参照画素を画素生成部161に供給する。画素生成部161は、その4個の参照画素のうちの右端の参照画素を、その参照画素の右側の2個の整数位置の画素として複製し、その2個の画素と、画素生成部161から供給される4個の参照画素からなる6個の生成用画素を生成する。
 なお、説明は省略するが、水平方向の位置が整数位置であり、垂直方向の位置が分数位置である予測画素の生成時には、最も外側、即ち上下端の参照画素を複製することにより、6個の生成用画素が生成される。また、水平方向および垂直方向の位置が分数位置である予測画素の生成時には、まず、図27の場合と同様に参照画素を用いて6個の生成用画素が生成され、その生成用画素を用いて予測対応画素が生成されて中間結果メモリ50に記憶される。そして、中間結果メモリ50から読み出された予測対応画素のうちの上下端に位置する参照画素を複製することにより、6個の生成用画素が生成される。
 [インター予測処理の第2の例の説明]
 図28および図29は、図26のインター予測部24による図20のステップS15のインター予測処理の詳細を説明するフローチャートである。
 図28のステップS150乃至S153の処理は、図22のステップS50乃至S53の処理と同様であるので、説明は省略する。なお、予測対応画素が複数ある場合、以下のステップS154乃至S165の処理は、予測対応画素ごとに行われる。
 ステップS153の処理後、ステップS154において、参照画像読出部160は、生成対象の予測画素の予測画像上の位置に基づいて、予測対応画素の生成に用いられる参照画素の数を4乃至6のいずれかに決定する。
 ステップS155において、参照画像読出部160は、ステップS154で決定された参照画素の数と、生成対象の予測画素の参照画像上の位置に基づいて、ステップS152で保持された参照画素のうちの、予測対応画素の生成に用いられる参照画素を読み出す。参照画像読出部160は、読み出された参照画素を画素生成部161に供給する。
 ステップS156において、6タップフィルタ係数メモリ48は、動き予測部25から供給される動きベクトルの予測対応画素に対応する成分の分数値に基づいて、その分数値に対応付けて記憶されているフィルタ係数を6タップFIRフィルタ45に供給する。
 ステップS157において、画素生成部161は、参照画像読出部160から供給される参照画素の数は4であるかどうかを判定する。ステップS157で参照画素の数は4であると判定された場合、処理はステップS158に進む。
 ステップS158において、画素生成部161は、参照画像読出部160から供給される4個の参照画素のうちの外側の参照画素を、その参照画素の外側の2個の画素として複製し、その2個の画素と4個の参照画素からなる6個の生成用画素を生成する。そして、画素生成部161は、生成された6個の生成用画素を6タップFIRフィルタ45に供給し、処理をステップS161に進める。
 一方、ステップS157で参照画素の数は4ではないと判定された場合、ステップS159において、画素生成部161は、参照画像読出部160から供給される参照画素の数は5であるかどうかを判定する。
 ステップS159で参照画素の数は5であると判定された場合、処理はステップS160に進む。ステップS160において、画素生成部161は、参照画像読出部160から供給される5個の参照画素のうちの外側の参照画素を、その参照画素の外側の1個の画素として複製し、その1個の画素と5個の参照画素からなる6個の生成用画素を生成する。そして、画素生成部161は、生成された6個の生成用画素を6タップFIRフィルタ45に供給し、処理をステップS161に進める。
 一方、ステップS159で参照画素の数は5ではないと判定された場合、即ち参照画素の数が6である場合、画素生成部161は、その6個の参照画素を生成用画素として6タップFIRフィルタ45に供給し、処理をステップS161に進める。
 ステップS161において、6タップFIRフィルタ45は、画素生成部161から供給される6個の生成用画素と、6タップフィルタ係数メモリ48から供給されるフィルタ係数を用いて演算を行う。6タップFIRフィルタ45は、その結果得られる1個の予測対応画素を画素選択部162に供給する。そして、処理はステップS162に進む。
 図28のステップS162乃至S166の処理および図29のステップS167の処理は、図22のステップS62乃至S66の処理および図23のステップS67の処理と同様であるので、説明は省略する。
 ステップS168において、画素生成部161は、生成対象の予測画素の予測画像上の垂直方向の位置に基づいて、中間結果メモリ50から読み出すSub pelの数を4乃至6のいずれかに決定する。
 ステップS169において、画素生成部161は、ステップS168で決定されたSub pelの数と、生成対象の予測画素の参照画像上の位置に基づいて、中間結果メモリ50からSub pelを生成用画素として読み出す。
 ステップS170において、6タップフィルタ係数メモリ48は、動き予測部25から供給される動きベクトルの垂直成分の分数値に基づいて、その分数値に対応付けて記憶されているフィルタ係数を6タップFIRフィルタ45に供給する。そして、処理はステップS171に進む。
 ステップS171乃至S175の処理は、参照画素の代わりにSub pelに対して行われる点を除いて、図28のステップS157乃至S161の処理と同様であるので、説明は省略する。
 ステップS175の処理後、ステップS176において、画素選択部162は、6タップFIRフィルタ45から供給される画素であるSub pelを予測画素として選択部26に出力する。
 ステップS177において、参照画像読出部160は、全ての予測画素が生成されたか、即ちステップS167で予測画像を構成する全ての予測画素を生成対象の予測画素に決定したかどうかを判定する。ステップS177でまだ全ての予測画素が生成されていないと判定された場合、処理はステップS167に戻り、全ての予測画素が生成されるまで、ステップS167乃至S177の処理が繰り返される。
 一方、ステップS177で全ての予測画素が生成されたと判定された場合、処理は図20のステップS15に戻り、ステップS16に進む。
 以上のように、図26のインター予測部24は、図4のインター予測部24と同様に、インター予測時に、外側の予測画素の生成に用いられる参照画素の数を、内側の予測画素の生成に用いられる参照画素の数に比べて少なくするので、予測画像全体の生成に用いられる参照画素の数を削減することができる。その結果、フレームメモリ22のメモリ帯域の使用量を削減することができる。また、外側の予測画素の生成に用いられる参照画素が少ないので、演算量を削減することができる。
 さらに、図26のインター予測部24は、外側の生成用画素を用いて画素を複製し、複製された画素と生成用画素からなる6個の画素を新たな生成用画素として用いて予測画素を生成する。従って、予測画素を生成するFIRフィルタのタップ数は6個のみであり、予測画素の位置に応じてFIRフィルタのタップ数を変更する図4のインター予測部24に比べて処理が簡単である。
 なお、図示は省略するが、符号化装置10が図26のインター予測部24を備える場合、復号装置100のインター予測部111も、図26のインター予測部24と同様に構成される。
 また、上述した説明では、インターポーレーションにより1/2画素位置のSub pelが生成されるものとしたが、1/4画素位置や1/8画素位置のSub pelが生成されるようにしてもよい。この場合、フィルタ係数が異なること以外、1/2画素位置のSub pelの生成時と同様の処理が行われる。
 [インター予測部の第3の構成例]
 図30は、図3のインター予測部24の第3の構成例を示すブロック図である。
 図30に示す構成のうち、図26の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図30のインター予測部24の構成は、主に、参照画像読出部160の代わりに参照画像読出部180が設けられている点が図26の構成と異なる。図30のインター予測部24は、外側の予測画素の生成に用いられる参照画素の数を、動きベクトルに応じて変更する。
 具体的には、図30のインター予測部24の参照画像読出部180は、図4の参照画像読出部41と同様に、図3の動き予測部25から供給されるインター予測モード情報のうちの参照インデックスおよび予測方向に基づいて、DPB(Decoded Picture Buffer)としてのフレームメモリ22に記憶されている画像のうちの参照画像を特定する。参照画像読出部180は、インター予測モード情報のうちのブロックのサイズと動きベクトルに基づいて、予測画像の生成に用いられる参照画素の範囲を決定する。参照画像読出部180は、動きベクトルに基づいて、決定された範囲の参照画素をフレームメモリ22から読み出し、一時的に保持する。
 参照画像読出部180は、参照画像読出部41と同様に、予測画素ごとに、一時的に保持されている参照画素のうち、その予測画素の生成に用いられる参照画素を読み出す。なお、ここでは、予測画素の生成に用いられる参照画素の数は、4乃至6のいずれかである。参照画像読出部180は、参照画像読出部41と同様に、読みされた参照画素を画素生成部161に供給する。
 [動きベクトルとブロックのサイズに基づく参照画素の範囲の説明]
 図31乃至図33は、図26のインター予測部24が予測画素としてSub pel a乃至oをそれぞれ生成する際に用いる複製後の生成用画素の範囲を示す図である。
 なお、図31乃至図33において、英字が記述されている正方形は、その英字のSub pelを表し、斜線が付された正方形は、Sub pelの生成に用いられる生成用画素を表す。また、斜線が付されず、英字が記述されていない正方形は、Sub pelの生成に用いられない参照画素を表す。
 図31に示すように、予測画素が、参照画像上の垂直方向の位置が整数位置であり、水平方向の位置が分数位置であるSub pel a乃至cである場合、予測画素の生成には、Sub pel a乃至cの左右にそれぞれ3つずつ隣接する複製後の生成用画素が用いられる。また、図32に示すように、予測画素が、参照画像上の水平方向の位置が整数位置であり、垂直方向の位置が分数位置であるSub pel d,h,lである場合、予測画素の生成には、Sub pel d,h,lの上下にそれぞれ3つずつ隣接する複製後の生成用画素が用いられる。
 一方、図33に示すように、予測画素が、参照画像上の水平方向および垂直方向の位置が分数位置であるSub pel e,f,g,i,j,k,m.n,oである場合、予測画素の生成には、Sub pel e,f,g,i,j,k,m.n,oを中心とする6×6画素の複製後の生成用画素が用いられる。
 従って、参照画像上の水平方向および垂直方向のいずれか一方の位置のみが分数位置である予測画素の生成に用いられる複製後の生成用画素の数は、両方の位置が分数位置である予測画素の生成に用いられる複製後の生成用画素の数に比べて少ない。即ち、水平方向および垂直方向のいずれか一方向のフィルタ処理により予測画素が生成される場合の生成用画素の数は、両方向のフィルタ処理により予測画素が生成される場合の生成用画素の数に比べて少ない。
 そこで、図30の参照画像読出部180は、水平方向および垂直方向のいずれか一方向のフィルタ処理により予測画素が生成される場合、即ち動きベクトルの水平成分または垂直成分の分数値が0である場合、図26の参照画像読出部160に比べて、生成用画素内の複製による画素の数を削減する。
 具体的には、水平方向および垂直方向の両方のフィルタ処理により予測画素が生成される場合、即ち動きベクトルの水平成分および垂直成分の分数値が0ではない場合、参照画像読出部180は、参照画像読出部160と同様の処理を行う。
 その結果、インター予測のブロックのサイズが8×8画素である場合、予測画像の生成に用いられる生成用画素は、例えば、図34において水玉、斜線、または両斜線が付された正方形で表されたものとなる。
 なお、図34において、正方形は参照画素を表している。また、水玉が付されている正方形は、予測画像の生成に用いられる参照画素のうちのインター予測のブロックのサイズの範囲内の参照画素を表し、斜線が付されている正方形は、インター予測のブロックのサイズの範囲を超えた範囲の参照画素を表している。さらに、両斜線が付されている正方形は、予測画像の生成に用いられる最も外側の参照画素が複製されたものを表している。これらのことは、後述する図35および図36においても同様である。
 図34の例では、図27の場合と同様に、最も外側の予測画素は、4個の参照画素と2個の複製による画素を含む6個の生成用画素を6個用いて生成される。また、その予測画素より1つ内側の予測画素は、5個の参照画素と1個の複製による画素を含む6個の生成用画素を6個用いて生成される。また、その予測画素より内側の最も内側の予測画素を含む予測画素は、6個の参照画素を生成用画素として6個用いて生成される。その結果、フレームメモリ22から読み出される参照画素の範囲は9×9画素となる。
 これに対して、水平方向のフィルタ処理により予測画素を生成する場合、即ち動きベクトルの水平成分の分数値が0ではなく、垂直成分の分数値が0である場合、図35に示すように、図34の場合に比べて複製による画素の数が削減される。
 具体的には、最も左側の予測画素に用いられる生成用画素が、図35中点線で示すように、5個の参照画素と、複製による1個の画素とにより構成される。これにより、フレームメモリ22から読み出される参照画素の水平方向の範囲が、図34の場合に比べて1個増加するが、垂直方向のフィルタ処理は行われないため、垂直方向の範囲はインター予測のブロックのサイズと同一である。従って、フレームメモリ22から読み出される参照画素の範囲は10×8画素となり、図34の場合に比べて小さくなる。
 同様に、垂直方向のフィルタ処理により予測画素を生成する場合、即ち動きベクトルの垂直成分の分数値が0ではなく、水平成分の分数値が0である場合、図36に示すように、図34の場合に比べて複製による画素の数が削減される。
 具体的には、最も上側の予測画素に用いられる生成用画素が、図36中点線で示すように、5個の参照画素と、複製による1個の画素とにより構成される。これにより、フレームメモリ22から読み出される参照画素の垂直方向の範囲が、図34の場合に比べて1個増加するが、水平方向のフィルタ処理は行われないため、水平方向の範囲はインター予測のブロックのサイズと同一である。従って、フレームメモリ22から読み出される参照画素の範囲は8×10画素となり、図34の場合に比べて小さくなる。
 以上のように、図30のインター予測部24は、動きベクトルの水平成分および垂直成分のいずれか一方の分数値のみが0ではない場合、両成分の分数値が0ではない場合に比べて、外側の予測画素の生成に用いられる参照画素の数を増加させ、複製による画素の数を削減する。その結果、フレームメモリ22のメモリ帯域の使用量を削減しつつ、図26のインター予測部24に比べてインター予測の精度を向上させることができる。
 また、図34乃至図36に示したように、動きベクトルの水平成分および垂直成分のいずれか一方の分数値のみが0ではない場合の参照画素の範囲が、両成分の分数値が0ではない場合の参照画素の範囲以下となるように、外側の予測画素の生成に用いられる参照画素の数が増加される場合、図26のインター予測部24に比べて、フレームメモリ22のメモリ帯域の最大使用量を増加させずに、インター予測の精度を向上させることができる。
 なお、一般的に、フレームメモリ22としては、DRAM(Dynamic Random Access Memory)が実装されることが多く、従来のようにメモリ帯域の使用量が大きい場合、製造コストは高くなる。
 [インター予測処理の第3の例の説明]
 図37および図38は、図30のインター予測部24による図20のステップS15のインター予測処理の詳細を説明するフローチャートである。
 図37および図38のステップS181乃至S207の処理は、ステップS151およびS152の処理がステップS182の処理に、ステップS154の処理がステップS184の処理に代わること以外、図28および図29のステップS150乃至S177の処理と同様である。
 図37のステップS182の処理は、参照画像読出部180による参照画素を読み出す読出処理であり、その読出処理の詳細は、後述する図39を参照して説明する。
 また、図37のステップS184の処理では、参照画像読出部180が、生成対象の予測画素の予測画像上の位置および動きベクトルの分数値に基づいて、予測対応画素の生成に用いられる参照画素の数を4乃至6のいずれかに決定する。例えば、参照画像読出部180は、生成対象の予測画素の予測画像上の位置が最も左側であり、動きベクトルの水平成分の分数値が0ではなく、垂直成分の分数値が0である場合、参照画素の数を5に決定する。
 図39は、図37のステップS182の読出処理の詳細を説明するフローチャートである。
 図39のステップS221において、参照画像読出部180は、動き予測部25から供給される動きベクトルの水平成分と垂直成分の両方の分数値が0以外であるかどうかを判定する。
 ステップS221で動きベクトルの水平成分と垂直成分の両方の分数値が0以外であると判定された場合、処理は、ステップS222に進む。即ち、予測画素の参照画像上の水平方向および垂直方向の両方の位置が分数位置である場合(例えば予測画素がSub pel e,f,g,i,j,k,m.n,oである場合)、処理はステップS222に進む。
 ステップS222において、参照画像読出部180は、インター予測のブロックのサイズのブロック、そのブロックの下側の1画素幅のブロック、および、その両方のブロックからなるブロックの右側の1画素幅のブロックを参照画素の範囲として決定する。例えば、インター予測のブロックのサイズが8×8画素である場合、参照画像読出部180は、9×9画素を参照画素の範囲として決定する。そして、処理はステップS226に進む。
 一方、ステップS221で動きベクトルの水平成分と垂直成分のいずれか一方の分数値が0以外ではないと判定された場合、ステップS223において、参照画像読出部180は、動きベクトルの水平成分の分数値のみが0以外であるかどうかを判定する。
 ステップS223で動きベクトルの水平成分の分数値のみが0以外であると判定された場合、処理はステップS224に進む。即ち、予測画素の参照画像上の水平方向の位置が分数位置であり、垂直方向の位置が整数位置である場合(例えば予測画素がSub pel a乃至cである場合)、処理はステップS224に進む。
 ステップS224において、参照画像読出部180は、インター予測のブロックのサイズのブロック、および、そのブロックの左側と右側の1画素幅のブロックを参照画素の範囲として決定する。例えば、インター予測のブロックのサイズが8×8画素である場合、参照画像読出部180は、10×8画素を参照画素の範囲として決定する。そして、処理はステップS226に進む。
 一方、ステップS223で動きベクトルの水平成分の分数値が0であると判定された場合、処理はステップS225に進む。即ち、予測画素の参照画像上の垂直方向の位置が分数位置であり、水平方向の位置が整数位置である場合(例えば予測画素がSub pel d,h,lである場合)、または、水平方向および垂直方向の両方の位置が整数位置である場合、処理はステップS225に進む。
 ステップS225において、参照画像読出部180は、インター予測のブロックのサイズのブロック、および、そのブロックの上側と下側の1画素幅のブロックを参照画素の範囲として決定する。例えば、インター予測のブロックのサイズが8×8画素である場合、参照画像読出部180は、8×10画素を参照画素の範囲として決定する。そして、処理はステップS226に進む。
 ステップS226において、参照画像読出部180は、動きベクトルに対応する位置の、ステップS222,S224、またはS225の処理で決定された範囲の参照画素をフレームメモリ22から読み出し、一時的に保持する。そして、処理は、図37のステップS182に戻り、処理はステップS183に進む。
 なお、図30乃至図39では、予測対応画素の生成に用いられる生成用画素の数は6個であるが、その生成用画素の数は8個であるようにすることもできる。
 [予測対応画素の生成に用いられる生成用画素の数が8個である場合の参照画素の範囲の説明]
 図40および図41は、動きベクトルの水平成分および垂直成分の分数値が0ではない場合の参照画素の範囲の例を説明する図である。
 なお、図40の例では、インター予測のブロックのサイズが8×8画素である。また、図40において、番号が付された正方形は予測対応画素を表し、番号および英字が付されていない正方形は参照画素を表す。また、水玉が付されている正方形は予測対応画素の生成に用いられる参照画素のうちの、インター予測のブロックのサイズの範囲内の参照画素を表し、斜線が付されている正方形は、インター予測のブロックのサイズの範囲を超えた範囲の参照画素を表している。さらに、英字が付された正方形は、参照画素が複製された画素である。
 図40に示すように、動きベクトルの水平成分および垂直成分の分数値が0ではない場合、最も外側の予測対応画素は、例えば、6個の参照画素を含む8個の生成用画素を用いて生成される。また、その予測対応画素より1つ内側の予測対応画素は、7個の参照画素を含む8個の生成用画素を用いて生成され、その予測対応画素より内側の最も内側の予測対応画素を含む予測対応画素は、8個の参照画素を生成用画素として用いて生成される。
 具体的には、生成対象が、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である8個の予測対応画素のうちの最も外側の番号1が付された正方形が表す予測対応画素である場合、その予測対応画素の左に2つ位置し、右に4つ位置する合計6個の参照画素が生成用画素とされる。そして、その6個の参照画素のうちの左端の参照画素が、その参照画素の左側の2個の整数位置の画素として複製され、その2個の画素と、生成用画素としての6個の参照画素とからなる新たな8個の生成用画素が、予測対応画素の生成に用いられる。
 また、生成対象が、番号1が付された正方形が表す予測対応画素より1つ内側の番号2が付された正方形が表す予測対応画素である場合、その予測対応画素の左に3つ位置し、右に4つ位置する合計7個の参照画素が生成用画素とされる。そして、その7個の参照画素のうちの左端の参照画素が、その参照画素の左側の1個の整数位置の画素として複製され、その1個の画素と、生成用画素としての7個の参照画素とからなる新たな8個の生成用画素が、予測対応画素の生成に用いられる。
 さらに、生成対象が、番号2が付された正方形が表す予測対応画素より内側の番号3乃至6が付された正方形が表す予測対応画素である場合、その予測対応画素の左右に4つずつ位置する合計8個の参照画素が、生成用画素としてそのまま予測対応画素の生成に用いられる。
 また、生成対象が、最も外側の番号8が付された正方形が表す予測対応画素より1つ内側の番号7が付された正方形が表す予測対応画素である場合、その予測対応画素の右に3つ位置し、左に4つ位置する合計7個の参照画素が生成用画素とされる。そして、その7個の参照画素のうちの右端の参照画素が、その参照画素の右側の1個の整数位置の画素として複製され、その1個の画素と、7個の参照画素とからなる新たな8個の生成用画素が、予測対応画素の生成に用いられる。
 さらに、生成対象が、最も外側の番号8が付された正方形が表す予測対応画素である場合、その予測対応画素の右に2つ位置し、左に4つ位置する合計6個の参照画素が生成用画素とされる。そして、その6個の参照画素のうちの右端の参照画素が、その参照画素の右側の2個の整数位置の画素として複製され、その2個の画素と、6個の参照画素からなる8個の生成用画素が、予測対応画素の生成に用いられる。
 そして、以上により生成された予測対応画素としてのSub pelが、参照画素と同様に用いられて8個の生成用画素が生成され、その8個の生成用画素が、予測画素の生成に用いられる。
 その結果、予測画像の生成に用いられる生成用画素は、例えば、図41において水玉、斜線、または両斜線が付された正方形で表されたものとなる。即ち、フレームメモリ22から読み出される参照画素の範囲は11×11画素となる。
 なお、図41において、正方形は参照画素を表している。また、水玉が付されている正方形は、予測画像の生成に用いられる参照画素のうちのインター予測のブロックのサイズの範囲内の参照画素を表し、斜線が付されている正方形は、インター予測のブロックのサイズの範囲を超えた範囲の参照画素を表している。さらに、両斜線が付されている正方形は、予測画像の生成に用いられる最も外側の参照画素が複製されたものを表している。これらのことは、後述する図42および図43においても同様である。
 図42は、動きベクトルの水平成分の分数値が0ではなく、垂直成分の分数値が0である場合の予測画像の生成に用いられる生成用画素の例を示す図である。なお、図42の例では、インター予測のブロックのサイズが8×8画素である。
 図42の例では、最も左側および右側の予測画素に用いられる生成用画素が、図42中点線で示すように、7個の参照画素と、複製による1個の画素とにより構成される。また、それらの予測画素より内側の全ての予測画素に用いられる生成用画素が、8個の参照画素により構成される。これにより、フレームメモリ22から読み出される参照画素の水平方向の範囲が、図41の場合に比べて2個増加するが、垂直方向のフィルタ処理は行われないため、垂直方向の範囲はインター予測のブロックのサイズと同一である。従って、フレームメモリ22から読み出される参照画素の範囲は13×8画素となり、図41の場合に比べて小さくなる。
 図43は、動きベクトルの垂直成分の分数値が0ではなく、水平成分の分数値が0である場合の予測画像の生成に用いられる生成用画素の例を示す図である。なお、図43の例では、インター予測のブロックのサイズが8×8画素である。
 図43の例では、最も上側および下側の予測画素に用いられる生成用画素が、図43中点線で示すように、7個の参照画素と、複製による1個の画素とにより構成される。また、それらの予測画素より内側の全ての予測画素に用いられる生成用画素が、8個の参照画素により構成される。これにより、フレームメモリ22から読み出される参照画素の垂直方向の範囲が、図41の場合に比べて2個増加するが、水平方向のフィルタ処理は行われないため、水平方向の範囲はインター予測のブロックのサイズと同一である。従って、フレームメモリ22から読み出される参照画素の領域は8×13画素となり、図41の場合に比べて小さくなる。
 なお、予測対応画素の生成に用いられる生成用画素の数が8個である場合のインター予測部24の構成およびインター予測部24の処理は、生成用画素の数が6個ではなく8個である点、および、生成用画素に含まれる参照画素の数が、4乃至6個ではなく、7個および8個のいずれかである点を除いて同様であるので、説明は省略する。
 [インター予測部の第4の構成例]
 図44は、図3のインター予測部24の第4の構成例を示すブロック図である。
 図44に示す構成のうち、図26の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図44のインター予測部24の構成は、主に、参照画像読出部160の代わりに参照画像読出部200が設けられ、画素生成部161の代わりに画素生成部201が設けられている点が図26の構成と異なる。図44のインター予測部24は、外側の予測画素の生成に用いられる参照画素の数を、インター予測のブロックのサイズに応じて変更する。
 具体的には、図44のインター予測部24の参照画像読出部200は、図4の参照画像読出部41と同様に、図3の動き予測部25から供給されるインター予測モード情報のうちの参照インデックスおよび予測方向に基づいて、フレームメモリ22に記憶されている画像のうちの参照画像を特定する。
 また、参照画像読出部200は、インター予測モード情報のうちのブロックのサイズと動きベクトルに基づいて、予測画像の生成に用いられる参照画素の範囲を決定する。参照画像読出部200は、動きベクトルに基づいて、決定された範囲の参照画素をフレームメモリ22から読み出し、一時的に保持する。
 参照画像読出部200は、参照画像読出部41と同様に、予測画素ごとに、一時的に保持されている参照画素のうち、その予測画素の生成に用いられる参照画素を読み出す。なお、ここでは、予測画素の生成に用いられる参照画素の数は、4乃至6のいずれかである。参照画像読出部200は、参照画像読出部41と同様に、読みされた参照画素を画素生成部201に供給する。
 画素生成部201は、図26の画素生成部161と同様に、参照画像読出部200から供給される参照画素を生成用画素とする。また、画素生成部201は、動き予測部25から供給されるインター予測モード情報のうちのインター予測のブロックのサイズ、動きベクトルの分数値、および予測画素の予測画像上の位置に基づいて、その予測画素の生成に用いられるSub pelの数を決定する。そして、画素生成部201は、中間結果メモリ50から、生成対象の予測画素に対応する、決定された数のSub pelを生成用画素として読み出す。なお、ここでは、予測画素の生成に用いられるSub pelの数は、4乃至6のいずれかである。
 また、画素生成部201は、画素生成部161と同様に、生成用画素の数が6個より小さい場合、その生成用画素のうちの外側の画素を、生成用画素の数と6個の差分だけ複製し、複製された画素と生成用画素からなる6個の画素を新たな生成用画素として生成する。画素生成部201は、生成された6個の生成用画素を6タップFIRフィルタ45に供給する。
 [インター予測処理の第4の例の説明]
 図45および図46は、図44のインター予測部24による図20のステップS15のインター予測処理の詳細を説明するフローチャートである。
 図45および図46のステップS231乃至S257の処理は、ステップS151およびS152の処理がステップS232の処理に、ステップS154の処理がステップS234の処理に、ステップS168の処理がステップS248の処理に代わること以外、図28および図29のステップS150乃至S177の処理と同様である。
 図45のステップS232の処理は、参照画像読出部200による参照画像を読み出す読出処理であり、その読出処理の詳細は、後述する図47を参照して説明する。
 また、図45のステップS234の処理では、参照画像読出部200が、生成対象の予測画素の予測画像上の位置およびインター予測のブロックのサイズに基づいて、予測対応画素の生成に用いられる参照画素の数を4乃至6のいずれかに決定する。
 また、図46のステップS248の処理では、画素生成部201が、生成対象の予測画素の予測画像上の垂直方向の位置およびインター予測のブロックのサイズに基づいて、中間結果メモリ50から読み出すSub pelの数を4乃至6のいずれかに決定する。
 図47は、図45のステップS232の読出処理の詳細を説明するフローチャートである。
 図47のステップS261において、図44のインター予測部24の参照画像読出部200は、動き予測部25から供給されるインター予測モード情報のうちのインター予測のブロックのサイズが8×8画素より小さいかどうかを判定する。
 ステップS261でインター予測のブロックのサイズが8×8画素より小さいと判定された場合、即ち、例えば、インター予測のブロックのサイズが4×4画素、8×4画素、4×8画素である場合、処理はステップS262に進む。
 ステップS262において、参照画像読出部200は、インター予測のブロックのサイズのブロック、そのブロックの下側の1画素幅のブロック、および、その両方のブロックからなるブロックの右側の1画素幅のブロックを参照画素の範囲として決定する。例えば、インター予測のブロックのサイズが4×4画素である場合、参照画像読出部200は、5×5画素を参照画素の範囲として決定する。そして、処理はステップS266に進む。
 一方、ステップS261でインター予測のブロックのサイズが8×8画素より小さくはないと判定された場合、ステップS263において、参照画像読出部200は、インター予測のブロックのサイズが16×16画素より小さいかどうかを判定する。
 ステップS263でインター予測のブロックのサイズが16×16画素より小さいと判定された場合、即ち、例えば、インター予測のブロックのサイズが8×8画素、16×8画素、8×16画素である場合、処理はステップS264に進む。
 ステップS264において、参照画像読出部200は、インター予測のブロックのサイズのブロック、そのブロックの上側と下側の1画素幅のブロック、および、それらの3つのブロックからなるブロックの左側と右側の1画素幅のブロックを参照画素の範囲として決定する。例えば、インター予測のブロックのサイズが8×8画素である場合、参照画像読出部200は、10×10画素を参照画素の範囲として決定する。そして、処理はステップS266に進む。
 一方、ステップS263でインター予測のブロックのサイズが16×16画素より小さくはないと判定された場合、即ち、例えば、インター予測のブロックのサイズが、16×16画素、32×16画素、16×32画素、32×32画素である場合、処理はステップS265に進む。
 ステップS265において、参照画像読出部200は、インター予測のブロックのサイズのブロック、そのブロックの上側の1画素幅のブロックおよび下側の2画素幅のブロック、並びに、それらの3つのブロックからなるブロックの左側の1画素幅のブロックおよび右側の2画素幅のブロックを参照画素の範囲として決定する。例えば、インター予測のブロックのサイズが16×16画素である場合、参照画像読出部200は、19×19画素を参照画素の範囲として決定する。そして、処理はステップS266に進む。
 ステップS266において、参照画像読出部200は、動きベクトルに対応する位置の、ステップS262,S264、またはS265の処理で決定された範囲の参照画素をフレームメモリ22から読み出し、一時的に保持する。そして、処理は、図45のステップS232に戻り、処理はステップS233に進む。
 以上のように、図44のインター予測部24は、インター予測のブロックのサイズが大きい場合、小さい場合に比べて、外側の予測画素の生成に用いられる参照画素の数を増加させ、複製による画素の数を削減する。その結果、フレームメモリ22のメモリ帯域の使用量を削減しつつ、図26のインター予測部24に比べてインター予測の精度を向上させることができる。
 また、図47の読出処理のように、インター予測のブロックのサイズが大きい場合の、インター予測のブロックのサイズに対する任意の分数位置の予測画像の生成に用いられる参照画素の範囲の割合(以下、参照画素割合という)が、小さい場合の参照画素割合以下となるように、外側の予測画素の生成に用いられる参照画素の数が増加される場合、図26のインター予測部24に比べて、最大参照画素割合を増加させずに、インター予測の精度を向上させることができる。
 具体的には、図26のインター予測部24では、インター予測のブロックのサイズが小さい場合、大きい場合に比べて参照画素割合が大きくなる。例えば、インター予測のブロックのサイズが8×8画素である場合、図26のインター予測部24では9×9画素の参照画素を読み出す必要があるため、参照画素割合は1.3(=9×9/(8×8))となる。これに対して、インター予測のブロックのサイズが4×4画素である場合、読み出す必要のある参照画素の領域のサイズは5×5画素であるため、参照画素割合は、1.6(=5×5/(4×4))となる。従って、インター予測のブロックのサイズが4×4画素である場合の参照画素割合は、インター予測のブロックのサイズが8×8画素である場合に比べて大きい。
 従って、図44のインター予測部24は、図47の読出処理のように、インター予測のブロックのサイズが大きい場合の参照画素割合が、小さい場合の参照画素割合以下となるように、外側の予測画素の生成に用いられる参照画素の数を増加することにより、図26のインター予測部24に比べて、最大参照画素割合を増加させずに、インター予測の精度を向上させることができる。
 [インター予測部の第5の構成例]
 図48は、図3のインター予測部24の第5の構成例を示すブロック図である。
 図48に示す構成のうち、図26の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図48のインター予測部24の構成は、主に、参照画像読出部160の代わりに参照画像読出部210が設けられ、画素生成部161の代わりに画素生成部211が設けられている点が図26の構成と異なる。図48のインター予測部24は、外側の予測画素の生成に用いられる参照画素の数を、予測方向に応じて変更する。
 具体的には、図48のインター予測部24の参照画像読出部210は、図4の参照画像読出部41と同様に、図3の動き予測部25から供給されるインター予測モード情報のうちの参照インデックスおよび予測方向に基づいて、フレームメモリ22に記憶されている画像のうちの参照画像を特定する。
 また、参照画像読出部210は、インター予測モード情報のうちの予測方向およびブロックのサイズ、並びに動きベクトルに基づいて、予測画像の生成に用いられる参照画素の範囲を決定する。参照画像読出部210は、動きベクトルに基づいて、決定された範囲の参照画素をフレームメモリ22から読み出し、一時的に保持する。
 参照画像読出部210は、参照画像読出部41と同様に、予測画素ごとに、一時的に保持されている参照画素のうち、その予測画素の生成に用いられる参照画素を読み出す。なお、ここでは、予測画素の生成に用いられる参照画素の数は、4乃至6のいずれかである。参照画像読出部210は、参照画像読出部41と同様に、読みされた参照画素を画素生成部211に供給する。
 画素生成部211は、図26の画素生成部161と同様に、参照画像読出部210から供給される参照画素を生成用画素とする。また、画素生成部211は、動き予測部25から供給されるインター予測モード情報のうちの予測方向、動きベクトルの分数値、および予測画素の予測画像上の位置に基づいて、その予測画素の生成に用いられるSub pelの数を決定する。そして、画素生成部211は、中間結果メモリ50から、生成対象の予測画素に対応する、決定された数のSub pelを生成用画素として読み出す。なお、ここでは、予測画素の生成に用いられるSub pelの数は、4乃至6のいずれかである。
 また、画素生成部211は、画素生成部161と同様に、生成用画素の数が6個より小さい場合、その生成用画素のうちの外側の画素を、生成用画素の数と6個の差分だけ複製し、複製された画素と生成用画素からなる6個の画素を新たな生成用画素として生成する。画素生成部211は、生成された6個の生成用画素を6タップFIRフィルタ45に供給する。
 [インター予測処理の第5の例の説明]
 図49および図50は、図48のインター予測部24による図20のステップS15のインター予測処理の詳細を説明するフローチャートである。
 図49および図50のステップS271乃至S297の処理は、ステップS151およびS152の処理がステップS272の処理に、ステップS154の処理がステップS274の処理に、ステップS168の処理がステップS288の処理に代わること以外、図28および図29のステップS150乃至S177の処理と同様である。
 図49のステップS272の処理は、参照画像読出部210による参照画像を読み出す読出処理であり、その読出処理の詳細は、後述する図51を参照して説明する。
 また、図49のステップS274の処理では、参照画像読出部210が、生成対象の予測画素の予測画像上の位置および予測方向に基づいて、予測対応画素の生成に用いられる参照画素の数を4乃至6のいずれかに決定する。
 また、図50のステップS288の処理では、画素生成部211は、生成対象の予測画素の予測画像上の垂直方向の位置および予測方向に基づいて、中間結果メモリ50から読み出すSub pelの数を4乃至6のいずれかに決定する。
 図51は、図49のステップS272の読出処理の詳細を説明するフローチャートである。
 図51のステップS301において、図48のインター予測部24の参照画像読出部210は、動き予測部25から供給されるインター予測モード情報のうちの予測方向がBi-predictionであるかどうかを判定する。
 ステップS301で予測方向がBi-predictionであると判定された場合、処理はステップS302に進む。ステップS302において、参照画像読出部210は、インター予測のブロックのサイズのブロック、そのブロックの下側の1画素幅のブロック、および、その両方のブロックからなるブロックの右側の1画素幅のブロックを参照画素の範囲として決定する。そして、処理はステップS304に進む。
 一方、ステップS301で予測方向がBi-predictionではないと判定された場合、即ち予測方向がL0予測またはL1予測である場合、処理はステップS303に進む。ステップS303において、参照画像読出部210は、インター予測のブロックのサイズのブロック、そのブロックの上側の1画素幅のブロックおよび下側の2画素幅のブロック、並びに、それらの3つのブロックからなるブロックの左側の1画素幅のブロックおよび右側の2画素幅のブロックを参照画素の範囲として決定する。そして、処理はステップS304に進む。
 ステップS304において、参照画像読出部210は、動きベクトルに対応する位置の、ステップS302またはS303の処理で決定された範囲の参照画素をフレームメモリ22から読み出し、一時的に保持する。そして、処理は、図49のステップS272に戻り、処理はステップS273に進む。
 以上のように、図48のインター予測部24は、予測方向がL0予測またはL1予測である場合、予測方向がBi-predictionである場合に比べて、外側の予測画素の生成に用いられる参照画素の数を増加させ、複製による画素の数を削減する。その結果、フレームメモリ22のメモリ帯域の使用量を削減しつつ、図26のインター予測部24に比べてインター予測の精度を向上させることができる。
 また、図51の読出処理のように、予測方向がL0予測またはL1予測である場合の参照画素の範囲が、予測方向がBi-predictionである場合の参照画素の範囲以下となるように、外側の予測画素の生成に用いられる参照画素の数が増加される場合、図26のインター予測部24に比べて、フレームメモリ22のメモリ帯域の最大使用量を増加させずに、インター予測の精度を向上させることができる。
 具体的には、予測方向がBi-predictionである場合、予測方向がL0予測またはL1予測である場合に比べて、2倍の参照画素を読み出す必要がある。従って、図48のインター予測部24は、予測方向がL0予測またはL1予測であるの参照画素の範囲が、予測方向がBi-predictionである場合の参照画素の範囲以下となるように、外側の予測画素の生成に用いられる参照画素の数を増加することにより、図26のインター予測部24に比べて、フレームメモリ22のメモリ帯域の最大使用量を増加させずに、インター予測の精度を向上させることができる。
 なお、上述した説明では、動きベクトルの水平成分および垂直成分の両方の分数値が0である場合、即ち予測画素の位置が整数位置である場合にも、予測画素に対応する参照画素以外の画素に対応するフィルタ係数を0とした演算が行われるようにしたが、行われないようにしてもよい。この場合、図4の参照画像読出部41、図26の参照画像読出部160、図30の参照画像読出部180、図44の参照画像読出部200、図48の参照画像読出部210は、動きベクトルに対応する位置のインター予測のブロックのサイズのブロックをフレームメモリ22から読み出し、そのまま予測画像として出力する。
 [インター予測部の第6の構成例]
 図52は、図3のインター予測部24の第6の構成例を示すブロック図である。
 図52に示す構成のうち、図26の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図52のインター予測部24の構成は、主に、参照画像読出部160の代わりに参照画像読出部220が設けられ、画素生成部161の代わりに画素生成部221が設けられている点が図26の構成と異なる。図52のインター予測部24は、外側の予測画素の生成に用いられる参照画素の数を、動きベクトル、インター予測のブロックのサイズ、および予測方向に応じて変更する。
 具体的には、図52のインター予測部24の参照画像読出部220は、図4の参照画像読出部41と同様に、図3の動き予測部25から供給されるインター予測モード情報のうちの参照インデックスおよび予測方向に基づいて、フレームメモリ22に記憶されている画像のうちの参照画像を特定する。
 また、参照画像読出部220は、インター予測モード情報のうちの予測方向およびブロックのサイズ、並びに動きベクトルに基づいて、予測画像の生成に用いられる参照画素の範囲を決定する。参照画像読出部220は、決定された範囲の参照画素をフレームメモリ22から読み出し、一時的に保持する。
 参照画像読出部220は、参照画像読出部41と同様に、予測画素ごとに、一時的に保持されている参照画素のうち、その予測画素の生成に用いられる参照画素を読み出す。なお、ここでは、予測画素の生成に用いられる参照画素の数は、2乃至6のいずれかである。参照画像読出部220は、参照画像読出部41と同様に、読みされた参照画素を画素生成部221に供給する。
 画素生成部221は、図26の画素生成部161と同様に、参照画像読出部220から供給される参照画素を生成用画素とする。また、画素生成部221は、動き予測部25から供給されるインター予測モード情報のうちのブロックのサイズおよび予測方向、動きベクトルの分数値、および予測画素の予測画像上の位置に基づいて、その予測画素の生成に用いられるSub pelの数を決定する。そして、画素生成部221は、中間結果メモリ50から、生成対象の予測画素に対応する、決定された数のSub pelを生成用画素として読み出す。なお、ここでは、予測画素の生成に用いられるSub pelの数は、2乃至6のいずれかである。
 また、画素生成部221は、画素生成部161と同様に、生成用画素の数が6個より小さい場合、その生成用画素のうちの外側の画素を、生成用画素の数と6個の差分だけ複製し、複製された画素と生成用画素からなる6個の画素を新たな生成用画素として生成する。画素生成部221は、生成された6個の生成用画素を6タップFIRフィルタ45に供給する。
 [参照画素の範囲の例]
 図53および図54は、図52の参照画像読出部220により決定される参照画素の範囲と、動きベクトルに対応する予測画素のグループ、インター予測のブロックのサイズ、および予測方向との関係の例を示す図である。
 なお、図53は、参照画素割合が4以下である場合の関係の例を示す図であり、図54は、参照画素割合が5以下である場合の関係の例を示す図である。
 また、図53および図54において、Innerは、動きベクトルの水平成分および垂直成分の両方の分数値が0以外である場合の予測画素(例えば、Sub pel e,f,g,i,j,k,m.n,o)のグループを表す。また、Outer hは、動きベクトルの水平成分の分数値が0以外であり、垂直成分の分数値が0である場合の予測画素(例えば、Sub pel a乃至c)のグループを表す。Outer vは、動きベクトルの垂直成分の分数値が0以外であり、水平成分の分数値が0である場合の予測画素(例えば、Sub pel d,h,l)のグループを表す。これらのことは、後述する図58乃至図60においても同様である。
 参照画素の範囲が図53に示した関係に基づいて決定される場合における、インター予測のブロックのサイズが4×8画素であり、予測方向がBi-predictionである場合の参照画素の範囲について以下に説明する。この場合、Bi-prediction のうちのL0予測の動きベクトルに対応するSub pelの位置がjであり、L1予測の動きベクトルに対応するSub pelの位置がdであると、L0予測用の参照画素の範囲が6×10画素に決定され、L1予測用の山荘画素の範囲が8×8画素に決定される。なお、このとき、参照画素割合は、3.875=(6×10+8×8)/(4x8)であり、5以下である。
 [インター予測処理の第6の例の説明]
 図55および図56は、図52のインター予測部24による図20のステップS15のインター予測処理の詳細を説明するフローチャートである。
 図55のステップS311において、インター予測部24の参照画像読出部220(図52)は、図3の動き予測部25から供給されるインター予測モード情報のうちの予測方向と参照インデックスに基づいて、フレームメモリ22に記憶されている画像のうちの参照画像を特定する。
 ステップS312において、参照画像読出部220は、参照画像を読み出す読出処理を行う。この読出処理の詳細は、後述する図57を参照して説明する。
 ステップS313において、参照画像読出部220は、予測画像を構成する予測画素のうち、まだステップS313の処理で生成対象の予測画素に決定されていない予測画素を生成対象の予測画素に決定する。なお、予測対応画素が複数ある場合、以下のステップS314乃至S323の処理は、予測対応画素ごとに行われる。
 ステップS314において、参照画像読出部220は、生成対象の予測画素の予測画像上の位置、動きベクトル、インター予測のブロックのサイズ、および予測方向に基づいて、予測対応画素の生成に用いられる参照画素の数を2乃至6のいずれかに決定する。
 ステップS315において、参照画像読出部220は、ステップS314で決定された参照画素の数と、生成対象の予測画素の参照画像上の位置に基づいて、ステップS312で保持された参照画素のうちの、予測対応画素の生成に用いられる参照画素を読み出す。参照画像読出部220は、読み出された参照画素を画素生成部221に供給する。
 ステップS316において、6タップフィルタ係数メモリ48は、動き予測部25から供給される動きベクトルの予測対応画素に対応する成分の分数値に基づいて、その分数値に対応付けて記憶されているフィルタ係数を6タップFIRフィルタ45に供給する。
 ステップS317において、画素生成部221は、参照画像読出部220から供給される参照画素の数が6より小さいかどうかを判定する。ステップS317で参照画素の数は6より小さいと判定された場合、処理はステップS318に進む。
 ステップS318において、画素生成部221は、参照画像読出部220から供給される参照画素のうちの外側の参照画素を、その参照画素の外側の画素として複製し、複製された画素と参照画素からなる6個の生成用画素を生成する。そして、画素生成部221は、生成された6個の生成用画素を6タップFIRフィルタ45に供給し、処理をステップS319に進める。
 一方、ステップS317で参照画素の数が6より小さくはないと判定された場合、即ち参照画素の数が6である場合、画素生成部221は、その6個の参照画素を生成用画素として6タップFIRフィルタ45に供給し、処理をステップS319に進める。
 ステップS319乃至S325の処理は、図28および図29のステップS161乃至S167の処理と同様であるので、説明は省略する。
 図56のステップS325の処理後、ステップS326において、画素生成部221は、生成対象の予測画素の予測画像上の垂直方向の位置、インター予測のブロックのサイズ、および予測方向に基づいて、中間結果メモリ50から読み出すSub pelの数を2乃至6のいずれかに決定する。
 ステップS327において、画素生成部221は、ステップS326で決定されたSub pelの数と、生成対象の予測画素の参照画像上の位置に基づいて、中間結果メモリ50からSub pelを生成用画素として読み出す。
 ステップS328において、6タップフィルタ係数メモリ48は、動き予測部25から供給される動きベクトルの垂直成分の分数値に基づいて、その分数値に対応付けて記憶されているフィルタ係数を6タップFIRフィルタ45に供給する。そして、処理はステップS329に進む。
 ステップS329およびS330の処理は、参照画素の代わりにSub pelに対して行われる点を除いて、図55のステップS317およびS318の処理と同様であるので、説明は省略する。また、ステップS331乃至S333の処理は、図29のステップS175乃至S177の処理と同様であるので、説明は省略する。
 図57は、図55のステップS312の読出処理の詳細を説明するフローチャートである。
 図57のステップS341において、図52のインター予測部24の参照画像読出部220は、動き予測部25から供給される動きベクトルの水平成分と垂直成分の両方の分数値が0であるかどうかを判定する。
 ステップS341で動きベクトルの水平成分と垂直成分の両方の分数値が0ではないと判定された場合、ステップS342において、参照画像読出部220は、予測方向がBi-predictionであるかどうかを判定する。
 ステップS342で予測方向がBi-predictionであると判定された場合、ステップS343において、参照画像読出部220は、動きベクトルの水平成分と垂直成分の両方の分数値が0以外であるかどうかを判定する。
 ステップS343で動きベクトルの水平成分と垂直成分の両方の分数値が0以外であると判定された場合、処理はステップS344に進む。ステップS344において、参照画像読出部220は、インター予測モード情報のうちのインター予測のブロックのサイズ、Bi-prediction、およびInnerに対応する参照画素の範囲を決定する。そして、処理はステップS353に進む。
 一方、ステップS343で動きベクトルの水平成分と垂直成分のいずれか一方の分数値が0であると判定された場合、ステップS345において、参照画像読出部220は、動きベクトルの水平成分の分数値のみが0以外であるかどうかを判定する。
 ステップS345で動きベクトルの水平成分の分数値のみが0以外であると判定された場合、処理はステップS346に進む。ステップS346において、参照画像読出部220は、インター予測モード情報のうちのインター予測のブロックのサイズ、Bi-prediction、およびOuter hに対応する参照画素の範囲を決定する。そして、処理はステップS353に進む。
 一方、ステップS345で動きベクトルの水平成分の分数値が0以外ではないと判定された場合、即ち動きベクトルの垂直成分の分数値のみが0以外である場合、処理はステップS347に進む。ステップS347において、参照画像読出部220は、インター予測モード情報のうちのインター予測のブロックのサイズ、Bi-prediction、およびOuter vに対応する参照画素の範囲を決定する。そして、処理はステップS353に進む。
 また、ステップS342で予測方向がBi-predictionではないと判定された場合、即ち予測方向がL0予測またはL1予測である場合、処理はステップS348に進む。
 ステップS348で動きベクトルの水平成分と垂直成分の両方の分数値が0以外であると判定された場合、処理はステップS349に進む。ステップS349において、参照画像読出部220は、インター予測モード情報のうちのインター予測のブロックのサイズ、L0予測/L1予測、およびInnerに対応する参照画素の範囲を決定する。そして、処理はステップS353に進む。
 一方、ステップS348で動きベクトルの水平成分と垂直成分のいずれか一方の分数値が0であると判定された場合、ステップS350において、参照画像読出部220は、動きベクトルの水平成分の分数値のみが0以外であるかどうかを判定する。
 ステップS350で動きベクトルの水平成分の分数値のみが0以外であると判定された場合、処理はステップS351に進む。ステップS351において、参照画像読出部220は、インター予測モード情報のうちのインター予測のブロックのサイズ、L0予測/L1予測、およびOuter hに対応する参照画素の範囲を決定する。そして、処理はステップS353に進む。
 一方、ステップS350で動きベクトルの水平成分の分数値が0以外ではないと判定された場合、即ち動きベクトルの垂直成分の分数値のみが0以外である場合、処理はステップS352に進む。ステップS352において、参照画像読出部220は、インター予測モード情報のうちのインター予測のブロックのサイズ、L0予測/L1予測、およびOuter vに対応する参照画素の範囲を決定する。そして、処理はステップS353に進む。
 ステップS353において、参照画像読出部220は、動きベクトルに対応する位置の、ステップS344,S346、S347,S349,S351、またはS352の処理で決定された範囲の参照画素をフレームメモリ22から読み出し、一時的に保持する。そして、処理は、図55のステップS312に戻り、処理はステップS313に進む。
 一方、ステップS341で動きベクトルの水平成分と垂直成分の両方の分数値が0であると判定された場合、ステップS354において、参照画像読出部220は、動きベクトルに対応する位置のインター予測のブロックのサイズの参照画素を読み出し、予測画像として出力する。そして、処理は、図20のステップS15に戻り、処理はステップS16に進む。
 なお、図52乃至図57では、予測対応画素の生成に用いられる生成用画素の数は6個であるが、その生成用画素の数はこれに限定されない。
 [予測対応画素の生成に用いられる生成用画素の数が8個である場合の参照画素の範囲の例]
 図58は、予測対応画素の生成に用いられる生成用画素の数が8個であり、参照画素割合が5以下である場合の参照画素の範囲と、動きベクトルに対応する予測画素のグループ、インター予測のブロックのサイズ、および予測方向との関係の例を示す図である。
 また、図59は、予測対応画素の生成に用いられる生成用画素の数が8個であり、参照画素割合が6以下である場合の参照画素の範囲と、動きベクトルに対応する予測画素のグループ、インター予測のブロックのサイズ、および予測方向との関係の例を示す図である。
 [予測対応画素の生成に用いられる生成用画素の数が12個である場合の参照画素の範囲の例]
 図60は、予測対応画素の生成に用いられる生成用画素の数が12個であり、参照画素割合が5以下である場合の参照画素の範囲と、動きベクトルに対応する予測画素のグループ、インター予測のブロックのサイズ、および予測方向との関係の例を示す図である。
 なお、上述した図30乃至図60で説明した、動きベクトル、インター予測のブロックのサイズ、および予測方向の少なくとも1つに応じて、外側の予測画素の生成に用いられる参照画素の数を変更することは、図4のインター予測部24に適用することもできる。
 即ち、図4のインター予測部24のように、参照画素を複製せずに用いることにより、予測画素の生成に用いられる生成用画素の数が、その予測画素の予測画像上の位置に応じて変化する場合においても、外側の予測画素の生成に用いられる参照画素の数を、動きベクトル、インター予測のブロックのサイズ、および予測方向の少なくとも1つに応じて変更することができる。この場合について、以下に説明する。
 [インター予測部の第7の構成例]
 図61は、図3のインター予測部24の第7の構成例を示すブロック図である。
 図61に示す構成のうち、図4や図52の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図61のインター予測部24の構成は、主に、参照画像読出部41、画素振り分け部42の代わりに、参照画素読出部220、画素振り分け部241が設けられている点、および、3タップFIRフィルタ242、5タップFIRフィルタ243、3タップフィルタ係数メモリ244、および5タップフィルタ係数メモリ245が新たに設けられている点が図4の構成と異なる。
 図61のインター予測部24の画素振り分け部241は、図4の画素振り分け部42と同様に、参照画像読出部220から供給される参照画素を生成用画素とする。また、画素振り分け部241は、動き予測部25から供給されるインター予測モード情報のうちのブロックのサイズおよび予測方向、動きベクトルの分数値、および予測画素の予測画像上の位置に基づいて、その予測画素の生成に用いられるSub pelの数を決定する。そして、画素振り分け部241は、中間結果メモリ50から、生成対象の予測画素に対応する、決定された数のSub pelを生成用画素として読み出す。なお、ここでは、予測画素の生成に用いられるSub pelの数は、2乃至6のいずれかである。
 また、画素振り分け部241は、生成用画素の数に応じて、その生成用画素を2タップFIRフィルタ43、3タップFIRフィルタ242、4タップFIRフィルタ44、5タップFIRフィルタ243、または6タップFIRフィルタ45に供給する。具体的には、画素振り分け部241は、生成用画素の数が2である場合、その生成用画素を2タップFIRフィルタ43に供給し、生成用画素の数が3である場合、その生成用画素を3タップFIRフィルタ242に供給する。また、画素振り分け部241は、生成用画素の数が4である場合、その生成用画素を4タップFIRフィルタ44に供給し、生成用画素の数が5である場合、その生成用画素を5タップFIRフィルタ243に供給する。また、画素振り分け部241は、生成用画素の数が6である場合、その生成用画素を6タップFIRフィルタ45に供給する。
 3タップFIRフィルタ242は、演算部として機能し、画素振り分け部241から供給される3個の生成用画素と、3タップフィルタ係数メモリ244から供給されるフィルタ係数を用いて演算を行う。3タップFIRフィルタ242は、その結果得られる1個の画素を画素選択部49に供給する。
 5タップFIRフィルタ243は、演算部として機能し、画素振り分け部241から供給される5個の生成用画素と、5タップフィルタ係数メモリ245から供給されるフィルタ係数を用いて演算を行う。5タップFIRフィルタ243は、その結果得られる1個の画素を画素選択部49に供給する。
 3タップフィルタ係数メモリ244は、記憶部として機能し、動きベクトルの分数値に対応付けて3タップFIRフィルタ242用のフィルタ係数を記憶している。3タップフィルタ係数メモリ244は、動き予測部25から供給される動きベクトルの分数値に基づいて、その分数値に対応付けて記憶されているフィルタ係数を3タップFIRフィルタ242に供給する。
 5タップフィルタ係数メモリ245は、記憶部として機能し、動きベクトルの分数値に対応付けて5タップFIRフィルタ243用のフィルタ係数を記憶している。5タップフィルタ係数メモリ245は、動き予測部25から供給される動きベクトルの分数値に基づいて、その分数値に対応付けて記憶されているフィルタ係数を5タップFIRフィルタ243に供給する。
 [インター予測処理の第7の例の説明]
 図62および図63は、図61のインター予測部24による図20のステップS15のインター予測処理の詳細を説明するフローチャートである。
 図62および図63のステップS361乃至S381の処理は、図55のステップS317およびS318の処理が図62のステップS367およびS368に代わり、図56のステップS329およびS330の処理が図63のS378およびS379の処理に代わる点を除いて、図55および図56のステップS311乃至S333の処理と同様である。
 図62のステップS367の処理では、画素振り分け部241が、参照画像読出部220から供給される参照画素の数に応じて、その参照画素を2タップFIRフィルタ43、3タップFIRフィルタ242、4タップFIRフィルタ44、5タップFIRフィルタ243、または6タップFIRフィルタ45に供給する。
 そして、ステップS368では、画素振り分け部241から参照画素が供給された2タップFIRフィルタ43、3タップFIRフィルタ242、4タップFIRフィルタ44、5タップFIRフィルタ243、または6タップFIRフィルタ45による処理が行われる。具体的には、ステップS368において、参照画素と、2タップフィルタ係数メモリ46、3タップフィルタ係数メモリ244、4タップフィルタ係数メモリ47、5タップフィルタ係数メモリ245、または6タップフィルタ係数メモリ48から供給されるフィルタ係数を用いて演算が行われる。
 また、図63のステップS378およびS379の処理は、参照画素の代わりにSub pelに対して行われる点を除いて、図62のステップS367およびS368の処理と同様であるので、説明は省略する。
 なお、図示は省略するが、符号化装置10が図30、図44、図48、図52、図61のインター予測部24を備える場合、復号装置100のインター予測部111も、図30、図44、図48、図52、図61のインター予測部24と同様に構成される。
 また、図30乃至図63の説明では、インターポーレーションにより1/4画素位置のSub pelが生成されるものとしたが、1/2画素位置や1/8画素位置のSub pelが生成されるようにしてもよい。この場合、フィルタ係数が異なること以外、1/4画素位置のSub pelの生成時と同様の処理が行われる。
 さらに、予測画素の生成に用いられる参照画素の数および参照画素の数の種類は、上述した数に限定されない。また、予測画素の生成に用いられる参照画素の数の予測画像上の切り替え位置は、上述した位置に限定されない。
 本実施の形態では、符号化方式としてH.264/AVC方式をベースに用いるようにしたが、本技術はこれに限らず、その他の動き予測・補償処理を行う符号化方式/復号方式を用いる符号化装置/復号装置に適用することもできる。
 また、本技術は、例えば、MPEG,H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮する方式で圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる符号化装置および復号装置に適用することができる。また、本技術は、光ディスク、磁気ディスク、フラッシュメモリなどの記憶メディアに対して処理する際に用いられる符号化装置および復号装置に適用することができる。さらに、本技術は、それらの符号化装置および復号装置などに含まれる動き予測補償装置にも適用することができる。
 [インター予測部の第8の構成例]
 図64は、図3のインター予測部24の第8の構成例を示すブロック図である。
 図64に示す構成のうち、図26の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図64のインター予測部24の構成は、主に、参照画像読出部160、画素生成部161、6タップフィルタ係数メモリ48の代わりに、参照画像読出部251、画素出力部252、6タップフィルタ係数メモリ253が設けられている点が、図26の構成と異なる。図64のインター予測部24は、外側の予測画素に対応する6個の生成用画素のうちの予測画素より外側の生成用画素(以下、外側生成用画素という)の数が、内側の予測画素に対応する6個の生成用画素のうちの外側生成用画素の数より少なくなるように、各予測画素の生成に用いられる生成用画素を決定する。
 具体的には、インター予測部24の参照画像読出部251は、図26の参照画像読出部160と同様に、インター予測モード情報のうちの参照インデックスおよび予測方向に基づいて、フレームメモリ22に記憶されている画像のうちの参照画像を特定する。参照画像読出部251は、インター予測モード情報のうちのブロックのサイズと動きベクトルの整数値に基づいて、予測画像の生成に用いられる参照画素をフレームメモリ22から読み出し、一時的に保持する。
 参照画像読出部251は、画素読出部として機能し、予測画素ごとに、一時的に保持されている参照画素のうち、その予測画素の生成に用いられる6個の参照画素を読み出す。このとき、参照画像読出部251は、外側の予測画素の6個の参照画素のうちの予測画素より外側の参照画素の数が、内側の予測画素の6個の参照画素のうちの予測画素より外側の参照画素の数より少なくなるように、各予測画素の6個の参照画素を決定し、読み出す。参照画像読出部251は、読みされた6個の参照画素を画素出力部252に供給する。
 画素出力部252は、図26の画素生成部161と同様に、参照画像読出部251から供給される参照画素を生成用画素とする。また、画素出力部252は、動き予測部25から供給される動きベクトルの分数値に基づいて、中間結果メモリ50から、生成対象の予測画素に対応する6個のSub pelを生成用画素として読み出す。このとき、画素出力部252は、外側の予測画素の外側生成用画素とするSub pelの数が、内側の予測画素の外側生成用画素とするSub pelの数より少なくなるように、各予測画素の生成用画素とする6個のSub pelを決定し、読み出す。また、画素出力部252は、6個の生成用画素を6タップFIRフィルタ45に供給する。
 6タップフィルタ係数メモリ253は、動きベクトルの分数値、および、外側生成用画素の数に対応付けて、6タップFIRフィルタ45用のフィルタ係数を記憶している。6タップフィルタ係数メモリ253は、動き予測部25から供給される動きベクトルの分数値と、生成対象の予測画素の予測画像上の位置とに基づいて、その分数値、および、その位置に対応する外側生成用画素の数に対応付けて記憶されているフィルタ係数を6タップFIRフィルタ45に供給する。
 [参照画素の例]
 図65は、図64のインター予測部24における参照画素の例を示す図である。
 なお、図65では、インター予測のブロックのサイズが4×4画素である場合に、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である4個の予測画素それぞれの生成に用いられる参照画素の例を示している。
 また、図65において、番号が付された正方形は予測画素を表し、番号が付されていない正方形は参照画素を表す。また、水玉が付されている正方形は予測画素の生成に用いられる参照画素のうちの、インター予測のブロックのサイズの範囲内の参照画素を表し、斜線が付されている正方形は、インター予測のブロックのサイズの範囲を超えた範囲の参照画素を表している。これらのことは、後述する図68乃至図70においても同様である。
 図65の例では、最も外側の予測画素の外側生成用画素の数は2であり、最も内側の予測画素の外側生成用画素の数は3である。
 具体的には、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である4個の予測画素のうちの最も外側の番号1および4が付された正方形が表す予測画素は、その予測画素の外側の2個の参照画素と、内側の4個の参照画素を用いて生成される。
 また、番号1および4が付された正方形が表す予測画素より1つ内側の番号2および3が付された正方形が表す予測画素は、その予測画素の内外に3つずつ位置する合計6個の参照画素を用いて生成される。即ち、番号2および3が付された正方形が表す予測画素の参照画素の数は、番号1および4が付された正方形が表す予測画素の参照画素の数である2より多い3である。
 以上のように、図64のインター予測部24は、外側の予測画素の外側生成用画素の数を、内側の予測画素の外側生成用画素の数に比べて少なくするので、水平方向に並ぶ、インター予測に必要な参照画素の数は、従来の場合の9より少ない7個である。その結果、フレームメモリ22のメモリ帯域の使用量を削減することができる。これにより、チップの数を削減して製造費用を削減したり、フレームメモリ22へのアクセス回数を削減して消費電力を削減したりすることができる。
 また、図64のインター予測部24は、予測画素に対応する生成用画素の数が全て6個である。従って、外側の予測画素に対応する生成用画素の数を4個にすることにより、水平方向に並ぶ、インター予測に必要な参照画素の数を、図64のインター予測部24の場合と同一の7個にする場合に比べて、予測画像の精度が良い。
 なお、図示は省略するが、図65の例の場合、垂直方向に並ぶ、垂直方向の位置が1/2画素位置であり、水平方向の位置が整数位置である4個の予測画素それぞれの生成に用いられる6個の参照画素は、最も外側、即ち上下端の予測画素の予測画素より外側の参照画素の数が2となり、最も内側の予測画素の予測画素より外側の参照画素の数が3となるように決定される。
 また、垂直方向に並ぶ、水平方向および垂直方向の位置が1/2画素位置である4個の予測画素それぞれの生成に用いられる参照画素は、最も外側の予測画素の予測画素より外側の数が2となり、最も内側の予測画素の予測画素より外側の数が3となる予測対応画素の生成に用いられる参照画素である。従って、水平方向および垂直方向の位置が1/2画素位置である4×4画素の予測画像の生成に用いられる参照画素の範囲は7×7画素であり、従来の9×9画素に比べて少ない。
 [インター予測処理の第8の例の説明]
 図66および図67は、図64のインター予測部24による図20のステップS15のインター予測処理の詳細を説明するフローチャートである。
 図66のステップS400乃至S403は、図22のステップS50乃至S53の処理と同様であるので、説明は省略する。なお、予測対応画素が複数ある場合、以下のステップS404乃至S412の処理は、予測対応画素ごとに行われる。
 ステップS404において、参照画像読出部251は、生成対象の予測画素の参照画像上の位置に基づいて、ステップS402で保持された参照画素のうちの、予測対応画素の生成に用いられる6個の参照画素を読み出す。参照画像読出部251は、読み出された6個の参照画素を生成用画素として画素出力部252に供給する。
 ステップS405において、6タップフィルタ係数メモリ253は、予測対応画素の予測画像上の位置が外側であるかどうかを判定する。ステップS405で予測対応画素の予測画像上の位置が外側であると判定された場合、6タップフィルタ係数メモリ253は、外側生成用画素の数を、全生成用画素の数6の1/2である3より少ない2とし、処理をステップS406に進める。
 ステップS406において、6タップフィルタ係数メモリ253は、動きベクトルの分数値および外側生成用画素の数としての2に対応付けて記憶されているフィルタ係数を読み出し、6タップFIRフィルタ45に供給する。そして、処理はステップS408に進む。
 一方、ステップS405で予測対応画素の予測画像上の位置が外側ではないと判定された場合、6タップフィルタ係数メモリ253は、外側生成用画素の数を、全生成用画素の数6の1/2である3とし、処理をステップS407に進む。 
 ステップS407において、6タップフィルタ係数メモリ253は、動きベクトルの分数値および外側生成用画素の数としての3に対応付けて記憶されているフィルタ係数を読み出し、6タップFIRフィルタ45に供給する。そして、処理はステップS408に進む。
 ステップS408において、6タップFIRフィルタ45は、画素出力部252から供給される6個の生成用画素としての参照画素と、6タップフィルタ係数メモリ253から供給されるフィルタ係数を用いて演算を行う。6タップFIRフィルタ45は、その結果得られる1個の予測対応画素を画素選択部162に供給する。
 ステップS409乃至S414の処理は、図22のステップS62乃至図23のS67の処理と同様であるので、説明は省略する。
 ステップS415において、画素出力部252は、生成対象の予測画素の参照画像上の位置に基づいて、中間結果メモリ50から6個のSub pelを生成用画素として読み出す。
 ステップS416において、6タップフィルタ係数メモリ253は、生成対象の予測画素の予測画像上の位置が外側であるかどうかを判定する。ステップS416で生成対象の予測画素の予測画像上の位置が外側であると判定された場合、6タップフィルタ係数メモリ253は、外側生成用画素の数を、全生成用画素の数6の1/2である3より少ない2とし、処理をステップS417に進める。
 ステップS417において、6タップフィルタ係数メモリ253は、動きベクトルの垂直成分の分数値および外側生成用画素の数としての2に対応付けて記憶されているフィルタ係数を読み出し、6タップFIRフィルタ45に供給する。そして、処理はステップS419に進む。
 一方、ステップS416で生成対象の予測画素の予測画像上の位置が外側ではないと判定された場合、6タップフィルタ係数メモリ253は、外側生成用画素の数を、全生成用画素の数6の1/2である3とし、処理をステップS418に進める。
 ステップS418において、6タップフィルタ係数メモリ253は、動きベクトルの垂直成分の分数値および外側生成用画素の数としての3に対応付けて記憶されているフィルタ係数を読み出し、6タップFIRフィルタ45に供給する。そして、処理はステップS419に進む。
 ステップS419において、6タップFIRフィルタ45は、画素出力部252から供給される6個の生成用画素としてのSub pelと、6タップフィルタ係数メモリ253から供給されるフィルタ係数を用いて演算を行う。6タップFIRフィルタ45は、その結果得られる1個のSub pelを画素選択部162に供給する。
 ステップS420およびS421は、図23のステップS76およびS77の処理と同様であるので、説明は省略する。
 なお、図64のインター予測部24では、1回の演算に用いられる生成用画素の数が6個とされたが、生成用画素の数は6個に限定されない。また、図66および図67のインター予測処理では、外側生成用画素の数が、全生成用画素の数の1/2、または、全生成用画素の数の1/2より1少ない数としたが、外側生成用画素の数は、これに限定されない。但し、外側生成用画素の数は、全生成用画素の数の1/2に近い数である方が、予測画像の精度が良くなる。即ち、予測画像を生成する際、予測画素により近いものを生成用画素として用いる方が、予測画像の精度は良くなる。
 [参照画素の他の例]
 図68および図69は、生成用画素の数が8である場合の、図64のインター予測部24における参照画素の例を示す図であり、図70は、生成用画素の数が7である場合の、図64のインター予測部24における参照画素の例を示す図である。
 なお、図68では、インター予測のブロックのサイズが4×4画素である場合に、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である4個の予測画素それぞれの生成に用いられる参照画素の例を示している。
 図68の例では、最も外側の予測画素の外側生成用画素の数は3であり、最も内側の予測画素の外側生成用画素の数は4である。
 具体的には、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である4個の予測画素のうちの最も外側の番号1および4が付された正方形が表す予測画素は、その予測画素の外側の3個の参照画素と、内側の5個の参照画素を用いて生成される。
 また、番号1および4が付された正方形が表す予測画素より1つ内側の番号2および3が付された正方形が表す予測画素は、その予測画素の内外に4つずつ位置する合計8個の参照画素を用いて生成される。即ち、番号2および3が付された正方形が表す予測画素の外側生成用画素の数は、番号1および4が付された正方形が表す予測画素の外側生成用画素の数である3より多い4である。
 以上のように、図64のインター予測部24は、外側の予測画素の外側生成用画素の数を、内側の予測画素の外側生成用画素の数に比べて少なくするので、水平方向に並ぶ、インター予測に必要な参照画素の数は、従来の場合の11より少ない9である。その結果、フレームメモリ22のメモリ帯域の使用量を削減することができる。
 なお、図68に示すように、予測画素がSub pel bである場合、番号1および4が付された正方形が表す予測画素の生成に用いられる、動きベクトルの分数値としての1/2と外側生成用画素の数としての3に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、3,-10,39,42,-14,7,-4,1である。
 また、予測画素がSub pel aである場合、最も外側の予測画素の生成に用いられる、動きベクトルの分数値としての1/4と外側生成用画素の数としての3に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、2,-9,56,20,-8,4,-2,1である。予測画素がSub pelcである場合、最も外側の予測画素の生成に用いられる、動きベクトルの分数値としての3/4と外側生成用画素の数としての3に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、2,-6,18,58,-11,5,-3,1である。
 また、図69では、インター予測のブロックのサイズが8×8画素である場合に、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である4個の予測画素それぞれの生成に用いられる参照画素の例を示している。
 図69のAでは、最も外側の予測画素の外側生成用画素の数は3であり、最も内側の予測画素の外側生成用画素の数は4である。
 具体的には、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である8個の予測画素のうちの最も外側の番号1および8が付された正方形が表す予測画素は、図68の場合と同様に、その予測画素の外側の3個の参照画素と、内側の5個の参照画素を用いて生成される。
 また、番号1および8が付された正方形が表す予測画素より内側の番号2乃至7が付された正方形が表す予測画素は、その予測画素の内外に4つずつ位置する合計8個の参照画素を用いて生成される。即ち、番号2乃至7が付された正方形が表す予測画素の外側生成用画素の数は、番号1および8が付された正方形が表す予測画素の外側生成用画素の数である3より多い4である。
 以上のように、図64のインター予測部24は、外側の予測画素の外側生成用画素の数を、内側の予測画素の外側生成用画素の数に比べて少なくするので、水平方向に並ぶ、インター予測に必要な参照画素の数は、従来の場合の15より少ない13である。その結果、フレームメモリ22のメモリ帯域の使用量を削減することができる。
 図69のBでは、最も外側の予測画素の外側生成用画素の数は2であり、その予測画素より1つ内側の予測画素の外側生成用画素の数は3であり、最も内側の予測画素の外側生成用画素の数は4である。
 具体的には、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である8個の予測画素のうちの最も外側の番号1および8が付された正方形が表す予測画素は、その予測画素の外側の2個の参照画素と、内側の6個の参照画素を用いて生成される。
 また、番号1および8が付された正方形が表す予測画素より1つ内側の番号2および7が付された正方形が表す予測画素は、その予測画素の外側の3個の参照画素と、内側の5個の参照画素を用いて生成される。さらに、番号2および7が付された正方形が表す予測画素より内側の番号3乃至6が付された正方形が表す予測画素は、図69のAの場合と同様の参照画素を用いて生成される。
 以上により、図69のBの場合、水平方向に並ぶ、インター予測に必要な参照画素の数は、図69のAの場合の13に比べてさらに少ない11である。その結果、フレームメモリ22のメモリ帯域の使用量をより削減することができる。
 なお、図69のBに示すように、予測画素がSub pel bである場合、番号1および8が付された正方形が表す予測画素の生成に用いられる、動きベクトルの分数値としての1/2と外側生成用画素の数としての2に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、-6,36,44,-16,9,-5,3,-1である。また、番号2および7が付された正方形が表す予測画素の生成に用いられる、動きベクトルの分数値としての1/2と外側生成用画素の数としての3に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、3,-10,39,42,-14,7,-4,1である。さらに、番号3乃至6が付された正方形が表す予測画素の生成に用いられる、動きベクトルの分数値としての1/2と外側生成用画素の数としての4に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、-1,4,-11,40,40,-11,4,-1である。
 また、予測画素がSub pel aである場合、最も外側の予測画素の生成に用いられる、動きベクトルの分数値としての1/4と外側生成用画素の数としての2に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、-5,54,22,-10,6,-4,2,-1である。また、最も外側より1つ内側の予測画素の生成に用いられる、動きベクトルの分数値としての1/4と外側生成用画素の数としての3に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、2,-9,56,20,-8,4,-2,1である。さらに、最も外側から2つ以上内側の予測画素の生成に用いられる、動きベクトルの分数値としての1/4と外側生成用画素の数としての4に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、-1,4,-10,57,19,-7,3,-1である。
 予測画素がSub pel cである場合、最も外側の予測画素の生成に用いられる、動きベクトルの分数値としての3/4と外側生成用画素の数としての2に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、-3,16,60,-13,7,-4,2,-1である。また、最も外側より1つ内側の予測画素の生成に用いられる、動きベクトルの分数値としての3/4と外側生成用画素の数としての3に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、2,-6,18,58,-11,5,-3,1である。さらに、最も外側から2つ以上内側の予測画素の生成に用いられる、動きベクトルの分数値としての3/4と外側生成用画素の数としての4に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、-1,3,-7,19,57,-10,4,-1である。
 図70では、インター予測のブロックのサイズが4×4画素である場合に、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である4個の予測画素それぞれの生成に用いられる参照画素の例を示している。
 図70の例では、最も外側の予測画素の外側生成用画素の数は2であり、最も内側の予測画素の外側生成用画素の数は3である。
 具体的には、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である4個の予測画素のうちの最も外側の番号1および4が付された正方形が表す予測画素は、その予測画素の外側の2個の参照画素と、内側の5個の参照画素を用いて生成される。
 また、番号1および4が付された正方形が表す予測画素より内側の番号2および3が付された正方形が表す予測画素は、その予測画素の外側の3個の参照画素と、内側の4個の参照画素を用いて生成される。
 以上のように、図64のインター予測部24は、外側の予測画素の外側生成用画素の数を、内側の予測画素の外側生成用画素の数に比べて少なくするので、水平方向に並ぶ、インター予測に必要な参照画素の数は、従来の場合の10より少ない7である。その結果、フレームメモリ22のメモリ帯域の使用量を削減することができる。
 なお、図70に示すように、予測画素がSub pel bである場合、番号1および4が付された正方形が表す予測画素の生成に用いられる、動きベクトルの分数値としての1/2と外側生成用画素の数としての2に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、-6,36,44,-15,8,-4,1である。
 また、予測画素がSub pel aである場合、最も外側の予測画素の生成に用いられる、動きベクトルの分数値としての1/4と外側生成用画素の数としての2に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、-5,54,21,-9,5,-3,1である。予測画素がSub pel cである場合、最も外側の予測画素の生成に用いられる、動きベクトルの分数値としての3/4と外側生成用画素の数としての2に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、-3,16,59,-12,6,-3,1である。
 なお、図示は省略するが、図68乃至図70の例では、水平方向の位置が整数位置であり、垂直方向の位置が分数位置である予測画素の参照画素は、図68乃至図70の参照画素と同様に、最も外側の予測画素の予測画素より外側の参照画素の数が、より内側の予測画素の予測画素より外側の参照画素の数より少なくなるように決定される。
 また、垂直方向に並ぶ、水平方向および垂直方向の位置が1/2画素位置である4個の予測画素それぞれの生成に用いられる参照画素は、図68乃至図70の参照画素と同様に、最も外側の予測画素の予測画素より外側の数が、最も内側の予測画素の予測画素より外側の数より少ない予測対応画素の生成に用いられる参照画素である。
 なお、水平方向の位置が分数位置である画素の生成に用いられる水平方向に並ぶ外側生成用画素の数と、垂直方向の位置が分数位置である画素の生成に用いられる垂直方向に並ぶ外側生成用画素の数を変更するようにしてもよい。
 具体的には、例えば、フレームメモリ22の読み出し単位が、水平方向に連続する所定数の画素である場合、水平方向に並ぶ参照画素の数が削減されても、読み出し回数は変化しない可能性がある。しかしながら、垂直方向に並ぶ参照画素の数が1つでも削減されれば、読み出し回数は削減される。即ち、この場合、水平方向の参照画素数の削減効果よりも、垂直方向の参照画素数の削減効果の方が大きい。従って、この場合、水平方向の位置が分数位置である画素の生成に用いられる水平方向に並ぶ外側生成用画素の数に比べて、垂直方向の位置が分数位置である画素の生成に用いられる垂直方向に並ぶ外側生成用画素の数が優先的に削減される。これにより、予測画像の精度の劣化を抑制しつつ、メモリ帯域を削減することができる。
 同様に、フレームメモリ22の読み出し単位が、垂直方向に連続する所定数の参照画素である場合、垂直方向の位置が分数位置である画素の生成に用いられる垂直方向に並ぶ外側生成用画素の数に比べて、水平方向の位置が分数位置である画素の生成に用いられる水平方向に並ぶ外側生成用画素の数が優先的に削減される。なお、詳細は、後述する図77乃至図82を参照して説明する。
 [インター予測部の第9の構成例]
 図71は、図3のインター予測部24の第9の構成例を示すブロック図である。
 図71に示す構成のうち、図64の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図71のインター予測部24の構成は、主に、参照画像読出部251、画素出力部252の代わりに、参照画像読出部271、画素生成部272が設けられている点が、図64の構成と異なる。図71のインター予測部24は、参照画素やSub pelを複製し、外側の予測画素に対応する6個の生成用画素のうちの外側生成用画素の数が、内側の予測画素に対応する6個の生成用画素のうちの外側生成用画素の数より少なくなるように、各予測画素の生成用画素を生成する。
 具体的には、図71のインター予測部24の参照画像読出部271は、図64の参照画像読出部251と同様に、インター予測モード情報のうちの参照インデックスおよび予測方向に基づいて、フレームメモリ22に記憶されている画像のうちの参照画像を特定する。参照画像読出部271は、インター予測モード情報のうちのブロックのサイズと動きベクトルの整数値に基づいて、予測画像の生成に用いられる参照画素をフレームメモリ22から読み出し、一時的に保持する。
 参照画像読出部271は、予測画素ごとに、一時的に保持されている参照画素のうち、その予測画素の生成に用いられる参照画素を読み出す。このとき、参照画像読出部271は、外側の予測画素の複製後の外側生成用画素の数が、内側の予測画素の複製後の外側生成用画素の数より少なくなるように、各予測画素の参照画素を決定し、読み出す。なお、ここでは、予測画素の生成に用いられる参照画素の数は、5または6のいずれかである。参照画像読出部271は、読みされた参照画素を画素生成部272に供給する。
 画素生成部272は、画素出力部252と同様に、参照画像読出部271から供給される参照画素を生成用画素とする。また、画素生成部272は、動き予測部25から供給される動きベクトルの分数値に基づいて、中間結果メモリ50から、生成対象の予測画素に対応するSub pelを生成用画素として読み出す。このとき、画素生成部272は、外側の予測画素の複製後の外側生成用画素の数が、内側の予測画素の複製後の外側生成用画素の数より少なくなるように、各予測画素のSub pelを決定し、読み出す。なお、ここでは、予測画素の生成に用いられるSub pelの数は、5または6のいずれかである。
 また、画素生成部272は、画素生成部として機能し、生成用画素の数が6個より小さい場合、その生成用画素のうちの外側の画素を、生成用画素の数と6個の差分だけ複製し、複製された画素と生成用画素からなる6個の画素を複製後の生成用画素として生成する。画素生成部272は、6個の複製後の生成用画素を6タップFIRフィルタ45に供給する。
 [複製後の生成用画素の例]
 図72は、インター予測のブロックのサイズが4×4画素である場合に、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である4個の予測画素それぞれの生成に用いられる複製後の生成用画素の例を示す図である。
 なお、図72において、番号が付された正方形は予測画素を表し、番号および英字が付されていない正方形は参照画素を表す。また、水玉が付されている正方形は予測画素の生成に用いられる参照画素のうちの、インター予測のブロックのサイズの範囲内の参照画素を表し、斜線が付されている正方形は、インター予測のブロックのサイズの範囲を超えた範囲の参照画素を表している。さらに、英字が付された正方形は、参照画素が複製された画素である。これらのことは、後述する図75および図76においても同様である。
 図72の例では、予測画素は、5個の参照画素を含む6個の複製後の生成用画素を用いて生成され、最も外側の予測画素の複製後の外側生成用画素の数は2であり、最も内側の予測画素の複製後の外側生成用画素の数は3である。
 具体的には、生成対象が、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である4個の予測画素のうちの最も左側の番号1が付された正方形が表す予測画素である場合、参照画像読出部271は、その予測画素の左に1つ位置し、右に4つ位置する合計5個の参照画素を画素生成部272に供給する。画素生成部272は、その5個の参照画素のうちの左端の参照画素を、その参照画素の左側の1個の整数位置の画素として複製し、その1個の画素と、画素生成部272から供給される5個の参照画素からなる6個の複製後の生成用画素を生成する。
 また、生成対象が、番号1が付された正方形が表す予測画素より1つ内側の番号2が付された正方形が表す予測画素である場合、番号1が付された正方形が表す予測画素に対応する6個の複製後の生成用画素と同一のものが生成される。
 さらに、生成対象が、最も右側の番号4が付された正方形が表す予測画素である場合、参照画像読出部271は、その予測画素の右に1つ位置し、左に4つ位置する合計5個の参照画素を画素生成部272に供給する。画素生成部272は、その5個の参照画素のうちの右端の参照画素を、その参照画素の右側の1個の整数位置の画素として複製し、その1個の画素と、画素生成部272から供給される5個の参照画素からなる6個の複製後の生成用画素を生成する。
 また、生成対象が、番号4が付された正方形が表す予測画素より1つ内側の番号3が付された正方形が表す予測画素である場合、番号4が付された正方形が表す予測画素に対応する6個の複製後の生成用画素と同一のものが生成される。
 以上のように、図71のインター予測部24は、外側の予測画素の外側生成用画素の数を、内側の予測画素の外側生成用画素の数に比べて少なくするとともに、参照画素を複製して生成用画素として用いる。従って、水平方向に並ぶ、インター予測に必要な参照画素の数は、図65の場合の7より少ない5個である。その結果、フレームメモリ22のメモリ帯域の使用量をより削減することができる。但し、図65の場合、最も外側の生成用画素の位置の参照画素が予測画素の生成に用いられるので、図72の場合に比べて予測画像の精度が良い。
 また、図71のインター予測部24は、予測画素に対応する生成用画素の数が全て5個である。従って、外側の予測画素に対応する生成用画素の数を2個にすることにより、水平方向に並ぶ、インター予測に必要な参照画素の数を、図71のインター予測部24の場合と同一の5にする場合に比べて、予測画像の精度が良い。
 なお、図示は省略するが、図71の例の場合、垂直方向に並ぶ、垂直方向の位置が1/2画素位置であり、水平方向の位置が整数位置である4個の予測画素それぞれの生成に用いられる6個の複製後の生成用画素は、最も外側、即ち上下端の予測画素の予測画素より外側の参照画素の数が1となり、最も内側の予測画素の予測画素より外側の参照画素の数が2となるように決定される。
 また、垂直方向に並ぶ、水平方向および垂直方向の位置が1/2画素位置である4個の予測画素それぞれの生成に用いられる参照画素は、最も外側の予測画素の予測画素より外側の数が1となり、最も内側の予測画素の予測画素より外側の数が2となる予測対応画素の生成に用いられる参照画素である。従って、水平方向および垂直方向の位置が1/2画素位置である4×4画素の予測画像の生成に用いられる参照画素の範囲は5×5画素であり、図65の7×7画素に比べて少ない。
 [インター予測処理の第9の例の説明]
 図73および図74は、図71のインター予測部24による図20のステップS15のインター予測処理の詳細を説明するフローチャートである。
 図73のステップS440乃至S443は、図66のステップS400乃至S403の処理と同様であるので、説明は省略する。なお、予測対応画素が複数ある場合、以下のステップS444乃至S454の処理は、予測対応画素ごとに行われる。
 ステップS444において、参照画像読出部271は、生成対象の予測画素の参照画像上の位置に基づいて、ステップS442で保持された参照画素のうちの、予測対応画素の生成に用いられる参照画素を読み出す。参照画像読出部271は、読み出された参照画素を生成用画素として画素生成部272に供給する。
 ステップS445乃至S447の処理は、図66のステップS405乃至S407の処理と同様であるので、説明は省略する。
 ステップS448において、画素生成部272は、参照画像読出部271から供給される参照画素の数は5であるかどうかをを判定する。ステップS448で参照画素の数は5であると判定された場合、処理はステップS449に進む。
 ステップS449において、画素生成部272は、参照画像読出部271から供給される5個の参照画素のうちの外側の参照画素を、その参照画素の外側の1個の整数位置の画素として複製し、その1個の画素と5個の参照画素からなる6個の生成用画素を生成する。そして、画素生成部272は、生成された6個の生成用画素を6タップFIRフィルタ45に供給し、処理をステップS450に進める。
 一方、ステップS448で参照画素の数は5ではないと判定された場合、即ち参照画素の数が6である場合、処理はステップS450に進む。
 ステップS450乃至S456の処理は、図66のステップS408乃至図67のS414の処理と同様であるので、説明は省略する。
 図74のステップS457において、画素生成部272は、生成対象の予測画素の参照画像上の位置に基づいて、中間結果メモリ50からSub pelを生成用画素として読み出す。
 ステップS458乃至S460の処理は、図67のステップS416乃至S418の処理と同様であるので、説明は省略する。
 ステップS461乃至S463の処理は、参照画素の代わりにSub pelに対して行われる点を除いて、図73のステップS448乃至S450の処理と同様であるので、説明は省略する。
 ステップS464およびS465は、図67のステップS420およびS421と同様であるので、説明は省略する。
 なお、図71のインター予測部24では、1回の演算に用いられる生成用画素の数が6個とされたが、生成用画素の数は6に限定されない。また、生成用画素のうちの参照画素の数は、5または6に限定されない。さらに、図73および図74のインター予測処理では、外側生成用画素の数が、全生成用画素の数の1/2、または、全生成用画素の数の1/2より1少ない数としたが、外側生成用画素の数は、これに限定されない。
 [複製後の生成用画素の他の例]
 図75および図76は、複製後の生成用画素の数が8である場合の、図71のインター予測部24における複製後の生成用画素の例を示す図である。
 なお、図75では、インター予測のブロックのサイズが4×4画素である場合に、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である4個の予測画素それぞれの生成に用いられる複製後の生成用画素の例を示している。
 図75の例では、予測画素は、7個の参照画素を含む8個の複製後の生成用画素を用いて生成され、最も外側の予測画素の複製後の外側生成用画素の数は3であり、最も内側の予測画素の複製後の外側生成用画素の数は4である。
 具体的には、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である4個の予測画素のうちの最も左側の番号1および4が付された正方形が表す予測画素は、その予測画素の外側の3個の複製後の外側生成用画素と、内側の5個の参照画素を用いて生成される。なお、3個の複製後の外側生成用画素は、予測画素の外側に隣接する2個の参照画素と、その参照画素のうちの最も外側の参照画素を複製することにより得られた、その参照画素の外側の1個の整数位置の画素とからなる。
 また、番号1および4が付された正方形が表す予測画素より1つ内側の番号2および3が付された正方形が表す予測画素は、その予測画素の外側の4個の複製後の外側生成用画素と、内側の4個の参照画素を用いて生成される。なお、4個の複製後の外側生成用画素は、予測画素の外側に隣接する3個の参照画素と、その参照画素のうちの最も外側の参照画素を複製することにより得られた、その参照画素の外側の1個の整数位置の画素とからなる。
 以上のように、図71のインター予測部24は、外側の予測画素の外側生成用画素の数を、内側の予測画素の外側生成用画素の数に比べて少なくするとともに、参照画素を複製して生成用画素として用いる。従って、水平方向に並ぶ、インター予測に必要な参照画素の数は、図68の場合の9より少ない7である。その結果、フレームメモリ22のメモリ帯域の使用量をより削減することができる。但し、図68の場合、最も外側の生成用画素の位置の参照画素が予測画素の生成に用いられるので、図75の場合に比べて予測画像の精度が良い。
 なお、図75に示すように、予測画素がSub pel bである場合、番号1および4が付された正方形が表す予測画素の生成に用いられる、動きベクトルの分数値としての1/2と外側生成用画素の数としての3に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、-6,36,44,-16,9,-5,3,-1である。
 また、予測画素がSub pel aである場合、最も外側の予測画素の生成に用いられる、動きベクトルの分数値としての1/4と外側生成用画素の数としての3に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、-5,54,22,-10,6,-4,2,-1である。予測画素がSub pel cである場合、最も外側の予測画素の生成に用いられる、動きベクトルの分数値としての3/4と外側生成用画素の数としての3に対応するフィルタ係数は、例えば、対応する生成用画素の外側から順に、-3,16,60,-13,7,-4,2,-1である。
 また、図76では、インター予測のブロックのサイズが8×8画素である場合に、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である8個の予測画素それぞれの生成に用いられる複製後の生成用画素の例を示している。
 図76の例では、予測画素は、7個または8個の参照画素を含む8個の複製後の生成用画素を用いて生成され、最も外側の予測画素の複製後の外側生成用画素の数は3であり、最も内側の複製後の予測画素の外側生成用画素の数は4である。
 具体的には、水平方向に並ぶ、水平方向の位置が1/2画素位置であり、垂直方向の位置が整数位置である8個の予測画素のうちの最も外側の番号1および8が付された正方形が表す予測画素は、その予測画素の外側の3個の複製後の外側生成用画素と、内側の5個の参照画素を用いて生成される。なお、3個の複製後の外側生成用画素は、予測画素の外側に隣接する2個の参照画素と、その参照画素のうちの最も外側の参照画素を複製することにより得られた、その参照画素の外側の1個の整数位置の画素とからなる。
 また、番号1および8が付された正方形が表す予測画素より1つ内側の番号2および7が付された正方形が表す予測画素は、その予測画素の外側の4個の複製後の生成用画素と、内側の4個の参照画素を用いて生成される。なお、4個の複製後の外側生成用画素は、予測画素の外側に隣接する3個の参照画素と、その参照画素のうちの最も外側の参照画素を複製することにより得られた、その参照画素の外側の1個の整数位置の画素とからなる。
 番号2および7が付された正方形が表す予測画素より内側の番号3乃至6が付された正方形が表す予測画素は、その予測画素の内外に4つずつ位置する合計8個の生成用画素を用いて生成される。
 以上のように、図71のインター予測部24は、外側の予測画素の外側生成用画素の数を、内側の予測画素の外側生成用画素の数に比べて少なくするとともに、参照画素を複製して生成用画素として用いる。従って、水平方向に並ぶ、インター予測に必要な参照画素の数は、図69のAの場合の13より少ない11である。その結果、フレームメモリ22のメモリ帯域の使用量をより削減することができる。但し、図69のAの場合、最も外側の生成用画素の位置の参照画素が予測画素の生成に用いられるので、図76の場合に比べて予測画像の精度が良い。
 なお、図示は省略するが、図75および図76の例では、水平方向の位置が整数位置であり、垂直方向の位置が分数位置である予測画素の参照画素は、図75および図76の参照画素と同様に、最も外側の予測画素の複製後の外側生成用画素の数が、最も内側の予測画素の複製後の外側生成用画素の数より少なくなるように決定される。
 また、垂直方向に並ぶ、水平方向および垂直方向の位置が1/2画素位置である4個の予測画素それぞれの生成に用いられる参照画素は、図75および図76の参照画素と同様に、最も外側の予測画素の予測画素より外側の数が、最も内側の予測画素の予測画素より外側の数より少ない複製後の生成用画素に含まれる予測対応画素の生成に用いられる参照画素である。
 なお、図示は省略するが、符号化装置10が図64および図71のインター予測部24を備える場合、復号装置100のインター予測部111も、図64および図71のインター予測部24と同様に構成される。
 また、上述したインター予測処理において、予測方向が両方向の予測である場合には、インター予測の対象とする画像よりも表示時刻が早い参照画像から生成された予測画像と、表示時刻が遅い参照画像から生成された予測画像とが画素ごとに平均化され、選択部26に出力される。
 [インター予測部の第10の構成例]
 図77は、図3のインター予測部24の第10の構成例を示すブロック図である。
 図77に示す構成のうち、図64の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図77のインター予測部24の構成は、主に、参照画像読出部251、画素出力部252、6タップFIRフィルタ45、6タップフィルタ係数メモリ253、画素選択部162の代わりに、参照画像読出部291、画素振り分け部292、8タップFIRフィルタ293および4タップFIRフィルタ294、8タップフィルタ係数メモリ295および4タップフィルタ係数メモリ296、画素選択部297が設けられている点が、図64の構成と異なる。
 図77のインター予測部24は、予測画素の水平方向および垂直方向の位置が分数位置である場合、垂直方向に並ぶ外側生成用画素の数が、水平方向に並ぶ外側生成用画素の数より少なくなるように、各予測画素の生成に用いられる生成用画素を決定する。
 具体的には、インター予測部24の参照画像読出部291は、図64の参照画像読出部251と同様に、インター予測モード情報のうちの参照インデックスおよび予測方向に基づいて、フレームメモリ22に記憶されている画像のうちの参照画像を特定する。参照画像読出部291は、参照画像読出部251と同様に、インター予測モード情報のうちのブロックのサイズと動きベクトルの整数値に基づいて、予測画像の生成に用いられる参照画素をフレームメモリ22から読み出し、一時的に保持する。
 参照画像読出部291は、画素読出部として機能し、予測画素ごとに、一時的に保持されている参照画素のうち、その予測画素の生成に用いられる8個の参照画素を読み出す。このとき、参照画像読出部291は、外側の予測画素の参照画素のうちの予測画素より外側の参照画素の数が、内側の予測画素の参照画素のうちの予測画素より外側の参照画素の数より少なくなるように、各予測画素の8個の参照画素を決定し、読み出す。参照画像読出部291は、読みされた8個の参照画素を画素振り分け部292に供給する。
 画素振り分け部292は、図64の画素出力部252と同様に、参照画像読出部291から供給される参照画素を生成用画素とする。また、画素振り分け部292は、動き予測部25から供給される動きベクトルの分数値に基づいて、中間結果メモリ50から、生成対象の予測画素に対応する4個のSub pelを生成用画素として読み出す。このとき、画素振り分け部292は、外側の予測画素の外側生成用画素とするSub pelの数が、内側の予測画素の外側生成用画素とするSub pelの数より少なくなるように、各予測画素の生成用画素とする4個のSub pelを決定し、読み出す。また、画素振り分け部292は、8個の生成用画素を8タップFIRフィルタ293に供給し、4個の生成用画素を4タップFIRフィルタ294に供給する。
 8タップFIRフィルタ293は、演算部として機能し、画素振り分け部292から供給される8個の生成用画素と、8タップフィルタ係数メモリ295から供給されるフィルタ係数を用いて演算を行う。8タップFIRフィルタ293は、その結果得られる1個の画素を画素選択部297に供給する。
 4タップFIRフィルタ294は、演算部として機能し、画素振り分け部292から供給される4個の生成用画素と、4タップフィルタ係数メモリ296から供給されるフィルタ係数を用いて演算を行う。4タップFIRフィルタ294は、その結果得られる1個の画素を画素選択部297に供給する。
 8タップフィルタ係数メモリ295は、動きベクトルの分数値、および、外側生成用画素の数に対応付けて、8タップFIRフィルタ293用のフィルタ係数を記憶している。8タップフィルタ係数メモリ295は、動き予測部25から供給される動きベクトルの分数値と、生成対象の予測画素の予測画像上の位置とに基づいて、その分数値、および、その位置に対応する外側生成用画素の数に対応付けて記憶されているフィルタ係数を8タップFIRフィルタ293に供給する。
 4タップフィルタ係数メモリ296は、動きベクトルの分数値、および、外側生成用画素の数に対応付けて、4タップFIRフィルタ294用のフィルタ係数を記憶している。4タップフィルタ係数メモリ296は、動き予測部25から供給される動きベクトルの分数値と、生成対象の予測画素の予測画像上の位置とに基づいて、その分数値、および、その位置に対応する外側生成用画素の数に対応付けて記憶されているフィルタ係数を4タップFIRフィルタ294に供給する。
 画素選択部297は、図64の画素選択部162と同様に、動き予測部25から供給される動きベクトルの分数値に基づいて、8タップFIRフィルタ293または4タップFIRフィルタ294から供給される画素を予測画素として図3の選択部26に出力するか、中間結果メモリ50に供給する。
 [参照画素の例]
 図78は、水平方向に並ぶ外側生成用画素の数と、垂直方向に並ぶ外側生成用画素の数が同一である場合の参照画素の例を示す図である。
 なお、図78の例では、インター予測のブロックのサイズが4×4画素であり、予測画素が、水平方向の位置が1/2画素位置であり、垂直方向の位置が1/2画素位置であるSub pel fである。このことは、後述する図79においても同様である。
 また、図78において、fが付された正方形は、予測画素であるSub pel fを表し、dが付された正方形は、Sub pel dを表す。また、英字が付されていない正方形は、参照画素を表す。さらに、水玉が付されている正方形は予測画素の生成に用いられる参照画素のうちの、インター予測のブロックのサイズの範囲内の参照画素を表し、斜線が付されている正方形は、インター予測のブロックのサイズの範囲を超えた範囲の参照画素を表している。これらのことは、後述する図79においても同様である。
 さらに、図78の例では、最も外側の予測画素の外側生成用画素の数は3であり、最も内側の予測画素の外側生成用画素の数は4である。また、各予測画素の生成用画素の数は8である。
 この場合、図78に示すように、まず、4×4画素の予測画素に対応する9×4画素のSub pel dが、それぞれ、垂直方向に並ぶ8個の参照画素を用いて予測対応画素として生成される。このとき、外側のSub pel dの外側生成用画素の数は3であり、内側のSub pel dの外側生成用画素の数は4であるので、9×4画素のSub pel dの生成に用いられる参照画素の数は、81(=9×9)である。
 次に、4×4画素の予測画素であるSub pel fが、それぞれ、予測対応画素である9×4画素のSub pel dのうちの水平方向に並ぶ8個のSub pel dを用いて生成される。具体的には、外側のSub pel fは、水平方向に並ぶ3個の外側生成用画素としてのSub pel dと、そのSub pel fより内側の水平方向に並ぶ5個の生成用画素としてのSub pel dを用いて生成される。一方、内側のSub pel fは、水平方向に並ぶ4個の外側生成用画素としてのSub pel dと、そのSub pel fより内側の水平方向に並ぶ4個の生成用画素としてのSub pel dを用いて生成される。
 従って、図78の例の場合、予測方向がL0予測またはL1予測であるとき、4×4画素のSub pel fを予測画素として生成するためには、9×9画素の参照画素が必要である。また、Sub pel dを生成するために36(=9×4)回のフィルタ処理が必要であり、Sub pel dを用いてSub pel fを生成するために16(=4×4)回のフィルタ処理が必要である。
 また、予測方向がBi-predictionであるとき、4×4画素のSub pel fを予測画素として生成するためには、9×9画素の2倍の参照画素が必要である。また、Sub pel dを生成するためには、72(=9×4×2)回のフィルタ処理が必要であり、Sub pel fを生成するために32(=4×4×2)回のフィルタ処理が必要である。
 そこで、図77のインター予測部24は、垂直方向に並ぶ外側生成用画素の数が、水平方向に並ぶ外側生成用画素の数より少なくなるように、参照画素を読み出すことにより、参照画素の数およびフィルタ処理の回数を削減する。
 図79は、図77のインター予測部24における参照画素の例を示す図である。
 図79の例では、最も外側の予測画素の水平方向に並ぶ外側生成用画素の数は3であり、最も内側の予測画素の水平方向に並ぶ外側生成用画素の数は4である。一方、最も外側の予測画素の垂直方向に並ぶ外側生成用画素の数は1であり、最も内側の予測画素の垂直方向に並ぶ外側生成用画素の数は2である。
 図79に示すように、インター予測部24は、まず、4×4画素の予測画素に対応する4×5画素のSub pel bを、それぞれ、水平方向に並ぶ8個の参照画素を用いて予測対応画素として生成する。このとき、外側のSub pel bの外側生成用画素の数は3であり、内側のSub pel bの外側生成用画素の数は4であるので、4×5画素のSub pel bの生成に用いられる参照画素の数は、45(=9×5)である。
 次に、インター予測部24は、4×4画素の予測画素であるSub pel fを、それぞれ、予測対応画素である4×5画素のSub pel bのうちの垂直方向に並ぶ4個のSub pel bを用いて生成する。具体的には、インター予測部24は、外側のSub pel fを、1個の外側生成用画素としてのSub pel bと、そのSub pel fより内側の垂直方向に並ぶ3個の生成用画素としてのSub pel bを用いて生成する。また、インター予測部24は、内側のSub pel fを、垂直方向に並ぶ2個の外側生成用画素としてのSub pel bと、そのSub pel fより内側の垂直方向に並ぶ2個の生成用画素としてのSub pel bを用いて生成する。
 従って、図79の例の場合、予測方向がL0予測またはL1予測であるとき、4×4画素のSub pel fを予測画素として生成するために必要な参照画素は、9×5画素であり、図78の場合に比べて垂直方向に並ぶ参照画素の数が削減される。また、Sub pel bを生成するために必要なフィルタ処理の回数は、20(=4×5)回であり、Sub pel bを用いてSub pel fを生成するために必要なフィルタ処理の回数は、16(=4×4)回である。従って、予測画素を生成するために必要なフィルタ処理の回数は、図78の場合に比べて削減される。
 また、予測方向がBi-predictionであるとき、4×4画素のSub pel fを予測画素として生成するために必要な参照画素は、9×5画素の2倍に削減される。また、Sub pel bを生成するために必要なフィルタ処理の回数は、40(=4×5×2)回であり、Sub pel bを用いてSub pel fを生成するために必要なフィルタ処理の回数は、32(=4×4×2)回である。従って、予測方向がL0予測またはL1予測である場合と同様に、予測画素を生成するために必要なフィルタ処理の回数は、図78の場合に比べて削減される。
 [フレームメモリ内の画素値の配置例]
 図80は、フレームメモリ22内の1フレーム分の画素値の配置例を示す図である。
 なお、図80において、正方形は画素値を表す。
 フレームメモリ22は、例えば、バス幅が32ビットであるDRAM(Dynamic Random Access Memory)により構成される。また、図80に示すように、フレームメモリ22は、水平方向に並ぶ4画素からなる画素群に対して、水平方向に並ぶ画素群に割り当てられるアドレスが連続するようにアドレスを割り当てる。そして、フレームメモリ22は、各画素群の32ビットの画素値を、その画素群に割り当てられたアドレスに対応して記憶する。従って、フレームメモリ22では、1回のアクセスで、1アドレスに対応する画素群の画素値が読み出される。
 よって、予測画素の生成に用いられる垂直方向に並ぶ参照画素を削減することにより、水平方向に並ぶ参照画素の数を削減する場合に比べて、アクセス回数を効果的に削減することができる。即ち、フレームメモリ22のアクセス単位は、水平方向に並ぶ4個の画素からなる画素群であるので、予測画素の生成に用いられる水平方向に並ぶ参照画素の数はアクセス回数と同一ではなく、その参照画素の数が削減された場合であっても、アクセス回数は変化しない可能性がある。しかしながら、予測画素の生成に用いられる垂直方向に並ぶ参照画素の数はアクセス回数と同一であるので、その参照画素の数を削減することにより、アクセス回数を効果的に削減することができる。
 また、フレームメモリ22において、バーストアクセスが行われる場合、連続するアドレスに対応する画素値を、少ないメモリ帯域で効率的に読み出すことができる。従って、矩形311で囲まれた連続する2アドレスに対応する8画素の画素値、即ち水平方向に並ぶ8画素の画素値は、バーストアクセスにより少ないメモリ帯域で効率的に読み出すことができる。しかしながら、矩形312で囲まれた連続しない2アドレスに対応する8画素の画素値、即ち垂直方向に並ぶ8画素の画素値は、バーストアクセスにより少ないメモリ帯域で効率的に読み出すことができない。
 以上により、図77のインター予測部24は、予測画素の水平方向および垂直方向の位置が分数位置である場合、垂直方向に並ぶ外側生成用画素の数を、水平方向に並ぶ外側生成用画素の数より少なくすることにより、予測画素の生成に用いられる垂直方向に並ぶ参照画素の数を削減する。その結果、フレームメモリ22に対するアクセス回数を効率的に削減することができる。また、バーストアクセス時のメモリ帯域を削減することができる。
 さらに、予測画素の生成に用いられる水平方向に並ぶ参照画素の数は削減されないため、予測画像の精度の劣化を抑制し、符号化効率の低下を抑制することができる。
 [インター予測処理の第10の例の説明]
 図81および図82は、図77のインター予測部24による図20のステップS15のインター予測処理の詳細を説明するフローチャートである。
 図81のステップS480乃至S483は、図66のステップS400乃至S403の処理と同様であるので、説明は省略する。なお、予測対応画素が複数ある場合、以下のステップS484乃至S492の処理は、予測対応画素ごとに行われる。
 ステップS484において、参照画像読出部291は、生成対象の予測画素の参照画像上の位置に基づいて、ステップS482で保持された参照画素のうちの、予測対応画素の生成に用いられる8個の参照画素を読み出す。なお、予測画素の水平方向と垂直方向の位置が分数位置である場合、予測対応画素は、水平方向の位置が分数位置である画素である。参照画像読出部291は、読み出された8個の参照画素を生成用画素として画素振り分け部292に供給する。
 ステップS485において、8タップフィルタ係数メモリ295は、予測対応画素の予測画像上の位置が外側であるかどうかを判定する。ステップS485で予測対応画素の予測画像上の位置が外側であると判定された場合、8タップフィルタ係数メモリ295は、外側生成用画素の数を、全生成用画素の数8の1/2である4より少ない3とし、処理をステップS486に進める。
 ステップS486において、8タップフィルタ係数メモリ295は、動きベクトルの分数値および外側生成用画素の数としての3に対応付けて記憶されているフィルタ係数を読み出し、8タップFIRフィルタ293に供給する。そして、処理はステップS488に進む。
 一方、ステップS485で予測対応画素の予測画像上の位置が外側ではないと判定された場合、8タップフィルタ係数メモリ295は、外側生成用画素の数を、全生成用画素の数8の1/2である4とし、処理をステップS487に進む。
 ステップS487において、8タップフィルタ係数メモリ295は、動きベクトルの分数値および外側生成用画素の数としての4に対応付けて記憶されているフィルタ係数を読み出し、8タップFIRフィルタ293に供給する。そして、処理はステップS488に進む。
 ステップS488において、8タップFIRフィルタ293は、画素振り分け部292から供給される8個の生成用画素としての参照画素と、8タップフィルタ係数メモリ295から供給されるフィルタ係数を用いて演算を行う。8タップFIRフィルタ293は、その結果得られる1個の予測対応画素を画素選択部297に供給する。
 ステップS489乃至S494の処理は、図66のステップS409乃至図67のS414の処理と同様であるので、説明は省略する。
 ステップS495において、画素振り分け部292は、生成対象の予測画素の参照画像上の位置に基づいて、中間結果メモリ50から4個のSub pelを生成用画素として読み出す。
 ステップS496において、4タップフィルタ係数メモリ296は、生成対象の予測画素の予測画像上の位置が外側であるかどうかを判定する。ステップS496で生成対象の予測画素の予測画像上の位置が外側であると判定された場合、4タップフィルタ係数メモリ296は、外側生成用画素の数を、全生成用画素の数4の1/2である2より少ない1とし、処理をステップS497に進める。
 ステップS497において、4タップフィルタ係数メモリ296は、動きベクトルの垂直成分の分数値および外側生成用画素の数としての1に対応付けて記憶されているフィルタ係数を読み出し、4タップFIRフィルタ294に供給する。そして、処理はステップS499に進む。
 一方、ステップS496で生成対象の予測画素の予測画像上の位置が外側ではないと判定された場合、4タップフィルタ係数メモリ296は、外側生成用画素の数を、全生成用画素の数4の1/2である2とし、処理をステップS498に進める。
 ステップS498において、4タップフィルタ係数メモリ296は、動きベクトルの垂直成分の分数値および外側生成用画素の数としての2に対応付けて記憶されているフィルタ係数を読み出し、4タップFIRフィルタ294に供給する。そして、処理はステップS499に進む。
 ステップS499において、4タップFIRフィルタ294は、画素振り分け部292から供給される4個の生成用画素としてのSub pelと、4タップフィルタ係数メモリ296から供給されるフィルタ係数を用いて演算を行う。4タップFIRフィルタ294は、その結果得られる1個のSub pelを画素選択部297に供給する。
 ステップS500およびS501は、図67のステップS420およびS421の処理と同様であるので、説明は省略する。
 以上のように、図77のインター予測部24は、垂直方向に並ぶ外側生成用画素の数を水平方向に並ぶ外側生成用画素の数より少なくすることにより、予測画素の生成に用いられる垂直方向に並ぶ参照画素の数を削減する。その結果、フレームメモリ22に対するアクセス回数を削減し、バーストアクセス時のメモリ帯域を削減することができる。
 また、図77のインター予測部24は、予測画素の水平方向と垂直方向の位置が分数位置である場合、予測対応画素を水平方向の位置が分数位置である画素とする。即ち、図77のインター予測部24は、参照画素を用いて、予測画素と水平方向の位置が同一である予測対応画素を生成した後、その予測対応画素を用いて予測画素を生成する。これにより、予測対応画素が垂直方向の位置が分数位置である画素である場合に比べて、フィルタ処理の回数を軽減することができる。
 例えば、予測対応画素が垂直方向の位置が分数位置である画素である場合、図79の例と同一の条件では、予測対応画素の数は、9×4画素であり、予測対応画素を生成するために必要なフィルタ処理の回数は、36(=9×4)回となる。これに対して、予測対応画素が水平方向の位置が分数位置である画素である場合、図79で説明したように、予測対応画素の数は、4×5画素であり、予測対応画素を生成するために必要なフィルタ処理の回数は、36回より少ない20(=4×5)回となる。
 なお、図77のインター予測部24では、予測画素の水平方向および垂直方向の位置が分数位置である場合に、垂直方向に並ぶ外側生成用画素の数が水平方向に並ぶ外側生成用画素の数より少なくなるようにしたが、予測画素の水平方向の位置が整数位置であり、垂直方向の位置が分数位置である場合にも、垂直方向に並ぶ外側生成用画素の数が水平方向に並ぶ外側生成用画素の数より少なくなるようにしてもよい。
 また、図77のインター予測部24は、垂直方向に並ぶ外側生成用画素の数が水平方向に並ぶ外側生成用画素の数より少なくなるようにしたが、フレームメモリ22が、1アドレスに対応して垂直方向に並ぶ複数の画素を記憶する場合、水平方向に並ぶ外側生成用画素の数が垂直方向に並ぶ外側生成用画素の数より少なくなるようにする。
 また、図77のインター予測部24では、全てのマクロブロックに対して、垂直方向に並ぶ外側生成用画素の数が水平方向に並ぶ外側生成用画素の数より少なくなるようにしたが、Bスライスのマクロブロックに対してのみ行うようにしてもよい。
 この場合、参照画像のフレーム数が2フレームとなり、参照画素の数が多くなる可能性のあるBスライスのマクロブロックの、予測画素の生成に用いられる垂直方向に並ぶ参照画素を削減することができる。その結果、フレームメモリ22に対するアクセス回数を削減し、バーストアクセス時のメモリ帯域を削減することができる。また、参照画像のフレーム数が1フレームであるBスライス以外のマクロブロックの、予測画素の生成に用いられる垂直方向に並ぶ参照画素は削減されないので、予測画像の精度の劣化を抑制することができる。さらに、スライス単位で、垂直方向に並ぶ外側生成用画素の数が変更されるので、予測方向等に基づいて変更される場合に比べて、変更の制御が容易である。
 また、予測方向がBi-predictionである場合にのみ、垂直方向に並ぶ外側生成用画素の数が水平方向に並ぶ外側生成用画素の数より少なくなるようにしてもよい。この場合、予測方向がBi-predictionであり、参照画像のフレーム数が2フレームとなるマクロブロックの、予測画素の生成に用いられる垂直方向に並ぶ参照画素を削減することができる。その結果、フレームメモリ22に対するアクセス回数を削減し、バーストアクセス時のメモリ帯域を削減することができる。また、予測方向がBi-prediction以外であり、参照画像のフレーム数が1フレームとなるマクロブロックの、予測画素の生成に用いられる垂直方向に並ぶ参照画素は削減されないので、予測画像の精度の劣化を抑制することができる。同様に、インター予測のブロックのサイズが所定のサイズより大きい場合にのみ、垂直方向に並ぶ外側生成用画素の数が水平方向に並ぶ外側生成用画素の数より少なくなるようにしてもよい。
 また、図77のインター予測部24は、垂直方向に並ぶ生成用画素の数を、水平方向に並ぶ生成用画素の数より削減したが、水平方向に並ぶ生成用画素の数と垂直方向に並ぶ生成用画素の数は同一であってもよい。
 さらに、図示は省略するが、図4、図26、図30、図44、図48、図52、図61、および図71のインター予測部24においても、図77のインター予測部24と同様に、垂直方向に並ぶ外側生成用画素の数が、水平方向に並ぶ外側生成用画素の数より少なくなるようにすることができる。この場合、図4、図26、図30、図44、図48、図52、および図61のインター予測部24では、垂直方向に並ぶ生成用画素の数が、水平方向に並ぶ生成用画素の数より少なくなる。
 [インター予測部の第11の構成例]
 図83は、図3のインター予測部24の第11の構成例を示すブロック図である。
 図83のインター予測部24は、色用インター予測部321と輝度用インター予測部322により構成される。図83のインター予測部24は、インター予測モード情報のうちのブロックのサイズおよび予測方向、並びに、動きベクトルの分数値に基づいて、各予測画素の色成分と輝度成分のそれぞれの生成に用いられる生成用画素の数を決定する。
 具体的には、図83のインター予測部24の色用インター予測部321は、フレームメモリ22からの参照画像、並びに、動き予測部25からのインター予測モード情報および動きベクトルに基づいて、各予測画素の色成分を生成し、出力する。色用インター予測部321の詳細は、後述する図84を参照して説明する。
 輝度用インター予測部322は、フレームメモリ22からの参照画像、並びに、動き予測部25からのインター予測モード情報および動きベクトルに基づいて、各予測画素の輝度成分を生成し、出力する。輝度用インター予測部322の詳細は、後述する図88を参照して説明する。
 [色用インター予測部の構成例]
 図84は、図83の色用インター予測部321の構成例を示すブロック図である。
 図84の色用インター予測部321の構成のうち、図77の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図84の色用インター予測部321の構成は、主に、参照画像読出部291、画素振り分け部292の代わりに参照画像読出部331、画素振り分け部332が設けられている点、および、LUT(Look Up Table)333が新たに設けられている点が、図77の構成と異なる。
 図84のインター予測部24の参照画像読出部331は、図77の参照画像読出部291と同様に、インター予測モード情報のうちの参照インデックスおよび予測方向に基づいて、フレームメモリ22に記憶されている画像のうちの参照画像を特定する。また、参照画像読出部331は、LUT333から、インター予測モード情報のうちのブロックのサイズおよび予測方向並びに動きベクトルの分数値に対応する水平方向および垂直方向の生成用画素数を読み出す。
 参照画像読出部331は、水平方向および垂直方向の生成用画素数、インター予測モード情報のうちのブロックのサイズ、および動きベクトルの整数値に基づいて、予測画像の色成分の生成に用いられる参照画素の色成分をフレームメモリ22から読み出す。そして、参照画像読出部331は、読み出された参照画素の色成分を一時的に保持する。
 参照画像読出部331は、水平方向または垂直方向の生成用画素数に基づいて、予測画素ごとに、一時的に保持されている参照画素の色成分のうち、その予測画素の色成分の生成に用いられる生成用画素数としての4個または8個の参照画素の色成分を読み出す。参照画像読出部331は、読みされた4個または8個の参照画素の色成分を画素振り分け部332に供給する。
 画素振り分け部332は、参照画像読出部331から供給される参照画素の色成分を生成用画素の色成分とする。また、画素振り分け部332は、LUT333から、動き予測部25から供給されるインター予測モード情報のうちのブロックのサイズおよび予測方向、並びに、動きベクトルの分数値に対応する垂直方向の生成用画素数を読み出す。
 画素振り分け部332は、垂直方向の生成用画素数に基づいて、中間結果メモリ50から、生成対象の予測画素の色成分の生成に用いられる垂直方向の生成用画素数としての4個または8個のSub pelの色成分を、生成用画素の色成分として読み出す。また、画素振り分け部332は、8個の生成用画素の色成分を8タップFIRフィルタ293に供給し、4個の生成用画素の色成分を4タップFIRフィルタ294に供給する。
 LUT333は、インター予測のブロックのサイズ、予測方向、および、動きベクトルの分数値に対応する予測画素となるSub pelの種類に対応付けて、生成用画素数を記憶している。
 [生成用画素数の説明]
 図85は、生成用画素数と参照画素数の関係を示すグラフである。
 なお、図85において、横軸は、予測方向、インター予測のブロックのサイズ、および予測画素となるSub pelの種類の組み合わせを表している。具体的には、図85の横軸に記載されたa乃至oは、Sub pelの種類がSub pel a乃至oであることを表している。また、a乃至oの下に記載されている数字は、インター予測のブロックの水平方向のサイズ(画素数)を表し、その数字の下に記載されている数字は、インター予測のブロックの垂直方向のサイズ(画素数)を表している。また、その数字の下に記載されているUniは、予測方向がL0予測またはL1予測であることを表し、Biは、予測方向が両方向の予測であることを表している。
 また、図85において、縦軸は、予測画素数で正規化された参照画素数(以下、正規化参照画素数という)を表している。即ち、縦軸の値は、参照画素数を予測画素数で除算した値である。また、図85において、菱形は、水平方向と垂直方向の生成用画素数が8である場合の正規化参照画素数を表し、正方形は、水平方向の生成用画素数が8であり、垂直方向の生成用画素数が4である場合の正規化参照画素数を表している。さらに、三角形は、水平方向の生成用画素数が4であり、垂直方向の生成用画素数が8である場合の正規化参照画素数を表し、バツ印は、水平方向と垂直方向の生成用画素数が4である場合の正規化参照画素数を表している。
 図85に示すように、予測方向が両方向の予測であり、インター予測のブロックのサイズが4×4画素であり、予測画素となるSub pelの種類がSub pel e乃至g,i乃至k、およびm乃至oのいずれかである場合、正規化参照画素数が最も多くなる。
 LUT333には、正規化参照画素数の最大値が所定値以下となるような水平方向および垂直方向の生成用画素数が、予測方向、インター予測のブロックのサイズ、および、予測画素となるSub pelの種類に対応付けて記憶される。
 図86および図87は、LUT333に記憶される水平方向および垂直方向の生成用画素数の例を示す図である。
 なお、図86および図87の表において、項目「予測方向」、「ブロックの水平方向のサイズ」、「ブロックの垂直方向のサイズ」、「Sub pel」の情報は、それぞれ、予測方向、インター予測のブロックの水平方向のサイズ、インター予測のブロックの垂直方向のサイズ、予測画素となるSub pelの種類である。また、項目「水平方向の生成用画素数」、「垂直方向の生成用画素数」の情報は、それぞれ、各項目「予測方向」、「ブロックの水平方向のサイズ」、「ブロックの垂直方向のサイズ」、および「Sub pel」の情報に対応する水平方向の生成用画素数、垂直方向の生成用画素数である。これらのことは、後述する図89および図90においても同様である。
 より詳細には、項目「水平方向の生成用画素数」のうちの項目「最大値6.1」の情報は、正規化参照画素数が6.1以下となる水平方向の生成用画素数である。また、項目「水平方向の生成用画素数」のうちの項目「最大値5.2」の情報、項目「最大値3.8」の情報は、予測方向が両方向の予測であり、インター予測のブロックのサイズが8×8画素より小さい場合以外の場合において、正規化参照画素数が、それぞれ、5.2,3.8以下となる水平方向の生成用画素数である。項目「垂直方向の生成用画素数」の項目「最大値6.1」、項目「最大値5.2」、および項目「最大値3.8」の情報についても、項目「水平方向の生成用画素数」と同様である。
 また、図86および図87の表において、アスタリスクは、対応する水平方向または垂直方向の生成用画素がない、即ち、対応する水平方向または垂直方向のフィルタ処理が行われないことを表している。このことは、後述する図89および図90においても同様である。
 LUT333は、項目「予測方向」、「ブロックの水平方向のサイズ」、「ブロックの垂直方向のサイズ」、および「Sub pel」の情報に対応付けて、例えば、項目「水平方向の生成用画素数」と「垂直方向の生成用画素数」の項目「最大値6.1」、「最大値5.2」、または「最大値3.8」のいずれかの情報を記憶する。
 なお、図86および図87の例では、フレームメモリ22において、1アドレスに対応して水平方向に並ぶ複数の画素が記憶されるものとし、予測画素となるSub pelの種類がSub pel e乃至g,i乃至k、およびm乃至oのいずれかであり、正規化参照画素数が同一である場合、より削減効果の大きい垂直方向の生成用画素数が水平方向の生成用画素数より少ない方が記憶されている。このことは、後述する図89および図90においても同様である。
 [輝度用インター予測部の構成例]
 図88は、図83の輝度用インター予測部322の構成例を示すブロック図である。
 図88の輝度用インター予測部322の構成のうち、図4の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図88の輝度用インター予測部322の構成は、主に、参照画像読出部41、画素振り分け部42、画素選択部49の代わりに参照画像読出部351、画素振り分け部352、画素選択部353が設けられている点、6タップFIRフィルタ45および6タップフィルタ係数メモリ48が設けられない点、および、LUT354が新たに設けられている点が、図4の構成と異なる。
 図88のインター予測部24の参照画像読出部351は、図4の参照画像読出部41と同様に、インター予測モード情報のうちの参照インデックスおよび予測方向に基づいて、フレームメモリ22に記憶されている画像のうちの参照画像を特定する。また、参照画像読出部351は、LUT354から、インター予測モード情報のうちのブロックのサイズおよび予測方向並びに動きベクトルの分数値に対応する水平方向および垂直方向の生成用画素数を読み出す。
 参照画像読出部351は、水平方向および垂直方向の生成用画素数、インター予測モード情報のうちのブロックのサイズ、および動きベクトルの整数値に基づいて、予測画像の輝度成分の生成に用いられる参照画素の輝度成分をフレームメモリ22から読み出す。そして、参照画像読出部351は、読み出された参照画素の輝度成分を一時的に保持する。
 参照画像読出部351は、水平方向または垂直方向の生成用画素数に基づいて、予測画素ごとに、一時的に保持されている参照画素の輝度成分のうち、その予測画素の輝度成分の生成に用いられる生成用画素数としての2個または4個の参照画素の輝度成分を読み出す。参照画像読出部351は、読みされた2個または4個の参照画素の輝度成分を画素振り分け部352に供給する。
 画素振り分け部352は、参照画像読出部351から供給される参照画素の輝度成分を生成用画素の輝度成分とする。また、画素振り分け部352は、LUT354から、動き予測部25から供給されるインター予測モード情報のうちのブロックのサイズおよび予測方向、並びに、動きベクトルの分数値に対応する垂直方向の生成用画素数を読み出す。
 画素振り分け部352は、垂直方向の生成用画素数に基づいて、中間結果メモリ50から、生成対象の予測画素の輝度成分の生成に用いられる垂直方向の生成用画素数としての2個または4個のSub pelの輝度成分を、生成用画素の輝度成分として読み出す。また、画素振り分け部352は、2個の生成用画素の輝度成分を2タップFIRフィルタ43に供給し、4個の生成用画素の輝度成分を4タップFIRフィルタ44に供給する。
 画素選択部353は、動き予測部25から供給される動きベクトルの分数値に基づいて、2タップFIRフィルタ43または4タップFIRフィルタ44から供給される画素の輝度成分を予測画素の輝度成分として図3の選択部26に出力するか、中間結果メモリ50に供給する。
 具体的には、画素選択部353は、動きベクトルの水平成分および垂直成分の少なくとも一方の分数値が0である場合、2タップFIRフィルタ43または4タップFIRフィルタ44から供給される画素の輝度成分を予測画素の輝度成分として選択部26に供給する。一方、画素選択部353は、動きベクトルの水平成分および垂直成分の両方の分数値が0ではない場合、2タップFIRフィルタ43または4タップFIRフィルタ44から供給される画素の輝度成分であるSub pelの輝度成分を、中間結果メモリ50に供給し、保持させる。その結果、2タップFIRフィルタ43または4タップFIRフィルタ44において、中間結果メモリ50に保持されているSub pelの輝度成分を用いて、再度演算が行われる。画素選択部353は、その結果得られるSub pelの輝度成分を予測画素の輝度成分として選択部26に出力する。なお、予測方向が両方向の予測である場合には、インター予測の対象とする画像よりも表示時刻が早い参照画像から生成された予測画素の輝度成分と、表示時刻が遅い参照画像から生成された予測画素の輝度成分とが平均化され、選択部26に出力される。
 LUT354は、インター予測のブロックのサイズ、予測方向、および、動きベクトルの分数値に対応する予測画素となるSub pelの種類に対応付けて、生成用画素数を記憶している。
 [LUT354に記憶される生成用画素数の例]
 図89および図90は、図88のLUT354に記憶される水平方向および垂直方向の生成用画素数の例を示す図である。
 なお、図89および図90の表において、項目「水平方向の生成用画素数」のうちの「最大値4.5」の情報は、正規化参照画素数が4.5以下となる水平方向の生成用画素数である。また、項目「水平方向の生成用画素数」のうちの「最大値3.1」の情報は、予測方向が両方向の予測であり、インター予測のブロックのサイズが8×8画素より小さい場合以外の場合において、正規化参照画素数が3.1以下となる水平方向の生成用画素数である。項目「垂直方向の生成用画素数」の項目「最大値4.5」と項目「最大値3.1」の情報についても、項目「水平方向の生成用画素数」と同様である。
 LUT354は、項目「予測方向」、「ブロックの水平方向のサイズ」、「ブロックの垂直方向のサイズ」、および「Sub pel」の情報に対応付けて、例えば、項目「水平方向の生成用画素数」と「垂直方向の生成用画素数」の項目「最大値4.5」または項目「最大値3.1」の情報を記憶する。
 [インター予測処理の第11の例の説明]
 図91および図92は、図83のインター予測部24による図20のステップS15のインター予測処理のうちの、色用インター予測部321による色用インター予測処理を説明するフローチャートである。
 図91のステップS521およびS522の処理は、図81のステップS480およびS481の処理と同様であるので、説明は省略する。
 ステップS523において、図84の色用インター予測部321の参照画像読出部331は、LUT333から、ステップS522で決定された予測画像のサイズ、インター予測モード情報のうちの予測方向、および動きベクトルの分数値に対応する水平方向および垂直方向の生成用画素数を読み出す。
 ステップS524において、参照画像読出部331は、水平方向および垂直方向の生成用画素数、動きベクトルの整数値、および予測画像のサイズに基づいて、予測画像の色成分の生成に用いられる参照画素の色成分をフレームメモリ22から読み出す。そして、参照画像読出部331は、読み出された参照画素の色成分を一時的に保持する。
 ステップS525において、参照画像読出部331は、予測画像を構成する予測画素のうち、まだステップS525の処理で生成対象の予測画素に決定されていない予測画素を生成対象の予測画素に決定する。
 ステップS526において、参照画像読出部331は、生成対象の予測画素の参照画像上の位置に基づいて、一時的に保持されている参照画素の色成分のうち、予測対応画素の色成分の生成に用いられる生成用画素数としての4個または8個の参照画素の色成分を読み出す。参照画像読出部331は、読みされた4個または8個の参照画素の色成分を画素振り分け部332に供給する。
 ステップS527において、画素振り分け部332は、参照画像読出部331から供給される色成分に対応する参照画素の数が8個であるかどうかを判定する。ステップS527で参照画素の数が8個であると判定された場合、画素振り分け部332は、8個の参照画素の色成分を8タップFIRフィルタ293に供給し、処理をステップS528に進める。
 ステップS528において、8タップFIRフィルタ293は、画素振り分け部332から供給される8個の生成用画素としての参照画素の色成分と、8タップフィルタ係数メモリ295から供給されるフィルタ係数を用いて演算を行う。8タップFIRフィルタ293は、その結果得られる1個の予測対応画素を画素選択部297に供給する。
 一方、ステップS527で参照画素の数が8個ではないと判定された場合、即ち参照画素の数が4個である場合、画素振り分け部332は、4個の参照画素の色成分を4タップFIRフィルタ294に供給し、処理をステップS529に進める。
 ステップS529において、4タップFIRフィルタ294は、画素振り分け部332から供給される4個の生成用画素としての参照画素の色成分と、4タップフィルタ係数メモリ296から供給されるフィルタ係数を用いて演算を行う。4タップFIRフィルタ294は、その結果得られる1個の予測対応画素を画素選択部297に供給する。
 ステップS530において、画素選択部297は、動き予測部25から供給される動きベクトルの水平成分と垂直成分の両方の分数値が0以外であるかどうかを判定する。ステップS530で動きベクトルの水平成分と垂直成分の少なくとも一方の分数値が0であると判定された場合、処理はステップS531に進む。
 ステップS531において、画素選択部297は、4タップFIRフィルタ294または8タップFIRフィルタ293から供給される予測対応画素の色成分を予測画素の色成分として図3の選択部26に出力する。なお、このとき、予測方向が両方向の予測である場合、インター予測の対象とする画像よりも表示時刻が早い参照画像から生成された予測画素の色成分と、表示時刻が遅い参照画像から生成された予測画素の色成分とが平均化されて選択部26に出力される。
 ステップS532において、参照画像読出部331は、全ての予測画素の色成分が生成されたかを判定する。ステップS532でまだ全ての予測画素の色成分が生成されていないと判定された場合、処理はステップS525に戻り、全ての予測画素の色成分が生成されるまで、ステップS525乃至S532の処理が繰り返される。
 一方、ステップS532で全ての予測画素が生成されたと判定された場合、処理は終了する。
 また、ステップS530で動きベクトルの水平成分と垂直成分の両方の分数値が0以外であると判定された場合、処理はステップS533に進む。
 ステップS533において、画素選択部297は、4タップFIRフィルタ294または8タップFIRフィルタ293から供給される予測対応画素としてのSub pelの色成分を、中間結果メモリ50に供給し、保持させる。
 ステップS534において、参照画像読出部331は、全ての予測対応画素の色成分が生成されたかどうかを判定する。ステップS534でまだ全ての予測対応画素の色成分が生成されていないと判定された場合、処理はステップS525に戻り、全ての予測対応画素の色成分が生成されるまで、ステップS525乃至S530、ステップS533、およびステップS534の処理が繰り返される。
 一方、ステップS534で全ての予測対応画素の色成分が生成されたと判定された場合、処理は図92のステップS535に進む。
 ステップS535において、参照画像読出部331は、予測画像を構成する予測画素のうち、まだステップS535の処理で生成対象の予測画素に決定されていない予測画素を生成対象の予測画素に決定する。
 ステップS536において、画素振り分け部332は、LUT333から、動き予測部25から供給されるインター予測モード情報のうちのブロックのサイズおよび予測方向、並びに、動きベクトルの分数値に対応する垂直方向の生成用画素数を読み出す。
 ステップS537において、画素振り分け部332は、生成対象の予測画素の参照画像上の垂直方向の位置に基づいて、中間結果メモリ50から生成用画素数としての4個または8個のSub pelの色成分を読み出す。
 ステップS538乃至S540の処理は、参照画素の代わりにSub pelに対して行われる点を除いて、図91のステップS527乃至S529の処理と同様であるので、説明は省略する。
 ステップS541において、画素選択部297は、4タップFIRフィルタ294または8タップFIRフィルタ293から供給される画素であるSub pelの色成分を予測画素の色成分として選択部26に出力する。なお、このとき、予測方向が両方向の予測である場合、インター予測の対象とする画像よりも表示時刻が早い参照画像から生成された予測画素の色成分と、表示時刻が遅い参照画像から生成された予測画素の色成分とが平均化されて選択部26に出力される。
 ステップS542において、参照画像読出部331は、全ての予測画素の色成分が生成されたかどうかを判定する。ステップS542でまだ全ての予測画素の色成分が生成されていないと判定された場合、処理はステップS535に戻り、全ての予測画素が生成されるまで、ステップS535乃至S542の処理が繰り返される。
 一方、ステップS542で全ての予測画素が生成されたと判定された場合、処理は終了する。
 なお、図91および図92の色用インター予測処理では、動きベクトルの水平成分と垂直成分の両方の分数値が0以外である場合、水平方向のフィルタ処理が行われた後、垂直方向のフィルタ処理が行われるが、垂直方向のフィルタ処理が行われた後、水平方向のフィルタ処理が行われるようにしてもよい。
 また、図20のステップS15のインター予測処理は、図91および図92の色用インター予測処理と、図88の輝度用インター予測部322による輝度用インター予測処理とにより構成される。輝度用インター予測処理は、処理対象が色成分ではなく輝度成分である点、および、生成用画素数が4または8ではなく、2または4である点を除いて色用インター予測処理と同様であるので、説明は省略する。
 <正規化参照画素数の特性>
 図93乃至図100は、正規化参照画素数の特性を説明する図である。
 なお、図93乃至図100において、水玉が付されている正方形は予測画素の生成に用いられる参照画素のうちの、インター予測のブロックのサイズの範囲内の参照画素を表し、斜線が付されている正方形は、インター予測のブロックのサイズの範囲を超えた範囲の参照画素を表している。また、何も付されていない正方形は、予測画素を表している。
 図93に示すように、インター予測のブロックのサイズが4×4画素であり、予測画素がSub pel e乃至g,i乃至k、およびm乃至oのいずれかであり、水平方向および垂直方向の生成用画素数が8個であり、予測方向がL0予測またはL1予測である場合、予測画像の生成に用いられる参照画素の数は、11×11画素となる。従って、この場合、正規化参照画素数は、約7.6(=(11×11)/(4×4))である。
 これに対して、図94に示すように、インター予測のブロックのサイズが4×4画素ではなく、8×8画素である場合、予測画像の生成に用いられる参照画素の数は、15×15画素となり、正規化参照画素数は、約3.5(=(15×15)/(8×8))となる。
 以上のように、参照画素の範囲は、インター予測のブロックのサイズより大きく、正規化参照画素数は、インター予測のブロックのサイズが小さいほど大きい。
 また、図95に示すように、予測方向がL0予測またはL1予測ではなく、両方向の予測である場合、インター予測の対象とする画像よりも表示時刻が早い参照画像の11×11画素から、予測画像が生成される。また、インター予測の対象とする画像よりも表示時刻が遅い参照画像の11×11画素から、予測画像が生成される。そして、生成された2枚の予測画像が画素ごとに平均化され、最終的な予測画像とされる。従って、予測画像の生成に用いられる参照画素の数は、11×11×2画素となり、正規化参照画素数は、約15.1(=(11×11×2)/(4×4))となる。
 このように、予測方向が両方向の予測である場合、L0予測またはL1予測である場合に比べて、正規化参照画素数は大きくなる。
 さらに、図96に示すように、予測画素がSub pel e乃至g,i乃至k、およびm乃至oのいずれかではなく、Sub pel a,b,cである場合、予測画像の生成に用いられる参照画素の数は、4×11画素となり、正規化参照画素数は、約2.8(=(4×11)/(4×4))となる。また、水平方向と垂直方向が異なるだけであるので図示は省略するが、予測画素がSub pel d,h,lである場合、予測画像の生成に用いられる参照画素の数は、11×4画素となり、正規化参照画素数は、約2.8(=(11×4)/(4×4))となる。
 このように、予測画素の参照画像上の水平方向および垂直方向の少なくとも一方の位置が整数位置である場合、両方の位置が分数位置である場合に比べて、正規化参照画素数は小さくなる。
 また、図97に示すように、予測画素がSub pel e乃至g,i乃至k、およびm乃至oのいずれかではなく、Sub pel a,b,cである場合に、インター予測のブロックの水平方向のサイズが、4画素ではなく、垂直方向のサイズより長い8画素である場合、予測画像の生成に用いられる参照画素の数は、4×15画素となる。従って、この場合、正規化参照画素数は、約1.9(=(4×15)/(4×8))である。
 これに対して、図98に示すように、予測画素がSub pel a,b,cではなく、Sub pel d,h,lである場合、予測画像の生成に用いられる参照画素の数は、11×8画素となり、正規化参照画素数は、約2.8(=(11×8)/(4×8))となる。
 このように、インター予測のブロックの水平方向および垂直方向のうちの一方のサイズが他方のサイズより大きい場合、一方の参照画像上の位置のみが分数位置である場合に比べて、他方の参照画像上の位置のみが分数位置である場合の方が、正規化参照画素数が大きくなる。
 さらに、図99に示すように、インター予測のブロックのサイズが4×4画素ではなく、4×8画素である場合に、水平方向の生成用画素数が8個であるが、垂直方向の生成用画素数が4個である場合、予測画像の生成に用いられる参照画素の数は、15×7画素となる。従って、この場合、正規化参照画素数は、約3.3(=(15×7)/(4×8))である。
 これに対して、図100に示すように、垂直方向の生成用画素数が8個であるが、水平方向の生成用画素数が4個である場合、予測画像の生成に用いられる参照画素の数は、11×11画素となる。従って、この場合、正規化参照画素数は、約3.8(=(11×11)/(4×8))である。
 このように、インター予測のブロックの水平方向および垂直方向のうちの一方のサイズが他方のサイズより大きい場合、一方の生成用画素数より他方の生成用画素数が少ない方が、他方の生成用画素数より一方の生成用画素数が少ない場合に比べて、正規化参照画素数が小さくなる。即ち、一方の生成用画素数より他方の生成用画素数を削減した方が、他方の生成用画素数より一方の生成用画素数を削減する場合より正規化参照画素数の削減効果が大きい。
 なお、図示は省略するが、符号化装置10が図77や図83のインター予測部24を備える場合、復号装置100のインター予測部111も、図77や図83のインター予測部24と同様に構成される。
 <本技術を適用したコンピュータの説明>
 次に、上述した符号化処理や復号処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。符号化処理や復号処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
 そこで、図101は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
 プログラムは、コンピュータに内蔵されている記録媒体としての記憶部408やROM(Read Only Memory)402に予め記録しておくことができる。
 あるいはまた、プログラムは、リムーバブルメディア411に格納(記録)しておくことができる。このようなリムーバブルメディア411は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブルメディア411としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
 なお、プログラムは、上述したようなリムーバブルメディア411からドライブ410を介してコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵する記憶部408にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、デジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
 コンピュータは、CPU(Central Processing Unit)401を内蔵しており、CPU401には、バス404を介して、入出力インタフェース405が接続されている。
 CPU401は、入出力インタフェース405を介して、ユーザによって、入力部406が操作等されることにより指令が入力されると、それに従って、ROM402に格納されているプログラムを実行する。あるいは、CPU401は、記憶部408に格納されたプログラムを、RAM(Random Access Memory)403にロードして実行する。
 これにより、CPU401は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU401は、その処理結果を、必要に応じて、例えば、入出力インタフェース405を介して、出力部407から出力、あるいは、通信部409から送信、さらには、記憶部408に記録等させる。
 なお、入力部406は、キーボードや、マウス、マイク等で構成される。また、出力部407は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
 ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
 また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
 <テレビジョン受像機の構成例>
 図102は、本技術を適用した復号装置を用いるテレビジョン受像機の主な構成例を示すブロック図である。
 図102に示されるテレビジョン受像機500は、地上波チューナ513、ビデオデコーダ515、映像信号処理回路518、グラフィック生成回路519、パネル駆動回路520、および表示パネル521を有する。
 地上波チューナ513は、地上アナログ放送の放送波信号を、アンテナを介して受信し、復調し、映像信号を取得し、それをビデオデコーダ515に供給する。ビデオデコーダ515は、地上波チューナ513から供給された映像信号に対してデコード処理を施し、得られたデジタルのコンポーネント信号を映像信号処理回路518に供給する。
 映像信号処理回路518は、ビデオデコーダ515から供給された映像データに対してノイズ除去などの所定の処理を施し、得られた映像データをグラフィック生成回路519に供給する。
 グラフィック生成回路519は、表示パネル521に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成し、生成した映像データや画像データをパネル駆動回路520に供給する。また、グラフィック生成回路519は、項目の選択などにユーザにより利用される画面を表示するための映像データ(グラフィック)を生成し、それを番組の映像データに重畳したりすることによって得られた映像データをパネル駆動回路520に供給するといった処理も適宜行う。
 パネル駆動回路520は、グラフィック生成回路519から供給されたデータに基づいて表示パネル521を駆動し、番組の映像や上述した各種の画面を表示パネル521に表示させる。
 表示パネル521はLCD(Liquid Crystal Display)などよりなり、パネル駆動回路520による制御に従って番組の映像などを表示させる。
 また、テレビジョン受像機500は、音声A/D(Analog/Digital)変換回路514、音声信号処理回路522、エコーキャンセル/音声合成回路523、音声増幅回路524、およびスピーカ525も有する。
 地上波チューナ513は、受信した放送波信号を復調することにより、映像信号だけでなく音声信号も取得する。地上波チューナ513は、取得した音声信号を音声A/D変換回路514に供給する。
 音声A/D変換回路514は、地上波チューナ513から供給された音声信号に対してA/D変換処理を施し、得られたデジタルの音声信号を音声信号処理回路522に供給する。
 音声信号処理回路522は、音声A/D変換回路514から供給された音声データに対してノイズ除去などの所定の処理を施し、得られた音声データをエコーキャンセル/音声合成回路523に供給する。
 エコーキャンセル/音声合成回路523は、音声信号処理回路522から供給された音声データを音声増幅回路524に供給する。
 音声増幅回路524は、エコーキャンセル/音声合成回路523から供給された音声データに対してD/A変換処理、増幅処理を施し、所定の音量に調整した後、音声をスピーカ525から出力させる。
 さらに、テレビジョン受像機500は、デジタルチューナ516およびMPEGデコーダ517も有する。
 デジタルチューナ516は、デジタル放送(地上デジタル放送、BS(Broadcasting Satellite)/CS(Communications Satellite)デジタル放送)の放送波信号を、アンテナを介して受信し、復調し、MPEG-TS(Moving Picture Experts Group-Transport Stream)を取得し、それをMPEGデコーダ517に供給する。
 MPEGデコーダ517は、デジタルチューナ516から供給されたMPEG-TSに施されているスクランブルを解除し、再生対象(視聴対象)になっている番組のデータを含むストリームを抽出する。MPEGデコーダ517は、抽出したストリームを構成する音声パケットをデコードし、得られた音声データを音声信号処理回路522に供給するとともに、ストリームを構成する映像パケットをデコードし、得られた映像データを映像信号処理回路518に供給する。また、MPEGデコーダ517は、MPEG-TSから抽出したEPG(Electronic Program Guide)データを図示せぬ経路を介してCPU532に供給する。
 テレビジョン受像機500は、このように映像パケットをデコードするMPEGデコーダ517として、上述した復号装置100を用いる。したがって、MPEGデコーダ517では、復号装置100の場合と同様に、インター予測の精度の悪化を抑制しつつ、メモリ帯域の使用量および処理量を削減することができる。
 MPEGデコーダ517から供給された映像データは、ビデオデコーダ515から供給された映像データの場合と同様に、映像信号処理回路518において所定の処理が施される。そして、所定の処理が施された映像データは、グラフィック生成回路519において、生成された映像データ等が適宜重畳され、パネル駆動回路520を介して表示パネル521に供給され、その画像が表示される。
 MPEGデコーダ517から供給された音声データは、音声A/D変換回路514から供給された音声データの場合と同様に、音声信号処理回路522において所定の処理が施される。そして、所定の処理が施された音声データは、エコーキャンセル/音声合成回路523を介して音声増幅回路524に供給され、D/A変換処理や増幅処理が施される。その結果、所定の音量に調整された音声がスピーカ525から出力される。
 また、テレビジョン受像機500は、マイクロホン526、およびA/D変換回路527も有する。
 A/D変換回路527は、音声会話用のものとしてテレビジョン受像機500に設けられるマイクロホン526により取り込まれたユーザの音声の信号を受信する。A/D変換回路527は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データをエコーキャンセル/音声合成回路523に供給する。
 エコーキャンセル/音声合成回路523は、テレビジョン受像機500のユーザ(ユーザA)の音声のデータがA/D変換回路527から供給されている場合、ユーザAの音声データを対象としてエコーキャンセルを行う。そして、エコーキャンセル/音声合成回路523は、エコーキャンセルの後、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路524を介してスピーカ525より出力させる。
 さらに、テレビジョン受像機500は、音声コーデック528、内部バス529、SDRAM(Synchronous Dynamic Random Access Memory)530、フラッシュメモリ531、CPU532、USB(Universal Serial Bus) I/F533、およびネットワークI/F534も有する。
 A/D変換回路527は、音声会話用のものとしてテレビジョン受像機500に設けられるマイクロホン526により取り込まれたユーザの音声の信号を受信する。A/D変換回路527は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データを音声コーデック528に供給する。
 音声コーデック528は、A/D変換回路527から供給された音声データを、ネットワーク経由で送信するための所定のフォーマットのデータに変換し、内部バス529を介してネットワークI/F534に供給する。
 ネットワークI/F534は、ネットワーク端子535に装着されたケーブルを介してネットワークに接続される。ネットワークI/F534は、例えば、そのネットワークに接続される他の装置に対して、音声コーデック528から供給された音声データを送信する。また、ネットワークI/F534は、例えば、ネットワークを介して接続される他の装置から送信される音声データを、ネットワーク端子535を介して受信し、それを、内部バス529を介して音声コーデック528に供給する。
 音声コーデック528は、ネットワークI/F534から供給された音声データを所定のフォーマットのデータに変換し、それをエコーキャンセル/音声合成回路523に供給する。
 エコーキャンセル/音声合成回路523は、音声コーデック528から供給される音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路524を介してスピーカ525より出力させる。
 SDRAM530は、CPU532が処理を行う上で必要な各種のデータを記憶する。
 フラッシュメモリ531は、CPU532により実行されるプログラムを記憶する。フラッシュメモリ531に記憶されているプログラムは、テレビジョン受像機500の起動時などの所定のタイミングでCPU532により読み出される。フラッシュメモリ531には、デジタル放送を介して取得されたEPGデータ、ネットワークを介して所定のサーバから取得されたデータなども記憶される。
 例えば、フラッシュメモリ531には、CPU532の制御によりネットワークを介して所定のサーバから取得されたコンテンツデータを含むMPEG-TSが記憶される。フラッシュメモリ531は、例えばCPU532の制御により、そのMPEG-TSを、内部バス529を介してMPEGデコーダ517に供給する。
 MPEGデコーダ517は、デジタルチューナ516から供給されたMPEG-TSの場合と同様に、そのMPEG-TSを処理する。このようにテレビジョン受像機500は、映像や音声等よりなるコンテンツデータを、ネットワークを介して受信し、MPEGデコーダ517を用いてデコードし、その映像を表示させたり、音声を出力させたりすることができる。
 また、テレビジョン受像機500は、リモートコントローラ551から送信される赤外線信号を受光する受光部537も有する。
 受光部537は、リモートコントローラ551からの赤外線を受光し、復調して得られたユーザ操作の内容を表す制御コードをCPU532に出力する。
 CPU532は、フラッシュメモリ531に記憶されているプログラムを実行し、受光部537から供給される制御コードなどに応じてテレビジョン受像機500の全体の動作を制御する。CPU532とテレビジョン受像機500の各部は、図示せぬ経路を介して接続されている。
 USB I/F533は、USB端子536に装着されたUSBケーブルを介して接続される、テレビジョン受像機500の外部の機器との間でデータの送受信を行う。ネットワークI/F534は、ネットワーク端子535に装着されたケーブルを介してネットワークに接続し、ネットワークに接続される各種の装置と音声データ以外のデータの送受信も行う。
 テレビジョン受像機500は、MPEGデコーダ517として復号装置100を用いることにより、インター予測の精度の悪化を抑制しつつ、メモリ帯域の使用量および処理量を削減することができる。
 <携帯電話機の構成例>
 図103は、本技術を適用した符号化装置および復号装置を用いる携帯電話機の主な構成例を示すブロック図である。
 図103に示される携帯電話機600は、各部を統括的に制御するようになされた主制御部650、電源回路部651、操作入力制御部652、画像エンコーダ653、カメラI/F部654、LCD制御部655、画像デコーダ656、多重分離部657、記録再生部662、変復調回路部658、および音声コーデック659を有する。これらは、バス660を介して互いに接続されている。
 また、携帯電話機600は、操作キー619、CCD(Charge Coupled Devices)カメラ616、液晶ディスプレイ618、記憶部623、送受信回路部663、アンテナ614、マイクロホン(マイク)621、およびスピーカ617を有する。
 電源回路部651は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話機600を動作可能な状態に起動する。
 携帯電話機600は、CPU、ROMおよびRAM等でなる主制御部650の制御に基づいて、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
 例えば、音声通話モードにおいて、携帯電話機600は、マイクロホン(マイク)621で集音した音声信号を、音声コーデック659によってデジタル音声データに変換し、これを変復調回路部658でスペクトラム拡散処理し、送受信回路部663でデジタルアナログ変換処理および周波数変換処理する。携帯電話機600は、その変換処理により得られた送信用信号を、アンテナ614を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(音声信号)は、公衆電話回線網を介して通話相手の携帯電話機に供給される。
 また、例えば、音声通話モードにおいて、携帯電話機600は、アンテナ614で受信した受信信号を送受信回路部663で増幅し、さらに周波数変換処理およびアナログデジタル変換処理し、変復調回路部658でスペクトラム逆拡散処理し、音声コーデック659によってアナログ音声信号に変換する。携帯電話機600は、その変換して得られたアナログ音声信号をスピーカ617から出力する。
 更に、例えば、データ通信モードにおいて電子メールを送信する場合、携帯電話機600は、操作キー619の操作によって入力された電子メールのテキストデータを、操作入力制御部652において受け付ける。携帯電話機600は、そのテキストデータを主制御部650において処理し、LCD制御部655を介して、画像として液晶ディスプレイ618に表示させる。
 また、携帯電話機600は、主制御部650において、操作入力制御部652が受け付けたテキストデータやユーザ指示等に基づいて電子メールデータを生成する。携帯電話機600は、その電子メールデータを、変復調回路部658でスペクトラム拡散処理し、送受信回路部663でデジタルアナログ変換処理および周波数変換処理する。携帯電話機600は、その変換処理により得られた送信用信号を、アンテナ614を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(電子メール)は、ネットワークおよびメールサーバ等を介して、所定のあて先に供給される。
 また、例えば、データ通信モードにおいて電子メールを受信する場合、携帯電話機600は、基地局から送信された信号を、アンテナ614を介して送受信回路部663で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機600は、その受信信号を変復調回路部658でスペクトラム逆拡散処理して元の電子メールデータを復元する。携帯電話機600は、復元された電子メールデータを、LCD制御部655を介して液晶ディスプレイ618に表示する。
 なお、携帯電話機600は、受信した電子メールデータを、記録再生部662を介して、記憶部623に記録する(記憶させる)ことも可能である。
 この記憶部623は、書き換え可能な任意の記憶媒体である。記憶部623は、例えば、RAMや内蔵型フラッシュメモリ等の半導体メモリであってもよいし、ハードディスクであってもよいし、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアであってもよい。もちろん、これら以外のものであってもよい。
 さらに、例えば、データ通信モードにおいて画像データを送信する場合、携帯電話機600は、撮像によりCCDカメラ616で画像データを生成する。CCDカメラ616は、レンズや絞り等の光学デバイスと光電変換素子としてのCCDを有し、被写体を撮像し、受光した光の強度を電気信号に変換し、被写体の画像の画像データを生成する。その画像データを、カメラI/F部654を介して、画像エンコーダ653で、例えばMPEG2やMPEG4等の所定の符号化方式によって圧縮符号化することにより符号化画像データに変換する。
 携帯電話機600は、このような処理を行う画像エンコーダ653として、上述した符号化装置10を用いる。したがって、画像エンコーダ653は、符号化装置10の場合と同様に、インター予測の精度の悪化を抑制しつつ、メモリ帯域の使用量および処理量を削減することができる。
 なお、携帯電話機600は、このとき同時に、CCDカメラ616で撮像中にマイクロホン(マイク)621で集音した音声を、音声コーデック659においてアナログデジタル変換し、さらに符号化する。
 携帯電話機600は、多重分離部657において、画像エンコーダ653から供給された符号化画像データと、音声コーデック659から供給されたデジタル音声データとを、所定の方式で多重化する。携帯電話機600は、その結果得られる多重化データを、変復調回路部658でスペクトラム拡散処理し、送受信回路部663でデジタルアナログ変換処理および周波数変換処理する。携帯電話機600は、その変換処理により得られた送信用信号を、アンテナ614を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(画像データ)は、ネットワーク等を介して、通信相手に供給される。
 なお、画像データを送信しない場合、携帯電話機600は、CCDカメラ616で生成した画像データを、画像エンコーダ653を介さずに、LCD制御部655を介して液晶ディスプレイ618に表示させることもできる。
 また、例えば、データ通信モードにおいて、簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、携帯電話機600は、基地局から送信された信号を、アンテナ614を介して送受信回路部663で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機600は、その受信信号を変復調回路部658でスペクトラム逆拡散処理して元の多重化データを復元する。携帯電話機600は、多重分離部657において、その多重化データを分離して、符号化画像データと音声データとに分ける。
 携帯電話機600は、画像デコーダ656において、符号化画像データを、MPEG2やMPEG4等の所定の符号化方式に対応した復号方式でデコードすることにより、再生動画像データを生成し、これを、LCD制御部655を介して液晶ディスプレイ618に表示させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが液晶ディスプレイ618に表示される。
 携帯電話機600は、このような処理を行う画像デコーダ656として、上述した復号装置100を用いる。したがって、画像デコーダ656は、復号装置100の場合と同様に、インター予測の精度の悪化を抑制しつつ、メモリ帯域の使用量および処理量を削減することができる。
 このとき、携帯電話機600は、同時に、音声コーデック659において、デジタルの音声データをアナログ音声信号に変換し、これをスピーカ617より出力させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
 なお、電子メールの場合と同様に、携帯電話機600は、受信した簡易ホームページ等にリンクされたデータを、記録再生部662を介して、記憶部623に記録する(記憶させる)ことも可能である。
 また、携帯電話機600は、主制御部650において、撮像されてCCDカメラ616で得られた2次元コードを解析し、2次元コードに記録された情報を取得することができる。
さらに、携帯電話機600は、赤外線通信部681で赤外線により外部の機器と通信することができる。
 携帯電話機600は、画像エンコーダ653として符号化装置10を用いることにより、インター予測の精度の悪化を抑制しつつ、メモリ帯域の使用量および処理量を削減することができる。
 また、携帯電話機600は、画像デコーダ656として復号装置100を用いることにより、インター予測の精度の悪化を抑制しつつ、メモリ帯域の使用量および処理量を削減することができる。
 なお、以上において、携帯電話機600が、CCDカメラ616を用いるように説明したが、このCCDカメラ616の代わりに、CMOS(Complementary Metal Oxide Semiconductor)を用いたイメージセンサ(CMOSイメージセンサ)を用いるようにしてもよい。この場合も、携帯電話機600は、CCDカメラ616を用いる場合と同様に、被写体を撮像し、被写体の画像の画像データを生成することができる。
 また、以上においては携帯電話機600として説明したが、例えば、PDA(Personal Digital Assistants)、スマートフォン、UMPC(Ultra Mobile Personal Computer)、ネットブック、ノート型パーソナルコンピュータ等、この携帯電話機600と同様の撮像機能や通信機能を有する装置であれば、どのような装置であっても携帯電話機600の場合と同様に、符号化装置10および復号装置100を適用することができる。
 <ハードディスクレコーダの構成例>
 図104は、本技術を適用した符号化装置および復号装置を用いるハードディスクレコーダの主な構成例を示すブロック図である。
 図104に示されるハードディスクレコーダ(HDDレコーダ)700は、チューナにより受信された、衛星や地上のアンテナ等より送信される放送波信号(テレビジョン信号)に含まれる放送番組のオーディオデータとビデオデータを、内蔵するハードディスクに保存し、その保存したデータをユーザの指示に応じたタイミングでユーザに提供する装置である。
 ハードディスクレコーダ700は、例えば、放送波信号よりオーディオデータとビデオデータを抽出し、それらを適宜復号し、内蔵するハードディスクに記憶させることができる。また、ハードディスクレコーダ700は、例えば、ネットワークを介して他の装置からオーディオデータやビデオデータを取得し、それらを適宜復号し、内蔵するハードディスクに記憶させることもできる。
 さらに、ハードディスクレコーダ700は、例えば、内蔵するハードディスクに記録されているオーディオデータやビデオデータを復号してモニタ760に供給し、モニタ760の画面にその画像を表示させる。また、ハードディスクレコーダ700は、モニタ760のスピーカよりその音声を出力させることができる。
 ハードディスクレコーダ700は、例えば、チューナを介して取得された放送波信号より抽出されたオーディオデータとビデオデータ、または、ネットワークを介して他の装置から取得したオーディオデータやビデオデータを復号してモニタ760に供給し、モニタ760の画面にその画像を表示させる。また、ハードディスクレコーダ700は、モニタ760のスピーカよりその音声を出力させることもできる。
 もちろん、この他の動作も可能である。
 図104に示されるように、ハードディスクレコーダ700は、受信部721、復調部722、デマルチプレクサ723、オーディオデコーダ724、ビデオデコーダ725、およびレコーダ制御部726を有する。ハードディスクレコーダ700は、さらに、EPGデータメモリ727、プログラムメモリ728、ワークメモリ729、ディスプレイコンバータ730、OSD(On Screen Display)制御部731、ディスプレイ制御部732、記録再生部733、D/Aコンバータ734、および通信部735を有する。
 また、ディスプレイコンバータ730は、ビデオエンコーダ741を有する。記録再生部733は、エンコーダ751およびデコーダ752を有する。
 受信部721は、リモートコントローラ(図示せず)からの赤外線信号を受信し、電気信号に変換してレコーダ制御部726に出力する。レコーダ制御部726は、例えば、マイクロプロセッサなどにより構成され、プログラムメモリ728に記憶されているプログラムに従って、各種の処理を実行する。レコーダ制御部726は、このとき、ワークメモリ729を必要に応じて使用する。
 通信部735は、ネットワークに接続され、ネットワークを介して他の装置との通信処理を行う。例えば、通信部735は、レコーダ制御部726により制御され、チューナ(図示せず)と通信し、主にチューナに対して選局制御信号を出力する。
 復調部722は、チューナより供給された信号を、復調し、デマルチプレクサ723に出力する。デマルチプレクサ723は、復調部722より供給されたデータを、オーディオデータ、ビデオデータ、およびEPGデータに分離し、それぞれ、オーディオデコーダ724、ビデオデコーダ725、またはレコーダ制御部726に出力する。
 オーディオデコーダ724は、入力されたオーディオデータを、例えばMPEG方式でデコードし、記録再生部733に出力する。ビデオデコーダ725は、入力されたビデオデータを、例えばMPEG方式でデコードし、ディスプレイコンバータ730に出力する。レコーダ制御部726は、入力されたEPGデータをEPGデータメモリ727に供給し、記憶させる。
 ディスプレイコンバータ730は、ビデオデコーダ725またはレコーダ制御部726より供給されたビデオデータを、ビデオエンコーダ741により、例えばNTSC(National Television Standards Committee)方式のビデオデータにエンコードし、記録再生部733に出力する。また、ディスプレイコンバータ730は、ビデオデコーダ725またはレコーダ制御部726より供給されるビデオデータの画面のサイズを、モニタ760のサイズに対応するサイズに変換する。ディスプレイコンバータ730は、画面のサイズが変換されたビデオデータを、さらに、ビデオエンコーダ741によってNTSC方式のビデオデータに変換し、アナログ信号に変換し、ディスプレイ制御部732に出力する。
 ディスプレイ制御部732は、レコーダ制御部726の制御のもと、OSD(On Screen Display)制御部731が出力したOSD信号を、ディスプレイコンバータ730より入力されたビデオ信号に重畳し、モニタ760のディスプレイに出力し、表示させる。
 モニタ760にはまた、オーディオデコーダ724が出力したオーディオデータが、D/Aコンバータ734によりアナログ信号に変換されて供給されている。モニタ760は、このオーディオ信号を内蔵するスピーカから出力する。
 記録再生部733は、ビデオデータやオーディオデータ等を記録する記憶媒体としてハードディスクを有する。
 記録再生部733は、例えば、オーディオデコーダ724より供給されるオーディオデータを、エンコーダ751によりMPEG方式でエンコードする。また、記録再生部733は、ディスプレイコンバータ730のビデオエンコーダ741より供給されるビデオデータを、エンコーダ751によりMPEG方式でエンコードする。記録再生部733は、そのオーディオデータの符号化データとビデオデータの符号化データとをマルチプレクサにより合成する。記録再生部733は、その合成データをチャネルコーディングして増幅し、そのデータを、記録ヘッドを介してハードディスクに書き込む。
 記録再生部733は、再生ヘッドを介してハードディスクに記録されているデータを再生し、増幅し、デマルチプレクサによりオーディオデータとビデオデータに分離する。記録再生部733は、デコーダ752によりオーディオデータおよびビデオデータをMPEG方式でデコードする。記録再生部733は、復号したオーディオデータをD/A変換し、モニタ760のスピーカに出力する。また、記録再生部733は、復号したビデオデータをD/A変換し、モニタ760のディスプレイに出力する。
 レコーダ制御部726は、受信部721を介して受信されるリモートコントローラからの赤外線信号により示されるユーザ指示に基づいて、EPGデータメモリ727から最新のEPGデータを読み出し、それをOSD制御部731に供給する。OSD制御部731は、入力されたEPGデータに対応する画像データを発生し、ディスプレイ制御部732に出力する。ディスプレイ制御部732は、OSD制御部731より入力されたビデオデータをモニタ760のディスプレイに出力し、表示させる。これにより、モニタ760のディスプレイには、EPG(電子番組ガイド)が表示される。
 また、ハードディスクレコーダ700は、インターネット等のネットワークを介して他の装置から供給されるビデオデータ、オーディオデータ、またはEPGデータ等の各種データを取得することができる。
 通信部735は、レコーダ制御部726に制御され、ネットワークを介して他の装置から送信されるビデオデータ、オーディオデータ、およびEPGデータ等の符号化データを取得し、それをレコーダ制御部726に供給する。レコーダ制御部726は、例えば、取得したビデオデータやオーディオデータの符号化データを記録再生部733に供給し、ハードディスクに記憶させる。このとき、レコーダ制御部726および記録再生部733が、必要に応じて再エンコード等の処理を行うようにしてもよい。
 また、レコーダ制御部726は、取得したビデオデータやオーディオデータの符号化データを復号し、得られるビデオデータをディスプレイコンバータ730に供給する。ディスプレイコンバータ730は、ビデオデコーダ725から供給されるビデオデータと同様に、レコーダ制御部726から供給されるビデオデータを処理し、ディスプレイ制御部732を介してモニタ760に供給し、その画像を表示させる。
 また、この画像表示に合わせて、レコーダ制御部726が、復号したオーディオデータを、D/Aコンバータ734を介してモニタ760に供給し、その音声をスピーカから出力させるようにしてもよい。
 さらに、レコーダ制御部726は、取得したEPGデータの符号化データを復号し、復号したEPGデータをEPGデータメモリ727に供給する。
 以上のようなハードディスクレコーダ700は、ビデオデコーダ725、デコーダ752、およびレコーダ制御部726に内蔵されるデコーダとして復号装置100を用いる。したがって、ビデオデコーダ725、デコーダ752、およびレコーダ制御部726に内蔵されるデコーダは、復号装置100の場合と同様に、インター予測の精度の悪化を抑制しつつ、メモリ帯域の使用量および処理量を削減することができる。
 また、ハードディスクレコーダ700は、エンコーダ751として符号化装置10を用いる。したがって、エンコーダ751は、符号化装置10の場合と同様に、インター予測の精度の悪化を抑制しつつ、メモリ帯域の使用量および処理量を削減することができる。
 なお、以上においては、ビデオデータやオーディオデータをハードディスクに記録するハードディスクレコーダ700について説明したが、もちろん、記録媒体はどのようなものであってもよい。例えばフラッシュメモリ、光ディスク、またはビデオテープ等、ハードディスク以外の記録媒体を適用するレコーダであっても、上述したハードディスクレコーダ700の場合と同様に、符号化装置10および復号装置100を適用することができる。
 <カメラの構成例>
 図105は、本技術を適用した符号化装置および復号装置を用いるカメラの主な構成例を示すブロック図である。
 図105に示されるカメラ800は、被写体を撮像し、被写体の画像をLCD816に表示させたり、それを画像データとして、記録メディア833に記録したりする。
 レンズブロック811は、光(すなわち、被写体の映像)を、CCD/CMOS812に入射させる。CCD/CMOS812は、CCDまたはCMOSを用いたイメージセンサであり、受光した光の強度を電気信号に変換し、カメラ信号処理部813に供給する。
 カメラ信号処理部813は、CCD/CMOS812から供給された電気信号を、Y,Cr,Cbの色差信号に変換し、画像信号処理部814に供給する。画像信号処理部814は、コントローラ821の制御の下、カメラ信号処理部813から供給された画像信号に対して所定の画像処理を施したり、その画像信号をエンコーダ841で例えばMPEG方式により符号化したりする。画像信号処理部814は、画像信号を符号化して生成した符号化データを、デコーダ815に供給する。さらに、画像信号処理部814は、オンスクリーンディスプレイ(OSD)820において生成された表示用データを取得し、それをデコーダ815に供給する。
 以上の処理において、カメラ信号処理部813は、バス817を介して接続されるDRAM(Dynamic Random Access Memory)818を適宜利用し、必要に応じて画像データや、その画像データが符号化された符号化データ等をそのDRAM818に保持させる。
 デコーダ815は、画像信号処理部814から供給された符号化データを復号し、得られた画像データ(復号画像データ)をLCD816に供給する。また、デコーダ815は、画像信号処理部814から供給された表示用データをLCD816に供給する。LCD816は、デコーダ815から供給された復号画像データの画像と表示用データの画像を適宜合成し、その合成画像を表示する。
 オンスクリーンディスプレイ820は、コントローラ821の制御の下、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを、バス817を介して画像信号処理部814に出力する。
 コントローラ821は、ユーザが操作部822を用いて指令した内容を示す信号に基づいて、各種処理を実行するとともに、バス817を介して、画像信号処理部814、DRAM818、外部インタフェース819、オンスクリーンディスプレイ820、およびメディアドライブ823等を制御する。FLASH ROM824には、コントローラ821が各種処理を実行する上で必要なプログラムやデータ等が格納される。
 例えば、コントローラ821は、画像信号処理部814やデコーダ815に代わって、DRAM818に記憶されている画像データを符号化したり、DRAM818に記憶されている符号化データを復号したりすることができる。このとき、コントローラ821は、画像信号処理部814やデコーダ815の符号化・復号方式と同様の方式によって符号化・復号処理を行うようにしてもよいし、画像信号処理部814やデコーダ815が対応していない方式により符号化・復号処理を行うようにしてもよい。
 また、例えば、操作部822から画像印刷の開始が指示された場合、コントローラ821は、DRAM818から画像データを読み出し、それを、バス817を介して外部インタフェース819に接続されるプリンタ834に供給して印刷させる。
 さらに、例えば、操作部822から画像記録が指示された場合、コントローラ821は、DRAM818から符号化データを読み出し、それを、バス817を介してメディアドライブ823に装着される記録メディア833に供給して記憶させる。
 記録メディア833は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアである。記録メディア833は、もちろん、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であっても良い。
 また、メディアドライブ823と記録メディア833を一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
 外部インタフェース819は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタ834と接続される。また、外部インタフェース819には、必要に応じてドライブ831が接続され、磁気ディスク、光ディスク、あるいは光磁気ディスクなどのリムーバブルメディア832が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、FLASH ROM824にインストールされる。
 さらに、外部インタフェース819は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。コントローラ821は、例えば、操作部822からの指示に従って、DRAM818から符号化データを読み出し、それを外部インタフェース819から、ネットワークを介して接続される他の装置に供給させることができる。また、コントローラ821は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース819を介して取得し、それをDRAM818に保持させたり、画像信号処理部814に供給したりすることができる。
 以上のようなカメラ800は、デコーダ815として復号装置100用いる。したがって、デコーダ815は、復号装置100の場合と同様に、インター予測の精度の悪化を抑制しつつ、メモリ帯域の使用量および処理量を削減することができる。
 また、カメラ800は、エンコーダ841として符号化装置10を用いる。したがって、エンコーダ841は、符号化装置10の場合と同様に、インター予測の精度の悪化を抑制しつつ、メモリ帯域の使用量および処理量を削減することができる。
 なお、コントローラ821が行う復号処理に復号装置100の復号方法を適用するようにしてもよい。同様に、コントローラ821が行う符号化処理に符号化装置10の符号化方法を適用するようにしてもよい。
 また、カメラ800が撮像する画像データは動画像であってもよいし、静止画像であってもよい。
 もちろん、符号化装置10および復号装置100は、上述した装置以外の装置やシステムにも適用可能である。
 本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 なお、本技術は、以下のような構成もとることができる。
 (1)
 インター予測における参照画像から所定の画素を読み出す画素読出部と、
 前記画素読出部により読み出された前記所定の画素を用いて、前記参照画像の分数位置の画素を前記インター予測における予測画像の画素として演算する演算部と
 を備え、
 前記画素読出部は、前記予測画像の外側の画素に対応する前記所定の画素の数が、前記予測画像の内側の画素に対応する前記所定の画素の数より少なくなるように、前記所定の画素を読み出す
 画像処理装置。
 (2)
 前記外側の画素の前記参照画像上の位置は、前記予測画像の各画素の演算に用いられる全ての前記所定の画素からなるブロックである参照ブロックのうちの前記予測画像のサイズの範囲外の位置である
 前記(1)に記載の画像処理装置。
 (3)
 前記画素読出部は、前記外側の画素に対応する前記所定の画素のうち、前記参照ブロックのうちの前記予測画像のサイズの範囲外に位置する画素と、前記内側の画素に対応する前記所定の画素のうち、前記参照ブロックのうちの前記予測画像のサイズの範囲外に位置する画素とが同一になるように、前記所定の画素を読み出す
 前記(2)に記載の画像処理装置。
 (4)
 前記外側の画素の前記参照画像上の位置は、前記予測画像の各画素の演算に用いられる全ての前記所定の画素からなるブロックである参照ブロックのうちの前記予測画像のサイズの範囲と前記予測画像のサイズの範囲外の境界の位置である
 前記(1)に記載の画像処理装置。
 (5)
 前記画素読出部は、前記予測画像の最も外側の画素に対応する前記所定の画素の数が2となるように、前記所定の画素を読み出す
 前記(1)乃至(4)のいずれかに記載の画像処理装置。
 (6)
 前記画素読出部は、前記予測画像の最も外側の画素に対応する前記所定の画素の数が2となり、その外側の画素より内側の画素に対応する前記所定の画素の数が4となり、その内側の画素より内側の前記予測画像の最も内側の画素を含む画素に対応する前記所定の画素の数が6となるように、前記所定の画素を読み出す
 前記(1)乃至(5)のいずれかに記載の画像処理装置。
 (7)
 前記予測画像の外側の画素に対応する係数である外側係数と、前記予測画像の内側の画素に対応する係数である内側係数を記憶する記憶部
 をさらに備え、
 前記演算部は、前記画素読出部により読み出された前記所定の画素が前記予測画像の外側の画素に対応するものである場合、その所定の画素と前記外側係数を用いて演算を行い、前記画素読出部により読み出された前記所定の画素が前記予測画像の内側の画素に対応するものである場合、その所定の画素と前記内側係数を用いて演算を行う
 前記(1)乃至(6)のいずれかに記載の画像処理装置。
 (8)
 前記画素読出部により読み出された前記所定の画素の数が所定数より小さい場合、その所定の画素のうちの外側の画素を、前記所定の画素の数と前記所定数の差分だけ複製し、複製された画素と前記所定の画素からなる前記所定数の画素を生成する画素生成部
 をさらに備え、
 前記演算部は、前記画素生成部により生成された前記所定数の画素を用いて前記予測画像の画素を演算する
 前記(1)乃至(4)のいずれかに記載の画像処理装置。
 (9)
 前記画素読出部は、前記予測画像の最も外側の画素に対応する前記所定の画素の数が4となり、その外側の画素より内側の画素に対応する前記所定の画素の数が5となり、その内側の画素より内側の前記予測画像の最も内側の画素を含む画素に対応する前記所定の画素の数が6となるように、前記所定の画素を読み出し、
 前記所定数は6である
 前記(8)に記載の画像処理装置。
 (10)
 前記画素読出部は、前記予測画像の各画素の前記参照画像上の水平方向および垂直方向のいずれか一方の位置のみが分数位置である場合、両方の位置が分数位置である場合に比べて、前記予測画像の外側の画素に対応する前記所定の画素の数が多くなるように、前記所定の画素を読み出す
 前記(1)乃至(4)および(8)のいずれかに記載の画像処理装置。
 (11)
 前記画素読出部は、前記予測画像のサイズが所定のサイズより大きい場合、前記所定のサイズ以下である場合に比べて、前記予測画像の外側の画素に対応する前記所定の画素の数が多くなるように、前記所定の画素を読み出す
 前記(1)乃至(4)、(8)、および(10)のいずれかに記載の画像処理装置。
 (12)
 前記画素読出部は、前記インター予測における予測方向が片方向の予測である場合、両方向の予測である場合に比べて、前記予測画像の外側の画素に対応する前記所定の画素の数が多くなるように、前記所定の画素を読み出す
 前記(1)乃至(4)、(8)、(10)、および(11)のいずれかに記載の画像処理装置。
 (13)
 前記画素読出部は、前記予測画像の外側の画素に対応する、その予測画素より外側の前記所定の画素の数が、前記予測画像の内側の画素に対応する、その予測画素より外側の前記所定の画素の数より少なくなるように、前記所定の画素を読み出す
 前記(1)に記載の画像処理装置。
 (14)
 前記画素読出部により読み出された前記所定の画素の数が所定数より小さい場合、その所定の画素のうちの外側の画素を、前記所定の画素の数と前記所定数の差分だけ複製し、複製された画素と前記所定の画素からなる前記所定数の画素を生成する画素生成部
 をさらに備え、
 前記演算部は、前記画素生成部により生成された前記所定数の画素を用いて前記予測画像の画素を演算する
 前記(13)に記載の画像処理装置。
 (15)
 前記画素読出部は、前記予測画像の外側の画素に対応する前記所定の画素の数が、前記予測画像の内側の画素に対応する前記所定の画素の数より少なくなり、かつ、水平方向および垂直方向のいずれか一方に並ぶ前記所定の画素の数が、他方に並ぶ前記所定の画素の数より少なくなるように、前記所定の画素を読み出す
 前記(1)乃至(4)、(8)、または(10)乃至(14)のいずれかに記載の画像処理装置。
 (16)
 前記予測画像と符号化対象の画像の差分を演算する差分演算部
 をさらに備える
 前記(1)乃至(15)のいずれかに記載の画像処理装置。
 (17)
 前記予測画像と復号対象の画像を加算する加算演算部
 をさらに備える
 前記(1)乃至(16)のいずれかに記載の画像処理装置。
 (18)
 画像処理装置が、
 インター予測における参照画像から所定の画素を読み出す画素読出ステップと、
 前記画素読出ステップの処理により読み出された前記所定の画素を用いて、前記参照画像の分数位置の画素を前記インター予測における予測画像の画素として演算する演算ステップと
 を含み、
 前記画素読出ステップの処理では、前記予測画像の外側の画素に対応する前記所定の画素の数が、前記予測画像の内側の画素に対応する前記所定の画素の数より少なくなるように、前記所定の画素を読み出す
 画像処理方法。
 (19)
 コンピュータに、
 インター予測における参照画像から所定の画素を読み出す画素読出ステップと、
 前記画素読出ステップの処理により読み出された前記所定の画素を用いて、前記参照画像の分数位置の画素を前記インター予測における予測画像の画素として演算する演算ステップと
 を含み、
 前記画素読出ステップの処理では、前記予測画像の外側の画素に対応する前記所定の画素の数が、前記予測画像の内側の画素に対応する前記所定の画素の数より少なくなるように、前記所定の画素を読み出す
 処理を実行させるためのプログラム。
 10 符号化装置, 13 演算部, 20 加算部, 24 インター予測部, 41 参照画像読出部, 43 2タップFIRフィルタ, 44 4タップFIRフィルタ, 45 6タップFIRフィルタ, 46 2タップフィルタ係数メモリ, 47 4タップフィルタ係数メモリ, 48 6タップフィルタ係数メモリ, 100 復号装置, 105 加算部, 111 インター予測部, 160 参照画像読出部, 161 画素生成部, 180,200,210,220,251,271 参照画像読出部, 272 画像生成部, 291 参照画像読出部, 292 画素出力部, 293 8タップFIRフィルタ, 294 4タップFIRフィルタ, 295 8タップフィルタ係数メモリ, 296 4タップフィルタ係数メモリ

Claims (19)

  1.  インター予測における参照画像から所定の画素を読み出す画素読出部と、
     前記画素読出部により読み出された前記所定の画素を用いて、前記参照画像の分数位置の画素を前記インター予測における予測画像の画素として演算する演算部と
     を備え、
     前記画素読出部は、前記予測画像の外側の画素に対応する前記所定の画素の数が、前記予測画像の内側の画素に対応する前記所定の画素の数より少なくなるように、前記所定の画素を読み出す
     画像処理装置。
  2.  前記外側の画素の前記参照画像上の位置は、前記予測画像の各画素の演算に用いられる全ての前記所定の画素からなるブロックである参照ブロックのうちの前記予測画像のサイズの範囲外の位置である
     請求項1に記載の画像処理装置。
  3.  前記画素読出部は、前記外側の画素に対応する前記所定の画素のうち、前記参照ブロックのうちの前記予測画像のサイズの範囲外に位置する画素と、前記内側の画素に対応する前記所定の画素のうち、前記参照ブロックのうちの前記予測画像のサイズの範囲外に位置する画素とが同一になるように、前記所定の画素を読み出す
     請求項2に記載の画像処理装置。
  4.  前記外側の画素の前記参照画像上の位置は、前記予測画像の各画素の演算に用いられる全ての前記所定の画素からなるブロックである参照ブロックのうちの前記予測画像のサイズの範囲と前記予測画像のサイズの範囲外の境界の位置である
     請求項1に記載の画像処理装置。
  5.  前記画素読出部は、前記予測画像の最も外側の画素に対応する前記所定の画素の数が2となるように、前記所定の画素を読み出す
     請求項1に記載の画像処理装置。
  6.  前記画素読出部は、前記予測画像の最も外側の画素に対応する前記所定の画素の数が2となり、その外側の画素より内側の画素に対応する前記所定の画素の数が4となり、その内側の画素より内側の前記予測画像の最も内側の画素を含む画素に対応する前記所定の画素の数が6となるように、前記所定の画素を読み出す
     請求項1に記載の画像処理装置。
  7.  前記予測画像の外側の画素に対応する係数である外側係数と、前記予測画像の内側の画素に対応する係数である内側係数を記憶する記憶部
     をさらに備え、
     前記演算部は、前記画素読出部により読み出された前記所定の画素が前記予測画像の外側の画素に対応するものである場合、その所定の画素と前記外側係数を用いて演算を行い、前記画素読出部により読み出された前記所定の画素が前記予測画像の内側の画素に対応するものである場合、その所定の画素と前記内側係数を用いて演算を行う
     請求項1に記載の画像処理装置。
  8.  前記画素読出部により読み出された前記所定の画素の数が所定数より小さい場合、その所定の画素のうちの外側の画素を、前記所定の画素の数と前記所定数の差分だけ複製し、複製された画素と前記所定の画素からなる前記所定数の画素を生成する画素生成部
     をさらに備え、
     前記演算部は、前記画素生成部により生成された前記所定数の画素を用いて前記予測画像の画素を演算する
     請求項1に記載の画像処理装置。
  9.  前記画素読出部は、前記予測画像の最も外側の画素に対応する前記所定の画素の数が4となり、その外側の画素より内側の画素に対応する前記所定の画素の数が5となり、その内側の画素より内側の前記予測画像の最も内側の画素を含む画素に対応する前記所定の画素の数が6となるように、前記所定の画素を読み出し、
     前記所定数は6である
     請求項8に記載の画像処理装置。
  10.  前記画素読出部は、前記予測画像の各画素の前記参照画像上の水平方向および垂直方向のいずれか一方の位置のみが分数位置である場合、両方の位置が分数位置である場合に比べて、前記予測画像の外側の画素に対応する前記所定の画素の数が多くなるように、前記所定の画素を読み出す
     請求項1に記載の画像処理装置。
  11.  前記画素読出部は、前記予測画像のサイズが所定のサイズより大きい場合、前記所定のサイズ以下である場合に比べて、前記予測画像の外側の画素に対応する前記所定の画素の数が多くなるように、前記所定の画素を読み出す
     請求項1に記載の画像処理装置。
  12.  前記画素読出部は、前記インター予測における予測方向が片方向の予測である場合、両方向の予測である場合に比べて、前記予測画像の外側の画素に対応する前記所定の画素の数が多くなるように、前記所定の画素を読み出す
     請求項1に記載の画像処理装置。
  13.  前記画素読出部は、前記予測画像の外側の画素に対応する、その予測画素より外側の前記所定の画素の数が、前記予測画像の内側の画素に対応する、その予測画素より外側の前記所定の画素の数より少なくなるように、前記所定の画素を読み出す
     請求項1に記載の画像処理装置。
  14.  前記画素読出部により読み出された前記所定の画素の数が所定数より小さい場合、その所定の画素のうちの外側の画素を、前記所定の画素の数と前記所定数の差分だけ複製し、複製された画素と前記所定の画素からなる前記所定数の画素を生成する画素生成部
     をさらに備え、
     前記演算部は、前記画素生成部により生成された前記所定数の画素を用いて前記予測画像の画素を演算する
     請求項13に記載の画像処理装置。
  15.  前記画素読出部は、前記予測画像の外側の画素に対応する前記所定の画素の数が、前記予測画像の内側の画素に対応する前記所定の画素の数より少なくなり、かつ、水平方向および垂直方向のいずれか一方に並ぶ前記所定の画素の数が、他方に並ぶ前記所定の画素の数より少なくなるように、前記所定の画素を読み出す
     請求項1に記載の画像処理装置。
  16.  前記予測画像と符号化対象の画像の差分を演算する差分演算部
     をさらに備える
     請求項1に記載の画像処理装置。
  17.  前記予測画像と復号対象の画像を加算する加算演算部
     をさらに備える
     請求項1に記載の画像処理装置。
  18.  画像処理装置が、
     インター予測における参照画像から所定の画素を読み出す画素読出ステップと、
     前記画素読出ステップの処理により読み出された前記所定の画素を用いて、前記参照画像の分数位置の画素を前記インター予測における予測画像の画素として演算する演算ステップと
     を含み、
     前記画素読出ステップの処理では、前記予測画像の外側の画素に対応する前記所定の画素の数が、前記予測画像の内側の画素に対応する前記所定の画素の数より少なくなるように、前記所定の画素を読み出す
     画像処理方法。
  19.  コンピュータに、
     インター予測における参照画像から所定の画素を読み出す画素読出ステップと、
     前記画素読出ステップの処理により読み出された前記所定の画素を用いて、前記参照画像の分数位置の画素を前記インター予測における予測画像の画素として演算する演算ステップと
     を含み、
     前記画素読出ステップの処理では、前記予測画像の外側の画素に対応する前記所定の画素の数が、前記予測画像の内側の画素に対応する前記所定の画素の数より少なくなるように、前記所定の画素を読み出す
     処理を実行させるためのプログラム。
PCT/JP2011/078235 2010-12-08 2011-12-07 画像処理装置、画像処理方法、およびプログラム WO2012077695A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR20137014025A KR20140029363A (ko) 2010-12-08 2011-12-07 화상 처리 장치, 화상 처리 방법 및 프로그램
US13/881,595 US20130216150A1 (en) 2010-12-08 2011-12-07 Image processing device, image processing method, and program
CN2011800578887A CN103238330A (zh) 2010-12-08 2011-12-07 图像处理装置、图像处理方法和程序
EP11846167.2A EP2651135A1 (en) 2010-12-08 2011-12-07 Image processing device, image processing method, and program

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP2010-273220 2010-12-08
JP2010273220 2010-12-08
JP2011009562 2011-01-20
JP2011-009562 2011-01-20
JP2011054557 2011-03-11
JP2011-054557 2011-03-11
JP2011-145752 2011-06-30
JP2011145752A JP2012209914A (ja) 2010-12-08 2011-06-30 画像処理装置、画像処理方法、およびプログラム

Publications (1)

Publication Number Publication Date
WO2012077695A1 true WO2012077695A1 (ja) 2012-06-14

Family

ID=46207182

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/078235 WO2012077695A1 (ja) 2010-12-08 2011-12-07 画像処理装置、画像処理方法、およびプログラム

Country Status (8)

Country Link
US (1) US20130216150A1 (ja)
EP (1) EP2651135A1 (ja)
JP (1) JP2012209914A (ja)
KR (1) KR20140029363A (ja)
CN (1) CN103238330A (ja)
AR (1) AR084409A1 (ja)
TW (1) TW201233191A (ja)
WO (1) WO2012077695A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2980068A1 (fr) * 2011-09-13 2013-03-15 Thomson Licensing Procede de codage et de reconstruction d'un bloc de pixels et dispositifs correspondants
JP2014138242A (ja) * 2013-01-16 2014-07-28 Sony Corp 画像処理装置および画像処理方法
US10891756B2 (en) * 2016-11-07 2021-01-12 Sony Corporation Image processing device, chart for calibration, and calibration system
WO2018131986A1 (ko) * 2017-01-16 2018-07-19 세종대학교 산학협력단 영상의 부호화/복호화 방법 및 장치
US10455253B1 (en) * 2017-02-28 2019-10-22 Google Llc Single direction long interpolation filter
US11212553B2 (en) * 2017-11-28 2021-12-28 Electronics And Telecommunications Research Institute Bidirectional intra prediction method and apparatus
CN111527752B (zh) * 2017-12-28 2024-04-12 韩国电子通信研究院 图像编码和解码的方法和装置以及存储比特流的记录介质
CN110933423B (zh) * 2018-09-20 2022-03-25 杭州海康威视数字技术股份有限公司 帧间预测方法和设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11346368A (ja) * 1998-04-03 1999-12-14 Matsushita Electric Ind Co Ltd 画像処理方法,画像処理装置,及びデ―タ記憶媒体
JP2001521343A (ja) * 1997-10-21 2001-11-06 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング 動画像列の動き補償予測方法
JP2004007337A (ja) * 2002-04-25 2004-01-08 Sony Corp 画像処理装置およびその方法
JP2007129370A (ja) * 2005-11-01 2007-05-24 Matsushita Electric Ind Co Ltd 動きベクトル検出装置及び方法
WO2009126924A1 (en) * 2008-04-10 2009-10-15 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69131257T2 (de) * 1990-10-31 1999-09-23 Victor Company Of Japan Verfahren zur Kompression von bewegten Bildsignalen nach dem Zeilensprungverfahren
US6259734B1 (en) * 1998-04-03 2001-07-10 Matsushita Electric Industrial Co., Ltd. Image processing method, image processing apparatus, and data storage media
US7630566B2 (en) * 2001-09-25 2009-12-08 Broadcom Corporation Method and apparatus for improved estimation and compensation in digital video compression and decompression
US8155459B2 (en) * 2003-05-19 2012-04-10 Trident Microsystems (Far East) Ltd. Video processing device with low memory bandwidth requirements
US7953152B1 (en) * 2004-06-28 2011-05-31 Google Inc. Video compression and encoding method
JP2006333436A (ja) * 2005-01-07 2006-12-07 Ntt Docomo Inc 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、及び、動画像復号プログラム
US8831086B2 (en) * 2008-04-10 2014-09-09 Qualcomm Incorporated Prediction techniques for interpolation in video coding
WO2010143583A1 (ja) * 2009-06-09 2010-12-16 ソニー株式会社 画像処理装置および方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001521343A (ja) * 1997-10-21 2001-11-06 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング 動画像列の動き補償予測方法
JPH11346368A (ja) * 1998-04-03 1999-12-14 Matsushita Electric Ind Co Ltd 画像処理方法,画像処理装置,及びデ―タ記憶媒体
JP2004007337A (ja) * 2002-04-25 2004-01-08 Sony Corp 画像処理装置およびその方法
JP2007129370A (ja) * 2005-11-01 2007-05-24 Matsushita Electric Ind Co Ltd 動きベクトル検出装置及び方法
WO2009126924A1 (en) * 2008-04-10 2009-10-15 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DMYTRO RUSANOVSKYY; KEMAL UGUR; ANTTI HALLAPURO; JANI LAINEMA; MONCEF GABBOUJ: "Video Coding With Low-Complexity Directional Adaptive Interpolation Filters", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, vol. 19, no. 8, August 2009 (2009-08-01)

Also Published As

Publication number Publication date
CN103238330A (zh) 2013-08-07
US20130216150A1 (en) 2013-08-22
TW201233191A (en) 2012-08-01
JP2012209914A (ja) 2012-10-25
KR20140029363A (ko) 2014-03-10
AR084409A1 (es) 2013-05-15
EP2651135A1 (en) 2013-10-16

Similar Documents

Publication Publication Date Title
US10855984B2 (en) Image processing apparatus and method
KR101696950B1 (ko) 화상 처리 장치 및 방법
WO2012077695A1 (ja) 画像処理装置、画像処理方法、およびプログラム
JP5234368B2 (ja) 画像処理装置および方法
JP5581688B2 (ja) 画像処理装置および方法、並びにプログラム
WO2011078002A1 (ja) 画像処理装置および方法、並びにプログラム
WO2011024685A1 (ja) 画像処理装置および方法
JP5556996B2 (ja) 画像処理装置および方法
WO2011089973A1 (ja) 画像処理装置および方法
WO2011152315A1 (ja) 画像処理装置および方法
WO2011086963A1 (ja) 画像処理装置および方法
JPWO2010064675A1 (ja) 画像処理装置および画像処理方法、並びにプログラム
WO2010064674A1 (ja) 画像処理装置および画像処理方法、並びにプログラム
WO2011078001A1 (ja) 画像処理装置および方法、並びにプログラム
JP2013098899A (ja) 符号化装置および符号化方法、並びに、復号装置および復号方法
JP2011151431A (ja) 画像処理装置および方法
EP2334081A1 (en) Image processing device and method
WO2012077532A1 (ja) 画像処理装置、画像処理方法、およびプログラム
JP5733587B2 (ja) 画像処理装置および方法、プログラム、並びに記録媒体
WO2011125625A1 (ja) 画像処理装置および方法
WO2013065571A1 (ja) 画像処理装置および画像処理方法

Legal Events

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

Ref document number: 11846167

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13881595

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2011846167

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20137014025

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE