FR2867649A1 - Procede de codage multiple optimise - Google Patents

Procede de codage multiple optimise Download PDF

Info

Publication number
FR2867649A1
FR2867649A1 FR0314490A FR0314490A FR2867649A1 FR 2867649 A1 FR2867649 A1 FR 2867649A1 FR 0314490 A FR0314490 A FR 0314490A FR 0314490 A FR0314490 A FR 0314490A FR 2867649 A1 FR2867649 A1 FR 2867649A1
Authority
FR
France
Prior art keywords
encoder
coders
coding
block
functional blocks
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.)
Pending
Application number
FR0314490A
Other languages
English (en)
Inventor
David Virette
Claude Lamblin
Touimi Abdellatif Benjelloun
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
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 France Telecom SA filed Critical France Telecom SA
Priority to FR0314490A priority Critical patent/FR2867649A1/fr
Priority to AT04805538T priority patent/ATE442646T1/de
Priority to EP04805538A priority patent/EP1692689B1/fr
Priority to ZA200604623A priority patent/ZA200604623B/xx
Priority to CN2004800365842A priority patent/CN1890714B/zh
Priority to DE602004023115T priority patent/DE602004023115D1/de
Priority to US10/582,025 priority patent/US7792679B2/en
Priority to PL04805538T priority patent/PL1692689T3/pl
Priority to PCT/FR2004/003009 priority patent/WO2005066938A1/fr
Priority to ES04805538T priority patent/ES2333020T3/es
Priority to JP2006543574A priority patent/JP4879748B2/ja
Publication of FR2867649A1 publication Critical patent/FR2867649A1/fr
Priority to KR1020067011555A priority patent/KR101175651B1/ko
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/002Dynamic bit allocation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/02Speech 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/02Speech 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/0212Speech 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/04Speech 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 predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/04Speech 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 predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes

Abstract

La présente invention concerne le codage en compression de signaux numériques tels que des signaux multimédia (audio ou vidéo), et plus particulièrement un procédé de codage multiple, dans lequel un signal d'entrée alimente en parallèle plusieurs codeurs comportant chacun une succession de blocs fonctionnels. Selon l'invention :a) on identifie les blocs fonctionnels (BF10, ..., BFnN) formant chaque codeur, ainsi qu'une ou plusieurs fonctions réalisées par chaque bloc,b) on repère des fonctions qui sont communes d'un codeur à l'autre, etc) on exécute ces fonctions communes, une fois pour toutes, pour une partie au moins de tous les codeurs, au sein d'au moins un même module de calcul (BF1CC,...,BFnCC).

Description

