Spatially-varying transformations with adaptive transformation types

Adaptive SVT types with reduced candidate positions and specific transforms address the inefficiencies of existing SVT schemes, enhancing decoding quality and efficiency in video coding.

JP7813690B2Active Publication Date: 2026-02-13HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2022164888
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-05-31
Filing Date
2022-10-13
Publication Date
2026-02-13
Estimated Expiration
2039-05-28

AI Technical Summary

Technical Problem

Existing spatially-varying transform (SVT) schemes in video coding suffer from high signaling overhead and increased encoder complexity due to the large number of candidate transform block positions, especially for larger residual blocks, and the transform blocks may not adequately cover major residuals.

Method used

Adaptive use of SVT types (SVT-V and SVT-H) with reduced candidate positions and specific transform types (DST-7 and DCT-8) based on block position, limiting the number of transform algorithms to simplify decoding and improve efficiency.

Benefits of technology

Improves decoding quality and efficiency by adaptively using multiple transform types and positions, reducing signaling overhead and encoder complexity while effectively covering residual blocks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007813690000007
    Figure 0007813690000007
  • Figure 0007813690000008
    Figure 0007813690000008
  • Figure 0007813690000009
    Figure 0007813690000009
Patent Text Reader

Abstract

This disclosure discloses a video decoding method and apparatus that employs SVT with adaptive transform types. The method includes determining whether to use SVT-V or SVT-H for a residual block, determining a transform block position of a transform block of the residual block, determining a transform type of the transform block, the transform type indicating a horizontal transform and a vertical transform of the transform block, where at least one of the horizontal transform and the vertical transform is DST-7, and reconstructing the residual block based on the transform type, the transform block position, and the transform coefficients of the transform block. By using the solution of the present disclosure, decoding quality can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This disclosure relates to video decoding techniques, and more particularly to video decoding methods and related apparatus that employ spatially-varying transforms having adaptive transform types. [Background technology]

[0002] Video coding such as H.265 is based on a prediction and transform framework. At an encoder, an image block (comprising multiple pixels) may be decomposed into a prediction block and a residual block, and prediction information (e.g., prediction mode and motion vector information) and residual information (e.g., transform mode, transform coefficients, and quantization parameters) are coded into a bitstream. At a decoder, the prediction information and residual information are parsed. According to the prediction information, intra- or inter-prediction is performed to generate prediction samples. According to the residual information, inverse quantization and inverse transform are sequentially performed to generate residual samples. The prediction samples and residual samples are added together to obtain reconstructed samples.

[0003] Spatially-Varying Transform (SVT) was developed to improve video coding efficiency. For a rectangular residual block of width w and height h (i.e., w×h), a transform block smaller than the residual block is used to transform part of the residual block, and the remaining part of the residual block is not coded. The rationale behind SVT is that the residual may not be equally distributed in the residual block. Using a smaller transform block with an adaptive position can capture the dominant residual in the residual block, and thus achieve better coding efficiency than transforming all the residual in the residual block.

[0004] When SVT is applied for a residual block of size w × h, the size and position information of the transform block is coded into the video bitstream, so that the decoder can reconstruct the transform block and place it in the appropriate position of the prediction block associated with the residual block.

[0005] In one example, three types of SVT blocks may be used for the residual block, as shown in FIG. 1) SVT-I: w_t=w / 2, h_t=h / 2, where w_t and h_t represent the width and height of the transform block, respectively, and w and h represent the width and height of the residual block. In other words, the width and height of the transform block are both half of those of the residual block. 2) SVT-II: w_t=w / 4, h_t=h. 3) SVT-III: w_t=w, h_t=h / 4.

[0006] The type information of the SVT block is coded in the bitstream.

[0007] The position of a transform block is represented by a position offset (x, y) to the upper left corner of the residual block, where x indicates the horizontal distance between the upper left corner of the transform block and that of the residual block in units of pixels, and y indicates the vertical distance between the upper left corner of the transform block and that of the residual block in units of pixels. Each position that makes a transform block fall within a residual block is a candidate position. For a residual block, the number of candidate positions is (w - w_t + 1) x (h - h_t + 1) for the type of SVT. More specifically, for a 16x16 residual block, there are 81 candidate positions when SVT-I is used, and 13 candidate positions when SVT-II or SVT-III is used. The values ​​of x and y are coded into the bitstream. To reduce the complexity of SVT-I, a subset of 32 positions is selected from the 81 candidate positions as allowed candidate positions for SVT-I.

[0008] One drawback of the SVT scheme is the heavy signaling overhead of position information. Moreover, the encoder complexity can increase significantly with the number of positions tested in rate-distortion optimization (RDO). Because the number of candidate positions increases with the size of the residual block, the overhead can become even larger for larger residual blocks, such as 32x32 or 64x128.

[0009] Another drawback of the SVT scheme is that the size of the transform block is 1 / 4 of the residual block, which is not large enough to cover the major residuals in the residual block with high certainty.

