Encoder, decoder, and corresponding method

JP7871979B2Active Publication Date: 2026-06-09HUAWEI TECH CO LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2023-11-24
Publication Date
2026-06-09

Smart Images

  • Figure 0007871979000056
    Figure 0007871979000056
  • Figure 0007871979000057
    Figure 0007871979000057
  • Figure 0007871979000058
    Figure 0007871979000058
Patent Text Reader

Abstract

To provide a method of coding sub-pictures of pictures in video coding.SOLUTION: A method includes: receiving a bitstream including a current picture including a sub-picture coded according to inter-prediction; determining a motion vector for a block of the sub-picture; when the motion vector points outside of the sub-picture and when a flag is set to indicate that the sub-picture is treated like a picture, applying a clipping function in a sample position in a reference block so as to support the application of an interpolation filter; in order to obtain a predicted sample value, applying the interpolation filter to the results of the clipping function; and decoding the block based on the predicted sample value, and forwarding the decoded block for display as part of a decoded video sequence.SELECTED DRAWING: Figure 14
Need to check novelty before this filing date? Find Prior Art

Claims

1. A method implemented in an encoder, The encoder's processor divides the current picture into subpictures, and divides the subpictures into blocks, wherein the subpictures include multiple tiles, and the subpictures are not tiles. The processor obtains a reference block for encoding the block, The processor performs the following steps: a flag indicates that the subpicture is treated as a picture, and when the motion vector for the block points outside the subpicture, a clipping function is applied to the integer part of the sample position in the reference block to restrict that the integer part of the sample position is within the subpicture, the sample position is used for an interpolation filter, the interpolation filter includes a Luma sample bilinear interpolation process, and the block includes a block of Luma samples; The processor performs the steps of applying the interpolation filter to the result of the clipping function in order to obtain predicted sample values, wherein the predicted sample values ​​include predicted luma sample values. The processor performs the steps of obtaining residual blocks based on the predicted sample values ​​and the motion vector, The processor performs the steps of converting the residual block into a conversion coefficient, The processor performs the steps of encoding the conversion coefficient and the flag into a bitstream. A method that includes this.

2. The aforementioned sample bilinear interpolation process involves all sample units (xInt L ,yInt L The luma sample bilinear interpolation process receives an input including the luma position in ), and predicts the luma sample value (predSampleLX L ) outputs, and the clipping function is as follows, that is, when subpic_treated_as_pic_flag[SubPicIdx] is equal to 1, the following applies: xInti = Clip3(SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xInt L + i), and yInti=Clip3(SubPicTopBoundaryPos,SubPicBotBoundaryPos,yInt L +i) Here, subpic_treated_as_pic_flag is the flag set to indicate that the subpicture is treated as a picture, SubPicIdx is the index of the subpicture, xInti and yInti are the clipped sample positions at index i, SubPicRightBoundaryPos is the position of the right boundary of the subpicture, SubPicLeftBoundaryPos is the position of the left boundary of the subpicture, SubPicTopBoundaryPos is the position of the top boundary of the subpicture, SubPicBotBoundaryPos is the position of the bottom boundary of the subpicture, and Clip3 is the clipping function according to the following: [Number 52] The method according to claim 1, wherein x, y, and z are numerical input values ​​and are applied to the integer part.

3. The method according to claim 1 or 2, wherein the interpolation filter comprises a luma sample 8-tap interpolation filtering process, the block comprises a block of luma samples, and the predicted sample value comprises a predicted luma sample value.

4. The aforementioned Luma sample 8-tap interpolation filtering process is performed on all sample units (xInt L ,yInt L The input, which includes the luma position in ), is received, and the luma sample 8-tap interpolation filtering process predicts the luma sample value (predSampleLX L ) outputs, and the clipping function is as follows, that is, when subpic_treated_as_pic_flag[SubPicIdx] is equal to 1, the following applies: xInti = Clip3(SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xInt L + i - 3), and yInti=Clip3(SubPicTopBoundaryPos,SubPicBotBoundaryPos,yInt L +i-3) Here, subpic_treated_as_pic_flag is the flag set to indicate that the subpicture is treated as a picture, SubPicIdx is the index of the subpicture, xInti and yInti are the clipped sample positions at index i, SubPicRightBoundaryPos is the position of the right boundary of the subpicture, SubPicLeftBoundaryPos is the position of the left boundary of the subpicture, SubPicTopBoundaryPos is the position of the top boundary of the subpicture, SubPicBotBoundaryPos is the position of the bottom boundary of the subpicture, and Clip3 is the clipping function according to the following: [Number 53] The method according to claim 3, wherein x, y, and z are numerical input values ​​and are applied to the integer part.

5. The method according to any one of claims 1 to 4, wherein the interpolation filter includes a chroma sample interpolation process, the block includes a block of chroma samples, and the predicted sample value includes a predicted chroma sample value.

