Adaptive range clipping

By using an adaptive range limiting method, video frames are selectively decoded and encoded, solving the problem of excessive resource consumption in video encoding and decoding, and achieving a more efficient encoding and decoding process and flexible limiting applications.

CN122439348APending Publication Date: 2026-07-21GOOGLE LLC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
GOOGLE LLC
Filing Date
2024-12-20
Publication Date
2026-07-21

Smart Images

  • Figure CN122439348A_ABST
    Figure CN122439348A_ABST
Patent Text Reader

Abstract

Adaptive range clipping for color components of image data is described. During decoding, range bound information can be determined, for example, from a first header within an encoded bitstream. The first header is a header that applies to a plurality of frames of a video sequence, and the range bound information includes at least one of an upper limit or a lower limit of values of at least one plane of color data. A value of a clipping flag is determined from a corresponding second header within the encoded bitstream. The second header is a header that applies to at least a portion of a frame of the plurality of frames, and the value of the clipping flag indicates whether the range bound information is applied to the portion. The plurality of frames is selectively decoded using the range bound information and the value of the clipping flag.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] Digital video streams can be represented using frames or sequences of still images. Digital video can be used in a variety of applications, including video conferencing, high-definition video entertainment, video advertising, or the sharing of user-generated videos. Digital video streams can contain large amounts of data and consume considerable computing or communication resources of computing devices for processing, transmitting, or storing the video data. Various methods have been proposed to reduce the amount of data in video streams, including encoding and decoding techniques. Summary of the Invention

[0002] One aspect of the teachings in this paper is a method for using adaptive range limiting in video encoding and decoding. Range limit information is determined from a first header within the encoded bitstream. The first header is a header applied to multiple frames of a video sequence, and the range limit information includes at least one of an upper or lower limit of the value of at least one plane (e.g., a luma plane) of the color data. A value of a limiting flag is determined from a corresponding second header within the encoded bitstream. The second header is a header applied to at least a portion (e.g., an entire frame or a slice) of a frame among the multiple frames, and the value of the limiting flag indicates whether range limit information is applied to that at least portion of the frame. Multiple frames are selectively decoded using the range limit information from the first header and the value of the limiting flag from the corresponding second header.

[0003] In some implementations, the first header signals a notification using a sequence parameter set, an adaptive parameter set, or an image parameter set.

[0004] In some implementations, the second header is a frame header or a slice header.

[0005] In some implementations, selectively decoding multiple frames includes: reconstructing the first frame using a luminance map by reconstructing the luminance block of the first frame among multiple frames in a mapped sample domain; modifying the value of the inverse luminance map using range boundary information, wherein the inverse luminance map transforms the mapped luminance values ​​from the mapped sample domain to the original sample domain; using the modified inverse luminance map to transform the luminance values ​​of the luminance block of the first frame from the mapped sample domain to the original sample domain; and storing the first frame in the original sample domain for inter-frame prediction.

[0006] In some variations of these implementations, the method includes performing at least one in-loop filtering process on the first frame after converting the luminance value.

[0007] In some variations of these implementations, the method includes: using a first frame to perform inter-frame prediction of luma blocks in a second frame following the first frame in decoding order; modifying the values ​​of the forward luma map using range bounding information, wherein the forward luma map transforms luma code values ​​in the original sample domain to the mapped sample domain; using the modified forward luma map to transform the predicted blocks generated by the inter-frame prediction from the original sample domain to the mapped sample domain; and providing the transformed predicted blocks to the reconstruction process of the second frame. After reconstructing the second frame, the values ​​of the forward luma map can be recovered. Modifying the values ​​of the forward luma map may include modifying a forward luma map table that maps values ​​in the original sample domain to values ​​in the mapped sample domain.

[0008] In any of the above implementations, modifying the value of the inverse brightness mapping may include modifying the inverse brightness mapping table, which maps the values ​​in the mapped sample domain to the values ​​in the original sample domain.

[0009] In any of the above implementations, the method may include restoring the values ​​of the inverse luminance mapping after converting the luminance values ​​of the luminance blocks of the first frame.

[0010] In any of the above implementations, the method may include using chroma scaling to reconstruct the chroma blocks of the first frame in the original sample domain.

[0011] In some of the above implementations, selectively decoding multiple frames includes using Luminance Mapping and Chromaticity Scaling (LMCS) to reconstruct the luminance and chroma blocks of at least one frame.

[0012] One aspect of the teachings in this paper is another method for using adaptive range limiting in video encoding and decoding. Range limit information is encoded into a first header of the encoded bitstream. The value of a limiting flag is encoded into a corresponding second header of the encoded bitstream. Multiple frames are selectively encoded using the range limit information in the first header and the value of the limiting flag in the corresponding second header.

[0013] One aspect of the teachings in this paper is yet another method for using adaptive range limiting in video encoding and decoding. Range limit information is determined from the encoded bitstream. The range limit information is applied to at least one frame of a plurality of frames in the video sequence, and the range limit information includes at least one of an upper or lower limit of the values ​​of the luminance plane of the color data. Values ​​of a limiting flag for at least a portion of the frames are also determined from the encoded bitstream. The value of the limiting flag indicates whether range limit information is applied to that at least portion of the frame. Multiple frames are selectively decoded using luminance mapping, range limit information, and the values ​​of the limiting flags for the corresponding portions of the frame by: modifying the values ​​of the inverse luminance mapping using the range limit information, wherein the inverse luminance mapping transforms mapped luminance values ​​from the mapped sample domain to the original sample domain; modifying the values ​​of the forward luminance mapping using the range limit information, wherein the forward luminance mapping transforms luminance code values ​​in the original sample domain to the mapped sample domain; and performing limiting (e.g., during prediction and / or reconstruction) in the mapped sample domain using the range limit information.

[0014] In some implementations of this method, using range bounding information in the mapped sample domain to perform clipping includes performing clipping after at least one of block prediction or block reconstruction.

[0015] One aspect of the teachings in this paper is another method for using adaptive range limiting in video encoding and decoding. Range limit information is encoded into a first header of the encoded bitstream. The first header is a header applied to multiple frames of the video sequence, and the range limit information is an upper limit, lower limit, or both of the values ​​of at least one plane of the color data. The value of a limiting flag is encoded into a corresponding second header of the encoded bitstream. The second header is a header applied to at least a portion of the frames in the multiple frames, and the value of the limiting flag indicates whether range limit information is applied to that at least portion of the frame. Ultimately, the method involves selectively encoding multiple frames using the range limit information in the first header and the value of the limiting flag in the corresponding second header.

[0016] One aspect of the teachings in this paper is a system or device capable of performing any of the methods described herein and other methods.

