FR2932050A1 - Procede et dispositif de transmission de donnees video - Google Patents

Procede et dispositif de transmission de donnees video Download PDF

Info

Publication number
FR2932050A1
FR2932050A1 FR0853670A FR0853670A FR2932050A1 FR 2932050 A1 FR2932050 A1 FR 2932050A1 FR 0853670 A FR0853670 A FR 0853670A FR 0853670 A FR0853670 A FR 0853670A FR 2932050 A1 FR2932050 A1 FR 2932050A1
Authority
FR
France
Prior art keywords
macroblocks
macroblock
coding
groups
additional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0853670A
Other languages
English (en)
Other versions
FR2932050B1 (fr
Inventor
Xavier Henocq
Leannec Fabrice Le
Patrice Onno
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to FR0853670A priority Critical patent/FR2932050B1/fr
Priority to US12/477,008 priority patent/US8605785B2/en
Publication of FR2932050A1 publication Critical patent/FR2932050A1/fr
Application granted granted Critical
Publication of FR2932050B1 publication Critical patent/FR2932050B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/67Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving unequal error protection [UEP], i.e. providing protection according to the importance of the data
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/164Feedback from the receiver or from the transmission channel
    • H04N19/166Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
    • 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/187Methods 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 scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Pour transmettre une séquence d'images vidéo sur un réseau entre un serveur et un client, cette séquence étant codée suivant un mode de codage prédictif hybride et comportant une pluralité d'images, chaque image étant décomposée en une pluralité de macroblocs de pixels : on classe (E212) la pluralité de macroblocs dans au moins deux groupes de macroblocs suivant un critère prédéterminé ; on complète (E216, E226) ces groupes de macroblocs par des macroblocs additionnels ; on crée (E214, E224) au moins deux niveaux de codage hiérarchique à partir de ces groupes de macroblocs ; on applique (E218) une protection inégale contre les erreurs de transmission aux groupes de macroblocs suivant le critère prédéterminé ; et on transmet (E220) sur le réseau les niveaux de codage hiérarchique.

Description

La présente invention se rapporte à un procédé et à un dispositif de transmission de données vidéo. Elle appartient au domaine général de la transmission vidéo par paquets sur un réseau entre un serveur et un client.
Le protocole de transport utilisé dans un tel réseau peut par exemple être le protocole de transport en temps réel RTP (en anglais "Real-cime Transport Protocof'), bien connu de l'homme du métier. On considère un réseau non fiable, c'est-à-dire qui ne garantit ni la stabilité des conditions de transmission, ni la transmission fiable des paquets. 10 Autrement dit, des pertes de paquets peuvent se produire. La présente invention cherche à protéger les données contre les erreurs, y compris les pertes de paquets. Elle se place dans le cadre non limitatif où les données sont des données vidéo conformes à la norme H.264/AVC ou à la norme SVC (codage vidéo hiérarchique, en anglais 15 "Scalable Vidéo Coding"). Néanmoins, l'adaptation de l'invention à d'autres normes de codage vidéo telles que MPEG-4 part 2, H.263 ainsi qu'à d'autres normes de codage vidéo hiérarchique ne présente pas de difficultés. On rappelle ci-dessous quelques notions de base concernant les normes H.264 et SVC. 20 La norme SVC constitue une extension de la norme H.264 au sens où elle introduit des propriétés de codage hiérarchique ou scalabilité (en anglais "scalability"). La norme H.264 constitue l'état de l'art en termes de compression vidéo. Elle permet d'augmenter considérablement l'efficacité de la compression 25 par comparaison avec MPEG-2, MPEG-4 part 2 et H.263. En termes de technologie, la norme H.264 est fondée sur un schéma classique de codage prédictif hybride utilisant une combinaison de transformation spatiale et de compensation/estimation de mouvement, ce schéma général étant optimisé pour obtenir une meilleure efficacité de compression. 30 Plusieurs modes de codage sont disponibles pour le codage d'un macrobloc de pixels (désigné dans toute la suite par MB), dont : - INTRA ou I : le codage INTRA est un codage spatial. Le MB est indépendant de toute autre information provenant d'autres images. - INTER ou P : les MBs INTER sont le résultat d'une prédiction temporelle à partir d'une image codée précédemment. Ce type de MBs est codé sous la forme d'un vecteur de mouvement et de données résiduelles. - Bidirectionnel ou Bidir ou B : les MBs B utilisent le même principe que les MBs P dans la mesure où ils résultent également d'une prédiction temporelle. Cependant, pour les MBs B, deux régions de référence sont extraites respectivement d'une image précédente et d'une image suivante, qui sont utilisées pour la prédiction. Ce type de MBs est donc codé sous la forme de deux vecteurs de mouvement et de données résiduelles. - P_SKIP : pour les MBs P_SKIP, aucune autre donnée n'est codée dans le flux binaire que le type de MBs. Le vecteur de mouvement final d'un MB P SKIP est déduit des MBs codés environnants. - B_SKIP, B_direct_16x16 et B_direct_8x8 : aucune information de mouvement n'est transmise avec de tels MBs. Les informations sont déduites des MBs déjà codés environnants ou du vecteur de mouvement du MB situé à la même position dans l'image de référence suivante. En outre, aucune donnée résiduelle n'est codée avec les MBs B SKIP.
Pendant le processus de codage, un mécanisme de sélection de mode de MB est mis en oeuvre. Lorsque le mode INTRA est sélectionné pour un MB, la prédiction INTRA consiste à prédire ce MB dans le domaine des pixels en utilisant les pixels situés à la frontière extérieure de ce MB. Une DCT est ensuite appliquée à la différence entre la prédiction et l'original et cette différence est codée. Un tel codage prédictif est également appliqué sur le vecteur de mouvement. En effet, un vecteur de mouvement dans un MB prédit temporellement est codé de façon prédictive en utilisant des vecteurs de mouvement de MBs dans le voisinage. En conséquence, la valeur absolue d'un vecteur de mouvement n'est pas codée mais remplacée par MvdlO et Mvdll qui représentent la différence entre une composante de vecteur à utiliser et sa prédiction.
Chaque MB est associé à un paramètre appelé Coded block pattern spécifiant lesquels des 6 blocs 8x8 (luminance et chrominance) peuvent contenir des niveaux de coefficients de transformation non nuls. La norme SVC a ajouté à H.264 des possibilités d'adaptation sous la forme de propriétés de codage hiérarchique ou scalabilité. Trois axes de scalabilité ont été définis dans SVC : spatiale, temporelle et en qualité. La scalabilité temporelle permet de modifier la résolution temporelle d'une séquence en supprimant certaines images, la suppression tenant compte des dépendances entre images.
La scalabilité spatiale consiste à insérer plusieurs résolutions dans un flux vidéo, la résolution la plus basse étant utilisée pour la prédiction des résolutions plus élevées. Une particularité de SVC est d'autoriser n'importe quel rapport de résolutions entre deux résolutions spatiales successives alors que seul un rapport de 2 était autorisé par les codecs hiérarchiques antérieurs.
La scalabilité en qualité, également connue sous le nom de scalabilité SNR, prend la forme d'une scalabilité grossière ou CGS (en anglais "Coarse Grain Scalability"), d'une scalabilité moyenne ou MGS (en anglais "Medium Grain Scalability") et d'une scalabilité fine ou FGS (en anglais "Fine Grain Scalability').
Le codage SNR CGS est obtenu en utilisant les mêmes concepts que ceux de la scalabilité spatiale. La seule différence est que pour la scalabilité CGS, les opérations de suréchantillonnage de la prédiction inter-couches sont omises. La scalabilité FGS aboutit à un flux binaire qui peut être tronqué en n'importe quel point, sans empêcher le processus de décodage. Cette caractéristique est particulièrement intéressante pour adapter le débit binaire de la vidéo de façon précise. La scalabilité MGS a été définie comme intermédiaire entre CGS et FGS. Elle offre des points de décodage plus fins dans le flux binaire que CGS, mais ne permet pas une troncature en n'importe quel point comme FGS. De nombreux experts du codage et des réseaux estiment que MGS offre une granularité suffisante pour des conditions réseau réalistes.
La scalabilité est fondée sur une prédiction inter-couches (en anglais "Inter-Layer Prediction" ou ILP). Plusieurs modes de codage ont été spécialement conçus pour la prédiction inter-couches dans SVC : - IntraBL ou I_BL : ce mode permet de prédire un MB dans une couche d'amélioration en fonction du MB situé à la même position dans la couche inférieure. Le MB de la couche inférieure est interpolé afin de l'ajuster (en anglais "re-scale") à la résolution de la couche d'amélioration. La différence entre le MB à coder et le MB interpolé situé à la même position est ensuite codée. - Prédiction des vecteurs de mouvement : dans ce mode, on considère que le MB de la couche d'amélioration a un mouvement proche de celui du MB de la couche inférieure. Dans ce cas, tout au plus une faible variation du vecteur de mouvement du MB de la couche inférieure est-elle codée dans la couche d'amélioration. - Prédiction résiduelle : dans ce mode, on considère qu'un MB dans une couche d'amélioration qui a un mouvement proche du MB situé à la même position dans la couche inférieure a également des données résiduelles similaires. En conséquence, on code la différence entre données résiduelles. Les MBs d'une couche d'amélioration utilisant des données d'une couche inférieure pour leur codage sont identifiés par un identifiant appelé base mode flag. S'il a la valeur 1, cet identifiant indique que le mode de prédiction de MB ainsi que les données de mouvement correspondantes sont déduites de la couche de base. Un second identifiant appelé residuai prediction flag indique que les données résiduelles du MB considéré sont prédites en utilisant les données de la couche inférieure. II est à noter qu'avec H.264 et SVC, la transmission d'une vidéo sur un réseau est facilitée, avec la notion de NAL (en anglais "Network Abstraction Layer"). Une NAL est une sorte de conteneur qui fournit dans son en-tête une brève description des données transportées sur le réseau.
De nombreuses recherches ont été menées sur le contrôle d'erreurs dans le domaine de la transmission vidéo sur des réseaux non fiables.
Une solution, appelée rafraîchissement INTRA (en anglais "INTRA refresh"), consiste à coder les MBs importants en mode INTRA. Etant donné que les MBs INTRA ne sont pas sujets à la propagation d'erreurs, cela permet d'améliorer la qualité de la vidéo dans des conditions difficiles.
Cependant, l'inconvénient principal de cette solution est lié au coût de codage du MB INTRA. En effet, le gain en robustesse implique une augmentation du débit vidéo. En outre, cette solution n'est pas vraiment adaptée aux vidéos précodées. Une autre solution consiste à limiter le nombre d'images de référence. Par exemple, dans un groupe d'images ou GOP (en anglais "Group Of Pictures"), seule une image est utilisée comme référence pour la prédiction temporelle pour toutes les autres images dans le GOP. On prévoit alors une meilleure protection pour cette image que pour les autres. Néanmoins, sachant qu'une seule image est utilisée comme référence dans un GOP pour la prédiction temporelle, les performances de compression du codeur diminuent, car il bénéficie moins des corrélations temporelles. Le partitionnement des données est une autre notion permettant une meilleure protection des données importantes. Un exemple d'utilisation du partitionnement de données est proposé dans le document de brevet US-A-7 010 037. Dans ce document, un codeur hiérarchique ou un transcodeur utilise un partitionnement des données pour engendrer deux couches hiérarchiques à partir d'une vidéo d'origine brute ou précodée. II utilise la fonctionnalité classique de partitionnement des données telle que définie dans MPEG-4 part 2, qui consiste à séparer en deux flux binaires les vecteurs de mouvement, les coefficients DCT basse fréquence (DC) et les coefficients AC les plus importants parmi d'autres coefficients AC. L'idée est d'optimiser le partitionnement des coefficients pour chaque bloc sans augmenter le surcoût dû au codage du point de partitionnement. Le procédé décrit dans le document US-A-7 010 037 présente divers inconvénients. En particulier, il nécessite l'utilisation d'un décodeur non standard, car des informations additionnelles sont nécessaires au décodeur pour identifier la façon dont les coefficients ont été partitionnés. En outre, comme le partitionnement est fonction de la bande passante disponible, un nouveau partitionnernent doit être défini si les conditions réseau changent.
La présente invention a pour but de remédier aux inconvénients de l'art antérieur, en proposant une protection inégale contre les erreurs ou UEP (en anglais "Unequal Error Protection"), selon l'importance des données, et ne nécessitant pas de modifier le décodeur. Dans ce but, la présente invention propose un procédé de transmission d'une séquence d'images vidéo sur un réseau entre un serveur et un client, la séquence étant codée suivant un mode de codage prédictif hybride et comportant une pluralité d'images, chaque image étant décomposée en une pluralité de macroblocs de pixels, le procédé étant remarquable en ce que : - on classe la pluralité de macroblocs dans au moins deux groupes de macroblocs suivant un critère prédéterminé ; - on complète ces groupes de macroblocs par des macroblocs additionnels ; - on crée au moins deux niveaux de codage hiérarchique à partir de ces groupes de macroblocs ; - on applique une protection inégale contre les erreurs de transmission aux groupes de macroblocs suivant le critère prédéterminé ; et - on transmet sur le réseau les niveaux de codage hiérarchique. Ainsi, l'invention permet d'appliquer une protection inégale contre les erreurs aux macroblocs en fonction par exemple de leur importance. En séparant les données considérées comme importantes des données considérées comme peu importantes dans deux trains binaires, on peut plus facilement cibler la protection. En outre, le transcodage est très simple lorsque les deux niveaux de scalabilité sont des couches CGS.
Par ailleurs, le procédé est adaptatif, car la classification d'un MB comme "important" ou "moins important" peut être ajustée en fonction de la qualité que le serveur souhaite proposer au client ou en fonction de contraintes de débit. En outre, le flux vidéo reste décodable par n'importe quel décodeur standard conforme à la norme utilisée pour le codage, par exemple SVC.
Au surplus, il n'est pas nécessaire de modifier les données vidéo si les conditions réseau changent : en effet, le flux vidéo peut être modifié "offline" et le niveau de correction des erreurs peut être ajusté en fonction des conditions réseau rencontrées au moment de la transmission. Dans un mode particulier de réalisation, le critère prédéterminé définit l'importance d'un macrobloc en fonction d'une estimation de la qualité obtenue par le client dans le cas où ce macrobloc est perdu en cours de transmission. Cela permet de mieux prendre en compte la qualité perçue par le client.
Selon une caractéristique particulière, l'estimation de la qualité utilise une simulation de masquage d'erreur du macrobloc perdu. On prend ainsi en compte les capacités de masquage d'erreur des clients. De cette façon, un MB perdu, mais pouvant être efficacement récupéré par masquage sera considéré comme peu important.
Selon une caractéristique particulière, l'estimation de la qualité comporte la détermination de la somme des valeurs absolues des différences entre la version d'origine et la version masquée du macrobloc perdu et l'étape de classement comporte la comparaison de cette somme à une valeur limite prédéterminée, au-delà de laquelle le macrobloc est considéré comme important. Selon une caractéristique particulière, les macroblocs additionnels sont des macroblocs situés à la même position que des macroblocs considérés comme importants, dans un autre des au moins deux niveaux de codage hiérarchique créés à partir des groupes de macroblocs précités.
Les MBs additionnels permettent de conserver un flux vidéo compatible avec la norme SVC.
Selon une caractéristique particulière, l'étape d'application d'une protection contre les erreurs consiste à appliquer un codage de Reed-Solomon au moins aux macroblocs considérés comme importants. Selon une caractéristique particulière, le procédé comporte en outre des étapes suivant lesquelles on code les macroblocs additionnels différemment selon le type de codage des macroblocs des groupes de macroblocs précités. Selon une caractéristique particulière, le procédé comporte en outre des étapes suivant lesquelles, si le type de codage d'un macrobloc des groupes de macroblocs précités est INTRA : - on vérifie si la dérivation du vecteur de mouvement du macrobloc INTRA à partir des macroblocs codés environnants produit un vecteur nul ; - si c'est le cas, on code un macrobloc additionnel avec un codage de type P_SKIP ; - sinon, on code un macrobloc additionnel avec un codage de type INTRA et on ajoute un paramètre indiquant l'absence de coefficient non nul. Selon une caractéristique particulière, si le type de codage d'un macrobloc des groupes de macroblocs précités n'est pas INTRA : - on vérifie si la dérivation du vecteur de mouvement du macrobloc 20 non INTRA à partir des macroblocs codés environnants produit une différence de vecteurs de mouvement nulle ; - si c'est le cas, on code un macrobloc additionnel avec un codage de type P_SKIP ou B_SKIP ; - sinon, on code un macrobloc additionnel avec un codage de type P 25 ou B et on ajoute un paramètre indiquant l'absence de coefficient non nul. Selon une caractéristique particulière, le codage hiérarchique est conforme à la norme SVC ("Scalable Video Coding"). Cela permet d'obtenir un train binaire normalisé, ce qui garantit l'interopérabilité entre différents équipements provenant de différents fabricants. 30 Dans le même but que celui indiqué plus haut, la présente invention propose également un dispositif de transmission d'une séquence d'images vidéo sur un réseau entre un serveur et un client, la séquence étant codée suivant un mode de codage prédictif hybride et comportant une pluralité d'images, chaque image étant décomposée en une pluralité de macroblocs de pixels, le dispositif étant remarquable en ce qu'il comporte : - un module pour classer la pluralité de macroblocs dans au moins deux groupes de macroblocs suivant un critère prédéterminé ; - un module pour compléter ces groupes de macroblocs par des macroblocs additionnels ; - un module pour créer au moins deux niveaux de codage hiérarchique à partir de ces groupes de macroblocs ; - un module pour appliquer une protection inégale contre les erreurs de transmission aux groupes de macroblocs suivant le critère prédéterminé ; et - un module pour transmettre sur le réseau les niveaux de codage hiérarchique. Toujours dans le même but, la présente invention vise aussi un système de télécommunications comprenant une pluralité de dispositifs terminaux reliés à travers un réseau de télécommunications, remarquable en ce qu'il comprend au moins un dispositif terminal équipé d'un dispositif de transmission tel que succinctement décrit ci-dessus. Toujours dans le même but, la présente invention vise aussi un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, remarquable en ce qu'il permet la mise en oeuvre d'un procédé de transmission tel que succinctement décrit ci-dessus. Toujours dans le même but, la présente invention vise aussi un produit programme d'ordinateur pouvant être chargé dans un appareil programmable, remarquable en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé de transmission tel que succinctement décrit ci-dessus, lorsque ce programme est chargé et exécuté par l'appareil programmable.
Les caractéristiques particulières et les avantages du dispositif de transmission, du système de télécommunications, du moyen de stockage d'informations et du produit programme d'ordinateur étant similaires à ceux du procédé de transmission, ils ne sont pas répétés ici. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit de modes particuliers de réalisation, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels : - la figure 1 représente de façon schématique un système de transmission vidéo susceptible de mettre en oeuvre la présente invention, dans un mode particulier de réalisation ; - la figure 2 est un organigramme illustrant les principales étapes d'un procédé de transmission conforme à la présente invention du côté du serveur, dans un mode particulier de réalisation ; - la figure 3 est un organigramme illustrant le processus de codage mis en oeuvre du côté du serveur dans le cadre d'un procédé de transmission conforme à la présente invention, dans un mode particulier de réalisation ; - la figure 4 est un organigramme illustrant les principales étapes d'un procédé de transmission conforme à la présente invention du côté du client, dans un mode particulier de réalisation ; - la figure 5 illustre un exemple de GOP contenant des MBs importants, dispersés au sein dudit GOP ; - la figure 6 illustre, pour le GOP de la figure 5, la génération de deux couches CGS, dont une reçoit les MBs importants et l'autre, les MBs moins importants ; et - la figure 7 illustre, pour le GOP de la figure 5, l'application de la correction d'erreurs uniquement à l'une des deux couches CGS engendrées. La solution proposée par la présente invention est fondée sur une classification des macroblocs (MBs) en fonction d'un critère d'importance des données qu'ils contiennent. Une fois cette classification effectuée, le flux binaire correspondant à un MB important est utilisé pour construire une première couche CGS SVC. Les MBs moins importants sont utilisés pour créer une seconde couche CGS.
La correction d'erreurs est alors appliquée uniquement à la première couche CGS, ce qui produit l'effet UEP, c'est-à-dire de protection inégale contre les erreurs. De façon générale, une protection contre les erreurs plus forte est appliquée à la première couche, qui contient les macroblocs les plus importants selon le critère d'importance. Il est à noter que les deux couches CGS pourraient en fait être décodées mais le décodage de la couche de base ne fournira pas une vidéo avec une qualité acceptable, car elle contient seulement une partie des MBs. Le critère d'importance est défini ici comme la capacité d'un MB à être récupéré avec une qualité acceptable par masquage d'erreur du côté du client s'il a été perdu pendant la transmission du serveur au client. Le concept général de l'invention est illustré par les figures 5, 6 et 7. La figure 5 illustre un groupe d'images ou GOP extrait d'un flux binaire H.264 ou d'un flux correspondant à une couche spatiale SVC. Dans ce GOP, les MBs correspondant à des MBs importants sont représentés avec une texture. Sur la figure 6, on voit que deux couches CGS sont engendrées. Une première couche CGS (ici une couche CGS d'amélioration) reçoit les MBs les plus importants. Une seconde couche CGS (ici une couche CGS de base) reçoit les MBs moins importants. Les MBs manquants dans chaque couche sont remplacés par des MBs dits "sautés" (en anglais "skipped"), un tel MB sauté ne correspondant pas exactement à la définition d'un MB sauté dans la norme. Même s'ils sont standard, une majorité des informations qu'ils contiennent est déduite d'autres MBs.
Comme le montre la figure 7, un codeur FEC (correction d'erreur dans les images, en anglais "Frame Error Correction") est appliqué au flux binaire correspondant à la première couche CGS uniquement. Comme représenté sur la figure 1, un système de transmission apte à mettre en oeuvre la présente invention est constitué d'un serveur 10 et d'un client 12 qui communiquent à travers un réseau de communication. Le système illustré sur la figure 1 peut comporter tout ou partie des moyens de mise en oeuvre d'un procédé de transmission conforme à la présente invention.
Le serveur 10 comporte une unité de stockage 102 mémorisant une vidéo codée ainsi que les programmes nécessaires à la mise en oeuvre de l'invention. Le serveur peut également comporter un lecteur de moyens de stockage temporaire tel qu'un lecteur de disquettes pour coopérer avec une disquette. Le serveur 10 comporte en outre une unité de calcul 100 capable d'exécuter des programmes et une unité réseau 104 capable de transmettre les données vidéo sur le réseau. En variante, les méthodes de traitement du signal numérique peuvent être stockées dans différents emplacements de stockage. De façon générale, un moyen de stockage d'information lisible par un ordinateur ou par un microprocesseur, intégré ou non au serveur 10, éventuellement amovible, peut mémoriser un ou plusieurs programme(s) dont l'exécution met en oeuvre le procédé de transmission conforme à la présente invention.
Une unité d'acquisition d'images telle qu'une caméra numérique ou un scanner peut être ajoutée pour saisir des vidéos en direct, l'unité de calcul 100 prenant en charge la compression de la vidéo. On peut faire évoluer le mode particulier de réalisation choisi pour l'invention, par exemple en ajoutant des méthodes de traitement actualisées ou améliorées ; dans un tel cas, ces nouvelles méthodes peuvent être transmises au serveur 10 par le réseau de communication, ou chargées dans le serveur 10 par l'intermédiaire d'une ou de plusieurs disquettes. Bien entendu, les disquettes peuvent être remplacées par tout support d'information jugé approprié (CD-ROM, carte mémoire, etc.).
Le client 12 comporte une unité de stockage 122, mémorisant les programmes du client et en particulier un programme de décompression de vidéo. De même que le serveur 10, le client 12 peut également comporter un lecteur de moyens de stockage temporaire tel qu'un lecteur de disquettes pour coopérer avec une disquette.
Le client 12 comporte en outre une unité de calcul 120 qui exécute les programmes, une unité réseau 124 qui prend en charge la réception des paquets et une unité d'affichage 126. De même que pour le serveur, en variante, les méthodes de traitement du signal numérique du côté du client peuvent être stockées dans différents emplacements de stockage. De façon générale, un moyen de stockage d'information lisible par un ordinateur ou par un microprocesseur, intégré ou non au client 12, éventuellement amovible, peut mémoriser un ou plusieurs programme(s) dont l'exécution met en oeuvre le procédé de transmission conforme à la présente invention. De même que pour le serveur, on peut faire évoluer le mode particulier de réalisation choisi pour l'invention en ajoutant des méthodes de traitement actualisées ou améliorées ; dans un tel cas, ces nouvelles méthodes peuvent être transmises au client 12 par le réseau de communication, ou chargées dans le client 12 par l'intermédiaire d'une ou de plusieurs disquettes. Bien entendu, les disquettes peuvent être remplacées par tout support d'information jugé approprié (CD-ROM, carte mémoire, etc.). On décrit ci-dessous plus précisément les processus effectués par le serveur en liaison avec les figures 2 et 3 et ceux effectués par le client en liaison avec la figure 4. On suppose que le serveur mémorise des vidéos H.264 ou SVC. Chaque séquence vidéo est codée en utilisant une organisation en images B-hiérarchiques. En conséquence, les GOP sont définis comme un ensemble d'images entre une image I et une image P ou entre deux images P.
Néanmoins, d'autres structures de GOP sont possibles dans le cadre de l'invention. Comme le montre l'organigramme de la figure 2, à l'étape E200, le serveur commence par recevoir une requête demandant une séquence vidéo. Cette requête a été émise par le client.
Le serveur récupère la séquence correspondante dans son unité de stockage et commence sa transformation. Cette transformation débute par la création de deux couches CGS. Avant d'émettre la séquence, le serveur engendre un message SEI (en anglais "Supplemental Enhancement Information") codé de façon hiérarchique (en anglais "scalable") pour décrire la séquence après transformation en deux couches CGS. Le message SEI est décrit dans la section G.13 du document "Joint draft ITU-T Rec. H.264 ISO/IEC 14496-10/Amd. 3 Scalable Video Coding" de T. WIEGAND, G. SULLIVAN, J. REICHEL, H. SCHWARZ et M. WIEN, 24ème JVT meeting, Genève, Suisse, juillet 2007. En outre, l'élément de syntaxe No inter layer pred flag est mis à zéro dans l'en-tête de NAL de la couche d'amélioration pour indiquer qu'il y a prédiction inter-couches.
Ensuite, le premier GOP de la séquence est traité. Le serveur vérifie tout d'abord si tous les MBs dans le GOP ont été traités (étape E202). Si ce n'est pas le cas, le serveur vérifie le type du MB suivant restant (étape E204). Si le MB n'est pas un MB INTRA, une perte est simulée au niveau du MB suivant restant (étape E206).
Ensuite, afin de simuler les traitements effectués par le client en cas de perte, le serveur simule le masquage d'erreur du MB perdu (étape E208). Une façon simple de simuler la perte et le masquage d'erreur consiste à décoder l'image contenant le MB, mais sans décoder le MB concerné, et à remplacer ce MB par le MB situé à la même position dans l'image décodée la plus proche. En variante, pour être encore plus proche des traitements réellement effectués par le client, il est également possible de laisser le client décrire son algorithme de masquage au serveur. Le serveur simule ensuite exactement ce qu'effectue le client et a donc une bonne évaluation de la qualité obtenue du côté du client. Quelle que soit la méthode de masquage simulée par le serveur, il est ensuite capable de mesurer la différence entre le MB masqué et le MB d'origine et donc, d'estimer la qualité du masquage (étape E210). Pour ce faire, le serveur mesure la somme des valeurs absolues des différences (SAD, en anglais "Sum of Absolute Differences") entre la version d'origine et la version masquée du MB : 16,16 SADMB = ~X=o,v=o MB°(x,y)ûMB°(x,y où MB°(x,y) est le pixel de la version originale du MB situé à la position (x,y) et MB°(x,y) est le pixel du MB masqué situé à la position (x,y). Afin de classer le MB, la valeur de SADMB obtenue est comparée à une valeur limite SADMAx au-delà de laquelle le MB est considéré comme important. Ainsi, si SADMB > SADMAx alors le MB est considéré comme important à l'étape E212. Un traitement spécifique est appliqué aux MBs INTRA. En effet, lorsque des MBs INTRA sont identifiés à l'étape E204 dans le train binaire d'origine, ces MBs sont directement considérés comme importants et les étapes E206 à E212 ne sont pas effectuées pour ces MBs. Lorsqu'un MB est considéré comme important, l'étape E212 est suivie d'une étape E224 au cours de laquelle le train binaire correspondant au MB important est inséré dans le flux binaire de la couche d'amélioration CGS et on modifie le train binaire du MB en insérant un indicateur base mode flag ayant la valeur zéro ainsi qu'un indicateur residual prediction flag ayant également la valeur zéro. Puis à l'étape E226, un MB correspondant à la même position est inséré dans la couche CGS de base. Le but de ce traitement est de garantir que la couche de base CGS est conforme à la norme et que le codage prédictif des vecteurs de mouvement est maintenu dans la couche de base. Une simple séparation du flux binaire en deux couches CGS ne fournira pas un flux binaire SVC standard. Le codage de ce MB dépend du type du MB d'origine. Le processus de codage est illustré sur la figure 3. On identifie tout d'abord le type du MB d'origine. Si, à l'étape E300, le MB est identifié comme étant un MB INTRA, on vérifie si la dérivation du vecteur de mouvement du MB courant à partir des MBs codés environnants a conduit à un vecteur nul (étape E302). Le processus de dérivation permettant de prédire le vecteur de mouvement courant à partir des vecteurs de mouvement des MBs environnants est décrit dans la section 8.4.1.1 du document "Joint draft ITU-T Rec. H.264 ISO/IEC 14496-10/Amd. 3 Scalable Video Coding" cité plus haut.
Si tel est le cas, le MB est codé comme un MB de type P_SKIP (étape E306) et aucune donnée supplémentaire n'est codée pour ce MB. Si ce n'est pas le cas, le MB est codé comme un MB INTRA avec un paramètre coded block pattern (noté CBP sur le dessin) indiquant qu'aucun des six blocs 8x8 ne contient de coefficients non nuls (étape E304). Si, à l'issue de l'étape E300, on a déterminé que le MB n'est pas de type INTRA, l'étape E300 est suivie par l'étape E308 au cours de laquelle on vérifie si la dérivation du vecteur de mouvement à partir des MBs codés environnants a conduit à une différence de vecteurs de mouvement (notée MVd sur le dessin) nulle, ce qui signifie que le vecteur de mouvement courant pourrait être complètement prédit par les MBs environnants. Si tel est le cas, on code un MB P_SKIP ou B_SKIP (étape E310). Sinon, le MB est codé comme un MB P ou B avec un paramètre coded block pattern indiquant qu'aucun des six blocs 8x8 ne contient de coefficients non nuls (étape E312). La différence des vecteurs de mouvement est codée afin de récupérer le même vecteur de mouvement que dans le MB d'origine. Le choix du type de MB entre B (respectivement B_SKIP) ou P (respectivement P_SKIP) dépend du type du bloc d'origine. Si, à l'étape E212, le MB est classé comme n'étant pas important, son train binaire est inséré dans une couche CGS de base à l'étape E214. Cette étape est suivie par l'insertion d'un MB dans la couche d'amélioration (étape E216). Le MB inséré est codé avec un paramètre base mode flag ayant la valeur 1 et un paramètre residual prediction flag ayant également la valeur 1. Le paramètre coded block pattern indique qu'aucun des six blocs 8x8 ne contient de coefficients non nuls. En conséquence, toutes les informations concernant ce MB dans la couche d'amélioration CGS sont déduites du MB situé à la même position dans la couche de base CGS. Les étapes E226 et E216 sont suivies par l'étape E202.
Lorsque tous les MBs dans un GOP ont été traités, l'étape E202 est suivie par l'étape E218 qui consiste à appliquer un codage avec correction d'erreur, ou FEC, à la couche d'amélioration CGS. Le codage FEC est appliqué au moins aux MBs considérés comme importants, mais peut également être appliqué à d'autres MBs. Un codeur FEC peut par exemple être un codeur de Reed-Solomon. Le niveau de redondance peut être adapté aux conditions réseau et en particulier au taux de pertes. Si on note p le taux de pertes sur le réseau exprimé en pourcentage et S la taille en octets des données d'amélioration dans ce GOP, le codeur de Reed-Solomon peut ajouter pxS octets redondants. Le taux de pertes réseau peut être calculé par le client et transmis au serveur en utilisant des paquets RTCP. Ensuite, à l'étape E220, les données sont transmises sur le réseau et le serveur commence à traiter le GOP suivant (étape E222) s'il existe. Le processus s'arrête lorsque tous les GOP ont été traités. On décrit maintenant en liaison avec la figure 4 le processus effectué par le client. Après avoir émis une requête à destination du serveur pour recevoir une séquence vidéo, le client reçoit la séquence sous forme de paquets réseau. Dans le mode particulier de réalisation décrit ici, la vidéo est reçue sous forme de paquets RTP. Quand le client reçoit un paquet (étape E400), il teste si des pertes se sont produites pendant la transmission (étape E402). Cette détection de pertes peut consister à vérifier le numéro de série des paquets RTP. Comme ces numéros sont généralement consécutifs, si la différence entre deux numéros successifs est supérieure à 1, une erreur est détectée. On suppose ici que le client décode la séquence en considérant les GOP de la séquence d'images codée SVC un par un. En conséquence, à l'étape E402, le client teste si au moins une erreur s'est produite pendant la transmission d'un GOP. Si aucune erreur ne s'est produite, l'étape E402 est suivie par les étapes E404 et E406 qui consistent respectivement à décoder la couche de base CGS et la couche d'amélioration CGS. Ici, le décodage des couches de base et d'amélioration apparaît comme séquentiel. En fait, toutes les données correspondant à un instant donné sont décodées avant de décoder une nouvelle image. Lorsque toutes les images d'un GOP sont décodées (étape E408), on retourne à l'étape E402 et on traite le GOP suivant (étape E410). Si à l'étape E402, on détecte qu'une erreur s'est produite pendant la transmission du GOP, on teste à l'étape E412 si cette erreur s'est produite dans la couche d'amélioration CGS. Le message SEI codé de façon hiérarchique transmis par le serveur au début de la séquence et l'information contenue dans les en-têtes de NAL fournissent suffisamment d'informations au client pour qu'il soit en mesure d'identifier dans quelle couche l'erreur s'est produite. Si à l'étape E412, le client détermine qu'aucune erreur ne s'est produite dans la couche d'amélioration, le décodeur identifie les images de la couche de base concernées par l'erreur (étape E422), effectue un masquage d'erreur sur ces images ou sur la partie erronée de ces images (étape E424) puis décode l'information de la couche d'amélioration (étape 426). Lorsque le client détermine à l'étape suivante E428 que toutes les images du GOP ont été traitées, il commence à traiter le GOP suivant (étape E420). Si le client détermine à l'étape E412 qu'une erreur s'est produite dans la couche d'amélioration, à l'étape suivante E414, il effectue un décodage avec correction d'erreur (FEC). Dans le mode particulier de réalisation décrit ici, il effectue un décodage de Reed-Solomon. Si le client détermine à l'étape suivante E416 que le décodeur de Reed-Solomon a réussi à régénérer les données manquantes, il retourne à l'étape E422. Sinon, si, à l'étape E416, le train binaire de la couche d'amélioration n'est pas régénéré après décodage de Reed-Solomon, seules les première et dernière images du GOP sont décodées (étape E418), si elles sont disponibles. Si elles ne sont pas disponibles, ces images sont masquées. Il est en effet nécessaire de régénérer ces deux images, parce que le client en a besoin pour décoder le GOP suivant à l'étape E420. En ce qui concerne les images restantes du GOP, on considère que comme une partie des MBs les plus importants est perdue, il n'est plus nécessaire d'afficher ce GOP. Le traitement de ce GOP est alors arrêté à l'étape E420 et le client commence à traiter le GOP suivant. Le mode particulier de réalisation décrit considère un processus se déroulant en temps réel, dans lequel un utilisateur demande une séquence vidéo et un serveur effectue directement les traitements conformes à l'invention. Néanmoins, ces traitements pourraient tout aussi bien ne pas être effectués en temps réel, c'est-à-dire "off-line", auquel cas le résultat serait mémorisé par le serveur. En conséquence, la séquence transformée serait prête à être transmise lorsqu'elle serait demandée par un client.
Par ailleurs, dans le mode particulier de réalisation décrit, on considère que la couche d'amélioration transporte les MBs les plus importants et que la couche de base transporte les MBs les moins importants. Toutefois, en variante, la couche d'amélioration pourrait transporter les MBs les moins importants et la couche de base les MBs les plus importants.
En outre, l'invention est ici appliquée à un flux H.264. Cependant, elle peut tout aussi bien être appliquée à une couche spatiale d'un flux SVC. De plus, il est à noter que, si la transformation du flux H.264 en deux couches d'amélioration CGS SVC n'augmente pas beaucoup le débit binaire de la séquence vidéo, l'insertion d'une correction d'erreur FEC pour obtenir une protection inégale contre les erreurs (UEP) risque en revanche d'augmenter le débit binaire de façon significative. Comme cette hausse du débit binaire aurait pour effet d'augmenter la congestion dans le réseau, provoquant ainsi une hausse du taux de pertes, on peut prévoir un moyen pour compenser l'augmentation du débit binaire due à la correction d'erreur FEC.
Par exemple, on peut transcoder la couche qui transporte les MBs les plus importants en plusieurs couches MGS ou FGS. En conséquence, le débit binaire des données vidéo peut être réduit pour compenser l'introduction des données FEC, par suppression de certaines données MGS ou FGS de façon adaptative.
Du reste, l'utilisation d'une scalabilité CGS n'est pas indispensable. En effet, les couches CGS peuvent être remplacées par des couches spatiales. Dans ce cas, la couche spatiale de base ayant une résolution inférieure à celle de la séquence vidéo d'origine peut transporter les MBs les moins importants et une couche spatiale d'amélioration peut transporter les MBs les plus importants. Afin de conserver le même processus pour engendrer la couche transportant les MBs les moins importants, la première couche peut être engendrée en transcodant en deux couches spatiales la couche CGS obtenue avec les MBs les moins importants. La seconde couche CGS devient alors une couche CGS d'amélioration de la seconde couche spatiale. Cette solution offre l'avantage de fournir davantage de débit binaire de codage aux données les plus importantes, le débit binaire de la résolution la plus basse étant réduit en raison du changement de résolution. Une technique simple de transcodage peut consister à décoder une couche spatiale ou CGS et à la re-coder en plusieurs couches MGS ou FGS, ou en deux couches spatiales. Afin d'éviter l'affichage de la couche de base seule, sans la couche d'amélioration, l'élément de syntaxe layer out flag situé dans le message SEI et correspondant à la couche de base peut être mis à zéro. On peut se reporter à ce sujet à la section G.13.2.1 du document "Joint draft 1TU-T Rec. H.264 ISO/IEC 14496-10/Amd.
3 Scalable Video Coding" cité plus haut. Enfin, dans le mode particulier de réalisation décrit, on a classé les macroblocs en deux groupes ("plus important" et "moins important") et on a créé deux niveaux de codage hiérarchique à partir de ces deux groupes. Néanmoins, on peut tout aussi bien choisir de classer les macroblocs en un plus grand nombre de groupes, cela entraînant la création d'autant de niveaux de codage hiérarchique supplémentaires.

Claims (11)

  1. REVENDICATIONS1. Procédé de transmission d'une séquence d'images vidéo sur un réseau entre un serveur et un client, ladite séquence étant codée suivant un mode de codage prédictif hybride et comportant une pluralité d'images, chaque image étant décomposée en une pluralité de macroblocs de pixels, ledit procédé étant caractérisé en ce que : - on classe (E212) ladite pluralité de macroblocs dans au moins deux groupes de macroblocs suivant un critère prédéterminé ; - on complète (E216, E226) lesdits groupes de macroblocs par des macroblocs additionnels ; - on crée (E214, E224) au moins deux niveaux de codage hiérarchique à partir desdits groupes de macroblocs ; - on applique (E218) une protection inégale contre les erreurs de transmission auxdits groupes de macroblocs suivant ledit critère prédéterminé ; et - on transmet (E220) sur le réseau lesdits niveaux de codage hiérarchique.
  2. 2. Procédé selon la revendication 1, caractérisé en ce que ledit critère prédéterminé définit l'importance d'un macrobloc en fonction d'une estimation (E210) de la qualité obtenue par le client dans le cas où ce macrobloc est perdu en cours de transmission.
  3. 3. Procédé selon la revendication 2, caractérisé en ce que ladite estimation (E210) de la qualité utilise une simulation (E208) de masquage d'erreur du macrobloc perdu.
  4. 4. Procédé selon la revendication 3, caractérisé en ce que ladite estimation (E210) de la qualité comporte la détermination de la somme des valeurs absolues des différences entre la version d'origine et la version masquée du macrobloc perdu et en ce que l'étape (E212) de classement comporte la comparaison de ladite somme à une valeur limite prédéterminée, au-delà de laquelle le macrobloc est considéré comme important.
  5. 5. Procédé selon la revendication 4, caractérisé en ce que lesdits macroblocs additionnels sont des macroblocs situés à la même position que des macroblocs considérés comme importants, dans un autre desdits au moins deux niveaux de codage hiérarchique créés à partir desdits groupes de macroblocs.
  6. 6. Procédé selon la revendication 4 ou 5, caractérisé en ce que ladite étape (E218) d'application d'une protection contre les erreurs consiste à appliquer un codage de Reed-Solomon au moins aux macroblocs considérés comme importants.
  7. 7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte en outre des étapes (E304, E306, E310, E312) suivant lesquelles on code lesdits macroblocs additionnels différemment selon le type de codage des macroblocs desdits groupes de macroblocs.
  8. 8. Procédé selon la revendication 7, caractérisé en ce qu'il comporte en outre des étapes suivant lesquelles, si le type de codage d'un macrobloc desdits groupes de macroblocs est INTRA : - on vérifie (E302) si la dérivation du vecteur de mouvement dudit macrobloc INTRA à partir des macroblocs codés environnants produit un vecteur nul ; - si c'est le cas, on code (E306) un macrobloc additionnel avec un codage de type P_SKIP ; - sinon, on code (E304) un macrobloc additionnel avec un codage de type INTRA et on ajoute un paramètre (coded block pattern) indiquant l'absence de coefficient non nul.
  9. 9. Procédé selon la revendication 7, caractérisé en ce qu'il comporte en outre des étapes suivant lesquelles, si le type de codage d'un macrobloc desdits groupes de macroblocs n'est pas INTRA : - on vérifie (E308) si la dérivation du vecteur de mouvement dudit macrobloc non INTRA à partir des macroblocs codés environnants produit une 30 différence de vecteurs de mouvement nulle ; - si c'est le cas, on code (E310) un macrobloc additionnel avec un codage de type P_SKIP ou B_SKIP ;- sinon, on code (E312) un macrobloc additionnel avec un codage de type P ou B et on ajoute un paramètre (coded block pattern) indiquant l'absence de coefficient non nul.
  10. 10. Procédé selon l'une quelconque des revendications précédentes, 5 caractérisé en ce que ledit codage hiérarchique est conforme à la norme SVC ("Scalable Video Coding").
  11. 11. Dispositif (10) de transmission d'une séquence d'images vidéo sur un réseau entre un serveur et un client, ladite séquence étant codée suivant un mode de codage prédictif hybride et comportant une pluralité d'images, 10 chaque image étant décomposée en une pluralité de macroblocs de pixels, ledit dispositif étant caractérisé en ce qu'il comporte : - des moyens pour classer ladite pluralité de macroblocs dans au moins deux groupes de macroblocs suivant un critère prédéterminé ; - des moyens pour compléter lesdits groupes de macroblocs par des 15 macroblocs additionnels ; - des moyens pour créer au moins deux niveaux de codage hiérarchique à partir desdits groupes de macroblocs ; - des moyens pour appliquer une protection inégale contre les erreurs de transmission auxdits groupes de macroblocs suivant ledit critère 20 prédéterminé ; et - des moyens pour transmettre sur le réseau lesdits niveaux de codage hiérarchique. 16. Dispositif selon la revendication 11, caractérisé en ce que ledit critère prédéterminé définit l'importance d'un macrobloc en fonction d'une 25 estimation de la qualité obtenue par le client dans le cas où ce macrobloc est perdu en cours de transmission. 17. Dispositif selon la revendication 12, caractérisé en ce qu'il comporte, pour ladite estimation de la qualité, des moyens de simulation de masquage d'erreur du macrobloc perdu. 30 14. Dispositif selon la revendication 13, caractérisé en ce qu'il comporte en outre, pour ladite estimation de la qualité, des moyens de détermination de la somme des valeurs absolues des différences entre la version d'origine et la version masquée du macrobloc perdu et en ce que les moyens classement sont adaptés à comparer ladite somme à une valeur limite prédéterminée, au-delà de laquelle le macrobloc est considéré comme important. 15. Dispositif selon la revendication 14, caractérisé en ce que lesdits macroblocs additionnels sont des macroblocs situés à la même position que des macroblocs considérés comme importants, dans un autre desdits au moins deux niveaux de codage hiérarchique créés à partir desdits groupes de macroblocs. 16. Dispositif selon la revendication 14 ou 15, caractérisé en ce que lesdits moyens d'application d'une protection contre les erreurs sont adaptés à appliquer un codage de Reed-Solomon au moins aux macroblocs considérés comme importants. 17. Dispositif selon l'une quelconque des revendications 11 à 16, caractérisé en ce qu'il comporte en outre des moyens adaptés à coder lesdits macroblocs additionnels différemment selon le type de codage des macroblocs desdits groupes de macroblocs. 18. Dispositif selon la revendication 17, caractérisé en ce qu'il comporte en outre des moyens adaptés, si le type de codage d'un macrobloc 20 desdits groupes de macroblocs est INTRA, à : - vérifier si la dérivation du vecteur de mouvement dudit macrobloc INTRA à partir des macroblocs codés environnants produit un vecteur nul ; - si c'est le cas, coder un macrobloc additionnel avec un codage de type P_SKIP ; 25 - sinon, coder un macrobloc additionnel avec un codage de type INTRA et ajouter un paramètre (coded block pattern) indiquant l'absence de coefficient non nul. 19. Dispositif selon la revendication 17, caractérisé en ce qu'il comporte en outre des moyens adaptés, si le type de codage d'un macrobloc 30 desdits groupes de macroblocs n'est pas INTRA, à :- vérifier si la dérivation du vecteur de mouvement dudit macrobloc non INTRA à partir des macroblocs codés environnants produit une différence de vecteurs de mouvement nulle ; - si c'est le cas, coder un macrobloc additionnel avec un codage de 5 type P_SKIP ou B_SKIP ; - sinon, coder un macrobloc additionnel avec un codage de type P ou B et ajouter un paramètre (coded block pattern) indiquant l'absence de coefficient non nul. 20. Dispositif selon l'une quelconque des revendications 11 à 19, 10 caractérisé en ce que ledit codage hiérarchique est conforme à la norme SVC ("Scalable Video Coding"). 21. Système de télécommunications comprenant une pluralité de dispositifs terminaux reliés à travers un réseau de télécommunications, caractérisé en ce qu'il comprend au moins un dispositif terminal équipé d'un 15 dispositif de transmission selon l'une quelconque des revendications 11 à 20. 22. Moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre d'un procédé de transmission selon l'une quelconque des revendications 1 à 10. 20 23. Produit programme d'ordinateur pouvant être chargé dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé de transmission selon l'une quelconque des revendications 1 à 10, lorsque ce programme est chargé et exécuté par l'appareil programmable.
FR0853670A 2008-06-03 2008-06-03 Procede et dispositif de transmission de donnees video Expired - Fee Related FR2932050B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0853670A FR2932050B1 (fr) 2008-06-03 2008-06-03 Procede et dispositif de transmission de donnees video
US12/477,008 US8605785B2 (en) 2008-06-03 2009-06-02 Method and device for video data transmission

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0853670A FR2932050B1 (fr) 2008-06-03 2008-06-03 Procede et dispositif de transmission de donnees video

Publications (2)

Publication Number Publication Date
FR2932050A1 true FR2932050A1 (fr) 2009-12-04
FR2932050B1 FR2932050B1 (fr) 2010-05-21

Family

ID=40227968

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0853670A Expired - Fee Related FR2932050B1 (fr) 2008-06-03 2008-06-03 Procede et dispositif de transmission de donnees video

Country Status (2)

Country Link
US (1) US8605785B2 (fr)
FR (1) FR2932050B1 (fr)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2902266B1 (fr) * 2006-06-13 2008-10-24 Canon Kk Procede et dispositif de repartition de la bande passante de communication
FR2918520A1 (fr) * 2007-07-03 2009-01-09 Canon Kk Procede et dispositif de transmission video
JP2012182672A (ja) * 2011-03-01 2012-09-20 Toshiba Corp エンコーダ、映像伝送装置及びエンコード方法
US9154785B2 (en) * 2012-10-08 2015-10-06 Qualcomm Incorporated Sub-bitstream applicability to nested SEI messages in video coding
US10542286B2 (en) * 2012-12-19 2020-01-21 ARRIS Enterprise LLC Multi-layer video encoder/decoder with base layer intra mode used for enhancement layer intra mode prediction
US9407923B2 (en) * 2013-05-20 2016-08-02 Gamefly Israel Ltd. Overconing lost IP packets in streaming video in IP networks
US20150016503A1 (en) * 2013-07-15 2015-01-15 Qualcomm Incorporated Tiles and wavefront processing in multi-layer context
US10291936B2 (en) 2017-08-15 2019-05-14 Electronic Arts Inc. Overcoming lost or corrupted slices in video streaming
CN114430305B (zh) * 2022-03-02 2023-06-09 烽火通信科技股份有限公司 一种细粒度帧的定帧方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233283B1 (en) * 1998-06-23 2001-05-15 Lucent Technologies Inc. Layered video coding using perceptual coding criteria for error resilience in packet networks
US20030138047A1 (en) * 1999-07-28 2003-07-24 Michael Orchard Method and apparatus for accomplishing multiple description coding for video
US20040179598A1 (en) * 2003-02-21 2004-09-16 Jian Zhou Multi-path transmission of fine-granular scalability video streams
WO2005029867A1 (fr) * 2003-09-23 2005-03-31 Koninklijke Philips Electronics, N.V. Systeme et procede de diffusion d'un contenu video, et algorithmes dependant de la dissimulation et permettant d'assurer la protection contre les erreurs et l'ordonnancement
US7010037B2 (en) * 2002-08-06 2006-03-07 Koninklijke Philips Electronics N.V. System and method for rate-distortion optimized data partitioning for video coding using backward adaptation

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3623679B2 (ja) * 1999-01-06 2005-02-23 日本電気株式会社 動画像符号化装置
FR2813001B1 (fr) * 2000-08-11 2002-12-20 Thomson Multimedia Sa Procede de conversion de format couleur d'une sequence d'images
FI120125B (fi) * 2000-08-21 2009-06-30 Nokia Corp Kuvankoodaus
FR2816138B1 (fr) * 2000-10-27 2003-01-17 Canon Kk Decodage de donnees numeriques
JP3807342B2 (ja) * 2002-04-25 2006-08-09 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
US20050024487A1 (en) * 2003-07-31 2005-02-03 William Chen Video codec system with real-time complexity adaptation and region-of-interest coding
KR100597402B1 (ko) * 2003-12-01 2006-07-06 삼성전자주식회사 스케일러블 비디오 코딩 및 디코딩 방법, 이를 위한 장치
KR100667806B1 (ko) * 2005-07-07 2007-01-12 삼성전자주식회사 영상 부호화 및 복호화 방법 및 장치
KR100825737B1 (ko) * 2005-10-11 2008-04-29 한국전자통신연구원 스케일러블 비디오 코딩 방법 및 그 코딩 방법을 이용하는코덱
EP1809041A1 (fr) * 2006-01-11 2007-07-18 Mitsubishi Electric Information Technology Centre Europe B.V. Masquage d'erreur pour le codage vidéo échelonnable
US7881258B2 (en) * 2006-03-22 2011-02-01 Sibeam, Inc. Mechanism for streaming media data over wideband wireless networks
KR101351730B1 (ko) * 2006-08-28 2014-01-16 톰슨 라이센싱 디코딩된 비디오 블록에서 예상 왜곡을 결정하기 위한 방법및 장치
FR2910211A1 (fr) * 2006-12-19 2008-06-20 Canon Kk Procedes et dispositifs pour re-synchroniser un flux video endommage.
US8824567B2 (en) * 2007-04-04 2014-09-02 Ittiam Systems (P) Ltd. Method and device for tracking error propagation and refreshing a video stream
FR2924296B1 (fr) * 2007-11-28 2010-05-28 Canon Kk Procede et dispositif de traitement d'un flux de donnees multimedia hierarchique transmis sur un reseau avec perte
FR2928807B1 (fr) * 2008-03-11 2017-04-07 Canon Kk Procede de transmission sur un reseau de communication d'un signal video pre-encode

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233283B1 (en) * 1998-06-23 2001-05-15 Lucent Technologies Inc. Layered video coding using perceptual coding criteria for error resilience in packet networks
US20030138047A1 (en) * 1999-07-28 2003-07-24 Michael Orchard Method and apparatus for accomplishing multiple description coding for video
US7010037B2 (en) * 2002-08-06 2006-03-07 Koninklijke Philips Electronics N.V. System and method for rate-distortion optimized data partitioning for video coding using backward adaptation
US20040179598A1 (en) * 2003-02-21 2004-09-16 Jian Zhou Multi-path transmission of fine-granular scalability video streams
WO2005029867A1 (fr) * 2003-09-23 2005-03-31 Koninklijke Philips Electronics, N.V. Systeme et procede de diffusion d'un contenu video, et algorithmes dependant de la dissimulation et permettant d'assurer la protection contre les erreurs et l'ordonnancement

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SCHWARZ H ET AL: "Overview of the Scalable Video Coding Extension of the H.264/AVC Standard", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 17, no. 9, 1 September 2007 (2007-09-01), pages 1103 - 1120, XP011193019, ISSN: 1051-8215 *

Also Published As

Publication number Publication date
US20090296821A1 (en) 2009-12-03
US8605785B2 (en) 2013-12-10
FR2932050B1 (fr) 2010-05-21

Similar Documents

Publication Publication Date Title
FR2932050A1 (fr) Procede et dispositif de transmission de donnees video
EP2991351B1 (fr) Procédé de décodage d'images
FR2894421A1 (fr) Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique
US20120195369A1 (en) Adaptive bit rate control based on scenes
FR2904494A1 (fr) Procede et dispositif de compression d'image, systeme de telecommunication comportant un tel dispositif et programme mettant en oeuvre un tel procede
FR2931610A1 (fr) Procede et un dispositif de transmission de donnees d'images
FR2889017A1 (fr) Procedes de filtrage, de transmission et de reception de flux video scalables, signal, programmes, serveur, noeud intermediaire et terminal correspondants
FR2959636A1 (fr) Procede d'acces a une partie spatio-temporelle d'une sequence video d'images
EP2633686B1 (fr) Codage video echelonnable a partir d'un epitome hierarchique
EP2716045B1 (fr) Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants
FR3026261A1 (fr) Procede de codage et de decodage d'images integrales, dispositif de codage et de decodage d'images integrales et programmes d'ordinateur correspondants
EP2227908B1 (fr) Procede de decodage a complexite variable d'un signal d'images, terminal de decodage, procede de codage, dispositif de codage, signal et programmes d'ordinateur correspondants
EP3918798A1 (fr) Procédé et dispositif de codage et de décodage de données correspondant à une séquence vidéo
EP3698546A1 (fr) Procédés de codage et de décodage d'un flux de données représentatif d'une vidéo omnidirectionnelle
FR2936388A1 (fr) Procede et dispositif de transcodage d'une sequence video
EP4104446A1 (fr) Procédé et dispositif de traitement de données de vidéo multi-vues
WO2007042539A1 (fr) Dispositifs et procedes de codage et de decodage echelonnables de flux de donnees d'images, signal, programme d'ordinateur et module d'adaptation de qualite d'image correspondants
EP3542533A1 (fr) Procédé et dispositif de codage et de décodage d'une séquence multi-vues
FR3086486A1 (fr) Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image.
FR2913844A1 (fr) Procede et dispositif d'allocation de debit dans une sequence video
FR2910773A1 (fr) Procede et dispositif de codage de donnees video.
FR2929790A1 (fr) Procede et dispositif de transmission de donnees
FR2899053A1 (fr) Procedes et dispositifs de codage et de decodage d'images animees, systeme de telecommunication comportant un tel dispositif et programme mettant en oeuvre un tel procede

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140228