Cross-component offset filtering with downsampling filter

Through the cross-component offset filtering method, the video samples are adjusted using downsampling filters and cross-component offset filters, which solves the problem of large error in video encoding reconstruction in the prior art, improves video quality and reduces data demand.

CN120380752APending Publication Date: 2025-07-25TENCENT AMERICA LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480005590.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-05-09
Filing Date
2024-05-20
Publication Date
2025-07-25

AI Technical Summary

Technical Problem

The existing video encoding technology is difficult to effectively reduce reconstruction errors during the compression process, resulting in a decline in video quality.

Method used

The cross-component offset filtering method is adopted to generate downsampled samples of the first color component by applying a downsampling filter, and the samples are processed using the cross-component offset filter to determine the offset value, and the sample value of the second color component is adjusted.

Benefits of technology

Effectively reduces video reconstruction errors, improves video quality, and reduces data transmission and storage requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120380752A_ABST
    Figure CN120380752A_ABST
Patent Text Reader

Abstract

Various embodiments described herein include methods and systems for encoding and decoding a video. In one aspect, a video bitstream includes a current image frame and a first syntax element for a cross-component sample offset (CCSO) mode. The first syntax element indicates whether to generate a first sample offset of a first color sample of the current image frame based on at least one luminance sample. An electronic device identifies a first luminance sample co-located with a first color sample and at least one adjacent luminance sample of the first luminance sample. The first luminance sample and the at least one adjacent luminance sample are down-sampled to generate at least one down-sampled luminance sample for the CCSO mode. The electronic device determines a first sample offset for the first color sample based on the at least one downsampled luminance sample, and reconstructs the current image frame at least by adjusting the first color sample based on the first sample offset.
Need to check novelty before this filing date? Find Prior Art

Description

Related Applications

[0001] This application claims priority to U.S. Provisional Patent Application No. 63 / 545,885, entitled "Cross-Component Shift Filtering Methods with Downsampling Filters", filed on October 26, 2023, and is a continuation-in-part and claims priority to U.S. Patent Application No. 18 / 660,052, entitled "Cross-Component Shift Filtering with Downsampling Filters", filed on May 9, 2024, both of which are hereby incorporated by reference in their entireties. Technical Field

[0002] Embodiments of the present disclosure generally relate to video coding and decoding, including but not limited to systems and methods for loop filtering (e.g., cross-component shift filtering) of video data. Background Art

[0003] Digital video is supported by various electronic devices such as digital televisions, laptop or desktop computers, tablet computers, digital cameras, digital recording devices, digital media players, video game consoles, smart phones, video teleconferencing devices, video streaming devices, etc. Electronic devices transmit and receive digital video data over a communication network or otherwise convey digital video data, and / or store digital video data on a storage device. Due to the limited bandwidth capacity of the communication network and the limited memory resources of the storage device, video coding can be used to compress the video data according to at least one video coding standard before transmitting or storing the video data. Video coding and decoding can be performed by hardware and / or software on a server providing cloud services or on an electronic / client device.

[0004] Video coding typically uses prediction methods that exploit the redundancy inherent in video data (e.g., inter-frame prediction, intra-frame prediction, etc.). Video coding aims to compress video data into a form that uses a lower bitrate while avoiding or minimizing degradation of video quality. A variety of video codec standards have been developed. For example, High Efficiency Video Coding (HEVC / H.265) is a video compression standard designed as part of the MPEG-H project. The ITU-T and ISO / IEC published the HEVC / H.265 standard in 2013 (version 1), 2014 (version 2), 2015 (version 3), and 2016 (version 4). Versatile Video Coding (VVC / H.266) is a video compression standard intended to be the successor to HEVC. The ITU-T and ISO / IEC published the VVC / H.266 standard in 2020 (version 1) and 2022 (version 2). Alliance for Open Media Video 1 (AV1) is an open video coding format designed as an alternative to HEVC. On January 8, 2019, the approved version 1.0.0 with errata 1 was released. SUMMARY OF THE INVENTION

[0005] As described above, encoding (compression) reduces the bandwidth and / or storage space requirements. As described in detail below, lossless compression and lossy compression can be employed. Lossless compression is a technique in which an exact copy of the original signal can be reconstructed from the compressed original signal via a decoding process. Lossy compression is an encoding / decoding process in which the original video information is not fully preserved during encoding and cannot be fully recovered during decoding. When lossy compression is used, the reconstructed signal may not be identical to the original signal, but the distortion between the original signal and the reconstructed signal is small enough for the reconstructed signal to be useful for the intended application. The amount of tolerable distortion depends on the application. For example, users of some consumer video streaming applications can tolerate higher distortion than users of movie or television broadcast applications. The compression ratio achievable through a particular coding algorithm can be selected or adjusted to reflect various distortion tolerances: higher tolerable distortion generally allows for coding algorithms that produce higher losses and higher compression ratios.

[0006] The present disclosure describes methods, systems, and non-transitory computer-readable storage media for applying a loop filter to video (image) compression. A video codec includes multiple functional modules for at least one of the following: intra prediction / inter prediction, transform coding, quantization, entropy coding, and in-loop filtering. The in-loop filtering technique is applied to adjust the reconstructed picture samples to further reduce the reconstruction error. A cross-component offset filtering method is implemented to derive an offset value by applying the co-located reconstructed samples of a first color component and associated adjacent reconstructed samples, and adding the offset value to the current sample of a second color component, thereby adjusting the reconstructed value of the current sample. An example of the first color component is the luminance color component, and an example of the second color component is the chrominance color component. In some embodiments, the first color component and the second color component correspond to the same color component, for example, luminance samples.

[0007] In various embodiments of the present application, a downsampling filter (also referred to as a chrominance prediction from luminance filter) is applied to the samples of a first color component to generate downsampled samples of the first color component, and the downsampled samples are processed by a cross-component offset filter to determine an offset value to be added to the samples of a second color component. For example, the downsampled luminance samples are applied to generate an offset value for a first luminance sample or a first chrominance sample co-located with the first luminance sample. The filter type of the downsampling filter is defined by at least one filter coefficient, filter shape, and at least one filter tap position.

[0008] According to some embodiments, a method of video decoding is provided. The method includes receiving a video bitstream including a current image frame, and the video bitstream includes a first syntax element for a cross-component sample offset (CCSO) mode, the first syntax element indicating whether a first sample offset of a first color sample of the current image frame is generated based on at least one luminance sample. The method further includes identifying a first luminance sample co-located with the first color sample and at least one adjacent luminance sample of the first luminance sample. The method further includes downsampling the first luminance sample and the at least one adjacent luminance sample to generate at least one downsampled luminance sample for the CCSO mode, determining a first sample offset of the first color sample based on the at least one downsampled luminance sample, and reconstructing the current image frame at least by adjusting the first color sample based on the first sample offset.

[0009] According to some embodiments, a method of video encoding is provided. The method includes receiving video data including a current picture frame, encoding the current picture frame, and determining that a cross-component sample offset (CCSO) mode is enabled to generate a first sample offset of a first color sample of the current picture frame based on at least one luma sample. In the CCSO mode, the first sample offset of the first color sample is determined based on at least one downsampled luma sample generated by downsampling the first luma sample and at least one neighboring luma sample, and the first luma sample is co-located with the first color sample. The method further includes transmitting the encoded current picture frame via a video bitstream and signaling a first syntax element via the video bitstream to indicate that the CCSO mode is applied to reconstruct the first color sample co-located with the first luma sample based on the first sample offset.

[0010] According to some embodiments, a method of bitstream conversion is provided. The method includes obtaining a source video sequence including a current picture frame and performing a conversion between the source video sequence and a video bitstream. The video bitstream includes the current picture frame and a first syntax element for a cross-component sample offset (CCSO) mode, the first syntax element indicating whether to generate a first sample offset of a first color sample of the current picture frame based on at least one luma sample. The first sample offset of the first color sample is determined based on at least one downsampled luma sample generated by downsampling the first luma sample and at least one neighboring luma sample, and the first luma sample is co-located with the first color sample.

[0011] In some embodiments, the video bitstream further includes a first high-level syntax element for a type of downsampling filter applied to downsample the first luma sample and at least one neighboring luma sample to generate at least one downsampled luma sample. The first high-level syntax element is signaled in one of the following: sequence header, picture header, sub-picture header, slice header, tile header, and super-block header.

[0012] According to some embodiments, a computing system such as a streaming system, a server system, a personal computer system, or other electronic device is provided. The computing system includes a control circuit and a memory storing at least one set of instructions. The at least one set of instructions includes instructions for performing any of the methods described herein. In some embodiments, the computing system includes an encoder component and / or a decoder component.

[0013] According to some embodiments, a non-transitory computer-readable storage medium is provided. The non-transitory computer-readable storage medium stores at least one set of instructions for execution by a computing system. The at least one set of instructions includes instructions for performing any of the methods described herein.

[0014] Accordingly, apparatuses and systems having methods for video encoding and decoding are disclosed. Such methods, apparatuses, and systems may supplement or replace conventional methods, devices, and systems for video encoding and decoding.

[0015] The features and advantages described in the specification are not necessarily all-inclusive, and in particular, given the figures, specification, and claims provided in this disclosure, some additional features and advantages will be apparent to those of ordinary skill in the art. Additionally, it should be noted that the language used in the specification is mainly selected for readability and guidance purposes and is not necessarily selected to depict or limit the subject matter described herein. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] For a more detailed understanding of the present disclosure, reference may be made to the features of various embodiments for a more specific description, some of which are illustrated in the figures. However, the figures only illustrate the relevant features of the present disclosure and are not necessarily considered restrictive, as those skilled in the art will understand after reading the present disclosure that the specification may allow other effective features.

[0017] Figure 1 A block diagram of an example communication system according to some embodiments is shown.

[0018] Figure 2A A block diagram of example elements of an encoder component according to some embodiments is shown.

[0019] Figure 2B A block diagram of example elements of a decoder component according to some embodiments is shown.

[0020] Figure 3 A block diagram of an example server system according to some embodiments is shown.

[0021] Figure 4 A flowchart of an example process for applying in-loop filtering in video decoding according to some embodiments is shown.

[0022] Figure 5 A flowchart of another example process for applying in-loop filtering in video decoding according to some embodiments is shown.

[0023] Figure 6 A flowchart of a method for encoding and decoding video according to some embodiments is shown.

[0024] In accordance with common practice, the various features illustrated in the figures are not necessarily drawn to scale, and throughout the specification and figures, the same reference numerals may be used to denote the same features. DETAILED DESCRIPTION

