A method and device for coding and decoding a data stream representing at least one image
The ILR coding mode for image and video compression predicts pixels within blocks using previously reconstructed pixels, improving compression efficiency and reducing computational overhead by limiting its application to small blocks, addressing inefficiencies in existing methods.
Patent Information
- Application Number
- JP2024156694
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-09-21
- Filing Date
- 2024-09-10
- Publication Date
- 2025-07-29
- Estimated Expiration
- 2039-09-03
AI Technical Summary
Existing image and video compression techniques, such as those in the HEVC standard, are inefficient in predicting and reconstructing pixels within a block, leading to suboptimal compression rates and increased computational requirements.
A method and device that utilize a new coding mode, called ILR (in-loop residual), which predicts pixels within a block using previously reconstructed pixels, and a conventional coding mode for blocks above a threshold, reducing the need for per-pixel residual transmission and computational overhead.
Improves compression efficiency for small blocks while reducing hardware costs and computational load by limiting the ILR mode to blocks below a threshold, enhancing overall encoding speed and reducing unnecessary mode testing for large blocks.
Smart Images

Figure 0007714756000002 
Figure 0007714756000003 
Figure 0007714756000004
Abstract
Description
Technical Field
[0001] The field of the present invention is the field of coding and decoding images or sequences of images, in particular video streams.
[0002] More particularly, the present invention relates to the compression of images or sequences of images using a block representation of the images.
[0003] The present invention can in particular be applied to image coding or video coding implemented in current or future encoders (such as JPEG, MPEG, H.264, HEVC, etc., and their variants), and to the corresponding decoding.
Background Art
[0004] Digital images and sequences of images occupy a lot of space with respect to memory, which requires compressing such images in order to avoid congestion problems on the network used for this transmission when transmitting these images.
[0005] Many techniques for compressing video data are already known. Among these, the HEVC compression standard ("High Efficiency Video Coding, Coding Tools and Specification", Matthias Wien, Signals and Communication Technology, 2015) proposes to perform a prediction of the pixels of the current image with respect to other pixels belonging to the same image (intra prediction) or to previous or subsequent images (inter prediction).
[0006] More specifically, intra prediction uses the spatial redundancy within the image. To do this, the image is divided into blocks of pixels. The blocks of pixels are then predicted using the already reconstructed information corresponding to previously coded / decoded blocks in the current image, according to the scan order of the blocks in the image.
[0007] Furthermore, in a standard manner, the current block is coded using a prediction of the current block, called the predictor block, and a prediction residual or "residual block" corresponding to the difference between the current block and the predictor block. The resulting residual block is then transformed using, for example, a DCT (Discrete Cosine Transform) type transform. The coefficients of the transformed residual block are then quantized, coded by entropy coding, and sent to a decoder where the current block can be reconstructed by adding this residual block to the predictor block.
[0008] Decoding is done for each image and for each block within each image. For each block, the corresponding element of the stream is read. Inverse quantization and inverse transformation of the coefficients of the residual block are performed. Then, block prediction is calculated to obtain the predictor block, and the current block is reconstructed by adding the prediction (i.e., the predictor block) to the decoded residual block.
[0009] In U.S. Patent No. 9,253,508, a DPCM (Differential Pulse Code Modulation) coding technique for coding blocks in the intra mode is integrated into the HEVC encoder. Such a technique consists of predicting a set of pixels of an intra block by another set of pixels of the same block that has been previously reconstructed. In U.S. Patent No. 9,253,508, the set of pixels of the intra block to be coded corresponds to a row, or a column, or a row and a column of the block, and the intra prediction used to predict the set of pixels is one of the directional intra predictions defined in the HEVC standard.
[0010] However, such techniques are not optimal. Certainly, the reconstruction of a set of pixels within a block corresponds to the addition of a prediction residual in the case of lossless coding and thus either exhibits a rather low compression rate or corresponds to the addition of a prediction residual after the inverse transformation and / or inverse quantization of said other set of pixels useful for prediction. Thus, such techniques do not allow each pixel of an intra-block to be predicted using a local prediction function and the predicted pixels to be reconstructed before subsequent pixels are predicted. Certainly, this technique requires a set of pixels (e.g., a row / column of a block) to be reconstructed in order to predict another set of pixels. In other words, using each prediction and reconstruction of a part of the block, some pixels of the block are predicted and reconstructed.
[0011] Moreover, U.S. Patent No. 9,253,508 does not explain, for example, how to perform a conventional intra prediction mode and how the DPCM prediction mode coexists as defined in the HEVC standard.
[0012] Therefore, there is a need for new coding and decoding methods to improve the compression of image data or video data.
Prior Art Documents
Patent Documents
[0013]
Patent Document 1
Non-Patent Documents
[0014]
Non-Patent Document 1
SUMMARY OF THE INVENTION
MEANS FOR SOLVING THE PROBLEM
[0015] The present invention improves the prior art. For this purpose, the present invention relates to a method for decoding a coded data stream representing at least one image divided into blocks. The decoding method is for at least one block of an image, called the current block, - determining whether the size of the current block is less than or equal to a predetermined threshold; - if the size of the current block is less than or equal to a predetermined threshold, decoding an item of information indicating the coding mode of the current block among a first coding mode and a second coding mode, and reconstructing the current block according to the coding mode indicated by the decoded coding mode item of information; - if the size of the current block is greater than a predetermined threshold, reconstructing the current block according to the first coding mode and comprising.
[0016] The first coding mode corresponds to a coding mode according to which the current block is reconstructed using an inverse transform of the decoded transform prediction residual for the current block, and the second coding mode is - for each pixel of the current block, - obtaining a prediction of the pixel from another previously decoded pixel, wherein the another previously decoded pixel belongs to the current block or a previously decoded block of the image, - reconstructing the pixel from the obtained prediction of the pixel and the decoded prediction residual associated with the pixel corresponds to a coding mode according to which the current block is reconstructed thereby.
[0017] Therefore, according to the present invention, an item of information indicating the coding mode of a current block among the conventional intra-coding mode and the coding mode using prediction based on pixels reconstructed previously in the current block is coded / decoded in the stream only when the current block has a size equal to or smaller than a predetermined threshold value.
[0018] When the current block has a size larger than a predetermined threshold value, the current block can be coded, for example, by a conventional intra-coding mode by default or by any other coding mode when coding an intra-type image.
[0019] The advantage of indicating the coding mode between the first coding mode and the second coding mode only for blocks having a size equal to or smaller than a predetermined threshold value is to improve the rate. Certainly, the second coding mode requires transmission of the residual for each pixel, and thus requires a rate proportional to the area of the block expressed by the number of pixels. The second coding mode is interesting in terms of compression when the size of the current block is small compared to the first coding mode.
[0020] Moreover, since the circuit supporting decoding of blocks by the second coding mode can be limited to a small area of the block, the hardware implementation cost in the decoder is reduced.
[0021] Advantageously, the present invention also enables an improvement in the speed of the encoder since the encoder does not have to test two coding modes for large block sizes which also consume the most computational time at that time.
[0022] The present invention also relates to a method for coding a data stream representing at least one image divided into blocks. According to the present invention, the coding method is for at least one block of an image called a current block. - determining whether the size of the current block is less than or equal to a predetermined threshold; - when the size of the current block is less than or equal to the predetermined threshold, coding an item of information indicating the coding mode of the current block among the first coding mode and the second coding mode, and coding the current block according to the coding mode indicated by the coded coding mode item of information; - when the size of the current block is greater than the predetermined threshold, coding the current block according to the first coding mode and comprising.
[0023] The first coding mode corresponds to a coding mode according to which the current block is coded using the transform of the prediction residual of the current block, and the second coding mode is - for each pixel of the current block, - obtaining a prediction of the pixel from another pixel decoded previously, wherein the another pixel decoded previously belongs to the current block or a previously decoded block of the image, - coding a prediction residual obtained from and related to the prediction obtained for the pixel corresponds to a coding mode according to which the current block is coded.
[0024] According to one particular embodiment of the invention, the size of the current block corresponds to the maximum width of the current block. For example, the predetermined threshold is 16 pixels or 32 pixels. Other thresholds are, of course, possible.
[0025] According to another particular embodiment of the invention, the size of the current block corresponds to the total number of pixels in the current block. For example, the predetermined threshold is 256 pixels or 512 pixels. Other thresholds are, of course, possible.
[0026] According to any one of the above specific embodiments, the threshold value can be adjusted according to the maximum size of the initial segmentation block of the image.
[0027] According to another specific embodiment of the present invention, a predetermined threshold value is decoded or coded in the data stream.
[0028] The present invention also relates to a decoding device configured to implement a decoding method according to any one of the specific embodiments defined above. This decoding device can, of course, have various characteristics related to the decoding method according to the present invention. Therefore, the characteristics and advantages of this decoding device are the same as those of the decoding method and will not be described in further detail.
[0029] Specifically, the decoding device is configured to, for at least one block of the image, which is currently called a current block, - determine whether the size of the current block is less than or equal to a predetermined threshold value, - when the size of the current block is less than or equal to the predetermined threshold value, decode an item of information indicating the coding mode of the current block among the first coding mode and the second coding mode, and reconstruct the current block according to the coding mode indicated by the decoded coding mode item of information, - when the size of the current block is greater than the predetermined threshold value, reconstruct the current block according to the first coding mode and includes a processor configured to perform the above, The first coding mode corresponds to a coding mode according to which the current block is reconstructed using an inverse transform of the decoded transform prediction residual for the current block, and the second coding mode is - for each pixel of the current block, - obtaining a prediction of the pixel from another pixel decoded previously, wherein the another pixel decoded previously belongs to the current block or a previously decoded block of the image, - reconstructing the pixel from the predicted pixel obtained and the decoded prediction residual associated with the pixel corresponds to a coding mode according to which the current block is reconstructed accordingly.
[0030] According to a specific embodiment of the present invention, such a decoding device is provided in a terminal.
[0031] The present invention also relates to a coding device configured to implement a coding method according to any one of the specific embodiments defined above. This coding device can, of course, have various characteristics related to the coding method according to the present invention. Therefore, the characteristics and advantages of this coding device are the same as those of the coding method and will not be described in further detail.
[0032] The coding device is particularly for at least one block of an image, called a current block, having a size below a predetermined threshold - determining whether the size of the current block is below a predetermined threshold - when the size of the current block is below a predetermined threshold, coding an item of information indicating the coding mode of the current block among a first coding mode and a second coding mode, and coding the current block according to the coding mode indicated by the coded coding mode item of information - when the size of the current block is greater than a predetermined threshold, coding the current block according to the first coding mode and includes a processor configured to perform the above The first coding mode corresponds to a coding mode according to which the current block is coded using a transform of the prediction residual of the current block, and the second coding mode is - for each pixel of the current block - Obtaining a prediction of the pixel from another pixel that has been decoded previously, wherein the another pixel that has been decoded previously belongs to the current block or a block that has been decoded previously in the image - Coding a prediction residual obtained from a prediction obtained for the pixel and associated with the pixel corresponds to a coding mode according to which the current block is coded accordingly
[0033] According to a particular embodiment of the present invention, such a coding device is provided in a terminal or a server
[0034] The present invention also relates to a coded data stream representing at least one image divided into blocks. According to the present invention, the coded data stream comprises, for at least one block of the image, called the current block, an item of information indicating the coding mode of the current block among a first coding mode and a second coding mode when the current block has a size below a predetermined threshold
[0035] When the coding mode of the current block corresponds to the first coding mode or when the size of the current block has a size greater than a predetermined threshold, the coded data stream comprises a coded transform prediction residual
[0036] When the coding mode of the current block corresponds to the second coding mode and the size of the current block has a size below a predetermined threshold, the coded data stream comprises - for each pixel of the current block - obtaining a prediction of the pixel from another pixel that has been decoded previously, wherein the another pixel that has been decoded previously belongs to the current block or a block that has been decoded previously in the image - obtaining a prediction residual associated with the pixel from the prediction obtained for the pixel It includes the coded prediction residual obtained by
[0037] According to a specific embodiment of the present invention, the coded data stream further includes a value representing the predetermined threshold coded at least for the image.
[0038] A data stream according to any one of the specific embodiments described above can be stored on any storage medium, such as in memory, or can be transmitted in the form of an electrical signal or an optical signal that can be carried wirelessly or by other means via an electrical cable or an optical cable.
[0039] The decoding method and the coding method according to the present invention can be implemented in various ways, in particular in a wired form or in a software form. According to a specific embodiment of the present invention, the decoding method and the coding method are each implemented by a computer program. The present invention also relates to a computer program comprising instructions for implementing a decoding method or a coding method according to any one of the specific embodiments described above when the program is executed by a processor. Such a program can use any programming language. The program can be downloaded from a communication network and / or recorded on a computer-readable medium.
[0040] This program can use any programming language and can be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form or in any other desired form.
[0041] The present invention also relates to a computer-readable storage medium or data medium comprising instructions of a computer program as described above. The above-described recording medium can be any entity or device capable of storing the program. For example, the medium can comprise storage means such as a memory. On the other hand, the recording medium can correspond to a transmissible medium, such as an electrical signal or an optical signal, which can be carried via an electrical cable or an optical cable, wirelessly, or by other means. The program according to the present invention can specifically be downloaded on an Internet type network.
[0042] Alternatively, the recording medium can correspond to an integrated circuit in which the program is incorporated, and the circuit is adapted to execute the method or to be used in the execution of the method.
[0043] Other characteristics and advantages of the present invention will become more apparent upon reading the following description of a specific embodiment, provided as a simple illustrative and non-limiting example, and the accompanying drawings.
Brief Description of the Drawings
[0044]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Embodiments for Carrying Out the Invention
[0045] General Principles The general principle of the present invention makes it possible to improve the coding of blocks of image data by using a new coding mode based on the prediction of pixels in a block that uses other pixels previously reconstructed in the same block, and to coexist this new coding mode with conventional coding modes, such as those defined in current compression standards.
[0046] Therefore, according to the present invention, a new coding mode called ILR (in-loop residual) is defined according to which pixels of a block to be coded are predicted using other pixels previously reconstructed in the same block, and the prediction residual for each pixel is transmitted to the decoder. This new coding mode is introduced in an encoder / decoder that uses a conventional coding mode in which, with respect to pixels of another block previously reconstructed, the pixels of the block to be coded are predicted accordingly, and the prediction residual for the block to be coded is converted accordingly before being coded and transmitted to the decoder.
[0047] According to the present invention, when a block has a size below a predetermined threshold, an item of information indicating a coding mode among a first coding mode (conventional mode) and a second coding mode (ILR mode) is coded. The first coding mode is then used by default when the block has a size larger than a predetermined threshold, and the item of information is not transmitted to indicate the selection of this coding mode among the first and second coding modes.
[0048] Thus, according to the present invention, the ILR coding mode is available only for blocks whose size is below a given size. Indeed, the ILR coding technique requires the transmission of the per-pixel residuals, while the conventional coding modes (intra or inter) are based on coding the transformed residuals, which are much less expensive to transmit.
[0049] In the case of the conventional coding mode in which the prediction residual is transformed accordingly, it has been empirically observed that the rate associated with a square block is, on average, proportional to the length of the side of the block.
[0050] However, the ILR approach, which inherently corresponds to a coding mode in which the prediction residual is not transformed accordingly before coding, is a technique that requires a rate proportional to the area of the block, expressed in the number of pixels. Indeed, according to the ILR method, the residual has to be transmitted for each pixel, and this residual is not transformed since it is necessary to be able to reconstruct the pixels in order to predict the other pixels of the same block next.
[0051] Thus, the rate cost of the ILR approach increases with the square of the width of the block, while the rate of the conventional approach increases proportionally to said width. It is concluded that the ILR approach may be superior to the conventional approach for small blocks, but this is no longer true for large blocks.
[0052] Even when the encoder is made to compete two coding modes for all block sizes, it has been empirically confirmed that the ILR coding mode is almost never selected for block sizes exceeding 16×16 pixels due to its high rate.
[0053] Therefore, there are several advantages to not leaving the ILR coding mode active beyond a certain block size. For large block sizes, this enables an improvement in rate because it is no longer necessary to transmit an information item that identifies whether the current block must be decoded according to the conventional coding mode or the ILR coding mode.
[0054] Disabling the ILR coding mode for large blocks also enables an improvement in the speed of the encoder because the encoder no longer has to test two coding modes for the large block sizes that consume the most computational resources.
[0055] Moreover, the hardware implementation cost of the decoder is reduced because the circuit that supports decoding of blocks by the ILR coding mode can be limited to a small area of this block.
[0056] Therefore, the general principle of the present invention is to test two coding modes only when the size of the block is below a predetermined threshold. For example, the criterion can be one of the following. - The maximum block width is 16 pixels or less. - The maximum block width is 32 pixels or less. - The total number of pixels in the block is 256 pixels or less. - The total number of pixels in the block is 512 pixels or less.
[0057] Other criteria are possible. If the criteria are met, the encoder actually tests the two coding modes described above, selects the best in terms of rate distortion criteria, and sends an indicator to the decoder to identify the selected coding mode. If the criteria are not met (and thus some block size is exceeded), the conventional coding mode is used and no indicator is sent.
[0058] Embodiment FIG. 1 shows the steps of a coding method according to a particular embodiment of the present invention. For example, a sequence of images I1, I2, ..., I Nb is coded in the form of a coded data stream STR according to a particular embodiment of the present invention. For example, such a coding method is implemented by a coding device as will be described later with respect to FIG. 6.
[0059] A sequence of images I1, I2, ..., I Nb is provided as input to the coding method, and Nb is the number of images in the sequence to be coded. The coding method outputs a coded data stream STR representing the sequence of images provided as input.
[0060] In a known manner, the coding of the sequence of images I1, I2, ..., I Nb is performed for each image according to a coding order previously established and known to the encoder. For example, the images are in chronological order I1, I2, ..., I Nb or in another order, for example, I1, I3, I2, ..., I Nb and can be coded.
[0061] In step E0, the image I to be coded in the sequence of images I1, I2, ..., I Nb jis divided into blocks, for example, blocks of size 32×32 or 64×64 pixels, or larger. Such blocks can be further divided into square or rectangular sub - blocks, for example, 16×16, 8×8, 4×4, 16×8, 8×16...
[0062] In step E0, a threshold is determined that defines the maximum block size up to which the ILR coding mode can be used to code the current block. For example, the threshold can be set by default in the encoder or determined according to the maximum block size used to divide the image. For example, considering an initial split maximum size of 256×256 pixels, the threshold can correspond to a block width equal to 64, 32, or 16 pixels, for larger block widths.
[0063] Considering an initial split maximum size of 128×128 pixels, the threshold can correspond to a block width equal to 64, 32, 16, or 8 pixels, for larger block widths. The threshold can be adjusted according to the content of the image to be coded. As a variant, several thresholds can be tested during the rate / distortion optimization described below.
[0064] In an optional step E10, according to a particular embodiment of the present invention, in the data coded for the image I j or in the data coded for a sequence of images, the value of a predetermined threshold is coded in the data stream STR.
[0065] Then, in step E1, the first block or sub - block X j to be coded of the image I b is selected according to a predetermined scanning order of the image I j For example, it can be the first block in the lexicographic scanning order of the image.
[0066] In step E2, the encoder will select a coding mode for coding the current block X b Here, according to the specific embodiment described, the encoder will select a coding mode for coding the current block X
[0067] from the first coding mode M1 and the second coding mode M2. Additional coding modes (not described here) may be used b Here, according to the specific embodiment described, the first coding mode M1 corresponds to coding the current block by conventional intra prediction as defined, for example, according to the HEVC standard, and the second coding mode M2 corresponds to in-loop residual (ILR) prediction coding
[0068] The principle of the present invention can be extended to other types of coding modes regardless of whether it is for the first coding mode M1 or the second coding mode M2. For example, the first coding mode can correspond to any type of coding mode (such as inter-prediction coding, spatial prediction with template matching coding, etc.) that uses the transformation of the prediction residual before quantizing the coefficients obtained from the transformation operation. The second coding mode corresponds to the ILR coding mode described above
[0069] In step E2, the encoder can perform rate / distortion optimization to determine the best coding mode for coding the current block. During this rate / distortion optimization, additional coding modes different from the first and second coding modes, for example, the inter-mode coding mode, can be tested. During this rate / distortion optimization, the encoder encodes the current block X using different available coding modes to determine the rate and distortion associated with each coding mode
[0070] Here, according to the specific embodiment described, the encoder will select a coding mode for coding the current block X bSimulate the coding of , and select a coding mode that provides the best rate / distortion compromise, for example, according to the D + λR function, where R is the rate required to code the current block according to the coding mode being evaluated, D is the distortion measured between the decoded block and the original current block, and λ is the Lagrange multiplier, for example, input by the user or defined in the encoder.
[0071] According to the present invention, when the current block has a size larger than the threshold determined in step E0, the second coding mode is not tested.
[0072] In step E19, it is determined whether the current block has a size less than or equal to the threshold determined in step E0. If the current block has a size less than or equal to the threshold, the process proceeds to step E20. Otherwise, the current block has a size larger than the threshold, and the method proceeds to step E21 for coding the current block according to the first coding mode.
[0073] According to a particular embodiment of the present invention, the size of the current block can correspond to the maximum width of the block. For example, if the current block is of size 16×32 pixels and the determined threshold is 32 pixels, in this case the second coding mode is tested. However, if the current block is of size 64*32 pixels, in this case the second coding mode is not tested.
[0074] According to another particular embodiment of the present invention, the size of the current block can correspond to the number of pixels in the block. For example, for a threshold of 512 pixels and a current block of 16*32 pixels that includes 512 pixels in this way, the second coding mode is tested, but for a current block of 64*32 pixels that includes 2048 pixels in this way, the second coding mode is not tested.
[0075] In step E20, the item of information indicating the coding mode selected for the current block is coded in the data stream STR.
[0076] Current block X b If it is coded according to the first coding mode M1, the method proceeds to step E21 for coding the block according to M1. Current block X b If it is coded according to the second coding mode M2, the method proceeds to step E22 for coding the block according to M2.
[0077] Step E21 for coding a block according to the first coding mode M1 according to a specific embodiment of the present invention is described below. According to the specific mode described here, the first coding mode corresponds to conventional intra prediction, such as that defined in the HEVC standard.
[0078] In step E210, a quantization step δ1 is determined. For example, the quantization step δ1 can be set by the user or calculated using a quantization parameter that sets a compromise between compression and quality and is input by the user or defined by the encoder. Thus, such a quantization parameter can be the parameter λ used in the rate distortion cost function D + λ.R, where D represents the distortion introduced by coding and R represents the rate used for coding. This function is used to make coding selections, and usually, a method of coding an image that minimizes this function is sought.
[0079] As a variant form, the quantization parameter can be a QP corresponding to the quantization parameter conventionally used in the AVC standard or the HEVC standard. Thus, in the HEVC standard, the quantization step δ1 is determined by the equation δ1 = levelScale[QP%6] << (QP / 6)), where levelScale[k] = {40, 45, 51, 57, 64, 72} for k = 0..5.
[0080] In step E211, the prediction of the current block is determined using a conventional intra prediction mode. According to this conventional intra prediction, each predicted pixel is calculated only from the decoded pixels resulting from adjacent blocks (reference pixels) located above and to the left of the current block. The way in which pixels are predicted from the reference pixels depends on the prediction mode, which is selected by the encoder from a predetermined set of modes that are sent to the decoder and known to both the encoder and the decoder.
[0081] Thus, in HEVC, there are 35 possible prediction modes, namely 33 modes that interpolate reference pixels in 33 different angular directions, and 2 other modes, namely the DC mode in which each pixel of the predicted block is generated from the average of the reference pixels, and the PLANAR mode that performs planar and omnidirectional interpolation. This "conventional intra prediction" is well-known and is used similarly in the ITU-T H.264 standard (which has only 9 different modes) and in the experimental JEM software available at the Internet address (https: / / jvet.hhi.fraunhofer.de / ) that has 67 different prediction modes. In all cases, conventional intra prediction emphasizes the two aspects described above (prediction of pixels from adjacent blocks and transmission of the optimal prediction mode to the decoder).
[0082] In step E211, the encoder so selects one of the available prediction modes from a predetermined list of prediction modes. One way to select is, for example, to evaluate all prediction modes and to retain the prediction mode that minimizes a cost function, such as a classical rate distortion cost.
[0083] In step E212, the prediction mode selected for the current block is coded from the adjacent blocks of the current block. FIG. 2 shows the adjacent blocks A b of the current block X b for coding the prediction mode of b the current block X b and the positions of B
[0084] In step E212, the intra prediction mode selected for the current block is coded using the intra prediction mode related to the adjacent blocks.
[0085] For example, a technique described in the HEVC standard for coding the prediction mode of the current block may be used. In the example of FIG. 2, such a technique is the intra prediction mode m b related to the block A A located above the current block, and the intra prediction mode m b related to the block B B located exactly to the left of the current block. It is to identify m A and m B Depending on the values of m
[0086] According to the HEVC standard, for coding the intra prediction mode of the current block, a syntax element, that is, - a binary indicator indicating whether the prediction mode to be coded for the current block is in the MPM list is transmitted, - If the prediction mode of the current block belongs to the MPM list, the index in the MPM list corresponding to the prediction mode of the current block is coded. - If the prediction mode of the current block does not belong to the MPM list, the index in the non-MPM list corresponding to the prediction mode of the current block is coded.
[0087] In step E213, a prediction residual R for the current block is constructed.
[0088] In step E213, in a standard manner, the predicted block P is constructed according to the prediction mode selected in step E211. Then, the prediction residual R is obtained by calculating the difference for each pixel between the predicted block P and the original current block.
[0089] In step E214, the prediction residual R is transformed into R T to.
[0090] In step E214, a frequency transform is applied to the residual block R to generate a block R T with transform coefficients. The transform can be, for example, a DCT type transform. It is possible to select the transform to be used from a predetermined set E T of transforms and to notify the decoder of the transform to be used.
[0091] In step E215, the transformed residual block R T is quantized using, for example, scalar quantization with a quantization step δ1. This generates a quantized transform prediction residual block R TQ .
[0092] In step E216, the coefficients of the quantized block R TQ are coded by an entropy encoder. For example, entropy coding specified in the HEVC standard can be used.
[0093] In a known manner, the current block is decoded by inverse quantizing the coefficients of the quantized block R TQ and then applying an inverse transform to the inverse quantized coefficients to obtain a decoded prediction residual. Then, to reconstruct the current block and obtain its decoded version, a prediction is added to the decoded prediction residual. The decoded version of the current block can then be used later for spatially predicting other adjacent blocks of the image or for predicting blocks of other images by inter-image prediction.
[0094] Step E22 for coding a block according to a second coding mode M2 according to a particular embodiment of the present invention is described below. According to the particular embodiment described herein, the second coding mode corresponds to ILR prediction coding.
[0095] In step E220, a local predictor PL for the current block is determined. According to the coding mode described herein, the pixels of the current block are predicted by the previously reconstructed pixels of the adjacent blocks of the current block or of the current block itself.
[0096] Preferably, for prediction, pixels as close as possible to the pixel to be predicted are selected. This is why it is called a local predictor. The local predictor PL may also be incorporated into the prediction mode of the current block associated with the second coding mode M2. According to this interpretation, in the particular embodiment described herein, the first coding mode uses a first group of intra prediction modes, for example, the intra prediction modes defined by the HEVC standard, and the second coding mode, here the ILR mode, uses a second group of prediction modes different from the first group of intra prediction modes.
[0097] Can the local predictor PL be unique or can it be selected from a set of predetermined local predictors (second group of prediction modes)?
[0098] According to one embodiment, four local predictors are defined. Thus, as illustrated in FIG. 3 showing the current block Xb, if the current pixel to be predicted from the current block is called X, the pixel located immediately to the left of X is called A, the pixel located immediately to the left and above X is called B, the pixel located immediately above X is called C, the four local predictors PL1, PL2, PL3, PL4 can be defined as follows. PL1(X) = min(A,B) when C ≧ max(A,B) max(A,B) when C ≦ min(A,B) A + B - C in other cases PL2(X) = A PL3(X) = B PL4(X) = C However, min(A,B) corresponds to a function that returns the minimum value between the value of A and the value of B, and max(A,B) corresponds to a function that returns the maximum value between the value of A and the value of B.
[0099] In step E220, the local predictor PL to be used for the current block is determined. In other words, the same local predictor, i.e., the same prediction function, will be used for all pixels of the current block. For this purpose, several embodiments are possible.
[0100] Coding of the current block using each of the predictors may be simulated (similar to the optimization for choosing the coding mode for the current block), and the local predictor that optimizes a cost function (e.g., minimizing the D + λ.R function, where R is the rate used to code the block, D is the distortion of the decoded block with respect to the original block, and λ is a parameter set by the user) is selected.
[0101] Otherwise, in order to limit the complexity of selecting the current block's local predictor, the texture orientation of the previously coded pixels is analyzed. For example, the previously coded pixels in the blocks located above or to the left of the current block are analyzed using a Sobel-type operator. - If it is determined that the orientation is horizontal, local predictor PL2 is selected. - If it is determined that the orientation is vertical, local predictor PL3 is selected. - If it is determined that the orientation is diagonal, local predictor PL4 is selected. - If the orientation is not clear, local predictor PL1 is selected.
[0102] Syntax elements are coded in data stream STR to indicate to the decoder which local predictor was used to predict the current block.
[0103] In step E221, quantization step δ2 is determined. For example, if the current block is coded according to the first coding mode, quantization step δ2 depends on the same quantization parameter as quantization step δ1, which would be determined in step E210.
[0104] In step E222, prediction residual R1 is calculated for the current block. For this purpose, once the local predictor is selected, for each current pixel of the current block - To obtain the predicted value PRED, the current pixel X of the current block is predicted by the selected local predictor PL using either, or both, of the already reconstructed (and thus available using their decoded values) pixels outside the block or previously reconstructed pixels within the current block. In all cases, the predictor PL uses previously reconstructed pixels. In FIG. 3, it can be understood that the pixels of the current block located in the first row and / or first column of the current block use the already reconstructed pixels outside the block (the pixels in gray in FIG. 3) and, in some cases, the already reconstructed pixels of the current block as reference pixels (for constructing the predicted value PRED). For the other pixels of the current block, the reference pixels used to construct the predicted value PRED are located inside the current block. - The difference DIFF between PRED and X is quantized to the value Q(X) by a δ2 quantization step scalar quantizer according to Q(X)=ScalarQuant(DIFF)=ScalarQuant(δ2,X - PRED), where the scalar quantizer is, for example,
[0105]
Number
[0106] a nearest neighbor scalar quantizer such as etc. Q(X) is the quantization residual related to X. Q(X) is calculated in the spatial domain, that is, directly calculated from the difference between the predicted value PRED of pixel X and the original value of X. Such a quantization residual Q(X) for pixel X will later be coded and stored in the quantization prediction residual block R1 Q of. - The decoded predicted value P1(X) of X is calculated by adding the dequantized value of the quantization residual Q(X) to the predicted value PRED. The decoded predicted value P1(X) of X is thus obtained by P1(X) = PRED + ScalarDequant(δ2, Q(X)). For example, the nearest scalar quantization inverse function is given by ScalarDequant(Δ, x) = Δ × x.
[0107] The decoded predicted value P1(X) thus enables predicting the possible pixels still to be processed in the current block. Moreover, block P1 with the decoded / reconstructed values of the pixels of the current block is an ILR predictor (instead of the conventional intra predictor) of the current block.
[0108] The substeps described above are executed for all pixels of the current block in a scanning order that ensures that the pixels used for prediction, selected from PL1, ..., PL4, are available.
[0109] According to one embodiment, the scanning order of the current block is the lexicographical order, i.e., from left to right and from top to bottom.
[0110] According to another embodiment, some scanning orders of the current block, for example, - the lexicographical order, or - scanning from the top to the bottom of the first column and then the column just to its right, etc., or - an alternating diagonal scan can be used.
[0111] According to this other embodiment, it is possible to simulate the coding cost associated with each of the scanning orders, and select the best scanning order for the current block from a rate / distortion perspective, and then code an information item representing the selected scanning order for the current block.
[0112] At the end of step E222, the quantization residual block R1 Qhas been determined. This quantization residual block R1 Q has to be coded for transmission to the decoder. The predictor P1 of the current block has also been determined.
[0113] In step E223, the quantization residual block R1 Q is coded for transmission to the decoder. Any known technique, such as the method described in HEVC, can be used to code the quantization coefficients of the conventional prediction residuals.
[0114] According to a particular embodiment of the invention described herein, the values of the quantization residual block R1 Q are coded in the data stream STR using an entropy encoder.
[0115] According to a particular embodiment of the invention, it is possible to determine and code an additional prediction residual R2 from the ILR predictor obtained for the current block. However, the coding of the additional prediction residual R2 is optional. Simply coding the current block with its predicted version P1 and the quantization residual R1 Q is actually possible.
[0116] The following steps are carried out to code an additional prediction residual R2 for the current block.
[0117] In step E224, the difference R2 between the predictor P1 and the original current block X b is calculated to form an additional residual R2: R2 = X b - P1. The following steps correspond to the conventional coding steps for this residual R2.
[0118] In step E225, the residual R2 is transformed using frequency conversion to generate a block of the coefficient R2 T .
[0119] The transformation can be, for example, a DCT type of transformation. It is possible to select the transformation to be used from a predetermined set E of transformations T2 and to notify the decoder of the transformation to be used. In this case, set E T2 may be different from set E T in order to match certain statistical values of the residual R2.
[0120] In step E226, the block of coefficients R2 T is quantized using, for example, scalar quantization with a quantization step δ. This generates the block R2 TQ .
[0121] The quantization step δ can be set by the user. The quantization step δ can also set a compromise between compression and quality and can be calculated using another parameter λ input by the user or the encoder. For example, the quantization step δ can correspond to the quantization step δ1 or can be determined in the same way as the quantization step δ1.
[0122] In step E227, the coefficients of the quantized block R2 TQ are then transmitted in a coded manner. For example, the coding specified in the HEVC standard can be used.
[0123] In a known manner, the current block is decoded by inverse quantizing the coefficients of the quantized block R2 TQ and then applying an inverse transformation to the inverse quantized coefficients to obtain the decoded prediction residual. The prediction P1 is then added to the decoded prediction residual to reconstruct the current block and obtain its decoded version X rec . The decoded version X rec of the current block can then be used later for spatial prediction of other adjacent blocks of the image or for predicting blocks of other images by inter-image prediction.
[0124] In step E23, taking into account the previously defined scanning order, it is checked whether the current block is the last block of the image to be processed by its coding method. In the affirmative case, the method proceeds, if any, to the coding of the next image of the video (step E25). In the negative case, in step E24, the subsequent block of the image to be processed is selected according to the previously defined scanning order of the image, and the coding method proceeds to step E2, where the selected block becomes the current block to be processed.
[0125] Figure 4 shows the steps of a method for decoding a stream STR of coded data representing a sequence I1, I2, ..., I of images to be decoded according to a particular embodiment of the invention. Nb
[0126] For example, the data stream STR is generated via the coding method shown with respect to Figure 1. The data stream STR is provided as an input to a decoding device DEC as explained with respect to Figure 7.
[0127] The decoding method decodes the stream image by image, and each image is decoded block by block.
[0128] In step E40, the image I to be decoded j is subdivided into blocks of an initial size determined in the encoder and known to the decoder. Each block will undergo a decoding operation in a series of steps detailed later. The blocks can be of the same size or of different sizes.
[0129] In an optional step E401, according to a particular embodiment of the invention, a threshold is read from the data stream STR. This threshold defines the maximum block size up to which the ILR coding mode has been enabled for coding the current block.
[0130] According to another specific embodiment of the present invention, the threshold value can be defined by default in the decoder.
[0131] In step E41, the first block or sub-block X j to be decoded of the image I b is selected as the current block according to a predetermined scanning order of the image I j . For example, it can be the first block in the lexicographical scanning order of the image.
[0132] In step E42, it is determined whether the current block has a size less than or equal to the threshold value. If the current block has a size less than or equal to the threshold value, the process proceeds to step E421. Otherwise, the current block has a size larger than the threshold value, and the method proceeds to step E43 for decoding the current block according to the first coding mode.
[0133] The size of the current block can be read from the data stream or estimated from the partition of the block of the initial size to which the current block belongs. Such a partition is coded in the data stream or estimated from the information coded for the block of the initial size.
[0134] In step E421, an item of information indicating the coding mode for the current block is read from the data stream STR. According to the specific embodiment described herein, this item of information indicates whether the current block is coded according to the first coding mode M1 or the second coding mode M2. According to the specific embodiment described herein, the first coding mode M1 corresponds to the conventional intra-prediction coding of the current block, such as defined according to the HEVC standard, and the second coding mode M2 corresponds to the in-loop residual (ILR) prediction coding.
[0135] In other specific embodiments, the first coding mode can correspond to a coding mode other than the intra prediction coding mode (not described here).
[0136] Step E43 for decoding the current block when the current block is coded according to the first coding mode M1 is described below.
[0137] In step E430, the quantization step δ1 is determined. For example, the quantization step δ1 is determined from the quantization parameter QP read in step E401 or in the same way as done in the encoder. For example, the quantization step δ1 can be calculated using the quantization parameter QP read in step E401. For example, the quantization parameter QP can be a quantization parameter conventionally used in the AVC standard or the HEVC standard. Thus, in the HEVC standard, the quantization step δ1 is determined by the equation δ1 = levelScale[QP%6] << (QP / 6)), where levelScale[k] = {40, 45, 51, 57, 64, 72} for k = 0..5.
[0138] In step E431, the prediction mode selected for coding the current block is decoded from the adjacent blocks. For this purpose, the intra prediction mode selected for the current block is coded using the intra prediction mode related to the adjacent blocks of the current block as done in the encoder.
[0139] The configurations of both the MPM list and the non-MPM list are exactly similar to those done during coding. According to the HEVC standard, the following types of syntax elements, namely, - A binary indicator indicating whether the prediction mode to be coded for the current block is in the MPM list, - If the prediction mode of the current block belongs to the MPM list, the index in the MPM list corresponding to the coded prediction mode of the current block is obtained. - If the prediction mode of the current block does not belong to the MPM list, the index in the non-MPM list corresponding to the coded prediction mode of the current block is decoded.
[0140] The binary indicator and the prediction mode index are read from the data stream STR for the current block in this way to decode the intra prediction mode of the current block.
[0141] In step E432, the decoder constructs a prediction block P for the current block from the decoded prediction mode.
[0142] In step E433, the decoder decodes the coefficients of the quantized block R from the data stream STR using, for example, the decoding specified in the HEVC standard. TQ of the coefficients.
[0143] In step E434, the decoded block R TQ is inverse quantized using, for example, the δ1 quantization step scalar inverse quantization. This generates a block of the inverse quantized coefficients R TQD .
[0144] In step E435, an inverse frequency transform is applied to the block of the inverse quantized coefficients R TQDI to generate the decoded prediction residual block R TQD . The transform can be, for example, an inverse DCT type transform. By decoding an indicator from the data stream STR, the transform to be used can be selected from a predetermined set E TI of transforms.
[0145] In step E436, the decoded current block X rec is obtained as X rec = P + RTQDI To generate by, the predicted block P obtained in step E432 and the decoded residual block R obtained in step E435 TQDI from which the current block is reconstructed.
[0146] Step E44 for decoding the current block when the current block is coded according to the second coding mode M2 is described below.
[0147] In step E440, the local predictor PL used to predict the pixels of the current block is determined. If only one predictor is available, the local predictor is, for example, set by default at the decoder level and no syntax element needs to be read from the stream STR to determine it.
[0148] If several local predictors, for example the predictors PL1 - PL4 described above, are available, the syntax element is decoded from the data stream STR to identify which local predictor was used to predict the current block. The local predictor is so determined from the decoded syntax element.
[0149] In step E441, the quantization step δ2 is determined in the same way as was done in the encoder.
[0150] In step E442, the quantized residual R1 Q is decoded from the data stream STR. Any known technique such as the method described in HEVC can be used to decode the quantization coefficient of the conventional prediction residual.
[0151] In step E443, to generate the inverse - quantized residual block R1 QD the quantized residual block R1 is inverse - quantized using the quantization step δ2. Q is inverse - quantized.
[0152] In step E444, a dequantized residual block R1 QD is obtained, and a prediction block P1 is configured using the local predictor PL determined in step E440.
[0153] In step E444, each pixel of the current block is predicted and reconstructed as follows. - To obtain a predicted value PRED, the current pixel X of the current block is predicted by the selected predictor PL using either, or both, of the already reconstructed pixels outside the block and the previously reconstructed pixels of the current block. In all cases, the predictor PL uses previously decoded pixels. - The decoded predicted value P1(X) of the current pixel X is calculated as P1(X)=PRED+R1 QD (X), the dequantized value R1 of the prediction residual QD is added to the predicted value PRED.
[0154] These steps are performed for all pixels of the current block in a scanning order that ensures that the pixels used for prediction, selected from PL1, ..., PL4, are available.
[0155] For example, the scanning order is lexicographic order (left to right, then top to bottom of the row).
[0156] According to a particular embodiment of the present invention, a prediction block P1 comprising the decoded predicted value P1(X) of each pixel of the current block is formed here from the decoded current block X rec here.
[0157] According to another particular embodiment of the present invention, it is here considered that an additional prediction residual has been coded for the current block. Therefore, it is necessary to decode this additional prediction residual in order to reconstruct the decoded version of the current block X rec here.
[0158] For example, this other particular embodiment may or may not be activated or defaulted at the encoder level and the decoder level. Otherwise, for each block coded according to the ILR coding mode, an indicator may be coded in the data stream, along with block-level information, to indicate whether an additional prediction residual is to be coded. Otherwise, further, for all blocks of an image or sequence of images coded according to the ILR coding mode, an indicator may be coded in the data stream, along with image or image sequence level information, to indicate whether an additional prediction residual is to be coded for each block.
[0159] When an additional prediction residual is coded for the current block, at step E445, the quantized prediction residual R2 TQ of the coefficients is decoded from the data stream STR using means adapted to those implemented in the encoder, for example, means implemented in an HEVC decoder.
[0160] At step E446, the block of quantization coefficients R2 TQ is inverse quantized, for example, using a scalar inverse quantization of quantization step δ1. This generates the block of inverse quantization coefficients R2 TQD .
[0161] At step E447, inverse frequency transformation is applied to block R2 TQDI to generate the decoded prediction residual block R2 TQD .
[0162] The inverse transformation may be, for example, an inverse DCT type transformation.
[0163] The transformation to be used is a predetermined set E of transformations T2to select from, and to decode the item of information that notifies the decoder of the conversion to be used. In this case, in order to conform to a specific statistical value of the residual R2, set E T2 is set E T is different from.
[0164] In step E448, the current block is reconstructed by adding the predicted block P1 obtained in step E444 to the decoded prediction residual R2 TQDI to it.
[0165] In step E45, considering the previously defined scanning order, it is checked whether the current block is the last block of the image to be processed by its decoding method. If so, the method proceeds to decode the next image of the video (step E47) if there is one. If not, in step E46, the subsequent block of the image to be processed is selected according to the previously defined scanning order of the image, the decoding method proceeds to step E42, and the selected block becomes the current block to be processed.
[0166] FIG. 5 shows a signal example STR comprising coded data representing at least one block of an image according to a particular embodiment of the present invention. For example, the signal STR can comprise a threshold S indicating the maximum block size up to which the second coding mode M2 can be used as described above. This threshold S can be coded at the picture level or the sequence level of the picture when coding the video.
[0167] When not coded in the data stream STR, the threshold S is determined in a similar way in the encoder and the decoder.
[0168] When the block has a size less than or equal to a threshold S, the signal STR includes a coded indicator TY that indicates, for the block, a coding mode among a first coding mode and a second coding mode. When the TY indicator indicates that the block is coded according to the second coding mode, here the ILR mode, the signal then includes the coded value of the quantized prediction residual R1 Q and, optionally, the coded value of the quantized transform prediction residual R2 TQ . When several local predictors are possible for the current block, the signal also includes a local predictor PL coding indicator.
[0169] When the indicator TY indicates that the block is coded according to the first coding mode, here the conventional intra prediction mode, the signal then includes the coded value of the quantized transform prediction residual R TQ , a binary indicator i that indicates whether the prediction mode to be coded for the current block is in the MPM list MPM , and an index idx that indicates the index of the current block prediction mode in the corresponding list MPM .
[0170] When the block has a size greater than the threshold S, the signal then includes data to be coded for the block, resulting from the coding of the block according to the first coding mode.
[0171] FIG. 6 shows a simplified structure of a coding device COD adapted to implement a coding method according to any one of the specific embodiments of the present invention.
[0172] According to a specific embodiment of the present invention, the steps of the coding method are implemented by computer program instructions. For this purpose, the coding device COD has a computer of a standard architecture, is equipped with a memory MEM, for example, a processor PROC, and particularly includes a processing unit UT that is driven by a computer program PG stored in the memory MEM. The computer program PG includes instructions for implementing the steps of the coding method as described above when the program is executed by the processor PROC.
[0173] In initialization, the code instructions of the computer program PG are loaded into a RAM memory (not shown), for example, before being executed by the processor PROC. Specifically, the processor PROC of the processing unit UT implements the steps of the coding method as described above according to the instructions of the computer program PG.
[0174] FIG. 7 shows a simplified structure of a decoding device DEC adapted to implement a decoding method according to any one of the specific embodiments of the present invention.
[0175] According to a specific embodiment of the present invention, the decoding device DEC has a computer of a standard architecture, is equipped with a memory MEM0, for example, a processor PROC0, and particularly includes a processing unit UT0 that is driven by a computer program PG0 stored in the memory MEM0. The computer program PG0 includes instructions for implementing the steps of the decoding method as described above when the program is executed by the processor PROC0.
[0176] In initialization, the code instructions of the computer program PG0 are loaded into a RAM memory (not shown), for example, before being executed by the processor PROC0. Specifically, the processor PROC0 of the processing unit UT0 implements the steps of the decoding method as described above according to the instructions of the computer program PG0.
Description of Symbols
[0177] I1, I2, ..., I Nb Sequence I j Image X b Current Block STR Data Stream, Signal QP Quantization Parameter M1 First Coding Mode M2 Second Coding Mode A b And B b Adjacent Block PG Computer Program COD Coding Device PROC Processor DEC Decoding Device UT Processing Unit S Threshold TY Indicator PROC0 Processor
Claims
1. A method for decoding a coded data stream representing at least one image, wherein the image is divided into blocks, and the method for decoding comprises, for at least one block of the image, called the current block, - reading a threshold defining a block size from the data stream; - determining whether the size of the current block is less than or equal to the threshold; - if the size of the current block is less than or equal to the threshold, decoding an item of information indicating the coding mode of the current block among a first coding mode and a second coding mode (E42), and reconstructing the current block according to the coding mode indicated by the decoded item of information indicating the coding mode; - if the size of the current block is greater than the threshold, reconstructing the current block according to the first coding mode and wherein the first coding mode corresponds to a coding mode in which the current block is reconstructed according to an inverse transform of a decoded transform prediction residual for the current block (E436), and the second coding mode is - for each pixel of the current block, - obtaining a prediction of the pixel from another previously decoded pixel, wherein the another previously decoded pixel belongs to the current block or a previously decoded block of the image; - reconstructing the pixel from the obtained prediction of the pixel and the decoded prediction residual associated with the pixel such that the current block is reconstructed according thereto without using an inverse transform of a decoded transform prediction residual for the current block (E444); a method.
2. A method for coding a data stream representing at least one image, wherein the image is divided into blocks, and the method for coding comprises, for at least one block of the image, called the current block, - determining whether the size of the current block is less than or equal to a threshold defining a block size, wherein the threshold is inserted into the data stream; - If the size of the current block is less than or equal to the threshold, coding an item of information indicating the coding mode of the current block among the first coding mode and the second coding mode (E20), and coding the current block according to the coding mode indicated by the coded item of information indicating the coding mode; - If the size of the current block is greater than the threshold, coding the current block according to the first coding mode; comprising, wherein the first coding mode corresponds to a coding mode according to which the current block is coded (E21) using a transform of a prediction residual of the current block, and the second coding mode is - For each pixel of the current block, - Obtaining a prediction of the pixel from another pixel decoded previously (E222), wherein the another pixel decoded previously belongs to the current block or a block decoded previously of the image; - Coding a prediction residual obtained from the prediction obtained for and related to the pixel (E223); corresponding to a coding mode according to which the current block is coded (E22) without using a transform of a prediction residual of the current block; A method.
3. wherein the size of the current block corresponds to the maximum width of the current block; The method according to claim 1 or 2.
4. The threshold is 16 or 32 pixels; The method according to claim 3.
5. wherein the size of the current block corresponds to the total number of pixels in the current block; The method according to claim 1 or 2.
6. The threshold is 256 or 512 pixels; The method according to claim 5.
7. Further comprising decoding or coding the threshold before inserting it into the data stream; The method according to claim 1 or 2.
8. A device for decoding a coded data stream representing at least one image, wherein the image is divided into blocks, and the device for decoding is configured to, for at least one block of the image, called a current block; - Reading a threshold value that defines a block size from the data stream; - Determining whether the size of the current block is less than or equal to the threshold value; - When the size of the current block is less than or equal to the threshold value, decoding an item of information indicating the coding mode of the current block among the first coding mode and the second coding mode, and reconstructing the current block according to the coding mode indicated by the decoded item of information indicating the coding mode; - When the size of the current block is greater than the threshold value, reconstructing the current block according to the first coding mode; A processor (PROC0) configured to perform the above; The first coding mode corresponds to a coding mode (E436) in which the current block is reconstructed according to the inverse transform of the decoded transform prediction residual for the current block, and the second coding mode is - For each pixel of the current block, - Obtaining a prediction of the pixel from another pixel decoded previously, where the another pixel decoded previously belongs to the current block or a block decoded previously in the image; - Reconstructing the pixel from the obtained prediction of the pixel and the decoded prediction residual associated with the pixel; Corresponding to a coding mode (E444) in which the current block is reconstructed according to the above without using the inverse transform of the decoded transform prediction residual for the current block; A device.
9. A device for coding a data stream representing at least one image, the image being divided into blocks, the device for coding being configured to, for at least one block of the image, called the current block, - Determining whether the size of the current block is less than or equal to a threshold value that defines a block size, the threshold value being inserted into the data stream; - When the size of the current block is less than or equal to the threshold, coding an item of information indicating the coding mode of the current block among the first coding mode and the second coding mode, and coding the current block according to the coding mode indicated by the coded item of information indicating the coding mode; - When the size of the current block is greater than the threshold, coding the current block according to the first coding mode A processor (PROC) configured to perform; The first coding mode corresponds to a coding mode (E21) in which the current block is coded according to the transform of the prediction residual of the current block, and the second coding mode is - For each pixel of the current block - Obtaining a prediction of the pixel from another pixel decoded previously (E222), wherein the another pixel decoded previously belongs to the current block or a block decoded previously of the image; - Coding a prediction residual obtained from the prediction obtained for the pixel and related to the pixel (E223) corresponds to a coding mode (E22) in which the current block is coded according to it without using the transform of the prediction residual of the current block; Device.
10. A computer program comprising instructions for implementing the decoding method according to any one of Claims 1 or 3 to 7, or the coding method according to any one of Claims 2 to 7 when the computer program is executed by a processor. Computer program.
11. A computer-readable data storage medium comprising the instructions of the computer program according to Claim 10 Computer-readable data storage medium.
Citation Information
Patent Citations
Differential pulse code modulation intra prediction for high efficiency video coding
US9253508B2
Non-square transform units and prediction units in video coding
WO2013039908A2