Procédé de codage multiple optimisé
La présente invention concerne le codage/décodage de signaux numériques, dans des applications de transmission 5 ou de stockage de signaux multimédia tels que les signaux audio (parole et/ou sons) ou vidéo.
Pour offrir mobilité et continuité, les services de communication multimédia modernes et innovants doivent pouvoir fonctionner dans une grande variété de conditions. Le dynamisme du secteur de la communication multimédia, l'hétérogénéité des réseaux, de l'accès et des terminaux ont engendré une prolifération de formats de compression.
La présente invention s'inscrit dans le contexte d'une optimisation des techniques de "codage multiple", mises en oeuvre dès lors qu'un signal numérique, ou une portion de ce signal, est codé selon plusieurs techniques de codage. Ce codage multiple peut être effectué de manière simultanée (en une seule passe) ou non. Les traitements peuvent s'effectuer sur le même signal, ou éventuellement sur des versions dérivées du même signal (par exemple selon des bandes passantes différentes). On distingue donc le "codage multiple" des "transcodages", où chaque codeur effectue la compression d'une version issue du décodage du signal compressé par le codeur précédent.
Le codage multiple se présente par exemple dans le cas d'un même contenu qui est codé selon plusieurs formats et transmis ensuite à des terminaux ne supportant pas les mêmes formats de codage. S'il s'agit d'une diffusion en temps réel, le traitement devra être effectué en simultané. S'il s'agit d'accès à une base de données, les codages pourront être effectués l'un après l'autre, en différé. Dans ces exemples, le codage multiple permet de coder un même signal selon des formats différents en utilisant plusieurs codeurs (ou éventuellement plusieurs débits ou plusieurs modes d'un même codeur), chaque codeur fonctionnant de manière indépendante des autres codeurs.
Un autre usage de codage multiple se rencontre dans des structures de codage où plusieurs codeurs se trouvent en compétition pour coder un segment de signal, un seul codeur étant finalement sélectionné pour le codage de ce segment. Le choix du codeur sélectionné peut s'effectuer à l'issue du traitement de ce segment, voire même ultérieurement (par décision retardée). Dans ce qui suit, on désignera par "codage multimodes" ce type de structure (en référence à la sélection d'un "mode" de codage). Dans ces structures multi-modes, plusieurs codeurs partageant un "passé commun" sont amenés à coder la même portion de signal. Les techniques de codage utilisées peuvent être différentes, ou issues d'une unique structure de codage. Elles ne seront cependant pas totalement indépendantes sauf s'il s'agit de techniques "sans mémoire". En effet, dans le cas (courant) de techniques de codage mettant en uvre des traitements récursifs, le traitement d'un segment donné de signal dépend de la manière dont ce signal a été codé dans le passé. Il y a donc une certaine dépendance entre les codeurs, dès lors qu'un codeur devra prendre en compte dans ses mémoires la sortie d'un autre codeur.
Dans ces différents contextes, la notion de "codage multiple" a été introduite ainsi que les conditions d'usage de telles techniques. Cependant la complexité de mise en oeuvre peut s'avérer rédhibitoire.
Par exemple, dans le cas de serveurs de contenus qui diffusent un même contenu sous plusieurs formats adaptés aux conditions d'accès, de réseaux et terminaux de différents clients, cette opération devient extrêmement complexe à mesure qu'augmente le nombre de formats désiré. S'il s'agit d'une diffusion temps réel, on se trouve rapidement limité par les ressources du système étant donné que les différents formats sont codés en parallèle.
Le deuxième cas d'usage mentionné concerne les applications de codage multi-modes, permettant la sélection d'un codeur parmi un ensemble pour chaque portion de signal analysé. La sélection demande la définition d'un critère, les plus courants visant à l'optimisation du compromis débitdistorsion. Le signal étant analysé sur des segments temporels successifs, à chaque segment plusieurs codages sont évalués. On sélectionne ensuite le codage de débit le plus faible pour une qualité donnée, ou celui de meilleure qualité pour un débit donné. On notera que d'autres contraintes que celles de débit/distorsion peuvent être utilisées.
En général, dans de telles structures, la sélection du 30 codage s'effectue "a priori" par une analyse du signal sur le segment considéré (sélection selon les caractéristiques du signal). Cependant, la difficulté de produire une classification robuste du signal pour cette sélection a conduit à proposer une sélection "a posteriori" du mode optimal après codage de l'ensemble des modes, au prix toutefois d'une complexité élevée.
Des méthodes intermédiaires combinant les deux approches ont été proposées pour alléger le coût de calcul. Ces stratégies sont cependant sous-optimales et s'avèrent moins performantes que l'exploration de tous les modes. L'exploration de tous les modes ou d'une grande partie des modes constitue une application de codage multiple qui présente une complexité potentiellement élevée, difficilement compatible a priori avec le codage en temps
réel par exemple.
Actuellement, la plupart des opérations de codage multiple et de transcodage ne prennent pas en compte les interactions entre les formats et entre le format et son contenu. Quelques techniques de codage multimodes ont été proposées, mais la décision du mode utilisé se fait généralement a priori soit sur le signal (par classification, comme par exemple le codeur SMV pour "Selectable Mode Vocoder"), soit en fonction des conditions du réseau (par exemple dans les codeurs AMR pour "Adaptive Mufti-Rate").
Dans les documents: "An overview of variable rate speech coding for cellular 30 networks", Gersho, A.; Paksoy, E.; Wireless Communications, 1992. Conference Proceedings, 1992 IEEE International Conference on Selected Topics, 25-26 Jun 1992 Page(s): 172 -175, "A variable rate speech coding algorithm for cellular networks", Paksoy, E.; Gersho, A.; Speech Coding for Telecommunications, 1993. Proceedings., IEEE Workshop 1993, Page(s): 109-110, "Variable rate speech coding for multiple access wireless networks", Paksoy E.; Gersho A.; Electrotechnical Conference, 1994, Proceedings, 7th Mediterranean, 12-14 Apr 1994 Page(s): 47 -50 vol.l, plusieurs modes de sélection sont présentés, en particulier une décision contrôlée par la source et une décision contrôlée par le réseau.
Dans le cas d'une décision contrôlée par la source, la décision a priori s'effectue à partir d'une classification du signal d'entrée. Il existe alors de nombreuses méthodes de classification du signal.
Dans le cas d'une décision contrôlée par le réseau, il est plus simple de réaliser un codeur multi-modes dont le débit est choisi par un module externe plutôt que par la source. La méthode la plus simple consiste à élaborer une famille de codeurs chacun à débit fixe mais dont les débits sont différents entre codeurs et de commuter entre ces différents débits pour obtenir un mode courant désiré.
Quelques travaux ont aussi été présentés sur la possibilité de combiner plusieurs critères pour sélectionner a priori le mode qui doit être utilisé, notamment dans les documents: "Variable-rate for the basic speech service in UMTS" Berruto, E.; Sereno, D.; Vehicular Technology Conference, 1993 IEEE 43rd, 18-20 May 1993 Page(s): 520 -523 "A VR-CELP codec implementation for CDMA mobile communications" Cellario, L.; Sereno, D.; Giani, M.; Blocher, P.; Hellwig, K.; Acoustics, Speech, and Signal Processing, 1994, ICASSP-94, 1994 IEEE International Conference, Volume: 1, 19-22 Apr 1994 Page(s): I/281 - I/284 vol.l.
Tous les algorithmes de codage multi-modes avec sélection du mode de codage a priori souffrent d'un même inconvénient, en particulier lié à des problèmes de robustesse de la classification a priori.
C'est pourquoi des techniques utilisant une décision a posteriori du mode de codage ont été proposées. Par exemple dans le document: "Finite state CELP for variable rate speech coding" Vaseghi, S.V.; Acoustics, Speech, and Signal Processing, 1990, ICASSP-90, 1990 International Conference, 3-6 Apr 1990 Page(s): 37 -40 vol.l, le codeur peut commuter entre différents modes par optimisation d'une mesure de qualité objective, la décision se fait donc a posteriori en fonction des caractéristiques du signal d'entrée, du rapport visé débit/SQNR (pour "Signal to Quantization Noise Ratio") et de l'état courant du codeur. Un tel schéma de codage permet d'obtenir une amélioration de la qualité. Cependant, les différents codages étant réalisés en parallèle, la complexité résultante de ce type de système est prohibitive.
D'autres techniques combinant une décision a priori et une amélioration en boucle fermée ont été proposées. Dans le document: "Multimode variable bit rate speech coding: an efficient paradigm for high-quality low-rate representation of speech signal" Das, A.; DeJaco, A. ; Manjunath, S.; Ananthapadmanabhan, A.; Huang, J.; Choy, E.; Acoustics, Speech, and Signal Processing, 1999. ICASSP '99 Proceedings, 1999 IEEE International Conference, Volume: 4, 15-19 Mar 1999 Page(s): 2307 -2310 vol.4, le système proposé effectue une première sélection (sélection en boucle ouverte) du mode, en fonction des caractéristiques du signal. Cette décision peut être effectuée par classification. Ensuite, à partir d'une mesure d'erreur, si les performances du mode sélectionné ne sont pas satisfaisantes, un mode de débit plus élevé est appliqué et l'opération se répète (selon une décision recherchée en boucle fermée).
De même, dans les documents: * "Variable rate speech coding for umts" Cellario, L.; Sereno, D.; Speech Coding for Telecommunications, 1993. Proceedings, IEEE Workshop, 1993 Page(s): 1 -2 "Phonetically-based vector excitation coding of speech at 3.6 kbps" Wang, S.; Gersho, A.; Acoustics, Speech, and Signal Processing, 1989. ICASSP-89. , 1989 International Conference, 23-26 May 1989 Page(s): 49 -52 vol.1 * "A modified CS-ACELP algorithm for variable-rate speech coding robust in noisy environments" Beritelli, F.; IEEE Signal Processing Letters, Volume: 6 Issue: 2, Feb 1999 Page(s): 31 -34, des techniques sélection en classification phonétique, ou similaires ont été utilisées. Une première boucle ouverte est réalisée après du signal d'entrée (classification voisé/non-voisé), ensuite une décision en boucle fermée est effectuée: - soit sur le codeur complet et, dans ce cas, tout le segment de parole est codé à nouveau; soit sur une partie du codage, comme dans les références ci-avant précédées d'une étoile (*), pour lesquels le choix du dictionnaire à utiliser est 25 effectué en boucle fermée.
L'ensemble des études mentionnées ci-dessus tend à résoudre le problème de la complexité de la sélection optimale du mode par l'utilisation, totale ou partielle, d'une sélection ou pré-sélection a priori, qui évite le codage multiple ou diminue le nombre de codeurs à mettre en oeuvre en parallèle.
Toutefois, aucune technique de l'art antérieur permettant 5 de réduire la complexité des codages réalisés en parallèle n'a été proposée.
La présente invention vient améliorer la situation.
Elle propose à cet effet un procédé de codage multiple en compression, dans lequel un signal d'entrée est destiné à alimenter en parallèle une pluralité de codeurs comportant chacun une succession de blocs fonctionnels, en vue d'un codage en compression dudit signal par chaque codeur.
Le procédé de l'invention comporte les étapes préparatoires ci-après: a) identifier les blocs fonctionnels formant chaque codeur, ainsi qu'une ou plusieurs fonctions réalisées par 20 chaque bloc, b) repérer, parmi lesdites fonctions, des fonctions qui sont communes d'un codeur à l'autre, et c) exécuter lesdites fonctions communes, une fois pour toutes, pour une partie au moins de tous les codeurs, au 25 sein d'au moins un même module de calcul.
Dans une réalisation avantageuse, les étapes ci-avant sont mises en oeuvre par un produit programme d'ordinateur comportant des instructions de programme à cet effet. A ce titre, la présente invention vise aussi un tel produit programme d'ordinateur, destiné à être stocké dans une mémoire d'une unité de traitement, notamment d'un ordinateur ou d'un terminal mobile, ou sur un support mémoire amovible et destiné à coopérer avec un lecteur de l'unité de traitement.
La présente invention vise aussi un dispositif d'aide à un codage en compression, pour la mise en oeuvre du procédé selon l'invention, et comportant alors une mémoire propre à stocker des instructions d'un produit programme d'ordinateur du type précité.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés sur lesquels: - la figure la illustre schématiquement le contexte d'application de la présente invention, avec une pluralité de codeurs mis en parallèle, - la figure lb illustre schématiquement l'application de l'invention, avec la mise en partage de blocs fonctionnels 20 entre plusieurs codeurs mis en parallèle, - la figure 1c illustre schématiquement l'application de l'invention, avec la mise en partage de blocs fonctionnels en codage multi-modes, - la figure 1d illustre schématiquement l'application de 25 l'invention, en codage multi-modes en treillis, - la figure 2 représente schématiquement les blocs fonctionnels principaux d'un codeur fréquentiel perceptuel, - la figure 3 représente schématiquement les blocs 30 fonctionnels principaux d'un codeur à analyse par synthèse, - la figure 4a représente schématiquement les blocs fonctionnels principaux d'un codeur TDAC, - la figure 4b représente schématiquement le format du flux binaire codé par le codeur de la figure 4a, - la figure 5 représente schématiquement l'application de l'invention à une pluralité de codeurs TDAC en parallèle, selon une réalisation avantageuse, - la figure 6a représente schématiquement les blocs fonctionnels principaux d'un codeur MPEG-1 (layer I et 10 II), - la figure 6b représente schématiquement le format du flux binaire codé par le codeur de la figure 6a, - la figure 7 représente schématiquement l'application de l'invention à une pluralité de codeurs MPEG-1 (layer I et II) mis en parallèle, selon une réalisation avantageuse, - et la figure 8 représente plus en détails les blocs fonctionnels d'un codeur à analyse par synthèse, ici de type NB-AMR selon la norme 3GPP.
On se réfère tout d'abord à la figure la sur laquelle on a représenté une pluralité de codeurs CO, Cl, CN, en parallèle et recevant chacun un signal d'entrée so. Chaque codeur comporte des blocs fonctionnels BF1 à BFn pour mettre en oeuvre des étapes successives de codage et délivrer finalement un flux binaire codé BSO, BS1, BSN. On indique en outre que dans une application en codage multi-modes, les sorties des codeurs CO à CN sont reliées à un module MM de sélection du mode optimal et le flux binaire BS du codeur optimal est transmis (flèches en traits pointillés de la figure la).
Pour une raison de simplicité, tous les codeurs de l'exemple de la figure la ont le même nombre de blocs fonctionnels, mais bien entendu tous ces blocs fonctionnels ne sont pas nécessairement prévus dans tous les codeurs, en pratique.
Certains blocs fonctionnels BFi sont parfois identiques d'un mode (ou d'un codeur) à l'autre, d'autres ne diffèrent qu'au niveau des quantificateurs. Des relations exploitables existent aussi lorsque l'on utilise des codeurs issus d'une même famille de codage, utilisant des modèles similaires ou calculant des paramètres liés physiquement au signal.
Ce sont ces relations que la présente invention propose d'exploiter, afin de réduire la complexité des opérations de codage multiple.
Dans un premier temps, l'invention propose d'identifier les blocs fonctionnels composant chacun des codeurs. On exploite ensuite les similarités techniques entre les codeurs en considérant les blocs fonctionnels dont les fonctions sont équivalentes ou voisines. Pour chacun de ces blocs, l'invention propose: É d'une part de définir des opérations dites "communes", et de les effectuer une seule fois pour l'ensemble des codeurs; É d'autre part, de mettre en uvre des méthodes de calcul spécifiques à chaque codeur et utilisant 30 notamment les résultats de ces calculs communs. Ces méthodes de calcul produisent un résultat éventuellement différent de celui produit par un codage complet. L'objectif est alors en fait d'accélérer les traitements en exploitant les informations disponibles et fournies notamment par les calculs communs. De tels procédés permettant d'accélérer les calculs sont par exemple mis en uvre dans des techniques destinées à réduire la complexité des opérations de transcodage (dites techniques de "transcodage intelligent").
La figure lb illustre la solution proposée. Dans l'exemple représenté, les opérations "communes" précitées sont effectuées une seule fois pour une partie au moins des codeurs et, préférentiellement, pour l'ensemble des codeurs, dans un module indépendant MI qui redistribuera les résultats obtenus à une partie au moins des codeurs, ou préférentiellement à tous ces codeurs. Il s'agit ainsi d'une mise en partage entre une partie au moins de tous les codeurs CO à CN (ou "mutualisation" ci-après) des résultats obtenus. Un tel module indépendant MI peut faire partie d'un dispositif d'aide à un codage multiple en compression tel que défini ci-avant.
Dans une variante avantageuse, plutôt que d'avoir recours à un module de calcul externe MI, on utilise le ou les blocs fonctionnels existants BF1 à BFn d'un même ou de plusieurs codeurs distincts, ce ou ces codeurs étant choisis selon des critères qui seront décrits plus loin.
La présente invention peut mettre en oeuvre plusieurs stratégies qui, bien entendu, peuvent différer selon le rôle du bloc fonctionnel considéré.
Une première stratégie consiste à utiliser les paramètres du codeur dont le débit est le plus faible pour focaliser la recherche des paramètres pour tous les autres modes.
A l'inverse, une deuxième stratégie consiste à utiliser les paramètres du codeur dont le débit est le plus élevé, puis de "dégrader" progressivement jusqu'au codeur dont le débit est le plus faible.
Bien entendu, si l'on souhaite privilégier un codeur particulier, il est possible de coder un segment de signal en utilisant ce codeur, puis, en appliquant les deux stratégies ci-avant, d'atteindre les codeurs de débit supérieur et inférieur.
Bien entendu, d'autres critères que le débit peuvent être utilisés pour piloter la recherche. On peut par exemple, pour certains blocs fonctionnels, favoriser le codeur dont les paramètres se prêtent le mieux à une extraction (ou une analyse) et/ou à un codage efficaces des paramètres similaires des autres codeurs, l'efficacité pouvant être jugée selon la complexité, la qualité ou un compromis des deux.
Il peut être prévu aussi de créer un module de codage 30 indépendant, non présent dans les codeurs, mais permettant un codage plus efficace des paramètres du bloc fonctionnel considéré, pour l'ensemble des codeurs.
Ces diverses stratégies de mise en oeuvre sont particulièrement intéressantes dans le cas du codage multi-modes. Dans ce contexte illustré à la figure 1c, la présente invention permet de réduire la complexité des calculs préliminaires à la sélection a posteriori d'un codeur effectuée en dernière étape, par exemple par le 10 dernier module MM avant la transmission du flux binaire BS.
Dans ce cas particulier du codage multi-modes, une variante de la présente invention, représentée dans l'exemple de la figure 1c, propose d'introduire un module de sélection partielle MSPi (avec i = 1, 2,..., N) après chaque étape de codage (donc après les blocs fonctionnels BFil à BFiN1 mis en compétition et dont le résultat du ou des blocs sélectionnés BFicc va être utilisé par la suite). Ainsi, les similitudes entre les différents modes sont exploitées pour accélérer le calcul de chaque bloc fonctionnel. Tous les schémas de codage ne seront alors pas obligatoirement évalués.
Une variante plus sophistiquée de la structure multi-modes reposant sur la découpe en blocs fonctionnels décrite ci-avant est maintenant proposée, en référence à la figure ld. La structure multi-modes de la figure 1d est dite "en treillis", avec plusieurs chemins possibles dans le treillis. En fait, sur la figure 1d, on a représenté tous les chemins possibles du treillis de sorte qu'il se présente sous une forme arborescente. On indique en particulier que chaque chemin du treillis est défini par une combinaison de modes de fonctionnement des blocs fonctionnels, chaque bloc fonctionnel alimentant plusieurs variantes possibles du bloc fonctionnel suivant.
Ainsi, chaque mode de codage est issu de la combinaison de modes de fonctionnement des blocs fonctionnels: le bloc fonctionnel 1 possède N1 modes de fonctionnement, le bloc fonctionnel 2 en possède N2, et ainsi de suite jusqu'au bloc P. L'ensemble des NN= N1 x N2 x... x Np combinaisons possibles est donc représenté par un treillis de NN branches décrivant, bout-à-bout, un codeur multi-modes complet à NN modes. On peut éventuellement supprimer a priori certaines branches du treillis et définir ainsi une arborescence comportant un nombre réduit de branches. Une première particularité de cette structure est qu'elle prévoit, pour un bloc fonctionnel donné, un module de calculs communs par sortie du bloc fonctionnel précédent.
Ces modules de calculs communs effectuent les mêmes opérations, mais sur la base de signaux différents puisqu'ils sont issus de blocs antérieurs différents. Avantageusement, les modules de calculs communs d'un même niveau sont mutualisés: les résultats d'un module donné exploitables par les modules suivants sont fournis à ces modules suivants. D'autre part, une sélection partielle, effectuée à l'issue du traitement de chaque bloc fonctionnel, permet avantageusement de supprimer les branches les moins performantes selon le critère choisi.
On peut donc réduire le nombre de branches du treillis à évaluer.
Une application avantageuse de cette structure multi-modes en treillis est la suivante.
Lorsque les blocs fonctionnels sont susceptibles d'opérer à des débits respectifs différents et en utilisant des paramètres respectifs propres auxdits débits, pour un bloc fonctionnel donné, le chemin du treillis choisi est celui traversant le bloc fonctionnel de débit le plus faible, ou encore le bloc fonctionnel de débit le plus élevé selon le contexte de codage, et les résultats obtenus du bloc fonctionnel de débit le plus faible (ou le plus élevé) sont adaptés aux débits d'une partie au moins des autres blocs fonctionnels par une recherche focalisée de paramètres pour une partie au moins de tous les autres blocs fonctionnels, jusqu'au bloc fonctionnel de débit le plus élevé (ou respectivement le plus faible).
En variante, on choisit un bloc fonctionnel de débit donné et on adapte progressivement au moins une partie des 20 paramètres propres à ce bloc fonctionnel: - jusqu'au bloc fonctionnel capable d'opérer au débit le plus faible, par recherche focalisée, et - jusqu'au bloc fonctionnel capable d'opérer au débit le plus élevé, par recherche focalisée.
De manière générale, on réduit ainsi la complexité associée au codage multiple.
L'invention s'applique à tout schéma de compression 30 mettant en oeuvre le codage multiple d'un contenu multimédia. Trois exemples de réalisation sont présentés dans ce qui suit, dans le domaine de la compression audio (parole et son). Les deux premiers exemples de réalisation se situent dans le contexte de la famille des codeurs par transformée, dont on peut donner le document suivant à titre de référence: "Perceptual Coding of Digital Audio", Painter, T.; Spanias, A.; Proceedings of the IEEE, Vol. 88, No 4, April 2000.
Le troisième exemple de réalisation se situe dans le contexte des codeurs CELP, dont on peut donner le document suivant à titre de référence: "Code Excited Linear Prediction (CELP): High quality speech at very low bit rates" Schroeder M.R.; Atal B.S.; Acoustics, Speech, and Signal Processing, 1985. Proceedings. 1985 IEEE International Conference, Page(s) : 937-940.
Un rappel des principales caractéristiques de ces deux familles de codage est tout d'abord présenté dans ce qui suit.
* Les codeurs par transformée ou en sous bandes Il s'agit de codeurs en compression par transformée ou en sous bandes basés sur des critères psychoacoustiques. Ce type de codeur procède par transformation sur des blocs du signal temporel pour obtenir un ensemble de coefficients. Les transformations sont du type temps-fréquence, l'une des transformations les plus utilisées étant la transformée en cosinus discrète modifiée (dit "MDCT", de l'anglais "Modified Discrete Cosine Transform"). Avant la quantification de ces coefficients, un algorithme procédé à l'allocation des bits de façon à ce que le bruit de quantification soit le moins audible possible.
L'allocation binaire et la quantification des coefficients mettent en oeuvre une courbe de masquage, obtenue à l'aide d'un modèle psychoacoustique permettant d'évaluer, pour chaque raie spectrale considérée, un seuil de masquage représentatif de l'amplitude nécessaire pour qu'un son à cette fréquence soit audible. La figure 2 donne le schéma de principe d'un codeur fréquentiel. On remarquera que la structure sous forme de blocs fonctionnels est bien représentée. En se référant à la figure 2, les blocs fonctionnels principaux sont: - un bloc 21 de transformation temps/fréquence du signal audionumérique d'entrée so, - un bloc 22 de détermination d'un modèle perceptuel à partir du signal transformé, un bloc 23 de quantification et codage, à partir du 20 modèle perceptuel, - et un bloc 24 de formatage du flux binaire pour obtenir une trame audio codée st.
* Les codeurs à analyse par synthèse (codage CELP) Dans les codeurs à analyse par synthèse, le modèle de synthèse du signal reconstruit est utilisé au codeur pour extraire les paramètres modélisant les signaux à coder. Ces signaux peuvent être échantillonnés à la fréquence de 8 kHz (bande téléphonique 300-3400 Hz) ou à une fréquence plus élevée, par exemple à 16 kHz pour le codage en bande élargie (bande passante de 50Hz à 7 kHz). Selon l'application et la qualité désirée, le taux de compression varie de 1 à 16. Ces codeurs fonctionnent à des débits de 2 à 16 kbit/s en bande téléphonique, et à des débits de 6 à 32 kbit/s en bande élargie. Le dispositif de codage numérique de type CELP, codeur à analyse par synthèse le plus utilisé actuellement, est présenté à la figure 3 sous forme de blocs fonctionnels principaux. Le signal de parole so est échantillonné et converti en une suite de trames d'un nombre L d'échantillons. Chaque trame est synthétisée en filtrant une forme d'onde extraite d'un répertoire (appelé "dictionnaire"), multipliée par un gain, à travers deux filtres variant dans le temps. Le dictionnaire d'excitation fixe est un ensemble fini de formes d'ondes des L échantillons. Le premier filtre est un filtre de prédiction à long terme. Une analyse "LTP" (pour "Long Term Prediction") permet d'évaluer les paramètres de ce prédicteur à long terme qui exploite la périodicité des sons voisés, cette composante harmoniqueétant modélisée sous la forme d'un dictionnaire adaptatif (bloc 32). Le second filtre est un filtre de prédiction à court terme. Les méthodes d'analyse "LPC" (pour "Linear Prediction Coding") permettent d'obtenir ces paramètres de prédiction à court terme, représentatifs de la fonction de transfert du conduit vocal et caractéristiques de l'enveloppe du spectre du signal. Le procédé utilisé pour déterminer la séquence d'innovation est la méthode d'analyse par synthèse qui se résume comme suit. Au codeur, un grand nombre de séquences d'innovation du dictionnaire d'excitation fixes sont filtrées par le filtre LPC (filtre de synthèse du bloc fonctionnel 34 de la figure 3). Au préalable, l'excitation adaptative a été obtenue de façon similaire. La forme d'onde sélectionnée est celle produisant le signal synthétique le plus proche du signal original (minimisation de l'erreur au niveau du bloc fonctionnel 35), selon un critère de pondération perceptuelle (bloc fonctionnel 36) qui est connu en général sous le nom de critère "CELP".
Dans le schéma de principe du codeur CELP donné à la figure 3, l'extraction de la fréquence fondamentale des sons voisés (ou "pitch"), appliquée sur le signal résultant de l'analyse LPC du bloc 31, permet ensuite d'en extraire la corrélation à long terme au niveau du bloc 32, appelée composante harmonique ou excitation adaptative (E.A.). Le signal résiduel est enfin modélisé classiquement par quelques impulsions, dont l'ensemble des positions est prédéfini dans un répertoire, appelé répertoire d'excitation fixe (E.F) dans le bloc 33.
Le décodage est, quant à lui, beaucoup moins complexe que le codage. Le flux binaire généré par le codeur permet au décodeur, après démultiplexage, d'obtenir l'index de quantification de chaque paramètre. Le décodage des paramètres et l'application du modèle de synthèse permettent alors de reconstruire le signal.
On décrit ci-après les trois exemples de réalisation précités, en commençant tout d'abord par un codeur par transformée du type représenté sur la figure 2.
* Premier exemple de réalisation: application à un codeur "TDAC" Le premier exemple de réalisation concerne le codeur fréquentiel perceptuel dit "TDAC" et décrit notamment dans le document publié US-2001/027393. Ce codeur TDAC est utilisé pour coder des signaux audio numériques échantillonnés à 16 kHz (bande élargie). La figure 4a illustre les blocs fonctionnels principaux de ce codeur.
Un signal audio x(n) limité en bande à 7 kHz et échantillonné à 16 kHz est découpé en trames de 320 échantillons (20 ms). Une transformée en cosinus discrète modifiée (ou "MDCT") est appliquée (bloc fonctionnel 41) sur des trames du signal d'entrée de 640 échantillons avec un recouvrement de 50 %, donc avec un rafraîchissement de l'analyse MDCT toutes les 20 ms. On limite le spectre à 7225 Hz en mettant à zéro les 31 derniers coefficients (seuls les 289 premiers coefficients sont différents de 0). Une courbe de masquage (bloc 42) est déterminée à partir de ce spectre et tous les coefficients masqués sont mis à zéro. Le spectre est divisé en 32 bandes de largeurs inégales. Les éventuelles bandes masquées sont déterminées en fonction des coefficients transformés des signaux. Pour chaque bande du spectre, l'énergie des coefficients MDCT est calculée (pour obtenir des facteurs d'échelle). Les 32 facteurs d'échelle constituent l'enveloppe spectrale du signal qui est ensuite quantifiée puis codée par un codage entropique (bloc fonctionnel 43), et enfin transmise dans la trame codée s,.
L'allocation dynamique des bits (bloc fonctionnel 44) se base sur une courbe de masquage par bande (bloc fonctionnel 42) calculée à partir de la version décodée et déquantifiée de l'enveloppe spectrale. Cette mesure permet d'avoir une compatibilité entre l'allocation binaire du codeur et du décodeur. Les coefficients MDCT normalisés dans chaque bande sont ensuite quantifiés (bloc fonctionnel 45) par des quantificateurs vectoriels utilisant des dictionnaires imbriqués en taille, les dictionnaires étant composés d'une union de codes à permutation de type II. Finalement, en se référant à la figure 4b, les informations sur la tonalité (codées ici sur un bit B1) et le voisement (codées ici sur un bit Ba), ainsi que l'enveloppe spectrale eq(i) et les coefficients codés yq(j) sont multiplexés (bloc 46 de la figure 4a) et transmis en trames.
Ce codeur pouvant fonctionner à plusieurs débits, on se propose de réaliser un codeur multi-débits par exemple à 16, 24 et 32 kbit/s. Dans ce schéma de codage, les blocs fonctionnels suivants peuvent être mis en commun entre les différents modes: É Transformée MDCT (bloc 41), É Détection de voisement (bloc fonctionnel 47 de la 25 figure 4a) et détection de tonalité (bloc fonctionnel 48 de la figure 4a), É Calcul, quantification et codage entropique de l'enveloppe spectrale (bloc 43), É Calcul d'une courbe de masquage, coefficient par coefficient, et d'une courbe de masquage par bande (bloc 42).
Ces différents blocs constituent 61,5% de la complexité du traitement dans le processus de codage. Leur factorisation est donc d'un intérêt important pour réduire cette complexité lors de la génération de plusieurs flux binaires correspondants à des débits différents.
Les résultats de ces blocs fonctionnels permettent déjà d'obtenir une première partie commune à tous les flux binaires de sortie qui contient les bits d'information sur le voisement, la tonalité et l'enveloppe spectrale codée.
Dans une première variante de cet exemple de réalisation, il est possible de réaliser les opérations d'allocation des bits et de quantification pour chacun des flux binaires de sortie correspondant à chacun des débits binaires considérés. Ces deux opérations sont effectuées exactement de la même manière qu'habituellement dans un codeur TDAC.
Dans une seconde variante plus avancée telle qu'illustrée sur la figure 5, on peut mettre en uvre des techniques de transcodage "intelligent" (comme décrit dans le document publié US-2001/027393 cité ci-avant) pour réduire davantage la complexité et mutualiser certaines opérations, notamment: l'allocation de bits (bloc fonctionnel 44), - et aussi la quantification des coefficients (blocs fonctionnels 45 i), comme on le verra ci-après.
Sur la figure 5, les blocs fonctionnels mis en partage entre les codeurs (ou "mutualisés") portent la même référence que ceux d'un seul codeur TDAC tel que représenté sur la figure 4a. Il s'agit des blocs 41, 42, 47, 48, 43 et 44. En particulier, le bloc 44 d'allocation des bits est utilisé en plusieurs passes, et le nombre de bits alloués est ajusté pour la transquantification qu'effectue chaque codeur (blocs 45_1, , 45 (K-2), (K-1)), comme on le verra ci-après. On remarque en outre que ces transquantifications utilisent les résultats obtenus par le bloc fonctionnel 45_0 de quantification pour un codeur choisi, d'indice 0 (le codeur de débit le plus faible dans l'exemple décrit). Finalement, les seuls blocs fonctionnels des codeurs qui agissent sans interaction réelle sont les blocs de multiplexage 46_0, 46 1,..., 46 (K-2), 46 (K-1), bien qu'ils utilisent tous les mêmes informations de voisement et de tonalité, ainsi que la même enveloppe spectrale codée. A ce titre, on indique simplement qu'une mutualisation partielle du multiplexage peut être menée, là encore.
Pour les deux blocs fonctionnels d'allocation de bits et de quantification, la stratégie employée consiste à exploiter les résultats des deux blocs fonctionnels d'allocation des bits et de quantification réalisés pour le flux binaire (0), au débit le plus bas Do, pour accélérer les opérations des deux blocs fonctionnels 30 correspondants pour les K-1 autres flux binaire (k) (1<_ k < K). On peut aussi considérer le schéma de codage multi-débits qui utilise un bloc fonctionnel d'allocation de bits par flux binaire (sans factorisation prévue pour ce bloc) mais mutualise une partie des opérations de quantification ensuite.
Les techniques de codage multiple présentées ci-après se basent avantageusement sur un transcodage intelligent utilisé pour la réduction du débit binaire de flux audio codé, généralement situé dans un noeud du réseau.
Dans la suite, les flux binaires k, 0 <- k < K, sont classés suivant un ordre croissant de débits (Do< DI <...< DK-1) Ainsi, le flux binaire 0 correspond au débit binaire le plus bas.
* Allocation de bits L'allocation de bits dans le codeur TDAC se réalise en deux phases. D'abord un premier calcul du nombre de bits à allouer à chaque bande est effectué de préférence suivant la formule suivante: b01(i)= 21og2 eq2(i) Sb(I) +C, 0<_i<_M-1, où C= M 2mll0 1og2[eq(l)/Sb(l)] est une constante, B est le nombre total de bits disponibles, M est le nombre de bandes, eq(i) est la valeur décodée et déquantifiée de l'enveloppe spectrale sur la bande i, et Sb(i) est le seuil de masquage pour cette bande.
Chacune des valeurs obtenues est arrondie à l'entier naturel le plus proche. Si le débit total alloué n'est pas exactement égal à celui disponible, une seconde phase est utilisée pour réaliser le réajustement. Cette étape se fait préférentiellement par une succession d'opérations itératives basées sur un critère perceptuel qui ajoute ou retire des bits aux bandes.
Ainsi, si le nombre total de bits distribués est inférieur à celui disponible, l'ajout de bits se fait aux bandes où l'amélioration perceptuelle est la plus importante. Cette amélioration perceptuelle est mesurée par la variation du rapport bruit à masque entre l'allocation initiale et finale des bandes. Le débit est augmenté pour la bande où cette variation est la plus grande. Dans le cas contraire où le nombre total de bits distribués est supérieur à celui disponible, l'extraction de bits sur les bandes se fait de manière duale à cette dernière procédure.
Dans le schéma de codage multi-débits correspondant au codeur TDAC, il est possible de factoriser certaines opérations pour l'allocation de bits. Ainsi, la première phase de détermination par la formule ci-avant peut se faire une seule fois en se basant sur le débit binaire Do le plus bas. La phase de ré-ajustement en ajoutant des bits peut se faire ensuite de manière continue. Une fois que le nombre total de bit distribué atteint le nombre correspondant à un débit binaire d'un flux binaire k, k=1,2..., K-1, la distribution courante est considérée comme 30 celle qui est utilisée pour la quantification des vecteurs de coefficients normalisés par bande de ce flux binaire.
* Quantification des coefficients Pour ce qui concerne la quantification des coefficients, le codeur TDAC utilise une quantification vectorielle utilisant des dictionnaires imbriqués en taille, les dictionnaires étant composés d'une union de codes à permutation de type II. Ce type de quantification s'applique sur chacun des vecteurs des coefficients MDCT sur une bande. Un tel vecteur est normalisé au préalable en utilisant la valeur déquantifiée de l'enveloppe spectrale sur cette bande. On note: C(b,,d,) le dictionnaire correspondant au nombre de bits b; et à la dimension d,, - N(b,,d,) le nombre d'éléments dans ce dictionnaire, 15 CL(b,d,) l'ensemble de ses leaders, et - NL(b,,d,) le nombre de leaders.
Le résultat de quantification pour chaque bande i de la trame est un mot de code m, transmis dans le flux binaire.
Il représente l'index du vecteur quantifié dans le dictionnaire et calculé à partir des informations suivantes.
É le numéro 4, dans l'ensemble CL(b,,d,) des leaders du dictionnaire C(b,, d,), du vecteur leader quantifié Yy(i) 25 plus proche voisin d'un leader courant f(i), É le rang r de Yq(i) dans la classe du leader Yq(i), É et la combinaison de signes signq(i) à appliquer à Yq (i) (ou à Yq(i)) , où l'on précise les notations suivantes: É Y(i) est le vecteur des valeurs absolues des coefficients normalisés de la bande i, É sign(i) est le vecteur des signes des coefficients normalisés de la bande i, É 4) est le vecteur leader du vecteur Y(i) précité, obtenu par ordonnancement décroissant de ses composantes (la permutation correspondante est notée perm(i)), É et Yq(i) est le vecteur quantifié de Y(i) (ou "le plus 10 proche voisin" de Y(i) dans le dictionnaire C(b,,d;)).
Dans la suite, la notation a(k), avec un exposant k, indique le paramètre utilisé dans le traitement effectué pour obtenir le flux binaire du codeur k. Les paramètres sans cet exposant étant calculés une seule fois pour toutes pour le flux binaire O. Ils sont indépendants du débit (ou du mode) considéré.
La propriété "d'imbrication" des dictionnaires précitée 20 s'exprime selon la relation: C(b;,d,)ç ... ç C(b,k- ,d,)ç C(b,k),d,)... ç C(bK ',d) avec aussi.
CL(b,0),d,)ç ... CL(b,k-'),d,) CL(b,k),d,)... ç CL(b, K- ,d,) On note CL(b,(k),d,) \CL(b,k-'),d,) le complémentaire de CL(b,k-1),d,) dans CL(b, k),d,). Son cardinal est égal à NL(b;k),d,)-NL(b,k-'),d,) L'obtention des mots de code mk) (avec 0 <- k < K) , résultats de la quantification du vecteur des coefficients de la bande i pour chacun des flux binaires k, se fait comme suit.
É Pour le flux binaire k =O, l'opération de quantification se fait de manière classique comme habituellement dans le codeur TDAC. Elle permet d'obtenir les paramètres, signq(0)(i), 4 ) et r.
( ) qui permettent de construire le mot de code m ). On 10 détermine d'ailleurs dans cette même étape les vecteurs Y(i) et sign(i). Ils sont stockés en mémoire, ainsi que la permutation correspondante perm(i), pour être utilisés, le cas échéant, dans les étapes suivantes relatives aux autres flux binaires.
É Pour les flux binaires 1< k< K, on procède de manière incrémentale, de k =l jusqu'à k = K-1, en utilisant préférentiellement les étapes suivantes Si (b,k) =b(k- ) alors: 1. le mot de code, sur la bande i, de la trame du 20 flux binaire k est le même que celui de la trame du flux binaire (k 1) : et m. = m(k ') Sinon, i.e. (b(k)> b(k-')) 2. On recherche parmi les (NL(b;k),d,)-NL(b;k- ,d,)) leaders de CL(b,(k), d,) \CL(b,k- ,d,) le plus proche voisin de Y(i), 3. Avec le résultat de l'étape 2 et connaissant le plus proche voisin de Y(i) dans CL(b;k-'),d,), on teste si le plus proche voisin de Y(i) dans CL(b;k),d,) est dans CL(b;k-'),d,) (cas "Flag=O" ciaprès) ou CL(bik),d;) \CL(b;k-'),d;) (cas "Flag=l" ci-après), 4. Si Flag=O ((le leader le plus proche de Y(i) dans CL(b;k-'),d,) est aussi son plus proche voisin dans CL(b;k),d,)) alors: m(k) = m(k l) Si Flag=l (le leader le plus proche de Y(i) dans CL(b;k),d,) \CL(b,k-'),d;) trouvé à l'étape 2 est aussi son plus proche voisin dans CL(b;k),d;)), soit Lk) son numéro (avec L;k)>_NL(b,k-'),d;)), alors on effectue les étapes ci-après: a. Recherche du rang r(k) de q(k) (i) (nouveau vecteur quantifié de Y(i) dans la classe du leader 9lk)(i)) par exemple par l'algorithme de Schalkwijk en utilisant perm(i), b. Détermination de signgk)(i) en utilisant sign(i) et perm(i), c. Détermination du mot de code mk) à partir de 4k), r(k) et signgk) (i) . * Deuxième exemple de réalisation: application à un codeur par transformée de type MPEG-1 Layer I&II Le codeur MPEG-1 Layer I&II, présenté à la figure 6a, utilise un banc de filtres à 32 sous-bandes uniformes (bloc 61 de la figure 6a) pour réaliser la transformation temps/fréquence du signal audio d'entrée so. Les échantillons de sortie de chaque sous- bande sont regroupés, puis normalisés par un facteur d'échelle commun (déterminé par le bloc fonctionnel 67) avant d'être quantifiés (bloc 62). Le nombre de niveaux du quantificateur scalaire uniforme utilisé pour chaque sous-bande résulte d'une procédure d'allocation dynamique des bits (réalisée par le bloc 63). Cette procédure utilise un modèle psychoacoustique (bloc 64) pour déterminer la répartition des bits qui rend le bruit de quantification le moins perceptible possible. Les modèles d'audition proposés dans la norme se basent sur l'estimation du spectre obtenu par une transformée de Fourier rapide (FFT) du signal temporel d'entrée (réalisée par le bloc 65). En se référant à la figure 6b, la trame sc, multiplexée par le bloc 66 de la figure 6a et qui est finalement transmise, contient, après un champ d'entête HD, l'ensemble des échantillons des sous-bandes quantifiés ESB, qui représentent l'information principale, et une information complémentaire utilisée pour l'opération de décodage constituée par les facteurs d'échelle FE et l'allocation de bits Ai.
A partir de ce schéma de codage, la construction d'un 30 codeur multidébits, dans une application de l'invention, peut être réalisée en mettant en commun les blocs fonctionnels suivants, en se référant à la figure 7: É Banc de filtres d'analyse 61 É Détermination des facteurs d'échelle 67 5 É Calcul 65 de la transformée de Fourier FFT É Détermination des seuils de masquage suivant un modèle psychoacoustique 64.
Les deux blocs 64 et 65 fournissent déjà les rapports signal à masque (flèches SMR des figures 6a et 7), utilisés pour la procédure d'allocation de bits (bloc 70 de la figure 7).
Dans cet exemple de réalisation tel que représenté sur la figure 7, il est possible de tirer profit de la procédure utilisée pour l'allocation de bits pour la mettre aussi en commun, mais en ajoutant toutefois quelques modifications à l'allocation (bloc 70 d'allocation des bits de la figure 7). Seul le bloc fonctionnel de quantification 62_0 à 62 (K-1) est donc spécifique à chaque flux binaire correspondant à un débit Dk, 0 <- k -< K -1. Il en va de même pour le bloc de multiplexage 66_0 à 66_(K- 1).
* Allocation des bits Dans le codeur MPEG-1 Layer I&II, l'allocation se fait préférentiellement par une succession d'étapes itératives 25 comme suit.
Etape 0: Initialisation à zéro du nombres de bits b; de chacune des sousbandes i, 0 <- i < M. Etape 1: Mise à jour de la fonction de distorsion NMR(i) (appelée "rapport bruit à masque", de l'anglais "Noise to Mask Ratio") sur chacune des sous-bandes: NMR (i) = SMR {i) -SNR (b;) , où SNR(b;) est le rapport signal à bruit correspondant au quantificateur ayant un nombre de bits b;, et SMR(i) le rapport signal à masque fourni par le modèle psychoacoustique.
Etape 2: Incrémentation du nombre de bits bo de la sous- bande iQ où cette distorsion est maximale: b. =b. +e, io =argmax[NMR(1)] où c est une valeur entière positive dépendant de la bande, en général prise égale à 1.
Les étapes 1 et 2 sont répétées de manière itérative jusqu'à ce que le nombre total de bits disponibles, correspondant au débit de fonctionnement, soit distribué. Le résultat est alors un vecteur de distribution de bits Dans le schéma de codage multi-débits, ces étapes sont mises en commun avec quelques autres modifications, notamment: É le bloc fonctionnel ayant pour sortie K vecteurs de distributions de bits (ebn...,bn) (avec 0<-k<_K-1) , un vecteur (bnbn...,e) est obtenu lorsque le nombre total de bits disponibles correspondant au débit binaire Dk du flux binaire k est distribué, à l'itération des étapes 1 et 2.
É L'arrêt de l'itération des étapes 1 et 2 se fait lorsque le nombre total de bits disponibles correspondant au débit binaire le plus élevé DK_1 est totalement distribué (on rappelle que les flux binaires sont ordonnés suivant un ordre croissant de débits).
On notera que les vecteurs de distribution de bits sont obtenus successivement à partir de k =O jusqu'à k= K -1. Les K sorties de ce bloc d'allocation de bits alimentent alors les blocs de quantification pour chacun des flux binaires au débit donné.
* Troisième exemple de réalisation: application à un codeur de type CELP Le dernier exemple de réalisation concerne le codage de la parole multimodes à décision a posteriori à partir du codeur 3GPP NB-AMR (pour "Narrow-Band Adoptive Multi-Rate") qui est un codeur de parole en bande téléphonique multi-débits adaptatif, selon une norme 3GPP. Ce codeur qui appartient à la famille bien connue des codeurs CELP dont le principe a été décrit brièvement plus haut, comporte huit modes (ou débits) allant de 12,2 kbit/s à 4,75 kbit/s, tous basés sur la technique ACELP (pour "Algebraic Code Excited Linear Prediction"). La figure 8 donne le schéma de codage en blocs fonctionnels de ce codeur. Cette structure a été exploitée afin de réaliser un codeur multi-modes à décision a posteriori, basé sur 4 modes du codeur NB-AMR (7,4; 6,7; 5,9; 5,15).
Dans une première variante, seule la mutualisation des blocs fonctionnels identiques est exploitée (les résultats des quatre codages sont alors identiques à ceux des quatre codages en parallèle).
Dans une deuxième variante, la complexité est encore plus réduite. Les calculs de blocs fonctionnels non identiques pour certains modes sont accélérés en exploitant ceux d'un autre mode ou d'un module de traitement commun, comme on le verra ci-après. Les résultats des quatre codages ainsi mutualisés sont alors différents de ceux des quatre codages en parallèle.
Dans une autre variante encore, les blocs fonctionnels de ces quatre modes sont utilisés pour un codage multi-modes en treillis, comme on l'a vu ci-avant en référence à la figure ld.
On rappelle brièvement ci-après les quatre modes (7,4; 6,7; 5,9; 5,15) du codeur 3GPP NB-AMR.
Le codeur 3GPP NB-AMR travaille sur un signal de parole limité en bande à 3,4 kHz et échantillonné à 8 kHz découpé en trames de 20 ms (160 échantillons). Chaque trame comporte 4 sous-trames de 5 ms (40 échantillons) regroupées 2 par 2 dans des "super sous-trames" de 10 ms (80 échantillons). Pour tous les modes, les mêmes types de paramètres sont extraits du signal mais avec des variantes de modélisation et/ou de quantification de ces paramètres. Dans le codeur NB-AMR, cinq types de paramètres sont à analyser et à coder. Les paramètres LSP (pour "Line Spectral Pairs") sont traités une fois par trame pour tous les modes, sauf pour le mode 12,2 (donc une fois par super sous-trame). Les autres paramètres (notamment le retard LTP, le gain de l'excitation adaptative, l'excitation fixe, le gain de l'excitation fixe) sont traités une fois par sous-trame.
Les quatre modes considérés ici (7,4; 6,7; 5,9; 5,15) se distinguent essentiellement par les quantifications de leurs paramètres. L'allocation binaire de ces 4 modes est résumée dans le tableau 1 ci-après.
Mode (kbit/s) 7,4 6,7 5,9 5,15 LSP 26=(8+9+9) 26=(8+9+9) 26=(8+9+9)23=(8+ 8+7) Retards LTP 8/ 5/ 8/ 4/ 8/ 4/ 8/ 4/ 8/ 5 8 /4 8/ 4 4/ 4 Excitation fixe 17/17/ 14/14/ 11/11/ 9 / 9 / 17/17 14/14 11/11 9 / 9 Gains des 7 / 7 / 7 / 7 / 6 / 6 / 6 / 6 / excitations fixe 7/ 7 7/ 7 6/ 6 6/ 6 et adaptative Total par trame 148 134 118 103 Tableau 1: Allocation binaire des 4 modes (7,4; 6,7; 5,9; 5,15) du codeur 3GPP NB-AMR Ces 4 modes du codeur NB-AMR (7,4; 6,7; 5,9; 5,15) possèdent des modules identiques comme par exemple le pré- traitement, l'analyse des coefficients de prédiction linéaire, le calcul de signal pondéré. Le pré-traitement du signal est un filtrage passe-haut de fréquence de coupure 80 Hz pour supprimer les composantes continues combiné à une division par deux des signaux d'entrée pour éviter des débordements. L'analyse LPC comprend des sous- modules de fenêtrage, de calcul des autocorrélations, de mise en oeuvre de l'algorithme de Levinson-Durbin, de transformation A(z)-3LSP, de calcul des paramètres LSPi non quantifiées pour chaque sous-trame (i=0,... ,3) par interpolation entre les LSP de la trame passée et ceux de 10 la trame courante, et de transformation inverse (LSPi-* Ai(z)) Le calcul du signal de parole pondéré réside en un filtrage par le filtre de pondération perceptuelle 15 (Wi(z)=Ai(z/yl)/Ai(z/y2) où Ai(z) est le filtre non quantifié de la sous-trame d'indice i avec yi =0,94 et y2=0,6).
D'autres blocs fonctionnels ne sont identiques que pour trois de ces modes (7,4; 6,7; 5,9). Par exemple, la recherche du retard LTP en boucle ouverte effectuée sur le signal pondéré une fois par super sous-trame pour ces trois modes. Pour le mode à 5,15, elle n'est effectuée en revanche qu'une fois par trame.
De même, si les quatre modes utilisent une quantification vectorielle pondérée prédictive MA (pour "Moving Average") d'ordre 1 à moyenne supprimée et par produit cartésien des paramètres LSP dans le domaine fréquentiel normalisé, la quantification des paramètres LSP du mode à 5, 15 kbit/s se fait sur 23 bits, celle des trois autres modes sur 26 bits. Après transformation dans le domaine fréquentiel normalisé, la quantification vectorielle par produit cartésien (dite "split VQ") des paramètres LSP scinde les 10 paramètres LSP en 3 sous-vecteurs, de dimension 3, 3 et 4. Le premier sous-vecteur composé des 3 premiers LSP est quantifié sur 8 bits par le même dictionnaire pour les quatre modes. Le deuxième sous-vecteur composé des 3 LSP suivants est quantifié pour les 3 modes haut débit par un dictionnaire de taille 512 (9 bits) et pour le mode à 5,15 par la moitié de ce dictionnaire (un vecteur sur 2). Le troisième et dernier sous- vecteur composé des 4 derniers LSP est quantifié pour les 3 modes haut débit par un dictionnaire de taille 512 (9 bits) et pour le mode de plus faible débit par un dictionnaire de taille 128 (7 bits). La transformation dans le domaine fréquentiel normalisé, le calcul des poids du critère d'erreur quadratique et la prédiction MA (pour "Moving Average") du résidu LSP à quantifier sont identiques pour les 4 modes.
Les trois modes haut débit utilisant les même dictionnaires pour quantifier les LSP, ils peuvent partager, en plus du même module de quantification vectorielle, la transformation inverse (pour revenir du domaine fréquentiel normalisé vers le domaine en cosinus), ainsi que le calcul des LSP4i quantifiées pour chaque sous-trame (i=0,...,3) par interpolation entre les LSP quantifiés de la trame passée et ceux de la trame courante, et enfin la transformation inverse LSP4i -* A1(z) Les recherches en boucle fermée des excitations adaptative et fixe sont faites séquentiellement et nécessitent au préalable le calcul de la réponse impulsionnelle du filtre de synthèse pondéré, puis de signaux- cible. La réponse impulsionnelle du filtre de synthèse pondéré (Ai (z/yl) / [AQ, (z)AI (z/y2) ] ) est identique pour les 3 modes haut débit (7,4; 6,7; 5,9). Pour chaque sous-trame, le calcul du signal-cible pour l'excitation adaptative dépend du signal pondéré (indépendamment du mode), du filtre quantifié AQ,(z) (identique pour 3 des modes) et du passé de la sous-trame (différent pour chaque sous-trame autre que la première sous-trame). Pour chaque sous-trame, le signal-cible pour l'excitation fixe est obtenu en retirant au signal-cible précédent la contribution de l'excitation adaptative filtrée de cette sous-trame (qui est différente d'un mode à l'autre sauf pour la première sous-trame des 3 premiers modes).
Trois dictionnaires adaptatifs sont utilisés. Le premier dictionnaire, pour les sous-trames paires (i=0 et 2) des modes (7,4; 6,7; 5,9) et pour la première sous-trame du mode à 5,15, comporte 256 retards absolus fractionnaires, de résolution 1/3 dans l'intervalle [19 + 1/3,84 + 2/3] et de résolution entière dans l'intervalle [85,143]. La recherche dans ce dictionnaire de retards absolus est focalisée autour du retard trouvé en boucle ouverte (intervalle de 5 pour le mode à 5,15, de 3 pour les autres modes). Pour la première sous-trame des modes (7,4; 6,7; 5,9), le signal-cible et le retard en boucle ouverte étant identique, le résultat de cette recherche en boucle fermée l'est aussi. Les deux autres dictionnaires sont de type différentiel et permettent de coder la différence entre le retard courant et le retard entier Ti_1 le plus prochedu retard fractionnaire de la sous-trame précédente. Le premier dictionnaire différentiel sur 5 bits, utilisé pour les sous-trames impaires du mode à 7,4, est de résolution 1/3 autour du retard entier Ti_1 dans l'intervalle [Ti_1-5 +2/3, Ti_1+4 +2/3]. Le deuxième dictionnaire différentiel sur 4 bits, inclus dans le premier, est utilisé pour les sous-trames impaires des modes à 6,7 et 5,9 ainsi que pour les trois dernières sous-trames du mode à 5,15. Ce deuxième dictionnaire est de résolution entière autour du retard entier Ti_1 dans l'intervalle [Ti_1-5, Ti_1+4] plus une résolution de 1/3 dans l'intervalle [Ti_1-1 + 2/3, Ti_1 + 2/3].
Les dictionnaires fixes appartiennent à la famille bien connue des dictionnaires ACELP. La structure d'un répertoire ACELP est basée sur le concept ISPP (pour "Interleaved Single-Pulse Permutation") qui consiste à diviser l'ensemble des L positions en K pistes entrelacées, chacune des N impulsions étant localisée dans certaines pistes prédéfinies. Les 4 modes (7,4; 6,7; 5,9; 5,15) utilisent la même découpe des 40 échantillons d'une sous-trame en 5 pistes de longueur 8 entrelacées, comme le montre le tableau 2a. Le tableau 2b montre, quant à lui, pour les 3 modes (7,4; 6,7; 5,9) le débit du dictionnaire, le nombre d'impulsions et leur répartition dans les pistes. La répartition des 2 impulsions du dictionnaire ACELP à 9 bits du mode à 5,15 est encore plus contrainte.
Piste Positions Po 0, 5, 10, 15, 20, 25, 30, 35 P1 1, 6, 11, 16, 21, 26, 31, 36 P2 2, 7, 12, 17, 22, 27, 32, 37 P3 3, 8, 13, 18, 23, 28, 33, 38 P4 4, 9, 14, 19, 24, 29, 34, 39 Tableau 2a: Découpe en pistes entrelacées des 40 positions d'une sous-trame du codeur 3GPP NB-AMR Mode (kbit/s) 7, 4 6,7 5,9 Débit du dictionnaire 17 14 11 ACELP (13+4) (11+3) (9+2) (positions+amplitudes) Nombre d'impulsions 4 3 2 Pistes potentielles pour Po Po Pi, P3 io Pistes potentielles pour P1 Pi, P3 Po, P1, ii P2, P4 Pistes potentielles pour P2 P2, P4 - i2 Pistes potentielles pour P3, P4 - Tableau 2b: Répartition des impulsions dans les pistes pour les modes 7,4; 6,7; 5,9 du codeur 3GPP NB-AMR Les gains des excitations adaptative et fixe sont quantifiés sur 7 ou 6 bits (avec une prédiction MA appliquée au gain de l'excitation fixe) par une quantification vectorielle conjointe minimisant le critère CELP.
* Codage multi-modes à décision a posteriori n'exploitant que la mutualisation des blocs fonctionnels identiques A partir de ce schéma de codage, la construction d'un codeur multi-modes à décision a posteriori peut être réalisée en mettant en commun les blocs fonctionnels suivants.
En se référant à la figure 8, pour les 4 modes, on 15 effectue en commun: É le pré-traitement (bloc 81), É l'analyse des coefficients de prédiction linéaire (fenêtrage et calcul des autocorrélations 82, mise en oeuvre de l'algorithme de Levinson- Durbin 83, transformation A(z) >LSP 84, interpolation des LSP et transformation inverse 862), É le calcul du signal d'entrée pondéré 87, É la transformation des paramètres LSP dans le domaine fréquentiel normalisé, le calcul des poids du critère d'erreur quadratique pour la quantification vectorielle des LSP, la prédiction MA du résidu LSP, la quantification vectorielle des 3 premiers LSP (dans le bloc 85).
Pour tous ces blocs, leur complexité cumulée est ainsi 30 divisée par 4.
Pour les 3 modes de plus haut débit (7,4; 6,7; 5,9), on effectue: É la quantification vectorielle des 7 derniers LSP (une fois par trame) (dans le bloc 85 de la figure 8), É la recherche du retard LTP en boucle ouverte (2 fois par trame) (bloc 88), É l'interpolation des LSP quantifiés (861) et la transformation inverse vers les filtres AQi (pour chaque sous-trame), É le calcul de la réponse impulsionnelle 89 du filtre de synthèse pondéré (pour chaque sous-trame).
Pour ces blocs, les calculs ne sont plus effectués 4 fois mais 2 fois, une fois pour les 3 modes à plus haut débit et une fois pour le mode à faible débit. Leur complexité est donc divisée par 2.
On peut aussi, pour ces 3 modes de plus haut débit, mutualiser pour la première sous-trame le calcul des signaux-cible pour l'excitation fixe (bloc 91 sur la figure 8) et adaptative (bloc 90), ainsi que la recherche LTP en boucle fermée (bloc 881). Il faut noter que la mutualisation de ces opérations pour la première sous-trame ne produit des résultats identiques que dans le contexte du codage multiple de type multi-modes à décision à posteriori. Dans le contexte général de codage multiple, le passé de la première sous-trame est, comme pour les 3 autres sous-trames, différent selon les débits, ces opérations conduisent généralement alors à des résultats différents.
* Codage multi-modes à décision a posteriori avancée Des blocs fonctionnels non identiques peuvent être accélérés en exploitant ceux d'un autre mode ou d'un module de traitement commun. Selon les contraintes de l'application (en termes de qualité et/ou de complexité), on peut utiliser différentes variantes. Quelques exemples sont décrits ci- après. Il est aussi possible de s'appuyer sur des techniques de transcodage intelligent entre codeurs CELP.
* La quantification vectorielle du deuxième sous-vecteur de LSP On peut, comme dans le cas du mode de réalisation pour le codeur TDAC, exploiter l'imbrication de certains dictionnaires pour accélérer les calculs. Ainsi, le dictionnaire du deuxième sous-vecteur de LSP du mode à 5,15 étant inclus dans celui des 3 autres modes, la quantification de ce sousvecteur Y par les 4 modes peut être ainsi avantageusement combinée: É Etape 1: Chercher son plus proche voisin Y1 dans le plus petit dictionnaire (correspondant à la moitié du grand dictionnaire) o Y1 quantifie Y pour le mode à 5,15 É Etape 2: Chercher le plus proche voisin Yh dans le complémentaire dans le grand dictionnaire (soit l'autre moitié du dictionnaire) É Etape 3: Tester si le plus proche voisin de Y dans le dictionnaire à 9 bits est Y1 (cas "Flag=O") ou Yh 30 (cas "Flag=l") o cas "Flag=O" . Y1 quantifie aussi Y pour les modes à 7,4; 6,7 et 5,9 o sinon (cas "Flag=1"), Yh quantifie Y pour les modes à 7,4; 6,7 et 5,9 Cette mise en oeuvre donne un résultat identique à celui du codage multi-mode non optimisé. Si l'on désire réduire davantage la complexité de la quantification, on peut s'arrêter à l'étape 1 et prendre Y1 comme vecteur quantifié pour les modes haut débit si ce vecteur est jugé suffisamment proche de Y. Cette simplification peut donc donner un résultat différent d'une recherche exhaustive.
* Accélération de la recherche LTP en boucle ouverte La recherche du retard LTP en boucle ouverte du mode à 5,15 peut exploiter les résultats de celle des autres modes. Si les deux retards en boucle ouverte trouvés sur les 2 super sous-trames sont suffisamment proches pour permettre un codage différentiel, la recherche en boucle ouverte du mode à 5,15 n'est pas effectuée. On utilise plutôt les résultats des modes supérieurs. Sinon, on peut: - effectuer la recherche classique, - ou focaliser la recherche en boucle ouverte sur toute la trame autour des deux retards en boucle ouverte trouvés par les modes supérieurs.
A l'inverse, on peut aussi effectuer d'abord la recherche du retard en boucle ouverte sur le mode à 5,15 et focaliser les deux recherches du retard en boucle ouverte des modes supérieurs autour de la valeur déterminée par le mode à 5,15.
Dans une troisième variante plus avancée, illustrée à la figure 1d, on se propose de réaliser un codeur multi-modes en treillis permettant plusieurs combinaisons de blocs fonctionnels, chaque bloc fonctionnel possédant au moins deux modes de fonctionnement (ou débits). On construit ce nouveau codeur à partir des quatre débits du codeur NB-AMR cités ci- avant (5,15; 5,90; 6,70; 7,40). Dans ce codeur, on distingue quatre blocs fonctionnels: le bloc LPC, le bloc LTP, le bloc excitation fixe et le bloc de gains. En se référant au tableau 1 présenté ci-avant, le tableau 3a ci-après récapitule pour chacun de ces blocs fonctionnels, son nombre de débits et ses débits.
Bloc fonctionnel Nombre de débits Débits des blocs fonctionnels LPC (LSP) 2 26 et 23 Retard LTP 3 26, 24 et 20 Excitation fixe 4 68, 56, 44 et 36 Gains 2 28 et 24 Tableau 3a: Nombre de débits et débits des blocs fonctionnels pour les quatre modes (5,15; 5,90; 6,70; 7,40) du codeur NBAMR.
On a donc P=4 blocs fonctionnels et 2 x 3 x 4 x 2 = 48 combinaisons possibles. Dans l'exemple particulier de réalisation, on choisit de ne pas considérer le haut-débit du bloc fonctionnel 2 (LTP débit 26 bits/trame). Un autre choix est possible, bien entendu.
Le codeur multi-débits ainsi obtenu possède une grande 25 granularité en débits, avec 32 modes possibles donnés dans le tableau 3b. Toutefois, on indique que le codeur ainsi obtenu n'est pas interopérable avec le codeur NB-AMR précité. Dans le tableau 3b, les modes correspondants aux trois débits du NB-AMR (5,15; 5,90; 6,70) sont présentés en gras, l'exclusion du débit le plus élevé du bloc fonctionnel LTP éliminant le débit de 7,40.
Paramètres LSP Retard Excitation Gains des Total LTP fixe excitations fixe et adaptative Débit par 23 20 36 24 103 trame 23 20 36 28 107 23 20 44 24 111 23 20 44 28 115 23 20 56 24 123 23 20 56 28 127 23 20 68 24 135 23 20 68 28 139 23 24 36 24 107 23 24 36 28 111 23 24 44 24 115 23 24 44 28 119 23 24 56 24 127 23 24 56 28 131 23 24 68 24 139 23 24 68 28 143 26 20 36 24 106 26 20 36 28 110 26 20 44 24 114 26 20 44 28 118 26 20 56 24 126 26 20 56 28 130 26 20 68 24 138 26 20 68 28 142 26 24 36 24 110 26 24 36 28 114 26 24 44 24 118 26 24 44 28 122 26 24 56 24 130 26 24 56 28 134 26 24 68 24 142 26 24 68 28 146 Tableau 3b: Débit par bloc fonctionnel et global du codeur multi-modes en treillis Ce codeur possédant 32 débits possibles, 5 bits sont nécessaires pour identifier le mode utilisé. Comme dans la variante précédente, la mutualisation de blocs fonctionnels est exploitée. On applique des stratégies de codage différentes pour les différents blocs fonctionnels. Par exemple, pour le bloc fonctionnel 1 comprenant la quantification des LSP, on privilégie le bas débit comme mentionné ciavant de la manière suivante: - Le premier sous-vecteur composé des 3 premiers LSP est quantifié sur 8 bits par le même dictionnaire pour les deux débits associés à ce bloc fonctionnel, - Le deuxième sous-vecteur composé des 3 LSP suivants est quantifié sur 8 bits par le dictionnaire du plus petit débit. Ce dictionnaire correspondant à la moitié du dictionnaire de plus haut débit, on n'effectue la recherche dans l'autre moitié du dictionnaire que si la distance entre les 3 LSP et l'élément choisi dans le dictionnaire dépasse un certain seuil.
- Le troisième et dernier sous-vecteur composé des 4 derniers LSP est quantifié par un dictionnaire de taille 512 (9 bits) et par un dictionnaire de taille 128 (7 bits).
Par contre, comme mentionné ci-avant dans la deuxième 10 variante (correspondant au codage multi-modes à décision a posteriori avancée), on choisit de privilégier le haut- débit pour le bloc fonctionnel 2 (retard LTP). Dans le codeur NB-AMR, la recherche du retard LTP en boucle ouverte est effectuée deux fois par trame pour le retard 15 LTP de 24 bits et elle est effectuée une seule fois par trame pour celui de souhaite favoriser bits. Pour ce bloc fonctionnel, on le haut débit. Donc, le calcul du retard LTP en boucle ouverte est réalisé de la manière suivante: - On calcule deux retards en boucle ouverte sur les 2 super sous-trames. S'ils sont suffisamment proches pour permettre un codage différentiel, la recherche en boucle ouverte sur la trame entière n'est pas effectuée. On utilise plutôt les résultats des deux super sous-trames.
- Sinon, on effectue une recherche en boucle ouverte sur toute la trame en la focalisant autour des deux retards en boucle ouverte trouvés précédemment. Une variante réduisant la complexité retient uniquement le retard en boucle ouverte de la première.
Après certains blocs fonctionnels, il est possible de réaliser une sélection partielle permettant de réduire le nombre de combinaisons à explorer. Par exemple, après le bloc fonctionnel 1 (LPC), on peut éliminer les combinaisons avec 26 bits pour ce bloc si la performance du débit de 23 bits est suffisamment proche ou inversement éliminer le mode à 23 bits si sa performance est trop dégradée par rapport au mode à 26 bits.
Ainsi, la présente invention permet de fournir une solution efficace au problème de la complexité des codages multiples, par la mutualisation et l'accélération des calculs mis en oeuvre par les différents codeurs. Les structures de codage peuvent donc être représentées à l'aide de blocs fonctionnels décrivant les différentes opérations effectuées au cours d'un traitement. Les blocs fonctionnels des différents codages mis en oeuvre dans un codage multiple possèdent des relations fortes qui sont exploitées au sens de la présente invention. Ces relations sont particulièrement fortes lorsque les différents codages correspondent à différents modes d'une même structure.
On indique enfin que la présente invention est flexible du point de vue de la complexité. Il est possible en effet de décider a priori la complexité maximum du codage multiple et d'adapter le nombre de codeurs explorés en fonction de cette complexité.

Claims (26)

Revendications
1. Procédé de codage multiple en compression, dans lequel un signal d'entrée est destiné à alimenter en parallèle une pluralité de codeurs comportant chacun une succession de blocs fonctionnels, en vue d'un codage en compression dudit signal par chaque codeur, caractérisé en ce qu'il comporte les étapes préparatoires ci-après: a) identifier les blocs fonctionnels formant chaque codeur, ainsi qu'une ou plusieurs fonctions réalisées par chaque bloc, b) repérer, parmi lesdites fonctions, des fonctions qui sont communes d'un codeur à l'autre, et c) exécuter lesdites fonctions communes, une fois pour toutes, pour une partie au moins de tous les codeurs, au sein d'au moins un même module de calcul.
2. Procédé selon la revendication 1, caractérisé en ce que 20 ledit module de calcul est constitué par un ou plusieurs blocs de l'un des codeurs.
3. Procédé selon la revendication 2, caractérisé en ce que, pour chaque fonction exécutée à l'étape c), on utilise au moins un bloc fonctionnel d'un codeur choisi parmi ladite pluralité de codeurs, et en ce que le bloc dudit codeur choisi est agencé pour délivrer des résultats partiels aux autres codeurs, pour un codage efficace, auprès desdits autres codeurs, vérifiant un critère optimal entre la complexité et la qualité du codage.
4. Procédé selon la revendication 3, dans lequel les codeurs sont susceptibles d'opérer à des débits respectifs différents, caractérisé en ce que le codeur choisi est le codeur de débit le plus faible, et en ce que les résultats obtenus, suite à l'exécution de la fonction à l'étape c) avec des paramètres propres au codeur choisi, sont adaptés aux débits d'une partie au moins des autres codeurs par une recherche focalisée de paramètres pour une partie au moins de tous les autres modes, jusqu'au codeur de débit le plus élevé.
5. Procédé selon la revendication 3, dans lequel les codeurs sont susceptibles d'opérer à des débits respectifs différents, caractérisé en ce que le codeur choisi est le codeur de débit le plus élevé, et en ce que les résultats obtenus, suite à l'exécution de la fonction à l'étape c) avec des paramètres propres au codeur choisi, sont adaptés aux débits d'une partie au moins des autres codeurs par une recherche focalisée de paramètres pour une partie au moins de tous les autres modes, jusqu'au codeur de débit le plus faible.
6. Procédé selon la revendication 4, prise en combinaison avec la revendication 5, caractérisé en ce que, pour un débit donné, on utilise le bloc fonctionnel d'un codeur opérant audit débit donné, en tant que module de calcul, et on adapte progressivement au moins une partie des paramètres propres à ce codeur: - jusqu'au codeur de débit le plus élevé, par recherche focalisée, et - jusqu'au codeur de débit le plus faible, par recherche focalisée.
7. Procédé selon la revendication 1, dans lequel les blocs fonctionnels des différents codeurs sont agencés en treillis, avec plusieurs chemins possibles dans le treillis, caractérisé en ce que chaque chemin du treillis est défini par une combinaison de modes de fonctionnement des blocs fonctionnels, chaque bloc fonctionnel alimentant plusieurs variantes possibles du bloc fonctionnel suivant.
8. Procédé selon la revendication 7, caractérisée en ce que l'on prévoit un module de sélection partielle, après chaque étape de codage menée par un ou plusieurs blocs fonctionnels, capable de sélectionner les résultats fournis par un ou plusieurs de ces blocs fonctionnels, pour des étapes suivantes de codage.
9. Procédé selon la revendication 7, dans lequel les blocs fonctionnels sont susceptibles d'opérer à des débits respectifs différents et en utilisant des paramètres respectifs propres auxdits débits, caractérisé en ce que, pour un bloc fonctionnel donné, le chemin du treillis choisi est celui traversant le bloc 25 fonctionnel de débit le plus faible, et en ce que les résultats obtenus dudit bloc fonctionnel de débit le plus faible sont adaptés aux débits d'une partie au moins des autres blocs fonctionnels par une recherche focalisée de paramètres pour une partie au moins de tous les autres blocs fonctionnels, jusqu'au bloc fonctionnel de débit le plus élevé.
10. Procédé selon la revendication 7, dans lequel les blocs fonctionnels sont susceptibles d'opérer à des débits respectifs différents et en utilisant des paramètres respectifs propres auxdits débits, caractérisé en ce que, pour un bloc fonctionnel donné, le chemin du treillis choisi est celui traversant le bloc fonctionnel de débit le plus élevé, et en ce que les résultats obtenus dudit bloc fonctionnel de débit le plus élevé sont adaptés aux débits d'une partie au moins des autres blocs fonctionnels par une recherche focalisée de paramètres pour une partie au moins de tous les autres blocs fonctionnels, jusqu'au bloc fonctionnel de débit le plus faible.
11. Procédé selon la revendication 9, prise en combinaison avec la revendication 10, caractérisé en ce que, pour un débit donné associé aux paramètres d'un bloc fonctionnel d'un codeur, on utilise le bloc fonctionnel opérant audit débit donné, en tant que module de calcul, et on adapte progressivement au moins une partie des paramètres propres à ce bloc fonctionnel: - jusqu'au bloc fonctionnel capable d'opérer au débit le plus faible, par recherche focalisée, et - jusqu'au bloc fonctionnel capable d'opérer au débit le plus élevé, par recherche focalisée.
12. Procédé selon la revendication 1, caractérisé en ce que ledit module de calcul est un module indépendant desdits codeurs, et agencé pour redistribuer des résultats obtenus à l'étape c) à tous les codeurs.
13. Procédé selon la revendication 12, prise en combinaison avec la revendication 2, caractérisé en ce que le module indépendant et le ou les blocs de l'un au moins des codeurs sont agencés pour échanger mutuellement des résultats obtenus à l'étape c), et en ce que le module de calcul est agencé pour effectuer un transcodage d'adaptation entre blocs fonctionnels de codeurs différents.
14. Procédé selon l'une des revendications 12 et 13, caractérisé en ce que le module indépendant comporte un bloc de codage au moins partiel et un bloc de transcodage d'adaptation.
15. Procédé selon l'une des revendications précédentes, dans lequel les codeurs en parallèle sont agencés pour opérer en codage multi-modes, caractérisé en ce que l'on prévoit un module de sélection a posteriori, capable de sélectionner un codeur parmi les codeurs.
16. Procédé selon la revendication 15, caractérisé en ce que l'on prévoit un module de sélection partielle, après chaque étape de codage menée par un ou plusieurs blocs fonctionnels, indépendant des codeurs et capable de sélectionner un ou plusieurs codeurs.
17. Procédé selon l'une des revendications précédentes, dans lequel les codeurs sont de type par transformée, caractérisé en que le module de calcul comporte un bloc d'allocation de bits, partagé entre tous les codeurs, chaque allocation de bits effectuée pour un codeur étant suivie d'une adaptation à ce codeur notamment en fonction de son débit.
18. Procédé selon la revendication 17, caractérisé en ce que le procédé comporte en outre une étape de quantification, dont les résultats sont fournis à tous les codeurs.
19. Procédé selon la revendication 18, caractérisé en ce qu'il comporte en outre des étapes communes à tous les codeurs parmi: - une transformée temps-fréquence (MDCT), - une détection de voisement dans le signal d'entrée, 15 - une détection de tonalité, - la détermination d'une courbe de masquage, - et un codage d'enveloppe spectrale.
20. Procédé selon la revendication 17, dans lequel les codeurs effectuent un codage en sous-bande (MPEG-1), caractérisé en ce que le procédé comporte en outre des étapes communes à tous les codeurs parmi: l'application d'un banc de filtres d'analyse, - une détermination de facteurs d'échelle, - un calcul de transformée spectrale (FFT), - et la détermination de seuils de masquage suivant un modèle psychoacoustique.
21. Procédé selon l'une des revendications 1 à 16, dans lequel les codeurs sont du type à analyse par synthèse (CELP), caractérisé en ce que le procédé comporte des étapes communes à tous les codeurs parmi au moins: un pré-traitement, - l'analyse de coefficients de prédiction linéaire, un calcul de signal d'entrée pondéré, - et une quantification pour au moins une partie des paramètres.
22. Procédé selon la revendication 21, prise en combinaison avec la revendication 16, caractérisé en ce que le module de sélection partielle est mis en oeuvre après une étape partagée de quantification vectorielle pour des paramètres à court terme (LPC).
23. Procédé selon la revendication 21, prise en combinaison avec la revendication 16, caractérisé en ce que le module de sélection partielle est mis en oeuvre après une étape partagée de recherche de paramètre à long terme (LTP) en boucle ouverte.
24. Produit programme d'ordinateur destiné à être stocké dans une mémoire d'une unité de traitement, notamment d'un ordinateur ou d'un terminal mobile, ou sur un support mémoire amovible et destiné à coopérer avec un lecteur de l'unité de traitement, caractérisé en ce qu'il comporte des instructions pour la mise en uvre du procédé de transcodage selon l'une des revendications précédentes.
25. Dispositif d'aide à un codage multiple en compression, codage dans lequel un signal d'entrée est destiné à alimenter en parallèle une pluralité de codeurs comportant chacun une succession de blocs fonctionnels, en vue d'un codage en compression dudit signal par chaque codeur, caractérisé en ce qu'il comporte une mémoire propre à stocker des instructions d'un produit programme d'ordinateur selon la revendication 24.
26. Dispositif selon la revendication 25, caractérisé en ce qu'il comporte en outre un module de calcul indépendant (MI) pour la mise en uvre du procédé selon l'une des revendications 12 à 16 et 22, 23.
FR0314490A 2003-12-10 2003-12-10 Procede de codage multiple optimise Pending FR2867649A1 (fr)