[0025] The present disclosure describes methods, systems, and non-transitory computer-readable storage media for applying a loop filter to video (image) compression. Intra-loop filtering techniques are applied to adjust reconstructed picture samples to further reduce reconstruction error. A cross-component offset filtering method is implemented to derive an offset value by applying co-located reconstructed samples of a first color component and associated neighboring reconstructed samples, and adding the offset value to a current sample of a second color component to adjust the reconstructed value of the current sample. In various embodiments of the present application, a decoder receives a video bitstream including a current image frame from an encoder, applies a downsampling filter to samples of a first color component to generate downsampled samples of the first color component, and the downsampled samples are processed by a cross-component offset filter to determine an offset value to be added to samples of the second color component. For example, downsampled luminance samples are applied to generate an offset value for a first luminance sample or a first chrominance sample co-located with the first luminance sample.

[0026] More specifically, in some embodiments, a video decoder identifies a first luminance sample and at least one neighboring luminance sample of the first luminance sample based on a filter shape. The decoder may determine at least one difference between the at least one neighboring luminance sample and the first luminance sample. For example, a scalar quantizer is used to quantize the identified luminance samples or the at least one difference to generate at least one quantization value. The scalar quantizer may be specified by a quantization interval (e.g., a range of values assigned to the same integer) and a quantization level (e.g., an integer value assigned to the quantization interval). For example, a classifier classifies a first color sample based on the at least one quantization value to determine a first sample offset of the first color sample. The first color sample is adjusted based on the first sample offset of the first color sample so that the current image frame can be reconstructed. Additionally, in some embodiments, the decoder uses downsampled luminance samples to generate an offset value for the first color sample.

[0027] Figure 1 is a block diagram illustrating a communication system 100 according to some embodiments. The communication system 100 includes a source device 102 and a plurality of electronic devices 120 (e.g., electronic devices 120-1 to electronic devices 120-m) communicatively coupled to each other via at least one network. In some embodiments, the communication system 100 is a streaming system, for example, used with video-enabled applications such as video conferencing applications, digital television applications, and media storage devices and / or distribution applications.

[0028] The source device 102 includes a video source 104 (e.g., a camera component or a media storage device) and an encoder component 106. In some embodiments, the video source 104 is a digital camera (e.g., configured to create an uncompressed video sample stream). The encoder component 106 generates at least one encoded video bitstream from the video stream. Compared with the video stream from the video source 104, the encoded video bitstream generated by the encoder component 106 may have a high data volume. Since the encoded video bitstream 108 has a lower data volume (less data) compared with the video stream from the video source, the encoded video bitstream 108 requires less bandwidth to transmit and less storage space to store compared with the video stream from the video source 104. In some embodiments, the source device 102 does not include the encoder component 106 (e.g., configured to transmit uncompressed video to at least one network 110).

[0029] The at least one network 110 represents any number of networks for transmitting information between the source device 102, the server system 112, and / or the electronic device 120, including for example wired (wired) and / or wireless communication networks. The at least one network 110 may exchange data in a circuit-switched and / or packet-switched channel. Representative networks include telecommunication networks, local area networks, wide area networks, and / or the Internet.

[0030] The at least one network 110 includes a server system 112 (e.g., a distributed / cloud computing system). In some embodiments, the server system 112 is or includes a streaming server (e.g., configured to store and / or distribute video content such as an encoded video stream from the source device 102). The server system 112 includes an encoder component 114 (e.g., configured to encode and / or decode video data). In some embodiments, the encoder component 114 includes an encoder component and / or a decoder component. In various embodiments, the encoder component 114 is instantiated as hardware, software, or a combination thereof. In some embodiments, the encoder component 114 is configured to decode the encoded video bitstream 108 and re-encode the video data using different coding standards and / or methods to generate encoded video data 116. In some embodiments, the server system 112 is configured to generate multiple video formats and / or encodings from the encoded video bitstream 108. In some embodiments, the server system 112 serves as a Media Aware Network Element (MANE). For example, the server system 112 may be configured to trim the encoded video bitstream 108 to crop potentially different bitstreams for at least one of the electronic devices 120. In some embodiments, the MANE is provided separately from the server system 112.

[0031] The electronic device 120-1 includes a decoder component 122 and a display 124. In some embodiments, the decoder component 122 is configured to decode the encoded video data 116 to generate an output video stream that can be rendered on a display or other type of rendering device. In some embodiments, at least one of the electronic devices 120 does not include a display component (e.g., is communicatively coupled to an external display device and / or includes a media storage device). In some embodiments, the electronic device 120 is a streaming client. In some embodiments, the electronic device 120 is configured to access the server system 112 to obtain the encoded video data 116.

[0032] The source device and / or the multiple electronic devices 120 are sometimes referred to as "terminal devices" or "user devices". In some embodiments, at least one of the source device 102 and / or the electronic devices 120 is an instance of a server system, a personal computer, a portable device (e.g., a smart phone, a tablet, or a laptop), a wearable device, a video conferencing device, and / or other types of electronic devices.

[0033] In an example operation of the communication system 100, the source device 102 transmits the encoded video bitstream 108 to the server system 112. For example, the source device 102 can encode a picture stream captured by the source device. The server system 112 receives the encoded video bitstream 108 and can decode and / or encode the encoded video bitstream 108 using the encoder component 114. For example, the server system 112 can apply an encoding that is more optimized for network transmission and / or storage to the video data. The server system 112 can transmit the encoded video data 116 (e.g., at least one encoded video bitstream) to at least one of the electronic devices 120. Each electronic device 120 can decode the encoded video data 116 and optionally display the video pictures.

[0034] Figure 2AFIG. is a block diagram illustrating example elements of an encoder component 106 according to some embodiments. The encoder component 106 receives video data (e.g., a source video sequence) from a video source 104. In some embodiments, the encoder component includes a receiver (e.g., transceiver) component configured to receive the source video sequence. In some embodiments, the encoder component 106 receives the video sequence from a remote video source (e.g., a video source that is a component of a device different from the encoder component 106). The video source 104 may provide the source video sequence in the form of a digital video sample stream, which may have any suitable bit depth (e.g., 8 bits, 10 bits, or 12 bits), any color space (e.g., BT.601 Y CrCb or RGB), and any suitable sampling structure (e.g., Y CrCb 4:2:0 or Y CrCb 4:4:4). In some embodiments, the video source 104 is a storage device that stores previously captured / prepared video. In some embodiments, the video source 104 is a camera that captures local image information as a video sequence. The video data may be provided as a plurality of individual pictures that, when viewed in sequence, produce motion. The pictures themselves may be organized as a spatial array of pixels, where each pixel may include at least one sample depending on the sampling structure, color space, etc. used. A person of ordinary skill in the art can readily understand the relationship between pixels and samples.

[0035] The encoder component 106 is configured to encode and / or compress pictures of the source video sequence into an encoded video sequence 216 in real time or under other time constraints required by the application. In some embodiments, the encoder component 106 is configured to perform a conversion between the source video sequence and a bitstream of visual media data (e.g., a video bitstream). Implementing an appropriate encoding speed is a function of the controller 204. In some embodiments, the controller 204 controls other functional units as described below and is functionally coupled to other functional units. Parameters set by the controller 204 may include parameters related to rate control (e.g., picture skip, quantizer, and / or λ value of rate distortion optimization techniques), picture size, group of pictures (GOP) layout, maximum motion vector search range, etc. A person of ordinary skill in the art can readily identify other functions of the controller 204 as they may relate to the encoder component 106 optimized for a particular system design.

[0036] In some embodiments, the encoder component 106 is configured to operate in an encoding loop. In a simplified example, the encoding loop includes a source encoder 202 (e.g., responsible for creating symbols, such as a symbol stream, based on input pictures and reference pictures to be encoded) and a (local) decoder 210. The decoder 210 reconstructs the symbols in a manner similar to a (remote) decoder to create sampled data (when the compression between the symbols and the encoded video bitstream is lossless). The reconstructed sample stream (sample data) is input into the reference picture memory 208. Since the decoding of the symbol stream results in bit-exact results independent of the decoder location (local or remote), the content in the reference picture memory 208 is also bit-exact between the local encoder and the remote encoder. In this way, the prediction part of the encoder interprets the same sample values as the sample values interpreted by the decoder during prediction as reference picture samples. The principle of reference picture synchronization (and the resulting drift, if synchronization cannot be maintained, e.g., due to channel errors) is known to those of ordinary skill in the art.

[0037] The operation of the decoder 210 can be the same as that of a remote decoder, such as the decoder component 122, which will be described in detail below in conjunction with Figure 2B However, briefly referring to Figure 2B , since the symbols are available and the symbol encoding / decoding of the entropy encoder 214 and the parser 254 for the encoded video sequence can be lossless, the entropy decoding part of the decoder component 122, including the buffer memory 252 and the parser 254, may not be fully implemented in the local decoder 210.

[0038] Except for the parsing / entropy decoding present in the decoder, the decoder techniques described herein can exist in the corresponding encoder in a substantially identical functional form. Therefore, the disclosed subject matter focuses on decoder operations. The description of encoder techniques can be abbreviated since they are the inverse of the decoder techniques described in detail.

[0039] As part of its operation, the source encoder 202 can perform motion-compensated predictive coding, which predicts and encodes an input frame by referring to at least one previously encoded frame designated as a reference frame in the video sequence. In this way, the encoding engine 212 encodes the difference between a pixel block of the input frame and a pixel block of the reference frame that can be selected as the prediction reference for the input frame. The controller 204 can manage the encoding operations of the source encoder 202, including, for example, setting parameters and subgroups of parameters for encoding video data.