[0010] Therefore, a simple SVT has been developed, and two types of SVT blocks, denoted as SVT-H and SVT-V, are used for residual coding, as shown in FIG. 1) SVT-V: w_t=w / 2 and h_t=t. 2) SVT-H: w_t=w and h_t=h / 2.

[0011] SVT-V is similar to SVT-II, and SVT-H is similar to SVT-III. Compared with SVT-II and SVT-III, the transform block in SVT-V and SVT-H is expanded to half of the residual block to cover more residual in the residual block.

[0012] The candidate positions are determined by a candidate position step size (CPSS). Therefore, the candidate positions are equally spaced apart as specified by the CPSS. The number of candidate positions is reduced to five or less to reduce the overhead of position information as well as the encoder complexity for determining the best transform block position. Summary of the Invention

[0013] This disclosure discloses a video decoding method and related apparatus that employs spatially-varying transforms with adaptive transform types to improve decoding quality.

[0014] These and other objects are achieved by the subject matter of the independent claims. Further embodiments are evident from the dependent claims, the description and the drawings.

[0015] According to a first aspect, this disclosure relates to a video decoding method. The method is performed by a video decoding device. The method includes: determining use of a spatially-varying transform (SVT) for a residual block; determining an SVT type for the residual block if SVT is used for the residual block, where the SVT type for the residual block is either SVT-V or SVT-H; determining a transform block position of a transform block of the residual block; determining a transform type of the transform block, where the transform type indicates a horizontal transform and a vertical transform of the transform block, where at least one of the horizontal transform and the vertical transform is DST-7; and reconstructing the residual block based on the transform type, the transform block position, and the transform coefficients of the transform block.

[0016] In a possible embodiment of the method according to the first aspect, when the SVT type for the residual block is SVT-V and the transform block position of the transform block is a position covering the upper left corner of the residual block, the horizontal transform is DCT-8 and the vertical transform is DST-7.

[0017] In a possible embodiment of the method according to the first aspect, when the SVT type for the residual block is SVT-V and the transform block position of the transform block is a position covering the bottom right corner of the residual block, the horizontal transform is DST-7 and the vertical transform is DST-7.

[0018] In a possible embodiment of the method according to the first aspect, when the SVT type for the residual block is SVT-H and the transform block position of the transform block is a position covering the upper left corner of the residual block, the horizontal transform is DCT-7 and the vertical transform is DCT-8.

[0019] In a possible embodiment of the method according to the first aspect, when the SVT type for the residual block is SVT-H and the transform block position of the transform block is a position covering the bottom right corner of the residual block, the horizontal transform is DST-7 and the vertical transform is DST-7.

[0020] According to a second aspect, the present disclosure relates to a video decoding device having: a unit configured to determine the use of a spatially-varying transform (SVT) for a residual block; a unit configured to determine an SVT type for the residual block if an SVT is used for the residual block, where the SVT type for the residual block is either SVT-V or SVT-H; a unit configured to determine a transform block position of a transform block of the residual block; a unit configured to determine a transform type of the transform block, where the transform type indicates a horizontal transform and a vertical transform of the transform block, where at least one of the horizontal transform and the vertical transform is DST-7; and a unit configured to reconstruct the residual block based on the transform type, the transform block position, and the transform coefficients of the transform block.

[0021] In a possible embodiment of the apparatus according to the second aspect, when the SVT type for the residual block is SVT-V and the transform block position of the transform block is a position covering the upper left corner of the residual block, the horizontal transform is DCT-8 and the vertical transform is DST-7.

[0022] In a possible embodiment of the apparatus according to the second aspect, when the SVT type for the residual block is SVT-V and the transform block position of the transform block is a position covering the bottom right corner of the residual block, the horizontal transform is DST-7 and the vertical transform is DST-7.

[0023] In a possible embodiment of the apparatus according to the second aspect, when the SVT type for the residual block is SVT-H and the transform block position of the transform block is a position covering the upper left corner of the residual block, the horizontal transform is DCT-7 and the vertical transform is DCT-8.

[0024] In a possible embodiment of the apparatus according to the second aspect, when the SVT type for the residual block is SVT-H and the transform block position of the transform block is a position covering the bottom right corner of the residual block, the horizontal transform is DST-7 and the vertical transform is DST-7.

[0025] According to a third aspect, the present disclosure relates to a video decoding apparatus having one or more processors and a non-transitory computer-readable storage medium coupled to the processors and storing programming for execution by the processors, the programming, when executed by the processors, configuring the video decoding apparatus to perform the method according to the first aspect.

[0026] According to a fourth aspect, the present disclosure relates to a non-volatile computer-readable storage medium storing computer instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of a method according to the first aspect.

[0027] It can be seen that the present disclosure adaptively uses multiple transform types of transform blocks based on SVT type and position information, thus improving decoding quality and decoding efficiency; furthermore, the number of transform algorithms is limited in some embodiments, thus simplifying the implementation of the decoding device. [Brief explanation of the drawings]

