Procédé de codage d’un hologramme numérique, procédé de codage d’un groupe d’hologrammes numériques et dispositif de codage associé
Domaine technique de l'invention
La présente invention concerne le domaine technique de l’holographie numérique.
Elle concerne en particulier un procédé de codage d’un hologramme numérique, un procédé de codage d’un groupe d’hologrammes numériques et un dispositif de codage associé.
Etat de la technique
L’article "3D scanning-based compression technique for digital hologram video " de Y.-H. Seo, J. -J. Choi et D.-W. Kim in Signal Processing: Image Communication, vol. 22, n° 2, pages 144-156, fév. 2007 décrit un procédé de codage d’un groupe d’hologrammes numériques comprenant des étapes de segmentation de chaque hologramme en segments, d’application d’une transformation espace-fréquence à chacun des segments et de parcours des différents segments en vue de leur codage.
Cette approche permet d’obtenir une compression correcte lorsque la dimension des blocs est faible comparée à la distance séparant la scène représentée par l’hologramme et le plan de définition de l’hologramme. Seulement dans ce cas en effet les segments transformés présenteront des redondances entre coefficients voisins permettant un codage efficace.
Présentation de l'invention
Dans ce contexte, la présente invention propose un procédé de codage d’un hologramme numérique représenté par des valeurs respectivement associées à des pixels d’un plan de définition de l’hologramme numérique, comprenant les étapes suivantes :
- formation de blocs matriciels respectivement associés à des régions formées de pixels contigus, chaque bloc matriciel contenant des éléments déterminés en fonction des valeurs des pixels de la région associée au bloc matriciel concerné ;
- application à chacun des blocs matriciels d’une transformation espace- fréquence de sorte à obtenir, pour chaque bloc matriciel, un ensemble de coefficients correspondant respectivement à différentes fréquences spatiales bidimensionnelles au sein du bloc matriciel concerné ;
- construction d’une pluralité de structures bidimensionnelles comprenant, chacune, des coefficients issus d’une pluralité d’ensembles de coefficients et associés à des fréquences spatiales bidimensionnelles respectant un critère dépendant de la structure bidimensionnelle concernée ;
- codage des structures bidimensionnelles construites.
La réorganisation des coefficients au sein des différentes structures bidimensionnelles permet de rapprocher des coefficients ayant une signification comparable au sein de l’hologramme numérique, bien qu’initialement placées dans des ensembles de coefficients distincts. L’efficacité du codage (lequel est appliqué à ces structures bidimensionnelles) s’en trouve améliorée.
D’autres caractéristiques non limitatives et avantageuses du procédé de codage prises individuellement ou selon toutes les combinaisons techniquement possibles, sont les suivantes :
- les structures bidimensionnelles sont construites en regroupant, dans chaque structure bidimensionnelle, les coefficients issus desdits ensembles de coefficients et correspondant à une fréquence spatiale bidimensionnelle associée à la structure bidimensionnelle concernée ;
- les structures bidimensionnelles sont construites en regroupant, dans chaque structure bidimensionnelle, les coefficients issus desdits ensembles de coefficients et correspondant à une plage bidimensionnelle de fréquences spatiales bidimensionnelles associée à la structure bidimensionnelle concernée ;
- les régions sont obtenues par segmentation dudit plan, les différents éléments d’un bloc matriciel étant respectivement les valeurs des pixels de la région associée à ce bloc matriciel ;
- les structures bidimensionnelles construites sont codées au moins en partie au moyen d’un algorithme de codage d’image ;
- cet algorithme de codage d’image prend en tant qu’imagé d’entrée une structure bidimensionnelle particulière, ou une matrice formée de l’amplitude ou de la phase des coefficients d’une structure bidimensionnelle particulière (et ce, successivement pour différentes structures bidimensionnelles) ;
- les valeurs des pixels de l’hologramme sont réelles ;
- les valeurs des pixels de l’hologramme sont complexes ;
- les coefficients compris dans les structures bidimensionnelles étant complexes, l’étape de codage des structures bidimensionnelles utilise un premier processus de codage de l’amplitude desdits coefficients au moyen d’un algorithme de codage d’image, et un second processus de codage de la phase desdits coefficients.
L’invention propose également un procédé de codage d’un groupe d’hologrammes numériques, dans lequel chaque hologramme numérique dudit groupe est codé au moyen d’un procédé de codage tel que proposé ci-dessus, et dans lequel les différentes étapes de codage de structures bidimensionnelles mises en œuvre au cours des différents procédés de codage sont réalisées selon une séquence prédéfinie au sein des différents hologrammes numériques dudit groupe.
L’invention propose enfin un dispositif de codage d’un hologramme numérique représenté par des valeurs respectivement associées à des pixels d’un plan de définition de l’hologramme numérique, ce dispositif de codage comprenant :
- un module de formation de blocs matriciels respectivement associés à des régions formées de pixels contigus de façon que chaque bloc matriciel contienne des éléments déterminés en fonction des valeurs des pixels de la région associée au bloc matriciel concerné ;
- un module d’application d’une transformation espace-fréquence à chacun des blocs matriciels de sorte à obtenir, pour chaque bloc matriciel, un ensemble de coefficients correspondant respectivement à différentes fréquences spatiales bidimensionnelles au sein du bloc matriciel concerné ;
- un module de construction d’une pluralité de structures bidimensionnelles comprenant, chacune, des coefficients issus d’une pluralité d’ensembles de coefficients et associés à des fréquences spatiales bidimensionnelles respectant un critère dépendant de la structure bidimensionnelle concernée ;
- un module de codage des structures bidimensionnelles construites.
Bien entendu, les différentes caractéristiques, variantes et formes de réalisation de l'invention peuvent être associées les unes avec les autres selon diverses combinaisons dans la mesure où elles ne sont pas incompatibles ou exclusives les unes des autres.
Description détaillée de l'invention
De plus, diverses autres caractéristiques de l'invention ressortent de la description annexée effectuée en référence aux dessins qui illustrent des formes, non limitatives, de réalisation de l'invention et où :
- la figure 1 représente schématiquement les éléments principaux d’un exemple de dispositif de codage conforme à l’invention ;
- la figure 2 illustre un exemple envisageable pour la formation de blocs matriciels au sein d’un hologramme numérique ;
- la figure 3 illustre la construction de structures bidimensionnelles à partir d’ensembles de coefficients ;
- la figure 4 est un logigramme montrant les étapes d’un exemple de procédé de codage conforme à l’invention ; et
- la figure 5 représente les éléments principaux d’un exemple de dispositif électronique pouvant former un dispositif de codage conforme à l’invention.
La figure 1 représente les principaux éléments d’un exemple de dispositif de codage conforme à l’invention.
Ce dispositif de codage comprend différents modules 10, 12, 14, 16, 18 décrits ci-dessous. Ce dispositif de codage est par exemple mis en œuvre au moyen d’une architecture à processeur, comme par exemple décrit ci-dessous en référence à la figure 5. Dans une telle architecture, les différents modules 10, 12, 14, 16, 18 peuvent être chacun réalisés par la coopération du processeur et d’instructions de programme d’ordinateur mémorisées par exemple dans une mémoire du dispositif de codage (telle que la mémoire 6 du dispositif électronique 2 représenté en figure 5) et conçues pour mettre en œuvre les fonctionnalités du module concerné lorsqu’elles sont exécutés par ce processeur.
On décrit dans la suite le codage (au moyen du dispositif de codage) d’une vidéo holographique formée d’une séquence de T hologrammes numériques Ht (également dénommés " trames de la vidéo holographique"). L’invention s’applique toutefois également au codage d’un unique hologramme numérique Hi (cas où T = 1 ).
Les hologrammes numériques Ht sont définis au niveau d’un plan, chacun au moyen de valeurs Ht(x,y) respectivement associées à des pixels, de position (x,y),
répartis sur deux dimensions au sein d’une zone (en général rectangulaire) de ce plan de définition de l’hologramme numérique Ht.
Pour un hologramme numérique Ht donné, la valeur Ht(x,y) associée à un pixel (x,y) représente typiquement l’onde lumineuse reçue, au niveau de ce pixel (x,y), en provenance d’une scène tridimensionnelle située d’un côté, ou éventuellement de part et d’autre, du plan de définition de l’hologramme numérique Ht.
Dans l’exemple décrit ici, les valeurs Ht(x,y) sont des valeurs complexes et sont donc représentés (de manière équivalente) soit par une partie réelle et une partie imaginaire, soit par une amplitude (parfois dénommée norme ou module) et une phase.
En variante, les valeurs Ht(x,y) pourraient être des valeurs réelles.
Les valeurs Ht(x,y) représentant les hologrammes numériques Ht de la séquence sont par exemple mémorisées au sein d’une mémoire du dispositif de codage (tel que la mémoire 6 du dispositif électronique 2 donné ci-dessous à titre d’exemple en référence à la figure 5).
Le dispositif de codage comprend un module 10 de formation de blocs matriciels Bj à partir des valeurs Ht(x,y) représentant un hologramme numérique donné Ht.
Ce module 10 est conçu pour former des blocs matriciels Bj respectivement associés à des régions Rjj formées de pixels contigus de façon que chaque bloc matriciel Bj contienne des éléments B j(a,b) déterminés en fonction des valeurs Ht(x,y) des pixels (x,y) de la région R associée au bloc concerné Bj.
Dans l’exemple décrit ici, chaque bloc matriciel Bj comprend MH éléments par ligne et Mv éléments par colonne déterminés en fonction de valeurs Ht(x,y) de pixels (les lignes des blocs matriciels Bj correspondant ici à la direction d’abscisse x repérant les pixels du plan de définition de l’hologramme numérique Ht et les colonnes des blocs matriciels Bj correspondant ici à la direction d’ordonnée y repérant ces pixels).
En pratique, le nombre MH peut être compris entre 50 et 500 (MH vaut par exemple 64 ou 128) ; de même, le nombre Mv peut être compris entre 50 et 500 (Mv vaut par exemple 64 ou 128).
Par ailleurs, comme également visible en figure 2, le module 10 est ici conçu pour former une matrice de KH.KV blocs matriciels formée de KH blocs matriciels par ligne et de Kv blocs matriciels par colonne (autrement dit formée de Kv lignes et KH colonnes). (Dans cette matrice de blocs matriciels, un bloc matriciel Bj est situé en ligne j+1 et en colonne i+1 .)
La technique de codage décrite ici est particulièrement intéressante pour le traitement d’hologrammes numériques définis par un grand nombre de pixels (typiquement supérieur à 10000 x 10000). En pratique, chacun des nombres KH (nombre de blocs matriciels Bjj par ligne) et Kv (nombre de blocs matriciels Bjj par colonne) est par exemple supérieur à 500 (voire supérieur à 1000).
Le module 10 détermine par exemple chaque élément Bjj(a,b) d’un bloc matriciel Bjj comme suit :
Bij(a.b) = Ht(a + i.DH, b + j.Dv).w(a.b) où DH et Dv sont deux entiers strictement positifs inférieurs ou égaux respectivement à MH et Mv et où w est une matrice de nombre réels de dimensions MH x Mv.
Dans un cas particulier envisageable, comme représenté en figure 2, on prend DH = MH, DV = Mv, et tous les éléments w(a,b) de la matrice w égaux à 1 : le module 10 forme alors les blocs matriciels Bjj par segmentation de la zone où sont définis les pixels, de sorte que les différents éléments Bij(a,b) d’un bloc matriciel Bjj sont respectivement les valeurs Ht(x,y) des pixels (x,y) de la région R,j associée à ce bloc matriciel Bjj :
Bjj(a.b) = Ht(a + i.MH, b + j.Mv).
Comme représenté en figure 2 par les références P et P’, il est possible de compléter les blocs Bjj par des zéros (opération généralement dénommée " padding ") lorsque certains éléments de blocs Bjj n’ont pas de correspondant parmi les pixels définissant l’hologramme numérique Ht, par exemple parce que les dimensions de l’hologramme numérique Ht ne sont pas multiples (respectivement) de MH et Mv.
Autrement dit, le module 10 peut fixer Bij(a,b) = 0 lorsque les coordonnées (a + Î.MH, b + j.Mv) ne correspondent pas à un pixel de l’hologramme numérique Ht.
Selon une possibilité de réalisation, le module 10 peut former, en plus des éléments B,j(a,b) déterminés sur la base des valeurs Ht(x,y) des pixels (x,y), des éléments Bij(a’,b’) de valeur nulle, ce afin d’augmenter le nombre d’éléments dans chaque bloc matriciel Bjj et donc le nombre de coefficients dans chacun des ensembles C,j décrits plus bas. Selon cette possibilité de réalisation, on a : MH < M’H Mv < M’v et Bij(a’,b’) = 0 pour a’ variant de MH+1 à M’H et pour b’ variant de Mv+1 à M’v.
En sortie du module 10, chaque bloc matriciel Bjj comprend M’v lignes et M’H colonnes (avec par exemple M’v compris entre 50 et 1000 et/ou M’H compris entre 50 et 1000). (Lorsque la possibilité qui vient d’être mentionnée d’ajouter des éléments de valeur nulle pour augmenter le nombre d’éléments n’est pas utilisée, on a :
MH = M’H et Mv = M’v.)
Le dispositif de codage comprend également un module 12 d’application d’une transformation espace-fréquence.
Ce module 12 est conçu pour appliquer cette transformation espace-fréquence à chacun des blocs matriciels Bjj de sorte à obtenir, pour chaque bloc matriciel Bjj, un ensemble Cjj de coefficients Ci,j(k,l) correspondant respectivement à différentes fréquences spatiales bidimensionnelles (k, I) au sein du bloc matriciel Bjj concerné.
On entend par fréquence spatiale bidimensionnelle un couple de fréquences spatiales respectivement associées à deux directions de l’espace (ici les deux directions, respectivement selon l’abscisse x et selon l’ordonnée y, du plan de définition de l’hologramme numérique Ht).
La transformation espace-fréquence utilisée est par exemple une transformation de Fourier à deux dimensions.
Dans ce cas, le module 12 détermine les coefficients Ci
j(k, I) d’un ensemble Ci
j comme suit :
où y est une constante prédéfinie.
En reprenant une organisation matricielle basée sur celle des blocs matriciels Bjj, chaque ensemble Cij de coefficients comprend M’v lignes et M’H colonnes.
Le dispositif de codage comprend par ailleurs un module 14 de construction d’une pluralité de structures bidimensionnelles Sp,q.
Le module de construction 14 est conçu de sorte que chaque structure bidimensionnelle Sp,q construite comprend des coefficients Cij(k,l) issus d’une pluralité d’ensembles C,j de coefficients et associés à des fréquences spatiales bidimensionnelles k, I respectant un critère qui dépend de la structure bidimensionnelle Sk,i concernée.
Selon une possibilité de réalisation, pour une structure bidimensionnelle donnée Sp q, le module de construction 14 regroupe dans cette structure bidimensionnelle
donnée Sp,q les coefficients Cjj(k, I) issus de tous les ensemble Cjj de coefficients et associés à une fréquence spatiale bidimensionnelle particulière, de valeur (p,q).
Comme schématiquement représenté en figure 3, en suivant au sein de cette structure bidimensionnelle donnée Sp,q une organisation reproduisant (au sein de la matrice de blocs Bjj mentionnée plus haut) celle des blocs Bjj dont sont issus les ensembles Cjj de coefficients, un coefficient Sp,q(n,m) de cette structure bidimensionnelle donnée Sp,q (coefficient situé en ligne n et colonne m dans la structure bidimensionnelle Sp,q) est défini par :
Sp,q(n,m) = Cn,m(p,q)· Selon cette possibilité de réalisation, le nombre de structures bidimensionnelles
Sp,q construites est donc égal au nombre de coefficients Cjj(k, I) par ensemble de coefficients Cjj (ce nombre de coefficients Ci (k, I) par ensemble de coefficients Cjj étant ici égal à M’V.M’H).
Par ailleurs, toujours dans le cadre de cette possibilité de réalisation, chaque structure bidimensionnelle Sp,q comprend un nombre de coefficients égal au nombre de blocs Bjj (dans la matrice de blocs Bjj susmentionnée et qui ressort clairement de la figure 2), soit ici un nombre égal à KH.KV. Précisément, chaque structure bidimensionnelle Sp,q comprend un nombre de lignes égal au nombre (Kv) de lignes dans la matrice de blocs Bjj et un nombre de colonnes égal au nombre (KH) de colonne dans la matrice de blocs Bjj.
D’autres possibilités de réalisation sont envisageables pour construire les structures bidimensionnelles Sp q, comme expliqué plus loin.
Le dispositif de codage comprend également un module de codage 16 des structures bidimensionnelles Sp,q. Ce module de codage 16 est conçu pour ordonner les structures bidimensionnelles Sp,q selon un ordre prédéfini et pour coder les coefficients Sp,q(n,m) des structures bidimensionnelles ordonnées afin d’obtenir au moins une séquence de données DA, D .
Le module de codage 16 ordonne par exemple les structures bidimensionnelles Sp,q selon l’une des méthodes envisagées dans l’article "3D scanning-based compression technique for digital hologram video " déjà mentionné pour l’ordonnancement des segments obtenus par transformée en cosinus discrète.
Dans l’exemple décrit ici où les coefficients Sp,q(n,m) contenus dans les structures bidimensionnelles Sp,q sont des nombres complexes, le module de codage 16 code séparément l’amplitude des coefficients Sp,q(n,m) et la phase des coefficients SP,q(n,m).
Le module de codage 16 code par exemple l’amplitude des coefficients Sp,q(n,m) en une séquence de données DA au moyen d’un processus de codage d’image tel que ceux décrits dans la norme MPEG-4 AVC, ou dans la norme MPEG-4 HEVC ou MV-HEVC.
Le module de codage 16 peut coder la phase des coefficients Sp,q(n,m) en une séquence de données D au moyen d’un autre processus de codage, par exemple tel que celui décrit dans l’article "Phase-difference-based compression of phase-only holograms for holographie three-dimensional displaÿ', de H. Gu et G. Jin, in Opt. Express, vol. 26, n° 26, pp. 33592-33603, décembre 2018.
Dans les modes de réalisation où les coefficients Sp,q(n,m) contenus dans les structures bidimensionnelles Sp,q sont des nombres réels, ces coefficients peuvent être directement codés par un processus de codage d’image (tel que ceux mentionnés ci-dessus).
Le dispositif de codage comprend enfin un module 18 de génération d’un flux de données à transmettre (ou flux binaire) DT sur la base des données codées produites par le module de codage 16. Dans un mode de réalisation, le flux de données à transmettre DT (ici pour chaque groupe d’hologrammes numériques, comme expliqué ci-dessous) est généré par combinaison séquentielle de la séquence de données DA et de la séquence de données D . En d’autres termes, les séquences de données DA et Do sont envoyées l’une après l’autre pour former le flux DT, et cela successivement pour chaque groupe de N hologrammes numériques Ht.
On décrit à présent en référence à la figure 4 un exemple de procédé de codage, qui peut être mis en œuvre par le dispositif de codage de la figure 1 .
Ce procédé de codage est appliqué à une séquence de T hologrammes numériques Ht organisés en groupes de N hologrammes numériques. Chaque groupe d’hologrammes numériques comprend ainsi N hologrammes numériques Ht qui se suivent dans la séquence des T hologramme numériques.
Les hologrammes numériques Ht sont par exemple mémorisés dans une mémoire du dispositif de codage de la figure 1 , comme déjà indiqué. Les étapes de
traitement décrits ci-dessous peuvent également utiliser cette mémoire pour la mémorisation des données obtenues après chaque étape de traitement (ainsi que des résultats intermédiaires).
La séquence de T hologrammes numériques Ht (ou trames) forme une vidéo holographique.
Le procédé de la figure 4 débute par une étape E2 à laquelle une variable t et une variable g sont initialisées à la valeur 1 . Comme cela ressortira de l’explication qui suit, la variable t désigne l’hologramme numérique Ht courant (c’est-à-dire l’hologramme numérique auquel les traitements réalisés au cours des étapes décrites sont appliqués) et la variable g désigne le groupe d’hologrammes courant.
Le procédé de la figure 4 se poursuit à l’étape E4 au cours de laquelle le dispositif de codage (précisément ici le module 10) forme des blocs matriciels Bjj respectivement associés à des régions Rjj formées de pixels contigus de l’hologramme courant Ht, chaque bloc matriciel Bjj ainsi formé contenant des éléments Bij(a,b) déterminés en fonction des valeurs des pixels de la région Rjj associée au bloc concerné Bjj.
Comme représenté en figure 2, chaque région Rj comprend ici MH pixels selon la direction horizontale (direction des abscisses x repérant les pixels) et Mv pixels selon la direction verticale (direction des ordonnées Y repérant les pixels).
Comme indiqué plus haut, ces éléments Bij(a,b) déterminés en fonction de valeurs de pixels sont par exemple obtenus (ici par le module 10) comme suit :
Bjj(a.b) = Ht(a + i.DH, b + j.Dv).w(a.b).
Selon une possibilité de réalisation, comme déjà indiqué, les blocs matriciels Bjj sont obtenus par segmentation de l’hologramme courant Ht :
Bij(a,b) = Ht(a + Î. DH, b + j.Dv), avec DH = MH et Dv = Mv.
Comme indiqué plus haut, le module 10 peut éventuellement ajouter des éléments Bij(a’,b’) de valeur nulle au sein des blocs matriciels Bjj, afin notamment d’augmenter le nombre de coefficients Cij(k,l) dans chaque ensemble Cij.
Dans l’exemple décrit ici, comme visible en figure 2, l’étape E4 permet ainsi de former KH. KV blocs matriciels Bjj organisés selon une matrice de Kv lignes de blocs matriciels Bjj et de KH colonnes de blocs matriciels Bjj, chaque bloc matriciel Bjj comprenant lui-même M’v lignes et M’H colonnes. Comme indiqué plus haut, on utilise par exemple en pratique des valeurs comme suit : KH supérieur à 500 (voire supérieur
à 1000) et/ou Kv supérieur à 500 (voire supérieur à 1000) et/ou M’v compris entre 50 et 1000, et/ou M’H compris entre 50 et 1000.
Le procédé de la figure 4 comprend alors une étape E6 d’application, à chacun des blocs matriciels Bjj (pris séparément), d’une transformation espace-fréquence de sorte à obtenir, pour chaque bloc matriciel Bjj, un ensemble Cjj de coefficients Cjj(k, I) qui correspondent chacun respectivement à différentes fréquences spatiales bidimensionnelles (k,l) au sein du bloc matriciel Bjj concerné. Cette étape est ici mise en œuvre par le module 12 décrit plus haut.
Comme déjà indiqué, pour chaque bloc matriciel Bjj, l’étape E6 comprend ici l’application de cette transformation espace-fréquence (par exemple une transformation de Fourier à 2 dimensions) à l’ensemble des éléments du bloc matriciel Bjj concerné.
L’étape E6 permet donc ici de produire KH.KV ensembles CÎJ comprenant chacun M’v. M’H coefficients Cij(k, I) correspondant respectivement à M’v. M’H fréquences spatiales bidimensionnelles (obtenues en parcourant M’H fréquences horizontales k et M’v fréquences verticales I).
Le procédé de la figure 4 comprend alors une étape E8 de construction d’une pluralité de structures bidimensionnelles Sp,q comprenant, chacune, des coefficients Cjj(k, I) issus d’une pluralité d’ensembles de coefficients CÎJ et associés à des fréquences spatiales bidimensionnelles (k, I) respectant un critère dépendant de la structure bidimensionnelle Sp,q concernée. Cette étape E8 est ici mise en œuvre par le module de construction 14.
Selon un premier mode de réalisation envisageable, les structures bidimensionnelles Sp,q sont construites à l’étape E8 en regroupant, dans chaque structure bidimensionnelle Sp q, les coefficients Cij(k, I) issus des ensembles de coefficients CÎJ et correspondant à une fréquence spatiale bidimensionnelle (k, I) particulière, associée à la structure bidimensionnelle Sp,q concernée.
Une structure bidimensionnelle Sp,q donnée regroupe donc dans ce cas des coefficients Cij(k, I) représentant la même fréquence spatiale bidimensionnelle (k, I).
Dans le cas décrit ci-dessus, l’étape E8 permet donc de construire M’H. M’v structures bidimensionnelles Sp,q comprenant chacune KH.KV coefficients.
Comme représenté en figure 3, on propose en outre ici de reprendre, au sein de chaque structure bidimensionnelle Sp q, la structure matricielle des blocs Bjj dont sont
issus les ensembles Cjj fournissant les coefficients Cjj(k, I) de la structure bidimensionnelle Sp,q concernée, c’est-à-dire de définir les coefficients Sp,q(n,m) de chaque bloc Sp,q par :
Sp,q(n,m) = Cn,m(p,q)·
Chaque structure bidimensionnelle Sp,q ainsi formée possède (en ce qui concerne l’amplitude des coefficients) des caractéristiques proches d’images bidimensionnelles qui auraient été obtenues par projection parallèle de la scène tridimensionnelle. Les structures bidimensionnelles Sp,q présentent ainsi une faible profondeur de champ et de fortes redondances spatiales entre coefficients adjacents au sein de la structure bidimensionnelle, ce qui permet leur codage efficace à l’étape E14 décrite plus bas.
Selon un second mode de réalisation envisageable, les structures bidimensionnelles Sp,q sont construites à l’étape E8 en regroupant, dans chaque structure bidimensionnelle Sp q, les coefficients Cjj(k, I) issus des différents ensembles Cij de coefficients Cjj(k, I) et correspondant à une plage bidimensionnelle de fréquences spatiales bidimensionnelles (k, I) associée à la structure bidimensionnelle Sp,q concernée.
Ainsi, on définit dans ce cas différentes plages bidimensionnelles de fréquences spatiales bidimensionnelles (chaque plage bidimensionnelle couvrant par exemple un certain nombre, noté dans la suite a.b, de valeurs différentes de fréquences spatiales bidimensionnelles représentées au sein de chaque ensemble Cjj de coefficients, a et b où sont deux nombres entiers tels que a divise M’H et b divise M’v). Une structure bidimensionnelle Sp,q donnée regroupe alors les coefficients Cjj(k, I) issus de tous les ensembles Cjj et représentant une fréquence spatiale bidimensionnelle (k, I) comprise dans une plage bidimensionnelle particulière parmi ces plages bidimensionnelles. Les coefficients Sp,q(n,m) d’une structure bidimensionnelle Sp,q peuvent dans ce cas être par exemple donnés par :
SP,q(n,m) = qE(h/a),E(Gti/b)(r.a+h[a],r.b+Gh[b]), où E(z) désigne la partie entière de z, n[a] est le reste de la division euclidienne de n par a et Gh[b] est le reste de la division euclidienne de m par b.
Dans le cas décrit ci-dessus, l’étape E8 permet donc de construire M'H.M'n/ίa.b) structures bidimensionnelles Sp,q comprenant chacune a.b.KH.Kn coefficients. L’avantage de ce mode de réalisation est qu’elle permet de produire un nombre moins
important de structures bidimensionelles Sp q, dont l’amplitude des coefficients possède toujours des caractéristiques proches d’images bidimensionnelles qui auraient été obtenues par projection parallèle de la scène tridimensionnelle. En augmentant la valeur de a et b, le nombre de structures bidimensionelles Sp,qpeut être réduit davantage, au prix d’une redondance spatiale moindre entre coefficients adjacents au sein d’une même structure bidimensionnelle.
Le procédé de la figure 4 se poursuit à l’étape E10 au cours de laquelle le dispositif de codage (ici son processeur) détermine si t<T et t<g.N.
L’inégalité t<T est valable tant que le dernier hologramme numériques HT de la séquence d’hologrammes numériques n’a pas été traité.
L’inégalité t<g.N est valable tant que le dernier hologramme numérique traité Ht n’est pas le dernier hologramme numérique du groupe d’hologrammes numériques courant (l’indice g indiquant comme mentionné précédemment le groupe courant).
En cas de détermination positive à l’étape E10 (c’est-à-dire que le dernier hologramme numérique Ht traité n’est ni le dernier de la séquence ni le dernier d’un groupe), le procédé se poursuit à l’étape E11 par l’incrémentation de la variable t désignant l’hologramme numérique courant Ht, puis à l’étape E4 décrite ci-dessus pour traitement du nouvel hologramme numérique courant Ht.
En cas de détermination négative à l’étape E10 (c’est-à-dire lorsque le dernier hologramme numérique Ht traité est soit le dernier de la séquence soit le dernier d’un groupe), le dispositif de codage (précisément ici le module de codage 16) ordonne, selon un ordre prédéfini (ou séquence prédéfinie), les différentes structures bidimensionnelles Sp,q obtenues (au cours des passages successifs à l’étape E8) pour les différents hologrammes numériques du groupe courant (étape E12).
Comme déjà indiqué, l’ordre prédéfini choisi est par exemple l’un des ordres proposés dans l’article "3D scanning-based compression technique for digital hologram video " déjà mentionné pour l’ordonnancement des segments obtenus par transformée en cosinus discrète.
On obtient donc après mise en oeuvre de l’étape E12 une suite ordonnée de structures bidimensionnelles Sp,q (les structures bidimensionnelles Sp,q de cette suite ordonnée provenant du traitement de différents hologrammes numériques Ht du groupe courant ; ainsi, la suite ordonnée de structures bidimensionnelles Sp,q comprend au moins une première structure bidimensionnelle obtenue par traitement
d’un premier hologramme numérique du groupe et une seconde structure bidimensionnelle obtenue par traitement d’un second hologramme numérique du groupe).
Le procédé de la figure 4 se poursuit alors par le codage des structures bidimensionnelles Sp,q ainsi ordonnées, ici au moyen d’une part du codage de l’amplitude des coefficients présents dans les structures bidimensionnelles Sp,q (étape E14) et d’autre part du codage de la phase de ces coefficients (étape E16).
Chaque structure bidimensionnelle Sp,q a une forme matricielle identique à celle d’une image et chaque structure bidimensionnelle Sp,q peut donc être codée (en amplitude et/ou en phase) au moyen d’un algorithme de traitement d’image prenant, en tant qu’imagé d’entrée de l’algorithme, la structure bidimensionnelle concernée.
Cet algorithme de traitement d’image peut ainsi être appliqué successivement aux différentes structures bidimensionnelles ordonnées (obtenues à l’étape E12), en prenant successivement, en tant qu’imagé d’entrée de l’algorithme, une structure bidimensionnelle particulière (ou en pratique une matrice formée des amplitudes respectives des coefficients de cette structure bidimensionnelle et/ou une matrice formée des phases respectives des coefficients de cette structure bidimensionnelle).
Ainsi, lors de l’étape E14, le module de codage 16 applique successivement un algorithme de codage d’image à différentes matrices formées chacune des valeurs d’amplitude des coefficients Sp,q(n,m) d’une structure bidimensionnelle Sp,q particulière (ces matrices étant prises dans l’ordre conféré aux structures bidimensionnelles Sp,q à l’étape E12). L’algorithme de codage d’image est par exemple un processus de codage d’image tel que ceux décrits dans la norme MPEG-4 AVC, ou dans la norme MPEG-4 HEVC ou MV-HEVC. L’étape E14 permet ainsi d’obtenir une séquence de données DA participant au codage du groupe d’hologrammes courant.
De façon comparable, lors de l’étape E16, le module de codage 16 applique successivement un algorithme de codage à différentes matrices formées chacune des valeurs de phase des coefficients Sp,q(n,m) d’une structure bidimensionnelle Sp,q particulière (ces matrices étant prises dans l’ordre conféré aux structures bidimensionnelles Sp,q à l’étape E12). L’algorithme de codage utilisé est par exemple celui décrit dans l’article "Phase-difference-based compression of phase-only holograms for holographie three-dimensional displaÿ', de H. Gu et G. Jin, in Opt.
Express, vol. 26, n° 26, pp. 33592-33603, décembre 2018 ; l’algorithme de codage utilisé est donc ici différent de l’algorithme de codage d’image utilisé à l’étape E14.
L’étape E16 permet ainsi d’obtenir une séquence de données D participant au codage du groupe d’hologrammes courant.
Le procédé de la figure 4 se poursuit à l’étape E18 à laquelle le dispositif de codage (en pratique son processeur) détermine si t<T (c’est-à-dire vérifie que l’hologramme numérique Ht traité lors du dernier passage aux étapes E4 à E8 ne soit pas le dernier hologramme numérique HT de la séquence).
Dans l’affirmative (i.e. s’il est vérifié que le dernier hologramme numérique traité Ht n’était pas le dernier hologramme numérique HT de la séquence), le procédé se poursuit à l’étape E20 pour incrémentation de la variable t désignant l’hologramme numérique Ht courant et de la variable g désignant le groupe d’hologrammes numériques courant (le dernier hologramme numérique d’un groupe ayant déjà été traité d’après le résultat du précédent passage à l’étape E10).
Le procédé boucle alors à l’étape E4 pour traitement du nouveau groupe d’hologrammes numériques.
Dans la négative à l’étape E18 (c’est-à-dire lorsque le dernier hologramme numérique HT de la séquence a été traité), le procédé se poursuit à l’étape E22 à laquelle le module 18 génère un flux de données DT sur la base des séquences de données DA, D respectivement produites lors des précédents passages aux étapes E14 et E16 pour les différents groupes d’hologrammes numériques traités.
Par exemple, le flux de données DT comprend une succession de plusieurs flux de données DGOH relatifs chacun à un groupe d’hologrammes numériques, chaque flux de données DGOH comprenant successivement la séquence de données DA et la séquence de données Do déterminées comme expliqué ci-dessus pour ce groupe d’hologrammes numériques.
La figure 5 décrit un exemple de dispositif électronique 2 pouvant former un dispositif de codage conforme à l’invention.
Ce dispositif électronique 2 comprend un processeur 4 (par exemple un microprocesseur), au moins une mémoire 6 et un circuit de télécommunication 8.
La mémoire 6 peut mémoriser des instructions de programme d’ordinateur conçues pour mettre en oeuvre certaines au moins des étapes du procédé de la figure 4 lorsque ces instructions sont exécutées par le processeur 4.
La mémoire 6 (ou éventuellement une autre mémoire) peut mémoriser en outre comme déjà indiqué les valeurs Ht(x,y) respectivement associées aux pixels (x,y) pour définir chacun des hologrammes numériques Ht traités comme expliqué ci-dessus. La mémoire 6 (ou éventuellement une autre mémoire) peut alors mémoriser les différentes valeurs manipulées au cours des traitements décrits ci-dessous, en particulier les éléments Bjj(a,b) des blocs matriciels Bjj, les coefficients Cjj(k, I) des ensembles de coefficients Cjj, les coefficients Sp,q(n,m) des structures bidimensionnelles Sp,q et les données DA, D , DT.
Enfin, le circuit de télécommunication 8 est conçu pour transmettre (par exemple sur commande du processeur 4), typiquement à destination d’un autre dispositif électronique (non représenté), le flux de données DT obtenu à l’étape E22.