[0040] The decoder 210 decodes the encoded video data of a frame that can be designated as a reference frame based on the symbols created by the source encoder 202. The operation of the encoding engine 212 can advantageously be a lossy process. When in a video decoder ( Figure 2AWhen decoding the encoded video data at a location not shown, the reconstructed video sequence may be a copy of the source video sequence with some errors. The decoder 210 replicates the decoding process that may be performed on the reference frames by a remote video decoder and may cause the reconstructed reference frames to be stored in the reference picture memory 208. In this way, the encoder component 106 locally stores a copy of the reconstructed reference frames with common content as the reconstructed reference frames (without transmission errors) that would be obtained by the remote video decoder.

[0041] The predictor 206 may perform a prediction search on the encoding engine 212. That is, for a new frame to be encoded, the predictor 206 may search the reference picture memory 208 for sample data (as candidate reference pixel blocks) or certain metadata, such as reference picture motion vectors, block shapes, etc., which can be used as an appropriate prediction reference for the new picture. The predictor 206 may operate on the sample blocks block by block to find an appropriate prediction reference. As determined by the search results obtained by the predictor 206, the input picture may have a prediction reference drawn from a plurality of reference pictures stored in the reference picture memory 208.

[0042] The outputs of all the above functional units may be entropy encoded in the entropy encoder 214. The entropy encoder 214 converts the symbols generated by the various functional units into an encoded video sequence by losslessly compressing the symbols according to techniques known to those of ordinary skill in the art (e.g., Huffman coding, variable length coding, and / or arithmetic coding).

[0043] In some embodiments, the output of the entropy encoder 214 is coupled to a transmitter. The transmitter may be configured to buffer the encoded video sequences created by the entropy encoder 214 to prepare them for transmission over the communication channel 218, which may be a hardware / software link to a storage device storing the encoded video data. The transmitter may be configured to merge the encoded video data from the source encoder 202 with other data to be transmitted, such as encoded audio data and / or auxiliary data streams (not shown in the source). In some embodiments, the transmitter may send additional data along with the encoded video. The source encoder 202 may include such data as part of the encoded video sequence. The additional data may include temporal / spatial / SNR enhancement layers, other forms of redundant data, such as redundant pictures and slices, supplementary enhancement information (SEI) messages, visual usability information (VUI) parameter set fragments, etc.

[0044] The controller 204 can manage the operation of the encoder component 106. During encoding, the controller 204 can assign a specific coded picture type to each coded picture, which may affect the coding techniques applied to the corresponding picture. For example, a picture can be designated as an intra picture (I picture), a predictive picture (P picture), or a bi-predictive picture (B picture). Intra pictures can be encoded and decoded without using any other frames in the sequence as a prediction source. Some video codecs allow different types of intra pictures, including for example, independent decoder refresh (IDR) pictures. Those of ordinary skill in the art are aware of these variations of I pictures and their respective applications and characteristics, and thus will not be repeated here. Predictive pictures can be encoded and decoded using intra prediction or inter prediction, using at most one motion vector and reference index to predict the sample values of each block. Bi-predictive pictures can be encoded and decoded using intra prediction or inter prediction, using at most two motion vectors and reference indexes to predict the sample values of each block. Similarly, multiple predictive pictures can be used to reconstruct a single block using more than two reference pictures and associated metadata.

[0045] Source pictures can generally be spatially subdivided into multiple sample blocks (e.g., each sample block is 4×4, 8×8, 4×8, or 16×16) and encoded block by block. Blocks can be encoded predictively with reference to other (already encoded) blocks determined by the coding assignment applied to the corresponding picture of the block. For example, blocks of an I picture can be encoded non-predictively or predictively with reference to already encoded blocks of the same picture (spatial prediction or intra prediction). Pixel blocks of P pictures can be encoded non-predictively with reference to one previously encoded reference picture, either through spatial prediction or temporal prediction. Blocks of B pictures can be encoded non-predictively with reference to one or two previously encoded reference pictures, either through spatial prediction or through temporal prediction.

[0046] Video can be captured as multiple source pictures (video pictures) in a time sequence. Intra prediction (usually abbreviated as intra prediction) exploits the spatial correlation within a given picture, while inter prediction exploits the (temporal or other) correlation between pictures. In one example, a specific picture (referred to as the current picture) in encoding / decoding is divided into blocks. When a block in the current picture is similar to a reference block in a previously encoded and still buffered reference picture in the video, the block in the current picture can be encoded with a vector called a motion vector. The motion vector points to the reference block in the reference picture and, in the case of using multiple reference pictures, can have a third dimension identifying the reference picture.

[0047] The encoder component 106 may perform encoding operations according to a predefined video encoding technique or standard (such as any described herein). In its operation, the encoder component 106 may perform various compression operations, including predictive encoding operations that exploit the temporal and spatial redundancies in the input video sequence. Accordingly, the encoded video data may conform to the syntax specified by the video encoding technique or standard being used.

[0048] Figure 2B FIG. is a block diagram illustrating example elements of a decoder component 122 according to some embodiments. Figure 2B The decoder component 122 in is coupled to the channel 218 and the display 124. In some embodiments, the decoder component 122 includes a transmitter coupled to the loop filter 256 and configured to transmit data to the display 124 (e.g., via a wired or wireless connection).

[0049] In some embodiments, the decoder component 122 includes a receiver coupled to the channel 218 and configured to receive data from the channel 218 (e.g., via a wired or wireless connection). The receiver may be configured to receive at least one encoded video sequence to be decoded by the decoder component 122. In some embodiments, the decoding of each encoded video sequence is independent of other encoded video sequences. Each encoded video sequence may be received from the channel 218, which may be a hardware / software link to a storage device storing the encoded video data. The receiver may receive the encoded video data with other data (e.g., encoded audio data and / or auxiliary data streams), which may be forwarded to their respective consuming entities (not depicted). The receiver may separate the encoded video sequences from the other data. In some embodiments, the receiver receives additional (redundant) data along with the encoded video. The additional data may be included as part of at least one encoded video sequence. The decoder component 122 may use the additional data to decode the data and / or more accurately reconstruct the original video data. The additional data may be in the form of, for example, temporal, spatial, or SNR enhancement layers, redundant slices, redundant pictures, forward error correction codes, etc.

[0050] According to some embodiments, the decoder component 122 includes a buffer memory 252, a parser 254 (sometimes also referred to as an entropy decoder), a scaler / inverse transform unit 258, an intra prediction unit 262, a motion compensation prediction unit 260, an aggregator 268, a loop filter unit 256, a reference picture memory 266, and a current picture memory 264. In some embodiments, the decoder component 122 is implemented as an integrated circuit, a series of integrated circuits, and / or other electronic circuits. The decoder component 122 may be implemented at least partially in software.

[0051] The buffer memory 252 is coupled between the channel 218 and the parser 254 (e.g., to counter network jitter). In some embodiments, the buffer memory 252 is separate from the decoder component 122. In some embodiments, a separate buffer memory is provided between the output of the channel 218 and the decoder component 122. In some embodiments, in addition to the buffer memory 252 inside the decoder component 122 (e.g., which is configured to handle playback timing), a separate buffer memory is provided outside the decoder component 122 (e.g., to counter network jitter). When receiving data from a store-and-forward device with sufficient bandwidth and controllability or from an isochronous network, the buffer memory 252 may not be needed, or the buffer memory 252 can be small. For use on a best-effort packet network such as the Internet, the buffer memory 252 may be required, which can be relatively large and / or have an adaptive size and can be implemented at least partially in an operating system or a similar element outside the decoder component 122.

[0052] The parser 254 is configured to reconstruct symbols 270 from the encoded video sequence. The symbols can include, for example, information for managing the operation of the decoder component 122 and / or information for controlling a rendering device such as the display 124. The control information for at least one rendering device can be in the form of, for example, a supplementary enhancement information (SEI) message or a video usability information (VUI) parameter set segment (not depicted). The parser 254 parses (entropy decodes) the encoded video sequence. The encoding of the encoded video sequence can be according to a video coding technique or standard and can follow principles well-known to those skilled in the art, including variable length coding, Huffman coding, arithmetic coding with or without context sensitivity, etc. The parser 254 can extract a set of subgroup parameters for at least one subgroup of pixels in the video decoder from the encoded video sequence based on at least one parameter corresponding to the set. The subgroups can include group of pictures (GOP), picture, tile, slice, macroblock, coding unit (CU), block, transform unit (TU), prediction unit (PU), etc. The parser 254 can also extract information such as transform coefficients, quantizer parameter values, motion vectors, etc. from the encoded video sequence.

[0053] The reconstruction of the symbols 270 can involve multiple different units, depending on the type of the encoded video picture or its part (such as: inter-frame and intra-frame pictures, inter-frame and intra-frame blocks) and other factors. Which units are involved and how they are involved can be controlled by subgroup control information, which is parsed by the parser 254 from the encoded video sequence. For clarity, this subgroup control information flow between the parser 254 and the multiple units is not depicted below.

[0054] The decoder component 122 can be conceptually subdivided into multiple functional units, and in some embodiments, many of these units interact closely with each other and can be at least partially integrated with each other. However, for clarity, the conceptual subdivision of the functional units is retained herein.

[0055] The scaler / inverse transform unit 258 receives the quantized transform coefficients and control information (such as the transform to be used, block size, quantization factor, and / or quantization scaling matrix) as at least one symbol 270 from the parser 254. The scaler / inverse transform unit 258 can output a block including sample values that can be input to the aggregator 268.

[0056] In some cases, the output samples of the scaler / inverse transform unit 258 belong to intra-coded blocks; that is: blocks that do not use prediction information from a previously reconstructed picture, but may use prediction information from a previously reconstructed part of the current picture. Such prediction information can be provided by the intra prediction unit 262. The intra picture prediction unit 262 can use the surrounding already reconstructed information obtained from the current (partially reconstructed) picture in the current picture memory 264 to generate a block having the same size and shape as the block being reconstructed. The aggregator 268 can add the prediction information already generated by the intra prediction unit 262 to the output sample information provided by the scaler / inverse transform unit 258 on a per-sample basis.

[0057] In other cases, the output samples of the scaler / inverse transform unit 258 belong to inter-coded and possibly motion-compensated blocks. In such cases, the motion compensation prediction unit 260 can access the reference picture memory 266 to obtain samples for prediction. After motion compensating the obtained samples according to the symbol 270 belonging to the block, these samples can be added by the aggregator 268 to the output of the scaler / inverse transform unit 258 (referred to as residual samples or residual signals in this case) to generate output sample information. The address from which the motion compensation prediction unit 260 obtains the prediction samples from within the reference picture memory 266 can be controlled by a motion vector. The motion vector can be used by the motion compensation prediction unit 260 in the form of a symbol 270, which can have, for example, X, Y, and reference picture components. Motion compensation can also include interpolation of sample values obtained from the reference picture memory 266 when using sub-sampled exact motion vectors, motion vector prediction mechanisms, and the like.

[0058] The output samples of aggregator 268 can undergo various loop filtering techniques in loop filter unit 256. Video compression techniques can include in-loop filter techniques that are controlled by parameters included in the encoded video bitstream and are available to loop filter unit 256 as symbols 270 from parser 254, but can also respond to meta-information obtained during the decoding of previous (in decoding order) portions of the encoded picture or encoded video sequence, and to previously reconstructed and loop-filtered sample values. The output of loop filter unit 256 can be a sample stream that can be output to a rendering device such as display 124 and stored in reference picture memory 266 for future inter-frame prediction use.

[0059] Once some encoded pictures are reconstructed, they can be used as reference pictures for future prediction. Once an encoded picture is reconstructed and the encoded picture has been identified as a reference picture (e.g., by parser 254), the current reference picture can become part of reference picture memory 266, and a new current picture memory can be reallocated before starting to reconstruct subsequent encoded pictures.

[0060] Decoder component 122 can perform decoding operations according to predetermined video compression techniques that can be recorded in a standard (such as any of the standards described herein). The encoded video sequence can conform to the syntax specified by the video compression technique or standard being used, in the sense that it adheres to the syntax of the video compression technique or standard as specified in the video compression technique document or standard and particularly in the profile document therein. Also, to conform to some video compression techniques or standards, the complexity of the encoded video sequence can be within the range defined by the level of the video compression technique or standard. In some cases, the level limits the maximum picture size, maximum frame rate, maximum reconstruction sampling rate (e.g., measured in megasamples per second), maximum reference picture size, etc. In some cases, the assumptions of the hypothetical reference decoder (HRD) buffer management and metadata signaled in the encoded video sequence can further limit the limits set by the level.

[0061] Figure 3 is a block diagram illustrating server system 112 according to some embodiments. Server system 112 includes control circuit 302, at least one network interface 304, memory 314, user interface 306, and at least one communication bus 312 for interconnecting these components. In some embodiments, control circuit 302 includes at least one processor (e.g., CPU, GPU, and / or DPU). In some embodiments, the control circuit includes at least one field programmable gate array (FPGA), hardware accelerator, and / or at least one integrated circuit (e.g., application specific integrated circuit).

[0062] At least one network interface 304 may be configured to interface with at least one communication network (e.g., wireless, wired, and / or optical networks). The communication network may be local, wide area, metro area, vehicular, and industrial, real-time, delay-tolerant, etc. Examples of communication networks include local area networks such as Ethernet, wireless LANs, cellular networks including GSM, 3G, 4G, 5G, LTE, etc., television wired or wireless wide area digital networks including cable television, satellite television, and terrestrial broadcast television, vehicular and industrial networks including CANBus, etc. Such communication may be one-way receive-only (e.g., broadcast television), one-way transmit-only (e.g., CANbus to certain CANbus devices), or two-way (e.g., to other computer systems using local or wide area digital networks). Such communication may include communication to at least one cloud computing network.

[0063] The user interface 306 includes at least one output device 308 and / or at least one input device 310. The at least one input device 310 may include at least one of the following: keyboard, mouse, touchpad, touchscreen, data glove, joystick, microphone, scanner, camera, etc. The at least one output device 308 may include at least one of the following: audio output devices (e.g., speakers), visual output devices (e.g., displays or viewers), etc.

[0064] The memory 314 may include high-speed random access memory (such as DRAM, SRAM, DDR RAM, and / or other random access solid-state memory devices) and / or non-volatile memory (such as at least one disk storage device, optical disk storage device, flash memory device, and / or other non-volatile solid-state storage devices). The memory 314 optionally includes at least one storage device remote from the control circuit 302. Alternatively, the memory 314 or at least one non-volatile solid-state storage device within the memory 314 includes non-volatile computer-readable storage media. In some embodiments, the memory 314 or the non-volatile computer-readable storage media of the memory 314 stores the following programs, modules, instructions, and data structures, or subsets or supersets thereof: ● An operating system 316, which includes programs for handling various basic system services and for performing hardware-related tasks; ● A network communication module 318, which is used to connect the server system 112 to other computing devices via at least one network interface 304 (e.g., via wired and / or wireless connections); ● An encoding module 320, which is used to perform various functions regarding encoding and / or decoding of data (such as video data). In some embodiments, the encoding module 320 is an instance of the encoder component 114. The encoding module 320 includes but is not limited to at least one of the following: o A decoding module 322 for performing various functions related to decoding encoded data, such as those previously described with respect to decoder component 122; and o An encoding module 340 for performing various functions related to encoding data, such as those previously described with respect to encoder component 106; and ● A picture memory 352 for storing pictures and picture data, e.g., for use by encoding module 320. In some embodiments, picture memory 352 includes at least one of the following: reference picture memory 208, buffer memory 252, current picture memory 264, and reference picture memory 266.

[0065] In some embodiments, decoding module 322 includes a parsing module 324 (e.g., configured to perform various functions previously described with respect to parser 254), a transform module 326 (e.g., configured to perform various functions previously described with respect to scaler / inverse transform unit 258), a prediction module 328 (e.g., configured to perform various functions previously described with respect to motion compensation prediction unit 260 and / or intra prediction unit 262), and a filter module 330 (e.g., configured to perform various functions previously described with respect to loop filter 256).

[0066] In some embodiments, encoding module 340 includes an encoding module 342 (e.g., configured to perform various functions previously described with respect to source encoder 202 and / or encoding engine 212) and a prediction module 344 (e.g., configured to perform various functions previously described with respect to predictor 206). In some embodiments, decoding module 322 and / or encoding module 340 include Figure 3 A subset of the modules shown. For example, both decoding module 322 and encoding module 340 use a shared prediction module.

[0067] Each of the modules identified above stored in memory 314 corresponds to a set of instructions for performing the functions described herein. The modules identified above (e.g., a set of instructions) need not be implemented as separate software programs, programs, or modules, and thus various subsets of these modules may be combined or otherwise rearranged in various embodiments. For example, encoding module 320 optionally does not include separate decoding and encoding modules, but instead uses a single set of modules to perform both sets of functions. In some embodiments, memory 314 stores a subset of the modules and data structures identified above. In some embodiments, memory 314 stores additional modules (e.g., audio processing modules) and data structures not described above.

[0068] Although Figure 3 FIG. illustrates a server system 112 according to some embodiments, but Figure 3Rather, it is intended to be a functional description of the various features that may exist in at least one server system, rather than a structural schematic of the embodiments described herein. In practice, as is known to those skilled in the art, items shown separately may be combined and some items may be separated. For example, Figure 3 Some of the items shown separately in Figure 3 may be implemented on a single server, and a single item may be implemented by at least one server. The actual number of servers used to implement the server system 112, and how the features are distributed among them, will vary depending on the implementation and, optionally, will depend in part on the amount of data traffic processed by the server system during peak usage periods as well as during average usage periods.

[0069] Figure 4 FIG. Figure 3 is a flow chart of an example process 400 for applying in-loop filtering in video decoding according to some embodiments. A GOP includes a sequence of picture frames, which further includes a current picture frame. The current picture frame includes a color picture, i.e., a non-monochrome picture frame, having a plurality of color samples (e.g., chrominance samples 402 and luminance samples 404) that are in the same position relative to each other. After reconstructing the plurality of color samples of the current picture frame, in-loop filtering is applied to adjust a subset of the color samples, thereby improving the image quality of the current picture frame. In some embodiments, the reconstructed samples of a first color component and their adjacent reconstructed samples are combined to derive an offset value for a second color component, and the reconstructed samples of the second color component are in the same position as the reconstructed samples of the first color component and are adjusted by the offset value. Alternatively, in some embodiments, the reconstructed samples of the first color component are downsampled. The downsampled samples of the first color component and their adjacent downsampled samples are combined to derive an offset value for the second color component. The samples of the second color component are adjusted by the offset value. The first color component may optionally be the same as or different from the second color component.

[0070] For example, the first luminance sample 404C and its neighboring luminance sample 404X are combined to derive a sample offset 406, and the first chrominance sample 402C is collocated with the first luminance sample 404C and adjusted by the sample offset 406. Alternatively, in another example, the first luminance sample 404C and its neighboring luminance sample 404X are combined to derive a sample offset 406, and the sample offset 406 is applied to adjust the first luminance sample 404C itself. Alternatively, in some embodiments, the first downsampled luminance sample 404DC and its neighboring downsampled luminance sample 404DX are combined to derive a sample offset 406, and the first chrominance sample 402C is collocated with the luminance sample 404C or 404DC and adjusted by the sample offset 406. During the process of combining the luminance samples 404C and 404X or the downsampled luminance samples 404DC and 404DX, a loop filter 256 is applied to determine at least one of the following: the number, position, and weight of the neighboring luminance sample 404X, and the neighboring luminance sample 404X is applied to generate the sample offset 406.

[0071] More specifically, the decoder 122 receives a video bitstream 116 including a current image frame from the encoder 106. The video bitstream 116 includes a first syntax element for a cross-component sample offset (CCSO) mode 408. The CCSO mode 408 indicates a first sample offset 406 for determining a first color sample 410 of the current image frame based on at least one luminance sample 404. The decoder 122 identifies a first luminance sample 404C collocated with the first color sample 410 and at least one neighboring luminance sample 404X of the first luminance sample 404C. The first luminance sample 404C and at least one neighboring luminance sample 404X are downsampled to generate at least one downsampled luminance sample 404D for the CCSO mode 408. The first sample offset 406 for the first color sample 410 is determined based on at least one downsampled luminance sample 404D. The decoder 122 reconstructs the current image frame at least by adjusting the first color sample 410 based on the first sample offset 406. In some embodiments, the first color sample 410 includes a first chrominance sample 402C collocated with the first luminance sample 404C. Each of the first luminance sample 404C and at least one neighboring luminance sample 404X includes a corresponding reconstructed luminance sample, and the first chrominance sample 402C includes a first reconstructed chrominance sample.

[0072] In some embodiments, the decoder 122 determines the first sample offset 406 for the first color sample 410 by generating at least one quantization value 404Q based on at least one downsampled luminance sample 404D, and classifies the first color sample 410 based on at least one quantization value 404Q to determine the first sample offset 406 for the first color sample 410.

[0073] In some embodiments, the CCSO mode 408 corresponds at least to the edge offset classifier 412E. Based on the edge offset classifier 412E, the decoder 122 determines that at least one downsampled luminance sample 404D includes a first downsampled luminance sample 404DC and at least one adjacent downsampled luminance sample 404DX, and further determines at least one downsampling difference 404DF between the at least one adjacent downsampled luminance sample 404DX and the first downsampled luminance sample 404DC. At least one quantization value 404Q is generated based on the at least one downsampling difference 404DF (e.g., the at least one downsampling difference 404DF is provided (operation 422) to the quantizer 430) and is applied by the edge offset classifier 412E to classify the first color sample 410. For example, the filter type has a cross shape and includes four taps. The at least one adjacent downsampled luminance sample 404DX includes at least one of the following: a north downsampled luminance sample (also referred to as an upper downsampled luminance sample), a south downsampled luminance sample (also referred to as a lower downsampled luminance sample), a west downsampled luminance sample (also referred to as a left downsampled luminance sample), and an east downsampled luminance sample (also referred to as a right downsampled luminance sample). The decoder 122 determines at least one downsampling difference 404DF between the at least one adjacent downsampled luminance sample 404DX and the first downsampled luminance sample 404DC. For example, the at least one downsampling difference 404DF includes at least one of the following: a north downsampling difference, a south downsampling difference, a west downsampling difference, and an east downsampling difference. Each of the downsampling differences 404DF is the difference between the corresponding one of the adjacent downsampled luminance samples 404DX and the first luminance sample 404DC. The at least one difference 404F is quantized to generate at least one quantized difference 404QX. For example, the at least one quantized difference 404QX includes at least one of the following: a north quantized difference 404QN, a south quantized difference 404QS, a west quantized difference 404QW, and an east quantized difference 404QE. Each of the downsampling differences 404DF is provided (operation 422) to the quantizer 430 and is quantized to generate the corresponding one of the quantized differences 404QN, 404QS, 404QW, and 404QE.

[0074] Additionally and alternatively, in some embodiments, the CCSO mode 408 corresponds to an edge offset classifier 412E and an alternative classifier 412B. At least one quantization value 404Q includes a first quantization value 404Q-1 that is generated based on at least one downsampled luminance sample 404D and is further applied by the edge offset classifier 412E to classify a first color sample 410. An edge classification result 426E is generated. The at least one quantization value further includes a second quantization value 404Q-2 that is generated based on a first luminance sample 404C and a subset of at least one neighboring luminance sample 404X and is further applied by the alternative classifier 412A to classify the first color sample 410, where the first luminance sample 404C and the at least one neighboring luminance sample 404X may or may not be downsampled. An alternative classification result 426A is generated. A first sample offset 406 is determined based on the edge classification result 426E and the alternative classification result 426A. In an example, the alternative classifier 412A is a band offset classifier 412A.

[0075] In some embodiments, the CCSO mode 408 at least corresponds to a band offset classifier 412B. Based on the band offset classifier 412B, the decoder 122 determines that at least one downsampled luminance sample 404D includes a first downsampled luminance sample 404DC and at least one neighboring downsampled luminance sample 404DX. The at least one downsampled luminance sample 404D is provided (operation 424) to a quantizer 430 and is used to generate at least one quantization value 404Q, which is further applied by the band offset classifier 412B to classify a first color sample 410.

[0076] Additionally and alternatively, in some embodiments, the CCSO mode corresponds to a band offset classifier 412B and an alternative classifier different from the band offset classifier 412B. At least one quantization value 404Q includes a first quantization value that is generated based on at least one downsampled luminance sample 404D and is further applied by the band offset classifier 412B to classify a first color sample 410. A band classification result 426B is generated. The at least one quantization value further includes a second quantization value that is generated based on a first luminance sample 404C and a subset of at least one neighboring luminance sample 404X and is further applied by the alternative classifier to classify the first color sample 410, where the first luminance sample 404C and the at least one neighboring luminance sample 404X may or may not be downsampled. An alternative classification result 426A is generated. A first sample offset 406 is determined based on the band classification result 426B and the alternative classification result 426A. In an example, the alternative classifier 412A is an edge offset classifier 412E.

[0077] In some embodiments, the CCSO mode 408 corresponds to a plurality of offset classifiers 412. The decoder 122 determines that at least one downsampled luminance sample 404D includes a first downsampled luminance sample 404DC and at least one adjacent downsampled luminance sample 404DX. A subset of at least one quantization value 404Q is generated based on at least one downsampled luminance sample 404D and is applied by at least one of the plurality of offset classifiers 412 to classify the first color sample 410 and generate a corresponding classification result. Another subset of at least one quantization value 404Q can be generated based on at least one luminance sample 404 and is used to generate at least one additional classification result. The first sample offset 406 is determined based on a plurality of classification results (e.g., 426A, 426B, or 426E) including the corresponding classification results of at least one of the plurality of offset classifiers 412. Additionally, in some embodiments, the plurality of offset classifiers 412 includes a band offset classifier 412B and an edge offset classifier 412E. Additionally, in some embodiments, the plurality of offset classifiers 412 includes at least an edge offset classifier 412E. The decoder 122 further determines at least one downsampled difference 404DF between at least one adjacent downsampled luminance sample 404DX and the first downsampled luminance sample 404DC. At least one quantization value 404Q is generated based on at least one downsampled difference 404DF and is applied by the edge offset classifier 412E to classify the first color sample 410 and generate an edge classification result 426E.

[0078] Alternatively and additionally, in some embodiments, the decoder 122 further determines at least one difference 404F between at least one adjacent luminance sample 404X and the first luminance sample 404C. A first subset of at least one quantization value 404Q is generated based on at least one difference 404F and is applied by the edge offset classifier 412E to generate an edge classification result 426E. A second subset of at least one quantization value 404Q is generated based on at least one downsampled luminance sample 404D and is applied by the band offset classifier 412B to generate a band classification result 426B. The first sample offset 406 and the first color sample 410 are determined using the edge classification result 426E and the band classification result 426B.

[0079] The first color sample 410 is adjusted based on the first sample offset 406 of the first color sample 410 so as to enable reconstruction of the current image frame. In some embodiments, the first color sample 410 includes a first chroma sample 402C co-located with a first luma sample 404C in the current image frame, and the first chroma sample 402C is adjusted based on the first sample offset 406. Alternatively, in some embodiments, the first color sample 410 is a first luma sample 404C, and the first luma sample 404C is adjusted based on the first sample offset 406.

[0080] In some embodiments, at least one luma sample 404, at least one difference value 404F, at least one downsampled luma sample 404D, or at least one downsampled difference value 404DF is quantized to a plurality of integer values in a quantization range 416 using a scalar quantizer 430 that includes a plurality of quantization intervals 418 (QI) and a plurality of quantization levels 420 (QL), wherein each of the at least one quantization value 404Q comprises a corresponding integer in the quantization range 416. For each integer value in the quantization range 416, the quantization interval 418 is defined as a range of values 404, 404F, 404D, or 404DF assigned to the corresponding integer value. The quantization level 420 corresponds to the corresponding integer value assigned the difference value range associated with the quantization interval 418.

[0081] For example, the first color sample 410 is classified by the classifier 412 based on at least one quantization value 404QX to determine a first sample offset 406 for the first color sample 410. In the example, the quantization value 404QX includes quantization values 404QN, 404QS, 404QW, and 404QE. The lookup table 414 maps a plurality of combinations of the quantization values 404QN, 404QS, 404QW, and 404QE to different sample offset options SO (e.g., SO1 to SQ16). Based on the lookup table 414, the quantization value 404QX corresponds to one of the combinations in the lookup table 414, and the corresponding sample offset option SO is identified as a combination corresponding to the quantization difference value 404QX, and is therefore selected for the first sample offset 406. In other words, in some embodiments, the decoder 122 classifies the first color sample 410 by identifying a combination of at least one quantization value 404QX in a lookup table 414 and determining a first sample offset 406 corresponding to the combination of at least one quantization value in the lookup table 414, wherein the lookup table 414 associates multiple quantization combinations with multiple offset value options SO (e.g., SO1 to SO16).

[0082] Figure 5FIG. 500 is a flow chart of another example process of applying in-loop filtering in video decoding according to some embodiments. The decoder 122 receives a video bitstream 116 including a current picture frame from the encoder 106. The video bitstream 116 includes a first syntax element for the CCSO mode 408. The CCSO mode 408 indicates a first sample offset 406 for determining a first color sample 410 of the current picture frame based on at least one luma sample 404. The decoder 122 identifies a first luma sample 404C collocated with the first color sample 410 and at least one neighboring luma sample 404X of the first luma sample 404C. The first luma sample 404C and the at least one neighboring luma sample 404X are downsampled to generate at least one downsampled luma sample 404D for the CCSO mode 408. The first sample offset 406 of the first color sample 410 is determined based on the at least one downsampled luma sample 404D. The decoder 122 reconstructs the current picture frame by at least adjusting the first color sample 410 based on the first sample offset 406. In some embodiments, the first color sample 410 includes a first chroma sample 402C collocated with the first luma sample 404C.

[0083] In some embodiments, the video bitstream 116 further includes a first high-level syntax element 502 for the type of the downsampling filter 506 that is applied to downsample the first luma sample 404C and the at least one neighboring luma sample 404X to generate at least one downsampled luma sample 404D. The first high-level syntax element 502 is signaled in one of the following: sequence header, picture header, sub-picture header, slice header, tile header, and super-block header.

[0084] In some embodiments, the decoder 122 determines the type of the downsampling filter 506 at the block level based on the encoded information. The downsampling filter 506 is applied to downsample the first luma sample 404C and the at least one neighboring luma sample 404X to generate at least one downsampled luma sample 404D. The encoded information includes at least one of the following: different encoded syntax values, prediction mode, block size, quantization parameter, whether the current picture frame is intra-coded or inter-coded, whether the first color sample is coded using an intra-block coding mode, and palette coding mode.

[0085] In some embodiments, the decoder 122 applies a chrominance from luma prediction (CfL) filter 508 in a cross-component intra prediction (CCIP) mode to determine a first chrominance sample 402C co-located with the first luma sample 404C based on the first luma sample 404C and a subset of at least one neighboring luma sample 404X. A first sample offset 406 is generated based on at least one downsampled luma sample 404D, and the first sample offset 406 is applied to adjust the first chrominance sample 402C. Additionally, in some embodiments, the video bitstream 116 further includes a second syntax element 510 for the type of the CfL filter 508 to be applied in the CCIP mode.

[0086] In some embodiments, the first luma sample 404C and at least one neighboring luma sample 404X are downsampled using a first downsampling filter 506 for the CCSO mode 408. The decoder 122 applies a second downsampling filter 506' to the first luma sample 404C or the first color sample 410 in an encoding module 512 (e.g., a Wiener filter) different from the module associated with the CCSO mode 408. The type of the first downsampling filter matches the type of the second downsampling filter 506'. In other words, the same type of sampling filter is applied to downsample the luma samples 404 and generate the downsampled luma sample 404D, which is used for both the CCSO mode 408 and the encoding module 512 (e.g., a Wiener filter). A first high-level syntax element 502 may be provided by the video bitstream 116 to define the type of the downsampling filter 506 that is applied to downsample the first luma sample 404C and at least one neighboring luma sample 404X and generate at least one downsampled luma sample 404D. The decoder 122 may apply the CfL filter 508 in the CCIP mode to determine the first chrominance sample 402C based on a subset of the luma samples 404. A second syntax element 510 may be provided by the video bitstream 116 to define the type of the CfL filter 508 to be applied in the CCIP mode.

[0087] In some embodiments, the video bitstream 116 further includes a second high-level syntax element 514 that selects at least one classifier 412 to be applied in the CCSO mode 408 to generate a first sample offset 406 of the first color sample 410 based on at least one luma sample 404. The second high-level syntax element 514 has a first predefined value (e.g., "0", "01", "10") indicating that the at least one classifier 412 includes only the offset classifier 412B and a second predefined value (e.g., "1", "11") indicating that the at least one classifier 412 includes both the offset classifier 412B and the edge offset classifier 412E. The first high-level syntax element 502 may be provided by the video bitstream 116 to define the type of the downsampling filter 506 that is applied to downsample the first luma sample 404C and at least one adjacent luma sample 404X and generate at least one downsampled luma sample 404D. The decoder 122 may apply the CfL filter 508 in the CCIP mode to determine the first chroma sample 402C based on a subset of the luma samples 404. The second syntax element 510 may be provided by the video bitstream 116 to define the type of the CfL filter 508 applied in the CCIP mode.

[0088] Additionally, in some embodiments, the first quantization value 404Q-1 is generated based on (1) at least one downsampled luma sample 404D or (2) a subset of the first luma sample 404C and at least one adjacent luma sample 404X, and is further applied by the edge offset classifier 412E to classify the first color sample 410. The first color sample 410 is classified based at least on the first quantization value 404Q-1 to determine the first sample offset 406 of the first color sample 410.

[0089] In some embodiments, when only the offset classifier 412B is applied in the CCSO mode 408, the video bitstream 116 further includes a third high-level syntax element 516 for the downsampling mode. The third high-level syntax element 516 has a plurality of predefined values including a first predefined value and at least one second predefined value. The first predefined value indicates that at least one quantization value 404Q( Figure 4 ) is generated based on a subset of the first luma sample 404C and at least one adjacent luma sample 404X (e.g., without involving any downsampled luma sample 404D), and is further applied only by the edge offset classifier 412E to classify the first color sample 410. At least one second predefined value corresponds to one or more types of the downsampling filter 506, and each second predefined value indicates that at least one quantization value 404Q( Figure 4) is generated based on at least one downsampled luma sample 404D generated by a corresponding type of downsampling filter 506, and is further applied to classify the first color sample 410.

[0090] In some embodiments, the video bitstream 116 further includes a fourth high-level syntax element 518 for the downsampling filter mode, the fourth high-level syntax element 518 indicating the application conditions of at least one downsampled luma sample 404D to the band offset classifier 412B and the edge offset classifier 412E, and the fourth high-level syntax element 518 corresponding to four predefined values (e.g., "00", "01", "10", "11") uniquely associated with four application conditions, the four application conditions including: a separate band offset classifier (e.g., "10"), a combination of the band offset classifier and the edge offset classifier (e.g., "11"), a separate edge offset classifier (e.g., "01"), and not applying the band offset classifier 412B or the edge offset classifier 412E (e.g., "00"). It should be noted that in some embodiments, both the band offset classifier 412B and the edge offset classifier 412E are applied, except that one of them is applied to process at least one downsampled luma sample 404D and the other of them is applied to process the at least one luma sample 404 that is not downsampled.

[0091] Conversely, in some embodiments, the video bitstream 116 does not include the fourth high-level syntax element 518. Instead, the video decoder 122 determines the application conditions of at least one downsampled luma sample 404D to the band offset classifier 412B and the edge offset classifier 412E based on the encoded information at one of a high level and a block level. The encoded information includes at least one of the following: different encoded syntax values, prediction modes, block sizes, quantization parameters, whether the current image frame is intra-coded or inter-coded, whether the first color sample 410 is encoded using an intra-block coding mode, and a palette coding mode. Based on the application conditions, at least one quantization value 404Q( Figure 4 ) is generated based on at least at least one downsampled luma sample 404D, and is further applied to classify the first color sample 410. The application conditions indicate whether at least one downsampled luma sample 404D is used by the band offset classifier 412B, used by the edge offset classifier 412E, not used by either of them, or used by both of them. When at least one downsampled luma sample 404D is not used by the band offset classifier 412B and the edge offset classifier 412E, an alternative offset filter 412B is used to process at least one downsampled luma sample 404D and generate a first sample offset 406.

[0092] Figure 6is a flowchart illustrating an example method 600 for encoding and decoding video according to some embodiments. Method 600 may be performed at a computing system (e.g., Figure 1 the server system 112, source device 102, or electronic device 120 in Figure 5 ) having a control circuit and a memory storing instructions for execution by the control circuit. In some embodiments, method 600 is applied in conjunction with at least one video codec including, but not limited to, H.264, H.265 / HEVC, H.266 / VVC, AV1, and AVS / AVS2 / AVS3. In some embodiments, at least one filter is applied to samples of a first component (e.g., luminance samples 404) to derive offset values for other components (e.g., chrominance samples 402). Depending on the chroma format (e.g., for 4:2:0 chroma format), a downsampling filter 506( Figure 4 ) is applied (operation 608) in both the horizontal and vertical directions. The downsampled samples of the first color samples of the filtering process (e.g., downsampled luminance samples 404D) are used to calculate (operation 610) the offset value 406 applied to a second color component (e.g., chrominance samples 402). In some embodiments, the downsampling filter 506 is only applied to the samples used by an edge offset classifier 412E(

[0093] Figure 4 ) and the band offset classifier 412E or a different alternative offset classifier 412A is not used with the downsampling filter 506. In other words, in some embodiments, the filtered downsampled samples (e.g., downsampled luminance samples 404D) are used to provide an input to the edge offset classifier 412E, and the reconstructed luminance samples 404 (e.g., not downsampled) are used to provide an input to the band offset classifier 412B or a different alternative offset classifier 412A.

[0094] Alternatively, in some embodiments, depending on the chroma format, at least one downsampling filter 506 is applied to samples of at least one component. For 4:2:0 chroma format, the downsampling filter 506 is applied in both the horizontal and vertical directions. The output samples of the filtering process are used to calculate the offset value 406( Figure 4 ) applied to a second color component (e.g., chrominance samples 402 or luminance samples 404). The downsampling filter is only applied to the band offset classifier 412B, and the edge offset classifier 412E or a different alternative offset classifier 412A is not used with the downsampling filter 506. In other words, in some embodiments, the filtered and downsampled luminance samples 404D are used to provide an input to the band offset classifier 412B, and the reconstructed luminance samples 404 (e.g., not downsampled) are used to provide an input to the edge offset classifier 412E or a different alternative offset classifier 412A.

[0094] Alternatively, in some embodiments, at least one filter 506 is applied to samples of at least one component according to the chrominance format. For example, for a 4:2:0 chrominance format, downsampling is applied in both the horizontal and vertical directions. The output samples of the filtering process are used to calculate the offset value 406 applied to the second color component (e.g., luma samples 404, chroma samples 402). The downsampling filter is applied to all classifiers 412 used to generate the cross-component sample offset 406. For example, the downsampled luma sample 404D is used for both the edge offset classifier 404E and the band offset classifier 404B, which are used to generate the cross-component sample offset 406.

[0095] In an example, the filter type of the downsampling filter 506 is predefined and is switchable according to the high-level syntax (e.g., the first high-level syntax element 502( Figure 5 ))). The first high-level syntax element 502 can be signaled in one of the following: sequence header, picture header, sub-picture header, slice header, tile header, and super-block header. In another example, the chrominance from luma prediction (CfL) prediction mode is used, and in this mode, a filter type flag (e.g., the second syntax element 510( Figure 5 )) is used to indicate the associated CfL prediction type. Additionally, the chrominance from the luma filter (e.g., the downsampling filter 506) can be used, and a dedicated flag (e.g., the first high-level syntax element 502) can be signaled and used to indicate the associated filter type. In yet another example, the type of the downsampling filter 506 can be switched at the block level according to other encoded information (e.g., other encoded syntax values, prediction mode, block size, quantization parameter, whether it is intra-coded or inter-coded, whether it is coded using the intra-block coding mode, palette coding mode). In an example, another downsampling filter 506'( Figure 5 )(e.g., the filter used in the Wiener filter) used in other coding modules 512 can also be used in the downsampling filter 506.

