Chroma quantization parameter adjustment in video encoding and decoding

By adapting chroma quantization parameters and employing advanced block partitioning techniques, the patent addresses inefficiencies in luma-chroma coding balance, enhancing overall video encoding and decoding efficiency and reducing bitrate.

JP7797579B2Active Publication Date: 2026-01-13INTERDIGITAL VC HOLDINGS INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024106139
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-07-02
Filing Date
2024-07-01
Publication Date
2026-01-13
Estimated Expiration
2039-03-27

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies face challenges in achieving optimal compression efficiency, particularly in balancing the coding gains between luma and chroma components, leading to inefficiencies in bitrate allocation and visual quality.

Method used

Adapting chroma quantization parameters based on encoding performance levels, using different sets of chroma quantization parameter tables to trade off coding efficiency between luma and chroma components, and employing advanced block partitioning techniques like QTBT+ABT to enhance coding efficiency.

Benefits of technology

Improves overall coding efficiency by reducing the bitrate of the entire coded bitstream while maintaining visual quality, with significant gains in chroma components translating to improved luma performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007797579000005
    Figure 0007797579000005
  • Figure 0007797579000006
    Figure 0007797579000006
  • Figure 0007797579000007
    Figure 0007797579000007
Patent Text Reader

Abstract

To provide a method, an apparatus and a signal for adjusting chroma quantization parameters in video encoding or decoding.SOLUTION: In a process used on a decoder side to determine a QP parameter used for the coding and decoding of chroma components, the slice type is checked. In the case of an I-SLICE, an index value is set to 0 to point to a set corresponding to an I-SLICE set. In the other case, the index value is set to 1 to point to a set corresponding to a non-I-SLICE set. The HighPerformanceCodingFlag is checked, and a flag is set.SELECTED DRAWING: Figure 7A
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] At least one of the present embodiments relates generally to video encoding or decoding, and more particularly to methods, apparatus, and signals for adjusting chroma quantization parameters in video encoding or decoding. [Background technology]

[0002] To achieve high compression efficiency, image and video coding schemes typically employ prediction and transformation to exploit spatial and temporal redundancy in video content. Generally, intra- or inter-prediction is used to exploit intra- or inter-frame correlation, and then the difference between the original block and the predicted block, often referred to as the prediction error or prediction residual, is transformed, quantized, and entropy coded. To reconstruct the video, the compressed data is decoded by an inverse process corresponding to entropy coding, quantization, transformation, and prediction. Summary of the Invention

[0003] According to a first aspect of at least one embodiment, a method for encoding video data is presented, the method including: selecting, for a block of an image, at least one quantization parameter from among a plurality of sets of chroma quantization parameters based on an encoding performance level, the set of chroma quantization parameters differing depending on whether the image is motion predicted or not; encoding the block based on the at least one selected chroma quantization parameter, the encoding including quantizing chroma values ​​of the block according to the at least one selected chroma quantization parameter; and generating a bitstream including at least the encoded block and metadata representing the at least one selected chroma quantization parameter.

[0004] According to a second aspect of at least one embodiment, a method for decoding video data is presented, the method including: accessing metadata of a block of an image or video, the metadata representing a selection of at least one chroma quantization parameter from a plurality of sets of chroma quantization parameters, the selection being based on a coding performance level; and dequantizing chroma values ​​of the block in accordance with the metadata representing the selection of at least one chroma quantization parameter.

[0005] According to a third aspect of at least one embodiment, a signal for an encoded image is presented, the signal including information representing at least one chroma quantization parameter selected from a plurality of sets of chroma quantization parameters based on an encoding performance level, the set of chroma quantization parameters differing depending on whether the image is motion predicted or not, and the selection being for at least one block of the image.

[0006] According to a fourth aspect of at least one embodiment, a device for encoding video data is presented, the device comprising: means for selecting, for a block of an image, at least one chroma quantization parameter from among a plurality of sets of chroma quantization parameters based on an encoding performance level, the set of chroma quantization parameters differing depending on whether the image is motion predicted or not; means for encoding the block based on the at least one selected chroma quantization parameter, the encoding comprising quantizing chroma values ​​of the block according to the at least one selected chroma quantization parameter; and means for generating a bitstream including at least the encoded block and metadata representing the at least one selected chroma quantization parameter.

[0007] According to a fifth aspect of at least one embodiment, a device for decoding video data is presented, the device comprising: means for accessing metadata of a block of an image or video, the metadata representing a selection of at least one chroma quantization parameter from a plurality of sets of chroma quantization parameters, the selection being based on an encoding performance level; and means for dequantizing chroma values ​​of the block in accordance with the metadata representing the selection of at least one chroma quantization parameter.

[0008] According to a sixth aspect of at least one embodiment, a device for displaying video data is presented, the device comprising: one or more processors configured to access metadata of a block of an image or video, the metadata representing a selection of at least one chroma quantization parameter from a plurality of sets of chroma quantization parameters, the selection being based on an encoding performance level; dequantizing chroma values ​​of the block in accordance with the metadata representing the selection of at least one chroma quantization parameter; and producing a reconstructed image based on the dequantized chroma values ​​of a plurality of blocks of the image; and a display configured to display the reconstructed image.

[0009] According to a seventh aspect of at least one embodiment, a device for receiving video data is presented, the device comprising: an antenna configured to receive a signal including an image or video via wireless communication; one or more processors configured to access metadata of a block of the received image or video, the metadata representing a selection of at least one chroma quantization parameter from a plurality of sets of chroma quantization parameters, the selection being based on an encoding performance level; dequantizing chroma values ​​of the block in accordance with the metadata representing the selection of the at least one chroma quantization parameter; and producing a reconstructed image based on the dequantized chroma values ​​of a plurality of blocks of the image; and an output configured to display the reconstructed image.

[0010] According to another aspect of at least one embodiment, a non-transitory computer-readable medium is presented that includes data content generated by a method or apparatus according to any of the preceding claims.

[0011] According to another aspect of at least one embodiment, there is presented a computer program comprising program code instructions executable by a processor to perform at least the steps of the method according to the first aspect.

