FR2891100A1 - Codec audio utilisant la transformation de fourier rapide, le recouvrement partiel et une decomposition en deux plans basee sur l'energie. - Google Patents
Codec audio utilisant la transformation de fourier rapide, le recouvrement partiel et une decomposition en deux plans basee sur l'energie. Download PDFInfo
- Publication number
- FR2891100A1 FR2891100A1 FR0607091A FR0607091A FR2891100A1 FR 2891100 A1 FR2891100 A1 FR 2891100A1 FR 0607091 A FR0607091 A FR 0607091A FR 0607091 A FR0607091 A FR 0607091A FR 2891100 A1 FR2891100 A1 FR 2891100A1
- Authority
- FR
- France
- Prior art keywords
- voice
- points
- bits
- size
- bands
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000006835 compression Effects 0.000 title claims description 31
- 238000007906 compression Methods 0.000 title claims description 31
- 230000006837 decompression Effects 0.000 title claims description 8
- 239000000872 buffer Substances 0.000 claims description 28
- 238000011084 recovery Methods 0.000 claims description 15
- 238000005070 sampling Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 7
- 238000000354 decomposition reaction Methods 0.000 claims description 3
- 230000003044 adaptive effect Effects 0.000 claims description 2
- 230000005236 sound signal Effects 0.000 abstract description 2
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- HHXYJYBYNZMZKX-UHFFFAOYSA-N 3,4:15,16-diepoxy-7-oxo-13(16),14-clerodadien-20,12-olide-(3alpha,4alpha)-form Natural products C12CCC3C4(C)CCCC(C)(C)C4CCC3(C)C1(C)CCC1C2(C)CCC1C(=C)C HHXYJYBYNZMZKX-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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 using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/0212—Speech 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 using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3053—Block-companding PCM systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Spectroscopy & Molecular 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)
Abstract
Codec audio utilisant la transformation de Fourier rapide, le recouvrement partiel et une décomposition en deux plans basée sur l'énergie.La présente invention concerne une méthode de compression et décompression audio simple, de grande qualité, ne nécessitant pas beaucoup de calculs et permettant d'atteindre des taux de compression très élevés. Ce codec est optimisé aussi bien pour la voix que pour la musique. Les méthodes les plus répandues actuellement utilisent le codage prédictif linéaire (LPC) dans le domaine temps pour la voix et la transformée en cosinus discrète modifiée (MDCT) dans le domaine des fréquences pour la musique. Le présent codec utilise la transformation de Fourier rapide (FFT).Les tampons de la transformation de Fourier rapide sont décomposés en avant plan (composé uniquement des plus grands points) et en arrière plan (composé des bandes les plus énergétiques). Les points non nuls dans les bandes ne sont constitués que des points non pris en compte dans l'avant plan.Pour la voix, ce codec utilise uniquement les magnitudes des pics locaux (sans les latéraux) et la partie imaginaire seule en décompression.Pour la musique et tous les signaux audio, il utilise les magnitudes et les phases des points de l'avant plan et de l'arrière plan, en compression et en décompression. Il peut utiliser aussi uniquement les pics locaux avec les phases. Les effets de bord sont supprimés à l'aide d'une méthode de recouvrement partiel (50% ou moins) permettant une parfaite reconstruction. Des méthodes de codage efficaces des magnitudes et des phases sont utilisées.Ce codec est destiné à toutes les communications vocales bidirectionnelles (voix sur IP ou téléphones portables par exemple), aux diffusions audio (radios sur Internet par exemple) ainsi qu'au stockage des données audio (fichiers sur disque dur par exemple).
Description
2891100 -1-
La présente invention concerne une méthode de compression et décompression audio simple, de grande qualité, ne nécessitant pas beaucoup de calculs et permettant d'atteindre des taux de compression très élevés. Ce codec est optimisé aussi bien pour la voix que pour la musique.
Les méthodes les plus répandues actuellement utilisent le codage prédictif linéaire (LPC) dans le domaine temps pour la voix et la transformée en cosinus discrète modifiée (MDCT) dans le domaine des fréquences pour la musique.
Le présent codec utilise la transformation de Fourier rapide (FFT) pour la voix et la 10 musique et une décomposition en deux plans basée sur l'énergie.
Notes: - Dans le domaine des fréquences, un pic local est un point dont la magnitude est plus grande que celle des points situés à gauche et à droite (points voisins ou points latéraux). Un point est plus grand qu'un autre si sa magnitude est plus grande. L'énergie d'une bande est la somme des carrés des magnitudes des points valides qui la composent.
- Le codage de la musique convient aussi à la voix mais est moins optimisé à cause notamment de la prise en compte de la phase qui entraîne le recouvrement nécessaire pour la suppression des effets de bord. C'est pourquoi nous distinguerons deux cas à chaque fois que cela est nécessaire.
- Dans le cas du recouvrement partiel, nous distinguerons aussi deux cas: le recouvrement avec 50% de chevauchement et le recouvrement avec moins de 50% de chevauchement (généralement 5% à 10%).
- Enfin, la musique marche parfaitement avec uniquement des pic locaux et les phases mais il y a généralement une petite perte de qualité.
Dans le domaine temps, les échantillons non compressés (PCM) sont convertis en 16 bits et en nombres réels double précision. Le nombre de canaux et la fréquence d'échantillonnage sont respectés.
La taille des trames (taille des tampons FFT) dépend de la fréquence d'échantillonnage comme suit: 8 et 11 kHz, fréquences inférieures ou égales à 11 kHz: 256 points par trame.
16 et 22 kHz, fréquences supérieures à 11 kHz et inférieures ou égales à 22 kHz: 512 points par trame.
32, 44 et 48 kHz, fréquences supérieures à 22 kHz et inférieures ou égales à 48 kHz: 1024 points par trame.
96 kHz, fréquences supérieures à 48 kHz: 2048 points par trame.
Une transformation de Fourier rapide est effectuée sur chaque trame pour se ramener dans le domaine des fréquences. Les magnitudes et les phases des points sont calculées. Tous les pics locaux sont déterminés. Le premier et le dernier points ne comptent pas comme des pics locaux. Tous les points de magnitude inférieure à -120 dB (par rapport à la magnitude maximum possible) sont mis à zéro ou ignorés. Enfin, tous les points dont la fréquence réelle est hors de l'intervalle 20 Hz - 22050 Hz sont mis à zéro ou ignorés. Voix: les phases sont ignorées. Tous les points qui ne sont pas des pics locaux sont ignorés. On ne tient pas compte des latéraux.
Musique: les phases sont prises en compte. On tient compte de tous les points dans le cas 20 général. On peut ne tenir compte que des pics locaux.
Chaque trame est divisée en avant plan constitué des N plus grands points et en arrière plan constitué des M bandes les plus énergétiques. Les bandes sont constituées de tous les points. Ceux qui sont déjà pris en compte dans l'avant plan ou qui ne peuvent pas être pris en compte sont mis à zéro ou ignorés. Ti y a un nombre fixe de points par bande.
Par exemple pour une décomposition en 64 bandes, il y a: 2 points par bande avec des trames de 256 points (128 points utiles dans le domaine des fréquences, soit la moitié des points).
4 points par bande avec des trames de 512 points.
8 points par bande avec des trames de 1024 points.
2891100 -3- 8 points par bande avec des trames de 2048 points (la moitié supérieure des points dans le domaine des fréquences n'est pas prise en compte).
Les magnitudes des points sont codées avec des valeurs entières à l'aide d'une méthode appropriée et d'une précision souhaitée. Le manque de grande précision pour les magnitudes n'entraîne pas de gros effets sur la qualité du son. Néanmoins, il faut une certaine précision s'il y a recouvrement. Les méthodes et les précisions ne sont pas nécessairement les mêmes pour l'avant plan et l'arrière plan. Deux méthodes de codage des magnitudes sont décrites: le logarithme à base l 0 et l'échelle corrigée à base 2 qui permet d'atteindre une grande précision.
Avec l'usage du logarithme à base 10 et une précision de n bits, les magnitudes sont codées à l'aide de la formule suivante: Code = 0 pour les points nuls, sinon: Code = (ValeurMaximum * log10 (Magnitude)) / log10 (MagnitudeMaximum). ValeurMaximum = valeur maximum dépendant de la précision n (ValeurMaximum = 2n-1, 255 en 8 bits, 1023 en 10 bits, ...).
MagnitudeMaximum = 32767 * Nombre de points par trame.
Magnitude = magnitude du point.
Le nombre de points par trame est doublé s'il y a recouvrement partiel à 50% (musique). On ne double pas le nombre de points par trame s'il y a un recouvrement partiel à moins de 50% (musique).
Avec l'échelle corrigée à base 2, les magnitudes sont codées sur 4 à 12 bits. Les quatre premiers bits (bits de poids faible) contiennent un indice de division (idivision) et les autres bits (bits de poids fort) un indice de reste (ireste). Les magnitudes calculées en double précision sont ramenées en 16 bits (en divisant par la moitié du nombre de points par trame). L'échelle corrigée à base 2 permet de coder un nombre réel x tel que 2X soit le plus voisin de la magnitude.
2891100 -4- La valeur exacte de x vaut: x = log2 (Magnitude) / log2 (2) = log10 (Magnitude) / logl0 (2) ; L'indice de division est égale à la partie entière de x: idivision = (int)x; L'indice de reste vaut: ireste = (int)((x - idividion) * ValeurMaximum) ; ValeurMaximum = valeur maximum dépendant de la précision n du reste. (ValeurMaximum = 2e-1, 15 en 4 bits, 63 en 6 bits, 255 en 8 bits, ...). 10 En décodage, x est donné par: x = (double)idivision + ((double)ireste / ValeurMaximum) ; et la magnitude est donnée par: Magnitude = 2x; Contrairement aux magnitudes, les positions doivent être exactes, sinon il y a une forte dégradation de la qualité du son.
Pour l'avant plan, il faut choisir une précision permettant d'atteindre tous les points désirés. Par exemple, avec une fréquence d'échantillonnage de 44 kHz, il y a 1024 points par trame dans le domaine temps et 512 points à atteindre dans le domaine des fréquences (le dernier point est ignoré). Il faut 9 bits de précision sans recouvrement ou avec un recouvrement à moins de 50 %, et 10 bits de précision avec un recouvrement à 50%. Pour diminuer le nombre de bits dans le codage des positions, on peut utiliser le codage relatif (donner la différence de la position d'un point par rapport à la position du point précédent). Ceci suppose de réordonner les points choisis par rapport à la position et d'intercaler si nécessaire des points de magnitude nulle entre deux points trop éloignés. Il ne faut pas dépasser le nombre maximum de points fixé pour l'avant plan. Si des points n'ont pas pu être pris en compte, il faut les prendre en compte avec l'arrière plan. A cause des pertes possibles si des points sont trop éloignés, le codage relatif des positions est plus adapté au codage de la voix, si le nombre maximum de points de l'avant plan n'est pas assez grand.
2891100 -5- Mais si le nombre maximum de points de l'avant plan est grand, les pertes sont nulles ou négligeables et le gain en taux des compression est important.
Pour l'arrière plan, ce sont les positions des bandes qui sont données. A l'intérieur d'une bande, la position n'est pas donnée mais toutes les magnitudes (nulles et non nulles) sont codées. Il faut 6 bits pour transmettre toutes les positions des bandes s'il y a 64 bandes numérotées de 0 à 63. On peut prendre 6 bits par position jusqu'à dix bandes (60 bits maximum) et 64 bits s'il y a plus de dix bandes, chaque bit indiquant la présence ou l'absence d'une bande. Dans ce cas, les bandes doivent être codées par ordre croissant de position. Il convient également de coder les bandes par ordre croissant dans tous les cas si on met en oeuvre les décimations de manière à ce qu'elles soient le plus contigu possible. Si on prend toutes les bandes (64 dans le cas où il y a 64 bandes dans l'arrière plan), on peut ne pas transmettre les positions des bandes (gain de 64 bits) et surtout ne pas calculer les énergies des bandes ou les ordonner (en fonction de l'énergie) et les réordonner (en fonction de la position).
Voix: Pour la voix, on n'utilise que les magnitudes des pics locaux (sans les latéraux) et la partie imaginaire seule en décompression.
Lors de la décompression, avant l'inverse de la transformation de Fourier rapide (inverse FFT), pour tous les points non nuls, on met à zéro la partie réelle (amplitude des cosinus) et on donne à la partie imaginaire (amplitude des sinus) la valeur de la magnitude décodée. L'utilisation de la partie imaginaire seule permet de réduire les effets de bord tout en gardant la qualité de la voix. Avec un nombre limité de pics locaux et de bandes, il n'y a pas d'effet de bord audible.
Musique: la musique exige beaucoup de points et / ou de bandes. La prise en compte des phases est nécessaire pour avoir le bon timbre musical mais entraîne des effets de bord s'il n'y a pas de recouvrement.
Pour la suppression des effets de bord avec la musique, on utilise une méthode de recouvrement partiel permettant une reconstruction parfaite, avec 50% ou moins de chevauchement.
2891100 -6- Recouvrement partiel avec 50% de chevauchement: La fenêtre d'analyse et de synthèse, appliquée dans le domaine temps avant FFT (compression) et inverse FFT (décompression), est la fonction sinus: w(n) = sin ((PI/N) * (n + 0,5) ); pour 0 <= n < N/2 w(n) = sin ( (PI/N) * (N-n-0,5)); pourN/2<=n<N PI = 3,141592654...
n varie de 0 à N-1, où N désigne la taille du nouveau tampon FFT.
A noter que le recouvrement à 50% entraîne un doublement intermédiaire de la taille des tampons FFT. En terme de taux de compression, il est plus avantageux de doubler les tampons internes à cause des points de l'avant plan dont le nombre n'est pas proportionnel à la taille des tampons FFT.
Avant application de la fenêtre d'analyse et FFT', chaque nouveau tampon FFT est constitué pour moitié gauche d'un tampon initial déjà utilisé et pour moitié droite d'un tampon initial non utilisé.
Après inverse FFT et application de la fenêtre de synthèse, chaque moitié gauche est ajoutée à une ancienne moitié droite pour donner le tampon final de même taille que la taille initiale des tampons.
On avance donc en entrée comme en sortie de la taille initiale des tampons FFT.
Le doublement intermédiaire de la taille des tampons FFT est très coûteux pour le codage de l'arrière plan. Pour l'arrière plan, on peut appliquer un coefficient de réduction compris entre 1 et 2 pour réduire la taille des bandes, le coefficient 1 correspondant à la taille initiale des bandes. Dans le domaine des fréquences, ceci revient à négliger les fréquences supérieures. Si on prend le coefficient 1, on néglige la moitié supérieure des fréquences, les fréquences réelles de l'arrière plan seront comprises entre 20 Hz et 11025 Hz. Si on prend le coefficient 1,5, les fréquences réelles de l'arrière plan seront comprises entre 20 Hz et 16537 Hz.
Recouvrement partiel avec moins de 50% de chevauchement (généralement 5% à 10%): La fenêtre d'analyse et de synthèse, appliquée dans le domaine temps avant FFT (compression) et inverse FFT (décompression), est la fonction suivante: w(n)=sin((PI * (n+0,5))/(2 * (N-N1))); pour 0<=n< N-N1 w(n) = 1; pour N-N 1 <= n< N1 w(n) = sin ( (PI * (N - n - 0,5)) / (2*(N-N1))); pour N1<=n<N PI = 3,141592654...
n varie de 0 à N-1 N désigne la taille du tampon FFT.
N1 désigne la taille de la partie non recouverte du tampon FFT. Avant application de la fenêtre d'analyse et FFT, chaque nouveau tampon FFT est constitué pour partie gauche (points 0 à N - Ni - 1) d'un tampon initial déjà utilisé et pour partie droite (points N - N1 AN - 1) d'un tampon initial non utilisé.
Après inverse FFT et application de la fenêtre de synthèse, chaque partie gauche (points 0 à N - Ni - 1) est ajoutée à la fin d'une ancienne partie droite (points Ni à N - 1), la partie droite étant prise sans changement, pour donner le tampon fmal de même taille que la taille initiale des tampons. La fin de la partie droite (points N1 à N - 1) du tampon final ne sera furie qu'à la prochaine étape.
On avance donc en entrée comme en sortie de la taille de la partie non recouverte des tampons FFT (Ni).
A noter que dans ce cas, on n'applique pas de doublement intermédiaire de la taille des tampons FFT. L'application des coefficients de réduction dans l'arrière plan est néanmoins possible puisqu'il s'agit de négliger les fréquences supérieures.
Le recouvrement partiel avec moins de 50% de chevauchement permet d'atteindre des taux de compression plus élevés tout en entraînant moins de calculs (les calculs FFT, les calculs d'énergie et les tris), puisqu'il n'y a pas de doublement intermédiaire de la taille des tampons FFT. En outre, on applique pas de fenêtre sur la plus grande partie du tampon FFT, qui subit le moins de déformations pratiques possibles.
Pour l'avant plan, le codage des phases sur 6 à 8 bits (dont 1 bit de signe) donne de bons résultats. On utilisera 8 bits par défaut.
Pour l'arrière plan, le codage des phases sur 4 bits (dont 1 bit de signe) convient. 5 Pour l'arrière plan, le codage des phases sur un bit de signe donne de bons résultats et est beaucoup moins coûteux, s'il y a beaucoup de points dans l'avant plan. On utilisera un bit de signe par défaut.
La valeur de la phase est donnée par: Phase = 1 dblphase 1 / dblcoeff; 1 dblphase = valeur absolue de la phase calculée en double précision. dblcoeff = PI / ValeurMaximum.
PI = 3,141592654...
ValeurMaximum = valeur maximum de la phase (127 en 7 bits, ...).
Pour réduire la taille des données dans les bandes retenues, on peut appliquer la décimation simple qui entraîne une légère perte de qualité, ou la décimation double qui entraîne une plus grande perte de qualité. La décimation simple consiste à remplacer deux points consécutifs (une paire de points) par un indicateur d'un bit (point de plus faible magnitude situé à gauche ou à droite) et un point. La décimation simple n'entraîne pas de perte de qualité s'il n'y a que des pics locaux saris latéraux car tous les points non nuls dans les bandes sont des pics locaux précédés ou suivis d'un point nul. La décimation double consiste à remplacer deux paires consécutives de points par la plus grande paire, un indicateur d'un bit supplémentaire (par rapport à la décimation simple) étant nécessaire pour dire si la plus petite paire est à gauche ou à droite. Ces types de décimation conviennent plus particulièrement au codage de la voix.
Pour réduire la taille des données dans les bandes retenues, on peut appliquer la Modulation par Impulsion et Codage Différentiel Adaptatif (ADPCM). Le codage des bandes par ADPCM convient plus particulièrement au codage de la musique.
Les magnitudes de l'arrière plan sont ramenées,en 16 bits signés: 15 bits de valeur (en divisant par la taille intermédiaire des tampons FFT) et un bit de signe (signe de la phase). On applique une compression ADPCM (par exemple IMA ADPCM) pour avoir 2, 3, 4 ou 5 bits par point dont un bit de signe.
On peut même appliquer la décimation simple et avoir encore de bons résultats: dans ce cas il y a un indicateur d'un bit pour indiquer la position du point de plus faible magnitude, un bit de signe et 1, 2, 3 ou 4 bits de valeur. La décimation simple suivie du codage ADPCM donne une moyenne de 1,5 / 2 / 2,5 et 3 bits par point.
A noter les indexes à utiliser pour IMA ADPCM 2, 3, 4 ou 5 bits par point: -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 -1, - 1, 2, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 -1, -1, -1, -1, 2, 4, 6, 8, -1, -1, -1, -1, -1, -1, -1, -1 -1, -1, -1, -1, -1, -1, -1, -1, 2, 4, 6, 8,10,12,14,16 A noter également qu'il faut utiliser et transmettre la première valeur de la magnitude.
2891100 -10..
Une réalisation pratique peut être faite en prenant un nombre maximum Nmax de points de l'avant plan égal à 256, en prenant un nombre maximum Mmax de bandes de l'arrière plan égal à 64 et en limitant le nombre maximum NCHmax de canaux à 8. On peut laisser le choix du logarithme à base 10 ou de l'échelle corrigée à base 2. Le taux de bits est pris constant. Sans compression additionnelle sans perte, le taux de bits variable n'entraîne pas une diminution notable du taux de bits.
Avec recouvrement (prise en compte de la phase), pour les bandes de l'arrière plan, on prend un coefficient de réduction de deux (pas de changement) pour des fréquences d'échantillonnage inférieures ou égales à 11 kHz, un coefficient de réduction de 1,5 pour des fréquences d'échantillonnage supérieures à 11 kHz et inférieures ou égales à 22 kHz, et un coefficient de réduction de 1 (moitié supérieure des fréquences non prise en compte) pour des fréquences d'échantillonnage supérieures à 22 kHz.
Dans le cas de la musique et de tous le signaux audio, la prise en compte uniquement des pics locaux est laissée au choix. Elle entraîne généralement une petite perte de qualité, elle n'entraîne aucune modification du taux de bits mais la musique est plus légère. Enfin, on laissera le choix entre un recouvrement partiel à 50% et un recouvrement partiel variable de 5% à 10%.
S'il n'y a pas de recouvrement ou s'il y a un recouvrement partiel à 50%, le taux de bits en kilo bits par seconde (Kbps) est donné par la formule: TauxBits = (Frequence * TailleCompressee * 8) / (TailleBufferFFT * 1000) ; où : Frequence = fréquence d'échantillonnage.
TailleCompressee = nombre d'octets de la trame compressée.
TailleBufferFFT = nombre de points du tampon FFT initial.
S'il y a un recouvrement partiel à moins de 50%, le taux de bits en kilo bits par seconde 10 (Kbps) est donné par la formule: TauxBits = (Frequence * TailleCompressee * 8 * Coefficient) / (TailleBufferFFT * 1000) ; où Coefficient = 100 / (100 - x); et x = taux de recouvrement en %.
Le nombre d'octets de la trame compressée tient compte du doublement intermédiaire éventuel des tampons FFT (recouvrement partiel à 50%).
S'il n'y a pas de recouvrement ou s'il y a un recouvrement partiel à 50%, les taux de compression sont donnés pour des échantillons en entrée de 16 bits et sont calculés par la 20 formule suivante: TauxCompression = TailleCompressee / (TailleBufferFFT * 2); S'il y a un recouvrement partiel à moins de 50%: TauxCompression = (TailleCompressee * Coefficient) / (TailleBufferFFT * 2); - 12..
Par défaut, pour la voix, on choisit l'échelle corrigée, on choisit pour l'avant plan 8 pics locaux par trame, la précision des magnitudes sur 4 bits et le codage relatif des positions sur 6 bits; on choisit 4 bandes par trame pour l'arrière plan, la précision des magnitudes sur 4 bits et la décimation simple. Il n'y a ni latéraux ni phases. Ces paramètres donnent une bonne qualité avec les résultats suivants: 16 kHz: taux de compression 1/53, taux de bits 4,7 Kbps par canal.
22 kHz: taux de compression 1/53, taux de bits 6,5 Kbps par canal.
Si on choisit 6 pics locaux pour l'avant plan et toujours la décimation simple pour l'arrière plan, on a une bonne qualité avec les résultats suivants: 8 kHz: taux de compression 1/34, taux de bits 3,8 Kbps par canal.
11 kHz: taux de compression 1/34, taux de bits 5,2 Kbps par canal.
Par défaut, pour la musique, avec un recouvrement partiel à 50%, on choisit l'échelle corrigée à base 2, on choisit pour l'avant plan 22 points par trame, la précision des magnitudes sur 6 bits et le codage absolu des positions sur 10 bits; on choisit 54 bandes par trame pour l'arrière plan, la précision des magnitudes sur 2 bits de moyenne (décimation simple suivie du codage ADPCM sur 3 bits). Les phases sont codées sur 8 bits pour l'avant plan et sur 1 bit de signe pour l'arrière plan.
Ces paramètres donnent une bonne qualité avec les résultats suivants: 44 kHz: taux de compression 1/11, taux de bits 63,7 Kbps par canal.
Si on choisit 16 points pour l'avant plan et 54 bandes, la précision des magnitudes sur 1,5 bit de moyenne (décimation simple suivie du codage ADPCM sur 2 bits), on a les résultats suivants: 44 kHz: taux de compression 1/14, taux de bits 48,2 Kbps par canal.
Si on choisit 32 points pour l'avant plan, la précision des magnitudes sur 8 bits, 54 bandes pour l'arrière plan et ADPCM sur 3 bits sans décimation, on a les résultats suivants: 44 kHz: taux de compression 1/7, taux de bits 95,4 Kbps par canal.
- 13 - A titre de comparaison, avec ces dernières valeurs (32 points pour l'avant plan, la précision des magnitudes sur 8 bits, 54 bandes pour l'arrière plan et ADPCM sur 3 bits sans décimation), on a les résultats suivants avec un recouvrement partiel à 7%: 44 kHz: taux de compression 1/10, taux de bits 71,1 Kbps par canal.
Le recouvrement partiel avec moins de 50% de chevauchement permet d'avoir des taux de compression plus élevés tout en ayant moins de calculs. On peut ainsi proposer des valeurs par défaut ci-dessous, optimisées tant en terme de taux de compression que de calculs.
Fréquence d'échantillonnage: 44 kHz.
Taux de recouvrement: 7%.
Phases: 8 bits pour l'avant plan, 1 bit de signe pour l'arrière plan.
Arrière plan: 3 bits ADPCM, 64 bandes (pas de calcul d'énergie, pas de tri, pas de positions des bandes à transmettre).
Musique à 48 Kbps par canal: Avant plan: 22 points, positions absolues sur 9 bits, précision des magnitudes sur 6 bits. Arrière plan: simple décimation.
44 kHz: taux de compression 1/14, taux de bits 48,5 Kbps par canal. 20 Musique à 64 Kbps par canal: Avant plan: 24 points, positions absolues sur 9 bits, précision des magnitudes sur 8 bits. Arrière plan: aucune décimation.
44 kHz: taux de compression 1/11, taux de bits 64,5 Kbps par canal. Musique à 96 Kbps par canal: Avant plan: 58 points, positions relatives sur 6 bits (il y a un grand nombre de points), précision des magnitudes sur 8 bits.
Arrière plan: aucune décimation.
44 kHz: taux de compression 1/7, taux de bits 95,9 Kbps par canal.
- 14 - Dans cette réalisation pratique, on met en place la structure suivante pour la lecture ou la transmission des données: En-tête général trame et en-tête avant plan (1 octet), Corps avant plan (positions, puis magnitudes puis phases éventuelles), En-tête arrière plan (0 octet pour la voix, 2 octets pour la musique), Positions bandes (0 à 8 octets), Corps arrière plan (magnitudes ou magnitudes signées). l0
Toutes les parties importantes de la structure sont alignées sur un octet.
Les paramètres de l'audio et du codec sont lus en début de lecture ou transmis en début de communication.
Les points de l'avant plan sont ordonnés par magnitudes décroisantes avec le codage 15 absolu des positions et par positions croissantes avec le codage relatif des positions.
Des compressions vectorielles (non réalisées) peuvent être appliquées à l'arrière plan à la place de la compression ADPCM. Des compressions supplémentaires (non réalisées) sans perte de qualité peuvent être appliquées à l'ensemble, à l'avant plan seul ou à l'arrière plan seul.
Ce codec est destiné à toutes les communications vocales bidirectionnelles (voix sur IP ou téléphones portables par exemple), aux diffusions audio (radios sur Internet par exemple) ainsi qu'au stockage des données audio (fichiers sur disque dur par exemple).
- 15 -
Claims (10)
1) Méthode de compression et décompression audio caractérisée en ce qu'elle utilise la transformation de Fourier rapide (FFT) pour la voix et la musique et une décomposition en deux plans basée sur l'énergie.
2) Méthode selon la revendication 1, caractérisée en ce que chaque trame est divisée en avant plan constitué des N plus grands points et en arrière plan constitué des M bandes les plus énergétiques.
3) Méthode selon la revendication 1 ou 2, caractérisée en ce que pour la voix, on n'utilise que les magnitudes des pics locaux (sans les latéraux) et la partie imaginaire seule en décompression.
4) Méthode selon la revendication 1 ou 2, caractérisée en ce que pour la suppression des effets de bord avec la musique, on utilise une méthode de recouvrement partiel permettant une reconstruction parfaite, avec 50% ou moins de chevauchement.
5) Méthode selon la revendication 1, 2 ou 3, caractérisée en ce que pour réduire la taille des données dans les bandes retenues, on peut appliquer la Modulation par Impulsion et Codage Différentiel Adaptatif (ADPCM).
6) Méthode selon la revendication 1, 2 ou 3, caractérisée en ce que pour réduire la taille des données dans les bandes retenues, on peut appliquer la décimation simple qui entraîne une légère perte de qualité, ou la décimation double qui entraîne une plus grande perte de qualité.
7) Méthode selon la revendication 1 ou 2, caractérisée en ce que pour l'arrière plan, on peut appliquer un coefficient de réduction compris entre 1 et 2 pour réduire la taille des bandes.
8) Méthode selon la revendication 1, caractérisée en ce que la taille des trames (taille des tampons FFT) dépend de la fréquence d'échantillonnage.
9) Méthode selon la revendication 1, 2 ou 3, caractérisée en ce que deux méthodes de codage des magnitudes sont décrites: le logarithme à base 10 et l'échelle corrigée à base 2 qui permet d'atteindre une grande précision.
10) Méthode selon la revendication 1, 2 ou 3, caractérisée en ce que pour diminuer le nombre de bits dans le codage des positions, on peut utiliser le codage relatif.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0607091A FR2891100B1 (fr) | 2005-09-22 | 2006-08-03 | Codec audio utilisant la transformation de fourier rapide, le recouvrement partiel et une decomposition en deux plans basee sur l'energie. |
US11/532,563 US20070094015A1 (en) | 2005-09-22 | 2006-09-18 | Audio codec using the Fast Fourier Transform, the partial overlap and a decomposition in two plans based on the energy. |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0509677A FR2891099B3 (fr) | 2005-09-22 | 2005-09-22 | Codec audio utilisant la transformation de fourier rapide et une decomposition en deux plans basee sur l'energie. |
FR0607091A FR2891100B1 (fr) | 2005-09-22 | 2006-08-03 | Codec audio utilisant la transformation de fourier rapide, le recouvrement partiel et une decomposition en deux plans basee sur l'energie. |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2891100A1 true FR2891100A1 (fr) | 2007-03-23 |
FR2891100B1 FR2891100B1 (fr) | 2008-10-10 |
Family
ID=37831794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0607091A Active FR2891100B1 (fr) | 2005-09-22 | 2006-08-03 | Codec audio utilisant la transformation de fourier rapide, le recouvrement partiel et une decomposition en deux plans basee sur l'energie. |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070094015A1 (fr) |
FR (1) | FR2891100B1 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3049799A1 (fr) * | 2016-03-29 | 2017-10-06 | Georges Samake | Compression d'images, de sequences d'images et de videos a l'aide de la transformation de fourier rapide et de methodes unidimensionnelles |
FR3093600A1 (fr) | 2019-03-10 | 2020-09-11 | Georges Samake | Procédés d'utilisation des phases pour réduire les largeurs de bande ou pour transporter des données avec des codecs multimédia n'utilisant que les magnitudes ou amplitudes |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9653088B2 (en) * | 2007-06-13 | 2017-05-16 | Qualcomm Incorporated | Systems, methods, and apparatus for signal encoding using pitch-regularizing and non-pitch-regularizing coding |
US8391212B2 (en) * | 2009-05-05 | 2013-03-05 | Huawei Technologies Co., Ltd. | System and method for frequency domain audio post-processing based on perceptual masking |
US11863367B2 (en) * | 2021-08-20 | 2024-01-02 | Georges Samake | Methods of using phases to reduce bandwidths or to transport data with multimedia codecs using only magnitudes or amplitudes |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5550738A (en) * | 1978-10-05 | 1980-04-12 | Nec Corp | Decoding method of adaptability forecasting type differential pulse code and its unit |
US4751736A (en) * | 1985-01-31 | 1988-06-14 | Communications Satellite Corporation | Variable bit rate speech codec with backward-type prediction and quantization |
US4776014A (en) * | 1986-09-02 | 1988-10-04 | General Electric Company | Method for pitch-aligned high-frequency regeneration in RELP vocoders |
DE59008047D1 (de) * | 1989-03-06 | 1995-02-02 | Bosch Gmbh Robert | Verfahren zur Datenreduktion bei digitalen Tonsignalen und zur genäherten Rückgewinnung der digitalen Tonsignale. |
EP0551705A3 (en) * | 1992-01-15 | 1993-08-18 | Ericsson Ge Mobile Communications Inc. | Method for subbandcoding using synthetic filler signals for non transmitted subbands |
CA2105269C (fr) * | 1992-10-09 | 1998-08-25 | Yair Shoham | Technique d'interpolation temps-frequence pouvant s'appliquer au codage de la parole en regime lent |
KR100458969B1 (ko) * | 1993-05-31 | 2005-04-06 | 소니 가부시끼 가이샤 | 신호부호화또는복호화장치,및신호부호화또는복호화방법 |
TW295747B (fr) * | 1994-06-13 | 1997-01-11 | Sony Co Ltd | |
JP3277692B2 (ja) * | 1994-06-13 | 2002-04-22 | ソニー株式会社 | 情報符号化方法、情報復号化方法及び情報記録媒体 |
JP3277699B2 (ja) * | 1994-06-13 | 2002-04-22 | ソニー株式会社 | 信号符号化方法及び装置並びに信号復号化方法及び装置 |
JP3341474B2 (ja) * | 1994-07-28 | 2002-11-05 | ソニー株式会社 | 情報符号化方法及び復号化方法、情報符号化装置及び復号化装置、並びに情報記録媒体 |
JP3371590B2 (ja) * | 1994-12-28 | 2003-01-27 | ソニー株式会社 | 高能率符号化方法及び高能率復号化方法 |
JP3491425B2 (ja) * | 1996-01-30 | 2004-01-26 | ソニー株式会社 | 信号符号化方法 |
TW384434B (en) * | 1997-03-31 | 2000-03-11 | Sony Corp | Encoding method, device therefor, decoding method, device therefor and recording medium |
GB2326572A (en) * | 1997-06-19 | 1998-12-23 | Softsound Limited | Low bit rate audio coder and decoder |
US6263312B1 (en) * | 1997-10-03 | 2001-07-17 | Alaris, Inc. | Audio compression and decompression employing subband decomposition of residual signal and distortion reduction |
US6370502B1 (en) * | 1999-05-27 | 2002-04-09 | America Online, Inc. | Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec |
US6675148B2 (en) * | 2001-01-05 | 2004-01-06 | Digital Voice Systems, Inc. | Lossless audio coder |
US20020147753A1 (en) * | 2001-01-30 | 2002-10-10 | Cirrus Logic, Inc. | Methods and systems for raising a numerical value to a fractional power |
US7136418B2 (en) * | 2001-05-03 | 2006-11-14 | University Of Washington | Scalable and perceptually ranked signal coding and decoding |
US20030187663A1 (en) * | 2002-03-28 | 2003-10-02 | Truman Michael Mead | Broadband frequency translation for high frequency regeneration |
WO2004049311A1 (fr) * | 2002-11-27 | 2004-06-10 | Koninklijke Philips Electronics N.V. | Codage audio sinusoidal |
US8359197B2 (en) * | 2003-04-01 | 2013-01-22 | Digital Voice Systems, Inc. | Half-rate vocoder |
-
2006
- 2006-08-03 FR FR0607091A patent/FR2891100B1/fr active Active
- 2006-09-18 US US11/532,563 patent/US20070094015A1/en not_active Abandoned
Non-Patent Citations (3)
Title |
---|
LUCK J E ET AL: "Speech compression by component selection in the frequency domain", INSPEC, 1971, XP002133347 * |
MARK KILGORE AND JAMIE WU: "MPEG, the MP3 Standard, and Audio Compression", INTERNET ARTICLE, 16 September 2003 (2003-09-16), XP002435304, Retrieved from the Internet <URL:http://www-ee.stanford.edu/~osgood/Sophomore%20College/Audio%20Compression%20and%20the%20MP3%20Standard.pdf> [retrieved on 20070529] * |
PAUL SELLARS: "BEHIND THE MASK Perceptual Coding: How Mp3 Compression Works", INTERNET ARTICLE, May 2000 (2000-05-01), XP002435305, Retrieved from the Internet <URL:http://www.soundonsound.com/sos/may00/articles/mp3.htm> [retrieved on 20070529] * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3049799A1 (fr) * | 2016-03-29 | 2017-10-06 | Georges Samake | Compression d'images, de sequences d'images et de videos a l'aide de la transformation de fourier rapide et de methodes unidimensionnelles |
FR3093600A1 (fr) | 2019-03-10 | 2020-09-11 | Georges Samake | Procédés d'utilisation des phases pour réduire les largeurs de bande ou pour transporter des données avec des codecs multimédia n'utilisant que les magnitudes ou amplitudes |
Also Published As
Publication number | Publication date |
---|---|
FR2891100B1 (fr) | 2008-10-10 |
US20070094015A1 (en) | 2007-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100277819B1 (ko) | 심리음향성 적응 비트 할당을 이용한 다중 채널 예측 분할대역부호화기 | |
US8971551B2 (en) | Virtual bass synthesis using harmonic transposition | |
KR101120911B1 (ko) | 음성신호 복호화 장치 및 음성신호 부호화 장치 | |
US9167367B2 (en) | Optimized low-bit rate parametric coding/decoding | |
US8738372B2 (en) | Spectrum coding apparatus and decoding apparatus that respectively encodes and decodes a spectrum including a first band and a second band | |
US8200351B2 (en) | Low power downmix energy equalization in parametric stereo encoders | |
EP3288034B1 (fr) | Dispositif de décodage et son procédé | |
EP1852851A1 (fr) | Dispositif et procede de codage/decodage audio ameliores | |
EP2584561B1 (fr) | Dispositif de décodage, dispositif de codage et procédés correspondants | |
CN1849647B (zh) | 采样速率转换装置、编码装置、解码装置及它们的方法 | |
CN1153365C (zh) | 采用不同编码原理的传送*** | |
JP2008519306A (ja) | 信号の組のエンコード及びデコード | |
KR20090076924A (ko) | 분석 필터뱅크, 합성 필터뱅크, 인코더, 디코더, 믹서 및 회의 시스템 | |
KR20070112848A (ko) | 음성 품질 및 명료성을 개선하기 위한 시스템 | |
JP2001521648A (ja) | スペクトル帯域複製を用いた原始コーディングの強化 | |
FR2891100A1 (fr) | Codec audio utilisant la transformation de fourier rapide, le recouvrement partiel et une decomposition en deux plans basee sur l'energie. | |
EP2264700A1 (fr) | Appareil de codage et appareil de décodage | |
EP1873753A1 (fr) | Ameliorations apportees a un procede et un dispositif de codage/decodage audio | |
EP1708173B1 (fr) | Procédé et appareil pour coder un signal audio | |
EP2720477B1 (fr) | Synthèse virtuelle de graves à l'aide de transposition harmonique | |
JP5295372B2 (ja) | デジタルオーディオ信号におけるプリエコーの減衰 | |
FR2891099A1 (fr) | Codec audio utilisant la transformation de fourier rapide et une decomposition en deux plans basee sur l'energie. | |
US9842594B2 (en) | Frequency band table design for high frequency reconstruction algorithms | |
Ramprashad | High quality embedded wideband speech coding using an inherently layered coding paradigm | |
JPH0833746B2 (ja) | 音声・楽音の帯域分割符号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 11 |
|
PLFP | Fee payment |
Year of fee payment: 12 |
|
PLFP | Fee payment |
Year of fee payment: 15 |
|
PLFP | Fee payment |
Year of fee payment: 16 |
|
PLFP | Fee payment |
Year of fee payment: 17 |
|
PLFP | Fee payment |
Year of fee payment: 18 |