[0096] In some embodiments, a high-level flag is signaled to indicate whether to use the band offset classifier 412B or a combination of the band offset classifier 412B and the edge offset classifier 412E to derive the offset value 406. If the combination of the band offset classifier 412B and the edge offset classifier 412E is used, the downsampled luma sample 404D is optionally used with one or both of the classifiers 412B and 412E. If only the band offset classifier 412B is used, the classifier 412B is used with the downsampled luma sample 404D or the non-downsampled reconstructed luma sample 404. In an example, the high-level syntax (e.g., the third high-level syntax element 516(Figure 5 )) to indicate whether only the offset branches are downsampled and the downsampling filter type. For example, an index in the range of 0 to 3 is signaled. An index equal to 0 indicates no downsampling. An index equal to 1 to 3 indicates three different downsampling filter types (e.g., cross-shaped, eight-tap, horizontal two-tap).

[0097] In some embodiments, a high-level flag (e.g., high-level syntax element 518) is signaled to indicate whether the downsampling filter 506 is applied separately to the band-offset classifier 412B, applied to both the band-offset classifier 412B and the edge-offset classifier 412E, applied separately to the edge-offset classifier 412E, or not applied to the band-offset classifier 412B and the edge-offset classifier 412E.

[0098] In some embodiments, the encoded information can be used at a high level or block level to implicitly determine whether to apply the band-offset classifier 412E, the edge-offset classifier 412E, and any alternative offset classifier 412A to the downsampled luma samples 404D. The encoded information can include, but is not limited to, at least one of the following: other encoded syntax values, prediction mode, block size, quantization parameter, whether it is intra-coded or inter-coded, whether it is an intra-only frame, whether it is encoded using the intra-block coding mode, and the palette coding mode.

