Brevet FR3083414A1 — 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 15 3. 2F -> 47 La traduction de #B8202F est donc RVBA(184, 32, 47, 1), l'alpha étant 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 20 chaque canal transposer les valeurs colorimétriques de nos utilisateurs en utilisant une image ou une expression, de type templates comprenant les 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 25 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 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. 30 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 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". 14 En plus des couleurs à transformer, nos templates peuvent contenir des tonalités de gris (du blanc au noir), les valeurs dans chaque canaux doivent ê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 5 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. Exemple pour une couleur : Un utilisateur sélectionne la couleur RVBA (80, 136, 207, 1) que nous 10 plaçons dans la variable C1. Cette variable est vue comme un tableau composé de quatre valeurs. 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 15 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 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. 20 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 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 25 dans l'espace colorimétrique RVBA. Le rouge des templates initiaux se transforme donc en nuance de couleurs lorsque l'on applique les proportions calculées. 15 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 5 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. 2 = Vc[0] Rouge Rc1 255 = Rc[0] (1 - Rc[0]) Vert Vc1 255 = Rc[1] (1 - Rc[1]) Rc Vc 2 = Vc[1] (1 - Rc[0]) - Bc[0] (1 - Rc[1]) Bc - Bc[1] 2 2 Ac 0 = Ac[0] 0 = Ac[1] Application au cas d'espèce : R [0.314 0.343 0.343 0 V 0.541 0.2295 0.2295 0 B A 0.812 0 0.094 0 0.094 0 0 1 Il reste à appliquer les valeurs calculées dans le filtre FFMPEG qui se 10 compose de la manière suivante : Rf = Rc[0] :Vc[0] :Bc[0] :Ac[0] 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] 15 Filtre colorchannelmixer = Rc:VC:Bc:Ac Filtre colorchannelmixer = 0.314 : 0.343 : 0.343 : 0 : 0.541 : 0.2295 : 0.2295 : 0 : 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. 20 Dans une variante non représentée, le procédé comporte une étape de stockage du flux de données sur un serveur à distance. 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 à Bc1 2 = Vc[2] (1- Rc[2]) = Bc[2] 2 0 = Ac[2] Alpha = Rc[3] 0 = Vc[3] 0 = Bc[3] 1 = Ac[3]_ Bleu 255 = Rc[2] (1 - Rc[2]) 16 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 Réalisons le même calcul que pour une seule couleur, avec le canal bleu en plus, soit la matrice suivante : Rci Vci Bel 0 = R c[3] 0 = Vc[3] Rc Rc 0 = Bc[3] 1 = Ac[3] = [0] Rc[1] [2] 255 255 = 255 = Rc2 Vc2 Bc2 Vc Vc Vc = [0] = [1] [2] 255 1 - Rc [1] - V c[1] = B c [1] 0 = Ac[1] 2 = 1 - R c[0] - V c [0] = B c[0] 0 = Ac[0] 55 1 - R c[2] - V c [2] = Bc [2] 0 = Ac[2] 5 Application au cas d'espèce : B A R V 0.314 0.541 0.812 0 0.812 0.314 0.675 0 0 -0.126 0.145 -0.487 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. 10 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 15 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 20 - 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 17 - 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 à 360° utilisant la 5 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, 10 - 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. Au cours de l'étape (135) du calcul des positions intermédiaires soit un écart 15 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é. 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 20 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 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 25 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 profondeur, et est fixe sur lesdits trois axes, soit - une deuxième capacité de se mouvoir sur les trois axes, 30 horizontal, vertical et profondeur et fixe sur les rotations desdits trois axes. - 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 à 18 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 d'arrivé P2(x2, y2 et z2) sur ledit flux en deux dimensions spatiales, et un 5 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 dimensions spatiales. 10 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é. Dans un exemple, le procédé comporte 15 - 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 créant un environnement graphique selon la spécification 20 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. 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 25 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 réalisation particulier du procédé de montage audiovisuel objet de la présente invention. 30 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 rapprochement dans la texture se réalise à l'aide de la distance focale, celle-ci permettant un aspect photographique fidèle. 19 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 même distance de chaque point la composant. L'utilisateur va alors jouer sur 5 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 image du rush final, une position intermédiaire entre P1 et P2 est calculée. La 10 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, 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. 15 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. 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. 20 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 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. 25 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 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 30 l'image qu'il souhaite rendre. La figure 5 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. 20 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 dite "Linéaire " ou "ease-in-out ". Comme pour les panoramas, les étapes 5 intermédiaires sont calculées permettant la composition du rush vidéo final. 21 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 (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 trois axes, lesdits trois axes étant horizontal, vertical et profondeur, et est fixe sur lesdits 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 défini un point de dépat 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. - Soit une deuxième capacité de se mouvoir sur les trois axes, horizontal, vertical et profondeur et est fixe sur les rotations desdits trois axes, - 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 23 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éfini un point de 5 départ P1(x1, y1 et z1), un point 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 10 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. 2. Procédé selon la revendication 1, pour la première capacité qui comporte 15 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é. 20 3. Procédé selon la revendication 1, pour la deuxième capacité qui comporte 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é. 25 4. Procédé selon la revendication 1, 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, 30 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). 5. Procédé selon la revendication 1, qui comporte : 24 - une étape (105) de manipulation d'une première couleur définie par trois valeurs numériques comprises 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 5 valeur étant défini comme étant Vc1, la troisième valeur étant défini comme étant Bc1, - une étape (110) de calcul de la proportion de rouge, vert et bleu à partir des valeurs numériques Rc1, Vc1, et Bc1 pour une première couleur issue de l'étape b) selon la matrice M1 suivante : Rci Vci Bci Rc[0] Rc[2] = = 255 Rc[1] 255 (1 - Rc[0]) (1 - Rc[1]) (1- Rc[2]) V V = = c[0] = c[1] Vc[2] 2 2 2 (1 - Rc[0]) (1 - Rc[1]) (1- Rc[2]) = - B - Bc[2] Bc[O] 2 2 2 10 - 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éfinie par les 15 valeurs de la matrice Rc[0] : Vc[0] : Bc[0], Vf étant définie par les valeurs de la matrice Rc[1] : Vc[1] : Bc[1], et Bf étant définie 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, - une étape (120) de génération du flux de données colorisées par-dessus 20 au moins un des flux de données de l'étape (105) de manipulation d'une première couleur. 6. Procédé selon la revendication 1, dans lequel à l'étape (105) de manipulation d'une première couleur, si une valeur numérique d'une couleur est 25 donnée en hexadécimal composée de six chiffres mémorisés sur trois octets, ladite valeur est transformée en trois valeurs numériques dans l'espace colorimétrique RVB. 30 25 7. Procédé selon la revendication 5, dans lequel : l'étape (105) de manipulation comporte une deuxième couleur définie par trois valeurs numériques comprises entre 0 et 255 dans l'espace colorimétrique RVB correspondant respectivement à la couleur Rouge, 5 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 définie comme étant Bc2, l'étape (110) de calcul de la proportion est remplacée par une étape de calcul de la proportion de rouge, vert et bleu à partir des valeurs 10 numériques Rc1, Vc1, Bc1, Rc2, Vc2, et Bc2 pour une première couleur et une deuxième couleur issues de l'étape b) selon la matrice M2 suivante : Rc1 255 = Vc[0] 255 = Vc[1] 1 - Rc[0] - Vc[0] = Bc[0] 1 - Rc[1] - Vc[1] = Bc[1] 1 - Rc[2] - V c[2] = Bc[2] = Rc[0] 255 255 Rc2 Vc2 VC) = Rc[1] 255 = Rc[2] Bc2 255 = Vc[2] Bc1 8. Procédé selon la revendication 7, dans lequel : l'étape (105) de manipulation comporte une quatrième valeur numérique 15 alpha comprise entre 0 et 1, la quatrième valeur étant définie comme étant Ac la matrice M1 de l'étape (110) de calcul de la proportion est remplacée par la matrice suivante : Rc, Vci Bc1 0 = Rc[3] = 0 = V c[3] 0 = Bc[3] 1 = Ac[3]_ Rc[0] Rc[1] Rc[2] 255 = 255 255 = (1 - Rc[0]) (1 - Rc[1]) (1 - Rc[2]) V - V Vc c [0] c [1] [2] 2 2 2 = (1 - Rc[0]) (1 - Rc[1]) (1 - Rc[2]) Bc 8 = [0] = 41] Bc[2] 2 2 2 = 0 = Ac [0] 0 = Ac[1] 0 = Ac[2] et la matrice M2 de l'étape(110) de calcul de la proportion est remplacée 20 par la matrice suivante : 255 Rc2 255 = 1 - Rc[0] - Vc[O] = Rc[0] 0 = Ac[0] Rc1 = Rc[0] Vc1 Bc]. 255 = Rc[1] Vc2 = Vc[1] 255 255 1 - Rc[1] - Vc[1] = Bc[1] 1 - Rc[2] - Vc[2] = Bc[2] 0 = Ac[1] 0 = Ac[2] 0 = Rc[3] 0 = Vc[3] 0 = Bc[3] 1 = Ac[3] 255 = Rc[2] Bc2 = Vc[2] le filtre colorimétrique de l'étape d) est complété avec les valeurs de Ac soit : 26 filtre colorimétrique = Rf : Vf : Bf : Af avec Rf étant définie par les valeurs de la matrice Rc[0] : Vc[0] : Bc[0] : Ac[0], Vf étant définie par les valeurs de la matrice Rc[1] : Vc[1] : Bc[1] : Ac[1], Bf étant définie par les valeurs de la matrice Re[2] : Vc[2] : Bc[2] : Ac[2], Af étant définie par les valeurs 5 de la matrice Rc[3] : Vc[3] : Bc[3] : Ac[3].