[0017] One aspect of this document teaches a non-transitory computer-readable storage medium that stores an encoded bitstream. The encoded bitstream is configured to be encoded according to any of the encoding methods described herein or decoded according to any of the decoding methods described herein.

[0018] In some implementations, the encoded bitstream includes: a first header including range limit information, wherein the first header is applied to a plurality of frames of a video sequence, and the range limit information includes at least one of an upper or lower limit of the value of at least one plane of color data; a second header correspondingly including a value of a limiting flag, wherein the second header is a header applied to at least a portion of the frames in the plurality of frames, and the value of the limiting flag indicates whether the range limit information is applied to the at least portion of the frame; and a plurality of frames selectively encoded using the range limit information of the first header and the values ​​of the limiting flags of the corresponding second headers.

[0019] These and other aspects of this disclosure are made public in the following detailed description of the embodiments, the appended claims, and the accompanying drawings. Attached Figure Description

[0020] The descriptions in this document refer to the accompanying drawings described below, wherein the same reference numerals are used throughout the views to refer to the same parts.

[0021] Figure 1 This is a schematic diagram of a video encoding and decoding system.

[0022] Figure 2 This is a block diagram of an example computing device that can be used to implement a transmitting station or a receiving station.

[0023] Figure 3 This is a diagram of a typical video stream that is to be encoded and subsequently decoded.

[0024] Figure 4 This is a block diagram of an encoder according to the implementation of this disclosure.

[0025] Figure 5 This is a block diagram of a decoder implemented according to this disclosure.

[0026] Figure 6 This is a flowchart of a technique for video encoding and decoding using adaptive range limiting.

[0027] Figure 7 This is a block diagram showing the reconstruction path that can realize the technology described in this article. Detailed Implementation

[0028] Video compression schemes may include: breaking down corresponding images or frames of a video stream into smaller portions such as code-decode tree blocks (CTBs) or code-decode tree units (CTUs) (sometimes called superblocks), and generating an encoded bitstream using techniques for limiting the information included for each corresponding CTU. The bitstream can be decoded to recreate the source frame from the limited information. Encoding a CTU into a bitstream or decoding a CTU from a bitstream may include predicting the value of a pixel or CTU based on its similarity to other pixels or CTUs that have been encoded or decoded in the same frame or one or more other frames.

[0029] Those similarities can be determined using intra-frame prediction, which attempts to predict the pixel values ​​of a CU (code-decode unit, etc.) by using pixels surrounding that CU (e.g., pixels located in the same frame as the CU but outside of it). During encoding, the result of the intra-frame prediction mode performed on the CU is a prediction unit (PU) (prediction block, etc.). A prediction residual can be determined based on the difference between the pixel values ​​of the CU and the pixel values ​​of the PU. The prediction residual and the intra-frame prediction mode used to ultimately obtain the prediction residual can then be encoded into a bitstream. During decoding, the prediction residual is reconstructed into a CU using the PU generated based on the intra-frame prediction mode, and this prediction residual is subsequently included in the output video stream.

[0030] Similarly, inter-frame prediction attempts to predict the pixel values ​​of the CU (Cumulative Unit) of the CTU (Continuous Unit) using pixels from one or more reference frames. During encoding, the result of the inter-frame prediction mode performed on the CU is also the PU (Programmable Component). The prediction residual can be determined based on the difference between the pixel values ​​of the CU and the pixel values ​​of the PU. The prediction residual and the inter-frame prediction mode used to ultimately obtain the prediction residual can then be encoded into the bitstream. During decoding, the prediction residual is reconstructed into the CU using the PU generated based on the inter-frame prediction mode, and this prediction residual is subsequently included in the output video stream.

[0031] A frame, and therefore its CTU and CU, can include a luminance (also called luma) component and two chrominance (also called chroma) components. In some cases, these luminance and chrominance components can be referred to as luminance blocks and chrominance blocks. For example, the luminance component can be expressed in the Y plane, and the chrominance components can be expressed in the U and V planes or the Cr and Cb planes. A luminance component is understood to include a number of luminance samples, and each chrominance component is understood to include a number of chrominance samples. Typically, luminance samples provide a measure of brightness for the entire frame and thus represent the structural quality of the frame's video content, while chrominance samples provide a measure of color for the entire frame. The number of luminance samples can indicate the frame's spatial resolution (or simply resolution).

[0032] Adaptive clipping of luminance and chrominance samples is possible. For example, the color value range (minimum and maximum values) (e.g., Y, U, V) components can be signaled individually at the picture (image, frame) level. Clipping can be performed after prediction, reconstruction (i.e., after adding prediction blocks to the residuals), and (e.g., within the loop) filtering. Signaling adaptive clipping is costly, and clipping everywhere (e.g., for each frame) is unnecessary.

[0033] This disclosure describes an implementation of adaptive range limiting that reduces signaling costs and provides flexible applications of limiting. Further details of techniques for video encoding and decoding using adaptive range limiting are initially described herein with reference to systems in which these techniques can be implemented.

[0034] Figure 1 This is a schematic diagram of a video encoding and decoding system 100. The transmitting station 102 can be, for example, such as... Figure 2 The computer described has an internal hardware configuration. However, other implementations of the transmitter 102 are possible. For example, the processing of the transmitter 102 can be distributed among multiple devices.

[0035] Network 104 can connect transmitting station 102 and receiving station 106 for encoding and decoding of video streams. Specifically, the video stream can be encoded in transmitting station 102 and decoded in receiving station 106. Network 104 can be, for example, the Internet. Network 104 can also be a local area network (LAN), a wide area network (WAN), a virtual private network (VPN), a cellular telephone network, or any other component that transmits video streams from transmitting station 102 to (in this example) receiving station 106.

[0036] In one example, receiving station 106 could be such as Figure 2 The described computer has an internal hardware configuration. However, other suitable implementations of the receiving station 106 are possible. For example, the processing of the receiving station 106 can be distributed among multiple devices.

[0037] Other implementations of the video encoding and decoding system 100 are possible. For example, network 104 may be omitted in the implementation. In another implementation, the video stream may be encoded and then stored for later transmission to receiving station 106 or any other device with memory. In one implementation, receiving station 106 receives (e.g., via network 104, a computer bus, and / or some communication path) the encoded video stream and stores it for later decoding. In an example implementation, Real-Time Transport Protocol (RTP) is used to transmit the encoded video over network 104. In another implementation, a transport protocol different from RTP may be used, such as a video streaming protocol based on Hypertext Transfer Protocol (HTTP).

[0038] When used in a video conferencing system, for example, transmitting station 102 and / or receiving station 106 may include the ability to both encode and decode video streams as described below. For example, receiving station 106 may be a video conferencing participant who receives an encoded video bitstream from a video conferencing server (e.g., transmitting station 102) for decoding and viewing, and further encodes his or her own video bitstream and transmits it to the video conferencing server for other participants to decode and view.