[0099] Note that in some embodiments, the Wiener filter refers to a loop filtering method that uses a linear weighted sum of adjacent samples to derive the filtered sample value of the current sample. In some embodiments, the cross-component offset filtering method is an edge-preserving loop filter that uses the reconstructed luma samples 404 to calculate the sample offsets of the luma component 404, the chroma component 402, or both.

[0100] Although Figure 6 Multiple logical stages are illustrated in a particular order, but stages that do not depend on the order can be reordered, and other stages can be combined or decomposed. Some reorderings or other groupings not specifically mentioned will be obvious to those of ordinary skill in the art, so the orderings and groupings presented herein are not exhaustive. Additionally, it should be recognized that these stages can be implemented in hardware, firmware, software, or any combination thereof.

[0101] Now turning to some example embodiments.

[0102] (A1)In some implementations, a method 600 for decoding video data is implemented. The method 600 includes receiving (operation 602) a video bitstream including a current image frame, wherein the video bitstream includes (operation 604) a first syntax element for a cross-component sample offset (CCSO) mode, and the first syntax element indicates whether a first sample offset of a first color sample of the current image frame is generated based on at least one luma sample. The method 600 further includes identifying (operation 606) a first luma sample co-located with the first color sample and at least one neighboring luma sample of the first luma sample; downsampling (operation 608) the first luma sample and the at least one neighboring luma sample to generate at least one downsampled luma sample for the CCSO mode; determining (operation 610) the first sample offset of the first color sample based on the at least one downsampled luma sample; and reconstructing (operation 612) the current image frame at least by adjusting the first color sample based on the first sample offset.

