Method and apparatus for predicting picture encoding and decoding

CN114945094BActive Publication Date: 2026-08-21INTERDIGITAL VC HOLDINGS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202210479693.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2017-04-07
Filing Date
2018-03-15
Publication Date
2026-08-21
Estimated Expiration
2038-03-15

AI Technical Summary

Technical Problem

按块适配量化步骤可能效率低,尤其是在块包含具有许多不同值的样本(例如,亮样本和暗样本)的情况下

Benefits of technology

[0029] - Send encoded data representing the residual value of the mapping, wherein, in response to the mapping function, the residual value of the mapping is obtained from the source value and the predicted value of the sample, for at least one sample of the block of the picture and for a current component, and wherein the mapping function is derived to obtain at least one of a reduction in the bit cost of the bitstream for a given reconstruction quality or an increase in the reconstruction quality for the bit cost of the given bitstream.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114945094B_ABST
    Figure CN114945094B_ABST
Patent Text Reader

Abstract

A method for encoding a block of a picture is disclosed. The method comprises, for at least one sample of the block and for one current component: - obtaining a prediction value; - determining, in response to a mapping function, a mapped residual value from a source value of the sample and from the prediction value; and - encoding the mapped residual value into a bitstream; wherein the mapping function is derived to obtain at least one of a reduction of a bit cost of the bitstream for a given reconstruction quality or an increase of the reconstruction quality for a given bit cost of the bitstream.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application filed on March 15, 2018, with application number 201880034306.5 and title "Method and apparatus for predicting image encoding and decoding". Technical Field

[0002] This principle generally relates to methods and apparatus for encoding and decoding images, and more specifically to methods and apparatus for encoding and decoding blocks of images. Background Technology

[0003] Next-generation video formats include wider color gamuts, higher frame rates, and greater dynamic range. New standards have been created to support this type of content. For example, ITU-R Recommendation BT-2020 defines a format that includes primary colors outside the currently deployed BT-709 color gamut. ITU-R Recommendation BT-2100 defines a format that includes transfer functions to enable extended dynamic range of content relative to BT.709. The primary colors in BT-2100 are the same as those in BT-2020.

[0004] Using a BT.709 container or a BT.2100 container results in significantly different codeword distributions. Most encoding tools developed to date focus on using the SDR signal of the BT.709 container. Moving to wider containers, such as the BT.2100 container, may require adaptations or changes to the codec design. Therefore, sample values ​​need to be “re-shaped” or mapped before encoding to modify the sample values ​​in the new container to better suit the properties expected by the current codec and encoder (e.g., HEVC).

[0005] It is known that a mapping / reshaping is performed on samples represented in a fixed container (e.g., BT.2100) before encoding to obtain a sample distribution similar to the initial input sample distribution (e.g., BT.709). The inverse mapping is then applied to the decoded samples. Both the mapping before encoding and the inverse mapping after decoding distort the signal. In fact, both the mapping and inverse mapping processes apply fixed-point precision, which introduces information loss. This distortion accumulates with the distortion in the encoding process, leading to a loss of encoding performance.

[0006] Instead of "reshaping" sample values ​​before encoding, an alternative approach to handling new containers is to modify the quantization step to quantize the coefficients of the predicted residuals of the transform. To this end, it is known to adapt the quantization step applied to the coefficients of the transform (e.g., DCT) of the residual predicted samples for a given block of samples, based on values ​​derived from the predicted, original, or reconstructed samples for that block. Adapting the quantization step block by block can be inefficient, especially when the block contains samples with many different values ​​(e.g., bright and dark samples). Summary of the Invention

[0007] A method for encoding blocks of a frame is disclosed, including at least one sample for the block and for a current component:

[0008] - Obtain the predicted value;

[0009] - In response to the mapping function, determine the residual values ​​of the mapping from the source values ​​of the samples and from the predicted values; and

[0010] - Encode the mapped residual values ​​into a bitstream;

[0011] The mapping function is derived to obtain at least one of a reduction in bit cost for a given reconstructed quality or an increase in reconstructed quality for a given bit cost.

[0012] A device for encoding blocks of a frame, comprising:

[0013] - A component for obtaining at least one sample for a block and a predicted value for a current component;

[0014] - Used to determine the residual values ​​of the mapping from the source values ​​of the samples and from the predicted values ​​in response to the mapping function; and

[0015] - A component used to encode the residual values ​​of the mapping into a bit stream;

[0016] The mapping function is derived to obtain at least one of a reduction in bit cost for a given reconstructed quality or an increase in reconstructed quality for a given bit cost.

[0017] In a variant, an encoding device is disclosed, comprising a communication interface configured to access blocks of a screen and at least one processor configured to perform the following:

[0018] - Obtain at least one sample of the accessed block and a predicted value for the current component;

[0019] - In response to the mapping function, the residual values ​​of the mapping are determined from the source and predicted values ​​of the samples; and

[0020] - Encode the mapped residual values ​​into a bitstream;

[0021] The mapping function is derived to obtain at least one of a reduction in bit cost for a given reconstructed quality or an increase in reconstructed quality for a given bit cost.

[0022] The bitstream representing the blocks of the image is disclosed, including:

[0023] - Represents encoded data of the residual value of the mapping, wherein, for at least one sample of the block and for a current component, the residual value of the mapping is obtained from the source value and the predicted value of the sample in response to the mapping function, and wherein the mapping function is derived to obtain at least one of a reduction in the bit cost of the bitstream for a given reconstruction quality or an increase in the reconstruction quality for the bit cost of the bitstream.

[0024] - Represents the encoded data of the mapping function.

[0025] In a variant, a non-transitory processor-readable medium is disclosed having a bitstream representing blocks of a frame stored thereon, wherein the bitstream includes:

[0026] - Represents encoded data of the residual value of the mapping, wherein, for at least one sample of the block and for a current component, the residual value of the mapping is obtained from the source value and the predicted value of the sample in response to the mapping function, and wherein the mapping function is derived to obtain at least one of a reduction in the bit cost of the bitstream for a given reconstruction quality or an increase in the reconstruction quality for the bit cost of the bitstream.

[0027] - Represents the encoded data of the mapping function.

[0028] Disclose a method for sending data, including:

[0029] - Send encoded data representing the residual value of the mapping, wherein, in response to the mapping function, the residual value of the mapping is obtained from the source value and the predicted value of the sample, for at least one sample of the block of the picture and for a current component, and wherein the mapping function is derived to obtain at least one of a reduction in the bit cost of the bitstream for a given reconstruction quality or an increase in the reconstruction quality for the bit cost of the given bitstream.

[0030] - Send encoded data representing the mapping function.

[0031] A transmitting device is disclosed, comprising:

[0032] - A component for transmitting encoded data representing the residual value of a mapping, wherein, in response to a mapping function, the residual value of the mapping is obtained from the source value and the predicted value of a sample, for at least one sample of a block of a picture and for a current component, and wherein the mapping function is derived to obtain at least one of a reduction in the bit cost of a bitstream for a given reconstruction quality or an increase in the reconstruction quality for the bit cost of a given bitstream.

[0033] - A component used to send encoded data representing a mapping function.

[0034] Discloses a transmitting device, including a communication interface configured to access blocks of a screen and at least one processor configured to perform the following:

[0035] - Send encoded data representing the residual value of the mapping, wherein, in response to the mapping function, the residual value of the mapping is obtained from the source value and the predicted value of the sample, for at least one sample of the block and for a current component, and wherein the mapping function is derived to obtain at least one of a reduction in the bit cost of the bitstream for a given reconstruction quality or an increase in the reconstruction quality for the bit cost of the given bitstream.

[0036] - Send encoded data representing the mapping function.

[0037] The following embodiments apply to the encoding method, encoding device, bit stream, processor-readable medium, transmission method, and transmission device disclosed above.

[0038] In a first specific and non-limiting embodiment, determining the residual value of the mapping includes:

[0039] - Use a mapping function to map the source values ​​of the samples;

[0040] - Use a mapping function to map the predicted values ​​of the samples;

[0041] - The residual value of the mapping is determined by subtracting the predicted value of the mapping from the component values ​​of the mapping.

[0042] In a second specific and non-limiting embodiment, determining the residual value of the mapping includes:

[0043] - The intermediate residuals are determined by subtracting the predicted values ​​from the source values ​​of the sample; and

[0044] - In response to the mapping function, intermediate residual values ​​are mapped based on the predicted values.

[0045] In a third specific and non-limiting embodiment, in response to the mapping function, mapping intermediate residual values ​​according to the predicted values ​​includes multiplying the intermediate residual values ​​by a scaling factor that depends on the predicted values ​​of the samples.

[0046] In a fourth specific and non-limiting embodiment, in response to the mapping function, mapping intermediate residual values ​​based on predicted values ​​includes multiplying the intermediate residual values ​​by a scaling factor that depends on predicted values ​​obtained for another component of the sample, which is different from the current component.

[0047] A method for decoding blocks of a picture is disclosed, comprising at least one sample for the block and for a current component:

[0048] - Obtain the predicted value;

[0049] -Residual values ​​of the decoded samples;

[0050] - In response to the mapping function, the reconstructed values ​​of the samples are determined from the decoded residuals and predicted values;

[0051] The mapping function is derived to obtain at least one of a reduction in bit cost for a given reconstructed quality or an increase in reconstructed quality for a given bit cost.

[0052] A device for decoding blocks of a picture is also disclosed, the device comprising:

[0053] - A component used to obtain the predicted value of at least one sample and one current component for a block;

[0054] - A component used to decode the residual values ​​of samples;

[0055] - A component used to determine the reconstructed values ​​of a sample from the decoded residuals and predicted values ​​in response to a mapping function;

[0056] The mapping function is derived to obtain at least one of a reduction in bit cost for a given reconstructed quality or an increase in reconstructed quality for a given bit cost.

[0057] In a variant, a decoding device is disclosed, comprising: a communication interface configured to access a bitstream and at least one processor configured to perform the following:

[0058] - Obtain at least one sample of the block and a predicted value for the current component;

[0059] - Decode the residual values ​​of the samples from the accessed bitstream;

[0060] - In response to the mapping function, the reconstructed values ​​of the samples are determined from the decoded residuals and predicted values;

[0061] The mapping function is derived to obtain at least one of a reduction in bit cost for a given reconstructed quality or an increase in reconstructed quality for a given bit cost.

[0062] The following embodiments apply to the decoding method and decoding device disclosed above.

[0063] In a first specific and non-limiting embodiment, determining the reconstructed values ​​of the sample includes:

[0064] - Use a mapping function to map the predicted values ​​of the samples;

[0065] - Use the inverse function of the mapping function to map the decoded residual value;

[0066] - The reconstructed value is determined by adding the predicted value of the mapping to the residual value of the decoding of the mapping.

[0067] In a second specific and non-limiting embodiment, determining the reconstructed value of the sample includes:

[0068] - Depending on the predicted value, the inverse function of the mapping function is used to map the decoded residual value;

[0069] - The reconstructed value is determined by adding the predicted value to the residual value of the decoded mapping.

[0070] In a third specific and non-limiting embodiment, mapping the decoded residual value using the inverse function of the mapping function, depending on the predicted value, includes multiplying the decoded residual value by a scaling factor depending on the predicted value of the sample.

[0071] In a fourth specific and non-limiting embodiment, mapping the decoded residual value using the inverse function of the mapping function, depending on the predicted value, includes multiplying the decoded residual value by a scaling factor that depends on the predicted value obtained for another component of the sample, which is different from the current component. Attached Figure Description

[0072] - Figure 1 An exemplary architecture of a transmitter configured to encode a picture in a bitstream according to a particular and non-limiting embodiment;

[0073] - Figure 2 Examples of exemplary video encoders adapted to perform encoding methods according to this principle are shown, such as HEVC video encoders;

[0074] - Figure 3 This describes an exemplary architecture of a receiver configured, according to a particular and non-limiting embodiment, to decode a picture from a bitstream to obtain the decoded picture;

[0075] - Figure 4 A block diagram illustrating an exemplary video decoder (e.g., an HEVC video decoder) adapted to perform a decoding method according to this principle;

[0076] - Figure 5A6A, 8A, 10A and 11A represent flowcharts of methods for encoding picture blocks in a bitstream according to various embodiments;

[0077] - Figure 5B 6B, 8B, 10B and 11B represent flowcharts of methods for decoding picture blocks from a bitstream according to various embodiments;

[0078] - Figure 7 Depicting the mapping function f map and its inverse function invf map ;

[0079] - Figure 9 Depicting the mapping function f map The derivative f' map sum of functions 1 / f' map ;and

[0080] - Figure 12 This shows the mapping functions constructed from the dQP table, either in a complete or finite range.

[0081] Specific implementation method

[0082] To be understood, the accompanying drawings and descriptions have been simplified to illustrate the elements relevant to a clear understanding of these principles, while many other elements found in typical encoding and / or decoding devices have been omitted for clarity. It will be understood that although the terms "first" and "second" may be used herein to describe various elements, these elements should not be limited by these terms. These terms are used only to distinguish one element from another.

[0083] A picture is an array of luminance samples in monochrome format, or an array of luminance samples in 4:2:0, 4:2:2, and 4:4:4 color formats, and an array of two corresponding chrominance samples. Typically, a "block" refers to a specific region within the sample array (e.g., luminance Y), and a "cell" comprises a block of co-occurring bits of all color components (luminance Y and possibly chrominance Cb and chrominance Cr). A stripe is an integer number of basic coding units, such as HEVC coding tree units or H.264 macroblock units. A stripe can include a complete picture or a portion thereof. Each stripe may contain one or more stripe segments.

[0084] In the following text, the terms "reconstructed" and "decoded" are used interchangeably. "Reconstructed" is typically, but not necessarily, used on the encoder side, while "decoded" is used on the decoder side. It should be noted that the terms "decoded" or "reconstructed" can mean that the bitstream is partially "decoded" or "reconstructed," for example, a signal obtained after deblocking filtering but before SAO filtering, and the reconstructed sample may differ from the final decoded output used for display. The terms "image," "picture," and "frame" are also used interchangeably. The terms "sample" and "pixel" are also used interchangeably.

[0085] Various embodiments of the HEVC standard are described. However, these principles are not limited to HEVC and can be applied to other standards, suggestions, and extensions, including, for example, HEVC or HEVC extensions such as Format Range (RExt), Scalability (SHVC), Multi-View (MV-HEVC) extensions, and H.266. Various embodiments of stripe encoding / decoding are described. They can be applied to encoding / decoding an entire frame or a sequence of frames.

[0086] Referring to "one embodiment" or "embodiment" of this principle, as well as other variations, means that a particular feature, structure, characteristic, etc., described in connection with that embodiment is included in at least one embodiment. Therefore, the phrases "in one embodiment," "in an embodiment," "in one implementation," or "in an implementation," and any other variations appearing in various places throughout the specification, do not necessarily all refer to the same embodiment.

[0087] It should be recognized that, for example, in the cases of “A / B,” “A and / or B,” and “at least one of A or B,” the use of any one of the following “ / ,” “and / or,” and “at least one” is intended to cover selecting only the first listed option (A), or only the second listed option (B), or both options (A and B). As another example, in the cases of “A, B, and / or C” and “at least one of A, B, or C,” this wording is intended to include selecting only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or all three options (A, B, and C). As will be apparent to those skilled in the art and related fields, this can be extended for many of the listed items.

[0088] The above describes various methods, and each method includes one or more steps or actions for implementing the described method. Unless the proper operation of the method requires a specific order of steps or actions, the order and / or use of specific steps and / or actions may be modified or combined.

[0089] Figure 1 This illustrates an exemplary architecture of a transmitter 1000 configured to encode images in a bitstream according to a particular and non-limiting embodiment.

[0090] Transmitter 1000 includes one or more processors 1005, which may include, for example, a CPU, GPU, and / or DSP (Digital Signal Processor), and internal memory 1030 (e.g., RAM, ROM, and / or EPROM). Transmitter 1000 includes one or more communication interfaces 1010 (e.g., keyboard, mouse, touchpad, webcam), each adapted to display output information and / or allow user input of commands and / or data; and a power supply 1020, which may be located externally to transmitter 1000. Transmitter 1000 may also include one or more network interfaces (not shown). Encoder module 1040 represents a module that can be included in the device to perform encoding functions. Alternatively, encoder module 1040 may be implemented as a separate element of transmitter 1000, or may be incorporated into processor 1005 as a combination of hardware and software, as known to those skilled in the art.

[0091] The image can be obtained from a source. Depending on the specific implementation, the source may be, but is not limited to:

[0092] - Local storage, such as video storage, RAM, flash memory, hard disk;

[0093] - Storage interface, such as an interface with mass storage, ROM, optical disc or magnetic media;

[0094] - Communication interfaces, such as wired interfaces (e.g., bus interfaces, WAN interfaces, LAN interfaces) or wireless interfaces (e.g., IEEE 802.11 interfaces or Bluetooth interfaces); and

[0095] - Image capture circuitry (e.g., sensors, such as CCD (charge-coupled device) or CMOS (complementary metal-oxide-semiconductor)).

[0096] Depending on the implementation, the bitstream can be sent to a destination. As an example, the bitstream is stored in remote or local memory, such as video storage or RAM, or a hard disk. In variations, the bitstream is sent to a storage interface, such as an interface with a mass storage device, ROM, flash memory, optical disc, or magnetic media, and / or transmitted via a communication interface (e.g., a point-to-point link, a communication bus, a point-to-multipoint link, or an interface with a broadcast network).