[0039] Figure 2 This is a block diagram illustrating an example of a computing device 200 that can be used to implement a transmitting station or a receiving station. For example, the computing device 200 can implement... Figure 1 One or both of the transmitting station 102 and the receiving station 106. The computing device 200 may be in the form of a computing system including multiple computing devices, or in the form of a single computing device (e.g., a mobile phone, tablet computer, laptop computer, notebook computer, desktop computer, etc.).

[0040] The processor 202 in the computing device 200 can be a conventional central processing unit. Alternatively, the processor 202 can be another type of device or multiple devices that exist now or are developed later and are capable of manipulating or processing information. For example, although the disclosed implementation can be practiced with a single processor (e.g., processor 202) shown, advantages in speed and efficiency can be achieved by using more than one processor.

[0041] In this implementation, the memory 204 in the computing device 200 may be a read-only memory (ROM) device or a random access memory (RAM) device. However, other suitable types of storage devices may be used as memory 204. Memory 204 may include code and data 206 accessed by the processor 202 using bus 212. Memory 204 may also include an operating system 208 and an application program 210, which includes at least one program that permits the processor 202 to execute the techniques described herein. For example, application program 210 may include applications 1 to N, which may also include video encoding / decoding applications that execute the techniques described herein. The computing device 200 may also include secondary storage 214, which may be, for example, a memory card used with a mobile computing device. Because video communication sessions may contain a considerable amount of information, it may be stored, in whole or in part, in secondary storage 214 and loaded into memory 204 as needed for processing.

[0042] The computing device 200 may also include one or more output devices, such as a display 218. In one example, the display 218 may be a touch-sensitive display that combines a display with a touch-sensitive element operable to sense touch input. The display 218 may be coupled to the processor 202 via a bus 212. In addition to or as an alternative to the display 218, other output devices may be provided that allow a user to program or otherwise use the computing device 200. When the output device is a display or includes a display, the display may be implemented in various ways, including via a liquid crystal display (LCD), a cathode ray tube (CRT) display, or a light-emitting diode (LED) display (such as an organic LED (OLED) display).

[0043] The computing device 200 may also include an image sensing device 220, such as a camera or any other existing or later-developed image sensing device 220 capable of sensing images (such as images of a user operating the computing device 200), or communicating with such image sensing device. The image sensing device 220 may be positioned such that it is pointed toward the user operating the computing device 200. In an example, the position and optical axis of the image sensing device 220 may be configured such that the field of view includes an area directly adjacent to and visible from the display 218.

[0044] The computing device 200 may also include a sound sensing device 222, such as a microphone or any other sound sensing device that can sense the present or future presence of sound in the vicinity of the computing device 200, or communicate with such sound sensing device. The sound sensing device 222 may be positioned such that it is directed toward a user operating the computing device 200, and may be configured to receive sounds, such as speech or other words, emitted by the user when the user operates the computing device 200.

[0045] although Figure 2 The processor 202 and memory 204 of computing device 200 are depicted as integrated into a single unit, but other configurations may be utilized. The operation of processor 202 can be distributed across multiple machines (where individual machines may have one or more processors), which may be directly coupled or coupled across a local area network or other network. Memory 204 can be distributed across multiple machines, such as network-based memory or memory in multiple machines performing the operations of computing device 200. Although depicted herein as a single bus, bus 212 of computing device 200 may consist of multiple buses. Furthermore, auxiliary storage 214 may be directly coupled to other components of computing device 200 or accessible via a network, and may include integrated units (such as memory cards) or multiple units (such as multiple memory cards). Therefore, computing device 200 can be implemented in a wide variety of configurations.

[0046] Figure 3 This is an illustration of an example of a video stream 300 to be encoded and subsequently decoded. The video stream 300 includes a video sequence 302. At the next level, the video sequence 302 includes multiple adjacent frames 304. Although three frames are depicted as adjacent frames 304, the video sequence 302 can include any number of adjacent frames 304. Adjacent frames 304 can then be further subdivided into individual frames, such as frame 306. At the next level, frame 306 can be divided into a series of planes or segments 308. For example, segment 308 can be a subset of frames that allow for parallel processing. Segment 308 can also be a subset of frames that can separate video data into individual colors. For example, frame 306 of color video data can include a luma plane and two chroma planes. Segment 308 can be sampled at different resolutions.

[0047] Regardless of whether frame 306 is divided into segments 308, frame 306 can be further subdivided into blocks 310, which can contain data corresponding to, for example, 16×16 pixels in frame 306. Block 310 can also be arranged to include data from one or more segments 308 of pixel data. Block 310 can also have any other suitable size, such as 4×4 pixels, 8×8 pixels, 16×8 pixels, 8×16 pixels, 16×16 pixels, or larger. Unless otherwise stated, the terms block and macroblock are used interchangeably herein.

[0048] Figure 4 This is a block diagram of an encoder 400 according to an implementation of this disclosure. As described above, the encoder 400 may be implemented in a transmitter station 102, such as by providing a computer software program stored in a memory (e.g., memory 204). The computer software program may include machine instructions that, when executed by a processor (such as processor 202), cause the transmitter station 102 to... Figure 4 The video data is encoded in the manner described herein. The encoder 400 can also be implemented as dedicated hardware included, for example, in the transmitter station 102. In a particularly desirable implementation, the encoder 400 is a hardware encoder.

[0049] Encoder 400 has the following stages for performing various functions in the forward path (shown by solid connecting lines) to produce an encoded or compressed bitstream 420 using video stream 300 as input: intra / inter-frame prediction stage 402, transform stage 404, quantization stage 406, and entropy coding stage 408. Encoder 400 may also include a reconstruction path (shown by dashed connecting lines) for reconstructing frames used for encoding future blocks. Figure 4 In the encoder 400, the following stages are used to perform various functions in the reconstruction path: dequantization stage 410, inverse transform stage 412, reconstruction stage 414, and loop filtering stage 416. Other structural variations of the encoder 400 can be used to encode the video stream 300.

[0050] When video stream 300 is presented for encoding, corresponding adjacent frames 304, such as frame 306, can be processed in blocks. At the intra-frame / inter-frame prediction level 402, the corresponding blocks can be encoded using intra-frame prediction (also known as intra prediction) or inter-frame prediction (also known as inter prediction). In either case, prediction blocks can be formed. In the case of intra-frame prediction, prediction blocks can be formed from samples that have been previously encoded and reconstructed in the current frame. In the case of inter-frame prediction, prediction blocks can be formed from samples in one or more previously constructed reference frames.

[0051] Next, the prediction block can be subtracted from the current block at the intra / inter-frame prediction stage 402 to produce a residual block (also known as the residual). The transform stage 404 uses a block-based transform to transform the residual into transform coefficients, for example, in the frequency domain. The quantization stage 406 uses a quantizer value or quantization level to convert the transform coefficients into discrete quantum values, referred to as quantized transform coefficients. For example, the transform coefficients can be divided by the quantizer value and truncated.

