Note: Descriptions are shown in the official language in which they were submitted.
CA 03000557 2018-03-29
WO 2017/055771 PCT/FR2016/052508
1
Procédé d'encodege de flux de données vidéo basées sur des
groupements d'images (GOP)
La présente invention a trait à un procédé d'encodage de flux
de données vidéos en vue de l'amélioration de la fiabilité et de
la qualité de réception de ces flux dans un réseau numérique sans
fil, régi par un protocole de communication par exemple de type
WIFI. Les flux concernés sont envoyés en multidiffueion et
proviennent d'au moins un émetteur les diffusant vers des
dispositifs récepteurs en l'occurrence situés dans un périmètre
relativement restreint, de sorte qu'ils peuvent fonctionner avec
un protocole de communication tel que mentionné, prévu pour
fonctionner dans un environnement plutôt local. Les dispositifs
récepteurs sont alors dotés d'au moins une application logicielle
permettant de traiter et de visualiser l'information reçue.
Plus particulièrement, les données vidéos concernées par
l'invention sont basées sur des groupements d'images (OP)
classiquement utilisés en codage vidéo (notamment dans les normes
MPEG pour la compression, la décompression, le traitement et le
codage vidéo et audio) pour définir l'ordre dans lequel sont
disposées des images à codage interne et à codage prédictif
permettant la génération d'une image visible dans un flux vidéo.
Les flux traités dans le cadre de l'invention comportent par
ailleurs des moyens également classiques de correction des erreurs
de transmission, la correction se faisant en l'occurrence par
redondance et étant réalisée via des algorithmes connus sous le
nom d'algorithmes AL-FEC (pour Application Level Forward Error
Correction) mettant en uvre une fonction matricielle.
sien que le procédé de l'invention puisse trouver de multiples
applications pratiques, puisqu'il optimise de manière très
générale la transmission de flux d'images en temps réel et/ou
quasi-réel, l'une des applications envisagée est la diffusion
pratiquement instantanée d'événements de type rencontres
sportives ou spectacles, dans le périmètre d'une enceinte où a
lieu ledit événement. La qualité des flux vidéos transmis aux
dispositifs cliente permet à titre principal la visualisation
CA 03000557 2018-03-29
W02017/055771 PCT/FR2016/052508
2
fluide et de bonne qualité des images vidéos, mais également
d'enrichir la visualisation par des traitements susceptibles de
conférer une valeur ajoutée aux flux reçus, par exemple une
répétition et donc une revisualisation de certaines séquences, le
cas échéant au ralenti ou encore avec une effet de zoom. De tels
traitements n'auraient guère de sens si la qualité des flux vidéos
n'était pas assurée.
Les flux vidéos sont usuellement transmis sous forme de paquets
d'informations successifs qui obéissent à un découpage
prédéterminé en vue de leur envoi, ces paquets comportant très
généralement les images à transmettre, encodées pour la
transmission, et des informations additionnelles qui, en cas de
problème de réception, sont utilisées par les algorithmes de
reconstruction pour tenter de restituer les images initiales,
IS De
fait, le procédé de l'invention s'applique à des flux vidéos
constitués en pratique de paquets G de données successifs, chaque
paquet G comprenant de façon connue un premier ensemble M
contenant les données vidéos natives à transmettre (les images du
flux vidéo encodées) et un second ensemble contenant des données
de redondance obtenues par un algorithme adéquat. Selon
l'invention, le premier ensemble de données est constitué à partir
de toutes les données M d'au moins un groupement d'images (GOP).
Le découpage des paquets d'informations à transmettre dans des
flux vidéos repose donc, de manière innovante selon l'invention,
sur des groupements particuliers d'images développés et définis
dans le cadre de normes organisant l'architecture des paquets de
données vidéos à transmettre. Le système informatique charge
d'envoyer les flux vidéos, et par conséquent les logiciels qui le
pilotent, effectuent dès lors un découpage de l'information qui
est basé sur ces groupements d'images ou GOP formatés de manière
standard dans le monde du codage vidéo, identifiant une
architecture propre basée sur des images codées particulières.
Les données M peuvent relever d'un unique groupement d'images GOP,
dont elles contiennent alors toutes les données, ou de deux ou
plus groupements d'images GOP, avec cette même condition d'inclure
toutes leurs données dans un même paquet,
CA 03000557 2018-03-29
W02017/055771 PCT/FR2016/052508
3
Toujours selon l'invention, la taille de toutes les images du
groupement d'images est ajoutée dans les données M du flux vidéo
natif, dans une zone jouxtant chaque image, qui occupé par exemple
deux octets de données par image.
De plus, selon une possibilité, une table d'index contenant la
position absolue de chaque image du groupement d'images peut être
ajoutée dans les données M, ladite table pouvant se trouver dans
une zone par exemple située au début du train d'images codées à
transmettre.
En pratique, selon l'invention, chaque paquet G est ensuite
organisé en K premiers blocs de données de taille prédéterminée L
et N blocs de redondance de taille L, E étant égal à M/L, la
valeur entière par excès du résultat de la division MIL étant
attribuée à K si M/L n'est pas un nombre entier. La portion de
bloc correspondant à la différence (KxL M), qui n'existe que si
M/L n'est pas un nombre entier, est alors remplie par des données
identifiées comme étant des données de bourrage, par exemple des
zéros.
De préférence, selon l'invention, pour chacun des blocs K et
il, des informations sont ajoutées, comportant
- le numéro du groupement d'images (GOP), incrémenté pour
chaque nouveau groupement d'images e
- La valeur de K, incrémentée de I à K pour chaque bloc
- La valeur de N, commençant à K+1 et se terminant à N+K
- La valeur de L ; et
- Le numéro du bloc. (de 1 à K4-N)
La longueur de chacun des blocs K et N devient alors 1.4- n octets
que nécessite le codage des informations ci-dessus. L'existence
de toutes ces données supplémentaires, combinée au découpage en
blocs K 4- N de l'information vidéo native, elle-même basée sur un
standard du codage vidéo (un ou plusieurs GOP), permet d'améliorer
Considérablement la maîtrise de la transmission des flux vidéos.
Les opérations de reconstruction à mettre en uvre dans
CA 03000557 2018-03-29
W02017/055771 PCT/FR2016/052508
4
l'hypothèse d'une transmission viciée des flux vidéos sont
clairement facilitées par la nouvelle architecture proposée.
L'invention concerne par ailleurs également un flux vidéo
organisé selon le procédé expliqué ci-dessus et comportant une
succession de paquets de données codées G constitués chacun d'un
premier ensemble de données vidéos natives à transmettre et d'un
second ensemble de données redondantes de correction d'erreurs,
caractérisé en ce que le premier ensemble contient toutes les
données d'au moins un groupement d'images (GOP).
Ce type de flux vidéo, structuré selon le procédé de
l'invention, permet de garantir une réception en une qualité
suffisante d'abord pour que la visualisation des flux transmis
soit simplement confortable, puis également pour que les éventuels
traitements ultérieurs appliqués aux signaux transmis puissent se
baser sur un socle d'information suffisant à leur réalisation.
L'invention aboutit en réalité à organiser l'information,
c'est-à-dire les flux vidéos natifs à envoyer, de façon à
permettre une optimisation de la réponse du système à des défauts
de transmission du signal vidéo, sur la base d'une architecture
suffisamment structurée et riche en informations.
elle va à présent étre décrite plus en détail, en référence aux
figures annexées, représentant un exemple de mise en uvre du
procédé de l'invention montrant différentes étapes possibles pour
l'élaboration de flux vidéos optimisés, pour lesquelles r
- la figure 1 représente un diagramme schématisant
l'organisation d'un groupement d'images tel qu'utilisé dans
le cadre de l'invention ;
- la figure 2 illustre, pour un même paquet de données,
l'adjonction au flux vidéo natif de la taille de chaque image
codée du groupement d'images ;
- la figure 3 montre la taille M du paquet d'image lorsqu'une
table d'index est ajoutée aux données ;
- la figure 4 représente le découpage en K blocs de longueur
L du paquet M de données, avec adjonction éventuelle de
bourrage lorsque K x L > M
CA 03000557 2018-03-29
W02017/055771 PCT/FR2016/052508
- la figure 5 illustre l'ajout de N blocs dus à l'encodage par
redondance (FEC) e et
- la figure 6 montre enfin l'adjonction de paramètres
supplémentaires enrichissant l'information à transmettre et
facilitant la mise en uvre ultérieure de la récupération
de données, s'il y a lieu.
En référence à la figure 1, le premier ensemble de données,
constitutif du flux vidéo natif à transmettre avant encodage de
la fonction de correction d>erreurs de transmission, est constitué
à partir de toutes les données d'un groupement d'images. Cette
structure d'organisation de données est bien connue dans le
domaine du codage vidéo, puisqu'elle est notamrent définie par
les normes MPEG. Ces groupements d'images, ou GOP (Group Of
Pictures) dans leur désignation anglo-saxonne, définissent la
nature et l'ordre dans lesquels des images résultants de plusieurs
types de codages particuliers sont agencées. Le groupement de ces
images forme de fait une suite particulière, cette suite étant
répétée périodiquement pour constituer l'encodage d'un flux vidéo.
Il existe ainsi des images à codage interne I et des images à
codage prédictif, ces dernières pouvant être de deux types : les
images P à codage prédictif basé sur une image passée, et les
images B à codage prédictif bidirectionnel. Les images P
contiennent des informations de différence, par prédiction de
mouvement, avec une image I ou une image P passée. Les images B
contiennent des informations de différence avec des images I ou P
passées et futures à l'intérieur d'un groupement d'images.
Pour mémoire, les images I ou P peuvent être utilisées comme
images de référence, alors que ce n'est en général pas le cas avec
les images B. Les images visibles sont in fine générées à partir
des images codées contenues dans un groupement d'images, qui est
d'ailleurs exprimé en nombre d'images codées, lesquelles sont
construites au moment de l'encodage de manière à garantir le taux
de transfert du flux vidéo.
Comme cela apparaît notamment en figure 1, le groupement
d'images N (GOP N) commence par une image de référence Ie, suivie
par des images P et B dans un ordre particulier qui définit ledit
CA 03000557 2018-03-29
W02017/055771 PCT/FR2016/052508
6
groupement d'images. Le flux vidéo à transmettre comporte ce
groupement d'images N, suivi par un groupement d'images N.4-1 dont
l'image initiale IN.1 est la nouvelle image de référence, précédé
par un groupement d'images N-1 et ainsi de suite. L'ensemble de
ces groupements d'images GOPN constitue le flux vidéo encodé. Pour
la présente invention, la base du découpage des paquets de données
vidéo à envoyer est constituée de ces groupements d'images. La
figure I n'en représente qu'un, mais il peut y en avoir deux ou
plus dans les paquets de données vidéos M.
La figure 2 illustre une autre caractéristique du procédé de
l'invention, qui maéliore le codage du flux vidéo en ajoutant la
taille de toutes les images 1, P, a du groupement d'images dans
une zone jouxtant chacune de ces images. L'ajout supplémentaire
d'une table d'index, apparaissant en début du paquet de données
vidéos en figure 3, étoffe encore l'information vidéo encodée,
l'ensemble constituant un premier ensemble encodé de taille M.
Cette longueur ou taille M est le point de départ d'un calcul
visant à un découpage en K blocs de longueur L (voire en figure
4), L étant une constante et K un nombre entier. Lorsque le
résultat de la division de M par L n'est pas un entier, la valeur
entière par excès est alors attribuée à K. Dans la plupart des
cas, K x L M. Dans cette hypothèse, ainsi que représenté sur la
figure 4, on procède à un bourrage ou stuffing pour obtenir K
blocs complets de longueur L. 11 s'agit simplement de compléter
le bloc K par des zéros, identifiés par le programme comme valeur
de bourrage.
Jusqu'ici, il a été question de codage vidéo, c'est-à-dire du
codage d'images visant à la transmission du flux vidéo et
permettant in fine la génération d'une image visible après
décodage. Les figures 5 et 6 rajoutent la notion de correction
d'erreurs éventuelles de transmission. Comme mentionnée
auparavant, la correction d'erreur s'effectue en l'espèce par
redondance, en utilisant un algorithme connu en soi de type AL-
PEC (Application Layer Porward Error Correction). L'encodage de
correction d'erreur met en uvre une fonction matricielle qui
aboutît à ajouter N blocs de données supplémentaires, également
CA 03000557 2018-03-29
W02017/055771 PCT/FR2016/052508
7
de longueur L. Ce sont les blocs K-F1 à Kffl apparaissant dans ces
figures 5 et 6.
Selon une dernière opération propre à l'invention, visant à
optimiser encore les possibilités de traitement, des informations
sont ajoutées pour chacun des blocs E et N, comportant notamment
mais non exclusivement :
- le numéro du groupement, incrémenté pour chaque nouveau
groupement d'images (GOP)
- La valeur de X, incrémentée de 1 à K pour chaque bloc
K
- La valeur de N, commençant à K+1 et se terminant à N+K
- La valeur de L ; et
- Le numéro du bloc. (de 1 à Kffl)
Ces informations complémentaires organisent en pratique mieux
l'information, c'est-à-dire l'ensemble des flux vidéos à envoyer,
y compris les blocs de redondance, de façon à permettre une
optimisation de la réponse du système à des défauts de
transmission du signal vidéo. Elles fournissent en fait des
données sur les blocs pris individuellement, afin de mieux tracer
les erreurs et de les localiser dans les paquets de données.
L'invention ne se limite bien entendu pas aux exemples décrits
et expliqués en référence aux figures, mais elle englobe les
variantes et versions qui entrent dans la portée des
revendications.