Signaling presence of chroma offset in video coding
By dynamically adjusting the signaling information based on the presence or absence of chroma in video encoding, the problem of chroma offset signaling redundancy is solved, encoding efficiency and bitstream utilization are improved, and encoder design is simplified.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INTERDIGITAL CE PATENT HOLDINGS SAS
- Filing Date
- 2021-02-23
- Publication Date
- 2026-04-17
AI Technical Summary
In existing video coding technologies, the processing of chroma offset signaling information under different color planes suffers from redundancy and low efficiency. In particular, when a separate color plane is not used, signals are still sent to notify the chroma offset value, resulting in information redundancy in the bitstream and reduced coding efficiency.
By dynamically adjusting the signaling information settings based on the presence or absence of chroma during encoding and decoding, and only signaling the presence of chroma offset values when needed, redundant signaling is avoided when a separate color plane is not used. A dynamic signaling mechanism is adopted, for example, by testing ChromaArrayType syntax elements and introducing new PPS level markers to control the encoding of chroma deblocking filter parameters.
It improves the efficiency of video encoding, reduces redundant information in the bitstream, simplifies encoder design, and significantly improves encoding efficiency, especially when dealing with large datasets or internet traffic.
Smart Images

Figure CN115136599B_ABST
Abstract
Description
Technical Field
[0001] At least one implementation of this embodiment generally relates to signaling the syntax used for video encoding and decoding, and more specifically to chroma offset values. Background Technology
[0002] To achieve high compression efficiency, image and video coding schemes typically employ prediction and transform to utilize spatial and temporal redundancy in video content. Generally, intra-frame or inter-frame prediction is used to leverage intra-frame or inter-frame correlations, followed by transforming, quantizing, and entropy coding of the differences between the original and predicted blocks (usually represented as prediction error or prediction residual). To reconstruct the video, the compressed data is decoded through the inverse process corresponding to entropy coding, quantization, transform, and prediction. Summary of the Invention
[0003] One or more of these embodiments provide a video encoding system for processing at least one block of at least one image of a video, the video encoding system including an encoding process and a decoding process implemented on an encoding device and a decoding device, respectively, the encoding process and the decoding process providing or using video-related signaling information, wherein the signaling information includes information indicating the presence of a chroma offset value, wherein when chroma is present and a separate color plane is not used, the information indicating the presence of a chroma offset value is set and the signaling information further includes information indicating a chroma offset value, and wherein when chroma is absent or a separate color plane is used, the information indicating the presence of a chroma offset value is reset and no further signaling is sent to the information indicating the chroma offset value.
[0004] According to a first aspect of at least one embodiment, a video coding method includes: encoding at least one block of at least one image of a video and corresponding signaling information including at least information indicating the presence of a chroma offset value, wherein when chroma is present and a separate color plane is not used, the information indicating the presence of the chroma offset value is set and the signaling information further includes information indicating the chroma offset value, and wherein when chroma is absent or a separate color plane is used, the information indicating the presence of the chroma offset value is reset and the information indicating the chroma offset value is not further signaled.
[0005] According to a second aspect of at least one embodiment, a video decoding method includes: for at least one block of at least one image of a video, obtaining signaling information including at least information indicating the presence of a chroma offset value; if the information indicating the presence of the chroma offset value is set, obtaining information indicating the chroma offset value from the signaling information; and decoding the at least one block based on the obtained signaling information.
[0006] According to a third aspect of at least one embodiment, an apparatus includes an encoder for encoding picture data of at least one block in a picture or video, wherein the encoder is configured to encode at least one block and corresponding signaling information including at least information indicating the presence of a chroma offset value, wherein when chroma is present and a separate color plane is not used, the information indicating the presence of the chroma offset value is set and the signaling information further includes information indicating the chroma offset value, and wherein when chroma is absent or a separate color plane is used, the information indicating the presence of the chroma offset value is reset and no further signaling is sent to the information indicating the chroma offset value.
[0007] According to a fourth aspect of at least one embodiment, an apparatus includes a decoder for decoding picture data of at least one block in a picture or video, wherein the decoder is configured to obtain signaling information including at least information indicating the presence of a chroma offset value, to obtain information indicating the chroma offset value from the signaling information when the information indicating the presence of the chroma offset value is set, and to decode the at least one block based on the obtained signaling information.
[0008] According to a fifth aspect of at least one embodiment, the bitstream includes at least one block and corresponding signaling information including at least information indicating the presence of a chroma offset value, wherein when chroma is present and a separate color plane is not used, the information indicating the presence of the chroma offset value is set and the signaling information further includes information indicating the chroma offset value, and wherein when chroma is absent or a separate color plane is used, the information indicating the presence of the chroma offset value is reset and no further signaling is given to the information indicating the chroma offset value.
[0009] According to a sixth aspect of at least one embodiment, a computer program comprising program code instructions executable by a processor is presented, the computer program implementing the steps of the method according to at least the first or second aspect.
[0010] According to a seventh aspect of at least one embodiment, a computer program product is presented that is stored on a non-transitory computer-readable medium and includes program code instructions executable by a processor, the computer program product implementing the steps of the method according to at least the first or second aspect. Attached Figure Description
[0011] Figure 1 A block diagram of an example video encoder 100 is shown.
[0012] Figure 2 A block diagram of an example video decoder 200 is shown.
[0013] Figure 3 A block diagram illustrating an example of a system in which various aspects and implementation schemes are derived is shown.
[0014] Figure 4A An example of a flowchart for encoding according to an exemplary implementation is shown.
[0015] Figure 4B An example flowchart for decoding according to an exemplary implementation is shown.
[0016] Figure 5 A high-level representation of an end-to-end workflow supporting the delivery of encoded video content, as exemplified by an example of the principles of the present invention, is shown.
[0017] Figure 6A An example of a flowchart for encoding according to a second exemplary embodiment is shown.
[0018] Figure 6B An example flowchart for decoding according to a second exemplary embodiment is shown. Detailed Implementation
[0019] Figure 1 A block diagram of an example video encoder 100 is shown. Examples of video encoders include a High Efficiency Video Coding (HEVC) encoder compliant with the HEVC standard, or an HEVC encoder that improves upon the HEVC standard, or an encoder employing a technology similar to HEVC, such as the JEM (Joint Exploration Model) encoder developed by the JVET (Joint Video Exploration Team) for the VVC (Various Video Coding) standard, or other encoders.
[0020] Before being encoded, the video sequence may undergo pre-coding (101). This can be done, for example, by applying a color transformation to the input color image (e.g., a conversion from RGB 4:4:4 to YCbCr 4:2:0), or by performing a remapping of the input image components to obtain a more resilient signal distribution to compression (e.g., histogram equalization using one of the color components). Metadata may be associated with the pre-processing and attached to the bitstream.
[0021] In encoder 100, the image is encoded by encoder elements as described below. The image to be encoded is partitioned (102) and processed in units such as CUs. For example, each unit is encoded using either an intra-frame mode or an inter-frame mode. When a unit is encoded in intra-frame mode, it performs intra-frame prediction (160). In inter-frame mode, motion estimation (175) and compensation (170) are performed. The encoder determines (105) which of the intra-frame mode or inter-frame mode is used to encode the unit and indicates the intra-frame / inter-frame decision by, for example, a prediction mode label. For example, the prediction residual is calculated by subtracting (110) the prediction block from the original image block.
[0022] Then, the predicted residual is transformed (125) and quantized (130). The quantized transform coefficients, motion vectors, and other syntax elements are entropy encoded (145) to output a bitstream. The encoder can skip the transform and apply quantization directly to the untransformed residual signal. The encoder can bypass both the transform and quantization, i.e., encode the residual directly without applying the transform or quantization process.
[0023] The encoder decodes the coded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (140) and inverse transformed (150) to decode the prediction residual. The decoded prediction residual and the prediction block are combined (155) to reconstruct an image block. A loop filter (165) is applied to the reconstructed image to perform, for example, deblocking / SAO (sample adaptive offset) filtering, thereby reducing coded artifacts. The filtered image is stored in a reference image buffer (180).
[0024] Figure 2 A block diagram of an example video decoder 200 is shown. Examples of video decoders include a High Efficiency Video Coding (HEVC) decoder compliant with the HEVC standard, or an HEVC decoder that improves upon the HEVC standard, or a decoder employing HEVC-like technology, such as the JEM (Joint Exploration Model) decoder developed by the JVET (Joint Video Exploration Team) for the VVC (Various Video Coding) standard, or other decoders.
[0025] In the example of decoder 200, the bitstream is decoded by decoder elements, as described below. Video decoder 200 typically performs operations similar to... Figure 1 The described decoding channel is the inverse of the encoding channel, performing video decoding as part of the video data encoding. Encoder 100 also typically performs video decoding as part of the video data encoding.
[0026] Specifically, the decoder's input includes a video bitstream, which may be generated by the video encoder 100. The bitstream is first entropy-decoded (230) to obtain transform coefficients, motion vectors, image partitioning information, and other encoded information. The image partitioning information indicates the size of the CTU and how the CTU is divided into CUs (and possibly PUs where applicable). Therefore, the decoder can divide the image into (235) CTUs based on the decoded image partitioning information, and divide each CTU into CUs. The transform coefficients are dequantized (240), including at least one embodiment for adjusting the following chromaticity quantization parameters, and an inverse transform (250) is performed to decode the prediction residuals.
[0027] The decoded prediction residuals and prediction blocks are combined (255) to reconstruct an image block. The prediction block (270) can be obtained from intra-frame prediction (260) or motion-compensated prediction (i.e., inter-frame prediction) (275). As described above, AMVP and merge mode techniques can be used to derive motion-compensated motion vectors, which can be interpolated using interpolation filters to compute interpolated values for sub-integer samples of the reference block. A loop filter (265) is applied to the reconstructed image. The filtered image is stored in a reference image buffer (280).
[0028] The decoded image may also undergo post-decoding processing (285), such as inverse color transformation (e.g., a transformation from YCbCr 4:2:0 to RGB 4:4:4) or inverse remapping of the remapping process performed in the pre-encoding process (101). Post-decoding processing may utilize metadata derived in the pre-encoding process and signaled in the bitstream.
[0029] Figure 3 A block diagram illustrating examples of systems implementing various aspects and embodiments therein is shown. System 1000 may be embodied as a device including the various components described below and configured to perform one or more aspects described in this patent application. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, encoders, transcoders, and servers. Elements of system 1000 may be embodied individually or in combination in a single integrated circuit, multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing and encoder / decoder elements of system 1000 are distributed across multiple ICs and / or discrete components. In various embodiments, system 1000 is communicatively coupled to other similar systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports. In various embodiments, system 1000 is configured to implement one or more aspects described in this document.
[0030] System 1000 includes at least one processor 1010 configured to execute instructions loaded thereon for implementing various aspects, such as those described in this document. Processor 1010 may include embedded memory, input / output interfaces, and various other circuitry known in the art. System 1000 includes at least one memory 1020 (e.g., a volatile memory device and / or a non-volatile memory device). System 1000 includes a storage device 1040 that may include non-volatile memory and / or volatile memory, including but not limited to EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash memory, disk drives, and / or optical disk drives. As a non-limiting example, storage device 1040 may include internal storage devices, attached storage devices, and / or network-accessible storage devices.
[0031] System 1000 includes an encoder / decoder module 1030 configured to, for example, process data to provide encoded or decoded video, and the encoder / decoder module 1030 may include its own processor and memory. The encoder / decoder module 1030 represents a module that can be included in a device to perform encoding and / or decoding functions. It is well known that a device may include one or both of an encoding module and a decoding module. Furthermore, the encoder / decoder module 1030 may be implemented as a standalone element of system 1000, or may be incorporated within processor 1010 as a combination of hardware and software known to those skilled in the art.
[0032] Program code to be loaded onto processor 1010 or encoder / decoder 1030 to execute the various aspects described in this document may be stored in storage device 1040 and subsequently loaded onto memory 1020 for execution by processor 1010. According to various embodiments, one or more of processor 1010, memory 1020, storage device 1040, and encoder / decoder module 1030 may store one or more items from various projects during the execution of the processes described in this document. Such stored items may include, but are not limited to, input video, decoded or partially decoded video, bitstreams, matrices, variables, and intermediate or final results of processing equations, formulas, operations, and operational logic.
[0033] In several embodiments, the memory within processor 1010 and / or encoder / decoder module 1030 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other embodiments, external memory (e.g., the processing device may be processor 1010 or encoder / decoder module 1030) is used for one or more of these functions. The external memory may be memory 1020 and / or storage device 1040, such as volatile memory and / or non-volatile flash memory. In several embodiments, external non-volatile flash memory is used to store the television's operating system. In at least one embodiment, fast external volatile memory, such as RAM, is used as working memory for video encoding and decoding operations, such as for MPEG-2, HEVC, or VVC.
[0034] Inputs to the components of system 1000 may be provided by various input devices as shown in box 1130. Such input devices include, but are not limited to: (i) an RF section that receives RF signals, for example, transmitted by a broadcaster via radio; (ii) a composite input terminal; (iii) a USB input terminal; and / or (iv) an HDMI input terminal.
[0035] In various embodiments, the input device of block 1130 has associated corresponding input processing elements as known in the art. For example, the RF section may be associated with elements required to: (i) select a desired frequency (also known as select a signal, or limit the signal band to a band), (ii) down-convert the selected signal, (iii) further band-limit the signal to a narrower band to select (e.g.,) a signal band that may be referred to as a channel in some embodiments), (iv) demodulate the down-converted and band-limited signal, (v) perform error correction, and (vi) demultiplex to select the desired data packet stream. The RF section of various embodiments includes one or more elements for performing these functions, such as frequency selectors, signal selectors, band limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF section may include tuners that perform various of these functions, including, for example, down-converting received signals to a lower frequency (e.g., intermediate frequency or near-baseband frequency) or to baseband. In one set-top box implementation, the RF section and its associated input processing elements receive RF signals transmitted via a wired (e.g., cable) medium and perform frequency selection by filtering, down-converting, and re-filtering to a desired frequency band. Various implementations rearrange the order of the aforementioned (and other) components, remove some of these components, and / or add other components that perform similar or different functions. Adding components may include inserting components between existing components, such as inserting amplifiers and analog-to-digital converters. In various implementations, the RF section includes an antenna.
[0036] Furthermore, the USB and / or HDMI terminals may include corresponding interface processors for connecting the system 1000 to other electronic devices across USB and / or HDMI connections. It should be understood that various aspects of input processing (e.g., Reed-Solomon error correction) may be implemented as needed, for example, within a separate input processing IC or within the processor 1010. Similarly, aspects of USB or HDMI interface processing may be implemented as needed, either within a separate interface IC or within the processor 1010. The demodulated, error-corrected, and demultiplexed stream is provided to various processing elements, including, for example, the processor 1010, and an encoder / decoder 1030 operating in conjunction with memory and storage elements, to process the data stream as needed for presentation on the output device.
[0037] Various components of the system 1000 can be housed within an integrated housing. Within the integrated housing, the various components can be interconnected and transmit data therebetween using a suitable connection arrangement (e.g., internal buses as known in the art, including I2C buses, wiring, and printed circuit boards).
[0038] System 1000 includes a communication interface 1050 capable of communicating with other devices via a communication channel 1060. The communication interface 1050 may include, but is not limited to, a transceiver configured to transmit and receive data via the communication channel 1060. The communication interface 1050 may include, but is not limited to, a modem or network interface card (NIC), and the communication channel 1060 may be implemented, for example, in a wired and / or wireless medium.
[0039] In various implementations, data is streamed to system 1000 using a Wi-Fi network such as IEEE 802.11. The Wi-Fi signal in these implementations is received via a communication channel 1060 and a communication interface 1050 suitable for Wi-Fi communication. The communication channel 1060 in these implementations is typically connected to an access point or router that provides access to external networks, including the Internet, to allow streaming applications and other cloud-based communications. Other implementations use a set-top box that transmits data via an HDMI connection of input block 1130 to provide streaming data to system 1000. Still other implementations use an RF connection of input block 1130 to provide streaming data to system 1000.
[0040] System 1000 can provide output signals to various output devices, including a display 1100, a speaker 1110, and other peripheral devices 1120. In various examples of embodiments, the other peripheral devices 1120 include one or more of the following: a standalone DVR, a disk player, a stereo system, a lighting system, and other devices that provide functionality based on the output of system 1000. In various embodiments, control signals are transmitted between system 1000 and the display 1100, speaker 1110, or other peripheral devices 1120 using signaling (such as AV.Link, CEC, or other communication protocols), which enables device-to-device control with or without user intervention. Output devices can be communicatively coupled to system 1000 via dedicated connections through corresponding interfaces 1070, 1080, and 1090. Alternatively, output devices can be connected to system 1000 via communication interface 1050 using communication channel 1060. The display 1100 and speaker 1110 can be integrated into a single unit with other components of system 1000 in electronic devices such as televisions. In various implementations, the display interface 1070 includes a display driver, such as, for example, a timing controller (T Con) chip.
[0041] For example, if the RF portion of input 1130 is part of a separate set-top box, then display 1100 and speaker 1110 may optionally be separate from one or more other components. In various embodiments where display 1100 and speaker 1110 are external components, output signals may be provided via dedicated output connections, including, for example, an HDMI port, a USB port, or a COMP output. The specific embodiments described herein may be implemented, for example, in methods or processes, apparatuses, software programs, data streams, or signals. Even if discussed only in the context of a single form of specific embodiment (e.g., discussed only as a method), specific embodiments of the discussed features may also be implemented in other forms (e.g., apparatuses or programs). Apparatuses may be implemented, for example, in suitable hardware, software, and firmware. Methods may be implemented in apparatuses (such as, for example, processors) that generally refer to processing devices, including, for example, computers, microprocessors, integrated circuits, or programmable logic devices. Processors also include communication devices, such as, for example, computers, mobile phones, portable / personal digital assistants (“PDAs”), and other devices that facilitate information communication between end users.
[0042] As described above, deblocking filters are loop filters (165) applied to reconstruct images to reduce coding artifacts. These filters require parameters. The following syntax elements are described in examples of video coding systems as specified by VVC Draft 8. However, other video coding systems or other versions of VVC may use similar mechanisms for signaling and using deblocking filters. In such examples, deblocking parameters can be encoded in the Picture Parameter Set (PPS), in the Slice Header (SH), or in the Picture Header (PH). This is controlled by a PPS flag named `deblocking_filter_override_enabled_flag`. If this flag is equal to one, the parameters are encoded in the PH or SH; otherwise, they are encoded in the PPS. This is illustrated in Table 1.
[0043] pic_parameter_set_rbsp(){ descriptor … deblocking_filter_control_present_flag u(1) if(deblocking_filter_control_present_flag){ deblocking_filter_override_enabled_flag u(1) pps_deblocking_filter_disabled_flag u(1) if(!pps_deblocking_filter_disabled_flag){ pps_beta_offset_div2 se(v) pps_tc_offset_div2 se(v) pps_cb_beta_offset_div2 se(v) pps_cb_tc_offset_div2 se(v) pps_cr_beta_offset_div2 se(v) pps_cr_tc_offset_div2 se(v) } } … if(deblocking_filter_override_enabled_flag) dbf_info_in_ph_flag u(1)
[0044] Table 1
[0045] The semantics of the tag are as follows:
[0046] -deblocking_filter_override_enabled_flag equal to 1 specifies that ph_deblocking_filter_override_flag exists in the PH of the reference PPS, or slice_deblocking_filter_override_flag exists in the slice header of the reference PPS.
[0047] -deblocking_filter_override_enabled_flag equal to 0 specifies that ph_deblocking_filter_override_flag does not exist in the PH of the reference PPS, or slice_deblocking_filter_override_flag does not exist in the slice header of the reference PPS.
[0048] - If it does not exist, it is inferred that the value of deblocking_filter_override_enabled_flag is equal to 0.
[0049] If overriding is allowed, dbf_info_in_ph_flag specifies whether the parameter is encoded in PH or SH. More specifically:
[0050] -dbf_info_in_ph_flag equal to 1 specifies that the deblocking filter information exists in the PH syntax structure and not in the slice header of the reference PPS that does not contain the PH syntax structure.
[0051] -dbf_info_in_ph_flag equal to 0 specifies that the deblocking filter information does not exist in the PH syntax structure, but may exist in the slice header of a reference PPS that does not contain a PH syntax structure.
[0052] - If it does not exist, it is inferred that the value of dbf_info_in_ph_flag is equal to 0.
[0053] In the image header, the parameters are encoded as shown in Table 2.
[0054] picture_header_structure(){ descriptor … if(deblocking_filter_override_enabled_flag&&dbf_info_in_ph_flag){ [[ID=3)7]]ph_deblocking_filter_override_flag u(1) if(ph_deblocking_filter_override_flag){ ph_deblocking_filter_disabled_flag u(1) if(!ph_deblocking_filter_disabled_flag){ ph_beta_offset_div2 se(v) ph_tc_offset_div2 se(v) ph_cb_beta_offset_div2 se(v) ph_cb_tc_offset_div2 se(v) ph_cr_beta_offset_div2 se(v) ph_cr_tc_offset_div2 se(v) } } } …
[0055] Table 2
[0056] In the slice header, the parameters are encoded as shown in Table 3.
[0057] slice_header(){ descriptor … if(deblocking_filter_override_enabled_flag&&!dbf_info_in_ph_flag) slice_deblocking_filter_override_flag u(1) if(slice_deblocking_filter_override_flag){ slice_deblocking_filter_disabled_flag u(1) if(!slice_deblocking_filter_disabled_flag){ slice_beta_offset_div2 se(v) slice_tc_offset_div2 se(v) slice_cb_beta_offset_div2 se(v) slice_cb_tc_offset_div2 se(v) slice_cr_beta_offset_div2 se(v) slice_cr_tc_offset_div2 se(v) } } …
[0058] Table 3
[0059] At all three levels (PPS, PH, and HS), the encoded deblocking parameters can be beta_offset_div2, tc_offset_div2, cb_beta_offset_div2, cb_tc_offset_div2, cr_beta_offset_div2, and cr_tc_offset_div2. These represent the beta and tc offsets used for deblocking and can be encoded for both luma and chroma (cb and cr) components. Unlike many other syntaxes in video coding systems, chroma parameters can be encoded regardless of the chroma format.
[0060] Specifically, the YUV400 chroma format is a format that only contains the luminance component. In other words, it does not use all chroma-related syntax and code.
[0061] Similarly, there exists an encoding mode called yuv444 for the separable color components. In this case, the chromaticity component is treated as an independent luminance component. This configuration corresponds to the SPS flag separate_colour_plane_flag, which is encoded as shown in Table 4.
[0062] seq_parameter_set_rbsp(){ descriptor … chroma_format_idc u(2) if(chroma_format_idc == 3) separate_colour_plane_flag u(1) …
[0063] Table 4
[0064] In this table, a chroma_format_idc value of 3 indicates a chroma format of 444.
[0065] Therefore, there are two configurations where chroma-dependent syntax should not be used. A variable named `ChromaArrayType` can be used to distinguish between these cases, and it can be calculated as follows: When `separate_colour_plane_flag` equals 0, `ChromaArrayType` is set to equal `chroma_format_idc`; otherwise, `ChromaArrayType` is set to equal 0. Therefore, if `ChromaArrayType` equals zero, chroma-dependent syntax should not be used.
[0066] However, regardless of the ChromaArrayType value, chroma-related deblocking filtering parameters are encoded. That is, even if chroma is not used, the following four syntax elements are all encoded: cb_beta_offset_div2, cb_tc_offset_div2, cr_beta_offset_div2, and cr_tc_offset_div2. Therefore, this type of signaling is redundant and consumes some bits that are never used. Furthermore, this makes it more complex for encoder designers to set irrelevant values.
[0067] The implementation scheme described below was designed with the foregoing in mind.
[0068] In at least one embodiment, a video coding system processing at least one block of at least one image of a video includes an encoding process and a decoding process that respectively provide or use signaling information related to the video, wherein the signaling information includes deblocking filter parameters for chroma when information indicating the presence of deblocking filter information is true, information indicating that deblocking filter is disabled is false, and information indicating the chroma type is true. In other words, the presence of deblocking filter parameters for chroma is tested against a set of syntax elements. This allows for improved coding efficiency by reducing the overall size of the required information, since these parameters only appear in the bitstream when needed.
[0069] Figure 4AAn example flowchart of an encoding process according to an exemplary embodiment is shown. Such a process is implemented, for example, in the video encoder 100 described above. In this process, in step 401, the encoder checks a flag indicating the presence of deblocking filter control parameters. If so, in the "Yes" branch, the encoder checks a flag indicating that deblocking filter is disabled in step 402. If not, in the "No" branch, the encoder checks the chroma type in step 403. This test corresponds to determining whether to use YUV400 or YUV444; in other words, determining whether only the luminance component is used (without chrominance), or whether luminance and chrominance are encoded separately in different planes. If so, in the branch "No chrominance or separate planes," the encoder signals the deblocking filter parameters to be applied to the chrominance sample in step 404. In other words, the deblocking filter parameters are added to the signaling information to be encoded. In all other cases (the branch "No" in steps 401 or 403, and the branch "Yes" in step 402), the deblocking filter parameters for chrominance are signaled. Finally, in step 405, the block is encoded with the signaling information. This process is repeated on other blocks in step 406 until the encoded bitstream is provided in step 407. Those skilled in the art will recognize that the entire encoding process includes other steps not shown herein because they are not relevant to the implementation.
[0070] Figure 4BAn example flowchart of a decoding process according to an exemplary embodiment is shown. Such a process is implemented, for example, in video decoder 200, but also in video encoder 100, both of which are described above. The process related to the decoder is described. In this process, in step 411, the decoder checks a flag indicating the presence of deblocking filter control parameters. If so, in the "Yes" branch, the decoder checks a flag indicating that deblocking filter is disabled in step 412. If not, in the "No" branch, the decoder checks the chroma type in step 413. Similar to the encoding process, this test corresponds to determining whether YUV400 or YUV444 is used; in other words, determining whether only the luma component is used (no chroma), or whether luma and chroma are encoded separately in different planes. If so, in the "No chroma or separate plane" branch, the decoder obtains the deblocking filter parameters to be applied to the chroma sample in step 414. In all other cases (the "No" branch of step 411 or 413, the "Yes" branch of step 412), no signal is sent for the deblocking filter parameters used for chroma; therefore, the appropriate deblocking filter parameters are inferred in step 415. Finally, in step 405, the block is decoded, and the deblocking filter is applied using the obtained or inferred parameters. Those skilled in the art will recognize that the entire encoding process includes other steps not shown herein because they are not relevant to the implementation.
[0071] Figure 4A and Figure 4B The process allows for the resolution of redundancy issues because the encoding of the chroma deblocking parameters is modulated by the chroma format. In an exemplary implementation using the syntax of VVC Draft 8, this can be done by testing the value of the ChromaArrayType syntax element. When ChromaArrayType is zero, the following parameters should not be encoded at PPS, PH, or SH levels: beta_offset_div2, tc_offset_div2, cb_beta_offset_div2, cb_tc_offset_div2, cr_beta_offset_div2, and cr_tc_offset_div2.
[0072] Table 5 shows exemplary implementations based on a specific implementation applied to the VVC syntax, where the ChromaArrayType syntax element was tested at the image parameter set level.
[0073] pic_parameter_set_rbsp(){ descriptor … deblocking_filter_control_present_flag u(1) if(deblocking_filter_control_present_flag){ deblocking_filter_override_enabled_flag u(1) pps_deblocking_filter_disabled_flag u(1) if(!pps_deblocking_filter_disabled_flag){ pps_beta_offset_div2 se(v) pps_tc_offset_div2 se(v) if(ChromaArrayType != 0){ pps_cb_beta_offset_div2 se(v) pps_cb_tc_offset_div2 se(v) pps_cr_beta_offset_div2 se(v) pps_cr_tc_offset_div2 } } } … se(v) if(deblocking_filter_override_enabled_flag) u(1)
[0074] dbf_info_in_ph_flag
[0075] Table 6 shows exemplary implementations based on a specific implementation applied to the VVC syntax, where the ChromaArrayType syntax element was tested at the image header level.
[0076] Table 5 picture_header_structure(){ … descriptor if(deblocking_filter_override_enabled_flag&&dbf_info_in_ph_flag){ ph_deblocking_filter_override_flag u(1) if(ph_deblocking_filter_override_flag){ ph_deblocking_filter_disabled_flag u(1) if(!ph_deblocking_filter_disabled_flag){ ph_beta_offset_div2 se(v) ph_tc_offset_div2 se(v) if(ChromaArrayType!=0){ ph_cb_beta_offset_div2 se(v) ph_cb_tc_offset_div2 se(v) ph_cr_beta_offset_div2 se(v) ph_cr_tc_offset_div2 se(v) } } } } …
[0077] Table 6
[0078] Table 7 shows exemplary implementations based on a specific implementation applied to the VVC syntax, where the ChromaArrayType syntax element was tested at the slice header level.
[0079]
[0080]
[0081] Table 7
[0082] This mechanism simplifies encoder design because when using YUV444 or YUV400 chroma formats with separable color formats, it eliminates the need to specify dummy values for unused parameters. It also improves encoding efficiency by saving bits at the PPS, PH, or SH levels. This is particularly attractive when considering large datasets or internet traffic.
[0083] In the second implementation, a method to reduce the interaction between SPS and PPS is proposed. In practice, ChromaArrayType depends on the SPS syntax elements chroma_format_idc and separate_colour_plane_flag. Therefore, it is probably preferable not to use this value within PPS. For this reason, the PPS flag pps_chroma_tool_offsets_present_flag can be used. This flag means enabling / disabling all chroma QP offsets. In addition to the syntax elements shown in Table 1, the picture parameter set also includes the elements shown in Table 8.
[0084]
[0085]
[0086] Table 8
[0087] The semantics of these syntactic elements are as follows:
[0088] The value of -pps_chroma_tool_offsets_present_flag equal to 1 indicates that the chroma tool offset-related syntax elements exist in the PPS RBSP syntax structure.
[0089] The value of -pps_chroma_tool_offsets_present_flag being 0 indicates that the chroma tool offset-related syntax elements do not exist in the PPS RBSP syntax structure.
[0090] - When ChromaArrayType equals 0, the value of pps_chroma_tool_offsets_present_flag should be equal to 0.
[0091] Therefore, in this second embodiment, the same markers are used to check whether the chromaticity components are available, as shown in Table 9.
[0092] pic_parameter_set_rbsp(){ descriptor … deblocking_filter_control_present_flag u(1) if(deblocking_filter_control_present_flag){ deblocking_filter_override_enabled_flag u(1) pps_deblocking_filter_disabled_flag u(1) if(!pps_deblocking_filter_disabled_flag){ pps_beta_offset_div2 se(v) pps_tc_offset_div2 se(v) if(pps_chroma_tool_offsets_present_flag){ pps_cb_beta_offset_div2 se(v) pps_cb_tc_offset_div2 se(v) pps_cr_beta_offset_div2 se(v) pps_cr_tc_offset_div2 se(v) } } } … if(deblocking_filter_override_enabled_flag) dbf_info_in_ph_flag u(1)
[0093] Table 9
[0094] By editing, it was proposed to change the name of the flag from pps_chroma_tool_offsets_present_flag to pps_chroma_tool_offsets_dbf_present_flag. This is shown in Table 9.1 below.
[0095] pic_parameter_set_rbsp(){ descriptor … deblocking_filter_control_present_flag u(1) if(deblocking_filter_control_present_flag){ deblocking_filter_override_enabled_flag u(1) pps_deblocking_filter_disabled_flag u(1) if(!pps_deblocking_filter_disabled_flag){ pps_beta_offset_div2 se(v) pps_tc_offset_div2 se(v) if(pps_chroma_tool_offsets_dbf_present_flag{ pps_cb_beta_offset_div2 se(v) pps_cb_tc_offset_div2 se(v) pps_cr_beta_offset_div2 se(v) pps_cr_tc_offset_div2 se(v) } } } … if(deblocking_filter_override_enabled_flag) dbf_info_in_ph_flag u(1)
[0096] Table 9.1
[0097] The semantics of this syntax element are as follows:
[0098] -pps_chroma_tool_offsets_dbf_present_flag equal to 1 specifies that the chroma tool offset-related syntax elements and chroma deblocking filter parameters exist in the PPS RBSP syntax structure.
[0099] The value of -pps_chroma_tool_offsets_dbp_present_flag being 0 indicates that the chroma tool offset-related syntax elements and chroma deblocking filter parameters do not exist in the PPS RBSP syntax structure.
[0100] - When ChromaArrayType equals 0, the value of pps_chroma_tool_offsets_dbf_present_flag should be equal to 0.
[0101] In at least one variant implementation, it is proposed to avoid any dependency of the PPS on the SPS and to decouple the control of the chroma QP offset tool from the control of the chroma deblocking filter parameters. This can be achieved by inserting a specific flag in the PPS dedicated to signaling the chroma deblocking filter parameters in the PPS under consideration. This can take the form of the pps_chroma_deblocking_filter_parms_present_flag syntax element shown in Table 10 and a modified PPS syntax table.
[0102] pic_parameter_set_rbsp(){ Descriptor … deblocking_filter_control_present_flag u(1) if(deblocking_filter_control_present_flag){ deblocking_filter_override_enabled_flag u(1) pps_deblocking_filter_disabled_flag u(1) if(!pps_deblocking_filter_disabled_flag){ pps_beta_offset_div2 se(v) pps_tc_offset_div2 se(v) pps_chroma_deblocking_filter_params_present_flag u(1) if(pps_chroma_deblocking_filter_params_present_flag){ pps_cb_beta_offset_div2 se(v) pps_cb_tc_offset_div2 se(v) pps_cr_beta_offset_div2 se(v) pps_cr_tc_offset_div2 se(v) } } } … if(deblocking_filter_override_enabled_flag) dbf_info_in_ph_flag u(1)
[0103] Table 10
[0104] The advantage of this variant implementation is that it decouples the signaling of chroma deblocking filter parameters from the signaling of chroma QP offset parameters in the PPS, which can depend on, for example, the pps_chroma_tool_offsets_present_flag specified in VVC draft 8. The semantics of the newly introduced PPS-level markup syntax elements are as follows:
[0105] The value of -pps_chroma_deblocking_filter_params_present_flag equal to 1 indicates that the chroma decoding image parameters exist in the PPS RBSP syntax structure.
[0106] -pps_chroma_deblocking_filter_params_present_flag equal to 0 indicates that the chroma deblocking filter parameters do not exist in the PPS RBSP syntax structure.
[0107] - When ChromaArrayType equals 0, the value of pps_chroma_deblocking_filter_params_present_flag should be equal to 0.
[0108] In at least one variant implementation, a PPS level flag indicating chroma availability is introduced. For example, it is named `pps_chroma_available_flag` and repeats the information that `ChromaArrayType` is different from 0 or not at the PPS level in a certain way. If this new flag is equal to zero or false, the chroma deblocking and chroma offset related flags should be equal to zero. The requirement for bitstream consistency is that the value of `pps_chroma_available_flag` should be zero when `chromaArrayType` is zero, and the value of `pps_chroma_available_flag` should be one when `chromaArrayType` is one.
[0109] According to a first aspect of this implementation, chroma deblocking filter parameters should not exist in the PPS, as shown in Table 11. According to another aspect, if the flag pps_chroma_available_flag is equal to zero or false, then PPS chroma QP offset-related syntax elements starting with pps_chroma_tool_offsets_present_flag should not exist in the PPS.
[0110] pic_parameter_set_rbsp(){ Descriptor … pps_chroma_available_flag u(1) if(pps_chroma_available_flag){ pps_chroma_tool_offsets_present_flag u(1) if(pps_chroma_tool_offsets_present_flag){ pps_cb_qp_offset se(v) pps_cr_qp_offset se(v) pps_joint_cbcr_qp_offset_present_flag u(1) if(pps_joint_cbcr_qp_offset_present_flag) pps_joint_cbcr_qp_offset_value se(v) pps_slice_chroma_qp_offsets_present_flag u(1) pps_cu_chroma_qp_offset_list_enabled_flag u(1) } } … deblocking_filter_control_present_flag u(1) if(deblocking_filter_control_present_flag){ deblocking_filter_override_enabled_flag u(1) pps_deblocking_filter_disabled_flag u(1) if(!pps_deblocking_filter_disabled_flag){ pps_beta_offset_div2 se(v) pps_tc_offset_div2 se(v) if(pps_chroma_available_flag){ pps_cb_beta_offset_div2 se(v) pps_cb_tc_offset_div2 se(v) pps_cr_beta_offset_div2 se(v) pps_cr_tc_offset_div2 se(v) } } } … if(deblocking_filter_override_enabled_flag) dbf_info_in_ph_flag u(1)
[0111] Table 11
[0112] According to a variant of this implementation, if the flag pps_chroma_abailable_flag is equal to 1 or true, the flag pps_chroma_deblocking_filter_params_present_flag will be signaled as described in the previous implementation in Table 10. The presence of the chroma deblocking filter parameters in the PPS should then depend on the value of the flag pps_chroma_deblocking_filter_params_present_flag. If it is not present in the bitstream, it should be inferred that the flag pps_chroma_deblocking_filter_params_present_flag is 0.
[0113]
[0114]
[0115] Table 12
[0116] Figure 5A high-level representation of an end-to-end workflow supporting the delivery of encoded video content, as illustrated in the present invention, is provided. Encoder device 100 is configured to implement a method for encoding an image or video bitstream according to at least one embodiment described above, and decoder device 200 is configured to implement a method for decoding an image or video stream according to at least one embodiment described above. Two remote devices 100 and 200 communicate via a distribution network 500, which is configured to provide at least the encoded image or video bitstream from device 100 to device 200.
[0117] The device 100 configured to implement the encoding method belongs to a group of devices, including mobile devices, communication devices, gaming devices, tablets (or tablet computers), computer devices such as laptops, still image cameras, camcorders, encoding chips, still image servers, and video servers (e.g., broadcast servers, video-on-demand servers, or web servers).
[0118] Device 200, configured to implement the decoding method as described herein, belongs to a group of devices including mobile devices, communication devices, gaming devices, set-top boxes, televisions (or TVs), tablets (or tablet computers), computer devices such as laptops, monitors, head-mounted displays, and decoding chips.
[0119] According to one example, the network is a broadcast network adapted to broadcast still images or video images from device 100 to multiple decoding devices, including device 200. DVB- and ATSC-based networks are examples of such broadcast networks. According to another example, the network is a broadband network adapted to transmit still images or video images from device 100 to multiple decoding devices, including device 200. Internet-based networks, GSM networks, or IPTV networks are examples of such broadband networks.
[0120] In a preferred embodiment, the end-to-end workflow uses a broadcast server for device 100, a television or set-top box for device 200, and a DVB terrestrial broadcast network.
[0121] In an alternative implementation, the distribution network NET is replaced by a physical encapsulation medium in which encoded image or video bitstreams are stored. Physical encapsulation media include optical encapsulation media, such as Blu-ray discs and UHD Blu-ray, but also include memory-based encapsulation media.
[0122] This disclosure describes various types of information that can be transmitted or stored, such as, for example, syntax. This information can be encapsulated or arranged in a variety of ways, including those common in video standards, such as placing the information in SPS, PPS, NAL units, headers (e.g., NAL unit headers or slice headers), or SEI messages. Other methods are also available, including those common to system-level or application-level standards, such as placing the information in one or more of the following:
[0123] • SDP (Session Description Protocol) is a format used to describe multimedia communication sessions for session notification and session invitation, for example, as described in the RFC and used in conjunction with RTP (Real-Time Transport Protocol) transmission.
[0124] • MPEG DASH MPD (HTTP-based Dynamic Adaptive Streaming, Media Presentation Description) descriptors, such as those used in DASH and transmitted via HTTP, are associated with a representation or set of representations to provide additional features to the content representation.
[0125] • RTP (Real-Time Transport Protocol) header extensions, for example, as used during RTP streaming.
[0126] • ISO basic media file format, such as the box used in OMAF, which is an object-oriented building block defined by a unique type identifier and length, also known as "atom" in some specifications.
[0127] • An HLS (HTTP Live Streaming) manifest transmitted over HTTP. The manifest can be associated with, for example, a version or set of versions of the content to provide the characteristics of that version or set of versions.
[0128] Figure 6AAn example flowchart of an encoding process according to a second exemplary embodiment is shown. More specifically, it represents an exemplary flowchart for implementing a variant embodiment corresponding to Table 9 above. Such a process 600 is implemented, for example, in the video encoder 100 described above. In this process, in step 602, the encoder checks the use of chroma and the use of individual color planes. If chroma is used and no individual color plane is used, then in step 604, a chroma offset value is required. This is signaled by an appropriate flag (e.g., pps_chroma_tool_offsets_present_flag as in Table 9), and the chroma offset value is signaled, for example, by inserting the cb and cr offset-related elements shown in Table 9. If this is not the case, in the branch "No chroma or individual plane", no additional signaling related to the chroma offset value is signaled. The block is then encoded with appropriate signaling information in step 608. This process is repeated on other blocks in steps 602, 604, and 606 until the encoded bitstream is provided in step 608. Those skilled in the art will recognize that the entire coding process includes other steps that are not shown herein because they are not relevant to the implementation scheme.
[0129] Figure 6B An example flowchart of a decoding process according to a second exemplary embodiment is shown. More specifically, it represents an exemplary flowchart for implementing a variant embodiment corresponding to Table 9 above. Such a process 650 is implemented, for example, in the video decoder 200 described above. In this process, in step 652, the decoder checks for a flag indicating the presence of a chroma offset value (e.g., pps_chroma_tool_offsets_present_flag as shown in Table 9). If this is the case, the chroma offset value is obtained in step 654, for example, by parsing subsequent elements as shown in Table 9. If this is not the case, no further additional signaling related to the chroma offset value is obtained in the branch “No chroma or separate plane”. The block is then decoded based on the appropriate signaling information in step 656. This process is repeated on other blocks in steps 652, 654, and 656 until the bitstream has been processed. Those skilled in the art will recognize that the entire encoding process includes other steps that are not shown herein because they are not relevant to the embodiment.
[0130] The references to "an embodiment," "an implementation," "a specific embodiment," or "a particular embodiment," and other variations thereof, mean that the specific features, structures, characteristics, etc., described in connection with the embodiment are included in at least one embodiment. Therefore, the appearance of the phrases "in an embodiment," "in an embodiment," "in a particular embodiment," or "in a particular embodiment," and any other variations appearing throughout this specification, do not necessarily refer to the same embodiment. Furthermore, this application or its claims may refer to "determining" various information. Determining information may include, for example, one or more of estimated information, calculated information, predicted information, or information retrieved from memory. Additionally, this application or its claims may relate to "accessing" various information. Accessing information may include, for example, receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, calculated information, predicted information, or estimated information. Furthermore, this application or its claims may relate to "receiving" various information. Like "access," receiving is intended as a broad term. Receiving information may include, for example, (e.g., from memory or optical media storage devices) accessing information or retrieving information. Furthermore, during operations such as storing, processing, transmitting, moving, copying, erasing, calculating, determining, predicting, or estimating information, "receiving" typically involves one or more methods. Additionally, luma and luminance are used interchangeably and should be understood as having the same meaning. Similarly, chroma and chrominance are used interchangeably and should be understood as having the same meaning.
[0131] It should be understood that, for example, in the cases of “A / B,” “A and / or B,” and “at least one of A and B,” the use of any of the following “ / ,” “and / or,” and “at least one” is intended to cover selecting only the first listed option (A), or only the second listed option (B), or selecting both options (A and B). As a further example, in the cases of “A, B, and / or C” and “at least one of A, B, and C,” such phrases are intended to cover selecting only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or selecting all three options (A, B, and C). As will be apparent to those skilled in the art and related fields, this can be extended to as many items as possible listed.
[0132] It will be apparent to those skilled in the art that embodiments may produce various signals formatted to carry, for example, storable or transmissible information. The information may include, for example, instructions for performing a method or data generated by one of the embodiments. For example, signals may be formatted to carry a bitstream of the embodiments. Such signals may be formatted as, for example, electromagnetic waves (e.g., using the radio frequency portion of the spectrum) or baseband signals. Formatting may include, for example, encoding the data stream and using a modulated carrier with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. As is known, signals can be transmitted via a variety of different wired or wireless links. Signals may be stored on a processor-readable medium.
Claims
1. A video encoding method, the video encoding method comprising: For at least one block of at least one image in a video, the at least one block and corresponding signaling information, including at least information indicating the presence of deblocking filter parameters representing chroma, are encoded. Wherein, when the chroma deblocking filter parameters exist and a separate color plane is not used, the information indicating the existence of the chroma deblocking filter parameters is set to a first value, and the signaling information further includes information indicating the chroma deblocking filter parameters, and When the chroma deblocking filter parameter is absent or a separate color plane is used, the information indicating the presence of the chroma offset value is set to a second value, and no further signal is sent to the information indicating the chroma deblocking filter parameter.
2. The video encoding method according to claim 1, wherein a signal is sent in the image parameter set to notify the presence of the information indicating the existence of the deblocking filter parameters for chroma.
3. A video decoding method, the video decoding method comprising: At least one block of at least one image in a video: - Obtain signaling information, which includes at least information indicating the presence of deblocking filter parameters for chroma. - Under the condition that the information representing the deblocking filter parameters for chroma is set to a first value and no separate color plane is used, obtain the information representing the deblocking filter parameters for chroma from the signaling information, and - Decode the at least one block based on the obtained chroma deblocking filter parameters.
4. The video decoding method according to claim 3, wherein a signal is sent in the image parameter set to notify the information indicating the presence of the deblocking filter parameters for chroma.
5. The video decoding method according to claim 4, wherein the information indicating the presence of deblocking filter parameters for chroma is signaled at the image level.
6. A video encoding apparatus comprising an encoder configured to encode, for at least one block of at least one image of a video, the at least one block and corresponding signaling information including at least information indicating the presence of deblocking filter parameters representing chroma. Wherein, when the chroma deblocking filter parameters exist and a separate color plane is not used, the information indicating the existence of the chroma deblocking filter parameters is set to a first value, and the signaling information further includes information indicating the chroma deblocking filter parameters, and When the chroma deblocking filter parameter is absent or a separate color plane is used, the information indicating the presence of the chroma offset value is set to a second value, and no further signal is sent to the information indicating the chroma deblocking filter parameter.
7. The video encoding apparatus of claim 6, wherein the information indicating the presence of deblocking filter parameters for chroma is signaled in the image parameter set.
8. The video encoding device according to claim 6 or 7, wherein the video encoding device belongs to a group of devices, the group of devices including mobile devices, communication devices, gaming devices, tablets, tablet computers, computer devices including laptops, still image cameras, video cameras, encoding chips, still image servers, video servers, broadcast servers, video-on-demand servers, and web servers.
9. A video decoding apparatus, the video decoding apparatus comprising a decoder configured to: for at least one block of at least one image of a video: - Obtain signaling information, which includes at least information indicating the presence of deblocking filter parameters for chroma. - Under the condition that the information representing the deblocking filter parameters for chroma is set to a first value and no separate color plane is used, obtain the information representing the deblocking filter parameters for chroma from the signaling information, and - Decode the at least one block based on the obtained chroma deblocking filter parameters.
10. The video decoding apparatus of claim 9, wherein the information indicating the presence of deblocking filter parameters for chroma is signaled in the image parameter set.
11. The video decoding apparatus of claim 10, wherein the information indicating the presence of deblocking filter parameters representing chroma is signaled at the picture level.
12. The video decoding device according to any one of claims 9 to 11, wherein the video decoding device belongs to a group of devices, the group of devices including mobile devices, communication devices, gaming devices, set-top boxes, televisions, tablets, tablet computers, computer devices including laptops, displays, head-mounted displays, and decoding chips.
13. A non-transitory computer-readable medium comprising program code instructions executable by a processor to implement the steps of the method according to any one of claims 1 to 5.