FR2918824A1 - Dispositif de codage d'une sequence d'image - Google Patents
Dispositif de codage d'une sequence d'image Download PDFInfo
- Publication number
- FR2918824A1 FR2918824A1 FR0758990A FR0758990A FR2918824A1 FR 2918824 A1 FR2918824 A1 FR 2918824A1 FR 0758990 A FR0758990 A FR 0758990A FR 0758990 A FR0758990 A FR 0758990A FR 2918824 A1 FR2918824 A1 FR 2918824A1
- Authority
- FR
- France
- Prior art keywords
- image data
- bits
- module
- coding
- data represented
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
L'invention concerne un dispositif de (4) d'une image ou d'une séquence d'images lesquelles sont formées de pixels à chacun desquels est associée au moins une donnée image représentée sur N bits avec N un entier positif. Un tel dispositif comprend:- un module de compression (28) pour compresser, en fonction de données de codage, les données image représentées sur N bits en des données image compressées ;- un module de codage (30) pour coder les données image compressées en des données binaires; et- au moins un module de traitement (16, 18) apte à déterminer les données de codage à partir des données image.Un tel dispositif comprend en outre au moins un module de conversion (26, 26') apte à transformer les données image représentées sur N bits en des données image représentées sur M bits sur lesquelles opère ledit au moins un module de traitement (16, 18), avec M un entier positif strictement inférieur à N.
Description
DISPOSITIF DE CODAGE D'UNE SEQUENCE D'IMAGE
1. Domaine de l'invention L'invention se rapporte au domaine général du codage d'images.
L'invention concerne un dispositif de codage d'une image ou d'une séquence d'images.
2. Etat de l'art En référence à la figure 1, il est connu un dispositif de codage 1 apte à coder une séquence d'images Vin en un train binaire Bout. Les images de la séquence sont composées de points image ou pixels à chacun desquels sont associées une ou plusieurs données image, chacune d'elle étant représentée sur 8 bits. Généralement, ces données image sont des données de luminance et des données de chrominance. Le dispositif de codage 1 comprend une interface d'entrée 10 pour recevoir les données image de la séquence Vin, un module de compression 20, un module de codage entropique 22 et une interface de sortie 24, et deux modules de traitement, en l'occurrence un module d'estimation de mouvement 16 et un module de sélection de mode de codage 18.
Il est également connu des dispositifs de codage aptes à coder une image ou une séquence d'images Vin en un train binaire Bout qui ne comprennent pas de module d'estimation de mouvement 16. De tels dispositifs codent les images selon des modes dits INTRA, i.e. selon un mode prédictif spatial ou selon un mode non prédictif.
La sortie de l'interface d'entrée 10 est reliée à une mémoire 14 de grande capacité de stockage. La mémoire 14 peut également être un élément du dispositif de codage 1. La sortie du module d'estimation de mouvement 16 est reliée à l'entrée du module de sélection de mode de codage 18. Les sorties des modules d'estimation de mouvement 16 et de sélection de mode de codage 18 sont reliées à l'entrée du module de compression 20. Une première sortie du module de compression 20 est reliée à l'entrée d'un module de codage entropique 22 dont la sortie est reliée à l'interface de sortie 24. Une seconde sortie du module de compression 20 est reliée à la mémoire 14.
Le dispositif de codage 1 code classiquement une image divisée en groupes de pixels In comprenant un unique pixel ou une pluralité de pixels ce qui est le cas si In est un macrobloc. Généralement, un tel groupe est un bloc de pixels mais pas nécessairement. Dans la suite, le terme de bloc est employé sans pour autant être limitatif. Il peut être remplacé par le terme plus général de groupe de pixels. Les données image du bloc In sont stockées dans la mémoire 14 sur 8 bits). Les données image stockées sont transmises au module d'estimation de mouvement 16 et au module de sélection de mode de codage 18. Le module d'estimation de mouvement 16 est adapté pour estimer un ou plusieurs vecteurs de mouvement entre le bloc In et un respectivement plusieurs blocs de données image précédemment codés, reconstruits et stockés dans la mémoire 14 sous la forme de données image représentées sur 8 bits. Selon une variante, le module d'estimation de mouvement 16 est adapté pour estimer un ou plusieurs vecteurs de mouvement entre le bloc In et un respectivement plusieurs blocs de données image originales stockés dans la mémoire 14 sous la forme de données image représentées sur 8 bits. A cet effet, le module d'estimation de mouvement 16 met par exemple en oeuvre une méthode d'estimation d'un vecteur de mouvement par appariement de blocs. Une telle méthode consiste à déterminer parmi un ensemble de blocs stockés dans la mémoire 14 celui qui est le plus proche au sens d'un critère prédéfini du bloc In. Dans le cas où le bloc In est formé d'un unique pixel, le module d'estimation de mouvement 16 met, par exemple, en oeuvre une méthode d'estimation de mouvement de type pel-récursif.
Le module de sélection de mode de codage 18 est adapté pour sélectionner, pour le bloc In, un mode de codage parmi un ensemble prédéfini de modes de codage en tenant compte notamment du ou des vecteurs de mouvement déterminés pour le bloc In par le module d'estimation de mouvement 16. Un tel mode est par exemple un mode prédictif temporel (mode INTER) ou un mode prédictif spatial (mode INTRA avec prédiction spatiale) ou un mode non prédictif (mode INTRA simple). Le module de sélection de mode de codage 18 sélectionne le mode de codage selon un critère de sélection prédéfini, p.ex. de type débit-distorsion. Selon ce dernier critère, le mode sélectionné pour coder le bloc In est celui qui permet le meilleur compromis entre distorsion et coût de codage. Le mode de codage sélectionné pour le bloc In et, si le mode de codage sélectionné est un mode prédictif temporel, le ou les vecteurs estimés pour ce même bloc sont transmis au module de compression 20. Le module de compression 20 est également connu sous le nom de boucle de codage. Le module de compression 20 est apte à déterminer un bloc de prédiction, pour le bloc In en fonction du mode de codage transmis par le module de sélection 18 et éventuellement du ou des vecteurs de mouvement transmis par le module d'estimation de mouvement 16. Les données image du bloc de prédiction sont des données images précédemment codées et reconstruites par le module de compression 20 et stockées en mémoire 14 sous la forme de données image représentées sur 8 bits. Si le mode de codage sélectionné pour le bloc In est un mode prédictif, alors le module de compression 20 soustrait pixel à pixel le bloc de prédiction du bloc ln afin de générer un bloc de données résiduelles également appelées données image compressées. Le bloc de données résiduelles, si le mode de codage sélectionné pour le bloc In est un mode prédictif, ou le bloc de données image In, dans le cas contraire, est transformé, par exemple, par une transformée DCT puis quantifié. Les données quantifiées sont alors transmises au module de codage entropique 22 qui code les données quantifiées sous la forme d'un train binaire Bout qui est alors transmis à l'interface de sortie 24 en vue de la transmission à un dispositif distant, p.ex. à un dispositif de décodage. Le module de codage entropique 22 utilise par exemple des tables prédéfinies de type table VLC (VLC étant l'acronyme anglais de Variable Length Coding ) bien connues de l'homme du métier. Le module de compression 20 est également apte à reconstruire à partir des données quantifiées le bloc In. A cet effet, le module de compression 20 est apte à effectuer une quantification inverse et une transformée inverse des données quantifiées et d'y ajouter pixel à pixel les données image du bloc de prédiction pour générer un bloc de données image reconstruites. Ces dernières sont alors stockées en mémoire 14 sous la forme de données image représentées sur 8 bits pour être éventuellement réutilisées ultérieurement comme données image de prédiction lors du codage d'un autre bloc.
Dans un tel dispositif les modules 12, 14, 16, 18 et 20 sont adaptés pour opérer sur des données image représentées sur 8 bits. Un tel dispositif de codage ne permet pas de coder des données image représentées sur plus de 8 bits, p.ex. sur 10 ou 12 bits. 3. Résumé de l'invention L'invention a pour but de pallier au moins un des inconvénients de l'art antérieur. L'invention concerne un dispositif de codage d'une image ou d'une séquence d'images lesquelles sont formées de pixels à chacun desquels est associée au moins une donnée image représentée sur N bits avec N un entier positif. Le dispositif de codage selon l'invention comprend : - un module de compression pour compresser, en fonction de données de codage, les données image représentées sur N bits en des données image 15 compressées ; - un module de codage pour coder les données image compressées en des données binaires; et - au moins un module de traitement apte à déterminer les données de codage à partir des données image. 20 Avantageusement, le dispositif de codage comprend en outre au moins un module de conversion apte à transformer les données image représentées sur N bits en des données image représentées sur M bits sur lesquelles opère le au moins un module de traitement, avec M un entier positif strictement inférieur à N. 25 Un dispositif de codage selon l'invention permet avantageusement de coder des données image représentées sur N bits en limitant les coûts de redéveloppement grâce à la l'utilisation d'un ou plusieurs modules de traitement existants et opérant sur M bits. Un tel dispositif de codage a également l'avantage de limiter les besoins en bandes passante mémoire. 30 Selon un premier mode de réalisation, le au moins un module de traitement est un module de sélection de mode de codage apte à sélectionner pour un groupe d'au moins un pixel un mode de codage dans un ensemble prédéfini de modes de codage à partir des données image.
Selon un second mode de réalisation, le au moins un module de traitement est un module d'estimation de mouvement apte à estimer pour un groupe d'au moins un pixel des données de mouvement à partir des données image.
Selon un troisième mode de réalisation, le dispositif de codage selon l'invention comprend un premier module de traitement et un second module de traitement. Le premier module de traitement est un module d'estimation de mouvement apte à estimer pour un groupe d'au moins un pixel des données de mouvement à partir des données image et le second module de traitement est un module de sélection de mode de codage apte à sélectionner pour un groupe d'au moins un pixel un mode de codage dans un ensemble prédéfini de modes de codage à partir des données image et à partir des données de mouvement. Selon une caractéristique particulière de l'invention, la au moins une 15 donnée image est une donnée image de luminance. Selon une autre caractéristique particulière, une donnée image de luminance et deux données image de chrominance étant associées à chaque pixel, le module de conversion est adapté pour transformer uniquement les données image de luminance représentées sur N bits en des données image 20 de luminance représentées sur M bits. Dans ce cas, le au moins un module de traitement opère sur les données image de luminance représentées sur M bits. Avantageusement, le module de compression est adapté pour reconstruire les données image compressées en des données image 25 reconstruites et le au moins un module de conversion est adapté pour transformer les données image reconstruites représentées sur N bits en des données image représentées sur M bits, lesquelles sont utilisées par le au moins un module de traitement.
30 4. Listes des fiqures L'invention sera mieux comprise et illustrée au moyen d'exemples de modes de réalisation et de mise en oeuvre avantageux, nullement limitatifs, en référence aux figures annexées sur lesquelles : ù la figure 1 illustre un dispositif de codage selon l'état de l'art; ù la figure 2 illustre un dispositif de codage selon un premier mode de réalisation ; ù la figure 3 illustre un dispositif de codage selon un second mode de réalisation ; ù la figure 4 illustre un dispositif de codage selon un troisième mode de réalisation ; ù la figure 5 illustre un dispositif de codage selon une variante du premier mode de réalisation ; ù la figure 6 illustre un dispositif de codage selon une variante du second mode de réalisation; ù la figure 7 illustre un dispositif de codage selon une variante du troisième mode de réalisation; et ù la figure 8 illustre un dispositif de codage selon un quatrième mode de réalisation. 5. Description détaillée de l'invention En référence aux figures 2 à 8, l'invention concerne un dispositif de codage d'une image ou d'une séquence d'images. Chaque image est divisée en groupes d'un ou plusieurs pixels à chacun desquels sont associées une ou plusieurs données image représentatives du contenu visuel (p.ex. des valeurs de luminance et de chrominance). Un groupe est généralement un bloc de pixels mais pas nécessairement. Sur ces figures, les modules représentés sont des unités fonctionnelles, qui peuvent ou non correspondre à des unités physiquement distinguables. Par exemple, ces modules ou certains d'entre eux peuvent être regroupés dans un unique composant, ou constituer des fonctionnalités d'un même logiciel. A contrario, certains modules peuvent éventuellement être composés d'entités physiques séparées. Notamment, le module d'estimation de mouvement 16 ou 17 et le module de sélection de mode de codage 18 ou 19 peuvent être regroupés dans un seul et même composant. Ces deux modules sont des modules de traitement adaptés pour déterminer des données de codage (des vecteurs de mouvement respectivement des modes de codage) à partir de données image. Par ailleurs, sur ces figures, seuls sont représentés les modules nécessaires pour décrire l'invention. Toutefois, le dispositif de codage selon l'invention peut comprendre de manière optionnelle d'autres modules comme par exemple un module de pré-traitement apte à réduire l'entropie spatiale et/ou temporelle des données images reçues sur l'interface d'entrée 10 avant leur codage.
Les modules des dispositifs de codage 2, 3 et 4 dont la fonction est identique à celle du dispositif de codage 1 sont identifiés sur les figures 2 à 8 à l'aide des mêmes références et ne sont pas décrits davantage.
La figure 2 représente un dispositif de codage 2 selon un premier mode de réalisation de l'invention. Le dispositif de codage 2 comprend notamment l'interface d'entrée 10, l'interface de sortie 24 et le module d'estimation de mouvement 16. Il comprend en outre deux modules de conversion identiques 26 et 26', un nouveau module de sélection de mode de codage 19, un nouveau module de compression 28, un nouveau module de codage 30 et une mémoire 15 de grande capacité de stockage. Les deux modules de conversion 26 et 26' étant identiques, ils peuvent être remplacés par un seul et même module de conversion 26. Les données image d'un bloc In reçues sur l'interface d'entrée 10 sont traitées par le module de conversion 26. Le module de conversion 26 est apte à transformer les données image reçues représentées sur 10 bits en des données images représentées sur 8 bits lesquelles sont stockées dans la mémoire 15. A cet effet, le module de conversion 26 supprime les 2 bits de poids faible de chaque donnée image qui se trouve alors représentée sur 8 bits au lieu de 10 bits. Selon une variante, la suppression des deux bits de poids faible se fait sur la valeur de la donnée image à laquelle on a ajouté la valeur 1/2. Selon une autre variante, une fonction de transfert spécifique est définie qui permet de transformer une donnée image représentée sur 10 bits en une donnée image représentée sur 8 bits. Une telle fonction de transfert consiste, par exemple, à tronquer les deux bits de poids faible de la donnée image représentée sur 10 bits si cette donnée image a une valeur supérieure à un seuil prédéfini et à ajouter la valeur'/2 avant de tronquer les deux bits de poids faible si la valeur de la donnée image est inférieure au seuil prédéfini. La fonction de transfert peut être différente pour les données image de luminance et les données image de chrominance.
Selon une caractéristique essentielle de ce mode de réalisation, les modules de sélection de mode de codage 19 et de compression 28 opèrent sur des données image représentées sur 10 bits et le module d'estimation de mouvement opère sur les données image correspondantes représentées sur 8 bits. Le module de sélection de mode de codage 19 nécessite davantage de bande passante et de puissance de calcul que le module de sélection de mode de codage 18. En effet, le module de sélection de mode de codage 19 doit pouvoir traiter des données image représentées sur 10 bits au lieu de données image représentées 8 bits. Le mode de codage sélectionné par le module de sélection 19 pour le bloc In et, si le mode de codage sélectionné est un mode prédictif temporel, le ou les vecteurs estimés pour ce même bloc par le module d'estimation de mouvement 16 sont transmis au module de compression 28. Le module de compression 28 est apte à déterminer un bloc de prédiction, pour le bloc In en fonction du mode de codage transmis par le module de sélection 19 et éventuellement du ou des vecteurs de mouvement transmis par le module d'estimation de mouvement 16. Les données image du bloc de prédiction sont des données images précédemment codées et reconstruites par le module de compression 28 et stockées en mémoire 15 sous la forme de données image représentées sur 10 bits. Si le mode de codage sélectionné pour le bloc In est un mode prédictif, alors le module de compression 28 soustrait pixel à pixel le bloc de prédiction du bloc ln afin de générer un bloc de données résiduelles également appelées données image compressées. Le bloc de données résiduelles, si le mode de codage sélectionné pour le bloc In est un mode prédictif, ou le bloc de données image In, dans le cas contraire, est transformé, par exemple, par une transformée DCT puis quantifié. Les données quantifiées sont alors transmises au module de codage entropique 30 qui code les données quantifiées sous la forme d'un train binaire Bout qui est alors transmis à l'interface de sortie 24 en vue de la transmission à un dispositif distant, p.ex. à un dispositif de décodage. Le module de codage entropique 30 utilise par exemple des tables prédéfinies de type table VLC (VLC étant l'acronyme anglais de Variable Length Coding ) bien connues de l'homme du métier. Selon des variantes, le module de codage entropique 30 met en oeuvre un procédé de codage arithmétique de type CABAC (CABAC étant l'acronyme anglais de Context-based Adaptive Binary Arithmetic Coding ) ou un procédé de codage de type CAVLC (CAVLC étant l'acronyme anglais de Context-based Adaptive Variable Length Coding ). Le module de compression 28 est également apte à reconstruire à partir des données quantifiées le bloc I. A cet effet, le module de compression 28 est apte à effectuer une quantification inverse et une transformée inverse des données quantifiées et d'y ajouter pixel à pixel les données image du bloc de prédiction pour générer un bloc de données image reconstruites représentées sur 10 bits. Les données images ainsi reconstruites sont stockées dans la mémoire 15 sous la forme de données image représentées sur 10 bits pour être éventuellement réutilisées ultérieurement par le module de compression 28 comme données image de prédiction lors du codage d'un autre bloc ou par le module de sélection de mode de codage 19. Les données images ainsi reconstruites sont également traitées par le module de conversion 26' afin d'être transformées en des données images reconstruites représentées sur 8 bits. Les données images représentées sur 8 bits sont également stockées dans la mémoire 15 pour être éventuellement réutilisées ultérieurement comme données image par le module d'estimation de mouvement 16.
La figure 3 représente un dispositif de codage 3 selon un second mode de réalisation de l'invention. Le dispositif de codage 3 comprend notamment l'interface d'entrée 10, l'interface de sortie 24 et le module de sélection de mode de codage 18. Il comprend en outre deux modules de conversion identiques 26 et 26', un nouveau module d'estimation de mouvement 17, le module de compression 28, le module de codage 30 et la mémoire 15 de grande capacité de stockage. Les deux modules de conversion 26 et 26' étant identiques, ils peuvent être remplacés par un seul et même module de conversion 26. Les données image d'un bloc In reçues sur l'interface d'entrée 10 sont traitées par le module de conversion 26. Le module de conversion 26 est apte à transformer les données image reçues représentées sur 10 bits en des données images représentées sur 8 bits lesquelles sont stockées dans la mémoire 15. A cet effet, le module de conversion 26 supprime les 2 bits de poids faible de chaque donnée image qui se trouve alors représentée sur 8 bits au lieu de 10 bits. Selon une variante, la suppression des deux bits de poids faible se fait sur la valeur de la donnée image à laquelle on a ajouté la valeur 1/2. Selon une autre variante, une fonction de transfert spécifique est définie qui permet de transformer une donnée image représentée sur 10 bits en une donnée image représentée sur 8 bits. Une telle fonction de transfert consiste, par exemple, à tronquer les deux bits de poids faible de la donnée image représentée sur 10 bits si cette donnée image a une valeur supérieure à un seuil prédéfini et à ajouter la valeur'/2 avant de tronquer les deux bits de poids faible si la valeur de la donnée image est inférieure au seuil prédéfini.
La fonction de transfert peut être différente pour les données image de luminance et les données image de chrominance. Selon une caractéristique essentielle de ce mode de réalisation, les modules d'estimation de mouvement 17 et de compression 28 opèrent sur des données image représentées sur 10 bits et le module de sélection de mode de codage 18 opère sur les données image correspondantes représentées sur 8 bits. Le module d'estimation de mouvement 17 nécessite davantage de bande passante et de puissance de calcul que le module d'estimation de mouvement 16. En effet, le module d'estimation de mouvement 16 doit pouvoir traiter des données image représentées sur 10 bits au lieu de données image représentées 8 bits. Le mode de codage sélectionné par le module de sélection 18 pour le bloc In et, si le mode de codage sélectionné est un mode prédictif temporel, le ou les vecteurs estimés pour ce même bloc par le module d'estimation de mouvement 17 sont transmis au module de compression 28. Le module de compression 28 est apte à déterminer un bloc de prédiction, pour le bloc ln en fonction du mode de codage transmis par le module de sélection 18 et éventuellement du ou des vecteurs de mouvement transmis par le module d'estimation de mouvement 17. Les données image du bloc de prédiction sont des données images précédemment codées et reconstruites par le module de compression 28 et stockées en mémoire 15 sous la forme de données image représentées sur 10 bits. Si le mode de codage sélectionné pour le bloc In est un mode prédictif, alors le module de compression 28 soustrait pixel à pixel le bloc de prédiction du bloc In afin de générer un bloc de données résiduelles également appelées données image compressées. Le bloc de données résiduelles, si le mode de codage sélectionné pour le bloc In est un mode prédictif, ou le bloc de données image In, dans le cas contraire, est transformé, par exemple, par une transformée DCT puis quantifié. Les données quantifiées sont alors transmises au module de codage entropique 30 qui code les données quantifiées sous la forme d'un train binaire Bout qui est alors transmis à l'interface de sortie 24 en vue de la transmission à un dispositif distant, p.ex. à un dispositif de décodage. Le module de codage entropique 30 utilise par exemple des tables prédéfinies de type table VLC (VLC étant l'acronyme anglais de Variable Length Coding ) bien connues de l'homme du métier. Selon des variantes, le module de codage entropique 30 met en oeuvre un procédé de codage arithmétique de type CABAC (CABAC étant l'acronyme anglais de Context-based Adaptive Binary Arithmetic Coding ) ou un procédé de codage de type CAVLC (CAVLC étant l'acronyme anglais de Context-based Adaptive Variable Length Coding ).
Le module de compression 28 est également apte à reconstruire à partir des données quantifiées le bloc In. A cet effet, le module de compression 28 est apte à effectuer une quantification inverse et une transformée inverse des données quantifiées et d'y ajouter pixel à pixel les données image du bloc de prédiction pour générer un bloc de données image reconstruites représentées sur 10 bits. Les données images ainsi reconstruites sont stockées dans la mémoire 15 sous la forme de données image représentées sur 10 bits pour être éventuellement réutilisées ultérieurement par le module de compression 28 comme données image de prédiction lors du codage d'un autre bloc ou par le module d'estimation de mouvement 17. Les données images ainsi reconstruites sont également traitées par le module de conversion 26' afin d'être transformées en des données images reconstruites représentées sur 8 bits. Les données images représentées sur 8 bits sont également stockées dans la mémoire 15 pour être éventuellement réutilisées ultérieurement comme données image par le module de sélection de mode de codage 18.
La figure 4 représente un dispositif de codage 4 selon un troisième mode de réalisation de l'invention. Le dispositif de codage 4 comprend notamment l'interface d'entrée 10, l'interface de sortie 24, le module d'estimation de mouvement 16 et le module de sélection 18. Il comprend en outre deux modules de conversion identiques 26 et 26', le module de compression 28, le module de codage 30 et la mémoire 15 de grande capacité de stockage. Les deux modules de conversion 26 et 26' étant identiques, ils peuvent être remplacés par un seul et même module de conversion 26. Les données image du bloc In sont traitées par le module de conversion 26. Le module de conversion 26 est apte à transformer les données image reçues représentées sur 10 bits en des données images représentées sur 8 bits lesquelles sont stockées dans la mémoire 15. Selon une caractéristique essentielle de ce mode de réalisation, le module de compression 28 opère sur des données image représentées sur 10 bits et les modules de sélection de mode de codage 18 et d'estimation de mouvement 16 opèrent sur les données image correspondantes représentées sur 8 bits. Le module de compression 28 est généralement spécifiés par les normes de codage vidéo comme par exemple la norme MPEG2 décrite dans le document ISO/IEC 13818-2 et la norme de codage MPEG-4 parti 0 décrite dans le document ISO/IEC 14496-10. Selon l'invention, les autres modules du dispositif de codage qui ne sont pas normatifs, i.e. qui ne sont pas spécifiés par les normes de codage vidéo, en l'occurrence le module d'estimation de mouvement 16 et le module de sélection de mode de codage 18 opèrent sur des données image représentées sur 8 bits. Le mode de codage sélectionné pour le bloc In par le module de sélection 18 et, si le mode de codage sélectionné est un mode prédictif temporel, le ou les vecteurs estimés pour ce même bloc par le module d'estimation de mouvement 16 sont transmis au module de compression 28. Le module de compression 28 est apte à déterminer un bloc de prédiction, pour le bloc In en fonction du mode de codage transmis par le module de sélection 18 et éventuellement du ou des vecteurs de mouvement transmis par le module d'estimation de mouvement 16. Les données image du bloc de prédiction sont des données images précédemment codées et reconstruites par le module de compression 28 et stockées en mémoire 15 sous la forme de données image représentées sur 10 bits. Si le mode de codage sélectionné pour le bloc In est un mode prédictif, alors le module de compression 28 soustrait pixel à pixel le bloc de prédiction du bloc ln afin de générer un bloc de données résiduelles également appelées données image compressées. Le bloc de données résiduelles, si le mode de codage sélectionné pour le bloc In est un mode prédictif, ou le bloc de données image In, dans le cas contraire, est transformé, par exemple, par une transformée DCT puis quantifié. Les données quantifiées sont alors transmises au module de codage entropique 30 qui code les données quantifiées sous la forme d'un train binaire Bout qui est alors transmis à l'interface de sortie 24 en vue de la transmission à un dispositif distant, p.ex. à un dispositif de décodage. Le module de codage entropique30 utilise par exemple des tables prédéfinies de type table VLC (VLC étant l'acronyme anglais de Variable Length Coding ) bien connues de l'homme du métier. Selon des variantes, le module de codage entropique 30 met en oeuvre un procédé de codage arithmétique de type CABAC (CABAC étant l'acronyme anglais de Context-based Adaptive Binary Arithmetic Coding ) ou un procédé de codage de type CAVLC (CAVLC étant l'acronyme anglais de Context-based Adaptive Variable Length Coding ). Le module de compression 28 est également apte à reconstruire à partir des données quantifiées le bloc In. A cet effet, le module de compression 28 est apte à effectuer une quantification inverse et une transformée inverse des données quantifiées et d'y ajouter pixel à pixel les données image du bloc de prédiction pour générer un bloc de données image reconstruites représentées sur 10 bits. Les données images reconstruites sont stockées en mémoire 15 sous la forme de données image représentées sur 10 bits pour être éventuellement réutilisées ultérieurement lors du codage d'un autre bloc par le module de compression 28. Les données images ainsi reconstruites sont également traitées par le module de conversion 26' afin d'être transformées en des données images reconstruites représentées sur 8 bits. Les données images représentées sur 8 bits sont également stockées dans la mémoire 15 pour être éventuellement réutilisées ultérieurement comme données image par le module d'estimation de mouvement 16 et par le module de sélection de mode de codage 18.
Selon une variante applicable aux trois modes de réalisation décrits précédemment, seules les données image de luminance sont représentées à la fois sur 10 bits et sur 8 bits, i.e. que seules les données images de luminance sont transformées par les modules de conversion26 et 26'. Lorsque cette variante est appliquée au premier mode de réalisation, le module d'estimation de mouvement 16 opère uniquement sur les données de luminance représentées sur 8 bits et le module de sélection de mode de codage 19 opère uniquement sur les données de luminance représentées sur 10 bits comme illustré sur la figure 4. Lorsque cette variante est appliquée au second mode de réalisation, le module de sélection de mode de codage 18 opère uniquement sur les données de luminance représentées sur 8 bits et le module d'estimation de mouvement 17 opère uniquement sur les données de luminance représentées sur 10 bits comme illustré sur la figure 5. Lorsque cette variante est appliquée au troisième mode de réalisation, le module d'estimation de mouvement 16 et le module de sélection de mode de codage 18 opèrent uniquement sur les données de luminance représentées sur 8 bits comme illustré sur la figure 6.
La figure 8 représente un dispositif de codage 5 d'une image ou d'une séquence d'images selon un quatrième mode de réalisation. Le dispositif de codage 5 comprend notamment l'interface d'entrée 10, l'interface de sortie 24 et le module de sélection 18. Il comprend en outre deux modules de conversion identiques 26 et 26', le module de compression 28, le module de codage 30 et la mémoire 15 de grande capacité de stockage. Les deux modules de conversion 26 et 26' étant identiques, ils peuvent être remplacés par un seul et même module de conversion 26. Le dispositif de codage 5 ne comprend pas de module d'estimation de mouvement. Il est apte à coder une image par exemple conformément au standard JPEG tel que défini dans le document ISO/IEC IS 10918-1 1 ITU-T Recommendation T.81. Selon une variante, il est apte à coder une séquence de plusieurs image selon des modes de codage dit INTRA, i.e. par prédiction spatiale ou sans prédiction, conformément par exemple au standard MPEG4 part 10 tel que défini dans le document ISO/IEC 14496-10. Les données image du bloc In sont traitées par le module de conversion 26. Le module de conversion 26 est apte à transformer les données image reçues représentées sur 10 bits en des données images représentées sur 8 bits lesquelles sont stockées dans la mémoire 15. Selon une caractéristique essentielle de ce mode de réalisation, le module de compression 28 opère sur des données image représentées sur 10 bits et le module de sélection de mode de codage 18 opère sur les données image correspondantes représentées sur 8 bits. Le module de compression 28 est généralement spécifiés par les normes de codage vidéo comme par exemple la norme MPEG2 décrite dans le document ISO/IEC 13818-2, la norme de codage MPEG-4 part 10 décrite dans le document ISO/IEC 14496-10, la norme MPEG-1 décrite dans le document ISO/IEC 11172-2:1993 ou encore la norme JPEG décrite dans le document ISO/IEC IS 10918-1 1 ITU-T Recommendation T.81. Selon l'invention, les autres modules du dispositif de codage qui ne sont pas normatifs, i.e. qui ne sont pas spécifiés par les normes de codage vidéo, en l'occurrence le module de sélection de mode de codage 18 opèrent sur des données image représentées sur 8 bits. Le mode de codage sélectionné pour le bloc In par le module de sélection 18 est transmis au module de compression 28. Le module de compression 28 est apte à déterminer un bloc de prédiction, pour le bloc ln en fonction du mode de codage transmis par le module de sélection 18. Les données image du bloc de prédiction sont des données images précédemment codées et reconstruites par le module de compression 28 et stockées en mémoire 15 sous la forme de données image représentées sur 10 bits. Si le mode de codage sélectionné pour le bloc In est un mode prédictif, alors le module de compression 28 soustrait pixel à pixel le bloc de prédiction du bloc ln afin de générer un bloc de données résiduelles également appelées données image compressées. Le bloc de données résiduelles, si le mode de codage sélectionné pour le bloc In est un mode prédictif, ou le bloc de données image In, dans le cas contraire, est transformé, par exemple, par une transformée DCT puis quantifié. Les données quantifiées sont alors transmises au module de codage entropique 30 qui code les données quantifiées sous la forme d'un train binaire Bout qui est alors transmis à l'interface de sortie 24 en vue de la transmission à un dispositif distant, p.ex. à un dispositif de décodage. Le module de codage entropique 30 utilise par exemple des tables prédéfinies de type table VLC (VLC étant l'acronyme anglais de Variable Length Coding ) bien connues de l'homme du métier. Selon des variantes, le module de codage entropique 30 met en oeuvre un procédé de codage arithmétique de type CABAC (CABAC étant l'acronyme anglais de Context-based Adaptive Binary Arithmetic Coding ) ou un procédé de codage de type CAVLC (CAVLC étant l'acronyme anglais de Context-based Adaptive Variable Length Coding ). Le module de compression 28 est également apte à reconstruire à partir des données quantifiées le bloc In. A cet effet, le module de compression 28 est apte à effectuer une quantification inverse et une transformée inverse des données quantifiées et d'y ajouter pixel à pixel les données image du bloc de prédiction pour générer un bloc de données image reconstruites représentées sur 10 bits. Les données images reconstruites sont stockées en mémoire 15 sous la forme de données image représentées sur 10 bits pour être éventuellement réutilisées ultérieurement lors du codage d'un autre bloc par le module de compression 28. Les données images ainsi reconstruites sont également traitées par le module de conversion 26' afin d'être transformées en des données images reconstruites représentées sur 8 bits. Les données images représentées sur 8 bits sont également stockées dans la mémoire 15 pour être éventuellement réutilisées ultérieurement comme données image par le module de sélection de mode de codage 18. Selon une variante, seules les données image de luminance sont représentées à la fois sur 10 bits et sur 8 bits, i.e. que seules les données images de luminance sont transformées par les modules de conversion26 et 26'. Dans ce cas, le module de sélection de mode de codage 18 opère uniquement sur les données de luminance représentées sur 8 bits.
Dans les modes de réalisation et leur variantes décrits précédemment, l'utilisation de modules de traitement (i.e. module d'estimation de mouvement et de sélection de mode de codage) opérant sur des données image représentées sur 8 bits permet la plupart du temps d'obtenir des résultats équivalents voir meilleurs que ceux qui seraient obtenus en utilisant des modules de traitement correspondants opérant sur des données image représentées sur 10 bits. En effet, il est parfois préférable que de tels modules de traitement opèrent sur des données moins bruitées. Or les 2 bits de poids faibles des données image sont souvent représentatif de bruit. Par ailleurs, si les résultats obtenus avec de tels modules de traitement sont sous-optimaux et résultent en une augmentation de débit, ce surcoût n'est pas un problème pour les applications visées, i.e. professionnelles/studio, pour lesquelles la contrainte de débit est moins importante. En outre, les dispositifs de codage 2, 3, 4 et 5 selon l'invention permettent avantageusement de réutiliser les modules de traitement existants plutôt que d'en redévelopper d'autres aptes à opérer sur des données image représentées sur 10 bits, ce qui limite les coût de développement de tels dispositifs de codage. Ces dispositifs de codage présentent également l'avantage de limiter les besoins en bande passante entre la mémoire 15 et les modules de traitement. Ils nécessitent également une puissance de calcul moindre car ils opèrent sur des données image représentées sur 8 bits.
Bien entendu, l'invention n'est pas limitée aux exemples de réalisation mentionnés ci-dessus. En particulier, l'homme du métier peut apporter toute variante dans les modes de réalisation exposés et les combiner pour bénéficier de leurs différents avantages. L'invention décrite pour des données image représentées sur 10 bits s'applique plus généralement à des données image représentées sur N bits, avec par exemple N=12. L'invention décrite avec des modules de traitement (module d'estimation de mouvement et/ou de sélection de mode de codage) opérant sur des données image représentées sur 8 bits s'applique plus généralement à des données image représentées sur M bits, avec M<N.
Claims (7)
1. Dispositif de codage (2, 3, 4, 5) d'une image ou d'une séquence d'images lesquelles sont formées de pixels à chacun desquels est associée au moins une donnée image représentée sur N bits avec N un entier positif comprenant : - un module de compression (28) pour compresser, en fonction de données de codage, lesdites données image représentées sur N bits en des données 10 image compressées ; - un module de codage (30) pour coder lesdites données image compressées en des données binaires; et - au moins un module de traitement (16, 17, 18, 19, 16', 17', 18', 19') apte à déterminer lesdites données de codage à partir desdites données image; 15 ledit dispositif de codage (2, 3, 4, 5) étant caractérisé en ce qu'il comprend en outre au moins un module de conversion (26, 26') apte à transformer les données image représentées sur N bits en des données image représentées sur M bits avec M un entier positif strictement inférieur à N et en ce que ledit au moins un module de traitement (16, 17, 18, 19, 16', 17', 18', 19') opère sur 20 les données image représentées sur M bits.
2. Dispositif de codage (2, 3, 4, 5) selon la revendication 1, dans lequel ledit au moins un module de traitement est un module de sélection de mode de codage (18, 19, 18', 19') apte à sélectionner pour un groupe d'au moins un 25 pixel un mode de codage dans un ensemble prédéfini de modes de codage à partir desdites données image.
3. Dispositif de codage (2, 3, 4, 5) selon la revendication 1, dans lequel ledit au moins un module de traitement est un module d'estimation de mouvement 30 (16, 17, 16', 17') apte à estimer pour un groupe d'au moins un pixel des données de mouvement à partir desdites données image.
4. Dispositif de codage (2, 3, 4,
5) selon la revendication 1, comprenant un premier module de traitement et un second module de traitement, dans lequelledit premier module de traitement est un module d'estimation de mouvement (16, 17, 16', 17') apte à estimer pour un groupe d'au moins un pixel des données de mouvement à partir desdites données image et dans lequel ledit second module de traitement est un module de sélection de mode de codage (18, 19, 18', 19') apte à sélectionner pour ledit groupe d'au moins un pixel un mode de codage dans un ensemble prédéfini de modes de codage à partir desdites données image et à partir desdites données de mouvement. 5. Dispositif de codage (2, 3, 4, 5) selon l'une des revendications 1 à 4, dans 10 lequel ladite au moins une donnée image est une donnée image de luminance.
6. Dispositif de codage (2, 3, 4, 5) selon l'une des revendications 1 à 4, dans lequel une donnée image de luminance et deux données image de 15 chrominance étant associées à chaque pixel, le module de conversion (26, 26') est adapté pour transformer uniquement les données image de luminance représentées sur N bits en des données image de luminance représentées sur M bits et dans lequel ledit au moins un module de traitement (16', 17', 18', 19') opère sur les données image de luminance représentées 20 sur M bits.
7. Dispositif de codage (2, 3, 4, 5) selon l'une des revendications 1 à 6, dans lequel le module de compression (28) est adapté pour reconstruire lesdites données image compressées en des données image reconstruites et dans 25 lequel ledit au moins un module de conversion (26') est adapté pour transformer les données image reconstruites représentées sur N bits en des données image représentées sur M bits, lesquelles sont utilisées par ledit au moins un module de traitement (16, 17, 18, 19) .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0758990A FR2918824A1 (fr) | 2007-11-13 | 2007-11-13 | Dispositif de codage d'une sequence d'image |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0758990A FR2918824A1 (fr) | 2007-11-13 | 2007-11-13 | Dispositif de codage d'une sequence d'image |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2918824A1 true FR2918824A1 (fr) | 2009-01-16 |
Family
ID=39672713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0758990A Pending FR2918824A1 (fr) | 2007-11-13 | 2007-11-13 | Dispositif de codage d'une sequence d'image |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2918824A1 (fr) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751359A (en) * | 1995-03-17 | 1998-05-12 | Sony Corporation | Method for quantizing compressed video signals |
US20050135481A1 (en) * | 2003-12-17 | 2005-06-23 | Sung Chih-Ta S. | Motion estimation with scalable searching range |
-
2007
- 2007-11-13 FR FR0758990A patent/FR2918824A1/fr active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751359A (en) * | 1995-03-17 | 1998-05-12 | Sony Corporation | Method for quantizing compressed video signals |
US20050135481A1 (en) * | 2003-12-17 | 2005-06-23 | Sung Chih-Ta S. | Motion estimation with scalable searching range |
Non-Patent Citations (2)
Title |
---|
CHEN L-G ET AL: "Analysis, Fast Algorithm, and VLSI Architecture Design for H.264/AVC Intra Frame Coder", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 15, no. 3, 1 March 2005 (2005-03-01), pages 378 - 401, XP011127214, ISSN: 1051-8215 * |
ZHONG-LI HE ET AL: "Low-Power VLSI Design for Motion Estimation Using Adaptive Pixel Truncation", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 10, no. 4, 1 June 2000 (2000-06-01), XP011014075, ISSN: 1051-8215 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11470339B2 (en) | Residual prediction for intra block copying | |
FR2948845A1 (fr) | Procede de decodage d'un flux representatif d'une sequence d'images et procede de codage d'une sequence d'images | |
EP3442228B1 (fr) | Procédé de décodage d'images | |
US20080008246A1 (en) | Optimizing video coding | |
JP2014520493A (ja) | 合成ビデオのためのロスレス・コード化および関連するシグナリング方法 | |
WO2007111292A1 (fr) | Appareil de codage d'image et appareil de decodage d'image | |
GB2318472A (en) | Generating inter-frame encoded video signals | |
FR2926419A1 (fr) | Codeur entropique, dispositif de codage video, procede de codage video et programme de codage video | |
KR101652183B1 (ko) | Vlc 코드워드들을 이용한 코딩 구문 요소들 | |
JP6092878B2 (ja) | 画像ブロックをイントラ符号化するためのデバイスおよび方法、イントラ符号化済みの画像ブロックを担持する記憶媒体、ならびにイントラ符号化済みの画像ブロックを復号するための処理デバイスの使用 | |
Naccari et al. | Intensity dependent spatial quantization with application in HEVC | |
FR2676608A1 (fr) | Procede de codage d'images en couleurs a fort taux de compression sans filtrage, procede de decodage, codeur, decodeur et application correspondants. | |
FR2982983A1 (fr) | Procede de codage et de reconstruction d'un bloc de pixels et dispositifs correspondants | |
FR2944936A1 (fr) | Procedes de codage et de decodage d'un bloc de donnees images, dispositifs de codage et de decodage implementant lesdits procedes | |
WO2012160313A1 (fr) | Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants | |
FR2918824A1 (fr) | Dispositif de codage d'une sequence d'image | |
WO2008049628A1 (fr) | Procede et dispoitif d'optimisation de la compression d'un flux video | |
WO2011161259A1 (fr) | Procede de codage d'une entite de donnees image et procede de reconstruction d'une entite de donnees image | |
FR2990097A1 (fr) | Procedes de codage et de decodage spatialement echelonnables et dispositifs correspondants | |
FR2951346A1 (fr) | Procede de codage multivues et procede de decodage correspondant | |
Chien et al. | AQT-DVC: adaptive quantization for transform-domain distributed video coding | |
FR3010605A1 (fr) | Procede de codage et de decodage de donnes flottantes d'un bloc d'image et dispositifs associes | |
FR3046711A1 (fr) | Compression et decompression de donnees video | |
KR100188680B1 (ko) | 이산코싸인 변환 모드 선택 장치 및 방법 | |
WO2008095825A1 (fr) | Transcodage vidéo à réduction de la dérive |