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

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

Info

Publication number
WO2011078002A1
WO2011078002A1 PCT/JP2010/072434 JP2010072434W WO2011078002A1 WO 2011078002 A1 WO2011078002 A1 WO 2011078002A1 JP 2010072434 W JP2010072434 W JP 2010072434W WO 2011078002 A1 WO2011078002 A1 WO 2011078002A1
Authority
WO
WIPO (PCT)
Prior art keywords
filter coefficient
image
filter
prediction
unit
Prior art date
Application number
PCT/JP2010/072434
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 JP2011547484A priority Critical patent/JPWO2011078002A1/ja
Priority to US13/514,354 priority patent/US20120243611A1/en
Priority to CN2010800583541A priority patent/CN102714731A/zh
Publication of WO2011078002A1 publication Critical patent/WO2011078002A1/ja

Links

Images

Classifications

    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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

Definitions

  • the present invention relates to an image processing apparatus and method, and more particularly to an image processing apparatus and method capable of suppressing loss of high-frequency components and obtaining a clear image quality.
  • H. H.264 and MPEG-4 Part 10 Advanced Video Coding, hereinafter referred to as H.264 / AVC.
  • inter prediction that focuses on the correlation between frames or fields is performed.
  • a prediction image by inter prediction (hereinafter, referred to as an inter prediction image) is generated using a part of an already stored referenceable image.
  • a part of the inter prediction image of the frame to be inter predicted (original frame) is It is configured with reference to a part of an image of any one reference frame (hereinafter referred to as a reference image). Note that the position of a part of the reference image that is a part of the inter predicted image is determined by a motion vector detected based on the reference frame and the original frame image.
  • the upper left direction opposite to the lower right direction is changed.
  • a motion vector to represent is detected.
  • the part 12 of the face 11 that is not hidden in the original frame is configured with reference to the part 13 of the face 11 in the reference frame at a position where the part 12 is moved by the motion represented by the motion vector. .
  • H.264 / AVC it is considered to improve the resolution of the motion vector to a fractional accuracy such as a half or a quarter in the motion compensation process.
  • a virtual fractional position pixel called Sub ⁇ pel is set between adjacent pixels, and the Sub ⁇ ⁇ pel is generated (hereinafter referred to as interpolation). It is done in addition. That is, in the motion compensation process with fractional accuracy, the minimum resolution of the motion vector is the pixel at the fractional position, and therefore interpolation is performed to generate the pixel at the fractional position.
  • FIG. 3 shows each pixel of the image in which the number of pixels in the vertical direction and the horizontal direction is increased four times by interpolation.
  • the white square represents a pixel at an integer position (Integer (pel (Int. Pel)), and the hatched square represents a pixel at a fractional position (Sub pel).
  • the alphabet in a square represents the pixel value of the pixel which the square represents.
  • the pixel values b, h, j, a, d, f, and r of the pixels at the fractional positions generated by the interpolation are expressed by the following expression (1).
  • pixel values aa, bb, s, gg, and hh are the same as b, cc, dd, m, ee, and ff are the same as h, c is the same as a, and f, n, and q are the same as d.
  • e, p, and g can be obtained in the same manner as r.
  • Equation (1) is an equation adopted in the interpolation such as H.264 / AVC, and this equation differs depending on the standard, but the purpose of the equation is the same.
  • This expression can be realized by a finite impulse response (FIR (Finit-duration Impulse Response)) filter having an even number of taps.
  • FIR Finit-duration Impulse Response
  • a 6-tap interpolation filter is used.
  • bi-directional prediction can be used as shown in FIG.
  • pictures are shown in the display order, and encoded reference pictures are arranged before and after the display order of the encoding target pictures.
  • the picture to be encoded is a B picture, for example, as shown in the target prediction block of the picture to be encoded, two blocks of the preceding and following (bidirectional) reference pictures are referenced, and the motion vector of the L0 prediction in the forward direction And a backward L1 prediction motion vector.
  • L0 has a display time earlier than that of the target prediction block
  • L1 has a display time later than that of the target prediction block.
  • FIG. 5 is a diagram showing the relationship between the coding mode, the reference picture, and the motion vector.
  • a reference picture indicates whether the coding mode is used as a reference picture or not
  • a motion vector indicates whether the coding mode has motion vector information or not. .
  • Intra-screen coding mode is a mode that predicts within the screen (ie, intra), does not use an L0 reference picture or an L1 reference picture, and has no motion vector for L0 prediction and no motion vector information for L1 prediction. It is.
  • the L0 prediction mode is a coding mode that performs prediction using only the L0 reference picture and has motion vector information of L0 prediction.
  • the L1 prediction mode is a coding mode in which prediction is performed using only the L1 reference picture and motion vector information for L1 prediction is included.
  • the bi-prediction mode is a coding mode in which prediction is performed using L0 and L1 reference pictures and motion vector information of L0 and L1 predictions is included.
  • the direct mode is a coding mode in which prediction is performed using L0 and L1 reference pictures, but no motion vector information is provided. That is, the direct mode is a coding mode that has no motion vector information but uses the motion vector information of the current target prediction block by predicting it from the motion vector information of the coded block in the reference picture. Note that the direct mode may have only one of the L0 and L1 reference pictures.
  • both the L0 and L1 reference pictures may be used in the bi-prediction mode and the direct mode.
  • a prediction signal in bi-prediction mode or direct mode can be obtained by weighted prediction shown in the following equation (2).
  • Y Bi-Pred W 0 Y 0 + W 1 Y 1 + D (2)
  • Y Bi-Pred is a weighted interpolation signal with offset in bi-prediction mode or direct mode
  • W 0 and W 1 are weight coefficients to L0 and L1, respectively
  • Y 0 and Y 1 are It is a motion compensation prediction signal of L0 and L1.
  • W 0 , W 1 , and D are explicitly included in the bit stream information or implicitly obtained by calculation on the decoding side.
  • the coding degradation of the reference picture is uncorrelated between the two reference pictures L0 and L1
  • the coding degradation is suppressed by this weighted prediction.
  • the residual signal which is the difference between the prediction signal and the input signal is reduced, the bit amount of the residual signal is reduced, and the coding efficiency is improved.
  • Non-Patent Documents 1 to 3 mention an adaptive interpolation filter (AIF) as a recent research report.
  • AIF adaptive interpolation filter
  • the filter coefficients of an FIR filter with an even number of taps used in interpolation are adaptively changed to reduce the effects of aliasing and coding distortion, and to reduce motion compensation errors. Can be small.
  • the AIF has some variations due to the difference in the filter structure.
  • a separate adaptive interpolation filter (hereinafter referred to as a separate AIF) described in Non-Patent Document 2 will be described with reference to FIG. .
  • a hatched square represents a pixel at an integer position (Integer pel (Int. Pel)), and a white square represents a pixel at a fractional position (Sub pel).
  • the alphabet in a square represents the pixel value of the pixel which the square represents.
  • Separable AIF as a first step, interpolation of non-integer positions with respect to the horizontal direction is performed, and as a second step, interpolation of non-integer directions with respect to the vertical direction is performed. It is also possible to reverse the horizontal and vertical processing order.
  • the pixel values a, b, and c of the pixel at the fractional position are expressed by the following equation (3) from the pixel values E, F, G, H, I, and J of the pixel at the integer position by the FIR filter.
  • h [pos] [n] is a filter coefficient
  • pos indicates the position of the sub pel shown in FIG. 3
  • n indicates the number of the filter coefficient. This filter coefficient is included in the stream information and used on the decoding side.
  • the pixel values (a1, b1, c1, a2, b2, c2, a3, b3, c3, a4, b4, c4, a5, pixel values of the fractional positions in the row of pixel values G1, G2, G3, G4, G5, b5, c5) can be obtained in the same manner as the pixel values a, b, c.
  • pixel values d to o other than the pixel values a, b, and c, which are the second step, are calculated by the following equation (4).
  • one filter coefficient h [b] [3] for calculating the pixel value b is replaced by h [b] [2].
  • the total number of filter coefficients is 90.
  • the number of filter coefficients is reduced to 51. Become.
  • Non-Patent Document 3 uses the symmetry of filter coefficients to reduce the overhead. On the encoding side, it is checked which Sub pel filter coefficients are close to other Sub pels, and the close filter coefficients are aggregated into one. A symmetry descriptor indicating how the data is aggregated is included in the stream information and sent to the decoding side. On the decoding side, the symmetry descriptor can be received to know how the filter coefficients are aggregated.
  • the macroblock size is 16 ⁇ 16 pixels.
  • the macroblock size of 16 ⁇ 16 pixels is not optimal for a large image frame such as UHD (Ultra High Definition: 4000 ⁇ 2000 pixels) that is the target of the next-generation encoding method.
  • Non-Patent Document 4 it is also proposed to expand the macroblock size to a size of 32 ⁇ 32 pixels, for example.
  • weighted prediction using a plurality of reference pictures can reduce the coding deterioration of each reference picture, but there is a risk that high-frequency components may be lost.
  • the horizontal axis represents the position of the image
  • the vertical axis represents the luminance value at that position.
  • the diamond line is an input signal
  • the square line is a prediction signal based on the L0 reference picture
  • the triangle line is a prediction signal based on the L1 reference picture
  • the prediction signals of L0 and L1 are shifted to the left and right with respect to the change of the input signal in FIG. 7, and in the weighted prediction from these prediction signals of L0 and L1, the change becomes gentle with respect to the input signal. I understand that.
  • the weighted prediction signal which is the prediction signal in the bi-prediction mode and the direct mode
  • it causes blurring in the outline, which deteriorates the coding efficiency and makes a bad impression in terms of image quality. There is a fear.
  • Such misalignment is often more noticeable in direct mode than bi-prediction.
  • bi-prediction mode since the motion vector information is possessed, accurate alignment can be performed as compared with the direct mode.
  • direct mode motion vector information obtained by prediction from an encoded block is used. Therefore, since a prediction error from the encoded block is unavoidable, an error occurs in direct mode alignment.
  • the filter characteristics of the interpolation filter can be changed in units of slices, and the coding deterioration of the reference picture can be reduced. That is, it is possible to reduce coding deterioration by weakening the high frequency component of noise included in the reference picture by using the spatial LPF (Low Pass Filter) characteristic of the AIF. However, the high-frequency component of the image may be lost due to this LPF characteristic.
  • LPF Low Pass Filter
  • this fact may be further influenced by the fact that it is combined with the fact in the aforementioned weighted prediction. That is, the spatial high frequency component of the interpolation signal is lost by AIF, and the temporal high frequency component is lost by weighted prediction.
  • the combination of AIF technology and weighted prediction in bi-prediction mode or direct mode will unnecessarily lose high-frequency components, which may not improve coding efficiency and may result in loss of clarity in image quality. is there.
  • the optimal AIF spatial LPF characteristic when weighted prediction is not performed is excessive when weighted prediction is performed, and there is a risk of losing high-frequency components of the image.
  • the spatial LPF characteristic of AIF that is optimal when weighted prediction is performed is too small when weighted prediction is not performed, and there is a possibility that the coding deterioration of the reference picture is not sufficiently reduced.
  • the present invention has been made in view of such a situation, and can suppress the loss of high-frequency components and obtain a clear image quality.
  • An image processing apparatus includes an interpolation filter that interpolates pixels of a reference image corresponding to an encoded image with fractional accuracy, and weighted prediction using a plurality of different reference images in the encoded image.
  • Filter coefficient selection means for selecting a filter coefficient of the interpolation filter based on use or non-use, the reference image interpolated by the interpolation filter of the filter coefficient selected by the filter coefficient selection means, and the code Motion compensation means for generating a predicted image using a motion vector corresponding to the converted image.
  • the filter coefficient selection means can further select the filter coefficient of the interpolation filter based on whether or not the bi-prediction mode is used.
  • the filter coefficient selection unit can select the filter coefficients having different high-frequency component amplification levels based on whether or not the bi-prediction mode is selected.
  • the filter coefficient selection unit is further configured to perform the interpolation based on bi-prediction mode, direct mode, or skip mode.
  • the filter coefficient of the filter can be selected.
  • the interpolation filter can interpolate the pixels of the reference image with fractional accuracy using the filter coefficient and the offset value selected by the filter coefficient selection unit.
  • the image processing apparatus further comprises decoding means for decoding the encoded image, the motion vector, and the filter coefficient calculated at the time of encoding, wherein the filter coefficient selecting means includes a plurality of different reference images in the encoded image.
  • the filter coefficient decoded by the decoding means can be selected based on whether or not the weighted prediction by is used.
  • the filter coefficient includes a plurality of types of filter coefficients used when the weighted prediction is used and a plurality of types of filter coefficients used when the weighted prediction is not used, and the filter coefficient selection unit uses the weighted prediction.
  • the filter coefficient decoded by the decoding unit can be selected based on unused and information for specifying the type of the filter coefficient.
  • Motion prediction means for performing motion prediction between the encoding target image and the reference image interpolated by the interpolation filter of the filter coefficient selected by the filter coefficient selection means, and detecting the motion vector Can be provided.
  • the filter coefficient selection means can further select the filter coefficient of the interpolation filter based on whether or not the bi-prediction mode is used.
  • Filter coefficient calculation means for calculating a filter coefficient of the interpolation filter using the image to be encoded, the reference image, and the motion vector detected by the motion prediction means, and the filter coefficient selection means
  • the filter coefficient calculated by the filter coefficient calculation means can be selected based on the use or non-use of weighted prediction by a plurality of different reference images.
  • the filter coefficient selection means sets the filter coefficient calculated by the filter coefficient calculation means as a first selection candidate based on use or non-use of weighted prediction by a plurality of different reference images, and a predetermined filter.
  • the coefficient is a second selection candidate
  • the motion prediction means performs motion prediction between the encoding target image and the reference image interpolated by the interpolation filter of the first selection candidate, Detecting a motion vector for a first selection candidate, performing motion prediction between the image to be encoded and the reference image interpolated by the interpolation filter of the second selection candidate, A motion vector for the second selection candidate is detected, and the motion compensation means includes the reference image interpolated by the interpolation filter of the first selection candidate, A prediction image for the first selection candidate is generated using a motion vector for the selection candidate, and the reference image interpolated by the interpolation filter of the second selection candidate, and the second selection A prediction image for the second selection candidate is generated using a motion vector for a candidate, and the filter coefficient selection unit calculates a difference between the prediction image
  • the filter coefficient includes a plurality of types of filter coefficients used when the weighted prediction is used and a plurality of types of filter coefficients used when the weighted prediction is not used, and the filter coefficient selection unit uses the weighted prediction.
  • the filter coefficient can be selected based on unused and a cost function value corresponding to each type of filter coefficient.
  • An image processing method is an image processing method of an image processing apparatus including an interpolation filter that interpolates pixels of a reference image corresponding to an encoded image with fractional accuracy.
  • the reference image interpolated by the interpolation filter of the selected filter coefficient is selected based on the use or non-use of weighted prediction by the plurality of different reference images in the converted image And generating a predicted image using a motion vector corresponding to the encoded image.
  • the image processing apparatus further includes a step of performing motion prediction between the image to be encoded and the reference image interpolated by the interpolation filter of the selected filter coefficient to detect the motion vector. Can do.
  • a program provides a computer of an image processing apparatus including an interpolation filter that interpolates pixels of a reference image corresponding to an encoded image with fractional accuracy, and a plurality of different references in the encoded image.
  • Filter coefficient selection means for selecting a filter coefficient of the interpolation filter based on use or non-use of weighted prediction by an image, and the reference interpolated by the interpolation filter of the filter coefficient selected by the filter coefficient selection means Using an image and a motion vector corresponding to the encoded image, the image is caused to function as a motion compensation unit that generates a predicted image.
  • pixels of the reference image corresponding to the encoded image are interpolated with fractional accuracy based on the use or non-use of weighted prediction by different reference images in the encoded image.
  • the filter coefficient of the interpolation filter to be selected is selected.
  • a prediction image is generated using the reference image interpolated by the interpolation filter of the selected filter coefficient and the decoded motion vector.
  • each of the above-described image processing apparatuses may be an independent apparatus, or may be an internal block constituting one image encoding apparatus or image decoding apparatus.
  • FIG. 6 is a block diagram illustrating a configuration example of a filter coefficient storage unit in the case of pattern A.
  • FIG. 6 is a block diagram illustrating a configuration example of a filter coefficient calculation unit in the case of pattern A.
  • FIG. It is a figure explaining calculation of a filter coefficient about a horizontal direction. It is a figure explaining calculation of a filter coefficient about a vertical direction.
  • It is a flowchart explaining the encoding process of the image coding apparatus of FIG.
  • It is a flowchart explaining the motion prediction and compensation process of step S22 of FIG.
  • It is a flowchart explaining the filter coefficient selection process of step S51 of FIG.
  • It is a block diagram which shows the structure of 1st Embodiment of the image decoding apparatus to which this invention is applied.
  • FIG. 6 It is a block diagram which shows the structural example of the motion compensation part of FIG. 6 is a block diagram illustrating a configuration example of a fixed filter coefficient storage unit in the case of pattern A.
  • FIG. 6 is a block diagram illustrating a configuration example of a variable filter coefficient storage unit in the case of pattern A.
  • FIG. It is a flowchart explaining the decoding process of the image decoding apparatus of FIG. It is a flowchart explaining the motion compensation process of step S139 of FIG. It is a flowchart explaining the variable filter coefficient replacement process of step S153 of FIG. It is a figure which shows the example of the expanded block size. It is a block diagram which shows the structural example of the hardware of a computer.
  • FIG. 32 is a block diagram illustrating a configuration example of a motion prediction / compensation unit in FIG. 31. 6 is a block diagram illustrating a configuration example of a filter coefficient selection unit in the case of pattern A.
  • FIG. 37 is a block diagram illustrating a configuration example of a motion compensation unit in FIG. 36.
  • 6 is a block diagram illustrating a configuration example of a filter coefficient set storage unit in the case of pattern A.
  • FIG. 37 It is a flowchart explaining a motion compensation process. It is a figure explaining other classification of a filter coefficient.
  • FIG. 8 shows the configuration of the first embodiment of an image encoding apparatus as an image processing apparatus to which the present invention is applied.
  • This image encoding device 51 is, for example, H.264.
  • the input image is compressed and encoded based on the H.264 and MPEG-4 Part 10 (Advanced Video Coding) (hereinafter referred to as H.264 / AVC) system.
  • H.264 / AVC Advanced Video Coding
  • the image encoding device 51 includes an A / D conversion unit 61, a screen rearrangement buffer 62, a calculation unit 63, an orthogonal transformation unit 64, a quantization unit 65, a lossless encoding unit 66, a storage buffer 67, Inverse quantization unit 68, inverse orthogonal transform unit 69, operation unit 70, deblock filter 71, frame memory 72, switch 73, intra prediction unit 74, motion prediction / compensation unit 75, predicted image selection unit 76, and rate control unit 77.
  • the A / D converter 61 A / D converts the input image, outputs it to the screen rearrangement buffer 62, and stores it.
  • the screen rearrangement buffer 62 rearranges the stored frame images in the display order in the order of frames for encoding in accordance with Gop (Group of Picture).
  • the calculation unit 63 subtracts the prediction image from the intra prediction unit 74 or the prediction image from the motion prediction / compensation unit 75 selected by the prediction image selection unit 76 from the image read from the screen rearrangement buffer 62, The difference information is output to the orthogonal transform unit 64.
  • the orthogonal transform unit 64 subjects the difference information from the calculation unit 63 to orthogonal transform such as discrete cosine transform and Karhunen-Loeve transform, and outputs the transform coefficient.
  • the quantization unit 65 quantizes the transform coefficient output from the orthogonal transform unit 64.
  • the quantized transform coefficient that is the output of the quantization unit 65 is input to the lossless encoding unit 66, where lossless encoding such as variable length encoding and arithmetic encoding is performed and compressed.
  • the lossless encoding unit 66 acquires information indicating intra prediction from the intra prediction unit 74 and acquires information indicating inter prediction mode from the motion prediction / compensation unit 75. Note that the information indicating intra prediction and the information indicating inter prediction are also referred to as intra prediction mode information and inter prediction mode information, respectively.
  • the lossless encoding unit 66 encodes the quantized transform coefficient, encodes information indicating intra prediction, information indicating inter prediction mode, and the like, and uses it as a part of header information in the compressed image.
  • the lossless encoding unit 66 supplies the encoded data to the accumulation buffer 67 for accumulation.
  • lossless encoding processing such as variable length encoding or arithmetic encoding is performed.
  • variable length coding include H.264.
  • CAVLC Context-Adaptive Variable Length Coding
  • arithmetic coding include CABAC (Context-Adaptive Binary Arithmetic Coding).
  • the accumulation buffer 67 outputs the data supplied from the lossless encoding unit 66 as an encoded compressed image, for example, to a recording device or a transmission path (not shown) in the subsequent stage.
  • the quantized transform coefficient output from the quantization unit 65 is also input to the inverse quantization unit 68, and after inverse quantization, the inverse orthogonal transform unit 69 further performs inverse orthogonal transform.
  • the output subjected to the inverse orthogonal transform is added to the predicted image supplied from the predicted image selection unit 76 by the calculation unit 70 to be a locally decoded image.
  • the deblocking filter 71 removes block distortion from the decoded image, and then supplies the deblocking filter 71 to the frame memory 72 for accumulation.
  • the image before the deblocking filter processing by the deblocking filter 71 is also supplied to the frame memory 72 and accumulated.
  • the switch 73 outputs the reference image stored in the frame memory 72 to the motion prediction / compensation unit 75 or the intra prediction unit 74.
  • an I picture, a B picture, and a P picture from the screen rearrangement buffer 62 are supplied to the intra prediction unit 74 as images to be intra predicted (also referred to as intra processing). Further, the B picture and the P picture read from the screen rearrangement buffer 62 are supplied to the motion prediction / compensation unit 75 as an image to be inter-predicted (also referred to as inter-processing).
  • the intra prediction unit 74 performs intra prediction processing of all candidate intra prediction modes based on the image to be intra predicted read from the screen rearrangement buffer 62 and the reference image supplied from the frame memory 72, and performs prediction. Generate an image.
  • the intra prediction unit 74 calculates cost function values for all candidate intra prediction modes, and selects an intra prediction mode in which the calculated cost function value gives the minimum value as the optimal intra prediction mode.
  • This cost function is also called RD (Rate Distortion) cost, for example, the High Complexity mode or Low Complexity mode as defined by JM (Joint Model), which is the reference software in the H.264 / AVC format. The value is calculated based on one of the methods.
  • RD Rate Distortion
  • D is the difference (distortion) between the original image and the decoded image
  • R is the amount of generated code including up to the orthogonal transform coefficient
  • is the Lagrange multiplier given as a function of the quantization parameter QP.
  • D is a difference (distortion) between the original image and the decoded image
  • Header_Bit is a header bit for the intra prediction mode
  • QPtoQuant is a function given as a function of the quantization parameter QP.
  • the intra prediction unit 74 supplies the predicted image generated in the optimal intra prediction mode and its cost function value to the predicted image selection unit 76.
  • the intra prediction unit 74 supplies information indicating the optimal intra prediction mode to the lossless encoding unit 66.
  • the lossless encoding unit 66 encodes this information and uses it as a part of header information in the compressed image.
  • the motion prediction / compensation unit 75 performs a filtering process on the reference image using an interpolation filter with a fixed filter coefficient.
  • fixed filter coefficient does not mean that the filter coefficient is fixed to one, but is fixed with respect to the variable in AIF (Adaptive Interpolation Filter), and the coefficients can be switched.
  • AIF Adaptive Interpolation Filter
  • the filter processing using the fixed interpolation filter is also referred to as fixed filter processing.
  • the motion prediction / compensation unit 75 performs motion prediction of all candidate inter prediction mode blocks based on the inter-processed image and the reference image after the fixed filter process, and generates a motion vector of each block. Then, the motion prediction / compensation unit 75 performs compensation processing on the reference image after the fixed filter processing, and generates a predicted image. At this time, the motion prediction / compensation unit 75 obtains the cost function value of the block to be processed for all candidate inter prediction modes, determines the prediction mode, and determines the slice to be processed in the determined prediction mode. Find the cost function value of.
  • the motion prediction / compensation unit 75 uses the generated motion vector, the inter-processed image, and the reference image to calculate the filter coefficient of the variable coefficient interpolation filter (AIF) with the number of taps according to the slice type. Ask. Then, the motion prediction / compensation unit 75 performs a filtering process on the reference image using the filter of the obtained filter coefficient.
  • AIF variable coefficient interpolation filter
  • the filter processing using the variable interpolation filter is also referred to as variable filter processing.
  • the motion prediction / compensation unit 75 at least a filter coefficient for a fixed filter (hereinafter referred to as a fixed filter) used for weighted prediction using the L0 and L1 reference pixels (hereinafter referred to as L0L1 weighted prediction). And a fixed filter coefficient used for other predictions is stored.
  • the motion prediction / compensation unit 75 uses at least a filter coefficient for a variable filter (hereinafter referred to as a variable filter coefficient) used for L0L1 weighted prediction and other predictions. A variable filter coefficient is calculated.
  • the filter coefficient used for L0L1 weighted prediction has a filter characteristic that amplifies the high-frequency component of the image after the filter processing.
  • motion prediction / compensation unit 75 when L0L1 weighted prediction is performed, prediction is performed using fixed filter coefficients and variable filter coefficients used for weighted prediction using L0 and L1 reference pixels. On the other hand, when prediction other than L0L1 weighted prediction is performed, prediction is performed using fixed filter coefficients and variable filter coefficients used for prediction other than weighted prediction using L0 and L1 reference pixels.
  • the motion prediction / compensation unit 75 again performs motion prediction of all candidate inter prediction mode blocks based on the inter-processed image and the reference image after the variable filter processing, and generates a motion vector of each block. . Then, the motion prediction / compensation unit 75 performs compensation processing on the reference image after the variable filter processing, and generates a predicted image. At this time, the motion prediction / compensation unit 75 obtains the cost function value of the block to be processed for all candidate inter prediction modes, determines the prediction mode, and determines the slice to be processed in the determined prediction mode. Find the cost function value of.
  • the motion prediction / compensation unit 75 compares the cost function value after the fixed filter process with the cost function value after the variable filter process.
  • the motion prediction / compensation unit 75 adopts the smaller one, outputs the predicted image and the cost function value to the predicted image selection unit 76, and indicates whether or not the slice to be processed uses AIF.
  • Set the usage flag This AIF use flag is set for each filter coefficient used for L0L1 weighted prediction and other filter coefficients used for prediction.
  • the motion prediction / compensation unit 75 sends information indicating the optimal inter prediction mode (inter prediction mode information) to the lossless encoding unit 66. Output.
  • motion vector information, reference frame information, slice information, an AIF use flag, and a filter coefficient in the case of using AIF are also output to the lossless encoding unit 66.
  • the lossless encoding unit 66 performs lossless encoding processing such as variable length encoding and arithmetic encoding on the information from the motion prediction / compensation unit 75 and inserts the information into the header portion of the compressed image. Note that the slice information, the AIF use flag, and the filter coefficient are inserted into the slice header.
  • the predicted image selection unit 76 determines the optimal prediction mode from the optimal intra prediction mode and the optimal inter prediction mode based on each cost function value output from the intra prediction unit 74 or the motion prediction / compensation unit 75. Then, the predicted image selection unit 76 selects a predicted image in the determined optimal prediction mode and supplies the selected predicted image to the calculation units 63 and 70. At this time, the prediction image selection unit 76 supplies the selection information of the prediction image to the intra prediction unit 74 or the motion prediction / compensation unit 75 as indicated by the dotted line.
  • the rate control unit 77 controls the quantization operation rate of the quantization unit 65 based on the compressed image stored in the storage buffer 67 so that overflow or underflow does not occur.
  • FIG. 9 is a block diagram illustrating a configuration example of the motion prediction / compensation unit 75.
  • the switch 73 of FIG. 8 is omitted.
  • the motion prediction / compensation unit 75 includes a fixed interpolation filter 81, a filter coefficient storage unit 82, a variable interpolation filter 83, a filter coefficient calculation unit 84, a motion prediction unit 85, a motion compensation unit 86, and a control unit 87. It is configured.
  • the input image (image to be inter-processed) from the screen rearrangement buffer 62 is input to the filter coefficient calculation unit 84 and the motion prediction unit 85.
  • the reference image from the frame memory 72 is input to the fixed interpolation filter 81, the variable interpolation filter 83, and the filter coefficient calculation unit 84.
  • the fixed interpolation filter 81 is an interpolation filter whose filter coefficient is fixed (that is, not AIF).
  • the fixed interpolation filter 81 performs a filter process on the reference image from the frame memory 72 using the filter coefficient from the filter coefficient storage unit 82, and the reference image after the fixed filter process is converted into a motion prediction unit 85 and a motion image.
  • the data is output to the compensation unit 86.
  • the filter coefficient storage unit 82 stores at least fixed filter coefficients for L0L1 weighted prediction and other predictions used in the fixed interpolation filter 81, reads out these filter coefficients, and controls the control unit 87. And the selected fixed filter coefficient is supplied to the fixed interpolation filter 81.
  • the variable interpolation filter 83 is a filter coefficient variable interpolation filter (ie, AIF).
  • the variable interpolation filter 83 performs a filter process on the reference image from the frame memory 72 using the variable filter coefficient calculated by the filter coefficient calculation unit 84, and uses the reference image after the variable filter process as a motion prediction unit 85 and The result is output to the motion compensation unit 86.
  • the filter coefficient calculation unit 84 uses the input image from the screen rearrangement buffer 62, the reference image from the frame memory 72, and the first motion vector from the motion prediction unit 85 to perform the reference after the filter processing of the variable interpolation filter 83.
  • a filter coefficient for approximating the image to the input image is calculated.
  • the filter coefficient calculation unit 84 calculates at least variable filter coefficients used for L0L1 weighted prediction and variable filter coefficients used for other predictions.
  • the filter coefficient calculation unit 84 selects the calculated variable filter coefficient under the control of the control unit 87 and supplies the selected variable filter coefficient to the variable interpolation filter 83.
  • the filter coefficient calculation unit 84 when controlled by the control unit 87, selects an inter prediction image in the prediction image selection unit 76 and uses a variable filter in the target slice, L0L1 weighted prediction or other The variable filter coefficient corresponding to the prediction is output to the lossless encoding unit 66.
  • the motion prediction unit 85 generates first motion vectors of all candidate inter prediction modes based on the input image from the screen rearrangement buffer 62 and the reference image after the fixed filter from the fixed interpolation filter 81. The generated motion vector is output to the filter coefficient calculation unit 84 and the motion compensation unit 86. In addition, the motion prediction unit 85 calculates second motion vectors of all candidate inter prediction modes based on the input image from the screen rearrangement buffer 62 and the reference image after the variable filter from the variable interpolation filter 83. The generated motion vector is output to the motion compensation unit 86.
  • the motion compensation unit 86 performs a compensation process on the reference image after the fixed filter from the fixed interpolation filter 81 using the first motion vector, and generates a predicted image. Then, the motion compensation unit 86 determines the optimal inter prediction mode by calculating the cost function value for each block, and calculates the first cost function value of the target slice in the determined optimal inter prediction mode.
  • the motion compensation unit 86 performs a compensation process on the reference image after the variable filter from the variable interpolation filter 83 using the second motion vector, and generates a predicted image. Then, the motion compensation unit 86 determines the optimal inter prediction mode by calculating the cost function value for each block, and calculates the second cost function value of the target slice in the determined optimal inter prediction mode.
  • the motion compensation unit 86 compares the first cost function value and the second cost function value for the target slice, and determines to use the filter having the smaller value. That is, when the first cost function value is smaller, the motion compensation unit 86 uses a fixed filter in the target slice, and uses the predicted image and the cost function value generated from the reference image after the fixed filter as the predicted image. The value is supplied to the selection unit 76, and the value of the AIF use flag is set to 0 (unused). Further, when the second cost function value is smaller, the motion compensation unit 86 uses a variable filter in the target slice, and uses the prediction image and the cost function value generated from the reference image after the variable filter as the prediction image. The value is supplied to the selection unit 76, and the value of the AIF use flag is set to 1 (use).
  • This AIF use flag is set for each filter coefficient used for L0L1 weighted prediction and other filter coefficients used for other predictions. Therefore, when fixed filters are used in the target slice, the values of both flags corresponding to them are set to 0. When a variable filter is used in the target slice, both flag values are set to 1 if both filter coefficients are calculated. That is, a flag corresponding to a filter coefficient that has not been calculated (that is, the corresponding prediction mode is not used) is set to 0 even when a variable filter is used.
  • the motion compensation unit 86 When the inter prediction image is selected by the prediction image selection unit 76, the motion compensation unit 86, under the control of the control unit 87, information on the optimal inter prediction mode, information on the slice including the slice type, AIF use flag , Motion vectors, reference image information, and the like are output to the lossless encoding unit 66.
  • the control unit 87 controls the filter coefficient storage unit 82 and the filter coefficient calculation unit 84 according to the type of prediction, that is, whether the prediction is L0L1 weighted prediction or other prediction. That is, in the case of L0L1 weighted prediction, the control unit 87 causes the filter coefficient storage unit 82 to select the filter coefficient used for the L0L1 weighted prediction, and selects the filter coefficient used for the L0L1 weighted prediction to the filter coefficient calculation unit 84. Let In addition, in the case of other predictions (that is, prediction in which L0L1 weighted prediction is not performed), the control unit 87 causes the filter coefficient storage unit 82 to select filter coefficients used for other predictions, and filters used for other predictions. The coefficient is selected by the filter coefficient calculation unit 84.
  • the type of prediction that is, whether the prediction is L0L1 weighted prediction or other prediction. That is, in the case of L0L1 weighted prediction, the control unit 87 causes the filter coefficient storage unit 82 to select the filter coefficient used for the L
  • control unit 87 when the control unit 87 receives the signal that the inter prediction image has been selected from the prediction image selection unit 76, the control unit 87 sends necessary information to the lossless encoding unit 66 to the motion compensation unit 86 and the filter coefficient calculation unit 84. Also performs control to output.
  • the method of classifying the filter coefficients in the motion prediction / compensation unit 75 includes three types of patterns A to C shown in FIG. 10 depending on whether L0L1 weighted prediction is used or not. Note that L0L1 weighted prediction may be used in the bi-prediction mode, direct mode, and skip mode among all prediction modes.
  • Pattern A is a method for classifying filter coefficients into four filter coefficients A1 to A4.
  • the filter coefficient A1 is used for all inter prediction modes when L0L1 weighted prediction is not used.
  • the filter coefficient A2 is used in the bi-prediction mode when using L0L1 weighted prediction.
  • the filter coefficient A3 is used in the direct mode when using L0L1 weighted prediction.
  • the filter coefficient A4 is used in the skip mode when using L0L1 weighted prediction.
  • Pattern B is a method for classifying filter coefficients into three filter coefficients B1 to B3.
  • the filter coefficient B1 is used for all inter prediction modes when L0L1 weighted prediction is not used.
  • the filter coefficient B2 is used in the bi-prediction mode when using L0L1 weighted prediction.
  • the filter coefficient B3 is used in a mode other than the bi-prediction mode when using L0L1 weighted prediction, that is, in the direct mode or the skip mode.
  • Pattern C is a method for classifying filter coefficients into two filter coefficients C1 and C2.
  • the filter coefficient C1 is used for all inter prediction modes when L0L1 weighted prediction is not used.
  • the filter coefficient C2 is used in a prediction mode when using L0L1 weighted prediction, that is, in a bi-prediction mode, a direct mode, or a skip mode.
  • filter coefficients are not classified depending on whether L0L1 weighted prediction is used or not, and prediction is performed with one type of filter coefficient D1.
  • pattern C is an example roughly classified according to whether L0L1 weighted prediction is used or not
  • pattern B is a bi-prediction mode when pattern C is further used with L0L1 weighted prediction. It is an example classified into whether or not there is.
  • the pattern A is an example in which the pattern B is further classified into the direct mode or the skip mode when it is not the bi-prediction mode.
  • the filter coefficient C2 when performing weighted prediction rather than the filter coefficient C1 has a characteristic that amplifies a high frequency component lost in weighted prediction. Thereby, the high frequency component lost by weighted prediction can be compensated.
  • the filter coefficient B2 and the filter coefficient B3 have different characteristics. For example, as a difference in filter characteristics between the filter coefficient B2 and the filter coefficient B3, the degree of amplification of the high frequency component lost in the weighted prediction is different. Accordingly, as described above with reference to FIG. 7, it is possible to deal with a case where the degree of positional deviation between the bi-prediction mode and the direct mode (skip mode) is different.
  • the filter coefficients A2 to A4 have different characteristics.
  • the filter characteristics of the filter coefficients A2 to A4 are different in the degree of amplification of high frequency components lost in weighted prediction. Thereby, it is possible to cope with a case where the degree of positional deviation is different between the bi-prediction mode, the direct mode, and the skip mode.
  • the pattern A will be described as a representative of the patterns A to C.
  • the pattern B and the pattern C also differ in the number of filter coefficients, and the same can be done. Is possible.
  • FIG. 11 is a block diagram illustrating a configuration example of the filter coefficient storage unit in the case of pattern A.
  • the filter coefficient storage unit 82 includes an A1 filter coefficient memory 91, an A2 filter coefficient memory 92, an A3 filter coefficient memory 93, an A4 filter coefficient memory 94, and a selector 95.
  • the A1 filter coefficient memory 91 stores the filter coefficient A1 used in all inter prediction modes when L0L1 weighted prediction is not used, and outputs the filter coefficient A1 to the selector 95.
  • the A2 filter coefficient memory 92 stores the filter coefficient A2 used in the bi-prediction mode when using L0L1 weighted prediction, and outputs the filter coefficient A2 to the selector 95.
  • the A3 filter coefficient memory 93 stores the filter coefficient A3 used in the direct mode when the L0L1 weighted prediction is used, and outputs the filter coefficient A3 to the selector 95.
  • the A4 filter coefficient memory 94 stores the filter coefficient A4 used in the skip mode when using L0L1 weighted prediction, and outputs the filter coefficient A4 to the selector 95.
  • the selector 95 selects one of the filter coefficients A1 to A4 under the control of the control unit 87 and outputs the selected filter coefficient to the fixed interpolation filter 81.
  • FIG. 12 is a block diagram illustrating a configuration example of the filter coefficient calculation unit in the case of pattern A.
  • the filter coefficient calculation unit 84 includes an A1 filter coefficient calculation unit 101, an A2 filter coefficient calculation unit 102, an A3 filter coefficient calculation unit 103, an A4 filter coefficient notation calculation unit 104, and a selector 105. .
  • the A1 filter coefficient calculation unit 101 uses the input image from the screen rearrangement buffer 62, the reference image from the frame memory 72, and the first motion vector from the motion prediction unit 85, and does not use L0L1 weighted prediction.
  • the filter coefficient A1 used for all inter prediction modes is calculated and output to the selector 105.
  • the A2 filter coefficient calculation unit 102 uses the input image from the screen rearrangement buffer 62, the reference image from the frame memory 72, and the first motion vector from the motion prediction unit 85, when using the L0L1 weighted prediction.
  • the filter coefficient A2 used in the prediction mode is calculated and output to the selector 105.
  • the A3 filter coefficient calculation unit 103 uses the input image from the screen rearrangement buffer 62, the reference image from the frame memory 72, and the first motion vector from the motion prediction unit 85 to use the direct when L0L1 weighted prediction is used. Calculate the filter coefficient A3 used in the mode and output it to the selector 105.
  • the A4 filter coefficient calculation unit 104 uses the input image from the screen rearrangement buffer 62, the reference image from the frame memory 72, and the first motion vector from the motion prediction unit 85 to skip when using L0L1 weighted prediction. The filter coefficient A4 used for the mode is calculated and output to the selector 105.
  • the selector 105 selects one of the filter coefficients A1 to A4 under the control of the control unit 87, and outputs the selected filter coefficient to the variable interpolation filter 83.
  • variable interpolation filter 83 performs an interpolation process using, for example, a Separable adaptive interpolation filter (hereinafter referred to as a Separable AIF) described with reference to FIG. An interpolation method for performing vertical interpolation in two stages will be described later.
  • a Separable AIF Separable adaptive interpolation filter
  • Fig. 13 shows a filter in the horizontal direction of Separable AIF.
  • a hatched square represents an integer position pixel (Integer (pel (Int.tpel)), and a white square represents a fractional position pixel (Sub pel). Yes.
  • the alphabet in a square represents the pixel value of the pixel which the square represents.
  • the filter coefficient for the pixel position at the fractional position of the pixel values a, b, and c in FIG. 13 is obtained.
  • pixel values C1, C2, C3, C4, C5, and C6 at integer positions are used to calculate pixel values a, b, and c at fractional positions, and filter coefficients Is calculated by minimizing the following equation (8).
  • e is a prediction error
  • sp is one of pixel values a, b, and c at fractional positions
  • S is an original signal
  • P is a decoded reference pixel value
  • xy is , The pixel position that is the target of the original signal.
  • Formula (8) it is following Formula (9).
  • MV x and sp are detected by the first motion prediction
  • MV x is a horizontal motion vector with integer precision
  • sp represents the pixel position of the fractional position and corresponds to the fractional part of the motion vector.
  • h is a filter coefficient
  • i is 0 to 5.
  • the optimal filter coefficient for pixel values a, b, and c can be obtained as h that minimizes the square of e.
  • simultaneous equations are obtained so that the square of the prediction error is partially differentiated by h and becomes zero.
  • independent filter coefficients can be obtained for i of 0 to 5 for pixel values (sp) of fractional positions a, b, and c, respectively.
  • a motion vector is obtained for each block by the first motion search.
  • the following equation (11) in the equation (10) is determined by using the block having the pixel value a in the fractional position as input data, and the filter coefficients h a, i , ⁇ for interpolation of the position of the pixel value a are determined. It can be solved for i ⁇ ⁇ 0,1,2,3,4,5 ⁇ . Thus, pixel values a, b, and c are obtained.
  • pixel values a, b, and c are interpolated using optimum filter coefficients, and similarly, between pixel values A3 and A4, between pixel values B3 and B4, and between pixel values D3 and D4. Between the pixel values E3 and E4 and between the pixel values F3 and F4 are also interpolated.
  • the hatched square represents the pixel at the integer position or the fractional position already obtained by the horizontal filter
  • the white square represents the vertical filter.
  • the pixel at the fractional position is represented to be obtained by the direction filter.
  • the alphabet in a square represents the pixel value of the pixel which the square represents.
  • the filter coefficient is obtained by minimizing the prediction error of the following equation (12).
  • Expression (13) is an encoded reference pixel or interpolated pixel, which is Expression (14), and Expression (15).
  • MV y and sp are detected by the first motion prediction
  • MV y is a vertical motion vector with integer precision
  • sp represents the pixel position of the fractional position
  • h is a filter coefficient
  • j is 0 to 5.
  • the filter coefficient h is calculated so that the square of the prediction error in Expression (12) is minimized. Therefore, as shown in the equation (16), a system of simultaneous equations is obtained by setting a value obtained by partially differentiating the square of the prediction error by h to 0. By solving this simultaneous equation for the pixels at each fractional position, i.e., the pixel values d, e, f, g, h, I, j, k, l, m, n, o, The optimum filter coefficient of the interpolation filter can be obtained.
  • the above-described A1 filter is applied between the L0 reference picture and the source signal (input image) or between the L1 reference picture and the source signal.
  • the filter coefficient was calculated by the calculation method by the coefficient calculation unit 101.
  • the prediction error of the above equation (8) is a plurality of references shown in the following equation (17).
  • the prediction error is subject to change.
  • spL0 is an interpolation position corresponding to the fractional part of the L0 reference motion vector obtained by the first motion search
  • spL1 is equivalent to the fractional part of the L1 reference motion vector. This is the interpolation position.
  • MVL0 corresponds to an integer precision motion vector for the L0 reference
  • MVL1 corresponds to an integer precision motion vector for the L1 reference.
  • e 2 sp0 and sp1 are L1 prediction errors.
  • Equation (18) is a reference pixel after interpolation processing of L0 prediction
  • the next equation (19) is a reference pixel after interpolation processing of L1 prediction
  • the following equation (20) is It is a picture with L0 reference and L1 reference.
  • h spL0, i , h spL1, i are filter coefficients of L0 reference and L1 reference
  • spL0, spL1 are a, b, or c, respectively.
  • the weighted prediction is set to the same weight for L0 and L1.
  • the prediction error e 2 sp0, sp1 as before, the optimum filter coefficients h spL0, i , h spL1, i are calculated.
  • e 2 sp0, sp1 are partially differentiated by h and set to 0, the simultaneous equations shown in the following equation (21) are obtained.
  • x is a numerical part of L0 and L1 in the reference direction.
  • Equation (17) the prediction error is given by the combination of spL0 and spL1, whereas in Equation (22), the prediction error is given only to spL0.
  • the optimal filter coefficients h spL0, i , h spL1, i are calculated by minimizing the prediction error e 2 sp0, sp1 from this equation (22) as before. These e 2 sp0 and sp1 are partially differentiated by h, and set to 0, the simultaneous equations shown in the following equation (23) are obtained.
  • Equation (23) is not completely optimized because the interpolation filter of the L1 reference picture is fixed, but an optimum value can be obtained approximately.
  • a filter coefficient is obtained for h spL0, i , but by replacing L1 and L0 in this equation (23) and calculating the L0 side as a fixed filter coefficient, the filter coefficient on the L1 side is obtained similarly, and L0 And the filter coefficient integrated with L0 is obtained by calculating with both L1 and L1.
  • filter coefficients other than the a, b, and c positions can be obtained.
  • the filter coefficient used for the L0L1 weighted prediction having the filter characteristic that amplifies the high frequency component of the filtered image is calculated.
  • the pixel of the block in which the bi-prediction mode is determined by the first motion prediction is used for calculating the filter coefficient for the bi-prediction mode.
  • the pixels used are the pixels of the block in which the direct mode and the skip mode are determined by the first motion prediction. The only difference is that the rest is the same as the calculation of the filter coefficients for the bi-prediction mode.
  • step S11 the A / D converter 61 A / D converts the input image.
  • step S12 the screen rearrangement buffer 62 stores the images supplied from the A / D conversion unit 61, and rearranges the pictures from the display order to the encoding order.
  • step S13 the calculation unit 63 calculates the difference between the image rearranged in step S12 and the predicted image.
  • the predicted image is supplied from the motion prediction / compensation unit 75 in the case of inter prediction and from the intra prediction unit 74 in the case of intra prediction to the calculation unit 63 via the predicted image selection unit 76, respectively.
  • ⁇ Difference data has a smaller data volume than the original image data. Therefore, the data amount can be compressed as compared with the case where the image is encoded as it is.
  • step S14 the orthogonal transformation unit 64 orthogonally transforms the difference information supplied from the calculation unit 63. Specifically, orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation is performed, and transformation coefficients are output.
  • step S15 the quantization unit 65 quantizes the transform coefficient. At the time of this quantization, the rate is controlled as described in the process of step S26 described later.
  • step S ⁇ b> 16 the inverse quantization unit 68 inversely quantizes the transform coefficient quantized by the quantization unit 65 with characteristics corresponding to the characteristics of the quantization unit 65.
  • step S ⁇ b> 17 the inverse orthogonal transform unit 69 performs inverse orthogonal transform on the transform coefficient inversely quantized by the inverse quantization unit 68 with characteristics corresponding to the characteristics of the orthogonal transform unit 64.
  • step S18 the calculation unit 70 adds the predicted image input via the predicted image selection unit 76 to the locally decoded difference information, and outputs the locally decoded image (for input to the calculation unit 63). Corresponding image).
  • step S ⁇ b> 19 the deblock filter 71 filters the image output from the calculation unit 70. Thereby, block distortion is removed.
  • step S20 the frame memory 72 stores the filtered image. Note that an image that has not been filtered by the deblocking filter 71 is also supplied to the frame memory 72 from the computing unit 70 and stored therein.
  • the intra prediction unit 74 performs an intra prediction process. Specifically, the intra prediction unit 74 uses the intra prediction image read from the screen rearrangement buffer 62 and the image supplied from the frame memory 72 via the switch 73 to display all candidate intras. Intra prediction processing in the prediction mode is performed to generate an intra prediction image.
  • the intra prediction unit 74 calculates cost function values for all candidate intra prediction modes.
  • the intra prediction unit 74 determines the intra prediction mode that gives the minimum value among the calculated cost function values as the optimal intra prediction mode. Then, the intra prediction unit 74 supplies the intra predicted image generated in the optimal intra prediction mode and its cost function value to the predicted image selection unit 76.
  • step S22 the motion prediction / compensation unit 75 performs motion prediction / compensation processing. Details of the motion prediction / compensation processing in step S22 will be described later with reference to FIG.
  • At least the L0L1 weighted prediction or other filter coefficients corresponding to the prediction are used to perform filter processing using a fixed filter and a variable filter, and a motion vector for each block using the filtered reference image.
  • the prediction mode is determined, and the cost function value of the target slice is calculated.
  • the cost function value of the target slice by the fixed filter and the cost function value of the target slice by the variable filter are compared, and whether to use AIF (variable filter) is determined based on the comparison result.
  • the motion prediction / compensation unit 75 supplies the determined predicted image and the cost function value to the predicted image selection unit 76.
  • step S ⁇ b> 23 the predicted image selection unit 76 optimizes one of the optimal intra prediction mode and the optimal inter prediction mode based on the cost function values output from the intra prediction unit 74 and the motion prediction / compensation unit 75. Determine the prediction mode. Then, the predicted image selection unit 76 selects a predicted image in the determined optimal prediction mode and supplies the selected predicted image to the calculation units 63 and 70. As described above, this predicted image is used for the calculations in steps S13 and S18.
  • the prediction image selection information is supplied to the intra prediction unit 74 or the motion prediction / compensation unit 75.
  • the intra prediction unit 74 supplies information indicating the optimal intra prediction mode (that is, intra prediction mode information) to the lossless encoding unit 66.
  • the motion compensation unit 86 of the motion prediction / compensation unit 75 When the prediction image in the optimal inter prediction mode is selected, the motion compensation unit 86 of the motion prediction / compensation unit 75 outputs the information indicating the optimal inter prediction mode, motion vector information, reference frame information, and the lossless encoding unit 66. . Further, the motion compensation unit 86 outputs slice information and AIF use flag information to the lossless encoding unit 66 for each slice.
  • the AIF use flag information is set for each filter coefficient used. Therefore, in the case of pattern A, the AIF use flag (aif_other_flag) for not using L0L1 weighted prediction, the AIF use flag for bi-prediction mode (aif_bipred_flag), the AIF use flag for direct mode (aif_direct_flag), and the skip mode AIF usage flag (aif_skip_flag) value is set.
  • step S24 the lossless encoding unit 66 encodes the quantized transform coefficient output from the quantization unit 65. That is, the difference image is subjected to lossless encoding such as variable length encoding and arithmetic encoding, and is compressed.
  • lossless encoding such as variable length encoding and arithmetic encoding
  • information indicating the inter prediction mode is encoded for each macroblock.
  • Motion vector information and reference frame information are encoded for each target block.
  • slice information, AIF use flag information, and filter coefficients are inserted into a slice header and encoded for each slice.
  • step S25 the accumulation buffer 67 accumulates the difference image as a compressed image.
  • the compressed image stored in the storage buffer 67 is appropriately read and transmitted to the decoding side via the transmission path.
  • step S26 the rate control unit 77 controls the quantization operation rate of the quantization unit 65 based on the compressed image stored in the storage buffer 67 so that overflow or underflow does not occur.
  • the referenced image is read from the frame memory 72 and supplied to the fixed interpolation filter 81 via the switch 73. Further, the referenced image is also input to the variable interpolation filter 83 and the filter coefficient calculation unit 84.
  • step S51 the filter coefficient storage unit 82 performs a filter coefficient selection process under the control of the control unit 87.
  • the filter coefficient selection process will be described later with reference to FIG. 17, but the filter coefficient corresponding to the prediction mode is supplied to the fixed interpolation filter 81 by the process of step S51.
  • the filter coefficient A1 for not using the L0L1 weighted prediction, the filter coefficient A2 for the bi-prediction mode, the filter coefficient A3 for the direct mode, and the filter coefficient A4 for the skip mode are selected according to the prediction mode.
  • the filter coefficient A1 for not using the L0L1 weighted prediction, the filter coefficient A2 for the bi-prediction mode, the filter coefficient A3 for the direct mode, and the filter coefficient A4 for the skip mode are selected according to the prediction mode.
  • the fixed interpolation filter 81 uses the filter coefficient from the filter coefficient storage unit 82 to perform a fixed filter process corresponding to the prediction mode on the reference image. That is, the fixed interpolation filter 81 performs a filter process on the reference image from the frame memory 72 and outputs the reference image after the fixed filter process to the motion prediction unit 85 and the motion compensation unit 86.
  • steps S51 and S52 described above are performed for each prediction mode.
  • step S53 the motion prediction unit 85 and the motion compensation unit 86 perform the first motion prediction, and determine the motion vector and the prediction mode using the reference image filtered by the filter coefficient storage unit 82.
  • the motion prediction unit 85 calculates the first motion vectors of all candidate inter prediction modes based on the input image from the screen rearrangement buffer 62 and the reference image after the fixed filter from the fixed interpolation filter 81.
  • the generated motion vector is output to the motion compensation unit 86.
  • the first motion vector is also output to the filter coefficient calculation unit 84 and used for the process of step S55 described later.
  • the motion compensation unit 86 performs a compensation process on the reference image after the fixed filter from the fixed interpolation filter 81 using the first motion vector, and generates a predicted image. Then, the motion compensation unit 86 determines the optimal inter prediction mode by calculating a cost function value for each block and comparing them.
  • step S54 the motion compensation unit 86 uses the first motion vector and the optimal inter prediction mode, and the first time of the target slice. Calculate the cost function value.
  • step S55 the filter coefficient calculation unit 84 calculates each filter coefficient using the first motion vector from the motion prediction unit 85.
  • the filter coefficient calculation unit 84 uses the input image from the screen rearrangement buffer 62, the reference image from the frame memory 72, and the first motion vector from the motion prediction unit 85, after the filtering process of the variable interpolation filter 83.
  • a filter coefficient corresponding to the prediction mode for calculating the reference image to be close to the input image is calculated. That is, the filter coefficient A1 for not using the L0L1 weighted prediction, the filter coefficient A2 for the bi-prediction mode, the filter coefficient A3 for the direct mode, and the filter coefficient A4 for the skip mode are calculated.
  • the calculated filter coefficient is output to the lossless encoding unit 66 when the prediction image in the optimal inter prediction mode is selected in step S23 of FIG. 13 described above and a variable filter is used in the target slice.
  • S24 encoding is performed.
  • step S56 the filter coefficient calculation unit 84 performs a filter coefficient selection process under the control of the control unit 87. Since this filter coefficient selection process is the same as the process of step S51 described later with reference to FIG. 17, its detailed description is omitted.
  • the filter coefficient corresponding to the prediction mode is supplied to the variable interpolation filter 83.
  • the filter coefficient A1 for not using the L0L1 weighted prediction, the filter coefficient A2 for the bi-prediction mode, the filter coefficient A3 for the direct mode, and the filter coefficient A4 for the skip mode are selected according to the prediction mode. And supplied to the variable interpolation filter 83.
  • step S57 the variable interpolation filter 83 uses the filter coefficient from the filter coefficient calculation unit 84 to perform variable filter processing on the reference image. That is, the variable interpolation filter 83 performs a filter process on the reference image from the frame memory 72 using the filter coefficient calculated by the filter coefficient calculation unit 84, and uses the reference image after the variable filter process as a motion prediction unit 85. And output to the motion compensation unit 86.
  • step S58 the motion prediction unit 85 and the motion compensation unit 86 perform the second motion prediction, and use the reference image filtered by the variable interpolation filter 83 to determine a motion vector and a prediction mode.
  • the motion prediction unit 85 calculates second motion vectors of all candidate inter prediction modes based on the input image from the screen rearrangement buffer 62 and the reference image after the variable filter from the variable interpolation filter 83.
  • the generated motion vector is output to the motion compensation unit 86.
  • the motion compensation unit 86 performs compensation processing on the reference image after the variable filter from the variable interpolation filter 83 using the second motion vector, and generates a predicted image. Then, the motion compensation unit 86 determines the optimal inter prediction mode by calculating a cost function value for each block and comparing them.
  • step S59 the motion compensation unit 86 uses the second motion vector and the optimal inter prediction mode, and the second time of the target slice. Calculate the cost function value.
  • step S60 the motion compensation unit 86 compares the first cost function value of the target slice with the second cost function value, and determines whether or not the first cost function value of the target slice is smaller than the second cost function value. Determine whether.
  • step S61 assuming that a fixed filter is used in the target slice, the motion compensation unit 86 supplies the first prediction image (generated with the reference image after the fixed filter) and the cost function value to the prediction image selection unit 76. Then, the value of the AIF use flag of the target slice is set to 0.
  • step S62 assuming that the target slice uses a variable filter (AIF), the motion compensation unit 86 uses the second prediction image (generated with the reference image after the variable filter) and the cost function value as the prediction image selection unit.
  • AIF variable filter
  • the information of the set AIF use flag of the target slice is reversible together with the slice information under the control of the control unit 87 when the prediction image in the optimal inter prediction mode is selected in step S23 of FIG. 13 described above.
  • the data is output to the encoding unit 66, and inserted into the slice header and encoded in step S24.
  • the A1 filter coefficient memory 91 to A4 filter coefficient memory 94 output the stored filter coefficients A1 to A4 to the selector 95, respectively.
  • step S71 the control unit 87 determines whether or not the prediction mode for performing the motion prediction process uses L0L1 weighted prediction. When it is determined in step S71 that L0L1 weighted prediction is not used, the process proceeds to step S72.
  • step S 72 the selector 95 selects the filter coefficient A 1 from the A 1 filter coefficient memory 91 under the control of the control unit 87, and supplies it to the fixed interpolation filter 81.
  • step S71 If it is determined in step S71 that L0L1 weighted prediction is used, the process proceeds to step S73.
  • step S73 the control unit 87 next determines whether or not the prediction mode for performing the motion prediction process is the bi-prediction mode. If it is determined in step S73 that the mode is the bi-prediction mode, the process proceeds to step S74.
  • step S 74 the selector 95 selects the filter coefficient A 2 from the A 2 filter coefficient memory 92 under the control of the control unit 87, and supplies it to the fixed interpolation filter 81.
  • step S73 determines whether or not the mode is not the bi-prediction mode. If it is determined in step S73 that the mode is not the bi-prediction mode, the process proceeds to step S75.
  • step S75 the controller 87 next determines whether or not the prediction mode for performing the motion prediction process is the direct mode. If it is determined in step S75 that the mode is the direct mode, the process proceeds to step S76.
  • step S ⁇ b> 76 the selector 95 selects the filter coefficient A ⁇ b> 3 from the A3 filter coefficient memory 93 under the control of the control unit 87, and supplies it to the fixed interpolation filter 81.
  • step S73 If it is determined in step S73 that the mode is not the direct mode, the process proceeds to step S77. That is, in this case, since it is determined in the skip mode, in step S77, the selector 95 selects the filter coefficient A4 from the A4 filter coefficient memory 94 under the control of the control unit 87, and selects it as the fixed interpolation. The filter 81 is supplied.
  • the filter coefficient used for the interpolation filter is selected at least depending on whether it is used for L0L1 weighted prediction or not. That is, when used for L0L1 weighted prediction, a filter coefficient having such characteristics as to amplify the high frequency component of the image after filter processing is selected.
  • the loss of high frequency components means that the sharpness of image quality is impaired.
  • the high frequency component is lost, the impression is worsened because the image is blurred.
  • the high frequency component lost in the L0L1 weighted prediction can be recovered, a clear image quality can be obtained.
  • filter coefficients are selected according to the bi-prediction mode, direct mode, and skip mode. That is, a filter coefficient having a characteristic of the degree of amplification of the high frequency component corresponding to each mode is selected. As a result, as described above with reference to FIG. 7, it is possible to cope with a case where the degree of positional deviation is different between the bi-prediction mode, the direct mode, and the skip mode.
  • the encoded compressed image is transmitted via a predetermined transmission path and decoded by an image decoding device.
  • FIG. 18 shows the configuration of the first embodiment of an image decoding apparatus as an image processing apparatus to which the present invention is applied.
  • the image decoding device 151 includes a storage buffer 161, a lossless decoding unit 162, an inverse quantization unit 163, an inverse orthogonal transform unit 164, an operation unit 165, a deblock filter 166, a screen rearrangement buffer 167, a D / A conversion unit 168, a frame
  • the memory 169, the switch 170, the intra prediction unit 171, the motion compensation unit 172, and the switch 173 are configured.
  • the accumulation buffer 161 accumulates the transmitted compressed image.
  • the lossless decoding unit 162 decodes the information supplied from the accumulation buffer 161 and encoded by the lossless encoding unit 66 in FIG. 8 using a method corresponding to the encoding method of the lossless encoding unit 66.
  • the inverse quantization unit 163 inversely quantizes the image decoded by the lossless decoding unit 162 by a method corresponding to the quantization method of the quantization unit 65 in FIG.
  • the inverse orthogonal transform unit 164 performs inverse orthogonal transform on the output of the inverse quantization unit 163 by a method corresponding to the orthogonal transform method of the orthogonal transform unit 64 in FIG.
  • the output subjected to inverse orthogonal transform is added to the prediction image supplied from the switch 173 by the arithmetic unit 165 and decoded.
  • the deblocking filter 166 removes block distortion of the decoded image, and then supplies the frame to the frame memory 169 for accumulation and outputs it to the screen rearrangement buffer 167.
  • the screen rearrangement buffer 167 rearranges images. That is, the order of frames rearranged for the encoding order by the screen rearrangement buffer 62 in FIG. 8 is rearranged in the original display order.
  • the D / A conversion unit 168 D / A converts the image supplied from the screen rearrangement buffer 167, and outputs and displays it on a display (not shown).
  • the switch 170 reads the referenced image from the frame memory 169, outputs the image to the motion compensation unit 172, reads the image used for intra prediction from the frame memory 169, and supplies the image to the intra prediction unit 171.
  • Information indicating the intra prediction mode obtained by decoding the header information is supplied from the lossless decoding unit 162 to the intra prediction unit 171.
  • the intra prediction unit 171 generates a predicted image based on this information, and outputs the generated predicted image to the switch 173.
  • inter prediction mode information Motion vector information, reference frame information, AIF use flag information, filter coefficients, and the like are supplied from the lossless decoding unit 162 to the motion compensation unit 172.
  • the inter prediction mode information is transmitted for each macroblock.
  • Motion vector information and reference frame information are transmitted for each target block.
  • Slice information including information on the type of slice, AIF use flag information, filter coefficients, and the like are inserted into the slice header and transmitted for each target slice.
  • the motion compensation unit 172 uses the variable filter coefficient included in the slice header and the currently stored variable filter coefficient when the target slice uses the AIF. Is replaced. Then, the motion compensation unit 172 performs variable filter processing on the reference image from the frame memory 169 using a variable interpolation filter. The motion compensation unit 172 performs compensation processing on the reference image after the variable filter processing using the motion vector from the lossless decoding unit 162, and generates a predicted image of the target block. The generated predicted image is output to the calculation unit 165 via the switch 173.
  • the motion compensation unit 172 When the target slice including the target block does not use AIF, the motion compensation unit 172 performs fixed filter processing on the reference image from the frame memory 169 using an interpolation filter with a fixed coefficient. Then, using the motion vector from the lossless decoding unit 162, the motion compensation unit 172 performs compensation processing on the reference image after the fixed filter processing, and generates a predicted image of the target block. The generated predicted image is output to the calculation unit 165 via the switch 173.
  • the motion compensation unit 172 stores at least fixed filter coefficients used for L0L1 weighted prediction and other fixed filter coefficients used for prediction, similarly to the motion prediction / compensation unit 75 of FIG. ing. Similarly, in the case of variable, the motion compensation unit 172 obtains from the lossless decoding unit 162 at least filter coefficients for variable filters used for L0L1 weighted prediction and variable filter coefficients used for other predictions. And memorized.
  • the switch 173 selects the prediction image generated by the motion compensation unit 172 or the intra prediction unit 171 and supplies the selected prediction image to the calculation unit 165.
  • FIG. 19 is a block diagram illustrating a detailed configuration example of the motion compensation unit 172.
  • the switch 170 of FIG. 18 is omitted.
  • the motion compensation unit 172 includes a fixed interpolation filter 181, a fixed filter coefficient storage unit 182, a variable interpolation filter 183, a variable filter coefficient storage unit 184, a motion compensation processing unit 185, and a control unit 186. ing.
  • slice information indicating the type of slice included in the slice header and AIF use flag information are supplied to the control unit 186, and filter coefficients are supplied to the variable filter coefficient storage unit 184. Also, information indicating the inter prediction mode for each macroblock from the lossless decoding unit 162 is also supplied to the control unit 186, the motion vector for each block is supplied to the motion compensation processing unit 185, and the reference frame information is the control unit 186. To be supplied.
  • the reference image from the frame memory 169 is input to the fixed interpolation filter 181 and the variable interpolation filter 183 under the control of the control unit 186.
  • the fixed interpolation filter 181 is an interpolation filter whose filter coefficient is fixed (that is, not AIF).
  • the fixed interpolation filter 181 performs filter processing on the reference image from the frame memory 169 using the fixed filter coefficient from the fixed filter coefficient storage unit 182, and uses the reference image after the fixed filter processing as the motion compensation processing unit 185. Output to.
  • the fixed filter coefficient storage unit 182 stores at least fixed filter coefficients for L0L1 weighted prediction and other predictions used in the fixed interpolation filter 181, reads out the filter coefficients, and controls the control unit The selected fixed filter coefficient is supplied to the fixed interpolation filter 181 under the control of 186.
  • the variable interpolation filter 183 is an interpolation filter (that is, AIF) having a variable filter coefficient.
  • the variable interpolation filter 183 performs filter processing on the reference image from the frame memory 169 using the variable filter coefficient from the variable filter coefficient storage unit 184, and the reference image after the variable filter processing is converted into the motion compensation processing unit 185. Output to.
  • the variable filter coefficient storage unit 184 temporarily stores at least the variable filter coefficients for L0L1 weighted prediction and other predictions used in the variable interpolation filter 183, and from the lossless decoding unit 162 for each slice. If the corresponding variable filter coefficient is supplied, it is replaced with the stored coefficient.
  • the variable filter coefficient storage unit 184 reads the temporarily stored filter coefficients, selects them under the control of the control unit 186, and supplies the selected variable filter coefficients to the variable interpolation filter 183.
  • the motion compensation processing unit 185 performs compensation processing on the reference image after filtering from the fixed interpolation filter 181 or the variable interpolation filter 183 using the motion vector from the lossless decoding unit 162 in the prediction mode controlled by the control unit 186.
  • the prediction image of the target block is generated, and the generated prediction image is output to the switch 173.
  • the control unit 186 acquires the AIF use flag included in the slice header information from the lossless decoding unit 162, refers to the acquired AIF use flag, and performs fixed interpolation based on whether or not the AIF is used.
  • the filter 181, fixed filter coefficient storage unit 182, variable interpolation filter 183, and variable filter coefficient storage unit 184 are controlled.
  • the control unit 186 determines in the fixed filter coefficient storage unit 182 or the variable filter coefficient storage unit 184 whether to select a filter coefficient for L0L1 weighted prediction or other prediction according to the prediction mode information. Instruct.
  • variable filter coefficient storage unit 184 replaces the stored variable filter coefficient with the filter coefficient from the lossless decoding unit 162, and corresponds to the prediction mode.
  • the fixed filter coefficients for L0L1 weighted prediction and other prediction are selected, and the variable interpolation filter 183 performs filter processing.
  • the fixed filter coefficient storage unit 182 selects the fixed filter coefficients for L0L1 weighted prediction and other predictions corresponding to the prediction mode, and fixed.
  • the interpolation filter 181 performs filter processing.
  • control unit 186 causes the motion compensation processing unit 185 to perform prediction mode compensation processing based on the prediction mode information.
  • FIG. 20 is a block diagram illustrating a configuration example of the fixed filter coefficient storage unit in the case of pattern A.
  • the fixed filter coefficient storage unit 182 includes an A1 filter coefficient memory 191, an A2 filter coefficient memory 192, an A3 filter coefficient memory 193, an A4 filter coefficient memory 194, and a selector 195.
  • the A1 filter coefficient memory 91 stores fixed filter coefficients A1 used for all inter prediction modes when L0L1 weighted prediction is not used, and outputs the fixed filter coefficients A1 to the selector 95.
  • the A2 filter coefficient memory 92 stores the fixed filter coefficient A2 used in the bi-prediction mode when using L0L1 weighted prediction, and outputs the fixed filter coefficient A2 to the selector 95.
  • the A3 filter coefficient memory 93 stores a fixed filter coefficient A3 used in the direct mode when L0L1 weighted prediction is used, and outputs the fixed filter coefficient A3 to the selector 95.
  • the A4 filter coefficient memory 94 stores the fixed filter coefficient A4 used in the skip mode when using L0L1 weighted prediction, and outputs the fixed filter coefficient A4 to the fixed filter coefficient A4 selector 95.
  • the selector 195 selects one filter coefficient from among the fixed filter coefficients A1 to A4 under the control of the control unit 186, and outputs the selected filter coefficient to the fixed interpolation filter 181.
  • FIG. 21 is a block diagram illustrating a configuration example of the variable filter coefficient storage unit in the case of pattern A.
  • variable filter coefficient storage unit 184 includes an A1 filter coefficient memory 201, an A2 filter coefficient memory 202, an A3 filter coefficient memory 203, an A4 filter coefficient memory 204, and a selector 205.
  • the A1 filter coefficient memory 201 stores variable filter coefficients A1 used in all inter prediction modes when L0L1 weighted prediction is not used, and is sent from the lossless decoding unit 162 under the control of the control unit 186. The stored filter coefficient is replaced with the incoming variable filter coefficient A1. Then, the A1 filter coefficient memory 201 outputs the replaced variable filter coefficient A1 to the selector 95.
  • the A2 filter coefficient memory 92 stores the variable filter coefficient A2 used in the bi-prediction mode when using L0L1 weighted prediction, and the variable transmitted from the lossless decoding unit 162 under the control of the control unit 186.
  • the stored filter coefficient is replaced with the filter coefficient A2.
  • the A2 filter coefficient memory 92 outputs the replaced variable filter coefficient A2 to the selector 95.
  • the A3 filter coefficient memory 93 stores a variable filter coefficient A3 used in the direct mode when L0L1 weighted prediction is used, and the variable transmitted from the lossless decoding unit 162 under the control of the control unit 186.
  • the stored filter coefficient is replaced with the filter coefficient A3.
  • the A3 filter coefficient memory 93 outputs the replaced variable filter coefficient A3 to the selector 95.
  • the A4 filter coefficient memory 94 stores a variable filter coefficient A4 used in the skip mode when L0L1 weighted prediction is used, and the variable transmitted from the lossless decoding unit 162 under the control of the control unit 186.
  • the stored filter coefficient is replaced with the filter coefficient A3.
  • the A4 filter coefficient memory 94 outputs it to the replaced variable filter coefficient A4 selector 95.
  • the selector 205 selects one filter coefficient from among the variable filter coefficients A1 to A4 under the control of the control unit 87, and outputs the selected filter coefficient to the variable interpolation filter 183.
  • the period during which the replaced filter coefficient is valid may be only the target slice or until it is replaced next time. However, in any case, if there is an IDR (instantaneous decoding decoding) picture, it is replaced with an initial value. That is, it is reset.
  • IDR instantaneous decoding decoding
  • IDR picture is H.264. It is defined by the H.264 / AVC format, meaning the first picture of an image sequence, and decoding can be started from an IDR picture. This mechanism enables random access.
  • step S131 the storage buffer 161 stores the transmitted image.
  • step S132 the lossless decoding unit 162 decodes the compressed image supplied from the accumulation buffer 161. That is, the I picture, P picture, and B picture encoded by the lossless encoding unit 66 in FIG. 8 are decoded.
  • motion vector information, reference frame information, and the like are also decoded for each block.
  • prediction mode information information indicating an intra prediction mode or an inter prediction mode
  • slice header information including slice type information AIF use flag information and filter coefficients is also decoded for each slice.
  • step S133 the inverse quantization unit 163 inversely quantizes the transform coefficient decoded by the lossless decoding unit 162 with characteristics corresponding to the characteristics of the quantization unit 65 in FIG.
  • step S134 the inverse orthogonal transform unit 164 performs inverse orthogonal transform on the transform coefficient inversely quantized by the inverse quantization unit 163 with characteristics corresponding to the characteristics of the orthogonal transform unit 64 in FIG. As a result, the difference information corresponding to the input of the orthogonal transform unit 64 of FIG. 8 (the output of the calculation unit 63) is decoded.
  • step S135 the calculation unit 165 adds the prediction image selected in the process of step S141 described later and input via the switch 173 to the difference information. As a result, the original image is decoded.
  • step S136 the deblocking filter 166 filters the image output from the calculation unit 165. Thereby, block distortion is removed.
  • step S137 the frame memory 169 stores the filtered image.
  • step S138 the lossless decoding unit 162 determines whether the compressed image is an inter-predicted image based on the lossless decoding result of the header portion of the compressed image, that is, information indicating the optimal inter prediction mode in the lossless decoding result. Determine if it is included.
  • the lossless decoding unit 162 obtains motion vector information, reference frame information, information indicating the optimal inter prediction mode, AIF use flag information, filter coefficients, and the like. This is supplied to the motion compensation unit 172.
  • step S139 the motion compensation unit 172 performs a motion compensation process. Details of the motion compensation processing in step S139 will be described later with reference to FIG.
  • variable filter processing is performed using a variable filter coefficient corresponding to whether or not the prediction mode uses L0L1 weighted prediction.
  • fixed filter processing is performed using a fixed filter coefficient corresponding to whether or not the prediction mode uses L0L1 weighted prediction.
  • a compensation process is performed on the reference image after the filter process using a motion vector, and a prediction image generated thereby is output to the switch 173.
  • step S138 if it is determined in step S138 that the compressed image is not an inter-predicted image, that is, if the lossless decoding result includes information indicating the optimal intra prediction mode, the lossless decoding unit 162 determines the optimal intra prediction. Information indicating the mode is supplied to the intra prediction unit 171.
  • step S140 the intra prediction unit 171 performs an intra prediction process on the image from the frame memory 169 in the optimal intra prediction mode represented by the information from the lossless decoding unit 162, and generates an intra predicted image. Then, the intra prediction unit 171 outputs the intra predicted image to the switch 173.
  • step S141 the switch 173 selects a prediction image and outputs it to the calculation unit 165. That is, the prediction image generated by the intra prediction unit 171 or the prediction image generated by the motion compensation unit 172 is supplied. Therefore, the supplied predicted image is selected and output to the calculation unit 165, and is added to the output of the inverse orthogonal transform unit 164 in step S135 as described above.
  • step S142 the screen rearrangement buffer 167 performs rearrangement. That is, the order of frames rearranged for encoding by the screen rearrangement buffer 62 of the image encoding device 51 is rearranged to the original display order.
  • step S143 the D / A conversion unit 168 D / A converts the image from the screen rearrangement buffer 167. This image is output to a display (not shown), and the image is displayed.
  • step S151 the control unit 186 acquires AIF use flag information included in the slice header information from the lossless decoding unit 162.
  • the AIF use flag information is set and transmitted for each filter coefficient used on the encoding side. Therefore, in the case of pattern A, AIF use flag (aif_other_flag) for not using L0L1 weighted prediction, AIF use flag for bi-prediction mode (aif_bipred_flag), AIF use flag for direct mode (aif_direct_flag), skip mode AIF usage flag (aif_skip_flag) is acquired.
  • step S152 the control unit 186 determines whether to use AIF in the target slice based on the AIF use flag. For example, if at least one of the plurality of AIF use flags is 1, it is determined in step S152 that an AIF is used, and the process proceeds to step S153.
  • step S153 the variable filter coefficient storage unit 184 executes variable filter coefficient replacement processing under the control of the control unit 186.
  • This variable filter coefficient replacement process will be described later with reference to FIG. 24.
  • the value of the AIF use flag is 1, that is, the variable filter coefficient calculated on the encoding side for that slice.
  • the stored coefficient is replaced.
  • the A1 filter coefficient memory 201 to the A4 filter coefficient memory 204 of the variable filter coefficient storage unit 184 read out the stored filter coefficients and supply the read filter coefficients to the selector 205.
  • step S152 when the values of the plurality of AIF use flags described above are all 0, it is determined in step S152 that the AIF is not used, step S153 is skipped, and the process proceeds to step S154.
  • the A1 filter coefficient memory 191 to the A4 filter coefficient memory 194 of the fixed filter coefficient storage unit 182 read the stored filter coefficients and supply the read filter coefficients to the selector 195.
  • the processes of the next steps S156, S158, S160 to S162 are performed by the variable filter coefficient storage unit 184 and the variable interpolation filter 183 when it is determined in step S152 that the AIF is used. If it is determined in step S152 that the AIF is not used, the process is performed by the fixed filter coefficient storage unit 182 and the fixed interpolation filter 181.
  • the variable filter coefficient storage unit 184 and the variable interpolation filter 183 will be described.
  • step S154 the control unit 186 acquires information on the inter prediction mode for each macroblock from the lossless decoding unit 162.
  • step S155 the control unit 186 determines whether or not L0L1 weighted prediction is performed based on the information of the inter prediction mode. When it is determined in step S155 that L0L1 weighted prediction is not performed, the process proceeds to step S156, and the selector 205 selects the filter coefficient A1 from the A1 filter coefficient memory 201 under the control of the control unit 186. The selected filter coefficient A1 is supplied to the variable interpolation filter 183.
  • step S155 If it is determined in step S155 that L0L1 weighted prediction is being performed, the process proceeds to step S157, and the control unit 186 determines whether or not the bi-prediction mode is set based on the information of the inter prediction mode. To do.
  • step S157 If it is determined in step S157 that the mode is the bi-prediction mode, the process proceeds to step S158, and the selector 205 selects the filter coefficient A2 from the A2 filter coefficient memory 202 under the control of the control unit 186, and The selected filter coefficient A2 is supplied to the variable interpolation filter 183.
  • step S157 If it is determined in step S157 that the mode is not the bi-prediction mode, the process proceeds to step S159, and the control unit 186 determines whether the mode is the direct mode based on the information of the inter prediction mode.
  • step S159 If it is determined in step S159 that the mode is the direct mode, the process proceeds to step S160, and the selector 205 selects the filter coefficient A3 from the A3 filter coefficient memory 203 under the control of the control unit 186, and The selected filter coefficient A3 is supplied to the variable interpolation filter 183.
  • step S159 If it is determined in step S159 that the mode is not the direct mode, that is, if the mode is the skip mode, the process proceeds to step S161, and the selector 205 controls the A4 filter coefficient memory 204 under the control of the control unit 186. Is selected, and the selected filter coefficient A4 is supplied to the variable interpolation filter 183.
  • step S162 the variable interpolation filter 183 performs filter processing on the reference image from the frame memory 169 using the variable filter coefficient from the variable filter coefficient storage unit 184, and moves the reference image after the variable filter processing to the motion image.
  • the data is output to the compensation processing unit 185.
  • step S163 using the motion vector from the lossless decoding unit 162 in the prediction mode controlled by the control unit 186, the filtered reference image is subjected to compensation processing to generate a predicted image of the target block, and the generated prediction The image is output to the switch 173.
  • variable filter coefficient replacement process in step S153 in FIG. 23 will be described with reference to the flowchart in FIG.
  • step S171 the control unit 186 determines whether or not the value of the AIF use flag (aif_other_flag) for not using the L0L1 weighted prediction is 1. If it is determined in step S171 that the value of aif_other_flag is 1, the process proceeds to step S172, and the A1 filter coefficient memory 201 uses the slice header from the lossless decoding unit 162 under the control of the control unit 186. The stored filter coefficient is replaced with the included filter coefficient A1.
  • step S171 When it is determined in step S171 that the value of aif_other_flag is not 1, the process proceeds to step S173, and the control unit 186 determines whether the value of the AIF use flag (aif_bipred_flag) for bi-prediction mode is 1. Determine. If it is determined in step S173 that the value of aif_bipred_flag is 1, the process proceeds to step S174, and the A2 filter coefficient memory 202 applies the slice header from the lossless decoding unit 162 under the control of the control unit 186. The stored filter coefficient is replaced with the included filter coefficient A2.
  • step S173 If it is determined in step S173 that the value of aif_bipred_flag is not 1, the process proceeds to step S175, and the control unit 186 determines whether the value of the AIF use flag (aif_direct_flag) for direct mode is 1. Determine. If it is determined in step S175 that the value of aif_direct_flag is 1, the process proceeds to step S176, and the A3 filter coefficient memory 203 uses the slice header from the lossless decoding unit 162 under the control of the control unit 186. The stored filter coefficient is replaced with the included filter coefficient A3.
  • step S175 If it is determined in step S175 that the value of aif_direct_flag is not 1, the process proceeds to step S177, and the control unit 186 determines whether the value of the AIF use flag (aif_skip_flag) for skip mode is 1 or not. Determine. If it is determined in step S177 that the value of aif_skip_flag is 1, the process proceeds to step S178, and the A4 filter coefficient memory 204 uses the slice header from the lossless decoding unit 162 under the control of the control unit 186. The stored filter coefficient is replaced with the included filter coefficient A4.
  • step S177 If it is determined in step S177 that the value of aif_skip_flag is not 1, the process proceeds to step S154 in FIG. That is, in this case, since no AIF is used, the processing proceeds without replacing any filter coefficients.
  • the filter coefficient used for the interpolation filter is selected at least depending on whether it is used for L0L1 weighted prediction. That is, when used for L0L1 weighted prediction, a filter coefficient having such characteristics as to amplify the high frequency component of the image after filter processing is selected.
  • filter coefficients are selected according to the bi-prediction mode, direct mode, and skip mode. That is, a filter coefficient having a characteristic of the degree of amplification of the high frequency component corresponding to each mode is selected. As a result, as described above with reference to FIG. 7, it is possible to cope with a case where the degree of positional deviation is different between the bi-prediction mode, the direct mode, and the skip mode.
  • variable filter AIF
  • the number of taps is 6 taps.
  • the number of taps of the filter is not limited.
  • the separation-type AIF interpolation filter has been described as an example.
  • the filter structure is not limited to the Separable-type AIF. That is, the present invention can be applied even if the filter has a different structure.
  • FIG. 25 is a diagram illustrating an example of a block size proposed in Non-Patent Document 4.
  • the macroblock size is expanded to 32 ⁇ 32 pixels.
  • a macro block composed of 32 ⁇ 32 pixels divided into blocks (partitions) of 32 ⁇ 32 pixels, 32 ⁇ 16 pixels, 16 ⁇ 32 pixels, and 16 ⁇ 16 pixels from the left. They are shown in order.
  • blocks composed of 16 ⁇ 16 pixels divided into blocks of 16 ⁇ 16 pixels, 16 ⁇ 8 pixels, 8 ⁇ 16 pixels, and 8 ⁇ 8 pixels are sequentially shown from the left. Yes.
  • an 8 ⁇ 8 pixel block divided into 8 ⁇ 8 pixel, 8 ⁇ 4 pixel, 4 ⁇ 8 pixel, and 4 ⁇ 4 pixel blocks is sequentially shown from the left. .
  • the 32 ⁇ 32 pixel macroblock can be processed in the 32 ⁇ 32 pixel, 32 ⁇ 16 pixel, 16 ⁇ 32 pixel, and 16 ⁇ 16 pixel blocks shown in the upper part of FIG.
  • the 16 ⁇ 16 pixel block shown on the right side of the upper row is H.264. Similar to the H.264 / AVC format, processing in blocks of 16 ⁇ 16 pixels, 16 ⁇ 8 pixels, 8 ⁇ 16 pixels, and 8 ⁇ 8 pixels shown in the middle stage is possible.
  • the 8 ⁇ 8 pixel block shown on the right side of the middle row Similar to the H.264 / AVC format, processing in blocks of 8 ⁇ 8 pixels, 8 ⁇ 4 pixels, 4 ⁇ 8 pixels, and 4 ⁇ 4 pixels shown in the lower stage is possible.
  • H. A larger block is defined as a superset while maintaining compatibility with the H.264 / AVC format.
  • the present invention can also be applied to the extended macroblock size proposed as described above.
  • the encoding method is H.264.
  • the H.264 / AVC format is used as a base, but the present invention is not limited to this, and is applied to an image encoding device / image decoding device that uses an encoding method / decoding method for performing other motion prediction / compensation processing. You can also.
  • the present invention includes, for example, MPEG, H.264, and the like.
  • image information bitstream
  • orthogonal transformation such as discrete cosine transformation and motion compensation, such as 26x
  • network media such as satellite broadcasting, cable television, the Internet, or mobile phones.
  • the present invention can be applied to an image encoding device and an image decoding device used in the above. Further, the present invention can be applied to an image encoding device and an image decoding device used when processing on a storage medium such as an optical, magnetic disk, and flash memory. Furthermore, the present invention can also be applied to motion prediction / compensation devices included in such image encoding devices and image decoding devices.
  • the series of processes described above can be executed by hardware or software.
  • a program constituting the software is installed in the computer.
  • the computer includes a computer incorporated in dedicated hardware, a general-purpose personal computer capable of executing various functions by installing various programs, and the like.
  • FIG. 26 is a block diagram illustrating a hardware configuration example of a computer that executes a series of processes according to the present invention by a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • an input / output interface 255 is connected to the bus 254.
  • An input unit 256, an output unit 257, a storage unit 258, a communication unit 259, and a drive 260 are connected to the input / output interface 255.
  • the input unit 256 includes a keyboard, a mouse, a microphone, and the like.
  • the output unit 257 includes a display, a speaker, and the like.
  • the storage unit 258 includes a hard disk, a non-volatile memory, and the like.
  • the communication unit 259 includes a network interface or the like.
  • the drive 260 drives a removable medium 261 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 251 loads the program stored in the storage unit 258 into the RAM 253 via the input / output interface 255 and the bus 254 and executes the program, thereby performing the above-described series of processing. Is done.
  • the program executed by the computer (CPU 251) can be provided by being recorded in the removable medium 261 as a package medium, for example.
  • the program can be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital broadcasting.
  • the program can be installed in the storage unit 258 via the input / output interface 255 by attaching the removable medium 261 to the drive 260.
  • the program can be received by the communication unit 259 via a wired or wireless transmission medium and installed in the storage unit 258.
  • the program can be installed in advance in the ROM 252 or the storage unit 258.
  • the program executed by the computer may be a program that is processed in time series in the order described in this specification, or in parallel or at a necessary timing such as when a call is made. It may be a program for processing.
  • the image encoding device 51 and the image decoding device 151 described above can be applied to any electronic device. Examples thereof will be described below.
  • FIG. 27 is a block diagram illustrating a main configuration example of a television receiver using the image decoding device to which the present invention has been applied.
  • FIG. 27 includes a terrestrial tuner 313, a video decoder 315, a video signal processing circuit 318, a graphic generation circuit 319, a panel drive circuit 320, and a display panel 321.
  • the terrestrial tuner 313 receives a broadcast wave signal of terrestrial analog broadcast via an antenna, demodulates it, acquires a video signal, and supplies it to the video decoder 315.
  • the video decoder 315 performs a decoding process on the video signal supplied from the terrestrial tuner 313 and supplies the obtained digital component signal to the video signal processing circuit 318.
  • the video signal processing circuit 318 performs predetermined processing such as noise removal on the video data supplied from the video decoder 315, and supplies the obtained video data to the graphic generation circuit 319.
  • the graphic generation circuit 319 generates video data of a program to be displayed on the display panel 321, image data based on processing based on an application supplied via a network, and the generated video data and image data to the panel drive circuit 320. Supply.
  • the graphic generation circuit 319 generates video data (graphic) for displaying a screen used by the user for selecting an item, and superimposing the video data on the video data of the program.
  • a process of supplying data to the panel drive circuit 320 is also performed as appropriate.
  • the panel drive circuit 320 drives the display panel 321 based on the data supplied from the graphic generation circuit 319, and causes the display panel 321 to display the video of the program and the various screens described above.
  • the display panel 321 includes an LCD (Liquid Crystal Display) or the like, and displays a program video or the like according to control by the panel drive circuit 320.
  • LCD Liquid Crystal Display
  • the television receiver 300 also includes an audio A / D (Analog / Digital) conversion circuit 314, an audio signal processing circuit 322, an echo cancellation / audio synthesis circuit 323, an audio amplification circuit 324, and a speaker 325.
  • an audio A / D (Analog / Digital) conversion circuit 3144 an audio signal processing circuit 322, an echo cancellation / audio synthesis circuit 323, an audio amplification circuit 324, and a speaker 325.
  • the terrestrial tuner 313 acquires not only the video signal but also the audio signal by demodulating the received broadcast wave signal.
  • the terrestrial tuner 313 supplies the acquired audio signal to the audio A / D conversion circuit 314.
  • the audio A / D conversion circuit 314 performs A / D conversion processing on the audio signal supplied from the terrestrial tuner 313, and supplies the obtained digital audio signal to the audio signal processing circuit 322.
  • the audio signal processing circuit 322 performs predetermined processing such as noise removal on the audio data supplied from the audio A / D conversion circuit 314 and supplies the obtained audio data to the echo cancellation / audio synthesis circuit 323.
  • the echo cancellation / voice synthesis circuit 323 supplies the voice data supplied from the voice signal processing circuit 322 to the voice amplification circuit 324.
  • the audio amplification circuit 324 performs D / A conversion processing and amplification processing on the audio data supplied from the echo cancellation / audio synthesis circuit 323, adjusts to a predetermined volume, and then outputs the audio from the speaker 325.
  • the television receiver 300 also has a digital tuner 316 and an MPEG decoder 317.
  • the digital tuner 316 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 317.
  • digital broadcasting terrestrial digital broadcasting, BS (Broadcasting Satellite) / CS (Communications Satellite) digital broadcasting
  • MPEG-TS Motion Picture Experts Group
  • the MPEG decoder 317 releases the scramble applied to the MPEG-TS supplied from the digital tuner 316, and extracts a stream including program data to be played (viewing target).
  • the MPEG decoder 317 decodes the audio packet constituting the extracted stream, supplies the obtained audio data to the audio signal processing circuit 322, decodes the video packet constituting the stream, and converts the obtained video data into the video
  • the signal processing circuit 318 is supplied.
  • the MPEG decoder 317 supplies EPG (Electronic Program Guide) data extracted from the MPEG-TS to the CPU 332 via a path (not shown).
  • the television receiver 300 uses the above-described image decoding device 151 as the MPEG decoder 317 for decoding video packets in this way. Therefore, the MPEG decoder 317 is suppressed from losing the high-frequency component after the weighted prediction as in the case of the image decoding device 151, and a clear sense of image quality is obtained.
  • the video data supplied from the MPEG decoder 317 is subjected to predetermined processing in the video signal processing circuit 318 as in the case of the video data supplied from the video decoder 315.
  • the video data that has been subjected to the predetermined processing is appropriately superposed on the generated video data in the graphic generation circuit 319 and supplied to the display panel 321 via the panel drive circuit 320 to display the image. .
  • the audio data supplied from the MPEG decoder 317 is subjected to predetermined processing in the audio signal processing circuit 322 as in the case of the audio data supplied from the audio A / D conversion circuit 314.
  • the audio data that has been subjected to the predetermined processing is supplied to the audio amplifying circuit 324 via the echo cancel / audio synthesizing circuit 323, and subjected to D / A conversion processing and amplification processing.
  • sound adjusted to a predetermined volume is output from the speaker 325.
  • the television receiver 300 also has a microphone 326 and an A / D conversion circuit 327.
  • the A / D conversion circuit 327 receives the user's voice signal captured by the microphone 326 provided in the television receiver 300 for voice conversation.
  • the A / D conversion circuit 327 performs A / D conversion processing on the received audio signal, and supplies the obtained digital audio data to the echo cancellation / audio synthesis circuit 323.
  • the echo cancellation / audio synthesis circuit 323 When the audio data of the user (user A) of the television receiver 300 is supplied from the A / D conversion circuit 327, the echo cancellation / audio synthesis circuit 323 performs echo cancellation on the audio data of the user A. . The echo cancellation / speech synthesis circuit 323 then outputs voice data obtained by synthesizing with other voice data after echo cancellation from the speaker 325 via the voice amplification circuit 324.
  • the television receiver 300 also includes an audio codec 328, an internal bus 329, an SDRAM (Synchronous Dynamic Random Access Memory) 330, a flash memory 331, a CPU 332, a USB (Universal Serial Bus) I / F 333, and a network I / F 334.
  • SDRAM Serial Dynamic Random Access Memory
  • USB Universal Serial Bus
  • the A / D conversion circuit 327 receives the user's voice signal captured by the microphone 326 provided in the television receiver 300 for voice conversation.
  • the A / D conversion circuit 327 performs A / D conversion processing on the received audio signal, and supplies the obtained digital audio data to the audio codec 328.
  • the audio codec 328 converts the audio data supplied from the A / D conversion circuit 327 into data of a predetermined format for transmission via the network, and supplies the data to the network I / F 334 via the internal bus 329.
  • the network I / F 334 is connected to the network via a cable attached to the network terminal 335.
  • the network I / F 334 transmits the audio data supplied from the audio codec 328 to another device connected to the network.
  • the network I / F 334 receives, for example, audio data transmitted from another device connected via the network via the network terminal 335, and receives it via the internal bus 329 to the audio codec 328. Supply.
  • the voice codec 328 converts the voice data supplied from the network I / F 334 into data of a predetermined format and supplies it to the echo cancellation / voice synthesis circuit 323.
  • the echo cancellation / speech synthesis circuit 323 performs echo cancellation on the voice data supplied from the voice codec 328 and synthesizes voice data obtained by synthesizing with other voice data via the voice amplification circuit 324. And output from the speaker 325.
  • the SDRAM 330 stores various data necessary for the CPU 332 to perform processing.
  • the flash memory 331 stores a program executed by the CPU 332.
  • the program stored in the flash memory 331 is read out by the CPU 332 at a predetermined timing such as when the television receiver 300 is activated.
  • the flash memory 331 also stores EPG data acquired via digital broadcasting, data acquired from a predetermined server via a network, and the like.
  • the flash memory 331 stores MPEG-TS including content data acquired from a predetermined server via a network under the control of the CPU 332.
  • the flash memory 331 supplies the MPEG-TS to the MPEG decoder 317 via the internal bus 329 under the control of the CPU 332, for example.
  • the MPEG decoder 317 processes the MPEG-TS similarly to the MPEG-TS supplied from the digital tuner 316. In this way, the television receiver 300 receives content data including video and audio via the network, decodes it using the MPEG decoder 317, displays the video, and outputs audio. Can do.
  • the television receiver 300 also includes a light receiving unit 337 that receives an infrared signal transmitted from the remote controller 351.
  • the light receiving unit 337 receives infrared rays from the remote controller 351 and outputs a control code representing the contents of the user operation obtained by demodulation to the CPU 332.
  • the CPU 332 executes a program stored in the flash memory 331, and controls the overall operation of the television receiver 300 according to a control code supplied from the light receiving unit 337.
  • the CPU 332 and each part of the television receiver 300 are connected via a path (not shown).
  • the USB I / F 333 transmits and receives data to and from an external device of the television receiver 300 connected via a USB cable attached to the USB terminal 336.
  • the network I / F 334 is connected to the network via a cable attached to the network terminal 335, and transmits / receives data other than audio data to / from various devices connected to the network.
  • the television receiver 300 uses the image decoding device 151 as the MPEG decoder 317, thereby improving the encoding efficiency and obtaining a clear image quality. As a result, the television receiver 300 can obtain and display a higher-definition decoded image from a broadcast wave signal received via an antenna or content data obtained via a network.
  • FIG. 28 is a block diagram illustrating a main configuration example of a mobile phone using an image encoding device and an image decoding device to which the present invention is applied.
  • a cellular phone 400 shown in FIG. 28 includes a main control unit 450, a power supply circuit unit 451, an operation input control unit 452, an image encoder 453, a camera I / F unit 454, an LCD control, which are configured to control each unit in an integrated manner.
  • the mobile phone 400 includes an operation key 419, a CCD (Charge Coupled Devices) camera 416, a liquid crystal display 418, a storage unit 423, a transmission / reception circuit unit 463, an antenna 414, a microphone (microphone) 421, and a speaker 417.
  • CCD Charge Coupled Devices
  • the power supply circuit unit 451 starts up the mobile phone 400 to an operable state by supplying power from the battery pack to each unit.
  • the mobile phone 400 transmits / receives voice signals, sends / receives e-mails and image data in various modes such as a voice call mode and a data communication mode based on the control of the main control unit 450 including a CPU, a ROM, a RAM, and the like. Various operations such as shooting or data recording are performed.
  • the cellular phone 400 converts a voice signal collected by the microphone (microphone) 421 into digital voice data by the voice codec 459, performs a spectrum spread process by the modulation / demodulation circuit unit 458, and transmits and receives
  • the unit 463 performs digital / analog conversion processing and frequency conversion processing.
  • the cellular phone 400 transmits the transmission signal obtained by the conversion process to a base station (not shown) via the antenna 414.
  • 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 400 amplifies the received signal received by the antenna 414 by the transmission / reception circuit unit 463, further performs frequency conversion processing and analog-digital conversion processing, and performs spectrum despreading processing by the modulation / demodulation circuit unit 458. Then, the audio codec 459 converts it into an analog audio signal. The cellular phone 400 outputs an analog audio signal obtained by the conversion from the speaker 417.
  • the mobile phone 400 when transmitting an e-mail in the data communication mode, receives the text data of the e-mail input by operating the operation key 419 in the operation input control unit 452.
  • the cellular phone 400 processes the text data in the main control unit 450 and displays it on the liquid crystal display 418 as an image via the LCD control unit 455.
  • the cellular phone 400 generates e-mail data in the main control unit 450 based on text data received by the operation input control unit 452, user instructions, and the like.
  • the cellular phone 400 subjects the electronic mail data to spread spectrum processing by the modulation / demodulation circuit unit 458 and performs digital / analog conversion processing and frequency conversion processing by the transmission / reception circuit unit 463.
  • the cellular phone 400 transmits the transmission signal obtained by the conversion process to a base station (not shown) via the antenna 414.
  • 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 400 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 463 via the antenna 414, and further performs frequency conversion processing and Analog-digital conversion processing.
  • the mobile phone 400 performs spectrum despreading processing on the received signal by the modulation / demodulation circuit unit 458 to restore the original e-mail data.
  • the cellular phone 400 displays the restored e-mail data on the liquid crystal display 418 via the LCD control unit 455.
  • the mobile phone 400 can record (store) the received e-mail data in the storage unit 423 via the recording / playback unit 462.
  • the storage unit 423 is an arbitrary rewritable storage medium.
  • the storage unit 423 may be 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 400 when transmitting image data in the data communication mode, the mobile phone 400 generates image data with the CCD camera 416 by imaging.
  • the CCD camera 416 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 453 via the camera I / F unit 454.
  • the cellular phone 400 uses the above-described image encoding device 51 as the image encoder 453 that performs such processing. Therefore, the image encoder 453 can reduce the bandwidth of the frame memory and the overhead of the filter coefficient included in the stream information, as in the case of the image encoding device 51.
  • the mobile phone 400 converts the sound collected by the microphone (microphone) 421 during imaging by the CCD camera 416 from analog to digital by the audio codec 459 and further encodes it.
  • the cellular phone 400 multiplexes the encoded image data supplied from the image encoder 453 and the digital audio data supplied from the audio codec 459 by a predetermined method.
  • the cellular phone 400 performs spread spectrum processing on the multiplexed data obtained as a result by the modulation / demodulation circuit unit 458 and digital / analog conversion processing and frequency conversion processing by the transmission / reception circuit unit 463.
  • the cellular phone 400 transmits the transmission signal obtained by the conversion process to a base station (not shown) via the antenna 414.
  • 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 400 can also display the image data generated by the CCD camera 416 on the liquid crystal display 418 via the LCD control unit 455 without passing through the image encoder 453.
  • the cellular phone 400 when receiving data of a moving image file linked to a simple homepage or the like, transmits a signal transmitted from the base station via the antenna 414 to the transmission / reception circuit unit 463. Receive, amplify, and further perform frequency conversion processing and analog-digital conversion processing. The cellular phone 400 performs spectrum despreading processing on the received signal by the modulation / demodulation circuit unit 458 to restore the original multiplexed data. In the cellular phone 400, the demultiplexing unit 457 separates the multiplexed data and divides it into encoded image data and audio data.
  • the cellular phone 400 In the image decoder 456, the cellular phone 400 generates reproduction moving image data by decoding the encoded image data with 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 418 via the unit 455.
  • the moving image data included in the moving image file linked to the simple homepage is displayed on the liquid crystal display 418.
  • the cellular phone 400 uses the above-described image decoding device 151 as the image decoder 456 that performs such processing. Therefore, the image decoder 456 can reduce the bandwidth of the frame memory and the overhead of the filter coefficient included in the stream information, as in the case of the image decoding device 151.
  • the cellular phone 400 simultaneously converts the digital audio data into an analog audio signal in the audio codec 459 and causes the speaker 417 to output it.
  • audio data included in the moving image file linked to the simple homepage is reproduced.
  • the mobile phone 400 can record (store) the data linked to the received simplified home page or the like in the storage unit 423 via the recording / playback unit 462. .
  • the mobile phone 400 can analyze the two-dimensional code obtained by the CCD camera 416 by the main control unit 450 and acquire information recorded in the two-dimensional code.
  • the mobile phone 400 can communicate with an external device by infrared rays at the infrared communication unit 481.
  • the cellular phone 400 uses the image encoding device 51 as the image encoder 453, so that loss of high-frequency components after weighted prediction is suppressed, and prediction accuracy is improved. As a result, the mobile phone 400 can provide encoded data (image data) with high encoding efficiency to other devices.
  • the cellular phone 400 uses the image decoding device 151 as the image decoder 456, so that loss of high-frequency components after weighted prediction is suppressed, and a clear sense of image quality is obtained. As a result, the mobile phone 400 can obtain and display a higher-definition decoded image from a moving image file linked to a simple homepage, for example.
  • the cellular phone 400 uses the CCD camera 416, but instead of the CCD camera 416, an image sensor (CMOS image sensor) using CMOS (Complementary Metal Metal Oxide Semiconductor) is used. May be. Also in this case, the mobile phone 400 can capture the subject and generate image data of the subject image, as in the case where the CCD camera 416 is used.
  • CMOS image sensor Complementary Metal Metal Oxide Semiconductor
  • the mobile phone 400 has been described.
  • an imaging function similar to that of the mobile phone 400 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 image encoding device 51 and the image decoding device 151 can be applied to any device as long as the device has a communication function as in the case of the mobile phone 400.
  • FIG. 29 is a block diagram showing a main configuration example of a hard disk recorder using the image encoding device and the image decoding device to which the present invention is applied.
  • a hard disk recorder 500 shown in FIG. 29 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 for storing in a built-in hard disk and providing the stored data to the user at a timing according to the user's instruction.
  • the hard disk recorder 500 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 500 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 500 decodes audio data and video data recorded in the built-in hard disk, supplies the decoded data to the monitor 560, and displays the image on the screen of the monitor 560. Further, the hard disk recorder 500 can output the sound from the speaker of the monitor 560.
  • the hard disk recorder 500 decodes, for example, audio data and video data extracted from a broadcast wave signal acquired via a tuner, or audio data and video data acquired from another device via a network, and monitors 560. And the image is displayed on the screen of the monitor 560.
  • the hard disk recorder 500 can also output the sound from the speaker of the monitor 560.
  • the hard disk recorder 500 includes a receiving unit 521, a demodulating unit 522, a demultiplexer 523, an audio decoder 524, a video decoder 525, and a recorder control unit 526.
  • the hard disk recorder 500 further includes an EPG data memory 527, a program memory 528, a work memory 529, a display converter 530, an OSD (On Screen Display) control unit 531, a display control unit 532, a recording / playback unit 533, a D / A converter 534, And a communication unit 535.
  • the display converter 530 has a video encoder 541.
  • the recording / playback unit 533 includes an encoder 551 and a decoder 552.
  • the receiving unit 521 receives an infrared signal from a remote controller (not shown), converts it into an electrical signal, and outputs it to the recorder control unit 526.
  • the recorder control unit 526 is constituted by, for example, a microprocessor and executes various processes according to a program stored in the program memory 528. At this time, the recorder control unit 526 uses the work memory 529 as necessary.
  • the communication unit 535 is connected to the network and performs communication processing with other devices via the network.
  • the communication unit 535 is controlled by the recorder control unit 526, communicates with a tuner (not shown), and mainly outputs a channel selection control signal to the tuner.
  • the demodulator 522 demodulates the signal supplied from the tuner and outputs the demodulated signal to the demultiplexer 523.
  • the demultiplexer 523 separates the data supplied from the demodulation unit 522 into audio data, video data, and EPG data, and outputs them to the audio decoder 524, the video decoder 525, or the recorder control unit 526, respectively.
  • the audio decoder 524 decodes the input audio data by, for example, the MPEG system, and outputs it to the recording / playback unit 533.
  • the video decoder 525 decodes the input video data using, for example, the MPEG system, and outputs the decoded video data to the display converter 530.
  • the recorder control unit 526 supplies the input EPG data to the EPG data memory 527 for storage.
  • the display converter 530 encodes the video data supplied from the video decoder 525 or the recorder control unit 526 into video data of, for example, NTSC (National Television Standards Committee) using the video encoder 541 and outputs the video data to the recording / reproducing unit 533.
  • the display converter 530 converts the screen size of the video data supplied from the video decoder 525 or the recorder control unit 526 into a size corresponding to the size of the monitor 560.
  • the display converter 530 further converts the video data whose screen size is converted into NTSC video data by the video encoder 541, converts the video data into an analog signal, and outputs the analog signal to the display control unit 532.
  • the display control unit 532 superimposes the OSD signal output from the OSD (On Screen Display) control unit 531 on the video signal input from the display converter 530 under the control of the recorder control unit 526 and displays the OSD signal on the display of the monitor 560. Output and display.
  • OSD On Screen Display
  • the monitor 560 is also supplied with the audio data output from the audio decoder 524 after being converted into an analog signal by the D / A converter 534.
  • the monitor 560 outputs this audio signal from a built-in speaker.
  • the recording / playback unit 533 has a hard disk as a storage medium for recording video data, audio data, and the like.
  • the recording / playback unit 533 encodes the audio data supplied from the audio decoder 524 by the encoder 551 in the MPEG system. Further, the recording / reproducing unit 533 encodes the video data supplied from the video encoder 541 of the display converter 530 by the MPEG method using the encoder 551. The recording / playback unit 533 combines the encoded data of the audio data and the encoded data of the video data by a multiplexer. The recording / reproducing unit 533 amplifies the synthesized data by channel coding, and writes the data to the hard disk via the recording head.
  • the recording / playback unit 533 plays back the data recorded on the hard disk via the playback head, amplifies it, and separates it into audio data and video data by a demultiplexer.
  • the recording / playback unit 533 uses the decoder 552 to decode the audio data and video data using the MPEG system.
  • the recording / playback unit 533 performs D / A conversion on the decoded audio data and outputs it to the speaker of the monitor 560.
  • the recording / playback unit 533 performs D / A conversion on the decoded video data and outputs it to the display of the monitor 560.
  • the recorder control unit 526 reads the latest EPG data from the EPG data memory 527 based on the user instruction indicated by the infrared signal from the remote controller received via the receiving unit 521, and supplies it to the OSD control unit 531. To do.
  • the OSD control unit 531 generates image data corresponding to the input EPG data, and outputs the image data to the display control unit 532.
  • the display control unit 532 outputs the video data input from the OSD control unit 531 to the display of the monitor 560 for display. As a result, an EPG (electronic program guide) is displayed on the display of the monitor 560.
  • the hard disk recorder 500 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 535 is controlled by the recorder control unit 526, acquires encoded data such as video data, audio data, and EPG data transmitted from another device via the network, and supplies it to the recorder control unit 526. To do.
  • the recorder control unit 526 supplies the encoded data of the acquired video data and audio data to the recording / reproducing unit 533 and stores the data in the hard disk.
  • the recorder control unit 526 and the recording / playback unit 533 may perform processing such as re-encoding as necessary.
  • the recorder control unit 526 decodes the acquired encoded data of video data and audio data, and supplies the obtained video data to the display converter 530.
  • the display converter 530 processes the video data supplied from the recorder control unit 526 in the same manner as the video data supplied from the video decoder 525, supplies the processed video data to the monitor 560 via the display control unit 532, and displays the image. .
  • the recorder control unit 526 may supply the decoded audio data to the monitor 560 via the D / A converter 534 and output the sound from the speaker.
  • the recorder control unit 526 decodes the encoded data of the acquired EPG data, and supplies the decoded EPG data to the EPG data memory 527.
  • the hard disk recorder 500 as described above uses the image decoding device 151 as a decoder incorporated in the video decoder 525, the decoder 552, and the recorder control unit 526. Therefore, the video decoder 525, the decoder 552, and the decoder built in the recorder control unit 526 suppress the loss of high-frequency components after weighted prediction, as in the case of the image decoding device 151, and the sharpness of image quality. Is obtained.
  • the hard disk recorder 500 can generate a predicted image with high accuracy.
  • the hard disk recorder 500 acquires, for example, encoded data of video data received via a tuner, encoded data of video data read from the hard disk of the recording / playback unit 533, or via a network. From the encoded data of the video data, a higher-definition decoded image can be obtained and displayed on the monitor 560.
  • the hard disk recorder 500 uses the image encoding device 51 as the encoder 551. Therefore, as in the case of the image encoding device 51, the encoder 551 suppresses the loss of the high-frequency component after the weighted prediction and improves the prediction accuracy.
  • the hard disk recorder 500 can improve the encoding efficiency of the encoded data recorded on the hard disk, for example. As a result, the hard disk recorder 500 can use the storage area of the hard disk more efficiently at a higher speed.
  • the hard disk recorder 500 that records video data and audio data on the hard disk has been described.
  • any recording medium may be used.
  • the image encoding device 51 and the image decoding device 151 are applied as in the case of the hard disk recorder 500 described above. Can do.
  • FIG. 30 is a block diagram illustrating a main configuration example of a camera using an image decoding device and an image encoding device to which the present invention has been applied.
  • the lens block 611 causes light (that is, an image of the subject) to enter the CCD / CMOS 612.
  • the CCD / CMOS 612 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 613.
  • the camera signal processing unit 613 converts the electrical signal supplied from the CCD / CMOS 612 into Y, Cr, and Cb color difference signals and supplies them to the image signal processing unit 614.
  • the image signal processing unit 614 performs predetermined image processing on the image signal supplied from the camera signal processing unit 613 under the control of the controller 621, and encodes the image signal by the encoder 641 using, for example, the MPEG method. To do.
  • the image signal processing unit 614 supplies encoded data generated by encoding the image signal to the decoder 615. Further, the image signal processing unit 614 acquires display data generated in the on-screen display (OSD) 620 and supplies it to the decoder 615.
  • OSD on-screen display
  • the camera signal processing unit 613 appropriately uses DRAM (Dynamic Random Access Memory) 618 connected via the bus 617, and image data or a code obtained by encoding the image data as necessary.
  • DRAM Dynamic Random Access Memory
  • the digitized data is held in the DRAM 618.
  • the decoder 615 decodes the encoded data supplied from the image signal processing unit 614 and supplies the obtained image data (decoded image data) to the LCD 616. In addition, the decoder 615 supplies the display data supplied from the image signal processing unit 614 to the LCD 616. The LCD 616 appropriately synthesizes the image of the decoded image data supplied from the decoder 615 and the image of the display data, and displays the synthesized image.
  • the on-screen display 620 outputs display data such as menu screens and icons composed of symbols, characters, or figures to the image signal processing unit 614 via the bus 617 under the control of the controller 621.
  • the controller 621 executes various processes based on a signal indicating the content instructed by the user using the operation unit 622, and also via the bus 617, an image signal processing unit 614, a DRAM 618, an external interface 619, an on-screen display. 620, media drive 623, and the like are controlled.
  • the FLASH ROM 624 stores programs and data necessary for the controller 621 to execute various processes.
  • the controller 621 can encode the image data stored in the DRAM 618 or decode the encoded data stored in the DRAM 618 instead of the image signal processing unit 614 or the decoder 615.
  • the controller 621 may perform the encoding / decoding process by a method similar to the encoding / decoding method of the image signal processing unit 614 or the decoder 615, or the image signal processing unit 614 or the decoder 615 can handle this.
  • the encoding / decoding process may be performed by a method that is not performed.
  • the controller 621 reads image data from the DRAM 618 and supplies it to the printer 634 connected to the external interface 619 via the bus 617. Let it print.
  • the controller 621 reads the encoded data from the DRAM 618 and supplies it to the recording medium 633 attached to the media drive 623 via the bus 617.
  • the recording medium 633 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 633 may be of any type 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.
  • media drive 623 and the recording medium 633 may be integrated and configured by a non-portable storage medium such as a built-in hard disk drive or SSD (Solid State Drive).
  • SSD Solid State Drive
  • the external interface 619 includes, for example, a USB input / output terminal and is connected to the printer 634 when printing an image.
  • a drive 631 is connected to the external interface 619 as necessary, and a removable medium 632 such as a magnetic disk, an optical disk, or a magneto-optical disk is appropriately mounted, and a computer program read from them is loaded as necessary. Installed in the FLASH ROM 624.
  • the external interface 619 has a network interface connected to a predetermined network such as a LAN or the Internet.
  • the controller 621 can read the encoded data from the DRAM 618 in accordance with an instruction from the operation unit 622 and supply the encoded data from the external interface 619 to another device connected via the network. Also, the controller 621 acquires encoded data and image data supplied from other devices via the network via the external interface 619 and holds them in the DRAM 618 or supplies them to the image signal processing unit 614. Can be.
  • the camera 600 as described above uses the image decoding device 151 as the decoder 615. Therefore, as in the case of the image decoding device 151, the decoder 615 suppresses the loss of the high-frequency component after the weighted prediction and obtains a clear sense of image quality.
  • the camera 600 can realize high-speed processing and can generate a highly accurate predicted image.
  • the camera 600 encodes, for example, image data generated in the CCD / CMOS 612, encoded data of video data read from the DRAM 618 or the recording medium 633, and encoded video data acquired via the network.
  • a higher-resolution decoded image can be obtained from the data and displayed on the LCD 616.
  • the camera 600 uses the image encoding device 51 as the encoder 641. Therefore, as in the case of the image encoding device 51, the encoder 641 is suppressed from losing high-frequency components after weighted prediction, and prediction accuracy is improved.
  • the camera 600 can improve the encoding efficiency of the encoded data recorded on the hard disk. As a result, the camera 600 can use the storage area of the DRAM 618 and the recording medium 633 more efficiently at a higher speed.
  • the decoding method of the image decoding device 151 may be applied to the decoding process performed by the controller 621.
  • the encoding method of the image encoding device 51 may be applied to the encoding process performed by the controller 621.
  • the image data captured by the camera 600 may be a moving image or a still image.
  • the image encoding device 51 and the image decoding device 151 can also be applied to devices and systems other than the devices described above.
  • FIG. 31 illustrates a configuration of a second embodiment of an image encoding device as an image processing device to which the present invention has been applied.
  • the image encoding apparatus 700 performs a filtering process on a reference image using SIFO (Single-pass-switched-Interpolation-Filter-with-Offset).
  • SIFO Single-pass-switched-Interpolation-Filter-with-Offset
  • SIFO is an intermediate interpolation filter between a fixed interpolation filter and AIF. Specifically, in SIFO, for each slice, a filter coefficient of a desired filter coefficient set is set from a plurality of predetermined types of filter coefficient sets (hereinafter referred to as filter coefficient sets), and an offset is set. Can be set. Details of SIFO are described in, for example, VCEG (Visual Coding Expert Group) AI35, VCEG-AJ29, and the like.
  • the motion prediction / compensation unit 701 is based on the reference image supplied from the frame memory 72 via the switch 73 and the inter-processed image supplied from the screen rearrangement buffer 62. For each inter prediction mode, the offset to be set in the SIFO is determined when the filtering process is performed on the reference image of each slice.
  • the motion prediction / compensation unit 701 sets, for each candidate inter prediction mode, the combination of the offset of the target slice and the filter coefficients of each sub pel of all the filter coefficient sets that are candidates corresponding to the inter prediction mode. Filter processing is performed on the reference image using the SIFO.
  • the combination of filter coefficients of each sub-pel of all filter coefficient sets is referred to as all combinations of all filter coefficient sets.
  • the motion prediction / compensation unit 701 performs motion prediction for each block in all candidate inter prediction modes based on the inter-processed image and the filtered reference image, and generates a motion vector for each block. . Based on the generated motion vector, the motion prediction / compensation unit 701 performs compensation processing for each block on the reference image after the filter processing, and generates a predicted image. Then, the motion prediction / compensation unit 701 obtains a cost function value for each block for all combinations of all candidate filter coefficient sets corresponding to all candidate inter prediction modes.
  • the motion prediction / compensation unit 701 determines the optimal inter prediction mode for each block based on the cost function values of all inter prediction modes that are candidates corresponding to the reference image after the optimal filter processing.
  • the optimal filter process is a filter process by SIFO in which a filter coefficient determined for the same type of slice as the target slice of the frame immediately before the target frame is set.
  • the motion prediction / compensation unit 701 supplies the prediction image generated based on the reference image after the optimum filter processing in the optimum inter prediction mode and the cost function value corresponding to the prediction image to the prediction image selection unit 76.
  • the motion prediction / compensation unit 701 uses the optimal inter prediction mode of each block of the target slice and the cost function values of all combinations of all filter coefficient sets corresponding to the optimal inter prediction mode.
  • the filter coefficient in the optimum filter processing of the same type of slice as the target slice of the next frame is determined.
  • the motion prediction / compensation unit 701 When the predicted image in the optimal inter prediction mode is selected by the predicted image selection unit 76, the motion prediction / compensation unit 701 outputs inter prediction mode information indicating the optimal inter prediction mode to the lossless encoding unit 66.
  • motion vector information, reference frame information, slice information, a set number that is a number for specifying a filter coefficient set in an optimum filter process, an offset, and the like are also output to the lossless encoding unit 66.
  • motion vector information, reference frame information, slice information, set number, offset, and the like are subjected to lossless encoding processing and inserted into the header portion of the compressed image.
  • the slice information, set number, and offset are inserted into the slice header.
  • FIG. 32 is a block diagram illustrating a configuration example of the motion prediction / compensation unit 701. In FIG. 32, the switch 73 of FIG. 31 is omitted.
  • the configuration of the motion prediction / compensation unit 701 in FIG. 32 mainly includes a fixed interpolation filter 81, a filter coefficient storage unit 82, a variable interpolation filter 83, a filter coefficient calculation unit 84, a motion prediction unit 85, a motion compensation unit 86, and a control.
  • 9 is different from the configuration of FIG. 9 in that a filter coefficient selection unit 721, a SIFO 722, a motion prediction unit 723, a motion compensation unit 724, and a control unit 725 are provided instead of the unit 87.
  • the filter coefficient selection unit 721 of the motion prediction / compensation unit 701 is supplied with an image to be inter-processed among the input images supplied from the image rearrangement buffer 62, and from the frame memory 72 via the switch 73, the reference image. Is supplied.
  • the filter coefficient selection unit 721 calculates, for each slice, the difference between the average luminance values of the image to be inter-processed and the reference image for each candidate inter prediction mode. Based on the difference, the filter coefficient selection unit 721 determines an offset for each candidate inter prediction mode for each slice, and supplies the determined offset to the SIFO 722. Further, the filter coefficient selection unit 721 supplies an offset to the lossless encoding unit 66 in accordance with an instruction from the control unit 725.
  • the SIFO 722 performs a filtering process on the reference image from the frame memory 72 based on the offset and the filter coefficient supplied from the filter coefficient selection unit 721.
  • the SIFO 722 sets the pixel values a, b, and c of the pixel at the fractional position.
  • the following equation (24) is used.
  • h [pos] [n] is a filter coefficient
  • pos indicates the position of the sub pel shown in FIG. 6
  • n indicates the number of the filter coefficient.
  • Offset [pos] indicates the offset of pos sub-pel.
  • the SIFO 722 uses the pixel values d to o of the pixels at the fractional positions as the pixel values G1, G2, G, G3, G4, and G5 of the pixels at the integer positions shown in FIG. It calculates
  • the SIFO 722 functions as a strong low-pass filter (LPF) for the pixel value g. Thereby, the noise of the reference image after filter processing can be reduced.
  • LPF low-pass filter
  • the function as a strong LPF for the pixel value g in the SIFO 722 may be different between when the L0L1 weighted prediction is used and when the L0L1 weighted prediction is not used.
  • the SIFO 722 does not function as a strong LPF with respect to the pixel value g, and when L0L1 weighted prediction is not performed, the SIFO 722 functions as a strong LPF with respect to the pixel value g. .
  • L0L1 weighted prediction in which temporally strong LPF characteristics are obtained, it is possible to delete the function as an unnecessary spatially strong LPF.
  • the SIFO 722 may function as a strong LPF only for the pixel value g of either the L0 reference pixel or the L1 reference pixel. Further, the function as a strong LPF for the pixel value g by the SIFO 722 may be switched according to the inter prediction mode.
  • the filter coefficient selection unit 721 supplies the reference image after the filter processing for each block to the motion compensation unit 724 and the motion prediction unit 723.
  • the motion prediction unit 723 calculates motion vectors of all candidate inter prediction modes based on the image to be inter-processed from the input images from the screen rearrangement buffer 62 and the reference image after the filter processing from the SIFO 722. Generate for each block. The motion prediction unit 723 outputs the generated motion vector to the motion compensation unit 724.
  • the motion compensation unit 724 uses the motion vector supplied from the motion prediction unit 723 to perform compensation processing for each block on the filtered reference image supplied from the SIFO 722 to generate a predicted image. Then, the motion compensation unit 724 calculates a cost function value for each block for all combinations of all filter coefficient sets corresponding to all candidate inter prediction modes.
  • the motion compensation unit 724 selects an inter prediction mode that minimizes the cost function value for each block based on the cost function values of all inter prediction modes that are candidates corresponding to the reference image after the optimal filter processing. The optimum inter prediction mode is determined. Then, the motion compensation unit 724 supplies the predicted image generated based on the reference image after the optimal filter processing in the optimal inter prediction mode and the cost function value corresponding to the predicted image to the predicted image selection unit 76. . In addition, the motion compensation unit 724 supplies the cost function values of all combinations of all filter coefficient sets corresponding to the optimal inter prediction mode of each block of the target slice to the control unit 725.
  • the motion compensation unit 724 When the predicted image in the optimal inter prediction mode is selected by the predicted image selection unit 76, the motion compensation unit 724 includes prediction mode information indicating the optimal inter prediction mode and the type of slice under the control of the control unit 725. Slice information, motion vectors, reference image information, and the like are output to the lossless encoding unit 66.
  • the control unit 725 sets the prediction mode.
  • the control unit 725 controls the filter coefficient selection unit 721 according to the type of prediction in the set prediction mode, that is, whether the prediction is L0L1 weighted prediction or other prediction. Specifically, in the case of L0L1 weighted prediction, the control unit 725 supplies the filter coefficient set set number used for the L0L1 weighted prediction to the filter coefficient selection unit 721, and outputs the filter coefficient of the filter coefficient set. Instruct. In addition, in the case of other predictions (that is, prediction in which L0L1 weighted prediction is not performed), the control unit 725 supplies the filter coefficient set set number used for other predictions to the filter coefficient selection unit 721, and the filter coefficient set Specifies the output of the filter coefficient.
  • control unit 725 for each inter prediction mode, based on the cost function values of all combinations of all filter coefficient sets corresponding to the optimal inter prediction mode of each block of the target slice supplied from the motion compensation unit 724, A filter coefficient in the optimum filter process is determined. Specifically, the control unit 725 determines the optimal combination of the filter coefficients of each sub pel that minimizes the sum of the target slices of the cost function value of the block having each prediction mode as the optimal inter prediction mode. The filter coefficient in the filter processing is used.
  • control unit 725 upon receiving the signal that the inter prediction image has been selected from the prediction image selection unit 76, the control unit 725 outputs necessary information to the lossless encoding unit 66 to the motion compensation unit 724 and the filter coefficient selection unit 721. To control. Further, the control unit 725 supplies the filter coefficient set number in the optimum filter processing to the lossless encoding unit 66 in response to the signal that the inter prediction image is selected from the prediction image selection unit 76.
  • FIG. 33 is a block diagram illustrating a configuration example of the filter coefficient selection unit 721 in the case of pattern A.
  • the filter coefficient selection unit 721 includes an offset determination unit 740, an A1 filter coefficient memory 741, an A2 filter coefficient memory 742, an A3 filter coefficient memory 743, an A4 filter coefficient memory 744, and a selector 745. .
  • the offset determination unit 740 of the filter coefficient selection unit 721 calculates, for each slice, the difference between the average value of the luminance of the image to be inter-processed and the reference image for each candidate inter prediction mode. Based on the difference, the offset determination unit 740 determines an offset for each candidate inter prediction mode for each slice, and supplies the determined offset to the SIFO 722. Further, the offset determination unit 740 supplies the offset to the lossless encoding unit 66 in response to an instruction from the control unit 725.
  • the A1 filter coefficient memory 741 stores a plurality of types of filter coefficients A1 used in all inter prediction modes when L0L1 weighted prediction is not used as a filter coefficient set.
  • the A1 filter coefficient memory 741 selects a filter coefficient A1 of a predetermined filter coefficient set among the plurality of types of stored filter coefficient sets for each sub-pel in response to an instruction from the control unit 725.
  • the A1 filter coefficient memory 741 outputs the filter coefficients A1 of all selected sub-pels to the selector 745.
  • the A2 filter coefficient memory 742 stores a plurality of types of filter coefficients A2 used in the bi-prediction mode when using L0L1 weighted prediction as a filter coefficient set. In response to an instruction from the control unit 725, the A2 filter coefficient memory 742 selects a filter coefficient A2 of a predetermined filter coefficient set among the plurality of types of stored filter coefficient sets for each sub-pel. The A2 filter coefficient memory 742 outputs the filter coefficients A2 of all selected sub-pels to the selector 745.
  • the A3 filter coefficient memory 743 stores a plurality of types of filter coefficients A3 used in the direct mode when L0L1 weighted prediction is used as a filter coefficient set. In response to an instruction from the control unit 725, the A3 filter coefficient memory 743 selects a filter coefficient A3 of a predetermined filter coefficient set among the plurality of types of stored filter coefficient sets for each sub-pel. The A3 filter coefficient memory 743 outputs the filter coefficients A3 of all selected sub-pels to the selector 745.
  • the A4 filter coefficient memory 744 stores a plurality of types of filter coefficients A4 used in the skip mode when using L0L1 weighted prediction as a filter coefficient set.
  • the A4 filter coefficient memory 744 selects a filter coefficient A4 of a predetermined filter coefficient set for each sub-pel from a plurality of types of stored filter coefficient sets in response to an instruction from the control unit 725.
  • the A4 filter coefficient memory 744 outputs the filter coefficients A4 of all selected sub-pels to the selector 745.
  • the selector 745 selects one filter coefficient from the filter coefficients A1 to A4 in accordance with an instruction from the control unit 725, and outputs the selected filter coefficient to the SIFO 722.
  • the A1 filter coefficient memory 741 when there is no need to particularly distinguish the A1 filter coefficient memory 741, the A2 filter coefficient memory 742, the A3 filter coefficient memory 743, and the A4 filter coefficient memory 744, they are collectively referred to as a filter coefficient memory.
  • FIG. 34 is a diagram illustrating an example of information stored in the A1 filter coefficient memory 741.
  • filter coefficient memory 741 in the A1 filter coefficient memory 741, four types of filter coefficients A1 are stored as filter coefficient sets 761-1 to 761-4.
  • the number of filter coefficient sets stored in the A1 filter coefficient memory 741 is not limited to four. However, if the number of filter coefficient sets is large, the information amount of the set number inserted in the slice header increases, and thus the overhead increases. On the other hand, if the number of filter coefficient sets is small, optimal filter coefficients cannot be set, and the coding efficiency may be reduced. Therefore, the number of filter coefficient sets is determined according to the overhead of the system composed of the image encoding device 700 and an image decoding device described later and the allowable range of encoding efficiency.
  • the storage information of the A1 filter coefficient memory 741 has been described.
  • a plurality of filter coefficient sets are stored in the A2 filter coefficient memory 742, the A3 filter coefficient memory 743, and the A4 filter coefficient memory 744 as well. Is done.
  • the encoding process of the image encoding device 700 is the same as the encoding process of FIG. 15 except for the motion prediction / compensation process in step S22 of the encoding process of FIG. Therefore, only the motion prediction / compensation processing by the motion prediction / compensation unit 701 of the image encoding device 700 will be described here.
  • FIG. 35 is a flowchart for explaining motion prediction / compensation processing by the motion prediction / compensation unit 701 of the image encoding device 700. This motion prediction / compensation process is performed for each slice.
  • step S201 of FIG. 35 the control unit 725 (FIG. 32) of the motion prediction / compensation unit 701 changes the current inter prediction mode to a predetermined inter prediction mode that has not yet been set among candidate inter prediction modes. Set.
  • step S202 the offset determination unit 740 (FIG. 33) of the filter coefficient selection unit 721 calculates the average luminance value of the inter-processed image in the input image and the average luminance of the reference image corresponding to the current inter prediction mode. Calculate the value.
  • step S203 the offset determination unit 740 calculates the difference between the average value of the luminance of the image to be inter-processed among the input images and the reference image corresponding to the current inter prediction mode.
  • step S204 the offset determination unit 740 determines whether or not the difference calculated in step S203 is equal to or less than a predetermined threshold (for example, 2).
  • a predetermined threshold for example, 2.
  • the offset determination unit 740 determines the difference as an offset for each slice of the target slice.
  • the offset for each slice is a common offset for all sub-pels of each slice. That is, when the difference is equal to or smaller than a predetermined threshold, one offset for one slice is determined as an offset for each slice, and the offset is an offset for all sub-pels. Then, the offset determination unit 740 supplies the offset for each slice to the SIFO 722, and the process proceeds to step S207.
  • the offset determination unit 740 determines a value for each sub-pel based on the difference as an offset for each sub-pel.
  • the offset of h is 10 for a total of 15 sub-pels from a to o, and o, g, f, n, d, l, b, h , j, c, a, k, i, m, e, the offset is determined so that the offset increases by 10/15.
  • the offsets of o, g, f, n, d, l, b, h, j, c, a, k, i, m, e with respect to sub pel are 80/15, 90/15, 100/15, 110 / 15,120 / 15,130 / 15,140 / 15,10,160 / 15,170 / 15,180 / 15,190 / 15,200 / 15,210 / 15,220 / 15.
  • the offset determination unit 740 supplies the determined offset to the SIFO 722, and the process proceeds to step S207.
  • step S207 the control unit 725 selects a combination of filter coefficients of each sub-pel that has not yet been selected from the filter coefficient set stored in the filter coefficient memory corresponding to the current inter prediction mode.
  • control unit 725 first recognizes a filter coefficient memory corresponding to the filter coefficient selected in step S208 described later. Next, the control unit 725 recognizes all the set numbers of the filter coefficient sets in the filter coefficient memory, and selects the set number for each sub pel, so that the set number of each sub pel that has not yet been selected. Determine the combination.
  • the control unit 725 assigns the set number of the filter coefficient set 761-1 in the A1 filter coefficient memory 741 to a, b, c, d, e, f, g, h, i, j, k, l, respectively. , m, n, o are determined as a set number of 15 sub-pels. In addition, the control unit 725 sets the set number of the filter coefficient set 761-1 in the A1 filter coefficient memory 741 to a, b, c, d, e, f, g, h, i, j, k, l, respectively. , m, n are determined as the set number of 14 sub-pels, and the set number of the filter coefficient set 761-2 is determined as the set number of the sub-pel of o.
  • the control unit 725 instructs the combination of the set numbers to the filter coefficient memory corresponding to the filter coefficient selected in step S208. Accordingly, the filter coefficient memory reads out the filter coefficient of each sub-pel from the filter coefficient set of the set number based on the combination of the set numbers of the sub-pels instructed from the control unit 725, and supplies the filter coefficient to the selector 745.
  • step S208 the filter coefficient selection unit 721 performs a filter coefficient selection process. Since this filter coefficient selection process is the same as the filter coefficient selection process of FIG.
  • the filter coefficient A1, the filter coefficient A2, the filter coefficient A3, or the filter coefficient A4 selected by the filter coefficient selection process is supplied to the SIFO 72.
  • step S209 the SIFO 722 performs a filtering process on the reference image from the frame memory 72 based on the offset and the filter coefficient supplied from the filter coefficient selection unit 721.
  • the filter coefficient selection unit 721 supplies the filtered reference image to the motion compensation unit 724 and the motion prediction unit 723.
  • step S210 the motion prediction unit 723 performs motion prediction for each block using the inter-processed image of the input image from the screen rearrangement buffer 62 and the reference image after the filter processing from the SIFO 722, Generate motion vectors.
  • the motion prediction unit 723 outputs the generated motion vector to the motion compensation unit 724.
  • step S211 the motion compensation unit 724 performs compensation processing for each block using the filtered reference image supplied from the SIFO 722 and the motion vector supplied from the motion prediction unit 723, and generates a predicted image. Then, the motion compensation unit 724 obtains a cost function value for each block.
  • step S212 the control unit 725 determines whether or not all combinations of filter coefficients of each sub-pel within the filter coefficient set corresponding to the current inter prediction mode have been selected in the process of step S207. If it is determined in step S212 that not all combinations have been selected, the process returns to step S207, and the processes in steps S207 to S212 are repeated until all combinations are selected.
  • step S213 the control unit 725 determines whether all candidate inter prediction modes have been set as the current inter prediction mode in step S201. Determine.
  • step S213 If it is determined in step S213 that all candidate inter prediction modes are not yet set as the current inter prediction mode, the process returns to step S201. Then, the processes of steps S201 to S213 are repeated until all candidate inter prediction modes are set as the current inter prediction mode.
  • step S213 if it is determined in step S213 that all candidate inter prediction modes are set as the current inter prediction mode, the process proceeds to step S214.
  • step S214 the motion compensation unit 724 determines, for each block, the cost function values calculated in step S211 based on the cost function values of all inter prediction modes that are candidates corresponding to the reference image after the optimal filter process.
  • the inter prediction mode that minimizes the cost function value is determined as the optimal inter prediction mode.
  • a process using a predetermined filter coefficient (for example, a filter coefficient as a filter coefficient set whose set number is 0) is the optimal filter process.
  • the motion compensation unit 724 supplies the predicted image generated based on the reference image after the optimal filter processing in the optimal inter prediction mode and the cost function value corresponding to the predicted image to the predicted image selection unit 76. .
  • the prediction mode information indicating the optimal inter prediction mode and the motion vector corresponding to the optimal inter prediction mode are controlled by the control unit 725. Is output to the lossless encoding unit 66.
  • the motion compensation unit 724 supplies the cost function values of all combinations of all filter coefficient sets corresponding to the optimal inter prediction mode of each block to the control unit 725.
  • step S215 the control unit 725 sets each inter prediction mode to the optimum inter prediction mode based on the cost function values of all combinations of all filter coefficient sets corresponding to the optimum inter prediction mode of each block supplied from the motion compensation unit 724.
  • the sum of the target slice of the cost function value for each combination of filter coefficients of the block to be set to the prediction mode is obtained. That is, the control unit 725 adds the cost function value to the slice for each combination of filter coefficients corresponding to the optimal inter prediction mode for the block whose optimal inter prediction mode is the predetermined inter prediction mode. Do this for each mode.
  • step S216 the control unit 725 minimizes the sum of cost function values for each inter prediction mode based on the sum of cost function values for each combination of filter coefficients of each inter prediction mode obtained in step S215.
  • a combination of filter coefficients is set as a filter coefficient in the optimum filter processing.
  • the set number of each filter coefficient for each sub-pel is supplied to the lossless encoding unit 66 according to the signal that the inter prediction image is selected from the prediction image selection unit 76, and the target slice of the next frame of the target frame. Is inserted into the slice header of the same type of slice. Then, the motion prediction / compensation process ends.
  • the image coding apparatus 700 can set the filter coefficient and the offset in the optimum filter process with one type of motion prediction. As a result, the calculation cost of the filter coefficient can be reduced as compared with the image encoding device 51 of FIG.
  • the overhead can be reduced compared to the image encoding device 51 of FIG. Can do.
  • a filter coefficient set is selected for each sub-pel, but a common filter coefficient set may be selected for all sub-pels.
  • the image coding apparatus 700 only has to obtain the cost function value for each filter coefficient set in order to obtain the filter coefficient in the optimum filter processing, and thus can reduce overhead.
  • the information for specifying the filter coefficient set is one set number for each inter prediction mode, the bit amount of the information can be reduced.
  • both the selection of the filter coefficient set for each sub-pel and the selection of one common filter coefficient set for all the sub-pels may be selectively performed.
  • a flag indicating which selection has been made is inserted into the slice header. For example, this flag is 1 when a filter coefficient set is selected for each sub-pel, and is 0 when a common filter coefficient set is selected for all sub-pels.
  • a filter coefficient set is provided for each of the filter coefficients A1 to A4.
  • a common filter coefficient set is provided for the filter coefficients A1 to A4. May be.
  • a filter coefficient set is provided for each of the filter coefficients A1 to A4
  • only a filter coefficient set suitable for each of the filter coefficients A1 to A4 can be provided. Therefore, the number of filter coefficient sets to be prepared as each of the filter coefficient A1 to the filter coefficient A4 is smaller than when a common filter coefficient set is provided, and the bit number of the set number inserted in the slice header is reduced. can do.
  • FIG. 36 shows the configuration of the second embodiment of an image decoding apparatus as an image processing apparatus to which the present invention is applied.
  • the image decoding apparatus 800 decodes the compressed image output by the image encoding apparatus 700 in FIG.
  • At least a plurality of filter coefficients used for L0L1 weighted prediction and other filter coefficients used for prediction are stored as a filter coefficient set.
  • the motion compensation unit 801 sets the filter coefficient of the filter coefficient set of the set number included in the slice header from the lossless decoding unit 162 among the filter coefficient sets corresponding to the optimal inter prediction mode from the lossless decoding unit 162 for each sub pel. Read to.
  • the motion compensation unit 801 performs filter processing on the reference image from the frame memory 169 by SIFO using the read filter coefficient and the offset included in the slice header.
  • the motion compensation unit 801 uses the motion vector from the lossless decoding unit 162 to perform compensation processing on the reference image after filter processing for each block, and generates a predicted image.
  • the generated predicted image is output to the calculation unit 165 via the switch 173.
  • FIG. 37 is a block diagram illustrating a detailed configuration example of the motion compensation unit 801. In FIG. 37, the switch 170 of FIG. 36 is omitted.
  • the configuration of the motion compensation unit 801 in FIG. 37 is mainly a filter coefficient set storage instead of the fixed interpolation filter 181, the fixed filter coefficient storage unit 182, the variable interpolation filter 183, the variable filter coefficient storage unit 184, and the control unit 186.
  • 19 is different from the configuration of FIG. 19 in that a unit 811, a SIFO 812, and a control unit 813 are provided.
  • the filter coefficient set storage unit 811 of the motion compensation unit 801 stores at least a plurality of types of L0L1 weighted prediction filter coefficients and other prediction filter coefficients used in the SIFO 812 as filter coefficient sets.
  • the filter coefficient set storage unit 811 reads out filter coefficients in a predetermined filter coefficient set for each sub-pel under the control of the control unit 813.
  • the filter coefficient set storage unit 811 selects any one of the read L0L1 weighted prediction filter coefficients and other prediction filter coefficients under the control of the control unit 813, and selects the selected filter coefficient. Supply to SIFO812.
  • the SIFO 812 performs a filtering process on the reference image from the frame memory 169 using the offset supplied from the lossless decoding unit 162 and the filter coefficient supplied from the filter coefficient set storage unit 811.
  • the SIFO 812 outputs the filtered reference image to the motion compensation processing unit 185.
  • the control unit 813 acquires the set number included in the slice header information from the lossless decoding unit 162 for each slice, and instructs the filter coefficient set storage unit 811 to read the filter coefficient set of the set number. In addition, the control unit 813 determines which filter coefficient for L0L1 weighted prediction or other prediction is to be selected according to the prediction mode information supplied from the lossless decoding unit 162, and a filter coefficient set storage unit 811. To instruct. In addition, the control unit 813 causes the motion compensation processing unit 185 to perform compensation processing for the optimal inter prediction mode based on the prediction mode information.
  • FIG. 38 is a block diagram illustrating a configuration example of the filter coefficient set storage unit 811 in the case of pattern A.
  • the filter coefficient set storage unit 811 includes an A1 filter coefficient memory 831, an A2 filter coefficient memory 832, an A3 filter coefficient memory 833, an A4 filter coefficient memory 834, and a selector 835.
  • the A1 filter coefficient memory 831 stores a plurality of types of filter coefficients A1 used in all inter prediction modes when L0L1 weighted prediction is not used as a filter coefficient set. Yes.
  • the A1 filter coefficient memory 831 selects a filter coefficient A1 of a predetermined filter coefficient set among the plurality of types of stored filter coefficient sets for each sub-pel in response to an instruction from the control unit 813.
  • the A1 filter coefficient memory 831 outputs the filter coefficients A1 of all selected sub-pels to the selector 835.
  • the A2 filter coefficient memory 832 stores a plurality of types of filter coefficients A2 used in the bi-prediction mode when using L0L1 weighted prediction as a filter coefficient set, similarly to the A2 filter coefficient memory 742 of FIG.
  • the A2 filter coefficient memory 832 selects, for each sub-pel, a filter coefficient A2 of a predetermined filter coefficient set from among a plurality of types of stored filter coefficient sets in accordance with an instruction from the control unit 813.
  • the A2 filter coefficient memory 832 outputs the filter coefficients A2 of all selected sub-pels to the selector 835.
  • the A3 filter coefficient memory 833 stores a plurality of types of filter coefficients A3 used in the direct mode when the L0L1 weighted prediction is used, as in the case of the A3 filter coefficient memory 743 of FIG.
  • the A3 filter coefficient memory 833 selects, for each sub-pel, a filter coefficient A3 of a predetermined filter coefficient set from among a plurality of types of stored filter coefficient sets in response to an instruction from the control unit 813.
  • the A3 filter coefficient memory 833 outputs the filter coefficients A3 of all selected sub-pels to the selector 835.
  • the A4 filter coefficient memory 834 stores a plurality of types of filter coefficients A4 used in the skip mode when using L0L1 weighted prediction as a filter coefficient set, similarly to the A4 filter coefficient memory 744 of FIG.
  • the A4 filter coefficient memory 834 selects, for each sub-pel, a filter coefficient A4 of a predetermined filter coefficient set from among a plurality of types of stored filter coefficient sets in response to an instruction from the control unit 813.
  • the A4 filter coefficient memory 834 outputs the filter coefficients A4 of all selected sub-pels to the selector 835.
  • the selector 835 selects one filter coefficient from the filter coefficients A1 to A4 in accordance with an instruction from the control unit 813, and outputs the selected filter coefficient to the SIFO 812.
  • FIG. 39 is a flowchart for explaining motion compensation processing by the motion compensation unit 801 of the image decoding apparatus 800. This motion compensation unit 801 is performed for each slice.
  • step S301 the control unit 813 (FIG. 37) of the motion compensation unit 801 obtains the set number of each sub-pel for each slice included in the slice header information from the lossless decoding unit 162, and the prediction mode for each block. Get information.
  • the control unit 813 instructs the set number of each acquired sub-pel to the filter coefficient set storage unit 811.
  • the A1 filter coefficient memory 831, the A2 filter coefficient memory 832, the A3 filter coefficient memory, and the A4 filter coefficient memory of the filter coefficient set storage unit 811 are respectively set to the set numbers of the sub-pels instructed by the control unit 813.
  • the filter coefficient of the sub pel in the filter coefficient set is read and supplied to the selector 835.
  • steps S302 through S308 is the same as the processing in steps S155 through S161 in FIG.
  • step S309 the SIFO 812 acquires an offset for each slice included in the slice header from the lossless decoding unit 162.
  • step S310 the SIFO 812 performs a filtering process on the reference image from the frame memory 169 using the offset supplied from the lossless decoding unit 162 and the filter coefficient supplied from the filter coefficient set storage unit 811.
  • the SIFO 812 outputs the filtered reference image to the motion compensation processing unit 185.
  • step S311 the motion compensation processing unit 185 acquires a motion vector for each block from the lossless decoding unit 162.
  • step S312 the motion compensation processing unit 185 compensates the filtered reference image using the motion vector from the lossless decoding unit 162 in the optimal inter prediction mode for each block under the control of the control unit 813. Processing is performed to generate a predicted image. The motion compensation unit 185 outputs the generated predicted image to the switch 173. Then, the motion compensation process ends.
  • FIG. 40 is a diagram illustrating another classification method for filter coefficients.
  • the filter characteristics are different.
  • the filter coefficient classification method shown in FIG. 40 is obtained by adding one pattern E to the filter coefficient classification method shown in FIG.
  • Pattern E is a method for classifying filter coefficients into five filter coefficients E1 to E5. Specifically, in the pattern E, similarly to the pattern A, when using L0L1 weighted prediction, not only different filter coefficients are used for each inter prediction mode, but also when the L0L1 weighted prediction is not used, the target slice Depending on whether it is a non-B slice or a B slice, different filter coefficients are used.
  • the filter coefficient E1 is used for slices other than the B slice in all inter prediction modes when L0L1 weighted prediction is not used.
  • the filter coefficient E2 is used for B slices in all inter prediction modes when L0L1 weighted prediction is not used.
  • the filter coefficient E3 is used in the bi-prediction mode when using L0L1 weighted prediction.
  • the filter coefficient E4 is used in the direct mode when using L0L1 weighted prediction.
  • the filter coefficient E5 is used in the skip mode when using L0L1 weighted prediction.
  • both L0 and L1 reference pixels may be used, but in the P slice, only the L0 reference pixel is used.
  • L0L1 weighted prediction is not used in the B slice, it is highly likely that a special motion, that is, a motion accompanied by rotation or enlargement / reduction occurs in that region. Further, movement such as rotation and enlargement / reduction is difficult with motion compensation of high frequency components. Therefore, in the B slice, when L0L1 weighted prediction is not used, the interpolation filters (fixed interpolation filter 81, variable interpolation filter 83, and SIFO 722) need to have a stronger LPF characteristic than the P slice.
  • the filter coefficient E1 for slices other than the B slice and the filter coefficient E2 for B slice are prepared separately. Therefore, the optimum filter coefficient can be used for each of the slices other than the B slice and the B slice. As a result, it is possible to appropriately remove noise included in the reference image and suppress loss of high-frequency components in the reference image.
  • the present invention can also be applied to an image processing apparatus using a filter other than the above-described fixed interpolation filter (FIF (Fixed Interpolation Filter), AIF, and SIFO).
  • FIF Fixed Interpolation Filter
  • an offset may be set in the fixed interpolation filter 81 and the variable interpolation filter 83.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

 本発明は、高周波成分が失われることを抑制し、画質の鮮明感を得ることができるようにする画像処理装置および方法、並びにプログラムに関する。 セレクタ95は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられ、A1フィルタ係数メモリ91に記憶されるフィルタ係数A1、L0L1重み付き予測を使う場合の双予測モードに用いられ、A2フィルタ係数メモリ92に記憶されるフィルタ係数A2、L0L1重み付き予測を使う場合のダイレクト・モードに用いられ、A3フィルタ係数メモリ93に記憶されるフィルタ係数A3、並びに、L0L1重み付き予測を使う場合のスキップ・モードに用いられ、A4フィルタ係数メモリ94に記憶されるフィルタ係数A4のうち、1つのフィルタ係数を選択し、固定補間フィルタに出力する。本発明は、例えば、H.264/AVC方式をベースに符号化する画像符号化装置に適用することができる。

Description

画像処理装置および方法、並びにプログラム
 本発明は画像処理装置および方法に関し、特に、高周波成分が失われることを抑制し、画質の鮮明感を得ることができるようにした画像処理装置および方法に関する。
 画像情報を圧縮する標準規格として、H.264及びMPEG-4 Part10 (Advanced Video Coding、以下H.264/AVCと記す)がある。
 H.264/AVCにおいては、フレームまたはフィールド間の相関に注目したインター予測が行われる。そして、このインター予測で行われる動き補償処理では、既に保存されている参照可能な画像内の一部の領域を用いて、インター予測による予測画像(以下、インター予測画像という)が生成される。
 例えば、図1に示すように、既に保存されている参照可能な画像の5フレームが参照フレームとされた場合、インター予測するフレーム(原フレーム)のインター予測画像の一部は、5つのうちのいずれか1つの参照フレームの画像(以下、参照画像という)の一部を参照して構成される。なお、インター予測画像の一部となる参照画像の一部の位置は、参照フレームと原フレームの画像に基づいて検出された動きベクトルによって決定される。
 より詳細には、図2に示すように、参照フレーム内の顔11が、原フレームにおいて右下方向に移動し、下部の約1/3が隠れた場合、右下方向の逆の左上方向を表す動きベクトルが検出される。そして、原フレーム内の隠れていない顔11の一部12は、その一部12を動きベクトルが表す動きだけ移動させた位置の参照フレーム内の顔11の一部13を参照して構成される。
 また、H.264/AVCにおいては、動き補償処理において、動きベクトルの分解能を2分の1または4分の1といった分数精度に向上させることが考えられている。
 このような分数精度の動き補償処理においては、隣接する画素の間に、Sub pelと呼ばれる仮想的な分数位置の画素を設定し、そのSub pelを生成する処理(以下、インターポーレーションという)が追加して行われる。すなわち、分数精度の動き補償処理では、動きベクトルの最小分解能が分数位置の画素になるため、分数位置の画素を生成するためのインターポーレーションが行われる。
 図3は、インターポーレーションによって縦方向と横方向の画素数が4倍に増加された画像の各画素を示している。なお、図3において、白色の正方形は、整数位置の画素(Integer pel(Int. pel))を表し、斜線が付された正方形は、分数位置の画素(Sub pel)を表している。また、正方形内のアルファベットは、その正方形が表す画素の画素値を表している。
 インターポーレーションによって生成される分数位置の画素の画素値b,h,j,a,d,f,rは、以下に示す式(1)で表される。
 b=(E-5F+20G+20H-5I+J)/32
 h=(A-5C+20G+20M-5R+T)/32
 j=(aa-5bb+20b+20s-5gg+hh)/32
 a=(G+b)/2
 d=(G+h)/2
 f=(b+j)/2
 r=(m+s)/2
                           ・・・(1)
 なお、画素値aa,bb,s,gg,hhはbと同様に、cc,dd,m,ee,ffはhと同様に、cはaと同様に、f,n,qはdと同様に、e,p,gはrと同様に、それぞれ求めることができる。
 上述した式(1)は、H.264/AVCなどのインターポーレーションで採用される式であり、この式は規格の違いによって異なるが、式の目的は同一である。この式は、偶数のタップ数を有する有限インパルス応答(FIR(Finit-duration Impulse Response))フィルタで実現することができる。例えば、H.264/AVCにおいては、6タップの補間フィルタが用いられている。
 ところで、H.264/AVCにおいては、特に、Bピクチャの場合、図4に示されるように、双方向予測が使用できる。図4においては、表示順序でピクチャが示されており、符号化対象ピクチャの表示順序の前後に符号化済みの参照ピクチャが並んでいる。符号化対象ピクチャがBピクチャの場合、例えば、符号化対象ピクチャの対象予測ブロックに示されるように、前後(双方向)の参照ピクチャの2つのブロックを参照し、前方向のL0予測の動きベクトルと、後方向のL1予測の動きベクトルを持つことができる。
 すなわち、L0は、主に対象予測ブロックよりも表示時刻が早いもので、L1は、主に対象予測ブロックよりも表示時刻が遅いものとなる。それらの区別された参照ピクチャを符号化モード別に使い分けることができる。符号化モードには、図5に示されるように、画面内符号化(イントラ予測)、L0予測、L1予測、双予測、ダイレクト・モードの5種類がある。
 図5は、符号化モードと参照ピクチャおよび動きベクトルの関係を示す図である。なお、図5において、参照ピクチャは、その符号化モードで参照ピクチャとして使うか使わないかを示し、動きベクトルは、その符号化モードが動きベクトル情報を持っているか持っていないかを示している。
 画面内符号化モードは、画面内(すなわち、イントラ)で予測するモードであり、L0参照ピクチャもL1参照ピクチャも使わず、L0予測の動きベクトルもL1予測の動きベクトル情報も持たない符号化モードである。L0予測モードは、L0参照ピクチャのみを使って予測を行い、L0予測の動きベクトル情報を持っている符号化モードである。L1予測モードでは、L1参照ピクチャのみを使って予測を行い、L1予測の動きベクトル情報を持っている符号化モードである。
 双予測モードでは、L0およびL1参照ピクチャを使って予測を行い、L0およびL1予測の動きベクトル情報を持っている符号化モードである。ダイレクト・モードでは、L0およびL1参照ピクチャを使って予測を行うが、動きベクトル情報は持っていない符号化モードである。すなわち、ダイレクト・モードは、動きベクトル情報を持っていないが、参照ピクチャにおける符号化済みブロックの動きベクトル情報から、現時の対象予測ブロックの動きベクトル情報を予測して使用する符号化モードである。なお、ダイレクト・モードにも、L0またはL1参照ピクチャのどちらか一方しか持たない場合もありうる。
 以上のように、双予測モードおよびダイレクト・モードにおいては、L0およびL1参照ピクチャを両方用いる場合がある。参照ピクチャが2枚の場合、次の式(2)に示される重み付き予測によって、双予測モードまたはダイレクト・モードの予測信号を得ることができる。
 YBi-Pred = W+W+D        ・・・(2)
 ここで、YBi-Predは、双予測モードあるいはダイレクト・モードのオフセット付き重み補間信号であり、W、Wは、それぞれL0、L1への重み係数であり、Y、Yは、L0、L1の動き補償予測信号である。このW、W、Dは、明示的にビットストリーム情報に含められたり、復号側で暗黙的に計算によって得られたりするものが用いられる。
 参照ピクチャの符号化劣化がL0およびL1の2枚の参照ピクチャで無相関ならば、この重み付き予測によって符号化劣化が抑制される。その結果、予測信号と入力信号との差分である残差信号が減り、残差信号のビット量が削減され、符号化効率が改善される。
 また、非特許文献1乃至3には、最近の研究報告として、アダプティブ・インターポーレーション・フィルタ(AIF)が挙げられている。このAIFを用いた動き補償処理では、インターポーレーションで用いられるタップ数が偶数のFIRフィルタのフィルタ係数を適応的に変えることで、エイリアシングの影響や符号化歪みを低減し、動き補償の誤差を小さくすることができる。
 AIFには、フィルタ構造の違いから、いくつかバリエーションがあるが、代表して、図6を参照して、非特許文献2に記載のSeparable adaptive interpolation filter(以下、Separable AIFと称する)について説明する。なお、図6において、斜線が付された正方形は、整数位置の画素(Integer pel(Int. pel))を表し、白色の正方形は、分数位置の画素(Sub pel)を表している。また、正方形内のアルファベットは、その正方形が表す画素の画素値を表している。
 Separable AIFにおいては、第1ステップとして、横方向に対する非整数位置の補間が行われ、第2ステップとして、縦方向に対する非整数方向の補間が行われる。なお、横と縦の処理順を逆にすることも可能である。
 まず、第1ステップである、分数位置の画素の画素値a,b,cは、整数位置の画素の画素値E,F,G,H,I,JからFIRフィルタにより次の式(3)で計算される。ここで、h[pos][n]は、フィルタ係数であり、posは、図3に示されたsub pelの位置を示し、nはフィルタ係数の番号を示す。このフィルタ係数は、ストリーム情報に含められて復号側で使用される。
 a = h[a][0] x E + h1[a][1] x F + h2[a][2] x G + h[a][3] 
                      x H + h[a][4] x I + h[a][5] x J
 b = h[b][0] x E + h1[b][1] x F + h2[b][2] x G + h[b][3] 
                      x H + h[b][4] x I + h[b][5] x J
 c = h[c][0] x E + h1[c][1] x F + h2[c][2] x G + h[c][3] 
                      x H + h[c][4] x I + h[c][5] x J
                           ・・・(3)
 なお、画素値G1,G2,G3,G4,G5の行の分数位置の画素の画素値(a1,b1,c1,a2,b2,c2,a3,b3,c3,a4,b4,c4,a5,b5,c5)に対しても、画素値a,b,cと同様に求めることができる。
 次に、第2ステップである、画素値a,b,c以外の画素値d乃至oは、次の式(4)で計算される。
 d = h[d][0] x G1 + h[d][1] x G2 + h[d][2] x G + h[d][3] 
                      x G3 + h[d][4] * G4 + h[d][5] x G5
 h = h[h][0] x G1 + h[h][1] x G2 + h[h][2] x G + h[h][3] 
                      x G3 + h[h][4] * G4 + h[h][5] x G5
 l = h[l][0] x G1 + h[l][1] x G2 + h[l][2] x G + h[l][3] 
                      x G3 + h[l][4] * G4 + h[l][5] x G5
 e = h[e][0] x a1 + h[e][1] x a2 + h[e][2] x a + h[e][3] 
                      x a3 + h[e][4] * a4 + h[e][5] x a5
 i = h[i][0] x a1 + h[i][1] x a2 + h[i][2] x a + h[i][3] 
                      x a3 + h[i][4] * a4 + h[i][5] x a5
 m = h[m][0] x a1 + h[m][1] x a2 + h[m][2] x a + h[m][3] 
                      x a3 + h[m][4] * a4 + h[m][5] x a5
 f = h[f][0] x b1 + h[f][1] x b2 + h[f][2] x b + h[f][3] 
                      x b3 + h[f][4] * b4 + h[f][5] x b5
 j = h[j][0] x b1 + h[j][1] x b2 + h[j][2] x b + h[j][3] 
                      x b3 + h[j][4] * b4 + h[j][5] x b5
 n = h[n][0] x b1 + h[n][1] x b2 + h[n][2] x b + h[n][3] 
                      x b3 + h[n][4] * b4 + h[n][5] x b5
 g = h[g][0] x c1 + h[g][1] x c2 + h[g][2] x c + h[g][3] 
                      x c3 + h[g][4] * c4 + h[g][5] x c5
 k = h[k][0] x c1 + h[k][1] x c2 + h[k][2] x c + h[k][3] 
                      x c3 + h[k][4] * c4 + h[k][5] x c5
 o = h[o][0] x c1 + h[o][1] x c2 + h[o][2] x c + h[o][3] 
                      x c3 + h[o][4] * c4 + h[o][5] x c5
                            ・・・(4)
 なお、上述した方法では、フィルタ係数がすべて独立しているが、非特許文献2では、次の式(5)が示されている。
 a = h[a][0] x E + h1[a][1] x F + h2[a][2] x G + h[a][3] 
                      x H + h[a][4] x I + h[a][5] x J
 b = h[b][0] x E + h1[b][1] x F + h2[b][2] x G + h[b][2] 
                      x H + h[b][1] x I + h[b][0] x J
 c = h[c][0] x E + h1[c][1] x F + h2[c][2] x G + h[c][3] 
                      x H + h[c][4] x I + h[c][5] x J
 d = h[d][0] x G1 + h[d][1] x G2 + h[d][2] x G + h[d][3] 
                      x G3 + h[d][4] * G4 + h[d][5] x G5
 h = h[h][0] x G1 + h[h][1] x G2 + h[h][2] x G + h[h][2] 
                      x G3 + h[h][1] * G4 + h[h][0] x G5
 l = h[d][5] x G1 + h[d][4] x G2 + h[d][3] x G + h[d][2] 
                      x G3 + h[d][1] * G4 + h[d][0] x G5
 e = h[e][0] x a1 + h[e][1] x a2 + h[e][2] x a + h[e][3] 
                      x a3 + h[e][4] * a4 + h[e][5] x a5
 i = h[i][0] x a1 + h[i][1] x a2 + h[i][2] x a + h[i][2] 
                      x a3 + h[i][1] * a4 + h[i][0] x a5
 m = h[e][5] x a1 + h[e][4] x a2 + h[e][3] x a + h[e][2] 
                      x a3 + h[e][1] * a4 + h[e][0] x a5
 f = h[f][0] x b1 + h[f][1] x b2 + h[f][2] x b + h[f][3] 
                      x b3 + h[f][4] * b4 + h[f][5] x b5
 j = h[j][0] x b1 + h[j][1] x b2 + h[j][2] x b + h[j][2] 
                      x b3 + h[j][1] * b4 + h[j][0] x b5
 n = h[f][5] x b1 + h[f][4] x b2 + h[f][3] x b + h[f][2] 
                      x b3 + h[f][1] * b4 + h[f][0] x b5
 g = h[g][0] x c1 + h[g][1] x c2 + h[g][2] x c + h[g][3] 
                      x c3 + h[g][4] * c4 + h[g][5] x c5
 k = h[k][0] x c1 + h[k][1] x c2 + h[k][2] x c + h[k][2] 
                      x c3 + h[k][1] * c4 + h[k][0] x c5
 o = h[g][5] x c1 + h[g][4] x c2 + h[g][3] x c + h[g][2] 
                      x c3 + h[g][1] * c4 + h[g][0] x c5
                           ・・・(5)
 例えば、画素値bを算出するためのフィルタ係数の1つh[b][3]は、h[b][2]に置き換えられている。前者のように、完全にすべてのフィルタ係数が独立していた場合、フィルタ係数の数は合計で90になるが、非特許文献2の方法では、フィルタ係数の数が51に削減されることになる。
 上述したAIFは、補間フィルタの性能を改善するが、フィルタ係数をストリーム情報に含めるため、オーバーヘッドが存在し、場合よっては、符号化効率を劣化させてしまうことも起こる。そこで、非特許文献3では、フィルタ係数の対称性を使って削減し、オーバーヘッドを減らすようにしている。符号化側では、どのSub pelのフィルタ係数が他のSub pelと近いかを調べて、近いフィルタ係数は1つに集約する。どのように集約されたかを示す対称性の記述子をストリーム情報に含めて復号側に送る。復号側では、その対称性の記述子を受け取り、フィルタ係数がどのように集約されたかを知ることができる。
 ところで、H.264/AVC方式において、マクロブロックサイズは16×16画素である。しかしながら、マクロブロックサイズを16×16画素とするのは、次世代符号化方式の対象となるようなUHD(Ultra High Definition;4000×2000画素)といった大きな画枠に対しては最適ではない。
 そこで、非特許文献4などにおいては、マクロブロックサイズを、例えば、32×32画素といった大きさに拡張することも提案されている。
 なお、上述した従来の図は、適宜、本願発明の説明にも用いられる。
Yuri Vatis, Joern Ostermann,"Prediction of P- and B-Frames Using a Two-dimensional Non-separable Adaptive Wiener Interpolation Filter for H.264/AVC", ITU-T SG16 VCEG 30th Meeting, Hangzhou China, October 2006 Steffen Wittmann,Thomas Wedi,"Separable adaptive inerpolation filte", ITU-T SG16COM16-C219-E,June 2007 Dmytro Rusanovskyy, et al., "Improvements on Enhanced Directional Adaptive Filtering (EDAIF-2)", COM 16 - C 125 - E, January 2009 "Video Coding Using Extended Block Sizes",VCEG-AD09,ITU-Telecommunications Standardization Sector STUDY GROUP Question 16 - Contribution 123, Jan 2009
 上述したように、参照ピクチャを複数使った重み付き予測は、各参照ピクチャの符号化劣化を低減する効果が得られる一方で、高周波成分が失われてしまう恐れがある。
 この原因は、複数考えられるが、主な要因としては位置合わせのずれによるものと考えられる。すなわち、2枚の予測画像を重み付き予測によって重ね合わせる際、現時の対象予測ブロックの完全な位置合わせが困難なことから、特に画像の輪郭部分に位置ずれが起こる。これは、図7に示されるように、各参照ピクチャから得られる予測信号が、2枚の予測画像の輪郭部分で位置ずれが起こることに起因する。
 図7の例においては、横軸は、画像の位置を表し、縦軸は、その位置の輝度値を表している。菱形付き線は、入力信号であり、四角付き線は、L0参照ピクチャによる予測信号であり、三角付き線は、L1参照ピクチャによる予測信号であり、バツ付き線は、W=W=0.5としたときの重み付き予測信号である。
 図7の入力信号の変化に対して、L0およびL1の予測信号は左右にずれており、これらのL0およびL1の予測信号から重み付き予測は、その変化が入力信号に対して緩やかになっていることがわかる。
 双予測モードおよびダイレクト・モードにおける予測信号である重み付き予測信号が緩やかに変化するようになることは、輪郭部分でボケが生じる原因となり、符号化効率を悪化させ、画質の面でも悪い印象になる恐れがある。
 このような位置ずれは、双予測よりもダイレクト・モードで顕著になることが多い。双予測モードでは、動きベクトル情報を所持しているため、ダイレクト・モードと比して正確な位置合わせができる。しかしながら、ダイレクト・モードは符号化済みブロックから予測して得られた動きベクトル情報が用いられる。したがって、符号化済みブロックからの予測誤差が避けられないため、ダイレクト・モードの位置合わせに誤差が生じる。
 また、非特許文献1乃至3のAIF技術によれば、補間フィルタのフィルタ特性をスライス単位で変更でき、参照ピクチャの符号化劣化を低減できるようになる。即ち、AIFの有する空間的なLPF(Low Pass Filter)特性を用いて、参照ピクチャに含まれるノイズの高域成分を弱めることで、符号化劣化を低減することができる。しかしながら、このLPF特性により、画像の高周波成分も失う恐れがある。
 さらにこの事実は前述の重み付き予測における事実と合わさることで更に大きな影響を受ける恐れがある。すなわち、AIFによって補間信号の空間的な高周波成分が失われ、さらに重み付き予測によって時間的な高周波成分が失われることになる。AIF技術と、双予測モードあるいはダイレクト・モードの重み付き予測の組み合わせによって、不必要に高周波成分が失われることになり、符号化効率の改善が得られず、画質の鮮明感が失われる恐れがある。
 AIFの空間的なLPF特性を比較的弱い強度にすることにより、不必要に高周波成分が失われることを抑制することはできるが、重み付き予測が行われない場合、時間的な高周波成分が失われないので、参照ピクチャの符号化劣化が十分に低減されない恐れがある。即ち、重み付き予測が行われない場合に最適なAIFの空間的なLPF特性は、重み付き予測が行われる場合には過剰であり、画像の高周波成分を失う恐れがある。一方、重み付き予測が行われる場合に最適なAIFの空間的なLPF特性は、重み付き予測が行われない場合には過少であり、参照ピクチャの符号化劣化が十分に低減されない恐れがある。
 本発明は、このような状況に鑑みてなされたものであり、高周波成分が失われることを抑制し、画質の鮮明感を得ることができるものである。
 本発明の一側面の画像処理装置は、符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタと、前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択するフィルタ係数選択手段と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成する動き補償手段とを備える。
 前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか否かに基づいて、前記補間フィルタのフィルタ係数を選択することができる。
 前記フィルタ係数選択手段は、前記双予測モードであるか否かに基づいて、高周波成分の増幅の程度の異なる前記フィルタ係数を選択することができる。
 前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか、ダイレクト・モードであるか、スキップ・モードであるかに基づいて、前記補間フィルタのフィルタ係数を選択することができる。
 前記補間フィルタは、前記フィルタ係数選択手段により選択される前記フィルタ係数とオフセット値とを用いて、前記参照画像の画素を分数精度で補間することができる。
 前記符号化された画像、前記動きベクトル、および符号化時に算出された前記フィルタ係数を復号する復号手段をさらに備え、前記フィルタ係数選択手段は、前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記復号手段により復号された前記フィルタ係数を選択することができる。
 前記フィルタ係数は、前記重み付け予測の使用時用の複数種類のフィルタ係数と、前記重み付け予測の未使用時用の複数種類のフィルタ係数とからなり、前記フィルタ係数選択手段は、前記重み付け予測の使用または未使用と、前記フィルタ係数の種類を特定するための情報とに基づいて、前記復号手段により復号された前記フィルタ係数を選択することができる。
 符号化対象の画像と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出する動き予測手段をさらに備えることができる。
 前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか否かに基づいて、前記補間フィルタのフィルタ係数を選択することができる。
 前記符号化対象の画像、前記参照画像、および前記動き予測手段により検出された前記動きベクトルを用いて、前記補間フィルタのフィルタ係数を算出するフィルタ係数算出手段をさらに備え、前記フィルタ係数選択手段は、異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記フィルタ係数算出手段により算出された前記フィルタ係数を選択することができる。
 前記フィルタ係数選択手段は、異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記フィルタ係数算出手段により算出された前記フィルタ係数を第1の選択候補とするとともに、所定のフィルタ係数を第2の選択候補とし、前記動き予測手段は、前記符号化対象の画像と、前記第1の選択候補の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記第1の選択候補用の動きベクトルを検出するとともに、前記符号化対象の画像と、前記第2の選択候補の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記第2の選択候補用の動きベクトルを検出し、前記動き補償手段は、前記第1の選択候補の前記補間フィルタにより補間された前記参照画像と、前記第1の選択候補用の動きベクトルを用いて、前記第1の選択候補用の予測画像を生成するとともに、前記第2の選択候補の前記補間フィルタにより補間された前記参照画像と、前記第2の選択候補用の動きベクトルを用いて、前記第2の選択候補用の予測画像を生成し、前記フィルタ係数選択手段は、前記第1の選択候補用の予測画像と前記符号化対象の画像との差分と、前記第2の選択候補用の予測画像と前記符号化対象の画像との差分のうちの小さい方の差分に対応するフィルタ係数を選択することができる。
 前記フィルタ係数は、前記重み付け予測の使用時用の複数種類のフィルタ係数と、前記重み付け予測の未使用時用の複数種類のフィルタ係数とからなり、前記フィルタ係数選択手段は、前記重み付け予測の使用または未使用と、各種類のフィルタ係数に対応するコスト関数値とに基づいて、前記フィルタ係数を選択することができる。
 本発明の一側面の画像処理方法は、符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタを備える画像処理装置の画像処理方法において、前記画像処理装置が、前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択し、選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成するステップを含む。
 前記画像処理装置が、符号化対象の画像と、選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出するステップをさらに含むことができる。
 本発明の一側面のプログラムは、符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタを備える画像処理装置のコンピュータを、前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択するフィルタ係数選択手段と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成する動き補償手段として、機能させる。
 前記コンピュータを、符号化対象の画像と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出する動き予測手段として、さらに機能させることができる。
 本発明の一側面においては、符号化された画像における異なる複数の参照画像による重み付け予測の使用または未使用に基づいて、前記符号化された画像に対応する前記参照画像の画素を分数精度で補間する補間フィルタのフィルタ係数が選択される。そして、選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、復号された前記動きベクトルを用いて、予測画像が生成される。
 なお、上述の画像処理装置のそれぞれは、独立した装置であっても良いし、1つの画像符号化装置または画像復号装置を構成している内部ブロックであってもよい。
 本発明によれば、高周波成分が失われることを抑制し、画質の鮮明感を得ることができる。
従来のインター予測について説明する図である。 従来のインター予測について詳細に説明する図である。 インターポーレーションについて説明する図である。 双方向予測を説明する図である。 符号化モードと参照ピクチャおよび動きベクトルの関係を示す図である。 Separable AIFを説明する図である。 入力信号と予測信号の誤差について説明する図である。 本発明を適用した画像符号化装置の第1実施の形態の構成を示すブロック図である。 動き予測・補償部の構成例を示すブロック図である。 フィルタ係数の分類について説明する図である。 パターンAの場合のフィルタ係数記憶部の構成例を示すブロック図である。 パターンAの場合のフィルタ係数算出部の構成例を示すブロック図である。 横方向についてフィルタ係数の算出を説明する図である。 縦方向についてフィルタ係数の算出を説明する図である。 図8の画像符号化装置の符号化処理を説明するフローチャートである。 図13のステップS22の動き予測・補償処理を説明するフローチャートである。 図16のステップS51のフィルタ係数選択処理を説明するフローチャートである。 本発明を適用した画像復号装置の第1実施の形態の構成を示すブロック図である。 図18の動き補償部の構成例を示すブロック図である。 パターンAの場合の固定フィルタ係数記憶部の構成例を示すブロック図である。 パターンAの場合の可変フィルタ係数記憶部の構成例を示すブロック図である。 図18の画像復号装置の復号処理を説明するフローチャートである。 図22のステップS139の動き補償処理を説明するフローチャートである。 図23のステップS153の可変フィルタ係数置き換え処理を説明するフローチャートである。 拡張されたブロックサイズの例を示す図である。 コンピュータのハードウエアの構成例を示すブロック図である。 本発明を適用したテレビジョン受像機の主な構成例を示すブロック図である。 本発明を適用した携帯電話機の主な構成例を示すブロック図である。 本発明を適用したハードディスクレコーダの主な構成例を示すブロック図である。 本発明を適用したカメラの主な構成例を示すブロック図である。 本発明を適用した画像符号化装置の第2実施の形態の構成を示すブロック図である。 図31の動き予測・補償部の構成例を示すブロック図である。 パターンAの場合のフィルタ係数選択部の構成例を示すブロック図である。 A1フィルタ係数メモリの記憶情報の例を示す図である。 動き予測・補償処理を説明するフローチャートである。 本発明を適用した画像復号装置の第2実施の形態の構成を示すブロック図である。 図36の動き補償部の構成例を示すブロック図である。 パターンAの場合のフィルタ係数セット記憶部の構成例を示すブロック図である。 動き補償処理を説明するフローチャートである。 フィルタ係数の他の分類について説明する図である。
 以下、図を参照して本発明の実施の形態について説明する。
<第1実施の形態>
[画像符号化装置の構成例]
 図8は、本発明を適用した画像処理装置としての画像符号化装置の第1実施の形態の構成を表している。
 この画像符号化装置51は、例えば、H.264及びMPEG-4 Part10(Advanced Video Coding)(以下H.264/AVCと記す)方式をベースに、入力された画像を圧縮符号化する。
 図8の例において、画像符号化装置51は、A/D変換部61、画面並べ替えバッファ62、演算部63、直交変換部64、量子化部65、可逆符号化部66、蓄積バッファ67、逆量子化部68、逆直交変換部69、演算部70、デブロックフィルタ71、フレームメモリ72、スイッチ73、イントラ予測部74、動き予測・補償部75、予測画像選択部76、およびレート制御部77により構成されている。
 A/D変換部61は、入力された画像をA/D変換し、画面並べ替えバッファ62に出力し、記憶させる。画面並べ替えバッファ62は、記憶した表示の順番のフレームの画像を、Gop(Group of Picture)に応じて、符号化のためのフレームの順番に並べ替える。
 演算部63は、画面並べ替えバッファ62から読み出された画像から、予測画像選択部76により選択されたイントラ予測部74からの予測画像または動き予測・補償部75からの予測画像を減算し、その差分情報を直交変換部64に出力する。直交変換部64は、演算部63からの差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を出力する。量子化部65は直交変換部64が出力する変換係数を量子化する。
 量子化部65の出力となる、量子化された変換係数は、可逆符号化部66に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施され、圧縮される。
 可逆符号化部66は、イントラ予測を示す情報をイントラ予測部74から取得し、インター予測モードを示す情報などを動き予測・補償部75から取得する。なお、イントラ予測を示す情報およびインター予測を示す情報は、以下、それぞれ、イントラ予測モード情報およびインター予測モード情報とも称する。
 可逆符号化部66は、量子化された変換係数を符号化するとともに、イントラ予測を示す情報、インター予測モードを示す情報などを符号化し、圧縮画像におけるヘッダ情報の一部とする。可逆符号化部66は、符号化したデータを蓄積バッファ67に供給して蓄積させる。
 例えば、可逆符号化部66においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。
 蓄積バッファ67は、可逆符号化部66から供給されたデータを、符号化された圧縮画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
 また、量子化部65より出力された、量子化された変換係数は、逆量子化部68にも入力され、逆量子化された後、さらに逆直交変換部69において逆直交変換される。逆直交変換された出力は演算部70により予測画像選択部76から供給される予測画像と加算されて、局部的に復号された画像となる。デブロックフィルタ71は、復号された画像のブロック歪を除去した後、フレームメモリ72に供給し、蓄積させる。フレームメモリ72には、デブロックフィルタ71によりデブロックフィルタ処理される前の画像も供給され、蓄積される。
 スイッチ73はフレームメモリ72に蓄積された参照画像を動き予測・補償部75またはイントラ予測部74に出力する。
 この画像符号化装置51においては、例えば、画面並べ替えバッファ62からのIピクチャ、Bピクチャ、およびPピクチャが、イントラ予測(イントラ処理とも称する)する画像として、イントラ予測部74に供給される。また、画面並べ替えバッファ62から読み出されたBピクチャおよびPピクチャが、インター予測(インター処理とも称する)する画像として、動き予測・補償部75に供給される。
 イントラ予測部74は、画面並べ替えバッファ62から読み出されたイントラ予測する画像とフレームメモリ72から供給された参照画像に基づいて、候補となる全てのイントラ予測モードのイントラ予測処理を行い、予測画像を生成する。
 その際、イントラ予測部74は、候補となる全てのイントラ予測モードに対してコスト関数値を算出し、算出したコスト関数値が最小値を与えるイントラ予測モードを、最適イントラ予測モードとして選択する。
 このコスト関数は、RD(Rate Distortion)コストともいい、例えば、H.264/AVC方式における参照ソフトウエアであるJM(Joint Model)で定められているような、High Complexity モードか、Low Complexity モードのいずれかの手法に基づいてその値が算出される。
 具体的には、コスト関数値の算出手法としてHigh Complexity モードが採用される場合、候補となる全てのイントラ予測モードに対して、仮に符号化処理までが行われ、次の式(6)で表わされるコスト関数が各イントラ予測モードに対して算出される。
 Cost(Mode)=D+λ・R                  ・・・(6)
 Dは、原画像と復号画像の差分(歪)、Rは、直交変換係数まで含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
 一方、コスト関数値の算出手法としてLow Complexity モードが採用される場合、候補となる全てのイントラ予測モードに対して、イントラ予測画像の生成、および、イントラ予測モードを表す情報などのヘッダビットの算出が行われ、次の式(7)で表わされるコスト関数が各イントラ予測モードに対して算出される。
 Cost(Mode)=D+QPtoQuant(QP)・Header_Bit        ・・・(7)
 Dは、原画像と復号画像の差分(歪)、Header_Bitは、イントラ予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
 Low Complexity モードにおいては、全てのイントラ予測モードに対して、イントラ予測画像を生成するだけでよく、符号化処理を行う必要がないため、演算量が少なくて済む。
 イントラ予測部74は、最適イントラ予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部76に供給する。イントラ予測部74は、予測画像選択部76により最適イントラ予測モードで生成された予測画像が選択された場合、最適イントラ予測モードを示す情報を、可逆符号化部66に供給する。可逆符号化部66は、この情報を符号化し、圧縮画像におけるヘッダ情報の一部とする。
 動き予測・補償部75は、フィルタ係数が固定の補間フィルタを用いて、参照画像にフィルタ処理を行う。なお、フィルタ係数が固定とは、1つに固定する意味ではなく、AIF(Adaptive Interpolation Filter)における可変に対する固定であって、係数を入れ替えることは可能である。以下、固定の補間フィルタによるフィルタ処理を、固定フィルタ処理ともいう。
 動き予測・補償部75は、インター処理する画像と固定フィルタ処理後の参照画像に基づいて、候補となる全てのインター予測モードのブロックの動き予測を行い、各ブロックの動きベクトルを生成する。そして、動き予測・補償部75は、固定フィルタ処理後の参照画像に対して補償処理を行い、予測画像を生成する。このとき、動き予測・補償部75は、候補となる全てのインター予測モードに対して、処理対象のブロックのコスト関数値を求め、予測モードを決定し、決定した予測モードで、処理対象のスライスのコスト関数値を求める。
 また、動き予測・補償部75は、生成された動きベクトル、インター処理する画像、参照画像を用いて、スライスの種類に応じたタップ数の、係数の可変の補間フィルタ(AIF)のフィルタ係数を求める。そして、動き予測・補償部75は、求めたフィルタ係数のフィルタを用いて、参照画像にフィルタ処理を行う。なお、以下、可変の補間フィルタによるフィルタ処理を、可変フィルタ処理ともいう。
 ここで、動き予測・補償部75においては、少なくとも、L0およびL1の参照画素を用いた重み付き予測(以下、L0L1重み付き予測と称する)に用いられる固定フィルタ用のフィルタ係数(以下、固定フィルタ係数と称する)と、それ以外の予測に用いられる固定フィルタ係数が記憶されている。また、可変の場合も同様に、動き予測・補償部75においては、少なくとも、L0L1重み付き予測に用いられる可変フィルタ用のフィルタ係数(以下、可変フィルタ係数と称する)と、それ以外の予測に用いられる可変フィルタ係数が算出される。
 例えば、L0L1重み付き予測に用いられるフィルタ係数は、そのフィルタ処理後の画像の高周波成分を増幅するようなフィルタ特性を有している。
 そして、動き予測・補償部75においては、L0L1重み付き予測が行われる場合には、L0およびL1の参照画素を用いた重み付き予測に用いられる固定フィルタ係数および可変フィルタ係数で予測が行われる。一方、L0L1重み付き予測以外の予測が行われる場合には、L0およびL1の参照画素を用いた重み付き予測以外の予測に用いられる固定フィルタ係数および可変フィルタ係数で予測が行われる。
 動き予測・補償部75は、再度、インター処理する画像と可変フィルタ処理後の参照画像に基づいて、候補となる全てのインター予測モードのブロックの動き予測を行い、各ブロックの動きベクトルを生成する。そして、動き予測・補償部75は、可変フィルタ処理後の参照画像に対して補償処理を行い、予測画像を生成する。このとき、動き予測・補償部75は、候補となる全てのインター予測モードに対して、処理対象のブロックのコスト関数値を求め、予測モードを決定し、決定した予測モードで、処理対象のスライスのコスト関数値を求める。
 そして、動き予測・補償部75は、固定フィルタ処理後のコスト関数値と、可変フィルタ処理後のコスト関数値を比較する。動き予測・補償部75は、その値の小さい方を採用し、その予測画像とコスト関数値を予測画像選択部76に出力するとともに、処理対象のスライスがAIFを使用するか否かを示すAIF使用フラグを設定する。このAIF使用フラグは、L0L1重み付き予測に用いられるフィルタ係数およびそれ以外の予測に用いられるフィルタ係数毎に設定される。
 動き予測・補償部75は、予測画像選択部76により最適インター予測モードの対象ブロックの予測画像が選択された場合、最適インター予測モードを示す情報(インター予測モード情報)を可逆符号化部66に出力する。
 このとき、動きベクトル情報、参照フレーム情報、スライスの情報、およびAIF使用フラグ、並びに、AIF使用の場合には、フィルタ係数なども可逆符号化部66に出力される。可逆符号化部66は、動き予測・補償部75からの情報をやはり可変長符号化、算術符号化といった可逆符号化処理し、圧縮画像のヘッダ部に挿入する。なお、スライスの情報、AIF使用フラグ、およびフィルタ係数は、スライスヘッダに挿入される。
 予測画像選択部76は、イントラ予測部74または動き予測・補償部75より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードから、最適予測モードを決定する。そして、予測画像選択部76は、決定された最適予測モードの予測画像を選択し、演算部63,70に供給する。このとき、予測画像選択部76は、点線に示されるように、予測画像の選択情報を、イントラ予測部74または動き予測・補償部75に供給する。
 レート制御部77は、蓄積バッファ67に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部65の量子化動作のレートを制御する。
[動き予測・補償部の構成例]
 図9は、動き予測・補償部75の構成例を示すブロック図である。なお、図9においては、図8のスイッチ73が省略されている。
 図9の例において、動き予測・補償部75は、固定補間フィルタ81、フィルタ係数記憶部82、可変補間フィルタ83、フィルタ係数算出部84、動き予測部85、動き補償部86および制御部87により構成されている。
 画面並べ替えバッファ62からの入力画像(インター処理する画像)は、フィルタ係数算出部84、および動き予測部85に入力される。フレームメモリ72からの参照画像は、固定補間フィルタ81、可変補間フィルタ83、およびフィルタ係数算出部84に入力される。
 固定補間フィルタ81は、フィルタ係数が固定(すなわち、AIFではない)の補間フィルタである。固定補間フィルタ81は、フレームメモリ72からの参照画像に対して、フィルタ係数記憶部82からのフィルタ係数を用いて、フィルタ処理を施し、固定フィルタ処理後の参照画像を、動き予測部85および動き補償部86に出力する。
 フィルタ係数記憶部82は、固定補間フィルタ81で使用される、少なくとも、L0L1重み付き予測用およびそれ以外の予測用の固定フィルタ係数を記憶しており、それらのフィルタ係数を読み出して、制御部87の制御のもと選択し、選択した固定フィルタ係数を、固定補間フィルタ81に供給する。
 可変補間フィルタ83は、フィルタ係数可変の補間フィルタ(すなわち、AIF)である。可変補間フィルタ83は、フレームメモリ72からの参照画像に対して、フィルタ係数算出部84により算出された可変フィルタ係数を用いてフィルタ処理を施し、可変フィルタ処理後の参照画像を動き予測部85および動き補償部86に出力する。
 フィルタ係数算出部84は、画面並べ替えバッファ62からの入力画像、フレームメモリ72からの参照画像、動き予測部85からの1回目の動きベクトルを用いて、可変補間フィルタ83のフィルタ処理後の参照画像を、入力画像に近づけるためのフィルタ係数を算出する。例えば、フィルタ係数算出部84は、少なくとも、L0L1重み付き予測に用いられる可変フィルタ係数と、それ以外の予測に用いられる可変フィルタ係数を算出する。フィルタ係数算出部84は、算出した可変フィルタ係数を、制御部87の制御もと選択し、選択した可変フィルタ係数を可変補間フィルタ83に供給する。
 また、フィルタ係数算出部84は、制御部87からの制御のもと、予測画像選択部76においてインター予測画像が選択され、対象スライスで可変フィルタを使用する場合に、L0L1重み付き予測またはその他の予測に対応する可変フィルタ係数を、可逆符号化部66に出力する。
 動き予測部85は、画面並べ替えバッファ62からの入力画像と、固定補間フィルタ81からの固定フィルタ後の参照画像に基づいて、候補となる全てのインター予測モードの1回目の動きベクトルを生成し、生成した動きベクトルを、フィルタ係数算出部84および動き補償部86に出力する。また、動き予測部85は、画面並べ替えバッファ62からの入力画像と、可変補間フィルタ83からの可変フィルタ後の参照画像に基づいて、候補となる全てのインター予測モードの2回目の動きベクトルを生成し、生成した動きベクトルを、動き補償部86に出力する。
 動き補償部86は、1回目の動きベクトルを用いて、固定補間フィルタ81からの固定フィルタ後の参照画像に対し補償処理を施し、予測画像を生成する。そして、動き補償部86は、ブロック毎にコスト関数値を算出することにより、最適インター予測モードを決定し、決定した最適インター予測モードで、対象スライスの1回目のコスト関数値を算出する。
 動き補償部86は、次に、2回目の動きベクトルを用いて、可変補間フィルタ83からの可変フィルタ後の参照画像に対し補償処理を施し、予測画像を生成する。そして、動き補償部86は、ブロック毎にコスト関数値を算出することにより、最適インター予測モードを決定し、決定した最適インター予測モードで、対象スライスの2回目のコスト関数値を算出する。
 そして、動き補償部86は、対象スライスについて、1回目のコスト関数値と2回目のコスト関数値を比較し、その値が小さい方のフィルタを使用することを決定する。すなわち、動き補償部86は、1回目のコスト関数値の方が小さい場合、その対象スライスでは固定フィルタを使用するとし、固定フィルタ後の参照画像で生成された予測画像とコスト関数値を予測画像選択部76に供給し、AIF使用フラグの値を0(未使用)に設定する。また、動き補償部86は、2回目のコスト関数値の方が小さい場合、その対象スライスでは可変フィルタを使用するとし、可変フィルタ後の参照画像で生成された予測画像とコスト関数値を予測画像選択部76に供給し、AIF使用フラグの値を1(使用)に設定する。
 なお、このAIF使用フラグは、L0L1重み付き予測に用いられるフィルタ係数およびそれ以外の予測に用いられるフィルタ係数毎に設定される。したがって、対象スライスで固定フィルタを使用する場合、それらに対応した両方のフラグの値が0に設定される。対象スライスで可変フィルタを使用する場合、両方のフィルタ係数が算出されていれば、両方のフラグの値が1に設定される。すなわち、算出されていない(すなわち、対応する予測モードが用いられていない)フィルタ係数に対応するフラグは、可変フィルタを使用する場合でも0に設定される。
 動き補償部86は、予測画像選択部76においてインター予測画像が選択された場合、制御部87の制御のもと、最適インター予測モードの情報、スライスの種類が含まれるスライスの情報、AIF使用フラグ、動きベクトル、参照画像の情報などを、可逆符号化部66に出力する。
 制御部87は、予測の種類、すなわち、L0L1重み付き予測またはその他の予測であるかに応じて、フィルタ係数記憶部82およびフィルタ係数算出部84を制御する。すなわち、制御部87は、L0L1重み付き予測の場合、L0L1重み付き予測に用いられるフィルタ係数をフィルタ係数記憶部82に選択させ、L0L1重み付き予測に用いられるフィルタ係数をフィルタ係数算出部84に選択させる。また、制御部87は、その他の予測の場合(すなわち、L0L1重み付き予測を行わない予測)、その他の予測に用いられるフィルタ係数をフィルタ係数記憶部82に選択させ、その他の予測に用いられるフィルタ係数をフィルタ係数算出部84に選択させる。
 また、制御部87は、予測画像選択部76からのインター予測画像が選択されたという信号を受けると、動き補償部86およびフィルタ係数算出部84に、必要な情報を、可逆符号化部66に出力させる制御も行う。
[フィルタ係数の分類]
 次に、図10を参照して、フィルタ係数の分類方法について説明する。なお、図10の例において、フィルタ[X][X]となっている部分の数字とアルファベットが異なれば、フィルタの特性が異なることを表している。
 動き予測・補償部75においてフィルタ係数を分類する方法は、L0L1重み付き予測を使うか、使わないかに応じて、図10に示されるパターンA乃至Cの3種類のパターンが存在する。なお、全ての予測モードのうち、双予測モード、ダイレクト・モード、およびスキップ・モードにおいて、L0L1重み付き予測が使われる可能性がある。
 パターンAは、フィルタ係数を、フィルタ係数A1乃至A4の4つに分類する方法である。フィルタ係数A1は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられる。フィルタ係数A2は、L0L1重み付き予測を使う場合の双予測モードに用いられる。フィルタ係数A3は、L0L1重み付き予測を使う場合のダイレクト・モードに用いられる。フィルタ係数A4は、L0L1重み付き予測を使う場合のスキップ・モードに用いられる。
 パターンBは、フィルタ係数を、フィルタ係数B1乃至B3の3つに分類する方法である。フィルタ係数B1は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられる。フィルタ係数B2は、L0L1重み付き予測を使う場合の双予測モードに用いられる。フィルタ係数B3は、L0L1重み付き予測を使う場合の双予測モード以外のモード、すなわち、ダイレクト・モードまたはスキップ・モードに用いられる。
 パターンCは、フィルタ係数を、フィルタ係数C1およびC2の2つに分類する方法である。フィルタ係数C1は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられる。フィルタ係数C2は、L0L1重み付き予測を使う場合の予測モード、すなわち、双予測モード、ダイレクト・モード、またはスキップ・モードに用いられる。
 参考までに、従来においては、L0L1重み付き予測を使うか、使わないかに応じて、フィルタ係数は分類されておらず、フィルタ係数D1の1種類で予測が行われていた。
 すなわち、パターンCは、L0L1重み付き予測を使うか、使わないかに応じて、大まかに分類した例であり、パターンBは、パターンCをさらに、L0L1重み付き予測を使う場合において、双予測モードであるか否かに分類した例である。そして、パターンAは、パターンBをさらに、双予測モードでない場合において、ダイレクト・モードであるか、スキップ・モードであるかに分類した例である。
 パターンCにおいては、フィルタ係数C1よりも重み付き予測を行う場合のフィルタ係数C2は、重み付き予測で失われる高周波成分を増幅するような特性を有するようになされる。これにより、重み付き予測で失われる高周波成分を補うことができる。
 パターンBにおいては、重み付き予測を行う場合にさらに、フィルタ係数B2とフィルタ係数B3で異なる特性を有するようになされる。例えば、フィルタ係数B2とフィルタ係数B3のフィルタ特性の違いとしては、重み付き予測で失われる高周波成分の増幅の程度が異なっている。これにより、図7を参照して上述したように、双予測モードとダイレクト・モード(スキップ・モード)の位置ずれの程度が異なる場合に対応することができる。
 パターンAにおいては、重み付き予測を行う場合にさらに、フィルタ係数A2乃至A4で異なる特性を有するようになされる。例えば、フィルタ係数A2乃至A4のフィルタ特性の違いとしては、重み付き予測で失われる高周波成分の増幅の程度がそれぞれ異なっている。これにより、双予測モード、ダイレクト・モード、およびスキップ・モードの位置ずれの程度が異なる場合に対応することができる。
 なお、以下においては、パターンA乃至パターンCのうち、代表してパターンAの場合について説明するが、パターンBおよびパターンCの場合もフィルタ係数の数が異なるだけであり、同様になされることが可能である。
[フィルタ係数記憶部の構成例]
 図11は、パターンAの場合のフィルタ係数記憶部の構成例を示すブロック図である。
 図11の例において、フィルタ係数記憶部82は、A1フィルタ係数メモリ91、A2フィルタ係数メモリ92、A3フィルタ係数メモリ93、A4フィルタ係数メモリ94、およびセレクタ95により構成されている。
 A1フィルタ係数メモリ91は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられるフィルタ係数A1を記憶しており、フィルタ係数A1をセレクタ95に出力する。A2フィルタ係数メモリ92は、L0L1重み付き予測を使う場合の双予測モードに用いられるフィルタ係数A2を記憶しており、フィルタ係数A2をセレクタ95に出力する。
 A3フィルタ係数メモリ93は、L0L1重み付き予測を使う場合のダイレクト・モードに用いられるフィルタ係数A3を記憶しており、フィルタ係数A3をセレクタ95に出力する。A4フィルタ係数メモリ94は、L0L1重み付き予測を使う場合のスキップ・モードに用いられるフィルタ係数A4記憶しており、フィルタ係数A4をセレクタ95に出力する。
 セレクタ95は、制御部87の制御のもと、フィルタ係数A1乃至A4のうち、1つのフィルタ係数を選択し、固定補間フィルタ81に出力する。
[フィルタ係数算出部の構成例]
 図12は、パターンAの場合のフィルタ係数算出部の構成例を示すブロック図である。
 図12の例において、フィルタ係数算出部84は、A1フィルタ係数算出部101、A2フィルタ係数算出部102、A3フィルタ係数算出部103、A4フィルタ係数記算出部104、およびセレクタ105により構成されている。
 A1フィルタ係数算出部101は、画面並べ替えバッファ62からの入力画像、フレームメモリ72からの参照画像、動き予測部85からの1回目の動きベクトルを用いて、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられるフィルタ係数A1を算出し、セレクタ105に出力する。A2フィルタ係数算出部102は、画面並べ替えバッファ62からの入力画像、フレームメモリ72からの参照画像、動き予測部85からの1回目の動きベクトルを用いて、L0L1重み付き予測を使う場合の双予測モードに用いられるフィルタ係数A2を算出し、セレクタ105に出力する。
 A3フィルタ係数算出部103は、画面並べ替えバッファ62からの入力画像、フレームメモリ72からの参照画像、動き予測部85からの1回目の動きベクトルを用いて、L0L1重み付き予測を使う場合のダイレクト・モードに用いられるフィルタ係数A3を算出し、セレクタ105に出力する。A4フィルタ係数算出部104は、画面並べ替えバッファ62からの入力画像、フレームメモリ72からの参照画像、動き予測部85からの1回目の動きベクトルを用いて、L0L1重み付き予測を使う場合のスキップ・モードに用いられるに用いられるフィルタ係数A4を算出し、セレクタ105に出力する。
 セレクタ105は、制御部87の制御のもと、フィルタ係数A1乃至A4のうち、1つのフィルタ係数を選択し、可変補間フィルタ83に出力する。
[フィルタ係数の算出方法]
 次に、フィルタ係数の算出方法について説明する。なお、まず、A1フィルタ係数算出部101によるL0L1重み付き予測を使わない場合の全てのインター予測モードに用いられるフィルタ係数A1の算出方法について説明する。
 フィルタ係数の算出方法については、AIFの補間方法に種類があるため、若干の違いはあるが、最小二乗法を使うといった基本的な部分は同じである。可変補間フィルタ83は、例えば、図6を参照して説明したSeparable adaptive interpolation filter(以下、Separable AIFと称する)により補間処理を行うので、ここでは、代表として、Separable AIFにより、横の補間処理の後に、縦の補間を2段階で行う補間方法について説明する。
 図13は、Separable AIFの横方向のフィルタを表している。図13に示す横方向のフィルタにおいて、斜線が付された正方形は、整数位置の画素(Integer pel(Int. pel))を表し、白色の正方形は、分数位置の画素(Sub pel)を表している。また、正方形内のアルファベットは、その正方形が表す画素の画素値を表している。
 最初に、横方向の補間、すなわち、図13の画素値a,b,cの分数位置の画素位置に対するフィルタ係数を求める。ここでは、6タップフィルタが使用されるので、分数位置の画素値a,b,cを算出するために、整数位置の画素値C1,C2,C3,C4,C5,C6が用いられ、フィルタ係数は、次の式(8)を最小化するようにして算出される。
Figure JPOXMLDOC01-appb-M000001
 ここで、eは、予測誤差であり、spは分数位置の画素値a,b,cのいずれかであり、Sは、原信号であり、Pは、デコード済み参照画素値であり、x.yは、原信号の対象となるピクセル位置である。
 また、式(8)において、次の式(9)である。
Figure JPOXMLDOC01-appb-M000002
 MVおよびspは、1回目の動き予測で検出され、MVは、整数精度で横方向の動きベクトルであり、spは、分数位置の画素位置を表し、動きベクトルの分数部分に相当する。FilterOffsetは、フィルタのタップ数の半分から1を引いた数に相当し、ここでは、2=6/2-1となる。hは、フィルタ係数であり、iは、0乃至5からなる。
 画素値a,b,cにおける最適なフィルタ係数は、eの2乗を最も小さくするhとして求めることができる。次の式(10)に示されるように、予測誤差の2乗を、hで偏微分したものを0になるように、連立方程式が得られる。この連立方程式を解くことにより、分数位置の画素値(sp)がa,b,cのそれぞれに対して、iが0乃至5について独立したフィルタ係数を求めることができる。
Figure JPOXMLDOC01-appb-M000003
 さらに詳しく述べると、1回目の動き探索によって各ブロックで動きベクトルは求まる。その動きベクトルで、分数位置が画素値aのブロックを入力データとして、式(10)における次の式(11)が決まり、画素値aの位置の補間のためのフィルタ係数ha,i,∀i∈{0,1,2,3,4,5}について解くことができる。というように、画素値a,b,cが求まる。
Figure JPOXMLDOC01-appb-M000004
 横方向のフィルタ係数が求まり、補間処理が行えるようになるので、画素値a,b,cに対して補間を行うと、図14に示す縦方向のフィルタのようになる。図14において、画素値a,b,cは、最適なフィルタ係数を用いて補間されており、同様に、画素値A3とA4の間, 画素値B3とB4の間, 画素値D3とD4の間, 画素値E3とE4の間, 画素値F3とF4の間も補間されている。
 すなわち、図14に示すSeparable AIFの縦方向のフィルタにおいて、斜線が付された正方形は、整数位置の画素または横方向のフィルタで既に求められた分数位置の画素を表し、白色の正方形は、縦方向のフィルタで求めるべく、分数位置の画素を表している。また、正方形内のアルファベットは、その正方形が表す画素の画素値を表している。
 図14に示す縦方向の場合も、横方向の場合と同様に、次の式(12)の予測誤差を最小化するようにしてフィルタ係数が求まる。
Figure JPOXMLDOC01-appb-M000005
 ここで、式(13)は、符号化済み参照ピクセルまたは補間されたピクセルであり、式(14)であり、式(15)である。
Figure JPOXMLDOC01-appb-M000006
Figure JPOXMLDOC01-appb-M000007
Figure JPOXMLDOC01-appb-M000008
 また、MVおよびspは、1回目の動き予測で検出され、MVは、整数精度での縦方向の動きベクトルであり、spは、分数位置の画素位置を表し、動きベクトルの分数部分に相当する。FilterOffsetは、フィルタのタップ数の半分から1を引いた数に相当し、ここでは、2=6/2-1となる。hは、フィルタ係数であり、jは、0乃至5からなる。
 横方向の場合と同様に、式(12)の予測誤差の2乗が最小になるようにフィルタ係数hが算出される。そのために、式(16)に示すように、予測誤差の2乗をhで偏微分したものを0とおいて、連立方程式が得られる。各分数位置の画素、すなわち、画素値d,e,f,g,h,I,j,k,l,m,n,oについて、この連立方程式を解くことで、各分数位置の画素における縦の補間フィルタの最適なフィルタ係数を得ることができる。
Figure JPOXMLDOC01-appb-M000009
 次に、例えば、A2フィルタ係数算出部102によるL0L1重み付き予測を使う場合の双予測モードに用いられるフィルタ係数の算出方法について説明する。
 なお、従来は、重み付き予測が行われる予測モードであったとしても、L0参照ピクチャと源信号(入力画像)の間、あるいは、L1参照ピクチャと源信号の間に対して、上述したA1フィルタ係数算出部101による算出方法によってフィルタ係数は算出された。
 これに対して、例えば、L0L1重み付き予測を使う場合の双予測モードに用いられるフィルタ係数の算出方法においては、上述した式(8)の予測誤差は、次の式(17)に示す複数参照の予測誤差のように変化を受ける。
Figure JPOXMLDOC01-appb-M000010
 ここで、式(17)において、spL0は、1回目の動き探索によって得られたL0参照の動きベクトルの分数部分に相当する補間位置であり、spL1は、L1参照の動きベクトルの分数部分に相当する補間位置である。MVL0は、L0参照に対する整数精度の動きベクトルに相当し、MVL1は、L1参照に対する整数精度の動きベクトルに相当する。e2 sp0,sp1はL1予測誤差である。
 また、次の式(18)は、L0予測の補間処理後の参照ピクセルであり、次の式(19)は、L1予測の補間処理後の参照ピクセルであり、次の式(20)は、L0参照とL1参照のピクチャである。
Figure JPOXMLDOC01-appb-M000011
Figure JPOXMLDOC01-appb-M000012
Figure JPOXMLDOC01-appb-M000013
 さらに、式(17)において、hspL0,i,hspL1,iは、L0参照とL1参照のフィルタ係数であり、spL0,spL1はそれぞれa,b,またはcとなる。
 ここでは、説明を簡単にするため重み付き予測は、L0とL1で同じ重みとした。これをこれまでと同様に予測誤差e2 sp0,sp1を最小にすることによって、最適なフィルタ係数hspL0,i,hspL1,iが算出される。このe2 sp0,sp1をhで偏微分し、0と置くことで次の式(21)に示す連立方程式が得られる。
Figure JPOXMLDOC01-appb-M000014
 ここで、xは参照方向のL0,L1の数字の部分である。この式(21)の連立方程式を解くことで、spL0,spL1の組み合わせにおける最適なフィルタ係数hspL0,i,hspL1,iが得られる。
 以上の方法を実践すると、L0動きベクトルの分数位置の画素位置、およびL1動きベクトルの分数位置の画素位置の組み合わせ数に相当するフィルタ係数が得られる。しかしながら、全ての組み合わせを使用すると、a-a,a-b,a-c,…o-m,o-oという組み合わせのように、15×15=225通りとなる。
 このようにフィルタ係数の種類が多くなり過ぎるとストリーム情報に含めるオーバーヘッドが無視できなくなってしまう。そこで、以下にフィルタ係数の組み合わせを減らす方法について説明する。
 再び、予測誤差を、式(17)から、次の式(22)のように定義する。
Figure JPOXMLDOC01-appb-M000015
 ここで、e2 sp0は、L0の動きベクトルの分数部分(分数位置の画素位置)がspL0であるときの予測誤差であり、hFIX spL1,iは、固定のフィルタ係数で代表的な補間フィルタで用いられるものが使われる。上述した式(17)においては、予測誤差がspL0およびspL1の組み合わせによって与えられていたのに対し、式(22)においては、spL0のみに予測誤差が与えられている。
 この式(22)をこれまでと同様に予測誤差e2 sp0,sp1を最小にすることによって、最適なフィルタ係数hspL0,i,hspL1,iが算出される。このe2 sp0,sp1をhで偏微分し、0と置くことで次の式(23)に示す連立方程式が得られる。
Figure JPOXMLDOC01-appb-M000016
 この式(23)をhspL0,iについて解くことで、L0L1重み付き予測を考慮した分数位置の画素位置a,b,cのフィルタ係数が求まる。式(23)は、L1参照ピクチャの補間フィルタが固定になっているため完全な最適化にはならないが、近似的に最適値が得られる。
 また、hspL0,iについてフィルタ係数が得られるが、この式(23)でL1とL0とを置き換えてL0側を固定のフィルタ係数として計算することで同様にL1側のフィルタ係数も求まり、L0とL1の両方で計算することで、L0とL1で統合されたフィルタ係数が求まる。縦方向についても同様の計算を行うことで、a,b,c位置以外のフィルタ係数を得ることができる。
 これにより、フィルタ処理後の画像の高周波成分を増幅するようなフィルタ特性を有するL0L1重み付き予測に用いられるフィルタ係数が算出される。
 なお、双予測モード用のフィルタ係数の算出には、1回目の動き予測により双予測モードが決定されたブロックの画素が用いられる。これに対して、ダイレクト・モード用およびスキップ・モード用のフィルタ係数の算出は、それぞれ用いられる画素が、1回目の動き予測によりダイレクト・モードおよびスキップ・モードが決定されたブロックの画素が用いられる点が異なるだけであり、そのほかは、双予測モード用のフィルタ係数の算出と同様である。
[画像符号化装置の符号化処理の説明]
 次に、図15のフローチャートを参照して、図8の画像符号化装置51の符号化処理について説明する。
 ステップS11において、A/D変換部61は入力された画像をA/D変換する。ステップS12において、画面並べ替えバッファ62は、A/D変換部61より供給された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
 ステップS13において、演算部63は、ステップS12で並び替えられた画像と予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部75から、イントラ予測する場合はイントラ予測部74から、それぞれ予測画像選択部76を介して演算部63に供給される。
 差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
 ステップS14において、直交変換部64は演算部63から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップS15において、量子化部65は変換係数を量子化する。この量子化に際しては、後述するステップS26の処理で説明されるように、レートが制御される。
 以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS16において、逆量子化部68は量子化部65により量子化された変換係数を量子化部65の特性に対応する特性で逆量子化する。ステップS17において、逆直交変換部69は逆量子化部68により逆量子化された変換係数を直交変換部64の特性に対応する特性で逆直交変換する。
 ステップS18において、演算部70は、予測画像選択部76を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部63への入力に対応する画像)を生成する。ステップS19においてデブロックフィルタ71は、演算部70より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップS20においてフレームメモリ72は、フィルタリングされた画像を記憶する。なお、フレームメモリ72にはデブロックフィルタ71によりフィルタ処理されていない画像も演算部70から供給され、記憶される。
 ステップS21において、イントラ予測部74は、イントラ予測処理を行う。具体的には、イントラ予測部74は、画面並べ替えバッファ62から読み出されたイントラ予測する画像と、スイッチ73を介してフレームメモリ72から供給された画像に基づいて、候補となる全てのイントラ予測モードのイントラ予測処理を行い、イントラ予測画像を生成する。
 イントラ予測部74は、候補となる全てのイントラ予測モードに対してコスト関数値を算出する。イントラ予測部74は、算出されたコスト関数値のうち、最小値を与えるイントラ予測モードを、最適イントラ予測モードとして決定する。そして、イントラ予測部74は、最適イントラ予測モードで生成されたイントラ予測画像とそのコスト関数値を、予測画像選択部76に供給する。
 ステップS22において、動き予測・補償部75は、動き予測・補償処理を行う。ステップS22における動き予測・補償処理の詳細は、図16を参照して後述される。
 この処理により、少なくとも、L0L1重み付き予測またはそれ以外の予測に応じたフィルタ係数の固定フィルタおよび可変フィルタが用いられてフィルタ処理が行われ、フィルタ処理された参照画像を用いてブロック毎に動きベクトルおよび予測モードが決定され、対象スライスのコスト関数値が算出される。そして、固定フィルタによる対象スライスのコスト関数値と可変フィルタによる対象スライスのコスト関数値が比較されて、比較結果によりAIF(可変フィルタ)を用いるか否かが決定される。そして、動き予測・補償部75は、決定された方の予測画像とコスト関数値を、予測画像選択部76に供給する。
 ステップS23において、予測画像選択部76は、イントラ予測部74および動き予測・補償部75より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部76は、決定した最適予測モードの予測画像を選択し、演算部63,70に供給する。この予測画像が、上述したように、ステップS13,S18の演算に利用される。
 なお、この予測画像の選択情報は、イントラ予測部74または動き予測・補償部75に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部74は、最適イントラ予測モードを示す情報(すなわち、イントラ予測モード情報)を、可逆符号化部66に供給する。
 最適インター予測モードの予測画像が選択された場合、動き予測・補償部75の動き補償部86は、最適インター予測モードを示す情報、動きベクトル情報や参照フレーム情報、可逆符号化部66に出力する。また、動き補償部86は、スライス毎に、スライスの情報、AIF使用フラグ情報を可逆符号化部66に出力する。
 なお、AIF使用フラグ情報は、用いられるフィルタ係数毎に設定される。したがって、パターンAの場合、L0L1重み付き予測を使わない用のAIF使用フラグ(aif_other_flag)、双予測モード用のAIF使用フラグ(aif_bipred_flag)、ダイレクト・モード用のAIF使用フラグ(aif_direct_flag)、スキップ・モード用のAIF使用フラグ(aif_skip_flag)の値が設定される。
 ステップS24において、可逆符号化部66は量子化部65より出力された量子化された変換係数を符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。このとき、上述したステップS23において可逆符号化部66に入力された、イントラ予測部74からのイントラ予測モード情報、または、動き予測・補償部75からの最適インター予測モードや、上述した各情報なども符号化され、ヘッダ情報に付加される。
 例えば、インター予測モードを示す情報は、マクロブロック毎に符号化される。動きベクトル情報や参照フレーム情報は、対象となるブロック毎に符号化される。また、スライスの情報、AIF使用フラグ情報およびフィルタ係数は、スライス毎にスライスヘッダに挿入されて符号化される。
 ステップS25において蓄積バッファ67は差分画像を圧縮画像として蓄積する。蓄積バッファ67に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
 ステップS26においてレート制御部77は、蓄積バッファ67に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部65の量子化動作のレートを制御する。
[動き予測・補償処理の説明]
 次に、図16のフローチャートを参照して、図15のステップS22における動き予測・補償処理を説明する。
 画面並べ替えバッファ62から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ72から読み出され、スイッチ73を介して固定補間フィルタ81に供給される。さらに、この参照される画像は、可変補間フィルタ83、フィルタ係数算出部84にも入力される。
 ステップS51において、フィルタ係数記憶部82は、制御部87の制御のもと、フィルタ係数選択処理を行う。このフィルタ係数選択処理は、図17を参照して後述されるが、このステップS51の処理により、予測モードに対応するフィルタ係数が固定補間フィルタ81に供給される。
 すなわち、L0L1重み付き予測を使わない用のフィルタ係数A1、双予測モード用のフィルタ係数A2、ダイレクト・モード用のフィルタ係数A3、スキップ・モード用のフィルタ係数A4が、予測モードに応じて選択されて固定補間フィルタ81に供給される。
 ステップS52において、固定補間フィルタ81は、フィルタ係数記憶部82からのフィルタ係数を用いて、参照画像に、予測モードに対応する固定フィルタ処理を行う。すなわち、固定補間フィルタ81は、フレームメモリ72からの参照画像に対して、フィルタ処理を施し、固定フィルタ処理後の参照画像を、動き予測部85および動き補償部86に出力する。
 以上のステップS51およびS52の処理は、予測モード毎に行われる。
 ステップS53において、動き予測部85および動き補償部86は、1回目の動き予測を行い、フィルタ係数記憶部82によりフィルタ処理された参照画像を用いて、動きベクトルおよび予測モードを決定する。
 すなわち、動き予測部85は、画面並べ替えバッファ62からの入力画像と、固定補間フィルタ81からの固定フィルタ後の参照画像に基づいて、候補となる全てのインター予測モードの1回目の動きベクトルを生成し、生成した動きベクトルを動き補償部86に出力する。なお、この1回目の動きベクトルは、フィルタ係数算出部84にも出力され、後述するステップS55の処理に用いられる。
 動き補償部86は、1回目の動きベクトルを用いて、固定補間フィルタ81からの固定フィルタ後の参照画像に対し補償処理を施し、予測画像を生成する。そして、動き補償部86は、ブロック毎にコスト関数値を算出し、それらを比較することにより、最適インター予測モードを決定する。
 以上の処理がブロック毎に行われ、対象スライスにおける全てのブロックの処理が終了すると、ステップS54において、動き補償部86は、1回目の動きベクトルおよび最適インター予測モードで、対象スライスの1回目のコスト関数値を算出する。
 ステップS55において、フィルタ係数算出部84は、動き予測部85からの1回目の動きベクトルを用いて、各フィルタ係数を算出する。
 すなわち、フィルタ係数算出部84は、画面並べ替えバッファ62からの入力画像、フレームメモリ72からの参照画像、動き予測部85からの1回目の動きベクトルを用いて、可変補間フィルタ83のフィルタ処理後の参照画像を、入力画像に近づけるための、予測モードに応じたフィルタ係数を算出する。すなわち、L0L1重み付き予測を使わない用のフィルタ係数A1、双予測モード用のフィルタ係数A2、ダイレクト・モード用のフィルタ係数A3、スキップ・モード用のフィルタ係数A4が算出される。
 なお、算出されたフィルタ係数は、上述した図13のステップS23において、最適インター予測モードの予測画像が選択され、対象スライスで可変フィルタを使用する場合に、可逆符号化部66に出力され、ステップS24において、符号化される。
 ステップS56において、フィルタ係数算出部84は、制御部87の制御のもと、フィルタ係数選択処理を行う。このフィルタ係数選択処理は、図17を参照して後述されるステップS51の処理と同様であるので、その詳細な説明を省略する。このステップS56の処理により、予測モードに対応するフィルタ係数が可変補間フィルタ83に供給される。
 すなわち、L0L1重み付き予測を使わない用のフィルタ係数A1、双予測モード用のフィルタ係数A2、ダイレクト・モード用のフィルタ係数A3、スキップ・モード用のフィルタ係数A4が、予測モードに応じて選択されて可変補間フィルタ83に供給される。
 ステップS57において、可変補間フィルタ83は、フィルタ係数算出部84からのフィルタ係数を用いて、参照画像に、可変フィルタ処理を行う。すなわち、可変補間フィルタ83は、フレームメモリ72からの参照画像に対して、フィルタ係数算出部84により算出されたフィルタ係数を用いてフィルタ処理を施し、可変フィルタ処理後の参照画像を動き予測部85および動き補償部86に出力する。
 以上のステップS56およびS57の処理は、予測モード毎に行われる。
 ステップS58において、動き予測部85および動き補償部86は、2回目の動き予測を行い、可変補間フィルタ83によりフィルタ処理された参照画像を用いて、動きベクトルおよび予測モードを決定する。
 すなわち、動き予測部85は、画面並べ替えバッファ62からの入力画像と、可変補間フィルタ83からの可変フィルタ後の参照画像に基づいて、候補となる全てのインター予測モードの2回目の動きベクトルを生成し、生成した動きベクトルを動き補償部86に出力する。
 動き補償部86は、2回目の動きベクトルを用いて、可変補間フィルタ83からの可変フィルタ後の参照画像に対し補償処理を施し、予測画像を生成する。そして、動き補償部86は、ブロック毎にコスト関数値を算出し、それらを比較することにより、最適インター予測モードを決定する。
 以上の処理がブロック毎に行われ、対象スライスにおける全てのブロックの処理が終了すると、ステップS59において、動き補償部86は、2回目の動きベクトルおよび最適インター予測モードで、対象スライスの2回目のコスト関数値を算出する。
 ステップS60において、動き補償部86は、対象スライスの1回目のコスト関数値と2回目のコスト関数値を比較し、対象スライスの1回目のコスト関数値が2回目のコスト関数値より小さいか否かを判定する。
 対象スライスの1回目のコスト関数値が2回目のコスト関数値より小さいと判定された場合、処理は、ステップS61に進む。ステップS61において、動き補償部86は、その対象スライスでは固定フィルタを使用するとし、1回目の(固定フィルタ後の参照画像で生成された)予測画像とコスト関数値を予測画像選択部76に供給し、対象スライスのAIF使用フラグの値を0に設定する。
 対象スライスの1回目のコスト関数値が2回目のコスト関数値より小さくないと判定された場合、処理は、ステップS62に進む。ステップS62において、動き補償部86は、その対象スライスでは可変フィルタ(AIF)を使用するとし、2回目の(可変フィルタ後の参照画像で生成された)予測画像とコスト関数値を予測画像選択部76に供給し、対象スライスのAIF使用フラグの値を1に設定する。
 設定された対象スライスのAIF使用フラグの情報は、上述した図13のステップS23において、最適インター予測モードの予測画像が選択された場合、制御部87の制御のもと、スライスの情報とともに、可逆符号化部66に出力され、ステップS24において、スライスヘッダに挿入されて、符号化される。
[フィルタ係数選択処理]
 次に、図17のフローチャートを参照して、図16のステップS51のフィルタ係数選択処理について説明する。
 A1フィルタ係数メモリ91乃至A4フィルタ係数メモリ94は、それぞれ、記憶しているフィルタ係数A1乃至A4を、セレクタ95に出力する。
 制御部87は、ステップS71において、次に、動き予測処理する予測モードがL0L1重み付き予測を使用するか否かを判定する。ステップS71において、L0L1重み付き予測を使用しないと判定された場合、処理は、ステップS72に進む。ステップS72において、セレクタ95は、制御部87の制御のもと、A1フィルタ係数メモリ91からのフィルタ係数A1を選択し、それを、固定補間フィルタ81に供給する。
 ステップS71において、L0L1重み付き予測を使用すると判定された場合、処理は、ステップS73に進む。制御部87は、ステップS73において、次に、動き予測処理する予測モードが双予測モードであるか否かを判定する。ステップS73において、双予測モードであると判定された場合、処理は、ステップS74に進む。ステップS74において、セレクタ95は、制御部87の制御のもと、A2フィルタ係数メモリ92からのフィルタ係数A2を選択し、それを、固定補間フィルタ81に供給する。
 ステップS73において、双予測モードではないと判定された場合、処理は、ステップS75に進む。制御部87は、ステップS75において、次に、動き予測処理する予測モードがダイレクト・モードであるか否かを判定する。ステップS75において、ダイレクト・モードであると判定された場合、処理は、ステップS76に進む。ステップS76において、セレクタ95は、制御部87の制御のもと、A3フィルタ係数メモリ93からのフィルタ係数A3を選択し、それを、固定補間フィルタ81に供給する。
 ステップS73において、ダイレクト・モードではないと判定された場合、処理は、ステップS77に進む。すなわち、この場合、スキップ・モードで判定されたので、ステップS77において、セレクタ95は、制御部87の制御のもと、A4フィルタ係数メモリ94からのフィルタ係数A4を選択し、それを、固定補間フィルタ81に供給する。
 以上のように、画像符号化装置51においては、少なくとも、L0L1重み付き予測に用いるか、用いないかによって、補間フィルタに用いられるフィルタ係数を選択するようにした。すなわち、L0L1重み付き予測に用いる場合、フィルタ処理後の画像の高周波成分を増幅するような特性を有するフィルタ係数が選択される。
 したがって、L0L1重み付き予測で失われる高周波成分が予め増幅されるので、重み付き予測後の高周波成分が失われることが抑制され、予測精度が改善される。
 これにより、復号側に送るストリーム情報に含む必要がある残差信号が削減されるので、ビット量が削減でき、符号化効率が改善される。また、残差信号が削減されると、その直交変換後の係数も小さくなり、量子化後には多くの係数が0になることが期待できる。
 H.264/AVCにおいては、連続した0の個数をストリーム情報に含める。通常、0以外の値を決められた符号で置き換えるよりも、0の個数で表現する方がはるかに少ない符号量になるため、本発明により多くの係数が0になることは、符号ビット量の削減につながる。
 また、高周波成分が失われることは、画質に対して鮮明感が損なわれることを意味する。普通、画質の印象として、高周波成分が失われているとぼけた感じを受けるため印象が悪くなる。これに対して、L0L1重み付き予測で失われる高周波成分を取り戻すことができるので、画質の鮮明感が得られる。
 さらに、重み付き予測を行う場合にさらに、双予測モード、ダイレクト・モード、およびスキップ・モードに応じて、フィルタ係数を選択するようにした。すなわち、各モードに応じた高周波成分の増幅の程度の特性があるフィルタ係数が選択される。これにより、図7を参照して上述したように、双予測モード、ダイレクト・モード、およびスキップ・モードの位置ずれの程度が異なる場合に対応することができる。
 符号化された圧縮画像は、所定の伝送路を介して伝送され、画像復号装置により復号される。
[画像復号装置の構成例]
 図18は、本発明を適用した画像処理装置としての画像復号装置の第1実施の形態の構成を表している。
 画像復号装置151は、蓄積バッファ161、可逆復号部162、逆量子化部163、逆直交変換部164、演算部165、デブロックフィルタ166、画面並べ替えバッファ167、D/A変換部168、フレームメモリ169、スイッチ170、イントラ予測部171、動き補償部172、およびスイッチ173により構成されている。
 蓄積バッファ161は伝送されてきた圧縮画像を蓄積する。可逆復号部162は、蓄積バッファ161より供給された、図8の可逆符号化部66により符号化された情報を、可逆符号化部66の符号化方式に対応する方式で復号する。逆量子化部163は可逆復号部162により復号された画像を、図8の量子化部65の量子化方式に対応する方式で逆量子化する。逆直交変換部164は、図8の直交変換部64の直交変換方式に対応する方式で逆量子化部163の出力を逆直交変換する。
 逆直交変換された出力は演算部165によりスイッチ173から供給される予測画像と加算されて復号される。デブロックフィルタ166は、復号された画像のブロック歪を除去した後、フレームメモリ169に供給し、蓄積させるとともに、画面並べ替えバッファ167に出力する。
 画面並べ替えバッファ167は、画像の並べ替えを行う。すなわち、図8の画面並べ替えバッファ62により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部168は、画面並べ替えバッファ167から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
 スイッチ170は、参照される画像をフレームメモリ169から読み出し、動き補償部172に出力するとともに、イントラ予測に用いられる画像をフレームメモリ169から読み出し、イントラ予測部171に供給する。
 イントラ予測部171には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報が可逆復号部162から供給される。イントラ予測部171は、この情報に基づいて、予測画像を生成し、生成した予測画像を、スイッチ173に出力する。
 動き補償部172には、ヘッダ情報を復号して得られた情報のうち、インター予測モード情報、動きベクトル情報、参照フレーム情報、AIF使用フラグ情報、フィルタ係数などが可逆復号部162から供給される。インター予測モード情報は、マクロブロック毎に送信されてくる。動きベクトル情報や参照フレーム情報は、対象ブロック毎に送信されてくる。スライスの種類の情報が含まれるスライスの情報、AIF使用フラグ情報、およびフィルタ係数などは、対象スライス毎にスライスヘッダに挿入されて送信されてくる。
 動き補償部172は、可逆復号部162からのスライスヘッダのAIF使用フラグ情報に基づいて、対象スライスがAIFを使用する場合、スライスヘッダに含まれる可変フィルタ係数で、現在記憶している可変フィルタ係数の置き換えを行う。そして、動き補償部172は、可変の補間フィルタを用いて、フレームメモリ169からの参照画像に可変フィルタ処理を行う。動き補償部172は、可逆復号部162からの動きベクトルを用いて、可変フィルタ処理後の参照画像に補償処理を行い、対象ブロックの予測画像を生成する。生成された予測画像は、スイッチ173を介して、演算部165に出力される。
 動き補償部172は、対象ブロックが含まれる対象スライスがAIFを使用しない場合、係数が固定の補間フィルタを用いて、フレームメモリ169からの参照画像に固定フィルタ処理を行う。そして、動き補償部172は、可逆復号部162からの動きベクトルを用いて、固定フィルタ処理後の参照画像に補償処理を行い、対象ブロックの予測画像を生成する。生成された予測画像は、スイッチ173を介して、演算部165に出力される。
 ここで、動き補償部172においては、図8の動き予測・補償部75と同様に、少なくとも、L0L1重み付き予測に用いられる固定フィルタ係数と、それ以外の予測に用いられる固定フィルタ係数が記憶されている。また、可変の場合も同様に、動き補償部172においては、少なくとも、L0L1重み付き予測に用いられる可変フィルタ用のフィルタ係数と、それ以外の予測に用いられる可変フィルタ係数が可逆復号部162から取得されて、記憶される。
 スイッチ173は、動き補償部172またはイントラ予測部171により生成された予測画像を選択し、演算部165に供給する。
[動き補償部の構成例]
 図19は、動き補償部172の詳細な構成例を示すブロック図である。なお、図19においては、図18のスイッチ170が省略されている。
 図19の例においては、動き補償部172は、固定補間フィルタ181、固定フィルタ係数記憶部182、可変補間フィルタ183、可変フィルタ係数記憶部184、動き補償処理部185、および制御部186により構成されている。
 可逆復号部162から、スライス毎に、スライスヘッダに含まれるスライスの種類を示すスライスの情報とAIF使用フラグ情報が制御部186に供給され、フィルタ係数が可変フィルタ係数記憶部184に供給される。また、可逆復号部162からのマクロブロック毎のインター予測モードを示す情報も、制御部186に供給され、ブロック毎の動きベクトルは動き補償処理部185に供給され、参照フレーム情報は、制御部186に供給される。
 フレームメモリ169からの参照画像は、制御部186の制御のもと、固定補間フィルタ181、および可変補間フィルタ183に入力される。
 固定補間フィルタ181は、フィルタ係数が固定(すなわち、AIFではない)の補間フィルタである。固定補間フィルタ181は、フレームメモリ169からの参照画像に対して、固定フィルタ係数記憶部182からの固定フィルタ係数を用いてフィルタ処理を施し、固定フィルタ処理後の参照画像を、動き補償処理部185に出力する。
 固定フィルタ係数記憶部182は、固定補間フィルタ181で使用される、少なくとも、L0L1重み付き予測用およびそれ以外の予測用の固定フィルタ係数を記憶しており、それらのフィルタ係数を読み出して、制御部186の制御のもと選択し、選択した固定フィルタ係数を、固定補間フィルタ181に供給する。
 可変補間フィルタ183は、フィルタ係数可変の補間フィルタ(すなわち、AIF)である。可変補間フィルタ183は、フレームメモリ169からの参照画像に対して、可変フィルタ係数記憶部184からの可変フィルタ係数を用いてフィルタ処理を施し、可変フィルタ処理後の参照画像を、動き補償処理部185に出力する。
 可変フィルタ係数記憶部184は、可変補間フィルタ183で使用される、少なくとも、L0L1重み付き予測用およびそれ以外の予測用の可変フィルタ係数を一時的に記憶し、スライス毎に、可逆復号部162から、対応する可変フィルタ係数が供給された場合、記憶されている係数と置き換える。可変フィルタ係数記憶部184は、一時的に記憶しているフィルタ係数を読み出して、制御部186の制御のもと選択し、選択した可変フィルタ係数を、可変補間フィルタ183に供給する。
 動き補償処理部185は、制御部186により制御された予測モードで、可逆復号部162からの動きベクトルを用いて、固定補間フィルタ181または可変補間フィルタ183からのフィルタ後の参照画像に補償処理を行い、対象ブロックの予測画像を生成し、生成した予測画像を、スイッチ173に出力する。
 制御部186は、スライス毎に、可逆復号部162からのスライスヘッダの情報に含まれるAIF使用フラグを取得し、取得したAIF使用フラグを参照し、AIFを用いるか否かに基づいて、固定補間フィルタ181、固定フィルタ係数記憶部182、可変補間フィルタ183、および可変フィルタ係数記憶部184を制御する。また、制御部186は、予測モード情報に応じて、L0L1重み付き予測用およびそれ以外の予測用のどちらのフィルタ係数を選択するかを、固定フィルタ係数記憶部182または可変フィルタ係数記憶部184に指示する。
 すなわち、処理対象のブロックが含まれるスライスがAIFを用いる場合、可変フィルタ係数記憶部184に、可逆復号部162からのフィルタ係数で、記憶されている可変フィルタ係数を置き換えさせ、予測モードに対応するL0L1重み付き予測用およびそれ以外の予測用の固定フィルタ係数を選択させ、可変補間フィルタ183にフィルタ処理を行わせる。
 一方、処理対象のブロックが含まれるスライスがAIFを用いない場合、固定フィルタ係数記憶部182に、予測モードに対応するL0L1重み付き予測用およびそれ以外の予測用の固定フィルタ係数を選択させ、固定補間フィルタ181にフィルタ処理を行わせる。
 また、制御部186は、動き補償処理部185に、予測モード情報に基づく予測モードの補償処理を行わせる。
[固定フィルタ係数記憶部の構成例]
 図20は、パターンAの場合の固定フィルタ係数記憶部の構成例を示すブロック図である。
 図20の例において、固定フィルタ係数記憶部182は、A1フィルタ係数メモリ191、A2フィルタ係数メモリ192、A3フィルタ係数メモリ193、A4フィルタ係数メモリ194、およびセレクタ195により構成されている。
 A1フィルタ係数メモリ91は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられる固定フィルタ係数A1を記憶しており、固定フィルタ係数A1をセレクタ95に出力する。A2フィルタ係数メモリ92は、L0L1重み付き予測を使う場合の双予測モードに用いられる固定フィルタ係数A2を記憶しており、固定フィルタ係数A2をセレクタ95に出力する。
 A3フィルタ係数メモリ93は、L0L1重み付き予測を使う場合のダイレクト・モードに用いられる固定フィルタ係数A3を記憶しており、固定フィルタ係数A3をセレクタ95に出力する。A4フィルタ係数メモリ94は、L0L1重み付き予測を使う場合のスキップ・モードに用いられる固定フィルタ係数A4を記憶しており、固定フィルタ係数A4セレクタ95に出力する。
 セレクタ195は、制御部186の制御のもと、固定フィルタ係数A1乃至A4のうち、1つのフィルタ係数を選択し、固定補間フィルタ181に出力する。
[可変フィルタ係数記憶部の構成例]
 図21は、パターンAの場合の可変フィルタ係数記憶部の構成例を示すブロック図である。
 図21の例において、可変フィルタ係数記憶部184は、A1フィルタ係数メモリ201、A2フィルタ係数メモリ202、A3フィルタ係数メモリ203、A4フィルタ係数記メモリ204、およびセレクタ205により構成されている。
 A1フィルタ係数メモリ201は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられる可変フィルタ係数A1を記憶しており、制御部186の制御のもと、可逆復号部162から送られてくる可変フィルタ係数A1で、記憶しているフィルタ係数を置き換える。そして、A1フィルタ係数メモリ201は、置き換えた可変フィルタ係数A1をセレクタ95に出力する。
 A2フィルタ係数メモリ92は、L0L1重み付き予測を使う場合の双予測モードに用いられる可変フィルタ係数A2を記憶しており、制御部186の制御のもと、可逆復号部162から送られてくる可変フィルタ係数A2で、記憶しているフィルタ係数を置き換える。そして、A2フィルタ係数メモリ92は、置き換えた可変フィルタ係数A2をセレクタ95に出力する。
 A3フィルタ係数メモリ93は、L0L1重み付き予測を使う場合のダイレクト・モードに用いられる可変フィルタ係数A3を記憶しており、制御部186の制御のもと、可逆復号部162から送られてくる可変フィルタ係数A3で、記憶しているフィルタ係数を置き換える。そして、A3フィルタ係数メモリ93は、置き換えた可変フィルタ係数A3をセレクタ95に出力する。
 A4フィルタ係数メモリ94は、L0L1重み付き予測を使う場合のスキップ・モードに用いられる可変フィルタ係数A4を記憶しており、制御部186の制御のもと、可逆復号部162から送られてくる可変フィルタ係数A3で、記憶しているフィルタ係数を置き換える。そして、A4フィルタ係数メモリ94は、置き換えた可変フィルタ係数A4セレクタ95に出力する。
 セレクタ205は、制御部87の制御のもと、可変フィルタ係数A1乃至A4のうち、1つのフィルタ係数を選択し、可変補間フィルタ183に出力する。
 なお、各フィルタ係数メモリにおいて、置き換えられたフィルタ係数が有効な期間は、対象スライスのみであってもよいし、次に置きかえられるまでであってもよい。ただし、いずれにしてもIDR(instantaneous decoding refresh)ピクチャがあった場合には、初期値に置き換えられる。すなわち、リセットされる。
 ここで、IDRピクチャとは、H.264/AVC方式で定められており、画像シーケンスの先頭のピクチャを意味し、IDRピクチャから復号が開始できるようになっている。この仕組みによってランダムアクセスが可能となっている。
[画像復号装置の復号処理の説明]
 次に、図22のフローチャートを参照して、画像復号装置151が実行する復号処理について説明する。
 ステップS131において、蓄積バッファ161は伝送されてきた画像を蓄積する。ステップS132において、可逆復号部162は、蓄積バッファ161から供給される圧縮画像を復号する。すなわち、図8の可逆符号化部66により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
 このとき、ブロック毎に、動きベクトル情報、参照フレーム情報なども復号される。また、マクロブロック毎に、予測モード情報(イントラ予測モード、またはインター予測モードを示す情報)なども復号される。さらに、スライス毎に、スライスの種類の情報AIF使用フラグ情報やフィルタ係数などを含むスライスヘッダ情報も復号される。
 ステップS133において、逆量子化部163は可逆復号部162により復号された変換係数を、図8の量子化部65の特性に対応する特性で逆量子化する。ステップS134において逆直交変換部164は逆量子化部163により逆量子化された変換係数を、図8の直交変換部64の特性に対応する特性で逆直交変換する。これにより図8の直交変換部64の入力(演算部63の出力)に対応する差分情報が復号されたことになる。
 ステップS135において、演算部165は、後述するステップS141の処理で選択され、スイッチ173を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。ステップS136においてデブロックフィルタ166は、演算部165より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップS137においてフレームメモリ169は、フィルタリングされた画像を記憶する。
 ステップS138において、可逆復号部162は、圧縮画像のヘッダ部の可逆復号結果に基づいて、圧縮画像がインター予測された画像であるかどうか、即ち、可逆復号結果に最適インター予測モードを表す情報が含まれているかどうかを判定する。
 ステップS138で圧縮画像がインター予測された画像であると判定された場合、可逆復号部162は、動きベクトル情報、参照フレーム情報、最適インター予測モードを表す情報、AIF使用フラグ情報、フィルタ係数などを動き補償部172に供給する。
 そして、ステップS139において、動き補償部172は、動き補償処理を行う。ステップS139における動き補償処理の詳細は、図23を参照して後述される。
 この処理により、対象スライスがAIF使用の場合、可逆復号部162からのL0L1重み付き予測またはそれ以外の予測に応じた可変フィルタ係数で記憶済みのフィルタ係数が置き換えられる。そして、予測モードがL0L1重み付き予測を使用するか否かに応じた可変フィルタ係数が用いられて可変フィルタ処理が行われる。対象スライスがAIF未使用の場合、予測モードがL0L1重み付き予測を使用するか否かに応じた固定フィルタ係数が用いられて固定フィルタ処理が行われる。その後、フィルタ処理後の参照画像に、動きベクトルを用いて補償処理が行われ、これにより生成された予測画像がスイッチ173に出力される。
 一方、ステップS138で圧縮画像がインター予測された画像ではないと判定された場合、すなわち、可逆復号結果に最適イントラ予測モードを表す情報が含まれている場合、可逆復号部162は、最適イントラ予測モードを表す情報をイントラ予測部171に供給する。
 そして、ステップS140において、イントラ予測部171は、可逆復号部162からの情報が表す最適イントラ予測モードで、フレームメモリ169からの画像に対してイントラ予測処理を行い、イントラ予測画像を生成する。そして、イントラ予測部171は、イントラ予測画像をスイッチ173に出力する。
 ステップS141において、スイッチ173は予測画像を選択し、演算部165に出力する。すなわち、イントラ予測部171により生成された予測画像、または動き補償部172により生成された予測画像が供給される。したがって、供給された予測画像が選択されて演算部165に出力され、上述したように、ステップS135において逆直交変換部164の出力と加算される。
 ステップS142において、画面並べ替えバッファ167は並べ替えを行う。すなわち画像符号化装置51の画面並べ替えバッファ62により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
 ステップS143において、D/A変換部168は、画面並べ替えバッファ167からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
[画像復号装置の動き補償処理の説明]
 次に、図23のフローチャートを参照して、図22のステップS139の動き補償処理を説明する。
 制御部186は、ステップS151において、可逆復号部162からのスライスヘッダの情報に含まれるAIF使用フラグ情報を取得する。なお、AIF使用フラグ情報は、符号化側において、用いられるフィルタ係数毎に設定されて送信されてくる。したがって、パターンAの場合、L0L1重み付き予測を使わない用のAIF使用フラグ(aif_other_flag)、双予測モード用のAIF使用フラグ(aif_bipred_flag)、ダイレクト・モード用のAIF使用フラグ(aif_direct_flag)、スキップ・モード用のAIF使用フラグ(aif_skip_flag)が取得される。
 制御部186は、ステップS152において、それらのAIF使用フラグに基づいて、対象スライスにおいてAIFを用いるか否かを判定する。例えば、上述した複数のAIF使用フラグの値が1つでも1であった場合、ステップS152において、AIFを用いると判定されて、処理は、ステップS153に進む。
 ステップS153において、可変フィルタ係数記憶部184は、制御部186の制御のもと、可変フィルタ係数置き換え処理を実行する。この可変フィルタ係数置き換え処理は、図24を参照して後述するが、ステップS153の処理により、AIF使用フラグの値が1である、すなわち、そのスライスについて、符号化側で算出された可変フィルタ係数で、記憶されている係数が置き換えられる。なお、このとき、可変フィルタ係数記憶部184のA1フィルタ係数メモリ201乃至A4フィルタ係数メモリ204は、記憶されているフィルタ係数を読み出し、読み出した各フィルタ係数をセレクタ205に供給する。
 一方、例えば、上述した複数のAIF使用フラグの値がすべて0であった場合、ステップS152において、AIFを用いないと判定されて、ステップS153はスキップされ、処理は、ステップS154に進む。なお、このとき、固定フィルタ係数記憶部182のA1フィルタ係数メモリ191乃至A4フィルタ係数メモリ194は、記憶されているフィルタ係数を読み出し、読み出した各フィルタ係数をセレクタ195に供給する。
 ここで、説明の便宜上、次のステップS156、S158、S160乃至S162の処理は、上述したステップS152でAIFを用いると判定された場合には、可変フィルタ係数記憶部184および可変補間フィルタ183により行われ、上述したステップS152でAIFを用いないと判定された場合には、固定フィルタ係数記憶部182および固定補間フィルタ181により行われる処理である。以下、代表して、可変フィルタ係数記憶部184および可変補間フィルタ183の例を説明する。
 ステップS154において、制御部186は、可逆復号部162からのマクロブロック毎のインター予測モードの情報を取得する。
 ステップS155において、制御部186は、インター予測モードの情報に基づいて、L0L1重み付き予測を行っているか否かを判定する。ステップS155において、L0L1重み付き予測を行っていないと判定された場合、処理は、ステップS156に進み、セレクタ205は、制御部186の制御のもと、A1フィルタ係数メモリ201からのフィルタ係数A1を選択し、選択したフィルタ係数A1を可変補間フィルタ183に供給する。
 ステップS155において、L0L1重み付き予測を行っていると判定された場合、処理は、ステップS157に進み、制御部186は、インター予測モードの情報に基づいて、双予測モードであるか否かを判定する。
 ステップS157において、双予測モードであると判定された場合、処理は、ステップS158に進み、セレクタ205は、制御部186の制御のもと、A2フィルタ係数メモリ202からのフィルタ係数A2を選択し、選択したフィルタ係数A2を可変補間フィルタ183に供給する。
 ステップS157において、双予測モードではないと判定された場合、処理は、ステップS159に進み、制御部186は、インター予測モードの情報に基づいて、ダイレクト・モードであるか否かを判定する。
 ステップS159において、ダイレクト・モードであると判定された場合、処理は、ステップS160に進み、セレクタ205は、制御部186の制御のもと、A3フィルタ係数メモリ203からのフィルタ係数A3を選択し、選択したフィルタ係数A3を可変補間フィルタ183に供給する。
 ステップS159において、ダイレクト・モードではないと判定された場合、すなわち、スキップ・モードである場合、処理は、ステップS161に進み、セレクタ205は、制御部186の制御のもと、A4フィルタ係数メモリ204からのフィルタ係数A4を選択し、選択したフィルタ係数A4を可変補間フィルタ183に供給する。
 ステップS162において、可変補間フィルタ183は、フレームメモリ169からの参照画像に対して、可変フィルタ係数記憶部184からの可変フィルタ係数を用いてフィルタ処理を施し、可変フィルタ処理後の参照画像を、動き補償処理部185に出力する。
 ステップS163において、制御部186により制御された予測モードで、可逆復号部162からの動きベクトルを用いて、フィルタ後の参照画像に補償処理を行い、対象ブロックの予測画像を生成し、生成した予測画像を、スイッチ173に出力する。
[可変フィルタ係数置き換え処理の説明]
 次に、図24のフローチャートを参照して、図23のステップS153の可変フィルタ係数置き換え処理について説明する。
 制御部186は、ステップS171において、L0L1重み付き予測を使わない用のAIF使用フラグ(aif_other_flag)の値が1であるか否かを判定する。ステップS171において、aif_other_flagの値が1であると判定された場合、処理は、ステップS172に進み、A1フィルタ係数メモリ201は、制御部186の制御のもと、可逆復号部162からのスライスヘッダに含まれるフィルタ係数A1で、記憶済みのフィルタ係数を置き換える。
 ステップS171において、aif_other_flagの値が1ではないと判定された場合、処理は、ステップS173に進み、制御部186は、双予測モード用のAIF使用フラグ(aif_bipred_flag)の値が1であるか否かを判定する。ステップS173において、aif_bipred_flagの値が1であると判定された場合、処理は、ステップS174に進み、A2フィルタ係数メモリ202は、制御部186の制御のもと、可逆復号部162からのスライスヘッダに含まれるフィルタ係数A2で、記憶済みのフィルタ係数を置き換える。
 ステップS173において、aif_bipred_flagの値が1ではないと判定された場合、処理は、ステップS175に進み、制御部186は、ダイレクト・モード用のAIF使用フラグ(aif_direct_flag)の値が1であるか否かを判定する。ステップS175において、aif_direct_flagの値が1であると判定された場合、処理は、ステップS176に進み、A3フィルタ係数メモリ203は、制御部186の制御のもと、可逆復号部162からのスライスヘッダに含まれるフィルタ係数A3で、記憶済みのフィルタ係数を置き換える。
 ステップS175において、aif_direct_flagの値が1ではないと判定された場合、処理は、ステップS177に進み、制御部186は、スキップ・モード用のAIF使用フラグ(aif_skip_flag)の値が1であるか否かを判定する。ステップS177において、aif_skip_flagの値が1であると判定された場合、処理は、ステップS178に進み、A4フィルタ係数メモリ204は、制御部186の制御のもと、可逆復号部162からのスライスヘッダに含まれるフィルタ係数A4で、記憶済みのフィルタ係数を置き換える。
 ステップS177において、aif_skip_flagの値が1ではないと判定された場合、処理は、図23のステップS154に進む。すなわち、この場合、どのAIFも使用されないので、どのフィルタ係数も置き換えられることなく、処理は進む。
 以上のように、画像符号化装置51および画像復号装置151においては、少なくとも、L0L1重み付き予測に用いるか、用いないかによって、補間フィルタに用いられるフィルタ係数を選択するようにした。すなわち、L0L1重み付き予測に用いる場合、フィルタ処理後の画像の高周波成分を増幅するような特性を有するフィルタ係数が選択される。
 したがって、L0L1重み付き予測で失われる高周波成分が予め増幅されるので、重み付き予測後の高周波成分が失われることが抑制され、予測精度が改善される。
 これにより、復号側に送るストリーム情報に含む必要がある残差信号が削減されるので、ビット量が削減でき、符号化効率が改善される。
 また、重み付き予測を行う場合にさらに、双予測モード、ダイレクト・モード、およびスキップ・モードに応じて、フィルタ係数を選択するようにした。すなわち、各モードに応じた高周波成分の増幅の程度の特性があるフィルタ係数が選択される。これにより、図7を参照して上述したように、双予測モード、ダイレクト・モード、およびスキップ・モードの位置ずれの程度が異なる場合に対応することができる。
 さらに、このフィルタ選択を、可変フィルタ(AIF)にも適用するようにしたので、AIFにおいても、画像の高周波成分の喪失を抑制することができ、画質の鮮明感を得ることができる。
 なお、上記説明においては、フィルタに6タップ数を用いる例を説明したが、フィルタのタップ数は限定されない。
 以上においては、Separable AIFの補間フィルタを例に説明してきたが、フィルタの構造は、Separable AIFに限らない。すなわち、フィルタの構造は異なっていても、本発明を適用することができる。
[拡張マクロブロックサイズへの適用の説明]
 図25は、非特許文献4で提案されているブロックサイズの例を示す図である。非特許文献4では、マクロブロックサイズが32×32画素に拡張されている。
 図25の上段には、左から、32×32画素、32×16画素、16×32画素、および16×16画素のブロック(パーティション)に分割された32×32画素で構成されるマクロブロックが順に示されている。図25の中段には、左から、16×16画素、16×8画素、8×16画素、および8×8画素のブロックに分割された16×16画素で構成されるブロックが順に示されている。また、図25の下段には、左から、8×8画素、8×4画素、4×8画素、および4×4画素のブロックに分割された8×8画素のブロックが順に示されている。
 すなわち、32×32画素のマクロブロックは、図25の上段に示される32×32画素、32×16画素、16×32画素、および16×16画素のブロックでの処理が可能である。
 上段の右側に示される16×16画素のブロックは、H.264/AVC方式と同様に、中段に示される16×16画素、16×8画素、8×16画素、および8×8画素のブロックでの処理が可能である。
 中段の右側に示される8×8画素のブロックは、H.264/AVC方式と同様に、下段に示される8×8画素、8×4画素、4×8画素、および4×4画素のブロックでの処理が可能である。
 このような階層構造を採用することにより、非特許文献4の提案では、16×16画素のブロック以下に関しては、H.264/AVC方式と互換性を保ちながら、そのスーパーセットとして、より大きなブロックが定義されている。
 以上のように提案される拡張されたマクロブロックサイズにも本発明を適用することができる。
 また、以上においては、符号化方式としてH.264/AVC方式をベースに用いるようにしたが、本発明はこれに限らず、その他の動き予測・補償処理を行う符号化方式/復号方式を用いる画像符号化装置/画像復号装置に適用することもできる。
 なお、本発明は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本発明は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本発明は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
 上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
[パーソナルコンピュータの構成例]
 図26は、本発明の一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 コンピュータにおいて、CPU(Central Processing Unit)251、ROM(Read Only Memory)252、RAM(Random Access Memory)253は、バス254により相互に接続されている。
 バス254には、さらに、入出力インタフェース255が接続されている。入出力インタフェース255には、入力部256、出力部257、記憶部258、通信部259、およびドライブ260が接続されている。
 入力部256は、キーボード、マウス、マイクロホンなどよりなる。出力部257は、ディスプレイ、スピーカなどよりなる。記憶部258は、ハードディスクや不揮発性のメモリなどよりなる。通信部259は、ネットワークインタフェースなどよりなる。ドライブ260は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア261を駆動する。
 以上のように構成されるコンピュータでは、CPU251が、例えば、記憶部258に記憶されているプログラムを入出力インタフェース255及びバス254を介してRAM253にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ(CPU251)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア261に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供することができる。
 コンピュータでは、プログラムは、リムーバブルメディア261をドライブ260に装着することにより、入出力インタフェース255を介して、記憶部258にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部259で受信し、記憶部258にインストールすることができる。その他、プログラムは、ROM252や記憶部258に、あらかじめインストールしておくことができる。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、上述した画像符号化装置51や画像復号装置151は、任意の電子機器に適用することができる。以下にその例について説明する。
[テレビジョン受像機の構成例]
 図27は、本発明を適用した画像復号装置を用いるテレビジョン受像機の主な構成例を示すブロック図である。
 図27に示されるテレビジョン受像機300は、地上波チューナ313、ビデオデコーダ315、映像信号処理回路318、グラフィック生成回路319、パネル駆動回路320、および表示パネル321を有する。
 地上波チューナ313は、地上アナログ放送の放送波信号を、アンテナを介して受信し、復調し、映像信号を取得し、それをビデオデコーダ315に供給する。ビデオデコーダ315は、地上波チューナ313から供給された映像信号に対してデコード処理を施し、得られたデジタルのコンポーネント信号を映像信号処理回路318に供給する。
 映像信号処理回路318は、ビデオデコーダ315から供給された映像データに対してノイズ除去などの所定の処理を施し、得られた映像データをグラフィック生成回路319に供給する。
 グラフィック生成回路319は、表示パネル321に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成し、生成した映像データや画像データをパネル駆動回路320に供給する。また、グラフィック生成回路319は、項目の選択などにユーザにより利用される画面を表示するための映像データ(グラフィック)を生成し、それを番組の映像データに重畳したりすることによって得られた映像データをパネル駆動回路320に供給するといった処理も適宜行う。
 パネル駆動回路320は、グラフィック生成回路319から供給されたデータに基づいて表示パネル321を駆動し、番組の映像や上述した各種の画面を表示パネル321に表示させる。
 表示パネル321はLCD(Liquid Crystal Display)などよりなり、パネル駆動回路320による制御に従って番組の映像などを表示させる。
 また、テレビジョン受像機300は、音声A/D(Analog/Digital)変換回路314、音声信号処理回路322、エコーキャンセル/音声合成回路323、音声増幅回路324、およびスピーカ325も有する。
 地上波チューナ313は、受信した放送波信号を復調することにより、映像信号だけでなく音声信号も取得する。地上波チューナ313は、取得した音声信号を音声A/D変換回路314に供給する。
 音声A/D変換回路314は、地上波チューナ313から供給された音声信号に対してA/D変換処理を施し、得られたデジタルの音声信号を音声信号処理回路322に供給する。
 音声信号処理回路322は、音声A/D変換回路314から供給された音声データに対してノイズ除去などの所定の処理を施し、得られた音声データをエコーキャンセル/音声合成回路323に供給する。
 エコーキャンセル/音声合成回路323は、音声信号処理回路322から供給された音声データを音声増幅回路324に供給する。
 音声増幅回路324は、エコーキャンセル/音声合成回路323から供給された音声データに対してD/A変換処理、増幅処理を施し、所定の音量に調整した後、音声をスピーカ325から出力させる。
 さらに、テレビジョン受像機300は、デジタルチューナ316およびMPEGデコーダ317も有する。
 デジタルチューナ316は、デジタル放送(地上デジタル放送、BS(Broadcasting Satellite)/CS(Communications Satellite)デジタル放送)の放送波信号を、アンテナを介して受信し、復調し、MPEG-TS(Moving Picture Experts Group-Transport Stream)を取得し、それをMPEGデコーダ317に供給する。
 MPEGデコーダ317は、デジタルチューナ316から供給されたMPEG-TSに施されているスクランブルを解除し、再生対象(視聴対象)になっている番組のデータを含むストリームを抽出する。MPEGデコーダ317は、抽出したストリームを構成する音声パケットをデコードし、得られた音声データを音声信号処理回路322に供給するとともに、ストリームを構成する映像パケットをデコードし、得られた映像データを映像信号処理回路318に供給する。また、MPEGデコーダ317は、MPEG-TSから抽出したEPG(Electronic Program Guide)データを図示せぬ経路を介してCPU332に供給する。
 テレビジョン受像機300は、このように映像パケットをデコードするMPEGデコーダ317として、上述した画像復号装置151を用いる。したがって、MPEGデコーダ317は、画像復号装置151の場合と同様に、重み付き予測後の高周波成分が失われることが抑制され、画質の鮮明感が得られる。
 MPEGデコーダ317から供給された映像データは、ビデオデコーダ315から供給された映像データの場合と同様に、映像信号処理回路318において所定の処理が施される。そして、所定の処理が施された映像データは、グラフィック生成回路319において、生成された映像データ等が適宜重畳され、パネル駆動回路320を介して表示パネル321に供給され、その画像が表示される。
 MPEGデコーダ317から供給された音声データは、音声A/D変換回路314から供給された音声データの場合と同様に、音声信号処理回路322において所定の処理が施される。そして、所定の処理が施された音声データは、エコーキャンセル/音声合成回路323を介して音声増幅回路324に供給され、D/A変換処理や増幅処理が施される。その結果、所定の音量に調整された音声がスピーカ325から出力される。
 また、テレビジョン受像機300は、マイクロホン326、およびA/D変換回路327も有する。
 A/D変換回路327は、音声会話用のものとしてテレビジョン受像機300に設けられるマイクロホン326により取り込まれたユーザの音声の信号を受信する。A/D変換回路327は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データをエコーキャンセル/音声合成回路323に供給する。
 エコーキャンセル/音声合成回路323は、テレビジョン受像機300のユーザ(ユーザA)の音声のデータがA/D変換回路327から供給されている場合、ユーザAの音声データを対象としてエコーキャンセルを行う。そして、エコーキャンセル/音声合成回路323は、エコーキャンセルの後、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路324を介してスピーカ325より出力させる。
 さらに、テレビジョン受像機300は、音声コーデック328、内部バス329、SDRAM(Synchronous Dynamic Random Access Memory)330、フラッシュメモリ331、CPU332、USB(Universal Serial Bus) I/F333、およびネットワークI/F334も有する。
 A/D変換回路327は、音声会話用のものとしてテレビジョン受像機300に設けられるマイクロホン326により取り込まれたユーザの音声の信号を受信する。A/D変換回路327は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データを音声コーデック328に供給する。
 音声コーデック328は、A/D変換回路327から供給された音声データを、ネットワーク経由で送信するための所定のフォーマットのデータに変換し、内部バス329を介してネットワークI/F334に供給する。
 ネットワークI/F334は、ネットワーク端子335に装着されたケーブルを介してネットワークに接続される。ネットワークI/F334は、例えば、そのネットワークに接続される他の装置に対して、音声コーデック328から供給された音声データを送信する。また、ネットワークI/F334は、例えば、ネットワークを介して接続される他の装置から送信される音声データを、ネットワーク端子335を介して受信し、それを、内部バス329を介して音声コーデック328に供給する。
 音声コーデック328は、ネットワークI/F334から供給された音声データを所定のフォーマットのデータに変換し、それをエコーキャンセル/音声合成回路323に供給する。
 エコーキャンセル/音声合成回路323は、音声コーデック328から供給される音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路324を介してスピーカ325より出力させる。
 SDRAM330は、CPU332が処理を行う上で必要な各種のデータを記憶する。
 フラッシュメモリ331は、CPU332により実行されるプログラムを記憶する。フラッシュメモリ331に記憶されているプログラムは、テレビジョン受像機300の起動時などの所定のタイミングでCPU332により読み出される。フラッシュメモリ331には、デジタル放送を介して取得されたEPGデータ、ネットワークを介して所定のサーバから取得されたデータなども記憶される。
 例えば、フラッシュメモリ331には、CPU332の制御によりネットワークを介して所定のサーバから取得されたコンテンツデータを含むMPEG-TSが記憶される。フラッシュメモリ331は、例えばCPU332の制御により、そのMPEG-TSを、内部バス329を介してMPEGデコーダ317に供給する。
 MPEGデコーダ317は、デジタルチューナ316から供給されたMPEG-TSの場合と同様に、そのMPEG-TSを処理する。このようにテレビジョン受像機300は、映像や音声等よりなるコンテンツデータを、ネットワークを介して受信し、MPEGデコーダ317を用いてデコードし、その映像を表示させたり、音声を出力させたりすることができる。
 また、テレビジョン受像機300は、リモートコントローラ351から送信される赤外線信号を受光する受光部337も有する。
 受光部337は、リモートコントローラ351からの赤外線を受光し、復調して得られたユーザ操作の内容を表す制御コードをCPU332に出力する。
 CPU332は、フラッシュメモリ331に記憶されているプログラムを実行し、受光部337から供給される制御コードなどに応じてテレビジョン受像機300の全体の動作を制御する。CPU332とテレビジョン受像機300の各部は、図示せぬ経路を介して接続されている。
 USB I/F333は、USB端子336に装着されたUSBケーブルを介して接続される、テレビジョン受像機300の外部の機器との間でデータの送受信を行う。ネットワークI/F334は、ネットワーク端子335に装着されたケーブルを介してネットワークに接続し、ネットワークに接続される各種の装置と音声データ以外のデータの送受信も行う。
 テレビジョン受像機300は、MPEGデコーダ317として画像復号装置151を用いることにより、符号化効率を向上するとともに、画質の鮮明感を得ることができる。その結果として、テレビジョン受像機300は、アンテナを介して受信した放送波信号や、ネットワークを介して取得したコンテンツデータから、より高精細な復号画像を得て、表示することができる。
[携帯電話機の構成例]
 図28は、本発明を適用した画像符号化装置および画像復号装置を用いる携帯電話機の主な構成例を示すブロック図である。
 図28に示される携帯電話機400は、各部を統括的に制御するようになされた主制御部450、電源回路部451、操作入力制御部452、画像エンコーダ453、カメラI/F部454、LCD制御部455、画像デコーダ456、多重分離部457、記録再生部462、変復調回路部458、および音声コーデック459を有する。これらは、バス460を介して互いに接続されている。
 また、携帯電話機400は、操作キー419、CCD(Charge Coupled Devices)カメラ416、液晶ディスプレイ418、記憶部423、送受信回路部463、アンテナ414、マイクロホン(マイク)421、およびスピーカ417を有する。
 電源回路部451は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話機400を動作可能な状態に起動する。
 携帯電話機400は、CPU、ROMおよびRAM等でなる主制御部450の制御に基づいて、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
 例えば、音声通話モードにおいて、携帯電話機400は、マイクロホン(マイク)421で集音した音声信号を、音声コーデック459によってデジタル音声データに変換し、これを変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(音声信号)は、公衆電話回線網を介して通話相手の携帯電話機に供給される。
 また、例えば、音声通話モードにおいて、携帯電話機400は、アンテナ414で受信した受信信号を送受信回路部463で増幅し、さらに周波数変換処理およびアナログデジタル変換処理し、変復調回路部458でスペクトラム逆拡散処理し、音声コーデック459によってアナログ音声信号に変換する。携帯電話機400は、その変換して得られたアナログ音声信号をスピーカ417から出力する。
 更に、例えば、データ通信モードにおいて電子メールを送信する場合、携帯電話機400は、操作キー419の操作によって入力された電子メールのテキストデータを、操作入力制御部452において受け付ける。携帯電話機400は、そのテキストデータを主制御部450において処理し、LCD制御部455を介して、画像として液晶ディスプレイ418に表示させる。
 また、携帯電話機400は、主制御部450において、操作入力制御部452が受け付けたテキストデータやユーザ指示等に基づいて電子メールデータを生成する。携帯電話機400は、その電子メールデータを、変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(電子メール)は、ネットワークおよびメールサーバ等を介して、所定のあて先に供給される。
 また、例えば、データ通信モードにおいて電子メールを受信する場合、携帯電話機400は、基地局から送信された信号を、アンテナ414を介して送受信回路部463で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機400は、その受信信号を変復調回路部458でスペクトラム逆拡散処理して元の電子メールデータを復元する。携帯電話機400は、復元された電子メールデータを、LCD制御部455を介して液晶ディスプレイ418に表示する。
 なお、携帯電話機400は、受信した電子メールデータを、記録再生部462を介して、記憶部423に記録する(記憶させる)ことも可能である。
 この記憶部423は、書き換え可能な任意の記憶媒体である。記憶部423は、例えば、RAMや内蔵型フラッシュメモリ等の半導体メモリであってもよいし、ハードディスクであってもよいし、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアであってもよい。もちろん、これら以外のものであってもよい。
 さらに、例えば、データ通信モードにおいて画像データを送信する場合、携帯電話機400は、撮像によりCCDカメラ416で画像データを生成する。CCDカメラ416は、レンズや絞り等の光学デバイスと光電変換素子としてのCCDを有し、被写体を撮像し、受光した光の強度を電気信号に変換し、被写体の画像の画像データを生成する。その画像データを、カメラI/F部454を介して、画像エンコーダ453で、例えばMPEG2やMPEG4等の所定の符号化方式によって圧縮符号化することにより符号化画像データに変換する。
 携帯電話機400は、このような処理を行う画像エンコーダ453として、上述した画像符号化装置51を用いる。したがって、画像エンコーダ453は、画像符号化装置51の場合と同様に、フレームメモリの使用帯域を小さくするとともに、ストリーム情報に含めるフィルタ係数のオーバーヘッドを小さくすることができる。
 なお、携帯電話機400は、このとき同時に、CCDカメラ416で撮像中にマイクロホン(マイク)421で集音した音声を、音声コーデック459においてアナログデジタル変換し、さらに符号化する。
 携帯電話機400は、多重分離部457において、画像エンコーダ453から供給された符号化画像データと、音声コーデック459から供給されたデジタル音声データとを、所定の方式で多重化する。携帯電話機400は、その結果得られる多重化データを、変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(画像データ)は、ネットワーク等を介して、通信相手に供給される。
 なお、画像データを送信しない場合、携帯電話機400は、CCDカメラ416で生成した画像データを、画像エンコーダ453を介さずに、LCD制御部455を介して液晶ディスプレイ418に表示させることもできる。
 また、例えば、データ通信モードにおいて、簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、携帯電話機400は、基地局から送信された信号を、アンテナ414を介して送受信回路部463で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機400は、その受信信号を変復調回路部458でスペクトラム逆拡散処理して元の多重化データを復元する。携帯電話機400は、多重分離部457において、その多重化データを分離して、符号化画像データと音声データとに分ける。
 携帯電話機400は、画像デコーダ456において、符号化画像データを、MPEG2やMPEG4等の所定の符号化方式に対応した復号方式でデコードすることにより、再生動画像データを生成し、これを、LCD制御部455を介して液晶ディスプレイ418に表示させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが液晶ディスプレイ418に表示される。
 携帯電話機400は、このような処理を行う画像デコーダ456として、上述した画像復号装置151を用いる。したがって、画像デコーダ456は、画像復号装置151の場合と同様に、フレームメモリの使用帯域を小さくするとともに、ストリーム情報に含めるフィルタ係数のオーバーヘッドを小さくすることができる。
 このとき、携帯電話機400は、同時に、音声コーデック459において、デジタルの音声データをアナログ音声信号に変換し、これをスピーカ417より出力させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
 なお、電子メールの場合と同様に、携帯電話機400は、受信した簡易ホームページ等にリンクされたデータを、記録再生部462を介して、記憶部423に記録する(記憶させる)ことも可能である。
 また、携帯電話機400は、主制御部450において、撮像されてCCDカメラ416で得られた2次元コードを解析し、2次元コードに記録された情報を取得することができる。
 さらに、携帯電話機400は、赤外線通信部481で赤外線により外部の機器と通信することができる。
 携帯電話機400は、画像エンコーダ453として画像符号化装置51を用いることにより、重み付き予測後の高周波成分が失われることが抑制され、予測精度が改善される。結果として、携帯電話機400は、符号化効率のよい符号化データ(画像データ)を、他の装置に提供することができる。
 また、携帯電話機400は、画像デコーダ456として画像復号装置151を用いることにより、重み付き予測後の高周波成分が失われることが抑制され、画質の鮮明感が得られる。その結果として、携帯電話機400は、例えば、簡易ホームページにリンクされた動画像ファイルから、より高精細な復号画像を得て、表示することができる。
 なお、以上において、携帯電話機400が、CCDカメラ416を用いるように説明したが、このCCDカメラ416の代わりに、CMOS(Complementary Metal Oxide Semiconductor)を用いたイメージセンサ(CMOSイメージセンサ)を用いるようにしてもよい。この場合も、携帯電話機400は、CCDカメラ416を用いる場合と同様に、被写体を撮像し、被写体の画像の画像データを生成することができる。
 また、以上においては携帯電話機400として説明したが、例えば、PDA(Personal Digital Assistants)、スマートフォン、UMPC(Ultra Mobile Personal Computer)、ネットブック、ノート型パーソナルコンピュータ等、この携帯電話機400と同様の撮像機能や通信機能を有する装置であれば、どのような装置であっても携帯電話機400の場合と同様に、画像符号化装置51および画像復号装置151を適用することができる。
[ハードディスクレコーダの構成例]
 図29は、本発明を適用した画像符号化装置および画像復号装置を用いるハードディスクレコーダの主な構成例を示すブロック図である。
 図29に示されるハードディスクレコーダ(HDDレコーダ)500は、チューナにより受信された、衛星や地上のアンテナ等より送信される放送波信号(テレビジョン信号)に含まれる放送番組のオーディオデータとビデオデータを、内蔵するハードディスクに保存し、その保存したデータをユーザの指示に応じたタイミングでユーザに提供する装置である。
 ハードディスクレコーダ500は、例えば、放送波信号よりオーディオデータとビデオデータを抽出し、それらを適宜復号し、内蔵するハードディスクに記憶させることができる。また、ハードディスクレコーダ500は、例えば、ネットワークを介して他の装置からオーディオデータやビデオデータを取得し、それらを適宜復号し、内蔵するハードディスクに記憶させることもできる。
 さらに、ハードディスクレコーダ500は、例えば、内蔵するハードディスクに記録されているオーディオデータやビデオデータを復号してモニタ560に供給し、モニタ560の画面にその画像を表示させる。また、ハードディスクレコーダ500は、モニタ560のスピーカよりその音声を出力させることができる。
 ハードディスクレコーダ500は、例えば、チューナを介して取得された放送波信号より抽出されたオーディオデータとビデオデータ、または、ネットワークを介して他の装置から取得したオーディオデータやビデオデータを復号してモニタ560に供給し、モニタ560の画面にその画像を表示させる。また、ハードディスクレコーダ500は、モニタ560のスピーカよりその音声を出力させることもできる。
 もちろん、この他の動作も可能である。
 図29に示されるように、ハードディスクレコーダ500は、受信部521、復調部522、デマルチプレクサ523、オーディオデコーダ524、ビデオデコーダ525、およびレコーダ制御部526を有する。ハードディスクレコーダ500は、さらに、EPGデータメモリ527、プログラムメモリ528、ワークメモリ529、ディスプレイコンバータ530、OSD(On Screen Display)制御部531、ディスプレイ制御部532、記録再生部533、D/Aコンバータ534、および通信部535を有する。
 また、ディスプレイコンバータ530は、ビデオエンコーダ541を有する。記録再生部533は、エンコーダ551およびデコーダ552を有する。
 受信部521は、リモートコントローラ(図示せず)からの赤外線信号を受信し、電気信号に変換してレコーダ制御部526に出力する。レコーダ制御部526は、例えば、マイクロプロセッサなどにより構成され、プログラムメモリ528に記憶されているプログラムに従って、各種の処理を実行する。レコーダ制御部526は、このとき、ワークメモリ529を必要に応じて使用する。
 通信部535は、ネットワークに接続され、ネットワークを介して他の装置との通信処理を行う。例えば、通信部535は、レコーダ制御部526により制御され、チューナ(図示せず)と通信し、主にチューナに対して選局制御信号を出力する。
 復調部522は、チューナより供給された信号を、復調し、デマルチプレクサ523に出力する。デマルチプレクサ523は、復調部522より供給されたデータを、オーディオデータ、ビデオデータ、およびEPGデータに分離し、それぞれ、オーディオデコーダ524、ビデオデコーダ525、またはレコーダ制御部526に出力する。
 オーディオデコーダ524は、入力されたオーディオデータを、例えばMPEG方式でデコードし、記録再生部533に出力する。ビデオデコーダ525は、入力されたビデオデータを、例えばMPEG方式でデコードし、ディスプレイコンバータ530に出力する。レコーダ制御部526は、入力されたEPGデータをEPGデータメモリ527に供給し、記憶させる。
 ディスプレイコンバータ530は、ビデオデコーダ525またはレコーダ制御部526より供給されたビデオデータを、ビデオエンコーダ541により、例えばNTSC(National Television Standards Committee)方式のビデオデータにエンコードし、記録再生部533に出力する。また、ディスプレイコンバータ530は、ビデオデコーダ525またはレコーダ制御部526より供給されるビデオデータの画面のサイズを、モニタ560のサイズに対応するサイズに変換する。ディスプレイコンバータ530は、画面のサイズが変換されたビデオデータを、さらに、ビデオエンコーダ541によってNTSC方式のビデオデータに変換し、アナログ信号に変換し、ディスプレイ制御部532に出力する。
 ディスプレイ制御部532は、レコーダ制御部526の制御のもと、OSD(On Screen Display)制御部531が出力したOSD信号を、ディスプレイコンバータ530より入力されたビデオ信号に重畳し、モニタ560のディスプレイに出力し、表示させる。
 モニタ560にはまた、オーディオデコーダ524が出力したオーディオデータが、D/Aコンバータ534によりアナログ信号に変換されて供給されている。モニタ560は、このオーディオ信号を内蔵するスピーカから出力する。
 記録再生部533は、ビデオデータやオーディオデータ等を記録する記憶媒体としてハードディスクを有する。
 記録再生部533は、例えば、オーディオデコーダ524より供給されるオーディオデータを、エンコーダ551によりMPEG方式でエンコードする。また、記録再生部533は、ディスプレイコンバータ530のビデオエンコーダ541より供給されるビデオデータを、エンコーダ551によりMPEG方式でエンコードする。記録再生部533は、そのオーディオデータの符号化データとビデオデータの符号化データとをマルチプレクサにより合成する。記録再生部533は、その合成データをチャネルコーディングして増幅し、そのデータを、記録ヘッドを介してハードディスクに書き込む。
 記録再生部533は、再生ヘッドを介してハードディスクに記録されているデータを再生し、増幅し、デマルチプレクサによりオーディオデータとビデオデータに分離する。記録再生部533は、デコーダ552によりオーディオデータおよびビデオデータをMPEG方式でデコードする。記録再生部533は、復号したオーディオデータをD/A変換し、モニタ560のスピーカに出力する。また、記録再生部533は、復号したビデオデータをD/A変換し、モニタ560のディスプレイに出力する。
 レコーダ制御部526は、受信部521を介して受信されるリモートコントローラからの赤外線信号により示されるユーザ指示に基づいて、EPGデータメモリ527から最新のEPGデータを読み出し、それをOSD制御部531に供給する。OSD制御部531は、入力されたEPGデータに対応する画像データを発生し、ディスプレイ制御部532に出力する。ディスプレイ制御部532は、OSD制御部531より入力されたビデオデータをモニタ560のディスプレイに出力し、表示させる。これにより、モニタ560のディスプレイには、EPG(電子番組ガイド)が表示される。
 また、ハードディスクレコーダ500は、インターネット等のネットワークを介して他の装置から供給されるビデオデータ、オーディオデータ、またはEPGデータ等の各種データを取得することができる。
 通信部535は、レコーダ制御部526に制御され、ネットワークを介して他の装置から送信されるビデオデータ、オーディオデータ、およびEPGデータ等の符号化データを取得し、それをレコーダ制御部526に供給する。レコーダ制御部526は、例えば、取得したビデオデータやオーディオデータの符号化データを記録再生部533に供給し、ハードディスクに記憶させる。このとき、レコーダ制御部526および記録再生部533が、必要に応じて再エンコード等の処理を行うようにしてもよい。
 また、レコーダ制御部526は、取得したビデオデータやオーディオデータの符号化データを復号し、得られるビデオデータをディスプレイコンバータ530に供給する。ディスプレイコンバータ530は、ビデオデコーダ525から供給されるビデオデータと同様に、レコーダ制御部526から供給されるビデオデータを処理し、ディスプレイ制御部532を介してモニタ560に供給し、その画像を表示させる。
 また、この画像表示に合わせて、レコーダ制御部526が、復号したオーディオデータを、D/Aコンバータ534を介してモニタ560に供給し、その音声をスピーカから出力させるようにしてもよい。
 さらに、レコーダ制御部526は、取得したEPGデータの符号化データを復号し、復号したEPGデータをEPGデータメモリ527に供給する。
 以上のようなハードディスクレコーダ500は、ビデオデコーダ525、デコーダ552、およびレコーダ制御部526に内蔵されるデコーダとして画像復号装置151を用いる。したがって、ビデオデコーダ525、デコーダ552、およびレコーダ制御部526に内蔵されるデコーダは、画像復号装置151の場合と同様に、重み付き予測後の高周波成分が失われることが抑制され、画質の鮮明感が得られる。
 したがって、ハードディスクレコーダ500は、精度の高い予測画像を生成することができる。その結果として、ハードディスクレコーダ500は、例えば、チューナを介して受信されたビデオデータの符号化データや、記録再生部533のハードディスクから読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高精細な復号画像を得て、モニタ560に表示させることができる。
 また、ハードディスクレコーダ500は、エンコーダ551として画像符号化装置51を用いる。したがって、エンコーダ551は、画像符号化装置51の場合と同様に、重み付き予測後の高周波成分が失われることが抑制され、予測精度が改善される。
 したがって、ハードディスクレコーダ500は、例えば、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、ハードディスクレコーダ500は、より高速に、ハードディスクの記憶領域をより効率よく使用することができる。
 なお、以上においては、ビデオデータやオーディオデータをハードディスクに記録するハードディスクレコーダ500について説明したが、もちろん、記録媒体はどのようなものであってもよい。例えばフラッシュメモリ、光ディスク、またはビデオテープ等、ハードディスク以外の記録媒体を適用するレコーダであっても、上述したハードディスクレコーダ500の場合と同様に、画像符号化装置51および画像復号装置151を適用することができる。
[カメラの構成例]
 図30は、本発明を適用した画像復号装置および画像符号化装置を用いるカメラの主な構成例を示すブロック図である。
 図30に示されるカメラ600は、被写体を撮像し、被写体の画像をLCD616に表示させたり、それを画像データとして、記録メディア633に記録したりする。
 レンズブロック611は、光(すなわち、被写体の映像)を、CCD/CMOS612に入射させる。CCD/CMOS612は、CCDまたはCMOSを用いたイメージセンサであり、受光した光の強度を電気信号に変換し、カメラ信号処理部613に供給する。
 カメラ信号処理部613は、CCD/CMOS612から供給された電気信号を、Y,Cr,Cbの色差信号に変換し、画像信号処理部614に供給する。画像信号処理部614は、コントローラ621の制御の下、カメラ信号処理部613から供給された画像信号に対して所定の画像処理を施したり、その画像信号をエンコーダ641で例えばMPEG方式により符号化したりする。画像信号処理部614は、画像信号を符号化して生成した符号化データを、デコーダ615に供給する。さらに、画像信号処理部614は、オンスクリーンディスプレイ(OSD)620において生成された表示用データを取得し、それをデコーダ615に供給する。
 以上の処理において、カメラ信号処理部613は、バス617を介して接続されるDRAM(Dynamic Random Access Memory)618を適宜利用し、必要に応じて画像データや、その画像データが符号化された符号化データ等をそのDRAM618に保持させる。
 デコーダ615は、画像信号処理部614から供給された符号化データを復号し、得られた画像データ(復号画像データ)をLCD616に供給する。また、デコーダ615は、画像信号処理部614から供給された表示用データをLCD616に供給する。LCD616は、デコーダ615から供給された復号画像データの画像と表示用データの画像を適宜合成し、その合成画像を表示する。
 オンスクリーンディスプレイ620は、コントローラ621の制御の下、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを、バス617を介して画像信号処理部614に出力する。
 コントローラ621は、ユーザが操作部622を用いて指令した内容を示す信号に基づいて、各種処理を実行するとともに、バス617を介して、画像信号処理部614、DRAM618、外部インタフェース619、オンスクリーンディスプレイ620、およびメディアドライブ623等を制御する。FLASH ROM624には、コントローラ621が各種処理を実行する上で必要なプログラムやデータ等が格納される。
 例えば、コントローラ621は、画像信号処理部614やデコーダ615に代わって、DRAM618に記憶されている画像データを符号化したり、DRAM618に記憶されている符号化データを復号したりすることができる。このとき、コントローラ621は、画像信号処理部614やデコーダ615の符号化・復号方式と同様の方式によって符号化・復号処理を行うようにしてもよいし、画像信号処理部614やデコーダ615が対応していない方式により符号化・復号処理を行うようにしてもよい。
 また、例えば、操作部622から画像印刷の開始が指示された場合、コントローラ621は、DRAM618から画像データを読み出し、それを、バス617を介して外部インタフェース619に接続されるプリンタ634に供給して印刷させる。
 さらに、例えば、操作部622から画像記録が指示された場合、コントローラ621は、DRAM618から符号化データを読み出し、それを、バス617を介してメディアドライブ623に装着される記録メディア633に供給して記憶させる。
 記録メディア633は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアである。記録メディア633は、もちろん、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であっても良い。
 また、メディアドライブ623と記録メディア633を一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
 外部インタフェース619は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタ634と接続される。また、外部インタフェース619には、必要に応じてドライブ631が接続され、磁気ディスク、光ディスク、あるいは光磁気ディスクなどのリムーバブルメディア632が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、FLASH ROM624にインストールされる。
 さらに、外部インタフェース619は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。コントローラ621は、例えば、操作部622からの指示に従って、DRAM618から符号化データを読み出し、それを外部インタフェース619から、ネットワークを介して接続される他の装置に供給させることができる。また、コントローラ621は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース619を介して取得し、それをDRAM618に保持させたり、画像信号処理部614に供給したりすることができる。
 以上のようなカメラ600は、デコーダ615として画像復号装置151を用いる。したがって、デコーダ615は、画像復号装置151の場合と同様に、重み付き予測後の高周波成分が失われることが抑制され、画質の鮮明感が得られる。
 したがって、カメラ600は、処理の高速化を実現するとともに、精度の高い予測画像を生成することができる。その結果として、カメラ600は、例えば、CCD/CMOS612において生成された画像データや、DRAM618または記録メディア633から読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高精細な復号画像を得て、LCD616に表示させることができる。
 また、カメラ600は、エンコーダ641として画像符号化装置51を用いる。したがって、エンコーダ641は、画像符号化装置51の場合と同様に、重み付き予測後の高周波成分が失われることが抑制され、予測精度が改善される。
 したがって、カメラ600は、例えば、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、カメラ600は、より高速に、DRAM618や記録メディア633の記憶領域をより効率よく使用することができる。
 なお、コントローラ621が行う復号処理に画像復号装置151の復号方法を適用するようにしてもよい。同様に、コントローラ621が行う符号化処理に画像符号化装置51の符号化方法を適用するようにしてもよい。
 また、カメラ600が撮像する画像データは動画像であってもよいし、静止画像であってもよい。
 もちろん、画像符号化装置51および画像復号装置151は、上述した装置以外の装置やシステムにも適用可能である。
<第2実施の形態>
[画像符号化装置の構成例]
 図31は、本発明を適用した画像処理装置としての画像符号化装置の第2実施の形態の構成を表している。
 図31に示す構成のうち、図8の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図31の画像符号化装置700の構成は、主に、動き予測・補償部75の代わりに動き予測・補償部701が設けられている点が図8の構成と異なる。画像符号化装置700は、SIFO(Single pass switched Interpolation Filter with Offset)を用いて参照画像に対するフィルタ処理を行う。
 なお、SIFOとは、固定の補間フィルタとAIFの中間的な補間フィルタである。具体的には、SIFOでは、スライスごとに、予め決められた複数の種類のフィルタ係数のセット(以下、フィルタ係数セットという)の中から、所望のフィルタ係数セットのフィルタ係数を設定するとともに、オフセットを設定することができる。SIFOの詳細については、例えば、VCEG(Visual Coding Expert Group)AI35、VCEG-AJ29等に記載されている。
 画像符号化装置700において、動き予測・補償部701は、フレームメモリ72からスイッチ73を介して供給される参照画像と、画面並べ替えバッファ62から供給されるインター処理する画像とに基づいて、候補となるインター予測モードごとに、各スライスの参照画像に対するフィルタ処理を行う際にSIFOに設定するオフセットを決定する。
 動き予測・補償部701は、候補となるインター予測モードごとに、対象スライスのオフセットと、そのインター予測モードに対応する候補となる全てのフィルタ係数セットの各sub pelのフィルタ係数の組み合わせそれぞれが設定されたSIFOを用いて、参照画像に対してフィルタ処理を行う。以下、全てのフィルタ係数セットの各sub pelのフィルタ係数の組み合わせを、全てのフィルタ係数セットの全組み合わせという。
 また、動き予測・補償部701は、インター処理する画像とフィルタ処理後の参照画像に基づいて、候補となる全てのインター予測モードの各ブロックの動き予測を行い、各ブロックの動きベクトルを生成する。動き予測・補償部701は、生成された動きベクトルに基づいて、フィルタ処理後の参照画像に対してブロックごとに補償処理を行い、予測画像を生成する。そして、動き予測・補償部701は、候補となる全てのインター予測モードに対応する候補となる全てのフィルタ係数セットの全組み合わせに対して、ブロックごとにコスト関数値を求める。
 さらに、動き予測・補償部701は、最適フィルタ処理後の参照画像に対応する候補となる全てのインター予測モードのコスト関数値に基づいて、ブロックごとに、最適インター予測モードを決定する。なお、最適フィルタ処理とは、対象フレームより1つ前のフレームの対象スライスと同一種類のスライスに対して決定されたフィルタ係数が設定されたSIFOによるフィルタ処理である。動き予測・補償部701は、最適インター予測モードの最適フィルタ処理後の参照画像に基づいて生成された予測画像と、その予測画像に対応するコスト関数値とを、予測画像選択部76に供給する。
 また、動き予測・補償部701は、対象スライスの各ブロックの最適インター予測モードと、その最適インター予測モードに対応する全てのフィルタ係数セットの全組み合わせのコスト関数値とに基づいて、対象フレームの次のフレームの対象スライスと同一種類のスライスの最適フィルタ処理におけるフィルタ係数を決定する。
 動き予測・補償部701は、予測画像選択部76により最適インター予測モードの予測画像が選択された場合、その最適インター予測モードを示すインター予測モード情報を可逆符号化部66に出力する。
 このとき、動きベクトル情報、参照フレーム情報、スライスの情報、最適フィルタ処理におけるフィルタ係数の、フィルタ係数セットを特定するための番号であるセット番号、オフセットなども可逆符号化部66に出力される。これにより、可逆符号化部66において、動きベクトル情報、参照フレーム情報、スライスの情報、セット番号、オフセットなどが可逆符号化処理され、圧縮画像のヘッダ部に挿入される。なお、スライスの情報、セット番号、およびオフセットは、スライスヘッダに挿入される。
[動き予測・補償部の構成例]
 図32は、動き予測・補償部701の構成例を示すブロック図である。なお、図32においては、図31のスイッチ73が省略されている。
 図32に示す構成のうち、図9の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図32の動き予測・補償部701の構成は、主に、固定補間フィルタ81、フィルタ係数記憶部82、可変補間フィルタ83、フィルタ係数算出部84、動き予測部85、動き補償部86、および制御部87の代わりに、フィルタ係数選択部721、SIFO722、動き予測部723、動き補償部724、および制御部725が設けられている点が図9の構成と異なる。
 動き予測・補償部701のフィルタ係数選択部721には、画像並べ替えバッファ62から供給される入力画像のうちのインター処理する画像が供給されるとともに、フレームメモリ72からスイッチ73を介して参照画像が供給される。フィルタ係数選択部721は、スライスごとに、候補となるインター予測モードごとのインター処理する画像と参照画像の輝度の平均値の差分を計算する。フィルタ係数選択部721は、その差分に基づいて、スライスごとに、候補となるインター予測モードごとのオフセットを決定し、SIFO722に供給する。また、フィルタ係数選択部721は、制御部725からの指示に応じて、オフセットを可逆符号化部66に供給する。
 SIFO722は、フィルタ係数選択部721から供給されるオフセットとフィルタ係数とに基づいて、フレームメモリ72からの参照画像に対してフィルタ処理を行う。
 具体的には、例えば、フィルタ処理後の分数位置の画素の画素値が図6に示したa乃至oである場合、まず、SIFO722は、分数位置の画素の画素値a,b,cを、参照画像内の整数位置の画素の画素値E,F,G,H,I,Jを用いて、次の式(24)により求める。ここで、h[pos][n]は、フィルタ係数であり、posは、図6に示されたsub pelの位置を示し、nはフィルタ係数の番号を示す。また、offset[pos]は、posのsub pelのオフセットを示す。
 a = h[a][0] x E + h1[a][1] x F + h2[a][2] x G + h[a][3] x H 
                 + h[a][4] x I + h[a][5] x J + offset[a]
 b = h[b][0] x E + h1[b][1] x F + h2[b][2] x G + h[b][3] x H
                 + h[b][4] x I + h[b][5] x J + offset[b]
 c = h[c][0] x E + h1[c][1] x F + h2[c][2] x G + h[c][3] x H
                 + h[c][4] x I + h[c][5] x J + offset[C]
                           ・・・(24)
 次に、SIFO722は、分数位置の画素の画素値d乃至oを、参照画像内の図6に示した整数位置の画素の画素値G1,G2,G,G3,G4,G5を用いて、次の式(25)により求める。
 d = h[d][0] x G1 + h[d][1] x G2 + h[d][2] x G + h[d][3] x G3
                 + h[d][4] * G4 + h[d][5] x G5+ offset[d]
 h = h[h][0] x G1 + h[h][1] x G2 + h[h][2] x G + h[h][3] x G3
                 + h[h][4] * G4 + h[h][5] x G5+ offset[h]
 l = h[l][0] x G1 + h[l][1] x G2 + h[l][2] x G + h[l][3] x G3
                 + h[l][4] * G4 + h[l][5] x G5+ offset[l]
 e = h[e][0] x a1 + h[e][1] x a2 + h[e][2] x a + h[e][3] x a3
                 + h[e][4] * a4 + h[e][5] x a5+ offset[e]
 i = h[i][0] x a1 + h[i][1] x a2 + h[i][2] x a + h[i][3] x a3
                 + h[i][4] * a4 + h[i][5] x a5+ offset[i]
 m = h[m][0] x a1 + h[m][1] x a2 + h[m][2] x a + h[m][3] x a3
                 + h[m][4] * a4 + h[m][5] x a5+ offset[m]
 f = h[f][0] x b1 + h[f][1] x b2 + h[f][2] x b + h[f][3] x b3
                 + h[f][4] * b4 + h[f][5] x b5+ offset[f]
 j = h[j][0] x b1 + h[j][1] x b2 + h[j][2] x b + h[j][3] x b3
                 + h[j][4] * b4 + h[j][5] x b5+ offset[j]
 n = h[n][0] x b1 + h[n][1] x b2 + h[n][2] x b + h[n][3] x b3
                 + h[n][4] * b4 + h[n][5] x b5+ offset[n]
 g = h[g][0] x c1 + h[g][1] x c2 + h[g][2] x c + h[g][3] x c3
                 + h[g][4] * c4 + h[g][5] x c5+ offset[g]
 k = h[k][0] x c1 + h[k][1] x c2 + h[k][2] x c + h[k][3] x c3
                 + h[k][4] * c4 + h[k][5] x c5+ offset[k]
 o = h[o][0] x c1 + h[o][1] x c2 + h[o][2] x c + h[o][3] x c3
                 + h[o][4] * c4 + h[o][5] x c5+ offset[o]
                           ・・・(25)
 なお、SIFO722は、画素値gに対しては、強い低域濾波器(LPF)として機能する。これにより、フィルタ処理後の参照画像のノイズを低減することができる。
 SIFO722における画素値gに対する強いLPFとしての機能は、L0L1重み付き予測を使う場合と、L0L1重み付き予測を使わない場合で異なるようにしてもよい。例えば、L0L1重み付き予測を使う場合、SIFO722は、画素値gに対して強いLPFとして機能しないようにし、L0L1重み付き予測を行わない場合、画素値gに対して強いLPFとして機能するようにする。これにより、時間的に強いLPFの特性が得られる、L0L1重み付き予測が使われる場合に、不用な空間的な強いLPFとしての機能を削除することができる。
 なお、L0L1重み付き予測を使う場合、SIFO722は、L0の参照画素またはL1の参照画素のいずれかの画素値gに対してだけ、強いLPFとして機能するようにしてもよい。また、SIFO722による画素値gに対する強いLPFとしての機能は、インター予測モードに応じて切り換えられるようにしてもよい。
 フィルタ係数選択部721は、ブロックごとのフィルタ処理後の参照画像を動き補償部724と動き予測部723に供給する。
 動き予測部723は、画面並べ替えバッファ62からの入力画像のうちのインター処理する画像と、SIFO722からのフィルタ処理後の参照画像とに基づいて、候補となる全てのインター予測モードの動きベクトルをブロックごとに生成する。動き予測部723は、生成した動きベクトルを動き補償部724に出力する。
 動き補償部724は、動き予測部723から供給される動きベクトルを用いて、SIFO722から供給されるフィルタ処理後の参照画像に対してブロックごとに補償処理を施し、予測画像を生成する。そして、動き補償部724は、候補となる全てのインター予測モードに対応する全てのフィルタ係数セットの全組み合わせに対して、ブロックごとにコスト関数値を求める。
 また、動き補償部724は、最適フィルタ処理後の参照画像に対応する候補となる全てのインター予測モードのコスト関数値に基づいて、ブロックごとに、コスト関数値が最小となるインター予測モードを、最適インター予測モードに決定する。そして、動き補償部724は、最適インター予測モードの最適フィルタ処理後の参照画像に基づいて生成された予測画像と、その予測画像に対応するコスト関数値とを、予測画像選択部76に供給する。また、動き補償部724は、対象スライスの各ブロックの最適インター予測モードに対応する全てのフィルタ係数セットの全組み合わせのコスト関数値を制御部725に供給する。
 動き補償部724は、予測画像選択部76において最適インター予測モードの予測画像が選択された場合、制御部725の制御のもと、最適インター予測モードを示す予測モード情報、スライスの種類が含まれるスライスの情報、動きベクトル、参照画像の情報などを、可逆符号化部66に出力する。
 制御部725は、予測モードを設定する。制御部725は、設定された予測モードの予測の種類、すなわち、L0L1重み付き予測またはその他の予測であるかに応じて、フィルタ係数選択部721を制御する。具体的には、制御部725は、L0L1重み付き予測の場合、L0L1重み付き予測に用いられるフィルタ係数セットのセット番号をフィルタ係数選択部721に供給し、そのフィルタ係数セットのフィルタ係数の出力を指示する。また、制御部725はその他の予測の場合(すなわち、L0L1重み付き予測を行わない予測)、その他の予測に用いられるフィルタ係数セットのセット番号をフィルタ係数選択部721に供給し、そのフィルタ係数セットのフィルタ係数の出力を指示する。
 また、制御部725は、動き補償部724から供給される対象スライスの各ブロックの最適インター予測モードに対応する全てのフィルタ係数セットの全組み合わせのコスト関数値に基づいて、インター予測モードごとに、最適フィルタ処理におけるフィルタ係数を決定する。具体的には、制御部725は、各予測モードを最適インター予測モードとするブロックのコスト関数値の対象スライス分の和が最小となる各sub pelのフィルタ係数の組み合わせを、各予測モードの最適フィルタ処理におけるフィルタ係数とする。
 さらに、制御部725は、予測画像選択部76からのインター予測画像が選択されたという信号を受けると、動き補償部724およびフィルタ係数選択部721に、必要な情報を可逆符号化部66に出力させる制御を行う。さらに、制御部725は、予測画像選択部76からのインター予測画像が選択されたという信号に応じて、最適フィルタ処理におけるフィルタ係数のセット番号を可逆符号化部66に供給する。
[フィルタ係数選択部の構成例]
 図33は、パターンAの場合のフィルタ係数選択部721の構成例を示すブロック図である。
 図33に示すように、フィルタ係数選択部721は、オフセット決定部740、A1フィルタ係数メモリ741、A2フィルタ係数メモリ742、A3フィルタ係数メモリ743、A4フィルタ係数メモリ744、およびセレクタ745により構成される。
 フィルタ係数選択部721のオフセット決定部740は、スライスごとに、候補となるインター予測モードごとのインター処理する画像と参照画像の輝度の平均値の差分を計算する。オフセット決定部740は、その差分に基づいて、スライスごとに、候補となるインター予測モードごとのオフセットを決定し、SIFO722に供給する。また、オフセット決定部740は、制御部725からの指示に応じて、オフセットを可逆符号化部66に供給する。
 A1フィルタ係数メモリ741は、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられるフィルタ係数A1を、フィルタ係数セットとして複数種類記憶している。A1フィルタ係数メモリ741は、制御部725からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数A1をsub pelごとに選択する。A1フィルタ係数メモリ741は、選択された全sub pelのフィルタ係数A1をセレクタ745に出力する。
 A2フィルタ係数メモリ742は、L0L1重み付き予測を使う場合の双予測モードに用いられるフィルタ係数A2を、フィルタ係数セットとして複数種類記憶している。A2フィルタ係数メモリ742は、制御部725からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数A2をsub pelごとに選択する。A2フィルタ係数メモリ742は、選択された全sub pelのフィルタ係数A2をセレクタ745に出力する。
 A3フィルタ係数メモリ743は、L0L1重み付き予測を使う場合のダイレクト・モードに用いられるフィルタ係数A3を、フィルタ係数セットとして複数種類記憶している。A3フィルタ係数メモリ743は、制御部725からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数A3をsub pelごとに選択する。A3フィルタ係数メモリ743は、選択された全sub pelのフィルタ係数A3をセレクタ745に出力する。
 A4フィルタ係数メモリ744は、L0L1重み付き予測を使う場合のスキップ・モードに用いられるフィルタ係数A4を、フィルタ係数セットとして複数種類記憶している。A4フィルタ係数メモリ744は、制御部725からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数A4をsub pelごとに選択する。A4フィルタ係数メモリ744は、選択された全sub pelのフィルタ係数A4をセレクタ745に出力する。
 セレクタ745は、制御部725からの指示に応じて、フィルタ係数A1乃至A4のうち、1つのフィルタ係数を選択し、SIFO722に出力する。
 なお、以下では、A1フィルタ係数メモリ741、A2フィルタ係数メモリ742、A3フィルタ係数メモリ743、およびA4フィルタ係数メモリ744を特に区別する必要がない場合、それらをまとめてフィルタ係数メモリという。
[A1フィルタ係数メモリの記憶情報の例]
 図34は、A1フィルタ係数メモリ741の記憶情報の例を示す図である。
 図34の例では、A1フィルタ係数メモリ741に、4種類のフィルタ係数A1がフィルタ係数セット761-1乃至761-4として記憶されている。
 なお、A1フィルタ係数メモリ741に記憶されるフィルタ係数セットの数は、4つに限定されない。但し、フィルタ係数セットの数が多いと、スライスヘッダに挿入されるセット番号の情報量が増加するので、オーバーヘッドが増大する。一方、フィルタ係数セットの数が少ないと、最適なフィルタ係数を設定することができず、符号化効率が低下する恐れがある。従って、画像符号化装置700および後述する画像復号装置からなるシステムのオーバーヘッドおよび符号化効率の許容範囲に応じて、フィルタ係数セットの数は決定される。
 また、図34では、A1フィルタ係数メモリ741の記憶情報について説明したが、A2フィルタ係数メモリ742、A3フィルタ係数メモリ743、およびA4フィルタ係数メモリ744についても、同様に、複数のフィルタ係数セットが記憶される。
[画像符号化装置の処理の説明]
 次に、図31の画像符号化装置700の処理について説明する。画像符号化装置700の符号化処理は、図15の符号化処理のステップS22の動き予測・補償処理を除いて、図15の符号化処理と同様である。従って、ここでは、画像符号化装置700の動き予測・補償部701による動き予測・補償処理についてのみ説明する。
 図35は、画像符号化装置700の動き予測・補償部701による動き予測・補償処理を説明するフローチャートである。この動き予測・補償処理は、スライスごとに行われる。
 図35のステップS201において、動き予測・補償部701の制御部725(図32)は、現在のインター予測モードを、候補となるインター予測モードのうちのまだ設定されていない所定のインター予測モードに設定する。
 ステップS202において、フィルタ係数選択部721のオフセット決定部740(図33)は、入力画像のうちのインター処理する画像の輝度の平均値と、現在のインター予測モードに対応する参照画像の輝度の平均値を計算する。
 ステップS203において、オフセット決定部740は、入力画像のうちのインター処理する画像と、現在のインター予測モードに対応する参照画像の輝度の平均値の差分を計算する。
 ステップS204において、オフセット決定部740は、ステップS203で算出された差分が所定の閾値(例えば、2)以下であるかどうかを判定する。ステップS204で差分が所定の閾値以下であると判定された場合、オフセット決定部740は、その差分を対象スライスのスライスごとのオフセットとして決定する。なお、スライスごとのオフセットとは、各スライスの全sub pelに対する共通のオフセットである。即ち、差分が所定の閾値以下である場合、1つのスライスに対して1つのオフセットがスライスごとのオフセットとして決定され、そのオフセットが全sub pelに対するオフセットとされる。そして、オフセット決定部740は、スライスごとのオフセットをSIFO722に供給し、処理をステップS207に進める。
 一方、ステップS204で差分が所定の閾値より大きいと判定された場合、オフセット決定部740は、その差分に基づくsub pelごとの値を、sub pelごとのオフセットとして決定する。
 具体的には、例えば、差分が10である場合、a乃至oの計15個のsub pelに対して、hのオフセットが10となり、o,g,f,n,d,l,b,h,j,c,a,k,i,m,eの順にオフセットが10/15ずつ大きくなるように、オフセットが決定される。即ち、o,g,f,n,d,l,b,h,j,c,a,k,i,m,eのsub pelに対するオフセットは、それぞれ、80/15,90/15,100/15,110/15,120/15,130/15,140/15,10,160/15,170/15,180/15,190/15,200/15,210/15,220/15となる。オフセット決定部740は、決定されたオフセットをSIFO722に供給し、処理をステップS207に進める。
 ステップS207において、制御部725は、現在のインター予測モードに対応するフィルタ係数メモリに記憶されているフィルタ係数セットから、まだ選択されていない各sub pelのフィルタ係数の組み合わせを選択する。
 具体的には、制御部725は、まず、後述するステップS208で選択されるフィルタ係数に対応するフィルタ係数メモリを認識する。次に、制御部725は、そのフィルタ係数メモリ内のフィルタ係数セットの全てのセット番号を認識し、sub pelごとにセット番号を選択することにより、まだ選択されていない各sub pelのセット番号の組み合わせを決定する。
 例えば、制御部725は、A1フィルタ係数メモリ741内のフィルタ係数セット761-1のセット番号を、それぞれ、a,b,c,d,e,f,g,h,i,j,k,l,m,n,oの計15個のsub pelのセット番号として決定する。また、制御部725は、A1フィルタ係数メモリ741内のフィルタ係数セット761-1のセット番号を、それぞれ、a,b,c,d,e,f,g,h,i,j,k,l,m,nの計14個のsub pelのセット番号として決定し、フィルタ係数セット761-2のセット番号を、oのsub pelのセット番号として決定する。
 そして、制御部725は、そのセット番号の組み合わせを、ステップS208で選択されるフィルタ係数に対応するフィルタ係数メモリに指示する。これにより、フィルタ係数メモリは、制御部725から指示された各sub pelのセット番号の組み合わせに基づいて、そのセット番号のフィルタ係数セットから各sub pelのフィルタ係数を読み出し、セレクタ745に供給する。
 ステップS208において、フィルタ係数選択部721は、フィルタ係数選択処理を行う。このフィルタ係数選択処理は、図17のフィルタ係数選択処理と同様であるので、説明は省略する。フィルタ係数選択処理により選択されたフィルタ係数A1、フィルタ係数A2、フィルタ係数A3、またはフィルタ係数A4は、SIFO72に供給される。
 ステップS209において、SIFO722は、フィルタ係数選択部721から供給されるオフセットとフィルタ係数とに基づいて、フレームメモリ72からの参照画像に対してフィルタ処理を行う。フィルタ係数選択部721は、フィルタ処理後の参照画像を動き補償部724と動き予測部723に供給する。
 ステップS210において、動き予測部723は、画面並べ替えバッファ62からの入力画像のうちのインター処理する画像と、SIFO722からのフィルタ処理後の参照画像とを用いて、ブロックごとに動き予測を行い、動きベクトルを生成する。動き予測部723は、生成した動きベクトルを動き補償部724に出力する。
 ステップS211において、動き補償部724は、SIFO722から供給されるフィルタ処理後の参照画像と動き予測部723から供給される動きベクトルを用いて、ブロックごとに補償処理を施し、予測画像を生成する。そして、動き補償部724は、ブロックごとにコスト関数値を求める。
 ステップS212において、制御部725は、ステップS207の処理で、現在のインター予測モードに対応するフィルタ係数セット内の各sub pelのフィルタ係数の全ての組み合わせが選択されたかどうかを判定する。ステップS212でまだ全ての組み合わせが選択されていないと判定された場合、処理はステップS207に戻り、全ての組み合わせが選択されるまで、ステップS207乃至S212の処理が繰り返される。
 一方、ステップS212で全ての組み合わせが選択されたと判定された場合、ステップS213において、制御部725は、ステップS201の処理で、候補となる全てのインター予測モードが現在のインター予測モードとして設定されたかを判定する。
 ステップS213で、まだ候補となる全てのインター予測モードが現在のインター予測モードとして設定されていないと判定された場合、処理はステップS201に戻る。そして、候補となる全てのインター予測モードが現在のインター予測モードとして設定されるまで、ステップS201乃至S213の処理が繰り返される。
 一方、ステップS213で候補となる全てのインター予測モードが現在のインター予測モードとして設定されたと判定された場合、処理はステップS214に進む。ステップS214において、動き補償部724は、ステップS211で算出されたコスト関数値のうち、最適フィルタ処理後の参照画像に対応する候補となる全てのインター予測モードのコスト関数値に基づいて、ブロックごとに、コスト関数値が最小となるインター予測モードを、最適インター予測モードに決定する。
 なお、最初のフレームに対するステップS214の処理では、所定のフィルタ係数(例えば、セット番号が0番であるフィルタ係数セットとしてのフィルタ係数)を用いた処理が、最適フィルタ処理とされる。
 また、動き補償部724は、最適インター予測モードの最適フィルタ処理後の参照画像に基づいて生成された予測画像と、その予測画像に対応するコスト関数値とを、予測画像選択部76に供給する。そして、予測画像選択部76において最適インター予測モードの予測画像が選択された場合、最適インター予測モードを示す予測モード情報と、最適インター予測モードに対応する動きベクトルは、制御部725の制御のもと、可逆符号化部66に出力される。さらに、動き補償部724は、各ブロックの最適インター予測モードに対応する全てのフィルタ係数セットの全組み合わせのコスト関数値を制御部725に供給する。
 ステップS215において、制御部725は、動き補償部724から供給される各ブロックの最適インター予測モードに対応する全てのフィルタ係数セットの全組み合わせのコスト関数値に基づいて、各インター予測モードを最適インター予測モードとするブロックの、フィルタ係数の組み合わせごとのコスト関数値の対象スライス分の和を求める。即ち、制御部725は、最適インター予測モードが所定のインター予測モードであるブロックについて、その最適インター予測モードに対応するフィルタ係数の組み合わせごとに、コスト関数値をスライス分加算することを、インター予測モードごとに行う。
 ステップS216において、制御部725は、ステップS215で求められた各インター予測モードのフィルタ係数の組み合わせごとのコスト関数値の和に基づいて、インター予測モードごとに、コスト関数値の和が最小となるフィルタ係数の組み合わせを、最適フィルタ処理におけるフィルタ係数とする。このフィルタ係数のsub pelごとのセット番号は、予測画像選択部76からのインター予測画像が選択されたという信号に応じて、可逆符号化部66に供給され、対象フレームの次のフレームの対象スライスと同一種類のスライスのスライスヘッダに挿入される。そして、動き予測・補償処理は、終了する。
 以上のように、画像符号化装置700では、1種類の動き予測で、最適フィルタ処理におけるフィルタ係数およびオフセットを設定することができる。その結果、図8の画像符号化装置51に比べて、フィルタ係数の算出コストを低減させることができる。
 また、画像符号化装置700では、スライスヘッダに、フィルタ係数そのものではなく、フィルタ係数のsub pelごとのセット番号が含まれるので、図8の画像符号化装置51に比べて、オーバーヘッドを低減させることができる。
 なお、第2実施の形態では、sub pelごとにフィルタ係数セットが選択されたが、全sub pelに対して共通の1つのフィルタ係数セットが選択されるようにしてもよい。この場合、画像符号化装置700は、最適フィルタ処理におけるフィルタ係数を求めるために、フィルタ係数セット単位でコスト関数値を求めればよいため、オーバーヘッドを削減することができる。また、フィルタ係数セットを特定するための情報は、各インター予測モードに対して1つのセット番号となるため、その情報のビット量を削減することができる。
 また、sub pelごとのフィルタ係数セットの選択、および、全sub pelに対する共通の1つのフィルタ係数セットの選択の両方を選択的に行うことができるようにしてもよい。この場合、いずれの選択が行われたかを示すフラグがスライスヘッダに挿入される。このフラグは、例えば、sub pelごとのフィルタ係数セットの選択が行われた場合1となり、全sub pelに対する共通の1つのフィルタ係数セットの選択が行われた場合0となる。
 さらに、第2の実施の形態では、フィルタ係数A1乃至フィルタ係数A4のそれぞれに対して、フィルタ係数セットが設けられたが、フィルタ係数A1乃至フィルタ係数A4に共通のフィルタ係数セットが設けられるようにしてもよい。但し、フィルタ係数A1乃至フィルタ係数A4のそれぞれに対してフィルタ係数セットが設けられる場合、フィルタ係数A1乃至フィルタ係数A4のそれぞれに適するフィルタ係数セットのみを設けることができる。従って、フィルタ係数A1乃至フィルタ係数A4のそれぞれとして用意すべきフィルタ係数セットの数は、共通のフィルタ係数セットが設けられる場合に比べて少なくなり、スライスヘッダに挿入されるセット番号のビット量を削減することができる。
[画像復号装置の構成例]
 図36は、本発明を適用した画像処理装置としての画像復号装置の第2実施の形態の構成を表している。
 図36に示す構成のうち、図18の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図36の画像復号装置800の構成は、主に、動き補償部172の代わりに動き補償部801が設けられている点が図18の構成と異なる。画像復号装置800は、図31の画像符号化装置700により出力された圧縮画像を復号する。
 具体的には、画像復号装置800の動き補償部801においては、少なくとも、L0L1重み付き予測に用いられるフィルタ係数と、それ以外の予測に用いられるフィルタ係数がフィルタ係数セットとして複数記憶されている。
 動き補償部801は、可逆復号部162からの最適インター予測モードに対応するフィルタ係数セットのうちの、可逆復号部162からのスライスヘッダに含まれるセット番号のフィルタ係数セットのフィルタ係数をsub pelごとに読み出す。動き補償部801は、読み出されたフィルタ係数と、スライスヘッダに含まれるオフセットとを用いて、SIFOにより、フレームメモリ169からの参照画像に対してフィルタ処理を行う。
 また、動き補償部801は、可逆復号部162からの動きベクトルを用いて、ブロックごとに、フィルタ処理後の参照画像に補償処理を行い、予測画像を生成する。生成された予測画像は、スイッチ173を介して、演算部165に出力される。
[動き補償部の構成例]
 図37は、動き補償部801の詳細な構成例を示すブロック図である。なお、図37においては、図36のスイッチ170が省略されている。
 図37に示す構成のうち、図19の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
 図37の動き補償部801の構成は、主に、固定補間フィルタ181、固定フィルタ係数記憶部182、可変補間フィルタ183、可変フィルタ係数記憶部184、および制御部186の代わりに、フィルタ係数セット記憶部811、SIFO812、および制御部813が設けられている点が図19の構成と異なる。
 動き補償部801のフィルタ係数セット記憶部811は、SIFO812で使用される、少なくとも、L0L1重み付き予測用およびそれ以外の予測用のフィルタ係数をフィルタ係数セットとして複数種類記憶する。フィルタ係数セット記憶部811は、制御部813の制御のもと、所定のフィルタ係数セット内のフィルタ係数をsub pelごとに読み出す。また、フィルタ係数セット記憶部811は、読み出されたL0L1重み付き予測用およびそれ以外の予測用のフィルタ係数のいずれかを、制御部813の制御のもと選択し、選択したフィルタ係数を、SIFO812に供給する。
 SIFO812は、フレームメモリ169からの参照画像に対して、可逆復号部162から供給されるオフセットと、フィルタ係数セット記憶部811から供給されるフィルタ係数を用いて、フィルタ処理を施す。SIFO812は、フィルタ処理後の参照画像を、動き補償処理部185に出力する。
 制御部813は、スライスごとに、可逆復号部162からのスライスヘッダの情報に含まれるセット番号を取得し、そのセット番号のフィルタ係数セットの読み出しをフィルタ係数セット記憶部811に指示する。また、制御部813は、可逆復号部162から供給される予測モード情報に応じて、L0L1重み付き予測用およびそれ以外の予測用のどちらのフィルタ係数を選択するかを、フィルタ係数セット記憶部811に指示する。また、制御部813は、動き補償処理部185に、予測モード情報に基づく最適インター予測モードの補償処理を行わせる。
[フィルタ係数セット記憶部の構成例]
 図38は、パターンAの場合のフィルタ係数セット記憶部811の構成例を示すブロック図である。
 図38に示すように、フィルタ係数セット記憶部811は、A1フィルタ係数メモリ831、A2フィルタ係数メモリ832、A3フィルタ係数メモリ833、およびA4フィルタ係数メモリ834、およびセレクタ835により構成される。
 A1フィルタ係数メモリ831は、図33のA1フィルタ係数メモリ741と同様に、L0L1重み付き予測を使わない場合の全てのインター予測モードに用いられるフィルタ係数A1を、フィルタ係数セットとして複数種類記憶している。A1フィルタ係数メモリ831は、制御部813からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数A1をsub pelごとに選択する。A1フィルタ係数メモリ831は、選択された全sub pelのフィルタ係数A1をセレクタ835に出力する。
 A2フィルタ係数メモリ832は、図33のA2フィルタ係数メモリ742と同様に、L0L1重み付き予測を使う場合の双予測モードに用いられるフィルタ係数A2を、フィルタ係数セットとして複数種類記憶している。A2フィルタ係数メモリ832は、制御部813からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数A2をsub pelごとに選択する。A2フィルタ係数メモリ832は、選択された全sub pelのフィルタ係数A2をセレクタ835に出力する。
 A3フィルタ係数メモリ833は、図33のA3フィルタ係数メモリ743と同様に、L0L1重み付き予測を使う場合のダイレクト・モードに用いられるフィルタ係数A3を、フィルタ係数セットとして複数種類記憶している。A3フィルタ係数メモリ833は、制御部813からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数A3をsub pelごとに選択する。A3フィルタ係数メモリ833は、選択された全sub pelのフィルタ係数A3をセレクタ835に出力する。
 A4フィルタ係数メモリ834は、図33のA4フィルタ係数メモリ744と同様に、L0L1重み付き予測を使う場合のスキップ・モードに用いられるフィルタ係数A4を、フィルタ係数セットとして複数種類記憶している。A4フィルタ係数メモリ834は、制御部813からの指示に応じて、記憶している複数種類のフィルタ係数セットのうちの、所定のフィルタ係数セットのフィルタ係数A4をsub pelごとに選択する。A4フィルタ係数メモリ834は、選択された全sub pelのフィルタ係数A4をセレクタ835に出力する。
 セレクタ835は、制御部813からの指示に応じて、フィルタ係数A1乃至A4のうち、1つのフィルタ係数を選択し、SIFO812に出力する。
[画像復号装置の処理の説明]
 次に、図36の画像復号装置800の処理について説明する。画像復号装置800の復号処理は、図22の復号処理のステップS139の動き補償処理を除いて、図22の復号処理と同様である。従って、ここでは、画像復号装置800の動き補償部801による動き補償処理についてのみ説明する。
 図39は、画像復号装置800の動き補償部801による動き補償処理を説明するフローチャートである。この動き補償部801は、スライスごとに行われる。
 ステップS301において、動き補償部801の制御部813(図37)は、可逆復号部162からのスライスヘッダの情報に含まれるスライスごとの各sub pelのセット番号を取得するとともに、ブロックごとの予測モード情報を取得する。制御部813は、取得された各sub pelのセット番号を、フィルタ係数セット記憶部811に指示する。これにより、フィルタ係数セット記憶部811のA1フィルタ係数メモリ831、A2フィルタ係数メモリ832、A3フィルタ係数メモリ、およびA4フィルタ係数メモリは、それぞれ、制御部813により指示された各sub pelのセット番号のフィルタ係数セット内の、そのsub pelのフィルタ係数を読み出し、セレクタ835に供給する。
 ステップS302乃至S308の処理は、図23のステップS155乃至S161の処理と同様であるので、説明は省略する。
 ステップS308の処理後、ステップS309において、SIFO812は、可逆復号部162から、スライスヘッダに含まれるスライスごとのオフセットを取得する。
 ステップS310において、SIFO812は、フレームメモリ169からの参照画像に対して、可逆復号部162から供給されるオフセットと、フィルタ係数セット記憶部811から供給されるフィルタ係数を用いて、フィルタ処理を行う。SIFO812は、フィルタ処理後の参照画像を、動き補償処理部185に出力する。
 ステップS311において、動き補償処理部185は、可逆復号部162からブロックごとの動きベクトルを取得する。
 ステップS312において、動き補償処理部185は、制御部813の制御のもと、ブロックごとに、最適インター予測モードで、可逆復号部162からの動きベクトルを用いて、フィルタ処理された参照画像に補償処理を行い、予測画像を生成する。動き補償部185は、生成した予測画像を、スイッチ173に出力する。そして、動き補償処理は終了する。
<フィルタ係数の他の分類>
 図40は、フィルタ係数の他の分類方法について説明する図である。なお、図40の例において、フィルタ[X][X]となっている部分の数字とアルファベットが異なれば、フィルタの特性が異なることを表している。
 図40に示すフィルタ係数の分類方法は、図10で示したフィルタ係数の分類方法に1つのパターンEが追加されたものである。
 パターンEは、フィルタ係数を、フィルタ係数E1乃至E5の5つに分類する方法である。具体的には、パターンEでは、パターンAと同様に、L0L1重み付き予測を使う場合においてインター予測モードごとに異なるフィルタ係数が用いられるだけでなく、L0L1重み付き予測を使わない場合において、対象スライスが、Bスライス以外であるか、Bスライスであるかによって、異なるフィルタ係数が用いられる。
 即ち、フィルタ係数E1は、L0L1重み付き予測を使わない場合の全てのインター予測モードのBスライス以外のスライスに対して用いられる。フィルタ係数E2は、L0L1重み付き予測を使わない場合の全てのインター予測モードのBスライスに対して用いられる。フィルタ係数E3は、L0L1重み付き予測を使う場合の双予測モードに用いられる。フィルタ係数E4は、L0L1重み付き予測を使う場合のダイレクト・モードに用いられる。フィルタ係数E5は、L0L1重み付き予測を使う場合のスキップ・モードに用いられる。
 以下に、パターンEによる効果について説明する。
 AVC規格において、BスライスではL0L1重み付き予測が使われる領域と使われない領域が混在するのが普通である。一方、PスライスではL1参照ができないため、L0L1重み付き予測が使用されることはない。
 即ち、Bスライスでは、L0およびL1の両方の参照画素が用いられる場合があるが、Pスライスでは、L0の参照画素のみが用いられる。また、BスライスでL0L1重み付き予測が用いられなかった場合、その領域では、特殊な動き、即ち、回転や拡大縮小を伴う動きが生じている可能性が高いと考えられる。そして、回転や拡大縮小などの動きは高周波数成分の動き補償では困難である。従って、Bスライスでは、L0L1重み付き予測が使われない場合、補間フィルタ(固定補間フィルタ81、可変補間フィルタ83、SIFO722)は、Pスライスに比べて強い強度のLPF特性を有する必要がある。
 そのため、固定補間フィルタ81やSIFO722のフィルタ係数A1乃至C1として、L0L1重み付き予測が使われない場合のBスライスに最適なフィルタ係数が用意されると、Pスライスでは、高域成分が過剰に抑圧される。このことは、特にPスライスだけで構成される符号化方式において、符号化効率や画質を悪化させる要因になる。
 これに対して、パターンEでは、L0L1重み付き予測が使われない場合、Bスライス以外のスライスに対するフィルタ係数E1と、Bスライスに対するフィルタ係数E2が別々に用意される。従って、BスライスとBスライス以外のそれぞれに対して最適なフィルタ係数を用いることができる。その結果、適切に参照画像に含まれるノイズを除去するとともに、参照画像の高周波成分の損失を抑制することができる。
 なお、本発明は、上述した固定の補間フィルタ(FIF(Fixed Interpolation Filter)、AIF、SIFO以外のフィルタを用いた画像処理装置にも適用することができる。
 また、固定補間フィルタ81と可変補間フィルタ83において、オフセットが設定されるようにしてもよい。
 51 画像符号化装置, 66 可逆符号化部, 75 動き予測・補償部,  81 固定補間フィルタ, 82 フィルタ係数記憶部, 83 可変補間フィルタ, 84 フィルタ係数算出部, 85 動き予測部, 86 動き補償部, 87 制御部, 91 A1フィルタ係数メモリ, 92 A2フィルタ係数メモリ, 93 A3フィルタ係数メモリ, 94 A4フィルタ係数メモリ, 95 セレクタ, 101 A1フィルタ係数算出部, 102 A2フィルタ係数算出部, 103 A3フィルタ係数算出部, 104 A4フィルタ係数算出部, 105 セレクタ, 151 画像復号装置, 162 可逆復号部, 172 動き補償部, 181 固定補間フィルタ, 182 固定フィルタ係数記憶部, 183 可変補間フィルタ, 184 可変フィルタ係数記憶部, 185 動き補償処理部, 186 制御部,191 A1フィルタ係数メモリ, 192 A2フィルタ係数メモリ, 193 A3フィルタ係数メモリ, 194 A4フィルタ係数メモリ, 195 セレクタ, 201 A1フィルタ係数メモリ, 202 A2フィルタ係数メモリ, 203 A3フィルタ係数メモリ, 204 A4フィルタ係数メモリ, 205 セレクタ

Claims (16)

  1.  符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタと、
     前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択するフィルタ係数選択手段と、
     前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成する動き補償手段と
     を備える画像処理装置。
  2.  前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか否かに基づいて、前記補間フィルタのフィルタ係数を選択する
     請求項1に記載の画像処理装置。
  3.  前記フィルタ係数選択手段は、前記双予測モードであるか否かに基づいて、高周波成分の増幅の程度の異なる前記フィルタ係数を選択する
     請求項2に記載の画像処理装置。
  4.  前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか、ダイレクト・モードであるか、スキップ・モードであるかに基づいて、前記補間フィルタのフィルタ係数を選択する
     請求項1に記載の画像処理装置。
  5.  前記補間フィルタは、前記フィルタ係数選択手段により選択される前記フィルタ係数とオフセット値とを用いて、前記参照画像の画素を分数精度で補間する
     請求項1に記載の画像処理装置。
  6.  前記符号化された画像、前記動きベクトル、および符号化時に算出された前記フィルタ係数を復号する復号手段
     をさらに備え、
     前記フィルタ係数選択手段は、前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記復号手段により復号された前記フィルタ係数を選択する
     請求項1に記載の画像処理装置。
  7.  前記フィルタ係数は、前記重み付け予測の使用時用の複数種類のフィルタ係数と、前記重み付け予測の未使用時用の複数種類のフィルタ係数とからなり、
     前記フィルタ係数選択手段は、前記重み付け予測の使用または未使用と、前記フィルタ係数の種類を特定するための情報とに基づいて、前記復号手段により復号された前記フィルタ係数を選択する
     請求項6に記載の画像処理装置。
  8.  符号化対象の画像と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出する動き予測手段
     をさらに備える
     請求項1に記載の画像処理装置。
  9.  前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか否かに基づいて、前記補間フィルタのフィルタ係数を選択する
     請求項8に記載の画像処理装置。
  10.  前記符号化対象の画像、前記参照画像、および前記動き予測手段により検出された前記動きベクトルを用いて、前記補間フィルタのフィルタ係数を算出するフィルタ係数算出手段をさらに備え、
     前記フィルタ係数選択手段は、異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記フィルタ係数算出手段により算出された前記フィルタ係数を選択する
     請求項8に記載の画像処理装置。
  11.  前記フィルタ係数選択手段は、異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記フィルタ係数算出手段により算出された前記フィルタ係数を第1の選択候補とするとともに、所定のフィルタ係数を第2の選択候補とし、
     前記動き予測手段は、前記符号化対象の画像と、前記第1の選択候補の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記第1の選択候補用の動きベクトルを検出するとともに、前記符号化対象の画像と、前記第2の選択候補の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記第2の選択候補用の動きベクトルを検出し、
     前記動き補償手段は、前記第1の選択候補の前記補間フィルタにより補間された前記参照画像と、前記第1の選択候補用の動きベクトルを用いて、前記第1の選択候補用の予測画像を生成するとともに、前記第2の選択候補の前記補間フィルタにより補間された前記参照画像と、前記第2の選択候補用の動きベクトルを用いて、前記第2の選択候補用の予測画像を生成し、
     前記フィルタ係数選択手段は、前記第1の選択候補用の予測画像と前記符号化対象の画像との差分と、前記第2の選択候補用の予測画像と前記符号化対象の画像との差分のうちの小さい方の差分に対応するフィルタ係数を選択する
     請求項10に記載の画像処理装置。
  12.  前記フィルタ係数は、前記重み付け予測の使用時用の複数種類のフィルタ係数と、前記重み付け予測の未使用時用の複数種類のフィルタ係数とからなり、
     前記フィルタ係数選択手段は、前記重み付け予測の使用または未使用と、各種類のフィルタ係数に対応するコスト関数値とに基づいて、前記フィルタ係数を選択する
     請求項8に記載の画像処理装置。
  13.  符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタを備える画像処理装置の画像処理方法において、
     前記画像処理装置が、
     前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択し、
     選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成するステップ
     を含む画像処理方法。
  14.  前記画像処理装置が、
     符号化対象の画像と、選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出するステップ
     をさらに含む
     請求項13に記載の画像処理方法。
  15.  符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタを備える画像処理装置のコンピュータを、
     前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択するフィルタ係数選択手段と、
     前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成する動き補償手段と
     して、機能させるためのプログラム。
  16.  前記コンピュータを、
     符号化対象の画像と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出する動き予測手段
     として、さらに機能させるための請求項15に記載のプログラム。
PCT/JP2010/072434 2009-12-22 2010-12-14 画像処理装置および方法、並びにプログラム WO2011078002A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011547484A JPWO2011078002A1 (ja) 2009-12-22 2010-12-14 画像処理装置および方法、並びにプログラム
US13/514,354 US20120243611A1 (en) 2009-12-22 2010-12-14 Image processing apparatus and method as well as program
CN2010800583541A CN102714731A (zh) 2009-12-22 2010-12-14 图像处理设备和方法及程序

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009-290905 2009-12-22
JP2009290905 2009-12-22
JP2010-158866 2010-07-13
JP2010158866 2010-07-13

Publications (1)

Publication Number Publication Date
WO2011078002A1 true WO2011078002A1 (ja) 2011-06-30

Family

ID=44195532

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/072434 WO2011078002A1 (ja) 2009-12-22 2010-12-14 画像処理装置および方法、並びにプログラム

Country Status (4)

Country Link
US (1) US20120243611A1 (ja)
JP (1) JPWO2011078002A1 (ja)
CN (1) CN102714731A (ja)
WO (1) WO2011078002A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2011086836A1 (ja) * 2010-01-12 2013-05-16 シャープ株式会社 符号化装置、復号装置、および、データ構造
WO2021056210A1 (zh) * 2019-09-24 2021-04-01 北京大学 视频编解码方法、装置和计算机可读存储介质

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010091937A1 (en) * 2009-02-12 2010-08-19 Zoran (France) Temporal video interpolation method with 2-frame occlusion handling
US9060176B2 (en) * 2009-10-01 2015-06-16 Ntt Docomo, Inc. Motion vector prediction in video coding
KR101889101B1 (ko) * 2011-09-14 2018-08-17 세종대학교산학협력단 메모리 복사를 이용하여 영상을 복원하는 방법 및 장치
KR102161741B1 (ko) * 2013-05-02 2020-10-06 삼성전자주식회사 HEVC(high efficiency video coding)에서 코딩 유닛에 대한 양자화 파라미터를 변화시키는 방법과 장치, 및 시스템
EP3111643B1 (en) * 2014-04-01 2019-09-25 MediaTek Inc. Method of adaptive interpolation filtering in video coding
JP2016058782A (ja) * 2014-09-05 2016-04-21 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
KR102570911B1 (ko) * 2015-07-08 2023-08-24 인터디지털 매디슨 페턴트 홀딩스 에스에이에스 교차 평면 필터링을 이용한 향상된 크로마 코딩
CN105338366B (zh) * 2015-10-29 2018-01-19 北京工业大学 一种视频序列中分数像素的解码方法
US10244266B1 (en) * 2016-02-11 2019-03-26 Amazon Technologies, Inc. Noisy media content encoding
US11405611B2 (en) * 2016-02-15 2022-08-02 Qualcomm Incorporated Predicting filter coefficients from fixed filters for video coding
US10382766B2 (en) 2016-05-09 2019-08-13 Qualcomm Incorporated Signalling of filtering information
US10506230B2 (en) 2017-01-04 2019-12-10 Qualcomm Incorporated Modified adaptive loop filter temporal prediction for temporal scalability support
CA3115194C (en) * 2018-10-06 2024-03-05 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction using an interpolation filter
WO2021005349A1 (en) * 2019-07-05 2021-01-14 V-Nova International Ltd Quantization of residuals in video coding
US11477447B2 (en) * 2020-09-25 2022-10-18 Ati Technologies Ulc Single pass filter coefficients selection

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003219426A (ja) * 2002-01-23 2003-07-31 Sony Corp 画像情報符号化装置及び方法、画像情報復号装置及び方法、並びにプログラム
JP2005532725A (ja) * 2002-07-09 2005-10-27 ノキア コーポレイション ビデオ符号化における内挿フィルタタイプの選択方法および選択システム
JP2007506361A (ja) * 2003-09-17 2007-03-15 トムソン ライセンシング 適応参照画像の発生
WO2008085109A1 (en) * 2007-01-09 2008-07-17 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive filter representation
JP2008536414A (ja) * 2005-04-13 2008-09-04 ゴットフリート・ヴィルヘルム・ライプニッツ・ウニヴェルジテート・ハノーヴァー ビデオの拡張された符号化方法及び装置
JP2008544708A (ja) * 2005-06-24 2008-12-04 株式会社エヌ・ティ・ティ・ドコモ 適応補間を使用する映像符号化及び復号化の方法と装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878273A (en) * 1993-06-24 1999-03-02 Discovision Associates System for microprogrammable state machine in video parser disabling portion of processing stages responsive to sequence-- end token generating by token generator responsive to received data
BRPI0715952A2 (pt) * 2006-08-28 2013-07-30 Thomson Licensing mÉtodo e aparelho para determinar a distorÇço esperada em blocos de vÍdeo decodificados
US9078007B2 (en) * 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
US8831087B2 (en) * 2008-10-06 2014-09-09 Qualcomm Incorporated Efficient prediction mode selection
EP2262267A1 (en) * 2009-06-10 2010-12-15 Panasonic Corporation Filter coefficient coding scheme for video coding
US8917769B2 (en) * 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
WO2011003326A1 (en) * 2009-07-06 2011-01-13 Mediatek Singapore Pte. Ltd. Single pass adaptive interpolation filter

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003219426A (ja) * 2002-01-23 2003-07-31 Sony Corp 画像情報符号化装置及び方法、画像情報復号装置及び方法、並びにプログラム
JP2005532725A (ja) * 2002-07-09 2005-10-27 ノキア コーポレイション ビデオ符号化における内挿フィルタタイプの選択方法および選択システム
JP2007506361A (ja) * 2003-09-17 2007-03-15 トムソン ライセンシング 適応参照画像の発生
JP2008536414A (ja) * 2005-04-13 2008-09-04 ゴットフリート・ヴィルヘルム・ライプニッツ・ウニヴェルジテート・ハノーヴァー ビデオの拡張された符号化方法及び装置
JP2008544708A (ja) * 2005-06-24 2008-12-04 株式会社エヌ・ティ・ティ・ドコモ 適応補間を使用する映像符号化及び復号化の方法と装置
WO2008085109A1 (en) * 2007-01-09 2008-07-17 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive filter representation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2011086836A1 (ja) * 2010-01-12 2013-05-16 シャープ株式会社 符号化装置、復号装置、および、データ構造
WO2021056210A1 (zh) * 2019-09-24 2021-04-01 北京大学 视频编解码方法、装置和计算机可读存储介质

Also Published As

Publication number Publication date
JPWO2011078002A1 (ja) 2013-05-02
CN102714731A (zh) 2012-10-03
US20120243611A1 (en) 2012-09-27

Similar Documents

Publication Publication Date Title
WO2011078002A1 (ja) 画像処理装置および方法、並びにプログラム
JP5234368B2 (ja) 画像処理装置および方法
JP5597968B2 (ja) 画像処理装置および方法、プログラム、並びに記録媒体
WO2011024685A1 (ja) 画像処理装置および方法
JP5581688B2 (ja) 画像処理装置および方法、並びにプログラム
WO2010101064A1 (ja) 画像処理装置および方法
WO2010035731A1 (ja) 画像処理装置および方法
WO2010035733A1 (ja) 画像処理装置および方法
WO2010095559A1 (ja) 画像処理装置および方法
WO2011086964A1 (ja) 画像処理装置および方法、並びにプログラム
WO2010035734A1 (ja) 画像処理装置および方法
WO2010035730A1 (ja) 画像処理装置および方法
JPWO2010095560A1 (ja) 画像処理装置および方法
WO2010035732A1 (ja) 画像処理装置および方法
WO2011089973A1 (ja) 画像処理装置および方法
WO2010064674A1 (ja) 画像処理装置および画像処理方法、並びにプログラム
WO2010064675A1 (ja) 画像処理装置および画像処理方法、並びにプログラム
WO2011078001A1 (ja) 画像処理装置および方法、並びにプログラム
JPWO2010035735A1 (ja) 画像処理装置および方法
JP2014143716A (ja) 画像処理装置および方法、プログラム、並びに記録媒体
JP6048774B2 (ja) 画像処理装置および方法
WO2011125625A1 (ja) 画像処理装置および方法
JP2013150347A (ja) 画像処理装置および方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080058354.1

Country of ref document: CN

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

Ref document number: 10839235

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13514354

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2011547484

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10839235

Country of ref document: EP

Kind code of ref document: A1