[0052] The quantized transform coefficients are then entropy encoded by entropy coding level 408. The entropy-encoded coefficients, along with other information for decoding the block (which may include, for example, syntactic elements indicating the prediction type, transform type, motion vector, quantizer value, or similar), are then output to a compressed bitstream 420. The compressed bitstream 420 can be formatted using various techniques, such as variable-length codec (VLC) or arithmetic codec. The compressed bitstream 420 may also be referred to as an encoded video stream or an encoded video bitstream, and the terms will be used interchangeably herein.

[0053] The reconstruction path (shown by the dashed connection line) can be used to ensure encoder 400 and (see below for details) Figure 5 The decoder 500 (described below) uses the same reference frame to decode the compressed bitstream 420. The reconstruction path is performed in conjunction with (see below for details). Figure 5 Similar functionalities occur during the decoding process (described below), including dequantizing the quantized transform coefficients at dequantization stage 410 and performing an inverse transform on the dequantized transform coefficients at inverse transform stage 412 to produce a derived residual block (also referred to as the derived residual). At reconstruction stage 414, the predicted block predicted at intra / inter-frame prediction stage 402 can be added to the derived residual to create a reconstructed block. Loop filtering stage 416 can be applied to the reconstructed block to reduce distortion, such as blocking artifacts.

[0054] Other variations of encoder 400 can be used to encode the compressed bitstream 420. In some implementations, for certain blocks or frames, a non-transform-based encoder can directly quantize the residual signal without the transform stage 404. In some implementations, the encoder may have a quantization stage 406 and a dequantization stage 410 combined in a common stage.

[0055] Figure 5 This is a block diagram of a decoder 500 according to an implementation of this disclosure. The decoder 500 can be implemented in the receiving station 106, for example, by providing a computer software program stored in memory 204. The computer software program may include machine instructions that, when executed by a processor (such as processor 202), cause the receiving station 106 to... Figure 5 The video data is decoded in the manner described herein. The decoder 500 can also be implemented in hardware included in, for example, a transmitter station 102 or a receiver station 106.

[0056] Similar to the reconstruction path of encoder 400 discussed above, in one example, decoder 500 includes the following stages for performing various functions to produce output video stream 516 from compressed bitstream 420: entropy decoding stage 502, dequantization stage 504, inverse transform stage 506, intra / inter-frame prediction stage 508, reconstruction stage 510, loop filtering stage 512, and post-filtering stage 514. Other structural variations of decoder 500 can be used to decode compressed bitstream 420.

[0057] When the compressed bitstream 420 is presented for decoding, the data elements within the compressed bitstream 420 can be decoded by the entropy decoding stage 502 to produce a quantized set of transform coefficients. The dequantization stage 504 dequantizes the quantized transform coefficients (e.g., by multiplying the quantized transform coefficients by a quantizer value), and the inverse transform stage 506 performs an inverse transform on the dequantized transform coefficients to produce a derived residual, which can be the same as the derived residual created by the inverse transform stage 412 in the encoder 400. Using the header information decoded from the compressed bitstream 420, the decoder 500 can use the intra / inter-frame prediction stage 508 to create a prediction block identical to the prediction block previously created in the encoder 400 (e.g., at the intra / inter-frame prediction stage 402).

[0058] At reconstruction stage 510, predicted blocks can be added to the derived residuals to create reconstructed blocks. Loop filtering stage 512 can be applied to the reconstructed blocks to reduce blocking artifacts. Other filters can be applied to the reconstructed blocks. In this example, post-filtering stage 514 is applied to the reconstructed blocks to reduce blocking distortion, and the result is output as output video stream 516. Output video stream 516 can also be referred to as decoded video stream, and the terms will be used interchangeably herein. Other variations of decoder 500 can be used to decode compressed bitstream 420. In some implementations, decoder 500 may produce output video stream 516 without post-filtering stage 514, or otherwise omit post-filtering stage 514.

[0059] As initially mentioned, adaptive clipping can be used to keep pixel values ​​within a range. The value ranges of the luma and chroma color components can be signaled separately at the picture level and applied at different points in the reconstruction process at the encoder and decoder. For example, different points may occur after prediction at intra / inter-frame prediction stages 402, 508, reconstruction stages 414, 510, and loop filtering stages 416, 512. In some implementations of adaptive clipping, only the value range of the luma component is signaled, and clipping can be applied at the same points or different points (such as before and after loop filtering stages 416, 512). For example, in video signals conforming to the ITU-R BT. 2020 specification, only luma code values ​​between 64 and 940 are allowed for 10-bit narrow-range video. In either case (only the value range of luma or the value range of all color components), signaling is costly, especially since clipping is not required in all cases.

[0060] Figure 6 This is a flowchart of a technique 600 for video encoding and decoding using adaptive range limiting. Technique 600 can be implemented as, for example, software that can be executed by a computing device such as transmitter 102 or receiver 106. The software program may include machine-readable instructions that can be stored in a memory such as memory 204 or auxiliary memory 214, and when executed by a processor such as processor 202, can cause the computing device to execute technique 600. Technique 600 can be implemented at least partially in the reconstruction stage of the encoder and / or the reconstruction path of the decoder. Technique 600 can be implemented using dedicated hardware or firmware. Multiple processors, memories, or both can be used.

[0061] At operation 602, range boundary information is determined for at least one plane of the color data. The range boundary information can be the minimum, maximum, or both of one or more planes of the color data. For example, the range boundary information can be the minimum (also known as the lower limit) and maximum (also known as the upper limit) pixel values ​​of the luma plane, the minimum and maximum pixel values ​​of one or two chroma planes, or both. In some examples, the range boundary information may include the minimum or maximum pixel values ​​of the luma plane, the minimum or maximum pixel values ​​of one or two chroma planes, or both, and another value of the range may be inferred. For example, if a maximum value is transmitted, the minimum value may be inferred as 0. Other examples are possible.

[0062] At the decoder, at operation 602, range boundary information is determined from the first header of the multiple frames. That is, the range boundary information can be decoded from the first header (e.g., via entropy decoding). The first header of the multiple frames is a header applied to or usable by the multiple frames. In other words, the first header includes encoding / decoding parameters and other information used to encode at least some of the multiple frames and which can be used to decode those frames. The multiple frames can be any group of frames. For example, frames can include a group of pictures (GOP). In some implementations, the first header is signaled with a Sequence Parameter Set (SPS), Adaptive Parameter Set (APS), or Picture Parameter Set (PPS).