[0097] According to an exemplary and non-limiting embodiment, the transmitter 1000 also includes a computer program stored in the memory 1030. This computer program includes instructions that, when executed by the transmitter 1000, particularly by the processor 1005, enable the transmitter 1000 to perform reference... Figure 5AThe encoding methods described in 6A, 8A, 10A, and 11A are as follows. According to variations, the computer program is stored externally to the transmitter 1000 on a non-transitory digital data carrier (e.g., on an external storage medium such as an HDD, CD-ROM, DVD, read-only and / or DVD drive and / or DVD read / write drive, all known in the art). The transmitter 1000 therefore includes a mechanism for reading the computer program. Furthermore, the transmitter 1000 can access one or more Universal Serial Bus (USB) type storage devices (e.g., "Memory Stick") via a corresponding USB port (not shown).

[0098] According to exemplary and non-limiting embodiments, transmitter 1000 may be, but is not limited to:

[0099] -mobile device;

[0100] - Communication equipment;

[0101] -Gaming devices;

[0102] - Tablet PC (or tablet computer);

[0103] - Laptop computers;

[0104] - Still image camera;

[0105] -Camera;

[0106] - Encoding chip or encoding device / app;

[0107] - Static image server; and

[0108] - Video server (e.g., broadcast server, video-on-demand server, or web server).

[0109] Figure 2 Example adapted to execution basis Figure 5A An exemplary video encoder 100 is an encoding method of one of the embodiments of 6A, 8A, 10A, and 11A, such as an HEVC video encoder. Encoder 100 is an example of transmitter 1000 or a part of transmitter 1000.

[0110] For encoding, a frame is typically divided into basic coding units, such as a Code Tree Unit (CTU) in HEVC or a Macroblock Unit in H.264. A group of potentially contiguous basic coding units is grouped into stripes. A basic coding unit contains a basic coding block containing all color components. In HEVC, the smallest CTB size, 16x16, corresponds to the macroblock size used in previous video coding standards. It will be understood that although the terms CTU and CTB are used herein to describe encoding / decoding methods and devices, these methods and devices should not be limited to these specific terms, which may be expressed differently in other standards (such as H.264) using terms like macroblock.

[0111] In HEVC, the CTB is the root of the quadtree partitioned into coded blocks (CBs), and the coded block is further divided into one or more prediction blocks (PBs), forming the root of the quadtree partitioned into transform blocks (TBs). Corresponding to the coded block, prediction block, and transform block, the coding unit (CU) includes prediction units (PUs) and a tree-structured group of transform units (TUs). The PU includes prediction information for all color components, and the TU includes the residual coding syntax structure for each color component. The size of the CB, PB, and TB for the luma component is appropriate for the corresponding CU, PU, ​​and TU. In this application, the term "block" or "picture block" can be used to refer to any one of the CTU, CU, PU, ​​TU, CB, PB, and TB. Additionally, the term "block" or "picture block" can be used to refer to macroblocks, partitions, and subblocks specified in H.264 / AVC or other video coding standards, and more generally refers to sample arrays of various sizes.

[0112] In the exemplary encoder 100, a frame is encoded by encoder elements as described below. The frame to be encoded is processed in units of CUs. Each CU is encoded using either an intra-frame or inter-frame mode. When a CU is encoded in intra-frame mode, it performs intra-frame prediction (160). In inter-frame mode, motion estimation (175) and compensation (170) are performed. The encoder determines (105) which of the intra-frame or inter-frame modes to use for encoding the CU and indicates the intra / inter-frame decision via a prediction mode flag. The residual is calculated by subtracting (110) the predicted sample block (also called the predictor) from the original frame block. The predicted sample block includes a predicted value, one for each sample in the block.

[0113] In intra-frame prediction mode, the CU is predicted based on neighboring samples reconstructed within the same band. HEVC offers a group of 35 intra-frame prediction modes, including DC, planar, and 33 angular prediction modes. The intra-frame prediction reference is reconstructed from rows and columns adjacent to the current block. Using available samples from previously reconstructed blocks, the reference extends more than twice the block size in both the horizontal and vertical directions. When using angular prediction modes for intra-frame prediction, reference samples can be copied along the directions indicated by the angular prediction mode.

[0114] Two different options can be used to encode the applicable lumen intra-prediction mode for the current block. If the applicable mode is included in a constructed list of three most probable modes (MPMs), the mode is signaled by its index in the MPM list. Otherwise, the mode is signaled by a fixed-length binary representation of the mode index. The three most probable modes are derived from the intra-prediction modes of the top and left neighboring blocks.

[0115] For inter-frame CUs, the corresponding coded blocks are further divided into one or more prediction blocks. Inter-frame prediction is performed at the PB level, and the corresponding PU contains information about how to perform inter-frame prediction. Motion information (i.e., motion vectors and reference indices) can be signaled in two ways: "Advanced Motion Vector Prediction (AMVP)" and "merging mode". In AMVP, the video encoder or decoder assembles a candidate list based on motion vectors determined from the coded blocks. The video encoder then signals the index to the candidate list to identify the motion vector predictor (MVP) and signals the motion vector difference (MVD). On the decoder side, the motion vectors (MV) are reconstructed as MVP + MVD.

[0116] In merge mode, the video encoder or decoder assembles a candidate list based on already encoded blocks, and the video encoder signals the index of one of the candidates in the candidate list. On the decoder side, motion vectors and reference frame indices are reconstructed based on the signaled candidates.

[0117] In HEVC, the precision of motion information used for motion compensation is one-quarter of a sample for the luminance component and one-eighth of a sample for the chrominance component. 7-tap or 8-tap interpolation filters are used to interpolate the fractional sample sampling positions, meaning they can address 1 / 4, 1 / 2, and 3 / 4 of the full sample position for luminance in the horizontal and vertical directions.

[0118] The residual is transformed (125) and quantized (130). The quantized transform coefficients, along with the motion vector and other syntax elements, are entropy-coded (145) to output a bitstream. The encoder can also skip the transform and apply the quantization directly to the untransformed residual signal based on a 4x4 TU. The encoder can also bypass both the transform and quantization, i.e., encode the residual directly without applying any transform or quantization processing. In direct PCM encoding, no prediction is applied, and the coded unit samples are directly encoded into the bitstream.

[0119] The encoder includes a decoding loop, and thus decodes the encoded blocks to provide a reference for further prediction. The quantized transform coefficients are dequantized (140) and inversely transformed (150) to decode the residuals. A picture block is reconstructed by combining (155) the decoded residuals and the predicted sample blocks. An in-loop filter (165) is applied to the reconstructed picture to, for example, perform deblocking / SAO (Sample Adaptive Offset) filtering to reduce coding artifacts. The filtered picture can be stored in a reference picture buffer (180) and used as a reference for other pictures.

[0120] In HEVC, SAO filtering can be activated or deactivated at the video, strip, and CTB levels. Two SAO modes are specified: Edge Offset (EO) and Band Offset (BO). For EO, ​​sample classification is based on the local directional structure in the image to be filtered. For BO, sample classification is based on sample values. Parameters for EO or BO can be explicitly encoded or derived from the neighborhood. SAO can be applied to both luma and chroma components, with the same SAO mode for Cb and Cr components. SAO parameters are configured separately for each color component (i.e., offset, SAO type EO, BO, and disabled, category for EO, ​​and band position for BO).

[0121] Figure 3 This describes an exemplary architecture of a receiver 2000 configured to decode a picture from a bitstream to obtain a decoded picture according to a particular and non-limiting embodiment.

[0122] Receiver 2000 includes one or more processors 2005, which may include, for example, a CPU, GPU, and / or DSP (Digital Signal Processor), and internal memory 2030 (e.g., RAM, ROM, and / or EPROM). Receiver 2000 includes one or more communication interfaces 2010 (e.g., keyboard, mouse, touchpad, webcam), each adapted to display output information and / or allow user input of commands and / or data; and a power supply 2020, which may be located externally to receiver 2000. Receiver 2000 may also include one or more network interfaces (not shown). Decoder module 2040 represents a module that can be included in the device to perform decoding functions. Alternatively, decoder module 2040 may be implemented as a separate element of receiver 2000, or may be incorporated into processor 2005 as a combination of hardware and software, as known to those skilled in the art.

[0123] The bitstream can be obtained from a source. Depending on the implementation, the source can be, but is not limited to:

[0124] - Local storage, such as video storage, RAM, flash memory, hard disk;

[0125] - Storage interface, such as an interface with mass storage, ROM, optical disc or magnetic media;

[0126] - Communication interfaces, such as wired interfaces (e.g., bus interfaces, WAN interfaces, LAN interfaces) or wireless interfaces (e.g., IEEE 802.11 interfaces or Bluetooth interfaces); and

[0127] - Image capture circuitry (e.g., sensors, such as CCD (charge-coupled device) or CMOS (complementary metal-oxide-semiconductor)).

[0128] Depending on the embodiment, the decoded image can be sent to a destination, such as a display device. As an example, the decoded image is stored in remote or local memory, such as video memory or RAM, or a hard disk. In a variant, the decoded image is sent to a storage interface, such as an interface with a mass storage device, ROM, flash memory, optical disc, or magnetic media, and / or transmitted via a communication interface (e.g., an interface with a point-to-point link, a communication bus, a point-to-multipoint link, or a broadcast network).