[0103] (A2)In some embodiments of A1, determining the first sample offset of the first color sample further includes generating (operation 614) at least one quantization value based on the at least one downsampled luma sample, and classifying (operation 616) the first color sample based on the at least one quantization value to determine the first sample offset of the first color sample.

[0104] (A3)In some embodiments of A2, the CCSO mode at least corresponds to an edge offset classifier, and generating at least one quantization value based on the at least one downsampled luma sample further includes, based on the edge offset classifier, performing the following operations: determining that the at least one downsampled luma sample includes a first downsampled luma sample and at least one neighboring downsampled luma sample; and determining at least one downsampled difference between the at least one neighboring downsampled luma sample and the first downsampled luma sample. Wherein the at least one quantization value is generated based on the at least one downsampled difference and is applied by the edge offset classifier to classify the first color sample.

[0105] (A4) In some embodiments of A2 or A3, the CCSO mode corresponds to an edge offset classifier and an alternative classifier. The at least one quantization value includes a first quantization value, which is generated based on the at least one downsampled luminance sample and is further applied by the edge offset classifier to classify the first color sample. And the at least one quantization value further includes a second quantization value, which is generated based on the first luminance sample and a subset of the at least one adjacent luminance sample and is further applied by the alternative classifier to classify the first color sample. And the first sample offset is determined based on the edge classification result and the alternative classification result.

