Method and apparatus for alternate transforms for video coding

文档序号:1395768 发布日期:2020-02-28 浏览:27次 中文

阅读说明:本技术 用于视频编码的替代变换的方法及装置 (Method and apparatus for alternate transforms for video coding ) 是由 徐志玮 于 2015-11-26 设计创作,主要内容包括:本发明公开了一种根据控制旗标于视频编码系统中进行替代变换的方法及装置。在一个实施例中,确定用于当前PU的控制旗标。如果控制旗标为开,如果当前TU具有第一边界类型,则于编码器侧将第一变换应用到每个当前TU(变换单元)或于解码器侧将第一变换的逆变换应用到每个当前TU。此外,如果当前TU具有第二边界类型,则第二变换被用于每个当前TU。第一变换不同于第二变换。另一方面,如果控制旗标为关,则选择的变换被用于每个当前TU。(A method and apparatus for performing a substitution transform in a video coding system according to a control flag is disclosed. In one embodiment, a control flag for the current PU is determined. If the control flag is on, if the current TU has the first boundary type, a first transform is applied to each current TU (transform unit) at the encoder side or an inverse transform of the first transform is applied to each current TU at the decoder side. Furthermore, if the current TU has the second boundary type, a second transform is used for each current TU. The first transformation is different from the second transformation. On the other hand, if the control flag is off, the selected transform is used for each current TU.)

1. A method of transformation for video coding, the method comprising:

receiving input data associated with a current block encoded in an inter-frame or intra-frame prediction mode;

determining a value of a control flag for the current block;

when the control flag has a first value:

applying a first transform to a current transform unit of the current block on an encoder side or applying an inverse transform of the first transform to the current transform unit on a decoder side if the current transform unit of the current block satisfies a first condition with respect to its position; and

applying a second transform to the current transform unit at the encoder side or applying an inverse transform of the second transform to the current transform unit at the decoder side if the current transform unit satisfies a second condition with respect to its position; wherein the first transformation is different from the second transformation; and

when the control flag has a second value:

applying a selected transform to the current transform unit at the encoder side or applying an inverse transform of the selected transform to the current transform unit at the decoder side, wherein the applying the selected transform or applying the inverse transform of the selected transform is independent of whether the current transform unit satisfies the first condition or the second condition.

2. The transform method for video coding of claim 1, wherein the control flag is identified at a transform unit, prediction unit, or coding unit level.

3. The transform method for video encoding of claim 1, wherein the control flag is explicitly identified only when the size of the current block satisfies a block size constraint.

4. The transform method for video coding according to claim 1, wherein one of the first transform and the second transform corresponds to a discrete sinusoidal transform.

5. The method of claim 4, wherein the other of the first transform and the second transform corresponds to a discrete cosine transform.

6. The transform method for video coding according to claim 1, wherein the first condition includes a left boundary of the current prediction unit being a first boundary type and a right boundary of the current prediction unit being a second boundary type.

7. The transform method for video coding according to claim 6, wherein the second condition is that a left boundary of the current prediction unit is the second boundary type and a right boundary of the current prediction unit is the first boundary type.

8. The transform method for video coding of claim 7, wherein the first boundary type is a non-prediction unit boundary type and the second boundary type is a prediction unit boundary type.

9. The transform method for video coding according to claim 1, wherein the first condition includes an upper boundary of the current prediction unit being a first boundary type and a bottom boundary of the current prediction unit being a second boundary type.

10. The transform method for video coding of claim 9, wherein the second condition comprises an upper boundary of the current prediction unit being the second boundary type and a bottom boundary of the current prediction unit being the first boundary type.

11. The transform method for video coding of claim 10, wherein the first boundary type is a non-prediction unit boundary type and the second boundary type is a prediction unit boundary type.

12. An apparatus for transformation in a video coding system, the apparatus comprising one or more electronic circuits configured to:

receiving input data associated with a current block encoded in an inter-frame or intra-frame prediction mode;

determining a value of a control flag for the current block;

when the control flag has a first value:

applying a first transform to a current transform unit of the current block on an encoder side or applying an inverse transform of the first transform to the current transform unit on a decoder side if the current transform unit of the current block satisfies a first condition with respect to its position; and