[0028] [Figure 1] FIG. 1 is an explanatory diagram of SVT-I, SVT-II, and SVT-III. [Figure 2] FIG. 1 is an explanatory diagram of SVT-V and SVT-H. [Figure 3] FIG. 10 is an explanatory diagram of candidate positions of SVT-V and SVT-H blocks. [Figure 4] FIG. 1 is an explanatory diagram of an SVT-V and an SVT-H having three candidate positions. [Figure 5] 1 is a flowchart of a video decoding method according to an embodiment of the present disclosure. [Figure 6] 1 is a schematic structural diagram of a video decoding device according to an embodiment of the present disclosure; DETAILED DESCRIPTION OF THE INVENTION

[0029] This disclosure introduces an improved SVT scheme. The improvement is that the horizontal transform type and vertical transform type of an SVT block are determined based on the SVT type and the SVT block position. The horizontal transform can be different from the vertical transform.

[0030] A first embodiment describes a process for decoding a residual block. A bitstream including at least one picture of video data is decoded. The picture is divided into multiple rectangular image regions, each corresponding to a coding tree unit (CTU). The CTU is partitioned into multiple blocks, such as coding units in HEVC, according to block partition information included in the bitstream. The coding information of the block is parsed from the bitstream, and the pixels of the block are reconstructed based on the coding information.

[0031] In one embodiment, SVT is restricted to being used for inter-predicted blocks, while in other embodiments, SVT may also be used for intra-predicted blocks.

[0032] In one example, SVT may be allowed for blocks using a particular inter prediction method (e.g., motion compensation based on a translation model) but not for blocks using some other inter prediction method (e.g., motion compensation based on an affine model). In another example, SVT may be allowed for prediction blocks using a merge mode or advanced motion vector prediction (AMVP) mode with 1 / 4-pixel motion vector difference accuracy but not for prediction blocks using an affine merge mode, affine inter mode, or AMVP mode with 1-pixel or 4-pixel motion vector difference accuracy. In another example, SVT may be allowed for prediction blocks using a merge mode with a merge index less than 2 but not for prediction blocks using a merge mode with a merge index not less than 2. Merge mode and AMVP mode may be referenced in the H.265 / HEVC standard. Affine merge mode and affine inter mode may be referenced in the Joint Exploration Model (JEM) codec from the Joint Video Exploration Team (JVET).

[0033] In one example, a block may refer to a coding unit, where the coding unit may include one predictive block and one residual block. The predictive block may include all predictive samples of the coding unit, the residual block may include all residual samples of the coding unit, and the predictive block has the same size as the residual block. In another example, a block may refer to a coding unit, where the coding unit may include two predictive blocks and one residual block, where each predictive block may include a portion of the predictive samples of the coding unit, and the residual block may include all residual samples of the coding unit. In another example, a block may refer to a coding unit, where the coding unit may include two predictive blocks and four residual blocks. A partition pattern of the residual blocks in a coding unit, such as a residual quadtree (RQT) in HEVC, may be signaled in the bitstream.

[0034] A block may contain only the Y component (luma) of an image sample (or pixel), or it may contain the Y, U (chrominance) and V (chrominance) components of an image sample.

[0035] Residual block R of size w × h O can be reconstructed by the following steps:

[0036] Step 1. Residual Block R O Determine the transform block size.

[0037] Step 1.1. Determine the use of SVT according to the syntax elements. For residual blocks that are allowed to use SVT, a flag (i.e., svt_flag) is parsed from the bitstream if the residual block has non-zero transform coefficients for the Y component (or if it has non-zero transform coefficients for any color component). The flag indicates whether the residual block is coded using a transform block of the same size as the residual block (e.g., svt_flag=0) or whether the residual block is coded with a transform block of a size smaller than the size of the residual block (e.g., svt_flag=1). Whether the block has non-zero transform coefficients for color components may be indicated by the color component coded block flag (cbf) as used in HEVC. Whether the block has non-zero transform coefficients for any color component may be indicated by the root coded block flag (root cbf) as used in HEVC.

[0038] In one example, a block is permitted to use SVT if the following conditions are met: 1) The block is predicted using inter prediction. 2) Either the block width or the block height falls within a predetermined range [a1, a2], for example, a1 = 16 and a2 = 64, or a1 = 8 and a2 = 64, or a1 = 16 and a2 = 128. The values ​​of a1 and a2 can be fixed values. They can also be derived from the sequence parameter set (SPS) or slice header.

[0039] In another example, a block is permitted to use SVT if the following conditions are met: 1) The block is predicted using a merge mode with a merge index smaller than a threshold (eg, 1 or 2 or 3) or using an AMVP mode with 1 / 4 pixel motion vector difference accuracy. 2) One dimension of the block falls within a predetermined range [a1, a2], and the other dimension of the block is not greater than a threshold a3, e.g., a1=8, a2=32, and a3=32. Parameter a1 may be set as twice the minimum transform size, and a2 and a3 may both be set as the maximum transform size. The values ​​of a1, a2, and a3 can be fixed values. The values ​​can also be derived from the sequence parameter set (SPS) or slice header.