[0129] According to a particular, non-limiting embodiment, receiver 2000 also includes a computer program stored in memory 2030. This computer program includes instructions that, when executed by receiver 2000, particularly by processor 2005, enable the receiver to perform reference... Figure 5B The decoding methods described in 6B, 8B, 10B, and 11B are as follows. According to variations, the computer program is stored externally to the receiver 2000 on a non-transitory digital data carrier (e.g., on an external storage medium such as an HDD, CD-ROM, DVD, read-only and / or DVD drive and / or DVD read / write drive, all known in the art). The receiver 2000 therefore includes a mechanism for reading the computer program. Furthermore, the receiver 2000 can access one or more Universal Serial Bus (USB) type storage devices (e.g., "Memory Stick") via a corresponding USB port (not shown).

[0130] According to exemplary and non-limiting embodiments, receiver 2000 may be, but is not limited to:

[0131] -mobile device;

[0132] - Communication equipment;

[0133] -Gaming devices;

[0134] - Set-top box;

[0135] -TV set;

[0136] - Tablet PC (Tablet Computer);

[0137] - Laptop computers;

[0138] - Video players, such as Blu-ray players and DVD players;

[0139] - Display; and

[0140] - Decoding chip or decoding device / appliance.

[0141] Figure 4 Example adapted to execution basis Figure 5B A block diagram of an exemplary video decoder 200 (e.g., an HEVC video decoder) representing the decoding methods of embodiments 6B, 8B, 10B, and 11B. The video decoder 200 is an example of a receiver 2000 or a portion thereof. In the exemplary decoder 200, the bitstream is decoded by decoder elements as described below. The video decoder 200 generally performs and executes... Figure 2 The encoding channel described herein is the opposite of the decoding channel, which performs video decoding as part of the encoded video data.

[0142] Specifically, the input to the decoder includes a video bitstream that can be generated by the video encoder 100. First, the bitstream is entropy-decoded (230) to obtain transform coefficients, motion vectors, and other encoded information. The transform coefficients are dequantized (240) and inverse transformed (250) to decode the residuals. The decoded residuals are then combined (255) with predicted sample blocks (also called predictors) to obtain decoded / reconstructed picture blocks. The predicted sample blocks (270) can be obtained from intra-frame prediction (260) or motion-compensated prediction (i.e., inter-frame prediction) (275). As mentioned above, AMVP and merge mode techniques can be used during motion compensation, which can use interpolation filters to compute interpolated values ​​of sub-integer samples of the reference block. An in-loop filter (265) is applied to the reconstructed picture. The in-loop filter may include a deblocking filter and a SAO filter. The filtered picture is stored in a reference picture buffer (280).

[0143] Figure 5A This flowchart illustrates a method for encoding picture blocks in a bitstream according to this principle. The mapping is applied to the encoding loop to obtain pixel-level residual samples. Unlike prior art, the input samples of this encoding method are not modified by the mapping. On the decoder side, the output samples from the decoder are not modified by the inverse mapping.

[0144] This mapping can be applied to one or more components of the image. For example, it can be applied only to the luminance component, or only to the chrominance component, or to both the luminance and chrominance components.

[0145] The method begins at step S100. In step S110, transmitter 1000 (e.g., encoder 100) accesses blocks of a frame strip. In step S120, the transmitter obtains a predicted value Pred(x,y) for at least one sample of the accessed block and for at least one component (e.g., for luminance), where (x,y) are the spatial coordinates of the sample in the frame. The predicted value is typically determined based on the prediction mode (intra-frame / inter-frame mode) selected for that block.

[0146] In step S130, the transmitter responds to the mapping function f map (), determines the residual value of the mapping of the sample from the source value Orig(x,y) and the predicted value Pred(x,y). Define or derive the mapping function to obtain the coding gain, that is, to reduce the bit cost of the bitstream, i.e., the number of bits, for a given visual or objective quality of reconstruction, or to increase the visual or objective quality of reconstruction for a given bit cost. When blocks, frames, or frames are encoded with a bitstream of a given size (i.e., a given number of bits), the quality of the reconstruction at the receiver of the block, frame, or frame sequence depends on that size. On the other hand, when a sequence of blocks, frames, or frames is encoded with a given reconstruction quality, the size of the bitstream depends on that reconstruction quality.

[0147] In most cases, distortion, representing the quality of reconstruction, is defined as the expected value of the square of the difference between the input and output signals (i.e., mean square error). However, since most lossy compression techniques operate on data that human consumers will perceive (viewing images and videos), distortion measurements can preferably be modeled based on human perception and perhaps aesthetics.

[0148] For example, the mapping function can be derived using one of the following methods:

[0149] - Derive the mapping function such that for large amplitude values ​​of the component values, the magnitude of the residual value increases more significantly compared to small amplitude values ​​of the component values, such as... Figure 7 As shown;

[0150] - A predefined encoder quantization adjustment table deltaQP or quantization adjustment function dQP(Y) can be derived or tuned, where Y is the video signal luminance, to achieve improved perceptual or objective coding performance. From deltaQP or dQP(Y), the scaling function can be derived as follows: sc(Y) = 2^(–dQP(Y) / 6), where ^ is the exponentiation operator. The scaling function can be used in the mapping function, which will correspond to the product of the residual and the scaling value derived from the scaling function. In a variant, the mapping function can be derived by considering the scaling function as the derivative of the mapping function applied to the residual.

[0151] - In step S130, the derivative of the precoder function Map(Y) or Map(Y) as a scaling function can be used as the mapping function f map (), to map the residual values, where Y is the luminance video signal. Derive the precoder function Map(Y) such that once the original samples of the signal are mapped by this precoder function Map(Y), they can be better distributed across the entire codeword range (e.g., due to histogram equalization).

[0152] In addition to the three methods mentioned above, other methods can be used to derive the mapping function if the mapping residual improves compression performance.

[0153] Steps S110 and S120 can be repeated for each sample of the accessed block to obtain the block of mapped residual values.

[0154] In step S140, the transmitter encodes the mapped residual values. Encoding the mapped residual values ​​typically (but not necessarily) involves transforming the residuals into transform coefficients, quantizing the coefficients with a quantization step size QP to obtain quantized coefficients, and entropy encoding the quantized coefficients in the bitstream.

[0155] The method ends at step S180.

[0156] Figure 5B Indicates and Figure 5A The flowchart shows the method for decoding picture blocks in a bitstream, corresponding to the encoding method.

[0157] The method begins at step S200. In step S210, a receiver 2000, such as a decoder 200, accesses the bitstream.

[0158] In step S220, the receiver obtains a predicted value Pred(x,y) for at least one sample for at least one component (e.g., for luminance), where (x,y) are the spatial coordinates of the sample in the frame. The predicted value is obtained according to the prediction mode (intra-frame / inter-frame mode) selected for the block.

[0159] In step S230, the receiver decodes the residual value Res(x,y) of the sample to be decoded. The residual value Res(x,y) is in Figure 5A The decoded version of the residual value of the mapped image encoded at step S140. Decoding typically, but not necessarily, involves entropy decoding of a portion of the bitstream representing the block to obtain a block of transform coefficients, followed by dequantization and inverse transform of the block of transform coefficients to obtain a block of residuals.

[0160] In step S240, the transmitter responds to the mapping function invf map (), determines the reconstructed sample values ​​from the decoded residuals and predicted values, using the mapping function invf.map () is the mapping function f used by the encoding method in step 130. map The inverse of (). Steps S220 to S240 can be repeated for each sample of the accessed block.

[0161] The method ends at step S280.

[0162] Figure 6A A flowchart illustrating a method for encoding picture blocks in a bitstream according to a first specific and non-limiting embodiment.

[0163] The method begins at step S100. In step S110, the transmitter 1000, such as encoder 100, accesses blocks of a frame strip. In step S120, the transmitter obtains a predicted value Pred(x,y) for at least one sample of the accessed block, Orig(x,y), for at least one component (e.g., for luminance), where (x,y) are the spatial coordinates of the sample in the frame. The predicted value is obtained according to the prediction mode (intra-frame / inter-frame mode) selected for the block.

[0164] In step S130, the transmitter responds to the mapping function f map (), determines the residual value of the mapping of the sample from the source value Orig(x, y) and the predicted value Pred(x, y). Define or derive the mapping function to obtain the coding gain, that is, to reduce the bit rate for a given visual or objective quality, or to increase the visual or objective quality for a given bit rate. This can be done by referring to... Figure 5A One disclosed method is to derive the mapping function. Steps S110 to S130 can be repeated for each sample of the accessed block to obtain the block of residual values ​​of the mapping. In the first embodiment, it is denoted as Res. map The mapping residual of (x,y) is equal to f map (Orig(x,y))–f map (Pred(x,y)).