[0106] (A5) In some embodiments of A2, the CCSO mode at least corresponds to a band offset classifier, and generating at least one quantization value based on the at least one downsampled luminance sample further includes, based on the band offset classifier: determining that the at least one downsampled luminance sample includes a first downsampled luminance sample and at least one adjacent downsampled luminance sample. Wherein the at least one quantization value is generated based on the at least one downsampled luminance sample and is applied by the band offset classifier to classify the first color sample.

[0107] (A6) In some embodiments of A2 or A5, the CCSO mode corresponds to a band offset classifier and an alternative classifier. The at least one quantization value includes a first quantization value. The first quantization value is generated based on the at least one downsampled luminance sample and is further applied by the band offset classifier to classify the first color sample. And the at least one quantization value further includes a second quantization value, which is generated based on the first luminance sample and a subset of the at least one adjacent luminance sample and is further applied by the alternative classifier to classify the first color sample. And the first sample offset is determined based on the edge classification result and the alternative classification result.

[0108] (A7) In some embodiments of A2, the CCSO mode corresponds to multiple offset classifiers, and generating at least one quantization value based on the at least one downsampled luminance sample further includes: determining that the at least one downsampled luminance sample includes a first downsampled luminance sample and at least one adjacent downsampled luminance sample. Wherein the at least one quantization value is generated based on the at least one downsampled luminance sample and is applied by at least one of the multiple offset classifiers to classify the first color sample and generate a corresponding classification result. Wherein the first sample offset is determined based on multiple classification results including the corresponding classification results of at least one of the multiple offset classifiers.

[0109] (A8)In some embodiments of A7, the plurality of offset classifiers include a band offset classifier and an edge offset classifier.

[0110] (A9)In some embodiments of any one of A1 - A8, the video bitstream further includes a first high-level syntax element for the type of downsampling filter that is applied to downsample the first luma sample and the at least one adjacent luma sample to generate the at least one downsampled luma sample, and the first high-level syntax element is signaled in one of: sequence header, picture header, sub-picture header, slice header, tile header, and super-block header.

[0111] (A10)In some embodiments of any one of A1 - A9, method 600 further includes determining, at a block level, the type of downsampling filter based on the encoded information, where the downsampling filter is applied to downsample the first luma sample and the at least one adjacent luma sample to generate the at least one downsampled luma sample; and the encoded information includes at least one of: different encoded syntax values, prediction mode, block size, quantization parameter, whether the current picture frame is intra-coded or inter-coded, whether the first color sample is encoded using an intra-block coding mode, and palette coding mode.

[0112] (A11)In some embodiments of any one of A1 - A10, method 600 further includes applying a chrominance from luma (CfL) filter in a cross-component intra prediction (CCIP) mode to determine a first chroma sample co-located with the first luma sample based on a subset of the first luma sample and the at least one adjacent luma sample.

[0113] (A12)In some embodiments of A1 - A11, the video bitstream further includes a second syntax element for the type of the CfL filter applied in the CCIP mode.

[0114] (A13)In some embodiments of any one of A1 - A12, the first luma sample and the at least one adjacent luma sample are downsampled using a first downsampling filter for the CCSO mode. Method 600 further includes applying a second downsampling filter to the first luma sample or the first color sample in an encoding module different from the CCSO mode, where the type of the first downsampling filter matches the type of the second downsampling filter.

[0115] (A14)In some embodiments of any one of A1 - A13, the video bitstream further includes a second high - level syntax element that selects at least one classifier to be applied in the CCSO mode to generate the first sample offset of the first color sample based on at least one luma sample. The second high - level syntax element has a first predefined value indicating that the at least one classifier includes only the offset classifier and a second predefined value indicating that the at least one classifier includes both the offset classifier and the edge - offset classifier.

[0116] (A15)In some embodiments of A14, a first quantization value is generated based on (1) the at least one downsampled luma sample or (2) a subset of the first luma sample and the at least one adjacent luma sample, and is further applied by the offset classifier to classify the first color sample. Method 600 further includes classifying the first color sample based at least on the first quantization value to determine the first sample offset of the first color sample.

[0117] (A16)In some embodiments of any one of A1 - A15, when only the offset classifier is applied in the CCSO mode, the video bitstream further includes a third high - level syntax element for the downsampling mode. The third high - level syntax element has a plurality of predefined values including a first predefined value and at least one second predefined value. The first predefined value indicates that at least one quantization value is generated based on a subset of the first luma sample and the at least one adjacent luma sample, and is further applied only by the offset classifier to classify the first color sample. The at least one second predefined value corresponds to one or more types of downsampling filters, and each second predefined value indicates that at least one quantization value is generated based on the at least one downsampled luma sample generated by the corresponding type of downsampling filter, and is further applied to classify the first color sample.

[0118] (A17)In some embodiments of any one of A1 - A16, the video bitstream further includes a fourth high - level syntax element for the downsampling filter mode. The fourth high - level syntax element indicates the application conditions of the at least one downsampled luma sample to the offset classifier and the edge - offset classifier, and the fourth high - level syntax element corresponds to four predefined values uniquely associated with four application conditions, the four application conditions including: the offset classifier alone, a combination of the offset classifier and the edge - offset classifier, the edge - offset classifier alone, and neither the offset classifier nor the edge - offset classifier being applied.

[0119] (A18)In some embodiments of any one of A1 - A17, method 600 further includes: determining application conditions for applying the at least one downsampled luminance sample to a band offset classifier and an edge offset classifier at one of a high level and a block level based on encoded information, where the encoded information includes at least one of the following: different encoded syntax values, prediction mode, block size, quantization parameter, whether the current image frame is intra - coded or inter - coded, whether the first color sample is coded using an intra - block coding mode, and palette coding mode; wherein, based on the application conditions, at least one quantization value is generated based on the at least one downsampled luminance sample and is further applied to classify the first color sample.

[0120] (A19)In some embodiments of any one of A1 - A18, the first color sample is one of the first luminance sample and a first chrominance sample co - located with the first luminance sample (operation 618), and wherein each of the first luminance sample and the at least one neighboring luminance sample includes a respective reconstructed luminance sample, and the first chrominance sample includes a first reconstructed chrominance sample.

[0121] (A20)In some embodiments, a computing system includes: a control circuit and a memory. The memory stores at least one program configured to be executed by the control circuit, and the at least one program further includes instructions for: receiving video data including a current image frame; encoding the current image frame; determining that a cross - component sample offset (CCSO) mode is enabled to generate a first sample offset of a first color sample of the current image frame based on at least one luminance sample, where in the CCSO mode, the first sample offset of the first color sample is determined based on at least one downsampled luminance sample generated by downsampling a first luminance sample and at least one neighboring luminance sample, and the first luminance sample is co - located with the first color sample; transmitting the encoded current image frame via a video bitstream; and signaling a first syntax element via the video bitstream to indicate that the CCSO mode is applied to reconstruct the first color sample co - located with the first luminance sample based on the first sample offset.

[0122] (A21)In some embodiments, a non - volatile computer - readable storage medium stores at least one program executed by a control circuit of a computing system. The at least one program includes instructions for: obtaining a source video sequence including a current image frame; and performing a conversion between the source video sequence and a video bitstream, where the video bitstream includes: the current image frame; and a first syntax element for a cross - component sample offset (CCSO) mode, the first syntax element indicating whether to generate a first sample offset of a first color sample of the current image frame based on at least one luma sample; where the first sample offset of the first color sample is determined based on at least one downsampled luma sample generated by downsampling a first luma sample and at least one adjacent luma sample, and the first luma sample is co - located with the first color sample.

[0123] In another aspect, some embodiments include a computing system (e.g., server system 112) that includes a control circuit (e.g., control circuit 302) and a memory (e.g., memory 314) coupled to the control circuit. The memory stores at least one set of instructions configured to be executed by the control circuit. The at least one set of instructions includes instructions for performing any of the methods described herein (such as A1 to A21 above).

[0124] In yet another aspect, some embodiments include a non - volatile computer - readable storage medium storing at least one set of instructions for execution by a control circuit of a computing system. The at least one set of instructions includes instructions for performing any of the methods described herein (such as A1 to A21 above).

[0125] The proposed methods can be used alone or in any order combination. Further, each method (or embodiment), encoder, and decoder can be implemented by a processing circuit (e.g., at least one processor or at least one integrated circuit). For example, at least one processor executes a program stored in a non - transient computer - readable medium. Hereinafter, the term block can be interpreted as a prediction block, a coding block, or a coding unit, i.e., a CU.

