Chroma processing for video encoding and decoding
Through the luminance-dependent chrominance residual scaling method, the decoder pipeline delay problem caused by the separation of luminance and chrominance codec trees is solved, and the compression efficiency and processing efficiency of video encoding and decoding are improved.
Patent Information
- Application Number
- CN202080047527.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-07-05
- Filing Date
- 2020-04-28
- Publication Date
- 2025-10-03
- Estimated Expiration
- 2040-04-28
AI Technical Summary
In existing video encoding and decoding technologies, the separation of luminance and chrominance codec trees leads to decoder pipeline delay problems in hardware implementation, especially making it difficult to achieve effective decoding processing at large CTU sizes.
A luminance-dependent chroma residual scaling method is adopted to reduce the chroma block processing delay by scaling and inversely scaling the chroma prediction residual using scaling factor tables on the encoder and decoder sides, and to optimize the chroma scaling factor index through fine-grained signaling to reduce redundancy.
It improves the compression efficiency of video encoding and decoding, reduces the decoder pipeline delay in hardware implementation, and optimizes the efficiency and complexity of the encoding and decoding process.
Smart Images

Figure CN114026866B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to video encoding and decoding. Background Art
[0002] To achieve high compression efficiency, image and video codecs typically employ prediction and transforms to exploit spatial and temporal redundancy in video content. Typically, intra-frame or inter-frame prediction is used to exploit intra-frame or inter-frame correlations. The difference between the original and predicted image blocks (often expressed as a prediction error or residual) is then transformed, quantized, and entropy-encoded. To reconstruct the video, the compressed data is decoded using the inverse of the prediction, transform, quantization, and entropy-encoding processes. Summary of the Invention
[0003] In general, examples of the embodiments described herein relate to video encoding and decoding using chroma residual scaling.
[0004] Generally, another example of an embodiment relates to a method for encoding picture information, wherein the method includes: determining a first scaling factor that varies with a first granularity for scaling a chroma prediction residual associated with chroma information included in the picture information; determining a second scaling factor that varies with a second granularity finer than the first granularity; scaling the chroma prediction residual based on a combination of the first scaling factor and the second scaling factor to provide a scaled chroma prediction residual having the second granularity; and encoding at least a portion of the picture information based on the scaled chroma prediction residual.
[0005] Generally, another example of an embodiment relates to a method for decoding picture information, wherein the method includes: determining a first scaling factor that varies with a first granularity for scaling a chroma prediction residual associated with chroma information included in the picture information; determining a second scaling factor that varies with a second granularity finer than the first granularity; scaling the chroma prediction residual based on a combination of the first scaling factor and the second scaling factor to provide a scaled chroma prediction residual having the second granularity; and decoding at least a portion of the picture information based on the scaled chroma prediction residual.
[0006] Generally, another example of an embodiment relates to an apparatus for encoding picture information, the apparatus comprising one or more processors configured to: determine a first scaling factor that varies with a first granularity for scaling a chroma prediction residual associated with chroma information included in the picture information; determine a second scaling factor that varies with a second granularity finer than the first granularity; scale the chroma prediction residual based on a combination of the first scaling factor and the second scaling factor to provide a scaled chroma prediction residual having the second granularity; and encode at least a portion of the picture information based on the scaled chroma prediction residual.
[0007] Generally, another example of an embodiment relates to an apparatus for decoding picture information, the apparatus comprising one or more processors configured to: determine a first scaling factor that varies with a first granularity for scaling a chroma prediction residual associated with chroma information included in the picture information; determine a second scaling factor that varies with a second granularity finer than the first granularity; scale the chroma prediction residual based on a combination of the first scaling factor and the second scaling factor to provide a scaled chroma prediction residual having the second granularity; and decode at least a portion of the picture information based on the scaled chroma prediction residual.
[0008] In general, another example of an embodiment relates to a method of encoding picture information, comprising: determining a first scaling factor that varies with a first granularity for scaling a chroma prediction residual associated with chroma information included in the picture information; combining the first scaling factor with a second scaling factor to provide a combined scaling factor having a second granularity finer than the first granularity; scaling the chroma prediction residual based on the combined scaling factor to provide a scaled chroma prediction residual that varies with the second granularity; and encoding at least a portion of the picture information based on the scaled chroma prediction residual.
[0009] Generally, another example of an embodiment relates to a method for decoding picture information, comprising: determining a first scaling factor for scaling a chroma prediction residual associated with chroma information included in the picture information as a function of a first granularity; combining the first scaling factor with a second scaling factor to provide a combined scaling factor having a second granularity finer than the first granularity; scaling the chroma prediction residual based on the combined scaling factor to provide a scaled chroma prediction residual that varies with the second granularity; and decoding at least a portion of the picture information based on the scaled chroma prediction residual.
[0010] Generally, another example of an embodiment relates to an apparatus for encoding picture information, comprising one or more processors configured to: determine a first scaling factor for scaling a chroma prediction residual associated with chroma information included in the picture information as a function of a first granularity; combine the first scaling factor with a second scaling factor to provide a combined scaling factor having a second granularity finer than the first granularity; scale the chroma prediction residual based on the combined scaling factor to provide a scaled chroma prediction residual that varies with the second granularity; and encode at least a portion of the picture information based on the scaled chroma prediction residual.
[0011] Generally, another example of an embodiment relates to an apparatus for decoding picture information, comprising: one or more processors configured to: determine a first scaling factor for scaling a chroma prediction residual associated with chroma information included in the picture information as a function of a first granularity; combine the first scaling factor with a second scaling factor to provide a combined scaling factor having a second granularity finer than the first granularity; scale the chroma prediction residual based on the combined scaling factor to provide a scaled chroma prediction residual that varies with the second granularity; and decode at least a portion of the picture information based on the scaled chroma prediction residual.
[0012] As explained below, various modifications and embodiments are contemplated that may provide improvements to video encoding and / or decoding systems, including but not limited to one or more of increased compression efficiency and / or encoding and decoding efficiency and / or processing efficiency and / or reduced complexity.
[0013] The above presents a simplified overview of the subject matter in order to provide a basic understanding of some aspects of the present disclosure. This summary is not an extensive overview of the subject matter. It is not intended to identify key / critical elements of the embodiments or to delineate the scope of the subject matter. Its sole purpose is to present some concepts of the subject matter in a simplified form as a prelude to the more detailed description provided below. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The present disclosure may be better understood by considering the following detailed description in conjunction with the accompanying drawings, in which:
[0015] Figure 1 A block diagram depicting an example of an embodiment of a video encoder is provided;
[0016] Figure 2 A block diagram depicting an example of an embodiment of a video decoder is provided;
[0017] Figure 3 shows the codec tree unit (CTU) and codec tree concepts that can be used to represent compressed pictures;
[0018] Figure 4 shows the codec tree unit (CTU) and the partitioning of the CTU into codec units (CUs), prediction units (PUs), and transform units (TUs);
[0019] Figure 5 An example of a quadtree plus binary tree (QTBT) representation is shown;
[0020] Figure 6 shows the codec unit (CU) partitioning that can be used in the extended QTBT representation of a CTU;
[0021] Figure 7 Shown include Figure 6 The extended set of CU partition modes plus the horizontal and vertical ternary tree partition modes;
[0022] Figure 8 Examples of pictures and codec structures selected to encode the pictures are provided, the pictures including quadtree partitioning or decomposition of CTUs embedded with various partitioning schemes including symmetric binary tree, asymmetric binary tree, and ternary tree decompositions;
[0023] Figure 9 An example of an embodiment of a chroma quantization parameter (QP) derivation process is shown;
[0024] Figure 10 An example of an embodiment of a chroma decoding process using scale factor index signaling is shown;
[0025] Figure 11 An example of an embodiment of a chroma decoding process using a scaling factor derived from a fine-grained signaled delta QP (dQP) is shown;
[0026] Figure 12 An example of another embodiment of a chroma decoding process using a scaling factor derived from a fine-grained signaled dQP is shown;
[0027] Figure 13 An example of an embodiment of a chroma encoding process using a chroma scaling factor index is shown;
[0028] Figure 13A An example of an embodiment of a chroma encoding process using chroma scaling factor indices, limiting redundancy of index values is shown;
[0029] Figure 14 An example of an embodiment of a chroma encoding process using fine-grained chroma dQP is shown;
[0030] Figure 15 A block diagram illustrating an example of an embodiment of an apparatus according to various aspects and embodiments described herein is provided;
[0031] Figure 16 illustrates an example of a temporal layer in accordance with at least one embodiment described herein;
[0032] Figure 17 An example of at least one embodiment for encoding picture information involving scaling of chroma prediction residuals as described herein is shown; and
[0033] Figure 18 An example of at least one embodiment for decoding picture information involving scaling of chroma prediction residuals as described herein is shown.
[0034] It should be understood that the drawings are for purposes of illustrating examples of various aspects and embodiments and are not necessarily the only possible configurations. In the various drawings, like reference numerals refer to the same or similar features. DETAILED DESCRIPTION
[0035] In general, at least one embodiment described herein relates to the use of chroma residual scaling. For example, chroma residual scaling involves scaling or inverse scaling the chroma prediction residual signal in a chroma block by a scaling factor that depends on luma samples that may be co-located with or adjacent to the chroma block. In the decoder, decoding occurs based on a decoded scaling factor table, and for each chroma block, an index into the table is derived from a luma sample that is co-located with or adjacent to the chroma block. As a result, there is a luma-to-chroma dependency that generates a delay in processing the chroma blocks. At least one embodiment addresses reducing any adverse effects that may be associated with the described chroma block processing delay.
[0036] Turning now to the accompanying drawings, Figure 1 An example of a video encoder 100 such as an HEVC encoder is shown. HEVC is a See Joint Collaboration Group on Frequency Coding and Decoding (JCT-VC) compression standard developed by the ITU Telecommunication Standardization Sector (ITU-T H.265 (10 / 2014), Series H: Audiovisual and Multimedia Systems, Infrastructure of Audiovisual Services - Codecs for Mobile Video, High Efficiency Video Codecs, Recommendation ITU-T H.265). Figure 1 Encoders that improve upon the HEVC standard or employ techniques similar to HEVC may also be shown, such as encoders based on or improving upon the JEM (Joint Exploration Model) developed by the Joint Video Experts Group (JVET), for example, encoders associated with the development work of the designated Versatile Video Codec (VVC).
[0037] In this application, the terms "reconstruction" and "decoding" are used interchangeably, the terms "pixel" and "sample" are used interchangeably, and the terms "picture" and "frame" are used interchangeably. Usually, but not necessarily, the term "reconstruction" is used on the encoder side, while "decoding" is used on the decoder side.
[0038] 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 (e.g., motion vectors) associated with the block.
[0039] For codecs, the picture is partitioned into square codec tree blocks (CTBs) of configurable size, and consecutive sets of 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 set of prediction units (PUs) and transform units (TUs) in a tree structure, 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 apply to the corresponding CU, PU, and TU. In this application, the term "block" may be used to refer to any of CTU, CU, PU, TU, CB, PB, and TB. Furthermore, "block" may also be used to refer to macroblocks and partitions as specified in H.264 / AVC or other video codec standards, and more generally to arrays of data of various sizes.
[0040] exist Figure 1In the encoder 100 in FIG. 1 , a picture is encoded by the encoder elements as described below. Picture information to be encoded is provided at the input and is subjected to mapping (101) and image segmentation (102). Mapping (101) is typically applied to each sample and may involve applying a one-dimensional (1D) function to the input sample values to convert them to other sample values. For example, the 1D function is intended to expand the range of sample values and allow better distribution of codewords within the codeword range. Image segmentation (102) divides the picture into blocks of different sizes and shapes to facilitate optimizing the rate-distortion tradeoff. As described above, mapping and segmentation enable picture information to be processed in units of CUs. Each CU is encoded using either intra or inter mode. When encoding a CU in intra mode, the encoder performs intra prediction (160). In inter mode, motion estimation (175) and 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 via a prediction mode flag. The intra or inter prediction decision (105) is followed by forward mapping (191) to produce a prediction block. Generally, forward mapping (191) is in the same spirit as mapping (101) and can be complementary to mapping. The prediction residual is calculated by subtracting (110) the prediction block from the original image block.
[0041] The prediction residual is then transformed (125) and quantized (130). The quantized transform coefficients, along with motion vectors and other syntax elements, are entropy encoded (145) to output a bitstream. The encoder can also skip the transform and apply quantization directly to the untransformed residual signal on a 4x4 TU basis. The encoder can also bypass the transform and quantization, i.e., encode and decode the residual directly without applying the transform or quantization process. In direct PCM encoding, no prediction is applied and the codec unit samples are encoded and decoded directly into the bitstream.
[0042] The encoder decodes the encoded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (140), inverse transformed (150) and scaled (151) to decode the prediction residual. Scaling (151) essentially corresponds to multiplying the prediction residual samples by a scaling factor. In any case, more detailed operations can be considered, such as low-pass filtering combined with scaling. Combining (155) the decoded prediction residual and the prediction block, the image block is reconstructed. Inverse mapping (190) and an in-loop filter (165) are applied to the reconstructed picture, for example, to perform deblocking / SAO (sample adaptive offset) filtering to reduce coding artifacts. The inverse mapping is the inverse of the forward mapping (191). The filtered image is stored in a reference picture buffer (180).
[0043] Figure 2A block diagram of an example of a video decoder 200, such as an HEVC decoder, is shown. In the example decoder 200, a signal or bitstream is decoded by decoder elements as described below. The video decoder 200 generally performs the same operations as described above. Figure 1 The decoding path is the opposite of the encoding path described in , which performs video decoding as part of encoding the video data. Figure 2 It is also possible to show decoders in which the HEVC standard is improved or decoders employing techniques similar to HEVC, such as decoders based on or improved upon JEM.
[0044] In particular, the input to the decoder consists of Figure 1 The video encoder 100 generates a video signal or bitstream. The signal or bitstream is first entropy decoded (230) and then segmented (210) to obtain transform coefficients, motion vectors and other codec information. Segmentation (210) divides the image into blocks of different sizes and shapes based on the decoded data. The transform coefficients are dequantized (240), inverse transformed (250) and scaled (251) to produce decoded prediction residuals. Inverse scaling (251) is the same as (190) of the encoder and reverses the scaling process (151). The image block is reconstructed by combining (255) the decoded prediction residuals and the prediction block. The prediction block can be obtained (270) from intra-frame prediction (260) or motion compensated prediction (i.e., inter-frame prediction) (275) and undergoes forward mapping (295) before being combined with the prediction residual (255). The forward mapping (295) is the same as (191) of the encoder. Advanced motion vector prediction (AMVP) and merge mode techniques may be used to derive motion vectors for motion compensation, which may use interpolation filters to calculate interpolated values for sub-integer samples of a reference block. Inverse mapping (296) and an in-loop filter (265) are applied to the reconstructed image. Inverse mapping (296) is the inverse of (190) of the encoder. The filtered image is stored in a reference picture buffer (280). Inverse mapping (290) may be applied to the filtered image (265) to produce output picture information. Inverse mapping (290) is the inverse process of (101) of the encoder.
[0045] In the HEVC video compression standard, motion-compensated temporal prediction is used to exploit the redundancy between consecutive frames of a video. To this end, a motion vector is associated with each prediction unit (PU). Each codec tree unit (CTU) is represented by a codec tree (CT) in the compressed domain. This is a quadtree partition of the CTU, where each leaf is called a codec unit (CU), as shown in the following example: Figure 3 shown.
[0046] Each CU is then given some intra or inter prediction parameters or prediction information (prediction information). For this purpose, it is spatially split into one or more prediction units (PUs), and each PU is assigned some prediction information. Intra or inter codec modes are assigned at the CU level, such as Figure 4 As shown, Figure 4 An example of dividing the codec tree unit into codec units, prediction units, and transform units is shown. To encode and decode a CU, a prediction block or prediction unit (PU) is constructed from neighboring reconstructed samples (intra-frame prediction) or from a previously reconstructed picture stored in the decoded picture buffer (DPB) (inter-frame prediction). Next, the residual samples, calculated as the difference between the original samples and the PU samples, are converted and quantized.
[0047] Codecs and video compression tools other than HEVC, such as the Joint Exploration Model (JEM) and the model developed by the JVET (Joint Video Exploration Team) group in the versatile video codec (VVC) reference software called the VVC Test Model (VTM), can provide a CTU representation in the compressed domain that represents picture data in a more flexible way in the compressed domain. A more flexible representation of the codec tree can provide increased compression efficiency compared to methods such as the CU / PU / TU arrangement of the HEVC standard. An example of a more flexible representation is the quadtree plus binary tree (QTBT) codec tool. Figure 5 An example of a representation such as QTBT is shown in Figure 5 A codec tree is shown with codec units that can be partitioned in both quadtree and binary tree fashions. The partitioning of the codec units can be decided at the encoder side based on an optimization process (e.g., a rate-distortion optimization process) that determines the QTBT representation of the CTU with the minimum rate-distortion cost.
[0048] In QTBT technology, a CU can have a square or rectangular shape. The size of a codec unit can be a power of 2 and, for example, range from 4 to 128. In addition to such various rectangular shapes for codec units, the representation of a CTU such as QTBT can have the following characteristics that differ from methods such as HEVC:
[0049] The QTBT decomposition of a CTU consists of two stages: first, the CTU is partitioned in a quadtree fashion, and then each quadtree leaf can be further partitioned in a binary fashion. Figure 5 The right side of is shown, where the solid line represents the quadtree decomposition stage and the dashed line represents the binary decomposition spatially embedded in the quadtree leaves.
[0050] • In intra slices, the luma and chroma block partitioning structures are separate and determined independently.
[0051] CUs that are not partitioned into prediction units or transform units are used, i.e., each CU systematically consists of a single prediction unit (2Nx2N prediction unit partition type) and a single transform unit (not partitioned into transform trees).
[0052] Some other CU binary tree or ternary tree partitions can also be used to represent the CTU codec tree, such as Figure 6 and Figure 7 shown.
[0053] For example, Figure 6 and Figure 7 1 shows additional partitioning or segmentation modes provided in the VVC (Versatile Video Codec) video compression standard. The additional partitioning modes include an asymmetric binary sum tree (ABT) partitioning mode. The ABT partitioning mode may involve partitioning a rectangular codec unit of size (w, h) (width and height) by one of the asymmetric binary partitioning modes, such as HOR_UP (horizontally up), as shown in FIG. Figure 6 and 7 As shown, this will result in two sub-codec units with corresponding rectangular sizes (w, h / 4) and (w, 3h / 4). In addition, the so-called ternary (or ternary) tree (TT) partitioning of the CU can be used, resulting in Figure 7 Possible additional partitioning is shown on the right. A ternary tree involves partitioning a CU into three sub-CUs in the considered orientation, with the three sub-CUs having sizes of, for example, (1 / 4, 1 / 2, 1 / 4) relative to the parent CU. Figure 8 Examples of applying various division modes or codec structures to encode examples of pictures are shown. Figure 8 The structure selected and shown in the figure includes a quadtree partitioning or decomposition of the CTU, in which various partitioning patterns including symmetric binary tree, asymmetric binary tree and ternary tree decomposition are embedded.
[0054] After partitioning, intra-frame or inter-frame prediction is used to exploit intra-frame or inter-frame correlation, and then the difference between the original block and the predicted block (usually expressed as prediction error or prediction residual) is transformed, quantized and entropy coded. To reconstruct the video, the compressed data is decoded by the inverse process corresponding to entropy coding, quantization, transformation and prediction. It has been shown that the above and Figure 6 and 7 The invention provides improvements in codec efficiency by applying an extended range of codec structures or topologies as shown in . In particular, significant codec efficiency improvements can be obtained for chroma, which is generally caused by the separation of luma and chroma codec trees in intra slices.
[0055] However, this separation of the luma and chroma codec trees at the CTU level can create some problems in hardware implementation, such as for large CTUs, e.g., CTUs of size 128x128 or 256x256. Furthermore, completely separating the codec trees for luma and chroma components means that these luma and chroma components are also completely separated in the compressed domain and therefore appear in a separated manner in the codeced bitstream. As will be explained in more detail below, this can lead to problems for decoder implementations, where it may be desirable to ensure that the decoding pipeline can be implemented on a maximum decoding unit size that may be smaller than the CTU size. Typically, some decoder implementations expect a 64x64 based decoder pipeline. For this reason, a maximum transform block size of 64x64 has been chosen for codec approaches such as the Versatile Video Codec (VVC) test model.
[0056] Features such as luma-dependent chroma residual scaling can be used for advanced methods of video codecs / decoders such as VVC. Methods of luma-dependent chroma residual scaling may involve the use of a scaling or inverse scaling table. The table is explicitly signaled in the stream or derived from a table in the stream by the codec. In more detail, at the encoder side, an embodiment of luma-dependent chroma residual scaling may proceed as follows. When encoding a chroma block, a luma value representing the co-located luma block is calculated. This is typically the average of the luma samples in the luma predicted (or reconstructed) block that is co-located with the chroma block in question. Based on the calculated luma value, a scaling value is chosen from a scaling table. The scaling value is applied as a multiplication factor to the residual of the chroma prediction before applying a transform and then a quantization to the chroma residual signal.
[0057] At the decoder side, when decoding a chroma block, a luma value representing the collocated luma block is calculated. This is typically the average of the luma samples in the luma prediction (or reconstructed) block collocated with the chroma block in question. Based on the calculated luma value, an inverse scaling value is selected from an inverse scaling table signaled in the stream or from data signaled in the stream. After inverse quantization and then inverse transform have been applied, the inverse scaling value is applied to the residual of the chroma prediction.
[0058] As used herein, one or more luma blocks that are "co-located" with a chroma block may be defined as:
[0059] - Luma blocks contain pixels that are co-located with a given position in a chroma block, such as
[0060] o The center of the chroma block, e.g., defined as the relative position ((x0+Wc) / 2, (y0+Hc) / 2) in the chroma block, where (x0, y0) corresponds to the relative position of the chroma block in the top-left sampled chroma picture, and (Wc, Hc) are the horizontal / vertical dimensions of the chroma block;
[0061] The upper left position of the chroma block is defined as the relative position (x0, y0) in the chroma picture;
[0062] The lower right position in the chroma block is defined as the relative position (x0+Wc-1, y0+Hc-1) in the chroma picture;
[0063] The upper right position in the chroma block is defined as the relative position (x0+Wc-1, y0) in the chroma picture;
[0064] The lower left position of the chroma block is defined as the relative position (x0, y0+Hc-1) in the chroma picture;
[0065] - Luma blocks that are co-located with several given positions in the chroma blocks, such as those mentioned above; for example, consider a luma block that is co-located with four chroma blocks at the top left, top right, bottom left, and bottom right (see Figure 10 );or
[0066] - A luma block that is collocated with all chroma sample positions of the chroma block under consideration.
[0067] The use of separate luma / chroma codec trees in conjunction with luma-dependent chroma residual scaling can be problematic. In fact, to process a chroma block, its corresponding luma samples from the co-located luma block need to have already been processed. If the luma block size is large, this can result in high structural pipeline delays before the chroma block can be processed. More generally, problems arise when using separate luma / chroma codec trees in conjunction with codec tools that rely on correlation between chroma and its co-located luma samples.
[0068] In general, at least one embodiment may be directed to resolving luma-to-chroma dependencies required in a decoder for deriving chroma residual scaling factors for chroma blocks. For example, at least one embodiment may be directed to reducing or removing dependencies in a decoder, thereby reducing or removing delays in scaling a block's chroma residuals to luma samples.
[0069] When using a 4:4:4 chroma format, methods such as HEVC may involve encoding and decoding a delta QP (dQpChr) for a chroma block or set of chroma blocks in the bitstream. dQpChr is derived at the encoder side based on the luma sample values close to the chroma block, and the derived dQpChr value is encoded and decoded in the bitstream. Based on the decoded value of dQpChr, the chroma QP of the chroma block in question is adjusted. Based on the value of the luma QP (note QpY) and the QP offset encoded and decoded at the PPS level (pps_cb_qp_offset) and the QP offset encoded and decoded at the slice (or tile group) level (slice_cb_qp_offset), an intermediate QP value named qPi is derived. qPi is typically derived as follows.
[0070] qPi = QpY + pps_cb_qp_offset + slice_cb_qp_offset + dQpChr Note that in the current VVC specification, no chroma delta QP is encoded (no dQpChr). In VVC, qPi is only derived as follows:
[0071] qPi=QpY+pps_cb_qp_offset+slice_cb_qp_offset
[0072] The qPi is then clipped between predefined minimum and maximum values.
[0073] A mapping is then performed to obtain the chroma QP denoted as QPc:
[0074] QPc=map(qPi)
[0075] The mapping may be done based on tables such as the following for methods such as HEVC and the current VVC specifications:
[0076] Table 1: Mapping between qPi and QPc
[0077] qPi <30 30 31 32 33 34 35 36 37 38 39 40 41 42 43 >43 <![CDATA[Qp C ]]> =qPi 29 30 31 32 33 33 34 34 35 35 36 36 37 37 =qPi-6
[0078] An example of the chroma QP derivation process is given in Figure 9 In Figure 9 In
[15] , process 10 begins at 11 where the luma QP and chroma QP offsets are added. The result is an intermediate QP, denoted as qPi. At 12, qPi is mapped to a chroma QP value, qPc. An offset may be added to qPc at 13. However, adding an offset at 13 is optional. Finally, the transform coefficients of the chroma blocks are dequantized using a quantization step size (QS) derived from the value of QPc. In codecs such as AVC, HEVC, and VVC, QS is determined as:
[0079] QS=K*2^(QPc / 6)
[0080] K is a known constant value.
[0081] A problem with the described approach may be that the granularity of the delta QP is 1, which means that the QS can only vary within a minimum range of 2^(1 / 6) (approximately equal to 1.12, which means that for an increase or decrease of 1 in the dQpChr value, an increase or decrease of 12%. This value may be too high to perform chroma residual scaling with the required granularity. For example, the scaling factors used in chroma residual scaling have a relative variation that can be less than this value, as shown in Table 2 below. Table 2 provides an example of a scaling factor table, which shows the scaling factor variation compared to a neutral value (scaling = 1), taking values from 0% to 11%, with a minimum granularity equal to 3.1%.
[0082] Table 2: Example of a chroma residual scaling table
[0083]
[0084]
[0085] At least one embodiment involves deriving a scaling factor index from luma samples adjacent to a chroma block at the encoder, and signaling the chroma scaling factor index for a chroma block or set of chroma blocks in the bitstream. In at least one variant, a delta QP may be encoded and decoded instead of a chroma scaling factor index, but using a finer granularity than, for example, that used by HEVC or VVC QPs (the quantization step size doubles for each QP increase of 6). In this variant, one or more processes may be employed, such as a QPc derivation or inverse quantization process.
[0086] In general, at least one embodiment relates to chroma residual scaling of chroma blocks. For each given structural entity, a syntax element may be added to the bitstream, for example, named in the current document chroma_residual_scaling_idx. For ease of understanding, the following description relates to a structural entity that is a CTU. However, it will be apparent to those skilled in the art that the described embodiments, features, aspects, and variations may be applied to any other structural entity, such as a slice, tile, brick, VDPU, CU, TU, or quantization group (QG).
[0087] The inserted syntax element chroma_residual_scaling_idx for a given CTU corresponds to the index of the scaling factor in the chroma scaling factor table to be applied to the chroma residual of the chroma blocks belonging to the considered CTU.
[0088] Figure 10A block diagram of an example of a decoding process for a CTU according to at least one embodiment is depicted in FIG. Figure 10 In FIG. 3 , at 300, a chroma scale factor index is decoded. At 301, chroma residual transform coefficients are decoded. At 302, predicted chroma samples are derived. Following 301, inverse quantization and inverse transformation of the chroma residual transform coefficients occur at 303. This results in chroma residual samples. At 304, the chroma residual samples are scaled based on a scale factor derived from the chroma scale factor index. At 305, the residual is added to the prediction signal. This results in reconstructed chroma samples before potential application of in-loop filtering.
[0089] In general, at least one embodiment relates to the spatial granularity for encoding and decoding chroma residual scaling indices. For example, in one embodiment, a syntax element chroma_residual_scaling_idx is encoded and decoded for each CTU. In another example of an embodiment, a syntax element chroma_residual_scaling_idx is encoded and decoded for each VDPU. In another example of an embodiment, a syntax element chroma_residual_scaling_idx is encoded and decoded for a non-overlapping region of size Wc*Hc, where Wc and Hc are predefined values indicated in the decoder specification or values signaled at a higher level in the bitstream (e.g., tile, tile group, slice, PPS, SPS, APS).
[0090] In HEVC, a delta QP can be specified for each quantization group (QG), which includes a group of codec blocks, defined by a given maximum partition depth (the diff_cu_qp_delta_depth syntax element found in the picture parameter set). All blocks resulting from further partitioning belong to the same quantization group and share the same QP (more precisely, they share the same QP prediction and specify at most one delta QP). Quantization groups (QGs) are defined differently in VVC based on codec block regions rather than partition depth.
[0091] In at least one embodiment, the syntax element chroma_residual_scaling_idx is coded at the same level as the delta QP value, ie, at the quantization group (QG) level. This advantageously provides a unified design for the signaling of the dQP and chroma_residual_scaling_idx syntax elements.
[0092] In at least one embodiment, the syntax element chroma_residual_scaling_idx is coded with CTU partition depth 0 or 1, i.e., considering the current VVC specification (JVET document JVET-N1001, "Versatile Video Codec (Draft 5)"), for CU size 128x128 (depth 0) or 64x64 (depth 1).
[0093] In general, at least one embodiment relates to predictive coding of chroma residual scaling indices. For example, in an embodiment, the syntax element chroma_residual_scaling_idx is added to the predicted value of the scaling factor index, denoted as idxPred. In another example of an embodiment, idxPred is derived from the scaling factor index applied to a region (e.g., CTU or QG) adjacent to the region (e.g., CTU or QG) including the current chroma block. For example, the idxPred of the current CTU is equal to the scaling factor index for the most recently processed CTU. In a variant, the idxPred of the current QG is equal to the scaling factor index for the most recently processed QG. In another example of an embodiment, the idxPred of the current chroma block is equal to the scaling factor index for the top / left chroma blocks adjacent to the current chroma block or the average of the scaling factors derived from those indices.
[0094] In an embodiment, if the top and left chroma blocks adjacent to the current chroma block are available, idxPred is calculated as the average of the chroma_residual_scaling_idx values from the top and left chroma blocks. If only the top chroma block adjacent to the current chroma block is available, idxPred is calculated as the average of the chroma_residual_scaling_idx values from the top chroma blocks. If only the left chroma block adjacent to the current chroma block is available, idxPred is calculated as the average of the chroma_residual_scaling_idx values from the left chroma blocks. If neither the top nor the left chroma blocks adjacent to the current chroma block are available, idxPred is set to a predefined value (e.g., 0).
[0095] In another example of an embodiment, idxPred is derived from luminance values of an area adjacent to an area to which the current value of chroma_residual_scaling_idx is applied.
[0096] As shown in Table 2, it may happen that the chroma residual scaling table includes redundant scaling factors for different index values. This may lead to a loss of codec efficiency, since it may result in encoding different index values even if the resulting scaling factors are the same or close. In an embodiment, in order to improve codec efficiency, a step of removing index redundancy is applied before encoding (and possibly decoding) the index table, or before encoding (and possibly decoding) the index. For example, with reference to Figure 13 , step 607a may be inserted before step 601, or step 607b may be inserted before step 606, as shown in FIG. Figure 13A As shown. In an embodiment, steps 607a / 607b are based on clustering of chroma scaling values. The following pseudo code shows an example of an embodiment. It is assumed that there are initially a maximum of N possible index values (typically N=16). The distance between chroma scaling values is defined as dist(a, b). For example, dist(a, b) is the absolute value of (ab).
[0097] An equivalence table named realIdx is defined and calculated as described in the following pseudocode.
[0098]
[0099] Thresh is a predefined threshold.
[0100] Then, compared to the initial scaling table, the actual scaling table can be simplified into a reduced table, where only non-redundant scaling values are left. For example, the 16 elements of Table 2 can be reduced to the following 4 elements by removing all elements with the same scaling value (corresponding to Threshold = 0). When Thresh is set to 30, only 3 elements are required.
[0101] Initial table
[0102]
[0103]
[0104] Non-redundant table (Thresh=0)
[0105] index Scale (integer 11 bits) Scale (floating point) [0] 2048 1.000 [1] 1899 0.927 [2] 1985 0.969 [3] 1820 0.889
[0106] Non-redundant table (Thresh=30)
[0107] index Scale (integer 11 bits) Scale (floating point) [0] 2048 1.000 [1] 1899 0.927 [2] 1820 0.889
[0108] Thus, instead of encoding and decoding up to N different values, a reduced number of possible values are encoded and decoded, which saves encoding and decoding bits.
[0109] Index redundancy removal can be encoder-only, or it can be canonically applied to the decoder before decoding of the index in order to reduce the size of the scale factors.
[0110] When applying chroma residual scaling index codec to all pictures of a sequence, the codec cost overhead can become quite large and generate high codec loss. To avoid this problem, in another embodiment, chroma residual scaling is enabled only for specific temporal layers. An example of a temporal layer is Figure 16 shown. Figure 16 A series of 9 pictures are shown, numbered from 0 to 8. The horizontal lines depict the temporal layers. The first picture 0 is at temporal layer 0. The 8th picture is codec-dependent on picture 0 and is at temporal layer 1. The other pictures are codec-dependent on two surrounding pictures at temporal layers lower or equal to the picture under consideration. In one embodiment, chroma residual scaling is enabled only for pictures with temporal layers equal to 0 or 1. Chroma residual scaling is disabled for pictures with temporal layers above these values. Figure 16 In the example shown in FIG, pictures 0 and 8 can use chroma residual scaling, but other pictures cannot.
[0111] At least one embodiment according to the present disclosure may relate to a grammar, such as a method or apparatus for generating a grammar or a signal or bitstream including a grammar. Examples of embodiments relating to grammars are shown and described in the appendix of this document. In the appendix, text in a reduced font corresponds to examples of grammars according to at least one of the above-described embodiments and in the context of an outline of a grammar such as provided in the VTM5.0 grammar (described in document JVET-N1001 version 9). The section numbers included in the appendix correspond to the numbering used in JVET-N10019 version 9.
[0112] In at least one example of an embodiment, there is no longer any reference to the scale factor table, but the scale factor values themselves are signaled in the bitstream as signed integer values relative to a neutral value. For example, the scale factor values can be encoded and decoded with 11-bit precision relative to a neutral value of 2^11 (corresponding to an actual scale factor of 1). As another example, Table 1 lists examples of different scale factor tables and scale factor values that will be encoded and decoded in the stream. The precision may be too high, and preferably, the bit depth used to encode and decode the scale factor values is reduced from 11 to 6, 5, or 4 bits (resulting in 1 / 64, 1 / 32, or 1 / 16 precision, rather than the 0.12 precision enabled by using dQP values).
[0113] Table 3: Examples of scaling factors and corresponding codec values
[0114] Scaling Factor Scale (floating point) Codec value 2048 1.000 0 1985 0.969 63 1899 0.927 149 1820 0.889 228
[0115] At least one example of an embodiment may include encoding and decoding the differential QP with an increased granularity (i.e., finer granularity) of the differential QP. For example, in an embodiment, the use of a scaling factor is replaced by the use of a chroma delta QP (dQPchResScal), which may be different or modified compared to a conventional chroma delta QP (dQpChr), e.g., having a finer granularity than the conventional QP dQpChr defined by parameter F. As a specific and non-limiting example, the dQP granularity may be doubled compared to HEVC. That is, the quantization step size is increased by 6 for each F=12 dQP value, instead of 6 in HEVC. In other words, increasing the QP by 1 corresponds to multiplying the quantization step size by 2^(1 / F)=2^(1 / 12). In a variant, the QP granularity may be increased only for the chroma components.
[0116] In at least one embodiment, the modified chroma delta QP can be used to derive a scaling factor applied to the chroma residual samples. For example, Figure 11 A block diagram of an embodiment is shown in which a modified dQP, dQPchResScal, may be used to derive scaling factors applied to chroma residual values. Figure 11 In FIG. 4 , at 400 , the dQP value dQPchResScal of the quantization group containing the chroma block is decoded. At 401 , the chroma scaling factor value is derived from the decoded dQP value dQPchResScal. Other blocks provide similar Figure 10 301 . The chroma residual transform coefficients are decoded. At 302 , predicted chroma samples are derived and 303 follows 301 to perform inverse quantization and inverse transform of the chroma residual transform coefficients. This results in chroma residual samples. At 304 , the chroma residual samples are scaled based on a scaling factor derived from the chroma dQP value dQPchResScal. At 305 , the residual is added to the predicted signal. This results in reconstructed chroma samples before potential application of in-loop filtering.
[0117] Table 4 below shows an example of scaling factor values linked to dQP values when the dQP granularity doubles the quantization step size for every F = 12 increments. The values in the third column are calculated as 2^(dQPchResScal / F). The values in the second column are calculated as INT(2048*2^(dQPchResScal / F)+.5), where INT(x) corresponds to the integer (floor) value of x. Table 5 shows an example of scaling factor values linked to dQP values when the dQP granularity doubles the quantization step size for every F = 24 increments.
[0118] Table 4: Example of scaling factor values linked to dQP values (F=12)
[0119]
[0120] Table 5: Example of scaling factor values linked to dQP values (F=24)
[0121]
[0122]
[0123] Figure 12 A simplified block diagram of another example of an embodiment is provided in which a modified dQP, namely dQPchResScal, can be used to perform inverse quantization of chroma transform coefficients. dQPchResScal can be used in addition to the conventional dQPch. At 500, the dQP values for the quantization group containing the chroma block are decoded. At 501, the chroma QP, QPc, is derived using at least dQPchResScal, and if applicable, the dQPch is used as input to generate a QPc with fine granularity. At 301, the chroma residual transform coefficients are decoded, followed by 303a, where the decoded transform coefficients are inverse quantized using the fine granularity QPc, and 303b, where an inverse transform of the inverse quantized chroma residual transform coefficients occurs. This produces chroma residual samples. At 302, predicted chroma samples are derived. Then, at 305, the residual from 303b is added to the prediction signal from 302 to produce reconstructed chroma samples before potential application of in-loop filtering.
[0124] exist Figure 12 At least one example of an embodiment of deriving a QPc with higher (finer) granularity at 501 in
[0066] may be based on the fine-grained dQPchResScal and proceed as follows: First, qPi is derived.
[0125] qPi=QpY+pps_cb_qp_offset+slice_cb_qp_offset+dQPchResScal / SC
[0126] Where SC = (G / 6). For example, for G = 12, SC = 2, for G = 24, SC = 4. qPi is then clipped between a predefined minimum and maximum value. A mapping is then performed to obtain the chroma QP denoted as QPc:
[0127] QPc=map(qPi)
[0128] In HEVC and current VVC specifications, the mapping is done based on Table 6.
[0129] Table 6: Mapping between qPi and QPc
[0130] qPi <30 30 31 32 33 34 35 36 37 38 39 40 41 42 43 >43 <![CDATA[Qp C ]]> =qPi 29 30 31 32 33 33 34 34 35 35 36 36 37 37 =qPi-6
[0131] Finally, QPc is derived as
[0132] QPc=SC*QPc+(dQPchResScal%SC)
[0133] The granularity of QPc is increased by a factor SC compared to the regular QPc granularity.
[0134] In the current VVC specification (and in HEVC), the QP granularity (denoted as G) is 6 (the quantization step size doubles every time it increases by 6), and as in Figure 12 The inverse quantization at 303a in is performed as follows: Once the QPc parameters have been derived (by step 501), the transform coefficients TC[x][y] are inverse quantized to values TCiQ[x][y] as follows.
[0135] The list levelScale[] is specified as levelScale[k] = {40, 45, 51, 57, 64, 72}, where k = 0..5.
[0136] - The intermediate scaling factor m[x][y] is set equal to 16.
[0137] - The scaling factor ls[x][y] is derived as follows:
[0138] - If dep_quant_enabled_flag is equal to 1, the following applies:
[0139] ls[x][y]=(m[x][y]*levelScale[(QPc+1)%6])<<((QPc+1) / 6)
[0140] Otherwise (dep_quant_enabled_flag equals 0), the following applies:
[0141] ls[x][y]=(m[x][y]*levelScale[QPc%6])<<(QPc / 6)
[0142] -The values dnc[x][y] are derived as follows:
[0143] dnc[x][y]=(TC[x][y]*ls[x][y]*rectNorm+bdOffset)>>bdShift
[0144] - The scaled transform coefficients TCiQ[x][y] are derived as follows:
[0145] TCiQ[x][y]=Clip3(CoeffMin, CoeffMax, dnc[x][y])
[0146] Where rectNorm is the normalization factor, bdShift is the shift parameter that depends on the bit depth of the sample, and bdOffset = (1 <<bdShift)> >1, while CoeffMin, CoeffMax are the minimum and maximum possible values of the coefficient (set to -(1<<15) and (1<<15)–1 in the current specification). Note that levelScale[i] is exported as Int(2^((2+i)÷6)+0.5), where the operator “÷” is floating point division, and Int(x) is the integer value of x.
[0147] At least one example of an embodiment involves modifying the process at 303a above. To double the granularity G of quantization (and QPc) (G=12 instead of 6), the process can be adjusted as follows. Changes compared to the current VVC specification are highlighted in grey.
[0148]
[0149] – The intermediate scaling factor m[x][y] is set equal to 16.
[0150] – The scaling factor ls[x][y] is derived as follows:
[0151] – If dep_quant_enabled_flag is equal to 1, the following applies:
[0152] ls[x][y]=(m[x][y]*levelScale[(QPc+1)%G])<<((QPc+1) / G)
[0153] – Otherwise (dep_quant_enabled_flag equals 0), the following applies:
[0154] ls[x][y]=(m[x][y]*levelScale[QPc%G])<<(QPc / G)
[0155] – The values dnc[x][y] are derived as follows:
[0156] dnc[x][y]=(TC[x][y]*ls[x][y]*rectNorm+bdOffset)>>bdShift
[0157] – The scaled transform coefficients TCiQ[x][y] are derived as follows:
[0158] TCiQ[x][y]=Clip3(CoeffMin, CoeffMax, dnc[x][y])
[0159] For an even finer granularity (G=24 instead of 6), the table levelScale can be modified as follows.
[0160]
[0161] In at least one other example of an embodiment, the granularity of the conventional chroma dQP can be kept at 6, and in addition to the chroma delta QP dQpChr, another syntax element dQP_refine can be encoded to refine the dQP value at a finer level. dQP_refine can take values from 0 to (SC–1), where SC=(G / 6). For example, for G=12, SC=2, for G=24, SC=4. In this case, Figure 12 The QPc derivation at 501 is not modified as described above. In particular, the granularity of the QPc is the conventional granularity.
[0162] However, the modification Figure 12 The operation at 303a in is to add the table levelScaleRefine[k], for k = 0 to (G-1), and do the following (changes are in grey).
[0163] – The scaling factor ls[x][y] is derived as follows:
[0164] – If dep_quant_enabled_flag is equal to 1, the following applies:
[0165]
[0166] – Otherwise (dep_quant_enabled_flag equals 0), the following applies:
[0167]
[0168]
[0169] – The values dnc[x][y] are derived as follows:
[0170] dnc[x][y]=(TC[x][y]*ls[x][y]*rectNorm+bdOffset)>>bdShift
[0171] – The scaled transform coefficients TCiQ[x][y] are derived as follows:
[0172] TCiQ[x][y]=Clip3(CoeffMin, CoeffMax, dnc[x][y])
[0173] In at least one embodiment, for G = 12, levelScaleRefine[k], for k = 0 to (G-1), is defined as follows.
[0174] levelScaleRefine[k]={0, 3, 0, 3, 0, 3, 0, 3, 0, 4, 0, 4}
[0175] In at least one other embodiment, for G=24, levelScaleRefine[k] is defined as follows for k=0 to (G-1).
[0176] levelScaleRefine[k]={0,1,3,4,0,2,3,4,0,1,3,4,0,2,3,5,0,2,4,6,0,2,4,6}
[0177] The described approach advantageously avoids changes to all other processes specified in the decoder that use the chroma QP value for dequantizing the chroma signal (such as the deblocking filter).
[0178] In general, at least one embodiment relates to deriving a scale factor or delta QP at the encoder. A chroma residual scale factor index or chroma dQP value is calculated at the encoder based on luma samples co-located with a chroma block or with chroma samples located in the neighborhood of a chroma region (e.g., a CTU or quantization group) to which the chroma residual scale factor index or chroma dQP value applies. In at least one embodiment, the chroma residual scale factor index or chroma dQP is derived from the average of the predicted or reconstructed luma samples co-located with the chroma region. In a variant, the chroma residual scale factor index or chroma dQP is derived from the median of the predicted or reconstructed luma samples co-located with the chroma region. In a variant, the chroma residual scale factor index or chroma dQP is derived from the x% maximum of the predicted or reconstructed luma samples co-located with the chroma region. X is, for example, 10. In a variant, the chroma residual scale factor index or chroma dQP is derived from the x% minimum of the predicted or reconstructed luma samples co-located with the chroma region. X is 10, for example.
[0179] An example of at least one embodiment is Figure 13 As shown in Figure 13 A block diagram showing an encoder or encoder process in which chroma scaling indices are coded. Figure 13In the embodiment of the present invention, at 600, chroma prediction samples of the chroma block under consideration are calculated. At 602, the prediction samples are subtracted from the original chroma samples, and this generates a chroma prediction residual. At 601, an index of a chroma scaling factor is derived from the original or luma samples that are co-located with or close to the chroma samples of the chroma block. At 603, the chroma residual is scaled based on the scaling factor identified by the chroma scaling index. The residual is then processed by a transform (604) and then quantized (605). The quantized transform coefficients of the chroma block are then entropy coded (606). The entropy codec also encodes the chroma scaling factor index.
[0180] Another example of an embodiment is Figure 14 As shown in Figure 14 A block diagram of an encoder or encoder process is shown for the case where a chroma delta QP with fine granularity is encoded and decoded and affects the quantization process. Figure 14 In the embodiment of the present invention, the chroma prediction samples of the chroma block under consideration are calculated at 600. At 602, the prediction samples are subtracted from the original chroma samples, and this generates a chroma prediction residual. At 701, a chroma difference quantity QP with fine granularity is derived from the original or luma samples that are co-located with or close to the chroma samples of the chroma block. The residual is then processed by a transform (604) and then quantized (705). The quantized transform coefficients of the chroma block are then entropy coded (706).
[0181] Another example of an embodiment is Figure 17 As shown in Figure 17 In the embodiment of the present invention, the input includes picture information. At 1710, a first scaling factor is determined. The first scaling factor varies with a first granularity for scaling a chroma prediction residual associated with chroma information included in the picture information. For example, the first granularity can be determined by a parameter such as G or SC as described above and can have a value such as 6. At 1720, a second scaling factor is determined that varies with a second granularity finer than the first granularity. At 1730, the chroma prediction residual is scaled based on a combination of the first scaling factor and the second scaling factor to provide a scaled chroma prediction residual having a second granularity. At 1740, at least a portion of the picture information is encoded based on the scaled chroma prediction residual. The output includes the encoded picture information.
[0182] Another example of an embodiment is Figure 18 As shown in Figure 18In , an input includes encoded picture information. At 1810, a first scaling factor is determined. The first scaling factor varies with a first granularity for scaling a chroma prediction residual associated with chroma information included in the picture information. For example, the first granularity can be determined by a parameter such as G or SC as described above and can have a value such as 6. At 1820, a second scaling factor is determined that varies with a second granularity finer than the first granularity, for example, the finer granularity can have a value such as 12 or 24 as described above. At 1830, the chroma prediction residual is scaled based on a combination of the first scaling factor and the second scaling factor to provide a scaled chroma prediction residual having a second granularity. At 1840, at least a portion of the picture information is decoded based on the scaled chroma prediction residual. The output includes the decoded picture information.
[0183] This document describes various examples of embodiments, features, models, methods, and the like. Many of these examples are described in detail, and at least for the purpose of illustrating various features, they are often described in a manner that may appear restrictive. However, this is for clarity of description and does not limit the application or scope. In fact, the various examples of embodiments, features, and the like described herein can be combined and interchanged in various ways to provide further examples of the embodiments.
[0184] In general, examples of the embodiments described and contemplated in this document may be implemented in many different forms. Figure 1 and 2 and the following description Figure 15 Some embodiments are provided, but other embodiments are contemplated and Figure 1 、 2 The discussion of 15 does not limit the breadth of implementation. At least one embodiment generally provides examples related to video encoding and / or decoding, and at least one other embodiment generally relates to transmitting a generated or encoded bitstream or signal. These and other embodiments can be implemented as methods, apparatus, computer-readable storage media having stored thereon instructions for encoding or decoding video data according to any of the described methods, and / or computer-readable storage media having stored thereon a bitstream or signal generated according to any of the described methods.
[0185] In this application, the terms "reconstruction" and "decoding" are used interchangeably, the terms "pixel" and "sample" are used interchangeably, and the terms "image," "picture," and "frame" are used interchangeably. Typically, but not necessarily, the term "reconstruction" is used on the encoder side, while "decoding" is used on the decoder side.
[0186] The terms HDR (high dynamic range) and SDR (standard dynamic range) are used in this disclosure. These terms generally convey a specific value of dynamic range to those of ordinary skill in the art. However, additional embodiments are also intended in which references to HDR are understood to mean "higher dynamic range" and references to SDR are understood to mean "lower dynamic range." Such additional embodiments are not limited to any specific value of dynamic range that may often be associated with the terms "high dynamic range" and "standard dynamic range."
[0187] Various methods are described herein, and each method includes one or more steps or actions for implementing the described method. Unless a specific order of steps or actions is required for proper operation of the method, the order and / or use of specific steps and / or actions may be modified or combined.
[0188] Various methods and other aspects described in this document may be used to modify modules of a video encoder and / or decoder, such as Figure 1 The scaling module 151 and Figure 2 The inverse scaling module 251 of the decoder 200 is shown. Furthermore, the present aspects are not limited to VVC or HEVC and can be applied, for example, to other standards and recommendations (whether pre-existing or developed in the future) and extensions of any such standards and recommendations (including VVC and HEVC). Unless otherwise specified or technically excluded, the aspects described in this document can be used alone or in combination.
[0189] For example, various numerical values are used in this document. The specific values are for illustrative purposes and the described aspects are not limited to these specific values.
[0190] Figure 15 A block diagram illustrating an example of a system in which various aspects and embodiments may be implemented is shown. System 1000 may be embodied as a device including the various components described below and 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, smartphones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. The elements of system 1000 may be embodied individually or in combination 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 1000 are distributed across multiple ICs and / or discrete components. In various embodiments, system 1000 is communicatively coupled to other similar systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports. In various embodiments, system 1000 is configured to implement one or more aspects described in this document.
[0191] The system 1000 includes at least one processor 1010 configured to execute instructions loaded therein to implement, for example, the various aspects described in this document. The processor 1010 may include embedded memory, input / 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, a magnetic disk drive, and / or an optical disk drive. As non-limiting examples, the storage device 1040 may include an internal storage device, an attached storage device, and / or a network accessible storage device.
[0192] System 1000 includes an encoder / decoder module 1030, which is configured to process data to provide encoded video or decoded video, for example, and the encoder / decoder module 1030 may include its own processor and memory. The encoder / decoder module 1030 represents a module that can be included in a device to perform encoding and / or decoding functions. As is well known, a device may include one or both encoding and decoding modules. In addition, the encoder / decoder module 1030 may be implemented as a separate element of the system 1000 or may be incorporated into the processor 1010 as a combination of hardware and software known to those skilled in the art.
[0193] Program code to be loaded into 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 into 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.
[0194] In several embodiments, memory internal to the processor 1010 and / or 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 can be the processor 1010 or the encoder / decoder module 1030) is used for one or more of these functions. The external memory can be memory 1020 and / or storage device 1040, such as dynamic volatile memory and / or 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, fast external dynamic volatile memory such as RAM is used as working memory for video encoding and decoding operations, such as working memory for MPEG-2, HEVC, or VVC (Versatile Video Codec).
[0195] 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, for example, by a broadcaster, (ii) a composite input terminal, (iii) a USB input terminal, and / or (iv) an HDMI input terminal.
[0196] In various embodiments, the input device of block 1130 has associated corresponding input processing elements known in the art. For example, the RF section may be associated with elements for the following operations: (i) selecting a desired frequency (also known as selecting a signal, or band-limiting a signal to a frequency band), (ii) down-converting the selected signal, (iii) again band-limiting the signal to a narrower frequency band to select a signal frequency band that (for example) may 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 section of various embodiments includes one or more elements for performing these functions, such as a frequency selector, a signal selector, a frequency band limiter, a channel selector, a filter, a down-converter, a demodulator, an error corrector, and a demultiplexer. The RF section may include a tuner that performs various of these functions, including, for example, down-converting a received signal to a lower frequency (for example, an intermediate frequency or a near-baseband frequency) or to baseband. In a set-top box embodiment, the RF part and its associated input processing element receive the RF signal that sends by wired (for example, cable) medium, and by filtering, down-conversion and filtering to the frequency band of expectation again to perform frequency selection.Various embodiments rearrange the order of above-mentioned (and other) elements, remove some in these elements, and / or add other elements that perform similar or different functions.Adding element can comprise and insert element between existing element, for example, insert amplifier and analog-to-digital converter.In various embodiments, the RF part comprises antenna.
[0197] In addition, 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, 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 conjunction with memory and storage elements, to process the data streams for presentation on an output device.
[0198] The various components of system 1000 may be disposed within an integrated housing. Within the integrated housing, the various components may be interconnected and transmit data therebetween using suitable connection means 1140 (eg, an internal bus known in the art, including an I2C bus, wiring, and printed circuit boards).
[0199] System 1000 includes a communication interface 1050 capable of communicating with other devices via a communication channel 1060. Communication interface 1050 may include, but is not limited to, a transceiver configured to send and receive data over communication channel 1060. Communication interface 1050 may include, but is not limited to, a modem or a network card, and communication channel 1060 may be implemented, for example, within a wired and / or wireless medium.
[0200] In various embodiments, data is streamed to system 1000 using a Wi-Fi network such as IEEE 802.11. Wi-Fi signals for these embodiments are received via a communication channel 1060 and communication interface 1050 suitable for Wi-Fi communication. Communication channel 1060 for 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 transmits data via an HDMI connection to input block 1130 to provide streaming data to system 1000. Other embodiments use an RF connection to input block 1130 to provide streaming data to system 1000.
[0201] System 1000 can provide output signals to various output devices, including display 1100, speakers 1110, and other peripherals 1120. In various examples of embodiments, other peripherals 1120 include stand-alone DVRs, disc players, stereo systems, lighting systems, and other devices that provide functionality based on the output of system 1000. In various embodiments, control signals are communicated between system 1000 and display 1100, speakers 1110, or other peripherals 1120 using signaling using protocols such as AV.Link, CEC, or other communication protocols that enable device-to-device control with or without user intervention. Output devices can be communicatively coupled to system 1000 via dedicated connections via respective interfaces 1070, 1080, and 1090. Alternatively, output devices can be connected to system 1000 via communication interface 1050 using communication channel 1060. Display 1100 and speakers 1110 can be integrated into a single unit along with other components of 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 (T Con) chip.
[0202] Display 1100 and speaker 1110 may alternatively be separate from one or more other components, for example, if the RF portion of input 1130 is part of a separate set-top box. In various embodiments where 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.
[0203] The embodiments may be executed by computer software implemented by the processor 1010, 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 optical storage devices, magnetic storage devices, semiconductor-based storage devices, fixed memory, and removable memory. As a non-limiting example, the processor 1010 may be of any type suitable for the technical environment and may include one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture.
[0204] Throughout this disclosure, various implementations relate to decoding. "Decoding," as used in this application, may include, 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, such a process includes 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 a process also or alternatively includes a process performed by a decoder of the various implementations described herein, such as extracting a picture from a (packed) picture of a tile, determining an upsampling filter to use, then upsampling the picture, and flipping the picture back to its intended orientation.
[0205] 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 particular description and is considered to be well understood by those skilled in the art.
[0206] Furthermore, various implementations involve encoding. In a manner similar to the discussion above regarding "decoding," "encoding," as used herein, may include, for example, all or part of the processes performed on an input video sequence to produce an encoded bitstream or signal. In various embodiments, such 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 the encoders of the various implementations described herein.
[0207] 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 particular description and is considered well understood by those skilled in the art.
[0208] Note that the syntax elements as used herein are descriptive terms. Therefore, they do not exclude the use of other syntax element names.
[0209] When the figures are presented as flow charts, it should be understood that they also provide block diagrams of the corresponding apparatus. Similarly, when the figures are presented as block diagrams, it should be understood that they also provide flow charts of the corresponding methods / processes.
[0210] Various embodiments relate to rate-distortion optimization. In particular, during the encoding process, the balance or trade-off between rate and distortion is often considered, often subject to computational complexity constraints. Rate-distortion optimization is typically 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, with a complete evaluation of their encoding and decoding costs and associated distortion of the reconstructed signal after encoding and decoding. Faster approaches can also be used to save coding complexity, particularly by calculating an approximate distortion based on the prediction or prediction residual signal rather than the reconstructed prediction or prediction residual signal. A hybrid of these two approaches is also possible, such as using an approximate distortion for only some possible coding options and the full distortion for others. 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 does not necessarily require a complete evaluation of both encoding and decoding costs and associated distortion.
[0211] The implementations and aspects described herein can be implemented in, for example, a method or process, a device, a software program, a data stream, or a signal. 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 can also be implemented in other forms (e.g., a device or program). The device can be implemented in, for example, appropriate hardware, software, and firmware. The method can be implemented in, for example, a processor, which generally refers to a processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. The processor also includes communication devices, such as computers, cellular phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate the communication of information between end users.
[0212] Reference to "one embodiment" or "an embodiment" or "one 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 appearances of the phrases "one embodiment" or "an embodiment" or "one implementation" or "an implementation" and any other variations thereof in various places throughout this document are not necessarily all referring to the same embodiment.
[0213] 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.
[0214] 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.
[0215] Furthermore, this document may refer to "receiving" various information. Receiving, like "accessing," 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 storage). Furthermore, during operations such as, for example, storing information, processing information, sending information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information, "receiving" is often referred to in one way or another.
[0216] It should be understood that use of any of the following “ / ,” “and / or,” “one or more,” and “at least one,” such as in the case of “A / B,” “A and / or B,” “one or more of A or B,” and “at least one of A and B,” is intended to include selecting only the first listed option (A), or only the second listed option (B), or both options (A and B). As a further example, in the case of “A, B and / or C,” “one or more of A, B, or C,” and “at least one of A, B, and C,” such wording is intended to include selecting 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, 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 listed.
[0217] Furthermore, as used herein, the term "signal" specifically indicates something to a corresponding decoder. For example, in certain embodiments, an encoder signals a specific parameter from among multiple parameters used for refinement. In this way, in embodiments, the same parameters are used on both the encoder and decoder sides. Thus, for example, an encoder can send (explicit signaling) specific parameters to a decoder so that the decoder can use the same specific parameters. Conversely, if the decoder already has specific parameters along with other parameters, signaling can be used to simply allow the decoder to know and select the specific parameters without sending them (implicit signaling). By avoiding the transmission of any actual functionality, bit savings are achieved in various embodiments. It should be understood that signaling can be implemented 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 term "signal" has been previously described, the term "signal" can also be used as a noun in this document.
[0218] It will be apparent to one of ordinary skill in the art that an implementation may generate various signals formatted to carry information that may be stored or transmitted, for example. The information may include, for example, instructions for performing a method or data generated by one of the described implementations. For example, a signal may be formatted to carry a bitstream or signal of the described embodiments. Such a signal may be formatted as, for example, an electromagnetic wave (e.g., using the radio frequency portion of the 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.
[0219] Various generalized and specificized embodiments are also supported and contemplated throughout this disclosure.Examples of embodiments according to the present disclosure include, but are not limited to, the following.
[0220] Generally, at least one example of an embodiment may relate to a method for encoding picture information, wherein the method includes: determining a first scaling factor that varies with a first granularity for scaling a chroma prediction residual associated with chroma information included in the picture information; determining a second scaling factor that varies with a second granularity finer than the first granularity; scaling the chroma prediction residual based on a combination of the first scaling factor and the second scaling factor to provide a scaled chroma prediction residual having the second granularity; and encoding at least a portion of the picture information based on the scaled chroma prediction residual.
[0221] Generally, at least one example of an embodiment may relate to a method for decoding picture information, wherein the method includes: determining a first scaling factor that varies with a first granularity for scaling a chroma prediction residual associated with chroma information included in the picture information; determining a second scaling factor that varies with a second granularity finer than the first granularity; scaling the chroma prediction residual based on a combination of the first scaling factor and the second scaling factor to provide a scaled chroma prediction residual having the second granularity; and decoding at least a portion of the picture information based on the scaled chroma prediction residual.
[0222] Generally, at least one example of an embodiment may relate to an apparatus for encoding picture information, the apparatus comprising one or more processors configured to: determine a first scaling factor that varies with a first granularity for scaling a chroma prediction residual associated with chroma information included in the picture information; determine a second scaling factor that varies with a second granularity finer than the first granularity; scale the chroma prediction residual based on a combination of the first scaling factor and the second scaling factor to provide a scaled chroma prediction residual having the second granularity; and encode at least a portion of the picture information based on the scaled chroma prediction residual.
[0223] Generally, at least one example of an embodiment may relate to an apparatus for decoding picture information, the apparatus comprising one or more processors configured to: determine a first scaling factor that varies with a first granularity for scaling a chroma prediction residual associated with chroma information included in the picture information; determine a second scaling factor that varies with a second granularity finer than the first granularity; scale the chroma prediction residual based on a combination of the first scaling factor and the second scaling factor to provide a scaled chroma prediction residual having the second granularity; and decode at least a portion of the picture information based on the scaled chroma prediction residual.
[0224] Generally, at least one example of an embodiment may relate to a method for encoding picture information, comprising: determining a first scaling factor for scaling a chroma prediction residual associated with chroma information included in the picture information as a function of a first granularity; combining the first scaling factor with a second scaling factor to provide a combined scaling factor having a second granularity finer than the first granularity; scaling the chroma prediction residual based on the combined scaling factor to provide a scaled chroma prediction residual that varies with the second granularity; and encoding at least a portion of the picture information based on the scaled chroma prediction residual.
[0225] Generally, at least one example of an embodiment may relate to a method for decoding picture information, comprising: determining a first scaling factor for scaling a chroma prediction residual associated with chroma information included in the picture information as a function of a first granularity; combining the first scaling factor with a second scaling factor to provide a combined scaling factor having a second granularity finer than the first granularity; scaling the chroma prediction residual based on the combined scaling factor to provide a scaled chroma prediction residual that varies with the second granularity; and decoding at least a portion of the picture information based on the scaled chroma prediction residual.
[0226] Generally, at least one example of an embodiment may relate to an apparatus for encoding picture information, comprising one or more processors configured to: determine a first scaling factor for scaling a chroma prediction residual associated with chroma information included in the picture information as a function of a first granularity; combine the first scaling factor with a second scaling factor to provide a combined scaling factor having a second granularity finer than the first granularity; scale the chroma prediction residual based on the combined scaling factor to provide a scaled chroma prediction residual that varies with the second granularity; and encode at least a portion of the picture information based on the scaled chroma prediction residual.
[0227] Generally, at least one example of an embodiment may relate to an apparatus for decoding picture information, comprising one or more processors configured to: determine a first scaling factor for scaling a chroma prediction residual associated with chroma information included in the picture information as a function of a first granularity; combine the first scaling factor with a second scaling factor to provide a combined scaling factor having a second granularity finer than the first granularity; scale the chroma prediction residual based on the combined scaling factor to provide a scaled chroma prediction residual that varies with the second granularity; and decode at least a portion of the picture information based on the scaled chroma prediction residual.
[0228] Generally, at least one example of an embodiment may be directed to a method or apparatus as described herein, wherein the second scaling factor is determined based on luminance information included in the picture information and located near the chrominance information.
[0229] Generally, at least one example of an embodiment may relate to a method as described herein, wherein determining a first scaling factor comprises determining a scaling index referring to an entry in a table of multiple scaling factors; and encoding at least a portion of the picture information comprises encoding the scaling index.
[0230] In general, at least one example of an embodiment may relate to a method as described herein, wherein encoding a scaling index comprises including the scaling index as a syntax element of a coded bitstream generated by the encoding.
[0231] Generally, at least one example of an embodiment may relate to a method as described herein, wherein encoding a scaling index comprises encoding the scaling index of at least one structural entity.
[0232] Generally, at least one example of an embodiment may relate to a method as described herein, wherein determining a first scaling factor comprises determining a scaling index referring to an entry in a table of a plurality of scaling factors; and decoding at least a portion of the picture information is based on the scaling index.
[0233] In general, at least one example of an embodiment may relate to a method as described herein, wherein determining a scaling index comprises determining the scaling index from a syntax element of a coded bitstream comprising the picture information.
[0234] Generally, at least one example of an embodiment may relate to a method as described herein, wherein determining a scaling index comprises determining the scaling index of at least one structural entity.
[0235] Generally, at least one example of an embodiment may relate to a method as described herein, wherein at least one structural entity comprises at least one of a CTU, or a VDPU, or a CU, or a TU, or a slice, or a tile, or a partition, or a quantization group, or a plurality of non-overlapping regions of size Wc*Hc, where Wc and Hc are predefined values or values signaled in the bitstream.
[0236] Generally, at least one example of an embodiment may relate to an apparatus as described herein, wherein the one or more processors are configured to determine the first scaling factor including: the one or more processors are further configured to determine a scaling index representing an entry in a table of multiple scaling factors; and wherein the one or more processors are configured to encode at least a portion of the picture information including: the one or more processors are further configured to encode the scaling index.
[0237] Generally, at least one example of an embodiment may relate to an apparatus as described herein, wherein the one or more processors are configured to encode a scaling index including: the one or more processors are further configured to include the scaling index as a syntax element of a coded bitstream generated by the encoding.
[0238] In general, at least one example of an embodiment may be directed to an apparatus as described herein, wherein the one or more processors being configured to encode a scaling index comprises the one or more processors being further configured to encode the scaling index of at least one structural entity.
[0239] Generally, at least one example of an embodiment may relate to an apparatus as described herein, wherein one or more processors are configured to determine a first scaling factor comprising: the one or more processors are further configured to determine a scaling index representing an entry in a table of multiple scaling factors; and wherein the one or more processors are further configured to decode at least a portion of the picture information based on the scaling index.
[0240] In general, at least one example of the embodiments may relate to an apparatus as described herein, wherein the one or more processors are further configured to determine a scaling index from a syntax element of a coded bitstream comprising the picture information.
[0241] In general, at least one example of an embodiment may be directed to an apparatus as described herein, wherein the one or more processors are configured to determine a scaling index comprises the one or more processors being configured to determine the scaling index of at least one structural entity.
[0242] Generally, at least one example of an embodiment may relate to an apparatus as described herein, wherein at least one structural entity comprises at least one of a CTU, or a VDPU, or a CU, or a TU, or a slice, or a tile, or a partition, or a quantization group, or a plurality of non-overlapping regions of size Wc*Hc, where Wc and Hc are predefined values or values signaled in the bitstream.
[0243] Generally, at least one example of an embodiment may relate to an apparatus as described herein, wherein the second scaling factor is determined based on luma information located near the chroma information, comprising one of: an average value of the predicted or reconstructed luma samples co-located with the chroma region, or a median value of the predicted or reconstructed luma samples co-located with the chroma region, or a percentage of a maximum value of the predicted or reconstructed luma samples co-located with the chroma region, or a percentage of a minimum value of the predicted or reconstructed luma samples co-located with the chroma region.
[0244] In general, at least one example of the embodiments may involve a computer program product comprising instructions that, when executed by a computer, cause the computer to perform a method according to one or more examples of the embodiments described herein.
[0245] Generally, at least one example of the embodiments may involve a non-transitory computer-readable medium storing executable program instructions to cause a computer executing the instructions to perform a method according to one or more examples of the embodiments described herein.
[0246] In general, at least one example of the embodiments may involve a signal comprising data generated according to any one or more examples of the embodiments described herein.
[0247] In general, at least one example of the embodiments may involve a bitstream formatted to include syntax elements and coded image information generated according to any one or more of the examples of the embodiments described herein.
[0248] Generally, at least one example of an embodiment may relate to a device comprising: an apparatus according to any one or more examples of an embodiment described herein; and at least one of the following items: (i) an antenna configured to receive a signal, the signal including data representing image information, (ii) a frequency band limiter configured to limit the received signal to a frequency band including data representing the image information, and (iii) a display configured to display an image from the image information.
[0249] In general, at least one example of an embodiment may be directed to a device as described herein, wherein the device comprises one of a television, a television signal receiver, a set-top box, a gateway device, a mobile device, a cell phone, a tablet computer, or other electronic devices.
[0250] Various embodiments have been described. These and other embodiments according to the present disclosure may include any of the following features or entities (alone or in any combination) across various claim categories and types:
[0251] • Providing a syntax element in the encoder and / or decoder for deriving or applying a chroma residual scaling index indicating a chroma block.
[0252] • Providing a syntax element in an encoder and / or decoder for deriving or applying a chroma residual scaling index indicating a chroma block, wherein the syntax element may be associated with a structural entity.
[0253] Providing a syntax element in an encoder and / or decoder for deriving or applying a chroma residual scaling index indicating a chroma block, wherein the syntax element may be associated with a structural entity, and wherein the structural entity may be any of a CTU, a slice, a tile, a partition, a VDPU, a CU, a TU, or a quantization group.
[0254] Providing, in an encoder and / or decoder, a syntax element for deriving or applying a chroma residual scaling index indicating a chroma block, wherein the syntax element may be associated with a structural entity, and wherein the syntax element corresponds to an index into a chroma scaling factor table indicating a scaling factor to be applied to a chroma residual of one or more chroma blocks included in the structural entity.
[0255] • Providing a syntax element in an encoder and / or decoder for deriving or applying a chroma residual scaling index indicating a chroma block, wherein the syntax element is encoded for each structural entity, and wherein the structural entity is a CTU or a VDPU.
[0256] Providing a syntax element in the encoder and / or decoder for deriving or applying a chroma residual scaling index indicating a chroma block, wherein the syntax element is encoded or decoded for a non-overlapping region of size Wc*Hc, where Wc and Hc are predefined values indicated in the decoder specification or values signaled at a higher level in the bitstream (e.g., tile, tile group, slice, PPS, SPS, APS).
[0257] • Providing a syntax element in the encoder and / or decoder for deriving or applying a chroma residual scaling index indicating a chroma block, wherein the syntax element is encoded and decoded at the same level as the delta QP value, such as at the quantization group (QG) level.
[0258] • Providing a syntax element in an encoder and / or decoder for deriving or applying a chroma residual scaling index indicating a chroma block, wherein the syntax element is coded or decoded with a CTU partition depth of 0 or 1.
[0259] Providing a syntax element in an encoder and / or decoder for deriving or applying a chroma residual scaling index indicating a chroma block, wherein if top and left chroma blocks neighboring the current chroma block are available, the index may be determined as the average of first and second index values associated with the top and left chroma blocks, respectively.
[0260] Providing a syntax element in the encoder and / or decoder for deriving or applying a chroma residual scaling index indicating a chroma block, wherein if only top chroma blocks neighboring the current chroma block are available, the index may be determined as the average of index values associated with the top chroma blocks.
[0261] Providing a syntax element in the encoder and / or decoder for deriving or applying a chroma residual scaling index indicating a chroma block, where the index is calculated as the average of index values associated with left chroma blocks if only left chroma blocks adjacent to the current chroma block are available.
[0262] Providing a syntax element in the encoder and / or decoder for deriving or applying a chroma residual scaling index indicating a chroma block, where the index is set to a predefined value (e.g., 0) if both the top and left chroma blocks adjacent to the current chroma block are unavailable.
[0263] Providing, in an encoder and / or decoder, a syntax element for deriving or applying a chroma residual scaling index indicating a chroma block, wherein determining the index may be based on a chroma residual scaling table and one or more redundant values included in the table are removed before encoding or decoding the table or before encoding or decoding the index value.
[0264] • Providing a syntax element in the encoder and / or decoder for deriving or applying a chroma residual scaling index indicating a chroma block, where the chroma residual scaling may be based on a temporal layer.
[0265] • Providing a syntax element in the encoder and / or decoder for deriving or applying a chroma residual scaling index indicating a chroma block, wherein the syntax element is added to the predicted value of the scale factor index.
[0266] Providing, in an encoder and / or decoder, a syntax element for deriving or applying a chroma residual scaling index indicating a chroma block, wherein the syntax element is added to a predictor of a scaling factor index, and wherein the predictor is derived from a scaling factor index applied to a first region neighboring a second region including the current chroma block.
[0267] Providing, in an encoder and / or decoder, a syntax element for deriving or applying a chroma residual scaling index indicating a chroma block, wherein the syntax element is added to a predictor of a scale factor index, and wherein the predictor is derived from a scale factor index applied to a first region adjacent to a second region, wherein the second region includes the current chroma block, and wherein the first and second regions include CTUs or QGs.
[0268] Providing, in an encoder and / or decoder, a syntax element for deriving or applying a chroma residual scaling index indicating a chroma block, wherein the syntax element is added to a predictor of a scale factor index, and wherein the predictor is derived from a scale factor index applied to a first region adjacent to a second region, wherein the second region includes the current chroma block, and wherein the first and second regions include CTUs or QGs, and wherein the predictor of the current CTU or QG is equal to the scale factor index for a most recently processed CTU or QG, respectively.
[0269] Providing, in an encoder and / or decoder, a syntax element for deriving or applying a chroma residual scaling index indicating a chroma block, wherein the syntax element is added to a prediction value of a scaling factor index, and wherein the prediction value for the current chroma block is equal to the scaling factor indices for top and left chroma blocks adjacent to the current chroma block or an average of scaling factors derived from these indices.
[0270] Providing, in an encoder and / or decoder, a syntax element for deriving or applying a chroma residual scaling index indicating a chroma block, wherein the syntax element is added to a prediction value of the scaling factor index, and wherein the prediction value is derived or obtained based on luma values of an area neighboring an area to which a current value of the chroma residual scaling index is applied.
[0271] • Providing a syntax element in an encoder and / or decoder for deriving or applying a chroma residual scaling factor indicating a chroma block, wherein the value of the chroma residual scaling factor is equal to a signed integer value relative to a neutral value.
[0272] • Providing syntax elements in the encoder and / or decoder for deriving or applying a differential QP indicating a granularity based on parameter changes.
[0273] • Providing, in the encoder and / or decoder, a syntax element for deriving or applying a differential QP indicating a granularity based on a parameter change, wherein the parameter value is selected to provide a granularity finer than 12% of the neutral value.
[0274] • Providing, in an encoder and / or decoder, a syntax element for deriving or applying a delta QP indicating a granularity based on a parameter change, wherein the granularity is modified to produce a finer granularity for chroma components only, thereby providing a modified chroma delta QP.
[0275] Providing, in an encoder and / or decoder, a syntax element for deriving or applying a delta QP indicating a granularity based on a parameter change, wherein the granularity is modified to produce a finer granularity for only chroma components, thereby providing a modified chroma delta QP, and wherein the modified chroma delta QP is used to derive a scaling factor applied to one or more chroma residual samples.
[0276] Providing, in an encoder and / or decoder, a syntax element for deriving or applying a delta QP indicating a granularity based on a parameter change, wherein the granularity is modified to produce finer granularity for chroma components, thereby providing a modified chroma delta QP, and wherein the modified chroma delta QP is used to perform inverse quantization of chroma residual transform coefficients, thereby providing chroma quantization parameters with finer granularity.
[0277] • Providing first and second syntax elements for derivation or application in an encoder and / or decoder, wherein the first syntax element indicates a chroma delta QP, the second syntax element indicates a refinement value, and the refinement value provides a granularity for modifying the chroma delta QP.
[0278] Provision is made in the encoder for deriving a chroma residual scale factor index or a delta QP value for a chroma block based on luma samples that are co-located with the chroma block or in the neighborhood of a chroma structure entity to which the chroma residual scale factor index or chroma delta dQP value applies.
[0279] Provision is made in an encoder for deriving a chroma residual scale factor index or a delta QP value for a chroma block based on luma samples co-located with the chroma block or co-located with chroma samples located in the neighborhood of a chroma structuring entity to which the chroma residual scale factor index or chroma delta dQP value applies, wherein the chroma structuring entity comprises a CTU or a quantization group (QG).
[0280] Provision is made in the encoder for deriving or obtaining a chroma residual scaling factor index or chroma dQP that is derived from or based on the average of predicted or reconstructed luma samples co-located with the chroma region.
[0281] Provision is made in the encoder for deriving or obtaining a chroma residual scaling factor index or chroma dQP that is derived from or based on a median value of predicted or reconstructed luma samples co-located with the chroma region.
[0282] Provision is made in the encoder for deriving or obtaining a chroma residual scaling factor index or chroma dQP that is derived from or based on a percentage of the maximum value of predicted or reconstructed luma samples co-located with the chroma region.
[0283] Provision is made in the encoder for deriving or obtaining a chroma residual scaling factor index or chroma dQP that is derived from or based on a percentage of a maximum value of predicted or reconstructed luma samples co-located with a chroma region, where the percentage is 10.
[0284] Provision is made in the encoder for deriving or obtaining a chroma residual scaling factor index or chroma dQP that is derived from or based on a percentage of the lowest value of predicted or reconstructed luma samples co-located with the chroma region.
[0285] Provision is made in the encoder for deriving or obtaining a chroma residual scaling factor index or chroma dQP that is derived from or based on a percentage of the lowest value of predicted or reconstructed luma samples co-located with the chroma region, where the percentage is 10.
[0286] • Providing an encoder and / or decoder for processing video according to any of the embodiments, features or entities as described herein, alone or in any combination, based on providing reduced complexity and / or improved compression efficiency.
[0287] • Inserting syntax elements in the signaling, which enable the encoder and / or decoder to provide encoding and / or decoding according to any of the embodiments, features or entities as described herein, alone or in any combination.
[0288] • Based on these syntax elements, features or entities are selected, alone or in any combination, as described herein, to be applied at the decoder.
[0289] • A bitstream or signal comprising one or more of the described syntax elements or variants thereof.
[0290] • Inserting syntax elements in the signaling that enable the decoder to provide decoding in a manner corresponding to the encoding used by the encoder.
[0291] • Creating and / or sending and / or receiving and / or decoding a bitstream or signal comprising one or more of the described syntax elements or variants thereof.
[0292] • A television, set-top box, mobile phone, tablet or other electronic device providing for encoding and / or decoding according to any of the embodiments, features or entities as described herein, applied alone or in any combination.
[0293] A television, set-top box, mobile phone, tablet computer, or other electronic device that encodes and / or decodes according to any of the embodiments, features, or entities described herein, alone or in any combination, and displays (e.g., using a monitor, screen, or other type of display) the resulting image.
[0294] A television, set-top box, mobile phone, tablet computer, or other electronic device that tunes (e.g., using a tuner) to a channel to receive a signal comprising an encoded image, and performs encoding and / or decoding according to any of the embodiments, features, or entities as described herein, alone or in any combination.
[0295] A television, set-top box, mobile phone, tablet or other electronic device that receives over the air (e.g. using an antenna) a signal comprising an encoded image and performs encoding and / or decoding according to any of the embodiments, features or entities as described herein, alone or in any combination.
[0296] • A computer program product storing program code which, when executed by a computer, encodes and / or decodes according to any one of the embodiments, features or entities described herein, alone or in any combination.
[0297] A non-transitory computer-readable medium comprising executable program instructions that cause a computer to execute the instructions to encode and / or decode according to any one of the embodiments, features, or entities as described herein, alone or in any combination.
[0298] Various other generalized and specific embodiments are also supported and contemplated throughout this disclosure.
[0299] Appendix – Examples of Grammar
[0300] 7.3.5 Strip Header Syntax
[0301] 7.3.5.1 General Slice Header Syntax
[0302]
[0303] 7.3.7.2 Codec Tree Unit Syntax
[0304]
[0305] The concept of blocks is defined in VTM5.0. A picture can be divided into non-overlapping rectangular blocks, which are themselves made of CTUs. In principle, it is expected that there will be no dependencies between adjacent blocks. According to the following conditions in the table above
[0306] if(((xCtb>>Log2CtbSize)%ChResScalGrain==0&&
[0307] (yCtb>>Log2CtbSize)%ChResScalGrain==0)||
[0308] (CtbAddrInBs 5==CtbAddrInRs)){
[0309] The syntax elements cu_crs_delta_abs and cu_crs_delta_sign_flag are signaled only when the CTU is the first in a non-overlapping region of NxN CTUs, N equal to ChResScalGrain, or when the CTU is the first in a partition. This last test can be accomplished by the following conditions:
[0310] CtbAddrInBs==CtbAddrInRs
[0311] Wherein CtbAddrInBs may be the address in the picture of the first CTU of the current partition, and CtbAddrInRs may be the address in the picture of the current CTU.
[0312] 7.4.6.1 General slice header semantics
[0313] When present, the value of each of the slice header syntax elements slice_pic_parameter_set_id, slice_pic_order_cnt_lsb, and slice_temporal_mvp_enabled_flag shall be the same in all slice headers of a coded picture.
[0314] …
[0315] slice_chroma_residual_scale_flag equal to 1 specifies that chroma residual scaling is enabled for the current slice. slice_chroma_residual_scale_flag equal to 0 specifies that chroma residual scaling is not enabled for the current slice. When slice_chroma_residual_scale_flag is not present, it is inferred to be equal to 0.
[0316] slice_chroma_residual_scale_grain_minus1 specifies the granularity in CTU size used to signal the chroma residual scale index. When slice_chroma_residual_scale_grain_minus1 is not present, it is inferred to be equal to 1.
[0317] When slice_chroma_residual_scale_grain_minus1 is not present, it is inferred to be equal to 0 and the variable ChResScalGrain is set equal to 1.
[0318] When slice_chroma_residual_scale_grain_minus1 exists, the variable CuCrsDeltaVal is derived as follows:
[0319] ChResScalGrain=slice_chroma_residual_scale_grain_minus1+1num_entry_point_offsets is used to specify the variable NumEntryPoints, which specifies the number of entry points for the current strip, as follows:
[0320] …
[0321] 7.4.6.4 Luma Mapping with Chroma Scaling Data Semantics
[0322] lmcs_min_bin_idx specifies the minimum bin used in the luma map with chroma scaling build process
[0323] Index. The value of lmcs_min_bin_idx should be in the range of 0 to 15 (inclusive).
[0324] …
[0325] The variable ChromaScaleCoeff[i], i=0…15, is derived as follows:
[0326] – If (lmcsCW[i] == 0) ChromaScaleCoeff[i] is set equal to (1<<11)
[0327] – Otherwise the following applies.
[0328]
[0329] 7.4.8.2 Codec Tree Unit Semantics
[0330] CTU is the root node of the codec tree structure.
[0331] The array IsInSmr[x][y] specifies whether the sample at (x, y) is within the shared merge candidate list region. For x = 0.. CtbSizeY-1 and y = 0.. CtbSizeY-1, the array is initialized as follows:
[0332] IsInSmr[x][y]=FALSE (7-125)
[0333] alf_ctb_flag[cIdx][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize] equal to 1 specifies that the adaptive in-loop filter is applied to the codec tree block of the color component indicated by cIdx of the codec tree unit at luma position (xCtb, yCtb). alf_ctb_flag[cIdx][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize] equal to 0 specifies that the adaptive in-loop filter should not be applied to the codec tree block of the color component indicated by cIdx of the codec tree unit at luma position (xCtb, yCtb). When alf_ctb_flag[cIdx][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize] is not present, it is inferred to be equal to 0.
[0334] cu_crs_delta_abs specifies the absolute value of the difference CuCrsDeltaVal between the chroma residual scaling index of the current codec unit and its prediction.
[0335] cu_crs_delta_sign_flag specifies the sign of CuCrsDeltaVal as follows:
[0336] – If cu_crs_delta_sign_flag is equal to 0, the corresponding CuCrsDeltaVal has a positive value.
[0337] – Otherwise (cu_crs_delta_sign_flag is equal to 1), the corresponding CuCrsDeltaVal has a negative value.
[0338] When cu_crs_delta_sign_flag is not present, it is inferred to be equal to 0.
[0339] When cu_crs_delta_abs exists, the variable CuCrsDeltaVal is derived as follows:
[0340] CuCrsDeltaVal = cu_crs_delta_abs * ( 1 - 2 * cu_crs_delta_sign_flag )(7-159)…
[0341] 8.7.5.3 Image reconstruction using the luma-dependent chroma residual scaling process for chroma sampling
[0342] The inputs to this process are:
[0343] – The position of the top left sample of the current transform block relative to the top left sample of the current picture (xCurr, yCurr),
[0344] – variable nCurrSw that specifies the width of the transform block,
[0345] – variable nCurrSh that specifies the height of the transform block,
[0346] – specifies the variable tuCbfChroma of the codec block flag of the current chroma transform block,
[0347] – predSamples, an array of (nCurrSw)x(nCurrSh) chroma prediction samples for the current block,
[0348] – specifies the (nCurrSw)x(nCurrSh) array resSamples of the chroma residual samples for the current block.
[0349] The output of this process is the reconstructed chroma picture sample array recSamples. For i = 0..nCurrSw-1, j = 0..nCurrSh-1, the reconstructed chroma picture sample recSamples is derived as follows:
[0350] – recSamples[xCurr+i][yCurr+j] is set equal to Clip1 if one of the following conditions is true: C (predSamples[i][j]+resSamples[i][j]):
[0351] –slice_chroma_residual_scale_flag is equal to 0
[0352] –nCurrSw*nCurrSh is less than or equal to 4
[0353] –tu_cbf_cb[xCurr][yCurr] is equal to 0 and tu_cbf_cr[xCurr][yCurr] is equal to 0
[0354] – Otherwise, the following applies:
[0355] – The variable varScale is derived by calling the derivation procedure for the chroma residual scale factor as specified in clause 8.8.2.4.
[0356] The export of –recSamples is as follows:
[0357] – If tuCbfChroma is equal to 1, the following applies:
[0358] resSamples[i][j]=Clip3(-(1< <BitDepth C ), (1< <BitDepth C )-1,resSamples[i][j])
[0359] (8-1013)
[0360] recSamples[xCurr+i][yCurr+j]=Clip1 C (predSamples[i][j]+Sign(resSamples[i][j])
[0361] *((Abs(resSamples[i][j])*varScale+(1<<10))>>11)) (8-1014)
[0362] – Otherwise (tu_cbf equals 0), the following applies:
[0363] recSamples[xCurr+i][yCurr+j]=Clip1 C (predSamples[i][j]) (8-1015)
[0364] 8.8.2.4 Derivation process of chroma residual scaling factor
[0365] The inputs to this process are:
[0366] – Specifies the location of the current CTU of the current picture in CTU size (xCTU, yCTU).
[0367] In this process, the chroma residual scaling factor chrResScalFactor[xCTU][yCTU] of the current CTU is derived. The predicted parameter crsf_pred is derived as follows:
[0368] – crsf_pred is set equal to 0 if one or more of the following conditions are true:
[0369] – The current CTU is the first CTU in the slice.
[0370] – The current CTU is the first CTU in the block.
[0371] – Otherwise, crsf_pred is exported as follows:
[0372] –nbPred is set to 0.
[0373] – If (xCTU, yCTU–1) is within the current slice and within the current block, then the following applies
[0374] crsf_pred=chrResScalFactor[xCTU][yCTU–1]
[0375] nbPred=nbPred+1
[0376] – If (xCTU–1, yCTU) is within the current slice and within the current block, the following applies
[0377] crsf_pred=crsf_pred+chrResScalFactor[xCTU–1][yCTU]
[0378] nbPred=nbPred+1
[0379] – crsf_pred is set equal to (crsf_pred + (nbPred>>1))>>nbPred.
[0380] chrResScalFactor[xCTU][yCTU] is derived as follows:
[0381] - If (xCTU%ChResScalGrain)==0 and (yCTU%ChResScalGrain)==0, then
[0382] chrResScalFactor[xCTU][yCTU] is derived as follows:
[0383] –chrResScalFactor[xCTU][yCTU]=crsf_pred+CuCrsDeltaVal
[0384] – Otherwise, chrResScalFactor[xCTU][yCTU] is derived as follows:
[0385] –xCTUref is set equal to (ChResScalGrain*(xCTU / ChResScalGrain))
[0386] –yCTUref is set equal to (ChResScalGrain*(yCTU / ChResScalGrain))
[0387] –chrResScalFactor[xCTU][yCTU] is set equal to
[0388] chrResScalFactor[xCTUref][yCTUref]
Claims
1. A method for encoding picture information, the method comprising: determining a block of chroma prediction residuals from a block of chroma prediction samples associated with a block of chroma samples included in the picture information; determining an index into a chroma scaling factor table of a chroma scaling factor to be applied to the block of chroma prediction residuals; scaling the block of chroma prediction residuals based on the chroma scaling factor to provide a block of scaled chroma prediction residuals; transforming and quantizing the block of scaled chroma prediction residuals to provide transform coefficients for the block of chroma prediction residuals; encoding a syntax element representing the index into the chroma scaling factor table representing the scaling factor to be applied to the block of chroma prediction residuals; as well as The block of picture information is encoded based on the block of scaled chroma prediction residuals.
2. The method according to claim 1, wherein The syntax element of the index into the chroma scaling factor table representing the scaling factor to be applied to the block of chroma prediction residual is signaled at codec tree unit level.
3. The method according to claim 1, wherein The syntax element of the index into the chroma scaling factor table representing the scaling factor to be applied to the block of chroma prediction residual is signaled for a maximum decoding unit size.
4. The method according to claim 1, wherein An index into a chroma scaling factor table that determines a chroma scaling factor to be applied to the block of chroma prediction residuals is independent of the block of luma samples associated with the block of chroma samples.
5. A method for decoding picture information, the method comprising: entropy decoding transform coefficients of a block of chroma prediction residuals associated with a block of chroma samples included in the picture information; Inverse quantizing and inverse transforming the transform coefficients to obtain a block of chroma prediction residuals; decoding a syntax element representing an index into a chroma scaling factor table representing a scaling factor to be applied to the block of chroma prediction residual; determining a chroma scaling factor to be applied to the block of chroma prediction residuals from the index in the chroma scaling factor table; scaling the block of chroma prediction residuals based on the chroma scaling factor to provide a block of scaled chroma prediction residuals; as well as The block of picture information is reconstructed by adding the block of scaled chroma prediction residuals to a block of chroma prediction samples.
6. The method according to claim 5, wherein: The syntax element of the index into the chroma scaling factor table representing the scaling factor to be applied to the block of chroma prediction residual is signaled at codec tree unit level.
7. The method according to claim 5, wherein: The syntax element of the index into the chroma scaling factor table representing the scaling factor to be applied to the block of chroma prediction residual is signaled for a maximum decoding unit size.
8. The method according to claim 5, wherein The chroma scaling factor to be applied to the block of chroma prediction residuals is determined from the index in the chroma scaling factor table independently of the block of luma samples associated with the block of chroma samples.
9. An apparatus for encoding picture information, comprising one or more processors, wherein the one or more processors are configured to: determining a block of chroma prediction residuals from a block of chroma prediction samples associated with a block of chroma samples included in the picture information; determining an index into a chroma scaling factor table of a chroma scaling factor to be applied to the block of chroma prediction residuals; scaling the block of chroma prediction residuals based on the chroma scaling factor to provide a block of scaled chroma prediction residuals; transforming and quantizing the block of scaled chroma prediction residuals to provide transform coefficients for the block of chroma prediction residuals; encoding a syntax element representing the index into the chroma scaling factor table representing the scaling factor to be applied to the block of chroma prediction residuals; as well as The block of picture information is encoded based on the block of scaled chroma prediction residuals.
10. The device according to claim 9, wherein The syntax element of the index into the chroma scaling factor table representing the scaling factor to be applied to the block of chroma prediction residual is signaled at codec tree unit level.
11. The device according to claim 9, wherein The syntax element of the index into the chroma scaling factor table representing the scaling factor to be applied to the block of chroma prediction residual is signaled for a maximum decoding unit size.
12. The device according to claim 9, wherein The index into the chroma scaling factor table of the chroma scaling factor to be applied to the block of chroma prediction residuals is determined independently of the block of luma samples associated with the block of chroma samples.
13. An apparatus for decoding picture information, comprising one or more processors, wherein the one or more processors are configured to: entropy decoding transform coefficients of a block of chroma prediction residuals associated with a block of chroma samples included in the picture information; Inverse quantizing and inverse transforming the transform coefficients to obtain a block of chroma prediction residuals; decoding a syntax element representing an index into a chroma scaling factor table representing a scaling factor to be applied to the block of chroma prediction residual; determining a chroma scaling factor to be applied to the block of chroma prediction residuals from the index in the chroma scaling factor table; scaling the block of chroma prediction residuals based on the chroma scaling factor to provide a block of scaled chroma prediction residuals; as well as The block of picture information is reconstructed by adding the block of scaled chroma prediction residuals to a block of chroma prediction samples.
14. The device according to claim 13, wherein The syntax element of the index into the chroma scaling factor table representing the scaling factor to be applied to the block of chroma prediction residual is signaled at codec tree unit level.
15. The device according to claim 13, wherein The syntax element of the index into the chroma scaling factor table representing the scaling factor to be applied to the block of chroma prediction residual is signaled for a maximum decoding unit size.
16. The device according to claim 13, wherein The chroma scaling factor to be applied to the block of chroma prediction residuals is determined from the index in the chroma scaling factor table independently of the block of luma samples associated with the block of chroma samples. 17 . A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform the method of claim 1 .
18. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform the method according to claim 5.
Citation Information
Patent Citations
Color residual prediction for video coding
CN105723707A
Inter-color component residual prediction
US20150016512A1