EP3685283A1 - Procedes de codage et de decodage d'une image - Google Patents

Procedes de codage et de decodage d'une image

Info

Publication number
EP3685283A1
EP3685283A1 EP18755720.2A EP18755720A EP3685283A1 EP 3685283 A1 EP3685283 A1 EP 3685283A1 EP 18755720 A EP18755720 A EP 18755720A EP 3685283 A1 EP3685283 A1 EP 3685283A1
Authority
EP
European Patent Office
Prior art keywords
transform
sub
coefficients
block
transforms
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP18755720.2A
Other languages
German (de)
English (en)
Inventor
Victorien LORCY
Pierrick Philippe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fondation B Com
Original Assignee
B Com SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by B Com SAS filed Critical B Com SAS
Publication of EP3685283A1 publication Critical patent/EP3685283A1/fr
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Definitions

  • the field of the invention is that of signal compression, in particular a digital image or a sequence of digital images, divided into blocks of pixels.
  • the invention relates more particularly to the transformation of a block of pixels, whether or not a prediction. It finds particular application in a context of competition transformations.
  • the encoding / decoding of digital images applies in particular to images from at least one video sequence comprising:
  • the present invention applies similarly to the coding / decoding of 2D or 3D type images.
  • the invention may notably, but not exclusively, apply to the video coding implemented in the current video codecs AVC (for "Advanced Video Coding” in English) and HEVC (for "High Efficiency Video Coding”). and their future extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, post-HEVC, etc.), and the corresponding decoding.
  • AVC Advanced Video Coding
  • HEVC High Efficiency Video Coding
  • transformations are usually applied to a residual signal, difference between the pixels of the image and the prediction that is made for a given block. Transformations can be implemented as coefficient matrices, using fast algorithms. In both cases they require storing the transform coefficients. The number of coefficients is all the greater as the transformations are large.
  • the number of coefficients is also multiplied in the case where the coder / decoder uses several transforms, in a context of competition transforms, for example described in the publication of A. Arrufat et al., Entitled “Rate-distortion optimized transform competition for intra coding in HEVC ", published in the Proceedings of the IEEE Visual Communication on Image Processing Conference in December 2014, held in Valletta, Malta. pp.73.
  • the best transform for the current block is selected from several transforms available for encoding, according to a rate-distortion optimization criterion. For example, 5 transforms are proposed for the blocks of size 4x4 and 17 transformed for the blocks of size 8x8.
  • trigonometric transforms whose number of coefficients is limited. However, the choice is limited because there are only 16 DCT / DST trigonometric transforms.
  • the invention improves the situation.
  • the invention particularly aims to overcome these disadvantages of the prior art.
  • an object of the invention is to propose a solution that allows the use of a large number of distinct transforms while reducing the amount of storage resources required. 5. Presentation of the invention
  • Transforming the current block into a transformed decoded block from the resulting transform by successively applying the vertical sub-transform and then the horizontal sub-transform or the horizontal sub-transform and then the vertical sub-transform;
  • the transformation step comprises, for the application of at least one sub-transform of the selected transform:
  • the kernel transform reading in a memory the coefficients of at least one distinct sub-transform, called the kernel transform, belonging to the plurality of transforms, the at least one kernel transform comprising a number of lines (Mh ', M'v) of coefficients null less than the number of rows and / or the number of columns of the current block, and the modified use of the coefficients read, their absolute values being retained, the read coefficients being applied to the M h ', respectively Mv', first rows of the block , the Mh-M'h lines respectively following columns of the transformed block being null by construction.
  • the kernel transform belonging to the plurality of transforms
  • the at least one kernel transform comprising a number of lines (Mh ', M'v) of coefficients null less than the number of rows and / or the number of columns of the current block, and the modified use of the coefficients read, their absolute values being retained, the read coefficients being applied to the M h ', respectively Mv', first rows of the block , the Mh-M
  • the invention also relates to a method of encoding at least one digital image, said image being divided into a plurality of blocks of pixels processed in a defined order, said method comprising the following steps, implemented for a current block , comprising a predetermined number (Mv) of lines and a predetermined number (Mh) of columns: Selecting a transform from among a plurality of transforms, a transform expressing itself as a vertical sub-transform of size Mv * Mv and a horizontal sub-transform of size Mh * Mh;
  • the transformation step comprises, for the application of at least one sub-transform of the selected transform:
  • the kernel transform reading in a memory the coefficients of at least one distinct sub-transform, called the kernel transform, belonging to the plurality of transforms, the at least one kernel transform comprising a number of lines (Mh ', M'v) of coefficients less than the number of rows and / or the number of columns of the current block, and the modified use of the coefficients read, their absolute values being retained, the read coefficients being applied to the Mh ', respectively Mv', first rows of the block, the Mh-M'h lines respectively following columns of the transformed block being null by construction.
  • the principle of the invention consists in producing at least two distinct sub-transformations from the coefficients of a single sub-core transform.
  • the invention thus proposes producing a system of transforms from separable sub-transforms constructed from one or more core transformations. In this way, the number of transform coefficients to be stored in memory is reduced.
  • This principle is applicable to both the encoder and the decoder.
  • the at least one core sub-transform comprises a number of lines Mh ', M'v of non-zero coefficients less than the number of lines Mh and / or the number of columns Mv of the current block and the Read coefficients are used for the first Mh lines respectively the first Mv columns of the block.
  • the modified use of the coefficients of the core sub-transform comprises a reversal of the lines of the core sub-transform.
  • This sub-transformed construction with horizontal patterns, respectively vertical, inverted compared to the representation offered by the core allows, without storage of additional coefficients, to better represent some residual blocks.
  • a line vector of the kernel sub-transform comprising decreasing coefficients is transformed into an increasing line vector capable of considering an increasing gradient in the block to be encoded.
  • the coding performance is thus improved for this type of block.
  • the modified use of the coefficients of the core sub-transform comprises at least one permutation of two coefficients and at least one sign change of a coefficient.
  • This sub-transformed construction makes it possible, without storing additional coefficients, to better represent residual blocks with horizontal patterns, respectively vertical, with patterns spatially offset with respect to the representation offered by the core.
  • a kernel line vector comprising coefficients capable of representing a contour at a given position will enable the sub-transformed construct, by position exchange, to accurately process contours at another position.
  • the coding performance is thus improved for this type of block.
  • the invention therefore makes it possible to carry out various transformations from the same core to better adapt to different types of blocks, without increasing the quantity of coefficients to be stored.
  • the plurality of transforms comprises:
  • the kernel transform comprises only Mh ' ⁇ Mh lines of non-zero coefficients, we only need to store M' 2 coefficients.
  • a second vertical sub-transform Avl C which uses the coefficients of the first K core sub-transform with reversal of its lines;
  • a first sub-horizontal transformation AhO B of size Mh * Mh which uses, identically, the coefficients of a second core sub-transform K 'of size Mh'xMh with Mh' less than Mh;
  • a second horizontal sub-transform Ahl D which uses the coefficients of the second core sub-transform K with rollover of its lines.
  • a system is made comprising the following 4 transforms:
  • the invention also relates to a device adapted to implement the decoding method according to any one of the particular embodiments defined above.
  • This device may of course include the various features relating to the method according to the invention. Thus, the features and advantages of this device are the same as those of the decoding method, and are not detailed further.
  • such a device is included in a terminal equipment.
  • the invention also relates to a device adapted to implement the coding method according to any one of the particular embodiments defined above.
  • This device may of course include the various features relating to the method according to the invention. Thus, the features and advantages of this device are the same as those of the coding method, and are not detailed further.
  • such a device is included in a terminal equipment.
  • the invention also relates to a user terminal equipment comprising a device for decoding at least one image and / or a coding device for at least one image according to the invention.
  • the invention also relates to a computer program comprising instructions for implementing the steps of a method of encoding at least one image as described above, when this program is executed by a processor.
  • the invention also relates to a computer program comprising instructions for implementing the steps of a method for decoding at least one image as described above, when this program is executed by a processor.
  • These programs can use any programming language. They can be downloaded from a communication network and / or recorded on a computer-readable medium.
  • the invention finally relates to recording media, readable by a processor, whether or not integrated in the coding or decoding device of at least one image according to the invention, optionally removable, storing a computer program implementing a coding or decoding method, as described above.
  • FIG. 1 schematically illustrates a rectangular block x to be processed
  • FIGS. 2A and 2B schematically illustrate the matrices of a vertical sub-transform and a horizontal sub-transform applicable to the x block
  • FIG. 3 schematically illustrates the transformation of a line of the block x by the horizontal sub-transformant Ah
  • Fig. 4 schematically illustrates a horizontal sub-transform A formed from a kernel sub-transform K comprising a lower number of lines
  • FIG. 1 schematically illustrates a rectangular block x to be processed
  • FIGS. 2A and 2B schematically illustrate the matrices of a vertical sub-transform and a horizontal sub-transform applicable to the x block
  • FIG. 3 schematically illustrates the transformation of a line of the block x by the horizontal sub-transformant Ah
  • Fig. 4 schematically illustrates a horizontal sub-transform A formed from a kernel sub-transform K comprising a lower number of lines
  • FIG. 1 schematically illustrates
  • FIG. 5 shows an example of a horizontal sub-transform A and an example of a horizontal sub-transform D deduced from the sub-transform A according to the invention
  • FIG. 6 schematically illustrates the transformation of a line of the block x by a horizontal sub-transform formed from a core comprising a lower number of lines
  • Fig. 7 shows a numerical example of horizontal sub-transform A
  • FIG. 8 presents a numerical example of horizontal sub-transform D deduced from A by a permutation operation of the coefficients with the sign according to the invention
  • FIG. 9 shows a numerical example of a core K comprising a number M 'of lines less than the number of lines of the current block
  • FIG. 10 shows a numerical example of a core f (K) deduced from K by a subsampling operation from the kernel K according to the invention
  • FIG. 11 shows a numerical example of a kernel derived from K by a line reversal operator applied to each of the lines of the kernel K
  • FIG. 12 presents a numerical example of a kernel derived from K by a sign exchange reversal operator performed on each of the K kernel lines
  • FIG. 13 compares the performance curves of a transform competition coding device according to the invention and according to the prior art
  • FIG. 14 describes the steps of a method of coding an image according to an embodiment of the invention
  • FIG. 15 describes the steps of a method of decoding an image according to the invention
  • Figure 16 schematically illustrates an example of a hardware structure of a coding device of the invention
  • Figure 17 schematically illustrates an example of a hardware structure of a decoding device of the invention.
  • the general principle of the invention is based on the storage in memory of the coefficients of a kernel sub-transform and on the use of the coefficients of this kernel to apply at least two distinct sub-transforms to a block to be coded or decoded.
  • the invention applies both to coding and to decoding an image sequence in a context of competition of transforms.
  • each transformation T n is composed of two sub-transformations, vertical and horizontal, named A v , n and Ah, n with n integer between 0 and Nl .Av, n acts on the columns and Ah, n on the lines of a block to transform x.
  • the block x is a residual block, resulting from the difference between the current block and its prediction, but the invention is not limited to this particular case and concerns any type block.
  • X n denotes the transformed block resulting from the transformation by T n .
  • X n is expressed as follows: Xn - Av, n * (Ah, n * X t ) t (i)
  • the invocation order of the sub-transforms can be inverted, for example:
  • the vertical sub-transform A v , n can be represented as a matrix of size M v rows and M v columns, as illustrated by Figure 2A.
  • the horizontal sub-transform Ah, n can be represented as a matrix of size Mh rows and Mh columns, as illustrated by Figure 2B.
  • a transformed line L is obtained, as shown in FIG. 3.
  • L n , k (ah, n, k, o * lo + a h , n, k, i * k + a h , n, k, 2 * + ... + a h , n, k, Mh- i * I Mh-i + offset)>> Nbit (5)
  • At least one sub-transformant K is stored in which the coefficients are stored in memory and the coefficients of this kernel are used to produce at least two distinct sub-transforms, without the necessity of storing in memory additional coefficients.
  • this use may comprise a modification of the position and / or the sign of at least one coefficient of the core sub-transform, without changing its absolute value.
  • a first sub-transform A of the K kernel by applying all the coefficients of K to the same elements of the block.
  • a or a part of A is identical to the kernel K, according to the dimensions of K with respect to the sub-transform A.
  • K comprises a number of lines M 'less than the number of lines M of A.
  • the transformation is then carried out by A by applying the coefficients of the M' first lines of K to the block. This amounts to constructing the sub-transform illustrated in FIG. 4 for the horizontal sub-transform Ah, n.
  • a second sub-transform D of A is further deduced by permutation or change of position of the coefficients of A.
  • D depends only on A and is written as a permutation of the values of the matrix A. Its coefficients are used without modification, but to different elements of the block, that is to say, positioned differently.
  • An operator f according to the invention may belong to the group comprising:
  • the invention saves memory space.
  • the sub-transformation Ah presents, in its matrix form, a set of lines (Mh-Mh ' ⁇ 1) containing only zeros.
  • Mh-M'h lines of Ah are null and M'h lines are not zero.
  • the transformed vectors will have zero-valued components at positions where sub-transformed matrix lines are zero, as shown in Figure 6.
  • the kernel K of the transformation only requires the storage of Mh * M'h coefficients. Moreover, only Mh coefficients of Ln will be calculated, the following Mh-M'hs are zero. The application of the sub-transformed Ah is therefore limited to the calculation of M'h frequency coefficients, the other Mh-M'h being null by construction.
  • the most significant coefficients of information in video coding are the so-called low frequency coefficients, that is to say corresponding to those from the first lines of the sub-transformations.
  • the coefficients carry the details that are useless in low-rate coding because they are often suppressed during the quantization, because they are negligible compared to the first coefficients resulting from the computation of the sub-transform from its first lines.
  • TheTo transform is composed of a DCT type 2 horizontal subprocessor and a DCT type 2 vertical subprocessor (of respective 8x8 and 4x4 sizes).
  • core subprocess A is presented in relation to Figure 7. It is a matrix that is preferably orthogonal, that is to say, it makes it possible to reconstruct, with a small factor, with a small error, the pixels, if one carries out the transformation of a block followed by the inverse transformation. who is then transposed.
  • the transform can be applied directly by reading the coefficients stored for A and by applying them to the elements of the block to be treated, according to the operator f, without having to store its own coefficients.
  • the sub-transform A is obtained from a kernel K of dimensions Mh'xMh with Mh ' ⁇ Mh, as illustrated in FIG. 9.
  • the sub-transform A can therefore be expressed from the K matrix matrix of dimensions MhxM'h and a zero matrix O of size Mhx (Mh-M'h) which contains only zeros.
  • the To transform is composed of a type 2 DCT for rows and columns (8x8 and 4x4 sizes respectively).
  • f () and g () are, for example, line-by-line permutation operators.
  • the storage required for the transformation of a residual block is as follows: • 64+ 16 coefficients for the transform T0;
  • the sub-transform Ah, 1 is restricted to the kernel K1 used in the first embodiment, so that the number of coefficients to be stored becomes:
  • the total of coefficients to be stored reaches 120, which is notoriously lower than the prior art.
  • the Mv * Mv sub-transform B may also be in the form of a smaller K2 core than in B.
  • the K2 kernel consists of the first two lines, which are taken from the kernel K of A. This sampling is done by subsampling K (one column 2 is taken from the first and every other line starting with the first line).
  • the To transform is composed of a type 2 DCT for rows and columns (8x8 and 4x4 respectively);
  • fl () is a coefficient reversal operator performed on each of the lines of the kernel K.
  • the result fl (K) obtained is in the form illustrated in Figure 11.
  • f2 () is a reversal operator with a sign exchange of some of the kernel lines K. In this example, it is performed on the second line.
  • the result f2 (K) then takes the form illustrated in Figure 12.
  • square blocks for example 8 by 8 pixels, are considered. Of course, other sizes are possible.
  • the To transform is composed of a type 2 DCT for rows and columns (of respective size 8).
  • A is a sub-transformed 8x8 core.
  • f () is a permutation function operating line by line.
  • the necessary storage is as follows:
  • sub-transform A is obtained from a kernel K of smaller dimensions, for example that used in the first embodiment and which comprises 3 lines.
  • the coefficients to be stored are therefore limited in this case to those of the 3 rows of the nucleus, ie to 24 coefficients.
  • 64 + 24 88 coefficients.
  • a transform is formed from a vertical horizontal DCT2 and a sub-transform equal to A or deduced from A by a horizontal vertical operator f respectively.
  • a particular example is described here:
  • the transformation To consists of a type 2 DCT for rows and columns (of respective size 8).
  • A is a sub-transformed 8x8 core.
  • An 8-transform system is thus obtained which requires the storage of two sub-transforms (A and B, with A ⁇ B).
  • the sub-transformants can express themselves, one or the other or both, in the form of a kernel as seen previously.
  • FIG. 13 the impact of the invention on the coding performance under the conditions of the embodiments presented previously in sections 4 and 5 is illustrated. It presents two curves of a measurement of a debit criterion. -distorsion (for "Rate-Distortion” in English) according to the number of transforms in competition (equal to DCT II + 4 or DCT II +8).
  • a single stored transformation allows generating four transformations (4th embodiment) it requires only 64 coefficients stored. We see that the feature with the invention notoriously uses less memory, while preserving the rate-distortion compromise that is not significantly increased.
  • the rectangular blocks may comprise a different number of pixels than that of the example just described, for example 2, 4, 8, 16, 32, etc., even an odd number.
  • a block C to be processed is selected.
  • a prediction P of the original block C is determined. It is a prediction block constructed by known means, typically by motion compensation (block from a previously decoded reference image) in the case of a so-called INTER prediction, or INTRA prediction (block constructed from the decoded pixels immediately adjacent to the current block in the ID image).
  • the prediction information related to P is encoded in the bit stream TB or compressed file FC. It is assumed here that there are J possible prediction modes ⁇ , M P2,..., M Pj, with nonzero integer J, and that the prediction mode chosen for block C is the MPj mode.
  • step E3 the residue x is transformed into a transformed residue block, called RT, by a transform. It is specified that steps E1 and E2 are optional and that step E3 can also be applied to the current block.
  • the transformed Tn obtained is applied to the residual block x and the transformed block Xn is obtained.
  • the coefficients of the transformed block are stored in memory.
  • the coefficients of the horizontal and vertical sub-transforms that make up the transform Tn are stored in memory and the encoder accesses them directly; or
  • the coefficients of at least one of the horizontal and vertical sub-transforms that make up the transform Tn are not stored in memory, but are obtained from those of a kernel sub-transform stored in memory.
  • the application of the sub-transform is performed by a predetermined operator f which reads the coefficients of the kernel transform, modifies them and applies them directly to the elements of the block as previously described.
  • the block Xn is then quantized in E33 in a conventional manner with a given quantization precision, for example called QP (for "Quantization Parameter" in English) in the HEVC standard, then the quantized values are scanned in a predetermined order so as to constitute a one-dimensional vector RQ [i], where the index i varies from 0 to M v xMh-1.
  • the index i is called the frequency of the coefficient RQ [i].
  • these coefficients are scanned in increasing frequency order, for example along a zigzag path, which is known from the JPEG fixed image coding standard.
  • the obtained vector is then encoded in E34 in conventional form using a CABAC type binary code as described in D. Marpe, H. Schwarz, T. Wiegand, "Context-based adaptive binary arithmetic coding in the .264 / AVC standard video compression" IEEE Transactions on Circuits and Systems for Video Technology (Volume: 13, Issue: 7), pp. 620-636, July 2003, in the form of an STR encoded data stream.
  • the performance of the TO transform on the residual block x is evaluated according to a rate-distortion criterion.
  • a binary coding cost R of the coefficients of X0Q is evaluated.
  • An inverse quantization is applied to the quantized transformed residue block XOQ, the inverse transform of TO is applied to it.
  • E36 it is checked whether there are any transforms to be tested. If n ⁇ N, then the following transform to be tested is selected, for example Tl. The substeps E31 to E37 are repeated for each transform Tn of the plurality of transforms in competition.
  • the one with the best performance is selected in E38.
  • the chosen transformation is indicated to the decoder in the form of an identifier, for example an index carried by a binary code commonly carried by a CABAC code.
  • T n o the selected transform.
  • the coded quantized coefficients corresponding to the transform T n o are obtained, for example by reading the memory where they have been stored, or else by applying again the transform TnO to the residual block x and applying the quantization to obtain Res T Q.
  • a set of syntax elements is coded for the current block C, among which are the quantized transformed residual coefficients RQ [i], the signs of these coefficients, the prediction mode M Pk etc.
  • entropic coding is used to exploit the distribution of syntax elements to reduce the bit rate.
  • the STR bit stream can be directly presented to a decoder or transmitted to it via a telecommunications network in the form of a stream or a file. Once received, it is processed by the decoder, which implements a decoding method of a sequence of images according to the invention.
  • the STR data stream has been generated via the coding method presented in connection with FIG. 14.
  • the STR data stream is provided as input to a decoding device DEC, which will be described in connection with FIG. .
  • the decoding of the stream is done frame by frame. For each image to be decoded, the decoding method realizes the decoding of the block-by-block image. A current image is considered to be decoded.
  • a block to be processed is selected from the current image le, called current block.
  • the data of the bitstream STR corresponding to the block B c are decoded by entropy decoding to provide syntax elements relating to the coding of the current block B c .
  • the decoded syntax elements include, in particular, prediction mode information identifying for the current block B c , a prediction mode among a plurality of predetermined prediction modes, a group of quantized coefficients of a residue Res'iQ of a prediction of this current block B c and a Tr-ID of a transform to be applied to the residue block.
  • the coefficients are traversed in an inverse order to that applied to the encoder and are dequantized at D3, that is to say that a cropping factor (inverse scaling) is applied to them, for example according to HEVC.
  • the values obtained are arranged to form a block of coefficients Xc.
  • the transform TnO 'to be applied to the residual residue block is identified from the decoded Tr-ID index.
  • the coefficients of the sub-transforms that make up the TnO 'transform are obtained by applying an operator f to the coefficients of a transform A, B or a K core stored in memory, as previously described.
  • the current block is predicted according to the decoded prediction mode in D1.
  • the prediction can be based, in a mode called inter, on previously decoded and reconstructed reference images (IRO, IRI, ...), or, in a mode called intra, from blocks already decoded for example in the same picture.
  • IRO, IRI, (7) previously decoded and reconstructed reference images
  • intra from blocks already decoded for example in the same picture.
  • a predicted block P ' is obtained.
  • the predicted block P ' is added to the spatial residue block xc in order to obtain the local reconstructed block Rec which can be filtered in order to eliminate the effects of blocks. It is stored in a memory M l in order to be used for the prediction of the next blocks.
  • the reconstructed Rec 'block is added to the current image ICR.
  • step D9 it is checked whether all the blocks of the image to be decoded have been decoded and reconstructed. In the negative case, a new current block is identified in DO along a predetermined path of the image to be decoded and the decoding method resumes in step D1 for this block.
  • the image Ic R is filtered in D10 and saved in a list of reference images I1 R , I2 R , ... for later use as reference when decoding subsequent images of the image sequence.
  • the reference software of the HEVC standard has been modified to put in competition of 5 transformations according to the prior art (in this example, the transformations 4x4, 8x8, 16x16 and 32x32 for square blocks) as presented in the Arrufat publication cited above.
  • module and “entity”, used in this document, may correspond either to a software component, or to a hardware component, or to a set of hardware and / or software components, capable of implementing perform the function (s) described for the module or entity concerned.
  • FIG. 16 an example of a simplified structure of a device 100 for encoding a digital image according to the invention is now presented.
  • the device 100 implements the coding method according to the invention which has just been described in relation to FIG. 14.
  • the device 100 comprises a processing unit 110, equipped with a processor ⁇ , and driven by a computer program Pgl 120, stored in a memory 130 and implementing the method according to the invention.
  • the code instructions of the computer program Pgi 120 are for example loaded into a RAM memory before being executed by the processor of the processing unit 110.
  • the processor of the processing unit 110 sets implement the steps of the method described above, according to the instructions of the computer program 120.
  • the device 200 comprises a computing machine dedicated to or configured to:
  • the device 100 comprises at least one unit for obtaining a plurality of transforms, a transform expressing itself in the form of a vertical sub-transform and a sub-transform.
  • horizontal transform a selection unit of a transform of the plurality of transforms, a transformation unit of the current block into a transformed block, using the selected transform, a block encoding unit processor for producing coded data representative of the transformed block and a unit for inserting the coded data into a bitstream representative of the coded picture.
  • the transformation according to the invention comprises, for at least one transform of the majority of transforms and for the application of at least one sub-transform of the selected transform:
  • These units are driven by the ⁇ processor of the processing unit 110.
  • a device 100 may be integrated with a user terminal TU.
  • the device 100 is then arranged to cooperate at least with the following module of the terminal TU: a data transmission / reception module E / R, through which the bit stream TB or the compressed file FC is transmitted in a network telecommunications network, for example a wired network or a wireless network.
  • a network telecommunications network for example a wired network or a wireless network.
  • FIG. 17 an example of a simplified structure of a device 200 for decoding an image sequence according to the invention is now presented.
  • the device 200 implements the decoding method according to the invention which has just been described in its different embodiments.
  • the device 200 comprises a processing unit 210, equipped with a processor ⁇ 2, and driven by a computer program Pg2 220, stored in a memory 230 and implementing the method according to the invention.
  • the code instructions of the computer program Pgi 220 are for example loaded into a RAM memory before being executed by the processor of the processing unit 210.
  • the processor of the processing unit 210 sets implement the steps of the method described above, according to the instructions of the computer program 220.
  • the device 200 comprises a computing machine dedicated to or configured to:
  • Decoding current block coefficients from encoded data Decoding an index representing an identifier of a transform among a plurality of transforms, a transform expressing itself in the form of a vertical sub-transform of size MvxMv and of a horizontal sub-transform of size MhxMh;
  • the device 200 comprises the following units:
  • the transformation according to the invention comprises, for at least one transform of the plurality of transforms and for the application of at least one sub-transform of the identified transform:
  • the device 200 further comprises a memory or unit M2 for storing the coefficients of the at least one kernel transform.
  • the device 200 can be integrated with a user terminal TU. It is then arranged to cooperate at least with the following modules of the terminal TU: a data transmission / reception module E / R, through which the bitstream
  • TB or the compressed FC file is received from a telecommunications network, for example a wired network or a wireless network; a display module DISP decoded images.
  • the invention that has just been described in its various embodiments applies to any block video compression scheme.
  • the encoding and decoding methods described above can be integrated into standard video encoders / decoders such as H.2266, HEVC / H.265, AVC / H.264 or a future Post-HEVC standard, or still in any type of proprietary video encoders / decoders.
  • the coding and decoding methods according to the invention also apply to all types of coders / decoders of still images.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Discrete Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

L'invention concerne un procédé de décodage d'au moins une image numérique, à partir de données codées par un encodeur et représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant ©, comprenant un nombre prédéterminé (Mv) de lignes et un nombre prédéterminé (Mh) de colonnes : - Décodage (D1) des coefficients du bloc courant à partir de données codées; - Décodage d'un index représentatif d'un identifiant d'une transformée parmi une pluralité de transformées et identification (D4) de la transformée, une transformée s'exprimant sous la forme d'une sous-transformée verticale de taille Mv*Mv et d'une sous- transformée horizontale de taille Mh*Mh; - Transformation (D5) du bloc courant en un bloc décodé transformé, à partir de la transformée obtenue, par application successive de la sous-transformée verticale puis de la sous-transformée horizontale ou respectivement de la sous-transformée horizontale puis de la sous-transformée verticale; - Reconstruction (D7) de l'image à partir du bloc décodé transformé. Selon l'invention,l'étape de transformation comprend, pour l'application d'au moins une sous-transformée de la transformée sélectionnée: - la lecture dans une mémoire des coefficients d'au moins une sous-transformée distincte, dite transformée noyau, appartenant à la pluralité de transformées, et - l'utilisation modifiée des coefficients lus, leurs valeurs absolues étant conservées.

Description

PROCEDES DE CODAGE ET DE DECODAGE D'UNE IMAGE
1. Domaine de l'invention
Le domaine de l'invention est celui de la compression de signal, en particulier d'une image numérique ou d'une séquence d'images numériques, divisée en blocs de pixels.
L'invention concerne plus particulièrement la transformation d'un bloc de pixels, issu ou non d'une prédiction. Elle trouve notamment son application dans un contexte de compétition de transformées. Le codage/décodage d'images numériques s'applique notamment à des images issues d'au moins une séquence vidéo comprenant :
- des images issues d'une même caméra et se succédant temporellement (codage/décodage de type 2D),
- des images issues de différentes caméras orientées selon des vues différentes (codage/décodage de type 3D),
- des composantes de texture et de profondeur correspondantes (codage/décodage de type 3D),
- etc.
La présente invention s'applique de manière similaire au codage/décodage d'images de type 2D ou 3D.
L'invention peut notamment, mais non exclusivement, s'appliquer au codage vidéo mis en œuvre dans les codeurs vidéo actuels AVC (pour « Advanced Video Coding », en anglais) et HEVC (pour « High Efficiency Video Coding », en anglais) et leurs extensions futures (MVC, 3D-AVC, MV- HEVC, 3D-HEVC, post-HEVC, etc), et au décodage correspondant.
2. Présentation de l'art antérieur
La compression de séquences d'images et de vidéo fait appel à des transformations. Celles- ci sont généralement appliquées sur un signal résiduel, différence entre les pixels de l'image et la prédiction qui en est faite pour un bloc donné. Les transformations peuvent être implémentées sous forme de matrices de coefficients, oà l'aide d'algorithmes rapides. Dans les deux cas elles nécessitent de stocker les coefficients de transformées. Le nombre de coefficients est d'autant plus grand que les transformations sont grandes.
Le nombre de coefficients est également démultiplié dans le cas où le codeur/décodeur font appel à plusieurs transformées, dans un contexte de compétition de transformées, par exemple décrit dans la publication de A. Arrufat et al., intitulée « Rate-distortion optimised transform compétition for intra coding in HEVC », publiée dans les Proceedings de la conférence IEEE Visual Communication on Image Processing, en décembre 2014, qui s'est tenue à La Valette, Malta . pp.73. La meilleure transformée pour le bloc courant est sélectionnée parmi plusieurs transformées disponibles à l'encodage, selon un critère d'optimisation débit-distorsion. Par exemple, il est proposé 5 transformées pour les blocs de taille 4x4 et 17 transformées pour les blocs de taille 8x8. Pour diminuer la quantité de coefficients à stocker, il est connu de recourir à des transformées trigonométriques, dont le nombre de coefficients est limité. Cependant, le choix est restreint, car il n'y a que 16 transformées trigonométriques de type DCT/DST.
Par ailleurs le fait de se restreindre à ces transformées limite la performance du codage car ces transformées ne sont pas toujours adaptées aux signaux codés. Si on utilise des transformées non trigonométriques, la quantité de coefficients à stocker est plus importante et croît linéairement avec le nombre de transformées.
Par exemple, une transformation de taille 8x8 requiert l'application successive d'une sous- transformée horizontale et d'une transformée verticale, ce qui nécessite 2x64 coefficients= 128. Si 17 transformées sont stockées conformément à la publication de Arrufat, (17*128= 2176 coefficients sont à stocker.
3. Inconvénients de l'art antérieur
La compétition de transformées permet d'améliorer les performances de compression, mais au prix d'un besoin accru en ressources de stockage.
4. Objectifs de l'invention
L'invention vient améliorer la situation.
L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur.
Plus précisément, un objectif de l'invention est de proposer une solution qui permette une utilisation d'un nombre important de transformées distinctes, tout en réduisant la quantité de ressources de stockage requise. 5. Exposé de l'invention
Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de décodage d'au moins une image numérique, à partir de données codées et représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant, comprenant un nombre prédéterminé (Mv) de lignes et un nombre prédéterminé (Mh) de colonnes :
Décodage des coefficients du bloc courant à partir de données codées ;
Décodage d'un index représentatif d'un identifiant d'une transformée parmi une pluralité de transformées et identification de la transformée, une transformée s'exprimant sous la forme d'une sous-transformée verticale de taille Mv*Mv et d'une sous-transformée horizontale de taille Mh*Mh ;
Transformation du bloc courant en un bloc décodé transformé, à partir de la transformée obtenue, par application successive de la sous-transformée verticale puis de la sous- transformée horizontale ou respectivement de la sous-transformée horizontale puis de la sous-transformée verticale ;
Reconstruction de l'image à partir du bloc décodé transformé ;
Selon l'invention, l'étape de transformation comprend, pour l'application d'au moins une sous- transformée de la transformée sélectionnée :
la lecture dans une mémoire des coefficients d'au moins une sous-transformée distincte , dite transformée noyau, appartenant à la pluralité de transformées, la au moins une transformée noyau comprenant un nombre de lignes (Mh', M'v) de coefficients non nuls inférieur au nombre de lignes et/ou au nombre de colonnes du bloc courant, et l'utilisation modifiée des coefficients lus, leurs valeurs absolues étant conservées, les coefficients lus étant appliqués aux M h', respectivement Mv', premières lignes du bloc, les Mh-M'h lignes respectivement colonnes suivantes du bloc transformé étant nulles par construction.
Corrélativement, l'invention concerne aussi un procédé de codage d'au moins une image numérique, ladite image étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc courant, comprenant un nombre prédéterminé (Mv) de lignes et un nombre prédéterminé (Mh) de colonnes : Sélection d'une transformée parmi une pluralité de transformées, une transformée s'exprimant sous la forme d'une sous-transformée verticale de taille Mv*Mv et d'une sous-transformée horizontale de taille Mh*Mh ;
- Transformation du bloc courant en un bloc transformé, par la transformée sélectionnée ;
- Encodage du bloc transformé destiné à produire des données codées représentatives du bloc transformé ;
- Insertion des données codées dans un train binaire représentatif de l'image codée ;
Selon l'invention, l'étape de transformation comprend, pour l'application d'au moins une sous- transformée de la transformée sélectionnée :
la lecture dans une mémoire des coefficients d'au moins une sous-transformée distincte, dite transformée noyau, appartenant à la pluralité de transformées, la au moins une transformée noyau comprenant un nombre de lignes (Mh', M'v) de coefficients non nuls inférieur au nombre de lignes et/ou au nombre de colonnes du bloc courant, et l'utilisation modifiée des coefficients lus, leurs valeurs absolues étant conservées les coefficients lus étant appliqués aux Mh', respectivement Mv', premières lignes du bloc, les Mh-M'h lignes respectivement colonnes suivantes du bloc transformé étant nulles par construction.
Le principe de l'invention consiste à réaliser au moins deux sous-transformations distinctes à partir des coefficients d'une seule sous-transformée noyau. L'invention propose ainsi de réaliser un système de transformées à partir de sous-transformées séparables construites à partir d'une ou plusieurs transformations noyaux. De la sorte, le nombre de coefficients de transformées à stocker en mémoire est réduit.
Ce principe est applicable aussi bien au codeur qu'au décodeur.
Les modes de réalisations qui vont maintenant être présentés s'appliquent aussi bien au procédé de codage qu'au procédé de décodage.
Selon un aspect de l'invention, la au moins une sous-transformée noyau comprend un nombre de lignes Mh', M'v de coefficients non nuls inférieur au nombre de lignes Mh et/ou au nombre de colonnes Mv du bloc courant et les coefficients lus sont utilisés pour les Mh premières lignes respectivement les Mv premières colonnes du bloc.
Cela revient à appliquer des coefficients nuls aux (Μ-Μ') lignes suivantes du bloc. On exploite le fait que les composantes basses fréquences sont celles qui portent le plus d'informations et sont les plus utiles en codage vidéo pour réduire le nombre de coefficients stockés.
Selon un autre aspect de l'invention, l'utilisation modifiée des coefficients de la sous-transformée noyau comprend un renversement des lignes de la sous-transformée noyau .
Cette construction de sous transformée, aux motifs horizontaux, respectivement verticaux, inversés par rapport à la représentation offerte par le noyau permet, sans stockage de coefficients supplémentaires, de mieux représenter certains blocs résiduels.
Par exemple, un vecteur ligne de la sous-transformée noyau comprenant des coefficients décroissants est transformée en un vecteur ligne croissant capable de considérer un gradient croissant dans le bloc à encoder. Les performances de codage sont donc améliorées pour ce type de bloc.
Selon un autre aspect de l'invention, l'utilisation modifiée des coefficients de la sous-transformée noyau comprend au moins une permutation de deux coefficients et au moins un changement de signe d'un coefficient.
Cette construction de sous-transformée permet, sans stockage de coefficients supplémentaires, de mieux représenter des blocs résiduels aux motifs horizontaux, respectivement verticaux, avec des motifs décalés spatialement par rapport à la représentation offerte par le noyau .
Par exemple, un vecteur ligne du noyau comprenant des coefficients aptes à représenter un contour à une position donnée permettra, à la sous transformée construite, par échange de position, de traiter précisément des contours à une autre position. Les performances de codage sont donc améliorées pour ce type de bloc.
L'invention permet donc de réaliser des transformations variées à partir d'un même noyau pour mieux s'adapter à différents types de blocs, sans augmenter la quantité de coefficients à stocker.
Selon encore un autre aspect de l'invention, le nombre de lignes du bloc courant étant égal au nombre de colonnes Mh=Mv, la pluralité de transformées comprend :
- une première sous transformée verticale AvO = A de taille Mv*Mv(=Mh*Mh) qui utilise à l'identique les coefficients d'une première sous-transformée noyau K;
- une deuxième sous-transformée verticale Avl = D qui utilise les coefficients de la première sous-transformée noyau K avec renversement de ses lignes; - une première sous transformée horizontale AhO de taille Mh*Mh(=Mv*Mv) qui utilise à l'identique les coefficients de la première sous-transformée noyau K;
- une deuxième sous-transformée horizontale Ahl = D qui utilise les coefficients de la première sous-transformée noyau avec renversement de ses lignes. Avantageusement on réalise ainsi un système comprenant les 4 transformées suivantes :
T0 = AvOxAhO = AxA
Tl = AvOxAhl = AxD
T2 = AvlxAhO = DxA
T3 = AvlxAhl = DxD Ce système ne nécessite le stockage que de la sous-transformée A, ce qui représente Mh2 coefficients, alors que l'art antérieur en a besoin de 8*Mh2.
Si, en outre, la transformée noyau ne comprend que Mh' < Mh lignes de coefficients non nuls, on n'a besoin que de stocker M'2 coefficients.
Selon un autre mode de réalisation de l'invention, la pluralité de transformées comprend : - une première sous transformée verticale AvO = A de taille Mv*Mv qui utilise à l'identique les coefficients d'une première sous-transformée noyau K de taille Mv'xMv avec Mv' inférieur à Mv;
- une deuxième sous-transformée verticale Avl = C qui utilise les coefficients de la première sous-transformée noyau K avec renversement de ses lignes; - une première sous transformée horizontale AhO = B de taille Mh*Mh qui utilise à l'identique les coefficients d'une deuxième sous-transformée noyau K' de taille Mh'xMh avec Mh' inférieur à Mh;
- une deuxième sous-transformée horizontale Ahl = D qui utilise les coefficients de la deuxième sous-transformée noyau K avec renversement de ses lignes. Avantageusement, on réalise un système comprenant les 4 transformées suivantes :
T0 = AvOxAhO = AxB
Tl = AvOxAhl = AxD
T2 = AvlxAhO = CxB T3 = AvlxAhl = CxD
Le fait d'utiliser deux noyaux permet de s'adapter au cas où le bloc n'est pas carré. Cela permet aussi s'adapter à des propriétés statistiques distinctes entre lignes et colonnes.
L'invention concerne également un dispositif adapté pour mettre en œuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation définis ci-dessus. Ce dispositif pourra bien sûr comporter les différentes caractéristiques relatives au procédé selon l'invention. Ainsi, les caractéristiques et avantages de ce dispositif sont les mêmes que ceux du procédé de décodage, et ne sont pas détaillés plus amplement.
Selon un mode particulier de réalisation de l'invention, un tel dispositif est compris dans un équipement terminal.
L'invention concerne également un dispositif adapté pour mettre en œuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation définis ci-dessus. Ce dispositif pourra bien sûr comporter les différentes caractéristiques relatives au procédé selon l'invention. Ainsi, les caractéristiques et avantages de ce dispositif sont les mêmes que ceux du procédé de codage, et ne sont pas détaillés plus amplement.
Selon un mode particulier de réalisation de l'invention, un tel dispositif est compris dans un équipement terminal.
L'invention concerne aussi un équipement terminal d'utilisateur comprenant un dispositif de décodage d'au moins une image et/ou un dispositif de codage d'au moins une image selon l'invention.
L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé de codage d'au moins une image tel que décrit précédemment, lorsque ce programme est exécuté par un processeur.
L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé de décodage d'au moins une image tel que décrit précédemment, lorsque ce programme est exécuté par un processeur.
Ces programmes peuvent utiliser n'importe quel langage de programmation. Ils peuvent être téléchargés depuis un réseau de communication et/ou enregistrés sur un support lisible par ordinateur.
L'invention se rapporte enfin à des supports d'enregistrement, lisibles par un processeur, intégrés ou non au dispositif de codage respectivement de décodage d'au moins une image selon l'invention, éventuellement amovible, mémorisant un programme d'ordinateur mettant en œuvre un procédé de codage respectivement de décodage, tel que décrit précédemment.
6. Liste des figures
D'autres avantages et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier de l'invention, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : la figure 1 illustre de façon schématique un bloc x rectangulaire à traiter ; les figures 2A et 2B illustrent de façon schématique les matrices d'une sous-transformée verticale et d'une sous-transformée horizontale applicables au bloc x ; la figure 3 illustre de façon schématique la transformation d'une ligne du bloc x par la sous- transformée horizontale Ah ; la figure 4 illustre de façon schématique une sous-transformée horizontale A formée à partir d'une sous-transformée noyau K comprenant un nombre inférieur de lignes ; la figure 5 présente un exemple de sous-transformée horizontale A et un exemple de sous- transformée horizontale D déduite de la sous-transformée A selon l'invention ; la figure 6 illustre de façon schématique la transformation d'une ligne du bloc x par une sous-transformée horizontale formée à partir d'un noyau comprenant un nombre inférieur de lignes ; la figure 7 présente un exemple numérique de sous-transformée horizontale A ; la figure 8 présente un exemple numérique de sous-transformée horizontale D déduite de A par une opération de permutation des coefficients au signe près selon l'invention ; la figure 9 présente un exemple numérique de noyau K comprenant un nombre M' de lignes inférieur au nombre de lignes du bloc courant ; la figure 10 présente un exemple numérique de noyau f(K) déduit de K par une opération de sous-échantillonnage à partir du noyau K selon l'invention ;
la figure 11 présente un exemple numérique de noyau déduit de K par un opérateur de renversement des lignes appliqué sur chacune des lignes du noyau K ; la figure 12 présente un exemple numérique de noyau déduit de K par un opérateur de renversement des lignes avec échange de signes effectué sur chacune des lignes du noyau K ; la figure 13 compare les courbes de performances d'un dispositif de codage à compétition de transformées selon l'invention et selon l'art antérieur ; la figure 14 décrit les étapes d'un procédé de codage d'une image selon un mode de réalisation de l'invention ; la figure 15 décrit les étapes d'un procédé de décodage d'une image selon l'invention ; la figure 16 illustre de façon schématique un exemple de structure matérielle d'un dispositif de codage l'invention ; et la figure 17 illustre de façon schématique un exemple de structure matérielle d'un dispositif de décodage l'invention.
7. Description d'un mode de réalisation particulier de l'invention
Le principe général de l'invention repose sur le stockage en mémoire des coefficients d'une sous-transformée noyau et sur l'utilisation des coefficients de ce noyau pour appliquer au moins deux sous-transformées distinctes à un bloc à coder ou décoder.
L'invention s'applique aussi bien au codage qu'au décodage d'une séquence d'images dans un contexte de compétition de transformées. Dans la suite de la description, on considère une pluralité de transformées Ti à TN, mises en compétition.
On considère que chaque transformation Tn est composée de deux sous-transformations, verticale et horizontale, nommées Av,n et Ah,n avec n entier compris entre 0 et N-l .Av,n agit sur les colonnes et Ah,n sur les lignes d'un blocs à transformer x. Dans la suite de la description, on considère de façon classique que le bloc x est un bloc résiduel, issu de la différence entre le bloc courant et sa prédiction, mais l'invention n'est pas limitée à ce cas particulier et concerne tout type de bloc.
On désigne par Xn le bloc transformé résultant de la transformation par Tn.
Xn s'exprime comme suit : Xn Av,n*(Ah,n *Xt)t (i)
Où ()' est l'opérateur de transposition matricielle, * est le signe de multiplication de matrices.
Pour chaque transformée Tn, l'ordre d'invocation des sous-transformées peut être inversé, par exemple :
Xn = (Ah,n*(Av,n *X) (2)
La sous-transformée verticale Av,n peut être représentée sous la forme d'une matrice de taille Mv lignes et Mv colonnes, telle qu'illustrée par la Figure 2A.
La sous-transformée horizontale Ah,n peut être représentée sous une forme d'une matrice de taille Mh lignes et Mh colonnes, telle qu'illustrée par la Figure 2B.
Par exemple le résultat de l'application de la sous-transformée horizontale Ah,n sur une ligne I (composée de pixels lo, ..., lMh-i) de taille Mv du bloc résiduel x peut être exprimé sous la forme du produit matriciel suivant :
Ln'= (Ah,n * I') (3)
On obtient une ligne transformée L, comme illustré par la Figure 3.
Chaque sous-transformée peut également être implémentée sous forme d'un opérateur linéaire de façon équivalente, ou chaque valeur k (k=0,...Mv-i) du vecteur Ln résultant est calculée sous la forme suivante :
Ln,k = ah,n,k,0 * Ιθ + ah,n,k,l * Il + ah,n,k,2 * +■■■ +ah,n,k,Mh-l * I Mh-1 (4)
Si l'implémentation est réalisée en virgule fixe, des opérateurs de shift et de troncation sont ajoutés pour limiter la dynamique de sortie. Par exemple, l'expression précédente prend alors la forme :
Ln,k = (ah,n,k,o * lo + ah,n,k,i * k + ah,n,k,2 * + ... +ah,n,k,Mh-i * I Mh-i + offset )> > Nbit (5) Dans ce cas, le terme offset représente une valeur entière, par exemple offset=2Nbit"1, Nbit est lié à la précision binaire souhaitée.
Selon l'invention, on considère au moins une sous-transformée K, dite noyau, dont on stocke en mémoire les coefficients et on utilise les coefficients de ce noyau pour réaliser au moins deux sous- transformées distinctes, sans nécessité de stocker en mémoire des coefficients supplémentaires.
Il en résulte que selon l'invention, pour appliquer la sous-transformée Ah,n ou Αν,η, il est nécessaire de lire les coefficients de la sous-transformée noyau en mémoire et de les utiliser directement pour calculer le résultat de la transformation du bloc par la sous-transformée Ah,n ou Αν,η.
Selon l'invention cette utilisation peut comprendre une modification de la position et/ou du signe d'au moins un coefficient de la sous-transformée noyau, sans changement de sa valeur absolue.
On comprend qu'il n'est pas nécessaire de passer par une étape de stockage des coefficients de la sous-transformée déduite du noyau pour l'appliquer au bloc courant.
Dans le cas où le bloc x est rectangulaire avec Mh différent de Mv, on peut considérer une sous- transformée noyau verticale Kv et une sous-transformée noyau horizontale Kh distinctes. Avantageusement, Kh peut être déduite de Kv ou l'inverse.
On peut donc déduire plusieurs sous-transformées distinctes à partir de la sous-transformée noyau, tant que cette déduction ne nécessite pas la lecture de coefficients supplémentaires en mémoire, ni de transformation de la valeur absolue des coefficients du noyau par calcul.
Par exemple, on déduit simplement une première sous-transformée A du noyau K en appliquant tous les coefficients de K aux mêmes éléments du bloc. A ou une partie de A est identique au noyau K, selon les dimensions de K par rapport à la sous-transformée A.
Selon une première option, K et A ont les mêmes dimensions. On a donc A = K.
Selon une deuxième option, K comprend un nombre de lignes M' inférieur au nombre de lignes M de A. On réalise alors la transformation par A en appliquant les coefficients des M' premières lignes de K au bloc. Cela revient à construire la sous-transformée illustrée par la Figure 4 pour la sous- transformée horizontale Ah,n.
On déduit en outre une deuxième sous-transformée D de A, par permutation ou changement de position des coefficients de A. Selon l'invention, D s'écrit sous la forme D=f(A), avec f opérateur de modification. D dépend uniquement de A et s'écrit sous la forme d'une permutation des valeurs de la matrice A. Ses coefficients sont donc utilisés sans modification, mais à des éléments différents du bloc, c'est-à-dire positionnés différemment.
Un opérateur f selon l'invention peut appartenir au groupe comprenant :
1. Une inversion des positions des coefficients de chacune des lignes, comme présenté ci- dessous les indices de la matrice d(A) sont inversés sur chacune des lignes par rapport à la matrice A. En relation avec la Figure 5, on voit que le second indice est inversé suivant la ligne ;
2. Un changement de signe sur les lignes ;
3. Une combinaison des 2 premiers points, qu'on appelle « permutation au signe près ».
En permettant d'appliquer plusieurs sous-transformations distinctes à partir d'un même noyau, l'invention économise de l'espace mémoire.
En effet, considérons le cas d'une transformée T composée d'une sous-transformée horizontale de dimensions Mh*Mh et d'une sous-transformée verticale de dimensions Mv*Mv. Son utilisation nécessite le stockage de Mh*Mh + Mv*Mv coefficients.
Par exemple, dans le cas d'une compétition avec N=3 transformées et pour des blocs de taille 8x4, un codeur ou un décodeur selon l'art antérieur a besoin de stocker 3*(64+16) = 240 coefficients.
Avec l'invention, un noyau K permet de déduire au moins une sous-transformée Ah et une sous- transformée Dh = f(Ah) d'un même noyau K. Supposons que ce noyau K soit de taille Mh*Mh. On économise alors le stockage d'au moins 64 coefficients.
On considère maintenant la variante selon laquelle le noyau est de taille Mh'*Mh avec Mh'<Mh.
La sous-transformation Ah présente, sous sa forme matricielle, un ensemble de lignes (Mh-Mh'^l) ne contenant que des zéros. Dans ce cas, Mh-M'h lignes de Ah sont nulles et M'h lignes ne sont pas nulles.
Dans ce cas, les vecteurs transformés présenteront des composantes à zéro, aux positions où des lignes de matrices de sous-transformées sont à zéro, comme illustré par la Figure 6.
Le noyau K de la transformation ne requiert le stockage que de Mh*M'h coefficients. En outre, seuls M'h coefficients de Ln seront calcu lées, les Mh-M'h suivants sont nuls. L'application de la sous-transformée Ah se restreint donc au calcul de M'h coefficients fréquentiels, les Mh-M'h autres étant nuls par construction.
On économise en plus des ressources de calcul.
L'inventeur a remarqué que l'utilisation d'u ne sous-transformée Ah limitée à un noyau K n'impacte pas significativement les performances de codage : cela est dû aux phénomènes suivants :
• Les coefficients les plus porteurs d'information en codage vidéo sont les coefficients dits de basses fréquences, c'est-à-dire correspondant à ceux issus des premières lignes des sous- transformations.
• Les coefficients portent les détails qui sont inutiles en codage à bas débit car souvent supprimé lors de la quantification, car ils sont négligeables par rapport aux premiers coefficients issus du calcul de la sous-transformée à partir de ses premières lignes.
• La compétition de transformées, et l'utilisation en appoint de la transformation To qui ne présente pas de lignes nulles, permet de limiter l'éventuelle perte engendrée par la restriction de Ah à un noyau réduit.
On décrit maintenant en détails plusieurs modes de réalisation de l'invention. 1 - premier mode de réalisation de l'invention
Dans cet exemple, on réalise un système de compétition de transformées à partir de trois transformées TO, Tl, T2.
On traite des blocs rectangulaires de dimensions Mh*Mv avec Mh=8 et Mv=4.
• La transforméeTo est composée d'une sous-transformée horizontale DCT de type 2 et d'une sous-transformée verticale DCT de type 2 (de tailles respectives 8x8 et 4x4).
• la transformée Ti est composée d'une sous-transformée horizontale Ah,i=A et d'une sous- transformée verticale Av,i=Bi.
• la transformation T2 est composée d'une sous-transformation Ah,2=D = f(A) et d'une seconde sous-transformation AV,2=B2.
Un exemple de sous-transformée noyau A est présenté en relation avec la Figure 7. Il s'agit d'une matrice préférablement orthogonale c'est-à-dire qu'elle permet de reconstruire à un facteur près, avec une erreur faible, les pixels, si on effectue la transformation d'un bloc suivie de la transformation inverse, qui est alors sa transposée.
Selon l'invention, la sous-transformée D s'écrit sous la forme D=f(A), où f est un des opérateurs décrits précédemment.
En relation avec la figure 8, on présente un exemple de sous-transformée D obtenue à partir des coefficients de la transformée A à l'aide de l'opérateur de type « permutation au signe près ».
Ainsi D =f(A) s'écrit dans cette réalisation, chacune des lignes de A a été permutée (permutation Dk,n=Ak,Mh-l-n pour chaque ligne k=0,...,Mh-l et colonne n=0,...,Mh-l) et le signe des coefficients certaines lignes a été inversé:
Dans cet exemple, seules les 3 sous-transformées distinctes A, Bl et B2 sont stockées en mémoire, en plus des sous-transformées de type DCT2. Comme précédemment décrit, la transformée peut être appliquée directement en lisant les coefficients stockés pour A et en les appliquant aux éléments du bloc à traiter, conformément à l'opérateur f, sans nécessiter de stocker ses propres coefficients. En termes de mémoire, comme vu auparavant, l'art antérieur impose dans cette configuration le stockage de 3x (64+ 16) = 240 coefficients pour T0, Tl et T2.
Avec l'invention, on a :
• 64+ 16 coefficients pour la transformée T0
• 64+ 16 coefficients pour la transformée Tl
· 0+ 16 coefficients seulement car la sous transformée Ah,2 utilise les coefficients de Ah,i sans modifications d'amplitude.
Au total on a donc 176 coefficients à stocker.
Selon une variante, la sous-transformée A est obtenue à partir d'un noyau K de dimensions Mh'xMh avec Mh'< Mh, comme illustré par la Figure 9. La sous-transformée A peut donc s'exprimer à partir de la matrice K du noyau de dimensions MhxM'h et d'une matrice nulle O de taille Mhx(Mh-M'h) qui ne contient que des zéros.
Dans l'exemple particulier du premier mode de réalisation, on considère un noyau K comprenant Mh' = 3 lignes. Les Mh' lignes de K correspondent au Mh' premières lignes de la matrice de la figure 7. Par conséquent, Ah,i = A ne nécessite que le stockage de 3x8 = 24 coefficients. Selon cette variante de réalisation, le stockage des coefficients requiert :
• T0 64+ 16 coefficients
• Tl 24+ 16 coefficients, elle s'appuie sur Ah qui présente des lignes nulles
• T2 0+ 16 coefficients seulement car la sous transformation Ah,2 utilise les coefficients de Ah,i sans modifications.
Au total on a donc 136 coefficients à stocker.
Ainsi, sans perte significative de qualité, on a réduit le montant de stockage nécessaire aux coefficients de 240 à 136.
Ceci présente un avantage significatif même si le nombre de coefficients total à stocker pourrait sembler faible. En effet dans une réalisation matérielle d'un codeur/décodeur basée processeur, l'étape de transformation est très sollicitée, car tous les pixels codés sont transformés au décodeur par exemple. Les coefficients des transformations doivent être rapidement accessibles, ce qui impose l'usage de mémoires cache rapides mais coûteuses en termes d'investissement financier.
2- Deuxième mode de réalisation de l'invention
Dans un deuxième mode de réalisation de l'invention, on traite des blocs résiduels rectangulaires de 8x4 pixels, mais on porte à 5 le nombre de transformées :
• La transformée To est composée d'une DCT de type 2 pour les lignes et les colonnes (de tailles respectives 8x8 et 4x4).
• La transformée Ti est composée d'une sous-transformée horizontale Ah,i=A et d'u ne sous- transformée verticale Av,i=B.
• La transformée T2 est composée d'une sous-transformée horizontale Ah,2=f(A), avec f un premier opérateur, et d'une sous-transformée verticale AV,2=B.
• La transformée T3 est composée d'une sous-transformée horizontale Ah,3=A et d'u ne sous- transformée verticale Av,3=g(B), avec g un deuxième opérateur.
• La transformée T4 est composée d'une sous-transformée horizontale Ah,4=f(A) et d'une sous- transformée verticale Av,4=g(B).
Comme dans le premier mode de réalisation f() et g() sont par exemple des opérateurs de permutation au signe près opérant ligne par ligne.
Dans ce cas, le stockage nécessaire à la transformation d'un bloc résiduel est le suivant : • 64+ 16 coefficients pour la transformée T0 ;
• 64+ 16 coefficients pour la transformée Tl ;
• 0+0 coefficients pour la transformée T2, les deux sous-transformées Av,2 et Ah, 2 se déduisent de Av, l et Ah,l ;
· 0+0 coefficients pour la transformée T3, les deux sous-transformées Av,3 et Ah, 3 se déduisant de Av, l et Ah,l ;
• 0+0 coefficients pour la transformée T4, les deux sous-transformées Av,4 et Ah,4 se déduisant de Av, l et Ah,l ;
Ce qui représente un total de 160 coefficients à stocker, contre 5*(64+ 16) = 400 coefficients pour un stockage exhaustif selon l'art antérieur.
Selon une variante, la sous-transformée Ah,l est restreinte au noyau Kl utilisé dans le premier mode de réalisation, si bien que le nombre de coefficients à stocker devient :
• 64+ 16 coefficients pour la transformée T0 ;
• 24+ 16 coefficients pour la transformée Tl ;
· 0 coefficients pour les transformées T2 à T5
Le total de coefficients à stocker atteint 120, ce qui est notoirement plus faible que l'art antérieur.
On notera que la sous-transformée B de dimensions Mv*Mv peut également se présenter sous la forme d'un noyau K2 de dimensions inférieures à celles de B. Dans une réalisation particulière, B s'écrit sous la forme illustrée par la Figure 10. Il comprend Mv' lignes non nulles, avec Mv' = 2. Par exemple, le noyau K2 est constitué des deux premières lignes, qui sont prélevés du noyau K de A. Ce prélèvement est réalisé par sous-échantillonnage de K (une colonne sur 2 est prélevée en partant de la première et une ligne sur deux en commençant par la première ligne).
Dans ce mode le nombre de coefficients à mémoriser devient :
• TO 64+ 16 coefficients
· Tl 24+0 coefficients, car les coefficients de B sont contenus dans A.
• et reste nul pour T2 à T5 comme pour le cas précédent.
Ce qui au total revient à un total de 104 coefficients à stocker, ce qui est notoirement plus faible que l'art antérieur.
3- Troisième mode de réalisation de l'invention Dans ce mode, les transformées se composent de la façon suivante :
• La transformée To est composée d'une DCT de type 2 pour les lignes et les colonnes (de tailles respectives 8x8 et 4x4) ;
• La transformée Ti est composée d'une sous-transformée Ah,i =A et d'une seconde sous- transformée Av,i = B.
• La transformée T2 est composée d'une sous-transformée Ah,2=fi(A) et d'une seconde sous- transformée AV,2=B.
• La transformée T3 est composée d'une sous-transformée et d'une seconde sous- transformée Av 3=B.
A est construite à partir du noyau K comprenant par exemple Mh= 8 colonnes et Mh' = 3 lignes comme illustré par la Figure 9 (déjà décrite). fl() est un opérateur de renversement des coefficients effectué sur chacune des lignes du noyau K. Le résultat fl(K) obtenu se présente sous la forme illustrée par la Figure 11. f2() est un opérateur de retournement avec échange de signe de certaines des lignes du noyau K. Dans cet exemple, il est réalisé sur la deuxième ligne. Le résultat f2(K) prend alors la forme illustrée par la Figure 12.
Dans ce mode le nombre de coefficients à mémoriser devient :
• 64+ 16 coefficients pour la transformée TO ;
· 64+ 16 coefficients pour la transformée Tl ;
• 0+0 coefficients pour la transformée T2 ;
• 0+0 coefficients pour la transformée T3 ;
Ce qui fait un total de 160 coefficients.
4- quatrième mode de réalisation Dans ce mode de réalisation, on considère des blocs carrés, par exemple de dimensions 8 par 8 pixels. Bien sûr, d'autres tailles sont envisageables.
On considère les 5 transformations suivantes :
• La transformée To est composée d'une DCT de type 2 pour les lignes et les colonnes (de taille respective 8). • La transformée Ti est composée d'une sous-transformée horizontale Ah,i=A et d'u ne sous- transformée verticale Av,i=A. A est une sous-transformée noyau de taille 8x8.
• La transformation T2 est composée d'une sous-transformée horizontale Ah,2=f(A) et d'une sous-transformée verticale AV,2=A.
« La transformation T3 est composée d'une sous-transformée horizontale Ah,3=A et d'une sous- transformée verticale Av,3=f(A).
• La transformation T4 est composée d'une sous-transformée horizontale Ah,4=f(A) et d'une sous-transformée verticale Av,4=f(A).
Conformément au premier mode de réalisation f() est une fonction de permutation opérant ligne par ligne.
Dans ce cas, le stockage nécessaire est le suivant :
• 64 coefficients (DCT2) pour la transformée T0 ;
• 64 coefficients (A) pour la transformée Tl ;
· 0 coefficient pour la transformée T3, les deux sous-transformées Av,2 et Ah, 2 se déduisant de Av,l et Ah,l ;
• 0 coefficient pour la transformée T4, les deux sous-transformées Av,3 et Ah, 3 se déduisant de Av,l et Ah,l ;
• 0 coefficient pour la transformée T5, les deux sous-transformées Av,4 et Ah, 4 se déduisant de Av,l et Ah,l ;
Ce qui représente un total de 128 coefficients à stocker, contre 5*(64+64)=640 coefficients pour un stockage exhaustif selon l'art antérieur.
Selon une variante de ce mode de réalisation aussi, on obtient la sous transformée A à partir d'un noyau K de dimensions inférieures, par exemple celui utilisé dans le premier mode de réalisation et qui comprend 3 lignes. Les coefficients à stocker se limitent donc dans ce cas à ceux des 3 lignes du noyau, soit à 24 coefficients. Ainsi au total on ne stocke que 64+24=88 coefficients.
5 - autres alternatives de réalisation de l'invention
D'autres modes de réalisation sont obtenus en combinant les sous-transformées utilisées dans les modes précédents, pour former de nouvelles transformées. Par exemple, on forme une transformée à partir d'une DCT2 horizontale respectivement verticale et d'une sous-transformée égale à A ou déduite de A par un opérateur f vertical respectivement horizontal . On décrit ici un exemple particulier :
• La transformation To est composée d'une DCT de type 2 pour les lignes et les colonnes (de taille respective 8).
• La transformée Ti est composée d'une sous-transformée horizontale Ah,i =A et d'u ne sous- transformation Av,i =A. A est une sous-transformée noyau de taille 8x8.
• La transformée T2 est composée d'une sous-transformée horizontale Ah,2=f(A) et d'une sous- transformée verticale AV,2=A.
• La transformée T3 est composée d'une sous-transformée Ah,3=DCT2 et d'une seconde sous- transformée Av,3=f(A) .
• La transformée T4 est composée d'une sous-transformée horizontale Ah,4=DCT2 et d'une sous-transformée verticale Av,4=f(A) .
On peut aussi recourir à un nombre plus élevé de transformées. Dans l'exemple ci-dessous, on en compte 8 :
• La transformée To est composée d'une sous-transformée horizontale Ah,o=A et d'u ne sous- transformée verticale Av,o=A.
• La transformée Ti est composée d'une sous-transformée horizontale Ah,i =A et d'u ne sous- transformée verticale Av,i=f(A)
• La transformée T2 est composée d'une sous-transformée horizontale Ah,2=B et d'u ne sous- transformée verticale AV,2=A.
• La transformée T3 est composée d'une sous-transformée horizontale Ah,3=B et d'u ne sous- transformée verticale Av,3=f(A) .
• La transformée T4 est composée d'une sous-transformée horizontale Ah,4=f(A) et d'une sous- transformée verticale AV,4=A.
• La transformée T5 est composée d'une sous-transformée horizontale Ah,s=f(A) et d'une sous- transformée verticale Av,s=f(A) .
• La transformée Ύ& est composée d'une sous-transformée horizontale Ah,6=f(B) et d'une sous- transformée verticale AV,6=A.
• La transformée T7 est composée d'une sous-transformée horizontale Ah,7=f(B) et d'une sous- transformée verticale Av,7=f(A) . On obtient ainsi un système à 8 transformées qui nécessite le stockage de deux sous-transformées (A et B, avec A≠B). Les sous-transformées peuvent s'exprimer, l'une ou l'autre ou les deux, sous forme d'un noyau comme vu précédemment.
En relation avec la figure 13, on illustre T'impact de l'invention sur les performances de codage dans les conditions des modes de réalisation présentés précédemment dans les sections 4 et 5. Elle présente deux courbes d'une mesure d'un critère débit-distorsion (pour « Rate-Distortion », en anglais) en fonction du nombre de transformées en compétition (égal à DCT II + 4 ou DCT II +8). Les transformées considérées sont de taille 8x8, et le stockage requis selon l'art antérieur est de 64 coefficients pour chaque direction (horizontale et verticale) et chaque transformée (5 transformations en compétition), ainsi 64*2*4=512 coefficients d'un octet. Selon l'invention, une seule transformation stockée permet d'engendrer 4 transformations (4ème mode de réalisation) cela ne nécessite que 64 coefficients stockés. On voit que la caractéristique avec l'invention utilise notoirement moins de mémoire, tout en préservant le compromis rate-distorsion qui n'est pas augmenté significativement.
En relation avec la Figure 14 on décrit maintenant un procédé de codage d'une image ou d'une séquence d'images numériques (II) avec I représentant un indice entier compris entre 1 et L non nul, mettant en œuvre l'invention.
Une image (II) est découpée en blocs rectangulaires Mh* Mv ou carrés lorsque Mh= Mv. Les blocs rectangulaires peuvent comporter un nombre différent de pixels que celui de l'exemple qui vient d'être décrit, par exemple 2, 4, 8, 16, 32 etc, voire un nombre impair.
En E0, on sélectionne un bloc C à traiter. En El, on détermine une prédiction P du bloc original C. Il s'agit d'un bloc de prédiction construit par des moyens connus, typiquement par compensation de mouvement (bloc issu d'une image de référence précédemment décodée) dans le cas d'une prédiction dite INTER, ou par prédiction INTRA (bloc construit à partir des pixels décodés immédiatement adjacents au bloc courant dans l'image ID). Les informations de prédiction liées à P sont codées dans le train binaire TB ou fichier compressé FC. On suppose ici qu'il y a J modes de prédiction possibles ΜΡι, M P2,..., M Pj, avec J entier non nul, et que le mode de prédiction choisi pour le bloc C est le mode MPj. Au cours d'une étape E2, un résidu original x est formé, par soustraction x = C-P de la prédiction P du bloc courant C au bloc courant C. Un exemple de bloc résiduel x de dimensions MhxMv d'une image à encoder, est illustré par la Figure 1.
Au cours d'une étape E3, le résidu x est transformé en un bloc résidu transformé, appelé RT, par une transformée. On précise que les étapes El et E2 sont optionnelles et que l'étape E3 peut aussi s'appliquer au bloc courant.
Dans un système de compétition de transformées, on a :
Une pluralité de transformations To, Ti et T2,..., TN-i, avec N entier supérieur ou égal à 2. Dans la suite de la description, on suppose que cette pluralité de transformées est définie selon l'invention, comme précédemment décrit ;
Ces transformées sont adaptées pour traiter des blocs rectangulaires au sens large (y compris carré donc) d'une taille définie de Mv par Mh pixels, avec Mv, Mh entiers non nuls, avec Mh colonnes et Mv lignes. Par exemple, on a Mh=8 et Mv=4.
En E30, on initialise l'indice n de transformées à zéro et on identifie la transformée Tn = TO en E31. En E32, on applique la transformée Tn obtenue au bloc résiduel x et on obtient le bloc transformé Xn. Les coefficients du bloc transformé sont stockés en mémoire.
Selon l'invention, deux cas sont possibles :
Les coefficients des sous-transformées horizontale et verticale qui composent la transformée Tn sont stockés en mémoire et le codeur y accède directement ; ou
- Les coefficients d'au moins une des sous-transformées horizontale et verticale qui composent la transformée Tn ne sont pas stockés en mémoire, mais sont obtenus à partir de ceux d'une sous-transformée noyau stockés en mémoire. L'application de la sous-transformée est réalisée par un opérateur f prédéterminé qui lit les coefficients de la transformée noyau, les modifie et les applique directement aux éléments du bloc comme précédemment décrit. Le bloc Xn est ensuite quantifié en E33 de façon classique avec une précision de quantification donnée, appelée par exemple QP (pour « Quantisation Parameter », en anglais) dans la norme HEVC, puis les valeurs quantifiées sont scannées dans un ordre prédéterminés de façon à constituer un vecteur monodimensionnel RQ[i], où l'indice i varie de 0 à MvxMh-l. L'indice i est appelé fréquence du coefficient RQ[i]. Classiquement, on scanne ces coefficients par ordre croissant de fréquence, par exemple selon un parcours en zigzag, qui est connu de la norme de codage d'image fixes JPEG. Le vecteur obtenu est ensuite codé en E34 sous forme classique à l'aide d'un code binaire de type CABAC tel que décrit dans D. Marpe, H . Schwarz, T. Wiegand, « Context-based adaptive binary arithmetic coding in the H .264/AVC video compression standard » IEEE Transactions on Circuits and Systems for Video Technology (Volume: 13 , Issue: 7 ), pages 620 - 636, July 2003 , sous la forme d'un flux de données codées STR.
En E35, on évalue les performances de la transformée TO sur le bloc résiduel x selon un critère débit-distorsion. Un coût R de codage binaire des coefficients de X0Q est évalué. Une quantification inverse est appliquée au bloc résidu transformé quantifié XOQ, la transformée inverse de TO lui est appliquée. On évalue les performances de la transformée selon une mesure de type RDO (pour « Rate Distortion Optimisation », en anglais) entre le bloc x' obtenu et le bloc résiduel x d'entrée, par exemple à l'aide d'une mesure de coût Lagrangien J = D + λ x R, où D est la distorsion mesurée sur le bloc x', R le débit généré lors du codage et λ le multiplicateur de Lagrange, dont la valeur est prédéterminé par exemple selon le débit considéré. Ce coût est stocké en mémoire.
En E36, on vérifie s'il reste des transformées à tester. Si n< N, alors on sélectionne la transformée suivante à tester, par exemple Tl . Les sous-étapes E31 à E37 sont répétées pour chaque transformée Tn de la pluralité de transformées en compétition.
Une fois que toutes les transformées ont été évaluées, on sélectionne en E38 celle qui a réalisé la meilleure performance. La transformation choisie est indiquée au décodeur sous la forme d'un identifiant, par exemple un indice porté par un code binaire communément porté par un code CABAC. On désigne par Tno la transformée sélectionnée.
En E37, on obtient les coefficients quantifiés codés correspondant à la transformée Tno, par exemple par lecture de la mémoire où ils ont été stockés ou bien en appliquant de nouveau la transformée TnO au bloc résiduel x et appliquant la quantification pour obtenir ResTQ.
A l'issue de l'étape E4, on code pour le bloc courant C un ensemble d'éléments de syntaxe, parmi lesquels on compte les coefficients résidus transformés quantifiés RQ[i], les signes de ces coefficients, le mode de prédiction M Pk etc.
Typiquement on a recours à un codage entropique qui consiste à exploiter la distribution des éléments de syntaxe pour en réduire le débit.
Le train binaire produit STR peut être directement présenté à un décodeur ou bien lui être transmis via un réseau de télécommunications sous forme de flux ou de fichier. Une fois reçu, il est traité par le décodeur, qui met en œuvre un procédé de décodage d'une séquence d'images selon l'invention.
En relation avec la figure 15, on décrit maintenant les étapes d'un procédé de décodage d'un train binaire STR représentatif d'une séquence d'images Ii, , h à décoder, selon l'invention.
Par exemple, le flux de données STR a été généré via le procédé de codage présenté en relation avec la Figure 14. Le flux de données STR est fourni en entrée d'un dispositif de décodage DEC, qui sera décrit en relation avec la Figure 17.
Le décodage du flux se fait image par image. Pour chaque image à décoder, le procédé de décodage réalise le décodage de l'image bloc par bloc. On considère une image courant le à décoder.
Lors d'une étape DO, on sélectionne un bloc à traiter de l'image courante le, dit bloc courant.
En Dl, les données du train binaire STR correspondant au bloc Bc sont décodées par décodage entropique pour fournir des éléments de syntaxe relatifs au codage du bloc courant Bc. Les éléments de syntaxe décodés comprennent notamment une information de mode de prédiction identifiant pour le bloc courant Bc, un mode de prédiction parmi une pluralité de modes de prédiction prédéterminés, un groupe de coefficients quantifiées d'un résidu Res'ïQ d'une prédiction de ce bloc courant Bc et un identifiant Tr-ID d'une transformée à appliquer au bloc résidu.
En D2, on parcourt les coefficients selon un ordre inverse de celui appliqué au codeur et on les déquantifie en D3, c'est-à-dire qu'on leur applique un facteur de recadrage (inverse scaling) par exemple selon HEVC. Les valeurs obtenues sont agencées pour former un bloc de coefficients Xc.
En D4, on identifie la transformée TnO' à appliquer au bloc résidu cou rant à partir de l'index Tr-ID décodé.
En D5, on obtient la transformée identifiée. Selon l'invention, deux cas sont possibles :
Les coefficients des sous-transformées horizontale Ah, nO et verticale Αν,ηΟ qui composent la transformée TnO' sont stockés en mémoire et le décodeur y accède directement ; ou Les coefficients des sous-transformées qui composent la transformée TnO' sont obtenus par application d'un opérateur f aux coefficients d'une transformée A, B ou d'un noyau K stocké en mémoire, comme précédemment décrit.
En D6, on applique la transformée identifiée en combinaison de sous transformées
obtenue comme suit : Χ= = Α'ν,η0*(Α' ,η0 *Xc')'
et on obtient le bloc de pixels résidu ou bloc résidu spatial xc.
En D7, le bloc courant est prédit selon le mode de prédiction décodé en Dl . La prédiction peut se baser, dans un mode dit inter, sur des images de référence précédemment décodées et reconstruites (IRO, IRI, ...), ou, dans un mode dit intra, à partir de blocs déjà décodés par exemple dans la même image. Un bloc prédit P' est obtenu .
En D8, le bloc prédit P' est additionné au bloc résidu spatial xc afin d'obtenir le bloc reconstruit local Rec qui peut être filtré pou r supprimer les effets de blocs. Il est stocké dans une mémoire M l afin d'être utilisé pour la prédiction des prochains blocs. Le bloc Rec' reconstruit est ajouté à l'image courante ICR.
Lors d'une étape D9, il est vérifié si tous les blocs de l'image à décoder ont été décodés et reconstruits. Dans le cas négatif, un nouveau bloc courant est identifié en DO selon un parcours prédéterminé de l'image à décoder et le procédé de décodage reprend à l'étape Dl pour ce bloc.
Dans le cas où tous les blocs de l'image ont été traités, l'image IcR est filtrée en D10 et sauvegardée dans u ne liste d'images de référence I1R, I2R,... pour être utilisée ultérieurement comme référence lors du décodage des images suivantes de la séquence d'images.
On présente maintenant des performances obtenues par l'invention. On se place pour se faire dans les conditions du quatrième 4ième mode de réalisation.
Pour rappel, selon ce mode, 4 transformées Tl, T2, T3 et T4 sont formées à partir d'une même transformée A et sont mises en compétition avec une autre transformée TO qui est une DCT2 pour les directions verticale et horizontale.
Pour comparer les performances de l'invention à une solution existante, le logiciel de référence de la norme HEVC, a été modifié pour mettre en compétition de 5 transformations conformément à l'art antérieur (dans cet exemple, les transformées 4x4, 8x8, 16x16 et 32x32 pour les blocs carrés) comme présenté dans la publication d'Arrufat citée plus haut.
L'espace de stockage requis pour chacune des solutions est détaillé dans la table 1. Stockage 2 Pour N=4
Stockage d'une Matrices (H+V) transformations Stockage requis
Mv=Mh
Matrice selon l'art N(H+V) selon Selon Invention
antérieur l'art antérieur
4 16 32 128 16
8 64 128 512 64
16 256 512 2048 256
32 1024 2048 8192 1024
TOTAL 10880 octets 1360 octets
Table 1
Selon l'invention on ne stocke qu'une seule matrice pour chaque taille de bloc. Cela nécessite 1360 octets contre 10880 octets pour l'art antérieur.
Pour apprécier les performances en termes de compression on mesure l'écart en débit entre la solution de l'invention et celle de l'art antérieur. Pou r ce faire on code 8 séquences et on apprécie l'écart en débit obtenu pour une qualité identique par exemple selon la métrique BDRate. Ces résultats sont présentés dans la table 2 ci-dessous :
Ecart en débit
Séquence
ClassC-S01 0.09%
ClassC-S02 -0.04%
ClassC-S03 -0.10%
ClassC-S04 -0.10%
ClassD-SOl 0.04%
ClassD-S02 -0.16%
ClassD-S03 -0.18%
ClassD-S04 0.00%
Moyenne -0.06%
Table 2
On constate qu'une infime perte de débit est à déplorer : en moyenne 0.06% de débit supplémentaire est nécessaire à l'invention. Cette perte en débit est négligeable au vu de l'économie de stockage réalisée (1360 octets contre 10880).
On comprend qu'avec l'invention on réalise un gain en stockage important pour les coefficients des transformées, sans altérer significativement les performances de codage. On notera que l'invention qui vient d'être décrite, peut être mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, les termes « module » et « entité », utilisés dans ce document, peuvent correspondre soit à un composant logiciel, soit à un composant matériel, soit encore à un ensemble de composants matériels et/ou logiciels, aptes à mettre en œuvre la ou les fonctions décrites pour le module ou l'entité concerné(e).
En relation avec la figure 16, on présente maintenant un exemple de structure simplifiée d'un dispositif 100 de codage d'une image numérique selon l'invention. Le dispositif 100 met en œuvre le procédé de codage selon l'invention qui vient d'être décrit en relation avec la Figure 14.
Par exemple, le dispositif 100 comprend une unité de traitement 110, équipée d'un processeur μΐ, et pilotée par un programme d'ordinateur Pgl 120, stocké dans une mémoire 130 et mettant en œuvre le procédé de selon l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur Pgi 120 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 110. Le processeur de l'unité de traitement 110 met en œuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 120.
Dans un premier exemple de réalisation de l'invention, le dispositif 200 comprend une machine de calcul dédiée à ou configurée pour :
- Obtenir une pluralité de transformées, une transformée s'exprimant sous la forme d'une sous-transformée verticale et d'une sous-transformée horizontale ;
- Sélectionner une transformée parmi la pluralité de transformées ;
- Transformer le bloc courant en un bloc transformé, à l'aide de la transformée sélectionnée ;
- Encoder le bloc transformé destiné à produire des données codées représentatives du bloc transformé ;
- Insérer les données codées dans un train binaire représentatif de l'image codée ;
Dans un deuxième exemple de réalisation de l'invention, le dispositif 100 comprend au moins une unité d'obtention d'une pluralité de transformées, une transformée s'exprimant sous la forme d'une sous-transformée verticale et d'une sous-transformée horizontale, une unité de sélection d'une transformée parmi la pluralité de transformées, une u nité de transformation du bloc courant en un bloc transformé, à l'aide de la transformée sélectionnée, une unité d'encodage du bloc transformé destiné à produire des données codées représentatives du bloc transformé et une unité d'insertion des données codées dans un train binaire représentatif de l'image codée.
Dans les deux exemples de réalisation,, la transformation selon l'invention comprend, pour au moins une transformée de la plu ralité de transformées et pour l'application d'au moins une sous- transformée de la transformée sélectionnée :
la lecture dans une mémoire des coefficients d'au moins une sous-transformée distincte, dite transformée noyau, appartenant à la pluralité de transformées, et l'utilisation modifiée des coefficients lus, leurs valeurs absolues étant conservées.
Ces unités sont pilotées par le processeur μΐ de l'unité de traitement 110.
De façon avantageuse, u n tel dispositif 100 peut être intégré à un terminal d'utilisateur TU. Le dispositif 100 est alors agencé pour coopérer au moins avec le module suivant du terminal TU : un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire TB ou le fichier compressé FC est transmis dans un réseau de télécommunications, par exemple un réseau filaire ou un réseau hertzien.
En relation avec la figure 17, on présente maintenant un exemple de structure simplifiée d'un dispositif 200 de décodage d'une séquence d'images selon l'invention. Le dispositif 200 met en œuvre le procédé de décodage selon l'invention qui vient d'être décrit dans ses différents modes de réalisation.
Par exemple, le dispositif 200 comprend une unité de traitement 210, équipée d'un processeur μ2, et pilotée par un programme d'ordinateur Pg2 220, stocké dans une mémoire 230 et mettant en œuvre le procédé de selon l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur Pgi 220 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 210. Le processeur de l'unité de traitement 210 met en œuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 220.
Dans un premier exemple de réalisation de l'invention, le dispositif 200 comprend une machine de calcul dédiée à ou configurée pour :
Décoder des coefficients du bloc courant à partir de données codées ; Décoder un index représentatif d'un identifiant d'une transformée parmi une pluralité de transformées, une transformée s'exprimant sous la forme d'une sous-transformée verticale de taille MvxMv et d'une sous-transformée horizontale de taille MhxMh ;
Obtenir la transformée identifiée dans la pluralité de transformées ;
Transformer les coefficients du bloc courant en un bloc décodé transformé, à partir de la transformée obtenue, par application successive de la sous-transformée verticale puis de la sous-transformée horizontale ou respectivement de la sous-transformée horizontale puis de la sous-transformée verticale ;et
Reconstruire l'image à partir du bloc décodé transformé.
Dans un deuxième exemple de réalisation de l'invention, le dispositif 200 comprend les unités suivantes :
Décodage des coefficients du bloc courant à partir de données codées ;
Décodage d'une information représentative d'un identifiant d'une transformée parmi une pluralité de transformées et identification de la transformée, une transformée s'exprimant sous la forme d'une sous-transformée verticale de taille MvxMv et d'une sous-transformée horizontale de taille MhxMh ;
Transformation des coefficients du bloc courant en un bloc décodé transformé, à partir de la transformée identifiée, par application successive de la sous-transformée verticale puis de la sous-transformée horizontale ou respectivement de la sous-transformée horizontale puis de la sous-transformée verticale ;
Reconstruction de l'image à partir du bloc décodé transformé ;
Dans les deux exemples de réalisation, la transformation selon l'invention comprend, pour au moins une transformée de la pluralité de transformées et pour l'application d'au moins une sous- transformée de la transformée identifiée :
la lecture dans une mémoire des coefficients d'au moins une sous-transformée distincte, dite transformée noyau, appartenant à la pluralité de transformées, et l'utilisation modifiée des coefficients lus, leurs valeurs absolues étant conservées. Le dispositif 200 comprend en outre une mémoire ou unité M2 de stockage des coefficients de la au moins une transformée noyau.
De façon avantageuse, le dispositif 200 peut être intégré à un terminal d'utilisateur TU. Il est alors agencé pour coopérer au moins avec les modules suivants du terminal TU : - un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire
TB ou le fichier compressé FC est reçu d'un réseau de télécommunications, par exemple un réseau filaire ou un réseau hertzien; un module d'affichage DISP des images décodées.
Grâce à ses bonnes performances, et notamment à l'économie de stockage qu'elle procure, l'invention qui vient d'être décrite dans ses différents modes de réalisation s'applique à tout schéma de compression vidéo par bloc. En particulier, les procédés de codage et de décodage décrits précédemment peuvent être intégrés dans des codeurs/décodeurs vidéo standards tels que H .266, HEVC/H .265, AVC/H.264 ou d'une future norme Post-HEVC, ou encore dans tout type de codeurs/décodeurs vidéo propriétaires. Les procédés de codage et de décodage selon l'invention s'appliquent également à tous types de codeurs/décodeurs d'images fixes.
Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement apportées par l'homme de l'art sans pour autant sortir du cadre de l'invention.

Claims

REVENDICATIONS
1. Procédé de décodage d'au moins une image numérique (Ij), à partir de données codées par un encodeur et représentatives de ladite image, ladite image (Ij) étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant (C), comprenant un nombre prédéterminé (Mv) de lignes et un nombre prédéterminé (Mh) de colonnes :
Décodage (Dl) des coefficients du bloc courant à partir de données codées ; Décodage d'un index représentatif d'un identifiant d'une transformée parmi une pluralité de transformées et identification de la transformée, une transformée s'exprimant sous la forme d'une sous-transformée verticale de taille Mv*Mv et d'une sous-transformée horizontale de taille Mh*Mh ;
Transformation (D5) du bloc courant en un bloc décodé transformé, à partir de la transformée obtenue, par application successive de la sous-transformée verticale puis de la sous-transformée horizontale ou respectivement de la sous-transformée horizontale puis de la sous-transformée verticale ;
Reconstruction (D8) de l'image à partir du bloc décodé transformé ;
caractérisé en ce que l'étape de transformation comprend, pour l'application d'au moins une sous-transformée de la transformée sélectionnée :
la lecture dans une mémoire des coefficients d'une sous-transformée distincte, dite transformée noyau, appartenant à la pluralité de transformées, la au moins une transformée noyau comprenant un nombre de lignes (Mh', M'v) de coefficients non nuls inférieur au nombre de lignes et/ou au nombre de colonnes du bloc courant ; et l'utilisation modifiée des coefficients lus, leurs valeurs absolues étant conservées, les coefficients lus étant appliqués aux Mh' premières lignes, respectivement Mv', premières colonnes du bloc courant, les Mh-M'h lignes respectivement Mv - Mv' colonnes suivantes du bloc transformé étant nulles par construction .
2. Procédé de codage d'au moins une image numérique, ladite image (Ij) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc courant, comprenant un nombre prédéterminé (Mv) de lignes et un nombre prédéterminé (Mh) de colonnes : - Sélection d'une transformée (E37) parmi une pluralité de transformées, une transformée s'exprimant sous la forme d'une sous-transformée verticale de taille Mv*Mv et d'une sous- transformée horizontale de taille Mh*Mh;
- Transformation (E382) du bloc courant en un bloc transformé, par la transformée sélectionnée ;
- Encodage (E39) du bloc transformé destiné à produire des données codées représentatives du bloc transformé ;
- Insertion des données codées dans un train binaire représentatif de l'image codée ;
caractérisé en ce que l'étape de transformation comprend, pour l'application d'au moins une sous- transformée de la transformée sélectionnée :
la lecture dans une mémoire des coefficients d'au moins une sous-transformée distincte, dite transformée noyau, appartenant à la pluralité de transformées, la au moins une transformée noyau comprenant un nombre de lignes (Μη', M'v) de coefficients non nuls inférieur au nombre de lignes et/ou au nombre de colonnes du bloc courant ; et l'utilisation modifiée des coefficients lus, leurs valeurs absolues étant conservées, les coefficients lus étant appliqués aux M h', respectivement Mv', premières lignes du bloc, les Mh-M'h lignes respectivement colonnes suivantes du bloc transformé étant nulles par construction.
3. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que l'utilisation modifiée des coefficients de la sous-transformée noyau comprend un renversement des lignes de la sous- transformée noyau .
Procédé selon l'une des revendications 1 à 3, caractérisé en ce que l'utilisation modifiée des coefficients de la sous-transformée noyau comprend au moins une permutation de deux coefficients et au moins un changement de signe d'un coefficient.
Procédé selon les revendications 3 et 4, caractérisé en ce que, le nombre de lignes du bloc courant étant égal au nombre de colonnes Mh=Mv, la pluralité de transformées comprend :
- une première sous transformée verticale AvO = A de taille Mv*Mv (=Mh*Mh) dont l'application utilise à l'identique les coefficients d'une première sous-transformée noyau K;
- une deuxième sous-transformée verticale Avl = D dont l'application utilise les coefficients de la première sous-transformée noyau avec renversement de ses lignes; - une première sous transformée horizontale AhO de taille Mh*Mh(=Mv*Mv) dont l'application utilise à l'identique les coefficients de la première sous-transformée noyau K ;
- une deuxième sous-transformée horizontale Ahl = D dont l'application utilise les coefficients de la première sous-transformée noyau avec renversement de ses lignes.
Procédé selon les revendications 3 et 4, caractérisé en ce que, la pluralité de transformées comprend :
- une première sous transformée verticale AvO = A de taille Mv*Mv dont l'application utilise à l'identique les coefficients d'une première sous-transformée noyau K de taille Mv'xMv avec Mv' inférieur à Mv;
- une deuxième sous-transformée verticale Avl = C dont l'application utilise les coefficients de la première sous-transformée noyau K avec renversement de ses lignes;
- une première sous transformée horizontale AhO = B de taille Mh*Mh dont l'application utilise à l'identique les coefficients d'une deuxième sous-transformée noyau K' de taille Mh'xMh avec Mh' inférieur à Mh;
- une deuxième sous-transformée horizontale Ahl = D dont l'application utilise les coefficients de la deuxième sous-transformée noyau K' avec renversement de ses lignes.
Dispositif (200) de décodage d'un flux de données codées représentatif d'au moins une image (Im), ladite image étant découpée en blocs, caractérisé en ce qu'il comprend une machine de calcul configurée pour ou dédiée à :
Pour un bloc courant, comprenant un nombre prédéterminé (Mv) de lignes et un nombre prédéterminé (Mh) de colonnes :
Décoder des coefficients du bloc courant à partir de données codées ;
Décoder un index représentatif d'un identifiant d'une transformée et identifier la transformée parmi une pluralité de transformées, une transformée s'exprimant sous la forme d'une sous-transformée verticale de taille Mv*Mv et d'une sous-transformée horizontale de taille Mh*Mh ;
Transformer le bloc courant en un bloc décodé transformé, à partir de la transformée identifiée, par application successive de la sous-transformée verticale puis de la sous- transformée horizontale ou respectivement de la sous-transformée horizontale puis de la sous-transformée verticale ; Reconstruire l'image à partir du bloc décodé transformé ;
caractérisé en ce que la transformation du bloc courant comprend, pour au moins une transformée de la pluralité de transformées et pour l'application d'au moins une sous- transformée de la transformée sélectionnée :
la lecture dans une mémoire des coefficients d'au moins une sous-transformée distincte, dite transformée noyau, appartenant à la pluralité de transformées, la au moins une transformée noyau comprenant un nombre de lignes (Mh', M'v) de coefficients non nuls inférieur au nombre de lignes et/ou au nombre de colonnes du bloc courant ; et l'utilisation modifiée des coefficients lus, leurs valeurs absolues étant conservées, les coefficients lus étant appliqués aux M h', respectivement Mv', premières lignes du bloc, les Mh-M'h lignes respectivement colonnes suivantes du bloc transformé étant nulles par construction.
Dispositif (100) de codage d'un flux de données représentatif d'au moins une image (Im), ladite image étant découpée en blocs, caractérisé en ce qu'il comprend une machine de calcul configurée pour ou dédiée à : pour un bloc courant, comprenant un nombre prédéterminé (Mv) de lignes et un nombre prédéterminé (Mh) de colonnes :
- Sélectionner une transformée parmi une pluralité de transformées, une transformée s'exprimant sous la forme d'une sous-transformée verticale de taille Mv*Mv et d'une sous- transformée horizontale de taille Mh*Mh;
- Transformer le bloc courant en un bloc transformé, à l'aide de la transformée sélectionnée;
- Encoder le bloc transformé sous la forme de données codées ;
- Insérer les données codées dans un train binaire représentatif de l'image codée ;
caractérisé en ce que la transformation du bloc courant comprend, pour au moins une transformée de la pluralité de transformées et pour l'application d'au moins une sous- transformée de la transformée sélectionnée :
la lecture dans une mémoire des coefficients d'au moins une sous-transformée distincte, dite transformée noyau, appartenant à la pluralité de transformées, la au moins une transformée noyau comprenant un nombre de lignes (Mh', M'v) de coefficients non nuls inférieur au nombre de lignes et/ou au nombre de colonnes du bloc courant ; et l'utilisation modifiée des coefficients lus, leurs valeurs absolues étant conservées les coefficients lus étant appliqués aux M h', respectivement Mv', premières lignes du bloc, les Mh-M'h lignes respectivement colonnes suivantes du bloc transformé étant nulles par construction.
Equipement terminal d'utilisateur (TU, TU') caractérisé en ce qu'il comprend un dispositif de décodage (200) d'au moins une image numérique selon la revendication 7 et/ou un dispositif de codage (100) d'au moins une image numérique selon la revendication 8.
10. Programme d'ordinateur (Pgl,Pg2) comprenant des instructions pour la mise en œuvre du procédé selon l'une des revendications 1 à 6, lorsqu'il est exécuté par un processeur.
11. Support d'enregistrement lisible par un ordinateur, sur lequel est enregistré un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon l'une des revendications 1 à 6.
EP18755720.2A 2017-09-22 2018-07-25 Procedes de codage et de decodage d'une image Pending EP3685283A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1758789A FR3071690B1 (fr) 2017-09-22 2017-09-22 Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes
PCT/EP2018/070123 WO2019057368A1 (fr) 2017-09-22 2018-07-25 Procedes de codage et de decodage d'une image

Publications (1)

Publication Number Publication Date
EP3685283A1 true EP3685283A1 (fr) 2020-07-29

Family

ID=60955170

Family Applications (1)

Application Number Title Priority Date Filing Date
EP18755720.2A Pending EP3685283A1 (fr) 2017-09-22 2018-07-25 Procedes de codage et de decodage d'une image

Country Status (4)

Country Link
US (2) US11159794B2 (fr)
EP (1) EP3685283A1 (fr)
FR (1) FR3071690B1 (fr)
WO (1) WO2019057368A1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3071690B1 (fr) * 2017-09-22 2022-09-30 Bcom Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes
CN114420066B (zh) * 2022-01-20 2023-04-25 海宁奕斯伟集成电路设计有限公司 图像处理方法、装置、电子设备及计算机可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10863200B2 (en) * 2014-07-25 2020-12-08 Intel Corporation Techniques for performing a forward transformation by a video encoder using a forward transform matrix
CN111226442B (zh) * 2017-08-04 2022-06-21 Lg电子株式会社 配置用于视频压缩的变换的方法及计算机可读存储介质
FR3071690B1 (fr) * 2017-09-22 2022-09-30 Bcom Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHEN J ET AL: "Algorithm description of Joint Exploration Test Model 7 (JEM7)", no. G1001_v1; JVET-G1001, 19 August 2017 (2017-08-19), pages 1 - 48, XP030150980, Retrieved from the Internet <URL:http://phenix.int-evry.fr/jvet/doc_end_user/documents/7_Torino/wg11/JVET-G1001-v1.zip JVET-G1001-v1.docx> [retrieved on 20170819] *

Also Published As

Publication number Publication date
WO2019057368A1 (fr) 2019-03-28
US20220030239A1 (en) 2022-01-27
US20210136375A1 (en) 2021-05-06
US11159794B2 (en) 2021-10-26
FR3071690A1 (fr) 2019-03-29
US11736694B2 (en) 2023-08-22
FR3071690B1 (fr) 2022-09-30

Similar Documents

Publication Publication Date Title
EP3061246B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
FR2932637A1 (fr) Procede et dispositif de codage d&#39;une sequence d&#39;images
WO2015055937A1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP3075155B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
WO2016124867A1 (fr) Procede de codage d&#39;une image numerique, procede de decodage, dispositifs, et programmes d&#39;ordinateurs associes
EP3449631B1 (fr) Procede de decodage d&#39;une image numerique, procede de codage, dispositifs, et programmes d&#39;ordinateurs associes
EP3685283A1 (fr) Procedes de codage et de decodage d&#39;une image
EP4277274A1 (fr) Procédés et appareils de codage et décodage en couches
EP3180914B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP3198876B1 (fr) Génération et codage d&#39;images intégrales résiduelles
WO2017037368A2 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
FR2927744A1 (fr) Procede et dispositif de filtrage d&#39;un signal numerique.
FR2956789A1 (fr) Procede et dispositif de traitement d&#39;une sequence video
EP3529987A1 (fr) Procédé de codage et de décodage de paramètres d&#39;image, dispositif de codage et de décodage de paramètres d&#39;image et programmes d&#39;ordinateur correspondants
FR3057130B1 (fr) Procede de codage d&#39;une image, procede de decodage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associes
EP3815369A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
FR3044507A1 (fr) Procede de codage et de decodage d&#39;images, dispositif de codage et de decodage d&#39;images et programmes d&#39;ordinateur correspondants
Švihálek Metody zpracování plenoptických obrazových dat
FR3083042A1 (fr) Procede de decodage d&#39;une image, procede de codage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associes
WO2018178342A1 (fr) Procede de decodage d&#39;au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d&#39;ordnateurs associes
FR3035761A1 (fr) Procede de codage et de decodage d&#39;images, dispositif de codage et de decodage d&#39;images et programmes d&#39;ordinateur correspondants
Švihálek Methods for plenoptic image data processing Metody zpracovánı plenoptických obrazových dat
EP3854088A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
WO2020058595A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
WO2009007603A2 (fr) Procedes et dispositifs de codage et de decodage d&#39;images numeriques tenant compte du type des blocs source, signal et produits programme d&#39;ordinateur correspondants

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20200131

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20210526

RAP3 Party data changed (applicant data changed or rights of an application transferred)

Owner name: FONDATION B-COM