[0012] According to another aspect of at least one embodiment, there is presented a computer program product stored on a non-transitory computer readable medium and comprising program code instructions executable by a processor for performing at least the steps of the method of the first aspect.

[0013] According to variant embodiments of the first and fourth aspects, the coding performance level is automatically selected according to information related to the coding, said information relating to the coding tree structure or the coding mode or partitioning mode. [Brief explanation of the drawings]

[0014] [Figure 1] An example of a video encoder 100, such as a High Efficiency Video Coding (HEVC) encoder, is shown. [Figure 2] 2 shows a block diagram of an example video decoder 200, such as an HEVC decoder. [Figure 3] An example of a Quad-Tree plus Binary-Tree (QTBT) CTU representation is shown below. [Figure 4] 10 shows an example of an extended set of coded unit partitioning. [Figure 5] We demonstrate the improvement in coding efficiency by using the QTBT+ABT coding structure. [Figure 6] In one embodiment that implements chroma quantization adaptation, we demonstrate the improvement in coding efficiency by using a QTBT+ABT coding structure. [Figure 7A] 1 shows an example of a process used at the decoder side to determine the QP parameters used for encoding and decoding the chroma components. [Figure 7B] show [Figure 8] 1 illustrates a block diagram of an example system in which various aspects and embodiments may be implemented. [Figure 9A] 1 shows a flowchart of an example of part of an encoding method according to one embodiment that implements chroma quantization adaptation. [Figure 9B] 1 shows a flowchart of an example of part of a decoding method according to one embodiment that performs chroma quantization adaptation. DETAILED DESCRIPTION OF THE INVENTION

[0015] In at least one embodiment, improved coding efficiency results from the use of a topology for block partitioning described below. In particular, in some embodiments, larger gains are obtained in chroma components than in luma components. As a result, it is important to balance the obtained coding gains by shifting some gains from one or more chroma components to the luma component. This is particularly beneficial in certain embodiments, because at a certain level of quality, additional visual benefits from improved coding efficiency for chroma components are typically not obtained. Therefore, in at least one embodiment, it is proposed to employ quantization parameters in a way that trades off further quality improvements between chroma and luma components. In at least one such embodiment, the overall bitrate of the entire coded bitstream, including chroma and luma components, is reduced.

[0016] Figure 1 shows an example of a video encoder 100, such as a High Efficiency Video Coding (HEVC) encoder. Figure 1 may also show an encoder that improves on the HEVC standard or employs technology similar to HEVC, such as the Joint Exploration Model (JEM) encoder under development by the Joint Video Exploration Team (JVET).

[0017] In this application, the terms "reconstructed" and "decoded" may be used interchangeably, the terms "encoded" or "coded" may be used interchangeably, and the terms "image," "picture," and "frame" may be used interchangeably. Usually, but not necessarily, the term "reconstructed" is used on the encoder side, while "decoded" is used on the decoder side.

[0018] Before being encoded, a video sequence may undergo a pre-encoding process (101), for example by applying a color transformation to the input color picture (e.g., from RGB 4:4:4 to YCbCr 4:2:0) or by performing a remapping of the input picture components (e.g., using histogram equalization of one of the color components) to obtain a more robust signal distribution for compression. Metadata associated with the pre-processing can be attached to the bitstream.

[0019] In HEVC, to encode a video sequence with one or more pictures, a picture is divided into one or more slices, where each slice can contain one or more slice segments (102). Slice segments are organized into coding units, prediction units, and transform units. The HEVC specification distinguishes between "blocks" and "units," where a "block" addresses a specific region (e.g., luma, Y) within a sample array, and a "unit" includes an ordered block of all coded color components (Y, Cb, Cr, or monochrome), syntax elements, and prediction data (e.g., motion vectors) associated with the block.

[0020] In HEVC coding, a picture is divided into square coding tree blocks (CTBs) of configurable size, and contiguous sets of coding tree blocks are grouped into slices. A coding tree unit (CTU) contains the CTB of a coded color component. The CTB is the root of a quadtree division into coding blocks (CBs), which can be divided into one or more prediction blocks (PBs), forming the root of a quadtree division into transform blocks (TBs). Corresponding to the coding blocks, prediction blocks, and transform blocks, a coding unit (CU) includes a prediction unit (PU) and a tree-structured set of transform units (TUs), where a PU contains prediction information for all color components and a TU contains the residual coding syntax structure for each color component. The sizes of the CB, PB, and TB for the luma component apply to the corresponding CU, PU, ​​and TU. In this application, the term "block" can be used to refer to, for example, any of the CTU, CU, PU, ​​TU, CB, PB, and TB. Additionally, "block" can also be used to refer to macroblocks and partitions as specified in H.264 / AVC or other video coding standards, or more generally to refer to arrays of data of various sizes.

[0021] In the example encoder 100, pictures are coded by the encoder elements, as described below. A picture to be coded is processed in units of CUs. Each CU is coded using either intra mode or inter mode. When a CU is coded in intra mode, intra prediction is performed (160). In inter mode, motion estimation (175) and motion compensation (170) are performed. The encoder determines (105) whether intra mode or inter mode is used to code the CU, and indicates the intra / inter decision with a prediction mode flag. A prediction residual is calculated by subtracting the predicted block from the original image block (110).

[0022] In intra modes, CUs are predicted from neighboring reconstructed samples within the same slice. HEVC offers a set of 35 intra prediction modes, including DC, planar, and 33 angular prediction modes. The intra prediction reference is reconstructed from rows and columns neighboring the current block. The reference is extended horizontally and vertically to twice the block size using samples available from previously reconstructed blocks. When an angular prediction mode is used for intra prediction, the reference samples may be copied along the direction indicated by the angular prediction mode.

[0023] The luma intra-prediction modes applicable to the current block can be coded using two different options: If the applicable mode is included in a configuration list of three most probable modes (MPM), the mode is signaled by an index in the MPM list; otherwise, the mode is signaled by a fixed-length binarization of the mode index. The three most probable modes are derived from the intra-prediction modes of the upper and left neighboring blocks.

