Method and device for coding and decoding prediction picture
By modifying the quantization step for transformed prediction residuals using a mapping function, the method addresses the challenges of adapting to new video formats, improving coding performance and reducing signal distortion.
Patent Information
- Application Number
- JP2025018497
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2017-04-07
- Filing Date
- 2025-02-06
- Publication Date
- 2025-06-17
- Estimated Expiration
- 2038-03-15
AI Technical Summary
Existing picture encoding and decoding methods face challenges when adapting to new video formats with wider color gamuts, higher frame rates, and dynamic ranges, leading to signal distortion and loss of coding performance due to fixed-point precision mapping and inverse mapping processes.
Instead of reforming sample values before coding, the proposed method modifies the quantization step for the coefficients of transformed prediction residuals, using a mapping function derived to optimize bit cost and reconstruction quality. This approach is particularly efficient by adapting the quantization step for each block, even when blocks contain diverse sample values.
The method achieves a reduction in bit cost for a given reconstruction quality or an increase in reconstruction quality for a given bit cost, thereby enhancing coding performance and reducing signal distortion.
Smart Images

Figure 2025090581000001_ABST
Abstract
Description
Technical Field
[0001] 1. Technical Field The present principle generally relates to methods and devices for picture encoding and decoding, and more particularly, to methods and devices for encoding and decoding picture blocks.
Background Art
[0002] 2. Background Art New generations of video formats include a wider color gamut, higher frame rates, and higher dynamic ranges. 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 color gamut of currently used BT-709. ITU-R Recommendation BT-2100 defines a format that includes a transfer function that enables an extension of the dynamic range of content with respect to BT.709. The primary colors of BT-2100 are the same as those of BT-2020.
[0003] The use of a BT.709 container or a BT.2100 container results in significantly different codeword distributions. Most of the coding tools developed so far focus on SDR signals using the BT.709 container. When migrating to a wider container such as BT.2100, container adaptation or modification in codec design may be required. Thus, for example, it is necessary to'reform' or map the sample values before coding in order to modify the sample values in the new container to conform to the properties expected by current codecs and encoders such as HEVC.
Summary of the Invention
[0004] To obtain a sample distribution similar to that of an initial input sample (e.g., BT.709), it is known to perform mapping / reformation of samples represented in a given container (e.g., BT.2100) before encoding. The inverse mapping is applied to the decoded samples. The mapping before encoding and the inverse mapping after decoding cause distortion of the signal. In fact, both the mapping and inverse mapping processes are applied with fixed-point precision, thereby causing information loss. This distortion accumulates with the distortion of the coding process, resulting in a loss of coding performance.
[0005] Instead of "reforming" the sample values before coding, an alternative approach for processing a new container is to modify the quantization step for quantizing the coefficients of the transformed prediction residuals. For this purpose, based on the prediction of this block, the values inferred from the original or reconstructed samples, it is known to adapt the quantization step applied to the coefficients resulting from the transformation (e.g., DCT) of the prediction residual samples for a given sample block. Adapting the quantization step for each block can be particularly inefficient in cases where the block contains samples with many different values (e.g., bright samples and dark samples).
[0006] 3. Brief Overview A method for encoding a picture block, for at least one sample of the block and for one current component, - obtaining a predicted value, and - determining a mapped residual value from the source value of the sample and from the predicted value in response to a mapping function, and - encoding the mapped residual value and embedding it into a bitstream is disclosed, 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 a given bit cost of the bitstream.
[0007] A device for encoding a picture block, comprising: - means for obtaining a prediction value for at least one sample of the block and for one current component; - means for determining a mapped residual value from the source value of the sample and from the prediction value in response to a mapping function; - means for encoding the mapped residual value and embedding it into a bitstream 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 a given bit cost of the bitstream.
[0008] In a variant form, an encoding device comprising a communication interface configured to access a picture block and at least one processor, wherein the at least one processor is configured to - obtain a prediction value for at least one sample of the accessed block and for one current component; - determine a mapped residual value from the source value of the sample and from the prediction value in response to a mapping function; - encode the mapped residual value and embed it into a bitstream 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 a given bit cost of the bitstream. An encoding device is disclosed.
[0009] A bitstream representing a picture block, - Encoded data representing the mapped residual values, where the mapped residual values are obtained for at least one sample of a block and for one current component from the source value of the sample and from the predicted value in response to a mapping function, and 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 a given bit cost of the bitstream, and the encoded data, - Encoded data representing the mapping function and A bitstream is disclosed that includes the above.
[0010] In a variant form, a non - transitory processor - readable medium storing a bitstream representing a picture block, the bitstream including - Encoded data representing the mapped residual values, where the mapped residual values are obtained for at least one sample of a block and for one current component from the source value of the sample and from the predicted value in response to a mapping function, and 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 a given bit cost of the bitstream, and the encoded data, - Encoded data representing the mapping function and A non - transitory processor - readable medium is disclosed that includes the above.
[0011] - Transmitting encoded data representing the mapped residual values, where the mapped residual values are obtained for at least one sample of a picture block and for one current component from the source value of the sample and from the predicted value in response to a mapping function, and 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 a given bit cost of the bitstream, and the transmitting, from the predicted value, and the transmitting, - Transmitting encoded data representing a mapping function A transmission method is disclosed that includes this.
[0012] - Means for transmitting encoded data representing a mapped residual value, the mapped residual value being obtained from a source value of a sample and from a predicted value for at least one sample of a picture block and for one current component in response to a mapping function, the mapping function being derived to obtain at least one of a reduction in the bit cost of a bitstream for a predetermined reconstruction quality or an increase in the reconstruction quality for a predetermined bit cost of the bitstream, means for transmitting - Means for transmitting encoded data representing a mapping function A transmission device is disclosed that includes this.
[0013] A transmission device including a communication interface configured to access a picture block and at least one processor, the at least one processor - Transmitting encoded data representing a mapped residual value, the mapped residual value being obtained from a source value of a sample and from a predicted value for at least one sample of a block and for one current component in response to a mapping function, the mapping function being derived to obtain at least one of a reduction in the bit cost of a bitstream for a predetermined reconstruction quality or an increase in the reconstruction quality for a predetermined bit cost of the bitstream, transmitting - Transmitting encoded data representing a mapping function A transmission device is disclosed that is configured to perform this.
[0014] The following embodiments apply to the encoding method, encoding device, bitstream, processor-readable medium, transmission method, and transmission device disclosed above.
[0015] In a first specific and non-limiting embodiment, determining the mapped residual value comprises: - mapping the source value of the sample using a mapping function; - mapping the predicted value of the sample using a mapping function; and - determining the mapped residual value by subtracting the mapped predicted value from the mapped component value. This includes.
[0016] In a second specific and non-limiting embodiment, determining the mapped residual value comprises: - determining an intermediate residual value by subtracting the predicted value from the source value of the sample; and - mapping the intermediate residual value in response to the mapping function according to the predicted value. This includes.
[0017] In a third specific and non-limiting embodiment, mapping the intermediate residual value in response to the mapping function according to the predicted value includes multiplying the intermediate residual value by a scaling factor, where the scaling factor depends on the predicted value of the sample.
[0018] In a fourth specific and non-limiting embodiment, mapping the intermediate residual value in response to the mapping function according to the predicted value includes multiplying the intermediate residual value by a scaling factor, where the scaling factor depends on the predicted value obtained for another component of the sample, and the another component is different from the current component. This includes multiplying.
[0019] A method for decoding a picture block, for at least one sample of the block and for one current component: - obtaining a predicted value; - decoding a residual value for the sample; and - determining a reconstructed value for the sample from the decoded residual value and the predicted value in response to the mapping function. A method including a mapping function derived to obtain at least one of a reduction in the bit cost of a bitstream with respect to a predetermined reconstruction quality or an increase in the reconstruction quality with respect to a predetermined bit cost of the bitstream is disclosed.
[0020] A device for decoding a picture block, - means for obtaining a predicted value for at least one sample of the block and for one current component, - means for decoding a residual value for the sample, - means for determining a reconstructed value for the sample from the decoded residual value and from the predicted value in response to a mapping function A device including the above, and a mapping function derived to obtain at least one of a reduction in the bit cost of a bitstream with respect to a predetermined reconstruction quality or an increase in the reconstruction quality with respect to a predetermined bit cost of the bitstream is also disclosed.
[0021] In a variant, a decoding device configured to access a bitstream and including at least one process decoding or, wherein the at least one process decoding or is - obtaining a predicted value for at least one sample of the block and for one current component, - decoding a residual value for the sample from the accessed bitstream, - determining a reconstructed value for the sample from the decoded residual value and from the predicted value in response to a mapping function A decoding device configured to perform the above, and a mapping function derived to obtain at least one of a reduction in the bit cost of a bitstream with respect to a predetermined reconstruction quality or an increase in the reconstruction quality with respect to a predetermined bit cost of the bitstream is disclosed.
[0022] The following embodiments apply to the decoding method and decoding device disclosed above.
[0023] In a first specific and non-limiting embodiment, determining a reconstructed value for a sample comprises: - mapping a predicted value of the sample using a mapping function; - mapping the decoded residual value using the inverse function of the mapping function; and - determining the reconstructed value by adding the mapped predicted value to the mapped decoded residual value.
[0024] In a second specific and non-limiting embodiment, determining a reconstructed value for a sample comprises: - mapping the decoded residual value using the inverse function of the mapping function according to the predicted value; and - determining the reconstructed value by adding the predicted value to the mapped decoded residual value.
[0025] In a third specific and non-limiting embodiment, mapping the decoded residual value using the inverse function of the mapping function according to the predicted value comprises multiplying the decoded residual value by a scaling factor, the scaling factor depending on the predicted value of the sample.
[0026] In a fourth specific and non-limiting embodiment, mapping the decoded residual value using the inverse function of the mapping function according to the predicted value comprises multiplying the decoded residual value by a scaling factor, the scaling factor depending on a predicted value obtained for another component of the sample, the other component being different from the current component. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] 4. BRIEF OVERVIEW OF THE DRAWINGS
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5A
Figure 5B
Figure 6A
Figure 6B
Figure 7
Figure 8A
Figure 8B
Figure 9
Figure 10A
Figure 10B
Figure 11A
Figure 11B
Figure 12
Mode for Carrying Out the Invention
[0028] 5. Detailed Description The figures and descriptions are simplified to show elements relevant to a clear understanding of the present principle, while it should be understood that many other elements found in a typical encoding and / or decoding device are excluded for clarity. In this specification, the terms "first" and "second" can be used to describe various elements, and it should be understood that these elements should not be limited by these terms. These terms are used only to distinguish one element from another.
[0029] A picture is an array of luma samples in monochrome format or one array of luma samples and two corresponding arrays of chroma samples in 4:2:0, 4:2:2, and 4:4:4 color formats. Generally, a "block" addresses a specific area of the sample array (e.g., luma Y), and a "unit" includes an array block of all color components (luma Y and, optionally, chroma Cb and chroma Cr). A slice is an integer number of basic coding units, such as an HEVC coding tree unit or an H.264 macroblock unit. A slice can consist of a complete picture and a part thereof. Each slice can include one or more slice segments.
[0030] In the following, the terms "reconstructed" and "decoded" can be used interchangeably. Usually (but not necessarily), "reconstructed" is used on the encoder side and "decoded" is used on the decoder side. The term "decoded" or "reconstructed" means that the bitstream is partially "decoded" or "reconstructed" (e.g., the signal obtained after deblocking filtering (but before SAO filtering)), and that the reconstructed samples can be different from the final decoded output used for display. Also, the terms "image", "picture" and "frame" can be used interchangeably. Also, the terms "sample" and "pixel" can be used interchangeably.
[0031] Various embodiments are described with respect to the HEVC standard. However, the principles are not limited to HEVC and can be applied to other standards, recommendations, and their 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 are described with respect to the encoding / decoding of slices. Various embodiments can be applied to the encoding / decoding of an entire picture or an entire sequence of pictures.
[0032] References to "an embodiment" or "embodiments" of the present principles and other variations thereof mean that the particular features, structures, characteristics, etc. described in relation to the embodiments are included in at least one embodiment. Thus, the appearances of the phrases "in one embodiment", "in an embodiment", "in one implementation", or "in an implementation" and any other variations that appear in various places throughout this specification do not necessarily all refer to the same embodiment.
[0033] It should be understood that any use of the following: " / ", "and / or", and "at least one of ~" is intended to include, for example, in the case of "A / B", "A and / or B", and "at least one of A or B", the selection of only the first list option (A), the selection of only the second list option (B), or the selection of both options (A and B). As a further example, in the case of "A, B and / or C" and "at least one of A, B or C", such a description includes the selection of only the first list option (A), the selection of only the second list option (B), the selection of only the third list option (C), the selection of only the first and second list options (A and B), the selection of only the first and third list options (A and C), the selection of only the second and third list options (B and C), or, is intended to include the selection of all three options (A, B and C). This can be extended for as many items listed as will be readily apparent to those skilled in this art and related arts.
[0034] Various methods have been described above, and each method includes one or more steps or operations for achieving the described method. The order and / or use of specific steps and / or operations can be modified or combined, provided that a particular order of steps or operations is not required for the correct operation of the method.
[0035] FIG. 1 represents an exemplary architecture of a transmitter 1000 configured to encode a picture and embed it into a bitstream according to a specific and non-limiting embodiment.
[0036] The transmitter 1000 includes one or more processors 1005, which may include, for example, a CPU, a GPU, and / or a DSP (the acronym for Digital Signal Processor), and is accompanied by an internal memory 1030 (e.g., RAM, ROM, and / or EPROM). The transmitter 1000 includes one or more communication interfaces 1010 (e.g., a keyboard, a mouse, a touchpad, a web camera) adapted such that each can display output information and / or the user can input commands and / or data, and a power source 1020 that can be external to the transmitter 1000. Further, the transmitter 1000 may also include one or more network interfaces (not shown). The encoder module 1040 represents a module that can be included in a device to perform an encoding function. In addition, the encoder module 1040 can be implemented as a separate element of the transmitter 1000 or incorporated into the processor 1005 as a combination of hardware and software known to those skilled in the art.
[0037] The picture can be obtained from a source. According to different embodiments, the source includes, but is not limited to, - a local memory (e.g., video memory, RAM, flash memory, hard disk), - a storage device interface (e.g., an interface with a mass storage device, ROM, optical disk, or magnetic support), - a communication interface (e.g., a wired interface (e.g., a bus interface, a wide area network interface, a local area network interface) or a wireless interface (such as an IEEE802.11 interface or a Bluetooth interface)), and - a picture capture circuit (e.g., a sensor, such as a CCD (Charge-Coupled Device) or a CMOS (Complementary Metal-Oxide-Semiconductor), etc.) can be.
[0038] According to different embodiments, the bitstream can be transmitted to a destination. By way of example, the bitstream is stored in a remote or local memory (for example, a video memory or RAM, a hard disk). In a variant, the bitstream is sent to a storage interface (for example, an interface with a mass storage device, a ROM, a flash memory, an optical disk or a magnetic support) and / or transmitted over a communication interface (for example, an interface with a point-to-point link, a communication bus, a point-to-multipoint link or a broadcast network).
[0039] According to an exemplary and non-limiting embodiment, the transmitter 1000 further includes a computer program stored in the memory 1030. The computer program includes instructions that are executed by the transmitter 1000 (specifically, by the processor 1005). This enables the transmitter 1000 to execute the encoding method described with reference to figures 5A, 6A, 8A, 10A and 11A. According to a variant, the computer program is stored on a non-transitory digital data support external to the transmitter 1000 (for example on an external storage medium such as a HDD, a CD-ROM, a DVD, a read-only and / or DVD drive and / or a DVD read / write drive), all of which are 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 (for example "memory sticks") through a corresponding USB port (not shown).
[0040] According to exemplary and non-limiting embodiments, the transmitter 1000 may include, but is not limited to: - Mobile devices, - communication devices, - gaming devices, - a tablet (or tablet computer), - Laptop, - A still picture camera, - A video camera, - An encoding chip or an encoding device / apparatus, - A still picture server, and - A video server (e.g., a broadcast server, a video-on-demand server, or a web server).
[0041] FIG. 2 shows an exemplary video encoder 100 (e.g., an HEVC video encoder) adapted to execute an encoding method according to one of the embodiments of FIGS. 5A, 6A, 8A, 10A, and 11A. The encoder 100 is an example of a transmitter 1000 or a part of such a transmitter 1000.
[0042] In the case of encoding, a picture is typically partitioned into basic encoding units (e.g., into coding tree units (CTUs) in HEVC or into macroblock units in H.264). Perhaps a set of consecutive basic encoding units is classified as a slice. A basic encoding unit contains basic encoding blocks for all color components. In HEVC, the minimum CTB size of 16×16 corresponds to the macroblock size as used in previous video encoding standards. In this specification, the terms CTU and CTB are used to describe encoding / decoding methods and encoding / decoding apparatuses, but these methods and apparatuses should not be limited by these specific terms and it will be understood that they may be expressed in different terms (e.g., macroblocks) in other standards such as H.264.
[0043] In HEVC, a CTB is the root of a quadtree partitioned into coding blocks (CBs), where a coding block forms the root of a quadtree partitioned into one or more prediction blocks (PBs) and transform blocks (TBs). Corresponding to the coding block, prediction block, and transform block, a coding unit (CU) includes a tree structure set of prediction units (PUs) and transform units (TUs), where a PU includes prediction information for all color components and a TU includes a residual coding syntax structure for each color component. The sizes of the CB, PB, and TB of the luma component apply to the corresponding CU, PU, and TU. In the present application, the term "block" or "picture block" can be used to refer to any one of a CTU, CU, PU, TU, CB, PB, and TB. In addition, the term "block" or "picture block" can be used to refer to macroblocks, partitions, and subblocks as specified in H.264 / AVC or other video coding standards. and more generally, can be used to refer to an array of samples of various sizes.
[0044] In exemplary encoder 100, a picture is encoded by encoder elements as described below. The picture to be encoded is processed in units of CUs. Each CU is encoded using either an intra or inter mode. When a CU is encoded in the intra mode, intra prediction (160) is performed. In the inter mode, motion estimation (175) and compensation (170) are performed. The encoder determines (105) whether to use the intra mode or the inter mode to encode the CU and indicates the intra / inter decision by a prediction mode flag. The residual is calculated (110) by subtracting a predicted sample block (also known as a predictor) from the original picture block. The predicted sample block includes a predicted value for each sample of the block.
[0045] In intra mode, the CU is predicted from the reconstructed neighboring samples within the same slice. A set of 35 intra prediction modes is available in HEVC, including DC, planar, and 33 angular prediction modes. Intra prediction references are reconstructed from the rows and columns adjacent to the current block. The references use available samples from previously reconstructed blocks and extend more than twice the block size in the horizontal and vertical directions. When an angular prediction mode is used for intra prediction, the reference samples can be copied along the direction indicated by the angular prediction mode.
[0046] The applicable luma intra prediction modes for the current block can be coded using two different options. If the applicable mode is included in the construction list of the three most probable modes (MPM), the mode is signaled by the index of the MPM list. Otherwise, the mode is signaled by the fixed-length binary of the mode index. The three most probable modes are derived from the intra prediction modes of the upper and left neighboring blocks.
[0047] In the case of an inter CU, the corresponding coded block is further partitioned into one or more prediction blocks. Inter prediction is performed at the PB level, and the corresponding PU contains information on how the inter prediction is performed.
[0048] Motion information (i.e., motion vectors and reference indices) can be signaled in two ways, namely, "advanced motion vector prediction (AMVP)" and "merge mode". In AMVP, the video encoder or decoder assembles a candidate list based on motion vectors determined from already coded blocks. The video encoder then signals an 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 vector (MV) is reconstructed as MVP + MVD.
[0049] In merge mode, the video encoder or decoder assembles a candidate list based on already encoded blocks, and the video encoder signals an index for one of the candidates in the candidate list. On the decoder side, the motion vector and reference picture index are reconstructed based on the signaled candidate.
[0050] In HEVC, the accuracy of the motion information for motion compensation is 1 / 4 sample for the luma component and 1 / 8 sample for the chroma component. A 7-tap or 8-tap interpolation filter is used for interpolation of the fractional sample positions. That is, 1 / 4, 1 / 2, and 3 / 4 of all sample locations in both the horizontal and vertical directions can be addressed for luma. can be addressed.
[0051] The residual is subject to transformation (125) and quantization (130). The quantized transform coefficients along with the motion vector and other syntax elements are entropy coded (145) to output a bitstream. Also, the encoder can skip the transformation and apply quantization directly to the non-transformed residual signal on a 4×4 TU basis. Also, the encoder can avoid both transformation and quantization (i.e., the residual is directly coded without applying either the transformation process or the quantization process). In direct PCM coding, prediction is not applied, and the coding unit samples are directly coded and embedded in the bitstream.
[0052] The encoder includes a decoding loop and thus decodes the encoded blocks to provide a reference for further prediction. The quantized transform coefficients are inverse quantized (140) and inverse transformed (150) to decode the residuals. The picture block is reconstructed by combining the decoded residual and the predicted sample block (155). The in-loop filter (165) is applied to the reconstructed picture to perform, for example, deblocking / SAO (sample adaptive offset) filtering to reduce coding artifacts. The filtered picture is stored in the reference picture buffer (180) and can be used as a reference for other pictures.
[0053] In HEVC, SAO filtering can be enabled or disabled at the video level, slice level, and CTB level. Two SAO modes, namely, edge offset (EO) and band offset (BO), are specified. In the case of EO, the sample classification is based on the local directional structure of the picture to be filtered. In the case of BO, the sample classification is based on the sample values. The parameters for EO or BO can be explicitly coded or derived from neighbors. SAO can be applied to the luma and chroma components, and the SAO mode is the same for the Cb and Cr components. The SAO parameters (i.e., offset, SAO type EO, BO, and disable, class in the case of EO, band position in the case of BO) are configured individually for each color component.
[0054] FIG. 3 represents an exemplary architecture of a receiver 2000 configured to decode a picture from a bitstream to obtain a decoded picture according to certain and non-limiting embodiments.
[0055] The receiver 2000 includes one or more processors 2005, which may include, for example, a CPU, a GPU, and / or a DSP (the acronym for Digital Signal Processor), and is accompanied by an internal memory 2030 (e.g., RAM, ROM, and / or EPROM). The receiver 2000 includes one or more communication interfaces 2010 (e.g., a keyboard, a mouse, a touch pad, a web camera) adapted such that each can display output information and / or a user can input commands and / or data (e.g., a decoded picture), and a power supply 2020 which may be external to the receiver 2000. Also, the receiver 2000 may include one or more network interfaces (not shown). The decoder module 2040 represents a module that can be included in a device to perform a decoding function. In addition, the decoder module 2040 can be implemented as a separate element of the receiver 2000 or incorporated into the processor 2005 as a combination of hardware and software known to those skilled in the art.
[0056] The bitstream can be obtained from a source. According to different embodiments, the source may include, but is not limited to, - a local memory (e.g., video memory, RAM, flash memory, hard disk), - a storage device interface (e.g., an interface with a mass storage device, ROM, optical disk, or magnetic support), - a communication interface (e.g., a wired interface (e.g., a bus interface, a wide area network interface, a local area network interface) or a wireless interface (such as an IEEE802.11 interface or a Bluetooth interface)), and - an image capture circuit (e.g., a sensor, such as a CCD (Charge Coupled Device) or a CMOS (Complementary Metal Oxide Semiconductor), etc.) and may be.
[0057] According to different embodiments, the decoded picture can be transmitted to a destination (e.g., a display device). As an example, the decoded picture can be stored in a remote or local memory (e.g., a video memory or RAM, a hard disk). In a variant, the decoded picture is sent to a storage device interface (e.g., an interface with a mass storage device, a ROM, a flash memory, an optical disk or a magnetic support), and / or is transmitted over 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).
[0058] According to certain and non-limiting embodiments, the receiver 2000 further includes a computer program stored in the memory 2030. The computer program includes instructions which, when executed by the receiver 2000 (specifically, by the processor 2005), enable the receiver to execute the decoding methods described with reference to FIGS. 5B, 6B, 8B, 10B and 11B. According to a variant, the computer program is stored on a non-transitory digital data support external to the receiver 2000 (e.g., on an external storage medium such as an HDD, a CD-ROM, a DVD, a read-only and / or a DVD drive and / or a DVD read / write drive), all of which are known in the art. Accordingly, the receiver 2000 includes a mechanism for reading the computer program. Further, the receiver 2000 can access one or more universal serial bus (USB) type storage devices (e.g., a "memory stick") through a corresponding USB port (not shown).
[0059] According to exemplary and non-limiting embodiments, the receiver 2000 includes, but is not limited to, - a mobile device, - a communication device, - a gaming device, - a set-top box, - a TV set, - A tablet (or tablet computer), - A laptop, - A video player (e.g., a Blu-ray player, a DVD player), - A display, and - A decoding chip or a decoding device / apparatus may be.
[0060] FIG. 4 shows a block diagram of an exemplary video decoder 200 (e.g., an HEVC video decoder) adapted to execute a decoding method according to an embodiment of FIGS. 5B, 6B, 8B, 10B, and 11B. The video decoder 200 is an example of a receiver 2000 or a part of such a receiver 2000. In the exemplary decoder 200, the bitstream is decoded by decoder elements as described below. The video decoder 200 generally executes a decoding path that is the reverse of the encoding path as described in FIG. 2 that executes video decoding as part of the encoding of video data. The video decoder 200 generally executes a decoding path that is the reverse of the encoding path as described in FIG. 2 that executes video decoding as part of the encoding of video data.
[0061] Specifically, the input to the decoder includes a video bitstream, which can be generated by the video encoder 100. The bitstream is first entropy decoded (230) to obtain transform coefficients, motion vectors, and other coding information. The transform coefficients are inverse quantized (240) and inverse transformed (250) to decode the residuals. Then, the decoded residuals are combined with a predicted sample block (also known as a predictor) (255) to obtain a decoded / reconstructed picture block. The predicted sample block can be obtained from intra prediction (260) or motion compensated prediction (i.e., inter prediction) (275) (270). As described above, during motion compensation, AMVP and merge mode techniques can be used, and in motion compensation, an interpolation filter can be used to calculate interpolation values for sub-integer samples of the reference block. The in-loop filter (265) is applied to the reconstructed picture. The in-loop filter can include a deblocking filter and an SAO filter. The filtered picture is stored in the reference picture buffer (280).
[0062] FIG. 5A depicts a flowchart of a method for encoding a picture block and embedding it into a bitstream in accordance with the present principle. Mapping is applied in the coding loop to obtain residual samples mapped at the pixel level. In contrast to the prior art, the input samples to the coding method are not modified by the mapping. On the decoder side, the output samples from the decoder are not modified by the inverse mapping. The mapping can be applied to one or some components of the picture. For example, the mapping can be applied to the luma component only, the chroma component only, or both the luma and chroma components.
[0063] The method starts at step S100. In step S110, the transmitter 1000 (such as the encoder 100) accesses a block of a picture slice. In step S120, the transmitter obtains a prediction value Pred(x,y) of its source value Orig(x,y) for at least one sample of the accessed block and for at least one component (e.g., for luma), where (x,y) are the spatial coordinates of the sample of the picture. The prediction value is obtained (i.e., is usually determined) depending on the prediction mode (intra / inter mode) selected for the block.
[0064] In step S130, the transmitter calculates a mapping function f map () In response, a mapped residual value is determined from the sample source values Orig(x,y) and from the predicted values Pred(x,y). The mapping function is defined or derived in order to obtain a coding gain, i.e. a reduction in the bit cost (i.e. number of bits) of the bitstream for a given visual or objective reconstruction quality or an increase in the visual or objective reconstruction quality for a given bit cost. When a block, picture or picture sequence is coded and embedded into a bitstream of a given size (i.e. a given number of bits), the receiver-side reconstruction quality of the block, picture or picture sequence depends on this size. On the other hand, when a block, picture or picture sequence is coded with a given reconstruction quality, the size of the bitstream depends on this reconstruction quality.
[0065] In most cases, distortion, which represents the quality of the reconstruction, is defined as the expected squared difference between the input and output signals (i.e., the mean squared error). However, since most lossy compression techniques operate on data as perceived by human consumers (viewers of pictures and videos), the distortion measure is preferably based on human perception, and possibly aesthetics. Based on this, it can be modeled.
[0066] For example, the mapping function can be derived by one of the following methods. - The mapping function is derived such that, as depicted in FIG. 7, the amplitude of the residual value increases more for components with a larger amplitude value of the component value than for those with a smaller amplitude value. - To obtain improved perceptual or objective coding performance, a pre - defined encoder quantization adjustment table deltaQP or quantization adjustment function dQP(Y) (where Y is the video signal luma) can be derived or adjusted. From deltaQP or dQP(Y), a scaling function can be derived as sc(Y)=2^(-dQP(Y) / 6) (where ^ is the exponentiation operator). The scaling function can be used in the mapping function and can correspond to the multiplication of the residual by the scaling value derived from the scaling function. In a variant form, the mapping function can be derived by considering that this scaling function is the derivative of the mapping function to which the residual is applied. - To map the residual in step S130, a pre - encoder function Map(Y) (where Y is the luma video signal) or the derivative of Map(Y) (which is the scaling function) can be used as the mapping function f map (). The pre - encoder function M ap(Y) is derived such that the original samples of the signal are better distributed in the entire codeword range (for example, thanks to histogram flattening) when mapped by this pre - encoder function Map(Y).
[0067] In addition to the three methods mentioned above, if the mapping of the residual value improves the compression performance, other methods can be used to derive the mapping function.
[0068] Steps S110 and S120 can be repeated for each sample of the accessed block to obtain a block of mapped residual values.
[0069] In step S140, the transmitter encodes the mapped residual values. Encoding the mapped residual values is not essential, but typically involves converting the residuals into transform coefficients, quantizing the coefficients with a quantization step size QP to obtain quantized coefficients, and entropy coding the quantized coefficients to embed them in a bitstream.
[0070] The method ends in step S180.
[0071] Figure 5B represents a flowchart of a method for decoding a picture block of a bitstream corresponding to the encoding method of Figure 5A.
[0072] The method starts from step S200. In step S210, the receiver 2000 (such as decoder 200) accesses the bitstream.
[0073] 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 luma). (x,y) are the spatial coordinates of a sample in the picture. The predicted value is obtained according to the prediction mode (intra / inter mode) selected for the block.
[0074] In step S230, the receiver decodes the residual value Res(x,y) for the sample to be decoded. The residual value Res(x,y) is the decoded version of the mapped residual value encoded in step S140 of Figure 5A. Decoding is not essential, but typically involves entropy decoding a portion of the bitstream representing the block to obtain a block of transform coefficients, and inverse quantizing and inverse transforming the block of transform coefficients to obtain a block of residuals.
[0075] In step S240, the transmitter applies the mapping function invf map which is the inverse function of the mapping function f used in the encoding method in step S130 to the sample. mapDetermine the sample values reconstructed from the decoded residual values and the predicted values in response to (). Steps S220 to S240 can be repeated for each sample of the accessed block.
[0076] The method ends at step S280.
[0077] FIG. 6A represents a flowchart of a method for encoding a picture block and embedding it in a bitstream according to a first specific and non-limiting embodiment.
[0078] The method starts from step S100. In step S110, the transmitter 1000 (for example, the encoder 100, etc.) accesses the block of the picture slice. In step S120, the transmitter obtains a predicted value Pred(x, y) of the value Orig(x, y) for at least one sample of the accessed block for at least one component (for example, for luma). (x, y) are the spatial coordinates of the samples of the picture. The predicted value is obtained according to the prediction mode (intra / inter mode) selected for the block.
[0079] In step S130, the transmitter determines the mapped residual value for the sample in response to the mapping function f map () in response from the source value Orig(x, y) of the sample and the predicted value Pred(x, y). The mapping function is defined or derived to obtain a coding gain, that is, to obtain a reduction in the bit rate for a given visual or objective quality or an increase in the visual or objective quality for a given bit rate. The mapping function can be derived by one of the methods disclosed with reference to FIG. 5A. Steps S110 to S130 can be repeated for each sample of the accessed block to obtain a block of mapped residual values. In the first embodiment, the mapped residual represented by Res map (x, y) is f map (Orig(x, y)) - fmap Equal to (Pred(x,y)).
[0080] In step S140, the transmitter encodes the mapped residual value. Encoding the mapped residual value is not essential, but usually involves converting the residual into a transform coefficient, quantizing the coefficient with a quantization step size QP to obtain a quantized coefficient, and entropy encoding the quantized coefficient and embedding it into a bitstream.
[0081] The method ends in step S180.
[0082] Figure 6B represents a flowchart of a method for decoding a picture block of a bitstream corresponding to an embodiment of the encoding method according to Figure 6A according to a first specific and non-limiting embodiment.
[0083] The method starts from step S200. In step S210, the receiver 2000 (such as decoder 200) accesses the bitstream.
[0084] 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 luma). (x,y) are the spatial coordinates of the samples of the picture. The predicted value is obtained according to the prediction mode (intra / inter mode) selected for the block.
[0085] In step S230, the receiver decodes the residual value Res(x,y) for the sample to be decoded. The residual value Res(x,y) is the decoded version of the mapped residual value encoded in step S140 of Figure 6A. Decoding is not essential, but usually involves entropy decoding a part of the bitstream representing the block to obtain a block of transform coefficients, and inverse quantizing and inverse transforming the block of transform coefficients to obtain a block of residuals.
[0086] In step S240, the transmitter determines the reconstructed sample value Dec(x,y) from the decoded residual value Res(x,y) and from the predicted value Pred(x,y) in response to both the mapping function f map () and its inverse function invf map () used by the encoding method in step S130 for the sample. Steps S220 to S240 can be repeated for each sample of the accessed block to obtain a reconstruction block. In the first embodiment, the reconstructed sample value represented by Dec(x,y) is invf map (Res(x,y)+f map (Pred(x,y))).
[0087] The method ends at step S280.
[0088] FIG. 8A represents a flowchart of a method for encoding a picture block into a bitstream according to a second specific and non-limiting embodiment.
[0089] The method starts at step S100. In step S110, the transmitter 1000 (e.g., encoder 100, etc.) accesses a block of a picture slice. In step S120, the transmitter obtains a predicted value Pred(x,y) of the value Orig(x,y) for at least one sample of the accessed block for at least one component (e.g., for luma). (x,y) are the spatial coordinates of the samples of the picture. The predicted value is obtained according to the prediction mode (intra / inter mode) selected for the block.
[0090] In step S130, the transmitter applies the mapping function g map () to the sample in response Determine the mapped residual values from the source value Orig(x,y) of the sample and from the predicted value Pred(x,y). The mapping function is defined or derived in order to obtain a coding gain, i.e., in order to obtain a reduction in the bit rate for a given visual or objective quality or an increase in the visual or objective quality for a given bit rate. The mapping function can be derived by one of the methods disclosed with reference to FIG. 5A. Steps S110 to S130 can be repeated for each sample of the accessed block in order to obtain a block of mapped residual values. In the second embodiment, Res map the mapped residual represented by (x,y) is g map (Res usual (x ,y),Pred(x,y)), where Res usual (x,y)=Orig(x ,y)-Pred(x,y).
[0091] A simple version of the function g map (p,v) and invg map (p,v) can be derived from the first embodiment. For the predicted value p and the sample residual value v, g map (p ,v) and invg map (p,v) can be constructed as follows.
[0092] In the first embodiment, Res remap (x,y)=f map (Orig(x,y))-f map (Pred(x,y)) When the signals Orig(x,y) and Pred(x,y) are close (as expected when the prediction works well), it can be considered that Orig(x,y)=Pred(x,y)+ε (ε is a very small amplitude). Considering the definition of the derivative of the function,[[]] f map (Orig(x,y))=f map (Pred(x,y)+ε)≒f map(Pred( x,y))+ε * f’ map (Pred(x,y)) can be considered, and where f map corresponds to a 1D function (e.g., as defined in Embodiment 1), and f’ map is the derivative of the function f map . Then, Res map (x,y)=f map (Orig(x,y))-f map (Pred(x ,y))≒ε * f’ map (Pred(x,y)). By definition, ε = Orig(x,y) - Pred(x,y) is the normal prediction residual Res usual (x,y). Therefore, the following functions g map (p,v) and invg map (p,v) can be used. g map (p,v)=f’ map (p) * v invg map (p,v)=(1 / f’ map (p)) * v
[0093] On the encoder side, the mapped residual is Res map (x,y)=f’ map (Pred(x,y)) * Res usual (x,y) (eq.1) derived as. On the decoder side, the reconstructed signal is Dec(x,y)=Pred(x,y)+1 / f’ map (Pred(x,y)) * Res dec (x,y)) (eq.2) derived as.
[0094] This means that the mapping is a simple scaling of the normal residuals by a scaling factor that depends on the predicted value. Optionally, on the encoder side, the scaling factor depends on the original value rather than the predicted value. However, doing so creates a mismatch between the encoder and the decoder. Also, for example, in order to reduce the effect of quantization error, a filtered version of the prediction can be used by applying a smoothing filter. For example, instead of using Pred(x,y) in equations 1 and 2, a filtered version ((Pred(x - 1,y) / 4 + Pred(x,y) / 2 + Pred(x + 1,y)) / 4) can be used.
[0095] Figure 9 shows the function f’ map and an example of (1 / f’ map ).
[0096] In step S140, the transmitter encodes the mapped residual values. Encoding the mapped residual values is not essential but typically involves converting the residuals to transform coefficients, quantizing the coefficients with a quantization step size QP to obtain quantized coefficients, and entropy coding the quantized coefficients to embed them in a bitstream.
[0097] The method ends at step S180.
[0098] Figure 8B represents a flowchart of a method for decoding a picture block of a bitstream corresponding to the encoding method disclosed with respect to Figure 8A.
[0099] The method starts from step S200. In step S210, the receiver 2000 (such as decoder 200) accesses the bitstream.
[0100] In step S220, the receiver obtains a predicted value Pred(x,y) for at least one sample (e.g., for luma) for at least one component. (x,y) are the spatial coordinates of the sample in the picture. The predicted value is obtained according to the prediction mode (intra / inter mode) selected for the block.
[0101] In step S230, the receiver decodes the residual value Res(x,y) for the sample to be decoded. The residual value Res(x,y) is the decoded version of the mapped residual value encoded in step S140 of FIG. 8A. Decoding is not essential, but typically involves entropy decoding a portion of the bitstream representing the block to obtain a block of transform coefficients, and inverse quantizing and inverse transforming the block of transform coefficients to obtain a block of residuals.
[0102] In step S240, the transmitter determines the reconstructed sample value Dec(x,y) from the decoded residual value Res(x,y) and the predicted value Pred(x,y) in response to the mapping function invg() which is the inverse function of the mapping function g() used by the encoding method in step S130 of FIG. 8A. Steps S220 to S240 can be repeated for each sample of the accessed block to obtain a reconstructed block. In the second embodiment, the reconstructed sample value indicated by Dec(x,y) is equal to Pred(x,y)+invg(Res(x,y),Pred(x,y)). map function map () map (Res(x,y),Pred (x,y))
[0103] The first embodiment requires applying both the f map function and the invf map function, but this embodiment advantageously enables mapping the prediction residual using a single step of the invg map function on the decoder side.
[0104] The method ends in step S280.
[0105] 10A shows a flowchart of a method for encoding and embedding picture blocks in a bitstream according to a third specific and non-limiting embodiment. This embodiment is a generalization of the second embodiment. The function f map and invf map () is a scaling function, whose scaling factor depends on the value of the predicted signal (or a filtered version of the predicted signal as mentioned before).
[0106] The method starts at step S100. In step S110, the transmitter 1000 (such as the encoder 100) accesses a block of a picture slice. In step S120, the transmitter obtains a prediction Pred(x,y) of a value Orig(x,y) for at least one sample of the accessed block for at least one component (for example, for luma), where (x,y) are the spatial coordinates of the sample of the picture. The prediction is obtained depending on the prediction mode (intra / inter mode) selected for the block.
[0107] In step S130, the transmitter calculates a mapping function f map () In response, a mapped residual value is determined from the source values Orig(x,y) of the samples and from the predicted values Pred(x,y). The mapping function is defined or derived in order to obtain a coding gain, i.e. a reduction in bit rate for a given visual or objective quality or an increase in visual or objective quality for a given bit rate. The mapping function can be derived by one of the methods disclosed with reference to FIG. 5A. Steps S110 to S130 can be repeated for each sample of the accessed block in order to obtain a block of mapped residual values. In the second embodiment, Res mapThe mapped residual indicated by (x,y) is 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 (eq.1) and (eq.2). In a variant form, the original value Orig( x,y) can be used instead of Pred(x,y). In this case, Res map (x,y) is f map (Orig(x,y)) * Res usual (x,y). In another variant form, a combination Comb(x,y) of Orig(x,y) and Pred(x,y) (e.g., the average of these two values) can be used. In this latter case, Res map (x,y) is f map (Comb(x,y)) * Res usual (x,y).
[0108] In step S140, the transmitter encodes the mapped residual value. Encoding the mapped residual value is not essential, but typically involves converting the residual into transform coefficients, quantizing the coefficients with a quantization step size QP to obtain quantized coefficients, and entropy coding the quantized coefficients to embed them in a bitstream.
[0109] The method ends at step S180.
[0110] Figure 10B represents a flowchart of a method for decoding a picture block from a bitstream corresponding to the encoding method disclosed with respect to Figure 10A.
[0111] The method starts from step S200. In step S210, the receiver 2000 (such as the decoder 200) accesses the bitstream.
[0112] In step S220, the receiver obtains a predicted value Pred(x, y) for at least one sample (e.g., for luma) for at least one component. (x, y) are the spatial coordinates of the samples of the picture. The predicted value is obtained according to the prediction mode (intra / inter mode) selected for the block.
[0113] In step S230, the receiver decodes a residual value Res(x, y) for the sample to be decoded. The residual value Res(x, y) is the decoded version of the mapped residual value encoded in step S140 of FIG. 10A. Decoding is not essential but typically involves entropy decoding a portion of the bitstream representing the block to obtain a block of transform coefficients and inverse quantizing and inverse transforming the block of transform coefficients to obtain a block of residuals.
[0114] In step S240, the receiver determines a reconstructed sample value Dec(x, y) from the decoded residual value Res(x, y) and from the predicted value Pred(x, y) in response to the mapping function invf map () = 1 / f map () used by the encoding method in step S130 for the sample. Steps S220 to S240 can be repeated for each sample of the accessed block to obtain a reconstructed block. In the second embodiment, the reconstructed sample value represented by Dec(x, y) is Pred(x, y)+(1 / f map (Pred(x, y))) * equal to Res(x, y).
[0115] This embodiment advantageously enables inverse mapping to be performed at the decoder side by using simple multiplication, thereby limiting additional complexity and enabling accurate mapping to be performed, and a rounding operation can be applied exactly at the end of the process (when computing Dec(x, y)).
[0116] The method ends in step S280.
[0117] Figure 11A represents a flowchart of a method for encoding a picture block and embedding it into a bitstream according to a fourth specific and non-limiting embodiment. In this embodiment, the mapping is a scaling common among components. For example, the mapping is applied to the chroma component C according to the luma component Y (or its filtered version) located at the same position (C is U (or Cb) or V (or Cr)). When the luma or chroma picture is not of the same resolution (for example, in the case of the 4:2:0 chroma format), the luma value can be incorporated after resampling or as one of the sample values of the luma picture associated with the chroma sample. For example, in the case of a 4:2:0 signal, for a picture position (x, y), the luma value at position (2 * x, 2 * y) can be considered.
[0118] The method starts from step S100. In step S110, the transmitter 1000 (for example, the encoder 100, etc.) accesses the blocks of the picture slice. In step S120, the transmitter obtains a predicted value PredC(x, y) of the source value OrigC(x, y) for at least one sample of the accessed block for at least one component (for example, for the chroma C). (x, y) are the spatial coordinates of the samples of the picture. The transmitter further obtains a predicted value PredY(x, y) of the source value OrigY(x, y) for the same sample for at least another component (for example, for the luma Y). The predicted values are obtained according to the prediction mode (intra / inter mode) selected for the block.
[0119] In step S130, the transmitter applies, to the sample, a mapping function f map () according Answer by determining the mapped residual values from the source value OrigC(x,y) of the sample as well as from the predicted values PredC(x,y) and PredY(x,y). The mapping function is defined or derived in order to obtain a coding gain, that is, in order to obtain a reduction in the bit rate for a given visual or objective quality or an increase in the visual or objective quality for a given bit rate. The mapping function can be derived by one of the methods disclosed with reference to FIG. 5A. Steps S110 to S130 can be repeated for each sample of the accessed block in order to obtain a block of mapped residual values. In the fourth embodiment, ResC map The mapped one indicated by (x,y) residual of is f map (PredY(x,y)) * ResC usual is equal to (x,y), where ResC usual (x,y)=OrigC(x,y)-PredC(x,y), Orig igC(x,y) is the value of the source sample of the chroma component C (to be coded) at the position (x,y) of the picture, PredC(x,y) is the value of the predicted sample of the chroma component C, and ResC usual (x,y) is the value of the predicted residual sample of the chroma component C .
[0120]
[0121]
[0122] At step S140, the transmitter encodes the mapped residual values. Encoding the mapped residual values is not essential, but typically involves converting the residuals to transform coefficients, quantizing the coefficients with a quantization step size QP to obtain quantized coefficients, and entropy coding the quantized coefficients to embed them in a bit stream. The method ends at step S180. FIG. 11B represents a flowchart of a method for decoding a picture block from a bit stream corresponding to the encoding method disclosed with respect to FIG. 11A.
[0123] The method starts from step S200. In step S210, the receiver 2000 (such as the decoder 200) accesses the bitstream.
[0124] In step S220, the receiver obtains a predicted value PredC(x,y) of the source value OrigC(x,y) for at least one sample of the accessed block for at least one component (e.g., for chroma C). (x,y) are the spatial coordinates of the samples of the picture. The receiver further obtains a predicted value PredY(x,y) of the source value OrigY(x,y) for the same sample (optionally downsampled if the luma and chroma pictures do not have the same resolution) for at least another component (e.g., for luma Y). ) The predicted values are obtained according to the prediction mode (intra / inter mode) selected for the block.
[0125] In step S230, the receiver decodes the residual value ResC(x,y) for the sample to be decoded. The residual value ResC(x,y) is the decoded version of the mapped residual value encoded in step S140 of FIG. 11A. Decoding is not essential but usually involves entropy decoding a portion of the bitstream representing the block to obtain the block of transform coefficients, and inverse quantization and inverse transformation of the block of transform coefficients to obtain the block of residuals.
[0126] In step S240, the receiver, for the sample, f map () is the mapping function 1 / f that is the mapping function used by the encoding method in step S130 map In response to (), a reconstructed sample value DecC(x, y) is determined from the decoded residual value ResC(x, y) and from the predicted values PredC(x, y) and PredY(x, y). Steps S220 to S240 can be repeated for each sample of the accessed block to obtain a reconstructed chroma block. In the fourth embodiment, the reconstructed sample value represented by DecC(x, y) is PredC(x, y) + (1 / f map ( PredY(x, y))) * equal to ResC(x, y).
[0127] This embodiment advantageously enables scaling of the chroma component according to the luma component on the decoder side, thereby generally improving visual quality thanks to fine control of chroma scaling for different luma intervals.
[0128] The method ends at step S280.
[0129] The third and fourth embodiments disclosed with respect to FIGS. 10A, 10B, 11A and 11B can advantageously implement a fixed-point format.
[0130] ResC usual is taken as the prediction residual mapped at position (x, y), then, for example, in the case of common scaling between components, from the value of f at the value PredY (the value located at the same position of the predicted luma used as common between components), map the scal = f map (PredY) is derived.
[0131] On the decoder side, invScal = round(2^B ÷ scal) is used (optionally, as will be explained below, encoded and embedded in the bitstream), wherein · ^ is the exponentiation operator, · round(x) is the nearest integer value of x, · B is the bitDepth selected to quantize the scaling factor (typically, B = 8 or 10 bits).
[0132] The mapped value ResC map to the value ResC usual is mapped as follows. ResC map =(ResC usual * 2 B +sign(ResC usual ) * (invScal / 2)) / invScal (eq.3) where ResC usual (x,y)=OrigC(x,y)-PredC(x,y) and , when x ≥ 0, sign(x) is equal to 1, otherwise, it is equal to -1. All parameters of this equation are integers, and the division " / " is also applied in integers (the division "÷" is a floating-point division). Then, the mapped value ResC map is encoded.
[0133] On the decoder side, the encoded mapped value ResC map is decoded to the value ResC map_dec . The inverse mapping to the inverse mapped value ResC invmap to the decoded value ResC map_dec is applied as follows. ResC invmap =(ResC map_dec * invScal+sign(ResC map_dec ) * 2 (B-1) ) / 2 B (eq.4) (ResCmap_dec * invScal+sign(ResCmap_dec) * 2(B - 1)) / 2B This is ResC invmap =(ResC map_dec * invScal + sign(ResC map_dec ) * 2 (B-1) ) >> B (eq.5) is equal to.
[0134] Next, from the predicted value PredC and ResC at location (x, y), invmap from DecC = PredC + ResC invmap (eq.6) the reconstructed value DecC is derived as follows.
[0135] Also, to avoid using the sign operator, these operations can be directly combined. Combining equations (eq.5) and (eq.6) gives (eq.7). DecC = (PredC * 2 B + ResC map_dec * invScal + 2 (B-1) ) >> B ( eq.7).
[0136] In HEVC, quantization is adjusted using the quantization parameter QP. From QP, the quantization step Qstep0 is derived, and Qstep0 can be approximated as (K * 2^( QP / 6)), where K is a fixed parameter. When a local QP correction dQP is used, the actual quantization step Qstep1 can be approximated as (K * 2^((QP + dQP) / 6)), that is, (Qst ep0 * 2^(dQP / 6)). The signal is divided by the quantization step. This means that for a given dQP, the corresponding scaling (derived from the inverse of the quantization step) applied to the signal in quantization corresponds to 2^(-dQP / 6). For example, the following correspondence can be established for the dQP table.
[0137] [Table 1]
[0138] Scaling can be used, for example, in the scaling solution described in the third embodiment. Also, scaling can be used to derive a mapping function as used in the first and second embodiments. In fact, this scaling corresponds to the derivative of the mapping function. Therefore, the mapping function can be modeled as a piecewise linear function, and each piece has a slope equal to the scaling corresponding to that piece. dQP associated with each interval i A set of intervals [Y i , Y i+1 -1 having the dQP value of dQP, when the dQP table is defined as (i = 0 to n, n is an integer), the mapping function can be defined as follows. Let i be the subscript of the interval containing Y (Y is the one in [Y i , Y i+1 -1]), f map (Y) = f map (Y i ) + 2^(-dQP i / 6) * (Y - Y i ) Thus, for the above specific dQP table, a function as shown in FIG. 12 (in the case of signal representation of all ranges (FR) or limited ranges (LR)) is obtained.
[0139] The function f map or g map or their inverse functions invf map or invg map can be explicitly defined in the decoder (and thus in the decoder specification) or transmitted as a signal in the bitstream. Function f map , invf map , g map or invg map can be implemented in the form of · Look-up table · Piecewise scalar function (PWS) · Piecewise linear function (PWL) · Piecewise polynomial function (PWP) . These functions can be coded in new structures such as SEI messages, sequence parameter sets (SPS), picture parameter sets (PPS), slice headers, coded tree unit (CTU) syntax, per Tile, or adaptive picture sets (APS).
[0140] The implementation forms described in this specification can be implemented, for example, as a method or process, apparatus, software program, data stream, or signal. Even if discussed only in the context of a single form of implementation (e.g., only discussed as a method or device), the implementation forms of the features discussed can also be implemented in other forms (e.g., programs). The apparatus can be implemented, for example, with appropriate hardware, software, and firmware. The method can be implemented, for example, with an apparatus (e.g., a processor, etc.) that generally refers to a processing device, including a computer, microprocessor, integrated circuit, or programmable logic device. Also, the processor includes, for example, a computer, mobile phone, portable / personal digital assistant (``PDA''), and other communication devices that facilitate the communication of information among end users.
[0141] The implementations of the various processes and features described herein can be embodied in a variety of different devices or applications (in particular, for example, devices or applications). Examples of such devices include encoders, decoders, post-processors that process the output from a decoder, pre-processors that provide input to an encoder, video coders, video decoders, video codecs, web servers, set-top boxes, laptops, personal computers, mobile phones, PDAs, and other communication devices. It should be clear, however, that the devices can be mobile and can even be installed in a moving vehicle.
[0142] In addition, the method can be implemented by instructions executed by a processor, and such instructions (and / or data values generated by the implementation) can be stored, for example, on a processor-readable medium such as an integrated circuit, a software carrier, or other storage device (e.g., a hard disk, a compact disk (“CD”), an optical disk (e.g., often called a digital versatile disk or digital video disk such as a DVD), a random access memory (“RAM”), or a read-only memory (“ROM”)). The instructions can form an application program tangibly embodied on the processor-readable medium. The instructions can be, for example, in hardware, firmware, software, or a combination. The instructions can be found, for example, in an operating system, a separate application, or a combination of the two. Thus, a processor can be characterized as both, for example, a device configured to execute a process and a device that includes a processor-readable medium (such as a storage device) having instructions for executing the process. Further, the processor-readable medium can store data values generated by the implementation in addition to or instead of the instructions.
[0143] As will be apparent to those skilled in the art, the implementation form can generate various signals formatted to convey information that can be stored or transmitted, for example. The information can include, for example, instructions for executing a method or data generated by one of the described implementation forms. For example, the signal can be formatted to convey, as data, rules for writing or reading the syntax of the described embodiment, or the actual syntax / values written by the described embodiment. Such a signal can be formatted, for example, as an electromagnetic wave (e.g., using the high-frequency part of the spectrum) or as a baseband signal. Formatting can include, for example, encoding a data stream and modulating a carrier wave with the encoded data stream. The information conveyed by the signal can be, for example, analog or digital information. As is known, the signal can be transmitted over various different wired or wireless links. The signal can be stored on a processor-readable medium.
[0144] Numerous implementation forms have been described. Nevertheless, it will be understood that various changes can be made. For example, elements of different implementation forms can be combined, supplemented, changed, or removed to generate other implementation forms. In addition, those skilled in the art can substitute other structures and processes for those disclosed, and the resulting implementation forms will be understood to execute at least substantially the same functions in at least substantially the same way to achieve at least substantially the same results as the disclosed implementation forms. Accordingly, these and other implementation forms are contemplated by this application.
Claims
1. 1. A method for coding a picture block, comprising the steps of: obtaining a prediction of the current color component of one of said samples; determining mapped residual values from the source values of said current colour component and from said predicted values in response to a mapping function; - encoding and embedding said mapped residual values into a bitstream; A method comprising: the mapping function is derived to obtain either a reduction in bit cost of the bitstream for a given reconstruction quality or an increase in reconstruction quality for a given bit cost of the bitstream; Determining the mapped residual value comprises: determining an intermediate residual value by subtracting said predicted value from said source value; - mapping said intermediate residual values in response to said mapping function depending on said predicted values; A method comprising:
2. 2. The method of claim 1 , wherein mapping the intermediate residual values in response to the mapping function as a function of the predicted value comprises multiplying the intermediate residual values by a scaling factor, the value of the scaling factor being dependent on the predicted value.
3. 2. The method of claim 1 , wherein mapping the intermediate residual values in response to the mapping function according to the predicted value comprises multiplying the intermediate residual values by a scaling factor, the scaling factor depending on a predicted value obtained for another color component of the sample, the other color component being different from the current color component.
4. In a fixed-point implementation, the mapped intermediate residual values are (ResC) usual * 2 B +kign(・esC usual ) * (invウcal / 2)) / inv Scal where ResC usual is the intermediate residual value, and invScal is round 4. The method of claim 2 or 3, wherein the scaling factor is equal to (2B÷scal), where scal is the scaling factor.
5. 1. A method for decoding a picture block, comprising the steps of: obtaining a prediction of the current color component of one of said samples; - decoding residual values for said samples; determining reconstruction values for said samples from said decoded residual values and from said prediction values in response to a mapping function; A method comprising: the mapping function is derived to obtain either a reduction in bit cost of the bitstream for a given reconstruction quality or an increase in reconstruction quality for a given bit cost of the bitstream; determining the reconstruction value mapping said decoded residual values using an inverse of said mapping function depending on said prediction values; determining said reconstruction value by adding said prediction value to said mapped decoded residual value; A method comprising:
6. 6. The method of claim 5, wherein mapping the decoded residual values with an inverse of the mapping function in response to the predicted value comprises multiplying the decoded residual values by a scaling factor, the scaling factor depending on the predicted value of the sample.
7. 6. The method of claim 5, wherein mapping the decoded residual values with an inverse of the mapping function as a function of the prediction comprises multiplying the decoded residual values by a scaling factor, the scaling factor depending on the prediction obtained for another color component of the sample, the other color component being different from the current color component.
8. In a fixed-point implementation, the mapped decoded residual values are (ResC) map_dec * invvScal+sisn(ResC map_dec ) * 2 (B-1) ) / 2 B where ResC map_dec is the decoded residual value, and invScal is r 8. The method of claim 6 or 7, wherein ound(2B÷scal), scal being the scaling factor.
9. 1. A device for encoding picture blocks, comprising: means for obtaining a prediction value of one current color component of at least one sample of said block; means for determining mapped residual values from the source values of said current colour component and from said predicted values in response to a mapping function; means for encoding and embedding said mapped residual values in a bitstream; A device comprising: the mapping function is derived to obtain either a reduction in bit cost of the bitstream for a given reconstruction quality or an increase in reconstruction quality for a given bit cost of the bitstream; The means for determining the mapped residual value further comprises: means for determining intermediate residual values adapted to subtract said predicted values from said source values; means for mapping said intermediate residual values in response to said mapping function depending on said predicted values; Including, the device.
10. 10. The device of claim 9, wherein the means for mapping the intermediate residual values in response to the mapping function according to the predicted value comprises means for multiplying the intermediate residual values by a scaling factor, the value of the scaling factor depending on the predicted value.
11. 10. The device of claim 9, wherein the means for mapping the intermediate residual values in response to the mapping function according to the predicted value comprises means for multiplying the intermediate residual values by a scaling factor, the scaling factor depending on a predicted value obtained for another color component of the sample, the other color component being different from the current color component.
12. In a fixed-point implementation, the mapped intermediate residual values are (ResC) usual * 2 B +kign(・esC usual ) * (invウcal / 2)) / inv Scal where ResC usual is the intermediate residual value, and invScal is round 12. The device of claim 10 or 11, wherein the scaling factor is equal to (2B÷scal), where scal is the scaling factor.
13. 1. A device for decoding a picture block, comprising: means for obtaining a prediction value of one current color component of at least one sample of said block; - means for decoding residual values for said samples; means for determining reconstruction values for said samples from said decoded residual values and from said prediction values in response to a mapping function; A device comprising: the mapping function is derived to obtain either a reduction in bit cost of the bitstream for a given reconstruction quality or an increase in reconstruction quality for a given bit cost of the bitstream; The means for determining the reconstruction value further comprises: means for mapping the decoded residual values using an inverse of the mapping function depending on the prediction values; means for determining said reconstruction value configured to add said prediction value to said mapped decoded residual value; Including, the device.
14. 14. The device of claim 13, wherein the means for mapping the decoded residual values with an inverse of the mapping function in response to the predicted value comprises means for multiplying the decoded residual values by a scaling factor, the scaling factor depending on the predicted value of the sample.
15. 14. The device of claim 13, wherein the means for mapping the decoded residual values with an inverse of the mapping function in response to the prediction value comprises means for multiplying the decoded residual values by a scaling factor, the scaling factor depending on the prediction value obtained for another color component of the sample, the other color component being different from the current color component.
16. In a fixed-point implementation, the mapped decoded residual values are (ResC) map_dec * invvScal+sisn(ResC map_dec ) * 2 (B-1) ) / 2 B where ResC map_dec is the decoded residual value, and invScal is r 16. A device as claimed in claim 14 or 15, wherein said scaling factor is equal to ound(2B÷scal), where scal is the scaling factor.
Citation Information
Patent Citations
Image processor and image processing method
JP2016005217A
Three-dimensional lookup table based color gamut scalability in multi-layer video coding
US20150103902A1
Control apparatus and control method for automatic transmission
US20150377349A1
Optimized filter selection for reference picture processing
WO2012044487A1
Method of mapping source colors of a source content
WO2015189350A1