Priority Applications (12)

Application Number Priority Date Filing Date Title
FR0314490A FR2867649A1 (fr) 2003-12-10 2003-12-10 Procede de codage multiple optimise
DE602004023115T DE602004023115D1 (de) 2003-12-10 2004-11-24 Optimiertes mehrfach-codierungsverfahren
EP04805538A EP1692689B1 (fr) 2003-12-10 2004-11-24 Procede de codage multiple optimise
ZA200604623A ZA200604623B (en) 2003-12-10 2004-11-24 Optimized multiple coding method
CN2004800365842A CN1890714B (zh) 2003-12-10 2004-11-24 一种优化的复合编码方法
AT04805538T ATE442646T1 (de) 2003-12-10 2004-11-24 Optimiertes mehrfach-codierungsverfahren
US10/582,025 US7792679B2 (en) 2003-12-10 2004-11-24 Optimized multiple coding method
PL04805538T PL1692689T3 (pl) 2003-12-10 2004-11-24 Sposób zoptymalizowanego wielokrotnego kodowania
PCT/FR2004/003009 WO2005066938A1 (fr) 2003-12-10 2004-11-24 Procede de codage multiple optimise
ES04805538T ES2333020T3 (es) 2003-12-10 2004-11-24 Procedimiento de codificacion multiple optimizado.
JP2006543574A JP4879748B2 (ja) 2003-12-10 2004-11-24 最適化された複合的符号化方法
KR1020067011555A KR101175651B1 (ko) 2003-12-10 2006-06-12 다중 압축 부호화 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0314490A FR2867649A1 (fr) 2003-12-10 2003-12-10 Procede de codage multiple optimise