[0040] If the block does not use SVT, the transform block size is set to w × h. Otherwise, step 1.2 is applied to determine the transform size.

[0041] Step 1.2: Determine the type of SVT according to the syntax element, and derive the transform block size according to the SVT type. The allowed SVT type for a residual block is determined based on the width and height of the residual block. SVT-V is allowed if w is within the range [a1, a2] and h is not greater than a3, and SVT-H is allowed if h is within the range [a1, a2] and w is not greater than a3. SVT may be used only for the Y component, or it may be used for all three components, i.e., Y component, U component, and V component. When SVT is used only for the Y component, the Y component residual is transformed by SVT, and the U and V components are transformed according to the size of the residual block.

[0042] If both SVT-V and SVT-H are allowed, one flag (i.e., svt_type_flag) is parsed from the bitstream to indicate whether SVT-V is used for the residual block (e.g., svt_type_flag=0) or whether SVT-H is used (e.g., svt_type_flag=1), and the transform block size is set according to the signaled SVT type (i.e., for SVT-V, W_t=w / 2 and h_t=h, and for SVT-H, w_t=w and h_t=h / 2). If only SVT-V or only SVT-H is allowed, svt_type_flag is not parsed from the bitstream, and the transform block size is set according to the allowed SVT type.

[0043] Step 2. Determine the transform block position according to the syntax elements, and determine the transform type of the transform block based on the type of SVT and the transform block position information.

[0044] Step 2.1: Determine the transform block position according to the syntax elements.

[0045] A position index P is parsed from the bitstream, and a position offset Z of the upper-left corner of the transform block relative to the upper-left corner of the residual block is determined as Z = s × P, where s is the candidate position step size (CPSS). The value of P is one of 0, 1, . . ., (w - w_t) / s when SVT-V is used, or the value of P is one of 0, 1, . . ., (h - h_t) / s when SVT-H is used. More specifically, if (0, 0) represents the coordinate of the upper-left corner of the residual block, the coordinate of the upper-left corner of the transform block is (Z, 0) for SVT-V or (0, Z) for SVT-H.

[0046] In one example, the CPSS is calculated as s=w / M1 for SVT-V, or s=h / M2 for SVT-H, where w and h are the width and height of the residual block, respectively, and M1 and M2 are predetermined integers ranging from 2 to 8. More candidate positions are allowed with larger values ​​of M1 or M2. In this example, M1 and M2 are both set as 8. Therefore, the value of P is one from 0 to 4. The candidate positions are represented in FIG. 3.

[0047] In another example, the CPSS is calculated as s = max(w / M1, Th1) for SVT-V or s = max(h / M2, Th2) for SVT-H, where Th1 and Th2 are predefined integers specifying the minimum step size. Th1 and Th2 are integers greater than or equal to 2. In this example, Th1 and Th2 are set as 4, and M1 and M2 are set as 8. In this example, different block sizes may have different numbers of candidate positions. For example, when w = 8, two candidate positions (represented by Figures 3(a) and 3(e)) are available for selection; when w = 16, three candidate positions (represented by Figures 3(a), 3(c), and 3(e)) are available for selection; and when w > 16, five positions are available for selection.

[0048] In another example, the CPSS is calculated as s=w / M1 for SVT-V or s=h / M2 for SVT-H, where M1 and M2 are set as 4. Thus, three candidate positions are allowed.

[0049] In another example, the CPSS is calculated as s=w / M1 for SVT-V or s=h / M2 for SVT-H, where M1 and M2 are set as 2. Thus, two candidate positions are allowed.

[0050] In another example, CPSS is calculated as s = max(w / M1, Th1) for SVT-V or s = max(h / M2, Th2) for SVT-H, where Th1 and Th2 are set to 2, M1 is set to 8 when w ≥ h or 4 when w < h, and M2 is set to 8 when h ≥ w or 4 when h < w. In this case, the number of candidate positions for SVT-H or SVT-V may further depend on the aspect ratio of the residual block.

[0051] In another example, CPSS is calculated as s = max(w / M1, Th1) for SVT-V or s = max(h / M2, Th2) for SVT-H, where the values of M1, M2, Th1, and Th2 are derived from a high-level syntax structure (e.g., a sequence parameter set) within the bitstream. M1 and M2 may share the same value parsed from a syntax element, and Th1 and Th2 may share the same value parsed from other syntax elements.

[0052] The position index P may be binary coded into one or more bins using a truncated unary code. For example, when the P value is within the range of 0 to 4, the P values 0, 4, 2, 3, and 1 are binary coded as 0, 01, 001, 0001, and 0000 respectively, and when the P value is within the range of 0 to 1, the P values 0 and 1 are binary coded as 0 and 1 respectively.