6. The chroma sample interpolation process described above involves all sample units (xInt C ,yInt C The chroma sample interpolation process receives an input including the chroma position in ), and predicts the chroma sample value (predSampleLX C ) outputs, and the clipping function is as follows, that is, when subpic_treated_as_pic_flag[SubPicIdx] is equal to 1, the following applies: xInti = Clip3(SubPicLeftBoundaryPos / SubWidthC, SubPicRightBoundaryPos / SubWidthC, xInt C + i), and yInti=Clip3(SubPicTopBoundaryPos / SubHeightC,SubPicBotBoundaryPos / SubHeightC,yInt C +i) Here, subpic_treated_as_pic_flag is the flag set to indicate that the subpicture is treated as a picture, SubPicIdx is the index of the subpicture, xInti and yInti are the clipped sample positions at index i, SubPicRightBoundaryPos is the position of the right boundary of the subpicture, SubPicLeftBoundaryPos is the position of the left boundary of the subpicture, SubPicTopBoundaryPos is the position of the top boundary of the subpicture, SubPicBotBoundaryPos is the position of the bottom boundary of the subpicture, SubWidthC and SubHeightC indicate the horizontal and vertical sampling rate ratios between the chroma sample and the chromata sample, and Clip3 is the clipping function according to the following: [Number 54] The method according to claim 5, wherein x, y, and z are numerical input values ​​and are applied to the integer part.

7. A video encoding device, A video encoding device comprising a processor, a receiver coupled to the processor, a memory coupled to the processor, and a transmitter coupled to the processor, wherein the processor, receiver, memory, and transmitter are configured to perform the method of any one of claims 1 to 6.

8. A non-temporary computer-readable medium containing a computer program product for use with a video encoding device, The computer program product includes a non-temporary computer-readable medium, which, when executed by a processor, includes computer-executable instructions stored in the non-temporary computer-readable medium, causing the video encoding device to perform the method according to any one of claims 1 to 6.

9. It is an encoder, A partitioning unit configured to divide the current picture into subpictures, and to divide the subpictures into blocks, wherein the subpictures include multiple tiles, and the subpictures are not tiles, and An acquisition unit configured to acquire a reference block for encoding the aforementioned block, The flag indicates that the subpicture is treated as a picture, and the application unit is configured to apply a clipping function to the integer part of the sample position in the reference block to restrict that the integer part of the sample position in the reference block is within the subpicture when the motion vector for the block points outside the subpicture, the sample position is used for interpolation filtering, An application unit configured to apply the interpolation filter to the result of the clipping function in order to obtain predicted sample values, An encoding unit configured to encode the block into a bitstream based on the predicted sample values ​​and the motion vector, An acquisition unit configured to acquire residual blocks based on the predicted sample values ​​and the motion vector, A conversion unit configured to convert the residual block into a conversion coefficient, Includes, The encoding unit is further configured to encode the conversion coefficients and the flags into a bitstream, and is an encoder.

10. The encoder according to claim 9, wherein the encoder is further configured to perform the method described in any one of claims 1 to 6.

11. A computer program, when executed on a computer or processor, includes program code for performing the method described in any one of claims 1 to 6.

12. A device comprising a processor and an input and / or output (I / O) device for receiving a bitstream, The bitstream is generated by the encoder according to the method of any one of claims 1 to 6, the bitstream includes a current picture which includes subpictures coded according to interprediction, the subpictures which include a plurality of tiles, and the subpictures which are not tiles. The aforementioned processor, It is configured to determine the reference block for the aforementioned subpicture block, A flag indicates that the subpicture is treated as a picture, and when the motion vector for the block points outside the subpicture, a clipping function is applied to the integer part of the sample position in the reference block to restrict the integer part to be within the subpicture, the sample position is used for an interpolation filter, the interpolation filter includes a Luma sample bilinear interpolation process, and the block includes a block of Luma samples. The system is configured to apply the interpolation filter to the result of the clipping function in order to obtain predicted sample values, and the predicted sample values ​​include predicted luma sample values. A device configured to decode the block based on the predicted sample values.

13. An encoder comprising a processing circuit for generating the bitstream according to the method described in any one of claims 1 to 6.

14. A device for transmitting a bitstream, At least one storage medium configured to store a bitstream, wherein the bitstream includes a flag indicating that a subpicture is treated as a picture, the motion vector of a block points outside the subpicture, the subpicture includes multiple tiles, and the subpicture is not a tile, and A processor configured to apply a clipping function to the integer part of a sample position in a reference block to restrict that the integer part of the sample position in the reference block is within the subpicture when the flag is present, wherein the sample position is used in an interpolation filter, the interpolation filter includes a Luma sample bilinear interpolation process, the block includes a block of Luma samples, the result of the clipping function is used in the interpolation filter to obtain predicted sample values, the predicted sample values ​​include predicted Luma sample values, and A transmitter configured to transmit the bitstream to another device A device that includes this.

15. A method for transmitting a bitstream, Steps include obtaining a bitstream from at least one storage medium, wherein the bitstream includes a flag indicating that a subpicture is treated as a picture, the block motion vectors point outside the subpicture, the subpicture includes multiple tiles, and the subpicture is not a tile, and Steps include: when the flag exists, applying a clipping function to the integer part of the sample position in the reference block to restrict that the integer part of the sample position in the reference block is within the subpicture, the sample position is used in an interpolation filter, the interpolation filter includes a Luma sample bilinear interpolation process, the block includes a block of Luma samples, the result of the clipping function is used in the interpolation filter to obtain predicted sample values, the predicted sample values ​​include predicted Luma sample values, and The steps include transmitting the bitstream to another device and A method that includes this.