applying a second transform to the current transform unit at the encoder side or applying an inverse transform of the second transform to the current transform unit at the decoder side if the current transform unit satisfies a second condition with respect to its position; wherein the first transformation is different from the second transformation; and

when the control flag has a second value:

applying a selected transform to the current transform unit at the encoder side or applying an inverse transform of the selected transform to the current transform unit at the decoder side, wherein the applying the selected transform or applying the inverse transform of the selected transform is independent of whether the current transform unit satisfies the first condition or the second condition.

[ technical field ] A method for producing a semiconductor device

The present invention relates to video coding. In particular, the present invention relates to the use of an alternative transform (alternative transform) for inter-predictive coding blocks in video coding.

[ background of the invention ]

High-Efficiency Video Coding (HEVC) is a new international Video Coding standard developed by Joint Video Coding Team (JCT-VC). HEVC is based on a hybrid block based motion compensated Discrete Cosine Transform (DCT) like transform coding architecture. The basic unit for compression is called a Coding Unit (CU), which is a block of 2Nx 2N. CUs may start with a Largest CU (LCU), also referred to as a Coded Tree Unit (CTU) in HEVC, and each CU may be recursively split into four smaller CUs until a predefined minimum size is reached. When partitioning of the CU hierarchical tree is performed, each CU is further partitioned into one or more PU units according to prediction type and Prediction Unit (PU) partition. Each CU or the residual of each CU is split into a Transform Unit (TU) tree to apply a 2D transform (e.g., DCT or Discrete Sine Transform (DST)).

Like many other previous standards, HEVC employs discrete cosine transform type II (DCT-II) as its core transform because of its strong "energy compression" properties. Most of the signal information tends to be concentrated in several low frequency components of DCT-II, which approximates a Karhunen-Loeve Transform (KLT). As is well known in the art, KLT is the best transform to a de-correlated signal (de-correlator signal), which can be modeled by a Markov process. The N-point DCT-II of the signal f [ N ] can be defined in equation (1).

Figure BDA0002314348050000021

For intra prediction residuals, other transforms were found to be more efficient than DCT-II. In JCTVC-B024(Yeo, et., "Mode-Dependent Fast Separable KLT for Block-based Intra Coding", Joint collagen Team on Video Coding (JCT-VC) of ITU-T SG16 WP3and ISO/IEC JTC1/SC29/WG11,2nd Meeting: Geneva, CH,21-28 July,2010, Document: JCTVC-B024), JCTVC-C108(Saxena, et al, "Joint optimal approach and adaptive primary Coding for", Joint collagen Team Video Coding (JCTVC-B024) of ITU-T SG16 ISO/16 ISO 357/11, JCTVC 3519, JCTVC-C125) of JCT-T SG 3 ISO 3533/5635/11, JCT-C3532, JCTVC 16, JCTVC-B2, JCTVC-C15, JCTVC-C19, JCTVC-C15, in the JointCollalibrated Team on Video Coding (JCT-VC) of ITU-T SG16 WP3and ISO/IEC JTC1/SC29/WG11,5th Meeting: Geneva, CH,16-23 March,2011, Document: JCTVC-E125), DST is introduced as a substitute for DCT for slope Intra mode (oblique Intra mode). For inter prediction residuals, DCT-II is the only transform used in current HEVC. However, DCT-II is not the best transform in all cases. In JCTVC-G281(An, et al, "Non-CE 7: Boundary-Dependent Transform for Inter-Predicted response", Joint collagen on Video Coding (JCT-VC) of ITU-TSG16 WP3and ISO/IEC JTC1/SC29/WG11, Document: JCTVC-G281), in some cases, DST type VII (Discrete silicon Transform type VII, DST-VII) and DCT type IV (Discrete cosine Transform type IV, DCT-IV) are proposed instead of DCT-II. When using inter prediction for a PU, the prediction error (i.e., the prediction residual or residuals) near the PU boundaries is typically larger than the prediction error in the middle of the PU. Fig. 1 shows an example of squared residual value (squared residual value) for a PU of 4 × 4. As shown in fig. 1, the residual (i.e., prediction error) of the PU boundary tends to have a large squared value.

