WO2011078002A1 - 画像処理装置および方法、並びにプログラム - Google Patents
画像処理装置および方法、並びにプログラム Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/587—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
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
Description
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)
ここで、YBi-Predは、双予測モードあるいはダイレクト・モードのオフセット付き重み補間信号であり、W0、W1は、それぞれL0、L1への重み係数であり、Y0、Y1は、L0、L1の動き補償予測信号である。このW0、W1、Dは、明示的にビットストリーム情報に含められたり、復号側で暗黙的に計算によって得られたりするものが用いられる。
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)
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)が示されている。
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)
[画像符号化装置の構成例]
図8は、本発明を適用した画像処理装置としての画像符号化装置の第1実施の形態の構成を表している。
図9は、動き予測・補償部75の構成例を示すブロック図である。なお、図9においては、図8のスイッチ73が省略されている。
次に、図10を参照して、フィルタ係数の分類方法について説明する。なお、図10の例において、フィルタ[X][X]となっている部分の数字とアルファベットが異なれば、フィルタの特性が異なることを表している。
図11は、パターンAの場合のフィルタ係数記憶部の構成例を示すブロック図である。
図12は、パターンAの場合のフィルタ係数算出部の構成例を示すブロック図である。
次に、フィルタ係数の算出方法について説明する。なお、まず、A1フィルタ係数算出部101によるL0L1重み付き予測を使わない場合の全てのインター予測モードに用いられるフィルタ係数A1の算出方法について説明する。
次に、図15のフローチャートを参照して、図8の画像符号化装置51の符号化処理について説明する。
次に、図16のフローチャートを参照して、図15のステップS22における動き予測・補償処理を説明する。
次に、図17のフローチャートを参照して、図16のステップS51のフィルタ係数選択処理について説明する。
図18は、本発明を適用した画像処理装置としての画像復号装置の第1実施の形態の構成を表している。
図19は、動き補償部172の詳細な構成例を示すブロック図である。なお、図19においては、図18のスイッチ170が省略されている。
図20は、パターンAの場合の固定フィルタ係数記憶部の構成例を示すブロック図である。
図21は、パターンAの場合の可変フィルタ係数記憶部の構成例を示すブロック図である。
次に、図22のフローチャートを参照して、画像復号装置151が実行する復号処理について説明する。
次に、図23のフローチャートを参照して、図22のステップS139の動き補償処理を説明する。
次に、図24のフローチャートを参照して、図23のステップS153の可変フィルタ係数置き換え処理について説明する。
図25は、非特許文献4で提案されているブロックサイズの例を示す図である。非特許文献4では、マクロブロックサイズが32×32画素に拡張されている。
図26は、本発明の一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
図27は、本発明を適用した画像復号装置を用いるテレビジョン受像機の主な構成例を示すブロック図である。
図28は、本発明を適用した画像符号化装置および画像復号装置を用いる携帯電話機の主な構成例を示すブロック図である。
図29は、本発明を適用した画像符号化装置および画像復号装置を用いるハードディスクレコーダの主な構成例を示すブロック図である。
図30は、本発明を適用した画像復号装置および画像符号化装置を用いるカメラの主な構成例を示すブロック図である。
[画像符号化装置の構成例]
図31は、本発明を適用した画像処理装置としての画像符号化装置の第2実施の形態の構成を表している。
図32は、動き予測・補償部701の構成例を示すブロック図である。なお、図32においては、図31のスイッチ73が省略されている。
+ 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)
+ 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)
図33は、パターンAの場合のフィルタ係数選択部721の構成例を示すブロック図である。
図34は、A1フィルタ係数メモリ741の記憶情報の例を示す図である。
次に、図31の画像符号化装置700の処理について説明する。画像符号化装置700の符号化処理は、図15の符号化処理のステップS22の動き予測・補償処理を除いて、図15の符号化処理と同様である。従って、ここでは、画像符号化装置700の動き予測・補償部701による動き予測・補償処理についてのみ説明する。
図36は、本発明を適用した画像処理装置としての画像復号装置の第2実施の形態の構成を表している。
図37は、動き補償部801の詳細な構成例を示すブロック図である。なお、図37においては、図36のスイッチ170が省略されている。
図38は、パターンAの場合のフィルタ係数セット記憶部811の構成例を示すブロック図である。
次に、図36の画像復号装置800の処理について説明する。画像復号装置800の復号処理は、図22の復号処理のステップS139の動き補償処理を除いて、図22の復号処理と同様である。従って、ここでは、画像復号装置800の動き補償部801による動き補償処理についてのみ説明する。
図40は、フィルタ係数の他の分類方法について説明する図である。なお、図40の例において、フィルタ[X][X]となっている部分の数字とアルファベットが異なれば、フィルタの特性が異なることを表している。
Claims (16)
- 符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタと、
前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択するフィルタ係数選択手段と、
前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成する動き補償手段と
を備える画像処理装置。 - 前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか否かに基づいて、前記補間フィルタのフィルタ係数を選択する
請求項1に記載の画像処理装置。 - 前記フィルタ係数選択手段は、前記双予測モードであるか否かに基づいて、高周波成分の増幅の程度の異なる前記フィルタ係数を選択する
請求項2に記載の画像処理装置。 - 前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか、ダイレクト・モードであるか、スキップ・モードであるかに基づいて、前記補間フィルタのフィルタ係数を選択する
請求項1に記載の画像処理装置。 - 前記補間フィルタは、前記フィルタ係数選択手段により選択される前記フィルタ係数とオフセット値とを用いて、前記参照画像の画素を分数精度で補間する
請求項1に記載の画像処理装置。 - 前記符号化された画像、前記動きベクトル、および符号化時に算出された前記フィルタ係数を復号する復号手段
をさらに備え、
前記フィルタ係数選択手段は、前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記復号手段により復号された前記フィルタ係数を選択する
請求項1に記載の画像処理装置。 - 前記フィルタ係数は、前記重み付け予測の使用時用の複数種類のフィルタ係数と、前記重み付け予測の未使用時用の複数種類のフィルタ係数とからなり、
前記フィルタ係数選択手段は、前記重み付け予測の使用または未使用と、前記フィルタ係数の種類を特定するための情報とに基づいて、前記復号手段により復号された前記フィルタ係数を選択する
請求項6に記載の画像処理装置。 - 符号化対象の画像と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出する動き予測手段
をさらに備える
請求項1に記載の画像処理装置。 - 前記フィルタ係数選択手段は、前記異なる複数の前記参照画像による重み付け予測の使用の場合、さらに、双予測モードであるか否かに基づいて、前記補間フィルタのフィルタ係数を選択する
請求項8に記載の画像処理装置。 - 前記符号化対象の画像、前記参照画像、および前記動き予測手段により検出された前記動きベクトルを用いて、前記補間フィルタのフィルタ係数を算出するフィルタ係数算出手段をさらに備え、
前記フィルタ係数選択手段は、異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記フィルタ係数算出手段により算出された前記フィルタ係数を選択する
請求項8に記載の画像処理装置。 - 前記フィルタ係数選択手段は、異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記フィルタ係数算出手段により算出された前記フィルタ係数を第1の選択候補とするとともに、所定のフィルタ係数を第2の選択候補とし、
前記動き予測手段は、前記符号化対象の画像と、前記第1の選択候補の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記第1の選択候補用の動きベクトルを検出するとともに、前記符号化対象の画像と、前記第2の選択候補の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記第2の選択候補用の動きベクトルを検出し、
前記動き補償手段は、前記第1の選択候補の前記補間フィルタにより補間された前記参照画像と、前記第1の選択候補用の動きベクトルを用いて、前記第1の選択候補用の予測画像を生成するとともに、前記第2の選択候補の前記補間フィルタにより補間された前記参照画像と、前記第2の選択候補用の動きベクトルを用いて、前記第2の選択候補用の予測画像を生成し、
前記フィルタ係数選択手段は、前記第1の選択候補用の予測画像と前記符号化対象の画像との差分と、前記第2の選択候補用の予測画像と前記符号化対象の画像との差分のうちの小さい方の差分に対応するフィルタ係数を選択する
請求項10に記載の画像処理装置。 - 前記フィルタ係数は、前記重み付け予測の使用時用の複数種類のフィルタ係数と、前記重み付け予測の未使用時用の複数種類のフィルタ係数とからなり、
前記フィルタ係数選択手段は、前記重み付け予測の使用または未使用と、各種類のフィルタ係数に対応するコスト関数値とに基づいて、前記フィルタ係数を選択する
請求項8に記載の画像処理装置。 - 符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタを備える画像処理装置の画像処理方法において、
前記画像処理装置が、
前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択し、
選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成するステップ
を含む画像処理方法。 - 前記画像処理装置が、
符号化対象の画像と、選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出するステップ
をさらに含む
請求項13に記載の画像処理方法。 - 符号化された画像に対応する参照画像の画素を分数精度で補間する補間フィルタを備える画像処理装置のコンピュータを、
前記符号化された画像における異なる複数の前記参照画像による重み付け予測の使用または未使用に基づいて、前記補間フィルタのフィルタ係数を選択するフィルタ係数選択手段と、
前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像と、前記符号化された画像に対応する動きベクトルを用いて、予測画像を生成する動き補償手段と
して、機能させるためのプログラム。 - 前記コンピュータを、
符号化対象の画像と、前記フィルタ係数選択手段により選択された前記フィルタ係数の前記補間フィルタにより補間された前記参照画像との間で動き予測を行い、前記動きベクトルを検出する動き予測手段
として、さらに機能させるための請求項15に記載のプログラム。
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)
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)
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)
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)
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 |
-
2010
- 2010-12-14 US US13/514,354 patent/US20120243611A1/en not_active Abandoned
- 2010-12-14 WO PCT/JP2010/072434 patent/WO2011078002A1/ja active Application Filing
- 2010-12-14 JP JP2011547484A patent/JPWO2011078002A1/ja not_active Withdrawn
- 2010-12-14 CN CN2010800583541A patent/CN102714731A/zh active Pending
Patent Citations (6)
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)
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 |