Publications (1)

Publication Number Publication Date
FR2867649A1 true FR2867649A1 (fr) 2005-09-16

Family

ID=34746281

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0314490A Pending FR2867649A1 (fr) 2003-12-10 2003-12-10 Procede de codage multiple optimise

Country Status (12)

Country Link
US (1) US7792679B2 (fr)
EP (1) EP1692689B1 (fr)
JP (1) JP4879748B2 (fr)
KR (1) KR101175651B1 (fr)
CN (1) CN1890714B (fr)
AT (1) ATE442646T1 (fr)
DE (1) DE602004023115D1 (fr)
ES (1) ES2333020T3 (fr)
FR (1) FR2867649A1 (fr)
PL (1) PL1692689T3 (fr)
WO (1) WO2005066938A1 (fr)
ZA (1) ZA200604623B (fr)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7987089B2 (en) * 2006-07-31 2011-07-26 Qualcomm Incorporated Systems and methods for modifying a zero pad region of a windowed frame of an audio signal
US8452801B2 (en) 2006-10-19 2013-05-28 Lg Electronics Inc. Encoding method and apparatus and decoding method and apparatus
KR101411900B1 (ko) * 2007-05-08 2014-06-26 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 장치
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
KR101403340B1 (ko) * 2007-08-02 2014-06-09 삼성전자주식회사 변환 부호화 방법 및 장치
CN102089810B (zh) * 2008-07-10 2013-05-08 沃伊斯亚吉公司 多基准线性预测系数滤波器量化和逆量化设备及方法
FR2936898A1 (fr) * 2008-10-08 2010-04-09 France Telecom Codage a echantillonnage critique avec codeur predictif
MX2011011399A (es) * 2008-10-17 2012-06-27 Univ Friedrich Alexander Er Aparato para suministrar uno o más parámetros ajustados para un suministro de una representación de señal de mezcla ascendente sobre la base de una representación de señal de mezcla descendete, decodificador de señal de audio, transcodificador de señal de audio, codificador de señal de audio, flujo de bits de audio, método y programa de computación que utiliza información paramétrica relacionada con el objeto.
GB2466201B (en) * 2008-12-10 2012-07-11 Skype Ltd Regeneration of wideband speech
US9947340B2 (en) * 2008-12-10 2018-04-17 Skype Regeneration of wideband speech
GB0822537D0 (en) 2008-12-10 2009-01-14 Skype Ltd Regeneration of wideband speech
KR20110001130A (ko) * 2009-06-29 2011-01-06 삼성전자주식회사 가중 선형 예측 변환을 이용한 오디오 신호 부호화 및 복호화 장치 및 그 방법
KR101747917B1 (ko) * 2010-10-18 2017-06-15 삼성전자주식회사 선형 예측 계수를 양자화하기 위한 저복잡도를 가지는 가중치 함수 결정 장치 및 방법
CN102394658A (zh) * 2011-10-16 2012-03-28 西南科技大学 一种面向机械振动信号的复合压缩方法
US9386267B1 (en) * 2012-02-14 2016-07-05 Arris Enterprises, Inc. Cooperative transcoding to multiple streams
JP2014123865A (ja) * 2012-12-21 2014-07-03 Xacti Corp 画像処理装置及び撮像装置
US9549178B2 (en) 2012-12-26 2017-01-17 Verizon Patent And Licensing Inc. Segmenting and transcoding of video and/or audio data
KR101595397B1 (ko) * 2013-07-26 2016-02-29 경희대학교 산학협력단 서로 다른 다계층 비디오 코덱의 통합 부호화/복호화 방법 및 장치
WO2015012514A1 (fr) * 2013-07-26 2015-01-29 경희대학교 산학협력단 Procédé et appareil permettant de coder/décoder intégralement différents codecs vidéo multicouches
CN104572751A (zh) * 2013-10-24 2015-04-29 携程计算机技术(上海)有限公司 呼叫中心录音文件的压缩存储方法及系统
SE538512C2 (sv) * 2014-11-26 2016-08-30 Kelicomp Ab Improved compression and encryption of a file
SE544304C2 (en) * 2015-04-17 2022-03-29 URAEUS Communication Systems AB Improved compression and encryption of a file
US10872598B2 (en) * 2017-02-24 2020-12-22 Baidu Usa Llc Systems and methods for real-time neural text-to-speech
US10896669B2 (en) 2017-05-19 2021-01-19 Baidu Usa Llc Systems and methods for multi-speaker neural text-to-speech
US10872596B2 (en) 2017-10-19 2020-12-22 Baidu Usa Llc Systems and methods for parallel wave generation in end-to-end text-to-speech
WO2021248473A1 (fr) 2020-06-12 2021-12-16 Baidu.Com Times Technology (Beijing) Co., Ltd. Conversion personnalisée de parole en vidéo avec régularisation de squelette tridimensionnel (3d) et poses corporelles expressives
US11587548B2 (en) * 2020-06-12 2023-02-21 Baidu Usa Llc Text-driven video synthesis with phonetic dictionary

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141638A (en) * 1998-05-28 2000-10-31 Motorola, Inc. Method and apparatus for coding an information signal
US6526140B1 (en) * 1999-11-03 2003-02-25 Tellabs Operations, Inc. Consolidated voice activity detection and noise estimation
US6581032B1 (en) * 1999-09-22 2003-06-17 Conexant Systems, Inc. Bitstream protocol for transmission of encoded voice signals

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0398318A (ja) * 1989-09-11 1991-04-23 Fujitsu Ltd 音声符号化方式
US5734789A (en) * 1992-06-01 1998-03-31 Hughes Electronics Voiced, unvoiced or noise modes in a CELP vocoder
US5495555A (en) * 1992-06-01 1996-02-27 Hughes Aircraft Company High quality low bit rate celp-based speech codec
JP3227291B2 (ja) * 1993-12-16 2001-11-12 シャープ株式会社 データ符号化装置
US5602961A (en) * 1994-05-31 1997-02-11 Alaris, Inc. Method and apparatus for speech compression using multi-mode code excited linear predictive coding
US5956674A (en) * 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
JP3134817B2 (ja) * 1997-07-11 2001-02-13 日本電気株式会社 音声符号化復号装置
US6249758B1 (en) * 1998-06-30 2001-06-19 Nortel Networks Limited Apparatus and method for coding speech signals by making use of voice/unvoiced characteristics of the speech signals
US6173257B1 (en) * 1998-08-24 2001-01-09 Conexant Systems, Inc Completed fixed codebook for speech encoder
US6192335B1 (en) * 1998-09-01 2001-02-20 Telefonaktieboiaget Lm Ericsson (Publ) Adaptive combining of multi-mode coding for voiced speech and noise-like signals
JP3579309B2 (ja) * 1998-09-09 2004-10-20 日本電信電話株式会社 画質調整方法及びその方法を使用した映像通信装置及びその方法を記録した記録媒体
SE521225C2 (sv) * 1998-09-16 2003-10-14 Ericsson Telefon Ab L M Förfarande och anordning för CELP-kodning/avkodning
US7272556B1 (en) * 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
US6691084B2 (en) * 1998-12-21 2004-02-10 Qualcomm Incorporated Multiple mode variable rate speech coding
US6260009B1 (en) * 1999-02-12 2001-07-10 Qualcomm Incorporated CELP-based to CELP-based vocoder packet translation
US6640209B1 (en) * 1999-02-26 2003-10-28 Qualcomm Incorporated Closed-loop multimode mixed-domain linear prediction (MDLP) speech coder
DE19911179C1 (de) * 1999-03-12 2000-11-02 Deutsche Telekom Mobil Verfahren zur Adaption der Betriebsart eines Multi-Mode-Codecs an sich verändernde Funkbedingungen in einem CDMA-Mobilfunknetz
JP2000287213A (ja) * 1999-03-31 2000-10-13 Victor Co Of Japan Ltd 動画像符号化装置
US6532593B1 (en) * 1999-08-17 2003-03-11 General Instrument Corporation Transcoding for consumer set-top storage application
US6574593B1 (en) * 1999-09-22 2003-06-03 Conexant Systems, Inc. Codebook tables for encoding and decoding
US6604070B1 (en) * 1999-09-22 2003-08-05 Conexant Systems, Inc. System of encoding and decoding speech signals
AU7486200A (en) * 1999-09-22 2001-04-24 Conexant Systems, Inc. Multimode speech encoder
JP3549788B2 (ja) * 1999-11-05 2004-08-04 三菱電機株式会社 多段符号化方法、多段復号方法、多段符号化装置、多段復号装置およびこれらを用いた情報伝送システム
FR2802329B1 (fr) * 1999-12-08 2003-03-28 France Telecom Procede de traitement d'au moins un flux binaire audio code organise sous la forme de trames
CN1187735C (zh) * 2000-01-11 2005-02-02 松下电器产业株式会社 多模式话音编码装置和解码装置
SE519976C2 (sv) * 2000-09-15 2003-05-06 Ericsson Telefon Ab L M Kodning och avkodning av signaler från flera kanaler
SE519981C2 (sv) * 2000-09-15 2003-05-06 Ericsson Telefon Ab L M Kodning och avkodning av signaler från flera kanaler
US6615169B1 (en) * 2000-10-18 2003-09-02 Nokia Corporation High frequency enhancement layer coding in wideband speech codec
JP2002202799A (ja) * 2000-10-30 2002-07-19 Fujitsu Ltd 音声符号変換装置
EP1410513A4 (fr) * 2000-12-29 2005-06-29 Infineon Technologies Ag Processeur codec de voies configurable pour des communications sans fil multiples
US6614370B2 (en) * 2001-01-26 2003-09-02 Oded Gottesman Redundant compression techniques for transmitting data over degraded communication links and/or storing data on media subject to degradation
US6658383B2 (en) * 2001-06-26 2003-12-02 Microsoft Corporation Method for coding speech and music signals
EP1292036B1 (fr) * 2001-08-23 2012-08-01 Nippon Telegraph And Telephone Corporation Méthodes et appareils de decodage de signaux numériques
JP2003125406A (ja) * 2001-09-25 2003-04-25 Hewlett Packard Co <Hp> 有向性非周期グラフに基づくビデオ符号化のモード選択最適化方法およびシステム
US7095343B2 (en) * 2001-10-09 2006-08-22 Trustees Of Princeton University code compression algorithms and architectures for embedded systems
JP2003195893A (ja) * 2001-12-26 2003-07-09 Toshiba Corp 音声再生装置及び音声再生方法
US6829579B2 (en) * 2002-01-08 2004-12-07 Dilithium Networks, Inc. Transcoding method and system between CELP-based speech codes
US7254533B1 (en) * 2002-10-17 2007-08-07 Dilithium Networks Pty Ltd. Method and apparatus for a thin CELP voice codec
US7133521B2 (en) * 2002-10-25 2006-11-07 Dilithium Networks Pty Ltd. Method and apparatus for DTMF detection and voice mixing in the CELP parameter domain
US7023880B2 (en) * 2002-10-28 2006-04-04 Qualcomm Incorporated Re-formatting variable-rate vocoder frames for inter-system transmissions
JP2004208280A (ja) * 2002-12-09 2004-07-22 Hitachi Ltd 符号化装置および符号化方法
EP1579427A4 (fr) * 2003-01-09 2007-05-16 Dilithium Networks Pty Ltd Procede et appareil visant a ameliorer la qualite du transcodage de la voix
KR100554164B1 (ko) * 2003-07-11 2006-02-22 학교법인연세대학교 서로 다른 celp 방식의 음성 코덱 간의 상호부호화장치 및 그 방법
US7469209B2 (en) * 2003-08-14 2008-12-23 Dilithium Networks Pty Ltd. Method and apparatus for frame classification and rate determination in voice transcoders for telecommunications
US7305055B1 (en) * 2003-08-18 2007-12-04 Qualcomm Incorporated Search-efficient MIMO trellis decoder
US7433815B2 (en) * 2003-09-10 2008-10-07 Dilithium Networks Pty Ltd. Method and apparatus for voice transcoding between variable rate coders
US7613606B2 (en) * 2003-10-02 2009-11-03 Nokia Corporation Speech codecs
US7170988B2 (en) * 2003-10-27 2007-01-30 Motorola, Inc. Method and apparatus for network communication
FR2867648A1 (fr) * 2003-12-10 2005-09-16 France Telecom Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques
US20050258983A1 (en) * 2004-05-11 2005-11-24 Dilithium Holdings Pty Ltd. (An Australian Corporation) Method and apparatus for voice trans-rating in multi-rate voice coders for telecommunications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141638A (en) * 1998-05-28 2000-10-31 Motorola, Inc. Method and apparatus for coding an information signal
US6581032B1 (en) * 1999-09-22 2003-06-17 Conexant Systems, Inc. Bitstream protocol for transmission of encoded voice signals
US6526140B1 (en) * 1999-11-03 2003-02-25 Tellabs Operations, Inc. Consolidated voice activity detection and noise estimation