As shown in fig. 2, when a PU is divided into a plurality of TUs, a prediction error near a PU boundary is larger than a prediction error near an intra (non-PU) TU boundary. In fig. 2, PU 210 is divided into four TUs (i.e., TU0, TU1, TU2, and TU 3). Block 220 corresponds to the squared residual value of the top-left TU (i.e., TU0), where the residual around the PU boundary (represented by the thick solid line) is typically larger than the residual around the inner TU boundary (represented by the dashed line). For TU0, a trend was observed for the squared residual value peak (peak) to be located approximately near the top left corner and decrease along the bottom right corner. Similarly, for other TUs, the squared residual value peak is also located approximately near the corresponding PU corner and decreases along the center of the PU.

The reason for this effect may be due to different Motion Vectors (MVs) between two neighboring PUs. To account for this non-uniform error distribution, alternative transforms (e.g., DST-VII and DCT-IV) may be used. Equation (2) and equation (3) show N points DST-VII and DCT-IV, respectively, of signal f [ N ].

Figure BDA0002314348050000031

Figure BDA0002314348050000032

Based on the above observation, a method is disclosed in JCTVC-G281 to replace DCT-II with DST-VII or DCT-IV if one and only one of two TU boundaries in horizontal or vertical direction is a PU boundary. Table 1 shows the mapping from boundary type to transform type by using DST-VII. Table 2 shows the mapping from boundary type to transform type by using DCT-IV.

TABLE 1

Figure BDA0002314348050000033

Figure BDA0002314348050000041

TABLE 2

Figure BDA0002314348050000042

F (DST-VII) in Table 1 indicates that the DST matrix is flipped from left to right. The use of F (DST-VII) may also be achieved by flipping the input data before using DST-VII. The same is true for F (DCT-IV). In tables 1 and 2, the terms "non-PU" and "PU" refer to non-PU boundaries and PU boundaries, respectively. In tables 1 and 2, DCT-II is used when both TU boundaries in the horizontal or vertical direction are PU boundaries or non-PU boundaries.

From table 1, the four TUs in fig. 2 would use the transform as shown in table 3.

TABLE 3

TU Horizontal transformation Vertical transformation
TU0 F(DST-VII) F(DST-VII)
TU1 DST-VII F(DST-VII)
TU2 F(DST-VII) DST-VII
TU3 DST-VII DST-VII

Although the Boundary Dependent Transform (BDT) method disclosed in JCTVC-G281 can improve the overall performance of the coding system. However, the BDT method according to JCTVC-G281 does not always achieve the best performance for a given block due to the characteristics of a single TU or PU. It is desirable to develop a method that further improves performance.

[ summary of the invention ]

A method and apparatus for performing a substitution transform in a video coding system according to a control flag is disclosed. According to an embodiment of the present disclosure, a control flag for a current PU is determined. A first transform is applied to each current TU on an encoder side if the control flag has a first value, or an inverse transform of the first transform is applied to each current TU on a decoder side if the current TU has a first boundary type. In addition, if the current TU has the second boundary type, a second transform is applied to each current TU at an encoder side or an inverse transform of the second transform is applied to each current TU at a decoder side. The first transformation is different from the second transformation. On the other hand, if the control flag has the second value, regardless of the boundary type of the current TU, a selected transform (selected transform) is applied to each current TU on the encoder side or an inverse transform of the selected transform is applied to each current TU on the decoder side.

In one embodiment, the control flag may be identified at a TU, PU, or CU level. In another embodiment, the control flag may be explicitly identified only for a current PU, TU, or CU having a first size. In another embodiment, the control flags are explicitly identified according to sequence, picture, or other flags in the slice header level.

In one embodiment, the control flag is implicitly determined based on the boundary type of the current PU, and the first transform, the second transform, the selected transform, or a combination thereof is determined according to another flag that is explicitly identified.

In one embodiment, the second transformation corresponds to a flipped version (flipped version) of the first transformation. The first transform may correspond to a discrete sine transform type V-II (DST-VII) or a discrete cosine transform type IV (DCT-IV). The first boundary types may include a left PU boundary (left PU boundary) plus a right non-PU boundary (right non-PU boundary) and a top non-PU boundary (top non-PU boundary) plus a bottom PU boundary (bottom PU boundary), and the second boundary types include a left non-PU boundary plus a right PU boundary and a top PU boundary plus a bottom non-PU boundary. Further, the first boundary type may also include a left PU boundary plus a right PU boundary, a left non-PU boundary plus a right non-PU boundary, a top PU boundary plus a bottom PU boundary, and a top non-PU boundary plus a bottom non-PU boundary.

