WO2023232823A1 - Titre: codage audio spatialisé avec adaptation d'un traitement de décorrélation - Google Patents

Titre: codage audio spatialisé avec adaptation d'un traitement de décorrélation Download PDF

Info

Publication number
WO2023232823A1
WO2023232823A1 PCT/EP2023/064457 EP2023064457W WO2023232823A1 WO 2023232823 A1 WO2023232823 A1 WO 2023232823A1 EP 2023064457 W EP2023064457 W EP 2023064457W WO 2023232823 A1 WO2023232823 A1 WO 2023232823A1
Authority
WO
WIPO (PCT)
Prior art keywords
current frame
mode
coding
channels
frame
Prior art date
Application number
PCT/EP2023/064457
Other languages
English (en)
Inventor
Stéphane RAGOT
Arnaud Lefort
Original Assignee
Orange
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange filed Critical Orange
Publication of WO2023232823A1 publication Critical patent/WO2023232823A1/fr

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing

Definitions

  • the present invention relates to the coding/decoding of spatialized sound data, particularly in an ambiophonic context (hereinafter also referred to as “ambisonic”).
  • the encoders/decoders which are currently used in mobile telephony are mono (a single signal channel for reproduction on a single loudspeaker).
  • the 3GPP EVS codec (for “Enhanced Voice Services”) makes it possible to offer “Super-HD” quality (also called “High Definition Plus” or HD+ voice) with a super-wideband audio band (SWB for “super- wideband” in English) for signals sampled at 32 or 48 kHz or full band (FB for “Fullband”) for signals sampled at 48 kHz; the audio bandwidth is 14.4 to 16 kHz in SWB mode (9.6 to 128 kbit/s) and 20 kHz in FB mode (16.4 to 128 kbit/s).
  • the next evolution in quality in the conversational services offered by operators should be constituted by immersive services, using terminals such as smartphones equipped with several microphones or spatial audio conferencing or video conferencing equipment such as tele-presence or video 360°, or even “live” audio content sharing equipment, with spatialized 3D sound rendering that is much more immersive than a simple 2D stereo reproduction.
  • terminals such as smartphones equipped with several microphones or spatial audio conferencing or video conferencing equipment such as tele-presence or video 360°, or even “live” audio content sharing equipment, with spatialized 3D sound rendering that is much more immersive than a simple 2D stereo reproduction.
  • advanced audio equipment accessories such as a 3D microphone, voice assistants with acoustic antennas, virtual reality headsets, etc.
  • the capture and rendering of spatialized sound scenes are now quite common to offer an immersive communication experience.
  • the future 3GPP “IVAS” standard proposes the extension of the EVS codec to immersive by accepting as the codec input format at least the spatialized sound formats listed below. below (and their combinations):
  • Ambisonics is a method of recording (“coding” in the acoustic sense) of spatialized sound and reproducing (“decoding” in the acoustic sense).
  • An ambisonic microphone (at order 1) comprises at least four capsules (typically of the cardioid or sub-cardioid type) arranged on a spherical grid, for example the vertices of a regular tetrahedron.
  • the audio channels associated with these capsules are called “A-format”. This format is converted into a “B-format”, in which the sound field is decomposed into four components (spherical harmonics) denoted W, X, Y, Z, which correspond to four coincident virtual microphones.
  • the W component corresponds to omnidirectional capture of the sound field while the X, Y and Z components, more directive, can be compared to pressure gradient microphones oriented along the three orthogonal axes of space.
  • An ambisonic system is a flexible system in the sense that recording and restitution are separated and decoupled. It allows decoding (in the acoustic sense) on any speaker configuration (for example, binaural, 5.1 type “surround” sound or 7.1.4 type periphony (with elevation).
  • the ambisonics approach can be generalized to more than four channels in B-format and this generalized representation is commonly called “HOA” (for “Higher-Order Ambisonics”). Breaking down the sound into more spherical harmonics improves the spatial precision of restitution when rendered over loudspeakers.
  • FOA First-Order Ambisonics
  • There is also a so-called “planar” variant of ambisonics (W, X, Y) which decomposes the sound defined in a plane which is generally the horizontal plane. In this case, the number of components is K 2M+1 channels.
  • the signals to be processed by the encoder/decoder are presented as successions of blocks of sound samples called “frames” or “sub-frames” below.
  • the notations A T and A H respectively indicate the transposition and the Hermitian transposition (transposed and conjugated) of A.
  • the first component of an ambisonic signal generally corresponds to the omnidirectional component W.
  • the simplest approach to encoding an ambisonic signal is to use a mono encoder and apply it separately to each of the individual channels with possibly a different bit allocation depending on the channel.
  • This approach is called “multi-mono” here.
  • the input signal is divided into channels (one mono channel or multiple channels). These channels are coded separately according to a predetermined binary distribution and allocation. During decoding, the decoded channels are recombined according to the convention of the input signal.
  • the quality of multi-mono or multi-stereo coding varies depending on the core coding and decoding used, and it is generally only satisfactory at very high bitrates.
  • the multi-mono coding approach does not take into account the correlation between channels, it produces spatial deformations with the addition of different artifacts such as the appearance of phantom sound sources, diffuse noise or displacements of the trajectories of sound sources .
  • the coding of an ambisonic signal according to this approach generates degradations in spatialization.
  • rotation matrices of size 4x4 in 3D are converted into parameters, for example 6 generalized Euler angles or two unit quaternions, which are coded.
  • Figure 1 illustrates this coding method in the case where the quaternion representation is used for both coding and interpolation of the rotation matrices. Coding takes place in several stages.
  • the original multichannel signal A of dimension KxL (i.e. K components of L time or frequency samples) is at input.
  • KxL i.e. K components of L time or frequency samples
  • the channel signals (for example W, Y, Z, These channels can optionally be pre-processed, for example with a high-pass filter.
  • Temporal smoothing operations of the covariance matrix can be used.
  • the covariance can be estimated recursively (sample by sample). We can also divide the frame into subframes and determine a covariance matrix per subframe which is then smoothed.
  • the initial eigenvector matrix U obtained for the current frame t, undergoes signed permutations so that it is as closely aligned as possible with the matrix of the same nature V of the previous frame t - 1, in order to ensure maximum coherence between the transformation matrices between two frames.
  • the matrix of eigenvectors of the current frame t thus corrected by signed permutations, represents the application of a rotation.
  • the new eigenvector matrix V for the current frame t (which is a rotation matrix) is converted into an appropriate domain of quantization parameters.
  • A diag( ⁇ 1; ..., ⁇ n ).
  • a rotation matrix V can be parameterized by the product of two unit quaternions q 1 and q 2 in matrix form: where the quaternions are with by example :
  • the current frame is divided into subframes, the number of which here is assumed to be fixed.
  • the representation by coded quaternions is interpolated (block 130) by successive subframes of index t' from the end of the previous frame t - 1 to the end of the current frame t, in order to smooth over time the difference between inter-frame matrixing.
  • the quaternions interpolated in each subframe are converted into rotation matrices (block 140) then we applies the resulting decoded and interpolated rotation matrices in each subframe (block 150).
  • a matrix representing each of the subframes of the signals of the ambisonic channels to decorrelate these signals and obtain the transformed signal B.
  • a binary allocation to the separate channels is also carried out (block 160) from the number of bits global from which the N Q bits used in block 120 are subtracted.
  • Figure 2 illustrates the corresponding decoding.
  • the quantification indices of the quantification parameters of the rotation matrix in the current frame are de-multiplexed (block 200) and decoded in block 230 according to a decoding method corresponding to the coding (block 120).
  • the transformed channels are also decoded (block 220), from the binary allocation (block 210) identical to the encoder (block 160).
  • the conversion and interpolation steps (blocks 240, 250) of the decoder are identical to those carried out at the encoder (blocks 130 and 140).
  • Block 260 applies by subframe the inverse matrixing from block 250 to the decoded signals of the ambisonic channels, remembering that the inverse of a rotation matrix is its transposed. Note that the algorithmic delay linked to coding-decoding (blocks 170 and 220) must be compensated by adequately storing the inverse matrixing values.
  • Ambisonic coding as performed in Figures 1 and 2 assumes that the input channels are (sufficiently) correlated. In particular it assumes that the decorrelation by block 150 provides a coding gain; moreover, it assumes that the matrixing is stable from one frame to another so as not to generate audio artifacts at the level of the transformed signal B.
  • the decorrelation gain may be low.
  • the PCA analysis (block 100) can lead to a very strong variation in the matrixing by . In these two cases, constant use of metadata to represent the PCA transformation turns out to be of little relevance.
  • the present invention improves this situation.
  • the present invention makes it possible to adapt the use of a decorrelation between the n channels as a function of the characteristics of the input signal.
  • the determination of the binary value indicating an active or inactive mode is carried out according to at least one signal coding gain criterion before and after decorrelation processing.
  • the coding gain is defined by the following logarithmic value: with al the energies of the input channels of the decorrelation processing and the eigenvalues of the input channels, the mode being determined as inactive for a predefined value of gain G.
  • the determination of the binary value indicating an active or inactive mode is carried out according to an inter-frame distance criterion between rotation matrices applying the decorrelation processing.
  • the generation of the signal to be coded is adapted to avoid excessive variations in the transformation matrix applying the decorrelation processing.
  • the inter-frame distance between rotation matrices being expressed from a scalar product between the quaternions at the current frame and those of the frame former.
  • the determination of the binary value indicating an active or inactive mode is carried out according to a distance criterion between a rotation matrix, applying decorrelation processing, of the current frame and the identity matrix.
  • the generation of the signal to be coded is adapted to avoid excessive variations in the transformation matrix applying the decorrelation processing compared to direct coding of the input.
  • the distance between a rotation matrix of the current frame and the identity matrix being expressed in the form of a scalar product between the quaternions at the current frame and unit quaternions.
  • the invention applies to a method for decoding sound signals forming a succession over time of frames (t-1, t) of samples, in each of n channels in ambisonic representation of order greater than 0, the method comprising:
  • the decoding method has the same advantages as the corresponding coding method.
  • the present invention also relates to a coding device comprising a processing circuit for implementing the coding method presented previously.
  • It also targets a decoding device comprising a processing circuit for implementing the above decoding method.
  • FIG 1 illustrates an embodiment of an encoder and a coding method according to a state-of-the-art method
  • FIG 2 illustrates an embodiment of a decoder and a decoding method according to a state-of-the-art method
  • FIG 3 illustrates an embodiment of an encoder and a coding method according to an embodiment of the invention
  • FIG 4 illustrates an embodiment of a decoder and a decoding method according to an embodiment of the invention
  • FIG 5 illustrates examples of structural embodiment of an encoder and a decoder within the meaning of the invention.
  • the input signal is assumed to be an ambisonic signal of order 1 FOA in ACN format and according to SN3D standardization.
  • the input signal may have undergone preprocessing, to obtain 4 channels derived from an original ambisonic signal (FOA).
  • L 960 samples at 48 kHz.
  • this budget R could be reduced as a function of bits already used by possible preprocessing operations on the signal before coding by PCA.
  • PCA decorrelation processing
  • a binary value indicating an active (ON) or inactive (OFF) mode of PCA type decorrelation processing is determined by block 300.
  • the selection module activates branch 2, in which the input signals are transformed into 150 by a matrix resulting from the interpolation carried out in 320. It is not necessary here to encode information on the transformation matrix of the current frame since the indication has a negative value for this current frame. The module for inserting this data coded in 310 is therefore disconnected.
  • the allocation block 340 takes into account the fact that 1 bit is used to indicate the mode of the current frame and R-1 bits to encode the channels (block 170).
  • the selection module activates branch 2, in which the input signals are transformed into 150 by a matrix resulting from the interpolation carried out in 320.
  • the module for inserting the transformation data of the current frame coded into 310 is here connected because a PCA transformation and therefore a decorrelation treatment is indeed applied for this current frame. This data is coded on N Q bits.
  • the allocation block 340 takes into account the fact that 1 bit is used to indicate the mode of the current frame and R-1-N Q bits to encode the channels (block 170).
  • the eigenvectors V and the quaternions coded to the current frame t are memorized to define the new state of the previous frame t-1 before processing the next frame.
  • the mode decision (mode) of the current frame t is also memorized to define the new state (prev_mode) of the previous frame t-1 before processing the next frame.
  • the multiplexing module 350 thus inserts the coded data into the binary stream according to the allocation defined in block 340 and according to the activation indication determined for the current frame and for the previous frame.
  • norm is the normalization operation (to the unit norm) of quaternion which corresponds to a normalization on the unit sphere in dimension 4.
  • the frame i.e. LN samples
  • the index t' above corresponds to the index of the sample
  • the subframe includes a single sample.
  • the determination of the indication for activation of the decorrelation processing uses several criteria with decisions by threshold: 1. PCA coding gain
  • another criterion can be based on the correlation matrix of the input signals, and its values outside the values of the diagonal.
  • the correlation matrix is equivalent to the covariance matrix, except that the ambisonic components are respectively normalized by their standard deviation before calculating the cross-correlation.
  • the criterion can thus be defined independently of the signal of the input signal, with a predetermined threshold applied for example to the maximum or average value (in absolute value) off-diagonal in the correlation matrix.
  • the gain G actually corresponds to the sum (in the logarithmic domain) of the coding gains (or decorrelation) between the individual (separate) channels taken before and after PCA.
  • a predefined threshold for example 6 or if the inter-frame distance between rotation matrix is less than a threshold for example 0.8 or even if the distance between the rotation matrix of the current frame and an identity matrix is less than a threshold, for example 0.
  • the threshold values can be different.
  • At least one of the three criteria defined according to the invention is used, the others may not be used or replaced by other criteria.
  • the coding gain could be:
  • other measures of distance between rotation matrices can be defined, for example a Frobenius distance or another distance between rotation matrices, such as the Frobenius norm of where I is the n-dimensional identity matrix
  • the correlation matrix corresponds to the covariance matrix applied to normalized components of the signals A.
  • a covariance matrix as described with reference to the Figure 1, is obtained, for example as follows:
  • C Re(AA H ) up to a normalization factor (in the complex case).
  • C ii the diagonal elements of C in the form C ii , they represent the energy of the i-th input channel.
  • the elements of the covariance matrix taken into account here are the terms C ij , and C ji of the matrix with i #j.
  • the maximum value of these terms is determined and compared to a threshold, for example with a value of 0.1. In the case where the value is greater than this threshold, then the mode of the current frame is determined as active, mode ON. Conversely, the mode is determined as inactive, OFF mode.
  • the decision block can make a “closed loop” decision, this amounts to applying PCA processing for blocks 100 to 150 in order to obtain an initial version of the transformed signal B before confirming that the decision mode in the current frame with index t is ON. In this case we can replace the eigenvalues by the respective energies of the channels of the initial version B. If the decision is finally OFF, it is then necessary to replace the initial version of the transformed signal B.
  • additional activation decision criteria can be added, such as the detection of maximum absolute value in each individual channel before and after PCA (in A and B), if this value absolute (in the current frame) in one of the channels of B exceeds that of the corresponding channel in the input signal A the mode is set to OFF in the current frame.
  • Figure 4 illustrates a decoder implementing the decoding method according to one embodiment of the invention.
  • the binary stream is demultiplexed in 400 and the decoder 220 receives the channels of the multichannel signal to be decoded according to a binary allocation determined in 420.
  • the module 410 receives the indication of activation of decorrelation processing for the current frame and applies the decoding and transformation processing adapted to this indication, in the same way as those carried out for coding.
  • branch 1 is selected by selection block 440.
  • the decoded signal is identical to the decoded output signal .
  • the 420 allocation block uses the R-1 bits to decode the 220 channels.
  • an interpolation is carried out (block 430) between the current values of the coded quaternions and the (default) values of the previous frame in an identical manner to block 320.
  • the selection module 440 activates the branch 2, in which the decoded signals are transformed into 260 by a matrix resulting from the interpolation carried out in 430.
  • the decoding module 230 of the coded current frame transformation data is here connected by the module 430, because a transformation PCA and therefore decorrelation processing is indeed applied for this current frame.
  • the allocation block 420 uses the R-1-N Q bits to decode the 220 channels.
  • the algorithmic delay linked to coding-decoding (blocks 170 and 220) must be compensated by memorizing the inverse matrixing values V for each subframe in the current frame as well as in the previous frame.
  • the eigenvectors and coded quaternions to the current frame t are memorized to define the new state of the previous frame t-1 before processing the next frame.
  • the mode decision (mode) of the current frame t is also memorized to define the new state (prev_mod ⁇ ) of the previous frame t-1 before processing the next frame.
  • FIG. 5 illustrates a DCOD coding device and a DDEC decoding device, within the meaning of the invention, these devices being dual to each other (in the sense of “reversible”) and connected to each other (in the sense of “reversible”). one to the other by a RES communication network.
  • the DCOD coding device comprises a processing circuit typically including:
  • an interface INT1 for receiving ambisonic signals distributed over different channels for example four channels W, Y, Z, X at order 1
  • channels W, Y, Z, X at order 1 for example four channels W, Y, Z, X at order 1
  • a view to their compression coding within the meaning of the invention
  • PROC1 processor for receiving these signals and processing them by executing the computer program instructions stored in the MEM1 memory, with a view to their coding
  • the DDEC decoding device includes its own processing circuit, typically including:
  • PROC2 processor for processing these signals by executing the computer program instructions stored in the MEM2 memory, with a view to their decoding
  • FIG. 5 illustrates an example of a structural embodiment of a codec (encoder or decoder) within the meaning of the invention.
  • Figures 3 to 4 describe in detail rather functional implementations of these codecs.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)

Abstract

L'invention se rapporte à un procédé de codage de signaux sonores formant une succession dans le temps de trames (t-1, t) d'échantillons, dans chacun de n canaux en représentation ambisonique d'ordre supérieur à 0, le procédé comportant : - déterminer pour la trame courante à coder, la valeur binaire indiquant un mode actif ou inactif d'un traitement de décorrélation à appliquer aux signaux de la trame courante et coder cette valeur dans le train binaire; - dans le cas où le mode est déterminé comme actif, coder dans le train binaire des informations de traitement de décorrélation; - générer un signal de sortie à coder dans le train binaire, en fonction du mode déterminé pour la trame courante et celui de la trame précédente. L'invention se rapporte également à un procédé de décodage correspondant ainsi qu'à des dispositifs de codage et de décodage mettant en œuvre les procédés de codage et de décodage respectifs.

Description

DESCRIPTION
Titre: Codage audio spatialisé avec adaptation d'un traitement de décorrélation
La présente invention concerne le codage/décodage de données sonores spatialisées, notamment en contexte ambiophonique (noté ci-après également « ambisonique »).
Les codeurs/décodeurs (ci-après appelés « codecs ») qui sont utilisés actuellement en téléphonie mobile sont mono (un seul canal de signal pour une restitution sur un seul haut- parleur). Le codec 3GPP EVS (pour « Enhanced Voice Services ») permet d'offrir une qualité « Super-HD » (aussi appelée voix « Haute Définition Plus » ou HD+) avec une bande audio en bande super-élargie (SWB pour « super-wideband » en anglais) pour des signaux échantillonnés à 32 ou 48 kHz ou pleine bande (FB pour « Fullband ») pour des signaux échantillonnés à 48 kHz ; la largeur de bande audio est de 14,4 à 16 kHz en mode SWB (de 9,6 à 128 kbit/s) et de 20 kHz en mode FB (de 16,4 à 128 kbit/s).
La prochaine évolution de qualité dans les services conversationnels proposés par les opérateurs devrait être constituée par les services immersifs, en utilisant des terminaux tels que des smartphones équipés de plusieurs microphones ou des équipements de conférence audio spatialisée ou de visioconférence de type télé-présence ou vidéo 360°, ou encore des équipements de partage de contenus audio « live », avec un rendu sonore spatialisé en 3D autrement plus immersif qu'une simple restitution stéréo 2D. Avec les usages de plus en plus répandus d'écoute sur téléphone mobile avec un casque audio et l'apparition d'équipements audio avancés (accessoires tels qu'un microphone 3D, assistants vocaux avec antennes acoustiques, casques de réalité virtuelle, etc.) la captation et le rendu de scènes sonores spatialisées sont désormais assez communes pour offrir une expérience de communication immersive.
A ce titre, la future norme 3GPP « IVAS » (pour « Immersive Voice And Audio Services ») propose l'extension du codec EVS à l'immersif en acceptant comme format d'entrée du codec au moins les formats de son spatialisé listés ci-dessous (et leurs combinaisons):
- Format multicanal (channel-based en anglais) de type stéréo ou 5.1, où chaque canal vient alimenter un haut-parleur (par exemple L et R en stéréo, ou L, R, Ls, Rs et C en 5.1) ;
- Format objet (object-based en anglais), où des objets sonores sont décrits comme un signal audio (en général mono) associé à des métadonnées décrivant les attributs de cet objet (position dans l'espace, largeur spatiale de la source, etc.),
- Format ambisonique (scene-based en anglais) qui décrit le champ sonore en un point donné, en général capté par un microphone sphérique ou synthétisé dans le domaine des harmoniques sphériques.
On s'intéresse ci-après typiquement au codage d'un son au format ambisonique, à titre d'exemple de réalisation (au moins certains aspects présentés en lien avec l'invention ci-après pouvant également s'appliquer à d'autres formats que de l 'ambisonique).
L'ambisonique est une méthode d'enregistrement (« codage » au sens acoustique) de son spatialisé et de reproduction (« décodage » au sens acoustique). Un microphone ambisonique (à l'ordre 1) comprend au moins quatre capsules (typiquement de type cardioïde ou sous- cardioïde) arrangées sur une grille sphérique, par exemple les sommets d'un tétraèdre régulier. Les canaux audio associés à ces capsules s'appellent le « A-format ». Ce format est converti dans un « B-format », dans lequel le champ sonore est décomposé en quatre composantes (harmoniques sphériques) notées W, X, Y, Z, qui correspondent à quatre microphones virtuels coïncidents. La composante W correspond à une captation omnidirectionnelle du champ sonore alors que les composantes X, Y et Z, plus directives, sont assimilables à des microphones à gradients de pression orientés suivant les trois axes orthogonaux de l'espace. Un système ambisonique est un système flexible dans le sens où l'enregistrement et la restitution sont séparés et découplés. Il permet un décodage (au sens acoustique) sur une configuration quelconque de haut-parleurs (par exemple, binaural, son « surround » de type 5.1 ou périphonie (avec élévation) de type 7.1.4). L'approche ambisonique peut être généralisée à plus de quatre canaux en B-format et cette représentation généralisée est couramment nommée « HOA » (pour « Higher-Order Ambisonics »). Le fait de décomposer le son sur plus d'harmoniques sphériques améliore la précision spatiale de restitution lors d'un rendu sur haut-parleurs.
Un signal ambisonique à l'ordre M comprend K=(M+1)2 composantes et, à l'ordre 1 (si M=l), on retrouve les quatre composantes, W, X, Y, et Z, qui est couramment appelé FOA (pour First-Order Ambisonics). Il existe aussi une variante dite « planaire » de l'ambisonique (W, X, Y) qui décompose le son défini dans un plan qui est en général le plan horizontal. Dans ce cas, le nombre de composantes est de K =2M+1 canaux. L'ambisonique d'ordre 1 (4 canaux : W, X, Y, Z), l'ambisonique d'ordre 1 planaire (3 canaux : W, X, Y), l'ambisonique d'ordre supérieur sont tous désignés ci-après par « ambisonique » indistinctement pour faciliter la lecture, les traitements présentés étant applicables indépendamment du type planaire ou non et du nombre de composantes ambisoniques. Par la suite, on appellera « signal ambisonique » un signal en B-format à un ordre prédéterminé avec un certain nombre de composantes ambisoniques. Cela comprend également les cas hybrides, où par exemple à l'ordre 2 on ne dispose que de 8 canaux (au lieu de 9) - plus précisément, à l'ordre 2, on retrouve les 4 canaux de l'ordre 1 (W, X, Y, Z) auxquels on ajoute normalement 5 canaux (habituellement notés R, S, T, U, V), et on peut par exemple ignorer un des canaux d'ordre supérieur (par exemple R). Cela comprend aussi les cas où un signal ambisonique a subi des prétraitements pour le transformer en des canaux prétraités avant codage.
Les signaux à traiter par le codeur/décodeur se présentent comme des successions de blocs d'échantillons sonores appelés « trames » ou « sous-trames » ci-après.
En outre, ci-après, les notations mathématiques suivent la convention suivante :
- Scalaire : s ou N (minuscule pour les variables ou majuscule pour les constantes)
- l'opérateur Re(.) désigne la partie réelle d'un nombre complexe
- Vecteur : u (minuscule, gras)
- Matrice : A (majuscule, gras)
Les notations AT et AH indique respectivement la transposition et la transposition hermitienne (transposée et conjuguée) de A.
- Un signal unidimensionnel à temps discret, s(i), défini sur un intervalle temporel i=0, ..., L- 1 de longueur L est représenté par un vecteur ligne
S=[s(0), ...,s(L-1)]
On pourra aussi écrire : s = [s0,..., sL-1 ] pour éviter l'usage des parenthèses.
- Un signal multidimensionnel à temps discret, b(i), défini sur un intervalle temporel i=0, ..., L-1 de longueur L et à K dimensions est représenté par une matrice de taille LxK:
Figure imgf000005_0001
On pourra aussi noter : B = [Bij], i=0,...K-1, j=0...L-1, pour éviter l'usage des parenthèses.
Par ailleurs, on ne rappelle pas ici les conventions connues de l'état de l'art en ambisonique concernant l'ordre des composantes ambisoniques (dont ACN pour « Ambisonic Channel Number », SID pour « Single Index Designation », FuMA pour « Furse-Malham ») et la normalisation des composantes ambisoniques (SN3D, N3D, maxN). Plus de détails peuvent être trouvés par exemple dans la ressource disponible en ligne :
Figure imgf000006_0001
Par convention, la première composante d'un signal ambisonique correspond en général à la composante omnidirectionnelle W.
L'approche la plus simple pour coder un signal ambisonique consiste à utiliser un codeur mono et à l'appliquer séparément à chacun des canaux individuels avec éventuellement une allocation des bits différente selon les canaux. Cette approche est appelée ici « multi- mono ». On peut étendre l'approche multi-mono à du codage multi-stéréo (où des paires de canaux sont codées séparément par un codec stéréo) ou plus généralement à l'utilisation de plusieurs instances parallèles d'un même codec cœur. Le signal d'entrée est divisé en canaux (un canal mono ou plusieurs canaux). Ces canaux sont codés séparément en fonction d'une répartition et d'une allocation binaire prédéterminées. Au décodage les canaux décodés sont recombinés selon la convention du signal d'entrée.
La qualité du codage multi-mono ou multi-stéréo varie selon le codage et le décodage cœur utilisé, et elle n'est en général satisfaisante qu'à très haut débit. Par exemple, dans le cas multi-mono, le codage EVS peut être jugé quasi-transparent (d'un point de vue perceptif) à un débit d'au moins 48 kbit/s par canal (mono); ainsi pour un signal ambisonique à l'ordre 1 on obtient un débit minimal de 4x48 = 192 kbit/s. L'approche de codage multi-mono ne prenant pas en compte la corrélation entre canaux, elle produit des déformations spatiales avec l'ajout de différents artéfacts comme l'apparition de sources sonores fantômes, de bruits diffus ou de déplacements des trajectoires de sources sonores. Ainsi, le codage d'un signal ambisonique selon cette approche engendre des dégradations de la spatialisation.
Une approche alternative au codage séparé des canaux est donnée par le codage paramétrique comme le codage DiRAC décrit par exemple dans l'article V. Pulkki, Spatial sound reproduction with directional audio coding, Journal of the Audio Engineering Society, vol. 55, no. 6, pp. 503- 516, 2007. Dans ce document, une analyse directionnelle du signal ambisonique est réalisée par trame et sous-bandes pour déterminer des directions de source (DoA). Les DoA sont complétées par des paramètres de « diffuseness », ce qui donne une description paramétrique de la scène sonore. Le signal d'entrée multicanal est codé sous la forme de canaux de downmix (typiquement un signal mono ou stéréo obtenu par réduction de multiples canaux captés) et des métadonnées spatiales (DoA et « diffuseness » par sous-bandes). On s'intéresse dans l'invention à une autre approche particulière de codage ambisonique, décrite dans les publications suivantes :
- P. Mahé, S. Ragot, S. Marchand, "First-order ambisonic coding with quaternion-based interpolation of PCA rotation matrices," Proc. EAA Spatial Audio Signal Processing Symposium, Paris, France, Sept. 2019, pp. 7-12
- P. Mahé, S. Ragot, S. Marchand, "First-Order Ambisonic Coding with PCA Matrixing and Quaternion-Based Interpolation," Proc. DAFx, Birmingham, UK, Sept. 2019.
Cette approche, appelée par la suite codage par analyse en composantes principales ou simplement codage PCA (pour Principal Component Analysis) utilise la quantification et l'interpolation de matrices de rotations associées aux vecteurs propres d'une analyse PCA, comme décrit également dans la demande de brevet WO2020177981. La stratégie de ce type de codage ambisonique est de décorréler les canaux du signal ambisonique et de coder ensuite séparément les canaux transformés avec un codec cœur (par exemple multi-mono). Cette stratégie permet de limiter les artéfacts spatiaux dans le signal ambisonique décodé.
Dans cette approche, pour un signal ambisonique d'ordre 1, des matrices de rotation de taille 4x4 en 3D (issues d'une analyse PCA/KLT telle que décrite par exemple dans la demande de brevet suscitée) sont converties en paramètres, par exemple 6 angles d'Euler généralisés ou deux quaternions unitaires, qui sont codés.
Sans perte de généralité, on retient ici plus particulièrement le domaine des quaternions qui permet d'interpoler efficacement les matrices de transformation calculées pour l'analyse PCA/KLT ; les matrices de transformation étant des matrices de rotation, au décodage, l'opération de matriçage inverse s'effectue simplement en transposant la matrice appliquée au codage.
La figure 1 illustre cette méthode de codage dans le cas où la représentation par quaternions est utilisée à la fois pour le codage et l'interpolation des matrices de rotation. Le codage se déroule en plusieurs étapes.
Le signal multicanal d'origine A de dimension KxL (soit K composantes de L échantillons temporels ou fréquentiels) est en entrée. Dans le bloc 100 on réalise une analyse PCA divisée en plusieurs étapes :
Les signaux des canaux (par exemple W, Y, Z, X pour le cas FOA) sont supposés être sous une forme matricielle A avec une matrice n x L (pour n canaux ambisoniques (ici 4) et L échantillons par trame). On peut optionnellement pré-traiter ces canaux par exemple par un filtre passe-haut.
Une matrice de covariance du signal multicanal A est obtenue, par exemple comme suit : C = A.AT à un facteur de normalisation près (dans le cas réel) ou
C = Re(A.AH) à un facteur de normalisation près (dans le cas complexe)
Des opérations de lissage temporel de la matrice de covariance peuvent être utilisées. Dans les cas d'un signal multicanal dans le domaine temporel, la covariance peut être estimée de façon récursive (échantillon par échantillon). On peut également diviser la trame en sous- trames et déterminer une matrice de covariance par sous-trames qui est ensuite lissée.
On note en particulier les éléments diagonaux de C sous la forme Cii, ils représentent l'énergie du i-ème canal d'entrée du traitement PCA.
On applique une analyse en composantes principales PCA ou de façon équivalente une transformée de Karhunen-Loeve (KLT), avec une décomposition en valeurs propres de la matrice de covariance C, pour obtenir des valeurs propres A et une matrice de vecteurs propres U de sorte que C = UAUT
La matrice de vecteurs propres initiale U, obtenue pour la trame courante t, subit des permutations signées pour qu'elle soit la plus alignée possible avec la matrice de même nature V de la trame précédente t - 1, afin d'assurer une cohérence maximale entre les matrices de transformation entre deux trames. On s'assure en outre que la matrice de vecteurs propres de la trame courante t, ainsi corrigée par permutations signées, représente bien l'application d'une rotation.
Dans le bloc 110, la nouvelle matrice de vecteurs propres V pour la trame courante t (qui est une matrice de rotation) est convertie dans un domaine approprié de paramètres de quantification. La matrice de valeurs propres correspondante est ici noté A = diag(λ1; ..., λn). On prend ici le cas d'une conversion en 2 quaternions unitaires pour une matrice 4x4 ; on aurait un seul quaternion unitaire pour une matrice 3x3 dans le cas ambisonique planaire.
En dimension 4 (n = 4), une matrice de rotation V peut être paramétrée par le produit de deux quaternions unitaires q1 et q2 sous la forme matricielle :
Figure imgf000008_0001
où les quaternions sont avec par
Figure imgf000008_0003
exemple :
Figure imgf000008_0002
Et
Figure imgf000009_0001
Inversement, étant donné une matrice de rotation 4x4, il est possible de retrouver un double quaternion associé (q1, q2) et les matrices correspondantes. Autrement dit, on peut factoriser cette matrice en un produit de matrices sous la forme par exemple avec la méthode
Figure imgf000009_0002
dite « factorisation de Cayley ». Cela implique en général de calculer une matrice intermédiaire appelée « matrice associée » (ou « transformée tétragonale ») et d'en déduire les quaternions à une indétermination près sur le signe des deux quaternions.
Ces paramètres q1, q2 sont codés selon une méthode de codage de l'état de l'art (bloc 120) sur un nombre de bits alloués à la quantification de paramètres. Par exemple on pourrait utiliser 19 bits pour q1 et 18 bits pour q2, ce qui donne un budget NQ=37 bits par trame.
La trame courante est découpée en sous-trames, dont le nombre ici est supposé fixe. La représentation par quaternions codés est interpolée (bloc 130) par sous-trames successives d'indice t' depuis la fin de la trame précédente t - 1 jusqu'à fin de la trame courante t, afin de lisser dans le temps la différence entre matriçage inter-trames. Les quaternions interpolés dans chaque sous-trame sont convertis en matrices de rotation (bloc 140) puis on
Figure imgf000009_0003
applique les matrices résultantes de rotation décodées et interpolées dans chaque sous-trame (bloc 150).
On obtient en sortie du bloc 150 une matrice représentant chacune des sous-trames des signaux des canaux ambisoniques pour décorréler ces signaux et obtenir le signal transformé B. Une allocation binaire aux canaux séparés est également effectuée (bloc 160) à partir du nombre de bits global auquel on retranche les NQ bits utilisés dans le bloc 120.
La figure 2 illustre le décodage correspondant. Les indices de quantification des paramètres de quantification de la matrice de rotation dans la trame courante sont dé-multiplexés (bloc 200) et décodés dans le bloc 230 selon une méthode de décodage correspondant au codage (bloc 120). Les canaux transformés sont également décodés (bloc 220), à partir de l'allocation binaire (bloc 210) identique au codeur (bloc 160).
Les étapes de conversion et d'interpolation (blocs 240, 250) du décodeur sont identiques à celles effectuées à l'encodeur (blocs 130 et 140).
Le bloc 260 applique par sous-trame le matriçage inverse issu du bloc 250 aux signaux décodés des canaux ambisoniques, en rappelant que l'inverse d'une matrice de rotation est sa transposée. On notera que le retard algorithmique lié au codage-décodage (blocs 170 et 220) doit être compensé en mémorisant de façon adéquate les valeurs de matriçage inverse.
Le codage ambisonique tel que réalisé aux figures 1 et 2 suppose que les canaux d'entrée sont (suffisamment) corrélés. En particulier il suppose que la décorrélation par le bloc 150 apporte un gain de codage ; de plus, il suppose que le matriçage est stable d'une trame à l'autre pour ne pas générer d'artéfacts audio au niveau du signal transformé B. On note également que le codage des métadonnées (bloc 120) utilise un débit typiquement de l'ordre de 2 kbit/s (par exemple 1.85 kbit/s quand NQ=37 bits par trame de 20 ms) qui est pris au budget de codage des canaux (blocs 160 et 170).
Cependant, pour certains signaux tels que des enregistrements d'applaudissement où le champ sonore est relativement diffus, le gain de décorrélation peut être faible. Pour des signaux instables spatialement, par exemple des sons percussifs dont la localisation alterne rapidement à chaque trame dans l'espace sonore, l'analyse PCA (bloc 100) peut conduire à une très forte variation du matriçage par
Figure imgf000010_0001
. Dans ces deux cas, une utilisation constante de métadonnées pour représenter la transformation PCA s'avère peu pertinente.
La présente invention vient améliorer cette situation.
Elle propose à cet effet un procédé de codage de signaux sonores formant une succession dans le temps de trames (t-1, t) d'échantillons, dans chacun de n canaux en représentation ambisonique d'ordre supérieur à 0, le procédé comportant :
- déterminer pour la trame courante à coder, une valeur binaire indiquant un mode actif (ON) ou inactif (OFF) d'un traitement de décorrélation à appliquer aux signaux de la trame courante et coder cette valeur dans le train binaire;
- dans le cas où le mode est déterminé comme actif, coder dans le train binaire des informations de traitement de décorrélation ;
- générer un signal de sortie à coder dans le train binaire, en fonction du mode déterminé pour la trame courante et celui de la trame précédente.
Ainsi, la présente invention permet d'adapter l'utilisation d'une décorrélation entre les n canaux en fonction des caractéristiques du signal d'entrée.
Dans un mode de réalisation, la détermination de la valeur binaire indiquant un mode actif ou inactif s'effectue selon au moins un critère de gain de codage de signaux avant et après traitement de décorrélation.
Ce critère permet ainsi de s'assurer que le traitement de décorrélation apporte un gain suffisant pour être activer. Selon un mode particulier de réalisation, le gain de codage est défini par la valeur logarithmique suivante :
Figure imgf000011_0002
avec al les énergies des canaux d'entrée du traitement de décorrélation et
Figure imgf000011_0001
les valeurs propres des canaux d'entrée, le mode étant déterminé comme inactif pour une valeur du gain G prédéfinie.
Dans un mode de réalisation, la détermination de la valeur binaire indiquant un mode actif ou inactif s'effectue selon un critère de distance inter-trame entre matrices de rotation appliquant le traitement de décorrélation.
Ainsi, selon la valeur de cette distance, on adapte la génération du signal à coder pour éviter de trop fortes variations de la matrice de transformation appliquant le traitement de décorrélation.
Selon un mode de réalisation particulier, dans lequel les matrices de rotation sont représentées en double quaternion, la distance inter-trame entre matrices de rotation s'exprimant à partir d'un produit scalaire entre les quaternions à la trame courante et ceux de la trame précédente.
Dans un mode de réalisation, la détermination de la valeur binaire indiquant un mode actif ou inactif s'effectue selon un critère de distance entre une matrice de rotation, appliquant le traitement de décorrélation, de la trame courante et la matrice identité.
Ainsi, là aussi, selon la valeur de cette distance, on adapte la génération du signal à coder pour éviter de trop fortes variations de la matrice de transformation appliquant le traitement de décorrélation par rapport à un codage direct de l'entrée.
Dans un mode de réalisation particulier, dans lequel les matrices de rotation sont représentées en double quaternion, la distance entre la une matrice de rotation de la trame courante et la matrice identité s'exprimant sous la forme d'un produit scalaire entre les quaternions à la trame courante et des quaternions unitaires.
L'invention s'applique à un procédé de décodage de signaux sonores formant une succession dans le temps de trames (t-1, t) d'échantillons, dans chacun de n canaux en représentation ambisonique d'ordre supérieur à 0, le procédé comportant :
- recevoir, pour une trame courante (t), en plus des signaux des n canaux de cette trame courante, une valeur binaire indiquant un mode actif ou inactif d'un traitement de décorrélation appliqué au signaux de la trame courante ;
- dans le cas où le mode est déterminé comme actif, décoder des informations de traitement de décorrélation reçues dans le train binaire; - générer un signal de sortie, en fonction dudit mode déterminé pour la trame courante et celui de la trame précédente.
Le procédé de décodage a les mêmes avantages que le procédé de codage correspondant.
La présente invention vise aussi un dispositif de codage comportant un circuit de traitement pour la mise en œuvre du procédé de codage présenté précédemment.
Elle vise aussi un dispositif de décodage comportant un circuit de traitement pour la mise en œuvre du procédé de décodage ci-avant.
Elle vise aussi un programme informatique comportant des instructions pour la mise en œuvre du procédé ci-avant, lorsque ces instructions sont exécutées par un processeur d'un circuit de traitement.
Elle vise aussi un support mémoire non-transitoire stockant les instructions d'un tel programme informatique.
D'autres avantages et caractéristiques et caractéristiques de l'invention apparaitront à la lecture d'exemples de réalisation présentés dans la description détaillée ci-après, et à l'examen des dessins annexés sur lesquels :
[Fig 1] illustre un mode de réalisation d'un codeur et d'un procédé de codage selon une méthode de l'état de l'art ;
[Fig 2] illustre un mode de réalisation d'un décodeur et d'un procédé de décodage selon une méthode de l'état de l'art ;
[Fig 3] illustre un mode de réalisation d'un codeur et d'un procédé de codage selon un mode de réalisation de l'invention ;
[Fig 4] illustre un mode de réalisation d'un décodeur et d'un procédé de décodage selon un mode de réalisation de l'invention ;
[Fig 5] illustre des exemples de réalisation structurelle d'un codeur et d'un décodeur au sens de l'invention.
Sans perte de généralité le signal d'entrée est supposé être un signal ambisonique d'ordre 1 FOA au format ACN et selon la normalisation SN3D. Dans des variantes, le signal d'entrée pourra avoir subi des prétraitements, pour obtenir 4 canaux dérivés d'un signal ambisonique (FOA) original. La figure 3 illustre une méthode de codage selon l'invention où la décorrélation par PCA est appliquée de façon adaptive (PCA active ou non) dans chaque trame supposée ici de longueur 20 ms (par exemple L=960 échantillons à 48 kHz). On suppose que R bits sont alloués à la trame courante pour le codage, par exemple à 256 kbit/s on a R = 5120 bits. Dans des variantes, ce budget R pourra être diminué en fonction de bits déjà utilisés par d'éventuelles opération de prétraitement sur le signal avant codage par PCA.
La décision d'adaptation est donnée par le bloc 300 qui détermine la valeur d'une indication d'activation ou non d'un traitement de décorrélation (PCA) à appliquer à la trame courante, cette indication correspond à mode =ON (PCA active ou activée) ou OFF (PCA inactive ou désactivée). Les critères de décision seront décrits ultérieurement.
Ainsi, une valeur binaire indiquant un mode actif (ON) ou inactif (OFF) d'un traitement de décorrélation de type PCA est déterminée par le bloc 300. Le fonctionnement du codeur dépend du mode dans la trame courante d'indice t (mode) et celui de la trame précédente d'indice t- 1 (prev_modë). Sans perte de généralité, on suppose qu'au démarrage du codeur, l'état initial de la trame précédente est prev_mode=OFF.
On distingue les 4 combinaisons possibles :
• Si mode = ON et prev_mode = ON, on retrouve un fonctionnement identique à celui de la figure 1, c'est-à-dire que les blocs 100, 110, 120, 320, 140, 150 et 170 de la figure 3 appliquent respectivement les mêmes traitements que les blocs 100, 110, 120, 130, 140, 150 et 170 décrits à la figure 1. La branche 2 pour laquelle le signal d'entrée subit une transformation est sélectionnée par le bloc 330. Dans le bloc d'allocation 340, on prend en compte le fait que le codage par PCA utilise 1 bit pour indiquer le mode (ON) de la trame courante, NQ bits pour coder les métadonnées et R-1-NQ bits pour coder les canaux (bloc 170).
• Si mode = OFF et prev_mode = OFF, la décorrélation par PCA est « court-circuitée », la branche 1 est sélectionnée par le bloc de sélection 330. Le signal à coder B est identique au signal d'entrée A. Le bloc d'allocation 340 prend en compte le fait qu'on utilise 1 bit pour indiquer le mode (OFF) de la trame courante et R-l bits pour coder les canaux (bloc 170). Par défaut, on fixe les vecteurs propres
Figure imgf000013_0004
V à la matrice identité et les quaternions codés à (1,0, 0,0) dans la trame courante - à la prochaine
Figure imgf000013_0001
trame, ces valeurs seront utilisées pour définir l'état de la trame précédente.
• Si mode = OFF et prev_mode = ON, on fixe les vecteurs propres
Figure imgf000013_0003
à la matrice identité et les quaternions codés à (1,0, 0,0), on réalise une interpolation (bloc 320)
Figure imgf000013_0002
entre ces valeurs et les valeurs de la trame précédente. Les détails de cette interpolation sont précisés ci-dessous. Le module de sélection active la branche 2, dans laquelle les signaux d'entrée sont transformés en 150 par une matrice issue de l'interpolation effectuée en 320. Il n'est pas nécessaire ici de coder des informations sur la matrice de transformation de la trame courante puisque l'indication a une valeur négative pour cette trame courante. Le module d'insertion de ces données codées en 310 est donc déconnecté. Le bloc d'allocation 340 prend en compte le fait qu'on utilise 1 bit pour indiquer le mode de la trame courante et R-1 bits pour coder les canaux (bloc 170).
• Si mode = ON et prev_mode = OFF, on réalise une interpolation (bloc 320) entre les valeurs courantes des quaternions codés et les valeurs (par défaut) à (1,0, 0,0)
Figure imgf000014_0003
de la trame précédente. Les détails de cette interpolation sont précisés ci-dessous. Le module de sélection active la branche 2, dans laquelle les signaux d'entrée sont transformés en 150 par une matrice issue de l'interpolation effectuée en 320. Le module d'insertion des données de transformation de la trame courante codées, en 310 est ici connecté car une transformation PCA et donc un traitement de décorrélation est bien appliqué pour cette trame courante. Ces données sont codées sur NQ bits. Le bloc d'allocation 340 prend en compte le fait qu'on utilise 1 bit pour indiquer le mode de la trame courante et R-1-NQ bits pour coder les canaux (bloc 170).
A l'issue du traitement de la trame précédente, les vecteurs propres V et les quaternions codés
Figure imgf000014_0002
à la trame courante t sont mémorisés pour définir le nouvel état de la trame précédente t-1 avant de traiter la prochaine trame. La décision de mode (mode) de la trame courante t est également mémorisée pour définir le nouvel état (prev_mode) de la trame précédente t-1 avant de traiter la prochaine trame.
Le module de multiplexage 350 insère ainsi les données codées dans le train binaire selon l'allocation définie au bloc 340 et en fonction de l'indication d'activation déterminée pour la trame courante et pour la trame précédente.
On décrit maintenant des réalisations de l'interpolation (bloc 320). Ce bloc s'appuie sur les quaternions codés
Figure imgf000014_0001
a trame courante t et les quaternions codés et
Figure imgf000014_0004
à la trame précédente t-1. L'interpolation peut être mise en œuvre selon le pseudo
Figure imgf000014_0005
code suivant où on utilise N sous-trames, par exemple N=40 :
- Détermination du chemin le plus court pour les quaternions :
Figure imgf000014_0006
Figure imgf000015_0001
- Interpolation par sous-trames des quaternions sur N sous-trames selon la méthode NLERP (pour Normalized linear interpolation) :
Pour t' = 0 à N-1 :
Figure imgf000015_0002
Où norm est l'opération de normalisation (à la norme unité) de quaternion qui correspond à une normalisation sur la sphère unité en dimension 4. Dans des variantes la définition de α(t') pourra être modifiée, par exemple en prenant α(t') = t' / (N-1). L'utilisation de la fonction 1-0.5 (1-cos(x)) permet ici d'assurer une interpolation plus lente sur les extrémités.
Dans des variantes, d'autres interpolations de quaternions (ex : SLERP pour Spherical linear interpolation ou autre) sont possibles. La méthode NLERP est ici utilisée car elle est moins complexe et plus stable pour une précision numérique limitée.
- Conversion de (qui correspond au bloc 140 et est connue
Figure imgf000015_0003
dans l'état de l'art)
Ainsi cette interpolation conduit à des valeurs de matriçage constantes par morceaux avec une découpe régulière en N sous-trames.
Dans des variantes, d'autres méthodes d'interpolation seront possibles. Par exemple, il sera possible d'appliquer l'interpolation échantillon par échantillon au début de la trame (sur les N premiers échantillons) avant de conserver une valeur constante sur le reste de
Figure imgf000015_0004
la trame (soit L-N échantillons) ; dans ce cas l'indice t' ci-dessus correspond à l'indice de l'échantillon, la sous-trame comprend un seul échantillon.
Dans des variantes d'autres réalisations de l'interpolation sont possibles avec une découpe en sous-trames différente.
On décrit maintenant des exemples de réalisation du bloc de décision 300.
Dans un exemple de réalisation, la détermination de l'indication d'activation du traitement de décorrélation, utilise plusieurs critères avec des décisions par seuil : 1. Gain de codage de la PCA
2. Distance inter-trame entre matrices de rotation (qui peut se voir comme une mesure de stabilité spatiale)
3. Distance entre la matrice de rotation dans la trame courante et une matrice identité Les motivations des différents critères sont respectivement les suivantes :
1. S'assurer que la décorrélation par PCA apporte un gain suffisant pour justifier son activation par rapport à un codage direct
2. S'assurer que l'interpolation entre la matrice de rotation dans la trame courante et celle de la trame précédente n'occasionne pas de variations très fortes du matriçage dans le temps
3. S'assurer que l'interpolation entre la matrice de rotation dans la trame courante et une éventuelle désactivation de la PCA n'occasionne pas de variations très fortes du matriçage dans le temps.
Dans un mode possible de réalisation, un autre critère peut être basé sur la matrice de corrélation des signaux d'entrée, et à ses valeurs en dehors des valeurs de la diagonale. La matrice de corrélation est équivalente à la matrice de covariance, mis à part que les composantes ambisoniques sont respectivement normalisées par leur écart-type avant de calculer l'intercorrélation. Le critère peut ainsi être défini indépendamment du signal du signal d'entrée, avec un seuil prédéterminé appliqué par exemple sur la valeur maximale ou moyenne (en valeur absolue) hors diagonale dans la matrice de corrélation.
Ceci permet de vérifier qu'il existe une corrélation minimale entre les signaux d'entrée et qu'un traitement de décorrélation est utile.
On donne ci-dessous des exemples de réalisation de ces critères de décision.
On reprend ici la définition du gain de codage pour une transformation PCA/KLT dans le cas d'une source gaussienne avec n canaux :
Figure imgf000016_0001
Ce qui correspond au ratio entre la moyenne arithmétique et la moyenne géométrique des variances (énergies) des composantes à coder (dans le cas gaussien).
Selon l'invention on prend plutôt le ratio des moyennes géométriques entre les énergies Cii = des canaux d'entrée A au numérateur et les valeurs propres λi au dénominateur. Le gain exprimé en valeur logarithmique devient :
Figure imgf000017_0001
On suppose que les valeurs propres sont en ordre décroissant et positives. Le terme ε est par exemple fixé à ε = 10-8 pour conditionner le calcul du logarithme.
Le gain G correspond en fait à la somme (dans le domaine logarithmique) des gains de codage (ou décorrélation) entre les canaux individuels (séparés) pris avant et après PCA.
Dans des variantes, on pourra aussi normaliser les valeurs propres, dans ce cas le facteur de normalisation est également appliqué aux valeurs d'énergie
Figure imgf000017_0002
On définit maintenant un exemple de critère de distance entre matrices. Dans le mode de réalisation privilégié, on s'appuie sur la représentation en double quaternion, et on détermine la distance angulaire par un produit scalaire entre les quaternions à la trame courante t et ceux de la trame précédente t-1:
P1 = q1(t - 1). q1(t)
P2 = q2(t — 1). q2(t)
La distance entre les matrices de rotations associées aux trames t et t-1 est évaluée comme : minP=min(Pl, P2)
De façon similaire, on peut définir la distance entre la matrice de rotation à la trame t et une matrice identité (représentée par les quaternions unitaires q1 = q2 = (1,0, 0,0)) comme :
(1,0, 0,0). q1(t) = a1
(l,0,0,0). q2(t) = a2
Et minP2 = min(a1; a2)
Alors la décision (bloc 300) peut être réalisée dans un exemple comme suit : lorsque l'indication d'activation est par défaut positive, c'est-à-dire telle que mode = ON (mode actif), l'indication bascule en mode négatif telle que mode = OFF (mode inactif) si le gain de codage G est inférieur à un seuil prédéfini, par exemple à 6 ou si la distance inter-trame entre matrice de rotation est inférieure à un seuil par exemple 0.8 ou encore si la distance entre la matrice de rotation de la trame courante et une matrice identité est inférieure à un seuil, par exemple 0.
On a alors :
Si G < 6 mode = OFF Si minP < 0.8 mode = OFF
Si minP2 < 0 mode = OFF
Dans des variantes, les valeurs des seuils (respectivement 6, 0.8, 0) peuvent être différentes. Dans des variantes l'indication d'activation est par défaut négative, c'est-à-dire telle que mode = OFF, et l'indication bascule en mode positif telle que mode = ON si tous les critères vérifient les conditions opposées à celles définies ci-dessus. Cela revient donc à simplement inverser la logique de décision pour le même résultat.
Dans d'autres variantes, au moins un des trois critères définis selon l'invention est utilisé, les autres peuvent ne pas être utilisés ou remplacés par d'autres critères.
On décrit maintenant des variantes des critères de décision.
Dans des variantes on pourrait prendre d'autres définitions des critères, par exemple le gain de codage pourrait être:
Figure imgf000018_0002
Où le terme constant logQ) peut être omis
Figure imgf000018_0001
Dans des variantes, d'autres mesures de distance entre matrices de rotation peuvent être définies, par exemple une distance de Frobenius ou une autre distance entre les matrices de rotation , comme la norme de Frobenius de où I est la
Figure imgf000018_0003
Figure imgf000018_0004
matrice identité de dimension n
Dans le cas d'un critère basé sur la matrice de corrélation des signaux d'entrée, la matrice de corrélation correspond à la matrice de covariance appliqué à des composantes normalisées des signaux A. Une telle matrice de covariance, comme décrit en référence à la figure 1, est obtenue, par exemple comme suit :
C = A.AT à un facteur de normalisation près (dans le cas réel)
OU
C = Re(A.AH) à un facteur de normalisation près (dans le cas complexe). On note en particulier les éléments diagonaux de C sous la forme Cii, ils représentent l'énergie du i-ème canal d'entrée.
Les éléments de la matrice de covariance pris en compte ici sont les termes Cij, et Cji de la matrice avec i #j. La valeur maximale de ces termes est déterminée et comparée à un seuil, par exemple de valeur 0.1. Dans le cas où la valeur est supérieure à ce seuil, alors le mode de la trame courante est déterminé comme actif, mode ON. A l'inverse, le mode est déterminé comme inactif, mode OFF.
Dans des variantes, le bloc de décision pourra réaliser une décision « en boucle fermée », cela revient à appliquer un traitement PCA pour les blocs 100 à 150 afin d'obtenir une version initiale du signal transformé B avant de confirmer que la décision modedans la trame courante d'indice t est ON. On peut dans ce cas remplacer les valeurs propres
Figure imgf000019_0001
par les énergies respectives des canaux de la version initiale B. Si la décision est finalement à OFF, il faut alors remplacer la version initiale du signal transformé B.
Dans des variantes, où la décision en boucle fermée est utilisée, on pourra ajouter des critères de décision d'activation supplémentaires, comme la détection de valeur absolue maximale dans chaque canal individuel avant et après PCA (dans A et B), si cette valeur absolue (dans la trame courante) dans l'un des canaux de B dépasse celle du canal correspondant dans le signal d'entrée A le mode est mis à OFF dans la trame courante.
La figure 4 illustre un décodeur mettant en œuvre le procédé de décodage selon un mode de réalisation de l'invention.
Le train binaire est démultiplexé en 400 et le décodeur 220 reçoit les canaux du signal multicanal à décoder selon une allocation binaire déterminé en 420.
Le module 410 reçoit l'indication d'activation d'un traitement de décorrélation pour la trame courante et applique les traitements de décodage et de transformation adaptés à cette indication, de la même façon que ceux effectués au codage.
En fonction de la valeur de l'indication de la trame précédente, on distingue les 4 combinaisons suivantes :
• Si mode = ON et prev_mode = ON, on retrouve un fonctionnement identique à celui de la figure 2, c'est-à-dire que les blocs 220, 230, 430, 250 et 260 de la figure 4 appliquent respectivement les mêmes traitements que les blocs 220, 230, 240, 250 et 260 décrits à la figure 2. La branche 2 pour laquelle le signal décodé subit une transformation par le bloc 260 est sélectionnée par le bloc 440. Le module de décodage des informations de transformation reçues dans le train binaire est mis en œuvre par le bloc de connexion 430. Le bloc d'allocation 420 utilise les R- 1-NQ bits pour décoder les canaux en 220. Par défaut, on fixe les vecteurs propres V à la matrice identité et les quaternions codés à (1,0, 0,0) dans la trame courante
Figure imgf000020_0001
- à la prochaine trame, ces valeurs seront utilisées pour définir l'état de la trame précédente.
• Si mode = OFF et prev_mode = OFF, la décorrélation par PCA est « court-circuitée », la branche 1 est sélectionnée par le bloc de sélection 440. Le signal décodé
Figure imgf000020_0005
est identique au signal décodé de sortie
Figure imgf000020_0002
. Le bloc d'allocation 420 utilise les R-1 bits pour décoder les canaux en 220.
• Si mode = OFF et prev_mode = ON, on fixe les vecteurs propres
Figure imgf000020_0004
à la matrice identité et les quaternions codés à (1,0, 0,0) dans la trame courante, on réalise une
Figure imgf000020_0003
interpolation (bloc 430) entre ces valeurs et les valeurs de la trame précédente, de façon identique au bloc 320. Le module de sélection 440 active la branche 2, dans laquelle les signaux décodés sont transformés en 260 par une matrice issue de l'interpolation effectuée en 430. Il n'est pas nécessaire ici de décoder des informations sur la matrice de transformation de la trame courante puisque l'indication a une valeur négative pour cette trame courante. Le module de décodage de ces données est donc déconnecté par le bloc 430. Le bloc d'allocation 420 utilise les R-1 bits pour décoder les canaux en 220.
• Si mode = ON et prev_mode = OFF, on réalise une interpolation (bloc 430) entre les valeurs courantes des quaternions codés et les valeurs (par défaut) de la trame précédente de façon identique au bloc 320. Le module de sélection 440 active la branche 2, dans laquelle les signaux décodés sont transformés en 260 par une matrice issue de l'interpolation effectuée en 430. Le module de décodage 230 des données de transformation de la trame courante codées, est ici connecté par le module 430, car une transformation PCA et donc un traitement de décorrélation est bien appliqué pour cette trame courante. Le bloc d'allocation 420 utilise les R-1-NQ bits pour décoder les canaux en 220.
On notera que le retard algorithmique lié au codage-décodage (blocs 170 et 220) doit être compensé en mémorisant les valeurs de matriçage inverse V pour chaque sous-trame dans la trame courante ainsi que dans la trame précédente. Par exemple, lorsque le codage-décodage (blocs 170-220) est un codage EVS multi-mono on aura typiquement un retard de 12 ms à compenser. Si l'interpolation utilise N=40 sous-trames dans une trame de 20 ms (soit des sous-trames de 0.5 ms), il faudra donc utiliser une mémoire de 40+24=64 valeurs de matriçage (matrices 4x4) et le bloc 260 appliquera le matriçage décalé dans le temps de 24 sous-trames dans le passé. A l'issue du traitement de la trame précédente, les vecteurs propres
Figure imgf000021_0002
et les quaternions codés
Figure imgf000021_0001
à la trame courante t sont mémorisés pour définir le nouvel état de la trame précédente t-1 avant de traiter la prochaine trame. La décision de mode (mode) de la trame courante t est également mémorisée pour définir le nouvel état (prev_modë) de la trame précédente t-1 avant de traiter la prochaine trame.
On a illustré sur la figure 5 un dispositif de codage DCOD et un dispositif de décodage DDEC, au sens de l'invention, ces dispositifs étant duals l'un de l'autre (dans le sens de « réversibles ») et reliés l'un à l'autre par un réseau de communication RES.
Le dispositif de codage DCOD comporte un circuit de traitement incluant typiquement :
- une mémoire MEM1 pour stocker des données d'instructions d'un programme informatique au sens de l'invention (ces instructions pouvant être réparties entre le codeur DCOD et le décodeur DDEC) ;
- une interface INT1 de réception de signaux ambisoniques répartis sur différents canaux (par exemple quatre canaux W, Y, Z, X à l'ordre 1) en vue de leur codage en compression au sens de l'invention ;
- un processeur PROC1 pour recevoir ces signaux et les traiter en exécutant les instructions de programme informatique que stocke la mémoire MEM1, en vue de leur codage ; et
- une interface de communication COM 1 pour transmettre les signaux codés via le réseau.
Le dispositif de décodage DDEC comporte un circuit de traitement propre, incluant typiquement :
- une mémoire MEM2 pour stocker des données d'instructions d'un programme informatique au sens de l'invention (ces instructions pouvant être réparties entre le codeur DCOD et le décodeur DDEC comme indiqué précédemment) ;
- une interface COM2 pour recevoir du réseau RES les signaux codés en vue de leur décodage en compression au sens de l'invention ;
- un processeur PROC2 pour traiter ces signaux en exécutant les instructions de programme informatique que stocke la mémoire MEM2, en vue de leur décodage ; et
- une interface de sortie INT2 pour délivrer les signaux décodés sous forme de canaux ambisoniques W', Y', Z', X', par exemple en vue de leur restitution. Bien entendu, cette figure 5 illustre un exemple d'une réalisation structurelle d'un codec (codeur ou décodeur) au sens de l'invention. Les figures 3 à 4 décrivent en détails des réalisations plutôt fonctionnelles de ces codecs.

Claims

REVENDICATIONS Procédé de codage de signaux sonores formant une succession dans le temps de trames (t-1, t) d'échantillons, dans chacun de n canaux en représentation ambisonique d'ordre supérieur à 0, le procédé comportant :
- déterminer (300) pour la trame courante à coder, une valeur binaire indiquant un mode actif (ON) ou inactif (OFF) d'un traitement de décorrélation à appliquer aux signaux de la trame courante et coder cette valeur dans le train binaire;
- dans le cas où le mode est déterminé comme actif, coder (310) dans le train binaire des informations de traitement de décorrélation ;
- générer (330) un signal de sortie à coder dans le train binaire, en fonction du mode déterminé pour la trame courante et celui de la trame précédente. Procédé selon la revendication 1, dans lequel la détermination de la valeur binaire indiquant un mode actif ou inactif s'effectue selon au moins un critère de gain de codage de signaux avant et après traitement de décorrélation. Procédé selon la revendication 2, dans lequel le gain de codage est défini par la valeur logarithmique suivante :
Figure imgf000023_0001
avec les énergies des canaux d'entrée du traitement de décorrélation et
Figure imgf000023_0002
les valeurs propres des canaux d'entrée, le mode étant déterminé comme inactif pour une valeur du gain G prédéfinie. Procédé selon la revendication 1, dans lequel la détermination de la valeur binaire indiquant un mode actif ou inactif s'effectue selon un critère de distance inter-trame entre matrices de rotation appliquant le traitement de décorrélation. Procédé selon la revendication 4, dans lequel les matrices de rotation sont représentées en double quaternion, la distance inter-trame entre matrices de rotation s'exprimant à partir d'un produit scalaire entre les quaternions à la trame courante et ceux de la trame précédente. Procédé selon la revendication 1, dans lequel la détermination de la valeur binaire indiquant un mode actif ou inactif s'effectue selon un critère de distance entre une matrice de rotation, appliquant le traitement de décorrélation, de la trame courante et la matrice identité. Procédé selon la revendication 6, dans lequel les matrices de rotation sont représentées en double quaternion, la distance entre la une matrice de rotation de la trame courante et la matrice identité s'exprimant sous la forme d'un produit scalaire entre les quaternions à la trame courante et des quaternions unitaires. Procédé de décodage de signaux sonores formant une succession dans le temps de trames (t-1, t) d'échantillons, dans chacun de n canaux en représentation ambisonique d'ordre supérieur à 0, le procédé comportant :
- recevoir (410), pour une trame courante (t), en plus des signaux des n canaux de cette trame courante, une valeur binaire indiquant un mode actif (ON) ou inactif (OFF) d'un traitement de décorrélation appliqué au signaux de la trame courante ;
- dans le cas où le mode est déterminé comme actif, décoder (430) des informations de traitement de décorrélation reçues dans le train binaire;
- générer (440) un signal de sortie, en fonction dudit mode déterminé pour la trame courante et celui de la trame précédente. Dispositif de codage comportant un circuit de traitement pour la mise en œuvre des étapes du procédé de codage selon l'une des revendications 1 à 7. Dispositif de décodage comportant un circuit de traitement pour la mise en œuvre des étapes du procédé de décodage selon la revendication 8. Support de stockage, lisible par un processeur, mémorisant un programme informatique comportant des instructions pour l'exécution du procédé de codage selon l'une des revendications 1 à 7 ou du procédé de décodage selon la revendication 8.
PCT/EP2023/064457 2022-05-30 2023-05-30 Titre: codage audio spatialisé avec adaptation d'un traitement de décorrélation WO2023232823A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR2205172 2022-05-30
FR2205172A FR3136099A1 (fr) 2022-05-30 2022-05-30 Codage audio spatialisé avec adaptation d’un traitement de décorrélation

Publications (1)

Publication Number Publication Date
WO2023232823A1 true WO2023232823A1 (fr) 2023-12-07

Family

ID=82319882

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2023/064457 WO2023232823A1 (fr) 2022-05-30 2023-05-30 Titre: codage audio spatialisé avec adaptation d'un traitement de décorrélation

Country Status (2)

Country Link
FR (1) FR3136099A1 (fr)
WO (1) WO2023232823A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2015330759A1 (en) * 2014-10-10 2017-03-23 Qualcomm Incorporated Signaling channels for scalable coding of higher order ambisonic audio data
WO2020177981A1 (fr) 2019-03-05 2020-09-10 Orange Codage audio spatialisé avec interpolation et quantification de rotations

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2609591B1 (fr) * 2010-08-25 2016-06-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Appareil conçu pour générer un signal décorrélé au moyen d'informations de phase émises

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2015330759A1 (en) * 2014-10-10 2017-03-23 Qualcomm Incorporated Signaling channels for scalable coding of higher order ambisonic audio data
WO2020177981A1 (fr) 2019-03-05 2020-09-10 Orange Codage audio spatialisé avec interpolation et quantification de rotations

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
P. MAHÉS. RAGOTS. MARCHAND: "First-Order Ambisonic Coding with PCA Matrixing and Quaternion-Based Interpolation", PROC. DAFX, September 2019 (2019-09-01)
P. MAHÉS. RAGOTS. MARCHAND: "First-order ambisonic coding with quaternion-based interpolation of PCA rotation matrices", PROC. EAA SPATIAL AUDIO SIGNAL PROCESSING SYMPOSIUM, September 2019 (2019-09-01), pages 7 - 12
V. PULKKI: "Spatial sound reproduction with directional audio coding", JOURNAL OF THE AUDIO ENGINEERING SOCIETY, vol. 55, no. 6, 2007, pages 503 - 516

Also Published As

Publication number Publication date
FR3136099A1 (fr) 2023-12-01

Similar Documents

Publication Publication Date Title
EP2374123B1 (fr) Codage perfectionne de signaux audionumeriques multicanaux
EP2374124B1 (fr) Codage perfectionne de signaux audionumériques multicanaux
EP3427260B1 (fr) Codage et décodage optimisé d&#39;informations de spatialisation pour le codage et le décodage paramétrique d&#39;un signal audio multicanal
EP2143102B1 (fr) Procede de codage et decodage audio, codeur audio, decodeur audio et programmes d&#39;ordinateur associes
US11765536B2 (en) Representing spatial audio by means of an audio signal and associated metadata
EP2304721B1 (fr) Synthese spatiale de signaux audio multicanaux
WO2017103418A1 (fr) Traitement de réduction de canaux adaptatif pour le codage d&#39;un signal audio multicanal
WO2020177981A1 (fr) Codage audio spatialisé avec interpolation et quantification de rotations
FR3049084A1 (fr)
JP7453997B2 (ja) DirACベースの空間オーディオ符号化のためのパケット損失隠蔽
WO2023232823A1 (fr) Titre: codage audio spatialisé avec adaptation d&#39;un traitement de décorrélation
Mahé et al. First-order ambisonic coding with quaternion-based interpolation of PCA rotation matrices
EP4042418B1 (fr) Détermination de corrections à appliquer a un signal audio multicanal, codage et décodage associés
EP4172986A1 (fr) Codage optimise d&#39;une information representative d&#39;une image spatiale d&#39;un signal audio multicanal
RU2807473C2 (ru) Маскировка потерь пакетов для пространственного кодирования аудиоданных на основе dirac
FR3118266A1 (fr) Codage optimisé de matrices de rotations pour le codage d’un signal audio multicanal
EP4371108A1 (fr) Quantification vectorielle spherique optimisee
WO2024132968A1 (fr) Procédé et décodeur pour décodage stéréo avec un modèle de réseau de neurones artificiels
WO2023152348A1 (fr) Codage et décodage de coordonnées sphériques utilisant un dictionnaire de quantification sphérique optimisé
WO2009081002A1 (fr) Traitement d&#39;un flux audio 3d en fonction d&#39;un niveau de presence de composantes spatiales

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23731539

Country of ref document: EP

Kind code of ref document: A1