[0024] For an inter CU, the corresponding coded block is further divided into one or more prediction blocks. Inter prediction is performed at the PB level, and the corresponding PU contains information on how to perform inter prediction. Motion information (e.g., motion vectors and reference picture indexes) can be signaled in two ways: "merge mode" and "Advanced Motion Vector Prediction (AMVP)."

[0025] In merge mode, a video encoder or decoder assembles a candidate list based on already coded blocks, and the video encoder signals an index for 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.

[0026] In AMVP, a video encoder or decoder assembles a candidate list based on motion vectors determined from previously coded blocks. The video encoder then signals an index within the candidate list to identify a motion vector predictor (MVP) and a motion vector differential (MVD). At the decoder side, the motion vector (MV) is reconstructed as MVP + MVD. Also, the applicable reference picture index is explicitly coded in the PU syntax of AMVP.

[0027] The prediction residual, including at least one embodiment for adapting chroma quantization parameters, described below, is then transformed (125) and quantized (130). The transform is typically based on a separable transform. For example, a DCT transform is applied first horizontally and then vertically. In modern codecs such as JEM, the transforms used in both directions may be different (e.g., DCT in one direction and DST in the other), allowing for a rich variety of 2D transforms; however, in older codecs, the variety of 2D transforms for a given block size is typically limited.

[0028] In addition to the quantized transform coefficients, motion vectors and other syntax elements are entropy coded to output a bitstream (145). The encoder may also skip the transform and apply quantization directly to the untransformed residual signal on a 4x4 TU basis. The encoder may also bypass both the transform and quantization, i.e., the residual is coded directly without applying a transform or quantization process. In direct PCM coding, no prediction is applied, and coded unit samples are coded directly into the bitstream.

[0029] The encoder decodes the coded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (140) and inverse transformed (150), and the prediction residual is decoded. The decoded prediction residual is combined with the predicted block (155) to reconstruct an image block. An in-loop filter (165) is applied to the reconstructed picture, for example, to perform deblocking / sample adaptive offset (SAO) filtering to reduce coding artifacts. The filtered image is stored in a reference picture buffer (180).

[0030] Figure 2 shows a block diagram of an example video decoder 200, such as an HEVC decoder. In the example decoder 200, the bitstream is decoded by the decoder elements described below. The video decoder 200 generally performs a decoding pass that is the inverse of the encoding pass as described in Figure 1, which performs video decoding as part of encoding the video data. Figure 2 may also show a decoder that improves on the HEVC standard or employs HEVC-like technology, such as a JEM decoder.

[0031] In particular, the decoder's input includes a video bitstream, such as may be generated by video encoder 100. The bitstream is first entropy decoded (230) to obtain transform coefficients, motion vectors, picture partitioning information, and other coded information. The picture partitioning information indicates the size of CTUs and how the CTUs are divided into CUs, and possibly PUs, if applicable. Thus, the decoder may divide the image into CTUs (235) and each CTU into CUs according to the decoded picture partitioning information. The transform coefficients are dequantized (240), including at least one embodiment for adapting chroma quantization parameters, as described below, and inverse transformed (250) to decode the prediction residual.

[0032] The decoded prediction residual and the predicted block are combined (255) to reconstruct an image block. The predicted block may result from intra prediction (260) or motion-compensated prediction (i.e., inter prediction) (270). As described above, AMVP and merge mode techniques may be used to derive motion vectors for motion compensation, which may use interpolation filters to calculate interpolated values ​​of sub-integer samples of the reference block. An in-loop filter (265) is applied to the reconstructed image. The filtered image is stored in a reference picture buffer (280).

[0033] The decoded picture may further undergo a post-decoding process (285), such as an inverse color conversion (e.g., YCbCr 4:2:0 to RGB 4:4:4) or an inverse remapping that performs the inverse of the remapping process performed in the pre-encoding process (101). The post-decoding process may use metadata derived in the pre-encoding process and signaled in the bitstream.

[0034] Emerging video compression tools include a coding tree unit representation in the compressed domain, which proposes to represent picture data in a more flexible way. The advantage of this more flexible coding tree representation is improved compression efficiency compared to the CU / PU / TU arrangement of the HEVC standard.

[0035] Figure 3 shows an example of a quadtree plus binary tree (QTBT) CTU representation. The quadtree plus binary tree (QTBT) coding tool provides such increased flexibility. QTBT consists of a coding tree that can partition a CTU into both quadtree and binary tree forms. The partitioning of the CTU is determined at the encoder side via a rate-distortion optimization procedure, which determines the QTBT representation of the CTU that minimizes the rate-distortion cost. In QTBT technology, CUs have either square or rectangular shapes. The size of a CTU is always a power of two, typically between 4 and 128. In addition to this variety of rectangular CTU shapes, such CTU representations have the following distinct characteristics compared to HEVC: QTBT decomposition of a CTU consists of two stages: first, the CTU is partitioned in a quadtree manner; then, each quadtree leaf can be further partitioned in a binary tree manner. This is shown on the right side of the figure, where the solid lines represent the quadtree decomposition stage and the dashed lines represent the binary decomposition spatially embedded in the quadtree leaves. In intra-slice, the partitioning structures for luma and chroma blocks are separated and determined independently. CU partitioning into prediction units or transform units is not employed. In other words, each coding unit is systematically composed of a single prediction unit (2Nx2N prediction unit partition type) and a single transform unit (no partitioning into a transform tree).

[0036] Figure 4 shows an example of an extended set of coding unit partitioning. In the asymmetric binary tree partitioning mode (ABT), the size of the coding unit that is considered to be partitioned through one of the asymmetric binary tree partitioning modes, e.g., HOR_UP (horizontal-up), is used.

number

number

[0037] Figure 5 illustrates the coding efficiency improvement achieved by using the QTBT+ABT coding structure. Such a coding structure is proposed in JVET-J0022. The table in Figure 5 shows the coding results for a subset of selected images listed in the first column. In the second column, titled "Reference," numerical values ​​are presented representing the coding performance of a reference encoder depending on several coding parameters, showing the bit rate, PSNR for the Y, U, and V components, encoding time, and decoding time, respectively. In the third column, titled "Tested," numerical values ​​are presented representing the coding performance of a reference encoder modified to use the QTBT+ABT coding structure with the same coding parameters as the "Reference" encoding. This third column also shows the bit rate, PSNR for the Y, U, and V components, encoding time, and decoding time, respectively. In the fifth column, numerical values ​​are presented representing the bit rate improvement for the Y, U, and V components.

[0038] The coding efficiency improvement compared to standard coding is shown in the last column, and in particular, in some embodiments, larger gains are obtained for the chroma components than for the luma components.

[0039] To fully benefit from such improvements, it is important to balance the resulting coding gains by shifting some gains from one or more chroma components to the luma component. This is particularly beneficial in certain embodiments because, at certain quality levels, additional coding efficiency improvements in the chroma component(s) typically do not provide additional visual benefit. Therefore, in at least one embodiment, it is proposed to employ quantization parameters in a way that trades off further quality improvements between the chroma and luma components. In at least one such embodiment, the overall bitrate of the entire coded bitstream, including the chroma and luma components, is reduced.

[0040] FIG. 6 illustrates the coding efficiency improvement when using a QTBT+ABT structure in one embodiment that implements chroma quantization adaptation. FIG. 6 illustrates the coding efficiency performance obtained by using the JVET-J0022 video codec used in the configuration of FIG. 5 , but with the addition of chroma quantization adaptation. The table in FIG. 6 shows coding results for a subset of selected images listed in the first column according to several parameters listed in the second column. In the third column, the numbers represent the coding performance of the reference encoder, showing the bit rate and PSNR for the Y, U, and V components, respectively. In the fourth column, the numbers represent the coding performance of the reference encoder modified to use the QTBT+ABT coding structure. This fourth column shows the bit rate and PSNR for the Y, U, and V components, respectively. In the fifth column, the numbers represent the bit rate improvement for the Y, U, and V components.

[0041] The table shows a significant coding efficiency improvement with a moderate relative loss in chroma coding efficiency compared to Figure 5. Furthermore, since the luma component is usually much more important from a perceptual point of view, prioritizing luma over chroma from a coding efficiency point of view is very interesting.

[0042] In one embodiment, adapting the chroma quantization parameters allows for trading off bitrate allocation between luma and chroma components in a video coding scheme, whereby the coding efficiency of the luma component is adjusted with a controlled penalty in the coding efficiency of the chroma component. Furthermore, in at least one embodiment, the use of luma / chroma bitrate allocation is performed independently of the coding tool used in encoding and decoding.

[0043] A first approach considers using well-known chroma QP (quantization parameter) offset sequence-level parameters signaled in the high-level syntax (sequence parameter set) of the coded bitstream. The drawback of such an approach is that the loss of chroma coding efficiency can become too large and difficult to control. Another approach considers using so-called chroma QP tables, which are used to derive the QP of a chroma slice in inter-slice situations given the QP used in the luma slice of the same picture. In JEM, the QP of a chroma slice is calculated via a lookup table, referred to herein as the chroma QP table, given the QP associated with the luma slice. The chroma QP table is used to derive the QP of a slice's chroma components given the QP used in the luma component of a slice of the same picture. The index value into this table is the so-called base QP (i.e., base chroma QP) associated with the chroma component under consideration, which is obtained as the sum of the corresponding luma slice QP and the chroma QP offset of the considered slice. This chroma QP offset for the considered slice is obtained as the sum of the sequence-level chroma QP offset and the slice-level chroma QP delta corresponding to the considered slice. The output value corresponding to the index value can then be used as the QP value for encoding or decoding the chroma slice. It should be noted that the slice QP may be further modified by block-level QP adjustment, for example, for rate control.

[0044] In JEM, the chroma QP table used depends only on the chroma format (e.g., 4:0:0, 4:2:0, 4:2:2, etc.), which hinders flexibility.

[0045] In the example embodiment, it is proposed to use different chroma QP tables for different coding configurations. Indeed, configuring the coding system to reach a certain level of coding efficiency may involve tuning of coding parameters, which may include the set of partitions used, as well as several other parameters. Typically, the maximum tree depth allowed in the CTU coding tree representation also affects the overall coding efficiency, allowing to reach a desired trade-off between coding efficiency and computational complexity at the encoder side.

[0046] One principle of various embodiments is to signal the use of the desired chroma QP table by some means independent of the coding tool used to code or decode the sequence. Therefore, the chroma QP table is selected as a coding configuration parameter on the encoder side. This typically takes the form of a "coding performance level" high-level syntax element signaled in the Sequence Parameter Set (SPS) or Picture Parameter Set (PPS). It is decoded at the decoder, which switches to the same chroma QP table that was used on the encoder side. In one embodiment, two sets of tables are proposed, so a simple binary flag is sufficient to convey the information. In other embodiments, more than two sets of tables are proposed, so an integer value (or other way of signaling one of the other sets) is required. The example shown below shows two sets of tables.

[0047] The range of QP values ​​used in JEM is -6 to 51. The chroma QP table used in JEM for the 4:2:0 color format consists of 58 elements (i.e., one entry for each possible QP value), and is typically as follows: chromaQPTableJEM[0..57]=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 29, 30, 31, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51]

[0048] In one embodiment, it is proposed to use several sets of chroma QP tables. The tables are differentiated first in terms of the efficiency they are intended to code, and then in terms of their slice type (I-slice or non-I-slice type). The chroma QP table set for the standard coding efficiency level is as follows, and includes values ​​for both I-slice and non-I-slice types: chromaQPTableStandardPerf[2][0..57]=[ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 29, 30, 31, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 29, 30, 31, 32, 33, 33, 34, 35, 36, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53]]

[0049] The chroma QP table set for the high performance coding efficiency level is as follows: chromaQPTableHighPerf[2][0..57]=[ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,21,22,23,24,25,26,27,28,29,29,30,31,32,33,33,34,34,35,35, 36, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 29, 30, 31, 32, 33, 34, 35, 35, 36, 37, 38, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54]]

[0050] The chroma QP table contains zero or more output QPs and is non-decreasing as a function of input index, so that for each non-zero input index into the chroma QP table, its output integer value is greater than or equal to the output QP value associated with the preceding input index into that table.

[0051] The difference between the standard performance table set and the high performance table set is as follows: the output QP value included in the high performance table set is always equal to or greater than the output with the same input index value in the standard performance table set. In practice, this is especially relevant for high QP values.

[0052] In the illustrated example, for tables corresponding to non-I slice types, from an output QP value of 34 in the high-performance table set, the output QP value with the same input index in the standard-performance table set is equal to 33. Then, from that input index in the two tables, the output QP value in the high-performance QP table for a non-I slice is strictly higher than the corresponding output QP value in the standard-performance chroma QP table set. This can be explained by the fact that as coding efficiency improves in the high-performance case, the bitrate for the chroma components can be reduced while maintaining comparable PSNR values ​​for the chroma components. In this way, the overall bitrate is reduced while maintaining the target quality (PSNR) for the luma slice. An overall coding gain is achieved with no or limited penalty to coding efficiency for chroma.

[0053] The above two sets of tables use two-dimensional arrays, where the first dimension corresponds to the slice type (e.g., 0 → I_SLICE, 1 → B_SLICE (more generally, non-I slice)) and the second dimension corresponds to the base chroma QP for the considered slice.

[0054] As described further below, the chroma QP table sets may be stored in both the encoder and the decoder, and the encoder may indicate to the decoder, for example through a flag or index, which table set should be selected by the decoder. Alternatively, the table sets may be encoded directly into the bitstream.

[0055] On the encoder side, the encoder chooses which chroma QP table set to use. This selection can be made by a user through an encoding configuration parameter (typically a flag) that indicates whether or not to use the high-performance chroma QP table set during the encoding and then decoding process. In an example embodiment, this selection is made by setting a value in a file, and the flag is read by the encoding device, which interprets the value of the flag to select which chroma QP table to use. In an example embodiment, this selection is made manually by a user, who selects the encoding configuration parameter using a graphical user interface that operates the encoder device.

[0056] In another embodiment, this may be selected automatically by the encoder as a function of the measured coding efficiency obtained for the luma and chroma slices. Typically, this may consist of checking the PSNR values ​​obtained for the Cb and Cr components. If these two values ​​are significantly higher than the PSNR obtained for the corresponding luma slice, it may be important to increase the QP in the chroma components to save some bits. In doing so, the encoder may select the high-performance chroma QP table set and indicate its use in the next SPS, PPS, or even slice header.

[0057] In the example embodiment, two performance levels are considered: standard and high, and for each setting, two chroma QP tables are used for different slice types. Note that the technique can also be used for other numbers of settings or slice types. In this case, it is no longer possible to signal the table with a single 1-bit flag, but rather a parameter offering a wider choice of values ​​is required, e.g., an integer. Furthermore, the size of the chroma QP table can be different from 58; for example, the table size can be adapted to the QP range.

[0058] 7A shows an example of a process used at the decoder side to determine the QP parameters used for coding and decoding chroma components. The inputs to this process are chromaQP, which corresponds to the base chroma QP value for the slice under consideration (and is the value to be adapted), an "I-SLICE" flag indicating the slice type, and a "HighPerformanceCodingFlag" indicating whether high-performance coding efficiency is expected. In step 700, the slice type is checked, and if it is I-SLICE, in step 710, an index value is set to 0, which points to a set corresponding to an I-SLICE set. Otherwise, in step 711, the index value is set to 1, which points to a set corresponding to a non-I-SLICE set. In step 720, the "HighPerformanceCodingFlag" is checked. If this flag is set to true, in step 731, an outputChroma value is determined from the set of values ​​of chromaQPTableHighPerf according to this index and the input value. If "HighPerformanceCodingFlag" is set to false, then in step 730, the outputChroma value is determined from the set of values ​​of chromaQPTableStandardPerf according to this index and input value. For example, if the initial chromaQP value is 57 (thus the "highest" possible value), then in the high performance I-SLICE, the chromaQP value will be set to 54 (the latest entry in the latest table). This will result in a reduced bitrate for the chroma components. A conventional decoding process is used to produce the decoded image.

[0059] As you can see, this flag is used to force the use of a chroma QP table in the normative sense.

[0060] According to at least one embodiment, the selection between at least two of the chroma QP tables is achieved as a function of some other coding parameters, which may be related to the coding tree configuration or to the set of valid coding modes or the set of valid partitioning modes selected for coding the considered video sequence.

[0061] By way of example, coding parameters that may produce a standard performance level with the considered video codec may be the following: The coding tree configuration used varies depending on the slice type and temporal layer: The maximum quadtree and binary tree depth allowed per picture of a random access sequence is shown in Figure 7B, detailed with the ABT and coding tree configuration for the standard performance level.

[0062] Table 1 shows the maximum quadtree depth and binary tree depth used for the medium complexity profile with respect to slice type, temporal layer, and component for the random access coding structure. As can be seen in this table, the maximum allowable quadtree depth varies depending on the slice type, temporal level, and component. Furthermore, the maximum allowable binary tree depth varies depending on the slice type, temporal layer of the slice, and quadtree depth level. [Table 1]

[0063] Furthermore, in the standard performance level encoding process, the quadtree and binary tree multi-depth structures of ABT and coding tree structures for medium complexity (random access) are used as starting structures when coding random access intra-periods, which may be used as the starting coding tree structure for each intra-period if parallel coding of the intra-periods is desired.

[0064] In addition to this starting configuration, subsequent pictures employ a dynamic adaptation process of maximum quadtree depth and binary tree depth based on the average quadtree and binary coding trees used for pictures already coded at the same temporal level in the considered intra period.

[0065] Furthermore, the coding parameters that can produce a high performance level with the considered video codec are typically the following: When starting intra-period coding, the coding tree structure is modified for B slices compared to the standard performance structure: The maximum BT depth is always equal to 3 except for the quadtree depth level 0. This corresponds to the table below: [Table 2]

[0066] In other words, the maximum BT depth is one parameter related to the coding tree configuration that can be used to select a coding performance level and thereby select a corresponding chroma QP table. For example, according to Tables 1 and 2, if the maximum BT depth is equal to 2, the standard performance level chroma QP table is selected, and if the maximum BT depth is greater than 2, the high performance level chroma QP table is selected.

[0067] According to further embodiments, an additional low-complexity encoder configuration may be used. In this case, the previously presented chroma QP table linked to the standard encoder performance level may be adopted for this low-complexity encoder configuration. Alternatively, a dedicated third chroma QP table may be used for the low-complexity encoder configuration.

[0068] The low-complexity encoder configuration introduced here corresponds to the following typical coding parameters: The combined level of the partitioning mode rate-distortion search may be further reduced for some slices compared to the standard performance level configuration. Typically, the asymmetric binary tree partitioning mode may be disabled for B slices with a temporal depth greater than 0, strictly speaking. Furthermore, some other coding modes with some encoder-side rate-distortion selection, and therefore encoder complexity, may be disabled in the low-complexity encoder profile / configuration. For example, some inter-coding tools, such as template-based motion search or template-based affine motion model search for temporal prediction, may be disabled in the case of the low-complexity profile. In other words, if the tools used are of a lower performance level, a lower-performance chroma QP table is also selected.

[0069] According to at least one embodiment, the selection of a chroma QP table between a standard-performance one, a high-performance one, and possibly a low-complexity additional one may be dynamically selected for each slice according to the coding tree configuration and possibly according to the partitioning mode allowed for the considered slice. Thus, in this embodiment, the chroma QP table used may vary from slice to slice. In this case, the chroma QP table used may be signaled in the slice header, picture header, or slice group header.

[0070] According to a further alternative to the last embodiment, the chroma QP table may not be explicitly signaled in the slice, picture, or tile group header, but may be implied by the decoder according to the coding tree configuration used for the considered slice and possibly according to the coding mode allowed for the considered slice.

[0071] As in the last embodiment, if the same chroma QP table is used for an entire sequence, GOP (Group of Pictures) or intra-period, the chroma QP table used for this sequence, intra-period or GOP may also be implied by the decoder as a function of the coding tree configuration used and signaled in the header data, and possibly also as a function of the coding modes allowed for coding / decoding the considered sequence, intra-period or GOP.

[0072] The above-described method for adapting chroma quantization parameters can be used to modify the quantization and dequantization modules (130, 140, 240) of a JVET or HEVC encoder and decoder as shown in Figures 1 and 2. Furthermore, the present embodiments are not limited to JVET or HEVC, but can be applied to other standards, recommendations, and their extensions. The various embodiments described above can be used individually or in combination.

[0073] FIG. 8 shows a block diagram of an example system in which various aspects and embodiments may be implemented. In at least one embodiment, system 800 may be embodied as a device including the various components described below and configured to perform one or more of the aspects described herein. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital television sets, personal video recording systems, connected home appliances, and servers. The elements of system 800, singly or in combination, may be embodied in a single integrated circuit, multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing and encoder / decoder elements of system 800 are distributed across multiple ICs and / or discrete components. In various embodiments, system 800 is communicatively coupled to other similar systems or other electronic devices, for example, via a communication bus or through dedicated input and / or output ports. In various embodiments, system 800 is configured to perform one or more of the aspects described herein.

[0074] The system 800 includes at least one processor 810 configured to execute instructions loaded therein, for example, in implementing various aspects described herein. The processor 810 may include embedded memory, input / output interfaces, and various other circuitry as known in the art. The system 800 includes at least one memory 820 (e.g., a volatile memory device and / or a non-volatile memory device). The system 800 includes a storage device 840, which may include non-volatile and / or volatile memory, including, but not limited to, EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, magnetic disk drives, and / or optical disk drives. The storage device 840 may include, by way of non-limiting example, an internal storage device, a removable storage device, and / or a network-accessible storage device.

[0075] System 800 includes an encoder / decoder module 830 configured to process data to provide, for example, encoded video or decoded video, which may include its own processor and memory. Encoder / decoder module 830 represents a module or modules that may be included in a device that performs encoding and / or decoding functions. As is known, a device may include one or both of an encoding module and a decoding module. Additionally, encoder / decoder module 830 may be implemented as a separate element of system 800 or may be incorporated within processor 810 as a combination of hardware and software, as known to those skilled in the art.

[0076] Program code that is loaded into the processor 810 or the encoder / decoder 830 to perform aspects described herein may be stored in the storage device 840 and subsequently loaded into the memory 820 for execution by the processor 810. According to various embodiments, one or more of the processor 810, the memory 820, the storage device 840, and the encoder / decoder module 830 may store one or more of various items during the execution of the processes described herein. Such stored items may include, but are not limited to, input video, decoded video or portions of decoded video, bitstreams, matrices, variables, and intermediate or final results from the processing of equations, expressions, operations, and operational logic.

[0077] In some embodiments, memory internal to the processor 810 and / or the encoder / decoder module 830 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 either the processor 810 or the encoder / decoder module 830) is used for one or more of these functions. The external memory may be the memory 820 and / or the storage device 840, and may be, for example, dynamic volatile memory and / or non-volatile flash memory. In some embodiments, external non-volatile flash memory is used to store the television's operating system. In at least one embodiment, high-speed external dynamic volatile memory, such as RAM, is used as working memory for video coding and decoding tasks, such as MPEG-2, HEVC, or VVC (Versatile Video Coding).

[0078] Input to the elements of system 800 may be provided through various input devices as shown in block 866. Such input devices include, but are not limited to, (i) an RF section that receives RF signals transmitted, for example, via wireless communication by a broadcaster, (ii) a composite input, (iii) a USB input, and / or (iv) an HDMI input.

