Brevet FR3083413A1 — publié le 20200103

DOMAINE TECHNIQUE DE L'INVENTION La présente invention concerne un procédé de montage audiovisuel. Elle concerne plus précisément le domaine du montage vidéo. De façon connue, le montage vidéo consiste à réaliser la composante visuelle d'un film à partir d'une pluralité de contenus audiovisuels. ÉTAT DE LA TECHNIQUE On connait de nombreux programmes de montage audiovisuel adaptés à monter des images en deux dimensions. L'un des moyens qui peut être mis en oeuvre pour obtenir un media auto-stéréoscopiques multipoints de vue consiste a utiliser un logiciel dit de « compositing », comme par exemple « After Effect > 184 2. 20 -> 32 3. 2F -> 47 La traduction de #B8202F est donc RVBA (184, 32, 47, 1), l'alpha étant 5 dans notre cas toujours 100% opaque. Peu importe donc l'espace colorimétrique en entrée, nous convertissons toujours en notation RVBA. Nous allons via une matrice et des "quantités" de couleurs dans chaque canal transposer les valeurs colorimétriques de nos utilisateurs en utilisant une image ou une expression, de type templates comprenant les 10 couleurs primaires. Par exemple des bandeaux qui sont positionnés sur une partie de la vidéo. Pour cela, nous avons adapté le "Color channel mixer" présent dans la bibliothèque du logiciel FFMPEG. Cette bibliothèque permet justement la transformation de couleurs, nous avons donc mis au point un système de calcul 15 de transposition de couleurs qui a ensuite été automatisé. Les couleurs de l'utilisateur reflètent une identité visuelle. Il est donc nécessaire que les couleurs soient parfaitement identiques à la demande. Le calcul est très précis. Pour que la transformation se réalise, il est nécessaire que les fichiers vidéos des templates soit réalisés avec des couleurs dites primaires pour 20 qu'ensuite ces couleurs puisses être modifiées. Dans un premier temps, nous souhaitons réaliser une transformation à une couleur, nous allons utiliser le "Red Channel", ou encore "Couche rouge". En plus des couleurs à transformer, nos templates peuvent contenir des tonalités de gris (du blanc au noir), les valeurs dans chaque canaux doivent 25 être égaux. L'objectif est donc de pouvoir transformer la couleur rouge en la couleur de notre utilisateur sans transformer les tonalités de gris. Nous pouvons donc intégrer les éléments graphiques avec un fond comprenant par exemple un effet d'ombrage, celui-ci n'étant pas impacté. Si les notions de gris sont légèrement tintées, alors elles sont aussi soumises à la modification. 30 Exemple pour une couleur : Un utilisateur sélectionne la couleur RVBA (80, 136, 207, 1) que nous plaçons dans la variable C1. Cette variable est vue comme un tableau composé de quatre valeurs. 14 R V B A Cl 80 138 207 1 La transposition nécessite un calcul utilisant chaque valeur du tableau. Chacune d'entre elles est divisée par 255, valeur maximum qu'elle peut atteindre dans cet espace de couleur. Matrice présentant les couleurs primaires : Rouge Vert Bleu Alpha Primaire rouge 255 0 0 0 Primaire vert 0 255 0 0 Primaire bleu 0 0 255 5 Le Primaire rouge est une couleur que l'on pourrait qualifier de rouge "au maximum", c'est-à-dire que ses canaux de couleur sont composés de la valeur maximum dans le canal Rouge et du minimum dans les autres canaux. Les deux autres couleurs primaires se forment de la même manière. Le canal Alpha est particulier car il s'agit d'une proportion allant de 0 à 1 (0 indiquant 10 l'opacité minimum et 1 maximum). Nos templates sont toujours créés à partir des trois couleurs primaires, nécessaires à la transposition. Cl est une couleur non primaire, il s'agit donc d'une nuance de couleur dans l'espace colorimétrique RVBA. Le rouge des templates initiaux se transforme donc en nuance de couleurs lorsque l'on applique les proportions 15 calculées. L'étape du calcul de la "proportion" de rouge, bleu et vert dans chaque canal à utiliser dans le filtre FFMPEG. Il est nécessaire de commencer par calculer la transposition de la première couleur sur tous les canaux. La valeur totale par colonne doit être de 1, il est donc nécessaire de compenser les 20 autres canaux pour que les nuances de gris ne soient pas impactées. Dans le cas suivant, la répartition est équilibrée entre les deux canaux restants (V & B), mais il est possible de compenser sur un seul canal en déclarant nul le dernier. 255 = Rc[0] Vert 255 = Rc[1] Rouge Rc1 Vc, (1 - Rc[0])- Vc[0] (1 - Rc[1]) 2 2 = Vc[1] Bleu 255 = Rc[2] - Rc[2]) Rc (1 Bc (1- Rc[0]) - Bc[0] Bc[1] (1 Rc[1]) (1 2 2 Ac 0 = Ac[0] 0 = Ac[1] Bc, 2 = Vc[2] 0 = Vc[3] - Rc[2]) - 2 Bc[2] 0 = Bc[3] 0 = Ac[2] 1 = Ac[3]_ Alpha = Rc[3] Vc 15 Application au cas d'espèce : R V B A 0.314 0.541 0.812 0 0.343 0.2295 0.094 0 0.343 0.2295 0.094 0 0 0 0 1 Il reste à appliquer les valeurs calculées dans le filtre FFMPEG qui se compose de la manière suivante : Rf = Rc[0] :Vc[0] :Bc[0] :Ac[0] 5 Vf = Rc[1] :Vc[1] :Bc[1] :Ac[1] Bf = Rc[2] :Vc[2] :Bc[2] :Ac[2] Af = Rc[3] : Vc[3] : Bc[3] : Ac[3] Filtre colorchannelmixer = Rc:VC:Bc:Ac Filtre colorchannelmixer = 0.314 : 0.343 : 0.343 : 0 : 0.541 : 0.2295 : 0.2295 : 0 10 : 0.812 :0.094 : 0.094 : 0 L'opération de colorisation est terminée, l'étape suivante étant le montage par-dessus un flux de données. Dans une variante non représentée, le procédé comporte une étape de stockage du flux de données sur un serveur à distance. 15 Exemple pour deux couleurs : Nous allons utiliser dans cette nouvelle démonstration deux couleurs, il est nécessaire de compenser uniquement le Canal bleu. Notre utilisateur à choisis les couleurs RVBA (80, 136, 207, 1) et RVBA(207, 80, 172, 1), placées respectivement dans les variables Color1 et Color2. R V B A Cl 80 138 207 1 C2 207 80 172 0 20 Réalisons le même calcul que pour une seule couleur, avec le canal bleu en plus, soit la matrice suivante : Rci vci Bci 0 = Rc[3] 0 = Vc[3] Rc = = 0 = Bc[3] 1 = Ac[3] = [0] Rc[1] Rc[2] 255 255 255 R c2 Vc2 Bc2 Vc = = = [0] Vc[1] Vc[2] 255 1 - Rc[1] - V c[1] = Bc [1] 0 = Ac[1] 255 1 - Rc[0] - Vc [0] = Bc[0] 0 = Ac[0] 1 - Rc[2] - Vc [2] = Bc[2] 0 = Ac[2] Application au cas d'espèce : 16 R V B A 0.314 0.541 0.812 0 0.812 0.314 0.675 0 -0.126 0.145 -0.487 0 0 0 0 1 Filtre colorchannelmixer = 0.314: 0.812 : -0.126: 0 : 0.541 : 0.314 : 0.145 : 0 : 0.812 : 0.675 : -0.487: 0 Dans une variante non représentée, le procédé comporte une étape de stockage du flux de données sur un serveur à distance. 5 Comme illustré en figure 2, dans un deuxième mode de réalisation particulier, le procédé de montage audiovisuel objet de la présente invention comporte : - a) une étape (100) d'entrée d'une pluralité de flux de données, au moins un dit flux de données représentant une image, un panorama, une vidéo 10 ou réalisée à partir d'image à 360°, - une étape (125) de manipulation d'un seul flux de travail formé à partir d'au mois un dit flux de données de l'étape a), dans un espace d'expression visé en trois dimensions spatiales plus le temps, au cours de cette étape il est utilisé une caméra virtuelle qui a soit : 15 - une première capacité de réaliser des rotations selon les trois axes, lesdits trois axes étant horizontal, vertical et profondeur, et est fixe sur lesdits trois axes, soit - une deuxième capacité de se mouvoir sur les trois axes, horizontal, vertical et profondeur et fixe sur les rotations 20 desdits trois axes. - une étape (130) de gestion d'un environnement à 360° utilisant la première capacité de la caméra virtuelle et d'un flux de données en trois dimensions spatiales à partir d'un panorama ou d'une vidéo à 360°, au cours de cette étape (130) de gestion d'un environnement à 360° il est 25 définit un point de départ P1(x1, y1 et z1), un point d'arrivé P2(x2, y2 et z2) sur ledit flux en trois dimensions spatiales, et un temps, - une étape (135) de calcul de positions intermédiaires, correspondant à différents points de vue de l'espace en trois dimensions spatiales plus le temps entre le point de départ et le point d'arrivé sur le flux en trois 30 dimensions spatiales. 17 Au cours de l'étape (135) du calcul des positions intermédiaires soit un écart identique entre les différentes positions du flux en trois dimensions spatiales, soit une augmentation du nombre des positions intermédiaires à proximité du point de départ et du point d'arrivé. 5 Selon un autre exemple, le procédé comporte les étapes suivantes : - a) une étape (100) d'entrée d'une pluralité de flux de données, au moins un dit flux de données représentant une image, un panorama, une vidéo ou réalisée à partir d'image à 360°, - une étape (125) de manipulation d'un seul flux de travail formé à partir 10 d'au mois un dit flux de données de l'étape a), dans un espace d'expression visé en trois dimensions spatiales plus le temps, au cours de cette étape il est utilisé une caméra virtuelle qui a soit : - une première capacité de réaliser des rotations selon les trois axes, lesdits trois axes étant horizontal, vertical et 15 profondeur, et est fixe sur lesdits trois axes, soit - une deuxième capacité de se mouvoir sur les trois axes, horizontal, vertical et profondeur et fixe sur les rotations desdits trois axes. - une étape (130) de gestion d'un environnement en trois dimensions 20 utilisant au moins un objet planaire utilisant la deuxième capacité de la caméra virtuelle et d'un flux de données en deux dimensions spatiales à partir d'une vidéo ou d'une image, au cours de cette étape (130) de gestion d'un environnement en trois dimensions utilisant au moins un objet planaire il est définit un point de départ P1(x1, y1 et z1), un point 25 d'arrivé P2(x2, y2 et z2) sur ledit flux en deux dimensions spatiales, et un temps, - une étape (135) de calcul de positions intermédiaires, correspondant à différents points de vue de l'espace en trois dimensions spatiales plus le temps entre le point de départ et le point d'arrivé sur le flux en deux 30 dimensions spatiales. Au cours de l'étape (135) du calcul des positions intermédiaires soit un écart identique entre les différentes positions du flux en deux dimensions spatiales, soit une augmentation du nombre des positions intermédiaires à proximité du point de départ et du point d'arrivé. 18 Dans un exemple, le procédé comporte - une étape de stockage du flux de données sur un serveur à distance, - une étape de rendu à partir des données stockées à distance et des informations du point de départ P1, du point d'arrivé P2 et du temps, 5 ladite étape de rendu traite le calcul de chaque image sur le serveur créant un environnement graphique selon la spécification OpenGL(marque déposée). Le serveur à distance sur lequel nous créons un environnement graphique OpenGL permet le rendu en temps réels de nos rushs audiovisuel. 10 Le client réalise selon les étapes du procédé une animation dans son navigateur en utilisant un outil webgl (OpenGI dans le navigateur) et envoi les différentes informations pour qu'elles soient cohérentes dans l'environnement OpenGL du serveur à distance. La figure 3 montre un schéma avec des éléments d'un mode de 15 réalisation particulier du procédé de montage audiovisuel objet de la présente invention. Pour gérer les panoramas à 360°, nous utilisons une caméra virtuelle (dans l'espace 3D) qui peut réaliser des rotations, mais elle ne peut pas se mouvoir sur les trois axes, horizontal, vertical et profondeur. La gestion du 20 rapprochement dans la texture se réalise à l'aide de la distance focale, celle-ci permettant un aspect photographique fidèle. Sur cette figure, trois axes (x, y et z) permettent à la caméra la réalisation de rotation. La caméra est bloquée sur des mouvements de translation, elle ne peut donc pas "sortir" de la sphère et reste toujours à la 25 même distance de chaque point la composant. L'utilisateur va alors jouer sur l'inclinaison de la caméra sur ces axes pour définir un point de départ P1(x1, y1 & z1) et un point d'arrivé P2(x2, y2 & z2). Une fois ces deux clés définies, une animation va être réalisée. Le système calcule automatiquement une durée optimale permettant une animation esthétique du rush vidéo. Pour chaque 30 image du rush final, une position intermédiaire entre P1 et P2 est calculée. La caméra va alors réaliser entre ces clés une animation dite "Linéaire "(l'écart entre les différentes positions est toujours identique) ou "ease-in-out " pour facilité l'entrée en français pour une animation ralentie sur le début et la fin, 19 faisant un effet d'amortissement. Une fois toutes les images réalisées, le montage de toutes ces images est effectué et compose donc le rush vidéo final. Un traitement avec ajout de bande noir est réalisé si le format n'est pas 2 :1 et la texture de la sphère est appliquée vers "l'intérieur" de l'objet. 5 La figure 4 représente un autre schéma avec des éléments d'un mode de réalisation particulier du procédé de montage audiovisuel objet de la présente invention. Pour gérer les rushs vidéos à partir d'images, nous utilisons une caméra virtuelle qui n'a pas la capacité de réaliser des rotations, mais elle peut 10 se mouvoir sur les trois axes, horizontal, vertical et profondeur. Dans ce cas de figure, la focale de la caméra n'est pas utilisée car elle déformerait l'objet 2D. Les axes représentent les possibilités de mouvement de la caméra. Nous allons alors réaliser une animation sur la durée définie par l'utilisateur entre les deux positions de caméras. L'utilisateur peut créer des animations 15 uniquement à partir de translation. Qu'elle soit verticale (Y), horizontale(X) ou dans la profondeur(Z), l'utilisateur peut combiner les différentes translations. Il sera limité en profondeur pour qu'il ne puisse pas "dépasser" les limites de l'image qu'il souhaite rendre. La figure 5 représente un autre schéma avec des éléments d'un mode 20 de réalisation particulier du procédé de montage audiovisuel objet de la présente invention. Sur cette figure, la première position dite P1 composée des positions X1, Y1, Z1 et la position dite P2 composée de X2, Y2 et Z2 permettent de définir une animation. La caméra va alors réaliser entre P1 et P2 une animation 25 dite "Linéaire " ou "ease-in-out ". Comme pour les panoramas, les étapes intermédiaires sont calculées permettant la composition du rush vidéo final. 20 NOMENCLATURE 100 Entrée de flux 105 Manipulation de couleur(s) 5 110 Calcul de la proportion 115 Application des valeurs calculées à un flux de données à coloriser 120 Génération d'un flux colorisé par-dessus des flux de données 125 Manipulation d'un seul flux de travail 130 Gestion d'un REVENDICATIONS1. Procédé de montage audiovisuel caractérisé en ce qu'il comporte : - a) une étape (100) d'entrée d'une pluralité de flux de données, au moins un dit flux de données représentant une image, un panorama, une vidéo ou réalisée à partir d'image à 360°, - b) une étape (105) de manipulation d'une première couleur définit par trois valeurs numériques compris entre 0 et 255 dans l'espace colorimétrique RVB correspond respectivement à la couleur Rouge, Vert et Bleu, la première valeur étant défini comme étant Rc1, la deuxième valeur étant défini comme étant Vol, la troisième valeur étant défini comme étant Bci, - c) une étape (110) de calcul de la proportion de rouge, vert et bleu à partir des valeurs numériques Rc1, Vc1, et 13c, pour une première couleur issues de l'étape b) selon la matrice M1 suivante : Vc, 255 - Rc[1] 255 = Rc[2] 2 2 2 (1 Rc[1]) (1- Rc[2]) Vc[0] = Vc[1] - V c[2] (1 - Rc[0]) (1 - Rc[1]) (1- Rc[2]) Bc[0] Bc[1] Bc[2] = 2 2 = 2 = 255 = Rc[0] (1 - Rc[0]) Rci d) une étape (115) d'application des valeurs calculées à l'étape c) à un flux de données à coloriser, au moins un dit flux de données à coloriser représentant une image ou une expression, selon un filtre colorimétrique constitué de la manière suivante : filtre colorimétrique = Rf : Vf : Bf avec Rf étant défini par les valeurs de la matrice Rc[0] : Vc[0] : Bc[0], Vf étant défini par les valeurs de la matrice Rc[1] : Vc[1] : Bc[1], et Bf étant défini par les valeurs de la matrice Rc[2] : Vc[2] : Bc[2], le flux de données à coloriser devenant le flux de données colorisées, - e) une étape (120) de génération du flux de données colorisées pardessus au moins un des flux de données de l'étape a). 25 2. Procédé selon la revendication 1, dans lequel à l'étape b), si une valeur numérique d'une couleur est donnée en hexadécimal composée de six chiffres 22 mémorisés sur trois octets, ladite valeur est transformée en trois valeurs numériques dans l'espace colorimétrique RVB. 3. Procédé selon la revendication 1, dans lequel : 5 - l'étape b) (105) de manipulation comporte une deuxième couleur définit par trois valeurs numériques compris entre 0 et 255 dans l'espace colorimétrique RVB correspondant respectivement à la couleur Rouge, Vert et Bleu, la première valeur étant définie comme étant Rc2, la deuxième valeur étant définie comme étant Vc2, la troisième valeur étant 10 définie comme étant Bc2, l'étape c) est remplacée par une étape de calcul de la proportion de rouge, vert et bleu à partir des valeurs numériques Rci, Vci, Bci, Rc2, Vc2, et Bc2 pour une première couleur et une deuxième couleur issues de l'étape b) selon la matrice M2 suivante : 255 255 255 = Rc[O] Rej_ Vci 255 255 Bci = Rc[1] = Rc[2] Rc2 V c2 Bc2 = V c[0] = V e[1] = Vc[2] 255 1 - Rc[0] - V c[0] = Bc [0] 1 - Rc[1] - V c [1] = Bc[1] 1 - Rc[2] - Vc[2] = Bc[2] 15 4. Procédé selon la revendication 3, dans lequel : - l'étape b) (105) de manipulation comporte une quatrième valeur numérique alpha compris entre 0 et 1, la quatrième valeur étant défini comme étant Ac, 20 la matrice M1 de l'étape c) est remplacée par la matrice suivante : R c1 2 = Vc [0] (1 - Rc[0]) - Be [0] 2 0 = 1140] 2 = Vc[1] (1 - Rc [1]) - Bc[1] 2 0 = Ac[1] 2 = Vc [2] (1 - Rc[2]) = Bc[2] 2 0 = Ac[2] 0 = Rc[3] 0 = V c[3] 0 = Bc[3] 1 = Ac[3]_ 255 = Rc [0] (1 - Rc[0]) Val 255 = Rc[1] (1 - Rc[1]) 255 = Rc[2] (1- Rc[2]) et la matrice M2 de l'étape c) est remplacée par la matrice suivante : Vc1 255 = Rc[1] Vc2 R c1 255 = Rc[O] 255 = Vc[O] 1 - R c[0] - V c[0] = B c [0] 0 = Ac[O] 255 = Vc[1] 1 - Rc[1] - Vc[1] = Bc[1] 0 = Ac[1] Bc1 255 = Rc[2] Bc2 255 = Vc[2] 1 - Rc[2] - Vc[2] = Bc[2] 0 = Ac[2] 0 = R c [3] 0 = V c[3] 0 = Bc[3] 1 = Ac[3] Rc2 23 le filtre colorimétrique de l'étape d) est complété avec les valeurs de Ac soit : filtre colorimétrique = Rf : VI : Bf : Af avec Rf étant défini par les valeurs de la matrice Rc[0] : Vc[0] : Bc[0] : Ac[0], Vf étant défini par les valeurs 5 de la matrice Rc[1] : Vc[1] : Bc[1] : Ac[1], Bf étant défini par les valeurs de la matrice Rc[2] : Vc[2] : Bc[2] : Ac[2], Af étant défini par les valeurs de la matrice Rc[3] : Vc[3] : Bc[3] : Ac[3]. 5. Procédé selon la revendication 1, qui comporte : 10 - une étape (125) de manipulation d'un seul flux de travail formé à partir d'au mois un dit flux de données de l'étape a), dans un espace d'expression visé en trois dimensions spatiales plus le temps, au cours de cette étape il est utilisé une caméra virtuelle qui a soit : - une première capacité de réaliser des rotations selon les 15 trois axes, lesdits trois axes étant horizontal, vertical et profondeur, et est fixe sur lesdits trois axes, soit - une deuxième capacité de se mouvoir sur les trois axes, horizontal, vertical et profondeur et fixe sur les rotations desdits trois axes. 20 6. Procédé selon la revendication 5, qui comporte : - une étape (130) de gestion d'un environnement à 360° utilisant la première capacité de la caméra virtuelle et d'un flux de données en trois dimensions spatiales à partir d'un panorama ou d'une vidéo à 360°, au cours de cette étape (130) de gestion d'un environnement à 360° il est définit un point de départ P1(x1, y1 et z1), un point d'arrivé P2(x2, y2 et z2) sur ledit flux en trois dimensions spatiales, et un temps, - une étape (135) de calcul de positions intermédiaires, correspondant à différents points de vue de l'espace en trois dimensions spatiales plus le temps entre le point de départ et le point d'arrivé sur le flux en trois dimensions spatiales. 7. Procédé selon la revendication 6, qui comporte au cours de l'étape (135) du calcul des positions intermédiaires soit un écart identique entre les 24 différentes positions du flux en trois dimensions spatiales soit une augmentation du nombre des positions intermédiaires à proximité du point de départ et du point d'arrivé. 5 8. Procédé selon la revendication 5, qui comporte : - une étape (130) de gestion d'un environnement en trois dimensions utilisant au moins un objet planaire utilisant la deuxième capacité de la caméra virtuelle et d'un flux de données en deux dimensions spatiales à partir d'une vidéo ou d'une image, au cours de cette étape (130) de 10 gestion d'un environnement en trois dimensions utilisant au moins un objet planaire il est définit un point de départ P1(x1, y1 et z1), un point d'arrivé P2(x2, y2 et z2) sur ledit flux en deux dimensions spatiales, e un temps, - une étape (135) de calcul de positions intermédiaires, correspondant à 15 différents points de vue de l'espace en trois dimensions spatiales plus le temps entre le point de départ et le point d'arrivé sur le flux en deux dimensions spatiales. 9. Procédé selon la revendication 8, qui comporte au cours de l'étape (135) 20 du calcul des positions intermédiaires soit un écart identique entre les différentes positions du flux en deux dimensions spatiales soit une augmentation du nombre des positions intermédiaires à proximité du point de départ et du point d'arrivé. 25 10. Procédé selon l'une des revendications 6 ou 8, qui comporte - une étape de stockage du flux de données sur un serveur à distance, - une étape de rendu à partir des données stockées à distance et des informations du point de départ P1, du point d'arrivé P2 et du temps, ladite étape de rendu traite le calcul de chaque image sur le serveur 30 créant un environnement graphique selon la spécification OpenGL(marque déposée).