Advanced constraint flag for local chroma quantization parameter control
By using advanced constraint flags in the video coding standard to disable local colorimetric parameter control, the problem of not being able to disable it in existing technologies is solved, improving the compression efficiency and bitstream consistency of video coding.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-03-08
- Publication Date
- 2026-03-27
AI Technical Summary
Existing video coding standards such as HEVC and VVC cannot effectively disable local colorimetric parameter control, leading to coding efficiency and consistency issues.
Local chroma quantization parameter control can be disabled by using advanced constraint tags. Specific methods include reusing tags that disable local luminance QP control, adding specific constraint tags, making chroma QP control dependent on luminance QP control, or adjusting all QP control-related syntax to achieve disabling.
It achieves higher compression efficiency and bitstream consistency in video encoding, and is suitable for video encoders and decoders with different profiles.
Smart Images

Figure CN115280786B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] At least one of the embodiments in this implementation relates generally to a method or apparatus for video encoding or decoding. BACKGROUND
[0002] To achieve high compression efficiency, image and video coding schemes usually employ prediction (including spatial and / or motion vector prediction) and transform to exploit the spatial and temporal redundancy in the video content. Generally, intra- or inter-frame prediction is used to exploit the intra- or inter-frame correlation, and then the difference between the original image and the predicted image (usually denoted as prediction error or prediction residual) is transformed, quantized, and entropy coded. To reconstruct the video, the compressed data is decoded by the inverse processes corresponding to the entropy coding, quantization, transform, and prediction. A plurality of coding tools can be used in the encoding and decoding processes, including the transform and inverse transform. SUMMARY
[0003] Weaknesses and disadvantages of the prior art can be addressed by the general aspects described herein, which relate to constraint flags and / or chroma quantization control for constructing profiles.
[0004] According to a first aspect, a method is provided. The method comprises the steps of: quantizing at least one video block based on at least one quantization parameter used for chroma quantization; and encoding the quantized at least one video block and a syntax indicating the at least one quantization parameter.
[0005] According to a second aspect, a method is provided. The method comprises the steps of: parsing a syntax of a video bitstream, the syntax being used to control at least one quantization parameter used for chroma quantization of at least one coded video block; and based on the syntax, using the at least one quantization parameter to decode the at least one video block.
[0006] According to another aspect, an apparatus is provided. The apparatus comprises a processor. The processor can be configured to encode a video block or decode a bitstream by performing any of the preceding methods.
[0007] According to another general aspect of at least one embodiment, there is provided an apparatus comprising: an apparatus according to any of the decoding embodiments; and at least one of: (i) an antenna configured to receive a signal, the signal comprising a video block; (ii) a frequency band limiter configured to limit the received signal to a frequency band comprising the video block; and (iii) a display configured to display an output representative of the video block.
[0008] According to another general aspect in accordance with at least one embodiment, there is provided a non-transitory computer readable medium containing data content generated according to any of the described encoding embodiments or variants.
[0009] According to another general aspect in accordance with at least one embodiment, there is provided a signal comprising video data generated according to any of the described encoding embodiments or variants.
[0010] According to another general aspect in accordance with at least one embodiment, a bitstream is formatted to include data content generated according to any of the described encoding embodiments or variants.
[0011] According to another general aspect in accordance with at least one embodiment, there is provided a computer program product comprising instructions which, when the program is executed by a computer, cause the computer to carry out any of the described encoding embodiments or variants.
[0012] These and other aspects, features, and advantages of the general aspects will become apparent to those of ordinary skill in the art through reading the following detailed description, with appropriate reference to the drawings. BRIEF DESCRIPTION OF DRAWINGS
[0013] Figure 1 A standard general purpose video compression scheme is shown.
[0014] Figure 2 A standard general purpose video compression scheme is shown.
[0015] Figure 3 An embodiment of an encoding method under the general aspect of encoding using a control local chroma quantization parameter is shown.
[0016] Figure 4 Another embodiment of a decoding method under the general aspect of decoding using a control local chroma quantization parameter is shown.
[0017] Figure 5 An embodiment of an apparatus for encoding or decoding using the described aspects is shown.
[0018] Figure 6 A typical processor arrangement that can implement the described embodiments is shown.
[0019] Figure 7 Another embodiment of a method under the current aspect is shown.
[0020] Figure 8 Another embodiment of a method under the current aspect is shown.
[0021] Figure 9 Another embodiment of the method under the current aspect is shown. DETAILED DESCRIPTION
[0022] To achieve high compression efficiency, image and video coding schemes usually employ prediction, including motion vector prediction, and transform to exploit the spatial and temporal redundancy in the video content. Generally, intra- or inter-frame prediction is used to exploit the intra- or inter-frame correlation, and then the difference between the original image and the predicted image, usually denoted as prediction error or prediction residual, is transformed, quantized and entropy coded. To reconstruct the video, the compressed data is decoded by the inverse processes corresponding to the entropy coding, quantization, transform and prediction.
[0023] The following general aspects are in the field of video compression, more specifically, advanced syntax set to disable local control of the quantization step of a video compression scheme. Video compression standards such as High Efficiency Video Coding (HEVC) and Versatile Video Coding (VVC) use quantization with a quantization step size for adjusting the bit rate and / or the video quality. The HEVC and VVC (Draft 8) specifications utilize a quantization parameter QP (or qP) to define the current quantization step.
[0024] The HEVC specification uses a dequantization process in which the coded block frequency transform coefficient TransCoeffLevel is scaled by the current quantization step (levelScale[qP%6]<<(qP / 6)) and further scaled by a quantization matrix m[][] as follows:
[0025] d[x][y] = Clip3(coeffMin, coeffMax, ((TransCoeffLevel[xTbY][yTbY][cldx][x][y] * m[x][y] * levelScale[qP%6] << (qP / 6)) + (1 << (bdShift - 1))) >> bdShift)
[0026] wherein:
[0027] • TransCoeffLevel [...] is the absolute value of the transformed coefficient of the current block identified by its spatial coordinates xTbY, yTbY and its component index cldx.
[0028] • x and y are the horizontal / vertical frequency indices.
[0029] • qP is the current quantization parameter.
[0030] • Multiplying by levelScale[qP % 6] and left shift (qP / 6) is equivalent to multiplying by a quantization step qStep = (levelScale[qP % 6] « (qP / 6))
[0031] • m[...] is a two-dimensional quantization matrix
[0032] • bdShift is an additional scaling factor used to take into account the picture sample bit depth. The term (1 « (bdShift - 1)) is used to round to the nearest integer.
[0033] • d[...] is the resulting dequantized transformed coefficient absolute values.
[0034] In HEVC (with Range Extensions) and VVC, it is possible to locally adjust the QP using specific syntax. A luma QP offset can be specified, and optionally, a chroma QP offset can also be specified. The related syntax present in the VVC transform unit syntax structure is shown below:
[0035]
[0036] cu_qp_delta_abs and cu_qp_delta_sign_flag are used to compute CuQpDeltaVal, which is the difference between the luma QP of the current coding unit (CU) and the luma QP prediction. The luma QP prediction is based on the luma QPs of the blocks on the top and left of the current quantization group, which will not be discussed here.
[0037] cu_chroma_qp_offset_flag and cu_chroma_qp_offset_idx are used to derive the chroma QP offset. cu_chroma_qp_offset_flag enables the offset feature (otherwise the offset is zero), and cu_chroma_qp_offset_idx specifies an index in a lookup table, where for each index the offset for each chroma component is found, as shown below:
[0038]
[0039]
[0040] In VVC, the syntax structure called “general_constraint_info” (referenced by the profile_tier_level syntax structure) contains a number of flags that can be used to disable some coding tools. This can be used to disable certain tools in a given profile, so that decoders compliant with this profile do not need to implement those disabled tools.
[0041] This makes it possible to specify low complexity decoders that are compatible with a subset of VVC, for example.
[0042] The syntax and semantics of the constraint flag related to local QP control are as follows:
[0043]
[0044] no_qp_delta_constraint_flag equal to 1 specifies that the bitstream conformance requirement is that cu_qp_delta_enabled_flag shall be equal to 0. no_qp_delta_constraint_flag equal to 0 has no such constraint.
[0045] Note: cu_qp_delta_enabled_flag is found in the PPS syntax structure and adjusts all syntax related to local luma QP control. Forcing it to zero means that there is no local luma QP control syntax in the bitstream, disabling the feature.
[0046] Under the current VVC draft, it is not possible to disable local chroma QP control with a constraint flag. This prevents the definition of a profile without local chroma QP control.
[0047] At least one embodiment disclosed herein enables disabling local chroma QP control with an advanced constraint flag.
[0048] Method 1: Use no_qp_delta_constraint_flag to disable luma and chroma local QP control
[0049] One way to disable local chroma QP control with an advanced constraint flag is to reuse the flag designed to disable local luma QP control and make it disable both luma and chroma local QP control. This approach can be used only in the encoder (conformance).
[0050] For the encoder-only implementation, the decoder's syntax is unchanged and the value of the constraint flag is ignored (unless potentially checking conformance with a supported profile, crash; it is also possible to detect and crash on invalid PPS flags).
[0051] When the constraint flag is 1, the encoder must respect the conformance constraint by actually disabling chroma QP control.
[0052] Exemplary syntax and semantics in the context of VVC Draft 8 are as follows.
[0053] Syntax (unchanged):
[0054]
[0055] Semantics (with added content underlined):
[0056] no qp delta constraint flag equal to 1 specifies that the bitstream conformance requirement is cu qp delta enabled flag and pps_cu_chroma_qp_offset_list_enabled_flag shall be equal to 0. no qp delta constraint flag equal to 0 has no such constraint.
[0057] Note: pps cu chroma qp offset list enabled flag is found in the PPS syntax structure and adjusts all the syntax related to local chroma QP control. Forcing it to zero means that there is no local chroma QP control syntax in the bitstream, disabling the feature.
[0058] Method 2: Add a specific restriction flag to disable local chroma QP control
[0059] Another way to disable local chroma QP control with a high-level constraint flag is to add a specific restriction flag. This can be used to control the feature separately in different profiles. For example, in HEVC, local luma QP control is in the core specification, but local chroma QP control is in the range extension, which means that in HEVC without the range extension, local luma QP control is possible, but there is no local chroma QP control. The decoder has to parse the new conformance flag, but ignore its value.
[0060] When the constraint flag is 1, the encoder has to comply with the conformance constraint by actually disabling chroma QP control.
[0061] The exemplary syntax and semantics in the context of VVC Draft 8 are shown below:
[0062] Syntax (added content underlined):
[0063]
[0064] Semantics (added content underlined):
[0065] no qp delta constraint flag equal to 1 specifies that the bitstream conformance requirement is cu qp delta enabled flag shall be equal to 0. no qp delta constraint flag equal to 0 has no such constraint.
[0066] no_chroma_qp_offset_contraint_flag equal to 1 specifies the bitstream conformance requirement that pps_cu_chroma_qp_offset_list_enabled_flag shall be equal to 0. no_chroma_qp_offset_contraint_flag equal to 0 specifies no such constraint Method 3: Make chroma QP control dependent on using luma QP control Method 4: Adjust luma and chroma QP control to additional flags .
[0067] cu_qp_delta_enabled_flag
[0068] Another approach to disable local chroma QP control with a high-level constraint flag is to use a flag designed to disable local luma QP control and adjust the chroma QP control syntax to activate luma QP control (at SPS level).
[0069] The exemplary syntax and semantics in the context of VVC Draft 8 are shown below:
[0070] Syntax (deletion has strikeout, addition is underlined):
[0071]
[0072]
[0073] Semantics: unchanged
[0074] cu_qp_enabled_flag equal to 1 specifies that cu_qp_delta_enabled_flag and pps_cu_chroma_qp_offset_list_enabled_flag syntax elements are present in the PPS. cu_qp_enabled_flag equal to 0 specifies that cu_qp_delta_enabled_flag and pps_cu_chroma_qp_offset_list_enabled_flag syntax elements are not present in the PPS
[0075] Another approach to disable local chroma QP control with a high-level constraint flag is to use a single constraint flag that disables the new flag (at PPS level) that adjusts all QP control related syntax (both luma and chroma).
[0076] The exemplary syntax and semantics in the context of VVC Draft 8 are shown below:
[0077] Syntax (deletion has strikeout, addition is underlined):
[0078]
[0079]
[0080] Semantics (deletion has strikeout, addition is underlined):
[0081] no_cu_qp_constraint_flag equal to 1 specifies that the bitstream conformance requirement is Figure 3 shall be equal to 0. no_cu_qp_constraint_flag equal to 0 then there is no such constraint.
[0082] Figure 4 Figure 5 Figure 1 Figure 2 .
[0083] Note: These examples are not limiting. The methods described herein are still valid if these flags (possibly constrained flag disabled) are moved to other syntax structures (such as SPS), or if the constraint flag constraint (disable) other than pps_cu_chroma_qp_offset_list_enabled_flag (possibly in a syntax structure other than PPS (e.g., SPS)) related to local chroma QP control.
[0084] Figure 6 One embodiment of a method 300 under the general aspects described herein is shown in FIG. 3. The method starts at a start block 301 and control proceeds to a block 310 to quantize at least one video block based on at least one quantization parameter used for chroma quantization. Control proceeds from block 310 to a block 320 to encode the quantized at least one video block and syntax indicating the at least one quantization parameter.
[0085] Figure 1 One embodiment of a method 400 under the general aspects described herein is shown in FIG. 4. The method starts at a start block 401 and control proceeds to a block 410 to parse syntax of a video bitstream, the syntax for controlling at least one quantization parameter used for chroma quantization of at least one coded video block. Control proceeds from block 410 to a block 420 to decode the at least one video block using the at least one quantization parameter based on the syntax.
[0086] Figure 2 One embodiment of an apparatus 500 for compressing, encoding or decoding video is shown, which has the capability of disabling local chroma quantization parameter control. The apparatus includes a processor 510 and can be interconnected to a memory 520 through at least one port. Both the processor 510 and the memory 520 can also have one or more additional interconnections to external connections.
[0087] The processor 510 is also configured to insert or receive information in a bitstream, or to compress, encode or decode using various encoding tools.
[0088] This application describes various aspects, including tools, features, embodiments, models, methods, etc. Many of these aspects are specifically described, and at least individual characteristics are shown, often in a manner that can sound limited. However, this is for clarity of description and does not limit the application or scope of these aspects. In fact, all different aspects can be combined and interchanged to provide further aspects. Moreover, these aspects can also be combined and interchanged with aspects described in previous submissions.
[0089] The aspects described and contemplated in this patent application can be implemented in many different forms. Figure 6 , Figure 1 and Figure 2 Some embodiments are provided, but other embodiments are contemplated, and Figure 1 , Figure 2 and Figure 1 The discussion of art herein is meant to be informative only and not limiting. At least one aspect is generally related to video encoding and decoding, and at least one other aspect is generally related to transmitting generated or encoded bitstreams. These and other aspects can be implemented as methods, apparatus, computer-readable storage media having instructions stored thereon for encoding or decoding video data according to any of the methods, and / or computer-readable storage media having bitstreams generated according to any of the methods stored thereon.
[0090] In this application, the terms “reconstruct” and “decode” can be used interchangeably, the terms “pixel” and “sample” can be used interchangeably, and the terms “image,” “picture,” and “frame” can be used interchangeably. Generally, but not necessarily, the term “reconstruct” is used at the encoding end, and “decode” is used at the decoding end.
[0091] Various methods are described herein, and each of the methods includes one or more steps or actions for accomplishing the methods. Unless a specific order of steps or actions is required for proper operation of the method, the order and / or use of specific steps and / or actions can be modified or combined.
[0092] The various methods and other aspects described in this patent application can be used to modify modules of video encoder 100 and decoder 200 (e.g., intra-prediction, entropy encoding and / or decoding modules (160, 360, 145, 330)), as shown in Figure 6 and Figure 6 Furthermore, the inventive aspects are not limited to VVC or HEVC, and can be applied to, for example, other standards and recommendations (whether preexisting or future-developed) and extensions of any such standards and recommendations (including VVC and HEVC). The aspects described in this application can be used individually or in combination, unless otherwise indicated or technically precluded.
[0093] Various numerical values are used in this application. The specific values are for example purposes, and the described aspects are not limited to these specific values.
[0094] An encoder 100 is exemplified. Variations of this encoder 100 are contemplated, but for clarity the encoder 100 is described below without describing all contemplated variations.
[0095] Before being encoded, the video sequence can undergo pre-encoding processing (101), e.g. applying a color transform to the input color picture (e.g. from RGB 4:4:4 to YCbCr 4:2:0), or performing a remapping of the input picture components to get a signal distribution more resilient to compression (e.g. by histogram equalization of one of the color components). Metadata can be associated with the pre-processing and attached to the bitstream.
[0096] In the encoder 100, the pictures are encoded by the encoder elements as described below. The pictures to be encoded are partitioned (102) and processed in units, e.g. CUs. Each unit is encoded using, e.g., an intra mode or an inter mode. When a unit is encoded in intra mode, the unit performs intra prediction (160). In inter mode, motion estimation (175) and motion compensation (170) are performed. The encoder decides (105) in which of the intra or inter mode to encode the unit, and indicates the intra / inter decision by, e.g., a prediction mode flag. The prediction residual is computed by, e.g., subtracting (110) the prediction block from the original image block.
[0097] The prediction residual is then transformed (125) and quantized (130). The quantized transform coefficients, motion vectors and other syntax elements are entropy coded (145) to output the bitstream. The encoder can skip the transform and apply quantization directly on 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 processes.
[0098] The encoder decodes the encoded blocks to provide references for further prediction. The quantized transform coefficients are dequantized (140) and inverse transformed (150) to decode the prediction residual. The image block is reconstructed by combining (155) the decoded prediction residual and the prediction block. A loop filter (165) is applied to the reconstructed image to perform, e.g., de-blocking / SAO filtering, to reduce coding artifacts. The filtered image is stored in the reference picture buffer (180).
[0099] A block diagram of a video decoder 200 is shown. In the decoder 200, the bitstream is decoded by the decoder elements as described below. The video decoder 200 generally performs a decoding stage opposite to the encoding stage as described above with respect to the encoder 100. The encoder 100 generally also performs video decoding as part of encoding video data.
[0100] In particular, the input to the decoder includes a video bitstream, which can be generated by video encoder 100. First, the bitstream is entropy decoded (230) to retrieve transform coefficients, motion vectors, and other coded information. Picture partitioning information indicates how the pictures are partitioned. Thus, the decoder can partition (235) the pictures according to the decoded picture partitioning information. The prediction residual is decoded by dequantizing (240) the transform coefficients and inverse transforming (250). The prediction block is obtained (270) by combining (255) the decoded prediction residual and the prediction block, which can be obtained by intra prediction (260) or motion-compensated prediction (i.e., inter prediction) (275). Loop filters are applied (265) to the reconstructed pictures. The filtered pictures are stored in the reference picture buffer (280).
[0101] The decoded pictures can also be subjected to post-decoding processing (285), e.g., inverse color transform (e.g., from YCbCr 4:2:0 to RGB 4:4:4) or performing inverse remapping inverse to the remapping process performed in pre-encoding processing (101). The post-decoding processing can use metadata derived in the pre-encoding processing and signaled in the bitstream.
[0102] A block diagram illustrating an example of a system in which various aspects and embodiments can be implemented is illustrated. System 1000 can embody a device including various components described below and be configured to perform one or more of the aspects described in this document. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. Elements of system 1000 can individually or collectively be embodied in a single integrated circuit (IC), multiple ICs, and / or a
[0103] The system 1000 includes at least one processor 1010 configured to execute instructions loaded thereinto for implementing the various aspects described in this document, for example. Processor 1010 can include embedded memory, input output interface, and various other circuitry as known in the art. The system 1000 includes at least one memory 1020 (e.g., a volatile memory device and / or a non-volatile memory device). The system 1000 includes a storage device 1040, which can include non-volatile memory and / or volatile memory, including, but not limited to, Electrically Erasable Programmable Read-Only Memory (EEPROM), Read-Only Memory (ROM), Programmable Read-Only Memory (PROM), Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), flash, magnetic disk drive, and / or optical disk drive. By way of non-limiting example only, the storage device 1040 can include an internal storage device, an attached storage device (including detachable and non-detachable storage devices), and / or a network accessible storage device.
[0104] The system 1000 includes an encoder / decoder module 1030 configured, for example, 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 module(s) that can be included in a device to perform the encoding and / or decoding functions. As is known, a device can include one or both of the encoding and decoding modules. Additionally, the encoder / decoder module 1030 can be implemented as a separate element in the system 1000, or can be incorporated in the processor 1010 as a combination of hardware and software as known to those skilled in the art.
[0105] Program code to be loaded onto processor 1010 or encoder / decoder 1030 to perform the various aspects described in this document can be stored in the storage device 1040 and then loaded onto the memory 1020 for execution by the processor 1010. In accordance with various embodiments, one or more of the processor 1010, the memory 1020, the storage device 1040, and the encoder / decoder module 1030 can store one or more of various items during the performance of the processes described in this document. Such storage items can include, but are not limited to, input video, decoded video or partially decoded video, bitstreams, matrices, variables, and intermediate or final results of processing equations, formulas, operations, and operational logic.
[0106] In some embodiments, the processor 1010 and / or memory internal to the encoder / decoder module 1030 is used to store instructions and provide working memory for processing needed during encoding or decoding. However, in other embodiments, memory external to the processing device (e.g., the processing device can be the processor 1010 or the encoder / decoder module 1030) is used for one or more of these functions. The external memory can be the memory 1020 and / or the storage device 1040, such as dynamic volatile memory and / or non-volatile flash memory. In several embodiments, the external non-volatile flash memory is used to store, for example, the operating system of the television. In at least one embodiment, fast external dynamic volatile memory such as RAM is used as working memory for video encoding and decoding operations, such as MPEG-2 (MPEG refers to Moving Picture Experts Group, MPEG-2 is also known as ISO / IEC 13818, and 13818-1 is also known as H.222, 13818-2 is also known as H.262), HEVC (HEVC refers to High Efficiency Video Coding, also known as H.265 and MPEG-H Part 2), or VVC (Versatile Video Coding, a new standard developed by the Joint Video Expert Team (JVET)).
[0107] Input to the elements of the system 1000 can be provided through various input devices as shown in block 1130. Such input devices include, but are not limited to: (i) a radio frequency (RF) portion that receives RF signals transmitted, for example, over the air by a broadcaster; (ii) a component (COMP) input terminal (or set of COMP input terminals); (iii) a universal serial bus (USB) input terminal; and / or (iv) a high-definition multimedia interface (HDMI) input terminal. Other examples, not shown in FIG. 1, include composite video.
[0108] In various embodiments, the input devices of block 1130 have associated respective input processing elements as known in the art. For example, the RF portion can be associated with elements appropriate for (i) selecting a desired frequency (also referred to as selecting a signal, or band-limiting a signal to a frequency band), (ii) downconverting the selected signal, (iii) band-limiting again to a still narrower frequency band to select a signal frequency band which can be referred to as a channel in certain embodiments, for example, (iv) demodulating the downconverted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired data packet stream. The RF portion 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 portion can include a tuner that performs various ones of these functions including, for example, downconverting a received signal to a lower frequency (such as an intermediate frequency or a near-baseband frequency) or to baseband. In one set-top box embodiment, the RF portion and its associated input processing elements receive an RF signal transmitted over a wired (e.g., cable) medium, and perform frequency selection by filtering, downconverting, and filtering again to a desired frequency band. Various embodiments rearrange the order of the above-described (and other) elements, remove some of these elements, and / or add other elements performing similar or different functions. Adding elements can include inserting elements, such as amplifiers and analog-to-digital converters, between existing elements. In various embodiments, the RF portion includes an antenna.
[0109] Further, the USB and / or HDMI terminals can include respective interface processors for connecting the system 1000 to other electronic devices across USB and / or HDMI connections. It will be appreciated that various aspects of input processing (such as Reed-Solomon error correction) can be implemented as desired, e.g., within separate input processing ICs or within the processor 1010. Similarly, aspects of USB or HDMI interface processing can be implemented as desired within separate interface ICs or within the processor 1010. The demodulated, error corrected, and demultiplexed streams are provided to various processing elements, including the processor 1010 and the encoder / decoder 1030, for example, which operate in conjunction with memory and storage elements to process the data streams as needed for presentation on output devices.
[0110] The various elements of the system 1000 can be provided in an integrated housing in which the various elements can be interconnected and transmit data therebetween using suitable arrangements of connections, such as internal buses as known in the art, including Inter-IC (I2C) buses, wiring, and printed circuit boards.
[0111] The system 1000 includes a communication interface 1050 that enables communication with other devices via a communication channel 1060. The communication interface 1050 can include, but is not limited to, a transceiver configured to transmit and to receive data over the communication channel 1060. The communication interface 1050 can include, but is not limited to, a modem or network card, and the communication channel 1060 can be implemented, for example, within a wired and / or a wireless medium.
[0112] In various embodiments, data is streamed or otherwise provided to the system 1000 using a wireless network such as a Wi-Fi network, for example IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). Wi-Fi signals in these embodiments are received through the communication channel 1060 and the communication interface 1050 adapted for Wi-Fi communication. The communication channel 1060 of these embodiments is typically connected to an access point or router that provides access to external networks including the Internet for allowing streaming applications and other over-the- cloud communications. Other embodiments provide streaming data to the system 1000 using a set-top box that passes data through an HDMI connection of the input block 1130. Still other embodiments provide streaming data to the system 1000 using an RF connection of the input block 1130. As noted above, various embodiments provide data in a non-streaming manner. Moreover, various embodiments use wireless networks other than Wi-Fi, for example cellular networks or Bluetooth networks.
[0113] The system 1000 can provide output signals to a variety of output devices, including a display 1100, speakers 1110, and other peripheral devices 1120. The display 1100 of various embodiments includes one or more of, for example, a touchscreen display, an organic light-emitting diode (OLED) display, a curved display, and / or a foldable display. The display 1100 can be used in a television, a tablet, a notebook, a cellular phone (mobile phone), or other device. The display 1100 can also be integrated with other components (e.g., as in a smartphone), or be separate (e.g., an external monitor for a notebook computer). In various examples of embodiments, the other peripheral devices 1120 include one or more of a standalone digital video recorder (or digital versatile recorder, both terms are DVR), a disc player, a stereo system, and / or a lighting system. Various embodiments use one or more of the peripheral devices 1120 that provide a function based on the output of the system 1000. For example, a disc player performs the function of playing the output of the system 1000.
[0114] In various embodiments, control signals are communicated among the system 1000, the display 1100, the speakers 1110, or other peripheral devices 1120 using signaling such as AV.Link, Consumer Electronics Control (CEC), or other communications protocols that enable device-to-device control without or with minimal user intervention. The output devices can be communicatively coupled to the system 1000 via dedicated connections to the respective interfaces 1070, 1080, and 1090. Alternatively, the output devices can be connected to the system 1000 using the communications channel 1060 via the communications interface 1050. The display 1100 and speakers 1110 can be integrated into a single unit with other components of the system 1000 in an electronic device, such as a television. In various embodiments, the display interface 1070 includes a display driver, such as, for example, a timing controller (T Con) chip.
[0115] Alternatively, if the RF portion of the input 1130 is part of a separate set-top box, the display 1100 and speakers 1110 are optionally separate from one or more of the other components. In various embodiments in which the display 1100 and speakers 1110 are external components, the output signals can be provided via dedicated output connections, including, for example, HDMI ports, USB ports, or COMP outputs.
[0116] The embodiments can be performed by the processor 1010 or by computer software executed by hardware or by a combination of hardware and software. As non-limiting examples, the embodiments can be implemented by one or more integrated circuits. As non-limiting examples, the memory 1020 can be of any type appropriate for the technical environment and can be implemented using any appropriate data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory and removable memory. As non-limiting examples, the processor 1010 can be of any type appropriate for the technical environment, and can encompass one or both of general and special purpose computers, microprocessors, microcontrollers, and processors based on multi-core architecture.
[0117] Various implementations participate in decoding. As used in this application, “decoding” can include all or a portion of the processes performed on a received encoded sequence to produce a final output suitable for display, for example. In various embodiments, such processes include one or more processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various embodiments, such processes also or alternatively include processes performed by decoders of the various implementations described in this application.
[0118] As a further example, in an implementation, "decoding" refers only to entropy decoding, in another implementation, "decoding" refers only to differential decoding, and in yet another implementation, "decoding" refers to a combination of entropy decoding and differential decoding. Whether the phrase "decoding process" refers specifically to a subset of operations or refers broadly to a more extensive decoding process will be clear based on the context of the specific description, and is believed to be well understood by those skilled in the art.
[0119] Various implementations participate in encoding. In a similar manner as discussed above with respect to "decoding," "encoding" as used in this application can encompass all or a portion of the process performed, e.g., on an input video sequence, to produce an encoded bitstream. In various implementations, such a process includes one or more processes typically performed by an encoder, e.g., partitioning, differential encoding, transform, quantization, and entropy encoding. In various implementations, such a process also includes or alternatively includes processes performed by the encoders of the various implementations described in this application.
[0120] As a further example, in an implementation, "encoding" refers only to entropy encoding, in another implementation, "encoding" refers only to differential encoding, and in yet another implementation, "encoding" refers to a combination of differential encoding and entropy encoding. Whether the phrase "encoding process" refers specifically to a subset of operations or refers broadly to a more extensive encoding process will be clear based on the context of the specific description, and is believed to be well understood by those skilled in the art.
[0121] Note that syntax elements used herein are descriptive terms. Therefore, they do not preclude the use of other syntax element names.
[0122] When the accompanying drawings present a flow diagram, it is understood that it also provides a block diagram of a corresponding apparatus. Similarly, when the accompanying drawings present a block diagram, it is understood that it also provides a flow diagram of a corresponding method / process.
[0123] Various embodiments can refer to parametric models or rate-distortion optimization. Specifically, during the encoding process, a balance or trade-off between rate and distortion is typically considered, often taking into account constraints of computational complexity. This can be measured by a rate-distortion optimization (RDO) metric or by a least mean square (LMS), mean absolute error (MAE), or other such measures. Rate-distortion optimization is often formulated as minimizing a rate-distortion function, which is a weighted sum of rate and distortion. There are different approaches to solve the rate-distortion optimization problem. For example, these approaches can be based on extensive testing of all encoding options, including all considered modes or encoding parameter values, and a full evaluation of their encoding cost as well as the relevant distortion of the reconstructed signal after encoding and decoding. Faster approaches can also be used to reduce the encoding complexity, in particular for the computation of an approximate distortion based on a predicted or predicted residual signal rather than the reconstructed residual signal. A mix of these two approaches can also be used, such as by using an approximate distortion for only some of the possible encoding options, while using a full distortion for other encoding options. Other approaches evaluate only a subset of the possible encoding options. More generally, many approaches employ any of a variety of techniques to perform the optimization, but the optimization is not necessarily a full evaluation of both the encoding cost and the relevant distortion.
[0124] The detailed and particular embodiments described herein can be implemented in, for example, a method or process, an apparatus, a software program, data streams, or signals. Even if discussed in the context of only a single form of specific embodiment (for example, discussed only as a method), implementation of the discussed features can also occur in other forms (for example, an apparatus or program). An apparatus can be implemented in, for example, appropriate hardware, software, and firmware. The method can be implemented in, for example, a processor, which is generally a processor of a processing device including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. The processor also includes a communication device such as, for example, a computer, a cell phone, a portable / personal digital assistant (“PDA”), and other devices that facilitate communication of information between end users.
[0125] Reference to “one embodiment” or “an embodiment” or “one implementation” or “an implementation,” along with their other variations, means that a particular feature, structure, characteristic, and so forth described in connection with an embodiment is included in at least one embodiment. Thus, appearances of the phrase “in one embodiment” or “in an embodiment” or “in one implementation” or “in an implementation,” along with any other variations thereof, throughout this application, and in each case either indicates a description of a particular feature, structure, characteristic, and so forth, or indicates that the feature, structure, characteristic, and so forth described in connection with that implementation is included in at least one embodiment.
[0126] Additionally, the present application can refer to “determining” various pieces of information. Determining the information can include one or more of, for example, estimating the information, calculating the information, predicting the information, or retrieving the information from memory.
[0127] Also, the application can relate to “accessing” various pieces of information. Accessing information can include one or more of, for example, receiving information, retrieving information (e.g., from storage), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.
[0128] Also, the application can relate to “receiving” various pieces of information. As with “accessing,” receiving is intended to be a broad term. Receiving information can include one or more of, for example, accessing information or retrieving information (e.g., from storage). Also, “receiving” is typically involved in some way or another during operations such as, for example, storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.
[0129] It should be understood that any of the use of the following “ / ”, “and / or”, and “at least one of” are intended to be a broad term. For example, in the case of “A / B”, “A and / or B”, and “at least one of A and B”, it is intended to cover the instances where only the first listed option (A) is selected or only the second listed option (B) is selected or both options (A and B) are selected. As a further example, in the case of “A, B, and / or C” and “at least one of A, B, and C”, it is intended to cover the instances where only the first listed option (A) is selected or only the second listed option (B) is selected or only the third listed option (C) is selected or only the first and second listed options (A and B) are selected or only the first and third listed options (A and C) are selected or only the second and third listed options (B and C) are selected or all three options (A and B and C) are selected. As will be understood by a person of ordinary skill in the art and related art, this can be extended to as many items as are listed.
[0130] Also, as used herein, the word "signal" refers to, among other things, indicating something to a corresponding decoder. For example, in certain implementations, an encoder signals a particular one of a plurality of transforms, coding modes, or flags. As such, in one implementation, the same transform, parameter, or mode is used on both the encoder side and the decoder side. Thus, for example, an encoder can transmit (explicit signaling) a particular parameter to a decoder so that the decoder can use the same particular parameter. Conversely, if the decoder already has the particular parameter and others, signaling can be used without transmission (implicit signaling) to simply allow the decoder to know and select the particular parameter. By avoiding transmission of any actual functions, bit savings are achieved in various implementations. It should be understood that signaling can be achieved in various ways. For example, in various implementations, information is signaled to a corresponding decoder using one or more syntax elements, flags, and the like. While the foregoing involves the verb form of the word "signal," the word "signal" can also be used as a noun herein.
[0131] It will be apparent to one of ordinary skill in the art that a specific implementation can produce a variety of signals formatted to carry information that can be, for example, stored or transmitted. The information can include, for example, instructions for performing a method or data generated by one of the specific implementations. For example, a signal can be formatted to carry a bitstream of a described implementation. Such a signal can be formatted, for example, as an electromagnetic wave (e.g., using a radio frequency portion of spectrum) or a baseband signal. The formatting can include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries can be, for example, analog or digital information. The signal can be transmitted over a variety of different wired or wireless links, as is known. The signal can be stored on a processor-readable medium.
[0132] We describe a number of implementations, across a variety of claim categories and types. Features of the implementations can be provided alone or in any combination. Further, implementations can include one or more of the following features, devices, or aspects, alone or in any combination, across various claim categories and types:
[0133] • A method or device for encoding or decoding video data using a syntax for disabling local chroma quantization parameter control.
[0134] • A method or device for encoding or decoding video data using a syntax for disabling local chroma quantization parameter control, wherein the local chroma quantization parameter control is derived from a local luma quantization parameter control.
[0135] • A method or apparatus for encoding or decoding video data using a syntax for controlling a local chroma quantization parameter disabled, wherein the local chroma quantization parameter control is controlled by a separate syntax from the local luma quantization parameter control.
[0136] • An above method or apparatus in compliance with the HEVC or VVC video standard.
[0137] • A bitstream or signal comprising one or more of the described syntax elements or variations thereof.
[0138] • A bitstream or signal comprising a syntax conveying information generated according to any of the described embodiments.
[0139] • Creating and / or transmitting and / or receiving and / or decoding according to any of the described embodiments.
[0140] • A method, process, apparatus, medium storing instructions, medium storing data, or signal according to any of the described embodiments.
[0141] • Inserting a syntax element in the signaling that enables a decoder to determine the encoding mode in a manner corresponding to that used by the encoder.
[0142] • Creating and / or transmitting and / or receiving and / or decoding a bitstream or signal comprising one or more of the described syntax elements or variations thereof.
[0143] • A television, set-top box, cell phone, tablet, or other electronic device that performs a transform method according to any of the described embodiments.
[0144] • A television, set-top box, cell phone, tablet, or other electronic device that performs a transform method determines and displays a resulting image (e.g., using a monitor, screen, or other type of display) according to any of the described embodiments.
[0145] • A television, set-top box, cell phone, tablet, or other electronic device that selects, band-limits, or tunes (e.g., using a tuner) a channel to receive a signal comprising an encoded image and performs a transform method according to any of the described embodiments.
[0146] • A television, set-top box, cell phone, tablet, or other electronic device that receives (e.g., using an antenna) a signal comprising an encoded image and performs a transform method over the air.
Claims
1. A method for encoding, the method comprising: Quantize at least one video block based on at least one quantization parameter used in color quantization; as well as The at least one video block to be quantized and the syntax indicating the at least one quantization parameter are encoded, wherein the syntax includes a first flag for disabling local colorimetric quantization parameter control, the first flag being signaled in a general constraint information syntax structure, the general constraint information syntax structure including one or more flags for disabling encoding tools for a configuration file of a given video coding standard.
2. The method of claim 1, wherein the syntax includes a second tag for controlling local brightness quantization parameter control.
3. The method of claim 2, wherein the second flag used to control the local luminance quantization parameter control is the no_qp_delta_constraint_flag of the H.266 universal video coding standard.
4. The method of claim 1, wherein the first flag for disabling local chroma quantization parameter control is the no_chroma_qp_offset_constraint_flag of the H.266 universal video coding standard.
5. The method of claim 1, wherein the syntax includes a third marker signaling at the image parameter set level, the third marker adjusting syntax elements related to local colorimetric parameter control, and wherein, If the first flag used to disable local colorimetric parameter control is set to 1, then the third flag is equal to 0.
6. The method of claim 5, wherein the first tag for disabling local chromaticity quantization parameter control is separate from the second tag for controlling local luminance quantization parameter control, which is signaled in the general constraint information syntax structure.
7. An apparatus for encoding, the apparatus comprising: Processor, the processor being configured to execute: Quantize at least one video block based on at least one quantization parameter used in color quantization; as well as The at least one video block to be quantized and the syntax indicating the at least one quantization parameter are encoded, wherein the syntax includes a first flag for disabling local colorimetric quantization parameter control, the first flag being signaled in a general constraint information syntax structure, the general constraint information syntax structure including one or more flags for disabling encoding tools for a configuration file of a given video coding standard.
8. The apparatus of claim 7, wherein the syntax includes a second tag for controlling local brightness quantization parameter control.
9. The apparatus of claim 8, wherein the second flag for controlling the local luminance quantization parameter control is the no_qp_delta_constraint_flag of the H.266 universal video coding standard.
10. The apparatus of claim 7, wherein the first flag for disabling local chroma quantization parameter control is the no_chroma_qp_offset_constraint_flag of the H.266 universal video coding standard.
11. The apparatus of claim 7, wherein the syntax includes a third marker signaled at the image parameter set level, the third marker adjusting syntax elements related to local colorimetric parameter control, and wherein, If the first flag used to disable local colorimetric parameter control is set to 1, then the third flag is equal to 0.
12. The apparatus of claim 11, wherein the first flag for disabling local chromaticity quantization parameter control is separate from the second flag for controlling local luminance quantization parameter control, which is signaled in the general constraint information syntax structure.
13. A method for decoding, the method comprising: The syntax of the video bitstream is parsed, the syntax being used to control at least one quantization parameter used for the chroma quantization of at least one encoded video block, wherein the syntax includes a first flag for disabling local chroma quantization parameter control, the first flag being signaled in a general constraint information syntax structure, the general constraint information syntax structure including one or more flags for disabling encoding tools for a configuration file of a given video coding standard. as well as Based on the syntax, the at least one quantization parameter is used to decode the at least one video block.
14. The method of claim 13, wherein the syntax includes a second tag for controlling local brightness quantization parameter control.
15. The method of claim 14, wherein the second flag for controlling the local luminance quantization parameter control is the no_qp_delta_constraint_flag of the H.266 universal video coding standard.
16. The method of claim 13, wherein the first flag for disabling local chroma quantization parameter control is the no_chroma_qp_offset_constraint_flag of the H.266 universal video coding standard.
17. The method of claim 13, wherein the syntax includes a third marker signaling at the image parameter set level, the third marker adjusting syntax elements related to local colorimetric parameter control, and wherein, If the first flag used to disable local colorimetric parameter control is set to 1, then the third flag is equal to 0.
18. The method of claim 17, wherein the first tag for disabling local chromaticity quantization parameter control is separate from the second tag for controlling local luminance quantization parameter control, which is signaled in the general constraint information syntax structure.
19. An apparatus for decoding, the apparatus comprising: Processor, the processor being configured to execute: The syntax of the video bitstream is parsed, the syntax being used to control at least one quantization parameter used for the chroma quantization of at least one encoded video block, wherein the syntax includes a first flag for disabling local chroma quantization parameter control, the first flag being signaled in a general constraint information syntax structure, the general constraint information syntax structure including one or more flags for disabling encoding tools for a configuration file of a given video coding standard. as well as Based on the syntax, the at least one quantization parameter is used to decode the at least one video block.
20. The apparatus of claim 19, wherein the syntax includes a second flag for controlling local brightness quantization parameter control.
21. The apparatus of claim 20, wherein the second flag for controlling the local luminance quantization parameter control is the no_qp_delta_constraint_flag of the H.266 universal video coding standard.
22. The apparatus of claim 19, wherein the first flag for disabling local chroma quantization parameter control is the no_chroma_qp_offset_constraint_flag of the H.266 universal video coding standard.
23. The apparatus of claim 19, wherein the syntax includes a third marker signaled at the image parameter set level, the third marker adjusting syntax elements related to local colorimetric parameter control, and wherein, If the first flag used to disable local colorimetric parameter control is set to 1, then the third flag is equal to 0.
24. The apparatus of claim 23, wherein the first flag for disabling local chromaticity quantization parameter control is separate from the second flag for controlling local luminance quantization parameter control, which is signaled in the general constraint information syntax structure.
25. An apparatus for decoding, the apparatus comprising: The apparatus according to any one of claims 19 to 24; as well as At least one of the following: (i) an antenna configured to receive a signal comprising a video block; (ii) a bandwidth limiter configured to limit the received signal to a bandwidth comprising the video block; (iii) A display configured to display an output representing a video block.
26. A non-transitory computer-readable medium comprising instructions that, when executed by a computer, cause the computer to perform the method according to any one of claims 1 to 6 or 13 to 18.