Signal transmission of saturation offset in video coding
The video coding system optimizes chroma deblocking filter parameter signaling based on chroma presence, addressing inefficiencies and complexity in existing systems by reducing bit usage and simplifying encoder design.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- INTERDIGITALCE PATENT HLDG SAS
- Filing Date
- 2021-02-23
- Publication Date
- 2026-04-14
AI Technical Summary
Existing video coding systems inefficiently handle chroma deblocking filter parameters, leading to redundant bit usage and complexity in encoder design due to unnecessary signaling of saturation-related syntax elements, regardless of the saturation format.
Implement a video coding system that conditions the signaling of chroma deblocking filter parameters based on the presence of chroma, using flags to determine whether separate color planes are used, thereby eliminating unnecessary signaling and reducing bit usage.
Improves coding efficiency by reducing redundant bit usage and simplifying encoder design, particularly in large datasets and internet traffic scenarios.
Smart Images

Figure 0007846013000014 
Figure 0007846013000015 
Figure 0007846013000016
Abstract
Description
Technical Field
[0001] At least one of the embodiments generally relates to signaling syntax for video coding and decoding, and more specifically, to chroma offset values.
Background Art
[0002] To achieve high compression efficiency, image and video coding methods typically employ prediction and transformation to exploit spatial redundancy and temporal redundancy within video content. Generally, intra prediction or inter prediction is used to utilize intra-frame correlation or inter-frame correlation, and the difference between the original block and the predicted block is often shown as a prediction error or prediction residual, but is transformed, quantized, and entropy-coded. To reconstruct the video, the compressed data is decoded by inverse processes corresponding to entropy coding, quantization, transformation, and prediction.
Summary of the Invention
[0003] One or more of the embodiments provide a video coding system that handles at least one block of at least one image of a video, including an encoding process and a decoding process implemented on an encoding device and a decoding device that respectively provide or use signaling information related to the video. The signaling information includes at least information representing the presence of a chroma offset value. When chroma is present and no separate color plane is used, the information representing the presence of the chroma offset value is set. When the signaling information further includes information representing the chroma offset value, and when chroma is not present or a separate color plane is used, the information representing the presence of the chroma offset value is reset and the presence of the chroma offset value is not further signaled.
[0004] According to a first aspect of at least one embodiment, the video encoding method comprises encoding at least one block of at least one image of a video and corresponding signaling information which includes at least information indicating the presence of a saturation offset value, wherein when saturation is present and no separate color plane is used, the information indicating the presence of a saturation offset value is set and the signaling information further includes information indicating the saturation offset value, and when saturation is absent or a separate color plane is used, the information indicating the presence of a saturation offset value is reset and the information indicating the presence of a saturation offset value is not further transmitted.
[0005] According to a second aspect of at least one embodiment, a video decoding method includes: obtaining signaling information that includes at least information indicating the presence of a saturation offset value for at least one block of at least one image of a video; obtaining information indicating the presence of a saturation offset value from the signaling information while information indicating the presence of a saturation offset value is set; and decoding at least one block based on the obtained signaling information.
[0006] According to a third aspect of at least one embodiment, the apparatus comprises an encoder for encoding picture data for at least one block in a picture or video, wherein the encoder is configured to encode at least one block and corresponding signaling information which includes at least information indicating the presence of a saturation offset value, wherein when saturation is present and no separate color plane is used, the information indicating the presence of a saturation offset value is set and the signaling information further includes information indicating the saturation offset value, and when saturation is absent or a separate color plane is used, the information indicating the presence of a saturation offset value is reset and no further information indicating the saturation offset value is signaled.
[0007] According to a fourth aspect of at least one embodiment, the apparatus comprises a decoder for decoding picture data for at least one block in a picture or video, wherein the decoder is configured to acquire signal information which includes at least information which includes
[0008] According to a fifth aspect of at least one embodiment, the bitstream includes at least one block and corresponding signaling information which includes at least information indicating the presence of a saturation offset value, wherein when saturation is present and no separate color plane is used, the information indicating the presence of a saturation offset value is set and the signaling information further includes information indicating the saturation offset value, and when saturation is absent or no separate color plane is used, the information indicating the presence of a saturation offset value is reset and no further information indicating the saturation offset value is signaled.
[0009] According to a sixth aspect of at least one embodiment, a computer program is presented which includes program code instructions executable by a processor, and the computer program performs a step 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 which includes program code instructions stored in a non-temporary computer-readable medium and executable by a processor, the computer program product performs a step of the method according to at least the first or second aspect. [Brief explanation of the drawing]
[0011] [Figure 1] This example illustrates a block diagram of video encoder 100. [Figure 2]This example illustrates the block diagram of the video decoder 200. [Figure 3] This document illustrates block diagrams of systems that implement various aspects and embodiments. [Figure 4A] An example flowchart for encoding is illustrated using an exemplary embodiment. [Figure 4B] An example flowchart for decoding is illustrated using an exemplary embodiment. [Figure 5] This example of the principle demonstrates a high-level representation of an end-to-end workflow that supports the content delivery of encoded video. [Figure 6A] An example flowchart for encoding is illustrated according to a second exemplary embodiment. [Figure 6B] An example flowchart for decoding, according to a second exemplary embodiment, is illustrated. [Modes for carrying out the invention]
[0012] Figure 1 illustrates a block diagram of an example video encoder 100. Examples of video encoders include HEVC encoders that conform to the High Efficiency Video Coding (HEVC) standard, or HEVC standards that are improvements on the HEVC standard, or encoders that employ HEVC-like technologies such as JEM (Joint Exploration Model) which is under development by JVET (Joint Video Exploration Team) for the Versatile Video Coding (VVC) standard, or other encoders.
[0013] Before encoding, a video sequence may undergo pre-encoding (101). This is done, for example, by applying a color transformation (e.g., RGB4:4:4 to YCbCr4:2:0) to an input color picture to obtain a signal distribution that is more resilient to compression (e.g., using histogram equalization of one of the color components), or by performing a remapping of the input picture components. Metadata can be associated with the pre-processing and appended to the bitstream.
[0014] In encoder 100, the picture is encoded by the encoder elements described below. The picture to be encoded is partitioned into units, for example, CUs (102), and processed. Each unit is encoded using either intra-mode or inter-mode, for example. When a unit is encoded in intra-mode, intra-prediction (160) is performed. In inter-mode, motion estimation (175) and motion compensation (170) are performed. The encoder determines whether to use intra-mode or inter-mode to encode the unit (105), and indicates the intra / inter determination, for example, by a prediction mode flag. The prediction residual is calculated, for example, by subtracting the predicted block from the original image block (110).
[0015] Next, the predicted residual is transformed (125) and quantized (130). The quantized transformed coefficients, as well as the motion vector and other syntactic elements, are entropicoded (145) and output as a bitstream. The encoder can skip the transformation and apply quantization directly to the untransformed residual signal. The encoder can bypass both the transformation and quantization, i.e., the residual is coded directly without applying either the transformation or quantization process.
[0016] The encoder decodes the encoded blocks to provide a reference for further prediction. The quantized transformation coefficients are inversely quantized (140), inversely transformed (150), and the prediction residuals are decoded. By combining the decoded prediction residuals and prediction blocks (155), the image blocks are reconstructed. An in-loop filter (165) is applied to the reconstructed picture, for example, to perform deblocking / SAO (Sample Adaptive Offset) filtering to reduce encoding artifacts. The filtered image is stored in a reference picture buffer (180).
[0017] Figure 2 illustrates a block diagram of an example video decoder 200. Examples of video decoders include HEVC decoders that comply with the High Efficiency Video Coding (HEVC) standard, HEVC decoders that are improvements over the HEVC standard, decoders that employ HEVC-like technologies such as JEM (Joint Exploration Model) under development by JVET (Joint Video Exploration Team) for the Versatile Video Coding (VVC) standard, or other decoders.
[0018] In the example of decoder 200, the bitstream is decoded by the decoder elements as described below. The video decoder 200 generally performs a decoding pass that is the reverse of the encoding pass, as shown in Figure 1, and performs video decoding as part of the encoding of the video data. The encoder 100 generally also performs video decoding as part of the encoding of the video data.
[0019] In particular, the input to the decoder may include a video bitstream and may be generated by the video encoder 100. The bitstream is first entropy decoded (230) to obtain transform coefficients, motion vectors, picture partitioning information, and other coded information. The picture partitioning information indicates the size of the CTU and the manner in which the CTU is divided into CUs and, where applicable, into PUs. Accordingly, the decoder can divide the picture into CTUs and each CTU into CUs according to the decoded picture partitioning information (235). The transform coefficients include at least one embodiment for adapting the chroma quantization parameter described below, are dequantized (240), and are inversely transformed (250) to decode the prediction residual.
[0020] Combining the decoded prediction residual and the prediction block (255) reconstructs the image block. The prediction block may be obtained from intra prediction (260) or motion compensation prediction (i.e., inter prediction) (275) (270). As described above, the AMVP and merge mode techniques may be used to derive motion vectors for motion compensation that may use an interpolation filter to calculate interpolation 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 the reference picture buffer (280).
[0021] The decoded picture may further undergo post-decoding processing (285), such as inverse color conversion (e.g., conversion from YCbCr4:2:0 to RGB4:4:4), or inverse remapping that performs the inverse of the remapping process performed in the pre-encoding processing (101). The post-decoding processing may use metadata derived in the pre-encoding processing and signaled in the bitstream.
[0022] Figure 3 illustrates a block diagram of an example of a system in which various aspects and embodiments are implemented. System 1000 can be embodied as a device comprising various components described below and configured to perform one or more of the aspects described in this 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. The elements of System 1000 can be embodied individually or in combination in a single integrated circuit, multiple ICs, and / or individual components. For example, in at least one embodiment, the processing elements and encoder / decoder elements of System 1000 are distributed across multiple ICs and / or individual components. In various embodiments, System 1000 is communicably coupled to other similar systems or other electronic devices, for example, via a communication bus or through dedicated input and / or output ports. In various embodiments, System 1000 is configured to implement one or more of the aspects described in this document.
[0023] System 1000 includes at least one processor 1010 configured to execute instructions loaded therein to implement various aspects described in this document, for example. The processor 1010 can include embedded memory, input / output interfaces, and various other circuits known in the art. System 1000 includes at least one memory 1020 (e.g., volatile memory devices and / or non-volatile memory devices). System 1000 includes a storage device 1040, which can include, but is not limited to, non-volatile memory and / or volatile memory such as EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, magnetic disk drives, and / or optical disk drives. The storage device 1040 can include, as non-limiting examples, internal storage devices, external storage devices, and / or network-accessible storage devices.
[0024] System 1000 includes, for example, an encoder / decoder module 1030 configured to process data to provide encoded video or decoded video, and the encoder / decoder module 1030 can include its own processor and memory. The encoder / decoder module 1030 represents a module that can be included in a device to perform encoding functions and / or decoding functions. As is known, a device can include one or both of an encoding module and a decoding module. Further, the encoder / decoder module 1030 can be implemented as a separate element of System 1000 or can be incorporated within the processor 1010 as a combination of hardware and software, as is known to those skilled in the art.
[0025] Program code loaded into the processor 1010 or encoder / decoder 1030 to perform the various embodiments described herein can be stored in the storage device 1040 and then loaded into memory 1020 for execution by the processor 1010. According to various embodiments, one or more of the processor 1010, memory 1020, storage device 1040, and encoder / decoder module 1030 can store one or more of various items during the execution of the processing stored in this document. Such stored items may include, but are not limited to, input video, decoded video, or portions of decoded video, bitstreams, matrices, variables, and intermediate or final results from the processing of equations, expressions, actions, and operational logic.
[0026] In some embodiments, the internal memory of the processor 1010 and / or the encoder / decoder module 1030 is used to store instructions and to provide working memory for processing required during encoding or decoding. However, in other embodiments, memory outside the processing device (the processing device can be, for example, either the processor 1010 or the encoder / decoder module 1030) is used for one or more of these functions. The external memory can be memory 1020 and / or storage device 1040, for example, dynamic volatile memory and / or non-volatile flash memory. In some embodiments, the external non-volatile flash memory is used to store the television's operating system. In at least one embodiment, high-speed external dynamic volatile memory, such as RAM, is used as working memory for video coding and decoding operations such as MPEG-2, HEVC, or VVC.
[0027] Inputs to the elements of system 1000 can be provided through various input devices, as shown in block 1130. Such input devices include, but are not limited to, (i) an RF unit for receiving RF signals wirelessly transmitted by a broadcasting station, (ii) a composite input terminal, (iii) a USB input terminal, and / or (iv) an HDMI input terminal.
[0028] In various embodiments, the input device of block 1130 has associated input processing elements as known in the art. For example, the RF portion may be associated with elements necessary for (i) selecting a desired frequency (also referred to as selecting a signal or band-limiting a signal to a frequency band), (ii) down-converting the selected signal, (iii) band-limiting again to a narrower frequency band in order to select a signal frequency band which in a particular embodiment may be referred to as a channel, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) multiplexing to select a desired stream of data packets. The RF portion of various embodiments may include one or more elements that perform these functions, e.g., frequency selectors, signal selectors, band limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF portion may include tuners that perform various of these functions, the functions of which include, for example, down-converting a received signal to a lower frequency (e.g., an intermediate frequency or near-baseband frequency) or baseband. In one embodiment of a set-top box, the RF section and its associated input processing elements receive an RF signal transmitted via a wired (e.g., cable) medium and perform frequency selection by filtering, down-converting, and re-filtering it to a desired frequency band. Various embodiments may involve rearranging the order of the elements described above (and others), removing some of these elements, and / or adding other elements that perform similar or different functions. Adding elements may include inserting elements between existing elements, such as inserting an amplifier and an analog-to-digital converter. In various embodiments, the RF section includes an antenna.
[0029] In addition, the USB terminal and / or HDMI terminal may include their respective interface processors for connecting the system 1000 to other electronic devices via USB and / or HDMI connections. It should be understood that various aspects of input processing, such as Reed-Solomon error correction, can be implemented, for example, in a separate input processing IC or within the processor 1010, as needed. Similarly, aspects of USB or HDMI interface processing can be implemented, for example, in a separate interface IC or within the processor 1010, as needed. The demodulated, error-corrected, and multiplexed streams are provided to various processing elements, including, for example, the processor 1010 and an encoder / decoder 1030 that operates in conjunction with memory and storage elements to process the data stream as needed for presentation on an output device.
[0030] Various elements of system 1000 can be housed within an integrated housing. Within the integrated housing, the various elements are interconnected and can transmit data between them using a suitable connection configuration, such as an I2C bus, wiring, and a printed circuit board, which is an internal bus already in the art.
[0031] System 1000 includes a communication interface 1050 that enables communication with other devices via a communication channel 1060. The communication interface 1050 may, but is not limited to, include transceivers configured to transmit and receive data on the communication channel 1060. The communication interface 1050 may, but is not limited to, include a modem or a network card, and the communication channel 1060 may be implemented, for example, in a wired and / or wireless medium.
[0032] In various embodiments, the data is streamed to system 1000 using a Wi-Fi network such as IEEE 802.11. In these embodiments, the Wi-Fi signal is received via a communication channel 1060 and a communication interface 1050 adapted for Wi-Fi communication. In these embodiments, communication channel 1060 is typically connected to an access point or router that provides access to an external network, including the Internet, to enable streaming applications and other over-the-top communications. In other embodiments, streaming data is provided to system 1000 using a set-top box that distributes data via an HDMI connection of input block 1130. In yet another embodiment, streaming data is provided to system 1000 using an RF connection of input block 1130.
[0033] System 1000 can provide output signals to various output devices, including a display 1100, a speaker 1110, and other peripheral devices 1120. In various embodiments, the other peripheral devices 1120 include one or more of a standalone DVR, a disc 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 communicated between System 1000 and the display 1100, the speaker 1110, or other peripheral devices 1120 using signaling such as AV.Link, CEC, or other communication protocols that enable inter-device control with or without user intervention. Output devices can be communicably coupled to System 1000 via dedicated connections through their respective interfaces 1070, 1080, and 1090. Alternatively, output devices can be connected to System 1000 using communication channel 1060 via communication interface 1050. The display 1100 and speaker 1110 can be integrated into a single unit with other components of system 1000 in an electronic device such as a television. In various embodiments, the display interface 1070 includes a display driver, such as a timing controller (TCon) chip.
[0034] Alternatively, for example, if the RF portion of input 1130 is part of a separate set-top box, the display 1100 and speaker 1110 can, alternatively, be separate from one or more of the other components. In various embodiments where the display 1100 and speaker 1110 are external components, the output signals can be provided via dedicated output connections, such as an HDMI port, a USB port, or a COMP output. The implementations described herein may be implemented, for example, in methods or processes, apparatus, software programs, data streams, or signals. Even if considered only in the context of a single form of implementation (e.g., considered only as a method), the implementation of the considered feature may also be implemented in other forms (e.g., apparatus or program). The apparatus may be implemented, for example, with appropriate hardware, software, and firmware. The method may be implemented in apparatus such as a processor, which generally refers to a processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. The processor also includes communication devices such as computers, mobile phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate the communication of information between end users.
[0035] As described above, deblocking filters are in-loop filters (165) applied to reconstructed pictures to reduce encoding artifacts. These filters require parameters. The following syntactic elements are illustrated in the example of a video coding system specified in VVC Draft 8. However, other video coding systems or other versions of VVC may use similar mechanisms to use signaling and deblocking filters. In such examples, blocking parameters may be coded in either the Picture Parameters Set (PPS), slice header (SH), or picture header (PH). This is controlled by a PPS flag named deblocking_filter_override_enabled_flag. If this flag is equal to 1, the parameter is coded in either the PH or SH; otherwise, it is coded in the PPS. This is illustrated in Table 1.
[0036] [Table 1]
[0037] The semantics of the flag are as follows: Specify the presence of a deblocking_filter_override_enabled_flag equal to -1, a pH_deblocking_filter_override_flag in a pH that references a PPS, or a slice_deblocking_filter_override_flag in a slice header that references a PPS. A deblocking_filter_override_enabled_flag equal to -0 indicates the absence of ph_deblocking_filter_override_flag in a PH that references a PPS, or slice_deblocking_filter_override_flag in a slice header that references a PPS. -If it does not exist, the value of deblocking_filter_override_enabled_flag is presumed to be equal to 0.
[0038] If overrides are allowed, dbf_info_in_ph_flag specifies whether the parameter is coded in PH or SH. More specifically, A dbf_info_in_ph_flag equal to -1 indicates that blocking filter information exists within the PH syntax structure but is not present in the slice header when referring to a PPS that does not contain the PH syntax structure. - A dbf_info_in_ph_flag equal to zero indicates that blocking filter information is not present in the PH syntax structure and may be present in the slice header by referencing a PPS that does not contain the PH syntax structure. -If it does not exist, the value of dbf_info_in_ph_flag is presumed to be equal to zero.
[0039] In the picture header, parameters are coded as illustrated in Table 2.
[0040] [Table 2]
[0041] In the slice header, the parameters are coded as illustrated in Table 3.
[0042] [Table 3]
[0043] In all three levels (PPS, PH, and HS), the coded 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. They represent the beta and tc offsets used for deblocking and can be coded for the luminance and saturation (cb and cr) components. Unlike many other syntaxes in video coding systems, saturation parameters can be coded regardless of the saturation format.
[0044] Specifically, the yuv400 saturation format is a format in which only the luminance component exists. In other words, not all saturation-related syntax and code are used.
[0045] Similarly, there is a coding mode called yuv444 that codes color components separately. In this case, the saturation component is treated as a separate luminance component. The configuration corresponds to the SPS flag separate_colour_plane_flag, which is coded as illustrated in Table 4.
[0046] [Table 4]
[0047] In this table, a chroma_format_idc value equal to 3 indicates a chroma format of 444.
[0048] This results in two configurations in which saturation-related syntax is not used. A variable named ChromaArrayType may be used to distinguish these cases and can be calculated as follows: When separate_colour_plane_flag is equal to zero, ChromaArrayType is set to equal to chroma_format_idc; otherwise, ChromaArrayType is set to zero. Consequently, when ChromaArrayType is equal to zero, saturation-related syntax is not used.
[0049] However, deblocking filter parameters related to saturation are coded regardless of the ChromaArrayType value. That is, even if saturation is not used, the following four syntactic elements are coded: cb_beta_offset_div2, cb_tc_offset_div2, cr_beta_offset_div2, and cr_tc_offset_div2. Thus, such signaling is redundant and wastes several bits that are never used. Furthermore, it makes it more complicated for encoder designers to set irrelevant values.
[0050] The embodiments described below are designed with the above in mind.
[0051] In at least one embodiment, a video coding system handling at least one block of at least one image of a video includes coding and decoding processes that respectively provide or use signaling information associated with the video, wherein the signaling information includes chrominance deblocking filter parameters when information indicating the presence of deblocking filter information is true, information indicating the disabling of the deblocking filter is false, and information indicating the chrominance type is true. In other words, the presence of chrominance deblocking filter parameters is tested for a set of syntactic elements. This makes it possible to improve coding efficiency by reducing the overall size of the information required, since these parameters are present in the bitstream only when needed.
[0052] Figure 4A illustrates an example flowchart of the encoding process according to an exemplary embodiment. 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 a deblocking filter control parameter. If so, i.e., branch "yes", the encoder checks a flag in step 402 indicating that the deblocking filter is disabled. If not, i.e., branch "no", the encoder checks the chrominance type in step 403. This test corresponds to determining whether yuv400 or yuv444 is used, in other words, whether only the luminance component is used (no chrominance), or whether luminance and chrominance are encoded separately in different planes. If so, i.e., branch "no chrominance or separate planes", the encoder signal applies the deblocking filter parameter to the chrominance sample in step 404. In other words, the deblocking filter parameter is added to the signaling information to be encoded. In all other cases (branch "no" in step 401 or step 403, branch "yes" in step 402), the chrominance deblocking filter parameter is not signaled. Finally, in step 405, the block is encoded with signaling information. The process is repeated in step 406 over other blocks 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 embodiment.
[0053] Figure 4B illustrates an example flowchart of a decoding process according to an exemplary embodiment. Such a process is implemented, for example, in a video decoder 200, but is also implemented in a video encoder 100, both devices described above. This process is described with respect to the decoder. In this process, in step 411, the decoder checks a flag indicating the presence of a deblocking filter control parameter. If so, i.e., branch "yes", the decoder checks a flag in step 412 indicating that the deblocking filter is disabled. If not, i.e., branch "no", the decoder checks the chrominance type in step 413. As in the encoding process, this test corresponds to determining whether yuv400 or yuv444 is used, in other words, whether only the luminance component is used (no chrominance) or whether luminance and chrominance are coded separately in different planes. If so, i.e., branch "no chrominance or separate planes", the decoder obtains the deblocking filter parameter applied to the chrominance sample in step 414. In all other cases (branch "no" in step 411 or step 413, branch "yes" in step 412), the chrominance blocking filter parameters are not transmitted, and therefore appropriate deblocking filter parameters are inferred in step 415. Finally, in step 405, the block is decoded, and the deblocking filter is applied with 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 embodiment.
[0054] The process in Figures 4A and 4B allows for the resolution of redundancy issues because the coding of the saturation deblocking parameters is conditioned by the saturation format. In exemplary implementations using the VVC Draft 8 syntax, this can be done by testing the values of the ChromaArrayType syntax elements. If ChromaArrayType is zero, the following parameters should not be coded at any PPS, PH, or SH level: beta_offset_div2, tc_offset_div2, cb_beta_offset_div2, cb_tc_offset_div2, cr_beta_offset_div2, and cr_tc_offset_div2.
[0055] Table 5 shows exemplary embodiments of implementations applied to the VVC syntax, where ChromaArrayType syntax elements are tested at the picture parameter set level.
[0056] [Table 5]
[0057] Table 6 shows exemplary embodiments of implementations applied to the VVC syntax, where the ChromaArrayType syntax elements are tested at the picture header level.
[0058] [Table 6]
[0059] Table 7 shows exemplary embodiments of implementations applied to the VVC syntax, where ChromaArrayType syntax elements are tested at the slice header level.
[0060] [Table 7]
[0061] This mechanism simplifies encoder design because, when using the yuv444 saturation format of yuv400 as a separable color format, it eliminates the need to specify dummy values for unused parameters. Furthermore, coding efficiency is improved because some bits are saved at either the PPS, PH, or SH level. This is particularly interesting when considering large datasets or internet traffic.
[0062] In a second embodiment, it is proposed to reduce the interaction between SPS and PPS. In fact, ChromaArrayType depends on the SPS syntax elements chroma_format_idc and separate_colour_plane_flag. Therefore, it may be preferable that these values are not used within PPS. For this reason, the PPS flag pps_chroma_tool_offsets_present_flag may be used. This flag is for enabling / disabling all chroma QP offsets. In addition to the syntax elements illustrated in Table 1, the picture parameter set also includes elements illustrated in Table 8.
[0063] [Table 8]
[0064] The semantics of these syntactic elements are as follows: A pps_chroma_tool_offsets_present_flag equal to -1 indicates that chroma tool offset-related syntax elements are present within the PPS RBSP syntax structure. - A pps_chroma_tool_offsets_present_flag equal to zero indicates that no chroma tool offset-related syntax elements are present in the PPS RBSP syntax structure. -When ChromaArrayType is equal to zero, the value of pps_chroma_tool_offsets_present_flag is assumed to be equal to zero.
[0065] Therefore, in this second embodiment, the same flag is used to check whether the saturation component is available, as illustrated in Table 9.
[0066] [Table 9]
[0067] Editorially, it is suggested to rename the flag pps_chroma_tool_offsets_present_flag to pps_chroma_tool_offsets_dbf_present_flag. This is illustrated in Table 9.1 below.
[0068] [Table 10]
[0069] The semantics of this syntactic element are as follows: A pps_chroma_tool_offsets_dbf_present_flag equal to -1 indicates that the chroma tool offset-related syntax elements and chroma deblocking filter parameters are present within the PPS RBSP syntax structure. - A pps_chroma_tool_offsets_dbp_present_flag equal to zero indicates that the chroma tool offset-related syntax elements and chroma deblocking filter parameters are not present in the PPS RBSP syntax structure. -When ChromaArrayType is equal to zero, the value of pps_chroma_tool_offsets_dbf_present_flag is assumed to be equal to zero.
[0070] In at least the modified embodiments, it is proposed to avoid any dependency of the PPS on the SPS and to separate the control of the chroma QP offset tool and the chroma deblocking filter parameters. This can be implemented by inserting a specific flag into the PPS, which is dedicated to signaling that the chroma deblocking filter parameters are signaled within the PPS under consideration. This can take the form of the pps_chroma_deblocking_filter_parms_present_flag syntactic element and the modified PPS syntax table illustrated in Table 10.
[0071] [Table 11]
[0072] The advantage of this modified embodiment is that the signaling of the chroma deblocking filter parameter within the PPS is separated from the signaling of the chroma QP offset parameter and can depend on pps_chroma_tool_offsets_present_flag, for example, as specified in VVC Draft 8. The semantics of the newly introduced PPS level flag syntactic element are as follows: A value of -1 for pps_chroma_deblocking_filter_params_present_flag indicates that the chroma deblocking picture parameter is present within the PPS RBSP syntax structure. - A pps_chroma_deblocking_filter_params_present_flag equal to zero indicates that the chroma deblocking filter parameter does not exist in the PPS RBSP syntax structure. -When ChromaArrayType is equal to zero, the value of pps_chroma_deblocking_filter_params_present_flag is assumed to be equal to zero.
[0073] In at least the modified embodiment, a PPS level flag is introduced to indicate that chroma is available. For example, it may be named pps_chroma_abort_flag and somehow repeat the information that ChromaArrayType is non-zero or not PPS level. If this new flag is equal to zero or false, then both the chroma deblocking and chroma offset related flags are assumed to be equal to zero. This is a bitstream conformance requirement that the value pps_chroma_available_flag be zero when chromaArrayType is zero, and the value pps_chroma_available_flag be 1 when chromaArrayType is 1.
[0074] According to a first aspect of this embodiment, the chroma deblocking filter parameter is not present in the PPS, as illustrated in Table 11. According to a further aspect, the PPS chroma QP offset related syntactic element beginning with pps_chroma_tool_offsets_present_flag is not present in the PPS if the flag pps_chroma_available_flag is zero or false.
[0075] [Table 12]
[0076] According to a modification of this embodiment, the flag pps_chroma_deblocking_filter_params_present_flag is signaled as described in the previous embodiment in Table 10 if the flag pps_chroma_abailable_flag is equal to 1 or true. The presence of chroma deblocking filtering parameters in the PPS then depends on the value of the flag pps_chroma_deblocking_filter_present_flag. If they are not present in the bitstream, the flag pps_chroma_deblocking_filter_params_present_flag is presumed to be zero.
[0077] [Table 13]
[0078] Figure 5 shows a high-level representation of an end-to-end workflow supporting the content delivery of encoded video, based on an example of the present principle. 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. The two remote devices 100 and 200 communicate via a delivery network 500 configured to provide the encoded image or video bitstream from device 100 to device 200.
[0079] Device 100 configured to implement the encoding method belongs to a set of devices including a mobile device, a communication device, a game device, a computer device such as a tablet (or tablet computer), a laptop, a still image camera, a video camera, an encoding chip, a still image server, and a video server (e.g., a broadcast server, a video-on-demand server, or a web server).
[0080] A device 200 configured to implement the decoding method described herein belongs to a set of devices including a mobile device, a communication device, a game device, a set-top box, a TV set (or television), a tablet (or tablet computer), a laptop computer, a display, a head-mounted display, and a decoding chip.
[0081] For example, the network is a broadcast network adapted to broadcast still or video images from device 100 to multiple decoding devices, including device 200. DVB and ATSC-based networks are examples of such broadcast networks. For another example, the network is a broadband network adapted to deliver still or video images from device 100 to multiple decoding devices, including device 200. Internet-based networks, GSM networks, or TV over IP networks are examples of such broadband networks.
[0082] In a preferred embodiment, the end-to-end workflow uses a broadcast server on device 100, a television or set-top box on device 200, and a DVB terrestrial broadcast network.
[0083] In an alternative embodiment, the distribution network NET is replaced by a physically packaged medium on which the encoded image or video bitstream is stored. The physical packaged medium includes optically packaged media such as Blu-ray discs and UHD Blu-ray, but also includes memory-based packaged media.
[0084] This disclosure has described various types of information, such as syntax, that can be transmitted or stored. This information can be packaged or arranged in various ways, including methods common in video standards, such as including 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 methods common in system-level or application-level standards, such as including the information in one or more of the following: SDP (Session Description Protocol) is a format for describing multimedia communication sessions for the purpose of session announcement and session invitation, for example, as described in RFCs and used in conjunction with RTP (Real-time Transport Protocol) transmission. MPEG DASH MPD (Dynamic Adaptive Streaming over HTTP, Media Presentation Description) descriptors are descriptors associated with a representation or set of representations to provide additional characteristics to content representations, such as those used in DASH and transmitted over HTTP. • RTP (Real-time Transport Protocol) header extensions, such as those used during RTP streaming. For example, the ISO Base Media File Format, which uses boxes, object orientation construction blocks defined by a unique type identifier and length, and which are used in OMAF and are also known as "atoms" in some specifications. • An HLS (HTTP Live Streaming) manifest sent via HTTP. The manifest can be associated with a version or set of versions of content to provide, for example, version or set of versions characteristics.
[0085] Figure 6A illustrates an example flowchart of the encoding process according to a second exemplary embodiment. More specifically, it represents an exemplary flowchart for carrying out a modified 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 for the use of chroma and a separate color plane. If chroma is used and a separate color plane is not used, a chroma offset value is required in step 604. This is signaled by an appropriate flag (e.g., pps_chroma_tool_offsets_present_flag, as shown in Table 9), and the chroma offset value is signaled by inserting, for example, cb and cr offset related elements illustrated in Table 9. Otherwise, in the branch “No chroma or separate plane”, no additional signaling related to the chroma offset value is signaled. The block is then encoded with appropriate signaling information in step 608. The process is repeated across other blocks in steps 602, 604, and 606 until it provides the bitstream encoded in step 608. 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 embodiment.
[0086] Figure 6B illustrates an example flowchart of the decoding process according to a second exemplary embodiment. More specifically, it represents an exemplary flowchart for carrying out a modified 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 that signals the presence of a chroma offset value (e.g., pps_chroma_tool_offsets_present_flag, as shown in Table 9). If so, in step 654, the chroma offset value is obtained by analyzing subsequent elements, for example, as illustrated in Table 9. Otherwise, in the branch “No chroma or separate plane”, no further signaling related to the chroma offset value is obtained. The block is then decoded in step 656 based on the appropriate signaling information. This process is repeated through other blocks in steps 652, 654, and 656 until the bitstream is processed. 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 embodiment.
[0087] References to “one embodiment” or “embodiment” or “implementation form” or “implementation form,” and other variations thereof, mean that certain features, structures, characteristics, etc., described in relation to an embodiment are included in at least one embodiment. Thus, phrases such as “in one embodiment” or “in one embodiment” or “in one implementation form” or “in implementation form,” and any other variations, appearing in various places throughout this specification, do not necessarily all refer to the same embodiment. In addition, this application or its claims may refer to “determining” various information. Determining information may include, for example, one or more of estimating information, calculating information, predicting information, or retrieving information from memory. Furthermore, this application may refer to “accessing” various information. Accessing information may include, for example, one or more of receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, calculating information, predicting information, or estimating information. In addition, this application may refer to “receiving” various information. Receiving information is intended to be a broad term, similar to accessing information. Receiving information may include, for example, accessing information or retrieving information (for example, from memory or optical media storage devices). Furthermore, receiving information generally involves in some way operations such as storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information. In addition, brightness and luminance should be used interchangeably and understood to have the same meaning. Similarly, saturation and chrominance should be used interchangeably and understood to have the same meaning.
[0088] For example, in the cases of "A / B", "A and / or B", and "at least one of A and B", it should be understood that the use of any of the following " / ", "and / or", and "at least one of" is intended to encompass the selection of only the first listed option (A), only the second listed option (B), or both options (A and B). As a further embodiment, in the cases of "A, B, and / or C" and "at least one of A, B, and C," such expressions are intended to encompass the selection of 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 the selection of all three options (A, B, and C). This can be extended to the number of enumerated items, as will be readily apparent to those skilled in the art in this and related fields.
[0089] As will be apparent to those skilled in the art, the implementation can generate various signals formatted to carry information that can be stored or transmitted. The information may include, for example, instructions for performing the method or data generated by one of the described implementations. For example, a signal may be formatted to carry a bitstream of the embodiment described. Such a signal may be formatted, for example, as an electromagnetic wave (e.g., using the radio frequency portion of the spectrum) or as a baseband signal. Formatting may include, for example, encoding a data stream and modulating a carrier wave with the encoded data stream. The signal carried by the signal may be, for example, analog information or digital information. The signal may be transmitted by various different wired or wireless links, as is known. The signal may be stored in a processor-readable medium.
Claims
1. A video encoding method comprising encoding, for at least one block of at least one image of a video, the block and corresponding signaling information which includes at least information indicating the presence of a saturation offset value, When saturation exists and no separate color plane is used, the information representing the existence of the saturation offset value is set to a first value, and the signaling information further includes information representing the saturation offset value. When saturation does not exist, or when a separate color plane is used, the information representing the existence of the saturation offset value is set to a second value, and further, there is no information representing the saturation offset value that is transmitted as a signal. Video encoding method.
2. The video encoding method according to claim 1, wherein the saturation offset value is a parameter of a deblocking filter.
3. The video encoding method according to claim 1, wherein the information indicating the presence of the saturation offset value is transmitted in the picture parameter set.
4. The video encoding method according to claim 1, wherein the information indicating the presence of the saturation offset value is transmitted at the picture level.
5. A video decoding method, wherein for at least one block of at least one image of a video, Obtaining signaling information that at least includes information indicating the presence of a saturation offset value, If the information indicating the existence of the saturation offset value indicates a first value, if saturation exists, and if a separate color plane is not used, then information representing the saturation offset value is obtained from the signaling information, and at least one block is decoded based on the obtained signaling information and the saturation offset value. If the information indicating the presence of the saturation offset value indicates a second value, if saturation is absent or a separate color plane is used, the at least one block is decoded based on the acquired signaling information without the saturation offset value. Video decoding methods, including...
6. The video decoding method according to claim 5, wherein the saturation offset value is a parameter of a deblocking filter.
7. The video decoding method according to claim 5, wherein the information indicating the presence of the saturation offset value is transmitted in the picture parameter set.
8. The video decoding method according to claim 5, wherein the information indicating the presence of the saturation offset value is transmitted at the picture level.
9. A video encoding device 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 which includes at least information indicating the presence of a saturation offset value, When saturation exists and no separate color plane is used, the information representing the existence of the saturation offset value is set to a first value, and the signaling information further includes information representing the saturation offset value. When saturation does not exist, or when a separate color plane is used, the information representing the existence of the saturation offset value is set to a second value, and further, there is no information representing the saturation offset value that is transmitted as a signal. Video encoding device.
10. A video decoding device, wherein for at least one block of at least one image of a video, Obtain signaling information that includes at least information indicating the presence of a saturation offset value, If the information indicating the existence of the saturation offset value indicates a first value, if saturation exists and a separate color plane is not used, then information representing the saturation offset value is obtained from the signaling information, and at least one block is decoded based on the obtained signaling information and the saturation offset value. If the information indicating the presence of the saturation offset value indicates a second value, and if saturation is absent or a separate color plane is used, the at least one block is decoded based on the acquired signaling information without the saturation offset value. A video decoding device equipped with an encoder configured as follows.
11. The video decoding apparatus according to claim 10, wherein the saturation offset value is a parameter of the deblocking filter.
12. The video decoding apparatus according to claim 10, wherein the information indicating the presence of the saturation offset value is transmitted in the picture parameter set.
13. The video decoding apparatus according to claim 10, wherein the information indicating the presence of the saturation offset value is transmitted at the picture level.
14. A video encoding apparatus according to claim 9, belonging to a set of devices including a mobile device, a communication device, a game device, a tablet, a tablet computer, a computer device, a laptop, a still image camera, a video camera, an encoding chip, a still image server, a video server, a broadcast server, a video-on-demand server, and a web server.
15. A video decoding apparatus according to claim 10, belonging to a set of devices including a mobile device, a communication device, a game device, a set-top box, a TV set, a television, a tablet, a tablet computer, a computer device, a laptop, a display, a head-mounted display, and a decoding chip.
16. A computer program that, when executed on a processor, includes program code instructions for performing the steps of the method according to claim 1 or 5.
17. A non-temporary computer-readable medium comprising processor-executable program code instructions for carrying out the steps of the method according to claim 1 or 5.
Citation Information
Patent Citations
Signaling of chroma syntax elements in video coding
WO2020216176A1