[0053] The position index P may be binary coded into one or more bins using one most likely position and several remaining positions. When the left and upper neighbors are available, the most likely position may be set as the position covering the lower right corner of the residual block. In one example, when the P value is within the range of 0 to 4 and position 4 is set as the most likely position, the P values 4, 0, 1, 2, and 3 are binary coded as 1, 000, 001, 010, and 011 respectively, and when the P value is within the range of 0 to 2 and position 2 is set as the most likely position, the P values 2, 0, and 1 are binary coded as 1, 01, and 00 respectively.

[0054] Step 2.2: Determine the transformation type of the transformation block based on the type of SVT and the transformation block position information, where the transformation type includes horizontal transformation and vertical transformation of the two-dimensional separable transformation.

[0055] For example, consider the case where three candidate positions are allowed, as shown in Figure 4. Position 0 covers the top left corner, position 2 covers the bottom right corner, and position 1 is in the middle of the residual block. As shown in Figure 4, there are three positions for both SVT-V and SVT-H.

[0056] In another example, two candidate positions are allowed: Position 0 covers the top left corner and Position 1 covers the top right corner (same as Position 2 in Figure 4), i.e., there are two positions for both SVT-V and SVT-H.

[0057] A two-dimensional transform may be separable into one-dimensional horizontal and vertical transforms. A forward 2D transform, which turns residuals into transform coefficients, may be realized by first applying a horizontal transform to the residual block to generate a block TA, and then applying a vertical transform to the block TA to generate a transform coefficient block, as implemented in the JEM codec. Accordingly, an inverse 2D transform, which turns transform coefficients back into residuals, may be realized by first applying an inverse vertical transform to the transform coefficient block to generate a block TB, and then applying an inverse horizontal transform to the block TB to generate a residual block, as implemented in the JEM codec.

[0058] In one example, as listed in Table I, the horizontal and vertical transforms for SVT-V position 0 are DCT-8 and DST-7, the horizontal and vertical transforms for SVT-V position 1 are DST-1 and DST-7, the horizontal and vertical transforms for SVT-V position 2 are DST-7 and DST-7, the horizontal and vertical transforms for SVT-H position 0 are DST-7 and DCT-8, the horizontal and vertical transforms for SVT-H position 1 are DST-7 and DST-1, and the horizontal and vertical transforms for SVT-H position 2 are DST-7 and DST7. In this example, the vertical transform for SVT-V and the horizontal transform for SVT-H are set as DST-7, and the other transforms are based on the SVT positions. [Table 1]

[0059] In another example, the horizontal and vertical transforms for different SVT types and positions are listed in Table II. In this example, the vertical transform for SVT-V and the horizontal transform for SVT-H are set as DCT-2, and the other transforms are based on the SVT position. [Table 2]

[0060] In another example, the horizontal and vertical transforms for different SVT types and positions are listed in Table III. In this example, the horizontal and vertical transforms are determined only by the SVT position. [Table 3]

[0061] In another example, the horizontal and vertical transforms for different SVT types and positions are listed in Table IV. [Table 4]

[0062] In another example, the horizontal and vertical transforms for different SVT types and positions are listed in Table V. [Table 5]

[0063] In another example, the horizontal and vertical transforms for different SVT types and positions are listed in Table VI. [Table 6]

[0064] Position-dependent transforms may be applied only to luma transform blocks, and the corresponding chroma transform blocks always use an inverse DCT-2 in the inverse transform process.

[0065] Step 3. Parse the transform coefficients of the transform block based on the transform block size.

[0066] This is a commonly used process in video decoding, such as transform coefficient parsing in HEVC or H.264 / AVC. Transform coefficients may be coded using run-length coding, or more sophisticatedly coded as a set of transform coefficient groups (CGs).

[0067] Step 3 may be performed before step 2.

[0068] Step 4. Transform coefficients and residual block R based on the transform block position and the type of inverse transform O Reconstruct.

[0069] Inverse quantization and an inverse transform of size w_t×h_t are applied to the transform coefficients to recover residual samples. The size of the residual samples is w_t×h_t, the same as the transform block size. The inverse transform is a two-dimensional separable transform. The inverse quantized transform coefficient block is first transformed by an inverse vertical transform to generate a block TC, which is then transformed by an inverse horizontal transform, where the inverse horizontal transform and the inverse vertical transform were determined in step 2.2 based on the transform block position, or based on both the transform block position and the SVT type of the transform block.

[0070] The residual samples are stored in the residual block R according to the transform block position. O 3(e) , and the remaining samples in the residual block are set to zero. For example, when SVT-V is used, the number of candidate positions is 5, and the position index is 4, the reconstructed residual samples are assigned to region A in FIG. 3(e) , and the region of size (w / 2)×h to the left of region A has zero residual.

[0071] After performing steps 1 to 4, the reconstructed residual block may be composed with the predictive block to generate reconstructed samples in the coding unit. A filtering process, such as a deblocking filter and sample adaptive offset (SAO) processing in HEVC, may be applied to the reconstructed samples later.

[0072] Unlike existing solutions, the present disclosure adaptively uses multiple transform types of a transform block based on SVT type and position information.