[0063] At operation 604, technique 600 determines the value of a clipping flag from a corresponding second header of at least a portion of a frame among multiple frames. The value of the clipping flag indicates whether range delimiting information is applied to that at least portion of the frame. That is, the second header is a header that applies to or can be used for at least a portion of a frame among multiple frames. For example, the second header can be a frame header of a frame among multiple frames, such that the encoding / decoding parameters of the frame header (such as range delimiting information) apply to or can be used for the entire frame. The second header can be a frame header for each frame among multiple frames. In this way, a clipping flag can be included for each frame, such that the value of the clipping flag indicates whether the corresponding frame has been encoded and should be decoded using range delimiting information. The second header can be below the frame level. For example, a corresponding second header can be included in a slice header or tile header, such that the frames among multiple frames are signaled to include multiple second headers and therefore multiple clipping flags. In other implementations, the clipping flag can be signaled at the region (a set of blocks) level, such as at the codec tree unit (CTU) or superblock level (such as a corresponding 128×128 pixel block that is divided into codec blocks for prediction), at the level of 2×2 CTU / superblock, at the CTU (or superblock) row, at the CTU (or superblock) column, etc.

[0064] At the decoder, at operation 604, the value of the clipping flag can be determined from the corresponding second header within the encoded bitstream. That is, the value of the clipping flag can be decoded from the second header (e.g., via entropy decoding). This value indicates whether the frame portion to which the clipping flag has been applied (a block, slice, tile, etc.) has been encoded and should be decoded using range limit information.

[0065] In some implementations, the value of the limiting flag can be inferred rather than signaled. For example, when the limiting flag is a binary flag, a value of 1 determined from the encoded bitstream can indicate that range limiting information is applied to the corresponding portion of the frame, and an omission indication value of 0 for the limiting flag means that range limiting information is not applied.

[0066] At operation 606, multiple frames are selectively decoded using the range limit information from the first header and the value of the clipping flag from the corresponding second header. For example, this could include decoding based on information about... Figure 5 The described technique decodes the corresponding frames on a block-by-block basis, while performing clipping before and / or after one or more stages of the reconstruction path as previously described. Therefore, selective decoding means that clipping can be performed on some, but not all, of multiple frames, and on at least some regions of one or more frames, as indicated by the values ​​of the corresponding clipping flags. Multiple frames can be selectively decoded in the order they are decoded.

[0067] At the encoder, the techniques used to select range bounding information (if any) for a set of multiple frames in a video sequence, and to select which (if any) portions of each frame in the set of multiple frames to assign a clipping flag, are not particularly limited. For example, this information can be arbitrarily determined or can be based on a specific standard / specification. Alternatively, techniques can be used to encode, decode, and reconstruct frames based on different parameters (such as different values ​​for range bounding information and clipping flags), and the results can be compared to determine the optimal set of parameters (e.g., the set of parameters that produces the lowest distortion, the fewest bits, or some combination thereof). For example, rate distortion calculations can be used.

[0068] Regardless of the chosen values ​​for the range limit information and the limiting flag, the encoder can encode the range limit information into the first header of the encoded bitstream. As previously described, the first header is applied to multiple frames of the video sequence, and the range limit information includes at least one of an upper or lower limit of the value of at least one plane of the color data. The encoder can also encode the value of the limiting flag into a corresponding second header of the encoded bitstream. Also as described above, the second header is applied to at least a portion of the frames in the multiple frames, and the value of the limiting flag indicates whether the range limit information is applied to that portion of the frame. Ultimately, the encoder uses the range limit information of the first header and the value of the limiting flag in the corresponding second header to selectively encode multiple frames. In an example where the output video should conform to the ITU-R BT.2020 standard, range limit information including a lower limit of 64 and an upper limit of 940 can be signaled for the luminance plane in the first header of the set of multiple frames forming the video sequence, and the limiting flag of all frames indicates the application of the range limit information.

[0069] As mentioned, Figure 6 The method, process, or technique 600 can be implemented in the reconstruction path of an encoder (such as encoder 400) or a decoder (such as decoder 500). Figure 7 This is a block diagram of another reconstruction path that can implement the techniques described herein (including technique 600). These techniques can occur at both the encoder and decoder reconstruction paths, therefore Figure 7 It represents a part of the encoder or decoder. Figure 7 The structure illustrates a modification to the reconstruction paths of encoder 400 and decoder 500, separating the luma reconstruction path 700 from the chroma reconstruction path 702 to functionally demonstrate the combined use of the teachings of this paper with luma mapping and chroma sampling (LMCS). Luma mapping (LM) can be performed alone or together with chroma scaling (CS). Figure 7 The input to the structure includes, for example, the entropy-decoded residual value and any encoding / decoding information required to reconstruct the image data (e.g., based on blocks and / or frames), such as encoding / decoding modes, filtering parameters, etc.

[0070] LM remaps the luminance code values, and CS allows for flexible adjustment between the luminance and chrominance signals. LM aims to improve encoding / decoding efficiency by redistributing the luminance code values ​​of the input video signal across the entire codeword range. For example, in a video signal conforming to the ITU-R BT. 2020 standard, only luminance code values ​​between 64 and 940 are allowed for a narrow 10-bit video range. This inefficient codeword utilization can be addressed through remapping, which allows for improved encoding / decoding performance. CS, when used, aims to rebalance the impact of luminance remapping on the relative luminance / chrominance encoding / decoding bit cost. Flexible adjustment between the luminance and chrominance signals can be achieved by enabling or disabling CS at, for example, the sequence or picture level, or by further adjusting chrominance scaling by applying a chrominance scaling offset (deltaCRS, which can be signaled in the header).

[0071] The LM maps the luminance code value (or simply luminance value) of the input video signal from the raw (unmapped) sample domain to the mapped sample domain. For example... Figure 7 As shown, the process in the mapped sample domain (gray shading patch) includes inverse quantization at dequantization level 710, inverse transform at inverse transform level 712, intra-frame prediction of brightness at intra-frame prediction level 714, and reconstruction at reconstruction level 716. Dequantization level 710 performs inverse quantization as described with respect to dequantization level 410 and dequantization level 504. Inverse transform level 712 performs inverse transform as described with respect to inverse transform level 412 and inverse transform level 506. Figure 4 and Figure 5 Unlike the intra / inter-frame prediction stages 402 and 508, intra-frame prediction stage 714 and inter-frame prediction stage 724 (discussed below) are shown separately due to their differences in processing. Reconstruction stage 716 reconstructs the luma block by summing the luma residual value from inverse transform stage 712 with the luma prediction value from intra-frame prediction stage 714 or inter-frame prediction stage 712, as discussed in more detail below.