[0126] It will be understood that although terms such as "first", "second", etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another.

[0127] The terms used herein are for the purpose of describing particular embodiments only and are not intended to limit the claims. As used in the description of the embodiments and the appended claims, the singular forms "a", "an", and "the" are also intended to include the plural forms unless the context clearly indicates otherwise. It will also be understood that the term "and / or" as used herein refers to and encompasses any and all possible combinations of at least one of the associated listed items. It will be further understood that when used in this specification, the terms "comprises" and "comprising" indicate the presence of the stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of at least one other feature, integer, step, operation, element, component, and / or group thereof.

[0128] As used herein, depending on the context, the term "if" may be interpreted to mean "when" or "upon" or "in response to determining" or "in accordance with determining" or "in response to detecting" that the stated precondition is true. Similarly, depending on the context, the phrase "if it is determined [that the stated precondition is true]" or "if [the stated precondition is true]" or "when [the stated precondition is true]" may be interpreted to mean "upon determining" or "in response to determining" or "in accordance with determining" or "upon detecting" or "in response to detecting" that the stated precondition is true.

[0129] For purposes of explanation, the foregoing description has been made with reference to specific embodiments. However, the above illustrative discussion is not intended to be exhaustive or to limit the claims to the precise forms disclosed. Many modifications and variations are possible in light of the above teachings. The embodiments were chosen and described in order to best explain the operating principles and the practical application, thereby enabling others skilled in the art to understand.

Claims

1. A method for decoding video data, characterized in that include: Receiving a video code stream including a current image frame, wherein the video code stream includes a first syntax element for a cross-component sample offset (CCSO) mode, the first syntax element indicating whether to generate a first sample offset of a first color sample of the current image frame based on at least one luma sample; identifying a first luma sample co-located with the first color sample and at least one adjacent luma sample to the first luma sample; downsampling the first luma sample and the at least one adjacent luma sample to generate at least one downsampled luma sample for the CCSO mode; determining, based on the at least one downsampled luma sample, the first sample offset for the first color sample; as well as The current image frame is reconstructed by at least adjusting the first color samples based on the first sample offset.

2. The method according to claim 1, wherein Determining the first sample offset of the first color sample further comprises: generating at least one quantized value based on the at least one downsampled luma sample; and The first color sample is classified based on the at least one quantized value to determine the first sample offset of the first color sample.

3. The method according to claim 2, wherein The CCSO mode corresponds to at least an edge offset classifier, and generating at least one quantized value based on the at least one downsampled luma sample further comprises based on the edge offset classifier: determining that the at least one downsampled luma sample comprises a first downsampled luma sample and at least one adjacent downsampled luma sample; as well as determining at least one downsampled difference between the at least one adjacent downsampled luma sample and the first downsampled luma sample; Wherein the at least one quantization value is generated based on the at least one down-sampled difference value and applied by the edge offset classifier to classify the first color sample.

4. The method according to claim 2, characterized in that: The CCSO mode corresponds to an edge shift classifier and a substitution classifier; The at least one quantized value comprises a first quantized value generated based on the at least one downsampled luma sample and further applied by the edge offset classifier to classify the first color sample; as well as The at least one quantized value further includes a second quantized value generated based on a subset of the first luma sample and the at least one adjacent luma sample and further applied by the alternative classifier to classify the first color sample; as well as The first sample offset is determined based on the marginal classification result and the alternative classification result.

5. The method according to claim 2, wherein The CCSO mode corresponds to at least a band offset classifier, and generating at least one quantized value based on the at least one downsampled luma sample further comprises based on the band offset classifier: determining that the at least one downsampled luma sample comprises a first downsampled luma sample and at least one adjacent downsampled luma sample; Wherein the at least one quantization value is generated based on the at least one downsampled luma sample and applied by the band offset classifier to classify the first color sample.

6. The method according to claim 2, wherein: The CCSO mode corresponds to an offset classifier and an alternative classifier; The at least one quantization value includes a first quantization value, which is generated based on the at least one downsampled luminance sample and is further applied by the offset classifier to classify the first color sample; And The at least one quantization value further includes a second quantization value, which is generated based on the first luminance sample and a subset of the at least one adjacent luminance sample and is further applied by the alternative classifier to classify the first color sample; And Determine the first sample offset based on the edge classification result and the alternative classification result.

7. The method according to claim 2, characterized in that The CCSO mode corresponds to a plurality of offset classifiers, and generating at least one quantization value based on the at least one downsampled luminance sample further includes: Determine that the at least one downsampled luminance sample includes a first downsampled luminance sample and at least one adjacent downsampled luminance sample; Wherein the at least one quantization value is generated based on the at least one downsampled luminance sample and is applied by at least one of the plurality of offset classifiers to classify the first color sample and generate a corresponding classification result; Wherein the first sample offset is determined based on a plurality of classification results including the corresponding classification results of at least one of the plurality of offset classifiers.

8. The method according to claim 7, wherein The plurality of offset classifiers includes an offset classifier and an edge offset classifier.

9. The method according to claim 1, characterized in that, The video bitstream further includes a first high-level syntax element for the type of the downsampling filter, which is applied to downsample the first luminance sample and the at least one adjacent luminance sample to generate the at least one downsampled luminance sample, and the first high-level syntax element is signaled in one of the following: sequence header, picture header, sub-picture header, slice header, tile header, and super-block header.

10. The method according to claim 1, characterized in that Further includes determining the type of the downsampling filter at the block level based on the encoded information, wherein the downsampling filter is applied to downsample the first luminance sample and the at least one adjacent luminance sample to generate the at least one downsampled luminance sample; and Wherein the encoded information includes at least one of the following: different encoded syntax values, prediction mode, block size, quantization parameter, whether the current image frame is intra-coded or inter-coded, whether to use the intra-block coding mode to encode the first color sample, and palette coding mode.

11. The method according to claim 1, wherein Further includes: Applying a chrominance from luminance (CfL) filter in a cross-component intra prediction (CCIP) mode to determine a first chrominance sample co-located with the first luminance sample based on the first luminance sample and a subset of the at least one adjacent luminance sample.

12. The method according to claim 11, wherein The video bitstream further includes a second syntax element for the type of the CfL filter applied in the CCIP mode.

13. The method according to claim 1, characterized in that, Downsample the first luma sample and the at least one adjacent luma sample using a first downsampling filter for the CCSO mode, the method further comprising: Apply a second downsampling filter to the first luma sample or the first color sample in an encoding module different from the CCSO mode, wherein the type of the first downsampling filter matches the type of the second downsampling filter.

14. The method according to claim 1, characterized in that The video bitstream further comprises a second high-level syntax element that selects at least one classifier applied in the CCSO mode to generate the first sample offset of the first color sample based on at least one luma sample, the second high-level syntax element having a first predefined value indicating that the at least one classifier includes only the offset classifier and a second predefined value indicating that the at least one classifier includes both the offset classifier and the edge offset classifier.

15. The method according to claim 14, characterized in that, A first quantization value is generated based on (1) the at least one downsampled luma sample or (2) a subset of the first luma sample and the at least one adjacent luma sample, and is further applied by the offset classifier to classify the first color sample, the method further comprising: Classify the first color sample based at least on the first quantization value to determine the first sample offset of the first color sample.

16. The method according to claim 1, wherein: When only the offset classifier is applied in the CCSO mode, the video bitstream further comprises a third high-level syntax element for the downsampling mode; The third high-level syntax element has a plurality of predefined values including a first predefined value and at least one second predefined value; The first predefined value indicates that at least one quantization value is generated based on a subset of the first luma sample and the at least one adjacent luma sample, and is further applied only by the offset classifier to classify the first color sample; and The at least one second predefined value corresponds to one or more types of downsampling filters, and each second predefined value indicates that at least one quantization value is generated based on the at least one downsampled luma sample generated by the corresponding type of downsampling filter, and is further applied to classify the first color sample.

17. The method according to claim 1, wherein The video bitstream further comprises a fourth high-level syntax element for the downsampling filter mode, the fourth high-level syntax element indicating the application conditions of the at least one downsampled luma sample to the offset classifier and the edge offset classifier, and the fourth high-level syntax element corresponding to four predefined values uniquely associated with four application conditions, the four application conditions including: the offset classifier alone, a combination of the offset classifier and the edge offset classifier, the edge offset classifier alone, and no application of the offset classifier or the edge offset classifier.

18. The method according to claim 1, wherein Further comprising: Determine application conditions for applying the at least one downsampled luma sample to a band offset classifier and an edge offset classifier at one of a high level and a block level based on encoded information, where the encoded information includes at least one of the following: different encoded syntax values, prediction modes, block sizes, quantization parameters, whether the current image frame is intra-coded or inter-coded, whether the first color sample is encoded using an intra-block coding mode, and a palette coding mode; Wherein based on the application conditions, at least one quantization value is generated based on the at least one downsampled luma sample and is further applied to classify the first color sample.

19. The method according to claim 1, wherein the first color sample is one of the first luma sample and a first chroma sample co-located with the first luma sample, and wherein each of the first luma sample and the at least one neighboring luma sample includes a respective reconstructed luma sample, and the first chroma sample includes a first reconstructed chroma sample.

20. A computing system, characterized in that, Comprising: A control circuit; And A memory storing at least one program configured to be executed by the control circuit, the at least one program further including instructions for: Receiving video data including a current image frame; Encoding the current image frame; Determining that a cross-component sample offset (CCSO) mode is enabled to generate a first sample offset of a first color sample of the current image frame based on at least one luma sample, wherein in the CCSO mode, the first sample offset of the first color sample is determined based on at least one downsampled luma sample generated by downsampling a first luma sample and at least one neighboring luma sample, and the first luma sample is co-located with the first color sample; Transmitting the encoded current image frame via a video bitstream; And Signaling a first syntax element via the video bitstream to indicate that the CCSO mode is applied to reconstruct the first color sample co-located with the first luma sample based on the first sample offset.

21. A non-volatile computer-readable storage medium, characterized in that, For storing at least one program executed by a control circuit of a computing system, the at least one program including instructions for: Obtaining a source video sequence including a current image frame; And Performing a conversion between the source video sequence and a video bitstream, where the video bitstream includes: The current image frame; And A first syntax element for a cross-component sample offset (CCSO) mode, the first syntax element indicating whether a first sample offset of a first color sample of the current image frame is generated based on at least one luma sample; wherein the first sample offset of the first color sample is determined based on at least one downsampled luma sample generated by downsampling a first luma sample and at least one neighboring luma sample, and the first luma sample is co-located with the first color sample.