[0073] 5 is a flowchart of an example method of video decoding employing a spatially-varying transform having an adaptive transform type. The method may begin upon receiving a bitstream at a decoder. The method uses the bitstream to determine a predictive block and a transformed residual block. The method may also determine a transform block, which is used to determine the residual block. The residual block and the predictive block are then used to reconstruct an image block. While the method is described from the decoder's perspective, it should be noted that a similar method may be used (e.g., in reverse) to encode video by using SVT. Here, the method includes:

[0074] Step 501: Determine the use of SVT for the residual block. The specific process of the determination is the same as step 1.1.

[0075] Step 502: If SVT is used for the residual block, determine the SVT type for the residual block, where the SVT type for the residual block is either SVT-V type or SVT-H type, where SVT-V type indicates that the width of the transform block of the residual block is half the size of the width of the residual block, and the height of the transform block is the same size as the height of the residual block (shown in FIG. 4), and SVT-H type indicates that the width of the transform block is the same size as the width of the residual block, and the height of the transform block is half the size of the height of the residual block (shown in FIG. 4). The specific process of determination is the same as step 1.2.

[0076] Step 503: Derive the transform block size of the transform block according to the SVT type. The specific process of derivation is the same as step 1.2.

[0077] Step 504: Determine the transformation block position of the transformation block. The specific process of determination may be the same as step 2.1.

[0078] Alternatively, if the candidate position of the SVT type is 2, a one-bit flag may be used to indicate the transform block position of the transform block of the residual block. For example, if only positions 0 and 2 in FIG. 4 are used for SVT-V, a one-bit flag is sufficient to indicate whether the transform block position is position 0 or position 2. If only positions 0 and 2 in FIG. 4 are used for SVT-H, a one-bit flag is sufficient to indicate whether the transform block position is position 0 or position 2.

[0079] Step 505: Determine the transformation type of the transformation block according to the SVT type and the transformation block position of the transformation block, where the transformation type indicates the horizontal transformation and vertical transformation of the transformation block, and at least one of the horizontal transformation and the vertical transformation is DST-7. The specific process of determination may be the same as step 2.2.

[0080] The specific conversion type may be any conversion type in any one of Tables I, IV, and V described above, or any conversion type including DST-7 in any one of Tables II, III, and VI described above.

[0081] For example, when the SVT type for the residual block is SVT-V type and the transform block position of the transform block is a position covering the upper left corner of the residual block (i.e., position 0 in Figure 4), the horizontal transform is DCT-8 and the vertical transform is DST-7.

[0082] For example, when the SVT type for the residual block is SVT-V type and the transform block position of the transform block is a position covering the bottom right corner of the residual block (i.e., position 2 in Figure 4), the horizontal transform is DST-7 and the vertical transform is DST-7.

[0083] For example, when the SVT type for the residual block is SVT-H type and the transform block position of the transform block is a position covering the upper left corner of the residual block (i.e., position 0 in Figure 4), the horizontal transform is DCT-7 and the vertical transform is DCT-8.

[0084] For example, when the SVT type for the residual block is SVT-H type and the transform block position of the transform block is a position covering the bottom right corner of the residual block (i.e., position 2 in Figure 4), the horizontal transform is DST-7 and the vertical transform is DST-7.

[0085] Step 506: Parse the transform coefficients of the transform block according to the transform block size. The specific process of parsing may be the same as Step 3.

[0086] Step 507: Reconstruct the residual block according to the transform type, the transform block position and the transform coefficient of the transform block. The specific reconstruction process may be the same as step 4.

[0087] It can be seen that the present disclosure adaptively uses multiple transform types of transform blocks based on SVT type and position information, thus improving decoding quality and decoding efficiency; furthermore, the number of transform algorithms is limited in some embodiments, thus simplifying the implementation of the decoding device.

[0088] The present disclosure provides a video decoding device configured to implement the techniques of the present application, comprising: A unit configured to determine the use of spatially varying transformation (SVT) for the residual block, the specific process of which is the same as that of step 1.1. A unit configured to determine an SVT type for a residual block when an SVT is used for the residual block, where the SVT type for the residual block is either an SVT-V type or an SVT-H type, where the SVT-V type indicates that the width of a transform block of the residual block is half the size of the width of the residual block, and the height of the transform block is the same size as the height of the residual block, and the SVT-H type indicates that the width of the transform block is the same size as the width of the residual block, and the height of the transform block is half the size of the height of the residual block. The specific process of the determination is the same as that of step 1.2. A unit configured to derive a transform block size of a transform block according to an SVT type, the specific process of which is the same as that in step 1.2. A unit configured to determine a transform block position of a transform block. The specific process of the determination may be the same as step 2.1. Alternatively, when the candidate position of the SVT type is 2, a one-bit flag may be used to indicate the transform block position of the transform block of the residual block. For example, when only positions 0 and 2 in FIG. 4 are used for SVT-V, a one-bit flag is sufficient to indicate whether the transform block position is position 0 or position 2. When only positions 0 and 2 in FIG. 4 are used for SVT-H, a one-bit flag is sufficient to indicate whether the transform block position is position 0 or position 2. A unit configured to determine a transformation type of the transformation block according to an SVT type and a transformation block position of the transformation block, where the transformation type indicates a horizontal transformation and a vertical transformation of the transformation block, and at least one of the horizontal transformation and the vertical transformation is DST-7. The specific process of the determination may be the same as step 2.2. a unit configured to parse the transform coefficients of the transform block according to the transform block size, the specific process of parsing being the same as step 3; a unit configured to reconstruct the residual block according to the transform type, the transform block position and the transform coefficient of the transform block, the specific process of the reconstruction may be the same as step 4; A video decoding apparatus is disclosed, which includes:

[0089] The specific conversion type may be any conversion type in any one of Tables I, IV, and V described above, or any conversion type including DST-7 in any one of Tables II, III, and VI described above.

[0090] For example, when the SVT type for the residual block is SVT-V type and the transform block position of the transform block is a position covering the upper left corner of the residual block (i.e., position 0 in Figure 4), the horizontal transform is DCT-8 and the vertical transform is DST-7.

[0091] For example, when the SVT type for the residual block is SVT-V type and the transform block position of the transform block is a position covering the bottom right corner of the residual block (i.e., position 2 in Figure 4), the horizontal transform is DST-7 and the vertical transform is DST-7.

[0092] For example, when the SVT type for the residual block is SVT-H type and the transform block position of the transform block is a position covering the upper left corner of the residual block (i.e., position 0 in Figure 4), the horizontal transform is DCT-7 and the vertical transform is DCT-8.

[0093] For example, when the SVT type for the residual block is SVT-H type and the transform block position of the transform block is a position covering the bottom right corner of the residual block (i.e., position 2 in Figure 4), the horizontal transform is DST-7 and the vertical transform is DST-7.

[0094] The present disclosure discloses another video decoding device configured to implement the techniques of the present application, the video decoding device having one or more processors and a non-volatile computer-readable storage medium coupled to the processors and storing programming for execution by the processors, the programming, when executed by the processors, configuring the video decoding device to process any of the methods described above.

[0095] The present disclosure discloses a non-volatile computer-readable storage medium storing computer instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of any of the methods described above.

[0096] 6 is a schematic diagram of a coding device 900 according to an embodiment of the present disclosure. The coding device 900 is suitable for implementing the disclosed embodiments as described herein. The coding device 900 includes an ingress port 910 and a receiver unit (Rx) 920 for receiving data, a processor, logic unit, or central processing unit (CPU) 930 for processing the data, a transmitter unit (Tx) 940 and an egress port 950 for transmitting the data, and a memory 960 for storing the data. The coding device 900 may also include optical-to-electrical (OE) and electrical-to-optical (EO) components coupled to the ingress port 910, the receiver unit 920, the transmitter unit 940, and the egress port 950 for inputting and outputting optical or electrical signals.

[0097] The processor 930 is implemented in hardware and software. The processor 930 may be implemented as one or more CPU chips, cores (e.g., as a multi-core processor), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and digital signal processors (DSPs). The processor 930 communicates with the ingress port 910, the receiver unit 920, the transmitter unit 940, the egress port 950, and memory 960. The processor 930 includes a coding module 970. The coding module 970 implements the disclosed embodiments described above. For example, the coding module 970 performs, processes, parses, prepares, or provides various graphics processing and calculations. Thus, the inclusion of the coding module 970 can result in substantial improvements to the functionality of the device 900 and can result in the transition of the device 900 to a different state. Alternatively, the coding module 970 can be implemented as instructions stored in the memory 960 and executed by the processor 930.

[0098] Memory 960 may include one or more disks, tape drives, and solid-state drives, and may be used as overflow data storage devices for storing programs when such programs are selected for execution, and for storing instructions and data read during program execution. Memory 960 may be volatile and / or non-volatile, and may be read-only memory (ROM), random access memory (RAM), ternary content addressable memory (TCAM), and / or static random access memory (SRAM).

[0099] The following references are incorporated herein by reference as if reproduced in their entirety:

[0100] Although several embodiments have been provided in this disclosure, it should be understood that the disclosed systems and methods may be embodied in many other specific forms without departing from the spirit or scope of the disclosure. The examples should be construed as illustrative rather than restrictive, and are not intended to be limited to the details provided herein. For example, various elements or components may be combined or integrated in other systems, or certain features may be omitted, or not implemented.

[0101] Moreover, the techniques, systems, subsystems, and methods described and illustrated individually or separately in various embodiments may be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. Other items shown or discussed as being coupled or directly coupled or in communication with each other may be indirectly coupled or in communication through some interface, device, or intermediate component, whether electrical, mechanical, or otherwise. Other examples of changes, substitutions, and modifications will be ascertainable by those skilled in the art and may be made without departing from the spirit and scope of the present disclosure.

