FR2737325A1 - Digital image scale uniform alteration circuit for image scaling system - has vertical and horizontal scaling controllers, with the vertical controller using sweep line storage and buffers which can have horizontal points added - Google Patents

Digital image scale uniform alteration circuit for image scaling system - has vertical and horizontal scaling controllers, with the vertical controller using sweep line storage and buffers which can have horizontal points added Download PDF

Info

Publication number
FR2737325A1
FR2737325A1 FR9609098A FR9609098A FR2737325A1 FR 2737325 A1 FR2737325 A1 FR 2737325A1 FR 9609098 A FR9609098 A FR 9609098A FR 9609098 A FR9609098 A FR 9609098A FR 2737325 A1 FR2737325 A1 FR 2737325A1
Authority
FR
France
Prior art keywords
original
line
memory
sum
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR9609098A
Other languages
French (fr)
Inventor
Rong Fuh Shyu
Feng Ling Chang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Winbond Electronics Corp
Original Assignee
Winbond Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from FR9509086A external-priority patent/FR2737324B1/en
Application filed by Winbond Electronics Corp filed Critical Winbond Electronics Corp
Priority to FR9609098A priority Critical patent/FR2737325A1/en
Publication of FR2737325A1 publication Critical patent/FR2737325A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof

Abstract

The circuit has a line memory (3) connected to the image memory (2) to store the (n+1)th sweep line taken from the memory. A line buffer (4) connected to the line memory stores the nth sweep line. A linear interpolator (5) is connected to the line memory and to the line buffer. A change of vertical scale controller (6) is connected to the image memory, to the line buffer and to the linear interpolator, and controls storage of image lines and operation of the linear interpolator. A change of horizontal scale controller connects to a point buffer to insert points in the line buffer under appropriate conditions.

Description

DISPOSITIF POUR CHANGER L'ECHELLE D'UNE IMAGE NUMERIQUE DE
FAÇON UNIFORME
L'invention concerne un dispositif de traitement d'image et plus particulièrement un dispositif capable de changer l'échelle d'une image numérique de façon uniforme en temps réel de façon bidimensionnelle.
DEVICE FOR CHANGING THE SCALE OF A DIGITAL IMAGE OF
UNIFORM WAY
The invention relates to an image processing device and more particularly to a device capable of changing the scale of a digital image uniformly in real time in two dimensions.

L'aptitude à combiner des images numériques est essentielle dans les applications multimédia à calculateur. The ability to combine digital images is essential in multimedia computer applications.

Habituellement, on prétraite une image numérique avant qu'elle puisse être combinée avec une autre image numérique.Usually, a digital image is preprocessed before it can be combined with another digital image.

On accomplit habituellement le prétraitement en augmentant la taille de l'image numérique (ce que l'on désignera par la suite par agrandissement), ou en réduisant la taille de l'image numérique (ce que l'on désignera par la suite par réduction), en découpant une partie sélectionnée d'image numérique et en la décalant vers un autre emplacement, etc.The preprocessing is usually accomplished by increasing the size of the digital image (which will be referred to hereinafter by enlargement), or by reducing the size of the digital image (which will be designated hereinafter by reduction ), by cutting out a selected part of the digital image and shifting it to another location, etc.

L'agrandissement et la réduction des images numériques sont habituellement accomplis à l'aide d'un ordinateur programmé à cet effet. L'agrandissement est effectué par interpolation linéaire sur chaque couple de lignes de balayage de l'image numérique pour obtenir au moins une ligne de balayage interpolée qui est insérée entre les deux lignes et en effectuant une interpolation linéaire sur chaque couple de données de pixel dans chaque ligne de balayage, de façon à obtenir au moins une donnée de pixel interpolé qu'on insère entre les pixels du couple. On effectue la réduction en supprimant certaines des lignes de balayage d'une image numérique et en supprimant certaines des données de pixel de chacune des lignes de balayage retenues. The enlargement and reduction of digital images are usually accomplished using a computer programmed for this purpose. The enlargement is carried out by linear interpolation on each pair of scanning lines of the digital image to obtain at least one interpolated scanning line which is inserted between the two lines and by performing a linear interpolation on each pair of pixel data in each scan line, so as to obtain at least one interpolated pixel data item which is inserted between the pixels of the pair. Reduction is accomplished by deleting some of the scan lines from a digital image and deleting some of the pixel data from each of the selected scan lines.

Lors de l'agrandissement des images numériques, l'interpolation linéaire des données d'image d'origine par l'ordinateur est relativement lente. Pour cette raison, on a créé divers matériels dédiés pour permettre l'agrandissement en temps réel des images numériques.  When enlarging digital images, linear interpolation of the original image data by the computer is relatively slow. For this reason, we have created various dedicated materials to allow real-time enlargement of digital images.

Malheureusement, la plupart des dispositifs à matériel dédié ne sont capables d'agrandir les images numériques que de façon limitée. Lorsqu'on agrandit une image numérique ayant (N) lignes de balayage, le nombre total de lignes de balayage à interpoler doit être un multiple de (N-l) de façon à permettre l'insertion d'un nombre égal de lignes de balayage interpolées dans chaque couple de lignes de balayage d'origine de l'image numérique d'origine, de façon à garantir l'uniformité. La même chose est vraie lorsqu'on agrandit une ligne de balayage ayant (N') données de pixel. Unfortunately, most dedicated hardware devices are only able to magnify digital images to a limited extent. When enlarging a digital image having (N) scan lines, the total number of scan lines to be interpolated must be a multiple of (Nl) so as to allow the insertion of an equal number of interpolated scan lines into each pair of original scan lines of the original digital image, so as to ensure uniformity. The same is true when enlarging a scan line having (N ') pixel data.

A l'heure actuelle, le changement d'échelle à deux dimensions d'une image numérique peut être obtenu en utilisant un processeur graphique spécial pour effectuer une dilatation et un rétrécissement variables de l'image, ou en utilisant un dispositif à matériel dédié pour obtenir le même résultat. Initialement, l'image d'origine est mémorisée dans une mémoire d'image. L'image d'origine subit ensuite un changement d'échelle dans une première dimension, et l'image à échelle modifiée de façon unidimensionnelle résultante est mémorisée dans la mémoire d'image. L'image à échelle modifiée subit ensuite un changement d'échelle dans une seconde dimension, et l'image à échelle modifiée de façon bidimensionnelle résultante est mémorisée dans la mémoire d'image avant d'être fournie à un dispositif de sortie, tel qu'un écran d'ordinateur ou une imprimante. Les procédés classiques de changement d'échelle ne présentent pas un coût intéressant étant donné leur besoin relativement important en mémoire, en particulier lorsqu'on utilise un rapport de grandissement important. De plus, les procédés classiques de changement d'échelle utilisent un nombre important d'étapes de traitement et ont ainsi un rendement relativement faible étant donné que l'image à échelle modifiée de façon unidimensionnelle doit être mémorisée dans la mémoire d'image avant qu'elle puisse subir un changement d'échelle dans la seconde dimension, et étant donné que l'image à échelle modifiée de façon bidimensionnelle doit être mémorisée dans la mémoire d'image avant qu'elle puisse être fournie au dispositif de sortie. Ainsi, les procédés classiques de changement d'échelle ne sont pas appropriés à une utilisation dans des applications vidéo en direct. Currently, two-dimensional scaling of a digital image can be achieved by using a special graphics processor to perform variable expansion and shrinking of the image, or by using a dedicated hardware device to get the same result. Initially, the original image is stored in an image memory. The original image then undergoes a change of scale in a first dimension, and the resulting one-dimensional modified scale image is stored in the image memory. The scaled-up image then undergoes a scale change in a second dimension, and the resulting two-dimensional scaled image is stored in the image memory before being supplied to an output device, such as '' a computer screen or printer. The conventional methods of scaling up do not present an attractive cost given their relatively large memory requirement, in particular when a large magnification ratio is used. In addition, conventional scaling methods use a large number of processing steps and thus have relatively low efficiency since the one-dimensional modified scale image must be stored in the image memory before it may undergo a change of scale in the second dimension, and since the two-dimensionally modified scale image must be stored in the image memory before it can be supplied to the output device. Thus, conventional scaling methods are not suitable for use in live video applications.

En conséquence, le but de la présente invention est de fournir un dispositif qui est capable de changer l'échelle d'une image numérique de façon uniforme en temps réel de façon bidimensionnelle. Accordingly, the object of the present invention is to provide a device which is capable of changing the scale of a digital image uniformly in real time in two dimensions.

Plus particulièrement, le but de la présente invention est de fournir un dispositif de changement d'échelle à un coût intéressant et hautement efficace, approprié à une utilisation dans des applications vidéo en direct. More particularly, the aim of the present invention is to provide a device for scaling up at an attractive cost and highly efficient, suitable for use in live video applications.

Conformément à la présente invention, un dispositif est capable de traiter une image numérique d'origine pour obtenir une image numérique souhaitée à échelle modifiée de façon uniforme. Le dispositif comprend une mémoire d'image pour y mémoriser l'image numérique d'origine. L'image numérique d'origine a un nombre (N) de lignes de balayage d'origine successives et un nombre (N') de données de pixel d'origine successives par ligne de balayage d'origine. Le dispositif comprend en outre une unité de changement d'échelle verticale pour changer l'échelle de l'image numérique d'origine dans une direction verticale pour obtenir un nombre (M) de lignes de balayage successives souhaitées, et une unité de changement d'échelle horizontale pour changer l'échelle des lignes de balayage souhaitées provenant de l'unité de changement d'échelle verticale dans une direction horizontale pour obtenir un nombre (M') de données de pixel successives souhaitées par ligne de balayage. According to the present invention, a device is capable of processing an original digital image to obtain a desired digital image on a uniformly modified scale. The device includes an image memory for storing the original digital image therein. The original digital image has a number (N) of successive original scan lines and a number (N ') of successive original pixel data per original scan line. The device further comprises a vertical scale change unit for changing the scale of the original digital image in a vertical direction to obtain a desired number (M) of successive scan lines, and a color change unit 'horizontal scale for changing the scale of the desired scan lines from the vertical scale change unit in a horizontal direction to obtain a number (M') of successive pixel data desired per scan line.

Afin de permettre à l'unité de changement d'échelle verticale de changer l'échelle de l'image numérique d'origine lorsque le nombre (M) est supérieur au nombre (N), l'unité de changement d'échelle verticale comprend : une mémoire de ligne reliée à la mémoire d'image pour y mémoriser la (n+l)iÔle ligne de balayage d'origine provenant de la mémoire d'image ; un tampon de ligne relié à la mémoire de ligne pour y mémoriser la (n)i" ligne de balayage d'origine ; un premier interpolateur linéaire relié à la mémoire de ligne et au tampon de ligne ; et un contrôleur de changement d'échelle verticale relié à la mémoire d'image, au tampon de ligne et au premier interpolateur linéaire. Le contrôleur de changement d'échelle verticale commande la mémorisation des lignes de balayage d'origine dans la mémoire de ligne et le tampon de ligne, et commande en outre le premier interpolateur linéaire de façon à effectuer une interpolation linéaire entre la (n)'6"' et la (n+1)iêne lignes de balayage d'origine provenant de la mémoire de ligne et du tampon de ligne de façon à produire une ligne de balayage interpolée résiduelle qui est insérée entre les données d'interpolation lorsque la division de (M-N) par (N-l) laisse un reste (S) et lorsque (n) est un nombre minimum qui remplit la condition (n+l)*(S) 2 (s)*(N), où (s) varie de 1 à (S). In order to allow the vertical scale change unit to change the scale of the original digital image when the number (M) is greater than the number (N), the vertical scale change unit includes : a line memory connected to the image memory for storing therein the (n + 1) iÔ original scan line coming from the image memory; a line buffer connected to the line memory for storing the (n) i "original scan line therein; a first linear interpolator connected to the line memory and the line buffer; and a scale change controller vertical connected to the image memory, the line buffer and the first linear interpolator. The vertical scale change controller controls the storage of the original scan lines in the line memory and the line buffer, and controls furthermore the first linear interpolator so as to perform a linear interpolation between the (n) '6 "' and the (n + 1) th original scan lines from the line memory and the line buffer so as to produce a residual interpolated scan line which is inserted between the interpolation data when the division of (MN) by (Nl) leaves a remainder (S) and when (n) is a minimum number which fulfills the condition (n + l ) * (S) 2 (s) * (N), where (s) varies from 1 to (S).

Afin de permettre à l'unité de changement d'échelle verticale de changer l'échelle de l'image numérique d'origine lorsque le nombre (M) est inférieur au nombre (N), le contrôleur de changement d'échelle verticale comprend un premier générateur d'adresse, relié à la mémoire d'image, pour commander la mémoire d'image de façon à fournir en sortie une première ligne de balayage d'origine pour mémorisation dans la mémoire de ligne ; des premiers moyens de génération d'un nombre (U), qui est le reste de la division de (N) par (M) ; un premier registre de données des premiers moyens additionneurs, reliés aux premiers moyens de génération et au premier registre de données, prévus pour additionner (U) et le nombre mémorisé dans le premier registre de données de façon à obtenir une somme et des premiers moyens de calcul, reliés aux premiers moyens additionneurs, au premier générateur d'adresse et au premier registre de données, destinés à comparer la somme avec le nombre (M) et à activer le premier générateur d'adresse de façon à commander la mémoire de ligne de façon qu'elle fournisse en sortie une autre ligne de balayage d'origine pour mémorisation dans la mémoire de ligne, cette autre ligne de balayage d'origine étant décalée par rapport à la ligne de balayage d'origine immédiatement précédente apparue en sortie de la mémoire d'image d'un nombre (V) égal au quotient de la division de (N) par (M) lorsque la somme est inférieure à (M), et d'un nombre (V+1) lorsque la somme est au moins égale au nombre (M). Les premiers moyens de calcul mémorisent la différence entre le nombre (M) et la somme dans le premier registre de données lorsque la somme est au moins égale à (M), et mémorisent la somme dans le premier registre de données lorsque la somme est inférieure à (M). In order to allow the vertical scale change unit to change the scale of the original digital image when the number (M) is less than the number (N), the vertical scale change controller includes a first address generator, connected to the image memory, for controlling the image memory so as to output a first original scan line for storage in the line memory; first means for generating a number (U), which is the remainder of the division of (N) by (M); a first data register of the first adding means, connected to the first generation means and to the first data register, provided for adding (U) and the number stored in the first data register so as to obtain a sum and first means of calculation, connected to the first adding means, to the first address generator and to the first data register, intended to compare the sum with the number (M) and to activate the first address generator so as to control the line memory of so that it provides at output another original scan line for storage in the line memory, this other original scan line being offset with respect to the immediately preceding original scan line which appeared at the output of the image memory of a number (V) equal to the quotient of the division of (N) by (M) when the sum is less than (M), and of a number (V + 1) when the sum is a u less equal to the number (M). The first calculation means memorize the difference between the number (M) and the sum in the first data register when the sum is at least equal to (M), and memorize the sum in the first data register when the sum is less to (M).

Afin de permettre à l'unité de changement d'échelle horizontale de changer l'échelle des lignes de balayage souhaitées provenant de l'unité de changement d'échelle verticale lorsque le nombre (M') est supérieur au nombre (N'), l'unité de changement d'échelle horizontale comprend un registre de point relié au premier interpolateur linéaire pour y mémoriser la (n'+l)i" donnée de pixel d'une des lignes de balayage provenant du premier interpolateur linéaire ; un tampon de point relié au registre de point pour y mémoriser la (n' )t donnée de pixel de ladite ligne de balayage ; un deuxième interpolateur linéaire relié au registre de point et au tampon de point ; et un contrôleur de changement d'échelle horizontale relié à la mémoire de ligne, au tampon de ligne, au tampon de point et au deuxième interpolateur linéaire. Le contrôleur de changement d'échelle horizontale commande la mémorisation des données de pixel dans le registre de point et le tampon de point, et commande en outre le deuxième interpolateur linéaire de façon à effectuer une interpolation linéaire entre la (n' )iH et la (n'+l )i- données de pixel provenant du registre de point et du tampon de point de façon à produire des données de pixel interpolées résiduelles qui sont insérées entre les données d'interpolation lorsque la division de (M'-N') par (N'-l) laisse un reste (S') et lorsque (n') est un nombre minimum qui remplit la condition (n'+l)*(S') 2 (s')*(N'), où (s') varie de 1 à (S'). In order to allow the horizontal scaling unit to scale the desired scan lines from the vertical scaling unit when the number (M ') is greater than the number (N'), the horizontal scaling unit comprises a point register connected to the first linear interpolator to store therein the (n '+ l) i "pixel data of one of the scanning lines originating from the first linear interpolator; a buffer of point connected to the point register to store therein the (n ') t pixel data of said scanning line; a second linear interpolator connected to the point register and the point buffer; and a horizontal scale change controller connected to the line memory, the line buffer, the point buffer and the second linear interpolator. The horizontal scaling controller controls the storage of pixel data in the point register and the point buffer t, and further controls the second linear interpolator so as to perform a linear interpolation between the (n ') iH and the (n' + l) i- pixel data from the point register and the point buffer so as to produce residual interpolated pixel data which is inserted between the interpolation data when the division of (M'-N ') by (N'-l) leaves a remainder (S') and when (n ') is a number minimum which fulfills the condition (n '+ l) * (S') 2 (s ') * (N'), where (s ') varies from 1 to (S').

Afin de permettre à l'unité de changement d'échelle horizontale de changer l'échelle des lignes de balayage souhaitées provenant de l'unité de changement d'échelle verticale lorsque le nombre (M') est inférieur au nombre (N'), le contrôleur de changement d'échelle horizontale comprend : un deuxième générateur d'adresse, relié à la mémoire de ligne, pour commander la mémoire de ligne de façon à fournir en sortie une première donnée de pixel d'origine d'une des lignes de balayage d'origine ; des deuxièmes moyens de génération d'un nombre (U'), qui est le reste de la division de (N') par (M') ; un deuxième registre de données ; des deuxièmes moyens additionneurs, reliés aux deuxièmes moyens de génération et au deuxième registre de données, prévus pour additionner (U') et le nombre mémorisé dans le deuxième registre de données de façon à obtenir une somme ; et des deuxièmes moyens de calcul, reliés aux deuxièmes moyens additionneurs, au deuxième générateur d'adresse et au deuxième registre de données, destinés à comparer la somme avec le nombre (M') et à activer le deuxième générateur d'adresse de façon à commander la mémoire de ligne de façon qu'elle fournisse en sortie une autre donnée de pixel d'origine de ladite ligne de balayage d'origine, cette autre donnée de pixel d'origine de ladite ligne de balayage d'origine étant décalée par rapport à la donnée de pixel d'origine immédiatement précédente apparue en sortie de la mémoire de ligne d'un nombre (V') égal au quotient de la division de (N') par (M') lorsque la somme est inférieure à (M'), et d'un nombre (V'+1) lorsque la somme est au moins égale au nombre (M'). Les deuxièmes moyens de calcul mémorisent la différence entre le nombre (M') et la somme dans le deuxième registre de données lorsque la somme est au moins égale à (M'), et mémorisent la somme dans le deuxième registre de données lorsque la somme est inférieure à (M'). In order to allow the horizontal scaling unit to scale the desired scan lines from the vertical scaling unit when the number (M ') is less than the number (N'), the horizontal scale change controller comprises: a second address generator, connected to the line memory, for controlling the line memory so as to output a first original pixel data of one of the lines of original scan; second means for generating a number (U '), which is the remainder of the division of (N') by (M '); a second data register; second adding means, connected to the second generation means and to the second data register, provided for adding (U ') and the number stored in the second data register so as to obtain a sum; and second calculating means, connected to the second adding means, to the second address generator and to the second data register, intended to compare the sum with the number (M ′) and to activate the second address generator so as to controlling the line memory so that it outputs another original pixel data from said original scanning line, this other original pixel data from said original scanning line being offset with respect to to the immediately preceding original pixel data appearing at the output of the line memory of a number (V ') equal to the quotient of the division of (N') by (M ') when the sum is less than (M '), and a number (V' + 1) when the sum is at least equal to the number (M '). The second calculation means stores the difference between the number (M ') and the sum in the second data register when the sum is at least equal to (M'), and stores the sum in the second data register when the sum is less than (M ').

La sortie du deuxième interpolateur linéaire de l'unité de changement d'échelle horizontale peut être fournie directement à un dispositif de sortie. The output of the second linear interpolator from the horizontal scaling unit can be supplied directly to an output device.

D'autres caractéristiques et avantages de l'invention apparaîtront mieux à la lecture de la description qui suit d'un mode avantageux de réalisation. La description se réfère aux dessins qui l'accompagnent, dans lesquels
la figure 1 est un synoptique de principe d'un mode de réalisation avantageux d'un dispositif de changement d'échelle suivant l'invention ;
la figure 2 est un synoptique de principe d'un additionneur bilinéaire utilisable dans le mode de réalisation avantageux
la figure 3 est un synoptique de principe d'un contrôleur de changement d'échelle verticale dans le mode de réalisation avantageux
la figure 4 est un synoptique de principe d'un répartiteur de résidu du contrôleur de changement d'échelle verticale
la figure 5 est un synoptique de principe d'un générateur de série de alpha du contrôleur de changement d'échelle verticale
la figure 6 est un synoptique de principe d'un générateur d'adresse du contrôleur de changement d'échelle verticale
la figure 7 est un chronogramme montrant l'opération d'agrandissement vertical d'une unité de changement d'échelle verticale dans le mode avantageux de réalisation, lorsque N=5 et AN=2 ;
la figure 8 est un chronogramme montrant l'opération d'agrandissement vertical de l'unité de changement d'échelle verticale lorsque N=5 et AN=6 ;
la figure 9 est un chronogramme montrant l'opération de réduction verticale de l'unité de changement d'échelle verticale lorsque N=5 et AN=2 ;
la figure 10 est un chronogramme montrant l'opération d'agrandissement horizontal d'une unité de changement d'échelle horizontale dans le mode de réalisation avantageux lorsque N'=5 et AN'=2 ; et
la figure 11 est un chronogramme montrant l'opération de réduction horizontale d'une unité de changement d'échelle horizontale lorsque N'=5 et AN'=2.
Other characteristics and advantages of the invention will appear better on reading the following description of an advantageous embodiment. The description refers to the accompanying drawings, in which
Figure 1 is a block diagram of an advantageous embodiment of a scale change device according to the invention;
Figure 2 is a block diagram of a bilinear adder usable in the advantageous embodiment
Figure 3 is a block diagram of a vertical scale controller in the advantageous embodiment
FIG. 4 is a block diagram of a residue distributor of the vertical scale change controller
Figure 5 is a block diagram of an alpha series generator of the vertical scale change controller
FIG. 6 is a block diagram of an address generator of the vertical scale change controller
FIG. 7 is a timing diagram showing the vertical enlargement operation of a vertical scale change unit in the advantageous embodiment, when N = 5 and AN = 2;
FIG. 8 is a timing diagram showing the vertical enlargement operation of the vertical scale change unit when N = 5 and AN = 6;
FIG. 9 is a timing diagram showing the vertical reduction operation of the vertical scale change unit when N = 5 and AN = 2;
FIG. 10 is a timing diagram showing the horizontal enlargement operation of a horizontal scale change unit in the advantageous embodiment when N '= 5 and AN' = 2; and
FIG. 11 is a chronogram showing the operation of horizontal reduction of a unit of change of horizontal scale when N '= 5 and AN' = 2.

Le mode avantageux de réalisation montré en figure 1, destiné à changer de façon uniforme l'échelle d'une image numérique conformément à la présente invention comporte une unité de changement d'échelle verticale et une unité de changement d'échelle horizontale. L'unité de changement d'échelle verticale est capable d'agrandir ou de réduire une image numérique dans la direction verticale et comporte une mémoire de ligne 3, un tampon de ligne 4, un additionneur bilinéaire 5 et un contrôleur de changement d'échelle verticale 6. L'unité de changement d'échelle horizontale permet d'agrandir ou de réduire une image numérique dans la direction horizontale et comporte un registre de point 7, un tampon de point 8, un additionneur bilinéaire 9 et un contrôleur de changement d'échelle horizontale 10. The advantageous embodiment shown in FIG. 1, intended for uniformly changing the scale of a digital image in accordance with the present invention comprises a vertical scale change unit and a horizontal scale change unit. The vertical scale change unit is capable of enlarging or reducing a digital image in the vertical direction and has a line memory 3, a line buffer 4, a bilinear adder 5 and a scale change controller vertical 6. The horizontal scale change unit makes it possible to enlarge or reduce a digital image in the horizontal direction and comprises a point register 7, a point buffer 8, a bilinear adder 9 and a change controller d horizontal scale 10.

Lors de la mise en oeuvre, on mémorise initialement dans une mémoire d'image 2 une image numérique à traiter en utilisant le dispositif du mode avantageux de réalisation. During implementation, a digital image to be processed is initially stored in an image memory 2 using the device of the advantageous embodiment.

L'image numérique peut provenir d'un décodeur d'image ou d'un système de saisie d'image. Le contrôleur de changement d'échelle verticale 6 commande la mémoire d'image 2 de façon à fournir une ligne de balayage sélectionnée de l'image numérique à la mémoire de ligne 3. Le contrôleur de changement d'échelle verticale 6 commande de plus le tampon de ligne 4 de façon à mémoriser une ligne de balayage antérieure provenant de la mémoire de ligne 3. L'additionneur bilinéaire 5 reçoit des données de ligne de balayage provenant de la mémoire de ligne 3 et du tampon de ligne 4, et effectue une interpolation bilinéaire en appliquant une paire de coefficients de pondération a, 1-a provenant du contrôleur de changement d'échelle verticale 6.The digital image can come from an image decoder or an image capture system. The vertical scaling controller 6 controls the image memory 2 so as to provide a selected scan line of the digital image to the line memory 3. The vertical scaling controller 6 further controls the line buffer 4 so as to store an earlier scan line from line memory 3. Bilinear adder 5 receives scan line data from line memory 3 and line buffer 4, and performs a bilinear interpolation by applying a pair of weighting coefficients a, 1-a from the vertical scale change controller 6.

La sortie de l'additionneur bilinéaire 5 est reçue par le registre de point 7. Le contrôleur de changement d'échelle horizontale 10 commande le tampon de point 8 pour y mémoriser des données de pixel antérieures provenant du registre de point 7. L'additionneur bilinéaire 9 reçoit des données de pixel provenant du registre de point 7 et du tampon de point 8, et effectue une interpolation bilinéaire en appliquant une paire de coefficients de pondération a, 1a provenant du contrôleur de changement d'échelle horizontale 10. The output of the bilinear adder 5 is received by the point register 7. The horizontal scale change controller 10 controls the point buffer 8 to store therein previous pixel data coming from the point register 7. The adder bilinear 9 receives pixel data from the point register 7 and the point buffer 8, and performs bilinear interpolation by applying a pair of weighting coefficients a, 1a from the horizontal scaling controller 10.

La figure 2 est un synoptique de l'additionneur bilinéaire 5. Tel qu'il est représenté, une donnée de ligne de balayage provenant du tampon de ligne 4, qui correspond à une (n)ie ligne de balayage de l'image numérique dans la mémoire d'image 2, est multipliée par le coefficient l-a, alors que la donnée de ligne de balayage provenant de la mémoire de ligne 3, qui correspond à une (n+l )I ligne de balayage de l'image numérique dans la mémoire d'image 2, est multipliée par le coefficient a. Les produits résultants sont ensuite additionnés pour fournir une ligne de balayage interpolée lorsque le coefficient a est une fraction, c'està-dire n'est égal ni à O ni à 1. Le fonctionnement de l'additionneur bilinéaire 5 sera décrit davantage par la suite. FIG. 2 is a block diagram of the bilinear adder 5. As shown, a scan line data item originating from the line buffer 4, which corresponds to one (n) ie scan line of the digital image in the image memory 2 is multiplied by the coefficient la, while the scan line data coming from the line memory 3, which corresponds to a (n + l) I scan line of the digital image in the image memory 2, is multiplied by the coefficient a. The resulting products are then added to provide an interpolated scan line when the coefficient a is a fraction, that is to say is neither equal to O nor to 1. The operation of the bilinear adder 5 will be described further by the after.

La structure de l'additionneur bilinéaire 9 est similaire à celle de l'additionneur bilinéaire 5 représenté sur la figure 2. Dans l'additionneur bilinéaire 9, cependant, les données de pixel provenant du tampon de point 8, qui correspondent à des (n' )iêles données de pixel des données de ligne de balayage provenant de l'additionneur bilinéaire 5, sont multipliées par le coefficient l-a, alors que les données de pixel provenant du registre de point 7, qui correspondent à des (n+l)i es données de pixel des données de ligne de balayage provenant de l'additionneur bilinéaire 5, sont multipliées par le coefficient a. Ainsi, le registre de point 7 est équivalent a la mémoire de ligne 3 de l'unité de changement d'échelle verticale, alors que le tampon de point 8 est équivalent au tampon de ligne 4 de l'unité de changement d'échelle verticale. The structure of the bilinear adder 9 is similar to that of the bilinear adder 5 shown in Figure 2. In the bilinear adder 9, however, the pixel data from the point buffer 8, which correspond to (n ') the pixel data of the scan line data coming from the bilinear adder 5, are multiplied by the coefficient la, while the pixel data coming from the point register 7, which correspond to (n + l) i The pixel data of the scan line data coming from the bilinear adder 5, are multiplied by the coefficient a. Thus, point register 7 is equivalent to line memory 3 of the vertical scale change unit, while point buffer 8 is equivalent to line buffer 4 of the vertical scale change unit .

La figure 3 montre un contrôleur de changement d'échelle verticale 6 qui comporte un Jeu de registres programmables 30 comprenant un premier registre 30a pour mémoriser le nombre (N) de lignes de balayage d'origine de l'image numérique dans la mémoire d'image 2, un second registre 30b pour mémoriser le nombre (AN) de lignes de balayage à interpoler ou à supprimer et un troisième registre 30c pour mémoriser un fanion INC/DEC 38 destiné à indiquer si on doit effectuer un agrandissement ou une réduction de l'image numérique dans une direction verticale. FIG. 3 shows a vertical scale change controller 6 which comprises a set of programmable registers 30 comprising a first register 30a for storing the number (N) of original scan lines of the digital image in the memory of image 2, a second register 30b for memorizing the number (AN) of scan lines to be interpolated or to be deleted and a third register 30c for memorizing an INC / DEC flag 38 intended to indicate whether an enlargement or a reduction of the digital image in a vertical direction.

Le contrôleur de changement d'échelle verticale 6 comporte également des premier, second et troisième circuits de calcul 31, 32, 33 qui lisent le contenu des premier, second et troisième registres 30a, 30b, 30c. Le premier circuit de calcul 31 fournit en sortie un quotient T de la division de (AN) par (N-l), alors que le second circuit de calcul 32 fournit un reste S de la division de (bN) par (N-1). Le quotient T correspond au nombre minimum de lignes de balayage interpolées à insérer entre les deux lignes de chaque paire de lignes de balayage d'origine de l'image numérique mémorisée dans la mémoire d'image 2, alors que le reste S correspond au nombre total de lignes de balayage interpolées résiduelles à répartir uniformément parmi les lignes de balayage d'origine de l'image numérique mémorisée dans la mémoire d'image 2 lorsque l'image numérique est agrandie. Le troisième circuit de calcul 33 fournit en sortie un reste U de la division de (N) par (N-AN). Le reste
U correspond au nombre total de lignes de balayage résiduelles à supprimer dans l'image numérique mémorisée dans la mémoire d'image 2 lorsqu'on réduit l'image numérique.
The vertical scale change controller 6 also includes first, second and third calculation circuits 31, 32, 33 which read the content of the first, second and third registers 30a, 30b, 30c. The first calculation circuit 31 provides at output a quotient T of the division of (AN) by (Nl), while the second calculation circuit 32 provides a remainder S of the division of (bN) by (N-1). The quotient T corresponds to the minimum number of interpolated scanning lines to be inserted between the two lines of each pair of original scanning lines of the digital image stored in the image memory 2, while the remainder S corresponds to the number total of residual interpolated scan lines to be distributed uniformly among the original scan lines of the digital image stored in the image memory 2 when the digital image is enlarged. The third calculation circuit 33 provides at output a remainder U of the division of (N) by (N-AN). The rest
U corresponds to the total number of residual scanning lines to be deleted in the digital image stored in the image memory 2 when the digital image is reduced.

Un sélecteur à deux entrées 34 a une première entrée qui reçoit le reste U provenant du troisième circuit de calcul 33 et une seconde entrée qui reçoit le reste S provenant du second circuit de calcul 32. Le sélecteur 34 a également une entrée de commande qui reçoit le fanion
INC/DEC 38 provenant du troisième registre 30c. La sortie 42 du sélecteur 34 attaque un répartiteur de résidu 35. Le répartiteur de résidu 35 reçoit également le quotient T provenant du premier circuit de calcul 31, et a une entrée de commande qui reçoit le fanion INC/DEC 38 provenant du troisième registre 30c et une sortie de commande 39 reliée à un générateur de série de a 36 et à un générateur d'adresse 37. Le répartiteur de résidu 35 détermine si une étape d'interpolation résiduelle est à effectuer au cours de l'agrandissement de l'image numérique et si une ligne de balayage résiduelle doit être supprimée au cours de la réduction de l'image numérique. Le générateur de série de a 36 reçoit le quotient T provenant du premier circuit de calcul 31 et le fanion INC/DEC 38 provenant du troisième registre 30c, et génère les coefficients a, l-a pour l'additionneur bilinéaire 5 et un signal de commande de mémorisation pour le tampon de ligne 4 (voir figure 1). Le générateur d'adresse 37 reçoit également le quotient T provenant du premier circuit de calcul 31 et le fanion
INC/DEC 38 provenant du troisième registre 30c, et il fournit une donnée d'adresse de ligne à la mémoire d'image 2.
A two-input selector 34 has a first input which receives the remainder U from the third computing circuit 33 and a second input which receives the remainder S from the second computing circuit 32. The selector 34 also has a control input which receives the pennant
INC / DEC 38 from the third register 30c. The output 42 of the selector 34 drives a residue distributor 35. The residue distributor 35 also receives the quotient T coming from the first calculation circuit 31, and has a command input which receives the INC / DEC flag 38 coming from the third register 30c and a control output 39 connected to a series generator of a 36 and to an address generator 37. The residue distributor 35 determines whether a residual interpolation step is to be carried out during the enlargement of the image digital and if a residual scan line should be deleted during the reduction of the digital image. The series generator of a 36 receives the quotient T from the first calculation circuit 31 and the flag INC / DEC 38 from the third register 30c, and generates the coefficients a, la for the bilinear adder 5 and a control signal from storage for line buffer 4 (see figure 1). The address generator 37 also receives the quotient T coming from the first calculation circuit 31 and the flag
INC / DEC 38 from the third register 30c, and it supplies line address data to the image memory 2.

La figure 4 montre que le répartiteur de résidu 35 comprend un circuit de calcul 40 qui fournit à sa sortie la différence entre (N) et (AN), et un sélecteur à deux entrées 41 dont la première entrée reçoit la sortie du circuit de calcul 40 et la seconde entrée reçoit le nombre (N) provenant du premier registre 30a. I1 comporte une entrée de commande qui reçoit le fanion INC/DEC 38 provenant du troisième registre 30c. Un registre de données médian 56 reçoit la sortie 42 du sélecteur 34 (voir figure 3). Sa sortie est reliée à l'une des entrées d'un additionneur à deux entrées 43. L'autre entrée de l'additionneur 43 reçoit la sortie 42 du sélecteur 34. La sortie de l'additionneur 43 et la sortie du sélecteur 41 constituent les entrées d'un circuit de calcul 44 qui soustrait la seconde de la première et qui fournit un signal de validation sur sa sortie de commande 39 lorsque la sortie de l'additionneur 43 est supérieure ou égale à la sortie du sélecteur 41. Un sélecteur à deux entrées 45 a une première entrée qui reçoit la sortie de l'additionneur 43, une seconde entrée qui reçoit la différence entre les sorties de l'additionneur 43 et du sélecteur 41 provenant du circuit de calcul 44, une entrée de commande reliée à la sortie de commande 39 du circuit de calcul 44 et une sortie qui est reliée au registre de données médian 56. FIG. 4 shows that the residue distributor 35 includes a calculating circuit 40 which provides at its output the difference between (N) and (AN), and a selector with two inputs 41 whose first input receives the output of the calculating circuit 40 and the second entry receives the number (N) from the first register 30a. I1 has a control input which receives the INC / DEC flag 38 from the third register 30c. A median data register 56 receives the output 42 of the selector 34 (see FIG. 3). Its output is connected to one of the inputs of a two-input adder 43. The other input of the adder 43 receives the output 42 of the selector 34. The output of the adder 43 and the output of the selector 41 constitute the inputs of a calculation circuit 44 which subtracts the second from the first and which supplies a validation signal on its control output 39 when the output of the adder 43 is greater than or equal to the output of the selector 41. A selector with two inputs 45 has a first input which receives the output of the adder 43, a second input which receives the difference between the outputs of the adder 43 and of the selector 41 coming from the calculation circuit 44, a control input connected to the control output 39 of the calculation circuit 44 and an output which is connected to the median data register 56.

Un circuit de modification d'horloge 46 reçoit l'horloge de ligne d'entrée d'origine et la modifie en fonction du signal sur la sortie de commande 39 et du quotient T provenant du premier circuit de calcul 31. A clock modification circuit 46 receives the original input line clock and modifies it as a function of the signal on the control output 39 and of the quotient T coming from the first calculation circuit 31.

L'horloge de ligne d'entrée d'origine peut être l'horloge de ligne de balayage d'affichage de sorte que l'opération de changement d'échelle verticale peut être effectuée au fur et à mesure que les données d'image d'origine sont fournies en sortie pour affichage sur un dispositif de sortie, tel qu'une imprimante ou un écran d'ordinateur. Lorsque la sortie de commande 39 est à l'état logique haut, le circuit de modification d'horloge 46 fournit sur sa sortie une horloge divisée par (T+2) dont la durée est (T+2) fois celle de l'horloge de ligne d'entrée d'origine. Lorsque la sortie de commande 39 est à l'état logique bas, le circuit de modification d'horloge 46 fournit en sortie une horloge divisée par (T+1) dont la durée est (T+1) fois celle de l'horloge de ligne d'entrée d'origine. La sortie du circuit de modification d'horloge 46 et l'horloge de ligne d'entrée d'origine constituent les entrées d'un sélecteur 47. Le fanion INC/DEC 38 provenant du troisième registre 30c constitue l'entrée de commande du sélecteur 47. Le registre de données médian 56 a une broche de chargement LD qui reçoit un signal d'horloge mH1 provenant du sélecteur 47.The original input line clock may be the display scan line clock so that the vertical scaling operation can be performed as the image data d The original is output for display on an output device, such as a printer or computer screen. When the control output 39 is in the high logic state, the clock modification circuit 46 provides on its output a clock divided by (T + 2) whose duration is (T + 2) times that of the clock original entry line. When the control output 39 is in the low logic state, the clock modification circuit 46 provides as output a clock divided by (T + 1) whose duration is (T + 1) times that of the clock of original entry line. The output of the clock modification circuit 46 and the original input line clock constitute the inputs of a selector 47. The INC / DEC flag 38 coming from the third register 30c constitutes the control input of the selector 47. The middle data register 56 has a loading pin LD which receives a clock signal mH1 coming from the selector 47.

Le générateur de série de a (figure 5) 36 comporte un générateur de coefficients 363 relié à la sortie de commande 39 du circuit de calcul 44 et qui reçoit l'horloge de ligne d'entrée d'origine et le quotient T provenant du premier circuit de calcul 31. Lorsque la sortie de commande 39 est à l'état logique haut, le générateur de coefficients 363 fournit successivement des coefficients a égaux à 1, 1/(T+2), 2/(T+2), . . . . . . (T+1)/(T+2) respectivement, au cours de (T+2) périodes d'horloge de ligne successives ; lorsque la sortie de commande 39 est à l'état logique bas, le générateur de coefficients 363 fournit successivement des coefficients a égaux à 1, 1/(T+1), 2/(T+1), ...... (T)/(T+1) respectivement au cours de (T+1) périodes d'horloge de ligne succes-sives. Un sélecteur 364 a une première entrée qui est en permanence à 1, une seconde entrée qui reçoit la sortie du générateur de coefficients 363 et une entrée de commande qui reçoit le fanion INC/DEC 38. La sortie du sélecteur 364 constitue le coefficient a et est appliquée à l'une des entrées d'un circuit soustracteur 365. L'autre entrée du circuit soustracteur 365 est en permanence à 1. L'une des sorties du circuit soustracteur 365 est le coefficient l-a. The series generator of a (FIG. 5) 36 includes a coefficient generator 363 connected to the control output 39 of the calculation circuit 44 and which receives the original input line clock and the quotient T coming from the first calculation circuit 31. When the control output 39 is in the high logic state, the coefficient generator 363 successively supplies coefficients a equal to 1, 1 / (T + 2), 2 / (T + 2),. . . . . . (T + 1) / (T + 2) respectively, during (T + 2) successive line clock periods; when the control output 39 is in the low logic state, the coefficient generator 363 successively supplies coefficients a equal to 1, 1 / (T + 1), 2 / (T + 1), ...... (T) / (T + 1) respectively during (T + 1) successive line clock periods. A selector 364 has a first input which is permanently at 1, a second input which receives the output of the coefficient generator 363 and a control input which receives the INC / DEC flag 38. The output of selector 364 constitutes the coefficient a and is applied to one of the inputs of a subtractor circuit 365. The other input of the subtractor circuit 365 is permanently at 1. One of the outputs of the subtractor circuit 365 is the coefficient la.

L'autre sortie du circuit soustracteur 365 est le signal de commande de mémorisation pour le tampon de ligne 4 (voir figure 1). Le circuit soustracteur 365 génère le signal de commande de mémorisation lorsque le coefficient l-a est nul, c'est-à-dire lorsque a = 1.The other output of the subtractor circuit 365 is the storage control signal for the line buffer 4 (see FIG. 1). The subtractor circuit 365 generates the storage control signal when the coefficient l-a is zero, that is to say when a = 1.

La figure 6 montre que le générateur d'adresse 37 comprend un circuit de calcul 371 qui fournit en sortie un quotient V de la division de (N) par (N-AN). Le quotient V correspond à un nombre de décalage entre deux lignes de balayage sélectionnées de l'image numérique dans la mémoire d'image 2 lorsque l'image numérique est à réduire. Le quotient V et la sortie de commande 39 constituent les entrées d'un additionneur 372. La sortie de l'additionneur 372 constitue l'une des entrées d'un sélecteur 373. L'autre entrée du sélecteur 373 est fixée a 1. Le fanion INC/DEC 38 est utilisé comme entrée de commande du sélecteur 373. Le sélecteur 373 génère un nombre de décalage qui est appliqué à un additionneur 374. La sortie de l'additionneur 374 est reliée à un registre d'adresse 375. La sortie du registre d'adresse 375 constitue la donnée d'adresse de ligne et, à son tour, est reçue par l'additionneur 374. Le registre d'adresse 375 a une entrée "départ" destinée à prépositionner une adresse de ligne qui est celle de la première des lignes de balayage d'origine mémorisées dans la mémoire d'image 2. Le registre d'adresse 375 a également une broche de chargement LD pour commander la mémorisation d'une nouvelle adresse dans le registre. FIG. 6 shows that the address generator 37 comprises a calculation circuit 371 which supplies as output a quotient V of the division of (N) by (N-AN). The quotient V corresponds to a number of shifts between two selected scanning lines of the digital image in the image memory 2 when the digital image is to be reduced. The quotient V and the control output 39 constitute the inputs of an adder 372. The output of the adder 372 constitutes one of the inputs of a selector 373. The other input of the selector 373 is fixed at 1. The INC / DEC flag 38 is used as control input for selector 373. Selector 373 generates an offset number which is applied to an adder 374. The output of adder 374 is connected to an address register 375. The output of the address register 375 constitutes the line address data and, in turn, is received by the adder 374. The address register 375 has an "outgoing" entry intended to preposition a line address which is that of the first of the original scan lines stored in the image memory 2. The address register 375 also has a loading pin LD for controlling the storage of a new address in the register.

Un circuit de verrouillage 376 (réseau de bascules) échantillonne et bloque le signal à la sortie de commande 39, à la cadence de l'horloge de ligne d'entrée d'origine. A latch circuit 376 (latch network) samples and blocks the signal at control output 39, at the rate of the original input line clock.

Un circuit de modification d'horloge 377 reçoit l'horloge de ligne d'entrée d'origine et la modifie en fonction de la sortie du circuit de verrouillage 376 et du quotient T provenant du premier circuit de calcul 31. Lorsque la sortie du circuit de verrouillage 376 est à l'état logique haut, le circuit de modification d'horloge 377 fournit en sortie une horloge divisée par (T+2) dont la durée est (T+2) fois celle de l'horloge de ligne d'entrée d'origine. Lorsque la sortie du circuit de verrouillage 376 est à l'état logique bas, le circuit de modification d'horloge 377 fournit en sortie une horloge divisée par (T+1) dont la durée est (T+1) fois celle de l'horloge de ligne d'entrée d'origine. Un sélecteur 378 reçoit l'horloge de ligne d'entrée d'origine et la sortie du circuit de modification d'horloge 377. I1 est commandé par le fanion INC/DEC 38 de façon à fournir en sortie l'une des entrées, sous forme d'une entrée d'horloge mH2 qui est reçue par le registre d'adresse 375 sur la broche de chargement
LD.
A clock modification circuit 377 receives the original input line clock and modifies it as a function of the output of the latch circuit 376 and of the quotient T coming from the first calculation circuit 31. When the output of the circuit 376 is in the high logic state, the clock modification circuit 377 supplies as output a clock divided by (T + 2) whose duration is (T + 2) times that of the line clock of original entry. When the output of the latch circuit 376 is in the low logic state, the clock modification circuit 377 provides as output a clock divided by (T + 1) whose duration is (T + 1) times that of the original input line clock. A selector 378 receives the original input line clock and the output of the clock modification circuit 377. I1 is controlled by the INC / DEC flag 38 so as to output one of the inputs, under form of a clock input mH2 which is received by the address register 375 on the loading pin
LD.

La structure du contrôleur de changement d'échelle horizontale 10 est sensiblement similaire à celle du contrôleur de changement d'échelle verticale 6 représenté sur les figures 3 à 6. I1 existe des différences mineures entre les deux contrôleurs 6 et 10. Par exemple, dans le contrôleur de changement d'échelle horizontale 10, le premier registre du jeu de registres programmables est utilisé pour mémoriser le nombre (N) de données de pixel par ligne de balayage d'origine de l'image numérique dans la mémoire d'image 2, et le second registre est utilisé pour mémoriser le nombre (AN') de données de pixel à interpoler ou à supprimer par ligne de balayage. Le troisième registre mémorise un fanion INC/DEC qui est utilisé pour indiquer s'il y a lieu d'effectuer un agrandissement ou une réduction de l'image numérique dans une direction horizontale. Le premier circuit de calcul génère le quotient T' correspondant au nombre minimum de données de pixel interpolées à insérer entre les deux données de chaque paire de données de pixel des données de ligne de balayage provenant de l'additionneur bilinéaire 5. Le second circuit de calcul génère le reste S' correspondant au nombre d'affichage de sorte que l'opération de changement d'échelle horizontale peut être effectuée au fur et à mesure que les données d'image d'origine sont fournies en sortie pour affichage sur le dispositif de sortie. La sortie d'adresse du registre d'adresse du contrôleur de changement d'échelle horizontale 10 est une adresse de point qui est utilisée pour commander la mémoire de ligne 3 et le tampon de ligne 4. Ainsi, pendant l'agrandissement dans une direction horizontale, l'ensemble des données de pixel de la (n)i^ et de la (n+l)t'e lignes de balayage d'origine et des lignes de balayage interpolées entre elles, le cas échéant, traversent l'additionneur bilinéaire 5. Lors d'une réduction à la fois dans les directions verticale et horizontale, seules des données de pixel sélectionnées des lignes de balayage d'origine choisies traversent l'additionneur bilinéaire 5. The structure of the horizontal scale controller 10 is substantially similar to that of the vertical scale controller 6 shown in Figures 3 to 6. There are minor differences between the two controllers 6 and 10. For example, in the horizontal scale controller 10, the first register of the set of programmable registers is used to store the number (N) of pixel data per original scan line of the digital image in the image memory 2 , and the second register is used to store the number (AN ') of pixel data to be interpolated or deleted per scan line. The third register stores an INC / DEC flag which is used to indicate whether to enlarge or reduce the digital image in a horizontal direction. The first calculation circuit generates the quotient T 'corresponding to the minimum number of interpolated pixel data to be inserted between the two data of each pair of pixel data of scanning line data coming from the bilinear adder 5. The second circuit of calculation generates the remainder S 'corresponding to the number of displays so that the horizontal scale change operation can be performed as the original image data is output for display on the device Release. The address output of the address register of the horizontal scaling controller 10 is a point address which is used to control the line memory 3 and the line buffer 4. Thus, during enlargement in one direction horizontal, all the pixel data of the (n) i ^ and the (n + l) t'e original scan lines and scan lines interpolated between them, if any, cross the adder bilinear 5. When reducing in both the vertical and horizontal directions, only selected pixel data from the selected original scan lines pass through the bilinear adder 5.

Ainsi, le mode avantageux de réalisation fonctionne de façon à effectuer simultanément un agrandissement ou une réduction dans la direction verticale et un agrandissement ou une réduction dans la direction horizontale. Le fonctionnement du mode avantageux de réalisation va maintenant être décrit dans les paragraphes suivants
A. Pour faciliter l'explication de l'opération d'agrandissement vertical dans le mode avantageux de réalisation, on donnera un exemple dans lequel une image numérique d'origine ayant cinq lignes de balayage d'origine et cinq données de pixel par ligne de balayage est agrandie de façon à obtenir une image numérique souhaitée ayant sept lignes de balayage souhaitées et cinq données de pixel par ligne de balayage.
Thus, the advantageous embodiment operates so as to simultaneously perform an enlargement or reduction in the vertical direction and an enlargement or reduction in the horizontal direction. The operation of the advantageous embodiment will now be described in the following paragraphs
A. To facilitate the explanation of the vertical enlargement operation in the advantageous embodiment, an example will be given in which an original digital image having five original scanning lines and five pixel data per line of scan is enlarged to obtain a desired digital image having seven desired scan lines and five pixel data per scan line.

Le Jeu de registres programmables 30 du contrôleur de changement d'échelle verticale 6 (figure 3) est programmé initialement en mémorisant le nombre "5" dans le premier registre 30a, le nombre "2" dans le second registre 30b et un "1" logique dans le troisième registre 30c. Le nombre "5" correspond au nombre (N) de lignes de balayage d'origine de l'image numérique d'origine dans la mémoire d'image 2. Le nombre "2" correspond au nombre total (bN) de lignes de balayage à interpoler. Le "1" logique dans le troisième registre 30c indique qu'on doit agrandir l'image numérique d'origine dans la direction verticale. Le Jeu de registres programmables du contrôleur de changement d'échelle horizontale 10 est ensuite programmé pour indiquer qu'il y a cinq données de pixel dans chacune des lignes de balayage d'origine, qu'il n'y a pas à interpoler de donnée de pixel pour chaque ligne de balayage d'origine, et qu'il faut effectuer un agrandissement de l'image numérique d'origine dans une direction horizontale. 1
Le premier circuit de calcul 31 fournit en sortie le quotient T de la division de (AN) par (N-l). Puisque (AN) est inférieur à (N-1), le quotient T est 0. Le second circuit de calcul 32 fournit en sortie le reste S de la division de (AN) par (N-1). Dans l'exemple, le reste S est égal à 2. La sortie du troisième circuit de calcul 33 est inutilisée, puisque le sélecteur 34 fournit la sortie du second circuit de calcul 32 au répartiteur de résidu 35 lors de l'opération d'agrandissement. Les sorties des premier, second et troisième circuits de calcul du contrôleur de changement d'échelle horizontale 10 sont égales a 0 puisqu'il n'y a pas à effectuer d'opération d'agrandissement ou de réduction horizontal.
The Set of programmable registers 30 of the vertical scale change controller 6 (FIG. 3) is initially programmed by memorizing the number "5" in the first register 30a, the number "2" in the second register 30b and a "1" logic in the third register 30c. The number "5" corresponds to the number (N) of original scan lines of the original digital image in the image memory 2. The number "2" corresponds to the total number (bN) of scan lines to interpolate. The logic "1" in the third register 30c indicates that the original digital image must be enlarged in the vertical direction. The Programmable Register Set of the Horizontal Scale Change Controller 10 is then programmed to indicate that there are five pixel data in each of the original scan lines, that there is no data to interpolate. pixels for each original scan line, and that the original digital image must be enlarged in a horizontal direction. 1
The first calculation circuit 31 supplies the quotient T of the division of (AN) by (Nl) as an output. Since (AN) is less than (N-1), the quotient T is 0. The second calculation circuit 32 provides as an output the remainder S of the division of (AN) by (N-1). In the example, the remainder S is equal to 2. The output of the third calculation circuit 33 is unused, since the selector 34 supplies the output of the second calculation circuit 32 to the residue distributor 35 during the enlargement operation. . The outputs of the first, second and third calculation circuits of the horizontal scale change controller 10 are equal to 0 since there is no need to perform a horizontal enlargement or reduction operation.

Le registre d'adresse 375 du générateur d'adresse 37 (figure 1 et figures 3 à 7) fixe initialement l'adresse de ligne d'une première ligne de balayage d'origine mémorisée dans la mémoire d'image 2 et commande la mémoire d'image 2 de façon à fournir la première ligne de balayage d'origine à la mémoire de ligne 3 au cours d'un signal d'horloge de ligne de départ. Au même instant, le reste S est mémorisé dans le registre de données médian 56, et l'additionneur 43 aJoute ensuite le reste S au contenu du registre de données médian 56. Puisque la sortie de l'additionneur 43, qui est égale à 4 à cet instant, est inférieure à (N), qui est égal à 5, la sortie de commande 39 du circuit de calcul 44 est à l'état logique bas. Le sélecteur 45 fournit la sortie de l'additionneur 43 au registre de données médian 56, et l'entrée d'horloge mHl fournie au registre de données médian 56 est l'horloge divisée par (T+1), qui est exactement la même que l'horloge de ligne d'entrée d'origine puisque le quotient T est égal à 0. The address register 375 of the address generator 37 (FIG. 1 and FIGS. 3 to 7) initially fixes the line address of a first original scan line stored in the image memory 2 and controls the memory. frame 2 so as to provide the first original scan line to the line memory 3 during a start line clock signal. At the same instant, the remainder S is stored in the middle data register 56, and the adder 43 then adds the rest S to the content of the middle data register 56. Since the output of the adder 43, which is equal to 4 at this instant, is less than (N), which is equal to 5, the control output 39 of the calculation circuit 44 is in the low logic state. The selector 45 provides the output of the adder 43 to the middle data register 56, and the clock input mHl supplied to the middle data register 56 is the clock divided by (T + 1), which is exactly the same than the original input line clock since the quotient T is equal to 0.

Etant donné que la sortie de commande 39 est à l'état logique bas et que le quotient T est égal à o, le générateur de coefficients 363 fournit le nombre "1" au sélecteur 364. Etant donné que le fanion INC/DEC 38 est un "1" logique, le sélecteur 364 choisit la sortie du générateur de coefficients 363 en tant que coefficient de pondération a. Puisque le coefficient a est égal à 1, le coefficient l-a est égal à 0, et le signal de commande de mémorisation est généré de façon à commander le tampon de ligne 4 afin de mémoriser la première des lignes de balayage d'origine, provenant de la mémoire de ligne 3. La sortie de l'additionneur bilinéaire 5 est à ce moment-là la première des lignes de balayage d'origine. Since the control output 39 is in the low logic state and the quotient T is equal to o, the coefficient generator 363 supplies the number "1" to the selector 364. Since the INC / DEC flag 38 is a logical "1", the selector 364 chooses the output of the coefficient generator 363 as the weighting coefficient a. Since the coefficient a is equal to 1, the coefficient la is equal to 0, and the storage command signal is generated so as to control the line buffer 4 in order to memorize the first of the original scanning lines, originating from the line memory 3. The output of the bilinear adder 5 is then the first of the original scan lines.

Le sélecteur 373 fournit un nombre de décalage égal à 1 à l'additionneur 374. L'additionneur 374 incrémente alors la sortie du registre d'adresse 375 d'une unité lorsque l'impulsion d'horloge suivante mH2 arrive et commande ainsi la mémoire d'image 2 de façon à fournir la seconde ligne de balayage d'origine à la mémoire de ligne 3. The selector 373 provides an offset number equal to 1 to the adder 374. The adder 374 then increments the output of the address register 375 by one unit when the next clock pulse mH2 arrives and thus controls the memory 2 to provide the second original scan line to line 3 memory.

Lorsque l'impulsion d'horloge suivante mHl arrive, le registre de données médian 56 mémorise la sortie précédente de l'additionneur 43, qui est le nombre "4". A ce moment-là, la sortie de l'additionneur 43, maintenant égale à 6, est supérieure à (N), qui est égal à 5, de sorte que la sortie de commande 39 du circuit de calcul 44 est à l'état logique haut. Le sélecteur 45 fournit la différence entre les sorties de l'additionneur 43 et du sélecteur 41 au registre de données médian 56, et l'entrée d'horloge mHî du registre de données médian 56 est maintenant l'horloge divisée par (T+2), dont la durée est deux fois la durée de l'horloge de ligne d'entrée d'origine. When the next clock pulse mH1 arrives, the middle data register 56 stores the previous output of the adder 43, which is the number "4". At this time, the output of the adder 43, now equal to 6, is greater than (N), which is equal to 5, so that the control output 39 of the calculation circuit 44 is in the state high logic. Selector 45 provides the difference between the outputs of adder 43 and selector 41 to the middle data register 56, and the clock input mHî of the middle data register 56 is now the clock divided by (T + 2 ), the duration of which is twice the duration of the original input line clock.

Maintenant que la sortie de commande 39 est à l'état logique haut, le générateur de coefficients 363 fournit successivement deux sorties, 1 et , au cours d'une impulsion d'horloge mH1, c'est-à-dire deux périodes d'horloge de ligne d'entrée d'origine consécutives. Au cours de la première période d'horloge de ligne d'entrée d'origine, l'additionneur bilinéaire 5 fournit la seconde ligne de balayage d'origine ; en même temps, cette dernière est mémorisée dans le tampon de ligne 4 puisque le coefficient a est égal à 1. Au cours de la seconde période d'horloge de ligne d'entrée d'origine, le contenu du registre d'adresse 375 est incrémenté d'une unité à réception de l'impulsion suivante mH2 de façon à commander la mémoire d'image 2 et à fournir une troisième ligne de balayage d'origine à la mémoire de ligne 3. A ce moment, la sortie du générateur de coefficients 363 est égale à 4, le coefficient a est égal à 4, le coefficient 1-a est égal à 4, et aucun signal de commande de mémorisation n'est généré. Ainsi, la seconde ligne de balayage d'origine reste dans le tampon de ligne 4. Now that the control output 39 is in the high logic state, the coefficient generator 363 successively supplies two outputs, 1 and, during a clock pulse mH1, that is to say two periods of consecutive original input line clock. During the first original input line clock period, the bilinear adder 5 provides the second original scan line; at the same time, the latter is stored in line buffer 4 since the coefficient a is equal to 1. During the second original input line clock period, the content of address register 375 is incremented by one on receipt of the next pulse mH2 so as to control the image memory 2 and to supply a third original scan line to the line memory 3. At this time, the output of the generator coefficients 363 is equal to 4, the coefficient a is equal to 4, the coefficient 1-a is equal to 4, and no storage command signal is generated. Thus, the original second scan line remains in line buffer 4.

La sortie de l'additionneur bilinéaire 5 est à ce moment-là l'interpolation bilinéaire entre la seconde et la troisième lignes de balayage d'origine.The output of the bilinear adder 5 is then the bilinear interpolation between the second and third original scan lines.

Le contenu du registre de données médian 56 est mis à jour et passe à 1, qui est la différence entre la sortie de l'additionneur 43 et (N), lorsque l'impulsion d'horloge suivante mH1 arrive. La sortie de l'additionneur 43 est égale à 3, qui est inférieur à (N), de sorte que la sortie de commande 39 est à l'état logique bas. Le sélecteur 45 fournit la sortie de l'additionneur 43 au registre de données médian 56. L'entrée d'horloge mH1 fournie au registre de données médian 56 est l'horloge divisée par (T+1) et le coefficient a provenant du générateur de série de a 36 est égal à 1. La sortie de l'additionneur bilinéaire 5 est constituée par la troisième ligne de balayage d'origine et, puisque le coefficient a est égal à 1, la troisième ligne de balayage d'origine est mémorisée dans le tampon de ligne 4. The content of the median data register 56 is updated and goes to 1, which is the difference between the output of the adder 43 and (N), when the next clock pulse mH1 arrives. The output of the adder 43 is equal to 3, which is less than (N), so that the control output 39 is in the low logic state. The selector 45 provides the output of the adder 43 to the middle data register 56. The clock input mH1 supplied to the middle data register 56 is the clock divided by (T + 1) and the coefficient a from the generator of series of a 36 is equal to 1. The output of the bilinear adder 5 is constituted by the third original scan line and, since the coefficient a is equal to 1, the third original scan line is stored in line buffer 4.

Le fonctionnement ultérieur de l'unité de changement d'échelle verticale est similaire à ce qui précède Jusqu'à ce que la cinquième ligne de balayage d'origine apparaisse en sortie de l'additionneur bilinéaire 5. The subsequent operation of the vertical scale change unit is similar to the above until the fifth original scan line appears at the output of the bilinear adder 5.

La figure 7 est un chronogramme qui montre l'opéra- tion d'agrandissement suivant le mode avantageux de réalisation dans cet exemple, c'est-à-dire pour N=5 et AN=2. FIG. 7 is a timing diagram which shows the enlargement operation according to the advantageous embodiment in this example, that is to say for N = 5 and AN = 2.

On a ainsi montré que le contrôleur de changement d'échelle verticale 6 commande l'additionneur bilinéaire 5 de façon à effectuer une interpolation bilinéaire entre la (n)t'" ligne de balayage d'origine, qui est mémorisée dans le tampon de ligne 4, et la (n+l)i*-' ligne de balayage d'origine, qui est mémorisée dans la mémoire de ligne 3, de façon à produire une ligne de balayage interpolée résiduelle qui est insérée entre la (n)iême et la (n+l)iêae lignes de balayage d'origine, lorsque la division de (AN) par (N-1) fournit un reste (S) et lorsque (n) est un nombre minimum qui remplit la condition (n+l)*(S) 2 (s)*(N), où (s) varie entre 1 et (S). It has thus been shown that the vertical scale change controller 6 controls the bilinear adder 5 so as to perform a bilinear interpolation between the (n) t '"original scan line, which is stored in the line buffer 4, and the (n + 1) i * - 'original scan line, which is stored in the line memory 3, so as to produce a residual interpolated scan line which is inserted between the (n) th and the (n + l) iêae original scan lines, when the division of (AN) by (N-1) provides a remainder (S) and when (n) is a minimum number which fulfills the condition (n + l ) * (S) 2 (s) * (N), where (s) varies between 1 and (S).

Si l'on se réfère à nouveau à la figure 1, comme il n'y a pas lieu d'effectuer une opération de changement d'échelle horizontale, le contrôleur de changement d'échelle horizontale 10 commande la mémoire de ligne 3 et le tampon de ligne 4 pour fournir les données de pixel qui y sont mémorisées séquentiellement à l'additionneur bilinéaire 5. Referring again to FIG. 1, since there is no need to perform a horizontal scaling operation, the horizontal scaling controller 10 controls the line memory 3 and the line buffer 4 to supply the pixel data stored therein sequentially to the bilinear adder 5.

Les données de pixel d'origine et interpolées provenant de l'additionneur bilinéaire 5 sont reçues par le registre de point 7 qui, à son tour, fournit celles-ci à l'additionneur bilinéaire 9. A ce moment-là, le coefficient a est touJours égal à 1 et la sortie du tampon de point 8 n'est pas prise en considération par l'additionneur bilinéaire 9. La sortie de l'additionneur bilinéaire 9 est égale à celle de l'additionneur bilinéaire 5 et peut être fournie directement au dispositif de sortie (non représenté). The original and interpolated pixel data from the bilinear adder 5 are received by the point register 7 which, in turn, supplies these to the bilinear adder 9. At this time, the coefficient a is always equal to 1 and the output of the point buffer 8 is not taken into account by the bilinear adder 9. The output of the bilinear adder 9 is equal to that of the bilinear adder 5 and can be supplied directly to the output device (not shown).

Dans cet exemple, le quotient (T) de la division de (AN) par (N-l) est 0. Si le quotient T est différent de zéro, c'est-à-dire si (AN) est supérieur ou égal a (N-l), le contrôleur de changement d'échelle verticale 6 commande l'additionneur bilinéaire 5 pour effectuer une interpolation bilinéaire entre la (n)'C et la (n+1)ièao lignes de balayage d'origine, afin de fournir un nombre supplémentaire T de lignes de balayage interpolées successives qui sont insérées entre la (n)iêu et la (n+1)iêlo lignes de balayage d'origine. In this example, the quotient (T) of the division of (AN) by (Nl) is 0. If the quotient T is different from zero, that is to say if (AN) is greater than or equal to (Nl ), the vertical scale controller 6 controls the bilinear adder 5 to perform a bilinear interpolation between the (n) 'C and the (n + 1) io original scan lines, in order to provide an additional number T of successive interpolated scan lines which are inserted between the (n) iêu and the (n + 1) iêlo original scan lines.

La figure 8 montre, à titre d'exemple, un chronogramme d'une opération d'agrandissement vertical effectuée à l'aide du mode avantageux de réalisation, lorsque N=5 et AN=6. Dans cet exemple, le quotient T est égal à 1 et le reste S est égal à 2. Naturellement, une ligne de balayage interpolée additionnelle est insérée dans chaque intervalle entre la (n)iêle et la (n+l)i*' lignes de balayage d'origine.FIG. 8 shows, by way of example, a timing diagram of a vertical enlargement operation carried out using the advantageous embodiment, when N = 5 and AN = 6. In this example, the quotient T is equal to 1 and the remainder S is equal to 2. Naturally, an additional interpolated scanning line is inserted in each interval between the (n) line and the (n + l) i * 'lines original scan.

B. Dans l'exemple suivant, une image numérique d'origine ayant cinq lignes de balayage d'origine et cinq données de pixel par ligne de balayage est réduite de façon à obtenir une image numérique souhaitée ayant trois lignes de balayage souhaitées et cinq données de pixel par ligne de balayage. B. In the following example, an original digital image having five original scan lines and five pixel data per scan line is reduced to obtain a desired digital image having three desired scan lines and five data pixels per scan line.

Si on se réfère à nouveau à la figure 3, le Jeu de registres programmables 30 est programmé initialement en mémorisant le nombre "5" dans le premier registre 30a, le nombre "2" dans le second registre 30b et un "0" logique dans le troisième registre 30c. Le nombre "5" correspond au nombre (N) de lignes de balayage d'origine de l'image numérique d'origine dans la mémoire d'image 2. Le nombre "2" correspond au nombre total (AN) de lignes de balayage à supprimer. Le "0" logique dans le troisième registre 30c indique qu'on doit effectuer une réduction de l'image numérique d'origine. Le Jeu de registres programmables du contrôleur de changement d'échelle horizontale 10 est ensuite programmé pour indiquer qu'il y a cinq données de pixel dans chacune des lignes de balayage d'origine, qu'il n'y a pas lieu d'interpoler de donnée de pixel pour chaque ligne de balayage d'origine, et qu'il faut effectuer un agrandissement de l'image numérique d'origine dans une direction horizontale. Referring again to FIG. 3, the Set of programmable registers 30 is initially programmed by memorizing the number "5" in the first register 30a, the number "2" in the second register 30b and a logic "0" in the third register 30c. The number "5" corresponds to the number (N) of original scan lines of the original digital image in the image memory 2. The number "2" corresponds to the total number (AN) of scan lines to delete. The logic "0" in the third register 30c indicates that a reduction of the original digital image must be carried out. The Programmable Register Set of the Horizontal Scale Change Controller 10 is then programmed to indicate that there are five pixel data in each of the original scan lines, which need not be interpolated. pixel data for each original scan line, and that the original digital image must be enlarged in a horizontal direction.

Les sorties des premier et second circuits de calcul 31, 32 sont inutilisées au cours de l'opération de réduction. Le troisième circuit de calcul 33 fournit sur sa sortie le reste U de la division de (N) par (N-AN), (N-AN) étant le nombre de lignes de balayage d'origine à conserver. The outputs of the first and second calculation circuits 31, 32 are unused during the reduction operation. The third calculation circuit 33 provides on its output the remainder U of the division of (N) by (N-AN), (N-AN) being the number of original scan lines to be kept.

Dans l'exemple, le reste U est égal à 2. Le sélecteur 34 fournit la sortie du troisième circuit de calcul 33 au répartiteur de résidu 35.In the example, the remainder U is equal to 2. The selector 34 supplies the output of the third calculation circuit 33 to the residue distributor 35.

La figure 1, les figures 3 à 6 et la figure 9 montrent que le registre d'adresse 375 du générateur d'adresse 37 fournit initialement l'adresse de ligne de la première ligne de balayage d'origine mémorisée dans la mémoire d'image 2 et commande la mémoire d'image 2 de façon à fournir la première ligne de balayage d'origine à la mémoire de ligne 3 au cours d'un signal d'horloge de ligne de départ. Simultanément, le reste U est mémorisé dans le registre de données médian 56 et l'additionneur 43 aJoute ensuite le reste U au contenu du registre de données médian 56. Le circuit de calcul 44 soustrait le nombre (N-AN) provenant du sélecteur 41 de la sortie de l'additionneur 43. FIG. 1, FIGS. 3 to 6 and FIG. 9 show that the address register 375 of the address generator 37 initially supplies the line address of the first original scan line stored in the image memory 2 and controls the image memory 2 so as to supply the first original scan line to the line memory 3 during a start line clock signal. Simultaneously, the remainder U is stored in the middle data register 56 and the adder 43 then adds the rest U to the content of the middle data register 56. The calculation circuit 44 subtracts the number (N-AN) coming from the selector 41 of the output of the adder 43.

Puisque la sortie de l'additionneur 43, qui est à ce momentlà égale à 4, est supérieure au nombre (N-AN), qui est égal à 3, la sortie de commande 39 du circuit de calcul 44 est à l'état logique haut. Le sélecteur 45 applique la différence entre les sorties de l'additionneur 43 et du sélecteur 41 au registre de données médian 56. Le signal d'horloge de ligne d'origine est fourni au registre de données médian 56 par l'intermédiaire du sélecteur 47.Since the output of the adder 43, which is then equal to 4, is greater than the number (N-AN), which is equal to 3, the control output 39 of the calculation circuit 44 is in the logic state high. The selector 45 applies the difference between the outputs of the adder 43 and of the selector 41 to the median data register 56. The original line clock signal is supplied to the median data register 56 via the selector 47 .

Comme on le voit sur les figures 3 et 5, puisqu'un "0" logique est mémorisé dans le troisième registre 30c, le sélecteur 364 maintient le coefficient a à 1. Le coefficient l-a est donc égal à 0 et le signal de commande de mémorisa tion est touJours généré de façon à activer le tampon de ligne 4 qui mémorisera de façon continue une ligne de balayage d'origine provenant de la mémoire de ligne 3. De plus, la sortie de l'additionneur bilinéaire 5 est touJours la sortie de la mémoire de ligne 3. As seen in FIGS. 3 and 5, since a logic "0" is stored in the third register 30c, the selector 364 maintains the coefficient a at 1. The coefficient la is therefore equal to 0 and the control signal of storage is ALWAYS generated to activate line buffer 4 which will continuously store an original scan line from line memory 3. In addition, the output of bilinear adder 5 is always the output of line memory 3.

Le circuit de calcul 371 (figure 6) fournit sur sa sortie le quotient V de la division de (N) par (N-AN). Dans l'exemple, le quotient V est égal à 1. L'additionneur 372 génère la somme du quotient V et de l'état logique de la sortie de commande 39, qui est alors à l'état logique haut. The calculation circuit 371 (FIG. 6) provides on its output the quotient V of the division of (N) by (N-AN). In the example, the quotient V is equal to 1. The adder 372 generates the sum of the quotient V and the logic state of the control output 39, which is then in the high logic state.

Le sélecteur 373 choisit la sortie de l'additionneur 372, qui est égale à 2, et la transmet à l'additionneur 374. La sortie du registre d'adresse 375 est donc incrémentée de deux unités lorsque l'impulsion mH2 suivante arrive, ce qui commande la mémoire d'image 2 de façon que la troisième ligne de balayage d'origine soit fournie à la mémoire de ligne 3.The selector 373 chooses the output of the adder 372, which is equal to 2, and transmits it to the adder 374. The output of the address register 375 is therefore incremented by two units when the next pulse mH2 arrives, this which controls the image memory 2 so that the third original scan line is supplied to the line memory 3.

En se reportant de nouveau à la figure 4, on voit qu'à l'arrivée de l'impulsion d'horloge de ligne suivante, le registre de données médian 56 mémorise le nombre "1", qui est la différence antérieure calculée par le circuit de calcul 44. A ce moment-là, la sortie de l'additionneur 43, qui est égale à 3, est égale à la sortie du sélecteur 41. La sortie de commande 39 du circuit de calcul 44 est à l'état logique haut, et le sélecteur 45 fournit la différence entre les sorties de l'additionneur 43 et du sélecteur 41 au registre de données médian 56. Referring again to FIG. 4, it can be seen that on arrival of the next line clock pulse, the median data register 56 stores the number "1", which is the previous difference calculated by the calculation circuit 44. At this time, the output of the adder 43, which is equal to 3, is equal to the output of the selector 41. The control output 39 of the calculation circuit 44 is in the logic state top, and the selector 45 provides the difference between the outputs of the adder 43 and of the selector 41 to the median data register 56.

En revenant à la figure 6, on voit que l'additionneur 372 génère une fois de plus la somme du quotient V et de l'état logique courant de la sortie de commande 39. La sortie de l'additionneur 372, qui est égale à 2, est transmise à l'additionneur 374 par l'intermédiaire du sélecteur 373. Donc la sortie du registre d'adresse 375 est de nouveau incrémentée de deux unités lorsque l'impulsion mH2 suivante arrive, commandant ainsi la mémoire d'image 2 de façon que la cinquième ligne de balayage d'origine soit fournie à la mémoire de ligne 3. La figure 9 est un chronogramme qui montre l'opération de réduction verticale dans le mode avantageux de réalisation pour cet exemple, c'est-à-dire pour N=5 et AN=2. Le fonctionnement de l'unité de changement d'échelle horizontale pour cet exemple est similaire à celui décrit précédemment et ne sera pas décrit une nouvelle fois. Returning to FIG. 6, it can be seen that the adder 372 once again generates the sum of the quotient V and of the current logic state of the control output 39. The output of the adder 372, which is equal to 2, is transmitted to the adder 374 via the selector 373. Therefore the output of the address register 375 is again incremented by two when the next mH2 pulse arrives, thus controlling the image memory 2 of so that the original fifth scan line is supplied to the line memory 3. Figure 9 is a timing diagram which shows the vertical reduction operation in the advantageous embodiment for this example, i.e. for N = 5 and AN = 2. The operation of the horizontal scale change unit for this example is similar to that described above and will not be described again.

Ce qui précède montre que le générateur d'adresse 37 du contrôleur de changement d'échelle verticale 6 commande la mémoire d'image 2 pour ne fournir en sortie que des lignes de balayage d'origine sélectionnées. Les lignes de balayage d'origine qui n'apparaissent pas à la sortie de la mémoire d'image 2 sont en effet rejetées. On notera que la ligne de balayage d'origine apparaissant en sortie de la mémoire d'image 2 est décalée par rapport à la ligne de balayage d'origine immédiatement précédente apparue en sortie de la mémoire 2 du nombre V lorsque la sortie de l'additionneur 43 du répartiteur de résidu 35 est inférieure à la différence (N-AN), et décalée du nombre (V+1) lorsque la sortie de l'additionneur 43 est au moins égale à la différence (N-AN). The above shows that the address generator 37 of the vertical scale change controller 6 controls the image memory 2 so as to output only selected original scanning lines. The original scan lines which do not appear at the output of the image memory 2 are indeed rejected. It will be noted that the original scanning line appearing at the output of the image memory 2 is offset with respect to the immediately preceding original scanning line appearing at the output of the memory 2 by the number V when the output of the adder 43 of the residue distributor 35 is less than the difference (N-AN), and offset by the number (V + 1) when the output of the adder 43 is at least equal to the difference (N-AN).

C. Dans l'explication suivante de l'opération d'agrandissement horizontal du mode avantageux de réalisation, on donne un exemple dans lequel une image numérique d'origine ayant cinq lignes de balayage d'origine et cinq données de pixel par ligne de balayage est agrandie de façon à obtenir une image numérique souhaitée ayant cinq lignes de balayage souhaitées et sept données de pixel par ligne de balayage. C. In the following explanation of the horizontal enlargement operation of the advantageous embodiment, an example is given in which an original digital image having five original scan lines and five pixel data per scan line is enlarged to obtain a desired digital image having five desired scan lines and seven pixel data per scan line.

Le jeu de registres programmables 30 du contrôleur de changement d'échelle verticale 6 est initialement programmé pour indiquer qu'il y a cinq lignes de balayage d'origine dans la mémoire d'image 2, qu'il n'y a pas à interpoler de ligne de balayage, et qu'il faut effectuer un agrandissement de l'image numérique d'origine dans une direction verticale. Le Jeu de registres programmables du contrôleur de changement d'échelle horizontale 10 est ensuite programmé par mémorisation du nombre "5" dans le premier registre, du nombre "2" dans le second registre, et d'un "1" logique dans le troisième registre. Le nombre "5" correspond au nombre (N') de données de pixel dans chacune des lignes de balayage d'origine dans la mémoire d'image 2. The set of programmable registers 30 of the vertical scale change controller 6 is initially programmed to indicate that there are five original scan lines in the image memory 2, that there is no need to interpolate scan line, and you need to magnify the original digital image in a vertical direction. The set of programmable registers of the horizontal scale change controller 10 is then programmed by memorizing the number "5" in the first register, the number "2" in the second register, and a logical "1" in the third register. The number "5" corresponds to the number (N ') of pixel data in each of the original scan lines in the image memory 2.

Le nombre "2" correspond au nombre total (AN') de données de pixel à interpoler par ligne de balayage. Le n 1 n logique dans le troisième registre indique qu'il faut effectuer un agrandissement de l'image numérique d'origine dans la direction horizontale.The number "2" corresponds to the total number (AN ') of pixel data to be interpolated per scan line. The logical n 1 n in the third register indicates that an enlargement of the original digital image must be carried out in the horizontal direction.

Les sorties des premier, second et troisième circuits de calcul 31, 32, 33 du contrôleur de changement d'échelle verticale 6 sont égales à 0 puisqu'aucune opération d'agrandissement ou de réduction vertical n'est à effectuer. Le premier circuit de calcul du contrôleur de changement d'échelle horizontale 10 fournit en sortie le quotient T' de la division de (AN') par (N'-l). Comme (AN) est inférieur à (N'-1), le quotient T' est égal à 0. Le second circuit de calcul du contrôleur de changement d'échelle horizontale 10 fournit en sortie le reste S' de la division de (AN') par (N'-l). Dans cet exemple, le reste S' est égal à 2. La sortie du troisième circuit de calcul du contrôleur de changement d'échelle horizontale 10 est sans effet puisque la sortie du second circuit de calcul est fournie au répartiteur de résidu au cours de l'opération d'agrandissement horizontal. The outputs of the first, second and third calculation circuits 31, 32, 33 of the vertical scale change controller 6 are equal to 0 since no vertical enlargement or reduction operation is to be carried out. The first calculation circuit of the horizontal scale change controller 10 supplies the quotient T 'of the division of (AN') by (N'-1). As (AN) is less than (N'-1), the quotient T 'is equal to 0. The second calculation circuit of the horizontal scale change controller 10 outputs the remainder S' of the division of (AN ') by (N'-l). In this example, the remainder S 'is equal to 2. The output of the third calculation circuit of the horizontal scale change controller 10 has no effect since the output of the second calculation circuit is supplied to the residue distributor during l 'horizontal enlargement operation.

Comme aucune opération de changement d'échelle verticale n'est à effectuer, le contrôleur de changement d'échelle verticale 6 commande la mémoire d'image 2 pour fournir les lignes de balayage d'origine à la mémoire de ligne 3 de façon séquentielle. Le contrôleur de changement d'échelle horizontale 10 commande la mémoire de ligne 3 et le tampon de ligne 4 pour fournir les données de pixel qui y sont mémorisées séquentiellement à l'additionneur bilinéaire 5. A ce moment-là, le coefficient a provenant du contrôleur de changement d'échelle verticale 6 est touJours égal à 1, et la sortie du tampon de ligne 4 n'est pas prise en considération par l'additionneur bilinéaire 5. La sortie de l'additionneur bilinéaire 5 est égale à celle de la mémoire de ligne 3. Since no vertical scaling operation is to be performed, the vertical scaling controller 6 controls the image memory 2 to supply the original scan lines to the line memory 3 sequentially. The horizontal scaling controller 10 controls the line memory 3 and the line buffer 4 to supply the pixel data stored therein sequentially to the bilinear adder 5. At this time, the coefficient a from the vertical scale controller 6 is ALWAYS equal to 1, and the output of line buffer 4 is not taken into account by the bilinear adder 5. The output of the bilinear adder 5 is equal to that of the line memory 3.

Comme mentionné précédemment, l'opération d'agrandissement de l'unité de changement d'échelle horizontale est sensiblement similaire à celle de l'unité de changement d'échelle verticale. Cependant, à la différence du contrôleur de changement d'échelle verticale 6, le contrôleur de changement d'échelle horizontale 10 commande l'additionneur bilinéaire 9 pour effectuer une interpolation bilinéaire entre la (n')i*' donnée de pixel d'origine, qui est mémorisée dans le tampon de point 8, et la (n'+l)i* donnée de pixel d'origine, qui est mémorisée dans le registre de point 7, de façon à produire une donnée de pixel interpolée résiduelle qui est insérée entre la (n1 )iêae et la (n'+l)'a" données de pixel d'origine lorsque la division de (AN') par (N'-l) laisse un reste (S'), et lorsque (n') est un nombre minimum qui remplit la condition (n'+l)*(S') 2 (s')*(N'), où (s') varie entre 1 et (S'). Ainsi, lorsque (N'), (AN') et (S') sont respectivement égaux à 5, 2 et 2, il faut insérer les données de pixel interpolées résiduelles entre les seconde et troisième données de pixel d'origine et entre les quatrième et cinquième données de pixel d'origine d'une ligne de balayage. As mentioned previously, the enlargement operation of the horizontal scale change unit is substantially similar to that of the vertical scale change unit. However, unlike the vertical scale change controller 6, the horizontal scale change controller 10 controls the bilinear adder 9 to perform bilinear interpolation between the (n ') i *' original pixel data , which is stored in point buffer 8, and the (n '+ l) i * original pixel data, which is stored in point register 7, so as to produce residual interpolated pixel data which is inserted between the (n1) iêae and the (n '+ l)' a "original pixel data when the division of (AN ') by (N'-l) leaves a remainder (S'), and when ( n ') is a minimum number which fulfills the condition (n' + l) * (S ') 2 (s') * (N'), where (s') varies between 1 and (S '). (N '), (AN') and (S ') are respectively 5, 2 and 2, you must insert the residual interpolated pixel data between the second and third original pixel data and between the fourth and fifth original pixel data e of a scan line.

Le contrôleur de changement d'échelle horizontale 10 fixe initialement l'adresse de point d'une première donnée de pixel des données de ligne de balayage mémorisées dans la mémoire de ligne 3 et commande la mémoire de ligne 3 afin de fournir la première donnée de pixel à l'additionneur bilinéaire 5 de façon qu'elle soit reçue par le registre de point 7 pendant un signal d'horloge de pixel de départ. Le coefficient a provenant du contrôleur de changement d'échelle horizontale 10 est égal à 1, et le signal de commande de verrouillage est généré de façon à commander le tampon de point 8 afin d'y mémoriser la première donnée de pixel d'origine provenant du registre de point 7. La sortie de l'additionneur bilinéaire 9 à ce moment-là est la première donnée de pixel d'origine et peut être fournie directement au dispositif de sortie (non représenté). The horizontal scaling controller 10 initially sets the point address of a first pixel data of the scan line data stored in the line memory 3 and controls the line memory 3 to provide the first line data. pixel to the bilinear adder 5 so that it is received by the point register 7 during a starting pixel clock signal. The coefficient a coming from the horizontal scale change controller 10 is equal to 1, and the locking command signal is generated so as to control the point buffer 8 in order to store therein the first original pixel data originating from of the point register 7. The output of the bilinear adder 9 at this time is the first original pixel data and can be supplied directly to the output device (not shown).

A ce moment-là, le contrôleur de changement d'échelle horizontale 10 commande la mémoire de ligne 3 pour fournir une deuxième donnée de pixel d'origine à l'additionneur bilinéaire 5 de façon qu'elle soit reçue par le registre de point 7. Le contrôleur de changement d'échelle horizontale 10 génère successivement deux coefficients a, 1 et 4, au cours de deux périodes d'horloge de pixel d'origine. Au cours de la première période d'horloge de pixel d'origine, l'additionneur bilinéaire 9 fournit en sortie la deuxième donnée de pixel d'origine et, simultanément, cette dernière est mémorisée dans le tampon de point 8 puisque le coefficient a est égal à 1. Au cours de la deuxième période d'horloge de pixel d'origine, la mémoire de ligne 3 fournit une troisième donnée de pixel d'origine à l'additionneur bilinéaire 5 de façon qu'elle soit reçue par le registre de point 7. Le coefficient a est maintenant égal à 4, et la deuxième donnée de pixel d'origine reste dans le tampon de point 8. La sortie de l'additionneur bilinéaire 9 à ce moment-là est l'interpolation bilinéaire des deuxième et troisième données de pixel d'origine. At this time, the horizontal scale change controller 10 controls the line memory 3 to supply a second original pixel data to the bilinear adder 5 so that it is received by the point register 7 The horizontal scale change controller 10 successively generates two coefficients a, 1 and 4, during two original pixel clock periods. During the first original pixel clock period, the bilinear adder 9 outputs the second original pixel data and, simultaneously, the latter is stored in the point buffer 8 since the coefficient a is equal to 1. During the second original pixel clock period, the line memory 3 supplies a third original pixel data to the bilinear adder 5 so that it is received by the register of point 7. The coefficient a is now equal to 4, and the second original pixel data remains in the buffer of point 8. The output of the bilinear adder 9 at this time is the bilinear interpolation of the second and third original pixel data.

Au cours de la période d'horloge de pixel d'origine suivante, le coefficient a provenant du contrôleur de changement d'échelle horizontale 10 retourne à 1, et la sortie de l'additionneur bilinéaire 9 est la troisième donnée de pixel d'origine qui est simultanément mémorisée dans le tampon de point 8. During the next original pixel clock period, the coefficient a from the horizontal scale controller 10 returns to 1, and the output of the bilinear adder 9 is the third original pixel data which is simultaneously stored in the point buffer 8.

Le fonctionnement ultérieur de l'unité de changement d'échelle horizontale est similaire à ce qui précède Jusqu'à ce que la cinquième donnée de pixel d'origine d'une ligne de balayage ait été fournie en sortie par l'additionneur bilinéaire 9. The subsequent operation of the horizontal scaling unit is similar to the above until the fifth original pixel data of a scanning line has been output by the bilinear adder 9.

La figure 10 est un chronogramme qui montre l'opération d'agrandissement horizontal dans le mode avantageux de réalisation pour cet exemple, c'est-à-dire pour N'=5 et AN'=2.  FIG. 10 is a timing diagram which shows the horizontal enlargement operation in the advantageous embodiment for this example, that is to say for N '= 5 and AN' = 2.

Dans cet exemple, le quotient (T') de la division de (AN') par (N'-1) est 0. Si le quotient T' est différent de zéro, c'est-à-dire si (AN') est supérieur ou égal à (N'-l), le contrôleur de changement d'échelle horizontale 10 commande l'additionneur bilinéaire 9 pour effectuer une interpolation bilinéaire entre la (n')im' et la (n'+l)i" données de pixel d'origine d'une ligne de balayage, afin de fournir un nombre additionnel T' de données de pixel interpolées successives qui sont insérées entre la (n' )i1e et la (n'+l)'L" données de pixel d'origine. In this example, the quotient (T ') of the division of (AN') by (N'-1) is 0. If the quotient T 'is different from zero, that is to say if (AN') is greater than or equal to (N'-l), the horizontal scale change controller 10 controls the bilinear adder 9 to perform a bilinear interpolation between the (n ') im' and the (n '+ l) i " original pixel data of a scan line, in order to provide an additional number T 'of successive interpolated pixel data which are inserted between the (n') i1e and the (n '+ l)' L "data of original pixel.

D. Dans l'exemple suivant, une image numérique d'origine ayant cinq lignes de balayage d'origine et cinq données de pixel par ligne de balayage est réduite de façon à obtenir une image numérique souhaitée ayant cinq lignes de balayage souhaitées et trois données de pixel par ligne de balayage. D. In the following example, an original digital image having five original scan lines and five pixel data per scan line is reduced to obtain a desired digital image having five desired scan lines and three data pixels per scan line.

Le Jeu de registres programmables 30 du contrôleur de changement d'échelle verticale 6 est programmé initialement pour indiquer qu'il y a cinq lignes de balayage d'origine dans la mémoire d'image 2, qu'il n'y a pas à interpoler de ligne de balayage, et qu'il faut effectuer un agrandissement de l'image numérique d'origine dans une direction verticale. Le jeu de registres programmables du contrôleur de changement d'échelle horizontale 10 est ensuite programmé par mémorisation du nombre "5" dans le premier registre, du nombre "2" dans le second registre, et d'un "0" logique dans le troisième registre. Le nombre "5" correspond au nombre (N') de données de pixel par ligne de balayage d'origine de l'image numérique dans la mémoire d'image 2. Le nombre "2" correspond au nombre total (AN') de données de pixel à supprimer par ligne de balayage. Le 0" logique dans le troisième registre indique qu'on doit réduire l'image numérique d'origine dans la direction horizontale. The Programmable Register Set 30 of the vertical scale change controller 6 is initially programmed to indicate that there are five original scan lines in the image memory 2, that there is no interpolation scan line, and you need to magnify the original digital image in a vertical direction. The set of programmable registers of the horizontal scale change controller 10 is then programmed by memorizing the number "5" in the first register, the number "2" in the second register, and a logical "0" in the third register. The number "5" corresponds to the number (N ') of pixel data per original scan line of the digital image in the image memory 2. The number "2" corresponds to the total number (AN') of pixel data to be deleted per scan line. The logic 0 "in the third register indicates that the original digital image must be reduced in the horizontal direction.

Les sorties des premier, second et troisième circuits de calcul 31, 32, 33 du contrôleur de changement d'échelle verticale 6 sont égales à 0 puisqu'il n'y a pas à effectuer d'opération d'agrandissement ou de réduction vertical. Ainsi, le contrôleur de changement d'échelle verticale 6 commande la mémoire d'image 2 pour fournir les lignes de balayage d'origine à la mémoire de ligne 3 de façon séquentielle. Le contrôleur de changement d'échelle horizontale 10 commande la mémoire de ligne 3 et le tampon de ligne 4 pour fournir des données sélectionnées parmi les données de pixel qui y sont mémorisées à l'additionneur bilinéaire 5. Pour cet exemple, le coefficient a provenant du contrôleur de changement d'échelle verticale 6 est toujours égal à 1, et la sortie du tampon de ligne 4 n'est pas prise en considération par l'additionneur bilinéaire 5. The outputs of the first, second and third calculation circuits 31, 32, 33 of the vertical scale change controller 6 are equal to 0 since there is no need to perform a vertical enlargement or reduction operation. Thus, the vertical scaling controller 6 controls the image memory 2 to supply the original scan lines to the line memory 3 sequentially. The horizontal scale change controller 10 controls the line memory 3 and the line buffer 4 to supply data selected from the pixel data stored therein to the bilinear adder 5. For this example, the coefficient a from of the vertical scale change controller 6 is always equal to 1, and the output of the line buffer 4 is not taken into account by the bilinear adder 5.

La sortie de l'additionneur bilinéaire 5 est égale à la sortie de la mémoire de ligne 3.The output of the bilinear adder 5 is equal to the output of the line memory 3.

L'opération de réduction de l'unité de changement d'échelle horizontale est sensiblement similaire à celle de l'unité de changement d'échelle verticale. Cependant, dans l'unité de changement d'échelle horizontale, le contrôleur de changement d'échelle horizontale 10 commande la mémoire de ligne 3 et le tampon de ligne 4 pour ne fournir en sortie que des données choisies parmi les données de pixel d'origine. La donnée de pixel d'origine devant apparaître en sortie de la mémoire de ligne 3 et du tampon de ligne 4 est décalée par rapport à la donnée de pixel d'origine immédiatement précédente apparue en sortie de ce dernier du nombre V', qui est le quotient de la division de (N') par (N'-AN'), lorsque la sortie d'un additionneur du répartiteur de résidu du contrôleur de changement d'échelle horizontale 10 est inférieure à la différence (N'-AN'), et du nombre (V'+1) dans tous les autres cas.  The reduction operation of the horizontal scale change unit is substantially similar to that of the vertical scale change unit. However, in the horizontal scaling unit, the horizontal scaling controller 10 controls the line memory 3 and the line buffer 4 to output only data selected from the pixel data of origin. The original pixel data to appear at the output of the line memory 3 and of the line buffer 4 is offset with respect to the immediately preceding original pixel data which appeared at the output of the latter by the number V ', which is the quotient of the division of (N ') by (N'-AN'), when the output of an adder of the residue distributor of the horizontal scale change controller 10 is less than the difference (N'-AN ' ), and the number (V '+ 1) in all other cases.

Les sorties des premier et second circuits de calcul du contrôleur de changement d'échelle horizontale 10 sont inutilisées au cours de l'opération de réduction horizontale. Le troisième circuit de calcul fournit en sortie le reste U' de la division de (N') par (N'-AN'), (N'
AN') étant le nombre de données de pixel d'origine à conserver par ligne de balayage. Dans cet exemple, le reste
U' est égal à 2 et est fourni au répartiteur de résidu du contrôleur de changement d'échelle horizontale 10.
The outputs of the first and second calculation circuits of the horizontal scale change controller 10 are unused during the horizontal reduction operation. The third calculation circuit outputs the remainder U 'of the division of (N') by (N'-AN '), (N'
AN ') being the number of original pixel data to be retained per scan line. In this example, the rest
U 'is equal to 2 and is supplied to the residue distributor of the horizontal scale change controller 10.

Le contrôleur de changement d'échelle horizontale 10 fixe initialement l'adresse de point d'une première donnée de pixel d'une donnée de ligne de balayage mémorisée dans la mémoire de ligne 3, et commande la mémoire de ligne 3 pour fournir la première donnée de pixel à l'additionneur bilinéaire 5 au cours d'une période d'horloge de pixel de départ. The horizontal scale change controller 10 initially sets the point address of a first pixel data of a scan line data stored in the line memory 3, and controls the line memory 3 to provide the first pixel data to the bilinear adder 5 during a starting pixel clock period.

Comme un "0" logique est mémorisé dans le troisième registre du contrôleur de changement d'échelle horizontale 10, le coefficient a provenant du contrôleur de changement d'échelle horizontale 10 est maintenu à 1. Ainsi, le tampon de point 8 est activé pour y mémoriser en continu des données de pixel provenant du registre de point 7, et la sortie de l'additionneur bilinéaire 9 est toujours la sortie du registre de point 7. As a logical "0" is stored in the third register of the horizontal scale change controller 10, the coefficient a from the horizontal scale change controller 10 is kept at 1. Thus, the point buffer 8 is activated to continuously store therein pixel data originating from the point register 7, and the output of the bilinear adder 9 is always the output of the point register 7.

A ce moment-là, la sortie de l'additionneur du répartiteur de résidu du contrôleur de changement d'échelle horizontale 10 est supérieure à la différence (N'-AN'), ce qui produit un nombre de décalage (V'+1) ou 2. Le contrôleur de changement d'échelle horizontale 10 commande la mémoire de ligne 3 et le tampon de ligne 4 pour fournir la troisième donnée de pixel des données de ligne de balayage qui y sont mémorisées à l'additionneur bilinéaire 5 de façon qu'elle soit reçue par le registre de point 7. At this time, the output of the adder of the residual distributor of the horizontal scale change controller 10 is greater than the difference (N'-AN '), which produces an offset number (V' + 1 ) or 2. The horizontal scale controller 10 controls the line memory 3 and the line buffer 4 to supply the third pixel data of the scan line data stored therein to the bilinear adder 5 so that it be received by the point register 7.

A l'arrivée de l'impulsion d'horloge de pixel suivante, la sortie de l'additionneur du répartiteur de résidu du contrôleur de changement d'échelle horizontale 10 est égale à la différence (N'-AN'), produisant ainsi un nombre de décalage (V'+1) ou 2. Le contrôleur de changement d'échelle horizontale 10 commande la mémoire de ligne 3 et le tampon de ligne 4 pour fournir la cinquième donnée de pixel des données de ligne de balayage qui y sont mémorisées à l'additionneur bilinéaire 5 de façon qu'elle soit reçue par le registre de point 7. On arrival of the next pixel clock pulse, the output of the adder of the residual distributor of the horizontal scale change controller 10 is equal to the difference (N'-AN '), thus producing a offset number (V '+ 1) or 2. The horizontal scale controller 10 controls the line memory 3 and the line buffer 4 to provide the fifth pixel data of the scan line data stored therein to the bilinear adder 5 so that it is received by the point register 7.

La figure 11 est un chronogramme qui illustre l'opération de réduction horizontale dans le mode avantageux de réalisation pour cet exemple, c'est-à-dire pour N'=5 et
AN'=2.
FIG. 11 is a timing diagram which illustrates the horizontal reduction operation in the advantageous embodiment for this example, that is to say for N '= 5 and
AN '= 2.

Le dispositif de la présente invention est un dispositif à matériel dédié qui permet de changer l'échelle d'images numériques en temps réel de façon bidimensionnelle. The device of the present invention is a dedicated hardware device which makes it possible to change the scale of digital images in real time in two dimensions.

De plus, le dispositif de la présente invention est relativement peu coûteux par rapport à son besoin relativement faible en mémoire, indépendamment du rapport de grandissement, et utilise moins d'étapes de traitement, ce qui procure un rendement plus élevé, puisque la sortie de l'unité de changement d'échelle verticale est fournie directement à l'unité de changement d'échelle horizontale sans nécessité de la mémoriser dans un tampon d'image intermédiaire, et puisque la sortie de l'unité de changement d'échelle horizontale peut être fournie directement a un dispositif de sortie sans nécessité de mémoriser cette sortie dans un tampon d'image de sortie. La présente invention est donc idéale pour une utilisation dans des applications vidéo en direct. In addition, the device of the present invention is relatively inexpensive compared to its relatively low memory requirement, independently of the magnification ratio, and uses fewer processing steps, which provides higher efficiency, since the output of the vertical scaling unit is supplied directly to the horizontal scaling unit without the need to store it in an intermediate image buffer, and since the output of the horizontal scaling unit can be supplied directly to an output device without the need to store this output in an output image buffer. The present invention is therefore ideal for use in live video applications.

Claims (16)

REVENDICATIONS 1. Dispositif de traitement d'une image numérique d'origine pour obtenir une image numérique souhaitée à échelle modifiée de façon uniforme, le dispositif comprenant une mémoire d'image (2) pour y mémoriser l'image numérique d'origine, l'image numérique d'origine ayant un nombre (N) de lignes de balayage d'origine successives et un nombre (N') de données de pixel d'origine successives par ligne de balayage d'origine, le dispositif comprenant en outre une unité de changement d'échelle verticale pour changer l'échelle de l'image numérique d'origine dans une direction verticale afin d'obtenir un nombre (M) de lignes de balayage souhaitées successives, et une unité de changement d'échelle horizontale pour changer l'échelle des lignes de balayage souhaitées provenant de l'unité de changement d'échelle verticale dans une direction horizontale afin d'obtenir un nombre (M') de données de pixel souhaitées successives par ligne de balayage, le nombre (M) étant supérieur au nombre (N), le nombre (M') étant supérieur au nombre (N'), caractérisé en ce que 1. Device for processing an original digital image to obtain a desired digital image on a uniformly modified scale, the device comprising an image memory (2) for storing therein the original digital image, the original digital image having a number (N) of successive original scan lines and a number (N ') of successive original pixel data per original scan line, the device further comprising a vertical scale change to change the scale of the original digital image in a vertical direction to obtain a number (M) of successive desired scan lines, and a horizontal scale change unit to change the scale of desired scan lines from the vertical scale change unit in a horizontal direction to obtain a number (M ') of successive desired pixel data per scan line, the number (M) being greater r to the number (N), the number (M ') being greater than the number (N'), characterized in that l'unité de changement d'échelle verticale comprend : une mémoire de ligne (3) reliée à la mémoire d'image (2) pour y mémoriser la (n+l)t^ ligne de balayage d'origine provenant de la mémoire d'image (2) ; un tampon de ligne (4) relié à la mémoire de ligne (3) pour y mémoriser la (n)iêae ligne de balayage d'origine ; un premier interpolateur linéaire (5) relié à la mémoire de ligne (3) et au tampon de ligne (4) ; et un contrôleur de changement d'échelle verticale (6) relié à la mémoire d'image (2), au tampon de ligne (4) et au premier interpolateur linéaire (5), le contrôleur de changement d'échelle verticale (6) commandant la mémorisation des lignes de balayage d'origine dans la mémoire de ligne (3) et le tampon de ligne (4), le contrôleur de changement d'échelle verticale (6) commandant en outre le premier interpolateur linéaire (5) de façon à effectuer une interpolation linéaire entre la (n)'" et la (n+l)l-' lignes de balayage d'origine provenant de la mémoire de ligne (3) et du tampon de ligne (4) de façon à produire une ligne de balayage interpolée résiduelle qui est insérée entre les lignes d'origine lorsque la division de (M-N) par (N-l) laisse un reste (S) et lorsque (n) est un nombre minimum qui remplit la condition (n+l)*(S) 2 (s)*(N), où (s) varie de 1 à (S) ; et en ce que the vertical scale change unit comprises: a line memory (3) connected to the image memory (2) for storing therein the (n + l) t ^ original scan line coming from the memory d 'image (2); a line buffer (4) connected to the line memory (3) for storing therein the (n) th original scan line; a first linear interpolator (5) connected to the line memory (3) and to the line buffer (4); and a vertical scale controller (6) connected to the image memory (2), the line buffer (4) and the first linear interpolator (5), the vertical scale controller (6) controlling the storage of the original scan lines in the line memory (3) and the line buffer (4), the vertical scale change controller (6) further controlling the first linear interpolator (5) performing a linear interpolation between the (n) '"and the (n + l) l-' original scan lines from the line memory (3) and the line buffer (4) so as to produce a residual interpolated scan line which is inserted between the original lines when the division of (MN) by (Nl) leaves a remainder (S) and when (n) is a minimum number which fulfills the condition (n + l) * (S) 2 (s) * (N), where (s) varies from 1 to (S); and in that l'unité de changement d'échelle horizontale comprend : un registre de point (7) relié au premier interpolateur linéaire (5) pour y mémoriser la (n'+l)'a" donnée de pixel d'une des lignes de balayage provenant du premier interpolateur linéaire (5) ; un tampon de point (8) relié au registre de point (7) pour y mémoriser la (n' )i donnée de pixel de ladite ligne de balayage ; un deuxième interpolateur linéaire (9) relié au registre de point (7) et au tampon de point (8) ; et un contrôleur de changement d'échelle horizontale (10) relié à la mémoire de ligne (3), au tampon de ligne (4), au tampon de point (8) et au deuxième interpolateur linéaire (9), le contrôleur de changement d'échelle horizontale (10) commandant la mémorisation des données de pixel dans le registre de point (7) et le tampon de point (8), le contrôleur de changement d'échelle horizontale (10) commandant en outre le deuxième interpolateur linéaire (9) de façon à effectuer une interpolation linéaire entre la (n' )t- et la (n'+l)i" données de pixel provenant du registre de point (7) et du tampon de point (8) de façon à produire une donnée de pixel interpolée résiduelle qui est insérée entre lesdites (n' )iêae et (n'+l)I' données de pixel lorsque la division de (M'-N') par (N'-1) laisse un reste (S') et lorsque (n') est un nombre minimum qui remplit la condition (n'+l)*(S') 2 (s')*(N'), où (s') varie de 1 à (S') the horizontal scale change unit comprises: a point register (7) connected to the first linear interpolator (5) for storing therein the (n '+ l)' a "pixel data of one of the scanning lines coming from the first linear interpolator (5); a point buffer (8) connected to the point register (7) for storing therein the (n ') i pixel data of said scanning line; a second linear interpolator (9) connected to the point register (7) and the point buffer (8); and a horizontal scale change controller (10) connected to the line memory (3), the line buffer (4), the point buffer ( 8) and at the second linear interpolator (9), the horizontal scale change controller (10) controlling the storage of the pixel data in the point register (7) and the point buffer (8), the change controller horizontal scale (10) further controlling the second linear interpolator (9) so as to perform an interpolation li between the (n ') t- and the (n' + l) i "pixel data from the point register (7) and the point buffer (8) so as to produce residual interpolated pixel data which is inserted between said (n ') iêae and (n' + l) I 'pixel data when the division of (M'-N') by (N'-1) leaves a remainder (S ') and when (n' ) is a minimum number which fulfills the condition (n '+ l) * (S') 2 (s ') * (N'), where (s ') varies from 1 to (S') moyennant quoi la sortie du deuxième interpolateur linéaire (9) peut être fournie directement à un dispositif de sortie.  whereby the output of the second linear interpolator (9) can be supplied directly to an output device. 2. Dispositif selon la revendication 1, caractérisé en ce que le contrôleur de changement d'échelle verticale (6) commande en outre le premier interpolateur linéaire (5) pour effectuer une interpolation linéaire entre la (n)' et la (n+l)t^- lignes de balayage d'origine pour obtenir un nombre additionnel (T) de lignes de balayage interpolées successives qui sont insérées entre les lignes d'origine lorsque (M-N) est supérieur à (N-1), le nombre (T) étant égal à un quotient résultant de la division de (M-N) par (N 1).  2. Device according to claim 1, characterized in that the vertical scale change controller (6) also controls the first linear interpolator (5) to perform a linear interpolation between the (n) 'and the (n + l ) t ^ - original scan lines to obtain an additional number (T) of successive interpolated scan lines which are inserted between the original lines when (MN) is greater than (N-1), the number (T ) being equal to a quotient resulting from the division of (MN) by (N 1). 3. Dispostif selon la revendication 2, caractérisé en ce que le premier interpolateur linéaire (5) est un additionneur bilinéaire. 3. Dispostive according to claim 2, characterized in that the first linear interpolator (5) is a bilinear adder. 4. Dispositif selon la revendication 1, caractérisé en ce que le contrôleur de changement d'échelle horizontale (10) commande en outre le deuxième interpolateur linéaire (9) de façon à effectuer une interpolation linéaire entre la (n')t^' et la (n'+l)i-e données de pixel de ladite ligne de balayage provenant du premier interpolateur linéaire (5) afin de produire un nombre additionnel (T') de données de pixel interpolées successives qui sont insérées entre lesdites (n')ie et (n+l)iême données de pixel lorsque (M' 4. Device according to claim 1, characterized in that the horizontal scale change controller (10) further controls the second linear interpolator (9) so as to perform a linear interpolation between the (n ') t ^' and the (n '+ l) ie pixel data of said scan line coming from the first linear interpolator (5) in order to produce an additional number (T') of successive interpolated pixel data which are inserted between said (n ') ie and (n + l) same pixel data when (M ' N') est supérieur à (N'-1), le nombre (T') étant égal à un quotient résultant de la division de (M'-N') par (N'-1).N ') is greater than (N'-1), the number (T') being equal to a quotient resulting from the division of (M'-N ') by (N'-1). 5. Dispositif selon la revendication 4, caractérisé en ce que le second interpolateur linéaire (9) est un additionneur bilinéaire. 5. Device according to claim 4, characterized in that the second linear interpolator (9) is a bilinear adder. 6. Dispositif de traitement d'une image numérique d'origine pour obtenir une image numérique souhaitée à échelle modifiée de façon uniforme, le dispositif comprenant une mémoire d'image (2) pour y mémoriser l'image numérique d'origine, l'image numérique d'origine ayant un nombre (N) de lignes de balayage d'origine successives et un nombre (N') de données de pixel d'origine successives par ligne de balayage d'origine, le dispositif comprenant en outre une unité de changement d'échelle verticale pour changer l'échelle de l'image numérique d'origine dans une direction verticale afin d'obtenir un nombre (M) de lignes de balayage souhaitées successives, et une unité de changement d'échelle horizontale pour changer l'échelle des lignes de balayage souhaitées provenant de l'unité de changement d'échelle verticale dans une direction horizontale afin d'obtenir un nombre (M') de données de pixel souhaitées successives par ligne de balayage, le nombre (M) étant supérieur au nombre (N), le nombre (M') étant inférieur au nombre (N'), caractérisé en ce que 6. Device for processing an original digital image to obtain a desired digital image on a uniformly modified scale, the device comprising an image memory (2) for storing therein the original digital image, the original digital image having a number (N) of successive original scan lines and a number (N ') of successive original pixel data per original scan line, the device further comprising a vertical scale change to change the scale of the original digital image in a vertical direction to obtain a number (M) of successive desired scan lines, and a horizontal scale change unit to change the scale of the desired scan lines from the vertical scale change unit in a horizontal direction to obtain a number (M ') of successive desired pixel data per scan line, the number (M) being greater ur to the number (N), the number (M ') being less than the number (N'), characterized in that l'unité de changement d'échelle verticale comprend : une mémoire de ligne (3) reliée à la mémoire d'image (2) pour y mémoriser la (n+i)iêae ligne de balayage d'origine provenant de la mémoire d'image (2) ; un tampon de ligne (4) relié à la mémoire de ligne (3) pour y mémoriser la (n)iêle ligne de balayage d'origine ; un interpolateur linéaire (5) relié à la mémoire de ligne (3) et au tampon de ligne (4) ; et un contrôleur de changement d'échelle verticale (6) relié à la mémoire d'image (2), au tampon de ligne (4) et à l'interpolateur linéaire (5), le contrôleur de changement d'échelle verticale (6) commandant la mémorisation des lignes de balayage d'origine dans la mémoire de ligne (3) et le tampon de ligne (4), le contrôleur de changement d'échelle verticale (6) commandant en outre l'interpolateur linéaire (5) de façon à effectuer une interpolation linéaire entre la (n)iêH et la (n+l)i" lignes de balayage d'origine provenant de la mémoire de ligne (3) et du tampon de ligne (4) de façon à produire une ligne de balayage interpolée résiduelle qui est insérée entre les lignes d'origine lorsque la division de (M-N) par (N-1) laisse un reste (S) et lorsque (n) est un nombre minimum qui remplit la condition (n+l)*(S) 2 (s)*(N), où (s) varie entre 1 et (S) ; et en ce que the vertical scale change unit comprises: a line memory (3) connected to the image memory (2) for storing therein the (n + i) iêae original scan line coming from the memory of picture (2); a line buffer (4) connected to the line memory (3) for storing therein (n) the original scan line; a linear interpolator (5) connected to the line memory (3) and to the line buffer (4); and a vertical scale change controller (6) connected to the image memory (2), the line buffer (4) and the linear interpolator (5), the vertical scale change controller (6 ) controlling the storage of the original scanning lines in the line memory (3) and the line buffer (4), the vertical scale change controller (6) also controlling the linear interpolator (5) of so as to perform a linear interpolation between the (n) iêH and the (n + l) i "original scan lines from the line memory (3) and the line buffer (4) so as to produce a line of interpolated residual scanning which is inserted between the original lines when the division of (MN) by (N-1) leaves a remainder (S) and when (n) is a minimum number which fulfills the condition (n + l) * (S) 2 (s) * (N), where (s) varies between 1 and (S); and in that l'unité de changement d'échelle horizontale comprend un contrôleur de changement d'échelle horizontale (10), le contrôleur de changement d'échelle horizontale (10) comprenant the horizontal scale change unit includes a horizontal scale change controller (10), the horizontal scale change controller (10) comprising un générateur d'adresse (37), relié à la mémoire de ligne (3) et au tampon de ligne (4), pour commander la mémoire de ligne (3) et le tampon de ligne (4) afin de fournir en sortie une première donnée de pixel d'origine d'une des lignes de balayage an address generator (37), connected to the line memory (3) and to the line buffer (4), for controlling the line memory (3) and the line buffer (4) in order to provide an output first original pixel data from one of the scan lines des moyens de génération (33) d'un nombre (U'), qui est le reste de la division de (N') par (M') means for generating (33) a number (U '), which is the remainder of the division of (N') by (M ') un registre de données (56) a data register (56) des moyens additionneurs (43), reliés aux moyens de génération (33) et au registre de données (56), prévus pour additionner (U') et le nombre mémorisé dans le registre de données (56) de façon à obtenir une somme ; et adding means (43), connected to the generating means (33) and to the data register (56), provided for adding (U ') and the number stored in the data register (56) so as to obtain a sum; and des moyens de calcul (44), reliés aux moyens additionneurs (43), au générateur d'adresse (37) et au registre de données (56), destinés à comparer la somme et le nombre (M') et à activer le générateur d'adresse (37) pour commander la mémoire de ligne (3) et le tampon de ligne (4) de façon à fournir en sortie une autre donnée de pixel d'origine de ladite ligne de balayage, ladite autre donnée de pixel d'origine de ladite ligne de balayage étant décalée par rapport à la donnée de pixel d'origine immédiatement précédente apparue en sortie de la mémoire de ligne (3) et du tampon de ligne (4) d'un nombre (V') égal au quotient de la division de (N') par (M') lorsque la somme est inférieure à (M'), et d'un nombre (V'+1) lorsque la somme est au moins égale à (M') calculation means (44), connected to the adding means (43), the address generator (37) and the data register (56), intended to compare the sum and the number (M ') and to activate the generator address (37) for controlling the line memory (3) and the line buffer (4) so as to output another original pixel data from said scanning line, said other pixel data from origin of said scanning line being offset from the immediately preceding original pixel data which appeared at the output of the line memory (3) and of the line buffer (4) by a number (V ′) equal to the quotient by dividing (N ') by (M') when the sum is less than (M '), and by a number (V' + 1) when the sum is at least equal to (M ') les moyens de calcul (44) mémorisant la différence entre le nombre (M') et la somme dans le registre de données (56) si la somme est au moins égale à (M'), et mémorisant la somme dans le registre de données (56) si la somme est inférieure à (M') the calculating means (44) storing the difference between the number (M ') and the sum in the data register (56) if the sum is at least equal to (M'), and storing the sum in the data register (56) if the sum is less than (M ') moyennant quoi la sortie de l'unité de changement d'échelle horizontale peut être fournie directement à un dispositif de sortie. whereby the output of the horizontal scaling unit can be supplied directly to an output device. 7. Dispositif selon la revendication 6, caractérisé en ce que le contrôleur de changement d'échelle verticale (6) commande de plus l'interpolateur linéaire (5) de façon effectuer une interpolation linéaire entre la (n)t et la (n+l)i*" lignes de balayage d'origine de façon à produire un nombre additionnel (T) de lignes de balayage interpolées successives insérées entre les lignes d'origine lorsque (M 7. Device according to claim 6, characterized in that the vertical scale change controller (6) also controls the linear interpolator (5) so as to perform a linear interpolation between the (n) t and the (n + l) i * "original scan lines so as to produce an additional number (T) of successive interpolated scan lines inserted between the original lines when (M N) est supérieur à (N-1), le nombre (T) étant égal au quotient de la division de (M-N) par (N-l). N) is greater than (N-1), the number (T) being equal to the quotient of the division of (M-N) by (N-1). 8. Dispositif selon la revendication 7, caractérisé en ce que l'interpolateur linéaire (5) est un additionneur bilinéaire. 8. Device according to claim 7, characterized in that the linear interpolator (5) is a bilinear adder. 9. Dispositif de traitement d'une image numérique d'origine pour obtenir une image numérique souhaitée à échelle modifiée de façon uniforme, le dispositif comprenant une mémoire d'image (2) pour y mémoriser l'image numérique d'origine, l'image numérique d'origine ayant un nombre (N) de lignes de balayage d'origine successives et un nombre (N') de données de pixel d'origine successives par ligne de balayage d'origine, le dispositif comprenant en outre une unité de changement d'échelle verticale pour changer l'échelle de l'image numérique d'origine dans une direction verticale afin d'obtenir un nombre (M) de lignes de balayage souhaitées successives, et une unité de changement d'échelle horizontale pour changer l'échelle des lignes de balayage souhaitées provenant de l'unité de changement d'échelle verticale dans une direction horizontale afin d'obtenir un nombre (M') de données de pixel souhaitées successives par ligne de balayage, le nombre (M) étant inférieur au nombre (N), le nombre (M') étant supérieur au nombre (N'), caractérisé en ce que 9. Device for processing an original digital image to obtain a desired digital image on a uniformly modified scale, the device comprising an image memory (2) for storing therein the original digital image, the original digital image having a number (N) of successive original scan lines and a number (N ') of successive original pixel data per original scan line, the device further comprising a vertical scale change to change the scale of the original digital image in a vertical direction to obtain a number (M) of successive desired scan lines, and a horizontal scale change unit to change the scale of the desired scan lines from the vertical scale change unit in a horizontal direction to obtain a number (M ') of successive desired pixel data per scan line, the number (M) being less r to the number (N), the number (M ') being greater than the number (N'), characterized in that l'unité de changement d'échelle verticale comprend un contrôleur de changement d'échelle verticale (6) et une mémoire de ligne (3) reliée à la mémoire d'image (2), le contrôleur de changement d'échelle verticale (6) comprenant the vertical scale change unit comprises a vertical scale change controller (6) and a line memory (3) connected to the image memory (2), the vertical scale change controller (6 ) including un générateur d'adresse (37), relié à la mémoire d'image (2), pour commander la mémoire d'image (2) de façon qu'elle fournisse en sortie une première ligne de balayage d'origine pour mémorisation dans la mémoire de ligne (3) ; an address generator (37), connected to the image memory (2), for controlling the image memory (2) so that it outputs a first original scan line for storage in the line memory (3); des moyens de génération (33) d'un nombre (U), qui est le reste de la division de (N) par (M) means for generating (33) a number (U), which is the remainder of the division of (N) by (M) un registre de données (56) ; a data register (56); des moyens additionneurs (43), reliés aux moyens de génération (33) et au registre de données (56), prévus pour additionner (U) et le nombre mémorisé dans le registre de données (56) de façon à obtenir une somme ; et adding means (43), connected to the generating means (33) and to the data register (56), provided for adding (U) and the number stored in the data register (56) so as to obtain a sum; and des moyens de calcul (44), reliés aux moyens additionneurs (43), au générateur d'adresse (37) et au registre de données (56), destinés à comparer la somme et le nombre (M) et à activer le générateur d'adresse (37) de façon à commander la mémoire d'image (2) de façon qu'elle fournisse en sortie une autre ligne de balayage d'origine pour mémorisation dans la mémoire de ligne (3), cette autre ligne de balayage d'origine étant décalée par rapport à la ligne de balayage d'origine immédiatement précédente apparue en sortie de la mémoire d'image (2) d'un nombre (V) égal au quotient de la division de (N) par (M) lorsque la somme est inférieure à (M), et d'un nombre (V+1) lorsque la somme est au moins égale au nombre (M) calculation means (44), connected to the adder means (43), the address generator (37) and the data register (56), intended to compare the sum and the number (M) and to activate the generator d address (37) so as to control the image memory (2) so that it outputs another original scan line for storage in the line memory (3), this other scan line d origin being offset from the immediately preceding original scan line appeared at the output of the image memory (2) by a number (V) equal to the quotient of the division of (N) by (M) when the sum is less than (M), and by a number (V + 1) when the sum is at least equal to the number (M) les moyens de calcul (44) mémorisant la différence entre le nombre (M) et la somme dans le registre de données (56) lorsque la somme est au moins égale à (M), et mémorisant la somme dans le registre de données (56) lorsque la somme est inférieure à (M) ; et en ce que the calculating means (44) storing the difference between the number (M) and the sum in the data register (56) when the sum is at least equal to (M), and storing the sum in the data register (56 ) when the sum is less than (M); and in that l'unité de changement d'échelle horizontale comprend : un registre de point (7) relié à la mémoire de ligne (3) pour y mémoriser la (n'+1)'" donnée de pixel d'une des lignes de balayage provenant de la mémoire de ligne (3) ; un tampon de point (8) relié au registre de point (7) pour y mémoriser la (n')i"' donnée de pixel de ladite ligne de balayage provenant de la mémoire de ligne (3) ; un interpolateur linéaire (9) relié au registre de point (7) et au tampon de point (8) ; et un contrôleur de changement d'échelle horizontale (10) relié à la mémoire de ligne (3), au tampon de point (8) et à l'interpolateur linéaire (9), le contrôleur de changement d'échelle horizontale (10) commandant la mémorisation des données de pixel dans le registre de point (7) et le tampon de point (8), le contrôleur de changement d'échelle horizontale (10) commandant en outre l'interpolateur linéaire (9) de façon a effectuer une interpolation linéaire entre la (n' )iêle et la (n'+l)i-' données de pixel provenant du registre de point (7) et du tampon de point (8) de façon à produire une donnée de pixel interpolée résiduelle qui est insérée entre lesdites (n')ie et (n'+l)t' données de pixel lorsque la division de (M'-N') par (N'-l) laisse un reste (S') et lorsque (n') est un nombre minimum qui remplit la condition (n'+l)*(S') 2 (s')*(N'), où (s') varie entre 1 et (S') the horizontal scaling unit comprises: a point register (7) connected to the line memory (3) for storing therein the (n '+ 1)' "pixel data of one of the scanning lines coming from line memory (3); a point buffer (8) connected to the point register (7) for storing therein the (n ') i "' pixel data of said scan line from the line memory ( 3); a linear interpolator (9) connected to the point register (7) and to the point buffer (8); and a horizontal scale change controller (10) connected to the line memory (3), the stitch buffer (8) and the linear interpolator (9), the horizontal scale change controller (10) controlling the storage of pixel data in the point register (7) and the point buffer (8), the horizontal scaling controller (10) further controlling the linear interpolator (9) so as to perform a linear interpolation between the (n ') island and the (n' + l) i- 'pixel data from the point register (7) and the point buffer (8) so as to produce a residual interpolated pixel data which is inserted between said (n ') ie and (n' + l) t 'pixel data when the division of (M'-N') by (N'-l) leaves a remainder (S ') and when (n ') is a minimum number which fulfills the condition (n' + l) * (S ') 2 (s') * (N'), where (s') varies between 1 and (S ') moyennant quoi la sortie de l'interpolateur linéaire (9) peut être fournie directement à un dispositif de sortie. whereby the output of the linear interpolator (9) can be supplied directly to an output device. 10. Dispositif selon la revendication 9, caractérisé en ce que le contrôleur de changement d'échelle horizontale (10) commande en outre l'interpolateur linéaire (9) de façon à effectuer une interpolation linéaire entre la (n')i* et la (n'+l)'"" données de pixel de ladite ligne de balayage provenant de la mémoire de ligne (3) afin de produire un nombre additionnel (T') de données de pixel interpolées successives qui sont insérées entre lesdites (n' )iêH et (n+1)ièle données de pixel lorsque (M'-N') est supérieur à (N'-1), le nombre (T') étant égal à un quotient résultant de la division de (M'-N') par (N'-1). 10. Device according to claim 9, characterized in that the horizontal scale change controller (10) further controls the linear interpolator (9) so as to perform a linear interpolation between the (n ') i * and the (n '+ l)' "" pixel data of said scan line from the line memory (3) to produce an additional number (T ') of successive interpolated pixel data which are inserted between said (n' ) iêH and (n + 1) ith pixel data when (M'-N ') is greater than (N'-1), the number (T') being equal to a quotient resulting from the division of (M'- N ') by (N'-1). 11. Dispositif selon la revendication 10, caractérisé en ce que l'interpolateur linéaire (9) est un additionneur bilinéaire. 11. Device according to claim 10, characterized in that the linear interpolator (9) is a bilinear adder. 12. Dispositif de traitement d'une image numérique d'origine pour obtenir une image numérique souhaitée à échelle modifiée de façon uniforme, le dispositif comprenant une mémoire d'image (2) pour y mémoriser l'image numérique d'origine, l'image numérique d'origine ayant un nombre (N) de lignes de balayage d'origine successives et un nombre (N') de données de pixel d'origine successives par ligne de balayage d'origine, le dispositif comprenant en outre une unité de changement d'échelle verticale pour changer l'échelle de l'image numérique d'origine dans une direction verticale afin d'obtenir un nombre (M) de lignes de balayage souhaitées successives, et une unité de changement d'échelle horizontale pour changer l'échelle des lignes de balayage souhaitées provenant de l'unité de changement d'échelle verticale dans une direction horizontale afin d'obtenir un nombre (M') de données de pixel souhaitées successives par ligne de balayage, le nombre (M) étant inférieur au nombre (N), le nombre (M') étant inférieur au nombre (N'), caractérisé en ce que 12. Device for processing an original digital image to obtain a desired digital image on a uniformly modified scale, the device comprising an image memory (2) for storing therein the original digital image, the original digital image having a number (N) of successive original scan lines and a number (N ') of successive original pixel data per original scan line, the device further comprising a vertical scale change to change the scale of the original digital image in a vertical direction to obtain a number (M) of successive desired scan lines, and a horizontal scale change unit to change the scale of the desired scan lines from the vertical scale change unit in a horizontal direction to obtain a number (M ') of successive desired pixel data per scan line, the number (M) being less eur to the number (N), the number (M ') being less than the number (N'), characterized in that l'unité de changement d'échelle verticale comprend un contrôleur de changement d'échelle verticale (6) et une mémoire de ligne (3) reliée à la mémoire d'image (2), le contrôleur de changement d'échelle verticale (6) comprenant the vertical scale change unit comprises a vertical scale change controller (6) and a line memory (3) connected to the image memory (2), the vertical scale change controller (6 ) including un premier générateur d'adresse (37), relié à la mémoire d'image (2), pour commander la mémoire d'image (2) de façon à fournir en sortie une première ligne de balayage d'origine pour mémorisation dans la mémoire de ligne (3) a first address generator (37), connected to the image memory (2), for controlling the image memory (2) so as to output a first original scan line for storage in the memory line (3) des premiers moyens de génération (33) d'un nombre (U), qui est le reste de la division de (N) par (M) first means of generation (33) of a number (U), which is the remainder of the division of (N) by (M) un premier registre de données (56) a first data register (56) des premiers moyens additionneurs (43), reliés aux premiers moyens de génération (33) et au premier registre de données (56), prévus pour additionner (U) et le nombre mémorisé dans le premier registre de données (56) de façon à obtenir une somme ; et first adding means (43), connected to the first generation means (33) and to the first data register (56), provided for adding (U) and the number stored in the first data register (56) so as to obtain an amount ; and des premiers moyens de calcul (44), reliés aux premiers moyens additionneurs (43), au premier générateur d'adresse (37) et au premier registre de données (56), destinés à comparer la somme et le nombre (M) et à activer le premier générateur d'adresse (37) pour commander la mémoire d'image (2) de façon qu'elle fournisse en sortie une autre ligne de balayage d'origine pour mémorisation dans la mémoire de ligne (3), cette autre ligne de balayage d'origine étant décalée par rapport à la ligne de balayage d'origine immédiatement précédente apparue en sortie de la mémoire d'image (2) d'un nombre (V) égal au quotient de la division de (N) par (M) lorsque la somme est inférieure à (M), et d'un nombre (V+1) lorsque la somme est au moins égale à (M) ; first calculation means (44), connected to the first adding means (43), to the first address generator (37) and to the first data register (56), intended to compare the sum and the number (M) and to activate the first address generator (37) to control the image memory (2) so that it outputs another original scan line for storage in the line memory (3), this other line original scan line being offset from the immediately preceding original scan line that appeared at the output of the image memory (2) by a number (V) equal to the quotient of the division of (N) by ( M) when the sum is less than (M), and by a number (V + 1) when the sum is at least equal to (M); les premiers moyens de calcul (44) mémorisant la différence entre le nombre (M) et la somme dans le premier registre de données (56) si la somme est au moins égale à (M), et mémorisant la somme dans le premier registre de données (56) si la somme est inférieure à (M) ; et en ce que the first calculation means (44) memorizing the difference between the number (M) and the sum in the first data register (56) if the sum is at least equal to (M), and memorizing the sum in the first data register data (56) if the sum is less than (M); and in that l'unité de changement d'échelle horizontale comprend un contrôleur de changement d'échelle horizontale (10), le contrôleur de changement d'échelle horizontale (10) comprenant the horizontal scale change unit includes a horizontal scale change controller (10), the horizontal scale change controller (10) comprising un second générateur d'adresse (37), relié à la mémoire de ligne (3), pour commander la mémoire de ligne (3) de façon qu'elle fournisse en sortie une première donnée de pixel d'origine d'une ligne de balayage d'origine a second address generator (37), connected to the line memory (3), for controlling the line memory (3) so that it outputs a first original pixel data of a line of original scan des seconds moyens de génération (33) d'un nombre (U'), qui est le reste de la division de (N') par (M') second means (33) for generating a number (U '), which is the remainder of the division of (N') by (M ') un second registre de données (56) a second data register (56) des seconds moyens additionneurs (43), reliés aux seconds moyens de génération (33) et au second registre de données (56), prévus pour additionner (U') et le nombre mémorisé dans le second registre de données (56) de façon à obtenir une somme ; et second adding means (43), connected to the second generation means (33) and to the second data register (56), provided for adding (U ') and the number stored in the second data register (56) so as to get a sum; and des seconds moyens de calcul (44), reliés aux seconds moyens additionneurs (43), au second générateur d'adresse (37) et au second registre de données (56), destinés à comparer la somme et le nombre (M') et à activer le second générateur d'adresse (37) de façon à commander la mémoire de ligne (3) de façon qu'elle fournisse en sortie une autre donnée de pixel d'origine de ladite ligne de balayage d'origine, ladite autre donnée de pixel d'origine de ladite ligne de balayage d'origine étant décalée par rapport à la donnée de pixel d'origine immédiatement précédente apparue en sortie de la mémoire de ligne (3) d'un nombre (V') égal au quotient de la division de (N') par (M') lorsque la somme est inférieure à (M'), et d'un nombre (V'+1) lorsque la somme est au moins égale au nombre (M') ; second calculation means (44), connected to the second adding means (43), to the second address generator (37) and to the second data register (56), intended to compare the sum and the number (M ') and activating the second address generator (37) so as to control the line memory (3) so that it outputs another source pixel data from said source scan line, said other data of original pixel of said original scan line being shifted with respect to the immediately preceding original pixel data appearing at the output of the line memory (3) by a number (V ′) equal to the quotient of dividing (N ') by (M') when the sum is less than (M '), and by a number (V' + 1) when the sum is at least equal to the number (M '); les seconds moyens de calcul (44) mémorisant la différence entre le nombre (M') et la somme dans le second registre de données (56) lorsque la somme est au moins égale à (M'), et mémorisant la somme dans le second registre de données (56) lorsque la somme est inférieure à (M') the second calculation means (44) memorizing the difference between the number (M ') and the sum in the second data register (56) when the sum is at least equal to (M'), and memorizing the sum in the second data register (56) when the sum is less than (M ') moyennant quoi la sortie de l'unité de changement d'échelle horizontale peut etre fournie directement à un dispositif de sortie. whereby the output of the horizontal scaling unit can be supplied directly to an output device. 13. Procédé de traitement d'une image numérique d'origine, pour obtenir une image numérique souhaitée à échelle modifiée de façon uniforme - l'image numérique d'origine ayant (N) données d'image successives et l'image numérique souhaitée ayant (M) données d'image désirées successives, (M) étant supérieur à (N) - caractérisé en ce qu'il comprend les étapes suivantes 13. Method for processing an original digital image, in order to obtain a desired digital image on a uniformly modified scale - the original digital image having (N) successive image data and the desired digital image having (M) successive desired image data, (M) being greater than (N) - characterized in that it comprises the following steps on prévoit un premier interpolateur linéaire (5)b; et a first linear interpolator (5) b is provided; and on commande l'interpolateur linéaire (5) de façon à effectuer une interpolation linéaire de la (n)iêle et de la (n+1)i' données d'image d'origine de façon à produire une donnée d'image interpolée résiduelle qui est insérée entre les données d'origine lorsque la division de (M-N) par (N-l) laisse un reste (S) et lorsque (n) est un nombre minimum qui remplit la conduit on (..+1)*(S) > (s)*(N), où (s) varie de 1 à (S).  the linear interpolator (5) is controlled so as to perform a linear interpolation of the (n) island and the (n + 1) i 'original image data so as to produce a residual interpolated image data which is inserted between the original data when the division of (MN) by (Nl) leaves a remainder (S) and when (n) is a minimum number which fills the conduit on (.. + 1) * (S) > (s) * (N), where (s) varies from 1 to (S). 14. Procédé de traitement d'une image numérique d'origine pour obtenir une image numérique désirée à échelle modifiée de façon uniforme, dans laquelle l'image numérique d'origine a (N) données d'image successives et l'image numérique désirée a (M) données d'image successives, (M) étant inférieur à (N), caractérisé en ce qu'il comprend les étapes suivantes 14. A method of processing an original digital image to obtain a desired digital image on a uniformly modified scale, wherein the original digital image has (N) successive image data and the desired digital image a (M) successive image data, (M) being less than (N), characterized in that it comprises the following steps (1-1) on mémorise les données d'image d'origine dans une mémoire (2) (1-1) the original image data is stored in a memory (2) (I-2) on prévoit un générateur d'adresse (37) qui commande la mémoire (2) de façon à fournir en sortie une première donnée d'image d'origine (I-2) an address generator (37) is provided which controls the memory (2) so as to output a first original image data (I-3) on mémorise un nombre (U), qui est le reste de la division de (N) par (M), dans un registre de données (56) (I-3) a number (U), which is the remainder of the division of (N) by (M), is stored in a data register (56) (1-4) on ajoute le nombre (U) au nombre mémorisé dans le registre de données (56) pour obtenir une somme (1-4) the number (U) is added to the number stored in the data register (56) to obtain a sum (I-5) on compare la somme avec (M) (I-5) we compare the sum with (M) (I-6) on active le générateur d'adresse (37) pour commander la mémoire (2) de façon qu'elle fournisse en sortie une autre donnée d'image d'origine, décalée d'une donnée d'image d'origine immédiatement précédente fournie par la mémoire (2) d'un nombre (V) égal au quotient de la division de (N) par le nombre (M) lorsque la somme est inférieure à (M), et par le nombre (V+1) lorsque la somme est au moins égale à (M) (I-6) the address generator (37) is activated to control the memory (2) so that it outputs another original image data, offset by an image data of immediately preceding origin provided by the memory (2) of a number (V) equal to the quotient of the division of (N) by the number (M) when the sum is less than (M), and by the number (V + 1) when the sum is at least equal to (M) (I-7) si la somme est au moins égale à (M), on soustrait le nombre (M) de la somme et on mémorise la différence dans le registre de données ; et, si la somme est inférieure à (M), on mémorise la somme dans le registre de données (56) ; et (I-7) if the sum is at least equal to (M), the number (M) is subtracted from the sum and the difference is stored in the data register; and, if the sum is less than (M), the sum is stored in the data register (56); and (1-8) on répète les étapes (I-4) à (I-7) jusqu'à ce que (M) données d'image d'origine aient été fournies à la sortie de la mémoire. (1-8) repeating steps (I-4) to (I-7) until (M) original image data has been supplied to the memory output. 15. Dispositif de traitement d'une image numérique d'origine pour obtenir une image numérique souhaitée à échelle modifiée de façon uniforme, l'image numérique d'origine ayant (N) données d'image d'origine successives, l'image numérique souhaitée ayant (M) données d'image souhaitées successives et (M) étant supérieur à (N), caractérisé par 15. Device for processing an original digital image to obtain a desired digital image on a uniformly modified scale, the original digital image having (N) successive original image data, the digital image desired having (M) successive desired image data and (M) being greater than (N), characterized by un premier interpolateur linéaire (5) ; et a first linear interpolator (5); and des premiers moyens de contrôle (6), reliés au premier interpolateur linéaire (5), pour commander l'interpolateur linéaire (5) de façon qu'il effectue une interpolation linéaire entre la (n) jêle et la (n+1)iêlo données d'image d'origine afin de produire une donnée d'image interpolée résiduelle insérée entre les données d'interpolation si la division de (M-N) par (N-l) donne un reste (S) et si (n) est un nombre minimum qui remplit la condition (n+l)*(S) 2 (s)*(N), où (s) varie de 1 à (S). first control means (6), connected to the first linear interpolator (5), for controlling the linear interpolator (5) so that it performs a linear interpolation between the (n) jumper and the (n + 1) iêlo original image data to produce residual interpolated image data inserted between the interpolation data if the division of (MN) by (Nl) gives a remainder (S) and if (n) is a minimum number which fulfills the condition (n + l) * (S) 2 (s) * (N), where (s) varies from 1 to (S). 16. Dispositif de traitement d'une image numérique d'origine pour obtenir une image numérique souhaitée à échelle modifiée de façon uniforme, l'image numérique d'origine ayant (N) données d'image successives d'origine, l'image numérique souhaitée ayant (M) données d'image successives et (M) étant inférieur à (N), caractérisé en ce qu'il comprend 16. Device for processing an original digital image to obtain a desired digital image on a uniformly modified scale, the original digital image having (N) successive original image data, the digital image desired having (M) successive image data and (M) being less than (N), characterized in that it comprises une première mémoire (2) de stockage des données d'image d'origine a first memory (2) for storing the original image data un premier générateur d'adresse (37), relié à la première mémoire (2), pour commander la première mémoire (2) de façon à fournir une première donnée parmi les données d'image d'origine a first address generator (37), connected to the first memory (2), for controlling the first memory (2) so as to supply a first data item from the original image data des premiers moyens de génération (33) d'un nombre (U) qui est le reste de la division de (N) par (M) first means of generation (33) of a number (U) which is the remainder of the division of (N) by (M) un premier registre de données (56) a first data register (56) des premiers moyens additionneurs (43) reliés aux premiers moyens de génération (53) et au premier registre de données (56), prévus pour additionner (U) et le nombre stocké dans le premier registre de données (56) de façon à obtenir une somme ; et first adding means (43) connected to the first generation means (53) and to the first data register (56), provided for adding (U) and the number stored in the first data register (56) so as to obtain a sum; and des premiers moyens de calcul (44), reliés aux premiers moyens additionneurs (43), au premier générateur d'adresse (37) et au premier registre de données (56), destinés à comparer la somme et le nombre (M) et à activer le premier générateur d'adresse (37) pour commander la première mémoire (2) de façon qu'elle fournisse en sortie une autre donnée d'image d'origine qui est décalée de la donnée d'image d'origine immédiatement précédente apparue en sortie de la première mémoire (2) d'un nombre (V) égal au quotient de la division de (N) par (M) lorsque la somme est inférieure à (M) et d'un nombre (V+1) lorsque la somme est au moins égale à (M) first calculation means (44), connected to the first adding means (43), to the first address generator (37) and to the first data register (56), intended to compare the sum and the number (M) and to activate the first address generator (37) to control the first memory (2) so that it outputs another original image data which is offset from the immediately preceding original image data which appeared at the output of the first memory (2) of a number (V) equal to the quotient of the division of (N) by (M) when the sum is less than (M) and of a number (V + 1) when the sum is at least equal to (M) lesdits premiers moyens de calcul (44) mémorisant la différence entre le nombre (M) et la somme dans le premier registre de données (56) si la somme est au moins égale à (M) et mémorisant la somme dans le premier registre de données (56) si la somme est inférieure à (M).  said first calculating means (44) storing the difference between the number (M) and the sum in the first data register (56) if the sum is at least equal to (M) and storing the sum in the first data register (56) if the sum is less than (M).
FR9609098A 1995-07-26 1996-07-19 Digital image scale uniform alteration circuit for image scaling system - has vertical and horizontal scaling controllers, with the vertical controller using sweep line storage and buffers which can have horizontal points added Pending FR2737325A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR9609098A FR2737325A1 (en) 1995-07-26 1996-07-19 Digital image scale uniform alteration circuit for image scaling system - has vertical and horizontal scaling controllers, with the vertical controller using sweep line storage and buffers which can have horizontal points added

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9509086A FR2737324B1 (en) 1995-07-26 1995-07-26 METHOD AND DEVICE FOR CHANGING THE SCALE OF A DIGITAL IMAGE IN A UNIFORM WAY
FR9609098A FR2737325A1 (en) 1995-07-26 1996-07-19 Digital image scale uniform alteration circuit for image scaling system - has vertical and horizontal scaling controllers, with the vertical controller using sweep line storage and buffers which can have horizontal points added

Publications (1)

Publication Number Publication Date
FR2737325A1 true FR2737325A1 (en) 1997-01-31

Family

ID=26232124

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9609098A Pending FR2737325A1 (en) 1995-07-26 1996-07-19 Digital image scale uniform alteration circuit for image scaling system - has vertical and horizontal scaling controllers, with the vertical controller using sweep line storage and buffers which can have horizontal points added

Country Status (1)

Country Link
FR (1) FR2737325A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009126683A3 (en) * 2008-04-09 2011-04-07 Harris Corporation Video multiviewer system with serial digital interface and related methods

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0367418A2 (en) * 1988-10-31 1990-05-09 International Business Machines Corporation Display system interpolators
WO1990016035A2 (en) * 1989-06-16 1990-12-27 Eastman Kodak Company Digital image interpolator
EP0574245A2 (en) * 1992-06-11 1993-12-15 International Business Machines Corporation Method and apparatus for variable expansion and variable shrinkage of an image
EP0595301A2 (en) * 1992-10-27 1994-05-04 Matsushita Electric Industrial Co., Ltd. System and method for modifying aberration and registration of images

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0367418A2 (en) * 1988-10-31 1990-05-09 International Business Machines Corporation Display system interpolators
WO1990016035A2 (en) * 1989-06-16 1990-12-27 Eastman Kodak Company Digital image interpolator
EP0574245A2 (en) * 1992-06-11 1993-12-15 International Business Machines Corporation Method and apparatus for variable expansion and variable shrinkage of an image
EP0595301A2 (en) * 1992-10-27 1994-05-04 Matsushita Electric Industrial Co., Ltd. System and method for modifying aberration and registration of images

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009126683A3 (en) * 2008-04-09 2011-04-07 Harris Corporation Video multiviewer system with serial digital interface and related methods
US8773469B2 (en) 2008-04-09 2014-07-08 Imagine Communications Corp. Video multiviewer system with serial digital interface and related methods

Similar Documents

Publication Publication Date Title
FR2585867A1 (en) GRAPHIC VIEWING CONTROL SYSTEM.
FR2544898A1 (en) VIDEO DISPLAY DEVICE ON SCREEN DISPLAY SCREEN OF LINE FRAME BY LINE AND POINT BY POINT
EP0858066A1 (en) Method and device for converting the digital image rate
EP0441692B1 (en) Control process for a matrix screen comprising two independent parts and device to carry it out
FR2670923A1 (en) CORRELATION DEVICE.
FR2522490A1 (en) APPARATUS FOR ULTRASONIC DIAGNOSIS
FR2658971A1 (en) METHOD FOR PROCESSING DIGITAL CONTROL DATA ASSOCIATED WITH HD-MAC TYPE VIDEO SIGNAL AND DEVICE FOR IMPLEMENTING THE METHOD
JP3216907B2 (en) Electronic zoom device and imaging device
EP0005672B1 (en) Device for television titling apparatus
FR2737325A1 (en) Digital image scale uniform alteration circuit for image scaling system - has vertical and horizontal scaling controllers, with the vertical controller using sweep line storage and buffers which can have horizontal points added
FR2860376A1 (en) METHOD AND DEVICE FOR ENLARGING A VIDEO IMAGE
EP0619552B1 (en) Object motion estimation device and process in animated successive pictures subdivided in bidimensional image element blocs
FR2535561A1 (en) VIDEO SIGNAL PROCESSING SYSTEM
FR2615981A1 (en) METHOD AND APPARATUS FOR OBTAINING INSTANT INVERSE VALUES OF HOMOGENEOUS COORDINATES W FOR USE IN IMAGE RESTITUTION ON DISPLAY BODY
FR2737324A1 (en) Uniform alteration of scale of digital image - inserts interpolated data when enlarging image only when there is space to insert it smoothly into image data
JPH11203467A (en) Display and its method
FR2631474A1 (en) CIRCUIT AND METHOD FOR CONTROLLING THE PRESENTATION OF COLOR INFORMATION TO A DISPLAY DEVICE OF A COMPUTER SYSTEM
FR2548504A1 (en) MOUNTING TO GENERATE LARGE DIMENSIONAL IMAGE SYSTEMS
FR2653628A1 (en) METHOD AND CIRCUIT FOR MODIFYING THE POSITION OF A DIGITAL STRUCTURE ANIME DRAWING IMAGE.
FR2647988A1 (en) DEVICE FOR DELAYING A PROGRAMMABLE DIGITAL SIGNAL AND APPLICATION TO AN ERROR-CORRECTING DEVICE
BE1004491A3 (en) Procedure and system for processing video signals
JP3025437B2 (en) Method and apparatus for processing original digital images
EP0680015A1 (en) Pixel feeding device of an operator sequence of a mobile image compression circuit
JPS5977771A (en) Picture signal processor
FR2644267A1 (en) Data processing device and method for preparing data representing an additional figure attached to a basic figure reproduced on an output medium