<Desc/Clms Page number 1>
PROCEDE UNIVERSEL DE CODAGE DE SIGNAUX D'IMAGE Introduction
Le VIDEOCODEC UNIVERSEL décrit ci-après implémente les concepts nécessaires au codage avec réduction du débit binaire, de différents services vidéo (voir demande de brevet EP-88 870 098.6)
Les services vidéo considérés sont du type interactifs et distribués depuis l'image fixe à haute résolution, le vidéotéléphone de haute qualité, la vidéoconférence, la vidéolibrairie, la TV distribution secondaire, la TV distribution primaire, la TV contribution jusqu'à la partie basse résolution de la sous-bande TV d'une transmission HDTV compatible.
De plus, par la mise en parallèle de plusieurs VIDEOCODECs UNIVERSELs on peut coder efficacement la HDTV de contribution et/ou de distribution.
L'interface vidéo utilisée au droit de l'encodeur et du décodeur est du type CCIR 656. L'interface vidéo du terminal peut être du type PAL, SECAM, NTSC, D2-MAC ou toute autre norme composite, moyennant une conversion en composantes Y ; CR ; CB définis par le CCIR 601.
L'interface réseau utilisée dépend de l'environnement disponible ATM ; STM ; G703 ; SDH ;... Selon le réseau utilisé, l'adaptateur de canal ainsi que l'adaptateur de réseau seront déterminés à partir de l'interface de l'encodeur/décodeur proprement dits.
Le système décrit peut fonctionner en mode débit fixe ajustable (AFBR) et/ou en mode débit variable (VBR) lorsque l'on dispose d'un réseau ATM.
<Desc/Clms Page number 2>
L'universalité provient des diverses applications vidéo envisagées, à différents niveaux de qualité, avec plusieurs interfaces vidéo et plusieurs types de réseaux notamment ATM, lequel permet le mode de fonctionnement en débit variable.
2. DESCRIPTION 2. 0 Architecture et fonctionnalités (voir Figure 1 encodeur ; fiqure 2 décodeur)
L'architecture choisie est du type hybride : a transformée dans le domaine spatial et différentielle dans le domaine temporel.
Le CMI (contrôleur de mémoire d'image) permet de transformer le format entrelacé du CCIR 656 en un format TV progressif en fusionnant les 2 trames de l'image grâce à l'utilisation d'une mémoire de trame (FLM).
La transformée DCT, hors boucle, opère en intratrame ou en intra-image.
Le FXP (flexibility processor), lequel implémente la quantification linéaire adaptative, permet de réaliser la sélection des différents niveaux de qualité requis, par adaptation du pas de quantification. Ce dernier est également ajusté en fonction de la criticallité du bloc codé ainsi que de l'état de remplissage du buffer de sortie.
La mémoire (FRM) d'image de coefficients est accédée via un contrôleur spécialisé (CMB).
Le U-VLC réalise le codage entropique optimal des coefficients quantifiés et cela d'une manière universelle, c'est-à-dire totalement audo-adaptative, quel que soit le type de séquence vidéo.
L'adaptateur de canal, fonction du type de réseau utilisé comporte une partie commune que constitue le buffer d'image codée accédé au travers du BRX (Buffer regulation).
Ce dernier implémente les lois de régulation, le calcul des TF (transmission factors) ainsi que les intégrales de débit de canal.
Le PKX (packetiseur/multiplexeur) utilisé en ATM implémente la couche AAL (ATM adaptation layer) nécessaire à la vidéo ainsi qu'au son et data lorsqu'ils sont transmis
<Desc/Clms Page number 3>
dans le même canal virtuel.
Dans le cas des réseaux à débit fixe, un multiplexage plesiochrone des composantes vidéo son et données est réalisé qui permet de s'adapter au canal.
Les fonctions de transmission de ligne optique ou électrique ainsi que le traitement du header en ATM sont réalisés par l'adaptateur de réseau.
2.1 Contrôleur de mémoire d'image CMI et mémoire de trame FLM (Field Memorv)
Le CMI réalise l'interface entre un signal de télévision normalisé CCIR 656 et la fonction DCT. Il contrôle la mémoire de trame FLM. Il réalise : - le décodage du protocole CCIR 656 - la récupération de données auxiliaires jusqu'à 128 octets par trame - la conversion"LINE TO BLOCK" - le nultiplexage des blocs - la fusion d'une image complète à partir de 2 trames - la suppression optionnelle de trame - la synchronisation des autres parties du CODEC - le contrôle d'une mémoire SRAM jusqu'à 4 Mbit - les opérations en temps réel (27 MHz * 8 bits).
Les données entrent à l'interface R du CMI qui en extrait les informations video utiles, les groupe 4 par 4 et composante par composante pour les mémoriser via l'interface MF dans la mémoire FLM.
Deux modes principaux sont à considérer : a) Le mode"DCT INTRA TRAME". Dans ce mode, un algorithme réalise la conversion"LINE TO BLOCK"qui consiste à regrouper 8 lignes successives d'une même trame appelées "STRIPE"puis à découper ce"stripe"en blocs de 8 sur 8 pixels et cela de façon séparée pour les 3 composantes du signal de télévision.
Les blocs des différentes composantes sont ensuite multi- plexés dans un ordre programmable sur l'interface D. b) Le mode"DCT INTRA IMAGE". Dans ce mode, un algorithme d'adressage particulier permet de regrouper 8 lignes dont
4 appartiennent à la première trame et 4 appartiennent à
<Desc/Clms Page number 4>
la deuxième trame pour former le"STRIPE". C'est ce que l'on appelle la fusion de 2 trames. Etant donné que les trames arrivent séquentiellement, il est nécessaire de mémoriser une trame complète dans la mémoire FLM avant de commencer le regroupement.
Etant donné le flux continu des données, l'algorithme en question gère efficacement les zones mémoires, à l'aide d'une table d'index afin d'éviter la mémorisation complète d'une image. Dès que le stripe fusionné est constitué, comme dans le mode (a), on le découpe en blocs de 8 sur
8 pixels séparément pour les 3 composants du signal de télévision. Les blocs des différentes composants sont ensuite multiplexés dans un ordre programmable sur l'in- terface D.
La suppression optionnelle de trame consiste sur base d'un paramètre "5" de n'envoyer vers l'interface D que les blocs de la première trame d'un ensemble'de "5" trames successives. Cette fonctionnalité n'est valable qu'avec le mode (a).
Le CMI génère des signaux de synchronisation aux autres parties du codec notamment ; un signal indiquant qu'il s'agit de la première ou de la deuxième trame, un signal indiquant le début d'un stripe et un signal indiquant le début d'un bloc.
2.2 DCT
Le débit binaire des séquences d'image peut être considérablement réduit lorsque, d'un point de vue statistique, il existe une forte corrélation entre les éléments d'une information visuelle. Cette corrélation, encore connue sous le nom de redondance, existe entre éléments d'une même image et entre éléments d'images successives. Une catégorie de procédés de codage comprend les procédés à transformée.
Dans ces procédés, un certain nombre d'éléments adjacents de l'image sont rassemblés en une image partielle appelée bloc. Ce bloc est bi-dimensionnel et comprend des éléments pris dans une zone rectangulaire de l'image, de taille MxN.
L'étape suivant consiste à appliquer aux éléments
<Desc/Clms Page number 5>
du bloc une transformation mathématique linéaire produisant des paramètres idéalement décorrélés et appelés coefficients transformés.
Parmi les différentes transformations existant, la transformée discrète en cosinus (DCT) est l'une de celle qui possède les meilleures propriétés de décorrélation et est l'une des plus utilisées en codage d'images.
Les coefficients transformés s'expriment comme étant une somme des échantillons de l'image pondérés par des
EMI5.1
fonctions cosinus : M-1 N-1 X (k, l = E E x (m, n) cos (2n+1 7r) cos (2n+l 1 7r) cI m=0 n=0 2M 2N où cl est un facteur de normalisation.
2.3 FXP-CMB-FRM : flexibility processor, contrôleur de mémoire de boucle, mémoire de boucle 2.3. 1 Calcul du pas de quantification-Quantification adap- tative a. Le pas de quantification appliqué à chaque coefficient transformé est fonction
1) de propriétés intrinsèques de l'image
2) de la capacité du réseau b. La liaison entre ce que l'on peut envoyer sur le réseau et le calcul du pas de quantification est réalisée via le "facteur de transmission", son calcul est détaillé aux points 2.5 et 2.4. c. L'adaptation du pas de quantification aux propriétés intrinsèques de l'image se fait à occurrence coefficient : pas de quantification adapté à l'ordre du coefficient traité (référence 1) * à occurrence bloc : pas de quantification fonction de la"criticalité"du bloc. d.
Notion de criticalité
La criticalité détermine la résistance d'un bloc au bruit de quantification plus un bloc est critique, plus le bruit de quantification sera visible.
Cette notion n'est pas à confondre avec l'activité qui est l'image de l'énergie contenue dans les coefficients
<Desc/Clms Page number 6>
transformés AC.
Un bloc peut être actif sans être critique, ou l'inverse, ou les deux, ou aucun des deux.
Le but poursuivi est de réduire le bruit de quantification (par une quantification plus appropriée) pour les blocs critiques au détriment des blocs qui le sont moins d'où le nom de"quantification adaptative". La conséquence de ceci est un bruit de quantification variable dans l'image mais une qualité uniforme dans l'espace.
De plus dans un codec utilisant une DCT appliquée sur des blocs pris au sein d'une image, la quantification adapta- tive a un deuxième rôle à jouer : éviter un filtrage tempo- rel excessif. En effet, les blocs se présentant à l'entrée de la DCT résultant de la fusion de 2 trames présentent des transitions verticales dues au mouvement intervenu entre la prise des deux trames.
Des coefficients"hautes fréquences verticales"sont alors présents et devront être protégés pour éviter que leur élimination ne produise un effet de filtrage temporel. e. Calcul de la criticalité - Le calcul de la criticalité est effectué sur base des coefficients transformés. Ces 63 coefficients sont répartis en différentes zones.
Cette séparation permet de caractériser les différentes structures existant dans le domaine Pel : des structures verticales, horizontales, obliques, aléatoires ou avec de fins détails. Chacune de ces structures réagit différemment face à la quantification.
- Chacune des zones sera caractérisée par un paramètre :
EMI6.1
le maximum des coefficients AC pris en valeur absolue "as" maux - Certains tests appliqués sur ces AC max et sur des différences entre ces AC max permettent de répartir les blocs en 4 classes de criticalité.
- La criticalité d'un bloc doit être calculée 'avant toute quantification * au départ du bloc intra 'sur les blocs de luminance uniquement
<Desc/Clms Page number 7>
f. Pour chaque classe de criticalité, on se fixera - une table de coefficients de pondération - un niveau moyen de quantification. g. Le choix d'un niveau de qualité (dans le cas de codage
VBR) commande directement la détermination du facteur de transmission.
2.3. 2 Codec hybride-Modes inter/intra a. Modes inter-intra
Le FXP permet la possibilité de réaliser un codage pré- dictif : le bloc transmis est alors la différence entre le bloc actuel et une prédiction de ce bloc. Cette pré- diction n'est rien d'autre que le bloc positionné au même endroit dans l'image précédente.
Un tel procédé requiert une mémoire d'image qui mémorise l'image actuelle pour servir de prédiction à l'image suivante le FRM ; son contrôle est assuré par le CMB. Le
CMB joint au FRM a une fonction identique'à une FIFO. b. Décision inter-intra
A chaque bloc est laissée la possibilité de transmettre la version"intra"ou la version"inter"du bloc. Le choix sera effectué judicieusement dans le but de trans- mettre la version la plus économique en termes de dé- bit.
Le critère choisi estime, à la sortie de la DCT, le nombre de bits nécessaires pour la version intra et la version inter.
Cette estimation tient compte du fait que les coeffi- cients seront pondérés et que chaque coefficient ne sera pas transmis avec le même nombre de bits.
L'estimation du nombre de bits est réalisée de la manière suivante :
EMI7.1
8 8 r k+1-2 1 k+1-2 E : 2 + int log2 (rshift (block (k, l), 2 +)) + k=l 1=1 4 2 2.3. 3 DC/DPCM
Un traitement prédictif dans la direction spatiale est également appliqué en ce sens que l'on transmet la différence entre le coefficient DC du bloc et le coefficient DC
<Desc/Clms Page number 8>
du bloc précédent. Cette technique permet de tenir compte de la corrélation spatiale inter blocs.
2.3. 4 Automatic still picture
Un mode de fonctionnement spécial ASP (Automatic Still Picture) est activé automatiquement lorsque l'image à transmettre devient fixe ou faiblement animée.
Dans ce mode, la qualité globale de l'image est progressivement améliorée par un relâchement de la quantification tout en maintenant un débit de sortie restant dans la gamme autorisée par le canal.
L'étape ultime de ce processus est le mode"Freeze" où le pas de quantification est maintenu à sa plus faible valeur.
2.4 Codage entropique universel 2.4. 1 L'UVLC (Universal Variable Lenqth Coder)
Les coefficients transformés et quantifiés sont encodés par un codeur entropique.
Afin de pouvoir obtenir un schéma de codage entropique universel, c'est-à-dire indépendant du contenu de l'information d'image, un nouveau schéma de codage a été mis au point.
Ce schéma, que nous dénommerons UVLC, est appliqué sur des groupes de blocs de coefficients transformés et utilise des codes universels spécifiques aux sources binaires sans mémoire.
Dans un mode de réalisation possible, on suppose que la taille des blocs est de 8x8 et que le format d'échantillonnage est celui de l'Avis 601 du CCIR.
Un ensemble de 8 lignes de l'image donne donc lieu à 90 blocs.
Le codage entropique est appliqué à de tels groupes de blocs, plutôt qu'à chaque bloc pris séparément.
La représentation binaire des coefficients dans ce groupe de blocs est la représentation signe et magnitude et sera supposée, pour fixer les idées, ne pas dépasser 12 bits. Ce groupe de blocs peut donc être décrit comme une table tridimensionnelle de bits.
Cette table consiste en :
<Desc/Clms Page number 9>
- 64 lignes correspondant à l'ordre des coefficients ; - 12 colonnes correspondant aux niveaux des bits, depuis le
MSB (Most Significant Bit) jusqu'au LSE (Least Significant
Bit) plus le bit de signe - 12x64 lignes, obtenues en groupant les 90 bits de même niveau d'un coefficient de même ordre.
Les coefficients d'un ordre donné sont encodés par un codage en rafale (run-length coding) de leurs lignes de bits, depuis le MSB jusqu'à leur LSB (le bit de signe est placé après le LSB) : lorsqu'un bit non nul est rencontré, les autres bits, moins significatifs, du coefficient auquel correspond ce bit non nul, sont envoyés non codés et l'entièreté de ce coefficient est retiré de la table.
De cette manière, les coefficients non nuls sont encodés en donnant la position de leur bit non nul le plus significatif (MSNZB : Most Significant Non Zero Bit) et en envoyant les bits moins significatifs non codés.
Le code utilisé pour encoder les MSNZB est un code s'appliquant à des sources binaires sans mémoire n'importe quel code universel peut donc être utilisé à cette fin (ATRL : adaptive truncated run length code, codes de Lynch-Davisson, Q-Coder,...).
Généralement ces codes se composent d'un préfixe et d'un suffixe : - le préfixe donne le nombre de bits non nuls dans la ligne - le suffixe permet de positionner les MSNZB.
Afin d'augmenter l'efficacité du code ainsi obtenu, on peut grouper les coefficients par classe et envoyer, pour chaque classe, un préfixe indiquant la position la plus élevée pour les MSNZB. Cela évite de balayer des lignes de bits qui ont une probabilité très élevée d'être entièrement nulles.
L'implantation d'un tel schéma se fait en général en 2 passes : - premièrement, on localise les positions des MSNZB, on stocke les bits moins significatifs des coefficients non nuls et on compte le nombre de MSNZB par lignes ; - deuxièmement, on encode les positions des MSNZB et on les
<Desc/Clms Page number 10>
envoie sur le canal en procédant du MSB au LSB.
La première passe peut être effectuée sur les 12 lignes de bits d'un coefficient en parallèle car il n'y a, au plus, qu'un MSNZB par coefficient.
La deuxième passe se fait ligne de bit par ligne de bit du MSB au LSB.
De toute façon, un seul mot code, au plus, est généré par coefficient transformé.
2.4. 2 Universal Video Framing UVF (ou Universal multiplexer)
L'universal video framing est susceptible d'avoir une multitude de modes de fonctionnement dans plusieurs environnements : 1. adapté à plusieurs formats et qualités standard defini- tion, high definition, high quality videotelephonie, high resolution still picture 2. adapté à différents types de réseaux : STM et ATM 3. adapté à différents types de canaux : VBR et'AFBR (ajusta- ble fixed bit rate.
L'universal video framing se divise en deux parties : 1-au niveau trame 2-au niveau stripe (bande constituée de n lignes adjacen- tes)
L'universal video framing doit remplir les fonctions suivantes : 1. identification de l'UVF 2. synchronisation de l'UVF 3. identification du type de trame 4. identification du système vidéo 5. identification du format vidéo 6. identification du mode de fonctionnement 7. synchronisation du système 8. configuration du système 9. protection de l'UVF contre les erreurs de transmission
Le détail est repris ci-après : 1.
UVFF Universal Video Framing Field (160 bits) 1.1 FSW FSW Field Synchronisation Word 48 bits
<Desc/Clms Page number 11>
1.2 FCP Field Coding Parameters IBR Integral Bit rate 18 bits BO Buffer Occupancy 16 bits ST System Type 0 50 Hz 1 bit
1 60 Hz FS Field Skip 0000 0 (no skipping) 4 bits VF Video Format 0000 4-2-2 4 bits
ST and FS-"temporal resolution Vu-spatial resolution DCTF DCT Format 0 8x8 1 bit
1 16x16 . ST. and. VF. and. DCTF.-
Nb : number of blocks per stripe
Ns : number of stripes per field FS Field Status 0 even 1 bit
1 odd BF Block Format 0 block within a'field 1 bit
1 block within a frame . FS. and. BL.
-" if BL=1 odd field = 1st half-frame even field = 2 nd half-frame PO Parameters Occurrence 3 bits
Bit 1 : inter/intra 0 block
1 quadblock
Bits 2 and : 3 critic. 00 non critic
01 block
10 luminance block
11 quadblock MC Motion Compensation : 00 without motion compensation 2 bits
01 without mc (with hybrid loop)
10 with mc (pel accuracy)
11 with mc (half-pel accuracy) MVC Motion Vector Coding 0 non coded 1 bit
1 coded PI Phase Information (PAL) 12 bits (or frame number) BRMF Bit Rate Mode Flag 0 AFBR 1 bit
<Desc/Clms Page number 12>
1 VBR VBR Video Eit Rate 0000 34 Mit/sec 4 bits (16 bit rate levels (AFBR)
16 quality levels (VBR))
WM Working Mode 0 interlaced 1 bit
1 progressive CN Channels Number 4 bits informations if several channels if info splitting ARF Aspect Ratio Format 0 4/3 1 bit
1 16/9 CI Configuration Information provision (37-TBD) bits CRC Cyclic Redundancy Code TBD bits (applied to the FCP) 2. UVFS Universal Video Framing Stripe (92 à 1307 bits) 2.1 SSW SSW Stripe Synchronisation Word 48 bits 2.2 SCP Stripe Coding Parameters SN Stripe Number 8 bits BO Buffer Occupancy 16 bits IBR Integral Bit Rate 18 bits TFy Transmission Factor (luminance) 8 bits TFc Transmission Factor (chrominances) 8 bits SIS Side Info Stripe 0-1215 bits . PO. and. MC.
SIS lenght MI Mode Identification 00 intrafield block 360 bits
01 interfield
10 interframe
11 intraframe C Criticallity block 360 bits lum. block 180 bits quadblock 90 bits MV Motion Vectors MVx 6 bits 0 or 495 bits
MVy 5 bits or VLC CRC Cyclic Redundancy Code TBD bits (applied to the SCP and VLC) 2.4. 3 Masquage d'erreur au U-VLD
Le décodage des coefficients s'effectue en deux
<Desc/Clms Page number 13>
temps.
Pendant que le VLD reconstitue un stripe dans la troisième dimension, il transfère les coefficients du stripe précédent vers le FXP-1. Cette technique introduit un délai de un stripe et permet lors d'une détection d'erreur : - soit de lire de manière consécutive deux fois le stripe précédent - soit d'annuler les coefficients d'ordre plus élevé dès la détection d'une erreur ; la détection est dite alors pro- gressive.
2.5 Régulation du buffer (BRX)
Le contrôle du buffer et la régulation du débit sont mis en oeuvre à la fois pour des codecs à débit variable (VBR) et pour des codecs à débit fixe (FBR). Ils sont basés sur la modélisation des séquences d'images de TV numérique.
Cette modélisation décrit ces séquences en termes de débits d'information entropique comme une succession d'échelons, de pentes et d'impulsions de débit. Ces échelons sont de niveaux et de durées aléatoires ; ils correspondent aux occurrences de changement des séquences (cut off) ainsi qu'à la complexité intrinsèque de chacune des séquences.
A ce processus, se superpose un phénomène aléatoire cyclostationnaire correspondant à la variabilité interne de chaque image, sa période égale la durée d'une trame ou celle d'une image.
La régulation du codec est adaptée à cette modélisation : le buffer lisse les fluctuations intra-trames et/ou intra-images (lissage à court terme) ; la régulation est dimensionnée pour réagir aux changements de séquence et à leur différence de complexité selon des constantes de temps programmables via les paramètres (long terme).
De plus, les réponses aux impulsions, aux échelons et aux rampes sont calculées pour éviter toute oscillation de la réponse (amortissement critique ou sous-critique) de manière à éviter des fluctuations visibles de la qualité d'image et à réaliser une qualité localement quasi-uniforme.
En mode FBR, le buffer est rempli en permanence par l'excèdent de débit issu du VLC sur le débit fixe envoyé au
<Desc/Clms Page number 14>
canal de transmission ; il accumule continuellement cet excèdent. Une boucle de régulation fait rétroagir l'état du buffer sur le pas de quantification (FXP) et régule l'occupation du buffer à un niveau fixe de référence (la consigne).
A la fin du codage de chaque bande de huit lignes d'image ou de trame (appelé"stripe"), la boucle prélève la valeur du niveau de remplissage du buffer par l'interface M.
Ces niveaux de remplissage sont comparés à la consigne, la différence est traitée par un processeur PID qui réalise à la fois une mise à échelle (produit), une sommation cumulative (Intégrale) et une différenciation numérique (Dérivée). La somme de ces trois opérations est remise à échelle et fournit un facteur de commande de qualité (TF) qui sera appliqué au quantificateur (FXP) pour le calcul du pas de quantification lors du codage du"stripe" suivant.
Ce facteur, appelé facteur de transmission, est transmis au décodeur avec l'occurrence"stripe".
Les formules conduisant au calcul de TF sont les suivantes :
I (n) = I (n-1) + BF (n)-BFref (sommateur du PID)
D (n) = EF (n)-BF (n-l) (différenciateur du PID)
EMI14.1
TF (n) = TFI + CxI (n-1) + d x D (n-l) + bi (BF (n-l)-BFi)
EMI14.2
k=i-l avec TFi = TFo + E bk (BFk+1 - BFk) k+0
EMI14.3
n = instant d'échantillonnage (fin du"stripe") I (n) = valeur du sommateur BF (n) = niveau d'occupation du buffer BFref = consigne de régulation du buffer D (n) = valeur du différenciateur numérique TF (n) = facteur de transmission c, d, b.
= paramètres du PID TFo = facteur de transmission à buffer vide BFk = limite des différentes zones du buffer i = indice de la zone du buffer
<Desc/Clms Page number 15>
TFj = décalage du facteur de transmission au niveau de BFi
La division du buffer en différentes zones de remplissage comportant des coefficients de pentes bi différents permet de créer des comportements de repli pour prévenir les éventuels dépassements de la capacité maximale du buffer et les manques de débit à fournir au canal de transmission.
Un remplissage automatique appelé"Stuffing"vient compenser tout débit déficitaire en cas de buffer vide. Le régulateur PID est calculé de manière à éviter tout dépassement de la capacité maximale du buffer étant donné les confi- gurations initiales les plus défavorables.
Deux facteurs de transmission, l'un luminance, l'autre en chrominance, peuvent éventuellement être calculés séparément par le PID suivant des jeux de paramètres programmables et différents.
En mode VBR, le buffer est alimenté par le débit en sortie du VLC excédentaire par rapport au profil de débit négocié à l'initialisation de la transmission entre le codec et le canal de transmission.
La régulation du niveau de remplissage du buffer est normalement déconnectée sauf, en cas de repli, lorsque le niveau de remplissage dépasse un seuil programmable auquel cas, elle est rétablie pour assurer un retour du niveau de remplissage à sa consigne. Cette régulation fonctionne de manière analogue à celle décrite pour le mode FBR ; elle est déconnectée lorsque le débit en sortie du VLC décroît et permet une baisse du niveau d'occupation du buffer.
Le mode de fonctionnement FBR apparaît alors comme un cas particulier du mode VBR où le profil de débit est constant. Les valeurs limites de l'intégrateur, du dérivateur, des différentes zones du buffer et des décalages (TFi) correspondants du facteur de transmission sont également programmables.
Des intégrales de débit sont calculées par le BRX et sont transmises à l'occurrence stripe au système de resynchronisation du décodeur. La synchronisation image ou trame, est détectée du côté encodeur (BRX) et sert de référence à
<Desc/Clms Page number 16>
la transmission de l'intégrale de débit par le multiplex de transmission. Au décodeur, les opérations inverses sont réalisées à l'entrée du BRX, la synchronisation est détectée et l'intégrale de débit de l'encodeur est extraite. Une intégrale de débit est calculée de manière analogue au niveau du décodeur.
Ces deux intégrales permettent d'une part de réinitialiser l'intégrale du décodeur et d'autre part le
EMI16.1
calcul de la condition de resynchronisation
EMI16.2
BOE + BOD = t2 R (t) dt = I t2 (t) dt-tl R (t) dt Jtl J 0 0
EMI16.3
BOD = niveau de remplissage du buffer au décodeur BOE = niveau de remplissage du buffer à l'encodeur tl R (t) dt = intégrale de débit à l'encodeur Jo jazz (t) dt = intégrale de débit au décodeur J o Masquaqe d'erreur au BRX'
Le BRX décodeur assure le transfert d'erreur de l'interface B vers l'interface C.
Chaque donnée transférée au BRX est accompagnée d'un signal de validation ; ce signal est restitué au décodeur lorsque la dite donnée est lue par le UVLD.
La détection de début d'erreur commande la mémorisation du pointeur d'adresse d'écriture au niveau d'une pile FIFO (First IN, First OUT) ; l'adresse de fin d'erreur est stockée par le même principe.
Lorsque le pointeur de lecture atteint la première adresse d'écriture, le signal d'erreur est restitué en sortie et la pile est décalée de une unité.
2.6 Packetiseur/Multiplexeur et dépacketiseur/démultiplexeur (PKX)
Le PKX a pour fonction principale d'assembler des cellules se composant d'une entête de 5 octets et d'un champ d'information de 48 octets. Ce champ d'information peut être constitué de différents types de données (son, donnée, vidéo par exemple).
Le PKX réalise la couche d'adaptation ATM (AAL) en
<Desc/Clms Page number 17>
particulier les fonctions AAL SAR-PDU et AAL CS-PDU.
Les données vidéo entrent par l'interface B, sont accumulées dans une mémoire tampon afin de pouvoir remplir une cellule. Sur base d'un signal d'autorisation, la cellule est envoyée sur l'interface I. Les données sont accompagnées d'indications telles que : le type de données, leur nombre, le numéro de la cellule et des codes de protection contre les erreurs binaires ou les pertes de cellules.
Les fonctions de la couche de segmentation et de réassemblage (SAR) sont : A. Le champ d'entête
Le champ d'entête occupe le premier octet du champ d'information de la cellule ATM. Il contient deux sous- - champs : 1) Numéro de séquence SN 4 bits
Le numéro de séquence permet de détecter des ruptures de séquence de cellule (perte ou insertion). Un numéro de séquence sur 4 bits permet de détecter jusqu'à 15 pertes de cellules consécutives. La valeur 15 peut indiquer une cellule de redondance.
2) Le type de cellule CT 4 bits
Ce type de cellule est utilisé pour indiquer : - un"Continuation of Message"-COM- (CT) - un"End of Message"-EOM- (CT1) - un"Begin of Message"-BOM- (CT2) - un"Single Segment Message"-SSM- (CT3) -un"RTSW only cell" (CT4) - un"EMPTY cell" (CT5)
EMI17.1
- un"Redundancy cell indicator 1"-RCI1- (CT7) - un"Redundancy cell indicator 2"-RCI2- (CT8) - active component (CT11) - active component + RTSW (CT15) - CT6 ; CT9 ; CT10 ; CT12 ; CT13 ; CT14 restent à définir.
B. Le champ de fin
Le champ de fin occupe les deux derniers octets du champ d'information de la cellule ATM. Il contient deux sous-champs : 1) L'indicateur de longueur 6 bits
<Desc/Clms Page number 18>
L'indicateur de longueur permet de remplir partiellement les cellules (SAR-SDU). Il indique le nombre d'octets placés à partir de l'entête.
2) Le code de correction (FEC) 10 bits
Un mécanisme de protection contre les erreurs binaires permet de corriger les erreurs simple et double corrélées.
Il est basé sur un code BCH (511,502) en combinaison avec un bit de pariété. Le polynôme générateur est (r + : 0 +1).
Ce code cyclique a une distance de hamming égale à 4. Le code est adapté pour corriger les erreurs simple et double corrélées. Il peut aussi détecter certaines erreurs d'ordre supérieur. La position du code BCH et du bit de parité est choisi judicieusement pour éviter des ambiguïtés.
Les fonctions de la couche de convergence (CS) sont : A) la synchronisation service vidéo de bout en bout
Un mécanisme de génération de mot de synchronisation en temps réel (RTSW) émet à intervalle régulier une cellule particulière vers le décodeur, indépendamment de la struc- ture de codage.
Il permet la synchronisation de l'horloge du décodeur sur l'horloge de l'encodeur en éliminant la gigue introduite par les différents éléments de la transmission. Une cel- lule particulière est utilisée pour transmettre ce RTSW.
Elle contient 2 octets contenant un code d'identification (SID), un numéro de séquence (SSN) et une indication de dégiguage locale (DJT).
Au décodeur, à l'aide d'un algorithme particulier basé sur des marques de temps, on régénère ces informations de synchronisation.
B) Protection cellule
Un mécanisme de protection cellule contre les pertes de cellule ou les erreurs multiples dans une cellule, utilise une cellule de parité et le compteur de séquence cellule précité. La cellule de parité calculée sur le champ SAR--
SDU et les sous-champs type de cellule et indicateur de longueur est générée dès que n*16-1 cellules (n entier positif) sont envoyées vers l'interface I.
<Desc/Clms Page number 19>
Au décodeur sur base du compteur de séquence, de la cellule de parité et du code de correction bit (FEC), on réalise la détection et/ou la correction des informations binaires erronées, la détection et/ou la correction et/ou la récupération de cellules perdues.
2.7 NAC : Contrôle d'accès au réseau ATM
Cette fonction est utilisée dans le cas d'une connexion du VIDEOCODEC UNIVERSEL à un réseau ATM.
Elle a pour objet la conformation et la limitation du profil de débit utilisé avec les paramètres négociés lors de l'établissement de la liaison.
Il s'agit en pratique d'une fonction de police préventive correspondant à la fonction de police exercée par le réseau au point d'accès.
Différents algorithmes peuvent être envisagés pour réaliser cette fonction : Leaky buket, Gaussian gabarit, peak cell rate, peak rate mean rate,...
En considérant les caractéristiques de la source ainsi que les contraintes du réseau, l'algorithme idéal peut être choisi et ses paramètres déterminés.
La caractérisation de la source, ainsi que les contraintes du réseau, ne sont pas bien connues à ce jour ; dès lors, cette fonction reste à préciser.
Néanmoins, son mode d'action est déterminé et consiste à limiter les requêtes d'accès à l'interface"I", en n'autorisant pas le PKX (packetiseur) à accéder au BUF (Buffer), lequel à son tour par le mécanisme du BRX (Buffer regulation) réagira si nécessaire au travers du FXP (flexibility processor) sur la quantification de la source afin d'en contrôler le débit.
2.8 TCM Module de communication ATM
Cette fonction est utilisée dans le cas d'une connexion du VIDEOCODEC UNIVERSEL à un réseau ATM.
Elle a pour objet l'implémentation des couches physiques et ATM, respectivement les fonctions de terminaison de ligne et de traitement de l'entête (HEADER) des cellules ATM.
La signalisation réseau/terminal se réalise grâce
<Desc/Clms Page number 20>
à ce module, situé dans l'adaptateur de réseau.
2.9 ASD : dépiquage de la synchronisation en ATM
Cette fonction est utilisée dans le cas d'une connexion du VIDEOCODEC UNIVERSEL à un réseau ATM, au droit du décodeur.
Elle a pour objet l'implémentation de l'algorithme de PLL (boucle à verrouillage de phase) adaptative dont la fonction est de traiter les RTSW (real-time synchronisation words) provenant du dépacketiseur/démultiplexeur) (PKX) afin de reconstituer une horloge locale à 27 MHz accrochée sur l'horloge de source également à 27 MHz, cela en assurant une stabilité de l'horloge locale conforme aux recommandations du CCIR 656 nonobstant la gigue de cellule introduite par le réseau ATM.
La PLL adaptative doit de plus s'accrocher et atteindre ses performances le plus rapidement possible.
2.10 Aspect systèmes et de mise en oeuvre du codée 1) Les fonctions CMI, DCT, FXP, CMB, U-VLC/U-VLD, BRX et PKX sont réalisées sous forme de circuits électroniques à très haute densité d'intégration.
2) Réversibilité des fonctions
Chacune des fonctions citées ci-dessus est réversible.
C'est-à-dire qu'elles peuvent réaliser la fonction corres- pondante en mode encodeur ou en mode décodeur. Elles réalisent aussi des opérations qui selon le mode sont soit utiles à l'encodeur soit utiles au décodeur, dans ce cas l'opération en question est désactivée dans le mode in- verse.
3) Base de temps répartie
Chacune des fonctions précitées excepté la DCT possède des dispositifs de séquencement des données dans le temps permettant ainsi à chaque fonction de fournir à ses opéra- teurs les signaux temporels adéquats dérivés de l'horloge commune à 27 MHz.
Ces dispositifs sont programmables. Des signaux sont transmis entre ces différents dispositifs de séquencement afin d'assurer la synchronisation d'une fonction par rapport à la précédente.
<Desc/Clms Page number 21>
EMI21.1
4) Bus et procédures de conficruration et de contrôle flexible pour le codec (X3C) Chaque fonction possède une interface série X3C destinée à la configuration et au contrôle du codec. Cette inter- face possède deux lignes bidirectionnelles : une ligne pour le signal d'horloge et une ligne pour le signal de don- nées.
L'échange des données entre deux modules est basée sur un protocole permettant la transmission d'informations rela- tives au codec. Ces informations sont soit des informa- tions binaires élémentaires (1 bit) soit un groupe de n valeurs binaires (registre) soit un ensemble de registres (tables).
Le protocole se compose, des commandes accompagnées d'adresse et/ou de données de différentes longueurs. Le protocole est orienté vers un dialogue entre : un proces- seur de configuration et chaque fonction äu codec. Une transmission entre deux fonctions contrôlée par le proces- seur permet d'accélérer les échanges.
Les commandes mettant en oeuvre un seul bit sont composées d'un seul octet contenant l'adresse et la donnée. Plu- sieurs commandes de ce type peuvent se succéder.
Les commandes mettant en oeuvre un registre sont composées de 2 octets : le premier contient l'adresse, le second la donnée. Les échanges suivants permettent d'accéder aux registres voisins (incrémentation automatique de l'adresse).
Les commandes mettant en oeuvre une table sont composées d'au moins 3 octets, le premier contient le numéro de la table, le second la position d'accès par rapport au début de la table, le troisième la première donnée relative à la position d'accès. Les échanges suivants permettent d'accéder aux registres voisins de la table (incrémenta- tion automatique de l'adresse).
Ce protocole flexible permet de configurer les paramètres du codec le rendant ainsi universel.
5) Réversibilité du codec
Les fonctions et l'architecture sont choisies pour assurer
<Desc/Clms Page number 22>
le fonctionnement du codec soit en mode encodeur soit en mode décodeur. De plus, il ne nécessite qu'une seule chaîne de codage (ou de décodage) pour les 3 composantes du signal de télévision Y, CR, CB fonctionnant à 27 MHz.
6) Stratéqies de masquage
Etant donné que la transmission des informations codées peut introduire des erreurs des dispositifs peuvent inter- venir à différents niveaux pour supprimer ou masquer les effets dus à ces erreurs.
La couche AAL entre autre possède des dispositifs capables de corriger les erreurs de transmission dans certaines limites. Lorsque leurs possibilités sont dépassées, les données envoyées vers les fonctions suivantes peuvent être entachées d'erreurs.
Les dispositifs précédents peuvent ou non détecter ces erreurs. Si le détection n'a pas eu lieu, elle peut encore se faire grâce aux mécanismes de protection et/ou de détection de l'U-MUX.
Dans tous les cas où la détection a eu lieu, à un endroit donne du codec, sans possibilité de correction, des ac- tions de masquages peuvent être prises, il s'agit des techniques suivantes : - masquage par affichage du stripe précédent de la même image dans le U-VLC ou le CMI - masquage progressif par annulation des coefficients d'ordre plus élevé à celui de l'erreur dans le U-VLC - masquage par affichage du stripe de l'image précédente dans le FXP - masquage par affichage d'un niveau programmable fixe dans le FXP - masquage par affichage du stripe précédent de la même trame dans le U-VLC ou le CMI
<Desc / Clms Page number 1>
UNIVERSAL METHOD FOR CODING IMAGE SIGNALS Introduction
The UNIVERSAL VIDEOCODEC described below implements the concepts necessary for coding with reduction of the bit rate of different video services (see patent application EP-88 870 098.6)
The video services considered are of the interactive type and distributed from the high-resolution still image, the high-quality video telephone, videoconferencing, video library, secondary distribution TV, primary distribution TV, contribution TV to the lower part resolution of the TV subband of a compatible HDTV transmission.
In addition, by putting several UNIVERSAL VIDEOCODECs in parallel, it is possible to efficiently code the contribution and / or distribution HDTV.
The video interface used in front of the encoder and decoder is of the CCIR 656 type. The video interface of the terminal can be of the PAL, SECAM, NTSC, D2-MAC or any other composite standard, subject to conversion into components Y; CR; CB defined by CCIR 601.
The network interface used depends on the ATM environment available; STM; G703; SDH; ... Depending on the network used, the channel adapter as well as the network adapter will be determined from the interface of the encoder / decoder proper.
The system described can operate in adjustable fixed rate mode (AFBR) and / or in variable rate mode (VBR) when an ATM network is available.
<Desc / Clms Page number 2>
The universality comes from the various video applications envisaged, at different quality levels, with several video interfaces and several types of networks, notably ATM, which allows the operating mode in variable bit rate.
2. DESCRIPTION 2. 0 Architecture and functionalities (see Figure 1 encoder; figure 2 decoder)
The architecture chosen is of the hybrid type: transformed in the spatial domain and differential in the temporal domain.
The CMI (image memory controller) transforms the interlaced format of the CCIR 656 into a progressive TV format by merging the 2 frames of the image through the use of a frame memory (FLM).
The DCT transform, outside the loop, operates in intra-frame or intra-image.
The FXP (flexibility processor), which implements adaptive linear quantization, makes it possible to carry out the selection of the different quality levels required, by adapting the quantization step. The latter is also adjusted according to the criticality of the coded block as well as the filling state of the output buffer.
The coefficient image memory (FRM) is accessed via a dedicated controller (CMB).
The U-VLC achieves the optimal entropy coding of the quantized coefficients in a universal, that is to say totally audio-adaptive, whatever the type of video sequence.
The channel adapter, which depends on the type of network used, has a common part which constitutes the coded image buffer accessed through BRX (Buffer regulation).
The latter implements the regulatory laws, the calculation of TF (transmission factors) as well as the channel flow integrals.
The PKX (packetizer / multiplexer) used in ATM implements the AAL layer (ATM adaptation layer) necessary for video as well as sound and data when they are transmitted.
<Desc / Clms Page number 3>
in the same virtual channel.
In the case of fixed bit rate networks, plesiochronous multiplexing of the sound and data video components is carried out which makes it possible to adapt to the channel.
The optical or electrical line transmission functions as well as the processing of the header in ATM are performed by the network adapter.
2.1 CMI image memory controller and FLM (Field Memorv) frame memory
The CMI provides the interface between a standardized CCIR 656 television signal and the DCT function. It controls the FLM frame memory. It performs: - decoding of the CCIR 656 protocol - recovery of auxiliary data up to 128 bytes per frame - "LINE TO BLOCK" conversion - nultiplexing of blocks - merging of a complete image from 2 frames - optional frame deletion - synchronization of the other parts of the CODEC - control of a SRAM memory up to 4 Mbit - real-time operations (27 MHz * 8 bits).
The data enter the CMI interface R which extracts useful video information from it, groups them 4 by 4 and component by component to store them via the MF interface in the FLM memory.
Two main modes are to be considered: a) The "DCT INTRA TRAME" mode. In this mode, an algorithm performs the "LINE TO BLOCK" conversion which consists of grouping 8 successive lines of the same frame called "STRIPE" then cutting this "stripe" into blocks of 8 by 8 pixels and this separately for the 3 components of the television signal.
The blocks of the different components are then multiplexed in a programmable order on the interface D. b) "DCT INTRA IMAGE" mode. In this mode, a particular addressing algorithm makes it possible to group together 8 lines including
4 belong to the first frame and 4 belong to
<Desc / Clms Page number 4>
the second frame to form the "STRIPE". This is called the merging of 2 frames. Since the frames arrive sequentially, it is necessary to store a complete frame in the FLM memory before starting the grouping.
Given the continuous flow of data, the algorithm in question efficiently manages the memory areas, using an index table to avoid the complete storage of an image. As soon as the merged stripe is formed, as in mode (a), it is cut into blocks of 8 on
8 pixels separately for the 3 components of the television signal. The blocks of the various components are then multiplexed in a programmable order on the interface D.
The optional frame deletion consists on the basis of a parameter "5" of sending to the interface D only the blocks of the first frame of a set of "5" successive frames. This functionality is only valid with mode (a).
The CMI generates synchronization signals to the other parts of the codec in particular; a signal indicating that it is the first or second frame, a signal indicating the start of a stripe and a signal indicating the start of a block.
2.2 DCT
The bit rate of the image sequences can be considerably reduced when, from a statistical point of view, there is a strong correlation between the elements of visual information. This correlation, also known as redundancy, exists between elements of the same image and between elements of successive images. One category of coding methods includes transform methods.
In these methods, a number of adjacent elements of the image are combined into a partial image called a block. This block is two-dimensional and includes elements taken from a rectangular area of the image, of size MxN.
The next step is to apply to the elements
<Desc / Clms Page number 5>
of the block a linear mathematical transformation producing ideally decorrelated parameters and called transformed coefficients.
Among the various existing transformations, the discrete cosine transform (DCT) is one of the ones that has the best decorrelation properties and is one of the most used in image coding.
The transformed coefficients are expressed as a sum of the samples of the image weighted by
EMI5.1
cosine functions: M-1 N-1 X (k, l = EE x (m, n) cos (2n + 1 7r) cos (2n + l 1 7r) cI m = 0 n = 0 2M 2N where cl is a normalization factor.
2.3 FXP-CMB-FRM: flexibility processor, loop memory controller, loop memory 2.3. 1 Calculation of the quantification step - Adaptive quantification a. The quantification step applied to each transformed coefficient is a function
1) intrinsic properties of the image
2) network capacity b. The link between what can be sent over the network and the calculation of the quantization step is carried out via the "transmission factor", its calculation is detailed in points 2.5 and 2.4. vs. The adaptation of the quantization step to the intrinsic properties of the image is done at coefficient occurrence: no quantification adapted to the order of the coefficient processed (reference 1) * at block occurrence: no quantification depending on the "criticality" of the block. d.
Criticality concept
The criticality determines the resistance of a block to quantization noise the more critical a block is, the more visible the quantization noise will be.
This notion is not to be confused with the activity which is the image of the energy contained in the coefficients
<Desc / Clms Page number 6>
transformed AC.
A block can be active without being critical, or vice versa, or both, or neither.
The aim is to reduce the quantization noise (by more appropriate quantification) for the critical blocks to the detriment of the less so blocks, hence the name "adaptive quantization". The consequence of this is a variable quantization noise in the image but a uniform quality in space.
In addition, in a codec using a DCT applied to blocks taken within an image, adaptive quantization has a second role to play: avoiding excessive temporal filtering. Indeed, the blocks appearing at the entry of the DCT resulting from the fusion of 2 frames have vertical transitions due to the movement occurred between the taking of the two frames.
"High vertical frequencies" coefficients are then present and must be protected to prevent their elimination from producing a temporal filtering effect. e. Calculation of criticality - The calculation of criticality is carried out on the basis of the transformed coefficients. These 63 coefficients are divided into different areas.
This separation makes it possible to characterize the different structures existing in the Pel domain: vertical, horizontal, oblique, random structures or with fine details. Each of these structures reacts differently to quantification.
- Each of the zones will be characterized by a parameter:
EMI6.1
the maximum of the AC coefficients taken in absolute value "as" ills - Certain tests applied to these max ACs and to the differences between these max ACs make it possible to distribute the blocks in 4 classes of criticality.
- The criticality of a block must be calculated 'before any quantification * from the intra block' on the luminance blocks only
<Desc / Clms Page number 7>
f. For each class of criticality, we will set - a table of weighting coefficients - an average level of quantification. g. The choice of a quality level (in the case of coding
VBR) directly controls the determination of the transmission factor.
2.3. 2 Hybrid codec - Inter / intra modes a. Inter-intra modes
The FXP allows the possibility of performing a predictive coding: the transmitted block is then the difference between the current block and a prediction of this block. This prediction is nothing other than the block positioned in the same place in the previous image.
Such a method requires an image memory which stores the current image to serve as a prediction for the image following the FRM; its control is ensured by the CMB. The
CMB attached to the FRM has a function identical to a FIFO. b. Inter-intra decision
Each block is left with the possibility of transmitting the "intra" or "inter" version of the block. The choice will be made judiciously with the aim of transmitting the most economical version in terms of throughput.
The chosen criterion estimates, at the output of the DCT, the number of bits necessary for the intra version and the inter version.
This estimation takes into account the fact that the coefficients will be weighted and that each coefficient will not be transmitted with the same number of bits.
The estimation of the number of bits is carried out as follows:
EMI7.1
8 8 r k + 1-2 1 k + 1-2 E: 2 + int log2 (rshift (block (k, l), 2 +)) + k = l 1 = 1 4 2 2.3. 3 DC / DPCM
Predictive processing in the spatial direction is also applied in the sense that the difference between the DC coefficient of the block and the DC coefficient is transmitted
<Desc / Clms Page number 8>
from the previous block. This technique makes it possible to take into account the spatial correlation between blocks.
2.3. 4 Automatic still picture
A special operating mode ASP (Automatic Still Picture) is activated automatically when the image to be transmitted becomes fixed or weakly animated.
In this mode, the overall quality of the image is progressively improved by loosening the quantization while maintaining an output rate remaining in the range authorized by the channel.
The final step in this process is the "Freeze" mode where the quantization step is kept at its lowest value.
2.4 Universal entropy coding 2.4. 1 UVLC (Universal Variable Lenqth Coder)
The transformed and quantized coefficients are encoded by an entropy coder.
In order to be able to obtain a universal entropy coding scheme, that is to say independent of the content of the image information, a new coding scheme has been developed.
This scheme, which we will call UVLC, is applied to groups of blocks of transformed coefficients and uses universal codes specific to binary sources without memory.
In one possible embodiment, it is assumed that the size of the blocks is 8 × 8 and that the sampling format is that of CCIR Recommendation 601.
A set of 8 lines of the image therefore gives rise to 90 blocks.
Entropy coding is applied to such groups of blocks, rather than to each block taken separately.
The binary representation of the coefficients in this group of blocks is the sign and magnitude representation and will be assumed, to fix ideas, not to exceed 12 bits. This group of blocks can therefore be described as a three-dimensional bit table.
This table consists of:
<Desc / Clms Page number 9>
- 64 lines corresponding to the order of the coefficients; - 12 columns corresponding to the bit levels, from the
MSB (Most Significant Bit) up to LSE (Least Significant
Bit) plus the sign bit - 12x64 lines, obtained by grouping the 90 bits of the same level with a coefficient of the same order.
The coefficients of a given order are encoded by a run-length coding of their bit lines, from the MSB to their LSB (the sign bit is placed after the LSB): when a bit non-zero is encountered, the other less significant bits of the coefficient to which this non-zero bit corresponds are sent uncoded and the whole of this coefficient is removed from the table.
In this way, the non-zero coefficients are encoded by giving the position of their most significant non-zero bit (MSNZB: Most Significant Non Zero Bit) and by sending the less significant non-encoded bits.
The code used to encode MSNZB is a code applying to binary sources without memory any universal code can therefore be used for this purpose (ATRL: adaptive truncated run length code, Lynch-Davisson codes, Q-Coder , ...).
Generally these codes consist of a prefix and a suffix: - the prefix gives the number of non-zero bits in the line - the suffix allows positioning the MSNZBs.
In order to increase the efficiency of the code thus obtained, we can group the coefficients by class and send, for each class, a prefix indicating the highest position for the MSNZB. This avoids scanning bit lines which have a very high probability of being entirely zero.
The implementation of such a scheme is generally done in 2 passes: - first, we locate the positions of the MSNZB, we store the less significant bits of the non-zero coefficients and we count the number of MSNZB per line; - second, we encode the MSNZB positions and we
<Desc / Clms Page number 10>
sends over the channel from MSB to LSB.
The first pass can be performed on the 12 bit lines of a coefficient in parallel because there is, at most, only one MSNZB per coefficient.
The second pass is done bit by bit line from MSB to LSB.
In any case, at most one code word is generated per transformed coefficient.
2.4. 2 Universal Video Framing UVF (or Universal multiplexer)
Universal video framing is likely to have a multitude of operating modes in several environments: 1. suitable for several formats and standard qualities definition, high definition, high quality videotelephony, high resolution still picture 2. suitable for different types of networks: STM and ATM 3. suitable for different types of channels: VBR and'AFBR (adjustable fixed bit rate.
The universal video framing is divided into two parts: 1-at the frame level 2-at the stripe level (strip made up of n adjacent lines)
The universal video framing must fulfill the following functions: 1. identification of the UVF 2. synchronization of the UVF 3. identification of the frame type 4. identification of the video system 5. identification of the video format 6. identification of the operation 7. system synchronization 8. system configuration 9. UVF protection against transmission errors
The details are given below: 1.
UVFF Universal Video Framing Field (160 bit) 1.1 FSW FSW Field Word synchronization 48 bit
<Desc / Clms Page number 11>
1.2 FCP Field Coding Parameters IBR Integral Bit rate 18 bits BO Buffer Occupancy 16 bits ST System Type 0 50 Hz 1 bit
1 60 Hz FS Field Skip 0000 0 (no skipping) 4 bit VF Video Format 0000 4-2-2 4 bit
ST and FS- "temporal resolution Vu-spatial resolution DCTF DCT Format 0 8x8 1 bit
1 16x16. ST. and. VF. and. DCTF.-
Nb: number of blocks per stripe
Ns: number of stripes per field FS Field Status 0 even 1 bit
1 odd BF Block Format 0 block within a'field 1 bit
1 block within a frame. FS. and. BL.
- "if BL = 1 odd field = 1st half-frame even field = 2 nd half-frame PO Parameters Occurrence 3 bits
Bit 1: inter / intra 0 block
1 quadblock
Bits 2 and: 3 critic. 00 no critic
01 block
10 luminance block
11 quadblock MC Motion Compensation: 00 without motion compensation 2 bits
01 without mc (with hybrid loop)
10 with mc (pel accuracy)
11 with mc (half-pel accuracy) MVC Motion Vector Coding 0 non coded 1 bit
1 coded PI Phase Information (PAL) 12 bit (or frame number) BRMF Bit Rate Mode Flag 0 AFBR 1 bit
<Desc / Clms Page number 12>
1 VBR VBR Video Eit Rate 0000 34 Mit / sec 4 bits (16 bit rate levels (AFBR)
16 quality levels (VBR))
WM Working Mode 0 interlaced 1 bit
1 progressive CN Channels Number 4 bits information if several channels if info splitting ARF Aspect Ratio Format 0 4/3 1 bit
1 16/9 CI Configuration Information provision (37-TBD) bits CRC Cyclic Redundancy Code TBD bits (applied to the FCP) 2. UVFS Universal Video Framing Stripe (92 to 1307 bits) 2.1 SSW SSW Stripe Word synchronization 48 bits 2.2 SCP Stripe Coding Parameters SN Stripe Number 8 bit BO Buffer Occupancy 16 bit IBR Integral Bit Rate 18 bit TFy Transmission Factor (luminance) 8 bit TFc Transmission Factor (chrominance) 8 bit SIS Side Info Stripe 0-1215 bits. PO. and. MC.
SIS lenght MI Mode Identification 00 intrafield block 360 bits
01 interfield
10 interframe
11 intraframe C Criticallity block 360 bit lum. block 180 bits quadblock 90 bits MV Motion Vectors MVx 6 bits 0 or 495 bits
MVy 5 bits or VLC CRC Cyclic Redundancy Code TBD bits (applied to the SCP and VLC) 2.4. 3 Error masking at U-VLD
The decoding of the coefficients is carried out in two
<Desc / Clms Page number 13>
time.
While the VLD reconstructs a stripe in the third dimension, it transfers the coefficients from the previous stripe to the FXP-1. This technique introduces a delay of a stripe and allows upon error detection: - either to read consecutively twice the previous stripe - or to cancel the higher order coefficients as soon as an error is detected ; detection is then said to be progressive.
2.5 Buffer regulation (BRX)
Buffer control and bitrate control are implemented for both variable rate (VBR) codecs and fixed rate (FBR) codecs. They are based on the modeling of digital TV image sequences.
This modeling describes these sequences in terms of entropy information rates as a succession of steps, slopes and flow pulses. These steps are of random levels and durations; they correspond to the occurrences of change of the sequences (cut off) as well as to the intrinsic complexity of each of the sequences.
On top of this process, a cyclostationary random phenomenon is superimposed corresponding to the internal variability of each image, its period equaling the duration of a frame or that of an image.
Codec regulation is adapted to this modeling: the buffer smoothes intra-frame and / or intra-image fluctuations (short-term smoothing); the regulation is sized to react to sequence changes and their difference in complexity according to time constants programmable via the parameters (long term).
In addition, the responses to the pulses, steps and ramps are calculated to avoid any oscillation of the response (critical or subcritical damping) so as to avoid visible fluctuations in image quality and to achieve almost local quality. -uniform.
In FBR mode, the buffer is permanently filled with the excess bit rate from the VLC on the fixed bit rate sent to
<Desc / Clms Page number 14>
transmission channel; it continually accumulates this excess. A regulation loop makes the buffer state back on the quantization step (FXP) and regulates the occupation of the buffer at a fixed reference level (the setpoint).
At the end of the coding of each strip of eight image or frame lines (called "stripe"), the loop takes the value of the level of filling of the buffer by the interface M.
These filling levels are compared to the setpoint, the difference is processed by a PID processor which performs both scaling (product), cumulative summation (Integral) and numerical differentiation (Derivative). The sum of these three operations is scaled and provides a quality control factor (TF) which will be applied to the quantizer (FXP) for the calculation of the quantization step during the coding of the next "stripe".
This factor, called the transmission factor, is transmitted to the decoder with the occurrence "stripe".
The formulas leading to the calculation of TF are as follows:
I (n) = I (n-1) + BF (n) -BFref (PID summator)
D (n) = EF (n) -BF (n-l) (PID differentiator)
EMI14.1
TF (n) = TFI + CxI (n-1) + d x D (n-l) + bi (BF (n-l) -BFi)
EMI14.2
k = i-l with TFi = TFo + E bk (BFk + 1 - BFk) k + 0
EMI14.3
n = sampling instant (end of the stripe) I (n) = value of the BF summator (n) = level of buffer occupation BFref = buffer regulation setpoint D (n) = value of the digital differentiator TF ( n) = transmission factor c, d, b.
= parameters of the PID TFo = transmission factor with empty buffer BFk = limit of the different zones of the buffer i = index of the zone of the buffer
<Desc / Clms Page number 15>
TFj = shift of the transmission factor at BFi level
The division of the buffer into different filling zones with different bi-slope coefficients makes it possible to create fallback behaviors to prevent possible overshoots of the maximum capacity of the buffer and the lack of throughput to be supplied to the transmission channel.
An automatic filling called "Stuffing" compensates for any deficit flow in the event of an empty buffer. The PID regulator is calculated so as to avoid any overshooting of the maximum buffer capacity given the most unfavorable initial configurations.
Two transmission factors, one luminance, the other chrominance, can possibly be calculated separately by the PID according to different and programmable sets of parameters.
In VBR mode, the buffer is supplied by the output speed of the VLC in excess of the speed profile negotiated at the initialization of the transmission between the codec and the transmission channel.
The regulation of the filling level of the buffer is normally disconnected except, in the event of a fallback, when the filling level exceeds a programmable threshold in which case, it is restored to ensure a return of the filling level to its setpoint. This regulation works in a similar way to that described for the FBR mode; it is disconnected when the output rate of the VLC decreases and allows a decrease in the level of occupation of the buffer.
The FBR operating mode then appears as a special case of the VBR mode where the flow profile is constant. The limit values of the integrator, the differentiator, the different buffer zones and the corresponding shifts (TFi) of the transmission factor are also programmable.
Flow integrals are calculated by the BRX and are transmitted on the occurrence stripe to the resynchronization system of the decoder. Frame or image synchronization is detected on the encoder side (BRX) and serves as a reference for
<Desc / Clms Page number 16>
the transmission of the integral bit rate by the transmission multiplex. At the decoder, the reverse operations are carried out at the BRX input, synchronization is detected and the flow rate integral of the encoder is extracted. A flow integral is calculated analogously at the decoder.
These two integrals allow on the one hand to reset the integral of the decoder and on the other hand the
EMI16.1
calculation of the resynchronization condition
EMI16.2
BOE + BOD = t2 R (t) dt = I t2 (t) dt-tl R (t) dt Jtl J 0 0
EMI16.3
BOD = filling level of the buffer at the decoder BOE = filling level of the buffer at the encoder tl R (t) dt = flow integral at the encoder Jo jazz (t) dt = flow integral at the decoder J o Masquaqe d 'BRX error'
The BRX decoder transfers error from interface B to interface C.
Each data transferred to the BRX is accompanied by a validation signal; this signal is restored to the decoder when said data is read by the UVLD.
Error start detection controls the storage of the write address pointer in a FIFO stack (First IN, First OUT); the end of error address is stored by the same principle.
When the read pointer reaches the first write address, the error signal is output and the stack is shifted by one.
2.6 Packetizer / Multiplexer and depacketizer / demultiplexer (PKX)
The main function of the PKX is to assemble cells consisting of a header of 5 bytes and an information field of 48 bytes. This information field can be made up of different types of data (sound, data, video for example).
The PKX performs the ATM adaptation layer (AAL) by
<Desc / Clms Page number 17>
especially the AAL SAR-PDU and AAL CS-PDU functions.
Video data enters via interface B, is accumulated in a buffer memory in order to be able to fill a cell. On the basis of an authorization signal, the cell is sent to the interface I. The data is accompanied by indications such as: the type of data, their number, the cell number and protection codes against bit errors or cell loss.
The functions of the segmentation and reassembly layer (SAR) are: A. The header field
The header field occupies the first byte of the information field of the ATM cell. It contains two sub-fields: 1) 4-bit SN sequence number
The sequence number is used to detect breaks in the cell sequence (loss or insertion). A 4-bit sequence number can detect up to 15 consecutive cell losses. The value 15 can indicate a redundancy cell.
2) The type of 4-bit CT cell
This type of cell is used to indicate: - a "Continuation of Message" -COM- (CT) - an "End of Message" -EOM- (CT1) - a "Begin of Message" -BOM- (CT2) - a "Single Segment Message" -SSM- (CT3) -a "RTSW only cell" (CT4) - an "EMPTY cell" (CT5)
EMI17.1
- a "Redundancy cell indicator 1" -RCI1- (CT7) - a "Redundancy cell indicator 2" -RCI2- (CT8) - active component (CT11) - active component + RTSW (CT15) - CT6; CT9; CT10; CT12; CT13; CT14 remain to be defined.
B. The end field
The end field occupies the last two bytes of the ATM cell information field. It contains two sub-fields: 1) The 6-bit length indicator
<Desc / Clms Page number 18>
The length indicator partially fills the cells (SAR-SDU). It indicates the number of bytes placed from the header.
2) 10 bit correction code (FEC)
A binary error protection mechanism makes it possible to correct single and double correlated errors.
It is based on a BCH code (511.502) in combination with a bet bit. The generator polynomial is (r +: 0 +1).
This cyclic code has a hamming distance equal to 4. The code is suitable for correcting single and double correlated errors. It can also detect certain higher order errors. The position of the BCH code and the parity bit is carefully chosen to avoid ambiguities.
The functions of the convergence layer (CS) are: A) end-to-end video service synchronization
A real-time synchronization word generation (RTSW) mechanism transmits a particular cell to the decoder at regular intervals, independently of the coding structure.
It allows synchronization of the decoder clock on the encoder clock by eliminating the jitter introduced by the different elements of the transmission. A special cell is used to transmit this RTSW.
It contains 2 bytes containing an identification code (SID), a sequence number (SSN) and a local de-icing indication (DJT).
At the decoder, using a particular algorithm based on time marks, this synchronization information is regenerated.
B) Cell protection
A cell protection mechanism against cell loss or multiple errors in a cell, uses a parity cell and the aforementioned cell sequence counter. The parity cell calculated on the SAR field--
SDU and the cell type and length indicator subfields are generated as soon as n * 16-1 cells (n positive integer) are sent to interface I.
<Desc / Clms Page number 19>
At the decoder on the basis of the sequence counter, the parity cell and the bit correction code (FEC), detection and / or correction of erroneous binary information is carried out, detection and / or correction and / or recovery lost cells.
2.7 NAC: ATM network access control
This function is used when the VIDEOCODEC UNIVERSEL is connected to an ATM network.
Its purpose is the conformation and limitation of the speed profile used with the parameters negotiated during the establishment of the link.
In practice, this is a preventive police function corresponding to the police function exercised by the network at the access point.
Different algorithms can be considered to perform this function: Leaky buket, Gaussian gabarit, peak cell rate, peak rate mean rate, ...
By considering the characteristics of the source as well as the constraints of the network, the ideal algorithm can be chosen and its parameters determined.
The characterization of the source, as well as the constraints of the network, are not well known to date; therefore, this function remains to be specified.
However, its mode of action is determined and consists of limiting requests for access to the "I" interface, by not authorizing the PKX (packetizer) to access the BUF (Buffer), which in turn by the BRX (Buffer regulation) mechanism will react if necessary through the FXP (flexibility processor) on the quantification of the source in order to control the flow.
2.8 TCM ATM communication module
This function is used when the VIDEOCODEC UNIVERSEL is connected to an ATM network.
Its purpose is the implementation of the physical and ATM layers, respectively the line termination and header processing functions (HEADER) of ATM cells.
Network / terminal signaling is achieved through
<Desc / Clms Page number 20>
to this module, located in the network adapter.
2.9 ASD: breakdown of synchronization in ATM
This function is used when the VIDEOCODEC UNIVERSEL is connected to an ATM network, in line with the decoder.
Its purpose is the implementation of the adaptive PLL (phase-locked loop) algorithm, the function of which is to process RTSW (real-time synchronization words) from the depacketizer / demultiplexer (PKX) in order to reconstruct a clock. local 27 MHz hooked on the source clock also at 27 MHz, this ensuring stability of the local clock in accordance with CCIR 656 recommendations notwithstanding the cell jitter introduced by the ATM network.
Adaptive PLL must also hang on and achieve its performance as quickly as possible.
2.10 System aspect and codec implementation 1) The CMI, DCT, FXP, CMB, U-VLC / U-VLD, BRX and PKX functions are implemented in the form of electronic circuits with very high integration density.
2) Reversibility of functions
Each of the functions mentioned above is reversible.
That is to say, they can perform the corresponding function in encoder mode or in decoder mode. They also carry out operations which, depending on the mode, are either useful to the encoder or useful to the decoder, in which case the operation in question is deactivated in the reverse mode.
3) Distributed time base
Each of the aforementioned functions except the DCT has devices for sequencing data over time, thus enabling each function to provide its operators with the appropriate time signals derived from the common clock at 27 MHz.
These devices are programmable. Signals are transmitted between these different sequencing devices in order to ensure the synchronization of a function with respect to the previous one.
<Desc / Clms Page number 21>
EMI21.1
4) Bus and conficruration and flexible control procedures for the codec (X3C) Each function has an X3C serial interface for configuring and controlling the codec. This interface has two bidirectional lines: a line for the clock signal and a line for the data signal.
The exchange of data between two modules is based on a protocol allowing the transmission of information relating to the codec. This information is either elementary binary information (1 bit) or a group of n binary values (register) or a set of registers (tables).
The protocol consists of commands accompanied by addresses and / or data of different lengths. The protocol is oriented towards a dialogue between: a configuration processor and each codec function. A transmission between two functions controlled by the processor makes it possible to speed up exchanges.
The commands implementing a single bit are composed of a single byte containing the address and the data. Several commands of this type can follow one another.
The commands implementing a register are made up of 2 bytes: the first contains the address, the second the data. The following exchanges allow access to neighboring registers (automatic incrementation of the address).
The commands implementing a table are composed of at least 3 bytes, the first contains the number of the table, the second the access position relative to the start of the table, the third the first data relating to the position d 'access. The following exchanges allow access to the registers neighboring the table (automatic incrementation of the address).
This flexible protocol makes it possible to configure the codec parameters making it universal.
5) Reversibility of the codec
The functions and architecture are chosen to ensure
<Desc / Clms Page number 22>
codec operation either in encoder mode or in decoder mode. In addition, it only requires a single coding (or decoding) chain for the 3 components of the television signal Y, CR, CB operating at 27 MHz.
6) Masking strategies
Since the transmission of coded information can introduce errors, devices can intervene at different levels to suppress or mask the effects due to these errors.
The AAL layer among others has devices capable of correcting transmission errors within certain limits. When their possibilities are exceeded, the data sent to the following functions may be subject to errors.
The foregoing devices may or may not detect these errors. If the detection has not taken place, it can still be done using the protection and / or detection mechanisms of the U-MUX.
In all cases where the detection has taken place, at a given location of the codec, without the possibility of correction, masking actions can be taken, these are the following techniques: - masking by displaying the previous stripe of the same image in U-VLC or CMI - progressive masking by canceling higher order coefficients than that of error in U-VLC - masking by displaying the stripe of the previous image in FXP - masking by display of a fixed programmable level in the FXP - masking by display of the previous stripe of the same frame in the U-VLC or the CMI