WO2012172659A1 - Image encoding method, image decoding method, image encoding apparatus, and image decoding apparatus - Google Patents
Image encoding method, image decoding method, image encoding apparatus, and image decoding apparatus Download PDFInfo
- Publication number
- WO2012172659A1 WO2012172659A1 PCT/JP2011/063720 JP2011063720W WO2012172659A1 WO 2012172659 A1 WO2012172659 A1 WO 2012172659A1 JP 2011063720 W JP2011063720 W JP 2011063720W WO 2012172659 A1 WO2012172659 A1 WO 2012172659A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- pixel
- image
- pixel value
- interpolation
- pixel position
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- 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/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
Definitions
- Embodiments described herein relate generally to an image encoding method, an image decoding method, an image encoding device, and an image decoding device.
- an interpolation image with an accuracy higher than the integer pixel accuracy is created, and the prediction efficiency is improved by using bi-directional prediction in which a prediction value is calculated by an average value or a weighted average of two interpolation images.
- the method of aiming is common.
- the bidirectional prediction method two unidirectional interpolation images are created, and an average value of the two interpolation images is obtained to create a bidirectional prediction image. For this reason, it is known that a rounding error in determining the average value becomes a problem.
- the image coding apparatus includes a motion compensation prediction unit, an interpolation image generation unit, and a coding unit.
- the motion compensated prediction unit generates a motion compensated predicted image that is predicted based on the motion vector from the reference image.
- the interpolation image generation unit generates a bidirectional prediction image obtained by interpolating a plurality of motion compensated prediction images generated for a plurality of reference images.
- the encoding unit generates encoded data obtained by encoding the difference between the input image and the bidirectional prediction image.
- the interpolated image generation unit is configured such that a first set representing a combination of pixel positions of a plurality of motion compensated prediction images for obtaining a pixel value of the first pixel position of the bidirectional prediction image is a predetermined pixel position.
- 1 is a block diagram of an image encoding device according to a first embodiment.
- 1 is a block diagram of an image decoding apparatus according to a first embodiment.
- the figure of the table which shows an example of the switching conditions of a switch part.
- FIG. 5 is a hardware configuration diagram of an apparatus according to first to fourth embodiments.
- the image encoding device and the image decoding device according to the first embodiment first detect each pixel when a set of pixel positions of two reference images used for bidirectional prediction corresponds to a predetermined set (specific set). After adding the pixel values of the positions, multiplication with the filter coefficient of the filter used for interpolation is executed. Thereby, it is possible to reduce the number of operations when generating the interpolation image.
- FIG. 1 is a block diagram illustrating a configuration example of an image encoding device 600 according to the first embodiment.
- the image coding apparatus 600 includes a subtracting unit 602, a transform / quantization unit 603, an inverse quantization / inverse transform unit 604, an entropy coding unit 605, an addition unit 606, and a frame memory.
- Unit 608 predicted image generation unit 610, motion vector search unit 612, and encoding control unit 614.
- the image encoding device 600 generates encoded data 615 from the input moving image signal 601.
- the input moving image signal 601 is input to the image encoding device 600 in units of frames.
- the input moving image signal 601 is divided into units such as macro blocks.
- the subtraction unit 602 outputs a prediction error signal that is a difference between the predicted image signal 611 generated by the predicted image generation unit 610 and the input moving image signal 601.
- the transform / quantization unit 603 orthogonally transforms the prediction error signal by, for example, discrete cosine transform (DCT), and executes quantization processing to generate quantized transform coefficient information.
- the quantized transform coefficient information is bifurcated, and one is input to the entropy encoding unit 605. The other of the bifurcated quantized transform coefficient information is input to the inverse quantization / inverse transform unit 604.
- the inverse quantization / inverse transform unit 604 performs inverse quantization and inverse transform processing on the quantized transform coefficient information as processing reverse to the processing of the transform / quantization unit 603, and reproduces the prediction error signal. .
- the adding unit 606 adds the prediction error signal and the prediction image signal. As a result, a decoded image signal 607 is generated.
- the decoded image signal 607 is input to the frame memory unit 608.
- the frame memory unit 608 performs a filtering process or the like on the decoded image signal 607, and then uses the decoded image signal 609 as a reference image signal 609 input to the predicted image generation unit 610 based on the prediction control information 507. It is determined whether 607 is stored.
- the reference image signal 609 is input to the predicted image generation unit 610 and also to the motion vector search unit 612.
- the motion vector search unit 612 generates motion vector information 613 from the input moving image signal 601 and the reference image signal 609.
- the motion vector information 613 is input to the predicted image generation unit 610 and is also sent to the entropy encoding unit 605.
- the predicted image generation unit 610 generates a predicted image signal 611 from the reference image signal 609, the prediction control information 507, and the motion vector information 613.
- the encoding control unit 614 controls operations of the transform / quantization unit 603, the predicted image generation unit 610, the frame memory unit 608, and the like.
- the prediction control information 507 generated by the encoding control unit 614 is input to the predicted image generation unit 610 and the frame memory unit 608 and is also sent to the entropy encoding unit 605.
- the entropy encoding unit 605 includes various codes such as quantized transform coefficient information from the transform / quantization unit 603, prediction control information 507 from the encoding control unit 614, and motion vector information 613 from the motion vector search unit 612. Encoded data is entropy-encoded to generate encoded data according to a predetermined syntax.
- FIG. 2 is a block diagram illustrating a configuration example of an image decoding apparatus 700 corresponding to the image encoding apparatus 600.
- the image decoding apparatus 700 includes an entropy decoding unit 702, an inverse quantization / inverse transform unit 703, an addition unit 704, a frame memory unit 706, and a predicted image generation unit 610.
- the image decoding device 700 generates a playback video signal 707 from the encoded data 701.
- the entropy decoding unit 702 performs entropy decoding processing of the encoded data 701 according to a predetermined syntax.
- the entropy decoding unit 702 decodes the encoded data 701 to obtain quantized transform coefficient information, prediction control information 711, and motion vector information 712.
- the decoded quantized transform coefficient information is input to the inverse quantization / inverse transform unit 703.
- the decoded prediction control information 711 and motion vector information 712 are input to the predicted image generation unit 610.
- the inverse quantization / inverse transform unit 703 performs inverse quantization and inverse orthogonal transform processing on the quantized transform coefficient information to reproduce a prediction error signal.
- the adder 704 adds the prediction error signal and the prediction image signal 710 to generate a decoded image signal 705.
- the decoded image signal 705 is input to the frame memory unit 706.
- the frame memory unit 706 performs a filtering process on the decoded image signal 705 and outputs it as a reproduced moving image signal 707.
- the frame memory unit 706 determines whether to store the filtered decoded image signal 705 based on the prediction control information 711.
- the stored decoded image signal 705 is input to the predicted image generation unit 610 as a reference image signal 708.
- the predicted image generation unit 610 generates a predicted image signal 710 using the reference image signal 708, the prediction control information 711, and the motion vector information 712.
- FIG. 3 is a block diagram illustrating a configuration example of the predicted image generation unit 610 included in the image encoding device 600 and the image decoding device 700.
- the predicted image generation unit 610 includes a switch 503, a bidirectional prediction unit 504, a unidirectional prediction unit 505, and an intra prediction unit 506.
- the predicted image generation unit 610 generates a predicted image signal 509 from the reference image signal 502, the prediction control information 507, and the motion vector information 508.
- the prediction control information 507 includes, for example, information specifying which of the bidirectional prediction unit 504, the unidirectional prediction unit 505, and the intra prediction unit 506 is used.
- the switch 503 refers to this information and switches so as to select any one of the bidirectional prediction unit 504, the unidirectional prediction unit 505, and the intra prediction unit 506.
- the reference image signal 502 is input to any of the bidirectional prediction unit 504, the unidirectional prediction unit 505, and the intra prediction unit 506 selected by the switch 503.
- the bidirectional prediction unit 504 When the bidirectional prediction unit 504 is selected, the bidirectional prediction unit 504 generates a motion compensated image signal using the reference image signals 502 and the motion vector information 508 from a plurality of reference frames, and performs bidirectional prediction. Based on this, a predicted image signal 509 is generated.
- the unidirectional predictor 505 When the unidirectional predictor 505 is selected, the unidirectional predictor 505 generates a motion compensated image signal using the reference image signal 502 and the motion vector information 508 from a single reference frame, and generates a predicted image.
- a signal 509 is generated.
- the intra prediction unit 506 When the intra prediction unit 506 is selected, the intra prediction unit 506 generates a predicted image signal 509 using the reference image signal 502 in the screen.
- FIG. 4 is a block diagram illustrating a configuration example of the bidirectional prediction unit 504 according to the first embodiment.
- the bidirectional prediction unit 504 includes a motion compensation prediction unit 107, an accuracy calculation unit 104, and a bidirectional interpolation image generation unit 109.
- the bidirectional prediction unit 504 receives the reference image signal 102 and the motion vector information 103 as inputs, and outputs a bidirectional prediction image signal 110.
- the motion compensation prediction unit 107 refers to the reference image signal with integer pixel accuracy based on the integer accuracy information 105 from the accuracy calculation unit 104.
- the two reference images are distinguished by being referred to as a reference image in list 0 and a reference image in list 1.
- the accuracy calculation unit 104 calculates an integer from the motion vector (mvLX [0], mvLX [1]) of the list L (L is 0 or 1).
- the accuracy information (xInt, yInt) and the fractional accuracy information (xFrac, yFrac) are calculated by the following equations.
- the fractional accuracy of the motion vector may be other fractional accuracy such as 1/8 pixel accuracy or 1/16 pixel accuracy in addition to the 1/4 pixel accuracy, and the same argument holds.
- the upper left reference pixel of the motion compensation block is (xP, yP), and the pixel position in the block is represented by (x, y).
- the integer accuracy information (xInt, yInt) of list 0 and list 1 is sent to the motion compensation prediction unit 107.
- the motion compensation prediction unit 107 reads out pixel data in a necessary range from the reference image signals of the list 0 and the list 1, and sends the pixel data to the bidirectional interpolation image generation unit 109.
- the bidirectional interpolation image generation unit 109 performs bidirectional prediction based on the fractional accuracy information (xFrac, yFrac) of each of list 0 and list 1 and the motion compensated prediction image 108 with integer pixel accuracy from the motion compensation prediction unit 107.
- An image signal 110 is generated and output.
- FIG. 5 is a block diagram illustrating a configuration example of the bidirectional interpolation image generation unit 109 of the present embodiment.
- the bidirectional interpolation image generation unit 109 includes a switch unit 201, a first image generation unit 202, and a second image generation unit 203.
- the bidirectionally interpolated image generation unit 109 performs bidirectional operation based on the motion compensated predicted image 108 and the fractional accuracy information 106 by either the first image generation unit 202 or the second image generation unit 203 switched by the switch unit 201.
- a predicted image signal 110 is generated.
- FIG. 6 is a diagram illustrating an example of the fractional pixel position.
- FIG. 7 is a diagram illustrating an example of fraction accuracy information corresponding to the fractional pixel position.
- a, b, c, d, e, f, g, h, i, j, k, n, p, q, and r represent fractional pixel positions.
- xFrac represents the fractional pixel accuracy information in the horizontal direction of the list L
- yFrac represents the fractional pixel accuracy in the vertical direction of the list L.
- FIG. 8 is a diagram illustrating an example of a motion compensated image with integer pixel accuracy referred to by the motion compensation prediction unit 107 in the case of 1/4 pixel accuracy.
- a L, x, y indicates pixel values of integer pixel positions x, y in the list L.
- the bidirectional prediction unit 504 generates an interpolated image between integer pixels with reference to the integer pixel positions 0 and 0.
- a two-dimensional interpolation image with 1/4 pixel accuracy is created.
- the filter coefficient of the FIR filter is F
- the following relationship is established.
- the same argument can be made with 1/8 pixel accuracy and 1/16 pixel accuracy.
- the moving image signal to be applied can be applied not only to a luminance signal but also to a color difference signal.
- a color difference signal For example, in the case of 4: 2: 0 format, if the luminance is 1/4 pixel accuracy, the color difference signal has 1/8 pixel accuracy, and the method of this embodiment can be applied independently or simultaneously.
- 4: 2: 2 format if the luminance is 1/4 pixel accuracy, the color difference signal has 1/4 pixel accuracy in the vertical direction and 1/8 pixel accuracy in the horizontal direction, and the same argument can be made.
- the value of the filter coefficient for 1/2 pixel accuracy is symmetric with respect to the interpolation target pixel position. From this, it is possible to multiply together pixel positions existing at positions symmetrical to the interpolation target pixel position of the motion compensated prediction image.
- the filter coefficient for 1/4 pixel accuracy and the filter coefficient for 3/4 pixel accuracy are obtained by inverting the filter coefficient. Therefore, when the pixel accuracy is 3/4, the pixel accuracy is the same as 1/4 by inverting the pixel position of the input motion compensated prediction image around the pixel position having the pixel accuracy of 1/2. It turns out that it becomes processing.
- Z is the pixel position Z of the list L (Z is any one of A, a, b, c, d, e, f, g, h, i, j, k, n, p, q, r)
- Interpolated image of bipredSample predSampleL0 and predSampleL1 are the bi-predictive image signals 110 in the case of the combination of the pixel position predSampleL0 in list 0 and the pixel position predSampleL1 in list 1.
- Bit Depth represents the pixel bit length of the input moving image signal 601.
- “ ⁇ ” and “>>” are operations representing a left arithmetic shift and a right arithmetic shift, respectively.
- the shift direction is inverted to be an arithmetic shift with a positive value. That is, for example, “x >> ( ⁇ 2)” is set to “x ⁇ 2”.
- a ternary operator used in C language or the like is used.
- Shift1, shift2, and shift3 are variables for controlling calculation accuracy, and S is a parameter.
- S is a parameter.
- S is 0, all interpolation processes can be accommodated in 16-bit precision.
- S is Bit Depth-2, there is no loss of accuracy due to rounding processing in the middle.
- offset 0, offset 1, offset 2, offset 3 are offset values for rounding. Note that the value of S may be different between the first image generation unit 202 and the second image generation unit 203.
- predSample clip ((bipleSample predSampleL0, predSampleL1 + (offset3 + 1)) >> (shift3 + 1)) (1)
- the function clip is a function that limits the value to 0 or more and (1 ⁇ BitDepth) ⁇ 1 or less.
- FIG. 9 is a table showing an example of switching conditions of the switch unit 201.
- This table includes pixel positions (A, a, b, c, d, e, f, g, h, i, j, k, n, p, q indicated by xFrac and yFrac in list 0 and list 1, respectively. , R), which one of the first image generation unit 202 and the second image generation unit 203 is to be selected is shown. Since this is an example of 1/4 pixel accuracy, there are 256 combinations of pixel positions in list 0 and list 1.
- the first row represents the pixel position of list 0, and the first column represents the pixel position of list 1.
- the switch unit 201 switches so as to select the first image generation unit 202, and when the value is 1, the switch unit 201 switches so as to select the second image generation unit 203.
- An example is shown.
- FIG. 10 is a block diagram illustrating a configuration example of the first image generation unit 202.
- the first image generation unit 202 includes a list 0 interpolation unit 301, a list 1 interpolation unit 302, and an addition unit 303.
- the first image generation unit 202 uses the motion compensated prediction image 108 and the fractional accuracy information 106 to create the interpolated images of list 0 and list 1, respectively, and then calculates an average value thereof by the adding unit 303.
- the bidirectional prediction image signal 110 is created.
- the list 0 interpolation unit 301 generates an interpolated image by performing an interpolation process on the reference image of list 0.
- the list 1 interpolation unit 302 generates an interpolation image by performing an interpolation process on the reference image of list 1.
- the list 0 interpolation unit 301 and the list 1 interpolation unit 302 generate an interpolation image by calculating an interpolation value obtained by interpolating the pixel values of the pixels of the reference image of list 0 and the reference image of list 1, respectively.
- the adding unit 303 adds the interpolation image of list 0 and the interpolation image of list 1.
- bipredSample predSampleL0 and predSampleL1 in the first image generation unit 202.
- the interpolated image of list 0 is T 0 and predSampleL0
- the interpolated image of list 1 is T 1 and predSampleL1 .
- bipredSample predSampleL0 and predSampleL1 are calculated as shown in the following equations.
- FIG. 11 is a block diagram illustrating a configuration example of the second image generation unit 203.
- the second image generation unit 203 includes a replacement unit 401, an addition unit 402, and an interpolation unit 403.
- the second image generation unit 203 replaces the pixel position of the motion compensated prediction image 108 as necessary from the motion compensated prediction image 108 and the fractional accuracy information 106 (replacement unit 401), and performs addition processing (addition unit 402). ),
- the bidirectional prediction image signal 110 is generated by performing the interpolation process (interpolation unit 403).
- the replacement unit 401 replaces the pixel position included in the group with a predetermined pixel position. For example, in the case of a combination of pixel positions with a pixel accuracy of 1/4 and 3/4, the replacement unit 401 inverts a pixel position with a pixel accuracy of 3/4 around a pixel position with a pixel accuracy of 1/2. In the case of a configuration in which the pixel position is not replaced, the replacement unit 401 may not be provided. For example, when only the combination of pixel positions having the same filter coefficient is the processing target of the second image generation unit 203, it is not necessary to include the replacement unit 401 because it is not necessary to invert the pixel positions.
- the addition unit 402 adds the pixel values at each pixel position included in the combination of pixel positions after replacement as necessary.
- the interpolation unit 403 creates the bidirectional prediction image signal 110 by performing interpolation processing using a filter on the image obtained by the addition.
- the configuration including the replacement unit 401, the addition unit 402, and the interpolation unit 403 is merely an example, and any other configuration may be used as long as the bidirectional prediction image signal 110 can be calculated using Equations 6 to 33 described later. Good.
- the second image generation unit 203 realizes a reduction in the number of computations by performing interpolation processing after adding the motion compensated prediction image 108 first.
- the second image generation unit 203 calculates bipred Sample pred Sample L0 and pred Sample L1 based on the fractional accuracy information.
- bipleSample predSampleL0 and predSampleL1 are calculated by the second image generation unit 203.
- Each of the following equations 6 to 33 represents an example of a calculation formula of bipredSample predSampleL0 and predSampleL1 for each combination of pixel positions having a value of “1” in the table of FIG.
- TW L, predSampleLx (W L ⁇ T L, predSampleLx + (1 ⁇ (LS-1))) >> LS + O L ⁇ (2)
- bipredSample predSampleL0, predSampleL1 (TW 0, pred Sample L0 + TW 1, pred Sample L1 ) (3)
- AW L, x, y (W L ⁇ A L, x, y + (1 ⁇ (LS-1))) >> LS + OL
- the weighted integer pixel values AWL , x, y are generated, and the image bipleSample predSampleL0 and predSampleL1 generated by the second image generation unit 203 are substituted into the formula (1) to obtain a weighted prediction image Create
- FIG. 12 is a flowchart showing an overall flow of the interpolation image generation processing in the first embodiment.
- the motion compensation prediction unit 107 reads out image signals with integer pixel accuracy from the reference image signals of list 0 and list 1 according to the integer accuracy information calculated by the accuracy calculation unit 104 (step S101).
- the motion compensation prediction unit 107 outputs the read image signal to the bidirectional interpolation image generation unit 109 as a motion compensated prediction image 108 with integer pixel accuracy.
- the bidirectional interpolation image generation unit 109 inputs the fractional accuracy information (xFrac, yFrac) of the list 0 and the list 1 calculated by the accuracy calculation unit 104 (step S102).
- the bidirectionally interpolated image generation unit 109 determines whether to use the second image generation unit 203 based on the combination of pixel positions corresponding to the fractional accuracy information of the list 0 and the list 1 (step S103).
- the bidirectional interpolated image generation unit 109 obtains pixel positions corresponding to the fractional accuracy information for each of the list 0 and the list 1.
- the fractional accuracy information (xFrac, yFrac) (1, 1)
- the bidirectionally interpolated image generation unit 109 can specify that the pixel position is “e” as shown in FIG.
- the bidirectionally interpolated image generation unit 109 determines whether or not the combination of the pixel position obtained for the list 0 and the pixel position obtained for the list 1 is a predetermined combination (specific set). .
- the bidirectional interpolation image generation unit 109 performs the above determination with a combination of pixel positions having a value of “1” in the table of FIG.
- bi-directionally interpolated image generation unit 109 determines to use second image generation unit 203. If it is not a specific group, the bidirectional interpolation image generation unit 109 determines to use the first image generation unit 202.
- step S103 When the first image generation unit 202 is used (step S103: No), the list 0 interpolation unit 301 of the first image generation unit 202 creates an interpolation image of list 0, and the list 1 interpolation unit of the first image generation unit 202 302 creates an interpolated image of list 1 (step S104).
- step S104 the adding unit 303 adds the interpolated image of list 0 and the interpolated image of list 1 to create and output a bidirectional prediction image signal 110 (step S105).
- the second image generation unit 203 When the second image generation unit 203 is used (step S103: Yes), the second image generation unit 203 creates the bidirectional prediction image signal 110 according to the equations 6 to 33 (steps S106 to S107).
- the replacement unit 401 replaces the pixel position included in the group with a predetermined pixel position.
- the adding unit 402 adds the pixel value of the motion compensated predicted image 108 for list 0 and the pixel value of the motion compensated predicted image for list 1 (step S106).
- the interpolation unit 403 performs an interpolation process using a filter on the image obtained by the addition, and generates and outputs the bidirectional prediction image signal 110 (step S107).
- this embodiment when the combination of the pixel positions of the two reference images satisfies a specific condition, the filter processing can be executed after adding the pixel values. Therefore, compared with the conventional method of creating an average value after creating an interpolation image independently in list 0 and list 1, this embodiment is for limiting the number of multiplications and the calculation accuracy in filter processing. The number of operations such as clipping processing can be reduced. That is, the bidirectionally interpolated image generation process can be efficiently realized.
- the maximum number of multiplications is 104, and the average number of multiplications is 51.92.
- the maximum number of multiplications is 144, and the average number of multiplications is 62.5.
- the pixel value of each pixel position is first determined. After the addition, multiplication with the filter coefficient is executed. Thereby, the calculation amount of bidirectional prediction can be reduced.
- the combination of fractional accuracy information to which the second image generation unit 203 is applied may be a part of the above combination. In other words, for example, a part of the expressions 6 to 33 may be used. Even in this case, the amount of calculation can be reduced at least for the combination to which the second image generation unit 203 is applied.
- the image encoding device and the image decoding device according to the second embodiment further reduce the amount of calculation by the first image generation unit.
- the first image generation unit of the second embodiment uses a filter with a short (small) tap length in the case of a pixel position with a large calculation amount.
- the combination of fraction accuracy information of list 0 and list 1 is a combination of f, i, k, q and e, g, p, r. 32 are the worst multiplications (144 times, see FIG. 14). Therefore, the first image generation unit of the second embodiment uses a filter with a short tap length that satisfies N ′ ⁇ N when calculating an interpolation image at pixel positions e, g, p, and r.
- Expression 34 is an expression for calculating the interpolated images T ′ L, e , T ′ L, g , T ′ L, p , T ′ L, r at the pixel positions of e, g, p, r in the list L. To express.
- FIG. 15 is a diagram showing the number of multiplications per pixel according to the second embodiment.
- the portion that required the worst 104 multiplications becomes 78 multiplications.
- the average of 256 patterns is 48.67, and the number of multiplications can be further reduced by about 3 times from the first embodiment.
- 32 types of combinations of f, i, k, q and e, g, p, r are applied, but a part of these or another combination may be used.
- eight combinations of j which is the number of multiplications of 92 times in FIG. 15, and e, g, p, r may be included.
- N ′ may be applied to all or part of the combinations of e, f, g, i, k, p, q, and r in list 0 and list 1, which have a large number of operations. .
- the image encoding device and the image decoding device according to the third embodiment perform the second image generation by approximating the list 0 and the list 1 to have the same fractional accuracy in the case of a pixel position having a large calculation amount. It is possible to generate a bidirectional prediction image by the unit 203.
- prediction formulas shown in the following formulas 35 to 37 are introduced for 32 combinations of f, i, k, q and e, g, p, r.
- FIG. 16 is a diagram showing the number of multiplications per pixel according to the third embodiment.
- N 4
- the average of 256 is 45.80 times, which can be further reduced by about 6 times from the first embodiment.
- 32 combinations of f, i, k, q and e, g, p, r are applied, but some or a combination of these may be used.
- eight types of combinations of j which is the number of multiplications of 92 times in FIG. 16, and e, g, p, r may be included.
- the image encoding device and the image decoding device according to the fourth embodiment generate a second image by replacing list 0 and list 1 with pixel positions having the same fractional accuracy in the case of pixel positions with a large amount of calculation. It is possible to generate a bidirectional prediction image by the unit 203.
- bipred Sample e, k to be calculated by the first image generation unit 202 bipredSample k, e bipredSample g, i bipredSample i, g bipred Sample e, q bipred Sample q, e bipredSample f, p bipred Sample p, f bipred Sample f, r bipredSample r, f bipred Sample g, q bipred Sample q, g bipredSample i, r bipredSample r, i bipredSample k, p bipred Sample p, k Are replaced with bipreted Sample j, j in the case of the second image generation unit 203.
- bipred Sample e, f to be calculated by the first image generation unit 202 bipred Sample f, e bipred Sample e, i bipredSample i, e Are replaced with bipreted Sample e, e in the case of the second image generation unit 203.
- bipred Sample f, g to be calculated by the first image generation unit 202 bipred Sample g, f bipredSample g, k bipredSample k, g are replaced with bipred Sample g, g in the case of the second image generation unit 203.
- bipredSample i, p to be calculated by the first image generation unit 202 bipred Sample p, i bipred Sample p, q bipred Sample q, p are replaced with bisampleSample p, p in the case of the second image generation unit 203.
- bipred Sample k, r to be calculated by the first image generation unit 202 bipredSample r, k bipred Sample q, r bipred Sample r, q are replaced with bisampled r, r in the case of the second image generation unit 203.
- FIG. 17 is a diagram showing the number of multiplications per pixel according to the fourth embodiment.
- N 4
- the portion where the worst 96 times of multiplication is necessary is 16 or 64 times.
- the average of 256 ways is about 44.80 times, which can be further reduced about 7 times from the first embodiment.
- 32 combinations of f, i, k, q and e, g, p, r are applied, but some or a combination of these may be used.
- all eight of these may be replaced with bipledSample j, j. .
- combinations including e, g, p, and r may be replaced with bisampled sample e, e , bipreded sample g, g , bipreded sample p, p , bipreded sample r, r , respectively.
- the number of operations when generating an interpolation image can be reduced.
- FIG. 18 is an explanatory diagram showing the hardware configuration of the devices according to the first to fourth embodiments.
- the devices according to the first to fourth embodiments are connected to a control device such as a CPU (CentrAL Processing Unit) 51, a storage device such as a ROM (Read Only Memory) 52 and a RAM (Random Access Memory) 53, and a network.
- a control device such as a CPU (CentrAL Processing Unit) 51, a storage device such as a ROM (Read Only Memory) 52 and a RAM (Random Access Memory) 53, and a network.
- a communication I / F 54 that performs communication and a bus 61 that connects each unit are provided.
- the program executed by the devices according to the first to fourth embodiments is provided by being incorporated in advance in the ROM 52 or the like.
- the program executed by the apparatus according to the first to fourth embodiments is a file in an installable or executable format and is a CD-ROM (Compact Disk Read Only Memory), a flexible disk (FD), a CD-R. (Compact Disk Recordable), DVD (DigitAL Versatile Disk), etc. may be recorded on a computer-readable recording medium and provided as a computer program product.
- CD-ROM Compact Disk Read Only Memory
- FD flexible disk
- CD-R. Compact Disk Recordable
- DVD DigitAL Versatile Disk
- the program executed by the apparatuses according to the first to fourth embodiments may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network.
- the program executed by the devices according to the first to fourth embodiments may be provided or distributed via a network such as the Internet.
- the program executed by the devices according to the first to fourth embodiments can cause the computer to function as each unit (motion compensation prediction unit, bidirectional interpolation image generation unit, accuracy calculation unit, etc.) of the above-described device.
- the CPU 51 can read a program from a computer-readable storage medium onto a main storage device and execute the program.
- Motion vector search unit 613 Motion vector information 614
- Motion vector information 614 Encoding control unit 615 Encoded data 700
- Image decoding device 701 Encoded data 702
- Entropy decoding unit 703 Inverse quantization / inverse transform unit 704
- Adder 705 Decoded image signal 706
- Frame memory Unit 707 playback video signal 708 reference image signal 710 prediction image signal 711 prediction control information 712 motion vector information
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本発明の実施形態は、画像符号化方法、画像復号方法、画像符号化装置および画像復号装置に関する。 Embodiments described herein relate generally to an image encoding method, an image decoding method, an image encoding device, and an image decoding device.
動画像符号化技術では、整数画素精度よりも高い精度の補間画像を作成し、2つの補間画像の平均値または重み付き平均により予測値を算出する双方向予測を用いることによって予測効率の改善を図る方法が一般的である。双方向予測方式では、2つの単方向の補間画像を作成し、2つの補間画像の平均値を求めて双方向予測画像を作成する。このため、平均値を求める時の丸め誤差が問題になることが知られている。双方向予測補間画像を生成する時に、単方向の補間画像生成結果を入力画素ビット長よりも長いビット長で保持してから平均を求めることで、演算途中での丸め誤差を減らす技術が存在する。 In the moving image coding technology, an interpolation image with an accuracy higher than the integer pixel accuracy is created, and the prediction efficiency is improved by using bi-directional prediction in which a prediction value is calculated by an average value or a weighted average of two interpolation images. The method of aiming is common. In the bidirectional prediction method, two unidirectional interpolation images are created, and an average value of the two interpolation images is obtained to create a bidirectional prediction image. For this reason, it is known that a rounding error in determining the average value becomes a problem. There is a technique for reducing a rounding error in the middle of calculation by generating an average after holding a unidirectional interpolation image generation result with a bit length longer than an input pixel bit length when generating a bidirectional prediction interpolation image.
しかしながら、従来技術では、単方向の補間画像を複数生成した上で、複数の補間画像の平均値を求める処理を行うことから、通常の2倍の補間画像生成処理が必要になり、演算量が増加するという問題があった。 However, in the conventional technique, since a plurality of unidirectional interpolation images are generated and an average value of the plurality of interpolation images is calculated, an interpolation image generation process twice as usual is required, and the amount of calculation is large. There was a problem of increasing.
実施形態の画像符号化装置は、動き補償予測部と、補間画像生成部と、符号化部とを備える。動き補償予測部は、参照画像から動きベクトルに基づいて予測される動き補償予測画像を生成する。補間画像生成部は、複数の参照画像に対して生成される複数の動き補償予測画像を補間した双方向予測画像を生成する。符号化部は、入力画像と双方向予測画像との差分を符号化した符号化データを生成する。また、補間画像生成部は、双方向予測画像の第1画素位置の画素値を求めるための複数の動き補償予測画像それぞれの画素位置の組合わせを表す第1組が、予め定められた画素位置の組である特定組に含まれる場合、第1組に含まれる各画素位置の画素値を加算し、加算した画素値を補間することにより第1画素位置の画素値を算出する。 The image coding apparatus according to the embodiment includes a motion compensation prediction unit, an interpolation image generation unit, and a coding unit. The motion compensated prediction unit generates a motion compensated predicted image that is predicted based on the motion vector from the reference image. The interpolation image generation unit generates a bidirectional prediction image obtained by interpolating a plurality of motion compensated prediction images generated for a plurality of reference images. The encoding unit generates encoded data obtained by encoding the difference between the input image and the bidirectional prediction image. The interpolated image generation unit is configured such that a first set representing a combination of pixel positions of a plurality of motion compensated prediction images for obtaining a pixel value of the first pixel position of the bidirectional prediction image is a predetermined pixel position. When the pixel values are included in the specific group, the pixel values at the respective pixel positions included in the first group are added, and the pixel value at the first pixel position is calculated by interpolating the added pixel values.
以下に添付図面を参照して、この発明にかかる画像符号化方法、画像復号方法、画像符号化装置および画像復号装置の好適な実施形態を詳細に説明する。
(第1の実施形態)
第1の実施形態にかかる画像符号化装置および画像復号装置は、双方向予測に用いる2つの参照画像それぞれの画素位置の組が所定の組(特定組)に相当する場合に、先に各画素位置の画素値を加算してから、補間に用いるフィルタのフィルタ係数との乗算を実行する。これにより、補間画像を生成するときの演算数を削減することができる。
Exemplary embodiments of an image encoding method, an image decoding method, an image encoding device, and an image decoding device according to the present invention will be described below in detail with reference to the accompanying drawings.
(First embodiment)
The image encoding device and the image decoding device according to the first embodiment first detect each pixel when a set of pixel positions of two reference images used for bidirectional prediction corresponds to a predetermined set (specific set). After adding the pixel values of the positions, multiplication with the filter coefficient of the filter used for interpolation is executed. Thereby, it is possible to reduce the number of operations when generating the interpolation image.
図1は、第1の実施形態に係わる画像符号化装置600の構成例を示すブロック図である。第1の実施形態の画像符号化装置600は、減算部602と、変換/量子化部603と、逆量子化/逆変換部604と、エントロピー符号化部605と、加算部606と、フレームメモリ部608と、予測画像生成部610と、動きベクトル探索部612と、符号化制御部614と、を備えている。画像符号化装置600は、入力動画像信号601から、符号化データ615を生成する。
FIG. 1 is a block diagram illustrating a configuration example of an
画像符号化装置600には、例えばフレーム単位で入力動画像信号601が入力される。入力動画像信号601は、例えば、マクロブロックといった単位にブロック化される。減算部602は、予測画像生成部610で生成された予測画像信号611と入力動画像信号601との差分である予測誤差信号を出力する。
For example, the input
変換/量子化部603は、予測誤差信号を例えば離散コサイン変換(DCT)などにより直交変換した上で、量子化処理を実行し、量子化変換係数情報を生成する。量子化変換係数情報は、二分岐され、一方は、エントロピー符号化部605に入力される。二分岐された量子化変換係数情報の他方は、逆量子化/逆変換部604に入力される。逆量子化/逆変換部604は、変換/量子化部603の処理と逆の処理として、逆量子化、逆変換の処理を量子化変換係数情報に対して実行し、予測誤差信号を再生する。加算部606は、予測誤差信号と予測画像信号とを加算する。これにより、復号画像信号607が生成される。
The transform /
復号画像信号607は、フレームメモリ部608に入力される。フレームメモリ部608は、復号画像信号607に対してフィルタ処理等を行った後に、予測制御情報507をもとに、予測画像生成部610に入力する参照画像信号609とするために、復号画像信号607を蓄えるかを判定する。
The decoded image signal 607 is input to the frame memory unit 608. The frame memory unit 608 performs a filtering process or the like on the decoded image signal 607, and then uses the decoded
参照画像信号609は、予測画像生成部610に入力されるとともに、動きベクトル探索部612にも入力される。動きベクトル探索部612は、入力動画像信号601と、参照画像信号609とから、動きベクトル情報613を生成する。動きベクトル情報613は、予測画像生成部610に入力されるとともに、エントロピー符号化部605にも送られる。予測画像生成部610は、参照画像信号609と予測制御情報507と動きベクトル情報613とから、予測画像信号611を生成する。
The
符号化制御部614は、変換/量子化部603、予測画像生成部610、および、フレームメモリ部608などの動作を制御する。符号化制御部614によって生成された予測制御情報507は、予測画像生成部610とフレームメモリ部608に入力されるとともに、エントロピー符号化部605にも送られる。エントロピー符号化部605は、変換/量子化部603からの量子化変換係数情報、符号化制御部614からの予測制御情報507、および、動きベクトル探索部612からの動きベクトル情報613などの各種符号化情報をエントロピー符号化して予め決められたシンタクスに従って符号化データを生成する。
The encoding control unit 614 controls operations of the transform /
図2は、画像符号化装置600に対応する画像復号装置700の構成例を示すブロック図である。画像復号装置700は、エントロピー復号化部702と、逆量子化/逆変換部703と、加算部704と、フレームメモリ部706と、予測画像生成部610と、を備える。画像復号装置700は、符号化データ701から再生動画像信号707を生成する。
FIG. 2 is a block diagram illustrating a configuration example of an
エントロピー復号化部702は、予め決められたシンタクスに従って符号化データ701のエントロピー復号化処理を行う。エントロピー復号化部702は、符号化データ701を復号して、量子化変換係数情報と予測制御情報711と動きベクトル情報712とを求める。復号化された量子化変換係数情報は、逆量子化/逆変換部703に入力される。復号化された予測制御情報711および動きベクトル情報712は、予測画像生成部610に入力される。
The
逆量子化/逆変換部703は、量子化変換係数情報に対して逆量子化、逆直交変換処理を行って予測誤差信号を再生する。加算部704は、予測誤差信号と予測画像信号710とを加算して、復号画像信号705を生成する。
The inverse quantization /
復号画像信号705は、フレームメモリ部706に入力される。フレームメモリ部706は、復号画像信号705にフィルタ処理を行って再生動画像信号707として出力する。フレームメモリ部706は、フィルタ処理された復号画像信号705を記憶するかを、予測制御情報711に基づいて判定する。記憶された復号画像信号705は、参照画像信号708として予測画像生成部610に入力される。
The decoded
予測画像生成部610は、参照画像信号708と予測制御情報711と動きベクトル情報712とを用いて、予測画像信号710を生成する。
The predicted
図3は、画像符号化装置600および画像復号装置700に備えられる予測画像生成部610の構成例を示すブロック図である。予測画像生成部610は、スイッチ503と、双方向予測部504と、単方向予測部505と、イントラ予測部506と、を備えている。予測画像生成部610は、参照画像信号502と予測制御情報507と動きベクトル情報508とから、予測画像信号509を生成する。
FIG. 3 is a block diagram illustrating a configuration example of the predicted
予測制御情報507は、例えば、双方向予測部504、単方向予測部505、および、イントラ予測部506のいずれを用いるかを指定する情報を含む。スイッチ503は、この情報を参照して、双方向予測部504、単方向予測部505、および、イントラ予測部506のいずれかを選択するように切り替える。
The
参照画像信号502は、スイッチ503によって選択された、双方向予測部504、単方向予測部505、および、イントラ予測部506のいずれかに入力される。双方向予測部504が選択された場合、双方向予測部504は、複数の参照フレームからの参照画像信号502と、動きベクトル情報508とを用いて、動き補償画像信号を生成し、双方向予測に基づいて予測画像信号509を生成する。単方向予測部505が選択された場合、単方向予測部505は、単一の参照フレームからの参照画像信号502と、動きベクトル情報508とを用いて、動き補償画像信号を生成し、予測画像信号509を生成する。イントラ予測部506が選択された場合、イントラ予測部506は、画面内の参照画像信号502を用いて予測画像信号509を生成する。
The
図4は、第1の実施形態に係わる双方向予測部504の構成例を示すブロック図である。双方向予測部504は、動き補償予測部107と、精度計算部104と、双方向補間画像生成部109と、を備えている。双方向予測部504は、参照画像信号102と動きベクトル情報103とを入力とし、双方向予測画像信号110を出力する。
FIG. 4 is a block diagram illustrating a configuration example of the
動き補償予測部107は、精度計算部104からの整数精度情報105に基づいて、整数画素精度の参照画像信号を参照する。ここで、H.264/AVCにならって、2つの参照画像をリスト0の参照画像とリスト1の参照画像と呼ぶことで区別することにする。本実施形態では、精度計算部104は、動きベクトル103を1/4画素精度とした場合、リストL(Lは0または1)の動きベクトル(mvLX[0],mvLX[1])から、整数精度情報(xInt,yInt)と分数精度情報(xFrac,yFrac)とを、以下の数式により計算する。
xInt=xP+(mvLX[0]>>2)+x
yInt=yP+(mvLX[1]>>2)+y
xFrac=mvLX[0]&3
yFrac=mvLX[1]&3
The motion compensation prediction unit 107 refers to the reference image signal with integer pixel accuracy based on the integer accuracy information 105 from the
xInt = xP + (mvLX [0] >> 2) + x
yInt = yP + (mvLX [1] >> 2) + y
xFrac = mvLX [0] & 3
yFrac = mvLX [1] & 3
なお、動きベクトルの分数精度については、1/4画素精度以外にも1/8画素精度や、1/16画素精度等の他の分数精度でもよく、同様の議論が成り立つ。ここで、動き補償のブロックの左上の基準画素を(xP,yP)とし、ブロック内の画素位置を(x,y)で表現するものとする。 The fractional accuracy of the motion vector may be other fractional accuracy such as 1/8 pixel accuracy or 1/16 pixel accuracy in addition to the 1/4 pixel accuracy, and the same argument holds. Here, the upper left reference pixel of the motion compensation block is (xP, yP), and the pixel position in the block is represented by (x, y).
リスト0とリスト1のそれぞれの整数精度情報(xInt,yInt)は、動き補償予測部107に送られる。動き補償予測部107は、リスト0とリスト1のそれぞれの参照画像信号から必要な範囲の画素データを読み出し、双方向補間画像生成部109に送る。
The integer accuracy information (xInt, yInt) of
双方向補間画像生成部109は、リスト0とリスト1のそれぞれの分数精度情報(xFrac,yFrac)と動き補償予測部107からの整数画素精度の動き補償予測画像108をもとに、双方向予測画像信号110を生成して出力する。
The bidirectional interpolation image generation unit 109 performs bidirectional prediction based on the fractional accuracy information (xFrac, yFrac) of each of
図5は、本実施形態の双方向補間画像生成部109の構成例を示すブロック図である。双方向補間画像生成部109は、スイッチ部201と、第1画像生成部202と、第2画像生成部203と、を備えている。双方向補間画像生成部109は、スイッチ部201で切り替えられる第1画像生成部202と第2画像生成部203のいずれかにより、動き補償予測画像108と分数精度情報106とをもとに双方向予測画像信号110を生成する。
FIG. 5 is a block diagram illustrating a configuration example of the bidirectional interpolation image generation unit 109 of the present embodiment. The bidirectional interpolation image generation unit 109 includes a
ここで、1/4画素精度とした場合の双方向予測部504の分数精度情報の具体的な例を説明する。図6は、分数画素位置の一例を示す図である。図7は、分数画素位置に対応する分数精度情報の一例を示す図である。
Here, a specific example of the fractional accuracy information of the
図6に示すように、a,b,c,d,e,f,g,h,i,j,k,n,p,q,rは、分数画素位置を表している。また、図7に示すように、xFracは、リストLの水平方向の分数画素精度情報を表し、yFracは、リストLの垂直方向の分数画素精度を表している。ここで、xFrac=0、yFrac=0に相当するAがリストLの整数画素位置を表している。 As shown in FIG. 6, a, b, c, d, e, f, g, h, i, j, k, n, p, q, and r represent fractional pixel positions. 7, xFrac represents the fractional pixel accuracy information in the horizontal direction of the list L, and yFrac represents the fractional pixel accuracy in the vertical direction of the list L. Here, A corresponding to xFrac = 0 and yFrac = 0 represents an integer pixel position in the list L.
図8は、1/4画素精度とした場合の動き補償予測部107で参照される整数画素精度の動き補償画像の例を示す図である。AL,x,yは、リストLの整数画素位置x,yの画素値を示す。双方向予測部504は、整数画素位置0,0を基準に、整数画素間の補間画像を生成する。
FIG. 8 is a diagram illustrating an example of a motion compensated image with integer pixel accuracy referred to by the motion compensation prediction unit 107 in the case of 1/4 pixel accuracy. A L, x, y indicates pixel values of integer pixel positions x, y in the list L. The
本実施形態では、1/4画素精度の2次元補間画像を作成することとする。また、FIRフィルタのフィルタ係数をFとすると、以下の数1のような関係が成り立つものとする。なお、1/8画素精度および1/16画素精度でも同様の議論が可能である。また、適用する動画像信号については、輝度信号のみならず、色差信号にも適用可能である。例えば、4:2:0フォーマットの場合、輝度が1/4画素精度ならば、色差信号は1/8画素精度であり、それらは独立或いは、同時に本実施の形態の方式が適用可能である。4:2:2フォーマットの場合、輝度が1/4画素精度ならば、色差信号は垂直方向に1/4画素精度で水平方向に1/8画素精度となり、同様の議論が可能である。
ここで、1/2画素精度用のフィルタ係数の値が補間対象画素位置に対して対称になっていることが分かる。このことから、動き補償予測画像の補間対象画素位置に対して対称な位置に存在する画素位置をまとめて乗算することが可能である。また、1/4画素精度用のフィルタ係数と3/4画素精度用のフィルタ係数は、フィルタ係数を反転させたものになる。このことから、画素精度が3/4の時は、入力される動き補償予測画像の画素位置を画素精度が1/2の画素位置を中心として反転させることで、画素精度が1/4と同じ処理になることが分かる。 Here, it can be seen that the value of the filter coefficient for 1/2 pixel accuracy is symmetric with respect to the interpolation target pixel position. From this, it is possible to multiply together pixel positions existing at positions symmetrical to the interpolation target pixel position of the motion compensated prediction image. The filter coefficient for 1/4 pixel accuracy and the filter coefficient for 3/4 pixel accuracy are obtained by inverting the filter coefficient. Therefore, when the pixel accuracy is 3/4, the pixel accuracy is the same as 1/4 by inverting the pixel position of the input motion compensated prediction image around the pixel position having the pixel accuracy of 1/2. It turns out that it becomes processing.
具体的にN=4、いわゆる8タップのフィルタの例として、以下の数2のようなフィルタ係数を示す。フィルタ係数の精度を表す変数shift0は、6となる。
TL,ZをリストLの画素位置Z(Zは、A,a,b,c,d,e,f,g,h,i,j,k,n,p,q,rのいずれか)の補間画像とする。bipredSamplepredSampleL0,predSampleL1を、リスト0の画素位置predSampleL0と、リスト1の画素位置predSampleL1との組合せの場合の双方向予測画像信号110とする。また、以下のような変数を定義する。BitDepthは、入力動画像信号601の画素ビット長を表す。ここで、“<<”および“>>”は、それぞれ左算術シフトおよび右算術シフトを表すオペレーションである。負の値でシフトする場合は、それぞれシフトの向きを反転して正の値での算術シフトになるものとする。すなわち、例えば“x>>(-2)”は、“x<<2”とする。また、C言語等で用いられている三項演算子を用いる。そして、以下のような変数を定義する。
shift1=BitDepth-8-S
shift2=BitDepth-2-S
shift3=14-BitDepth+S
offset0=
(shift0>0)?(1<<(shift0-1)):0;
offset1=
(shift1>0)?(1<<(shift1-1)):0;
offset2=
(shift2>0)?(1<<(shift2-1)):0;
offset3=
(shift3>0)?(1<<(shift3-1)):0;
TL, Z is the pixel position Z of the list L (Z is any one of A, a, b, c, d, e, f, g, h, i, j, k, n, p, q, r) Interpolated image of bipredSample predSampleL0 and predSampleL1 are the bi-predictive image signals 110 in the case of the combination of the pixel position predSampleL0 in
shift1 = BitDepth-8-S
shift2 = BitDepth-2-S
shift3 = 14-BitDepth + S
offset0 =
(Shift0> 0)? (1 << (shift0-1)): 0;
offset1 =
(Shift1> 0)? (1 << (shift1-1)): 0;
offset2 =
(Shift2> 0)? (1 << (shift2-1)): 0;
offset3 =
(Shift3> 0)? (1 << (shift3-1)): 0;
shift1,shift2,shift3は、演算精度を制御するための変数であり、Sはパラメータである。Sが0の時、16ビット精度に全ての補間処理が収まるようになる。SがBitDepth-2の時、途中の丸め処理による精度落ちがなくなる。offset0,offset1,offset2,offset3は、丸めのためのオフセット値である。なお、Sの値は、第1画像生成部202と第2画像生成部203で異なった値でもかまわない。
Shift1, shift2, and shift3 are variables for controlling calculation accuracy, and S is a parameter. When S is 0, all interpolation processes can be accommodated in 16-bit precision. When S is Bit Depth-2, there is no loss of accuracy due to rounding processing in the middle. offset 0, offset 1, offset 2, offset 3 are offset values for rounding. Note that the value of S may be different between the first
双方向予測画像信号predSampleは、最終的に以下の式(1)で求めることにする。
predSample=clip((bipredSamplepredSampleL0,predSampleL1+(offset3+1))>>(shift3+1)) ・・・(1)
The bidirectional prediction image signal predSample is finally obtained by the following equation (1).
predSample = clip ((bipleSample predSampleL0, predSampleL1 + (offset3 + 1)) >> (shift3 + 1)) (1)
ここで、関数clipは、値を0以上、(1<<BitDepth)-1以下に制限する関数とする。 Here, the function clip is a function that limits the value to 0 or more and (1 << BitDepth) −1 or less.
図9は、スイッチ部201の切り替え条件の一例を示すテーブルである。このテーブルは、リスト0およびリスト1それぞれで、xFracおよびyFracにより示される画素位置(A,a,b,c,d,e,f,g,h,i,j,k,n,p,q,r)の組合わせに応じて、第1画像生成部202か第2画像生成部203のいずれを選択するかを示している。1/4画素精度の例であるため、リスト0とリスト1の画素位置の組合せは、256通り存在する。第1行目がリスト0の画素位置を表し、第1列目がリスト1の画素位置を表すものとする。図9では、値が0ならば、スイッチ部201が第1画像生成部202を選択するように切り替え、値が1ならば、スイッチ部201が第2画像生成部203を選択するように切り替る例を示している。
FIG. 9 is a table showing an example of switching conditions of the
図10は、第1画像生成部202の構成例を示すブロック図である。第1画像生成部202は、リスト0補間部301とリスト1補間部302と加算部303とを備えている。第1画像生成部202は、動き補償予測画像108と、分数精度情報106とを用いて、リスト0とリスト1の補間画像をそれぞれ作成した上で、加算部303でそれらの平均値を計算して、双方向予測画像信号110を作成する。
FIG. 10 is a block diagram illustrating a configuration example of the first
リスト0補間部301は、リスト0の参照画像の補間処理を行うことにより補間画像を生成する。リスト1補間部302は、リスト1の参照画像の補間処理を行うことにより補間画像を生成する。例えば、リスト0補間部301およびリスト1補間部302は、それぞれリスト0の参照画像およびリスト1の参照画像の各画素の画素値を補間した補間値を算出することにより、補間画像を生成する。加算部303は、リスト0の補間画像、および、リスト1の補間画像を加算する。
The
以下は、第1画像生成部202におけるbipredSamplepredSampleL0,predSampleL1の求め方について、式を用いて、具体的な計算方法を説明する。リスト0の補間画像をT0、predSampleL0とし、リスト1の補間画像をT1,predSampleL1とする。bipredSamplepredSampleL0,predSampleL1を以下の各式に示すように計算する。
bipredSamplepredSampleL0,predSampleL1=
T0、predSampleL0+T1,predSampleL1
TL,A=AL,0,0<<shift3
bipredSample predSampleL0, predSampleL1 =
T 0, predSampleL0 + T 1, predSampleL1
T L, A = A L, 0,0 << shift3
図11は、第2画像生成部203の構成例を示すブロック図である。第2画像生成部203は、置換部401と、加算部402と、補間部403とを備えている。第2画像生成部203は、動き補償予測画像108と分数精度情報106から、必要に応じて動き補償予測画像108の画素位置の置換を行い(置換部401)、加算処理を行い(加算部402)、補間処理(補間部403)を行うことで、双方向予測画像信号110を生成する。
FIG. 11 is a block diagram illustrating a configuration example of the second
置換部401は、画素位置の組合せが、画素位置を置換する組合せとして予め定められた組に相当する場合に、当該組に含まれる画素位置を予め定められた画素位置に置換する。置換部401は、例えば、画素精度が1/4および3/4の画素位置の組合せの場合、画素精度が3/4の画素位置を画素精度が1/2の画素位置を中心として反転させる。なお、画素位置を置換させない構成の場合は、置換部401を備えなくてもよい。例えば、フィルタ係数が同一の画素位置の組合せのみを第2画像生成部203の処理対象とする場合は、画素位置の反転等が不要なため、置換部401を備える必要はない。
When the combination of the pixel positions corresponds to a predetermined group as a combination for replacing the pixel position, the
加算部402は、必要に応じて置換された後の画素位置の組合せに含まれる各画素位置の画素値を加算する。補間部403は、加算により得られた画像に対してフィルタを用いた補間処理を行うことにより双方向予測画像信号110を作成する。
The
なお、置換部401、加算部402、および、補間部403を備える構成は一例であり、後述の数6~数33により双方向予測画像信号110を算出可能な構成であれば他の構成としてもよい。
Note that the configuration including the
第2画像生成部203は、第1画像生成部202とは異なり、先に動き補償予測画像108を足し合わせた上で、補間処理を行うことで、演算回数の削減を実現している。
Unlike the first
以下に、第2画像生成部203が、分数精度情報に基づいてbipredSamplepredSampleL0,predSampleL1を算出する具体的な計算方法を示す。
Hereinafter, a specific calculation method in which the second
上述のように例えば図9のテーブルで値が「1」の画素位置の組合せの場合に第2画像生成部203によりbipredSamplepredSampleL0,predSampleL1が算出される。以下の数6~数33の各式は、図9のテーブルで値が「1」の画素位置の組合せそれぞれに対するbipredSamplepredSampleL0,predSampleL1の算出式の一例を表している。
なお、これらの例では、水平方向と垂直方向の双方にフィルタ処理を行う場合、演算回数が変わらない場合は、垂直方向を先に実施し、水平方向を後に実施しているが、その逆であっても同様に実現できる。 In these examples, when filtering is performed both in the horizontal direction and in the vertical direction, if the number of computations does not change, the vertical direction is performed first and the horizontal direction is performed later, but vice versa. Even if it exists, it is realizable similarly.
重み付予測を行う場合は、第1画像生成部202の場合は、H.264/AVC同様に、補間画像に対してリストLの重み係数WLとオフセット係数OLとスケーリングLSを用いて
predSample=clip((W0×T0、predSampleL0+W1×T1,predSampleL1+(offset3+LS+2))>>(shift3+LS+2)+((O0+O1+1)>>1))
のような重み付の予測画像を作成する。または、以下の式(2)で表される重み付の補間画像TWL,predSampleLxを作成した上で、以下の式(3)を式(1)に代入して重み付の予測画像を作成する。
TWL, predSampleLx=
(WL×TL、predSampleLx+(1<<(LS-1)))>>LS+OL ・・・(2)
bipredSamplepredSampleL0,predSampleL1=(TW0, predSampleL0+TW1, predSampleL1) ・・・(3)
In the case of performing the weighted prediction, in the case of the first
A weighted prediction image is created. Alternatively , a weighted interpolation image TW L, predSampleLx represented by the following equation (2) is created, and the following equation (3) is substituted into equation (1) to create a weighted prediction image. .
TW L, predSampleLx =
(W L × T L, predSampleLx + (1 << (LS-1))) >> LS + O L ··· (2)
bipredSample predSampleL0, predSampleL1 = (TW 0, pred Sample L0 + TW 1, pred Sample L1 ) (3)
第2画像生成部203の場合は、整数画素Ax,yに対して予め、
AWL,x,y=WL×AL,x,y
と重み係数をかけて重み付の整数画素値AWL,x,yを生成した上で、第2画像生成部203で生成した画像bipredSamplepredSampleL0,predSampleL1を、
predSample=clip((bipredSamplepredSampleL0,predSampleL1+(offset3+LS+2))>>(shift3+LS+2)+((O0+O1+1)>>1))
のようにして重み付の予測画像を作成する。または、予め整数画素Aに対して、
AWL,x,y=(WL×AL,x,y+(1<<(LS-1)))>>LS+OL
のような重み付の整数画素値AWL,x,yを作成した上で、第2画像生成部203で生成した画像bipredSamplepredSampleL0,predSampleL1を、式(1)に代入して重み付の予測画像を作成する。
In the case of the second
AW L, x, y = W L × A L, x, y
And weighted integer pixel values AWL , x, y are generated, and then the images bipleSample predSampleL0 and predSampleL1 generated by the second
predSample = clip ((bipleSample predSampleL0, predSampleL1 + (offset3 + LS + 2)) >> (shift3 + LS + 2) + ((O 0 + O 1 +1) >> 1)
Thus, a weighted prediction image is created. Or, for integer pixel A in advance,
AW L, x, y = (W L × A L, x, y + (1 << (LS-1))) >> LS + OL
The weighted integer pixel values AWL , x, y are generated, and the image bipleSample predSampleL0 and predSampleL1 generated by the second
次に、第1の実施形態にかかる画像符号化装置600による補間画像生成処理について図12を用いて説明する。図12は、第1の実施形態における補間画像生成処理の全体の流れを示すフローチャートである。
Next, interpolation image generation processing by the
動き補償予測部107は、精度計算部104により算出される整数精度情報にしたがい、リスト0とリスト1のそれぞれの参照画像信号から整数画素精度の画像信号を読み出す(ステップS101)。動き補償予測部107は、読み出した画像信号を、整数画素精度の動き補償予測画像108として双方向補間画像生成部109に出力する。
The motion compensation prediction unit 107 reads out image signals with integer pixel accuracy from the reference image signals of
双方向補間画像生成部109は、精度計算部104により算出されるリスト0とリスト1のそれぞれの分数精度情報(xFrac,yFrac)を入力する(ステップS102)。双方向補間画像生成部109は、リスト0およびリスト1の分数精度情報に対応する画素位置の組合せに基づき、第2画像生成部203を用いるか否かを判断する(ステップS103)。
The bidirectional interpolation image generation unit 109 inputs the fractional accuracy information (xFrac, yFrac) of the
例えば、双方向補間画像生成部109は、分数精度情報に対応する画素位置を、リスト0およびリスト1それぞれについて求める。分数精度情報(xFrac,yFrac)=(1,1)の場合、双方向補間画像生成部109は、図7に示すように、画素位置が「e」であることを特定できる。次に、双方向補間画像生成部109は、リスト0について求めた画素位置と、リスト1について求めた画素位置との組合せが、予め定められた組合せ(特定組)であるか否かを判断する。双方向補間画像生成部109は、例えば図9のテーブルで値が「1」である画素位置の組合せを特定組として、上記判断を行う。そして、リスト0について求めた画素位置と、リスト1について求めた画素位置との組合せが、特定組の場合、双方向補間画像生成部109は、第2画像生成部203を用いると判断する。特定組でない場合、双方向補間画像生成部109は、第1画像生成部202を用いると判断する。
For example, the bidirectional interpolated image generation unit 109 obtains pixel positions corresponding to the fractional accuracy information for each of the
第1画像生成部202を用いる場合(ステップS103:No)、第1画像生成部202のリスト0補間部301が、リスト0の補間画像を作成し、第1画像生成部202のリスト1補間部302が、リスト1の補間画像を作成する(ステップS104)。次に、加算部303が、リスト0の補間画像とリスト1の補間画像とを加算することにより、双方向予測画像信号110を作成して出力する(ステップS105)。
When the first
第2画像生成部203を用いる場合(ステップS103:Yes)、第2画像生成部203は、数6~数33にしたがい双方向予測画像信号110を作成する(ステップS106~ステップS107)。
When the second
まず、置換部401は、画素位置の組合せが、画素位置を置換する組合せとして予め定められた組に相当する場合に、当該組に含まれる画素位置を予め定められた画素位置に置換する。加算部402は、リスト0に対する動き補償予測画像108の画素値と、リスト1に対する動き補償予測画像の画素値とを加算する(ステップS106)。補間部403は、加算により得られた画像に対してフィルタを用いた補間処理を行い、双方向予測画像信号110を作成して出力する(ステップS107)。
First, when the combination of pixel positions corresponds to a predetermined group as a combination for replacing a pixel position, the
以上のように、本実施形態では、2つの参照画像の画素位置の組合せが特定の条件を満たす場合に、画素値を加算してからフィルタ処理を実行することができる。したがって、リスト0とリスト1で独立に補間画像を作成してから、平均値を作成する従来の方法と比較すると、本実施形態では、フィルタ処理における乗算数、および、演算精度を制限するためのクリッピング処理等の演算数を削減することができる。すなわち、効率的に双方向補間画像生成処理を実現できる。
As described above, in this embodiment, when the combination of the pixel positions of the two reference images satisfies a specific condition, the filter processing can be executed after adding the pixel values. Therefore, compared with the conventional method of creating an average value after creating an interpolation image independently in
図13は、N=4とした場合の、第1の実施形態による一画素あたりの乗算回数を示した図である。図14は、N=4とした場合の、従来の方法(全ての補間画素を第1画像生成部202で算出する方法)による一画素あたりの乗算回数を示した図である。 FIG. 13 is a diagram showing the number of multiplications per pixel according to the first embodiment when N = 4. FIG. 14 is a diagram showing the number of multiplications per pixel by a conventional method (a method in which all the interpolated pixels are calculated by the first image generation unit 202) when N = 4.
図13に示すように、本実施形態を適用した場合は、乗算回数は最大104回となり、乗算回数の平均は51.92回となる。一方、図14に示すように、従来の方法を適用した場合は、乗算回数は最大144回となり、乗算回数の平均は62.5回となる。 As shown in FIG. 13, when this embodiment is applied, the maximum number of multiplications is 104, and the average number of multiplications is 51.92. On the other hand, as shown in FIG. 14, when the conventional method is applied, the maximum number of multiplications is 144, and the average number of multiplications is 62.5.
このように、第1の実施形態にかかる画像符号化装置では、双方向予測に用いる2つの参照画像それぞれの画素位置の組が特定組に相当する場合に、先に各画素位置の画素値を加算してからフィルタ係数との乗算を実行する。これにより、双方向予測の演算量を削減することができる。 As described above, in the image encoding device according to the first embodiment, when the set of pixel positions of each of the two reference images used for bidirectional prediction corresponds to a specific set, the pixel value of each pixel position is first determined. After the addition, multiplication with the filter coefficient is executed. Thereby, the calculation amount of bidirectional prediction can be reduced.
なお、第2画像生成部203を適用する分数精度情報の組合せは、上記の組合せのうち一部でもよい。すなわち、例えば上記の数6~数33のうち一部の式を用いるように構成してもよい。この場合であっても、少なくとも第2画像生成部203を適用する組合せに対しては演算量を削減可能となる。
The combination of fractional accuracy information to which the second
(第2の実施形態)
第2の実施形態にかかる画像符号化装置および画像復号装置は、第1画像生成部による計算量をさらに削減する。第2の実施形態の第1画像生成部は、計算量の多い画素位置の場合にタップ長の短い(小さい)フィルタを用いる。
(Second Embodiment)
The image encoding device and the image decoding device according to the second embodiment further reduce the amount of calculation by the first image generation unit. The first image generation unit of the second embodiment uses a filter with a short (small) tap length in the case of a pixel position with a large calculation amount.
例えば、第1の実施形態の第1画像生成部202では、リスト0およびリスト1の分数精度情報の組合せが、f,i,k,qと、e,g,p,rとの組合せになっている場合の32通りが、最悪の乗算回数(144回、図14参照)になる。そこで、第2の実施形態の第1画像生成部は、e,g,p,rの画素位置の補間画像を算出するときに、N’<Nとなる短いタップ長のフィルタを用いる。以下の数34は、リストLのe,g,p,rの画素位置の補間画像T’L,e、T’L,g、T’L,p、T’L,rを算出する式を表す。
図15は、第2の実施形態による一画素あたりの乗算回数を示した図である。N=4、N’=3の場合は、最悪104回の乗算回数が必要だった部分が、78回の乗算回数になる。256通りの平均で、48.67回になり、第1の実施形態からさらに約3回、乗算回数を減少させることができる。なお、本実施形態では、f,i,k,qと、e,g,p,rの組合せの場合の32通りに適用したが、これらの一部、または別の組合せでもよい。例えば、これに加えて、例えば図15で92回の乗算回数であるjと、e,g,p,rの組合せの場合の8通りも含めてもよい。あるいは、いずれにせよ演算数の多い、リスト0とリスト1のe,f,g,i,k,p,q,rの組合せの全てあるいは一部に対して、N’を適用してもよい。
FIG. 15 is a diagram showing the number of multiplications per pixel according to the second embodiment. In the case of N = 4 and N ′ = 3, the portion that required the worst 104 multiplications becomes 78 multiplications. The average of 256 patterns is 48.67, and the number of multiplications can be further reduced by about 3 times from the first embodiment. In the present embodiment, 32 types of combinations of f, i, k, q and e, g, p, r are applied, but a part of these or another combination may be used. For example, in addition to this, for example, eight combinations of j, which is the number of multiplications of 92 times in FIG. 15, and e, g, p, r may be included. Alternatively, N ′ may be applied to all or part of the combinations of e, f, g, i, k, p, q, and r in
(第3の実施形態)
第3の実施形態にかかる画像符号化装置および画像復号装置は、計算量の多い画素位置の場合に、リスト0とリスト1が同一の分数精度になるように近似することにより、第2画像生成部203による双方向予測画像の生成を可能とする。
(Third embodiment)
The image encoding device and the image decoding device according to the third embodiment perform the second image generation by approximating the
上述のように、リスト0およびリスト1の分数精度情報の組合せが、f,i,k,qと、e,g,p,rとの組合せになっている場合の32通りが、最悪の乗算回数になる。そこで、第3の実施形態では、例えば、リスト0がfの位置であるxFrac=1/2、yFrac=1/4と、リスト1がeの位置であるxFrac=1/4,yFrac=1/4の組合せの場合は、両者をそれぞれxFrac=3/8,yFrac=1/4に近似する。この場合、新たに3/8画素精度の補間画像を生成するための以下の式で表されるフィルタを導入する。
F3/8,x=F5/8,-x+1 (x=-N+1,・・・,N)
As described above, the worst multiplication is performed when 32 combinations of the fractional accuracy information of
F 3/8 , x = F 5/8, −x + 1 (x = −N + 1,..., N)
具体的には、f,i,k,qと、e,g,p,rの組合せの32通りに対して、以下の数35~数37に示すような予測式を導入する。
図16は、第3の実施形態による一画素あたりの乗算回数を示した図である。上記予測式を導入することで、N=4の場合、これまで最悪104回の乗算回数が必要だった部分が、72回または40回または36回の乗算回数になる。256通りの平均で、45.80回になり、第1の実施形態からさらに約6回減らせる。なお、この実施形態では、f,i,k,qと、e,g,p,rの組合せの場合の32通りに適用したが、これらの一部、または別の組合せでもよい。例えば、これに加えて、図16で92回の乗算回数であるjと、e,g,p,rとの組合せの場合の8通りも含めてもよい。 FIG. 16 is a diagram showing the number of multiplications per pixel according to the third embodiment. By introducing the above prediction formula, in the case of N = 4, the portion where the worst 104 times of multiplication has been necessary so far becomes 72, 40 or 36 times. The average of 256 is 45.80 times, which can be further reduced by about 6 times from the first embodiment. In this embodiment, 32 combinations of f, i, k, q and e, g, p, r are applied, but some or a combination of these may be used. For example, in addition to this, eight types of combinations of j, which is the number of multiplications of 92 times in FIG. 16, and e, g, p, r may be included.
(第4の実施形態)
第4の実施形態にかかる画像符号化装置および画像復号装置は、計算量の多い画素位置の場合に、リスト0とリスト1が同一の分数精度となる画素位置に置き換えることにより、第2画像生成部203による双方向予測画像の生成を可能とする。
(Fourth embodiment)
The image encoding device and the image decoding device according to the fourth embodiment generate a second image by replacing
具体的には、第1画像生成部202が算出すべき
bipredSamplee,k
bipredSamplek,e
bipredSampleg,i
bipredSamplei,g
bipredSamplee,q
bipredSampleq,e
bipredSamplef,p
bipredSamplep,f
bipredSamplef,r
bipredSampler,f
bipredSampleg,q
bipredSampleq,g
bipredSamplei,r
bipredSampler,i
bipredSamplek,p
bipredSamplep,k
の16通りを、第2画像生成部203の場合のbipredSamplej,jに置き換える。
Specifically, bipred Sample e, k to be calculated by the first
bipredSample k, e
bipredSample g, i
bipredSample i, g
bipred Sample e, q
bipred Sample q, e
bipredSample f, p
bipred Sample p, f
bipred Sample f, r
bipredSample r, f
bipred Sample g, q
bipred Sample q, g
bipredSample i, r
bipredSample r, i
bipredSample k, p
bipred Sample p, k
Are replaced with bipreted Sample j, j in the case of the second
また、第1画像生成部202が算出すべき
bipredSamplee,f
bipredSamplef,e
bipredSamplee,i
bipredSamplei,e
の4通りを、第2画像生成部203の場合のbipredSamplee,eに置き換える。
In addition, bipred Sample e, f to be calculated by the first
bipred Sample f, e
bipred Sample e, i
bipredSample i, e
Are replaced with bipreted Sample e, e in the case of the second
また、第1画像生成部202が算出すべき
bipredSamplef,g
bipredSampleg,f
bipredSampleg,k
bipredSamplek,g
の4通りを、第2画像生成部203の場合のbipredSampleg,gに置き換える。
In addition, bipred Sample f, g to be calculated by the first
bipred Sample g, f
bipredSample g, k
bipredSample k, g
Are replaced with bipred Sample g, g in the case of the second
また、第1画像生成部202が算出すべき
bipredSamplei,p
bipredSamplep,i
bipredSamplep,q
bipredSampleq,p
の4通りを、第2画像生成部203の場合のbipredSamplep,pに置き換える。
In addition, bipredSample i, p to be calculated by the first
bipred Sample p, i
bipred Sample p, q
bipred Sample q, p
Are replaced with bisampleSample p, p in the case of the second
また、第1画像生成部202が算出すべき
bipredSamplek,r
bipredSampler,k
bipredSampleq,r
bipredSampler,q
の4通りを、第2画像生成部203の場合のbipredSampler,rに置き換える。
In addition, bipred Sample k, r to be calculated by the first
bipredSample r, k
bipred Sample q, r
bipred Sample r, q
Are replaced with bisampled r, r in the case of the second
図17は、第4の実施形態による一画素あたりの乗算回数を示した図である。本実施形態では、N=4の場合、これまで最悪96回の乗算回数が必要だった部分が、16回または64回の乗算回数になる。256通りの平均で、約44.80回になり、第1の実施形態からさらに約7回減らせる。 FIG. 17 is a diagram showing the number of multiplications per pixel according to the fourth embodiment. In this embodiment, in the case of N = 4, the portion where the worst 96 times of multiplication is necessary is 16 or 64 times. The average of 256 ways is about 44.80 times, which can be further reduced about 7 times from the first embodiment.
なお、この実施形態では、f,i,k,qと、e,g,p,rの組合せの場合の32通りに適用したが、これらの一部、または別の組合せでもよい。例えば、これに加えて、図17で92回の乗算回数のjと、e,g,p,rの組合せの場合8通りを含め、これらの8通りを全てbipredSamplej,jに置き換えてもよい。または、これらの8通りのうち、e,g,p,rを含む組合せをそれぞれbipredSamplee,e,bipredSampleg,g,bipredSamplep,p,bipredSampler,rに置き換えてもよい。 In this embodiment, 32 combinations of f, i, k, q and e, g, p, r are applied, but some or a combination of these may be used. For example, in addition to this, in the case of a combination of 92 times of multiplication and e, g, p, and r in FIG. 17, all eight of these may be replaced with bipledSample j, j. . Alternatively, among these eight types , combinations including e, g, p, and r may be replaced with bisampled sample e, e , bipreded sample g, g , bipreded sample p, p , bipreded sample r, r , respectively.
以上説明したとおり、第1から第4の実施形態によれば、補間画像を生成するときの演算数を削減することができる。 As described above, according to the first to fourth embodiments, the number of operations when generating an interpolation image can be reduced.
次に、第1~第4の実施形態にかかる装置(画像符号化装置および画像復号装置)のハードウェア構成について図18を用いて説明する。図18は、第1~第4の実施形態にかかる装置のハードウェア構成を示す説明図である。 Next, the hardware configuration of the devices (image encoding device and image decoding device) according to the first to fourth embodiments will be described with reference to FIG. FIG. 18 is an explanatory diagram showing the hardware configuration of the devices according to the first to fourth embodiments.
第1~第4の実施形態にかかる装置は、CPU(CentrAL Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
The devices according to the first to fourth embodiments are connected to a control device such as a CPU (CentrAL Processing Unit) 51, a storage device such as a ROM (Read Only Memory) 52 and a RAM (Random Access Memory) 53, and a network. A communication I /
第1~第4の実施形態にかかる装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
The program executed by the devices according to the first to fourth embodiments is provided by being incorporated in advance in the
第1~第4の実施形態にかかる装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(DigitAL Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。 The program executed by the apparatus according to the first to fourth embodiments is a file in an installable or executable format and is a CD-ROM (Compact Disk Read Only Memory), a flexible disk (FD), a CD-R. (Compact Disk Recordable), DVD (DigitAL Versatile Disk), etc. may be recorded on a computer-readable recording medium and provided as a computer program product.
さらに、第1~第4の実施形態にかかる装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1~第4の実施形態にかかる装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。 Furthermore, the program executed by the apparatuses according to the first to fourth embodiments may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. . The program executed by the devices according to the first to fourth embodiments may be provided or distributed via a network such as the Internet.
第1~第4の実施形態にかかる装置で実行されるプログラムは、コンピュータを上述した装置の各部(動き補償予測部、双方向補間画像生成部、精度計算部等)として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
The program executed by the devices according to the first to fourth embodiments can cause the computer to function as each unit (motion compensation prediction unit, bidirectional interpolation image generation unit, accuracy calculation unit, etc.) of the above-described device. In this computer, the
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
104 精度計算部
106 分数精度情報
107 動き補償予測部
108 動き補償予測画像
109 双方向補間画像生成部
110 双方向予測画像信号
201 スイッチ部
202 第1画像生成部
203 第2画像生成部
301 リスト0補間部
302 リスト1補間部
303 加算部
401 置換部
402 加算部
403 補間部
502 参照画像信号
503 スイッチ
504 双方向予測部
505 単方向予測部
506 イントラ予測部
507 予測制御情報
508 動きベクトル情報
509 予測画像信号
600 画像符号化装置
601 入力動画像信号
602 減算部
603 変換/量子化部
604 逆量子化/逆変換部
605 エントロピー符号化部
606 加算部
607 復号画像信号
608 フレームメモリ部
609 参照画像信号
610 予測画像生成部
611 予測画像信号
612 動きベクトル探索部
613 動きベクトル情報
614 符号化制御部
615 符号化データ
700 画像復号装置
701 符号化データ
702 エントロピー復号化部
703 逆量子化/逆変換部
704 加算部
705 復号画像信号
706 フレームメモリ部
707 再生動画像信号
708 参照画像信号
710 予測画像信号
711 予測制御情報
712 動きベクトル情報
104
Claims (18)
複数の前記参照画像に対して生成される複数の前記動き補償予測画像を補間した双方向予測画像を生成する補間画像生成ステップと、
入力画像と前記双方向予測画像との差分を符号化した符号化データを生成する符号化ステップと、を含み、
前記補間画像生成ステップは、前記双方向予測画像の第1画素位置の画素値を求めるための複数の前記動き補償予測画像それぞれの画素位置の組合わせを表す第1組が、予め定められた画素位置の組である特定組に含まれる場合、前記第1組に含まれる各画素位置の画素値を加算し、加算した画素値を補間することにより前記第1画素位置の画素値を算出すること、
を特徴とする画像符号化方法。 A motion compensated prediction step for generating a motion compensated prediction image predicted based on a motion vector from a reference image;
An interpolated image generation step of generating a bi-directional prediction image obtained by interpolating the plurality of motion compensation prediction images generated for the plurality of reference images;
An encoding step for generating encoded data obtained by encoding the difference between the input image and the bidirectional prediction image,
In the interpolation image generation step, a first set representing a combination of pixel positions of a plurality of motion compensated prediction images for obtaining a pixel value of a first pixel position of the bidirectional prediction image is a predetermined pixel. When included in a specific set which is a set of positions, the pixel value of each pixel position included in the first set is added, and the pixel value of the first pixel position is calculated by interpolating the added pixel value ,
An image encoding method characterized by the above.
を特徴とする請求項1に記載の画像符号化方法。 When the first set is not included in the specific set, the interpolation image generation step calculates an interpolation value obtained by interpolating the pixel value for each pixel value of each pixel position included in the first set, and the interpolation Calculating a pixel value of the first pixel position by adding the values;
The image encoding method according to claim 1, wherein:
を特徴とする請求項2に記載の画像符号化方法。 In the interpolation image generation step, when the first set is not included in the specific set, the tap length of at least some of the filters used for calculating the interpolation value is made smaller than other filters.
The image encoding method according to claim 2.
を特徴とする請求項2に記載の画像符号化方法。 In the interpolation image generation step, when the first set is not included in the specific set, the first set is replaced with one of the specific sets determined in advance according to the first set. Calculating the pixel value of the first pixel position by adding the pixel values of each pixel position included in the specific set and interpolating the added pixel values;
The image encoding method according to claim 2.
を特徴とする請求項1に記載の画像符号化方法。 The specific set is a set of pixel positions having the same fractional precision;
The image encoding method according to claim 1, wherein:
前記補間画像生成ステップは、前記第1組が前記特定組に含まれる場合、前記第1組に含まれる画素位置のうち一方の画素位置を前記第1画素位置に対して反転させた画素位置の画素値と、前記第1組に含まれる画素位置のうち他方の画素位置の画素値と、を加算し、加算した画素値を補間することにより前記第1画素位置の画素値を算出すること、
を特徴とする請求項1に記載の画像符号化方法。 The specific set is a set of pixel positions whose fractional accuracy is symmetric with respect to 1/2,
In the interpolation image generation step, when the first set is included in the specific set, one of the pixel positions included in the first set is inverted with respect to the first pixel position. Adding the pixel value and the pixel value of the other pixel position among the pixel positions included in the first set, and calculating the pixel value of the first pixel position by interpolating the added pixel value;
The image encoding method according to claim 1, wherein:
前記補間画像生成ステップは、前記第1組が前記特定組に含まれる場合、前記第1組に含まれる各画素位置の画素値と、前記第1組に含まれる各画素位置と同一のフィルタ係数を用いる画素位置の画素値と、を加算し、加算した画素値を補間することにより前記第1画素位置の画素値を算出すること、
を特徴とする請求項1に記載の画像符号化方法。 The specific set is a set of pixel positions whose fractional accuracy is ½,
In the interpolation image generation step, when the first set is included in the specific set, the pixel value of each pixel position included in the first set and the same filter coefficient as each pixel position included in the first set Calculating the pixel value at the first pixel position by interpolating the pixel value at the pixel position using
The image encoding method according to claim 1, wherein:
前記補間画像生成ステップは、前記第1組が前記特定組に含まれる場合、前記第1組に含まれる各画素位置の分数精度を補間して同一の値に変更し、分数精度を変更した各画素位置の画素値を加算し、加算した画素値を、変更した分数精度に応じて定められたフィルタ係数のフィルタを用いて補間することにより前記第1画素位置の画素値を算出すること、
を特徴とする請求項1に記載の画像符号化方法。 The specific set is a set of pixel positions with different fractional accuracy,
In the interpolation image generation step, when the first set is included in the specific set, the fractional accuracy of each pixel position included in the first set is interpolated and changed to the same value, and the fractional accuracy is changed. Calculating the pixel value of the first pixel position by adding the pixel values of the pixel positions and interpolating the added pixel values using a filter having a filter coefficient determined according to the changed fractional accuracy;
The image encoding method according to claim 1, wherein:
複数の前記参照画像に対して生成される複数の前記動き補償予測画像を補間した双方向予測画像を生成する補間画像生成ステップと、
入力画像と前記双方向予測画像との差分を符号化した符号化データから前記差分を復号し、復号した前記差分と前記双方向予測画像とに基づいて前記入力画像を生成する復号化ステップと、を含み、
前記補間画像生成ステップは、前記双方向予測画像の第1画素位置の画素値を求めるための複数の前記動き補償予測画像それぞれの画素位置の組合わせを表す第1組が、予め定められた画素位置の組である特定組に含まれる場合、前記第1組に含まれる各画素位置の画素値を加算し、加算した画素値を補間することにより前記第1画素位置の画素値を算出すること、
を特徴とする画像復号方法。 A motion compensated prediction step for generating a motion compensated prediction image predicted based on a motion vector from a reference image;
An interpolated image generation step of generating a bi-directional prediction image obtained by interpolating the plurality of motion compensation prediction images generated for the plurality of reference images;
A decoding step of decoding the difference from encoded data obtained by encoding a difference between the input image and the bidirectional prediction image, and generating the input image based on the decoded difference and the bidirectional prediction image; Including
In the interpolation image generation step, a first set representing a combination of pixel positions of a plurality of motion compensated prediction images for obtaining a pixel value of a first pixel position of the bidirectional prediction image is a predetermined pixel. When included in a specific set which is a set of positions, the pixel value of each pixel position included in the first set is added, and the pixel value of the first pixel position is calculated by interpolating the added pixel value ,
An image decoding method characterized by the above.
を特徴とする請求項9に記載の画像復号方法。 When the first set is not included in the specific set, the interpolation image generation step calculates an interpolation value obtained by interpolating the pixel value for each pixel value of each pixel position included in the first set, and the interpolation Calculating a pixel value of the first pixel position by adding the values;
The image decoding method according to claim 9.
を特徴とする請求項10に記載の画像復号方法。 In the interpolation image generation step, when the first set is not included in the specific set, the tap length of at least some of the filters used for calculating the interpolation value is made smaller than other filters.
The image decoding method according to claim 10.
を特徴とする請求項10に記載の画像復号方法。 In the interpolation image generation step, when the first set is not included in the specific set, the first set is replaced with one of the specific sets determined in advance according to the first set. Calculating the pixel value of the first pixel position by adding the pixel values of each pixel position included in the specific set and interpolating the added pixel values;
The image decoding method according to claim 10.
を特徴とする請求項9に記載の画像復号方法。 The specific set is a set of pixel positions having the same fractional precision;
The image decoding method according to claim 9.
前記補間画像生成ステップは、前記第1組が前記特定組に含まれる場合、前記第1組に含まれる画素位置のうち一方の画素位置を前記第1画素位置に対して反転させた画素位置の画素値と、前記第1組に含まれる画素位置のうち他方の画素位置の画素値と、を加算し、加算した画素値を補間することにより前記第1画素位置の画素値を算出すること、
を特徴とする請求項9に記載の画像復号方法。 The specific set is a set of pixel positions whose fractional accuracy is symmetric with respect to 1/2,
In the interpolation image generation step, when the first set is included in the specific set, one of the pixel positions included in the first set is inverted with respect to the first pixel position. Adding the pixel value and the pixel value of the other pixel position among the pixel positions included in the first set, and calculating the pixel value of the first pixel position by interpolating the added pixel value;
The image decoding method according to claim 9.
前記補間画像生成ステップは、前記第1組が前記特定組に含まれる場合、前記第1組に含まれる各画素位置の画素値と、前記第1組に含まれる各画素位置と同一のフィルタ係数を用いる画素位置の画素値と、を加算し、加算した画素値を補間することにより前記第1画素位置の画素値を算出すること、
を特徴とする請求項9に記載の画像復号方法。 The specific set is a set of pixel positions whose fractional accuracy is ½,
In the interpolation image generation step, when the first set is included in the specific set, the pixel value of each pixel position included in the first set and the same filter coefficient as each pixel position included in the first set Calculating the pixel value at the first pixel position by interpolating the pixel value at the pixel position using
The image decoding method according to claim 9.
前記補間画像生成ステップは、前記第1組が前記特定組に含まれる場合、前記第1組に含まれる各画素位置の分数精度を補間して同一の値に変更し、分数精度を変更した各画素位置の画素値を加算し、加算した画素値を、変更した分数精度に応じて定められたフィルタ係数のフィルタを用いて補間することにより前記第1画素位置の画素値を算出すること、
を特徴とする請求項9に記載の画像復号方法。 The specific set is a set of pixel positions with different fractional accuracy,
In the interpolation image generation step, when the first set is included in the specific set, the fractional accuracy of each pixel position included in the first set is interpolated and changed to the same value, and the fractional accuracy is changed. Calculating the pixel value of the first pixel position by adding the pixel values of the pixel positions and interpolating the added pixel values using a filter having a filter coefficient determined according to the changed fractional accuracy;
The image decoding method according to claim 9.
複数の前記参照画像に対して生成される複数の前記動き補償予測画像を補間した双方向予測画像を生成する補間画像生成部と、
入力画像と前記双方向予測画像との差分を符号化した符号化データを生成する符号化部と、を備え、
前記補間画像生成部は、前記双方向予測画像の第1画素位置の画素値を求めるための複数の前記動き補償予測画像それぞれの画素位置の組合わせを表す第1組が、予め定められた画素位置の組である特定組に含まれる場合、前記第1組に含まれる各画素位置の画素値を加算し、加算した画素値を補間することにより前記第1画素位置の画素値を算出すること、
を特徴とする画像符号化装置。 A motion-compensated prediction unit that generates a motion-compensated prediction image that is predicted based on a motion vector from a reference image;
An interpolated image generating unit that generates a bi-directional prediction image obtained by interpolating the plurality of motion compensation prediction images generated for the plurality of reference images;
An encoding unit that generates encoded data obtained by encoding the difference between the input image and the bidirectional prediction image,
In the interpolation image generation unit, a first set representing a combination of pixel positions of a plurality of motion compensated prediction images for obtaining a pixel value of a first pixel position of the bidirectional prediction image is a predetermined pixel. When included in a specific set which is a set of positions, the pixel value of each pixel position included in the first set is added, and the pixel value of the first pixel position is calculated by interpolating the added pixel value ,
An image encoding device characterized by the above.
複数の前記参照画像に対して生成される複数の前記動き補償予測画像を補間した双方向予測画像を生成する補間画像生成部と、
入力画像と前記双方向予測画像との差分を符号化した符号化データから前記差分を復号し、復号した前記差分と前記双方向予測画像とに基づいて前記入力画像を生成する復号化部と、を備え、
前記補間画像生成部は、前記双方向予測画像の第1画素位置の画素値を求めるための複数の前記動き補償予測画像それぞれの画素位置の組合わせを表す第1組が、予め定められた画素位置の組である特定組に含まれる場合、前記第1組に含まれる各画素位置の画素値を加算し、加算した画素値を補間することにより前記第1画素位置の画素値を算出すること、
を特徴とする画像復号装置。 A motion-compensated prediction unit that generates a motion-compensated prediction image that is predicted based on a motion vector from a reference image;
An interpolated image generating unit that generates a bi-directional prediction image obtained by interpolating the plurality of motion compensation prediction images generated for the plurality of reference images;
A decoding unit that decodes the difference from encoded data obtained by encoding a difference between the input image and the bidirectional prediction image, and generates the input image based on the decoded difference and the bidirectional prediction image; With
In the interpolation image generation unit, a first set representing a combination of pixel positions of a plurality of motion compensated prediction images for obtaining a pixel value of a first pixel position of the bidirectional prediction image is a predetermined pixel. When included in a specific set which is a set of positions, the pixel value of each pixel position included in the first set is added, and the pixel value of the first pixel position is calculated by interpolating the added pixel value ,
An image decoding apparatus characterized by the above.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2011/063720 WO2012172659A1 (en) | 2011-06-15 | 2011-06-15 | Image encoding method, image decoding method, image encoding apparatus, and image decoding apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2011/063720 WO2012172659A1 (en) | 2011-06-15 | 2011-06-15 | Image encoding method, image decoding method, image encoding apparatus, and image decoding apparatus |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2012172659A1 true WO2012172659A1 (en) | 2012-12-20 |
Family
ID=47356686
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2011/063720 Ceased WO2012172659A1 (en) | 2011-06-15 | 2011-06-15 | Image encoding method, image decoding method, image encoding apparatus, and image decoding apparatus |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2012172659A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9135717B2 (en) | 2011-11-08 | 2015-09-15 | Kabushiki Kaisha Toshiba | Image coding method, image decoding method, image coding apparatus, and image decoding apparatus |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007235456A (en) * | 2006-02-28 | 2007-09-13 | Toshiba Corp | Moving picture decoding apparatus and moving picture decoding method |
| JP2011035569A (en) * | 2009-07-30 | 2011-02-17 | Fujitsu Ltd | Motion vector detection device, and motion vector detection method |
| JP2011061320A (en) * | 2009-09-07 | 2011-03-24 | Sony Corp | Motion compensation apparatus, encoder, decoder, and processing method and program therefor |
-
2011
- 2011-06-15 WO PCT/JP2011/063720 patent/WO2012172659A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007235456A (en) * | 2006-02-28 | 2007-09-13 | Toshiba Corp | Moving picture decoding apparatus and moving picture decoding method |
| JP2011035569A (en) * | 2009-07-30 | 2011-02-17 | Fujitsu Ltd | Motion vector detection device, and motion vector detection method |
| JP2011061320A (en) * | 2009-09-07 | 2011-03-24 | Sony Corp | Motion compensation apparatus, encoder, decoder, and processing method and program therefor |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9135717B2 (en) | 2011-11-08 | 2015-09-15 | Kabushiki Kaisha Toshiba | Image coding method, image decoding method, image coding apparatus, and image decoding apparatus |
| US9672633B2 (en) | 2011-11-08 | 2017-06-06 | Kabushiki Kaisha Toshiba | Image coding method, image decoding method, image coding apparatus, and image decoding apparatus |
| US9843818B2 (en) | 2011-11-08 | 2017-12-12 | Kabushiki Kaisha Toshiba | Image coding method, image decoding method, image coding apparatus, and image decoding apparatus |
| US10554991B2 (en) | 2011-11-08 | 2020-02-04 | Kabushiki Kaisha Toshiba | Image coding method, image decoding method, image coding apparatus, and image decoding apparatus |
| US10687072B2 (en) | 2011-11-08 | 2020-06-16 | Kabushiki Kaisha Toshiba | Image coding method, image decoding method, image coding apparatus, and image decoding apparatus |
| US11375218B2 (en) | 2011-11-08 | 2022-06-28 | Kabushiki Kaisha Toshiba | Image coding method, image decoding method, image coding apparatus, and image decoding apparatus |
| US11451808B2 (en) | 2011-11-08 | 2022-09-20 | Kabushiki Kaisha Toshiba | Image coding method, image decoding method, image coding apparatus, and image decoding apparatus |
| US11831891B2 (en) | 2011-11-08 | 2023-11-28 | Kabushiki Kaisha Toshiba | Image coding method, image decoding method, image coding apparatus, and image decoding apparatus |
| US12177465B2 (en) | 2011-11-08 | 2024-12-24 | Kabushiki Kaisha Toshiba | Image coding method, image decoding method, image coding apparatus, and image decoding apparatus |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2022020629A (en) | Image coding / decoding method and equipment | |
| JP6707678B2 (en) | Method and apparatus for motion compensated prediction | |
| JP5766815B2 (en) | Image encoding method and image encoding apparatus | |
| KR20130003706A (en) | Interpolation method and prediction method thereof | |
| JP2024161272A (en) | Bitwidth Control for Bidirectional Optical Flow | |
| JP2018023121A (en) | Decoding method and decoding device | |
| CN111886863B (en) | Dynamic image decoding device, dynamic image decoding method and program | |
| WO2012172659A1 (en) | Image encoding method, image decoding method, image encoding apparatus, and image decoding apparatus | |
| JP2015111961A (en) | Image decoding method and image decoding apparatus | |
| JP2015033105A (en) | Video encoding device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11867853 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 11867853 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: JP |