Method and apparatus for video encoding and decoding
By switching to relying on scalar quantization and conventional scalar quantization according to the quantization mode selection conditions in video encoding and decoding, the problems of low efficiency and high complexity of quantization mode selection in the prior art are solved, and the efficiency and quality of video encoding and decoding are improved.
Patent Information
- Application Number
- CN202411215795.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-08-21
- Filing Date
- 2019-11-19
- Publication Date
- 2024-12-13
AI Technical Summary
When the existing video encoding and decoding technologies deal with transformation coefficients, there are problems of low efficiency and high complexity in quantization mode selection, especially in the transformation coefficient encoding and decoding of high-frequency regions, which is difficult to achieve optimization.
By obtaining the quantization mode selection conditions, selecting the appropriate first quantization mode and the second quantization mode to process different parts of the transform coefficient set, using the switching between dependent scalar quantization and conventional scalar quantization, according to the position of the codec block and the prediction mode, and component characteristics to select quantization mode to achieve optimization of encoding and decoding efficiency.
The efficiency of video encoding and decoding is improved and complexity is reduced. Especially in the encoding and decoding process of high-frequency areas, better information compression and reconstruction quality is achieved.
Smart Images

Figure CN119135898A_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with application date of November 19, 2019, application number 201980088748.2, and invention name “Quantization for Video Encoding and Decoding”. Technical Field
[0002] The present embodiments generally relate to methods and apparatus for video encoding or decoding, and more specifically, to methods and apparatus for efficiently encoding and decoding video, wherein a quantization mode for respectively processing a first part and a second part of a transform coefficient set is selected based on a quantization mode selection condition. Background Art
[0003] In order to achieve high compression efficiency, image and video coding schemes usually use predictive and transform coding to exploit spatial and temporal redundancy in video content. Generally, intra-frame prediction or inter-frame prediction is used to exploit frame correlation within or between frames, and then the difference between the original block and the predicted block (usually expressed as a prediction error or prediction residual) is transformed, quantized, and entropy coded. In order to reconstruct the video, the compressed data is decoded by the inverse process corresponding to prediction, transformation, quantization, and entropy coding.
[0004] Recent additions to video compression technology include various versions of reference software and / or files, the Joint Exploration Model (JEM), which are being developed by the Joint Video Exploration Team (JVET) as part of a new video codec standard called Versatile Video Codec (VVC), which is intended to be a further improvement over the existing High Efficiency Video Codec (HEVC) standard. Summary of the invention
[0005] According to a general aspect of at least one embodiment of the present disclosure, a method for video encoding is proposed, comprising obtaining a quantization mode selection condition; based on the quantization mode selection condition, selecting a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, selecting a second quantization mode for processing a second part of the transform coefficient set; and encoding a video based on the processed first and second parts of the transform coefficient set.
[0006] According to a general aspect of at least one embodiment of the present disclosure, a device for video encoding is proposed, comprising one or more processors configured to: obtain a quantization mode selection condition; based on the quantization mode selection condition, select a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, select a second quantization mode for processing a second part of the transform coefficient set; and encode a video based on the processed first and second parts of the transform coefficient set.
[0007] According to a general aspect of at least one embodiment, a device for video encoding is proposed, comprising a component for obtaining a quantization mode selection condition; a component for selecting a first quantization mode for processing a first part of a transform coefficient set based on the quantization mode selection condition; a component for selecting a second quantization mode for processing a second part of the transform coefficient set based on the quantization mode selection condition; and a component for encoding a video based on the processed first and second parts of the transform coefficient set.
[0008] According to a general aspect of at least one embodiment, a method for video decoding is proposed, comprising obtaining a quantization mode selection condition; based on the quantization mode selection condition, selecting a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, selecting a second quantization mode for processing a second part of the transform coefficient set; and decoding a video based on the processed first and second parts of the transform coefficient set.
[0009] According to a general aspect of at least one embodiment, a device for video decoding is proposed, comprising one or more processors configured to: obtain a quantization mode selection condition; based on the quantization mode selection condition, select a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, select a second quantization mode for processing a second part of the transform coefficient set; and decode a video based on the processed first and second parts of the transform coefficient set.
[0010] According to a general aspect of at least one embodiment, a device for video decoding is proposed, comprising a component for obtaining a quantization mode selection condition; a component for selecting a first quantization mode for processing a first part of a transform coefficient set based on the quantization mode selection condition; a component for selecting a second quantization mode for processing a second part of the transform coefficient set based on the quantization mode selection condition; and a component for decoding a video based on the processed first and second parts of the transform coefficient set.
[0011] In at least one embodiment, one or more syntax elements are provided to indicate a quantization mode selection condition, which enables a first quantization mode to be selected based on a condition for processing a first part of a transform coefficient set, a second quantization mode to be selected based on a condition for processing a second part of the transform coefficient set, and encoding and / or decoding video information based on processing of the first part and the second part.
[0012] According to another general aspect of at least one embodiment, a bitstream including a video is proposed, wherein the bitstream is formed by the following steps: obtaining a quantization mode selection condition; based on the quantization mode selection condition, selecting a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, selecting a second quantization mode for processing a second part of the transform coefficient set; and encoding the video into a bitstream based on the processed first and second parts of the transform coefficient set.
[0013] One or more embodiments of the present invention also provide a computer-readable storage medium having stored thereon instructions for encoding or decoding video data according to one or more aspects and / or embodiments described herein.
[0014] One or more embodiments of the present embodiment may also relate to a non-transitory computer-readable medium storing executable program instructions, so that a computer executes the instructions to perform a method according to any embodiment of the present disclosure.
[0015] This embodiment also provides a computer-readable storage medium on which a bit stream generated according to one or more aspects and / or embodiments described herein is stored.
[0016] The present embodiment also provides a method and apparatus for transmitting a bit stream generated according to one or more aspects and / or embodiments described herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The present disclosure may be better understood by considering the following detailed description in conjunction with the accompanying drawings, in which:
[0018] Figure 1 A block diagram illustrating an example of an embodiment of a video encoder;
[0019] Figure 2 A block diagram illustrating an example of an embodiment of a video decoder;
[0020] Figure 3 The concepts of Codec Tree Unit (CTU) and Codec Tree (CT) used to represent compressed HEVC pictures are shown;
[0021] Figure 4 The division of the codec tree unit (CTU) into codec units (CU), prediction units (PU) and transform units (TU) is shown;
[0022] Figure 5 An example of two scalar quantizers used in accordance with one or more aspects described herein is shown;
[0023] Figure 6illustrates examples of state transitions and quantizer selection according to one or more aspects described herein;
[0024] Figure 7 An example of an encoding method according to one or more aspects described herein is shown;
[0025] Figure 8 An example of a decoding method according to one or more aspects described herein is shown;
[0026] Fig. 9 An example of quantized control according to one or more aspects described herein is shown; and
[0027] Fig.10 A block diagram of an example of a system suitable for implementing one or more of the various aspects, embodiments, and features according to the present disclosure is shown.
[0028] It should be understood that the drawings are for illustrating examples of various aspects and embodiments and are not necessarily the only possible configurations. Throughout the various drawings, like reference numerals refer to the same or similar features. DETAILED DESCRIPTION
[0029] Turning now to the accompanying drawings, Figure 1 An example of a video encoder 100 such as a High Efficiency Video Codec (HEVC) encoder is shown. Figure 1 Encoders in which improvements have been made to the HEVC standard, or encoders that employ techniques similar to HEVC, may also be shown, such as the JEM (Joint Exploration Model) encoder developed by JVET (Joint Video Exploration Team) as part of the development of a new video codec standard called Versatile Video Codec (VVC).
[0030] In this application, the terms "reconstructed" and "decoded" are used interchangeably, the terms "encoded" or "codec" are used interchangeably, and the terms "image", "picture" and "frame" are used interchangeably. Usually, but not necessarily, the term "reconstructed" is used on the encoder side, and "decoded" is used on the decoder side.
[0031] Before being encoded, the video sequence may undergo a pre-encoding process (101), for example, applying a color transform to an input color picture (e.g., conversion from RGB 4:4:4 to YCbCr 4:2:0), or performing a remapping of input picture components (e.g., using histogram equalization of one of the color components) in order to obtain a signal distribution that is more resilient to compression. Metadata may be associated with the pre-processing and appended to the bitstream.
[0032] In HEVC, to encode a video sequence having one or more pictures, the pictures are partitioned (102) into one or more slices, where each slice may include one or more slice segments. Slice segments are organized into codec units, prediction units, and transform units. The HEVC specification distinguishes between "blocks" and "units", where a "block" addresses a specific area in the sample array (e.g., luma, Y), and a "unit" includes a co-located block of all coded color components (Y, Cb, Cr, or monochrome), syntax elements, and prediction data associated with the block (e.g., motion vectors).
[0033] For coding and decoding in HEVC, pictures are partitioned into square codec tree blocks (CTBs) of configurable size, and sets of consecutive codec tree blocks are grouped into slices. A codec tree unit (CTU) contains the CTBs of the coded color components. The CTB is the root of a quadtree partitioned into codec blocks (CBs), and a codec block can be partitioned into one or more prediction blocks (PBs) and forms the root of a quadtree partitioned into transform blocks (TBs). Corresponding to the codec blocks, prediction blocks, and transform blocks, a codec unit (CU) includes a prediction unit (PU) and a tree-structured set of transform units (TUs), the PU includes prediction information for all color components, and the TU includes a residual codec syntax structure for each color component. The sizes of the CB, PB, and TB of the luminance component are applicable to the corresponding CU, PU, and TU.
[0034] In JEM, the QTBT (quadtree plus binary tree) structure removes the concept of multiple partition types in HEVC, that is, the separation of the concepts of CU, PU, and TU is removed. First, the codec tree unit (CTU) is partitioned by the quadtree structure. The quadtree leaf nodes are further partitioned by the binary tree structure. The leaf nodes of the binary tree are named codec units (CU), which are used for prediction and conversion without further partitioning. Therefore, in the new codec QTBT block structure, CU, PU, and TU have the same block size. In JEM, a CU consists of codec blocks (CBs) of different color components.
[0035] In this application, the term "block" may be used to refer to any of, for example, CTU, CU, PU, TU, CB, PB, and TB. In addition, "block" may also be used to refer to macroblocks and partitions specified in H.264 / AVC or other video coding standards, and more generally to data arrays of various sizes.
[0036] In the exemplary encoder 100, as described below, a picture is encoded by an encoder element. The picture to be encoded is processed in units of CUs. Each CU is encoded using intra mode or inter mode. When a CU is encoded in intra mode, it performs intra prediction (160). In inter mode, motion estimation (175) and motion compensation (170) are performed. The encoder decides (105) which of intra mode or inter mode to use to encode the CU and indicates the intra / inter decision through a prediction mode flag. The prediction residual is calculated by subtracting (110) the predicted block from the original image block.
[0037] The CU in intra mode is predicted from reconstructed neighboring samples within the same strip. In HEVC, a set of 35 intra prediction modes is available, including DC, planar, and 33 angular prediction modes. The intra prediction reference is reconstructed from rows and columns adjacent to the current block. The reference extends twice the block size in the horizontal and vertical directions using the available samples from the previously reconstructed block. When an angular prediction mode is used for intra prediction, the reference samples can be copied along the direction indicated by the angular prediction mode.
[0038] The applicable luma intra prediction mode for the current block can be encoded using two different options in HEVC. If the applicable mode is contained in the built list of three most probable modes (MPM), the mode is signaled by the index in the MPM list. Otherwise, the mode is signaled by a fixed-length binary of the mode index. The three most probable modes are derived from the intra prediction modes of the top and left neighboring blocks.
[0039] The current proposal in JEM increases the number of intra prediction modes compared to HEVC. In addition to planar mode 0 and DC mode 1, JEM 3.0 uses 65 directional intra prediction modes. The directional intra prediction modes are numbered in increasing order from 2 to 66 in the same way as from 2 to 34 in HEVC. The 65 directional prediction modes include the 33 directional prediction modes specified in HEVC, plus 32 additional directional prediction modes corresponding to angles between two original angles. In other words, the prediction direction in JEM has twice the angular resolution of HEVC. A higher number of prediction modes has been proposed to exploit the possibility of a finer angular structure with the proposed larger block size.
[0040] For inter CUs of HEVC, the corresponding codec block is further divided into one or more prediction blocks. Inter prediction is performed at the PB level, and the corresponding PU contains information about how to perform inter prediction. Motion information (e.g., motion vector and reference picture index) can be signaled in two ways, namely "merge mode" and "advanced motion vector prediction (AMVP)".
[0041] In merge mode, the video encoder or decoder assembles a candidate list based on already coded blocks, and the video encoder signals the index of one of the candidates in the candidate list. At the decoder side, motion vectors (MVs) and reference picture indices are reconstructed based on the signaled candidates.
[0042] In AMVP, a video encoder or decoder assembles a candidate list based on motion vectors determined from blocks that have already been coded. The video encoder then signals an index into the candidate list to identify the motion vector predictor (MVP) and signals the motion vector difference (MVD). On the decoder side, the motion vector (MV) is reconstructed as MVP+MVD. The applicable reference picture index is also explicitly coded in the PU syntax for AMVP.
[0043] The prediction residual is then transformed (125) and quantized (130). The transform is typically based on a separable transform. For example, the DCT transform is first applied in the horizontal direction and then in the vertical direction. For HEVC, transform block sizes of 4×4, 8×8, 16×16 and 32×32 are supported. The elements of the core transform matrix are obtained by approximating scaled discrete cosine transform (DCT) basis functions. The HEVC transform is designed under considerations such as limiting the dynamic range of the transform calculation and maximizing accuracy and closeness to orthogonality when the matrix entries are specified as integer values. For simplicity, only integer matrices of length 32 points are specified, while subsampled versions are used for other sizes. For a transform block size of 4×4, an alternative integer transform derived from the discrete sine transform (DST) is applied to the luma residual block for the intra prediction mode.
[0044] In JEM, the transform used in the two directions may be different (e.g., DCT in one direction and DST in the other), which leads to a wide variety of 2D transforms, while in previous codecs the variety of 2D transforms for a given block size is usually limited.
[0045] The quantized transform coefficients are entropy encoded (145) along with motion vectors and other syntax elements to output a bitstream. The encoder can also skip the transform and apply quantization directly to the untransformed residual signal on a 4×4TU basis. The encoder can also bypass both transform and quantization, i.e., encode and decode the residual directly without applying the transform or quantization process. In direct PCM encoding and decoding, prediction is not applied, and the codec unit samples are encoded and decoded directly into the bitstream.
[0046] The encoder decodes the encoded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (140) and inverse transformed (150) to decode the prediction residual. The decoded prediction residual and the prediction block are combined (155) to reconstruct the image block. For example, an in-loop filter (165) is applied to the reconstructed picture to perform deblocking / sample adaptive offset (SAO) filtering to reduce coding artifacts. The filtered image is stored in a reference picture buffer (180).
[0047] Figure 2 1 shows a block diagram of an exemplary video decoder 200, such as a HEVC decoder. In the exemplary decoder 200, a bitstream is decoded by decoder elements as described below. The video decoder 200 generally performs the same operations as described above. Figure 1 The encoding pass described in corresponds to a decoding pass that performs video decoding as part of encoding the video data. Figure 2 It is also possible to show a decoder that improves the HEVC standard or a decoder that adopts a technique similar to HEVC, such as a JEM decoder.
[0048] Specifically, the input to the decoder includes a video bitstream, which may be generated by the video encoder 100. The bitstream is first entropy decoded (230) to obtain transform coefficients, motion vectors, picture segmentation information, and other codec information. For HEVC, the picture segmentation information indicates the size of the CTU, and the manner in which the CTU is split into CUs and, if applicable, PUs. Therefore, the decoder may divide (235) the picture into CTUs and each CTU into CUs based on the decoded picture segmentation information. For JEM, the decoder may divide the picture based on the segmentation information indicating the QTBT structure. The transform coefficients are dequantized (240) and inverse transformed (250) to decode the prediction residual.
[0049] The decoded prediction residual and the prediction block are combined (255) to reconstruct the image block. The prediction block can be obtained (270) from intra-frame prediction (260) or motion compensated prediction (i.e., inter-frame prediction) (275). As described above, AMVP and merge mode techniques can be used to derive motion vectors for motion compensation, which can use interpolation filters to calculate interpolated values of sub-integer samples of a reference block. An in-loop filter (265) is applied to the reconstructed image. The filtered image is stored in a reference picture buffer (280).
[0050] The decoded picture may further undergo post-decoding processing (285), such as an inverse color transform (e.g., conversion from YCbCr 4:2:0 to RGB 4:4:4) or inverse remapping, which performs the inverse of the remapping process performed in the pre-encoding process (101). The post-decoding processing may use metadata derived in the pre-encoding process and signaled in the bitstream.
[0051] In the HEVC video compression standard, pictures are divided into so-called codec tree units (CTUs), which are usually 64×64, 128×128 or 256×256 pixels in size. Each CTU is represented by a codec tree in the compressed domain. Figure 3 As shown in Figure 1, this is a quadtree partition of a CTU, where each leaf is called a codec unit (CU). Each unit is then given some intra-frame or inter-frame prediction parameters (Prediction Info). In doing so, each prediction unit is spatially partitioned or split into one or more prediction units (PUs), and each PU is assigned some prediction information. Figure 4 As shown in , intra or inter coding mode is allocated at the CU level.
[0052] Intra-frame or inter-frame prediction is used to exploit frame correlation within or between frames, and then the difference between the original block and the predicted block (usually expressed as a prediction error or prediction residual) is transformed, quantized, and entropy encoded. In order to reconstruct the video, the compressed data is decoded by the inverse process corresponding to entropy coding, quantization, transformation, and prediction.
[0053] A form of quantization known as dependent scalar quantization involves using two scalar quantizers with different reconstruction levels for quantization. In contrast to conventional non-dependent scalar quantization (e.g., as used in HEVC), dependent scalar quantization involves a set of allowable reconstruction values for a transform coefficient that depends on the values of the transform coefficient levels that precede the current transform coefficient level in the reconstruction order.
[0054] Dependent scalar quantization can be implemented by (a) defining two scalar quantizers with different reconstruction levels, and (b) defining a procedure for switching between the two scalar quantizers. For example, Figure 5 Two scalar quantizers are shown, denoted by Q0 and Q1, which can be used in a dependent scalar quantization method. The positions of the available reconstruction levels are uniquely specified by the quantization step size Δ. If we ignore the fact that the actual reconstruction of the transform coefficients uses integer arithmetic, the two scalar quantizers Q0 and Q1 are characterized as follows:
[0055] Q0: The reconstruction level of the first quantizer Q0 is given by an even integer multiple of the quantization step size Δ. When this quantizer is used, the reconstructed transform coefficient t' is calculated according to the following formula:
[0056] t'=2·k·Δ
[0057] where k represents the associated transform coefficient level (transmitted quantization index). It should be noted that the term "transform coefficient level" refers to the quantized transform coefficient value, e.g. it corresponds to the absLevel as described in the residual_coding syntax structure below. The term "reconstructed transform coefficient" refers to the dequantized transform coefficient value.
[0058] Q1: The reconstruction level of the second quantizer Q1 is given by odd integer multiples of the quantization step size Δ and an additional reconstruction level equal to zero. The mapping of transform coefficient level k to reconstructed transform coefficient t' is specified by:
[0059] t'=(2·k–sgn(k))·Δ,
[0060] where sgn(·) represents the sign function,
[0061] sgn(x)=(k==0?0:(k<0?–1:1)).
[0062] The scalar quantizer (Q0 or Q1) used is not explicitly signaled in the bitstream. Instead, the quantizer used for the current transform coefficient is determined by the parity of the transform coefficient levels that precede the current transform coefficient in the encoding / reconstruction order. For example, Figure 6 State transition diagrams and associated quantizer selections for methods that rely on quantization are shown.
[0063] like Figure 6As shown, the switching between the two scalar quantizers (Q0 and Q1) is implemented via a state machine with four states. The state can take four different values: 0, 1, 2, 3. The state is uniquely determined by the parity of the transform coefficient level that precedes the current transform coefficient in the encoding / decoding / reconstruction order. At the beginning of inverse quantization of the transform block, the state is set equal to 0. The transform coefficients are reconstructed in scan order (i.e., in the same order as they were entropy decoded). After the current transform coefficient is reconstructed, the state is updated, as Figure 6 As shown, where k represents the value of the transform coefficient level. Note that the next state depends only on the current state and the parity of the current transform coefficient level k (k & 1). With k representing the value of the current transform coefficient level, the state update can be written as:
[0064] state=stateTransTable[state][k&1],
[0065] Where stateTransTable represents Figure 6 The state transition table shown in , and the operator "&" specifies the bitwise "AND" operator in two's complement operation. Alternatively, the state transition can also be specified without using a lookup table and using a 16-bit value QStateTransTable:
[0066] state=(QStateTransTable>>((state<<2)+((k&1)<<1)))&3
[0067] If dependent quantization is used, the value of QStateTransTable is set to 32040. As a result, a state machine with four states is used to update the state. If the state of the current transform coefficient is equal to 0 or 1, a scalar quantizer Q0 is used. Otherwise (state is equal to 2 or 3), a scalar quantizer Q1 is used. When dependent quantization is applied, the quantization step size is 2Δ.
[0068] Otherwise (using normal scalar quantization), the value of QStateTransTable is set equal to 0. As a result, for all transform coefficients, the state is equal to 0. When normal scalar quantization is applied, the quantization step size is Δ.
[0069] Note that the state is used to select the probability model for sig_coeff_flag.With the approach of parameterizing the state transition table (using the 16-bit variable QstateTransTable), exactly the same context modeling can be used for entropy coding with dependent quantization and entropy coding with conventional independent quantization.
[0070] If dependent scalar quantization is used, then the design approach for coefficient coding may involve applying dependent scalar quantization to all transform coefficients.
[0071] In general, one aspect of the present disclosure relates to providing, in at least one embodiment, for selectively enabling one of a first quantization scheme and a second quantization scheme or switching between the first quantization scheme and the second quantization scheme for transform coefficient encoding and decoding. In general, at least one embodiment may include switching between the first quantization scheme and the second quantization scheme based on the following conditions: enabling the first quantization scheme for encoding and decoding a first portion or subset of a set of transform coefficients, which first portion or subset may include less than the entire set of transform coefficients; and enabling the second quantization scheme for encoding and decoding a second portion or subset of the set of transform coefficients other than the transform coefficients included in the first subset. In general, at least one embodiment may include a condition including the position of the transform coefficient relative to one or more regions of the encoding and decoding block, for example, the first portion is located in a first region corresponding to low-frequency information, and the second portion is located in a second region corresponding to high-frequency information. In general, at least one embodiment may include a condition including a prediction mode of the block, wherein the prediction mode includes one of intra-frame encoding and decoding or inter-frame encoding and decoding, for example, the first portion corresponds to information of the intra-frame encoding and decoding, and the second portion corresponds to information of the inter-frame encoding and decoding. In general, at least one embodiment may include a condition comprising a component characteristic, wherein the component characteristic comprises one of a luminance component and a chrominance component, e.g., a first portion comprises luminance information and a second portion comprises chrominance information. In general, at least one embodiment may include a condition comprising a combination of one or more of the position and prediction mode of the transform coefficients and the component characteristic. In general, at least one embodiment may include a condition determined based on evaluating codec efficiency and / or implementation complexity.
[0072] In more detail, codecs such as those developed by JVET may include quantization methods such as dependent scalar quantization applied to all transform coefficients in a block. Dependent quantization may increase codec efficiency through trellis codec quantization techniques. However, the complexity of dependent scalar quantization may be higher than alternative quantization methods such as conventional scalar quantization. For example, the higher complexity of dependent scalar quantization may involve more steps required in the decoding process.
[0073] Regarding the transform coefficients to be quantized, after the transform, the energy will be highly compressed to the upper left corner of the codec block corresponding to the low-frequency position or area. That is, compared with the transform coefficients located in the high-frequency area, the DC coefficient and the low-frequency transform coefficients usually have more information and higher absolute values. For the transform coefficients located in the high-frequency area, most of them are zero or insignificant values (1 or 2). Such insignificant values can be easily encoded and decoded at a low rate cost (for example, determined based on rate-distortion optimization (RDO)) using a quantization scheme or technique such as conventional scalar quantization, and the impact of these insignificant values on sample reconstruction is not as important as the DC coefficient or the low-frequency transform coefficient.
[0074] In general, one aspect of at least one example of the embodiments described herein includes selectively enabling a first quantization scheme and a second quantization scheme or switching between the first and second quantization schemes based on a condition, for example, applying the first quantization scheme and the second quantization scheme to the transform coefficients based on a condition such as the position of the transform coefficients in the codec block (e.g., a low-frequency region or a high-frequency region). In at least one embodiment, another aspect may involve deactivating, disabling, or switching from a first type of quantization (e.g., dependent scalar quantization) for quantizing transform coefficients located at a first position or region (e.g., a low-frequency region), and activating, enabling, or switching to a second type of quantization (e.g., conventional scalar quantization) for quantizing transform coefficients located at a second position or region (e.g., a high-frequency region), wherein the switching may be based on evaluating one or more factors, for example, obtaining a good or acceptable or optimal trade-off between factors or characteristics such as codec complexity and efficiency.
[0075] Figure 7 and Figure 8 700 and 800 respectively show example embodiments of an encoding method 700 and a decoding method 800 according to the present disclosure. Figure 7 In the illustrated encoding method 700, at 710, a quantization mode selection condition is obtained, for example, by extracting information from an input, such as a prediction mode, a position in a codec block, or other characteristics such as brightness / chrominance. At 720, a quantization mode or a quantization type such as scalar-dependent quantization or conventional scalar quantization is enabled based on the condition obtained at 710. Then, at 730, the video data is encoded based on the quantization mode or the quantization type.
[0076] Similarly, in Figure 8In the illustrated decoding method 800, at 810, a quantization mode selection condition is obtained (e.g., based on the syntax of the signal) by extracting information from the input, such as a prediction mode, a position in a codec block, or other characteristics such as luma / chroma. At 820, a quantization mode or quantization type such as scalar-dependent quantization or conventional scalar quantization is enabled based on the condition obtained at 810. Then, at 830, the video data is decoded based on the quantization mode or quantization type.
[0077] As another example, based on currently adopted designs of coefficient coding in codecs such as that contemplated by JVET, switching between dependent scalar quantization and conventional scalar quantization can be achieved by setting a 16-bit value of QStateTransTable that specifies a state transition table. If the value of QStateTransTable is set equal to 0, conventional scalar quantization is used, where the quantization step size is equal to Δ; and if the value of QStateTransTable is set equal to 32040, dependent scalar quantization is used, where the quantization step size is adaptively changed to 2Δ.
[0078] At least one embodiment may include disabling dependent scalar quantization for transform coefficients located in high frequency regions, where the value of the QStateTransTable may be set based on the location of a sub-block, which may also be referred to as a "coefficient group (CG)". Then, variants such as the following may be applied:
[0079] - activating dependent scalar quantization only for the first sub-block, which contains the DC level; or
[0080] - activating dependent scalar quantization only for the first sub-block and one or more additional sub-blocks located to the upper left of the codec block, which sub-blocks contain DC levels and low frequency coefficients. The number of sub-blocks for which dependent scalar quantization is applied (e.g., referred to hereinafter as a parameter or value named "DSQSwitchPoint") may be a predefined value, or a value DSQSwitchPoint, which depends on factors such as the size (width and height) of the codec block.
[0081] Fig. 9 A flow chart 900 is depicted, which illustrates an example of an embodiment involving activating dependent scalar quantization for a number of sub-blocks with indices less than a predefined DSQSwitchPoint. In conjunction, another aspect of the present embodiment involves providing a coding and / or decoding signal syntax and / or a bitstream including such syntax to enable switching between quantization schemes as described herein. An example of such syntax is shown in Table 1 attached to this document. The details in Table 1 correspond to those described above and in Fig. 9The example embodiment shown in Table 1. In Table 1, for illustration purposes, different passes over the scan positions are labeled "first pass", "second pass", "third pass" and "fourth pass". The shaded portion of Table 1 shows an example of the syntax for switching between transform coefficient encoding and decoding that relies on scalar quantization and conventional scalar quantization.
[0082] One or more of the above embodiments may include activating or enabling dependent scalar quantization for transform coefficients located in the low frequency region. A variant may include deactivating dependent scalar quantization for transform coefficients located in the low frequency region, for example if an evaluation of codec efficiency and / or complexity indicates that doing so is advantageous.
[0083] In general, another aspect of at least one embodiment may relate to a prediction mode, such as intra-frame coding or inter-frame coding. For example, an intra-frame coding block typically contains more residual information to be coded than an inter-frame coding block, and therefore, relying on scalar quantization is more useful for an intra-frame coding block.
[0084] In at least one other embodiment, a quantization mode or quantization type, such as scalar quantization-dependent, may be enabled or activated based on a condition, such as a prediction mode. For example, a prediction mode condition indicating an intra-coded block may enable a quantization type or quantization mode, such as scalar quantization-dependent, while a condition indicating an inter-coded block may serve as a basis for switching quantization modes, such as switching to conventional scalar quantization. This may be done based on evaluating factors such as codec complexity and efficiency, such as to achieve a compromise between these factors that may be appropriate, good, or optimal for a particular situation or embodiment.
[0085] A variation of the described embodiment relating to prediction modes may include switching between quantization modes or quantization types, e.g. to deactivate or disable a quantization type such as one relying on scalar quantization for intra-coded blocks and to enable or activate it for inter-coded blocks.
[0086] In general, another aspect of at least one embodiment may involve selecting or switching a quantization mode or quantization type based on conditions including component characteristics such as brightness / chrominance or other color components. The human visual system is less sensitive to color than to structural and texture information. Therefore, in many application scenarios, it is more important to provide a high-resolution brightness component than to provide such details for the chrominance component. In the video compression process, it is more necessary to reduce the data loss of the brightness samples than the chrominance samples. In order to mitigate information loss, fine and accurate quantization is very necessary. Therefore, in at least one example of the embodiment, a quantization type such as dependent scalar quantization can be activated or enabled based on conditions including component characteristics. For example, dependent scalar quantization can be enabled or activated based on a condition indicating a brightness component, and for chrominance components, it is switched to conventional scalar quantization instead. This can be done based on evaluating factors such as codec complexity and efficiency, for example, to achieve a compromise between these factors that may be appropriate, good or optimal for a particular situation or embodiment. A variant may include an evaluated condition to deactivate dependent scalar quantization for the brightness component and only activate dependent scalar quantization for the chrominance component.
[0087] The above variants may be considered exclusive, in that a particular system with a specific or fixed hardware codec embodiment may implement one of the embodiments, features, aspects, or variants without including other embodiments, features, aspects, or variants. Alternatively, some systems may include more than one such variant. For example, various combinations of the features and aspects described herein are foreseeable. In addition, based on factors such as, but not limited to, content to be processed, power consumption control, performance (speed, latency), codec complexity, codec efficiency, etc., the system may be reconfigurable, for example, including the ability to reconfigure hardware and / or software. In such a system, the reconfiguration capability may include selectively enabling one or more of a plurality of variants such as those described.
[0088] Various methods are described above, and each method includes one or more steps or actions for implementing the method. Unless a specific order of steps or actions is required for the correct operation of the method, the order and / or use of specific steps and / or actions may be modified or combined.
[0089] Various numerical values are used in the present application, such as the number of intra prediction modes (35 or 67), or the number of transform subsets (3). It should be noted that the specific values are for exemplary purposes, and the present embodiment is not limited to these specific values.
[0090] In the above, various embodiments are described with respect to HEVC or JEM. For example, various examples according to aspects and embodiments of the present disclosure may be used to modify an encoder and / or a decoder (e.g., Figure 1 and Figure 2 As an example, the aspects and embodiments described herein may modify such as Figure 1 The quantization module 130 and / or the inverse quantization module 140 and / or the entropy coding module 145 in the encoder shown, and / or the quantization module 130 and / or the inverse quantization module 140 and / or the entropy coding module 145 may be modified such as Figure 2 The inverse quantization module 240 and / or the entropy decoding module 220 in the decoder are shown. However, the present embodiment is not limited to JEM or HEVC and may be applied to other standards, recommendations and extensions thereof.
[0091] Fig.10 A block diagram of an example of a system in which various aspects and embodiments can be implemented is shown. System 1000 can be embodied as a device including various components described below, and is configured to perform one or more aspects described in this document. Examples of such devices include, but are not limited to, various electronic devices, such as personal computers, laptop computers, smart cellular phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected household appliances, and servers. The elements of system 1000 can be embodied in a single integrated circuit, multiple ICs, and / or discrete components, either individually or in combination. For example, in at least one embodiment, the processing and encoder / decoder elements of system 1000 are distributed across multiple ICs and / or discrete components. In various embodiments, system 1000 is coupled to other similar systems or other electronic devices via, for example, a communication bus or by a dedicated input and / or output port communication. In various embodiments, system 1000 is configured to implement one or more of the aspects described in this document.
[0092] The system 1000 includes at least one processor 1010, which is configured to execute instructions loaded therein, for example, to implement various aspects described in this document. The processor 1010 may include embedded memory, input and output interfaces, and various other circuits known in the art. The system 1000 includes at least one memory 1020 (e.g., a volatile memory device and / or a non-volatile memory device). The system 1000 includes a storage device 1040, which may include non-volatile memory and / or volatile memory, including but not limited to EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash memory, magnetic disk drive, and / or optical disk drive. As a non-limiting example, the storage device 1040 may include an internal storage device, an additional storage device, and / or a network accessible storage device.
[0093] The system 1000 includes an encoder / decoder module 1030, which is configured to, for example, process data to provide encoded video or decoded video, and the encoder / decoder module 1030 may include its own processor and memory. The encoder / decoder module 1030 represents a module (one or more) that may be included in a device to perform encoding and / or decoding functions. As is known, a device may include one or both of the encoding and decoding modules. Additionally, as known to those skilled in the art, the encoder / decoder module 1030 may be implemented as an independent element of the system 1000, or may be incorporated into the processor 1010 as a combination of hardware and software.
[0094] Program code to be loaded onto the processor 1010 or the encoder / decoder 1030 to perform various aspects described in this document may be stored in the storage device 1040 and subsequently loaded onto the memory 1020 for execution by the processor 1010. According to various embodiments, one or more of the processor 1010, the memory 1020, the storage device 1040, and the encoder / decoder module 1030 may store one or more of various items during the execution of the processes described in this document. Such stored items may include, but are not limited to, input video, decoded video or portions of decoded video, bitstreams or signals, matrices, variables, and intermediate or final results from the processing of equations, formulas, operations, and operational logic.
[0095] In several embodiments, memory inside the processor 1010 and / or the encoder / decoder module 1030 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other embodiments, memory external to the processing device (e.g., the processing device may be the processor 1010 or the encoder / decoder module 1030) is used for one or more of these functions. The external memory may be a memory 1020 and / or a storage device 1040, such as a dynamic volatile memory and / or a non-volatile flash memory. In several embodiments, the external non-volatile flash memory is used to store the operating system of the television. In at least one embodiment, a fast external dynamic volatile memory such as RAM is used as working memory for video encoding and decoding operations (e.g., for MPEG-2, HEVC, or VVC (Versatile Video Codec)).
[0096] Input to the elements of system 1000 may be provided through various input devices, as indicated at block 1130. Such input devices include, but are not limited to, (i) an RF section that receives an RF signal transmitted over the air, such as by a broadcaster, (ii) a composite input terminal, (iii) a USB input terminal, and / or (iv) an HDMI input terminal.
[0097] In various embodiments, the input device of block 1130 has associated corresponding input processing elements known in the art. For example, the RF part can be associated with elements for the following items: (i) selecting a desired frequency (also referred to as selecting a signal, or band limiting a signal to a frequency band), (ii) down-converting the selected signal, (iii) again band-limiting to a narrower frequency band to select a signal band that can be referred to as a channel in some embodiments, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a stream of desired data packets. The RF part of various embodiments includes one or more elements for performing these functions, such as a frequency selector, a signal selector, a band limiter, a channel selector, a filter, a down-converter, a demodulator, an error corrector, and a demultiplexer. The RF part can include a tuner that performs various of these functions, including, for example, down-converting a received signal to a lower frequency (e.g., an intermediate frequency or a near-baseband frequency) or baseband. In a set-top box embodiment, the RF part and its associated input processing element receive the RF signal transmitted by wired (for example, cable) medium, and filter to the desired frequency band again to perform frequency selection by filtering, down-conversion and filtering. Various embodiments rearrange the order of above-mentioned (and other) elements, remove some in these elements, and / or add other elements of similar or different functions. Adding element can include inserting element between existing element, for example, inserting amplifier and analog-to-digital converter. In various embodiments, the RF part includes antenna.
[0098] Additionally, the USB and / or HDMI terminals may include corresponding interface processors for connecting the system 1000 to other electronic devices via USB and / or HDMI connections. It should be understood that various aspects of input processing, such as Reed-Solomon error correction, may be implemented, for example, within a separate input processing IC or within the processor 1010. Similarly, various aspects of USB or HDMI interface processing may be implemented within a separate interface IC or within the processor 1010. The demodulated, error-corrected, and demultiplexed streams are provided to various processing elements, including, for example, the processor 1010 and encoder / decoder 1030 operating in combination with memory and storage elements, to process the data stream for presentation on an output device.
[0099] The various elements of system 1000 may be provided within an integrated housing. Within the integrated housing, the various elements may be interconnected and transmit data between them using a suitable connection arrangement 1140, such as an internal bus including an I2C bus, wiring, and printed circuit boards as known in the art.
[0100] The system 1000 includes a communication interface 1050 that enables communication with other devices via a communication channel 1060. The communication interface 1050 may include, but is not limited to, a transceiver configured to send and receive data through the communication channel 1060. The communication interface 1050 may include, but is not limited to, a modem or a network card, and the communication channel 1060 may be implemented, for example, within a wired and / or wireless medium.
[0101] In various embodiments, data is streamed to the system 1000 using a Wi-Fi network such as IEEE 802.11. The Wi-Fi signals of these embodiments are received through a communication channel 1060 and a communication interface 1050 suitable for Wi-Fi communication. The communication channel 1060 of these embodiments is typically 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 communications. Other embodiments use a set-top box that delivers data through an HDMI connection of an input block 1130 to provide streaming data to the system 1000. Still other embodiments use an RF connection of an input block 1130 to provide streaming data to the system 1000.
[0102] The system 1000 can provide output signals to various output devices, including a display 1100, a speaker 1110, and other peripherals 1120. In various examples of embodiments, the other peripherals 1120 include one or more of a stand-alone DVR, a disk player, a stereo system, a lighting system, and other devices that provide functions based on the output of the system 1000. In various embodiments, control signals are transmitted between the system 1000 and the display 1100, the speaker 1110, or other peripherals 1120 using signaling such as AV.Link, CEC, or other communication protocols that enable device-to-device control with or without user intervention. The output devices can be communicatively coupled to the system 1000 via dedicated connections through corresponding interfaces 1070, 1080, and 1090. Alternatively, the output devices can be connected to the system 1000 via a communication interface 1050 using a communication channel 1060. The display 1100 and the speaker 1110 can be integrated into a single unit with other components of the system 1000 in an electronic device (e.g., a television). In various embodiments, the display interface 1070 includes a display driver, such as a timing controller (TCon) chip.
[0103] For example, if the RF portion of input 1130 is part of a stand-alone set-top box, the display 1100 and speaker 1110 may alternatively be separate from one or more of the other components. In various embodiments where the display 1100 and speaker 1110 are external components, the output signals may be provided via dedicated output connections including, for example, an HDMI port, a USB port, or a COMP output.
[0104] These embodiments may be implemented by computer software implemented by the processor 1010, or by hardware, or by a combination of hardware and software. As a non-limiting example, the embodiments may be implemented by one or more integrated circuits. As a non-limiting example, the memory 1020 may be of any type suitable for the technical environment and may be implemented using any appropriate data storage technology, such as an optical memory device, a magnetic memory device, a semiconductor-based memory device, a fixed memory, and a removable memory. As a non-limiting example, the processor 1010 may be of any type suitable for the technical environment and may cover one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture.
[0105] Throughout this disclosure, various general and specific embodiments are also supported and contemplated.Examples of embodiments according to the present disclosure include, but are not limited to, the following.
[0106] Generally, at least one example of an embodiment may relate to a method for video encoding, comprising: obtaining a quantization mode selection condition; based on the quantization mode selection condition, selecting a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, selecting a second quantization mode for processing a second part of the transform coefficient set; and encoding a video based on the processed first part and second part of the transform coefficient set.
[0107] Generally, at least one example of an embodiment may relate to a method for video decoding, comprising: obtaining a quantization mode selection condition; based on the quantization mode selection condition, selecting a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, selecting a second quantization mode for processing a second part of the transform coefficient set; and decoding a video based on the processed first part and second part of the transform coefficient set.
[0108] Generally, at least one example of an embodiment may relate to a device for video encoding, comprising one or more processors, wherein the one or more processors are configured to: obtain a quantization mode selection condition; based on the quantization mode selection condition, select a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, select a second quantization mode for processing a second part of the transform coefficient set; and encode a video based on the processed first part and second part of the transform coefficient set.
[0109] Generally, at least one example of an embodiment may relate to a device for video decoding, comprising one or more processors, wherein the one or more processors are configured to: obtain a quantization mode selection condition; based on the quantization mode selection condition, select a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, select a second quantization mode for processing a second part of the transform coefficient set; and decode the video based on the processed first part and second part of the transform coefficient set.
[0110] Generally, at least one example of an embodiment may relate to a method for video encoding, comprising: obtaining a quantization mode selection condition including a prediction mode of a block; based on the quantization mode selection condition, selecting a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, selecting a second quantization mode for processing a second part of the transform coefficient set; and encoding a video based on the processed first part and second part of the transform coefficient set.
[0111] Generally, at least one example of an embodiment may relate to a method for video decoding, comprising: obtaining a quantization mode selection condition including a prediction mode of a block; based on the quantization mode selection condition, selecting a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, selecting a second quantization mode for processing a second part of the transform coefficient set; and decoding a video based on the processed first part and second part of the transform coefficient set.
[0112] Generally, at least one example of an embodiment may relate to a device for video encoding, comprising one or more processors, wherein the one or more processors are configured to: obtain a quantization mode selection condition including a prediction mode of a block; based on the quantization mode selection condition, select a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, select a second quantization mode for processing a second part of the transform coefficient set; and encode a video based on the processed first part and second part of the transform coefficient set.
[0113] Generally, at least one example of an embodiment may relate to an apparatus for video decoding, comprising one or more processors, wherein the one or more processors are configured to: obtain a quantization mode selection condition including a prediction mode of a block; based on the quantization mode selection condition, select a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, select a second quantization mode for processing a second part of the transform coefficient set; and decode the video based on the processed first part and second part of the transform coefficient set.
[0114] Generally, at least one example of an embodiment may be directed to a method or apparatus as described herein, wherein at least one syntax element is provided to indicate a quantization mode selection condition.
[0115] Generally, at least one example of an embodiment may be directed to a method or apparatus as described herein, wherein the first quantization mode is different from the second quantization mode.
[0116] Generally, at least one example of an embodiment may be directed to a method or apparatus as described herein, wherein the first quantization mode is scalar quantization dependent.
[0117] In general, at least one example of an embodiment may be directed to a method or apparatus as described herein, wherein the dependent scalar quantization depends on values of previous transform coefficients in the reconstruction order.
[0118] Generally, at least one example of an embodiment may be directed to a method or apparatus as described herein, wherein the second quantization mode is independent scalar quantization.
[0119] In general, at least one example of an embodiment may be directed to a method or apparatus as described herein, wherein dependent scalar quantization is applied to transform coefficients in a first portion, the first portion having lower frequencies than a second portion.
[0120] Generally, at least one example of an embodiment may be directed to a method or apparatus as described herein, wherein independent scalar quantization is applied to transform coefficients in a second portion, the second portion having higher frequencies than the first portion.
[0121] Generally, at least one example of an embodiment may involve a method or apparatus as described herein, wherein the quantization mode selection condition depends on one or more of: 1) position in a coded block, 2) prediction mode of the block, or 3) component characteristics of the block.
[0122] In general, at least one example of an embodiment may be directed to a method or apparatus as described herein, wherein the prediction mode comprises whether the block being encoded or decoded is intra-coded or inter-coded.
[0123] In general, at least one example of an embodiment may be directed to a method or apparatus as described herein, wherein the component characteristic of a block includes whether the block being encoded or decoded is a luma component or a chroma component of a video.
[0124] Generally, at least one example of an embodiment may involve a bitstream including a video, wherein the bitstream is formed by the following steps: obtaining a quantization mode selection condition; based on the quantization mode selection condition, selecting a first quantization mode for processing a first part of a transform coefficient set; based on the quantization mode selection condition, selecting a second quantization mode for processing a second part of the transform coefficient set; and encoding the video into a bitstream based on the processed first part and second part of the transform coefficient set.
[0125] Generally, at least one example of an embodiment may involve a non-transitory computer-readable medium containing data content generated according to one or more embodiments of a method or apparatus described herein.
[0126] Generally, at least one example of the embodiments may be directed to a computer program product comprising instructions for performing one or more of the methods described herein.
[0127] Generally, at least one example of an embodiment may involve a signal comprising data generated according to one or more of the methods described herein.
[0128] Generally, at least one example of an embodiment may relate to a device comprising: an apparatus as described herein; and at least one of: (i) an antenna configured to receive a signal comprising data representing image information, (ii) a band limiter configured to limit the received signal to a frequency band comprising data representing image information, and (iii) a display configured to display an image from the image information.
[0129] Generally, at least one example of an embodiment may be directed to a device, wherein the device includes one of a television, a television signal receiver, a set-top box, a gateway device, a mobile device, a cellular phone, a tablet, or other electronic devices.
[0130] Throughout this disclosure, various implementations involve decoding. "Decoding" as used in this application may cover, for example, all or part of a process performed on a received encoded sequence to produce a final output suitable for display. In various embodiments, these processes include one or more of the processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various embodiments, such processes also or alternatively include processes performed by a decoder of the various implementations described in this application, for example, extracting a picture from a tiled (packed) picture, determining the upsampling filter to be used and then upsampling the picture, and flipping the picture back to its intended direction.
[0131] As a further example, in one embodiment, "decoding" refers only to entropy decoding, in another embodiment, "decoding" refers only to differential decoding, and in another embodiment, "decoding" refers to a combination of entropy decoding and differential decoding. Whether the phrase "decoding process" is intended to refer specifically to a subset of operations or generally to a broader decoding process will be clear based on the context of the specific description and is considered to be well understood by those skilled in the art.
[0132] In addition, various implementations involve encoding. In a manner similar to the above discussion of "decoding", "encoding" as used in this application can cover all or part of the process performed, for example, on an input video sequence to produce an encoded bit stream or signal. In various embodiments, these processes include one or more of the processes typically performed by an encoder, such as segmentation, differential encoding, transforms, quantization, and entropy encoding. In various embodiments, such processes also or alternatively include processes performed by encoders of the various implementations described in this application.
[0133] As a further example, in one embodiment, "encoding" refers only to entropy encoding, in another embodiment, "encoding" refers only to differential encoding, and in another embodiment, "encoding" refers to a combination of differential encoding and entropy encoding. Whether the phrase "encoding process" is intended to refer specifically to a subset of operations or generally to a broader encoding process will be clear based on the context of the specific description and is considered to be well understood by those skilled in the art.
[0134] Note that the syntax elements used herein are descriptive terms. Therefore, they do not exclude the use of other syntax element names.
[0135] When a figure is presented as a flow chart, it should be understood that it also provides a block diagram of the corresponding apparatus. Similarly, when a figure is presented in the form of a block diagram, it should be understood that it also provides a flow chart of the corresponding method / process.
[0136] Various embodiments relate to rate-distortion optimization. Specifically, during the encoding process, a balance or trade-off between rate and distortion is often considered, often in view of computational complexity constraints. Rate-distortion optimization is usually formulated as minimizing a rate-distortion function, which is a weighted sum of rate and distortion. There are different approaches to solving the rate-distortion optimization problem. For example, these approaches can be based on extensive testing of all coding options (including all considered modes or codec parameter values), which utilizes a complete evaluation of their coding and decoding costs and the associated distortion of the reconstructed signal after coding and decoding. Faster approaches can also be used to save coding complexity, specifically calculating approximate distortion based on a prediction or prediction residual signal rather than a reconstructed signal. A mixture of these two approaches can also be used, such as using approximate distortion only for some of the possible coding options and using full distortion for other coding options. Other approaches only evaluate a subset of possible coding options. More generally, many approaches employ any of a variety of techniques to perform optimization, but optimization is not necessarily a complete evaluation of coding and decoding costs and associated distortion.
[0137] The implementations and aspects described herein may be implemented, for example, in methods or processes, devices, software programs, data streams, or signals. Even if discussed only in the context of a single form of an implementation (e.g., discussed only as a method), the implementation of the features discussed may also be implemented in other forms (e.g., devices or programs). Devices may be implemented, for example, in appropriate hardware, software, and firmware. Methods may be implemented, for example, in a processor, which generally refers to a processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as computers, cellular phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate information communication between end users.
[0138] References to "one embodiment" or "an embodiment" or "an implementation" or "an implementation" and other variations thereof mean that a particular feature, structure, characteristic, etc. described in connection with the embodiment is included in at least one embodiment. Thus, the presentation of the phrases "in one embodiment" or "in an embodiment" or "in an implementation" or "in an implementation" and any other variations thereof that appear in various places throughout this document do not necessarily all refer to the same embodiment.
[0139] Additionally, this document may refer to "obtaining" various information. Obtaining information may include, for example, one or more of determining information, estimating information, calculating information, predicting information, or retrieving information from a memory.
[0140] Additionally, this document may refer to "accessing" various information. Accessing information may include, for example, one or more of receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.
[0141] Additionally, this document may refer to "receiving" various information. Like "accessing," receiving is intended to be a broad term. Receiving information can include, for example, one or more of accessing information or retrieving information (e.g., from a memory). Furthermore, during operations such as storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information, "receiving" is often involved in one way or another.
[0142] It should be understood that use of any of the following “ / ,” “and / or,” and “at least one of” is intended to encompass selection of only the first listed option (A), or only the second listed option (B), or both options (A and B), such as in the case of “A / B,” “A and / or B,” and “at least one of A and B.” As a further example, in the case of “A, B, and / or C” and “at least one of A, B, and C,” such phrases are intended to encompass 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 all three options (A and B and C). As will be apparent to one of ordinary skill in this and related arts, this can be extended to as many items as can be listed.
[0143] In addition, as used herein, the word "signaling" refers in particular to indicating something to a corresponding decoder. For example, in some embodiments, an encoder signals a specific one of a plurality of parameters for refinement. In this way, in one embodiment, the same parameters are used on both the encoder side and the decoder side. Thus, for example, an encoder can send (explicit signaling) a specific parameter to a decoder so that the decoder can use the same specific parameter. On the contrary, if the decoder already has specific parameters and other parameters, signaling can be used without sending (implicit signaling) to simply allow the decoder to know and select the specific parameter. Bit savings are achieved in various embodiments by avoiding the transmission of any actual function. It should be understood that signaling can be done in a variety of ways. For example, in various embodiments, one or more syntax elements, flags, etc. are used to signal information to a corresponding decoder. Although the verb form of the word "signaling" is mentioned above, the word "signal" can also be used as a noun in this article.
[0144] It will be apparent to one of ordinary skill in the art that implementations may generate various signals formatted to carry information that may be stored or transmitted, for example. The information may include, for example, instructions for executing the method, or data generated by one of the described implementations. For example, a signal may be formatted to carry a bit stream or signal of the described embodiment. Such a signal may be formatted as, for example, an electromagnetic wave (e.g., using a radio frequency portion of a spectrum) or a baseband signal. Formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. As is known, the signal may be transmitted over a variety of different wired or wireless links. The signal may be stored on a processor readable medium.
[0145] Various embodiments have been described. Embodiments may include any of the following features or entities, alone or in any combination, across various claim categories and types:
[0146] A method for video encoding is provided, comprising obtaining a quantization mode selection condition, selecting a first quantization mode for processing a first part of a set of transform coefficients based on the condition, selecting a second quantization mode for processing a second part of the set of transform coefficients based on the condition, and encoding video information based on processing of the first part and the second part.
[0147] An apparatus for video encoding is provided, comprising one or more processors configured to obtain a quantization mode selection condition, select a first quantization mode for processing a first part of a set of transform coefficients based on the condition, select a second quantization mode for processing a second part of the set of transform coefficients based on the condition, and encode video information based on processing of the first part and the second part.
[0148] A method for video decoding is provided, comprising obtaining a quantization mode selection condition, selecting a first quantization mode for processing a first part of a transform coefficient set based on the condition, selecting a second quantization mode for processing a second part of the transform coefficient set based on the condition, and decoding video information based on processing of the first part and the second part.
[0149] An apparatus for video decoding is provided, comprising one or more processors configured to obtain a quantization mode selection condition, select a first quantization mode for processing a first part of a set of transform coefficients based on the condition, select a second quantization mode for processing a second part of the set of transform coefficients based on the condition, and decode video information based on processing of the first part and the second part.
[0150] providing one or more syntax elements that provide an indication of a quantization mode selection condition, the quantization mode selection condition enabling selecting a first quantization mode for processing a first portion of a set of transform coefficients based on a condition, selecting a second quantization mode for processing a second portion of the set of transform coefficients based on a condition, and encoding and / or decoding video information based on processing of the first portion and the second portion.
[0151] Providing a bitstream, wherein the bitstream is formed by including information indicating a quantization mode selection condition, the quantization mode selection condition enabling selection of a first quantization mode for processing a first portion of a set of transform coefficients based on a condition, selection of a second quantization mode for processing a second portion of the set of transform coefficients based on a condition, and encoding and / or decoding video information based on processing of the first portion and the second portion.
[0152] • Providing video encoding and / or decoding comprising switching between first and second quantization methods for processing a first part and a second part of a set of transform coefficients.
[0153] • Providing video encoding and / or decoding including selectively enabling and / or switching dependent scalar quantization and conventional scalar quantization for processing a first portion and a second portion of a set of transform coefficients.
[0154] Providing video encoding and / or decoding, which includes selectively enabling one of a first quantization scheme and a second quantization scheme for processing a set of transform coefficients based on a condition, wherein the condition includes a position of the transform coefficient in a coded block, and / or a prediction mode of the block, and / or one of a component characteristic.
[0155] Providing video encoding and / or decoding, which includes selectively enabling one of a first quantization scheme and a second quantization scheme based on a condition, wherein the condition includes a location in a codec block, and wherein the location includes a low frequency region or a high frequency region.
[0156] Providing video encoding and / or decoding, comprising selectively enabling one of a first quantization scheme and a second quantization scheme based on a condition, wherein the condition comprises a location in a codec block, and wherein the location comprises a low frequency region or a high frequency region, and wherein the selectively enabling comprises: enabling dependent scalar quantization for transform coefficients located in the low frequency region, and enabling conventional scalar quantization for transform coefficients located in the high frequency region.
[0157] Providing video encoding and / or decoding, which includes selectively enabling one of a first quantization scheme and a second quantization scheme based on a condition, wherein the condition includes a prediction mode of a codec block, and wherein the prediction mode includes an intra-frame coding mode or an inter-frame coding mode, and wherein the selectively enabling includes: enabling dependent scalar quantization for the intra-frame codec block and enabling normal scalar quantization for the inter-frame codec block.
[0158] Providing video encoding and / or decoding, comprising selectively enabling one of a first quantization scheme and a second quantization scheme based on a condition, wherein the condition comprises a component characteristic, and wherein the component characteristic comprises one of luma or chroma, and wherein the selectively enabling comprises: enabling dependent scalar quantization for the luma component and enabling normal scalar quantization for the chroma components.
[0159] providing one or more syntax elements that provide an indication of a quantization mode selection condition, the quantization mode selection condition enabling selection of a first quantization mode for processing a first portion of a set of transform coefficients based on the condition, selection of a second quantization mode for processing a second portion of the set of transform coefficients based on the condition, and encoding and / or decoding video information based on processing of the first portion and the second portion.
[0160] • A bitstream or signal comprising one or more of the syntax elements or variants thereof.
[0161] • Creating and / or transmitting and / or receiving and / or decoding a bitstream or signal comprising one or more of the described syntax elements or variants thereof.
[0162] A television, set-top box, cellular phone, tablet, or other electronic device that performs video encoding and / or decoding according to any of the described embodiments and displays (e.g., using a monitor, screen, or other type of display) the resulting images.
[0163] A television, set-top box, cellular phone, tablet, or other electronic device that tunes (e.g., using a tuner) to a channel to receive a signal including an encoded image, and performs video encoding and / or decoding according to any of the described embodiments.
[0164] A television, set-top box, cellular phone, tablet, or other electronic device that receives over the air (e.g., using an antenna) a signal comprising an encoded image and performs video encoding and / or decoding according to any of the described embodiments.
[0165] A computer program product storing a program code, which, when executed by a computer, implements video encoding and / or decoding according to any one of the described embodiments.
[0166] A non-transitory computer-readable medium comprising executable program instructions that cause a computer executing the instructions to implement video encoding and / or decoding according to any of the described embodiments.
[0167] A computer-readable storage medium having stored thereon a bitstream generated according to one or more aspects and / or embodiments described herein.
[0168] A method and apparatus for transmitting a bitstream generated according to one or more aspects and / or embodiments described herein.
[0169] Various other general and specific embodiments are also supported and contemplated throughout this disclosure.
[0170] Table 1
[0171]
[0172]
[0173]
[0174]
Claims
1. A method for video encoding, comprising: selecting a first quantization mode for processing transform coefficients in a first part of a block or for processing transform coefficients of a first component of the block among a dependent scalar quantization mode and another scalar quantization mode using at least two scalar quantizers, wherein the another scalar quantization mode is different from the dependent scalar quantization mode; selecting a second quantization mode among the dependent scalar quantization mode and the other scalar quantization mode for processing transform coefficients in a second part of the block different from the first part or for processing transform coefficients of a second component of the block different from the first component, wherein the second quantization mode is different from the first quantization mode; and The video is encoded based on the processed transform coefficients. 2 . The method according to claim 1 , wherein the first quantization mode is the dependent scalar quantization mode and the second quantization mode is the another scalar quantization mode. 3 . The method of claim 1 , wherein the second portion of the block comprises coefficients having a frequency lower than a frequency of coefficients of the first portion of the block. The method of claim 1 , wherein the first component is luminance and the second component is chrominance.
5. An apparatus for video encoding, comprising at least one processor, wherein the at least one processor is configured to implement: selecting a first quantization mode for processing transform coefficients in a first part of a block or for processing transform coefficients of a first component of the block among a dependent scalar quantization mode and another scalar quantization mode using at least two scalar quantizers, wherein the another scalar quantization mode is different from the dependent scalar quantization mode; selecting a second quantization mode among the dependent scalar quantization mode and the other scalar quantization mode for processing transform coefficients in a second part of the block different from the first part or for processing transform coefficients of a second component of the block different from the first component, wherein the second quantization mode is different from the first quantization mode; and The video is encoded based on the processed transform coefficients. 6 . The apparatus of claim 5 , wherein the first quantization mode is the dependent scalar quantization mode and the second quantization mode is the another scalar quantization mode. 7 . The apparatus of claim 5 , wherein the second portion of the block includes coefficients having a frequency lower than a frequency of coefficients of the first portion of the block.
8. The apparatus of claim 5, wherein the first component is luminance and the second component is chrominance.
9. A method for video decoding, comprising: selecting a first quantization mode for processing transform coefficients in a first part of a block or for processing transform coefficients of a first component of the block among a dependent scalar quantization mode and another scalar quantization mode using at least two scalar quantizers, wherein the another scalar quantization mode is different from the dependent scalar quantization mode; selecting a second quantization mode among the dependent scalar quantization mode and the other scalar quantization mode for processing transform coefficients in a second part of the block different from the first part or for processing transform coefficients of a second component of the block different from the first component, wherein the second quantization mode is different from the first quantization mode; and The video is decoded based on the processed transform coefficients.
10. The method of claim 9, wherein the first quantization mode is the dependent scalar quantization mode and the second quantization mode is the another scalar quantization mode.
11. The method of claim 9, wherein the second portion of the block includes coefficients having a frequency lower than a frequency of coefficients of the first portion of the block.
12. The method of claim 9, wherein the first component is luminance and the second component is chrominance.
13. An apparatus for video decoding, comprising at least one processor, wherein the at least one processor is configured to implement: selecting a first quantization mode for processing transform coefficients in a first part of a block or for processing transform coefficients of a first component of the block among a dependent scalar quantization mode and another scalar quantization mode using at least two scalar quantizers, wherein the another scalar quantization mode is different from the dependent scalar quantization mode; selecting a second quantization mode among the dependent scalar quantization mode and the other scalar quantization mode for processing transform coefficients in a second part of the block different from the first part or for processing transform coefficients of a second component of the block different from the first component, wherein the second quantization mode is different from the first quantization mode; and The video is decoded based on the processed transform coefficients.
14. The apparatus of claim 13, wherein the first quantization mode is the dependent scalar quantization mode and the second quantization mode is the another scalar quantization mode.
15. The apparatus of claim 13, wherein the second portion of the block includes coefficients having a frequency lower than a frequency of coefficients of the first portion of the block.
16. The apparatus of claim 13, wherein the first component is luminance and the second component is chrominance.