[0102] This application claims priority to U.S. Provisional Patent Application No. 62 / 678,738, filed May 31, 2018, which is incorporated by reference in its entirety.

Claims

1. 1. A video decoding method comprising: determining, according to a first flag in the bitstream, that a spatially varying transform (SVT) is used for the residual block; determining an SVT type for the residual block according to a second flag in the bitstream, the SVT type being either an SVT-vertical (V) type or an SVT-horizontal (H) type, the SVT-V type indicating that a first width of a transform block of the residual block is half of a second width of the residual block and a first height of the transform block is the same as a second height of the residual block, and the SVT-H type indicating that the first width is the same as the second width and the first height is half of the second height; determining a transform block position of the transform block according to a syntax element in the bitstream; determining a transform type of the transform block according to the SVT type and the transform block position; Parsing transform coefficients of the transform block according to a transform block size; reconstructing the residual block based on the transform type, the transform block size, the transform block position, and the transform coefficients; 1. A video decoding method comprising:

2. the transform type of the transform block indicates a horizontal transform and a vertical transform for the transform block, the transform block position covers either the upper left corner or the lower right corner of the residual block, and the vertical transform when the SVT type is the SVT-V type and the horizontal transform when the SVT type is the SVT-H type are set to Discrete Sine Transform (DST)-7; 10. The video decoding method of claim 1.

3. The SVT type is the SVT-V type, the horizontal transform is based on a Discrete Cosine Transform (DCT)-8 when the transform block position covers the upper left corner of the residual block, or the horizontal transform is based on a Discrete Sine Transform (DST)-7 when the transform block position covers the lower right corner of the residual block; 3. The video decoding method of claim 2.

4. The SVT type is the SVT-H type, the vertical transformation is based on a Discrete Cosine Transform (DCT)-8 when the transform block position covers the upper left corner of the residual block, or the vertical transformation is based on a Discrete Sine Transform (DST)-7 when the transform block position covers the lower right corner of the residual block; 3. The video decoding method of claim 2.

5. 1. A video encoding method comprising: Obtaining a value of a first flag indicating that a spatially varying transform (SVT) is used for the residual block; obtaining a value of a second flag indicating an SVT type for the residual block, the SVT type being either an SVT-vertical (V) type or an SVT-horizontal (H) type, the SVT-V type indicating that a first width of a transform block of the residual block is half of a second width of the residual block and a first height of the transform block is the same as a second height of the residual block, and the SVT-H type indicating that the first width is the same as the second width and the first height is half of the second height; obtaining a syntax element indicating a transform block position of the transform block, and a transform type of the transform block corresponds to the transform block position and the value of the second flag; obtaining transform coefficients of the transform block; including the value of the first flag, the value of the second flag, the syntax element, and the transform coefficients in a bitstream; transmitting the bitstream; 1. A video encoding method comprising:

6. the transform type of the transform block indicates a horizontal transform and a vertical transform for the transform block, the transform block position covers either the upper left corner or the upper right corner of the residual block, and the vertical transform when the SVT type is the SVT-V type and the horizontal transform when the SVT type is the SVT-H type are set to Discrete Sine Transform (DST)-7; 6. The video encoding method of claim 5.

7. The SVT type is the SVT-V type, the horizontal transform is based on a Discrete Cosine Transform (DCT)-8 when the transform block position covers the upper left corner of the residual block, or the horizontal transform is based on a Discrete Sine Transform (DST)-7 when the transform block position covers the lower right corner of the residual block; 7. The video encoding method of claim 6.

8. The SVT type is the SVT-H type, the vertical transformation is based on a Discrete Cosine Transform (DCT)-8 when the transform block position covers the upper left corner of the residual block, or the vertical transformation is based on a Discrete Sine Transform (DST)-7 when the transform block position covers the lower right corner of the residual block; 7. The video encoding method of claim 6.

9. 1. A video decoding device, comprising: one or more processors; a non-transitory computer-readable storage medium coupled to the processor and storing programming executed by the processor; and The programming, when executed by the processor, causes the video decoding device to perform the video decoding method of any one of claims 1 to 4. Video decoding device.

10. 1. A video encoding device, comprising: one or more processors; a non-transitory computer-readable storage medium coupled to the processor and storing programming executed by the processor; and The programming, when executed by the processor, causes the video encoding device to perform the video encoding method of any one of claims 5 to 8. Video coding device.

11. A computer-readable storage medium storing computer instructions that, when executed by one or more processors, cause the one or more processors to perform the video decoding method of any one of claims 1 to 4.

12. A computer readable storage medium storing computer instructions that, when executed by one or more processors, cause the one or more processors to perform the video encoding method of any one of claims 5 to 8.

13. A computer program arranged to cause a computer to carry out the video decoding method according to any one of claims 1 to 4.

14. A computer program arranged to cause a computer to carry out the video encoding method according to any one of claims 5 to 8.

Citation Information

Patent Citations

  • Video encoding / decoding device, method and computer program

    JP2016533077A

  • Image data encoding / decoding method and apparatus

    WO2018066988A1