[0072] In luminance reconstruction, the processes in the original sample domain include intra-loop filtering at loop filtering stage 720 (described below), inter-frame prediction at inter-frame prediction stage 724, and storage of the image in the decoded image buffer (DPB) 722. Loop filtering stage 720 can be similar to loop filtering stage 416 and loop filtering stage 512, and is discussed in more detail below. Inverse luminance mapping at inverse luminance mapping stage 718 maps luminance code values ​​from the mapped sample domain to the original sample domain, and forward luminance mapping at forward luminance mapping stage 726 maps luminance code values ​​from the original sample domain to the mapped sample domain.

[0073] In luminance reconstruction path 700, the following steps are performed for LM. First, inverse quantization and inverse transform are applied to the decoded luminance transform coefficients (e.g., obtained via entropy decoding) to produce a luminance residual (or residual) in the mapped sample domain. res The inverse quantization and inverse transform processes can be performed as described above for dequantization stages 410 and 504 and inverse transform stages 412 and 506, respectively.

[0074] Subsequently, at reconstruction level 716, by... res The predicted brightness value corresponding to the mapped sample domain pred The values ​​are summed to obtain the reconstructed luminance sample values ​​in the mapped sample domain. When an intra-frame mode is signaled for prediction of a portion of a frame (e.g., a block), the predicted luminance value is obtained directly by performing intra-frame prediction in the mapped sample domain at intra-frame prediction level 714. pred In contrast, when the inter-frame mode is signaled for prediction of that portion of the frame, the predicted brightness value Y in the original sample domain... pred First, a reference image from DPB 722 is obtained through motion compensation in the inter-frame prediction stage 724, and then a forward luminance mapping (discussed in more detail below) is applied by the forward luminance mapping stage 726 to produce luminance values ​​in the mapped sample domain. pred As mentioned above, the prediction process is performed in intra / inter-frame prediction levels 402 and 508.

[0075] At reconstruction level 716 pred and res The reconstructed values ​​obtained by addition are then inversely mapped (e.g., using inverse luminance mapping at inverse luminance mapping stage 718, as discussed in more detail below), and processed by loop filtering (using an in-loop filter) at loop filtering stage 720 before being stored in the original sample domain in DPB 722. The in-loop filter will be discussed in more detail below. The stored image is then used for inter-frame prediction of one or more frames following the current frame in the encoding / decoding sequence.

[0076] Without CS, the chroma reconstruction process occurs in the original sample domain as usual. As mentioned, CS is optional. For example, CS can be disabled for chroma patches with a region size of 4 samples or less.

[0077] When CS is executed, it includes the following steps performed in the chroma reconstruction path 702 in the original sample domain. First, the inverse quantization and inverse transform processes at dequantization stage 710 and inverse transform stage 714 are applied to the decoded chroma transform coefficients to produce the chroma residual scaling value C. resScale By using C resScale Multiply by the inverse scaling factor invScaleC to obtain the chromaticity residual (or residual) value C from chromaticity scaling level 730. res The inverse scaling factor invScaleC can be based on the chroma scaling offset deltaCRS (e.g., the signaling value) and the average reconstructed luminance value from the mapped sample domains of one or more adjacent codec units or blocks. To determine this. By setting the chromaticity residual value C at reconstruction level 732. res With the corresponding predicted chromaticity value C pred The reconstructed chromaticity sample values ​​C are obtained by summing them up. r The predicted chromaticity value C pred As described regarding the predicted luminance values, they are determined based on the prediction mode at the prediction levels (such as the intra / inter-frame prediction levels 402 and 508 described above). Similar to luminance reconstruction path 700, intra-frame prediction level 734 and inter-frame prediction level 736 within chroma reconstruction path 702 are not shown as combined, although they can be combined.

[0078] Following reconstruction at reconstruction stage 732, the reconstructed chroma samples (e.g., blocks, frames, etc.) can be filtered at loop filtering stage 738. The filtered frames are stored as images in a decoded picture buffer (DPB) 740. DPB 740 and DPB 722 can have the same structure.

[0079] In these examples, the in-loop filtering process can occur at one or more loop filtering stages in the encoder or decoder (such as...). Figure 4 416 or loop filter stage Figure 5 The loop filtering is performed at loop filter stage 512. Loop filter stages 720 and 738 can be individual or in combination. In either case, in-loop filtering can include filtering techniques such as deblocking (DBF), sample adaptive offset (SAO), adaptive loop filter (ALF), or a combination thereof. Broadly speaking, these filtering techniques are used to reduce distortion introduced by coding.

[0080] More specifically, deblocking filters are designed to smooth sharp edges between blocks (CTUs and / or CUs) of a frame. This is sometimes referred to as removing blockiness artifacts. Deblocking filters are typically applied to the entire reconstructed image. For example, rules, parameters, etc., used to determine whether and how pixel values ​​are modified at edges are established on a frame-level basis. For example, the strength of one of several (e.g., three) filter strengths can be signaled. Deblocking filters can be applied to 8×8 sample grids, 4×4 sample grids, or some other grid size. Deblocking filters can first apply horizontal filtering to the vertical edges of the image, then apply vertical filtering to the horizontal edges of the image, and vice versa. In some implementations of a codec (i.e., the encoder and decoder combination), deblocking filters are applied before filtering in other loops (if any), but this is not required.

[0081] SAO filtering also reduces distortion by compensating for pixel value offsets between reconstructed and original pixels. Generally, SAO filtering classifies the reconstructed pixels and adds a corresponding offset to each class or group of pixels. SAO can use different offsets per pixel sample within a region based on the sample classification, and the SAO parameters can vary between regions. The offset can be determined at the decoder using, for example, a lookup table based on histogram analysis performed by the encoder. The region size can be fixed to a codec tree block (CTB) (or codec tree unit). That is, the SAO parameters can be signaled at the CTB level.

[0082] More than one SAO type can be available. For example, there are Edge Offset (EO) and Band Offset (BO) types. An EO type can have multiple subtypes corresponding to processing along different directions. For example, an EO type can have four subtypes corresponding to processing along horizontal, vertical, 135-degree, and 45-degree directions. For the EO subtype, one of four different gradient modes is used to classify the pixel (also called a sample) by comparing its value to two of its neighbors. An offset is applied to the pixel in each of the four gradient modes. For pixel values ​​that do not match one of the gradient modes, no offset is applied. The BO type can be based on the sample value falling within multiple bands (such as the 32 bands used for values ​​from 0 to 255 in 8-bit encoding / decoding). An offset is applied to pixels in at least some of the bands, determined for the respective band. Each color component of the image can have its own SAO parameters. SAO filtering can increase edge sharpness and reduce ringing and pulse artifacts.

