Encoding / decoding video picture data
By applying a combination of flip and rotate operations to the image area of a video image, the problem of insufficient flexibility and compression efficiency in existing video encoding and decoding technologies is solved, achieving more efficient encoding and decoding to adapt to different types of video content.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- BEIJING XIAOMI MOBILE SOFTWARE CO LTD
- Filing Date
- 2022-10-06
- Publication Date
- 2026-06-09
AI Technical Summary
Existing video encoding and decoding technologies are insufficient in terms of flexibility, compression efficiency, and decoding complexity, especially when dealing with changes in video content, making it difficult to achieve efficient encoding and decoding.
By applying a combination of flip and rotate operations to the image regions of video images during the encoding stage, selecting an appropriate conversion mode, and signaling the conversion information after encoding, and then performing the corresponding deconversion operation during decoding, greater flexibility and adaptability can be achieved.
It improves the flexibility and compression efficiency of video encoding and decoding, adapts to different types of video content, especially games and vertical videos, and reduces encoding complexity.
Smart Images

Figure CN119013974B_ABST
Abstract
Description
Technical Field
[0001] This application generally relates to video image encoding and decoding. In particular, but not exclusively, the technical field of this application relates to encoding video images into a bitstream of encoded video image data, decoding such a bitstream into decoded video images, and corresponding encoding and decoding devices. Background Technology
[0002] This section aims to introduce the reader to various aspects of the field that may relate to aspects of at least one exemplary embodiment of the present application described below and / or for which protection is claimed. This discussion is intended to help provide the reader with background information for a better understanding of the various aspects of the present application. Therefore, it should be understood that these statements are to be interpreted in this light rather than as an admission of prior art.
[0003] The video compression standard Advanced Video Coding (AVC), also known as H.264 or MPEG-4 Part 10, Advanced Video Coding (MPEG-4 AVC), introduced Flexible Macroblock Ordering (FMO) and Arbitrary Slice Ordering (ASO). These techniques involve altering or prioritizing the order in which blocks or slices of video pictures are encoded into the bitstream of the encoded video picture data. Coding gain is achieved because traditional video codecs use raster scanning to scan each block or slice in the video picture data. The aforementioned techniques allow for the creation of causal regions (i.e., regions of content that have already been encoded or decoded and are known for the current block to be encoded at the decoder), where reference samples used for prediction and other forecasts have higher accuracy. FMO and ASO techniques increase the flexibility of video coding and decoding design and allow for greater adjustments to signal characteristics. However, a problem with these techniques is the increased decoding complexity, making the implementation of video encoders and decoders more difficult and expensive.
[0004] Various solutions have recently been developed to address the decoding complexity caused by block reordering techniques. Essentially, these known solutions propose altering the order of the images to be encoded rather than the actual block order, so that during encoding, the blocks are actually scanned as if they were arranged in a different order than the original block order of the video images.
[0005] Patent document WO2008024345A1 relates to adaptive region-based flipping video coding, and more specifically discloses a method and apparatus for video encoding and decoding using region-based flipping. The encoding apparatus includes a video encoder for encoding image regions of a picture into a resulting bitstream, wherein at least one image region is flipped before encoding. The image regions are also flipped when decoding from the bitstream.
[0006] US patent document US9549195B2 relates to an image decoding apparatus and method using inter-frame coding prediction encoding, and more specifically discloses an encoding apparatus including an image conversion module that uses either a left-right symmetric mode conversion or a top-bottom symmetric mode conversion to convert the orientation of an image. A decoding method is also provided for decoding a signal of an intra-frame coded image, wherein, referring to information transmitted along with the image signal, it is determined whether a portion of the image has already been converted in a top-bottom symmetric mode to vertically flip a portion of the image, or in a left-right symmetric mode to horizontally flip a portion of the image. Then, after intra-frame coding prediction, the coded image is decoded by performing a conversion associated with the determined conversion mode.
[0007] Patent document WO2012121744A1 relates to adaptive image rotation, and more specifically discloses a method for decoding an image embedded in an encoded video sequence using a reference image. The method includes receiving at least a portion of the encoded video sequence; decoding the at least a portion of the encoded video sequence to determine the rotation of the embedded image; rotating at least a portion of the reference image according to the determined rotation; and using the rotated at least a portion of the reference image to construct a reconstructed image corresponding to the embedded image.
[0008] The aforementioned state-of-the-art solutions, based on flipping or rotating images or image regions, produce relatively low decoding complexity and thus address the decoding complexity issues arising from altered block order scanning. However, these state-of-the-art solutions are not always satisfactory, as higher compression gain is desired. These known techniques can also be computationally intensive on the encoding side because transition mode selection can be performed based on rate-distortion algorithms, encoding all transition modes before deciding which to choose. This can lead to a significant increase in encoding time, thus hindering the adoption of this technique in encoding standards despite its decoding simplicity. In the case of iterative splitting algorithms (WO2008024345A1), this computational intensive problem can be exacerbated because multiple combinations to be tested are combined.
[0009] In particular, known encoding / decoding techniques do not always provide sufficient flexibility in how video images are encoded / decoded, resulting in limited compression efficiency and latency. Video content can vary significantly from one video signal to another (image features, structural orientation, etc.). This variability in video content needs to be addressed to ensure compression efficiency and avoid latency. The lack of encoding / decoding flexibility is especially pronounced when the encoded / decoded signal exhibits specific characteristics that require adaptation in how encoding / decoding is performed (e.g., video games, screen content, vertical video, etc.).
[0010] Therefore, it is necessary to ensure efficient encoding and decoding as well as low-complexity encoding and decoding techniques. In particular, compression efficiency, as well as encoding / decoding flexibility and adaptability, are required.
[0011] In view of the above, at least one exemplary embodiment of this application has been designed. Summary of the Invention
[0012] The following section provides a simplified summary of at least one embodiment to provide a basic understanding of certain aspects of this application. This summary is not a broad overview of the embodiments. It is not intended to identify key or essential elements of the embodiments. The following outline presents only some aspects of at least one exemplary embodiment in a simplified form as a prelude to a more detailed description provided elsewhere in this document.
[0013] According to a first aspect of this application, a method for encoding a video image including at least one image region is provided, the method comprising:
[0014] - Select a conversion mode that limits the combination of at least one flip operation and at least one rotation operation to the at least one image region;
[0015] - Based on the selected conversion mode, convert the at least one image region into at least one converted image region; and
[0016] - Encode at least one converted image region into the bitstream of encoded video image data.
[0017] Therefore, this application allows for the reorganization of the sample order of each image within the bitstream of encoded video image data during the encoding stage. The original order of samples in image regions can be modified or adjusted, thereby allowing for greater flexibility and efficiency during encoding. More specifically, by utilizing image region-level decisions to apply a combination of at least one flip operation and at least one rotation operation, greater flexibility and adaptability can be achieved in the encoding and decoding of video images. As previously mentioned, the competition between various conversion modes can provide compression coding gains by aligning the main content orientation with the codec's preferred orientation through a broader representation of content diversity. As further described below, by applying flip and rotation, it is possible to introduce new conversion modes that would otherwise not exist. These new hybrid conversion modes may be particularly suitable in certain situations, especially for efficiently encoding / decoding specific video content, such as gaming content or the increasingly mainstream vertical video.
[0018] In an exemplary embodiment, a conversion mode is selected from a list of candidate conversion modes obtained through the following steps:
[0019] - Obtain at least a partially transformed image region by transforming the at least one image region using a candidate transformation pattern; and
[0020] - When the distance between the main direction determined from at least a partially transformed image region and the target direction of at least one image region meets (or satisfies) a threshold (e.g., above or below the threshold), a candidate transformation pattern is added to the candidate transformation pattern list.
[0021] In an exemplary embodiment, a conversion mode is selected from a list of candidate conversion modes by minimizing the rate distortion trade-off.
[0022] In an exemplary embodiment, if the main direction determined from at least a partially converted image region is vertical and / or horizontal, a conversion mode is selected by aligning the main direction with the boundary of the encoding unit (CU).
[0023] In an exemplary embodiment, the method further includes signaling region conversion information indicating that at least one image region of a video image is converted according to a conversion mode into the bitstream of the encoded video image data.
[0024] In an exemplary embodiment, the region conversion information is further defined as the conversion mode selected for converting at least one image region of a video image.
[0025] According to a second aspect of this application, a method for decoding a video image from a bitstream of encoded video image data is provided, wherein the method includes:
[0026] - Obtain the decoded video image by decoding the encoded video image data from the bitstream of the encoded video image data; and
[0027] - A video image is obtained by deconverting at least one image region of the decoded video image according to a conversion mode, wherein the conversion mode defines a combination of at least one flip operation and at least one rotation operation on the image region.
[0028] In an exemplary embodiment, the method further includes:
[0029] -Analyze the region conversion information within the bitstream of the encoded video and image data; and
[0030] - Based on the region conversion information, determine the conversion mode, and perform deconversion on at least one image region according to the conversion mode.
[0031] In an exemplary embodiment, the at least one rotation operation is a rotation of 90°, 180°, or 270°. Therefore, in the case of a 90° or 270° rotation, the width and height of the image are swapped.
[0032] According to a third aspect of this application, a bitstream is provided, which is formatted to include encoded video image data and component conversion information obtained from one of the methods according to a first aspect of this application.
[0033] According to a fourth aspect of this application, an apparatus is provided for encoding video images into a bitstream of encoded video image data. The apparatus includes components for performing the method according to a first aspect of this application.
[0034] According to a fifth aspect of this application, an apparatus is provided for decoding a video image from a bitstream of encoded video image data, the apparatus including components for performing the method according to a second aspect of this application.
[0035] According to a sixth aspect of this application, a computer program product is provided, comprising instructions that, when executed by one or more processors, cause the one or more processors to perform the method according to a first aspect of this application.
[0036] According to a seventh aspect of this application, a non-transient storage medium is provided, which carries instructions for performing program code for executing the method according to a first aspect of this application.
[0037] According to an eighth aspect of this application, a computer program product is provided, comprising instructions that, when executed by one or more processors, cause the one or more processors to perform the method according to a second aspect of this application.
[0038] According to a ninth aspect of this application, a non-transient storage medium is provided, which carries instructions for performing program code for executing the method according to a second aspect of this application.
[0039] The specific properties of at least one of the exemplary embodiments, as well as other objects, advantages, features, and uses of at least one of the exemplary embodiments, will become apparent from the following description of the examples in conjunction with the accompanying drawings. Attached Figure Description
[0040] Reference will now be made to the accompanying drawings by way of example, which illustrate exemplary embodiments of this application, wherein:
[0041] Figure 1 A schematic block diagram illustrating the steps of a method 100 for VP encoding of video images according to the prior art is shown;
[0042] Figure 2 A schematic block diagram illustrating the steps of a method 200 for decoding video images (VP) according to the prior art is shown;
[0043] Figure 3Various conversion modes according to at least one specific exemplary embodiment of this application are illustrated;
[0044] Figure 4 An encoding method and a decoding method according to a specific exemplary embodiment of this application are illustrated;
[0045] Figure 5A and 5B An encoding method according to a specific exemplary embodiment of this application is illustrated;
[0046] Figure 6 An encoding method according to at least one specific exemplary embodiment of this application is illustrated;
[0047] Figure 7 A scan of a block of at least one image component according to a specific exemplary embodiment of this application is shown;
[0048] Figure 8 The main direction in the components of a video image is shown according to a specific exemplary embodiment of this application;
[0049] Figure 9 The main direction in the components of a video image is shown according to a specific exemplary embodiment of this application;
[0050] Figure 10 An encoding method according to at least one specific exemplary embodiment of this application is illustrated;
[0051] Figure 11 An encoding method according to at least one specific exemplary embodiment of this application is illustrated;
[0052] Figure 12 An encoding method according to at least one specific exemplary embodiment of this application is illustrated;
[0053] Figure 13A and 13B An encoding method according to a specific exemplary embodiment of this application is illustrated;
[0054] Figure 14 A decoding method according to a specific exemplary embodiment of this application is illustrated;
[0055] Figure 15 A decoding method according to a specific exemplary embodiment of this application is shown; and
[0056] Figure 16 A schematic block diagram is shown of a system example in which various aspects and exemplary embodiments are implemented.
[0057] Similar or identical elements are indicated by the same reference numerals. Detailed Implementation
[0058] At least one embodiment is described more fully below with reference to the accompanying drawings, which illustrate examples of at least one embodiment. However, embodiments may be embodied in many alternative forms and should not be construed as limited to the examples described herein. Therefore, it should be understood that there is no intention to limit exemplary embodiments to the specific forms disclosed. Rather, this application is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of this application.
[0059] At least one aspect typically involves video image encoding and decoding, another typically involves the transmission of a bitstream provided or encoded, and yet another involves the reception / access of a decoded bitstream.
[0060] At least one of the exemplary embodiments is described for encoding / decoding a video image, but is extended to encoding / decoding multiple video images (image sequences) because each video image is encoded / decoded in the order described below.
[0061] Furthermore, at least one exemplary embodiment is not limited to MPEG standards, such as AVC (ISO / IEC 14496-10 Advanced Video Coding for generic audio-visual services, ITU-T Recommendation H.264, https: / / www.itu.int / rec / T-REC-H.264-202108-P / en), EVC (ISO / IEC 23094-1 Essential video coding), HEVC (ISO / IEC 23008-2 High Efficiency Video Coding, ITU-T Recommendation H.265, https: / / www.itu.int / rec / T-REC-H.265-202108-P / en), and VVC (ISO / IEC 23090-3 Versatile Video Coding, ITU-T...). Recommendation H.266, https: / / www.itu.int / rec / T-REC-H.266-202008-I / en, but it can also be applied to other standards and recommendations, such as AV1 (AOMedia Video 1, http: / / aomedia.org / av1 / specification / ). At least one exemplary embodiment can be applied to any such standard and recommendation, whether pre-existing or developed in the future, as well as any extensions of such standard and recommendation. Unless otherwise stated or technically excluded, the aspects described in this application can be used alone or in combination.
[0062] A pixel corresponds to the smallest display unit on a screen, and it can consist of one or more light sources (a monochrome screen has one light source, while a color screen has three or more light sources).
[0063] A video image, also referred to as a frame or picture frame, includes at least one component (also called a picture component or channel) determined by a specific picture / video format that specifies all information related to pixel values and all information that can be used by a display unit and / or any other device to display and / or decode video image data associated with the video image.
[0064] Video images include at least one component, typically represented as the shape of an array of samples.
[0065] Monochrome video images consist of a single component, while color video images can consist of three components.
[0066] For example, when the image / video format is a well-known (Y, Cb, Cr) format, a color video picture may include a luma or luminance component and two chroma components, or when the image / video format is a well-known (R, G, B) format, a color video picture may include three color components (one for red, one for green, and one for blue).
[0067] Each component of a video image can include multiple samples relative to the number of pixels on the screen on which the video image will be displayed. For example, the number of samples contained in a component may be the same as, or a multiple (or fraction) of, the number of pixels on the screen on which the video image will be displayed.
[0068] The number of samples contained in one component can also be a multiple (or fraction) of the number of samples contained in another component of the same video image.
[0069] For example, in video formats that include a luminance component and two chrominance components, such as the (Y, Cb, Cr) format, depending on the color format under consideration, the chrominance component may contain half the number of samples in width and / or height relative to the luminance component.
[0070] A sample is the smallest unit of visual information that makes up the components of a video image. For example, a sample value can be a luminance value, a chrominance value, or a color value in (R, G, B) format.
[0071] A pixel value is the value of a pixel on the screen. For monochrome video images, a pixel value can be represented by a single sample; for color video images, a pixel value can be represented by multiple co-located samples. A co-located sample associated with a pixel is a sample corresponding to the position of that pixel on the screen.
[0072] Video images are typically viewed as a set of pixel values, with each pixel represented by at least one sample.
[0073] A video image block is a set of samples of one component of a video image. When the image / video format is a well-known (Y, Cb, Cr) format, a block of at least one luminance sample or a block of at least one chrominance sample can be considered; or when the image / video format is a well-known (R, G, B) format, a block of at least one color sample can be considered.
[0074] At least one exemplary embodiment is not limited to a specific image / video format.
[0075] Generally, this application relates to encoding video images into a bitstream of encoded video image data, and to decoding such a bitstream of encoded video images. Specifically, this application relates to transforming image regions of a video image as part of a preprocessing step prior to encoding, thereby applying a combination of at least one flip operation and at least one rotation operation to said image region. In other words, the concept of this application is to apply transformations involving flipping and rotation at the image region level (i.e., over the entire video image or its image regions) before encoding into a bitstream of encoded video image data. The video image can then be reconstructed by decoding such a bitstream by applying a de-transformation (or no-transformation) at the image region level, i.e., by applying a transformation opposite to the transformation previously performed during the encoding stage.
[0076] The image region transformation according to the invention can be performed as part of preprocessing prior to encoding the video images, for example, before the encoding cycle (and thus outside the encoding cycle). Alternatively, or cumulatively, the transformation can be performed as a pre-processing stage within the encoding cycle.
[0077] As will become apparent from the embodiments described further below, candidate transformations can be applied during the first (fast) pass of the encoding cycle. In this first pass, most encoding tools (e.g., template-based tools such as ITMP, TIMD, etc., and in-loop filters such as deblocking, ALF, SAO, etc.) may be disabled, and partitioning (by depth segmentation and partitioning mode) may be restricted to quickly select the best candidate transformation mode. Then, actual encoding utilizing the selected transformation mode can be performed in the second pass of the encoding cycle.
[0078] As further described below, the present invention provides greater flexibility and adaptability in the encoding and decoding of video images by allowing the selection of a conversion mode (hybrid) that defines a combination of at least one flip operation and at least one rotation operation.
[0079] Other aspects and advantages of this application will now be described with reference to the accompanying drawings in specific exemplary embodiments.
[0080] Figure 1 and Figure 2 This provides an overview of the video encoding / decoding methods used in current video standard compression systems such as VVC.
[0081] Figure 1 A schematic block diagram illustrating the steps of a method 100 for encoding video images (VP) according to existing technology is shown.
[0082] In step 110, the video image VP is partitioned into sample blocks, and the partition information data is signaled into a bitstream. Each block includes a sample of one component of the video image VP. Therefore, these blocks include samples defining each component of the video image VP.
[0083] For example, in HEVC, an image is divided into coding tree units (CTUs). Each CTU can be further subdivided using quadtree partitioning, where each leaf of the quadtree represents a coding unit (CU). Partition information data can then include data defining the CTUs and the quadtree subdivisions of each CTU.
[0084] Then, each sample block (CU) (or simply block) is encoded within the coding cycle using intra-frame or inter-frame predictive coding modes. In the following text, the qualifier "within the cycle" can also be assigned to steps, functions, etc., implemented within the cycle (i.e., the coding cycle in the encoding phase or the decoding cycle in the decoding phase).
[0085] Intra-frame prediction (step 120) involves predicting the current block based on already encoded, decoded, and reconstructed samples located around the current block in the image, typically on top of and to the left of the current block. Intra-frame prediction is performed in the spatial domain.
[0086] In inter-frame prediction mode, motion estimation (step 130) and motion compensation (135) are performed. Motion estimation searches for candidate reference blocks in one or more reference video images used for predictive coding of the current video image to serve as good predictors for the current block. For example, a good predictor for the current block is a predictor similar to the current block. The output of motion estimation step 130 is one or more motion vectors and one or more reference image indices associated with the current block. Next, motion compensation (step 135) obtains the predicted block using the motion vectors and reference image indices determined by motion estimation step 130. Essentially, the block belonging to the selected reference image and pointed to by the motion vector can be used as the predicted block for the current block. Furthermore, since the motion vector is represented as a fraction of integer pixel positions (called subpixel precision motion vector representation), motion compensation typically involves spatial interpolation of some reconstructed samples of the reference image to compute the predicted block sample. The prediction information data is signaled into a bitstream. Prediction information may include prediction modes, prediction information coding modes, intra-frame prediction modes or one or more motion vectors and one or more reference picture indices, and any other information used to obtain the same prediction block on the decoding side.
[0087] Taking into account, for example, the encoding of the prediction residual block calculated by subtracting the candidate prediction block from the current block, and the signaling of the prediction information data required to determine the candidate prediction block on the decoding side, method 100 selects one of the intra-frame mode or inter-frame coding mode by optimizing the rate-distortion tradeoff.
[0088] Typically, the best prediction pattern is given as the best encoding pattern p for the current block. * The prediction model is given by the following formula:
[0089] p * =Argmin p∈P {RD cost (p)} (1)
[0090] Where P is the set of all candidate coding patterns for the current block, p represents the candidate coding pattern in that set, and RD cost (p) represents the rate-distortion cost of the candidate coding pattern p, typically expressed as:
[0091] RD cost(p) =D(p)+λ.R(p).
[0092] D(p) is the distortion between the current block and the reconstructed block obtained after encoding / decoding the current block with candidate coding mode p, R(p) is the rate cost associated with encoding the current block with coding mode p, and λ is the Lagrangian parameter representing the rate constraint for encoding the current block, which is usually calculated from the quantization parameters used to encode the current block.
[0093] Typically, the current block is encoded from the predicted residual block PR. More precisely, the predicted residual block PR is computed, for example, by subtracting the best predicted block from the current block. The predicted residual block PR is then transformed using a DCT (Discrete Cosine Transform) or DST (Discrete Sine Transform) type transform or any other suitable transform (step 140), and the resulting transform coefficient block is quantized (step 150).
[0094] In a variant, method 100 can also skip transform step 140 and apply quantization directly to the predicted residual block PR according to the so-called transform-skip coding mode (step 150).
[0095] The quantized transform coefficient block (or quantized prediction residual block) is entropy encoded into the bit stream (step 160).
[0096] Next, the quantized transform coefficient block (or quantized residual block) is dequantized (step 170) and inverse transformed (180) (or not) as part of the encoding loop to obtain the decoded prediction residual block. The decoded prediction residual block is then combined with the prediction block, usually by summation, which provides the reconstructed block.
[0097] In step 160, other information data can also be entropy encoded to encode the current block of the video image VP.
[0098] In-loop filters (step 190) can be applied to the reconstructed image (including reconstructed blocks) to reduce compression artifacts. Loop filters can be applied after all image blocks have been reconstructed. Examples include unblocking filters, sample adaptive offset (SAO) filters, or adaptive in-loop filters.
[0099] The reconstructed block or the filtered reconstructed block forms a reference picture, which can be stored in the decoded picture buffer (DPB) so that it can be used as a reference picture for encoding the next current block of the video picture VP or the next video picture to be encoded.
[0100] Figure 2 A schematic block diagram illustrating the steps of a method 200 for decoding a video image VP according to existing technology is shown.
[0101] In step 210, partition information data, prediction information data, and quantization transform coefficient blocks (or quantization residual blocks) are obtained by entropy decoding of the bitstream of the encoded video image data. For example, this bitstream is generated according to method 100.
[0102] Other information data can also be entropy-decoded from the bitstream for use in decoding the current block of a video image VP.
[0103] In step 220, the reconstructed image is divided into current blocks based on the partitioning information. Each current block is entropy decoded from the bitstream within the decoding loop. Each decoded current block is either a quantized transform coefficient block or a quantized prediction residual block.
[0104] In step 230, the current block is dequantized and possibly inverse transformed (step 240) to obtain the decoded prediction residual block.
[0105] On the other hand, prediction information data is used to predict the current block. The predicted block is obtained through its intra-frame prediction (step 250) or its motion-compensated temporal prediction (step 260). The prediction processing performed on the decoding side is the same as the prediction processing performed on the encoding side.
[0106] Next, the decoded prediction residual block and the prediction block are combined, usually by summing, to provide the reconstruction block.
[0107] In step 270, the in-loop filter can be applied to reconstruct the image (including reconstructed blocks), and the reconstructed blocks or filtered reconstructed blocks form a reference image, which can be stored in the decoded image buffer (DPB) as described above. Figure 1 ).
[0108] Now refer to Figure 3-16 Specific exemplary embodiments of this application are described, with reference to the steps of the features described above where applicable. Figure 1-2 However, it should be noted that this application is not limited to... Figure 1 and Figure 2 These are specific encoding and decoding examples, and can be applied to other exemplary encoding and decoding methods.
[0109] This application provides encoding and decoding methods for encoding and decoding video images. The encoding and decoding of video images are described in the following exemplary embodiments. However, it should be understood that this application can be applied to multiple video images, such as video images from a video data stream.
[0110] In the following exemplary embodiments, the video image being encoded and decoded is considered to be defined by picture components. However, it should be understood that the nature and number of components contained in the video image under consideration may vary depending on the circumstances (e.g., depending on the picture / video format of the specified video image), and this application is more generally applied to video images that include at least one component. In the exemplary embodiments described below, the video image being processed is a color video image. In the first example, the picture components correspond to a luminance (or luminance) component and two chrominance (or chrominance) components (e.g., in a well-known format (Y, Cb, Cr)). In the second example, the picture components correspond to three color components, such as red, green, and blue. In a variant, the video image at hand is a monochrome video image that includes a single picture component.
[0111] As previously described, the encoding and decoding methods of this application involve converting and deconverting (or not converting) image regions of a video image (2D video image) by applying at least one of a flip operation and / or a rotation operation to the image region. Thus, each image region of the video image can be independently converted and deconverted according to its respective conversion mode. Converting an image region means applying a flip operation or a rotation operation, or both, to the image region. Similarly, deconverting an image region means applying an inverse conversion to the image region to return it to its original state before conversion. Therefore, deconversion is performed by performing flip and / or rotation operations, which are the opposite of the operations performed in the conversion phase. For example, if an image region is converted by applying a horizontal flip operation, the converted image component can be deconverted by applying a horizontal flip operation again to the converted image component. In another example, a component converted by a 90° clockwise rotation can be deconverted by applying a 90° counterclockwise rotation to it.
[0112] As further described below, the conversion and deconversion of image regions of a video image can be performed according to a conversion mode to achieve encoding and decoding, respectively. This conversion mode defines a combination of at least one flip operation and at least one rotation operation. In other words, converting an image region can be achieved by applying one or more flip operations and one or more rotation operations to the image region in any order. Similarly, deconversion can be achieved by applying an inverse conversion to the image region to return it to its original state before conversion. Therefore, deconversion is performed by performing a conversion, i.e., combining flip and rotation operations, which is the opposite of the conversion performed during the conversion phase. For example, if an image region is converted by applying a horizontal flip operation and then rotating it 90° clockwise, the converted image region can be deconverted by applying a 90° counterclockwise rotation to the converted image region and then performing a horizontal flip operation.
[0113] In this document, applying a flip and / or rotate operation to an image region means that each image component of the image region undergoes the operation. Similarly, transforming or de-transforming an image region means applying the same flip and / or rotate operation to each image component of the image region. For example, if a combination of at least one flip operation and at least one rotate operation is applied to an image region, then each image component of that region undergoes the combination.
[0114] Various flip and rotate operations can be considered to convert and deconvert image regions in videos and images. Figure 3 Exemplary transformation patterns MD0-MD6 (collectively referred to as MD) are shown, according to which image regions (more specifically, their components) can be transformed. Each transformation pattern MD defines at least one of the flip and / or rotation operations to be applied to the image region. In other words, the transformation pattern MD either involves only flip operations (i.e., one or more), only rotation operations (i.e., one or more), or a combination of flip and rotation operations. Therefore, transformation means flipping, rotating, or a combination of both. The order in which multiple flip and / or rotation operations are applied to a transformation can directly affect the transformation result at hand (especially when the transformation involves a combination of flipping and rotation).
[0115] More specifically, Figure 3 The identity function ID1 is shown, according to which the original image video 301 remains unchanged. Therefore, applying the identity function ID1 to a specific image region will produce the same image region, which may be appropriate in some cases.
[0116] Furthermore, the first conversion mode MD0 corresponds to a horizontal flip applied to the video image, resulting in, for example, video image 302. The second conversion mode MD1 corresponds to a 90° clockwise rotation of the video image, resulting in, for example, video image 304. The third conversion mode MD2 corresponds to a 90° counterclockwise rotation of the video image, resulting in, for example, video image 306. The fourth conversion mode MD3 corresponds to a vertical flip (i.e., horizontal symmetry) applied to the video image, resulting in, for example, video image 308. The fifth conversion mode MD4 corresponds to a horizontal flip (i.e., vertical symmetry) applied to the video image, followed by a vertical flip, resulting in, for example, video image 310. The sixth conversion mode MD5 corresponds to a vertical flip and a 90° clockwise rotation applied to the video image, resulting in, for example, video image 312. The seventh conversion mode MD6 corresponds to a vertical flip applied to the video image, followed by a 90° counterclockwise rotation, resulting in, for example, video image 314. In this particular example, any other combination of the above conversions is a repetition (or equivalent) of these conversions. Therefore, the image region of the original video image 301 can be converted by applying any of the conversion modes MD0-MD6.
[0117] As can be seen, for example, the conversion mode MD1 is the opposite of the conversion mode MD4.
[0118] However, the above examples of transformation patterns (MD) are not limiting, and other variations can be considered. The nature and number of transformation patterns implemented in this application can be adjusted according to specific circumstances.
[0119] For example, using a syntax where "H" represents a horizontal flip, "R" represents a 90° (clockwise) rotation, and "+" represents the next / following operation in the operation combination, the above conversion patterns MD0-MD6 can be defined as follows:
[0120] • Switching mode MD0 = H,
[0121] • Conversion mode MD1=R,
[0122] • Convert mode MD2 = R + R + R (or H + R + H),
[0123] • Convert mode MD3 = H+R+R,
[0124] • Convert mode MD4 = R + R,
[0125] • Convert the MD5 hash to R+H, and
[0126] • Convert mode MD6 = H+R
[0127] It can be seen that it is impossible to achieve all of the above conversion modes MD0-MD6 by applying only one or more rotation operations or only one or more flip operations.
[0128] In fact, if only rotation is used, only the following transformation modes (MD) can be achieved:
[0129] ·MD1=R,
[0130] MD2 = R + R + R (or 270° rotation)
[0131] MD4 = R + R (or 180° rotation)
[0132] When considering only the rotation of the image region, only the conversion modes MD1 (rotate 90°), MD2 (rotate 270°), and MD4 (rotate 180°) are available. It's worth noting that a 180° rotation, combined with horizontal and vertical flips, provides the same result, except that it reduces processing costs and avoids the need for temporary buffers.
[0133] Furthermore, if only flipping is used, only the following conversion modes (MD) can be achieved:
[0134] ·MD0=H
[0135] ·MD3=V
[0136] ·MD4=H+V
[0137] When considering only the flipping of the image region, there are only the conversion modes MD0 (horizontal flip), MD3 (vertical flip), and the possible MD4 (horizontal and vertical flip). It is worth noting that the combination of 180° rotation provides the same result as the combination of horizontal and vertical flip, except that it reduces processing costs and also avoids the need for a temporary buffer.
[0138] By applying a combination of at least one flip operation and at least one rotation operation, the following conversion modes can be achieved:
[0139] ·MD5=R+H
[0140] ·MD6=H+R
[0141] Advantageously, the combination of flip and rotate brings two specific transition modes, also known as "hybrid" transition modes, which would not exist without the synergy of rotation and flip: transition modes MD5 (vertical flip plus 90° rotation, or similar horizontal flip plus 270° rotation) and MD6 (vertical flip plus 270° rotation, or similar horizontal flip plus 90° rotation). These additional transition modes bring diversity to the predictor candidates, thus allowing for the efficient processing of specific video content, such as gaming content or the increasingly popular vertical videos.
[0142] Therefore, the present invention provides greater flexibility and adaptability in the encoding and decoding of video images by allowing the selection of a hybrid conversion mode (hybrid) that defines a combination of at least one flip operation and at least one rotation operation. In this exemplary embodiment, MD5 and MD6 are two hybrid conversion modes involving flipping and rotation, which can be selected and applied during the encoding and decoding stages.
[0143] For example, consider an implementer (such as an embedded device) with sufficient processing power and memory that only implements horizontal flipping and 90° rotation. This would allow the application of transition modes MD0 and MD1, as well as transition modes MD5 and MD6 (by combining flipping and rotation). Assuming sufficient power is available, the 90° rotation can be used multiple times consecutively to produce 180° or 270° rotations. Thus, all possible transition modes MD0-MD6 can be generated by combining only one rotation and one flip (horizontal flip and 90° rotation) implemented as the basic mode.
[0144] In another example, considering implementers with sufficient memory but low processing power or latency constraints on the system, it might be more advantageous to implement multiple transformation modes that minimize the number of operations. For instance, implementing a 180° rotation saves one processing operation for transformation mode MD4 compared to a combination of horizontal and vertical flips. Similarly, transformation modes MD5 and MD6 can be implemented as a single operation, thus saving processing costs.
[0145] The examples above demonstrate that competition among various transformation modes (MDs) can provide compression coding gains by considering a broader representation of content diversity and aligning the main content orientation with the codec's preferred orientation. Specifically, significant compression coding gains can be achieved by using a set of transformation modes (MDs) comprising at least one hybrid transformation mode that defines a combination of at least one flip operation and at least one rotation operation. As mentioned above, this combination brings flexibility and greater efficiency to the encoding and decoding of video images.
[0146] Therefore, this invention allows for highly efficient encoding / decoding of image regions in 2D video images. It should be noted that rotation in 2D video encoding is not a mainstream technique because 2D video codecs tend to favor horizontally dominant natural structures. This bias is due to the effect of horizontal gravitational superposition on structural layout (which is the same reason why most animal eyes are likely horizontally aligned). This application overcomes this bias by combining flipping and rotation into the same transformation pattern, which can be applied to image regions for encoding and decoding.
[0147] In the following examples, each rotation operation is assumed to be a clockwise or counterclockwise rotation based on any one of the following rotation angles: 90°, 180°, and 270° (multiples of 90°). However, other implementations are also possible, in which rotations are performed at angles other than 90°, 180°, and 270° for conversion and deconversion.
[0148] In the exemplary embodiments described further below, conversion modes MD0-MD6 are considered to together form a conversion mode set, in which each region of the video image can be converted or deconverted. However, other exemplary embodiments using any subset of conversion modes MD0-MD6 are also possible.
[0149] In one particular exemplary embodiment, the set of transformation modes MD from which to transform and de-transform an image region may be selected includes at least one hybrid transformation mode, i.e., at least one transformation mode MD (e.g., MD5 and / or MD6) defines a combination of at least a flip operation and at least one rotation operation. As an example, the set of transformation modes MD includes MD0-MD6 as described above.
[0150] In a specific example, one can choose from a set of options that includes at least one hybrid transformation mode and an identity function. For example, one can choose between the identity function ID1 and transformation modes MD0-MD6.
[0151] It should be understood that when converting and deconverting video images in this application, the conversion and deconversion can be applied to the entire video image, or they can be applied separately to one or more image regions of the video image. Therefore, by applying conversion and deconversion to the image regions at hand, each image region of the video image can be encoded and decoded in a similar manner.
[0152] As further described below, deconversion of image components during decoding means performing the opposite transformation on the image regions as performed during encoding. Therefore, deconversion can be performed according to an appropriate transformation pattern from the set of transformation patterns MD0-MD6 or any subset thereof.
[0153] This application proposes to perform a transformation on at least one image region of a video image as a preprocessing step before encoding, meaning that the transformation is performed outside the encoding loop (see [link to application]). Figure 1 Similarly, at least one image region of the encoded video image will be deconverted as a preprocessing step before decoding, i.e., outside the decoding loop (see...). Figure 2 Therefore, the encoding and decoding methods of this application are unknown to the codec. In the following exemplary embodiments, the codec used can therefore be any one of VVC, HEVC, AV1, etc.
[0154] Figure 4 A schematic block diagram is shown illustrating steps 402-404 of an encoding method 400 for encoding a video image VP according to a specific exemplary embodiment, and steps 408-410 of a decoding method 406 for decoding a video image from a bitstream of encoded video image data. This diagram illustrates the general concepts of encoding and decoding in this application, particularly the exemplary embodiments.
[0155] like Figure 4 As shown, in encoding method 400, the video image PCT1 is obtained as the encoding input. As mentioned earlier, it is currently believed that the image video PCT1 is a color video image defined by three image components.
[0156] In conversion step 402, at least one image region of image PCT1 is converted into at least one converted image region based on conversion mode MD. Therefore, each image component of the at least one converted image region is converted based on the same conversion mode MD. The conversion mode MD used in conversion step 402—denoted as MDS—is hybrid, meaning it defines a combination of at least one flip operation and at least one rotation operation. In a specific example, conversion mode MD combines one flip operation and one rotation operation. The selected conversion mode MDS is, for example, conversion mode MD5 or MD6 as described above.
[0157] exist Figure 4 The encoded image region can represent all or only a sub-part of the video image PCT1. In the latter case, similar processing can be performed to encode and decode each image region of the video image PCT1. For simplicity, the encoding and decoding of an image region is described in the following example, where the image region constitutes the entirety of the video image PCT1.
[0158] In one specific exemplary embodiment, a conversion mode MD can be selected for the video image PCT1, for example, from the conversion mode set MD0-MD6. Therefore, each image component of the video image PCT1 is converted according to the selected conversion mode, denoted as MDS. According to a specific embodiment, the selected conversion mode MDS defines a combination of at least one flip operation and at least one rotation operation for the video image PCT1. The manner of performing this selection will be described later in a specific exemplary embodiment.
[0159] Then, the components of the converted video images are encoded (step 404) into the bitstream BT1 of the encoded video image data. The encoding method can be adjusted according to each case. For example, it can be considered as described in the previous reference. Figure 1 The process involves entropy encoding.
[0160] Furthermore, decoding method 406 obtains the bitstream BT1 of the encoded video image data output by encoding method 400 as input. In decoding step 408, the decoded video image is obtained by decoding the encoded video image data from bitstream BT1. The method of performing decoding can be adjusted according to each case. For example, it can be considered as described above. Figure 2 The entropy decoding is then performed.
[0161] In the deconversion (or non-conversion) step 410, video image PCT1 (i.e., a reconstructed version of video image PCT1) is obtained by deconverting the decoded video image obtained from decoding step 408 according to the conversion mode MD. As further described below, the conversion mode MD used to deconvert the decoded video image is the opposite of the conversion mode MDS selected in encoding method 400 (encoding step 402) for converting video image PCT1. By deconverting the decoded video image (i.e., each of its image components) according to the conversion mode opposite to MDS, the reconstructed video image PCT2 can be obtained.
[0162] Figure 5A A schematic block diagram of the steps of an encoding method 500 for encoding a video image PCT1 according to a specific exemplary embodiment is shown. The video image PCT1 includes at least one image region defined by three image components CP1, CP2 and CP3.
[0163] In step 502, a transformation mode MD is selected, wherein the selected transformation mode (labeled MDS) defines a combination of at least one flip operation and at least one rotation operation, the combination of which is applied to the image region PCT1. The selected transformation mode MDS can be, for example, as referenced above. Figure 3 The conversion mode is MD5 or MD6.
[0164] In conversion step 504, the image region PCT1 is converted into converted image components based on the selected conversion mode MDS. To do this, each image component of the image region PCT1 is converted according to the selected conversion mode MDS.
[0165] Exemplary implementations of steps 502 and 504 are as follows Figure 5B As shown, the selected conversion mode MDS is MD6 as described above.
[0166] The selected conversion mode (MDS) is determined at the image region level.
[0167] Therefore, each image region of the video image can be converted based on the corresponding conversion mode MDS selected in step 502.
[0168] In encoding step 506 ( Figure 5A In this process, the converted image regions (i.e., each converted image component) are encoded into the bitstream BT1 of the encoded video image data. Therefore, the set of converted components can be encoded.
[0169] Therefore, this application allows for the reorganization of the sample order of each image within the bitstream of encoded video image data during the encoding stage. The original order of samples in image regions can be modified or adjusted, thereby allowing for greater flexibility and efficiency during encoding. More specifically, greater flexibility and adaptability can be achieved in the encoding and decoding process of video images by utilizing a combination of at least one flip operation and at least one rotation operation at the image region level. As previously mentioned, the competition between various conversion modes can provide compression coding gain by aligning the main content orientation with the codec's preferred orientation through a broader representation of content diversity. New conversion modes that would otherwise not exist can be introduced by applying flip and rotation. These new hybrid conversion modes may be particularly suitable in certain situations, especially for efficiently encoding / decoding specific video content, such as gaming content or the increasingly mainstream vertical video.
[0170] Similarly, flexibility and efficiency can be achieved in the decoding stage. Preprocessing the image to be encoded allows for limitations on power consumption and encoding time.
[0171] In a particular exemplary embodiment, the encoding method 500 further includes the step of signaling (or inserting) region conversion information DT1 into the bitstream BT1 of the encoded video picture data. The region conversion information DT1 indicates whether at least one picture region of the video picture PCT1 has been converted according to the conversion mode MD. In this example, the region conversion information DT1 thus indicates that at least one picture region of the video picture PCT1 has been converted according to the conversion mode MD. The format and manner in which this information is carried into the bitstream BT1 can be adjusted according to specific circumstances. For example, the region conversion information DT1 may include a bit or indicator that is in a first value to indicate that no picture region conversion has been performed, or in a second different value to indicate that at least one picture region conversion has been performed.
[0172] In a particular exemplary embodiment, the region conversion information DT1 is carried in the bitstream BT1 as a header, parameter, or SEI (Supplemental Enhancement Information) message within the bitstream.
[0173] In a particular exemplary embodiment, the region transformation information DT1 further defines at least one transformation mode MDS, which is selected for transforming at least one image region of the video image PCT1. For example, the region transformation information DT1 may define a selected transformation mode MD5 or MD6 associated with a specific image region (see [link to relevant documentation]). Figure 4 ).
[0174] As further described below, the deconversion of video image data during the decoding phase can be performed based on the region conversion information DT1 signaled within the bitstream BT1. In other variations, the region conversion information DT1 is not signaled within the bitstream BT1, but is obtained during decoding by any other suitable means (e.g., by transferring the applied conversion mode MDS from the encoder to the decoder).
[0175] Figure 6 A schematic block diagram illustrating the steps of an encoding method 600 for encoding a video image PCT1 according to a specific exemplary embodiment is shown. The video image PCT1 includes at least one image region defined by three image components CP1, CP2, and CP3 (collectively referred to as CP). This exemplary embodiment may correspond to encoding method 500 (…). Figure 5A An exemplary implementation of ) is provided. It can be seen that encoding method 600 includes references. Figure 1 The steps already described, and therefore for the sake of brevity, will not be described in detail again.
[0176] For simplicity, the following text considers the encoding of the image region corresponding to the entire video image PCT1; however, variations are possible that encode one or more image regions corresponding to sub-parts of the video image PCT1 in a similar manner.
[0177] As previously described, in partitioning step 110, the video image PCT1 is partitioned into sample blocks, and the partitioning information data is signaled into a bitstream. These blocks include samples defining each component CP of the video image PCT1. For example, these blocks may correspond to a CTU or a subdivision of a CTU, i.e. Figure 6 The CU shown.
[0178] In step 602, each sample block is received as input. The conversion mode MD (denoted as MDS) for the video image PCT1 is selected (step 602), for example, as in the previous selection step 502 (…). Figure 5A Choose from the conversion modes MD0-MD6 described in the description.
[0179] Then, the video image PCT1 is converted based on the selected conversion mode MDS (step 604), for example, as described above in conversion step 504 (…). Figure 5A As described above. The selected conversion mode MDS defines a combination of at least one flip operation and at least one rotation operation. Therefore, each picture component CP of the video picture PCT1 is converted according to the same conversion mode, namely the selected conversion mode MDS. In this example, the converted picture component CP is output as block BK1.
[0180] Then, the encoding of the video picture PCT1 is performed by processing each current block in an encoding loop, which includes the previously referenced... Figure 1 The steps described below are an iteration of the encoding loop used to encode the current block, performing similar steps in each iteration to process each current block BK1 sequentially.
[0181] More specifically, coded cyclic reception ( Figure 5A The transformed image component CP obtained in transformation step 604 is used as the current block BK1. In this encoding loop, steps 140-180 are performed as previously described. Specifically, a prediction residual block is calculated based on the prediction blocks of the current block BK1 and the current block BK2.
[0182] In encoding step 160, the transformed image component CP of the current block is encoded into the bitstream BT1 of the encoded video image data. For example, the quantization transform coefficient block (or quantization prediction residual block) obtained in step 150 based on the prediction residual block is entropy encoded into the bitstream BT1. By processing each current block BK1 consecutively in the same manner, each transformed image component CP of the video image PCT1 can be encoded into the bitstream BT1 of the encoded video image data.
[0183] Encoding step 160 may further include signaling the component conversion information DT1 into the bit stream BT1, as previously described. Figure 5A However, variants without this signaling are also possible.
[0184] In addition, steps 170-180 are performed, and then the decoded prediction residual block and prediction block are combined, as described in the previous reference. Figure 1 As described, to obtain the reconstructed block labeled BK2 ( Figure 6 As already explained, intra-frame prediction can be performed based on reconstructed block BK2 (step 120).
[0185] In deconversion step 608, the reconstructed block BK3 is obtained by deconverting the reconstructed block marked BK2 according to the conversion mode MDS selected for the component CP in step 602. In other words, the component CP of the current block is deconverted according to the conversion mode MDS selected for the video image PCT1.
[0186] In this way, each component CP of the reconstructed video image can be deconverted according to the same transformation mode MDS selected for the video image PCT1 in step 602. Deconversion is achieved by applying a transformation (flip and rotate) to each component CP that is the opposite of the transformation MDS applied to the component CP in step 604, thereby obtaining a deconverted block BK3 representing the current block BK1 (having the same orientation or state in terms of flip and rotation).
[0187] Therefore, in the deconversion step 608, the reverse flip and rotate operations are performed in the opposite order compared to the combination of flip and rotate operations defined by the selected conversion mode MDS.
[0188] Then, an in-loop filter, such as a cross-component filter, can be applied (step 190) to the deconverted block BK3, and more generally, to the deconverted image (including the deconverted reconstructed block BK3) to reduce compression artifacts, as previously described. Figure 1For example, after all image patches have been reconstructed and deconverted, an in-loop filter can be applied, though variations are possible, as will be discussed later. These include, for example, a deblocking filter, a sample adaptive offset (SAO), a cross-component SAO (CC-SAO), and an adaptive loop filter (ALF). However, variations without such a loop filter are possible.
[0189] In a specific exemplary embodiment, inter-frame prediction can be achieved by performing motion estimation (step 130) and motion compensation (step 135) as described above. Furthermore, the inter-frame prediction mode includes an additional transformation step 610 to obtain a well-predicted block for the next block BK1 after the current block BK1 by transforming the deconverted block BK3 output from deconversion step 608 (possibly after post-filtering 190) according to the selected transformation mode MDS. This new transformation allows for the construction of sufficient prediction blocks for the next current block processed in the encoding loop. Thus, motion estimation (step 130) is based on reconstructed blocks that are in the same flipped / rotated state as the video image in which motion compensation blocks are searched.
[0190] As can be seen from the exemplary embodiments described above, a conversion decision can be performed during the encoding stage of the video image PCT1 to select a suitable conversion mode MDS applied to the entire video image PCT1 (or at least to a region of the video image PCT1). By selecting the most suitable conversion mode MDS, i.e., a hybrid conversion mode involving flipping and rotation, coding flexibility and adaptability can be achieved, and thus coding efficiency with high compression gain can be improved. In particular, an optimal rate-distortion tradeoff can be achieved.
[0191] In a particular exemplary embodiment, a rate-distortion score (or rate-distortion tradeoff) is calculated for a plurality of candidate conversion modes MD (e.g., conversion modes MD0-MD6) by encoding video images PCT1 (or at least a portion thereof), and the candidate conversion mode with the highest rate-distortion score is selected as the selected conversion mode MDS of the image component CP.
[0192] In specific examples, the conversion pattern MD0-MD2 (e.g.) was observed. Figure 3 (As shown) is generally more suitable for most natural content (non-screen content).
[0193] In-depth analysis of encoded video images with the best rate-distortion tradeoff allows for a better understanding of the fundamental principles underlying the compression gain achieved using the chosen conversion mode.
[0194] As mentioned earlier, each block of the video image to be encoded is scanned according to a scanning order applicable to each case. Figure 7As illustrated in the example, traditional video codecs use raster scanning to sequentially scan each block or slice of video picture data. This results in the creation of causal regions in the video picture (i.e., regions of content that have already been encoded or decoded and are known for the current block to be encoded at the decoder), where reference samples used for prediction and other predictions have higher accuracy.
[0195] It has been observed that when raster scanning is used for block scanning, higher coding efficiency can be achieved for image content containing directional features extending along a specific direction, typically from the top-left edge to the bottom-right edge of the image. This is due to the specific L-shaped and causal regions of the image content resulting from raster scanning. Compared to the top-right region of the video image, the reference samples used for prediction produce higher coding accuracy in the top, left, and top-left regions of the current block (because they are spatially closer). Furthermore, some samples are not yet encoded and cannot be used for prediction of the current block (right, bottom-right, bottom, etc.), but some image content may benefit from these samples for prediction.
[0196] Figure 8 An exemplary video image 800 is shown, including a principal direction DR1, which is the direction in which one or more image components CP of the video image 800 extend. In this example, the principal direction (or principal orientation) DR1 represents the general direction of features (e.g., signs, roads, bridges, etc.), that is, so-called directional features, which in a sense generally extend along the principal direction DR1.
[0197] Figure 8 An example of a converted video image 802 is also shown, which is, for example, horizontally flipped according to a conversion mode MD, i.e., in a specific case. Figure 3 The transformation mode MD1 in the image is obtained by applying a transformation to video image 800 (i.e., its image components). It can be seen that the principal direction DR1 is transformed into a part of all the features of the transformed image components. The horizontal flip causes a rotation of the principal direction DR1, which now extends essentially from the upper left region to the lower right region of the video image. This orientation in the horizontally flipped video image 802 provides better coding efficiency when using raster scanning.
[0198] For example, it has been observed that encoding BQ-Terrace sequences that exhibit strong directionality with horizontal flipping as described above can yield up to 2% BD rate gain relative to ECM (Enhanced Compression Test Model) after conversion.
[0199] Conversely, it has been observed that encoding image content whose main direction is orthogonal to the reference sample position does not easily utilize compression gain.
[0200] like Figure 9 As shown, the image has been horizontally flipped compared to the original. In some cases, the image content may contain directional features extending in an orthogonal direction DR1 (e.g., from the upper right to the lower left diagonal). In this case, applying the identity function (i.e., without transformation) to the image region at hand allows for optimal encoding results.
[0201] As can be understood from the above, the most suitable conversion mode for encoding a given video image depends on the scanning order used for encoding and at least one direction along which the features of the video image can be extended. Therefore, in step 502, the most suitable conversion mode can be selected based on at least one of the two criteria mentioned above. Figure 5A The selected conversion mode (MDS) is used to determine the image region.
[0202] In a particular exemplary embodiment, the image region of the video image PCT1 to be encoded includes a principal direction DR1, and the transformation mode MDS selected for the image region is a transformation mode MD with a transformed principal direction obtained by transforming the principal direction DR1 according to the transformation mode, which is most aligned with the target direction DR0, and is also represented as the predicted direction (e.g., the desired direction typically extending from the upper left region to the lower right region of the video image). The target (or predefined) direction DR0 can be adjusted according to each case and can be determined, for example, as a function of the scan order, to maximize compression gain during encoding.
[0203] Understandably, the existence of a principal direction (along which directional features extend) in a given image region to be encoded in a video image can significantly impact the coding efficiency associated with the chosen transformation mode. Therefore, coding can benefit from pre-analysis of the image content to identify potential principal directions within the image components (CP). Based on the principal directions determined in the pre-analysis, a transformation mode of interest can be selected to enhance compression gain. For example, it is best to align the principal direction present in the image content with the target direction DR0 (e.g., the top-left to bottom-right diagonal of the image content).
[0204] In a specific example, for the main direction detected in the video image, the video image is segmented into image regions, allowing the selection of an appropriate MDS (Motion Compensation Mode) for each image region. In this particular case, the reconstructed image within the loop is deconverted (or the motion-compensated blocks are converted to the appropriate MDS mode) so that motion estimation and motion compensation operate on blocks converted to the same MDS mode.
[0205] In a particular exemplary embodiment, a conversion mode MDS is selected for the image region of the video image PCT1 from a list of candidate conversion modes MDS. This list can be obtained by converting at least a portion of the image region using a candidate conversion mode MDS to obtain a at least partially converted image, and by adding the candidate conversion mode MDS to the list of candidate conversion modes if the distance between the principal direction DR1 determined from the at least partially converted image region and the target direction DR0 of the image region is less than a threshold. A specific implementation example will be further described below.
[0206] Figure 10 A schematic block diagram illustrating the steps of an encoding method 1000 for encoding a video image PCT1 according to a specific exemplary embodiment is shown. The video image PCT1 includes at least one image region (denoted as PA) defined by three image components CP1, CP2, and CP3. The encoding method includes steps 1002-1010, which can be performed on each image region of the video image PCT1. For simplicity, the method 1000 is described below with respect to a given image region PA; it should be remembered that the same method can be applied to each image region PA of the video image PCT1.
[0207] In conversion step 1002, in conjunction with step 402 ( Figure 4 Step 504 Figure 5A ) or step 604 ( Figure 6 In the same manner as in [previous example], at least a portion of the image region PA of the video image PCT1 is transformed according to the transformation mode MD (e.g., MD0) to obtain at least a partially transformed image region. This transformation allows testing of the considered transformation mode MD to evaluate whether it is a suitable candidate transformation mode for the image region PA. As further described below, while the entire transformation of the image region PA can be performed, variations in step 1002 that transform only a portion of the image region PA are also possible.
[0208] Furthermore, in selection step 1004, it is determined whether the distance between the principal direction DR1 and the target direction DR0 determined from at least the partially transformed region meets a threshold TH1 (e.g., below or above the threshold, depending on the metric used). If yes, the transformation pattern MD (e.g., MD0) used for transformation in transformation step 1002 is selected as a candidate transformation pattern for the image region PA (step 1004). For this purpose, the transformation pattern MD can be added to a list (or set) of candidate transformation patterns. In other words, the transformation pattern MD is selected as a candidate transformation pattern when the transformation pattern MD sufficiently aligns the principal direction DR1 and the target direction DR0 in at least the partially transformed image region, for example, when the angle difference meets (e.g., below or above) the threshold TH1.
[0209] Step 1004 may include pre-analyzing at least a partially transformed image region to extract the principal orientation DR1. This pre-analysis may be performed to identify directional features from the at least partially transformed image region and determine the principal orientation DR1 therefrom. Various image processing techniques may be used to detect the principal orientation DR1, as described later in specific exemplary embodiments.
[0210] Steps 1002 and 1004 can be performed on each of a plurality of conversion modes (e.g., MD0 to MD6 as described above) to select one or more of them as candidate conversion modes for the image region PA at hand.
[0211] In step 1006, among the one or more candidate transformation modes obtained in step 1004, a transformation mode MDS is selected for the considered image region PA. As previously described ( Figure 4-6 In step 502), the selected conversion mode MDS is retained as the most suitable conversion mode for converting the image region PA before encoding.
[0212] In the first example, the list of candidate transformation modes obtained in step 1004 for the image region PA contains only a single candidate transformation mode. In this case, the transformation mode MDS selected in step 1006 is a single candidate transformation mode.
[0213] In the second example, the list of candidate transformation modes obtained in step 1004 for the image region PA contains multiple candidate transformation modes MD. In this case, the candidate transformation mode with the lowest rate-distortion tradeoff (or rate-distortion score) can be selected in step 1008. Figure 10 In other words, if multiple candidate conversion modes (MDs) are pre-selected in step 1004, the candidate conversion mode with the lowest rate distortion trade-off can be selected as the selected conversion mode (MDS) in step 1008.
[0214] In a specific example, in step 1008, a candidate transform mode MD with the lowest rate-distortion tradeoff (or rate-distortion score, e.g., using a known rate-distortion optimization (RDO) technique) can be selected as the first (fast) pass of the encoding loop. This first pass may disable some or most encoding tools (e.g., template-based tools such as ITMP, TIMD, etc., and in-loop filters such as deblocking, ALF, SAO, etc.) and restrict partitions (depth segmentation and partitioning modes) to quickly select the best candidate transform mode. Then, actual encoding utilizing the selected transform mode can be performed in the second pass of the encoding loop. This allows for flexibility and efficiency during the encoding phase. Preprocessing the image to be encoded allows for limiting power consumption and encoding time.
[0215] In step 1008, a rate-distortion score can be calculated for each image (or a portion of an image or image component CP) converted using a candidate conversion mode, and the obtained rate-distortion scores can be compared to identify the candidate conversion mode that produces the lowest rate-distortion score.
[0216] In encoding step 1010, it can be combined with encoding step 404 ( Figure 4 ), Encoding step 506 ( Figure 5A ) or coding step 160 ( Figure 6 Similarly, each picture component CP, based on the conversion mode MDS selected for the picture region PA in selection step 1006, is encoded into the bitstream BT1 of the encoded video picture data.
[0217] As mentioned earlier, it is possible to Figure 10 In conversion step 1002, all or part of the image region PA is converted. (See reference) Figure 11 and Figure 12 describe Figure 10 An exemplary variant of the encoding method.
[0218] Figure 11 A schematic block diagram illustrating the steps of an encoding method 1100 for encoding a video image PCT1 according to a specific exemplary embodiment is shown. The video image PCT1 includes at least one image region PA defined by three image components CP1, CP2, and CP3. The encoding method includes steps 1102-1006, which can be performed for each image region PA of the video image PCT1. For simplicity, the method 1100 is described below with respect to a given image region PA; it should be remembered that the same method can be applied to each image region PA of the video image PCT1.
[0219] In conversion step 1102, the converted image components are obtained by performing a complete conversion on the image region according to each of the candidate conversion modes MD0-MD6, for example, in step 402 ( Figure 4 Step 504 Figure 5A ) or step 604 ( Figure 6 As described in the description. In other words, for each conversion mode MD0-MD6, a respective converted version of the image region PA is obtained. Conversion step 1102 can be regarded as conversion step 1002 ( Figure 10 A specific implementation of ) in which the entire image region PA is transformed. As previously described, this transformation allows testing of various transformation modes MD to evaluate whether each of them is a suitable candidate transformation mode for the image region PA.
[0220] In step 1104, a main direction, labeled DR1, is determined for each converted image region obtained in step 1102 using conversion modes MD0-MD6 respectively.
[0221] The principal orientation DR1 in the transformed image region can be determined based on feature extraction analysis, such as by performing edge detection functions (e.g., including Sobel and / or Canyon filters). For this purpose, gradient histograms or Hough transforms (or derivatives) can be used. For example, by sequentially applying edge detection algorithms (such as Sobel or Canyon filters) and then applying gradient histograms or Hough transforms (or derivatives), one or more principal orientations DR1 can be determined in the transformed image region.
[0222] Specifically, the Hough transform can be computed to determine which directions(s) are most representative in each transformed image region. In a particular example, the gradient histogram is subsampled to identify multiple close directions from the transformed image regions, and the principal direction DR1 is determined by averaging these close directions.
[0223] In step 1106, when the distance between the principal direction DR1 and the target direction DR0 determined in step 1104 meets (e.g., is higher or lower than) a threshold TH1, at least one candidate transformation pattern MD (in MD0-MD6) is determined or identified for the image region PA. To do this, a comparison can be made between each principal direction DR1 and target direction DR0 determined in step 1104 to evaluate the distance between them and determine whether the distance meets (e.g., is higher or lower than) the threshold TH1. The target direction DR0 represents, for example, the upper-left to lower-right diagonal line in the transformed image component.
[0224] In a specific exemplary embodiment, the distance between the principal direction DR1 and the target direction DR0 is evaluated by calculating the scalar product of the vectors representing the principal direction DR1 and the target direction DR0, respectively. A higher scalar product indicates that the principal direction DR1 is closer to the target direction DR0 (the greater the distance DR1-DR0), and thus a better corresponding conversion mode as a potential candidate conversion mode. For example, if the scalar product between the vectors of the principal direction DR1 (obtained from the image component converted using the conversion mode) and the target direction DR0 is higher than a threshold TH1, then the conversion mode MD is selected as a candidate conversion mode.
[0225] Then, method 1100 can continue as previously referenced. Figure 10Steps 1006-1010 are described above. Specifically, a conversion mode MDS can be selected based on one or more candidate conversion modes MDS identified in identification step 1106 (step 1006), and then encoding can be performed (step 1010) to encode the component CP converted according to the selected conversion mode MDS into the bit stream BT1.
[0226] It can be seen that, Figure 11 In a specific exemplary embodiment, the image region PA is fully transformed according to each transformation mode MD0-MD6, and then the principal direction DR1 is determined from each fully transformed image region. Then, the optimal candidate transformation mode can be determined based on the fully transformed image.
[0227] Alternatively, the principal direction DR1 is extracted only from the original image PCT1 (or each image region PA). Knowing DR1, the transformation patterns MDS in MD0-MD6 can be determined such that the scalar product with the target direction DR0 is maximized. In fact, by transforming only the direction DR1 using each transformation pattern MD0-MD, the result of each transformation provides a direction to compare with DR0, without needing to transform the entire image PCT1 for each pattern MD0-MD6 and apply the DR1 extraction process to each transformed image. Possibly, the principal direction DR1 extraction process operates on the first component CP1 or a subsampled version of the first component CP1 to save resources (and computation time) at the encoder.
[0228] Figure 12 A schematic block diagram illustrating the steps of an encoding method 1200 for encoding a video picture PCT1 according to a specific exemplary embodiment is shown. The video picture PCT11 includes at least one picture region PA defined by three picture components CP1, CP2, and CP3. The encoding method includes steps 1202-1206, which can be performed for each picture region PA of the video picture PCT1. For simplicity, method 1200 is described below with respect to a given picture region PA; it should be remembered that the same method can be applied to each picture region PA of the video picture PCT1.
[0229] In step 1202, the principal direction, labeled DR1a, is determined within a given image region PA of the video image PCT1. This determination can be performed based on feature extraction analysis of the image region PA, similar to the determination in step 1104. Figure 11For example, such feature extraction analysis might involve performing edge detection functions (e.g., including Sobel and / or Canyon filters). For this, gradient histograms or Hough transforms (or derivatives) can be used. Specifically, the Hough transform can be computed to determine which direction is most representative in the image region PA. In a particular example, the gradient histogram is subsampled to identify multiple proximity directions of the image region PA, and the dominant direction DR1a is determined by averaging these proximity directions.
[0230] In transformation step 1204, the principal direction DR1a obtained in step 1202 is converted into a principal direction labeled DR1 according to each of the transformation modes MD0-MD6. Therefore, for each transformation mode MD0-MD6, each principal direction DR1 (in transformed form) corresponding to the principal direction DR1a in the original image region PA is obtained. For example, in step 1202, the principal direction vector corresponding to the principal direction DR1a in the image region PA (in the original image PCT1) is identified, and then a transformation is performed according to each of the transformation modes MD0-MD6 to determine the corresponding principal direction DR1.
[0231] Determining that step 1202 and transformation step 1204 can be regarded as transformation step 1002 ( Figure 10 ) specific implementation.
[0232] In step 1206, when the distance between the main direction DR1 and the target direction DR0 determined in step 1204 meets (e.g., is higher or lower than) a threshold TH1, at least one candidate transition pattern MD (in MD0-MD6) is determined or identified for the image region PA. For this purpose, it can be done in conjunction with step 1106 (… Figure 11 The determination step 1206 is performed in a similar manner. Specifically, a comparison can be made between each principal direction DR1 and target direction DR0 determined in step 1204 to assess the distance between them and determine whether the distance meets (e.g., is below or above) a threshold TH1. As already noted, the target direction DR0 represents, for example, the top-left to bottom-right diagonal line in the transformed image region.
[0233] Then, method 1200 can continue to execute steps 1006-1010, as previously referenced. Figure 10 As described. In particular, a conversion mode MDS can be selected based on one or more candidate conversion modes MDS identified in identification step 1206 (step 1006), and then encoding can be performed (step 1010) to encode the image region PA converted according to the selected conversion mode MDS into the bitstream BT1.
[0234] It can be seen that, Figure 12In a specific exemplary embodiment, in encoding method 1200, one or more candidate transformation patterns MD are obtained based on a partially transformed image region, which is obtained by partially transforming the image region according to each transformation pattern MD0-MD6. One or more identified main directions within the image region PA (in the original content) can be transformed only to determine the direction closest to the desired target direction DR0 (e.g., the diagonal from the upper left to the lower right). Therefore, in this specific exemplary embodiment, it is not necessary to completely transform the image region PA according to each possible transformation pattern MD0-MD6, thereby saving time and resources in selecting the most suitable transformation pattern MDS for each image region PA.
[0235] In addition, as mentioned above ( Figure 1 The video image PCT1 can be partitioned into CTUs of a CTU grid (as preprocessing before the encoding cycle). Specifically, each image region PA of the video image PCT can be partitioned into CTUs of a CTU grid, where each CTU is divided into one or more coding units (CUs). However, it has been observed that since the content resolution of the video image PCT1 is typically not a multiple of the CTU size (e.g., 128), the CTU grid relative to the original video content PCT1 can be spatially aligned in a different way (relative to the video image PCT1 to be compressed). It has been found that this specific relative arrangement of the image content (image regions) relative to the CTU grid can be used to further improve the compression efficiency during the encoding stage.
[0236] For displaying image content in a horizontal and / or vertical main direction, the conversion mode MDS for converting the image area PA of the video image PCT1 can be selected based on the boundaries (or edges) of the CTU grid (or CU grid) relative to the horizontal and / or vertical main direction. In particular, it is advantageous to select a conversion mode that better aligns the CTU (or CU) grid with the horizontal and / or vertical main direction of the video image PCT1 (or image area PA). This is especially suitable for content types displaying screen content with strong horizontal and vertical orientation.
[0237] For different conversion modes MD, such as each conversion mode MD0-MD6, the relative position of the CTU (or CU) mesh (especially its boundaries) can be known, as this position depends only on the CTU size and the resolution of the video picture PCT1. It is worth noting that the CTU (or CU) mesh itself does not move; it starts at the top-left corner of the picture at coordinates (0,0). However, once the converted picture is deconverted, the conversion mode operated on the video picture PCT1 behaves as if the CTU (or CU) mesh has been moved (see...). Figure 13B ).
[0238] In a particular exemplary embodiment, a conversion mode MDS can be selected from a list of candidate conversion modes (e.g., in [the context of a video image]) by aligning the boundaries of the coding unit (CU) (or CTU or block) with the main direction of the image region PA of the video image. Figure 10 In step 1006, each CTU is an image region subdivided according to the coding tree. The specific implementation method will be described in detail below.
[0239] Figure 13A A schematic block diagram illustrating the steps of an encoding method 1300 for encoding a video picture PCT1 according to a specific exemplary embodiment is shown. The video picture PCT1 includes at least one picture region PA defined by three picture components CP1, CP2, and CP3. The encoding method includes steps 1302-1306, which can be performed for each picture region PA of the video picture PCT1. For simplicity, method 1300 is described below with respect to a given picture region PA; it should be remembered that the same method can be applied to each picture region PA of the video picture PCT1.
[0240] In conversion step 1302, in conjunction with conversion step 1002 ( Figure 10 In the same manner as described above, at least a portion of the image region PA is transformed according to a transformation mode MD (e.g., MD1). As previously mentioned, the image region PA can be fully or partially transformed using each transformation mode MD0-MD6 to determine the corresponding principal direction DR1 (one or more principal directions DR1) from the fully or partially transformed image region. For example, the image region PA is fully transformed according to each transformation mode MD0-MD6, and then the principal direction DR1 is determined from each transformed image region. Figure 11 (Steps 1102-1104), or determine the principal direction DR1a in the image region PA before conversion, and then convert the principal direction DR1a to the corresponding principal direction DR1 according to each conversion mode MD0-MDA6. Figure 12 (Steps 1202-1204).
[0241] Note that one or more principal directions DR1 can be determined as described above. In the following example, it is assumed that one principal direction DR1 is determined, although multiple principal directions DR1 can be determined and processed in a similar manner.
[0242] In step 1304, in conjunction with the selection already made in step 1004 ( Figure 10The same method described above is used, for example, to extract the principal direction DR1 from at least a partially converted image region obtained in conversion step 1302 based on a pre-analysis of the region. Furthermore, still in determination step 1304, it is determined whether the principal direction DR1 is vertical and / or horizontal. In other words, it is determined whether the principal direction DR1 is parallel (or substantially parallel) to the boundary of the coding unit (CU).
[0243] The vertical or horizontal direction (or edge) can correspond to the interval between two groups of pixels, each group of pixels sharing specific image attributes.
[0244] In a specific exemplary embodiment, if the angular deviation of the main direction DR1 relative to the vertical and / or horizontal direction is less than a deviation threshold, then in determination step 1304, it is determined that the main direction DR2 is aligned with the horizontal and / or vertical direction. For example, if the deviation angle of the main direction DR1 relative to a vertical or horizontal line (or another target direction) does not exceed + / - 15 degrees, then the main direction DR1 is substantially (approximately) vertical or substantially horizontal. In other words, the main direction DR1 can be considered horizontal or vertical within a certain angular tolerance relative to the horizontal or vertical direction.
[0245] If it is determined (step 1304) that the main direction DR1 is not vertical and / or horizontal, then method 1300 continues to select the most suitable conversion mode MD as described above, for example by performing steps 1004-1006 ( Figure 10 For example, using the scalar product-based method described above.
[0246] However, if it is determined (step 1304) that the main direction DR1 is horizontal and / or vertical (or substantially horizontal and / or vertical), then method 1300 proceeds to selection step 1306, as further described below.
[0247] In selection step 1306, if the alignment difference (or positional offset) between the boundaries of the main direction DR1 and at least a portion of the CUs (or CTUs) of the image region PA meets a threshold (e.g., above or below the threshold, depending on the metric used), then the transformation mode MD (i.e., the transformation mode used in transformation step 1302 to transform at least a portion of the image region PA) is selected as a candidate transformation mode MD. In other words, since the main direction DR1 is vertical and / or horizontal, the transformation mode MD is selected (1306) by aligning the main direction DR1 with the boundaries of the coding units CU. For example, the selected transformation mode MD is the transformation mode that makes the main direction DR1 overlap with the maximum number of CU boundaries (or overlaps with the most CU boundaries).
[0248] In a particular exemplary embodiment, in step 1306, a transformation mode (e.g., between MD0 and MD6) that best aligns at least a portion of the CUs (or CTUs) of the image region PA with the main direction DR1 is selected as the selected transformation mode MDS. Specifically, the horizontal or vertical boundaries of the CTU grid can be spatially shifted according to the selected transformation mode MDS to be positioned aligned (or substantially aligned) with the main direction DR1.
[0249] For example, the transformation mode MD for a given image region PA can be selected based on minimizing the distance between the CU boundary (or CU edge) and the main direction DR1 of the image content. In a specific example, the transformation mode MD for a given image region PA can be selected based on the results of the technique, where the data to be optimized are the x-position of the CTU column (flip / deflip or rotate / derotate) of the transformation mode MD relative to the vertical edge of the content for a given width, and the y-position of the CTU row (flip / deflip or rotate / deflip) of the transformation mode MD relative to the horizontal edge of the content for a given height. Preferably, the CU boundary or block (contained in the CTU) boundary is aligned with the main direction of the video image PCT1.
[0250] Figure 13B The following example illustrates the different alignments of the CU mesh relative to the image region PA, which has been transformed and de-transformed according to different transformation modes MD0-MD6. Depending on the applied transformation mode, the CU mesh is more or less aligned with the principal direction DR1 of the transformed image region (in this particular example, the principal direction DR1 is perpendicular).
[0251] In addition, in previous references Figure 3-1 In any of the encoding methods described in 3, the encoding method may include referencing Figure 5A The encoding method 500 describes the step of signaling (or inserting) region conversion information DT1 into the bitstream BT1 of encoded video picture data to indicate whether at least one picture region PA of the video picture PCT1 is converted according to the conversion mode MD, and may also define at least one conversion mode MDS (possibly each conversion mode MDS) selected for converting at least one picture region PA of the video picture.
[0252] Furthermore, as previously stated, this application also relates to decoding video images, such as video images previously encoded according to any of the previously described encoding methods. Decoding methods according to specific exemplary embodiments will be described below. It will be apparent that the encoding concepts described above in the various exemplary embodiments can be applied in reverse to decode encoded video images.
[0253] Figure 14A schematic block diagram illustrating the steps of a decoding method 1400 for decoding a bitstream BT1 of encoded video image data according to a particular exemplary embodiment is shown. In the following exemplary embodiments, it is assumed that the bitstream BT1 is generated according to any of the previously described encoding methods.
[0254] The bitstream BT1 of the encoded video image data is obtained as input to the decoding method 1400. For example, the encoded video image data may include an encoded video image PCT1, which includes at least one image region defined by three image components CP1, CP2, and CP3.
[0255] In decoding step 1402, the decoded video image is obtained by decoding the encoded video image data from bitstream BT1.
[0256] In deconversion step 1404, a video image is obtained by deconverting (or not converting) at least one image region of the decoded video image obtained in decoding step 1402 according to a conversion mode MD. The conversion mode MD defines a combination of at least one flip operation and at least one rotation operation for the at least one image region. The description of conversion modes in the encoding stage provided above applies in the same manner to conversion modes in the decoding stage. In particular, the conversion mode MD used in the decoding stage can be, for example, any one of MD0-MD6 as described above.
[0257] As previously mentioned, deconverting a picture region PA according to a given conversion pattern means applying an inverse conversion (flip and rotate), which is the opposite of the given conversion pattern (e.g., the opposite of the conversion pattern applied previously in the encoding stage to encode video images into the bitstream BT1). Applying an inverse conversion, i.e., deconverting, allows the picture region PA to be converted back to its original orientation or state before the conversion was performed in the encoding stage.
[0258] The conversion mode used in deconversion step 1404 is determined at the image region level. Therefore, each image region PA (or a portion thereof) of the decoded video image can be deconverted based on the corresponding conversion mode MD to obtain the video image. In a specific example, at least two image regions (or portions thereof) can be deconverted based on different conversion modes MD to obtain the video image; however, in some cases, two image regions can be deconverted based on the same conversion mode MD. In a specific example, the previously encoded video image PCT1, obtained by performing the encoding method as described above, can be obtained in deconversion step 1404.
[0259] In a particular exemplary embodiment, region conversion information DT1 may be signaled (or included) in the bitstream BT1 obtained as input to the decoding method 1400, as previously described for the encoding method in a particular exemplary implementation example. This region conversion information DT1 may indicate whether at least one image region PA of the video image PCT1 has been converted according to the conversion mode MD (i.e., has been converted).
[0260] As previously mentioned, the format and manner in which this information is carried into bitstream BT1 can be adjusted according to specific circumstances. For example, region conversion information DT1 may include bits or indicators that are in a first value to indicate that no image region conversion has been performed, or in a second different value to indicate that at least one image region conversion has been performed. In a particular example, region conversion information DT1 is carried in bitstream BT1 as a header, parameter, or SEI (Supplemental Enhancement Information) message along with bitstream BT1.
[0261] As further described below, the deconversion of video image data during the decoding stage can be performed based on the region conversion information DT1. Specifically, the bitstream BT1 can be formatted to include encoded video image data and the region conversion information DT1. Decoding method 1400 is described below. Figure 14 ) Specific exemplary embodiments.
[0262] In a specific exemplary embodiment, region conversion information DT1 is detected within the bitstream BT1 of encoded video image data. In a specific example, the bitstream BT1 is decoded in decoding step 1402, and the region conversion information DT1 is detected from the decoded bitstream DT1. The region conversion information DT1 can be carried in the bitstream BT1 in any suitable manner, such as as described in a specific exemplary embodiment of the encoding method of this application. Based on the detected region conversion information DT1, it is determined that at least one image region of the decoded video image must be deconverted, thereby triggering the deconversion step 1404 as described above.
[0263] In a particular exemplary embodiment, the region transformation information DT1 further defines at least one transformation mode MD (also known as MDS) selected and applied during the encoding stage for transforming at least one picture region PA of the video picture PCT1. For example, the region transformation information DT1 may explicitly specify the transformation mode MD5 (or MD6) applied to transform the picture region PA of the video picture PCT1 (see...). Figure 4 As mentioned earlier, the conversion mode MD5 (or MD6) limits the combination of rotation and flip operations. This conversion mode can be selected in conversion modes MD0-MD6 during the encoding stage.
[0264] In a particular exemplary embodiment, a conversion mode MD is determined based on the detected region conversion information DT1, according to which at least one image region PA is deconverted in deconversion step 1404. For example, the corresponding conversion mode MD for deconverting each image region PA can be determined based on the region conversion information DT1 parsed from the bitstream BT1.
[0265] In other variations, the region conversion information DT1 is not signaled within the bitstream BT1, but is obtained as part of the decoding method 140 by any other suitable means (e.g., by receiving the applied conversion mode MD from the received bitstream BT1 as input to the decoding method 1400).
[0266] Figure 15 A schematic block diagram illustrating the steps of a decoding method 1500 for decoding a video picture PCT1 (or a portion thereof) from a bitstream BT1 of encoded video picture data, according to a particular exemplary embodiment. In this example, it is assumed that the video picture PCT1, defined in encoded form within the bitstream BT1, comprises at least one picture region defined by three picture components CP1, CP2, and CP3, as described in the encoding method of this application. It is assumed below that the at least one picture region to be decoded includes the entire video picture PCT1; however, variations involving decoding only a portion of the video picture PCT1 are possible.
[0267] Figure 15 A specific exemplary embodiment may correspond to decoding method 1400 ( Figure 14 An exemplary implementation of ). It can be seen that, Figure 15 The decoding method 1500 includes those already referenced. Figure 2 The steps described will not be described in detail for the sake of brevity.
[0268] In step 210, partition information data, prediction information data, and quantization transform coefficient blocks (or quantization residual blocks) are obtained by entropy decoding (parsing the data contained in bitstream BT1) of the encoded video image data. For example, the received bitstream BT1 is generated according to the encoding method described in any specific exemplary embodiment of this application.
[0269] Other information data can also be entropy-decoded from the bitstream BT1 for use in decoding the current block of the video image VP, such as the component conversion information DT1 as described above.
[0270] In step 220, the decoded image is divided into current blocks BK10 based on the partitioning information. In other words, based on the partitioning information, the partitions that decode the image into current blocks BK10 are obtained. Each current block BK10 is obtained from entropy decoding of the bitstream BT1 (step 210) and defines (or includes) one component CP (or a sample thereof) of the encoded video image PCT1. Therefore, all blocks BK10 define each component CP of the encoded video image PCT1.
[0271] Each decoded current block BK10 is either a quantization transform coefficient block or a quantization prediction residual block. The decoding process is described below for a given current block BK10 corresponding to each component CP of the video image PCT1. Remember that the same process can be iterated over each consecutive current block BK0 to reconstruct the video image PCT1.
[0272] In step 230, the current block BK10 is dequantized and may undergo an inverse transformation (step 240) to obtain the decoded prediction residual block BK11.
[0273] On the other hand, the prediction information data extracted from bitstream BT1 is used to predict the current block. The predicted block BK13 is obtained through its intra-frame prediction (step 250) or its motion-compensated temporal prediction (step 260). The prediction processing performed on the decoding side is the same as the prediction processing on the encoding side (as described above).
[0274] Next, the decoded prediction residual block BK11 and prediction block BK13 are combined, usually by summing, which provides the reconstruction block BK12.
[0275] In deconversion step 1502, the component CP defined by the reconstructed block BK12 is deconverted based on the conversion mode MD, which defines a combination of at least one flip operation and at least one rotation operation for the image component CP, as previously described. The conversion mode MD applied to the deconversion of the reconstructed block BK12 in step 1502 can be determined based on region conversion information DT1 obtained by any suitable means as previously described, for example, based on region conversion information DT1 extracted from the bitstream BT1 received as input to decoding method 1500.
[0276] Therefore, the video image PCT1 can be obtained by deconverting each image component CP of the limited decoded video image PCT1 according to the same conversion mode MD. To do this, the same conversion mode MD, which was previously used to encode the video image PCT1 in the encoding stage, is applied to each current block BK12 to deconvert it successively (step 1502).
[0277] Then, decoding method 1500 can be used in conjunction with decoding method 200 ( Figure 2 The same process applies. Specifically, in step 270, the in-loop filter can be applied to the reconstructed image (including the deconverted reconstructed block BK14), and the reconstructed block or the filtered reconstructed block forms a reference image, which can be stored in the decoded image buffer (DPB) as described above. Figure 1-2 ).
[0278] Furthermore, in some cases, cross-component filtering (or cross-component tools) can be applied during the encoding and / or decoding stages to determine at least one component CP of the video image based on another component CP of the video image. For example, as Figure 1 As shown in (cross-component filtering step 190), an in-loop filter can be applied to the reconstructed image (including reconstructed blocks) to reduce compression artifacts. After reconstructing all image blocks, a cross-component filter can be applied. During decoding, the in-loop filter can be applied to the reconstructed image in the same manner, as previously referenced. Figure 2 The described (cross-component filtering step 270) is a well-known technique that may include, for example, cross-component linear models (CCLM), CCC-ALF in VVC, CC-SAO in exploratory ECM, etc.
[0279] In an exemplary embodiment, the sequence parameter set can be modified as follows to indicate the activation of the conversion mode:
[0280]
[0281] The sps_afr_enabled_flag indicates whether adaptive flipping or rotation is enabled at the sequence level.
[0282] In an exemplary embodiment, the component transformation information DT1 for each component CP, as described above, is defined in the image header, image parameter set, adaptive parameter set, or other parameter set, as follows:
[0283]
[0284]
[0285] The afr_data() function is defined as follows:
[0286]
[0287] Where afr_mode_idc points to the following modes:
[0288] 0=identical
[0289] 1 = Horizontal flip,
[0290] 2 = 90° rotation
[0291] 3 = 270° / -90° rotation
[0292] 4 = Vertical flip,
[0293] 5 = Horizontal and vertical flip,
[0294] 6 = Vertical flip plus 90° rotation
[0295] 7 = Vertical flip plus 270° / 90° rotation.
[0296] As a variant, if there is no signaling transition mode, it means identity mode, i.e., identity function (identity = default).
[0297] As a variant, the bits used in the signaling to indicate flips and rotations are separate (i.e., some bits indicate horizontal and / or vertical flips, while other bits indicate rotations, and there may be other bits indicating the direction of rotation).
[0298] The information in the image header allows you to determine which afr_data() method is being used for the current image.
[0299] Furthermore, this application relates to an encoding system (or encoding device) and a decoding system (or decoding device), respectively configured to perform any of the previously described encoding and decoding methods according to specific exemplary embodiments. According to any of the above exemplary embodiments, the encoding system and decoding system may include suitable components (or modules) configured to perform each step of the encoding and decoding methods. Specific exemplary embodiments of such a system are described below.
[0300] Figure 16 A schematic diagram illustrating an example of system 1800 is shown, in which various aspects and exemplary embodiments are implemented.
[0301] System 1800 can be embedded as one or more devices, including the various components described below. In various exemplary embodiments, system 1800 can be configured to implement one or more aspects described in this application. For example, system 1800 is configured to perform encoding methods and / or decoding according to any of the foregoing exemplary embodiments. Therefore, system 1800 can constitute an encoding system and / or decoding system in the sense of this application.
[0302] Examples of devices that may constitute all or part of System 1800 include personal computers, laptops, smartphones, tablets, digital multimedia set-top boxes, digital television receivers, personal video recording systems, networked home appliances, networked vehicles and their associated processing systems, head-mounted display devices (HMDs, X-ray glasses), projectors, "caves" (systems including multiple displays), servers, video encoders, video decoders, post-processors that process the output from video decoders, pre-processors that provide input to video encoders, web servers, video servers (e.g., broadcast servers, video-on-demand servers, or web servers), still cameras or camcorders, encoding or decoding chips, or any other communication devices. The elements of System 1800 may be implemented individually or in combination in a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one exemplary embodiment, the processing and encoder / decoder elements of System 1800 may be distributed across multiple ICs and / or discrete components. In various exemplary embodiments, System 1800 may be communicatively coupled to other similar systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports.
[0303] System 1800 may include at least one processor 1810 configured to execute instructions loaded thereon to implement various aspects as described in this application. Processor 1810 may include embedded memory, input / output interfaces, and various other circuitry known in the art. System 1800 may include at least one memory 1820 (e.g., a volatile memory device and / or a non-volatile memory device). System 1800 may include a storage device 1840, which may include non-volatile memory and / or volatile memory, including but not limited to electrically erasable programmable read-only memory (EEPROM), read-only memory (ROM), programmable read-only memory (PROM), random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, disk drives, and / or optical drives. As a non-limiting example, storage device 1840 may include internal storage devices, attached storage devices, and / or network-accessible storage devices.
[0304] System 1800 may include an encoder / decoder module 1830 configured to, for example, process data to provide encoded / decoded video image data, and the encoder / decoder module 1830 may include its own processor and memory. The encoder / decoder module 1830 may represent one or more modules that may be included in a device to perform encoding and / or decoding functions. It is well known that a device may include one or both encoding and decoding modules. Furthermore, the encoder / decoder module 1830 may be implemented as a separate element of system 1800, or it may be integrated into processor 1810 as a combination of hardware and software, as is known to those skilled in the art.
[0305] Program code to be loaded onto processor 1810 or encoder / decoder 1830 to execute the various aspects described in this application may be stored in storage device 1840 and subsequently loaded onto memory 1820 for execution by processor 1810. According to various exemplary embodiments, during the execution of the processes described in this application, one or more of processor 1810, memory 1820, storage device 1840, and encoder / decoder module 1830 may store one or more of various items. Such stored items may include, but are not limited to, video image data, information data for encoding / decoding video image data, bitstreams, matrices, variables, and intermediate or final results of equations, formulas, operations, and arithmetic logic processing.
[0306] In several exemplary embodiments, the memory within the processor 1810 and / or encoder / decoder module 1830 may be used to store instructions and provide working memory for processes that may be performed during encoding or decoding.
[0307] However, in other exemplary embodiments, external memory (e.g., the processing device may be processor 1810 or encoder / decoder module 1830) may be used for one or more of these functions. External memory may be memory 1820 and / or storage device 1840, such as volatile memory and / or non-volatile flash memory. In several exemplary embodiments, external non-volatile flash memory may be used to store the television's operating system. In at least one exemplary embodiment, fast external volatile memory such as RAM may be used as working memory for video encoding and decoding operations, for example, for MPEG-2 Part 2 (also known as ITU-T Recommendation H.262 and ISO / IEC 13818-2, also known as MPEG-2 video), AVC, HEVC, EVC, VVC, AV1, etc.
[0308] Inputs to the components of system 1800 can be provided via various input devices as shown in block 1890. Such input devices include, but are not limited to: (i) an RF section capable of receiving, for example, RF signals transmitted over the air by a broadcaster; (ii) a composite input terminal; (iii) a USB input terminal; (iv) an HDMI input terminal; and (v) a bus, such as CAN (Controller Area Network), CAN FD (Controller Area Network Flexible Data Rate), FlexRay (ISO 17458), or Ethernet (ISO / IEC 802-3) bus, when the invention is implemented in the automotive field.
[0309] In various exemplary embodiments, the input device of block 1890 has associated corresponding input processing elements, as known in the art. For example, the RF section may be associated with elements necessary for: (i) selecting a desired frequency (also referred to as selecting a signal, or limiting the signal band to a band), (ii) down-converting the selected signal, (iii) again limiting the band to a narrower band to select (e.g.,) a signal band that may be referred to as a channel in some exemplary embodiments, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired data packet stream. The RF section of various exemplary embodiments may include one or more elements to perform these functions, such as a frequency selector, signal selector, band limiter, channel selector, filter, downconverter, demodulator, error corrector, and demultiplexer. The RF section may include tuners that perform various functions among these functions, including, for example, down-converting a received signal to a lower frequency (e.g., an intermediate frequency or near-baseband frequency) or baseband.
[0310] In one set-top box embodiment, the RF section and its associated input processing elements can receive RF signals transmitted via a wired (e.g., cable) medium. The RF section can then perform frequency selection by filtering, down-converting, and re-filtering to the desired frequency band.
[0311] Various exemplary embodiments rearrange the order of the above (and other) elements, remove some of the elements, and / or add other elements that perform similar or different functions.
[0312] Adding components may include inserting components between existing components, such as, for example, inserting amplifiers and analog-to-digital converters. In various exemplary embodiments, the RF portion may include an antenna.
[0313] Furthermore, USB and / or HDMI terminals may include corresponding interface processors for connecting system 1800 to other electronic devices via USB and / or HDMI connections. It is to be understood that various aspects of input processing (e.g., Reed-Solomon error correction) may be implemented, for example, within a separate input processing IC or within processor 1810. Similarly, various aspects of USB or HDMI interface processing may be implemented, as needed, within a separate interface IC or within processor 1810. The demodulated, error-corrected, and demultiplexed streams may be provided to various processing elements, including, for example, processor 1810 and encoder / decoder 1830, which operate in conjunction with memory and storage elements to process the data streams as needed for presentation on an output device.
[0314] Various components of system 1800 can be provided within an integrated housing. Within the integrated housing, various components can be interconnected and transmit data between them using appropriate connection arrangements 1890, such as internal buses (including I2C buses) known in the art, wiring, and printed circuit boards.
[0315] System 1800 may include a communication interface 1850, which is capable of communicating with other devices via a communication channel 1851. The communication interface 1850 may include, but is not limited to, a transceiver configured to send and receive data via the communication channel 1851. The communication interface 1850 may include, but is not limited to, a modem or network interface card (NIC), and the communication channel 1851 may be implemented, for example, in a wired and / or wireless medium.
[0316] In various exemplary embodiments, data can be streamed to system 1800 using a Wi-Fi network such as IEEE 802.11. Wi-Fi signals of these exemplary embodiments can be received on a communication channel 1851 and communication interface 1850 suitable for Wi-Fi communication. The communication channel 1851 of these exemplary embodiments can typically be connected to an access point or router that provides access to external networks, including the Internet, to allow streaming applications and other over-the-top cloud communications.
[0317] Other exemplary embodiments may use a set-top box that transmits data via an HDMI connection through input block 1890 to provide streaming data to system 1800.
[0318] Other exemplary embodiments may use the RF connection of input block 1890 to provide streaming data to system 1800.
[0319] Streaming data can be used as a form of signaling information for System 1800, such as zone switching information DT1 (as previously described). Signaling information may include bitstream BT1 and / or information such as the number of pixels in a video image and / or any encoding / decoding settings parameters.
[0320] It should be noted that signaling can be accomplished in various ways. For example, in various exemplary embodiments, one or more syntax elements, flags, etc., can be used to signal information to the corresponding decoder.
[0321] System 1800 can provide output signals to various output devices, including a display 1861, a speaker 1871, and other peripheral devices 1881. In various exemplary examples of the embodiments, other peripheral devices 1881 may include one or more of a standalone DVR, a disk player, a stereo system, a lighting system, and other devices that provide functionality based on the output of system 1800.
[0322] In various exemplary embodiments, signaling such as AV.Link (audio / video link), CEC (consumer electronics control), or other communication protocols that enable device-to-device control with or without user intervention can be used to communicate control signals between system 1800 and display 1861, speaker 1871, or other peripheral devices 1881.
[0323] Output devices can be communicatively coupled to system 1800 via dedicated connections through the corresponding interfaces 1860, 1870 and 1880.
[0324] Alternatively, the output device can be connected to the system 1800 via communication interface 1850 using communication channel 1851. The display 1861 and speaker 1871 can be integrated into a single unit with other components of the system 1800 in electronic devices such as, for example, televisions.
[0325] In various exemplary embodiments, the display interface 1860 may include a display driver, such as, for example, a timing controller (TCon) chip.
[0326] Display 1861 and speaker 1871 may optionally be separate from one or more other components, for example, if the RF portion of input 1890 is part of a separate set-top box. In various exemplary embodiments, display 1861 and speaker 1871 may be external components that can provide output signals via dedicated output connections, including, for example, an HDMI port, a USB port, or a COMP output.
[0327] exist Figure 1-16This document describes various methods, and each method includes one or more steps or actions to implement the method. Unless the correct operation of the method requires a specific order of steps or actions, the order and / or use of specific steps and / or actions can be modified or combined.
[0328] Examples of block diagrams and / or operation flowcharts are described. Each block represents a portion of circuitry, modules, or code, including one or more executable instructions for implementing one or more specified logical functions. It should also be noted that in other implementations, the functions (one or more) marked in a block may occur out of order. For example, two blocks shown sequentially may actually execute substantially concurrently, or sometimes these blocks may be executed in reverse order.
[0329] The implementations and aspects described herein can be implemented, for example, in methods or processes, apparatus, computer programs, data streams, bit streams, or signals. Even if discussed only in the context of a single form of implementation (e.g., discussed only as a method), implementations of the discussed features can also be implemented in other forms (e.g., apparatus or computer programs).
[0330] The method can be implemented in a processor, which generally refers to a processing device, such as a computer, microprocessor, integrated circuit, or programmable logic device. Processors also include communication devices.
[0331] Furthermore, the method can be implemented by instructions executed by a processor, and such instructions (and / or data values generated by the implementation) can be stored on a computer-readable storage medium, such as storage device 1840. Figure 16 The computer-readable storage medium may take the form of a computer-readable program product implemented in one or more computer-readable media and having computer-readable program code executable thereon. Considering the inherent ability to store information therein and the inherent ability to retrieve information provided therefrom, the computer-readable storage medium as used herein can be considered a non-transitory storage medium. The computer-readable storage medium may be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatuses, or devices, or any suitable combination of the foregoing. It should be understood that while more specific examples of computer-readable storage media to which this exemplary embodiment may be applied are provided below, they are merely illustrative and not an exhaustive list, as will be readily apparent to those skilled in the art: portable computer floppy disks; hard disks; read-only memory (ROM); erasable programmable read-only memory (EPROM or flash memory); portable optical disc read-only memory (CD-ROM); optical storage devices; magnetic storage devices; or any suitable combination of the foregoing.
[0332] Instructions can form applications that are tangibly implemented on processor-readable media.
[0333] For example, instructions can be found in hardware, firmware, software, or a combination thereof. Instructions can be found, for example, in an operating system, a standalone application, or a combination of both. Therefore, a processor can be characterized as, for example, a device configured to execute a process and a device including a processor-readable medium (such as a storage device) having instructions for executing the process. Additionally, in addition to or instead of instructions, the processor-readable medium can store data values generated by the implementation.
[0334] The device can be implemented, for example, in appropriate hardware, software, and firmware. Examples of such devices include personal computers, laptops, smartphones, tablets, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, head-mounted display devices (HMDs, see-through glasses), projectors, "caves" (systems comprising multiple displays), servers, video encoders, video decoders, post-processors that process the output from the video decoder, pre-processors that provide input to the video encoder, web servers, set-top boxes, and any other devices used for processing video images, or other communication devices. It should be clear that the equipment can be mobile and even mounted in mobile vehicles.
[0335] The computer software may be implemented by the processor 1810, by hardware, or by a combination of hardware and software. As a non-limiting example, exemplary embodiments may also be implemented by one or more integrated circuits. The memory 1820 may be of any type suitable for the technical environment and may be implemented using any suitable data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory, as non-limiting examples. The processor 1810 may be of any type suitable for the technical environment and may encompass one or more of microprocessors, general-purpose computers, special-purpose computers, and processors based on multi-core architectures, as non-limiting examples.
[0336] As will be apparent to those skilled in the art based on this application, implementations can generate various signals formatted to carry, for example, information that can be stored or transmitted. The information may include, for example, instructions for performing a method or data generated by one of the described implementations. For example, the signal may be formatted to carry a bitstream of the described exemplary embodiments. Such a signal may be formatted as, for example, electromagnetic waves (e.g., using the radio frequency portion of a spectrum) or baseband signals. Formatting may include, for example, encoding a data stream and modulating a carrier wave with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. As is known, signals can be transmitted via various wired or wireless links. The signal may be stored on a processor-readable medium.
[0337] The terminology used herein is for the purpose of describing particular exemplary embodiments only and is not intended to be limiting. As used herein, the singular forms “an,” “a,” and “the” may also be intended to include the plural forms unless the context clearly indicates otherwise. It will be further understood that, when used in this specification, the terms “include / comprise” and / or “including / comprising” may specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. Furthermore, when an element is referred to as “responding,” “connected,” or “associated with” another element, it may directly respond to, connect to, or associate with the other element, or there may be intermediate elements. Conversely, when an element is referred to as “directly responding,” “directly connected to,” or “directly associated with” another element, there are no intermediate elements.
[0338] It should be recognized that, for example, in the cases of “A / B,” “A and / or B,” and “at least one of A and B,” the use of any of the symbols / terms “ / ,” “and / or,” and “at least one” can be intended to cover the selection of only the first listed option (A), or only the second listed option (B), or the selection of both options (A and B). As a further example, in the cases of “A, B, and / or C” and “at least one of A, B, and C,” such wording is intended to cover the selection of only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or the selection of all three options (A, B, and C). As will be apparent to those skilled in the art and related fields, this can be extended to as many items as are listed.
[0339] Various numerical values may be used in this application. Specific values may be used for illustrative purposes and the aspects described are not limited to these specific values.
[0340] It will be understood that while the terms first, second, etc., may be used herein to describe various elements, these elements are not limited by these terms. These terms are used only to distinguish one element from another. For example, without departing from the teachings of this application, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element. No ordering is implied between the first element and the second element.
[0341] The references to “an exemplary embodiment” or “an exemplary embodiment” or “an implementation” or “implementation” and other variations thereof are frequently used to convey that a particular feature, structure, characteristic, etc. (described in connection with the embodiment / implementation) is included in at least one embodiment / implementation. Therefore, the phrases “in an exemplary embodiment” or “in an exemplary embodiment” or “in one implementation” or “in one implementation” appearing throughout this application, as well as any other variations, do not necessarily refer to the same exemplary embodiment.
[0342] Similarly, the references to "according to an exemplary embodiment / example / implementation" or "in an exemplary embodiment / example / implementation" and their variations are frequently used to convey that a particular feature, structure, or characteristic (described in conjunction with an exemplary embodiment / example / implementation) may be included in at least one exemplary embodiment / example / implementation. Therefore, the expressions "according to an exemplary embodiment / example / implementation" or "in an exemplary embodiment / example / implementation" appearing throughout this application do not necessarily refer to the same exemplary embodiment / example / implementation, nor are individual or alternative exemplary embodiments / examples / implementations necessarily mutually exclusive with other exemplary embodiments / examples / implementations.
[0343] The reference numerals appearing in the claims are for illustrative purposes only and do not limit the scope of the claims. Although not explicitly described, these exemplary embodiments / examples and variations may be employed in any combination or sub-combination.
[0344] When a diagram is presented as a flowchart, it should be understood that it also provides a block diagram of the corresponding apparatus. Similarly, when a diagram is presented as a block diagram, it should be understood that it also provides a flowchart of the corresponding method / process.
[0345] While some diagrams include arrows along the communication path to indicate the main direction of communication, it should be understood that communication can occur in the opposite direction to the arrows depicted.
[0346] Various implementations involve decoding. As used herein, "decoding" can encompass all or part of a process performed, for example, on a received video image (which may include a received bitstream encoded with one or more video images) to produce a final output suitable for display or further processing in a reconstructed video domain. In various exemplary embodiments, such a process includes one or more processes typically performed by a decoder. In various exemplary embodiments, such a process may also, or optionally, include a process performed by a decoder of the various embodiments described herein.
[0347] As a further example, in one exemplary embodiment, "decoding" may refer only to dequantization; in another exemplary embodiment, "decoding" may refer to entropy decoding; in yet another exemplary embodiment, "decoding" may refer only to differential decoding; and in yet another embodiment, "decoding" may refer to a combination of dequantization, entropy decoding, and differential decoding. It will be clear, and believed to be well understood, by those skilled in the art, whether the phrase "decoding process" is intended to specifically refer to a subset of operations or generally to a broader decoding process, depending on the context of the specific description.
[0348] Various implementations involve encoding. In a manner similar to the above discussion of "decoding," the term "encoding" as used herein can encompass all or part of a process performed on an input video image to produce an output bitstream. In various exemplary embodiments, such a process includes one or more processes typically performed by an encoder. In various exemplary embodiments, such a process also includes, or optionally includes, a process performed by an encoder of the various embodiments described herein.
[0349] As a further example, in one exemplary embodiment, "encoding" may refer only to quantization; in another exemplary embodiment, "encoding" may refer only to entropy encoding; in yet another exemplary embodiment, "encoding" may refer only to differential encoding; and in still another exemplary embodiment, "encoding" may refer to a combination of quantization, differential encoding, and entropy encoding. It will be clear, and believed to be well understood, by those skilled in the art, whether the phrase "encoding process" is intended to specifically refer to a subset of operations or generally to a broader encoding process, depending on the context of the particular description.
[0350] Furthermore, this application may refer to "obtaining" various types of information. Obtaining information may include one or more of the following: estimated information, calculated information, predicted information, or information retrieved from memory, processed information, moved information, copied information, cleared information, calculated information, determined information, predicted information, or estimated information.
[0351] Furthermore, this application may refer to "receiving" various types of information. Receiving information may include one or more of the following: for example, accessing information or retrieving information (e.g., from memory).
[0352] Moreover, as used herein, the term "signaling" specifically refers to instructing the corresponding decoder to do something. For example, in some exemplary embodiments, the encoder signals specific information, such as encoding parameters or encoded video image data. In this way, in exemplary embodiments, the same parameter can be used on both the encoder and decoder sides. Thus, for example, the encoder can transmit (explicit signaling) specific parameters to the decoder so that the decoder can use the same specific parameters. Conversely, if the decoder already has specific parameters as well as other parameters, then signaling can be used without transmission (implicit signaling) to simply allow the decoder to know and select specific parameters. Bit savings are achieved in various exemplary embodiments by avoiding the transmission of any actual functionality. It should be recognized that signaling can be accomplished in a variety of ways. For example, in various exemplary embodiments, one or more syntax elements, flags, etc., are used to signal information to the corresponding decoder. Although the verb form of the term "signal" has been referred to above, the term "signal" can also be used as a noun herein.
[0353] Several implementations have been described. However, it should be understood that various modifications can be made. For example, elements of different implementations can be combined, supplemented, modified, or removed to produce other implementations. Furthermore, those skilled in the art will understand that other structures and processes can replace the disclosed structures and processes, and the resulting implementations will perform at least substantially the same functions in at least substantially the same manner to achieve at least substantially the same results as the disclosed implementations. Therefore, these and other implementations are contemplated in this application.
Claims
1. A method for encoding a video picture (PCT1) including at least one picture region, the method comprising: - Select a transformation mode (MDS), which limits the combination of at least one flip operation and at least one rotation operation for the at least one image region; - Based on the selected transformation mode (MDS), the at least one image region is converted into at least one transformed image region; as well as - Encode at least one converted image region into the bitstream (BT1) of the encoded video image data; The conversion mode is selected from a list of candidate conversion modes obtained through the following: - Obtain at least a partially transformed image region by transforming the at least one image region using a candidate transformation mode (MD); as well as - When the distance between the main direction (DR1) determined from at least a partially transformed image region and the target direction (DR0) of at least one image region meets the threshold (TH1), the candidate transformation pattern is added to the candidate transformation pattern list.
2. The method according to claim 1, wherein the at least one rotation operation is a rotation of 90°, 180° or 270°.
3. The method according to claim 1, wherein, The conversion mode (MDS) is selected from the list of candidate conversion modes by minimizing the (1008) rate distortion tradeoff.
4. The method according to any one of claims 1 to 3, wherein, If the main direction (DR1) determined from at least a partially converted image region is vertical and / or horizontal, the conversion mode is selected by aligning the main direction with the boundary of the coding unit (CU).
5. The method according to any one of claims 1 to 3, wherein the method further comprises signaling region conversion information (DT1) into the bitstream (BT1) of the encoded video picture data, the region conversion information (DT1) indicating that at least one picture region of the video picture is converted according to a conversion mode.
6. The method according to claim 5, wherein, The Region Conversion Information (DT1) further defines the Conversion Mode (MDS) selected for converting at least one image region of a video image.
7. A method for decoding video images (PCT1) from a bitstream (BT1) of encoded video image data, wherein the method includes: - Obtain the decoded video image by decoding the encoded video image data from the bitstream of the encoded video image data; as well as - A video image is obtained by deconverting at least one image region of a decoded video image according to a conversion mode (MDS), wherein the conversion mode defines a combination of at least one flip operation and at least one rotation operation on the image region; The conversion mode is selected from a list of candidate conversion modes obtained through the following: - Obtain at least a partially transformed image region by transforming the at least one image region using a candidate transformation mode (MD); and - When the distance between the main direction (DR1) determined from at least a partially transformed image region and the target direction (DR0) of at least one image region meets the threshold (TH1), the candidate transformation pattern is added to the candidate transformation pattern list.
8. The method of claim 7, wherein the method further comprises: - Parse the region conversion information (DT1) within the bitstream (BT1) of the encoded video image data; as well as - Based on the region conversion information, determine the conversion mode (MDS), and perform deconversion on at least one image region according to the conversion mode.
9. The method according to claim 7 or 8, wherein the at least one rotation operation is a rotation of 90°, 180° or 270°.
10. An apparatus for encoding video pictures (PCT1) into a bitstream (BT1) of encoded video picture data, the apparatus comprising a component for performing any one of the methods claimed in claims 1 to 6.
11. An apparatus for video decoding of a video picture (PCT1) from a bitstream (BT1) of encoded video picture data, the apparatus comprising a component for performing any one of the methods claimed in claims 7 to 9.
12. A computer program product comprising instructions that, when executed by one or more processors, cause the one or more processors to perform the method as described in any one of claims 1 to 9.
13. A non-transient storage medium storing instructions that, when executed by a processor, implement the method as described in any one of claims 1 to 9.