Also Published As

Publication number Publication date
DE602004023115D1 (de) 2009-10-22
PL1692689T3 (pl) 2010-02-26
KR20060131782A (ko) 2006-12-20
ES2333020T3 (es) 2010-02-16
KR101175651B1 (ko) 2012-08-21
CN1890714A (zh) 2007-01-03
JP2007515677A (ja) 2007-06-14
US20070150271A1 (en) 2007-06-28
US7792679B2 (en) 2010-09-07
CN1890714B (zh) 2010-12-29
JP4879748B2 (ja) 2012-02-22
ATE442646T1 (de) 2009-09-15
EP1692689B1 (fr) 2009-09-09
EP1692689A1 (fr) 2006-08-23
WO2005066938A1 (fr) 2005-07-21
ZA200604623B (en) 2007-11-28

Similar Documents

Publication Publication Date Title
EP1692689B1 (fr) Procede de codage multiple optimise
RU2326450C2 (ru) Способ и устройство для векторного квантования с надежным предсказанием параметров линейного предсказания в кодировании речи с переменной битовой скоростью
RU2437172C1 (ru) Способ кодирования/декодирования индексов кодовой книги для квантованного спектра мдкп в масштабируемых речевых и аудиокодеках
EP1905010B1 (fr) Codage/décodage audio hiérarchique
CA2512179C (fr) Procede de codage et de decodage audio a debit variable
WO2005083889A1 (fr) Quantification vectorielle en dimension et resolution variables
CA2766864C (fr) Codage/decodage perfectionne de signaux audionumeriques
EP2255358A1 (fr) Encodage vocal et audio extensible utilisant un encodage combinatoire de spectre mdct
FR2947945A1 (fr) Allocation de bits dans un codage/decodage d&#39;amelioration d&#39;un codage/decodage hierarchique de signaux audionumeriques
JP2004517348A (ja) 非音声のスピーチの高性能の低ビット速度コード化方法および装置
US7634402B2 (en) Apparatus for coding of variable bitrate wideband speech and audio signals, and a method thereof
EP1037196B1 (fr) Procédé de codage, de décodage et de transcodage audio
EP1836699B1 (fr) Procédé et dispositif de codage audio optimisé entre deux modèles de prediction à long terme
EP2589045B1 (fr) Codage/décodage prédictif linéaire adaptatif
WO2011144863A1 (fr) Codage avec mise en forme du bruit dans un codeur hierarchique
EP1192619B1 (fr) Codage et decodage audio par interpolation
WO2023165946A1 (fr) Codage et décodage optimisé d&#39;un signal audio utilisant un auto-encodeur à base de réseau de neurones
CA2567162A1 (fr) Procede de quantification d&#39;un codeur de parole a tres bas debit
FR2791166A1 (fr) Procedes de codage, de decodage et de transcodage
WO2002029786A1 (fr) Procede et dispositif de codage segmental d&#39;un signal audio
FR2980620A1 (fr) Traitement d&#39;amelioration de la qualite des signaux audiofrequences decodes
FR2737360A1 (fr) Procedes de codage et de decodage de signaux audiofrequence, codeur et decodeur pour la mise en oeuvre de tels procedes