[0079] In various embodiments, the input devices of block 866 have corresponding respective input processing elements as known in the art. For example, the RF section may be associated with elements necessary to (i) select a desired frequency (also referred to as selecting a signal or band-limiting a signal to a frequency band), (ii) downconvert the selected signal, (iii) band-limit again to a narrower frequency band to select a signal frequency band, which in certain embodiments may be referred to as a channel (for example), (iv) demodulate the downconverted, band-limited signal, (v) perform error correction, and (vi) demultiplex to select a desired data packet stream. The RF section of various embodiments includes one or more elements that 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, for example, a wavelength tuner that performs a variety of these functions, including downconverting a received signal to a lower frequency (e.g., an intermediate frequency or near-baseband frequency) or to baseband. In one set-top box embodiment, the RF section and its associated input processing elements perform frequency selection by receiving, filtering, downconverting, and re-filtering RF signals transmitted over a wired (e.g., cable) medium to a desired frequency band. In various embodiments, the order of the above (and other) elements is rearranged, some of these elements are removed, and / or other elements that perform similar or different functions are added. Adding elements may include inserting elements between existing elements, such as inserting amplifiers and analog-to-digital converters. In various embodiments, the RF section includes an antenna.

[0080] The USB and / or HDMI terminals may also include respective interface processors for connecting system 800 to other electronic devices over 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, in a separate input processing IC or within processor 810, as desired. Similarly, aspects of USB or HDMI interface processing may be implemented, as desired, in a separate interface IC or within processor 810. The demodulated, error corrected, and demultiplexed stream is provided to various processing elements, including processor 810, which operates in conjunction with memory and storage elements, and encoder / decoder 830, to process the data stream as needed for display on an output device, for example.

[0081] The various elements of system 800 may be provided within an integrated housing in which the various elements are interconnected and data may be transmitted therebetween using suitable connection arrangements, for example, internal buses as are known in the art, including an I2C bus, wiring, and printed circuit boards.

[0082] System 800 includes a communication interface 850 that enables communication with other devices over a communication channel 870. Communication interface 850 may include, but is not limited to, a transceiver configured to transmit and receive data over communication channel 870. Communication interface 850 may include, but is not limited to, a modem or a network card, and communication channel 870 may be implemented in a wired and / or wireless medium, for example.

[0083] In various embodiments, data is streamed to system 800 using a Wi-Fi network, such as IEEE 802.11. The Wi-Fi signal in these embodiments is received via communication channel 870 and communication interface 850, adapted for Wi-Fi communication. Communication channel 870 in these embodiments is typically connected to an access point or router, which provides access to outside networks, including the Internet, to enable streaming applications and other over-the-top communication. Other embodiments provide streamed data to system 800 using a set-top box that delivers data via an HDMI connection in input block 866. Still other embodiments provide streamed data to system 800 using an RF connection in input block 866.

[0084] System 800 can provide output signals to various output devices, including display 880, speakers 882, and other peripherals 884. In various example embodiments, other peripherals 884 include a standalone DVR, a disc player, a stereo system, a lighting system, and other devices that provide functionality based on the output of system 800. In various embodiments, control signals are communicated between system 800 and display 880, speakers 882, or other peripherals 884 using signaling such as AV Link, CEC, or other communication protocols that enable device-to-device control with or without user intervention. Output devices may be communicatively coupled to system 800 via dedicated connections through respective interfaces 860, 862, and 864. Alternatively, output devices may be connected to system 800 using communication channel 870 via communication interface 850. Display 880 and speakers 882 may be integrated in a single unit with other components of system 800 within an electronic device, such as a television. In various embodiments, the display interface 860 includes a display driver, such as, for example, a timing controller (T Con) chip.

[0085] Display 880 and speakers 882 may alternatively be separate from one or more of the other components, for example, if the RF portion of input 866 is part of a separate set-top box. In various embodiments in which display 880 and speakers 882 are external components, the output signal may be provided via a dedicated output connection, including, for example, an HDMI port, a USB port, or a composite (COMP) output.

[0086] The implementations described herein may be implemented, for example, as a method or process, an apparatus, a software program, a data stream, or a signal. While implementations of discussed functions may be discussed only in the context of a single form of implementation (e.g., discussed only as a method), they may also be implemented in other forms (e.g., an apparatus or a program). An apparatus may be implemented, for example, in appropriate hardware, software, and firmware. These methods may be implemented, for example, in an apparatus, such as a processor, which broadly 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, mobile phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate the transfer of information between end users.

[0087] FIG. 9A shows a flowchart of an example encoding method according to one embodiment that implements chroma quantization adaptation. Such an encoding method may be performed by the system 800 described in FIG. 8, or more precisely, by the processor 810. In at least one embodiment, in step 910, the processor 810 selects a set of chroma QP tables to use. As mentioned above, this selection may be made using different techniques, e.g., manually by a user, or automatically by an encoder, e.g., dynamically for each slice according to a coding tree configuration. Once this selection is made, in step 920, encoding is performed according to the quantization parameters selected for the chroma components, and the selection of the chroma QP table is signaled in a high-level syntax element (e.g., in the following SPS, PPS, or even in the slice header).

[0088] FIG. 9B shows a flowchart of an example portion of a decoding method according to one embodiment that implements chroma quantization adaptation. Such a decoding method may be executed by the system 800 described in FIG. 8, or more precisely, by the processor 810. In at least one embodiment, in step 950, a signal is accessed (e.g., received on an input interface or read from a media support). High-level syntax elements are extracted and analyzed to determine quantization parameters for selected chroma components at the encoding device. In step 960, these parameters are used to dequantize the chroma components. A conventional decoding process is used to produce a decoded image (not shown in FIG. 9B), which may be provided to or displayed on a device, for example.

[0089] "One embodiment" or "an embodiment," or "one implementation" or "an implementation," as well as other variations thereof, means that a particular feature, structure, characteristic, etc. described in connection with an embodiment is included in at least one embodiment. Thus, the appearances of the phrases "in one embodiment" or "in an embodiment," or "in one implementation" or "in an implementation," as well as other variations thereof, appearing in various places throughout this specification are not necessarily all referring to the same embodiment.

[0090] Also, this application or claims thereof may refer to "determining" various pieces of information. Determining information may include, for example, one or more of valuing the information, estimating the information, predicting the information, or retrieving the information from memory.