The first transform, the second transform, the selected transform, or a combination thereof may depend on the block size of the current PU. For example, if the block size of the current PU is 4x4, the first transform may correspond to DST-VII, and if the block size of the current PU is 8x8 or 16x16, the first transform may correspond to DCT-IV. The selected transform may correspond to discrete cosine transform type II (DCT-II).

In another aspect, this disclosure discloses a method and apparatus for performing an alternative transform in a video coding system according to a control flag. According to an embodiment of the present disclosure, a control flag for a current PU is determined. If the control flag has a first value, if the current TU belongs to the first type, a first transform is applied to each current TU at an encoder side or an inverse transform of the first transform is applied to each current TU at a decoder side. In addition, if the current TU belongs to the second type, a second transform is applied to each current TU at an encoder side or an inverse transform of the second transform is applied to each current TU at a decoder side. The first transformation is different from the second transformation. On the other hand, if the control flag has the second value, the selected transform is applied to each current TU on the encoder side or the inverse transform of the selected transform is applied to each current TU on the decoder side regardless of the boundary type of the current TU. In one embodiment, whether the current TU belongs to the first type or the second type is determined according to a boundary type, a block size, mode information, or a combination thereof.

[ description of the drawings ]

FIG. 1 shows an example of the squared residual values for a 4x4 PU.

Fig. 2 shows an example where the prediction error near a PU boundary is larger than the prediction error near an internal TU (non-PU) boundary, where the PU is partitioned into four TUs.

FIG. 3 is an exemplary flow diagram of an encoding system for a control-flag-based joint block property-dependent transform (blockcharacteristics-dependent transform), according to an embodiment of the present invention.

[ detailed description ] embodiments

The following description is of the best contemplated modes of carrying out the invention. This description is made for the purpose of illustrating the general principles of the present invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims.

As previously described, inter prediction errors near PU boundaries are observed to be larger than inter prediction errors in the middle of the PU. Therefore, a Boundary Dependent Transform (BDT) method is disclosed in JCTVC-G281 to accommodate this uneven error distribution in a single PU. The BDT method selects the transform according to the boundary types (i.e., non-PU boundaries or PU boundaries) summarized in table 1 and table 2.

However, for a given boundary type, the BDT method always applies a fixed type of transform (fixed-type transform) to the block (e.g., DST-VII or DCT-II). However, the characteristics of the prediction residual may be very different from block to block. The BDT method may not always achieve optimal performance. Accordingly, to further improve the performance of the BDT, the present invention discloses a method of controlling the operation of the BDT using a control flag. With explicit control flags, the encoder can use a mode decision method (e.g., Rate Distortion Optimization (RDO)) to decide whether to turn on or off the BDT. The encoder then identifies this control flag to inform the decoder. For example, the control flag may be identified at a TU, PU, or CU level. In one example, the control flag is identified only when the current PU, TU, or CU has a particular size. However, the control flag may also be implicitly determined. For example, the value of the control flag may depend on the block size, such that the boundary-dependent transform is on for some block sizes and off for other block sizes. Alternatively, the value of the control flag may depend on the mode information, such that the boundary-dependent transform is turned on for some prediction modes and turned off for other prediction modes. Furthermore, the control flags may be explicitly identified according to other flags in the sequence, picture, or slice header level. For example, other flags may correspond to present _ flag in the sequence level. If present _ flag is 1, the control flag is present. If present _ flag is 0, the control flag is not present and its value is inferred to be 0. When the control flag is implicitly determined, another explicit flag may be identified to select a transform for a TU associated with the PU.

Explicit control flags may be used as follows. If the control flag is equal to 0, the original DCT in HEVC will be used for TUs. If the control flag is equal to 1, the BDT will be used for TU.