[0165] In step S140, the transmitter encodes the mapped residual values. Encoding the mapped residual values ​​typically (but not necessarily) involves transforming the residuals into transform coefficients, quantizing the coefficients with a quantization step size QP to obtain quantized coefficients, and entropy encoding the quantized coefficients in the bitstream.

[0166] The method ends at step S180.

[0167] Figure 6B Representing the relationship between the first specific and non-limiting embodiment and the embodiment according to... Figure 6A The flowchart shows an embodiment of the encoding method and a corresponding method for decoding picture blocks in a bitstream.

[0168] The method begins at step S200. In step S210, receiver 2000, such as decoder 200, accesses the bitstream.

[0169] In step S220, the receiver obtains a predicted value Pred(x,y) for at least one sample for at least one component (e.g., for luminance), where (x,y) are the spatial coordinates of the sample in the frame. The predicted value is obtained according to the prediction mode (intra-frame / inter-frame mode) selected for the block.

[0170] In step S230, the receiver decodes the residual value Res(x,y) of the sample to be decoded. The residual value Res(x,y) is in Figure 6A The decoded version of the residual value of the mapped image encoded at step S140. Decoding typically, but not necessarily, involves entropy decoding of a portion of the bitstream representing the block to obtain a block of transform coefficients, dequantizing and inverse transforming the block of transform coefficients to obtain a block of residuals.

[0171] In step S240, the transmitter responds to the mapping function f used by the encoding method in step S130. map () and its inverse invf map (), for each sample, the reconstructed sample value Dec(x,y) is determined from the decoded residual value Res(x,y) and the predicted value Pred(x,y). Steps S220 to S240 can be repeated for each sample of the accessed block to obtain the reconstructed block. In the first embodiment, the reconstructed sample value represented as Dec(x,y) is equal to invf map (Res(x,y)+f map (Pred(x,y))).

[0172] The method ends at step S280.

[0173] Figure 8A A flowchart illustrating a method for encoding picture blocks in a bitstream according to a second specific and non-limiting embodiment.

[0174] The method begins at step S100. In step S110, transmitter 1000, such as encoder 100, accesses blocks of a frame strip. In step S120, the transmitter obtains a predicted value Pred(x,y) for at least one sample of the accessed block, Orig(x,y), for at least one component (e.g., for luminance), where (x,y) are the spatial coordinates of the sample in the frame. The predicted value is obtained according to the prediction mode (intra-frame / inter-frame mode) selected for the block.

[0175] In step S130, the transmitter responds to the mapping function g map(), determines the residual value of the mapping of the sample from the source value Orig(x,y) and the predicted value Pred(x,y). Define or derive the mapping function to obtain the coding gain, that is, to reduce the bit rate for a given visual or objective quality, or to increase the visual or objective quality for a given bit rate. This can be done by referring to... Figure 5A One disclosed method is to derive the mapping function. Steps S110 to S130 can be repeated for each sample of the accessed block to obtain the block of residual values ​​of the mapping. In a second embodiment, it is denoted as Res map The residual of the mapping from (x,y) is equal to g. map (Res usual (x,y), Pred(x,y)), where Res usual (x,y)=Orig(x,y)–Pred(x,y).

[0176] The function g can be derived from the first embodiment. map (p, v) and invg map A simplified version of (p, v). For the predicted value p and the sample residual value v, g can be constructed as follows: map (p, v) and invg map (p,v).

[0177] In the first embodiment, Res remap (x,y)=f map (Orig(x,y))–fmap(Pred(x,y)).

[0178] If the signals Orig(x,y) and Pred(x,y) are close, which is to be expected when the prediction effect is good, then we can consider Orig(x,y) = Pred(x,y) + ε, where ε is a very small amplitude. Considering the definition of the derivative of a function, we can assume that...

[0179] f map (Orig(x,y))=f map (Pred(x,y)+ε)≈f map (Pred(x,y))+ε*f' map (Pred(x,y))

[0180] Where f map Corresponding to 1D functions, such as those defined in Example 1, while f′ map It is a function f map The derivative of .

[0181] Then Res map (x,y)=f map (Orig(x,y))–f map(Pred(x,y))≈ε*f' map (Pred(x,y)).

[0182] By definition, ε = Orig(x,y) – Pred(x,y) is the usual prediction residual Res. usual (x,y).

[0183] Therefore, we can use the following function g map (p, v) and invg map (p, v):

[0184] g map (p,v)=f' map (p)*v

[0185] invg map (p,v)=(1 / f' map (p))*v

[0186] At the encoder, the residual of the mapping is derived as follows:

[0187] Res map (x,y)=f' map (Pred(x,y))*Res usual (x,y)(Equation 1)

[0188] At the decoder, the reconstructed signal is derived as follows:

[0189] Dec(x,y)=Pred(x,y)+1 / f' map (Pred(x,y))*Res dec (x,y))(Equation 2)

[0190] This means that the mapping is a simple scaling of the ordinary residuals by a scaling factor that depends on the predicted values. It's possible that on the encoder, the scaling factor depends on the original values, not the predicted values. However, doing so introduces a mismatch between the encoder and decoder. A filtered version of the prediction can also be used by employing a smoothing filter, for example, to reduce the impact of quantization errors.

[0191] For example, instead of using Pred(x,y) in equations 1 and 2, a filtered version can be used: (Pred(x-1,y) / 4+Pred(x,y) / 2+Pred(x+1,y)) / 4).

[0192] Figure 9 Give examples of the functions f'map and (1 / f'map).

[0193] In step S140, the transmitter encodes the mapped residual values. Encoding the mapped residual values ​​typically (but not necessarily) involves transforming the residuals into transform coefficients, quantizing the coefficients with a quantization step size QP to obtain quantized coefficients, and entropy encoding the quantized coefficients in the bitstream.

[0194] The method ends at step S180.

[0195] Figure 8B Indicates corresponding to about Figure 8A A flowchart of a publicly disclosed encoding method for decoding picture blocks in a bitstream.

[0196] The method begins at step S200. In step S210, a receiver 2000, such as a decoder 200, accesses the bitstream.

[0197] In step S220, the receiver obtains a predicted value Pred(x,y) for at least one sample for at least one component (e.g., for luminance), where (x,y) are the spatial coordinates of the image in space. The predicted value is obtained depending on the prediction mode (intra-frame / inter-frame mode) selected for the block.

[0198] In step S230, the receiver decodes the residual value Res(x,y) of the sample to be decoded. The residual value Res(x,y) is in Figure 8A The decoded version of the residual value of the mapped image encoded at step S140. Decoding typically, but not necessarily, involves entropy decoding of a portion of the bitstream representing the block to obtain a block of transform coefficients, dequantizing and inverse transforming the block of transform coefficients to obtain a block of residuals.

[0199] In step S240, the transmitter responds to the mapping function invg map The reconstructed sample value Dec(x,y) is determined from the decoded residual value Res(x,y) and the predicted value Pred(x,y) using the mapping function invg. map yes Figure 8A The mapping function g used in the encoding method of step S130 map The inverse of (). Steps S220 to S240 can be repeated for each sample of the accessed block to obtain the reconstructed block. In the second embodiment, the reconstructed sample value denoted as Dec(x,y) is equal to Pred(x,y) + invg. map (Res(x,y),Pred(x,y)).

[0200] This embodiment advantageously allows the use of invg at the decoder. map The function maps the predicted residuals in a single step, while the first embodiment requires the simultaneous application of f. map Functions and invf map .

[0201] The method ends at step S280.

[0202] Figure 10A This is a flowchart illustrating a method for encoding picture blocks in a bitstream according to a third specific and non-limiting embodiment. This embodiment is a summary of the second embodiment. Function f map and invf map () is a scaling function whose scaling factor depends on the value of the predicted signal (or, as previously stated, a filtered version of the predicted signal).

[0203] The method begins at step S100. In step S110, a transmitter 1000, such as encoder 100, accesses a block of a frame strip. In step S120, the transmitter obtains a predicted value Pred(x,y) for at least one sample of the accessed block, Orig(x,y), for at least one component (e.g., for luminance), where (x,y) are the spatial coordinates of the sample in the frame. The predicted value is obtained depending on the prediction mode (intra-frame / inter-frame mode) selected for that block.

[0204] In step S130, the transmitter responds to the mapping function f map (), determines the residual value of the mapping of the sample from the source value Orig(x,y) and the predicted value Pred(x,y). Define or derive the mapping function to obtain the coding gain, that is, to reduce the bit rate for a given visual or objective quality, or to increase the visual or objective quality for a given bit rate. This can be done by referring to... Figure 5A One disclosed method is to derive the mapping function. Steps S110 to S130 can be repeated for each sample of the accessed block to obtain the block of residual values ​​of the mapping. In a second embodiment, denoted as Res map The residual of the mapping from (x,y) is equal to f map (Pred(x,y))*Res usual (x,y), where Res usual (x,y) = Orig(x,y) – Pred(x,y). This is a generalized version of (Equation 1) and (Equation 2). In the variant, the original value Orig(x,y) can be used instead of Pred(x,y). In this case, Res map (x,y) equals f map (Orig(x,y))*Res usual (x,y). In another variation, a combination of Orig(x,y) and Pred(x,y) can be used, such as Comb(x,y), which is the average of these two values. In the latter case, Res map (x,y) equals f map (Comb(x,y))*Resusual (x,y).