[0091] Additionally, the application or claims thereof may refer to "accessing" various pieces of information. Accessing information may include, for example, one or more of receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, inferring information, predicting information, or valuing information.

[0092] Additionally, the application or claims thereof may refer to "receiving" various pieces of information. Receiving, like "accessing," is intended to be broad in meaning. Receiving information may include, for example, one or more of accessing information or retrieving information (e.g., from memory or optical media storage). Furthermore, "receiving" typically involves in some way, for example, storing information, processing information, transmitting information, moving information, copying information, erasing information, estimating information, determining information, predicting information, or valuing information.

[0093] For example, in the case of "A / B," "A and / or B," and "at least one of A and B," it should be understood that the use of any of " / ," "and / or," and "at least one of" is intended to encompass the selection of only the first listed alternative (A), or the selection of only the second listed alternative (B), or the selection of both alternatives (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 the selection of only the first listed alternative (A), or the selection of only the second listed alternative (B), or the selection of only the third listed alternative (C), or the selection of only the first and second listed alternatives (A and B), or the selection of only the first and third listed alternatives (A and C), or the selection of only the second and third listed alternatives (B and C), or the selection of all three alternatives (A, B, and C). This can be applied regardless of the number of items listed, as will be readily apparent to one of ordinary skill in the art.

[0094] As will be apparent to those skilled in the art, implementations can produce a wide variety of signals formatted to convey information, which can be stored or transmitted, for example. The information can include, for example, instructions for performing a method or data produced by one of the described implementations. For example, a signal can be formatted to carry a bitstream of the described implementations. Such a signal can be formatted, for example, as an electromagnetic wave (e.g., using the radio frequency portion of the spectrum) or as a baseband signal. Formatting can include, for example, encoding a data stream and modulating a carrier wave with the encoded data stream. The information conveyed by the signal can be, for example, analog or digital information. The signal can be transmitted over a wide variety of different wired or wireless links, as is known. The signal can be stored on a processor-readable medium.

[0095] According to a variant embodiment of the first aspect, a method is presented, further comprising generating a bitstream including metadata representative of at least the encoded block and the at least one selected chroma quantization parameter.

[0096] According to a variant embodiment of the second aspect, a method is presented, further comprising producing a reconstructed image based on the dequantized chromium values ​​of a plurality of blocks of the image.

[0097] According to a variant embodiment according to the third aspect, a signal is presented, further comprising an encoding of at least one block of an image.

[0098] According to a variant embodiment according to a fourth aspect, a device is presented, further comprising means for generating a bitstream including metadata representative of at least the encoded block and the at least one selected chroma quantization parameter.

[0099] According to a variant embodiment according to the fifth aspect, a device is presented, further comprising producing a reconstructed image based on dequantized chroma values ​​of a plurality of blocks of the image.

Claims

1. 1. A method of decoding a block of an image or video, comprising: accessing information representing a Boolean flag for a block of an image or video, the Boolean flag representing high performance coding efficiency, the Boolean flag being signaled in a high level syntax element that applies to multiple blocks, the high level syntax element being one of a sequence parameter set (SPS) or a picture parameter set (PPS); selecting at least one chroma quantization parameter from a chroma quantization parameter table, the chroma quantization parameter table being selected from a predetermined pair of chroma quantization parameter tables stored on a device performing the method, a first chroma quantization parameter table of the pair being selected when a Boolean flag is true, and a second chroma quantization parameter table of the pair being selected when the Boolean flag is false; dequantizing chroma values ​​of the block according to the at least one chroma quantization parameter; A method comprising:

2. The method of claim 1 , further comprising generating a reconstructed image based on the dequantized chroma values ​​of a plurality of blocks of the image.

3. The method of claim 1 , wherein the chroma quantization parameter table includes zero or more outputs, and the values ​​in the table are non-decreasing as a function of input index.

4. 4. The method of claim 3, wherein for an index value, a chroma quantization parameter table for a high coding performance level outputs a value equal to or greater than an output having the same input index value in a set of chroma quantization parameter tables for a low coding performance level.

5. A device, a memory for storing predetermined pairs of chroma quantization parameter tables; a display configured to display the reconstructed image; one or more processors; the one or more processors: accessing information representing a Boolean flag for a block of an image or video, the Boolean flag representing high performance coding efficiency, the Boolean flag being signaled in a high level syntax element that applies to multiple blocks, the high level syntax element being one of a sequence parameter set (SPS) or a picture parameter set (PPS); selecting at least one chroma quantization parameter from a chroma quantization parameter table, the chroma quantization parameter table being selected from a predetermined pair of chroma quantization parameter tables, a first chroma quantization parameter table of the pair being selected when a Boolean flag is true, and a second chroma quantization parameter table of the pair being selected when the Boolean flag is false; dequantizing chroma values ​​of the block according to the at least one chroma quantization parameter; A device that is configured to:

6. The device described in claim 5, wherein the one or more processors are configured to generate a reconstructed image based on dequantized chroma values ​​of multiple blocks of the image.

7. The device of claim 5 , wherein the chroma quantization parameter table includes zero or more outputs, and the values ​​in the table are non-decreasing as a function of input index.

8. 8. The device of claim 7, wherein for an index value, a chroma quantization parameter table for a high coding performance level outputs a value equal to or greater than an output having the same input index value in a set of chroma quantization parameter tables for a low coding performance level.

9. further comprising an antenna configured to receive the signal via wireless communication; The device of claim 5 , wherein the signal comprises a block of an image or video.

10. 6. The device of claim 5, wherein the device is selected from a set of electronic devices including a personal computer, a laptop computer, a smartphone, a tablet computer, a digital multimedia set-top box, a digital television set, a personal video recording system, a connected home appliance, and a server.

Citation Information

Patent Citations

  • Method and Apparatus for Determining Value of Quantization Parameter

    JP2016518762A

  • Method and device for emulating low-fidelity coding in high-fidelity coders

    JP2016528768A

  • luminance-based coding tool for video compression

    JP2017511045A

  • Methods and devices for emulating low-fidelity coding in a high-fidelity coder

    US20150003518A1