In another example, explicit control flags may be used as follows. If the control flag is equal to 0, the original DCT in HEVC will be used for TUs. If the control flag is equal to 1, the BDT will be used for TU. However, this BDT is modified from JCTVC-G281, so that the modified BDT only follows the decision as to whether to use a flipped or non-flipped version of the transform (T). For each boundary type, the modified BDT may use a different transform than the original BDT. Table 4 shows an example of transform selection for each boundary type. The transform selection may be based on the block size of the current transform unit (or current prediction unit). For example, DST-VII is used for 4 points, and DCT-IV is used for 8 points and 16 points. In Table 4, Flip-T represents a transformation using a Flip transformation matrix of T. In another example, the transform selection may be based on mode information of the current prediction unit.

TABLE 4

Figure BDA0002314348050000081

In the above example, certain transforms (e.g., DST-VII and DCT-IV) are used as exemplary transforms to implement the present invention. However, the invention is not limited to the particular transform used. Regardless of which transform is used, the control flag may be used to control the use of boundary dependent transforms.

In another embodiment, the control flag may be implicitly determined according to the boundary type, block size, or motion information of the current block, and the transform selection is further determined according to another flag that is explicitly identified. For example, the current transform type for the current block is implicitly determined by selecting from a first transform type or a type (explicit signaling type) explicitly identified based on a block boundary type, a block size, or mode information. The current transform type is further determined by an explicitly identified flag if the explicitly identified type is selected.

Fig. 3 shows an exemplary flow diagram of a coding system incorporating block characteristic dependent transforms based on control flags according to an embodiment of the present invention. In step 310, the system receives input data associated with a current PU encoded in inter or intra prediction mode, wherein the current PU is partitioned into one or more TUs. The input data may correspond to the residual of the current PU to be encoded on the encoder side or the encoded residual of the current PU on the decoder side. The current PU may be retrieved from a memory, such as a computer memory or buffer (RAM or DRAM). The video bitstream may also be received from a processor (e.g., a processing unit or a digital signal processor). In step 320, the control flags for the current PU are determined. In step 330, it is tested whether the control flag has a first value (e.g., on). If yes, steps 340 and 350 are performed. If the result is "no," step 360 is performed. In step 340, if the current TU is of the first type (i.e., its block characteristics belong to the first type), a first transform is applied to each current TU on the encoder side or an inverse transform of the first transform is applied to each current TU on the decoder side. In step 350, if the current TU is of the second type (i.e., its block characteristics belong to the second type), a second transform is applied to each current TU on the encoder side or an inverse transform of the second transform is applied to each current TU on the decoder side, wherein the first transform is different from the second transform. In one embodiment, whether the current TU belongs to the first type or the second type is associated with a boundary type of the current TU. In another embodiment, whether the current TU belongs to the first type or the second type is determined according to a boundary type (e.g., PU boundary or non-PU boundary), a block size (e.g., whether greater than a predetermined size), mode information (e.g., specific prediction mode related information), or a combination thereof. In step 360, regardless of the type of the current TU, the selected transform is applied to each current TU on the encoder side or the inverse transform of the selected transform is applied to each current TU on the decoder side.

The above-illustrated flow chart is intended to illustrate an example of intra prediction filtering, according to an embodiment of the present invention. Those skilled in the art may modify each step, rearrange the steps, divide the steps, or combine the steps to practice the invention without departing from the spirit of the invention.

The above description may enable one of ordinary skill in the art to practice the invention as provided in the context of a particular application and its requirements. Various modifications to the described embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments. Thus, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein. In the previous detailed description, numerous specific details were set forth in order to provide a thorough understanding of the invention. However, those skilled in the art will appreciate that the present invention may be practiced.

As described above, embodiments of the present invention may be implemented by various types of hardware, software code, or a combination of both. For example, an embodiment of the invention may be one or more electronic circuits integrated into a video compression chip, or program code integrated into video compression software to perform the processes described herein. Embodiments of the invention may also be program code executing on a digital signal processor to perform the processes described herein. The invention may also encompass a number of functions being performed by a computer processor, digital signal processor, microprocessor, or field programmable gate array. According to the present invention, the processors may be configured to perform specific tasks by executing machine-readable software code or firmware code that defines the specific methods embodied by the present invention. Software code or firmware code may be developed in different programming languages and in different formats or styles. The software code may also be compiled for different target platforms. However, the code format, style and language of the different software codes according to the present invention, as well as other ways to configure the codes to perform tasks, do not depart from the spirit and scope of the present invention.

The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种网络视频图像编码方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类