Brevet FR2739234A1 — publié le 19970328

La présente invention concerne des systèmes de compression de données vidéo, et plus particulièrement un dispositif à table de codage d'un décodeur à longueur variable (VLD) dans un système de compression de données vidéo. La principale technique utilisée dans un système de compression de données est le codage à longueur variable (VLC) qui transforme des données en codes de longueurs variables par des méthodes statistiques. Ainsi, les données qui apparaissent le plus fréquemment sont transformées en un code plus court qui nécessite une moins grande capacité de mémoire et un temps de transmission plus court, ce qui réduit la charge de données d'un moyen de communication. Afin de décoder et de remettre les codes de longueurs variables dans leur format original, un décodeur VLD est nécessaire dans un système de compression de données. En conséquence, l'amélioration de la vitesse de fonctionnement du décodeur VLD est devenue un critère important des systèmes vidéo très performants tels que la télévision à haute définition numérisée (HDTV). Les codes de longueurs variables d'un système vidéo sont généralement générés par une transformée de cosinus discret (DCT). En conséquence, une table de coefficients, appelée table de coefficients DCT, est nécessaire dans le décodeur VLD pour remettre les codes de longueurs variables dans leur forme originale. Par le passé, un certain nombre de structures de décodeurs VLD ont été décrites, par exemple par les brevets américains NO 4.177.456, 5.032.838, 5.055.841 et 5.245.338. L'objet de ces brevets américains est incorporé dans le présent document pour référence, et y est exposé. L'une de ces structures de VLD, illustrée sur la figure 1 (art antérieur), comprend un registre à décalage du type "décaleur à tambour" 15, une table de coefficients DCT 17 et un multiplexeur 19.Les données en entrée du déca leur à tambour 15 sont constituées d'un flux de données de codes successifs ayant des longueurs variables. Ces codes sont décalés, séparés puis envoyés séquentiellement à la table de coefficients DCT 17 où chacun des codes est décodé en un code de niveau et un code de longueur. Le code de niveau représente le format de données original et le code de longueur représente la longueur du code d'entrée. En conséquence, le code de longueur doit être renvoyé au déca leur à tambour 15 comme donnee de référence pour la séparation et le décalage de codes. Etant donné que chaque code d'entrée de la table de coefficients DCT 17 consiste en une partie de mot de code et un bit de signe, la table de coefficients DCT 17 d'une structure de VLD classique est généralement séparée en trois parties pour générer respectivement des niveaux de codes positifs, des niveaux de codes négatifs et les codes de longueur. Un schéma de la table de coefficients DCT 17 est représenté sur la figure 2. Par exemple, la table de coefficients DCT 17 reçoit un code d'entrée ..... .xi" du décaleur à tambour 15, dans lequel les bits de début .... .xN sont la partie de mot de code et la dernière partie "s" est le bit de signe. Le code d'entrée ..... xs" sera directement décodé en la partie de niveau positif 11 ou la partie de niveau négatif 12 de la table de coefficients DCT 17 pour générer un code de niveau, puis sorti par l'intermédiaire du choix du multiplexeur 19. Au même moment, la partie de code de longueur 13 de la table de coefficients 17 génère un code de longueur envoyé au déca leur à tambour 15 en calculant le nombre de bits du code d'entrée "xxx.. .xs". Etant donné que la structure de VLD mentionnée cidessus génère les codes de niveau à partir de deux parties indépendantes 11 et 12 dans la table de coefficients DCT 17, la capacité de ces parties doit être très grande lorsque certains des codes ont des longueurs de mot très importantes. Par exemple, afin de satisfaire aux exigences de la norme vidéo du groupe d'experts I pour les images animées (MPEG I) ou MPEG II, le VLD nécessite une table de coefficients DCT pouvant décoder au moins 114 codes, et leur longueur de code peut aller jusqu'à 17 bits. Ainsi, la dimension du VLD est dépendante de la table de coefficients DCT 17. C'est-à-dire que si le VLD doit être minimalisé pour que le système vidéo puisse être aussi compact que possible, les dimensions de la table de coefficients DCT doivent d'abord être réduites. D'autre part, étant donné que la table de coefficients DCT 17 d'un VLD classique est fournie par un réseau logique programmable (PLA), plus la dimension du PLA est grande, plus le retard de fonctionnement est important. Etant donné que la table de coefficients DCT 17 nécessite une capacité importante, les dimensions du PLA sont généralement trop grandes pour assurer un fonctionnement à grande vitesse. Même si certaines structures de VLD utilisent des dispositifs à mémoire morte (ROM) pour remplacer le PLA en tant que table de coefficients DCT, le grand espace occupé par les dispositifs à ROM ne permet pas une minimalisation satisfaisante du VLD. Cela signifie que l'efficacité de fonctionnement du VLD classique doit être améliorée et que ses dimensions doivent être réduites en modifiant la stratégie de décodage de la table de coefficients DCT. On observe également que la partie de niveau positif 11 et la partie de niveau négatif 12 de la table de coefficients DCT dans le VLD classique génèrent le même code de niveau lorsque les codes d'entrée ont les mêmes mots de code mais des bits de signe différent. C'est-à-dire que les deux parties de niveau ont des structures identiques, à l'exception du circuit qui décode le bit de signe. I1 est évident que la structure de VLD classique gaspille beaucoup d'espace dans la désignation de la table de coefficients DCT. En conséquence, si le mot de code et le bit de signe d'un code d'entrée peuvent être traités séparément, les dimensions de la table de coefficients DCT destinée à générer le code de niveau et le code de longueur peuvent être réduites de moitié par rapport à celle d'un VLD classique.Cette stratégie de décodage de la table de coefficients DCT peut aussi grandement améliorer les performances du VLD. En conséquence, la présente invention fournit un dispositif formant table de codage pour réduire au minimum les dimensions de la table de coefficients DCT ainsi que le VLD. La présente invention fournit également un dispositif formant table de codage pour améliorer la vitesse de fonctionnement du VLD lorsque le PLA est utilisé dans la table de coefficients DCT. Le dispositif formant table de codage pour le VLD suivant la présente invention est connecté à un décaleur à tambour pour obtenir un code d'entrée consistant en une partie de mot de code et un bit de signe. Le décaleur à tambour génère le code d'entrée en décalant et séparant un flux de bits d'entrée de celuici en une pluralité de codes d'entrée. Le dispositif formant table de codage comprend une table de coefficients DCT destinée à générer un code de niveau et un code de longueur à partir de la partie de mot de code, et un circuit de masque destiné à extraire le bit de signe par des opérations logiques effectuées sur le code d'entrée et le code de longueur. Le circuit de masque comprend une matrice de portes ET à double entrée et une porte OU à entrées multiples destinées à effectuer une opération logique sur le code d'entrée et le code de longueur.Plus précisément, la matrice de portes ET est destinée à effectuer une opération ET du code de longueur et du code d'entrée, et la porte OU est destinée à générer le bit de signe par une opération OU de chaque bit de sortie fourni par la porte ET à double entrée. La table de coefficients DCT décode les codes d'entrée directement en utilisant la partie de mot de code et en ignorant les bits de signe, réduisant ainsi les dimensions de la table de coefficients DCT ainsi que du VLD. En outre, étant donné que les dimensions de la table de coefficients DCT sont réduites, le retard de fonctionnement de la table de coefficients DCT peut être raccourci, ce qui améliore les performances du VLD. D'autres objets, caractéristiques, et avantages de la présente invention ressortiront clairement de la description détaillée suivante des modes de réalisation préférés mais non limitatifs. Cette description est faite en référence aux dessins joints, sur lesquels la figure 1 (art antérieur) est un schéma illustrant une structure de détecteur VLD de l'art antérieur ; la figure 2 est un schéma illustrant la table de coefficients DCT et le multiplexeur de la figure 1 (art antérieur) la figure 3 est un schéma fonctionnel illustrant la structure VLD suivant un mode de réalisation préféré de la présente invention ; et la figure 4 est un schéma de circuit illustrant le circuit de masque de la figure 3. Dans la présente invention, seule la partie de mot de code d'un code d'entrée provenant du décaleur à tambour est décodée dans le dispositif formant table de codage pour générer un code de niveau. Le bit de signe sera généré dans un circuit de masque. La figure 3 est un schéma fonctionnel illustrant la structure de VLD suivant un mode de réalisation préféré de la présente invention. En conséquence, le dispositif formant table de codage de la présente invention comprend une table de coefficients DCT 27 et un circuit de masque 29. Les données d'entrée du décaleur à tambour 25 sont un flux de bits. Le flux de bits comporte des bits, apparaissant successivement, de résultats DCT. Le décaleur à tambour 25 décale et sépare ces bits en codes de longueurs variables, puis envoie ces codes à la table de coefficients DCT 27 en tant que codes d'entrée. Les codes d'entrée, comme décrit dans l'art antérieur, consistent chacun en une partie de mot de code et un bit de signe.Dans la présente invention, le bit de signe de chaque code d'entrée est ignoré lorsque le procédé de décodage, qui est un procédé par table à consulter, est effectué dans la table de coefficients DCT 27. Cela signifie que seules les parties de mot de code des codes d'entrées sont utilisées dans la table de coefficients DCT 27 pour générer les codes de niveau et les codes de longueur. La structure de la table de coefficients DCT 27 est conçue à la fois pour les codes d'entrée positifs et négatifs, ce qui permet d'éviter la duplication d'une autre partie de code de niveau identique dans la table de coefficients DCT. Le circuit de masque 29 extrait les bits de signe des codes d'entrée. Le circuit de masque 29 comporte deux points d'accès ou portes d'entrée, destinés à acquérir des données provenant du décaleur à tambour 25 et de la table de coefficients DCT 27. Ces deux points d'accès d'entrée reçoivent respectivement le code de longueur et le code d'entrée de la table de coefficients DCT 27 et du décaleur à tambour 25. Ces deux codes sont traités par un simple circuit logique ET/OU dans le circuit de masque 29 pour générer le bit de signe. Une structure de circuit préférée du circuit de masque 29 est décrite sur la figure 4, sur laquelle une matrice de portes ET 290 à double entrée et une porte OU 291 à entrées multiples sont connectées en série. Dans le circuit de masque 29, chaque porte ET à double entrée prend un bit du code d'entrée et un bit du code de longueur pour l'opération ET. Tous les résultats de l'opération ET, c'est-à-dire tous les résultats fournis en sortie par les portes ET à double entrée, sont envoyés à l'entrée de la porte OU 291 à entrées multiples. En conséquence, s'il y a n portes ET dans la matrice de portes ET 290, la porte OU 291 à entrées multiples doit être munie de n portes d'entrée. Un exemple numérique réaliste va maintenant être présenté pour expliquer plus en détail le mode de réalisation préféré de la présente invention. On suppose qu'un code d'entrée "0111" est envoyé par le décaleur à tambour 25 à la table de coefficients DCT 27 et au circuit de masque 29. Ainsi qu'il est mentionné ci-dessus, le bit de poids faible du code d'entrée est le bit de signe, c'est-à-dire s="l" ; en conséquence, le mot de code du code d'entrée est "011". Dans la présente invention, bien que le code "0111" soit envoyé à la table de coefficients DCT 27, seuls les trois premiers bits sont pris en considération dans la table de coefficients DCT 27 pour générer le code de niveau et le code de longueur. Puis vient le code de longueur de "0001000...0". Tous les bits du code de longueur sont à "0" à l'exception du bit correspondant au bit de poids faible du code d'entrée, c'est-à-dire que In n'apparait qu'au quatrième bit. Le code de longueur est envoyé au circuit de masque 29 où une opération ET avec le code d'entrée "0111" est effectuée. Par exemple, la première porte ET à double entrée prend le premier bit du code d'entrée et le premier bit du code de longueur comme les deux données d'entrée. Etant donné que le code de longueur n'a qu'un bit à "1", à l'exception de la quatrième porte "ET", toutes les portes ET ont un résultat de "0". En ce qui concerne la quatrième porte ET, si le bit de poids faible du code d'entrée est à "l", sa sortie sera à "1", sinon, elle sera à "0". En conséquence, le résultat de la porte OU 291 sera "1" si le bit de poids faible du code d'entrée est "1", ou il sera "0". Cela signifie que les données fournies par la porte OU 291 sont identiques au bit de signe du code d'entrée. La table de coefficients DCT mentionnée ci-dessus peut être un dispositif à mémoire morte (ROM) ou un réseau logique programmable (PLA). Lorsqu'un PLA est utilisé dans la présente invention, étant donné que les dimensions de la table de coefficients DCT sont réduites à environ une moitié de celles de l'art antérieur, le retard de fonctionnement du PLA est fortement réduit. REVENDICATIONS 1. Dispositif formant table de codage pour un décodeur en longueur variable destiné à décoder un code d'entrée comprenant une partie de mot de code et un bit de signe, le dispositif formant table de codage comportant une table de coefficients (27) destinée à générer un code de niveau et un code de longueur à partir de la partie de mot de code du code d'entrée ; et un circuit de masque (29) destiné à extraire le bit de signe par des opérations logiques effectuées sur le code d'entrée et le code de longueur. 2. Dispositif formant table de codage suivant la revendication 1, dans lequel la table de coefficients (27) comprend un réseau logique programmable (PLA). 3. Dispositif formant table de codage suivant la revendication 1, dans lequel la table de coefficients (27) est un dispositif à mémoire morte (ROM). 4. Dispositif formant table de codage suivant la revendication 1, dans lequel le circuit de masque (29) comprend une matrice de portes ET à double entrée (290), destinée à effectuer une opération ET du code de longueur et du code d'entrée ; et une porte OU à entrées multiples (291), destinée à générer le bit de signe par une opération OU de chaque bit de sortie fourni par la porte ET à double entrée. 5. Dispositif formant table de codage suivant la revendication 1, dans lequel le code d'entrée est fourni par un décaleur à tambour (25). 6. Décodeur en longueur variable destiné à décoder un flux de bits, comprenant un décaleur à tambour (25) destiné à décaler et séparer le flux de bits en une pluralité de codes d'entrée, consistant chacun en une partie de mot de code et un bit de signe ; et un dispositif formant table de codage selon l'une des revendications 1 à 4.