PROCÉDÉ DE CODAGE ET DE DÉCODAGE D'IMAGES, DISPOSITIF DE CODAGE ET DE DECODAGE D'IMAGES ET PROGRAMMES METHOD FOR ENCODING AND DECODING IMAGES, DEVICE FOR ENCODING AND DECODING IMAGES AND PROGRAMS
D'ORDINATEUR CORRESPONDANTS Domaine de l'invention CORRESPONDING COMPUTER FIELD OF THE INVENTION
La présente invention se rapporte de manière générale au domaine du traitement d'images, et plus précisément au codage et au décodage d'images numériques et de séquences d'images numériques. The present invention relates generally to the field of image processing, and more specifically to the encoding and decoding of digital images and digital image sequences.
Le codage/décodage d'images numériques s'applique notamment à des images issues d'au moins une séquence vidéo comprenant : The encoding / decoding of digital images applies in particular to images from at least one video sequence comprising:
- des images issues d'une même caméra et se succédant temporellement (codage/décodage de type 2D), images coming from the same camera and succeeding each other temporally (coding / decoding of 2D type),
- des images issues de différentes caméras orientées selon des vues différentes (codage/décodage de type 3D), images from different cameras oriented according to different views (coding / decoding of 3D type),
- des composantes de texture et de profondeur correspondantes - corresponding texture and depth components
(codage/décodage de type 3D), (3D type encoding / decoding),
- etc... - etc ...
La présente invention s'applique de manière similaire au codage/décodage d'images de type 2D ou 3D. The present invention applies similarly to the coding / decoding of 2D or 3D type images.
L'invention peut notamment, mais non exclusivement, s'appliquer au codage vidéo mis en œuvre dans les codeurs vidéo actuels AVC et HEVC et leurs extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc), et au décodage correspondant. Art antérieur The invention may especially, but not exclusively, apply to video coding implemented in current AVC and HEVC video encoders and their extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc.), and to corresponding decoding. Prior art
Les codeurs vidéo actuels (MPEG, H.264, HEVC, ...) utilisent une représentation par blocs de la séquence vidéo. Les images sont découpées en blocs, lesquels sont susceptibles d'être redécoupés de façon récursive. Puis chaque bloc est codé par prédiction intra-images ou inter-images. Ainsi, certaines images sont codées par prédiction spatiale (prédiction Intra), d'autres images sont également codées par prédiction temporelle (prédiction Inter) par rapport à une ou plusieurs images de référence codées-décodées, à l'aide d'une compensation en mouvement connue par l'homme de l'art. Current video encoders (MPEG, H.264, HEVC, ...) use a block representation of the video sequence. The images are cut into blocks, which can be recursively redrawn. Then each block is coded by intra-image prediction or inter-image. Thus, some images are coded by spatial prediction (Intra prediction), other images are also coded by temporal prediction (Inter prediction) with respect to one or more coded-decoded reference images, by means of a compensation in movement known by those skilled in the art.
Pour chaque bloc est codé un bloc résidu, encore appelé résidu de
prédiction, correspondant au bloc original diminué d'une prédiction. Notons que dans un cas particulier, la prédiction peut être omise, le bloc résidu étant alors équivalent au bloc original. Les blocs résidus sont transformés à l'aide d'une opération mathématique de transformée, puis quantifiés à l'aide d'une opération mathématique de quantification par exemple de type scalaire. Dans un souci de simplification, l'opération mathématique de transformée sera appelée par la suite 'transformée' et l'opération mathématique de quantification sera appelée par la suite 'quantification'. For each block is coded a residue block, also called residue of prediction, corresponding to the original block minus a prediction. Note that in a particular case, the prediction can be omitted, the residual block then being equivalent to the original block. The residue blocks are transformed using a transform mathematical operation and then quantized using a mathematical quantization operation, for example of the scalar type. For the sake of simplification, the mathematical operation of transform will be called later 'transformed' and the mathematical operation of quantification will be called later 'quantification'.
Des coefficients sont obtenus à l'issue de l'étape de quantification. Ils sont ensuite parcourus dans un ordre de lecture qui dépend du mode de codage qui a été choisi. Dans la norme HEVC, par exemple, l'ordre de lecture est dépendant de la prédiction réalisée et peut être effectué dans l'ordre « horizontal », « vertical » ou « diagonal ». Coefficients are obtained at the end of the quantization step. They are then browsed in a reading order that depends on the coding mode that was chosen. In the HEVC standard, for example, the reading order is dependent on the prediction made and can be done in the "horizontal", "vertical" or "diagonal" order.
A l'issue du parcours précité, une liste monodimensionnelle de coefficients est obtenue. Les coefficients de cette liste sont alors codés sous forme de bits par un codage entropique dont le but est de coder les coefficients sans perte. At the end of the aforementioned course, a one-dimensional list of coefficients is obtained. The coefficients of this list are then encoded in bits by an entropy coding whose purpose is to code the coefficients without loss.
Les bits obtenus après codage entropique sont inscrits dans un signal ou flux de données qui est destiné à être transmis au décodeur. The bits obtained after entropy coding are written in a signal or data stream which is intended to be transmitted to the decoder.
De façon connue en soi, un tel signal comprend : In a manner known per se, such a signal comprises:
- les coefficients quantifiés contenus dans la liste précitée, - the quantified coefficients contained in the aforementioned list,
- des informations représentatives du mode de codage utilisé, en particulier: information representative of the coding mode used, in particular:
• le mode de prédiction (prédiction Intra, prédiction Inter, prédiction par défaut réalisant une prédiction pour laquelle aucune information n'est transmise au décodeur (« en anglais « skip »)) ; • the prediction mode (Intra prediction, Inter prediction, prediction by default carrying out a prediction for which no information is transmitted to the decoder ("in English" skip "));
• des informations précisant le type de prédiction (orientation, image de référence, ...) ; • information specifying the type of prediction (orientation, reference image, ...);
· le type de découpage du bloc ; · The type of division of the block;
• les informations de mouvement si nécessaire ; • movement information if necessary;
• etc.
Une fois que le flux a été reçu par le décodeur, le décodage est fait image par image, et pour chaque image, bloc par bloc. Pour chaque bloc, les éléments correspondants du flux sont lus. La quantification inverse et la transformée inverse des coefficients des blocs sont effectuées pour produire le résidu de prédiction décodé. Puis, la prédiction du bloc est calculée et le bloc est reconstruit en ajoutant la prédiction au résidu de prédiction décodé. • etc. Once the stream has been received by the decoder, the decoding is done image by image, and for each image, block by block. For each block, the corresponding elements of the stream are read. Inverse quantization and inverse transform of block coefficients are performed to produce the decoded prediction residue. Then, the prediction of the block is calculated and the block is reconstructed by adding the prediction to the decoded prediction residue.
La technique de codage/décodage classique qui vient d'être décrite permet certes des améliorations des performances de codage. Selon le contexte vidéo, elle permet notamment : The conventional coding / decoding technique that has just been described certainly allows improvements in coding performance. Depending on the video context, it allows:
- une amélioration de la qualité des images pour un débit donné du réseau utilisé pour transmettre les images, an improvement in the quality of the images for a given bit rate of the network used to transmit the images,
- un réduction du débit de transmission des images pour un critère de qualité d'images préalablement fixé. a reduction in the transmission rate of the images for a previously fixed image quality criterion.
Toutefois, de telles performances de codage ne sont actuellement pas optimisées et ont vocation à encore être améliorées, en particulier du point de vue de l'obtention du meilleur compromis - ressources mémoire/performances de codage-. However, such coding performances are not currently optimized and are still to be improved, in particular from the point of view of obtaining the best compromise - memory resources / coding performance.
En particulier, une telle optimisation pourrait concerner la transformée précitée. Il s'agit classiquement d'une transformée linéaire qui, lorsqu'elle s'applique à un bloc résidu contenant un nombre déterminé de K pixels (K>1 ), permet d'obtenir un ensemble de K coefficients. Dans les codeurs/décodeurs vidéo actuels (MPEG, H.264, HEVC, ...), une seule transformée est stockée en association avec un mode de prédiction donné. In particular, such an optimization could concern the above-mentioned transform. It is classically a linear transform which, when applied to a residual block containing a determined number of K pixels (K> 1), makes it possible to obtain a set of K coefficients. In current video encoders / decoders (MPEG, H.264, HEVC, ...), only one transform is stored in association with a given prediction mode.
Dans le domaine du codage vidéo, les transformées en cosinus discrète, DCT (abréviation anglaise de « Discrète Cosine Transform »), ou les transformées en sinus discrète, DST (abréviation anglaise de « Discrète Sine Transform »), sont généralement privilégiées, notamment pour les raisons suivantes : In the field of video coding, the discrete cosine transforms, DCT (abbreviation of "Discrete Cosine Transform"), or the discrete sinus transforms, DST (abbreviation of "Discrete Sine Transform"), are generally preferred, especially for the following reasons:
- ce sont des transformées bloc et il est ainsi facile de manipuler les blocs indépendamment les uns des autres, they are block transforms and it is thus easy to manipulate the blocks independently of one another,
- elles sont efficaces pour compacter l'information dans le domaine fréquentiel, là où l'opération de réduction de débit opère. they are effective for compacting information in the frequency domain, where the flow reduction operation operates.
De façon classique, une telle transformée peut être de type séparable ou
non séparable. In a conventional manner, such a transform can be of separable type or not separable.
S'agissant d'une transformée de type séparable, il est procédé, selon un premier cas, à l'application d'une première transformée Al à un bloc résidu x de K pixels qui sont organisés sous forme d'une matrice MxN, où Al est une matrice de données de taille MxM et M, N sont des entiers naturels supérieurs ou égaux à 1 . A l'issue de l'application de cette première transformée est obtenu un premier bloc transformé Al.x. As it is a separable type transform, in a first case, a first Al transform is applied to a residue block X of K pixels which are organized in the form of an MxN matrix, where Al is a matrix of data of size MxM and M, N are natural numbers greater than or equal to 1. At the end of the application of this first transform is obtained a first transformed block Al.x.
Une opération de transposition t est ensuite appliquée sur le bloc transformé Al.x. A l'issue de cette transposition est obtenu un bloc transposé (Al.x)f. A transposition operation t is then applied to the transformed block Al.x. At the end of this transposition, a transposed block (Al.x) f is obtained.
Enfin, une deuxième transformée Ac est appliquée sur le bloc transposé (Al.x)f, où Ac est une matrice de données de taille NxN. A l'issue de l'application de cette deuxième transformée est obtenu un deuxième bloc transformé X de K=NxM pixels, tel que : Finally, a second transform Ac is applied to the transposed block (Al.x) f , where Ac is a data matrix of size NxN. At the end of the application of this second transform is obtained a second transformed block X of K = NxM pixels, such that:
X = Ac - (Al - xf X = Ac - (Al - xf
Selon un deuxième cas, l'ordre d'application des transformées Al et Ac est inversé. Le deuxième bloc transformé X de K=NxM pixels s'écrit alors de la façon suivante : In a second case, the order of application of the Al and Ac transforms is reversed. The second transformed block X of K = NxM pixels is then written as follows:
X = Al - (Ac - xty X = Al - (Ac - x t y
Le bloc transformé X obtenu selon ce deuxième cas est similaire au bloc transformé X obtenu selon le premier cas, à une transposition près. The transformed block X obtained according to this second case is similar to the transformed block X obtained according to the first case, to a close transposition.
Dans le cas particulier où le bloc résidu x est carré, c'est-à-dire M=N, les matrices Al et Ac ont la même taille. In the particular case where the residue block x is square, that is to say M = N, the matrices Al and Ac have the same size.
Au décodage, de façon connue en soi, sont appliquées des transformées inverses de celles mentionnées ci-dessus. On decoding, in a manner known per se, reverse transforms of those mentioned above are applied.
Ainsi, si la transformée a été appliquée selon le premier cas, la transformée inverse correspondante permet d'obtenir le bloc résidu x à l'aide du calcul suivant : Thus, if the transform has been applied according to the first case, the corresponding inverse transform makes it possible to obtain the residue block x using the following calculation:
x = Al'1■ (Ac'1■ xy x = Al '1 ■ (Ac ' 1 ■ xy
Ainsi, si la transformée a été appliquée selon le deuxième cas, la transformée inverse correspondante permet d'obtenir le bloc résidu x à l'aide du
calcul suivant : x = (Ac-1 ■ (Ai^ - xyy Thus, if the transform has been applied according to the second case, the corresponding inverse transform makes it possible to obtain the residue block x using the following calculation: x = (Ac- 1 ■ (Ai ^ - xyy
AI"1 et Ac"1 représentent les transformées inverses respectives des transformées Al et Ac. Elles permettent d'obtenir les valeurs du bloc résidu x à partir des valeurs du bloc transformé X. Les matrices AI"1 et Ac"1 sont appelées communément matrices inverses de Al et Ac respectivement, dans le cas où les matrices sont choisies orthogonales elles correspondent aux matrices transposées de Al et Ac respectivement. AI "1 and Ac " 1 represent the respective inverse transforms of the Al and Ac transforms. They make it possible to obtain the values of the residue block x from the values of the transformed block X. The matrices AI "1 and Ac " 1 are commonly called inverse matrices of Al and Ac respectively, in the case where the matrices are chosen orthogonal. correspond to the matrices transposed of Al and Ac respectively.
S'agissant d'une transformée de type non séparable, elle s'écrit au codage comme la multiplication du bloc résidu x, mis sous la forme d'un vecteur de dimension 1 xK, par une matrice A de taille KxK. Le bloc transformé X obtenu à l'issue de l'application de cette transformée s'écrit alors de la façon suivante : As it is a non-separable type transform, it is written in coding as the multiplication of the residue block x, put in the form of a vector of dimension 1 xK, by a matrix A of size KxK. The transformed block X obtained after the application of this transform is then written as follows:
X = A - x X = A - x
Au décodage, la transformée inverse consiste à multiplier le bloc transformé X par la matrice inverse A"1 de A qui peut être la transposée de A, lorsque A est orthogonale. Une telle transformée inverse permet d'obtenir le bloc résidu x suivant : At decoding, the inverse transform consists in multiplying the transformed block X by the inverse matrix A "1 of A which can be the transpose of A, when A is orthogonal.This inverse transform makes it possible to obtain the following residue block x:
x = A~1 - X x = A ~ 1 - X
Dans le domaine du codage vidéo, il a été proposé, notamment dans la publication « Non-separable mode dépendent transforms for Intra coding in HEVC, Adrià Arrufat et al. VCIP 2014 » d'augmenter le nombre de transformées par modes de prédiction proposés. Ainsi, dans le cadre d'une prédiction spatiale conforme au standard HEVC qui peut être mise en œuvre selon trente- cinq modes de prédiction spatiale différents, il est proposé de stocker 16 transformées en association avec chacun des 35 modes de prédiction respectivement. Lorsqu'un mode de prédiction est sélectionné, une transformée est sélectionnée parmi les 16 transformées stockées pour ce mode de prédiction, selon un critère de performance de codage prédéterminé, tel que le critère débit-distorsion bien connu de l'Homme du métier.
Ainsi, pour chaque prédiction considérée, l'étape d'application de transformée est mieux adaptée à la nature des signaux résidu de prédiction et la performance de codage est améliorée selon les critères de distorsion pour un débit donné qui sont bien connus de l'homme de métier. In the field of video coding, it has been proposed, in particular in the publication "Non-separable mode depend transforms for Intra coding in HEVC, Adrià Arrufat et al. VCIP 2014 "to increase the number of transforms by proposed modes of prediction. Thus, in the context of a HEVC standard spatial prediction that can be implemented according to thirty-five different spatial prediction modes, it is proposed to store 16 transforms in association with each of the prediction modes respectively. When a prediction mode is selected, a transform is selected from among the 16 transforms stored for this prediction mode, according to a predetermined coding performance criterion, such as the debit-distortion criterion well known to those skilled in the art. Thus, for each prediction considered, the transform application step is better adapted to the nature of the prediction residue signals and the coding performance is improved according to the distortion criteria for a given bit rate which are well known to the man. business.
Toutefois avec une telle approche, la quantité de transformées à ajouter pour pouvoir mettre en œuvre une telle adaptation a un impact sur les ressources mémoire à utiliser à la fois au codeur qui doit stocker les transformées pour chacune des prédictions considérées, et au décodeur qui doit également connaître les transformées pour appliquer la transformée inverse de celle appliquée au codage. However, with such an approach, the amount of transforms to be added in order to implement such an adaptation has an impact on the memory resources to be used both by the coder who must store the transforms for each of the predictions considered, and by the decoder which must also know the transforms to apply the transform inverse of that applied to the coding.
Ainsi, si on se place dans le cas de transformées séparables, ce qui est le cadre général en codage vidéo, le besoin de stockage peut être estimé suivant un nombre total NT de transformées, tel que NT=n*NMp où n est le nombre de transformées à provisionner par mode de prédiction et NMp est le nombre de modes de prédiction proposés. Plus particulièrement dans le cas d'un codage HEVC utilisant par exemple des transformées de taille 8x8, dont les coefficients sont stockés sur un octet, il est nécessaire de stocker 2 transformées (verticales et horizontales) ce qui requiert à minima (2 * 8 * 8 * n * NMP)/1024= 4.375 kilooctets, où n=1 et NMp=35. Thus, if one places oneself in the case of separable transforms, which is the general framework in video coding, the storage need can be estimated according to a total number NT of transforms, such that NT = n * N M p where n is the number of transforms to be provisioned by prediction mode and N M p is the number of prediction modes proposed. More particularly in the case of a HEVC encoding using, for example, transforms of size 8 × 8, the coefficients of which are stored on one byte, it is necessary to store 2 transforms (vertical and horizontal) which requires at least 2 * 8 * 8 * n * N MP ) / 1024 = 4.375 kilobytes, where n = 1 and N M p = 35.
Cette configuration est représentée sur la première ligne du tableau ci- dessous. Pour cette configuration, sont également représentées les performances de codage obtenues. Ces performances correspondent au gain en débit, c'est-à-dire au pourcentage de réduction de débit obtenu sans affecter les performances de codage (à distorsion constante). Les lignes suivantes représentent l'évolution des ressources mémoire requises lorsque respectivement deux, quatre, huit, seize transformées 8x8 sont stockées en association avec chacun des 35 modes de prédiction spatiale, ainsi que les performances de codage correspondantes.
Nombre n de Nombre total quantité de Gain en débit This configuration is shown on the first line of the table below. For this configuration, the coding performances obtained are also represented. These performances correspond to the gain in bit rate, that is to say to the percentage of reduction of the bit rate obtained without affecting the coding performance (constant distortion). The following lines represent the evolution of the memory resources required when respectively two, four, eight, sixteen 8x8 transforms are stored in association with each of the 35 spatial prediction modes, as well as the corresponding coding performance. Number n of Total number quantity of Flow Gain
transformées NT de mémoire memory NT transforms
/mode de transformées nécessaire / mode of transformations needed
prédiction prediction
1 35 4.375 ko 0,84% 1 35 4.375 kb 0.84%
2 70 8.75 ko 1 ,33% 2 70 8.75 kb 1, 33%
4 140 17.5 ko 1 ,72% 4,140 17.5 KB 1, 72%
8 280 35 ko 2,10% 8,280 35 KB 2.10%
16 560 70 ko 2,48% 16,560 70 KB 2.48%
Il convient de constater que selon le tableau ci-dessus, la quantité de mémoire croit linéairement avec le nombre de transformées à provisionner par mode de prédiction et devient significative comparativement à la quantité de stockage requise pour les codeurs actuels, tels que par exemple les codeurs HEVC, pour lesquels la quantité de mémoire consacrée au stockage des transformées est de 1 ko environ. It should be noted that according to the table above, the amount of memory increases linearly with the number of transforms to be provisioned by prediction mode and becomes significant compared to the amount of storage required for current encoders, such as for example coders. HEVC, for which the amount of memory dedicated to the storage of transforms is about 1 kb.
En outre, il est observé que les performances de codage les plus élevées (gain en débit de 2,48%) nécessitent une quantité de mémoire non négligeable de 560ko par rapport à la quantité de mémoire maximale de 1 ko requise dans HEVC. In addition, it is observed that the highest coding performance (2.48% throughput gain) requires a significant amount of memory of 560kb over the 1kb maximum memory required in HEVC.
Même si le gain en débit de 2,48% s'avère intéressant, une mémoire de capacité 70ko pour stocker 560 transformées afin d'obtenir un tel gain s'avère bien trop coûteuse, sachant que les mémoires utilisées pour l'implémentation matérielle de systèmes de codage/décodage vidéo doivent être rapides au regard de la quantité de données traitées. Even if the bit rate gain of 2.48% proves to be interesting, a memory capacity of 70kB to store 560 transforms in order to obtain such a gain proves to be too expensive, given that the memories used for the hardware implementation of Video coding / decoding systems must be fast with respect to the amount of data processed.
Objet et résumé de l'invention Object and summary of the invention
Un des buts de l'invention est de remédier à des inconvénients de l'état de la technique précité.
A cet effet, un objet de la présente invention concerne un procédé de codage d'au moins une image découpée en blocs, mettant en œuvre, pour un bloc courant à coder de l'image : One of the aims of the invention is to overcome disadvantages of the state of the art mentioned above. For this purpose, an object of the present invention relates to a method of coding at least one image cut into blocks, implementing, for a current block to code the image:
- une prédiction du bloc courant conformément à un mode de prédiction sélectionné parmi une pluralité de modes de prédiction prédéterminés, a prediction of the current block according to a prediction mode selected from among a plurality of predetermined prediction modes,
- un calcul d'un bloc résidu de données représentatif d'une différence entre un bloc prédicteur obtenu à l'issue de la prédiction et le bloc courant, a calculation of a data residue block representative of a difference between a predictor block obtained at the end of the prediction and the current block,
- une application d'une opération de transformée aux données dudit bloc résidu, ladite opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké en association avec un mode de prédiction sélectionné, an application of a transform operation to the data of said residue block, said transform operation belonging to a set of transform operations that is previously stored in association with a selected prediction mode,
- un codage des données obtenues à la suite de ladite opération de transformée an encoding of the data obtained as a result of said transform operation
Un tel procédé de codage est remarquable en ce que lors du stockage de l'ensemble d'opérations de transformée associé au mode de prédiction sélectionné, le nombre d'opérations de transformée contenu dans cet ensemble est différent du nombre d'opérations de transformées contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de la pluralité de modes de prédiction prédéterminés. Such a coding method is remarkable in that when storing the set of transform operations associated with the selected prediction mode, the number of transform operations contained in this set is different from the number of transform operations contained in the set. in a set of transform operations that is stored in association with at least one other predetermined prediction mode of the plurality of predetermined prediction modes.
Une telle disposition permet, lorsqu'il existe plusieurs opérations de transformée par mode de prédiction : Such an arrangement makes it possible, when there are several operations of transformation by mode of prediction:
- soit de réduire significativement les ressources mémoire du codeur en vue du stockage des matrices de transformée par rapport aux ressources mémoire des codeurs de l'art antérieur, sans pour cela détériorer les performances de codage du bloc courant, or to significantly reduce the memory resources of the encoder for storage of the transform matrices with respect to the memory resources of the prior art encoders, without thereby deteriorating the coding performance of the current block,
- soit augmenter les performances de codage du bloc courant sans pour cela requérir à une augmentation des ressources mémoire du codeur en vue du stockage des matrices de transformée, par rapport aux ressources mémoire des codeurs de l'art antérieur.
Selon un mode de réalisation particulier, pour au moins deux ensembles d'opérations de transformées stockés respectivement en association avec deux modes de prédiction de la pluralité de modes de prédiction prédéterminés, le nombre d'opérations de transformée dans chacun desdits deux ensembles contient en commun au moins une opération de transformée identique. - Or increase the coding performance of the current block without requiring an increase in the memory resources of the encoder for storage of the transform matrices, compared to the memory resources of the encoders of the prior art. According to a particular embodiment, for at least two sets of transform operations respectively stored in association with two prediction modes of the plurality of predetermined prediction modes, the number of transform operations in each of said two sets contains in common at least one identical transform operation.
Une telle disposition permet de réduire davantage les ressources mémoire du codeur en vue du stockage des matrices de transformée. Such an arrangement further reduces the memory resources of the encoder for storing the transform matrices.
Ainsi par exemple, dans le cadre du standard HEVC, au moins deux ensembles d'opérations de transformée pourraient contenir en commun : For example, as part of the HEVC standard, at least two sets of transform operations could contain in common:
- une seule opération de transformée, par exemple une transformée de type DCT, a single transform operation, for example a DCT type transform,
- deux opérations de transformée, par exemple une transformée de type DCT et une transformée de type DST, two transform operations, for example a DCT type transform and a DST type transform,
- etc .. - etc.
Selon un autre mode de réalisation particulier, l'ensemble d'opérations de transformée associé au mode de prédiction sélectionné est stocké en association avec au moins un autre mode de prédiction de la pluralité de modes de prédiction prédéterminés. According to another particular embodiment, the set of transform operations associated with the selected prediction mode is stored in association with at least one other prediction mode of the plurality of predetermined prediction modes.
Une telle disposition permet de réduire encore davantage les ressources mémoire du codeur en vue du stockage des matrices de transformée. Such an arrangement makes it possible to further reduce the memory resources of the encoder for storing the transform matrices.
L'invention propose différentes manières de déterminer le nombre d'opérations de transformées en fonction du mode de prédiction, de façon à optimiser le compromis « ressources mémoire-performance de codage ». The invention proposes different ways of determining the number of transform operations according to the prediction mode, so as to optimize the compromise "memory resources-coding performance".
Selon un mode de réalisation particulier, le nombre d'opérations de transformée qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction verticale ou horizontale est supérieur au nombre d'opérations de transformée qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction oblique. According to a particular embodiment, the number of transform operations that is determined in the case of a prediction mode associated with a vertical or horizontal prediction direction is greater than the number of transform operations that is determined in the case a prediction mode associated with an oblique prediction direction.
Selon un autre mode de réalisation particulier, le nombre d'opérations de transformée, qui est déterminé dans le cas d'un mode de prédiction pour lequel la prédiction est calculée en moyennant plus de deux pixels d'un bord du bloc courant, est supérieur ou égal au nombre d'opérations de transformée qui est déterminé pour tout autre mode de prédiction.
Selon encore un autre mode de réalisation particulier, le nombre d'opérations de transformée qui est déterminé dans le cas d'un mode de prédiction qui a été préalablement sélectionné, dans la pluralité de modes de prédiction prédéterminés, en tant que mode de prédiction le plus probable, est supérieur au nombre d'opérations de transformée qui est déterminé dans le cas d'un mode de prédiction qui n'a pas été préalablement sélectionné en tant que mode de prédiction le plus probable. According to another particular embodiment, the number of transform operations, which is determined in the case of a prediction mode for which the prediction is calculated by averaging more than two pixels of an edge of the current block, is greater or equal to the number of transform operations that is determined for any other prediction mode. According to yet another particular embodiment, the number of transform operations that is determined in the case of a prediction mode that has been previously selected, in the plurality of predetermined prediction modes, as the prediction mode the more likely, is greater than the number of transform operations that is determined in the case of a prediction mode that has not been previously selected as the most likely prediction mode.
Selon encore un autre mode de réalisation particulier, le nombre d'opérations de transformée contenu dans l'ensemble d'opérations de transformée stocké en association avec le mode de prédiction sélectionné est déterminé en fonction de la quantité d'informations représentatives du mode de prédiction sélectionné. According to yet another particular embodiment, the number of transform operations contained in the set of stored transform operations in association with the selected prediction mode is determined according to the amount of information representative of the prediction mode. selected.
Cette dernière disposition permet en outre de calculer simplement et de façon optimale en termes de compromis « ressources mémoire-performance de codage » le nombre d'opérations de transformées à utiliser pour un mode de prédiction prédéterminé donné. This last provision also makes it possible to calculate simply and optimally in terms of compromise "memory resources-coding performance" the number of transform operations to be used for a given predetermined prediction mode.
Les différents modes ou caractéristiques de réalisation précités peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé de codage tel que défini ci-dessus. The various embodiments or aforementioned embodiments can be added independently or in combination with each other, to the steps of the coding method as defined above.
L'invention concerne également un dispositif de codage d'au moins une image découpée en blocs, comprenant un circuit de traitement qui, pour un bloc courant à coder de l'image, est agencé pour : The invention also relates to a device for encoding at least one image divided into blocks, comprising a processing circuit which, for a current block to be coded with the image, is arranged for:
- prédire le bloc courant conformément à un mode de prédiction sélectionné parmi une pluralité de modes de prédiction prédéterminés, predicting the current block according to a prediction mode selected from among a plurality of predetermined prediction modes,
- calculer un bloc résidu de données représentatif d'une différence entre un bloc prédicteur obtenu à l'issue de la prédiction et le bloc courant, calculating a data residue block representative of a difference between a predictor block obtained at the end of the prediction and the current block,
- appliquer une opération de transformée aux données du bloc résidu, l'opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké en association avec le mode de prédiction sélectionné, applying a transform operation to the data of the residue block, the transform operation belonging to a set of transform operations that is previously stored in association with the selected prediction mode,
- coder les données obtenues à la suite de l'opération de transformée.
Le dispositif de codage selon l'invention est remarquable en ce que le circuit de traitement est agencé pour stocker l'ensemble d'opérations de transformée associé au mode de prédiction sélectionné, le nombre d'opérations de transformée contenu dans cet ensemble étant différent du nombre d'opérations de transformée contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de la pluralité de modes de prédiction prédéterminés. coding the data obtained as a result of the transform operation. The coding device according to the invention is remarkable in that the processing circuit is arranged to store the set of transform operations associated with the selected prediction mode, the number of transform operations contained in this set being different from the number of transform operations contained in a set of transform operations that is stored in association with at least one other predetermined prediction mode of the plurality of predetermined prediction modes.
Un tel dispositif de codage est notamment apte à mettre en œuvre le procédé de codage précité. Such a coding device is particularly suitable for implementing the aforementioned coding method.
L'invention concerne aussi un procédé de décodage d'un signal de données représentatif d'au moins une image découpée en blocs, mettant en œuvre, pour un bloc courant à décoder : The invention also relates to a method for decoding a data signal representative of at least one image divided into blocks, implementing, for a current block to be decoded:
- une détermination, dans le signal de données : a determination, in the data signal:
• de données représentatives d'un bloc résidu courant associé au bloc courant à décoder, Data representative of a current residual block associated with the current block to be decoded,
• d'un mode de prédiction du bloc courant à décoder, ce mode de prédiction appartenant à une pluralité de modes de prédiction prédéterminés, A prediction mode of the current block to be decoded, this prediction mode belonging to a plurality of predetermined prediction modes,
- une prédiction du bloc courant conformément au mode de prédiction déterminé, a prediction of the current block according to the determined prediction mode,
- une application d'une opération de transformée aux données représentatives du bloc résidu, une telle opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké en association avec le mode de prédiction déterminé, an application of a transform operation to data representative of the residue block, such a transform operation belonging to a set of transform operations that is previously stored in association with the determined prediction mode,
- une reconstruction du bloc courant à l'aide d'un bloc prédicteur obtenu à l'issue de la prédiction et des données obtenues à la suite de ladite opération de transformée. a reconstruction of the current block using a predictor block obtained at the end of the prediction and data obtained following said transform operation.
Un tel procédé de décodage est remarquable en ce que lors du stockage de l'ensemble d'opérations de transformée associé au mode de prédiction déterminé, le nombre d'opérations de transformée contenu dans cet ensemble est différent du nombre d'opérations de transformée contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un
autre mode de prédiction prédéterminé de la pluralité de modes de prédiction prédéterminés. Such a decoding method is remarkable in that when storing the set of transform operations associated with the determined prediction mode, the number of transform operations contained in this set is different from the number of transform operations contained in the set. in a set of transform operations that is stored in association with at least one another predetermined prediction mode of the plurality of predetermined prediction modes.
De façon similaire au codeur, une telle disposition est avantageuse au décodeur qui doit également connaître les transformées pour appliquer la transformée inverse de celle appliquée au codage. En particulier, une telle disposition permet, lorsqu'il existe plusieurs opérations de transformée par mode de prédiction : Similar to the encoder, such an arrangement is advantageous to the decoder which must also know the transforms to apply the inverse transform of that applied to the encoding. In particular, such an arrangement makes it possible, when there are several operations of transformation by mode of prediction:
- soit de réduire significativement les ressources mémoire du décodeur en vue du stockage des matrices de transformée par rapport aux ressources mémoire des décodeurs de l'art antérieur, sans pour cela détériorer la qualité de reconstruction du bloc courant, or to significantly reduce the memory resources of the decoder in order to store the transform matrices with respect to the memory resources of the decoders of the prior art, without thereby deteriorating the reconstruction quality of the current block,
- soit augmenter la qualité de reconstruction du bloc courant sans pour cela requérir à une augmentation des ressources mémoire du décodeur en vue du stockage des matrices de transformée par rapport aux ressources mémoire des décodeurs de l'art antérieur. or to increase the reconstruction quality of the current block without requiring an increase in the memory resources of the decoder in order to store the transform matrices with respect to the memory resources of the decoders of the prior art.
Selon un mode de réalisation particulier, pour au moins deux ensembles d'opérations de transformée stockés respectivement en association avec deux modes de prédiction de la pluralité de modes de prédiction prédéterminés, le nombre d'opérations de transformée dans chacun des deux ensembles contient en commun au moins une opération de transformée identique. According to a particular embodiment, for at least two sets of transform operations respectively stored in association with two prediction modes of the plurality of predetermined prediction modes, the number of transform operations in each of the two sets contains in common at least one identical transform operation.
Selon un autre mode de réalisation particulier, l'ensemble d'opérations de transformée associé au mode de prédiction déterminé est stocké en association avec au moins un autre mode de prédiction de la pluralité de modes de prédiction prédéterminés. According to another particular embodiment, the set of transform operations associated with the determined prediction mode is stored in association with at least one other prediction mode of the plurality of predetermined prediction modes.
Selon encore un autre mode de réalisation particulier, le nombre d'opérations de transformée qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction verticale ou horizontale est supérieur au nombre d'opérations de transformée qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction oblique. According to yet another particular embodiment, the number of transform operations which is determined in the case of a prediction mode associated with a vertical or horizontal prediction direction is greater than the number of transform operations which is determined in the case of a prediction mode associated with an oblique prediction direction.
Selon encore un autre mode de réalisation particulier, le nombre d'opérations de transformée, qui est déterminé dans le cas d'un mode de prédiction pour lequel la prédiction est calculée en moyennant plus de deux
pixels d'un bord du bloc courant, est supérieur ou égal au nombre d'opérations de transformée qui est déterminé pour tout autre mode de prédiction. According to yet another particular embodiment, the number of transform operations, which is determined in the case of a prediction mode for which the prediction is calculated by averaging more than two pixels of an edge of the current block, is greater than or equal to the number of transform operations that is determined for any other prediction mode.
Selon encore un autre mode de réalisation particulier, le nombre d'opérations de transformée qui est déterminé dans le cas où le mode de prédiction déterminé a été préalablement sélectionné, dans la pluralité de modes de prédiction prédéterminés, en tant que mode de prédiction le plus probable, est supérieur au nombre d'opérations de transformée qui est déterminé dans le cas où le mode de prédiction déterminé n'a pas été préalablement sélectionné en tant que mode de prédiction le plus probable. According to yet another particular embodiment, the number of transform operations which is determined in the case where the predetermined prediction mode has been previously selected, in the plurality of predetermined prediction modes, as the most predictive mode of prediction. likely, is greater than the number of transform operations that is determined in the case where the determined prediction mode has not been previously selected as the most probable prediction mode.
Selon encore un autre mode de réalisation particulier, le nombre d'opérations de transformée contenu dans l'ensemble d'opérations de transformée stocké en association avec le mode de prédiction déterminé est déterminé en fonction de la quantité d'informations représentatives du mode de prédiction déterminé. According to yet another particular embodiment, the number of transform operations contained in the set of stored transform operations in association with the determined prediction mode is determined according to the amount of information representative of the prediction mode. determined.
Les différents modes ou caractéristiques de réalisation précités peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé de décodage tel que défini ci-dessus. The various embodiments or aforementioned embodiments can be added independently or in combination with each other, to the steps of the decoding method as defined above.
L'invention concerne également un dispositif de décodage d'un signal de données représentatif d'au moins une image découpée en blocs, comprenant un circuit de traitement qui, pour un bloc courant à décoder, est agencé pour : The invention also relates to a device for decoding a data signal representative of at least one image divided into blocks, comprising a processing circuit which, for a current block to be decoded, is arranged for:
- déterminer, dans le signal de données : - determine, in the data signal:
• des données représentatives d'un bloc résidu courant associé au bloc courant à décoder, Data representing a current residual block associated with the current block to be decoded,
• un mode de prédiction du bloc courant à décoder, ce mode de prédiction appartenant à une pluralité de modes de prédiction prédéterminés, A mode of prediction of the current block to be decoded, this prediction mode belonging to a plurality of predetermined prediction modes,
- prédire le bloc courant conformément au mode de prédiction déterminé, predict the current block according to the determined prediction mode,
- appliquer une opération de transformée aux données représentatives du bloc résidu, une telle opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké en association avec le mode de prédiction déterminé,
- reconstruire le bloc courant à l'aide d'un bloc prédicteur obtenu à l'issue de la prédiction et des données obtenues à la suite de l'opération de transformée. applying a transform operation to the data representative of the residue block, such a transform operation belonging to a set of transform operations that is previously stored in association with the determined prediction mode, reconstructing the current block using a predictor block obtained at the end of the prediction and data obtained following the transformation operation.
Le dispositif de décodage selon l'invention est remarquable en ce que le circuit de traitement est agencé pour stocker l'ensemble d'opérations de transformée associé au mode de prédiction déterminé, le nombre d'opérations de transformée contenu dans cet ensemble étant différent du nombre d'opérations de transformée contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de la pluralité de modes de prédiction prédéterminés. The decoding device according to the invention is remarkable in that the processing circuit is arranged to store the set of transform operations associated with the determined prediction mode, the number of transform operations contained in this set being different from the number of transform operations contained in a set of transform operations that is stored in association with at least one other predetermined prediction mode of the plurality of predetermined prediction modes.
Un tel dispositif de décodage est notamment apte à mettre en œuvre le procédé de décodage précité. Such a decoding device is particularly suitable for implementing the aforementioned decoding method.
L'invention concerne encore un programme d'ordinateur comportant des instructions pour mettre en œuvre l'un des procédés de codage et de décodage selon l'invention, lorsqu'il est exécuté sur un ordinateur. The invention also relates to a computer program comprising instructions for implementing one of the coding and decoding methods according to the invention, when it is executed on a computer.
Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other form desirable shape.
L'invention vise également un support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre de l'un des procédés de codage ou de décodage selon l'invention, tels que décrits ci-dessus. The invention also relates to a computer-readable recording medium on which a computer program is recorded, this program comprising instructions adapted to the implementation of one of the coding or decoding methods according to the invention. as described above.
L'invention vise également un support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre du procédé de codage ou de décodage selon l'invention, tels que décrits ci-dessus. The invention also relates to a computer-readable recording medium on which a computer program is recorded, this program comprising instructions adapted to the implementation of the coding or decoding method according to the invention, as described. above.
Le support d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une clé USB ou un disque dur.
D'autre part, le support d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. The recording medium may be any entity or device capable of storing the program. For example, the medium may include storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording means, for example a USB key or a hard disk. On the other hand, the recording medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The program according to the invention can be downloaded in particular on an Internet type network.
Alternativement, le support d'enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé de codage ou de décodage précité. Alternatively, the recording medium may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the aforementioned coding or decoding method.
Brève description des dessins Brief description of the drawings
D'autres caractéristiques et avantages apparaîtront à la lecture d'un mode de réalisation préféré décrit en référence aux figures dans lesquelles: Other features and advantages will appear on reading a preferred embodiment described with reference to the figures in which:
- la figure 1 représente les étapes du procédé de codage selon l'invention, FIG. 1 represents the steps of the coding method according to the invention,
- la figure 2 représente un mode de réalisation d'un dispositif de codage selon l'invention, FIG. 2 represents an embodiment of a coding device according to the invention,
- la figure 3 représente les étapes d'un procédé de détermination d'un nombre variable de transformées par mode de prédiction, selon un mode de réalisation de l'invention, FIG. 3 represents the steps of a method for determining a variable number of transforms by prediction mode, according to one embodiment of the invention,
- la figure 4 représente un tableau illustrant le nombre de transformées déterminé par mode de prédiction, après ajout successif de seize transformées selon le procédé de détermination de la figure 3, FIG. 4 represents a table illustrating the number of transforms determined by prediction mode, after successive addition of sixteen transforms according to the determination method of FIG. 3;
- la figure 5 représente un diagramme comparatif entre le compromis - ressources mémoire/performances de codage -, tel qu'obtenu à la suite de la mise en œuvre du procédé itératif de la figure 3, et celui obtenu avec un nombre de transformées identique par mode de prédiction, FIG. 5 represents a comparison diagram between the compromise - memory resources / coding performance - as obtained following the implementation of the iterative process of FIG. 3, and that obtained with a number of identical transforms by prediction mode,
- la figure 6A représente un premier exemple de regroupement de différents modes de prédiction Intra en fonction de la symétrie de leurs angles correspondants, FIG. 6A represents a first example of grouping of various Intra prediction modes according to the symmetry of their corresponding angles,
- la figure 6B représente un deuxième exemple de regroupement de différents modes de prédiction Intra en fonction de la symétrie de leurs angles correspondants,
- la figure 7 représente un graphique qui illustre la relation entre trente-trois modes de prédiction Intra HEVC et leurs directions angulaires correspondantes, FIG. 6B represents a second example of grouping of various Intra prediction modes according to the symmetry of their corresponding angles, FIG. 7 represents a graph which illustrates the relationship between thirty-three Intra HEVC prediction modes and their corresponding angular directions,
- la figure 8 représente un exemple de regroupement de différents modes de prédiction Inter en fonction de la symétrie de leurs angles correspondants, FIG. 8 represents an example of grouping of different modes of prediction Inter according to the symmetry of their corresponding angles,
- la figure 9 représente un tableau illustrant le nombre de transformées déterminé par groupe de modes de prédiction, après ajout successif de seize transformées selon une variante du procédé de détermination de la figure 3, FIG. 9 represents a table illustrating the number of transforms determined by group of prediction modes, after successive addition of sixteen transforms according to a variant of the determination method of FIG. 3,
- la figure 10 représente un mode de réalisation d'un dispositif de décodage selon l'invention, FIG. 10 represents an embodiment of a decoding device according to the invention,
- la figure 1 1 représente les principales étapes du procédé de décodage selon l'invention. - Figure 1 1 represents the main steps of the decoding method according to the invention.
Description détaillée de la partie codage Detailed description of the coding part
Un mode de réalisation de l'invention va maintenant être décrit, dans lequel le procédé de codage selon l'invention est utilisé pour coder une image ou une séquence d'images selon un flux binaire proche de celui qu'on obtient par un codage conforme à l'une quelconque des normes de codage vidéo actuelles ou à venir. An embodiment of the invention will now be described, in which the coding method according to the invention is used to code an image or a sequence of images according to a bit stream close to that obtained by a conforming coding. any of the current or future video coding standards.
Dans ce mode de réalisation, le procédé de codage selon l'invention est par exemple implémenté de manière logicielle ou matérielle par modifications d'un codeur initialement conforme à l'une quelconque des normes de codage vidéo actuelles ou à venir. Le procédé de codage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes C0 à C9 telles que représentées à la figure 1 . In this embodiment, the coding method according to the invention is for example implemented in a software or hardware way by modifications of an encoder initially conforming to any one of the current or future video coding standards. The coding method according to the invention is represented in the form of an algorithm comprising steps C0 to C9 as represented in FIG.
Selon le mode de réalisation de l'invention, le procédé de codage selon l'invention est implémenté dans un dispositif de codage CO représenté à la figure 2. According to the embodiment of the invention, the coding method according to the invention is implemented in a coding device CO represented in FIG.
Comme illustré en figure 2, un tel dispositif codeur comprend : As illustrated in FIG. 2, such an encoder device comprises:
- une entrée ENT_C pour recevoir une image courante à coder,
- un circuit de traitement CT_C pour mettre en œuvre le procédé de codage selon l'invention, le circuit de traitement CT_C contenant : an input ENT_C to receive a current image to be encoded, a processing circuit CT_C for implementing the coding method according to the invention, the processing circuit CT_C containing:
• une mémoire MEM_C comprenant une mémoire tampon MT_C, A memory MEM_C including a memory buffer MT_C,
« un processeur PROC_C piloté par un programme d'ordinateur PG_C, "A PROC_C processor controlled by a computer program PG_C,
- une sortie SOR_C pour délivrer un flux codé contenant les données obtenues à l'issue du codage de l'image courante. an output SOR_C for delivering a coded stream containing the data obtained at the end of the coding of the current image.
A l'initialisation, les instructions de code du programme d'ordinateur PG_C sont par exemple chargées dans une mémoire RAM, MR_C, avant d'être exécutées par le circuit de traitement CT_C. At initialization, the code instructions of the computer program PG_C are for example loaded into a RAM memory, MR_C, before being executed by the processing circuit CT_C.
Le procédé de codage représenté sur la figure 1 s'applique à toute image courante ICj fixe ou bien faisant partie d'une séquence de L images IC-i ,The coding method shown in FIG. 1 applies to any current image IC j fixed or part of a sequence of L images IC-i,
ICj ICL (1≤j≤L) à coder. IC j IC L (1≤j≤L) to be coded.
Au cours d'une étape C1 représentée à la figure 1 , il est procédé, de façon connue en soi, au partitionnement d'une image courante ICj en une pluralité de blocs B-i , B2, B,, ..., Bs (1 <i≤S), par exemple de taille MxM pixels, où M est un entier naturel supérieur ou égal à 1 . Une telle étape de partitionnement est mise en œuvre par un module logiciel de partitionnement MP_C représenté sur la figure 2, lequel module est piloté par le processeur PROC_C. During a step C1 shown in FIG. 1, in a manner known per se, a current image IC j is partitioned into a plurality of blocks Bi, B 2 , B ,, ..., B s (1 <i≤S), for example of size MxM pixels, where M is a natural integer greater than or equal to 1. Such a partitioning step is implemented by a partitioning software module MP_C shown in FIG. 2, which module is controlled by the processor PROC_C.
Il convient de noter qu'au sens de l'invention, le terme « bloc » signifie unité de codage (de l'anglais « coding unit »). Cette dernière terminologie est notamment utilisée dans la norme HEVC « ISO/IEC/23008-2 Recommandation ITU-T H.265 High Efficiency Video Coding (HEVC) ». It should be noted that for the purposes of the invention, the term "block" means coding unit (coding unit). This last terminology is notably used in the standard HEVC "ISO / IEC / 23008-2 Recommendation ITU-T H.265 High Efficiency Video Coding (HEVC)".
En particulier, une telle unité de codage regroupe des ensembles de pixels de forme rectangulaire ou carrée, encore appelés blocs, macroblocs, ou bien des ensembles de pixels présentant d'autres formes géométriques. In particular, such a coding unit groups together sets of pixels of rectangular or square shape, also called blocks, macroblocks, or sets of pixels having other geometrical shapes.
Lesdits blocs B-i , B2, B,, ..., Bs sont destinés à être codés selon un ordre de parcours prédéterminé, qui est par exemple du type lexicographique. Cela signifie que les blocs sont codés les uns après les autres, de la gauche vers la droite.
D'autres types de parcours sont bien sûr possibles. Ainsi, il est possible de découper l'image ICj en plusieurs sous-images appelées slices et d'appliquer indépendamment un découpage de ce type sur chaque sous-image. Il est également possible de coder non pas une succession de lignes, comme expliqué ci-dessus, mais une succession de colonnes. Il est également possible de parcourir les lignes ou colonnes dans un sens ou dans l'autre. Said blocks Bi, B 2 , B ,, ..., B s are intended to be coded according to a predetermined order of travel, which is for example of the lexicographic type. This means that the blocks are coded one after the other, from left to right. Other types of course are of course possible. Thus, it is possible to cut the image IC j into several subimages called slices and to independently apply a division of this type on each sub-image. It is also possible to code not a succession of lines, as explained above, but a succession of columns. It is also possible to browse the rows or columns in one direction or the other.
Chaque bloc peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles. Each block can also be divided into sub-blocks which are themselves subdividable.
Au cours d'une étape C2 représentée à la figure 1 , le codeur CO sélectionne comme bloc courant un premier bloc à coder B, de l'image ICj, tel que par exemple le premier bloc B-,. During a step C2 represented in FIG. 1, the coder CO selects as current block a first block to be coded B, of the image IC j , such as for example the first block B-.
Au cours d'une étape C3 représentée à la figure 1 , il est procédé à la prédiction du bloc courant B, par des techniques connues de prédiction Intra et/ou Inter. A cet effet, le bloc B, est prédit par rapport à au moins un bloc prédicteur conformément à un mode de prédiction MPS sélectionné parmi une pluralité de modes de prédiction prédéterminés MP0, MP-i ,..., MPV,..., MPR où 0<v≤R+1 et 0<s≤R+1 . During a step C3 shown in FIG. 1, the current block B is predicted by known Intra and / or Inter prediction techniques. For this purpose, the block B is predicted with respect to at least one predictor block according to a prediction mode MP S selected from among a plurality of predetermined prediction modes MP 0 , MP-1, ..., MP V ,. .., MP R where 0 <v≤R + 1 and 0 <s≤R + 1.
De façon connue en soi, le bloc B, est prédit par rapport à une pluralité de blocs prédicteurs candidats. Chacun des blocs prédicteurs candidats est un bloc de pixels qui a été déjà codé ou bien codé puis décodé. De tels blocs prédicteurs sont préalablement stockés dans la mémoire tampon MT_C du codeur CO telle que représentée à la figure 2. In a manner known per se, block B is predicted with respect to a plurality of candidate predictor blocks. Each of the candidate predictor blocks is a block of pixels that has already been encoded or encoded and decoded. Such predictor blocks are stored beforehand in the buffer MT_C of the coder CO as represented in FIG. 2.
A l'issue de l'étape C3 de prédiction, un bloc prédicteur optimal BPopt est obtenu suite à une mise en compétition desdits modes de prédiction prédéterminés, par exemple par minimisation d'un critère débit distorsion bien connu de l'homme du métier. Le bloc BPopt est considéré comme une approximation du bloc courant B,. Les informations relatives à cette prédiction sont destinées à être inscrites dans un signal ou flux de données à transmettre à un décodeur. De telles informations comprennent notamment le type de prédiction (Inter ou Intra), et le cas échéant, le mode de prédiction sélectionné MPS, le type de partitionnement du bloc courant si ce dernier a été subdivisé, l'indice d'image de référence et le vecteur de déplacement utilisés dans le cas
où un mode de prédiction Inter a été sélectionné. Ces informations sont compressées par le codeur CO. At the end of the prediction step C3, an optimal predictor block BP op t is obtained following a putting into competition of said predetermined prediction modes, for example by minimizing a distortion rate criterion that is well known to the human being. job. The BP op t block is considered as an approximation of the current block B ,. The information relating to this prediction is intended to be written in a signal or data stream to be transmitted to a decoder. Such information includes in particular the type of prediction (Inter or Intra), and if appropriate, the selected prediction mode MP S , the partitioning type of the current block if the latter has been subdivided, the reference image index and the displacement vector used in the case where an Inter prediction mode has been selected. This information is compressed by the CO encoder.
Au cours d'une étape C4 représentée à la figure 1 , il est procédé à la comparaison des données relatives au bloc courant B, aux données du bloc prédicteur BPopt. Plus précisément, au cours de cette étape, il est procédé classiquement au calcul de la différence entre le bloc prédicteur obtenu BPopt et le bloc courant B,. During a step C4 shown in FIG. 1, the data relating to the current block B are compared with the data of the predictor block BP op t. More precisely, during this step, the difference between the predictor block obtained BP op t and the current block B i is conventionally calculated.
Un ensemble de données, appelé bloc résidu Βη, est alors obtenu à l'issue de l'étape C4. A set of data, called residual block Βη, is then obtained at the end of step C4.
Les étapes C3 et C4 sont mises en œuvre par un module logiciel de codage prédictif PRED_C représenté sur la figure 2, lequel module est piloté par le processeur PROC_C. The steps C3 and C4 are implemented by a predictive coding software module PRED_C shown in FIG. 2, which module is controlled by the processor PROC_C.
Au cours d'une étape C5 représentée à la figure 1 , le codeur CO de la figure 2 procède à la détermination d'une transformée du bloc résidu Br,. Une telle transformée peut être par exemple : During a step C5 represented in FIG. 1, the coder CO of FIG. 2 proceeds to the determination of a transform of the residue block Br 1. Such a transform can be for example:
- une transformée directe telle que par exemple une transformée en cosinus discrète de type DCT, a direct transform such as, for example, a discrete cosine transform of the DCT type,
- une transformée directe telle que par exemple une transformée en sinus discrète de type DST, a direct transform such as, for example, a discrete sinus transform of the DST type,
-une transformée bloc optimisée en débit distorsion comme présenté dans la publication « Rate-distortion optimisée! transform compétition for intra coding in HEVC », Adrià Arrufat, Pierrick Philippe, Olivier Déforges, IEEE VCIP, Dec 2014, -an optimized block transform distortion rate as presented in the publication "Rate-distortion optimized! transform competition for intra coding in HEVC ", Adrià Arrufat, Philippe Pierrick, Olivier Deforges, IEEE VCIP, Dec 2014,
- une transformée en ondelettes du type DWT, a wavelet transform of the DWT type,
- une transformée incluant un recouvrement du type Lapped a transform including a lapped type covering
Transforms telle que présentée dans la publication « Réduction of blocking effects in image coding with a lapped orthogonal transform », H. Malvar, Transforms as presented in the publication "Reduction of blocking effects in image coding with a lapped orthogonal transform", H. Malvar,
- ou tout autre type de transformées exploitables. - or any other type of exploitable transform.
Ladite transformée appartient à un ensemble de transformées qui, au cours d'une étape préalable de stockage C0 représentée à la figure 1 , est stocké en association avec le mode de prédiction sélectionné MPS, dans la mémoire tampon MT_C de la figure 2. Au cours de cette étape de stockage :
- le mode de prédiction prédéterminé MP0 est stocké en association avec un ensemble de transformées contenant un nombre NB0 de transformées, Said transform belongs to a set of transforms which, during a prior storage step C0 shown in FIG. 1, is stored in association with the selected prediction mode MP S , in the buffer memory MT_C of FIG. during this storage step: the predetermined prediction mode MP 0 is stored in association with a set of transforms containing a number NB 0 of transforms,
- le mode de prédiction prédéterminé MP est stocké en association avec un ensemble de transformées contenant un nombre NB de transformées, the predetermined prediction mode MP is stored in association with a set of transforms containing a number NB of transforms,
- le mode de prédiction prédéterminé MPV est stocké en association avec un ensemble de transformées contenant un nombre NBV de transformées, the predetermined prediction mode MP V is stored in association with a set of transforms containing a number NB V of transforms,
- le mode de prédiction prédéterminé MPR est stocké en association avec un ensemble de transformées contenant un nombre NBR de transformées. the predetermined prediction mode MP R is stored in association with a set of transforms containing a number NB R of transforms.
Conformément à l'invention, pour au moins deux modes de prédiction différents MPa, MPb appartenant à la pluralité de modes de prédiction prédéterminés MP0, MPi, ..., MPV, ..., MPR, avec 0<a≤R+1 et 0<b≤R+1 , le nombre de transformées, noté NBa, qui est contenu dans l'ensemble de transformées associé au mode de prédiction MPa est différent du nombre de transformées, noté NBb, qui est contenu dans un ensemble de transformées stocké en association avec le mode de prédiction MPb. According to the invention, for at least two different prediction modes MP a , MP b belonging to the plurality of predetermined prediction modes MP 0 , MPi, ..., MP V , ..., MP R , with 0 < a≤R + 1 and 0 <b≤R + 1, the number of transforms, noted NB a , which is contained in the set of transforms associated with the prediction mode MP a is different from the number of transforms, noted NB b , which is contained in a set of stored transforms in association with the prediction mode MP b .
Selon un premier exemple de réalisation, pour au moins deux ensembles de transformées stockés respectivement en association avec deux modes de prédiction de ladite pluralité MP0, MP-i , . . . , MPV, ..., MPR de modes de prédiction prédéterminés, le nombre de transformées dans chacun desdits deux ensembles contient en commun au moins une opération de transformée identique. According to a first exemplary embodiment, for at least two sets of transforms respectively stored in association with two prediction modes of said plurality MP 0 , MP-i,. . . , MP V , ..., MP R of predetermined prediction modes, the number of transforms in each of said two sets contains in common at least one identical transform operation.
Par exemple, dans le cas d'un codage selon le standard HEVC, le nombre de transformées dans chacun desdits deux ensembles peut par exemple contenir en commun : For example, in the case of encoding according to the HEVC standard, the number of transforms in each of said two sets may for example contain in common:
- une transformée de type DST ou bien une transformée de type a DST type transform or a type transform
DCT, DCT
- deux transformées, l'une de type DCT, l'autre de type DST,
- plus de deux transformées en commun. two transforms, one of the DCT type and the other of the DST type, - more than two transformed in common.
Par ailleurs, plus de deux ensembles de transformées peuvent contenir en commun au moins une opération de transformée identique. Toujours dans le cas d'un codage selon le standard HEVC, et plus particulièrement dans le cas d'une prédiction Intra conforme à ce standard qui propose trente-cinq directions de prédiction possibles DPI0, DP , ..., DPI34, les ensembles de transformées associés respectivement à chacune de ces trente-cinq directions de prédiction peuvent contenir en commun au moins une opération de transformée identique. On the other hand, more than two sets of transforms may contain in common at least one identical transform operation. Still in the case of an encoding according to the HEVC standard, and more particularly in the case of an Intra prediction conforming to this standard which proposes thirty-five possible prediction directions DPI 0 , DP, ..., DPI 34 , the sets of transforms respectively associated with each of these thirty-five prediction directions may contain in common at least one identical transform operation.
Selon un deuxième exemple de réalisation représenté sur la figure 2, l'ensemble de transformées associé audit mode de prédiction sélectionné MPS et contenant un nombre NBS de transformées est stocké en association avec au moins un autre mode de prédiction, noté MPU, de ladite pluralité de modes de prédiction prédéterminés MP0, MPi, ..., MPV,..., MPR, avec 0≤u≤R+1 . According to a second exemplary embodiment represented in FIG. 2, the set of transforms associated with said selected prediction mode MP S and containing a number NB S of transforms is stored in association with at least one other prediction mode, denoted MP U , of said plurality of predetermined prediction modes MP 0 , MPi, ..., MP V , ..., MP R , with 0≤u≤R + 1.
Ainsi, en fonction du nombre NBS de transformées qui est contenu dans l'ensemble de transformées associé au mode de prédiction MPS sélectionné à l'étape C4, l'étape de détermination précitée C5 consiste : Thus, as a function of the number NB S of transforms that is contained in the set of transforms associated with the prediction mode MP S selected in step C4, the aforementioned determination step C5 consists of:
- soit à lire une unique transformée, notée Ts>k, si l'ensemble de transformées qui est associé au mode de prédiction MPS ne contient qu'une transformée, c'est-à-dire dans le cas où NBS=1 , or to read a single transform, denoted T s> k , if the set of transforms which is associated with the prediction mode MP S contains only one transform, that is to say in the case where NB S = 1,
- soit à sélectionner une transformée parmi plusieurs, notée par exemple Ts>k*, avec 0<k*≤N-1 , si l'ensemble de transformées qui est associé au mode de prédiction MPS contient plus d'une transformée, c'est-à-dire dans le cas où NBS>1 , une telle sélection étant mise en œuvre selon un critère de performance de codage prédéterminé, par exemple : either to select one of several transformations, noted for example T s> k *, with 0 <k * ≤N-1, if the set of transforms which is associated with the prediction mode MP S contains more than one transform, that is to say in the case where NB S > 1, such a selection being implemented according to a predetermined coding performance criterion, for example:
· par minimisation du critère débit/distorsion bien connu de l'homme du métier, · By minimizing the rate / distortion criterion well known to those skilled in the art,
• ou par minimisation uniquement du débit, • or by minimizing only the flow,
• ou par minimisation uniquement de la distorsion, • or by minimizing only the distortion,
• ou par minimisation du compromis débit- distorsion/complexité bien connu de l'homme du métier, Or by minimizing the flow-distortion / complexity compromise well known to those skilled in the art,
• ou par minimisation uniquement de l'efficacité, • or by minimizing only the efficiency,
• ou par minimisation uniquement de la complexité.
On rappelle que dans un contexte de codage vidéo, la complexité est définie par exemple par le comptage du nombre d'opérations mathématiques (addition, multiplication, décalage binaire) impliquées pour le calcul de la transformée des coefficients du bloc résidu. • or by minimizing only the complexity. It is recalled that in a video coding context, the complexity is defined for example by counting the number of mathematical operations (addition, multiplication, binary shift) involved for calculating the transform of the coefficients of the residual block.
Au cours d'une étape C6 représentée à la figure 1 , il est procédé à la transformée du bloc résidu Br, à l'aide de la transformée Ts>k ou Ts>k*. Une telle opération est effectuée par un module logiciel MTR_C de transformée, tel que représenté figure 2, lequel module est piloté par le processeur PROC_C. A l'issue de l'étape C6, un bloc transformé Bt, est obtenu. During a step C6 shown in FIG. 1, the residue block Br is transformed using the transform T s> k or T s> k *. Such an operation is performed by a transform software module MTR_C, as represented in FIG. 2, which module is controlled by the processor PROC_C. At the end of step C6, a transformed Bt block is obtained.
Au cours d'une étape C7 représentée à la figure 1 , il est procédé à la quantification des données du bloc transformé Bt, selon une opération classique de quantification, telle que par exemple une quantification scalaire ou vectorielle. Un bloc Bq, de coefficients quantifiés est alors obtenu. L'étape C7 est effectuée au moyen d'un module logiciel de quantification MQ_C tel que représenté à la figure 2, lequel module est piloté par le processeur PROC_C. During a step C7 represented in FIG. 1, the data of the transformed block Bt are quantized according to a conventional quantization operation, such as, for example, a scalar or vector quantization. A block Bq of quantized coefficients is then obtained. Step C7 is performed by means of a quantization software module MQ_C as represented in FIG. 2, which module is controlled by the processor PROC_C.
Sur la figure 1 , l'étape de quantification C7 est représentée à la suite de l'étape C6 d'application de transformée. Toutefois, l'étape C7 peut être intégrée à l'étape C6 qui est alors mise en œuvre avec des nombres entiers incluant le facteur de quantification. In FIG. 1, the quantization step C7 is represented following the transforming step C6. However, step C7 can be integrated in step C6 which is then implemented with integers including the quantization factor.
De façon connue en soi, au cours d'une étape C8 représentée sur la figure 1 , il est procédé au codage des données du bloc Bq,. Un tel codage est par exemple un codage entropique de type CABAC ("Context Adaptive Binary Arithmetic Coder" en anglais) ou bien encore un codage entropique de type arithmétique ou de Huffman. A l'issue de l'étape C8 sont obtenues des données codées d-ι , d2, ...,dw, ..., dv (1≤w≤V avec V entier naturel) associées au bloc courant B,. In a manner known per se, during a step C8 shown in FIG. 1, the data of the block Bq 1 is encoded. Such coding is, for example, entropic coding of CABAC type ("Context Adaptive Binary Arithmetic Coder" in English) or else an entropy coding of arithmetic type or Huffman type. At the end of step C8 are obtained coded data d-ι, d 2 ,..., D w ,..., D v (1 ww V V with natural integer V) associated with the current block B ,.
L'étape C8 est mise en œuvre par un module logiciel de codage MC_C représenté sur la figure 2, lequel module est piloté par le processeur PROC_C. Step C8 is implemented by an encoding software module MC_C shown in FIG. 2, which module is controlled by the processor PROC_C.
Au cours d'une étape C9 représentée à la figure 1 , il est procédé à la construction du signal ou flux de données F qui contient : During a step C9 shown in FIG. 1, the signal or data flow F which contains:
- les données codées d-i , d?, ...,d w, dv obtenues à l'issue de l'étape C8 précitée,
- l'index IDX de la transformée Ts>k ou TSik* qui a été déterminée à l'étape C5. the coded data di, d?, ..., dw, dv obtained at the end of the aforementioned step C8, the IDX index of the transform T s> k or T Sik * which has been determined in step C5.
L'index IDX peut être inscrit dans le flux, par exemple sous la forme d'un code binaire. Une telle disposition est par exemple mise en œuvre si la transformée Ts>k ou TSik* est une transformée qui est commune aux R+1 ensembles de transformées associés respectivement aux R+1 modes de prédiction prédéterminés MP0, MP-i , ... , MPV,..., MPR. L'index IDX sera alors mis à 1 ou 0, par exemple 1 . Si en revanche la transformée Ts>k ou Ts>k* est une transformée qui n'est pas commune aux R+1 ensembles de transformées associés respectivement aux R+1 modes de prédiction prédéterminés MP0, MP-i , ... , MPv, ... , M PR, l'index IDX contiendra un premier bit de valeur 0, suivi d'un mot de code supplémentaire représentatif de la transformée Ts>k ou Ts>k* qui a été sélectionnée dans le nombre NBS de transformées contenu dans l'ensemble de transformées associé au mode de prédiction MPS sélectionné. Le premier bit de valeur 0 est par exemple codé à l'aide d'un codeur CABAC. Le mot de code supplémentaire peut être codé sur une longueur fixe si le nombre de transformées NBS est une puissance de 2. Le mot de code supplémentaire peut être également codé sur un code à longueur variable si le nombre de transformées NBS est une puissance de 2 ou pas. The IDX index can be written in the stream, for example in the form of a binary code. Such an arrangement is for example implemented if the transform T s> k or T Sik * is a transform which is common to the R + 1 sets of transforms respectively associated with the R + 1 predetermined prediction modes MP 0 , MP-i, ..., MP V , ..., MP R. The IDX index will then be set to 1 or 0, for example 1. If, on the other hand, the transform T s> k or T s> k * is a transform which is not common to the R + 1 sets of transforms respectively associated with the R + 1 predetermined prediction modes MP 0 , MP-i, .. ., MPv, ..., M PR, the IDX index will contain a first bit of value 0, followed by an additional codeword representative of the transform T s> k or T s> k * which has been selected in the number NB S of transforms contained in the set of transforms associated with the prediction mode MP S selected. The first bit of value 0 is for example coded using a CABAC encoder. The additional code word may be coded on a fixed length if the number of transforms NB S is a power of 2. The additional codeword may also be coded on a variable length code if the number of transforms NB S is a power of 2 or not.
L'étape C9 est mise en œuvre par un module logiciel MCF de construction de signal de données, tel que représenté sur la figure 2, lequel module est piloté par le processeur PROC_C. The step C9 is implemented by a software module MCF data signal construction, as shown in Figure 2, which module is controlled by the PROC_C processor.
Le signal de données F est ensuite délivré via la sortie SOR_C du codeur CO de la figure 2, puis transmis par un réseau de communication (non représenté) à un terminal distant. Celui-ci comporte le décodeur DO représenté à la figure 10. The data signal F is then delivered via the output SOR_C of the coder CO of FIG. 2, then transmitted by a communication network (not shown) to a remote terminal. This includes the decoder DO shown in FIG.
De façon connue en soi, le signal de données F comprend en outre certaines informations encodées par le codeur CO, telles que le type de prédiction (Inter ou Intra) appliqué à l'étape C3, et le cas échéant, le mode de prédiction sélectionné, l'index du bloc prédicteur obtenu BPopt obtenu à l'issue de l'étape C3, noté IBPopt, le type de partitionnement du bloc courant B, si ce dernier a été partitionné, l'indice d'image de référence et le vecteur de mouvement utilisés dans le mode de prédiction Inter.
Il est ensuite procédé au décodage du bloc résidu Br,. Un bloc résidu décodé BDn est alors obtenu. Il est alors procédé à la construction du bloc décodé BDi en ajoutant au bloc prédicteur optimal BPopt le bloc résidu décodé BDn. In a manner known per se, the data signal F furthermore comprises certain information encoded by the coder CO, such as the type of prediction (Inter or Intra) applied to the step C3, and, if appropriate, the prediction mode selected. , the index of the obtained predictor block BP opt obtained at the end of step C3, denoted IBP op t , the partitioning type of the current block B, if the latter has been partitioned, the reference image index and the motion vector used in the Inter prediction mode. It is then proceeded to decode the Br residue block. A decoded residue block BDn is then obtained. The decoded block BDi is then constructed by adding to the optimal predictor block BP opt the decoded residue block BDn.
II est à noter que le bloc décodé BD, est le même que le bloc décodé obtenu à l'issue du procédé de décodage de l'image ICj qui sera décrit plus loin dans la description. Le bloc décodé BD, est ainsi rendu disponible pour être utilisé par le codeur CO de la figure 2. It should be noted that the decoded block BD is the same as the decoded block obtained at the end of the decoding process of the image IC j which will be described later in the description. The decoded block BD is thus made available for use by the coder CO of FIG. 2.
Les étapes de codage C1 à C9 qui viennent d'être décrites ci-dessus sont ensuite mises en œuvre pour chacun des blocs B-i , B2, B,, ..., Bs à coder de l'image courante ICj considérée, dans un ordre prédéterminé qui est par exemple l'ordre lexicographique. The coding steps C1 to C9 which have just been described above are then implemented for each of the blocks Bi, B 2 , B ,,..., B s to be encoded of the current image IC j considered, in a predetermined order which is for example the lexicographic order.
On va maintenant décrire, en référence aux figures 3 à 8, selon un premier mode de réalisation de l'invention, un procédé de détermination du nombre de transformées pour chaque mode de prédiction prédéterminé, dans le cas d'un codage HEVC de type Intra. With reference to FIGS. 3 to 8, a method of determining the number of transforms for each predetermined prediction mode, in the case of a HEVC coding of the Intra type, will now be described with reference to FIGS. .
Préalablement à la mise en œuvre des étapes du procédé de codage de la figure 1 , il est procédé aux étapes suivantes : Prior to the implementation of the steps of the coding method of FIG. 1, the following steps are carried out:
Au cours d'une étape ST1 représentée sur la figure 3, il est déterminé un nombre maximal nmax de transformées susceptible d'être associé à un mode de prédiction intra donné. During a step ST1 shown in FIG. 3, a maximum number n max of transforms that can be associated with a given intra prediction mode is determined.
Dans le mode de réalisation représenté, nmax=16, ce nombre pouvant inclure ou non au moins une transformée HEVC commune à chacun des 35 modes de prédiction intra ipm du standard HEVC. In the embodiment shown, n max = 16, this number may or may not include at least one HEVC transform common to each of the 35 intra ipm prediction modes of the HEVC standard.
Au cours d'une étape ST2 représentée sur la figure 3, il est procédé à une initialisation à zéro du nombre de transformées pour chacun des trente-cinq modes de prédiction intra ipm du standard HEVC. Chaque mode de prédiction n'a à cette étape qu'une seule transformée commune du type de celle de HEVC (DCT ou DST) et zéro transformée additionnelle. Une telle étape est résumée dans le tableau TB1 de la figure 4, dont la première colonne liste les 35 modes de prédiction intra ipm0 à ipm34 et la première ligne liste les quinze premières itérations (iter) au cours de chacune desquelles est ajoutée une transformée.
A la suite de la première colonne du tableau TB1 sont listés également, pour chacune des quinze premières itérations (iter) : During a step ST2 shown in FIG. 3, the number of transforms for each of the thirty-five intrapm prediction modes of the HEVC standard is initialized to zero. Each prediction mode has at this step only one common transform of the type of that of HEVC (DCT or DST) and zero additional transform. Such a step is summarized in the table TB1 of FIG. 4, whose first column lists the 35 prediction modes intra ipm 0 to ipm 34 and the first line lists the first fifteen iterations, during each of which is added a transformed. Following the first column of Table TB1 are also listed, for each of the first fifteen iterations:
- le mode de prédiction (ipm) sélectionné selon le meilleur compromis - ressources mémoire/performances de codage -, suite à l'ajout d'une transformée donnée, the prediction mode (ipm) selected according to the best compromise - memory resources / coding performance -, following the addition of a given transform,
- le nombre global (Nb) de transformées ajoutées depuis la première itération (iter), the global number (Nb) of transforms added since the first iteration,
- la capacité de stockage (ROM) utilisée au codeur pour stocker la globalité des transformées ajoutées, the storage capacity (ROM) used at the encoder to store the entirety of the added transforms,
- les performances de codage (BDRate) obtenues, c'est-à-dire le pourcentage de réduction de débit obtenu relativement à un codeur HEVC. - the coding performance (BDRate) obtained, that is to say the percentage of flow reduction obtained relative to a HEVC encoder.
Dans le tableau TB1 , l'initialisation à zéro est représentée avec iter=0. Au cours d'une étape ST3 représentée sur la figure 3, il est procédé à une première itération iter=1 , au cours de laquelle on ajoute une première transformée. In TB1 array, initialization to zero is represented with iter = 0. During a step ST3 shown in FIG. 3, a first iteration is carried out 1, during which a first transform is added.
Au cours d'une étape ST4 représentée sur la figure 3, il est procédé, pour chacun des trente-cinq modes de prédiction intra, au calcul des performances de codage et de la capacité de stockage à utiliser en relation avec la transformée ajoutée. During a step ST4 shown in FIG. 3, for each of the thirty-five intra prediction modes, calculation of the coding performance and the storage capacity to be used in relation to the added transform are performed.
Pour un mode de prédiction intra donné ipmx, avec 0<x<34, et une itération donnée it, avec it>0, les performances de codage obtenues, c'est-à- dire le gain en débit, sont notées Rit,x et la capacité de stockage correspondante pour stocker la transformée ajoutée est notée MjtjX. For a given intra prediction mode ipm x , with 0 <x <34, and a given iteration it, with it> 0, the obtained coding performances, that is to say the gain in bit rate, are denoted Ri t , x and the corresponding storage capacity for storing the added transform is denoted Mj tjX .
Au cours d'une étape ST5 représentée sur la figure 3, il est procédé, pour chacun des trente-cinq modes de prédiction intra, au calcul du rapport a_x entre l'écart de débit obtenu et l'écart de mémoire ajouté, tel que : During a step ST5 shown in FIG. 3, for each of the thirty-five intra prediction modes, calculation of the ratio a_x between the obtained bit rate deviation and the added memory deviation, such as :
a_x=(Rit,x-Ro)/(Mit,x-M0) avec R0 et M0 présentant respectivement le débit économisé et la mémoire ajoutée par rapport au standard HEVC, c'est- à-dire à l'itération it=0. (R0=0, M0=0). a_x = (Rit, x-Ro) / (Mit, xM 0 ) with R 0 and M 0 respectively having the saved bit rate and the memory added compared to the HEVC standard, that is to say the iteration it = 0. (R 0 = 0, M 0 = 0).
Au cours d'une étape ST6 représentée sur la figure 3, il est procédé à la sélection du mode de prédiction intra ipmx pour lequel le rapport a_x présente la valeur la plus favorable, c'est-à-dire la diminution de débit la plus importante pour des ressources mémoire ajoutées les plus faibles possible.
Comme représenté dans la troisième colonne du tableau TB1 de la figure 4, pour la première itération it=1 , c'est la valeur du rapport a_0 qui est la plus favorable et qui correspond au mode de prédiction intra 0. L'indice de ce mode est indiqué en bas de la troisième colonne du tableau en association avec : In a step ST6 shown in FIG 3, it is proceeded to select the intra prediction mode IPM x for which the A_X report presents the most favorable value, that is to say the rate decrease the more important for added memory resources as low as possible. As represented in the third column of the table TB1 of FIG. 4, for the first iteration it = 1, it is the value of the ratio a_0 which is the most favorable and which corresponds to the prediction mode intra 0. The index of this mode is indicated at the bottom of the third column of the table in association with:
- le débit Ri économisé par rapport au standard HEVC, soit the flow rate Ri saved compared with the HEVC standard,
- la mémoire M ajoutée par rapport au standard HEVC, soit M = the memory M added with respect to the HEVC standard, ie M =
0,1 ko. 0.1 ko.
Au cours d'une étape ST7 représentée sur la figure 3, il est procédé à une mise à jour du codeur CO de la figure 2 avec la transformée ajoutée lors de cette première itération. During a step ST7 shown in FIG. 3, the CO encoder of FIG. 2 is updated with the transform added during this first iteration.
Les étapes ST3 à ST7 sont ensuite à nouveau appliquées pour chaque itération. The steps ST3 to ST7 are then again applied for each iteration.
Comme illustré sur la figure 4, le tableau TB1 présente comment, sur les quinze premières itérations effectuées, le gain en débit (BDRate) est amélioré en fonction des itérations, à mesure que les ressources mémoire (ROM) augmentent. As illustrated in FIG. 4, the table TB1 shows how, over the first fifteen iterations carried out, the bit rate gain (BDRate) is improved as a function of the iterations, as the memory resources (ROM) increase.
Ainsi par exemple, à l'itération iter=15, comme représenté dans la dernière colonne du tableau TB1 , c'est la valeur du rapport a_28 qui est la plus favorable et qui correspond au mode de prédiction intra 28. L'indice de ce mode est indiqué en bas de la dernière colonne du tableau en association avec : For example, at the iteration iter = 15, as represented in the last column of the table TB1, it is the value of the ratio a_28 which is the most favorable and which corresponds to the prediction mode intra 28. The index of this mode is indicated at the bottom of the last column of the table in association with:
- le débit R15 économisé par rapport au standard HEVC, soit
- the flow R15 saved compared to the HEVC standard,
- la mémoire M 5 ajoutée par rapport au standard HEVC, soit M 5= 2ko. the memory M 5 added compared to the HEVC standard, ie M 5 = 2Ko.
Par ailleurs, à l'itération iter=15, est représenté le nombre de transformées qui ont été ajoutées par mode de prédiction. Ainsi : Moreover, at the iter iteration = 15, is represented the number of transforms that have been added by prediction mode. So :
- pour le mode de prédiction intra 0, quatre transformées ont été ajoutées, for the intra 0 prediction mode, four transforms have been added,
- pour les modes de prédiction intra 10 et 16, deux transformées ont été respectivement ajoutées, for the intra prediction modes 10 and 16, two transforms were respectively added,
- pour les modes de prédiction intra 1 , 8, 9, 1 1 , 14, 25, 27 et 28, une transformée a été respectivement ajoutée.
Pour l'itération iter=15, un total de seize transformées a donc été ajouté. En référence maintenant à la figure 5, est présenté : for the prediction modes within 1, 8, 9, 11, 14, 25, 27 and 28, a transform was respectively added. For the Iteration iter = 15, a total of sixteen transforms has therefore been added. Referring now to Figure 5, is shown:
- directement en liaison avec le tableau TB1 de la figure 4, une courbe CB1 en pointillé, représentative de l'évolution des performances de codage par rapport aux ressources mémoire utilisées, à la suite de la mise en œuvre du procédé itératif de la figure 3, directly in connection with the table TB1 of FIG. 4, a curve CB1 in dotted line, representative of the evolution of the coding performance with respect to the memory resources used, following the implementation of the iterative method of FIG. ,
- une courbe CB2 en trait plein, représentative de l'évolution des performances de codage par rapport aux ressources mémoire utilisées, telle qu'obtenue avec un codeur de l'état de l'art qui utilise un nombre de transformées identique par mode de prédiction. a curve CB2 in solid line, representative of the evolution of the coding performance with respect to the memory resources used, as obtained with a coder of the state of the art which uses an identical number of transforms by prediction mode .
En comparant les deux courbes CB1 et CB2, on note que les performances de codage, pour une empreinte de mémoire donnée, sont considérablement améliorées lorsque le procédé itératif de détermination du nombre de transformées par mode de prédiction, tel que représenté sur la figure 3, est mis en œuvre. De façon correspondante, le procédé itératif de détermination du nombre de transformées par mode de prédiction, tel que représenté sur la figure 3, permet d'obtenir une réduction significative des ressources mémoire nécessaires au stockage des transformées déterminées, pour des performances de codage visées. By comparing the two curves CB1 and CB2, it is noted that the coding performance, for a given memory footprint, is considerably improved when the iterative method for determining the number of transforms per prediction mode, as represented in FIG. is implemented. Correspondingly, the iterative process for determining the number of transforms per prediction mode, as represented in FIG. 3, makes it possible to obtain a significant reduction in the memory resources necessary for storing the determined transforms, for the coding performances concerned.
Afin d'apprécier le gain apporté, selon l'invention, en termes de capacité de stockage, pour des performances de codage visées, est présenté le tableau ci-dessous qui dresse un comparatif des capacités de stockage fixes et variables, et de la réduction de capacité de stockage obtenue avec les capacités de stockage variables utilisées selon l'invention.
In order to appreciate the gain provided, according to the invention, in terms of storage capacity, for coding performances referred to, is presented the table below which compares the fixed and variable storage capacities, and the reduction. storage capacity obtained with the variable storage capacities used according to the invention.
Gain en Capacité de Capacité Réduction Gain in Capacity Capacity Reduction
débit stockage fixe de Capacité de Fixed storage capacity of
(BDRate)(%) (ko) stockage stockage (%) (BDRate) (%) (ko) storage storage (%)
variable variable
(ko) (Kb)
0.8 4.4 1 .3 71 0.8 4.4 1 .3 71
1 .3 8.8 4.1 53 1 .3 8.8 4.1 53
1 .7 17.5 8.3 53 1 .7 17.5 8.3 53
2.1 35 14.9 58 2.1 35 14.9 58
2.5 70 30.3 57 2.5 70 30.3 57
2.8 140 60.4 57 2.8 140 60.4 57
Ainsi, pour un gain en débit visé de 2.8%, la capacité de stockage des codeurs de l'art antérieur qui utilisent un nombre fixe de transformées par mode de prédiction est de 140 ko, alors que la capacité de stockage des codeurs selon l'invention qui utilisent un nombre variable de transformées par mode de prédiction est de 60.4 ko. La réduction des capacités de stockage des codeurs selon l'invention par rapport aux codeurs de l'état de l'art peut ainsi être estimée à 57% pour le gain en débit visé de 2,8%. Thus, for a target rate gain of 2.8%, the storage capacity of prior art encoders that use a fixed number of transforms per prediction mode is 140 kb, whereas the storage capacity of the encoders according to the using a variable number of transforms per prediction mode is 60.4 kb. The reduction of the storage capacities of the encoders according to the invention with respect to the coders of the state of the art can thus be estimated at 57% for the gain in target bit rate of 2.8%.
Par conséquent, le procédé de codage selon l'invention permet avantageusement d'obtenir des performances de codage élevées, avec un impact limité sur la capacité de stockage des transformées par rapport à celle utilisée dans les procédés de codage de l'art antérieur. Consequently, the coding method according to the invention advantageously makes it possible to obtain high coding performances, with a limited impact on the storage capacity of the transforms compared to that used in the coding methods of the prior art.
On va maintenant décrire, en référence aux figures 1 à 3, 6A, 6B, 7 à 9, un mode de réalisation de l'invention mis en œuvre dans le cas d'un codage HEVC de type Intra, et dans lequel l'ensemble de transformées associé à un mode de prédiction intra sélectionné au cours de l'étape C3 de la figure 1 est préalablement stocké en association avec au moins un autre mode de prédiction de ladite pluralité de modes de prédiction prédéterminés. With reference to FIGS. 1 to 3, 6A, 6B, 7 to 9, an embodiment of the invention implemented in the case of a HEVC encoding of Intra type, and in which the set of transforms associated with an intra prediction mode selected in step C3 of FIG. 1 is previously stored in association with at least one other prediction mode of said plurality of predetermined prediction modes.
Dans cet exemple, à l'issue de l'étape C3 de la figure 1 , le bloc prédicteur optimal BPopt obtenu est associé à une direction de prédiction Intra optimale qui est par exemple la direction DPI22-
Conformément au présent mode de réalisation, la transformée (si unique) ou l'ensemble de transformées associée(s) à la direction de prédiction Intra DPI22 est préalablement associée, au cours de l'étape CO de la figure 1 , à une autre direction de prédiction Intra, à la condition que cette autre direction de prédiction Intra soit symétrique par rapport à la direction de prédiction Intra DPI22- De cette façon, deux fois moins de transformées sont stockées au niveau du codeur CO, et de façon correspondante, au niveau du décodeur qui sera décrit plus loin dans la suite de la description, l'avantage étant une réduction de la mémoire côté codeur et décodeur. In this example, at the end of step C3 of FIG. 1, the optimal predictor block BP op t obtained is associated with an optimal Intra prediction direction which is, for example, the direction DPI 2 2- According to the present embodiment, the transform (if unique) or the set of transforms associated with the Intra DPI22 prediction direction is previously associated, during the step CO of FIG. 1, with another direction. Intra prediction, provided that this other Intra prediction direction is symmetrical with respect to the Intra DPI 2 2 prediction direction. In this way, two-fold fewer transforms are stored at the CO encoder, and correspondingly, at the level of the decoder which will be described later in the following description, the advantage being a reduction of the memory encoder side and decoder.
Selon une première variante, deux directions de prédiction Intra présentant des symétries sont associées à la même transformée ou au même ensemble de transformées. According to a first variant, two Intra prediction directions with symmetries are associated with the same transform or set of transforms.
Selon une deuxième variante, deux directions de prédiction Intra angulaires présentant chacune des écarts d'angles identiques par rapport à une direction verticale (ou horizontale) sont associées à la même transformée ou au même ensemble de transformées. According to a second variant, two intra-angular prediction directions each having identical angle deviations with respect to a vertical (or horizontal) direction are associated with the same transform or set of transforms.
Ainsi, comme représenté à la figure 6A, une direction de prédiction Intra angulaire présentant un angle de 30° par rapport à un axe horizontal AH est associée à une direction de prédiction Intra angulaire présentant symétriquement un angle de -30° par rapport à cet axe horizontal. En référence à la figure 7, ces deux directions de prédiction Intra correspondent respectivement aux directions DPI4 et DP 6. Thus, as represented in FIG. 6A, an Intra-angular prediction direction having an angle of 30 ° with respect to a horizontal axis AH is associated with an Intra-Angular prediction direction presenting symmetrically an angle of -30 ° with respect to this axis. horizontal. With reference to FIG. 7, these two directions of prediction Intra correspond respectively to directions DPI 4 and DP 6 .
De façon similaire, comme représenté sur la figure 6A, une direction de prédiction Intra angulaire présentant un angle de -60° par rapport à un axe horizontal est associée à une direction de prédiction Intra angulaire présentant symétriquement un angle de -120° par rapport à un axe vertical AV. En référence à la figure 7, ces deux directions de prédiction Intra correspondent respectivement aux directions DPI2o et DPI32. Similarly, as shown in FIG. 6A, an Intra Angular prediction direction having an angle of -60 ° with respect to a horizontal axis is associated with an Intra Angular prediction direction having symmetrically an angle of -120 ° with respect to a vertical axis AV. With reference to FIG. 7, these two prediction directions Intra correspond respectively to the directions DPI 2 o and DPI 32 .
Toujours conformément à l'exemple qui vient juste d'être décrit et selon encore un autre mode de réalisation, la transformée ou la pluralité de transformées associée(s) à la direction de prédiction Intra DPI22 sélectionnée à l'étape C3 est préalablement associée à trois autres directions de prédiction Intra, à la condition que ces autres directions de prédiction Intra soient
symétriques par rapport à la direction de prédiction Intra DPI22- De cette façon, quatre fois moins de transformées sont stockées au niveau du codeur CO, et de façon correspondante, au niveau du décodeur qui sera décrit plus loin dans la suite de la description, l'avantage étant une réduction de la mémoire côté codeur et décodeur. Still in accordance with the example which has just been described and according to yet another embodiment, the transform or the plurality of transforms associated with the Intra DPI22 prediction direction selected in step C3 is previously associated with three other Intra prediction directions, provided that these other Intra prediction directions are symmetrical with respect to the Intra DPI 2 2 prediction direction. In this way, four times fewer transforms are stored at the CO encoder, and correspondingly at the decoder which will be described later in the description below. , the advantage being a reduction of the memory encoder and decoder side.
Selon une première variante, quatre directions de prédiction Intra présentant des symétries sont associées à la même transformée ou au même ensemble de transformées. According to a first variant, four Intra prediction directions with symmetries are associated with the same transform or set of transforms.
Selon une deuxième variante, quatre directions de prédiction Intra angulaires présentant chacune des angles identiques par rapport à un axe vertical, horizontal et diagonal sont associées à la même transformée ou au même ensemble de transformées. According to a second variant, four intra-angular prediction directions each having identical angles with respect to a vertical, horizontal and diagonal axis are associated with the same transform or the same set of transforms.
Ainsi, comme représenté sur la figure 6A, une direction de prédiction Intra angulaire présentant un angle de 30° par rapport à l'axe horizontal AH est associée : Thus, as shown in FIG. 6A, an Intra Angular prediction direction having an angle of 30 ° with respect to the horizontal axis AH is associated with:
- à une direction de prédiction Intra angulaire d'un angle de -30° par symétrie par rapport à cet axe horizontal, at a direction of intra-angular prediction of an angle of -30 ° by symmetry with respect to this horizontal axis,
- à une direction de prédiction Intra angulaire présentant un angle de -60° par symétrie par rapport à cet axe horizontal puis par rapport à un axe diagonal AD, at a direction of intra-angular prediction having an angle of -60 ° by symmetry with respect to this horizontal axis then with respect to a diagonal axis AD,
- à une direction de prédiction Intra angulaire présentant un angle de -120° par symétrie par rapport à l'axe diagonal AD. at a direction of intra-angular prediction having an angle of -120 ° by symmetry with respect to the diagonal axis AD.
En référence à la figure 7, ces quatre directions de prédiction Intra correspondent respectivement aux directions DPI4, DPI 6, DPI2o et DPI32. With reference to FIG. 7, these four Intra prediction directions correspond respectively to the directions DPI 4 , DPI 6 , DPI 2 o and DPI 32 .
Le tableau ci-dessous représente neuf groupes Gi à G9 de directions de prédiction Intra HEVC auxquels peut être associée, dans la mémoire tampon MT_C du codeur CO de la figure 2, une même transformée (si unique) ou bien un ensemble de transformées, tel que déterminé selon l'invention.
Groupe Index directions de The table below represents nine groups G 1 to G 9 of Intra HEVC prediction directions to which may be associated, in the buffer MT_C of the coder CO of FIG. 2, the same transform (if unique) or a set of transforms, as determined according to the invention. Group Index directions
prédiction Intra Intra prediction
G, 2 34 18 G, 2 34 18
G2 3 33 19 17 G 2 3 33 19 17
G3 4 32 20 16 G 3 4 32 20 16
G4 5 31 21 15 G 4 5 31 21 15
G5 6 30 22 14 G 5 6 30 22 14
G6 7 29 23 13 G 6 7 29 23 13
G7 8 28 24 12 G 7 8 28 24 12
G8 9 27 25 1 1 G 8 9 27 25 1 1
G9 10 26 G 9 10 26
Les directions angulaires à multiple de 45° (45°, -45° et -135°) telles que représentées sur la figure 6B, correspondant respectivement aux directions de prédiction DPI2, DPI-|8 et DPI34, comme illustré sur la figure 7, sont regroupées par trois et sont associées à une même transformée ou à un même ensemble de transformées. The angular directions at 45 ° multiple (45 °, -45 ° and -135 °) as shown in FIG. 6B, respectively corresponding to the prediction directions DPI 2 , DPI- | 8 and DPI 34 , as illustrated in Figure 7, are grouped by three and are associated with the same transform or the same set of transforms.
Conformément à l'obtention des groupes de modes de prédiction précités, en référence à la figure 1 , il peut être nécessaire de procéder, préalablement à l'étape C5 de détermination d'une transformée, à une étape C40 d'au moins un déplacement des données du bloc résidu Br, tel qu'obtenu à l'issue de l'étape C4 de la figure 1 . Au cours de l'étape C40, chaque donnée considérée est déplacée à l'intérieur du bloc résidu tout en conservant ses plus proches voisines. According to the obtaining of the aforementioned groups of prediction modes, with reference to FIG. 1, it may be necessary to proceed, prior to the step C5 of determining a transform, to a step C40 of at least one displacement. data of the residual block Br, as obtained at the end of step C4 of FIG. During step C40, each piece of data considered is moved inside the residue block while keeping its nearest neighbors.
L'étape C40 est mise en œuvre par un module logiciel de calcul CAL_C tel que représenté sur la figure 2, lequel module est piloté par le processeur PROC_C. The step C40 is implemented by a calculation software module CAL_C as represented in FIG. 2, which module is controlled by the processor PROC_C.
Selon un premier mode de réalisation, un type de déplacement de données est une transposition, à savoir un échange des coordonnées lignes et colonnes d'une donnée du bloc résidu courant. According to a first embodiment, a type of data displacement is a transposition, namely an exchange of the row and column coordinates of a data item of the current residue block.
Selon un deuxième mode de réalisation, un type de déplacement de données est un miroir, à savoir un échange des colonnes ou lignes du bloc résidu courant. Chaque donnée considérée dans le bloc résidu courant Br, est ainsi déplacée à l'intérieur du bloc résidu tout en conservant ses plus proches voisines. According to a second embodiment, a type of data displacement is a mirror, namely an exchange of columns or rows of the current residue block. Each piece of data considered in the current residue block Br, is thus moved inside the residue block while keeping its nearest neighbors.
Selon un troisième mode de réalisation, un type de déplacement de données est une combinaison de la transposition et du miroir, c'est-à-dire :
- soit l'application d'un déplacement de type transposition suivie de l'application d'un déplacement de type miroir aux données du bloc résidu courant, According to a third embodiment, a type of data displacement is a combination of the transposition and the mirror, that is to say: either the application of a displacement of transposition type followed by the application of a mirror-like displacement to the data of the current residue block,
- soit l'application d'un déplacement de type miroir suivie de l'application d'un déplacement de type transposition aux données du bloc résidu courant. or the application of a mirror-type displacement followed by the application of a displacement of transposition type to the data of the current residue block.
En outre, selon un autre mode de réalisation de l'invention, le type de déplacement de données dans le bloc résidu Βη est fonction du mode de prédiction MPS sélectionné. In addition, according to another embodiment of the invention, the type of data displacement in the residual block Βη is a function of the prediction mode MP S selected.
En référence à la figure 8, il existe huit types de déplacement possibles différents numérotés de 0 à 7 qui permettent à un pixel donné du bloc résidu Βη de conserver ses pixels voisins. Par exemple, pour le pixel p7, ce dernier est toujours entouré des pixels p2, p3, p4, p6, p8, p10, p1 1 et p12. De façon particulière, la rotation miroir de type 0 qui est appliquée au bloc résidu Bn, permet d'obtenir un bloc résidu modifié Βιτιη qui, dans le cas présent, est le même que le bloc résidu Βη. Referring to Figure 8, there are eight different types of possible displacement numbered from 0 to 7 that allow a given pixel of the residue block Βη to keep its neighboring pixels. For example, for the pixel p7, the pixel is always surrounded by pixels p2, p3, p4, p6, p8, p10, p1 1 and p12. In particular, the type 0 mirror rotation which is applied to the residual block Bn, makes it possible to obtain a modified residual block Βιτιη which, in this case, is the same as the residual block Βη.
En outre, conformément à l'invention, une direction de prédiction Intra est associée à l'un des huit types de déplacement, selon son mode de regroupement. Par exemple : In addition, according to the invention, an Intra prediction direction is associated with one of the eight types of displacement, according to its grouping mode. For example :
- les directions de prédiction intra DPI22 et DPI6 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir de type 0 et de type 5 telles que représentées sur la figure 8, the intra-DPI 2 2 and DPI 6 prediction directions associated with the same transform or the same set of transforms are themselves respectively associated with the type 0 and type 5 mirror rotations as represented in FIG. 8,
- les directions de prédiction intra DPI4 et DPI 6 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir de type 0 et de type 2 telles que représentées sur la figure 8, the intra-DPI 4 and DPI 6 prediction directions associated with the same transform or the same set of transforms are themselves respectively associated with the type 0 and type 2 mirror rotations as represented in FIG. 8,
- les directions de prédiction intra DPI2o et DPI32 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir de type 0 et de type 1 telles que représentées sur la figure 8, the intra-DPI 2 o and DPI 32 prediction directions associated with the same transform or the same set of transforms are themselves respectively associated with the type 0 and type 1 mirror rotations as represented in FIG. 8,
- les directions de prédiction intra DPI4, DPI 6, DPI2o et DPI32 associées à la même transformée ou au même ensemble de transformées sont
elles-mêmes associées respectivement aux rotations miroir de type 6, de type 4, de type 0 et de type 1 , telles que représentées sur la figure 8. the intra-DPI 4 , DPI 6 , DPI 2 o and DPI 32 prediction directions associated with the same transform or the same set of transforms are they are respectively associated with mirror rotations of type 6, type 4, type 0 and type 1, as shown in FIG.
En référence maintenant à la figure 9, est illustré le tableau TB2 qui présente comment, sur les quinze premières itérations effectuées, le gain en débit (BDRate) est amélioré en fonction des itérations, à mesure que les ressources mémoire (ROM) augmentent, lorsqu'au moins deux modes de prédiction sont associés à un même ensemble de transformées. Referring now to FIG. 9, is illustrated the table TB2 which shows how, over the first fifteen iterations performed, the bit rate gain (BDRate) is improved as a function of the iterations, as the memory resources (ROM) increase, when at least two prediction modes are associated with the same set of transforms.
Ainsi par exemple, à l'itération iter=1 5, comme représenté dans la dernière colonne du tableau TB2, c'est la valeur du rapport a_28 qui est la plus favorable et qui correspond au mode de prédiction intra 28. Ce mode est indiqué en bas de la troisième colonne du tableau en association avec : For example, at the iteration iter = 1 5, as shown in the last column of the table TB2, it is the value of the ratio a_28 which is the most favorable and which corresponds to the prediction mode intra 28. This mode is indicated at the bottom of the third column of the table in association with:
- le débit R-|5 économisé par rapport à un procédé de codage de l'art antérieur, soit
.21 %, - the flow R- | 5 saved compared to a coding method of the prior art, either .21%,
- la mémoire M-|5 ajoutée par rapport à un procédé de codage de l'art antérieur, soit M 5= 2.1 ko. - the memory M- | 5 added with respect to a coding method of the prior art, or M 5 = 2.1 kb.
Par ailleurs, à l'itération iter=1 5, est représenté le nombre de transformées qui ont été ajoutées par mode de prédiction ou par groupes de modes de prédiction. Ainsi : In addition, at the iter iteration I = 1 5, is represented the number of transforms that have been added by prediction mode or by groups of prediction modes. So :
- pour le mode de prédiction intra 1 et les groupes précités G3 et G5 de directions de prédiction intra, une seule transformée a été respectivement ajoutée, for the prediction mode intra 1 and the aforementioned groups G 3 and G 5 of intra prediction directions, only one transform has been respectively added,
- pour les groupes précités G6, G7 et G9 de directions de prédiction intra, deux transformées ont été respectivement ajoutées, for the aforementioned groups G 6 , G 7 and G 9 of intra prediction directions, two transforms were respectively added,
- pour le mode de prédiction intra 0 et le groupe précité G8 de directions de prédiction intra, quatre transformées ont été respectivement ajoutées. for the prediction mode intra 0 and the aforementioned group G 8 of intra prediction directions, four transforms have respectively been added.
Pour l'itération iter=15, un total de dix-sept transformées a donc été ajouté. For the Iteration iter = 15, a total of seventeen transformations was therefore added.
Le tableau TB2 permet de constater une réduction significative des ressources mémoire dédiées au stockage des transformées de l'ordre de 20% par rapport au procédé de codage qui n'utilise pas un tel regroupement des modes de prédiction.
Afin d'apprécier le gain apporté avec un tel regroupement de modes de prédiction selon l'invention, le gain étant évalué en termes de capacité de stockage pour des performances de codage visées, est présenté le tableau ci- dessous qui dresse un comparatif des capacités de stockage fixes présentes dans un codeur de l'art antérieur utilisant un même nombre de transformées par mode de prédiction et des capacités de stockage variables présentes dans le codeur selon l'invention, et de la réduction de capacité de stockage obtenue avec les capacités de stockage variables. Table TB2 shows a significant reduction in memory resources dedicated to storing transforms of the order of 20% compared to the coding method that does not use such a grouping of prediction modes. In order to appreciate the gain provided with such a grouping of prediction modes according to the invention, the gain being evaluated in terms of storage capacity for targeted coding performances, is presented the table below which gives a comparative of the capacities fixed storage units present in a coder of the prior art using the same number of transforms by prediction mode and variable storage capacities present in the encoder according to the invention, and the reduction of storage capacity obtained with the capacity of the variable storage.
Ainsi, pour un gain en débit visé de 1 .7%, la capacité de stockage des codeurs qui utilisent un nombre fixe de transformées par mode de prédiction est de 17.5 ko, alors que la capacité de stockage des codeurs selon l'invention qui utilisent un nombre variable de transformées par mode de prédiction ou par ensemble de modes de prédiction est de seulement 5.3 ko. La réduction des capacités de stockage des codeurs selon l'invention par rapport aux codeurs de l'état de l'art peut ainsi être estimée à 70% pour le gain en débit visé de 1 ,7%. Thus, for a gain in target rate of 1 .7%, the storage capacity of the encoders that use a fixed number of transforms per prediction mode is 17.5 kb, whereas the storage capacity of the encoders according to the invention that use a variable number of transforms per prediction mode or set of prediction modes is only 5.3 kb. The reduction of the storage capacities of the encoders according to the invention with respect to the coders of the state of the art can thus be estimated at 70% for the target rate gain of 1.7%.
Selon un autre mode de réalisation de l'invention, le procédé de détermination itératif du nombre de transformées par mode de prédiction ou par groupe de modes de prédiction peut être remplacé par un procédé de détermination automatique dudit nombre de transformées. According to another embodiment of the invention, the iterative determination method of the number of transforms by prediction mode or by group of prediction modes can be replaced by a method of automatically determining said number of transforms.
Le procédé de détermination automatique peut s'avérer nécessaire lorsque, dans certains contextes de codage, le codeur CO de la figure 2 est contraint de fonctionner à un point de complexité donné. Il est alors nécessaire,
au cours du codage, de réduire le nombre de transformées en compétition pour limiter les investigations de choix par le codeur de la transformée optimale, au cours de l'étape C5 de la figure 1 . The automatic determination method may be necessary when, in certain coding contexts, the CO encoder of FIG. 2 is forced to operate at a given point of complexity. It is then necessary, during the coding, to reduce the number of transforms in competition to limit the choice investigations by the coder of the optimal transform, during step C5 of FIG.
Selon un premier exemple de réalisation, le nombre de transformées qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction verticale ou horizontale est rendu supérieur au nombre de transformées qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction oblique. According to a first exemplary embodiment, the number of transforms which is determined in the case of a prediction mode associated with a vertical or horizontal prediction direction is made greater than the number of transforms which is determined in the case of a prediction associated with an oblique prediction direction.
Dans le cas par exemple du standard HEVC, l'Homme du Métier sait que parmi les trente-cinq modes de prédiction intra disponibles, les modes 0 (Planar) et 1 (DC) sont les modes les plus lissés car la prédiction selon ces deux modes est calculée en moyennant plus de deux pixels d'un bord du bloc courant. Par conséquent, les modes Planar et DC sont associés, au cours de l'étape C0 de la figure 1 , à un nombre de transformées supérieur à celui des autres modes de prédiction intra HEVC. In the case, for example, of the HEVC standard, the person skilled in the art knows that among the thirty-five intra prediction modes available, the modes 0 (Planar) and 1 (DC) are the most smoothed modes because the prediction according to these two modes is calculated by averaging more than two pixels from an edge of the current block. As a result, the Planar and DC modes are associated, during the step C0 of FIG. 1, with a greater number of transforms than the other intra-HEVC prediction modes.
De plus, de façon connue en soi, les modes 10 (Horizontal) et 26 (Vertical) sont utilisés pour prédire des motifs de l'image qui sont horizontaux ou verticaux. De tels motifs se trouvant fréquemment dans la nature (ex : arbres verticaux, poteaux, ligne d'horizon, etc ...), ils doivent être associés à un nombre de transformées plus élevé que le nombre de transformées associé aux modes de prédiction intra obliques. In addition, in a manner known per se, the modes 10 (Horizontal) and 26 (Vertical) are used to predict patterns of the image which are horizontal or vertical. Since such patterns are frequently found in nature (eg vertical trees, poles, horizon lines, etc.), they must be associated with a higher number of transforms than the number of transforms associated with the intra-prediction modes. obliques.
Selon un deuxième exemple de réalisation, le nombre de transformées qui est déterminé dans le cas d'un mode de prédiction qui a été préalablement sélectionné, dans la pluralité de modes de prédiction prédéterminés MP0, MP-i , . . . , MPv, ... , M PR, en tant que mode de prédiction le plus probable, est supérieur au nombre de transformées qui est déterminé dans le cas d'un mode de prédiction qui n'a pas été préalablement sélectionné en tant que mode de prédiction le plus probable. According to a second exemplary embodiment, the number of transforms which is determined in the case of a prediction mode which has been previously selected, in the plurality of predetermined prediction modes MP 0 , MP-i,. . . , MPv, ..., M PR, as the most probable prediction mode, is greater than the number of transforms that is determined in the case of a prediction mode that has not been previously selected as a mode prediction most likely.
Dans le cas par exemple du standard HEVC, une liste de modes de prédiction les plus probables, appelés MPM (de l'anglais « Most Probable Modes »), est établie préalablement au codage. En particulier, les modes 0 (Planar), 1 (DC) et 26 (vertical) sont les modes de prédiction assignés par défaut lors de l'établissement de la liste. Selon l'invention, ces trois modes de
prédiction intra sont donc préalablement associés, au cours de l'étape de stockage C0 de la figure 1 , à un nombre de transformées plus élevé que le nombre de transformées associé aux autres modes de prédiction intra HEVC. In the case, for example, of the HEVC standard, a list of the most probable prediction modes, called MPMs (of the "Most Probable Modes"), is established prior to coding. In particular, the modes 0 (Planar), 1 (DC) and 26 (vertical) are the prediction modes assigned by default when establishing the list. According to the invention, these three modes of intra prediction are therefore previously associated, during the storage step C0 of FIG. 1, with a greater number of transforms than the number of transforms associated with the other intra-HEVC prediction modes.
Selon un troisième exemple de réalisation, le nombre de transformées contenu dans l'ensemble de transformées stocké en association avec chacun des modes de prédiction prédéterminés MP0, MP-i , . . . , MPV,... , MPR est déterminé en fonction de la quantité d'informations représentatives de chacun de ces modes de prédiction. According to a third exemplary embodiment, the number of transforms contained in the set of transforms stored in association with each of the predetermined prediction modes MP 0 , MP-i,. . . , MP V , ..., MP R is determined according to the amount of information representative of each of these prediction modes.
Dans le cas par exemple du standard HEVC, les modes de prédiction intra les plus probables tels que 0 (Planar), 1 (DC) et 26 (vertical) seront signalés sur moins de bits que les autres modes. Selon l'invention, il est donc opportun de leur associer un nombre de transformées plus élevé que celui des autres modes de prédiction intra, car ces trois modes seront choisis plus fréquemment que les autres et par conséquent, il y aura une variété plus importante de blocs prédicteurs à tester avec ces trois modes. In the case, for example, of the HEVC standard, the most probable intra prediction modes such as 0 (Planar), 1 (DC) and 26 (vertical) will be reported on less bits than the other modes. According to the invention, it is therefore appropriate to associate them with a higher number of transforms than the other intra prediction modes, because these three modes will be chosen more frequently than the others and consequently, there will be a greater variety of predictor blocks to test with these three modes.
Ainsi, selon l'invention, si la signalisation d'un mode de prédiction est portée sur moins de bits, alors le nombre de transformées, qui est stocké en association avec ce mode de prédiction au cours de l'étape C0 de la figure 1 , est plus important que la moyenne des transformées sur l'ensemble des trente- cinq modes de prédiction intra. Thus, according to the invention, if the signaling of a prediction mode is carried on fewer bits, then the number of transforms, which is stored in association with this prediction mode during step C0 of FIG. , is larger than the average of the transforms over all thirty-five intra prediction modes.
Description détaillée de la partie décodage Detailed description of the decoding part
Un mode de réalisation de l'invention va maintenant être décrit, dans lequel le procédé de décodage selon l'invention est utilisé pour décoder un signal ou flux de données représentatif d'une image ou d'une séquence d'images qui est apte à être décodé par un décodeur conforme à l'une quelconque des normes de décodage vidéo actuelles ou à venir. An embodiment of the invention will now be described, in which the decoding method according to the invention is used to decode a signal or data stream representative of an image or a sequence of images which is suitable for be decoded by a decoder according to any of the current or future video decoding standards.
Dans ce mode de réalisation, le procédé de décodage selon l'invention est par exemple implémenté de manière logicielle ou matérielle par modifications d'un tel décodeur. In this embodiment, the decoding method according to the invention is for example implemented in a software or hardware way by modifications of such a decoder.
Le procédé de décodage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes D0 à D9 telles que représentées à la figure 1 1 .
Selon ce mode de réalisation, le procédé de décodage selon l'invention est implémenté dans un dispositif de décodage ou décodeur DO représenté à la figure 10. The decoding method according to the invention is represented in the form of an algorithm comprising steps D0 to D9 as represented in FIG. According to this embodiment, the decoding method according to the invention is implemented in a decoding device or decoder DO represented in FIG.
Comme illustré en figure 1 0, un tel dispositif décodeur comprend : As illustrated in FIG. 10, such a decoder device comprises:
- une entrée ENT_D pour recevoir le signal de données ou flux courant F à décoder, an input ENT_D for receiving the data signal or current flow F to be decoded,
- un circuit de traitement CT_D pour mettre en œuvre le procédé de décodage selon l'invention, le circuit de traitement CT_D contenant : a CT_D processing circuit for implementing the decoding method according to the invention, the CT_D processing circuit containing:
• une mémoire MEM_D comprenant une mémoire tampon MT_D, A MEM_D memory including a buffer MT_D,
• un processeur PROC_D piloté par un programme d'ordinateur PG_D, A PROC_D processor controlled by a computer program PG_D,
- une sortie SOR_D pour délivrer une image courante reconstruite contenant les données obtenues à l'issue du décodage selon le procédé de l'invention. an output SOR_D for delivering a reconstructed current image containing the data obtained at the end of the decoding according to the method of the invention.
A l'initialisation, les instructions de code du programme d'ordinateur PG_D sont par exemple chargées dans une mémoire RAM, MR_D, avant d'être exécutées par le circuit de traitement CT_D. At initialization, the code instructions of the computer program PG_D are for example loaded into a RAM memory, MR_D, before being executed by the processing circuit CT_D.
Le procédé de décodage représenté sur la figure 1 1 s'applique à un signal ou flux de données F représentatif d'une image courante ICj à décoder qui est fixe ou qui appartient à une séquence d'images à décoder. The decoding method represented in FIG. 11 applies to a signal or data flow F representative of a current image ICj to be decoded which is fixed or which belongs to a sequence of images to be decoded.
A cet effet, des informations représentatives de l'image courante ICj à décoder sont identifiées dans le signal de données F reçu à l'entrée ENT_D du décodeur DO et tel que délivré à l'issue du procédé de codage de la figure 1 . For this purpose, information representative of the current image ICj to be decoded is identified in the data signal F received at the input ENT_D of the decoder DO and as delivered at the end of the coding method of FIG.
En référence à la figure 1 1 , au cours d'une étape D1 , il est procédé à la détermination dans le signal F des blocs résidus codés associés à chacun des blocs B-i , B2, Bi, ... , Bs codés précédemment conformément à l'ordre lexicographique précité. Referring to Figure 1 1, during a step D1, it is carried out in the determination signal F residues encoded blocks associated with each of the blocks Bi, B 2, Bi, ..., B s previously coded according to the above-mentioned lexicographic order.
Une telle étape de détermination D1 est mise en œuvre par un module logiciel d'identification MI_D d'analyse de flux, tel que représenté à la figure 10, lequel module est piloté par le processeur PROC_D. Such a determination step D1 is implemented by a flow analysis software identification module MI_D, as shown in FIG. 10, which module is controlled by the PROC_D processor.
D'autres types de parcours que celui mentionné ci-dessus sont bien sûr possibles et dépendent de l'ordre de parcours choisi au codage.
Dans l'exemple représenté, les blocs B-i , B2, B,,..., Bs à décoder ont par exemple une forme carrée et sont par exemple de taille MxM pixels où M est un entier naturel supérieur ou égal à 1 . Other types of course than the one mentioned above are of course possible and depend on the order of course chosen coding. In the example shown, the blocks Bi, B 2 , B ,,..., B s to be decoded have, for example, a square shape and are for example of size MxM pixels where M is a natural integer greater than or equal to 1.
Chaque bloc à décoder peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles. Each block to be decoded can also be divided into sub-blocks which are themselves subdividable.
Au cours d'une étape D2 représentée à la figure 1 1 , le décodeur DO de la figure 10 sélectionne, comme bloc courant B, à décoder, le premier bloc qui a été codé à l'issue du procédé de codage de la figure 1 . During a step D2 represented in FIG. 11, the decoder DO of FIG. 10 selects, as current block B, to be decoded, the first block which has been coded at the end of the coding method of FIG. .
Au cours d'une étape D3 représentée à la figure 1 1 , il est procédé à une détermination, par exemple par décodage, des données résiduelles d-i , d2, ...,dw, ..., dv associées au bloc courant B, à décoder, lesquelles ont été codées au cours de l'étape C8 de la figure 1 . A l'issue d'une telle détermination sont obtenues : During a step D3 represented in FIG. 11, a determination is made, for example by decoding, of the residual data di, d 2 , ..., d w , ..., d v associated with the block current B, to be decoded, which were coded in step C8 of FIG. At the end of such a determination are obtained:
- soit un ensemble d'informations numériques associées au bloc quantifié Bq, obtenu à l'issue de l'étape C7, or a set of digital information associated with the quantized block Bq, obtained at the end of step C7,
- soit un ensemble d'informations numériques associées au bloc modifié quantifié Bmq, obtenu à l'issue de l'étape C7, dans le cas où l'étape C40 de déplacement des données du bloc résidu Br, a été mise en œuvre au codage. or a set of digital information associated with the quantized modified block Bmq, obtained at the end of step C7, in the case where the step C40 for moving data of the residual block Br has been implemented at the coding .
Egalement au cours de l'étape D3, sont déterminées des informations relatives au type de prédiction du bloc courant B, tel que mis en œuvre au codage au cours de l'étape C3 de la figure 1 , et qui ont été inscrites dans le signal de données F. Also during step D3, information relating to the prediction type of the current block B, as implemented during coding in step C3 of FIG. 1, which has been written in the signal, is determined. F.
A cet effet, au cours de l'étape D3, sont déterminés : For this purpose, during step D3, are determined:
- le mode de prédiction MPS sélectionné à l'étape C3 de la figurethe prediction mode MP S selected in step C3 of the figure
1 , 1,
- l'index du bloc prédicteur BPopt, noté IBPopt, et le type de partitionnement du bloc courant B, si ce dernier a été partitionné. the index of the predictor block BP op t, denoted IBP op t, and the type of partitioning of the current block B, if the latter has been partitioned.
Une telle étape D3 de décodage est mise en œuvre par un module de décodage MD_D représenté sur la figure 10, lequel module est piloté par le processeur PROC_D. Such a decoding step D3 is implemented by a decoding module MD_D shown in FIG. 10, which module is controlled by the processor PROC_D.
Au cours d'une étape D4 représentée à la figure 1 1 , il est procédé au décodage prédictif du bloc courant à décoder à l'aide de l'index IBPopt du bloc
prédicteur qui a été décodé au cours de l'étape D3 précitée. A cet effet, de façon connue en soi, il est procédé, en association avec l'index IBPopt, à la sélection, dans la mémoire tampon MT_D du décodeur DO de la figure 10, du bloc prédicteur BPopt correspondant, lequel figure parmi une pluralité de blocs prédicteurs candidats préalablement stockés dans la mémoire tampon MT_D. Chacun des blocs prédicteurs candidats est un bloc de pixels qui a déjà été décodé. During a step D4 represented in FIG. 11, the predictive decoding of the current block to be decoded is carried out using the IBP index opt of the block predictor that was decoded during the aforementioned step D3. For this purpose, in a manner known per se, the selection, in association with the index IBP op t, of selecting, in the buffer memory MT_D of the decoder DO of FIG. 10, of the corresponding BP opt prediction block, which FIG. from a plurality of candidate predictor blocks previously stored in the MT_D buffer. Each of the candidate predictor blocks is a block of pixels that has already been decoded.
L'étape D4 est mise en œuvre par un module logiciel PRED"1_D de prédiction inverse, tel que représenté sur la figure 10, lequel est piloté par le processeur PROC_D. Step D4 is implemented by an inverse prediction software module PRED "1 _D, as shown in FIG. 10, which is controlled by the PROC_D processor.
Au cours d'une étape D5 représentée à la figure 1 1 , qui est mise en œuvre dans le cas où c'est l'ensemble de données associé au bloc Bq, ou Bmq, codé qui a été obtenu à l'issue de l'étape D3 précitée, il est procédé à une déquantification de cet ensemble de données, selon une opération classique de déquantification qui est l'opération inverse de la quantification mise en œuvre lors de l'étape de quantification C7 de la figure 1 . Un ensemble de coefficients déquantifiés courant BDq, ou un ensemble de coefficients modifiés déquantifiés courant BDmq, est alors obtenu à l'issue de l'étape D5. Une telle étape de déquantification est par exemple de type scalaire ou vectorielle. During a step D5 represented in FIG. 11, which is implemented in the case where it is the set of data associated with the block Bq, or Bmq, coded which was obtained at the end of the In the above-mentioned step D3, dequantization of this set of data is carried out according to a conventional dequantization operation which is the inverse operation of the quantization implemented during the quantization step C7 of FIG. A set of current dequantized coefficients BDq, or a set of dequantized modified current coefficients BDmq, is then obtained at the end of step D5. Such a dequantization step is for example of scalar or vector type.
L'étape D5 est effectuée au moyen d'un module logiciel MQ"1_D de quantification inverse, tel que représenté à la figure 10, lequel module est piloté par le processeur PROC_D. Step D5 is performed by means of an inverse quantization software module MQ "1 _D, as shown in FIG. 10, which module is controlled by the PROC_D processor.
Au cours d'une étape D6 représentée à la figure 1 1 , le décodeur DO de la figure 10 procède à la détermination d'une transformée de l'ensemble de coefficients déquantifiés courant BDq, ou de l'ensemble de coefficients modifiés déquantifiés courant BDmq,, tel qu'obtenu à l'étape D5 précitée. De façon connue en soi, une telle transformée est une transformée inverse de celle déterminée au codage à l'issue de l'étape C5 de la figure 1 , telle que par exemple : During a step D6 represented in FIG. 11, the decoder DO of FIG. 10 carries out the determination of a transform of the current dequantized coefficient set BDq, or the set of dequantized modified current coefficients BD m , as obtained in step D5 above. In a manner known per se, such a transform is an inverse transform from that determined at the end of step C5 of FIG. 1, such as, for example:
- une transformée directe telle que par exemple une transformée en cosinus discrète de type DCT, a direct transform such as, for example, a discrete cosine transform of the DCT type,
- une transformée directe telle que par exemple une transformée en sinus discrète de type DST,
-une transformée bloc optimisée en débit distorsion comme présenté dans la publication « Rate-distortion optimisée! transform compétition for intra coding in HEVC », Adrià Arrufat, Pierrick Philippe, Olivier Déforges, IEEE VCIP, Dec 2014, a direct transform such as, for example, a discrete sinus transform of the DST type, -an optimized block transform distortion rate as presented in the publication "Rate-distortion optimized! transform competition for intra coding in HEVC ", Adrià Arrufat, Philippe Pierrick, Olivier Deforges, IEEE VCIP, Dec 2014,
- une transformée en ondelettes du type DWT, a wavelet transform of the DWT type,
- une transformée incluant un recouvrement du type Lapped Transforms telle que présentée dans la publication « Réduction of blocking effects in image coding with a lapped orthogonal transform », H. Malvar, a transform including a Lapped Transforms type recovery as presented in the publication "Reduction of blocking effects in image coding with a lapped orthogonal transform", H. Malvar,
- ou tout autre type de transformées exploitables. - or any other type of exploitable transform.
Ladite transformée appartient à un ensemble de transformées qui, au cours d'une étape préalable de stockage D0 représentée à la figure 1 1 , est stocké en association avec le mode de prédiction MPS, dans la mémoire tampon MT_D de la figure 10. Au cours de cette étape de stockage : Said transform belongs to a set of transforms which, during a prior storage step D0 represented in FIG. 11, is stored in association with the prediction mode MP S , in the buffer memory MT_D of FIG. during this storage step:
- le mode de prédiction prédéterminé MP0 est stocké en association avec un ensemble de transformées contenant un nombre NB0 de transformées, the predetermined prediction mode MP 0 is stored in association with a set of transforms containing a number NB 0 of transforms,
- le mode de prédiction prédéterminé MPi est stocké en association avec un ensemble de transformées contenant un nombre NB de transformées, the predetermined prediction mode MPi is stored in association with a set of transforms containing a number NB of transforms,
- le mode de prédiction prédéterminé MPV est stocké en association avec un ensemble de transformées contenant un nombre NBV de transformées, - le mode de prédiction prédéterminé MPR est stocké en association avec un ensemble de transformées contenant un nombre NBR de transformées. the predetermined prediction mode MP V is stored in association with a set of transforms containing a number NB V of transforms; the predetermined prediction mode MP R is stored in association with a set of transforms containing a number NB R of transforms.
Conformément à l'invention, pour au moins deux modes de prédiction différents MPa, MPb appartenant à la pluralité de modes de prédiction prédéterminés MP0, MPi, ..., MPV, ..., MPR, avec 0<a≤R+1 et 0<b≤R+1 , le nombre de transformées, noté NBa, qui est contenu dans l'ensemble de transformées associé au mode de prédiction MPa est différent du nombre de
transformées, noté NBb, qui est contenu dans un ensemble de transformées stocké en association avec le mode de prédiction MPb. According to the invention, for at least two different prediction modes MP a , MP b belonging to the plurality of predetermined prediction modes MP 0 , MPi, ..., MP V , ..., MP R , with 0 < a≤R + 1 and 0 <b≤R + 1, the number of transforms, noted NB a , which is contained in the set of transforms associated with the prediction mode MP a is different from the number of transforms transformed, noted NB b , which is contained in a set of transforms stored in association with the prediction mode MP b .
Selon un premier exemple de réalisation, pour au moins deux ensembles de transformées stockés respectivement en association avec deux modes de prédiction de ladite pluralité MP0, MP-i , . . . , MPV, ..., MPR de modes de prédiction prédéterminés, le nombre de transformées dans chacun desdits deux ensembles contient en commun au moins une transformée identique. According to a first exemplary embodiment, for at least two sets of transforms respectively stored in association with two prediction modes of said plurality MP 0 , MP-i,. . . , MP V , ..., MP R of predetermined prediction modes, the number of transforms in each of said two sets contains in common at least one identical transform.
Par exemple, dans le cas d'un décodage selon le standard HEVC, le nombre de transformées dans chacun desdits deux ensembles peut par exemple contenir en commun : For example, in the case of a decoding according to the HEVC standard, the number of transforms in each of said two sets may for example contain in common:
- une transformée inverse d'une transformée de type DST, ou bien une transformée inverse d'une transformée de type DCT, an inverse transform of a DST type transform, or a reverse transform of a DCT type transform,
- une transformée inverse d'une transformée de type DST et une transformée inverse d'une transformée de type DCT, an inverse transform of a DST type transform and an inverse transform of a DCT type transform,
- plus de deux transformées en commun. - more than two transformed in common.
Par ailleurs, plus de deux ensembles de transformées peuvent contenir en commun au moins une opération de transformée identique. Toujours dans le cas d'un décodage selon le standard HEVC, et plus particulièrement dans le cas d'une prédiction Intra inverse conforme à ce standard qui propose trente- cinq directions de prédiction possibles DPI0, DPI-i , . . . , DPI34, les ensembles de transformées associés respectivement à chacune de ces trente-cinq directions de prédiction peuvent contenir en commun au moins une opération de transformée identique. On the other hand, more than two sets of transforms may contain in common at least one identical transform operation. Still in the case of a decoding according to the HEVC standard, and more particularly in the case of an inverse inverse prediction conforming to this standard which proposes thirty-five possible prediction directions DPI 0 , DPI-i,. . . , DPI 34 , the sets of transforms respectively associated with each of these thirty-five prediction directions may contain in common at least one identical transform operation.
Selon un deuxième exemple de réalisation représenté sur la figure 10, l'ensemble de transformées, associé audit mode de prédiction MPS déterminé à l'étape D3 précitée et contenant un nombre NBS de transformées, est stocké dans la mémoire tampon MT_D de la figure 10, en association avec au moins un autre mode de prédiction, noté MPU, de ladite pluralité de modes de prédiction prédéterminés MP0, MP^ ..., MPV,..., MPR, avec 0≤u≤R+1 . According to a second exemplary embodiment shown in FIG. 10, the set of transforms, associated with said prediction mode MP S determined in the aforementioned step D3 and containing a number NB S of transforms, is stored in the buffer memory MT_D of the FIG. 10, in association with at least one other prediction mode, denoted MP U , of said plurality of predetermined prediction modes MP 0 , MP 1 ..., MP V , ..., MP R , with 0≤u≤ R + 1.
Plus particulièrement, l'étape de détermination précitée D6 consiste à lire dans le signal de données F l'index IDX de la transformée Ts>k (NBS=1 ) ou Ts>k* (NBS>1 ) qui a été sélectionnée au codage à l'issue de l'étape C5 précitée
(figure 1 ), lequel index a été inscrit dans le signal de données F au cours de l'étape C8 précitée (figure 1 ). More particularly, the above-mentioned determination step D6 consists in reading in the data signal F the IDX index of the transform T s> k (NB S = 1) or T s> k * (NB S > 1) which has was selected at the coding at the end of the above-mentioned step C5 (Figure 1), which index was written in the data signal F during the aforementioned step C8 (Figure 1).
Au cours d'une étape D7 représentée à la figure 1 1 , il est procédé à l'application de la transformée inverse de la transformée Ts>k ou Ts>k* à l'ensemble de coefficients déquantifiés courant BDq, ou à l'ensemble de coefficients modifiés déquantifiés courant BDmq,, tel qu'obtenu à l'étape D5 précitée. A l'issue de l'étape D7, est obtenu soit un bloc résidu décodé courant BDr,, soit un bloc résidu modifié décodé courant BDmr,. During a step D7 represented in FIG. 11, the inverse transform of the transform T s> k or T s> k * is applied to the set of dequantized coefficients current BDq, or to the set of current dequantized coefficients BD mq ,, as obtained in step D5 above. At the end of step D7, a current decoded residue block BDr ,, or a decoded current residual block BDmr, is obtained.
Une telle opération est effectuée par un module logiciel MTR"1_D de transformée inverse, tel que représenté à la figure 10, lequel module est piloté par le processeur PROC_D. Such an operation is performed by an inverse transform software module MTR "1 _D, as shown in FIG. 10, which module is controlled by the processor PROC_D.
Sur la figure 1 1 , l'étape de déquantification D5 est représentée avant l'étape D7 d'application de transformée inverse. Toutefois, l'étape D5 peut être intégrée à l'étape D7 qui est alors mise en œuvre avec des nombres entiers incluant le facteur de déquantification. In FIG. 11, the dequantization step D5 is represented before the inverse transformation application step D7. However, step D5 can be integrated in step D7 which is then implemented with integers including the dequantization factor.
Au cours d'une étape D8 représentée à la figure 1 1 , il est procédé à la reconstruction du bloc courant B, en ajoutant au bloc résidu décodé BDn, obtenu à l'issue de l'étape D7 précitée, le bloc prédicteur BPopt qui a été obtenu à l'issue de l'étape D4 précitée. A l'issue de l'étape D8, un bloc décodé courant BD, est obtenu. During a step D8 represented in FIG. 11, the current block B is reconstructed, by adding to the decoded residue block BDn, obtained at the end of the aforementioned step D7, the predictor block BP op. t that was obtained at the end of the aforementioned step D4. At the end of step D8, a current decoded block BD is obtained.
L'étape D8 est mise en œuvre par un module logiciel CAL1_D représenté sur la figure 10, lequel module est piloté par le processeur PROC_D. Step D8 is implemented by a software module CAL1_D shown in FIG. 10, which module is controlled by the processor PROC_D.
Au cours d'une étape D9 représentée à la figure 1 1 , ledit bloc décodé courant BD, est écrit dans une image décodée IDj. During a step D9 represented in FIG. 11, said current decoded block BD is written in a decoded image ID j .
Une telle étape est mise en œuvre par un module logiciel URI de reconstruction d'image tel que représenté sur la figure 10, ledit module étant piloté par le processeur PROC_D. Such a step is implemented by an image reconstruction URI software module as shown in FIG. 10, said module being controlled by the PROC_D processor.
Les étapes de décodage qui viennent d'être décrites ci-dessus sont mises en œuvre pour tous les blocs B-i , B2, B,, ..., Bs à décoder de l'image courante ICj considérée, dans un ordre prédéterminé qui est par exemple l'ordre lexicographique.
De la même manière qu'au codage, en référence aux figures 3 à 8, le procédé de décodage met en œuvre, selon un premier mode de réalisation de l'invention, un procédé de détermination du nombre de transformées pour chaque mode de prédiction prédéterminé, dans le cas d'un décodage HEVC de type Intra. The decoding steps which have just been described above are implemented for all the blocks Bi, B 2 , B ,,..., B s to be decoded from the current image IC j considered, in a predetermined order which is for example the lexicographic order. In the same way as in coding, with reference to FIGS. 3 to 8, the decoding method implements, according to a first embodiment of the invention, a method for determining the number of transforms for each predetermined prediction mode. , in the case of an Intra type HEVC decoding.
On va maintenant décrire, en référence aux figures 3, 6A, 6B, 7 à 1 1 , un mode de réalisation de l'invention mis en œuvre dans le cas d'un décodage HEVC de type Intra, et dans lequel l'ensemble de transformées associé à un mode de prédiction intra déterminé au cours de l'étape D3 de la figure 1 1 est préalablement stocké en association avec au moins un autre mode de prédiction de ladite pluralité de modes de prédiction prédéterminés. With reference to FIGS. 3, 6A, 6B, 7 to 11, an embodiment of the invention implemented in the case of Intra-type HEVC decoding, and in which the set of FIG. Transforms associated with an intra prediction mode determined in step D3 of FIG. 11 are previously stored in association with at least one other prediction mode of said plurality of predetermined prediction modes.
Dans cet exemple, à l'issue de l'étape D3 de la figure 1 1 , le bloc prédicteur optimal BPopt obtenu est associé à une direction de prédiction Intra optimale qui est par exemple la direction DPI22- Conformément au présent mode de réalisation, la transformée (si unique) ou l'ensemble de transformées associée(s) à la direction de prédiction Intra DPI22 est préalablement associée, au cours de l'étape DO de la figure 1 1 , à une autre direction de prédiction Intra, à la condition que cette autre direction de prédiction Intra soit symétrique par rapport à la direction de prédiction Intra DPI22- De cette façon, deux fois moins de transformées sont stockées au niveau du décodeur DO, l'avantage étant une réduction de la mémoire côté décodeur. In this example, at the end of step D3 of FIG. 11, the optimal predictor block BP op t obtained is associated with an optimal Intra prediction direction which is, for example, the direction DPI 22. realization, the transform (if unique) or the set of transforms associated with the direction of prediction Intra DPI 22 is previously associated, during the step DO of Figure 1 1, to another direction of prediction Intra , provided that this other Intra prediction direction is symmetrical with respect to the Intra DPI prediction direction 22 - In this way, two times fewer transforms are stored at the decoder DO, the advantage being a reduction of the memory decoder side.
Selon une première variante, deux directions de prédiction Intra présentant des symétries sont associées à la même transformée ou au même ensemble de transformées. According to a first variant, two Intra prediction directions with symmetries are associated with the same transform or set of transforms.
Selon une deuxième variante, deux directions de prédiction Intra angulaires présentant chacune des angles identiques par rapport à une direction verticale (ou horizontale) sont associées à la même transformée ou au même ensemble de transformées. According to a second variant, two intra-angular prediction directions each having identical angles with respect to a vertical (or horizontal) direction are associated with the same transform or set of transforms.
Ainsi, comme représenté à la figure 6A, une direction de prédiction Intra angulaire présentant un angle de 30° par rapport à un axe horizontal AH est associée à une direction de prédiction Intra angulaire présentant symétriquement un angle de -30° par rapport à cet axe horizontal. En référence
à la figure 7, ces deux directions de prédiction Intra correspondent respectivement aux directions DPI4 et DP 6. Thus, as represented in FIG. 6A, an Intra-angular prediction direction having an angle of 30 ° with respect to a horizontal axis AH is associated with an Intra-Angular prediction direction presenting symmetrically an angle of -30 ° with respect to this axis. horizontal. In reference in FIG. 7, these two prediction directions Intra correspond respectively to directions DPI 4 and DP 6 .
De façon similaire, comme représenté sur la figure 6A, une direction de prédiction Intra angulaire présentant un angle de -60° par rapport à un axe horizontal est associée à une direction de prédiction Intra angulaire présentant symétriquement un angle de -120° par rapport à un axe vertical AV. En référence à la figure 7, ces deux directions de prédiction Intra correspondent respectivement aux directions DPI2o et DPI32. Similarly, as shown in FIG. 6A, an Intra Angular prediction direction having an angle of -60 ° with respect to a horizontal axis is associated with an Intra Angular prediction direction having symmetrically an angle of -120 ° with respect to a vertical axis AV. With reference to FIG. 7, these two prediction directions Intra correspond respectively to the directions DPI 2 o and DPI 32 .
Toujours conformément à l'exemple qui vient juste d'être décrit et selon encore un autre mode de réalisation, la transformée ou la pluralité de transformées associée(s) à la direction de prédiction Intra DPI22 déterminée à l'étape D3 est préalablement associée à trois autres directions de prédictionStill in accordance with the example which has just been described and according to yet another embodiment, the transform or the plurality of transforms associated with the direction of Intra DPI prediction 2 2 determined in step D3 is previously associated with three other prediction directions
Intra, à la condition que ces autres directions de prédiction Intra soient symétriques par rapport à la direction de prédiction Intra DPI22- De cette façon, quatre fois moins de transformées sont stockées au niveau du décodeur DO, l'avantage étant une réduction de la mémoire côté décodeur. Intra, provided that these other prediction directions Intra are symmetrical with respect to the Intra DPI 2 2 prediction direction. In this way, four times fewer transforms are stored at the decoder DO, the advantage being a reduction of the decoder side memory.
Selon une première variante, quatre directions de prédiction Intra présentant des symétries sont associées à la même transformée ou au même ensemble de transformées. According to a first variant, four Intra prediction directions with symmetries are associated with the same transform or set of transforms.
Selon une deuxième variante, quatre directions de prédiction Intra angulaires présentant chacune des angles identiques par rapport à un axe vertical, horizontal et diagonal sont associées à la même transformée ou au même ensemble de transformées. According to a second variant, four intra-angular prediction directions each having identical angles with respect to a vertical, horizontal and diagonal axis are associated with the same transform or the same set of transforms.
Ainsi, comme représenté sur la figure 6A, une direction de prédiction Intra angulaire présentant un angle de 30° par rapport à l'axe horizontal AH est associée : Thus, as shown in FIG. 6A, an Intra Angular prediction direction having an angle of 30 ° with respect to the horizontal axis AH is associated with:
- à une direction de prédiction Intra angulaire d'un angle de -30° par symétrie par rapport à cet axe horizontal, at a direction of intra-angular prediction of an angle of -30 ° by symmetry with respect to this horizontal axis,
- à une direction de prédiction Intra angulaire présentant un angle de -60° par symétrie par rapport à cet axe horizontal puis par rapport à un axe diagonal AD, at a direction of intra-angular prediction having an angle of -60 ° by symmetry with respect to this horizontal axis then with respect to a diagonal axis AD,
- à une direction de prédiction Intra angulaire présentant un angle de -120° par symétrie par rapport à l'axe diagonal AD.
En référence à la figure 7, ces quatre directions de prédiction Intra correspondent respectivement aux directions DPI4, DPI-|6, DPI2o et DPI32-at a direction of intra-angular prediction having an angle of -120 ° by symmetry with respect to the diagonal axis AD. With reference to FIG. 7, these four prediction directions Intra correspond respectively to the directions DPI 4 , DPI- | 6 , DPI 2 o and DPI 3 2-
Le tableau ci-dessous représente neuf groupes Gi à G9 de directions de prédiction Intra HEVC auxquels peut être associée une même transformée (si unique) ou bien un ensemble de transformées, tel que déterminé selon l'invention. The table below represents nine groups G 1 to G 9 of Intra HEVC prediction directions to which may be associated a single transform (if unique) or a set of transforms, as determined according to the invention.
Les directions angulaires à multiple de 45° (45°, -45° et -135°) telles que représentées sur la figure 6B, correspondant respectivement aux directions de prédiction DPI2, DPI 8 et DPI34, comme illustré sur la figure 7, sont regroupées par trois et sont associées, dans la mémoire tampon MT_D du décodeur DO de la figure 10, à une même transformée ou à un même ensemble de transformées. 45 ° multiple angular directions (45 °, -45 ° and -135 °) as shown in FIG. 6B, corresponding respectively to the prediction directions DPI 2 , DPI 8 and DPI 34 , as illustrated in FIG. 7, are grouped by three and are associated, in the buffer MT_D of the decoder DO of Figure 10, the same transform or the same set of transforms.
Conformément à l'obtention des groupes de modes de prédiction précités, en référence à la figure 1 1 , dans le cas où c'est le bloc résidu modifié décodé courant BDmn qui a été obtenu à l'issue de l'étape D7, il est procédé, à la suite cette étape, à une étape D70 d'au moins un déplacement des données du bloc résidu modifié décodé courant BDmn, chaque donnée considérée étant déplacée à l'intérieur de ce bloc tout en conservant ses plus proches voisines. According to the obtaining of the aforementioned groups of prediction modes, with reference to FIG. 11, in the case where it is the current decoded modified residue block BDmn which was obtained at the end of the step D7, it this step is followed by a step D70 of at least one displacement of the data of the current decoded modified residual block BDmn, each considered datum being moved inside this block while keeping its nearest neighbors.
L'étape D70 est mise en œuvre par un module logiciel de calcul CAL2_D tel que représenté sur la figure 10, lequel module est piloté par le processeur PROC_D. The step D70 is implemented by a calculation software module CAL2_D as represented in FIG. 10, which module is controlled by the processor PROC_D.
Selon un premier mode de réalisation, un type de déplacement de données est une transposition, inverse de celle effectuée au codage, à savoir un échange des coordonnées lignes et colonnes d'une donnée du bloc résidu
modifié décodé courant BDmn. According to a first embodiment, a type of data displacement is a transposition, the reverse of that performed at the coding, namely an exchange of the row and column coordinates of a data block residue modified decoded BDmn current.
Selon un deuxième mode de réalisation, un type de déplacement de données est un miroir, inverse de celui effectué au codage, à savoir un échange des colonnes ou lignes du bloc résidu modifié décodé courant BDmn. Chaque donnée considérée dans le bloc résidu modifié décodé courant BDmn est ainsi déplacée à l'intérieur de ce dernier, tout en conservant ses plus proches voisines. According to a second embodiment, a type of data displacement is a mirror, the reverse of that carried out at the coding, namely an exchange of the columns or lines of the current decoded modified residual block BDmn. Each data considered in the current decoded modified residue block BDmn is thus moved inside the latter, while keeping its nearest neighbors.
Selon un troisième mode de réalisation, un type de déplacement de données est une combinaison de la transposition inverse et du miroir inverse, c'est-à-dire : According to a third embodiment, a type of data displacement is a combination of the inverse transposition and the inverse mirror, that is to say:
- soit l'application d'un déplacement de type transposition inverse suivie de l'application d'un déplacement de type miroir inverse aux données du bloc résidu modifié décodé courant BDmn, or the application of an inverse transposition type displacement followed by the application of an inverse mirror displacement to the data of the current decoded modified residual block BDmn,
- soit l'application d'un déplacement de type miroir inverse suivie de l'application d'un déplacement de type transposition inverse aux données du bloc résidu modifié décodé courant BDmn. or the application of an inverse mirror displacement followed by the application of an inverse transposition displacement to the data of the current decoded modified residual block BDmn.
En outre, selon un autre mode de réalisation de l'invention, le type de déplacement de données dans le bloc résidu modifié décodé courant BDmn est fonction du mode de prédiction MPS déterminé à l'étape D3 précitée. In addition, according to another embodiment of the invention, the type of data displacement in the current decoded modified residual block BDmn is a function of the prediction mode MP S determined in the aforementioned step D3.
De façon correspondante aux différents types de déplacement mis en œuvre au codage, tels que représentés à la figure 8, il existe également au décodage huit types de déplacement possibles différents numérotés de 0 à 7 qui permettent à un pixel donné du bloc résidu modifié décodé courant BDmn de conserver ses pixels voisins. Par exemple, pour le pixel p7, ce dernier est toujours entouré des pixels p2, p3, p4, p6, p8, p10, p1 1 et p12. De façon particulière, la rotation miroir inverse de la rotation miroir de type 0 n'entraîne pas un déplacement des données puisque les données du bloc résidu modifié décodé courant BDmn sont disposées dans le même ordre que les données du bloc résidu courant Βη. In a manner corresponding to the different types of displacement implemented in the coding, as represented in FIG. 8, there are also at decoding eight different types of possible displacement numbered from 0 to 7 which make it possible for a given pixel of the current decoded modified residual block. BDmn to keep its neighboring pixels. For example, for the pixel p7, the pixel is always surrounded by pixels p2, p3, p4, p6, p8, p10, p1 1 and p12. In particular, the inverse mirror rotation of the type 0 mirror rotation does not cause a data shift since the data of the current decoded modified residual block BDmn are arranged in the same order as the data of the current residue block Βη.
En outre, conformément à l'invention, une direction de prédiction Intra déterminée à l'issue de l'étape D3 de la figure 1 1 est associée à l'un des huit types de déplacement inverse, selon le groupe auquel elle appartient. Par exemple :
- les directions de prédiction intra DPI22 et DPI6 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir inverses respectivement des rotations miroir de type 0 et de type 5 telles que représentées sur la figure 8, In addition, according to the invention, an Intra prediction direction determined at the end of the step D3 of FIG. 11 is associated with one of the eight types of inverse displacement, according to the group to which it belongs. For example : the directions of intra prediction DPI22 and DPI 6 associated with the same transform or the same set of transforms are themselves respectively associated with the inverse mirror rotations respectively of the type 0 and type 5 mirror rotations as represented in FIG. 8,
- les directions de prédiction intra DPI4 et DP 6 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir inverses respectivement des rotations miroir de type 0 et de type 2 telles que représentées sur la figure 8, the intra-DPI 4 and DP 6 prediction directions associated with the same transform or the same set of transforms are themselves respectively associated with the inverse mirror rotations respectively of the type 0 and type 2 mirror rotations as represented in FIG. 8 ,
- les directions de prédiction intra DPI2o et DPI32 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir inverses respectivement des rotations miroir de type 0 et de type 1 telles que représentées sur la figure 8, the directions of intra-DPI 2 o and DPI 32 prediction associated with the same transform or the same set of transforms are themselves respectively associated with the inverse mirror rotations respectively of the type 0 and type 1 mirror rotations as represented in FIG. 8 ,
- les directions de prédiction intra DPI4, DPI-|6, DPI2o et DPI32 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir inverses respectivement des rotations miroir de type 6, de type 4, de type 0 et de type 1 , telles que représentées sur la figure 8. the directions of prediction within DPI 4 , DPI- | 6 , DPI 2 o and DPI32 associated with the same transform or the same set of transforms are themselves associated respectively with the inverse mirror rotations respectively of the type 6, type 4, type 0 and type 1 mirror rotations, such as represented in FIG. 8.
Selon un autre mode de réalisation de l'invention, de la même manière qu'au codage, le procédé de détermination itératif du nombre de transformées par mode de prédiction ou par groupe de modes de prédiction peut être remplacé par un procédé de détermination automatique dudit nombre de transformées. According to another embodiment of the invention, in the same way as at coding, the iterative determination method of the number of transforms by prediction mode or by group of prediction modes can be replaced by a method of automatic determination of said number of transforms.
Le procédé de détermination automatique peut s'avérer nécessaire lorsque, dans certains contextes de décodage, le décodeur DO de la figure 10 est contraint de fonctionner à un point de complexité donné. Ce point de complexité donné peut être signalé par l'encodeur CO de la figure 2, par une information de configuration donnée pour une partie d'image, une image entière ou pour une séquence d'images. Il peut comprendre un identifiant du nombre de transformées maximal ou bien un rapport du nombre de transformées par rapport au nombre de transformées disponible au décodeur. Ainsi, au cours de l'étape D6 de la figure 1 1 , le décodeur DO recherche dans la mémoire tampon MT_D de la figure 10, uniquement dans le nombre de transformées associé à
ladite information de configuration signalée, la transformée sélectionnée au codage et correspondant à l'indice IDX déterminé à l'étape D3. The automatic determination method may be necessary when, in certain decoding contexts, the decoder DO of FIG. 10 is constrained to operate at a given point of complexity. This given point of complexity can be indicated by the encoder CO of FIG. 2, by a given configuration information for a portion of an image, an entire image or for a sequence of images. It can comprise a maximum number of transforms identifier or a ratio of the number of transforms relative to the number of transformations available to the decoder. Thus, during the step D6 of FIG. 11, the decoder DO searches in the buffer memory MT_D of FIG. 10 only in the number of transforms associated with FIG. said configuration information signaled, the transform selected at the coding and corresponding to the IDX index determined in step D3.
Selon un premier exemple de réalisation, le nombre de transformées qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction verticale ou horizontale est rendu supérieur au nombre de transformées qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction oblique. According to a first exemplary embodiment, the number of transforms which is determined in the case of a prediction mode associated with a vertical or horizontal prediction direction is made greater than the number of transforms which is determined in the case of a prediction associated with an oblique prediction direction.
Dans le cas par exemple du standard HEVC, l'Homme du Métier sait que parmi les trente-cinq modes de prédiction intra disponibles, les modes 0 (Planar) et 1 (DC) sont les modes les plus lissés car la prédiction selon ces deux modes est calculée en moyennant plus de pixels des bords du bloc courant. Par conséquent, les modes Planar et DC sont associés, au cours de l'étape DO de la figure 1 1 , à un nombre de transformées supérieur à celui des autres modes de prédiction intra HEVC. In the case, for example, of the HEVC standard, the person skilled in the art knows that among the thirty-five intra prediction modes available, the modes 0 (Planar) and 1 (DC) are the most smoothed modes because the prediction according to these two modes is calculated by averaging more pixels than the edges of the current block. Consequently, the Planar and DC modes are associated, during the step D0 of FIG. 11, with a greater number of transforms than the other intra-HEVC prediction modes.
De plus, de façon connue en soi, les modes 10 et 26 sont utilisés pour prédire des motifs de l'image qui sont horizontaux ou verticaux. De tels motifs se trouvant fréquemment dans la nature (ex : arbres verticaux, poteaux, ligne d'horizon, etc ...), ils doivent être associés à un nombre de transformées plus élevé que le nombre de transformées associé aux modes de prédiction intra obliques. Moreover, in a manner known per se, modes 10 and 26 are used to predict image patterns that are horizontal or vertical. Since such patterns are frequently found in nature (eg vertical trees, poles, horizon lines, etc.), they must be associated with a higher number of transforms than the number of transforms associated with the intra-prediction modes. obliques.
Selon un deuxième exemple de réalisation, le nombre de transformées qui est déterminé dans le cas d'un mode de prédiction qui a été préalablement sélectionné, dans la pluralité de modes de prédiction prédéterminés MP0, MP-i , ... , MPv, ... , M PR, en tant que mode de prédiction le plus probable, est supérieur au nombre de transformées qui est déterminé dans le cas d'un mode de prédiction qui n'a pas été préalablement sélectionné en tant que mode de prédiction le plus probable. According to a second exemplary embodiment, the number of transforms that is determined in the case of a prediction mode that has been previously selected, in the plurality of predetermined prediction modes MP 0 , MP-i, ..., MPv, ..., M PR, as the most probable prediction mode, is greater than the number of transforms that is determined in the case of a prediction mode that has not been previously selected as a prediction mode. more likely.
Dans le cas par exemple du standard HEVC, une liste de modes de prédiction les plus probables, appelés MPM (de l'anglais « Most Probable Modes »), est établie préalablement au codage. En particulier, les modes 0 (Planar), 1 (DC) et 26 (vertical) sont les modes de prédiction assignés par défaut lors de l'établissement de la liste. Selon l'invention, ces trois modes de prédiction intra sont donc préalablement associés, au cours de l'étape de
stockage DO de la figure 1 A, à un nombre de transformées plus élevé que le nombre de transformées associé aux autres modes de prédiction intra HEVC. In the case, for example, of the HEVC standard, a list of the most probable prediction modes, called MPMs (of the "Most Probable Modes"), is established prior to coding. In particular, the modes 0 (Planar), 1 (DC) and 26 (vertical) are the prediction modes assigned by default when establishing the list. According to the invention, these three intra prediction modes are therefore previously associated, during the step of storage OD of Figure 1A, to a number of transforms higher than the number of transforms associated with the other modes of intra-HEVC prediction.
Selon un troisième exemple de réalisation, le nombre de transformées contenu dans l'ensemble de transformées stocké en association avec chacun des modes de prédiction prédéterminés MP0, MP-i , . . . , MPV,... , MPR est déterminé en fonction de la quantité d'informations représentatives de chacun de ces modes de prédiction. According to a third exemplary embodiment, the number of transforms contained in the set of transforms stored in association with each of the predetermined prediction modes MP 0 , MP-i,. . . , MP V , ..., MP R is determined according to the amount of information representative of each of these prediction modes.
Dans le cas par exemple du standard HEVC, les modes de prédiction intra les plus probables tels que 0 (Planar), 1 (DC) et 26 (vertical) seront signalés sur moins de bits que les autres modes. Selon l'invention, il est donc opportun de leur associer un nombre de transformées plus élevé que celui des autres modes de prédiction intra, car ces trois modes seront choisis plus fréquemment que les autres et par conséquent, il y aura une variété plus importante de blocs prédicteurs à tester avec ces trois modes. In the case, for example, of the HEVC standard, the most probable intra prediction modes such as 0 (Planar), 1 (DC) and 26 (vertical) will be reported on less bits than the other modes. According to the invention, it is therefore appropriate to associate them with a higher number of transforms than the other intra prediction modes, because these three modes will be chosen more frequently than the others and consequently, there will be a greater variety of predictor blocks to test with these three modes.
Ainsi, selon l'invention, si la signalisation d'un mode de prédiction est portée sur moins de bits, alors le nombre de transformées, qui est stocké en association avec ce mode de prédiction au cours de l'étape DO de la figure 1 1 , est plus important que la moyenne des transformées sur l'ensemble des trente- cinq modes de prédiction intra. Thus, according to the invention, if the signaling of a prediction mode is carried on fewer bits, then the number of transforms, which is stored in association with this prediction mode during the step D0 of FIG. 1, is larger than the average of the transforms on all thirty-five intra prediction modes.
II 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
It goes without saying that the embodiments which have been described above have been given for purely indicative and non-limiting purposes, and that many modifications can easily be made by those skilled in the art without departing from the scope. of the invention