FR2707780A1 - Appareil et procédé de traitement de données d'image capables de traiter des données d'image à vitesse élevée. - Google Patents
Appareil et procédé de traitement de données d'image capables de traiter des données d'image à vitesse élevée. Download PDFInfo
- Publication number
- FR2707780A1 FR2707780A1 FR9408222A FR9408222A FR2707780A1 FR 2707780 A1 FR2707780 A1 FR 2707780A1 FR 9408222 A FR9408222 A FR 9408222A FR 9408222 A FR9408222 A FR 9408222A FR 2707780 A1 FR2707780 A1 FR 2707780A1
- Authority
- FR
- France
- Prior art keywords
- data
- image
- memory
- code
- variable length
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
-
- 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/17—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 an image region, e.g. an object
- H04N19/176—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 an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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/46—Embedding additional information in the video signal during the compression process
-
- 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 les techniques de compression/décompression de données d'image. Un appareil de compression/décompression d'image conforme à une norme internationale comprend une unité de commande (2), une unité de traitement de pixels (3) pour la transformation en cosinus discrète et la quantification, une mémoire tampon d'intervalle d'image (51), une unité de prédiction de mouvement (41), un bus de données de pixel (PB) et un bus de code (CB). Un processeur de commande d'ensemble qui est incorporé dans l'unité de commande effectue une commande pipeline pour la compression/décompression d'image, permettant ainsi d'obtenir une vitesse de fonctionnement élevée. Application à la transmission d'images de télévision.
Description
APPAREIL ET PROCEDE DE TRAITEMENT DE DONNEES
D'IMAGE CAPABLES DE TRAITER DES DONNEES D'IMAGE
A VITESSE ELEVEE
La présente invention concerne de façon générale un appareil de traitement de données d'image et un procédé de traitement d'image. Elle concerne plus particulièrement un appareil et un procédé de traitement de données d'image au moyen desquels on peut effectivement effectuer une compression et/ou une décompression de données d'image
avec une vitesse élevée.
Des normes internationales pour la compression et la décompression de données d'image ont été préparées par les organismes International Organization for Standardization, que l'on désigne ci-après par "ISO";
Comité Consultatif InternationalTélégraphique et Télépho-
nique, appelé ci-après "CCITT", encore connu actuellement sous l'appellation ITu-T; et International Electrical Committee, que l'on appelle ci-après "IEC". Parmi les normes internationales, la norme JPEG a été préparée par le Joint Photographic Expert Group of ISO and CCITT, et
elle définit des algorithmes de compression et de décom-
pression pour des images fixes en couleurs. D'autre part, une norme MPEG est en cours de préparation par le Moving Picture Expert Group of ISO and IEC, et elle définit des algorithmes de compression et de décompression pour des images animées en couleurs. De plus, une norme H. 261 est actuellement en cours de préparation par le CCITT, et elle définit un algorithme de compression et de décompression convenant pour la vidéoconférence et la visiophonie. La figure 69 est un schéma synoptique montrant des processus principaux dans un algorithme de compression d'image qui est recommandé par la norme internationale. En se référant à la figure 69, on note qu'un processus de compression d'image comprend fondamentalement un codage prédictif, une
transformation orthogonale et un codage à longueur varia-
ble. Comme on peut le voir sur la figure 69, chacune des normes JPEG, MPEG et H.261 comprend, dans le traitement de compression d'image, une transformation en cosinus discrète (encore appelées "DCT"), une quantification et un
codage de Huffman.
La spécification JPEG pour le traitement d'une image fixe en couleurs comprend, à titre de système de base, une transformation en cosinus discrète adaptative, une quantification, une modulation par impulsions et codage de type différentiel (MIC) et un codage de Huffman, par exemple. La spécification JPEG comprend, à titre de système développé, une transformation en cosinus discrète adaptative, un codage hiérarchique, un codage
arithmétique et un codage de Huffman adaptatif.
La spécification MPEG pour l'accumulation d'images mobiles comprend une compensation de mouvement/ prédiction inter-trame, une transformation en cosinus discète, une quantification et un codage de Huffman. La
spécication H.261 pour la visiophonie et la vidéoconfé-
rence comprend une compensation de mouvement/prédiction inter-trame, une transformation en cosinus discrète, une
quantification et un codage de Huffman.
Un circuit intégré complexe pour la compression d'image conformément à la norme internationale précitée a
été développé et il est par exemple décrit sommairement
dans un article intitulé "LSI for Image Processing",dans Journal of the Institute of Television Engineers of Japan, Vol. 46, n 3, pages 253-260, 1992. On note que la présente invention est applicable de façon générale à un appareil de compression de données d'image, à un appareil de décompression de données d'image et à un processeur de données d'image pour la compression et/ou la décompression d'image conformément aux normes internationales décrites ci-dessus. La figure 70 est un schéma synoptique d'un
appareil de compression/décompression d'image classique.
En se référant à la figure 70, on note que l'appareil de compression/décompression d'image comprend un processeur de signal numérique (encore appelé DSP pour "digital signal processor") 900 pour le traitement de données d'image, une mémoire de données d'image 907, une mémoire de données de code 908, une mémoire de visualisation 909 et une mémoire de travail 910. Le processeur de signal numérique 900 est connecté aux mémoires 907 à 910 par
l'intermédiaire d'un bus interne 940.
La figure 71 est un schéma synoptique du proces-
seur de signal numérique 900 qui est représenté sur la figure 70. En se référant à la figure 71, on note que le processeur de signal numérique 900 comprend une mémoire d'instructions 901, une unité de commande par programme 902, une mémoire de données 903, une unité de traitement de données 904 et une interface externe 905. Un bus de
système 941 connecte ensemble l'unité de commande par pro-
grame 902, la mémoire de données 903, l'unité de traitement de
données 904 et l'interface externe 905. Pendant le fonc-
tionnement, un code d'instruction enregistré (ou program-
mé) dans la mémoire d'instructions 901 est lu et il est appliqué à l'unité de commande par programme 902. L'unité de commande par programme 902 décode le code d'instruction appliqué et elle produit divers signaux de commande. Sous l'effet des signaux de commande qui proviennent de l'unité de commande par programme 902, l'unité de traitement de
données 904 reçoit des données externes par l'intermé-
diaire de l'interface externe 905 et de la mémoire de données 903, et elle accomplit son opération. Le résultat de l'opération est enregistré dans la mémoire de données 903 ou bien il est émis par l'intermédiaire de l'interface externe 905. De cette manière, un processus est accompli dans le processeur de signal numérique 900 conformément au code d'instruction qui est enregistré dans la mémoire
d'instructions 901.
On décrira une opération de compression de données d'image en se référant aux figures 70 et 71. On suppose ici que les données d'image à comprimer sont enregistrées dans une mémoire de données d'image 907. En
premier lieu, les données d'image qui sont été enregis-
trées dans la mémoire de données d'image 907 sont trans-
férées vers la mémoire de données 903 dans le processeur de signal numérique 900. Le format des données d'image enregistrées dans la mémoire de données 903 est converti
par l'unité de traitement de données 904. Dans la conver-
sion, des données sous-échantillonnées de signal de diffé-
rence de couleurs, ou des données en format RGB, par exem-
ple, sont converties en données en format YUV. Les données converties sont enregistrées temporairement dans la mémoire de données 903. Le processeur de signal numérique 900 transfère vers la mémoire de données d'image 907 les données converties qui sont présentes dans la mémoire de
données 903.
Ensuite, le processeur de signal numérique 900 détermine un mode de compression d'image en utilisant les données enregistrées dans la mémoire de données d'image 907. En ce qui concerne les modes de compression d'image, on connaît un mode de compression inter-trame, un mode de compression intra-trame, etc. Dans le mode de compression inter-trame, un traitement tel qu'une prédiction (ou une
détection) de mouvement devient quelquefois nécessaire.
Des données d'évaluation pour déterminer le mode de compression et des données d'évaluation pour la détection de mouvement sont obtenues en effectuant par exemple une sommation de valeurs absolues de différences de données d'image. Lorsqu'une telle opération est effectuée, le processeur de signal numérique 900 transfère les données enregistrées dans la mémoire de données d'image 907 vers la mémoire de données 903, d'une manière similaire à celle de la conversion de format, et l'unité de traitement de données 904 traite les données enregistrées dans la
mémoire de données 903.
Sur la base des données d'évaluation qui sont
obtenues par l'opération mentionnée ci-dessus, le proces-
seur de signal numérique 900 détermine le mode de compres-
sion en se référant à des données de table pour la déter-
mination de mode qui sont enregistrées dans la mémoire de
travail 910 et/ou en effectuant une opération de compa-
raison des données d'évaluation.
Apres la détermination du mode de compression, le processeur de signal numérique 900 effectue un codage
par transformation des données d'image qui sont enregis-
trées dans la mémoire de données d'image 907. Le codage par transformation est représenté par exemple par la transformation en cosinus discrète. Le processeur de signal numérique 900 transfère vers la mémoire interne 903 les données qui sont enregistrées dans la mémoire de données d'image 907, et ensuite l'unité de traitement de données 904 effectue la transformation en cosinus discrète. Les données traitées sont conservées dans la
mémoire de données 903.
En outre, le processeur de signal numérique 900
effectue un codage à longueur variable (ou codage entro-
pique). Le codage à longueur variable est connu à titre de conversion de code utilisant par exemple le code de Huffman. Le processeur de signal numérique 900 accomplit
un codage à longueur variable des données qui sont enre-
gistrées dans la mémoire de données 903, en se référant à une table de conversion de code qui est enregistrée dans la mémoire de travail 910. Après conversion de code, les données traitées sont transférées de la mémoire de données 903 vers la mémoire de données de code 908 et elles sont
enregistrées dans cette dernière.
Le traitement de données d'image pour la com-
pression d'image est accompli de la manière décrite ci-
dessus, et le traitement de données d'image pour la décom-
pression d'image est également effectué d'une manière similaire. Plus précisément, les données à décomprimer sont tout d'abord appliquées à la mémoire de données 903
dans le processeur de signal numérique 900, et des traite-
ments de décompression d'image sont accomplis par l'unité
de traitement de données 904 sur les données enregistrées.
Comme décrit ci-dessus, dans l'appareil de
compression/décompression d'image classique, une compres-
sion et une décompression de données d'image sont effec-
tuées par un processeur de signal numérique 900 ayant une
seule unité de traitement de données 904, et par consé-
quent le traitement des données prend beaucoup de temps.
En outre, du fait que le processeur de signal numérique 900 n'a qu'un seul accès d'entrée/sortie (c'est-à-dire l'interface externe 905) pour les données, le transfert de données ne peut pas être effectué efficacement dans l'appareil de compression/décompression d'image traitant
une grande quantité de données d'image.
Un but de la présente invention est de procurer un appareil et un procédé de traitement de données d'image
convenant pour un traitement rapide.
Un autre but de la présente invention est de procurer un appareil et un procédé de traitement de données d'image par lesquels on puisse effectuer une
compression de données d'image avec une vitesse élevée.
Un but supplémentaire de la présente invention est de procurer un appareil et un procédé de traitement de données d'image par lesquels on puisse effectuer une
décompression de données d'image avec une vitesse élevée.
Un autre but supplémentaire de la présente invention est de procurer un appareil de traitement de
données d'image qui puisse accomplir des traitement prédé-
terminés pour la compression de données d'image et/ou la décompression de données d'image et le transfert de
données d'image en parallèle, avec une vitesse élevée.
Un autre but supplémentaire de la présente invention est de procurer un appareil de traitement de données d'image capable de commander séparément l'accès à
plusieurs unités de mémoire.
Un autre but supplémentaire de la présente invention est de procurer un appareil de traitement de données d'image qui puisse simplifier la détermination concernant la sélection d'un code à longueur variable ou
d'un code à longueur fixe.
Un autre but supplémentaire de la présente invention est de procurer un appareil de traitement de données d'image qui puisse simplifier la détermination dans la sélection de données de plage et de données de
niveau, ou de données décodées.
Un autre but supplémentaire de la présente invention est de procurer un appareil de traitement de données d'image qui puisse accéder, en une courte durée, à
des données de pixel d'une zone désirée sur l'écran.
Un autre but supplémentaire de la présente invention est de procurer un procédé de traitement de données d'image dans lequel on puisse réduire le nombre de
transferts de données de pixel.
Conformément à un aspect de la présente inven-
tion, l'appareil de traitement de données d'image comprend un processeur de commande pour commander un traitement pipeline d'un ensemble de processus pour la compression de données d'image et/ou la décompression de données d'image, et un processeur d'image pour accomplir un processus
prédéterminé parmi l'ensemble de processus, sous la dépen-
dance d'un signal de commande qui est appliqué par le
processeur de commande.
Avec la structure décrite ci-dessus, le proces-
seur de commande commande le traitement pipeline d'un ensemble de processus prédéterminés pour la compression de données d'image et/ou la décompression de données d'image, de façon que des données d'image puissent être traitées
avec une vitesse élevée.
Un appareil de traitement de données d'image conforme à un autre aspect de la présente invention
comprend un processeur de commande qui est destiné à com-
mander l'exécution en parallèle de processus prédéterminés
pour la compression de données d'image et/ou la décompres-
sion de données d'image et le transfert de données
d'image, et un ensemble de circuits de commande d'exécu-
tion, chacun d'eux commandant individuellement l'exécution des processus prédéterminés et le transfert de données d'image, sous la dépendance d'un signal de commande qui
est appliqué par le processeur de commande.
Avec la structure décrite ci-dessus, le proces-
seur de commande commande l'exécution en parallèle d'un ensemble de processus prédéterminés pour la compression de données d'image et/ou la décompression de données d'image et le transfert de données d'image. Sous l'effet d'un signal de commande provenant du processeur de commande, un ensemble de circuits de commande d'exécution commandent individuellement l'exécution de ces opérations, de façon que des données d'image puissent être traitées avec une
vitesse élevée.
L'appareil de traitement de données d'image conforme à encore un autre aspect de la présente invention est capable d'accéder à une première unité de mémoire dans laquelle sont enregistrées des données de table pour la conversion, à une seconde unité de mémoire dans laquelle sont enregistrées des données à traiter, à une troisième unité de mémoire dans laquelle sont enregistrées des données d'image pour la visualisation et à une quatrième unité de mémoire dans laquelle sont enregistrées des données d'image converties, et il comprend un premier circuit d'accès pour accéder à la première unité de mémoire, un second circuit d'accès pour accéder à la seconde unité de mémoire, un troisième circuit d'accès pour accéder à la troisième unité de mémoire, un quatrième circuit d'accès pour accéder à la quatrième unité de mémoire, et un circuit de commande d'accès pour commander individuellement le démarrage de l'accès aux premier à
quatrième circuits d'accès.
Dans la structure décrite ci-dessus, le circuit de commande d'accès commande individuellement le démarrage de l'accès aux premier à quatrième circuits d'accès. Par conséquent, il est possible d'accéder individuellement aux
première à quatrième unités de mémoire, les données utili-
sées pour le traitement de données d'image peuvent être transférées avec une vitesse élevée et par conséquent des données d'image peuvent être traitées avec une vitesse élevée. L'appareil de traitement de données d'image conforme à encore un autre aspect de la présente invention
comprend une unité de mémoire qui est destinée à enregis-
trer un code à longueur variable correspondant à la combi-
naison de données de plage et de données de niveau, des
données de longueur de code correspondantes et un indica-
teur de traitement de code à longueur fixe; un circuit de lecture pour lire le code à longueur variable, ses données de longueur de code et l'indicateur de traitement de code à longueur fixe correspondant à des données de plage appliquées et à des données de niveau appliquées; un circuit de codage à longueur fixe pour effectuer un codage conformément à une règle prédéterminée sur les données de plage appliquées et sur les données de niveau appliquées, et pour produire un code à longueur fixe correspondant; un circuit de sélection fonctionnant sous la dépendance de l'indicateur de traitement de code à longueur fixe qui est émis par le circuit de lecture, de façon à sélectionner le code à longueur variable ou le code à longueur fixe; et un
circuit de couplage de codes pour coupler succes-
sivement des codes émis par le circuit de sélection.
Dans la structure décrite ci-dessus, le circuit de sélection sélectionne soit le code à longueur variable, soit le code à longueur fixe, sous la dépendance de l'indicateur de traitement de code à longueur fixe qui est
fourni par le circuit de lecture, de façon qu'une détermi-
nation conformément au programme puisse être notablement simplifiée, et que des données d'image puissent être
traitées avec une vitesse élevée.
L'appareil de traitement de données d'image conforme à un autre aspect supplémentaire de la présente invention comprend une unité de mémoire qui est destinée à enregistrer des données de plage et des données de niveau
correspondant au code à longueur variable, et un indica-
teur de code à longueur fixe; un circuit d'extraction pour
extraire un code à longueur variable diu train decodes i lon-
gueurvaxiableapiqué-cMprenant des codes à longueur variable
couplés; un circuit de lecture pour lire, en correspon-
dance avec le code à longueur variable qui est extrait par le circuit d'extraction, les données de plage et les données de niveau correspondantes, et l'indicateur de traitement de code à longueur fixe, dans l'unité de mémoire; un circuit de décodage à longueur fixe pour décoder le code à longueur fixe qui est extrait par le
circuit d'extraction, conformément à une règle prédéter-
minée, pour fournir des données décodées correspondantes; et un circuit de sélection pour sélectionner, sous la dépendance de l'indicateur de longueur fixe qui est émis par le circuit de lecture, les données de plage et les
données de niveau, ou les données de code.
Dans la structure décrite ci-dessus, le circuit de sélection sélectionne soit les données de plage et les données de niveau, soit les données décodées, sous la dépendance de l'indicateur de traitement à longueur fixe qui est fourni par le circuit de lecture, de façon que la
détermination conformément au programme puisse être nota-
blement simplifiée, et que des données d'image puissent
être traitées avec une vitesse élevée.
L'appareil de traitement de données d'image conforme à un autre aspect supplémentaire de la présente invention comprend n (n k 2) réseaux de cellules de mémoire pour enregistrer des données d'image pour définir des pixels sur l'écran, les n réseaux de cellules de mémoire fournissant n données de pixel, avec chaque donnée enregistrée dans l'un correspondant des n réseaux de cellules de mémoire, sous l'effet de l'application d'un signal d'adresse de ligne et d'un signal d'adresse de colonne, les n données de pixel définissant un ensemble de pixels disposés dans la direction verticale sur l'écran, et l'appareil comprenant en outre un circuit de génération de signal d'adresse pour émettre en série des signaux d'adresse de colonne pour définir des données de pixel
concernant les pixels disposés dans la direction horizon-
tale de l'écran, sous l'effet d'un signal d'horloge série.
Dans la structure décrite ci-dessus, n données de pixel qui sont lues dans n réseaux de cellules de mémoire sous la dépendance d'un signal d'adresse de ligne et d'un signal d'adresse de colonne, définissent un ensemble de pixels disposés dans la direction verticale sur l'écran. Du fait que le circuit de génération de signal d'adresse émet en série des signaux d'adresse de colonne sous l'effet d'un signal d'horloge série, on peut accéder en une courte durée à des données de pixel d'une zone désirée sur l'écran. On peut donc traiter des données
d'image avec une vitesse élevée.
L'appareil de traitement de données d'image conforme à un autre aspect supplémentaire de la présente invention comprend n (n t 2) réseaux de cellules de mémoire pour enregistrer des données de pixel pour définir des pixels sur l'écran, les n réseaux de cellules de mémoire fournissant n données de pixels, avec chaque donnée enregistrée dans l'un correspondant des n réseaux de cellules de mémoire, sous l'effet de l'application d'un signal d'adresse de ligne et d'un signal d'adresse de colonne, les n données de pixel définissant un ensemble de pixels disposés dans la direction horizontale sur l'écran, et l'appareil comprend en outre un circuit de génération de signal d'adresse pour émettre en série des signaux d'adresse de colonne pour définir des données de pixel concernant des pixels qui sont disposés dans la direction verticale sur l'écran, sous la dépendance d'un
signal d'horloge série.
Dans la structure décrite ci-dessus, n données de pixel qui sont lues dans n réseaux de cellules de mémoire sous la dépendance d'un signal d'adresse de ligne
et d'un signal d'adresse de colonne, définissent un ensem-
ble de pixels disposés dans la direction horizontale sur l'écran. Du fait que le circuit de génération de signal d'adresse émet en série des signaux d'adresse de colonne sous l'effet d'un signal d'horloge série, on peut accéder en une courte durée à des données de pixel d'une zone désirée sur l'écran. On peut donc traiter des données
d'image avec une vitesse élevée.
L'appareil de traitement de données d'image conforme à un autre aspect supplémentaire de l'invention comprend une première unité de mémoire de données de pixel qui est destinée à enregistrer des données de pixel à comprimer; un premier bus de données de pixel pour trans- férer des données de pixel enregistrées dans la première unité de mémoire de données de pixel; un processeur de pixels qui reçoit des données de pixel transférées par le premier bus de données de pixel et qui extrait des données
de référence pour la prédiction de mouvement, par l'utili-
sation des données de pixel transférées, et comportant des premier et second ports de données pour fournir les données de référence pour la prédiction de mouvement; un second bus de données de pixel pour transférer les données de référence pour la prédiction de mouvement qui sont émises par le second port de données du processeur de pixels; une seconde unité de mémoire de données de pixel qui est destinée à enregistrer des données de référence pour la prédiction du mouvement qui sont transférées par le second bus de données; une unité de prédiction de mouvement pour effectuer une prédiction de mouvement en utilisant les données de référence pour la prédiction qui sont enregistrées dans la seconde unité de mémoire de données de pixel et qui sont transférées par le second bus de données de pixel, pour générer un vecteur de mouvement; et un processeur de commande pipeline pour commander le traitement pipeline des premier et second bus de données
de pixel, du processeur de pixels et de l'unité de prédic-
tion de mouvement.
Dans la structure décrite ci-dessus, le proces-
seur de pixels fournit les données de référence pour la prédiction de mouvement par l'intermédiaire des premier et second ports de données, ces données sont respectivement enregistrées dans les première et seconde unités de mémoire de données de pixel, les données de référence pour la prédiction de mouvement qui sont enregistrées dans la
seconde unité de mémoire de données de pixel sont trans-
férées vers l'unité de prédiction de mouvement par le second bus de données de pixel, et l'unité de prédiction de mouvement effectue une prédiction de mouvement et elle
génère un vecteur de mouvement.
Il en résulte que des données peuvent être transférées efficacement avec la quantité de données divisée efficacement, la quantité de données transférées par un chemin pouvant être réduite de façon que la vitesse pratique de transfert de données puisse être améliorée, et que des données d'image puissent être traitées avec une
vitesse élevée.
Le procédé de traitement de données d'image conforme à un autre aspect supplémentaire de la présente invention code un ensemble de données de macro-blocs définissant des pixels qui forment un plan d'image, par un traitement pipeline, et ce procédé comprend les étapes qui consistent à effectuer une transformation en cosinus discrète et une quantification des données de macro-blocs pour générer un code de pixel, à effectuer un codage à longueur variable sur le code de pixel qui est généré dans
l'étape précitée, pour générer un code à longueur varia-
ble, et à coupler le code à longueur variable généré à l'étape précédente, pour produire un train de codes à longueur variable. Avec le procédé ci-dessus, tous les traitements de l'ensemble de données de macro-blocs peuvent être effectués en un mode pipeline, ce qui fait que la compression des données d'image peut être effectuée
avec une vitesse élevée.
Le procédé de traitement de données d'image conforme à un autre aspect supplémentaire de la présente invention décode un train de codes à longueur variable, comprenant un ensemble de codes à longueur variable définissant des pixels formant un plan d'image, par un traitement pipeline, et ce procédé comprend les étapes qui consistent à extraire le code à longueur variable du train de code à longueur variable, à effectuer un décodage à longueur variable sur le code à longueur variable qui est extrait par l'étape précédente, pour générer un code de pixel, et à effectuer une quantification inverse et une transformation en cosinus discrète inverse du code de pixel qui est généré à l'étape précédente, pour générer des données de macro-blocs définissant des pixels qui
forment le plan d'image.
Avec le procédé ci-dessus, un train de codes à longueur variable comprenant un ensemble de codes à longueur variable peut être décodé par un traitement pipeline, et par conséquent des données d'image peuvent
être décomprimées avec une vitesse élevée. Le procédé de traitement de données d'image conforme à un autre mode de
réalisation supplémentaire de la présente invention est destiné à projeter des premières données de pixels dans une unité de mémoire qui enregistre un ensemble de ces premières données de pixel, définissant des pixels de l'écran, et ce procédé comprend une première étape consistant à déterminer un ensemble de secondes données de pixels mutuellement adjacentes, de façon bidimensionnelle, et incluses dans une zone rectangulaire, parmi les premières données de pixels, une seconde étape consistant à appliquer une adresse de l'unité de mémoire aux secondes données de pixel, en considérant les secondes données de pixel comme un seul élément de données, et une troisième étape consistant à transférer les secondes données à partir de l'unité de mémoire, ou vers celle-ci, en utilisant l'adresse des secondes données de pixel. Par conséquent, dans le procédé de traitement de données d'image mentionné ci-dessus, un ensemble de secondes données de pixel mutuellement adjacentes, de façon bidimensionnelle, et incluses dans une zone rectangulaire, sont considérées comme un seul élément de données et sont transférées en appliquant une seule adresse, ce qui permet de réduire le nombre de transferts pour transférer les premières données de pixel dans la zone rectangulaire. Il est donc possible de traiter les données d'image avec une
vitesse élevée.
Le procédé de traitement de données d'image conforme à un autre mode de réalisation supplémentaire de l'invention est destiné à projeter les premières et secondes données de pixel de différence de couleur, dans une unité de mémoire qui enregistre ces premières et secondes données de pixel de différence de couleur, mutuellement liées, pour définir des pixels sur un écran, et ce procédé comprend une première étape qui consiste à projeter alternativement dans l'unité de mémoire des unités de transfert des premières et secondes données de pixel de différence de couleur, et une seconde étape qui consiste à transférer les premières et secondes données de pixel de différence de couleur vers l'unité de mémoire, ou à partir de celle-ci, en travaillant sur l'unité de transfert. Par conséquent, dans le procédé de traitement de données d'image décrit ci-dessus, des premières et secondes données de pixel de différence de couleur corrélées sont alternativement projetées en travaillant sur l'unité de transfert, et des premières et secondes données de différence de couleur sont transférées en travaillant sur cette unité. Par conséquent, en générant une seule adresse, on peut transférer des premières et secondes données de pixel de différence de couleur d'une zone déterminée. Il en résulte que l'on peut traiter des
données d'image avec une vitesse élevée.
Le procédé de traitement de données d'image conforme à un autre aspect supplémentaire de la présente invention est destiné à projeter des premières et secondes données de pixel de différence de couleur, dans une unité de mémoire qui enregistre ces premières et secondes données de pixel de différence de couleur liées les unes aux autres, pour définir des pixels sur un écran, et ce procédé comprend une première étape qui consiste à projeter dans l'unité de mémoire des troisièmes données de pixel de différence de couleur contenant le même nombre des premières et secondes données de pixel de différence de couleur, sous la forme d'un seul bloc de données, et une seconde étape qui consiste à transférer les troisièmes données de pixel de différence de couleur, sous la forme d'un seul bloc de données, à partir de l'unité de mémoire
ou vers celle-ci.
Par conséquent, dans le procédé de traitement de données d'image décrit ci-dessus, les troisièmes données de pixel de différence de couleur, comprenant le même
nombre des première et seconde données de pixel de diffé-
rence de couleur mutuellement corrélées, sont projetées dans l'unité de mémoire sous la forme d'un seul bloc de données, et les troisièmes données de pixel de différence de couleur sont transférées sous la forme d'un seul bloc de données. Par conséquent, en générant une seule adresse, on peut transférer les premières et secondes données de pixel de différence de couleur d'une zone déterminée. On peut donc traiter des données d'image avec une vitesse élevée. Ces buts, caractéristiques, aspects et avantages de la présente invention, ainsi que d'autres, ressortiront
davantage de la description de modes de réalisation
présentée ci-après. La suite de la description se réfère
aux dessins annexés dans lesquels:
La figure 1 est un schéma synoptique d'un appa-
reil de compression/décompression d'image montrant un
premier mode de réalisation de la présente invention.
La figure 2 est un schéma synoptique montrant
des traitements pour la compression d'image dans l'appa-
reil de compression/décompression d'image qui est repré-
senté sur la figure 1.
La figure 3 est un schéma synoptique montrant des traitements pour la décompression d'image par l'appa-
reil de compression/décompression d'image qui est repré-
senté sur la figure 1.
La figure 4 est un schéma synoptique d'un appa-
reil de compression/décompression d'image, montrant un
second mode de réalisation de la présente invention.
La figure 5 est un schéma synoptique d'un appa-
reil de compression/décompression d'image montrant un
troisième mode de réalisation de la présente invention.
La figure 6 est un schéma synoptique d'un appa-
reil de compression/décompression d'image montrant un
quatrième mode de réalisation de la présente invention.
La figure 7 est un schéma synoptique d'un appa-
reil de compression/décompression d'image montrant un
cinquième mode de réalisation de la présente invention.
La figure 8 est un schéma synoptique d'un appa-
reil de compression/décompression d'image montrant un
sixième mode de réalisation de la présente invention.
La figure 9 est un schéma synoptique montrant un
exemple d'une unité de commande.
La figure 10 est un schéma synoptique montrant
un autre exemple de l'unité de commande.
La figure 11l est un diagramme temporel montrant un traitement pipeline qui est accompli sous la commande d'un processeur de commande d'ensemble qui est représenté
sur la figure 9.
La figure 12 montre des opérations parallèles dans une seule période T1O qui est représentée sur la
figure 11.
La figure 13 est un schéma synoptique d'un processeur de commande d'ensemble qui est représenté sur
la figure 9.
La figure 14 est un schéma synoptique d'une unité de commande de prédiction de mouvement qui est
représentée sur la figure 9.
La figure 15 est un schéma synoptique d'une unité de conversion de format d'image qui est représentée
sur la figure 9.
La figure 16 est un schéma synoptique d'une unité de commande de transfert de données d'image qui est
représentée sur la figure 9.
La figure 17 est un schéma synoptique d'une unité de transfert d'instruction qui est représentée sur
la figure 9.
La figure 18 est un schéma synoptique montrant
un exemple d'une unité de traitement de pixels.
La figure 19 est un schéma synoptique détaillé de l'unité de traitement de pixels qui est représentée sur
la figure 18.
La figure 20 est un schéma synoptique montrant
un autre exemple de l'unité de traitement de pixels.
* La figure 21 est un schéma synoptique détaillé de l'unité de traitement de pixels qui est représentée sur
la figure 20.
La figure 22 est un organigramme montrant une opération de codage (prédiction intra-intervalle d'image) -dans l'unité de traitement de pixels qui est représentée
sur la figure 19.
La figure 23 est un organigramme montrant une opération de décodage (prédiction intra-intervalle d'image) dans l'unité de traitement de pixels qui est représentée
sur la figure 19.
La figure 24 est un organigramme d'une opéra-
tion de codage (prédiction bidirectionnelle) dans l'unité de traitement de pixels qui est représentée sur la figure
19.
La figure 25 est un organigramme d'une opération de décodage (prédiction bidirectionnelle) dans l'unité de
traitement de pixels qui est représentée sur la figure 19.
La figure 26 est un diagramme temporel montrant un traitement pipeline pour le codage dans l'unité de
traitement de pixels qui est représentée sur la figure 19.
La figure 27 est un diagramme temporel montrant un traitement pipeline dans la prédiction intra-intervalle d'image dans l'unité de traitement de pixels qui est
représentée sur la figure 19.
La figure 28 est un diagramme temporel montrant un traitement pipeline dans le traitement unidirectionnel dans l'unité de traitement de pixels qui est représentée
sur la figure 19.
La figure 29 est un diagramme temporel montrant un traitement pipeline dans la prédiction bidirectionnelle dans l'unité de traitement de pixels qui est représentée
sur la figure 19.
La figure 30 est un schéma synoptique montrant une première structure de système pour un traitement à
longueur variable.
La figure 31 est un organigramme du codage à longueur variable dans la première structure de système
qui est représentée sur la figure 30.
La figure 32 est un organigramme du décodage à longueur variable dans la première structure de système
qui est représentée sur la figure 30.
La figure 33 montre une structure de mémoire de données d'une mémoire de table pour le codage à longueur
variable qui est représenté sur la figure 30.
La figure 34 montre une structure de mémoire de données d'une mémoire de table pour le décodage à longueur
variable qui est représenté sur la figure 30.
La figure 35 est un organigramme montrant un processus pour la génération d'un train de codes à
longueur variable.
- La figure 36 est un schéma synoptique montrant
un premier exemple d'un processeur à longueur variable.
La figure 37 est un schéma synoptique montrant un second exemple du processeur à longueur variable. La figure 38 est un schéma synoptique montrant
un troisième exemple du processeur à longueur variable.
La figure 39 est un schéma synoptique montrant une seconde structure de système pour le traitement à
longueur variable.
La figure 40 est un schéma synoptique du proces-
seur à longueur variable qui est représenté sur la figure 39.
La figure 41 est un schéma synoptique du généra-
teur d'adresse qui est représenté sur la figure 40.
La figure 42 est un organigramme du codage à longueur variable dans le générateur d'adresse qui est
représenté sur la figure 41.
La figure 43 est un organigramme du décodage à longueur variable dans le générateur d'adresse qui est
représenté sur la figure 41.
La figure 44 est un schéma synoptique du circuit de génération/séparation de train de codes à longueur
variable qui est représenté sur la figure 40.
La figure 45 est un organigramme du codage à longueur variable dans le circuit de génération/séparation de train de codes à longueur variable qui est représenté
sur la figure 44.
La figure 46 est un organigramme du décodage à longueur variable dans le circuit de génération/séparation de train de codes à longueur variable qui est représenté
sur la figure 44.
La figure 47 est un schéma synoptique d'un
circuit d'interface externe de la figure 40.
La figure 48 est un organigramme du codage à longueur variable dans le circuit d'interface externe qui
est représenté sur la figure 47.
La figure 49 est un organigramme du décodage à longueur variable dans le circuit d'interface externe qui est représenté sur la figure 47. La figure 50 est une table de code à longueur variable par groupe qui est utilisé dans le processeur à
longueur variable qui est représenté sur la figure 39.
La figure 51 montre le format des données enre-
gistrées dans la mémoire de table pour le codage à
longueur variable qui est représenté sur la figure 39.
La figure 52 montre le format de données à coder
dans le codage à longueur variable.
La figure 53 montre la structure de base du réseau de cellules de mémoire dans une mémoire tampon de trame. La figure 54 est un schéma synoptique d'une
mémoire tampon de trame.
La figure 55 montre une structure de système de la mémoire tampon de trame employant des mémoires vives dynamiques. La figure 56 montre une disposition de pixels
faisant apparaître la relation entre des données enregis-
trées dans la mémoire tampon de trame qui est représentée
sur la figure 55 et les pixels sur l'écran.
La figure 57 représente une disposition de pixels faisant apparaître la relation entre des données enregistrées dans la mémoire tampon de trame qui est
représentée sur la figure 60 et les pixels sur l'écran.
La figure 58 montre une disposition de pixels qui illustre l'adressage par une unité de commande de mémoire vive dynamique qui est représentée sur la figure 55. La figure 59 est un diagramme temporel montrant une opération de lecture d'une mémoire tampon de trame sous la commande de l'unité de commande de mémoire vive
dynamique qui est représentée sur la figure 55.
La figure 60 montre une structure de système d'une mémoire tampon de trame employant des mémoires vives dynamiques synchrones. La figure 61 est un diagramme temporel montrant une opération de lecture de la mémoire vive dynamique synchrone. La figure 62 montre un exemple de fonctionnement du générateur d'adresse qui est représenté sur la figure 60. La figure 64 est un diagramme temporel montrant un autre exemple de fonctionnement du générateur d'adresse
qui est représenté sur la figure 60.
La figure 65 est un diagramme temporel montrant encore un autre exemple de fonctionnement du générateur
d'adresse qui est représenté sur la figure 60.
La figure 66 est un schéma synoptique du généra-
teur d'adresse qui est représenté sur la figure 60.
La figure 67 montre la correspondance adresse-
page et fait apparaître la relation entre des pages et des adresses de ligne et de colonne qui sont fournies par le
générateur d'adresse représenté sur la figure 66.
La figure 68 montre la correspondance page-pixel et fait apparaître la relation entre des pages qui sont
représentées sur la figure 67 et les pixels sur l'écran.
La figure 69 est un schéma synoptique montrant des traitements principaux conformes à un algorithme de compression d'image qui est recommandé par une norme
internationale.
La figure 70 est un schéma synoptique d'un appa-
reil de compression/décompression d'image classique.
La figure 71 est un schéma synoptique du proces-
seur de signal numérique qui est représenté sur la figure
70.
La figure 72 est une illustration d'un premier procédé de projection dans une mémoire tampon de trame de
données de pixel sur l'écran.
La figure 73 est une première illustration du transfert d'une zone de données comprenant 8 pixels dans la direction horizontale et 8 pixels dans la direction verticale. La figure 74 est une seconde illustration montrant le transfert d'une zone de données comprenant 8 pixels dans la direction horizontale et 8 pixels dans la
direction verticale.
La figure 75 est une troisième illustration montrant le transfert d'une zone de données comprenant 8 pixels dans la direction horizontale et 8 pixels dans la
direction verticale.
La figure 76 est une quatrième illustration du transfert d'une zone de données comprenant 8 pixels dans la direction horizontale et 8 pixels dans la direction verticale. La figure 77 est une illustration d'un second procédé de projection dans la mémoire tampon de trame de
données de pixel sur l'écran.
La figure 78 montre un premier procédé de projection dans une mémoire tampon de trame de premières
et secondes données de pixel de différence de couleur.
La figure 79 montre un second procédé de projec-
tion dans une mémoire tampon de trame de premières et
secondes données de pixel de différence de couleur.
La figure 80 montre un troisième procédé de projection dans une mémoire tampon de trame de premières
et secondes données de pixel de différence de couleur.
La figure 81 montre un quatrième procédé de projection dans une mémoire tampon de trame de premières
et secondes données de pixel de différence de couleur.
La figure 82 montre le fonctionnement du proces-
seur de commande d'ensemble, au moment du codage avec
prédiction bidirectionnelle.
La figure 83 est un schéma synoptique d'un appareil de compression/décompression d'image montrant un septième mode de réalisation de la présente invention. La figure 84 est un schéma synoptique d'un appareil de compression/décompression d'image montrant un
huitième mode de réalisation de la présente invention.
La figure 85 est un schéma synoptique d'un appareil de compression/décompression d'image montrant un
neuvième mode de réalisation de la présente invention.
La figure 86 est un schéma synoptique d'un appareil de compression/décompression d'image montrant un
dixième mode de réalisation de la présente invention.
La figure 87 est un schéma synoptique d'un appareil de compression/décompression d'image montrant un
onzième mode de réalisation de la présente invention.
La figure 88 est un schéma synoptique d'un appareil de compression/décompression d'image montrant un
douzième mode de réalisation de la présente invention.
La figure 89 est un schéma synoptique d'un appareil de compression/décompression d'image montrant un
treizième mode de réalisation de la présente invention.
La figure 90 est un schéma synoptique d'un appareil de compression/décompression d'image montrant un
quatorzième mode de réalisation de la présente invention.
La figure 91 est un schéma synoptique d'un appareil de compression/décompression d'image montrant un
quinzième mode de réalisation de la présente invention.
La figure 92 est un schéma synoptique montrant
un exemple supplémentaire de l'unité de commande.
La figure 93 est un schéma synoptique montrant un exemple supplémentaire de l'unité de traitement de pixels. La figure 94 est un premier schéma synoptique détaillé de l'unité de traitement de pixels qui est
représentée sur la figure 93.
La figure 95 est un second schéma synoptique détaillé de l'unité de traitement de pixels qui est représentée sur la figure 18. On décrira dans ce qui suit des appareils de compression/décompression d'image (ou un système de compression/décompression d'image) montrant des premier à
quinzième modes de réalisation de la présente invention.
On décrira tout d'abord la structure générale, ou de système, de ces modes de réalisation et on décrira
ensuite les structures internes du système.
1. Structure générale (1) Premier mode de réalisation
La figure 1 est un schéma synoptique d'un appa-
reil de compression/décompression d'image 101 montrant un premier mode de réalisation de la présente invention. En se référant à la figure 1, on note que l'appareil de compression/décompression d'image 101 comprend un circuit d'interface (I/F) d'hôte 1 pour l'échange d'information avec un ordinateur hôte 93; une unité de commande 2 comprenant deux processeurs (non représentés); une unité de traitement de pixels 3 pour la transformation en cosinus discrète et la quantification; une unité de prdiUction
(ou de détection) de mouvement 41;une mémire tampon intr-
valle d'image 51 pour enregistrer des données d'image à traiter; une mémoire tampon 6 pour enregistrer des données de code; une mémoire de travail 7 pour enregistrer des données de table nécessaires pour diverses conversions; et
une mémoire d'entrée/sortie 81 pour enregistrer des don-
nées d'image provenant d'une caméra de télévision 91 et/ou
pour fournir des données d'image enregistrées à un appa-
reil de visualisation (tube cathodique) 92.
Un bus d'hôte HB a une largeur de bus de 24 bits (ce qui est désigné sur la figure par "24b") et il est destiné au transfert de données entre chacun des éléments comprenant le circuit d'interface d'hôte 1, l'unité de commande 2, l'unité de traitement de pixels 3, la mémoire tampon 6 et la mémoire de travail 7. Le bus de données de pixel PB a une largeur de bus de 32 bits (32b) et il est incorporé pour le transfert de données entre chacun des éléments comprenant l'unité de commande 2, l'unité de traitement de pixels 3, l'unité de prédiction de mouvement 41 et la mémoire tampon d'intervalle d'image 51LUnbus de doemoe de code CB a une largeur de bus de 16 bits (16b) et il est incorporé pour le transfert de données de code entre l'unité de commande 2, l'unité de traitement de pixels 3 et la mémoire tampon 6. Un bus d'entrée/sortie IOB a une largeur de bus de 24 bits (24b) et il est incorporé pour le transfert de données entre l'unité de commande 2 et la
mémoire d'entrée/sortie 81.
Le circuit d'interface d'hôte 1 comprend un circuit logique qui est constitué par un dispositif logique programmable tel qu'un circuit logique à haut
niveau d'intégration (discret) d'usage général, un dispo-
sitif du type PLD ou un réseau de portes programmable du type FPGA. La mémcire tampon d'intervalle dMimage 51 est incorporée
essentiellement pour enregistrer temporairement des don-
nées d'image à comprimer et des données d'image à consul-
ter. En ce qui cooerne la mémoire tapon d'itervalle d'image 51, on utilise une mémoire ayant une grande capacité telle qu'une
mémoire vive statique (ou SRAM), une mémoire vive dynami-
que (ou DRAM), une mémoire vive dynamique synchrone et une
mémoire vive dynamique prévue pour la fonction d'anté-
mémoire.
La mémoire tampon 6 est incorporée pour enregis-
trer temporairement des données de plage/niveau et des données de train de bits qui sont obtenues par le codage d'images. La mémoire tampon 6 est constituée par une mémoire du type premier entré, premier sorti (PEPS). On peut cependant utiliser si nécessaire une mémoire vive
dynamique ou une mémoire vive statique.
La mémoire de travail 7 est incorporée pour enregistrer des données de table de transformation en cosinus discrète/transformation en cosinus discrète
inverse, des données de table de quantification/quantifi-
cation inverse, des données de table de Huffman pour un
traitement à longueur variable, un programme (micropro-
gramme) pour le traitement dans l'unité de commande 2 et l'unité de traitement de pixels 3, des données pour
l'initialisation, etc. La mémoire de travail 7 est consti-
tuée par des mémoires vives statiques.
La mémoire d'entrée/sortie 81 est incorporée pour enregistrer des données d'image pour la caméra de télévision 91 et/ou l'appareil de visualisation 92. La mémoire d'entrée/sortie 81 est constituée par des mémoires
vives vidéo.
L'unité de commande 2 comprend un microproces-
seur (non représenté) pour la commande d'ensemble et un processeur (non représenté) pour le traitement à longueur
variable. Le processeur pour la commande d'ensemble com-
mande le traitement pipeline de la transformation en cosinus dicrète, la quantification et le codage à longueur
variable pour la compression d'image, ainsi que le traite-
ment pipeline de décodage à longueur variable, la quanti-
fication inverse et la transformation en cosinus discrète
inverse pour la décompression d'image.
L'unité de traitement de pixels 13 effectue un traitement de pixels tel que la transformation en cosinus discrète et la quantification en compression d'image, et
elle effectue un traitement de pixels tel que la quantifi-
cation inverse et la transformation en cosinus discrète
inverse en décompression d'image.
L'unité de prédiction de mouvement 41 effectue un traitement de détection de mouvement tel que des prédictions inter-intervalles d'image unidirectionnelles
et bidirectionnelles.
La figure 2 est un schéma qui montre des traite-
ments effectués en compression d'image dans l'appareil de compression/décompression d'image 101 qui est représenté sur la figure 1. La figure 2 montre à titre d'exemple un
procédé de codage qui est spécifié dans la norme MPEG.
En se référant à la figure 2, on note que des données d'image ID à comprimer sont appliquées par l'intermédiaire d'un soustracteur 921 et d'un commutateur 922 à un processeur de transformation en cosinus discrète 923. Après la transformation en cosinus discrète, une
quantification est effectuée par un quantificateur 924.
Les données quantifiées sont appliquées à un codeur à longueur variable 925 et elles sont soumises à un codage à longueur variable, et les données codées sont fournies sous la forme de données d'image comprimées VD par l'intermédiaire d'un tampon 926. D'autre part, les données quantifiées sont également appliquées à un quantificateur inverse et à un processeur de transformation en cosinus discrète inverse, et une quantification inverse et une
transformation en cosinus discrète inverse pour la prédic-
tion de mouvement sont effectuées. Les données de sortie du processeur de transformation en cosinus discrète
inverse sont appliquées à un additionneur 929.
Les données d'image ID sont également appliquées à un prédicteur de mouvement 930, et les données prédites sont appliquées à l'additionneur 929. Les données de
sortie de l'additionneur 929 sont appliquées au soustrac-
teur 921 et au prédicteur de mouvement 930 par l'intermé-
diaire d'un commutateur 931. Grâce à l'action de commuta-
tion des commutateurs 922 et 931, la compression d'image est effectuée en prenant en considération la prédiction de mouvement. La figure 3 est un schéma montrant un traitement de décompression d'image- qui est effectué par l'appareil de compression/décompression d'image 101 représenté sur la figure 1. En se référant à la figure 3, on note que des données en code à longueur variable VD sont appliquées à un décodeur à longueur variable 912 par l'intermédiaire d'un tampon 911. Après décodage à longueur variable, les données de code sont appliquées à un quantificateur inverse 913 et elles sont soumises à une quantification inverse. Après quantification inverse, une transformation
en cosinus discrète inverse est effectuée par un proces-
seur de transformation en cosinus discrète inverse 914, et les données traitées sont appliquées à un additionneur 915. L'additionneur 915 effectue une addition des données de sortie, comprenant les données qui ont été soumises à la prédiction de mouvement, et il fournit des données
d'image décomprimées ID.
Les traitements qui sont représentés sur les figures 2 et 3 sont spécifiésfondamentalement dans la
norme MPEG. Ces traitements de compression et de décom-
pression d'image sont accomplis effectivement sous une
commande de traitement pipeline, que l'on décrira ulté-
rieurement, dans l'appareil de compression/décompression
d'image 101 qui est représenté sur la figure 1.
(2) Second mode de réalisation
La figure 4 est un schéma synoptique d'un appa-
reil de compression/décompression d'image 102 montrant un second mode de réalisation de la présente invention. En comparaison avec l'appareil de compression/décompression d'image 101 qui est représenté sur la figure 1, l'unité de prédiction de mouvement 41 est éliminée dans l'appareil de compression/décompression d'image 102 qui est représenté
sur la figure 4. Plus précisément, dans le mode de réali-
sation qui est représenté sur la figure 4, on peut effec-
tuer le décodage d'images animées aussi bien que le codage et le décodage d'images fixes. Le décodage d'images animées est un processus inverse du codage. Il ne comprend cependant pas la prédiction de mouvement et, à la place, un décodage de mouvement est ajouté et ce décodage génère une image prédite, sous l'effet de la réception d'un vecteur de mouvement. (3) Troisième mode de réalisation
La figure 5 est un schéma synoptique d'un appa-
reil de compression/décompression d'image 103 montrant un troisième mode de réalisation de la présente invention. En se référant à la figure 5, on note qu'en comparaison avec l'appareil de compression/décompression d'image 101 qui est représenté sur la figure 1, l'appareil de compression/ décompression d'image 103 comprend une mémoire d'entrée/
sortie 82 qui est connectée au bus de données de pixel PB.
Plus précisément, la mémoire d'entrée/sortie 82 est connectée à l'unité de commande 2 par l'intermédiaire du bus de données de pixel PB. Par conséquent, dans l'unité de commande 2, la mémoire d'entrée/sortie 82 et la mémoire tampond'intervalle d'image 51 emploient un espaced'adresse commun, et par conséquent on peut réduire le nombre de circuits d'interface d'entrée/sortie (port d'entrée/
sortie) de l'unité de commande 2.
(4) Quatrième mode de réalisation
La figure 6 est un schéma synoptique d'un appa-
reil de compression/décompression d'image 104 montrant un quatrième mode de réalisation de la présente invention. En se référant à la figure 6 on note qu'en comparaison avec le premier appareil de compression/décompression d'image 101, l'appareil de compression/décompression d'image 104
comprend une unité de prédiction de mouvement bidirection-
nelle 42 qui peut effectuer en parallèle (ou simultané-
ment) une prédiction de mouvement dans les directions avant et arrière. Plus précisément, l'unité de prédiction de mouvement directionnelle 42 comprend une unité de prédiction de mouvement 43 pour la prédiction de mouvement dans la direction avant, et une unité de prédiction de mouvement 44 pour la prédiction de mouvement dans la direction arrière. Les unités de prédiction de mouvement
43 et 44 sont connectées au bus de données de pixel PB.
Du fait que la prédiction de mouvement dans les
directions avant et arrière peut être effectuée en paral-
lèle ou simultanément, en utilisant deux unités de prédic-
tion de mouvement 43 et 44, la prédiction de mouvement bidirectionnelle peut être accomplie effectivement en une
courte durée.
(5) Cinquième mode de réalisation
La figure 7 est un schéma synoptique d'un appa-
reil de compression/décompression d'image 105 montrant un
cinquième mode de réalisation de la présente invention.
En comparaison avec l'appareil de compression/ décompression d'image 101 qui est représenté sur la figure 1, l'appareil de compression/décompression d'image 105 comporte une unité de prédiction de mouvement 45 capable d'effectuer simultanément une prédiction de mouvement bidirectionnelle, et deux mémoires tampons d'intervalle d'image 52 et 53, chacune d'elles étant connectée au bus de données de pixel PB. L'unité de prédiction de mouvement peut effectuer une prédiction dans les deux directions
simultanément, et par conséquent une prédiction bidirec-
tionnelle peut être accomplie au cours d'une durée néces-
saire pour la prédiction en direction avant ou en direc-
tion arrière. L'unité de prédiction de mouvement 45
comporte deux ports d'entrée/sortie, dont l'un est connec-
té au bus de données de pixel PB et l'autre est connecté à
la mémoire tampon d'intervalle d'image 53 par l'intermé-
diaire d'un bus local LB1. L'une des deux mémoires tampons d'intervalle d'image 52 et 53 est utilisée à titre de mémoie
d'intervalle d'imagepourla prédiction en mouvement en direc-
tion avant, tandis que l'autre mémoire tampon d'intervalle d'image est utilisée à titre de mémoire d'intervalle d'image pour la prédiction de mouvement en direction arrière. Des données d'image de référence sont transférées
vers le bus de données de pixel PD et le bus local LB1.
Des données d'image de modèle et des données de vecteur de mouvement sont transférées de l'unité de prédiction de
mouvement 45 vers l'unité de commande 2 par l'intermé-
*diaire d'un second bus local LB2.
(6) Sixième mode de réalisation
La figure 8 est un schéma synoptique d'un appa-
reil de compression/décompression d'image 106 montrant un sixième mode de réalisation de la présente invention. En comparaison avec l'appareil de compression/décompression d'image 101 qui est représenté sur la figure 1, l'appareil de compression/décompression d'image 106 comprend une unité de prédiction de mouvement 46 ayant deux ports d'entrée/sortie. Le premier port d'entrée/sortie de l'unité de prédiction de mouvement 46 est connecté au bus de données de pixel PB et son second port d'entrée/sortie est connecté à l'unité de commande 2 par l'intermédiaire d'un bus local LB3. L'unité de prédiction de mouvement 46 applique directement à l'unité de commande 2, par le bus local LB3, les données de vecteur de mouvement qui sont obtenues par la prédiction de mouvement. Du fait que les données de vecteur de mouvement sont constituées par des signaux à 8 bits, le bus local LB3 a une largeur de bus de 8 bits. Du fait que les données de vecteur de mouvement sont directement appliquées à l'unité de commande 2 par
l'intermédiaire du bus local LB3, il est possible d'amé-
liorer le traitement parallèle dans l'appareil de compres-
sion/décompression d'image 106, et il en résulte que la compression/décompression d'image peut être effectuée plus
efficacement à une vitesse plus élevée.
Les appareils de compression/décompression d'image 102 à 106 qui sont représentés sur les figures 4 à 8 accomplissent fondamentalement la même opération que l'appareil de compression/décompression d'image 101 qui est représenté sur la figure 1. Plus précisément, dans chacun des second à sixième modes de réalisation, la compression/décompression d'image qui est représentée sur les figures 2 et 3 est accomplie sous une commande de traitement pipeline. Par conséquent, on note que la compression/décompression d'image peut être accomplie
efficacement avec une vitesse élevée. On décrira ultérieu-
rement en détail le traitement pipeline, en se référant
aux figures 11 et 12.
On décrira de façon spécifique dans ce qui suit le transfert de données d'image dans le codage d'image, en ce qui concerne le transfert de données par le bus de
données de pixel PB dans l'appareil de compression/décom-
pression d'image 106 du sixième mode de réalisation, et le volume de transfert de données d'image pour le traitement
de données d'image d'un macro-bloc.
On suppose que les données d'image à coder ont déjà été enregistrées dans la mémoire tampon d'intervalle d'image 51. Le volume de transfert de données est calculé avec l'hypothèse selon laquelle le format d'image est 4:2:0, l'étendue de détection de mouvement est de +16 pixels, et la structure est une structure d'intervalle d'image. Chaque unité effectue des opérations d'entrée et de sortie de données d'image en relation avec le bus de
données de pixel PB sous la commande de l'unité de com-
mande 2. L'unité de commande 2 définit les conditions
temporelles du fonctionnement de chaque unité.
En premier lieu, des données d'image d'original sont transférées de l'unité de commande 2 vers la mémoire tampon d'intervalle d'image 51 par l'intermédiaire du bus de données de pixel PB. A ce moment, le volume de données
d'image à transférer est de 384 pixels.
Ensuite, la composante de luminance d'image de référence (image reproduite), dans l'étendue de recherche
de mouvement, est transférée de la mémoire tampon d'inter-
valle d'image 51 vers l'unité de prédiction de mouvement 46 par l'intermédiaire du bus de données de pixels PB pour la prédiction de mouvement. A ce moment, le volume de données d'image à transférer est de 768 pixels pour un intervalle d'image de référence. Par conséquent, dans la
prédiction bidirectionnelle, il est nécessaire de trans-
férer 1536 pixels, c'est-à-dire deux plans d'images.
Ensuite, la composante de luminance de l'image à coder est transférée de la mémoire tampon d'intervalle d'image 51 vers l'unité de commande 2 par l'intermédiaire
du bus de données de pixel PB pour la prédiction de mouve-
ment. Ensuite, la composante de luminance est transférée de l'unité de commande 2 vers l'unité de prédiction de mouvement 46 par le bus local LB3. A ce moment, le volume
de données d'image qui est transféré est de 256 pixels.
La prédiction de mouvement est accomplie et la prédiction inter-trame doit être effectuée conformément au mode de codage déterminé en utilisant les résultats, et les données de l'image prédite (image reproduite) sont transférées de la mémoire tampon dintervalle d'image 51 vers l'unité de traitement de pixels 3 par l'intermédiaire du bus de données de pixel PB pour le codage. A ce moment, le volume de données d'image à transférer est de 451 pixels pour un plan d'image prédite. Par conséquent, pour la prédiction bidirectionnelle, on doit transférer 902 pixels
pour deux plans d'images.
Ensuite, les données d'image à coder sont trans-
férées de la mémoire tampon d'intervalle d'image 51 vers l'unité de traitement de pixels 3, par l'intermédiaire du bus de données de pixels PB. A ce moment, le volume de
données d'image qui est transféré est de 384 pixels.
Après la fin du codage, les données de l'image à reproduire, en ce qui concerne l'imae àcodageiaa-inerva1e d'imae et l'image avec prédiction unidirectionnelle, sont transférées de l'unité de traitement de pixels 3 vers la mémoire tampon d'intervalle d'image 51 par l'intermédiaire du bus de données de pixel PB. A ce moment, le volume de données d'image qui est transféré est de 384 pixels.
Le volume de transfert de données décrit ci-
dessus devient maximal au moment de la prédiction bidirec-
tionnelle, dans laquelle tous les transferts de données sont accomplis, à l'exception du transfert des données
d'image à reproduire, et ce volume s'élève à 3462 pixels.
Dans ces conditions, si l'on agrandit l'étendue de recherche de mouvement dans le but d'améliorer la qualité de l'image, le volume de transfert de données d'image de la composante de luminance de l'image de référence dans l'étendue de recherche de mouvement augmente. Par exemple, si l'étendue de recherche de mouvement est agrandie jusqu'à +32 pixels, il devient nécessaire de transférer 1280 pixels au moment de la prédiction unidirectionnelle et 2560 pixels au moment de
la prédiction bidirectionnelle.
En ce qui concerne des données d'image numéri-
ques, il existe différents formats de données en fonction de la quantité de données de composante de différence de couleur des données d'image. Ainsi, il existe des formats 4:4:4 dans lesquels la quantité de données de l'image d'origine est conservée, un format 4:2:2 dans lequel la composante de différence de couleur est réduite à la moitié, et un format 4:2:0 dans lequel la composante de
différence de couleur est réduite au quart. Par consé-
quent, lorsqu'on change le format d'image à manipuler, il se produit une augmentation du volume de transfert de données d'image, à l'exception du volume de transfert de données d'image lié à la prédiction de mouvement. Par exemple, si on utilise le format 4:4:4, le volume des données qui sont manipulées dans le transfert de données d'image d'origine, le transfert de données d'image à coder vers l'unité de traitement de pixels et le transfert de données d'image à reproduire, sera de 768 pixels, tandis que pour le transfert de données d'image de prédiction, il faudra transférer presque deux fois plus de pixels, c'est- à-dire que 867 pixels doivent être transférés pour chaque
plan d'image de l'image de référence prédite.
Comme décrit ci-dessus, si le nombre de pixels de l'image à traiter est augmenté, comme dans le cas d'une image de haute définition, le temps nécessaire pour le traitement d'un macro-bloc augmente. Si l'horloge de système est fixe, le volume de transfert de données que l'on peut traiter dans un cycle de l'horloge de système est limité par les performances du matériel, lorsque le volume de transfert de données pour le traitement d'un macro-bloc augmente. Par conséquent, pour transférer les données décrites ci-dessus, le nombre de cycles de
l'horloge de système augmente.
Comme décrit ci-dessus, si le volume de trans-
fert de données est très élevé et augmente encore lors-
qu'on a besoin d'un plus grand nombre de pixels et d'une meilleure qualité d'image, le processus de transfert de données limite la vitesse de traitement de l'ensemble de l'appareil si le traitement pipeline est effectué en
utilisant pour unité le codage correspondant à un macro-
bloc, du fait que le nombre de cycles nécessaires pour le
transfert de données pour effectuer le codage est supé-
rieur au nombre de cycles nécessaires pour l'opération de codage ellemême. On décrira dans ce qui suit un appareil
de compression/décompression d'image qui améliore l'effi-
cacité du transfert de données et dans lequel la vitesse de traitement globale n'est pas limitée par la vitesse de
transfert de données.
(7) Septième mode de réalisation La figure 83 est un schéma synoptique d'un appareil de compression/décompression d'image 107 conforme
à un septième mode de réalisation de la présente inven-
tion. Sur la figure 83, les parties qui correspondent à celles du sixième mode de réalisation représenté sur la figure 8 sont désignées par les mêmes caractères de réfé-
rence et leur description n'est pas répétée.
En se référant à la figure 83, on note que le bus de données de pixel PB a une largeur de données de 32 bits et il est incorporé pour le transfert de données entre l'unité de commande 23, l'unité de traitement de
pixels 33 et la mémoire tampon d'intervalle d'image 51.
Le bus de données local LDB a une largeur de données de 32 bits et il est incorporé pour le transfert de données entre l'unité de traitement de pixels 33, l'unité de prédiction de mouvement 47 et la mémoire locale 56.
La mémoire locale 56 est incorporée pour enre-
gistrer temporairement une composante de luminance des données d'image reproduites qui sont utilisées pour la prédiction de mouvement et sont transférées à partir de l'unité de traitement de pixels 33. On utilise pour la mémoire locale 56 une mémoire ayant une plus grande capacité, telle qu'une mémoire vive statique (SRAM), une mémoire vive dynamique (DRAM), une mémoire vive dynamique synchrone et une mémoire vive dynamique prévue pour une
fonction d'antémémoire.
Un microprocesseur (non représenté) pour la commande d'ensemble, qui est incorporé dans l'unité de commande 23, commande le transfert de données d'image
entre l'unité de commande 23, la mémoire tampon d'inter-
valle d'image 51 et l'unité de traitement de pixels 33, et il commande le transfert de données d'image entre l'unité de traitement de pixels 23, l'unité de prédiction de
mouvement 47 et la mémoire locale 56.
L'unité de traitement de pixels 33 comporte un nouveau port de sortie de données P2 pour les données d'image, en plus du port d'entrée/sortie de données P1 qui est connecté au bus de données de pixel PB. L'unité de prédiction de mouvement 47 et la mémoire locale 56, nouvellement incorporée, sont connectées au port de sortie de données P2 par l'intermédiaire du bus de données local
LDB. Le port de sortie de données P2 de l'unité de traite-
ment de pixel 33, l'unité de prédiction de mouvement 47 et
la mémoire locale 56 sont commandés par l'unité de com-
mande 23, et ils accomplissent le transfert de données
d'image par l'intermédiaire du bus de données local 61.
L'unité de commande 23 commande également les conditions
temporelles de chaque transfert.
Les données d'image qui sont manipulées par le bus de données local LDB sont les données de référence pour la prédiction de mouvement qui sont extraites de données d'image transférées par l'unité de traitement de pixels 33 à partir de la mémoire tampon d'intervalle d'image 51, par l'intermédiaire du bus de données de pixel
PB (données comprenant au moins une information représen-
tative de données de luminance parmi les données d'image, que l'on appelle ci-après composante de luminance). Les données de référence sont transférées du port d'entrée/ sortie de données P1 vers la mémoire tampon d'intervalle d'image 51 par l'intermédiaire du bus de données de pixel
PB et elles sont enregistrées dans cette mémoire.
Un bus local dédié LB4 ayant une largeur de 8
bits, est incorporé entre l'unité de prédiction de mouve-
ment 47 et l'unité de commande 23. Les données d'image qui font l'objet de la détection de mouvement sont transférées de l'unité de commande 23 vers l'unité de prédiction de mouvement 47. Les données de vecteur de mouvement qui indiquent le résultat de la détection de mouvement sont transférées de l'unité de prédiction de mouvement 47 vers l'unité de commande 23. L'unité de commande 23, la mémoire tampon d'intervalle d'image 51 et l'unité de traitement de pixel 33, qui sont connectées au bus de données de pixel PB, génèrent une image prédite et codent l'image prédite, sur la base des données de vecteur de mouvement. L'unité de traitement de pixels 33 fournit des données d'image
codée au bus de code CB.
On décrira en se référant à la figure 83 le transfert de données d'image dans le codage d'image et le volume de transfert de données d'image dans le traitement d'un macro-bloc de données d'image. On suppose ici que les données d'image à coder ont déjà été enregistrées dans la
mémoire tampon d'intervalle d'image 51, et que la compo-
sante de luminance de l'image de référence (image repro-
duite), nécessaire pour la détection de mouvement, a déjà été enregistrée dans la mémoire locale 56. Le volume de transfert est calculé en considérant que le format d'image est 4:2:0, que l'étendue de détection d'image est de +16 pixels et que la structure est une structure d'intervalle d'image.
Premièrement, des données d'image d'origine-
sont transférées à partir de l'unité de commande 23 vers
la mémoire tampon d'intervalle d'image 51 par l'intermé-
diaire du bus de données de pixel PB. A ce moment, le volume de données d'image qui sont transférées est de 384
pixels.
Ensuite, pour la prédiction de mouvement, la composante de luminance de l'image sur laquelle porte la prédiction de mouvement est transférée de la mémoire tampon d'intervalle d'image 51 vers l'unité de commande 23 par l'intermédiaire du bus de données de pixel PB. La composante de luminance est également transférée vers l'unité de détection de mouvement 47 par l'intermédiaire du bus local LB4. A ce moment, le volume de données
d'image qui sont transférées est de 256 pixels.
Lorsque la prédiction de mouvement est accomplie
et la prédiction irne-intrlae d'image oit être accomplie confor-
mément au mode de codage déterminé, sur la base des résul-
tats de la prédiction de mouvement, l'image prédite (à
reproduire) est transférée de la mémoire tampon d'inter-
valle d'image 51 vers l'unité de traitement de pixels 33 par l'intermédiaire du bus de données de pixel PB, pour le codage. A ce moment, le volume de données d'image qui sont transférées est de 451 pixels pour un plan de l'image prédite. On donc transférer 902 pixels pour la prédiction
bidirectionnelle.
Ensuite, des données d'image à coder sont trans-
férées de la mémoire tampon d'intervalle d'image 51 vers l'unité de traitement de pixels 33 par l'intermédiaire du bus de données de pixel PB. A ce moment, le volume de
données d'image qui sont transférées est de 384 pixels.
En parallèle avec les quatre transferts de données d'image mentionnés cidessus, la composante de
luminance de l'image dans l'étendue de recherche de mouve-
ment pour la prédiction de mouvement est transférée de la mémoire locale 56 vers l'unité de détection de mouvement 47 par l'intermédiaire du bus de données local LDB. A ce moment, le volume de données d'image transférées est de 768 pixels pour un plan de l'image de référence. Par conséquent, pour la prédiction bidirectionnelle, il est nécessaire de transférer 1536 pixels correspondant à deux plans. Après la fin du codage, en ce qui concerne une image pour le codage intra-interal d'imange et une image pour la
prédiction unidirectionnelle, des données d'image à repro-
duire sont transférées de l'unité de traitement de pixels 33 vers la mémoire tampon d'intervalle d'image 51 par
l'intermédiaire du bus de données de pixel PB. Simultané-
ment, la composante de luminance de l'image à reproduire
est transférée vers la mémoire locale 56 par l'intermé-
diaire du bus de données local LDB.
A ce moment, l'unité de commande 23 produit un signal de commande de sortie pour commander le port PI connecté au bus de données de pixel PB, en synchronisme avec l'émission des données d'image à reproduire par l'unité de traitement de pixels 33, à partir de la mémoire de sortie d'image de reproduction interne (par exemple la mémoire d'image 335 représentée sur la figure 19, que l'on décrira ultérieurement). Simultanément, pendant que des données de luminance sont émises par la mémoire de sortie d'image de reproduction, l'unité de commande 23 produit un signal de commande de sortie pour commander le port P2 qui
est connecté au bus de données local LDB.
Dans l'unité de traitement de pixels 33, des données d'image sont émises par la mémoire de sortie d'image de reproduction conformément à une instruction provenant de l'unité de commande 23, ou conformément à un programme de séquence qui est enregistré dans une mémoire interne (par exemple une mémoire interne dans une unité de
commande 319 représentée sur la figure 19, que l'on décri-
ra ultérieurement). A ce moment, sous l'effet d'un signal
de commande de-sortie qui est produit par l'unité de com-
mande 23, le port P1 connecté au bus de données de pixel
PB fournit des données d'image d'un macro-bloc. Simultané-
ment, le port P2 connecté au bus de données local LDB fournit seulement la composante de luminance des données
d'image d'un macro-bloc, sous l'effet du signal de com-
mande de sortie qui est fourni par l'unité de commande 23.
Dans le transfert d'images à reproduire, qui est décrit ci-dessus, le volume de données d'image qui sont transférées sur le bus de données de pixel PB est de 384 pixels, tandis que sur le bus de données local LDB le
volume est de 256 pixels.
Comme décrit ci-dessus, l'unité de traitement de
pixels 33 qui est destinée à générer une image à repro-
duire, est conçue de façon à avoir une fonction d'émission
de données vers deux bus de données, et l'image à repro-
duire est émise vers le bus de données local LDB en synchronisme avec l'émission de l'image à reproduire vers le bus de données de pixel PB. Par conséquent, la mémoire de sortie d'image de reproduction (non représentée) dans l'unité de traitement de pixels 33 peut être commandée de façon commune, et des données peuvent être transférées vers chacun des ports connectés à la sortie de la mémoire interne au moyen d'un seul bit du signal de commande de sortie. Il en résulte que la commande du transfert de données, vue de l'unité de commande 23, est facilitée, et sauf pour le transfert de l'image de reproduction, les bus sont divisés par l'unité de commande 23, permettant ainsi
un transfert de données en parallèle.
Le volume de transfert de données à ce moment
devient maximal dans le cas de la prédiction bidirection-
nelle, et il est de 1926 pixels sur le bus de données de pixels PB et de 1536 pixels sur le bus de données local LDB. Par conséquent, en utilisant deux bus de données divisés, le volume de données qui sont transférées par un bus peut être réduit en comparaison avec le sixième mode de réalisation, la vitesse pratique de transfert de données est améliorée, et la vitesse de traitement dans l'appareil de compression/décompression d'image peut être augmentée. (8) Huitième mode de réalisation La figure 84 est un schéma synoptique d'un appareil de compression/décompression d'image 108 montrant
un huitième mode de réalisation de la présente invention.
Sur la figure 84, les parties qui correspondent à celles de l'appareil de compression/décompression d'image qui est représenté sur la figure 83 sont désignées par les mêmes
caractères de référence et leur description n'est pas
répétée.
L'unité de traitement de pixels 34 comprend deux ports de sortie de données d'image P4 et P5, nouvellement incorporés. Trois bus de données, c'est-à-dire le bus de données de pixel PB et deux bus de données locaux LDB1 et LDB2, sont incorporés à titre de bus de données d'image. L'opération de commande de sortie des ports respectifs P3 à P5 est effectuée par un signal de commande de sortie qui
est fourni par une unité de commande de système (par exem-
ple une unité de commande de système 114 représentée sur la figure 13, que l'on décrira ultérieurement) qui est incluse dans un processeur de commande de traitement pipeline (par exemple le processeur de commande d'ensemble
11 représenté sur la figure 9, que l'on décrira ultérieu-
rement), dans l'unité de commande 24.
Lorsque la fonction de l'appareil est élargie et l'étendue de détection de mouvement est agrandie jusqu'à +64 pixels, des données d'image s'élevant jusqu'à 2304 pixels doivent être transférées, même au moment d'une
prédiction unidirectionnelle. On présentera la description
qui suit en supposant que l'étendue de la détection de mouvement estagrandie jusqu'à +64 pixels et qu'une prédiction unidirectionnelle est effectuée. Dans le sixième mode de réalisation qui est représentée sur la figure 8, le volume de transfert de données d'image est
augmenté jusqu'à 4230 pixels lorsque l'étendue de détec-
tion de mouvement est agrandie. Le processus dans le huitième mode de réalisation est le suivant. Dans le
huitième mode de réalisation, pour la prédiction de mouve-
ment, la composante de luminance de l'image dans l'étendue de recherche de mouvement est divisée en deux, et elle est transférée par l'utilisation de deux bus de données. Plus précisément, 1280 pixels sont transférés de la mémoire locale 56a vers l'unité de prédiction 47a par le bus de données local LDB1, tandis que 1280 pixels sont transférés de la mémoire locale 56b vers l'unité de prédiction de mouvement 47b par le bus de données local LDB2. A ce moment, des données qui se trouvent dans la partie de jonction des données doivent être transférées vers les deux bus de données LDB1 et LDB2. Par conséquent, bien que le volume des données qui sont transférées par un bus de
données soit de 2384 pixels, le volume de données trans-
férées par deux bus de données sera au total de 2560 pixels. En d'autres termes, le volume de données est augmenté des données de pixel d'un macro-bloc (256 pixels). Ceci est destiné à permettre la reconnaissance de la jonction entre des éléments respectifs des données de
référence divisées.
Dans ce cas, lorsque l'image à reproduire est transférée, les données d'image de reproduction sont transférées de l'unité de traitement de pixels 34 vers la mémoire tampon d'intervalle d'image 51 par l'intermédiaire du bus de données de pixel PB, et simultanément l'image de reproduction est transférée vers les mémoires locales 56a et 56b par l'intermédiaire des bus de données locaux LDB1
et LDB2.
Le volume de transfert de données à ce moment est de 1926 pixels sur le bus de données de pixel PB et de 1280 pixels sur chacun des bus de données locaux LDB1 et LDB2. Plus précisément, le volume des données qui sont transférées sur un bus peut être réduit du fait que le bus
de données d'image est divisé en trois, la vitesse prati-
que de transfert de données est augmentée jusqu'à plus du double de celle du sixième mode de réalisation, et il est possible d'améliorer le septième mode de réalisation de
l'appareil de compression/décompression d'image.
(9) Neuvième mode de réalisation La figure 85 est un schéma synoptique d'un appareil de compression/décompression d'image conforme à
un neuvième mode de réalisation de la présente invention.
Sur la figure 85, les parties qui correspondent à celles de l'appareil de compression/décompression d'image qui est représenté sur la figure 84 sont désignées par les mêmes
caractères de référence et leur description n'est pas
répétée. En se référant à la figure 85, on note que le neuvième mode de réalisation utilise un bus d'adresse commun AB pour les mémoires locales 56c et 56d. Le bus d'adresse AB est connecté à l'unité de commande 25 et des
signaux d'adresse sont émis par l'unité de commande 25.
Lorsque l'étendue de la recherche de mouvement est fixée à +32 pixels dans la prédiction de mouvement
bidirectionnelle, à titre de fonction devLoppée de l'appa-
reil de compression/décompression d'image, il devient nécessaire de transférer 1280 pixels pour 1 plan de l'image prédite. Dans ce qui suit, on décrira le transfert
de données d'image en supposant que la recherche du mouve-
ment est effectuée sur l'étendue de +32 pixels et qu'une
prédiction bidirectionnelle est effectuée.
On décrira tout d'abord le transfert de données dans le cas d'images pour le codage intra-intervalle d'image.Par exemple, lorsque des données d'image à reproduire qui sont enregistrées dans la mémoire locale 56d sont plus récentes (apparues plus tard),en comparaison avec les données d'image pour la reproduction qui sont enregistrées dans la
mémoire locale 56c, ou lorsque les données d'image initia-
les doivent être codées (les données ne sont pas enregis-
trées dans l'une ou l'autre des mémoires locales 56c et 56d), le transfert de données est accompli d'une manière similaire à celle du septième mode de réalisation, en utilisant l'unité de commande 25, la mémoire tampon d'intervalle d'image 51, l'unité de traitement de pixels 34, l'unité de prédiction de mouvement 47a, la mémoire locale 56c, le bus de données de pixels PB et le bus de données local LDB1. Le signal de luminance de l'image à reproduire est enregistré dans la mémoire locale 56c pour être utilisé à titre de données d'image de référence pour
la prédiction de mouvement. A ce moment, l'unité de com-
mande 25 commande l'écriture de données en sélectionnant la mémoire locale 56c au moyen d'un signal de sélection de puce, et elle applique un signal de commande de sortie au port de sortie P4 du côté du bus de données local LDB1 de
l'unité de traitement de pixels 34.
On va maintenant décrire le transfert de données de l'image pour la prédiction unidirectionnelle. Si les données d'image de reproduction qui sont enregistrées dans la mémoire locale 56c sont plus récentes (apparues plus tard) que les données d'image de reproduction qui sont enregistrées dans la mémoire locale 56d, par exemple, les données d'image de reproduction qui sont enregistrées dans la mémoire locale 56c sont utilisées à titre de données d'image de référence pour la prédiction en direction
avant, et les données d'image dans l'étendue de la recher-
che de prédiction de mouvement sont transférées en utili-
sant l'unité de prédiction de mouvement 47a, la mémoire locale 56c et le bus de données local LDB1. A ce moment, seulement lorsque le signal de luminance de l'image à reproduire dans l'étendue de la recherche de prédiction de mouvement doit être transféré, l'unité de commande 25 commande l'émission des données par la sélection de la mémoire locale 56c au moyen du signal de sélection de puce, et elle applique un signal de commande d'entrée au port d'entrée du côté du bus de données local LDB1 de
l'unité de prédiction de mouvement 47a.
En ce qui concerne un transfert d'image autre que celui envisagé cidessus (par exemple un transfert d'image d'origine, un transfert d'image à coder pour la prédiction de mouvement, un transfert d'image pour la prédiction en avant, un transfert d'image à coder et un
transfert d'image à reproduire), des données sont trans-
férées d'une manière similaire à celle du septième mode de réalisation, en utilisant l'unité de commande 25, la
mémoire tampon d'intervalle d'image 51, l'unité de traite-
ment de pixels 34, la mémoire locale 56d, le bus de don-
nées de pixel PB et le bus de données local LDB2.
A ce moment, le volume de transfert de données sur le bus de données de pixel PD aura la valeur maximale
de 1926 pixels au moment de la prédiction bidirection-
nelle, et le volume de transfert de données sur les bus de données locaux LDB1 et LDB2 aura la valeur maximale de 1280 pixels pour chaque bus. Le signal de luminance de l'image à reproduire est enregistré ici dans la mémoire locale 56d, à titre de données d'image de référence pour
la prédiction de mouvement. A ce moment, l'unité de com-
mande 25 commande l'écriture de données en sélectionnant la mémoire locale 56d sur la base du signal de sélection de puce, seulement lorsque le signal de luminance de l'image à reproduire est transféré, et elle applique un signal de sortie au port de sortie P5 du côté du bus de
données local LDB2 de l'unité de traitement de pixels 34.
L'adressage de la mémoire locale 56d est effectué ici d'une manière similaire à l'adressage de la mémoire locale 56c. On va maintenant décrire le transfert de données de l'image pour la prédiction bidirectionnelle. Lorsque les données de l'image à reproduire qui sont enregistrées dans la mémoire locale 56d sont plus récentes (apparues plus tard) que les données de l'image à reproduire qui sont enregistrées dans la mémoire locale 56c, par exemple,
les données d'image pour la reproduction qui sont enregis-
trées dans la mémoire locale 56 sont utilisées à titre de données d'image de référence pour la prédiction en avant, et le transfert d'image dans l'étendue de la recherche de prédiction de mouvement est effectué par l'unité de prédiction de mouvement 47a, la mémoire locale 56c et le bus de données local LDB1. Simultanément, l'image à reproduire qui est enregistrée dans la mémoire locale 56b
est utilisée à titre d'image de référence pour la prédic-
tion en arrière, et le transfert d'image dans l'étendue de la recherche de prédiction de mouvement est effectué en utilisant l'unité de prédiction de mouvement 47b, la mémoire locale 56d et le bus de données local LDB2. A ce moment, l'unité de commande 25 sélectionne les mémoires locales 56c et 56d au moyen du signal de sélection de puce, seulement lorsque le signal de luminance de l'image à reproduire dans l'étendue de la recherche de prédiction de mouvement doit être transféré, de façon que la commande de sortie de données commune soit effectuée en appliquant le même signal d'adresse, en utilisant un bus d'adresse commun AB. L'unité de commande 25 applique également un signal de commande d'entrée au port d'entrée du côté des
bus de données locaux LDB1 et LDB2 des unités de prédic-
tion de mouvement respectives 47a et 47b.
En ce qui concerne des transferts d'image autres que ceux envisagés cidessus (par exemple le transfert de l'image d'origine, le transfert de l'image à coder pour la prédiction de mouvement, le transfert d'image pour la
prédiction en avant, le transfert d'image pour la prédic-
tion en arrière et le transfert d'image à coder), les données d'image sont transférées d'une manière similaire à celle du septième mode de réalisation, en utilisant l'unité de commande 25, la mémoire tampon d'intervalle d'image 51, l'unité de traitement de pixels 34 et le bus
de données de pixel PB.
Ainsi, l'étendue de la recherche de mouvement en avant et l'étendue de la recherche de mouvement en arrière, par rapport à un macro-bloc, qui est l'objet sur lequel porte la prédiction de mouvement, correspondent à la même étendue sur l'écran réel. Par conséquent, en adressant de façon commune les mémoires locales 56c et 56d, il devient possible de transférer les données dans l'étendue de la recherche de prédiction de mouvement, dans
les deux directions, en utilisant une adresse commune.
Plus précisément, à l'exception du signal de sélection de puce des mémoires locales 56c et 56d, le matériel lié à la commande de mémoire et à la génération d'adresse peut être utilisé en commun par les mémoires locales 56c et 56d. Par conséquent, en comparaison avec un exemple dans lequel des générateurs d'adresses sont incorporés pour des mémoires respectives, il est possible de réduire le volume de
matériel sans augmenter le volume de transfert de données.
(10) Dixième mode de réalisation La figure 86 est un schéma synoptique d'un appareil de compression/décompression d'image montrant un dixième mode de réalisation de la présente invention. Sur la figure 86, les parties correspondant à celles de l'appareil de compression/décompression d'image qui est représenté sur la figure 85 sont désignées par les mêmes
caractères de référence et leur description n'est pas
répétée. En se référant à la figure 86 on note que dans le dixième mode de réalisation, l'unité de traitement de pixels 34 représentée sur la figure 85 est divisée en deux
unités de traitement de pixels 34a et 34b.
Lorsque la recherche de mouvement doit être effectuée dans l'étendue de +32 pixels pour la prédiction de mouvement bidirectionnelle, à titre de fonction élargie de l'appareil de compression/décompression d'image, il est nécessaire de transférer 1280 pixels pour un plan d'image prédite. Dans ce qui suit, on décrira le transfert de données d'image en supposant que la recherche de mouvement est effectuée dans l'étendue de + 32 pixels et qu'une
prédiction bidirectionnelle est effectuée.
On décrira tout d'abord le transfert de données de l'image pour le odage intra-intervalle d'image. Lorsque les dNées de l'image à reproduire qui sont enregistrées dans la mémoire locale 56b sont plus récentes (apparues plus tard)
que les données de l'image à reproduire qui sont enregis-
trées dans la mémoire locale 56c, par exemple, ou lorsque les données d'image initiales doivent être codées (les données ne sont pas enregistrées dans l'une ou l'autre des mémoires locales 56c ou 56d), le transfert de données est accompli d'une manière similaire à celle du septième mode de réalisation, en utilisant l'unité de commande 26, la
mémoire tampon d'intervalle d'image 51, l'unité de traite-
ment de pixels 34, l'unité de prédiction de mouvement 47a, la mémoire locale 56c, le bus de données de pixel PB et le bus de données local LDB1. Le signal de luminance de l'image à reproduire est enregistré dans la mémoire locale
56c pour être utilisé à titre de données d'image de réfé-
rence pour la prédiction de mouvement. A ce moment, l'unité de commande 26 commande l'écriture des données en sélectionnant la mémoire locale 56c par un signal de
sélection de puce, seulement lorsque le signal de lumi-
nance de l'image à reproduire est transféré. L'unité de commande 36 applique un signal de sortie au port de sortie P2a du côté du bus de données local LD1B1 de l'unité de
traitement de pixels 34a.
On va maintenant décrire le transfert de données d'image pour la prédiction unidirectionnelle. Lorsque les données de l'image à reproduire qui sont enregistrées dans la mémoire locale 56c sont plus récentes (apparues plus tard) que les données de l'image à reproduire qui sont enregistrées dans la mémoire locale 56b, par exemple, les données d'image pour la reproduction qui sont enregistrées dans la mémoire locale 56c sont utilisées à titre de données d'image de référence pour la prédiction en avant, et le transfert d'image dans l'étendue de la recherche de prédiction de mouvement est effectué en utilisant l'unité de prédiction 47a, la mémoire locale 56c et le bus de données local LDB1. A ce moment, l'unité de commande 26 commande l'émission des données en sélectionnant la mémoire locale 56c, sur la base du signal de sélection de puce, seulement lorsque le signal de luminance de l'image à reproduire dans l'étendue de la recherche de prédiction de mouvement est transféré. L'unité de commande 26 appli- que un signal de commande d'entrée au port d'entrée du côté du bus de données local LDB1 de l'unité de prédiction
de mouvement 47a.
Pour un transfert d'image autre que ceux envisa-
gés ci-dessus (transfert de l'image d'origine, transfert de l'image à coder pour la prédiction de mouvement,
transfert de l'image pour la prédiction en avant, trans-
fert de l'image à coder et transfert de l'image à repro-
duire), les données sont transférées d'une manière simi-
laire à celle du septième mode de réalisation, en utili-
sant l'unité de commande 26, la mémoire tampon d'inter-
valle d'image 51, l'unité de traitement de pixels 34b, la mémoire locale 56d, le bus de données de pixel PB et le bus de données local LDB2. Le signal de luminance de l'image à reproduire est enregistré dans la mémoire locale 56d pour être utilisé à titre d'image de référence pour la prédiction de mouvement. A ce moment, l'unité de commande 26 commande l'écriture des données en sélectionnant la mémoire locale 56c sur la base du signal de sélection de puce, seulement lorsque le signal de luminance de l'image
*à reproduire est transféré.
L'unité de commande 26 applique un signal de sortie au port de sortie P2b du côté du bus de données
local LDB2 de l'unité de traitement de pixels 34b.
L'adressage de la mémoire locale 56b est effectué ici d'une manière similaire à l'adressage de la mémoire locale 56c. On va maintenant décrire le transfert de données de l'image pour la prédiction bidirectionnelle. Lorsque les données de l'image à reproduire qui sont enregistrées dans la mémoire locale 56b sont plus récentes (apparues plus tard) que les données de l'image à reproduire qui sont enregistrées dans la mémoire locale 56c, par exemple, les données de l'image à reproduire qui sont enregistrées dans la mémoire locale 56c sont utilisées à titre de données d'image de référence pour la prédiction en avant, et l'image dans l'étendue de la recherche de prédiction de
mouvement est transférée en utilisant l'unité de prédic-
tion de mouvement 47a, la mémoire locale 56c et le bus de données local LDB1. A ce moment, les données de l'image à reproduire qui sont enregistrées dans la mémoire locale 56d sont utilisées à titre de données d'image de référence pour la prédiction en arrière, et l'image dans l'étendue de la recherche de prédiction de mouvement est transférée en utilisant l'unité de prédiction de mouvement 47b, la mémoire locale 56b et le bus de données local LDB2. A ce moment, l'unité de commande 26 sélectionne la mémoire locale 56c ou 56d avec le signal de sélection de puce, seulement lorsque le signal de luminance de l'image à reproduire dans l'étendue de la recherche de prédiction de mouvement est transféré, de façon que l'émission des données soit commandée en commun par l'application de la même adresse, en utilisant un bus d'adresse commun AB. En
outre, l'unité de commande 26 applique un signal de com-
mande d'entrée d'une partie d'entrée du côté des bus de données locaux LDB1 et LDB2 des unités de prédiction de
mouvement 47a et 47b.
En ce qui concerne un transfert d'image autre que celui décrit ci-dessus (transfert d'image d'origine.,
transfert de l'image à coder pour la prédiction de mouve-
ment, transfert d'image pour la prédiction en avant,
transfert d'image pour la prédiction en arrière et trans-
fert d'image à coder), les données d'image sont transfé-
rées de la manière qui est représentée sur la figure 7, en utilisant l'unité de commande 26, la mémoire tampon d'intervalle d'image 51, l'unité de traitement de pixels 34a ou 34b et le bus de données de pixel PB. A ce moment, l'image est transférée macro-bloc par macro-bloc, en utilisant alternativement deux unités de traitement de pixels 34a et 34b, et dans l'unité de traitement 34a ou
34b le codage de deux macro-blocs est accompli en utili-
sant le temps correspondant au traitement de deux macro-
blocs. Lorsque le codage prdictif iner-tervalle d'image doit être effectué, le volume de traitement dans le cas de la prédiction bidirectionnelle est de façon générale très élevé. Dans le mode de réalisation présent, au moment de la prédiction bidirectionnelle, les données d'image sont transférées alternativement vers deux unités de traitement de pixels 34a et 34b, macro-bloc par macro-bloc, de façon qu'une unité de traitement de pixels 34a ou 34b puisse disposer pratiquement du temps de traitement de deux macro-blocs. Par conséquent, en comparaison avec le neuvième mode de réalisation, on peut augmenter le temps de fonctionnement pratique de l'unité de traitement de
pixels 34a et 34b pour la prédiction bidirectionnelle.
(11) Onzième mode de réalisation La figure 87 est un schéma synoptique d'un appareil de compression/décompression d'image 111, montrant un onzième mode de réalisation de la présente invention. Dans l'appareil de compression/décompression d'image qui est représenté sur la figure 87, l'unité de prédiction de mouvement 47b qui est connectée au bus de
données local LDB2 du huitième mode de réalisation, repré-
senté sur la figure 84, est éliminée.
Dans cet exemple, un transfert de données autre que le transfert de l'image d'origine de l'unité de commande 27 vers la mémoire tampon d'intervalle d'image 51 est effectué avec les données d'image d'original divisées en composante de luminance et en composante de différence
de couleurs, de la manière suivante.
En ce qui concerne la composante de luminance, pour l'image destinée au codage intra-intervale d'image, l'image à coder est transférée de la mémoire tampon d'intervalle d'image 51 vers l'unité de traitement de pixels 35. L'image à reproduire est transférée de la mémoire tampon
d'intervalle d'image 51 vers la mémoire locale 56a.
Pour l'image destinée au codage prédictif unidirectionnel, du côté de la prédiction de mouvement, les données d'image dans l'étendue de la recherche de mouvement sont transférées de la mémoire locale 56a vers l'unité de prédiction de mouvement 47, et les données d'image à coder sont transférées de la mémoire tampon d'intervalle d'image 51 vers l'unité de commande 27. Du
côté du codage, les données d'image prédites sont transfé-
rées de la mémoire tampon 51 vers l'unité de traitement de pixels 35, et les données d'image à coder sont transférées de la mémoire tampon d'intervalle d'image 51 vers l'unité
de traitement de pixels 35. Les données d'image à repro-
duire sont transférées vers la mémoire tampon d'intervalle
d'image 51 et la mémoire locale 56a.
En ce qui l'image pour le codage prédictif bidirectionnel, du côté de la prédiction de mouvement, les
données d'image dans l'étendue de la recherche de mouve-
ment de deux intervalles d'image sont transférées de la mémoire locale 56a vers l'unité de prédiction de mouvement 47, et les données d'image à coder sont transférées de la mémoire tampon d'intervalle d'image 51 vers l'unité de prédiction 47 par l'intermédiaire de l'unité de commande 27. Du côté du codage, deux intervalles de données d'image prédits sont transférés de la mémoire tampon d'intervalle d'image 51 vers l'unité de traitement de pixels 35, et l'image à coder est transférée de la mémoire tampon d'intervalle d'image 51 vers l'unité de traitement de
pixels 35.
En ce qui concerne la composante de différence de couleur, por l'image destinée au codage intra-intervaUle d'iméA, les données d'image à coder sont transférées de la mémoire tampon d'intervalle d'image 51 vers l'unité de traitement de pixels 35. Les données d'image à reproduire sont trans-
férées vers la mémoire locale 56e.
En ce qui concerne l'image pour le codage prédictif unidirectionnel, les données d'image à coder sont transférées de la mémoire tampon d'intervalle d'image 51 vers l'unité de traitement de pixels 35, et les données d'image prédites sont transférées de la mémoire locale 56e vers l'unité de traitement de pixels 35. Les données d'image à reproduire sont transférées vers la mémoire
locale 56e.
En oe qi concernel'imagepourle codage prédictif bidirectionnel, le signal de différence de couleur de l'image à coder est transféré de la mémoire tampon d'intervalle d'image 51 vers l'unité de traitement de pixels 35, et deux intervalles de données d'image prédits sont transférés de la mémoire locale 56e vers l'unité de
traitement de pixels 35.Les estimations du volume de trans-
fert d'image de bus de données respectifs en prédiction bidirectionnelle, dans laquelle le volume de transfert de données devient le maximum, sont les suivantes pour l'image de format 4:4:4 ayant une composante de différence
de couleur concordante.
Dans l'appareil de compression/décompression d'image du sixième mode de réalisation, représenté sur la
figure 8, le volume de transfert de données qui est trans-
féré sur le bus de données de pixel PD pour le format
mentionné ci-dessus est au total de 4806 pixels.
Cependant, dans l'appareil de compression/ décompression d'image du onzième mode de réalisation qui est représenté sur la figure 87, pour le format 4:4:4 mentionné ci-dessus, 768 pixels de données d'image d'origine, 578 pixels de la composante de luminance de deux intervalles de données d'image prédits et 768 pixels pour les données d'image à coder, sont transférés sur le bus de données de pixel PD, et par conséquent le volume total de transfert de données est réduit à 2114 pixels seulement. Sur le bus de données local LDB1, lorsque l'étendue de recherche de mouvement est de +16 pixels, le volume sera de 768 pixels pour un plan de données d'image prédites, et par conséquent le volume de transfert de données sera de 1536 pixels pour les deux plans de données
d'image prédites.
Sur le bus local LB5, seulement 578 pixels de composante de luminance des données d'image prédites de
deux plans sont transférés pour les composantes de diffé-
rence de couleur respectives Cb et Cr, et par conséquent le volume de transfert de données est au total de 1156 pixels. En codant séparément des composantes respectives des données d'image et en prévoyant un bus supplémentaire LB5 pour les composantes de différence de couleur, on peut réduire le volume de transfert de données sur le bus de données de pixel PB. En outre, du fait que c'est une moyenne du volume de transfert de données pour des bus de données respectifs qui intervient, le volume de données
que transfère un bus de données est réduit. Par consé-
quent, en comparaison avec le sixième mode de réalisation représenté sur la figure 8, la vitesse de transfert de données est améliorée dans un rapport qui est pratiquement
de 2,2 fois, et il en résulte qu'il est possible d'augmen-
ter la vitesse de traitement dans l'appareil de compres-
sion/décompression d'image.
(12) Douzième mode de réalisation La figure 88 est un schéma synoptique d'un appareil de compression/décompression d'image 112 montrant
un douzième mode de réalisation de la présente invention.
Le douzième mode de réalisation qui est représenté sur la figure 88 est obtenu en divisant l'unité de traitement de pixels 35 du onzième mode de réalisation représenté sur la figure 87, en deux unités de traitement de pixels 35a et
b, auxquelles sont respectivement attribués le traite-
ment de la composante de luminance et le traitement de la
composante de différence de couleur.
Par conséquent, dans le douzième mode de réali-
sation, le traitement est accompli pour des composantes respectives par les unités de traitement de pixels 35a et b, le volume de traitement dans une unité de traitement de pixels peut être réduit et il en résulte que l'on peut améliorer la vitesse de traitement dans l'appareil de
compression/décompression d'image.
(13) Treizième mode de réalisation La figure 89 est un schéma synoptique d'un appareil de compression/décompression d'image 113, montrant un treizième mode de réalisation de la présente invention. En plus des structures des onzième et douzième modes de réalisation, le treizième mode de réalisation comprend une structure qui peut accepter le développement
de l'étendue de la recherche de mouvement. Plus précisé-
ment, la composante de luminance nécessaire minimale est extraite séparément par un ensemble d'unités de traitement de pixels 36a et 36b, àpartir des données d'image qui sont transférées depuis la mémoire tampon d'intervalle d'image 51, à titre de données de référence pour la
prédiction de mouvement. Les données extraites sont enre-
gistrées dans des mémoires locales 56a et 56b par l'inter-
médiaire de bus de données locaux respectifs LDB1 et LDB2.
D'autre part, l'unité de traitement de pixel 35b extrait une composante de différence de couleur, qui n'est pas utilisée pour la prédiction de mouvement, à partir des données d'image qui sont transférées depuis la mémoire
tampon d'intervalle d'image 51. La composante de diffé-
rence de couleur qui est extraite est enregistrée dans la
mémoire locale 56e par l'intermédiaire du bus local LB5.
Dans la structure décrite ci-dessus, le volume de trans-
fert de données sur le bus de données de pixel PB serait de 768 pixels de données d'image d'origine, 578 pixels de composante de luminance des deux plans des données d'image
prédites et 768 pixels de données d'image à coder, c'est-
à-dire un total de 2114 pixels.
Si l'étendue de la recherche de mouvement est de +32 pixels, des données correspondant à 1280 pixels sont transférées sur chacun des bus de données locaux LDB1 et LDB2. En outre, 578 pixels de composante de luminance
des deux plans des données d'image prédites sont trans-
férés pour les composantes de différence de couleur respectives Cb et Cr, sur le bus de données local LB5, et par conséquent des données représentant un total de 1156
pixels sont transférées.
Avec la structure décrite ci-dessus, lorsque l'étendue de la recherche de mouvement est augmentée et le format 4:4:4 est sélectionné pour le format d'image à
manipuler, il est possible de réduire le volume de trans-
fert de données sur le bus de données de pixel PB, et le volume de transfert de données peut effectivement être
divisé par les bus respectifs.
(14) Quatorzième mode de réalisation La figure 90 est un schéma synoptique d'un appareil de compression/décompression d'image 114 montrant
un quatorzième mode de réalisation de la présente inven-
tion. Dans le quatorzième mode de réalisation, un amplifi-
cateur-séparateur à trois états bidirectionnel, 800, à 32 bits, est ajouté pour connecter le bus de données de pixel PB et le bus de données local LDB. On peut utiliser l'unité de traitement de pixels37 qui ne comporte pas le second port de sortie de données connecté au bus de
données local LDB, comme représenté sur la figure 90.
L'unité de commande 29 commande également les opérations de l'amplificateur-séparateur à trois états bidirectionnel 80, de l'unité de prédiction de mouvement 47 et de la mémoire locale 56. Les données d'image de référence pour
la prédiction de mouvement sont transférées par l'intermé-
diaire du bus de données local LDB. Les conditions tempo-
relles de transfert à ce moment sont également commandées par l'unité de commande 21. L'amplificateur-séparateur à trois états bidirectionnel 80 est capable d'effectuer
simultanément la lecture de données et l'émission de don-
nées qui ont été enregistrées, en synchronisme avec un
signal d'horloge qui provient de l'unité de commande 29.
En se référant à la figure 90, on décrira le transfert de données d'image dans le codage d'image et le volume de transfert de données d'image dans le traitement d'un macro-bloc de données d'image. On suppose que les données d'image à coder ont déjà été enregistrées dans la
mémoire tampon d'intervalle d'image 51, et que la compo-
sante de luminance de l'image de référence (image à
reproduire) qui est nécessaire pour la détection de mouve-
ment a également déjà été enregistrée dans la mémoire
locale 56. On calcule le volume de transfert en considé-
rant que le format d'image est 4:2:0, que l'étendue de
détection de mouvement est de +16 pixels et que la struc-
ture est la structure d'intervalle d'image.
En premier lieu, les données d'image d'origine sont transférées de l'unité de commande 21 vers la mémoire tampon d'intervalle d'image 51 par l'intermédiaire du bus de données de pixel PB. A ce moment, le volume de données
d'image qui sont transférées est de 384 pixels.
Ensuite, la composante de luminance de l'image pour la prédiction de mouvement est transférée de la mémoire tampon d'intervalle d'image 51 vers l'unité de commande 29 par l'intermédiaire du bus de données de pixel PB et ensuite vers l'unité de prédiction de mouvement 47 par l'intermédiaire d'un bus local dédié LB4, pour la
prédiction de mouvement. A ce moment, le volume des don-
nées d'image qui sont transférées est de 256 pixels. Lorsque la prédiction de mouvement est accomplie et la prédiction interibrvil]e Yinage doit êtreeffectuée sur la base du mode de codage déterminé utilisant le résultat, l'image prédite (image à reproduire) est transférée de la mémoire tampon d'intervalle d'image 51 vers l'unité de traitement de pixel 37 par l'intermédiaire du bus de données de pixel PB pour le codage. A ce moment, le volume des données d'image qui sont transférées est de 451 pixels pour un plan de l'image prédite. Par conséquent, on doit
transférer 902 pixels de données au moment de la prédic-
tion bidirectionnelle.
Ensuite, l'image à coder est transférée de la mémoire tampon d'intervalle d'image 51 vers l'unité de traitement de pixels 37 par l'intermédiaire du bus de données de pixel PB. A ce moment, le volume des données
d'image qui sont transférées est de 384 pixels.
En parallèle avec les quatre processus de transfert de données d'image précités, la composante de
luminance de l'image dans l'étendue de recherche de mouve-
ment est transférée de la mémoire locale 56 vers l'unité de prédiction de mouvement 47 par l'intermédiaire du bus de données local LDB pour la prédiction de mouvement. A ce moment, le volume des données d'image qui sont transférées
est de 768 pixels pour un plan de l'image de référence.
Par conséquent, au moment de la prédiction bidirection-
nelle, il est nécessaire de transférer 1536 pixels de
données pour les deux plans.
Après la fin du codage, en ce qui concerne l'image pour le codage intraintervalle d'image et l'image pour la prédiction unidirectionnelle, les données de l'image à reproduire sont transférées de l'unité de traitement de pixels 37 vers la mémoire tampon d'intervalle d'image 51
par l'intermédiaire du bus de données de pixel PB. Simul-
tanément, les données de l'image à reproduire sont trans-
férées vers l'amplificateur-séparateur à trois états bidirectionnel 80. En outre, l'image à reproduire est transférée de l'amplificateurséparateur à trois états
bidirectionnel 80 vers la mémoire locale 56 par l'intermé-
diaire du bus de données local LDB avec un retard d'un cycle du système. L'unité de commande 29 commande le transfert de données vers la mémoire locale 56 par l'intermédiaire de l'amplificateur-séparateur à trois états bidirectionnel 80 seulement lorsque la composante de
luminance de l'image à reproduire est en cours de trans-
fert. A ce moment, le volume des données d'image qui sont transférées est de 384 pixels sur le bus de données de
pixel PB et de 256 pixels sur le bus de données local LDB.
Comme décrit ci-dessus, du fait que l'unité de commande 29 comprend une unité de commande de système (non représentée) qui commande le transfert de données vers la
mémoire locale 56 par l'intermédiaire de l'amplificateur-
séparateur à trois états bidirectionnel 80, seulement lorsque la composante de luminance de l'image à reproduire est en cours de transfert, il devient inutile que l'unité de traitement de pixels37 comporte un second port de sortie de données qui est directement connecté au bus de données local LDB, et les bus peuvent être divisés d'une manière similaire à celle du septième mode de réalisation représenté sur la figure 83, ce qui permet le traitement
en parallèle du transfert de données.
A ce moment, le volume de transfert de données
équivaut à celui du septième mode de réalisation repré-
senté sur la figure 83, et il devient le maximum au moment de la prédiction bidirectionnelle. Plus précisément, 1926 pixels de données sont transférés sur le bus de données de pixel PB et 1536 pixels de données sont transférés sur le bus de données local LDB. Par consequent, en divisant les
bus, on peut réduire le volume des données qui sont trans-
férées sur un seul bus, on peut améliorer notablement la vitesse de transfert de données, et on peut améliorer la vitesse de traitement dans l'appareil de compression/
décompression d'image.
(15) Quinzième mode de réalisation La figure 91 est un schéma synoptique d'un appareil de compression/décompression d'image 115, montrant un quinzième mode de réalisation de la présente
invention. Le quinzième mode de réalisation a une struc-
ture dans laquelle des données de train de bits sont introduites/émises par l'intermédiaire d'une mémoire tampon 6 et d'un appareil de communication externe 94. Les données de train de bits qui sont obtenues par codage de données d'image au moyen d'un processeur à longueur variable (non représenté) qui est inclus dans l'unité de
commande 23, et des données de plage/niveau sont temporai-
rement enregistrées dans la mémoire tampon 6. Par consé-
quent, il est possible de transférer seulement les données de train de bits sans passer par l'ordinateur hôte 93, ce
qui permet d'améliorer la vitesse de transfert.
Plus précisément, l'ordinateur hôte 93 est fortement chargé du fait que de nombreux processus divers tels que la commande d'instruction, en plus du processus de transfert de données, ont lieu dans l'ordinateur hôte 93. Avec l'appareil de communication 94 à l'extérieur de l'appareil de compression/décompression d'image 215, on
peut transférer des données vers l'appareil de communica-
tion 94 à partir de la mémoire tampon 6 sans passer par l'ordinateur hôte 63, et par conséquent on peut transférer des données avec une vitesse élevée, indépendamment de la
charge de l'ordinateur hôte 93.
2. Unité de commande (1) Unité de commande 21 (premier exemple) La figure 9 est un schéma synoptique montrant un exemple d'une unité de commande. L'unité de commande 21 qui est représentée sur la figure 9 est applicable à l'unité de commande 2 qui est représentée sur les figures
1, 5, 6, 7 et 8.
En se référant à la figure 9, on note que l'unité de commande 21 comprend un processeur 11 pour la commande d'ensemble, comprenant la commande du traitement pipeline, un processeur 12 pour le codage et le décodage à longueur variable, une unité de commande 13 pour une unité
de prédiction de mouvement (par exemple l'unité de prédic-
tion 41 qui est représentée sur la figure 1), une unité de conversion de format d'image 14 pour convertir le format d'image, une unité de commande de transfert de données d'image 15, une unité de transfert d'instruction 16 pour une unité de traitement de pixels (par exemple l'unité 3 qui est représentée sur la figure 1), un port principal 17 connecté à un bus d'hôte (bus HB représenté sur la figure 1), un port de mémoire vive vidéo (VRAM) 19 connecté à un bus d'entrée/sortie (bus IOB représenté sur la figure 1), et un port de données de code 20 connecté à un bus de données de code (bus de code CB représenté sur la figure
1).
Sur la figure 9, de façon générale, le symbole de référence "DT" désigne un signal de données, "ADR" désigne un signal d'adresse et "Sc" désigne un signal de commande. Les unités respectives 12 à 16 sont connectées
au processeur de commande d'ensemble 11 par l'intermé-
diaire de bus et elles reçoivent des instructions qui proviennent du processeur de commande d'ensemble 11. Les
unités 12 à 16 effectuent un traitement de façon mutuelle-
ment indépendante, conformément à l'instruction appliquée.
L'unité de commande 13, l'unité de conversion de format 14 et l'unité de commande de transfert de données d'image 15 sont connectées à des bus pour des données de pixel, et le transfert de données de pixel est effectué sous la commande de l'unité de commande de transfert de
données d'image 15.
Le port principal 17 est connecté au processeur de commande d'ensemble 11 et au processeur à longueur variable 12. Lorsque des données sont transférées entre le
processeur d'ensemble 11, le processeur à longueur varia-
ble 12, la mémoire tampon 6 et la mémoire de travail 7 représentés sur la figure 1, les données sont transférées
par l'intermédiaire du port principal 17.
Le port de données d'image 18 est connecté à l'unité de commande de transfert de données d'image 15. Le
transfert de données entre l'unité de commande de trans-
fert de données 15 et la mémoire tampon d'intervalle d'image 51 qui sont représentées sur la figure 1 est effectué par l'intermédiaire du port de données d'image
18. Lorsque la destination de la mémoire tampon d'inter-
valle d'image 15 est l'unité de prédiction de mouvement 41 ou l'unité de traitement de pixel 3, le port de données d'image 18 fournit un signal de commande qui indique si
les données sont valides ou non.
Le port VRAM 19 est connecté à l'unité de conversion de format d'image 14. Le transfert de données entre l'unité de conversion de format d'image 14 et la mémoire d'entrée/sortie 81 qui sont représentées sur la
figure 1 est accompli par l'intermédiaire du port VRAM 19.
On décrira le processus de compression d'image en se référant aux figures 1 et 9. On suppose que des données d'image à comprimer ont été enregistrées dans la mémoire tampon d'intervalle d'image 51 qui est représentée
sur la figure 1. En premier lieu, le processeur de com-
mande d'ensemble 11 transfère des données d'image de la mémoire tampon d'intervalle d'image 51 vers l'unité de conversion de format d'image 14, en appliquant une instruction de transfert de données d'image à l'unité de commande de transfert de données d'image 15. Le processeur de commande d'ensemble 11l est informé de la fin du trans- fert de données par l'unité de commande de transfert de
données d'image 15.
Ensuite, le processeur de commande d'ensemble 11 applique une instruction de conversion de format d'image à l'unité de conversion de format d'image 14. L'unité de conversion de format d'image 14 effectue des opérations pour convertir le format de l'image. Plus précisément, un sous-échantillonnage de signaux de différence de couleur et une conversion faisant passer du format RGB au format YUV sont effectués dans l'unité de conversion de format d'image 14. La fin du transfert de données est signalée au
processeur de commande d'ensemble 11 par l'unité de com-
mande de transfert de données d'image 15.
Dans le but d'accomplir des traitements pour la prédiction de mouvement et la détermination du mode de codage, le processeur de commande d'ensemble 11 transfère des données d'image pour la prédiction de mouvement de la mémoire tampon d'intervalle d'image 51 vers l'unité de commande de prédiction 13. Ce transfert de données est accompli en appliquant une instruction de transfert de données d'image à l'unité de commande de transfert de données d'image 15, à partir du processeur de commande d'ensemble 11. Le processeur de commande d'ensemble 11 est informé de la fin du transfert de données par l'unité de
commande de transfert de données d'image 15.
Le processeur de commande d'ensemble 11 applique une instruction de souséchantillonnage de données à l'unité de commande de prédiction de mouvement 13, lorsque c'est nécessaire, grâce à quoi l'unité de commande de prédiction de mouvement 13 effectue un sous-échantillonnage des données d'image qui font l'objet de la prédiction de mouvement. Le processeur de commande d'ensemble 11 est informé de la fin du sous- échantillonnage des données par
l'unité de commande 13.
Ensuite, le processeur de commande d'ensemble 11 applique une instruction d'opération d'évaluation de mode pour le codage intra- binraIe d'image lmité de commande de
prédiction de mouvement 13. L'unité de commande 13 effec-
tue une opération pour des valeurs évaluées dans le mode de codage intra-intervalle d'imag sur les données qui fait l'objet de
la prédiction de mouvement (données qui ont été sous-
échantillonnées en fonction des besoins). Le processus de commande d'ensemble 11 est informé de la fin de cette
opération par l'unité de commande 13.
En outre, le processeur de commande d'ensemble il applique une instruction de transfert de données à l'unité de commande de transfert de données d'image 15, et l'unité de commande de transfert de données d'image 15 transfère vers l'unité de prédiction de mouvement 41 des données d'image dans la zone de recherche de mouvement, à partir de la mémoire tampon d'intervalle d'image 51. Le processeur de commande d'ensemble 11 est informé de la fin
du transfert de données par l'unité de commande de trans-
fert de données d'image 15.
Ensuite, le processeur de commande d'ensemble 11 applique une instruction de transfert de données pour la prédiction de mouvement à l'unité de commande 13 de l'unité de prédiction de mouvement, et l'unité de commande
13 transfère les données à détecter (données sous-échan-
tillonnées en fonction des besoins) vers l'unité de prédiction de mouvement 41. Le processeur de commande d'ensemble est informé de la fin du transfert de données par l'unité de commande de transfert de données d'image 15. Après que les données d'image pour la recherche et les données d'image pour la prédiction de mouvement ont été transférées, l'unité de prédiction de mouvement 41 commence la prédiction de mouvement, et au bout d'un certain temps elle génère le résultat de la prédiction de mouvement, c'est-à-dire les données évaluées pour le mode
de codage inter-intervalle d'image.
Après l'écoulement d'une certaine durée, le processeur de commande d'ensemble Il applique à l'unité de commande de prédiction de mouvement 13 une instruction pour recevoir le résultat de la prédiction de mouvement, et l'unité de commande 13 reçoit à partir de l'unité de prédiction de mouvement 14 des données qui indiquent le résultat de la prédiction de mouvement. Le processeur de
commande d'ensemble 11 est informé de la fin de la récep-
tion de données par l'unité de commande 13.
Ensuite, le processeur de commande d'ensemble 11 détermine le mode de codage sur la base des données de valeurs éaluées dumodedecodage intraintervalle d 'imnge, qui sont
obtenues par l'opération effectuée dans l'unité de com-
mande de prédiction de mouvement 13, et sur la base des données de valeurs évaluées pour lemode de codage iter-intervale d'image,quiscUnt obtenues par l'opération qui est effectuée
dans l'unité de prédiction de mouvement 41. La détermina-
tion du mode de codage est effectuée en faisant référence à des données de table de détermination de mode de codage qui sont enregistrées dans la mémoire tampon 6, ou en
comparant les données évaluées.
Après la détermination du mode de codage, un codage de source, c'est-àdire une transformation en cosinus discrète et une quantification, est accompli. En premier lieu, le processeur de commande d'ensemble 11 applique une instruction de transfert de données d'image à l'unité de commande de transfert de données d'image 15, et l'unité de commande de transfert de données d'image 15 transfère vers l'unité de traitement de pixels 3 des
données à coder provenant de la mémoire tampon d'inter-
valle d'image 51. Le processeur de commande d'ensemble 11 est informé de la fin du transfert de données par l'unité
de commande de transfert de données d'image 15.
Ensuite, le processeur de commande d'ensemble 11 applique une instruction de codage de source à l'unité de traitement de pixels 3, par l'intermédiaire d'une unité de transfert d'instruction 16 pour l'unité de traitement de pixels. L'unité de traitement de pixels 3 effectue le codage de source, c'est-à-dire la transformation en cosinus discrète et la quantification, sous la dépendance de l'instruction de codage de source. Le processeur de
commande d'ensemble 11 est informé de la fin de l'opéra-
tion par l'unité de traitement de pixels 3, par l'inter-
médiaire de l'unité de transfert d'instruction 16.
Après le codage de source, c'est-à-dire la transformation en cosinus discrète et la quantification,
un codage à longueur variable est effectué. Plus précisé-
ment, le processeur de commande d'ensemble 11 applique à l'unité de traitement de pixels 3, par l'intermédiaire de l'unité de transfert d'instruction 16, une instruction qui demande le transfert des données traitées. Sous l'effet de cette instruction, l'unité de traitement de pixels 3 transfère les données traitées vers le processeur à longueur variable 12. Le processeur de commande d'ensemble 11 est informé de la fin du transfert de données par l'unité de traitement de pixels 3, par l'intermédiaire de
l'unité de transfert d'instruction 16.
Pour effectuer le codage à longueur variable,
c'est-à-dire le codage entropique, le processeur de com-
mande d'ensemble 11 applique une instruction de codage entropique au processeur à longueur variable 12. Le processeur à longueur variable 12 effectue le codage entropique. Dans le codage entropique, une conversion de
code, employant le code de Huffman ou autre, est effectuée.
Plus précisément, le processeur à longueur variable 12 effectue la conversion de code des données obtenues par le codage de source, en se référant à des données de table de conversion de code qui sont enregistrées dans la mémoire de travail 7. Le processeur de commande 11 est informé de la fin du codage entropique par le processeur à
longueur variable 12.
Après la fin du codage entropique, le processeur de commande d'ensemble 11l applique au processeur à
longueur variable 12 une instruction qui demande le trans-
fert des données traitées. Le processeur à longueur varia-
ble 12 transfère les données traitées vers la mémoire tampon 6. Le processeur de commande d'ensemble 11 est
informé de la fin du transfert de données par le proces-
seur à longueur variable 12.
Comme on peut le voir d'après la description
faite ci-dessus, la compression des données d'image peut être effectuée indépendamment dans diverses unités de traitement 13, 14, 15 et 16 dans l'unité de commande 21, ainsi que dans le processeur à longueur variable 12, sous la commande d'ensemble du processeur de commande 11. Plus précisément, la conversion de format d'image par l'unité
de conversion de format d'image, la prédiction de mouve-
ment et l'opération pour le codage de la valeur évaluée pour le mode, par l'unité de prédiction de mouvement 41 et l'unité de commande d'unité de prédiction de mouvement 13, le transfert de données d'image par l'unité de commande de transfert de données d'image 15, le codage de source par l'unité de traitement de pixels 13 et le codage entropique par le processeur à longueur variable 12, peuvent être effectués en parallèle et indépendamment les uns des
autres. Par conséquent, le processeur de commande d'ensem-
ble 11 accomplit les processus décrits ci-dessus pour chiaque macro-bloc de données de l'image, sous la commande du traitement pipeline. On décrira en détail le traitement pipeline des processus décrits ci-dessus, en se référant
ultérieurement aux figures 11 et 12. Le traitement pipe-
line permet de réaliser une compression d'image très efficace. La décompression d'image est également accomplie d'une manière similaire à la compression d'image, et
* divers processus dans l'unité de commande 21 sont accom-
plis indépendamment les uns des autres, sous la commande d'ensemble du processeur de commande d'ensemble 11. Dans la décompression d'image, des données de code enregistrées dans la mémoire tampon 6 font l'objet d'une conversion inverse, et finalement les données d'image décomprimées
sont transférées par l'intermédiaire de l'unité de conver-
sion de format d'image 14 vers la mémoire d'entrée/sortie
81 qui est représentée sur la figure 1.
(2) Unité de commande 22 (second exemple) La figure 10 est un schéma synoptique montrant
un autre exemple de l'unité de commande. L'unité de com-
mande 22 qui est représentée sur la figure 10 est appli-
cable à l'unité de commande 22 qui est représentée sur la figure 4. En comparaison avec l'unité de commande 21 qui est représentée sur la figure 9, l'unité de commande d'unité de prédiction de mouvement 13 est éliminée de l'unité de commande 22. Plus précisément, l'appareil de compression/décompression d'image 102 qui est représenté sur la figure 4 n'exige pas une prédiction de mouvement et, de façon correspondante, l'unité de commande d'unité de prédiction de mouvement est éliminée de l'unité de
commande 22.
On note qu'à l'exception de la prédiction de mouvement, l'unité de commande 22 qui est représentée sur la figure 10 fonctionne de manière similaire à l'unité de commande 21 qui est représentée sur la figure 9. Par conséquent, on peut obtenir des avantages similaires à ceux de l'unité de commande 21 qui est représentée sur la figure 9, c'est-à-dire que diverses unités internes de l'unité de commande 22 peuvent fonctionner indépendamment les unes des autres et en parallèle les unes par rapport aux autres, et la compression des données d'image peut être effectuée efficacement sous la commande du traitement pipeline. (3) Traitement pipeline Le processeur de commande d'ensemble 11 qui est représenté sur les figures 9 et 10 accomplit de la façon suivante le traitement pipeline dans l'appareil de
compression/décompression d'image.
La figure 11 est un diagramme temporel montrant le traitement pipeline qui est accompli sous la commande du processeur de commande d'ensemble 11 représenté sur la figure 9. Sur la 11, l'abscisse représente le temps et l'ordonnée représente des étapes de processus pour la compression d'image. Dans la compression d'image, une trame de données à traiter est divisée en un certain nombre de macro-blocs MB, et des processus pour la compression d'image sont effectués sur chaque macro-bloc de données. Dans l'exemple qui est représenté sur la figure 11, on traite des données de dix macro-blocs MB1 à MB10. En se référant à la figure 11, on décrira à titre d'exemple le traitement d'un macro-bloc de données MB1. Premièrement, pendant la période Tl, les données RGB du macro-bloc de données MB1 sont transférées de la mémoire d'entrée/sortie 81 représentée sur la figure 1 vers l'unité de commande 2 (étape SI). Pendant la période T2, les données RGB sont converties en données YUV par
l'unité de conversion de format d'image 14 qui est repré-
sentée sur la figure 9 (étape S2).
Pendant la période T3, les données YUV sont transférées vers la mémoiretampon d'intervalle d'image 51, et les données d'image qui font l'objet de la recherche
sont transférées vers l'unité de commande 2. Simultané-
ment, les données d'image qui font l'objet de la recherche sont transférées vers l'unité de prédiction de mouvement 41 par l'intermédiaire du bus de données de pixel PB (étape S3).
Pendant la période T4, la prédiction de mouve-
ment est effectuée par l'unité de prédiction de mouvement 41 (étape S4). Pendant la période T5, le mode de codage
est déterminé par l'unité de commande 2 (étape S5).
Pendant la période T6, les données d'image à coder sont transférées de la mémoire tampon d'intervalle d'image 51 vers l'unité de traitement de pixels 3, tandis que les données d'image de référence sont transférées vers l'unité de traitement de pixels 3 par l'intermédiaire du
bus de données de pixel PB (étape S6).
Pendant la période T7, le traitement d'image pour le codage, c'est-à- dire la transformation en cosinus discrète et la quantification, est effectué par l'unité de traitement de pixels 3 (étape S7). Pendant la période T8, les données traitées, c'est-à-dire les données de plage/ niveau sont transférées vers la mémoire tampon 6 par
l'intermédiaire du bus de code CB (étape S8).
Pendant la période T9, le codage à longueur
variable est effectué par le processeur à longueur varia-
ble 12 qui est représenté sur la figure 9 (étape S9).
Pendant la période T1O, les données traitées, c'est-à-dire les données de code à longueur variable, sont transférées par l'intermédiaire du bus de code CB vers la mémoire
tampon 6 (étape SO10).
Comme décrit ci-dessus, dans l'appareil de compression/décompression d'image 101, un traitement pipeline est accompli sous la commande du processeur de commande d'ensemble 11. Par conséquent, comme représenté sur la figure 11, des processus correspondants sont successivement accomplis au cours des périodes T2 à T10 sur d'autres macro-blocs de données MB2 à MB10, de la même
manière que sur le macro-bloc de données MB1.
La figure 12 montre le fonctionnement en paral-
lèle dans une période T1O qui est représentée sur la figure 11. Plus précisément, la figure 11 montre l'état de fonctionnement dans la période T10 de diverses unités internes dans l'unité de commande 21 et l'appareil de compression/décompression d'image 101 qui est représenté sur les figures 1 et 9. En se référant à la figure 12, on note que pendant la période T1O, le bus d'entrée/sortie IOB transfère des données RGB du dixième macro-bloc MB10 (étape S1 représentée sur la figure 11). Le bus de données
de pixel PB transfère des données des huitième et cinquiè-
me macro-blocs MB8 et MB5 (étapes S3 et S6). Le bus de code CB transfère des données des troisième et premier
macro-blocs MB3 et MB1 (étapes S8 et S1O).
Le processeur de commande d'ensemble 11 commande le transfert de données RGB du dixième macro-bloc MB10 (étape S3), et en parallèle avec ceci, il détermine le mode de codage du sixième macro-bloc MB6 (étape S5). De plus, le processeur de commande d'ensemble 11 effectue une
commande de séquence de macro-blocs MB1 à MB10, c'est-à-
dire une commande pour le traitement pipeline.
Le processeur à longueur variable 12 effectue un codage à longueur variable sur le second macro-bloc MB2 (étape S9). L'unité de transfert d'instruction 16 effectue une commande de traitement d'image du quatrième macro-bloc
MB4 (étape S7).
L'unité de commande d'unité de prédiction de mouvement 13 effectue une prédiction de mouvement pour le septième macro-bloc MB7 (étape S4). L'unité de commande de transfert de données d'image 15 commande le transfert de données des huitième et cinquième macro-blocs MB8 et MB5
(étape S8).
L'unité de conversion de format d'image 14 effectue une conversion de format (de RGB à YUV) sur le neuvième macro-bloc MB9 (étape S2). L'unité de traitement
de pixels 3 effectue un traitement d'image sur le quatriè-
me macro-bloc MB4 (étape S7). L'unité de prédiction de mouvement 4 effectue une prédiction pour le septième
macro-bloc MB7 (étape S4).
(4) Structure d'unités internes respectives (i) Processeur de commande d'ensemble 11 (figure 13)
La figure 13 est un schéma synoptique du proces-
seur de commande d'ensemble 11 qui est représenté sur la figure 9. En se référant à la figure 13, on note que le processeur de commande d'ensemble 11 comprend une mémoire d'instructions 111, une unité de commande de programme 112, une unité de commande de séquence/unité de traitement d'adresse 113, une unité de commande de système 114, un groupe de registres d'opérations 115 et une unité de traitement de données 116. Sur cette figure, le symbole de référence "DT" désigne des données, "ADR" désigne un signal d'adresse, "ID" désigne des données d'instruction, "SSc" désigne un signal de commande d'état et "Sc" désigne
un signal de commande.
(ii) Unité de commande de prédiction de mouve-
ment 13 (figure 14) La figure 14 est un schéma synoptique de l'unité
de commande de prédiction de mouvement 13 qui est repré-
sentée sur la figure 9. En se référant à la figure 14, on note que l'unité de commande de prédiction de mouvement 13
comprend une unité de commande de mode/conditions tempo-
relles 131 pour l'unité de prédiction de mouvement, une unité de commande d'ensemble 132, un processeur de données de vecteur 133, un processeur 134 pour les données d'image, pour la détection de mouvement, et une unité de
traitement d'évaluation 135 pour le mode de codage intra-
intervalle d'image.
L'unité de commande de mode/conditions tempo-
relles 131 produit un signal de commande Smc pour l'unité de prédiction de mouvement 41. Le processeur de données de vecteur 133 produit également un signal de commande Smc pour l'unité de prédiction de mouvement 41. Le processeur de données de vecteur 133 reçoit à partir de l'unité de prédiction de mouvement 41 des données Dmr indiquant les résultats de la détection de mouvement. Le processeur 134
pour les données d'image concernant la détection de mouve-
ment produit un signal de commande Smc pour des données d'image Dmi qui font l'objet de la détection de mouvement,
et pour l'unité de prédiction de mouvement 41. Le proces-
seur 134 pour les données d'image pour la détection de mouvement applique des données de pixel PD à l'unité de
traitement d'évaluation 135, pour le mode de codage intra-
trame. (iii) Unité de conversion de format d'image 14 (figure 15) La figure 15 est un schéma synoptique de l'unité de conversion de format d'image 14 qui est représentée sur la figure 9. En se référant à la figure 15, on note que l'unité de conversion de format d'image 14 comprend une unité de commande d'ensemble 14, une unité de commande de mémoire vive vidéo (VRAM) 142, un convertisseur de couleur
143, un filtre UV 144 et une mémoire d'image 145.
L'unité de commande d'ensemble 141 reçoit des données DT et un signal d'adresse ADR par l'intermédiaire d'un bus de données principal MB. L'unité de commande VRAM 142 est connectée au port VRAM 19. La mémoire d'image 145 reçoit des données de pixel PD par l'intermédiaire du bus de données de pixel interne IPB et elle fournit des
données enregistrées.
(iv) Unité de commande de transfert de données d'image 15 (figure 16) La figure 16 est un schéma synoptique de l'unité de commande de transfert d'image 15 qui est représentée sur la figure 9. En se référant à la figure 16, on note que l'unité de commande de transfert de données d'image 15 comprend une unité de commande d'ensemble 151, une unité de commande de mémoire de données d'image 152, une unité de commande de transfert de données d'image 153 et une unité de commande de transfert de bus de données de pixel 154. Sur la figure 16, le symbole de référence "Simc" désigne un signal de commande de mémoire de données d'image, "Sptc" désigne un signal de commande de transfert de données d'image pour l'unité de traitement de pixel 3, et "Smtc" désigne un signal de commande de transfert de données d'image pour l'unité de prédiction de mouvement
41.
(v) Unité de transfert d'instruction 16 (figure 17) La figure 17 est un schéma synoptique de l'unité de transfert d'instruction 16 qui est représentée sur la figure 9. En se référant à la figure 17, on note que l'unité de transfert d'instruction 16 pour l'unité de traitement de pixel 3 comprend une unité de commande
d'ensemble 161, une unité de commande de transfert d'ins-
truction 162 et une unité de surveillance d'état 163.
L'unité de commande de transfert d'instruction 162 produit un signal de commande Spc pour l'unité de traitement de pixel 3. L'unité de surveillance d'état 163 reçoit le signal d'état Sps qui provient de l'unité de traitement de pixel 3. L'unité de commande d'ensemble 161 reçoit les données DT et le signal d'adresse ADR par l'intermédiaire
d'un bus de données principal MB.
De cette manière, les unités internes 13, 14, 15
et 16 qui sont représentées sur les figures 14 à 17 reçoi-
vent respectivement des signaux demandant le démarrage de processus respectifs, provenant du processeur de commande d'ensemble 11 qui est représenté sur la figure 13, et elles renvoient vers le processeur de commande d'ensemble 11 des signaux de commande indiquant la fin de processus
respectifs, lorsque les processus respectifs sont termi-
nés. Ainsi, on note que les unités internes 13, 14, 15 et 16 accomplissent des processus respectifs indépendamment les unes des autres sous la dépendance de signaux de démarrage de processus provenant du processeur de commande
d'ensemble 11. Par conséquent, sous la commande du proces-
seur de commande d'ensemble 11, le traitement de données pour la compression d'image et la décompression d'image
peut être effectivement accompli d'une manière pipeline.
(5) Unité de commande 200 (troisième exemple) La figure 92 est un schéma synoptique montrant
encore un exemple supplémentaire de l'unité de commande.
L'unité de commande 200 qui est représentée sur la figure
92 est applicable à l'unité de commande qui est repré-
sentée sur les figures 1, 5 à 8 et 84 à 91.
En se référant à la figure 92, on note que l'unité de commande 200 comprend une partie d'interface d'hôte 201 connectée à un bus d'hôte HB; une partie de commande d'ensemble 202 pour effectuer diverses commandes comprenant une commande de traitement pipeline; une partie d'entrée/sortie vidéo 203 connectée à un bus d'entrée/ sortie IOB; un processeur principal 204 qui exécute des programmes écrits sous la forme de macro-codes; une partie de commande de mémoire d'intervalle d'image 205; une partie de commande d'unité de prédiction de mouvement 206 pour commander une mémoire d'intervalle d'image pour la prédiction de mouvement; une partie de commande de données de code 207 qui manipule des données de code qui sont échangées avec l'unité de traitement de pixels; une partie de traitement de paramètres 208; et un processeur à longueur variable 209 pour le codage/décodage à longueur
variable.
En outre, l'unité de commande 200 comprend, à titre de bus internes, un premier bus interne 210 connecté entre la partie d'entrée/sortie vidéo 203 et la partie de commande de mémoire d'itervalle dmage 205;un secndbusinterne 211 connecté entre chacun des éléments comprenant la partie de commande de mémoire d3intervwle d'image205, lapaxtie de commande d'unité de prédiction de mouvement 206 et la partie de traitement de paramètre 208; un troisième bus interne 212 connecté entre la partie de commande d'unité de prédiction de mouvement 212 et laparie decommande de moire d'inttervalle d'image 205;un quatrième bus interne connecté entre la partie de commande de données de code 207 et le processeur à longueur variable 209; et un bus principal
214 connecté à tous les blocs.
On va maintenant décrire la structure et le
fonctionnement de divers blocs.
La partie d'interface d'hôte 201 est une partie de commande qui commande le transfert de données entre un ordinateur hôte externe et l'unité de commande 200. Les données qui sont reçues/émises par l'intermédiaire de la partie d'interface d'hôte 201 sont transférées par le bus principal 214 qui est connecté à chaque bloc dans l'unité
de commande 200.
La partie de commande d'ensemble 202 est un bloc
qui commande essentiellement diverses conditions tempo-
relles de fonctionnement et divers traitements pipelines dans l'unité de commande 200. Au moment du codage d'une image, la partie de commande d'ensemble 202 génère une impulsion de synchronisation interne au niveau de chaque pixel ou de chaque macro-bloc, sur la base d'une horloge de base et d'un signal de synchronisation, elle commande des paramètres principaux dans le codage, elle transfère des données, etc. La partie d'entrée/sortie vidéo 203 comporte une interface avec la mémoire d'entrée/sortie 81 qui est une adresse, à la mémoire locale (par exemple la mémoire locale 56 qui est représentée sur la figure 83). La partie de commande d'unité de prédiction de mouvement 206 comprend en outre une interface avec le bus local (par exemple le bus local LB4 qui est représenté sur la figure 83), pour transférer des paramètres tels qu'un vecteur de mouvement et des données de modèle (données d'image) vers
l'unité de prédiction de mouvement et à partir de celle-
ci. En outre, la partie de commande d'unité de prédiction de mouvement 206 est connectée, dans l'unité de commande , à la partie de commande de mémoire d'intervalle d'image 205 et à la partie de commande de paramètres 208, par l'intermédiaire du second bus interne 211, et à la partie de commande de mémoire d'intervalle d'image 205 par
l'intermédiaire du troisième bus interne 212.
La partie de commande de données de code 207 comporte une interface qui est connectée à un bus de code (par exemple le bus de code CB représenté sur la figure
83) qui est destiné à être connecté à l'unité de traite-
ment de pixels (par exemple l'unité de traitement de pixels 33 qui est représentée sur la figure 83) et à la mémoire tampon (par exemple la mémoire tampon 6 qui est représentée sur la figure 83). La partie de commande de
données de code 207 est connectée, dans l'unité de com-
mande 200, au processeur à longueur variable 209 par
l'intermédiaire du quatrième bus interne 213.
La partie de traitement de paramètres 208 est connectée à la partie de conmmande de mémaire d'intervalle d'image 205
et à la partie de commande d'unité de prédiction de mouve-
ment 206 par l'intermédiaire du second bus interne 211.
Des données de modèle sont transmises de la partie de commande de mémoire d'intervalle d'image 205 à la partie de traitement de paramètres 208 par l'intermédiaire du second bus interne 211, et la partie de traitement de paramètres 208 extrait des paramètres liés au modèle. La représentée sur la figure 83, par exemple, et dans l'unité de commande 200 elle est connectée à la partie de commande de mémoire d'intervalle d'image 205 par le premier bus
interne 210.
Le processeur principal 204 est un bloc qui est essentiellement chargé du traitement adaptatif dans le
codage, dont les détails seront décrits ultérieurement.
S'il y a un conflit avec la partie d'interface d'hôte 201,
le processeur principal 204 sera le maître du bus princi-
pal 214, et il accomplit le transfert de données de regis-
tre/mémoire dans chaque bloc.
La partie de commande de mémoire dinterva]le d'image 205 comprend, à titre d'interface externe, une interface à 32 bits, qui fonctionne à la manière d'un maître d'un bus de données de pixel à 32 bits (par exemple le bus de données de pixel PB de la figure 83), entre la mémoire tampon d'intervalle d'image (par exemple la mémoire tampon d'intervalle d'image 51 qui est représentée sur la figure 83) et l'unité de traitement de pixels (par exemple l'unité de traitement de pixels 33 qui est représentée sur la figure 83).Lapertiedecommande de mémoire d'intervamIl d'image 205 est connectée, dans l'unité de commande 200, à la partie d'entrée/sortie vidéo 203 par l'intermédiaire du
premier bus interne 210, à la partie de commande de para-
mètres 208 et à la partie de commande d'unité de prédic-
tion de mouvement 206 par l'intermédiaire du second bus interne 211, et en outre à une autre interface de la partie de commande d'unité de prédiction de mouvement 206
par l'intermédiaire du troisième bus interne 212.
La partie de commande d'unité de prédiction de mouvement 206 comprend, à titre d'interfaces externes, une interface qui applique un signal de commande à l'unité de prédiction de mouvement (par exemple l'unité de prédiction de mouvement 47 représentée sur la figure 83), et une interface qui applique un signal de commande, comprenant
partie de traitement de paramètres 208 comprend un regis-
tre qui conserve le résultat de l'opération qui est effec-
tuée. Le résultat de l'opération conservé dans le régistre peut être transféré (lu) par l'intermédiaire du bus principal 214 (fonctionnement en esclave). Le processeur à longueur variable 209 est connecté à la partie de commande de données de code 207 par l'intermédiaire du quatrième bus interne 213. Le codage à longueur variable des données du type plage/ niveau ou d'un index de quantification provenant de la partie de commande de données de code 207, est effectué dans le processeur à longueur variable 209. Les données de train de bits qui sont produites dans le processeur à longueur variable 209 sont transférées vers la mémoire tampon d'intervalle d'image (par exemple la mémoire tampon d'intervalle d'image 51 qui est représentée sur la figure 83). On décrira en détail, en se référant aux figures 83 et 92, le contenu de processus qui sont accomplis dans des blocs respectifs de l'unité de commande 200 pendant le
codage d'image.
L'unité de commande 23 a la fonction de com-
mander l'unité de traitement de pixels 33 et l'unité de prédiction de mouvement 47 pour effectuer le codage. Par conséquent, les quatre types de commande de données
suivants sont essentiellement accomplis.
(1) Lecture de données d'origine et enregistre-
ment des données dans la mémoire tampon d'intervalle
d'image 51.
(2) Lecture de données de modèle pour la prédic-
tion de mouvement et activation de l'unité de prédiction
de mouvement 47.
(3) Lecture et détermination des résultats de la prédiction de mouvement, et activation de l'unité de
traitement de pixels 33.
(4) Lecture et traitement à longueur variable de données de code (index de quantification, plage/niveau),
et écriture dans la mémoire tampon 6.
On décrira les quatre types de commande de données en se référant aux opérations de blocs respectifs. (i) Lecture de données d'origine et écriture des données dans la mémoire tampon d'intervalle d'image 51 (projection). Les données d'origine qui sont enregistrées dans une mémoire d'entrée/sortie externe (les données d'image d'origine à coder) sont segmentées sur la base de ce que l'on appelle un macro-bloc et elles sont transférées vers
la partie d'entrée/sortie vidéo 203.
La partie d'entrée/sortie vidéo 203 contient un circuit de conversion du format RGB au format YUV et un
circuit de filtre, et la conversion de format est accom-
plie ici (par exemple RGB -- YUV, 4:2:2 -- 4:2:0, etc.).
Les données traitées sont transférées par le premier bus
interne 210 vers la partie de commande de mémoire d'inter-
valle d'image 205. La partie de commande de mémoire d'intervalle d'image 205 projette (écrit) les données transférées, avec un format approprié pour le codage ultérieur, dans la mémoire tampon d'intervalle d'image 51 qui est commandée par la partie de commande de mémoire d'intervalle d'image 205. On décrira ultérieurement en
détail le procédé de projection qui est employé ici.
La génération d'une adresse pour la mémoire tampon d'intervalle d'image 51 est accomplie par la partie
de commande de mémoire d'intervalle d'image 205. La com-
mande de la mémoire tampon d'intervalle d'image 51 et les conditions temporelles du transfert de données à partir de la partie d'entrée/sortie vidéo 203 sont régies par la
partie de commande d'ensemble 202.
(ii) Lecture de données de modèle pour la
prédiction de mouvement et commande de l'unité de prédic-
tion de mouvement Pour effectuer la prédiction de mouvement d'un macrobloc à coder, la partie de commande de mémoire
d'intervalle d'image 205 lit les données d'image corres-
pondant au macro-bloc dans la mémoire tampon d'intervalle
d'image 51. Ces données sont appelées données de modèle.
La partie de commande de mémoire d'intervalle d'image 205 transfère les données de modèle vers la partie de commande d'unité de prédiction de mouvement 206 et la partie de
traitement de paramètres 208.
La partie de commande d'unité de prédiction de mouvement 206 transfère les données de modèle vers l'unité de prédiction de mouvement 47 par l'intermédiaire du bus local LB4 et, simultanément, elle transfère des données de fenêtre de recherche, correspondant aux données de modèle, vers la mémoire locale 56 par l'intermédiaire du bus de données local LDB. En outre, la partie de commande d'unité de prédiction de mouvement 206 active l'opération de
prédiction de mouvement des données de modèle en appli-
quant à l'unité de prédiction de mouvement 47, à titre d'information d'entrée, un signal de commande tel qu'une
commande d'activation.
En outre, la partie de commande de mémoire de trame 205 transfère les données de modèle vers la partie de commande d'unité de prédiction de mouvement 206 par
l'intermédiaire du second bus interne 111 et, simultané-
ment, elle les transfère vers la partie de traitement de paramètres 208. La partie de traitement de paramètres 208
extrait des caractéristiques de données de modèle confor-
mément à une opération prédéterminée, et ces caractéristi-
ques sont utilisées ultérieurement pour la détermination du codage ou autre. Les paramètres qui sont calculés ici
comprennent la variance (uniquement du signal de lumi-
nance) de chaque bloc (dans un intervalle de trame/inter-
valle d'image d'un bloc) du modèle pour le calcul d'activité, la valeur moyenne et la valeur de variance du signal de luminance du macro-bloc de modèle, etc., qui
exigent des opérations sur des pixels.
(iii) Lecture du résultat de la prédiction de mouvement et activation de l'unité de traitement de pixels Après plusieurs cycles de macro-bloc à partir de l'activation de l'unité de prédiction de mouvement, le résultat de la prédiction de mouvement, c'est-à-dire divers modes de prédiction de mouvement, des vecteurs de mouvement en arrière dans les directions horizontale et verticale et des fonctions évaluées les concernant, est prélevé dans la partie de commande d'unité de prédiction
de mouvement 206 par l'intermédiaire du bus local LB4.
La partie de commande d'unité de prédiction de mouvement 206 détermine le mode de prédiction et le vecteur de mouvement par l'utilisation de la fonction d'évaluation précitée. Le vecteur de mouvement déterminé est transféré vers la partie de commande de mémoire d'intervalle d'image 205 par l'intermédiaire du bus interne 212. La partie de commande de mémoire d'intervalle d'image 205 calcule une adresse de l'image prédite sur la
base du vecteur de mouvement d'entrée. La partie de com-
mande de mémoire d'intervalle d'image 205 commande la mémoire tampon d'intervalle d'image 51 et l'unité de traitement de pixels 33 sur la base de l'adresse calculée, et elle transfère vers l'unité de traitement de pixels 33 les données d'image prédites correspondant au vecteur de mouvement. En outre, la partie de commande de mémoire d'intervalle d'image 205 émet les données de modèle vers l'unité de traitement de pixels 33 d'une manière similaire à celle décrite ci-dessus (du fait que le pipeline est
différent de celui des données de modèle mentionnées ci-
dessus, il est nécessaire d'effectuer à nouveau le trans-
fert), et en activant l'unité de traitement de pixels 33, elle fait en sorte que l'unité de traitement de pixels 33 effectue la transformation en cosinus discrète et les
processus suivants. L'ordre pour l'activation et les para-
mètres nécessaires pour le codage dans l'unité de traite-
ment de pixels 33 (par exemple la moitié par instruction de filtre) sont placés ici dans un registre déterminé dans l'unité de traitement de pixels 33, par l'intermédiaire de la partie de commande de données de code 205 ou de la
partie d'interface d'hôte 201, en utilisant le même pipe-
line. L'unité de traitement de pixels 303 est conçue de façon à pouvoir être conditionnée à partir des deux ports précités. (iv) Lecture et traitement à longueur variable des données de code, et écriture dans la mémoire tampon Les données traitées dans l'unité de traitement
de pixels 33 (c'est-à-dire les données qui ont été soumi-
ses au filtrage, à la transformation en cosinus discrète, à la quantification, ou autre) sont écrites temporairement dans la mémoire tampon 6 par l'intermédiaire du bus de code CB, ou bien elles sont transférées directement vers la partie de commande de données de code 207 de l'unité de commande 23, par la commande qui est exercée par la partie de commande d'ensemble 202. Le format de données à ce moment correspond soit à l'index de quantification (données après quantification) soit aux données de plage/ niveau (l'index de quantification précité converti en plage/niveau). La partie de commande de données de code 207
reçoit les données à un moment arbitraire et elle trans-
fère ces données vers le processeur à longueur variable 209 par l'intermédiaire du quatrième bus interne 213. Le processeur à longueur variable 209 effectue ce que l'on appelle un codage de Huffman sur les données, conformément à un micro-programme, et il écrit le résultat dans une mémoire tampon externe 6. Au moment de la conversion de code, correspondant par exemple au codage de Huffman, il est possible d'accéder à des données de table qui sont
enregistrées dans la mémoire de travail 7.
On décrira dans ce qui suit la manière selon laquelle le processeur principal 204 participe au codage
dans le traitement décrit ci-dessus.
Lorsqu'une détermination autre que la détermina-
tion qui est effectuée dans la partie de commande d'unité de prédiction de mouvement 206 doit être accomplie, par exemple lorsqu'un utilisateur désire utiliser son propre procédé de détermination, le processus se déroule de la manière suivante. Le processeur principal 204 accède à un registre dans lequel sont mémorisés des vecteurs et des valeurs évaluées pour divers modes de prédiction dans la partie de commande d'unité de prédiction de mouvement 206, par l'intermédiaire du bus principal 214. Lesvecteurs et les valeurs évaluées sont traités uniquement sous la forme de macro-codes et ils sont retournés au registre d'origine en une durée prédéterminée. Il en résulte qu'un traitement
adaptatif tel qu'une détermination devient possible.
Le processeur principal 204 traite essentielle-
ment des couches situées à un niveau supérieur à celui de la couche de macro-bloc (conformément à la norme MPEG 1/2). En d'autres termes, le processeur principal 204 est responsable de processus qui sont accomplis au niveau GOP/image/tranche. Par exemple, le processeur principal 204 fixe des paramètres de codage de l'image suivante sur la base de la quantité de codes utilisés dans le codage de l'image précédente. Le processeur principal 204 prend également en charge des modes exceptionnels tels que la commande de cadence, le rafraîchissement synchrone, la commande interne forcée, etc. Les processus principaux dans la couche de macro-bloc comprennent la quantification adaptative qui est effectuée sur la base de l'activité
calculée.
Comme décrit ci-dessus, le processeur principal 204 est capable d'accéder à un registre ou une mémoire dans chaque unité de l'unité de commande 23, de façon qu'il puisse se référer aux registres ou à la mémoire, accomplir un certain processus tel qu'une opération et
réécrire le contenu du registre ou de la mémoire, à condi-
tion que ces opérations soient achevées au cours d'une étape de processus acceptable prédéterminée. Ceci procure
un degré de liberté plus élevé dans le codage.
Comme on peut le voir d'après la description de
l'opération de codage ci-dessus, le codage est accompli indépendamment dans chacune des unités de traitement sous l'effet d'une commande en mode pipeline qui est exercée par la partie de commande d'ensemble 202 dans l'unité de commande 23. En d'autres termes, les quatre opérations de commande de données mentionnées ci-dessus sont accomplies indépendamment les unes des autres et en parallèle les unes par rapport aux autres. Le décodage d'images peut être accompli d'une manière similaire au codage, par un fonctionnement parallèle de blocs respectifs dans l'unité
de commande 23, sous l'effet d'une commande en mode pipe-
line qui est exercée par la partie de commande d'ensemble 202. 3. Unité de traitement de pixels (1) Unité de traitement de pixels 31 (figures 18 et 19) La figure 18 est un schéma synoptique montrant un exemple de l'unité de traitement de pixels. L'unité de traitement de pixels 31 qui est représentée sur la figure 18 est utilisée par exemple pour l'unité de traitement de
pixels 3 représentée sur la figure 1.
En se référant à la figure 18, on note que l'unité de traitement de pixels 31 comprend un circuit d'interface (I/F) d'hôte 311, un groupe de mémoires locales 312, une unité de traitement de transformation en cosinus discrète/transformation en cosinus discrète inverse (ou DCT/IDCT) 313, un quantificateur 314, un
filtre 315, un bus de sélecteur 316, un circuit d'inter-
face de bus de données de code 317, un circuit d'interface de bus de pixel 318 et une unité de commande 319. Le circuit d'interface d'hôte 311 est incorporé
pour échanger des données avec le processeur hôte, c'est-
à-dire entre l'unité de commande 2 et l'unité de traite-
ment de pixels 311. Le circuit d'interface de bus de pixel
318 est incorporé pour l'entrée/sortie de données d'image.
Le circuit d'interface de bus de données de code 317 est
incorporé pour l'entrée/sortie de données de code.
L'unité de traitement DCT/IDCT 313 accomplit une opération de transformation en cosinus discrète (ou DCT) et une opération de transformation en cosinus discrète inverse. Le quantificateur 314 est incorporé pour la
quantification. Le filtre 315 est incorporé pour la géné-
ration de données d'image de référence pour la prédiction de mouvement. Le bus de sélecteur 316 est incorporé pour transférer des données internes de l'unité de traitement de pixels 31. L'unité de commande 319 est incorporée pour la commande d'ensemble de l'unité de traitement de pixels 31. La figure 19 est un schéma synoptique plus détaillé de l'unité de traitement de pixels 31 qui est représentée sur la figure 18. Le groupe de mémoires locales 312 qui est représenté sur la figure 18 comprend des mémoires d'image 331 à 335 représentées sur la figure 19, des mémoires de données 341 et 342, une mémoire de données de code 343 et une mémoire de paramètres 344. Le bus de sélecteur 316 qui est représenté sur la figure 18
comprend des bus de sélecteur SB1 à SB5 qui sont repré-
sentés sur la figure 19.
La mémoire d'image 331 est incorporée pour enre-
gistrer des données d'image à comprimer. Les mémoires d'image 332 et 333 enregistrent des données d'image de référence d'intervalles d'image précédents et suivants. La mémoire d'image 334 enregistre les données d'image de référence traitées, qui ont été filtrées. La mémoire d'image 335 enregistre des données d'image à décoder. La mémoire de données de code 343 enregistre des données de code quantifiées. La mémoire de paramètres 344 enregistre des données de table pour une opération, comme une matrice
de quantification.
Le bus de sélecteur SB1 a une largeur de bus de 12 bits et il transfère des données d'image de référence filtrées. Le bus de sélecteur SB2 a une largeur de bus de 12 bits et il transfère des données de différence après calcul de différence et après transformation en cosinus discrète inverse. Le bus de sélecteur SB3 a une largeur de bus de 12 bits et il est incorporé pour transférer un
facteur de transformation en cosinus directe après trans-
formation en cosinus directe et après quantification inverse. Le bus de sélecteur SB4 a une largeur de bus de 12 bits et il est incorporé pour transférer des données de code après quantification inverse et après développement des zéros. Le bus de sélecteur SB5 a une largeur de bus de 16 bits et il est incorporé pour transférer des données de paramètres. (2) Unité de traitement de pixels 32 (figures 20 et 21) La figure 20 est un schéma synoptique montrant
un autre exemple de l'unité de traitement de pixels.
L'unité de traitement de pixels 32 qui est représentée sur la figure 20 peut également être utilisée par exemple pour l'unité de traitement de pixels 3 qui est représentée sur
la figure 1.
En se référant à la figure 20, on note qu'en comparaison avec l'unité de traitement de pixels 31 qui est représentée sur la figure 19, l'unité de traitement de pixels 32 comprend en outre une unité de traitement programmable 320. L'unité de traitement programmable 320 est connectée au bus de sélecteur 326 et elle est capable d'effectuer diverses autres opérations conformément à des programmes qui sont enregistrés dans cette unité. Par exemple, l'unité de traitement programmable 320 accomplit des opérations fréquemment utilisées telles que l'addition, la soustraction, la sommation de valeurs absolues de différence, l'accumulation de valeurs absolues de différence, la sommation de carrés de différence, l'accumulation de carrés de différence, la multiplication,
etc., conformément à des programmes enregistrés.
La figure 21 est un schéma synoptique plus détaillé de l'unité de traitement de pixels 32 qui est représentée sur la figure 20. Comme représenté sur la figure 21, l'unité de traitement programmable 320 ajoutée est connectée au bus de sélecteur SB1 à SB5. De plus, l'unité de traitement programmable 320 est connectée à la
mémoire de paramètres 344.
* (3) Fonctionnement des unités de traitement de pixels 31 et 32 On décrira le fonctionnement de l'unité de traitement de pixels 31 en se référant à la figure 19. On décrira à titre d'exemple une opération de codage d'image animée du type à accumulation, conformément à la norme MPEG. Le circuit d'interface de bus de pixel 318 reçoit des données d'image à coder provenant de la mémoire d'intervalle d'image 51 représentée sur la figure 1, et il
applique les données à la mémoire d'image 331 par l'inter-
médiaire du bus de pixel interne IPB2. Si une prédiction
de mouvement est nécessaire, des données d'image de réfé-
rence sont appliquées à la mémoire d'image 332 dans le cas
de la prédiction en avant. D'autre part, dans la prédic-
tion bidirectionnelle, les données d'image de référence de l'intervalle d'image précédent et de l'intervalle d'image suivant sont transférées vers les mémoires d'image 332 et 333. Dans la prédiction en avant, les données qui sont enregistrées dans la mémoire d'image 332 sont appli- quées au filtre 315. Le filtre 315 effectue un filtrage et les données de référence traitées sont écrites dans la
mémoire d'image 334.
Dans le cas de la prédiction bidirectionnelle,
des données d'image de référence en avant qui sont enre-
gistrées dans la mémoire d'image 332 sont appliquées au filtre 315, tandis que des données d'image de référence en arrière qui sont enregistrées dans la mémoire d'image 333 sont également appliquées au filtre 315. Dans le filtre 315, un filtrage et une interpolation sont effectués sur
les données d'image de référence appliquées, et les don-
nées d'image de référence générées sont écrites dans la
mémoire d'image 334.
Un générateur de différence 310 transfère vers le bus de sélecteur SB2 des données d'image à coder qui
sont enregistrées dans la mémoire d'image 331. Le généra-
teur de différence 310 applique au bus de sélecteur SB2, en fonction des besoins, des données de différence entre les données d'image à coder et les données d'image de référence qui sont enregistrées dans la mémoire d'image 334. L'unité de traitement DCT/IDCT 313 accomplit une opération de transformation en cosinus discrète sur les données d'image ou les données de différence qui sont appliquées par l'intermédiaire du bus de sélecteur SB2 dans le codage, et elle transfère par le bus de sélecteur SB3 le facteur de transformation en cosinus inverse qui est généré. Lorsqu'une opération de bouclage pour le codage et le décodage est effectuée, l'unité de traitement DCT/IDCT 313 accomplit une opération de transformation en cosinus discrète inverse sur le facteur de transformation en cosinus discrète qui est appliqué par l'intermédiaire du bus de sélecteur SB3, et elle génère des données d'image ou des données de différence. Les données générées sont transférées par le bus de sélecteur SB2.
Le quantificateur 314 effectue une quantifica-
tion sur le facteur DCT qui est appliqué par le bus de sélecteur SB3, en se référant à la mémoire de paramètres 344. Les données de code qui sont obtenues sous l'effet de la quantification sont transférées par le bus de sélecteur
SB4 vers la mémoire de données de code 343. Dans l'opéra-
tion de bouclage pour le codage et le décodage, le quanti-
ficateur 314 accomplit une quantification inverse des données de code qui sont appliquées par l'intermédiaire du bus de sélecteur SB4. Le facteur DCT qui est obtenu sous l'effet de la quantification inverse est transféré par le
bus de sélecteur SB3.
Dans le codage, le circuit d'interface de bus de données de code 317 reçoit par l'intermédiaire du bus de sélecteur SB5 des données de code qui sont enregistrées dans la mémoire de données de code 343. Le circuit d'interface de bus de données de code 314 fournit, sans modification, les données de code reçues à un bus de données de code externe, c'est-à-dire le bus de code CD qui est représenté sur la figure 1. Dans certains cas, les données sont converties en code de plage/niveau par le circuit d'interface de bus de données de code 317 et elles sont émises vers le bus de code CB. Dans le décodage, le circuit d'interface de bus de données de code 317 effectue une quantification inverse sur les données de code qui sont appliquées par l'intermédiaire du bus de sélecteur SB4. Le facteur de transformation en cosinus discrète qui est obtenu sous l'effet de la quantification inverse est
transféré par le bus de sélecteur SB3.
Dans le processus de décodage d'image de référence pour le codage et le décodage, le décodeur d'image 310 fournit des données d'image de référence qui sont appliquées par l'intermédiaire du bus de sélecteur SB1, et les données du résultat de l'addition de données de différence décodées, si une prédiction de mouvement est nécessaire, et les données sont enregistrées dans la mémoire d'image 335. D'autre part, si la prédiction de mouvement n'est pas nécessaire, les données d'image décodées sont émises sans modification et elles sont
enregistrées dans la mémoire d'image 335.
Le circuit d'interface d'hôte 331 reçoit des ordres de fonctionnement pour l'unité de traitement de pixels 31 et des paramètres tels qu'une matrice de quantification, par l'intermédiaire du bus d'hôte HB représenté sur la figure 1. D'autre part, le circuit d'interface d'hôte 311 fournit à l'extérieur des données qui sont enregistrées dans les mémoires internes 331 à 335 et 341 à 344, ainsi que des données qui sont enregistrées
dans des registres internes.
(4) Séquence d'opérations dans l'unité de traitement de pixels (figures 22 à 25) (i) Séquence pour le codage d'image prédite intra-intervalle d'image, conformément à la norme MIEG La figure 22 est un organigramme du codage dans l'unité de traitement de pixels 31 qui est représentée sur la figure 19. En se référant à la figure 22, on note que les données d'image qui sont enregistrées dans la mémoire d'image 331 sont appliquées au générateur de différence 310. Les données appliquées ne sont absolument pas traitées dans ce cas, et elles sont appliquées à l'unité de traitement DCT/IDCT 313 par l'intermédiaire du bus de sélecteur SB2. Après le traitement de transformation en cosinus discrète dans l'unité de traitement 313, des
données indiquant le résultat du traitement sont appli-
quées au quantificateur 314 par l'intermédiaire du bus de
sélecteur SB3.
Le quantificateur 314 effectue la quantification
en se référant à la mémoire de paramètres 344 par l'inter-
médiaire du bus de sélecteur SB5. Des données indiquant le résultat de la quantification, c'est-à-dire des données de code, sont appliquées à la mémoire de données de code 343
et elles sont enregistrées dans cette dernière. Les don-
nées enregistrées dans la mémoire de données de code 343 sont appliquées au bus de code externe CB (figure 1) par l'intermédiaire du bus de sélecteur SB4 et du circuit
d'interface de bus de données de code 317.
La figure 23 est un organigramme pour le déco-
dage dans l'unité de traitement de pixels 31 qui est représentée sur la figure 19. En se référant à la figure
23, on note que les données à décoder, qui sont enregis-
trées dans la mémoire de données de code 343, sont appli-
quées au quantificateur 314 par l'intermédiaire du bus de
sélecteur SB4. Le quantificateur 314 effectue une quanti-
fication inverse, en se référant à la mémoire de paramè-
tres 344 par l'intermédiaire du bus de sélecteur SB5. Des données indiquant le résultat de la quantification inverse sont appliquées à l'unité de traitement DCT/IDCT 313 par
l'intermédiaire du bus de sélecteur SB3.
L'unité de traitement 313 effectue une opération de transformation en cosinus discrète inverse sur les données appliquées. Des données indiquant le résultat de
l'opération sont appliquées au décodeur 310 par l'intermé-
diaire du bus de sélecteur SB2. Le décodeur 310 effectue une opération de limitation sur les données appliquées, et les données traitées sont appliquées à la mémoire d'image
335 pour être enregistrées dans cette dernière.
(ii) Séquence pour le codage avec prédiction bidirectionnelle conformément à la norme MPEG En se référant à la figure 24, on note que dans le codage, les données d'image de la direction avant qui sont enregistrées dans la mémoire d'image 332 et les
données d'image de la direction arrière qui sont enregis-
trées dans la mémoire d'image 333, sont appliquées au filtre 315. Le filtre 315 accomplit un traitement de génération d'image avec précision 1/2 et d'interpolation de pixel sur les données appliquées. Les données traitées sont appliquées à la mémoire d'image 334 et elles sont enregistrées dans cette dernière. Les données qui sont enregistrées dans la mémoire d'image 334 sont appliquées au générateur de différence 310 par l'intermédiaire du bus de sélecteur SB1. D'autre part, les données d'image à coder qui sont enregistrées dans la mémoire d'image 331
sont également appliquées au générateur de différence 310.
Le générateur de différence 310 effectue une opération de
calcul de différence de pixel sur les données appliquées.
L'unité de traitement DCT/IDCT 313 reçoit les
données de différence provenant du générateur de diffé-
rence 310 par l'intermédiaire du bus de sélecteur SB2.
L'unité de traitement 313 effectue une opération de trans-
formation en cosinus discrète sur les données reçues, et des données représentatives du résultat de l'opération sont appliquées au quantificateur 314 par l'intermédiaire du bus de sélecteur SB3. Le quantificateur 314 effectue une quantification des données appliquées en se référant à la mémoire de paramètres 344 par l'intermédiaire du bus de sélecteur SB5. Les données représentatives du résultat de la quantification sont appliquées à la mémoire de données de code 343 par l'intermédiaire du bus de sélecteur SB4,
et elles sont enregistrées dans cette dernière.
(5) Traitement pipeline (figures 26) 29) La figure 26 est un diagramme temporel montrant le traitement pipeline pour le codage dans l'unité de traitement de pixels 31 qui est représentée sur la figure 19. En se référant à la figure 26, on note que dans la période de fonctionnement A, des données d'écriture pour la mémoire d'image 331 sont transférées par le bus de pixel interne IPB2. Dans la période de fonctionnement B, des données d'écriture pour la mémoire d'image 332 sont transférées par le bus de pixel interne IPB2. Dans la période de fonctionnement C, des données d'écriture pour la mémoire d'image 333 sont transférées par le bus de
pixel interne IPB2.
Dans la période de fonctionnement D, le filtre 315 est en action. Dans la période de fonctionnement E, la transformation en cosinus discrète et la quantification sont effectuées par l'unité de traitement DCT/IDC 313 et le quantificateur 314. Dans la période de fonctionnement F. la quantification inverse et la transformation en cosinus discrète inverse, ainsi que le décodage, sont effectués par l'unité de traitement 313, le quantificateur
314 et le décodeur d'image 310.
Dans la période de fonctionnement G, l'opération de lecture dans la mémoire d'image 335 est effectuée. Dans
la période de fonctionnement H. les opérations de combi-
naison plage/niveau et de sortie sont effectuées par le
circuit d'interface de bus de données de code 317.
Les processus qui sont représentés sur la figure
26 sont successivement accomplis macro-bloc par macro-
bloc. Plus précisément, bien que le traitement de données d'image d'un seul macro-bloc soit représenté sur la figure 26, un traitement pipeline est effectué pour un certain nombre de macro-blocs. On décrira dans ce qui suit le
traitement pipeline pour un ensemble de macro-blocs.
La figure 27 est un diagramme temporel montrant le traitement pipeline dans la prédiction intra-trame. En se référant à la figure 27, on note que le suffixe O désigne le traitement de données du 0-ième macro-bloc, et
que le suffixe 1 désigne le traitement du ler macro-bloc.
La figure 28 est un diagramme temporel montrant
le traitement pipeline dans le cas de la prédiction uni-
directionnelle. La figure 29 est un diagramme temporel
montrant le traitement pipeline dans le cas de la prédic-
tion bidirectionnelle.
Comme on peut le voir sur les figures 27 à 29, le traitement de données pour un ensemble de macro-blocs est effectué sous la commande du traitement pipeline dans l'unité de traitement de pixels 3, et le traitement de données peut être accompli efficacement en relation avec le traitement dans l'unité de traitement de pixels 3. En d'autres termes, on obtient une unité de traitement de pixels qui permet une transformation en cosinus discrète
et une quantification efficaces et rapide.
(6) Unité de traitement de pixels 33 La figure 93 est un schéma synoptique montrant encore un autre exemple de l'unité de traitement de
pixels. L'unité de traitement de pixels 33 qui est repré-
sentée sur la figure 93 peut être utilisée pour l'unité de traitement de pixels qui est représentée par exemple sur
les figures 83 à 89 et la figure 91.
En se référant à la figure 93, on note que l'unité de traitement de pixels 33 diffère de l'unité de traitement de pixels 31 représentée sur la figure 18 par le fait qu'elle comprend deux jeux de circuits d'interface de bus de pixel 318a et 318b. A l'exception de ce point, elle est identique à l'unité de traitement de pixels 31 représentée sur la figure 18. Par conséquent, les parties correspondantes sont désignées par les mêmes symboles de
référence et leur description n'est pas répétée.
La figure 94 est un schéma synoptique plus détaillé de l'unité de traitement de pixels 33 qui est représentée sur la figure 93. En se référant à la figure 94, on note que chacun des bus de pixel IPB2a et IPB2b a
une largeur de bus de 32 bits et est connecté respective-
ment à des circuits d'interface de bus de pixel dédiés
318a et 318b et à des mémoires d'image 331 à 333 et 335.
A l'exception de ces points, elle est identique à l'unité de traitement de pixels 31 qui est représentée sur la figure 19. Par conséquent, les parties correspondantes sont désignées par les mêmes symboles de référence et leur
description n'est pas répétée.
On va maintenant décrire le fonctionnement de l'unité de traitement 33. En se référant à la figure 94, on décrira à titre d'exemple de fonctionnement le codage
d'une image animée conformément à la norme MPEG.
Dans la norme MPEG, on utilise la prédiction en
avant, la prédiction en arrière et la prédiction bidirec-
tionnelle, et des données de prédiction doivent être transférées à partir de l'extérieur conformément au type de prédiction. Le transfert des données pour la prédiction est effectué par l'intermédiaire du circuit d'interface de bus de pixel 318a ou 318b. Des données d'image à coder sont également transférées par l'intermédiaire du circuit d'interface de bus de pixel 318a ou 318b. La compression d'image est accomplie dans le filtre 325, l'unité de traitement DCT/IDCT 313, le quantificateur 314 et le générateur de différence et décodeur d'image 310, et les données sont fournies par l'intermédiaire du circuit d'interface de bus de données de code 317. D'autre part, l'image qui est décodée de façon locale dans l'unité de traitement de pixels 33 est transférée vers des unités externes séparées par les circuits d'interface de pixel 318a et 318b. Les premières données décodées de façon locale qui sont transférées sont utilisées à titre de données d'entrée pour l'unité de prédiction de mouvement 47 représentée sur la figure 87, par exemple. Les autres données décodées de façon locale qui sont transférées sont utilisées à titre de données d'image prédites pour le
traitement de l'intervalle d'image suivant.
Comme décrit ci-dessus, l'unité de traitement de pixels 33 qui est représentée sur la figure 94 permet le transfert de données d'image décodées de façon locale vers un ensemble d'unités externes, de façon simultanée, et elle permet également le transfert de données d'image prédites à partir d'un port, pendant que des données d'image de référence sont transférées de l'unité de prédiction de mouvement vers la mémoire locale par l'autre port. Le port de transfert de l'image prédite n'est pas
limité à un seul, mais l'image prédite peut être transfé-
rée par un port ou l'autre. Par conséquent, on peut changer aisément la structure du système et le procédé de
transfert de données.
La figure 95 est un schéma synoptique montrant un autre exemple de l'unité de traitement de pixels 33 qui est représentée sur la figure 93. L'unité de traitement de
pixels 33 qui est représentée sur la figure 95 peut égale-
ment être utilisée pour l'unité de traitement de pixels
qui est représentée sur les figures 83 à 89 et 91.
En se référant à la figure 95, on note qu'en comparaison avec l'unité de traitement de pixels 33 qui
est représentée sur la figure 94, dans l'unité de traite-
ment de pixels 33a le bus de pixel IPB2 est connecté à deux circuits d'interface de bus de pixel 318a et 318b, et un bus interne est utilisé en commun pour le transfert de données de pixel. A l'exception de ces points, elle est identique à l'unité de traitement de pixels 33 qui est
représentée sur la figure 94. La description n'est donc
pas répétée.
On décrira dans ce qui suit le fonctionnement de l'unité de traitement de pixels 33a. En se référant à la figure 95, on note que le bus de pixel interne IPB2 est utilisé en commun. Par conséquent, lorsque des données
décodées de façon locale doivent être transférées simulta-
nément vers deux circuits d'interface de bus de pixel 318a et 318b, une opération similaire à celle de l'unité de traitement de pixels 33 représentée sur la figure 94 est accomplie. Dans la structure décrite cidessus, l'unité de traitement de pixels 33a peut transférer simultanément vers plusieurs unités externes des données qui sont décodées de façon locale. En outre, pendant que des données d'image de référence sont transférées de la mémoire locale vers l'unité de prédiction de mouvement, des données peuvent être transférées vers l'unité de traitement de pixels 35 par un autre port. En outre, du fait que le bus de pixel IPB2 est utilisé en commun, il est possible de réduire l'aire de circuit, et cette configuration se prête donc à l'obtention d'un degré
d'intrégration plus élevé.
4. Processeur à longueur variable Deux structuresde système sont proposées dans ce qui suit, et on décrira des processeurs pour réaliser des
structures de système respectives.
(1) Première structure de système (figures 30 à ) La figure 30 est un schéma synoptique montrant une première structure de système pour le traitement à longueur variable. Le processeur à longueur variable ayant la structure de système qui est représentée sur la figure peut être appliqué par exemple au processeur à longueur
variable 12 qui est représenté sur la figure 9.
En se référant à la figure 30, on note que la première structure de système comprend une mémoire de table 401 pour le codage à longueur variable, une mémoire de table 402 pour le décodage à longueur variable, une mémoire d'entrée de train de codesà longueur variable 403, une mémoirede sortie de train de codesà longueur variable 404, une mémoire d'entrée 405 pour des données à coder, et une mémoire de sortie 406 pour des données à coder. Le
processeur à longueur variable 121 est connecté aux mémoi-
res 401 à 406 par l'intermédiaire d'une ligne bus BU.
La figure 31 est un organigramme du codage à
longueur variable dans la première structure de système.
On décrira des traitements pour le codage à longueur variable en se référant à la figure 31. A l'étape 431, des données à coder sur lesquelles porte la conversion sont appliquées de la mémoire d'entrée 405 pour les données à coder, à une mémoire interne dans le processeur à longueur variable 121. Les données à coder sont définies ici par la
combinaison de "PLAGE" et de "NIVEAU". Dans la description
qui suit, les données à coder seront représentées par (RN, LV). Les données appliquées à coder sont transmises au générateur d'adresse (non représenté) dans le processeur à longueur variable 121, et un code à longueur variable et sa longueur de code sont obtenus par référence à la
mémoire de table 411 pour le codage à longueur variable.
Le code à longueur variable et la longueur de code sont enregistrés dans la mémoire interne dans le processeur à
longueur variable 121.
A l'étape 433, on détermine si le code à longueur variable qui est obtenu est ou non un code de changement de code (ESCAPE). Lorsqu'un code de changement de code est obtenu, un code à longueur fixe est généré à l'étape 434 en couplant le code de changement de code et les données (RN, LV). Après la génération du code à longueur fixe, la séquence passe à l'étape 435. D'autre part, si le code de changement de code, c'est-à- dire le code "000001" n'est pas obtenu à l'étape 433, la séquence
passe à l'étape 435.
A l'étape 435, un train de codes à longueur variable est généré en couplantdes données de codes à longueur variable. Après la génération du train de codes à longueur variable, le train de codes à longueur variable
est émis à l'étape 436.
La figure 32 est un organigramme du décodage à
longueur variable dans la première structure de système.
On décrira des traitements pour le décodage à longueur
variable en se référant à la figure 32.
En premier lieu, à l'étape 441, un train de codes à longueur variable est appliqué par la mémoire d'entrée de train de codes à longueur variable 403, repré- sentée sur la figure 30, au processeur à longueur variable 121. Le processeur à longueur variable 121 extrait le code
à longueur variable de tête à l'étape 442. Plus précisé-
ment, sur la base de la longueur de code du code à longueur variable immédiatement précédent, la tête du code à longueur variable suivant est reconnue, et des données à 14 bits, c'est-à-dire la longueur de code maximale du code à longueur variable, sont extraites à partir de la tête du
code à longueur variable suivant.
Ensuite, à l'étape 443, un code à longueur variable et la longueur de code, c'est-à-dire les données (RN, LV), sont obtenus par référence à la mémoire de table 402, pour le décodage. Plus précisément, des données à 14 bits, c'est-à-dire la longueur maximale du code à longueur variable, partant de la tête du code à longueur variable obtenu, sont appliquées à un générateur d'adresse, non représenté, et un signal d'adresse pour la référence à la mémoire de table 402 pour le décodage, est généré par le générateur d'adresse. En utilisant le signal d'adresse, on se réfère à la mémoire de table 402 pour le décodage, grâce à quoi on obtient le code à longueur variable et sa
longueur de code.
A l'étape 444, on détermine si le code de changement de code "000001" est obtenu ou non. Si le code de changement de code est obtenu à l'étape 445, 16 bits de données faisant suite au code de changement de code
"000001" sont extraits pour les données décodées (RN, LV).
Après l'opération de l'étape 445, la séquence passe à l'étape 446. Si le code de changement de code n'est pas
obtenu à l'étape 444, la séquence passe à l'étape 446.
A l'étape 446, les données décodées (RN, LV)
sont émises.
On va maintenant décrire la structure d'enregis-
trement de données pour les données enregistrées dans la mémoire de table 401 pour le codage à longueur variable et les données enregistrées dans la mémoire de table 402 pour le décodage à longueur variable, qui sont représentées sur
la figure 30. La figure 33 montre la structure d'enregis-
trement de données de la mémoire de table 401 pour le codage à longueur variable. Comme on peut le voir sur la figure 33, la mémoire de table 401 pour le codage à longueur variable fournit le codage à longueur variable enregistré VC et la longueur de code CL par référence aux données (RN, LV). Les données de plage RN ont une longueur de 6 bits. Les données de niveau LV ont une longueur de 10 bits. Le code à longueur variable a une longueur de 14 bits. Les données de longueur de code CL ont une longueur
de 4 bits.
La figure 34 montre la structure d'enregistre-
ment de données de la mémoire de table 402 pour le déco-
dage à longueur variable. Comme on peut le voir sur la figure 34, la mémoire de table 402 pour le décodage à longueur variable fournit les données de niveau LV, les données de plage RN et les données de longueur de code CL, en se référant au code à longueur variable VC. Les données
de longueur de code CL ont une longueur de 4 bits.
Les données d'entrée VC qui sont utilisées pour se référer à la mémoire de table 402 pour le décodage à longueur variable ont une longueur, en bits, qui est égale
à la longueur de code maximale du code à longueur varia-
ble. Par conséquent, lorsqu'il y a un code qui est plus court que la longueur de code maximale dans les bits
supérieurs des données d'entrée VC, le résultat du déco-
dage des bits supérieurs est émis en priorité, quelle que soit la configuration des bits inférieurs. Par exemple, les mêmes données 416 et 418 seraient obtenues quelles que soient les données d'entrée 415 et 417 représentées sur la figure 34 qui sont utilisées pour la référence à la
mémoire de table 402.
On va maintenant décrire un procédé de généra- tion du train de codes à longueur variable. La figure 35
est un organigramme qui montre le processus pour la géné-
ration du train de codes à longueur variable. On suppose que six registres 421 à 426 sont préparés pour générer un train de codes à longueur variable. On suppose également que le processeur à longueur variable a une largeur de traitement de données de n bits. On suppose ainsi que les
registres 421 à 426 ont chacun une largeur de n bits.
En se référant à la figure 35, on suppose que le registre 421 contient un code à longueur variable VC1 et que le registre 422 contient la longueur de code k du code à longueur variable VC1. On suppose que le registre 523 contient un code à longueur variable VC2 et que le registre 424 contient la longueur de code j du code à longueur variable VC2. On suppose également que le registre 425 contient un code à longueur variable VC3 et que le registre 426 contient la longueur de code m du code
à longueur variable VC3.
Premièrement, le code à longueur variable VC1 qui est contenu dans le registre 421 est appliqué au
registre 426. Le registre 426 enregistre des bits respec-
tifs du code à longueur variable VC1, dans l'ordre, en partant du bit de plus fort poids (ou MSB). En d'autres termes, le registre 426 contient le code à longueur variable VC1 de k bits, à partir du bit de plus fort poids. A l'étape 427, la longueur de code j du code à longueur variable VC2 est comparée avec (n - k). Si j C (n-k), le code à longueur variable VC2 qui est contenu dans le registre 423 est appliqué au registre 426. Le registre 426 contient le code à longueur variable VC2 après le code à longueur variable VC1. On effectue une opération dans le registre 426 en décalant le code à longueur variable VC2 de k bits du côté du bit de moindre poids (ou LSB), et ensuite en accumulant des bits corres- pondants des codes à longueur variable VC1 et VC2, ou en effectuant une opération OU entre ces bits. Il en résulte que le registre 86 contient ensuite des données à (k+j) bits couplées, c'est-à- dire un train de codes à longueur
variable (VC1 + VC2).
A ce stade, il reste toujours de la place pour (n-k-j) bits dans le registre 426, et par conséquent le registre 426 est ensuite utilisé pour contenir le code à
longueur variable VC3.
A l'étape 427, lorsque j >(n-k), sur le code à longueur variable VC2 dans le registre 423, seules les données correspondant à (n-k) bits sont contenues dans le registre 426. Plus précisément, le code à longueur variable VC2 est décalé de k bits et une accumulation ou une opération OU est effectuée entre les codes à longueur variable VC1 et VC2. Il en résulte que le registre 426 est rempli avec k bits du code à longueur variable VC1 et par une partie du code à longueur variable VC2 qui comprend
(n-k) bits.
A l'étape 428, les données qui ont été intro-
duites dans le registre 426 sont émises. Après l'émission des données, le code à longueur variable VC2 ayant (j+k-n)
bits qui reste dans le registre 423 est appliqué au regis-
tre 426. Le registre 426 contient les données appliquées, c'est-à- dire les bits restants du code à longueur variable VC2, dans l'ordre à partir du côté du bit de plus fort poids. De cette manière, le registre 426 est rempli par
des codes à longueur variable qui sont appliqués succes-
sivement, et n bits de données qui ont été introduits sont successivement émis sous la forme du train de codes à longueur variable. Le train de codes à longueur variable est segmenté en effectuant de façon répétée un décalage de données, une opération logique, un comptage de la longueur de code du code à longueur variable et une détermination,
comme dans les processus décrits ci-dessus, pour la géné-
ration du train de codes à longueur variable.
(2) Processeur à longueur variable (circuit spécialisé: figure 36) La figure 36 est un schéma synoptique montrant un premier exemple du processeur à longueur variable. En se référant à la figure 36, on note que le processeur à longueur variable 120 comprend un registre d'adresse 451, une mémoire morte 452 et un circuit de traitement de sortie 453. Ces circuits internes 451, 452 et 453 sont
constitués par des circuits spécialisés.
(3) Processeur à longueur variable (processeur de signal numérique: figure 37) La figure 37 est un schéma synoptique montrant un second exemple du processeur à longueur variable. Le processeur à longueur variable 123 est constitué par un processeur de signal numérique. En se référant à la figure 37, on note que le processeur à longueur variable 123 comprend un circuit d'interface externe 461, une unité arithmétique et logique (UAL) 462, un circuit de décalage 463, une mémoire 464, une mémoire d'instructions 465 et un
circuit de commande 466.
(4) Processeur à longueur variable (microproces-
seur universel: figure 38) La figure 38 est un schéma synoptique montrant un troisième exemple du processeur à longueur variable. Le processeur à longueur variable 124 est constitué par un microprocesseur universel. En se référant à la figure 38, on note que le processeur à longueur variable 124 comprend une unité d'exécution (EU) 471 qui comprend un groupe de registres 473; une unité d'interface de bus 472 qui comprend un groupe de registres à repositionnement 474;
une unité arithmétique et logique 475; un registre d'indi-
cateurs 476; une unité d'interface de bus 477; une file d'attente d'instructions 478; et un circuit de commande/
synchronisation 479.
Les processeurs à longueur variable 122, 123 et 124 qui sont représentés respectivement sur les figures 36, 37 et 38 ont tous la première structure de système qui est représentée sur la figure 30, et les processus de la première structure de système, décrits ci-dessus, sont accomplis. (5) Seconde structure de système (figure 39) La figure 39 est un schéma synoptique montrant une seconde structure de système pour le traitement à
longueur variable. La structure de système qui est repré-
sentée sur la figure 39 est mise en oeuvre par exemple dans l'appareil de compression/décompression d'image qui
est représenté sur la figure 1.
En se référant à la figure 39, on note que la mémoire de travail 7 comprend une mémoire de table 481 pour le codage à longueur variable, et une mémoire de
table 482 pour le décodage à longueur variable. Ces mémoi-
res de table 481 et 482 sont connectées au processeur à
longueur variable 125 par des bus 491 et 492.
La mémoire tampon 6 comprend une mémoire d'entrée 483 pour un train de codes à longueur variable, une mémoire de sortie 484 pour un train de codes à
longueur variable, une mémoire d'entrée 485 pour des don-
nées à coder, et une mémoire de sortie 486 pour des don-
nées à coder. La mémoire d'entrée 483 et la mémoire de sortie 484 pour des trains de codes sont connectées au processeur à longueur variable 125 par l'intermédiaire de bus 493 et 495. La mémoire d'entrée et la mémoire de
sortie pour les trains de codes sont connectées au proces-
seur à longueur variable 125 et au circuit d'interface
d'hôte 1 par un bus 494.
La mémoire d'entrée 485 pour les données à coder et la mémoire de sortie 486 pour les données à coder sont connectées au processeur à longueur variable 125 par l'intermédiaire de bus 496 et 498. La mémoire d'entrée 485 et la mémoire de sortie 486 sont connectées au processeur à longueur variable 125 et à l'unité de traitement de
pixels 3 par le bus 497.
(6) Processeur à longueur variable (figure 40)
La figure 40 est un schéma synoptique du proces-
seur à longueur variable 125 qui est représenté sur la
figure 39. Le processeur à longueur variable 125 repré-
senté sur la figure 40 est donc applicable par exemple au processeur à longueur variable 120 qui est représenté sur
la figure 9.
En se référant à la figure 40, on note que le processeur à longueur variable 125 comprend une unité de commande 501, un générateur d'adresse 502, un circuit
d'interface externe 503, une unité de traitement de don-
nées 504, un circuit de génération/séparation de train de codes à longueur variable 505, un circuit d'interface externe 506, des circuits d'interface externes 507 et une mémoire de données 508. Ces circuits internes 501 à 508 sont connectés par un premier bus interne 509. D'autre part, le circuit d'interface externe 503 et le circuit de
génération/séparation de train de codes à longueur varia-
ble 505 sont connectés par un second bus interne 510.
Le circuit d'interface externe 503 est connecté à un port principal 17 représenté sur la figure 9 par des bus 491 et 492. Le circuit d'interface externe 506 est connecté au port de données de code 20 représenté sur la
figure 9 par des bus 493, 494 et 495.
(i) Générateur d'adresse (figure 41)
La figure 41 est un schéma synoptique du géné-
rateur d'adresse 502 qui est représenté sur la figure 40.
En se référant à la figure 41, on note que le générateur d'adresse 502 comprend un registre de valeur limite positive 502, un registre de valeur limite négative 521, un registre de mode PE 522, un registre de page 523, des registres d'adresse 524 et 525, un décodeur de changement de code 526, un codeur de changement de code 527, un registre de changement de code 528, un registre de données 529, un circuit sélecteur 530, un circuit limiteur 531, un codeur à priorité 532, un circuit de décalage 533, un registre d'adresse externe 534, des registres pipelines 561, 562, 563 et un circuit OU (circuit destiné à produire une somme logique) 564. Les registres 520 à 525 sont connectés à un premier bus interne 509. Le sélecteur 530 est connecté à des premier et second bus internes 509 et 510. Le registre de données 529 et le registre d'adresse externe 534 sont connectés au circuit d'interface externe
503 qui est représenté sur la figure 40.
La figure 42 est un organigramme du codage à longueur variable dans le générateur d'adresse 502 qui est représenté sur la figure 41. On décrira ultérieurement en
détail les traitements qui sont effectués dans le généra-
teur d'adresse 502, et on ne décrira ci-dessous que le
fonctionnement de base.
En se référant à la figure 42, on note qu'à l'étape 601 des données déterminées sont placées dans les
* registres 520 à 523 qui sont représentés sur la figure 41.
A l'étape 602, des données à coder (RN, LV) sont appli-
quées au registre d'adresse 525. Les données à coder (RN,
LV) ont un total de 16 bits, parmi lesquels 10 bits supé-
rieurs définissent les données de niveau LV et les 6 bits inférieurs définissent les données de plage RN. Après l'étape 602, les traitements des étapes 603 à 605 et 606 à
607 sont effectués en parallèle.
A l'étape 603, les données qui sont contenues dans le registre d'adresse 525 sont appliquées au circuit limiteur 531. Le circuit limiteur 531 limite les 10 bits
supérieurs des données appliquées, c'est-à-dire les don-
nées de niveau LV, dans une plage qui est spécifiée par le registre de valeur limite positive 520 et le registre de valeur limite négative 521. Du fait de la limitation, on obtient des données à coder ayant un total de 12 bits, c'est-à-dire 6 bits de données de niveau LV et 6 bits de
données de plage RN.
Les données à coder ayant 12 bits sont appli-
quées au circuit OU 564, une opération OU est effectuée
entre les données appliquées et les données qui provien-
nent du registre de page 523, et des données couplées à 20 bits sont générées (étape 604). Les données générées sont enregistrées dans le registre d'adresse externe 534 (étape 605). A l'étape 606, les données à coder qui se trouvent dans le registre 525 sont appliquées au codeur de changement de code 527 et ce dernier génère un code à longueur fixe. Plus précisément, il y a exécution d'un processus pour générer un code à longueur fixe lorsque les données à coder sont codées sous la forme d'un code à longueur fixe. A l'étape 607, le code à longueur fixe qui est généré est enregistré dans le registre de changement
de code 528.
La figure 43 est un organigramme du décodage à longueur variable dans le générateur d'adresse 502 qui est représenté sur la figure 41. On décrira des processus de
base pour le décodage à longueur variable.
En se référant à la figure 43, on note qu'à l'étape 611 des données déterminées sont placées dans les registres 520 et 523. A l'étape 512, un train de codes à longueur variable à décoder est appliqué au registre d'adresse 524. Le registre 524 conserve 22 bits du train de codes à longueur variable appliqué, en partant du premier bit, dans l'ordre à partir du côté du bit de plus fort poids. Après l'étape 512, les processus des étapes 613 à 616 et des étapes 617 et 618 sont accomplis en parallèle. A l'étape 613, les données conservées dans le registre d'adresse 524, c'est-à-dire le train de codes à longueur variable, sont appliquées au codeur à priorité 532. Le codeur à priorité 532 calcule le nombre SN de "0" continus, à partir du bit de plus fort poids des données
appliquées.
A l'étape 614, les données contenues dans le registre d'adresse 524 sont appliquées au circuit de décalage 533. Sous l'effet du nombre SN qui est calculé à l'étape 61, le circuit de décalage 533 extrait 6 bits de données qui sont au-dessous du (SN+1)-ième bit à partir du bit de plus fort poids des données appliquées. Les données
extraites sont appliquées au circuit OU 564.
A l'étape 615, le circuit OU 564 fournit une somme logique et 20 bits de données sont générés. Les données qui sont générées sont enregistrées dans le
registre d'adresse externe 534 (étape 616).
D'autre part, à l'étape 617, les données conser-
vées dans le registre d'adresse 524 sont appliquées au
décodeur de changement de code 526. Le décodeur de change-
ment de code 526 effectue un décodage, concernant le fait que les données appliquées consistent en un code à
longueur fixe, en utilisant le code de changement de code.
Les données décodées sont enregistrées dans le registre de
changement de code 528 (étape 618).
(ii) Circuit de génération/séparation de train de codes à longueur variable (figure 44) La figure 44 est un schéma synoptique du circuit de génération/séparation de train de codes à longueur variable 505 qui est représenté sur la figure 40. En se référant à la figure 44, on note que le circuit de
génération/séparation de train de codes à longueur varia-
ble 505 comprend un registre de bus 536, un circuit de décalage circulaire (ou BSFT) 537, un additionneur 538, un registre de longueur de code 539, un registre de sortie de code 540, un registre d'entrée de code 541, des circuits PEPS 542 et 543 et une unité de commande 544. Le registre
de bus 536 est connecté au premier bus interne 509.
L'additionneur 538 est connecté au second bus interne 510.
Les circuits PEPS 502 et 503 sont connectés à un circuit d'interface externe 506 (que l'on décrira ultérieurement) représenté sur la figure 47, par l'intermédiaire de lignes
de signal 42a à 43c.
La figure 45 est un organigramme du codage à longueur variable dans le circuit de génération/séparation
de train de codes à longueur variable 505 qui est repré-
senté sur la figure 44. On décrira le fonctionnement de base du codage à longueur variable en se référant à la
figure 45.
A l'étape 621, un code à longueur variable VC est appliqué au registre de bus 536 par l'intermédiaire du bus interne 509. Les données de longueur de code CL du
code à longueur variable VC sont appliquées à l'addition-
neur 538 par l'intermédiaire du second bus interne 510.
A l'étape 622, le circuit de décalage circulaire 537 couple un ancien code à longueur variable VC', qui a déjà été appliqué en entrée, avec le nouveau code à longueur variable VC qui est appliqué au moment présent, et il génère un train de codes à longueur variable VCT. A l'étape 623, l'additionneur 538 additionne la longueur de code CL du nouveau code à longueur variable à la somme de
longueurs de code CLS qui est la somme accumulée.
A l'étape 624, on détermine si la somme de longueurs de code CLS dépasse ou non 8 bits. Si CLS ' 8,
la séquence passe à l'étape 625.
A l'étape 625, 8 bits de données à partir du premier bit du train de codes à longueur variable VCT sont appliqués au circuit PEPS 542 et sont enregistrés dans celui-ci. A l'étape 626, une nouvelle longueur de code est
calculée par une soustraction, c'est-à-dire CLS = CLS - 8.
Après l'étape 626, la séquence retourne à l'étape 624. A l'étape 624, si CLS <8, cette opération de
codage est terminée.
La figure 46 est un organigramme du décodage à longueur variable dans le circuit de génération/séparation
de train de codes à longueur variable 505 qui est repré-
senté sur la figure 44. En se référant à la figure 46, on
note qu'à l'étape 631 un train de codes à longueur varia-
ble VCT est appliqué sur le premier bus interne 509. A l'étape 632, la longueur de code CL du premier code à longueur variable VC qui est inclus dans le train de codes à longueur variable VCT est appliquée à l'additionneur 538 par l'intermédiaire du second bus interne 510. A l'étape 633, l'additionneur 538 additionne la nouvelle longueur de
code CL à la somme des anciennes longueurs de code CLS.
A l'étape 634, on détermine si la somme de longueurs de code CLS dépasse ou non 8 bits. Si CLS > 8,
la séquence passe à l'étape 635.
A l'étape 635, un mot de données est appliqué à partir de la mémoire d'entrée de train de codes à longueur variable 483, et ce mot est couplé au train de codes à longueur variable présent. A l'étape 636, les 8 premiers bits de données sont éliminés du train de codes à longueur variable qui est couplé. A l'étape 637, une nouvelle somme
de longueurs de code CLS est obtenue en effectuant l'opé-
ration CLS = CLS - 8. Après l'étape 637, le processus
retourne à l'étape 634.
A l'étape 634, lorsque CLS <8, le processus de
décodage est terminé.
(iii) Circuit d'interface externe 606 (figure 47) La figure 47 est un schéma synoptique du circuit d'interface externe 506 qui est représenté sur la figure 40. En se référant à la figure 47, on note que le circuit d'interface externe 506 comprend une unité de commande 505 ayant la fonction d'accès direct en mémoire (DMA), des compteurs d'accès de lecture 546 et 549, des compteurs d'accès d'écriture 547 et 548, des soustracteurs 565 et
566, des comparateurs 550 et 558, des registres de géné-
ration d'indicateurs 551 à 554, un registre de données d'écriture 556, un registre de données de lecture 557 et
un sélecteur 555.
L'unité de commande 545 est connectée aux cir-
cuits PEPS 542 et 543 représentés sur la figure 44 par
l'intermédiaire de lignes de signal 42b, 42c, 43b et 43c.
Le registre 556 est connecté au circuit PEPS 542 repré-
senté sur la figure 44 par la ligne de signal 42a. Le registre 557 est connecté au circuit PEPS 543 représenté sur la figure 44 par la ligne de signal 43a. Les compteurs 546 et 547 sont connectés à la mémoire d'entrée de train de codes à longueur variable 438 et à la mémoire de sortie de train de codes à longueur variable 484, représentées
sur la figure 39, par la ligne de signal 493. Les comp-
teurs 548 et 549 sont connectés à la mémoire d'entrée de train de codes à longueur variable 438, à la mémoire de sortie de train de codes à longueur variable 484 et au circuit d'interface d'hte 1 par l'intermédiaire de la ligne de signal 494. Le sélecteur 555 est connecté à la mémoire d'entrée de train de codes à longueur variable 483 et à la mémoire de sortie de train de codes à longueur variable 484, représentées sur la figure 39, par la ligne de signal
495.
Le compteur 546 compte le nombre d'accès de lecture à la mémoire d'entrée de train de codes à longueur variable 483 qui est représentée sur la figure 39. Le compteur 547 compte le nombre d'accès d'écriture à la mémoire de sortie de train de codes à longueur variable 484 qui est représentée sur la figure 39. Le compteur 548 compte le nombre d'accès d'écriture à la mémoire d'entrée de train de codes à longueur variable 483 à partir d'autres circuits. Le compteur 549 compte le nombre d'accès de lecture à la mémoire de sortie de train de
codes à longueur variable 484 à partir d'autres circuits.
Le registre d'indicateur 551 produit un indica-
teur d'état plein qui indique l'état plein de la mémoire d'entrée de train de codes à longueur variable 483, et il conserve l'indicateur. Le registre 552 produit et conserve un indicateur d'état vide qui indiquel'état vide de la mémoire d'entrée de train de codes à longueur variable 483. Le registre 553 produit et conserve un indicateur d'état plein qui indique l'état plein de la mémoire de
sortie de train de codes à longueur variable 484. Le comp-
teur 554 produit et conserve un indicateur d'état vide qui indique l'état vide de la mémoire de sortie de train de
codes à longueur variable 484.
Le comparateur 550 produit un indicateur d'état plein FF1 qui indique l'état plein de la mémoire d'entrée
de train de codes à longueur variable 483, ou un indica-
teur d'état vide EF1 qui indique l'état vide de cette mémoire. Le comparateur 558 produit un indicateur d'état plein FF2 qui indique l'état plein de la mémoire de sortie de train de codes à longueur variable 84, ou un indicateur
d'état vide EF2 qui indique l'état vide de cette mémoire.
La figure 48 est un organigramme du codage à longueur variable dans le circuit d'interface externe 506
qui est représenté sur la figure 47. On décrira le fonc-
tionnement de base du codage à longueur variable en se
référant à la figure 48.
A l'étape 641, on détecte si la mémoire de sortie de train de codes à longueur variable 484 est vide ou non. En d'autres termes, on détecte s'il existe ou non
un indicateur d'état vide EF2 qui est fourni par le compa-
rateur 558. Si l'indicateur d'état vide EF2 n'est pas détecté, la séquence passe à l'étape 642. Si l'indicateur
d'état vide EF2 est détecté, le processus est terminé.
A l'étape 642, on détecte si la mémoire de sortie de train de codes à longueur variable 484 est
pleine ou non. En d'autres termes, on détecte si le compa-
rateur 558 fournit ou non un indicateur d'état plein FF2.
Si l'indicateur d'état plein FF2 n'est pas détecté, la séquence passe à l'étape 643. Lorsque l'indicateur d'état
plein FF2 est détecté, le processus est terminé.
A l'étape 643, un mot des données enregistrées dans la mémoire de sortie de train de codes à longueur variable 484 est lu et enregistré dans la mémoire de sortie de train de codes à longueur variable externe. A l'étape 644, le contenu du compteur d'accès d'écriture 547 est incrémenté. Après l'étape 644, la séquence retourne à
l'étape 641.
La figure 49 est un organigramme du décodage à longueur variable dans le circuit d'interface externe 506 qui est représenté sur la figure 47. En se référant à la figure 49, on note qu'à l'étape S651 on détecte si la mémoire d'entrée de train de codes à longueur variable 483 est pleine ou non. En d'autres termes, on détecte si le comparateur 550 fournit ou non un indicateur d'état plein FF1. Si l'indicateur d'état plein FF1 n'est pas détecté, la séquence passe à l'étape 652. Si l'indicateur d'état
plein FF1 est détecté, le processus est terminé.
A l'étape 652, on détecte si la mémoire d'entrée
de train de codes à longueur variable 483 est vide ou non.
En d'autres termes, on détecte si le comparateur 550
produit ou non un indicateur d'état vide EF1. Si l'indica-
teur d'état vide EF1 n'est pas détecté, la séquence passe à l'étape 653. Si l'indicateur d'état vide EF1 est
détecté, le processus est terminé.
A l'étape 653, un mot des données enregistrées dans la mémoire d'entrée de train de codes à longueur variable externe est lu et enregistré dans la mémoire d'entrée de train de codes à longueur variable 483. A l'étape 654, le compteur d'accès de lecture 446 pour la mémoire d'entrée de train de codes à longueur variable externe est incrémenté. Après l'étape 654, la séquence
retourne à l'étape 651.
(iv) Description détaillée du codage/décodage à
longueur variable On va maintenant décrire de façon plus détaillée le codage/décodage à longueur variable dans le processeur à longueur variable 125 qui est représenté sur la figure 39. La figure 50 est une table de code à longueur variable qui est utilisée dans des processus qui sont accomplis dans le processeur à longueur variable 125 qui est représenté sur la figure 39. En se référant à la figure 50, on note que quatre colonnes du côté gauche de la table de code à longueur variable correspondent à la
table de code à longueur variable conforme à la recomman-
dation H.261 du CCITT. Plus précisément, les données de plage (longueur de plage zéro) RN, les données de niveau (facteur) LV, la longueur de code CL et le code à longueur variable VC qui sont spécifiés dans la recommandation H.261 sont indiqués dans les quatre colonnes du côté
gauche. D'autre part, trois colonnes du côté droit repré-
sentent une table de code à longueur variable qui est groupée. Plus précisément, conformément au nombre de "0" continus à partir du premier bit du code à longueur variable VC, le code à longueur variable VC et la longueur de code CL sont divisés en un total de neuf groupes GRO à GR8. Par exemple, le groupe GRO contient un code à longueur variable VC dont le premier bit n'est pas "0". Le groupe GR1 contient un code à longueur variable VC dans lequel seul le premier bit est "0". Le groupe GR2 contient un code à longueur variable VC dans lequel les deux premiers bits sont "0". De façon similaire, le groupe GR8 contient un code à longueur variable VC qui comprend 8 "0" à partir du premier bit du code à longueur variable VC. Les codes à longueur variable VC groupés et les longueurs de code CL sont utilisés dans les opérations accomplies dans le processeur à longueur variable 125, que l'on
décrira ultérieurement.
Pour commencer, on décrira le codage à longueur variable. Fondamentalement, le codage à longueur variable est accompli conformément à l'organigramme représenté sur la figure 31, que l'on a déjà décrit. Premièrement, des données à coder, c'est-à-dire des données (RN, LV) sont
introduites dans la mémoire de données 538 dans le proces-
seur variable 125 représenté sur la figure 40, à partir de la mémoire d'entrée 425 pour des données à coder, qui est représentée sur la figure 39. Les données d'entrée sont appliquées au générateur d'adresse 502 qui génère une adresse de mémoire de table pour la conversion de codage à longueur variable. En parallèle avec la génération de l'adresse de table, le décodeur de changement de code 526 qui est représenté sur la figure 41 génère un code à
longueur fixe en utilisant un code de changement de code.
Le code à longueur fixe qui est généré est appliqué au registre de changement de code 528 et il est conservé dans ce dernier. On décrira ultérieurement de façon plus
détaillée le fonctionnement du générateur d'adresse 502.
En utilisant l'adresse de table qui est générée par le générateur d'adresse 502, on fait référence à la mémoire de table de codage à longueur variable 481 et on lit le code à longueur variable VC, la longueur de code CL
et l'indicateur de changement de code ESF qui sont enre-
gistrés. Le code à longueur variable VC et la longueur de code CL sont appliqués au registre de données 529 qui est représenté sur la figure 41 et ils sont conservés dans ce dernier. Après la fin de l'accès à la mémoire de table 481 pour le codage à longueur variable, les données du registre de changement de code 528 ou du registre de don- nées 529 sont fournies au circuit de génération/séparation
de codes à longueur variable 505. La sélection est effec-
tuée par le circuit sélecteur 530. Plus précisément, parmi les données qui sont conservées dans les deux registres
528 et 529, le sélecteur 530 émet sélectivement les don-
nées de l'un des registres, sous la dépendance du bit de
plus fort poids (MSB).
Plus précisément, comme représenté sur la figure 51, la mémoire de table 481 pour le codage à longueur variable conserve un indicateur de changement de code ESF qui indique si les données à coder se trouvent ou non dans la plage applicable du code de changement de code, en ce qui concerne le bit de plus fort poids. Par conséquent,
si le bit de plus fort poids des données qui sont appli-
quées au registre de données 529, c'est-à-dire l'indica-
teur ESF, indique l'application du code de changement de code, le sélecteur 530 émet sélectivement les données qui ont été conservées dans le registre de données 529. Il en résulte qu'en se référant seulement à la mémoire de table 481 pour le codage à longueur variable, on peut déterminer
s'il est nécessaire ou non d'appliquer le code de change-
ment de code aux données à coder, et une détermination conformément à un programme n'est pas nécessaire dans ce but. De plus, dans le générateur d'adresse 502 qui est représenté sur la figure 41, l'accès à la mémoire de
table 481 pour le codage à longueur variable et la généra-
tion du code à longueur fixe en utilisant le code de changement de code peuvent être accomplis en parallèle, c'est-à-dire simultanément. Par conséquent, on peut éviter une augmentation du temps de traitement résultant de l'accès à la mémoire de table 481 pour le codage à
longueur variable.
Le code à longueur variable VC qui est obtenu par référence à la mémoire de table 481 pour le codage à
longueur variable est transféré vers le circuit de généra-
tion/séparation de train de codes à longueur variable 505 par l'intermédiaire du premier bus interne 509 qui est représenté sur la figure 41. D'autre part, sa longueur de code CL est transférée vers le circuit de génération/ séparation de train de codes à longueur variable 505 par le second bus interne 510. Le circuit de génération/ séparation de train de codes à longueur variable 505 génère un train de codes à longueur variable VCT à partir du code à longueur variable VC qui est appliqué et de sa longueur de code CL. On décrira ultérieurement l'opération de génération du train de codes à longueur variable. Le train de codes à longueur variable VCT qui est généré est appliqué à la mémoire de sortie de train de codes à longueur variable 484 représentée sur la figure 39, par l'intermédiaire du circuit d'interface externe 506. De
cette manière, le codage à longueur variable est achevé.
On va maintenant décrire le décodage à longueur variable. Premièrement, un train de codes à longueur variable est appliqué au circuit de génération/séparation de train de codes à longueur variable 505 à partir de la mémoire d'entrée de train de codes à longueur variable 483 représentée sur la figure 39, par l'intermédiaire du circuit d'interface externe 506. Le circuit de génération/ séparation de train de codes à longueur variable 505 effectue la segmentation d'un code à longueur variable sur lequel porte le décodage, à partir du train de codes à longueur variable appliqué, et il décale les bits du code à longueur variable vers le côté du bit de plus fort poids. Le code à longueur variable décalé est transféré vers le générateur d'adresse 502 par l'intermédiaire du premier bus interne 509. On présentera ultérieurement une
description détaillée du circuit de génération/séparation
de train de codes à longueur variable 505.
Le générateur d'adresse 502 génère une adresse de table pour une référence à la mémoire de table 482 pour le décodage à longueur variable, qui est représentée sur la figure 39, sous l'effet du code à longueur variable qui est appliqué. L'adresse de table qui est générée est appliquée à la mémoire de table 482 pour le décodage à
longueur variable, par l'intermédiaire du circuit d'inter-
face externe 503. Il en résulte que le code à longueur variable décodé, les données de longueur de code et l'indicateur de changement de code ESF sont conservés dans le registre de données 529 qui est représenté sur la figure 41. A ce moment, en parallèle avec ce processus, un code à longueur variable est appliqué au codeur de code de changement de code, et le décodage du code à longueur fixe utilisant le code de changement de code est accompli. Des données indiquant le résultat sont appliquées au registre de changement de code 528 et elles sont conservées dans ce dernier. Comme dans le codage à longueur variable, la mémoire de table 482 pour le décodage variable contient un indicateur de changement de code ESF. Par conséquent, à la fin de l'accès à la mémoire de table 482, l'indicateur de changement de code ESF est contenu dans le bit de plus fort poids (MSB) du registre de données 529. Sous l'effet de l'indicateur de changement de code ESF, les données qui sont contenues dans le registre de changement de code 528 ou celles qui sont contenues dans le registre de données 529 sont émises sélectivement par l'intermédiaire du sélecteur 530. Les données émises sont appliquées à la mémoire de données 508 qui est représentée sur la figure
40.
D'autre part, les données de longueur de code sont transférées vers le circuit de génération/séparation
de train de codes à longueur variable 505 par l'intermé-
diaire du second bus interne 510. Le circuit de généra-
tion/séparation de train de codes à longueur variable 505 effectue la segmentation du code à longueur variable suivant en utilisant les données de longueur de code qui sont appliquées. Les données indiquant le résultat du décodage, qui sont appliquées à la mémoire de données 508, sont émises vers la mémoire de sortie 486 pour les données à coder, par l'intermédiaire du circuit d'interface externe 506. Le décodage à longueur variable est ainsi achevé. On va maintenant décrire de façon plus détaillée le fonctionnement du circuit de génération d'adresse 502
qui est représenté sur la figure 41.
La figure 52 montre un format des données à coder en codage à longueur variable. En se référant à la figure 52, on note que les données à coder comprennent des données de niveau LV à 10 bits et des données de plage RN à 6 bits. Les données à coder ont donc une longueur totale
de 16 bits.
En considérant maintenant les quatre colonnes du côté gauche de la table de code à longueur variable qui est représentée sur la figure 50, on note que les données de niveau LV (qui sont définies comme des données de valeur absolue dans la recommandation H.261), ont une
valeur qui est comprise dans la plage de -15 à +15.
Conformément à la recommandation H.261, les données qui se trouvent à l'extérieur de cette plage sont représentées dans un code de changement de code (ESCAPE). Ceci signifie que le nombre de bits nécessaires pour représenter les données de niveau LV est de 5 bits, et qu'une combinaison de données de plage et de données de niveau peut être représentée par un total de 11 bits, en association avec
les données de niveau RN.
Les données de niveau LV qui ne sont pas infé-
rieures à +15 et ne sont pas supérieures à -15 sont respectivement limitées à +16 et -16, et par conséquent des adresses comprenant des données de niveau +16 et -16
désignent des codes de changement de code. Avec ce traite-
ment, un total de 11 bits devient suffisant pour l'adresse permettant d'accéder à la mémoire de table pour le codage à longueur variable, et par conséquent la mémoire de table pour le codage à longueur variable peut être réalisée dans
la plage de 2K mots d'espace d'adresse.
De cette manière, le générateur d'adresse 502 peut effectuer la génération d'adresse en travaillant avec une seule voie. Par conséquent, le limiteur 531 qui est représenté sur la figure 41 limite dans la plage de +16 à -16 10 bits de données de niveau LV des données qui sont conservées dans le registre d'adresse 525. Il en résulte qu'une valeur positive +16 est fixée dans le registre de valeur limite positive 520, tandis qu'une valeur négative -16 est fixée dans le registre de valeur limite négative 521 qui sont représentés sur la figure 41. Le limiteur 531 effectue l'opération de limitation mentionnée ci-dessus en se référant aux données qui sont conservées dans les
registres 520 et 521.
Sous l'effet de la limitation des données de
niveau, on obtient un total de 11 bits de données combi-
nées, et en utilisant ces données on génère une adresse pour faire référence à la mémoire de table 481 pour le
codage à longueur variable.
On va maintenant décrire le décodage dans le circuit de génération d'adresse 502 qui est représenté sur
la figure 41.
Comme représenté dans la table de code à longueur variable de la figure 50, les codes à longueur variable VC sont divisés en un total de neuf groupes GR0 à GR8. Dans chaque groupe, 6 bits sont nécessaires pour définir chaque code à longueur variable. Par conséquent, pour réaliser une table de décodage pour le code à longueur variable, 4 bits pour désigner un total de 9 groupes et 6 bits pour désigner un code dans chaque groupe sont nécessaires. Plus précisément, un total de 10 bits est nécessaire à titre d'adresse relative à la table pour le décodage du code à longueur variable. Le circuit de génération d'adresse 502 qui est représenté sur la figure 41 peut générer 10 bits d'adresse de table par une seule voie. Plus précisément, le code à longueur variable à décoder est appliqué au générateur d'adresse 524 et il est enregistré dans celui-ci. Les données qui sont conservées par le générateur d'adresse 524 sont appliquées au codeur à priorité 532, et le nombre de "0" continus à partir du
premier bit des données appliquées est compté. Par consé-
quent, on détermine celui des groupes GR0 à GR8 repré-
sentés sur la figure 50 auxquels les données appartien-
nent, et le numéro du groupe est représenté par 4 bits de données. D'autre part, 6 bits de données qui suivent les "0" continus sont segmentés. Les données de numéro de
groupe à 4 bits et les données segmentées à 6 bits consti-
tuent une adresse de table d'un total de 10 bits, et l'adresse de table est appliquée au registre d'adresse
externe 534 et elle est conservée dans ce dernier.
De cette manière, en utilisant le générateur d'adresse 502 qui est représenté sur la figure 41, on peut réduire l'espace d'adresse pour la mémoire de table 481 pour le codage à longueur variable, et pour la mémoire de table 482 pour le décodage à longueur variable, et de plus
ces processus peuvent être effectués par une série d'opé-
rations. On va maintenant décrire l'opération de codage dans le circuit de génération/séparation de train de codes à longueur variable 505 qui est représenté sur la figure
44. Le registre de sortie de code 540 comprend des regis-
tres à décalage parallèles 40a à 40e, comprenant chacun 8 bits. Dans l'état initial, le registre de sortie de code 540, le registre de longueur de code 539 et le circuit PEPS 542 contiennent chacun des données "0". Le circuit de décalage circulaire 537 ayant 40 bits (40b) décale les données d'entrée vers le côté droit, conformément à la longueur de code qui est conservée dans le registre de
longueur de code 539.
A titre d'exemple, des données "001010" sont appliquées au registre de bus 536 à titre de premier code à longueur variable codé, tandis que la longueur de code "6" est appliquée à un additionneur 538 à 5 bits. A ce stade, du fait que la valeur dans le registre de longueur
de code 539 est "0", les données contenues dans le regis-
tre de bus 536 traversent sans changement le circuit de décalage circulaire 537, et elles sont appliquées au registre de longueur de code 539. Dans l'additionneur 538, les données d'entrée "6" sont additionnées aux données "0" présentes dans le registre de longueur de code 539, et les données "6" résultantes sont décrites dans le registre de
longueur de code 539.
Ensuite, pour un code à longueur variable codé
suivant, des données "00001000" sont appliquées au regis-
tre de bus 536, et une longueur de code "8" est appliquée à l'additionneur 538. Du fait que les données dans le registre de longueur de code 539 sont égales à "6", les données du registre de bus 536 sont décalées de 6 bits vers le côté droit par le circuit de décalage circulaire 537, et les données décalées sont appliquées au registre de longueur de code 539. Par conséquent, les données qui sont conservées dans le registre de longueur de code 539 comprennent le premier code à longueur variable dans les 6 premiers bits, et elles comprennent le code à longueur
variable suivant au 7-ième bit et aux bits suivants.
L'additionneur 38 additionne les données d'entrée "8" aux données "6" dans le registre de longueur de code 539, et il applique le résultat de l'addition, c'est-à-dire "14" au registre de longueur de code 539. A ce stade, du fait que le registre 40a dans le registre de sortie de code 540 est rempli avec le code à longueur variable "00101000", les données présentes dans le registre de données 40a sont appliquées au circuit PEPS 542. Ensuite, les données présentes dans le registre 40b
sont transférées vers le registre 40a. En outre, les don-
nées présentes dans le registre 40c sont transférées vers le registre 40b. Des opérations similaires sont répétées et les données du dernier registre 40e sont transférées vers le registre 40d. Après ce processus de transfert, la longueur de code des données appliquées au circuit PEPS 542, c'est-à-dire "8", est soustraite des données dans le registre de longueur de code 539. Plus précisément, dans cet exemple, du fait que le registre 539 contient les données "14", le résultat de la soustraction sera "6"
(= 14 - 8).
Il en résulte que les données dans le registre de longueur de code 539 indiquent maintenant le nombre de
bits du code à longueur variable "0011000" qui est enre-
gistré dans le registre 40a, et lorsque le code à longueur variable suivant est appliqué en entrée, le code à longueur variable d'entrée est décalé vers le côté droit du nombre de bits du code à longueur variable qui est enregistré dans le registre 40a. Ainsi, à la suite du code à longueur variable qui a déjà été enregistré, le code à longueur variable suivant est enregistré dans le registre de sortie de code 40. De cette manière, en utilisant le code à longueur variable et sa longueur de code, on peut
générer un train de codes à longueur variable sans effec-
tuer une détermination au moyen d'un logiciel.
On va maintenant décrire l'opération de décodage dans le circuit de génération/séparation de train de codes à longueur variable. Comme le registre de sortie de code
540, le registre d'entrée de code 541 comprend des regis-
tres à décalage parallèle 41a à 41e ayant 8 bits. Dans l'état initial, le registre d'entrée de code 541 et le registre de longueur de code 539 contiennent tous deux des données "O". Le circuit de décalage circulaire 537 ayant bits, décale les données d'entrée vers le côté gauche,
sur une distance correspondant à la valeur qui est conte-
nue dans le registre de longueur de code 539.
Premièrement, le premier train de codes à longueur variable est introduit successivement dans les registres 41a à 41e par l'intermédiaire du circuit PEPS
543. Lorsqu'un code à longueur variable doit être segmen-
té, les données contenues dans le registre d'entrée de code 541 sont appliquées au registre de bus 536 par l'intermédiaire du circuit de décalage circulaire 537. A ce stade, du fait que les données dans le registre de longueur de code 539 sont "O", les données présentes dans
le registre d'entrée de code 541 traversent sans change-
ment le circuit de décalage circulaire 537, et elles sont appliquées au registre de bus 536. En décodant les données qui sont contenues dans le registre de bus 536, on obtient les données "6" pour la longueur de code correspondante, et les données de longueur de code sont appliquées à l'additionneur 538. L'additionneur 538 additionne les données d'entrée "6" aux données "0" dans le registre de longueur de code 539, et les données "6" indiquant le résultat sont appliquées au registre de longueur de code
539 et elles sont conservées dans ce dernier.
Lorsque le code à longueur variable suivant doit être segmenté, les données présentes dans le registre d'entrée de code 541 sont appliquées au registre de bus
536 en passant par le circuit de décalage circulaire 537.
Du fait que les données dans le registre de longueur de code 539 sont "6", les données présentes dans le registre d'entrée de code 541 sont décalées de 6 bits vers la gauche par le circuit de décalage circulaire 537, et les données décalées sont appliquées au registre de bus 536. Plus précisément, à la suite du code à longueur variable déjà décodé, le code à longueur variable suivant est obtenu dans une position décalée vers le côté gauche. Sous l'effet du décodage des données dans le registre de bus 536, on obtient les données "8" pour leur longueur de code, et les données de longueur de code sont appliquées à
l'additionneur 538.
L'additionneur 538 additionne les données d'entrée "8" aux données "6" dans le registre de longueur de code 539, et il applique au registre de longueur de code 539 les données "14" qui indiquent le résultat. A ce stade, le contenu du registre 41a a été entièrement décodé, et par conséquent les données présentes dans le
registre 40b sont transférées vers le registre 40a.
Ensuite, les données présentes dans le registre 40c sont
transférées vers le registre 40b. En répétant des opéra-
tions similaires, les données présentes dans le registre
e sont finalement transférées vers le registre 40d.
Le train de codes à longueur variable suivant est appliqué au registre vide 40e à partir du circuit PEPS 543. Du fait que le décodage de 8 bits a été achevé, les données présentes dans le registre de longueur de code 539 sont "6". Par conséquent, lorsque le code à longueur variable suivant est segmenté, le code à longueur variable suivant qui suit le code à longueur variable déjà décodé,
est obtenu dans une position décalée vers le côté gauche.
De cette manière, en utilisant la longueur de code du code à longueur variable qui est décodé, le code à longueur variable suivant qui doit être décodé peut être segmenté en étant décalé vers le côté gauche à partir du train de codes à longueur variable, sans effectuer une
détermination avec un logiciel.
On va maintenant décrire le codage à longueur variable dans le circuit d'interface externe 506 qui est
représenté sur la figure 47.
En se référant à la figure 47, on note que l'unité de commande 545, ayant une fonction d'accès direct en mémoire (DMA), commande des circuits internes dans le circuit d'interface externe 506. Les compteurs 548 et 549 reçoivent un signal d'activation pour des opérations d'accès (lecture et écriture) à la mémoire d'entrée de train de codes à longueur variable 483 et à la mémoire de sortie de train de codes à longueur variable 484, à partir du circuit d'interface d'hôte 1, par l'intermédiaire de la ligne de signal 494. Par conséquent, le compteur 548 compte le nombre d'accès d'écriture que l'ordinateur hôte effectue dans la mémoire d'entrée de train de codes à longueur variable 483. D'autre part, le compteur 548 compte le nombre d'accès de lecture à la mémoire d'entrée de train decodes à longueur variable 483, à partir du circuit d'interface externe 506. Le compteur 547 compte le nombre d'accès d'écriture à la mémoire de sortie de train de codes à longueur variable 484 à partir du circuit
d'interface externe 506.
Les données de sortie des compteurs 546 et 548
sont appliquées au soustracteur 565 dans lequel une sous-
traction est effectuée. Les données qui indiquent le résultat de la soustraction représentent donc le nombre de mots des données enregistrées dans la mémoire d'entrée de train de codes à longueur variable 483. Les données émises par le soustracteur 565 sont appliquées au comparateur 550. Le comparateur 550 reçoit les données de nombre de mots à l'état plein de la mémoire d'entrée de train de
* codes à longueur variable 483. D'autre part, le compara-
teur 550 reçoit les données de nombre de mots indiquant l'état vide de la mémoire d'entrée de train de codes à longueur variable 483. Le comparateur 550 compare les données de sortie du soustracteur 565 avec les données qui proviennent des registres 551 et 552, et il produit les
indicateurs FF1 et EF1.
Si les données de sortie du soustracteur 565, c'est-à-dire les données de différence, sont égales au nombre de mots indiquant l'état plein, qui est enregistré dans le registre 551, le comparateur 550 produit un indicateur d'état plein FF1. D'autre part, si les données de sortie du soustracteur 565 sont égales au nombre de mots indiquant l'état vide, qui est conservé dans le registre 552, le comparateur 550 produit l'indicateur d'état vide EF1. De façon similaire, dans la mémoire de sortie de train de codes à longueur variable 484 qui est
représentée sur la figure 39, l'opération qui est effec-
tuée est la même que dans la mémoire d'entrée 483, et le comparateur 558 émet l'indicateur d'état plein FF2 ou
l'indicateur d'état vide EF2.
L'unité de commande 545 commande le transfert de données entre les circuits PEPS 542 et 543, la mémoire de sortie de train de codes à longueur variable 484 et la mémoire d'entrée de train de codes à longueur variable 483, sur la base du signal de sortie d'indicateur 42b provenant du circuit PEPS 542 représenté sur la figure 44, du signal de sortie d'indicateur 43b provenant du circuit PEPS 543, ainsi que des indicateurs FF1, EF1, FF2 et EF2 provenant des comparateurs 550 et 558. La commande du
transfert de données est effectuée de la manière suivante.
Lorsque le codage à longueur variable est effec-
tué, des données sont transférées entre le circuit PEPS 542 et la mémoire de sortie de train de codes à longueur variable 484. A ce moment, dans le circuit de génération/ séparation de train de codes à longueur variable 505, le transfert de données est commandé de façon à ne pas placer le circuit PEPS 542 dans l'état de manque de données, c'est-à-dire de façon à empêcher une opération de lecture sans l'enregistrement de données. De plus, les données sont transférées de façon à éviter un excès de données dans la mémoire de sortie de train de codes à longueur
variable 484, c'est-à-dire de façon à empêcher une opéra-
tion d'écriture dans la mémoire de sortie de train de codes à longueur variable 484 lorsque des données valides
sont déjà enregistrées dans cette mémoire.
Dans le décodage à longueur variable, des don-
nées sont transférées entre le circuit PEPS 543 et la mémoire d'entrée de train de codes à longueur variable 483. A ce moment, le transfert de données est commandé de façon à éviter un excès de données dans le circuit PEPS 543 et à éviter un manque de données dans la mémoire de
sortie de train de codes à longueur variable 484.
5. Mémoire tampon d'intervalle d'image (1) Structure de système (figures 53 et 54) La figure 53 montre une structure de base d'un réseau de cellules de mémoire dans la mémoire tampon d'intervalle d'image. La mémoire tampon d'intervalle d'image 51 qui est représentée sur la figure 1 a par
exemple la structure de la figure 53.
En se référant à la figure 53, on note que la mémoire tampon d'intervalle d'image 54 (ou 55) comprend un total de 32 plans de réseaux de cellules de mémoire 701 à 732 (ou 801 à 832). Lorsqu'une adresse de ligne RA et une adresse de colonne CA sont appliquées, un bit de données est lu (ou écrit) dans chacun des réseaux de cellules de mémoire 70 1 à 732. Par exemple, lorsqu'une adresse de ligne RA1 et une adresse de colonne CAl sont appliquées, 32 bits de données au total sont lus dans les réseaux de
cellules de mémoire 701 à 732.
De façon générale, 8 bits de données sont néces-
saires pour représenter un pixel. Par conséquent, le total de 32 bits de données permet de représenter quatre pixels PC1 à PC4 (voir la figure 53). En d'autres termes, en appliquant une adresse de ligne RA et une adresse de colonne CA, on peut manipuler des données pour quatre
pixels PC1 à PC4.
La figure 54 est un schéma synoptique de la mémoire tampon d'intervalle d'image. En se référant à la figure 54, on note que la mémoire tampon d'intervalle d'image 54 (ou 55) comprend un circuit de commande 741 et des réseaux de cellules de mémoire 701 à 732 (ou 801 à 832). Dans le cas de mémoires vives dynamique synchrones, chacun des réseaux de cellules de mémoire 701 à 732 est divisé en deux blocs BK1 et BK2. Un amplificateur de lecture 742 et un amplificateur-séparateur d'entrée/sortie 743 sont incorporés en correspondance avec chacun des
réseaux de cellules de mémoire 701 à 732.
Par conséquent, 32 bits de données PD1 à PD32 sont écrits et lus dans les réseaux de cellules de mémoire
701 à 732.
Le circuit de commande 741 reçoit un signal d'adresse ADR et un signal de commande Sc, et il génère un signal de commande pour accéder aux réseaux de cellules de
mémoire 701 à 732.
(2) Un exemple employant des mémoires vives dynamiques (premier exemple: figure 55) La figure 55 montre une structure de système d'une mémoire tampon d'intervalle d'image 54 qui utilise des mémoires vives dynamiques (ou DRAM). En se référant à la figure 55, on note que la mémoire tampon d'intervalle d'image 54 comprend un réseau de cellules de mémoire DRAM 701 à 732, comprenant un total de 32 plans. La mémoire tampon d'intervalle d'image 54 reçoit un signal d'adresse ADR provenant de l'unité de commande de mémoire vive
dynamique 740 par l'intermédiaire d'un bus d'adresse AB.
La mémoire tampon d'intervalle d'image 54 est connectée au bus de données de pixel PD, et des données sont reçues/
émises par l'intermédiaire du bus de données de pixel PB.
L'unité de commande de mémoire vive dynamique
742 est incorporée dans une unité de commande de l'appa-
reil de compression/décompression d'image qui est repré-
senté sur la figure 1, à titre d'exemple. Plus précisé-
ment, l'unité de commande de mémoire vive dynamique 743 est incorporée dans le processeur de commande d'ensemble
11 qui est représenté sur la figure 9.
La figure 56 montre une configuration de pixels indiquant la relation entre des données enregistrées dans
la mémoire tampon d'intervalle d'image 54 qui est repré-
sentée sur la figure 55, et les pixels sur l'écran. Comme décrit cidessus, en appliquant une adresse de ligne RA et une adresse de colonne CA à la mémoire tampon d'intervalle
d'image 54, on peut accéder à 32 bits de données repré-
sentant quatre pixels. Dans la structure de système qui est représentée sur la figure 55, avec une adresse de ligne et une adresse de colonne, on peut définir quatre
pixels (par exemple PCO - PC3) dans la direction horizon-
tale sur l'écran SCN, comme représenté sur la figure 56.
La figure 58 montre une configuration de pixels
pour la description du signal d'adressage par l'unité de
commande de mémoire vive dynamique 740 qui est représentée sur la figure 55. En se référant à la figure 58, on note que l'adresse de colonne de la mémoire tampon d'intervalle
d'image 54 désigne des pixels dans la direction horizon-
tale de l'écran SCN. D'autre part, le signal d'adresse de ligne désigne des pixels dans la direction verticale de l'écran SCN. Sur la figure 58, le symbole de référence O
représente un pixel.
Le processeur de commande d'ensemble 11 qui est représenté sur la figure 55 produit un signal d'adresse de ligne RA et un signal d'adresse de colonne CA conformément
à un microprogramme qui est enregistré dans ce processeur.
Les signaux d'adresse de ligne et de colonne RA et CA sont appliqués à titre de signal d'adresse ADR au bus d'adresse AB. Le signal d'adresse ADR est appliqué à la mémoire tampon d'intervalle d'image 54 par l'intermédiaire du bus d'adresse AB. Simultanément, l'unité de commande de mémoire vive dynamique 740 produit un signal de commande
pour commander la mémoire tampon d'intervalle d'image 54.
Dans une opération d'écriture de données, le processeur de commande d'ensemble 11 applique des données à enregistrer dans la mémoire tampon d'intervalle d'image 54, par l'intermédiaire du bus de données de pixel PD. Dans une opération de lecture de données, le processeur de commande d'ensemble 11 reçoit des données qui sont enregistrées dans la mémoire tampon d'intervalle d'image 54, par
l'intermédiaire du bus de données de pixel PB.
La figure 59 est un diagramme temporel montrant
une opération de lecture dans la mémoire tampon d'inter-
valle d'image 54, sous la commande de l'unité de commande de mémoire vive dynamique 740 qui est représentée sur la figure 55. En se référant à la figure 59, on note qu'après l'application du signal d'adresse de ligne RA1, le signal
d'activation d'adresse de ligne /RAS passe au niveau bas.
Après l'application du premier signal d'adresse de colonne CAl, le signal d'activation d'adresse de colonne/CAS passe au niveau bas. Dans une opération de lecture, un signal de validation d'écriture. /WE au niveau haut est appliqué. Par conséquent, les données enregistrées PD1 sont lues dans la cellule de mémoire (non représenté) qui est désignée par le signal d'adresse RA1 et CAl. Après la lecture des
données PD1, le signal /CAS passe au niveau haut.
Après l'application du signal d'adresse de colonne suivant CA2, le signal /CAS passe à nouveau au niveau bas. Par conséquent, les données PD2 sont lues dans la cellule de mémoire qui est désignée par les signaux
d'adresse RAi et CA2. En répétant des opérations simi-
laires, les données PD1, PD2,... qui sont désignées par les signaux d'adresse de colonne CAl, CA2,... sont successivement émises par une ligne qui est désignée par
le signal d'adresse de ligne RAi.
En se référant à la figure 58, on note qu'un macro-bloc 750 est constitué par un total de 64 (= 8 x 8), c'est-à-dire 8 dans la direction horizontale et 8 dans la direction verticale sur l'écran SCN. Par conséquent, les données de pixel dans le macro-bloc 750 peuvent être désignées par des signaux d'adresse de ligne RAI à RA8 et
des signaux d'adresse de colonne CA4 et CA5.
Ainsi, le processeur de commande d'ensemble 11 qui est représenté sur la figure 5 produit des signaux d'adresse de ligne et de colonne conformément à un
programme enregistré, de la manière suivante. Première-
ment, après l'émission du signal d'adresse de ligne RAi, les signaux d'adresse de colonne CA4 et CA5 sont émis. Par conséquent, on peut accéder à la première ligne de données de pixel dans le macro-bloc 750 (par exemple pour une opération de lecture). Ensuite, après l'application du signal d'adresse de ligne RA2, les signaux d'adresse de colonne CA4 et CA5 sont appliqués successivement. On peut
donc accéder à la seconde ligne de données dans le macro-
bloc 750. Une opération similaire est répétée jusqu'à la
huitième ligne du macro-bloc 750.
Par conséquent, pour accéder à la mémoire tampon d'intervalle d'image 54 pour tous les pixels dans le macro-bloc 750, il faut un total de 8 applications
d'adresses de ligne RAI à RA8 et un total de 16 applica-
tions d'adresses de colonne CA.
Dans un certain exemple, l'application d'une adresse de ligne RA demande 90 ns et deux applications des adresses de colonne CA et le transfert de données demandent ns. Dans ce cas, la désignation d'un macro-bloc exige
1680 ns (= (90+120) x 8).
D'autre part, lorsqu'un vecteur de mouvement doit être détecté dans l'unité de prédiction de mouvement, un macro-bloc 751 tel que celui qui est représenté sur la figure 58 est nécessaire. Plus précisément, les données de pixel qui sont incluses dans le macro-bloc 751 sont désignées par des adresses de ligne RAIl à RA18 et des adresses de colonne CAl à CA3. Les données de pixel qui sont enregistrées dans les zones 752 et 753 ne sont pas nécessaires, et elles sont rejetées après avoir été obtenues, pour accéder aux données concernant des pixels
dans le macro-bloc 751.
Ainsi, pour accéder à des données de pixel dans le macro-bloc 751, un total de 8 applications d'adresses de ligne RA et un total de 24 applications d'adresses de colonne CA sont nécessaires. Il en résulte qu'un total de
2160 ns est nécessaire pour l'accès.
(3) Un exemple employant des mémoires vives dynamiques synchrones (second, troisième et quatrième
exemples)
Dans ce qui suit, on décrira trois exemples (second, troisième et quatrième exemples) employant des
mémoires vives dynamiques synchrones (encore appelées ci-
après "SDRAM") pour la mémoire tampon d'intervalle d'image. La figure 60 montre une structure de système de la mémoire tampon d'intervalle d'image 55 employant des mémoires SDRAM. En se référant à la figure 60, on note que la mémoire tampon d'intervalle d'image 55 est constituée par des mémoires SDRAM comprenant des réseaux de cellules de mémoire 801 à 832 qui sont divisés en un total de 32 plans. Le processeur de commande d'ensemble 11 comprend un générateur d'adresse 804 pour générer un signal d'adresse ADR pour l'accès à la mémoire tampon d'intervalle d'image 55. Le générateur d'adresse 804 applique un signal d'adresse de ligne RA et le signal d'adresse de colonne CA, à titre de signal d'adresse ADR, à la mémoire tampon d'intervalle d'image 55 par l'intermédiaire du bus d'adresse AB. Les données sur lesquelles porte l'accès sont appliquées à la mémoire tampon d'intervalle d'image par l'intermédiaire du bus de données de pixel PB. Le processeur de commande d'ensemble applique un signal d'horloge de système csc au générateur d'adresse 840, pour
générer le signal d'adresse ADR.
Au cours du fonctionnement, le processeur de commande d'ensemble 11 active le générateur d'adresse 840 conformément à un programme enregistré. Sous l'effet du signal d'horloge de système 4sc, le générateur d'adresse 840 produit un signal d'adresse ADR pour accéder à la mémoire SDRAM dans la mémoire tampon d'intervalle d'image 55. Le générateur d'adresse 840 génère un signal d'adresse de ligne RA et un signal d'adresse de colonne CA des trois
manières différentes décrites ci-dessous (second, troisiè-
me et quatrième exemples).
La figure 61 est un diagramme temporel montrant une opération de base (dans cet exemple une opération de lecture) de la mémoire SDRAM. En se référant à la figure
61, on note que la mémoire DRAM fonctionne sous la dépen-
dance du signal d'horloge de système 4sc qui est appliqué par le processeur de commande d'ensemble 11. Le signal d'adresse de ligne RAI est admis sous l'effet de la transition descendante du signal/RAS, et ensuite le signal d'adresse de colonne CAl est admis sous l'effet de la transition descendante du signal /CAS. Sous l'effet du signal d'horloge de système 4sc, le générateur d'adresse 840 produit successivement des signaux d'adresse de colonne CAl à CA8, en partant du signal d'adresse de colonne CA1. Ces signaux d'adresse sont appliqués à la mémoire tampon d'intervalle d'image 55 par l'intermédiaire
du bus d'adresse AD.
Par conséquent, dans l'opération de lecture de données, les données enregistrées PD1 à PD8 sont lues dans
le réseau de cellules de mémoire dans la mémoire SDRAM.
Plus précisément, dans cet exemple représenté sur la figure 61, 8 signaux d'adresse de colonne sont générés, en partant du signal d'adresse de colonne CA1, de façon que 8 éléments de données PD1 à PD8 soient lus dans la ligne qui
est désignée par le signal d'adresse de ligne RA1.
(i) Second exemple (figures 62 et 63) La figure 62 montre une configuration de pixels
pour la description de l'adressage par le générateur
d'adresse 840 qui est représenté sur la figure 60 (second exemple). Comme représenté sur la figure 62, les pixels dans la direction horizontale sur l'écran SCN sont désignés par le signal d'adresse de colonne CA, tandis que les pixels dans la direction verticale sont désignés par
le signal d'adresse de ligne RA.
Dans cet exemple également, avec un signal d'adresse de ligne RA et un signal d'adresse de colonne CA, 32 bits de données au total sont lus dans la mémoire tampon d'intervalle d'image 55 qui est représentée sur la figure 60. Quatre pixels peuvent donc être représentés par 32 bits de données. De plus, dans le second exemple qui est représenté sur la figure 62, quatre pixels dans la direction verticale (par exemple PC0 - PC3) peuvent être représentés par 32 bits de données, comme représenté sur
la figure 57.
A titre d'exemple, le macro-bloc 860 contient un
total de 64 pixels, c'est-à-dire 8 pixels dans la direc-
tion horizontale et 8 pixels dans la direction verticale.
A titre d'exemple, l'adressage des données de pixel du macro-bloc 860 dans la lecture est effectué de la manière suivante. Après l'application d'une adresse de ligne RA4, une adresse de colonne CAl est appliquée. Le générateur d'adresse 840 qui est représenté sur la figure 60 génère successivement des adresses de colonne CA1 à CA8, en partant de l'adresse de colonne CAl, sous la dépendance du signal d'horloge de système 4sc. Par conséquent, à partir d'une ligne qui est désignée par l'adresse de ligne RA4, la première moitié des données qui sont désignées par les
adresses de colonne CAl à CA8 est lue en succession.
Ensuite, après l'application de l'adresse de ligne RA5, une adresse de colonne CAl est appliquée. Sous l'effet du signal d'horloge de système 4sc, le générateur d'adresse 840 produit successivement les signaux d'adresse de colonne CAl à CA8. Par conséquent, la seconde moitié
des pixels dans le macro-bloc 860 peut être lue.
La figure 63 est un diagramme temporel montrant le fonctionnement du générateur d'adresse 840 qui est représenté sur la figure 60. Pour réaliser l'adressage de la manière qui est représentée sur la figure 62, le générateur d'adresse 840 représenté sur la figure 60 fonctionne de la manière qui est représentée sur la figure 63. En se référant à la figure 63, on note que sous l'effet de la transition descendante du signal/RAS, le signal d'adresse de ligne RA4 est admis, et ensuite sous l'effet de la transition descendante du signal/CAS, le signal d'adresse de colonne CAl est admis. Le générateur d'adresse 840 (non représenté) produit successivement des signaux d'adresse de colonne CAl à CA8, en partant du signal d'adresse de colonne CA1 qui a été admis. Ces signaux d'adresse RA4 et CA1 à CA8 sont appliqués à la mémoire tampon d'intervalle d'image 55 par l'intermédiaire
du bus d'adresse AB qui est représenté sur la figure 60.
Il en résulte que dans l'opération de lecture, les données enregistrées PD1, PD2,... sont successivement émises par
la mémoire tampon d'intervalle d'image 55.
Comme décrit ci-dessus, du fait que la mémoire tampon d'intervalle d'image 55 comprend un total de 32 plans, un bit de données est lu dans chacun des réseaux de
cellules de mémoire 801 à 832. Ainsi, un élément de don-
nées PD1 représenté sur la figure 63 correspond à 32 bits de données. Par conséquent, on note qu'avec un élément de données PD1, on peut représenter quatre pixels dans la direction verticale sur l'écran SCN représenté sur la
figure 62.
Ensuite, sous l'effet de la transition descen-
dante du signal/RAS, le signal d'adresse de ligne RA5 est admis, et sous l'effet de la transition descendante du
signal /CAS le signal d'adresse de colonne CA1 est admis.
Le générateur d'adresse 804 produit successivement des signaux d'adresse CAl à CA8 (non représentés), en partant du signal d'adresse de colonne CAl. Par conséquent, les données PD11 à PD18 qui sont destinées à représenter des pixels dans la seconde moitié du macro-bloc 860 sont lues successivement. De cette manière, seulement deux signaux d'adresse de ligne (c'est-à-dire RA4 et RA5) et seulement deux signaux d'adresse de colonne (deux fois le signal CAl) sont nécessaires pour les pixels dans un macro-bloc 860, et le temps nécessaire pour l'adressage peut être réduit en comparaison avec l'exemple qui est représenté
sur la figure 58.
Par exemple, si 25 ns sont nécessaires pour
l'application d'une adresse de ligne et 200 ns sont néces-
saires pour l'application d'une adresse de colonne CA et pour le transfert de données, un adressage nécessite un
total de 450 ns.
Une autre zone de pixels 862 qui apparaît sur la figure 62 représente la zone de pixels qui est traitée dans l'unité de prédiction de mouvement. Pour lire des données des pixels dans la zone 862, on applique un signal d'adresse de ligne RAI, et on applique ensuite un signal d'adresse de colonne CAlI1. Par conséquent, à partir de la ligne qui est désignée par l'adresse de ligne RAi, les données des pixels dans le premier tiers de la zone de pixels 862 sont lues successivement. En appliquant successivem.ent des signaux d'adresse de ligne RA2 et RA3, on peut effectuer la lecture des zones restantes dans la zone
de pixels 862.
(ii) Troisième exemple (figure 64) La figure 64 est un diagramme temporel montrant un autre exemple du fonctionnement du générateur d'adresse 840 qui est représenté sur la figure 60. En se référant à
la figure 64, on note que dans cet exemple, après l'admis-
sion du signal d'adresse de ligne RA1 et du signal d'adresse de colonne CAl, sous l'effet du signal d'horloge de système fsc, le signal d'adresse de colonne CA (non
représenté) est généré par le générateur d'adresse 840.
Ainsi, deux signaux d'adresse de colonne CAl et CA2 doivent être appliqués à la mémoire tampon d'intervalle d'image 55. Par conséquent, à partir de la ligne qui est désignée par l'adresse de ligne RAi, 32 bits de données PD1 désignées par l'adresse de colonne CAl et 32 bits de données PD2 désignées par l'adresse de colonne CA2 sont lus. Du fait que les données PD1 et PD2 comprennent chacune 32 bits de données, 8 pixels dans la direction
horizontale peuvent être représentés sur l'écran SCN.
(iii) Quatrième exemple (figure 65) La figure 65 montre une configuration de pixels
pour la description d'encore un autre exemple d'adressage
par le générateur d'adresse 840 qui est représenté sur la figure 60. En se référant à la figure 65, on note que des données pour les pixels dans la direction horizontale sur l'écran SCN sont désignées par le signal d'adresse de ligne, tandis que des données des pixels dans la direction verticale sont désignées par le signal d'adresse de colonne. Par exemple, pour désigner des données de pixel du macro-bloc 863, un signal d'adresse de ligne RA4 est appliqué, et ensuite un signal d'adresse de colonne CAl est appliqué. Le générateur d'adresse 840 génère des adresses de colonnes CAl à CA8 en partant du signal d'adresse de colonne CAl. Il en résulte que les données des pixels dans la moitié gauche du macro-bloc 863 sont lues. Ensuite, après l'application du signal d'adresse de ligne RA5, un signal d'adresse de colonne CA1 est appliqué. Le générateur d'adresse 840 génère les signaux
d'adresse de colonne CA1 à CA8. Par conséquent, les don-
nées des pixels de la moitié droite du macro-bloc 863 sont
lues.
Dans le traitement qui est effectué dans l'unité de prédiction de mouvement, un adressage similaire est
accompli pour les pixels dans la zone de pixels 865.
De cette manière, en utilisant la mémoire tampon d'intervalle d'image 55 qui emploie des mémoires SDRAM, comme représenté dans les second, troisième et quatrième exemples ci-dessus, on peut réduire le temps nécessaire
pour l'adressage.
(4) Générateur d'adresse (figure 66)
La figure 66 est un schéma synoptique du géné-
rateur d'adresse 840 qui est représenté sur la figure 60.
En se référant à la figure 66, on note que le générateur d'adresse 840 comprend un registre d'adresse initiale verticale 841, un registre de taille d'intervalle d'image 842, un registre de taille de page 843, un registre d'adresse initiale horizontale 844, un registre de taille horizontale 845, des registres 846 et 847, un compteur
horizontal 848, un circuit d'incrémentation 849, un cir-
cuit de détection d'extrémité droite 850, un circuit de commande de sortie 451, des sélecteurs 852 et 853, un
additionneur 854 et un sélecteur 855.
On suppose que les registres 841 et 845 contien-
nent respectivement des données initiales. L'adresse initiale qui est contenue dans le registre 841 est émise sous la forme d'une adresse de ligne, par l'intermédiaire du sélecteur 852, de l'additionneur 854 et du sélecteur 855. D'autre part, l'adresse initiale est appliquée aux registres 846 et 847 par l'intermédiaire du sélecteur 852 et de l'additionneur 854, et elle est conservée dans ces
registres.
L'adresse initiale horizontale qui est conservée dans le registre 844 est appliquée au circuit de commande de sortie 851 pour la commande de largeur (nombre de bits), par l'intermédiaire du circuit d'incrémentation 849. Le circuit de commande de sortie 851 fournit une adresse de colonne qui est émise par l'intermédiaire du
sélecteur 855.
Le circuit d'incrémentation 859 incrémente une adresse horizontale qui provient du registre d'adresse initiale horizontale 844 tous les 8 cycles du signal d'horloge de système Wsc. Lorsque l'adresse horizontale dépasse la taille de page, le circuit d'incrémentation 949
incrémente l'adresse de ligne.
Les données du registre 847 et des données "1" sont appliquées à l'additionneur 854, le résultat de l'addition est fourni sous la forme d'une adresse de ligne
et le résultat est également appliqué au registre 847.
Lorsque l'extrémité droite des données trans-
férées est détectée par le circuit de détection d'extré-
mité droite 850, les données qui sont conservées dans le registre 846 et les données de taille d'intervalle d'image sont appliquées à l'additionneur 454 par l'intermédiaire
des sélecteurs 852 et 853. Les données indiquant le résul-
tat de l'addition sont émises sous la forme d'une adresse de ligne par le sélecteur 855, et elles sont également
appliquées aux registres 846 et 847.
La figure 67 montre la correspondance adresse-
page, faisant apparaître la relation entre les adresses de ligne et de colonne qui sont fournies par le générateur d'adresse 840 représenté sur la figure 6, et les pages. D'autre part, la figure 86 montre la correspondance page-
pixels, faisant apparaître la relation entre la page qui est représentée sur la figure 67 et les pixels sur l'écran. La mémoire tampon d'intervalle d'image 55 qui est représentée sur la figure 60 enregistre des données de la
manière qui est représentée sur la figure 67. Le généra-
teur d'adresse 840 attribue les données enregistrées dans la mémoire tampon d'intervalle d'image 55 de la manière qui est représentée sur la figure 68. Le générateur d'adresse 840 qui est représenté sur la figure 66 génère le signal d'adresse de ligne RA et le signal d'adresse de
colonne CA de façon que l'adressage de la manière repré-
sentée sur les figures 67 et 68 puisse être effectué.
(5) Procédé de projection On décrira dans ce qui suit un procédé de projection de chaque donnée de pixel de l'écran dans la mémoire tampon d'intervalle d'image. Les procédés décrits ci-dessous peuvent être appliqués à la mémoire tampon d'intervalle d'image 51 qui est représentée sur la figure
1.
On décrira tout d'abord un procédé de projection
qui permet de réduire le nombre de transferts de données.
La figure 52 est un premier schéma synoptique qui illustre le procédé de projection de données de pixel de l'écran
dans la mémoire tampon d'intervalle d'image. En se réfé-
rant à la figure 72, on note qu'une zone de données 862 ayant deux pixels dans les directions de la longueur et de la largeur, est traitée comme une unité, et une adresse de
la mémoire tampon d'intervalle d'image lui est attribuée.
Plus précisément, en correspondance avec une adresse spécifiée par le signal d'adresse de ligne RA et le signal d'adresse de colonne CA, des données de quatre pixels qui sont inclus dans la zone de données 861 sont enregistrées dans la mémoire tampon d'intervalle d'image, ou bien en désignant l'adresse, les données sont lues dans la mémoire
tampon d'intervalle d'image et les données sont transfé-
rées vers chacun des blocs et à partir de ceux-ci par l'intermédiaire du bus de données de pixel. Par exemple, en se référant à la figure 72, on note que lorsqu'une zone de données 862 comprenant 8 pixels dans la direction horizontale et 8 pixels dans la direction verticale, qui est utilisée pour la détection de vecteur de mouvement, est transférée, en utilisant la zone de données 861 à titre d'unité de transfert, toutes les données de pixel dans la zone de données 862 peuvent être transférées par (direction horizontale) x 5 (direction verticale) = 25 opérations de transfert. En comparaison avec l'exemple de la figure 58 dans lequel une zone de données consistant en quatre pixels dans la direction horizontale est utilisée à titre d'unité de transfert, le nombre de transferts peut être réduit de deux, et la zone de données 863 qui n'a pas
besoin d'être transférée peut être réduite. Par consé-
quent, en utilisant le procédé de projection décrit ci-
dessus, il est possible de réduire le nombre de trans-
ferts, et de transférer des données d'image avec une
vitesse élevée.
On va maintenant décrire le transfert d'une zone
de données comprenant 8 pixels dans la direction horizon-
tale et 8 pixels dans la direction verticale, en utilisant le procédé de projection décrit ci-dessus. Les figures 73
à 76 sont des première à quatrième illustrations du trans-
fert de la zone de données comprenant 8 pixels en direc-
tion horizontale et 8 pixels en direction verticale.
Lorsqu'une zone de données 864 qui comprend 8 pixels dans la direction horizontale et 8 pixels dans la direction verticale doit être transférée, il y a quatre manières différentes, représentées sur les figures 73 à 76, en
fonction de la position de la zone de données 864.
Dans l'exemple qui est représenté sur la figure 73, lorsque chaque donnée de pixel dans la zone de données 864 doit être transférée en utilisant une zone de données qui comprend deux pixels dans les directions horizontale et verticale, à titre d'unité de transfert, le nombre de transferts nécessaire est de 4 (direction horizontale) x 4 (direction verticale) = 16. Dans l'exemple des figures 74 et 75, le nombre de transferts nécessaire est de 20. Dans
l'exemple de la figure 76, 25 transferts sont nécessaires.
Par conséquent, le nombre moyen de transferts nécessaires pour transférer la zone de données 864 est de 20,25. En comparaison avec le transfert par l'utilisation de quatre pixels dans la direction horizontale, à titre d'unité de transfert, qui est représenté sur la figure 58, le nombre
de transferts peut être réduit d'environ deux.
On va maintenant décrire un procédé de projec-
tion dans lequel une zone de données comprenant quatre pixels dans la direction horizontale et deux pixels dans la direction verticale est considérée comme un élément de données et une adresse lui est attribuée. La figure 77 est une seconde illustration montrant le procédé de projection des données d'image de l'écran dans la mémoire tampon d'intervalle d'image. Comme représenté sur la figure 77, une adresse de la mémoire tampon d'intervalle d'image est appliquée à la zone de données 865 comprenant quatre pixels dans la direction horizontale et deux pixels dans la direction verticale, que l'on considère comme un
élément de données. A ce moment, lorsqu'une zone de don-
nées 866 comprenant 9 pixels dans la direction horizontale
et 9 pixels dans la direction verticale doit être trans-
férée en utilisant la zone de données 865 à titre d'unité
de transfert, le nombre de transferts de données néces-
saires est de 3 (direction horizontale) x 5 (direction verticale) = 15. En comparaison avec l'exemple représenté
sur la figure 58, dans lequel une zone de données compre-
nant 8 pixels dans la direction horizontale est utilisée à titre d'unité de transfert, le nombre de transferts peut être réduit de trois, et la zone 867 qui ne nécessite pas
un transfert de données peut être réduite.
On va maintenant décrire un premier procédé de projection d'une première et d'une seconde images de différence de couleur dans la mémoire d'intervalle d'image. La figure 78 est une illustration du premier procédé de projection des premières et secondes données de pixel de différence de couleur dans la mémoire tampon d'intervalle d'image. On appelle ici premières données de pixel de différence de couleur les données de pixel de différence de couleur Cb qui ont été converties du format RGB au format YUV, et on appelle secondes données de pixel
de différence de couleur les données de pixel de diffé-
rence de couleur Cr qui ont été converties de façon simi-
laire. Sur la figure 78, la zone de données 868 comprenant quatre pixels dans la direction horizontale est considérée comme un élément de données, et une adresse de la mémoire
tampon d'intervalle d'image lui est attribuée. Les premiè-
res données de pixel de différence de couleur 873 et les secondes données de pixel de différence de couleur 869 sont projetées alternativement, quatre pixels par quatre pixels dans la direction horizontale. Les première données de pixel de différence de couleur 873 et les secondes
données de pixel de différence de couleur 869 sont mutuel-
lement corrélées. Par exemple, dans la détection de vecteur de mouvement, les premières et secondes données de pixel de différence de couleur 873 et 869 doivent être traitées simultanément, ce qui fait que le transfert de
données est effectué simultanément. Par conséquent, lors-
que la première zone de données de pixel de différence de couleur 872 et la seconde zone de données de pixel de différence de couleur 870 doivent être transférées à titre de zone de transfert, il est nécessaire de transférer chacune des données dans la zone de données 871. Dans ce cas, du fait que la première zone de données de pixel de différence de couleur 872 et la seconde zone de données de
pixel de différence de couleur 870 sont projetées alter-
nativement, les données de pixel de différence de couleur de la zone de données 871 peuvent être respectivement transférées par une opération de génération d'adresse, ce qui fait que le temps nécessaire pour le calcul pour la génération d'adresse peut être réduit, et les données
d'image peuvent être traitées avec une vitesse élevée.
On va maintenant décrire un second procédé de projection des premières et secondes données de pixel de différence de couleur dans la mémoire tampon d'intervalle d'image. La figure 79 est une illustration du second procédé de projection des premières et secondes données de pixel de différence de couleur dans la mémoire tampon
d'intervalle d'image. Sur la figure 69, une zone de don-
nées 874 comprenant deux pixels dans la direction horizon-
tale et deux pixels dans la direction verticale est traitée comme un élément de données et est projetée. Les premières données de pixel de différence de couleur 875 et les secondes données de pixel de différence de couleur 879 sont projetées alternativement, deux pixels par deux pixels dans la direction horizontale. Dans cet exemple, lorsque la première zone de données de pixel de différence de couleur 878 et la seconde zone de données de pixel de différence de couleur 876 doivent être transférées,
chacune des données dans la zone de données 877 est trans-
férée en utilisant la zone de données 874 à titre d'unité
de transfert. Par conséquent, il est possible de trans-
férer des données par une seule opération de génération d'adresse et par un plus petit nombre de transferts de données. On va maintenant décrire un troisième procédé de projection des premières et secondes données de pixel de différence de couleur dans la mémoire tampon d'intervalle de trame. La figure 80 est une illustration du troisième procédé de projection des premières et secondes données de pixel de différence de couleur dans la mémoire tampon d'intervalle de trame. Dans l'exemple de la figure 80, une zone de données comprenant quatre pixels dans la direction horizontale est considérée comme un élément de données, et une adresse lui est attribuée. Les premières données de pixel de différence de couleur et les secondes données de
pixel de différence de couleur sont disposées en alter-
nance, deux pixels par deux pixels, dans la direction horizontale. Par conséquent, dans la zone de données de quatre pixels dans la direction horizontale, à laquelle une adresse est attribuée, on trouve deux pixels des premières données de pixel de différence de couleur 880 et deux pixels des secondes données de pixel de différence de couleur 881. Lorsque la première zone de données de pixel de différence de couleur 884 et la seconde zone de données
de pixel de différence de couleur 882 doivent être trans-
* férées, il suffit de transférer chacune des données dans
la zone de données 883, par une seule opération de généra-
tion d'adresse. A ce moment, le nombre de transferts
serait de 5 (direction horizontale) x 9 (direction verti-
cale) = 45. Lorsque les premières données de pixel de différence de couleur et les secondes données de pixel de différence de couleur sont projetées séparément dans la mémoire tampon d'intervalle d'image et sont transférées en utilisant une zone de données qui comprend quatre pixels
dans la direction horizontale, à titre d'unité de trans-
fert, d'une manière similaire à celle décrite ci-dessus, le nombre de transferts de données nécessaires pour les premières et secondes données de pixel de différence de couleur, comme représenté sur la figure 80, est de 54, et par conséquent avec le troisième procédé de projection il
est possible de réduire de neuf le nombre de transferts.
On va maintenant décrire un quatrième procédé de projection des premières et secondes données de pixel de différence de couleur dans la mémoire tampon d'intervalle d'image. La figure 81 est une illustration du quatrième procédé de projection des premières et secondes données de pixel de différence de couleur dans la mémoire tampon d'intervalle d'image. Comme représenté sur la figure 81, une zone de données constituée par quatre pixels dans la direction horizontale et deux pixels dans la direction verticale est considérée comme un élément de données, et une adresse lui est attribuée pour la projection dans la mémoire tampon d'intervalle d'image. Les premières données de pixel de différence de couleur et les secondes données
de pixel de différence de couleur sont projetées alterna-
tivement, deux pixels par deux pixels dans la direction horizontale. Par conséquent, dans la zone de données qui est projetée comme un seul élément de données, on trouve les premières données de pixel de différence de couleur 885, comprenant deux pixels dans la direction horizontale et deux pixels dans la direction verticale, ainsi que les secondes données de pixel de différence de couleur 886, comprenant deux pixels dans la direction horizontale et deux pixels dans la direction verticale. Lorsque les premières données de pixel de différence de couleur 889 et les secondes données de pixel de différence de couleur 887 doivent être transférées, il faut transférer chacune des données dans la zone de données 888 en utilisant à titre d'unité de transfert la zone de données comprenant 4 pixels dans la direction horizontale et 2 pixels dans la
direction verticale. A ce moment, du fait que les premiè-
res données de pixel de différence de couleur et les secondes données de pixel de différence de couleur sont disposées en alternance, on peut transférer des données par une seule opération de génération d'adresse, et du fait qu'une zone de données rectangulaire est utilisée à titre d'unité de transfert, il est possible de réduire le
nombre de transferts.
On va maintenant envisager les effets des premier à quatrième procédés de projection des premières et secondes données de pixel de différence de couleur dans
la mémoire tampon d'intervalle d'image, décrits ci-dessus.
On décrira à titre d'exemple une opération qui est effec-
tuée dans le processeur de commande d'ensemble représenté
sur la figure 9 dans le codage par prédiction bidirec-
tionnelle. La figure 82 montre l'opération qui est effec-
tuée dans le processeur de commande d'ensemble dans le
codage par prédiction bidirectionnelle.
En se référant à la figure 82, on note qu'à l'étape 891, dans le processus d'écriture d'image d'entrée, la première adresse est générée. La génération d'adresse est effectuée pour les données de pixel de luminance Y, les premières données de pixel de différence
de couleur Cb et les secondes données de pixel de diffé-
rence de couleur Cr. Les données sont transférées ici de l'unité de commande 2 vers la mémoire tampon d'intervalle d'image 51 dans l'appareil de traitement de données
d'image qui est représenté sur la figure 1.
A l'étape 892, la seconde opération de généra-
tion d'adresse est accomplie au cours de la lecture pour la prédiction de mouvement. Ce processus est accompli pour les données de pixel de luminance Y, et les données sont transférées de la mémoire tampon d'intervalle d'image 51
vers l'unité de commande 2.
Ensuite, à l'étape 893, une troisième opération de génération d'adresse est accomplie au cours de la lecture pour l'étendue de recherche de mouvement. Le processus est effectué ici pour les données de pixel de luminance Y, et les données sont transférées de la mémoire tampon d'intervalle d'image 51 vers l'unité de prédiction
de mouvement 41.
Ensuite, à l'étape 894, le mode de codage est déterminé. Ensuite, à l'étape 895, la quatrième opération de génération d'adresse est accomplie au cours de la
lecture pour l'image avec prédiction en avant. Le proces-
sus est accompli ici pour trois données de pixel diffé-
rentes Y, Cb et Cr, et les données sont transférées de la mémoire tampon d'intervalle d'image 51 vers l'unité de
traitement de pixels 3.
A l'étape 869, la cinquième opération de généra-
tion d'adresse est accomplie au cours de la lecture pour l'image avec prédiction en arrière. Le processus est effectué ici sur trois données de pixel Y, Cb et Cr, et
les données sont transférées de la mémoire tampon d'inter-
valle d'image 51 vers l'unité de traitement de pixels 3.
Le tableau ci-dessous montre le résultat de la comparaison entre des modes de réalisation employant les premier à quatrième procédés de projection représentés sur les figures 78 à 81, et un exemple comparatif, en relation avec le nombre d'opérations effectuées dans le processeur de commande d'ensemble décrit ci-dessus. Dans l'exemple comparatif, trois types de données de pixel Y, Cb et Cr
sont projetés séparément dans la mémoire tampon d'inter-
valle d'image 51, et des adresses sont générées pour chacune des données de pixel. Le caractère de référence C dans le Tableau 1 ci-dessous désigne de façon générale les premières et secondes données de pixel de différence de
couleur Cb et Cr.
Tableau 1
Contenu du transfert Exemple comparatif Mode de réalisation Camposante Nombre Composante Nombre d'opérations d'opérations écriture de l'image Y, Cb, Cr 3 Y, C 2 d'entrée lecture de l'image Y 1 Y 1 pour la prédiction de mouvement lecture de l'étendue Y 1 Y 1 de recherche de mouvement lecture de l'image Y, Cb, Cr 3 Y, C 2 pour la prédiction en avant lecture de l'image Y, Cb, Cr 3 Y, C 2 pour la prédiction en arrière lecture de l'image Y, Cb, Cr 3 Y, C 2 à coder total 14 10 Comme on peut le voir d'après le tableau, le nombre d'opérations de génération d'adresse est réduit de quatre dans les modes de réalisation. Plus précisément, dans le processus de génération d'adresse de l'exemple comparatif, il est nécessaire d'effectuer des opérations sur chaque type parmi les trois types différents de données de pixel Y, Cb et Cr, et de placer des données respectives dans les registres de l'unité de commande de transfert de données d'image 15 qui est représentée sur la figure 9. D'autre part, dans le mode de réalisation décrit ci-dessus, du fait que des adresses sont générées de façon collective pour les premières données de pixel de différence de couleur Cb et pour les secondes données de pixel de différence de couleur Cr, on peut réduire de quatre le nombre total d'opérations et on peut réduire le temps nécessaire pour placer les données dans les regis- tres. Dans le processeur de commande d'ensemble, divers processus tels que la commande du volume de code, diverses déterminations liées au codage et d'autres opérations spécifiques de l'utilisateur, doivent être accomplis. Par conséquent, si le nombre d'opérations est augmenté par ces diverses opérations, la réduction du calcul d'adresse qui est décrite ci-dessus a un effet important sur le codage
en temps réel.
Bien que l'on ait décrit et illustré en détail la présente invention, il est clair que ceci n'a été fait qu'à titre d'illustration et d'exemple et ne doit pas être considéré de façon limitative, l'esprit et le cadre de la présente invention n'étant limités que par les termes des
revendications annexées.
Claims (3)
1. Procédé de traitement de données d'image pour la projection de premières données de pixel dans des moyens d'enregistrement (51) qui enregistrent un ensemble des premières données de pixel, définissant des pixels sur un écran, caractérisé en ce qu'il comprend: une première étape qui consiste à déterminer un ensemble de secondes
données de pixels mutuellement adjacentes de façon bidi-
mensionnelle, et incluses dans une zone rectangulaire (861) obtenue à partir des premières données de' pixel; une seconde étape consistant à attribuer une adresse des moyens d'enregistrement aux secondes données de pixel, en considérant ces secondes données de pixel comme un élément
de données; et une troisième étape qui consiste à trans-
férer les secondes données à partir des moyens d'enregis-
trement ou vers ceux-ci, en utilisant l'adresse des
secondes données de pixel.
2. Procédé de traitement de données d'image pour projeter des premières et secondes données de pixel de différence de couleur dans des moyens d'enregistrement (51) qui enregistrent les premières et secondes données de Dixel de différence de couleur, mutuellement corrélées, pour définir des pixels sur un écran, caractérisé en ce qu'il comprend: une première étape qui consiste à projeter alternativement les premières et secondes données
de pixel de différence de couleur dans les moyens d'enre-
gistrement, par bloc constituant une unité de transfert (868); et une seconde étape consistant à transférer les premières ou secondes données de pixel de différence de couleur à partir des moyens d'enregistrement, ou vers
ceux-ci, par bloc correspondant à l'unité de transfert.
3. Procédé de traitement de données d'image pour la projection de premières et de secondes données de
pixel de différence de couleur dans des moyens d'enregis-
trement (51) qui enregistrent les premières et secondes données de pixel de différence de couleur mutuellement
corrélées, pour définir des pixels sur un écran, caracté-
risé en ce qu'il comprend: une première étape qui consis-
te à projeter des troisièmes données de pixel de diffé-
rence de couleur (880, 881), comprenant le même nombre des premières et secondes données de pixel de-différence de couleur, sous la forme d'un élément de données; et une seconde étape consistant à transférer les troisièmes
données de pixel de différence de couleur, sous la forme-
d'un élément de données, à partir des moyens d'enregistre-
ment ou vers ceux-ci.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6033593 | 1993-03-19 | ||
JP30171693 | 1993-12-01 | ||
JP2093794A JPH07240844A (ja) | 1993-03-19 | 1994-02-18 | 画像データ処理装置および画像データ処理方法 |
FR9403206A FR2702862B1 (fr) | 1993-03-19 | 1994-03-18 | Appareil et procédé de traitement de données d'image capables de traiter des données d'images à vitesse élevée. |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2707780A1 true FR2707780A1 (fr) | 1995-01-20 |
FR2707780B1 FR2707780B1 (fr) | 1997-05-09 |
Family
ID=27446917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9408222A Expired - Fee Related FR2707780B1 (fr) | 1993-03-19 | 1994-07-04 | Appareil et procédé de traitement de données d'image capables de traiter des données d'image à vitesse élevée. |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2707780B1 (fr) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0503956A2 (fr) * | 1991-03-15 | 1992-09-16 | C-Cube Microsystems | Décompression d'un signal vidéo |
US5170468A (en) * | 1987-08-18 | 1992-12-08 | Hewlett-Packard Company | Graphics system with shadow ram update to the color map |
-
1994
- 1994-07-04 FR FR9408222A patent/FR2707780B1/fr not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5170468A (en) * | 1987-08-18 | 1992-12-08 | Hewlett-Packard Company | Graphics system with shadow ram update to the color map |
EP0503956A2 (fr) * | 1991-03-15 | 1992-09-16 | C-Cube Microsystems | Décompression d'un signal vidéo |
Also Published As
Publication number | Publication date |
---|---|
FR2707780B1 (fr) | 1997-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU657510B2 (en) | Improved image encoding/decoding method and apparatus | |
US20050094729A1 (en) | Software and hardware partitioning for multi-standard video compression and decompression | |
JP3548136B2 (ja) | 画像処理装置 | |
JP4495034B2 (ja) | 可変長符号化方式および可変長符号化装置 | |
FR2707779A1 (fr) | Appareil et procédé de traitement de données d'image capables de traiter des données d'image à vitesse élevée. | |
US20080013846A1 (en) | Wavelet transformation device and method, wavelet inverse transformation device and method, program, and recording medium | |
FR2760580A1 (fr) | Systeme de codage et decodage mpeg pour des applications multimedia | |
FR2687884A1 (fr) | Codec videc, notamment visiophonique. | |
CN101106719A (zh) | 小波变换设备、小波逆变换设备和方法、程序和记录介质 | |
US8311088B2 (en) | Method and system for image processing in a microprocessor for portable video communication devices | |
JP3403168B2 (ja) | 画像処理方法とこの方法を利用可能な画像処理装置およびテレビジョン受像機 | |
CN100559882C (zh) | 影像处理装置与方法 | |
CN101543082B (zh) | 运动图像解码装置以及运动图像解码方法 | |
US20030099293A1 (en) | Image reproducing method, and image processing method, and image reproducing device, image processing device, and television receiver capable of using the methods | |
JP2007329903A (ja) | 可変長復号化装置、可変長復号化方法および撮像システム | |
CN101443808B (zh) | 用于图像和视频处理的存储器组织方案和控制器结构 | |
EP1045592A2 (fr) | Méthode et dispositif de traitement d'image, et medium de stockage de données | |
EP0967576A1 (fr) | Adressage de mémoire d'un décodeur MPEG | |
KR100860661B1 (ko) | 화상 재생 방법과 화상 처리 방법, 및 이들 방법을 이용가능한 화상 재생 장치, 화상 처리 장치, 텔레비전 수상기 | |
JP2007505545A (ja) | スケーラブル信号処理方法及び装置 | |
CN116233453A (zh) | 一种视频编码方法及装置 | |
EP4354868A1 (fr) | Procédé de traitement de données multimédias et dispositif associé | |
EP0666652B1 (fr) | Etage de décalage pour décodeur de codes numériques de longueurs variables | |
FR2707780A1 (fr) | Appareil et procédé de traitement de données d'image capables de traiter des données d'image à vitesse élevée. | |
US5805483A (en) | Method of converting data outputting sequence in inverse DCT and circuit thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |