FR2717029A1 - Procédé et dispositif de codage à longueur variable de signaux numériques. - Google Patents

Procédé et dispositif de codage à longueur variable de signaux numériques. Download PDF

Info

Publication number
FR2717029A1
FR2717029A1 FR9402382A FR9402382A FR2717029A1 FR 2717029 A1 FR2717029 A1 FR 2717029A1 FR 9402382 A FR9402382 A FR 9402382A FR 9402382 A FR9402382 A FR 9402382A FR 2717029 A1 FR2717029 A1 FR 2717029A1
Authority
FR
France
Prior art keywords
image
circuit
coding
images
allocation
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.)
Withdrawn
Application number
FR9402382A
Other languages
English (en)
Inventor
Tranchard Lionel
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.)
Laboratoires dElectronique Philips SAS
Original Assignee
Laboratoires dElectronique Philips SAS
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
Application filed by Laboratoires dElectronique Philips SAS filed Critical Laboratoires dElectronique Philips SAS
Priority to FR9402382A priority Critical patent/FR2717029A1/fr
Priority to EP95200384A priority patent/EP0670663A1/fr
Priority to US08/392,632 priority patent/US5680483A/en
Priority to JP04034895A priority patent/JP3818679B2/ja
Publication of FR2717029A1 publication Critical patent/FR2717029A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding

Abstract

Dispositif de codage à longueur variable d'une séquence d'images divisée en groupes successifs de N images elles-mêmes organisées en blocs ou macroblocs d'image et comprenant au moins une voie de quantification et codage à longueur variable desdits blocs ou macroblocs et un sous-ensemble de régulation de débit. Selon l'invention, ce sous-ensemble comprend en série une mémoire-tampon (10) et un dispositif (110) de modification du pas de quantification, comprenant lui-même, en série, un étage (200) d'allocation de bits pour chaque image successive de la séquence d'images, un étage (300) d'allocation de bits pour cette image et les (N-1) images suivantes, un étage (400) de correction de l'allocation de bit de chaque nouvelle image à coder, et un étage (500) de modification du pas de quantification en fonction de ladite allocation corrigée. Application: codage de signaux de télévision.

Description

Description
La présente invention concerne un procédé de codage à longueur variable de signaux numériques représentatifs d'une séquence d'images organisée en blocs ou macroblocs image, ledit procédé comprenant au moins les étapes suivantes
(A) une étape de codage à longueur variable, après transformation cosinus discrète par bloc et quantification des blocs ou macroblocs ainsi transformés
(B) une étape de régulation du débit après codage à longueur variable, comprenant elle-même en série une sous-étape de stockage des données codées à longueur variable et une sousétape de modification du pas de quantification en fonction du débit desdites données codées. Cette invention concerne également, pour la mise en oeuvre de ce procédé, un dispositif de codage à longueur variable de signaux numériques représentatifs d'une séquence d'images organisées en blocs ou macroblocs d'image, ledit dispositif comprenant au moins
(a) une voie de codage, qui comprend elle-même en série un circuit de transformation cosinus discrète par bloc, un circuit de quantification par bloc ou macrobloc d'image, et un circuit de codage à longueur variable des données ainsi quantifiées
(b) un sous-ensemble de régulation de débit, qui comprend lui-même en série une mémoire-tampon prévue en sortie dudit circuit de codage à longueur variable et un dispositif de modification du pas de quantification du circuit de quantification en fonction de l'état de remplissage de cette mémoire.
Les applications de l'invention se situent dans le domaine de la transmission d'images dans des canaux numériques, ou dans le domaine du stockage des images. L'invention est utilisable notamment dans un codeur à longueur variable compatible avec la norme MPEG2 (MPEG, pour "Moving Picture
Expert Group", un groupe d'experts de l'organisation de normalisation internationale ISO), et l'on rappellera donc plus loin, avant la description détaillée de cette invention, les caractéristiques essentielles d'un flot de données conforme à ce standard MPEG2, adopté ces dernières années par l'ISO pour la transmission et/ou le stockage d'images animées.
On précisera cependant tout d'abord que la plupart des processus de compression de données mis en oeuvre dans des codeurs vidéo sont prévus pour fonctionner à débit constant, en sortie de la mémoire-tampon qui reçoit les données codées de longueur variable issues du codage. De nombreux documents, et par exemple l'article "Two-layer video coding for ATM networks", de G.Morrison et D. Beaumont, paru dans "Signal
Processing : Image Communication", vol.3, nos 2-3, juin 1991, pp.179-195, rappellent la structure de base de tels codeurs.
Or de prochaines applications vidéo, particulièrement dans le domaine de la diffusion de programmes de télévision, rendront pratiquement nécessaire, ou en tout cas très utile, de disposer de débits variables, c'est-à-dire, plus précisément, de la possibilité de modifier le débit vidéo d'un programme sans interruption de service au moment de la commutation de débit.
Un premier but de l'invention est donc de proposer un procédé de codage permettant, en réponse à ce problème de type nouveau, de prévoir une commutation de débit de sortie sans aucune interruption ou perturbation du service de diffusion.
A cet effet, l'invention concerne un procédé de codage tel que défini plus haut, dans le préambule de la description, et qui est en outre caractérisé en ce que ladite sous-étape de modification comprend elle-même en série les étapes suivantes
(a) estimation de la complexité de l'image courante à coder, en fonction du pas de quantification et du nombre de bits consécutif audit codage à longueur variable, ladite complexité constituant une allocation de bits pour ladite image
(b) par groupe d'images de longueur prédéterminée N, estimation, compte tenu de ladite complexité estimée et en fonction essentiellement dudit débit modifiable par un ordre de commutation de débit, de l'allocation - ou nombre de bits- nécessaire pour le codage de ce groupe incluant à chaque image courante ladite image et les (N-l) images qui suivent celle-ci
(c) correction de l'allocation de l'image courante en fonction de ladite allocation par groupe d'images, du nombre N, de la période des images, du nombre de données codées stockées après ledit codage à longueur variable, du débit souhaité après régulation, et de la capacité maximale réellement disponible pour le stockage effectué après ledit codage
(d) modification du pas de quantification en fonction de l'allocation ainsi corrigée pour chaque image courante.
Un autre but de l'invention est de proposer un dispositif de codage permettant la mise en oeuvre dudit procédé de codage, c'est-à-dire permettant effectivement de modifier par commutation le débit de sortie sans que le service de diffusion soit perturbé.
A cet effet, l'invention concerne un dispositif de codage tel que défini plus haut, également dans le préambule de la description, et qui est en outre caractérisé en ce que ledit dispositif de modification du pas de quantification comprend lui-même, en série
(a) un étage de détermination d'une allocation de bits pour chaque image courante à coder, par une estimation de sa complexité considérée comme proportionnelle au pas de quantification et au nombre de bits consécutif au codage à longueur variable
(b) un étage de détermination d'une allocation de bits par groupe d'images glissant de nombre d'images déterminé
N, en appelant groupe glissant celui qui inclut ladite image courante à coder et les (N-1) images suivantes, ladite détermination étant effectuée par une estimation tenant compte de ladite complexité estimée et du débit souhaité en sortie de ladite mémoire-tampon, modifiable par un ordre de commutation dudit débit
(c) un étage de correction d'allocation de bits pour chaque nouvelle image à coder, en fonction de ladite modification du débit en sortie de ladite mémoire-tampon du dispositif de codage
(d) un étage de modification du pas de quantification en fonction de ladite allocation de bits corrigée.
Le procédé ainsi défini et le dispositif pour sa mise en oeuvre présentent notamment l'avantage de proposer une régulation de débit d'une complexité à peine accrue par rapport à celle des dispositifs à débit constant. De ce fait, la régulation de débit ainsi proposée est utilisable dans toutes les applications où des débits de transmission variables sont souhaités, et peut en particulier être incluse, sans influence sensible sur le coût global, dans des codeurs vidéo compatibles avec la norme MPEG2. Cette mise en place dans de tels codeurs, intéressante sur le plan économique, est une solution également très avantageuse sur le plan technique, puisque l'introduction de cette possibilité de commuter le débit est obtenue sans apparition d'aucun artefact au niveau de la qualité d'image, ni d'aucun type de défaut de transition entre images.
Dans le cas particulier d'une utilisation dans un tel codeur compatible, et où les signaux numériques d'entrée du dispositif de codage correspondent alors à une séquence d'images dans laquelle les images successives sont dites de type I, P ou B respectivement, selon que leur est appliqué un mode de codage indépendant de toute autre image, ou par compensation de mouvement unidirectionnelle à partir d'une image précédente, ou par compensation de mouvement bidirectionnelle à partir d'images antérieure et postérieure, ce dispositif de codage selon l'invention est avantageusement caractérisé en ce que l'étage d'allocation de bits pour chaque image à coder comprend d'une part une première mémoire de stockage de valeurs d'initialisation de la complexité pour la première image à coder et un premier circuit de multiplication du nombre de bits consécutif au codage de l'image courante, présent sur la sortie du circuit de codage à longueur variable, par la sortie d'un circuit de calcul de pas de quantification moyen par image recevant lui-même la sortie du circuit de quantification, et d'autre part un circuit de sélection, selon le type I, P ou B de l'image courante et selon qu'elle est la première ou non de la séquence, d'une seule des quatre sorties de ladite première mémoire et dudit premier circuit de multiplication, la sortie du circuit de sélection constituant ladite complexité représentative de l'allocation de bits de l'image courante concernée.
Cette structure d'étage d'allocation de bits permet de réaliser, sans analyse préalable complexe, une estimation du nombre de bits nécessaire pour le codage de chaque image. Cette estimation effectuée sur chaque image constitue une base satisfaisante pour l'évaluation de l'allocation de bits à affecter pour tout un groupe de N images et les (N-l) qui la suivent, puis pour une correction précise de l'allocation par image en fonction de cette allocation par groupe d'images, et, en fonction du réajustement ainsi effectué, pour la modification corrélative du pas de quantification.
Dans cette application à un codeur compatible avec la norme MPEG2, le dispositif de codage peut, selon une variante de réalisation avantageuse, être caractérisé en ce que l'étage d'allocation de bits pour chaque image à coder comprend également un deuxième circuit de multiplication, recevant par l'intermédiaire d'une deuxième mémoire de stockage le nombre de bits de codage et le pas de quantification moyen qui correspondent à l'image de même type précédant l'image courante, et en ce que le circuit de sélection reçoit également la sortie dudit deuxième circuit de multiplication pour sélectionner, selon le type de l'image courante et selon qu'elle est la première ou non de la séquence, une seule des cinq sorties de ladite première mémoire et desdits premier et deuxième circuits de multiplication.
Dans l'une ou l'autre de ces réalisations, cette estimation d'une allocation de bits pour l'image courante permet de réajuster à chaque nouvelle image l'allocation du groupe d'images glissant dont elle est la première. Pour cette opération, le dispositif de codage selon l'invention, procédant en quelques étapes simples, peut être caractérisé en ce que l'étage d'allocation de bits par groupe d'images glissant comprend d'une part un circuit de calcul de profil, ou allocation fixe, pour un groupe déterminé de N images de la séquence, ce calcul étant effectué en fonction du type et de la complexité de la première image de ce groupe déterminé, et d'autre part un circuit d'estimation d'un nombre de bits, ou allocation, par groupe d'images glissant, cette estimation étant effectuée en fonction de l'état de remplissage réel de la mémoire-tampon au début dudit groupe déterminé, de l'état de remplissage souhaité au même moment pour ladite mémoire-tampon, et du débit en sortie de cette mémoire-tampon.
Ce réajustement permet à son tour la correction de l'allocation de bits pour chaque nouvelle image à coder, par exemple selon une structure du dispositif de codage dans laquelle l'étage de correction d'allocation de bits pour chaque nouvelle image à coder comprend un circuit d'évaluation du nombre de bits, ou allocation, envisagé pour la prochaine image dudit groupe déterminé, suivi d'un circuit de correction de ladite allocation, puis la modification du pas de quantification, par exemple selon une structure du dispositif de codage dans laquelle l'étage de modification du pas de quantification comprend, en série, un circuit d'initialisation d'état de remplissage d'une mémoire-tampon virtuelle, un circuit de calcul de l'état de remplissage courant de ladite mémoire virtuelle, et un circuit de détermination du pas de quantification de chaque bloc ou macrobloc de chaque image courante.
Les particularités et avantages de l'invention apparaîtront maintenant de façon plus précise dans la description détaillée qui suit et dans les dessins annexés, donnés à titre d'explication et d'exemples non limitatifs et dans lesquels
- la figure 1 montre un exemple de séquence d'images, constituée ici de groupes (GOP) de neuf images, accompagnées de l'indication de leur type I, P ou B selon le mode de codage adopté pour chacune d'elles
- la figure 2 est une représentation simplifiée d'une image (partie gauche de la figure) subdivisée en n tranches S1 à Sn, chacune desdites tranches comprenant (partie droite de la figure) r macroblocs MB1 à MBr eux-mêmes constitués chacun de quatre blocs de luminance et de deux blocs de chrominance, et ces blocs comprenant ici 8 x 8 points d'image
- la figure 3 montre la structure générale d'un dispositif de codage à longueur variable de type classique
- la figure 4 montre un exemple de réalisation, dans un tel dispositif de codage, d'un sous-ensemble de régulation de débit modifié conformément à la présente invention
- les figures 5 à 8 montrent des exemples de réalisation des étages de ce sous-ensemble de régulation de débit de la figure 4.
Une séquence de signaux numériques telle que celle reçue par le dispositif de codage selon l'invention en correspondance à des images animées comprend des informations relatives à la composante de luminance Y, ainsi que des informations relatives aux composantes de la chrominance, ou signaux de différence de couleur U et V. Les niveaux de gris, pour la luminance Y, et les niveaux de couleur, pour les signaux U et V, sont exprimés par des mots numériques de 8 bits regroupés en matrices. Selon le standard MPEG, le format d'entrée est tel que la chrominance subit un souséchantillonnage par quatre, par rapport à la luminance. De ce fait, on dispose de deux valeurs liées à la couleur (l'une pour
U, l'autre pour V) pour quatre valeurs de luminance. Comme les matrices de mots sont divisées en blocs de 8 x 8 points d'image, quatre blocs adjacents de la matrice Y correspondent à un bloc de la matrice U et à un bloc de la matrice V, et ces six blocs, réunis, constituent un macrobloc (MB). Ces blocs et macroblocs sont les unités de subdivision d'image sur lesquelles est effectué le codage. Enfin, le regroupement d'une série de macroblocs constitue une tranche, et chaque image est composée d'un certain nombre de tranches, par exemple 36 dans l'exemple ici décrit.
Les images (on appellera ainsi, de manière concise, l'ensemble des signaux numériques leur correspondant) sont elles-mêmes, dans un flot de données MPEG, de trois types, suivant le mode de codage qui leur est appliqué. Les plus simples sont les images I (de l'anglais cintra frame coded picture"), ou images intra, dans lesquelles tous les macroblocs sont codés indépendamment de toute autre image. Ainsi, en cas de modification du canal de transmission, ou de commutation de débit, on convient d'attendre une telle image de type I pour reconstituer au décodage les nouvelles informations résultant de ladite modification. Les images P (de l'anglais "Predictive coded picture") constituent un deuxième type d'images, prédites par compensation de mouvement unidirectionnelle à partir d'une image précédente (de type I ou de type P elle-même) et qui ne peuvent donc contenir que des macroblocs de type P ou de type
I. Enfin, les images B (de l'anglais "Bidirectionally predictive coded picture"), prédites par compensation de mouvement bidirectionnelle à partir d'une image antérieure et d'une image postérieure (elles-memes de type I et/ou P), peuvent contenir des macroblocs de type I, P ou B indifféremment. Plusieurs images associées constituent un groupe d'images, ou GOP, de l'anglais Group Qf Pictures. Comme une image de type B doit utiliser, pour être prédite, l'image P ou I qui la suit, il est manifeste que l'ordre naturel de restitution, après décodage, de la séquence d'origine et l'ordre de transmission des images doivent être différents dans un GOP, les images sont placées, pour la transmission, dans l'ordre dans lequel le décodeur en aura besoin pour décoder les images I, P, B. La réorganisation de ces images dans leur ordre naturel n'intervient qu'après le décodage. La figure 1 montre, dans une séquence d'images consécutives, un exemple de deux GOPs de 9 images avec indication du type T = I,
P, ou B de l'image, et l'on appellera dans la suite de la description N ce nombre d'images du GOP, sans que le choix de
N = 9 représente une quelconque limitation.
Un flot de données comprend, en définitive, six niveaux d'informations, chaque niveau englobant le niveau inférieur et quelques informations additionnelles. Au niveau le plus élevé correspond la séquence d'images (qui commence par un en-tête comprenant les informations nécessaires au décodage de la séquence : code de départ de séquence. format, cadence d'image, cadence des bits, taille de mémoire etc... et se termine par un code de fin de séquence). Au niveau inférieur, le groupe d'images GOP comprend un en-tête suivi d'un nombre quelconque d'images, dont au moins une image I (bien que ce ne soit pas indispensable, chaque GOP peut être autonome, et peut alors être décodé indépendamment de toute image antérieure ou postérieure à lui, et la suite des images I, P, B peut être périodique, comme dans le cas de l'exemple de la figure 1).
Le niveau encore inférieur, qui correspond à une image telle que représentée sur la figure 2, inclut un nombre déterminé n de tranches d'image S1 à Sn (là encore, un en-tête marque le début de l'image et contient des informations additionnelles : code de départ de l'image, référence temporelle de l'image, type de l'image I, P, ou B, etc...). Le niveau encore inférieur correspond à la tranche d'image et inclut un certain nombre de macroblocs MB (un en-tête marque le début de la tranche et contient des informations additionnelles : code de départ de la tranche, pas de quantification des coefficients DCT, etc...). Le niveau encore inférieur correspond au macrobloc MB, comprenant un certain nombre de blocs, ici 6 (Y1, Y2, Y3, Y4, U, V), précédés d'un en-tête qui contient lui aussi quelques informations additionnelles telles que l'adresse du macrobloc (pour connaitre sa position), son type (pour indiquer son mode de codage : intra, prédiction monodirectionnelle, prédiction bidirectionnelle), etc... Le dernier niveau est celui des blocs B, de 8 x 8 points d'image dans le cas présent.
Ces rappels relatifs au standard MPEG étant effectués, on aborde maintenant la description du dispositif selon l'invention. Le dispositif de codage représenté sur la figure 3 comprend tout d'abord une voie de codage, comprenant elle-même en série un circuit 1 de transformation cosinus discrète (dite DCT), un circuit de quantification 2 (notée Q), et un circuit 3 de codage à longueur variable (dit codage VLC).
Le circuit 1 de transformation DCT reçoit, par l'intermédiaire d'un soustracteur mentionné plus loin, des signaux numériques correspondant aux signaux vidéo d'entrée du dispositif de codage (obtenus, plus précisément, par différence entre ces signaux d'entrée et des signaux prédits présents sur l'autre entrée du soustracteur) et disponibles sous forme de blocs ici de format 8 x 8 points d'image. Ce circuit 1 convertit ces blocs de signaux en blocs de 8 x 8 coefficients, dont le premier représente la valeur moyenne des niveaux de gris du bloc considéré et les soixante-trois autres les différentes fréquences spatiales présentes dans ce bloc. Comme les informations portées par les images sont concentrées dans les basses fréquences, un nombre important de ces coefficients, ceux correspondant aux fréquences les plus élevées, est souvent nul. La transformation DCT assure donc une réduction sensible du nombre de coefficients à transmettre par bloc,
Le circuit 2 assure alors la quantification de chacun des coefficients non nuls de sortie du circuit 1 de transformation DCT, selon un pas de quantification qui, pour tenir compte du fait que les hautes fréquences spatiales sont moins perceptibles par l'oeil humain, est plus grand pour ces hautes fréquences que pour les basses fréquences. Cette quantification moins précise permet, en sacrifiant les coefficients les moins visibles, de réduire le débit des signaux (au détriment bien entendu de la précision de reconstitution de ces coefficients lors du décodage).
La suite des coefficients ainsi quantifiés, qui, en pratique, comprend un nombre important de zéros, tout particulièrement dans les hautes fréquences, est fournie au circuit 3 de codage VLC qui réduit encore le débit en affectant des mots de code plus courts au codage des symboles les plus fréquents et plus longs au codage des symboles les plus rares.
La voie de codage ainsi constituée (transformation
DCT, quantification Q, codage VLC) réduit la redondance spatiale des signaux d'entrée, mais la compression de données obtenue est dans un rapport qui ne peut dépasser la valeur 10 environ. Une compression supérieure peut être atteinte si l'on tient alors compte de la redondance temporelle des signaux d'entrée, c'est-à-dire du fait que, dans une séquence d'images animées, les images successives se ressemblent beaucoup (les différences entre elles n'étant dues qu'aux mouvements). On ne transmettra alors que ces différences, après les avoir déterminées en soustrayant de l'image courante une image prédite reconstituée à partir d'une précédente image courante en tenant compte des mouvements intervenus. Plus précisément, une bonne prédiction d'image peut être obtenue par l'intermédiaire d'une estimation et d'une compensation du mouvement des objets mobiles. Le dispositif de codage de la figure 3 associe alors à cet effet à la voie de codage une voie dite de prédiction, comprenant elle-même en série un circuit de quantification inverse 4 (cette quantification inverse étant noté Qi), un circuit de transformation cosinus discrète inverse 5 (notée DCT1), un additionneur 6, une mémoire 7, un circuit 8 de compensation de mouvement à partir de l'image non compensée stockée dans ladite mémoire, et un soustracteur 9 effectuant la différence entre les signaux d'entrée et les signaux prédits disponibles en sortie du circuit 8 (ces signaux prédits étant également envoyés vers une deuxième entrée de l'additionneur 6), pour n'envoyer vers la voie de codage et ne traiter dans celle-ci que la différence entre ces signaux, compte tenu du mouvement intervenu entre l'image prédite < a partir de l'image précédente) et l'image d'entrée (ou image courante).
Le dispositif de codage de la figure 3 comprend enfin un sous-ensemble 15 de régulation du débit qui comprend lui-même, de façon classique, une mémoire-tampon 10, prévue en sortie du circuit 3 de codage à longueur variable, et un dispositif 11 de modification du pas de quantification. En fonction de l'état de remplissage de la mémoire-tampon, ce dispositif 11 modifie le pas de quantification utilisé dans le circuit 2 pour obtenir en sortie de cette mémoire le débit le plus constant possible.
L'invention consiste à mettre en oeuvre, dans un tel dispositif de codage, un procédé de codage modifié pour qu'il soit possible de faire face à la situation où l'on change le débit du programme diffusé sans aucune interruption du service de diffusion et de transmission. La description de ce procédé, et du dispositif de codage correspondant, sera plus claire, cependant, si l'on a défini préalablement les contraintes qui sont imposées au processus de codage, du fait de l'application envisagée (adaptation à différents débits), pour que le processus de décodage se déroule correctement.
Ces contraintes sont, en pratique, les suivantes
(a) un fonctionnement correct en temps réel, c'està-dire avec un retard constant entre l'entrée des données à coder dans le dispositif de codage et la sortie des données à visualiser en sortie du dispositif de décodage correspondant
(b) un taux de remplissage correct de la mémoiretampon présente dans ce dispositif de décodage, afin que celleci ne soit ni en situation de débordement, ou excès de données reçues, ni en situation de pénurie de données (ces situations étant respectivement appelées, en anglais, "overflow" et "underflow")
(c) le dispositif de codage proposé devant être compatible avec le standard vidéo MPEG, toute une image codée doit être présente dans la mémoire-tampon du dispositif de décodage avant que son décodage effectif ne commence (on sait en effet qu'un flot de données MPEG est supposé pouvoir être décodé par un décodeur théorique qui lirait instantanément chaque image à décoder dans ladite mémoire-tampon)
(d) la qualité d'image doit rester la plus constante possible, sans sauts de qualité ou apparition d'une sorte de périodicité dans celle-ci, et la régulation de débit doit être entreprise en opérant une attribution des bits de la façon la plus appropriée à ce but.
Ces précisions étant apportées, le procédé de codage comprend tout d'abord, de façon classique, une étape de codage à longueur variable, après transformation cosinus discrète (par bloc) des signaux numériques représentatifs de la séquence d'images traitée et quantification des blocs ou macroblocs ainsi transformés, et une étape de régulation du débit après ledit codage à longueur variable, comprenant ellemême, en série, une sous-étape de stockage des données codées à longueur variable et une sous-étape de modification du pas de quantification en fonction du débit desdites données codées.
C'est cette dernière sous-étape qui, dans le cadre de la mise en oeuvre du procédé selon l'invention, est modifiée.
Selon l'invention, cette sous-étape de modification du pas de quantification comprend elle-même en série différentes étapes, et tout d'abord une première étape d'estimation de la complexité de l'image courante à coder.
Cette complexité, qui définit une allocation d'un certain nombre de bits à chaque image successive, est une grandeur représentative de l'aptitude de cette image courante, compte tenu de son contenu, à être comprimée de façon importante ou non. Elle peut être définie par exemple par le produit du nombre de bits issu du codage à longueur variable et du pas de quantification moyen correspondant à l'image concernée. Dans une variante de réalisation, elle peut être différente selon le type de l'image, en choisissant par exemple, pour une image de type P, la plus faible des deux complexités estimées sur l'image courante et sur l'image qui la précède.
L'allocation de bits ainsi définie est utilisée au cours d'une deuxième étape d'estimation d'allocation de bits nécessaire pour le codage de tout un groupe d'images ou GOP de longueur prédéterminée N incluant ladite image courante et les (N-l) images qui la suivent. Cette allocation est dite allocation par GOP glissant, en raison de la façon dont, à chaque image courante, le GOP est redéfini par glissement du précédent (en lui enlevant la précédente image courante et en lui ajoutant une N-ième image à la suite de la nouvelle image courante et des (N-2) images qui suivent celle-ci). Cette deuxième étape prend en compte les grandeurs suivantes : type et complexité de l'image courante, longueur N du GOP glissant, période des images, états de remplissage souhaité et réel lors du stockage des données codées à longueur variable, mais aussi et surtout, afin de s'y adapter, le débit (éventuellement modifié par ordre de commutation) en sortie de l'élément de mémoire assurant ledit stockage de données. Ce débit, noté R d'une façon générale, passe, lorsqu'il y a ordre de commutation, d'une valeur R1 à une valeur R2.
L'allocation par GOP glissant ainsi obtenue est alors utilisée au cours d'une troisième étape, pour corriger l'allocation de bits de chaque nouvelle image courante. Cette troisième étape prévoit tout d'abord d'évaluer une première estimation corrigée du nombre de bits nécessaire pour le codage de la prochaine image courante, qui constituera aussi la première image du nouveau GOP glissant, puis de déterminer la valeur corrigée définitive du nombre de bits envisagé pour le codage de ladite prochaine image courante. Cette étape de correction prend en compte non seulement les mêmes grandeurs que précédemment (type et complexité de l'image courante, longueur N, période d'image, états de remplissage souhaité et réel, débit avant et après commutation de débit), mais aussi la capacité maximale réellement disponible pour le stockage effectué après ledit codage.
Enfin une quatrième étape permet de modifier le pas de quantification au fur et à mesure du codage de l'image courante, essentiellement en fonction de l'état de remplissage initial de mémoire au début de cette image courante, du nombre de bits déjà engendré par le codage de l'image courante, et d'un paramètre de rétroaction qui permet de doser plus ou moins l'intensité de la régulation du débit, de faire en sorte que celle-ci soit plus ou moins importante, plus ou moins énergique.
Pour la mise en oeuvre de ce procédé de codage selon l'invention, le sous-ensemble de régulation de débit du dispositif de codage de la figure 3 est modifié et comprend, à la place du dispositif 11, un dispositif 110 de modification du pas de quantification. Dans l'exemple de réalisation représenté sur la figure 4, ce dispositif 110 comprend différents étages qui vont être successivement décrits en détail.
Le dispositif de modification de pas de quantificat représentés, car hors du domaine de l'invention) situés en amont du dispositif de codage. La complexité globale de l'image, notée X(T), est donnée par les expressions (1) ou (2) suivantes
(a) si T = I ou B, on a
x(T) = Si(T) . Q,m(T) (1)
(b) si T = P, on a
X(T) = MIN[(Si(T)#Qim(T)),(Si-1(T)#Qi-1m(T))] (2)
Dans ces expressions, Si(T) désigne le nombre de bits engendré par le codage VLC de l'image courante, de type T, Si1(T) désigne le nombre de bits consécutif au codage VLC de l'image précédente de même type, et Qim-l(T)Qim(T) désignent les pas de quantification moyens correspondant respectivement à chacune de ces images précédente et courante, calculés en prenant la moyenne des valeurs des pas de quantification correspondant au codage de tous les macroblocs. Pour les images de type P, on prend alors comme valeur de complexité la plus faible des deux dernières valeurs de complexité, ce qui permet d'atténuer les effets des changements de scène sur la qualité de l'image (en effet, la première image de type P qui suit un changement de scène présente toujours une valeur de complexité élevée et non représentative).
Cette distinction entre images P et images I ou B peut cependant ne pas être prise en compte, et l'on choisira alors dans tous les cas l'expression (1) pour valeur estimée de la complexité. Par ailleurs, pour les premières images, des valeurs initiales de X(.) doivent être choisies, et les essais réalisés ont conduit à prendre, quel que soit le débit, les valeurs suivantes, en nombre de bits
Xo(I) = 10000000
XO(P) = 3500000
Xo(B) = 1200000.
Cette opération d'estimation de la complexité est réalisée, dans tous les cas. par l'étage 200. Comme le montre l'exemple de réalisation de la figure 5, cet étage 200 comprend tout d'abord une mémoire 201, contenant les valeurs d'initialisation Xo(I), XO(P), Xo(B). D'autre part, un premier circuit de multiplication 202 reçoit les grandeurs Si(T) et Qf(T) : le nombre de bits Si(T) est fourni directement par la sortie du circuit 3 de codage à longueur variable, et le pas de quantification moyen Q1m.(T) par un circuit 203 de calcul de ce pas moyen à partir des pas de quantification réels des macroblocs, qui sont transmis par le circuit de quantification 2. Un deuxième circuit de multiplication 204 reçoit les grandeurs Sil(T) et Qlml (T) correspondant à l'image précédente de même type T que l'image courante et stockées temporairement dans une mémoire 205 qui, elle, les a reçues des circuits 3 et 203 comme précédemment. Un comparateur 206 effectue, seulement si T = P, la comparaison entre les produits Si.Qi et Si1.Qi- et sélectionne, comme indiqué à l'aide de l'opérateur MINt.] dans l'expression (2), la plus faible des deux valeurs comparées. Enfin, un circuit de sélection 207 à cinq entrées reçoit les trois sorties de la mémoire 201, celle du circuit de multiplication 202 et celle du comparateur 206, et, selon le type T et selon que l'image est ou non la première de la séquence, délivre l'un des signaux présents sur ces cinq entrées. Ce signal de sortie du circuit 207, qui constitue celui de l'étage 200, est donc le suivant
(a) la valeur initiale Xo(I), ou XO(P), ou Xo(B), si l'image est, dans la séquence d'images, la première du type concerné
(b) le signal de sortie du premier circuit de multiplication 202, si l'image n'est plus, dans la séquence d'images, la première du type concerné et si T = I ou B
(c) le signal de sortie du comparateur 206, si l'image n'est plus, dans la séquence d'images, la première du type concerné et si T = P.
Si on n'opère pas de distinction entre les images P et les images I ou B, le circuit de multiplication 204 et la mémoire 205 ne sont pas prévus, et le circuit de sélection 207 ne comprend alors que quatre entrées, pour ne sélectionner qu'un signal parmi quatre, soit l'une des trois sorties de la première mémoire 201, soit la sortie du premier circuit de multiplication 202.
Le dispositif 110 de modification de pas de quantification comprend également, en série avec l'étage 200, comme le montre la figure 4, un étage 300 d'allocation de bits pour chaque groupe d'image. Cet étage 300 comprend lui-même, tout d'abord, un circuit 301 de calcul de profil de GOP. Ce profil de GOP consiste en un jeu de valeurs, une par type d'image, déterminées au début du GOP, et ce jeu de valeur n'est pas modifié tant qu'un nouveau GOP ne se présente pas.
L'expression (3) qui donne cette grandeur notée PROF(T) est la suivante
PROF(T) =
Figure img00180001
Dans cette expression, on a
- T = I, P, ou B
- X(T) a été défini précédemment
- K(T) est une constante définie une fois pour toutes et, dans la réalisation ici décrite, K(I) = K(P) = 1 et
K(B) = 1,4
- N = nombre d'images par GOP (on a par exemple, dans l'exemple ici décrit où N = 12, N(I) = 1, N(P) = 5, et N(B) = 6)
- R = débit en sortie de la mémoire-tampon 10 ;
- P = période des images
- sous le signe , k = T prend successivement le sens k = I, k = P, k = B
- N(k), avec k = successivement I, P, B, représente le nombre d'images de type I, P ou B (respectivement) dans le
GOP concerné.
Les trois valeurs de PROF(T) ainsi obtenues en sortie du circuit 301 sont alors fournies, dans l'étage 300, à un circuit 302 d'estimation d'un nombre de bits, ou allocation, par GOP glissant. Deux situations peuvent alors se présenter soit le débit R reste constant en sortie du dispositif de codage, soit une commande de changement de débit est intervenue, pour passer d'un débit Rt à un débit R2. On supposera que cette commande de changement de débit de Rt à R2 ne peut être prise en compte par le dispositif de codage qu'à un instant t = to correspondant au début d'un GOP réel du flot de données. On va alors estimer le nombre de bits, pour ce GOP qui commence, en se basant sur l'hypothèse que l'état de remplissage de la mémoire-tampon 10 du dispositif de codage doit être aussi faible que possible au début de chaque GOP réel. Cette hypothèse est justifiée par le fait que le codage d'un GOP réel commence par le codage d'une image intra (de type
I) et qu'une telle image requiert une part importante de l'allocation globale dudit GOP.
Dans la première situation où le débit R est constant, cette allocation globale, ou nombre de bits alloué, est donnée par l'expression (4) suivante (la notation NBRG a été choisie à partir des termes anglais désignant cette grandeur : Number of Bits per Real GOP):
NBRGC = (NR/P) + WBFC - F,(GOPST) (4) dans laquelle
- N,R,P ont déjà été définies
- WBFC (Wished Buffer Fullness) représente, en nombre de bits, l'état de remplissage souhaité, à débit constant, pour la mémoire-tampon 10 au début de chaque GOP réel, c'est-à-dire au début de la première tranche active de sa première image
- Fe(GOPST) désigne, en nombre de bits, l'état de remplissage réel de la mémoire-tampon 10 au début dudit GOP réel (GOPST : GOP Start), et est fourni par ladite mémoire.
Dans la deuxième situation où le débit passe d'une valeur R1 à une valeur R2 < à l'instant t = t0 et au début d'un
GOP réel), l'allocation globale NBRGV (Number of Bits per Real
GOP, à débit variable) de ce GOP réel est maintenant donnée par l'expression (5) suivante
NBRGV = (NR2/P) + WBFV - Fe (GOPST)+(R1 - R2) Db (5) dans laquelle
- WBFV représente, maintenant l'état de remplissage souhaité, compte tenu du changement de débit, pour la mémoiretampon 10 au début de chaque GOP réel
- Db, dans le terme supplémentaire (R1-R2)Db, désigne le retard constant entre l'instant d'entrée des données (codées dans le circuit 3 de codage VLC) dans la mémoire-tampon 10 et l'instant où les données décodées correspondantes sortent de la mémoire-tampon présente dans le décodeur dans le cas où le circuit de codage et le circuit de décodage correspondant seraient directement connectés l'un à l'autre, ce retard Db étant en fait la somme, maintenue constante, des retards introduits par les mémoires-tampons du dispositif de codage et du dispositif de décodage correspondant quelle que soit la durée réelle du retard, variable, dû à la transmission et du retard supplémentaire ajouté à ce dernier au niveau du dispositif de décodage pour justement en compenser le caractère variable (on notera qu'en faisant R = R1 = R2 dans l'expression générale (5), on retrouve bien l'expression (4) de NBRGC à débit constant).
Comme il est souhaitable, on l'a vu, que l'état de remplissage de la mémoire-tampon 10 au début d'un GOP soit aussi faible que possible, on définira WBF, état de remplissage souhaité, par l'expression suivante (6) WBF = F lin Fin(t) + 4R/(P x NBSP) (6)
Dans cette expression, FXin(t) est la limite inférieure théorique de l'état de remplissage de la mémoire-tampon du dispositif de codage pour que la mémoire-tampon du dispositif de décodage correspondant ne déborde pas (situation de débordement, ou "d'overflow" comme signalé plus haut). Cette limite est désignée sous la forme d'une fonction du temps t, car elle est susceptible de varier à chaque commutation de débit. En fait, on choisit de définir F.in(t) selon l'expression (7) suivante
Figure img00210001

où x désigne la variable subissant l'intégration de t à (t+Db) et où S désigne la dimension physique réelle de la mémoiretampon du dispositif de décodage. Le deuxième terme de l'expression (6) est une marge de sécurité choisie de manière empirique selon l'application. Cette marge dépend de la valeur de la période P, du débit R, et du nombre NBSP (NumBer of Slices per Picture) de tranches par image. Si le débit R n'est pas constant (passage d'un débit R1 à un débit R2), on disposera donc, pour Fmin(t), de plusieurs valeurs prédéterminées correspondant respectivement aux valeurs de débit successivement rencontrées.
Dès lors, au début de chaque nouvelle image, un nombre de bits par GOP glissant NBSG (Number of Bits per
Sliding GOP) peut être évalué, selon l'expression (8) suivante
NBSG = NBRG - NBPP + PROF(T) (8) dans laquelle
- NBRG représente indifféremment NBRGC ou NBRGV (l'expression (8) est valable dans les deux cas : débit constant, ou débit variable)
- NBPP (Number of Bits Per Picture) désigne le nombre total de bits par image
- PROF(T) est, selon le type de l'image courante, l'une des trois valeurs d'allocation fixe calculées précédemment au début de chaque GOP réel et conservées pendant tout ce GOP.
Le circuit 302 d'estimation d'un nombre de bits par
GOP glissant comprend donc d'une part un circuit 303 de calcul du nombre de bits global NBRG alloué par GOP réel (ce nombre
NBRG étant égal à NBRGC ou à NBRGV selon que le débit reste constant ou qu'il vient de changer), et d'autre part un circuit 304 de calcul du nombre de bits par GOP glissant NBSG, qui reçoit les sorties des circuits 301 et 303 et délivre un signal qui est le signal de sortie de l'étage 300 d'allocation de bits pour chaque groupe d'image.
Ce signal de sortie est fourni à un étage 400 de correction d'allocation de bits pour chaque nouvelle image, prévu en série avec l'étage 300 et qui comprend lui-même tout d'abord un circuit 401 d'évaluation d'allocation d'image. Ce circuit 401 permet de déterminer une valeur NBNP (Number of
Bits for the Next Picture) du nombre de bits estimé pour le codage de la prochaine image du groupe d'image, selon l'expression (9) suivante
Figure img00220001

expression dans laquelle toutes les grandeurs ont été définies précédemment (la valeur 10000 sera, elle, justifiée plus loin).
Le circuit 401 reçoit à cet effet d'une part la sortie du circuit de sélection 207 de l'étage 200, d'autre part celle du circuit 304 de calcul du nombre de bits par GOP glissant.
La sortie de ce circuit 401 est fournie à un circuit 402 de correction d'allocation qui détermine une valeur corrigée CNNP(T) (Corrected Number of bits for the Next
Picture) du nombre de bits envisagé pour le codage de ladite prochaine image du groupe d'image, selon l'expression (10) suivante
CNNP(T) = CLIP(NBNP(T), MIN(CN), MAX(CN)) (10)
Dans cette expression, NBNP(T) est fourni par le circuit 401.
Les grandeurs MIN(CN) et MAX(CN) sont respectivement définies par les expressions (11) et (12) suivantes
MIN(CN) = Fmin(t) + R/P - Fe(PICST) + 4R/(P x NBSP) (11)
MAX(CN) = F5up (t) - F,(PICST) - (K..R)/(P x NBSP) (12) dans lesquelles
- Fe < PICST) désigne, en nombre de bits, l'état de remplissage réel de la mémoire-tampon 10 au début de l'image (c'est-à-dire au début de sa première tranche active, un certain nombre de tranches ne participant pas de façon active à l'image, mais correspondant simplement à des données relatives aux temps de retour ligne, trame, etc...)
- F5up (t) est elle-même déterminée par l'expression (13) suivante
Figure img00230001
- Km est une constante liée au nombre de tranches non actives
- les autres grandeurs ont déjà été définies.
La fonction CLIP (NBNP(T), MIN(CN), MAX(CN)) consiste alors à choisir parmi les trois valeurs possibles
NBNP(T), MIN(CN), MAX(CN) la première si NBNP(T) est compris entre les deux autres, ou la seconde si NBNP(T) lui est inférieure, ou la troisième si NBNP(T) lui est supérieure.
Le dispositif 110 de modification du pas de quantification de la figure 4 comprend enfin, en série avec l'étage 400, un étage 500 de modification du pas de quantification. Cet étage 500 comprend lui-même tout d'abord un circuit 501 d'initialisation d'état de remplissage d'une mémoire-tampon virtuelle. Cette mémoire-tampon n'existe pas physiquement dans le dispositif de codage, mais son état de remplissage est une notion concrète dont le calcul est utile pour actualiser le pas de quantification dans les circuits suivants au fur et à mesure du codage de chaque image. L'état de cette mémoire virtuelle doit être initialisé au début de chaque image de type T de telle manière que le pas de quantification initial soit adapté au nombre de bits approprié pour cette image courante. Cette initialisation revient à déterminer ledit état initial, noté ISVB (Initial State of the
Virtual Buffer). selon l'expression (14) suivante
ISVB = X(T)/(CNNP(T) x REAC) (14) dans laquelle X(T) et CNNP(T) ont déjà été définis et REAC est le paramètre de rétroaction, ici égal à 512/R, qui permet de doser plus ou moins l'importance de la rétroaction. Après cette initialisation, l'état courant CSVB (Current State of the
Virtual Buffer) de ladite mémoire, c'est-à-dire son état juste avant que ne commence le codage d'un j-ième macrobloc (j étant un entier positif), est alors donné par l'expression (15) suivante
CSVB = ISVB + PBIT -(CNNP(T)x(j-1)/NMBP) (15) dans laquelle
- ISVB, CNNP(T), j ont déjà été définis
- PBIT (Picture Bits) représente le nombre de bits déjà engendrés par le codage de l'image courante (c'est-à-dire par le codage des (j-1) macroblocs précédant le j-ième dont le codage va être effectué)
- NMBP (Number of Macrolocs per Picture) est le nombre total de macroblocs par image.
Cette détermination de CSVB est effectuée par un circuit 502 de calcul d'état de remplissage courant de ladite mémoire-tampon virtuelle, qui reçoit la sortie du circuit 501 d'initialisation d'état de remplissage, la sortie du circuit 3 de codage VLC, et la sortie du circuit 402 de correction d'allocation d'image. Ce circuit 502 est suivi d'un circuit 503 de détermination du pas de quantification du j-ième macrobloc, ce pas Q(j) étant fourni par l'expression (16) suivante
Q(j) = CSVB x REAC (16) dans laquelle REAC est le paramètre prédéterminé de rétroaction déjà rencontré dans l'expression (14). Le pas de quantification ainsi évalué conformément à l'invention est alors soit directement applicable au macrobloc courant, soit modifiable, avant cette application, par une prise en compte de l'activité locale dans l'image (c'est-à-dire par un processus de quantification adaptative, tout à fait classique et donc non décrit ici).

Claims (8)

REVENDICATIONS
1. Procédé de codage à longueur variable de signaux numériques représentatifs d'une séquence d'images organisée en blocs ou macroblocs d'image, ledit procédé comprenant au moins les étapes suivantes
(A) une étape de codage à longueur variable, après transformation cosinus discrète par bloc et quantification des blocs ou macroblocs ainsi transformés
(B) une étape de régulation du débit après codage à longueur variable, comprenant elle-même en série une sous-étape de stockage des données codées à longueur variable et une sousétape de modification du pas de quantification en fonction du débit desdites données codées ; caractérisé en ce que ladite sous-étape de modification comprend elle-même en série les étapes suivantes
(a) estimation de la complexité de l'image courante à coder, en fonction du pas de quantification et du nombre de bits consécutif audit codage à longueur variable, ladite complexité constituant une allocation de bits pour ladite image
(b) par groupe d'images dit glissant de longueur prédéterminée N, estimation, compte tenu de ladite complexité estimée et en fonction essentiellement dudit débit modifiable par un ordre de commutation de débit, de l'allocation - ou nombre de bits- nécessaire pour le codage de ce groupe incluant à chaque image courante ladite image et les (N-1) images qui suivent celle-ci
(c) correction de l'allocation de l'image courante en fonction de ladite allocation par groupe d'images glissant, du nombre N, de la période des images, du nombre de données codées stockées après ledit codage à longueur variable, du débit souhaité après régulation, et de la capacité maximale réellement disponible pour le stockage effectué après ledit codage
(d) modification du pas de quantification en fonction de l'allocation ainsi corrigée pour chaque image courante.
2. Dispositif de codage à longueur variable de signaux numériques représentatifs d'une séquence d'images organisées en blocs ou macroblocs d'image, ledit dispositif comprenant au moins
(a) une voie de codage, qui comprend elle-même en série un circuit (1) de transformation cosinus discrète par bloc, un circuit (2) de quantification par bloc ou macrobloc d'image, et un circuit (3) de codage à longueur variable des données ainsi quantifiées
(b) un sous-ensemble de régulation de débit, qui comprend lui-même en série une mémoire-tampon (10) prévue en sortie dudit circuit de codage à longueur variable et un dispositif de modification du pas de quantification du circuit de quantification en fonction de l'état de remplissage de cette mémoire ; caractérisé en ce que ledit dispositif de modification du pas de quantification comprend lui-même, en série
(a) un étage (200) de détermination d'une allocation de bits pour chaque image courante à coder, par une estimation de sa complexité considérée comme proportionnelle au pas de quantification et au nombre de bits consécutif au codage à longueur variable
(b) un étage (300) de détermination d'une allocation de bits par groupe d'images glissant de nombre d'images déterminé N, en appelant groupe glissant celui qui inclut ladite image courante à coder et les (N-1) images suivantes, ladite détermination étant effectuée par une estimation tenant compte de ladite complexité estimée et du débit souhaité en sortie de ladite mémoire-tampon, modifiable par un ordre de commutation dudit débit
(c) un étage (400) de correction d'allocation de bits pour chaque nouvelle image à coder, en fonction de ladite modification du débit en sortie de ladite mémoire-tampon du dispositif de codage
(d) un étage (500) de modification du pas de quantification en fonction de ladite allocation de bits corrigée.
3. Dispositif de codage selon la revendication 2, dans lequel les images successives sont dites de type I, P ou B respectivement, selon que leur est appliqué un mode de codage indépendant de toute autre image, ou par compensation de mouvement unidirectionnelle à partir d'une image précédente, ou par compensation de mouvement bidirectionnelle à partir d'images antérieure et postérieure, caractérisé en ce que l'étage (200) d'allocation de bits pour chaque image à coder comprend d'une part une première mémoire (201) de stockage de valeurs d'initialisation de la complexité pour la première image à coder et un premier circuit (202) de multiplication du nombre de bits consécutif au codage de l'image courante, présent sur la sortie du circuit (3) de codage à longueur variable, par la sortie d'un circuit (203) de calcul de pas de quantification moyen par image recevant lui-même la sortie du circuit (2) de quantification, et d'autre part un circuit (207) de sélection, selon le type I, P ou B de l'image courante et selon qu'elle est la première ou non de la séquence, d'une seule des quatre sorties de ladite première mémoire et dudit premier circuit de multiplication, la sortie du circuit de sélection constituant ladite complexité représentative de l'allocation de bits de l'image courante concernée.
4. Dispositif de codage selon la revendication 3, caractérisé en ce que l'étage (200) d'allocation de bits pour chaque image à coder comprend également un deuxième circuit de multiplication (204), recevant par l'intermédiaire d'une deuxième mémoire de stockage (205) le nombre de bits de codage et le pas de quantification moyen qui correspondent à l'image de même type précédant l'image courante, et en ce que le circuit de sélection (207) reçoit également la sortie dudit deuxième circuit de multiplication pour sélectionner, selon le type de l'image courante et selon qu'elle est la première ou non de la séquence, une seule des cinq sorties de ladite première mémoire et desdits premier et deuxième circuits de multiplication.
5. Dispositif de codage selon l'une des revendications 3 et 4, caractérisé en ce que l'étage (300) d'allocation de bits par groupe d'images glissant comprend d'une part un circuit (301) de calcul de profil, ou allocation fixe, pour un groupe déterminé de N images de la séquence, ce calcul étant effectué en fonction du type et de la complexité de la première image de ce groupe déterminé, et d'autre part un circuit (302) d'estimation d'un nombre de bits, ou allocation, par groupe d'images glissant, cette estimation étant effectuée en fonction de l'état de remplissage réel de la mémoire-tampon (10) au début dudit groupe déterminé, de l'état de remplissage souhaité au même moment pour ladite mémoire-tampon, et du débit en sortie de cette mémoire-tampon.
6. Dispositif de codage selon la revendication 5, caractérisé en ce que ledit circuit d'estimation (302) comprend, en série, un circuit (303) de calcul du nombre de bits alloué par groupe déterminé et un circuit (304) de calcul du nombre de bits par groupe d'images glissant.
7. Dispositif de codage selon la revendication 6, caractérisé en ce que l'étage (400) de correction d'allocation de bits pour chaque nouvelle image à coder comprend un circuit (401) d'évaluation du nombre de bits, ou allocation, envisagé pour la prochaine image dudit groupe déterminé, suivi d'un circuit (402) de correction de ladite allocation.
8. Dispositif de codage selon la revendication 7, caractérisé en ce que l'étage (500) de modification du pas de quantification comprend, en série, un circuit (501) d'initialisation d'état de remplissage d'une mémoire-tampon virtuelle, un circuit (502) de calcul de l'état de remplissage courant de ladite mémoire virtuelle, et un circuit (503) de détermination du pas de quantification de chaque bloc ou macrobloc de chaque image courante.
FR9402382A 1994-03-02 1994-03-02 Procédé et dispositif de codage à longueur variable de signaux numériques. Withdrawn FR2717029A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR9402382A FR2717029A1 (fr) 1994-03-02 1994-03-02 Procédé et dispositif de codage à longueur variable de signaux numériques.
EP95200384A EP0670663A1 (fr) 1994-03-02 1995-02-17 Procédé et dispositif de codage de signaux numériques représentatifs d'une séquence d'images
US08/392,632 US5680483A (en) 1994-03-02 1995-02-22 Method and device for coding digital signals which are representative of a sequence of pictures
JP04034895A JP3818679B2 (ja) 1994-03-02 1995-02-28 一連の画像を表わすディジタル信号を符号化する方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9402382A FR2717029A1 (fr) 1994-03-02 1994-03-02 Procédé et dispositif de codage à longueur variable de signaux numériques.

Publications (1)

Publication Number Publication Date
FR2717029A1 true FR2717029A1 (fr) 1995-09-08

Family

ID=9460580

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9402382A Withdrawn FR2717029A1 (fr) 1994-03-02 1994-03-02 Procédé et dispositif de codage à longueur variable de signaux numériques.

Country Status (1)

Country Link
FR (1) FR2717029A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0493136A2 (fr) * 1990-12-28 1992-07-01 Victor Company Of Japan, Ltd. Système pour la commande de la qualité des données de sortie codées entre-trames
EP0535960A2 (fr) * 1991-10-01 1993-04-07 Kabushiki Kaisha Toshiba Processeur de signal pour codage
EP0540961A2 (fr) * 1991-11-08 1993-05-12 International Business Machines Corporation Système de compression d'images vidéo animées avec allocation adaptive de bits et quantification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0493136A2 (fr) * 1990-12-28 1992-07-01 Victor Company Of Japan, Ltd. Système pour la commande de la qualité des données de sortie codées entre-trames
EP0535960A2 (fr) * 1991-10-01 1993-04-07 Kabushiki Kaisha Toshiba Processeur de signal pour codage
EP0540961A2 (fr) * 1991-11-08 1993-05-12 International Business Machines Corporation Système de compression d'images vidéo animées avec allocation adaptive de bits et quantification

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A. AYERBE ET AL.: "A quasi-VBR model for packet video", PROCEEDINGS OF THE SPIE : IMAGE PROCESSING ALGORITHMS AND TECHNIQUES, vol. 1244, February 1990 (1990-02-01), SANTA CLARA, pages 325 - 330 *
L.W. LEE ET AL.: "On the error distribution and scene change for the bit rate control of mpeg", IEEE TRANSACTIONS ON CONSUMER ELECTRONICS, vol. 39, no. 3, August 1993 (1993-08-01), NEW-YORK, pages 545 - 554, XP000396331 *
S.F. CHANG AND D.G. MESSERSCHMITT: "Adaptable-bit-rate video services on DQDB access networks", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMMUNICATIONS, June 1991 (1991-06-01), DENVER, pages 836 - 841, XP000269607 *

Similar Documents

Publication Publication Date Title
EP0670663A1 (fr) Procédé et dispositif de codage de signaux numériques représentatifs d&#39;une séquence d&#39;images
EP0595403B1 (fr) Dispositif de codage de signaux numériques représentatifs d&#39;images, et dispositif de décodage correspondant
EP0675652B1 (fr) Procédé et circuit d&#39;estimation de mouvement entre images à deux trames entrelacées, et dispositif de codage de signaux numériques comprenant un tel circuit
FR2764156A1 (fr) Dispositif de pretraitement pour codage mpeg ii
FR2782437A1 (fr) Procede de commutation de flux mpeg
FR2925819A1 (fr) Procede de codage double passe par macrobloc
FR2736743A1 (fr) Procede de controle de debit de sortie d&#39;un codeur de donnees numeriques representatives de sequences d&#39;images
EP0598444B1 (fr) Dispositif de traitement de signaux numériques préalablement codés par codage à longueur variable, et dispositif de traitement inverse de signaux ainsi traités
FR2702862A1 (fr) Appareil et procédé de traitement de données d&#39;image capables de traiter des données d&#39;images à vitesse élevée.
EP0689361B1 (fr) Procédé de quantification de coéfficients dans un codeur d&#39;images vidéo numérique
WO1998024062A1 (fr) Procede de codage avec information de region
EP1302078B1 (fr) Procede et dispositif de codage d&#39;un flux d&#39;images video
JP4724639B2 (ja) 撮像装置
EP0504376B1 (fr) Dispositif de codage de signaux numeriques correspondant a des images de television et dispositif de decodage correspondant
EP0587838B1 (fr) Procede de codage d&#39;images a tres bas debit et dispositif de codage mettant en oeuvre ce procede
FR2717029A1 (fr) Procédé et dispositif de codage à longueur variable de signaux numériques.
FR2944936A1 (fr) Procedes de codage et de decodage d&#39;un bloc de donnees images, dispositifs de codage et de decodage implementant lesdits procedes
EP0660619A1 (fr) Procédé de codage d&#39;images à longueur variable et dispositif de mise en oeuvre d&#39;un tel procédé
JP3425130B2 (ja) 符号化装置及び符号化方法
FR2646047A1 (fr) Procede et installation de codage et de transmission d&#39;images animees sous forme numerique a bas debit
JP3767007B2 (ja) 符号化装置および符号化方法
FR2735258A1 (fr) Dispositif de decodage d&#39;un flux de donnees
JPH08102952A (ja) 実時間画像符号化装置及び方法
JP4582710B2 (ja) 動画像符号化装置
JPH11205791A (ja) 画像符号化方法及び画像符号化装置

Legal Events

Date Code Title Description
ST Notification of lapse