[0205] In step S140, the transmitter encodes the mapped residual values. Encoding the mapped residual values ​​typically (but not necessarily) involves transforming the residuals into transform coefficients, quantizing the coefficients with a quantization step size QP to obtain quantized coefficients, and entropy encoding the quantized coefficients in the bitstream.

[0206] The method ends at step S180.

[0207] Figure 10B Indicates corresponding to about Figure 10A A flowchart of a publicly disclosed encoding method for decoding picture blocks from a bitstream.

[0208] The method begins at step S200. In step S210, a receiver 2000, such as a decoder 200, accesses the bitstream.

[0209] In step S220, the receiver obtains a predicted value Pred(x,y) for at least one sample for at least one component (e.g., for luminance), where (x,y) are the spatial coordinates of the sample in the frame. The predicted value is obtained depending on the prediction mode (intra-frame / inter-frame mode) selected for the block.

[0210] In step S230, the receiver decodes the residual value Res(x,y) of the sample to be decoded. The residual value Res(x,y) is in Figure 10A The decoded version of the residual value of the mapped image encoded in step S140. Decoding typically, but not necessarily, involves entropy decoding of a portion of the bitstream representing the block to obtain a block of transform coefficients, and dequantizing and inverse transforming the block of transform coefficients to obtain a block of residuals.

[0211] In step S240, the receiver responds to the mapping function invf used by the encoding method in step S130. map ()=1 / f map (), for each sample, the reconstructed sample value Dec(x,y) is determined from the decoded residual value Res(x,y) and the predicted value Pred(x,y). Steps S220 to S240 can be repeated for each sample of the accessed block to obtain the reconstructed block. In the second embodiment, the reconstructed sample value denoted as Dec(x,y) is equal to Pred(x,y) + (1 / f map (Pred(x,y)))*Res(x,y).

[0212] This embodiment advantageously allows the inverse mapping to be performed at the decoder using simple multiplication, which introduces a limited increase in complexity and enables the execution of an accurate mapping, where rounding can be performed at the end of the processing (when calculating Dec(x,y)).

[0213] The method ends at step S280.

[0214] Figure 11A This is a flowchart illustrating a method for encoding a block of images in a bitstream according to a fourth specific and non-limiting embodiment. In this embodiment, the mapping is cross-component scaling. For example, the mapping depends on the co-bit luma component Y (or its filtered version) being applied to the chroma component C, where C is U (or Cb) or V (or Cr). When the resolutions of the luma and chroma images are different (e.g., for a 4:2:0 chroma format), the luma value can be obtained after resampling or as one of the sample values ​​of the luma image associated with the chroma sample. For example, in the case of a 4:2:0 signal, for a position (x, y) in the image, the luma value at position (2*x, 2*y) can be considered.

[0215] The method begins at step S100. In step S110, a transmitter 1000, such as an encoder 100, accesses blocks of a frame strip. In step S120, the transmitter obtains a predicted value PredC(x,y) for at least one sample of the source value OrigC(x,y) for the accessed block, for at least one component (e.g., for chroma C), where (x,y) are the spatial coordinates of the sample in the frame, and further obtains a predicted value PredY(x,y) for the same sample of the source value OrigY(x,y) for at least another component (e.g., luminance Y). The predicted value is obtained depending on the prediction mode (intra-frame / inter-frame mode) selected for the block.

[0216] In step S130, the transmitter responds to the mapping function f map (), determines the residual values ​​of the mapping of the sample from the source value OrigC(x,y) and the predicted values ​​PredC(x,y) and PredY(x,y). Define or derive the mapping function to obtain the coding gain, i.e., reducing the bit rate for a given visual or objective quality, or increasing the visual or objective quality for a given bit rate. This can be done by referring to... Figure 5A One of the disclosed methods is to derive the mapping function. Steps S110 to S130 can be repeated for each sample of the accessed block to obtain the block of residual values ​​of the mapping. In the fourth embodiment, it is denoted as ResC. map The mapping residual of (x,y) is equal to f map (PredY(x,y))*ResC usual (x,y), where ResC usual(x,y) = OrigC(x,y) – PredC(x,y), where OrigC(x,y) is the value of the source sample of the chrominance component C (to be encoded) at position (x,y) in the image, PredC(x,y) is the value of the predicted sample of the chrominance component C, and ResC usual (x,y) is the value of the predicted residual sample of the chromaticity component C.

[0217] In step S140, the transmitter encodes the mapped residual values. Encoding the mapped residual values ​​typically (but not necessarily) involves transforming the residuals into transform coefficients, quantizing the coefficients with a quantization step size QP to obtain quantized coefficients, and entropy encoding the quantized coefficients in the bitstream.

[0218] The method ends at step S180.

[0219] Figure 11B Indicates corresponding to about Figure 11A A flowchart of a publicly disclosed encoding method for decoding picture blocks from a bitstream.

[0220] The method begins at step S200. In step S210, a receiver 2000, such as a decoder 200, accesses the bitstream.

[0221] In step S220, the receiver obtains a predicted value PredC(x,y) for at least one sample of the source value OrigC(x,y) for the accessed block, for at least one component (e.g., for chroma C), where (x,y) are the spatial coordinates of the sample in the frame, and further obtains a predicted value PredY(x,y) for the same sample of at least another component (e.g., luminance Y) (downsampling may be used when the resolutions of the luminance and chroma frames are different). The predicted value is obtained depending on the prediction mode (intra-frame / inter-frame mode) selected for the block.

[0222] In step S230, the receiver decodes the residual value ResC(x,y) of the sample to be decoded. The residual value ResC(x,y) is in Figure 11A The decoded version of the residual value of the mapped image encoded at step S140. Decoding typically, but not necessarily, involves entropy decoding of a portion of the bitstream representing the block to obtain a block of transform coefficients, dequantizing and inverse transforming the block of transform coefficients to obtain a block of residuals.

[0223] In step S240, the receiver responds to the mapping function 1 / f map (), for a given sample, the reconstructed sample value DecC(x,y) is determined from the decoded residual value ResC(x,y) and the predicted values ​​PredC(x,y) and PredY(x,y), where f map() is the mapping function used by the encoding method in step S130. Steps S220 to S240 can be repeated for each sample of the accessed block to obtain the reconstructed chroma block. In the fourth embodiment, the reconstructed sample value represented as DecC(x,y) is equal to PredC(x,y) + (1 / f map (PredY(x,y)))*ResC(x,y).

[0224] This embodiment advantageously allows scaling of the chroma component at the decoder to depend on the luminance component, typically resulting in improved visual quality due to fine control over chroma scaling for different luminance intervals.

[0225] The method ends at step S280.

[0226] about Figure 10A The third and fourth embodiments disclosed in 10B, 11A and 11B can be advantageously implemented in a fixed-point manner.

[0227] Make ResC usual It is the prediction residual at position (x, y), mapped by a scaling factor scal, for example, from f at value PredY in the case of cross-component scaling. map The value (used as the co-bit value of the predicted brightness of the cross component) is derived as follows: scal = fmap(perdy).

[0228] The part used at the decoder (and possibly encoded in the bitstream, as will be explained below) is invScal = round(2^B ÷ scal).

[0229] ··^ is the exponentiation operator.

[0230] round(x) is the nearest integer value of x.

[0231] B is the bitDepth selected to quantize the scaling factor (typically, B = 8 or 10 bits).

[0232] Value ResC usual Mapping value ResC map The mapping applications are as follows:

[0233] ResC map =(ResC usual *2 B +sign(ResC usual )*(invScal / 2)) / invScal (Equation 3)

[0234] Among them ResC usual(x,y) = OrigC(x,y) – PredC(x,y), and sign(x) equals 1 when x>=0, otherwise it is -1.

[0235] All parameters in this equation are integers, and the division " / " also applies to integers (while division ÷ is floating-point division). Then, the mapped value ResC... map Encode it.

[0236] On the decoder side, the encoded mapped value ResC map Decoded to the value ResC map_dec The decoded value ResC map_dec To the inverse mapping value ResC invmap The inverse mapping is applied as follows:

[0237] ResC invmap =(ResC map_dec *invScal+sign(ResC map_dec )*2 (B-1) ) / 2 B (Equation 4)

[0238] (ResC map_dec *invScal+sign(ResC map_dec )*2(B-1)) / 2B

[0239] It is equivalent to:

[0240] ResC invmap =(ResC map_dec *invScal+sign(ResC map_dec )*2 (B-1) (Equation 5)

[0241] Then, the predicted values ​​PredC and ResC at position (x, y) are used. invmap The reconstructed value DecC is derived as follows:

[0242] DecC = PredC + ResC invmap (Equation 6)

[0243] These operations can also be directly combined to avoid using symbolic operators. Combine equations (5) and (6) into equation (7).

[0244] DecC = (PredC * 2) B +ResC map_dec *invScal+2 (B-1) (Equation 7) >> B.

[0245] In HEVC, quantization is tuned using the quantization parameter QP. The quantization step size Qstep0 is derived from QP and can be approximated as (K*2^(QP / 6)), where K is a fixed parameter.

[0246] When using local QP correction dQP, the actual quantization step size Qstep1 can be approximated as (K*2^((QP+dQP) / 6)), which is (Qstep0*2^(dQP / 6)). The signal is divided by the quantization step size.

[0247] This means that, for a given dQP, the corresponding scaling of the signal applied in quantization, derived from the reciprocal of the quantization step size, is applied to 2^(-dQP / 6).

[0248] For example, the following correspondence can be established for the dQP table.

[0249]

[0250]

[0251] This scaling can be used, for example, in the scaling solution described in the third embodiment. This scaling can also be used to derive mapping functions as used in the first and second embodiments. In effect, this scaling corresponds to the derivative of the mapping function. Therefore, the mapping function can be modeled as a piecewise linear function, where each segment has a slope equal to the scaling corresponding to that segment.

[0252] If the dQP table is defined as a set of intervals [Y] i ,Y i+1 -1], where dQP value dQP i Associated with each interval, for i = 0 to n, where n is an integer, the mapping function can be defined as follows.

[0253] Let i be the index of the interval containing Y (Y in [Y i ,Y i+1 –1] in the middle).

[0254] f map (Y)=f map (Y i )+2^(–dQP i / 6)*(YY i )

[0255] For the specific dQP table above, this is given Figure 12 The functions shown are used for full-range (FR) or limited-range (LR) signal representation.

[0256] function f map or g map or its inverse function invfmap or invg map It can be explicitly defined in the decoder (and therefore in the decoder specification) or indicated by a signal in the bitstream.

[0257] function f map ,invf map g map or invg map It can be implemented in the following forms:

[0258] • Lookup table

[0259] Piecewise scalar function (PWS)

[0260] Piecewise linear functions (PWL)

[0261] Piecewise polynomial function (PWP).

[0262] They can be encoded in SEI messages, Sequence Parameter Sets (SPS), Picture Parameter Sets (PPS), stripe headers, Code Tree Unit (CTU) syntax, each tile, or new structures such as Adaptive Picture Sets (APS).

[0263] The implementations described herein can be implemented, for example, as a method or process, an apparatus, a software program, a data stream, or a signal. Even if discussed only in the context of a single form of implementation (e.g., only as a method or apparatus), the features discussed can be implemented in other forms (e.g., a program). Apparatus can be implemented, for example, with appropriate hardware, software, and firmware. The method can be implemented in an 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. Processors also include communication devices, such as, for example, computers, cellular phones, portable / personal digital assistants (“PDAs”), and other devices that facilitate communication of information between end users.

[0264] The various processing and features described in this article can be implemented in a wide variety of devices or applications, particularly, for example, devices or applications. Examples of such devices include encoders, decoders, post-processors that process the output from the decoder, pre-processors that provide input to the encoder, video encoders, video decoders, video codecs, web servers, set-top boxes, laptops, personal computers, cellular phones, PDAs, and other communication devices. It should be understood that devices can be mobile and can even be installed in mobile vehicles.

[0265] Additionally, methods can be implemented by instructions executed by a processor, and such instructions (and / or data values ​​generated by the implementation) can be stored on a processor-readable medium such as, for example, an integrated circuit, a software carrier, or other storage device (such as, for example, a hard disk, a compact disc (CD), an optical disc (e.g., a DVD, often referred to as a digital multifunction disc or digital video disc), random access memory (“RAM”), or read-only memory (“ROM”)). Instructions can form an application tangibly embodied on the processor-readable medium. Instructions can be, for example, hardware, firmware, software, or a combination thereof. Instructions can be found, for example, in an operating system, a standalone application, or a combination of both. Thus, a processor can be characterized, for example, as a device configured to perform processing and a device (such as a storage device) including a processor-readable medium having instructions for implementing the processing. Furthermore, in addition to or instead of instructions, the processor-readable medium can store data values ​​generated by the implementation.

[0266] As will be apparent to those skilled in the art, implementations can generate various signals that are formatted to carry, for example, information that can be stored or transmitted. This information may include, for example, instructions for performing a method or data generated by one of the described implementations. For example, a signal may be formatted to carry as data rules the syntax for writing or reading the described embodiments, or to carry as data actual syntax values ​​written by the described embodiments. Such a signal may be formatted as, for example, electromagnetic waves (e.g., using the radio frequency portion of the spectrum) or baseband signals. Formatting may include, for example, encoding a data stream and modulating a carrier wave using the encoded data stream. The information carried by the signal may be, for example, analog or digital information. It is well known that the signal can be transmitted over various wired or wireless links. The signal may be stored on a processor-readable medium.

[0267] Many implementations have been described. However, it will be understood that various modifications can be made. For example, elements of different implementations can be combined, supplemented, modified, or removed to produce other implementations. Furthermore, those skilled in the art will understand that the disclosed implementations can be replaced with other structures and processes, and the resulting implementations will perform at least the same functions in at least the same manner(s) to achieve at least the same results as the disclosed implementations(s). Therefore, this application considers these and other implementations.

Claims

1. An encoding device, comprising at least one processor configured to perform the following methods: - Obtain the predicted source values ​​of the current color components of at least one sample of a block of the image; - Use a mapping function to determine the residual value of the mapping from the source value of the current color component and from the predicted value; as well as - Encode the mapped residual values ​​into the video data; in, Determining the residual values ​​of the mapping includes: - Use a mapping function to map the predicted values ​​to obtain the mapped predicted values; - Use a mapping function to map the source value to obtain the mapped source value; and - Determine the residual value of the mapping, which represents the difference between the source value of the mapping and the predicted value of the mapping.

2. A device for decoding, comprising at least one processor configured to perform the following methods: - Obtain the predicted values ​​of the current color components of samples of blocks in the image; - The residual value of the current color component of the decoded sample; as well as - Using the mapping function and the inverse mapping function as the inverse of the mapping function, the reconstructed value of the current color component of the sample is determined from the decoded residual value and from the predicted value; in, Determining the reconstructed values ​​includes: - Use a mapping function to map the predicted values ​​to obtain the mapped predicted values; - Obtain the median value representing the sum of the predicted and residual values ​​of the mapping; and - Reconstructed values ​​are obtained by mapping intermediate values ​​using an inverse mapping function.

3. A computer-readable medium storing program code instructions for a processor to execute the program code instructions to implement a method for encoding, the method comprising: - Obtain the predicted source values ​​of the current color components of a sample of a block of image; - Use a mapping function to determine the residual value of the mapping from the source value of the current color component and from the predicted value; as well as - Encode the mapped residual values ​​into the video data; The residual values ​​for determining the mapping include: - Use a mapping function to map the predicted values ​​to obtain the mapped predicted values; - Use a mapping function to map the source value to obtain the mapped source value; and - Determine the residual value of the mapping, which represents the difference between the source value and the predicted value of the mapping.

4. A computer-readable medium storing program code instructions for a processor to execute the program code instructions to implement a method for decoding, the method comprising: - Obtain the predicted values ​​of the current color components of samples of blocks in the image; - The residual value of the current color component of the decoded sample; as well as - Using the mapping function and the inverse mapping function as the inverse of the mapping function, the reconstructed value of the current color component of the sample is determined from the decoded residual value and from the predicted value; The determination of the reconstructed values ​​includes: - Use a mapping function to map the predicted values ​​to obtain the mapped predicted values; - Obtain the median value representing the sum of the predicted and residual values ​​of the mapping; and - Reconstructed values ​​are obtained by mapping intermediate values ​​using an inverse mapping function.

5. A method for encoding, comprising: - Obtain the chromaticity prediction values ​​of the chromaticity source values ​​of the samples of the image blocks; - Obtain the predicted brightness value representing the brightness source value of the sample; - Use a mapping function to determine the mapped chromaticity residual value from the chromaticity source value and from the value representing the luminance prediction value; as well as - Encode the mapped chroma residual values ​​into the video data; The determination of the chromaticity residual values ​​of the mapping includes: - Define the chromaticity residual value as the difference between the chromaticity source value and the chromaticity prediction value; - A mapping function is used to map the chromaticity residual value to obtain the mapped chromaticity residual value. The application of the mapping function to the chromaticity residual value includes multiplying the chromaticity residual value by a scaling factor, which depends on a value representing the luminance prediction value.

6. The method of claim 5, comprising: - Obtain the predicted brightness value; - Use a mapping function to determine the mapped luminance residual value from the luminance source value and the luminance prediction value; as well as - Encode the mapped luminance residual values ​​into the video data; The determination of the luminance residual value of the mapping includes: - Use a mapping function to map the brightness prediction values ​​to obtain the mapped brightness prediction values; - Use a mapping function to map the luminance source values ​​to obtain the mapped luminance source values; and - The mapped luminance residual value is determined by subtracting the mapped luminance source value from the mapped luminance prediction value.

7. A method for decoding, comprising: - Obtain the chromaticity prediction values ​​of the chromaticity source values ​​of the samples of the image blocks; - Obtain the predicted brightness value representing the brightness source value of the sample; - The chromaticity residual value of the decoded sample; as well as - Use a mapping function to determine the reconstructed chromaticity values ​​of the sample from the decoded chromaticity residual values ​​and from the chromaticity prediction values; The determination of the reconstructed chromaticity values ​​includes: - Mapping the chromaticity residual values ​​to obtain mapped chromaticity residual values, wherein the application of the mapping function to the chromaticity residual values ​​includes multiplying the chromaticity residual values ​​by a scaling factor, the scaling factor depending on a value representing a luminance prediction value; and - The reconstructed chromaticity value is obtained by adding the mapped chromaticity residual value to the chromaticity prediction value.

8. The method of claim 7, comprising: - Obtain the predicted brightness value; - The brightness residual value of the decoded sample; - Using a mapping function and an inverse mapping function that is the inverse of the mapping function, the reconstructed brightness value of the sample is determined from the decoded brightness residual value and from the brightness prediction value; The determination of the reconstructed brightness value includes: - Use a mapping function to map the brightness prediction values ​​to obtain the mapped brightness prediction values; - Obtain the median value representing the sum of the mapped luminance predictions and luminance residuals; and - Reconstructed brightness values ​​are obtained by mapping intermediate values ​​using an inverse mapping function.

9. An encoding device, comprising at least one processor configured to perform the following methods: - Obtain the predicted source values ​​of the current color components of a sample of a block of image; - Use a mapping function to determine the residual value of the mapping from the source value of the current color component and from the predicted value; as well as - Encode the mapped residual values ​​into the video data; in, Determining the residual values ​​of the mapping includes: - The residual value is determined as the difference between the source value and the value representing the predicted value; - The predicted value is represented by the first derivative of the mapping function to obtain the predicted value of the mapping; and - The residual value of the mapping is determined as the product of the predicted value of the mapping and the residual value.

10. The device as claimed in claim 9, wherein, This indicates that the predicted value is a filtered version of the predicted value.

11. A device for decoding, comprising at least one processor configured to perform the following methods: - Obtain the predicted values ​​of the current color components of samples of blocks in the image; - Residual values ​​of the decoded samples; - Use a mapping function to determine the reconstructed values ​​of the samples from the decoded residuals and the predicted values; in, Determining the reconstructed values ​​includes: - The predicted value is represented by the first derivative of the mapping function to obtain the predicted value of the mapping; - Intermediate values ​​are obtained by dividing the decoded residual by the mapped prediction; and - The reconstructed value is obtained by adding the value representing the predicted value to the intermediate value.

12. The device as claimed in claim 11, wherein, This indicates that the predicted value is a filtered version of the predicted value.

13. An apparatus for encoding, comprising at least one processor configured to perform the following methods: - Obtain the chromaticity prediction values ​​of the chromaticity source values ​​of the samples of the image blocks; - Obtain the predicted brightness value representing the brightness source value of the sample; - Use a mapping function to determine the mapped chromaticity residual value from the chromaticity source value and from the value representing the luminance prediction value; as well as - Encode the mapped chroma residual values ​​into the video data; The determination of the chromaticity residual values ​​of the mapping includes: - Define the chromaticity residual value as the difference between the chromaticity source value and the chromaticity prediction value; - The chromaticity residual value is mapped using a mapping function to obtain the mapped chromaticity residual value, which includes multiplying the chromaticity residual value by a scaling factor that depends on the value representing the luminance prediction value.

14. The device of claim 13, wherein the at least one processor is further configured to: - Obtain the predicted brightness value; - Use a mapping function to determine the mapped luminance residual value from the luminance source value and the luminance prediction value; as well as - Encode the mapped luminance residual values ​​into the video data; The determination of the luminance residual value of the mapping includes: - Use a mapping function to map the brightness prediction values ​​to obtain the mapped brightness prediction values; - Use a mapping function to map the luminance source values ​​to obtain the mapped luminance source values; and - The mapped luminance residual value is determined by subtracting the mapped luminance source value from the mapped luminance prediction value.

15. A device for decoding, comprising at least one processor configured to perform the following methods: - Obtain the chromaticity prediction values ​​of the chromaticity source values ​​of the samples of the image blocks; - Obtain the predicted brightness value representing the brightness source value of the sample; - The chromaticity residual value of the decoded sample; as well as - Use a mapping function to determine the reconstructed chromaticity values ​​of the sample from the decoded chromaticity residual values ​​and from the chromaticity prediction values; The determination of the reconstructed chromaticity values ​​includes: - Mapping the chromaticity residual values ​​to obtain mapped chromaticity residual values, said mapped chromaticity residual values ​​including multiplying the chromaticity residual values ​​by a scaling factor that depends on the value representing the luminance prediction value; and - The reconstructed chromaticity value is obtained by adding the mapped chromaticity residual value to the chromaticity prediction value.

16. The device of claim 15, wherein the at least one processor is further configured to: - Obtain the predicted brightness value; - The brightness residual value of the decoded sample; - Using a mapping function and an inverse mapping function that is the inverse of the mapping function, the reconstructed brightness value of the sample is determined from the decoded brightness residual value and from the brightness prediction value; in, Determining the reconstructed brightness value includes: - Use a mapping function to map the brightness prediction values ​​to obtain the mapped brightness prediction values; - Obtain the median value representing the sum of the mapped luminance predictions and luminance residuals; and - Reconstructed brightness values ​​are obtained by mapping intermediate values ​​using an inverse mapping function.

17. A non-transitory computer-readable medium comprising program code instructions for execution by a processor to implement a method for encoding, the method comprising: - Obtain the chromaticity prediction values ​​of the chromaticity source values ​​of the samples of the image blocks; - Obtain the predicted brightness value representing the brightness source value of the sample; - Use a mapping function to determine the mapped chromaticity residual value from the chromaticity source value and from the value representing the luminance prediction value; as well as - Encode the mapped chroma residual values ​​into the video data; The determination of the chromaticity residual values ​​of the mapping includes: - Define the chromaticity residual value as the difference between the chromaticity source value and the chromaticity prediction value; - A mapping function is used to map the chromaticity residual values ​​to obtain mapped chromaticity residual values. The application of the mapping function to the chromaticity residual values ​​includes multiplying the chromaticity residual values ​​by a scaling factor, which depends on a value representing a luminance prediction value.

18. A non-transitory computer-readable medium storing program code instructions for a processor to execute the program code instructions to implement a method for decoding, the method comprising: - Obtain the chromaticity prediction values ​​of the chromaticity source values ​​of the samples of the image blocks; - Obtain the predicted brightness value representing the brightness source value of the sample; - The chromaticity residual value of the decoded sample; as well as - Use a mapping function to determine the reconstructed chromaticity values ​​of the sample from the decoded chromaticity residual values ​​and from the chromaticity prediction values; The determination of the reconstructed chromaticity values ​​includes: - Mapping the chromaticity residual values ​​to obtain mapped chromaticity residual values, wherein the application of the mapping function to the chromaticity residual values ​​includes multiplying the chromaticity residual values ​​by a scaling factor, the scaling factor depending on a value representing a luminance prediction value; and - The reconstructed chromaticity value is obtained by adding the mapped chromaticity residual value to the chromaticity prediction value.

19. A non-transitory computer-readable medium storing program code instructions for a processor to execute the program code instructions to implement the method for encoding according to claim 5, the method further comprising: - Obtain the predicted brightness value; - Use a mapping function to determine the mapped luminance residual value from the luminance source value and the luminance prediction value; as well as - Encode the mapped luminance residual values ​​into the video data; The determination of the luminance residual value of the mapping includes: - Use a mapping function to map the brightness prediction values ​​to obtain the mapped brightness prediction values; - Use a mapping function to map the luminance source values ​​to obtain the mapped luminance source values; and - The mapped luminance residual value is determined by subtracting the mapped luminance source value from the mapped luminance prediction value.

20. A non-transitory computer-readable medium storing program code instructions for a processor to execute the program code instructions to implement the method for decoding according to claim 7, the method further comprising: - Obtain the predicted brightness value; - The brightness residual value of the decoded sample; - Using a mapping function and an inverse mapping function that is the inverse of the mapping function, the reconstructed brightness value of the sample is determined from the decoded brightness residual value and from the brightness prediction value; The determination of the reconstructed brightness value includes: - Use a mapping function to map the brightness prediction values ​​to obtain the mapped brightness prediction values; - Obtain the median value representing the sum of the mapped luminance predictions and luminance residuals; and - Reconstructed brightness values ​​are obtained by mapping intermediate values ​​using an inverse mapping function.