[0083] Filtering performed by ALF can be selectively performed before or preferably after SAO filtering. ALF can minimize the mean square error between the original image and the reconstructed image (such as the image output from SAO filtering) to improve the quality of the reconstruction. ALF is often referred to as adaptive because the coefficients can be signaled in the bitstream, so they can be designed to reflect the content and distortion of the reconstructed image. Filtering is typically performed by segmenting sample locations into categories and applying a filter (e.g., Wiener) on a category-based basis. The filter shape can differ for the luma and chroma components. For example, a 7 × 7 rhombus shape can be used for the luma component, and a 5 × 5 rhombus shape can be used for the chroma component.

[0084] Regarding classification within the ALF filter, corresponding sub-blocks of the luminance plane, such as 4 × 4 luminance blocks, can be classified based on their directionality and two-dimensional (2D) Laplacian activity. The 2D Laplacian activity uses calculated gradients in multiple directions on the reconstructed luminance samples, such as horizontal, vertical, 135-degree, and 45-degree directions. Up to 25 categories can be used. For each category used, the encoder signals the filter to the decoder.

[0085] In addition to this luma sub-block level filter adaptation, ALF can also combine superblock (CTB or CTU) level filter adaptation (CC-ALF). A luma block can use one of a filter set computed for the current slice or one computed for previously encoded / decoded slices. A luma block can also use one of multiple (e.g., 16) offline-trained filter sets. Within each luma CTB, which filter from the selected filter set should be applied to each 4 × 4 block is determined by the category computed for that block. Regarding chroma blocks, ALF can use only CTB-level filter adaptation. Each CTB can select one of several filters available for its chroma components. For example, up to eight filters can be used for the chroma components in a slice, allowing each CTB to select one of these filters.

[0086] The filtering described above is only an example. More, fewer, or different filters can be used for filtering in the encoder and decoder.

[0087] Adaptive range limiting can be combined with the LM process by using an adaptive range (e.g., a lower and upper limit for signaling the luminance component) to modify the values ​​of the inverse luminance map and the forward luminance samples. In some implementations, the values ​​of the forward luminance map are stored in a forward lookup table (also called the forward luminance map table) fwdLut, which maps values ​​in the original sample domain to values ​​in the mapped sample domain (e.g., at forward luminance map level 726). Similarly, the values ​​of the inverse luminance map can be stored in a reverse lookup table (also called the inverse luminance map table) invLut, which maps values ​​in the mapped sample domain to values ​​in the original sample domain (e.g., at inverse luminance map level 718). Therefore, modifying the values ​​of the forward luminance map can include modifying the forward luminance map table fwdLut according to the following formula: When y < y L At that time, fwdLut[y] = fwdLut[y] L ];or When y > y U At that time, fwdLut[y] = fwdLut[y] U ].

[0088] In the above text, y L and y U These are the lower and upper limits for signaling, respectively, and y is the value in the original domain.

[0089] Similarly, modifying the values ​​of the inverse brightness map can include modifying the inverse brightness map table invLut according to the following formula, where, The value in the mapped field: when < fwdLut[y L When ], invLut[ ] = y L ;or when > fwdLut[y U When ], invLut[ ] = y U .

[0090] When processing (e.g., decoding) a portion of a frame (e.g., the entire frame, a slice, etc.) is complete, the values ​​of the forward and / or reverse brightness maps should be restored, as the maps may or may not be modified for the next image / slice / part. For example, the lookup table should be reset to its unmodified version.

