INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
La illustre un exemple de configuration de hachage partiel d’une image 300. Bien que dans l’exemple de la l’image 300 est composée de 100 pixels agencés sur 10 lignes et 10 colonnes, toute taille et format d’image est possible. En effet, dans la pratique, les images capturées par le capteur d’image 102 sont de taille importante, par exemple plusieurs milliers de pixels de largeur et de longueur. L’image 300 est un agencement de pixels à des positions de pixels correspondantes, et chaque pixel est associés à une ou plusieurs données de pixels correspondantes. Par exemple, l’une ou plusieurs données de pixel définissent une valeur de luminance, une valeur de chrominance, et/ou d’autres valeurs. Les données de pixel des pixels composant l’image 300 ne sont pas illustrées en .
Un exemple de configuration de hachage de l’image 300 consiste à hacher uniquement des groupes 302 de pixels consécutifs (illustrés en noir) et à ne pas hacher des groupes 304 de pixels consécutifs (illustrés en blanc). Dans l’exemple de la , les groupes 302 et 304 ont la même taille, et chaque groupe est composé de deux pixels. Dans d’autres modes de réalisation, les groupes 302 et 304 sont de taille différente, et/ou le nombre de pixels dans chaque groupe est différent de deux.
A titre d’exemple, l’image 300 est traitée ligne par ligne et la configuration de hachage partiel illustrée en consiste donc à hacher les deux premiers pixels de la première ligne, puis à ne pas hacher les deux pixels suivants ainsi de suite jusqu’à la fin de la première ligne. Les deux premiers pixels de la deuxième ligne ne seront pas hachés, les deux pixels suivants seront hachés et ainsi de suite jusqu’à la fin de la deuxième ligne, puis jusqu’à la fin de l’image 300. Dans l’exemple de la , pour deux configurations de hachage différentes, les positions des pixels à hacher dans l’image diffèrent. Autrement dit, certaines positions de pixels à hacher dans une première configuration de hachage ne sont pas à hacher dans une deuxième configuration de hachage. Par exemple, le nombre de pixels dans chaque groupe 302 à hacher varie entre les première et deuxième configurations, et/ou le nombre de pixels dans chaque groupe 304 varie entre les première et deuxième configurations.
La représente un flux de paquets 400 d’une image et illustre un exemple de configuration de hachage.
Selon le mode de réalisation représenté par la , chaque image du flux vidéo est composée de plusieurs paquets de données, et la taille des paquets de données est programmable. Par exemple, en référence à la , le processeur 108 est configuré pour générer les paquets de données de chaque image avec une certaine taille en termes du nombre de pixels représentés par le paquet. Le circuit de contrôle 208a est par exemple configuré pour commander la taille des paquets générés par le processeur 108 selon la configuration à appliquer. Uniquement certains paquets sont ensuite sélectionnés, par les circuits de sélection 210a, 210b pour être hachés.
Dans la , une séquence de paquets d’une image est représentée, les paquets en noir étant des paquets qui ne sont pas hachés, et les paquets en blanc étant des paquets qui sont hachés.
L’exemple de configuration de hachage du flux de paquets 400 comprend, par exemple, un premier paramètre décrivant un décalage initial correspondant à la taille d’un premier paquet 401. Le premier paquet 401 est le premier paquet composant le flux de paquet 400 et n’est pas haché. La configuration de hachage partiel comprend par exemple un deuxième paramètre définissant la taille des paquets à hacher 402 ainsi qu’un troisième paramètre définissant la taille des paquets à ne pas hacher 404, autrement dit la taille des paquets à sauter entre deux hachages de paquets 402. Dans l’exemple de la , le décalage initial 401, la taille des paquets 402 et/ou la taille des paquets 404, varient d’une configuration à l’autre.
Les paramètres de la configuration décrite en relation avec sont présentés à titre d’exemple et ne sont pas limitatifs, d’autres types de paramètres sont bien sûr envisageables. Par exemple, il serait possible que, dans d’autres modes de réalisation : - la taille du premier paquet 401 soit fixe pour chaque image du flux vidéo ; et/ou - la taille des paquets à hacher soit fixe pour chaque image du flux vidéo, et uniquement la taille des paquets à ne pas hacher soit variable ; ou - la taille des paquets à ne pas hacher soit fixe pour chaque image du flux vidéo, et uniquement la taille des paquets à hacher soit variable.
De plus, dans d’autre modes de réalisation, la taille des paquets générés par le processeur 108 est fixe, et les circuits de sélection 210a, 210b sont configurés pour sélectionner, sur contrôle des circuits 208a, 208b, le nombre de paquets consécutifs qui sont hachés, et/ou le nombre de paquets consécutifs qui ne sont pas hachés.
La représente, de façon très schématique et sous forme de blocs, un dispositif 100 configuré pour capturer et traiter un flux vidéo. Par exemple, le dispositif 100 fait partie d’une automobile et est configuré pour capturer et enregistrer, par l’intermédiaire d’un capteur d’image 102 (IMAGE SENSOR), l’environnement de l’automobile. Dans un autre exemple, le dispositif 100 fait partie d’un centre de contrôle et est par exemple configuré pour détecter, via le flux vidéo enregistré par le capteur d’image 102, le passage d’individus dans une rue ou dans un bâtiment.
Le capteur d’image 102 est relié, par l’intermédiaire d’un bus 104, à une unité de traitement 106 (IMAGE PROCESSING DEVICE). L’unité de traitement 106 est par exemple configuré pour traiter les images du flux vidéo capturé par le capteur d’image 102. Dans le cas d’une application automobile, l’unité de traitement 106 est par exemple une unité de contrôle dans un véhicule (de l’anglais «ECU - Electronic Control Unit »). Dans cet exemple, l’unité de traitement 106 est par exemple configurée pour détecter des obstacles dans le flux vidéo, afin d’alerter le conducteur ou d’appliquer les freins de façon automatique. Dans une autre application, lorsque le dispositif 100 est installé dans un centre de contrôle d’entrée dans un bâtiment sécurisé, l’unité de traitement 106 est par exemple configurée pour détecter des mouvement et/ou pour implémenter un algorithme de reconnaissance faciale dans le flux vidéo. Dans ces applications, il est important que les images du flux vidéo transmis par le capteur d’image 102 à l’unité de traitement 106 ne soient pas falsifiées ou modifiées, et donc que l’intégrité de ces images soit vérifiée.
Le capteur d’image 102 comprend par exemple une matrice de pixels 107 (PIXEL ARRAY), configurée pour capturer des images formant le flux vidéo. Le flux vidéo capturé par la matrice de pixels 107 est par exemple fourni à un processeur 108 (ISP), intégré au capteur d’image 102. Le processeur 108 est par exemple un processeur de signal d’images (ISP - de l’anglais « Image Signal Processor ») comprenant un ou plusieurs processeurs configurés pour exécuter des logiciels, et/ou des circuit dédiés, implémentant les fonctions du processeur 108. Le processeur 108 est par exemple configuré pour recevoir des images brutes captées par la matrice de pixels 107, et utilise, par exemple, les données associées à chaque pixel pour générer des images traitées prêtes pour être envoyée vers l’unité de traitement 106. Dans d’autres modes de réalisation, le capteur d’image 102 transmet les images brutes, sans traitement, vers l’unité de traitement 106.
Le bus 104 est par exemple relié à une mémoire tampon 110 (IMAGE BUFFER) de l’unité de traitement 106, qui reçoit le flux vidéo, et stocke les images temporairement avant qu’elles soient traitées par d’autres processeurs/circuits (non illustrés dans la ) de l’unité de traitement 106.
Le capteur d’image 102 comprend un circuit de hachage 113a (HASHING CIRCUIT), configuré pour générer des valeurs de hachages à partir des images du flux vidéo, et pour transmettre ces valeurs de hachage sur un bus 115a vers un comparateur 117 (COMPARISON CIRCUIT) de l’unité de traitement 106. L’unité de traitement 106 comprend également un circuit de hachage (HASHING CIRCUIT) 113b configuré pour générer des valeurs de hachages à partir des images du flux vidéo reçues par le bus 104, et pour fournir ces valeurs de hachage au comparateur 117, par l’intermédiaire d’un bus 115b.
A titre d’exemple, les deux circuits de hachage 113a, 113b mettent en œuvre un même algorithme de hachage, tel que le SHA-2 (de l’anglais « Secure Hash Algorithm »). D’autres types d’algorithmes de hachage peuvent bien sûr être mis en œuvre par les circuits de hachage 113a, 113b.
A titre d’exemple, le bus de données 104 transmet les images composant le flux vidéo à une vitesse d’environ 600 Mpx par seconde, soit environ 750 MBytes par secondes. Une telle vitesse ne permet pas, par exemple, au capteur d’image 102 de hacher les images reçues dans leur totalité tout en tenant la cadence du flux vidéo. En effet, les algorithmes de hachage, y compris le SHA-2, ne permettent pas une implémentation parallélisée afin d’augmenter la vitesse de traitement. La limitation peut également être due à une limitation de vitesse de traitement dans le circuit de hachage 113b de l’unité de traitement 106.
Une solution consiste à hacher uniquement une partie des images du flux vidéo. En particulier, afin de pouvoir hacher, de manière partielle, les images du flux vidéo généré par le capteur d’image 102, la quantité de donnée à hacher est d’abord réduites par un circuit de réduction de données 111a (DATA REDUCTION CIRCUIT) implémenté, par exemple, entre le processeur 108 et le circuit de hachage 113a. Un circuit de réduction de données 111b est également implémenté du côté de l’unité de traitement 106, par exemple entre le bus 104 et le circuit de hachage 113b. Les circuits de réduction de données 111a, 111b sont par exemple configurés pour ne sélectionner que certains pixels, ou groupes de pixels, des images pour être hachés. La puissance de traitement demandée aux circuits de hachages peut donc être réduite.
Les circuits de réduction de données 111a, 111b génèrent par exemples des image partielles, chaque image partielle étant composée uniquement d’une partie des pixels de l’image originale à partir de laquelle elle est générée. Les images partielles sont alors hachées par les circuits de hachage 113a, 113b. A titre d’exemple, le nombre de pixels à hacher dans chaque image partielle représente entre 20% et 80% du nombre total de pixels de l’image d’origine, de préférence environs 25%. Dans le cas où le nombre de pixels à hacher représente 25% du nombre total de pixels, la vitesse de transmission des données d’images vers le circuit de hachage 113 est alors réduite à environ 150 Mpxls par seconde, soit environ 190 MBytes par seconde.
Pour chaque image traitée, une valeur de hachage générée par le circuit de hachage 113a du côté du capteur d’image 102 et une valeur de hachage générée par le circuit de hachage 113b du côté de l’unité de traitement 106 sont transmises, par les bus de données 115a et 115b respectivement, vers le comparateur 117. Le comparateur 117 est configuré pour comparer les deux valeurs de hachage.
Dans le cas où les deux valeurs de hachage diffèrent, cela sous-entend que l’image reçue par l’unité de traitement 106, après réduction par le circuit de réduction 111b, n’est pas la même que l’image sortante du processeur d’image 108, après réduction par le circuit de réduction 111a. L’image a par exemple été falsifiée par un attaquant extérieur. A titre d’exemple, lorsque le comparateur 117 détecte une différence entre les deux valeurs de hachage, les images provenant du capteur d’image 102 sont par exemple ignorées, ou supprimées, par l’unité de traitement 106.
Si les parties des images sélectionnées par les circuits de réduction de données 111a, 111b pour être hachées sont les mêmes pour toutes les images, il sera possible pour un attaquant de déduire, à partir de plusieurs images partiellement hachées, quelles sont les parties des images protégées par hachage, et quelles sont les parties non protégées. Ainsi, un attaquant peut falsifier les parties non protégées du flux vidéo. Une solution qui consiste à varier la sélection de pixels à hacher par les circuits de réduction de données 111a, 111b, comme cela va maintenant être décrit plus en détail en relation avec la .
La représente, de façon très schématique et sous forme de blocs, le dispositif 100, et représente en particulier les circuits de réduction de données 111a, 111b plus en détail.
Les circuits de réduction de données 111a, 111b du capteur d’image 102 et de l’unité de traitement 106 comprennent, chacun, un circuit de contrôle 208a, 208b (CTRL CIRCUIT), relié, par exemple par des bus de contrôle, à des circuits de sélection de pixels ou paquets 210a et 210b (PIXEL/PACKET SELECTION). Les circuits de contrôle 208a et 208b sont, par exemple, reliés entre eux par un bus 212. Bien que les circuits de contrôle 208a et 208b sont reliés entre eux par un bus de contrôle 212 dans la , dans d’autres modes de réalisation, il serait possible qu’aucun bus ne soit présent, pourvu que les programmations des circuits de réduction de données 111a et 111b soient cohérentes entre elles.
Dans certains modes de réalisation, décrits plus en détail ci-dessous, le circuit 111a comprend en outre un générateur de nombres pseudo-aléatoires 211a (PRNG), et de façon similaire le circuit 111b comprend en outre un générateur de nombres pseudo-aléatoires 211b (PRNG), les générateurs 211a, 211b étant implémentés de la même manière et utilisent une même racine de comptage de manière à reproduire un même nombre de part et d’autre des générateurs de nombres 211a et 211b.
Côté capteur d’image 102, le circuit de sélection de pixels ou paquets 210a reçoit le flux vidéo du bus 104, et fournit les images partielles au circuit de hachage 113a. De façon similaire, côté unité de traitement 106, le circuit de sélection de pixels ou paquets 210b reçoit le flux vidéo du bus 104, et fournit les images partielles au circuit de hachage 113b.
Les alcools gras sont bien connus dans l’art, et incluent les alcools aliphatiques, par exemple, les alcools primaires ayant une chaîne de carbone d’environ 8 à environ 30 atomes de carbone, de préférence d’environ 12 à environ 22 atomes de carbone. Des exemples non limitatifs d’alcools gras incluent l’alcool décylique, l’alcool undécylique, l’alcool dodécylique, l’alcool myristylique, l’alcool laurique, l’alcool cétylique, l’alcool stéarylique, l’alcool cétéarylique (alcool cétylique et alcool stéarylique), l’alcool isostéarylique, l’alcool isocétylique, l’alcool béhénylique, le linalool, l’alcool oléylique, le cis-4-t-butylcyclohexanol, l’alcool isotridécylique, l’alcool myricylique et un mélange de ceux-ci. Dans certains cas, les alcools gras comprennent au moins un des composés suivants, ou peuvent être choisis parmi ceux-ci : alcool myristylique, alcool laurique, alcool cétylique, alcool stéarylique, alcool cétéarylique, alcool isostéarylique, alcool oléylique, alcool isotridécylique, et un mélange de ceux-ci.
Des composés gras autres que les alcools gras mentionnés ci-dessus peuvent facultativement être inclus dans les compositions de traitement des cheveux. Le terme « composé gras » est interchangeable avec le terme « matière grasse ». Comme cela est bien connu dans l’art, les composés gras sont des composés qui ne sont pas solubles (ou seulement peu solubles dans l’eau ; ils sont hydrophiles et peuvent souvent être solubilisés dans des solvants organiques). Ils incluent des matières telles que des huiles, des graisses, des cires, des hydrocarbures, des esters gras, des acides gras, etc. Des exemples non limitatifs de composés gras utiles incluent les huiles, les cires, les alcanes (paraffines), les acides gras, les esters gras, les composés triglycérides, la lanoline, les hydrocarbures, leurs dérivés et leurs mélanges.
Dans divers modes de réalisation, les compositions de traitement des cheveux incluent à la fois : (d) un ou plusieurs alcools gras ; et (e) un ou plusieurs composés gras autres que des alcools gras. Le rapport pondéral entre le (d) un ou plusieurs alcools gras et le (e) un ou plusieurs composés gras autres que des alcools gras peut varier. Néanmoins, dans certains modes de réalisation, le rapport pondéral est compris entre environ 2:1 et environ 15:1, de préférence entre environ 3:1 et environ 10:1, de manière davantage préférée entre environ 4:1 et environ 8:1.
Dans divers modes de réalisation, les compositions de traitement des cheveux incluent : (f) un ou plusieurs solvants solubles dans l’eau. Des exemples non limitatifs de solvants solubles dans l’eau utiles incluent la glycérine, les mono-alcools en C 1-6 , les polyols (alcools polyhydriques), les glycols et un mélange de ceux-ci. Dans certains modes de réalisation, il est préférable que la composition de traitement des cheveux inclue au moins de la glycérine, un ou plusieurs mono-alcools en C 1-6 , ou un mélange de ceux-ci.
Dans divers modes de réalisation, la composition de traitement des cheveux inclut : (g) un ou plusieurs polymères épaississants non ioniques. Des exemples non limitatifs de polymères épaississants non ioniques utiles incluent la gomme de guar, les dérivés de guar, la gomme de cellulose, les dérivés de cellulose, l’amidon, les dérivés d’amidon, les polysaccharides, les dérivés de polysaccharide, les homopolymères et copolymères d’oxyde d’éthylène ayant une masse molaire égale ou supérieure à 10 000 g/mol, les polyalcools vinyliques, les homopolymères et copolymères de vinylpyrrolidone, les homopolymères et copolymères de vinylcaprolactame, les homopolymères et copolymères de polyvinylméthyléther, et leurs mélanges. Dans certains modes de réalisation, la gomme de guar et/ou les dérivés de guar (par exemple l’hydroxypropylguar) sont particulièrement utiles.
Dans divers modes de réalisation, la composition de traitement des cheveux inclut : (h) un ou plusieurs agents de conditionnement. Des exemples non limitatifs d’agents de conditionnement incluent les polymères cationiques et les silicones. Dans certains modes de réalisation, les compositions de traitement des cheveux incluent un ou plusieurs polymères cationiques. Des exemples non limitatifs de polymères cationiques incluent les dérivés cationiques de la cellulose, l’hydroxyéthylcellulose quaternisée (par ex, polyquaternium-4, polyquaternium-10, polyquaternium-24, etc.), des dérivés d’amidon cationiques, des dérivés de gomme de guar cationiques, des protéines cationiques et des hydrolysats de protéines cationiques, des polymères de diammonium quaternaires, des copolymères d’acrylamide et de chlorure de diméthyldiallyammonium, des polyquaterniums (par exemple, le polyquaternium-10) et un mélange de ceux-ci.
Dans certains modes de réalisation, les compositions de traitement des cheveux incluent un ou plusieurs silicones. Des exemples non limitatifs de silicones incluent le diméthicone, le diméthiconol, le cyclométhicone, le polysilicone-11, le phényl triméthicone, l’amodiméthicone, le bis-cétéaryl amodiméthicone, et un mélange de ceux-ci.
Les compositions de traitement des cheveux de la présente divulgation, dans divers modes de réalisation, font partie d’un nécessaire, par exemple, un nécessaire comprenant une ou plusieurs compositions de traitement des cheveux selon la présente divulgation et une ou plusieurs compositions de traitement des cheveux supplémentaires, chacune des une ou plusieurs compositions de traitement des cheveux (et chacune des compositions de traitement des cheveux supplémentaires) étant contenue séparément. Par exemple, dans certains modes de réalisation, les nécessaires comprennent : (i) une ou plusieurs compositions de traitement des cheveux selon la présente divulgation ; et (ii) une ou plusieurs compositions de traitement des cheveux supplémentaires choisies parmi les compositions nettoyantes pour les cheveux (shampooings), les compositions de conditionnement des cheveux (conditionneurs), et les compositions de traitement des cheveux pour traiter chimiquement les cheveux comprenant un ou plusieurs agents chimiquement actifs qui traitent chimiquement les cheveux.
Les compositions de traitement des cheveux sont particulièrement utiles dans les procédés de traitement des cheveux, par exemple les procédés de restructuration, de réparation, de renforcement et/ou de protection des cheveux. Ces procédés permettent de réparer, de minimiser, d’atténuer et/ou de compenser les dommages causés aux cheveux par des traitements chimiques (par exemple, décoloration, coloration, lissage, bouclage, etc.) Les procédés concernent également la prévention, la minimisation, l’atténuation et le traitement des cheveux vulnérables aux dommages (ou déjà endommagés) par des facteurs environnementaux (par exemple, l’eau dure, les dommages causés par le soleil, le chlore, etc.) et aux dommages causés par le coiffage des cheveux, par exemple, avec de la chaleur (par exemple, le séchage au sèche-cheveux, les fers à repasser chauds, etc.)
Les procédés incluent l’application d’une ou plusieurs compositions de traitement des cheveux de la présente divulgation sur les cheveux. La ou les compositions de traitement des cheveux peuvent être appliquées temporairement sur les cheveux (par exemple, appliquées pendant une période d’environ 1 heure ou moins et rincées des cheveux), ou peuvent être appliquées sur les cheveux et laissées sur les cheveux pendant une période plus longue avant d’être rincées des cheveux (par exemple, pendant environ 2 minutes, 5 minutes, 10 minutes, 20 minutes, 30 minutes ou plus). Dans les cas où la composition de traitement des cheveux est rincée des cheveux peu de temps après l’application (immédiatement après l’application ou dans les 2, 5, 10, 20, 30 minutes ou plus) avant de coiffer les cheveux, la composition de traitement des cheveux est un produit « à rincer ». Dans certains modes de réalisation, les compositions de traitement des cheveux sont appliquées sur les cheveux et peuvent rester indéfiniment sur les cheveux, par exemple, elles peuvent rester sur les cheveux sans être rincées avant le coiffage des cheveux, c’est-à-dire que la composition de traitement des cheveux est un produit « sans rinçage ». Les procédés sont particulièrement bien adaptés à l’application aux cheveux traités chimiquement, aux cheveux devant être soumis à un traitement chimique, aux cheveux endommagés et aux cheveux naturels, par exemple pour améliorer la force, le lustre, la brillance et/ou l’élasticité des cheveux, etc.
Les compositions de traitement des cheveux du présent cas sont particulièrement avantageuses car elles peuvent être un produit autonome (utilisé indépendamment) ou peuvent être utilisées dans des procédés qui combinent les compositions de traitement des cheveux de la présente divulgation avec une composition de traitement des cheveux indépendante pour traiter chimiquement les cheveux (c’est-à-dire une composition de traitement des cheveux comprenant un ou plusieurs agents chimiquement actifs qui traitent chimiquement les cheveux). Des exemples non limitatifs de compositions de traitement des cheveux pour traiter chimiquement les cheveux incluent des compositions de décoloration, des compositions de lissage ou de bouclage des cheveux, des compositions de défrisage ou de texlaxage des cheveux, et similaires. Les compositions de traitement des cheveux du cas présent peuvent être combinées avec (ajoutées à) un ou plusieurs composants d’une composition de traitement des cheveux pour le traitement chimique des cheveux. Par exemple, si la composition de traitement des cheveux pour le traitement chimique des cheveux est une composition décolorante, les compositions de traitement des cheveux du cas présent peuvent être ajoutées à un composant révélateur, peuvent être ajoutées à un composant décolorant, ou peuvent être combinées à un mélange du composant révélateur et du composant décolorant. De même, les compositions de mise en forme des cheveux (pour la permanente, le défrisage et/ou le lissage des cheveux) nécessitent souvent plus d’un composant (par exemple, un composant défrisant, un composant activateur, un composant neutralisant, etc.) Les compositions de traitement des cheveux de la présente divulgation peuvent inclure un ou plusieurs (ou tous) de ces composants.