[0091] Furthermore, when used with LM (i.e., LM enabled), the adaptive range limiting described herein can be used in the mapped domain at certain levels. For example, in some implementations, when LM is enabled, after any prediction in the mapped domain (such as after intra-frame prediction, intra-block copy (IBC) prediction, and palette prediction), a lower bound fwdLut[yL] and an upper bound fwdLut[y] are performed. U Limiting can also be performed after adding predictions and residuals to form the reconstructed block / code / decoder unit. Note that this limiting can be achieved by simply using fwdLut[y]. L ] and fwdLut[y U Replace the limit to combine with the existing limit.

[0092] In the example, the final prediction of a block can be a combination of predictions from both the mapped domain value and the original domain value. Therefore, the prediction from the mapped domain (pixels forming one or more prediction blocks) can be clipped, while the prediction from the original domain can be forward transformed using fwdLut.

[0093] When LM is off, or for loop filtering (e.g., deblocking, SAO, ALF), the lower and upper limits of signaling notification can be used directly in the limiting by using limits based on the bit depth of the signaling notification (e.g., 8 bits, 10 bits, 12 bits, etc.).

[0094] When the limiting flag is signaled below the frame / image / slice level, such as for a region comprising a set of blocks (CTU, CTB), and the value of the limiting flag indicates that adaptive range limiting should be performed, the limiting limit applies only to the prediction and reconstruction of blocks within that region. The limiting limit does not apply to any filtering process.

[0095] The teachings in this paper can improve encoding / decoding efficiency by reducing the signaling burden of adaptive range limiting. Furthermore, processing requirements can be reduced by selectively encoding and decoding using adaptive range limiting at the frame level and lower. This allows adaptive range limiting to be omitted when it is not needed.

[0096] For ease of explanation, the techniques described herein are depicted and described as a corresponding series of steps or operations. However, the steps or operations according to this disclosure may occur in various sequences and / or concurrently. Additionally, other steps or operations not presented and described herein may be used. Furthermore, not all described steps or operations may be required to implement the techniques according to the disclosed subject matter.

[0097] The encoding and decoding aspects described above illustrate some examples of encoding and decoding techniques. However, it should be understood that when those terms are used in the claims, encoding and decoding may mean compressing data, decompressing data, transforming data, or any other processing or alteration of data.

[0098] The word “example” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as an “example” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, the use of the word “example” is intended to present a concept in a specific manner. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless otherwise specified or clearly indicated in the context, the statement “X comprises A or B” is intended to mean either of its natural inclusive arrangements. That is, if X comprises A; X comprises B; or X comprises both A and B, then “X comprises A or B” is satisfied under any of the above examples. Additionally, unless otherwise specified or clearly indicated in the context for the singular form, the article “a / an” used in this application and the appended claims should generally be interpreted as meaning “one or more.” Furthermore, the use of the terms “implementation” or “an implementation” throughout this disclosure is not intended to refer to the same embodiment or implementation, unless so described.

[0099] The transmitter 102 and / or receiver 106 (and the algorithms, methods, instructions, etc. stored thereon and / or executed thereon (including by encoder 400 and decoder 500)) can be implemented in hardware, software, or any combination thereof. Hardware may include, for example, a computer, intellectual property (IP) core, application-specific integrated circuit (ASIC), programmable logic array, optical processor, programmable logic controller, microcode, microcontroller, server, microprocessor, digital signal processor, or any other suitable circuitry. In the claims, the term "processor" should be understood to cover any of the foregoing hardware individually or in combination. The terms "signal" and "data" are used interchangeably. Furthermore, portions of transmitter 102 and receiver 106 do not necessarily have to be implemented in the same manner.

[0100] Furthermore, in one aspect, for example, the transmitting station 102 or the receiving station 106 may be implemented using a general-purpose computer or general-purpose processor having a computer program that, when executed, performs any of the corresponding methods, algorithms, and / or instructions described herein. Alternatively or alternatively, for example, a special-purpose computer / processor may be utilized, which may include additional hardware for performing any of the methods, algorithms, or instructions described herein.

[0101] Transmitting station 102 and receiving station 106 can be implemented, for example, on a computer in a video conferencing system. Alternatively, transmitting station 102 can be implemented on a server, and receiving station 106 can be implemented on a separate device (such as a handheld communication device). In this example, transmitting station 102 can use encoder 400 to encode content into an encoded video signal and transmit the encoded video signal to the communication device. The communication device can then use decoder 500 to decode the encoded video signal. Alternatively, the communication device can decode content stored locally on the communication device (e.g., content not transmitted by transmitting station 102). Other suitable transmission and reception implementations are available. For example, receiving station 106 can be a generally fixed personal computer instead of a portable communication device, and / or the device including encoder 400 can also include decoder 500.

[0102] Furthermore, all or part of the implementations of this disclosure may take the form of a computer program product accessible from, for example, a computer-usable or computer-readable medium. A computer-usable or computer-readable medium may be any means that can, for example, tangibly contain, store, communicate, or transmit a program for use by or in conjunction with any processor. The medium may be, for example, an electronic, magnetic, optical, electromagnetic, or semiconductor device. Other suitable media are also available.

[0103] The embodiments, implementations, and aspects described above are intended to facilitate easy understanding of this disclosure and are not intended to limit it. Rather, this disclosure is intended to cover various modifications and equivalent arrangements included within the scope of the appended claims, which should be given the broadest interpretation permitted under law to cover all such modifications and equivalent structures.

Claims

1. A method comprising: Range limit information is determined from a first header within the encoded bitstream, wherein the first header is a header applied to multiple frames of a video sequence, and the range limit information includes at least one of an upper or lower limit of the value of at least one plane of the color data. The value of a clipping flag is determined from a corresponding second header within the encoded bitstream, wherein the second header is a header applied to at least a portion of a frame among the plurality of frames, and the value of the clipping flag indicates whether the range limit information is applied to the at least that portion of the frame; and The plurality of frames are selectively decoded using the range limit information from the first header and the value of the clipping flag from the corresponding second header.

2. The method as described in claim 1, wherein, The first header sends a signal notification using a sequence parameter set, an adaptive parameter set, or an image parameter set.

3. The method as described in any one of claims 1 or 2, wherein, The second header is a frame header or a slice header.

4. The method according to any one of claims 1 to 3, wherein, Selectively decoding the plurality of frames includes reconstructing the first frame of the plurality of frames using a luminance mapping operation: Reconstruct the luminance blocks of the first frame in the mapped sample domain; The range limit information is used to modify the value of the inverse brightness mapping, wherein the inverse brightness mapping transforms the mapped brightness value from the mapped sample domain to the original sample domain; The modified inverse luminance mapping is used to transform the luminance values ​​of the luminance blocks in the first frame from the mapped sample domain to the original sample domain; and The first frame is stored in the original sample domain for use in inter-frame prediction.

5. The method of claim 4, comprising: After converting the brightness value, at least one in-loop filtering process is performed on the first frame.

6. The method of claim 4, comprising: The first frame is used to perform inter-frame prediction of the luma blocks in the second frame that follow the first frame in the decoding order; The range limit information is used to modify the value of the forward luminance mapping, wherein the forward luminance mapping converts the luminance code value in the original sample domain to the mapped sample domain; The modified forward brightness mapping is used to transform the prediction blocks generated by the inter-frame prediction from the original sample domain to the mapped sample domain; and The transformed prediction block is provided to the reconstruction process of the second frame.

7. The method of claim 6, comprising: The value of the forward luminance mapping is restored after the second frame is reconstructed.

8. The method of claim 6, wherein, Modifying the value of the forward luminance mapping includes modifying the forward luminance mapping table, which maps the value in the original sample domain to the value in the mapped sample domain.

9. The method according to any one of claims 4 to 8, wherein, Modifying the value of the inverse brightness mapping includes modifying the inverse brightness mapping table, which maps the values ​​in the mapped sample domain to the values ​​in the original sample domain.

10. The method of any one of claims 4 to 9, comprising: After converting the brightness value of the brightness block in the first frame, the value of the inverse brightness mapping is restored.

11. The method according to any one of claims 4 to 10, comprising: Chromaticity scaling is used to reconstruct the chroma blocks of the first frame in the original sample domain.

12. The method according to any one of claims 1 to 3, wherein, Selectively decoding the plurality of frames includes: Luminance mapping and chrominance scaling (LMCS) are used to reconstruct the luminance and chrominance blocks of at least one frame.

13. The method of claim 1, wherein, Selectively decoding the plurality of frames includes: The range limit information is used to modify the value of the inverse brightness mapping, wherein the inverse brightness mapping transforms the mapped brightness value from the mapped sample domain to the original sample domain. The range boundary information is used to modify the value of the forward luminance mapping, wherein the forward luminance mapping converts the luminance code value in the original sample domain to the mapped sample domain; and The range limit information is used in the mapped sample domain to perform amplitude limiting.

14. The method of claim 13, wherein, Using the range boundary information in the mapped sample domain to perform clipping includes performing clipping after at least one of the block prediction or the block reconstruction.

15. A method comprising: Range limit information is encoded into a first header within the encoded bitstream, wherein the first header is a header applied to multiple frames of a video sequence, and the range limit information includes at least one of an upper or lower limit of the value of at least one plane of the color data. The value of the clipping flag is encoded into a corresponding second header of the encoded bitstream, wherein the second header is a header applied to at least a portion of the frames among the plurality of frames, and the value of the clipping flag indicates whether the range limit information is applied to the at least portion of the frames; and The plurality of frames are selectively encoded using the range limit information of the first header and the value of the limiting flag of the corresponding second header.

16. An apparatus comprising a processor configured to perform the method according to any one of claims 1 to 14.

17. A non-transitory computer-readable storage medium storing an encoded bit stream, the encoded bit stream comprising: A first header, comprising range limit information, wherein the first header is applied to a plurality of frames of a video sequence, and the range limit information comprises at least one of an upper or lower limit of the value of at least one plane of color data; a second header, correspondingly comprising a value of a limiting flag, wherein the second header is applied to at least a portion of the frames among the plurality of frames, and the value of the limiting flag indicates whether the range limit information is applied to the at least that portion of the frame; and a plurality of frames, the plurality of frames being selectively encoded using the range limit information of the first header and the value of the limiting flag of the corresponding second header.